CHAMELEON - A System for Adaptive QoS Provisioning Rajesh Krishna Balan • Internet has proliferated rapidly Date 12/69 12/79 01/89 07/95 07/95 07/96 07/97 07/98 07/99 07/00 Hosts 4 188 80,000 6,642,000 8,200,000 16,729,000 26,053,000 36,739,000 56,218,000 80,000,000 (projection) • Strong Interest in carrying Voice traffic over the Internet - 250 billion conversation minutes by 2005 • Internet is designed for non-real time data communications - Assuring QoS is a problem. Why there is no such problem in POTS? Tele-X Tele-X Trunk lines • Statistical guarantees are provided VoIP Gateway VoIP Gateway Internet Voice Flow Technical challenges • Lack of guarantees in terms of BW, packet loss, delay and jitter - Quality of Voice over Internet suffers. IP is only best effort!! • QoS guarantees are primarily provided by two mechanisms: • RSVP (Resource Reservation Protocol) • Priority Queue Mechanism • DiffServ framework initiative under IETF and QBone initiative under Internet2 or Next Generation Internet hold promise. Objectives To search for and acquire various hardware and / or software tools which can generate application specific traffic which follow TCP dynamics. To verify and evaluate the properties and capabilities of TCP tunnels. To develop a complete system which uses TCP tunnels to provide QoS for various classes of traffic. This system should also be adaptive and thus be able to adjust itself to the traffic conditions on the network. To develop a mechanism by which the system can be used as an efficient yet reliable link layer protocol for transmitting TCP data over lossy links. TCP-Trunking Testbed Setup (Centre For Internet Research) Internet Earth-1 10.10.1.1 Compaq Intel Earth-2 10.10.2.1 Compaq Intel Mercury Earth 10.10.0.2 Linux Intel EtherExpress Pro 100B (Org) Trunking Gateway Linux Jupiter-1 10.10.2.2 Compaq Intel Jupiter-2 10.10.3.1 Compaq Intel Pluto-2 10.10.1.254 Intel OEM Jupiter Delay / Drop Box Linux ananda-r9 137.132.89.91 Compaq Intel Saturn-1 10.10.3.2 Compaq Intel Pluto-1 10.10.0.254 Intel OEM Neptune Pluto Traffic Aggregator Linux Saturn Saturn-2 Trunking Gateway Linux 10.10.4.1 Compaq Intel Krypton-1 10.10.4.254 Intel OEM Venus 10.10.0.3 Linux Intel EtherExpress Pro 100B (Org) Uranus-2 10.10.5.4 Compaq Intel 10.10.5.2 Linux Intel OEM Uranus-1 10.10.5.3 Compaq Intel Uranus 10.10.5.3 Linux Compaq Intel Mars 10.10.0.4 Linux Intel OEM Krypton-2 10.10.5.254 Intel OEM Krypton Traffic Aggregator Linux Rajesh & Boon Peng 3rd September 1999 Revised on 19th July 2000 Traffic Generators Need for Realistic Traffic Generators Mathematical Models (Poisson, Erlang, Exponential etc.) Trace-based Models (collect usage statistics / data and replay etc.) Ad-Hoc Models (models with no realistic component. E.g. models which just generate packets and send them out as fast as possible etc.) Hardware Traffic Generators Very expensive ( > $70,000 for a full system) Used for stress testing production networks Generally unable to generate application level traffic (telnet, HTTP etc.) which follow TCP dynamics (re-transmissions, window size negotiations etc.) Software Traffic Generators Ttcp Iperf Surge IPB AB Tcplib TG Netperf Netspec Rtpplay Telnet NO NO NO NO NO YES YES NO YES NO ftp (1) YES YES NO NO NO NO NO YES YES NO ftp (2) (realistic) NO NO NO NO NO YES YES NO NO NO HTTP NO NO YES YES YES NO NO NO YES NO UDP voice (3) NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO NO NO NO YES NO NO NO NO NO NO NO NO NO YES YES YES YES YES YES Only a NO YES NO (9) YES library (8) (TCP bulk) (UDP bulk) UDP video (4) (UDP bulk) RTP voice (5) (realistic) RTP video (6) (realistic) Works properly? (7) Principle of TCP Tunnels • TCP tunnels are virtual circuits through which all traffic belonging to a class of application are aggregated. • A single aggregated flow in a tunnel can be managed better than individual flows across a congested link. traffic management TCP tunnel encapsulation mechanisms incoming packet admission control Subsystem 1 TCP tunnel TCP trunk TCP tunnel TCP trunk incoming encapsulated packet original data packets sent to mechanisms Subsystem 3 destination via normal routing decapsulation Subsystem 2 outgoing encapsulated packet Principle of TCP Tunnels (cont) • Provides statistical guarantees to classes of traffic (eg., voice traffic should get at least 5% of the BW; Video traffic should get at least 10% of the BW, but no more than 20%). • Guarantees can be assured because of the traffic distribution pattern (eg., all flows do not peak at the same time) traffic management • • • • TCP trunk encapsulation outgoing encapsulated packet Aggregation of traffic Reliable link level protocol Protection of flows TCP trunk Congestion handling is moved from core to edge of the network mechanisms incoming packet admission control Subsystem 1 TCP trunk incoming encapsulated packet original data packets sent to mechanisms Subsystem 3 destination via decapsulation Subsystem 2 Back Pressure Effect of TCP Tunnels Instantaneous Queue Occupancy (packets) 1200 Limit=1000 1000 800 600 Tunnel Router 400 200 Max=96 Core Router 313 299 285 270 256 242 228 213 199 185 171 157 142 128 114 99.6 85.4 71.3 57.2 43 28.7 14.6 0 0 Time (sec) Instantaneous Queue occupancies for core and tunnel routers using TCP tunnels The Chameleon A complete solution that can help in the design of Voice over IP Gateways with QoS guarantees. Traffic -Modeling of VoIP. Research and development at the network protocol layer (TCP/IP etc.). Started in co-operation with Harvard University. Chameleon Tele-X Tele-X Designed to support multiple classes of traffic over the Internet with explicit minimum statistical guarantees. Chameleon INTERNET Border Router End Machines Encapsulated aggregated data in the TCP tunnels Border Router End Machines Aggregation of Incoming Data into TCP Tunnels by Chameleon Chameleon Implementation QoS routines are compiled into the Linux kernel to enable the various QoS providing buffer and scheduling mechanisms (like RED, CBQ etc.) in the Linux kernel. User level program, TC used to activate the various buffer and scheduling mechanisms. This requires different parameters to be passed into the program TC. Chameleon Implementation (2) User space Kernel space Remove packets from list and place into TCP tunnels after adding length of packet in front of packet Place packet into linked list libpcap incoming packet outgoing encapsulated packet Firewall TCP tunnels 1) Read length of pack 2) Read packet 1) Read IP destination of packet 2) Write packet into raw socket. User space Kernel space incoming encapsulated packet Packet sent to TCP tunnel receiver as that is the destination address for TCP tunnel packets original data packets sent to destination via normal routing Data Flow Diagram of TCP Tunnel Software Deployment INTERNET LANs Border Router Running Chameleon Border Router Running Chameleon INTERNET LANs Commodity Border Linux Machine Router running Chameleon LANs LANs Border Router Commodity Linux Machine running Chameleon Experimental Setup Virtual TCP tunnels between the 2 border routers Border Router Delay/Error Box Border Router End Machines End Machines Logical setup of Experimental Testbed Results - TCP Bulk Traffic Throughput (KBytes/s) s Shows effectiveness in protecting TCP bulk traffic 80 1 70 2 60 2 Without Chameleon With Chameleon 50 40 30 20 1 10 One 2Mbps UDP CBR stream One 2Mbps UDP exponential on/off stream Ten TTCP bulk transfer Time (s) 225 211 197 183 169 155 141 127 113 99 85 71 57 43 29 15 1 0 Results - Web Traffic Traffic Mix • 100 web sources • 2 video streams • Jitter is less • Substantial improvement in End-to-end response time % Improvement % Improvement in RTT values with Chameleon 1000 900 800 700 600 500 400 300 200 100 0 923.82% % Improvement with Chameleon 434.27% 123.31% 31.86% Average RTT Maximum RTT Minimum RTT RTT Std Results - UDP Packet Loss Traffic Mix • 10 TCP bulk sources • 2 video stream 100.00% 90.00% 80.00% 70.00% 60.00% 50.00% 40.00% 30.00% 20.00% 10.00% 0.00% • Packet loss is less Data Bytes Received for UDP Traffic Data Bytes Received 96.70% 79.65% With Chameleon Without Chameleon Results - Adaptive Nature Traffic Mix • 10 TCP bulk sources • 2 UDP streams Throughput (KBytes/s) 1400 4 1200 1 2 3 4 1000 800 UDP CBR UDP on/off TCP Bulk Total 1 600 3 400 2 200 1 91 181 271 361 451 541 Time (s) 631 721 811 901 991 Reliable Data Link Layer Lossy / Wireless links are becoming increasingly common in todays networks However, TCP performs poorly in cases where packets are lost due to corruption Chameleon can be used to “isolate” the lossy links from the rest of the network Versions of TCP optimised for lossy environments, like TCP HACK, can be used by the Chameleon Reliable Data Link Layer (2) Virtual TCP tunnels between the 2 border routers Border Router Delay/Error Box Border Router Lossy Link being simulated by Delay/Error Box End Machines End Machines Logical Setup of Experimental Testbed for lossy link experiments Reliable Data Link Layer - Results 80000 1 2 3 4 Throughput (KBytes/s) 70000 60000 sack hack+sack hack new reno 50000 40000 30000 2 20000 10000 4 3 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Percentage Packet Loss (%) Throughput of Chameleon versus percentage packet loss for short latency (10 ms) link with random single packet errors 16 Reliable Data Link Layer - Results (2) 30000 Throughput (KBytes/s) 25000 1 2 3 4 20000 3 15000 sack hack+sack hack new reno 1 10000 4 2 5000 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Percentage Packet Loss (%) Throughput of Chameleon versus percentage packet loss for long latency (300 ms) link with random single packet errors 16 Reliable Data Link Layer - Results Burst Errors 11693.4 11016.2 10000 8000 8531 8560.8 7696.4 5958.2 6000 4000 2000 0 hack+sack hack sack 1402.2 745.4 211.2 10 5 2 Length of Burst Error (packets) 5% burst error Throughput (KB/s ) Throughput (KB/s) 12000 25000 20000 15000 20083.8 19948.6 16436 19759.5 15595.8 12988 10000 5000 0 hack+sack hack sack 4642.8 3540.6 540.2 2 5 10 Length of Burst Error (packets) 2% burst error Reliable Data Link Layer - Results Burst Errors (2) Throughput (KB/s ) 10000 8000 hack 5992.2 6000 4000 sack 7193.8 4440.2 2949.4 2772.4 2931.6 1402.2 2000 0 142 36 Throughput (KB/s ) hack+sack 5000 10% burst error hack 4854.4 sack 4000 3000 3151.8 2011.2 2000 1000 0 2 5 10 Length of Burst Error (packets) hack+sack 6000 1071 1653.2 2109.4 788.6 35 0 2 5 10 Length of Burst Error (packets) 15% burst error Future Work Port Chameleon fully into kernel space Test Chameleon in different network conditions Optimise Chameleon for UDP traffic Optimise Chameleon as a VoIP gateway More work needs to be done on the use of the Chameleon as a reliable data link layer Fully automate the Chameleon Summary Chameleon enables the provisioning of QoS for various classes of traffic in an easy yet effective manner No modifications to existing protocols and applications and is totally transparent to the end users The Chameleon is also adaptive and reacts seamlessly to changes in network bandwidth. It will strive to satisfy all statistical QoS contracts Applicable not only to voice, but other multimedia traffic as well. Expertise in traffic generation and analysis: Poisson - telnet; Heavy-tail (Pareto) - web traffic; exponential on-off - voice Acknowledgements A/P A. L. Ananda Mr. Lee Boon Peng TCP Trunk Project Group Dr. Lillykutty Jacob Dr Winston Seah Khoon Guan Renjish Kumar Liu Yong Xiang Chan Lee Lee Yeo Ann Kian Questions?