假设题33~41图中的H3访问Web服务器S时, S为新建的TCP连接分配了20 KB(K=1024)的接收缓存, 最大段长MSS=1 KB, 平均往返时间RTT=200 ms。 H3建立连接时的初始序号为100, 且持续以MSS大小的段向S发送数据, 拥塞窗口初始阈值为32 KB; S对收到的每个段进行确认, 并通告新的接收窗口。 假定TCP连接建立完成后, S端的TCP接收缓存仅有数据存入而无数据取出。 请回答下列问题。
在TCP连接建立过程中, H3收到的S发送过来的第二次握手TCP段的SYN和ACK标志位的值分别是多少?确认序号是多少?
TCP 连接的建立分以下三个阶段。首先,H3 向 Web 服务器 S 发出连接请求报文段, 这时首部中的同步位 SYN=1,ACK=0,同时选择一个初始序号 seq=100。TCP 规定,SYN 报文 段(即 SYN=1 的报文段)不能携带数据,但是要消耗一个序号。接着,S 收到连接请求报文 段,为自己选择一个初始序号 seq=y,向 A 发送确认。这个报文段 SYN=1,ACK=1,seq=y, 确认号 ack 是 100+1=101。它不能携带数据,但是也要消耗一个序号。最后,H3 收到 S 的确 认报文段后,还要向 S 给出确认。这份确认报文段 SYN=0,ACK=1,确认号 ack=y+1,自己的 序号 seq=101。因此,第二次握手 TCP 段的 SYN=1,ACK=1;确认序号是 101。
H3收到的第8个确认段所通告的接收窗口是多少?此时H3的拥塞窗口变为多少?H3的发送窗口变为多少?
题目规定 S 对收到的每个段(MSS 大小的段)进行确认,并通告新的接收窗口, 而且 TCP 接收缓存仅有数据存入而无数据取出。H3 收到的第 8 个确认段所通告的接收窗口 是 20-8=12KB;在慢开始算法里,发送方 H3 先设置拥塞窗口 cwnd=1KB,接下来每 收到一个对新报文段的确认就使发送方的拥塞窗口加 1KB。H3 共收到 8 个确认段,所以此 时 H3 的拥塞窗口变为 1+8=9KB;发送窗口=min{拥塞窗口,接收窗口},所以 H3 的 发送窗口变为 min{9,12}=9KB。
当H3的发送窗口等于0时, 下一个待发送的数据段序号是多少?H3从发送第1个数据段到发送窗口等于0时刻为止, 平均数据传输速率是多少(忽略段的传输延时)?
TCP 是用字节作为窗口和序号的单位。当 H3 的发送窗口等于 0KB 时,也就是接收 窗口等于 0KB 时,下一个待发送段的序号是 20K+101=20×1024+101=20581;H3 从 发送第 1 个段到发送窗口等于 0KB 时刻为止,经过五个传输轮次,每个传输轮次的时间就 是往返 RTT,因此平均数据传输速率是 20KB/(5×200ms)=20KB/s=20.48kbps。
若H3与S之间通信已经结束, 在t时刻H3请求断开该连接, 则从t时刻起, S释放该连接的最短时间是多少?
通信结束后,H3 向 S 发送连接释放报文段。S 收到 H3 的连接释放报文段后,马 上发出确认报文段。此时 S 已经没有数据需要传输,于是它也马上发出连接释放报文段。 H3 在收到 S 的连接释放报文段后,发出确认报文段。S 在收到这份确认后就释放 TCP 连接。 因此从 t 时刻起,S 释放该连接的最短时间是:H3 的连接释放报文段传送到 S 的时间+S 的 连接释放报文段传送到 H3 的时间+H3 的确认报文段传送到 S 的时间=1.5×200ms=300ms。