150 likes | 372 Views
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
E N D
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
R-factor depends ondelay, loss, clustering of loss • Is Non-linear Measuring VoIP Performance • Delay Impairment (Id) • 0.024D unto 177ms • 0.11D after 177ms • ITU-T E-Model • R-factor • Loss Impairment (Ie) • Network Loss • Jitter Loss • Variance in Delay • Non-Linear • Depends on Codec
System • Nodes play 3 roles • User-node • Runs VoIP appl • On startup finds and registers with beacon-node • 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 Overlay-nodes Beacon-Nodes User-nodes
Data Layer Beacon Layer Architecture • 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 Control-Layer Control-Layer Route-Compute Layer Route-Compute Layer Probe Layer Probe Layer Data Data Layer Data Layer Overlay-nodes Quality Probe Probe Layer Data User Layer Beacon-Nodes Data Layer Beacon Layer User-nodes
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) Estimating Link-Quality • Overlay-nodes periodically asses quality of link between each other • They send a talk-spurt • Estimate quality of link Spurt-beginning 132B 1000 132B packets Spurt-end
R-factor is not linear so is not additive ! We cannot just add the R-factor of the links 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) ? • 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 Overlay User-node
The Routing 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 • Calculates best quality (R-factor) paths. • Uses a modified Bellman-Ford (distance-vector) algorithm
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) Experimental Setup • 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
1 Path-1 1 2 1 2 1 Path-2 2 2 Usefulness of Path-Diversity • Can we put through more calls if we use multiple paths? • We tested 2-calls, 3-calls and 4-calls • R-factor improved on average by 4, 11 and 12 • low quality spurts fell by 11%, 21% and 22%
1 P 1 P 2 1 2 1 2 2 Path-1 Path-2 Use of Coding • Can we improve quality by using more bandwidth • Packet-duplication • Parity-codes • 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%
Conclusion • 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 submissionatwww.ee.columbia.edu/~kumar/papers/