CN113542156A - 报文传输方法、装置、终端设备以及存储介质 - Google Patents

报文传输方法、装置、终端设备以及存储介质 Download PDF

Info

Publication number
CN113542156A
CN113542156A CN202110847328.7A CN202110847328A CN113542156A CN 113542156 A CN113542156 A CN 113542156A CN 202110847328 A CN202110847328 A CN 202110847328A CN 113542156 A CN113542156 A CN 113542156A
Authority
CN
China
Prior art keywords
target
message
protocol
sending
receiving
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.)
Granted
Application number
CN202110847328.7A
Other languages
English (en)
Other versions
CN113542156B (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.)
China Mobile Communications Group Co Ltd
China Mobile Hangzhou Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Hangzhou Information Technology 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 China Mobile Communications Group Co Ltd, China Mobile Hangzhou Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202110847328.7A priority Critical patent/CN113542156B/zh
Publication of CN113542156A publication Critical patent/CN113542156A/zh
Application granted granted Critical
Publication of CN113542156B publication Critical patent/CN113542156B/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

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

本发明公开一种报文传输方法,所述方法包括以下步骤:在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议;在所述第一目标协议与第一预设协议匹配时,利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列;从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核。本发明还公开一种报文传输装置、终端设备以及计算机可读存储介质。利用本发明的方法,各个报文的接收过程不会相互影响,大大降低了报文的接收时长,从而提高了报文接收的速度,进而达到了提高报文传输速度的技术效果。

Description

报文传输方法、装置、终端设备以及存储介质
技术领域
本发明涉及报文处理领域,特别涉及一种报文传输方法、装置、终端设备以及计算机可读存储介质。
背景技术
在SDN(Software Defined Network,软件定义协议网络)和NFV(NetworkFunctions Virtualization,网络功能虚拟化)技术备受关注的时代,用VPP(矢量包处理引擎)替代LINUX内核原本的转发面,可以大大提高整体转发面性能。
因此,如何将VPP作为转发面和Linux用户态进程FRR(Fast Reroute,快速重路由)作为控制面,进行合适且高性能的对接十分重要。
目前,提供一种报文传输方法,基于VPP官方提供的预设插件,在VPP内创建接口,并在内核中生成对应的接口,VPP和内核通过接口完成两者间的报文的传输。
但是,采用现有的报文传输方法,报文的接收速度较慢,导致报文的传输速率较低。
发明内容
本发明的主要目的是提供一种报文传输方法、装置、终端设备以及计算机可读存储介质,旨在解决现有技术中采用现有的报文传输方法,报文的接收速度较慢,导致报文的传输速率较低的技术问题。
为实现上述目的,本发明提出一种报文传输方法,所述方法包括以下步骤:
在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议;
在所述第一目标协议与第一预设协议匹配时,利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列;
从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核。
可选的,所述在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议的步骤之后,所述方法还包括:
在所述第一目标协议与第二预设协议匹配时,利用所述矢量包处理引擎中第一接口的第一索引,查找所述目标内核的第二接口的第一文件描述符;
利用所述矢量包处理引擎中所述第一接口的发送节点,基于所述第一文件描述符,将所述目标接收报文通过所述第二接口发送至所述目标内核。
可选的,所述将所述目标接收报文发送至目标内核的步骤之后,所述方法还包括:
在所述目标内核接收到目标发送报文时,确定所述目标发送报文是否满足预设条件;
在所述目标发送报文不满足所述预设条件时,获取所述目标发送报文的第二目标协议;
在所述第二目标协议与所述第一预设协议匹配时,将所述目标发送报文添加至所述存储器的预设发送队列;
从所述预设发送队列取出所述目标发送报文,并将所述目标发送报文发送至所述矢量包处理引擎;
通过所述矢量包处理引擎发送所述目标发送报文。
可选的,所述在所述目标发送报文不满足所述预设条件时,获取所述目标发送报文的第二目标协议的步骤之后,所述方法还包括:
在所述第二目标协议与所述第二预设协议匹配时,利用所述目标内核的第三接口的第二文件描述符,查找第二索引;
确定与所述第二索引对应的第四接口;
通过所述矢量包处理引擎,利用所述第四接口的接收节点,接收所述目标内核通过所述第三接口发送的所述目标发送报文;
通过所述矢量包处理引擎发送所述目标发送报文。
可选的,所述在所述目标内核获取到目标发送报文时,确定所述目标发送报文是否满足预设条件的步骤之后,所述方法还包括:
在所述目标发送报文满足所述预设条件时,将所述目标发送报文发送至所述矢量包管理引擎;
利用所述矢量包管理引擎中的接口函数,进行所述矢量包管理引擎的信息学习。
可选的,所述在所述第一目标协议与第二预设协议匹配时,利用所述矢量包处理引擎中第一接口的第一索引,查找所述目标内核的第二接口的第一文件描述符的步骤之前,所述方法还包括:
在所述矢量包管理引擎中创建所述第一接口和所述第四接口;
在所述目标内核中创建所述第二接口和所述第三接口;
建立所述第一接口的第一索引与所述第二接口的第一文件描述符的映射关系,并注册所述发送节点;
建立所述第三接口的第二文件描述符与所述第四接口的第二索引的映射关系,并注册所述接收节点。
可选的,所述存储器具有共享内存区,所述预设接收队列和所述预设发送队列存储于所述共享内存区;
所述第一预设协议包括基于二层隧道协议和互联网安全协议;
所述第二预设协议包括路由协议。
此外,为实现上述目的,本发明还提出了一种报文传输装置,所述装置包括:
接收模块,用于在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议;
添加模块,用于在所述第一目标协议与第一预设协议匹配时,利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列;
发送模块,用于从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核。
此外,为实现上述目的,本发明还提出了一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行报文传输程序,所述报文传输程序被所述处理器执行时实现如上述任一项所述的报文传输方法的步骤。
此外,为实现上述目的,本发明还提出了一种计算机可读存储介质,所述计算机可读存储介质上存储有报文传输程序,所述报文传输程序被处理器执行时实现如上述任一项所述的报文传输方法的步骤。
本发明技术方案提出了一种报文传输方法,所述方法包括以下步骤:在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议;在所述第一目标协议与第一预设协议匹配时,利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列;从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核。
现有的方法中,全部的报文只在一个线程进行传输:通过VPP的接口和内核的接口进行报文接收,这使得各个报文的接收过程会相互影响,报文的接收时长较大,导致报文的传输速度低。而本发明中,当目标接收报文的第一目标协议与第一预设协议匹配时,不再利用VPP的接口和内核的接口进行报文接收,而是利用新的线程进行报文接收:利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列,然后从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核;这使得各个报文的接收过程不会相互影响,大大降低了报文的接收时长,从而提高了报文接收的速度,进而达到了提高报文传输速度的技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图;
图2为本发明报文传输方法第一实施例的流程示意图;
图3为本发明报文传输方法的框架结构图;
图4为本发明报文传输装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图。
通常,终端设备包括:至少一个处理器301、存储器302以及存储在所述存储器上并可在所述处理器上运行的报文传输程序,所述报文传输程序配置为实现如前所述的报文传输方法的步骤。
处理器301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。处理器301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关报文传输方法操作,使得报文传输方法模型可以自主训练学习,提高效率和准确度。
存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器301所执行以实现本申请中方法实施例提供的报文传输方法。
在一些实施例中,终端还可选包括有:通信接口303和至少一个外围设备。处理器301、存储器302和通信接口303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与通信接口303相连。具体地,外围设备包括:射频电路304、显示屏305和电源306中的至少一种。
通信接口303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器301和存储器302。在一些实施例中,处理器301、存储器302和通信接口303被集成在同一芯片或电路板上;在一些其他实施例中,处理器301、存储器302和通信接口303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路304用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路304包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路304还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏305用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏305是触摸显示屏时,显示屏305还具有采集在显示屏305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器301进行处理。此时,显示屏305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏305可以为一个,电子设备的前面板;在另一些实施例中,显示屏305可以为至少两个,分别设置在电子设备的不同表面或呈折叠设计;在再一些实施例中,显示屏305可以是柔性显示屏,设置在电子设备的弯曲表面上或折叠面上。甚至,显示屏305还可以设置成非矩形的不规则图形,也即异形屏。显示屏305可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
电源306用于为电子设备中的各个组件进行供电。电源306可以是交流电、直流电、一次性电池或可充电电池。当电源306包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
本领域技术人员可以理解,图1中示出的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有报文传输程序,所述报文传输程序被处理器执行时实现如上文所述的报文传输方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个终端设备上执行,或者在位于一个地点的多个终端设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个终端设备备上执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
基于上述硬件结构,提出本发明报文传输方法的实施例。
参照图2,图2为本发明报文传输方法第一实施例的流程示意图,所述方法用于终端设备,所述方法包括以下步骤:
步骤S11:在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议。
需要说明的是,本发明的执行主体是终端设备,终端设备的结构参照上文描述,此处不再赘述。终端设备安装有报文传输程序,终端设备执行报文传输程序时,实现本发明的报文传输方法的步骤。
VPP:全称Vector Packet Processing,矢量包处理引擎。是Cisco2002年开发的商用代码。2016年2月11号,Linux基金会创建FD.io项目。Cisco将VPP代码的开源版本号加入该项目。VPP执行于用户空间,支持多种收包方式,经常使用的是DPDK。VPP主要有两个主要功能:框架可扩展,和成熟的交换/路由功能。
共享内存:共享内存指(shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是Unix下的多进程之间的通信方法,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。
L2TP(Layer 2Tunneling Protocol,二层隧道协议):通过在公共网络(如Internet)上建立点到点的L2TP隧道,将PPP(Point-to-Point Protocol,点对点协议)数据帧封装后通过L2TP隧道传输,使得远端用户(如企业驻外机构和出差人员)利用PPP接入公共网络后,能够通过L2TP隧道与企业内部网络通信,访问企业内部网络资源,从而为远端用户接入私有的企业网络提供了一种安全、经济且有效的方式。
Ipsec:互联网安全协议(:Internet Protocol Security,缩写为IPsec),是一个协议簇,通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族(一些相互关联的协议的集合)。IPsec主要由以下协议组成:一、认证头(AH),为IP数据报提供无连接数据完整性、消息认证以及防重放攻击保护;二、封装安全载荷(ESP),提供机密性、数据源认证、无连接完整性、防重放和有限的传输流(traffic-flow)机密性;三、安全关联(SA),提供算法和数据包,提供AH、ESP操作所需的参数。四、密钥协议(IKE),提供对称密码的钥匙的生存和交换。
BGP是自治系统间的路由协议,BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策。其中本申请的路由协议即为BGP路由协议。
在本发明中,利用矢量包处理引擎接收目标接收报文,目标报文即为利用利用矢量包处理引擎接收到的报文,目标接收报文通常通过DPDK(Intel Data PlaneDevelopment Kit)管道,从终端设备的物理接口传输至矢量包处理引擎,以使矢量包处理引擎接收目标接收报文。
具体的,目标接收报文通常是数据包的形式,矢量包处理引擎接收到目标接收报文时,需要对目标接收报文进行数据包解析,以获得解析后的数据包,并通过解析后的数据包,获得目标接收报文的协议,目标接收报文的协议即为所述第一目标协议。然后需要判断目标接收报文的第一目标协议与第一预设协议和第二预设协议是否匹配。
其中,所述第一预设协议包括基于二层隧道协议(L2TP协议)和互联网安全协议(Ipsec协议);所述第二预设协议包括路由协议(BGP路由协议)。
步骤S12:在所述第一目标协议与第一预设协议匹配时,利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列。
步骤S13:从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核。
在所述第一目标协议与第一预设协议匹配时,不需要按照现有的方式(现有方式:基于VPP官方提供的预设插件,在VPP内创建接口,并在内核中生成对应的接口,VPP和内核通过接口完成两者间的报文的传输)进行目标接收报文的接收,而是通过新的线程:利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列,然后终端设备再从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核。其中目标内核即为终端设备的内核。
可见,在本发明的技术方案中,当目标接收报文的第一目标协议与第一预设协议匹配时,利用新的线程进行报文接收,新的线程与原线程(原有的报文接收方法)可并行运行,使得协议与第一预设协议匹配的报文和协议与其他报文在两个线程并行运行,报文的接收不再相互影响,大大降低了报文的接收时长,从而提高了报文接收的速度,进而达到了提高报文传输速度的技术效果。
较优的选择,存储器具有共享内存区,预设接收队列存储于共享内存区的。通过共享内存的方式,进一步提高了报文的接收效率。
进一步的,所述将所述目标接收报文发送至目标内核的步骤之后,所述方法还包括:在所述目标内核接收到目标发送报文时,确定所述目标发送报文是否满足预设条件;在所述目标发送报文不满足所述预设条件时,获取所述目标发送报文的第二目标协议;在所述第二目标协议与所述第一预设协议匹配时,将所述目标发送报文添加至所述存储器的预设发送队列;从所述预设发送队列取出所述目标发送报文,并将所述目标发送报文发送至所述矢量包处理引擎;通过所述矢量包处理引擎发送所述目标发送报文。
需要说明的是,预设条件包括所述目标发送报文为路由信息和/或接口信息,不满足预设条件的目标发送报文需要发送出去。通常,目标发送报文也是数据包的形式,目标内核接收到目标发送报文时,需要对目标发送报文进行数据包解析,以获得解析后的数据包,并通过解析后的数据包,获得目标发送报文的协议,目标发送报文的协议即为所述第二目标协议。
同理的,在所述第二目标协议与所述第一预设协议匹配时,将所述目标发送报文添加至所述存储器的预设发送队列,然后,终端设备从所述预设发送队列取出所述目标发送报文,并将所述目标发送报文发送至所述矢量包处理引擎;通过所述矢量包处理引擎发送所述目标发送报文。该报文发送线程与现有的报文发送线程是并行线程,使得协议与第一预设协议匹配的报文和其他报文在两个线程并行运行,报文的发送不再相互影响,大大降低了报文的发送时长,从而提高了报文发送的速度,进而达到了提高报文传输速度的技术效果。
较优的选择,预设发送队列也是存储于共享内存区的。通过共享内存的方式,进一步提高了报文的发送效率。
进一步的,所述在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议的步骤之后,所述方法还包括:在所述第一目标协议与第二预设协议匹配时,利用所述矢量包处理引擎中第一接口的第一索引,查找所述目标内核的第二接口的第一文件描述符;利用所述矢量包处理引擎中所述第一接口的发送节点,基于所述第一文件描述符,将所述目标接收报文通过所述第二接口发送至所述目标内核。
需要说明的是,在目标接收报文的第一目标协议与第二预设协议匹配时,则按照上文方式继续进行报文的接收,对于协议与第二预设协议匹配的报文和协议与第一预设协议匹配的报文的接收,分为两个线程并行运行,从而提高了报文的接收效率。
进一步的,所述在所述目标发送报文不满足所述预设条件时,获取所述目标发送报文的第二目标协议的步骤之后,所述方法还包括:在所述第二目标协议与所述第二预设协议匹配时,利用所述目标内核的第三接口的第二文件描述符,查找第二索引;确定与所述第二索引对应的第四接口;通过所述矢量包处理引擎,利用所述第四接口的接收节点,接收所述目标内核通过所述第三接口发送的所述目标发送报文;通过所述矢量包处理引擎发送所述目标发送报文。
需要说明的是,在目标发送报文的第一目标协议与第二预设协议匹配时,则按照上文方式继续进行报文的发送,对于协议与第二预设协议匹配的报文和协议与第一预设协议匹配的报文分的发送,为两个线程并行运行,从而提高了报文的发送效率。
另外,在进行报文接收和发送之前,需要建立矢量包处理引擎与目标内核的关系,建立方式如下:在所述矢量包管理引擎中创建所述第一接口和所述第四接口;在所述目标内核中创建所述第二接口和所述第三接口;建立所述第一接口的第一索引与所述第二接口的第一文件描述符的映射关系,并注册所述发送节点;建立所述第三接口的第二文件描述符与所述第四接口的第二索引的映射关系,并注册所述接收节点。
需要说明的是,在目标接收报文的接收阶段,利用所述矢量包处理引擎中接口(第一接口)的索引(第一索引)。查找内核的文件描述符(第一文件描述符),然后利用找到的文件描述符(第一文件描述符)确定内核对应的接口(第二接口),然后利用矢量包处理引擎中该接口(第一接口)的发送节点和内核对应的接口(第二接口),实现将报文发送至内核的过程。
在目标发送报文的发送阶段,利用内核的接口(第三接口)的文件描述符(第二文件描述符),查找矢量包处理引擎对应的索引(第二索引),利用该对应的索引(第二索引)找到对应的矢量包处理引擎的接口(第四接口),然后在通过矢量包处理引擎的接口(第四接口)的接收节点,实现内核通过接口(第三接口)发送的目标发送报文的接收,最后,矢量包处理引擎将接收到的目标发送报文发送出去。
进一步的,所述在所述目标内核获取到目标发送报文时,确定所述目标发送报文是否满足预设条件的步骤之后,所述方法还包括:在所述目标发送报文满足所述预设条件时,将所述目标发送报文发送至所述矢量包管理引擎;利用所述矢量包管理引擎中的接口函数,进行所述矢量包管理引擎的信息学习。
对于满足预设条件的目标发送报文不需要发送出去,只需要将其发送至矢量包管理引擎,利用矢量包管理引擎中的接口函数进行信息学习即可。其中接口函数可以是矢量包处理引擎中的任何函数,本法发明不做限制。
参照图3,图3为本发明报文传输方法的框架结构图。其中,Hoststack为VPP内置的工具,用于实现将目标接收报文,通过VPP传输至内核。路由同步即为满足预设条件的目标发送报文,调用Rtnl,由内核下发至VPP。接口映射即为VPP内部和内核内部具有对应关系的接口。节点包括VPP中各接口的发送节点和接收节点。Socket为内核接收目标发送报文和发送目标接收报文的传输接口。预加载可以是指报文的预处理过程,例如报文的数据包解析等。
目标协议A为与第一预设协议匹配的目标协议(包括目标发送报文的第二目标协议和目标接收报文的第一目标协议),目标协议A对应的报文的接收和报文的发送均是通过VPP、共享内存和内核交互实现的。
目标协议B为与第二预设协议匹配的目标协议(包括目标发送报文的第二目标协议和目标接收报文的第一目标协议),目标协议B对应的报文接收和报文的发送均是通过VPP与内核的接口交互实现。
本发明技术方案提出了一种报文传输方法,所述方法包括以下步骤:在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议;在所述第一目标协议与第一预设协议匹配时,利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列;从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核。
现有的方法中,全部的报文只在一个线程进行传输:通过VPP的接口和内核的接口进行报文接收,这使得各个报文的接收过程会相互影响,报文的接收时长较大,导致报文的传输速度低。而本发明中,当目标接收报文的第一目标协议与第一预设协议匹配时,不再利用VPP的接口和内核的接口进行报文接收,而是利用新的线程进行报文接收:利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列,然后从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核;这使得各个报文的接收过程不会相互影响,大大降低了报文的接收时长,从而提高了报文接收的速度,进而达到了提高报文传输速度的技术效果。
另外,为了避免接收报文和发送报文的过程被阻塞,接收过程和发送过程进行分离,即通过在共享内存区中设置两种队列:预设接收队列和预设发送队列,用于分别存放发送的目标发送报文和接收的目标接收报文。通过分别设置预设接收队列和预设发送队列,来缓解相互性能的影响,提高了报文收发的效率和稳定性。
参照图4,图4为本发明报文传输装置第一实施例的结构框图,所述装置用于终端设备,基于与前述实施例相同的发明构思,所述装置包括:
接收模块10,用于在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议;
添加模块20,用于在所述第一目标协议与第一预设协议匹配时,利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列;
发送模块30,用于从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核。
需要说明的是,由于本实施例的装置所执行的步骤与前述方法实施例的步骤相同,其具体的实施方式以及可以达到的技术效果都可参照前述实施例,这里不再赘述。
以上所述仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (10)

1.一种报文传输方法,其特征在于,所述方法包括以下步骤:
在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议;
在所述第一目标协议与第一预设协议匹配时,利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列;
从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核。
2.如权利要求1所述的方法,其特征在于,所述在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议的步骤之后,所述方法还包括:
在所述第一目标协议与第二预设协议匹配时,利用所述矢量包处理引擎中第一接口的第一索引,查找所述目标内核的第二接口的第一文件描述符;
利用所述矢量包处理引擎中所述第一接口的发送节点,基于所述第一文件描述符,将所述目标接收报文通过所述第二接口发送至所述目标内核。
3.如权利要求2所述的方法,其特征在于,所述将所述目标接收报文发送至目标内核的步骤之后,所述方法还包括:
在所述目标内核接收到目标发送报文时,确定所述目标发送报文是否满足预设条件;
在所述目标发送报文不满足所述预设条件时,获取所述目标发送报文的第二目标协议;
在所述第二目标协议与所述第一预设协议匹配时,将所述目标发送报文添加至所述存储器的预设发送队列;
从所述预设发送队列取出所述目标发送报文,并将所述目标发送报文发送至所述矢量包处理引擎;
通过所述矢量包处理引擎发送所述目标发送报文。
4.如权利要求3所述的方法,其特征在于,所述在所述目标发送报文不满足所述预设条件时,获取所述目标发送报文的第二目标协议的步骤之后,所述方法还包括:
在所述第二目标协议与所述第二预设协议匹配时,利用所述目标内核的第三接口的第二文件描述符,查找第二索引;
确定与所述第二索引对应的第四接口;
通过所述矢量包处理引擎,利用所述第四接口的接收节点,接收所述目标内核通过所述第三接口发送的所述目标发送报文;
通过所述矢量包处理引擎发送所述目标发送报文。
5.如权利要求4所述的方法,其特征在于,所述在所述目标内核获取到目标发送报文时,确定所述目标发送报文是否满足预设条件的步骤之后,所述方法还包括:
在所述目标发送报文满足所述预设条件时,将所述目标发送报文发送至所述矢量包管理引擎;
利用所述矢量包管理引擎中的接口函数,进行所述矢量包管理引擎的信息学习。
6.如权利要求5所述的方法,其特征在于,所述在所述第一目标协议与第二预设协议匹配时,利用所述矢量包处理引擎中第一接口的第一索引,查找所述目标内核的第二接口的第一文件描述符的步骤之前,所述方法还包括:
在所述矢量包管理引擎中创建所述第一接口和所述第四接口;
在所述目标内核中创建所述第二接口和所述第三接口;
建立所述第一接口的第一索引与所述第二接口的第一文件描述符的映射关系,并注册所述发送节点;
建立所述第三接口的第二文件描述符与所述第四接口的第二索引的映射关系,并注册所述接收节点。
7.如权利要求6所述的方法,其特征在于,所述存储器具有共享内存区,所述预设接收队列和所述预设发送队列存储于所述共享内存区;
所述第一预设协议包括基于二层隧道协议和互联网安全协议;
所述第二预设协议包括路由协议。
8.一种报文传输装置,其特征在于,所述装置包括:
接收模块,用于在利用矢量包处理引擎接收到目标接收报文时,获取所述目标接收报文的第一目标协议;
添加模块,用于在所述第一目标协议与第一预设协议匹配时,利用所述矢量包处理引擎将所述目标接收报文添加至存储器的预设接收队列;
发送模块,用于从所述预设接收队列中读取所述目标接收报文,并将所述目标接收报文发送至目标内核。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行报文传输程序,所述报文传输程序被所述处理器执行时实现如权利要求1至7中任一项所述的报文传输方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有报文传输程序,所述报文传输程序被处理器执行时实现如权利要求1至7中任一项所述的报文传输方法的步骤。
CN202110847328.7A 2021-07-26 2021-07-26 报文传输方法、装置、终端设备以及存储介质 Active CN113542156B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110847328.7A CN113542156B (zh) 2021-07-26 2021-07-26 报文传输方法、装置、终端设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110847328.7A CN113542156B (zh) 2021-07-26 2021-07-26 报文传输方法、装置、终端设备以及存储介质

Publications (2)

Publication Number Publication Date
CN113542156A true CN113542156A (zh) 2021-10-22
CN113542156B CN113542156B (zh) 2024-03-12

Family

ID=78120966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110847328.7A Active CN113542156B (zh) 2021-07-26 2021-07-26 报文传输方法、装置、终端设备以及存储介质

Country Status (1)

Country Link
CN (1) CN113542156B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109743244A (zh) * 2019-03-21 2019-05-10 山东华辰泰尔信息科技股份有限公司 一种基于sdn与nfv技术实现高速互联互通的系统和方法
US20190280991A1 (en) * 2019-05-16 2019-09-12 Intel Corporation Quality of service traffic management in high-speed packet processing systems
CN111314429A (zh) * 2020-01-19 2020-06-19 上海交通大学 一种网络请求处理系统和方法
CN111901244A (zh) * 2020-07-10 2020-11-06 苏州浪潮智能科技有限公司 一种网络报文转发架构
CN112333099A (zh) * 2021-01-04 2021-02-05 北京太一星晨信息技术有限公司 一种本地多路径报文的选路方法、装置和存储介质
CN112905305A (zh) * 2021-03-03 2021-06-04 国网电力科学研究院有限公司 基于vpp的集群式虚拟化数据转发方法、装置及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109743244A (zh) * 2019-03-21 2019-05-10 山东华辰泰尔信息科技股份有限公司 一种基于sdn与nfv技术实现高速互联互通的系统和方法
US20190280991A1 (en) * 2019-05-16 2019-09-12 Intel Corporation Quality of service traffic management in high-speed packet processing systems
CN111314429A (zh) * 2020-01-19 2020-06-19 上海交通大学 一种网络请求处理系统和方法
CN111901244A (zh) * 2020-07-10 2020-11-06 苏州浪潮智能科技有限公司 一种网络报文转发架构
CN112333099A (zh) * 2021-01-04 2021-02-05 北京太一星晨信息技术有限公司 一种本地多路径报文的选路方法、装置和存储介质
CN112905305A (zh) * 2021-03-03 2021-06-04 国网电力科学研究院有限公司 基于vpp的集群式虚拟化数据转发方法、装置及系统

Also Published As

Publication number Publication date
CN113542156B (zh) 2024-03-12

Similar Documents

Publication Publication Date Title
US20210297410A1 (en) Mec platform deployment method and apparatus
US9875359B2 (en) Security management for rack server system
US20190236300A1 (en) Service processing method and apparatus, data sharing system, and storage medium
US11106776B2 (en) Digital certificate application
WO2018014723A1 (zh) 密钥管理方法、装置、设备及系统
EP2697949B1 (en) Method and apparatus for providing secret delegation
US9098703B2 (en) SOC with security function and device and scanning method using the same
US11431681B2 (en) Application aware TCP performance tuning on hardware accelerated TCP proxy services
CN104580167B (zh) 一种传输数据的方法、装置和系统
CN110414244A (zh) 加密卡、电子设备及加密服务方法
CN109088799A (zh) 一种客户端接入方法、装置、终端以及存储介质
CN112073421A (zh) 通信处理方法、装置、终端及存储介质
CN112351097A (zh) 设备控制方法、装置、发送端以及存储介质
CN113014452A (zh) 网络流量测试方法、装置、测试端以及存储介质
CN115589383A (zh) 基于eBPF的虚拟机数据传输方法、装置、设备及存储介质
CN112242972B (zh) 网络请求处理方法、装置、存储介质及终端
CN116647425B (zh) 一种OVN架构的IPSec-VPN实现方法、装置、电子设备和存储介质
CN113382014B (zh) 协商处理方法、装置、终端设备以及存储介质
CN113542156B (zh) 报文传输方法、装置、终端设备以及存储介质
CN113542431B (zh) 信息处理方法、装置、电子设备及存储介质
CN111800340B (zh) 数据包转发方法和装置
US20230388791A1 (en) Power saving method for lower power devices, electronic device and computer readable storage medium
CN113691523A (zh) 面向实时网络流量密码应用评估方法和终端设备
CN113703880B (zh) 应用程序的启动方法、装置、电子设备及可读存储介质
WO2023273464A1 (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