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,
-
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.
-
"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.
-
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.