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 Not clear how it works Internet not engineered for delay-sensitive applications Skype is proprietary 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 Delay Impairment (Id) R-Factor Voice Quality Rating 0<R<100 Best 80<R<90 High 70<R<80 Medium 60<R<70 Low 50<R<60 Poor R 94.2 I e I d 0.024D unto 177ms 0.11D after 177ms Loss Impairment (Ie) Network Loss Jitter Loss Variance in Delay I e 1 2 ln( 1 3 E ) Non-Linear Depends on Codec i R-factor depends on delay, loss, clustering of loss Is Non-linear System Nodes play 3 roles User-node Overlay-nodes User-nodes Beacon-node Beacon-Nodes Runs VoIP appl On startup finds and registers with beacon-node Intermediary between overlay and user Represents registered user-nodes for routing purposes Overlay-Node Routes VoIP streams Receives and sends VoIP streams directly to user-nodes Architecture User-Nodes Beacon-node Send VoIP stream to overlay node indicated to it by beacon 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 Control-Layer Control-Layer Route-Compute Layer Route-Compute Layer Probe Layer Data Layer Overlay-nodes Probe Layer Data Data Layer Quality Probe Probe Layer Data User Layer Beacon-Nodes Data Layer Beacon Layer User-nodes Data Layer Beacon Layer Estimating Link-Quality Overlay-nodes periodically asses quality of link between each other They send a talk-spurt Estimate quality of link Link Quality-Probe Spurt-beginning 132B 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 Estimating Path-Quality 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) ? R-factor is not linear so is not additive ! We cannot just add the Rfactor of the links We need to estimate parameters for whole path! Overlay Delay is additive Network loss is multiplicative Cluster-factor can be computed as a weighted average Jitter (delay) loss is hard User-node Our experiments indicated that sum is a good estimate The Routing Algorithm Calculates best quality (R-factor) paths. Uses a modified Bellman-Ford (distance-vector) algorithm Do (Every T seconds) Measure quality of directpath to beacon, overlay nodes Repeat Exchange delay, loss( network,cluster) of bestpath with other overlaynodes If better-path exists through another overlaynode, update best-path Until (paths don’t change) Done Experimental Setup System Implemented on PlanetLab 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 Results: Overlay Performance 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 Usefulness of Path-Diversity Can we put through more calls if we use multiple paths? We tested 2-calls, 3calls and 4-calls 1 Path-1 1 2 1 2 Path-2 2 2 1 R-factor improved on average by 4, 11 and 12 low quality spurts fell by 11%, 21% and 22% 90 80 70 2-Path 3-Path 4-path Benefit Single-Path 60 50 edu net com org eur il Use of Coding Can we improve quality by using more bandwidth Path-1 1 Packet-duplication Parity-codes 2 1 P 1 P 2 2 1 Path-2 2 60 40 20 0 4 3 com 2 net 1.66 1.33 1 edu 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% org eur il Conclusion Quality of VoIP calls can significantly improved by using an overlay-network The Path-diversity offered by overlays can be used to improve quality 41% of calls improve, and 10% improve from low to medium quality and 10% improve from medium to high 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/