标签:内核 相同 操作系统 sea 问题 服务器端 ast exception 数据
tcp共有11种状态,其中涉及到关闭的状态有5 个。这5 个状态相互关联,相互纠缠,而且状态变化触发都是由应用触发,但是又涉及操作系统和网络,所以正确的理解TCP 在关闭时网络状态变化情况,为我们诊断网络中各种问题,快速定位故障有着非常重要的作用和意义。
TCP连接的建立到关闭,需要经历以下状态迁移(假定Client发起连接,并主动关闭连接):
CLOSED -> SYN_SENT -> ESTABLISHED -> FIN_WAIT_1 -> FIN_WAIT_2 -> TIME_WAIT -> CLOSED
CLODED -> LISTEN -> SYN_RECEIVED -> ESTABLISHED -> CLOSE_WAIT -> LAST_ACK -> CLOSED
TCP不允许处于TIME_WAIT状态的socket 建立一个连接。处于TIME_WAIT状态的 socket 在等待了两倍的MSL时间之后,将会转变为CLOSED状态。这里TIME_WAIT状态持续的时间是2MSL(MSL是任何IP数据报能够在因特网中存活的最长时间),足以让这两个方向上的数据包被丢弃(最长是2MSL)。通过实施这个规则,我们就能保证每成功建立一个TCP连接时,来自该连接先前化身的老的重复分组都已经在网络中消逝了
TIME_WAIT存在的两个理由就是
标签:内核 相同 操作系统 sea 问题 服务器端 ast exception 数据
原文地址:http://www.cnblogs.com/bier/p/6122367.html