CN114448892A - 一种软硬件选路方法及装置 - Google Patents

一种软硬件选路方法及装置 Download PDF

Info

Publication number
CN114448892A
CN114448892A CN202210126319.3A CN202210126319A CN114448892A CN 114448892 A CN114448892 A CN 114448892A CN 202210126319 A CN202210126319 A CN 202210126319A CN 114448892 A CN114448892 A CN 114448892A
Authority
CN
China
Prior art keywords
message
hardware
software
routing
hash calculation
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.)
Pending
Application number
CN202210126319.3A
Other languages
English (en)
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.)
Zhuhai Xingyun Zhilian Technology Co Ltd
Original Assignee
Zhuhai Xingyun Zhilian Technology 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 Zhuhai Xingyun Zhilian Technology Co Ltd filed Critical Zhuhai Xingyun Zhilian Technology Co Ltd
Priority to CN202210126319.3A priority Critical patent/CN114448892A/zh
Publication of CN114448892A publication Critical patent/CN114448892A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Landscapes

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

Abstract

本申请实施例提供了一种软硬件选路方法及装置。该方法包括:通过硬件根据报文分类规则对多个报文进行分类;通过软件选择分类后的报文中的字段、哈希Hash算法;通过软件使用选取的Hash算法对选择的分类后的报文中的字段进行Hash计算,得到Hash计算结果;通过软件将Hash计算结果配置到硬件的分类规则表中;通过硬件从分类规则表中的选路规则中查询与Hash计算结果对应的端口号或队列号;通过硬件将报文分发至端口号对应的端口或队列号对应的队列。上述方法减少了复杂算法占用的硬件资源,同时缩短了算法处理的时延,当选路规则发生变化时,能够重新对选路规则进行配置,简化了繁琐的配置过程,提高了报文转发的效率。

Description

一种软硬件选路方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种软硬件选路方法及装置。
背景技术
当前数据网络通信领域中通常采用链路聚合组(Link Aggregation Group,LAG)、接收方扩展(Receive Side Scaling,RSS)、字段精确匹配Flow Director等技术实现多个出端口或多队列的选路。其中,LAG主要应用于多个出端口选择,RSS主要应用于多核中央处理器(central processing unit,CPU)的多队列选择,LAG和RSS的选路模型基本一致,FlowDirector的应用场景与RSS基本相同,但选路模型有所不同。
LAG和RSS的软硬件选路方法需要在硬件上部署算法,当算法比较复杂时,会消耗较多的硬件资源,此外,算法也会产生较大的时延,降低报文转发的效率;而Flow Director的软硬件选路方法,当选路规则发生变化时,需要重新配置整体的转发规则表,操作繁琐,且造成人力和网络资源的浪费。
发明内容
本申请实施例提供了一种软硬件选路方法及装置,减少了复杂算法占用的硬件资源,同时缩短了算法处理的时延,当选路规则发生变化时,能够重新对选路规则进行配置,简化了繁琐的配置过程,提高了报文转发的效率。
第一方面,本申请实施例提供了一种软硬件选路方法,包括:
通过硬件根据报文分类规则对多个报文进行分类,所述报文分类规则是通过软件配置到所述硬件中的;
通过所述软件选择分类后的所述报文中的字段、哈希Hash算法;
通过所述软件使用选取的Hash算法对选择的分类后的所述报文中的字段进行Hash计算,得到Hash计算结果;
通过所述软件将所述Hash计算结果配置到所述硬件的分类规则表中;
通过所述硬件从所述分类规则表中的选路规则中查询与所述Hash计算结果对应的端口号或队列号,所述选路规则是通过所述软件配置到所述硬件的所述分类规则表中,所述选路规则包括Hash值与端口号或队列号的对应关系;
通过所述硬件将所述报文分发至所述端口号对应的端口或所述队列号对应的队列。
在上述方法中,通过软件在转发规则表中配置好报文分类、字段选择、Hash算法选择的规则,在选路规则表中配置好选路的规则,同时,由软件实现Hash计算;硬件查找转发规则表对报文进行分类,查找选路规则表对报文进行选路和分发。这种软硬件选路方法减少了将复杂的算法配置到硬件中占用的硬件资源,缩短了算法处理的时延,且当选路规则发生变化时,能够重新对选路规则进行配置,简化了繁琐的配置过程,提高了报文转发的效率。
在一种可能的实现方式中,所述报文分类规则包括至少一条报文特征,所述至少一条报文特征中每条报文特征对应一个报文类别;所述通过硬件根据所述报文分类规则对多个报文进行分类包括:
通过所述硬件判断所述多个报文中的第一报文是否符合所述至少一条报文特征中的第一报文特征;
若所述多个报文中的第一报文符合所述至少一条报文特征中的第一报文特征,则将所述第一报文分类至所述第一报文特征对应的报文类别。
在本申请实施例中,通过硬件判断多个报文中的任意一个报文是否符合任意一条报文特征,若任意一个报文符合任意一条报文特征,则将该报文分类至该报文特征对应的报文类别,若一个报文没有符合一条报文特征,则将该报文剔除。该方法能够根据业务场景的需求对报文特征进行定义,从而实现报文的分类。
在一种可能的实现方式中,所述每条报文特征包括多个报文字段。
在本申请实施例中,报文分类的规则是根据报文中的多个报文字段进行定义的,即,每条报文特征包括多个报文字段,只有当报文符合报文特征中包括的多个报文字段时,才会将报文分为一类。该报文特征的定义简单又能满足业务场景的需求,分类过程简单且效率高。
在一种可能的实现方式中,所述通过所述软件选择分类后的所述报文中的字段、哈希Hash算法包括:
通过所述软件选择分类后的所述报文中的第一关键字段,所述第一关键字段包括至少一个关键字段和/或至少一个第二关键字段,所述第二关键字段为所述一个关键字段的部分字段。
在本申请实施例中,通过软件对分类后的报文进行字段选择,其中,每一类的报文对应相同的字段选择规则,字段选择是选择分类后的报文中的第一关键字段。通过这种方式,可以任意地根据需求,选择报文中的任意一个字段或多个字段或多个字段中的部分字段。
在一种可能的实现方式中,所述通过所述软件使用选取的Hash算法对选择的分类后的所述报文中的字段进行Hash计算,得到Hash计算结果包括:
通过所述软件使用选取的Hash算法对选择分类后的所述报文中的第一关键字段进行Hash计算,得到Hash计算结果。
在本申请实施例中,选取Hash算法后对分类后的报文的第一关键字段进行Hash计算,得到Hash计算结果。通过这种方式可以根据业务场景的需求,选择Hash算法从而实现报文的第一关键字段的计算。
第二方面,本申请实施例提供了一种软硬件选路装置,包括:
分类单元,用于通过硬件根据报文分类规则对多个报文进行分类,所述报文分类规则是通过软件配置到所述硬件中的;
选取单元,用于通过所述软件选择分类后的所述报文中的字段、哈希Hash算法;
计算单元,用于通过所述软件使用选取的Hash算法对选择的分类后的所述报文中的字段进行Hash计算,得到Hash计算结果;
配置单元,用于通过所述软件将所述Hash计算结果配置到所述硬件的分类规则表中;
查询单元,用于通过所述硬件从所述分类规则表中的选路规则中查询与所述Hash计算结果对应的端口号或队列号,所述选路规则是通过所述软件配置到所述硬件的所述分类规则表中,所述选路规则包括Hash值与端口号或队列号的对应关系;
分发单元,用于通过所述硬件将所述报文分发至所述端口号对应的端口或所述队列号对应的队列。
在一种可能的实现方式中,所述报文分类规则包括至少一条报文特征,所述至少一条报文特征中每条报文特征对应一个报文类别;所述分类单元具体用于:
通过所述硬件判断所述多个报文中的第一报文是否符合所述至少一条报文特征中的第一报文特征;
若所述多个报文中的第一报文符合所述至少一条报文特征中的第一报文特征,则将所述第一报文分类至所述第一报文特征对应的报文类别。
在一种可能的实现方式中,所述每条报文特征包括多个报文字段。
在一种可能的实现方式中,所述选取单元具体用于:
通过所述软件选择分类后的所述报文中的第一关键字段,所述第一关键字段包括至少一个关键字段和/或至少一个第二关键字段,所述第二关键字段为所述一个关键字段的部分字段。
在一种可能的实现方式中,所述计算单元具体用于:
通过所述软件使用选取的Hash算法对选择分类后的所述报文中的第一关键字段进行Hash计算,得到Hash计算结果。
该软硬件选路装置执行的操作及有益效果可以参见上述第一方面中任意一项所述的方法以及有益效果,重复之处不再赘述。
第三方面,本申请提供了一种软硬件选路装置,该软硬件选路装置可以是网络设备,也可以是网络设备中的装置,或者是能够和网络设备匹配使用的装置。该软硬件选路装置可执行第一方面中任意一项所述的方法。该软硬件选路装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。该模块可以是软件和/或硬件。该软硬件选路装置执行的操作及有益效果可以参见上述第一方面中任意一项所述的方法以及有益效果,重复之处不再赘述。
第四方面,本申请提供了一种软硬件选路装置,所述软硬件选路装置包括处理器,当所述处理器调用存储器中的计算机程序时,如第一方面中任意一项所述的方法被执行。
第五方面,本申请提供了一种软硬件选路装置,所述软硬件选路装置包括处理器和存储器,所述存储器用于存储计算机程序;所述处理器用于执行所述存储器所存储的计算机程序,以使所述软硬件选路装置执行如第一方面中任意一项所述的方法。
第六方面,本申请提供了一种软硬件选路装置,所述软硬件选路装置包括处理器、存储器和收发器,所述收发器,用于接收信道或信号,或者发送信道或信号;所述存储器,用于存储计算机程序;所述处理器,用于从所述存储器调用所述计算机程序执行如第一方面中任意一项所述的方法。
第七方面,本申请提供了一种软硬件选路装置,所述软硬件选路装置包括处理器和接口电路,所述接口电路,用于接收计算机程序并传输至所述处理器;所述处理器运行所述计算机程序以执行如第一方面中任意一项所述的方法。
第八方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序被执行时,使得如第一方面中任意一项所述的方法被实现。
第九方面,本申请提供一种包括计算机程序的计算机程序产品,当计算机程序被执行时,使得如第一方面中任意一项所述的方法被实现。
第十方面,本申请实施例提供了一种软硬件选路系统,该软硬件选路系统包括至少一个服务器和至少一个网络设备,该服务器用于执行上述第一方面中任意一项的步骤。
附图说明
以下对本申请实施例用到的附图进行介绍。
图1是本申请实施例提供的一种软硬件选路系统的架构示意图;
图2是本申请实施例提供的LAG和RSS的软硬件选路方法的界面示意图;
图3是本申请实施例提供的Flow Director的软硬件选路方法的界面示意图;
图4是本申请实施例提供的一种软硬件选路方法的界面示意图;
图5是本申请实施例提供的一种软硬件选路方法的流程图;
图6是本申请实施例提供的一种软硬件选路装置600的结构示意图;
图7是本申请实施例提供的一种软硬件选路装置700的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
请参见图1,图1是本申请实施例提供的一种软硬件选路系统的架构示意图,该系统包括网络设备101,客户端102,硬件103,服务器104,其中:
网络设备101是连接到网络中的物理实体。网络设备101的种类繁多,在局域网、城域网或者广域网中,物理上通常都是由网卡、集线器、交换机、路由器、网线等网络连接设备和传输介质组成。网络设备101可以包括中继器、网桥、路由器、交换机等。其中,中继器是位于第一层(物理层)的网络设备,用于在比特级别对网络信号进行再生和重定时;网桥是位于第二层的网络设备,用于创建两个或多个局域网分段;路由器是一类网络互联设备,用于基于第三层地址在网络间传递数据分组;交换机也叫局域网交换机或工作组交换机,用于保证网络的连续不中断。网络设备101可以对网络通信中的报文进行分类,网络设备101中存储有转发规则表和选路规则表,其中,转发规则表和选路规则表可以由网络设备101运行客户端102配置得到。
客户端102是安装在网络设备101上的软件,通过运行客户端102可以对转发规则表和选路规则表进行配置,同时,也可以实现Hash计算。
硬件103是安装在网络设备101中的芯片系统,该芯片系统可以包括处理器,用于支持网络设备101对报文进行分类、选路和分发。该芯片系统还可以包括存储器,用于存储转发规则表和选路规则表。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
服务器104可以为一个服务器或者多个服务器组成的服务器集群,为网络设备101、客户端102以及硬件103提供计算或者应用服务,同时对转发规则表中的报文分类、字段选择、Hash算法选择规则进行配置,对选择的字段进行Hash计算,对选路规则表进行配置等。
下面介绍LAG、RSS和Flow Director在多个出端口或多队列中的选路方法。
如图2所示,图2是本申请实施例提供的LAG和RSS的软硬件选路方法的界面示意图。LAG和RSS均由软件在转发规则表中配置好报文分类、字段选择、Hash算法选择的规则,同时,在选路规则表中配置好选路的规则;硬件在报文转发的过程中,查找转发规则表和选路规则表中对应的规则,实现报文分类、Hash计算、选路和分发报文。
如图3所示,图3是本申请实施例提供的Flow Director的软硬件选路方法的界面示意图。Flow Director由软件在转发规则表中配置好报文分类、字段选择、Hash算法选择的规则,同时,软件实现Hash计算和选路;硬件在报文转发的过程中,查找转发规则表对应的规则,实现报文分类和分发报文。
LAG和RSS的软硬件选路方法需要在硬件上部署算法,当算法比较复杂时,会消耗较多的硬件资源,此外,算法也会产生较大的时延,降低报文转发的效率;而Flow Director的软硬件选路方法,当选路规则发生变化时,需要重新配置整体的转发规则表,操作繁琐,且造成人力和网络资源的浪费。
请参见图4,图4是本申请实施例提供的一种软硬件选路方法的界面示意图,该软硬件选路方法的界面示意图包括:报文分类、字段选择、Hash算法选择、Hash计算、选路和分发。
上述报文分类是指对进入网络设备的报文进行分析判断,来决定应当用什么样的方式来处理报文。常见的报文分类依据有:物理接口、子接口、媒体存取控制位址(MediaAccess Control Address,MAC)、以太报文优先级、差分服务代码点(DifferentiatedServices Code Point,DSCP)、互联网协议地址(Internet Protocol Address,IP)、IP五元组(源地址、源端口号、协议号、目的地址、目的端口号)等。
上述字段选择是指对分类后的报文定义需要参与Hash计算的字段。根据业务场景需求,一般可以选取报文中任意一个字段或多个字段或多个字段中的部分字段来进行Hash计算。
上述Hash算法选择可以根据字段选择和/或场景需求,来选择相应的Hash算法。常见的Hash算法可以包括直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法等。
上述Hash计算是将分类后的报文进行字段选择和Hash算法选择后,对选中的报文字段用Hash算法进行Hash计算。Hash计算的结果通常与选择的Hash算法相关,可能是十进制数,也可能是二进制数等。
上述选路是基于上述Hash计算后得到的Hash计算结果,将Hash计算结果配置到硬件中,同时,将Hash计算结果与报文对应的目标端口或队列作为选路规则配置到硬件中,硬件则根据Hash计算结果查找选路规则得到报文对应的目标端口或队列,从而对报文进行分发。
在本申请实施例中,通过软件在转发规则表中配置好报文分类、字段选择、Hash算法选择的规则,在选路规则表中配置好选路的规则,同时,由软件实现Hash计算;硬件查找转发规则表中报文分类规则对报文进行分类,查找选路规则表对报文进行选路和分发。
请参见图5,图5是本申请实施例提供的一种软硬件选路方法的流程图,该方法包括但不限于如下步骤:
S501:通过硬件根据报文分类规则对多个报文进行分类。
上述报文分类规则是通过软件事先配置到上述硬件中的,该报文分类规则可以包括至少一条报文特征,上述至少一条报文特征中的每条报文特征对应一个报文类别。
在一些实施例中,通过所述硬件判断所述多个报文中的第一报文是否符合所述至少一条报文特征中的第一报文特征;若所述多个报文中的第一报文符合所述至少一条报文特征中的第一报文特征,则将所述第一报文分类至所述第一报文特征对应的报文类别。
具体地,第一报文是指进入网络设备的多个报文中的任意一个报文,报文可以包括目的MAC地址、源MAC地址、虚拟局域网标识号(Virtual Local Area NetworkIdentitydocument,VLANID)、以太类型、入端口号、DSCP、IP、IP五元组(源地址、源端口号、协议号、目的地址、目的端口号)等多个字段。
第一报文特征是指至少一条报文特征中的任意一条报文特征。通过软件事先将多个报文特征配置到报文分类规则中,其中,一条报文特征对应一个报文类别。每个报文特征可以包括多个报文字段,即,每个报文特征可以由目的MAC地址、源MAC地址、VLANID、以太类型、入端口号、DSCP、IP、IP五元组(源地址、源端口号、协议号、目的地址、目的端口号)等多个字段中的一个或多个组成。例如,软件配置的报文分类规则中的多个报文特征如下:报文特征1:源MAC地址为18-31-BF-07-EA-5E,报文特征2:IP地址为116.179.32.242,报文特征3:以太网类型为IPV4,IP地址为171.43.195.37,IP五元组为192.168.1.110000TCP121.14.88.76 80(其中,源地址为192.168.1.1、源端口号为10000、协议号为TCP、目的地址为121.14.88.76、目的端口号为80)。
在对进入网络设备的多个报文进行分类时,通过硬件根据报文分类规则对报文进行判断,判断该报文是否符合报文特征,若该报文符合一个或多个报文特征,则将该报文分类为上述一个或多个报文特征对应的报文类别;若该报文没有符合的报文特征,则将该报文剔除。
举例来说,以上述报文特征1、报文特征2、报文特征3为软件配置的报文分类规则。多个报文中,报文1的源MAC地址为67-B9-3F-4E-0D-0E,目的MAC地址为56-89-E5-A2-9F-8D;报文2的源MAC地址为18-31-BF-07-EA-5E,IP地址为116.179.32.242,目的MAC地址为39-76-4D-5C-9E-02;报文3的以太网类型为IPV4,IP五元组为192.168.1.110000TCP121.14.88.76 92;报文4的IP地址为171.42.196.28,以太网类型为IPV4,IP地址为171.43.195.37,IP五元组为192.168.1.1 10000TCP 121.14.88.76 80。硬件根据上述报文特征分别对报文进行分类,报文1的源MAC地址和目的MAC地址不符合报文特征中的任意一个,因此报文1剔除;报文2的源MAC地址符合报文特征1的源MAC地址,报文2的IP地址符合报文特征2的IP地址,报文2的目的MAC地址不符合报文特征中的任意一个,因此报文2为报文特征1对应的报文类别和报文特征2对应的报文类别;报文3的以太网类型符合报文特征3的以太网类型,但IP五元组不符合报文特征3的IP五元组,因此报文3不符合报文特征中的任意一个,报文3剔除;报文4的IP地址不符合报文特征中的任意一个,因此报文4剔除。
S502:通过所述软件选择分类后的所述报文中的字段、哈希Hash算法。
在一些实施例中,通过所述软件选择分类后的所述报文中的第一关键字段,所述第一关键字段包括至少一个关键字段和/或至少一个第二关键字段,所述第二关键字段为所述一个关键字段的部分字段。
具体地,第一关键字段可以包括一个或多个关键字段,该关键字段可以是报文中包括的字段,第二关键字段是一个关键字段的部分字段。例如,关键字段包括目的MAC地址、源MAC地址、VLANID、以太类型、入端口号、DSCP、IP,第一关键字段可以是上述关键字段中一个或多个的组合;若其中一个关键字段目的MAC地址为18-31-BF-07-EA-5E,则第二关键字段可以是上述目的MAC地址的前6位,即18-31-BF。
通过软件选择分类后的报文中的第一关键字段,报文类别相同的第一关键字段可能相同,可能不相同,例如,同一报文类别中,一部分报文的第一关键字段为以太类型为IPV4,另一部分报文的第一关键字段为IP地址为125.142.32.96。报文类别对应的报文特征与第一关键字段可能相同,可能不相同。例如,报文特征为IP五元组为192.168.1.110000TCP 121.14.88.7680,第一关键字段可能为IP五元组为192.168.1.1 10000TCP121.14.88.76 80,第一关键字段也可能为源MAC地址为18-31-BF-07-EA-5E。
进一步的,通过软件选择Hash算法,常见的Hash算法可以包括直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法等。根据业务场景的需求或第一关键字段的特征,选择Hash算法。例如,业务场景需要提高报文分类的处理灵活度,则可以根据报文偏移量及键值长度相互配合提取对应的哈希键值。
S503:通过所述软件使用选取的Hash算法对选择的分类后的所述报文中的字段进行Hash计算,得到Hash计算结果。
在一些实施例中,通过所述软件使用选取的Hash算法对选择分类后的所述报文中的第一关键字段进行Hash计算,得到Hash计算结果。
举例来说,第一关键字段为目的IP地址,Hash算法为目的IP地址的最低字节%M,其中,M为该报文类别中的报文数量。一个报文类别中包括三个报文,三个报文的目的IP地址分别为:IP1=10.0.0.3,IP2=10.0.0.4,IP3=10.0.0.5,按照上述Hash算法的计算方式,M=3,对目的IP地址为IP1=10.0.0.3的报文进行Hash计算得到的Hash计算结果为3%3=0,对目的IP地址为IP2=10.0.0.4的报文进行Hash计算得到的Hash计算结果为4%3=1,对目的IP地址为IP3=10.0.0.5的报文进行Hash计算得到的Hash计算结果为5%3=2。
S504:通过所述软件将所述Hash计算结果配置到所述硬件的分类规则表中。
具体地,通过软件计算出Hash计算结果后,将该Hash计算结果配置到硬件的分类规则表中。
S505:通过所述硬件从所述分类规则表中的选路规则中查询与所述Hash计算结果对应的端口号或队列号。
上述选路规则是通过所述软件配置到所述硬件的分类规则表中,所述选路规则包括Hash值与端口号或队列号的对应关系。
具体的,通过软件将Hash计算结果配置到硬件的分类规则表中。其中,分类规则表中的选路规则包括Hash值与端口号或队列号的对应关系,例如,Hash值为二进制,其中包括00、01、10、11四种Hash计算结果,通过软件配置选路规则为Hash计算结果为00对应端口号或队列号为0,Hash计算结果为01对应端口号或队列号为1,Hash计算结果为10对应端口号或队列号为2,Hash计算结果为11对应端口号或队列号为3。
进一步的,通过硬件根据分类规则表进行查找,同时得到Hash计算结果,再根据Hash计算结果在选路规则中查询与Hash计算结果对应的端口号或队列号。
S506:通过所述硬件将所述报文分发至所述端口号对应的端口或所述队列号对应的队列。
具体地,通过硬件查询选路规则后,将报文分发至对应的端口或队列号对应的队列,从而完成报文的转发过程。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参见图6,图6是本申请实施例提供的一种软硬件选路装置600的结构示意图,该装置包括分类单元601,选取单元602,计算单元603,配置单元604,查询单元605和分发单元606,其中,各个单元的详细描述如下。
分类单元601,用于通过硬件根据报文分类规则对多个报文进行分类,所述报文分类规则是通过软件配置到所述硬件中的;
选取单元602,用于通过所述软件选择分类后的所述报文中的字段、哈希Hash算法;
计算单元603,用于通过所述软件使用选取的Hash算法对选择的分类后的所述报文中的字段进行Hash计算,得到Hash计算结果;
配置单元604,用于通过所述软件将所述Hash计算结果配置到所述硬件的分类规则表中;
查询单元605,用于通过所述硬件从所述分类规则表中的选路规则中查询与所述Hash计算结果对应的端口号或队列号,所述选路规则是通过所述软件配置到所述硬件的所述分类规则表中,所述选路规则包括Hash值与端口号或队列号的对应关系;
分发单元606,用于通过所述硬件将所述报文分发至所述端口号对应的端口或所述队列号对应的队列。
在一种可能的实现方式中,所述分类单元601,具体用于通过所述硬件判断所述多个报文中的第一报文是否符合所述至少一条报文特征中的第一报文特征;若所述多个报文中的第一报文符合所述至少一条报文特征中的第一报文特征,则将所述第一报文分类至所述第一报文特征对应的报文类别。
在一种可能的实现方式中,所述每条报文特征包括多个报文字段。
在一种可能的实现方式中,所述选取单元602,具体用于通过所述软件选择分类后的所述报文中的第一关键字段,所述第一关键字段包括至少一个关键字段和/或至少一个第二关键字段,所述第二关键字段为所述一个关键字段的部分字段。
在一种可能的实现方式中,所述计算单元603,具体用于通过所述软件使用选取的Hash算法对选择分类后的所述报文中的第一关键字段进行Hash计算,得到Hash计算结果。
需要说明的是,各个单元的实现及有益效果还可以对应参照图5所示的方法实施例的相应描述。
请参见图7,图7是本申请实施例提供的一种软硬件选路装置700的结构示意图,该装置700包括处理器701和收发器703,可选的,还包括存储器702,所述处理器701、存储器702和收发器703通过总线704相互连接。
存储器702包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器702用于相关指令及数据。收发器703用于获取通过软件配置的报文分类规则和选路规则。
处理器701可以是一个或多个中央处理器(central processing unit,CPU),在处理器701是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
该装置700中的处理器701读取所述存储器702中存储的程序代码,用于执行以下操作:
通过硬件根据报文分类规则对多个报文进行分类,所述报文分类规则是通过软件配置到所述硬件中的;
通过所述软件选择分类后的所述报文中的字段、哈希Hash算法;
通过所述软件使用选取的Hash算法对选择的分类后的所述报文中的字段进行Hash计算,得到Hash计算结果;
通过所述软件将所述Hash计算结果配置到所述硬件的分类规则表中;
通过所述硬件从所述分类规则表中的选路规则中查询与所述Hash计算结果对应的端口号或队列号,所述选路规则是通过所述软件配置到所述硬件的所述分类规则表中,所述选路规则包括Hash值与端口号或队列号的对应关系;
通过所述硬件将所述报文分发至所述端口号对应的端口或所述队列号对应的队列。
可选的,所述处理器701,还用于通过所述硬件判断所述多个报文中的第一报文是否符合所述至少一条报文特征中的第一报文特征;若所述多个报文中的第一报文符合所述至少一条报文特征中的第一报文特征,则将所述第一报文分类至所述第一报文特征对应的报文类别。
可选的,所述处理器701,还用于通过所述软件选择分类后的所述报文中的第一关键字段,所述第一关键字段包括至少一个关键字段和/或至少一个第二关键字段,所述第二关键字段为所述一个关键字段的部分字段。
可选的,所述处理器701,还用于通过所述软件使用选取的Hash算法对选择分类后的所述报文中的第一关键字段进行Hash计算,得到Hash计算结果。
需要说明的是,各个操作的实现及有益效果还可以对应参照图5所示的方法实施例的相应描述。
本申请实施例还提供了一类芯片,该一类芯片为软硬件选路装置内的硬件,用于支持网络设备以实现上述任一实施例中所涉及的功能。在一种可能的设计中,一类芯片还可以由芯片构成,也可以包含芯片和其他分立器件。
应理解,上述软硬件选路装置中的一类芯片可以是现场可编程门阵列(fieldprogrammable gate array,FPGA),可以是专用集成芯片(application specificintegrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是网络处理器(network processor,NP),或其他集成芯片。
本申请实施例还提供了一种软硬件选路装置,包括处理器和接口。所述处理器可用于执行上述方法实施例中的方法。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应注意,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行图5所示实施例中任意一个实施例的方法。
根据本申请实施例提供的方法,本申请还提供一种计算机可读介质,该计算机可读介质存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行图5所示实施例中任意一个实施例的方法。
根据本申请实施例提供的方法,本申请还提供一种软硬件选路系统,其包括前述的一个或多个服务器、一个或多个网络设备。
在上述实施例中,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disc,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (14)

1.一种软硬件选路方法,其特征在于,包括:
通过硬件根据报文分类规则对多个报文进行分类,所述报文分类规则是通过软件配置到所述硬件中的;
通过所述软件选择分类后的所述报文中的字段、哈希Hash算法;
通过所述软件使用选取的Hash算法对选择的分类后的所述报文中的字段进行Hash计算,得到Hash计算结果;
通过所述软件将所述Hash计算结果配置到所述硬件的分类规则表中;
通过所述硬件从所述分类规则表中的选路规则中查询与所述Hash计算结果对应的端口号或队列号,所述选路规则是通过所述软件配置到所述硬件的所述分类规则表中,所述选路规则包括Hash值与端口号或队列号的对应关系;
通过所述硬件将所述报文分发至所述端口号对应的端口或所述队列号对应的队列。
2.根据权利要求1所述的方法,其特征在于,所述报文分类规则包括至少一条报文特征,所述至少一条报文特征中每条报文特征对应一个报文类别;所述通过硬件根据所述报文分类规则对多个报文进行分类包括:
通过所述硬件判断所述多个报文中的第一报文是否符合所述至少一条报文特征中的第一报文特征;
若所述多个报文中的第一报文符合所述至少一条报文特征中的第一报文特征,则将所述第一报文分类至所述第一报文特征对应的报文类别。
3.根据权利要求2所述的方法,其特征在于,所述每条报文特征包括多个报文字段。
4.根据权利要求1所述的方法,其特征在于,所述通过所述软件选择分类后的所述报文中的字段、哈希Hash算法包括:
通过所述软件选择分类后的所述报文中的第一关键字段,所述第一关键字段包括至少一个关键字段和/或至少一个第二关键字段,所述第二关键字段为所述一个关键字段的部分字段。
5.根据权利要求4所述的方法,其特征在于,所述通过所述软件使用选取的Hash算法对选择的分类后的所述报文中的字段进行Hash计算,得到Hash计算结果包括:
通过所述软件使用选取的Hash算法对选择分类后的所述报文中的第一关键字段进行Hash计算,得到Hash计算结果。
6.一种软硬件选路装置,其特征在于,包括:
分类单元,用于通过硬件根据报文分类规则对多个报文进行分类,所述报文分类规则是通过软件配置到所述硬件中的;
选取单元,用于通过所述软件选择分类后的所述报文中的字段、哈希Hash算法;
计算单元,用于通过所述软件使用选取的Hash算法对选择的分类后的所述报文中的字段进行Hash计算,得到Hash计算结果;
配置单元,用于通过所述软件将所述Hash计算结果配置到所述硬件的分类规则表中;
查询单元,用于通过所述硬件从所述分类规则表中的选路规则中查询与所述Hash计算结果对应的端口号或队列号,所述选路规则是通过所述软件配置到所述硬件的所述分类规则表中,所述选路规则包括Hash值与端口号或队列号的对应关系;
分发单元,用于通过所述硬件将所述报文分发至所述端口号对应的端口或所述队列号对应的队列。
7.根据权利要求6所述的装置,其特征在于,所述报文分类规则包括至少一条报文特征,所述至少一条报文特征中每条报文特征对应一个报文类别;所述分类单元具体用于:
通过所述硬件判断所述多个报文中的第一报文是否符合所述至少一条报文特征中的第一报文特征;
若所述多个报文中的第一报文符合所述至少一条报文特征中的第一报文特征,则将所述第一报文分类至所述第一报文特征对应的报文类别。
8.根据权利要求7所述的装置,其特征在于,所述每条报文特征包括多个报文字段。
9.根据权利要求6所述的装置,其特征在于,所述选取单元具体用于:
通过所述软件选择分类后的所述报文中的第一关键字段,所述第一关键字段包括至少一个关键字段和/或至少一个第二关键字段,所述第二关键字段为所述一个关键字段的部分字段。
10.根据权利要求9所述的装置,其特征在于,所述计算单元具体用于:
通过所述软件使用选取的Hash算法对选择分类后的所述报文中的第一关键字段进行Hash计算,得到Hash计算结果。
11.一种软硬件选路装置,其特征在于,所述装置包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,执行如权利要求1-5任一项所述的方法。
12.一类芯片,其特征在于,所述芯片为软硬件选路装置内的硬件,当所述芯片在所述软硬件选路装置上运行时,所述权利要求1-5中任一项所述的方法被执行。
13.一种计算机可读存储介质,其特征在于,用于存储计算机程序,当所述计算机程序在计算机上运行时,使所述计算机执行权利要求1-5中任一项所述的方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品为软硬件选路装置内的软件,所述计算机程序产品包括计算机程序,当所述计算机程序在计算机上运行时,使所述计算机执行权利要求1-5中任一项所述的方法。
CN202210126319.3A 2022-02-10 2022-02-10 一种软硬件选路方法及装置 Pending CN114448892A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210126319.3A CN114448892A (zh) 2022-02-10 2022-02-10 一种软硬件选路方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210126319.3A CN114448892A (zh) 2022-02-10 2022-02-10 一种软硬件选路方法及装置

Publications (1)

Publication Number Publication Date
CN114448892A true CN114448892A (zh) 2022-05-06

Family

ID=81371980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210126319.3A Pending CN114448892A (zh) 2022-02-10 2022-02-10 一种软硬件选路方法及装置

Country Status (1)

Country Link
CN (1) CN114448892A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841474A (zh) * 2010-04-15 2010-09-22 华为技术有限公司 访问控制列表的实现装置
CN202218254U (zh) * 2010-12-17 2012-05-09 曙光信息产业(北京)有限公司 一种用于对网络报文高效动态分类的设备
CN104579941A (zh) * 2015-01-05 2015-04-29 北京邮电大学 一种OpenFlow交换机中的报文分类方法
CN106470158A (zh) * 2016-09-13 2017-03-01 杭州迪普科技股份有限公司 报文转发方法及装置
CN107547417A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 一种报文处理方法、装置及基站
WO2018036254A1 (zh) * 2016-08-24 2018-03-01 华为技术有限公司 报文转发方法及装置
CN109691039A (zh) * 2018-01-16 2019-04-26 华为技术有限公司 一种报文传输的方法及装置
CN113765804A (zh) * 2021-08-05 2021-12-07 中移(杭州)信息技术有限公司 报文转发方法、装置、设备及计算机可读存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101841474A (zh) * 2010-04-15 2010-09-22 华为技术有限公司 访问控制列表的实现装置
CN202218254U (zh) * 2010-12-17 2012-05-09 曙光信息产业(北京)有限公司 一种用于对网络报文高效动态分类的设备
CN104579941A (zh) * 2015-01-05 2015-04-29 北京邮电大学 一种OpenFlow交换机中的报文分类方法
CN107547417A (zh) * 2016-06-29 2018-01-05 中兴通讯股份有限公司 一种报文处理方法、装置及基站
WO2018036254A1 (zh) * 2016-08-24 2018-03-01 华为技术有限公司 报文转发方法及装置
CN106470158A (zh) * 2016-09-13 2017-03-01 杭州迪普科技股份有限公司 报文转发方法及装置
CN109691039A (zh) * 2018-01-16 2019-04-26 华为技术有限公司 一种报文传输的方法及装置
CN113765804A (zh) * 2021-08-05 2021-12-07 中移(杭州)信息技术有限公司 报文转发方法、装置、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN111770028B (zh) 用于计算机网络的方法和网络设备
CN107819663B (zh) 一种实现虚拟网络功能服务链的方法和装置
KR102586898B1 (ko) 패킷 처리 방법 및 장치, 및 관련 디바이스들
US20160301603A1 (en) Integrated routing method based on software-defined network and system thereof
US8780899B2 (en) Method and system for improving traffic distribution across a communication network
US20160142290A1 (en) Service path allocation method, router and service execution entity
US20160261493A1 (en) Data routing across multiple autonomous network systems
JP2022518475A (ja) パケット処理方法および装置、デバイス、ならびにシステム
US11343187B2 (en) Quantitative exact match distance in network flows
Tanyingyong et al. Using hardware classification to improve pc-based openflow switching
CN112448900A (zh) 一种数据传输方法及装置
CN112965824A (zh) 报文的转发方法及装置、存储介质、电子设备
US20130198830A1 (en) Access relay method and access gateway device
US11563698B2 (en) Packet value based packet processing
CN114024900A (zh) 一种数据处理方法及相关设备
CN108400922B (zh) 虚拟局域网络配置系统与方法及其计算机可读存储介质
CN106789671B (zh) 一种业务报文转发方法及设备
CN112019492B (zh) 访问控制方法、装置及存储介质
CN113098749A (zh) 报文发送方法、装置及存储介质
CN114448892A (zh) 一种软硬件选路方法及装置
CN114079634B (zh) 一种报文转发方法、装置及计算机可读存储介质
CN116828024A (zh) 业务连接的标识方法、装置、系统及存储介质
CN115348202A (zh) 基于网络切片的数据传输方法、装置、设备及存储介质
Harkous et al. Performance-aware orchestration of p4-based heterogeneous cloud environments
CN114124804A (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