High Performance Networking for TCP-based Applications
The Transmission Control Protocol (TCP) is one of the universally
accepted transport layer protocols in today's networking
world. The introduction of gigabit speed networks a few years back
had challenged the traditional TCP/IP implementation in two
aspects, namely performance and CPU requirements. In order to
allow TCP/IP based applications achieve the performance provided
by these networks while demanding lesser CPU resources,
researchers came up with solutions in two broad directions:
user-level sockets and TCP Offload Engines. Both these approaches
concentrate on optimizing the protocol stack either by replacing
the TCP stack with zero-copy, OS-bypass protocols such as VIA, EMP
or by offloading the entire or part of the TCP stack on to
hardware. However, these offloading techniques have not been
completely successful in avoiding the multiple copies and kernel
context switches, mainly due to certain fundamental bottlenecks in
the traditional TCP implementation including the memory traffic
associated with the data streaming semantics,
buffering for out-of-order packets, and several others.
As a part of this research, we have taken up the challenge of
identifying these bottlenecks and implementing rectifying
algorithms. Our approach to this problem involves the development
of the Direct Data Placement (DDP) and the Marker PDU Aligned
(MPA) protocols, where the data is directly placed into the user
buffer, thus avoiding the intermediate copy and buffering of
data. The challenges in this project include the message
segmentation algorithm and the data re-assembly queue. To support
the applications which are designed to take advantage of the
data-streaming capabilities of TCP, we have retained the current
sockets implementation, giving the user an option to choose either
of them.
Current research along this direction investigates the following issues:
Design and Implementation of DDP and MPA over 10-GigE
Analysis of High Performance User-Level Sockets over InfiniBand
Efficient Protocol Offload Engines on Programmable NIC
V. Vishwanath, P. Balaji, W. Feng, J. Leigh and D. K. Panda
A Case for UDP Offload Engines in LambdaGrids ,
Workshop on Protocols for Fast Long Distance Networks (PFLDNet), Feb, 2006, Nara, Japan.