一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据包转发方法和设备与流程

2022-02-20 00:00:00 来源:中国专利 TAG:

数据包转发方法和设备
【技术领域】
1.本发明涉及通信领域,尤其涉及一种数据包转发方法和设备。


背景技术:

2.当局域网设备需要与广域网设备进行通信时,源设备先将数据包发送至nat设备,nat设备根据广域网ip地址和局域网ip地址的映射关系,对数据包进行ip地址更新,以及校验数据计算,再将ip地址更新后的数据包和校验数据发送到目的设备。具体地,目前,对数据包进行ip地址更新,以及校验数据计算的任务均由nat设备中的应用处理器(application process,ap)执行,增加了ap的中央处理器(central processing unit,cpu)负载。


技术实现要素:

3.有鉴于此,本发明实施例提供了一种数据包转发方法和设备,将对数据包进行ip地址更新,以及校验数据计算的任务分配给互联网协议包的硬件加速器,以减少ap的cpu负载。
4.第一方面,本发明实施例提供了一种数据包转发方法,其特征在于,所述方法应用于网络地址转换nat设备,所述nat设备包括互联网协议包的硬件加速器ipa和应用处理器ap,所述ipa执行所述方法,包括:
5.接收数据包;
6.根据局域网ip地址和广域网ip地址的映射关系,对所述数据包的ip地址进行更新;
7.将ip地址更新后的数据包发送至所述ap,以使所述ap中的软件快速转发路径sfp模块根据所述数据包的ip地址,将所述数据包发送至对应的网卡。
8.其中一种可能的实现方式中,对所述数据包的ip地址进行更新之前,所述方法还包括:
9.接收所述sfp模块发送的至少一个所述局域网ip地址和广域网ip地址的映射关系。
10.其中一种可能的实现方式中,每个映射关系包括一个局域网ip地址和一个广域网ip地址;
11.对所述数据包的ip地址进行更新,包括:
12.根据所述数据包的ip地址,从至少一个所述局域网ip地址和广域网ip地址的映射关系中确定目标映射关系;
13.根据所述目标映射关系,将所述数据包的源地址由局域网ip地址更新为广域网ip地址,或者,将所述数据包的目的地址由广域网ip地址更新为局域网ip地址。
14.其中一种可能的实现方式中,当所述数据包由局域网设备发送至广域网设备时,将所述数据包的源地址由局域网ip地址更新为广域网ip地址;
15.当所述数据包由广域网设备发送至局域网设备时,将所述数据包的目的地址由广域网ip地址更新为局域网ip地址。
16.其中一种可能的实现方式中,每个映射关系中的局域网ip地址对应一个局域网端口,每个映射关系中的广域网ip地址对应一个广域网端口,所述方法还包括:
17.当所述数据包由局域网设备发送至广域网设备时,将所述数据包的源端口由局域网端口更新为广域网端口;
18.当所述数据包由广域网设备发送至局域网设备时,将所述数据包的目的端口由广域网端口更新为局域网端口。
19.其中一种可能的实现方式中,将ip地址更新后的数据包发送至所述ap之前,所述方法还包括:
20.计算所述数据包的校验数据。
21.其中一种可能的实现方式中,将ip地址更新后的数据包发送至所述ap,以使所述ap中的sfp模块根据所述数据包的ip地址,将所述数据包发送至对应的网卡,包括:
22.将ip地址更新后的数据包以及所述校验数据发送至所述ap,以使所述ap中的sfp模块根据所述数据包的ip地址,将所述数据包以及所述校验数据发送至对应的网卡。
23.第二方面,本发明实施例一种一种网络地址转换nat设备,包括:
24.互联网协议包的硬件加速器ipa,用于接收数据包;根据局域网ip地址和广域网ip地址的映射关系,对所述数据包的ip地址进行更新;将ip地址更新后的数据包发送至应用处理器ap,以使所述ap中的sfp模块根据所述数据包的ip地址,将所述数据包发送至对应的网卡;
25.应用处理器ap,用于接收ip地址更新后的数据包,并根据所述数据包的ip地址,将所述数据包发送至对应的网卡。
26.第三方面,本发明实施例提供一种电子设备,包括:
27.至少一个处理器;以及
28.与所述处理器通信连接的至少一个存储器,其中:
29.所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。
30.第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行第一方面所述的方法。
31.应当理解的是,本发明实施例的第二~第四方面与本发明实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
32.发明实施例提供的数据包转发方法和设备,将对数据包进行ip地址更新,以及校验数据计算的任务分配给互联网协议包的硬件加速器,以减少ap的cpu负载。
【附图说明】
33.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
34.图1为本发明实施例提供的一种nat设备的结构示意图;
35.图2为本发明实施例提供的一种数据包转发方法的流程图;
36.图3为本发明实施例提供的一种更新数据包的ip地址的示意图;
37.图4为本发明实施提供的一种电子设备的结构示意图。
【具体实施方式】
38.为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
39.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
40.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
41.相关技术中,nat设备包含ap。nat设备在转发数据包时,先由ap根据广域网ip地址和局域网ip地址的映射关系,对数据包进行ip地址更新,以及校验数据计算,再将ip地址更新后的数据包和校验数据发送到目的设备。而目前nat设备的ap的处理能力不强,上述由ap对数据包进行ip地址更新,以及校验数据计算的方案增加了ap的cpu负载。本发明提出一种数据包转发方法和设备,由nat设备中的互联网协议包的硬件加速器(ip packet accelerator,ipa)对数据包进行ip地址更新及校验数据计算,大大减少了ap的cpu负载。
42.图1为本发明实施例提供的一种nat设备的结构示意图,如图1所示,上述nat设备包括:ap11、ipa12和网卡13。其中,ap又包含软件快速转发路径(soft fastpath progress,sfp)模块14。
43.具体地,当数据包由局域网设备发送至广域网设备时,ipa接收局域网设备发送的数据包,将数据包的源地址由局域网ip地址更新为广域网ip地址,并计算该数据包的校验数据;之后再将ip地址更新后的数据包和校验数据发送至ap;由ap中的sfp模块将数据包和校验数据发送至网卡,以使网卡将数据包和校验数据发送至广域网设备。
44.类似地,当数据包由广域网设备发送至局域网设备时,ipa接收广域网设备发送的数据包,将数据包的目的地址由广域网ip地址更新为局域网ip地址,并计算该数据包的校验数据;之后再将ip地址更新后的数据包和校验数据发送至ap;由ap中的sfp模块将数据包和校验数据发送至网卡,以使网卡将数据包和校验数据发送至局域网设备。
45.图2为本发明实施例提供的一种数据包转发方法,所述方法应用于nat设备,所述nat设备包括ipa和ap,所述ipa执行所述方法。如图2所示,上述方法包括:
46.步骤101,接收数据包。
47.步骤102,根据局域网ip地址和广域网ip地址的映射关系,对数据包的ip地址进行更新。
48.具体地,在执行本步骤之前,ap中的sfp模块先将局域网ip地址和广域网ip地址的映射关系作为转发规则写入ipa。其中,转发规则包含至少一个映射关系,其中每个映射关系包含一个局域网ip地址和一个广域网ip地址。
49.需要说明的是,数据包的头部包含该数据包的源地址和目的地址,分别用于指示该数据包的源设备和目的设备。当数据包的源设备为局域网设备,目的设备为广域网设备,即数据包由局域网设备发送至广域网设备时,数据包的源地址为局域网ip地址。ipa接收到数据包之后,遍历转发规则中的每个映射关系,根据数据包的源地址确定目标映射关系;根据目标映射关系,将数据包的源地址由局域网ip地址更新为广域网ip地址,并对ip地址更新后的数据包的头部进行重新封装。
50.类似地,当数据包的源设备为广域网设备,目的设备为局域网设备,即数据包由广域网设备发送至局域网设备时,数据包的目的地址为广域网ip地址。ipa接收到数据包之后,遍历转发规则中的每个映射关系,根据数据包的目的地址确定目标映射关系;根据目标映射关系,将数据包的目的地址由广域网ip地址更新为局域网ip地址,并对ip地址更新后的数据包的头部进行重新封装。
51.在一个具体示例中,每个映射关系中的局域网ip地址对应一个局域网端口,每个映射关系中的广域网ip地址对应一个广域网端口。ipa确定目标映射关系后,除了完成ip地址的更新,还需要完成端口更新。
52.具体地,数据包头部的源地址对应一个源端口,数据包头部的目的地址对应一个目的端口。当数据包由局域网设备发送至广域网设备时,将数据包的源端口由局域网端口更新为广域网端口;当数据包由广域网设备发送至局域网设备时,将数据包的目的端口由广域网端口更新为局域网端口。
53.例如,如图3所示,局域网设备a和局域网设备b通过nat设备与广域网设备c进行通信,转发关系包含下表1中的4条映射关系。
[0054][0055]
表1转发关系示例
[0056]
a向c发送数据包时,nat设备所接收到的数据包的源地址和源端口号为10.1.100:1025,其中10.1.100为局域网ip地址,1025为局域网端口号,nat设备中的ipa通过查找转发关系,确定目标映射关系为1号映射关系,根据目标映射关系,将数据包的源地址和源端口号由10.1.100:1025更新为162.105.178.65:16384。当c向a发送数据包时,目标映射关系为2号映射关系,根据目标映射关系,将数据包的目的地址和目的端口号由162.105.178.65:16384更新为10.1.100:1025;b向c发送数据包时,目标映射关系为3号映射关系,根据目标映射关系,将数据包的源地址和源端口号由10.1.200:1028更新为162.105.178.65:16400;c向b发送数据包时,目标映射关系为4号映射关系,根据目标映射关系,将数据包的目的地址和目的端口号由162.105.178.65:16400更新为10.1.200:1028。
[0057]
另外,ipa还可以计算数据包的校验数据。校验数据是指传输位数的累加,目的设
备可以根据校验数据判断是否接到了完整的数据包。
[0058]
步骤103,将ip地址更新后的数据包发送至ap,以使ap中的sfp模块根据数据包的ip地址,将数据包发送至对应的网卡。
[0059]
需要说明的是,nat设备可能包含多张网卡,各张网卡分别用于发送不同ip地址的数据包。源地址和目的地址相同的数据包可以通过同一张网卡发送,网卡信息也可以记录在转发规则中。当ap接收到ipa发送的数据包之后,ap中的sfp模块可以根据数据包的ip地址,确定目标网卡,并将数据包发送至目标网卡,再由目标网卡将数据包发送至目标设备。另外,ipa还可以将数据包的校验数据与数据包一同发送至ap,ap中的sfp模块将校验数据与数据包一同发送至目标网卡,再由目标网卡将数据包和校验数据发送至目标设备。
[0060]
需要说明的是,ipa与不同厂家的网卡的兼容性较差,而ap对不同厂家的网卡的兼容性较好,因此,本步骤没有由ipa直接确定目标网卡,并将ip更新后的数据包和校验数据发送至目标网卡,而是令ipa先将数据包和校验数据发送至ap,再由ap将数据包和校验数据发送至目标网卡。
[0061]
相关技术中,为节省nat设备的资源,nat设备中的ap通常经过裁剪,处理能力不强。因此,本发明实施例将更新数据包ip地址和计算校验数据这类消耗较大,且重复性强的任务分配给ipa处理,大大减少了ap的cpu负载。另外,ipa将处理好的数据包和校验数据发送给ap,由ap将其发送至对应的网卡,解决了ipa与不同厂家的网卡兼容性差的问题。
[0062]
图4为本发明实施提供的一种电子设备的结构示意图。图4显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0063]
如图4所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本发明图2所示实施例提供的数据包转发方法。电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器410,通信接口420,存储器430,以及连接不同系统组件(包括存储器430和处理单元410)的通信总线440。
[0064]
通信总线440表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industry standard architecture;以下简称:isa)总线,微通道体系结构(micro channel architecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(video electronics standards association;以下简称:vesa)局域总线以及外围组件互连(peripheral component interconnection;以下简称:pci)总线。
[0065]
电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0066]
存储器430可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(random access memory;以下简称:ram)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。存储器430可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0067]
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器430中,这样
的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本发明所描述的实施例中的功能和/或方法。
[0068]
处理器410通过运行存储在存储器430中的程序,从而执行各种功能应用以及数据处理,例如实现本发明图2所示实施例提供的数据包转发方法。
[0069]
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行本发明图2所示实施例提供的数据包转发方法。
[0070]
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0071]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0072]
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(local area network;以下简称:lan)或广域网(wide area network;以下简称:wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0073]
上述对本发明特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0074]
在本发明的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本发明中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本发明中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0075]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0076]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括
一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0077]
取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
[0078]
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0079]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0080]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献