Defense by Amit Saha March 25 th, 2004, Rice University ANTS : A Toolkit for Building and Dynamically Deploying Network Protocols David Wetherall, John Guttag, and David Tennenhouse
2 Outline of the talk 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 Simultaneous support for multiple network protocols Support new protocol construction – no centralized authority Support dynamic deployment – no down time Architecture - Goals
5 Capsules Active nodes Code distribution Architecture - Components
6 Architecture - Hierarchy Capsule Code group Protocol Capsule Code group Unit of message forwarding Unit of code transfer Unit of programming protection
7 A capsule is a replacement for a packet Reference to forwarding routine Fingerprint based identifier reduces danger of protocol spoofing Capsule Identifier (MD5) Shared header Type dependant header Payload Source Destination Resource limits
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
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 Active node primitives
10 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 Active node execution model
11 Not all nodes need to be active nodes Sandboxing and Java byte code verification used for protection Active node execution model
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 Code distribution
13 Code distribution steps Capsule Request Capsule Search cache Response Code group
14 Example – Mobile hosts 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 Foreign agent Dest (home ) Dest (home ) Dest (away) Dest (away)
16 Example – Multicast Member Intermediate node Member Sender
17 Related work 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