在建立连接时,双方都告知了对方自己的MSS为1024,所以在传输过程中,每一个报文段的大小都为1024.下面重点分析各个确认报文段,也就是从右边发往左边的报文段:
- 报文段7确认了报文段4和报文段5。由于包含两个分组的ACK,所以该报文段不是经受时延的确认。滑动窗口大小为4096表示收到的两个报文段已经全部交付给了应用层,此时TCP的接收缓存为空。
- 报文段8确认了报文段6。此报文段在等待其它数据(这里为报文段9的确认)一起传送的过程中延时定时器溢出,所以此为经受时延的确认。滑动窗口大小为3072表示TCP接受缓存中还有1024字节数据未被应用程序读取。
- 报文段10确认了报文段9,它也是一个经受时延的确认。
- 报文段14确认了报文段11和报文段12,它不是一个经受时延的确认。
- 报文段16确认了报文段13和报文段15,它不是一个经受时延的确认。
通过上面的过程可以看出,报文段7、14、16的ACK确认了两个收到的报文段。这与开头的描述是一致的。
下面来看看上述过程中的滑动窗口变化情况: