CN117955913A - 一种报文处理方法以及相关装置 - Google Patents

一种报文处理方法以及相关装置 Download PDF

Info

Publication number
CN117955913A
CN117955913A CN202211366416.6A CN202211366416A CN117955913A CN 117955913 A CN117955913 A CN 117955913A CN 202211366416 A CN202211366416 A CN 202211366416A CN 117955913 A CN117955913 A CN 117955913A
Authority
CN
China
Prior art keywords
message
load balancing
target
information
identification
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
CN202211366416.6A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211366416.6A priority Critical patent/CN117955913A/zh
Priority to PCT/CN2023/126724 priority patent/WO2024093778A1/zh
Publication of CN117955913A publication Critical patent/CN117955913A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

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

Abstract

本申请实施例公开一种报文处理方法以及相关装置,包括:报文到达网络设备后,根据报文的流量特征信息分配报文的负载均衡标识,该负载均衡标识用于指示报文对应的负载均衡算法。网络设备根据报文的负载均衡标识,使用报文对应的负载均衡算法确定该报文的出端口,该报文的出端口用于转发该报文。在网络中同时存在多种业务的场景下,网络设备可以对不同业务的报文分配对应的负载均衡标识,然后依据负载均衡标识执行对应的负载均衡处理,提升整个网络的吞吐量。解决当前网络设备只支持L2或L3全局唯一网络负载均衡配置的问题,实现不同流量特征的报文在同一个网络设备上交汇,实现整网吞吐最大化。

Description

一种报文处理方法以及相关装置
技术领域
本申请涉及通信技术领域,尤其涉及一种报文处理方法以及相关装置。
背景技术
在数据中心网络中,当发送端发送的多条数据流的流量之和大于接收端的端口容量时,称为拥塞。拥塞导致丢包,因此,为了避免丢包,数据中心网络中的网络设备需要对网络流量(后文简称为流量)进行流量负载均衡(后文简称为负载均衡)。负载均衡(loadbalancing,或者,load sharing)指的是将流量均匀地从多个链路中发送出去。
为了实现负载均衡,以克劳斯(CLOS)网络为例:在采用层3(layer3,L3)标识查表转发的网络(即采用网络层标识查表转发的网络),例如互联网协议(Internet Protocol,IP)网络中,负载均衡算法的应用场景主要是等价多路径路由(Equal-Cost Multi-Path,ECMP);在采用层2(Layer2,L2)标识查表转发的网络(即采用链路层查表转发的网络),例如以太交换网络中,负载均衡算法的应用场景主要是链路聚合(Link Aggregation,LAG)。
当前的网络设备仅支持配置唯一的负载均衡算法,即网络设备仅支持ECMP或者仅支持LAG。对于网络中同时存在多种业务的场景,例如同时存在L3业务和L2业务,则网络设备无法对L3业务和L2业务同时进行负载均衡。因此,导致整个网络的吞吐下降。
发明内容
第一方面,本申请实施例提出一种报文处理方法,包括:
报文到达网络设备;
所述网络设备根据所述报文的流量特征信息,分配所述报文的负载均衡标识,其中,所述负载均衡标识用于指示所述报文对应的负载均衡算法;
所述网络设备根据所述报文的所述负载均衡标识,使用所述报文对应的所述负载均衡算法确定所述报文的出端口,其中,所述报文的出端口用于转发所述报文。
具体的,本申请实施例中,对报文按照流量特征分类,不同类的流量分配不同的负载均衡标识。不同负载均衡标识对应不同的负载均衡配置信息。网络设备根据负载均衡标识,确定对应的负载均衡配置信息,根据负载均衡配置信息对报文进行处理得到报文的出端口。实现对流量的负载均衡处理。支持运行态下多业务对应多个负载均衡配置信息共存,支持对混合流量进行分类,并根据独立运行不同的负载均衡配置信息对混合流量分别进行负载均衡处理。
一种示例中,在网络设备中的报文处理流水线上,按照功能划分可以将网络设备分为多个功能模块,包括:1、报文头处理模块(packet parser),这个模块负责从报文中提取多个报文头的字段信息,如Layer 2头、Layer 3头、传输层头等报文头的字段信息,并补充描述信息如报文到达的物理端口信息,以供后面模块处理使用。2、隧道终结模块(tunneltermination),这个模块是用来终结以交换芯片为隧道端点的报文的。3、VLAN处理模块(VLAN processing),这个模式是用来处理虚拟局域网VLAN功能的,如VLAN标记、去标记或转换。4、Layer 2转发模块(Layer 2switching),这个模块是进行Layer2功能处理的。如源MAC地址的学习、目的MAC地址转发查表,提供Layer 2交换服务,Layer 2负载均衡功能就在这个模块。5、Layer 3转发模块(Layer 3routing),这个模块是进行Layer 3功能处理的,比如目的IP地址最长匹配查表等,提供Layer 3路由服务,Layer 3负载均衡功能就在这个模块。6、入方向ACL处理模块(ingress ACL),这个模块用来实现访问控制列表(ACL)、差分服务、服务质量QoS分类应用、策略路由修改下一跳等功能。
一种可能的示例中,在报文头处理模块提取报文的流量特征信息。在Layer 2转发模块和Layer 3转发模块上,根据报文的流量特征信息为报文分配负载均衡标识,然后计算报文的出端口,实现对报文的负载均衡处理。本申请实施例提出一种报文处理方法,报文到达网络设备后,根据报文的流量特征信息分配报文的负载均衡标识,该负载均衡标识用于指示报文对应的负载均衡算法。网络设备根据报文的负载均衡标识,使用报文对应的负载均衡算法确定该报文的出端口,该报文的出端口用于转发该报文。网络设备支持对不同的报文分配不同的负载均衡标识。然后,网络设备根据负载均衡标识,使用对应的负载均衡算法确定报文的出端口,实现对报文的负载均衡处理。在网络中同时存在多种业务的场景下,网络设备可以对不同业务的报文执行对应的负载均衡处理,提升整个网络的吞吐量。解决当前网络设备只支持L2或L3全局唯一网络负载均衡配置的问题,实现不同流量特征的报文在同一个网络设备上交汇,实现整网吞吐最大化。通过本方案,可以把混合流量切割为多个精细的子流量拓扑并每个子流量拓扑执行独立的负载均衡配置信息。
在第一方面的一种可能实现方式中,所述网络设备将所述负载均衡标识填充至所述报文,包括:所述网络设备将所述负载均衡标识填充至所述报文的报文描述符,所述报文描述符用于记录所述报文的报文头信息。该负载均衡标识是一种显式的标识。具体的,报文描述符所记录的信息包括但不限于:以太头信息、IP头信息,TCP/UDP头信息,报文存储在芯片缓存(buffer)的位置信息、报文的长度信息以及报文出端口信息等。
示例性的,当本申请实施例中的网络设备作为芯片实现时,网络设备为报文分配负载均衡标识,包括:网络设备(芯片)在报文对应的报文描述符中填充(或者增加)负载均衡标识。
一种可能的实现方式为,网络设备将负载均衡标识填充至报文的保留字段。
又一种可能的实现方式为,网络设备将负载均衡标识填充至报文的有效载荷(payload)。可以理解的是,本申请实施例中不对负载均衡标识的填充区域进行限定。
通过引入负载均衡标识,大幅度减少了对芯片寄存器数目和逻辑处理电路面积的需求,降低硬件成本。
在第一方面的一种可能实现方式中,所述网络设备根据所述报文的所述负载均衡标识,使用所述报文对应的所述负载均衡算法确定所述报文的出端口,包括:所述网络设备根据所述负载均衡标识,确定所述报文对应的所述负载均衡算法;所述网络设备根据所述报文对应的所述负载均衡算法,确定所述报文使用的目标哈希函数和所述报文的目标哈希键值组成成员;所述网络设备根据所述目标哈希函数和所述目标哈希键值组成成员,计算得到目标哈希值;所述网络设备根据所述目标哈希值,确定所述报文的出端口。
具体的,当报文到达网络设备后,网络设备将该报文的报文描述符中记录的相关信息作为该报文的流量特征信息。然后,网络设备从多个负载均衡配置信息的匹配信息中,选取与报文描述符(流量特征信息)相匹配的匹配信息。网络设备将该负载均衡配置信息对应的负载均衡标识分配给该报文。网络设备在该报文的报文描述符中填充该负载均衡标识。
在第一方面的一种可能实现方式中,所述网络设备根据所述负载均衡标识,确定所述报文使用的所述目标哈希函数和所述报文的所述目标哈希键值组成成员,包括:所述网络设备根据所述负载均衡标识,确定所述报文对应的哈希函数选择控制字和所述报文对应的哈希键值成员选择控制字;所述网络设备根据所述报文对应的所述哈希函数选择控制字,确定所述报文使用的所述目标哈希函数;所述网络设备根据所述报文对应的所述哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员。
具体的,以负责构建哈希键值的网络设备是芯片为例进行说明。
一种示例中,哈希键值总共有13个成员,每个成员为16比特宽度即2字节的宽度。其中,第一个成员是虚拟网络标签(Virtual Network Tag,VNTag)的源虚拟端口标识;第二个成员是VNTag的目的虚拟端口标识;第三个成员是芯片在所在系统里面的标识;第四个成员是报文到达芯片的物理端口标识;第五个成员是这个报文的网络层协议标识;第六个成员是这个报文的传输层的目的端口;第七个成员是这个报文的传输层的源端口;第八个成员是这个报文的VLAN标识;第九个成员是这个报文的网络层目的地址的低16比特;第十个成员是这个报文的网络层目的地址的高16比特;第十一个成员是这个报文的网络层源地址的低16比特;第十二个成员是这个报文的网络层源地址的高16比特;第十三个成员是拥塞通告标签(Congestion Notification tag,CNTag)。
上述成员的信息,有些来自于这个报文自身携带的字段,例如网络层目的地址、网络层源地址、传输层目的端口、传输层源端口、网络层协议标识、CNTag、VNTag、VLAN标识等,有些来自于这个报文所在芯片的信息,例如报文到达的芯片端口标识、报文到达的芯片在所在系统的标识等。如果芯片被告知某些成员字段不需要填充,如第十三成员CNTag,那么该成员字段就会在构建Hash Key的时候被填充以默认值,例如0或其他固定值;如果芯片被告知某些成员字段需要填充,但是报文中没有对应的字段或对应成员信息无法提取,例如针对地址解析协议(Address Resolution Protocol,ARP)报文是没有网络层和传输信息的,那么对应字段也是被填充默认值如0或其他固定值。
当构建哈希键值后,按照配置的哈希算法对该哈希键值进行计算,得到对应的哈希值。哈希值构造方法通常是在网络设备上配置如何从Hash计算结果得到Hash值,例如提取Hash计算结果的低16位为最终Hash值、或高16为最终Hash值、或全部比特为最终Hash值等。
进一步的,选择报文的哪些字段来填充构建哈希键值是由哈希键值成员选择控制字(Hash key members selection control word)来控制。哈希键值成员选择控制字的长度可以是13比特(bit)。如果哈希键值成员选择控制字的对应位设置为1,意味着要填充报文对应字段的值到Hash key里面去,否则就忽略。例如:从低位向高位来看,如果这个控制字第7比特被置1,说明需要从报文头里面提取传输层的源端口(source L4 port)字段的值填充到Hash key结构的第7个字段里面去;否则Hash key结构的第7个字段就默认为全0。
进一步的,在计算哈希值的过程中,选择哪个哈希算法也是通过控制字来控制的,这个控制字被称为哈希函数选择控制字(Hash function selection control word)。哈希函数选择控制字可以与哈希键值成员选择控制字合并为一个单一控制字。哈希函数选择控制字与哈希键值成员选择控制字也可以独立作为两个控制字存在。
哈希算法包括循环冗余校验(Cyclic Redundancy Check,CRC)计算、异或计算或芯片自定义的其他计算方法。
在第一方面的一种可能实现方式中,所述网络设备根据所述报文的所述负载均衡标识,使用所述报文对应的所述负载均衡算法确定所述报文的出端口,包括:所述网络设备根据所述报文的所述负载均衡标识,确定目标逻辑电路,其中,所述目标逻辑电路与所述报文的所述负载均衡标识关联,所述目标逻辑电路运行所述报文对应的所述负载均衡算法;所述网络设备使用所述目标逻辑电路处理所述报文,确定所述报文的出端口。该负载均衡标识是一种隐式的标识。
在第一方面的一种可能实现方式中,所述网络设备根据所述报文的所述负载均衡标识,确定所述目标逻辑电路,包括:所述网络设备从所述网络设备包括的多个逻辑电路中确定所述目标逻辑电路,其中,所述多个逻辑电路与多个负载均衡标识对应,所述多个负载均衡标识包括所述报文的所述负载均衡标识,所述逻辑电路运行与所述负载均衡标识对应的所述负载均衡算法。
具体的,网络设备包括多个逻辑电路,每个逻辑电路与一个负载均衡配置信息对应,逻辑电路运行负载均衡配置信息所对应的负载均衡算法。网络设备使用逻辑电路处理报文,计算得到报文的出端口。由于负载均衡配置信息与负载均衡标识(隐式)对应,因此,每个逻辑电路关联一个隐式的负载均衡标识。本申请实施例中,每个逻辑电路与唯一的一个负载均衡标识关联,这类隐式的负载均衡标识在本申请实施例中称为逻辑电路标识。网络设备为报文分配隐式的负载均衡标识后,网络设备根据该负载均衡标识确定目标逻辑电路,目标逻辑电路用于处理该报文得到报文的出端口。
需要说明的是,网络设备包括的多个逻辑电路,可以是相互独立的物理电路,也可以是同一个物理电路以不同时序进行区分,本申请实施例不作限制。
在第一方面的一种可能实现方式中,所述网络设备使用所述目标逻辑电路处理所述报文,确定所述报文的出端口,包括:所述网络设备使用所述目标逻辑电路处理所述报文,确定所述报文使用的目标哈希函数和所述报文的目标哈希键值组成成员;所述网络设备根据所述目标哈希函数和所述目标哈希键值组成成员,计算得到目标哈希值;所述网络设备根据所述目标哈希值,确定所述报文的出端口。
在第一方面的一种可能实现方式中,所述网络设备使用所述目标逻辑电路处理所述报文,确定所述报文使用的所述目标哈希函数和所述报文的所述目标哈希键值组成成员,包括:
所述网络设备从所述目标逻辑电路关联的寄存器,获取所述报文对应的哈希函数选择控制字和所述报文对应的哈希键值成员选择控制字;所述网络设备根据所述报文对应的哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员;所述网络设备根据所述报文对应的哈希函数选择控制字,确定所述报文使用的所述目标哈希函数。
在第一方面的一种可能实现方式中,所述网络设备接收第一指令;所述网络设备根据所述第一指令配置负载均衡配置信息,所述负载均衡配置信息指示所述流量特征信息与所述负载均衡算法的关联关系。该第一指令可以是网络管理设备发送的,该第一指令也可以由用户输入,本申请实施例对此不作限制。通过本方案,可以把混合流量切割为多个精细的子流量拓扑,并为每个子流量拓扑配置独立的负载均衡配置信息。
在第一方面的一种可能实现方式中,所述负载均衡标识,包括以下任意一项或多项:负载均衡配置信息的标识信息、逻辑电路标识、哈希键值成员选择控制字,或者,哈希函数选择控制字;其中,所述负载均衡配置信息指示所述流量特征信息与所述负载均衡算法的关联关系。
在第一方面的一种可能实现方式中,所述负载均衡配置信息,包括以下任一项或多项信息:所述负载均衡配置信息的标识信息,所述负载均衡配置信息对应的所述负载均衡算法,匹配信息,所述匹配信息属于所述流量特征信息,哈希键值组成成员的选择配置信息,哈希函数的选择配置信息。
在第一方面的一种可能实现方式中,所述报文的所述流量特征信息包括以下一项或多项:所述报文的差分服务代码点DSCP信息、所述报文的优先级信息、所述报文的入端口信息、所述报文的虚拟局域网VLAN信息、所述报文的入端口组信息、所述报文的出端口信息、所述报文的出端口组信息,或者所述报文的虚拟路由转发表VRF信息。
在第一方面的一种可能实现方式中,负载均衡算法包括:哈希函数(也称为负载均衡哈希函数)和哈希键值组成成员(也称为负载均衡哈希键值组成成员)。
负载均衡配置信息指示特定的负载均衡算法,例如:负载均衡配置信息#1指示哈希函数#1和哈希键值组成成员#1。用户选择负载均衡配置信息#1含义为:用户选择哈希函数#1和哈希键值组成成员#1对报文进行负载均衡处理。负载均衡配置信息视为负载均衡算法的一个实例。
在第一方面的一种可能的实现方式中,网络设备获取第二指令,第二指令指示网络设备采用特定的负载均衡配置信息处理报文。网络设备根据第二指令,选择特定的负载均衡配置信息对报文进行负载均衡处理。在第一方面的一种可能实现方式中,所述负载均衡算法的应用场景以下任意一项:等价多路径路由ECMP,加权多路径路由WCMP,或者,链路聚合LAG。
在第一方面的一种可能实现方式中,所述报文包括第一报文和第二报文,所述第一报文的所述流量特征信息与所述第二报文的所述流量特征信息不同;所述网络设备根据所述报文的所述流量特征信息,分配所述报文的所述负载均衡标识,包括:所述网络设备根据所述第一报文的所述流量特征信息,分配所述第一报文的第一负载均衡标识,所述第一负载均衡标识对应于第一负载均衡算法;所述网络设备根据所述第二报文的所述流量特征信息,分配所述第二报文的第二负载均衡标识,所述第二负载均衡标识对应于第二负载均衡算法;所述第一负载均衡标识与所述第二负载均衡标识不同,所述第一负载均衡算法与所述第二负载均衡算法不同。
具体的,网络设备配置有多个负载均衡配置信息,多个负载均衡配置信息分别指示不同的负载均衡算法。每个负载均衡配置信息分别对应唯一的一个负载均衡标识,每个负载均衡配置信息对应一类报文。当第一报文到达网络设备后,网络设备提取第一报文的流量特征信息。然后,根据第一报文的流量特征信息分配第一报文的第一负载均衡标识。第一负载均衡标识对应于第一负载均衡算法,网络设备使用第一负载均衡算法对第一报文进行负载均衡处理。当第二报文到达网络设备后,网络设备提取第二报文的流量特征信息。然后,根据第二报文的流量特征信息分配第二报文的第二负载均衡标识。第二负载均衡标识对应于第二负载均衡算法,网络设备使用第二负载均衡算法对第二报文进行负载均衡处理。第一负载均衡标识与第二负载均衡标识不同,第一负载均衡算法与第二负载均衡算法不同。
第二方面,本申请实施例提出一种通信装置,用于网络设备,包括:
报文到达收发模块;
处理模块,用于根据所述报文的流量特征信息,分配所述报文的负载均衡标识,其中,所述负载均衡标识用于指示所述报文对应的负载均衡算法;
所述处理模块,还用于根据所述报文的所述负载均衡标识,使用所述报文对应的所述负载均衡算法确定所述报文的出端口,其中,所述报文的出端口用于转发所述报文。
在一种可能实现方式中,所述处理模块,还用于将所述负载均衡标识填充至所述报文的报文描述符,所述报文描述符用于记录所述报文的报文头信息。
在一种可能实现方式中,所述处理模块,还用于根据所述负载均衡标识,确定所述报文对应的所述负载均衡算法;
所述处理模块,还用于根据所述报文对应的所述负载均衡算法,确定所述报文使用的目标哈希函数和所述报文的目标哈希键值组成成员;
所述处理模块,还用于根据所述目标哈希函数和所述目标哈希键值组成成员,计算得到目标哈希值;
所述处理模块,还用于根据所述目标哈希值,确定所述报文的出端口。
在一种可能实现方式中,所述处理模块,还用于根据所述负载均衡标识,确定所述报文对应的哈希函数选择控制字和所述报文对应的哈希键值成员选择控制字;
所述处理模块,还用于根据所述报文对应的所述哈希函数选择控制字,确定所述报文使用的所述目标哈希函数;
所述处理模块,还用于根据所述报文对应的所述哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员。
在一种可能实现方式中,所述处理模块,还用于根据所述报文的所述负载均衡标识,确定目标逻辑电路,其中,所述目标逻辑电路与所述报文的所述负载均衡标识关联,所述目标逻辑电路运行所述报文对应的所述负载均衡算法;
所述处理模块,还用于使用所述目标逻辑电路处理所述报文,确定所述报文的出端口。
在一种可能实现方式中,所述处理模块,还用于从所述网络设备包括的多个逻辑电路中确定所述目标逻辑电路,其中,所述多个逻辑电路与多个负载均衡标识对应,所述多个负载均衡标识包括所述报文的所述负载均衡标识,所述逻辑电路运行与所述负载均衡标识对应的所述负载均衡算法。
在一种可能实现方式中,所述处理模块,还用于使用所述目标逻辑电路处理所述报文,确定所述报文使用的目标哈希函数和所述报文的目标哈希键值组成成员;
所述处理模块,还用于根据所述目标哈希函数和所述目标哈希键值组成成员,计算得到目标哈希值;
所述处理模块,还用于根据所述目标哈希值,确定所述报文的出端口。
在一种可能实现方式中,所述收发模块,还用于从所述目标逻辑电路关联的寄存器,获取所述报文对应的哈希函数选择控制字和所述报文对应的哈希键值成员选择控制字;
所述处理模块,还用于根据所述报文对应的哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员;
所述处理模块,还用于根据所述报文对应的哈希函数选择控制字,确定所述报文使用的所述目标哈希函数。
在一种可能实现方式中,所述收发模块,还用于接收第一指令;
所述处理模块,还用于根据所述第一指令配置负载均衡配置信息,所述负载均衡配置信息指示所述流量特征信息与所述负载均衡算法的关联关系。
在一种可能实现方式中,所述负载均衡标识,包括以下任意一项或多项:
负载均衡配置信息的标识信息、逻辑电路标识、哈希键值成员选择控制字,或者,哈希函数选择控制字;
其中,所述负载均衡配置信息指示所述流量特征信息与所述负载均衡算法的关联关系。
在一种可能实现方式中,所述负载均衡配置信息,包括以下任一项或多项信息:
所述负载均衡配置信息的标识信息,
所述负载均衡配置信息对应的所述负载均衡算法,
匹配信息,所述匹配信息属于所述流量特征信息,
哈希键值组成成员的选择配置信息,
哈希函数的选择配置信息。
在一种可能实现方式中,所述报文的所述流量特征信息包括以下一项或多项:
所述报文的差分服务代码点DSCP信息、所述报文的优先级信息、所述报文的入端口信息、所述报文的虚拟局域网VLAN信息、所述报文的入端口组信息、所述报文的出端口信息、所述报文的出端口组信息,或者所述报文的虚拟路由转发表VRF信息。
在一种可能实现方式中,等价多路径路由ECMP,加权多路径路由WCMP,或者,链路聚合LAG。
在一种可能实现方式中,所述报文包括第一报文和第二报文,所述第一报文的所述流量特征信息与所述第二报文的所述流量特征信息不同;
所述处理模块,具体用于根据所述第一报文的所述流量特征信息,分配所述第一报文的第一负载均衡标识,所述第一负载均衡标识对应于第一负载均衡算法;
所述处理模块,具体用于根据所述第二报文的所述流量特征信息,分配所述第二报文的第二负载均衡标识,所述第二负载均衡标识对应于第二负载均衡算法;
所述第一负载均衡标识与所述第二负载均衡标识不同,所述第一负载均衡算法与所述第二负载均衡算法不同。
第三方面,本申请实施例提出一种通信装置,包括:通信接口;
与所述通信接口连接的处理器;
通信接口,用于获取报文;
处理器,用于根据所述报文的流量特征信息,分配所述报文的负载均衡标识,其中,所述负载均衡标识用于指示所述报文对应的负载均衡算法;
所述处理器,还用于根据所述报文的所述负载均衡标识,使用所述报文对应的所述负载均衡算法确定所述报文的出端口,其中,所述报文的出端口用于转发所述报文。
在一种可能实现方式中,所述处理器,还用于将所述负载均衡标识填充至所述报文的报文描述符,所述报文描述符用于记录所述报文的报文头信息。
在一种可能实现方式中,所述处理器,还用于根据所述负载均衡标识,确定所述报文对应的所述负载均衡算法;
所述处理器,还用于根据所述报文对应的所述负载均衡算法,确定所述报文使用的目标哈希函数和所述报文的目标哈希键值组成成员;
所述处理器,还用于根据所述目标哈希函数和所述目标哈希键值组成成员,计算得到目标哈希值;
所述处理器,还用于根据所述目标哈希值,确定所述报文的出端口。
在一种可能实现方式中,所述处理器,还用于根据所述负载均衡标识,确定所述报文对应的哈希函数选择控制字和所述报文对应的哈希键值成员选择控制字;
所述处理器,还用于根据所述报文对应的所述哈希函数选择控制字,确定所述报文使用的所述目标哈希函数;
所述处理器,还用于根据所述报文对应的所述哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员。
在一种可能实现方式中,所述处理器,还用于根据所述报文的所述负载均衡标识,确定目标逻辑电路,其中,所述目标逻辑电路与所述报文的所述负载均衡标识关联,所述目标逻辑电路运行所述报文对应的所述负载均衡算法;
所述处理器,还用于使用所述目标逻辑电路处理所述报文,确定所述报文的出端口。
在一种可能实现方式中,所述处理器,还用于从所述网络设备包括的多个逻辑电路中确定所述目标逻辑电路,其中,所述多个逻辑电路与多个负载均衡标识对应,所述多个负载均衡标识包括所述报文的所述负载均衡标识,所述逻辑电路运行与所述负载均衡标识对应的所述负载均衡算法。
在一种可能实现方式中,所述处理器,还用于使用所述目标逻辑电路处理所述报文,确定所述报文使用的目标哈希函数和所述报文的目标哈希键值组成成员;
所述处理器,还用于根据所述目标哈希函数和所述目标哈希键值组成成员,计算得到目标哈希值;
所述处理器,还用于根据所述目标哈希值,确定所述报文的出端口。
在一种可能实现方式中,所述通信接口,还用于从所述目标逻辑电路关联的寄存器,获取所述报文对应的哈希函数选择控制字和所述报文对应的哈希键值成员选择控制字;
所述处理器,还用于根据所述报文对应的哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员;
所述处理器,还用于根据所述报文对应的哈希函数选择控制字,确定所述报文使用的所述目标哈希函数。
在一种可能实现方式中,所述通信接口,还用于接收第一指令;
所述处理器,还用于根据所述第一指令配置负载均衡配置信息,所述负载均衡配置信息指示所述流量特征信息与所述负载均衡算法的关联关系。
在一种可能实现方式中,所述负载均衡标识,包括以下任意一项或多项:
负载均衡配置信息的标识信息、逻辑电路标识、哈希键值成员选择控制字,或者,哈希函数选择控制字;
其中,所述负载均衡配置信息指示所述流量特征信息与所述负载均衡算法的关联关系。
在一种可能实现方式中,所述负载均衡配置信息,包括以下任一项或多项信息:
所述负载均衡配置信息的标识信息,
所述负载均衡配置信息对应的所述负载均衡算法,
匹配信息,所述匹配信息属于所述流量特征信息,
哈希键值组成成员的选择配置信息,
哈希函数的选择配置信息。
在一种可能实现方式中,所述报文的所述流量特征信息包括以下一项或多项:
所述报文的差分服务代码点DSCP信息、所述报文的优先级信息、所述报文的入端口信息、所述报文的虚拟局域网VLAN信息、所述报文的入端口组信息、所述报文的出端口信息、所述报文的出端口组信息,或者所述报文的虚拟路由转发表VRF信息。
在一种可能实现方式中,等价多路径路由ECMP,加权多路径路由WCMP,或者,链路聚合LAG。
在一种可能实现方式中,所述报文包括第一报文和第二报文,所述第一报文的所述流量特征信息与所述第二报文的所述流量特征信息不同;
所述处理器,具体用于根据所述第一报文的所述流量特征信息,分配所述第一报文的第一负载均衡标识,所述第一负载均衡标识对应于第一负载均衡算法;
所述处理器,具体用于根据所述第二报文的所述流量特征信息,分配所述第二报文的第二负载均衡标识,所述第二负载均衡标识对应于第二负载均衡算法;
所述第一负载均衡标识与所述第二负载均衡标识不同,所述第一负载均衡算法与所述第二负载均衡算法不同。
第四方面,提供了一种通信系统,通信系统包括如第二方面或第三方面的通信装置。
本申请第五方面提供一种计算机存储介质,该计算机存储介质可以是非易失性的;该计算机存储介质中存储有计算机可读指令,当该计算机可读指令被处理器执行时实现第一方面中任意一种实现方式中的方法。
本申请第六方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面中任意一种实现方式中的方法。
本申请第七面提供一种芯片系统,该芯片系统包括处理器和接口电路,用于支持网络设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
本申请第八方面提供一种通信装置,包括:通信接口;
与通信接口连接的处理器,基于通信接口和处理器,使得通信装置执行如前述第一方面的方法。
附图说明
图1为小规模组网示意图;
图2为大规模组网示意图;
图3为一种单一控制字的结构示意图;
图4为CRC计算示意图;
图5为计算网络和存储网络的独立组网示意图;
图6为计算网络和存储网络的联合组网示意图;
图7为本申请实施例中一种报文处理方法的实施例示意图;
图8为本申请实施例中一种负载均衡配置信息的示意图;
图9为本申请实施例中一种报文描述符的示意图;
图10为本申请实施例中一种应用场景的流程示意图;
图11为本申请实施例中负载均衡处理的一种流程示意图;
图12为本申请实施例提供的一种通信装置1200的结构示意图;
图13为本申请实施例提供的一种通信装置1300的结构示意图;
图14为本申请实施例提供的一种通信装置1400的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的一些示例实现。虽然附图中显示了本公开的一些示例实现,然而,应该理解,可以以各种形式实现本公开而不应被这里阐述的示例实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行。
首先介绍本申请实施例涉及的一些概念。
1、多级交换网络(克劳斯CLOS网络)。
CLOS网络包括:骨干(Spine)节点、叶子(leaf)节点以及架顶式(Top-of-Rack,ToR)节点。服务器通过连接ToR节点接入网络,ToR节点与每一个leaf节点连接,每一个leaf节点连接到了每一个spine节点,反之亦然。
请参阅图1,图1为小规模组网示意图。在2级CLOS网络上,通常只有1次流量负载均衡,发生在从TOR到Leaf交换机的转发方向上。每个2级CLOS网络称为一个组群(POD)。
请参阅图2,图2为大规模组网示意图。在3级CLOS网络上,通常有2次流量负载均衡,一次是在POD内从TOR到Leaf交换机的转发方向上,一次是出POD的时候从Leaf到Spine交换机的转发方向上。负载均衡是将流量均匀地通过多个链路转发出去,负载均衡通常被称为load balancing,也被称为load sharing。
2、负载均衡。
2.1、为了实现负载均衡,在采用层3(Layer 3,L3)即网络层标识查表转发的网络,如互联网协议(Internet protocol,IP)网络中,通常使用等价多路径路由(Equal-CostMulti-Path,ECMP)作为流量负载均衡技术。具体的,ECMP的处理流程如下:
S1、首先基于报文提取的网络层标识(即目的IP地址,destination IP,DIP)查询网络层路由表,从网络层路由中找到对应表项,如果对应的表项的ECMP标识为1,说明去往该目的地址存在多个等价下一跳,于是跳转到对应的ECMP Group表。
S2、然后从该报文信息中提取字段(field)构成哈希键值(Hash Key),送给Hash计算引擎进行Hash计算。
S3、将计算产生的哈希(Hash)值对ECMP组(Group)成员数目做取模运算。
S4、将所得到的哈希值跟ECMP Group表的基指针求和,得到选择的ECMP成员链路下一跳信息在ECMP成员表中的位置(成员链路)。
S5、该报文就从步骤S4所选择的成员链路对应的物理端口转发出去。
2.2、为了实现负载均衡,在采用层2(Layer 2,L2)即链路层标识查表转发的网络,如以太交换网络中,主要使用链路聚合(Link Aggregation,LAG)作为流量负载均衡技术,LAG也被称为Trunk。具体的,LAG的处理流程如下:
D1、首先基于报文提取的链路层标识(即目的MAC地址,destination MAC)查询MAC表,从MAC表中找到对应的表项,如果对应的表项标识是一个LAG,说明去往所述目的MAC地址存在多个并行端口,于是跳转到对应的Trunk Group表。
D2、然后从该报文信息中提取字段(field)构成Hash Key,送给Hash计算引擎进行Hash计算。
D3、将计算产生的Hash值对Trunk Group的成员数目做取模运算。
D4、然后将所得的值跟Trunk Group表的基指针求和,就得到选择的Trunk成员链路端口在Trunk成员表中的位置(成员链路)。
D5、最终报文就从步骤D4所选择的成员链路转发出去。
3、构建哈希键值(hash key)与计算哈希值。
下面介绍如何构建哈希键值。以负责构建哈希键值的网络设备是芯片为例进行说明。
一种示例中,哈希键值总共有13个成员,每个成员为16比特宽度即2字节的宽度。其中,第一个成员是虚拟网络标签(Virtual Network Tag,VNTag)的源虚拟端口标识;第二个成员是VNTag的目的虚拟端口标识;第三个成员是芯片在所在系统里面的标识;第四个成员是报文到达芯片的物理端口标识;第五个成员是这个报文的网络层协议标识;第六个成员是这个报文的传输层的目的端口;第七个成员是这个报文的传输层的源端口;第八个成员是这个报文的VLAN标识;第九个成员是这个报文的网络层目的地址的低16比特;第十个成员是这个报文的网络层目的地址的高16比特;第十一个成员是这个报文的网络层源地址的低16比特;第十二个成员是这个报文的网络层源地址的高16比特;第十三个成员是拥塞通告标签(Congestion Notification tag,CNTag)。
上述成员的信息,有些来自于这个报文自身携带的字段,例如网络层目的地址、网络层源地址、传输层目的端口、传输层源端口、网络层协议标识、CNTag、VNTag、VLAN标识等,有些来自于这个报文所在芯片的信息,例如报文到达的芯片端口标识、报文到达的芯片在所在系统的标识等。如果芯片被告知某些成员字段不需要填充,如第十三成员CNTag,那么该成员字段就会在构建Hash Key的时候被填充以默认值,例如0或其他固定值;如果芯片被告知某些成员字段需要填充,但是报文中没有对应的字段或对应成员信息无法提取,例如针对地址解析协议(Address Resolution Protocol,ARP)报文是没有网络层和传输信息的,那么对应字段也是被填充默认值如0或其他固定值。
当构建哈希键值后,按照配置的哈希算法对该哈希键值进行计算,得到对应的哈希值。哈希值构造方法通常是在网络设备上配置如何从Hash计算结果得到Hash值,例如提取Hash计算结果的低16位为最终Hash值、或高16为最终Hash值、或全部比特为最终Hash值等。
进一步的,选择报文的哪些字段来填充构建哈希键值是由哈希键值成员选择控制字(Hash key members selection control word)来控制。哈希键值成员选择控制字的长度可以是13比特(bit)。如果哈希键值成员选择控制字的对应位设置为1,意味着要填充报文对应字段的值到Hash key里面去,否则就忽略。例如:从低位向高位来看,如果这个控制字第7比特被置1,说明需要从报文头里面提取传输层的源端口(source L4 port)字段的值填充到Hash key结构的第7个字段里面去;否则Hash key结构的第7个字段就默认为全0。
进一步的,在计算哈希值的过程中,选择哪个哈希算法也是通过控制字来控制的,这个控制字被称为哈希函数选择控制字(Hash function selection control word)。哈希函数选择控制字可以与哈希键值成员选择控制字合并为一个单一控制字。例如,图3所示,图3为一种单一控制字的结构示意图。该单一控制字的长度可以是16比特,第0~12位作为哈希键值成员选择控制字,第13~15位作为哈希函数选择控制字。哈希函数选择控制字与哈希键值成员选择控制字也可以独立作为两个控制字存在。
哈希算法包括循环冗余校验(Cyclic Redundancy Check,CRC)计算、异或计算或芯片自定义的其他计算方法。
为了便于理解,请参阅图4,图4为CRC计算示意图。CRC计算本质上是对输入比特串,例如这里的Key,进行辗转异或求余。下面以一个例子来说明CRC计算,如图4,假设HashKey是16位的二进制信息g=1011 0110 0100 0011,这串二进制码可以表示为代数多项式g(x)=x15+x13+x12+x10+x9+x6+x1+1,其中g中第k位的值对应g(x)中xk的系数,k为正整数。将g(x)乘以xm,即将g后加m个0,然后除以m阶多项式h(x),得到的(m-1)阶余项r(x),余项r(x)对应的二进制码r就是CRC计算结果。
结合图4可知,CRC计算方法是确定的,变化的是用作被除数的输入的Key和用作除数的m阶多项式h(x),h(x)通常也被称为生成多项式。通常用生成多项式来标识和区分不同的CRC算法,例如常说“CRC算法A”其实是说“CRC算法使用的生成多项式是A”或“CRC算法使用的生成多项式名字标识为A”,例如可以说“CRC-16-CCITT”或者“CRC 0x1021”,这里“CRC-16-CCITT”是约定的CRC名称,0x1021是生成多项式,网络设备或者其他CRC算法实现主体(例如芯片)也可以自己命名CRC来进行标识区分。ECMP的Hash计算所用CRC生成多项式跟芯片的实现相关。
4、独立组网与联合组网。
以计算网络(compute network)和存储网络(storage network)为例介绍独立组网和联合组网。
4.1、独立组网。
计算网络的业务流量模型以“Halving-doubling”为例,该模型是多个点到点的稀疏流量模型。存储网络的存储业务流量模型,以存储写为例,该模型是多个点到多点的稠密流量模型。例如,图5所示,图5为计算网络和存储网络的独立组网示意图。
当计算网络和存储网络分别独立组网的时候,计算流量和存储流量不会在同一个网络里面共存,这个两个网络可以根据各自承载的业务流量模型选择性能最好的网络负载均衡配置,如计算网络采用case#1作为网络负载均衡配置,存储网络采用case#2作为网络负载均衡配置。
而计算网络和存储网络分别独立组网,是以高投入为代价的。计算网络与存储网络需要分别部署在不同的服务器上,通过至少两个相互独立的网关在接入两个不同的网络。因此,独立组网需要较高的成本。
4.2、联合组网。
由于独立组网需要较高的成本,因此为了降低成本可以采用联合组网。具体的,在融合网络(即联合组网的网络)中通过相同的网关和链路接入到同一个网络里面去。例如图6所示,图6为计算网络和存储网络的联合组网示意图。
但是联合组网带来新的问题:无论case#1还是case#2都不能使得计算业务流量(计算网络)和存储流量(存储网络)同时实现各链路负载偏差率最低,即无法同时实现计算网络和存储网络的最优。导致整个网络的各链路负载偏差率高、整个网络吞吐降低。
基于此,本申请实施例提出一种报文处理方法,报文到达网络设备后,根据报文的流量特征信息分配报文的负载均衡标识,该负载均衡标识用于指示报文对应的负载均衡算法。网络设备根据报文的负载均衡标识,使用报文对应的负载均衡算法确定该报文的出端口,该报文的出端口用于转发该报文。网络设备支持对不同的报文分配不同的负载均衡标识。然后,网络设备根据负载均衡标识,使用对应的负载均衡算法确定报文的出端口,实现对报文的负载均衡处理。在网络中同时存在多种业务的场景下,网络设备可以对不同业务的报文执行对应的负载均衡处理,提升整个网络的吞吐量。
下面,结合附图介绍本申请实施例,请参阅图7,图7为本申请实施例中一种报文处理方法的实施例示意图。本申请实施例提出的一种报文处理方法,包括:
701、报文到达网络设备。
本实施例中,报文到达网络设备包括:网络设备接收报文,或者,网络设备主动获取报文。该报文的报文头包括多种信息,例如:L2层报文头(L2 header)、L3层报文头(L3header)、传输层头信息、以太层信息、IP头信息、传输控制协议(Transmission ControlProtocol,TCP)/用户数据报协议(User Datagram Protocol,UDP)头信息等。
进一步的,报文到达网络设备后,网络设备记录该报文到达的物理端口信息,也就是记录该报文的入端口信息。
702、网络设备根据报文的流量特征信息,分配报文的负载均衡标识,负载均衡标识用于指示报文对应的负载均衡算法。
本实施例中,报文到达网络设备后对报文进行处理,得到报文的流量特征信息。本申请实施例中报文的流量特征信息,包括但不限于:所述报文的差分服务代码点DSCP信息、所述报文的优先级信息、所述报文的入端口信息、所述报文的虚拟局域网VLAN信息、所述报文的入端口组信息、所述报文的出端口信息、所述报文的出端口组信息,或者所述报文的虚拟路由转发表VRF信息。
具体的,提取报文的流量特征信息包括:网络设备从L2层报文头中提取源媒体访问控制(Media Access Control,MAC)地址、目的MAC地址、以太类型以及虚拟局域网(Virtual Local Area Network,VLAN)标识等。网络设备从L3层报文头中提取源IP地址、目的IP地址、差分服务编码点(Differentiated Services Code Point,DSCP)值、生存时间(Time To Live,TTL)值以及IP协议类型值等。网络设备从L4层报文头中提取传输层的源端口值以及传输层的目的端口值等。网络设备从报文的元数据(metadata)中提取报文到达的物理端口标识(source interface id),报文到达的物理端口所在的模块的标识(sourcemodule id)以及报文将要发出去的物理端口标识(destination interface id)等。
网络设备中维护多个负载均衡配置信息,负载均衡配置信息指示负载均衡算法与流量特征信息之间的关联关系。负载均衡配置信息指示特定的负载均衡算法,例如:负载均衡配置信息#1指示哈希函数#1和哈希键值组成成员#1。用户选择负载均衡配置信息#1含义为:用户选择哈希函数#1和哈希键值组成成员#1对报文进行负载均衡处理。负载均衡配置信息视为负载均衡算法的一个实例。本申请实施例中,负载均衡算法包括:哈希函数(也称为负载均衡哈希函数)和哈希键值组成成员(也称为负载均衡哈希键值组成成员)。
具体的,负载均衡配置信息包括以下一项或多项信息:负载均衡配置信息的标识信息、匹配信息、哈希键值组成成员的选择配置信息、或者哈希函数的选择配置信息。匹配信息可以是报文的流量特征信息,例如:报文标识符中记录的相关信息。哈希键值组成成员的选择配置信息可以是哈希键值成员选择控制字。哈希函数的选择配置信息可以是哈希函数选择控制字。
一种可能的实现方式中,网络设备接收第一指令,并根据第一指令配置负载均衡配置信息。该第一指令可以是网络管理设备发送的,该第一指令也可以由用户输入,本申请实施例对此不作限制。
一种可能的实现方式中,网络设备获取第二指令,第二指令指示网络设备采用特定的负载均衡配置信息处理报文。网络设备根据第二指令,选择特定的负载均衡配置信息对报文进行负载均衡处理。
一种示例,如图8所示,图8为本申请实施例中一种负载均衡配置信息的示意图。负载均衡配置信息#1包括:负载均衡配置信息的标识信息为“1”;匹配信息为“Queue3”,指示该负载均衡配置信息#1针对Queue 3的流量;哈希键值组成成员的选择配置信息为源物理端口号“src-interface”,指示哈希键值采用源物理端口;哈希函数的选择配置信息为“Hashmode 5”,指示采用的哈希函数(或哈希算法)为Hashmode 5。负载均衡配置信息#2包括:负载均衡配置信息的标识信息为“2”;匹配信息为“Queue5”,指示该负载均衡配置信息#2针对Queue 5的流量;哈希键值组成成员的选择配置信息为源IP地址目的IP地址“源IP地址(src-ip)、目的IP地址(dst-ip)和传输层源端口(l4-src-port)”,指示哈希键值采用源IP地址(src-ip)、目的IP地址(dst-ip)和传输层源端口(l4-src-port);哈希函数的选择配置信息为“Hashmode 7”,指示采用的哈希函数(或哈希算法)为Hashmode 7。
又一种示例中,配置的负载均衡配置信息如表1所示:
表1
结合上述表1,网络设备可以配置上述表1的负载均衡配置信息,一种可能的配置模型如下:
示例性的,在物理接口100GE 1/2/2下,新增了命令配置“load-balance ecmp qosqueue 3profile AI_traffic”,这个配置命令中,第一个关键词“load-balance”说明是针对网络负载均衡的映射命令;第二个关键词“ecmp”说明是适用于layer 3转发的多路径决策即等价多路径;第三个关键词组“qos queue 3”说明是匹配流量特征队列号,通常是DSCP值;第四个关键词组“profile AI_traffic”说明针对DSCP值为3的流量对应的网络负载均衡配置是名为AI_traffic的负载均衡配置的配置文件(load-balance profile)。在配置“AI_traffic”中,Hash key采用报文到达的源物理接口号构建,Hash算法采用hash mode5。
本申请实施例中,将计算报文的出端口的算法称为负载均衡算法。负载均衡算法包括但不限于:等价多路径路由ECMP,加权多路径路由WCMP,或者,链路聚合LAG等。
当报文到达网络设备的流量特征信息后,网络设备根据报文的流量特征信息对报文进行分类处理。也就是说,网络设备将报文的流量特征信息和负载均衡配置信息中的匹配信息进行匹配。若匹配成功,则认为该报文的分类结果对应于该负载均衡配置信息,需要根据该负载均衡配置信息的指示处理该报文。然后,网络设备根据分类结果,向该报文分配负载均衡标识,该负载均衡标识唯一指示该负载均衡配置信息(即与报文的流量特征信息相匹配的负载均衡配置信息)。
关于分配报文的负载均衡标识,本申请实施例中提出了两种可选的实现方式,具体如下:
A、该负载均衡标识为显式标识。
B、该负载均衡标识为隐式标识。
下面进行具体说明:A、该负载均衡标识为显式标识。
一种可能的实现方式中,网络设备将负载均衡标识填充至报文的报文描述符,报文描述符用于记录报文的报文头信息。报文描述符用于记录报文头信息,报文描述符所记录的信息包括但不限于:以太头信息、IP头信息,TCP/UDP头信息,报文存储在芯片缓存(buffer)的位置信息、报文的长度信息以及报文出端口信息等。其中,以太头信息、IP头信息以及TCP/UDP头信息用于转发查表和访问控制列表(Access Control List,ACL)提供信息输入,这些信息是网络设备的MAC处理模块处理报文时写入到报文描述符;报文存储在芯片buffer的位置信息、长度信息以及报文出端口信息等信息,是网络设备在处理该报文的转发决策的时候写入的。示例性的,报文描述符的长度为64字节。由于报文描述符的长度通常小于报文的平均长度,因此网络设备使用较少带宽的情况下通过读取报文描述符获取报文的相关信息。示例性的,填充负载均衡标识后的报文描述符如图9所示,图9为本申请实施例中一种报文描述符的示意图。负载均衡标识可填充至报文描述符的元数据(metadata)部分。
具体的,当报文到达网络设备后,网络设备将该报文的报文描述符中记录的相关信息作为该报文的流量特征信息。然后,网络设备从多个负载均衡配置信息的匹配信息中,选取与报文描述符(流量特征信息)相匹配的匹配信息。网络设备将该负载均衡配置信息对应的负载均衡标识分配给该报文。网络设备在该报文的报文描述符中填充该负载均衡标识。
又一种可能的实现方式为,网络设备将负载均衡标识填充至报文的保留字段。
又一种可能的实现方式为,网络设备将负载均衡标识填充至报文的有效载荷(payload)。可以理解的是,本申请实施例中不对负载均衡标识的填充区域进行限定。
关于负载均衡标识,负载均衡标识用于指示处理该报文的负载均衡配置信息。网络设备根据该负载均衡标识,确定如何处理该报文并得到报文的出端口,实现对该报文的负载均衡。
一种可能的实现方式为,负载均衡标识为负载均衡配置信息的标识信息。例如图8示意的,负载均衡配置信息#1所对应的负载均衡标识为“1”,负载均衡配置信息#2所对应的负载均衡标识为“2”。网络设备根据该负载均衡标识,可以找到对应的负载均衡配置信息。进而,网络设备从该负载均衡配置信息中确定用于处理该报文的负载均衡算法的应用场景:用于处理该报文的哈希键值成员选择控制字(Hash key members selection controlword)和哈希函数选择控制字(Hash function selection control word)。换言之,网络设备维护负载均衡标识与负载均衡配置信息的映射关系,网络设备通过负载均衡标识确定用于处理该报文的负载均衡配置信息。然后根据负载均衡配置信息的指示,处理该报文并确定报文的出端口。
又一种可能的实现方式为,负载均衡标识包括哈希键值成员选择控制字和哈希函数选择控制字。换言之,通过负载均衡标识直接指示哈希键值成员选择控制字和哈希函数选择控制字。示例性的,该负载均衡标识如图3所示。
B、该负载均衡标识为隐式标识。
本申请实施例中,当负载均衡标识是一种隐式标识时,该负载均衡标识也可以称为逻辑电路标识。
一种可能的实现方式中,网络设备接收报文后,网络设备根据报文的流量特征信息,为报文分配隐式的负载均衡标识。然后根据该隐式的负载均衡标识确定处理该报文的逻辑电路,该逻辑电路运行与该负载均衡标识对应的负载均衡算法,通过该逻辑电路计算得到该报文的出端口。
具体的,网络设备包括多个逻辑电路,每个逻辑电路与一个负载均衡配置信息对应,逻辑电路运行负载均衡配置信息所对应的负载均衡算法。网络设备使用逻辑电路处理报文,计算得到报文的出端口。由于负载均衡配置信息与负载均衡标识(隐式)对应,因此,每个逻辑电路关联一个隐式的负载均衡标识。本申请实施例中,每个逻辑电路与唯一的一个负载均衡标识关联。网络设备为报文分配隐式的负载均衡标识后,网络设备根据该负载均衡标识确定目标逻辑电路,目标逻辑电路用于处理该报文得到报文的出端口。
逻辑电路与隐式的负载均衡标识之间的映射关系,例如表2所示:
表2
负载均衡配置信息 匹配信息 负载均衡标识 逻辑电路
1 Queue 3 Circuit#1 逻辑电路#1
2 Queue 5 Circuit#2 逻辑电路#2
3 Queue 7 Circuit#3 逻辑电路#3
与分配显式的负载均衡标识类似,网络设备根据报文的流量特征信息对报文进行分类。然后根据分类结果,向报文分配隐式的负载均衡标识,并将报文转发到该负载均衡标识对应的逻辑电路(即目标逻辑电路)进行处理,得到报文的出端口。具体的,将报文的流量特征信息与负载均衡配置信息的匹配信息进行匹配处理,确定与流量特征信息匹配的负载均衡配置信息。然后,网络设备为该报文分配隐式的负载均衡标识,并将报文转发至与该负载均衡标识关联的目标逻辑电路。
703、网络设备根据报文的负载均衡标识,使用报文对应的负载均衡算法确定报文的出端口。
本实施例中,当网络设备为报文分配负载均衡标识后,网络设备根据该负载均衡标识确定报文对应的负载均衡算法。然后,网络设备使用报文对应的负载均衡算法确定报文的出端口。下面按照显式的负载均衡标识和隐式的负载均衡标识,分别介绍确定报文出端口的具体方式。
A、负载均衡标识为显式标识。
具体的,网络设备根据该负载均衡标识,找到对应的负载均衡配置信息。然后,网络设备从负载均衡配置信息中确定处理该报文的负载均衡算法。网络设备根据该负载均衡算法,确定所述报文对应的所述哈希键值成员选择控制字和所述报文对应的所述哈希函数选择控制字。然后,所述网络设备根据所述报文对应的所述哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员。所述网络设备根据所述报文对应的所述哈希函数选择控制字,确定所述报文使用的所述目标哈希函数。网络设备使用该目标哈希函数和目标哈希键值组成成员,计算得到该报文的目标哈希值。最后,网络设备根据目标哈希值,确定该报文的出端口。
一种可能的实现方式中,网络设备根据负载均衡标识,从负载均衡配置信息中确定报文对应的哈希函数选择控制字和报文对应的哈希键值成员选择控制字。
又一种可能的实现方式中,负载均衡标识直接指示哈希函数选择控制字和哈希键值成员选择控制字。网络设备根据分配给报文的负载均衡标识,确定该报文对应的哈希函数选择控制字和该报文对应的哈希键值成员选择控制字。
B、负载均衡标识为隐式标识。
具体的,网络设备向报文分配隐式的负载均衡标识后,将报文转发到该负载均衡标识对应的逻辑电路(即目标逻辑电路)进行处理。所述网络设备从所述目标逻辑电路关联的寄存器,获取所述报文对应的哈希函数选择控制字和所述报文对应的哈希键值成员选择控制字。然后,所述网络设备根据所述报文对应的哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员;所述网络设备根据所述报文对应的哈希函数选择控制字,确定所述报文使用的所述目标哈希函数。网络设备使用该目标哈希函数和目标哈希键值组成成员,计算得到该报文的目标哈希值。最后,网络设备根据目标哈希值,确定该报文的出端口。
示例性的,请参阅图11,图11为本申请实施例中负载均衡处理的一种流程示意图。网络设备包括n个逻辑电路,n为大于1的正整数。每个逻辑电路按照功能划分可以分为三部分:寄存器,用于存储该逻辑电路所对应的负载均衡配置信息;哈希键值构建逻辑电路用于构建哈希键值;哈希值计算逻辑电路用于计算哈希值。报文进入目标逻辑电路(例如逻辑电路#2)后,从逻辑电路#2关联的寄存器#2中获取哈希键值成员选择控制字和哈希函数选择控制字。通过哈希键值构建逻辑电路#2从报文中选择目标字段,然后根据所述目标字段构建所述报文的所述目标哈希键值组成成员。通过哈希值计算逻辑电路#2和目标哈希键值组成成员,计算得到该报文对应的哈希值#2。网络设备根据该哈希值#2确定该报文对应的出端口。
本申请实施例提出一种报文处理方法,报文到达网络设备后,根据报文的流量特征信息分配报文的负载均衡标识,该负载均衡标识用于指示报文对应的负载均衡算法。网络设备根据报文的负载均衡标识,使用报文对应的负载均衡算法确定该报文的出端口,该报文的出端口用于转发该报文。网络设备支持对不同的报文分配不同的负载均衡标识。然后,网络设备根据负载均衡标识,使用对应的负载均衡算法确定报文的出端口,实现对报文的负载均衡处理。在网络中同时存在多种业务的场景下,网络设备可以对不同业务的报文执行对应的负载均衡处理,提升整个网络的吞吐量。解决当前网络设备只支持L2或L3全局唯一网络负载均衡配置的问题,实现不同流量特征的报文在同一个网络设备上交汇,实现整网吞吐最大化。通过本方案,可以把混合流量切割为多个精细的子流量拓扑,并为每个子流量拓扑配置独立的负载均衡配置信息。
接下来,结合前述实施例介绍本申请实施例提出的一种应用场景。请参阅图10,图10为本申请实施例中一种应用场景的流程示意图。本申请实施例提出的一种应用场景包括:
1001、报文到达网络设备。
示例性的,到达网络设备的报文包括:第一报文和第二报文。
1002、网络设备提取报文的字段信息。
1003、检测该报文是否由多端口转发。若是,则进入步骤1004;若否,则进入步骤1010。
1004、检测接口是否使能根据报文的流量特征信息选择负载均衡配置信息。若是,则进入步骤1005;若否,则进入步骤1008。
1005、提取报文的流量特征信息。
示例性的,网络设备从第一报文的字段信息等相关信息中,提取第一报文的流量特征信息。网络设备从第二报文的字段信息等相关信息中,提取第二报文的流量特征信息。
1006、检测报文的流量特征信息与负载均衡配置信息包括的匹配信息是否匹配。若是则进入步骤1007;若否,则进入步骤1008。示例性的,网络设备将第一报文的流量特征信息与负载均衡配置信息#1包括的匹配信息#1进行匹配,匹配成功进入步骤1007。网络设备将第二报文的流量特征信息与负载均衡配置信息#2包括的匹配信息#2进行匹配,匹配成功进入步骤1007。
1007、根据与流量特征信息相匹配的负载均衡配置信息,为报文分配负载均衡标识。步骤1007后,进入步骤1009。
示例性的,网络设备为第一报文分配第一负载均衡标识,第一负载均衡标识对应于第一负载均衡算法。负载均衡配置信息#1指示第一负载均衡算法,负载均衡配置信息#1包括第一负载均衡标识。网络设备为第二报文分配第二负载均衡标识,第二负载均衡标识对应于第二负载均衡算法。负载均衡配置信息#2指示第二负载均衡算法,负载均衡配置信息#2包括第二负载均衡标识。第一负载均衡标识与第二负载均衡标识不同,第一负载均衡算法与第二负载均衡算法不同。
1008、采用全局默认的负载均衡配置信息。步骤1008后,进入步骤1009。
1009、根据负载均衡配置信息,使用对应的负载均衡算法确定报文的出端口。具体的,基于负载均衡配置,构建Hash key,然后计算Hash值。以计算出的Hash值进行负载均衡,确定报文的出端口。
示例性的,网络设备根据负载均衡配置信息#1指示的第一负载均衡算法,对第一报文进行负载均衡处理,确定第一报文的出端口。网络设备根据负载均衡配置信息#2指示的第二负载均衡算法,对第二报文进行负载均衡处理,确定第二报文的出端口。
1010、从报文的出端口转发报文,实现对流量的负载均衡处理。
上述主要以方法的角度对本申请实施例提供的方案进行了介绍。可以理解的是,网络设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对网络设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
以下介绍本申请实施例的通信装置,以下介绍的通信装置具有上述方法实施例中的网络设备的任意功能。本申请所述的通信装置,可以是交换机、路由器等网络设备,也可以是网络设备上的一部分组件,例如是网络设备上的接口板,线卡或者芯片,还可以是网络设备上的一个功能模块,还可以是用于实现本申请方法的芯片系统,本申请实施例不做具体限定。通信装置之间例如可以但不限于通过以太网线或光纤直接连接。当通信装置是芯片系统时,通信装置中的收发模块例如可以是芯片系统中的接口电路,处理模块例如可以是芯片系统中用于执行处理操作的处理电路。图12为本申请实施例提供的一种通信装置1200的结构示意图,如图12所示,通信装置1200包括:收发模块1201,用于执行步骤701;处理模块1202,用于执行步骤702、或703。
通信装置1200可以对应于上述方法实施例中的网络设备,通信装置1200中的各单元和上述其他操作和/或功能分别为了实现方法实施例中的网络设备所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
通信装置1200执行上述方法实施例时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将通信装置1200的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的通信装置1200与上述图7对应的实施例方法属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
图13所示的通信装置1300尽管示出了某些特定特征,但是本领域的技术人员将从本申请实施例中意识到,为了简洁起见,图13未示出各种其他特征,以免混淆本申请实施例所公开的实施方式的更多相关方面。为此,作为示例,在一些实现方式中,通信装置1300包括一个或多个处理器(如,CPU)1301、网络接口1302、编程接口1303、存储器1304和一个或多个通信总线1305,用于将各种组件互连。在另一些实现方式中,通信装置1300也可以在上述示例基础上省略或增加部分功能部件或单元。
在一些实现方式中,网络接口1302用于在网络系统中和一个或多个其他的通信装置/服务器连接。在一些实现方式中,通信总线1305包括互连和控制系统组件之间的通信的电路。存储器1304可以包括非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器1304也可以包括易失性存储器,易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。
在一些实现中,存储器1304或存储器1304的非暂时性计算机可读存储介质存储以下程序、模块和数据结构,或其子集,例如包括收发单元(图中未示出)、获取单元13041和处理单元13042。
在一个可能的实施例中,该通信装置1300可以具有上述图7对应的方法实施例中的网络设备中的任意功能。
应理解,通信装置1300对应于上述方法实施例中的网络设备或控制管理装置,通信装置1300中的各模块和上述其他操作和/或功能分别为了实现上述方法实施例中的网络设备或控制管理装置所实施的各种步骤和方法,具体细节可参见上述图7对应的方法实施例,为了简洁,在此不再赘述。
应理解,本申请可以是由通信装置1300上的网络接口1302来完成数据的收发操作,也可以是由处理器调用存储器中的程序代码,并在需要时配合网络接口1302来实现收发单元的功能。
在各种实现中,通信装置1300用于执行本申请实施例提供的业务保护方法,例如是执行上述图7所示的实施例所对应的业务保护方法。
本申请图13所述的通信装置具体结构可以为图14所示。
图14为本申请实施例提供的一种通信装置1400的结构示意图,通信装置1400包括:主控板1414和接口板1430。
主控板1414也称为主处理单元(main processing unit,MPU)或路由处理器(route processor),主控板1414用于对通信装置1400中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板1414包括:中央处理器1415和存储器1416。
接口板1430也称为线路处理单元(line processing unit,LPU)、线卡(linecard)或业务板。接口板1430用于提供各种业务接口并实现数据包的转发。业务接口包括但不限于以太网接口、POS(Packet over SONET/SDH)接口等。接口板1430包括:中央处理器1431、网络处理器1432、转发表项存储器1434和物理接口卡(physical interface card,PIC)1433。
接口板1430上的中央处理器1431用于对接口板1430进行控制管理并与主控板1414上的中央处理器1415通信。
网络处理器1432用于实现报文的转发处理。网络处理器1432的形态可以是芯片。
物理接口卡1433用于实现物理层的对接功能,原始的流量由此进入接口板1430,以及处理后的报文从该物理接口卡1433发出。物理接口卡1433包括至少一个物理接口,物理接口也称物理口,物理接口可以为灵活以太(Flexible Ethernet,FlexE)物理接口。物理接口卡1433也称为子卡,可安装在接口板1430上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器1432处理。在一些实施例中,接口板1430的中央处理器1431也可执行网络处理器1432的功能,比如基于通用CPU实现软件转发,从而接口板1430中不需要网络处理器1432。
可选的,通信装置1400包括多个接口板,例如通信装置1400还包括接口板1440,接口板1440包括:中央处理器1441、网络处理器1442、转发表项存储器1444和物理接口卡1443。
可选的,通信装置1400还包括交换网板1420。交换网板1420也可以称为交换网板单元(switch fabric unit,SFU)。在通信装置有多个接口板1430的情况下,交换网板1420用于完成各接口板之间的数据交换。例如,接口板1430和接口板1440之间可以通过交换网板1420通信。
主控板1414和接口板耦合。例如,主控板1414、接口板1430和接口板1440,以及交换网板1420之间通过系统总线和/或系统背板相连实现互通。在一种可能的实现方式中,主控板1414和接口板1430之间建立进程间通信协议(inter-process communication,IPC)通道,主控板1414和接口板1430之间通过IPC通道进行通信。
在逻辑上,通信装置1400包括控制面和转发面,控制面包括主控板1414和中央处理器1431,转发面包括执行转发的各个组件,比如转发表项存储器1434、物理接口卡1433和网络处理器1432。控制面执行发布路由、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器1432基于控制面下发的转发表对物理接口卡1433收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器1434中。在有些实施例中,控制面和转发面可以完全分离,不在同一设备上。
应理解,通信装置1300中的收发单元可以相当于通信装置1400中的物理接口卡1433或物理接口卡1443;通信装置1300中的获取单元13041和处理单元13042可以相当于通信装置1400中的中央处理器1415或中央处理器1431,也可以相当于存储器1416中存储的程序代码或指令。
应理解,本申请实施例中接口板1440上的操作与接口板1430的操作一致,为了简洁,不再赘述。应理解,本实施例的通信装置1400可对应于上述各个方法实施例中的网络设备,该通信装置1400中的主控板1414、接口板1430和/或接口板1440可以实现上述各个方法实施例中的网络设备所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,通信装置的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,通信装置可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,通信装置可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。可选的,通信装置的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能。具体采用哪种架构,取决于具体的组网部署场景,此处不做唯一限定。
在一些可能的实施例中,上述网络设备可以实现为虚拟化设备。虚拟化设备可以是运行有用于发送报文功能的程序的虚拟机(virtual machine,VM),虚拟路由器或虚拟交换机。虚拟化设备部署在硬件设备上(例如,物理服务器)。例如,可以基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,NFV)技术来实现网络设备。
应理解,上述各种产品形态的通信装置,分别具有上述方法实施例中网络设备的任意功能,此处不再赘述。
本申请实施例还提供的一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机控制网络装置执行如前述方法实施例所示任一项实现方式。
本申请实施例还提供的一种计算机程序产品,计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行如前述方法实施例所示任一项实现方式。
进一步地,本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在通信装置上运行时,使得通信装置执行上述图7对应的方法实施例中网络设备执行的方法。
本申请实施例还提供了一种芯片系统,包括处理器和接口电路,接口电路,用于接收指令并传输至处理器。其中,所述处理器用于实现上述任一方法实施例中的方法。
可选的,该芯片系统还包括存储器,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现上述任一方法实施例中的方法。
可选的,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
上述各种产品形态的通信装置,分别具有上述方法实施例中网络设备的任意功能,此处不再赘述。
以上对本申请实施例进行了详细介绍,本申请实施例方法中的步骤可以根据实际需要进行顺序调度、合并或删减;本申请实施例装置中的模块可以根据实际需要进行划分、合并或删减。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

Claims (32)

1.一种报文处理方法,其特征在于,包括:
报文到达网络设备;
所述网络设备根据所述报文的流量特征信息,分配所述报文的负载均衡标识,其中,所述负载均衡标识用于指示所述报文对应的负载均衡算法;
所述网络设备根据所述报文的所述负载均衡标识,使用所述报文对应的所述负载均衡算法确定所述报文的出端口,其中,所述报文的出端口用于转发所述报文。
2.根据权利要求1所述的方法,其特征在于,所述网络设备将所述负载均衡标识填充至所述报文,包括:
所述网络设备将所述负载均衡标识填充至所述报文的报文描述符,所述报文描述符用于记录所述报文的报文头信息。
3.根据权利要求1-2中任一项所述的方法,其特征在于,所述网络设备根据所述报文的所述负载均衡标识,使用所述报文对应的所述负载均衡算法确定所述报文的出端口,包括:
所述网络设备根据所述负载均衡标识,确定所述报文对应的所述负载均衡算法;
所述网络设备根据所述报文对应的所述负载均衡算法,确定所述报文使用的目标哈希函数和所述报文的目标哈希键值组成成员;
所述网络设备根据所述目标哈希函数和所述目标哈希键值组成成员,计算得到目标哈希值;
所述网络设备根据所述目标哈希值,确定所述报文的出端口。
4.根据权利要求3所述的方法,其特征在于,所述网络设备根据所述负载均衡标识,确定所述报文使用的所述目标哈希函数和所述报文的所述目标哈希键值组成成员,包括:
所述网络设备根据所述负载均衡标识,确定所述报文对应的哈希函数选择控制字和所述报文对应的哈希键值成员选择控制字;
所述网络设备根据所述报文对应的所述哈希函数选择控制字,确定所述报文使用的所述目标哈希函数;
所述网络设备根据所述报文对应的所述哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员。
5.根据权利要求1所述的方法,其特征在于,所述网络设备根据所述报文的所述负载均衡标识,使用所述报文对应的所述负载均衡算法确定所述报文的出端口,包括:
所述网络设备根据所述报文的所述负载均衡标识,确定目标逻辑电路,其中,所述目标逻辑电路与所述报文的所述负载均衡标识关联,所述目标逻辑电路运行所述报文对应的所述负载均衡算法;
所述网络设备使用所述目标逻辑电路处理所述报文,确定所述报文的出端口。
6.根据权利要求5所述的方法,其特征在于,所述网络设备根据所述报文的所述负载均衡标识,确定所述目标逻辑电路,包括:
所述网络设备从所述网络设备包括的多个逻辑电路中确定所述目标逻辑电路,其中,所述多个逻辑电路与多个负载均衡标识对应,所述多个负载均衡标识包括所述报文的所述负载均衡标识,所述逻辑电路运行与所述负载均衡标识对应的所述负载均衡算法。
7.根据权利要求5或6所述的方法,其特征在于,所述网络设备使用所述目标逻辑电路处理所述报文,确定所述报文的出端口,包括:
所述网络设备使用所述目标逻辑电路处理所述报文,确定所述报文使用的目标哈希函数和所述报文的目标哈希键值组成成员;
所述网络设备根据所述目标哈希函数和所述目标哈希键值组成成员,计算得到目标哈希值;
所述网络设备根据所述目标哈希值,确定所述报文的出端口。
8.根据权利要求7所述的方法,其特征在于,所述网络设备使用所述目标逻辑电路处理所述报文,确定所述报文使用的所述目标哈希函数和所述报文的所述目标哈希键值组成成员,包括:
所述网络设备从所述目标逻辑电路关联的寄存器,获取所述报文对应的哈希函数选择控制字和所述报文对应的哈希键值成员选择控制字;
所述网络设备根据所述报文对应的哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员;
所述网络设备根据所述报文对应的哈希函数选择控制字,确定所述报文使用的所述目标哈希函数。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:
所述网络设备接收第一指令;
所述网络设备根据所述第一指令配置负载均衡配置信息,所述负载均衡配置信息指示所述流量特征信息与所述负载均衡算法的关联关系。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述负载均衡标识,包括以下任意一项或多项:
负载均衡配置信息的标识信息、逻辑电路标识、哈希键值成员选择控制字,或者,哈希函数选择控制字;
其中,所述负载均衡配置信息指示所述流量特征信息与所述负载均衡算法的关联关系。
11.根据权利要求9或10所述的方法,其特征在于,所述负载均衡配置信息,包括以下任一项或多项信息:
所述负载均衡配置信息的标识信息,
所述负载均衡配置信息对应的所述负载均衡算法,
匹配信息,所述匹配信息属于所述流量特征信息,
哈希键值组成成员的选择配置信息,
哈希函数的选择配置信息。
12.根据权利要求1-11中任一项所述的方法,其特征在于,所述报文的所述流量特征信息包括以下一项或多项:
所述报文的差分服务代码点DSCP信息、所述报文的优先级信息、所述报文的入端口信息、所述报文的虚拟局域网VLAN信息、所述报文的入端口组信息、所述报文的出端口信息、所述报文的出端口组信息,或者所述报文的虚拟路由转发表VRF信息。
13.根据权利要求1-12中任一项所述的方法,其特征在于,所述负载均衡算法的应用场景以下任意一项:
等价多路径路由ECMP,加权多路径路由WCMP,或者,链路聚合LAG。
14.根据权利要求1-13中任一项所述的方法,其特征在于,
所述报文包括第一报文和第二报文,所述第一报文的所述流量特征信息与所述第二报文的所述流量特征信息不同;
所述网络设备根据所述报文的所述流量特征信息,分配所述报文的所述负载均衡标识,包括:
所述网络设备根据所述第一报文的所述流量特征信息,分配所述第一报文的第一负载均衡标识,所述第一负载均衡标识对应于第一负载均衡算法;
所述网络设备根据所述第二报文的所述流量特征信息,分配所述第二报文的第二负载均衡标识,所述第二负载均衡标识对应于第二负载均衡算法;
所述第一负载均衡标识与所述第二负载均衡标识不同,所述第一负载均衡算法与所述第二负载均衡算法不同。
15.一种通信装置,其特征在于,用于网络设备,包括:
报文到达收发模块;
处理模块,用于根据所述报文的流量特征信息,分配所述报文的负载均衡标识,其中,所述负载均衡标识用于指示所述报文对应的负载均衡算法;
所述处理模块,还用于根据所述报文的所述负载均衡标识,使用所述报文对应的所述负载均衡算法确定所述报文的出端口,其中,所述报文的出端口用于转发所述报文。
16.根据权利要求15所述的通信装置,其特征在于,
所述处理模块,还用于将所述负载均衡标识填充至所述报文的报文描述符,所述报文描述符用于记录所述报文的报文头信息。
17.根据权利要求15-16中任一项所述的通信装置,其特征在于,
所述处理模块,还用于根据所述负载均衡标识,确定所述报文对应的所述负载均衡算法;
所述处理模块,还用于根据所述报文对应的所述负载均衡算法,确定所述报文使用的目标哈希函数和所述报文的目标哈希键值组成成员;
所述处理模块,还用于根据所述目标哈希函数和所述目标哈希键值组成成员,计算得到目标哈希值;
所述处理模块,还用于根据所述目标哈希值,确定所述报文的出端口。
18.根据权利要求17所述的通信装置,其特征在于,
所述处理模块,还用于根据所述负载均衡标识,确定所述报文对应的哈希函数选择控制字和所述报文对应的哈希键值成员选择控制字;
所述处理模块,还用于根据所述报文对应的所述哈希函数选择控制字,确定所述报文使用的所述目标哈希函数;
所述处理模块,还用于根据所述报文对应的所述哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员。
19.根据权利要求15所述的通信装置,其特征在于,
所述处理模块,还用于根据所述报文的所述负载均衡标识,确定目标逻辑电路,其中,所述目标逻辑电路与所述报文的所述负载均衡标识关联,所述目标逻辑电路运行所述报文对应的所述负载均衡算法;
所述处理模块,还用于使用所述目标逻辑电路处理所述报文,确定所述报文的出端口。
20.根据权利要求19所述的通信装置,其特征在于,
所述处理模块,还用于从所述网络设备包括的多个逻辑电路中确定所述目标逻辑电路,其中,所述多个逻辑电路与多个负载均衡标识对应,所述多个负载均衡标识包括所述报文的所述负载均衡标识,所述逻辑电路运行与所述负载均衡标识对应的所述负载均衡算法。
21.根据权利要求19或20所述的通信装置,其特征在于,
所述处理模块,还用于使用所述目标逻辑电路处理所述报文,确定所述报文使用的目标哈希函数和所述报文的目标哈希键值组成成员;
所述处理模块,还用于根据所述目标哈希函数和所述目标哈希键值组成成员,计算得到目标哈希值;
所述处理模块,还用于根据所述目标哈希值,确定所述报文的出端口。
22.根据权利要求21所述的通信装置,其特征在于,
所述收发模块,还用于从所述目标逻辑电路关联的寄存器,获取所述报文对应的哈希函数选择控制字和所述报文对应的哈希键值成员选择控制字;
所述处理模块,还用于根据所述报文对应的哈希键值成员选择控制字,从所述报文中选择目标字段,所述目标字段用于构建所述报文的所述目标哈希键值组成成员;
所述处理模块,还用于根据所述报文对应的哈希函数选择控制字,确定所述报文使用的所述目标哈希函数。
23.根据权利要求15-22中任一项所述的通信装置,其特征在于,
所述收发模块,还用于接收第一指令;
所述处理模块,还用于根据所述第一指令配置负载均衡配置信息,所述负载均衡配置信息指示所述流量特征信息与所述负载均衡算法的关联关系。
24.根据权利要求15-23中任一项所述的通信装置,其特征在于,所述负载均衡标识,包括以下任意一项或多项:
负载均衡配置信息的标识信息、逻辑电路标识、哈希键值成员选择控制字,或者,哈希函数选择控制字;
其中,所述负载均衡配置信息指示所述流量特征信息与所述负载均衡算法的关联关系。
25.根据权利要求23或24所述的通信装置,其特征在于,所述负载均衡配置信息,包括以下任一项或多项信息:
所述负载均衡配置信息的标识信息,
所述负载均衡配置信息对应的所述负载均衡算法,
匹配信息,所述匹配信息属于所述流量特征信息,
哈希键值组成成员的选择配置信息,
哈希函数的选择配置信息。
26.根据权利要求15-25中任一项所述的通信装置,其特征在于,所述报文的所述流量特征信息包括以下一项或多项:
所述报文的差分服务代码点DSCP信息、所述报文的优先级信息、所述报文的入端口信息、所述报文的虚拟局域网VLAN信息、所述报文的入端口组信息、所述报文的出端口信息、所述报文的出端口组信息,或者所述报文的虚拟路由转发表VRF信息。
27.根据权利要求15-26中任一项所述的通信装置,其特征在于,所述负载均衡算法的应用场景以下任意一项:
等价多路径路由ECMP,加权多路径路由WCMP,或者,链路聚合LAG。
28.根据权利要求15-27中任一项所述的通信装置,其特征在于,
所述报文包括第一报文和第二报文,所述第一报文的所述流量特征信息与所述第二报文的所述流量特征信息不同;
所述处理模块,具体用于根据所述第一报文的所述流量特征信息,分配所述第一报文的第一负载均衡标识,所述第一负载均衡标识对应于第一负载均衡算法;
所述处理模块,具体用于根据所述第二报文的所述流量特征信息,分配所述第二报文的第二负载均衡标识,所述第二负载均衡标识对应于第二负载均衡算法;
所述第一负载均衡标识与所述第二负载均衡标识不同,所述第一负载均衡算法与所述第二负载均衡算法不同。
29.一种通信装置,其特征在于,包括:
通信接口;
与所述通信接口连接的处理器,基于所述通信接口和所述处理器,使得所述控制器执行如权利要求1-14任一项所述的方法。
30.一种通信系统,其特征在于,所述通信系统包括通信装置,所述通信装置用于执行权利要求1-14任一项所述的方法。
31.一种计算机可读存储介质,包括指令,其特征在于,当所述指令被处理器执行时,实现权利要求1-14任一项所述的方法。
32.一种计算机程序产品,包括程序,其特征在于,当所述程序被处理器执行时,实现权利要求1-14任一项所述的方法。
CN202211366416.6A 2022-10-31 2022-10-31 一种报文处理方法以及相关装置 Pending CN117955913A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211366416.6A CN117955913A (zh) 2022-10-31 2022-10-31 一种报文处理方法以及相关装置
PCT/CN2023/126724 WO2024093778A1 (zh) 2022-10-31 2023-10-26 一种报文处理方法以及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211366416.6A CN117955913A (zh) 2022-10-31 2022-10-31 一种报文处理方法以及相关装置

Publications (1)

Publication Number Publication Date
CN117955913A true CN117955913A (zh) 2024-04-30

Family

ID=90798750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211366416.6A Pending CN117955913A (zh) 2022-10-31 2022-10-31 一种报文处理方法以及相关装置

Country Status (2)

Country Link
CN (1) CN117955913A (zh)
WO (1) WO2024093778A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118413488A (zh) * 2024-07-02 2024-07-30 中国电信股份有限公司 路由方法、路由设备、路由系统及相关设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10887234B1 (en) * 2016-02-23 2021-01-05 Amazon Technologies, Inc. Programmatic selection of load balancing output amongst forwarding paths
CN109067664B (zh) * 2018-08-29 2022-06-10 迈普通信技术股份有限公司 一种负载均衡方法及装置
CN110798400B (zh) * 2019-10-23 2022-02-11 新华三信息安全技术有限公司 报文转发方法及装置

Also Published As

Publication number Publication date
WO2024093778A1 (zh) 2024-05-10

Similar Documents

Publication Publication Date Title
US11588733B2 (en) Slice-based routing
CN102771094B (zh) 分布式路由架构
JP4454499B2 (ja) 多数の論理サブ送信システムの機能性を持つ送信システム
KR102205882B1 (ko) 팻-트리 라우팅에 기반하여 별개의 인피니밴드 서브넷들 사이에서 트래픽을 라우팅하기 위한 시스템 및 방법
US7616646B1 (en) Intraserver tag-switched distributed packet processing for network access servers
CN112311675B (zh) 用于分段路由(sr)路径的保证型带宽
US20110267941A1 (en) Pinning and protection on link aggregation groups
CN103746931A (zh) 在服务应用后用网络设备维持负载均衡
CN112448900A (zh) 一种数据传输方法及装置
WO2013054344A2 (en) Method and apparatus for end-end communication and inter-domain routing in omnipresent ethernet networks with an option to migrate to mpls-tp
JP2009524356A (ja) 通信ネットワークを通じたトラフィック分配を向上させる方法およびシステム
US11588756B2 (en) Networking system having multiple components with multiple loci of control
WO2024093778A1 (zh) 一种报文处理方法以及相关装置
CN114844962A (zh) 一种报文处理方法及相关装置
US20210194832A1 (en) Packet value based packet processing
US20240267324A1 (en) Packet forwarding method and apparatus
CN112822097A (zh) 报文转发的方法、第一网络设备以及第一设备组
CN113285878B (zh) 负载分担的方法、第一网络设备
US11070474B1 (en) Selective load balancing for spraying over fabric paths
CN112532563B (zh) 报文的发送方法和装置
US8787379B2 (en) Destination-based virtual channel assignment in on-chip ring networks
CN104995879A (zh) 通信系统、通信方法、控制装置、控制装置控制方法和程序
CN111245724A (zh) 基于虚拟交换机部署的sdn负载均衡路由方法
WO2023057790A1 (en) Resource allocation using traffic aggregability and future bandwidth availability in a network
CN116094987A (zh) 转发路径的确定方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication