RE: Checksum in IPv6 header
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Checksum in IPv6 header



Fred,

I could add, that at the time, it was known that more and more, some
newer IPv4 forwarding machines circumvent TRUE checksum validation on
input/ingress, and/or recalculation on output/egress. This was
facilitated by things already mentioned: the stability of the IPv4
implementations - the "debug" factor mentioned by Fred B. lost its
importance - and by the fact that statistically, packet errors caused by
faulty links between two routers would be uncovered a lot more often, if
not exclusively, at L2. 

Performance wise, clever implementations already existed, which would
reduce the number of memory accesses involved for checksum calculations
- a few to begin with, since it is only a header checksum - by combining
the checksum calculation with regular operations on the header fields
involved in checksum.

Regards,
Alex

> -----Original Message-----
> From: Templin, Fred L [mailto:Fred.L.Templin at boeing.com] 
> Sent: Tuesday, January 29, 2008 11:10 AM
> To: Rahim Choudhary; Fred Baker
> Cc: ipv6 at ietf.org
> Subject: RE: Checksum in IPv6 header
> 
> 
> Rahim,
> 
> About the layer 2 and layer 4 checksums, from what I have
> been told and AFAICT the IPv6 Extension Headers are only 
> covered by L2 checksums; not L4. The question comes to
> 1) how likely is it that an error could occur in the
> extension headers that was not caught by the L2 checks,
> and 2) how bad would it be if that happened.
> 
> About 1), as Fred said this should only be problematic
> when there are implementation errors. That assertion I
> believe is supported by the work of Stone et al:
> 
> "When the CRC and TCP Checksum Disagree" 
> http://citeseer.ist.psu.edu/cache/papers/cs/21401/http:zSzzSzs
> igcomm.it.
> uu.sezSzconfzSzpaperzSzsigcomm2000-9-1.pdf/stone00when.pdf
> 
> "Performance of Checksums and CRCs Over Real Data" 
> http://citeseer.ist.psu.edu/cache/papers/cs/1909/ftp:zSzzSzftp
> .dsg.stanf
> ord.eduzSzpubzSzpaperszSzsplice-paper.pdf/stone98performance.pdf  
> 
> especially in the first of these two where it was observed
> that only a small number of "bad apple" machines were 
> responsible for contributing the largest portion of packets 
> with incorrect header checksums. (But, that work also asserts 
> that the L4 checksums in the Internet today are inadequate.)
> 
> About 2), there are a number of considerations as to what
> would happened if an error occurred in the IPv6 extension 
> headers that was not caught by the L2 checksums. For example, 
> if an error occurred in the ID field of a fragment header 
> there would be possiblity for the fragment of a first packet 
> to be combined with a fragment of a second packet. But, such 
> an unlikely combination should be caught by the L4 checksums. 
> As another example, if an error occurred in an address field 
> in a routing header, the packet could be mis-delivered. But, 
> this would appear as simply a lost packet from the 
> perspective of the intended target and a spurious packet from 
> the perspective of a target to which the packet may have been 
> mis-directed.
> 
> I haven't tried to track down all of the IPv6 extension
> headers and make analysis of what could happen if an error 
> occurred, but I think the correct questions in each instance
> are: 1) how likely is an error not caught by L2 CRCSs to
> occur, and 2) how bad would it be if that happened?
> 
> Thanks - Fred
> fred.l.templin at boeing.com    
> 
> ________________________________
> 
> 	From: Rahim Choudhary [mailto:rahimchoudhary at yahoo.com] 
> 	Sent: Tuesday, January 29, 2008 7:43 AM
> 	To: Fred Baker
> 	Cc: ipv6 at ietf.org
> 	Subject: Re: Checksum in IPv6 header
> 	
> 	
> 	Thanks. I also heard from Brian McGehee. It is 
> basically the same reason: efficiency by removing processing 
> that is deemed unneeded. In this case the layer 2 and 4 
> checksums are relied upon and simplification and thereby 
> performance is achieved at layer 3.
> 	 
> 	These are obvious reasons and I have seen them 
> documented. Wonder on two things: 
> 	 
> 	1. one if there were other reasons for not including 
> checksum in IPv6 header, historically speaking if there was a 
> contrary view?
> 	 
> 	2. second, concerns the security implication if any. 
> Yes the checksum was intended for guarding against 
> transmission errors, not as a security technique. The 
> question is if there are some unintended security impact 
> possible? Eventually the presence or absence of a checksum at 
> layer 3 may be not too important because the checksum can be 
> recomputed if some malicious change is inserted.
> 	 
> 	Thanks for the input.
> 	 
> 
> 
> 	Fred Baker <fred at cisco.com> wrote:
> 
> 
> 		On Jan 28, 2008, at 2:03 PM, Rahim Choudhary wrote:
> 
> 
> 			This may be a matter that is common knowledge to
> this list. But please forgive me for asking. What were the 
> reasons that the IPv6 working group decided not to include a 
> checksum field for the IPv6 packet Header? Does it have no 
> security impact to omit the checksum?
> 
> 
> 		The short version is that in general the 
> checksum found implementation errors, but given a working 
> system rarely found true operational errors. It's not stupid 
> as a debug technique, but it doesn't result in packet discard 
> in real networks, and so was deemed unjustified.
> 
> 
> 
> 	________________________________
> 
> 	Looking for last minute shopping deals? Find them fast 
> with Yahoo! Search. 
> <http://us.rd.yahoo.com/evt=51734/*http://tools.search.yahoo.c
om/newsear
ch/category.php?category=shopping> 


--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6 at ietf.org
Administrative Requests: https://www1.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------



--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6 at ietf.org
Administrative Requests: https://www1.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------




Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.