TCP#
- TCP Windows
- TCP Ephemeral port
- Linux 默认 TCP Ephemeral port 范围
- Load balancer 应对 Ephemeral port 用尽的方法
- Ref.
- How to stop running out of ephemeral ports and start to love long-lived connections
- Outgoing connections on Linux part 1 - TCP
- Long-lived connections
- Basics - how port allocation works
- Vanilla TCP is a happy case
- Manually selecting source IP address
- IP_BIND_ADDRESS_NO_PORT
- Explicitly selecting a source port
- Userspace connectx implementation
- Outgoing connections on Linux - part 2 - UDP
- Vanilla UDP is limited
- SO_REUSEADDR is hard
- Detecting socket conflicts with eBPF
- Socket traversal - SOCK_DIAG ss way
- SO_REUSEADDR as a lock
- Faking source IP and port discovery
- Putting it all together
- Summary
- Ephemeral port exhaustion and how to avoid it
- A story of a production incident
- How to stop running out of ephemeral ports and start to love long-lived connections
- Linux Ref.
- Challenge ACK
- RFC 5961 - Improving TCP’s Robustness to Blind In-Window Attacks