[e2e] purpose of pseudo header in TCP checksum

Joe Touch touch at ISI.EDU
Tue Feb 15 15:20:12 PST 2005

Ghanwani, Anoop wrote:
>>I also searched RFC 2460 for this once, but couldn't find anything.
>>Still, that doesn't make sense to me. What if you transfer an
>>IPv6 packet across a link layer that does *NOT* check your data -
>>why wouldn't this cause harm to the source / destination addresses,
>>and therefore cause wrong router behavior downstream? And
>>what about the other fields - say, "next header"; a checksum
>>error could turn a TCP packet into a UDP packet, change the
>>payload length field, whatever.
>>There must be a requirement for link layers to do a strong
>>check somewhere?!
> This is something that struck me as really odd as well when
> I first started working on IPv6.  Even if the link layer does
> provide a good CRC, what happens if the IPv6 header gets corrupted
> while the packet is being processed in a router and it doesn't
> have a link layer header on it?
> This seems to imply that routers are required to generate
> checksums on the IP packet for internal use in order to
> guarantee the integrity of the IP header as the packet is 
> processed.  If this is not done, IPv6 packets could end up 
> far away from the source of the problem (and far away from
> their intended destination) making things really hard to 
> debug!

And if the bugs are more likely to be in the router code than on the 
wire (I recall a few people noticing this), then using checksums to 
check for bugs in the code that might have bugs that fail to check the 
checksums is circularly dubious.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : http://www.postel.org/pipermail/end2end-interest/attachments/20050215/1c31205a/signature.bin

More information about the end2end-interest mailing list