Coupled ¡conges-on ¡control ¡ for ¡RTP ¡media ¡ dra$-‑welzl-‑rmcat-‑coupled-‑cc-‑02 ¡ Michael ¡Welzl, ¡Safiqul ¡Islam, ¡Stein ¡Gjessing ¡ RMCAT ¡@ ¡88th ¡IETF ¡Mee/ng ¡ FP7 ¡RITE ¡ Vancouver, ¡BC, ¡Canada ¡ Reducing ¡Internet ¡Transport ¡Latency ¡ 6 ¡November ¡2013 ¡ 1 ¡
Flow ¡State ¡Exchange ¡(FSE) ¡ Flow ¡1 ¡ Hoping ¡to ¡have ¡a ¡ SBD ¡ draT ¡by ¡the ¡next ¡IETF ¡ Flow ¡2 ¡ Flow ¡3 ¡ Flow ¡4 ¡ FSE ¡ Flow ¡n ¡ 2 ¡
Previous ¡version: ¡only ¡passive ¡ • Goal: ¡Minimal ¡change ¡to ¡exis/ng ¡CC ¡ – each ¡/me ¡it ¡updates ¡its ¡sending ¡rate ¡(New_CR), ¡the ¡flow ¡calls ¡update ¡ (New_CR, ¡New_DR), ¡and ¡gets ¡the ¡new ¡rate ¡ – Complicates ¡the ¡FSE ¡algorithm ¡and ¡resul/ng ¡dynamics ¡(e.g. ¡need ¡ dampening ¡to ¡avoid ¡overshoot ¡by ¡slowly-‑reac/ng ¡flows) ¡ Update_rate() ¡ Flow ¡1 ¡ Store ¡Informa/on ¡ New_Rate ¡ Update_rate() ¡ Calculate ¡Rates ¡ Flow ¡2 ¡ FSE ¡ New_Rate ¡ Update_rate() ¡ Flow ¡n ¡ New_Rate ¡ 3 ¡
Now ¡added: ¡FSE ¡-‑ ¡Ac/ve ¡ Ac/vely ¡ini/ates ¡communica/on ¡will ¡all ¡the ¡flows ¡ • – Perhaps ¡harder ¡to ¡use, ¡but ¡simpler ¡algorithm ¡and ¡“nicer” ¡resul/ng ¡dynamics ¡ ¡ ¡ Update_rate() ¡ Flow ¡1 ¡ Store ¡Informa/on ¡ New_Rate ¡ Calculate ¡Rates ¡ Flow ¡2 ¡ FSE ¡ New_Rate ¡ Flow ¡n ¡ New_Rate ¡ 4 ¡
Now ¡added: ¡FSE ¡-‑ ¡Ac/ve ¡ Ac/vely ¡ini/ates ¡communica/on ¡will ¡all ¡the ¡flows ¡ • – Perhaps ¡harder ¡to ¡use, ¡but ¡simpler ¡algorithm ¡and ¡“nicer” ¡resul/ng ¡dynamics ¡ ¡ ¡ Flow ¡1 ¡ Store ¡Informa/on ¡ New_Rate ¡ Update_rate() ¡ Calculate ¡Rates ¡ Flow ¡2 ¡ FSE ¡ New_Rate ¡ Flow ¡n ¡ New_Rate ¡ 5 ¡
Ac/ve ¡algorithm ¡ • Every ¡/me ¡the ¡conges/on ¡controller ¡of ¡a ¡flow ¡determines ¡a ¡ new ¡sending ¡rate ¡CC_R, ¡the ¡flow ¡calls ¡UPDATE ¡ – Updates ¡the ¡sum ¡of ¡all ¡rates, ¡calculates ¡the ¡sending ¡rates ¡for ¡all ¡ the ¡flows ¡and ¡distributes ¡them ¡to ¡all ¡registered ¡flows ¡ ¡ • Essen/ally ¡all ¡that ¡is ¡leT ¡in ¡this ¡version: ¡ for all flows i in FG do � � � FSE_R(i) = (P(i)*S_CR)/S_P � � � send FSE_R(i) to the flow I � end for � � Designed ¡to ¡be ¡as ¡simple ¡as ¡possible ¡ • Lacks ¡1 ¡feature ¡(to ¡be ¡included ¡in ¡the ¡next ¡version): ¡immediately ¡ – using ¡the ¡capacity ¡freed ¡by ¡applica/on-‑limited ¡flows ¡ 6 ¡
Dynamic ¡behavior: ¡Rate ¡Adapta/on ¡ Protocol ¡RAP ¡( ¡= ¡rate-‑based ¡AIMD) ¡ All ¡simula/ons ¡in ¡this ¡presenta/on: ¡ Dumbbell ¡topology ¡with ¡bocleneck ¡10Mb, ¡1 ¡BDP ¡(13 ¡packets) ¡ drop ¡tail ¡queue, ¡RTT ¡= ¡10 ¡ms, ¡dura/on ¡300 ¡seconds ¡ 7 7 Flow 1 Flow 1 Flow 2 Flow 2 6 6 Sending Rate (Mbps) Sending Rate (Mbps) 5 5 4 4 3 3 2 2 20 21 22 23 24 25 20 21 22 23 24 25 Time (s) Time (s) With ¡FSE ¡ Without ¡FSE ¡ 7 ¡
Dynamic ¡behavior: ¡TFRC ¡ 6 6 Flow 1 Flow 1 Flow 2 Flow 2 5.5 5.5 Sending Rate (Mbps) Sending Rate (Mbps) 5 5 4.5 4.5 4 4 20 21 22 23 24 25 20 21 22 23 24 25 Time (s) Time (s) With ¡FSE ¡ Without ¡FSE ¡ 8 ¡
FSE ¡goals ¡ • Charter: ¡ “Develop ¡a ¡mechanism ¡for ¡iden/fying ¡shared ¡boclenecks ¡between ¡ groups ¡of ¡flows, ¡and ¡means ¡to ¡flexibly ¡allocate ¡their ¡rates ¡within ¡ ¡ the ¡aggregate ¡hieng ¡the ¡shared ¡bocleneck.” ¡ (requirement ¡F34 ¡in ¡ dra$-‑ieA-‑rtcweb-‑use-‑cases-‑and-‑requirements-‑12 ) ¡ – This ¡works ¡perfectly ¡ 10 Flow 1 Flow2 – Also ¡did ¡in ¡the ¡previous ¡ 8 version ¡ Priority ¡of ¡flow ¡ Sending Rate (Mbps) 6 1 ¡increased ¡ over ¡/me ¡ 4 2 0 50 100 150 200 250 300 Time(s) • But: ¡because ¡this ¡avoids ¡compe//on ¡between ¡flows, ¡we ¡expect ¡ reduced ¡queuing ¡delay ¡and ¡loss ¡as ¡a ¡side ¡effect ¡ 9 ¡
Average ¡queue ¡length ¡(RAP) ¡ 12 FSE Without FSE 11 10 9 Average Queue Length 8 7 6 5 4 3 2 4 6 8 10 12 14 16 18 20 Number of Flows 10 ¡
Packet ¡loss ¡ra/o ¡(RAP) ¡ 30 FSE Without FSE 25 20 Packet Loss Ratio % 15 10 5 0 2 4 6 8 10 12 14 16 18 20 Number of Flows 11 ¡
What’s ¡going ¡on? ¡ 14 14 12 12 10 10 Queue size (pkts) Queue size (pkts) 8 8 6 6 4 4 2 2 0 0 15 15.5 16 16.5 17 17.5 18 18.5 19 15 15.5 16 16.5 17 17.5 18 18.5 19 Time (s) Time (s) With ¡FSE ¡ Without ¡FSE ¡ • Queue ¡drains ¡more ¡oTen ¡without ¡FSE ¡ – Thought ¡behind ¡expected ¡benefits: ¡coupling ¡emulates ¡ one ¡flow ¡ • But, ¡e.g.: ¡2 ¡flows ¡with ¡rate ¡X ¡each; ¡one ¡flow ¡halves ¡its ¡rate: ¡2X ¡ è ¡1 ¡½X ¡ – When ¡flows ¡synchronize, ¡both ¡halve ¡their ¡rate ¡on ¡conges/on, ¡which ¡ really ¡halves ¡the ¡aggregate ¡rate: ¡2X ¡ è ¡1X ¡ 12 ¡
Current ¡work ¡ • Trying ¡to ¡fix ¡this ¡ ¡(propor/onally ¡reduce ¡aggregate ¡ rate ¡on ¡conges/on, ¡but ¡increase ¡by ¡delta/N) ¡ – Some ¡issues, ¡e.g. ¡slow ¡start ¡ • Why ¡do ¡we ¡have ¡these ¡problems? ¡ – Because ¡all ¡papers ¡on ¡RFC2140 ¡etc. ¡did ¡not ¡focus ¡on ¡ reducing ¡queuing ¡delay ¡ – RFC2140 ¡cwnd ¡sharing ¡probably ¡has ¡the ¡same ¡problem ¡ 13 ¡
Q&A ¡ 14 ¡
Recommend
More recommend