nanog mailing list archives
Re: TCP torture testing
From: William Herrin <bill () herrin us>
Date: Fri, 17 Jan 2025 11:29:32 -0800
On Fri, Jan 17, 2025 at 10:42 AM Lukas Tribus <lukas () ltri eu> wrote:
This is more difficult because a TCP proxy (as in a userspace application) does not do the TCP segmenting, the kernel does. Sure the application may set flags like TCP_NODELAY to toggle Nagle, but beyond that the application has not really control over TCP segmentation.
Well... In theory, TCP closes the segment at the end of the application's send() and sets the PSH flag. Likewise, on the receiving side the recv() returns before filling the buffer upon receipt of a segment with the PSH flag set. In theory. In practice, it doesn't always work out that way and applications which depend on a short recv() meaning that was where the sender's send() ended tend to flake out in unexpected ways. On Fri, Jan 17, 2025 at 10:13 AM Brandon Martin <lists.nanog () monmotha net> wrote:
* (Especially) Unusual segmentation e.g. splitting part of a stream that would and should normally be sent in a single segment into several smaller segments sent back-to-back
You can force odd segmentation in Linux with:
iptables -t mangle --insert POSTROUTING --proto tcp \
--tcp-flags SYN,RST,FIN SYN --jump TCPMSS --set-mss 11
Regards,
Bill Herrin
--
William Herrin
bill () herrin us
https://bill.herrin.us/
Current thread:
- TCP torture testing Brandon Martin (Jan 17)
- Re: TCP torture testing Lukas Tribus (Jan 17)
- Re: TCP torture testing William Herrin (Jan 17)
- Re: TCP torture testing Brandon Martin (Jan 17)
- Re: TCP torture testing Pete D. (Jan 18)
- Re: TCP torture testing Etienne-Victor Depasquale via NANOG (Jan 22)
- Re: TCP torture testing William Herrin (Jan 17)
- Re: TCP torture testing Lukas Tribus (Jan 17)
- Re: TCP torture testing Brandon Martin (Jan 17)
