t the heart of the success and power of the worldwide IP Internet are the general-purpose protocols in the TCP/IP protocol suite. Although these protocols, such as TCP and IP, provide a flexible framework for building diverse applications, two limitations can be seen precisely because of their success and generality. First, they evolve more slowly than the changes in networking technology and application requirements. Second, they trade some loss in efficiency for their ability to handle increased heterogeneity. In many instances existing protocols do not operate well for emerging applications or take advantage of novel network technologies. Cases in point include TCP's poor handling of the World Wide Web or IP's inability to capitalize on subnetworks which offer quality of service (QoS) guarantees. Both the user community and the Internet Engineering Task Force (IETF) recognize these deficiencies, but remedial action has been slow mainly because of administrative and political barriers rather than technological ones. For example, in 1992 the potential problem of address exhaustion and the degree of options processing in IPv4 led to the three-year design cycle of IPv6. However, three more years have expired and IPv6 has still made insignificant penetration into operational networks. Paradoxically, it is the success of IPv4 that has led to this problem. The problem is not with the specific protocol or standardization method, but with the need to have many people (sometimes with competing agendas) agree on the standard and its deployment. Forming a consensus within large groups is a slow process, and is likely to remain slow; therefore, protocol standards will continue to evolve at a slow pace. General-purpose protocols are designed to operate in heterogeneous network environments by minimizing the services required from lower layers. Minimizing lower-layer service requirements allows robust operation over the widest variety of network infrastructures, but prevents the protocol from taking full advantage of lower-layer services. Ideally, a protocol would adapt (e.g., be reprogrammed) to provide the best possible performance given the path of the data. For instance, when on a LAN the protocol would adjust itself to give performance similar to that of a specialized LAN protocol. It is this need for protocol adaptation and programmability that has driven our design and implementation of protocol boosters. Protocol boosters [1] are a methodology for protocol design aimed at overcoming the slow evolution and inefficiencies associated with general-purpose protocols. They incrementally construct protocols from elements called protocol boosters on an as-needed basis. Protocol boosters allow: • Design of protocols under optimistic assumptions • On-the-fly customization of a protocol to heterogeneous environments • Transparent and rapid deployment, independent of standards, into existing network infrastructures When applied, this protocol construction methodology improves the network performance and/or augments bearer services. We envision that the protocol booster methodology shall hasten the development and deployment of new protocols for the rapidly expanding collection of network and application technologies. By definition, a protocol booster adds, deletes, or delays messages of an existing protocol, but does not originate or terminate that protocol. A protocol booster consists of one or more booster elements. The elements of a booster may use protocols to exchange messages among themselves, but these protocols are originated and terminated by the booster elements, and are not visible external to the booster. The definition of a protocol booster can be relaxed to allow message conversion between booster elements in networks which assume static routing (e.g., ATM), but on the periphery of the entire booster, message syntax must be maintained. Consequently, protocol boosters are transparent to the protocol being boosted. Boosters can reside anywhere in the network or end systems and are designed to improve the performance or features of an existing protocol. Multiple protocol boosters can operate on the same pro- This article describes a novel methodology for protocol design, using incremental construction of the protocol from elements called protocol boosters on an as-needed basis. Protocol boosters are an adaptation technique that allows dynamic and efficient protocol customization to heterogeneous environments. By design, the boosting mechanism is under control of a policy, which determines when augmentation is required. Thus, many portions of a protocol stack execute only as necessary, permitting significant increases in performance relative to general-purpose protocols. Design principles for protocol boosters are presented, as well as an example booster. Two implementation platforms are described: (1) an augmented Linux operating system, which is freely available to other researchers; and (2) a rapidly reprogrammable hardware prototype, called the Programmable Protocol Processing Pipeline (P4), which is based on off-the-shelf FPGA technology. Since protocol boosters are programmed functions and can be network-resident, a programmable network infrastructure is necessary to exploit their full capability. Thus, protocol boosters are an ideal application for an on-thefly programmable network infrastructure. ABSTRACT
[FMSB98] and REF describe the use of so called protocol boosters that allow dynamic protocol customization to heterogeneous environments within the network.