Computer Networks · free preview

User Datagram Protocol

The transport layer's first job is turning the network's host-to-host delivery into process-to-process delivery, and the User Datagram Protocol does almost exactly that and no more, adding 16-bit port numbers that name processes indirectly since operating system process ids are meaningless across machines, well-known ports and port mappers solving the bootstrap question of how a client finds a server, an optional checksum computed over a pseudo-header that reaches into the IP header to catch misdelivery, and message boundaries preserved exactly as sent, which makes UDP the right substrate for request-reply protocols, real-time streams, and anything that would rather build its own reliability than inherit someone else's.

1. From Hosts to Processes

From Hosts to Processes

2. The Bootstrap Problem

The Bootstrap Problem

3. The Header and Its One Luxury

The Header and Its One Luxury

4. Choosing the Floor

Choosing the Floor

5. Why ports exist

A single server host runs a name service, a mail service, and a web service. What problem do port numbers solve?

6. Why not process ids

Why doesn't UDP identify processes by their operating system process ids?

7. Finding the server

How does a client learn which port a service listens on?

8. The pseudo-header

UDP's checksum covers fields copied from the IP header as well as UDP's own. What error is this pseudo-header designed to catch?

9. Message boundaries

An application sends two 100-byte requests over UDP, and the receiver issues one big read. What does it get?

10. Choosing UDP

A live voice application must choose a transport. Why might it prefer UDP over a reliable one?

11. Port width

A UDP port number is how many bits wide, giving each host 65536 of them?

12. The famous 53

Which well-known port does the domain name service listen on?

13. The one exception

Which field of the eight-byte UDP header is optional in IPv4 and covers a pseudo-header when used?

14. The directory

Which service, itself at a single well-known port, tells clients which port a given service currently occupies on that host?

Practice this interactively

Free account · instant grading · spaced review that schedules itself.

Start this course for free