CN112152940B - 报文处理方法、装置以及系统 - Google Patents
报文处理方法、装置以及系统 Download PDFInfo
- Publication number
- CN112152940B CN112152940B CN201910580124.4A CN201910580124A CN112152940B CN 112152940 B CN112152940 B CN 112152940B CN 201910580124 A CN201910580124 A CN 201910580124A CN 112152940 B CN112152940 B CN 112152940B
- Authority
- CN
- China
- Prior art keywords
- network card
- message
- packet
- target control
- queue
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 claims abstract description 73
- 230000015654 memory Effects 0.000 claims description 35
- 230000005540 biological transmission Effects 0.000 description 38
- 230000008569 process Effects 0.000 description 36
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000012795 verification Methods 0.000 description 13
- 101000911956 Bos taurus Cyclin-dependent-like kinase 5 Proteins 0.000 description 11
- 230000006855 networking Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/58—Changing or combining different scheduling modes, e.g. multimode scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
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
技术领域
本申请涉及网卡领域,尤其涉及一种报文处理方法、装置以及系统。
背景技术
随着互联网的高速发展,服务器节点需要处理的数据越来越多,因此,对服务器节点的处理速率、带宽、时延和丢包率等等提出了较为苛刻的要求,以便于服务器节点能够提供大容量、高性能以及高并发的网络服务。
但是,本领域的技术人员在长期研究中发现,服务器节点中的处理器的处理核存在资源利用率不高的情况。
发明内容
为了解决上述问题,本申请提供了一种报文处理方法、装置以及系统,能够有效地提高处理器的处理核的资源利用率。
第一方面,提供了一种报文处理方法,该方法应用于网卡,网卡包括第一网卡队列,该方法包括:网卡接收来自外部网络的第一报文,第一报文携带有第一报文识别信息;网卡根据第一报文识别信息确定第一报文为目标控制报文;网卡将目标控制报文存储到网卡的第一网卡队列中并产生中断信号,其中中断信号用于通知第一处理器的第一处理核对第一网卡队列中的目标控制报文进行中断处理。
上述方案中,网卡产生中断信号通知第一处理器的第一处理核通过中断的方式(非独占方式)对第一网卡队列中的目标控制报文进行中断处理,而不是以轮询的方式(独占方式)独占第一处理器的第一处理核,从而使得第一处理器的第一处理核还可以用于对其他数据进行处理,提高了第一处理核的资源利用率,由于第一处理核不再被独占使用,且第一处理核可以通过中断方式处理各种业务,因此能够适配大容量、高性能以及高并发的网络服务的性能要求。
可选地,网卡还包括第二网卡队列,该方法包括:网卡接收来自外部网络的第二报文,第二报文携带有第二报文识别信息;网卡根据第二报文识别信息确定第二报文为业务报文;网卡将业务报文存储到第二网卡队列中,其中,第二网卡队列中的业务报文由第一处理器的第二处理核进行轮询处理。
上述方案中,业务报文和控制报文分别通过不同的网卡队列以及第一处理器内的处理核进行处理,即,将业务报文和控制报文进行物理隔离,从而避免了数据报文和控制报文在同一个面上进行传输时,如果业务报文的流量比较大,第一处理器可能不能及时处理控制报文,从而导致通信流程发生崩溃。
可选地,网卡根据第一报文识别信息确定第一报文为目标控制报文,包括:
网卡将第一报文识别信息与预先记录的目标控制报文类型信息进行比较,在第一报文识别信息与目标报文类型信息匹配的情况下,确定第一报文为目标控制报文。另外,网卡将第二报文识别信息与目标报文类型信息进行匹配,在第二报文识别信息与目标报文类型信息不匹配的情况下,确定第二报文为业务报文。
上述方案中,网卡可以根据第一报文识别信息确定第一报文为目标控制报文,并将目标控制报文存储到第一网卡队列中,网卡可以根据第二报文识别信息确定第二报文为业务报文,并将业务报文存储到第二网卡队列中,能够保证目标控制报文都被发送到第一网卡队列中,业务报文都被发送到第二网卡队列中,从而保证将控制报文和业务报文进行了隔离。
可选地,网卡在确认VRRP报文头携带的协议类型与预先存储的目标控制报文类型信息中的VRRP协议类型相同,且VRRP报文头携带的VID标识与预先存储的目标控制报文类型信息中的VID标识相同的情况下,确定第一报文为目标控制报文。
可选地,网卡接收来自外部网络的第一报文之前,该方法还包括:网卡接收来自第一处理器的配置信息,配置信息包括目标控制报文类型信息;网卡根据配置信息创建第一内存队列,并记录配置信息。
可选地,处理器包括:中断方式PDPK以及轮询模式驱动PDPK,第一核在中断方式PDPK的协助下,实现对第一队列中的目标控制报文进行中断处理;第二核在轮询模式驱动PDPK的协助下,实现对第二队列中的业务报文进行轮询处理。
可选地,第一核和第一队列属于控制面,第二核和第二队列属于数据面。
可选地,第一核还用于对其他数据进行处理,其中,其他数据不包括控制报文以及业务报文。
第二方面,提供了一种报文处理装置,该装置设置于网卡,网卡包括第一网卡队列,其特征在于,该装置包括:接收模块、确定模块以及中断模块。接收模块用于接收来自外部网络的第一报文,第一报文携带有第一报文识别信息;确定模块用于根据第一报文识别信息确定第一报文为目标控制报文;中断模块用于将目标控制报文存储到网卡的第一网卡队列中并产生中断信号,其中中断信号用于通知第一处理器的第一处理核对第一网卡队列中的目标控制报文进行中断处理。
可选地,网卡还包括第二网卡队列,装置还包括轮询模块,接收模块还用于接收来自外部网络的第二报文,第二报文携带有第二报文识别信息;确定模块还用于根据第二报文识别信息确定第二报文为业务报文;轮询模块用于将业务报文存储到第二网卡队列中,其中,第二网卡队列中的业务报文由第一处理器的第二处理核进行轮询处理。
可选地,确定模块还用于将第一报文识别信息与预先记录的目标控制报文类型信息进行比较,在第一报文识别信息与目标报文类型信息匹配的情况下,确定第一报文为目标控制报文。
可选地,确定模块还用于在确认VRRP报文头携带的协议类型与预先存储的目标控制报文类型信息中的VRRP协议类型相同,且VRRP报文头携带的VID标识与预先存储的目标控制报文类型信息中的VID标识相同的情况下,确定第一报文为目标控制报文。
可选地,该装置还包括创建模块,接收模块还用于接收来自第一处理器的配置信息,配置信息包括目标控制报文类型信息;创建模块用于根据配置信息创建第一内存队列,并记录配置信息。
可选地,处理器包括:中断方式PDPK以及轮询模式驱动PDPK,第一核在中断方式PDPK的协助下,实现对第一队列中的目标控制报文进行中断处理;第二核在轮询模式驱动PDPK的协助下,实现对第二队列中的业务报文进行轮询处理。
可选地,第一核和第一队列属于控制面,第二核和第二队列属于数据面。
可选地,第一核还用于对其他数据进行处理,其中,其他数据不包括控制报文以及业务报文。
第三方面,提供了一种服务器系统,包括网卡和第一处理器,网卡包括第一网卡队列,第一处理器包括第一处理核,网卡用于接收来自外部网络的第一报文,第一报文携带有第一报文识别信息;网卡用于根据第一报文识别信息确定第一报文为目标控制报文;网卡用于将目标控制报文存储到网卡的第一网卡队列中并产生中断信号;第一处理器用于接收中断信号,并通知第一处理器的第一处理核对第一网卡队列中的目标控制报文进行中断处理。
可选地,网卡还包括第二网卡队列,网卡还用于接收来自外部网络的第二报文,第二报文携带有第二报文识别信息;网卡还用于根据第二报文识别信息确定第二报文为业务报文;网卡还用于将业务报文存储到第二网卡队列中,其中,第二网卡队列中的业务报文由第一处理器的第二处理核进行轮询处理。
可选地,网卡还用于根据第一报文识别信息确定第一报文为目标控制报文,包括:
网卡还用于将第一报文识别信息与预先记录的目标控制报文类型信息进行比较,在第一报文识别信息与目标报文类型信息匹配的情况下,确定第一报文为目标控制报文。另外,网卡将第二报文识别信息与目标报文类型信息进行匹配,在第二报文识别信息与目标报文类型信息不匹配的情况下,确定第二报文为业务报文。
可选地,网卡还用于在确认VRRP报文头携带的协议类型与预先存储的目标控制报文类型信息中的VRRP协议类型相同,且VRRP报文头携带的VID标识与预先存储的目标控制报文类型信息中的VID标识相同的情况下,确定第一报文为目标控制报文。
可选地,网卡还用于接收来自外部网络的第一报文之前,该方法还包括:网卡接收来自第一处理器的配置信息,配置信息包括目标控制报文类型信息;网卡根据配置信息创建第一内存队列,并记录配置信息。
可选地,处理器包括:中断方式PDPK以及轮询模式驱动PDPK,第一核在中断方式PDPK的协助下,实现对第一队列中的目标控制报文进行中断处理;第二核在轮询模式驱动PDPK的协助下,实现对第二队列中的业务报文进行轮询处理。
可选地,第一核和第一队列属于控制面,所述第二核和第二队列属于数据面。
可选地,第一核还用于对其他数据进行处理,其中,其他数据不包括控制报文以及业务报文。
第四方面,提供了一种网卡,包括第二处理器和存储器,第二处理器执行存储器中的代码以使得网卡执行如第一方面任一项的方法。
第五方面,提供了一种非瞬态存储介质,其特征在于,包括指令,当指令在网卡上运行时,使得网卡执行如第一方面任一项的方法。
第六方面,提供了一种计算机程序产品,当计算机程序产品被计算机读取并执行时,如第一方面任一项的方法将被执行。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请涉及的一种网络的结构示意图;
图2是本申请涉及的一种服务器节点的结构示意图;
图3是本申请涉及的一种服务器节点与网卡之间的通讯关系示意图;
图4是本申请涉及的一种服务器节点与网卡之间的具体通讯关系示意图;
图5是本申请涉及的另一种服务器节点的结构示意图;
图6是本申请涉及的一种服务器节点与网卡之间通过PMD DPDK进行通信的示意图;
图7是本申请涉及的一种服务器节点与网卡之间通过PMD DPDK以及Int DPDK进行通信的示意图;
图8是本申请涉及的一种第二处理器的结构示意图;
图9是本申请涉及的一种VRRP报文的结构示意图;
图10是本申请涉及的一种报文处理方法的流程示意图;
图11是本申请涉及的一种报文处理方法的流程交互图;
图12是本申请提供的一种报文处理装置的结构示意图;
图13是本申请提供的一种服务器节点的结构示意图。
具体实施方式
为了便于理解,首先对本申请涉及的服务器进行详细的介绍。
如图1所示,服务器节点110是通过网络120为终端设备130提供各种服务的设备,例如,邮件服务、打印服务、流媒体服务、电子商务服务、数据库服务、代理服务等等。服务器节点110可以是邮件服务器、打印服务器、流媒体服务器、电子商务服务器、数据库服务器、代理服务器等等。可选地,服务器节点110可以是大容量、高性能以及高并发的服务器。终端设备130可以是可穿戴设备、车载设备、智能手机、平板电脑、笔记本电脑以及台式电脑等等。网络可以是广域网,也可以是局域网等等。应理解,上述例子中服务器节点110和终端设备130的数量和类型可以任意设置,此处不作具体限定。
如图2所示,图2所示的服务器节点110可以包括:第一处理器111以及网卡(NIC)112。其中,第一处理器111可以是服务器节点的运算核心和控制核心,例如,x86处理器等等。第一处理器111可以包括一个或者多个核心。网卡112(network interface card)又可以称为网络接口控制器(networkinterfacecontroller,NIC),网络适配器(networkadapter),或局域网接收器(LAN adapter)等等,是用于在网络上进行通讯的硬件,例如,通用网卡或者智能网卡等等。网卡112中可以包括第二处理器以及内存,其中,内存中包括多个网卡队列,例如,网卡队列1至网卡队列8。可选地,服务器节点110的硬件层还可以包括根复合体(root complex,RC)113、内存114、显卡115、磁盘116以及开关(switch)117等等。
如图3所示,服务器节点110中的第一处理器111和网卡112之间进行报文传输。也就是说,第一处理器111将报文发送给网卡112,以使得网卡将接收到的报文发送到网络中去,以及,网卡112将从网络接收到的报文发送给处理器111,以提供给应用进行使用。
报文可以包括业务报文以及控制报文。其中,业务报文的流量比较大,主要用于传输用户数据,例如,视频数据、音频数据以及文字数据等等。控制报文的流量比较少,主要用于传输通信流程中的控制命令,例如,链路协商以及心跳链路等等。协议报文可以是路由器冗余协议(virtual router redundancy protocol,VRRP)报文、互联网控制消息协议(Internet Control Message Protocol,ICMP)报文,也可以是链路汇聚控制协议(LinkAggregation Control Protocol,LACP)报文等等。尽管控制报文的流量比较小,但是,控制报文在通信流程中担当了比较重要的作用,一旦控制报文未能及时被处理,可能会导致通信流程出现崩溃。因此,在数据报文和控制报文在同一个面上进行传输时,如果业务报文的流量比较大,处理器可能不能及时处理控制报文,从而导致通信流程发生崩溃。
为了解决上述问题,第一处理器111和网卡112之间的报文传输方式可以是:将业务报文和控制报文分开进行传输,即,将业务报文和控制报文进行隔离,令业务报文在数据面上进行传输,控制报文在控制面上进行传输,从而能够有效地避免控制报文淹没在业务报文中,无法及时被第一处理器进行处理。以图4所示的例子为例,图中虚线左边为数据面,用于传输业务报文,图中虚线右边为控制面,用于传输控制报文。图中虚线左边的数据面包括3组网卡队列,其中,核0对应用于传输上行数据的网卡队列1和用于传输下行数据的网卡队列2,核1对应用于传输上行数据的网卡队列3和用于传输下行数据的网卡队列4,核2对应用于传输上行数据的网卡队列5和用于传输下行数据的网卡队列6。图中虚线右边的控制面包括1组网卡队列,其中,核3对应用于传输上行数据的网卡队列7和用于传输下行数据的网卡队列8。
下面将以核3以及核3对应的网卡队列7和网卡队列8为例,说明控制报文的传输(包括上行传输以及下行传输)过程。对于上行传输来说,网卡从网络接收到第一报文之后,通过第二处理器识别第一报文是否为目标控制报文。当第一报文是目标控制报文时,第二处理直接将目标控制报文发送至网卡队列7。第一处理器在网卡队列1至网卡队列8中进行轮询,当轮询到网卡队列7时,核3从网卡队列7中取出目标控制报文,并发送给上层的应用使用。对于下行传输来说,网卡从第一处理器接收到第一报文之后,通过第二处理器识别第一报文是否为目标控制报文。当第一报文是目标控制报文时,第二处理器直接将目标控制报文发送至网卡队列8。第一处理器在网卡队列1至网卡队列8中进行轮询,当轮询到网卡队列8时,核3从网卡队列8中取出目标控制报文,并发送到网络中。
下面将以核0以及核0对应的网卡队列1和网卡队列2为例,说明业务报文的传输(包括上行传输以及下行传输)过程。对于上行传输来说,网卡从网络接收到第二报文之后,通过第二处理器识别第二报文是否为业务报文。当第二报文是业务报文时,第二处理器对业务报文进行哈希运算,从而在数据面的用于传输上行数据的网卡队列1、网卡队列3以及网卡队列5中选择其中一个队列,并将业务报文存储到被选择的网卡队列(假设为网卡队列1)中。第一处理器在网卡队列1至网卡队列8中进行轮询,当轮询到网卡队列1时,核0从网卡队列1中取出业务报文,并发送给上层的应用使用。对于下行传输来说,网卡从第一处理器接收到第二报文之后,通过第二处理器确定第二报文是否为业务报文。当第二报文是业务报文时,网卡通过第二处理器对业务报文进行哈希运算,从而在数据面的用于传输下行数据的网卡队列2、网卡队列4以及网卡队列6中选择其中一个网卡队列,并将第二报文存储到被选择的网卡队列(假设为网卡队列2)中。第一处理器在网卡队列1至网卡队列8中进行轮询,当轮询到网卡队列2时,核0从网卡队列2中取出业务报文,并发送到网络中。应理解,核1和核2对应的网卡队列的业务报文处理过程与核0对应的网卡队列的业务报文处理过程相类似,此处不在展开描述。
为了能够实现上述功能,如图5所示,服务器节点110可以在图2所示的服务器节点的硬件层之上,设置软件层。软件层主要包括操作系统以及多个应用,其中,操作系统中可以包括数据平面开发套件(Data Plane Development Kit,DPDK),这里的DPDK可以包括轮询模式驱动(poll-mode driver,PMD)DPDK。如图6所示,第一处理器可以通轮询模式驱动(poll-mode driver,PMD)数据平面开发套件(Data Plane Development Kit,DPDK)实现对网卡队列1至网卡队列8进行轮询。
在上述方案中,需要独占整个核3进行目标控制报文的转发,但是,目标控制报文的流量比较小,实际上核3的资源仅仅使用到了不到1%,造成了核3的巨大的资源浪费。
为了解决上述问题,本申请提出了一种控制报文发送方法以及服务器节点,能够有效地提高第一处理器的资源的利用率。
继续以图4所示的服务器节点为例,详细说明本申请的控制报文发送方法中目标控制报文以业务报文的传输过程。
下面将以核3以及核3对应的网卡队列7和网卡队列8为例,说明控制面上的控制报文的传输过程。对于上行传输来说,网卡从网络接收到第一报文之后,通过第二处理器识别第一报文是是否为目标控制报文。当第一报文是目标控制报文时,第二处理器直接将目标控制报文发送至网卡队列7,并产生中断信号。第一处理器在接收到中断信号之后,指示核3从网卡队列7中取出目标控制报文,并发送给上层的应用使用。对于下行传输来说,网卡从第一处理器接收到第一报文之后,第二处理器识别第一报文是否为目标控制报文。当第一报文是目标控制报文时,第二处理器直接将目标控制报文发送至网卡队列8,并产生中断信号。第一处理器接收到中断信号之后,指示核3从网卡队列8中取出目标控制报文,并发送到网络中。在上述过程中,核3处于非独占的状态,除了能用于处理网卡队列7以及网卡队列8中的目标控制报文之外,还能被用于处理其他数据。其中,其他数据是指除了目标控制报文以及业务报文之外的数据。
下面将以核0以及核0对应的网卡队列1和网卡队列2为例,说明数据面上的业务报文的传输过程。对于上行传输来说,网卡从网络接收到第二报文之后,通过第二处理器识别第二报文是否为业务报文。当第二报文是业务报文时,网卡通过第二处理器对业务报文进行哈希计算,从而在数据面的用于传输上行数据的网卡队列1、网卡队列3以及网卡队列5中选择其中一个网卡队列,并将业务报文存储到被选择的网卡队列(假设为网卡队列1)中。第一处理器在队列1至队列6中进行轮询,当轮询到网卡队列1时,核0从网卡队列1中取出业务报文,并发送给上层的应用使用。对于下行传输来说,网卡从第一处理器接收到第二报文之后,通过第二处理器识别第二报文是否为业务报文。当第二报文是业务报文时,网卡通过第二处理器对业务报文进行哈希运算,从而在数据面的用于传输下行数据的网卡队列2、网卡队列4以及网卡队列6中选择其中一个网卡队列,并将业务报文存储到被选择的网卡队列(假设为网卡队列2)中。第一处理器在网卡队列1至网卡队列6中进行轮询,当轮询到网卡队列2时,核0被独占,核0从网卡队列2中取出业务报文,并发送到网络中。在上述过程中,核0处于被独占的状态,只能用于处理网卡队列1以及网卡队列2中的业务报文,不能被用于处理其他的数据。应理解,核1和核2对应的网卡队列的业务报文处理过程与核0对应的网卡队列的业务报文处理过程相类似,此处不在展开描述。
在上述方案中,核3除了用于进行控制报文的转发,还用于处理其他数据,能够避免核3中的资源被浪费。并且,随着控制报文的类型逐渐增加,将会不断提高核3的资源使用率,提高转发面的性能。
在一更具体的实施例中,如图7所示,服务器节点110的软件层主要包括操作系统以及多个应用,其中,操作系统中可以包括数据平面开发套件(Data Plane DevelopmentKit,DPDK),这里的DPDK可以包括轮询模式驱动(poll-mode driver,PMD)DPDK,还包括中断DPDK。简单来说,与图6所示的服务器节点相比,图7所示的服务器节点新增加了中断DPDK。如图7所示,第一处理器可以通过轮询模式驱动(poll-mode driver,PMD)数据平面开发套件(Data Plane Development Kit,DPDK)实现对网卡队列1至网卡队列6进行轮询处理,第一处理器可以通过中断DPDK负责对网卡队列7和网卡队列8进行中断处理。
基于图7所示的服务器节点110,服务器节点110和网卡112之间的报文传输方式可以是:将业务报文和控制报文分开进行传输,即,业务报文在数据面上进行传输,控制报文在控制面上进行传输,以将业务报文和数据报文进行隔离,从而能够有效地避免控制报文淹没在业务报文中,无法及时被处理器进行处理。此外,PMD PDPK负责以轮询方式处理数据面上的业务报文,Int DPDK负责以中断方式处理控制面上的控制报文。这里,PMD PDPK采用的是轮询方式,需要独占内核,也就是说,内核专门用于处理对应队列中的业务报文,不能用于处理其他的数据(例如其他进程的数据),Int PDPK采用的是中断方式,不需要独占内核,也就是说,内核除了用于处理队列中的控制报文之外,还能用于处理其他的数据(例如其他进程的数据)。以图7所示的例子为例,图中虚线左边为数据面,用于传输业务报文,图中虚线右边为控制面,用于传输控制报文。图中虚线左边的数据面包括3组网卡队列,其中,核0对应用于传输上行数据的网卡队列1和用于传输下行数据的网卡队列2,核1对应用于传输上行数据的网卡队列3和用于传输下行数据的网卡队列4,核2对应用于传输上行数据网卡队列5和用于传输下行数据的网卡队列6。PMD PDPK负责处理网卡队列1至网卡队列6的业务报文。图中虚线右边的控制面包括1组队列,其中,核3对应用于传输上行数据的网卡队列7和用于传输下行数据的网卡队列8。Int PDPK负责处理网卡队列7以及网卡队列8的控制报文。简单来说,与图6相比,图7所示的服务器节点作出如下改进:如图中虚线框所示,在软件层中增加中断DPDK(Int DPDK),并且,由中断DPDK负责对应网卡队列7和网卡队列8,而,PMDPDPK负责对应网卡队列1至网卡队列6。
在一具体的实施例中,所述网卡根据所述第一报文识别信息确定所述第一报文为目标控制报文,包括:所述网卡将所述第一报文识别信息与预先记录的目标控制报文类型信息进行比较,在所述第一报文识别信息与所述目标报文类型信息匹配的情况下,确定所述第一报文为目标控制报文。更具体地,网卡在确认所述VRRP报文头携带的协议类型与预先存储的目标控制报文类型信息中的VRRP协议类型相同,且所述VRRP报文头携带的虚拟路由器标识(virtual router ID,VID)标识与预先存储的目标控制报文类型信息中的VID标识相同的情况下,确定所述第一报文为目标控制报文。如图8所示,以控制报文为VRRP报文为例,VRRP报文包括4位的版本号(Version)、4位的类型(Type)、8位的配置的VRRP备份组号(virtual rtr ID)、8位的优先权(Priority)、8位的备份组虚拟地址个数(Count IPAddrs)、8位的验证类型(Auth Type)、8位的发送报文时间间隔(AdverInt)、8位的校验和(Checksum)、32位的IP地址(1)~32位的IP地址(n)、验证字(Authentication)(1)以及验证字(2)。因此,网卡可以根据VRRP报文中的VID标识((virtual router ID,即virtual rtrID字段)识别出VRRP报文头携带的VID标识是否与预先存储的目标控制报文类型信息中的VID标识相同。应理解,上述仅仅以VRRP报文为例进行说明,但是,在实际应用中,还可以是其他报文,此处不作具体限定。
在执行上述步骤之前,需要分别对第一处理器以及网卡进行配置。其中,第一处理器的配置包括以下几个方面:(1)注册中断处理函数,其中,中断处理函数用于调用第一处理器的第一处理核对所述第一网卡队列中的所述目标控制报文进行处理。(2)创建中断线程,其中,所述中断线程用于运行所述中断处理函数。(3)创建中断事件,并将中断事件进行存储,其中,中断事件在第一处理器接收到中断信号时触发,并传递给中断处理函数。网卡的配置包括以下几个方面:(1)目标控制报文类型信息,用于识别报文是否为目标控制报文。(2)为目标控制报文提供服务的处理核、网卡队列以及个数。
在一具体的实施例中,如图9所示,所述第一处理器内可以运行DPDK软件中的:特定队列配置(Dedicated qeue md)进程、特定队列处理注册和维护(Proto process md)进程、中断处理(Intr process md)进程、FIR direct md进程以及EAL进程等等。其中,Dedicated qeue md进程用于配置网卡队列7以及网卡队列8的具体内容;配置网卡队列7以及网卡队列8处理报文类型;配置网卡队列7以及网卡队列8里绑核对应关系;配置协议类型优先级,支持目标控制报文配置查询功能和统一接口。Proto process md进程用于控制网卡队列7以及网卡队列8处理注册和维护模块,支持目标控制报文基于类型的处理流程注册。Intr process md进程用于完成中断事件注册;完成智能网卡中断处理。FIR Direct md用于配置网卡PMD驱动支持特定队列报文处理功能;支持单独、多个特定报文类型处理,将报文准确送入对应网卡队列中。
参见图10,图10是本申请提供的一种报文处理方法的流程示意图。本实施方式的方法应用于网卡,所述网卡包括第一网卡队列,包括:
S101:所述网卡接收来自外部网络的第一报文,所述第一报文携带有第一报文识别信息。
在一具体的实施例中,网卡(network interface card)又可以称为网络接口控制器(networkinterfacecontroller,NIC),网络适配器(network adapter),或局域网接收器(LAN adapter)等等,是用于在网络上进行通讯的硬件,例如,通用网卡或者智能网卡等等。举例而言,网卡用于运行DPDK软件中的接收方扩展(receive side scaling,RSS)进程和FD(flow direct)进程等等。
在一具体的实施例中,第一报文可以包括业务报文以及控制报文。其中,业务报文的流量比较大,主要用于传输用户数据,例如,视频数据、音频数据以及文字数据等等。控制报文的流量比较少,主要用于传输通信流程中的控制命令,例如,链路协商以及心跳链路等等。协议报文可以是路由器冗余协议(virtual router redundancy protocol,VRRP)报文、互联网控制消息协议(Internet Control Message Protocol,ICMP)报文,也可以是链路汇聚控制协议(Link Aggregation Control Protocol,LACP)报文等等。
在一具体的实施例中,将业务报文和控制报文分开进行传输,即,将业务报文和控制报文进行隔离,令业务报文在数据面上进行传输,控制报文在控制面上进行传输,从而能够有效地避免控制报文淹没在业务报文中,无法及时被第一处理器进行处理。以图4所示的例子为例,图中虚线左边为数据面,用于传输业务报文,图中虚线右边为控制面,用于传输控制报文。图中虚线左边的数据面包括3组网卡队列,其中,核0对应用于传输上行数据的网卡队列1和用于传输下行数据的网卡队列2,核1对应用于传输上行数据的网卡队列3和用于传输下行数据的网卡队列4,核2对应用于传输上行数据的网卡队列5和用于传输下行数据的网卡队列6。图中虚线右边的控制面包括1组网卡队列,其中,核3对应用于传输上行数据的网卡队列7和用于传输下行数据的网卡队列8。
S102:所述网卡根据所述第一报文识别信息确定所述第一报文为目标控制报文。
在一具体的实施例中,所述网卡根据所述第一报文识别信息确定所述第一报文为目标控制报文,包括:所述网卡将所述第一报文识别信息与预先记录的目标控制报文类型信息进行比较,在所述第一报文识别信息与所述目标报文类型信息匹配的情况下,确定所述第一报文为目标控制报文。更具体地,网卡在确认所述VRRP报文头携带的协议类型与预先存储的目标控制报文类型信息中的VRRP协议类型相同,且所述VRRP报文头携带的VID标识与预先存储的目标控制报文类型信息中的VID标识相同的情况下,确定所述第一报文为目标控制报文。如图9所示,以控制报文为VRRP报文为例,VRRP报文包括4位的版本号(Version)、4位的类型(Type)、8位的配置的VRRP备份组号(virtual rtr ID)、8位的优先权(Priority)、8位的备份组虚拟地址个数(Count IP Addrs)、8位的验证类型(Auth Type)、8位的发送报文时间间隔(AdverInt)、8位的校验和(Checksum)、32位的IP地址(1)~32位的IP地址(n)、验证字(Authentication)(1)以及验证字(2)。因此,网卡可以根据VRRP报文中的VID标识(即,virtual rtr ID字段)识别出VRRP报文头携带的VID标识是否与预先存储的目标控制报文类型信息中的VID标识相同。应理解,上述仅仅以VRRP报文为例进行说明,但是,在实际应用中,还可以是其他报文,此处不作具体限定。
S103:所述网卡将所述目标控制报文存储到所述网卡的第一网卡队列中并产生中断信号,其中所述中断信号用于通知第一处理器的第一处理核对所述第一网卡队列中的所述目标控制报文进行中断处理。
在一具体的实施例中,网卡中可以包括第二处理器以及内存,其中,内存中包括多个网卡队列,例如,网卡队列1至网卡队列8。
继续以图4所示的服务器节点为例,详细说明本申请的控制报文发送方法中目标控制报文以业务报文的传输过程。
下面将以核3以及核3对应的网卡队列7和网卡队列8为例,说明控制面上的控制报文的传输过程。对于上行传输来说,网卡从网络接收到第一报文之后,通过第二处理器识别第一报文是是否为目标控制报文。当第一报文是目标控制报文时,第二处理器直接将目标控制报文发送至网卡队列7,并产生中断信号。第一处理器在接收到中断信号之后,指示核3从网卡队列7中取出目标控制报文,并发送给上层的应用使用。对于下行传输来说,网卡从第一处理器接收到第一报文之后,第二处理器识别第一报文是否为目标控制报文。当第一报文是目标控制报文时,第二处理器直接将目标控制报文发送至网卡队列8,并产生中断信号。第一处理器接收到中断信号之后,指示核3从网卡队列8中取出目标控制报文,并发送到网络中。在上述过程中,核3处于非独占的状态,除了能用于处理网卡队列7以及网卡队列8中的目标控制报文之外,还能被用于处理其他数据。其中,其他数据是指除了目标控制报文以及业务报文之外的数据。
在一更具体的实施例中,如图7所示,服务器节点的软件层主要包括操作系统以及多个应用,其中,操作系统中可以包括数据平面开发套件(Data Plane Development Kit,DPDK),这里的DPDK可以包括轮询模式驱动(poll-mode driver,PMD)DPDK,还包括中断DPDK。第一处理器可以通过中断DPDK负责对网卡队列7和网卡队列8进行中断处理。
为了简便陈述,本实施例并未对报文处理方法进行详细的介绍,具体可以参见图1至图9以及相关描述。
参见图11,图11是本申请提供的一种报文处理方法的流程示意图。本实施方式的方法应用于服务器节点,所述服务器节点包括第一处理器,所述第一处理器包括多个核,所述网卡包括第一网卡队列和第二处理器,所述方法包括:
S201:所述网卡接收来自外部网络的第一报文,所述第一报文携带有第一报文识别信息。
在一具体的实施例中,网卡(network interface card)又可以称为网络接口控制器(networkinterfacecontroller,NIC),网络适配器(network adapter),或局域网接收器(LAN adapter)等等,是用于在网络上进行通讯的硬件,例如,通用网卡或者智能网卡等等。网卡中可以运行接收方扩展(receive side scaling,RSS)进程和FD(flow direct)进程等等。
在一具体的实施例中,第一报文可以包括业务报文以及控制报文。其中,业务报文的流量比较大,主要用于传输用户数据,例如,视频数据、音频数据以及文字数据等等。控制报文的流量比较少,主要用于传输通信流程中的控制命令,例如,链路协商以及心跳链路等等。协议报文可以是路由器冗余协议(virtual router redundancy protocol,VRRP)报文、互联网控制消息协议(Internet Control Message Protocol,ICMP)报文,也可以是链路汇聚控制协议(Link Aggregation Control Protocol,LACP)报文等等。
在一具体的实施例中,将业务报文和控制报文分开进行传输,即,将业务报文和控制报文进行隔离,令业务报文在数据面上进行传输,控制报文在控制面上进行传输,从而能够有效地避免控制报文淹没在业务报文中,无法及时被第一处理器进行处理。以图4所示的例子为例,图中虚线左边为数据面,用于传输业务报文,图中虚线右边为控制面,用于传输控制报文。图中虚线左边的数据面包括3组网卡队列,其中,核0对应用于传输上行数据的网卡队列1和用于传输下行数据的网卡队列2,核1对应用于传输上行数据的网卡队列3和用于传输下行数据的网卡队列4,核2对应用于传输上行数据的网卡队列5和用于传输下行数据的网卡队列6。图中虚线右边的控制面包括1组网卡队列,其中,核3对应用于传输上行数据的网卡队列7和用于传输下行数据的网卡队列8。
S202:所述网卡根据所述第一报文识别信息确定所述第一报文为目标控制报文。
在一具体的实施例中,所述网卡根据所述第一报文识别信息确定所述第一报文为目标控制报文,包括:所述网卡将所述第一报文识别信息与预先记录的目标控制报文类型信息进行比较,在所述第一报文识别信息与所述目标报文类型信息匹配的情况下,确定所述第一报文为目标控制报文。更具体地,网卡在确认所述VRRP报文头携带的协议类型与预先存储的目标控制报文类型信息中的VRRP协议类型相同,且所述VRRP报文头携带的VID标识与预先存储的目标控制报文类型信息中的VID标识相同的情况下,确定所述第一报文为目标控制报文。如图9所示,以控制报文为VRRP报文为例,VRRP报文包括4位的版本号(Version)、4位的类型(Type)、8位的配置的VRRP备份组号(virtual rtr ID)、8位的优先权(Priority)、8位的备份组虚拟地址个数(Count IP Addrs)、8位的验证类型(Auth Type)、8位的发送报文时间间隔(AdverInt)、8位的校验和(Checksum)、32位的IP地址(1)~32位的IP地址(n)、验证字(Authentication)(1)以及验证字(2)。因此,网卡可以根据VRRP报文中的VID标识(即,virtual rtr ID字段)识别出VRRP报文头携带的VID标识是否与预先存储的目标控制报文类型信息中的VID标识相同。应理解,上述仅仅以VRRP报文为例进行说明,但是,在实际应用中,还可以是其他报文,此处不作具体限定。
S203:所述网卡将所述目标控制报文存储到所述网卡的第一网卡队列中并产生中断信号,并向第一处理器发送中断信号。相应地,第一处理器接收网卡发送的中断信号。
在一具体的实施例中,网卡中可以包括第二处理器以及内存,其中,内存中包括多个网卡队列,例如,网卡队列1至网卡队列8。
S204:第一处理器的第一处理核对所述第一网卡队列中的所述目标控制报文进行中断处理。
在一更具体的实施例中,继续以图4所示的服务器节点为例,详细说明本申请的控制报文发送方法中目标控制报文以业务报文的传输过程。
下面将以核3以及核3对应的网卡队列7和网卡队列8为例,说明控制面上的控制报文的传输过程。对于上行传输来说,网卡从网络接收到第一报文之后,通过第二处理器识别第一报文是是否为目标控制报文。当第一报文是目标控制报文时,第二处理器直接将目标控制报文发送至网卡队列7,并产生中断信号。第一处理器在接收到中断信号之后,指示核3从网卡队列7中取出目标控制报文,并发送给上层的应用使用。对于下行传输来说,网卡从第一处理器接收到第一报文之后,第二处理器识别第一报文是否为目标控制报文。当第一报文是目标控制报文时,第二处理器直接将目标控制报文发送至网卡队列8,并产生中断信号。第一处理器接收到中断信号之后,指示核3从网卡队列8中取出目标控制报文,并发送到网络中。在上述过程中,核3处于非独占的状态,除了能用于处理网卡队列7以及网卡队列8中的目标控制报文之外,还能被用于处理其他数据。其中,其他数据是指除了目标控制报文以及业务报文之外的数据。
在一更具体的实施例中,如图7所示,服务器节点的软件层主要包括操作系统以及多个应用,其中,操作系统中可以包括数据平面开发套件(Data Plane Development Kit,DPDK),这里的DPDK可以包括轮询模式驱动(poll-mode driver,PMD)DPDK,还包括中断DPDK。第一处理器可以通过中断DPDK负责对网卡队列7和网卡队列8进行中断处理。
为了简便陈述,本实施例并未对报文处理方法进行详细的介绍,具体可以参见图1至图9以及相关描述。
参见图12,图12是本申请提供的一种报文处理装置的结构示意图。本实施方式的报文处理装置,包括:接收模块210、确定模块220以及中断模块230。
所述接收模块210用于接收来自外部网络的第一报文,所述第一报文携带有第一报文识别信息。
在一具体的实施例中,网卡(network interface card)又可以称为网络接口控制器(networkinterfacecontroller,NIC),网络适配器(network adapter),或局域网接收器(LAN adapter)等等,是用于在网络上进行通讯的硬件,例如,通用网卡或者智能网卡等等。网卡中可以运行接收方扩展(receive side scaling,RSS)进程和FD(flow direct)进程等等。
在一具体的实施例中,第一报文可以包括业务报文以及控制报文。其中,业务报文的流量比较大,主要用于传输用户数据,例如,视频数据、音频数据以及文字数据等等。控制报文的流量比较少,主要用于传输通信流程中的控制命令,例如,链路协商以及心跳链路等等。协议报文可以是路由器冗余协议(virtual router redundancy protocol,VRRP)报文、互联网控制消息协议(Internet Control Message Protocol,ICMP)报文,也可以是链路汇聚控制协议(Link Aggregation Control Protocol,LACP)报文等等。
在一具体的实施例中,将业务报文和控制报文分开进行传输,即,将业务报文和控制报文进行隔离,令业务报文在数据面上进行传输,控制报文在控制面上进行传输,从而能够有效地避免控制报文淹没在业务报文中,无法及时被第一处理器进行处理。以图4所示的例子为例,图中虚线左边为数据面,用于传输业务报文,图中虚线右边为控制面,用于传输控制报文。图中虚线左边的数据面包括3组网卡队列,其中,核0对应用于传输上行数据的网卡队列1和用于传输下行数据的网卡队列2,核1对应用于传输上行数据的网卡队列3和用于传输下行数据的网卡队列4,核2对应用于传输上行数据的网卡队列5和用于传输下行数据的网卡队列6。图中虚线右边的控制面包括1组网卡队列,其中,核3对应用于传输上行数据的网卡队列7和用于传输下行数据的网卡队列8。
所述确定模块220用于根据所述第一报文识别信息确定所述第一报文为目标控制报文。
在一具体的实施例中,所述网卡根据所述第一报文识别信息确定所述第一报文为目标控制报文,包括:所述网卡将所述第一报文识别信息与预先记录的目标控制报文类型信息进行比较,在所述第一报文识别信息与所述目标报文类型信息匹配的情况下,确定所述第一报文为目标控制报文。更具体地,网卡在确认所述VRRP报文头携带的协议类型与预先存储的目标控制报文类型信息中的VRRP协议类型相同,且所述VRRP报文头携带的VID标识与预先存储的目标控制报文类型信息中的VID标识相同的情况下,确定所述第一报文为目标控制报文。如图9所示,以控制报文为VRRP报文为例,VRRP报文包括4位的版本号(Version)、4位的类型(Type)、8位的配置的VRRP备份组号(virtual rtr ID)、8位的优先权(Priority)、8位的备份组虚拟地址个数(Count IP Addrs)、8位的验证类型(Auth Type)、8位的发送报文时间间隔(AdverInt)、8位的校验和(Checksum)、32位的IP地址(1)~32位的IP地址(n)、验证字(Authentication)(1)以及验证字(2)。因此,网卡可以根据VRRP报文中的VID标识(即,virtual rtr ID字段)识别出VRRP报文头携带的VID标识是否与预先存储的目标控制报文类型信息中的VID标识相同。应理解,上述仅仅以VRRP报文为例进行说明,但是,在实际应用中,还可以是其他报文,此处不作具体限定。
所述中断模块230用于将所述目标控制报文存储到所述网卡的第一网卡队列中并产生中断信号,其中所述中断信号用于通知第一处理器的第一处理核对所述第一网卡队列中的所述目标控制报文进行中断处理。
在一更具体的实施例中,继续以图4所示的服务器节点为例,详细说明本申请的控制报文发送方法中目标控制报文以业务报文的传输过程。
下面将以核3以及核3对应的网卡队列7和网卡队列8为例,说明控制面上的控制报文的传输过程。对于上行传输来说,网卡从网络接收到第一报文之后,通过第二处理器识别第一报文是是否为目标控制报文。当第一报文是目标控制报文时,第二处理器直接将目标控制报文发送至网卡队列7,并产生中断信号。第一处理器在接收到中断信号之后,指示核3从网卡队列7中取出目标控制报文,并发送给上层的应用使用。对于下行传输来说,网卡从第一处理器接收到第一报文之后,第二处理器识别第一报文是否为目标控制报文。当第一报文是目标控制报文时,第二处理器直接将目标控制报文发送至网卡队列8,并产生中断信号。第一处理器接收到中断信号之后,指示核3从网卡队列8中取出目标控制报文,并发送到网络中。在上述过程中,核3处于非独占的状态,除了能用于处理网卡队列7以及网卡队列8中的目标控制报文之外,还能被用于处理其他数据。其中,其他数据是指除了目标控制报文以及业务报文之外的数据。
在一更具体的实施例中,如图7所示,服务器节点的软件层主要包括操作系统以及多个应用,其中,操作系统中可以包括数据平面开发套件(Data Plane Development Kit,DPDK),这里的DPDK可以包括轮询模式驱动(poll-mode driver,PMD)DPDK,还包括中断DPDK。第一处理器可以通过中断DPDK负责对网卡队列7和网卡队列8进行中断处理。
为了简便陈述,本实施例并未对报文处理方法进行详细的介绍,具体可以参见图1至图9以及相关描述。
参见图13,图13是本申请提供的一种服务器节点的结构示意图。本实施方式的服务器节点包括:包括一个或多个第一处理器311、网卡312和存储器313。其中,第一处理器311、网卡312和存储器313之间可以通过总线314连接。网卡312可以包括第二处理器315以及内存316。
第一处理器311包括一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central Processing Unit,CPU)、微处理器、微控制器、主处理器、控制器以及ASIC(Application Specific Integrated Circuit,专用集成电路)等等。第一处理器311执行各种类型的数字存储指令,例如存储在存储器313中的软件或者固件程序,它能提供较宽的多种服务。在一具体的实施例中,第一处理器311可以是x86处理器。
网卡312可以包括有线接口(例如以太网接口),用于与其他计算节点或用户进行通信。网卡312可以包括第二处理器315以及内存316。在一具体的实施例中,第二处理器可以是单片机、ARM处理器等等。内存316可以包括多个网卡队列。第二处理器执行如本申请的控制报文转发方法中的至少一部分。
存储器313可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器313也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)存储器313还可以包括上述种类的存储器的组合。存储器313可以存储有程序代码以及程序数据。
为了简便陈述,本实施例并未对报文处理方法进行详细的介绍,具体可以参见图1至图9以及相关描述。
上述方案中,网卡产生中断信号通知第一处理器的第一处理核通过中断的方式(非独占方式)对所述第一网卡队列中的所述目标控制报文进行中断处理,而不是以轮询的方式(独占方式)独占第一处理器的第一处理核,从而使得第一处理器的第一处理核还可以用于对其他数据进行处理,提高了第一处理核的资源利用率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘Solid State Disk(SSD))等。
Claims (13)
1.一种报文处理方法,所述方法应用于网卡,所述网卡包括第一网卡队列,其特征在于,所述方法包括:
所述网卡接收来自外部网络的第一报文,所述第一报文携带有第一报文识别信息;
所述网卡根据所述第一报文识别信息确定所述第一报文为目标控制报文;
所述网卡将所述目标控制报文存储到所述网卡的第一网卡队列中并产生中断信号,其中所述中断信号用于通知第一处理器的第一处理核对所述第一网卡队列中的所述目标控制报文进行中断处理。
2.根据权利要求1所述的方法,其特征在于,所述网卡还包括第二网卡队列,所述方法包括:
所述网卡接收来自外部网络的第二报文,所述第二报文携带有第二报文识别信息;
网卡根据第二报文识别信息确定所述第二报文为业务报文;
网卡将所述业务报文存储到第二网卡队列中,其中,所述第二网卡队列中的业务报文由所述第一处理器的第二处理核进行轮询处理。
3.根据权利要求1或2所述的方法,其特征在于,所述网卡根据所述第一报文识别信息确定所述第一报文为目标控制报文,包括:
所述网卡将所述第一报文识别信息与预先记录的目标控制报文类型信息进行比较,在所述第一报文识别信息与所述目标报文类型信息匹配的情况下,确定所述第一报文为目标控制报文。
4.根据权利要求3所述的方法,其特征在于,所述第一报文识别信息包括路由器冗余协议VRRP报文头,所述网卡将所述第一报文识别信息与预先记录的目标控制报文类型信息进行比较,在所述第一报文识别信息与所述目标报文类型信息匹配的情况下,确定所述第一报文为目标控制报文,包括:
所述网卡在确认所述VRRP报文头携带的协议类型与预先存储的目标控制报文类型信息中的VRRP协议类型相同,且所述VRRP报文头携带的虚拟路由器标识VID标识与预先存储的目标控制报文类型信息中的VID标识相同的情况下,确定所述第一报文为目标控制报文。
5.根据权利要求3或4所述的方法,其特征在于,所述网卡接收来自外部网络的第一报文之前,所述方法还包括:
所述网卡接收来自所述第一处理器的配置信息,所述配置信息包括所述目标控制报文类型信息;
所述网卡根据所述配置信息创建第一内存队列,并记录所述配置信息。
6.一种报文处理装置,其特征在于,所述装置设置于网卡,所述网卡包括第一网卡队列,所述装置包括:接收模块、确定模块以及中断模块;
所述接收模块用于接收来自外部网络的第一报文,所述第一报文携带有第一报文识别信息;
所述确定模块用于根据所述第一报文识别信息确定所述第一报文为目标控制报文;
所述中断模块用于将所述目标控制报文存储到所述网卡的第一网卡队列中并产生中断信号,其中所述中断信号用于通知第一处理器的第一处理核对所述第一网卡队列中的所述目标控制报文进行中断处理。
7.根据权利要求6所述的装置,其特征在于,所述网卡还包括第二网卡队列,所述装置还包括轮询模块,
所述接收模块还用于接收来自外部网络的第二报文,所述第二报文携带有第二报文识别信息;
所述确定模块还用于根据第二报文识别信息确定所述第二报文为业务报文;
所述轮询模块用于将所述业务报文存储到第二网卡队列中,其中,所述第二网卡队列中的业务报文由所述第一处理器的第二处理核进行轮询处理。
8.根据权利要求6或7所述的装置,其特征在于,
所述确定模块还用于将所述第一报文识别信息与预先记录的目标控制报文类型信息进行比较,在所述第一报文识别信息与所述目标报文类型信息匹配的情况下,确定所述第一报文为目标控制报文。
9.根据权利要求8所述的装置,其特征在于,
所述确定模块还用于在确认VRRP报文头携带的协议类型与预先存储的目标控制报文类型信息中的VRRP协议类型相同,且所述VRRP报文头携带的VID标识与预先存储的目标控制报文类型信息中的VID标识相同的情况下,确定所述第一报文为目标控制报文。
10.根据权利要求8或9所述的装置,其特征在于,所述装置还包括创建模块,
所述接收模块还用于接收来自所述第一处理器的配置信息,所述配置信息包括所述目标控制报文类型信息;
所述创建模块用于根据所述配置信息创建第一内存队列,并记录所述配置信息。
11.一种服务器系统,其特征在于,包括网卡和第一处理器,所述网卡包括第一网卡队列,所述第一处理器包括第一处理核,所述网卡用于接收来自外部网络的第一报文,所述第一报文携带有第一报文识别信息;
所述网卡用于根据所述第一报文识别信息确定所述第一报文为目标控制报文;
所述网卡用于将所述目标控制报文存储到所述网卡的第一网卡队列中并产生中断信号;
所述第一处理器用于接收所述中断信号,并通知所述第一处理器的第一处理核对所述第一网卡队列中的所述目标控制报文进行中断处理。
12.一种网卡,其特征在于,包括第二处理器和存储器,所述第二处理器执行所述存储器中的代码以使得所述网卡执行如权利要求1至5中任一权利要求所述的方法。
13.一种非瞬态存储介质,其特征在于,包括指令,当所述指令在网卡上运行时,使得所述网卡执行如权利要求1至5中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910580124.4A CN112152940B (zh) | 2019-06-28 | 2019-06-28 | 报文处理方法、装置以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910580124.4A CN112152940B (zh) | 2019-06-28 | 2019-06-28 | 报文处理方法、装置以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112152940A CN112152940A (zh) | 2020-12-29 |
CN112152940B true CN112152940B (zh) | 2022-08-09 |
Family
ID=73891673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910580124.4A Active CN112152940B (zh) | 2019-06-28 | 2019-06-28 | 报文处理方法、装置以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112152940B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113382014B (zh) * | 2021-06-23 | 2022-12-06 | 中移(杭州)信息技术有限公司 | 协商处理方法、装置、终端设备以及存储介质 |
CN115242711A (zh) * | 2022-07-14 | 2022-10-25 | 天翼云科技有限公司 | 一种报文传输方法及装置 |
CN115314262B (zh) * | 2022-07-20 | 2024-04-23 | 杭州熠芯科技有限公司 | 一种可信网卡的设计方法及其组网方法 |
US11979459B1 (en) * | 2023-10-12 | 2024-05-07 | International Business Machines Corporation | Configuration of data connections between a host and a shared network adapter |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752198A (zh) * | 2012-06-21 | 2012-10-24 | 北京星网锐捷网络技术有限公司 | 多核报文转发方法、多核处理器及网络设备 |
CN103825782A (zh) * | 2014-03-07 | 2014-05-28 | 杭州华三通信技术有限公司 | 一种利用核间中断定位不合理任务的方法和设备 |
CN104994032A (zh) * | 2015-05-15 | 2015-10-21 | 京信通信技术(广州)有限公司 | 一种信息处理的方法和装置 |
CN105337896A (zh) * | 2014-07-25 | 2016-02-17 | 华为技术有限公司 | 报文处理方法和装置 |
CN108965148A (zh) * | 2018-06-27 | 2018-12-07 | 新华三信息安全技术有限公司 | 一种处理器及报文处理方法 |
CN109257280A (zh) * | 2017-07-14 | 2019-01-22 | 深圳市中兴微电子技术有限公司 | 一种微引擎及其处理报文的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10616100B2 (en) * | 2016-11-03 | 2020-04-07 | Parallel Wireless, Inc. | Traffic shaping and end-to-end prioritization |
-
2019
- 2019-06-28 CN CN201910580124.4A patent/CN112152940B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752198A (zh) * | 2012-06-21 | 2012-10-24 | 北京星网锐捷网络技术有限公司 | 多核报文转发方法、多核处理器及网络设备 |
CN103825782A (zh) * | 2014-03-07 | 2014-05-28 | 杭州华三通信技术有限公司 | 一种利用核间中断定位不合理任务的方法和设备 |
CN105337896A (zh) * | 2014-07-25 | 2016-02-17 | 华为技术有限公司 | 报文处理方法和装置 |
CN104994032A (zh) * | 2015-05-15 | 2015-10-21 | 京信通信技术(广州)有限公司 | 一种信息处理的方法和装置 |
CN109257280A (zh) * | 2017-07-14 | 2019-01-22 | 深圳市中兴微电子技术有限公司 | 一种微引擎及其处理报文的方法 |
CN108965148A (zh) * | 2018-06-27 | 2018-12-07 | 新华三信息安全技术有限公司 | 一种处理器及报文处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112152940A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112152940B (zh) | 报文处理方法、装置以及系统 | |
US10826830B2 (en) | Congestion processing method, host, and system | |
TWI626537B (zh) | 分析包裝後修復的紀錄與使用的方法及系統 | |
CN109302466B (zh) | 数据处理方法、相关设备及计算机存储介质 | |
TWI712295B (zh) | 使用者終端和設備的綁定方法、裝置和系統 | |
CN113326228B (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
US9450868B2 (en) | Layer 2 packet switching without look-up table for ethernet switches | |
JP2019092217A (ja) | ネットワーキング技術 | |
EP3828709A1 (en) | Communication method and network card | |
US9548923B2 (en) | System and method for utilizing a unique identifier while registering a device in a network | |
WO2014004308A1 (en) | Device, system, and method for client-governed session persistency between one or more clients and servers of a data center | |
US9621633B2 (en) | Flow director-based low latency networking | |
CN111294416A (zh) | Ip地址获取的方法及相关产品 | |
US6742075B1 (en) | Arrangement for instigating work in a channel adapter based on received address information and stored context information | |
CN113014627B (zh) | 报文转发方法、装置、智能终端及计算机可读存储介质 | |
CN109698845B (zh) | 数据传输的方法、服务器、卸载卡及存储介质 | |
WO2018057165A1 (en) | Technologies for dynamically transitioning network traffic host buffer queues | |
CN109639555B (zh) | 链路层报文生成方法、链路层报文生成装置及终端设备 | |
US20220052902A1 (en) | Method for managing remote device through management device | |
CN112422457B (zh) | 报文处理方法、装置和计算机存储介质 | |
US10862849B2 (en) | Address resolution system | |
CN112615916A (zh) | 文件部署方法、装置、电子设备以及存储介质 | |
CN111240867A (zh) | 一种信息通讯系统及方法 | |
CN113132273A (zh) | 一种数据转发方法及装置 | |
WO2019015050A1 (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220210 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |