jit*_*hsk 40 networking tcp infiniband
有人可以通过infiniband解释IPoIB和TCP的概念吗?我理解本地infiniband提供的整体概念和数据速率,但不太了解TCP和IPoIB如何适应.为什么你需要它们,他们做了什么?有人说他们的网络使用IPoIB或TCP与infiniband有什么区别?哪一个更好?我不是来自强大的网络背景,所以如果你能详细说明那就太好了.
谢谢您的帮助.
Rol*_*and 69
InfiniBand适配器("HCA")提供了一些可以通过本机"动词"编程接口使用的高级功能:
IPoIB(IP-over-InfiniBand)是一种定义如何通过IB发送IP数据包的协议; 例如,Linux有一个实现此协议的"ib_ipoib"驱动程序.此驱动程序为系统上的每个InfiniBand端口创建一个网络接口,这使HCA像普通的NIC一样.
IPoIB没有充分利用HCA功能; 网络流量通过正常的IP堆栈,这意味着每个消息都需要进行系统调用,并且主机CPU必须处理将数据分解为数据包等.但这确实意味着使用普通IP套接字的应用程序将在IB链路的全速(尽管CPU可能无法足够快地运行IP堆栈以使用32 Gb /秒QDR IB链路).
由于IPoIB提供了普通的IP NIC接口,因此可以在其上运行TCP(或UDP)套接字.使用最新系统可以实现超过10 Gb /秒的TCP吞吐量,但这会消耗相当多的CPU.对于您的问题,IPoIB和TCP与InfiniBand之间并没有真正的区别 - 它们都指的是在IB硬件上使用标准IP堆栈.
真正的区别在于使用IPoIB与普通套接字应用程序,而使用本机InfiniBand与直接编码到本机IB动词接口的应用程序.本机应用程序几乎肯定会获得更高的吞吐量和更低的延迟,同时在网络上花费更少的CPU.