关于tcp连接中timewait的作用
来源:互联网 发布:淘宝上怎么添加旺旺 编辑:程序博客网 时间:2024/06/11 04:25
今天简单的谈一下tcp连接中timewait的作用,如果没有timewait会发生什么呢?
我们知道首先请求关闭连接的一方会存在timewait状态。
首先我们来看一下tcp四次挥手的过程示意图:
客户端首先发起FIN请求,所以客户端会进入time_wait状态。
如果没有time_wait或者用户自己通过调整tcp_tw_recycle缩短了time_wait的时间会出现生什问题呢?
1.我们都知道的是time_wait太短或者取消,可能会使上一个连接延迟的数据包(关闭连接,但是没有关闭完全),所以延迟的数据包可能被新的连接收到,从而影响到新连接的数据。我们结合图示:
我们看到哦上一个连接的3号数据包并不是丢失而是在网络传输过程中由于某种原因发生了延迟,由于tcp的重传机制,发送端重新发送了新的3号数据包给接收端,随后发送端和接收端开始了四次挥手,这是因为系统回收time_wait太快,导致time_wait时间太短,引得连接建立后,上个连接在网络中延迟的数据包被新的连接收到了,从而破坏了新的tcp连接的可靠性。
在linux中,time_wait时间定死了为1分钟,也就是2MSL,这个时间会保证延迟的数据包在网络中消失,也会保证没有丢失的数据包在这个时间内到达指定端,所以在这个时间这样据不会存在上一个连接的数据包被新的连接收到的情况了。
2.第二个作用是采用正常的time_wait机制会防止最后一个对FIN的ACK丢失,我们看下面这张图:
当最后一个ACK丢失后,服务端一直处于last_ack状态,因为没有收到客户端的ACK所以服务端就会认为这个连接还是有效的,就可能继续给客户端发送消息,而且当该服务端收到新的连接请求时,由于服务端还在等待上个连接的ACK,这时由于它等待的seq值和新的请求的seq不符,所以客户端会发送rst请求重新连接,所以新的连接无法建立,最终报错终止。
- 关于tcp连接中timewait的作用
- TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用
- 一些加快回收timewait连接的参数
- 服务器tcp连接timewait过多优化及详细分析
- TCP timewait 原理
- TCP之再谈解决服务器TIMEWAIT过多的问题
- TCP之再谈解决服务器TIMEWAIT过多的问题
- TCP之再谈解决服务器TIMEWAIT过多的问题
- TCP之再谈解决服务器TIMEWAIT过多的问题
- Nginx网络连接timewait问题
- 关于TCP连接的步骤
- 关于TCP连接的Close
- timewait
- TCP TimeWait状态详解(比较全)
- 聊聊TCP四次挥手中的timewait
- 当出现大量timewait状态的连接时,该如何处理?
- linux socket timewait连接错误情况
- 关于TCP最大连接数的问题
- JavaMelody应用监控使用指南
- thinkphp5 配置验证码
- HDUOJ 1969 Pie
- Qt 第6章 布局管理(1) 在窗体中摆放窗口部件 学习笔记
- Javascript实现快速排序(Quicksort)
- 关于tcp连接中timewait的作用
- 双线性插值原理及其实现--基于OpenCV实现
- Makefile---简介
- 数据库分区表
- leetcode 3.Longest Substring Without Repeating Characters
- 短信监听器
- tensorflow android 关键词 激活
- 基础图形绘制
- [Python] Mac OS 下 os.startfile 的替代方案