CS262A Reading Summary 32

U-Net: A User-Level Network Interface for Parallel and Distributed Computing

T. V. Eicken et al.
Summary by Feng Zhou
11/15/2002

3 things in the paper,
  1. The basic idea is to expose the network interface hardware to user processes and also implement protocol stacks in user-level. By circumventing the kernel, expensive data copies are saved. Therefore latency is reduced and effective bandwidth for small messages, which is argued to be important for a lot of application, is greatly increased. U-Net is proposed as an architecture for user-level networking functionality.
  2. "Endpoints" serve as an application's handle into the network. They can be either directly provided by the network interface or emulated (through multiplexing) by the kernel. Endpoints contain send and receive queues pointing to data in the user-space. In order to be able to use DMA on these data, their memory blocks should be pinned in physical memory. Another way to implement this is called "Direct-Access U-Net" in the paper, which refers to using virtual memory address in the queues. It requires the NI having address translation ability and incurs complexities related to page faults.
  3. Two implementations are discussed. One interesting point is: Polling should be used in favor of interrupt/signaling because the high overhead of them. TCP on top of U-Net exhibits superior performance because of the much reduced data layering and copying. This pretty much proves the usefulness of the ILP approach, without considering other factors like back compatibility.
1 flaw:

U-Net involves interface change to the networking portion of the OS. As letting each application run its own copy of TCP inside its process is not such a realistic idea. Thus it cannot completely replace kernel-based networking. How useful it is to "normal" network applications, such as web services, web browsers, isn't discussed in the paper.