NetScript: A Language and Environment for Programmable Networks

Contact: Sushil da Silva or Professor Yechiam Yemini

Introduction and Motivation

NetScript is a programming language and environment for building networked systems. Its programs are organized as mobile agents that are dispatched to remote systems and executed under local or remote control. The goal of NetScript is to simplify the development of networked systems and to enable their remote programming. At present, networked systems are difficult to design, implement, deploy and manage. Intermediate network nodes (e.g., routers, switches) are constructed as black-boxes; in contrast, end-nodes (workstations, servers) can execute arbitrary applications software. To program new functions into intermediate nodes one must first go through a complex standardization process that can last over a decade. Thus, for example, while end-nodes can be easily programmed and used to support multimedia applications, the intermediate nodes must wait for standard protocols to emerge to support routing and assured QoS delivery of multimedia traffic.


The NetScript project envisions networks that admit flexible programmability and dynamic deployment of software at all nodes. Routing software to handle multimedia traffic could be programmed and deployed in router nodes with the same ease as the respective end-node applications. Application designers could develop code for both end-nodes and intermediate nodes and incorporate innovative features without having to wait for slow (and often non-optimal) standardization processes. The NetScript language includes constructs and abstractions that greatly simplify the design of traffic-handling software. These abstractions hide the heterogeneous details of networked systems. NetScript code is packaged as mobile agents that can be dispatched to network nodes and executed there dynamically, at runtime. Protocol messages are defined and encoded as high-level NetScript objects. NetScript programs are message interpreters that operate on streams of messages. Messages can be encoded either as high-level NetScript objects or in a format compatible with existing standards. One could use NetScript to build packet stream filters, routers, packet analyzers, multimedia stream processors, etc.

[NetScript] [Publications] [People] [Download] [Links]

Distributed Computing and Communications Lab
Columbia University
New York, NY 10027