TAILIEUCHUNG - Lecture TCP-IP protocol suite - Chapter 11: User Datagram Protocol (UDP)
When you finish this chapter, you should: 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. | Chapter 11 User Datagram Protocol (UDP) CONTENTS PROCESS-TO-PROCESS COMMUNICATION USER DATAGRAM CHECKSUM UDP OPERATION USE OF UDP UDP PACKAGE Figure 11-1 Position of UDP in the TCP/IP protocol suite PROCESS TO PROCESS COMMUNICATION Figure 11-2 UDP versus IP Figure 11-3 Port numbers Figure 11-4 IP addresses versus port numbers Figure 11-5 IANA ranges Figure 11-6 Socket addresses USER DATAGRAM Figure 11-7 User datagram format UDP length = IP length - IP header’s length CHECKSUM Figure 11-8 Pseudoheader added to the UDP datagram Figure 11-9 Checksum calculation of a simple UDP user datagram UDP OPERATION Figure 11-10 Encapsulation and decapsulation Figure 11-11 Queues in UDP Figure 11-12 Multiplexing and demultiplexing USE OF UDP UDP PACKAGE Figure 11-13 UDP package State Process ID Port Number Queue Number -------- ------------ -------------- ------------------ IN-USE 2,345 52,010 34 IN-USE 3,422 52,011 FREE IN-USE 4,652 52,012 38 FREE Control-block table at the beginning Example 1 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. Example 2 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 does not allocate a queue at this moment because no user datagrams have arrived for this destination State Process ID Port Number Queue Number -------- ------------ -------------- ------------------ IN-USE 2,345 52,010 34 IN-USE 3,422 52,011 IN-USE 4,978 52,014 IN-USE 4,652 52,012 38 FREE Modified table after Example 2 Example 3 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). State Process ID Port Number Queue Number -------- ------------ -------------- ------------------ IN-USE 2,345 52,010 34 IN-USE 3,422 52,011 43 IN-USE 4,978 52,014 IN-USE 4,652 52,012 38 FREE Modified table after Example 3 Example 4 After a few seconds, a user datagram arrives for port 52,222. The input module checks the table and cannot find the 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. Example 5 After a few seconds, a process needs to send a user datagram. It delivers the data to the output module which adds the UDP header and sends it.
đang nạp các trang xem trước