Connectionless Multiplexing and De multiplexing
Java program running in a host can create a UDP socket with the line
Datagram's socket my socket = new datagram's socket
When a UDP socket is created in this manner the transport layer automatically assigns a port number to the socket. In particular the transport layer assigns a port number in the range 1024 to 65535 that is currently not being used by any other UDP port in the host. Alternatively a java program could create a socket with the line.
Datagram socket my socket = new data grams socket 9157
In this cases the application assigns a specific port number namely 9157 to the UDP socket. If the application developer writing the code were implementing the server side of a well known protocol. Then the developer would have to assign the corresponding well known protocol. Then the developer would have t assign the corresponding well known port number typically the client side of the application. The transport layers automatically assign the port number whereas the server side of the application assigns a specific port number
Suppose a process in host a with USP port 9157 wants to send a chunk of applications data to process will UDP post 64281 in host B. The transport layer in host a creates a transport layer segment that includes the application data the source port number 9157 the destination port number 64281 and two other values. The transport layer than passes the resulting segment to the network layer. The network layer encapsulates the segment in an IP datagram and makes a best effort attempt to deliver the segment to the receiving host. If the segment arrives at the receiving host. B could be running receiving host examines the destination port number in the segment 64281 and delivers the segment to its socket identified by port 64281. Note that host B could be running multiple processes each with it own UDP socket and associated port number. As USP segments arrive from the network host B directs each segment the appropriate socket by examining the segment destination port number.
It is important to note that UDP socket is fully identified by a two tuple consisting of a destination IP address and destination port number as a consequence if two USP segments have different source IP addresses and source port numbers. But have the same destination IP address and destination port number then the two segments will be directed to the same destination process via the same destination socket.
The purpose of source port number is shown in figure 44. In A to B segment the source port number solves as part of a return address when B wants to send a segment back to A the destination port in the B to A segment will take its vale from the source port value of the A to B segment. In UDP server layer servers a method to extract the port number form the segment it receives from the client it the sends a new segment to the client with the extracted source port number serving as the destination port number in this new segment.