Title: TCP (Part 1)
1TCP (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_at_sfu.ca
2Content
- TCP Introduction
- Issue in TCP --- Flow Control
- Sliding window protocol
- TCP acknowledgement scheme
- TCP segment
- TCP timeout
- Summary
3 4Introduction - TCP
- TCP
- Transmission Control Protocol
- TCP is not a software
- Purpose
- Providing reliable stream delivery
- Isolating application programs from the details
of networking
5TCP Conceptual Layering
Application
Reliable Stream (TCP)
User Datagram (UDP)
Internet (IP), ICMP
Network Interface
6Properties 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
7 8Two issues in TCP
- Flow Control
- End-to-end flow control problem
- Congestion control problem
- Virtual Circuit Connection
9- Flow Control
- - Sliding window protocol
10End-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.
11Variable Window Size
Window Advertisement
Receiver
Transmitter
12Sliding 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.
13- Flow Control
- - TCP acknowledgement scheme
14Acknowledgements 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.
15Acknowledgements and Retransmission
- Adv.
- Easy to generate and unambiguous.
- The lost ACKs dont force retransmission.
- Disadv.
- No information about all successful transmissions
for the sender, but only a single position in the
stream.
16- Flow Control
- - TCP segment
17TCP segment format
24
0
4
31
16
Source Port
Destination Port
Sequence Number
Acknowledge Number
HLEN
Reserved
Code Bits
Window
Checksum
Urgent Pointer
Options (if any)
Padding
Data
18- Flow Control
- - TCP timeout
19Timeout and Retransmission
- Question
- How to determine timeout?
- Is the timeout always a constant?
20Timeout 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.
21Timeout and Retransmission
- RTT
- (a Old_RTT) ((1 a) new_RTT_sample )
- 0 lt a lt 1
- a close to 1 gt no change in a short time
- a close to 0 gt RTT changes too quickly
- Timeout ß RTT
- ß gt1
- Recommended setting, ß 2
22Accurate 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 couldnt be measured accurately if the above
question cannot be answered. - How to do?
23Accurate Measurement of Round Trip Samples ---
Karns Algorithm and Timer Backoff
- Karns 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.
24Karns 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
25Responding 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, 0ltLlt1 - ( Timeout ß RTT ) (ß2 ) gt L lt 30
- Not efficient
- 1989 TCP specification requires to use estimated
variance in place of ß
26New 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 d1/8, p1/4 and g4
27Summary
- 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 Karns Algorithm
- New RTT and Timeout Algorithm
28Thanks