前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OSI模型传输层的主要任务(一)

OSI模型传输层的主要任务(一)

作者头像
needrunning
发布2019-07-04 10:56:10
2.1K0
发布2019-07-04 10:56:10
举报
文章被收录于专栏:图南科技图南科技

在OSI参考模型的传输层上,主要包括TCP和UDP两个重要的协议,本文主要介绍TCP协议相关的属性,包括连接建立,序列号,以及资源子网和通信子网,以及拥塞和流量控制的相关概念。

01 传输层基本功能 02 TCP建立连接过程 0201 TCP序列号 03 资源子网和通信子网 04 拥塞控制与流量控制

图-1传输层基本作用

在OSI参考模型中,自下而上第一个提供端到端服务的层次是传输层。

传输层的是作用是负责为两台主机中应用进程之间的通信提供服务,而对于网络层来说,提供的是主机到主机之间的通信,所谓的端到端是指应用进程到应用进程。

02TCP建立连接过程

SYN(synchronous)是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。

TCP建立连接

在第一次发送信息中,A随机选取一个序列号x作为初始化序列号发送给B。

第二次B使用ack对A的数据报进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ack=x+1,同时发送自己的初始化序列号seq=y

seq是数据报本身的序列号;ack是期望对方继续发送的那个数据包的序列号。

TCP连接的第一个包,非常小的一种数据包。SYN 攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。每个机器的欺骗包都要花几秒钟进行尝试方可放弃提供正常响应。

如下图所示,IP 地址在IP 数据报的首部,而硬件地址则放在MAC 帧的首部。在网络层以上使用的是IP 地址,而链路层及以下使用的是硬件地址。

连接端点

TCP的连接端点称为 套接字(socket),根据TCP协议的规定,端口号拼接到IP地址即构成了套接字。

也就是说TCP连接的端点不是主机,不是IP不是应用进程,而是套接字。

套接字 socket = (IP地址:端口号)

套接字 socket = (IP地址: 端口号)

TCP 连接 ::= {socket1, socket2} = {(IP1: port1), (IP2: port2)}

Socket连接是一个五元组,包括协议类型,源IP,源端口,目标地址和目标端口

0201TCP序列号

TCP是面向字节流的,每一个字节对应一个序列号。

TCP每次发送的报文段的首部中的序列号是该报文段的第一个字节的序号。

接收端返回的确认号是收到数据的最高序号加1

一个 TCP报文段的数据部分最多是

IP数据报的最大长度=2^16-1=65535(字节)

TCP报文段的数据部分=IP数据报的最大长度-IP数据报的首部-TCP报文段的首部=65535-20-20=65495(字节)

图-2 IP地址与硬件地址的封装

在IP 层抽象的互连网上,我们看到的只是IP 数据报,路由器根据目的站的 IP地址进行选路。在具体的物理网络的链路层,我们看到的只是 MAC 帧,IP 数据报被封装在 MAC帧里面。

MAC 帧在不同的网络上传送时,其MAC 帧的首部是不同的。这种变化,在上面的IP 层上是看不到的。每个路由器都有IP 地址和硬件地址。使用IP 地址与硬件地址,尽管连接在一起的网络的硬件地址体系各不相同,但 IP层抽象的互连网却屏蔽了下层这些很复杂的细节,并使我们能够使用统一的、抽象的IP 地址进行通信。

当某个路由器发现一数据报的检验和有差错时,会直接丢弃。

03 资源子网与通信子网

网络层 位于通信子网的最高层,实现网络通信功能 传输层 位于资源子网的最低层,实现资源共享功能

图-3 通信子网与资源子网

思考

例:为什么在 TCP 首部中有一个首部长度字段,而 UDP 的首部中就没有这个字段?

答:这是TCP 与UDP 包的区别,TCP 包的首部字段可以更好的保证数据传输的可靠安全,而UDP 就不能保证,所以UDP 比TCP 快,不间断但是不可靠,例如QQ 视频就是使用UDP,经常出现人不动,就是这个原因

TCP确认序列相关问题

图4-TCP确认号

04拥塞控制与流量控制

网络中存在太多的数据包,导致数据包被延迟和丢失,从而降低传输性能,这种情况称为拥塞。网络层和传输层共同承担着处理拥塞的责任。

关于拥塞上一张脑图

发生拥塞控制的原因:资源(带宽、交换节点的缓存、处理机)的需求 > 可用资源。作用:拥塞控制就是为了防止过多的数据注入到网络中,这样可以使网络中的路由器或者链路不至于过载。拥塞控制要做的都有一个前提:就是网络能够承受现有的网络负荷。

对比流量控制:拥塞控制是一个全局的过程,涉及到所有的主机、路由器、以及降低网络相关的所有因素。流量控制往往指点对点通信量的控制,是端对端的问题。流量控制只关心发送方和接收方点对点的发送量。它的任务是处理发送能力大于接受能力。


下篇文章中,我们将介绍传输层上关于UDP,窗口,连接确认更丰富的内容,敬请期待。由于作者水平有限,文中的观点有不确切之处,欢迎评论讨论。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图南科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 02TCP建立连接过程
    • 连接端点
      • 0201TCP序列号
      • 03 资源子网与通信子网
      • TCP确认序列相关问题
        • 04拥塞控制与流量控制
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档