掌桥专利:专业的专利平台
掌桥专利
首页

一种提高智能网卡/DPU网络遥测技术性能的方法

文献发布时间:2023-06-19 13:43:30


一种提高智能网卡/DPU网络遥测技术性能的方法

技术领域

本发明涉及网络遥测技术领域,特别涉及一种提高智能网卡/DPU网络遥测技术性能的方法。

背景技术

随着5G及物联网业务的大规模应用和用户规模的不断增长,网络呈现出大吞吐量、大接入量,变化多样的特点。传统网络监控方式不能匹配现有网络的需求和挑战。因此,网络管理者迫切需要颠覆传统网络监测及故障排除方法,提出能够应对网络状态测量、网络失效检测、故障定位与恢复等场景用例的实时灵活的测量解决方案。

P4: 可编程数据平面。在传统网络中,网络设备对于用户是黑盒,数据平面和控制平面封闭在黑盒内,不方便网络管理和维护;软件定义网络的出现把数据平面和控制平面分开,控制平面得以统一,然而还是存在数据平面固化,需要跟软件定义网络协议的升级而升级的问题;P4是一种语言,可以用这种语言来编程数据平面,可以实现更灵活的数据平面编程化。

DPU:数据处理器,对标CPU(中央处理器),GPU(图像处理器)而来,主要处理网络及存储相关的网络加速。随着网络吞吐量及接入量的大幅增加,网络报文处理的压力汇聚到了服务器端,随着带宽的增加,10GbE到25GbE,网络需要多个CPU核参与处理,而这就不得不影响CPU正在处理的业务,用智能网卡来协助CPU处理网络报文可以释放CPU资源。而DPU为智能网卡的升级版,可以在智能网卡基础上也同时卸载了网络及存储负荷,让CPU可以参与更多业务。

网络遥测技术(INT):实现一种不需要网络控制平面干预,网络数据平面收集和报告网络状态的框架。基于P4的出现,网络遥测通过P4使能的数据平面可编程性,通过P4在端到端(基于P4的智能网卡/DPU)以及交换机的数据平面中在普通的网络报文内插入INT的状态数据,如图1所示,并在终端(基于P4的智能网卡/DPU)提取出来,从而分析整个网络路径各个节点的拥塞及健康状态。

参阅图1,传统的网络遥测的数据包处理流程如下:

1、从智能网卡/DPU端,根据遥测任务的需要,在普通网络报文的特定位置插入INT包头;

2、此后,在每到一个交换节点时,网络遥测模块通过 在交换机上设置的采样方式,根据遥测任务的需要在特定位置插入INT内容;

3、网络报文转发到INT终端(智能网卡/DPU),通过PCIe/DMA (PCIe总线及直接存储访问)的方式,把整个网络报文(包括INT信息)传送给服务器端。提取全部遥测信息,并通过GRPC(通讯协议)方式传送给INT分析服务器;

4、遥测服务器对INT数据进行分析并进行可视化呈现。

传统的基于P4的智能网卡(DPU)网络遥测报文的数据提取通常通过使用DMA搬运整个网络报文(包括网络遥测数据)到服务器内存的方式实现的,然而服务器端PCIe的带宽有限,当需要把网络遥测数据上报,会影响本身的数据包的带宽,导致有效吞吐量降低。如果以以太网最小包64B包为例,INT包头8个字节,每个节点插入8B,如果经过7个节点,需要插入64B,相当于最小包包长,有效带宽性能降低一半。

参阅图2,现有方案带INT的网络报文通过光口进入INT终端,通过P4的处理,整个数据包通过PCIe/DMA的方式,把带有INT信息的网络报文传送到服务器端,折损了PCIe端的有效带宽。如图2所示。如果增加物理INT网络接口(比如以太网口),单独用于INT信息的传输,增加了智能网卡/DPU的硬件成本并且增加了整个网络维护管理。

参阅图3,INT报文格式包括INT包头及INT数据包,INT包头为固定格式,包含INT数据中最大可包括的节点数,INT所显示延迟及突发等信息,对于每一个从一个节点出发的数据流来说,包头是一样的,重复通过PCIe/DMA上传给服务器端会增加带宽损耗。

由于INT的数据包是跳转的节点各处根据自身延迟突发等信息添加的,因此不具有统一性,但是对INT数据的分析是通过多个数据结合的方式,每个INT数据跟随网络报文通过PCIe/DMA的方式上传给服务器端同样会增加带宽损耗。

发明内容

本发明的目的在于提供一种提高智能网卡/DPU网络遥测技术性能的方法,以克服现有技术中的不足。

为实现上述目的,本发明提供如下技术方案:

本申请公开了一种提高智能网卡/DPU网络遥测技术性能的方法,具体包括如下步骤:

S1、从智能网卡/DPU初始端,根据遥测任务的需要,在网络报文的特定位置插入网络遥测技术的包头并将其转发至后续的交换节点;

S2、网络报文每到一个交换节点时,网络遥测模块通过交换节点所在的交换机上设置的采样方式,根据遥测任务的需要在特定位置插入网络遥测技术的内容,形成带有网络遥测技术的网络报文;

S3、将带有网络遥测技术的网络报文转发至智能网卡/DPU终端,通过智能网卡/DPU网络遥测技术处理模块进行处理;

S31、通过数据解析及提取模块对带有网络遥测技术的网络报文进行拆解得到网络遥测技术的包头和网络遥测技术的内容;

S32、将拆解得到的网络遥测技术的包头进行查找匹配,并将匹配信息通过PCIe寄存器空间的方式写入;

S33、将拆解得到的网络遥测技术的内容进行拼接处理,得到特定数据包,并用PCIe总线及直接存储访问的方式传送给服务器端;

S4、服务器端通过读取PCIe寄存器空间的方式读出匹配信息,并根据反向匹配查找出网络遥测技术的包头,再通过拆解特定数据包,得到网络遥测技术的内容,并最终将网络遥测技术的包头及网络遥测技术的内容通过通讯协议方式传送给网络遥测技术分析服务器;

S5、网络遥测技术分析服务器对得到的网络遥测技术的包头及网络遥测技术的内容进行分析并进行可视化呈现。

作为优选,所述S3中,带有网络遥测技术的网络报文通过光口转发至智能网卡/DPU终端。

作为优选,所述S32具体包括如下子步骤:

S321、在智能网卡/DPU网络遥测技术处理模块内建立一张查找表,所述查找表的输入端为8字节的网络遥测技术的包头,所述查找表的输出端为2字节的序列号;在服务器端建立一张反向查找表,所述反向查找表的输入端为2字节的序列号,所述反向查找表的输出端为8字节的网络遥测技术的包头;所述查找表与反向查找表的内容相互对应;

S322、在智能网卡/DPU网络遥测技术处理模块的查找表内通过输入拆解得到的网络遥测技术的包头来查找匹配对应的序列号;

S323、若存在对应的序列号,则直接匹配,并用序列号来代替拆解得到的网络遥测技术的包头并通过PCIe 寄存器空间方式写入此序列号;

S324、若不存在对应的序列号,则在查找表中新建一个网络遥测技术的包头及对应的序列号,同时更新服务器端的反向查找表。

作为优选,所述S33中特定数据包为4Kb数据包。

本发明的有益效果:

1、通过数据解析及提取模块对带有网络遥测技术的网络报文进行拆解得到网络遥测技术的包头和网络遥测技术的内容,并根据上述INT包头及INT信息数据的不同特点,对他们进行分别处理,从而达到降低INT信息对PCIe带宽的占用;

2、INT包头对于同一个数据流来说不变,“P4 INT包头查找匹配模块”通过查表的方式,查找与INT包头8字节相匹配的序列号,压缩为2字节序列号,最大支持2

3、INT数据内容对于每个包都不一样,无法通过简单的压缩降低INT数据量,“P4INT数据拼接处理模块”通过把多个INT数据拼接成4Kb大小的方式进行PCIe/DMA传输,由于4Kb在PCIe/DMA带宽传输中的带宽性能最好,从而降低INT数据内容对PCIe/DMA带宽的影响,提升PCIe/DMA的有效带宽;

本发明的特征及优点将通过实施例结合附图进行详细说明。

附图说明

图1是传统的网络遥测的数据包处理流程图

图2是传统支持P4的智能网卡/DPU INT处理相关模块;

图3是INT网络报文格式;

图4是本发明智能网卡/DPU网络遥测技术处理模块内的处理流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明了,下面通过附图及实施例,对本发明进行进一步详细说明。但是应该理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

参阅图4,本发明实施例提供一种提高智能网卡/DPU网络遥测技术性能的方法,具体操作如下:

从智能网卡/DPU端,根据遥测任务的需要,在普通网络报文的特定位置插入INT包头。比如,遥测任务计划分析网络各个节点的延迟,在网络报文UDP后,插入INT包头,包头信息为最大节点数7,掩码为延迟。

此后,在每到一个交换节点时,网络遥测模块通过在交换机上设置的采样方式,根据遥测任务的需要在特定位置插入INT内容。例如,遥测任务为遥测各个节点的延迟,因此在网络报文插入含有延迟时间的INT数据。

网络转发到INT终端(智能网卡/DPU),智能网卡/DPU通过本发明新增的功能模块提取全部遥测信息,如图4所示,在智能网卡/DPU内,通过对INT数据包数据的解析及提取来拆解出INT包头及INT数据。

智能网卡/DPU内及服务器端都需要建立一张查找表,智能网卡/DPU的查找表的输入是8字节的INT包头,输出是2字节的序列号;服务器驱动端的查找表的输入是2字节的序列号,输出是8字节的INT包头,这两张表需要一一对应。如果在智能网卡/DPU内查找表更新,则需要通过PCIe/DMA BAR寄存器的方式更新服务器驱动端查找表。在智能网卡/DPU内通过匹配网卡内的INT包头来确定对应的序列号。如果INT包头有对应的序列号,则直接匹配,并用序列号来代替INT包头,比如INT包头8字节x对应0002序列号,则用0002来代替INT包头并通过PCIe 寄存器空间方式写入此INT包头序列号;如果没有在查找表中找到对应的INT包头,则新建一个INT包头及对应的序列号,比如INT包头y对应1008序列号。同时更新服务器驱动端查找表。

INT数据通过拼包的方式拼成4Kb数据包,并用PCIe/DMA的方式传送给服务器。

服务器端驱动通过读取PCIe BAR空间的方式读出INT 包头序列号,并在查找表中查找出INT包头对应的信息。通过拆解INT特定4K数据包,得到INT数据包。并最终把INT包头及INT数据通过grpc方式传送给INT分析服务器

遥测服务器对INT数据进行分析并进行可视化呈现。

通过上述方案,如果以以太网最小包64B包为例,INT头8B,每个节点插入8B,如果经过7个节点,用传统的方式,需要插入64B,相当于最小包包长,有效带宽为1/2。通过本发明提出的方法,INT头8B可以在智能网卡/DPU内进行匹配,压缩为2B字节并写入BAR空间,不占用PCIe/DMA的有效带宽。对于INT数据,7个节点每个节点8B,共计56B=56*8b,通过多个数据包拼接为4Kb,可以9个网络报文占用一次PCIe/DMA通道,有效带宽为9/10。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。

技术分类

06120113788364