Efficient connection-oriented communication on high-performance networks

Efficient connection-oriented communication on high-performance networks
复制标题

高性能网络上高效的面向连接的通信

DOI:
--
复制
发表时间:
1998
期刊:
影响因子:
--
通讯作者:
Stefanos N. Damianakis
Stefanos N. Damianakis
中科院分区:
--
文献类型:
--
作者:
Stefanos N. Damianakis

文献摘要

被引文献

相似文献

网络协议传统上在内核中实现,以便在进程之间提供受保护的通信。随着千兆网络结构变得可用,内核协议栈成为通信性能瓶颈,影响延迟和带宽。本文研究了如何使用受保护的用户级通信机制来支持高效的面向连接的通信。 大多数用户级通信子系统都是为定制通信模型而设计的。为了支持快速的用户级通信,新的网络接口将传入数据直接放置在用户内存中,位于发送方指定的地址。这种能力使得能够构建有效的通信子系统,因为网络接口可以在没有任何软件干预的情况下传递消息。这样的通信子系统不支持面向连接的通信有两个原因:第一,直接数据传输不提供面向连接的模型所要求的消息检测,第二,基于发送者的通信不提供面向连接的模型所要求的接收者的匿名性。 本文研究如何在高性能网络上支持高效的、用户级的、面向连接的通信。首先,解决了用户级通信模型的消息到达检测问题。传统的方法使用中断来指示新消息的到达,这破坏了用户级通信的好处,因为每个消息都需要保护交叉。为了最大限度地减少中断开销,提出了一种结合轮询和中断的竞争机制,以有效地检测用户级新消息的到达。其次,解决了面向连接的API和基于发送方的通信模型之间的不匹配问题。传统的方法要求接收者将消息复制到他们的最终目的地,这是未知的。为了实现零拷贝、面向连接的协议,提出了一种允许接收方动态改变基于发送方的模型中消息的目的地的机制。 这些想法被集成到一个用户级的通信模型,并使用两个不同的多处理器平台上的流套接字实现进行评估。基准测试和应用程序的实验结果表明,这些技术提供了显着的性能改善用户级,面向连接的通信。
Network protocols have traditionally been implemented in the kernel in order to provide protected communication between processes. As gigabit network fabrics become available, the kernel protocol stack becomes a communication performance bottleneck, affecting both latency and bandwidth. This dissertation investigates how to use protected, user-level communication mechanisms to support efficient, connection-oriented communication. Most user-level communication subsystems are designed for custom communication models. To support fast user-level communication, new network interfaces place incoming data directly in user memory, at an address specified by the sender. This capability enables the construction of efficient communication subsystems since the network interface can deliver messages without any software intervention. Such communication subsystems do not support connection-oriented communication well for two reasons First, direct data transfer does not provide message detection as required by the connection-oriented model, and second, sender-based communication does not provide the anonymity of receivers required by the connection-oriented model. This dissertation studies how to support efficient, user-level, connection-oriented communication on high-performance networks. First, the issue of message arrival detection for user-level communication models is addressed. The traditional approach uses interrupts to indicate the arrival of new messages, which defeats the benefit of user-level communication since a protection crossing is needed with every message. To minimize the interrupt overhead, a competitive mechanism that combines polling and interrupts to efficiently detect the arrival of new messages at user-level is proposed. Second, the mismatch between connection-oriented APIs and sender-based communication models is addressed. The traditional approach requires receivers to copy messages to their ultimate destinations, which are unknown by senders. To enable zero-copy, connection-oriented protocols, a mechanism that allows the receiver to dynamically change the destination of a message in a sender-based model is proposed. These ideas were integrated into a user-level communication model and evaluated using a stream sockets implementation on two different multiprocessor platforms. The results from experiments with benchmarks and applications show that these techniques provide significant performance improvements for user-level, connection-oriented communication.