Hyung-Min Lee ©Networking Lab., 2001
Chapter 11
User DatagramProtocol(UDP)
Hyung-Min Lee ©Networking Lab., 2001
UDP
About UDP(User Datagram Protocol)
: RFC 768[Postel 1980]
• The TCP/IP protocol suit specifies two protocols for the transport layer: UDP and TCP.
• UDP lies between the application layer and the IP layer and, like TCP, serves as the intermediary between the application programs and the network operations.
• UDP is called a connectionless, unreliable transport protocol.
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-1 Position of UDP in the TCP/IP protocol suite.
Hyung-Min Lee ©Networking Lab., 2001
UDP
11.1 PROCESS-TO-PROCESS COMMUNICATION UDP is responsible for delivery of the message to the appropriate process.
( a process is a running application program)
Port Number
• The local host and the remote host are defined using IP address.
• To define the processes, we need second identifier which are called port numbers.
(The port number are integers between 0 and 65,535.)
– Ephemeral port number: The client program defines itself with a port number,
chosen randomly by the UDP software running on the
client host. This is the ephemeral port number.
– Well-known port number: The server process defines itself with a port number.
TCP/IP has a decided to use universal port numbers for
services; These are called Well-known port number
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-2 UDP versus IP
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-3 Port numbers
Port Number….
Ephemeral(temporary) port number 52,000
Well-known(permanent) port number 13
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-4 IP addresses versus port number
•The destination IP address defines the host among the different hosts in the world.
• After the host has been selected, the port number defines one of the processes on particular host.
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-5 IANA Ranges
IANA Ranges
The IANA has divided the port number into three ranges:
• Well-known ports: The port ranging from 0 to 1,023 are assigned and controlled by IANA.
• Registered ports: The port ranging from 1,024 to 49,151 are assigned and controlled by IANA.
• Dynamic ports.: The port ranging from 49,152 to 65,535 are neither controlled nor registered.
Hyung-Min Lee ©Networking Lab., 2001
UDP
Well-known Ports for UDP
Port protocol Description
7 Echo Echoes a received datagram back to the sender
9 Discard Discards any datagram that is received
11 Users Active Users
13 Daytime Returns the data and the time
17 Quote Returns a quote of the day
19 Chargen Returns a string of character
53 Nameserver Domain Name Service
67 Bootps Server port to download bootstrap information
68 Bootpc Client port to download bootstrap information
69 TFTP Trivial File Transfer Protocol
111 RPC Remote Procedure Call
123 NTP Network Time Protocol
161 SNMP Simple Network Management Protocol
162 SNMP Simple Network Management Protocol(trap)
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-6 Socket address
Sock Address
The combination of an IP address and a port number is called a sock address.
Hyung-Min Lee ©Networking Lab., 2001
UDP
11.2 USER DATAGRAM
UDP packets, called user datagrams, have a fixed-size header of 8 bytes.
Figure 11-7 User datagram format
Hyung-Min Lee ©Networking Lab., 2001
UDP
• Source port number: The port number used by the process running on the source host.
– 16 bit long.
– Source host is client: ephemeral port number
– Source host is server : well-known port number
• Destination port number: The port number used by the process running on the destination host.
• Length: Total length of the user datagram, header plus data.(16-bit field)
• Checksum: Detect the errors over the entire user datagram (header + data)
11.3 CHECKSUM • The pseudoheader is part of the header of the IP packet in which the user datagram is to be
encapsulated for translated for transmission with some fields filled with 0s
• The value of the protocol field for UDP is 17.
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-8 Pseudoheader added to the UDP datagram.
Hyung-Min Lee ©Networking Lab., 2001
UDP
Checksum Calculation at Sender
The sender follows these eight steps to calculate the checksum.
1. Add the pseudoheader to the UDP user datagram.
2. Fill the checksum field with zero.
3. Divide the total bits into 16-bit(two-byte)word.
4. If the total number of bytes is not even, add one byte of padding(all 0s). The padding is only for the purpose of calculating the checksum and will be discarded afterwards.
5. Add all 16-bit sections using one’s complement arithmetic.
6. Complement the result (change all 0s to 1s and all 1s to 0s) which is a 16-bit number, and insert it in the checksum field.
7. Drop the pseudoheader and any added padding.
8. Deliver the UDP user datagram to the IP software for encapsulation.
Hyung-Min Lee ©Networking Lab., 2001
UDP
Checksum Calculation at Receiver
The receiver follows these six steps to calculate the checksum.
1. Add the pseudoheader to the UDP user datagram.
2. Add padding if need.
3. Divide the total bits into 16-bit sections.
4. Add all 16-bit sections using one’s complement arithmetic.
5. If the result all 0s, drop the pseudoheader and any added padding and accept the user datagram. If the result is anything else, discard the user datagram.
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-9 Checksum calculation of a simple UDP user datagram.
Hyung-Min Lee ©Networking Lab., 2001
UDP
11.4 UDP OPERATION
Connectionless Service
• Each user datagram sent by UDP is an independent datagram.
• There is no relationship between the different user datagram even if they are coming from the same source process and going to the same destination program.
• Each user datagram can travel a different path.
Flow and Error Control
• UDP is unreliable transport protocol.
• There is no error control mechanism in UDP except for the checksum.
• There is no flow control, and hence no windowing mechanism.
Encapsulation and Decapsulation
• To send a message from one process to another, the UDP protocol encapsulates and decapsulates message
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-10 Encapsulation and Decapsulation
Hyung-Min Lee ©Networking Lab., 2001
UDP
Queuing
• In UDP, queues are associated with ports.
• At the client site, when a process starts, it requests a port number from the operating system.
• Some implementations create both an incoming and an outgoing queue associated with each process.
• Other implements create only an incoming queue associate with each process.
• The queues function as long as the process is running. When the process terminates, the queues are destroyed.
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-11 Queues in UDP
Hyung-Min Lee ©Networking Lab., 2001
UDP
Multiplexing and Demultiplexing
Multiplexing
• At the sender site, there may be several processes that need to send user datagrams.
• However, there is only one UDP. This is a many-to-one relationship and requires multiplexing.
• UDP accepts messages from different processes, differentiated by there assigned port number.
• After adding the header, UDP passes the user datagram to IP.
Demultiplexing
• At the receiver site, there is only one UDP. However, we may have many processes that can receive user datagram. This is a one-to-many relationship and requires demultiplexing.
• UDP receives user datagram from IP. After error checking and dropping of the header, UDP delivers each message to the appropriate process based on the port number.
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-12 Multiplexing and Demultiplexing
Hyung-Min Lee ©Networking Lab., 2001
UDP
11.5 USE OF UDP• FTP (File Transfer Protocol)
• TFTP (Trivial File Transfer Protocol)
• Multicasting and Broadcasting
• SNMP (Simple Network Management Protocol)
• RIP (Routing Information Protocol)
11.6 UDP DESIGN• UDP package involves five components: a control-block table, input queues, a control-block
module, an input module, and an output module.
Control-Block Table
• UDP has a control-block table to keep track of the open ports. Each entry in this table has a minimum of four fields:
– The State: FREE, IN-USE
– Process ID,
– Port Number,
– The corresponding queue number.
Hyung-Min Lee ©Networking Lab., 2001
Figure 11-13 UDP design
Hyung-Min Lee ©Networking Lab., 2001
UDP
Input Queues
• Our UDP design uses a set of input queues, one for each process. In this design, we do not use output queues.
Control-Block Module
• The control-block module is responsible for the management of the control-block table.
Receive: a process ID and a port number
1. Search the control block table for a FREE entry.
1. If(not found)
1. Delete an entry using a predefined strategy.
2. Create a new entry with the state IN-USE.
3. Enter the process ID and the port number.
2. Return.
Hyung-Min Lee ©Networking Lab., 2001
UDP
Output Module
• The output module is responsible for creating and sending user datagrams.
Receive: data and information from a process
1. Create a UDP user datagram.
2. Send the user datagram.
3. Return.
Top Related