首页 理论教育 因特网的传输控制协议的分析介绍

因特网的传输控制协议的分析介绍

时间:2023-06-17 理论教育 版权反馈
【摘要】:传输控制协议是TCP/IP体系中面向连接的传输层协议,它提供全双工的可靠的交付服务。因此TCP首部的最小长度是20字节。图4-48 TCP报文段的首部序号:占4字节。窗口字段用来控制对方发送的数据量。TCP的重传机制是每发送一个报文段就设置一次计时器。这种算法记录每个报文段发出的时间和收到确认报文段的时间,这两个时间差称为报文段的往返延时。

因特网的传输控制协议的分析介绍

传输控制协议(Transmission Control Protocol,TCP)是TCP/IP体系中面向连接的传输层协议,它提供全双工的可靠的交付服务。协议规定了TCP软件怎样识别给定计算机上的多个目的进程(即正在运行中的多个程序),如何对分组丢失和分组重复差错进行恢复。此外,协议还规定了运行一台计算机上的多个应用程序同时进行通信,也可对接收到的数据进行分解和分别送到多个应用程序。

1.TCP报文段的首部

TCP报文段分为首部和数据两部分,如图4-48所示。TCP的全部功能都体现在它的首部各字段。首部的前20字节是固定的,后面有4N字节是根据需要可增加的选项(N是整数)。因此TCP首部的最小长度是20字节。

首部固定部分各字段的意义:

(1)源端口和目的端口:各占2字节。端口是传输层与应用层的服务接口。16bit的端口加上32bit的IP地址,构成了插口(Socket),它相当于传输层服务访问点(Transport Service Access Point,TSAP)的地址,共48bit。

978-7-111-56008-1-Part01-227.jpg

图4-48 TCP报文段的首部

(2)序号:占4字节。TCP面向连接数据流,它传送的报文可看成连续的数据流,其中每一个字节都对应于一个序号。首部中的“序号”指的是本报文段发送数据中的第一个字节的序号。

例如,某个报文段的序号为301,携带的数据长度为100字节,则本报文段数据的第一个字节的序号为301,最后一个字节的序号为400。这样,下一个报文段的数据序号应从401开始。

(3)确认序号:占4字节。它是期望收到对方下一个报文段数据的第一个字节的序号。例如,收到一个序号字段值为501的一个报文段,数据长度为200字节,如果响应的报文段中确认的序号值为701,则表明501~701之间的数据均已正确收到。由于序号字段有32bit长,可对4GB(232bit)的数据进行编号,保证序号具有足够的重复使用空间。

(4)数据偏移:占4bit,它是指数据开始的地方离TCP报文段的起始处有多远。

(5)保留:占6bit,保留今后使用,目前应为0。

(6)说明本报文段性质的控制比特(每个性质说明1bit)。

①URG(Urgent)紧急比特:URG=1时,告诉系统此报文段中有紧急数据,应尽快传送(相当于最高优先级)。

②ACK(Acknowledgement)确认比特:ACK=1时,确认序号字段有效。ACK=0时,确认序号无效。

③PSH(Push)推送比特:PSH也可称为急迫比特,即尽快(推送)交付给接收应用进程(进程:正在运行的程序)。

④RST(Reset)复位比特:RST=1时,表明TCP连接中出现严重差错,必须释放,然后再重新建立运输连接。

⑤SYN(Synchronization)同步比特:在建立连接时,用来同步序号。(www.xing528.com)

⑥FIN(Final)终止比特:FIN=1时,释放一个连接。

(7)窗口:占2字节。窗口字段用来控制对方发送的数据量。TCP连接的接收端按自己缓存的空间大小确定自己的接收窗口大小,然后通知对方确定的发送窗口大小。

(8)检验和:占2字节。检验和字段的范围,包括首部和数据两部分。

(9)选择:长度可变。只有一个选项时,告诉对方TCP,缓存能接收的报文段的数据字段的最大长度(Max-Segment Size,MSS)。当没有选项时,TCP的首部长度为20字节。选择较小的MSS时,网络的利用率降低。

2.流量控制与拥塞控制

为了提高报文段的传输效率,TCP采用大小可变的滑动窗口进行流量控制。发送窗口在建立连接时由双方商定。但在通信过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口大小。

图4-49表示发送端要发送900字节长的数据,划分为9个100字节长的报文段,而对方接收端确认的发送窗口为500字节。发送端只要收到了对方的确认,发送窗口就可前移。发送端的TCP要维护一个指针。每发送一个报文段,指针就向前移动一个报文段距离。当指针移动到发送出窗口的最右端(500KB位置)时,就不能再发送报文段了。

实现流量控制不仅仅是为了接收端来得及接收。如果发送端发出的报文过多,会使网络负荷过重,由此会引起报文段的延时增大。报文段延时的增大,会使主机不能及时地收到确认信息,于是会重传更多的报文段,进一步加剧网络的拥塞。因此主机应当适当地降低发送速率。

978-7-111-56008-1-Part01-228.jpg

图4-49 TCP中的滑动窗口概念

a)发送窗口大小为500字节 b)发送了400字节,收到的确认序号为201,窗口大小不变,还可发送300字节 c)收到的确认序号为401,窗口大小变为400字节,还可发送400字节

3.TCP的重传机制

TCP将数据流看作字节序列,为便于传输,又将这个字节序列划分为若干个报文段。通常,每个报文段又被放置到一个IP数据报中,并通过互联网传送。

TCP的重传机制是每发送一个报文段就设置一次计时器。只要计时器设置的重传时间已到,如果还没有收到确认信息ACK,就要重传这一段报文。

TCP采用了一种自适应算法。这种算法记录每个报文段发出的时间和收到确认报文段的时间,这两个时间差称为报文段的往返延时。显然,计算器设置的重传时间应略大于平均往返延时。

TCP采用滑动窗口传送机制和报文段重传机制,不仅提供了流量控制功能,而且还提供了可靠传输服务。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈