【2016年 题41】假设题33~41图中的H3访问Web服务器S时,S为新建的TCP连接分配了20 KB(K=1 024)的接收缓存,最大段长MSS=1 KB,平均往返时间RTT=200 ms。H3建立连接时的初始序号为100,且持续以MSS大小的段向S发送数据,拥塞窗口初始阈值为32 KB;S对收到的每个段进行确认,并通告新的接收窗口。假定TCP连接建立完成后,S端的TCP接收缓存仅有数据存入而无数据取出。请回答下列问题。
-
在TCP连接建立过程中,H3收到的S发送过来的第二次握手TCP段的SYN和ACK标志位的值分别是多少?确认序号是多少?
-
H3收到的第8个确认段所通告的接收窗口是多少?此时H3的拥塞窗口变为多少?H3的发送窗口变为多少?
-
当H3的发送窗口等于0时,下一个待发送的数据段序号是多少?H3从发送第1个数据段到发送窗口等于0时刻为止,平均数据传输速率是多少(忽略段的传输延时)?
-
若H3与S之间通信已经结束,在t时刻H3请求断开该连接,则从t时刻起,S释放该连接的最短时间是多少?
题33~41图
【解析】
1)本小题考查TCP连接建立过程,需要考生掌握如下图所示的细节。
在本题中,H3收到的S发送过来的第二次握手TCP段的SYN和ACK标志位的值都为1,这是对H3发来的TCP连接请求的确认;由于题目给定H3建立连接时的初始序号为100,则该确认报文段的确认序号为100+1=101。
2)本小题的解题细节如下所示,
从上图可知,H3收到的第8个确认段所通告的接收窗口是12KB;此时H3的拥塞窗口变为9KB;H3的发送窗口变为9KB。
3)根据题意,可将小题2)中的解题步骤继续进行,如下图所示。
从上图可知,当H3的发送窗口等于0时,H3已发送了20个TCP段,每个1KB(1024B);由于题目给定H3建立TCP连接时的初始序号为100,则当H3的发送窗口等于0时,下一个待发送段的序号为20×1024+101=20581。
从上图可知,H3从发送第1个TCP段到发送窗口等于0时刻止,共经历了5个RTT(往返时延),共发送了20个TCP段,每个1KB(1024B),题目给定RTT(往返时延)=200ms,因此可计算H3的平均数据传输速率为(20×1KB)÷ (5×200ms)= 20.48kB/s。
4)本小题考查TCP连接释放过程,需要考生掌握如下图所示的细节。
本小题给定TCP客户端H3与TCP服务器端S之间通信已经结束,在t时刻H3请求断开该连接;结合上图可知,S收到连接释放报文段(FIN=1, seq=u)后立即给H3发出确认(ACK=1, seq=v, ack=u+1),然后进入CLOSED-WAIT(关闭等待)状态。由于题目给定通信已经结束,也就是S没有数据段要发送给H3了,因此立即给H3发送连接释放报文段(FIN1, ACK=1, seq=w, ack=u+1),然后进入LAST-ACK(最后确认)状态,对于本题可认为上图中的CLOSED-WAIT状态和FIN-WAIT-2状态的持续时间几乎不存在。H3在收到S的连接释放报文段后,必须对此发出确认(ACK=1, seq=u+1, ack=w+1),当S收到该确认时,进入CLOSE(关闭)状态。
综上所述,若H3与S之间通信已经结束,在t时刻H3请求断开该连接,则从t时刻起,S释放该连接所需的最短时间为1个往返时延RTT加1个端到端传播时延(也就是RTT的一半),共1.5个RTT,即1.5×200ms=300ms。