第三章 T/TCP 使用举例
我们可以对本章中的例子做下面这样的总结:
1)如果客户端丢失了服务器的状态信息(例如,客户端重新启动),那么客户端在主动打开时将发出 CCnew 选项,从而强迫执行三次握手过程。
2)如果服务器丢失了客户端的状态信息,或者服务器收到的 SYN 报文段中的 CC 值小于期望的值,那么服务器返回给客户的响应将只是一个 SYN/ACK 报文段,从而强迫执行三次握手过程。在这种情况下,直到三次握手过程完全结束以后,服务器的 TCP 才会把客户在 SYN 报文段中附带的数据交给上层的服务器进程。
3)如果服务器想在连接中使用 T/TCP 协议,那么它总是用 CCecho 选项对客户的 CC 或 CCnew 选项作出应答。
4)如果客户端和服务器端彼此都掌握有对方的状态信息,那么整个事务过程所发的报文段个数将达到最少:3个(假设请求和响应的长度都小于或等于报文段最大长度 MSS)。此时收发的分组数最少,时延也最小:为 RTT + SPT。
以上这些例子同时也说明了 T/TCP 协议中多个状态的变迁是如何发生的,以及如何使用那些新扩充的(加星的)状态。
如果客户端向一个不支持 T/TCP 协议的主机发送带有 SYN、数据和 FIN 的报文段,那么采用伯克利网络代码的系统(包括 SVR4,但不包括 Solaris)能够正确地将数据存储在队列中,直至三次握手过程完成。然而,其他的一些网络代码也有可能错误地把 SYN 报文段中的数据扔掉,造成客户端超时,并重传数据。
希望我的总结可以帮助大家,感谢阅读我的博客!