UDP lite for FreeBSD

Randall Stewart rrs at cisco.com
Fri Dec 22 04:59:26 PST 2006


Fernando:

comments in-line..

Fernando Gont wrote:
> At 10:26 19/12/2006, Randall Stewart wrote:
> 
>> I have always thought of it as a bit of a hack as well... and
>> there is one really big problem with it.. It has no value
>> unless you can tell your network-interface card to deliver
>> damaged packets. I don't know if some cards have this option
>> now or not.. nor if an API in any driver exists for it... without this
>> you will find very very few packets that are "damaged" that
>> do get through.. since generally the link layer checksum
>> is a MUCH better CRC vs the very weak IP/UDP checksum :-0
> 
> 
> Each check is meant to detect a different type/source of errors. The CRC 
> is meant to detect burst errors, which are lokely to occur due to, eg, 
> noise. OTOH, the checksum is meant to detect single bit errors, which 
> are more likely to occur in the memory of the processing systems.
> 
> There'sa paper by Stone and Partridge (in ACM's CCR) in which they show 
> errors that, IIRC, were not caught by the CRC, but *were* caught by the 
> checksum.

That is not my point, I am well aware of Jonathan's work (we worked
together to change SCTP's checksum).. my point is that the whole idea
of the udp-lite is so that damaged packets still will arrive at
the codec. The encoders would like ALL damaged packets.. not just
the ones corrupted by the intervening routers and hosts.

So the solution is not complete without a tweak at layer-2 to
get the information. Especially since layer-2 is, in most cases,
going to have more errors than layer-3/4. Of course we need to
be glad of that since the UDP/TCP checksum will pass (on average)
bad data every 1 in 10-million packets... if the link layer
were not as good it would pass more than that :-0

R


-- 
Randall Stewart
NSSTG - Cisco Systems Inc.
803-345-0369 <or> 803-317-4952 (cell)


More information about the freebsd-net mailing list