[e2e] UDP checksum field?
David P. Reed
dpreed at reed.com
Mon Apr 4 14:19:58 PDT 2005
When all is said and done, the UDP checksum isn't, and never was, fully
end-to-end protection, since there are few, if any, applications where
the correctness of the application data can be *fully assured* by making
sure that a single datagram gets delivered correctly. It's an optional
standardized way to help deal with a common risk that can arise due to
bugs and other issues that show up in engineered systems, nto a
guarantee of any particular property.
Since UDP datagrams can still be duplicated and modified by a
checksum-preserving modification in the network (such modifications are
now common, given middleboxes that discard the checksum and compute a
new one in many cases), there is no way to assure by a mere checksum
field that data has not been corrupted somewhere in the network.
Assurance is not the benefit, applications still need to do truly
end-to-end checking - UDP's ability to help in detecting incipient
problems is very useful, however.
I won't elaborate here on the more subtle issues of TCP's lack of true
end-to-end reliability. Suffice it to say that there is a difficult
issue in a definition of reliability that must depend on the difference
between "design errors" and "random errors".
More information about the end2end-interest
mailing list