美文网首页技术
漫画|TCP的四次挥手

漫画|TCP的四次挥手

作者: 陈宇明 | 来源:发表于2020-12-22 18:02 被阅读0次
image image image image image image image image image

MSL 是 Maximum Segment Lifetime,报文最大生存时间,它是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为 TCP 报文基于是 IP 协议的,而 IP 头中有一个 TTL 字段,是 IP 数据报可以经过的最大路由数,每经过一个处理他的路由器此值就减 1,当此值为 0 则数据报将被丢弃,同时发送 ICMP 报文通知源主机。

MSL 与 TTL 的区别:MSL 的单位是时间,而 TTL 是经过路由跳数。所以 MSL 应该要大于等于 TTL 消耗为 0 的时间,以确保报文已被自然消亡。

TIME_WAIT 等待 2 倍的 MSL,比较合理的解释是:网络中可能存在来自发送方的数据包,当这些发送方的数据包被接收方处理后又会向对方发送响应,所以一来一回需要等待 2 倍的时间

比如如果被动关闭方没有收到断开连接的最后的 ACK 报文,就会触发超时重发 Fin 报文,另一方接收到 FIN 后,会重发 ACK 给被动关闭方, 一来一去正好 2 个 MSL。

2MSL 的时间是从客户端接收到 FIN 后发送 ACK 开始计时的。如果在 TIME-WAIT 时间内,因为客户端的 ACK 没有传输到服务端,客户端又接收到了服务端重发的 FIN 报文,那么 2MSL 时间将重新计时

在 Linux 系统里 2MSL 默认是 60 秒,那么一个 MSL 也就是 30 秒。Linux 系统停留在 TIME_WAIT 的时间为固定的 60 秒

其定义在 Linux 内核代码里的名称为 TCP_TIMEWAIT_LEN:

<pre class="ql-syntax" spellcheck="false" style="margin: 0px; padding: 12px; background: rgb(25, 25, 25); border-radius: 4px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; white-space: pre-wrap; text-align: justify; font-size: 17px;">#define TCP_TIMEWAIT_LEN (60HZ) / how long to wait to destroy TIME-WAIT
state, about 60 seconds */

</pre>

如果要修改 TIME_WAIT 的时间长度,只能修改 Linux 内核代码里 TCP_TIMEWAIT_LEN 的值,并重新编译 Linux 内核。

image image image

需要 TIME-WAIT 状态,主要是两个原因:

防止具有相同「四元组」的「旧」数据包被收到;

保证「被动关闭连接」的一方能被正确的关闭,即保证最后的 ACK 能让被动关闭方接收,从而帮助其正常关闭;

image image image

相关文章

  • TCP三次握手、四次挥手漫画

    乔戈里大神的漫画TCP连接为什么是三次握手,而不是两次握手,也不是四次握手?TCP断开连接为什么是四次挥手,不是二...

  • 漫画|TCP的四次挥手

    MSL 是 Maximum Segment Lifetime,报文最大生存时间,它是任何报文在网络上存在的最长时间...

  • TCP的三次握手和四次挥手

    参考资料:[1].【TCP】详解TCP 三次握手和四次挥手[2]. iOS:为什么TCP连接要三次握手,四次挥手[...

  • 二十(8)、TCP协议的四次挥手 ------ 2020-04-

    1、TCP连接的四次挥手 2、TCP连接的长连接

  • TCP 三次握手 四次挥手

    一. TCP 三次握手 一. TCP 四次挥手 断开一个tcp连接则需要“四次挥手”: 客户端-发送一个FIN,用...

  • 传输层

    ICMP UDP TCP TCP的三次握手 TCP四次挥手 TCP状态机Tcp_status_map.jpg

  • 三次握手和四次挥手

    三次握手是TCP建立连接时进行的,四次挥手是TCP断开连接是进行的,要弄明白三次握手和四次挥手,需要了解TCP的协...

  • tcp/ip

    TCP/IP--理解TCP三次握手和四次挥手 - 简书

  • network basis 01

    1.TCP和UDP 2.TCP三次握手和四次挥手 TCP链接拆除需发送四个包,故称为 四次挥手, 客户端或服务器...

  • TCP的四次挥手

    前篇文推了TCP三次握手,现在给大家介绍一些什么叫做TCP的四次挥手。 1)四次挥手的详述 假设Client端发起...

网友评论

    本文标题:漫画|TCP的四次挥手

    本文链接:https://www.haomeiwen.com/subject/lugsnktx.html