TCP conformance question

Harti Brandt hartmut.brandt at dlr.de
Sat Nov 17 14:23:14 PST 2007


Hi,

I was browsing through our TCP implementation and found the following: 
according to RFC 793 if a segment with length 0 is received its sequence 
number must hold: RCV.NXT <= SEG.SEQ < RCV.NXT + RCV.WND. That is, the 
sequence number must be within the window. Otherwise the segment is not 
acceptable and an ACK must be sent (see table on p. 69 of the RFC). This 
is meant to re-synchronize the TCPs. Our TCP responds with an ACK for all 
sequence numbers outside the window, except for SEG.SEQ == RCV.NXT + 
RCV.WND. I've no idea whether this can be a problem in bizarre loss 
situations or not. In any case it would be interesting to know whether 
this was done on purpose, or is just an implementation effect. The BSD 
code in 'TCP/IP Illustrated' has the same 'problem' so I suppose that 
behaviour is rather old.

Has anybody insight into this effect?

harti


More information about the freebsd-net mailing list