LIANE: Language Independent Active Networking Environment 1 LIANE—Composition for Active Networks Samrat Bhattacharjee Ellen Zegura Ken Calvert Networking and Telecommunications Group Department of Computer Science College of Computing, Georgia Tech. University of Kentucky Atlanta, Georgia Lexington, Kentucky http://www.cc.gatech.edu/projects/canes Sponsor: DARPA LIANE: Language Independent Active Networking Environment Active Networking Active networks provide a dynamically programmable user-network interface Users supply both programs and data Network nodes both forward data and execute user programs Benefits: Rapid and unilateral deployment of new protocols and algorithms Mechanism to exploit application-specific and network-layer information 2 LIANE: Language Independent Active Networking Environment Service Composition in Active Networks Network exposes a programming interface An “underlying program” executes at each node Users inject computations into the network Questions: How does the injected program “bind” to the underlying program? How is the interaction between the underlying and injected programs controlled? Is it possible to reason about the composite computation? Answer: It depends. . . on the programming interface and supported programming model. 3 LIANE: Language Independent Active Networking Environment The Processing Slot Programming Model A general programming model for active networks: Underlying program encapsulates uniform per-packet processing and is resident at each node Underlying program identifies Processing Slots Processing Slots: Slots specify when and where injected programs may execute Underlying program raises a slot iff slot-specific conditions hold Injected programs bind to specific slots Multiple injected programs may bind to a single slot All programs bound to a slot execute concurrently when the slot is raised 4 LIANE: Language Independent Active Networking Environment 5 Reasoning about Active Networks LIANE Language Independent Active Network Environment: A formal model in UNITY notation and logic Underlying programs identify resource bounds, restrictions and obligations of injected code for each slot Transformation technique to form composite underlying program injected programs defines and raises processing slots LIANE Composite Service one underlying program formal composition operator composed with ,... , { } finite set of injected programs Injection preserves all properties of underlying programs Unless resource bounds are violated, properties of injected algorithm are preserved as well LIANE: Language Independent Active Networking Environment 6 LIANE Example: Generalized Forwarding Function s Parse packet, obtain source , destination hSlot 0:[null]i i := Lookup(d, route table R) if i = ? then hSlot 1:[null]i d ftrace route, caching, select route table, discardg ferror messages to sourceg hSlot 2:[null]i fsend route back, select alternate interfaceg if i is congested then hSlot 3:[discard]ifcong. control algorithmg else hSlot 4:[null]i fscheduling algorithmg i enqueue packet for . Figure 1: Example Underlying Program with processing slots Example Injected Program: Mobility, Congestion Control Algorithms LIANE: Language Independent Active Networking Environment Application: Network Support for Multicast Video Multicast video over best effort networks: Three locations for adaption: Sender, Receiver, Network Receiver-based adaption: s – Media is partitioned into layers R D to video layers R D – Receivers join different multicast groups corresponding D – Receivers adapt to network conditions by joining and leaving different multicast groups In-network adaptation: – Media-specific reduction techniques installed in routers 7 LIANE: Language Independent Active Networking Environment 8 Overview of Experiments S0 multicast video S1 source 1 multicast video source 0 least congested video destination R0 B0 bg traffic source 0 D0 moderately congested video D1 destination R1 R2 B1 bg traffic source 1 B2 bg traffic source 2 most congested video destination D2 R3 bg traffic DB destination Figure 2: Experimental Topology Simulation experiments using ANSWER: All multicast group actions were instantaneous MPEG video simulated: 3 layers, 615 Kbps, 30 fps Experiments with different: – background traffic scenarios, number and priority of sources, decoding schemes, capabilities at routers Language Independent Active Networking Environment 9 Multicast Result: Single Video Source Link Speed 1000 Kbps, 1 Video Source 1 0.9 Fraction of Frames Decoded LIANE: 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 2048 4096 6144 8192 10240 12288 14336 16384 18432 20480 22528 24576 Buffer Size (bytes) D0 Layering D0 GL D1 Layering D1 GL D2 Layering D2 GL Figure 3: Fraction of frames decoded with varying buffer size at routers For uncongested destinations, receiver-based adaptation requires larger buffers to provide similar performance For congested destinations, network-based adaptation provides 2-3 times better performance Language Independent Active Networking Environment 10 Detail Snapshot: Single Video Source 1000 Kbps Link, 12 K Buffer 1200 Decoded Frame Sequence Number LIANE: 1000 Add B 800 Add P Del P Del B Add B 600 Add P Del B Del P 400 Add B 200 Del B Del P Add P D1 I-fr Layering D1 P-fr Layering D1 B-fr Layering D1 I-fr GL D1 P-fr GL D1 B-fr GL 0 0 5000 10000 15000 Time (mS) 20000 25000 30000 Figure 4: Sequence of frames received at receiver D1 Language Independent Active Networking Environment 11 Multiple Sources with Priority Link Speed 1500 Kbps, Prioritized Video Sources (Prio. S0 > Prio. S1) 1 0.9 Fraction of Frames Decoded LIANE: 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 2048 4096 6144 8192 S0 --> D0 Prio. Layering S0 --> D1 Prio. Layering S0 --> D2 Prio. Layering 10240 12288 14336 16384 18432 20480 22528 24576 Buffer Size (bytes) S0 --> D0 Prio. GL S0 --> D1 Prio. GL S0 --> D2 Prio. GL Figure 5: Fraction of frames decoded for high priority source Difficult to eliminate effects of the lower priority sources under receiver-based adaptation — join experiments of lower priority sources disrupt the high priority traffic Language Independent Active Networking Environment 12 Citizenship Weighted FQ, 1000 Kbps Link, Background Sources Backoff Single Shared Buffer, 1000 Kbps Link, Background Sources Backoff 400 400 350 D1 I-Frames D1 P-Frames D1 B-Frames B0 --> DB B1 --> DB 300 Average Data Rate (Kbps) 350 Average Data Rate (Kbps) LIANE: 250 200 150 100 300 250 200 D1 I-Frames D1 P-Frames D1 B-Frames B0 --> DB B1 --> DB 150 100 50 0 50 0 5000 10000 15000 Buffer Size (Bytes) 20000 Figure 6: Single Shared Buffer 25000 0 5000 10000 15000 Buffer Size (Bytes) 20000 25000 Figure 7: Weighted Fair Queue Bandwidth is shared unfairly with in a shared buffer Weighted fair queuing equalizes the bandwidth allocation LIANE: Language Independent Active Networking Environment Current Work LIANE Discrete-event simulator ANSWER implemented using the slot model ANSWER allows experimentation with slot-processing model Implementation of LIANE Applications Work on other applications: Virtual Topologies, Anycasting Larger topologies “Partially active” networks 13