15-744: Computer Networking L-19 Active Networks
L -17; © Srinivasan Seshan, Active Networks Active networks Active services Assigned reading [W99] Active network vision and reality: lessons from a capsule-based system [AMK98] An Active Service Framework and its Application to Real Time Multimedia Transcoding
L -17; © Srinivasan Seshan, Overview Active Networks Active Services
L -17; © Srinivasan Seshan, Why Active Networks? Traditional networks route packets looking only at destination Also, maybe source fields (e.g. multicast) Problem Rate of deployment of new protocols and applications is too slow Solution Allow computation in routers to support new protocol deployment
L -17; © Srinivasan Seshan, Active Networks Nodes (routers) receive packets: Perform computation based on their internal state and control information carried in packet Forward zero or more packets to end points depending on result of the computation Users and apps can control behavior of the routers End result: network services richer than those by the simple IP service model
L -17; © Srinivasan Seshan, Why not IP? Applications that do more than IP forwarding Firewalls Web proxies and caches Transcoding services Nomadic routers (mobile IP) Transport gateways (snoop) Reliable multicast (lightweight multicast, PGM) Online auctions Sensor data mixing and fusion Active networks makes such applications easy to develop and deploy
L -17; © Srinivasan Seshan, Variations on Active Networks Programmable routers More flexible than current configuration mechanism For use by administrators or privileged users Active control Forwarding code remains the same Useful for management/signaling/measurement of traffic “Active networks” Computation occurring at the network (IP) layer of the protocol stack capsule based approach Programming can be done by any user Source of most active debate
L -17; © Srinivasan Seshan, Case Study: MIT ANTS System Conventional Networks: All routers perform same computation Active Networks: Routers have same runtime system Tradeoffs between functionality, performance and security
L -17; © Srinivasan Seshan, System Components Capsules Active Nodes: Execute capsules of protocol and maintain protocol state Provide capsule execution API and safety using OS/language techniques Code Distribution Mechanism Ensure capsule processing routines automatically/dynamically transfer to node as needed
L -17; © Srinivasan Seshan, Capsules Each user/flow programs router to handle its own packets Code sent along with packets Code sent by reference Protocol: Capsules that share the same processing code May share state in the network Capsule ID is MD5 of code
L -17; © Srinivasan Seshan, Capsules Active Node IP Router Active Node Capsule IP HeaderVersionDataType Previous Address Type Dependent Header Files ANTS-specific header Capsules are forwarded past normal IP routers
L -17; © Srinivasan Seshan, Capsules Active Node 1 IP Router Active Node 2 Capsule Request for code Capsule When node receives capsule uses “type” to determine code to run If no code at node requests code from “previous address” node Likely to have code since it was recently used
L -17; © Srinivasan Seshan, Capsules Active Node 1 IP Router Active Node 2 Capsule Code Sent Code is transferred from previous node Size limited to 16KB Code is signed by trusted authority (e.g. IETF) to guarantee reasonable global resource use
L -17; © Srinivasan Seshan, Research Questions Execution environments What can capsule code access/do? Safety, security & resource sharing How isolate capsules from other flows, resources? Performance Will active code slow the network? Applications What type of applications/protocols does this enable?
L -17; © Srinivasan Seshan, Functions Provided by Capsule Environment Access Querying node address, time, routing tables Capsule Manipulation Access header and payload Control Operations Create, forward and suppress capsules How to control creation of new capsules? Storage Soft-state cache of app-defined objects
L -17; © Srinivasan Seshan, Safety, Resource Mgt, Support Safety: Provided by mobile code technology (e.g. Java) Resource Management: Node OS monitors capsule resource consumption Support: If node doesn’t have capsule code, retrieve from somewhere on path
L -17; © Srinivasan Seshan, Performance User level Java implementation ok for T1 (1.5Mbps)
L -17; © Srinivasan Seshan, Performance Based on profile of code Java specific overheads and user level send/receive are bulk of extra overhead Safe evaluation and type demultiplexing only add 30% overhead Other more efficient technologies available Software fault isolation (SFI) Proof carrying code (PCC)
L -17; © Srinivasan Seshan, Applications/Protocols Limitations Expressible limited by execution environment Compact less than 16KB Fast aborted if slower than forwarding rate Incremental not all nodes will be active Proof by example Host mobility, multicast, path MTU, Web cache routing, etc.
L -17; © Srinivasan Seshan, Discussion Active nodes present lots of applications with a desirable architecture Key questions Is all this necessary at the forwarding level of the network? Is ease of deploying new apps/services and protocols a reality?
L -17; © Srinivasan Seshan, Overview Active Networks Active Services
L -17; © Srinivasan Seshan, Active Service Way of doing “application-level active networking” for a specific domain Service agents (“Servents”) Perform operations like transcoding and multicast-to-unicast conversion in a cluster environment
L -17; © Srinivasan Seshan, Components of Architecture Service environment: defines programming model and execution environment Service location: how to locate AS1 cluster Service management: resource allocation in cluster Service control: how to control servent Service attachment: how to attach a cluster if a client doesn’t have multicast Service composition: not explored
L -17; © Srinivasan Seshan, Service Environment Environments at application layer and uses MASH infrastructure Claim: a good environment is domain- specific as are the APIs Safety not addressed Can leverage work on type-safe languages, etc.
L -17; © Srinivasan Seshan, Service Location/Management How to locate cluster? Use mechanism like DHCP (or even DNS) Listen on well-known multicast address for advertisements Static configuration (/etc/X.config) Service Management This topic is the bulk of the paper
L -17; © Srinivasan Seshan, Servent Launching (ASCP) Uses announce/listen protocol model and no centralized manager Periodically announce set of (key; value) pairs on multicast group Receivers either update, refresh or age entries out of table Error recovery subsumed as part of normal operation Host managers, on per cluster machine, use this to launch servents Servent floods Prevent using multicast damping (random timers/suppression)
L -17; © Srinivasan Seshan, Processor Sharing Use of a birth-death process to grow and wean number of cluster machines N is the desired target number of machines and n is the number of actual machines in current operation If n<N, randomly fork copy on an idle machine with probability p l = min(1, N/n-1) And if n>N,kill with probability 1-N/n Property that no HMs exist can be made exponentially small in the target number
L -17; © Srinivasan Seshan, Other Issues Service Control Application specific control In MeGa architecture, uses SCUBA (Scalable ConsensUs–based Bandwidth Allocation) to control servents Service Attachment Uses “soft-state gateways” to bridge multicast- to-unicast regions Paper describes deployment experience on Berkeley NOW
L -17; © Srinivasan Seshan, Discussion Framework for active services in the context of media gateways and real time Mbone applications Specific to restricted class of applications Soft-state announce-listen protocols is different from “standard” centralized managers
L -17; © Srinivasan Seshan, Review Papers present two ways of building flexible networks Changes the way IP forwarding is done Works at application layer
L -17; © Srinivasan Seshan, Announcements Approximately 1month to project due date!!! Final exam on May 8 th – time TBA No HW3 Spend extra time on your project Make sure you keep up with reading – it will be critical on exam
L -17; © Srinivasan Seshan, Next Lecture: Application Networking HTTP APIs Assigned reading [BSR99] An Integrated Congestion Management Architecture for Internet Hosts [PM95] Improving HTTP Latency