掌桥专利:专业的专利平台
掌桥专利
首页

基于DPDK的在ARM多核架构上实现HTTP转发的方法及存储介质

文献发布时间:2023-06-19 18:37:28


基于DPDK的在ARM多核架构上实现HTTP转发的方法及存储介质

技术领域

本发明涉及计算机网络数据通信技术领域,具体涉及一种基于DPDK的在ARM多核架构上实现HTTP转发的方法及存储介质。

背景技术

ARM是通用的硬件架构,而DPDK提供了简便与通用的数据包处理包方案,这两项技术在网络安全、虚拟化技术、高性能网卡、网络通信设备等多个领域中被广泛应用。HTTP协议报文是一种常见的网络报文,无论是访问网站、打开应用程序或者游戏软件等,HTTP协议交互都是必须的过程。识别HTTP协议报文,不仅有助于快速定位分布式的内容服务器,统计应用的访问流量,形成有效合理的计费;同时,能够识别出非法应用和网站,保护访问者的个人权益以及保证网络安全。但是因为HTTP协议报文不同于IP报文,解析HTTP协议内容和转发HTTP协议报文,会对IP报文的转发产生影响,所以,有必要提供一种方法,基于DPDK和ARM多核架构,既提高HTTP协议报文的处理能力,又保证非HTTP报文的IP路由转发,同时保证网络报文收发不乱序。

发明内容

本发明提出的一种基于DPDK的在ARM多核架构上实现HTTP转发的方法,可至少解决上述技术问题。

为实现上述目的,本发明采用了以下技术方案:

一种基于DPDK的在ARM多核架构上实现HTTP转发的方法,包括以下步骤,

步骤1,在DPDK配置文件中,定义ARM处理器中每个核的角色,其中N个核用作HTTP协议报文转发,定义为HTTP协议通信虚拟化设备;M个核用作IP协议报文转发,定义为IP协议通信虚拟化设备;

步骤2,网络设备在收到网络报文,解析传输层TCP或者UDP源端口号和目的端口号,如果端口号是80,则说明是HTTP协议报文,使用DPDK的接口设置报文的保序点,并将其导入到虚拟化HTTP协议通信设备;

步骤3,虚拟化HTTP协议通信设备,解析IP层获取{源IP,目的IP},查获HTTP协议报文的流量策略表;

如果命中,则按照定义HTTP报文的动作策略处理HTTP协议报文;

如果没有命中,则执行步骤4;

步骤4,在虚拟化HTTP协议通信设备上解析HTTP协议层报文,导出HTTP层的URL和{源IP,目的IP}的信息,生成流量关系表。

根据网络设备的HTTP报文的处理策略,定义URL和{源IP,目的IP}的衍生动作为{监控,路径优化,屏蔽,流控}中的子集;在虚拟化HTTP协议通信设备的处理核上对HTTP协议报文执行动作;

步骤5,报文从HTTP虚拟化通信设备流出后,被导入到缓存队列中,缓存队列的报文缓存容量通过DPDK设置;

通过DPDK的有序调度机制发送,保证HTTP协议报文保序发送到IP协议通信虚拟化设备,实现IP路由转发,并且保证HTTP协议报文和IP协议报文的有序转发。

由此实现,HTTP协议报文和IP协议报文在ARM多核上的高性能处理,同时保证HTTP协议报文的处理不影响IP协议报文转发,并且实现HTTP协议报文和IP协议报文的有序转发。

由上述技术方案可知,本发明的基于DPDK的在ARM多核架构上实现HTTP转发的方法,将ARM多核上虚拟出HTTP协议通信设备和IP协议通信设备,HTTP协议报文被导入到虚拟化HTTP协议通信设备处理后,再导入IP协议通信设备进行路由转发。本发明方法体现在三个方面:1. HTTP协议报文和IP协议报文被隔离在两个虚拟设备上处理,避免了HTTP协议深层次解析对IP协议报文转发性能的影响;2. 虚拟HTTP协议通信设备上存储历史会话的IP与URL的流量关系表,会话内的流量报文可以直接查询流量关系表完成对HTTP协议报文的处理,提升了HTTP协议报文的处理性能;3. 基于DPDK的机制,ARM处理的报文被设置保序点,从虚拟HTTP协议通信设备导出的流量先放置缓存队列中,避免报文乱序在虚拟IP协议通信设备转发中出现保序积压,从而提升ARM整体的转发性能。

总的来说,本发明的基于DPDK的在ARM多核架构上实现HTTP转发的方法,通过在DPDK的初始化中定义ARM核的捆绑关系,虚拟出HTTP协议路由设备,并且在虚拟HTTP路由设备上定义HTTP报文解析和HTTP报文转发两个处理单元。当ARM多核架构设备上接收网路流量时,将HTTP报文导入到虚拟HTTP协议路由设备,非HTTP报文在其它内核上处理,从而因为避免解析HTTP报文协议以及HTTP转发策略表生成时,降低非HTTP报文基于IP路由转发的能力。同时,同时定义保序点与队列缓存机制,保证HTTP和非HTTP报文通过ARM多核处理的顺序不变,有效避免因虚拟HTTP协议路由设备的隔离处理造成的报文乱序,减少网络乱序导致的降速与重传。

本发明的有益效果是:

提供一种基于DPDK的在ARM多核架构上实现HTTP高性能转发的方法。本发明方案中,充分利用ARM多核资源,处理器内部虚拟出HTTP协议通信和IP协议通信的两个虚拟化设备。HTTP协议通信虚拟设备负责对HTTP协议报文解析和完成屏蔽、路径优化、监控和流控的转发处理;IP协议通信虚拟设备负责对IP报文路由转发;两个虚拟设备的报文基于DPDK的有序调度机制,并且通过定义虚拟HTTP协议通信设备导出的缓存队列处理能力,保证ARM处理器整体转发报文的高效且有序。

附图说明

图1为本发明实施例提供的ARM多核上虚拟HTTP通信协议设备和虚拟IP协议通信设备的架构;

图2为本发明实施例提供的流量在虚拟HTTP通信设备和虚拟IP通信设备上处理的流程图;

图3为本发明实施例提供的提升HTTP协议报文处理能力的流量策略表结构模型;

图4为本发明实施例提供的解决HTTP协议报文在ARM上高性能转发保序的方法。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

如图1所示,本实施例所述的基于DPDK的在ARM多核架构上实现HTTP转发的方法,包括以下步骤:

以下步骤,

步骤1,在DPDK配置文件中,定义ARM处理器中每个核的角色,其中N个核用作HTTP协议报文转发,定义为HTTP协议通信虚拟化设备;M个核用作IP协议报文转发,定义为IP协议通信虚拟化设备;

步骤2,网络设备在收到网络报文,解析传输层TCP或者UDP源端口号和目的端口号,如果端口号是80,则说明是HTTP协议报文,使用DPDK的接口设置报文的保序点,并将其导入到虚拟化HTTP协议通信设备;

步骤3,虚拟化HTTP协议通信设备,解析IP层获取{源IP,目的IP},查获HTTP协议报文的流量策略表;

如果命中,则按照定义HTTP报文的动作策略处理HTTP协议报文;

如果没有命中,则执行步骤4;

步骤4,在虚拟化HTTP协议通信设备上解析HTTP协议层报文,导出HTTP层的URL和{源IP,目的IP}的信息,生成流量关系表。

根据网络设备的HTTP报文的处理策略,定义URL和{源IP,目的IP}的衍生动作为{监控,路径优化,屏蔽,流控}中的子集;在虚拟化HTTP协议通信设备的处理核上对HTTP协议报文执行动作;

步骤5,报文从HTTP虚拟化通信设备流出后,被导入到缓存队列中,缓存队列的报文缓存容量通过DPDK设置;

通过DPDK的有序调度机制发送,保证HTTP协议报文保序发送到IP协议通信虚拟化设备,实现IP路由转发,并且保证HTTP协议报文和IP协议报文的有序转发。

由此实现,HTTP协议报文和IP协议报文在ARM多核上的高性能处理,同时保证HTTP协议报文的处理不影响IP协议报文转发,并且实现HTTP协议报文和IP协议报文的有序转发。

以下具体说明:

如图1,所述方法包括:

步骤S101、在DPDK配置文件中,定义Core i

步骤S102、网口收到报文,传入ARM处理器,解析报文。如果TCP或者UDP传输层携带的端口号是80,说明是HTTP协议报文,按照DPDK配置文件的绑定核信息,导入到虚拟HTTP协议通信设备;否则,导入到虚拟IP协议通信设备;

步骤S103、HTTP协议报文在虚拟HTTP协议通信设备上处理后,仍然要导入虚拟IP协议通信设备,与其它报文一起按照定义的保序点有序调度发送。

图2描述了流量在虚拟HTTP通信设备和虚拟IP通信设备上处理的流程,包括:

步骤S201、导入到虚拟HTTP协议通信设备的报文,包括IP网络层的源IP地址和目的IP地址;

步骤S202、以获取源IP和目的IP作为关键字,查询流量策略表,如果IP命中,则获取流量行为;

如果IP没有命中,则导入到DPDK配置的核上解析HTTP协议报文,获取URL和{源IP,目的IP}信息,根据配置的HTTP协议报文的处理策略信息,生成流量处理策略条目,并且获取流量行为;

步骤S203、根据从流量策略表中获取的HTTP协议报文处理行为,根据DPDK配置文件定义的处理核角色,导入到每个处理核上对HTTP协议报文进行监控、路径优化、屏蔽和流量带宽控制;

步骤S204、HTTP协议报文经过虚拟HTTP协议通信设备处理后,带出源IP和目的IP以及路径优化的出接口信息,导入到缓存队列;

步骤S205、虚拟HTTP协议通信设备的发送队列按照导入ARM处理器的保序点定义发送到虚拟IP协议通信设备上;

步骤S206、在虚拟IP协议通信设备上,流量按照目的IP地址进行路由转发;从IP协议通信设备上流出的报文按照进入ARM处理器时设置到保序点,有序调度从网口发出。

图3描述了提升HTTP协议报文处理能力的流量策略表结构模型,包括:

步骤S301、HTTP协议报文的流量策略表结构由三部分组成:

部分1:源IP地址和目的IP地址;

部分2:HTTP协议报文内的URL信息;

部分3:HTTP协议报文的流量转发策略;

步骤S302、导入到虚拟HTTP协议通信设备的报文,提取IP网络层的源IP和目的IP作为关键字,匹配流量策略表中源IP地址和目的IP地址。如果命中,则不再进行HTTP协议报文解析,按照表中的策略动作转发报文;

步骤S303、在S303步骤,执行不成功时,解析HTTP协议报文,提取URL信息,匹配流量策略表中URL。

如果命中,则增加新的{源IP,目的IP}与URL的对应关系,取表中的策略动作转发报文;

如果没有命中,则增加新的URL条目,并记录{源IP,目的IP}与URL的对应关系;获取HTTP协议报文配置策略,生成策略动作表;同时取表中的策略动作转发报文。

图4描述了解决HTTP协议报文在ARM上高性能转发保序的方法,包括:

步骤401、网口导入到ARM处理器的报文设置保序点,为了避免处理流程不同出现的报文乱序,虚拟HTTP协议通信设备处理后的报文先导入到缓存队列中;

步骤402、缓存流的数量在DPDK配置文件中定义。在缓存数据流达到配置值后,按照保序点有序调度导入到虚拟IP协议通信设备;

步骤403、在虚拟IP协议通信设备查询路由获取出接口信息后,流量被二次导入转发队列,转发队列的处理流数量在DPDK配置文件中定义。在数据流达到配置值后,按照保序点有序调度从指定网口发出。

又一方面,本发明还公开一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述任一方法的步骤。

再一方面,本发明还公开一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述任一方法的步骤。

在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一方法的步骤。

可理解的是,本发明实施例提供的系统与本发明实施例提供的方法相对应,相关内容的解释、举例和有益效果可以参考上述方法中的相应部分。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术分类

06120115638634