数据包传输方法、装置及存储介质与流程

文档序号:30588290发布日期:2022-07-01 18:43阅读:68来源:国知局
数据包传输方法、装置及存储介质与流程

1.本技术涉及数据处理技术领域,尤其涉及数据包传输方法、装置及存储介质。


背景技术:

2.5g核心网架构中,转发面采用c-u分离架构,c面网元和u面网元分别为会话管理功能(session management function,smf)和用户面功能(user plane function,upf)。其中,smf负责承载建立、信令分析等控制消息处理。upf支持用户业务数据的路由和转发、业务识别、动作和策略执行等。5g的高可靠低延迟通信(ultra-relaible and low latency communication,urllc)和增强移动宽带(enhanced mobile broadband,embb)等业务对upf处理时延、带宽、抖动和丢包率有更高的要求。
3.但在边缘场景(例如,距离核心网设备较远的工业园区等场景)中核心网设备与接入网设备较长的物理距离造就了处理时延天然会比较大,无法支持上述业务。为了克服边缘场景中的数据处理时延过大的问题,当前会将核心网中的upf网元软件部署在工业园区的机房环境,例如,upf网元软件部署在工业园区的服务器中,这就会使该工业园区的服务器与核心网的smf直接通信,核心网的smf暴露给该服务器,从而造成安全隐患。


技术实现要素:

4.本技术提供数据包传输方法、装置及存储介质,有助于更安全的解决边缘计算场景中的数据处理时延过大的问题。
5.第一方面,提供一种数据包传输方法,应用于硬件加速卡,该硬件加速卡包括硬件转发表和流表,该方法包括:获取目标数据包;若目标数据包在硬件转发表中存在对应的转发表项,则根据对应的转发表项转发目标数据包;若目标数据包在硬件转发表中不存在对应的转发表项,则由低功耗处理器完成目标数据包的转发。
6.本技术实施例中,由硬件转发表快速完成业务数据的转发,或由低功耗处理器完成业务数据的转发,由硬件加速卡完成核心网中的用户面功能,实现了用户业务数据的快速处理。
7.在一种可能的实现方式中,上述由低功耗处理器完成目标数据包的转发,包括:若目标数据包在低功耗处理器中的流表中存在对应的转发表项,则根据流表中对应的转发表项转发目标数据包;若目标数据包在流表中不存在对应的转发表项,则生成目标数据包的转发表项,并根据生成的转发表项转发目标数据包。
8.这样,只有在目标数据包在硬件转发表中不存在对应的转发表项的情况下,由低功耗处理器完成数据的转发,实现了业务数据的快速转发。
9.在另一种可能的实现方式中,上述生成目标数据包的转发表项,包括:对目标数据包进行安全校验、通用分组无线服务技术隧道gtp协议处理、深度包检测dpi、服务质量管理和计费规则关联处理,并生成目标数据包的转发表项。
10.在另一种可能的实现方式中,该方法还包括:若目标数据包需要卸载,则将目标数
据包的转发表项加入硬件转发表。
11.在另一种可能的实现方式中,该方法还包括:获取待处理数据流的转发表项;转发表项包括待处理数据流的信息、路由路径和输出接口信息,其中,待处理数据流的信息包括属于待处理数据流的数据包所共有的n元组和输入接口信息;n为四、五或七中的任意一个;在硬件转发表和/或低功耗处理器中的流表中添加获取的待处理数据流的转发表项。
12.第二方面,提供一种硬件加速卡,可用于执行上述第一方面至第一方面的任一种可能的实现方式中提供的任一种方法。
13.根据第二方面,在第二方面的第一种可能的实现方式中,该硬件加速卡包括若干功能模块,该若干功能模块分别用于执行上述第一方面提供的任一种方法中的相应步骤。
14.根据第二方面,在第二方面的第二种可能的实现方式中,该硬件加速卡可以包括处理器,该处理器用于执行上述第一方面至第一方面的任一种可能的实现方式中提供的任一种方法。该硬件加速卡还可以包括存储器,该存储器用于存储计算机程序。以使得所述处理器能够调用所述计算机程序以用于执行上述第一方面至第一方面的任一种可能的实现方式中提供的任一种方法。
15.第三方面,本技术提供一种芯片系统,该芯片系统应用于计算机设备,该芯片系统包括一个或多个接口电路,以及一个或多个处理器。所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述计算机设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令。当所述处理器执行所述计算机指令时,所述计算机设备执行如第一方面至第一方面中任一种可能的实现方式所述的方法。
16.第四方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在计算机设备上运行时,使得所述计算机设备执行如第一方面至第一方面中任一种可能的实现方式所述的方法。
17.第五方面,本技术提供一种计算机程序产品,该计算机程序产品包括计算机指令,当所述计算机指令在计算机设备上运行时,使得所述计算机设备执行如第一方面至第一方面中任一种可能的实现方式所述的方法。
18.可以理解的是,上述提供的任一种硬件加速卡、计算机可读存储介质、计算机程序产品或芯片系统等均可以应用于上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
19.本技术的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
20.图1为本技术实施例提供的技术方案所适用的一种网络结构示意图;
21.图2为本技术实施例提供的技术方案所适用的一种网络功能虚拟化架构示意图;
22.图3为本技术实施例提供的技术方案所适用的一种电子装置的结构示意图;
23.图4为本技术实施例提供的技术方案所适用的一种硬件转发表以及流表的转发表项存储方法的流程示意图;
24.图5为本技术实施例提供的一种数据包传输方法的流程示意图;
25.图6为本技术实施例提供的一种硬件加速卡的结构示意图。
具体实施方式
26.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
27.在本技术实施例中,“至少一个”是指一个或多个。“多个”是指两个或两个以上。
28.在本技术实施例中,“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
29.在本技术实施例中,组合包括一个或多个对象。
30.本技术实施例提供的数据包传输方法,可以适用于如图1所示的网络结构。该网络结构包括硬件加速卡10、第三方服务器20以及会话管理功能网元30。硬件加速卡10分别与第三方服务器20以及会话管理功能网元30连接。其中,第三方服务器20可以是园区网络中的服务器,会话管理功能网元30是核心网中的smf。硬件加速卡可以是基于现场可编程门阵列(field programmable gate array,fpga)或专用集成电路(application specific integrated circuit,asic)的集成电路,硬件加速卡本身可以具备数据匹配的能力。
31.在一种可能的实现方式中,硬件加速卡10与第三方服务器20通过高速串行计算机扩展(peripheral component interconnect express,pcie)总线连接,硬件加速卡10通过n4接口与smf连接。
32.本技术实施例提供的数据包传输方法适用于边缘场景中的upf业务功能的卸载。边缘场景如园区网络中,由于upf业务功能相对简单,同时该业务对网络的时延、抖动等指标比较敏感,因此,可以将边缘场景中upf业务功能卸载至硬件加速卡中,硬件加速卡与园区网络中的服务器通过pcie总线连接。
33.在一个例子中,如图2所示,硬件加速卡10、第三方服务器20和smf30共同构成适用于本技术实施例的网络功能虚拟化(network functions virtualization,nfv)架构。
34.硬件加速卡10分为静态区域和动态区域。静态区域由厂家预先完成开发调试,封装pcie接口、双数据速率(double data rage ram,ddr)、闪存、dram存储器等通用逻辑,并对动态区域提供调用接口。动态区域加载用户的加速逻辑,提供网络功能、ip功能、cpu处理功能等。其中,网络功能,如支持sr-iov(single root i/o virtualization)、虚拟局域网(virtual local area network,vlan)透传、组播等网卡功能。网际互联协议(internet protocol,ip)功能,如pcie总线、内存硬件加速卡、数据包收发端口等。cpu处理功能主要由低功耗cpu提供,低功耗cpu包括i/o接口、缓存和内存硬件加速卡,低功耗cpu可以实现与smf间的n4协议交互和对加速卡的配置管理。
35.第三方服务器20,对虚拟化层提供基础异构计算算力。包括处理器如cpu、存储器如固态硬盘(solid state disk,ssd)和ddr。其中,处理器包括i/o接口、缓存和内存硬件加速卡等。
36.该nfv架构的虚拟层包括:host os,用于运行虚拟机软件的操作系统。该操作系统包括:
37.cyborg agent组件,用于管理硬件和软件加速资源,结合加速器驱动实现fpga智
能网卡的发现、管理和加速功能加载。
38.kvm,为一个开源的系统虚拟化模块,提供支持上层容器/vm中第三方应用程序(application program,app)的虚拟运行环境。
39.fpga智能网卡驱动:硬件加速卡硬件接口,操作系统通过该接口控制硬件加速卡10工作。
40.该nfv架构的应用层包括:容器/虚拟机(virtual machine,vm),用于部署第三方应用程序的虚拟化技术。
41.在一种可能的实现方式中,上述硬件加速卡10、第三方服务器20以及nfv30都可以通过如图3所示的电子装置实现。如图3所示的电子装置40可以包括至少一个低功耗处理器401,通信线路402,存储器403以及至少一个通信接口404。
42.处理器401可以是一个通用中央处理器(central processing unit,cpu),微处理器,特定应用集成电路(application-specific integrated circuit,asic),或一个或多个用于控制本技术方案程序执行的集成电路。
43.通信线路402可包括至少一条通路,比如数据总线,和/或控制总线,用于在上述组件(如至少一个处理器401,通信线路402,存储器403以及至少一个通信接口404)之间传送信息。
44.通信接口404,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如广域网(wide area network,wan),局域网(local area networks,lan)等。例如,可以接收图1所示网络结构中的会话管理功能网元30发送的数据,或者向会话管理功能网元30发送数据。
45.存储器403,可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器403可以是独立存在,通过通信线路402与处理器401相连接。存储器403也可以和处理器401集成在一起。本技术实施例提供的存储器403通常包括非易失性存储器。其中,存储器403用于存储执行本技术方案的计算机指令,并由处理器401来控制执行。处理器401用于执行存储器403中存储的计算机指令,从而实现本技术下述实施例提供的方法。
46.存储器403包括内存和硬盘。当电子装置40为硬件加速卡的情况下,存储器中存储硬件转发表和流表。
47.可选的,本技术实施例中的计算机指令也可以称之为应用程序代码或系统,本技术实施例对此不作具体限定。
48.需要说明的是,图3所示的电子装置仅为示例,其不对本技术实施例可适用的电子装置构成限定。实际实现时,电子装置可以包括比图3中所示的更多或更少的设备或器件。
49.图2所示的系统架构的硬件加速卡中存储有硬件转发表,该硬件加速卡的低功耗处理器中存储有流表。
50.如图4所示,硬件转发表以及流表的转发表项存储方法包括如下步骤:
51.s100:获取目标数据流的信息、路由路径和输出接口信息。其中,目标数据流的信息包括属于目标数据流的数据包所共有的n元组和输入接口信息;n为4、5或7。
52.根据本技术实施例,数据流可以是一定时间段内经过同一网络中,具有共同特征或属性的数据包的集合。例如,属于目标数据流的数据包可以具有相同的五元组和输入接口信息,以属于目标数据流的数据包所共有的五元组和输入接口信息作为该目标数据流的信息,可以唯一表示该条目标数据流。其中,五元组包括:源ip地址、目的ip地址、源端口号、目的端口号以及传输层协议,输入接口信息可以是接收数据包的网络接口的编号。
53.s101:在硬件加速卡中的硬件转发表以及低功耗处理器中的流表中添加获取的目标数据流的信息、路由路径和输出接口信息。
54.根据本技术实施例,硬件转发表可以以key-action的结构组成,其中,key{src_ip,dst_ip,proto,src_port,dst_port,in_dev_port}:分别表示源ip,目的ip,协议,源端口号,目的端口号,输入接口编号。action{src_ip,dst_ip,src_port,dst_prot,smac,dmac,out_dev_port}:分别表示源ip,目的ip,源端口号,目的端口号,源mac,目的mac,输出接口编号。其中,key中的信息可以根据目标数据流的信息得到,action中的信息可以根据数据流的路由路径和输出接口信息得到。
55.需要说明的是,在系统初始化时,可以通过上述s100~s101建立硬件转发表以及流表中的转发表项,也可以在系统传输数据的过程中执行上述上述s100~s101建立硬件转发表以及流表中的转发表项,本技术对此不进行限定。
56.本技术实施例中,硬件加速卡本身可以具备数据匹配的能力,因此,可以在接收到数据包时根据数据包的五元组和输入接口信息匹配硬件转发表中的五元组和输入接口信息等转发表项信息,如果匹配成功,则可以直接通过硬件加速卡传输该数据包。例如,硬件加速卡接收到数据包后,可以将数据包的五元组和入接口信息匹配key中的信息,这里,匹配输入接口信息是为了防止一条数据流多次穿越网络设备产生环路。如果匹配成功,硬件加速卡可以根据action中的信息执行转发动作,其中,可以是直接执行转发,或者在在需要修改数据包时,则根据action中的信息修改数据包,例如执行三层转发时需要修改mac地址,则根据action中的信息修改mac地址后,再执行转发。因此,本技术实施例在将目标数据流的信息、路由路径和输出接口信息等转发表项添加到硬件转发表以及流表之后,硬件加速卡在接收到后续的属于该目标数据流的其它数据包时,可以根据硬件转发表中的转发表项直接转发数据包,不需要访问低功耗处理器的流表,也不需要低功耗处理器的处理,由硬件加速卡实现数据包的快速转发。若硬件转发表不存在该数据流的转发表项则由低功耗处理器匹配流表中的转发表项完成数据包的转发。
57.本技术实施例中,流表中的转发表项包括了硬件转发表中的转发表项。流表中的转发表项可以比硬件转发表中的转发表项多,也可以与硬件转发表中的转发表项相同。
58.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
59.图5示出了本技术实施例提供的一种数据包传输方法的流程示意图。该方法可以
应用于图1中的硬件加速卡。如图5所示,该方法可以包括以下步骤:
60.s200:获取园区网络中的目标数据包。
61.具体的,硬件加速卡接收来自园区网络的目标数据包。
62.s201:判断目标数据包在硬件转发表中是否存在对应的转发表项。若是,则执行s202,若否,则执行s203。
63.s202:根据硬件转发表中对应的转发表项转发该目标数据包。
64.s203:由低功耗处理器完成目标数据包的转发。
65.具体的,低功耗处理器判断目标数据包在流表中是否存在对应的转发表项。若是,则低功耗处理器根据流表中对应的转发表项处理该目标数据包。其中,处理包括对数据包进行修改后转发,或丢弃等操作。若否,低功耗处理器根据获取的控制面信息对目标数据包进行安全校验、通用分组无线服务技术隧道gtp协议处理(例如:去掉封装的报头信息等操作)、深度包检测(例如:获取该数据报文的路由路径、输出接口信息等)、服务质量关联以及计费规则管理处理等,并生成该目标数据包的转发表项。最终低功耗处理器根据生成的转发表项处理该目标数据包。
66.可选的,s204:判断该目表数据包是否需要卸载。若是,则执行s205。若否,则结束。
67.具体的,低功耗处理器可以根据预置的需要卸载的数据流类型判断该目标数据包所属的数据流是否需要卸载。
68.s205:在硬件转发表中添加该目标数据包的转发表项。
69.本技术实施例中,硬件加速卡中,当目标数据包在硬件转发表中存在对应的转发表项时,直接对目标数据包进行转发,当硬件转发表中不存在对应的转发表项时,通过低功耗处理器完成目标数据包的转发。而硬件加速卡与控制面网元通信,避免了控制面网元暴露给第三方服务器。这样,在保障了安全的前提下实现了园区网络中用户面数据的快速传输。
70.上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
71.本技术实施例可以根据上述方法示例对硬件加速卡进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
72.如图6所示,为本技术实施例提供的一种硬件加速卡的结构示意图。该硬件加速卡60可以用于执行上文中任意一个实施例(如图4、图5所示的实施例)中硬件加速卡所执行的功能。硬件加速卡60包括:存储模块601,用于存储硬件转发表和流表;获取模块602,用于获取目标数据包;转发模块603,用于若目标数据包在硬件转发表中存在对应的转发表项,则根据对应的转发表项转发目标数据包;若目标数据包在硬件转发表中不存在对应的转发表
项,则由硬件加速卡中的低功耗处理器完成目标数据包的转发。例如,结合图4,获取模块602可以用于执行s100,存储模块601可以用于执行s101,结合图5,获取模块601可以用于执行s200,转发模块603可以用于执行s201~s203。存储模块601可以用于执行s205。
73.可选的,转发模块603具体用于:若目标数据包在低功耗处理器中的流表中存在对应的转发表项,则根据流表中对应的转发表项转发目标数据包;若目标数据包在流表中不存在对应的转发表项,则生成目标数据包的转发表项,并根据生成的转发表项转发目标数据包。
74.可选的,硬件加速卡60,还包括:生成模块604,用于对目标数据包进行安全校验、通用分组无线服务技术隧道gtp协议处理、深度包检测dpi、服务质量管理和计费规则关联处理,并生成目标数据包的转发表项。
75.可选的,存储模块601还用于:若目标数据包需要卸载,则将目标数据包的转发表项加入硬件转发表。
76.可选的,获取模块602还用于获取待处理数据流的转发表项;转发表项包括待处理数据流的信息、路由路径和输出接口信息,其中,待处理数据流的信息包括属于待处理数据流的数据包所共有的n元组和输入接口信息;n为四、五或七中的任意一个;存储模块601还用于在硬件转发表和/或低功耗处理器中的流表中添加获取的待处理数据流的转发表项。
77.在一个例子中,参见图2,上述获取模块602的接收功能以及转发模块603的发送功能可以由图2中的通信接口404实现。上述获取模块602的处理功能、转发模块603的处理功能、存储模块601和生成模块604均可以由图2中的处理器401调用存储器403中存储的计算机程序实现。
78.关于上述可选方式的具体描述参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种硬件加速卡60的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
79.需要说明的是,上述各个模块对应执行的动作仅是具体举例,各个单元实际执行的动作参照上述基于图4、图5所述的实施例的描述中提及的动作或步骤。
80.本技术实施例还提供了一种计算机设备,包括:存储器和处理器;该存储器用于存储计算机程序,该处理器用于调用该计算机程序,以执行上文提供的任一实施例中提及的动作或步骤。
81.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上文提供的任一实施例中提及的动作或步骤。
82.本技术实施例还提供了一种芯片。该芯片中集成了用于实现上述硬件加速卡的功能的电路和一个或者多个接口。可选的,该芯片支持的功能可以包括基于图4、图5所述的实施例中的处理动作,此处不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。所述的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定集成电路(application specific integrated circuit,asic)、微处理器(digital signal processor,dsp),现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或
者其任意组合。
83.本技术实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
84.应注意,本技术实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。
85.在实施所要求保护的本技术过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
86.尽管结合具体特征及其实施例对本技术进行了描述,在不脱离本技术的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本技术的示例性说明,且视为已覆盖本技术范围内的任意和所有修改、变化、组合或等同物。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1