Subject: Re: perhaps time to check our TCP against spec?
To: Kevin M. Lahey <kml@nas.nasa.gov>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-net
Date: 04/06/1998 19:05:53
>>Both will advertise an MSS of ETHERMTU - sizeof(struct tcpiphdr), because
>>ETHERMTU > METRICOMMTU, that is, assuming the Ethernet has an IP address
>>assigned to it. If not, they will advertise METRICOMMTU -
>>sizeof(struct tcpiphdr). "Where's the problem?"
>The key issue here is the difference between the advertised MSS
>and the largest packet to be sent. NetBSD will in fact only
>send out as large a packet as the interface will handle[*],
>so that in this case, it can advertise an MSS of 1500, but it
>will still do the right thing and only send out a packet of <1200
>bytes. Other TCP stacks should do the same. If they don't,
>it seems like a bug to me. TCP packets should never be fragmented
>coming out of the source machine, no matter what MSS has been
>advertised.
Yes, that, and that merely RFC-conformant hosts (or NetBSD hosts
without the more aggressive ACK changes) would only be ACKing2*MSS.
Which could be a heck of a lot more than twice the actual `MSS'
derived from the interface.
>[*] I just committed a fix a few weeks ago involving TCP options
>and IP options where we used to fragment packets before sending
>them out, in a few special cases. :-)
Is that in 1.3.1 or not?