有关 TCP 4次挥手的一个小问题

众所周知,TCP在断开连接时会进行四次挥手,并在最后一次挥手客户端会等待2MSL再断开连接(假设客户端发起的断开连接请求)。等待2MSL的目的是,假设客户端发送的最后一次挥手的断开连接请求确认报文在网络中丢失,那么服务端会超时重发断开连接请求报文,等待2MSL的目的是防止这种情况发生,以及确保本次连接的报文在网络中消失,不会对下次连接产生影响。
那么问题来了,如果等待2MSL期间,客户端发出的最后一次挥手包丢失,且服务器端超时重发的断开连接请求也在网络中丢失了...这种情况下TCP会怎么处理?
没有找到这个问题的相关解答,求大佬解惑。
#笔试题目#
全部评论
超过了2MSL后,client直接关闭连接,只剩下server处于半关闭状态了(LAST_ACK?)。server会因为超时重传机制重新发送FIN包,有两种情况: (1)client挂了,一直不响应,server重试几次没成功,server也就直接断开连接了,状态变为closed;(2)client没挂,由于已经断开连接了导致无法识别这个FIN包,会回一个RST给server,server收到RST包会关闭连接,状态变为closed。
1 回复 分享
发布于 2021-04-29 21:11
首先TCP里面总共有4种计时器,四次挥手的2msl计时器也是其中一个,称为时间等待计时器,一般时间为报文段寿命值的2倍 Client或者Sever丢失会因为超时重传,如果重传FIN,此时Client端是会重置2msl计时器的时间的,重新计时。
点赞 回复 分享
发布于 2021-04-26 19:33

相关推荐

想run的马里奥在学...:这个学历帮你扫平百分之80的障碍,投就完了,这会找不到就等3月暑期一样能找到
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
秋招吐槽大会
点赞 评论 收藏
分享
评论
点赞
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务