Technical Report Number
In high speed networks, packet processing is relatively expensive while bandwidth is cheap. This begs the question: what fields can be added to packets to make packet processing easier? By exploring this question, we device a number of novel mechanisms to speed up packet processing. With the advent of new standards for hte Data Link, Network, and Transport lyaers, we believe there is an opportunity to apply these techniques to improve the performance of real protocols. First, we suggest adding a data manipulation header to an easily accessible portion of each packet. This header contains pointers to fields (in various layers) required for data manipulation. This information allows implementatinos to efficiently combine data manipulation steps (e.g., encryption and copying) in a structured fashion. Second, we suggest adding index fields to protocol identifiers at all layers (e.g., connection identifiers, network addresses, DSAPs) to reduce lookup costs and generic protocol processing. Several new ideas to utilize these index fields (threaded indexing, index passing, and source hashing) are proposed. Virtual Circuit Idenfifiers (VCIs) have been long used to simplify lookup and packet processing in virtual circuit. In source hashing and threaded indexing, the added indices essentiallly serve as VCIs, but for flows in a datagram network. In source hashing, for example, the "VCI" is a consistent random label chosen by the source. Our new methods provide the benefits of normal VCIs withut requiring a round trip delay for set up. Our methods can lower worst case datagram lookup times from O(log(n)) to O(1), which may be important for Gigabit routers.
Varghese, George, "Trading Packet Headers for Packet Processing" Report Number: WUCS-94-16 (1994). All Computer Science and Engineering Research.