Re: [tcpm] draft-eggert-tcpm-historicize-00

"Biswas, Anumita" <> Sun, 27 June 2010 19:22 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 3BCAE3A69BF for <>; Sun, 27 Jun 2010 12:22:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -5.732
X-Spam-Status: No, score=-5.732 tagged_above=-999 required=5 tests=[AWL=0.867, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id O3H6o8yhU9YI for <>; Sun, 27 Jun 2010 12:22:25 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 92A2D3A69C8 for <>; Sun, 27 Jun 2010 12:22:25 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.53,492,1272870000"; d="scan'208";a="390677895"
Received: from ([]) by with ESMTP; 27 Jun 2010 12:22:25 -0700
Received: from ( []) by (8.13.1/8.13.1/NTAP-1.6) with ESMTP id o5RJMOKs029462; Sun, 27 Jun 2010 12:22:25 -0700 (PDT)
Received: from ([]) by with Microsoft SMTPSVC(6.0.3790.3959); Sun, 27 Jun 2010 12:22:24 -0700
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Sun, 27 Jun 2010 12:22:24 -0700
Message-ID: <>
In-Reply-To: <>
Thread-Topic: [tcpm] draft-eggert-tcpm-historicize-00
thread-index: AcsWKdbTsDOfNqeaTpC5e3sZg0qXtgAAkKqA
From: "Biswas, Anumita" <>
To: Joe Touch <>
X-OriginalArrivalTime: 27 Jun 2010 19:22:24.0739 (UTC) FILETIME=[12A65B30:01CB162E]
Subject: Re: [tcpm] draft-eggert-tcpm-historicize-00
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sun, 27 Jun 2010 19:22:29 -0000

> -----Original Message-----
> From: Joe Touch [] 
> Sent: Sunday, June 27, 2010 11:51 AM
> To: Biswas, Anumita
> Cc:;;
> Subject: Re: [tcpm] draft-eggert-tcpm-historicize-00
> Hi, Anumita,
> Biswas, Anumita wrote:
> ...
> > I have heard only anecdotal evidence of a very large company doing 
> > very large copies of data (about a Tera Byte) across a 
> local network 
> > and then finding bit corruptions in the data received on 
> the other end 
> > - clearly the link CRC and the TCP 1s compl summation 
> checksum failed 
> > to catch those errors.
> Well, that's the point. It's not so clear that the checks are 
> what failed. It could easily have been a bug in the 
> implementation, or an error in the hardware that corrupted 
> data after it was received correctly. I.e., no matter how 
> good these checks, there are other ways in which data can be 
> corrupted.
> > In my own company, I have seen a case where a very large 
> block (1460 
> > bytes - a packet size) of data was replaced and gone 
> undetected and we 
> > could not root cause the problem - the problem just 
> disappeared after 
> > showing up for a few weeks - but in this case, it is 
> possible that the 
> > corruption occurred before the data was sent by TCP itself.
> Yes, that's my concern.
> > So to me, to hinge whether we support a new TCP CRC based 
> checksum or 
> > not, on practical experience in the wild, is probably not a safe 
> > approach. Ofcourse, if we had multiple proven examples of 
> this in the 
> > wild, we'd feel more motivated to do this.
> I don't follow this logic. We have no measured evidence of 
> this ever occurring. The evidence we have to date is that the 
> end system software is more likely the problem.
> Everything so far points to the need for an application 
> protocol check, i.e., a final, total transfer checksum on 
> each large transaction (i.e., the whole file). That was one 
> conclusion of the 2000 paper, FWIW.
I mentioned the advantage of being able to offload a TCP based checksum
to the NIC. If I were to extend your argument that end system software
is more likely the problem - a checksum over the whole file could also
be prone to error. 

I think we are only trying to deploy a "stronger" checksum - we are not
making claims that it will find all problems in end to end software -
and as such is not the strongest checksum.

> > Also, I am more worried about packet sizes greater than 
> 1500 bytes - 
> > where the Ethernet CRC checksum becomes weaker. Typical 
> ethernet MTUs 
> > across the internet does not exceed 1500 bytes today - so 
> right now, 
> > the problem scope is limited to Data Centers and other such 
> local LANs 
> > where the end to end PMTU is greater than 1500 bytes.
> That should be verifiable. Then again, if the CRC32 fails on 
> jumboframes, why would adding CRC16 at TCP help? other than 
> the fact that it's a 'different' sum?  
The draft suggests using the Castagnoli 32-bit polynomial used in the
"CRC 32C" algorithm which generates a 32 bit checksum quantity. No
mention of CRC16.
The draft specifies using a different "space" in the TCP options area,
to transfer this checksum. It does not suggest using the 16-bit TCP
checksum space for this value. It does debate over what to do with the
16-bit summation checksum. Now, after many discussions, it is more clear
that we do need the 16-bit checksum as well to prevent middleboxes from

Please read why the Castagnoli polynomial based CRC checksum is stronger
than the Ethernet CRC32 checksum carried by the Ethernet frame. 

Your argument suggests 
> that such data centers need different *ethernet* checksums, 
> not different TCP ones. Then the data centers can leverage - 
> and reuse - that where necessary.
The ideal way to do this would be to have Ethernet frames include the
CRC32C checksum instead of the CRC32 checksum. But changing the Ethernet
standard across the board is impossible due to backward compatibility
issues. But TCP options provides a much easier path to introducing a
stronger checksum as it does not break backward compatibility and can be
offloaded to the NIC as well. 

Data Centers are one place where Jumbo frames are deployed - but there
could be others. So I don't understand what you mean by "data centers
can leverage and reuse that where necessary".

> Joe