This paper proposes an architecture that permits selected application- and middleware-level functionality to be 'pushed into' network processors. Such functionality is represented as stream handlers that run on the network processors (NPs) attached to the host nodes participating in overlay networks. When using stream handlers, application- and middleware-level functionality is 'split' into multiple components that are jointly executed by the host and the attached NP (ANP). Resulting improvements in application performance are due to the network-near nature of ANPs and due to the ability to dynamically customize stream handlers to meet current application needs or match current network resources. The evaluation of our current prototype implementation indicates that the use of ANP-level handlers can reduce the delays on the application data path by more than 25%, and can sustain higher throughput for the application services provided by stream handlers. In addition, stream handlers are a suitable basis for scalable implementations of data-increasing services like destination-customized multicast.
['Ada Gavrilovska', 'Karsten Schwan', 'Ola Nordström', 'Hailemelekot Seifu']
Network processors as building blocks in overlay networks