前言:

  TCP断开连接的四次握手中, 主动关闭连接的一方的TIME_WAIT状态尤为重要。

1:TCP连接的三次握手和断开的四次挥手

2:由上图可知

  在主动关闭的一方, 会经历TIME_WAIT状态, 而TIME_WAIT的持续时间是2MSL, 在这期间, 系统不会建立与此连接相同的连接(Sip:Sport and Dip:Dport),TIME_WAIT主要有两个作用。

2.1 实现可靠的四次挥手断开连接

  首先, 链路状态是不可靠的, 但是TCP之所以在不可靠的链路上称为可靠协议是因为他比较全面的报文确认机制, 假设没有TIME_WAIT状态, client收到对端的FIN分节发送ACK分节之后就变为了CLOSED状态, 因为链路的不可靠, 这个ACK分节可能会丢失, 一旦超时服务器端就会重新发送FIN给client, 但此时的client已经CLOSED, 只能回应RST分节, 会造成server的异常关闭, 有了TIME_WAIT, 可在TIME_WAIT处再次接收FIN并回复ACK。

  2.2 清除前一个连接的旧报文影响

  所谓前一个连接, 是指前后两个连接的四元组是一样的,  因为TIME_WAIT的时间是2MSL, 在这期间是禁止建立相同四元组的连接, 2MSL正好从FIN, ACK俩个方向上确保了旧连接的报文已经消失在了链路中了。

最新文章

  1. DOM查找元素
  2. 1427. SMS
  3. [Java基础] SequenceInputStream输入合并流
  4. MySQL的优化技术总结
  5. [PHP100] PHP如何防止注入及开发安全
  6. UML 2.0(装载)
  7. css内容生成器
  8. PHPstorm 如何新增项目
  9. yum 安装Apache
  10. python学习day22 面向对象(四) 约束&反射
  11. 《Windows核心编程》读书笔记 上
  12. maven项目,httpclient jar包冲突
  13. <%: Html.DisplayNameFor与 <%: Html.DisplayFor的区别
  14. 014 view-controller标签
  15. python basic
  16. redis安装详解
  17. [Alg::DP] 袋鼠过河
  18. IntelliJ IDEA 的 .idea 目录加入.gitignore无效的解决方法
  19. Maven中央仓库——你可能不知道的细节
  20. beans有无状态

热门文章

  1. fsck命令详解
  2. [buaa-SE-2017]个人作业-Week2
  3. 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段
  4. 20145214 《网络对抗技术》 MSF基础应用
  5. KMP算法之next数组的求解思路
  6. Class 1
  7. python实现树莓派开机自动发送IP到指定邮箱
  8. DFS--障碍在指定时间会消失
  9. week4d:个人博客作业
  10. mysubmail 短信报警