Infiniband的协议采用分层结构,各个层次之间相互独立,下层为上层提供服务。其中,物理层定义了在线路上如何将比特信号组 成符号,然后再组成帧、 数据符号以及包之间的数据填 充等,详细说明了构建有效包的信令协议等;链路层定义了数据包的格式以及数据包操作的协议,如流控、 路由选择、 编码、解码等;网络层通过在数据包上添加一个40字节的全局的路由报头(Global Route Header,GRH)来进行路由的选择,对数据进行转发。
在传统数据传输方案中,内存数据访问和网络数据传输分属两套语义集合。数据传输中CPU承担了大量工作。应用程序先申请资源,再通知Socket,内核态驱动程序完成TCP/IP报文封装,最后由NIC的网络接口发送到对端。数据在发送节点需要依次经过Application Buffer、Socket Buffer、Transfer Protocol buffer。到达接收节点后同样需经过多次反向内存拷贝,内核态驱动程序完成TCP/IP报文解封装,应用程序最终将数据写入系统物理内存。