PLAN: a packet language for active networks

PLAN (Packet Language for Active Networks) is a new language for programs that form the packets of a programmable network. These programs replace the packet headers (which can be viewed as very rudimentary programs) used in current networks. As such, PLAN programs are lightweight and of restricted functionality. These limitations are mitigated by allowing PLAN code to call node-resident service routines written in other, more powerful languages. This two-level architecture, in which PLAN serves as a scripting or 'glue' language for more general services, is the primary contribution of this paper. We have successfully applied the PLAN programming environment to implement an IP-free internetwork.PLAN is based on the simply typed lambda calculus and provides a restricted set of primitives and datatypes. PLAN defines a special construct called a chunk used to describe the remote execution of PLAN programs on other nodes. Primitive operations on chunks are used to provide basic data transport in the network and to support layering of protocols. Remote execution can make debugging difficult, so PLAN provides strong static guarantees to the programmer, such as type safety. A more novel property aimed at protecting network availability is a guarantee that PLAN programs use a bounded amount of network resources.

[1]  Peter Lee,et al.  Optimizing ML with run-time code generation , 1996, PLDI '96.

[2]  Liwu Li,et al.  The Java Language , 1998 .

[3]  David W. Wall,et al.  Messages as active agents , 1982, POPL '82.

[4]  Robbert van Renesse,et al.  Building adaptive systems using ensemble , 1998 .

[5]  George C. Necula,et al.  Safe kernel extensions without run-time checking , 1996, OSDI '96.

[6]  Marshall T. Rose,et al.  Management Information Base for network management of TCP/IP-based internets , 1990, RFC.

[7]  Jon Postel,et al.  Internet Protocol , 1981, RFC.

[8]  David Wetherall,et al.  Active network vision and reality: lessions from a capsule-based system , 1999, SOSP.

[9]  Jonathan M. Smith,et al.  Protocol boosters , 1998, IEEE J. Sel. Areas Commun..

[10]  Carl A. Gunter,et al.  PLANet: an active internetwork , 1999, IEEE INFOCOM '99. Conference on Computer Communications. Proceedings. Eighteenth Annual Joint Conference of the IEEE Computer and Communications Societies. The Future is Now (Cat. No.99CH36320).

[11]  Konstantinos Psounis,et al.  Active networks: Applications, security, safety, and architectures , 1999, IEEE Communications Surveys & Tutorials.

[12]  William A. Arbaugh,et al.  The SwitchWare active network architecture , 1998, IEEE Netw..

[13]  John Moy,et al.  OSPF Version 2 , 1998, RFC.

[14]  Larry L. Peterson,et al.  The x-Kernel: An Architecture for Implementing Network Protocols , 1991, IEEE Trans. Software Eng..

[15]  Dan Grossman,et al.  TALx86: A Realistic Typed Assembly Language∗ , 1999 .

[16]  David Clark,et al.  Supporting Real-Time Applications in an Integrated Services Packet Network: Architecture and Mechanism , 1992, SIGCOMM.

[17]  G.J. Minden,et al.  A survey of active network research , 1997, IEEE Communications Magazine.

[18]  Randall J. Atkinson,et al.  Security Architecture for the Internet Protocol , 1995, RFC.

[19]  Craig Partridge,et al.  Smart packets: applying active networks to network management , 2000, TOCS.

[20]  Jon Postel,et al.  User Datagram Protocol , 1980, RFC.

[21]  Jonathan M. Smith,et al.  Alien: a generalized computing model of active networks , 1998 .

[22]  Luigi Rizzo,et al.  On the feasibility of software FEC , 1997 .

[23]  Martin Odersky,et al.  Pizza into Java: translating theory into practice , 1997, POPL '97.

[24]  Robbert van Renesse,et al.  Operating system support for mobile agents , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

[25]  Fred Baker,et al.  RIP-2 MD5 Authentication , 1997, RFC.

[26]  Carl A. Gunter,et al.  Infrastructure for Proof-Referencing Code , 1997 .

[27]  Angelos D. Keromytis,et al.  A secure PLAN , 1999, IEEE Trans. Syst. Man Cybern. Part C.

[28]  R. D. Rockwell,et al.  Smart Packets for active networks , 1999, 1999 IEEE Second Conference on Open Architectures and Network Programming. Proceedings. OPENARCH '99 (Cat. No.99EX252).

[29]  Scott O. Bradner,et al.  The Recommendation for the IP Next Generation Protocol , 1995, RFC.

[30]  Carl A. Gunter,et al.  Policy‐directed certificate retrieval , 2000 .

[31]  Karl Crary,et al.  From system F to typed assembly language , 1999 .

[32]  Jon Postel,et al.  Internet Control Message Protocol , 1981, RFC.

[33]  Robbert van Renesse,et al.  Building Adaptive Systems Using Ensemble , 1998, Softw. Pract. Exp..

[34]  Deyu Hu,et al.  Implementing Multiple Protection Domains in Java , 1998, USENIX Annual Technical Conference.

[35]  Charles Consel,et al.  Safe and efficient active network programming , 1998, Proceedings Seventeenth IEEE Symposium on Reliable Distributed Systems (Cat. No.98CB36281).

[36]  Anna R. Karlin,et al.  Practical network support for IP traceback , 2000, SIGCOMM.

[37]  John V. Guttag,et al.  ANTS: a toolkit for building and dynamically deploying network protocols , 1998, 1998 IEEE Open Architectures and Network Programming.

[38]  Marianne Shaw,et al.  Active bridging , 1997, SIGCOMM '97.

[39]  Luc Moreau,et al.  Design and Semantics of Quantum: A Language to Control Resource Consumption in Distributed Computing , 1997, DSL.

[40]  Keith McCloghrie,et al.  Security Protocols for version 2 of the Simple Network Management Protocol (SNMPv2) , 1993, RFC.

[41]  Carl A. Gunter,et al.  Specifying the PLAN Network Programming Langauge , 1999, HOOTS.

[42]  Angelos D. Keromytis,et al.  The SwitchWare Active Network Implementation , 1998 .

[43]  Burton H. Bloom,et al.  Space/time trade-offs in hash coding with allowable errors , 1970, CACM.

[44]  Stephen Deering,et al.  Internet Protocol Version 6(IPv6) , 1998 .

[45]  David C. Plummer,et al.  Ethernet Address Resolution Protocol: Or Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware , 1982, RFC.

[46]  Jonathan M. Smith,et al.  On-the-fly programmable hardware for networks , 1998, IEEE GLOBECOM 1998 (Cat. NO. 98CH36250).

[47]  George C. Necula,et al.  Proof-carrying code , 1997, POPL '97.

[48]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[49]  Jonathan M. Smith,et al.  The Architecture of ALIEN , 1999, IWAN.

[50]  Adobe Press,et al.  PostScript Language Reference Manual , 1985 .

[51]  Stephen E. Deering,et al.  Internet Protocol, Version 6 (IPv6) Specification , 1995, RFC.

[52]  Jonathan M. Smith,et al.  Operating System Support for Protocol Boosters , 1996 .

[53]  Jonathan M. Smith,et al.  Switchware: accelerating network evolution , 1996 .

[54]  Charles L. Hedrick,et al.  Routing Information Protocol , 1988, RFC.

[55]  Angelos D. Keromytis,et al.  A secure active network environment architecture: realization in SwitchWare , 1998, IEEE Netw..

[56]  Larry L. Peterson,et al.  A dynamic network architecture , 1992, TOCS.

[57]  Martín Abadi,et al.  Reasoning about secrecy for active networks , 2000, Proceedings 13th IEEE Computer Security Foundations Workshop. CSFW-13.

[58]  Erik L. Nygren,et al.  The design and implementation of a high-performance active network node , 1998 .

[59]  Michael Hicks Plan System Security , 1998 .

[60]  Stephen J. Garland,et al.  PAN: a high-performance active network node supporting multiple mobile code systems , 1999, 1999 IEEE Second Conference on Open Architectures and Network Programming. Proceedings. OPENARCH '99 (Cat. No.99EX252).