报文转发方法、装置、网络设备和计算机可读存储介质制造方法及图纸

技术编号:37383530 阅读:9 留言:0更新日期:2023-04-27 07:24
本发明专利技术实施例提出一种报文转发方法、装置、网络设备和计算机可读存储介质,涉及通信技术领域。该网络设备的多核处理器包括NAT处理核和硬件加速模块,NAT处理核维护有软件转发表,硬件加速模块维护有硬件转发表,硬件加速模块在接收到的报文未命中硬件转发表中的NAT规则时,将报文发送到NAT处理核,NAT处理核在确定收到的报文命中软件转发表中的NAT规则时,根据报文命中的NAT规则转发报文。该方法通过在多核处理器中独立分配NAT处理核,由NAT处理核完成NAT软硬件表项管理和软件NAT转发功能,在硬件资源不足的情况下,减少了报文的NAT转发流程,加速了软件转发效率,从而提升了NAT转发性能。转发性能。转发性能。

【技术实现步骤摘要】
报文转发方法、装置、网络设备和计算机可读存储介质


[0001]本专利技术涉及通信
,具体而言,涉及一种报文转发方法、装置、网络设备和计算机可读存储介质。

技术介绍

[0002]NAT(Network Address Translation,网络地址转换)是一种常用的节省IP地址的网络技术,其是将IP数据报文头中的IP地址转换为另一个IP地址,并通过转换端口号达到地址重用的目的。
[0003]现有技术中,为了提升网络设备的NAT转发性能,一般采用以下两种解决方案:一种是使用高端的CPU(Central Processing Unit,中央处理器),高端的CPU性能好,NAT报文即使走纯软件转发,也可以达到NAT转发的性能要求,但是高端CPU意味着成本的上升;另一种是使用外挂的硬件NAT转发芯片,专用的NAT转发芯片的硬件表项资源充足,可以保证转发性能,然而外挂芯片也会导致整体的成本上升。上述两个方案虽然可以解决NAT转发性能差的问题,但都会增加成本,不适用于低成本网络设备。
[0004]对于低成本网络设备,通常采用CPU自带的硬件加速模块来加速NAT转发。在使用硬件加速模块时,由于低成本CPU自带的硬件加速模块支持的硬件表项数目有限,当硬件加速模块的硬件表项资源耗尽之后,超出硬件表项的NAT报文只能走纯软件转发,纯软件转发流程需要报文经过完整的协议栈处理,会耗费大量的CPU资源,导致NAT转发性能降低。

技术实现思路

[0005]有鉴于此,本专利技术的目的在于提供一种报文转发方法、装置、网络设备和计算机可读存储介质,以解决低成本网络设备在硬件加速模块的硬件表项资源不足的情况下导致NAT转发性能降低的问题。
[0006]为了实现上述目的,本专利技术实施例采用的技术方案如下:
[0007]第一方面,本专利技术提供一种报文转发方法,应用于网络设备,所述网络设备的多核处理器包括NAT处理核和硬件加速模块,所述NAT处理核维护有软件转发表,所述硬件加速模块维护有硬件转发表,所述软件转发表和所述硬件转发表中的表项均包括NAT规则;其中,所述硬件转发表中的表项由所述硬件加速模块根据所述NAT处理核下发的表项生成,所述软件转发表中的表项为所述NAT处理核未下发到所述硬件加速模块的表项;所述方法包括:
[0008]所述硬件加速模块在接收到的报文未命中所述硬件转发表中的NAT规则时,将所述报文发送到所述NAT处理核;
[0009]所述NAT处理核接收到所述硬件加速模块上送的报文时,确定所述报文是否命中所述软件转发表中的NAT规则;
[0010]当所述报文命中所述软件转发表中的NAT规则时,根据所述报文命中的NAT规则转发所述报文。
[0011]在可选的实施方式中,所述软件转发表中的表项还包括命中率,所述命中率为单位时间内命中对应表项中的NAT规则的报文个数;所述NAT处理核还维护有已下发表,所述已下发表和所述软件转发表的结构相同,所述已下发表中的表项为所述NAT处理核下发到所述硬件加速模块的表项;所述方法还包括:
[0012]所述NAT处理核在所述硬件转发表中的表项数目达到设定阈值且所述软件转发表中的表项数目大于等于预设数目的情况下,分别将所述软件转发表和所述已下发表中的各表项按照命中率进行排序;
[0013]若所述已下发表中的命中率最小值小于等于所述软件转发表中的命中率最大值,则计算所述软件转发表中命中率最大的预设数目个表项对应的第一命中率平均值,以及所述已下发表中命中率最小的预设数目个表项对应的第二命中率平均值;
[0014]若所述第一命中率平均值大于所述第二命中率平均值,则对所述软件转发表中命中率最大的预设数目个表项和所述已下发表中命中率最小的预设数目个表项执行置换操作,并将所述已下发表中发生置换的表项下发到所述硬件加速模块。
[0015]在可选的实施方式中,所述对所述软件转发表中命中率最大的预设数目个表项和所述已下发表中命中率最小的预设数目个表项执行置换操作,包括:
[0016]对所述已下发表中命中率最小的预设数目个表项进行备份;
[0017]将所述已下发表中命中率最小的预设数目个表项中的内容替换为所述软件转发表中命中率最大的预设数目个表项中的内容;
[0018]将所述软件转发表中命中率最大的预设数目个表项中的内容替换为备份的所述已下发表中命中率最小的预设数目个表项的内容。
[0019]在可选的实施方式中,所述方法还包括:
[0020]所述NAT处理核在所述硬件转发表中的表项数目未达到设定阈值的情况下,将所述软件转发表中的表项移动至所述已下发表,并将所述已下发表中新增的表项下发到所述硬件加速模块,以便所述硬件加速模块根据所述已下发表中新增的表项在所述硬件转发表中生成对应的表项。
[0021]在可选的实施方式中,所述多核处理器还包括转发核,所述软件转发表中的NAT规则由所述转发核生成并同步到所述NAT处理核;所述软件转发表中的表项还包括时间戳,所述时间戳为所述转发核同步对应NAT规则到所述NAT处理核的时间;所述方法还包括:
[0022]所述NAT处理核在所述报文命中所述软件转发表中的NAT规则,且所述NAT规则所在表项中的时间戳不为预设值时,计算当前时间戳与所述NAT规则所在表项中的时间戳的差值;
[0023]若所述差值小于所述单位时间,则将所述NAT规则所在表项中的命中率加1;
[0024]若所述差值大于等于所述单位时间,则将所述NAT规则所在表项中的命中率加1,并将所述NAT规则所在表项中的时间戳设置为所述预设值。
[0025]在可选的实施方式中,所述方法还包括:
[0026]所述NAT处理核在所述报文未命中所述软件转发表中的NAT规则时,将所述报文发送到所述转发核,以便所述转发核根据收到的所述报文生成对应的NAT规则,并根据所述报文对应的NAT规则转发所述报文,将所述报文对应的NAT规则同步到所述NAT处理核;
[0027]根据所述转发核同步的NAT规则,在所述NAT处理核的软件转发表新增对应的表
项。
[0028]第二方面,本专利技术提供一种报文转发装置,应用于网络设备,所述网络设备的多核处理器包括NAT处理核和硬件加速模块,所述NAT处理核维护有软件转发表,所述硬件加速模块维护有硬件转发表,所述软件转发表和所述硬件转发表中的表项均包括NAT规则;其中,所述硬件转发表中的表项由所述硬件加速模块根据所述NAT处理核下发的表项生成,所述软件转发表中的表项为所述NAT处理核未下发到所述硬件加速模块的表项;所述装置包括:
[0029]规则管理模块,用于当所述NAT处理核接收到所述硬件加速模块上送的报文时,确定所述报文是否命中所述软件转发表中的NAT规则;其中,所述硬件加速模块在接收到的报文未命中所述硬件转发表中的NAT规则时,将所述报文发送到所述NAT处理核;
[0030]报文转发模块,用于当所述报文命中所述软件转发表中的NAT规则时,根据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种报文转发方法,其特征在于,应用于网络设备,所述网络设备的多核处理器包括网络地址转换NAT处理核和硬件加速模块,所述NAT处理核维护有软件转发表,所述硬件加速模块维护有硬件转发表,所述软件转发表和所述硬件转发表中的表项均包括NAT规则;其中,所述硬件转发表中的表项由所述硬件加速模块根据所述NAT处理核下发的表项生成,所述软件转发表中的表项为所述NAT处理核未下发到所述硬件加速模块的表项;所述方法包括:所述硬件加速模块在接收到的报文未命中所述硬件转发表中的NAT规则时,将所述报文发送到所述NAT处理核;所述NAT处理核接收到所述硬件加速模块上送的报文时,确定所述报文是否命中所述软件转发表中的NAT规则;当所述报文命中所述软件转发表中的NAT规则时,根据所述报文命中的NAT规则转发所述报文。2.根据权利要求1所述的报文转发方法,其特征在于,所述软件转发表中的表项还包括命中率,所述命中率为单位时间内命中对应表项中的NAT规则的报文个数;所述NAT处理核还维护有已下发表,所述已下发表和所述软件转发表的结构相同,所述已下发表中的表项为所述NAT处理核下发到所述硬件加速模块的表项;所述方法还包括:所述NAT处理核在所述硬件转发表中的表项数目达到设定阈值且所述软件转发表中的表项数目大于等于预设数目的情况下,分别将所述软件转发表和所述已下发表中的各表项按照命中率进行排序;若所述已下发表中的命中率最小值小于等于所述软件转发表中的命中率最大值,则计算所述软件转发表中命中率最大的预设数目个表项对应的第一命中率平均值,以及所述已下发表中命中率最小的预设数目个表项对应的第二命中率平均值;若所述第一命中率平均值大于所述第二命中率平均值,则对所述软件转发表中命中率最大的预设数目个表项和所述已下发表中命中率最小的预设数目个表项执行置换操作,并将所述已下发表中发生置换的表项下发到所述硬件加速模块。3.根据权利要求2所述的报文转发方法,其特征在于,所述对所述软件转发表中命中率最大的预设数目个表项和所述已下发表中命中率最小的预设数目个表项执行置换操作,包括:对所述已下发表中命中率最小的预设数目个表项进行备份;将所述已下发表中命中率最小的预设数目个表项中的内容替换为所述软件转发表中命中率最大的预设数目个表项中的内容;将所述软件转发表中命中率最大的预设数目个表项中的内容替换为备份的所述已下发表中命中率最小的预设数目个表项的内容。4.根据权利要求2所述的报文转发方法,其特征在于,所述方法还包括:所述NAT处理核在所述硬件转发表中的表项数目未达到设定阈值的情况下,将所述软件转发表中的表项移动至所述已下发表,并将所述已下发表中新增的表项下发到所述硬件加速模块,以便所述硬件加速模块根据所述已下发表中新增的表项在所述硬件转发表中生成对应的表项。5.根据权利要求2所述的报文转发方法,其特征在于,所述多核处理器还包括转发核,
所述软件转发表中的NAT规则由所述转发核生成并同步到所述NAT处理核;所述软件转发表中的表项还包括时间戳,所述时间戳为所述转发核同步对应NAT规则到所述NAT处理核的时间;所述方法还包括:所述NAT处理核在所述报文命中所述软件转发表中的NAT规则,且所述NAT规则所在表项中的时间戳不...

【专利技术属性】
技术研发人员:李子刚
申请(专利权)人:迈普通信技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1