MSL(max segment lifetime) TCP进程结束 端口是否再分配
来源:互联网 发布:淘宝买家等级怎么看 编辑:程序博客网 时间:2024/06/05 09:12
TCP链接中有一个MSL的概念,也就是最大生成时间,MSL的值在一般的实现中取30s,有些实现采用2分钟,在TCP的状态机中的“被动关闭”:从CLOSE_WAIT到LAST_ACK中有一个如下的规则:当T C P执行一个主动关闭,并发回最后一个A CK,该连接必须在TIME_WAIT状态停留的时间为2倍的MSL。这样可让TCP再次发送最后的ACK以防这个ACK丢失(另一端超时并重发最后的FIN)。
存在这个规则导致一个后果就是在这个2MSL的时间内,该地址上的链接(客户端地址、端口和服务器端的地址、端口)不能被使用。比如我们在建立一个链接后关闭链接然后迅速重启链接,那么就会出现端口不可用的情况。
利用TAO跳过三次握手
为了理解何以能跳过三次握手,我们需要先了解三次握手的目的。RFC793中对此只是做了一个简单的说明:“引入三次握手的主要原因是为了避免过时的重复连接在再次建连时造成的混乱。
因此,T/TCP协议必须提供一种方法,使收到SYN报文段的一方能够不经过三次握手就保证这个SYN不是过时的重复报文段,从而使得随该SYN报文段一起传送过来的数据能立刻交付给上层的用户进程。这里的保护手段是客户发出的SYN报文段中附带的CC选项和服务器缓存的最近一次从该客户收到的合法CC值。
采用的方法就是RFC1644中所述的TAO测试:“如果某个特定客户主机的第一个SYN报文段(即只含SYN位而不含ACK位的报文段)中所携带的CC值大于缓存中的该客户CC值,CC值的单调递增特性可以确保这是一个新的SYN报文段,可以立即接收下来”。正是CC值的单调递增特性以及下面的两个假设确保了SYN报文段是新的,使得T/TCP协议能够跳过三次握手:
1) 所有的报文段都只有有限的MSL秒的生存期;
2) tcp_ccgen计数器在2MSL的时间内的递增量不超过2的32次方减一。
- MSL(max segment lifetime) TCP进程结束 端口是否再分配
- MSL(Max Segment Lifetime) TTL(Time to Life) RTT(Round-Trip Time)
- 如何查看端口是否被占用、如何结束进程
- Windows查看端口和结束进程
- windows端口占用及结束进程
- 查看端口占用并结束进程
- 查看端口占用情况并结束进程
- TCP TIME_WAIT状态(2MSL)
- TCP TIME_WAIT状态(2MSL)
- TCP/IP:MSS MSL MTU
- TCP TIME_WAIT状态(2MSL)
- TCP/IP:MSS MSL MTU
- TCP TIME_WAIT状态(2MSL)
- TCP的2MSL问题
- 2010财富再分配的进程与人造中产阶级
- Max Segment Live
- 结束占用端口进程以及windows命令行下杀进程
- 查看本机开放的端口号,查看某个端口号是否被占用,查看被占用的端口号被哪个进程所占用,如何结束该进程
- eclipse下安装maven的一点总结
- 内存泄漏检测和隔离(整理msdn)
- 程序的编译和链接
- java @override 报错处理
- 如何理解优先级反转这个概念
- MSL(max segment lifetime) TCP进程结束 端口是否再分配
- linux重要头文件
- Arduino-Lite, RoboPeak使用的高效轻量级AVR库(1)
- Arduino-Lite, RoboPeak使用的高效轻量级AVR库(2)
- 可直接选择月度和年度的Ext DateField
- 扩展欧几里得&&青蛙的约会
- Ural - 1018 纠结的树型DP...
- webKf
- HashMap<string, ...> 能有多快