Unformatted text preview: . But before this
data segment is sent by the client, segment 13 arrives from the server. Segment 15
contains the ACK of segment 13, sequence number 56. So the client is obeying the Nagle
algorithm, even though we see two back-to-back data segments from the client to the
Also notice in Figure 19.4 that one delayed ACK is present, but it's from the server to the
client (segment 12). We are assuming this is a delayed ACK since it contains no data.
The server must have been busy at this time, so that the Rlogin server was not able to
echo the character before the server's delayed ACK timer expired.
Finally, look at the amounts of data and the sequence numbers in the final two segments.
The client sends 3 bytes of data (numbered 18, 19, and 20), then the server acknowledges
these 3 bytes (the ACK of 21 in the final segment) but sends back only 1 byte (numbered
59). What's happening here is that the server's TCP is acknowledging the 3 bytes of data
once it has received them correctly, but it won't have the echo of these 3 bytes ready to
send back until the Rlogin server sends them. This shows that TCP can acknowledge
received data before the application has read and processed that data. The TCP
acknowledgment just means TCP has correctly received the data. We also have an
indication that the server process has not read these 3 bytes of data because the advertised
window in the final segment is 8189, not 8192.
Disabling the Nagle Algorithm
There are times when the Nagle algorithm needs to be turned off. The classic example is
the X Window System server (Section 30.5): small messages (mouse movements) must
be delivered without delay to provide real-time feedback for interactive users doing
Here we'll show another example that's easier to demonstrate-typing one of the terminal's
special function keys during an interactive login. The function keys normally generate
multiple bytes of data, often beginning with the ASCII escape character. If TCP gets the
data 1 byte at a time, i...
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