On Thu, Nov 05, 1998 at 08:58:24PM -0800, Steve Shah wrote:
> I'm fiddling with TCP options -- I'd like to have the system
> add MSS announcements as part of each packet's stock list of options.
> I found that the options are generated in tcp.h in the
> tcp_build_and_update_options for all packets after the handshake.
Why do you want to do this? It's not part of any TCP spec AFAIK.
> The addition of the MSS info appears to be on a nice 4 byte boundry
> and with the possibility of being able to send any number of SACKs
> in the options, adding one more entry shouldn't mean I need to change
> anything else. Looking at the tcp_syn_build_options, I can't see
> what I'm doing wrong.
No, it's limited to 3 SACKs with a timestamp. When all 3 SACKs are
sent, you're overrunning the options. To quote RFC2018:
A SACK option that specifies n blocks will have a length of 8*n+2
bytes, so the 40 bytes available for TCP options can specify a
maximum of 4 blocks. It is expected that SACK will often be used in
conjunction with the Timestamp option used for RTTM [Jacobson92],
which takes an additional 10 bytes (plus two bytes of padding); thus
a maximum of 3 SACK blocks will be allowed in this case.
Though SACKs shouldn't be being sent normally. Unless the screwed up
timestamps make it look like the packet order is screwed ;-)
-- Jamie
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]