Re: TCP Checksum Interoperability
Ignacio Goyret <igoyret@lucent.com> Fri, 05 April 2002 20:27 UTC
Message-Id: <3.0.5.32.20020405122753.03c6b7d0@grigri.eng.ascend.com>
X-Sender: igoyret@grigri.eng.ascend.com
X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.5 (32)
Date: Fri, 05 Apr 2002 12:27:53 -0800
To: Joe Touch <touch@ISI.EDU>
From: Ignacio Goyret <igoyret@lucent.com>
Subject: Re: TCP Checksum Interoperability
Cc: tcp-impl@grc.nasa.gov
In-Reply-To: <3CAE038D.3030203@isi.edu>
References: <F86F34FDF1F9D411B7A40008C74C27B853776C@baltimore.com>
<20020405192944.E46F51CA1@thrintun.hactrn.net>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Sender: owner-tcp-impl@grc.nasa.gov
Precedence: bulk
Status: RO
Content-Length: 1264
Lines: 26
At 12:05 PM 4/5/02 -0800, Joe Touch wrote: >Rob Austein wrote: >> The last time this came up for a TCP implementation I used to >> maintain, our interpretation of Robustness Principle applied to this >> problem dictated that we shouldn't send segments with checksum fields >> set to all ones (that is, we shouldn't send ~(+0)), but that we had to >> accept either ~(+0) or ~(-0) in received segments. >> >> Strictly speaking, either zero state is completely legal, > >See my other post on this, as per RFC1624 section 3, only one state >(0x0000) is legal as the complement of the checksum of non-zero data. >TCP checksummed data must contain at least one nonzero word (the one >with the TCP header length, which must be >=20). > >The receiver is entirely justified in considering 0xffff as an error. I agree. Both 0x0000 and 0xFFFF are distinct results from the checksum calculation. My guess is that this confusion radiates from UDP which allows not calculating checksums. In the UDP case (and this case only), a calculated value of 0x0000 needs to be sent as something else, otherwise, the receiver wouldn't know if the sender meant "no checksum sent" or "checksum sent is 0". But this doesn't apply to TCP, where the checksum must always be calculated.
- RE: TCP Checksum Interoperability Michael Smith
- RE: TCP Checksum Interoperability Michael Smith
- Re: TCP Checksum Interoperability Michael Smith
- Re: TCP Checksum Interoperability Joe Touch
- Re: TCP Checksum Interoperability Ignacio Goyret
- RE: TCP Checksum Interoperability Lloyd Wood
- RE: TCP Checksum Interoperability Lloyd Wood
- Re: TCP Checksum Interoperability Rob Austein
- Re: TCP Checksum Interoperability J. Noel Chiappa
- Re: TCP Checksum Interoperability Lloyd Wood
- Re: TCP Checksum Interoperability Rob Austein
- Re: TCP Checksum Interoperability Matt Crawford
- Re: TCP Checksum Interoperability Alan Cox
- Re: TCP Checksum Interoperability Lloyd Wood
- Re: TCP Checksum Interoperability Lloyd Wood
- Re: TCP Checksum Interoperability der Mouse
- Re: TCP Checksum Interoperability der Mouse
- Re: TCP Checksum Interoperability vint cerf
- Re: TCP Checksum Interoperability Fred Baker
- Re: TCP Checksum Interoperability Joe Touch
- Re: TCP Checksum Interoperability der Mouse
- RE: TCP Checksum Interoperability Chris Trobridge
- RE: TCP Checksum Interoperability Bob Braden