CN116668375B - 一种报文分流方法、装置、网络设备及存储介质 - Google Patents
一种报文分流方法、装置、网络设备及存储介质 Download PDFInfo
- Publication number
- CN116668375B CN116668375B CN202310957392.XA CN202310957392A CN116668375B CN 116668375 B CN116668375 B CN 116668375B CN 202310957392 A CN202310957392 A CN 202310957392A CN 116668375 B CN116668375 B CN 116668375B
- Authority
- CN
- China
- Prior art keywords
- message
- target
- network card
- original
- message type
- 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
- 238000000034 method Methods 0.000 title claims abstract description 120
- 238000013507 mapping Methods 0.000 claims abstract description 43
- 230000006870 function Effects 0.000 claims description 112
- 238000012545 processing Methods 0.000 claims description 64
- 238000004590 computer program Methods 0.000 claims description 9
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 17
- 238000005315 distribution function Methods 0.000 description 14
- 239000000284 extract Substances 0.000 description 8
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
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/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供了一种报文分流方法、装置、网络设备及存储介质,涉及通信技术领域,网络设备包括IO接口、可编程逻辑器件、网卡和多个CPU核,可编程逻辑器件连接在网卡和IO接口之间,CPU核与网卡连接,该方法包括:可编程逻辑器件通过IO接口,接收原始报文;对原始报文进行识别,得到原始报文的目标报文类型;将目标报文类型封装在原始报文中,得到目标报文;向网卡发送目标报文。网卡根据预先存储的报文类型与接收队列的映射关系,确定目标报文类型对应的目标接收队列,将目标报文存储到目标接收队列。应用本申请实施例提供的方案,可以提高报文分流的灵活性。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种报文分流方法、装置、网络设备及存储介质。
背景技术
为了提高处理网络数据流的性能,网络设备大多采用多核CPU(CentralProcessing Unit,中央处理器)处理数据流,通过负载分担策略,将数据流均分至多个CPU核,以并发处理的方式提高转发性能和网络吞吐。网络设备中,多个CPU核并发处理数据流的基础是现有的各类网卡提供的硬件分流功能,数据流在进入网卡后,网卡按照预定的报文识别流程,解析报文帧,提取出其中的报文信息,按照一定算法将报文分发到硬件的某一个接收队列,进行报文分流。但网卡支持的报文识别类型有限,无法灵活地对各类报文进行分流。
发明内容
本申请实施例的目的在于提供一种报文分流方法、装置、网络设备及存储介质,以提高报文分流的灵活性。具体技术方案如下:
第一方面,本申请实施例提供了一种报文分流方法,应用于网络设备中的可编程逻辑器件,所述网络设备还包括IO接口(Input/Output,输入输出)和网卡,所述可编程逻辑器件连接在所述网卡和所述IO接口之间;所述方法包括:
通过所述IO接口,接收原始报文;
对所述原始报文进行识别,得到所述原始报文的目标报文类型;
将所述目标报文类型封装在所述原始报文中,得到目标报文;
向所述网卡发送所述目标报文,以使所述网卡根据预先存储的报文类型与接收队列的映射关系,确定所述目标报文类型对应的目标接收队列,将所述目标报文存储到所述目标接收队列。
在一些实施例中,所述对所述原始报文进行识别,得到所述原始报文的目标报文类型的步骤,包括:
对所述原始报文进行识别,得到所述原始报文的原始报文类型;
若所述原始报文类型指示所述原始报文为高优先级报文,则确定预设报文类型为所述原始报文的目标报文类型;
若所述原始报文类型指示所述原始报文为普通优先级报文,则根据所述原始报文的报文信息,确定所述原始报文的目标报文类型。
在一些实施例中,所述根据所述原始报文的报文信息,确定所述原始报文的目标报文类型的步骤,包括:
计算所述原始报文的报文信息的哈希值;
提取所述哈希值中指定位置的值,作为所述原始报文的目标报文类型。
在一些实施例中,所述将所述目标报文类型封装在所述原始报文中,得到目标报文的步骤,包括:
在所述原始报文中添加报文类型字段,所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置;
将所述目标报文类型封装在所述报文类型字段中。
在一些实施例中,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
在一些实施例中,所述原始报文携带的CRC(Cyclic Redundancy Check,循环冗余校验)值与所述目标报文携带的CRC值相同;所述网卡的帧校验和功能关闭;
在将所述目标报文类型封装在所述原始报文中之前,所述方法还包括:
根据所述原始报文携带的CRC值,对所述原始报文进行CRC。
第二方面,本申请实施例提供了一种报文分流方法,应用于网络设备中的网卡,所述网络设备还包括IO接口和可编程逻辑器件,所述可编程逻辑器件连接在所述网卡和所述IO接口之间;所述方法包括:
接收所述可编程逻辑器件发送的目标报文,所述目标报文为所述可编程逻辑器件根据上述第一方面的方法得到的报文,所述目标报文携带目标报文类型;
根据预先存储的报文类型与接收队列的映射关系,确定所述目标报文类型对应的目标接收队列;
将所述目标报文存储到所述目标接收队列。
在一些实施例中,所述目标报文包括报文类型字段,所述报文类型字段用于填充所述目标报文类型;
所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置。
在一些实施例中,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
在一些实施例中,所述目标报文携带的CRC值与原始报文携带的CRC值相同;所述网卡的帧校验和功能关闭。
第三方面,本申请实施例提供了一种报文分流方法,应用于网络设备中的CPU核,所述网络设备还包括可编程逻辑器件、IO接口和网卡,所述可编程逻辑器件连接在所述网卡和所述IO接口之间,所述CPU核与所述网卡连接;所述方法包括:
从所述CPU核绑定的接收队列中,读取所述网卡存储到所述接收队列的目标报文,所述目标报文为所述可编程逻辑器件根据上述第一方面的方法得到的报文,所述目标报文携带目标报文类型;
剥掉所述目标报文中的所述目标报文类型,得到原始报文;
根据所述原始报文对应的处理规则,处理所述原始报文。
在一些实施例中,所述CPU核绑定多个接收队列;
所述从所述CPU核绑定的接收队列中,读取所述网卡存储到所述接收队列的目标报文的步骤,包括:
使用时间轮算法,从所述多个接收队列中,读取所述网卡存储到所述多个接收队列的目标报文。
在一些实施例中,所述目标报文包括报文类型字段,所述报文类型字段用于填充所述目标报文类型;
所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置;
所述剥掉所述目标报文中的所述目标报文类型,得到原始报文的步骤,包括:
剥掉所述目标报文中的所述报文类型字段,得到原始报文。
在一些实施例中,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
在一些实施例中,所述目标报文携带的CRC值与所述原始报文携带的CRC值相同;所述网卡的帧校验和功能关闭。
第四方面,本申请实施例提供了一种报文分流装置,应用于网络设备中的可编程逻辑器件,所述网络设备还包括IO接口和网卡,所述可编程逻辑器件连接在所述网卡和所述IO接口之间;所述装置包括:
第一接收模块,用于通过所述IO接口,接收原始报文;
识别模块,用于对所述原始报文进行识别,得到所述原始报文的目标报文类型;
封装模块,用于将所述目标报文类型封装在所述原始报文中,得到目标报文;
发送模块,用于向所述网卡发送所述目标报文,以使所述网卡根据预先存储的报文类型与接收队列的映射关系,确定所述目标报文类型对应的目标接收队列,将所述目标报文存储到所述目标接收队列。
在一些实施例中,所述识别模块,具体用于:
对所述原始报文进行识别,得到所述原始报文的原始报文类型;
若所述原始报文类型指示所述原始报文为高优先级报文,则确定预设报文类型为所述原始报文的目标报文类型;
若所述原始报文类型指示所述原始报文为普通优先级报文,则根据所述原始报文的报文信息,确定所述原始报文的目标报文类型。
在一些实施例中,所述识别模块,具体用于:
计算所述原始报文的报文信息的哈希值;
提取所述哈希值中指定位置的值,作为所述原始报文的目标报文类型。
在一些实施例中,所述封装模块,具体用于:
在所述原始报文中添加报文类型字段,所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置;
将所述目标报文类型封装在所述报文类型字段中。
在一些实施例中,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
在一些实施例中,所述原始报文携带的CRC值与所述目标报文携带的CRC值相同;所述网卡的帧校验和功能关闭;所述识别模块,还用于:
根据所述原始报文携带的CRC值,对所述原始报文进行CRC。
第五方面,本申请实施例提供了一种报文分流装置,应用于网络设备中的网卡,所述网络设备还包括IO接口和可编程逻辑器件,所述可编程逻辑器件连接在所述网卡和所述IO接口之间;所述装置包括:
第二接收模块,用于接收所述可编程逻辑器件发送的目标报文,所述目标报文为所述可编程逻辑器件根据上述第四方面的装置得到的报文,所述目标报文携带目标报文类型;
确定模块,用于根据预先存储的报文类型与接收队列的映射关系,确定所述目标报文类型对应的目标接收队列;
存储模块,用于将所述目标报文存储到所述目标接收队列。
在一些实施例中,所述目标报文包括报文类型字段,所述报文类型字段用于填充所述目标报文类型;所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置。
在一些实施例中,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
在一些实施例中,所述目标报文携带的CRC值与原始报文携带的CRC值相同;所述网卡的帧校验和功能关闭。
第六方面,本申请实施例提供了一种报文分流装置,应用于网络设备中的CPU核,所述网络设备还包括可编程逻辑器件、IO接口和网卡,所述可编程逻辑器件连接在所述网卡和所述IO接口之间,所述CPU核与所述网卡连接;所述装置包括:
读取模块,用于从所述CPU核绑定的接收队列中,读取所述网卡存储到所述接收队列的目标报文,所述目标报文为所述可编程逻辑器件根据上述第四方面的装置得到的报文,所述目标报文携带目标报文类型;
剥掉模块,用于剥掉所述目标报文中的所述目标报文类型,得到原始报文;
处理模块,用于根据所述原始报文对应的处理规则,处理所述原始报文。
在一些实施例中,所述CPU核绑定多个接收队列;所述读取模块,具体用于:
使用时间轮算法,从所述多个接收队列中,读取所述网卡存储到所述多个接收队列的目标报文。
在一些实施例中,所述目标报文包括报文类型字段,所述报文类型字段用于填充所述目标报文类型;所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置;所述剥掉模块,具体用于:
剥掉所述目标报文中的所述报文类型字段,得到原始报文。
在一些实施例中,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
在一些实施例中,所述目标报文携带的CRC值与原始报文携带的CRC值相同;所述网卡的帧校验和功能关闭。
第七方面,本申请实施例提供了一种网络设备,包括IO接口、可编程逻辑器件、网卡和多个CPU核,所述可编程逻辑器件连接在所述网卡和所述IO接口之间,所述CPU核与所述网卡连接;所述可编程逻辑器件执行上述第一方面的方法步骤,所述网卡执行上述第二方面的方法步骤,所述CPU核执行上述第三方面的方法步骤。
第八方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法步骤,或实现上述第二方面所述的方法步骤,或实现上述第三方面所述的方法步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中第一方面所述的方法步骤,或执行上述实施例中第二方面所述的方法步骤,或执行上述实施例中第三方面所述的方法步骤。
本申请实施例有益效果:
本申请实施例提供的技术方案中,网络设备通过IO接口接收原始报文,并在可编程逻辑器件中对原始报文进行识别,得到该原始报文的目标报文类型。通过向网卡发送携带目标报文类型的目标报文,可编程逻辑器件将识别得到的目标报文类型传输给网卡。进而,网卡根据目标报文携带的目标报文类型,以及预先存储的报文类型与接收队列的映射关系,采用网卡的硬件分流功能,进行报文类型与接收队列的归一化映射,确定目标报文类型对应的目标接收队列,将目标报文存储到目标接收队列,实现报文分流。应用本申请实施例提供的技术方案,在网络设备中增加可编程逻辑器件,将报文识别功能下沉到可编程逻辑器件中,并与网卡的硬件分流功能相结合,基于可编程逻辑器件对各类型报文的识别,将各类型报文定向分流到指定的接收队列,进而CPU核读取并处理该CPU核绑定的接收队列中存储的报文,实现了对从IO接口接收到的各类型报文进行分流和处理,报文分流不再受限于网卡支持的报文识别类型的限制,提高了报文分流的灵活性。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的网络设备的第一种结构示意图;
图2为本申请实施例提供的报文分流方法的第一种流程示意图;
图3为本申请实施例提供的步骤S22的一种细化示意图;
图4为本申请实施例提供的网络设备中的报文格式变化的一种示意图;
图5为本申请实施例提供的报文分流方法的第二种流程示意图;
图6为本申请实施例提供的报文分流方法的第三种流程示意图;
图7为本申请实施例提供的网络设备的第二种结构示意图;
图8为本申请实施例提供的报文分流装置的第一种结构示意图;
图9为本申请实施例提供的报文分流装置的第二种结构示意图;
图10为本申请实施例提供的报文分流装置的第三种结构示意图;
图11为本申请实施例提供的网络设备的第三种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
为了提高处理网络数据流的性能,网络设备大多采用多核CPU,意图通过负载分担策略,将网络中的多个数据流均分至多个CPU核,以并发处理的方式提高转发性能和网络吞吐。而报文在被网络设备的CPU核处理之前,必须先从网络链路上进入前端网卡,依赖网卡最为关键的硬件分流功能,才能被分发到各CPU核,即网络设备中,多个CPU核并发处理数据流的基础是现有的各类网卡提供的硬件分流功能,如RSS(Receive Side Scaling,接收端调节)硬件分流功能。
硬件分流功能是:按照三元组信息、五元组信息或七元组信息等报文信息分类的数据流进入网卡后,网卡按照预定的报文识别流程,解析报文,提取出其中的报文信息,并将该报文信息作为算子,按照一定的哈希(HASH)算法获取哈希值,最终根据哈希值将报文分发到硬件的某一个接收队列。不同的哈希值对应不同的接收队列。CPU端的多个CPU核可以分别绑定处理不同的接收队列,从而达到并发处理网络中多个数据流的目的。一个CPU核可以绑定一个或多个接收队列。
其中,报文识别解析的能力是网卡灵活分流的关键。然而,在网卡应用到传统固网环境中时,会遇到以下三大方面的问题。
1)由于最初网卡的应用场景固定,很多网卡大多面向服务器、数据中心,因此支持的报文识别类型有限。例如,除了IPv4(Internet Protocol version 4,互联网通信协议第四版)报文、IPv6(Internet Protocol version 6,互联网通信协议第六版)报文、TCP(Transmission Control Protocol,传输控制协议)报文、UDP(User Datagram Protocol,用户数据报协议)报文、带最多两层VLAN(Virtual Local Area Network,虚拟局域网)报文以及常见的GRE(Generic Routing Encapsulation,通用路由封装)隧道报文等报文外,在其他固网中的常见报文类型,如MPLS(Multiprotocol Label Switching,多协议标签交换技术)报文、VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)隧道内层报文等,网卡都不能识别,也无法将这些报文正常分流。
2)报文识别除了完成分流的功能外,还有很重要的一个功能是在接收方向防止高优先级的报文丢失。例如,对于常见的协议报文:BFD(Bidirectional ForwardingDetection,双向转发检测)报文、OSPF(Open Shortest Path First,开放最短路径优先)报文、BGP(Border Gateway Protocol,边界网关协议)报文等,CPU侧需要提供高优先级的资源保障,包括内存资源、时间片资源等,使得在发生网络拥塞时也能保证这些协议报文的通畅,这对提高网络稳定性、保障高优先级业务的QoS(Quality of Service,服务质量)都至关重要。而目前通用的网卡并不支持对这些协议报文的识别,也无就法保证这些协议报文在物理链路层、CPU侧得到高优先级的处理。
3)分布式架构设备包括多个主控板和多个转发板,多个主控板和多个转发板之间需要进行报文交互,包括一些关键的心跳报文以及设备管理同步消息、路由同步消息的报文等,这些报文需要得到高优先级的保障。这类报文的格式更加多样,且可能是设备生产商私有的、自定义的报文格式,网卡无法对这类报文进行识别,也无法将这类报文进行分流。
以上三种问题对网卡的报文识别能力、分流能力提出了更灵活、更复杂的要求。为了提高报文分流的能力,现有技术提出了两种报文分流的方案。
方案1,采用CPU中的硬件协处理器进行报文分流的方案。硬件协处理器是集成在CPU内部的,可以由用户自定义指定报文协议类型,甚至是自定义识别某些报文字段,如MAC(Media Access Control,媒体访问控制)地址、固定偏移字段等,并将报文分发到指定接收队列,提供了较为灵活的报文分流功能。但硬件协处理器从硬件上不能单独分离使用,这意味着若想要实现灵活报文识别、分流功能,只能使用集成有硬件协处理器的CPU,这对使用更低成本的CPU或迭代某些必须集成网卡的设备,形成掣肘。
方案2,采用单独的CPU核进行报文分流的方案。单独使用CPU核中的一个CPU核来做分流功能时,网络设备中的报文分流、处理过程,由从网卡到CPU数据核变成从网卡到CPU报文接收核,再从CPU报文接收核到各CPU数据核。在CPU报文接收核上,将对来自网卡的报文做软件上的识别处理,可满足报文的识别、分流需求。但单独划分出一个物理核,会浪费宝贵的CPU物理核资源,而且对于仅有两核CPU的设备来说,一般的转发模型是一个控制核和一个转发核,此时无法再单独预留出一个进行报文分流的报文接收核,造成该技术方案应用场景有限。并且,CPU报文接收核的处理流程与其他CPU数据核处理流程差异大,很大概率会污染共用的指令缓存。另外,报文在CPU核间流转,而非从始至终在单个CPU核上处理,带来核间通信开销、数据缓存缺失开销,也会从整体上拉低网络设备转发性能,造成更加严重的性能损失。
为了提高报文分流的灵活性,本申请实施例提供了一种网络设备,如图1所示,该网络设备包括:IO接口11、可编程逻辑器件12、网卡13、多个CPU核14、内存15和其他硬件16,可编程逻辑器件12连接在网卡13和IO接口11之间,CPU核14与网卡13连接,CPU核14还可以与内存15和其他硬件16连接,其他硬件16可以包括电源系统、硬件缓冲器等。网络设备可以为交换机、路由器等对报文进行处理的设备,可编程逻辑器件可以为CPLD(ComplexProgrammable Logic Device,复杂可编程逻辑器件)、FPGA(Field Programmable GateArray,现场可编程门阵列)等,网卡可以为任一通用网卡,在此对采用的网络设备、可编程逻辑器件、网卡和CPU核的种类和型号不作限定。图1中的网络设备以及网络设备包括的功能单元仅为示例,在此对网络设备的内部结构不作限定。
基于上述网络设备,本申请实施例提供了一种报文分流方法,该方法中,网络设备通过IO接口接收原始报文,并在可编程逻辑器件中对原始报文进行识别,得到该原始报文的目标报文类型。通过向网卡发送携带目标报文类型的目标报文,可编程逻辑器件将识别得到的目标报文类型传输给网卡。进而,网卡根据目标报文携带的目标报文类型,以及预先存储的报文类型与接收队列的映射关系,采用网卡的硬件分流功能,进行报文类型与接收队列的归一化映射,确定目标报文类型对应的目标接收队列,将目标报文存储到目标接收队列,实现报文分流。应用本申请实施例提供的技术方案,在网络设备中增加可编程逻辑器件,将报文识别功能下沉到可编程逻辑器件中,并与网卡的硬件分流功能相结合,基于可编程逻辑器件对各类型报文的识别,将各类型报文定向分流到指定的接收队列,进而CPU核读取并处理该CPU核绑定的接收队列中存储的报文,实现了对从IO接口接收到的各类型报文进行分流和处理,报文分流不再受限于网卡支持的报文识别类型的限制,提高了报文分流的灵活性。
下面通过具体实施例,对本申请实施例提供的报文分流方法进行详细说明。
参见图2,为本申请实施例提供的报文分流方法的第一种流程示意图,应用于网络设备中的可编程逻辑器件,如图1所示,网络设备还包括IO接口和网卡,可编程逻辑器件连接在网卡和IO接口之间。上述报文分流方法包括如下步骤:
步骤S21,通过IO接口,接收原始报文。
本申请实施例中,原始报文可以为数据流中的任一报文。IO接口接收到来自网络的原始报文后,将原始报文上送给可编程逻辑器件。进而,可编程逻辑器件接收到原始报文。
步骤S22,对原始报文进行识别,得到原始报文的目标报文类型。
本申请实施例中,目标报文类型为原始报文的报文类型,报文类型可以表示为0x0000、0x0001、0x000F等,在此对报文类型的表示形式不作限定。可编程逻辑器件支持灵活的规则配置,因此,可编程逻辑器件基于灵活的配置,可以实现对接收到的任一原始报文进行识别,得到该原始报文的报文类型,即目标报文类型。
例如,可编程逻辑器件可以支持对IPv4报文、TCP报文、MPLS报文等常见类型的报文进行识别,也可以支持针对传统固网的BFD报文、OSPF报文、BGP报文等协议报文进行识别,还可以通过用户或厂商的配置,在可编程逻辑器件中添加相应的识别条目,对如心跳报文、设备管理同步消息报文等自定义报文进行识别,在此对可编程逻辑器件可以识别的报文不作限定。可编程逻辑器件可以根据原始报文中的协议类型信息、特定字段信息等对原始报文进行识别,在此对识别方式不作限定。
步骤S23,将目标报文类型封装在原始报文中,得到目标报文。
本申请实施例中,可编程逻辑器件确定目标报文类型后,在原始报文中封装目标报文类型,封装后的报文即为目标报文。
在一些实施例中,可编程逻辑器件可以在接收到原始报文之后、将目标报文类型封装在原始报文中之前,根据原始报文携带的CRC值,对原始报文进行CRC,以对原始报文进行校验,保证原始报文的准确性,使得循环冗余检测结果不受目标报文类型的影响。另外,可编程逻辑器件将目标报文类型封装在原始报文中的过程不会改变携带的CRC值,即得到的目标报文携带的CRC值与原始报文携带的CRC值相同。在网卡中,由于目标报文中已经封装有目标报文类型,因此不需要再对目标报文进行CRC,则关闭网卡的帧校验和(FrameCheck Sum,FCS)功能。
步骤S24,向网卡发送目标报文,以使网卡根据预先存储的报文类型与接收队列的映射关系,确定目标报文类型对应的目标接收队列,将目标报文存储到目标接收队列。
本申请实施例中,一个接收队列绑定到一个CPU核上,一个CPU核上可以绑定一个或多个接收队列。对于一个接收队列,由与该接收队列绑定的CPU核处理存储到该接收队列的报文。网卡中预先存储有报文类型与接收队列的映射关系,例如,若报文类型为0x0000,则对应的接收队列为队列0,若报文类型为0x0001,则对应的接收队列为队列1,上述映射关系仅为示例,不起限定作用。
网卡接收携带目标报文类型的目标报文,并提取目标报文中的目标报文类型,进而根据预先存储的报文类型与接收队列的映射关系,确定目标报文类型对应的接收队列,即目标接收队列。网卡将目标报文存储到目标接收队列,例如,可以采用DMA(DirectMemory Access,直接存储器访问)将目标报文存储到目标接收队列,在此对目标报文存储到接收队列的方式不作限定。
网卡将目标报文存储到目标接收队列后,由与目标接收队列绑定的CPU核读取并处理存储到目标接收队列的目标报文。CPU核在处理目标报文前,将目标报文类型从目标报文中剥掉,将目标报文还原为原始报文,并根据原始报文对应的处理规则处理原始报文,如CRC等,避免目标报文类型对报文处理造成影响。后续的报文处理流程不需要做任何改动。
本申请实施例提供的技术方案中,网络设备通过IO接口接收原始报文,并在可编程逻辑器件中对原始报文进行识别,得到该原始报文的目标报文类型。通过向网卡发送携带目标报文类型的目标报文,可编程逻辑器件将识别得到的目标报文类型传输给网卡。进而,网卡根据目标报文携带的目标报文类型,以及预先存储的报文类型与接收队列的映射关系,采用网卡的硬件分流功能,进行报文类型与接收队列的归一化映射,确定目标报文类型对应的目标接收队列,将目标报文存储到目标接收队列,实现报文分流。应用本申请实施例提供的技术方案,在网络设备中增加可编程逻辑器件,将报文识别功能下沉到可编程逻辑器件中,并与网卡的硬件分流功能相结合,基于可编程逻辑器件对各类型报文的识别,将各类型报文定向分流到指定的接收队列,进而CPU核读取并处理该CPU核绑定的接收队列中存储的报文,实现了对从IO接口接收到的各类型报文进行分流和处理,报文分流不再受限于网卡支持的报文识别类型的限制,提高了报文分流的灵活性。
此外,本申请实施例提供了一种具有普适性的报文分流方法,结合可编程逻辑器件的报文识别功能、网卡的硬件分流功能以及CPU端的配合,可以将不同报文存储到不同接收队列,采用不同CPU核进行处理,使得报文硬件分流功能更加灵活、完善,可以根据网络设备的实际线网环境,提供更多、更灵活的报文格式、报文字段扩展,满足各类网络设备对特定报文、特定字段的主动识别需求,实现并发的多流处理功能。另外,采用可编程逻辑器件不会对网络设备中的其他功能单元的运行造成影响。
在一些实施例中,参见图3,为本申请实施例提供的步骤S22的一种细化示意图。上述步骤S22可以包括如下步骤S31-步骤S33。
步骤S31,对原始报文进行识别,得到原始报文的原始报文类型。
本申请实施例中,原始报文类型为报文所属的种类,例如,原始报文类型可以包括IPv4报文、TCP报文、MPLS报文、BFD报文、OSPF报文、BGP报文、自定义报文等可编程逻辑器件可以识别的种类。可编程逻辑器件可以对原始报文进行识别,确定原始报文所属的种类,得到原始报文的原始报文类型。
可编程逻辑器件中预先存储有原始报文类型与优先级的对应关系。用户可以根据网络设备的实际应用场景灵活地设定该对应关系,例如,可以设定IPv4报文、IPv6报文、TCP报文等数据报文的原始报文类型对应普通优先级,设定ARP(Address ResolutionProtocol,地址解析协议)报文、LLDP(Link Layer Discovery Protocol,链路层发现协议)报文、ND(Neighbor Discovery,邻居发现)报文、BFD报文、ISIS(Intermediate System-to-Intermediate System,中间系统到中间系统)报文、RIP(Routing Information Protocol,路由信息协议)报文、OSPF报文、BGP报文等协议报文的原始报文类型对应高优先级。而在特定环境中,BFD报文、OSPF报文等协议报文不需要指定为高优先级报文,则这些协议报文的原始报文类型可以对应普通优先级,在此对原始报文类型与优先级的对应关系不作限定。
可编程逻辑器件可以根据原始报文的原始报文类型,以及原始报文类型与优先级的对应关系,确定原始报文的优先级,进而根据原始报文的优先级,确定目标报文类型。若原始报文的原始报文类型指示原始报文为高优先级报文,则可编程逻辑器件执行步骤S32;若原始报文的原始报文类型指示原始报文为普通优先级报文,则可编程逻辑器件执行步骤S33。
步骤S32,确定预设报文类型为原始报文的目标报文类型。
本申请实施例中,可编程逻辑器件中可以预先存储有高优先级报文的报文类型,即预设报文类型。当原始报文为高优先级报文时,可编程逻辑器件确定预设报文类型为目标报文类型。预设报文类型对应的接收队列为高优先级的接收队列,在CPU侧可以得到高优先级的资源保障,例如,在存在空闲CPU核的情况下,高优先级的接收队列可以绑定到一个空闲CPU核上,使得高优先级报文能在CPU侧得到更快的处理,在此对高优先级报文的处理方式不作限定。预设报文类型可以为0x000F,也可以为其他预设值,对预设报文类型的表示形式和取值不作限定。
步骤S33,根据原始报文的报文信息,确定原始报文的目标报文类型。
本申请实施例中,原始报文的报文信息可以为三元组信息、五元组信息或七元组信息等,在此对报文信息的内容不作限定。当原始报文为普通优先级报文时,可编程逻辑器件可以提取原始报文的报文信息,并根据报文信息确定目标报文类型。
例如,可编程逻辑器件中预先存储有报文信息与报文类型的对应关系。可编程逻辑器件根据预先存储的报文信息与报文类型的对应关系,确定原始报文的报文信息对应的目标报文类型。
在一些实施例中,在原始报文为普通优先级报文的情况下,可编程逻辑器件可以通过如下步骤确定目标报文类型:计算原始报文的报文信息的哈希值;提取哈希值中指定位置的值,作为原始报文的目标报文类型。
可编程逻辑器件提取原始报文的报文信息,基于哈希算法或其他算法,计算原始报文的报文信息的哈希值,从计算得到的哈希值中提取指定位置的值,例如,指定位置可以为低2比特,可编程逻辑器件可以提取哈希值的低2比特的值,映射为目标报文类型,目标报文类型的范围可以为0x0000至0x0003。指定位置还可以为其他位置,如高或低预设位数的比特,指定位置和预设位数可以由用户根据实际需求决定,对此不作限定。
本申请实施例中,可编程逻辑器件还可以将计算得到的整个哈希值,作为原始报文的目标报文类型,对此不作限定。
采用哈希值来确定目标报文类型,便于对报文类型进行归一化处理,进而灵活的配置网卡中报文类型与接收队列的对应关系,提高报文分流的灵活性。
应用本申请实施例提供的方案,基于实际应用场景灵活配置原始报文类型与优先级的对应关系,使得可编程逻辑器件可以根据原始报文的原始报文类型,确定原始报文的优先级,进而确定原始报文的目标报文类型。对于高优先级报文,确定预设报文类型为目标报文类型;对于普通优先级报文,根据报文信息确定目标报文类型,为不同原始报文类型的报文确定不同的目标报文类型,进而将不同原始报文类型的报文存储到不同的接收队列,满足各类型报文的可定制化的优先级保障。
在一些实施例中,可编程逻辑器件可以通过如下步骤将目标报文类型封装在原始报文中:在原始报文中添加报文类型字段,报文类型字段的位置为网卡的硬件分流功能识别的位置;将目标报文类型封装在报文类型字段中。
本申请实施例中,网卡的硬件分流功能可以识别特定位置的字段。可编程逻辑器件可以在原始报文的特定位置中添加报文类型字段,并在报文类型字段中填充目标报文类型,得到目标报文,使得网卡可以通过硬件分流功能对目标报文中特定位置的报文类型字段进行识别,提取目标报文类型,提高目标报文类型的识别效率。另外,可编程逻辑器件将目标报文类型封装在报文类型字段中,使得目标报文中其他字段的内容与原始报文相同,保证后续报文处理的准确性。
在一些实施例中,硬件分流功能为接收端调整分流功能,报文类型字段位于原始报文的以太网类型字段前。当报文类型字段在目标报文的位置与以太网类型字段在原始报文的位置相同,且报文类型字段的长度与以太网类型字段相同时,网卡的接收端调整分流功能可以采用第二层以太网类型过滤器(L2 Ether-Type Filter)对报文类型字段进行解析识别,得到目标报文类型。参见图4,为本申请实施例提供的网络设备中的报文格式变化的一种示意图。以网络设备包括IO接口41、可编程逻辑器件42、网卡43以及CPU核44,原始报文包括源地址字段、目的地址字段、以太网类型字段以及负载为例,在此对原始报文包括的字段不作限定。图4中的各字段的长度仅为示例,不表示各字段的真实长度。具体可分为以下三个阶段。
阶段1,可编程逻辑器件通过IO接口(线网)接收原始报文。原始报文包括如下字段:
源地址(Source Address,SA),长度为6字节,用于填充原始报文的源地址。
目的地址(Destination Address,DA),长度为6字节,用于填充原始报文的目的地址。
以太网类型(Ethernet Type),长度为2字节,用于指明应用于负载(数据帧)的协议类型。
负载(Payload),为原始报文中的数据帧,用于存储原始报文中的有效数据。
阶段2,可编程逻辑器件在原始报文中封装目标报文类型,得到目标报文,向网卡发送目标报文。目标报文包括如下字段:
源地址,与原始报文中的源地址字段相同。
目的地址,与原始报文中的目的地址字段相同。
报文类型,长度为2字节,与以太网类型字段长度相同,用于封装目标报文类型。
以太网类型,与原始报文中的以太网类型字段相同。
负载,与原始报文中的负载相同。
可编程逻辑器件将报文类型字段添加到了原始报文的以太网类型字段的位置,而原始报文的以太网类型字段和负载的内容不变,顺序连接在报文类型字段之后,此时,报文长度增加了2字节。
阶段3,网卡向与目标接收队列绑定的CPU核发送目标报文。CPU核在处理报文前,需要剥掉目标报文中的报文类型字段,得到的报文与原始报文相同,如图4所示。
本申请实施例中,报文类型字段还可以位于原始报文的其他位置,对应网卡的接收端调整分流功能采用其他过滤器对报文类型字段进行识别,在此对报文类型字段的长度、位置不作限定。
应用本申请实施例提供的方案,可编程逻辑器件可以将报文类型字段封装到指定位置,例如,原始报文的以太网类型字段前,而对应的网卡的硬件分流功能,即接收端调整分流功能采用对应的过滤器识别报文类型字段,使得封装的报文类型字段可以被识别,灵活地对报文类型字段进行封装和识别。
与上述报文分流方法对应,本申请实施例还提供了一种报文分流方法,参见图5,为本申请实施例提供的报文分流方法的第二种流程示意图,应用于网络设备中的网卡,网络设备还包括IO接口和可编程逻辑器件,可编程逻辑器件连接在网卡和IO接口之间,具体可参见上述应用于可编程逻辑器件的报文分流方法中的相关描述。上述报文分流方法包括:
步骤S51,接收可编程逻辑器件发送的目标报文,目标报文为可编程逻辑器件根据上述任一报文分流方法得到的报文,目标报文携带目标报文类型。
本申请实施例中,网卡接收可编程逻辑器件发送的、携带有目标报文类型的目标报文,具体可参见上述步骤S21-步骤S23中的得到目标报文的相关描述。
步骤S52,根据预先存储的报文类型与接收队列的映射关系,确定目标报文类型对应的目标接收队列。
步骤S53,将目标报文存储到目标接收队列。
本申请实施例中,网卡根据预先存储的报文类型与接收队列的映射关系,确定与目标报文类型对应的接收队列,即目标接收队列,将目标报文存储到目标接收队列。具体可参见上述步骤S24中的相关描述。
本申请实施例提供的技术方案中,网络设备通过IO接口接收原始报文,并在可编程逻辑器件中对原始报文进行识别,得到该原始报文的目标报文类型。通过向网卡发送携带目标报文类型的目标报文,可编程逻辑器件将识别得到的目标报文类型传输给网卡。进而,网卡根据目标报文携带的目标报文类型,以及预先存储的报文类型与接收队列的映射关系,采用网卡的硬件分流功能,进行报文类型与接收队列的归一化映射,确定目标报文类型对应的目标接收队列,将目标报文存储到目标接收队列,实现报文分流。应用本申请实施例提供的技术方案,在网络设备中增加可编程逻辑器件,将报文识别功能下沉到可编程逻辑器件中,并与网卡的硬件分流功能相结合,基于可编程逻辑器件对各类型报文的识别,将各类型报文定向分流到指定的接收队列,进而CPU核读取并处理该CPU核绑定的接收队列中存储的报文,实现了对从IO接口接收到的各类型报文进行分流和处理,报文分流不再受限于网卡支持的报文识别类型的限制,提高了报文分流的灵活性。
在一些实施例中,目标报文携带的CRC值与原始报文携带的CRC值相同;网卡的帧校验和功能关闭,具体可参见上述步骤S23中的相关描述。
在一些实施例中,目标报文包括报文类型字段,报文类型字段用于填充目标报文类型;报文类型字段的位置为网卡的硬件分流功能识别的位置。可编程逻辑器件采用报文类型字段封装目标报文类型,网卡基于硬件分流功能识别特定位置的报文类型字段,提取目标报文类型,具体可参见上述关于报文类型字段的相关描述。
在一些实施例中,硬件分流功能为接收端调整分流功能,报文类型字段位于原始报文的以太网类型字段前,在此对报文类型字段的位置、网卡的接收端调整分流功能不作限定,具体可参见上述图4中的相关描述。
与上述报文分流方法对应,本申请实施例还提供了一种报文分流方法,参见图6,为本申请实施例提供的报文分流方法的第三种流程示意图,应用于网络设备中的CPU核,网络设备还包括可编程逻辑器件、IO接口和网卡,可编程逻辑器件连接在网卡和IO接口之间,CPU核与网卡连接,具体可参见上述应用于可编程逻辑器件的报文分流方法中的相关描述。上述报文分流方法包括:
步骤S61,从CPU核绑定的接收队列中,读取网卡存储到接收队列的目标报文,目标报文为可编程逻辑器件根据上述任一报文分流方法得到的报文,目标报文携带目标报文类型。
步骤S62,剥掉目标报文中的目标报文类型,得到原始报文。
步骤S63,根据原始报文对应的处理规则,处理原始报文。
本申请实施例中,对于网卡中的每个接收队列,采用与该接收队列的绑定的CPU核处理存储到该接收队列的目标报文。由于目标报文中携带有目标报文类型,因此在CPU核处理之前,需要将目标报文类型从目标报文中剥掉,得到目标报文对应的原始报文,该原始报文与上述步骤S21中从IO接口接收到的原始报文相同。进而,CPU核根据原始报文对应的处理规则,按照原始报文处理流程处理原始报文。
其中,处理规则可以根据实际需求进行设定。例如,处理规则可以为进行CRC处理、进行深度包检测等。
本申请实施例提供的技术方案中,网络设备通过IO接口接收原始报文,并在可编程逻辑器件中对原始报文进行识别,得到该原始报文的目标报文类型。通过向网卡发送携带目标报文类型的目标报文,可编程逻辑器件将识别得到的目标报文类型传输给网卡。进而,网卡根据目标报文携带的目标报文类型,以及预先存储的报文类型与接收队列的映射关系,采用网卡的硬件分流功能,进行报文类型与接收队列的归一化映射,确定目标报文类型对应的目标接收队列,将目标报文存储到目标接收队列,实现报文分流。应用本申请实施例提供的技术方案,在网络设备中增加可编程逻辑器件,将报文识别功能下沉到可编程逻辑器件中,并与网卡的硬件分流功能相结合,基于可编程逻辑器件对各类型报文的识别,将各类型报文定向分流到指定的接收队列,进而CPU核读取并处理该CPU核绑定的接收队列中存储的报文,实现了对从IO接口接收到的各类型报文进行分流和处理,报文分流不再受限于网卡支持的报文识别类型的限制,提高了报文分流的灵活性。
此外,在CPU核处理接收队列中的目标报文的过程中,先剥掉目标报文中的目标报文类型,将目标报文还原为原始报文,采用原始报文对应的处理规则,对原始报文进行处理,避免目标报文类型的插入对报文处理造成影响。
在一些实施例中,在一个CPU核绑定多个接收队列的情况下,上述步骤S61可以通过如下步骤实现:使用时间轮算法,从多个接收队列中,读取网卡存储到多个接收队列的目标报文。CPU核上可以同时绑定有多个接收队列,这多个接收队列的优先级可以相同,也可以不同。CPU核采用时间轮算法读取多个接收队列的目标报文进行处理。采用的时间轮算法如下:
以一个CPU核上绑定了两个接收队列(队列0和队列1),包括一个高优先级的接收队列(队列0)、一个普通优先级的接收队列(队列1)为例进行说明,并不起限定作用。CPU可以为每个接收队列设置状态标志位,表示该接收队列中是否存储有报文,如状态标志位为1时,表示接收队列中存储有报文,即有报文待处理;状态标志位为0时,表示接收队列中没有报文,即没有报文待处理,对接收队列中是否存储有报文的表示方式以及状态标志位的取值不作限定。CPU核首先检测高优先级的接收队列(队列0)的状态标志位,若队列0中存储有报文,则优先处理队列0中的报文,直到队列0中没有报文。
当CPU核检测到队列0中没有报文时,CPU核检测普通优先级的接收队列(队列1)的状态标志位,若队列1中存储有报文,则处理队列1中的报文。每处理队列1中预设数量的报文,检测一次队列0(高优先级的接收队列)的状态标志位,此时,若检测到队列0中存储有报文,则优先处理队列0中的报文。预设数量可以为1,即每处理普通优先级的接收队列中的1个报文,检测一次高优先级的接收队列的状态标志位。对于预设数量的数值不作限定。
应用本申请实施例提供的方案,CPU核采用时间轮算法处理绑定到该CPU核上的多个接收队列中的目标报文,使得CPU核可以轮流处理多个接收队列中的目标报文,并保证高优先级的接收队列中的报文的处理优先级,实现了从下至上贯通的分流增强和优先级保障功能。
在一些实施例中,目标报文携带的CRC值与原始报文携带的CRC值相同;网卡的帧校验和功能关闭,具体可参见上述步骤S23中的相关描述。
在一些实施例中,目标报文包括报文类型字段,报文类型字段用于填充目标报文类型;报文类型字段的位置为网卡的硬件分流功能识别的位置,具体可参见上述关于报文类型字段的相关描述。在可编程逻辑器件采用报文类型字段封装目标报文类型的情况下,CPU核可以通过如下步骤实现步骤S62:剥掉目标报文中的报文类型字段,得到原始报文。CPU核将报文类型字段从目标报文中剥掉,而其他字段不变,以剥掉目标报文中的目标报文类型,得到原始报文。
在一些实施例中,硬件分流功能为接收端调整分流功能,报文类型字段位于原始报文的以太网类型字段前,在此对报文类型字段的位置、网卡的接收端调整分流功能不作限定,具体可参见上述图4中的相关描述。
参见图7,为本申请实施例提供的网络设备的第二种结构示意图,该网络设备包括IO接口71、可编程逻辑器件72、网卡73、CPU74、内存75和其他硬件76等。以CPU包括多个CPU核,如CPU0、CPU1、CPU2和CPU3,网卡中的接收队列包括队列0、队列1、队列2、队列3和队列4,CPU0与队列0和队列1绑定、CPU1与队列2绑定、CPU2与队列3绑定以及CPU3与队列4绑定,队列0为高优先级的接收队列为例进行说明,并不起限定作用。
可编程逻辑器件72从IO接口71接收原始报文,通过三个模块对原始报文进行处理,其中,报文识别模块用于对原始报文进行识别,分流模块和报文类型映射与处理模块用于确定目标报文类型,并将目标报文类型封装在原始报文中,得到目标报文,向网卡73发送目标报文。网卡73接收可编程逻辑器件72发送的目标报文,通过硬件分流功能,将接收的目标报文存储到不同的接收队列,将各个接收队列存储的报文上送至各个接收队列绑定的CPU74中的CPU核进行处理。
应用本申请实施例提供的方案,基于现有的通用网卡和可编程逻辑器件实现增强的分流功能,增强的分流功能可以实现线网更多类型报文的识别,如普通优先级报文和高优先级报文。对于可识别的高优先级报文,可利用通用网卡的第二层以太网类型过滤器功能映射到指定的高优先级的接收队列,结合CPU侧的软件高优先级处理,实现了对高优先级报文在接收方向上的基于通用网卡的优先级分流。对于普通优先级报文,可编程逻辑器件可以根据报文信息,例如五元组信息,计算得到哈希值映射到目标报文类型,再映射到网卡的接收队列,实现了原有的网卡的RSS分流功能,两级映射也提供了更可控、更灵活的分流方案。在硬件上,仅需增加价格低廉的可编程逻辑器件,前置于网卡与物理端口(IO接口)之间,即可增强网卡的分流功能,可支持非常灵活的报文分流和识别的定制,可广泛应用于线网和网络设备生产商内部板间通信等场景。
本申请实施例提供的技术方案中,实现分流能力增强的关键是可编程逻辑器件与网卡的已有分流功能的配合。在可编程逻辑器件可识别各类型报文的前提下,完成了报文到网卡中的接收队列的两级归一化映射。第一级是线网报文与报文类型的映射,例如上述提及的将普通优先级报文映射到0x0000至0x0003,将高优先级报文映射到0x000F;第二级是报文类型与接收队列的映射,如上述网卡的第二层以太网类型过滤器中,用户配置的报文类型与接收队列的对应关系,这两级映射是非常灵活的。
在摒弃网卡受限的RSS分流功能的前提下,将可编程逻辑器件的报文识别功能与网卡的硬件分流功能相结合,在原始报文中插入2字节的报文类型字段,完成分流功能的扩展。在CPU侧处理时,再剥掉这2字节的报文类型字段。这个字段的生命周期仅存在于可编程逻辑器件与网卡上,完全不影响原有报文帧的业务层的处理,是一种通用的分流技术方案。各类网卡的硬件分流功能可能不同,不仅限于第二层以太网类型过滤器功能,因此插入报文类型字段的方法也可根据网卡的硬件分流功能的不同而改变,其长度、插入的位置都可以按照硬件分流要求适配。
此外,本申请实施例实现的分流增强方法,最大的优势在于其可根据网络设备的实际应用场景灵活的定制。可编程逻辑器件可根据用户或设备的实际应用场景指定报文的原始报文类型与优先级的对应关系。例如,不一定对于BFD报文、OSPF报文等协议报文就要指定为高优先级报文,可能这类报文在特定环境中反而很多且不需要优先级,此时就需要将其指定为普通优先级报文,并通过设置与接收队列、CPU核的映射关系,将其定向分流到指定接收队列和CPU核处理,最大程度的满足实际应用需求。这种灵活配置的分流增强方法实现了对指定类型报文的精准的靶向处理,可普适的完成网络设备多样化的分流需求。
与上述报文分流方法对应,本申请实施例还提供了一种报文分流装置,参见图8,为本申请实施例提供的报文分流装置的第一种结构示意图,应用于网络设备中的可编程逻辑器件,所述网络设备还包括IO接口和网卡,所述可编程逻辑器件连接在所述网卡和所述IO接口之间;所述装置包括:
第一接收模块81,用于通过所述IO接口,接收原始报文;
识别模块82,用于对所述原始报文进行识别,得到所述原始报文的目标报文类型;
封装模块83,用于将所述目标报文类型封装在所述原始报文中,得到目标报文;
发送模块84,用于向所述网卡发送所述目标报文,以使所述网卡根据预先存储的报文类型与接收队列的映射关系,确定所述目标报文类型对应的目标接收队列,将所述目标报文存储到所述目标接收队列。
在一些实施例中,所述识别模块82,具体用于:
对所述原始报文进行识别,得到所述原始报文的原始报文类型;
若所述原始报文类型指示所述原始报文为高优先级报文,则确定预设报文类型为所述原始报文的目标报文类型;
若所述原始报文类型指示所述原始报文为普通优先级报文,则根据所述原始报文的报文信息,确定所述原始报文的目标报文类型。
在一些实施例中,所述识别模块82,具体用于:
计算所述原始报文的报文信息的哈希值;
提取所述哈希值中指定位置的值,作为所述原始报文的目标报文类型。
在一些实施例中,所述封装模块83,具体用于:
在所述原始报文中添加报文类型字段,所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置;
将所述目标报文类型封装在所述报文类型字段中。
在一些实施例中,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
在一些实施例中,所述原始报文携带的CRC值与所述目标报文携带的CRC值相同;所述网卡的帧校验和功能关闭;所述识别模块82,还用于:
根据所述原始报文携带的CRC值,对所述原始报文进行CRC。
本申请实施例提供的技术方案中,网络设备通过IO接口接收原始报文,并在可编程逻辑器件中对原始报文进行识别,得到该原始报文的目标报文类型。通过向网卡发送携带目标报文类型的目标报文,可编程逻辑器件将识别得到的目标报文类型传输给网卡。进而,网卡根据目标报文携带的目标报文类型,以及预先存储的报文类型与接收队列的映射关系,采用网卡的硬件分流功能,进行报文类型与接收队列的归一化映射,确定目标报文类型对应的目标接收队列,将目标报文存储到目标接收队列,实现报文分流。应用本申请实施例提供的技术方案,在网络设备中增加可编程逻辑器件,将报文识别功能下沉到可编程逻辑器件中,并与网卡的硬件分流功能相结合,基于可编程逻辑器件对各类型报文的识别,将各类型报文定向分流到指定的接收队列,进而CPU核读取并处理该CPU核绑定的接收队列中存储的报文,实现了对从IO接口接收到的各类型报文进行分流和处理,报文分流不再受限于网卡支持的报文识别类型的限制,提高了报文分流的灵活性。
与上述报文分流方法对应,本申请实施例还提供了一种报文分流装置,参见图9,为本申请实施例提供的报文分流装置的第二种结构示意图,应用于网络设备中的网卡,所述网络设备还包括IO接口和可编程逻辑器件,所述可编程逻辑器件连接在所述网卡和所述IO接口之间;所述装置包括:
第二接收模块91,用于接收所述可编程逻辑器件发送的目标报文,所述目标报文为所述可编程逻辑器件根据上述任一报文分流装置得到的,所述目标报文携带目标报文类型;
确定模块92,用于根据预先存储的报文类型与接收队列的映射关系,确定所述目标报文类型对应的目标接收队列;
存储模块93,用于将所述目标报文存储到所述目标接收队列。
在一些实施例中,所述目标报文包括报文类型字段,所述报文类型字段用于填充所述目标报文类型;所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置。
在一些实施例中,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
在一些实施例中,所述目标报文携带的CRC值与原始报文携带的CRC值相同;所述网卡的帧校验和功能关闭。
本申请实施例提供的技术方案中,网络设备通过IO接口接收原始报文,并在可编程逻辑器件中对原始报文进行识别,得到该原始报文的目标报文类型。通过向网卡发送携带目标报文类型的目标报文,可编程逻辑器件将识别得到的目标报文类型传输给网卡。进而,网卡根据目标报文携带的目标报文类型,以及预先存储的报文类型与接收队列的映射关系,采用网卡的硬件分流功能,进行报文类型与接收队列的归一化映射,确定目标报文类型对应的目标接收队列,将目标报文存储到目标接收队列,实现报文分流。应用本申请实施例提供的技术方案,在网络设备中增加可编程逻辑器件,将报文识别功能下沉到可编程逻辑器件中,并与网卡的硬件分流功能相结合,基于可编程逻辑器件对各类型报文的识别,将各类型报文定向分流到指定的接收队列,进而CPU核读取并处理该CPU核绑定的接收队列中存储的报文,实现了对从IO接口接收到的各类型报文进行分流和处理,报文分流不再受限于网卡支持的报文识别类型的限制,提高了报文分流的灵活性。
与上述报文分流方法对应,本申请实施例还提供了一种报文分流装置,参见图10,为本申请实施例提供的报文分流装置的第三种结构示意图,应用于网络设备中的CPU核,所述网络设备还包括可编程逻辑器件、IO接口和网卡,所述可编程逻辑器件连接在所述网卡和所述IO接口之间,所述CPU核与所述网卡连接;所述装置包括:
读取模块101,用于从所述CPU核绑定的接收队列中,读取所述网卡存储到所述接收队列的目标报文,所述目标报文为所述可编程逻辑器件根据上述任一报文分流装置得到的,所述目标报文携带目标报文类型;
剥掉模块102,用于剥掉所述目标报文中的所述目标报文类型,得到原始报文;
处理模块103,用于根据所述原始报文对应的处理规则,处理所述原始报文。
在一些实施例中,所述CPU核绑定多个接收队列;所述读取模块101,具体用于:
使用时间轮算法,从所述多个接收队列中,读取所述网卡存储到所述多个接收队列的目标报文。
在一些实施例中,所述目标报文包括报文类型字段,所述报文类型字段用于填充所述目标报文类型;所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置;所述剥掉模块102,具体用于:
剥掉所述目标报文中的所述报文类型字段,得到原始报文。
在一些实施例中,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
在一些实施例中,所述目标报文携带的CRC值与原始报文携带的CRC值相同;所述网卡的帧校验和功能关闭。
本申请实施例提供的技术方案中,网络设备通过IO接口接收原始报文,并在可编程逻辑器件中对原始报文进行识别,得到该原始报文的目标报文类型。通过向网卡发送携带目标报文类型的目标报文,可编程逻辑器件将识别得到的目标报文类型传输给网卡。进而,网卡根据目标报文携带的目标报文类型,以及预先存储的报文类型与接收队列的映射关系,采用网卡的硬件分流功能,进行报文类型与接收队列的归一化映射,确定目标报文类型对应的目标接收队列,将目标报文存储到目标接收队列,实现报文分流。应用本申请实施例提供的技术方案,在网络设备中增加可编程逻辑器件,将报文识别功能下沉到可编程逻辑器件中,并与网卡的硬件分流功能相结合,基于可编程逻辑器件对各类型报文的识别,将各类型报文定向分流到指定的接收队列,进而CPU核读取并处理该CPU核绑定的接收队列中存储的报文,实现了对从IO接口接收到的各类型报文进行分流和处理,报文分流不再受限于网卡支持的报文识别类型的限制,提高了报文分流的灵活性。
本申请实施例还提供了一种网络设备,如图11所示,包括IO接口111、可编程逻辑器件112、网卡113和多个CPU核114,所述可编程逻辑器件112连接在所述网卡113和所述IO接口111之间,所述CPU核114与所述网卡113连接,所述可编程逻辑器件112执行上述应用于可编程逻辑器件112的任一报文分流方法的步骤,所述网卡113执行上述应用于网卡113的任一报文分流方法的步骤,所述CPU核114执行上述应用于CPU核114的任一报文分流方法的步骤。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述应用于可编程逻辑器件的任一报文分流方法的步骤,或实现上述应用于网卡的任一报文分流方法的步骤,或实现上述应用于CPU核的任一报文分流方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述应用于可编程逻辑器件的任一报文分流方法的步骤,或执行上述应用于网卡的任一报文分流方法的步骤,或实现上述应用于CPU核的任一报文分流方法的步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、网络设备、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (19)
1.一种报文分流方法,其特征在于,应用于网络设备中的可编程逻辑器件,所述网络设备还包括输入输出IO接口和网卡,所述可编程逻辑器件连接在所述网卡和所述IO接口之间;所述方法包括:
通过所述IO接口,接收原始报文;
对所述原始报文进行识别,得到所述原始报文的目标报文类型;
在所述原始报文中添加报文类型字段,所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置;
将所述目标报文类型封装在所述报文类型字段中,得到目标报文,所述目标报文中其他字段的内容与所述原始报文相同;
向所述网卡发送所述目标报文,以使所述网卡基于硬件分流功能识别所述报文类型字段中封装的所述目标报文类型,根据预先存储的报文类型与接收队列的映射关系,确定所述目标报文类型对应的目标接收队列,将所述目标报文存储到所述目标接收队列。
2.根据权利要求1所述的方法,其特征在于,所述对所述原始报文进行识别,得到所述原始报文的目标报文类型的步骤,包括:
对所述原始报文进行识别,得到所述原始报文的原始报文类型;
若所述原始报文类型指示所述原始报文为高优先级报文,则确定预设报文类型为所述原始报文的目标报文类型;
若所述原始报文类型指示所述原始报文为普通优先级报文,则根据所述原始报文的报文信息,确定所述原始报文的目标报文类型。
3.根据权利要求2所述的方法,其特征在于,所述根据所述原始报文的报文信息,确定所述原始报文的目标报文类型的步骤,包括:
计算所述原始报文的报文信息的哈希值;
提取所述哈希值中指定位置的值,作为所述原始报文的目标报文类型。
4.根据权利要求1所述的方法,其特征在于,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述原始报文携带的循环冗余校验CRC值与所述目标报文携带的CRC值相同;所述网卡的帧校验和功能关闭;
在将所述目标报文类型封装在所述原始报文中之前,所述方法还包括:
根据所述原始报文携带的CRC值,对所述原始报文进行CRC。
6.一种报文分流方法,其特征在于,应用于网络设备中的网卡,所述网络设备还包括输入输出IO接口和可编程逻辑器件,所述可编程逻辑器件连接在所述网卡和所述IO接口之间;所述方法包括:
接收所述可编程逻辑器件发送的目标报文,所述目标报文为所述可编程逻辑器件根据权利要求1-5任一项所述的方法得到的报文,所述目标报文携带目标报文类型;
基于硬件分流功能识别所述报文类型字段中封装的所述目标报文类型;
根据预先存储的报文类型与接收队列的映射关系,确定所述目标报文类型对应的目标接收队列;
将所述目标报文存储到所述目标接收队列。
7.根据权利要求6所述的方法,其特征在于,所述目标报文包括报文类型字段,所述报文类型字段用于填充所述目标报文类型;
所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置。
8.根据权利要求7所述的方法,其特征在于,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
9.根据权利要求6-8任一项所述的方法,其特征在于,所述目标报文携带的循环冗余校验CRC值与原始报文携带的CRC值相同;所述网卡的帧校验和功能关闭。
10.一种报文分流方法,其特征在于,应用于网络设备中的中央处理器CPU核,所述网络设备还包括可编程逻辑器件、输入输出IO接口和网卡,所述可编程逻辑器件连接在所述网卡和所述IO接口之间,所述CPU核与所述网卡连接;所述方法包括:
从所述CPU核绑定的接收队列中,读取所述网卡存储到所述接收队列的目标报文,所述目标报文为所述可编程逻辑器件根据权利要求1-5任一项所述的方法得到的报文,所述目标报文携带目标报文类型;
剥掉所述目标报文中的所述目标报文类型,得到原始报文;
根据所述原始报文对应的处理规则,处理所述原始报文。
11.根据权利要求10所述的方法,其特征在于,所述CPU核绑定多个接收队列;
所述从所述CPU核绑定的接收队列中,读取所述网卡存储到所述接收队列的目标报文的步骤,包括:
使用时间轮算法,从所述多个接收队列中,读取所述网卡存储到所述多个接收队列的目标报文。
12.根据权利要求10所述的方法,其特征在于,所述目标报文包括报文类型字段,所述报文类型字段用于填充所述目标报文类型;
所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置;
所述剥掉所述目标报文中的所述目标报文类型,得到原始报文的步骤,包括:
剥掉所述目标报文中的所述报文类型字段,得到原始报文。
13.根据权利要求11所述的方法,其特征在于,所述硬件分流功能为接收端调整分流功能,所述报文类型字段位于所述原始报文的以太网类型字段前。
14.根据权利要求10-13任一项所述的方法,其特征在于,所述目标报文携带的循环冗余校验CRC值与所述原始报文携带的CRC值相同;所述网卡的帧校验和功能关闭。
15.一种报文分流装置,其特征在于,应用于网络设备中的可编程逻辑器件,所述网络设备还包括输入输出IO接口和网卡,所述可编程逻辑器件连接在所述网卡和所述IO接口之间;所述装置包括:
第一接收模块,用于通过所述IO接口,接收原始报文;
识别模块,用于对所述原始报文进行识别,得到所述原始报文的目标报文类型;
封装模块,用于在所述原始报文中添加报文类型字段,所述报文类型字段的位置为所述网卡的硬件分流功能识别的位置;将所述目标报文类型封装在所述报文类型字段中,得到目标报文,所述目标报文中其他字段的内容与所述原始报文相同;
发送模块,用于向所述网卡发送所述目标报文,以使所述网卡基于硬件分流功能识别所述报文类型字段中封装的所述目标报文类型,根据预先存储的报文类型与接收队列的映射关系,确定所述目标报文类型对应的目标接收队列,将所述目标报文存储到所述目标接收队列。
16.一种报文分流装置,其特征在于,应用于网络设备中的网卡,所述网络设备还包括输入输出IO接口和可编程逻辑器件,所述可编程逻辑器件连接在所述网卡和所述IO接口之间;所述装置包括:
第二接收模块,用于接收所述可编程逻辑器件发送的目标报文,所述目标报文为所述可编程逻辑器件根据权利要求15所述的装置得到的报文,所述目标报文携带目标报文类型;
确定模块,用于基于硬件分流功能识别所述报文类型字段中封装的所述目标报文类型;根据预先存储的报文类型与接收队列的映射关系,确定所述目标报文类型对应的目标接收队列;
存储模块,用于将所述目标报文存储到所述目标接收队列。
17.一种报文分流装置,其特征在于,应用于网络设备中的中央处理器CPU核,所述网络设备还包括可编程逻辑器件、输入输出IO接口和网卡,所述可编程逻辑器件连接在所述网卡和所述IO接口之间,所述CPU核与所述网卡连接;所述装置包括:
读取模块,用于从所述CPU核绑定的接收队列中,读取所述网卡存储到所述接收队列的目标报文,所述目标报文为所述可编程逻辑器件根据权利要求15所述的装置得到的报文,所述目标报文携带目标报文类型;
剥掉模块,用于剥掉所述目标报文中的所述目标报文类型,得到原始报文;
处理模块,用于根据所述原始报文对应的处理规则,处理所述原始报文。
18.一种网络设备,其特征在于,包括输入输出IO接口、可编程逻辑器件、网卡和多个中央处理器CPU核,所述可编程逻辑器件连接在所述网卡和所述IO接口之间,所述CPU核与所述网卡连接;所述可编程逻辑器件执行权利要求1-5任一所述的方法步骤,所述网卡执行权利要求6-9任一所述的方法步骤,所述CPU核执行权利要求10-14任一所述的方法步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5或权利要求6-9或权利要求10-14任一所述的方法步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310957392.XA CN116668375B (zh) | 2023-07-31 | 2023-07-31 | 一种报文分流方法、装置、网络设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310957392.XA CN116668375B (zh) | 2023-07-31 | 2023-07-31 | 一种报文分流方法、装置、网络设备及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116668375A CN116668375A (zh) | 2023-08-29 |
| CN116668375B true CN116668375B (zh) | 2023-11-21 |
Family
ID=87717515
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310957392.XA Active CN116668375B (zh) | 2023-07-31 | 2023-07-31 | 一种报文分流方法、装置、网络设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116668375B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119276658A (zh) * | 2024-12-04 | 2025-01-07 | 阿里云计算有限公司 | 报文处理方法、网卡、网关设备、存储介质和程序 |
Citations (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103825976A (zh) * | 2014-03-04 | 2014-05-28 | 杭州华三通信技术有限公司 | 分布式系统架构中的nat处理方法及装置 |
| CN203827377U (zh) * | 2014-01-17 | 2014-09-10 | 贵州电力试验研究院 | 可根据报文类型自动调整发送策略的多网口fpga网卡 |
| WO2015067118A1 (zh) * | 2013-11-08 | 2015-05-14 | 华为技术有限公司 | 多协议栈负载均衡方法及装置 |
| CN106713185A (zh) * | 2016-12-06 | 2017-05-24 | 瑞斯康达科技发展股份有限公司 | 一种多核cpu的负载均衡方法及装置 |
| CN108092913A (zh) * | 2017-12-27 | 2018-05-29 | 杭州迪普科技股份有限公司 | 一种报文分流的方法和多核cpu网络设备 |
| CN108667733A (zh) * | 2018-03-29 | 2018-10-16 | 新华三信息安全技术有限公司 | 一种网络设备及报文处理方法 |
| CN108881060A (zh) * | 2018-06-29 | 2018-11-23 | 新华三信息安全技术有限公司 | 一种处理通信报文的方法及装置 |
| CN109936513A (zh) * | 2019-02-18 | 2019-06-25 | 网宿科技股份有限公司 | 基于fpga的数据报文处理方法、智能网卡和cdn服务器 |
| WO2019129167A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 一种处理数据报文的方法和网卡 |
| CN209517181U (zh) * | 2018-12-28 | 2019-10-18 | 江苏金智科技股份有限公司 | 根据报文特征自动转发和过滤接收报文的网卡及双环网 |
| CN111628941A (zh) * | 2020-05-27 | 2020-09-04 | 广东浪潮大数据研究有限公司 | 一种网络流量的分类处理方法、装置、设备及介质 |
| CN112714073A (zh) * | 2019-10-24 | 2021-04-27 | 中兴通讯股份有限公司 | 基于sr-iov网卡的报文分流方法、系统及存储介质 |
| CN112737967A (zh) * | 2020-12-25 | 2021-04-30 | 江苏省未来网络创新研究院 | 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 |
| CN112799840A (zh) * | 2021-01-29 | 2021-05-14 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置、设备以及存储介质 |
| CN114157533A (zh) * | 2021-12-06 | 2022-03-08 | 北京锐安科技有限公司 | 一种基于clos架构的报文跨板组播复制转发方法和系统 |
| CN115242711A (zh) * | 2022-07-14 | 2022-10-25 | 天翼云科技有限公司 | 一种报文传输方法及装置 |
| CN115499387A (zh) * | 2022-09-13 | 2022-12-20 | 北京天融信网络安全技术有限公司 | 报文处理方法、装置、电子设备及存储介质 |
| WO2023061061A1 (zh) * | 2021-10-15 | 2023-04-20 | 中兴通讯股份有限公司 | 报文处理方法、线卡、设备及存储介质 |
-
2023
- 2023-07-31 CN CN202310957392.XA patent/CN116668375B/zh active Active
Patent Citations (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015067118A1 (zh) * | 2013-11-08 | 2015-05-14 | 华为技术有限公司 | 多协议栈负载均衡方法及装置 |
| CN203827377U (zh) * | 2014-01-17 | 2014-09-10 | 贵州电力试验研究院 | 可根据报文类型自动调整发送策略的多网口fpga网卡 |
| CN103825976A (zh) * | 2014-03-04 | 2014-05-28 | 杭州华三通信技术有限公司 | 分布式系统架构中的nat处理方法及装置 |
| CN106713185A (zh) * | 2016-12-06 | 2017-05-24 | 瑞斯康达科技发展股份有限公司 | 一种多核cpu的负载均衡方法及装置 |
| CN108092913A (zh) * | 2017-12-27 | 2018-05-29 | 杭州迪普科技股份有限公司 | 一种报文分流的方法和多核cpu网络设备 |
| WO2019129167A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 一种处理数据报文的方法和网卡 |
| CN108667733A (zh) * | 2018-03-29 | 2018-10-16 | 新华三信息安全技术有限公司 | 一种网络设备及报文处理方法 |
| CN108881060A (zh) * | 2018-06-29 | 2018-11-23 | 新华三信息安全技术有限公司 | 一种处理通信报文的方法及装置 |
| CN209517181U (zh) * | 2018-12-28 | 2019-10-18 | 江苏金智科技股份有限公司 | 根据报文特征自动转发和过滤接收报文的网卡及双环网 |
| CN109936513A (zh) * | 2019-02-18 | 2019-06-25 | 网宿科技股份有限公司 | 基于fpga的数据报文处理方法、智能网卡和cdn服务器 |
| CN112714073A (zh) * | 2019-10-24 | 2021-04-27 | 中兴通讯股份有限公司 | 基于sr-iov网卡的报文分流方法、系统及存储介质 |
| WO2021238248A1 (zh) * | 2020-05-27 | 2021-12-02 | 广东浪潮智慧计算技术有限公司 | 一种网络流量的分类处理方法、装置、设备及介质 |
| CN111628941A (zh) * | 2020-05-27 | 2020-09-04 | 广东浪潮大数据研究有限公司 | 一种网络流量的分类处理方法、装置、设备及介质 |
| CN112737967A (zh) * | 2020-12-25 | 2021-04-30 | 江苏省未来网络创新研究院 | 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 |
| CN112799840A (zh) * | 2021-01-29 | 2021-05-14 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置、设备以及存储介质 |
| WO2023061061A1 (zh) * | 2021-10-15 | 2023-04-20 | 中兴通讯股份有限公司 | 报文处理方法、线卡、设备及存储介质 |
| CN114157533A (zh) * | 2021-12-06 | 2022-03-08 | 北京锐安科技有限公司 | 一种基于clos架构的报文跨板组播复制转发方法和系统 |
| CN115242711A (zh) * | 2022-07-14 | 2022-10-25 | 天翼云科技有限公司 | 一种报文传输方法及装置 |
| CN115499387A (zh) * | 2022-09-13 | 2022-12-20 | 北京天融信网络安全技术有限公司 | 报文处理方法、装置、电子设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116668375A (zh) | 2023-08-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12199794B2 (en) | Packet sending method, apparatus, and system | |
| US11134132B2 (en) | Accelerated network packet processing | |
| US10237177B2 (en) | Transfer device and transfer system | |
| US12355666B2 (en) | Method for forwarding packet in hybrid network, device, and system | |
| CN113852550B (zh) | 发送报文的方法、装置、网络设备、系统及存储介质 | |
| EP4009596B1 (en) | Message forwarding method, device, and system in sr network | |
| CN115426305B (zh) | 报文处理方法、装置、系统及存储介质 | |
| CN110311860B (zh) | Vxlan下多链路负载均衡方法及装置 | |
| US20240048479A1 (en) | Packet Forwarding Method and Apparatus, Network Device, and Storage Medium | |
| JP2022537296A (ja) | Evpnメッセージ転送方法、システム、記憶媒体及び端末 | |
| CN120675947B (zh) | 流量报文的业务类型识别方法、装置、设备、介质及产品 | |
| CN112737954A (zh) | 报文处理方法、装置、系统、设备及存储介质 | |
| CN116996478A (zh) | 隧道封装表资源管理方法、dpu及相关设备 | |
| CN116668375B (zh) | 一种报文分流方法、装置、网络设备及存储介质 | |
| CN108737239B (zh) | 一种报文转发方法及装置 | |
| JP6222505B2 (ja) | 入力パラメータを生成するための方法および装置 | |
| CN117376233A (zh) | 数据处理方法、装置及系统 | |
| CN113542112B (zh) | 一种报文转发方法及网络设备 | |
| CN117097656A (zh) | 一种报文处理的方法及相关设备 | |
| CN117061406A (zh) | 一种报文处理的方法及相关设备 | |
| CN119316352B (zh) | 报文转发方法、装置、线卡芯片和计算机可读存储介质 | |
| CN117478458A (zh) | 一种报文处理方法、装置及网络设备 | |
| WO2025098287A1 (zh) | 报文的转发处理方法、装置、设备、系统及存储介质 | |
| CN117478591A (zh) | 一种报文处理方法、网络设备及系统 | |
| CN117376232A (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 |