TCPIP协议卷学习---TCP部分(五MSL)
1 2MSL等待
TIME_WAIT状态也称为2MSL等待状态。每个具体TCP实现必须选择⼀个报⽂段最⼤⽣存时间MSL(Maximum Segment Lifetime) 。它是任何报⽂段被丢弃前在⽹络内的最长时间。实现中的常⽤值是30秒,1分钟,或2分钟。
tcpip协议pdf对⼀个具体实现所给定的MSL值,处理的原则是:当TCP执⾏⼀个主动关闭,并发回最后⼀个ACK,该连接必须在TIME_WAIT状态停留的时间为2倍的MSL。这样可让TCP再次发送最后的ACK以防这个ACK丢失(另⼀端超时并重发最后的 F I N) 。这种2MSL等待的另⼀个结果是这个TCP连接在2MSL等待期间,定义这个连接的插⼝(客户的IP地址和端⼝号,服务器的IP地址和端⼝号)不能再被使⽤。这个连接只能在2MSL结束后才能再被使⽤。
2 注意
某些TCP实现允许⼀个新的连接请求到达仍处于TIME_WAIT状态的连接,只要新的序号⼤于该连接前⼀个替⾝的最后序号。对于同⼀连接的前⼀个替⾝,这个具体实现中的特性让客户程序和服务器程序能连续地重⽤每⼀端的相同端⼝号,但这只有在服务器执⾏主动关闭才有效。
3 平静时间
TCP在重启动后的MSL秒内不能建⽴任何连接。这就称为平静时间 (quiet time)。
只有极少的实现版遵守这⼀原则,因为⼤多数主机重启动的时间都⽐MSL秒要长。
4 FIN_WAIT_2
当客户端发送了⼀个FIN给到服务端,服务端返回⼀个ACK时,客户端进⼊FIN_WAIT_2状态,单如果此时服务端没有⽴刻返回⼀个FIN,则客户端会⼀直保持FIN_WAIT_2状态不会进⼊TIME_WAIT,为了避免这种⽆限等待的状态,客户端就设置⼀个定时器。如果这个连接空闲1 0分钟7 5秒,TCP将进⼊CLOSED状态。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论