加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

网络编程-再看TCP的四次挥手

发布时间:2019-07-16 15:53:08 所属栏目:教程 来源:守望先生
导读:前言 四次挥手 四次挥手的流程在很多地方都可以看到,这里简略介绍一下,其最常见流程如下图所示: 其大体流程如下: 客户端发其结束请求,发送seq=X,处于FIN_WAIT_1状态 服务端收到结束请求,发送应答ACK=X+1,处于CLOSE_WAIT状态 客户端收到X的应答后,

为什么说TIME_WAIT是为了实现可靠的四次挥手呢?试想一下,如果客户端最后回应的ACK丢了,那么服务端会再次发送FIN报文,此时,客户端必须处于一个等待状态,否则服务端永远无法收到这个ACK,而会收到一个RST,以为出错。而如果客户端此时处于TIME_WAIT状态,即等待2MSL时间,它还可以再次回应服务端ACK。这也就保证了可靠的四次挥手。

当然了,如果在2MSL时间内,服务端还没有收到,那么对不起,客户端已经仁至义尽了,不会再等待了。

这里需要注意,最终执行主动关闭的那一端会处于TIME_WAIT状态。

那么为什么又说是为了避免收到老的重复报文呢?

试想这样的场景:

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读