This is a series containing notes I made while reading RFCs.
User Datagram Protocol
- Uses IP as its underlying protool.
- Does not guarantee reliable delivery of data streams
- Protocol mechanism is minimal
- Source port. (optional)
- Contains the port of the sending process.
- Any replies will be possibly addressed to this port.
- Contains a zero value if unused.
- Destination port.
- Contains the port of the destination address.
- Contains the length (in octets i.e bytes) of the datagram being sent including the header and the data.
- Minimum value is eight because the header is eight bytes.
- 16-bit one’s complement of the one’s complement sum of the information being sent.
- Sums up the information in the IP header*, the UDP header and the data.
- Pads data with zero octets to make a multiple of 2 octets (16-bits remember?)
- Has a value of all zeroes if not generated (e.g for debugging purposes)
- Same checksum procedure is also used in TCP.
* or, to be more precise, the pseudoheader which is assumed will be prefixed to the datagram.
A user-interface designed for this protocol should allow:
- The creation of new receive ports
- Functionality on the receive ports that does operations like returning the data octets and indicating the source port and address.
- An operation allowing a datagram to be sent, specifying the data and destination ports and addresses to be sent.
IP Interface guidelines:
- UDP module should get the source and destination addresses and the protocol field from the IP header.
- One possible UDP/IP interface can:
- return whole internet datagram (including internet header) on a receive operation.
- pass whole internet datagram (again, including header) to the IP on a send operation.
- Let the IP verify certain fields for consistency and compute the internet header checksum.
Possible applications of this protocol include:
- Internet Name Server
- Trivial File Transfer
When used in the Internet Protocol, the protocol number of UDP is 17 (21 in octal).