# TCP: SACK has been disabled due to excessive retransmissions on 10.0.0.1:443

- **ID:** `networking/tcp-sack-perf-downshift`
- **Domain:** networking
- **Category:** network_error
- **Verification:** ai_generated
- **Fix Rate:** 78%

## Root Cause

The TCP Selective Acknowledgment (SACK) feature is automatically disabled by the kernel when the TCP connection experiences a high rate of retransmissions, often due to packet corruption or a misbehaving intermediate device that drops or corrupts SACK options.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| Linux kernel 5.15 | active | — | — |
| Linux kernel 6.1 | active | — | — |
| Linux kernel 6.8 | active | — | — |

## Workarounds

1. **ethtool -S eth0 | grep -i crc** (85% success)
   ```
   ethtool -S eth0 | grep -i crc
   ```
2. **ip route change 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1 metric 100 tcp_sack 1** (75% success)
   ```
   ip route change 10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1 metric 100 tcp_sack 1
   ```

## Dead Ends

- **Setting net.ipv4.tcp_sack=0 to prevent the error from appearing.** — This disables SACK entirely, which reduces throughput for all connections, and does not address the root cause (e.g., packet corruption or middlebox interference). (90% fail)
- **Increasing tcp_rmem and tcp_wmem to accommodate retransmissions.** — Larger buffers may hide the symptom temporarily but do not fix the underlying issue causing retransmissions (e.g., faulty NIC or cable). (70% fail)
