[e2e] purpose of pseudo header in TCP checksum

Michael Welzl michael.welzl at uibk.ac.at
Tue Feb 15 09:46:20 PST 2005

> IPv6 _requires_ UDP checksums. UDP Lite already addresses this, and when 
> used ALWAYS INCLUDES the pseudoheader. See RFC 3828.

I know that checking the pseudoheader is required with IPv6 -
but only end systems do this, right? The part I don't get is
about intermediate systems; it wouldn't surprise me if it's just
a misunderstanding on my part.

What I mean is: since the IPv6 header isn't checked by routers
anymore, there must be some assumption that link layers
check it, or an intermediate router might (for instance)
be sending packets to god knows where.

Now, with UDP Lite, we DON'T want link layer to do this
check. But wait, if we simply say "don't", we'll have
lots of problems - first, because Adler-32 just isn't
good enough, and second, because IPv6 doesn't check it,
and once again, a router might wind up making decisions
based on an erroneous packet header.

So we need to specify that link layers DO check the headers
and just do NOT check the payload if it's a UDP Lite packet.
This is the part that I consider inevitable (given the
current situation) but ugly.

> IP still works over everything; things that work over IP need to know 
> something about it, as always.

"over" is fine with me, but I don't like to have things
underneath know so much about it.


More information about the end2end-interest mailing list