CN116723162B - 一种网络首包处理方法、系统、装置、介质及异构设备 - Google Patents

一种网络首包处理方法、系统、装置、介质及异构设备 Download PDF

Info

Publication number
CN116723162B
CN116723162B CN202311001080.8A CN202311001080A CN116723162B CN 116723162 B CN116723162 B CN 116723162B CN 202311001080 A CN202311001080 A CN 202311001080A CN 116723162 B CN116723162 B CN 116723162B
Authority
CN
China
Prior art keywords
packet
hardware
network
queue
matching
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
CN202311001080.8A
Other languages
English (en)
Other versions
CN116723162A (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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202311001080.8A priority Critical patent/CN116723162B/zh
Publication of CN116723162A publication Critical patent/CN116723162A/zh
Application granted granted Critical
Publication of CN116723162B publication Critical patent/CN116723162B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3045Virtual queuing

Landscapes

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

Abstract

本申请公开了一种网络首包处理方法、系统、装置、介质及异构设备,涉及数据处理领域。用于解决硬件卸载时存在的网络时延增加、资源消耗过多的问题。应用于主机端,主机端中设有预设虚拟队列,在接收到硬件端发送的首包时,对首包进行匹配;将匹配后的首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包。可见,本申请通过将首包直接写入预设虚拟队列,虚拟机或容器可以直接从队列中读取首包,首包不需要经过多次硬件的搬运才能到达最终的虚拟机或容器,减少了网络时延,提高网络传输效率,减轻了硬件端设计难度,减少了硬件本身资源以及硬件和主机接口资源的消耗,提高了网络性能。

Description

一种网络首包处理方法、系统、装置、介质及异构设备
技术领域
本申请涉及数据处理领域,特别涉及一种网络首包处理方法、系统、装置、介质及异构设备。
背景技术
随着新兴高科技产业的快速发展,如云计算、大数据和人工智能,数据中心网络接口速率不断提升,而网络带宽增长速度远超过中央处理器的算力增长速度,导致基于中央处理器的云化基础设施在网络数据转发阶段出现瓶颈。虚拟网络交换软件(如OVS(OpenvSwitch,虚拟交换机))在处理网络流量时消耗越来越多的中央处理器算力。因此,如何高效地卸载虚拟交换功能和网络负载成为人们研究的热点。
目前存在的一种解决方法是利用硬件卸载,将OVS的转发流程尽可能多地卸载到硬件实现流量的快速转发。然而,目前的硬件卸载流程中存在首包转发的问题,具体地,当硬件收到的数据包与硬件中的流表匹配规则未匹配成功时,将此数据包重新发送至OVS中,在OVS中进行匹配并成功后,由于常规处理方法无法直接将数据包转发给目的端口,还需要将数据包回发到硬件再进行转发,导致网络首包需要经过多次搬运才能到达最终的虚拟机或容器,导致网络时延增加、资源消耗过多。
发明内容
本申请的目的是提供一种网络首包处理方法、系统、装置、介质及异构设备,通过将首包直接写入预设虚拟队列,虚拟机可以直接从队列中读取首包,首包不需要经过硬件的多次搬运才能到达最终的虚拟机,可以减少网络时延,提高网络传输效率。同时,由于减少了网络转发次数和硬件与虚拟机之间的数据回发,减轻了硬件端设计难度,减少了硬件本身资源以及硬件和主机接口资源的消耗,提高了网络性能。
为解决上述技术问题,本申请提供了一种网络首包处理方法,应用于主机端,所述主机端中设有预设虚拟队列,所述方法包括:
在接收到硬件端发送的首包时,对所述首包进行匹配;所述首包为所述硬件端中无法与第一预设流表匹配的数据包;
将匹配后的首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包。
在一个实施例中,所述主机端创建预设虚拟队列的过程包括:
使用所述主机端的内存创建所述预设虚拟队列。
在一个实施例中,所述主机端还设有与所述硬件端的硬件队列对应的硬件网络队列时,使用所述主机端的内存创建所述预设虚拟队列,包括:
使用所述主机端的内存、并根据所述硬件网络队列的队列参数创建所述预设虚拟队列,所述队列参数至少包括队列长度、存储结构和操作方式。
在一个实施例中,在接收到硬件端发送的首包时,对所述首包进行匹配,包括:
在内核态工作模式下,在接收到硬件端发送的首包时,对所述首包进行匹配;
若对所述首包匹配成功,则将所述首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包。
在一个实施例中,还包括:
在所述内核态工作模式下,若对所述首包匹配失败时,则调整为用户态工作模式,以在所述用户态工作模式下对所述首包进行匹配;
若在所述用户态工作模式下对所述首包匹配成功,则将所述首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包。
在一个实施例中,还包括:
在所述用户态工作模式下对所述首包匹配失败时,将所述首包丢弃。
在一个实施例中,在内核态工作模式下,在接收到硬件端发送的首包时,对所述首包进行匹配,包括:
在内核态工作模式下,在接收到硬件端发送的首包时,将所述首包与第二预设流表进行匹配。
在一个实施例中,在所述用户态工作模式下对所述首包进行匹配,包括:
在所述用户态工作模式下对所述首包与第三预设流表进行匹配。
在一个实施例中,接收到硬件端发送的首包,包括:接收所述硬件端通过物理功能的管理通道发送的所述首包。
在一个实施例中,所述硬件端发送首包的过程,包括:
在所述硬件端接收到数据包及所述第一预设流表时,将所述数据包与所述第一预设流表进行匹配;
若所述数据包与所述第一预设流表匹配失败,则所述硬件端判定所述数据包为所述首包,并将所述首包发送至所述主机端。
在一个实施例中,还包括:
若所述数据包与所述第一预设流表匹配成功,则所述硬件端根据匹配成功的规则对所述数据包进行处理。
在一个实施例中,所述主机端还设有硬件网络队列,所述方法还包括:
获取所述硬件端的硬件队列信息,根据所述硬件队列信息建立所述硬件队列与所述硬件网络队列的映射关系,以使所述硬件端基于所述映射关系将所述硬件队列中的数据包写入至所述主机端的硬件网络队列中。
在一个实施例中,在所述首包的个数为多个时,将匹配后的首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包,包括:
确定与所述匹配后的各个首包对应的优先级信息;
根据所述优先级信息依次将所述首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包。
在一个实施例中,将匹配后的首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包之前,还包括:
判断所述主机端对所述首包匹配是否成功;
若匹配成功,则将匹配成功后的首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包。
在一个实施例中,若所述主机端对所述首包匹配失败,还包括:
生成提示信息,以提示维护人员。
在一个实施例中,生成提示信息,以提示维护人员,包括:
生成首包丢弃日志,以提示所述维护人员。
在一个实施例中,在接收到硬件端发送的首包时,对所述首包进行匹配之后,还包括:
将与所述首包对应的目标匹配规则下发至所述硬件端,以便所述硬件端基于所述目标匹配规则对所述首包进行处理。
在一个实施例中,在判定所述主机端对所述首包匹配成功时,将与所述首包对应的目标匹配规则下发至所述硬件端,以便所述硬件端基于所述目标匹配规则对所述首包进行处理,包括:
将与所述首包匹配成功对应的目标流表下发至所述硬件端,以便所述硬件端基于所述目标流表对所述首包进行处理。
在一个实施例中,在判定所述主机端对所述首包匹配失败时,将与所述首包对应的目标匹配规则下发至所述硬件端,以便所述硬件端基于所述目标匹配规则对所述首包进行处理,包括:
将与所述首包对应的目标匹配规则确定为丢弃规则,并将所述丢弃规则下发至所述硬件端,以便所述硬件端对所述首包进行丢弃处理。
在一个实施例中,将与所述首包匹配成功对应的目标流表下发至所述硬件端,以便所述硬件端基于所述目标流表对所述首包进行处理之后,还包括:
根据所述目标流表生成目标反馈规则,并将所述目标反馈规则下发至所述硬件端,以便所述硬件端基于所述目标反馈规则对所述首包进行处理;
所述目标反馈规则为指示所述主机端将所述首包发送至其它主机端或者其它任意端口的规则。
为解决上述技术问题,本申请还提供了一种网络首包处理系统,应用于主机端,所述主机端中设有预设虚拟队列,所述系统包括:
首包匹配单元,用于在接收到硬件端发送的首包时,将所述首包转发至用户态,以便所述用户态对所述首包进行匹配;所述首包为所述硬件端中无法与流表匹配规则匹配的数据包;
首包写入单元,用于接收所述用户态发送的匹配后的首包,并将所述首包写入所述预设虚拟队列,以便所述用户态读取所述预设虚拟队列中的首包。
为解决上述技术问题,本申请还提供了一种网络首包处理装置,包括:
存储器,用于存储计算机程序;
处理器,用于在存储计算机程序时,实现如上述所述的网络首包处理方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的网络首包处理方法的步骤。
为解决上述技术问题,本申请还提供了一种异构设备,包括如上述所述的网络首包处理装置。
本申请提供了一种网络首包处理方法,涉及数据处理领域。用于解决硬件卸载时存在的网络时延增加、资源消耗过多的问题。应用于主机端,主机端中设有预设虚拟队列,方法包括:在接收到硬件端发送的首包时,对首包进行匹配;首包为硬件端中无法与第一预设流表匹配的数据包;将匹配后的首包写入预设虚拟队列,以便主机端中的虚拟机读取预设虚拟队列中的首包。可见,本申请中通过将首包直接写入预设虚拟队列,虚拟机可以直接从队列中读取首包,首包不需要经过硬件的多次搬运才能到达最终的虚拟机,可以减少网络时延,提高网络传输效率。同时,由于减少了网络转发次数和硬件与虚拟机之间的数据回发,减轻了硬件端设计难度,减少了硬件本身资源以及硬件和主机接口资源的消耗,提高了网络性能。
本申请还提供了一种网络首包处理系统、装置、介质及异构设备,与上述描述的网络首包处理方法具有相同的有益效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种网络框图;
图2为本申请提供的一种网络首包处理方法的流程示意图;
图3为本申请提供的一种首包处理的框图;
图4为本申请提供的一种具体实现的流程图;
图5为本申请提供的一种网络首包处理系统的结构框图;
图6为本申请提供的一种网络首包处理装置的结构框图;
图7为本申请提供的一种计算机可读存储介质的结构框图。
具体实施方式
本申请的核心是提供一种网络首包处理方法、系统、装置、介质及异构设备,通过将首包直接写入预设虚拟队列,虚拟机可以直接从队列中读取首包,首包不需要经过多次搬运才能到达最终的虚拟机,可以减少网络时延,提高网络传输效率。同时,由于减少了网络转发次数和硬件与虚拟机之间的数据回发,也减少了网络资源的消耗,提高了网络性能。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参照图1,图1为本申请提供的一种网络框图,首先,图1中的OVS-offload是指将OVS交换机的网络流量处理功能转移到网络适配器硬件中的一种技术。它可以利用现代网络适配器中集成的高性能硬件来加速网络流量的处理,提高虚拟交换机的性能和效率。OVS-offload可以通过将虚拟交换机的数据平面功能委托给网络适配器硬件来实现,这样就可以在虚拟交换机和物理网络之间实现高速的数据传输和交换。Tc-flow是指Linux系统中的Traffic Control(流量控制)框架所定义的流规则。在虚拟交换机系统中,Tc-flow用于控制和管理网络流量的转发和策略。它可以根据不同的流规则将数据包分配给不同的流,实现对数据包的分类、过滤和优化。通过使用Tc-flow,可以实现对网络流量的限速、排队、负载均衡等操作,进而优化网络性能和确保服务质量。在虚拟交换机系统中,VDPA-bus(Virtual Device Physical Function Bus)的主要作用是将物理设备的功能虚拟化和与虚拟机的交互连接起来。它可用于创建虚拟设备和与设备的I/O操作进行通信。具体来说,VDPA-bus提供了一种通信机制,使得虚拟机能够与物理设备连接并传输数据。通过VDPA-bus,虚拟机可以与虚拟设备进行交互,发送I/O请求并接收设备响应。VDPA-bus还提供了设备驱动程序接口,使得虚拟机能够加载和使用设备驱动程序,从而实现对物理设备的访问和控制。
图1中存在首包转发的问题,硬件收到的数据包未匹配成功时,认为硬件流表中不包含这个数据包的处理规则,定义为首包(一般是小包,大小不超过不超过64字节)。当物理网口收到一个首包,按流程需要将首包给到主机的OVS,并在主机中进行匹配,假设OVS匹配成功,需要转发的目的端口为本机的Vm1,端口是VF1。但是这种情况下主机的OVS不能直接将包给到Vm1的。因为按常规处理方法vm1只能从VF1端口获取数据。OVS只能按流程,通过Vf-rep将包再发回到硬件中,由硬件再进行转发。这种情况下,网络首包会在主机到硬件之间搬运3次才能给到最终的Vm虚拟机。
存在的弊端为:(1)转发路径长,增加了网络时延:会降低用户请求的响应速度,增加用户等待时长,使得网络出现卡顿的现象,最终影响服务质量。(2)消耗过多的资源:在OVS匹配成功的情况下,主机还需要将首包发回到硬件,硬件需要使用硬件资源判断首包转发的目的端口,然后再将首包发送到指定的vf端口,这种做法同时也增加了硬件实现的复杂度。
在网络并发、时延敏感型网络等场景中对网络性能产生极大的影响。因为,所有的首包都需要从host主机迂回一次才能转发到Vm,以某头部厂家的网卡为例,首包时长可能是1.3ms+,后续包只有0.3ms+,相差极大。
综上,硬件卸载流程中存在首包转发的问题,即当硬件收到的数据包与硬件中的流表匹配规则未匹配成功时,需要将此数据重新发送至OVS中进行匹配。然而,常规处理方法无法直接将匹配成功的包转发给目的端口,还需要将数据包回发到硬件再进行转发,导致网络首包需要经过多次搬运才能到达最终的虚拟机或容器,从而增加了网络时延和消耗了大量的资源。
请参照图2,图2为本申请提供的一种网络首包处理方法的流程示意图,该方法应用于主机端,主机端中设有预设虚拟队列,该方法在主机端引入了预设虚拟队列,通过对首包进行匹配,将匹配后的首包写入预设虚拟队列,以便主机端中的虚拟机或容器能够读取预设虚拟队列中的首包。
在一个实施例中,所述主机端创建预设虚拟队列的过程包括:使用所述主机端的内存创建所述预设虚拟队列。具体地,预设虚拟队列是在主机端以主机端的内存为基础创建的,其目的为通过预设虚拟队列在主机端直接写入首包,以将其直接转发至虚拟机或容器中,从而减少首包在硬件端的转发次数。
在一个实施例中,所述主机端还设有与所述硬件端的硬件队列对应的硬件网络队列时,使用所述主机端的内存创建所述预设虚拟队列,包括:使用所述主机端的内存、并根据所述硬件网络队列的队列参数创建所述预设虚拟队列,所述队列参数至少包括队列长度、存储结构和操作方式。具体地,本实施例中首先,主机端会获取硬件网络队列的队列参数,如队列长度、存储结构和操作方式等,以便根据此队列参数来创建预设虚拟队列。例如,如果硬件网络队列的队列长度比较长,那么预设虚拟队列的长度也应该相应调整。同时,预设虚拟队列的存储结构和操作方式也可以与硬件网络队列相同或兼容。可以使用主机端的内存创建预设虚拟队列。最后,可以主机端将预设虚拟队列与硬件网络队列进行关联或绑定,在网络首包处理的流程中进行调用。在一个具体实施例中,主机端的预设虚拟队列与硬件网络队列的队列参数完全相同。
其中,需要重点说明的是,本申请中的虚拟队列是指在主机端的内存中创建的一种数据结构,用于存储匹配后的首包。它不是真实存在的硬件队列,而是在软件层面上实现的一个逻辑队列。虚拟队列的作用是为主机端中的虚拟机或容器提供读取数据的接口。这些虚拟机或容器可以通过读取虚拟队列中的首包来进行后续的处理。
虚拟队列的创建过程可以使用主机端的内存来分配一块空间,并设置相应的队列参数,例如队列长度、存储结构和操作方式等。当接收到无法与第一预设流表匹配的首包时,就会将其写入虚拟队列中。方法包括:
S1:在接收到硬件端发送的首包时,对首包进行匹配;首包为硬件端中无法与第一预设流表匹配的数据包;
本实施例中,网络首包处理方法中的第一步操作,即对接收到的首包进行匹配。该首包是指在硬件中无法与预设的流表匹配成功的数据包。匹配的目的是找到能够成功匹配这个首包的流表规则,从而使得首包能够被正确地处理和转发。这里提到的匹配操作是指在主机端中进行的,具体可以在主机端的内核态工作模式下进行匹配,也可以在主机端的用户态工作模式下的虚拟交换机中进行匹配;虚拟交换机具有强大的流表匹配能力和灵活的流量处理策略。在匹配过程中,硬件端会将首包发送至虚拟交换机进行进一步的匹配。如果首包能够在虚拟交换机中成功匹配到适当的流表规则,那么就可以继续进行后续的处理和转发操作。否则,需要进行下一步的处理。
需要说明的是,该匹配是指在硬件端的第一预设流表中无法找到匹配规则,而不是说虚拟交换机中没有流表可以匹配。
S2:将匹配后的首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包。
本实施例是指将经过匹配后的首包存储到预设虚拟队列中,以便主机端中的虚拟机或容器能够读取并进行后续的处理。其中,预设虚拟队列是在主机端设立的,用于存储需要进行额外处理的数据包。通过将匹配后的首包存储到虚拟队列中,可以实现对首包的暂存和后续处理。虚拟机或容器可以从预设虚拟队列中读取首包,进行必要的转发和处理操作。这样可以避免将首包回发至硬件再进行转发,在一定程度上减少了网络时延和资源消耗。
请参照图3,图3为本申请提供的一种首包处理的框图。
在一个实施例中,在接收到硬件端发送的首包时,对首包进行匹配,包括:
在内核态工作模式下,在接收到硬件端发送的首包时,对首包进行匹配;
若对首包匹配成功,则将首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包。
本实施例中,主机端包括内核态和用户态两种工作模式。在接收到硬件端发送的首包时,进行匹配并将首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取。首先,在内核态工作模式下,若接收到硬件端发送的首包时,内核态工作模式下会对首包进行匹配。内核态是操作系统的一部分,具有更高的权限和更快的处理速度。匹配过程通常使用硬件加速技术,如TCAM(Ternary Content Addressable Memory)进行快速匹配。当首包无法与第一预设流表匹配成功时,即匹配失败。接下来,若内核态模式下,对首包匹配成功,则在内核态模式下将首包写入预设虚拟队列。预设虚拟队列是在主机端中设立的一个容器,用于存储待处理的数据包。这样,虚拟机或容器可以从预设虚拟队列中读取首包进行后续处理。写入预设虚拟队列可以通过操作系统提供的队列数据结构和相应的系统调用实现。最后,主机端中的虚拟机或容器读取预设虚拟队列中的首包。虚拟机或容器是运行在主机端的软件模块,模拟了物理交换机的功能。通过读取预设虚拟队列中的首包,虚拟机或容器可以进一步处理该数据包,如进行二次匹配、转发、修改头部等。虚拟机或容器的处理过程通常在用户态进行,通过系统调用或API(Application Programming Interface,应用程序编程接口)与内核态进行交互。
本实施例中的这种网络首包处理方法在主机端引入了预设虚拟队列,通过在内核态模式下对首包进行匹配并将其写入虚拟队列,避免了数据包来回传输和硬件重复转发的问题。这样可以减少网络时延和资源消耗,提高网络性能和效率。同时,由于预设虚拟队列可被虚拟机或容器直接读取,实现了对首包的快速处理和转发。
在一个实施例中,还包括:
在内核态工作模式下,若对首包匹配失败时,则调整为用户态工作模式,以在用户态工作模式下对所述首包进行匹配;
若在用户态工作模式下对首包匹配成功,则将首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包。
本实施例中,在主机端包括内核态和用户态两种工作模式的基础上,进一步完善了首包匹配的方法。当在内核态模式下若对首包进行匹配失败时,首包会被转发至用户态模式下,以便在用户态模式下对首包进行匹配。具体地,在用户态模式下进行首包匹配的好处是能够利用更强大和灵活的计算能力,同时也可以使用用户态的软件工具和算法进行匹配处理。用户态可以根据自身的需求和特定的应用场景,定制化地处理首包。相比之下,内核态的匹配能力相对较弱,无法满足某些复杂的匹配处理要求。
本实施例中,当用户态模式下对首包匹配成功后,用户态将首包转发至内核态。这样的转发机制可以充分兼顾内核态和用户态两种工作模式的优势,实现最佳的首包匹配处理效果。首包被转发回内核态后,内核态将首包写入预设虚拟队列,从而实现主机端中的虚拟机或容器读取预设虚拟队列中的首包。本实施例中的方式可以充分发挥主机端内核态和用户态的优势,提高首包匹配的准确性和处理效率。内核态负责最初的匹配尝试,而用户态则具备更强大的匹配能力,能够处理内核态无法匹配成功的情况。通过内核态和用户态的协作,可以满足不同应用场景的首包匹配需求,并进一步优化网络首包处理的性能。
综上,本实施例的方式,通过引入用户态的匹配处理能力,能够处理内核态无法匹配成功的特殊情况,提高了首包匹配的准确性。用户态可以根据特定的应用场景和需求,自由定制匹配处理的规则和算法,提高了首包匹配的灵活性。利用用户态的计算能力和软件工具,可以实现更高效的首包匹配处理,提高了处理效率。通过内核态和用户态的协作,充分发挥各自的优势,实现最佳的首包匹配处理效果。
在一个实施例中,还包括:
在用户态工作模式下对首包匹配失败时,将首包丢弃。
本实施例中,在用户态工作模式下,若对首包进行匹配后,如果匹配失败,则用户态将该首包丢弃。这意味着如果该首包不符合任何用户态的匹配规则,它将被视为无效数据并被丢弃。通过丢弃匹配失败的首包,可以提高网络处理的效率和安全性。对于无效数据的处理,删除它们可以避免不必要的网络传输和处理开销,从而提高整体的网络性能。此外,丢弃匹配失败的首包还可以增强网络的安全性。在一些网络攻击中,攻击者可能会发送特殊的数据包来尝试绕过安全策略或进行有害行为。通过丢弃匹配失败的首包,可以防止这些攻击尝试进一步影响网络的正常运行。
总之,本实施例中,通过丢弃匹配失败的首包,可以提高网络处理的效率和安全性。
在一个实施例中,在内核态工作模式下,在接收到硬件端发送的首包时,对首包进行匹配,包括:
在内核态工作模式下,在接收到硬件端发送的首包时,将首包与第二预设流表进行匹配。
本实施例提出了一种在主机端内核态对首包进行匹配的方法,并提到了使用第二预设流表来匹配首包。本实施例的技术原理为:在内核态接收到硬件端发送的首包时,将首包与第二预设流表进行匹配。流表是网络设备中用于存储网络流的匹配规则和对应操作的数据结构。第二预设流表包含了某些特殊规则或者优先级较高的规则,以确保对首包的匹配能够尽快进行并且匹配准确。当内核态接收到首包后,首先进行匹配操作,将首包与第二预设流表中的规则进行逐一匹配。如果匹配成功,表示首包符合某个特定规则,满足一定的条件,这时内核态将首包写入预设虚拟队列。预设虚拟队列是主机端中的一个保留队列,用于存放匹配成功的首包,以便后续主机端的虚拟机或容器读取和处理这些首包。
需要说明的是,本实施例中的第二预设流表与硬件端中的第一预设流表可以相同,也可以不同,本实施例在此不再限定。
本实施例中的方式能够提高主机端对首包的处理效率和准确性。通过使用第二预设流表进行匹配,首包可以更快速地被匹配并正确分类,将满足特定规则的首包存入预设虚拟队列中。这样可以减少不必要的处理和转发步骤,加快网络数据包的处理速度。
另外,使用第二预设流表也可以提高首包的优先级。由于第二预设流表包含了特殊规则或者优先级较高的规则,匹配成功的首包可以被优先处理,确保其获得更快的响应时间和更高的带宽分配,提高网络通信的性能和用户体验。
综上所述,本实施例提出的主机端内核态对首包进行匹配的技术可以提高首包的处理效率和准确性,加快网络数据包的处理速度,并提高首包的优先级,提高网络通信的性能和用户体验。
在一个实施例中,在用户态工作模式下对所述首包进行匹配,包括:
在用户态工作模式下将首包与第三预设流表进行匹配。
本实施例中,用户态将首包与第三预设流表进行匹配。具体地,用户态是主机端中运行在用户空间的一部分,它有更高的灵活性和可编程性。通过在用户态中进行首包匹配,可以实现更复杂的匹配规则和逻辑。本实施例中,首先,用户态接收到内核态转发的首包或者从硬件端直接接收的首包。然后,用户态将首包与预先设定的第三预设流表进行匹配。第三预设流表是由系统管理员或者用户事先配置和定义的匹配规则和动作列表。匹配规则可以基于包头的各种字段,如源IP(Internet Protocol,网络协议))地址、目的IP地址、协议类型、端口号等。匹配动作可以包括丢弃、转发、修改包头等操作。通过在用户态进行首包匹配,可以根据实际需求制定更为细致和复杂的匹配规则,以满足特定的网络流量处理需求。例如,可以根据应用类型对流量进行分类,实现精细化的流量管理和控制。
此外,用户态的首包匹配也可以提高系统的可扩展性和灵活性。由于用户态是可编程的,可以根据不同的应用场景和需求,动态更新和修改匹配规则,以适应网络环境的变化。
综上,通过本实施例中的方式,用户态的首包匹配可以为主机端的网络首包处理带来更大的灵活性和可定制性,提高网络的性能和效率。同时,这种方法也可以增加系统的可扩展性和适应性,使网络的管理更为高效和便捷。
在一个实施例中,接收到硬件端发送的首包,包括:接收硬件端通过物理功能的管理通道(PF,Physical Function)发送的首包。
本实施例中旨在说明网络首包是通过硬件端的物理功能管理通道发送的。能够确保网络首包能够被正确地接收和处理。在传统的网络传输中,首包往往具有特殊的重要性,因为它可能包含了网络连接的建立、安全认证和其他关键信息。然而,由于网络传输中的延迟和拥塞问题,首包往往容易丢失或延迟传输,导致网络连接的建立失败或者出现连接不稳定的情况。
为了解决这个问题,上述实施例中提供了一种网络首包处理方法,通过在主机端设置预设虚拟队列,并通过物理功能的管理通道将硬件端发送的首包传输到主机端。在主机端,首包会经过匹配和处理,并写入预设虚拟队列中,以便主机端中的虚拟机或容器能够读取和处理这个首包。通过这种处理方法,主机端能够及时获取到硬件端发送的首包,并根据需要进行相应的处理。这样,可以有效地避免网络连接建立和传输过程中的延迟和拥塞问题,提高网络连接的稳定性和效率。
总之,本实施例中通过在主机端设置预设虚拟队列,并通过物理功能的管理通道传输硬件端发送的首包,以确保网络首包能够被正确地接收和处理。这一技术方法具有提高网络连接稳定性和效率的有益效果。
在一个实施例中,硬件端发送首包的过程,包括:
在硬件端接收到数据包及第一预设流表时,将数据包与第一预设流表进行匹配;
若数据包与第一预设流表匹配失败,则硬件端判定数据包为首包,并将首包发送至主机端。
本实施例描述了硬件端发送首包的过程。在这个过程中,硬件端首先接收到数据包及第一预设流表。接着,硬件端将数据包与第一预设流表进行匹配。如果数据包与第一预设流表匹配失败,那么硬件端判定该数据包为首包,并将首包发送至主机端。
这一过程利用了第一预设流表进行匹配。第一预设流表是事先定义好的流表(或者是由主机端预先发送至硬件端的流表),用来匹配数据包。在收到数据包后,硬件端将数据包与预设流表进行匹配。如果匹配成功,则根据匹配结果进行相应的处理。如果匹配失败,则硬件端判定该数据包为首包。
本实施例中的方式可以实现对首包的快速处理。通过在硬件端进行首包的匹配和判定,可以提高处理效率和速度。同时,通过将首包发送至主机端,主机端中的虚拟机或容器可以读取预设虚拟队列中的首包,进一步进行处理。这样可以简化首包的处理流程,提升整体系统的性能和效率。
在一个实施例中,还包括:
若数据包与第一预设流表匹配成功,则硬件端根据匹配成功的规则对数据包进行处理。
本实施例中描述了一种在硬件端收到数据包并成功与第一预设流表进行匹配后的处理方法。具体地,当硬件端收到数据包后,首先要对其进行匹配,即与第一预设流表进行比对。如果数据包与预设流表匹配成功,说明该数据包符合已定义的规则,硬件端可以根据匹配成功的规则对数据包进行相应的处理。
其中,根据第一预设流表中的规则,硬件端可以执行多种处理操作,包括但不限于转发、修改包头、丢弃等。例如,如果第一预设流表规定将特定类型的数据包转发到指定的目的地,硬件端可以根据该规则将匹配成功的数据包进行转发。另外,还可以将根据匹配成功的规则对数据包进行修改,比如更改目的IP地址或端口号等。
本实施例中的方式提高了网络的灵活性和可编程性。通过使用第一预设流表进行数据包匹配和处理,硬件端可以根据网络需求和管理策略灵活地定义和修改数据包的处理方式。同时,由于这一步骤在硬件端进行,可以大大减少主机端的负载,提高网络的整体性能和效率。
总之,本实施例为硬件端在数据包与预设流表匹配成功后的处理提供了灵活性,使网络可以根据规则定义和修改数据包的处理方式,减轻了主机端的负担,提高了网络的整体效率。
在一个实施例中,主机端还设有硬件网络队列,方法还包括:
获取硬件端的硬件队列信息,根据硬件队列信息建立硬件队列与硬件网络队列的映射关系,以使硬件端基于映射关系将硬件队列中的数据包写入至主机端的硬件网络队列中。
本实施例中,在主机端设立硬件网络队列,并通过获取硬件端的硬件队列信息来建立硬件队列与硬件网络队列的映射关系。这样,硬件端可以根据映射关系将硬件队列中的数据包写入主机端的硬件网络队列中。
通过将硬件队列中的数据包写入主机端的硬件网络队列中,可以减少传输过程中的延迟,提高数据的传输效率。硬件网络队列可以更好地与主机端的虚拟机或容器进行协同工作,进一步优化网络传输。通过建立映射关系,主机端可以实时获取硬件端的硬件队列信息,并将数据包写入对应的硬件网络队列中。这样,网络管理人员可以更加方便地对数据包进行管理,提高网络的可管理性,降低维护成本。硬件网络队列可以与主机端的虚拟机或容器进行有效的协同工作,提高数据处理能力。通过将匹配后的首包写入预设虚拟队列,虚拟机或容器可以更快速地读取并处理这些数据包,提高系统的整体性能。
综上所述,本实施例中的方式使得主机端可以更好地与硬件端进行协同工作,提高网络传输效率和数据处理能力,简化网络管理,从而进一步提高网络的性能和可管理性。
在一个实施例中,在首包的个数为多个时,将匹配后的首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包,包括:
确定与匹配后的各个首包对应的优先级信息;
根据优先级信息依次将首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包。
本实施例中,当首包的个数为多个时,将匹配后的首包写入预设虚拟队列,并且根据优先级信息依次写入。具体地,当首包的个数为多个时,需要确定每个首包的优先级信息。这可以通过预设的规则或策略来进行,例如根据首包的类型、源IP地址、目的IP地址等信息来确定优先级。根据优先级信息,依次将首包写入预设虚拟队列,以便虚拟机或容器按照优先级顺序读取首包。
本实施例的方式,通过优先级信息的确定和按照优先级的顺序写入预设虚拟队列,可以实现对首包的有序处理,提高了网络的响应速度和数据传输的效率。最后,通过预设虚拟队列的设计,可以方便地实现对首包的读取和管理,减少了传输时间和资源开销。
在一个实施例中,将匹配后的首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包之前,还包括:
判断主机端对首包匹配是否成功;
若匹配成功,则将匹配成功后的首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包。
本实施例中,在主机端应用中,通过设立预设虚拟队列来实现网络首包的处理。当硬件端发送的首包无法与第一预设流表匹配时,主机端会将该首包进行匹配,并将匹配后的首包写入预设虚拟队列中。虚拟机或容器会从预设虚拟队列中读取首包,并进行相应的处理。
其中,只有在主机端对首包匹配成功时,才会将匹配后的首包写入预设虚拟队列,否则,不将首包写入预设虚拟队列。进一步判断主机端对首包的匹配是否成功,可以提高对首包匹配的准确性。
在一个实施例中,若主机端对首包匹配失败,还包括:
生成提示信息,以提示维护人员。
本实施例中,如果主机端对首包匹配失败,会生成提示信息以提示维护人员。这意味着在该实施例中,主机端会检测并识别无法与主机端的流表(如上述第二预设流表和第三预设流表)匹配的数据包,并生成相应的提示信息。
具体地,本实施例基于主机端中的预设虚拟队列和虚拟机或容器。首包处理方法在S1中对接收到的首包进行匹配,如果匹配失败,则成提示信息,以提示维护人员。
本实施例中,通过生成提示信息,可以及时发现首包匹配失败的情况,便于维护人员进行问题排查和解决。通过及时提示维护人员,可以尽快修复首包匹配失败的问题,减少系统的不稳定因素,提高系统的性能。通过在匹配失败时生成提示信息,可以及时通知用户出现问题,并给予相应的解决方案,提升用户对系统的满意度。
在一个实施例中,生成提示信息,以提示维护人员,包括:
生成首包丢弃日志,以提示维护人员。
本实施例中,在首包匹配失败时生成提示信息以提示维护人员,其中包括生成首包丢弃日志。具体而言,当主机端无法通过首包与预设流表进行匹配时,即表示该首包无法被正确地处理。为了保证网络的正常运行和故障排除,需要及时通知维护人员出现了首包匹配失败的情况。本实施例中的具体实现方式为:生成首包丢弃日志。其中,首包丢弃日志是一种记录首包丢弃事件的数据记录。当主机端无法匹配首包时,系统会产生一个针对该首包丢弃事件的日志记录,该记录包含了丢弃首包的相关信息,如首包数据、时间戳、处理节点等等。这些信息可以帮助维护人员追踪和分析首包匹配失败的原因,从而采取相应的措施进行故障排查和修复。
本实施例中,首包丢弃日志可以帮助维护人员准确地了解首包匹配失败的情况,从而更好地进行故障排查。通过分析首包丢弃日志,可以确定首包匹配失败的原因,如硬件故障、网络配置错误等,从而有针对性地进行故障修复。此外,还可以为未来的故障排除提供参考。通过对首包丢弃事件的记录和分析,可以发现潜在的问题和隐患,并及时采取预防措施,以避免类似的故障再次发生。最后,首包丢弃日志可以作为网络管理和监控的重要依据。通过对首包丢弃事件的统计和分析,可以评估网络的稳定性和性能,发现网络瓶颈和瓶颈节点,并进行相应的优化和调整,以提升网络性能和用户体验。
综上所述,生成首包丢弃日志可以提供及时的故障排查和修复,预防类似故障的发生,并为网络管理和监控提供重要的参考依据。
在一个实施例中,在接收到硬件端发送的首包时,对首包进行匹配之后,还包括:
将与首包对应的目标匹配规则下发至硬件端,以便硬件端基于目标匹配规则对首包进行处理。
本实施例中,在接收到硬件端发送的首包后,对首包进行匹配后,将与首包对应的目标匹配规则下发至硬件端,以便硬件端根据目标匹配规则对首包进行处理。
具体地,主机端接收到硬件端发送的首包后,首先对首包进行匹配。首包是指硬件端中无法与第一预设流表匹配的数据包。匹配后,主机端确定该首包对应的目标匹配规则。主机端将该目标匹配规则下发至硬件端,以便硬件端根据该规则对首包进行处理。硬件端接收到目标匹配规则之后就可以根据规则对首包进行处理,包括转发、丢弃、修改等操作。
本实施例中,通过下发目标匹配规则到硬件端,可以根据不同的首包特征进行针对性的处理,提高网络传输效率和性能。通过将首包存储在预设虚拟队列中,让主机端中的虚拟机或容器读取处理,减轻了主机端的工作负担,提高了系统的整体处理能力。通过根据首包的特征下发目标匹配规则,可以对不符合规则的首包进行丢弃或其他安全处理,保护网络系统的稳定性和安全性。
综上所述,本实施例中可以根据首包的特征下发目标匹配规则,对首包进行动态处理,提高网络传输效率和性能,减轻主机端负载,提高网络可靠性和安全性。
在一个实施例中,在判定主机端对首包匹配成功时,将与首包对应的目标匹配规则下发至硬件端,以便硬件端基于目标匹配规则对首包进行处理,包括:
将与首包匹配成功对应的目标流表下发至硬件端,以便硬件端基于目标流表对首包进行处理。
本实施例描述了一种在主机端判定首包匹配成功后,将与首包对应的目标匹配规则下发至硬件端,以便硬件端基于目标匹配规则对首包进行处理的具体实现方式。具体来说,该具体实现方式包括将与首包匹配成功对应的目标流表下发至硬件端,以便硬件端基于目标流表对首包进行处理。
具体地,在传统网络中,主机端负责处理网络数据包,并根据预设的流表进行路由和转发。然而,在某些情况下,硬件端发送的首包可能无法与主机端的第一预设流表匹配。本实施例的本质是在主机端中设立预设虚拟队列,并在接收到硬件端发送的首包时进行匹配。如果首包无法与第一预设流表匹配,则该首包将被写入预设虚拟队列中。接下来,在判定主机端对首包匹配成功后,将与首包匹配成功对应的目标流表下发至硬件端。通过下发与首包匹配成功对应的目标流表至硬件端,硬件端可以根据这些目标流表来处理首包。目标流表中包含了具体的处理规则,可以指示硬件端如何对首包进行处理,包括转发、丢弃或其他操作。这样,在首包到达硬件端时,硬件端就可以根据目标流表进行相应的处理操作,达到对首包的有效处理。
本实施例中,通过在主机端判定首包匹配成功后,将与首包匹配成功对应的目标流表下发至硬件端,从而实现了对首包的有效处理。本实施例提高了网络的处理效率和准确性,同时减少了对主机端处理能力的要求,使网络能够更加稳定和高效地运行。
在一个实施例中,在判定主机端对首包匹配失败时,将与首包对应的目标匹配规则下发至硬件端,以便硬件端基于目标匹配规则对首包进行处理,包括:
将与首包对应的目标匹配规则确定为丢弃规则,并将丢弃规则下发至硬件端,以便硬件端对首包进行丢弃处理。
本实施例描述了一种网络首包处理方法,在判定主机端对首包匹配失败时,将与首包对应的目标匹配规则下发至硬件端,以便硬件端基于目标匹配规则对首包进行处理,其中包括将与首包对应的目标匹配规则确定为丢弃规则,并将丢弃规则下发至硬件端,以便硬件端对首包进行丢弃处理。
本实施例是通过在主机端设有预设虚拟队列来进行的。在接收到硬件端发送的首包时,首先对首包进行匹配,判定主机端对首包匹配失败。对于匹配失败的情况,将与首包对应的目标匹配规则下发至硬件端,确定为丢弃规则,并将丢弃规则下发至硬件端。这样,在硬件端基于目标匹配规则对首包进行处理时,就可以根据丢弃规则对其进行丢弃处理。
本实施例中,能够针对主机端对首包匹配失败的情况进行处理。通过将与首包对应的目标匹配规则下发至硬件端,并确定为丢弃规则,可以使硬件端对首包进行丢弃处理,从而减少了对主机端的处理负担。同时,由于丢弃规则的下发,可以阻断首包对网络的进一步传输,从而有助于保障网络的正常运行和安全性。可见,本实施例有效解决了主机端对首包匹配失败时的处理问题,具有较好的应用前景和实际意义。
在一个实施例中,将与首包匹配成功对应的目标流表下发至硬件端,以便硬件端基于目标流表对首包进行处理之后,还包括:
根据目标流表生成目标反馈规则,并将目标反馈规则下发至硬件端,以便硬件端基于目标反馈规则对首包进行处理;
目标反馈规则为指示主机端将首包发送至其它主机端或者其它任意端口的规则。
本实施例中,首先将与首包匹配成功对应的目标流表下发到硬件端,以便硬件端根据目标流表对首包进行处理。目标流表包含了对首包的进一步处理规则,可以用于指示硬件端如何转发、处理或过滤首包。在处理完首包之后,根据目标流表生成目标反馈规则,并将目标反馈规则下发至硬件端。目标反馈规则用于指示主机端将首包发送至其他主机端或者其他任意端口。这样,主机端可以根据目标反馈规则对首包进行进一步的处理和转发。通过使用目标反馈规则,可以实现对可能要处理的下一个首包提前预测,实现了对首包的灵活性控制和定制化处理。主机端可以根据具体需求确定目标反馈规则,并将其下发至硬件端,从而实现对首包的不同处理方式再生,本实施例中的方式可以灵活地控制和定制化处理首包,从而提高网络处理效率和灵活性,满足不同应用场景的需求。
一个具体实施例为:创建预设虚拟队列,接收队列的内存实际上是虚拟机或容器内存,使用预设虚拟队列接收Vf-rep转发的首包,假设每个VF(Virtual Function,虚拟功能的管理通道)有32对队列,驱动向上翻译时额外提供1对预设虚拟队列,虚拟机或容器主机看到的是33对队列,最后一对队列仅用来接收首包。Vf-rep用于挂载OVS规则和首包数据转发。请参照图4,图4为本申请提供的一种具体实现的流程图。首先,系统初始化,创建Vf-rep等,判断流表匹配模块是否收到数据包,若收到,则进行流表匹配,否则,等待接收数据包;流表匹配时根据主机端发送的流表进行匹配,若匹配成功,则对数据包进行处理(如丢弃或者转发),若未成功,则将此数据包发给主机端,主机端OVS对其进行匹配,若匹配成功,则通过外部端口转发,或者发到虚拟机或容器中,并更新流表规则;若主机端未匹配成功,则丢弃此数据包,并更新流表规则。
为解决上述技术问题,本申请还提供了一种网络首包处理系统,请参照图5,图5为本申请提供的一种网络首包处理系统的结构框图,该系统应用于内核态,内核态中设有预设虚拟队列,系统包括:
首包匹配单元51,用于在接收到硬件端发送的首包时,将首包转发至用户态,以便用户态对首包进行匹配;首包为硬件端中无法与流表匹配规则匹配的数据包;
首包写入单元52,用于接收用户态发送的匹配后的首包,并将首包写入预设虚拟队列,以便用户态读取预设虚拟队列中的首包。
在一个实施例中,还包括:
队列创建单元,用于使用所述主机端的内存创建所述预设虚拟队列。
在一个实施例中,所述主机端还设有与所述硬件端的硬件队列对应的硬件网络队列时,队列创建单元,具体用于使用所述主机端的内存、并根据所述硬件网络队列的队列参数创建所述预设虚拟队列,所述队列参数至少包括队列长度、存储结构和操作方式。
在一个实施例中,首包匹配单元51,包括:
内核态匹配单元,用于在内核态接收到硬件端发送的首包时,内核态对首包进行匹配;
第一判定单元,用于在内核态对首包匹配成功时,则内核态将首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包。
在一个实施例中,还包括:
用户态匹配单元,用于在内核态对首包匹配失败时,内核态将首包转发至用户态,以使用户态对首包进行匹配;
第二匹配单元,用于在用户态对首包匹配成功时,用户态将首包转发至和内核态,以使内核态将首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包。
在一个实施例中,还包括:
用户态丢弃单元,用于在用户态对首包匹配失败时,用户态将首包丢弃。
在一个实施例中,内核态匹配单元,具体用于在内核态接收到硬件端发送的首包时,内核态将首包与第二预设流表进行匹配。
在一个实施例中,用户态匹配单元,具体用于用户态将首包与第三预设流表进行匹配。
在一个实施例中,接收到硬件端发送的首包,包括:接收硬件端通过物理功能的管理通道发送的首包。
在一个实施例中,硬件端发送首包的过程,包括:在硬件端接收到数据包及第一预设流表时,将数据包与第一预设流表进行匹配;若数据包与第一预设流表匹配失败,则硬件端判定数据包为首包,并将首包发送至主机端。
在一个实施例中,还包括:若数据包与预设流表匹配成功,则硬件端根据匹配成功的规则对数据包进行处理。
在一个实施例中,主机端还设有硬件网络队列,系统还包括:
硬件队列匹配单元,用于获取硬件端的硬件队列信息,根据硬件队列信息建立硬件队列与硬件网络队列的映射关系,以使硬件端基于映射关系将硬件队列中的数据包写入至主机端的硬件网络队列中。
在一个实施例中,在首包的个数为多个时,首包写入单元52包括:
优先级确定单元,用于确定与匹配后的各个首包对应的优先级信息;
首包写入单元52,用于根据优先级信息依次将首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包。
在一个实施例中,还包括:
判断单元,用于判断主机端对首包匹配是否成功;
第三判定单元,用于在主机端对首包匹配成功时,将匹配成功后的首包写入预设虚拟队列,以便主机端中的虚拟机或容器读取预设虚拟队列中的首包。
在一个实施例中,还包括:
第四判定单元,用于在主机端对首包匹配失败时,生成提示信息,以提示维护人员。
在一个实施例中,第四判定单元,具体用于在主机端对首包匹配失败时,生成首包丢弃日志,以提示维护人员。
在一个实施例中,还包括:
匹配规则下发单元,用于将与首包对应的目标匹配规则下发至硬件端,以便硬件端基于目标匹配规则对首包进行处理。
在一个实施例中,在判定主机端对首包匹配成功时,匹配规则下发单元,具体用于将与首包匹配成功对应的目标流表下发至硬件端,以便硬件端基于目标流表对首包进行处理。
在一个实施例中,在判定主机端对首包匹配失败时,匹配规则下发单元,具体用于将与首包对应的目标匹配规则确定为丢弃规则,并将丢弃规则下发至硬件端,以便硬件端对首包进行丢弃处理。
在一个实施例中,还包括:
目标反馈规则下发单元,用于根据目标流表生成目标反馈规则,并将目标反馈规则下发至硬件端,以便硬件端基于目标反馈规则对首包进行处理;
目标反馈规则为指示主机端将首包发送至其它主机端或者其它任意端口的规则。
对于网络首包处理系统的介绍请参照上述实施例,本申请在此不再赘述。
为解决上述技术问题,本申请还提供了一种网络首包处理装置,请参照图6,图6为本申请提供的一种网络首包处理装置的结构框图,该装置包括:
存储器61,用于存储计算机程序;
处理器62,用于在存储计算机程序时,实现如上述的网络首包处理方法的步骤。
对于网络首包处理装置的介绍请参照上述实施例,本申请在此不再赘述。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质70,请参照图7,图7为本申请提供的一种计算机可读存储介质的结构框图,该计算机可读存储介质70上存储有计算机程序71,计算机程序71被处理器62执行时实现如上述的网络首包处理方法的步骤。对于计算机可读存储介质70的介绍请参照上述实施例,本申请在此不再赘述。
为解决上述技术问题,本申请还提供了一种异构设备,包括如上述的网络首包处理装置。对于异构设备的介绍请参照上述实施例,本申请在此不再赘述。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其他实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (24)

1.一种网络首包处理方法,其特征在于,应用于主机端,所述主机端中设有预设虚拟队列,所述方法包括:
在接收到硬件端发送的首包时,对所述首包进行匹配;所述首包为所述硬件端中无法与第一预设流表匹配的数据包;
将匹配后的首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包。
2.如权利要求1所述的网络首包处理方法,其特征在于,所述主机端创建预设虚拟队列的过程包括:
使用所述主机端的内存创建所述预设虚拟队列。
3.如权利要求2所述的网络首包处理方法,其特征在于,所述主机端还设有与所述硬件端的硬件队列对应的硬件网络队列时,使用所述主机端的内存创建所述预设虚拟队列,包括:
使用所述主机端的内存、并根据所述硬件网络队列的队列参数创建所述预设虚拟队列,所述队列参数至少包括队列长度、存储结构和操作方式。
4.如权利要求1所述的网络首包处理方法,其特征在于,在接收到硬件端发送的首包时,对所述首包进行匹配,包括:
在内核态工作模式下,在接收到硬件端发送的首包时,对所述首包进行匹配;
若对所述首包匹配成功,则将所述首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包。
5.如权利要求4所述的网络首包处理方法,其特征在于,还包括:
在所述内核态工作模式下,若对所述首包匹配失败时,则调整为用户态工作模式,以在所述用户态工作模式下对所述首包进行匹配;
若在所述用户态工作模式下对所述首包匹配成功,则将所述首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包。
6.如权利要求5所述的网络首包处理方法,其特征在于,还包括:
在所述用户态工作模式下对所述首包匹配失败时,将所述首包丢弃。
7.如权利要求4所述的网络首包处理方法,其特征在于,在内核态工作模式下,在接收到硬件端发送的首包时,对所述首包进行匹配,包括:
在所述内核态工作模式下,在接收到所述硬件端发送的首包时,将所述首包与第二预设流表进行匹配。
8.如权利要求5所述的网络首包处理方法,其特征在于,在所述用户态工作模式下对所述首包进行匹配,包括:
在所述用户态工作模式下将所述首包与第三预设流表进行匹配。
9.如权利要求1所述的网络首包处理方法,其特征在于,接收到硬件端发送的首包,包括:
接收所述硬件端通过物理功能的管理通道发送的所述首包。
10.如权利要求1所述的网络首包处理方法,其特征在于,所述硬件端发送首包的过程,包括:
在所述硬件端接收到数据包及所述第一预设流表时,将所述数据包与所述第一预设流表进行匹配;
若所述数据包与所述第一预设流表匹配失败,则所述硬件端判定所述数据包为所述首包,并将所述首包发送至所述主机端。
11.如权利要求10所述的网络首包处理方法,其特征在于,还包括:
若所述数据包与所述第一预设流表匹配成功,则所述硬件端根据匹配成功的规则对所述数据包进行处理。
12.如权利要求10所述的网络首包处理方法,其特征在于,所述主机端还设有硬件网络队列,所述方法还包括:
获取所述硬件端的硬件队列信息,根据所述硬件队列信息建立所述硬件队列与所述硬件网络队列的映射关系,以使所述硬件端基于所述映射关系将所述硬件队列中的数据包写入至所述主机端的硬件网络队列中。
13.如权利要求1所述的网络首包处理方法,其特征在于,在所述首包的个数为多个时,将匹配后的首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包,包括:
确定与所述匹配后的各个首包对应的优先级信息;
根据所述优先级信息依次将所述首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包。
14.如权利要求1所述的网络首包处理方法,其特征在于,将匹配后的首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包之前,还包括:
判断所述主机端对所述首包匹配是否成功;
若匹配成功,则将匹配成功后的首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包。
15.如权利要求14所述的网络首包处理方法,其特征在于,若所述主机端对所述首包匹配失败,还包括:
生成提示信息,以提示维护人员。
16.如权利要求15所述的网络首包处理方法,其特征在于,生成提示信息,以提示维护人员,包括:
生成首包丢弃日志,以提示所述维护人员。
17.如权利要求1-16任一项所述的网络首包处理方法,其特征在于,在接收到硬件端发送的首包时,对所述首包进行匹配之后,还包括:
将与所述首包对应的目标匹配规则下发至所述硬件端,以便所述硬件端基于所述目标匹配规则对所述首包进行处理。
18.如权利要求17所述的网络首包处理方法,其特征在于,在判定所述主机端对所述首包匹配成功时,将与所述首包对应的目标匹配规则下发至所述硬件端,以便所述硬件端基于所述目标匹配规则对所述首包进行处理,包括:
将与所述首包匹配成功对应的目标流表下发至所述硬件端,以便所述硬件端基于所述目标流表对所述首包进行处理。
19.如权利要求17所述的网络首包处理方法,其特征在于,在判定所述主机端对所述首包匹配失败时,将与所述首包对应的目标匹配规则下发至所述硬件端,以便所述硬件端基于所述目标匹配规则对所述首包进行处理,包括:
将与所述首包对应的目标匹配规则确定为丢弃规则,并将所述丢弃规则下发至所述硬件端,以便所述硬件端对所述首包进行丢弃处理。
20.如权利要求17所述的网络首包处理方法,其特征在于,将与所述首包匹配成功对应的目标流表下发至所述硬件端,以便所述硬件端基于所述目标流表对所述首包进行处理之后,还包括:
根据所述目标流表生成目标反馈规则,并将所述目标反馈规则下发至所述硬件端,以便所述硬件端基于所述目标反馈规则对所述首包进行处理;
所述目标反馈规则为指示所述主机端将所述首包发送至其它主机端或者其它任意端口的规则。
21.一种网络首包处理系统,其特征在于,应用于主机端,所述主机端中设有预设虚拟队列,所述系统包括:
首包匹配单元,用于在接收到硬件端发送的首包时,对所述首包进行匹配;所述首包为所述硬件端中无法与第一预设流表匹配的数据包;
首包写入单元,用于将匹配后的首包写入所述预设虚拟队列,以便主机端中的虚拟机或容器读取所述预设虚拟队列中的首包。
22.一种网络首包处理装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在存储计算机程序时,实现如权利要求1-20任一项所述的网络首包处理方法的步骤。
23.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-20任一项所述的网络首包处理方法的步骤。
24.一种异构设备,其特征在于,包括如权利要求22所述的网络首包处理装置。
CN202311001080.8A 2023-08-10 2023-08-10 一种网络首包处理方法、系统、装置、介质及异构设备 Active CN116723162B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311001080.8A CN116723162B (zh) 2023-08-10 2023-08-10 一种网络首包处理方法、系统、装置、介质及异构设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311001080.8A CN116723162B (zh) 2023-08-10 2023-08-10 一种网络首包处理方法、系统、装置、介质及异构设备

Publications (2)

Publication Number Publication Date
CN116723162A CN116723162A (zh) 2023-09-08
CN116723162B true CN116723162B (zh) 2023-11-03

Family

ID=87875566

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311001080.8A Active CN116723162B (zh) 2023-08-10 2023-08-10 一种网络首包处理方法、系统、装置、介质及异构设备

Country Status (1)

Country Link
CN (1) CN116723162B (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015124015A1 (zh) * 2014-02-21 2015-08-27 华为技术有限公司 一种数据包转发方法及设备
CN105164980A (zh) * 2014-04-04 2015-12-16 华为技术有限公司 众核下网络数据的分发方法及系统
CN106559323A (zh) * 2016-10-28 2017-04-05 上海斐讯数据通信技术有限公司 一种sdn设备首包上送的方法和装置
WO2018023498A1 (zh) * 2016-08-03 2018-02-08 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
WO2018045821A1 (zh) * 2016-09-06 2018-03-15 北京京东尚科信息技术有限公司 云主机数据发送、接收、传输方法和装置
CN110086731A (zh) * 2019-04-25 2019-08-02 北京计算机技术及应用研究所 一种云架构下网络数据稳定采集方法
CN110177060A (zh) * 2019-05-15 2019-08-27 华中科技大学 一种面向sdn网络的时序侧信道攻击的主动防御方法
CN110636139A (zh) * 2019-10-15 2019-12-31 广州市品高软件股份有限公司 一种云负载均衡的优化方法及系统
WO2021000717A1 (zh) * 2019-06-29 2021-01-07 华为技术有限公司 一种io处理的方法和装置
WO2021139269A1 (zh) * 2020-08-06 2021-07-15 平安科技(深圳)有限公司 Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置
CN113472624A (zh) * 2021-06-21 2021-10-01 烽火通信科技股份有限公司 一种基于vDPA实现虚拟网络数据包转发的方法及应用
CN113965521A (zh) * 2021-10-19 2022-01-21 京东科技信息技术有限公司 数据包的传输方法、服务器及存储介质
CN114201268A (zh) * 2022-02-17 2022-03-18 苏州浪潮智能科技有限公司 一种数据处理方法、装置、设备及可读存储介质
WO2022088743A1 (zh) * 2020-10-31 2022-05-05 华为技术有限公司 一种流表处理方法及相关设备
CN116074247A (zh) * 2023-03-06 2023-05-05 天翼云科技有限公司 硬件流表老化方法、软件流表老化方法、装置及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9231892B2 (en) * 2012-07-09 2016-01-05 Vmware, Inc. Distributed virtual switch configuration and state management
US9268642B2 (en) * 2012-08-24 2016-02-23 Vmware, Inc. Protecting paired virtual machines
US11374859B2 (en) * 2020-08-04 2022-06-28 Pensando Systems, Inc. Flow table programming using flow miss metadata and burst action assist via CPU offload

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015124015A1 (zh) * 2014-02-21 2015-08-27 华为技术有限公司 一种数据包转发方法及设备
CN105164980A (zh) * 2014-04-04 2015-12-16 华为技术有限公司 众核下网络数据的分发方法及系统
WO2018023498A1 (zh) * 2016-08-03 2018-02-08 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
CN109479028A (zh) * 2016-08-03 2019-03-15 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
WO2018045821A1 (zh) * 2016-09-06 2018-03-15 北京京东尚科信息技术有限公司 云主机数据发送、接收、传输方法和装置
CN106559323A (zh) * 2016-10-28 2017-04-05 上海斐讯数据通信技术有限公司 一种sdn设备首包上送的方法和装置
CN110086731A (zh) * 2019-04-25 2019-08-02 北京计算机技术及应用研究所 一种云架构下网络数据稳定采集方法
CN110177060A (zh) * 2019-05-15 2019-08-27 华中科技大学 一种面向sdn网络的时序侧信道攻击的主动防御方法
WO2021000717A1 (zh) * 2019-06-29 2021-01-07 华为技术有限公司 一种io处理的方法和装置
CN110636139A (zh) * 2019-10-15 2019-12-31 广州市品高软件股份有限公司 一种云负载均衡的优化方法及系统
WO2021139269A1 (zh) * 2020-08-06 2021-07-15 平安科技(深圳)有限公司 Overlay网络中基于Open vSwitch内核态流表的分布式路由方法及装置
WO2022088743A1 (zh) * 2020-10-31 2022-05-05 华为技术有限公司 一种流表处理方法及相关设备
CN113472624A (zh) * 2021-06-21 2021-10-01 烽火通信科技股份有限公司 一种基于vDPA实现虚拟网络数据包转发的方法及应用
CN113965521A (zh) * 2021-10-19 2022-01-21 京东科技信息技术有限公司 数据包的传输方法、服务器及存储介质
CN114201268A (zh) * 2022-02-17 2022-03-18 苏州浪潮智能科技有限公司 一种数据处理方法、装置、设备及可读存储介质
CN116074247A (zh) * 2023-03-06 2023-05-05 天翼云科技有限公司 硬件流表老化方法、软件流表老化方法、装置及电子设备

Also Published As

Publication number Publication date
CN116723162A (zh) 2023-09-08

Similar Documents

Publication Publication Date Title
US11711319B2 (en) Methods and apparatus for flow control associated with a switch fabric
US10868699B2 (en) Method for generating forwarding information, controller, and service forwarding entity
US10432745B2 (en) Accelerated network packet processing
US8170025B2 (en) Switch port analyzers
US6687758B2 (en) Port aggregation for network connections that are offloaded to network interface devices
US9419867B2 (en) Data and control plane architecture for network application traffic management device
US9485200B2 (en) Network switch with external buffering via looparound path
US20170237672A1 (en) Network server systems, architectures, components and related methods
EP3275140B1 (en) Technique for achieving low latency in data center network environments
US20170250914A1 (en) In-line network accelerator
RU2583745C2 (ru) Сетевая система, коммутатор и способ обнаружения подсоединенного терминала
US9356844B2 (en) Efficient application recognition in network traffic
US20070160073A1 (en) Packet communications unit
US6785238B1 (en) LAN relaying/switching apparatus
CN106603409B (zh) 一种数据处理系统、方法及设备
WO2023155578A1 (zh) 时间敏感网络交换机
CN112165435A (zh) 一种基于虚拟机网络服务质量的双向流量控制方法及系统
US20050169309A1 (en) System and method for vertical perimeter protection
CN116233018A (zh) 报文处理方法、装置、电子设备及存储介质
CN112769597A (zh) 一种云边协同虚拟化场景的容器网络限流方法和系统
CN114363269B (zh) 一种消息传输方法、系统、设备以及介质
CN106790162B (zh) 虚拟网络优化方法与系统
CN116723162B (zh) 一种网络首包处理方法、系统、装置、介质及异构设备
CN111431812A (zh) 一种报文转发控制方法及装置
CN115866103A (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