ANTS: A Toolkit for Building and Dynamically Deploying Network Protocols David Wetherall, John Guttag, and David Tennenhouse Defense by Amit Saha March 25th, 2004, Rice University Outline of the talk 2 Motivation Architecture Goals Components Examples Related work Conclusion 3 Motivation Easily build and deploy network protocols at intermediate nodes as well as end points 4 Architecture - Goals Simultaneous support for multiple network protocols Support new protocol construction – no centralized authority Support dynamic deployment – no down time 5 Architecture - Components Capsules Active nodes Code distribution 6 Architecture - Hierarchy Unit of programming protection Protocol Code group Capsule Code group Capsule Capsule Unit of code transfer Unit of message forwarding Capsule 7 A capsule is a replacement for a packet Reference to forwarding routine Fingerprint based identifier reduces danger of protocol spoofing Identifier (MD5) Source Shared header Type dependant header Destination Payload Resource limits Active node 8 Exports a set of node primitives Determines what kind of processing routines can be deployed by applications Execution model Optimized for packet forwarding Can be extended to generalized computation Active node primitives 9 Environment access Query routing tables, state of links, etc Capsule manipulation Access to capsule headers and payload Control operations Create, copy, forward, discard capsules Node storage Manipulate short-lived application-defined objects 10 Active node execution model Forwarding routines Immutable and fixed at sender Run locally within a short time Memory and bandwidth usage is bounded by a TTL like scheme Only capsules belonging to the same protocol may share state A capsule cannot create new capsule of a different protocol 11 Active node execution model Not all nodes need to be active nodes Sandboxing and Java byte code verification used for protection Code distribution 12 Unfeasible approaches Carry entire program in capsule Pre-load program into all active nodes Couple code transfer with data transfer Distributes code to where needed Adapts to connectivity changes 13 Code distribution steps Capsule Search cache Request Response Code group Code group Capsule Example – Mobile hosts 14 Mobile IP like protocol with two cooperating capsule types 1. Register: Sent by mobile host to register forwarding information 2. Data: Used by other hosts to send messages to mobile host 15 Example – Mobile hosts Sourc e Home agent Dest (home ) Foreign agent Dest (away) 16 Example – Multicast Member Sender Intermediate node Member Related work 17 Softnet (1983) Seminal work; safety and efficiency ? Most similar to this work x-kernel (1991) Dynamic composition of micro-protocols on a per packet basis Inherently less flexible since restricted to a set of micro-protocols Messenger paradigm (1995) End-to-end in nature 18 Conclusion Rapid deployment of new protocols to exactly the required nodes No advance consensus required about protocols