210 likes | 308 Views
Active Networking at Washington University Dan Decasper. Overview. Why do we need an Active Network platform? Our software architecture An example: Congestion control for multicast video Future work. What is Active Networking?. The router does more than plain IP forwarding
E N D
Active Networking at Washington University Dan Decasper
Overview • Why do we need an Active Network platform? • Our software architecture • An example: Congestion control for multicast video • Future work
What is Active Networking? • The router does more than plain IP forwarding • Packets can contain program code which is executed as the packet transits through the router • Code can be installed by an administrator at run time • Part of the application runs on the router
Why Active Networking? • Network Protocols are hard to deploy • Application-specific processing on routers can • Improve the end system application (congestion control, reliable multicast) • Reduce network bandwidth (sensor data mixing) • End systems might not have enough capacity to properly display content (wireless devices)
Requirements for our AN Platform • Code should be deployed automatically and on-demand to router • however this happens rarely! • Simple security model we understand • Fast enough for data-path applications • 155 Mbits/s in software • 1.2 Gbits/s with hardware support (FPGA)
Router Plugins • Modular kernel software architecture developed at WashU and ETH Zurich • Allows to • dynamically add code modules called Plugins at run-time into the IP forwarding loop • bind plugins to individual IP flows • Provides fast packet classification
Plugin Identifiers • Code identified by protocol numbers, port numbers or hardware
Plugin Identifiers • Abstract view: F • Plugin Identifier (PI) determines which plugin has to be called
Plugin Control Unit IP Security Video Congestion Control which plugin? which plugin? return plugin to gate call plugin return plugin U U IP IP Plugin Invocation based on Plugin IDs Active Function Dispatcher (AFD) lookup plugin identifier
request plugin from code server request plugin which plugin? plugin not present which plugin? IP IP Plugin Invocation based on Plugin IDs Plugin Management check policies User Space Kernel Plugin Control Unit Active Function Dispatcher (AFD) IP Security Video Congestion Control U U
Code Server Internet MPEG MPEG Video CC Video CC Plugin Database send plugin plugin request Downloading a Plugin • check policies • locate plugin Our Router
Video CC plugin from code server load plugin plugin present return plugin call plugin IP Plugin Invocation based on Plugin IDs Plugin Management check digital signatures User Space Kernel Plugin Control Unit Active Function Dispatcher (AFD) IP Security MPEG Congestion Control U U
Problems with streaming multicast video Feedback to the sender does not scale Buffering does not work well for real-time video Codec does not adapt very well Problems with layered multicast Adapts slowly High level of adaptability requires 100+ multicast groups Problem with media gateways Code must be installed out-of-band Congestion Control for Multicast Video
Use our active network architecture Allows for automatic on-the-fly deployment of scaling code to routers Allows for scaling at OC-3 Use a wavelet-based codec (WaveVideo) Provides approximately 100 levels of adaptability Loss of packets results in smooth degradation (e.g. fewer artifacts or wrongly colored blocks than MPEG) Our Approach
Our Approach (con’t) • Use a WaveVideo scaling plugin • Talk to packet scheduler to find out about bandwidth available • Drops packets based on the available bandwidth and the importance of the individual packet • Table lookup to determine whether to drop or forward packet
0x8002001 Video Packets
500 ms to download and install plugins 22.3 us to scale individual packet 45,000 packets can be scaled per second 360 Mbit/s throughput (1KB packets) + 15 dB PSNR active vs non-active Results
Load Balancing ANN Hardware
The End Thank you!!!