150 likes | 289 Views
Supporting Heterogeneous Packet Flows in the Internet. Jia Ru Li, Sungwon Ha, Vaduvur Bharghavan TIMELY Research Group http://timely.crhc.uiuc.edu University of Illinois at Urbana-Champaign {juru,s-ha,bharghav}@timely.crhc.uiuc.edu http://timely.crhc.uiuc.edu. Heterogeneous Packet Flows.
E N D
Supporting Heterogeneous Packet Flows in the Internet Jia Ru Li, Sungwon Ha, Vaduvur Bharghavan TIMELY Research Group http://timely.crhc.uiuc.edu University of Illinois at Urbana-Champaign {juru,s-ha,bharghav}@timely.crhc.uiuc.edu http://timely.crhc.uiuc.edu
Heterogeneous Packet Flows In a heterogeneous packet flow, different packets of the same flow can have different QoS requirements • Multimedia flows are “heterogeneous” in nature • e.g. MPEG (control, I, P, and B frames), VR (control, text, audio, video), etc. • Applications may have “frame-specific” QoS policies for reliability, priority, deadlines, dependencies • Goal is to maximize the “goodput” for the application while adapting to the dynamics of the network • Application specifies the QoS policies; transport layer provides the mechanisms to implement these policies What are the trade-offs in moving the mechanisms for implementing QoS policies in heterogeneous packet flows from the application to the transport?
Current Transport Protocols Unreliable Reliable UDP • TCP and UDP are at two extremes • RTP provides realtime transport, but not the per-frame policies we want • Currently, multimedia applications handle heterogeneity as follows: TCP • Unsequenced • Unreactive • Application level mechanisms • Sequenced • Stream delivery • Delay unbounded • split a heterogeneous packet flow into component packet flows (e.g. layers) • possibly open a distinct connection for each component packet flow • explicitly provide mechanisms for implementing QoS requirements in the application
HPF: A Transport Protocol for Supporting Heterogeneous Packet Flows • Supports framing. • Frame-specific QoS policies for reliability, priority, deadline, dependencies • Guarantees sequencing, selective reliability. • Provides “goodput control”. • How much to send (estimates the dimensions of the the connection pipe) • What to send (determines how best to fill up the pipe) • Propagates application-specified priorities as hints to network routers. • Helps network routers preferentially drop low-priority packets.
HPF Architecture Read/Write frames or packets Specify priority, reliability, deadline, dependency Application Send/Receive frames API Segmentation / Reassembly Conversion frame policies into packet policies AF sub-layer Frame -> packet Sequencing Reliability and timing Windowing Flow control HPF GC sub-layer Rate, RTT Rate control Estimation of running average of rate Estimation of round trip time RC sub-layer Send/Receive packets Optional: congestion feedback, priority-based packet drop, rate feedback, delay bounded delivery Network Layer
Selective Reliability and Sequencing retransmitted till successfully acknowledged by receiver Reliable (R): Unreliable deadline bound (D): Unreliable best effort (B): treated like reliable packet till deadline violation is predicted, then treated like unreliable best effort packet transmitted at most once
snd_una snd_nxt sender receiver rcv_nxt R only: if (rcv_nxt == s) and (receive s) rcv_nxt = s+ 1 s: sequence number R/B only: if (rcv_nxt >= h+1) and (receive s) rcv_nxt = max{rcv_nxt, s + 1} h: previous reliable sequence number R/B/D: if (rcv_nxt >= h + 1) and (receive s) rcv_nxt = max{rcv_nxt, max{w}} w: lower bound on window advance Selective Reliability and Sequencing One of the more tricky questions is: how do we move the receiver’s window forward? Packet Header
Snd_nxt=18 Pkt2 is predicted to violate delay bound. Is deleted Pkt1 R s=11 h=10 w=12 Pkt2 D s=12 h=11 w=12 Pkt3 B s=13 h=11 w=12 Pkt4 B s=14 h=11 w=12 Pkt5 B s=15 h=11 w=16 Pkt6 R s=16 h=11 w=17 Pkt7 B s=17 h=16 w=18 Cack=12 Cack=12 Cack=16 Pkt1 R s=11 h=10 w=12 Pkt3 B s=13 h=11 w=12 Rcv_nxt=12 Rcv_nxt=12 Rcv_nxt=16 Selective Reliability and Sequencing Snd_una=11 Rcv_nxt <=11 R:reliable packet s:sequence number D:unreliable delay-bounded packet h:previous reliable pkt sequence number B:unreliable best effort packet w:move the receiver window up to at least w, if this pkt is received Cack: cumulative ACK Receiver window: between read_nxt & rcv_nxt
Priority/Deadline/Dependency dropping rinst(t) rlavg(t) rsavg(t) r rapp(t) r rinst(t) rinst(t) t t application rate adaptation transport rate adaptation Goodput control sender network receiver rapp(t)
frame-specific QoS policy a b a a a a b b b a a a a b b b Frame mode : b Stream mode: blank a a b b b Read 1 Read 2 Read 3 Framing Sender Receiver
Some Implementation Issues • Use socket API with some enhancements: • socket() • setsockopt(HPF_ENABLE) • listen(), connect() • sendmsg(policies) • readmsg(), getsockopt(REPORT_LOSS) • getsockopt(rate) • Very easy to program: ported TCP-based network video player by changing under 20 lines of code (at obvious places) • Defaults to TCP if either end host is HPF unaware • Multicast extensions to HPF are ongoing
Evaluation Platforms • NS simulation (source available) • VCR from Oregon Graduate Institute (network video player) • User level implementation (Linux, Solaris, NT) • Linux Kernel (source available) • NT kernel version is ongoing Currently used in DARPA ITO Quorum Reference Implementation as the transport protocol by Teknowledge Corp. and Open Group
Performance • 2MB file transfer, HPF/TCP speedup : 0.99971 • LAN test • High priority packets ratio : 50% - 5% • Time improvement vs TCP : 10% - 42% • Loss : 5% - 24% • WAN test over Internet • High priority packets ratio : 66% - 5%, • Time improvement vs TCP : 32% - 70% • Loss : 0.7% - 7.86% • All pkts are unreliable (UDP like) : Improvement: 75%, loss 7.86% • MPEG-1 with congestion • Priority drop loss percentage: I =0% P=0% B=24% • No Priority drop loss percentage: I=20% P=20% B=8% • Comparisons with RTP ongoing work
Unresolved Issues/Ongoing Work • Optimizing the protocol overhead • Analytical evaluation of the goodput control mechanisms • Quantitative comparison with other recent approaches • Multicast extensions • Non-trivial wide area deployment and tests
General Information • Source available for linux 2.0.(31 - 36) and ns2 • HPF paper in Infocom 1999 (extended version in preparation) • Website: http://timely.crhc.uiuc.edu/HPF • Email contact: bharghav@crhc.uiuc.edu