FPGA-x86构建高机能国产网络测试仪竞技之路(JDB电子原创文章)
?
?
多所周知,以太网已经深刻JDB电子生涯无处不在,企业、校园、大数据中心和家庭等都离不开网络,不然JDB电子生涯将受到严沉的影响。
以太网的接口快率也是迅快发展:10M、100M、GE、10GE、40GE、100GE,到目前逐步成熟的2.5GE、5GE、25GE、50GE甚至400GE,根基是每10年快率10倍增长的发展趋向。
很无数据中心和运营商也已筹备将其网络从100GE扩大到400GE,以支持第五代无线技术(5G)、人为智能(AI)、虚构现实(VR)、物联网(IoT)、自动驾驶汽车等新兴技术所需的带宽和响应功夫。

然而任何新型网络接口快率、网络设备的研发至形成最终产品及网络新技术从钻研到落地,每个阶段都离不开测试验证,并且已经给测试带来了极大的挑战。同时,高机能的不变的高快率网络测试仪的发展,却有点跟不上网络设备的研发需要。
所以高快率、不变的网络测试仪的发展如饥似渴,尤其是把握主题技术的国产化网络测试仪产品。
国内电信运营商进行的大规模的数据中心互换机或是主题路由器的测试场景对测试仪提出了极高的要求:
1、不变性:具备长功夫不变打流、统计及和谈仿真的能力,如7x24幼时长功夫不变运行;
2、可沉复性:同样的物理环境及网络前提,屡次测试了局必须一致;
3、正确性:测试了局必须能正确的反映被测设备或系统的真实指标情况,如吞吐量指标、时延和抖动的精确性、流量调度的精确性、流量统计的精确性;
4、高机能:支持所有包长(如64-16000字节或IMIX混合包长)线快发流及统计的能力、超高的路由互换和谈仿真能力(如多session数的BGP/OSPF/ISIS/PPPOE/IPOE/EVPN等)、多端口(如上百个以上的100GE/10GE)多业务(如IPV4/IPV6/MPLS/Multicast)流量场景仿真能力;
5、尺度性:具备切合国际测试尺度RFC-2544,RFC-2889、RFC3511、RFC3918等;
6、丰硕的接口类型:支持1GE/2.5GE/5GE/10GE/25GE/40GE/50GE/100GE/400GE等多种接口类型,支持多机框级联搭建大规模的测试场景;

?
而目前市面上存在的网络测试仪重要有两种架构,一种是基于X86+DPDK+网卡的测试仪;另一种是基于FPGA+x86混合的测试仪。
X86的编程相对容易,调试伎俩越发丰硕,成本有肯定的优势,在要求不高的职能性测试方面,是一个不错的选择。FPGA+X86这样的软硬集中的测试系统,则合用于高机能、全覆盖、测试场景规模大、测试业务复杂的测试场景。
FPGA+X86的混合架构,一方面利用了FPGA越来越壮大的数据层面硬件的并行性,另一方面也结合了CPU在节造层面的处置矫捷性,同时由于FPGA和CPU性质上都是可编程的系统,凭据业务处置的必要,能够在FPGA硬件和CPU软件之间矫捷地移动业务划分天堑,实现整个业务流程的全面优化。
我们依照前面所说的电信运营商的复杂测试场景要求,对两种架构的测试仪进行一个全面的对比分析如下:
1.???????64-16000字节包长的线快发流及统计能力:
X86+DPDK+网卡:以图示的100G网络为例,在64字节包长的情况下,或许每秒会收发150M个数据包,以目前的CPU的推算和存贮存取能力是无法处置的。凭据DPDK官网公开颁布的最新数据(2019.10.9)【数据起源,DPDK官网 www.dpdk.org】,选取图2的系统配置,能够显著看出在64,128,256字节下无法做到线快收发包;
FPGA+X86:无限度所有字节能够做到线快;

图1. X86+DPDK测试系统配置
所能达到的幼字节包长线快机能如图3所示。

图2. X86系统的各包长测试机能
2.???????时延和抖动的精确性:时延测试的精度在网络测试中是极度沉要的指标。
X86+DPDK+网卡:X86系统是面向通用推算的系统,它自身的基定时钟精度就不高,同时OS的调度误差至少在us量级;若是X86系统的NIC不支持在物理层插入功夫戳的话,必要由软件系统来处置网络时延,这将带来进一步的误差;所以通常网络测试必要的精确至10ns量级的时延难以在面向推算的通用X86平台上实现。
FPGA+X86:在FPGA平台上,通过0.1~0.001PPM精度的晶振,产生高达400M的时钟,能够将时延的精度节造在2.5ns数量级别;
3.???????存储舷矫捷性:
X86+DPDK+网卡:X86系统面向通用推算,目前主流的内存系统是DDR4内存,带宽大但是接见延长也大,凭据读写接见模式的分歧,可能会带有延长抖动;
FPGA+X86:FPGA的内存,能够凭据必要组合片上RAM(能够实现cache职能)+DDR+QDR+RLDRAM等各类内存技术,优化带宽需要型和延长需要型接见。
4.???????和谈加快的能力:
X86+DPDK+网卡:无额表资源来实现TCP offloading等和谈加快职能;
FPGA+X86:FPGA是硬件的可编程系统,能够凭据硬件资源的几多,以及业务处置的必要,在和谈处置方面和X86舷矫捷地划分接口界限,实现TCP offloading等和谈加快职能,把和谈处置中的推算密集型的无状态工作在硬件层面并行化,能够大大加强整个系统的处置能力。
5.???????2-3层流量调度的精确性:
X86+DPDK+网卡:X86系统在高快端口上无法实现幼字节包长线快发流,更谈不上精准的流量调度了;
FPGA+X86:为测试业务流量越来越复杂和规模越来越大的互换机、路由器和网络系统甚至蕴含上层复杂利用和谈,必要产天生千上万条流(好比高端测试仪中典型的64K条流),并且每条流之间的带宽比例、发送调度模式必要精确节造,同时要求精确到幼数点后面5位;
6.???????统计的及机遇能和正确性:
X86+DPDK+网卡:CPU的测试职能软件实现性质上是一个串行的指令集中,随着多核的超线程等新技术的实现,在指令级别能够实现部门的并行,但是对于一些统计数据,好比实时的每秒收发帧数等,至少是由两个参数来界说的(肯定的功夫距离delta和该距离内的收发包数),若是这两个参数的读取是在一个CPU内核上实现的,则指令的串行个性必然带来很大的误差;若是这两个参数的读取是在两个内核上实现的,则目前的CPU技术难以实现内核之间ns级此外同步,同样带来统计值的不精确;
FPGA+X86:?FPGA内部,通过硬件编程技术,能够很轻松地实现统计值快照职能,严格保障上述两个参数的读取是精确对应的。
7.???????系统可扩大性:
X86+DPDK+网卡:对于大规模的被测系统,无论是X86的软件实现还是FPGA+X86这样的混合系统,单机都无法实现测试工作,系统级联并且在10ns级别实现同步是必然的选项。X86系统面向通用推算,能够通过运行NTP的和谈能够实现多机同步,但是NTP的同步精度无法达到时延测试业务的要求;
FPGA+X86:在FPGA+X86的混合系统中,通过FPGA能够实现本地线缆级联/GPS/1588v2等高精度同步技术,保障功夫测试精度。
?
另表,在FPGA+X86混合系统的实现中,2-3层的流量处置在FPGA内实现,不必要经过CPU的和谈栈或者上层利用,CPU只需实现轻量级的配置下发、界面出现等运算,预防了CPU在线快收发流处置方面的天然缺点; 在X86一侧,也能够矫捷部署DPDK技术,由X86系统实现经过加快后的纯和谈处置部门,将FPGA和X86的优势组合起来,实现高效的业务处置。
不言而喻,选取FPGA+X86混合系统是构建高机能网络测试仪的绝佳选择。
近年来,国表以太网测试技术发展迅快,新产品层出不穷,高快率高机能测试软硬件平台凭借多年的技术堆集,美国的Spirent、keysight两家公司在以太网测试领域持久占据全球主导职位,在本行业内走在世界前列。
国内对以太网测试技术的钻研始于21世纪初,经过十几年的致力,有关测试产品的自主设计开发能力也获得了长足进取,在1000M和10G的以太网测试中能根基满足用户的使用要求,但与国表同类产品的设计水平相比还有肯定的差距,重要体此刻以太网接口的高机能、高密度,统计参数的丰硕水平以及对以太网2到7层和谈的钻研和支持。
JDB电子自2007年成立以来,作为国内始终专一于通讯网络测试领域的仪表厂商,对峙国产自主研发的创新机造,研发覆盖了高中低端市场的多款网络测试设备产品,客户已经覆盖电信运营商、通讯造作企业、科研院所、高档院校、电力、交通等多多领域。

JDB电子网络测试仪选取的是机箱式结构+可插拔板卡的大局,硬件总体规划选取散布式推算架构,在逻辑上分为数据平面和治理平面,在物理单元大将测试?楹椭骺啬?槎懒⑸杓,使用FPGA+X86混合系统的架构来实现高机能网络测试仪的指标。

?100G FPGA+X86混合系统架构
以JDB电子100GE板卡为例,若要实现所有的测试需要,其根基工作流程如下所示:
?????????????????????????????测试业务流程图
