This preview shows page 1. Sign up to view the full content.
Unformatted text preview: Section 21.10.) Part of the problem is that the
process that generated the data that caused the source quench may have already terminated
when the source quench is received. Indeed, if we use the Unix time program to measure how
long our sock program takes to run, it only executes for about 0.5 seconds. But from Figure
11.19 we see that some of the source quenches are received 0.71 seconds after the first
datagram was sent, after the process has terminated. What is happening is that our program
writes 100 datagrams and terminates. But not all 100 datagrams have been sent-some are
queued for output.
This example reiterates that UDP is an unreliable protocol and illustrates the value of end-toend flow control. Even though our sock program successfully wrote 100 datagrams to its
network, only 26 were really sent to the destination. The other 74 were probably discarded by
the intermediate router. Unless we build some form. of acknowledgment into the application, file:///D|/Documents%20and%20Settings/bigini/Doc...omenet2run/tcpip/tcp-ip-illustrated/udp_user.htm (21 of 29) [12/09/2001 14.46.58] Chapter 11. UDP: User Datagram Protocol the sender has no idea whether the receiver really got the data. 11.12 UDP Server Design
There are some implications in using UDP that affect the design and implementation of a
server. The design and implementation of clients is usually easier than that of servers, which is
why we talk about server design and not client design. Servers typically interact with the
operating system and most servers need a way to handle multiple clients at the same time.
Normally a client starts, immediately communicates with a single server, and is done. Servers,
on the other hand, start and then go to sleep, waiting for a client's request to arrive. In the case
of UDP, the server wakes up when a client's datagram arrives, probably containing a request
message of some form from the client.
Our interest here is not in the programming aspects of clients and servers ([Stevens 1990]
View Full Document
This test prep was uploaded on 04/04/2014 for the course ECE EL5373 taught by Professor Guoyang during the Spring '12 term at NYU Poly.
- Spring '12