Term
| What is arq in relation to tcp? |
|
Definition
| ARQ is an alternative to error-correcting codes, where lost data is simply resent until it is received. |
|
|
Term
| What types of errors may we encounter with TCP? |
|
Definition
a. packet reordering b. packet duplication c. packet drops d. packet bit errors |
|
|
Term
| A sender has a sliding window of 3 packets, what happens when an ack is received for the first packet that was in flight. |
|
Definition
a. The window slides to the right b. The copy of the acknowledged packet can be released c. The next packet is sent |
|
|
Term
| Describe the 2 methods of flow control? |
|
Definition
a. Rate-based flow control gives a sender a data rate allocation, which it can't exceed. b. Window-based flow control allows a variable window size to be used. A communication method must exist where the receiver can inform the sender of what size to use. |
|
|
Term
| Explain the subtle difference between flow control and congestion control. |
|
Definition
a. Flow control enables the sender and receiver to manage the flow using explicit signalling (Window Advertisement). b. Congestion Control involves the sender slowing its transmission rate so as not to overwhelm the network. This approach requires some kind of implicit signalling, such as dropped packets. |
|
|
Term
| Who defines the retransmission timeout and what are the consequences of this being too short/long? |
|
Definition
a. The TCP protocol implementation defines the round-trip-time estimation based on the mean of a collection of RTT samples. b. Too low = unwanted retransmissions. c. Too high = idle network, less throughput. |
|
|
Term
|
Definition
a. Connection-oriented, reliable, byte stream service between 2 endpoints. Broadcasting/multicasting does not apply to TCP. i. Connection-oriented - session must be established before data exchange. ii. Reliable - error detection and retransmission. iii. Byte stream - record markers are not communicated between the sender and receiver. |
|
|
Term
| What does a tcp sequence number actually represent? |
|
Definition
| The byte offsets of the first byte in each packet in the overall data stream rather than packet numbers. |
|
|
Term
| What is the size range of a tcp header? |
|
Definition
| 20 bytes with no options, up to 60 bytes with options. |
|
|
Term
| A TCP retransmission timer will be set for what unit of data? |
|
Definition
| It will be set for every window of data and is updated when ACKs arrive. |
|
|
Term
| Describe cumulative acknowledgements and its main benefit. |
|
Definition
| An ACK indicating byte number "N" implies that all bytes up to "N" (but not including "N") have been successfully received. This may help to overcome ACK loss as a subsequent ACK will likely confirm receipt of previous segments. |
|
|
Term
| Explain how tcp maintains flow control and sequencing, without adding unnecessary segments to the network. |
|
Definition
Once a session is established, the following is sent with every TCP segment that contains data: a. An ACK for segments flowing in the opposite direction. b. A Window advertisement. |
|
|
Term
| What will a TCP receiver do with a segment that arrives out of order? |
|
Definition
| The segment will be buffered until the missing segment(s) arrives. TCP never delivers data to the receiving application out of order. |
|
|
Term
| What will tcp do with a duplicate segment that arrives? |
|
Definition
| Duplicate segments will be dropped. |
|
|
Term
| list the fields and sizes within a tcp header. |
|
Definition
a. source port (16 bit) b. dest port (16 bit) c. sequence number (32 bit) d. acknowledgement number (32 bit) e. header length (4 bit) f. reserved (4 bit) g. flags (8 bit) h. window size (16 bit) i. checksum (16 bit) j. urgent pointer (16 bit) k. options (variable) |
|
|
Term
| which fields of the header refer to data flowing in the opposite direction, relative to the sender of the segment? |
|
Definition
a. acknowledgement number b. ECE bit c. ACK bit d. window size |
|
|
Term
| describe each of the flags. |
|
Definition
a. CWR - congestion window reduced (sender reduced its sending rate). b. ECE - ECN Echo (sender received an earlier congestion notification). c. URG - Urgent (the urgent pointer field is valid - rarely used) d. ACK - acknowledgement (ack number field is valid - always on once connection is established) e. PSH - push (receiver should push data to the app asap - not reliably used or implemented) f. RST - reset connection (connection abort, usually because of an error) g. SYN - sync sequence numbers to initiate connection. h. FIN - sender has finished sending data to peer. |
|
|
Term
| describe the sequence number and ack number fields. How is an Ack identified? |
|
Definition
a. sequence number is a 32-bit field that identifies where the first byte of data in the segment belongs in the overall stream being transmitted. As each byte has an associated sequence number, the allocated numbers will wrap back around to 0 after they are exhausted. b. As every byte is numbered, the acknowledgement number field contains the number of the next byte that the sender of the acknowledgement expects to receive (the last acknowledged byte + 1). This field is only valid if the ACK bit is on. |
|
|
Term
| What type of segment does not consume a sequence number and why? |
|
Definition
| ACK's don't consume sequence numbers. Consuming sequence numbers implies reliable delivery and we don't ACK ACK's. |
|
|
Term
| what is the drawback of cumulative acknowledgement and how can this be overcome? |
|
Definition
| Segments received out of order cannot be acknowledged. Selective Acknowledgement (SACK) can overcome this. |
|
|
Term
| describe the header length field. |
|
Definition
| The 4-bit header length field gives the length of the header in 32-bit words. This is set to 5 when no options are used (20 bytes) and has a max value of 15 (60 bytes). |
|
|
Term
| describe the window size field. |
|
Definition
| This is a 16-bit field that signifies how many bytes the receiver is willing to receive, starting with the byte in the ACK field. The Window Size is limited to 65535 bytes, but can be scaled using the Window Scale option. |
|
|
Term
| describe the checksum field. |
|
Definition
a. Mandatory 16 bit pseudo-header calculated by sender and checked by receiver. b. Calculated on entire TCP segment and elements of IP header. |
|
|
Term
| describe the urgent pointer field. |
|
Definition
a. Marks urgent data and is valid if URG bit is set. b. when value is added to Sequence Number field, it identifies the last byte of urgent data. |
|
|
Term
| List some common option fields. |
|
Definition
a. MSS. b. SACK. c. Timestamp. d. Window Scale |
|
|
Term
| under what circumstances would a TCP segment with no data be sent? |
|
Definition
a. session establishment b. session teardown c. pure ACK d. window update e. timeouts |
|
|