Coupled ¡Conges,on ¡Control ¡for ¡ RTP ¡Media ¡ Safiqul ¡Islam, ¡Michael ¡Welzl, ¡Stein ¡Gjessing ¡and ¡Naeem ¡Khademi ¡ Department ¡of ¡Informa,cs ¡ University ¡of ¡Oslo ¡ ¡
Problem ¡statement ¡ Each ¡Flow ¡has ¡its ¡own ¡Conges@on ¡ Control ¡module ¡ CC ¡ Flow 1 � CC ¡ Flow 2 � CC ¡ Compe,,on ¡ Flow 3 � leads ¡to: ¡ • M o r e ¡ q u e u e ¡ g r o w t h ¡ • M o r e ¡ p a c k e t ¡ d r o p s ¡ • M o r e ¡ d e l a y ¡ Flow n � • F a i r n e s s ¡ p r o b l e m s ¡ i n ¡ c a s e ¡ o f ¡ h e t e r o g e n e o u s ¡ R T T s ¡ 2 ¡
Problem ¡statement ¡– ¡cont. ¡ Single ¡ Conges,on ¡ Controller ¡ CC ¡ Flow 1 � CC ¡ Flow 2 � CC ¡ Flow 3 � Flow n � 3 ¡
Coupled ¡CC ¡– ¡related ¡work ¡ Conges,on ¡ Single ¡ Manager ¡– ¡ Conges,on ¡ Controller ¡ CC ¡ RFC ¡3124 ¡ Flow 1 � Best ¡known, ¡perhaps ¡the ¡oldest ¡related ¡ work. ¡Hard ¡to ¡implement: ¡ ¡ CC ¡ • Provides ¡a ¡common ¡conges,on ¡ Flow 2 � framework ¡ Ensemble ¡TCP ¡-‑ ¡ • Uses ¡a ¡scheduler ¡to ¡distribute ¡the ¡ ETCP ¡ CC ¡ available ¡bandwidth. ¡ Flow 3 � Ensemble ¡Flow ¡ Conges,on ¡ Management ¡ • U,lizes ¡the ¡concept ¡of ¡Transport ¡Control ¡ Block ¡(TCB) ¡informa,on ¡sharing ¡from ¡ RFC2140. ¡ ¡ Flow n � 4 ¡
Shared ¡boUlenecks ¡ • Coupled ¡CC ¡only ¡makes ¡sense ¡across ¡a ¡common ¡ boUleneck ¡ – This ¡was ¡ignored ¡in ¡prior ¡work ¡ – But ¡how ¡to ¡know? ¡ 1. Mul,plexing ¡(same ¡5-‑, ¡actually ¡6-‑tuple) ¡ Fits ¡rtcweb ¡(coupled-‑cc ¡proposed ¡in ¡rmcat) ¡– ¡but ¡only ¡for ¡ – same ¡source/des,na,on ¡hosts ¡ 2. Configura,on ¡(e.g. ¡common ¡wireless ¡uplink) ¡ 3. Measurement ¡ Never ¡100% ¡reliable, ¡but: ¡different ¡receivers ¡possible! ¡ – Historically ¡considered ¡imprac,cal, ¡but ¡recent ¡work: ¡ – ¡ David ¡Hayes, ¡Simone ¡Ferlin-‑Oliveira, ¡Michael ¡Welzl: ¡"Prac=cal ¡Passive ¡Shared ¡ Bo?leneck ¡Detec=on ¡Using ¡Shape ¡Summary ¡Sta=s=cs", ¡accepted ¡for ¡publica=on, ¡IEEE ¡ LCN ¡2014, ¡8-‑11 ¡September ¡2014 ¡ 5 ¡
Coupled ¡CC ¡ Single ¡ Conges,on ¡ Controller ¡ Flow 1 � Flow 2 � Flow 3 � This ¡might ¡work ¡well ¡for ¡ Flow n � flows ¡having ¡same ¡tuple ¡but ¡ what ¡happens ¡when ¡ boUleneck ¡changes? ¡ 6 ¡
Coupled ¡CC ¡ Single ¡ Single ¡ Conges,on ¡ Conges,on ¡ Controller ¡ Controller ¡ Flow 1 � ¡ • Add ¡another ¡CC? ¡ • Add ¡another ¡scheduler? ¡ Flow 2 � • What ¡about ¡previous ¡ CC. ¡state? ¡ ¡ ¡ ¡ Flow 3 � What ¡we ¡think: ¡ • BeUer ¡to ¡have ¡a ¡simple ¡ algorithm ¡that ¡loosely ¡ couples ¡exis,ng ¡cc ¡with ¡ minimal ¡changes. ¡ ¡ Flow n � 7 ¡
Coupled ¡CC ¡ Flow ¡State ¡ Exchange ¡(FSE) ¡ CC ¡ Flow 1 � CC ¡ Flow 2 � CC ¡ Flow 3 � Flow n � 8 ¡
The ¡Flow ¡State ¡Exchange ¡(FSE) ¡ Sender ¡Host ¡ ¡ Flow ¡1 ¡cc ¡ FSE ¡ Flow ¡2 ¡cc ¡ Flow ¡3 ¡cc ¡ Shared ¡ BoUleneck ¡ Detec,on ¡ Flow ¡n ¡cc ¡ (SBD) ¡ 9 ¡
The ¡Flow ¡State ¡Exchange ¡(FSE) ¡ Sender ¡Host ¡ ¡ ¡Update_Rate ¡() ¡ Store ¡Informa,on ¡ Flow ¡1 ¡cc ¡ New_Rate ¡ Flow ¡2 ¡cc ¡ Calculate ¡Rate ¡ FSE ¡ Flow ¡n ¡cc ¡ 10 ¡
The ¡Flow ¡State ¡Exchange ¡(FSE) ¡ Sender ¡Host ¡ ¡ Store ¡Informa,on ¡ Flow ¡1 ¡cc ¡ ¡Update_Rate ¡() ¡ Flow ¡2 ¡cc ¡ Calculate ¡Rate ¡ New_Rate ¡ FSE ¡ Flow ¡n ¡cc ¡ 11 ¡
Simple ¡algorithm ¡ • Every ¡,me ¡the ¡ conges,on ¡controller ¡of ¡ a ¡flow ¡determines ¡a ¡ new ¡sending ¡rate, ¡the ¡ for ¡all ¡flows ¡i ¡in ¡FG ¡do ¡ flow ¡calls ¡UPDATE ¡ ¡FSE_R(i) ¡= ¡(P(i)* Σ CR)/ Σ P ¡ • FSE ¡updates ¡the ¡sum ¡of ¡all ¡ ¡send ¡FSE_R(i) ¡to ¡the ¡flow ¡I ¡ rates, ¡calculates ¡the ¡sending ¡ end ¡for ¡ rates ¡for ¡all ¡the ¡flows ¡and ¡ distributes ¡them ¡ • Results ¡were ¡not ¡good ¡ Details ¡are ¡in ¡the ¡paper ¡ • 12 ¡
Updated ¡algorithm ¡ Idea: ¡reduce ¡the ¡rate ¡on ¡conges,on ¡as ¡one ¡flow. ¡ ¡ • No ¡conges,on: ¡ ¡increase ¡the ¡aggregate ¡by ¡I/N ¡ where ¡I ¡is ¡the ¡increase ¡factor. ¡ • Conges,on: ¡Propor,onally ¡reduce ¡the ¡rate ¡to ¡ emulate ¡the ¡conges,on ¡response ¡of ¡one ¡flow. ¡ ¡ – Avoid ¡over-‑reac,ng: ¡set ¡a ¡,me ¡(2RTTs) ¡to ¡react ¡ only ¡once ¡in ¡the ¡same ¡loss ¡event. ¡ 13 ¡
Some ¡simula,on ¡results ¡ F1 ¡ F1 ¡ F2 ¡ F2 ¡ R1 ¡ R2 ¡ Fn ¡ Fn ¡ Implemented ¡in ¡ns-‑2 ¡ • Two ¡rate ¡based ¡protocols: ¡ • – Rate ¡Adapta,on ¡Protocol ¡(RAP) ¡ ¡ – TCP ¡Friendly ¡Transport ¡Protocol ¡(TFRC) ¡ ¡ ¡ • BoUleneck ¡– ¡10 ¡Mbps, ¡Queue-‑length ¡– ¡62 ¡Packets ¡(1/2 ¡BDP), ¡Packet ¡Size ¡– ¡1000 ¡Bytes, ¡ ¡ RTT ¡– ¡100 ¡ms ¡ • All ¡tests ¡(except ¡when ¡x-‑axis ¡= ¡,me) ¡ran ¡for ¡300 ¡seconds, ¡carried ¡out ¡10 ¡,mes ¡with ¡random ¡ start ¡,mes ¡picked ¡from ¡first ¡second; ¡stddev ¡consistently ¡very ¡small ¡( ¡<= ¡0.2% ¡) ¡ 14 ¡
Evalua,on ¡– ¡priori,za,on ¡and ¡fairness ¡ ¡ Fairness ¡ Priori@za@on ¡ ¡ 1 Fairness Index 0.8 10 Flow 1 0.6 Flow 2 Sending Rate (Mbps) 2 ¡Flows ¡ 8 0.4 6 0.2 FSE Without FSE 0 4 5:1 10:1 15:1 20:1 RTT Ratio 2 1 0 0 50 100 150 200 250 300 Time(s) Fairness Index 0.8 5 ¡Flows ¡ 0.6 Priority ¡of ¡flow ¡1 ¡increased ¡over ¡ 0.4 ,me ¡ 0.2 FSE Without FSE 0 15 ¡ 1:1:1:1:1 16:8:4:2:1 32:16:8:4:2 48:24:12:6:3 RTT Ratio
Evalua,on ¡– ¡FSE ¡controlled ¡flows ¡ compe,ng ¡with ¡synthe,c ¡traffic ¡ 6 Flow #1 • TMIX ¡synthe,c ¡traffic, ¡ Flow #2 taken ¡from ¡60 ¡minute ¡ 5 Goodput (Mbps) trace ¡of ¡campus ¡traffic ¡at ¡ 4 the ¡University ¡of ¡Carolina ¡ 3 [TCP ¡Evalua,on ¡suite] ¡ • We ¡used ¡the ¡pre-‑ 2 processed ¡version ¡of ¡ 1 this ¡traffic ¡which ¡is ¡ adapted ¡to ¡provide ¡ ¡ 0 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 an ¡approximate ¡load ¡ Priority of Flow #2 of ¡50% ¡ 16 ¡
35 60 RAP ¡ TFRC ¡ Average Queue Length Average Queue Length 30 55 25 50 Average ¡ 45 20 Queue ¡ 15 40 35 10 FSE FSE Without FSE Without FSE 5 30 2 4 6 8 10 12 14 16 18 20 2 4 6 8 10 12 14 16 18 20 11 2.5 # of Flows # of Flows Receiver ¡makes ¡assump,ons ¡about ¡ 10 Packet Loss Ratio % Packet Loss Ratio % sending ¡rate ¡(expected ¡length ¡of ¡loss ¡ 9 2 8 interval) ¡ è ¡loss ¡event ¡ra,o ¡p ¡calcula,on ¡ 7 1.5 wrong ¡ è ¡sender ¡too ¡aggressive ¡ 6 5 Packet ¡ 1 4 Loss ¡ 3 0.5 2 FSE Ra,o ¡ FSE 1 Without FSE Without FSE 0 0 2 4 6 8 10 12 14 16 18 20 2 4 6 8 10 12 14 16 18 20 100 # of Flows 100 # of Flows 90 Link Utilization % 90 Link Utilization % 80 80 Link ¡ U,liza,on ¡ 70 70 FSE 60 60 Without FSE FSE Throughput - 1 flow Without FSE 50 50 2 4 6 8 10 12 14 16 18 20 2 4 6 8 10 12 14 16 18 20 17 ¡ # of Flows # of Flows
Different ¡max ¡Queue ¡Lengths ¡ ¡ ¡ RAP ¡ TFRC ¡ 70 180 Average Queue Length 65 Average Queue Length 160 60 140 55 50 120 45 100 10 ¡Flows ¡ 40 80 35 30 60 25 FSE FSE 40 20 Without FSE Without FSE 15 20 60 80 100 120 140 160 180 60 80 100 120 140 160 180 Queue Length Queue Length 90 180 Average Queue Length Average Queue Length 160 80 140 70 15 ¡Flows ¡ 120 60 100 50 80 40 60 30 FSE FSE 40 Without FSE Without FSE 20 60 80 100 120 140 160 180 20 18 ¡ 60 80 100 120 140 160 180 Queue Length Queue Length
Recommend
More recommend