Unformatted text preview: h client, so the listening server should
always be ready to handle the next incoming connection request. That's the underlying reason
for using concurrent servers. But there is still a chance that multiple connection requests arrive
while the listening server is creating a new process, or while the operating system is busy
running other higher priority processes. How does TCP handle these incoming connection
requests while the listening application is busy? In Berkeley-derived implementations the
following rules apply.
1. Each listening end point has a fixed length queue of connections that have been accepted
by TCP (i.e., the three-way handshake is complete), but not yet accepted by the
Be careful to differentiate between TCP accepting a connection and placing it on this
queue, and the application taking the accepted connection off this queue.
2. The application specifies a limit to this queue, commonly called the backlog. This
backlog must be between 0 and 5, inclusive. (Most applications specify the maximum
value of 5.)
3. When a connection request arrives (i.e., the SYN segment), an algorithm is applied by
TCP to the current number of connections already queued for this listening end point, to
see whether to accept the connection or not. We would expect the backlog value
specified by the application to be the maximum number of queued connections allowed
for this end point, but it's not that simple. Figure 18.23 shows the relationship between
the backlog value and the real maximum number of queued connections allowed by
traditional Berkeley systems and Solaris 2.2.
Backlog value Max # of queued connections
Traditional BSD 0
5 Solaris 2.2 1
5 file:///D|/Documents%20and%20Settings/bigini/Docu...homenet2run/tcpip/tcp-ip-illustrated/tcp_conn.htm (31 of 37) [12/09/2001 14.47.16] Chapter 18. TCP Connection Establishment and Termination Figure 18.23 Maximum number of accepted connections allowed for listening end
Keep in mind that this backlog value specifies onl...
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