潮州市网站建设_网站建设公司_PHP_seo优化
2025/12/29 9:32:37 网站建设 项目流程

# TCP TIME_WAIT 与 PAWS 机制说明

快速回收 TIME_WAIT 会破坏 TCP 用来区分“旧连接”和“新连接”的时间边界,
导致 PAWS 使用的 `ts_recent` 把“新连接的包”误判成“旧连接的迟到包”,从而直接丢弃。

---

## 在不开快速回收时的流程

1. **连接 A 关闭**
2. **进入 TIME_WAIT**(2MSL,≈60~120 秒)
- 相同四元组不能复用
- 旧连接的所有迟到包能自然消失
3. **TIME_WAIT 结束**
4. **新连接 B 建立**
- 新的 ISN
- 新的 TSval 基线
- `ts_recent` 被安全更新

> 👉 TIME_WAIT 给了 PAWS 一个“安全隔离区”

 

# TCP 快速回收 TIME_WAIT(tcp_tw_recycle)流程示意

当启用快速回收 TIME_WAIT 后,TCP 连接的处理流程如下:

---

## 1️⃣ 连接 A 关闭
- 客户端或服务器主动关闭连接。
- 正常情况下会进入 TIME_WAIT,但快速回收开启后:
- TIME_WAIT 状态被提前清理。
- 四元组(src_ip, src_port, dst_ip, dst_port)可以被立即复用。

---

## 2️⃣ 新连接 B 尝试建立
- 使用相同四元组立即发送 SYN。
- TCP 时间戳 TSval 可能:
- 与旧连接 TSval 接近
- 或由于客户端 NAT/重启导致比服务端 ts_recent 记录的值小

---

## 3️⃣ ts_recent 检查
- PAWS(Protection Against Wrapped Sequence numbers)使用 ts_recent 防止旧连接包干扰新连接。
- ts_recent 逻辑:
```text
if new_SYN_TSval <= ts_recent[四元组]:
drop SYN
else:
accept SYN
ts_recent 更新为 new_SYN_TSval
快速回收 TIME_WAIT 破坏了“旧连接和新连接”的时间边界:

ts_recent 认为新连接的 SYN 是“旧连接迟到的包”

直接丢弃 SYN

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询