280 likes | 415 Views
TCP (Part 1). - Reliable Stream Transport Service. D.E. Comer “Internetworking with TCP/IP: Principles, Protocols and Architectures”, Ch. 13, Prentice Hall, 2000 Presented by Ming Su. msu1@sfu.ca. Content. TCP Introduction Issue in TCP --- Flow Control Sliding window protocol
E N D
TCP (Part 1) - Reliable Stream Transport Service D.E. Comer “Internetworking with TCP/IP: Principles, Protocols and Architectures”, Ch. 13, Prentice Hall, 2000 Presented by Ming Su msu1@sfu.ca
Content • TCP Introduction • Issue in TCP --- Flow Control • Sliding window protocol • TCP acknowledgement scheme • TCP segment • TCP timeout • Summary
Introduction - TCP • TCP • Transmission Control Protocol • TCP is not a software • Purpose • Providing reliable stream delivery • Isolating application programs from the details of networking
TCP Conceptual Layering Application Reliable Stream (TCP) User Datagram (UDP) Internet (IP), ICMP Network Interface
Properties of the reliable delivery service • Stream Orientation • data as a stream of bits, divided into 8-bit octets • Virtual Circuit Connection • Buffered Transfer • transfer more efficiently & minimize network traffic • Unstructured Stream • Full Duplex Connection • Two-way connection
Two issues in TCP • Flow Control • End-to-end flow control problem • Congestion control problem • Virtual Circuit Connection
Flow Control - Sliding window protocol
End-to-end flow control • Problem • Sender can send more traffic that receiver can handle. (Too fast) • Solution • variable sliding window protocol each acknowledgement, which specifies how many octets have been received, contains a window advertisement that specifies how many additional octets receiver are prepared to accept.
Variable Window Size … … Window Advertisement Receiver Transmitter
Sliding window protocol in TCP • TCP allows the window size to vary over time. • Window size changes at the time it slides forward. • Advantage: it provides flow control as well as reliable transfer.
Flow Control - TCP acknowledgement scheme
Acknowledgements and Retransmission • Cumulative acknowledgement scheme is used in TCP. • A TCP ACK specifies “the sequence number of the next octet that the receiver expects to receive”.
Acknowledgements and Retransmission • Adv. • Easy to generate and unambiguous. • The lost ACKs don’t force retransmission. • Disadv. • No information about all successful transmissions for the sender, but only a single position in the stream.
Flow Control - TCP segment
TCP segment format 0 24 4 16 31 Source Port Destination Port Sequence Number Acknowledge Number HLEN Reserved Code Bits Window Checksum Urgent Pointer Options (if any) Padding Data …
Flow Control - TCP timeout
Timeout and Retransmission • Question • How to determinetimeout? • Is the timeout always a constant?
Timeout and Retransmission • An adaptive retransmission algorithm is used in TCP. • TCP monitors the performance of each connection and adjust its timeout parameter accordingly • Timeout value may change. • Timeout is adjusted when a new round trip sample ( RTT) is obtained.
Timeout and Retransmission • RTT = (α * Old_RTT) + ((1 –α) * new_RTT_sample ) • 0 < α < 1 • α close to 1 => no change in a short time • α close to 0 => RTT changes too quickly • Timeout = β * RTT • β >1 • Recommended setting, β= 2
Accurate Measurement of Round Trip Samples • TCP acknowledgements are ambiguous. • It is caused by the cumulative acknowledgement scheme. • It happens when retransmission. • It causes the question that the first received ACK does correspond the original datagram or the retransmitted datagram. • RTT couldn’t be measured accurately if the above question cannot be answered. • How to do?
Accurate Measurement of Round Trip Samples --- Karn’s Algorithm and Timer Backoff • Karn’s algorithm: when computing the round trip estimate, ignore samples that correspond to retransmitted segments, but use a back-off strategy, and retain the timeout value from a retransmitted packet for subsequent packets until a valid sample is obtained. • Timer back-off strategy: • New_timeout = γ * timeout ( typically, γ =2 ) • Each time timer expires (retransmit happens), TCP increases timeout value.
Karn’s Algorithm • Use RTT to compute Timeout • When retransmission happens, Timeout increases in γtimes continuously, until transfer successfully. [Backoff strategy] • Use the timeout in the final turn of the last step to send next segment. [Backoff strategy] • When an acknowledgement arrives corresponding to a segment that did not require retransmission, then TCP re-computes the RTT and reset the timeout accordingly
Responding to High Variance in Delay • Queuing theory: variation in round trip delay is proportional to 1/(1-L), where L is the current network load, 0<L<1 • ( Timeout = β * RTT ) & (β=2 ) => L < 30% • Not efficient • 1989 TCP specification requires to use estimated variance in place of β
New RTT and Timeout Algorithm • DIFF = sample – old_RTT • Smoothed_RTT = old_RTT + d * DIFF • DEV = old_DEV + p (|DIFF| - old_DEV) • Timeout = Smoothed_RTT + g * DEV • DEV estimated mean deviation • d, a fraction between 0 and 1 to control how quickly the new sample affects the weighted average • p, a fraction between 0 and 1 to control how quickly the new sample affects mean deviation • g, a factor controls how much deviation affects round trip timeout • Research suggests: d=1/8, p=1/4 and g=4
Summary • Purpose of TCP • End-end Flow Control issue • Variable Sliding window protocol in TCP • TCP acknowledgement scheme • TCP segment • TCP timeout • RTT-Timeout Calculation and Karn’s Algorithm • New RTT and Timeout Algorithm