Subject: Re: UDP Lite (Was Re: Header Stripping in Cellular)

From: Vernon Schryver <[email-masked]>
Date: Sun, 24 Oct 1999 11:07:45 -0600 (MDT)

> From: Mikael Degermark <[email-masked]>

> ...
> >(By "converting the checksum", I mean the tower could in the Internet-to-
> >phone direction check the classic UDP checksum on the whole packet, count
>
> >and discard the packet if the classic checksum is bad, and subtract the
> >checksum of the UDP payload from existing good checksums.  It would do the
> >obverse in the other direction.)
>
> That might work. But now you need a way to transfer the information about what
> part of the payload needs protection when going in the Internet-to-phone
> direction. Would you use some kind of signalling for that?

Of the very few applications** that will ever use UDP Lite, how many
different checksum coverage values will there be?  There will always be
at most three values, all (UDP classic), header only (minimal UDP Lite),
and none (UDP classic 0).  Thus, the only signalling needed is to tell
the towers which UDP packets want unprotected payloads.

The classic mechanism for that sort of thing is the one still used
by many SLIP and PPP implementations to adjust the queue priority
of packets.  Many implementations contain lists of port numbers
whose packets get higher priority.

There are many other, more flexible mechanisms.  For example, instead of
calling a setsockopt() to turn on UDP Lite, an application could send a
UDP packet to a registered port number at the peer.  Besides being to a
special port, the packet would contain a magic number and a UDP or TCP
port number.  The radio tower (and any other interested parties) would
note that port number and the IP source and destination addresses.
Subsequent UDP packets with those addresses and port number would be
treated specially, suffering TCP header stripping, UDP payload checksum
reduction, or whatever.  Note that the tower would not need any more
per-stream state in this scheme than with UDP Lite or TCP header stripping.

** of course, there will be applications that abuse UDP Lite, continuing
  the tradition of turning off the classic UDP checksum on bogus
  performance grounds.

Vernon Schryver    [email-masked]