[TCP/IP] 关闭连接后为什么客户端最后还要等待2MSL
2023-02-18 15:41:32 时间
MSL(Maximum Segment Lifetime)报文最大生存时间,2MSL即两倍的MSL,TCP允许不同的实现可以设置不同的MSL值。
第一,保证客户端发送的最后一个ACK报文能够到达服务器,因为这个ACK报文可能丢失,站在服务器的角度看来,我已经发送了FIN+ACK报文请求断开了,客户端还没有给我回应,应该是我发送的请求断开报文它没有收到,于是服务器又会重新发送一次,而客户端就能在这个2MSL时间段内收到这个重传的报文,接着给出回应报文,并且会重启2MSL计时器。
第二,防止类似与“三次握手”中提到了的“已经失效的连接请求报文段”出现在本连接中。客户端发送完最后一个确认报文后,在这个2MSL时间中,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样新的连接中不会出现旧连接的请求报文。
相关文章
- Jenkins汉化配置
- Window安装构建神器Jenkins
- Fiddler手机抓包配置指南
- .NET Core Web API使用HttpClient提交文件的二进制流(multipart/form-data内容类型)
- 【排查解决】System.Runtime.InteropServices.ExternalException (0x80004005): GDI+ 中发生一般性错误
- 【Solve】InnerClass annotations are missing corresponding EnclosingMember annotations. Such InnerClass annotations are ignored
- .NET HttpWebRequest(请求被中止: 未能创建 SSL/TLS 安全通道)和(基础连接已经关闭: 发送时发生错误)问题查找解决
- ASP.NET Core获取请求完整的Url
- C#/.NET/.NET Core推荐学习书籍(升职加薪,你值得拥有)
- 非关系型数据库(NOSQL)和关系型数据库(SQL)区别详解
- .NET Core使用Source Link提高源代码调试体验和生产效率
- Angular学习资料大全和常用语法汇总(让后端程序员轻松上手)
- 解决Cannot find module '@angular/compiler-cli'
- DevOps,CI,CD,自动化简单介绍
- Angular实战之使用NG-ZORRO创建一个企业级中后台框架(进阶篇)
- Angular实战之使用NG-ZORRO创建一个企业级中后台框架(入门篇)
- (已解决)'ng' 不是内部或外部命令,也不是可运行的程序或批处理文件
- Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目
- 走进C# abstract,了解抽象类与接口的异同
- C#基础访问修饰符概述