数据中心是云计算时代最重要的基础设施之为云提供强大的计算和存储能力。数据中心网络作为联合数据中心内所有计算、存储单元的“交通枢纽”,是影响云服务能力的关键所在。然而,近年来业界对数据中心网络性能以及虚拟化能力的需求日益增长,给现有端系统中网络协议栈的处理带来了极大挑战。一方面,目前业界普遍的百G级带宽、微秒级延时的高性能网络设施需要端系统协议栈具备极高的处理速度,因此将协议栈的处理卸载(offload)到网卡ASIC芯片上实现是目前普遍采用的方式;另一方面,为应对层出不穷的虚拟化需求,网络协议栈所包含的处理功能也需要频繁更新,这又使将协议栈的处理卸载到网卡ASIC芯片上变得非常困难。在此背景下,智能网卡(smart NIC)技术开始走进人们的视野并逐渐得到普及。不同于传统网卡,智能网卡同时具备高性能及可编程的能力,既能处理高速的网络数据流,又能对网卡进行编程,实现定制化的处理逻辑。
网卡的发展史:网卡是端系统接入网络进行通信的必备设备,端系统CPU和网卡联合完成整个网络协议栈中各层的处理。
传统网卡:早期的网卡仅实现数据链路层和物理层的功能,而端系统CPU负责处理网络协议栈中更高层的逻辑。CPU按照网络协议栈中传输层、路由层的逻辑,负责数据包的封装和解封;网卡则负责更底层的数据链路层帧的封装和解封,以及物理层电气信号的相应处理。
高性能网卡:链路带宽的增长对端系统协议栈的处理速度提出了更高的要求。例如,要想在100G以太网中线速处理64字节大小的数据包,只有几个时钟周期供CPU进行网络协议栈的处理。为适应高速网络,现代网卡硬件中普遍卸载了部分传输层和路由层的处理逻辑(如校验和计算、传输层分片重组等),来减轻CPU的处理负担。甚至有些网卡如RDMA网卡)还将整个传输层的处理都卸载到网卡硬件上,以完全解放CPU。得益于这些硬件卸载技术,端系统的网络协议栈处理才能与现有的高速网络相匹配。
领取专属 10元无门槛券
私享最新 技术干货