(Latest Revision:
Sat Mar 31 16:34:22 PDT 2007
)
Notes On Chapter Twenty-Four
-- UDP: Datagram Transport Service
- 24.1 Introduction ... This chapter discusses:
- UDP Packet Format,
- Applications of UDP, and
- Protocol Port Numbers
- 24.2 The Need For End-to-End Transport Protocols
- IP datagrams have address fields only for the source and destination
hosts.
- Multiple programs may be running on a host.
- UDP is an end-to-end protocol (transport
protocol) allows individual application
programs (processes) to communicate.
- IP is not an end-to-end protocol
- 24.3 The User Datagram Protocol ...
UDP characteristics are:
- End-to-end.
- Connectionless
- Message-oriented
- Best-effort
- Arbitrary interaction - [send to or receive from any application(s)]
- Operating system independent - [identify a process without using the
"pid's" used by the local OS]
-
- 24.4 The Connectionless Paradigm
- UDP is "one-shot" communication - like sending
a postcard.
- No connection set-up or tear-down.
- No control messages.
- Low Overhead
- 24.5 Message-Oriented Interface
- Each UDP packet is distinct - Preservation of
packet boundaries - receivers have no problem knowing where
the data from one UDP packet ends and another starts.
- Can lead to inefficient use of the
network.
- Ratio of header to payload may be high
- Large UDP packets may be fragmented - even on the sending host.
- 24.6 UDP Communication Semantics
- UDP uses IP for delivery
- Delivery problems may occur
- Application must be immune to delivery problems, or
- Programmer must add code to handle such errors
- 24.7 Arbitrary Interaction ... styles:
- 1-to-1
- 1-to-many
- many-to-1
- many-to-many
- 24.8 Support For Unicast, Multicast, and Broadcast
- UDP packets may be encapsulated in IP broadcast
or multicast packets.
- 24.9 Endpoint Identifcation With Protocol Port Numbers
- UDP identifies source and destination processes
using port numbers
- Each OS provides mapping between port numbers and local process
identifiers.
- "Standard" servers listen for clients on
well-known port numbers. (e.g. timeserver on port 37)
- An application using UDP can specify a
particular sending host and sending port, or
- An application using UDP can accept packets
from any host and port.
- There's an example of the use of UDP in chapter 29.
- 24.10 UDP Datagram Format
- The UDP packet is called a user datagram
- The format of a user datagram is as shown above.
- 24.11 The UDP Checksum And The Pseudo Header
- The UDP checksum is optional.
- There is no place in the user datagram for IP
addresses - they go in the header of the encapsulating IP
datagram.
- As a guard against possible errors at the IP level, UDP can use the
UDP Checksum Field as a "Pseudo Header" ... a hash value based on
the IP addresses and the UDP header fields.
- 24.12 UDP Encapsulation
- The figure above illustrates encapsulation of a
UDP user datagram.
- 24.13 Summary