Transcript Optimizing Voip Performance Using Overlays
Performance Optimization of VoIP Using an Overlay Network
Raj Kumar Rajendran Samrat Ganguly Rauf Izmailov Dan Rubenstein
Mentor(s):
Project: Grid Networking (GRIN)/VoIP Group: IP Networking and Distributed Systems Group
Motivation
VoIP traffic poised to grow rapidly FCC projects 27 million residential VoIP lines by 2010 Corporate VoIP usage to go from 4% to 44% by 2010 Skype had 10 billion minutes of calls in first year Internet not engineered for delay-sensitive applications Skype is proprietary Not clear how it works Hypothesized that VoIP performance can be improved by Path-Diversity Error-coding
Challenge
Design VoIP-specific overlay network Implement Path-Diversity Parity-coding Deploy Test performance Design test tools and methodology Test usefulness of overlay Effect of Path-Diversity Tradeoffs of Redundancy and Error-Coding
Measuring VoIP Performance
ITU-T E-Model R-factor
R-Factor
0 Voice Quality Rating Best High Medium Low Poor R 94 . 2 I e I d Delay Impairment (I d ) 0.024D unto 177ms 0.11D after 177ms Loss Impairment (I e ) Network Loss Jitter Loss Variance in Delay Non-Linear I e Depends on Codec 1 i 2 ln( 1 3 E ) R-factor depends on Is Non-linear delay, loss, clustering of loss Overlay-nodes Beacon-Nodes User-nodes Nodes play 3 roles User-node Runs VoIP appl On startup finds and registers with beacon-node Beacon-node Overlay-Node Routes VoIP streams Intermediary between overlay and user Represents registered user-nodes for routing purposes Receives and sends VoIP streams directly to user-nodes User-Nodes Send VoIP stream to overlay node indicated to it by beacon Beacon-node With Overlay-nodes periodically assesses quality of links between them Overlay Nodes Calculates optimal routes to all beacon-nodes (directly or through other overlay-nodes) Receives VoIP streams directly from user-nodes and optimally routes them Control -Layer Route-Compute Layer Probe Layer Data Layer Overlay-nodes Control Control -Layer Data Quality Probe Route-Compute Layer Probe Layer Data Layer Data Probe Layer User Layer Beacon-Nodes Data Layer Beacon Layer User-nodes Data Layer Beacon Layer Overlay-nodes periodically asses quality of link between each other They send a talk-spurt Estimate quality of link Link Quality-Probe 8 second talk-spurt (1000 132Byte packets) is sent and we estimate Average Delay (d) Network Loss-rate (n) Jitter Loss-rate (j) Delay loss Loss Clustering (c) 1000 132B packets Spurt-end Spurt-beginning 132B We know quality of link between individual overlay nodes Call may go over multiple-links What is the end-to-end quality of the path (R-factor) ? Overlay R-factor is not linear so is not additive ! We cannot just add the R factor of the links We need to estimate parameters for whole path! Delay is additive Network loss is multiplicative Cluster-factor can be computed as a weighted average Jitter (delay) loss is hard Our experiments indicated that sum is a good estimate User-node Calculates best quality (R-factor) paths. Uses a modified Bellman-Ford (distance-vector) algorithm Do (Every T seconds) Measure quality of direct path to beacon, overlay nodes Repeat Exchange delay, loss( network,cluster) of best path with other overlay nodes If better-path exists through another overlay node, update best-path Until (paths don’t change) Done 35 nodes spread over US, Europe, Asia 11 nodes were chosen to be overlay-nodes Tests Used the G.711 codec 120 Byte frames every 15 ms (133 f/s) Each call 170Kbps (Frame+RTP+UDP+IP) Created a VoIP tester application Generated a call consisting of 8-second talk-spurts Statistics are collected for each talk spurt Overlay run for 1 day uninterrupted Routing algorithm rerun every 10 minutes % Paths that improved Avg. R-factor improvement % Paths where R-factor Improved from low to medium (< 70 to >70) Improved from medium to high (< 80 to > 80) 41% of calls improved R-factor improved by 26 for these calls 11% improved from “low” to “medium” quality 11% improved from “medium” to “high” The improvement was stable over time 2 1 Can we put through more calls if we use multiple paths? We tested 2-calls, 3 calls and 4-calls 1 1 Path-1 2 1 R-factor improved on average by 4, 11 and 12 low quality spurts fell by 11%, 21% and 22% 90 80 70 60 50 4-path Benefit Single-Path edu net com org eur il 2 2 Path-2 Can we improve quality by using more bandwidth Packet-duplication Parity-codes 2 1 P 1 Path-1 P 1 2 1 2 Path-2 60 40 20 0 2 edu net com org eur il Duplication deteriorates performance of regular channels Parity-coding offers better tradeoff. A 50% increase in BW ( 3,2) code channel improves R-factor by 16, and low-quality spurts fell by 27% Quality of VoIP calls can significantly improved by using an overlay-network 41% of calls improve, and 10% improve from low to medium quality and 10% improve from medium to high quality The Path-diversity offered by overlays can be used to improve quality At large loads 20% fall in low-quality spurts When bandwidth is available Parity codes can be used to effectively trade-off bandwidth for quality Details : Infocom submission at www.ee.columbia.edu/~kumar/papers/System
Architecture
Estimating Link-Quality
Estimating Path-Quality
The Routing Algorithm
Experimental Setup
System Implemented on PlanetLab
Results: Overlay Performance
Usefulness of Path-Diversity
Use of Coding
Conclusion