IP网络协议如TCP/IP,具有转发丢失数据包的特性,网络不良时要不断地确认与重发,基于这些协议的通信也会因此变慢,极大地影响了性能。与之相比,IB使用基于信任的、流控制的机制来确保连接的完整性,数据包极少丢失。
使用IB协议,除非确认接收缓存具备足够的空间,否则不会传送数据。接受方在数据传输完毕之后,返回信号来标示缓存空间的可用性。通过这种办法,IB协议消除了由于原数据包丢失而带来的重发延迟,从而提升了效率和整体性能。
什么是InfiniBand网络
InfiniBand是一种网络通信协议,它提供了一种基于交换的架构,由处理器节点之间、处理器节点和输入/输出节点(如磁盘或存储)之间的点对点双向串行链路构成。每个链路都有一个连接到链路两端的设备,这样在每个链路两端控制传输(发送和接收)的特性就被很好地定义和控制了。
InfiniBand通过交换机在节点之间直接创建一个私有的、受保护的通道,进行数据和消息的传输,无需CPU参与远程直接内存访问(RDMA)和发送/接收由InfiniBand适配器管理和执行的负载。
适配器通过PCI Express接口一端连接到CPU,另一端通过InfiniBand网络端口连接到InfiniBand子网。与其他网络通信协议相比,这提供了明显的优势,包括更高的带宽、更低的延迟和增强的可伸缩性。
什么是InfiniBand架构
InfiniBand Architecture(IBA)是为硬件实现而设计的,而TCP则是为软件实现而设计的。因此,InfiniBand是比TCP更轻的传输服务,因为它不需要重新排序数据包,因为较低的链路层提供有序的数据包交付。传输层只需要检查包序列并按顺序发送包。
进一步,因为InfiniBand提供以信用为基础的流控制(发送方节点不给接收方发送超出广播 “信用“大小的数据包),传输层不需要像TCP窗口算法那样的包机制确定最优飞行包的数量。这使得高效的产品能够以非常低的延迟和可忽略的CPU利用率向应用程序交付56、100Gb/s的数据速率。
IB是以通道(Channel)为基础的双向、串行式传输,在连接拓朴中是采用交换、切换式结构(Switched Fabric),所以会有所谓的IBA交换器(Switch),此外在线路不够长时可用IBA中继器(Repeater)进行延伸。而每一个IBA网络称为子网(Subnet),每个子网内最高可有65,536个节点(Node),IBASwitch、IBA Repeater仅适用于Subnet范畴,若要通跨多个IBA Subnet就需要用到IBA路由器(Router)或IBA网关器(Gateway)。至于节点部分,Node想与IBA Subnet接轨必须透过配接器(Adapter),若是CPU、内存部分要透过HCA (Host Channel Adapter),若为硬盘、I/O部分则要透过TCA (Target Channel Adapter),之后各部分的衔接称为联机(Link)。上述种种构成了一个完整的IBA