This preview shows page 1. Sign up to view the full content.
Unformatted text preview: 26. Telnet and Rlogin: Remote Login Figure 26.6 Summary of data flow from server to client in Rlogin example.
The shaded portion of the send buffer is the unused portion of the 4096-byte buffer. Figure
26.7 is the time line for this example. file:///D|/Documents%20and%20Settings/bigini/Docum...ti/homenet2run/tcpip/tcp-ip-illustrated/telnet.htm (11 of 26) [12/09/2001 14.47.45] Chapter 26. Telnet and Rlogin: Remote Login Figure 26.7 Rlogin example when client stops output and then aborts program on server.
In segments 1-3 the server sends full-sized segments to the client. The ACK in segment 4
only advertises a window of 1024 because the output is stopped: since the client can't write
to the terminal, it can't read from the network. Segment 5 is not full sized, and the ACK in
segment 6 advertises only the remaining space in the 4096-byte receive buffer. The client
must advertise a window of 349 bytes, because if it advertised a window of 0 (which we
might expect from silly window avoidance. Section 22.3), it would be moving the right
edge of the window to the left, which must not happen (Section 20.3). Since the server can't
send a full-sized buffer when it receives segment 6, it performs silly window avoidance,
sends nothing, and sets a 5-second persist timer. When the timer expires it sends 349 bytes
(segment 7) and since the client's output is still stopped, the acknowledgment in segment 8
advertises a window of 0.
At this point we type our interrupt key and it is transmitted in segment 9. A window of 0
bytes is still advertised. When the Rlogin server receives the interrupt key it passes it to the
application (cat) and the application terminates. Since the application was terminated by a
terminal interrupt, its output is flushed and this is passed to the Rlogin server. This causes
the server to send the "flush output" command to the client using TCP's urgent mode. We
see this in segment 10. Notice, however, that the command byte of 0x02 is at sequence
number 30146 (the urgent pointer minus one). There are 3419 bytes ahead of the command
byte (sequence numbers 26727:30145) buffered at the server that the server wants to send.
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