https://www.zhihu.com/tardis/bd/art/163104439
https://blog.csdn.net/sj349781478/article/details/125111234
InfiniBand是一种开放标准的高带宽,低时延,高可靠的网络互联技术。该技术由IBTA(InfiniBand Trade Alliance)定义推动在超级计算机集群领域广泛应用,同时,随着人工智能的兴起,也是GPU服务器首选的网络互联技术。目前,最新的InfiniBand产品为Mellanox生产的HDR,可以为网络提供端到端高达200Gbps的带宽,为高性能计算,人工智能等领域带来无与伦比的网络体验,最大程度释放集群内计算潜能。
以太网(Ethernet)指的是由 Xerox公司创建并由Xerox、Intel和 DEC公司联合开发的基带局域网规范标准,通用的以太网标准于1980年9月30日出台,是当今现有局域网采用的最通用的通信协议标准[1]目前由IEEE组织的IEEE802.3标准组织制定其技术标准,目前已经发布了100GE,200GE,400GE的以太网接口,是目前速率最高的传输技术。
作为互连技术的InfiniBand和Ethernet可以说各有其特点和差异,不能一概而论孰优孰劣,在各自不同的适用领域不断发展演进,成为我们网络世界中不可或缺的两种互连技术。
对于Ethernet毋庸多言,和IP技术构成了目前世界上整个互联网络大厦的基石,所有人与智能设备皆依靠Ethernet实现万物互联,这与其设计初衷就是为了能够实现更好的兼容有关,能让不同的系统可以更好的互连互通,这样使得Ethernet自诞生之初就具有非常强的适应性,经过数十年的发展成为互联网中事实上的标准。
而InfiniBand,作为标准制定的初衷是为了解决高性能计算场景中突破集群中数据传输瓶颈痛点应运而生的一种互连标准,从制定之初就定位为高端应用,互连互通不是主要矛盾,高性能通信才是主要切入点,所以,相对于Ethernet技术而言,由于定位的差异导致InfiniBand与生俱来就有很多和Ethernet的不同,主要表现在带宽、时延、网络可靠性、和组网方式上。
带宽:自InfiniBand诞生以来,很长一段时间InfiniBand网络速率的发展都是快于Ethernet的,主要原因就是因为InfiniBand应用于高性能计算中服务器之间的互连,Ethernet面向更多的是终端的设备互连,带宽上没有太高的需求,所以,这就导致Ethernet的标准组织设计标准时仅仅考虑如何实现互通,而没有像InfiniBand那样不仅考虑互通,还要考虑网络在高速传输时如何降低对CPU的负载,在高速通信时不仅带宽可以高效利用同时占用尽量少的CPU资源。对于10G以上的高速网络流量,如果所有报文都由CPU处理封包解封包将会占用非常多的资源,这样相当于用昂贵CPU的大量资源资源仅仅是处理网络传输的简单任务,在资源配置的角度上看是一种浪费,所以,由于第一代InfiniBand的SDR的速率就是10Gbps,这种现象是不得不考虑进来的,因而借鉴DMA[2]技术的思路,旁路CPU,不仅提高了的数据传输带宽而且减轻的CPU的负担,定义了RDMA[3]技术,从而解决了这一问题,使得在高速网络传输中对CPU实现了卸载,同时提高了网络的利用率。这使得InfiniBand网络可以快速迭代,从SDR 的10Gbos DDR 20Gbps QDR 40Gps FDR56Gbps EDR 100Gbps发展到今天的200Gbps,受益于RDMA技术,CPU没有因为速率的大幅提升而牺牲更多的资源用于网络处理而拖慢整个HPC性能的发展,未来将会推出400bpsG的NDR和800Gbps的XDR。
时延:此处主要分为两部分进行对比,一部分在交换机上,作为网络传输模型中的二层技术,Ethernet交换机普遍采用了MAC查表寻址和存储转发的方式(有部分产品借鉴了InfiniBand的Cut-though技术)由于需要考虑诸如IP、MPLS、QinQ等复杂业务的处理,导致Ethernet交换机处理流程较长,一般会在若干us(支持cut-though的会在200ns以上),而InfiniBand交换机二层处理非常简单,仅需要根据16bit的LID就可以查到转发路径信息,同时采用了Cut-Through[4]
技术大大缩短了转发时延至100ns以下,远远快于Ethernet交换机;网卡层面如前所述,采用RDMA技术,网卡转发报文不需要经过CPU,大大加快了报文在封装解封装处理的时延,一般InfiniBand的网卡收发时延(write,send)在600ns,而基于Ethernet上的TCP UDP应用的收发时延会在10us左右,相差十几倍之多。
可靠:在高性能计算领域,丢包重传对整体性能的影响非常大,所以需要一个高可靠的网络协议从机制层面来保证网络的无损特性,从而实现其高可靠特性。InfiniBand是一个完整的网络协议有自己定义的一至四层格式,报文在网络上的收发是基于端到端的流控来实现的,也就是说报文从发送端是否可以发送是受接收端调度控制的,这样就可以保证报文从发送到接受都不会出现拥塞,这样不仅实现了真正意义上的无损网络,同时由于网络上没有拥塞而使得业务流在InfiniBand的网络上传输不会出现缓存积累,这样时延抖动也就控制到了最小,从而构造了一个理想纯净的网络;而Ethernet构造的网络没有基于调度的流控机制,导致报文在发出的时候是不能保证对端是否会出现拥塞的,因此,为了能够吸收网络内瞬时流量的突然增大,需要在交换内开辟多大数十MB的缓存空间用于暂时存储这些报文,而缓存的实现是非常占用芯片面积的,这使得同等规格的Ethernet的交换机芯片面积明显大于InfiniBand芯片,不仅成本高而且功耗也会更大,除此之外,由于没有端到端的流控机制,导致网络在略极端情况下,会出现缓存拥塞而导致的丢包,使得数据转发性能大幅波动。
组网方式:
Ethernet的组网方式需要IP配合ARP协议来自动生成MAC表项的,需要网络内的每个服务器来定时发送报文保证表项的实时更新,众所周知,网络内节点的增加删除都要通知到网络中的每一个节点,当网络内的节点数量增加到一定程度的情况下,这样网络会产生广播风暴从而使得网络带宽被严重浪费,因此需要引入Vlan机制划分虚拟网络,限制网络规模,而由于Ethnernet网络本身表项学习机制的不足会导致环路网络,又必须引入STP等协议保证网络转发路径不会出现环路,增加了网络的配置的复杂度。同时,随着SDN技术兴起,由于Ethernet网络设定之初的理念是以兼容为基础的缘故,基因中就不具备SDN的特质,导致SDN部署在ethernet网络上需要重新改变报文格式(VXLAN[5])或者改变交换机的转发机制(openflow[6])这样的方式对Ethernet进行改造来满足SDN的要求;这一点对于InfiniBand来说是天生具备了SDN理念的,每个InfiniBand的二层网络内有会有一个子网管理器来配置网络内节点的ID(LocalID),然后通过控制面统一计算转发路径信息,下发至InfiniBand交换上,这样组成一个InfiniBand的二层组网需要做任何配置既可以完成网络配置,同时没有泛洪的问题,也省去了Vlan和环网破环的操作,可以轻松部署一个规模几万台服务器的超大二层网络。这是Ethernet所不能具备的。
虽然,以上几个角度是从InfiniBand的优势来说明的,但是,不可否认的事,Ethnernet本身有更加宽泛的速率支持从10Mbps到400Gbps,有更多低成本的设备支持,使其在时延、带宽、可靠性要求不高的场景中,得到更加广泛的应用。由于其兼容性扩展了RDMA技术(RoCE),使得不仅具备了高带宽,同时也可以初步具备无损网络的特质,因此,近些年来在高性能计算领域中也出现Ethernet网络的身影,这也从一个侧面看出Ethernet网络超强的适应性[7]。
总结一下:Ethernet和InfiniBand是特点鲜明的两种不同的互连技术,各有所长,都有自己独到看家本领,在各自的应用领域中不断发展,增强互联网的性能优化互连的体验。
References:
[1] 百度百科 以太网技术
[2] 百度百科 DMA(直接存储器访问)
[3] 百度百科RDMA
[4] Comparison Between Store-and-Forward Switching and Cut-Through Switching
[5] Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks
[6] OpenFlow Switch Specification
[7] InfiniBand Still Tops in Supercomputing