# TCP零窗口探测失败：3次探测后未收到接收方响应

- **ID:** `networking/tcp-zero-window-probe-failure`
- **领域:** networking
- **类别:** protocol_error
- **错误码:** `ETIMEDOUT`
- **验证级别:** ai_generated
- **修复率:** 78%

## 根因

接收方的TCP窗口为零，且发送方的零窗口探测未得到确认，表明接收方在保持零窗口时无响应或已崩溃。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| Linux kernel 5.15 | active | — | — |
| Linux kernel 6.1 | active | — | — |
| FreeBSD 13.2 | active | — | — |

## 解决方案

1. ```
   Forcefully close the TCP connection from the sender using tcpkill or iptables, then re-establish: sudo tcpkill -i eth0 port 8080; sleep 2; systemctl restart myapp
   ```
2. ```
   Set a shorter TCP user timeout on the socket to abort the connection faster: sysctl -w net.ipv4.tcp_retries2=5
   ```

## 无效尝试

- **** — Zero-window probing is separate from keepalive; keepalive settings do not affect probe retransmission timers. (85% 失败率)
- **** — The issue is at the application or receiver side; restarting the sender's interface does not fix the receiver's unresponsiveness. (75% 失败率)
