ONE CHANCE TO GET IT RIGHT: The Ngi Service Interface Kenneth L. Calvert and Ellen W. Zegura Networking and Telecommunications Group College of Computing Atlanta, GA 30332-0280 calvert@cc.gatech.edu, +1.404.894.9107 ewz@cc.gatech.edu, +1.404.894.1403 Fax: +1.404.894.0272 I. Importance of the Network Service A key design characteristic of any global network is the form of service it provides to its users, and how they access that service. Usually defined early in the development process, the service interface is notoriously difficult to change: it becomes embedded in the infrastructure, and higher- level services and applications depend on it. One of the factors behind the success of the present Internet is its "best- effort datagram" service, which turns out to be a fine building block for lots of interesting and useful applications. The architecture of the Internet is fundamentally oriented towards providing this simple, best-effort packet switching service, whose nature is reflected in the hardware and software components of the network, in the protocol headers, and in the interactions across the interface between the network user and the service provider. The allocation of functionality between the two sides of this user-network interface plays an especially critical role. In the present Internet architecture, there is a clear separation between what the network does, or tries to do, and what the end systems do: the network deals with details of topology, routing, and moving the bits from one place to another; the end system deals with processing the bits, and recovering from situations where "best-effort" is not good enough. For example, the network is not supposed to pay any attention to the contents of the packets, and the end-system is not supposed to concern itself with the route followed by the data, only with whether it gets there or not. This separation of functionality has worked well for services like electronic mail and resource sharing via the World-Wide Web. However, the set of services desired for the next-generation Internet is likely to bump up against the limitations of a network service that only moves bits, and doesn't offer to do anything more to them. As an example, consider reliable multicast. The reliable delivery of a packet to multiple destinations is a difficult problem in the present Internet. Although the network attempts to deliver the packet to multiple destinations efficiently (by replicating the packet only when necessary as it travels through the network), it doesn't keep track of whether it succeeds in delivering the packet to each destination. It is up to the end-system to determine which destinations received the packet, and then recover by retransmitting the packet. The key point here is that the network has information that would make this recovery much more efficient (viz., the topology of the paths to the recipients, and the distribution of losses along those paths), but the network service doesn't offer any way for the end- system (user) to take advantage of that information. There are many other examples of situations where one would like to enable the end-system to either take advantage of information within the network, or give advice to the network on how to process its information, based upon its own knowledge. II. Higher-level Services Consider the placement of user-controllable computing capabilities in the network, where they can be utilized by applications that need them. The network is no longer just a passive mover of bits, but a more general computation engine: information injected into the network may be modified, stored, or redirected as it is being transported. Researchers are investigating different architectures for such networks. One possibility is to allow the nodes of the network to be programmed by the user, using a language designed for that purpose. Another approach is to define a slowly-changing set of functions, invoked and controlled or tailored via parameters carried in packets. This latter appraoch allows network service providers to determine the set of user-customizable functions, and possibly to charge for their use on a per-function basis. This approach also allows for optimization of particular functions, e.g. by putting them in hardware. In any case, the service provided by such a network is a "meta" service, i.e. it supports the definition and/or customization of other services. This neatly solves the problem of getting information across the user-network interface, by allowing the end-system to describe to the network what it wants the network to do. III. The Next Generation Internet Service We have been exploring the advantages of networks that offer user- customizable services for some time now* and are convinced that the Next Generation Internet architecture should support such services. We propose an architecture that can provide a "meta" service as well as traditional packet-forwarding services. In this architecture, as in the present Internet, the "unit of service" provided by the network is the packet. Our architecture has three major pieces: 1. A generic packet processing model, which defines the basic capabilities of the network node (switch), including the security model. This model describes how the information carried in a packet controls what a network node does with the packet. It also specifies exactly where and how processing may be customized under end-system control. 2. A set of user-selectable and user-customizable processing functions which form the primary service interface between the network and its users. In addition to traditional packet forwarding functions, others, such as "install custom processing function" are also supported. 3. A set of primitive elements, which constitute the building blocks of the customizable functions. Examples of such primitive elements are routing tables (generic and user-customized), output queues, and per-flow (user-controlled) state information. A key feature of this architecture is its simple interface, which is flexible enough to evolve with technology and with our understanding of the issues involved. The key point is that the service provided by the network can change without having to change the user-network interface. IV. Conclusion Clearly provision of such higher-level "active" networking services raises a number of challenging issues, including security, interoperability, and especially performance. Nevertheless, in order to provide for the applications that will be deployed well into the next century, we recommend that the Next Generation Internet architecture support such user-customizable services, and that research into these issues proceed as rapidly as possible. *See http://www.cc.gatech.edu/fac/Ken.Calvert/an/active.html