Term
| describe interactive and bulk tcp data. |
|
Definition
Bulk data segments tend to be large and are used for applications such as web, file, sharing, email and backups.
Interactive data segments tend to be much smaller and are used for things like remote login and network games. SSH for example will send a segment for each character that is typed. |
|
|
Term
| what does the PSH flag indicate? |
|
Definition
| When a packet with the PSH flag set left the sender, the sender had no more data to send. |
|
|
Term
| describe delayed acks and why they are used. |
|
Definition
| TCP will not send an ACK for every incoming packet. Using cumulative ACKs allows TCP to delay sending an ACK, in the hope that it can combine the ACK it needs to send with some data that the local app wished to send. Delaying ACKs results in less traffic on the network because fewer ACKs are used. |
|
|
Term
| what is the Nagle algorithm and what problem is it designed to overcome? |
|
Definition
| The Nagle algorithm prevents a TCP sender from sending small segments (<SMSS) until all outstanding data is acknowledged. Small amounts of data are buffered at the sender until all ACKs are received or the SMSS is achieved. The aim is to reduce the amount of inefficient small segments on congested WAN links. |
|
|
Term
| What are the drawbacks of the Nagle algorithm? |
|
Definition
| It will often reduce throughput, especially when combined with "delayed acknowledgments" on the receiver, where a temporary form of deadlock may be experienced. |
|
|
Term
| what does the window advertisement actually convey? |
|
Definition
| The Window Size field in each TCP header indicates the amount of empty space, in bytes, remaining in the receive buffer. |
|
|
Term
| what does a window advertisement of 0 indicate? |
|
Definition
| This indicates that the receiver's buffer is full and it can't accept any more data. |
|
|
Term
| what does the sender-side sliding window track? |
|
Definition
a. sequence numbers that have been ack'd. b. Sequence numbers that are in flight. c. sequece numbers that are yet to be sent. |
|
|
Term
| what is the offered window? |
|
Definition
| This is the window advertised by the receiver. |
|
|
Term
| what is the usable window and how is it calculated? |
|
Definition
The usable window is how much data a sender can send immediately. It is the offered window minus the amount of data already sent but not yet acknowledged. SND.UNA + SND.WND - SND.NXT SND.UNA = left window edge SND.WND = offered window SND.NXT = the next sequence number to be sent |
|
|
Term
Describe the following terms that are used to describe movement of the right and left edges of the window: a. the window closes b. the window opens c. the window shrinks |
|
Definition
a. the window closes - the left edge advances to the right and the window gets smaller. b. the window opens - the right edge moves to the right allowing more data to be sent, this happens when the receiver frees space in its buffer. c. the window shrinks - the right edge moves to the left, this is discouraged by the RFC but must be supported. |
|
|
Term
| what will a sending tcp do when it receives a zero window size? |
|
Definition
| the sending tcp will probe the peer's window to look for an increase in the offered window. |
|
|
Term
| what does the receiving window structure track? |
|
Definition
a. data that has been received and acknowledged. b. maximum sequence number it is willing to receive. |
|
|
Term
| under what conditions will the receiving window slide to the right? |
|
Definition
| when segments on the left of the window (no holes) are acknowledged (cumulative ACK increases). |
|
|
Term
| what happens to bytes outside of the receiving window that are received? |
|
Definition
|
|
Term
| what is the tcp persist timer and what problem is it designed to solve? |
|
Definition
The persist timer is used to query a receiver that is advertising a zero window size. Window probes are sent, if no window update is received, the next probe is sent after the TCP exponential backoff. Window probes will continue to be sent (TCP does not give up) until the receiver indicates that new data can be sent.
Window updates are pure ACK's and are therefore not reliable. This could lead to both sides waiting for the other, if a non-zero window update was lost. The receiver would be waiting for the sender to send data, the sender would be waiting for a non-zero window update. The persist timer overcomes this issue by ensuring that window probes continue to be sent until a non-zero window update is received. |
|
|
Term
| what is tcp silly window syndrome? |
|
Definition
This is where small segments are exchanged instead of full-size segments, which leads to inefficient use of the network. A sending TCP will quickly fill a receiver's buffer as soon as space becomes available. This can be caused by either of the following: a. a receiver advertising small windows instead of waiting until it can advertise a larger window. b. a sender transmitting small segments instead of waiting for more data to send in a larger segment. |
|
|
Term
| how can a receiver avoid sws? |
|
Definition
The receiver is not to increase its window size unless one of the following conditions are met: a. the window can be increased to one full-size segment (RMSS). b. the window can be increased to one-half (RFC Specs) of the receivers buffer space. This can occur when an app has consumed some data from the network, or when TCP must respond to a window probe. |
|
|
Term
| how can a sender avoid sws? |
|
Definition
Senders don’t send unless one of the following conditions is true: a. a full-size (SMSS) segment can be sent. b. TCP can send one-half of the maximum-size window that the other end has ever advertised on this connection. c. TCP can send everything it has to send and either there are no ACKs outstanding or the Nagle algorithm is disabled for this connection. |
|
|
Term
| how is urgent data identified by a sender? |
|
Definition
| The urgent flag will be set and the urgent pointer will be set. |
|
|
Term
| how is the exit point for urgent mode defined by the receiving tcp? |
|
Definition
| It is the sum of the sequence number field and the urgent pointer field. The resulting sequence number may be contained within a later segment. The sequence number identified is the first byte of non-urgent data. |
|
|