slides23 Flashcards
OPTION No operation (NOP)
is used to pad to align fields to a multiple of 4 bytes
OPTION Maximum segment size (MSS)
specifies how large a segment we can cope with: the headers are not included in count
typically set to avoid fragmentation (MTU)
OPTION window scale
allows us to multiply up the value in the advertised window size header field
This optional field contains a value from 0 to 14
My desktop uses a window scale of 7: 27 × 65535 = 8388480 bytes, or a maximum of 8MB buffer space
Its initial window size on a new TCP connection is 14600, meaning 27 × 14600 = 1868800 bytes, so a buffer of a bit under 2MB has been allocated (for this socket)
OPTION Timestamp (TS val)
puts the time of day into the segment header, allowing accurate measurement of the round trip time (RTT) of a segment and its ACK. Useful for computing retransmission times (see later)
OPTION Timestamp Echo Reply (TS ECR)
in an ACK segment is the timestamp being returned to the sender so it can compute the RTT
OPTION Selective acknowledgement (SACK)
is an extension of the ACK mechanism that allows more flexible ways of acknowledging segments
RTT
round trip time
sliding window mechanism
A sliding window describes the range of bytes the sender can
transmit
As the window gets smaller, the sender should send more slowly
As the window gets bigger, the sender can send more quickly
The sender recomputes the space available in the receiver every time it receives an ACK
The left hand edge of the window is defined by the acknowledgement number in the latest ACK
The right hand edge is then given by adding on the size of the advertised window
The window size is sent in every ACK segment
As more ACKs are received, the window closes as the left edge advances
So how long to delay an ACK?
If too long, the sender might think the segment was lost and resend
If too short, we do not get so many free piggybacks or multiple ACKed segments
A typical implementation will delay for up to 200ms
what to do with out of order segment
If you get an out-of-order segment (its sequence number is not the one you are expecting next, e.g., a segment was possibly lost), you must not delay, but send an ACK immediately
tinygram
when sending (for the sake of argument) a 41 byte packet for each byte of data
(Nagle’s alg)
If you are sending tinygrams, only send one and wait until you get its ACK before sending any more
Any small segments waiting to be sent should be collected together into a single larger segment that is sent when the ACK is received