有人能解释一下infiniband上的IPoIB和TCP的概念吗?我理解本地infiniband提供的整体概念和数据速率,但不太理解TCP和IPoIB是如何适应的。你为什么需要它们,它们是做什么的?当有人说他们的网络使用IPoIB或带有infiniband的TCP时,有什么区别?哪一个更好?我没有很强的网络背景,所以如果你能详细说明,那就更好了。
谢谢你的帮助。
发布于 2011-05-21 12:59:56
InfiniBand适配器(“HCA”)提供了几个高级功能,可以通过本机“动词”编程接口使用:
IPoIB ( IP - over -InfiniBand)是一种定义如何在IB上发送IP数据包的协议;例如,Linux有一个实现该协议的"ib_ipoib“驱动程序。该驱动程序为系统上的每个InfiniBand端口创建一个网络接口,这使得HCA的行为类似于普通的NIC。
IPoIB没有充分利用HCAs能力;网络流量通过正常的IP堆栈,这意味着每条消息都需要一个系统调用,主机CPU必须处理将数据分解为数据包等。然而,这并不意味着使用正常IP套接字的应用程序将在IB链路的全速之上工作(尽管CPU可能不能足够快地运行IP堆栈以使用32 Gb/秒的QDR链路)。
由于IPoIB提供了普通的IPoIB接口,因此可以在其上运行TCP (或UDP)套接字。使用最新的系统,TCP吞吐量可能会超过10 Gb/秒,但这将消耗相当多的CPU。关于您的问题,IPoIB和使用InfiniBand的TCP并没有真正的区别--它们都指的是在IB硬件之上使用标准IP堆栈。
真正的区别在于,将IPoIB与普通套接字应用程序一起使用,还是将本机InfiniBand与已直接编码为本机IB谓词接口的应用程序一起使用。本机应用程序几乎肯定会获得更高的吞吐量和更低的延迟,同时在网络上花费更少的CPU。
https://stackoverflow.com/questions/6051832
复制相似问题