CN112003792B - 一种软硬件协同的报文加速方法和装置 - Google Patents
一种软硬件协同的报文加速方法和装置 Download PDFInfo
- Publication number
- CN112003792B CN112003792B CN202010717720.5A CN202010717720A CN112003792B CN 112003792 B CN112003792 B CN 112003792B CN 202010717720 A CN202010717720 A CN 202010717720A CN 112003792 B CN112003792 B CN 112003792B
- Authority
- CN
- China
- Prior art keywords
- message
- service
- queue
- acceleration
- mark
- 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
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/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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- 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/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
-
- 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/6215—Individual queue per QOS, rate or priority
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种软硬件协同的报文加速方法和装置,该报文加速方法包括:软件加速层判断报文中是否携带有标记信息;若报文中没有携带标记信息,则通过协议栈对报文进行转发,并根据协议栈的转发结果得到报文的硬件加速行为和软件加速行为;软件加速层根据报文的业务类型分配标记信息,依据标记信息建立业务处理模块,并将软件加速行为下发至业务处理模块;软件加速层根据报文的特征信息建立硬件查找规则,并建立硬件查找规则、硬件加速行为和标记信息的第一关联关系,将第一关联关系下发至硬件加速层;若报文中携带有标记信息,则根据报文的标记信息将报文分配至相应的业务处理模块,业务处理模块根据相应的软件加速行为对报文进行软件加速。
Description
技术领域
本发明属于通信领域,更具体地,涉及一种软硬件协同的报文加速方法和装置。
背景技术
随着国家对网络提速的号召,网关产品的数据负荷急剧增加,随之而来的是硬件加速器或者网络处理器NP(Network Processor,简写为NP)的快速发展。通常家庭网关是通过学习Linux网络协议栈修改报文和转发报文,并将报文下发到硬件加速器或者NP中,后续报文将直接绕过网络协议栈实现硬件加速。
目前,家庭网关等报文转发设备都能较好的支持L2~L3层报文的硬件加速,随着协议的增加和变化,业务类型和应用场景变得越来越多,例如DsLite隧道,VxLAN隧道,IPSec VPN(Virtual Private Network,简写为VPN)等L4~L7层业务。为了实现L2~L7层业务的加速,现有的方式是采用硬件加速的方式对L2~L7层业务进行加速,但是硬件加速的方式对芯片的设计要求较高,芯片的复杂度很高,不仅需要较高的设计成本,而且芯片的功耗也随之增加。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种软硬件协同的报文加速方法和装置,其目的在于硬件加速层负责L2~L3层的加速行为,软件加速层负责L4~L7层的加速行为,软件加速层和硬件加速层相互配合实现对报文的L2~L7层进行加速,在不增加硬件设计成本、硬件功耗和硬件设计难度的情况下,大大提升了报文加速的效率,由此解决采用硬件加速的方式对L2~L7层业务进行加速时,硬件加速的方式对芯片的设计要求较高,芯片的复杂度很高,不仅需要较高的设计成本,而且芯片的功耗也随之增加的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种软硬件协同的报文加速方法,所述报文加速方法包括:
软件加速层判断报文中是否携带有标记信息;
若所述报文中没有携带标记信息,则通过协议栈对所述报文进行转发,并根据所述协议栈的转发结果得到所述报文的硬件加速行为和软件加速行为;
软件加速层根据所述报文的业务类型分配标记信息,依据所述标记信息建立业务处理模块,并将所述软件加速行为下发至所述业务处理模块,其中,一个业务处理模块用于处理同一种业务类型的报文;
软件加速层根据所述报文的特征信息建立硬件查找规则,并建立硬件查找规则、硬件加速行为和标记信息的第一关联关系,将所述第一关联关系下发至硬件加速层;
若所述报文中携带有标记信息,则根据所述报文的标记信息将所述报文分配至相应的业务处理模块,业务处理模块根据相应的软件加速行为对所述报文进行软件加速。
优选地,所述标记信息包括业务标记,其中,相同业务类型的报文具有相同的业务标记;
所述软件加速层根据所述报文的业务类型分配标记信息,依据所述标记信息建立业务处理模块,并将所述软件加速行为下发至所述业务处理模块包括:
软件加速层根据所述报文的业务类型为所述报文分配业务标记;
软件加速层判断所述业务标记是否为新增的标记;
若是新增的标记,则依据所述业务标记新建业务处理模块,并将所述软件加速行为下发至所述业务处理模块,以通过业务标记将所述报文分配至相应的业务处理模块。
优选地,所述标记信息包括还包括队列标记,每一业务处理模块包括至少一个业务队列,所述队列标记用于区分不同的业务队列;
所述软件加速层根据所述报文的业务类型分配标记信息,依据所述标记信息建立业务处理模块,并将所述软件加速行为下发至所述业务处理模块包括:
软件加速层根据业务处理模块的业务队列的负载情况为所述报文分配队列标记;
判断所述队列标记是否为新增的标记;
若是新增的标记,则在相应的业务处理模块中,依据所述业务标记新建业务队列,以通过队列标记将所述报文分配至相应的业务队列。
优选地,若所述报文中携带有标记信息,则根据所述报文的标记信息将所述报文分配至相应的业务处理模块,业务处理模块根据相应的软件加速行为对所述报文进行软件加速包括:
若所述报文中携带有标记信息,则根据所述报文的业务标记确定所述报文所对应的业务处理模块;
在所述报文所对应的业务处理模块中,根据所述报文的队列标记将所述报文分配至相应的业务队列,以实现报文在业务队列间进行分发;
业务处理模块根据相应的软件加速行为对所述报文进行软件加速。
优选地,所述报文加速方法还包括:
所述硬件加速层接收报文,判断所述报文的特征信息是否命中所述第一关联关系中的硬件查找规则;
若命中,则获取相应的业务标记、队列标记和硬件加速行为,为所述报文设置业务标记和队列标记,并根据相应的硬件加速行为对所述报文进行硬件加速,将加速后的报文发送至所述软件加速层;
若没有命中,则直接将所述报文发送至软件加速层。
优选地,所述报文加速方法还包括:
硬件加速层还为报文设置报文标记,其中,在同一个业务流中,报文标记具有唯一性,用于标记不同的报文。
优选地,在同一个业务流中,报文标记以等差间隔呈递增设置,所述标记信息还包括流标记,所述流标记用于区分不同的业务流;
所述报文加速方法还包括:
软件加速层获取业务队列的负载情况,判断是否存在负载情况达到负载阈值的第一业务队列;
若存在,则在所述第一业务队列中,选择待切换的业务流的流标记作为目标流标记;
获取空闲业务队列,并依据所述第一业务队列的队列标记、所述空闲业务队列的队列标记和所述目标流标记更新所述第一关联关系,将更新后的第一关联关系下发至所述硬件加速层;
所述硬件加速层根据更新后的第一关联关系为符合所述目标流标记的报文设置队列标记,以将报文指向所述空闲业务队列;
所述软件加速层将指向所述空闲业务队列的报文缓存至缓存队列;
判断所述第一业务队列中符合所述目标流标记的报文是否全部加速完成;
若全部加速完成,则根据报文标记的顺序将所述缓存队列中的报文分配至所述空闲业务队列,以执行软件加速。
优选地,判断所述第一业务队列中符合所述目标流标记的报文是否全部加速完成包括:
针对所述第一业务队列中符合所述目标流标记的报文,软件加速层获取已经加速完成的最大的报文标记IDmax;
获取所述缓存队列中最小的报文标记IDmin;
判断所述最小的报文标记IDmin与所述最大的报文标记IDmax之间的差值是否等于所述等差间隔;
若等于所述等差间隔,则所述第一业务队列中符合所述目标流标记的报文全部加速完成;
若大于所述等差间隔,则所述第一业务队列中符合所述目标流标记的报文没有全部加速完成。
优选地,获取空闲业务队列,并依据所述第一业务队列的队列标记、所述空闲业务队列的队列标记和所述目标流标记更新所述第一关联关系,将更新后的第一关联关系下发至所述硬件加速层包括:
获取空闲业务队列的队列标记ID2;
将所述第一关联关系中符合所述目标流标记的队列标记ID1替换为队列标记ID2,以更新所述第一关联关系;
并将更新后的第一关联关系下发至所述硬件加速层,以使硬件加速层基于队列标记ID2对后续报文设置队列标记。
按照本发明的另一方面,提供了一种报文加速装置,所述报文加速装置包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行本发明所述的报文加速方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提供一种软硬件协同的报文加速方法和装置,该报文加速方法包括:软件加速层判断报文中是否携带有标记信息;若报文中没有携带标记信息,则通过协议栈对报文进行转发,并根据协议栈的转发结果得到报文的硬件加速行为和软件加速行为;软件加速层根据报文的业务类型分配标记信息,依据标记信息建立业务处理模块,并将软件加速行为下发至业务处理模块,其中,一个业务处理模块用于处理同一种业务类型的报文;软件加速层根据报文的特征信息建立硬件查找规则,并建立硬件查找规则、硬件加速行为和标记信息的第一关联关系,将第一关联关系下发至硬件加速层;若报文中携带有标记信息,则根据报文的标记信息将报文分配至相应的业务处理模块,业务处理模块根据相应的软件加速行为对报文进行软件加速。
在本发明中,利用现有硬件资源优势,硬件加速层负责处理报文的规则匹配和设置标记,可以避免软件加速层对报文进行分类的过程中,软件匹配和查找的消耗,只需要根据报文携带的标记信息,便可以将报文分配至相应的业务处理模块,可快速实现报文分类控制和统一管理。此外,硬件加速层负责L2~L3层的加速行为,软件加速层负责L4~L7层的加速行为,软件加速层和硬件加速层相互配合实现对报文的L2层-L7层进行加速,在不增加硬件设计成本、硬件功耗和硬件设计难度的情况下,大大提升了报文加速的效率。
附图说明
图1是本发明实施例提供的一种软硬件协同的报文加速方法的流程示意图;
图2是本发明实施例提供的另一种软硬件协同的报文加速方法的流程示意图;
图3是本发明实施例提供的又一种软硬件协同的报文加速方法的结构示意图;
图4是本发明实施例提供的一种报文加速装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
为了便于理解本发明的技术方案,首先简要说明OSI(Open SystemInterconnection,简写为OSI)模型,OSI模型把网络通信的工作分为七层,分别是物理层(L1层)、数据链路层(L2层)、网络层(L3层)、传输层(L4层)、会话层(L5层)、表示层(L6层)和应用层(L7层)。其中,L1层至L4层被认为是底层,这些层与数据移动密切相关;L5层至L7层是高层,包含应用程序级的数据,每一层负责一项具体的工作,然后把数据传送到下一层。
物理层(Physical Layer)实际上就是布线、光纤、网卡和其它用来把两台网络通信设备连接在一起的东西。
数据链路层(Data Link Layer)运行以太网等协议,仅关注以太网上的MAC地址。
网络层(Network Layer)的任务是选择合适的网间路由和交换结点,确保数据及时传送。网络层将数据链路层提供的帧组成数据包,数据包中封装有网络层包头,其中,网络层包头中含有源站点和目的站点地址的网络地址(IP地址)。
传输层(Transport Layer)提供端对端的通信管理。
会话层(Session Layer)也可以称为会晤层或对话层,会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。
表示层(Presentation Layer)主要提供格式化的表示和转换数据服务,解决用户信息的语法表示问题。数据的压缩和解压缩,加密和解密等工作都由表示层负责。
应用层(Application Layer)专门用于应用程序的。应用层确定进程之间通信的性质以满足用户需要,以及提供网络与用户应用软件之间的接口服务。
下文所述的硬件加速行为指的是对L2~L3层的加速,软件加速行为指的是对L4~L7层的加速。
实施例1:
本实施提供一种软硬件协同的报文加速方法,硬件加速层负责对报文的L2~L3层进行加速,软件加速层负责对报文的L4~L7层加速,软件加速层和硬件加速层相互配合实现对报文的L2~L7层进行加速,大大提升了报文加速的效率。
下面结合图1,具体说明本实施例的报文加速方法的实现过程,该报文加速方法包括如下步骤:
步骤101:软件加速层判断报文中是否携带有标记信息。
在本实施例中,按照报文产生的顺序,可以将报文分为两种:第一报文和后续报文,其中,第一报文指的是同一业务流的首个报文,后续报文指的是首个报文之后的报文。其中,符合相同的硬件查找规则的报文从属于同一个业务流。
其中,标记信息用于对报文进行标识,以区分不同业务类型的报文。
软件加速层判断报文中是否携带有标记信息,若报文中没有携带标记信息,则说明该报文是某一个业务流的第一报文,软件加速层和硬件加速层没有针对该报文的加速行为,执行步骤102,通过协议栈对所述报文进行转发。
若报文中携带有标记信息,则说明该报文为某一个业务流的后续报文,软件加速层有针对该报文的加速行为,执行步骤105,按照标记信息将报文分配至相应的业务处理模块,进行相应的软件加速。
步骤102:若所述报文中没有携带标记信息,则通过协议栈对所述报文进行加速,并根据所述协议栈的转发结果得到所述报文的硬件加速行为和软件加速行为。
其中,硬件加速行为是针对L2层和L3层的加速行为,包括替换MAC地址、替换IP地址和VLAN处理等。
其中,软件加速行为是针对L4~L7层的加速行为,包括替换端口号、隧道头部处理、应用层代理、加密和解密等。
结合图3,若所述报文中没有携带标记信息可以理解为该报文为第一报文,硬件加速层将第一报文直接发送至软件加速层,软件加速层的软件加速引擎将第一报文发送至软件控制层的协议栈,协议栈对第一报文进行转发。
软件加速层获取协议栈对第一报文的转发结果,根据转发结果得到硬件加速行为和软件加速行为,从而获取到同一业务类型的报文所对应的硬件加速行为和软件加速行为。
举例而言,针对L2~L3层,协议栈的转发结果为Src MAC(源MAC地址)和Dest MAC(目的MAC地址)被替换成了Src MAC1和Dest MAC1,硬件加速行为为执行MAC替换,将SrcMAC和Dest MAC被替换成Src MAC1和Dest MAC1;协议栈的转发结果为Src IP(源IP地址)被替换成了Src IP1,硬件加速行为为执行Src IP替换,将Src IP被替换成Src IP1。
针对L4~L7层,协议栈的转发结果为添加VxLAN隧道头1,软件加速行为为执行VxLAN隧道头添加行为,将VxLAN隧道头1添加在报文以太网头部之前;协议栈的转发结果为替换FTP(File Transfer Protocol,简写为FTP)层私网IP地址,软件加速行为为执行应用层IP地址替换。
步骤103:软件加速层根据所述报文的业务类型分配标记信息,依据所述标记信息建立业务处理模块,并将所述软件加速行为下发至所述业务处理模块,其中,一个业务处理模块用于处理同一种业务类型的报文。
其中,业务类型包括:DsLite隧道业务、VxLAN隧道业务、IP封装业务和IPSec VPN业务等。
在本实施例中,根据报文的特征信息生成硬件查找规则,其中,报文的特征信息包括:源IP地址、源端口地址、目的IP地址、目的端口地址和传输协议中的一种或多种,可以根据实际需求选择性配置。
其中,所述标记信息包括业务标记和队列标记,其中,相同业务类型的报文具有相同的业务标记,软件加速层根据业务标记将报文下发至相应的业务处理模块;每一业务处理模块包括至少一个业务队列,每一个业务队列具有相应的队列标记,软件加速层根据队列标记将报文分配至相应的业务队列。
在步骤103中,软件加速层根据所述报文的业务类型为所述报文分配业务标记;软件加速层判断所述业务标记是否为新增的标记;若是新增的标记,则依据所述业务标记新建业务处理模块,并将所述软件加速行为下发至所述业务处理模块,以通过业务标记将所述报文分配至相应的业务处理模块;软件加速层根据业务处理模块的业务队列的负载情况为所述报文分配队列标记;判断所述队列标记是否为新增的标记;若是新增的标记,则在相应的业务处理模块中,依据所述业务标记新建业务队列,以通过队列标记将所述报文分配至相应的业务队列。
在实际应用场景下,软件加速层根据业务优先级和负载情况可动态调整各业务处理模块之间的权重,统一管理各业务之间的负载情况,实现优先调度和公平调度。具体地,权重越大,获取的cpu资源越多;对于需要优先处理的业务,可以调整其所属的业务处理模块的权重,以实现优先调度,保证业务带宽。
在其他应用场景下,若业务标记和队列标记均不是新增的标记,则无需新建业务处理模块和业务队列。
在本实施例中,通过业务标记对报文进行分类,以执行相应的加速行为,通过队列标记将报文分配至不同的业务队列中,实现队列间的负载均衡。
步骤104:软件加速层根据所述报文的特征信息建立硬件查找规则,并建立硬件查找规则、硬件加速行为和标记信息的第一关联关系,将所述第一关联关系下发至硬件加速层。
具体地,软件加速层根据所述报文的特征信息建立硬件查找规则,并建立硬件查找规则、硬件加速行为、业务标记和队列标记的第一关联关系,以便于硬件加速层基于第一关联关系为报文设置标记,并执行相应的加速行为。
在实际应用场景下,结合图3,硬件加速层在接收到报文后,首先判断报文是否能够命中某一硬件查找规则,若命中,则依据第一关联关系确定相应的业务标记、队列标记和硬件加速行为,硬件加速层根据业务标记、队列标记为报文设置标记,然后再依据硬件加速行为对报文进行加速,再将加速后的报文发送至软件加速层,软件加速层的软件加速引擎根据业务标记将报文分配至相应的业务处理模块,根据队列标记将报文分配至相应的业务队列。
由于报文上携带有标记信息,软件加速层无需将报文发送至协议栈进行分析,可以根据标记信息将报文分配至相应的业务处理模块,由业务处理模块对报文进行软件加速。
步骤105:若所述报文中携带有标记信息,则根据所述报文的标记信息将所述报文分配至相应的业务处理模块,业务处理模块根据相应的软件加速行为对所述报文进行软件加速。
具体地,若所述报文中携带有标记信息,则根据所述报文的业务标记确定所述报文所对应的业务处理模块;在所述报文所对应的业务处理模块中,根据所述报文的队列标记将所述报文分配至相应的业务队列,以实现报文在业务队列间进行分发;业务处理模块根据相应的软件加速行为对所述报文进行软件加速。
在本实施例中,由协议栈负责对第一报文(不满足任一已经下发的硬件查找规则的报文可以称之为第一报文)进行分析,得到该第一报文的业务类型和特征信息,根据报文的业务类型确定硬件加速行为和软件加速行为,通过特征信息生成硬件查找规则,并将得到的业务类型、硬件查找规则、硬件加速行为和软件加速行为下发至硬件加速层和软件加速层。
对于后续报文(满足某一已经下发的硬件查找规则的报文可以称之为后续报文),硬件加速层负责为后续报文设置标记信息,并根据下发的硬件加速行为对后续报文进行硬件加速,软件加速层根据后续报文携带的标记信息将后续报文分配至相应的业务处理模块,由业务处理模块对后续报文进行软件加速。
在实际应用场景下,硬件加速层的工作机制如下:所述硬件加速层接收报文,判断所述报文的特征信息是否命中所述第一关联关系中的硬件查找规则;若命中,则获取相应的标记信息和硬件加速行为,为所述报文设置标记信息,并根据相应的硬件加速行为对所述报文进行硬件加速,将加速后的报文发送至所述软件加速层;若没有命中,则直接将所述报文发送至软件加速层,由软件加速层将报文发送至协议栈,由协议栈对该报文进行加速。
在本实施例中,利用现有硬件资源优势,硬件加速层负责处理报文的规则匹配和设置标记,可以避免软件加速层对报文进行分类的过程中,软件匹配和查找的消耗,只需要根据报文携带的标记信息,便可以将报文分配至相应的业务处理模块,可快速实现报文分类控制和统一管理。此外,硬件加速层负责L2~L3层的加速行为,软件加速层负责L4~L7层的加速行为,软件加速层和硬件加速层相互配合实现对报文的L2~L7层进行加速,在不增加硬件设计成本、硬件功耗和硬件设计难度的情况下,大大提升了报文加速的效率。
实施例2:
在实际应用场景下,为了保证业务队列间的负载均衡,当某一业务队列的负载过重时,需要将业务流切换至空闲的业务队列,在切换队列的过程中容易出现乱序问题。
为了解决业务切换过程中的乱序问题,结合前述实施例1,本实施例提供另一种报文加速方法。在本实施例中,所述标记信息还包括流标记,所述流标记用于区分不同的业务流,其中,符合同一个硬件查找规则的报文从属于同一个业务流,具有相同的流标记。硬件加速层还为报文设置报文标记,其中,在同一个业务流中,报文标记具有唯一性,用于标记不同的报文。
在实际应用场景下,业务处理模块用于处理相同业务类型的业务流,一个业务处理模块可以对应多个不同的业务流,例如,业务流1和业务流2的硬件查找规则不同,即,业务流1和业务流2具有不同的流标记,但是业务流1和业务流2的业务类型相同,即,业务流1和业务流2对应的业务标记相同。当某一业务队列的负载过重时,可以将某一个业务流切换至空闲业务队列,在队列切换的过程中,可以根据流标记和报文标记进行队列切换。
下面参阅图2和图3,具体说明本实施例的报文加速方法的实现过程,该报文加速方法包括如下步骤:
步骤201:软件加速层获取业务队列的负载情况,判断是否存在负载情况达到负载阈值的第一业务队列。
步骤202:若存在,则在所述第一业务队列中,选择待切换的业务流的流标记作为目标流标记。
例如,第一业务队列负责对业务流1和业务流2进行加速,当第一业务队列的负载过重时,可以将业务流1切换至空闲业务队列,业务流1对应的流标记为目标流标记。
步骤203:获取空闲业务队列,并依据所述第一业务队列的队列标记、所述空闲业务队列的队列标记和所述目标流标记更新所述第一关联关系,将更新后的第一关联关系下发至所述硬件加速层。
具体地,获取空闲业务队列的队列标记ID2;将所述第一关联关系中符合所述目标流标记的队列标记ID1替换为队列标记ID2,以更新所述第一关联关系;并将更新后的第一关联关系下发至所述硬件加速层,以使硬件加速层基于队列标记ID2对后续报文设置队列标记。
步骤204:所述硬件加速层根据更新后的第一关联关系为符合所述目标流标记的报文设置队列标记,以将报文指向所述空闲业务队列。
步骤205:所述软件加速层将指向所述空闲业务队列的报文缓存至缓存队列。
步骤206:判断所述第一业务队列中符合所述目标流标记的报文是否全部加速完成。
具体地,针对所述第一业务队列中符合所述目标流标记的报文,软件加速层获取已经加速完成的最大的报文标记IDmax;获取所述缓存队列中最小的报文标记IDmin(相应的报文符合所述目标流标记);判断所述最小的报文标记IDmin与所述最大的报文标记IDmax之间的差值是否等于所述等差间隔;若等于所述等差间隔,则所述第一业务队列中符合所述目标流标记的报文全部加速完成,则执行步骤207。
若大于所述等差间隔,则所述第一业务队列中符合所述目标流标记的报文没有全部加速完成,等待加速完成后,再将报文分配至所述空闲业务队列。
举例而言,等差间隔为1,业务处理模块会在业务处理行为中更新已经加速完成的报文标记,例如,第一业务队列中符合所述目标流标记的报文,当前加速完成的最大的报文标记为99,缓存队列中最小的报文标记为101,二者之差大于1,说明在第一业务队列中符合所述目标流标记的报文还有没有加速完成,必须要等待当前加速完成的最大的报文标记更新到100时,才将缓存队列中的报文加入空闲队列。
步骤207:若全部加速完成,则根据报文标记的顺序将所述缓存队列中的报文分配至所述空闲业务队列,以执行软件加速。
在本实施例中,采用流标记确定需要切换的业务流,采用报文标记确定同一个业务流中的报文的顺序,避免切换队列的过程中出现乱序问题,实现了业务流保序的目的。
实施例3:
请参阅图4,图4是本发明实施例提供的一种报文加速装置的结构示意图。本实施例的报文加速装置包括一个或多个处理器41以及存储器42。其中,图4中以一个处理器41为例。
处理器41和存储器42可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器42作为一种基于攻击报文加速方法的非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,上述实施例的方法以及对应的程序指令。处理器41通过运行存储在存储器42中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,实现前述实施例的方法。
其中,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至处理器41。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
值得说明的是,上述装置和***内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(Read Only Memory,简写为ROM)、随机存取存储器(Random AccessMemory,简写为RAM)、磁盘或光盘等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种软硬件协同的报文加速方法,其特征在于,所述报文加速方法包括:
软件加速层判断报文中是否携带有标记信息;
若所述报文中没有携带标记信息,则通过协议栈对所述报文进行转发,并根据所述协议栈的转发结果得到所述报文的硬件加速行为和软件加速行为;
软件加速层根据所述报文的业务类型分配标记信息,依据所述标记信息建立业务处理模块,并将所述软件加速行为下发至所述业务处理模块,其中,一个业务处理模块用于处理同一种业务类型的报文;
软件加速层根据所述报文的特征信息建立硬件查找规则,并建立硬件查找规则、硬件加速行为和标记信息的第一关联关系,将所述第一关联关系下发至硬件加速层;其中,标记信息包括业务标记和队列标记;
所述硬件加速层接收报文,判断所述报文的特征信息是否命中所述第一关联关系中的硬件查找规则;
若命中,则获取相应的业务标记、队列标记和硬件加速行为,为所述报文设置业务标记和队列标记,并根据相应的硬件加速行为对所述报文进行硬件加速,将加速后的报文发送至所述软件加速层;
若没有命中,则直接将所述报文发送至软件加速层;
若所述报文中携带有标记信息,则根据所述报文的标记信息将所述报文分配至相应的业务处理模块,业务处理模块根据相应的软件加速行为对所述报文进行软件加速。
2.根据权利要求1所述的报文加速方法,其特征在于,相同业务类型的报文具有相同的业务标记;
所述软件加速层根据所述报文的业务类型分配标记信息,依据所述标记信息建立业务处理模块,并将所述软件加速行为下发至所述业务处理模块包括:
软件加速层根据所述报文的业务类型为所述报文分配业务标记;
软件加速层判断所述业务标记是否为新增的标记;
若是新增的标记,则依据所述业务标记新建业务处理模块,并将所述软件加速行为下发至所述业务处理模块,以通过业务标记将所述报文分配至相应的业务处理模块。
3.根据权利要求2所述的报文加速方法,其特征在于,每一业务处理模块包括至少一个业务队列,所述队列标记用于区分不同的业务队列;
所述软件加速层根据所述报文的业务类型分配标记信息,依据所述标记信息建立业务处理模块,并将所述软件加速行为下发至所述业务处理模块包括:
软件加速层根据业务处理模块的业务队列的负载情况为所述报文分配队列标记;
判断所述队列标记是否为新增的标记;
若是新增的标记,则在相应的业务处理模块中,依据所述业务标记新建业务队列,以通过队列标记将所述报文分配至相应的业务队列。
4.根据权利要求3所述的报文加速方法,其特征在于,若所述报文中携带有标记信息,则根据所述报文的标记信息将所述报文分配至相应的业务处理模块,业务处理模块根据相应的软件加速行为对所述报文进行软件加速包括:
若所述报文中携带有标记信息,则根据所述报文的业务标记确定所述报文所对应的业务处理模块;
在所述报文所对应的业务处理模块中,根据所述报文的队列标记将所述报文分配至相应的业务队列,以实现报文在业务队列间进行分发;
业务处理模块根据相应的软件加速行为对所述报文进行软件加速。
5.根据权利要求1所述的报文加速方法,其特征在于,所述报文加速方法还包括:
硬件加速层还为报文设置报文标记,其中,在同一个业务流中,报文标记具有唯一性,用于标记不同的报文。
6.根据权利要求5所述的报文加速方法,其特征在于,在同一个业务流中,报文标记以等差间隔呈递增设置,所述标记信息还包括流标记,所述流标记用于区分不同的业务流;
所述报文加速方法还包括:
软件加速层获取业务队列的负载情况,判断是否存在负载情况达到负载阈值的第一业务队列;
若存在,则在所述第一业务队列中,选择待切换的业务流的流标记作为目标流标记;
获取空闲业务队列,并依据所述第一业务队列的队列标记、所述空闲业务队列的队列标记和所述目标流标记更新所述第一关联关系,将更新后的第一关联关系下发至所述硬件加速层;
所述硬件加速层根据更新后的第一关联关系为符合所述目标流标记的报文设置队列标记,以将报文指向所述空闲业务队列;
所述软件加速层将指向所述空闲业务队列的报文缓存至缓存队列;
判断所述第一业务队列中符合所述目标流标记的报文是否全部加速完成;
若全部加速完成,则根据报文标记的顺序将所述缓存队列中的报文分配至所述空闲业务队列,以执行软件加速。
7.根据权利要求6所述的报文加速方法,其特征在于,判断所述第一业务队列中符合所述目标流标记的报文是否全部加速完成包括:
针对所述第一业务队列中符合所述目标流标记的报文,软件加速层获取已经加速完成的最大的报文标记IDmax;
获取所述缓存队列中最小的报文标记IDmin;
判断所述最小的报文标记IDmin与所述最大的报文标记IDmax之间的差值是否等于所述等差间隔;
若等于所述等差间隔,则所述第一业务队列中符合所述目标流标记的报文全部加速完成;
若大于所述等差间隔,则所述第一业务队列中符合所述目标流标记的报文没有全部加速完成。
8.根据权利要求6所述的报文加速方法,其特征在于,获取空闲业务队列,并依据所述第一业务队列的队列标记、所述空闲业务队列的队列标记和所述目标流标记更新所述第一关联关系,将更新后的第一关联关系下发至所述硬件加速层包括:
获取空闲业务队列的队列标记ID2;
将所述第一关联关系中符合所述目标流标记的队列标记ID1替换为队列标记ID2,以更新所述第一关联关系;
并将更新后的第一关联关系下发至所述硬件加速层,以使硬件加速层基于队列标记ID2对后续报文设置队列标记。
9.一种报文加速装置,其特征在于,所述报文加速装置包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行如权利要求1~8任一项所述的报文加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010717720.5A CN112003792B (zh) | 2020-07-23 | 2020-07-23 | 一种软硬件协同的报文加速方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010717720.5A CN112003792B (zh) | 2020-07-23 | 2020-07-23 | 一种软硬件协同的报文加速方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112003792A CN112003792A (zh) | 2020-11-27 |
CN112003792B true CN112003792B (zh) | 2022-04-15 |
Family
ID=73467748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010717720.5A Active CN112003792B (zh) | 2020-07-23 | 2020-07-23 | 一种软硬件协同的报文加速方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112003792B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584582B (zh) * | 2022-02-24 | 2024-03-08 | 中汽创智科技有限公司 | 一种车内报文处理方法、装置、车载终端及存储介质 |
CN114978806A (zh) * | 2022-05-05 | 2022-08-30 | 上海联虹技术有限公司 | 基于硬件加速的数据传输方法及其装置、处理器 |
CN117997976A (zh) * | 2022-11-04 | 2024-05-07 | 深圳市中兴微电子技术有限公司 | L2tp报文硬件加速方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493862A (zh) * | 2009-01-15 | 2009-07-29 | 北京航空航天大学 | 一种算法加速的软硬件协同设计方法 |
CN104750758A (zh) * | 2013-12-31 | 2015-07-01 | 深圳航天东方红海特卫星有限公司 | 一种微小卫星测试数据包的通用解析处理方法和*** |
CN106202685A (zh) * | 2016-07-01 | 2016-12-07 | 合肥海本蓝科技有限公司 | 一种软硬件协同仿真加速器运行环境搭建方法和装置 |
CN111178518A (zh) * | 2019-12-24 | 2020-05-19 | 杭州电子科技大学 | 一种基于fpga的软硬件协同的加速方法 |
CN111178522A (zh) * | 2020-04-13 | 2020-05-19 | 杭州雄迈集成电路技术股份有限公司 | 一种软硬件协同加速方法、***及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0470320B1 (en) * | 1990-08-10 | 1995-01-11 | International Business Machines Corporation | Mechanism for performing the steady state and error recovery functions of a communication protocol |
CN100409646C (zh) * | 2003-10-28 | 2008-08-06 | 武汉烽火网络有限责任公司 | 用策略流实现不同因特网协议数据包转发的方法和设备 |
CN103117931B (zh) * | 2013-02-21 | 2015-07-01 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及*** |
CN109101439B (zh) * | 2017-06-21 | 2024-01-09 | 深圳市中兴微电子技术有限公司 | 一种报文处理的方法及装置 |
CN107862074A (zh) * | 2017-11-24 | 2018-03-30 | 中国航空工业集团公司西安航空计算技术研究所 | 大数据量参数快速读写方法 |
-
2020
- 2020-07-23 CN CN202010717720.5A patent/CN112003792B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493862A (zh) * | 2009-01-15 | 2009-07-29 | 北京航空航天大学 | 一种算法加速的软硬件协同设计方法 |
CN104750758A (zh) * | 2013-12-31 | 2015-07-01 | 深圳航天东方红海特卫星有限公司 | 一种微小卫星测试数据包的通用解析处理方法和*** |
CN106202685A (zh) * | 2016-07-01 | 2016-12-07 | 合肥海本蓝科技有限公司 | 一种软硬件协同仿真加速器运行环境搭建方法和装置 |
CN111178518A (zh) * | 2019-12-24 | 2020-05-19 | 杭州电子科技大学 | 一种基于fpga的软硬件协同的加速方法 |
CN111178522A (zh) * | 2020-04-13 | 2020-05-19 | 杭州雄迈集成电路技术股份有限公司 | 一种软硬件协同加速方法、***及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
5G核心网UPF硬件加速技术;王立文等;《移动通信》;20200115(第01期);全文 * |
基于FPGA的Memcached加速研究;韩玉浩等;《集成电路应用》(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112003792A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112003792B (zh) | 一种软硬件协同的报文加速方法和装置 | |
US11134132B2 (en) | Accelerated network packet processing | |
US20180027101A1 (en) | High-efficiency service chaining with agentless service nodes | |
CN108353029B (zh) | 用于管理计算网络中的数据业务的方法和*** | |
US20210160350A1 (en) | Generating programmatically defined fields of metadata for network packets | |
WO2018000443A1 (zh) | 基于业务功能链sfc的报文转发方法、装置和*** | |
US9460289B2 (en) | Securing a virtual environment | |
US9213564B1 (en) | Network policy implementation with multiple interfaces | |
US10742697B2 (en) | Packet forwarding apparatus for handling multicast packet | |
CN108471389B (zh) | 一种基于服务功能链的交换机*** | |
CN103685009A (zh) | 数据包的处理方法、控制器及*** | |
EP3087707A2 (en) | System and method for a software defined protocol network node | |
US10819640B1 (en) | Congestion avoidance in multipath routed flows using virtual output queue statistics | |
US11398975B2 (en) | Methods and systems for sending packets through a plurality of tunnels | |
US20230054537A1 (en) | Method for instantiating a network service and corresponding apparatus | |
US20240195749A1 (en) | Path selection for packet transmission | |
US10205610B2 (en) | Uplink packet routing in a system-on-a-chip base station architecture | |
CN113395212A (zh) | 网络装置及其操作方法和非暂时性计算机可读介质 | |
US9491098B1 (en) | Transparent network multipath utilization through encapsulation | |
CN112653622B (zh) | 一种SRv6 uSID转发方法及装置 | |
EP3718269A1 (en) | Packet value based packet processing | |
CN114268518A (zh) | 一种实现sdwan数据隧道转发加速的方法及*** | |
WO2015154393A1 (zh) | 业务节点能力处理方法、装置、业务分类器及业务控制器 | |
US11201829B2 (en) | Technologies for pacing network packet transmissions | |
CN112398735B (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 |