《TCP/IP详解卷3:TCP事务协议、HTTP、NNTP和UNIX域协议》 —3.8 小结
【摘要】 本节书摘来自华章计算机《TCP/IP详解卷3:TCP事务协议、HTTP、NNTP和UNIX域协议》一书中第3章,第3.8节,作者是[美]W. 理查德·史蒂文斯(W.Richard Stevens) ,胡谷雨 吴礼发 等译 谢希仁 校。
3.8 小结
我们可以对本章中的例子做下面这样的总结:
1) 如果客户端丢失了服务器的状态信息(例如,客户端重新启动),那么客户端在主动打开时将发出CCnew选项,从而强迫执行三次握手过程。
2) 如果服务器丢失了客户端的状态信息,或者服务器收到的SYN报文段中的CC值小于期望的值,那么服务器返回给客户的响应将只是一个SYN/ACK报文段,从而强迫执行三次握手过程。在这种情况下,直到三次握手过程完全结束以后,服务器的TCP才会把客户在SYN报文段中附带的数据交给上层的服务器进程。
3) 如果服务器想在连接中使用T/TCP协议,那么它总是用CCecho选项对客户的CC或CCnew选项做出应答。
4) 如果客户端和服务器端彼此都掌握对方的状态信息,那么整个事务过程所收发的报文段个数将达到最少3个(假设请求和响应的长度都小于或等于报文段最大长度)。此时收发的分组数最少,时延也最小,为RTT + SPT。
以上这些例子同时也说明了T/TCP协议中多个状态的变迁是如何发生的,以及如何使用那些新扩充(加星)的状态。
如果客户端向一个不支持T/TCP协议的主机发送带有SYN、数据和FIN的报文段,那么采用伯克利网络代码的系统(包括SVR4,但不包括Solaris)能够正确地将数据存储在队列中,直至三次握手过程完成。然而,其他的一些网络代码也有可能错误地把SYN报文段中的数据扔掉,造成客户端超时,并重传数据。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)