CN113014627B - 报文转发方法、装置、智能终端及计算机可读存储介质 - Google Patents

报文转发方法、装置、智能终端及计算机可读存储介质 Download PDF

Info

Publication number
CN113014627B
CN113014627B CN202110181485.9A CN202110181485A CN113014627B CN 113014627 B CN113014627 B CN 113014627B CN 202110181485 A CN202110181485 A CN 202110181485A CN 113014627 B CN113014627 B CN 113014627B
Authority
CN
China
Prior art keywords
message
target
data
forwarded
kernel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110181485.9A
Other languages
English (en)
Other versions
CN113014627A (zh
Inventor
李小军
吴闽华
孟庆晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Genew Technologies Co Ltd
Original Assignee
Shenzhen Genew Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Genew Technologies Co Ltd filed Critical Shenzhen Genew Technologies Co Ltd
Priority to CN202110181485.9A priority Critical patent/CN113014627B/zh
Publication of CN113014627A publication Critical patent/CN113014627A/zh
Application granted granted Critical
Publication of CN113014627B publication Critical patent/CN113014627B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了报文转发方法、装置、智能终端及计算机可读存储介质,其中,上述报文转发方法包括:获取待转发报文;基于内核层对上述待转发报文进行数据段替换,获取目标报文数据;基于上述目标报文数据获取目标报文并转发。直接在内核层对数据报文进行数据段替换,无需通过应用层的DPDK软件来对数据报文进行处理。因此,与现有技术相比,本发明方案在对数据报文进行转发的过程中,不需要进行内核层和应用层之间的数据交互,有利于提高转发效率,满足高速率要求。

Description

报文转发方法、装置、智能终端及计算机可读存储介质
技术领域
本发明涉及数据通信技术领域,尤其涉及的是一种报文转发方法、装置、智能终端及计算机可读存储介质。
背景技术
随着科学技术的进步,尤其是通信技术的进步,对数据报文的接收、处理和转发越来越受到关注。例如,目前5G技术发展迅速,以其高速率、大容量、低时延的特点得到广泛关注。其中,高速率是用户能感受到的最直观的特点,极快的网速可以给用户提供高速上传和下载的体验。而发展迅速的5G网络也将承载越来越多的丰富的业务,在此基础上,必然产生大量的数据流量,对网络转发处理性能提出更高的要求和挑战。用户数据报文从移动终端通过无线基站进入,然后经过MEC(边缘计算服务器)或UPF处理转发后,传递到互联网中。通过MEC或UPF快速处理并转发用户数据报文,是5G应用的基础。
现有技术中,通常通过传统DPDK对用户数据报文进行快速转发,具体的,在网络控制器从网络线路上接收到网络信号后,转换成网络报文。内核层的网口驱动从网络控制器中接收报文并保存到内存,交给应用层的DPDK软件,通过应用层的DPDK软件对报文进行包头替换后,再通过内核驱动将该报文转发出去。现有技术的问题在于,通过应用层的DPDK软件对报文进行包头替换,在每个数据报文的转发过程中需要进行两次内核层与应用层之间的数据交互,因而导致转发效率较低,不利于满足高速率要求。
因此,现有技术还有待改进和发展。
发明内容
本发明的主要目的在于提供一种报文转发方法、装置、智能终端及计算机可读存储介质,旨在解决现有技术中通过应用层的DPDK软件对报文进行包头替换,在每个数据报文的转发过程中需要进行两次内核层与应用层之间的数据交互,因而导致转发效率较低,不利于满足高速率要求的问题。
为了实现上述目的,本发明第一方面提供一种报文转发方法,其中,上述方法包括:
获取待转发报文;
基于内核层对上述待转发报文进行数据段替换,获取目标报文数据;
基于上述目标报文数据获取目标报文并转发。
可选的,上述获取待转发报文,包括:
通过网络控制器从网络介质上接收网络信号,将上述网络信号转换为网络报文,并向上述内核层发送上述网络报文;
通过上述内核层的网口驱动接收获取上述网络报文,作为待转发报文。
可选的,上述内核层设置有内核线程,上述基于内核层对上述待转发报文进行数据段替换,获取目标报文数据,包括:
获取上述待转发报文的源MAC数据;
基于上述源MAC数据和上述内核线程中预设的匹配MAC数据进行匹配,获取与上述待转发报文匹配的目标内核线程;
通过上述目标内核线程接收获取上述待转发报文;
基于上述目标内核线程对上述待转发报文进行数据段替换,获取目标报文数据。
可选的,上述通过上述目标内核线程接收获取上述待转发报文,包括:
当有上述待转发报文进入上述目标内核线程时,上述目标内核线程轮询接收缓存描述符,接收获取上述待转发报文。
可选的,上述基于上述目标内核线程对上述待转发报文进行数据段替换,获取目标报文数据,包括:
基于上述目标内核线程获取上述待转发报文的目标MAC数据;
用上述目标MAC数据替换上述待转发报文的源MAC数据,获取目标报文数据。
可选的,上述用上述目标MAC数据替换上述待转发报文的源MAC数据,获取目标报文数据,包括:
基于第一目标缓存描述符存放上述目标MAC数据;
基于第二目标缓存描述符存放上述待转发报文的目标数据,其中,上述目标数据为上述待转发报文中除上述源MAC数据之外的数据;
基于上述第一目标缓存描述符和上述第二目标缓存描述符对应的数据获取上述目标报文数据。
可选的,上述基于上述目标报文数据获取目标报文并转发,包括:
通过上述网络控制器将上述第一目标缓存描述符和上述第二目标缓存描述符对应的目标报文数据拼成完整的目标报文并进行转发。
本发明第二方面提供一种报文转发装置,其中,上述装置包括:
待转发报文获取模块,用于获取待转发报文;
数据段替换模块,用于基于内核层对上述待转发报文进行数据段替换,获取目标报文数据;
转发模块,用于基于上述目标报文数据获取目标报文并转发。
本发明第三方面提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的报文转发程序,上述报文转发程序被上述处理器执行时实现任意一项上述报文转发方法的步骤。
本发明第四方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有报文转发程序,上述报文转发程序被处理器执行时实现任意一项上述报文转发方法的步骤。
由上可见,本发明方案获取待转发报文;基于内核层对上述待转发报文进行数据段替换,获取目标报文数据;基于上述目标报文数据获取目标报文并转发。直接在内核层对数据报文进行数据段替换,无需通过应用层的DPDK软件来对数据报文进行处理。因此,与现有技术相比,本发明方案在对数据报文进行转发的过程中,不需要进行内核层和应用层之间的数据交互,有利于提高转发效率,满足高速率要求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种传统DPDK快速处理二层转发的流程示意图;
图2是本发明实施例提供的一种报文转发方法的流程示意图;
图3是本发明实施例提供的一种基于报文转发方法的报文转发流程示意图;
图4是本发明实施例图2中步骤S100的具体流程示意图;
图5是本发明实施例图2中步骤S200的具体流程示意图;
图6是本发明实施例提供的一种基于多队列以太网控制器对报文进行分流的流程示意图;
图7是本发明实施例图5中步骤S204的具体流程示意图;
图8是本发明实施例提供的一种报文替换和转发示意图;
图9是本发明实施例提供的一种网口驱动初始化流程示意图;
图10是本发明实施例提供的一种报文转发流程示意图;
图11是本发明实施例提供的一种报文转发装置的结构示意图;
图12是本发明实施例提供的一种智能终端的内部结构原理框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当…时”或“一旦”或“响应于确定”或“响应于检测到”。类似的,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述的条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
在当代社会,随着科学技术的进步,尤其是通信技术的进步,对数据报文的接收、处理和转发越来越受到关注。例如,目前5G技术发展迅速,5G网络主要有三大特点,即高速率、大容量、低时延。其中,高速率是用户能感受到的最直观的特点,极快的网速可以给用户提供高速上传和下载的体验,观看3D视频、4K视频也不再是问题,游戏体验也会得到极大增强,AR/VR游戏将会迅速发展。随着承载的业务的种类和数量的丰富,产生的数据流量也不断增多,对网络转发处理性能提出了更高的要求和挑战。用户数据报文从移动终端通过无线基站进入,然后经过MEC(边缘计算服务器)或UPF处理转发后,传递到互联网中。通过MEC或UPF快速处理并转发用户数据报文,是5G应用的基础,大流量快速转发是5G的前提。
现有技术中,通常通过传统DPDK对用户数据报文进行快速转发,图1是本发明实施例提供的一种传统DPDK快速处理二层转发的流程示意图。如图1所示,现有技术中,以太网控制器(网络控制器)从网络线路上接收到网络信号后,转换成网络报文。linux内核的网口驱动从网络控制器中接收报文并保存到内存,交给应用层的DPDK软件,通过应用层的DPDK软件对报文进行L2包头替换后,再通过队列让内核驱动将该报文转发出去。现有技术的问题在于,通过应用层的DPDK软件对报文进行包头替换,在每个数据报文的转发过程中需要进行两次内核层与应用层之间的数据交互,因而导致转发效率较低,不利于满足高速率要求。为了满足5G网络的高速率要求,需要提供一种更好的报文转发方法。
为了解决现有技术的问题,本发明实施例提供一种报文转发方法,在本发明实施例中,获取待转发报文;基于内核层对上述待转发报文进行数据段替换,获取目标报文数据;基于上述目标报文数据获取目标报文并转发。直接在内核层对数据报文进行数据段替换,无需通过应用层的DPDK软件来对数据报文进行处理。因此,与现有技术相比,本发明方案在对数据报文进行转发的过程中,不需要进行内核层和应用层之间的数据交互,有利于提高转发效率,满足高速率要求。
示例性方法
如图2所示,本发明实施例提供一种报文转发方法,具体的,上述方法包括如下步骤:
步骤S100,获取待转发报文。
其中,所述待转发报文为需要进行处理并转发的报文。具体的,可以为通过网络介质获取的报文,在此不做具体限定。
步骤S200,基于内核层对上述待转发报文进行数据段替换,获取目标报文数据。
本实施例中,上述内核层为linux内核,直接在上述内核层对上述待转发报文进行替换二层头部,从而不必再将该报文发送给应用层DPDK软件进行数据段替换,有利于提高转发效率。其中,上述目标报文数据可以为指向对应的目标报文的存储地址的数据,也可以为对应的目标报文的具体数据,上述目标报文为进行数据段替换之后的数据报文。
步骤S300,基于上述目标报文数据获取目标报文并转发。
具体的,基于上述目标报文数据指向的地址或具体数据,可以获得对应的目标报文,从而转发对应的目标报文。
由上可见,本发明实施例提供的报文转发方法获取待转发报文;基于内核层对上述待转发报文进行数据段替换,获取目标报文数据;基于上述目标报文数据获取目标报文并转发。直接在内核层对数据报文进行数据段替换,无需通过应用层的DPDK软件来对数据报文进行处理。因此,与现有技术相比,本发明方案在对数据报文进行转发的过程中,不需要进行内核层和应用层之间的数据交互,有利于提高转发效率,满足高速率要求。
图3是本发明实施例提供的一种基于上述报文转发方法的报文转发流程示意图。如图3所示,本发明实施例中,转发基于二层协议,直接在内核层对收上来的报文替换二层头部,然后立即发送出去,不经过协议栈,也不使用应用层DPDK软件进行处理。从而节省了应用层的处理,将报文L2直接在内核层做了替换后,直接就发送出去了。减少函数调用,省去用户态与内核态的数据传递,减少linux内核调度,转发性能有较大提升。
具体的,本实施例中,如图4所示,上述步骤S100包括:
步骤S101,通过网络控制器从网络介质上接收网络信号,将上述网络信号转换为网络报文,并向上述内核层发送上述网络报文。
步骤S102,通过上述内核层的网口驱动接收获取上述网络报文,作为待转发报文。
其中,上述网络控制器为5G网络中的网卡硬件,本实施例中,可以为以太网控制器。上述网络介质是网络传输数据的载体,是数据发送的物理基础,它位于OSI模型的最底层(物理层)。可选的,上述网络传输介质可以为双绞线、同轴电缆、光纤等,还可以为其它载体,在此不做具体限定。
具体的,上述内核层设置有内核线程,本实施例中,如图5所示,上述步骤S200包括:
步骤S201,获取上述待转发报文的源MAC数据。
步骤S202,基于上述源MAC数据和上述内核线程中预设的匹配MAC数据进行匹配,获取与上述待转发报文匹配的目标内核线程。
步骤S203,通过上述目标内核线程接收获取上述待转发报文。
步骤S204,基于上述目标内核线程对上述待转发报文进行数据段替换,获取目标报文数据。
其中,上述源MAC数据包括上述待转发报文中的MAC地址,上述内核线程中预设的匹配MAC数据为对应的内核线程中预先设定的用于与待转发报文进行匹配的匹配MAC地址。图6是本发明实施例提供的一种基于多队列以太网控制器对报文进行分流的流程示意图,如图6所示,本实施例中,UPF设备使用的网卡(网络控制器)支持多队列,能够按照L2/L3包头进行分流,然后交给不同的CPU内核处理。具体的,上述内核层中内核网口驱动创建有多个内核线程,本实施例中,以3个内核线程为例进行说明,实际使用过程中,内核线程的数目可以根据CPU内核数和应用来进行具体设置和调整,在此不做具体限定。上述各内核线程用于网口收报,每个内核线程绑定到不同的CPU内核上。依照OSI业务模型设定,对于L2二层转发的业务:内核线程1绑定到CPU内核1,内核线程2绑定到CPU内核2,内核线程3绑定到CPU内核3。
其中,各上述内核线程中预先设置有不同的匹配MAC地址,例如,内核线程1对应的匹配MAC地址为MAC1,内核线程2对应的匹配MAC地址为MAC2,内核线程3对应的匹配MAC地址为MAC3。从而可以基于报文的源MAC地址和对应的内核线程中预设的匹配MAC地址进行匹配。具体的,对上述多队列以太网控制器进行设置,让源MAC地址为MAC1的报文发送给CPU内核1,通过内核线程1接收该报文并进行处理,同理,将源MAC地址为MAC2的报文发送给CPU内核2,将源MAC地址为MAC3的报文发送给CPU内核3。
进一步的,提供对应用层的接口,让应用层可以修改上述各内核线程的匹配MAC地址,并且保存在内核的配置表中。从而使用户可以通过应用层修改对应内核线程的匹配MAC地址,提高报文处理和转发的灵活性。
可选的,上述步骤S203包括:当有上述待转发报文进入上述目标内核线程时,上述目标内核线程轮询接收缓存描述符,接收获取上述待转发报文。
具体的,本实施例中,上述内核线程采用中断与轮询结合的方式收包。当没有报文进来时,内核线程处于休眠状态。当有报文进来时,以太网控制器发送中断给CPU内核,在中断处理程序中唤醒对应的收报线程,然后收报线程一直轮询每个接收缓存描述符(BD,buffer description),直到全部接收完后,线程再次进入休眠状态。如此,采用中断与轮询结合的方式收包,可以节省不必要的消耗。
具体的,本实施例中,如图7所示,上述步骤S204包括:
步骤S2041,基于上述目标内核线程获取上述待转发报文的目标MAC数据。
步骤S2042,用上述目标MAC数据替换上述待转发报文的源MAC数据,获取目标报文数据。
其中,上述目标MAC数据为用于对源MAC数据进行替换的新MAC数据,可以根据预先设置并与对应的内核线程进行关联,也可以根据实际的需求进行设置和调整,在此不做具体限定。本实施例中,上述源MAC数据包括待转发报文中的MAC地址,具体可以包括上述待转发报文中的目的网卡物理地址和源网卡物理地址。上述目标MAC数据包括用于替换上述待转发报文中的MAC地址的新的MAC地址。
本实施例中,上述步骤S2042包括:基于第一目标缓存描述符存放上述目标MAC数据;基于第二目标缓存描述符存放上述待转发报文的目标数据,其中,上述目标数据为上述待转发报文中除上述源MAC数据之外的数据;基于上述第一目标缓存描述符和上述第二目标缓存描述符对应的数据获取上述目标报文数据。其中,上述目标报文数据包括上述目标MAC数据和上述目标数据。
进一步的,上述步骤S300包括:通过上述网络控制器将上述第一目标缓存描述符和上述第二目标缓存描述符对应的目标报文数据拼成完整的目标报文并进行转发。
图8是本发明实施例提供的一种报文替换和转发示意图,如图8所示,本实施例中,用一个发送BD(第一目标缓存描述符,简称BD1)存放目标MAC数据,用另一个BD(第二目标缓存描述符,简称BD2)存放目标数据。在进行报文转发时,网络控制器将BD1和BD2拼成一个完整的报文发送,从而实现MAC头的快速替换转发,进一步提高报文转发效率。图8中,源报文为上述待转发报文,新报文为上述目标报文;MAC-DST为报文的目的网卡物理地址,MAC-SRC为报文的源网卡物理地址,TYPE为报文的包类型,DATA为报文的数据段。上述源MAC数据包括待转发报文的原始MAC-DST段和MAC-SRC段;目标MAC数据包括新的MAC-DST段和MAC-SRC段;目标数据包括待转发报文的原始TYPE段和DATA段。
为了进一步对本发明实施例的方案进行说明,本发明实施例还基于一种具体应用场景对上述报文转发方法进行说明。图9是本发明实施例提供的一种具体应用场景中网口驱动初始化流程示意图。如图9所示,linux内核启动后加载网口驱动,进入此流程;创建三个内核线程,分别为T1、T2、T3,其中T1和T2用于接收报文并转发,T3用于将报文上交内核协议栈。将内核线程T1、T2、T3分别绑定到内核CPU1、CPU2和CPU3,防止线程在不同CPU之间切换造成的性能降低。网络控制器设置有很多接收队列,一般8个以上,让队列1的流交给CPU1处理,队列2的流交给CPU2处理,其他的流交给CPU3处理。设置网络控制器的分流特性,按照源MAC地址进行分流。其中源MAC1的报文进入队列1,源MAC2的报文进入队列2,其他报文进入队列3。让内核线程T1、T2和T3启动。为MAC1和MAC2的接收报文流各自预设一个替换后的MAC表,长度为12字节的内存;网口初始化完成。
图10是本发明实施例提供的一种具体应用场景中报文转发流程示意图。如图10所示,将预先设置的目标MAC数据存放在内存中,用newMacHdr指向其地址。对所有接收BD进行轮询,获取待转发报文。具体的,当当前的接收BD中已经接收存放了报文时,获取当前报文存放的内存地址为packet,报文长度为length,目标数据的起始地址为data=packet+12;其中,12为需要替换的源MAC数据的长度,可以根据实际需求进行调整。取一个当前空闲的发送BD,作为BD1(第一目标缓存描述符),让BD1数据指向packet,长度为12;取另一个当前空闲的发送BD,作为BD2(第二目标缓存描述符),让BD2数据指向data,长度为length-12;下发指令让网络控制器基于BD1和BD2合成一个完整的目标报文并转发出去;并将当前接收BD的序号加1,获取下一个接收BD并判断是否有待转发报文。进一步的,当当前接收BD的序号大于预设的序号阈值时,将其序号重置为1,重新开始轮询判断。
示例性设备
如图11中所示,对应于上述报文转发方法,本发明实施例还提供一种报文转发装置,上述报文转发装置包括:
待转发报文获取模块410,用于获取待转发报文。
其中,所述待转发报文为需要进行处理并转发的报文。具体的,可以为通过网络介质获取的报文,在此不做具体限定。
数据段替换模块420,用于基于内核层对上述待转发报文进行数据段替换,获取目标报文数据。
本实施例中,上述内核层为linux内核,直接在上述内核层对上述待转发报文进行替换二层头部,从而不必再将该报文发送给应用层DPDK软件进行数据段替换,有利于提高转发效率。其中,上述目标报文数据可以为指向对应的目标报文的存储地址的数据,也可以为对应的目标报文的具体数据,上述目标报文为进行数据段替换之后的数据报文。
转发模块430,用于基于上述目标报文数据获取目标报文并转发。
具体的,基于上述目标报文数据指向的地址或具体数据,可以获得对应的目标报文,从而转发对应的目标报文。
由上可见,本发明实施例提供的报文转发装置通过待转发报文获取模块410获取待转发报文;通过数据段替换模块420基于内核层对上述待转发报文进行数据段替换,获取目标报文数据;通过转发模块430基于上述目标报文数据获取目标报文并转发。直接在内核层对数据报文进行数据段替换,无需通过应用层的DPDK软件来对数据报文进行处理。因此,与现有技术相比,本发明方案在对数据报文进行转发的过程中,不需要进行内核层和应用层之间的数据交互,有利于提高转发效率,满足高速率要求。
图3是本发明实施例提供的一种基于上述报文转发装置的报文转发流程示意图。如图3所示,本发明实施例中,转发基于二层协议,直接在内核层对收上来的报文替换二层头部,然后立即发送出去,不经过协议栈,也不使用应用层DPDK软件进行处理。从而节省了应用层的处理,将报文L2直接在内核层做了替换后,直接就发送出去了。减少函数调用,省去用户态与内核态的数据传递,减少linux内核调度,转发性能有较大提升。
具体的,本实施例中,上述待转发报文获取模块410具体用于:通过网络控制器从网络介质上接收网络信号,将上述网络信号转换为网络报文,并向上述内核层发送上述网络报文;通过上述内核层的网口驱动接收获取上述网络报文,作为待转发报文。
其中,上述网络控制器为5G网络中的网卡硬件,本实施例中,可以为以太网控制器。上述网络介质是网络传输数据的载体,是数据发送的物理基础,它位于OSI模型的最底层(物理层)。可选的,上述网络传输介质可以为双绞线、同轴电缆、光纤等,还可以为其它载体,在此不做具体限定。
具体的,上述内核层设置有内核线程,本实施例中,上述数据段替换模块420具体用于:获取上述待转发报文的源MAC数据;基于上述源MAC数据和上述内核线程中预设的匹配MAC数据进行匹配,获取与上述待转发报文匹配的目标内核线程;通过上述目标内核线程接收获取上述待转发报文;基于上述目标内核线程对上述待转发报文进行数据段替换,获取目标报文数据。
其中,上述源MAC数据包括上述待转发报文中的MAC地址,上述内核线程中预设的匹配MAC数据为对应的内核线程中预先设定的用于与待转发报文进行匹配的匹配MAC地址。图6是本发明实施例提供的一种基于多队列以太网控制器对报文进行分流的流程示意图,如图6所示,本实施例中,UPF设备使用的网卡(网络控制器)支持多队列,能够按照L2/L3包头进行分流,然后交给不同的CPU内核处理。具体的,上述内核层中内核网口驱动创建有多个内核线程,本实施例中,以3个内核线程为例进行说明,实际使用过程中,内核线程的数目可以根据CPU内核数和应用来进行具体设置和调整,在此不做具体限定。上述各内核线程用于网口收报,每个内核线程绑定到不同的CPU内核上。依照OSI业务模型设定,对于L2二层转发的业务:内核线程1绑定到CPU内核1,内核线程2绑定到CPU内核2,内核线程3绑定到CPU内核3。
其中,各上述内核线程中预先设置有不同的匹配MAC地址,例如,内核线程1对应的匹配MAC地址为MAC1,内核线程2对应的匹配MAC地址为MAC2,内核线程3对应的匹配MAC地址为MAC3。从而可以基于报文的源MAC地址和对应的内核线程中预设的匹配MAC地址进行匹配。具体的,对上述多队列以太网控制器进行设置,让源MAC地址为MAC1的报文发送给CPU内核1,通过内核线程1接收该报文并进行处理,同理,将源MAC地址为MAC2的报文发送给CPU内核2,将源MAC地址为MAC3的报文发送给CPU内核3。
进一步的,提供对应用层的接口,让应用层可以修改上述各内核线程的匹配MAC地址,并且保存在内核的配置表中。从而使用户可以通过应用层修改对应内核线程的匹配MAC地址,提高报文处理和转发的灵活性。
可选的,上述数据段替换模块420还具体用于:当有上述待转发报文进入上述目标内核线程时,基于上述目标内核线程轮询接收缓存描述符,接收获取上述待转发报文。
具体的,本实施例中,上述内核线程采用中断与轮询结合的方式收包。当没有报文进来时,内核线程处于休眠状态。当有报文进来时,以太网控制器发送中断给CPU内核,在中断处理程序中唤醒对应的收报线程,然后收报线程一直轮询每个接收缓存描述符(BD,buffer description),直到全部接收完后,线程再次进入休眠状态。如此,采用中断与轮询结合的方式收包,可以节省不必要的消耗。
具体的,本实施例中,上述数据段替换模块420还具体用于:基于上述目标内核线程获取上述待转发报文的目标MAC数据;用上述目标MAC数据替换上述待转发报文的源MAC数据,获取目标报文数据。
其中,上述目标MAC数据为用于对源MAC数据进行替换的新MAC数据,可以根据预先设置并与对应的内核线程进行关联,也可以根据实际的需求进行设置和调整,在此不做具体限定。本实施例中,上述源MAC数据包括待转发报文中的MAC地址,具体可以包括上述待转发报文中的目的网卡物理地址和源网卡物理地址。上述目标MAC数据包括用于替换上述待转发报文中的MAC地址的新的MAC地址。
进一步的,本实施例中,上述数据段替换模块420还具体用于:基于第一目标缓存描述符存放上述目标MAC数据;基于第二目标缓存描述符存放上述待转发报文的目标数据,其中,上述目标数据为上述待转发报文中除上述源MAC数据之外的数据;基于上述第一目标缓存描述符和上述第二目标缓存描述符对应的数据获取上述目标报文数据。其中,上述目标报文数据包括上述目标MAC数据和上述目标数据。
进一步的,上述转发模块430具体用于:通过上述网络控制器将上述第一目标缓存描述符和上述第二目标缓存描述符对应的目标报文数据拼成完整的目标报文并进行转发。
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图12所示。上述智能终端包括通过系统总线连接的处理器、存储器、网络接口以及显示屏。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和报文转发程序。该内存储器为非易失性存储介质中的操作系统和报文转发程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该报文转发程序被处理器执行时实现上述任意一种报文转发方法的步骤。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏。
本领域技术人员可以理解,图12中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的报文转发程序,上述报文转发程序被上述处理器执行时进行以下操作指令:
获取待转发报文;
基于内核层对上述待转发报文进行数据段替换,获取目标报文数据;
基于上述目标报文数据获取目标报文并转发。
本发明实施例还提供一种计算机可读存储介质,上述计算机可读存储介质上存储有报文转发程序,上述报文转发程序被处理器执行时实现本发明实施例提供的任意一种报文转发方法的步骤。
本发明实施例还提供一种UPF设备,上述UPF设备在对报文进行处理和转发时实现本发明实施例提供的任意一种报文转发方法的步骤。
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (7)

1.一种报文转发方法,其特征在于,所述方法包括:
获取待转发报文;
基于内核层对所述待转发报文进行数据段替换,获取目标报文数据;
基于所述目标报文数据获取目标报文并转发;
所述获取待转发报文,包括:
通过网络控制器从网络介质上接收网络信号,将所述网络信号转换为网络报文,并向所述内核层发送所述网络报文;
通过所述内核层的网口驱动接收获取所述网络报文,作为待转发报文;
所述内核层设置有内核线程,所述基于内核层对所述待转发报文进行数据段替换,获取目标报文数据,包括:
获取所述待转发报文的源MAC数据;
基于所述源MAC数据和所述内核线程中预设的匹配MAC数据进行匹配,获取与所述待转发报文匹配的目标内核线程;
通过所述目标内核线程接收获取所述待转发报文;
基于所述目标内核线程对所述待转发报文进行数据段替换,获取目标报文数据;
提供对应用层的接口,应用层修改各所述内核线程的匹配MAC地址,并保存在内核的配置表中;
所述通过所述目标内核线程接收获取所述待转发报文,包括:
当有所述待转发报文进入所述目标内核线程时,所述目标内核线程轮询接收缓存描述符,接收获取所述待转发报文。
2.根据权利要求1所述的报文转发方法,其特征在于,所述基于所述目标内核线程对所述待转发报文进行数据段替换,获取目标报文数据,包括:
基于所述目标内核线程获取所述待转发报文的目标MAC数据;
用所述目标MAC数据替换所述待转发报文的源MAC数据,获取目标报文数据。
3.根据权利要求2所述的报文转发方法,其特征在于,所述用所述目标MAC数据替换所述待转发报文的源MAC数据,获取目标报文数据,包括:
基于第一目标缓存描述符存放所述目标MAC数据;
基于第二目标缓存描述符存放所述待转发报文的目标数据,其中,所述目标数据为所述待转发报文中除所述源MAC数据之外的数据;
基于所述第一目标缓存描述符和所述第二目标缓存描述符对应的数据获取所述目标报文数据。
4.根据权利要求3所述的报文转发方法,其特征在于,所述基于所述目标报文数据获取目标报文并转发,包括:
通过所述网络控制器将所述第一目标缓存描述符和所述第二目标缓存描述符对应的目标报文数据拼成完整的目标报文并进行转发。
5.一种报文转发装置,其特征在于,所述装置包括:
待转发报文获取模块,用于获取待转发报文;
数据段替换模块,用于基于内核层对所述待转发报文进行数据段替换,获取目标报文数据;
转发模块,用于基于所述目标报文数据获取目标报文并转发;
所述获取待转发报文,包括:
通过网络控制器从网络介质上接收网络信号,将所述网络信号转换为网络报文,并向所述内核层发送所述网络报文;
通过所述内核层的网口驱动接收获取所述网络报文,作为待转发报文;
所述内核层设置有内核线程,所述基于内核层对所述待转发报文进行数据段替换,获取目标报文数据,包括:
获取所述待转发报文的源MAC数据;
基于所述源MAC数据和所述内核线程中预设的匹配MAC数据进行匹配,获取与所述待转发报文匹配的目标内核线程;
通过所述目标内核线程接收获取所述待转发报文;
基于所述目标内核线程对所述待转发报文进行数据段替换,获取目标报文数据;
提供对应用层的接口,应用层修改各所述内核线程的匹配MAC地址,并保存在内核的配置表中;
所述通过所述目标内核线程接收获取所述待转发报文,包括:
当有所述待转发报文进入所述目标内核线程时,所述目标内核线程轮询接收缓存描述符,接收获取所述待转发报文。
6.一种智能终端,其特征在于,所述智能终端包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的报文转发程序,所述报文转发程序被所述处理器执行时实现如权利要求1-4任意一项所述报文转发方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有报文转发程序,所述报文转发程序被处理器执行时实现如权利要求1-4任意一项所述报文转发方法的步骤。
CN202110181485.9A 2021-02-10 2021-02-10 报文转发方法、装置、智能终端及计算机可读存储介质 Active CN113014627B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110181485.9A CN113014627B (zh) 2021-02-10 2021-02-10 报文转发方法、装置、智能终端及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110181485.9A CN113014627B (zh) 2021-02-10 2021-02-10 报文转发方法、装置、智能终端及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113014627A CN113014627A (zh) 2021-06-22
CN113014627B true CN113014627B (zh) 2022-07-26

Family

ID=76402020

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110181485.9A Active CN113014627B (zh) 2021-02-10 2021-02-10 报文转发方法、装置、智能终端及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113014627B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314159B (zh) * 2022-08-02 2023-08-04 成都爱旗科技有限公司 一种芯片间数据传输方法及装置
CN116095750B (zh) * 2023-01-13 2023-10-31 广州爱浦路网络技术有限公司 数据面转发方法、装置、电子设备及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426728A (zh) * 2013-12-31 2017-12-01 福建三元达网络技术有限公司 高性能接入认证处理方法、系统、控制器设备、组网装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102299862B (zh) * 2011-09-22 2014-12-17 北京傲天动联技术股份有限公司 二层隧道快速转发设备和方法
CN108667733A (zh) * 2018-03-29 2018-10-16 新华三信息安全技术有限公司 一种网络设备及报文处理方法
CN109688058B (zh) * 2018-12-19 2021-03-02 迈普通信技术股份有限公司 报文处理方法、装置及网络设备
CN109547580B (zh) * 2019-01-22 2021-05-25 网宿科技股份有限公司 一种处理数据报文的方法和装置
CN112770299A (zh) * 2019-11-04 2021-05-07 中兴通讯股份有限公司 基于内核的报文路由方法、装置、设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426728A (zh) * 2013-12-31 2017-12-01 福建三元达网络技术有限公司 高性能接入认证处理方法、系统、控制器设备、组网装置

Also Published As

Publication number Publication date
CN113014627A (zh) 2021-06-22

Similar Documents

Publication Publication Date Title
US11876702B2 (en) System and method for facilitating efficient address translation in a network interface controller (NIC)
US20140108676A1 (en) Method and system for an os virtualization-aware network interface card
US8542693B2 (en) Managing free packet descriptors in packet-based communications
CN113014627B (zh) 报文转发方法、装置、智能终端及计算机可读存储介质
EP3771169B1 (en) Message processing method and related device
CN112152940B (zh) 报文处理方法、装置以及系统
US20100106874A1 (en) Packet Filter Optimization For Network Interfaces
WO2006063298A1 (en) Techniques to manage flow control
WO2023116340A1 (zh) 一种数据报文的转发方法及装置
WO2022111329A1 (zh) 报文处理方法及设备
US7209489B1 (en) Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing
CN114286447A (zh) 调度优先级的调整方法、设备及存储介质
CN117749726A (zh) Tsn交换机输出端口优先级队列混合调度方法和装置
CN112422457B (zh) 报文处理方法、装置和计算机存储介质
CN113835888A (zh) CPU动态分配提升WiFi性能的方法、WiFi通讯设备及存储介质
CN113676544A (zh) 一种云存储网络和在实体服务器中实现业务隔离的方法
CN110661731A (zh) 一种报文处理方法及其装置
CN115529275B (zh) 一种报文处理系统及方法
CN109729018B (zh) 基于流量整形的突发尺寸确定方法及相关设备
WO2024145862A1 (zh) 一种数据传输方法及相关装置
CN117176654A (zh) 一种用于减轻网络通讯拥塞的数据处理方法及装置
CN117931391A (zh) 一种基于rmda的无损高效的数据处理方法及网络接口卡
CN117785766A (zh) 基于dpdk+qdma的cpu与外设的数据传输方法
CN117439955A (zh) 一种容器的流量控制方法及相关装置
CN118316870A (zh) 一种网络接口数据包处理方法、网络接口芯片及网络接口系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant