E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
1
Summary of TCP (1/2)
Review
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Important Points
What is TCP?
TCP is a transport layer protocol that provides point-to-point bidirectional reliable data transfer
underline_base
(modified by Cheung for EE586; based on K&R original)
2
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Important Points
What is TCP?
TCP is a transport layer protocol that provides point-to-point bidirectional reliable data transfer
Numbering = 32-bit index to individual bytes
Data segment = first byte of application data
Ack segment = next byte to be received
Each segment can be both a data segment and anack segment
Two sequence number fields
Ack flag is 1 if it is a valid Ack segment
underline_base
(modified by Cheung for EE586; based on K&R original)
3
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
underline_base
TCP seq. numbers, ACKs
User
types
C
host ACKs
receipt
of echoed
C
host ACKs
receipt of
C, echoes
back C
simple texting scenario
Host B
Host A
Seq=42, ACK=79, data = C
Seq=79, ACK=43, data = C
Seq=43, ACK=80
desktop_computer_stylized_medium
desktop_computer_stylized_medium
(modified by Cheung for EE586; based on K&R original)
4
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Problem 1
Consider transferring an enormous file of L bytes fromHost A to Host B. Assume an MSS of 536 bytes.
What is the maximum value of L such that TCP sequencenumbers are not exhausted? Recall that the TCP sequencenumber field has 4 bytes.
For the L obtained in a), find how long it takes to transmit the file.Assume that a total of 66 bytes of transport, network, and data-link header are added to each segment before the resulting packetis sent out over a 155Mbps link. Ignore flow and congestioncontrol so A can pump out the segments back to back andcontinuously.
(modified by Cheung for EE586; based on K&R original)
5
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Important Points
Setting timeout value (what critierion?)
Longer than RTT to prevent pre-mature timeout
Too long otherwise long reactive to loss
Average RTT estimate
Average RTT Deviation estimate
Timeout value is determined
underline_base
(modified by Cheung for EE586; based on K&R original)
6
DevRTT = (1-)*DevRTT + *|SampleRTT-EstimatedRTT|
TimeoutInterval = EstimatedRTT + 4*DevRTT
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Problem 2
Suppose that the five measured SampleRTT values are 106ms, 120ms,140ms, 90ms, and 115ms. Compute the EstimatedRTT after each ofthese SampleRTT values is obtained, using a value of α=0.125 andassuming that the value of EstimatedRTT was 100ms just before thefirst of these five samples were obtained. Compute also the DevRTTafter each sample is obtained, assuming a value of =0.25 andassuming the value of DevRTT was 5ms just before the first of thesefive samples was obtained. Last, compute the TCP TimeoutIntervalafter each of these samples is obtained.
(modified by Cheung for EE586; based on K&R original)
7
underline_base
Sample RTT
EstimatedRTT
DevRTT
TimeoutInterval
106ms
120ms
140ms
90ms
115ms
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Reliable Data Transfer in TCP
Reliable Data Transfer
Similar to GBN: cumulative ack, single timer
Similar to SR: can buffer out-of-order segment, onlyretransmit the oldest
Sender
(modified by Cheung for EE586; based on K&R original)
8
underline_base
Event
Action
Data from App
Send new segment andstart timer if not alreadyrunning
Timeout
Retransmit the oldest andrestart timer
ReceiveAcknowledgement
Move base to ack seq #and restart timer forunack’ed seg
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Transport Layer
3-9
TCP: retransmission scenarios
lost ACK scenario
Host B
Host A
Seq=92, 8 bytes of data
ACK=100
Seq=92, 8 bytes of data
X
timeout
ACK=100
premature timeout
Host B
Host A
Seq=92, 8 bytes of data
ACK=100
Seq=92,  8
bytes of data
timeout
ACK=120
Seq=100, 20 bytes of data
ACK=120
SendBase=100
SendBase=120
SendBase=120
SendBase=92
underline_base
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Reliable Data Transfer in TCP
Receiver
(modified by Cheung for EE586; based on K&R original)
10
underline_base
Arrival Event
Action
Seg # = expected
Delay ack
Seg # = expected & a delayedack
Send ack immediately
Seg # != expected & gap
Send duplicate ackimmediately
Seg #! = expected & gapsmaller
Move receiver window andsend new ack
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Fast Retransmit
Don’t wait for timeout but retransmit after threeduplicate ack
(modified by Cheung for EE586; based on K&R original)
11
underline_base