[e2e] purpose of pseudo header in TCP checksum

Ghanwani, Anoop anoop.ghanwani at hp.com
Tue Feb 15 13:37:09 PST 2005


> 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!

Anoop


More information about the end2end-interest mailing list