RE: TCP Checksum Interoperability
Michael Smith <msmith@corp.iready.com> Fri, 05 April 2002 19:44 UTC
Message-ID: <034670D62D19D31180990090277A37B7021214E1@mercury.corp.iready.com>
From: Michael Smith <msmith@corp.iready.com>
To: Michael Smith <msmith@corp.iready.com>,
"'CTrobridge@baltimore.com'" <CTrobridge@baltimore.com>,
"'sra+ietf@hactrn.net'" <sra+ietf@hactrn.net>,
"'L.Wood@surrey.ac.uk'" <L.Wood@surrey.ac.uk>,
"'ietf@IETF.ORG'" <ietf@IETF.ORG>,
"'tcp-impl@grc.nasa.gov'" <tcp-impl@grc.nasa.gov>
Subject: RE: TCP Checksum Interoperability
Date: Fri, 5 Apr 2002 11:44:19 -0800
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: multipart/alternative;
boundary="----_=_NextPart_001_01C1DCDA.46EF6580"
Sender: owner-tcp-impl@grc.nasa.gov
Precedence: bulk
Status: RO
Content-Length: 14945
Lines: 417
I'm cross-posting this thread to tcp-impl@grc.nasa.gov for archival purposes, we'll see if any further replies to the ietf list get posted at tcp-impl@grc.nasa.gov too (for instructions to join tcp-impl, see below). My rationale here is just to try and keep tcp-impl as a good source of material on tcp/ip implementation issues. It seems you can't post to 'tcp-impl@egroups.com' (see also below for discussion on this group). Sorry, Chris, forgot to copy you on this. Aloha Mike Smith CTO, iReady To: ietf@IETF.ORG Subject: Re: TCP Checksum Interoperability From: Rob Austein <sra+ietf@hactrn.net> Date: Fri, 05 Apr 2002 14:29:44 -0500 In-Reply-To: <F86F34FDF1F9D411B7A40008C74C27B853776C@baltimore.com> References: <F86F34FDF1F9D411B7A40008C74C27B853776C@baltimore.com> Reply-To: ietf@IETF.ORG Sender: owner-ietf@IETF.ORG User-Agent: Wanderlust/2.4.1 (Stand By Me) SEMI/1.13.7 (Awazu) FLIM/1.13.2 (Kasanui) Emacs/20.7 (i386--freebsd) MULE/4.0 (HANANOEN) ---------------------------------------------------------------------------- ---- 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, but one is (apparently) more surprising to most implementors than the other, due to the implementation techniques that suggest themselves on most modern processors. -----Original Message----- From: Michael Smith Sent: Friday, April 05, 2002 10:39 AM To: 'tcp-impl@egroups.com' Cc: Michael Smith Subject: RE: TCP Checksum Interoperability Lloyd: your comment is interesting. I know there hasn't been much activity on tcp-impl, but it's still there. Allison sent an email a while back encouraging it's use, but I can't find that just now. To subscribe (or unsubscribe) to the tcp-impl mailing list, send mail to majordomo@grc.nasa.gov with one of the following in the body of the message. subscribe tcp-impl unsubscribe tcp-impl There's also http://groups.yahoo.com/group/tcp-impl/ but activity there stopped about July 2001. I never understood how the two mailing lists related, but I posted your mail (below) to both, I hope you don't mind. Aloha Mike Smith CTO, iReady -----Original Message----- From: Lloyd Wood [mailto:l.wood@eim.surrey.ac.uk] Sent: Friday, April 05, 2002 4:43 AM To: Chris Trobridge Cc: ietf@ietf.org Subject: Re: TCP Checksum Interoperability See sections 3-5 of RFC1624 for discussion of the one's complement problem for the IP header checksum. I presume similar applies for TCP, although I don't know offhand if it's written down anywhere. L. On Fri, 5 Apr 2002, Chris Trobridge wrote: > I writing to this list because the TCP workgroup was shutdown a while ago. > > We have a compatibility problem between two third party implementations of > the TCP checksum. > > The problem concerns the representation of zero, which has two 1-s > complement representations (0000 and ffff). > > We don't have source to either stack but I managed to deduce the problem > from looking at a packet trace. The receiver drops all datagrams containing > a TCP with a TCP checksum of ffff. > > The receiver appears to be following the checksum procedure in the RFC > literally - ie zero checksum, recalculate and check that the result is the > complement of what the sender sent. The problem is that the sender and > receiver don't agree about zero and hence the datagram is dropped silently. > > My view is that the receiver is in error; it should be checking the special > case of 0. > > All the receiver code I have seen doesn't work this way. The normal > approach is to calculate the1-s complement sum with checksum in place and > check that this is zero. The methods I konw always return just one > representation for zero, hence there is no special case. > > Any thoughts? > > Thanks, > Chris > stupid autoappended signatures below. > > ---------------------------------------------------------------------------- ------------------------------------- > The information contained in this message is confidential and is intended > for the addressee(s) only. If you have received this message in error or > there are any problems please notify the originator immediately. The > unauthorized use, disclosure, copying or alteration of this message is > strictly forbidden. Baltimore Technologies plc will not be liable for direct, > special, indirect or consequential damages arising from alteration of the > contents of this message by a third party or as a result of any virus being > passed on. > > In addition, certain Marketing collateral may be added from time to time to > promote Baltimore Technologies products, services, Global e-Security or > appearance at trade shows and conferences. > > This footnote confirms that this email message has been swept by > Baltimore MIMEsweeper for Content Security threats, including > computer viruses. > > <L.Wood@surrey.ac.uk>PGP<http://www.ee.surrey.ac.uk/Personal/L.Wood/> - This message was passed through ietf_censored@carmen.ipv6.cselt.it, which is a sublist of ietf@ietf.org. Not all messages are passed. Decisions on what to pass are made solely by Raffaele D'Albenzio.
- 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