首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Infiniband上的IPoIB和TCP的区别

Infiniband上的IPoIB和TCP的区别
EN

Stack Overflow用户
提问于 2011-05-19 06:38:22
回答 1查看 30.6K关注 0票数 42

有人能解释一下infiniband上的IPoIB和TCP的概念吗?我理解本地infiniband提供的整体概念和数据速率,但不太理解TCP和IPoIB是如何适应的。你为什么需要它们,它们是做什么的?当有人说他们的网络使用IPoIB或带有infiniband的TCP时,有什么区别?哪一个更好?我没有很强的网络背景,所以如果你能详细说明,那就更好了。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-21 12:59:56

InfiniBand适配器(“HCA”)提供了几个高级功能,可以通过本机“动词”编程接口使用:

  1. 数据传输可以直接从用户空间启动到硬件,从而绕过内核并避免系统调用的开销。
  2. 适配器可以处理所有网络协议,包括将大消息(甚至是数兆字节)分解为数据包、生成/处理ACK、重新传输丢失的数据包等,而无需使用发送方或接收方的任何CPU。

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。

票数 77
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6051832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档