天天看点

总结:TCP/IP 详解(卷3:TCP 事务协议、HTTP、NNTP 和 UNIX 域协议)--第四章 T/TCP 协议(续)第四章  T/TCP 协议(续)

第四章  T/TCP 协议(续)

本章继续讨论 T/TCP 协议。首先讨论 T/TCP 客户程序如何根据连接持续时间是否会大于报文段最大生存时间 MSL 来分配端口号,以及这个分配结果对 TCP 的 TIME_WAIT 状态有什么影响。接下来研究 TCP 协议为什么要定义 TIME_WAIT 状态,因为人们对 TCP 协议的这一特点普遍缺乏理解。T/TCP 协议的重要优点之一就是在连接持续时间小于报文段最大生存时间 MSL 时,使协议的 TIME_WAIT 状态由 240 秒缩短至大约 12 秒。接着也是主要讨论 T/TCP 协议是如何实现这一点的,以及这样做的正确性。

TCP 协议的 TIME_WAIT 状态有两个功能:

1)实现了连接的全双工关闭。

2)使得过时的重复报文段超时作废。

如果 T/TCP 连接的持续时间小于 120 秒(1倍的报文段最大生存时间 MSL),那么 TIME_WAIT 状态的保持时间只要 8 倍的重传超时,而不是 240 秒。而且,在前一次连接还处于 TIME_WAIT 状态时,客户端就可以建立一个连接的新的替身,从而进一步截短了等待时间。说明了为什么这么做是可行的,仅受限于 T/TCP 协议能支持的最大事务速率(大约每秒 18000000次)。如果 T/TCP 客户知道要与同一台服务器执行大量事务,那么它每次都可以使用同一个本地端口号,从而可减少 TIME_WAIT 状态的控制块的数量。

TCP 的 TAO(TCP 加速打开)测试使得 T/TCP 的客户-服务器程序可以跳过三次握手过程。这是在服务器收到客户端的 CC 值大于服务器记录的该客户 CC 值时实现的。正是 CC 值的单调递增性以及以下两点假定才确保了服务器能够断定客户端的 SYN 是新的,使 T/TCP 能够跳过三次握手过程:

1)所有报文段都有一个有限的生存期限:MSL 秒;

2)tcp_ccgen 计数器的最大递增速率为:在 2MSL 秒内增加 2^32-1。 

希望我的总结可以帮助大家,感谢阅读我的博客!