MSL是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为tcp报文(segment)是ip数据报(datagram)的数据部分,具体称谓请参见《数据在网络各层中的称呼》一文,而ip头中有一个TTL域,TTL是time to live的缩写,中文可以译为“生存时间”,这个生存时间是由源主机设置初始值但不是存的具体时间,而是存储了一个ip数据报可以经过的最大路由数,每经过一个处理他的路由器此值就减1,当此值为0则数据报将被丢弃,同时发送ICMP报文通知源主机。RFC 793中规定MSL为2分钟,实际应用中常用的是30秒,1分钟和2分钟等。
2MSL即两倍的MSL,TCP的TIME_WAIT状态也称为2MSL等待状态,当TCP的一端发起主动关闭,在发出最后一个ACK包后,即第3次握手完成后发送了第四次握手的ACK包后就进入了TIME_WAIT状态,必须在此状态上停留两倍的MSL时间,等待2MSL时间主要目的是怕最后一个ACK包对方没收到,那么对方在超时后将重发第三次握手的FIN包,主动关闭端接到重发的FIN包后可以再发一个ACK应答包。在TIME_WAIT状态时两端的端口不能使用,要等到2MSL时间结束才可继续使用。当连接处于2MSL等待阶段时任何迟到的报文段都将被丢弃。不过在实际应用中可以通过设置SO_REUSEADDR选项达到不必等待2MSL时间结束再使用此端口。
TTL与MSL是有关系的但不是简单的相等的关系,MSL要大于等于TTL。

TCP四次挥手中的2MSL是什么?相关推荐

  1. 灵魂拷问:TCP 四次挥手,可以变成三次吗?

    上周有位读者面试时,被问到:TCP 四次挥手中,能不能把第二次的 ACK 报文, 放到第三次 FIN 报文一起发送? 虽然我们在学习 TCP 挥手时,学到的是需要四次来完成 TCP 挥手,但是在一些情 ...

  2. TCP四次挥手 2MSL TIME_WAIT详解

    TCP四次挥手 & 2MSL & TIME_WAIT详解 TCP四次挥手流程 各状态解析 2MSL(2倍最大报文段生成时间) 2MSL (Maximum Segment Lifetim ...

  3. TCP三次握手中SYN,ACK,seq ack的含义

    TCP三次握手中SYN,ACK,seq ack的含义 1.TCP 为什么三次握手而不是两次握手 1.防止已失效的连接请求又传送到服务器端,因而产生错误. 不幸的是, 这种解释是不准确的, TCP 采用 ...

  4. TCP四次挥手断开连接

    四次挥手的流程 1.主动关闭方发送FIN连接释放报文段 客户端调用 close 方法,告诉服务器自己要主动关闭连接,会发送一个 FIN 报文给服务端,客户端进入FIN-WAIT-1状态. 2.被动关闭 ...

  5. 用动画讲解 TCP 四次分手过程

    作者 | 小鹿 来源 | 公众号:小鹿动画学编程 一.写在前边 大家好,我们又见面了,做为一个业余的动画师,上次的用动画的形式讲解 TCP 三次握手过程再各大平台收到了广大读者的喜爱,说文章有趣.有货 ...

  6. 动画:用动画给女朋友讲解 TCP 四次分手过程

    作者 | 小鹿 来源 | 公众号:小鹿动画学编程 一.写在前边 大家好,我们又见面了,做为一个业余的动画师,上次的用动画的形式讲解 TCP 三次握手过程再各大平台收到了广大读者的喜爱,说文章有趣.有货 ...

  7. 为什么只有三次挥手_TCP为什么是三次握手,为什么不是两次或四次,TCP四次挥手...

    这是一个很有意思的问题~ 首先,我们要知道TCP是全双工的,即客户端在给服务器端发送信息的同时,服务器端也可以给客户端发送信息.而半双工的意思是A可以给B发,B也可以给A发,但是A在给B发的时候,B不 ...

  8. tcp 四次挥手_TCP三次握手和四次挥手

    名词解释 SYN:发起一个新连接 ACK:确认序号有效 FIN:释放一个连接 1,TCP三次握手 第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认: 第 ...

  9. tcp当主动发出syn_一文读懂TCP四次挥手工作原理及面试常见问题汇总

    简述 本文主要介绍TCP四次挥手的工作原理,以及在面试中常见的问题. 字段含义 seq序号:Sequence Number,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行 ...

  10. 计算机网络之TCP四次挥手

    文章目录 计算机网络之TCP四次握手 1.TCP四次挥手过程 2.任何一方执行close()操作即可产生挥手操作为什么要等待呢 3.说说 TCP 四次挥手过程 4.TCP挥手为什么需要四次呢 5. T ...

最新文章

  1. src或者href值为base64编码代码
  2. Cisco2620路由器的密码恢复和灾难性恢复
  3. 文本分类之特征简约算法说明
  4. Codeforces Round #383 D
  5. 使用计算机加密码,给正使用的电脑设置密码
  6. mysql增删改查脚本_脚本方式实现数据库增删改查
  7. robotframework(12)修改用户密码(从数据库查询短信验证码)
  8. [mybatis]动态sql_foreach_遍历集合批量插入
  9. Java判断两个Date是不是同一天
  10. 《HTML5+CSS3网页设计入门必读》——2.8 转变(CH-CH变化)
  11. 3.MySQL索引(一)介绍索引
  12. Python——四大内置高阶函数(map、reduce、filter、sorted)
  13. python全套教程-老王Python全套教程完整版
  14. Android-多线程AsyncTask
  15. 【易实战】Spring Cloud Greenwich Ribbon:负载均衡的服务调用
  16. php源码 辅助发卡_【程序源码】PHP自动化售货发卡网源码
  17. Android应用层读写设备节点
  18. c语言pow的作用,c语言中pow函数的用法是什么?
  19. 死磕 Framework准没错,大把的高薪岗位等着你~
  20. PDF编辑方法,怎么把PDF其中一页删除

热门文章

  1. 2019/3/20统计单词数
  2. php rrd 源码,ganalia+php+nginx+rrd 监控hadoop
  3. QQ揭秘:如何实现托盘闪动消息提醒?【低调赠送:QQ高仿版GG 4.1 最新源码】...
  4. 项目管理学习总结(20)——小团队管理与大团队管理
  5. [vue] 使用vue后怎么针对搜索引擎做SEO优化?
  6. poi html转换成word文档,Apache POI将HTML转换成Word
  7. BZOJ2794 [Poi2012]Cloakroom [离线][DP]
  8. oracle jdbc驱动jar包下载,oracle各个版本所需要的ojdbc jar驱动包以及版本对应关系...
  9. char * 与char []区别总结
  10. Win11键盘无法输入任何东西怎么解决?