CSci4211: Transport Layer: Part II 1
Transport Layer: Part II
Efficient Reliable Data Transfer Protocols
Go-Back-N and Selective Repeat
Transport Layer: Part II Efficient Reliable Data Transfer Protocols - - PowerPoint PPT Presentation
Transport Layer: Part II Efficient Reliable Data Transfer Protocols Go-Back-N and Selective Repeat Round Trip Time Estimation Flow Control Congestion Control Readings: Sessions 3.4-3.7, Lecture Notes CSci4211: Transport
CSci4211: Transport Layer: Part II 1
Go-Back-N and Selective Repeat
CSci4211: Transport Layer: Part II 2
segment, and retransmit ACK.
CSci4211: Transport Layer: Part II 3
Sender Receiver first packet bit transmitted, t = 0 RTT first packet bit arrives ACK arrives, send next packet, t = RTT + L / R
CSci4211: Transport Layer: Part II 4
– U sender: utilization, i.e., fraction of time sender busy sending – 1KB data segment every 30 msec (round trip time)
sender
6 9 transmit
CSci4211: Transport Layer: Part II 5
CSci4211: Transport Layer: Part II 6
first packet bit transmitted, t = 0 sender receiver RTT last bit transmitted, t = L / R first packet bit arrives last packet bit arrives, send ACK ACK arrives, send next packet, t = RTT + L / R last bit of 2nd packet arrives, send ACK last bit of 3rd packet arrives, send ACK
sender
30.008
microsecon
CSci4211: Transport Layer: Part II 7
CSci4211: Transport Layer: Part II 8
CSci4211: Transport Layer: Part II 9
CSci4211: Transport Layer: Part II 10
CSci4211: Transport Layer: Part II 11
CSci4211: Transport Layer: Part II 12
CSci4211: Transport Layer: Part II 13
CSci4211: Transport Layer: Part II 14
CSci4211: Transport Layer: Part II 15
CSci4211: Transport Layer: Part II 16
CSci4211: Transport Layer: Part II 17
– update what is known to be ACKed – start timer if there are
CSci4211: Transport Layer: Part II 18
Arrival of in-order segment with expected seq #. All data up to expected seq # already ACKed Arrival of in-order segment with expected seq #. One other segment has ACK pending Arrival of out-of-order segment higher-than-expect seq. # . Gap detected Arrival of segment that partially or completely fills gap
Delayed ACK. Wait up to 500ms for next segment. If no next segment, send ACK Immediately send single cumulative ACK, ACKing both in-order segments Immediately send duplicate ACK, indicating seq. # of next expected byte Immediate send ACK, provided that segment starts at lower end of gap
CSci4211: Transport Layer: Part II 19
CSci4211: Transport Layer: Part II 20
DevRTT = (1- )*DevRTT + *|SampleRTT-EstimatedRTT| (typically, = 0.25)
b b b
CSci4211: Transport Layer: Part II 21
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
100 150 200 250 300 350 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds) RTT (milliseconds) SampleRTT Estimated RTT
CSci4211: Transport Layer: Part II 22
CSci4211: Transport Layer: Part II 23
– guarantees receive buffer doesn’t overflow
CSci4211: Transport Layer: Part II 24
CSci4211: Transport Layer: Part II 25
CSci4211: Transport Layer: Part II 26
CSci4211: Transport Layer: Part II 27
– single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM) – explicit rate sender should send at
CSci4211: Transport Layer: Part II 28
CSci4211: Transport Layer: Part II 29
CSci4211: Transport Layer: Part II 30
CSci4211: Transport Layer: Part II 31
8 Kbytes 16 Kbytes 24 Kbytes time congestion window
CSci4211: Transport Layer: Part II 32
CSci4211: Transport Layer: Part II 33
Host A
RTT
Host B
time
CSci4211: Transport Layer: Part II 34
TCP Reno w/
CSci4211: Transport Layer: Part II 35
CSci4211: Transport Layer: Part II 36
TCP Reno w/ fast recovery TCP Tahoe loss event: triple duplicate ACKs
CSci4211: Transport Layer: Part II 37
1 2 4 8 9 10 5 6 7 8 1 2 4 5 6
2 4 6 8 10 12 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Round CongWin (MSS)
CSci4211: Transport Layer: Part II 38
LastByteSent-LastByteAcked CongWin
– AIMD – slow start – conservative after timeout events
CSci4211: Transport Layer: Part II 39
– If current CongWin=W: every W segments ACKed: CongWin++ –
for each ACK received, CongWin: = CongWin + MSS/CongWin;
CSci4211: Transport Layer: Part II 40
State Event TCP Sender Action Commentary Slow Start (SS) ACK receipt for previously unacked data CongWin = CongWin + MSS, If (CongWin > Threshold) set state to “Congestion Avoidance” Resulting in a doubling of CongWin every RTT Congestion Avoidance (CA) ACK receipt for previously unacked data CongWin = CongWin+MSS * (MSS/CongWin) Additive increase, resulting in increase of CongWin by 1 MSS every RTT SS or CA Loss event detected by triple duplicate ACK Threshold = CongWin/2, CongWin = Threshold, Set state to “Congestion Avoidance” Fast recovery, implementing multiplicative decrease. CongWin will not drop below 1 MSS. SS or CA Timeout Threshold = CongWin/2, CongWin = 1 MSS, Set state to “Slow Start” Enter slow start SS or CA Duplicate ACK Increment duplicate ACK count for segment being acked CongWin and Threshold not changed
CSci4211: Transport Layer: Part II 41
TCP connection 1 bottleneck router capacity R TCP connection 2
CSci4211: Transport Layer: Part II 42
equal bandwidth share Connection 1 throughput
congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2
CSci4211: Transport Layer: Part II 43
CSci4211: Transport Layer: Part II 44
CSci4211: Transport Layer: Part II 45
CSci4211: Transport Layer: Part II 46
CSci4211: Transport Layer: Part II 47
CSci4211: Transport Layer: Part II 48
– Issues to address – Multiplexing and Demultiplexing
– Connection Management: 3-way handshake, closing connection – Reliable Data Transfer Protocols:
– AIMD, Slow Start, Fast Retransmit/Fast Recovery – Fairness Issue