NADA Algorithm Update and Test Case Evalua9ons - - PowerPoint PPT Presentation
NADA Algorithm Update and Test Case Evalua9ons - - PowerPoint PPT Presentation
NADA Algorithm Update and Test Case Evalua9ons dra:-zhu-rmcat-nada Xiaoqing Zhu, Rong Pan, Michael Ramalho, Sergio Mena, Charles Ganzhorn, Paul
Outline ¡
- Revised ¡algorithm ¡
– TCP ¡co-‑existence ¡ – Accelerated ¡ramp-‑up ¡
- Simula9on-‑based ¡test ¡case ¡evalua9on ¡
- Testbed ¡results ¡
11/7/14 ¡ 2 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
Issues ¡with ¡Currently ¡Documented ¡Algorithm ¡ (as ¡in ¡dra:-‑zhu-‑rmcat-‑nada-‑04) ¡
- Slow ¡ramp-‑up ¡at ¡start ¡up ¡ ¡
- Ignored ¡loss/marking ¡informa9on ¡
- Lack ¡of ¡TCP ¡coexistence ¡
11/7/14 ¡ 3 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
Revised ¡Receiver ¡Behavior ¡
Delay ¡weight ¡ for ¡marking ¡ Delay ¡weight ¡ for ¡loss ¡ Queuing ¡ delay ¡
dn
Packet ¡ marking ¡ra9o ¡
pM
Packet ¡ loss ¡ra9o ¡
pL
Receiving ¡ rate ¡
rR xn = ˜ dn + pMdM + pLdL x0
n = xn − xnk
δ
Warped ¡ delay ¡
˜ dn
Non-‑linear ¡ warping ¡ ACK ¡interval ¡ Calculate ¡aggregate ¡conges9on ¡ signal ¡and ¡its ¡deriva9ve: ¡ ¡
Non-‑linear ¡Warping ¡of ¡Delay ¡
˜ dn dth dmax
Observed ¡queuing ¡delay ¡ Warped ¡delay ¡
dth
˜ dn = dth( dmax − dn dmax − dth )4
[Budzisz ¡et ¡al. ¡ToN ¡2011] ¡
dn
Delay-‑based ¡ Loss/Marking-‑based ¡
Revised ¡Sender ¡Behavior ¡
11/7/14 ¡ 6 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
γ = min[γ0, Tth RTT + δ ] Rn = (1 + γ)rR Accelerated ¡Ramp-‑Up ¡ Gradual ¡Update ¡ Empty ¡ Queue? ¡ ¡
Bound ¡on ¡ delay ¡spike ¡ Reported ¡ receive ¡rate ¡
θ = w(Rmax − Rmin)xref Rn ← Rn + κδ τ 2
- (θ − (Rn − Rmin)(xn + ητox0
n))
RTT-‑Aware ¡Accelerated ¡Ramp-‑Up ¡
11/7/14 ¡ 7 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
C Time ¡ Rate ¡ t t + RTT + δ R1 ≈ C R2 = (1 + γ)R1 ≈ (1 + γ)C Queuing ¡ Delay ¡ Earliest ¡ feedback ¡ γ < Tth RTT + δ
dq ≈ γ(RTT + δ) < Tth
List ¡of ¡Test ¡Cases ¡
- Variable ¡Available ¡Capacity ¡w/ ¡Single ¡RMCAT ¡Flow ¡
- Variable ¡Available ¡Capacity ¡w/ ¡Mul9ple ¡RMCAT ¡Flows ¡
- Congested ¡Feedback ¡Link ¡w/ ¡Bidirec9onal ¡Flows ¡
- Compe9ng ¡Flows ¡with ¡same ¡RMCAT ¡Algorithm ¡
- Round ¡Trip ¡Time ¡Fairness ¡
- RMCAT ¡Flow ¡Compe9ng ¡with ¡a ¡Long-‑Live ¡TCP ¡Flow ¡
- RMCAT ¡Flow ¡Compe9ng ¡with ¡Short ¡TCP ¡Flows ¡
- Media ¡Pause ¡and ¡Resume ¡
Path ¡propaga9on ¡delay: ¡ ¡50ms ¡ Bogleneck ¡queue ¡depth: ¡ ¡~ ¡300ms ¡ Default ¡Se,ngs ¡
Default ¡Algorithm ¡Parameters ¡
- ACK ¡interval: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
- MTU ¡size: ¡
¡ ¡1000 ¡bytes ¡
- Rate ¡range: ¡ ¡
¡150 ¡Kbps ¡~ ¡1.5 ¡Mbps ¡
- Scaling ¡parameters: ¡ ¡
- Upper ¡bound ¡on ¡RTT: ¡
- Reference ¡delay: ¡ ¡
- Delay ¡warping: ¡
- Delay ¡weights: ¡ ¡ ¡
- Accelerated ¡ramp-‑up: ¡ ¡
τo = 500 ms xref = 10 ms
11/7/14 ¡ 9 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
κ = 1.0, η = 2.0
dth = 50 ms, dmax = 400 ms dM = 200 ms, dP = 1.0 s Tth = 50 ms, γ0 = 0.5 δ0 = 100 ms
Variable ¡Available ¡Capacity ¡w/ ¡Single ¡RMCAT ¡Flow ¡
11/7/14 ¡ 10 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
Variable ¡Available ¡Capacity ¡w/ ¡Single ¡RMCAT ¡Flow ¡ (Zoom-‑In ¡View) ¡
11/7/14 ¡ 11 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
Variable ¡Available ¡Capacity ¡w/ ¡Mul9ple ¡RMCAT ¡Flows ¡
11/7/14 ¡ 12 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
Variable ¡Available ¡Capacity ¡w/ ¡Mul9ple ¡RMCAT ¡Flows ¡ (Zoom-‑In ¡View) ¡
11/7/14 ¡ 13 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
Congested ¡Feedback ¡w/ ¡Bi-‑direc9onal ¡RMCAT ¡Flows: ¡ Forward ¡Direc9on ¡ ¡
11/7/14 ¡ 14 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
Congested ¡Feedback ¡w/ ¡Bi-‑direc9onal ¡RMCAT ¡Flows: ¡ Backward ¡Direc9on ¡ ¡
11/7/14 ¡ 15 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
dra:-‑zhu-‑rmcat-‑nada ¡
Congested ¡Feedback ¡w/ ¡TCP ¡Backward ¡Traffic ¡
TCP ¡flow ¡along ¡ backward ¡path ¡
11/7/14 ¡ 16 ¡
Compe9ng ¡Flows ¡w/ ¡Same ¡RMCAT ¡Algorithm ¡
11/7/14 ¡ 17 ¡
Compe9ng ¡Flows ¡w/ ¡Same ¡RMCAT ¡Algorithm ¡ Per-‑Flow ¡Rate ¡and ¡Delay ¡Sta9s9cs ¡
11/7/14 ¡ 18 ¡
Compe9ng ¡Flows ¡w/ ¡Same ¡RMCAT ¡Algorithm ¡ Varying ¡Path ¡Propaga9on ¡Delay ¡
11/7/14 ¡ 19 ¡
Late-‑comer’s ¡ ¡ advantage ¡ Increased ¡oscilla9on ¡
Round ¡Trip ¡Time ¡Fairness ¡
11/7/14 ¡ 20 ¡
Round ¡Trip ¡Time ¡Fairness ¡ Per-‑Flow ¡Rate ¡and ¡Delay ¡Sta9s9cs ¡
11/7/14 ¡ 21 ¡
0.81 ¡ 0.85 ¡ 0.80 ¡ 0.76 ¡ 0.77 ¡ 20.55 ¡ 19.39 ¡ 20.90 ¡ 21.89 ¡ 21.21 ¡ Jain’s ¡Fairness ¡Index: ¡0.9984 ¡ ¡ ¡
RMCAT ¡Flow ¡compe9ng ¡w/ ¡a ¡Long ¡TCP ¡Flow ¡
11/7/14 ¡ 22 ¡
Queue ¡Depth ¡= ¡240ms ¡
RMCAT ¡Flow ¡compe9ng ¡w/ ¡a ¡Long ¡TCP ¡Flow: ¡ Varying ¡Bogleneck ¡Queue ¡Depth ¡
11/7/14 ¡ 23 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
RMCAT ¡Flow ¡compe9ng ¡w/ ¡a ¡Long ¡TCP ¡Flow: ¡ Varying ¡Path ¡Propaga9on ¡Delay ¡
11/7/14 ¡ 24 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
RMCAT ¡Flow ¡compe9ng ¡w/ ¡Short ¡TCP ¡Flows ¡
11/7/14 ¡ 25 ¡
Media ¡Pause ¡and ¡Resume ¡
Stream ¡2 ¡pauses ¡ For ¡20 ¡seconds ¡
11/7/14 ¡ 26 ¡
Preliminary ¡Testbed ¡Evalua9ons ¡
- Testbed ¡Senng: ¡ ¡
– Bogleneck ¡link ¡capacity: ¡1Mbps ¡ – Path ¡propaga9on ¡delay: ¡0ms ¡ – Bogleneck ¡queue ¡depth: ¡500ms ¡ – VM-‑based ¡sender ¡and ¡receiver ¡
- Windows-‑based ¡implementa9on ¡of ¡NADA: ¡ ¡
– Synthe9c ¡traffic ¡source ¡ – Rate ¡range: ¡120Kbps ¡– ¡3.6Mbps ¡ – Feedback ¡interval ¡target: ¡100ms ¡ – Limita7on: ¡Sender/receiver ¡7mestamp ¡granularity ¡of ¡16ms ¡
11/7/14 ¡ 27 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
Testbed ¡Result: ¡Single ¡Flow ¡ ¡
NADA ¡
11/7/14 ¡ 28 ¡
Testbed ¡Result: ¡Two ¡Flows ¡
NADA ¡
11/7/14 ¡ 29 ¡
Summary ¡and ¡Next ¡Steps ¡
- Revised ¡algorithm ¡and ¡updated ¡evalua9on ¡results: ¡ ¡
– Improved ¡convergence ¡speed ¡ – Coexists ¡with ¡TCP ¡ – Maintains ¡stability ¡and ¡RTT ¡fairness ¡
- Next ¡steps: ¡ ¡
– Analysis ¡and ¡tuning ¡of ¡algorithm ¡parameters ¡ – Calcula9on ¡of ¡performance ¡metrics ¡ – More ¡extensive ¡testbed ¡evalua9ons ¡
NADA ¡
11/7/14 ¡ 30 ¡ dra:-‑zhu-‑rmcat-‑nada ¡
Backup ¡Slides ¡
Traffic ¡ sniffer ¡via ¡ Wireshark ¡
VLAN ¡10 ¡ VLAN ¡12 ¡ VLAN ¡13 ¡ VLAN ¡14 ¡ VLAN ¡15 ¡
Router ¡A ¡ Router ¡B ¡ Router ¡C ¡ Router ¡D ¡
Gig ¡0/1 ¡ Gig ¡0/0 ¡ Gig ¡0/0 ¡ Gig ¡0/1 ¡
Windows7 ¡ VM1 ¡ Fedora ¡ VM1 ¡
Addi9ve ¡delays ¡ inserted ¡via ¡PAGENT ¡ in ¡Router ¡C ¡and/or ¡D ¡
RMCAT ¡Lab: ¡Topology ¡
Fedora ¡ VM2 ¡ Windows7 ¡ VM2 ¡ Fedora ¡ VM3 ¡ Windows7 ¡ VM3 ¡
Configurable ¡ Bogleneck ¡Link ¡
External ¡ network ¡ ASA ¡
All ¡virtual ¡machines ¡are ¡hosted ¡on ¡a ¡UCS ¡server ¡
11/7/14 ¡ 32 ¡
Delay ¡Measurement ¡Framework ¡
Gig ¡0/0.11 ¡ 192.168.11.2 ¡
Gig ¡E ¡ Router ¡B ¡ BoDleneck ¡Serial ¡Link ¡ Router ¡A ¡ Router ¡C ¡
= ¡Ping ¡Receive ¡ Timestamp ¡
Step ¡2: ¡ Reflector ¡Records ¡ RecepLon ¡of ¡Ping ¡
= ¡Pong ¡Receive ¡Timestamp ¡
Step ¡4: ¡Source ¡Records ¡ RecepLon ¡of ¡Pong ¡ Step ¡1: ¡ Source ¡ Sends ¡Ping ¡
= ¡Ping ¡Send ¡ Timestamp ¡
BoDleneck ¡DirecLon ¡
= ¡Pong ¡Send ¡Timestamp ¡
Step ¡3: ¡ Reflector ¡ Sends ¡Pong ¡
Non-‑BoDleneck ¡DirecLon ¡
Step ¡5: ¡Creates ¡History. ¡
History ¡
Result: ¡All ¡rates ¡and ¡packet ¡lengths ¡are ¡known ¡ and ¡all ¡Lmestamps ¡knowable ¡are ¡in ¡packet ¡capture! ¡
Step ¡6: ¡Puts ¡History ¡in ¡next ¡ping. ¡
NADA ¡algorithm ¡implemented ¡at ¡sender ¡process ¡
Source ¡ Process ¡ Reflector ¡ Process ¡
11/7/14 ¡ 33 ¡
_
Feedback ¡Control ¡Loop ¡in ¡Laplace ¡Domain ¡
1 sC δx e−s˜
τ
1 + ητs δ˜ x δr ro xo 1 1 +
τ κxo sτ
Stability ¡Analysis ¡
- Open-‑loop ¡transfer ¡func9on: ¡ ¡ ¡
- Low-‑frequency ¡response: ¡ ¡ ¡
- High-‑frequency ¡response: ¡ ¡ ¡
Ensures ¡weighted ¡fair ¡ bandwidth ¡sharing ¡ Stability ¡guaranteed ¡by ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡and ¡ ¡ ¡
ητ 1
G(s) = −ro C 1 + ηsτ 1 +
τ κxo sτ
e−s˜
τ
sxo |G(s)| ∝ ro xo ˜ τ C G(s) ≈ −κη ro C ˜ τ τ e−s˜
τ
s˜ τ
κη τ ˜ τ < π 2
Numerical ¡Results ¡on ¡Stability ¡Region ¡
Bogleneck ¡BW ¡= ¡2Mbps ¡ Propaga9on ¡Delay ¡= ¡50ms ¡ ¡