Chapter   11
1 / 24

Chapter 11 - PowerPoint PPT Presentation

  • Updated On :

Chapter 11. User Datagram Protocol. Objectives . Upon completion you will be able to:. Be able to explain process-to-process communication Know the format of a UDP user datagram Be able to calculate a UDP checksum Understand the operation of UDP

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Chapter 11' - marjean

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Slide1 l.jpg

Chapter 11

User DatagramProtocol


Upon completion you will be able to:

  • Be able to explain process-to-process communication

  • Know the format of a UDP user datagram

  • Be able to calculate a UDP checksum

  • Understand the operation of UDP

  • Know when it is appropriate to use UDP

  • Understand the modules in a UDP package

TCP/IP Protocol Suite

Slide2 l.jpg

Figure 11.1Position of UDP in the TCP/IP protocol suite

TCP/IP Protocol Suite

Slide3 l.jpg


Before we examine UDP, we must first understand host-to-host communication and process-to-process communication and the difference between them.

The topics discussed in this section include:

Port Numbers

Socket Addresses

TCP/IP Protocol Suite

Slide4 l.jpg

Figure 11.2UDP versus IP

UDP (User Datagram Protocol) creates a

transport layer connection between two


The port number identifies the process, or

running application program. So using the port

number, UDP directs the packet to the correct


UDP does little else. No flow control. No ack

of received packets. Only error control is if

a checksum error is detected, it quietly drops

the packet.

TCP/IP Protocol Suite

Slide5 l.jpg

Figure 11.2UDP versus IP

UDP is a connectionless, unreliable transport


It does not add anything to the services of IP

except for providing process-to-process

communication, instead of host-to-host.

Advantages? Minimal overhead; faster

UDP works well with apps that have their own

error and flow control; works well with

multicasting, SNMP, TFTP (trivial FTP),

(but not FTP), and RIP.

TCP/IP Protocol Suite

Slide6 l.jpg

Figure 11.2UDP versus IP

Need 4 pieces of info: local host (IP addr), local process

(port #), remote host (IP addr), remote process (port #).

Local process port # can be just about any number

(between 0 and 65,535), but remote process port # has

to be fixed, otherwise who would know what it is?

TCP/IP Protocol Suite

Slide7 l.jpg

Figure 11.3Port numbers

Example: a user wants to know the day and time from

a remote machine. Daytime client port # = 52000,

but Daytime server port # = 13.

TCP/IP Protocol Suite

Slide8 l.jpg

Table 11.1 Well-known ports used with UDP

Well-known port #s are < 1024.

TCP/IP Protocol Suite

Slide9 l.jpg

Figure 11.6Socket address

In Unix, the socket address is the combination of

IP address and UDP/TCP port number.

TCP/IP Protocol Suite

Slide10 l.jpg

Figure 11.7User datagram format

TCP/IP Protocol Suite

Slide11 l.jpg


UDP checksum calculation is different from the one for IP and ICMP. Here the checksum includes three sections: a pseudoheader, the UDP header, and the data coming from the application layer.

The topics discussed in this section include:

Checksum Calculation at Sender

Checksum Calculation at Receiver

Optional Use of the Checksum

TCP/IP Protocol Suite

Slide12 l.jpg

Figure 11.8Pseudoheader for checksum calculation

Psuedoheader and padding are only used to calculate

checksum. After checksum is calculated, they are


TCP/IP Protocol Suite

Slide13 l.jpg

Figure 11.9 Checksum calculation of a simple UDP user datagram

TCP/IP Protocol Suite

Slide14 l.jpg

Figure 11.9 Practice calculation of a UDP user datagram

The following info is given:

Source port = 1087

Destination port = 17

UDP data field = hello

Total length of user datagram =13

IP source address =

IP destination address =

Create the IP packet (and UDP datagram)

that will contain this UDP datagram

TCP/IP Protocol Suite

Slide15 l.jpg


To show how UDP handles the sending and receiving of UDP packets, we present a simple version of the UDP package. The UDP package involves five components: a control-block table, input queues, a control-block module, an input module, and an output module.

The topics discussed in this section include:

Control-Block Table

Input Queues

Control-Block Module

Input Module

Output Module

TCP/IP Protocol Suite

Slide16 l.jpg

Figure 11.13UDP design

TCP/IP Protocol Suite

Slide17 l.jpg

Figure 11.13UDP design

Control-block table - keeps track of the open ports.

Table entries include state (free or in-use), process

ID, port number, and corresponding queue number.

Control-block module - manages the entries in the

control-block table.

Input module - accepts a user datagram from the IP

and checks to see if there is an existing port entry

in table. If yes, queue request; if no, generate

ICMP error message.

Output module - creates and sends user datagram

TCP/IP Protocol Suite

Slide18 l.jpg

Let’s look at some examples. Below is the control-block

table before the examples.

Table 11.2 The control-block table at the beginning of examples

TCP/IP Protocol Suite

Slide19 l.jpg

Example 2

The first activity is the arrival of a user datagram with destination port number 52,012. The input module searches for this port number and finds it. Queue number 38 has been assigned to this port, which means that the port has been previously used. The input module sends the data to queue 38. The control-block table does not change.

TCP/IP Protocol Suite

Slide20 l.jpg

Example 3

After a few seconds, a process starts. It asks the operating system for a port number and is granted port number 52,014. Now the process sends its ID (4,978) and the port number to the control-block module to create an entry in the table. The module takes the first FREE entry and inserts the information received. The module does not allocate a queue at this moment because no user datagrams have arrived for this destination (see Table 11.3).

See Next Slide

TCP/IP Protocol Suite

Slide21 l.jpg

Table 11.3 Control-block table after Example 3

TCP/IP Protocol Suite

Slide22 l.jpg

Example 4

A user datagram now arrives for port 52,011. The input module checks the table and finds that no queue has been allocated for this destination since this is the first time a user datagram has arrived for this destination. The module creates a queue and gives it a number (43). See Table 11.4.

See Next Slide

TCP/IP Protocol Suite

Slide23 l.jpg

Table 11.4 Control-block after Example 4

TCP/IP Protocol Suite

Slide24 l.jpg

Example 5

After a few seconds, a user datagram arrives for port 52,222. The input module checks the table and cannot find an entry for this destination. The user datagram is dropped and a request is made to ICMP to send an “unreachable port” message to the source.

TCP/IP Protocol Suite