trading packet headers for packet processing
In high speed networks, packet processing is relatively expensive while bandwidth is cheap. Thus it pays to add information to packet headers to make packet processing easier. While this is an old idea, we describe several specific new mechanisms based on this principle. We describe a new technique, source hashing , which can provide O (1) lookup costs at the Data Link, Routing, and Transport layers. Source hashing is especially powerful when combined with the old idea of a flow ID ; the flow identifier allows packet processing information to be cached, and source hashing allows efficient cache lookups. Unlike Virtual Circuit Identifiers (VCIs), source hashing does not require a round trip delay for set up. In an experiment with the BSD Packet Filter implementation, we found that adding a flow ID and a source hash improved packet processing costs by a factor of 7. We also found a 45\% improvement when we conducted a similar experiment with IP packet forwarding. We also describe two other new techniques: threaded indices , which allows fast VCI-like lookups for datagram protocols like IP; and a Data Manipulation Layer , which compiles out all the information needed for Integrated Layer Processing into an easily accessible portion of each packet.
process