博客
关于我
TCP 七种定时器
阅读量:735 次
发布时间:2019-03-21

本文共 1163 字,大约阅读时间需要 3 分钟。

TCP中的七种定时器

在TCP协议中,定时器是实现TCP流量控制、错误检测和连接管理的关键机制。以下是TCP中常见的七种定时器及其功能。

1. 建立连接定时器(Connection-establishment timer)

这个定时器用于管理建立TCP连接的过程。TCP连接通常通过三次握手完成,建立连接定时器在发送SYN包时启动,通常设置为3秒。若SYN包丢失,经过3秒后会重新发送SYN包。接收方在接收SYN包后会启动其自己的SYN-ACK定时器。此外,/proc/sys/net/ipv4/tcp_syn_retries可以设置SYN包重传次数。

2. 重传定时器(Retransmission timer)

重传定时器用于处理未确认的数据包。当发送的数据包没有收到 ACK 应答时,重传定时器会触发,重新发送数据包。其工作原则包括:

  • 在发送前置一个数据包启动重传定时器;
  • 若发送队列为空,则停止定时器;
  • 定时器超时后,重新发送数据包最前端的报文段;
  • 若多个报文段累计确认,则批量处理。

3. 延迟应答定时器(Delayed ACK timer)

延迟应答定时器用于在接收数据时,延迟发送 ACK 应答,以便与后续的数据包一起发送,减少数据包的传输次数。这通常设置为200毫秒,以优化网络效率。

4. 坚持定时器(Persist timer)

坚持定时器用于处理发送方无法立即得到窗口更新的情况。当接收方的窗口变为非零时,会发送窗口更新通知。但若该通知丢失,坚持定时器会启动,发送窗口探查包以发现窗口变化。这些探查包称为窗口探查。

5. 保活定时器(Keepalive timer)

保活定时器的作用是检测连接是否仍然活跃。一旦设置,若在明确的时间间隔内没有数据交换(默认为2小时),就会发送探测包以验证对端是否存活。常用于防止长时间空闲的连接被废止,但其超时时间通常较长,建议在需要心跳机制时手动配置。

6. FIN_WAIT_2定时器(FIN_WAIT_2 timer)

在主动关闭连接的一方完成发送FIN包并接收ACK后,进入FIN_WAIT_2状态,等待被动关闭方发送终止连接请求。如果当期内未收到,被动关闭方的FIN丢失,FIN_WAIT_2定时器将触发协议处理,以划分资源或断开连接。此定时器可通过/proc/sys/net/ipv4/tcp_fin_timeout设置。

7. TIME_WAIT定时器(TIME_WAIT timer, 也叫2MSL timer)

TIME_WAIT是连接终止过程中的最后一个状态,确保重发最后的ACK或 FIN 包不会被丢失。它等待的时间为两倍最大段生存时间(2MSL),以保证任何迟到的数据包在新的连接中不会被处理。这个时间内,相同IP地址、端口对的新连接不会被建立。

转载地址:http://ukhgz.baihongyu.com/

你可能感兴趣的文章
OpenCV与AI深度学习 | 基于YOLOv8 + BotSORT实现球员和足球检测与跟踪 (步骤 + 源码)
查看>>
OpenCV与AI深度学习 | 基于YOLOv8实现高级目标检测和区域计数
查看>>
OpenCV与AI深度学习 | 基于YOLOv8的停车对齐检测
查看>>
OpenCV与AI深度学习 | 基于YoloV8的药丸/片剂类型识别
查看>>
OpenCV与AI深度学习 | 基于YOLO和EasyOCR从视频中识别车牌
查看>>
OpenCV与AI深度学习 | 基于图像处理的火焰检测算法(颜色+边缘)
查看>>
OpenCV与AI深度学习 | 基于拉普拉斯金字塔实现图像融合(步骤 + 代码)
查看>>
OpenCV与AI深度学习 | 基于机器视觉的磁瓦表面缺陷检测方案
查看>>
OpenCV与AI深度学习 | 基于深度学习的轮胎缺陷检测系统
查看>>
OpenCV与AI深度学习 | 如何使用YOLOv9分割图像中的对象
查看>>
OpenCV与AI深度学习 | 如何使用YOLOv9检测图片和视频中的目标
查看>>
OpenCV与AI深度学习 | 如何在 Docker 容器中使用 GPU
查看>>
OpenCV与AI深度学习 | 实战 | OpenCV中更稳更快的找圆方法--EdgeDrawing使用演示(详细步骤 + 代码)
查看>>
OpenCV与AI深度学习 | 实战 | OpenCV传统方法实现密集圆形分割与计数(详细步骤 + 代码)
查看>>
OpenCV与AI深度学习 | 实战 | OpenCV实现扫描文本矫正应用与实现详解(附源码)
查看>>
OpenCV与AI深度学习 | 实战 | 使用OpenCV和Streamlit搭建虚拟化妆应用程序(附源码)
查看>>
OpenCV与AI深度学习 | 实战 | 使用OpenCV确定对象的方向(附源码)
查看>>
OpenCV与AI深度学习 | 实战 | 使用YOLOv8 Pose实现瑜伽姿势识别
查看>>
OpenCV与AI深度学习 | 实战 | 使用YoloV8实例分割识别猪的姿态(含数据集)
查看>>
OpenCV与AI深度学习 | 实战 | 使用姿态估计算法构建简单的健身训练辅助应用程序
查看>>