Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence...
Transcript of Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence...
![Page 1: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/1.jpg)
Models of TCP
Richard T. B. Ma
School of Computing
National University of Singapore
CS 5229: Advanced Compute Networks
![Page 2: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/2.jpg)
TCP Congestion Window
Recall, for flow control, the Receiver keeps 𝑅𝑐𝑣𝑊𝑖𝑛𝑑𝑜𝑤 = 𝑅𝑐𝑣𝐵𝑢𝑓𝑓𝑒𝑟 – 𝐿𝑎𝑠𝑡𝐵𝑦𝑡𝑒𝑅𝑐𝑣𝑑 − 𝐿𝑎𝑠𝑡𝐵𝑦𝑡𝑒𝑅𝑒𝑎𝑑
Congestion control: Sender maintains a congestion window Cong𝑊𝑖𝑛
𝐿𝑎𝑠𝑡𝐵𝑦𝑡𝑒𝑆𝑒𝑛𝑡 − 𝐿𝑎𝑠𝑡𝐵𝑦𝑡𝑒𝐴𝑐𝑘𝑒𝑑 ≤ min {𝐶𝑜𝑛𝑔𝑊𝑖𝑛, 𝑅𝑐𝑣𝑊𝑖𝑛𝑑𝑜𝑤}
Sender updates Cong𝑊𝑖𝑛 under congestion.
How does TCP detect congestion or loss?
How to update the congestion window?
![Page 3: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/3.jpg)
Congestion Detection/Control
How does TCP detect congestion or loss? Timeout, based on RTT
Received acknowledgements pattern
How to update the congestion window? AIMD
Slow Start (initial phase, after timeout)
![Page 4: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/4.jpg)
RTT Estimation and Timeout
Exponential weighted moving average (𝛼 =1
8 )
𝐸𝑠𝑡𝑖𝑚𝑎𝑡𝑒𝑑𝑅𝑇𝑇 = 1 − 𝛼 ⋅ 𝐸𝑠𝑡𝑖𝑚𝑎𝑡𝑒𝑑𝑅𝑇𝑇 + 𝛼 ⋅ 𝑆𝑎𝑚𝑝𝑙𝑒𝑅𝑇𝑇
Variability of RTT: 𝐷𝑒𝑣𝑅𝑇𝑇 with ( 𝛽 =1
4 )
𝐷𝑒𝑣𝑅𝑇𝑇 = 1 − 𝛽 ⋅ 𝐷𝑒𝑣𝑅𝑇𝑇 + 𝛽 ⋅ |𝑆𝑎𝑚𝑝𝑙𝑒𝑅𝑇𝑇 − 𝐸𝑠𝑡𝑖𝑚𝑎𝑡𝑒𝑑𝑅𝑇𝑇|
Timeout mechanism 𝑇𝑖𝑚𝑒𝑜𝑢𝑡𝐼𝑛𝑡𝑒𝑟𝑣𝑒𝑙 = 𝐸𝑠𝑡𝑖𝑚𝑎𝑡𝑒𝑑𝑅𝑇𝑇 + 4𝐷𝑒𝑣𝑅𝑇𝑇
Exponential growth after consecutive timeouts, by doubling the 𝑇𝑖𝑚𝑒𝑜𝑢𝑡𝐼𝑛𝑡𝑒𝑟𝑣𝑒𝑙
![Page 5: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/5.jpg)
Cumulative and Duplicate ACK
Ack the lowest expected sequence number
Use cumulative ACK given in-order packets Wait 500ms in practice
Duplicate ACK sent when Arrival of out-of-order packets with higher-
than expected sequence number
When a packet is lost, one can expect to receive multiple duplicate ACKs Timeout can be long before retransmission
Duplicate ACKs can be used to infer packet loss
![Page 6: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/6.jpg)
State Transitions (Dynamics)
Two parameters: CongWin and Threshold
Two states (behavior under no congestion) 1. Slow start (SS):
• CongWin doubles in each round
• Transition to CA after reaching Threshold
2. Congestion avoidance (CA): • CongWin increases additively
Two transition events (under congestion) 1. Timeout (TO): CongWin=1; transition to SS
2. Triple Duplicate ACKs (TD): CongWin/=2; transition to CA
Threshold/=2 in either of the above
![Page 7: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/7.jpg)
Updating 𝐶𝑜𝑛𝑔𝑊𝑖𝑛
Start with sending 𝑊 packets, which is the size of congestion window
Additive Increase: increase the congestion window size by 1/𝑊 for each ACK received
Slow Start: increase the congestion window size by 1 for each ACK received
![Page 8: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/8.jpg)
Loss Detection (TCP Tahoe)
Triple Duplicates (TD)
Time-outs (TO)
![Page 9: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/9.jpg)
TCP Reno (Fast Recovery)
![Page 10: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/10.jpg)
References
J. Padhye, V. Firoiu, D. Towsley, J. Kurose, "Modeling TCP Reno Performance: A Simple Model and its Empirical Validation", IEEE/ACM Transactions on Networking, Vol. 8, No. 2, April 2000.
Z. Chen, T. Bu, M. Ammar, and D. Towsley, “Comments on ‘Modeling TCP Reno Performance: A Simple Model and its Empirical Validation’ ", IEEE/ACM Transactions on Networking, Vol. 14, No. 2, April 2006.
![Page 11: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/11.jpg)
What Does A Model Tell?
Steady-state send rate (throughput) of TCP Reno, defined by 𝐵.
As a function of Loss Rate 𝑝
Average Round Trip Time (RTT) E[𝑟]
Number of cumulated packets 𝑏 received until an ACK is sent
![Page 12: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/12.jpg)
Notation
𝑁𝑡 : # of packets transmission in [0, 𝑡]
Long-term steady-state throughput
𝐵 = lim𝑡→∞
𝐵𝑡 = lim𝑡→∞
𝑁𝑡𝑡
A TD period (TDP) is defined as the time between two TD loss indications
𝑌𝑖 : # of packets sent in the 𝑖th TDP
𝐴𝑖 : duration of the 𝑖th TDP
𝑊𝑖 : size of the congestion window at the end of the 𝑖th TDP
![Page 13: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/13.jpg)
Congestion Window Evolution
𝐵 =?
𝑌 1 𝑌 2 𝑌 3
![Page 14: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/14.jpg)
Regenerative Process
Assumptions: Bulk transfer
Inter-round packet losses are independent
Correlated losses within a round: after a packet loss, all subsequent packets in the round are lost
Cumulative ACK: one ACK per 𝑏 packets received
{𝑊𝑖: 𝑖 = 1,2,⋯ } is a regenerative process with rewards 𝑌𝑖: 𝑖 = 1,2,⋯
𝐵 = E[𝑌]/E[𝐴]
![Page 15: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/15.jpg)
More Observable Parameters
𝛼𝑖 : the first loss of packet
𝑋𝑖 : the round that the loss happens For each round, 𝐶𝑜𝑛𝑔𝑊𝑖𝑛 number of packets are
transmitted.
After receiving 𝐶𝑜𝑛𝑔𝑊𝑖𝑛 number of ACKs, the congestion window sizes increases by 1.
𝛽𝑖 : # of successfully received packet in round 𝑋𝑖
![Page 16: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/16.jpg)
Packets Sent In Each TDP
![Page 17: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/17.jpg)
Sample Path Facts
# of packets sent in the 𝑖th TDP (reward 𝑌𝑖) 𝑌𝑖 = 𝛼𝑖 − 1 +𝑊𝑖
Also by counting the packets pictorially,
𝑌𝑖 = 𝑊𝑖−1
2+ 𝑘 𝑏
𝑋𝑖𝑏 −1
𝑘=0
+ 𝛽𝑖
Change in congestion window:
𝑊𝑖 =𝑊𝑖−1
2+
𝑋𝑖𝑏− 1
![Page 18: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/18.jpg)
Deriving E[𝑌]
𝑌𝑖 = 𝑊𝑖−1
2+ 𝑘 𝑏
𝑋𝑖𝑏 −1
𝑘=0
+ 𝛽𝑖
=𝑋𝑖𝑊𝑖−1
2+𝑋𝑖2
𝑋𝑖𝑏− 1 + 𝛽𝑖
=𝑋𝑖2
𝑊𝑖−1
2+𝑊𝑖 + 𝛽𝑖
⇒ E 𝑌 =E[𝑋]
2
E[𝑊]
2+ E[𝑊] + E[𝛽]
![Page 19: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/19.jpg)
Expectations
E 𝑌 = E 𝛼 + E 𝑊 − 1
E 𝑌 =E[𝑋]
2
E[𝑊]
2+ E[𝑊] + E[𝛽]
E 𝑊 =E 𝑊
2+E 𝑋
𝑏− 1
![Page 20: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/20.jpg)
𝛼 And 𝛽
Assumption of independent drops
∀𝑘 = 1,⋯ , P 𝛼 = 𝑘 = (1 − 𝑝)𝑘−1𝑝 ⇒ E 𝛼 = 1/𝑝
Assume ∀𝑘 = 1,⋯ ,𝑊𝑖 − 1, P 𝛽 = 𝑘 =1
𝑊𝑖
⇒ E 𝛽 =E 𝑊
2
![Page 21: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/21.jpg)
Expectations (substitute 𝛼, 𝛽)
E 𝑌 =1
𝑝− 1 + E 𝑊
E 𝑌 =E[𝑋]
2
E[𝑊]
2+ E[𝑊] +
E 𝑊
2
E 𝑊 =E 𝑊
2+E 𝑋
𝑏− 1 ⇒ E 𝑋 =
𝑏
2E 𝑊 − 𝑏
![Page 22: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/22.jpg)
Solutions
E 𝑊 =8(1 − 𝑝)
3𝑏𝑝+(3𝑏 − 2)2
9𝑏2−3𝑏 − 2
3𝑏
E 𝑌 =1 − 𝑝
𝑝+
8(1 − 𝑝)
3𝑏𝑝+(3𝑏 − 2)2
9𝑏2−3𝑏 − 2
3𝑏
E 𝑋 =2𝑏(1 − 𝑝)
3𝑝+(3𝑏 − 2)2
36+3𝑏 + 2
6
![Page 23: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/23.jpg)
Packets Sent In Each TDP
![Page 24: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/24.jpg)
Expressing E 𝐴
𝑟𝑖𝑗 : 𝑗th round trip time of the 𝑖th TDP
𝐴𝑖 = 𝑟𝑖𝑗
𝑋𝑖+1
𝑗=1
Assume 𝑟𝑖𝑗s are i.i.d. with mean E[𝑟]
𝑋𝑖 + 1 and 𝑟𝑖𝑗s are independent
⇒ E 𝐴 = E 𝑋 + 1 E[𝑟] (Wald’s equation)
![Page 25: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/25.jpg)
Closed-form of 𝐵(𝑝)
Substitute E 𝑌 , E 𝐴 = E[𝑟](E 𝑋 + 1)
𝐵 𝑝 =
1 − 𝑝𝑝
+8(1 − 𝑝)3𝑏𝑝
+(3𝑏 − 2)2
9𝑏2−3𝑏 − 23𝑏
E[𝑟]2𝑏 1 − 𝑝
3𝑝+
3𝑏 − 2 2
36+3𝑏 + 26
![Page 26: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/26.jpg)
Approximations (small 𝑝)
Mean congestion window size: E 𝑊 ≈8
3𝑏𝑝
Expected # of rounds: E 𝑋 ≈ E[𝑟]2𝑏
3𝑝
Average throughput: 𝐵(𝑝) ≈1
E[𝑟]
3
2𝑏𝑝
![Page 27: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/27.jpg)
Time-outs Model
E 𝑀 = E 𝑌𝑖𝑗𝑛𝑖
𝑗=1+ E 𝑅 = E 𝑛 E 𝑌 + E 𝑅
E 𝑆 = E 𝐴𝑖𝑗
𝑛𝑖
𝑗=1
+ E 𝑍𝑇𝑂 = E 𝑛 E 𝐴 + E 𝑍𝑇𝑂
B = E 𝑀 /E 𝑆
![Page 28: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/28.jpg)
Let 𝑄 ≝ 1/E 𝑛 ,
B =E 𝑀
E 𝑆=
E 𝑛 E 𝑌 + E 𝑅
E 𝑛 E 𝐴 + E 𝑍𝑇𝑂=
E 𝑌 + 𝑄E 𝑅
E 𝐴 + 𝑄E 𝑍𝑇𝑂
Need to determine (the new unknowns) 𝑄 : probability that a loss indication ending a
TDP is a timeout (TO)
E 𝑅 : number of failed retransmissions
E 𝑍𝑇𝑂 : avg. duration of a timeout sequence
Time-outs Model
![Page 29: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/29.jpg)
P 𝑅 = 𝑘 = 𝑝𝑘−1 1 − 𝑝 ⇒ E 𝑅 =1
1−𝑝
The 𝑘th back-off time length is
𝐿𝑘 = 2𝑘 − 1 𝑇0 𝑘 ≤ 6
63 + 64 𝑘 − 6 𝑇0 𝑓𝑜𝑟 𝑘 ≥ 7
E 𝑍𝑇𝑂 = 𝐿𝑘P{𝑅 = 𝑘}∞
𝑘=1
= 𝑇01 + 𝑝 + 2𝑝2 + 4𝑝3 + 8𝑝4 + 16𝑝5 + 32𝑝6
1 − 𝑝
Solving E[𝑅] and E[𝑍𝑇𝑂]
![Page 30: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/30.jpg)
Solving 𝑄
Let 𝑄 𝑤 be the value of 𝑄 conditioning on 𝑊 = 𝑤, the congestion window size in the penultimate (second last) round.
𝑄 𝑤 =
1, 𝑤 ≤ 3
𝐴(𝑤, 𝑘)2
𝑘=0+ 𝐴 𝑤, 𝑘 ℎ
𝑤
𝑘=3, 𝑤 > 3
𝑄 = 𝑄 𝑤 P{𝑊 = 𝑤}∞𝑤=1 = E 𝑄 ≈ 𝑄 E[𝑊]
![Page 31: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/31.jpg)
Packets Sent In Each TDP
![Page 32: Models of TCP · 2012-10-27 · Cumulative and Duplicate ACK Ack the lowest expected sequence number Use cumulative ACK given in-order packets Wait 500ms in practice Duplicate ACK](https://reader030.fdocuments.us/reader030/viewer/2022040900/5e6f14cbf485461b08674b03/html5/thumbnails/32.jpg)
Loss Probabilities 𝐴(𝑤, 𝑘) and ℎ
Let 𝐴 𝑤, 𝑘 be the probability that only the first 𝑘 packets are ACKed in the penultimate round by the receiver
𝐴 𝑤, 𝑘 ≝1 − 𝑝 𝑘𝑝
1 − 1 − 𝑝 𝑤
The probability that the loss of packets in the last round happens in the first 3 packets
ℎ ≝ 𝑝 + 1 − 𝑝 𝑝 + 1 − 𝑝 2𝑝