[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