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?