专利名称:上链聚合端口的流量均衡方法、装置及设备的制作方法
技术领域:
本发明涉及流量均衡技术,尤其涉及一种上链聚合端口的流量均衡方法、装置及设备,属于网络技术领域。
背景技术:
模块化交换机是一种具有多个插槽的交换机。一般说来,这种结构的交换机的插槽数量不能低于2个。插槽槽位可以用来插入引擎板、线卡板和交换板。引擎板用于管理整台交换机,线卡板提供了不同的接口类型,用于网络接口的接入,交换板用于转发线卡板之间的数据报文。部分交换机将引擎板与交换板做在一起。线卡板与交换板之间可以通过上链聚合端口连接在一起。对于跨线卡板槽位的交换,需要通过交换板转发。由于上链聚合端口包括多个上链端口,在线卡板到交换板的数据转发的过程中,具体走哪个上链端口便成为一个问题。如果数据报文在上链端口上分配不当,会导致如下两种情况的发生一种是数据流量不均衡,发生丢包。由于线卡前面板端口的端口带宽综合大于等于单个上链端口的端口带宽,因此,如果每个前面板端口都走同一个上链端口的话,必定会导致该上链端口拥塞,从而丢包。另一种是发生帧乱序。如果同一个类型的数据报文被分配到不同的上链端口,就意味着不同的路径,如果不同路径的延迟无法控制的话,就可能会导致帧乱序的产生。现有技术上链聚合端口的流量均衡方法可以分为三种第一种是基于数据报文内容的哈希算法,即在接收到数据报文之后,对数据报文进行拆分,提取里面的数据信息,如 IP信息、MAC地址信息、MPLS信息等等,然后将提取到的数据信息做运算,得到一个哈希值, 根据该哈希值把数据报文发往不同的上链端口。第二种是基于源端口号的哈希算法,即将接收到的数据报文的源端口号与上链聚合端口号进行取模运算后得到一个哈希值,根据该哈希值把数据报文发往不同的上链端口。第三种是将接收到的所有报文平均分配到所有上链端口上。上述三种流量均衡的方法都均存在一定的问题,第一种和第二种方法在数据报文都是同一类型或者同一源端口发送的数据报文时,会将所有的数据报文都发往同一个上链端口,导致该上链端口的拥塞,从而丢包。而第三种方法会将同一类型的数据报文随机分配给各个上链端口,很可能导致乱序现象的发生。
发明内容
为了有效降低丢包现象和乱序现象的发生,本发明的第一个方面是提供一种上链聚合端口的流量均衡方法,包括将第一数据报文切割成N个分片,所述分片中至少携带如下信息第一数据报文的目的线卡上交换芯片的标识、第一数据报文标识、分片标识以及N,其中,N为大于等于1 的正整数;将N个分片依次发送给组成上链聚合端口的各上链端口,以使每个上链端口根据所述第一数据报文的目的线卡上交换芯片的标识将分片转发给相应的目的线卡,所述第一数据报文标识、所述分片标识以及N用于所述目的线卡将携带所述第一数据报文标识的N 个分片组成第一数据报文,根据所述分片标识排列N个分片组成第一数据报文的顺序。本发明的另一个方面是提供一种上链聚合端口的流量均衡装置,包括切割模块,用于将第一数据报文切割成N个分片,所述分片中至少携带如下信息 第一数据报文的目的线卡上交换芯片的标识、第一数据报文标识、分片标识以及N,其中,N 为大于等于1的正整数;发送模块,用于将N个分片依次发送给组成上链聚合端口的各上链端口,以使每个上链端口根据所述第一数据报文的目的线卡上交换芯片的标识将分片转发给相应的目的线卡,所述第一数据报文标识、所述分片标识以及N用于所述目的线卡将携带所述第一数据报文标识的N个分片组成第一数据报文,根据所述分片标识排列N个分片组成第一数据报文的顺序。本发明的又一个方面是提供了一种上链聚合端口的流量均衡设备,该设备中包括如上所述的装置。本发明的技术效果是将数据报文切割成分片后,依次分配给各个上链端口,达到精细流量均衡的效果,并避免巨型帧带来的影响,如丢包等问题。根据报文标识、分片标识以及分片个数对数据报文进行重组,对于乱序的调整不影响报文的处理,有效避免了乱序现象的发生。
图1为本发明实施例一提供的上链聚合端口的流量均衡方法流程图;图2为本发明实施例二提供的上链聚合端口的流量均衡方法流程图;图3为本发明实施例三提供的上链聚合端口的流量均衡方法流程图;图4为本发明实施例四提供的接收端对分片报文进行重组的方法流程图;图5为本发明实施例五提供的上链聚合端口的流量均衡装置结构示意图;图6为本发明实施例六提供的上链聚合端口的流量均衡设备结构示意图。
具体实施例方式图1为本发明实施例一提供的上链聚合端口的流量均衡方法流程图,如图1所示, 该方法包括步骤101、将第一数据报文切割成N个分片,每个分片中至少携带如下信息第一数据报文的目的线卡上交换芯片的标识、第一数据报文标识、分片标识以及N,其中,N为大于等于1的正整数。其中,一般情况下,一个交换芯片对应一个MOD-ID值(即目的线卡上交换芯片的标识)。对于模块化交换机,每个板卡的交换芯片都会分配一个MOD-ID值,用来跨卡转发时区分和识别交换芯片。第一数据报文是任意数据报文的代指,不用以限制本发明的保护范围。步骤102、将N个分片依次发送给组成上链聚合端口的各上链端口,以使每个上链端口根据第一数据报文的目的线卡上交换芯片的标识将分片转发给相应的目的线卡,以使目的线卡根据第一数据报文标识、分片标识以及N将携带第一数据报文标识的N个分片按照分片标识的顺序组成第一数据报文。本发明实施例提供的上链聚合端口的流量均衡方法,将数据报文切割成分片后, 依次分配给各个上链端口,达到精细流量均衡的效果,并避免巨型帧带来的影响,如丢包等问题。根据报文标识、分片标识以及分片个数对数据报文进行重组,对于乱序的调整不影响报文的处理,有效避免了乱序现象的发生。在上述实施方式的基础上,图2为本发明实施例二提供的上链聚合端口的流量均衡方法流程图,如图2所示,在步骤101之前,该方法还可以包括步骤100、接收第一数据报文,从该数据报文中获得第一数据报文的目的MOD-ID值。其中,上述方法的执行主体可以是计算机中的软件,也可以是线程可编程门阵列 (Field Programmable Gate Array,简称为FPGA)。使用FPGA的好处在于硬件的运算速度非常快,有效提高数据报文的转发速度。在FPGA中可以包括一个输入口缓存,用于缓存输入端口的数据报文。还可以包括一个数据报文的输入处理和地址解析模块(又称为输入口 hgress&ARL模块),该模块主要是对FPGA接收到的数据报文进行拆分处理、地址学习等操作。对于数据报文进行拆分处理后,可以获得数据报文的目的MAC地址。根据数据报文获得目的MAC地址可以通过已知的技术实现,此处不做赘述。该模块还用来存放交换芯片地址学习的结果。其中包括目的MAC地址和目的MOD-ID的对应关系。可以使用该模块,根据目的MAC地址,在目的MAC地址和目的MOD-ID的对应关系中获得数据报文的MOD-ID值。在上述实施方式的基础上,图3为本发明实施例三提供的上链聚合端口的流量均衡方法流程图,如图3所示,步骤100之后可以包括步骤100a、将第一数据报文存入先入先出(First In First Out,简称为FIF0)缓存。其中,FPGA中还可以包括一个入口 FIFO,一方面可以对接收到的数据包进行缓存,另一方面对接收到的数据包进行排队处理,以保证先到达的数据包线得到处理,为了后面的数据包的顺序发出做准备。相应的,基于步骤100a,步骤101变化为步骤101a、从FIFO缓存中取出第一数据报文后,将该第一数据报文切割成N个分片。其中,FPGA中还可以包括一个报文编号&分片处理模块,该模块用于对从FIFO缓存中取出的每个报文,基于其目的M0D-ID,进行分类,将相同MOD-ID的报文分为一类。并在分类的同时或分类之后根据报文的先后顺序对报文进行编号,即为I^cket-Num,又称为数据报文标识。即发往同一个目的线卡的报文,分为一类,并按照进入该模块的时间顺序独立进行编号。例如,线卡2的MOD-ID为2,则将需要转发到线卡2的报文,按照到达的时间顺序,I^acket-Num分别为1、2、3、...,或者A、B、C...等等形式,同样的,线卡3的MOD-ID为 3,则将需要转发给线卡3的报文,按照到达的时间顺序,Packet-Num分别为1、2、3、...,或者A、B、C...等等形式。编号完成之后,该模块对报文进行切割、分片处理。例如将报文切割成1 字节的等长分片,每个报文的分片个数为N。当然也可以不等长分片,此处不做限定,优选为等长分CN
片。每个分片按照其组成报文的顺序先后有一个编号,即为分片标识(Slice-Num)。每个分片需要增加一个头部信息,头部信息中至少携带M0D-ID、Packet-Num, Slice-Num以及N, 以便于后续对分片报文的调度和接收端的重组。一个分片报文可以但不限于如表1所示的形式及内容表 权利要求
1.一种上链聚合端口的流量均衡方法,其特征在于,包括将第一数据报文切割成N个分片,所述分片中至少携带如下信息第一数据报文的目的线卡上交换芯片的标识、第一数据报文标识、分片标识以及N,其中,N为大于等于1的正整数;将N个分片依次发送给组成上链聚合端口的各上链端口,以使每个上链端口根据所述第一数据报文的目的线卡上交换芯片的标识将分片转发给相应的目的线卡,以使所述目的线卡根据所述第一数据报文标识、所述分片标识以及N将携带所述第一数据报文标识的N 个分片按照所述分片标识的顺序组成第一数据报文。
2.根据权利要求1所述的方法,其特征在于,所述接收第一数据报文之后,所述方法还包括将所述第一数据报文存入先入先出缓存;相应的,将第一数据报文切割成N个分片包括从所述先入先出缓存中取出所述第一数据报文后,将所述第一数据报文切割成N个分片。
3.根据权利要求1所述的方法,其特征在于,所述将N个分片依次发送给组成上链聚合端口的各上链端口包括将N个分片依次发送给组成上链聚合端口的各上链端口的先入先出缓存,以使所述每个上链端口从各自的先入先出缓存中获得分片,并根据所述第一数据报文的目的线卡上交换芯片的标识将分片转发给相应的目的线卡。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括目的线卡接收到分片,根据所述分片中携带的第一数据报文标识将所述分片放入该第一数据报文标识对应的缓存中;如果第一数据报文标识对应的缓存中的分片个数达到N,则按照分片标识的顺序组成第一数据报文。
5.根据权利要求1所述的方法,其特征在于,所述N个分片的大小相等。
6.一种上链聚合端口的流量均衡装置,其特征在于,包括切割模块,用于将第一数据报文切割成N个分片,所述分片中至少携带如下信息第一数据报文的目的线卡上交换芯片的标识、第一数据报文标识、分片标识以及N,其中,N为大于等于1的正整数;发送模块,用于将N个分片依次发送给组成上链聚合端口的各上链端口,以使每个上链端口根据所述第一数据报文的目的线卡上交换芯片的标识将分片转发给相应的目的线卡,以使所述目的线卡根据所述第一数据报文标识、所述分片标识以及N将携带所述第一数据报文标识的N个分片按照所述分片标识的顺序组成第一数据报文。
7.根据权利要求6所述的装置,其特征在于,还包括第一FIFO缓存,用于对接收模块接收到的所述第一数据报文进行缓存;相应的所述切割模块用于从所述第一 FIFO缓存中取出所述第一数据报文后,将所述第一数据报文切割成N个分片。
8.根据权利要求6所述的装置,其特征在于,所述发送模块用于将N个分片依次发送给组成上链聚合端口的各上链端口的先入先出缓存,以使所述每个上链端口从各自的先入先出缓存中获得分片,并根据所述第一数据报文的目的线卡上交换芯片的标识将分片转发给相应的目的线卡。
9.根据权利要求6至8中任一项所述的装置,其特征在于,还包括重组模块,用于目的线卡接收到分片,根据所述分片中携带的第一数据报文标识将所述分片放入该第一数据报文标识对应的缓存中;如果第一数据报文标识对应的缓存中的分片个数达到N,则按照分片标识的顺序组成第一数据报文。
10.根据权利要求6所述的装置,其特征在于,所述切割模块用于将第一数据报文切割成N个大小相等的分片。
11.根据权利要求6所述的装置,其特征在于,所述装置为现场可编程门阵列FPGA。
12.—种上链聚合端口的流量均衡设备,其特征在于,所述设备包含如权利要求6至11 中任一项所述的装置。
全文摘要
本发明提供一种上链聚合端口的流量均衡方法、装置及设备。方法包括将第一数据报文切割成N个分片,所述分片中至少携带如下信息第一数据报文的目的线卡上交换芯片的标识、第一数据报文标识、分片标识以及N,其中,N为大于等于1的正整数;将N个分片依次发送给组成上链聚合端口的各上链端口,以使每个上链端口根据所述第一数据报文的目的线卡上交换芯片的标识将分片转发给相应的目的线卡,以使所述目的线卡根据所述第一数据报文标识、所述分片标识以及N将携带所述第一数据报文标识的N个分片按照所述分片标识的顺序组成第一数据报文。装置包括切割模块和发送模块。设备包括上述装置。
文档编号H04L12/56GK102546397SQ20111042299
公开日2012年7月4日 申请日期2011年12月16日 优先权日2011年12月16日
发明者张寿棋, 陈武 申请人:福建星网锐捷网络有限公司