专利名称:上链聚合端口的流量均衡方法、装置及设备的制作方法
技术领域:
本发明涉及流量均衡技术,尤其涉及一种上链聚合端口的流量均衡方法、装置及设备,属于网络技术领域。
背景技术:
模块化交换机是一种具有多个插槽的交换机。一般说来,这种结构的交换机的插槽数量不能低于2个。插槽槽位可以用来插入引擎板、线卡板和交换板。引擎板用于管理整台交换机,线卡板提供了不同的接口类型,用于网络接口的接入,交换板用于转发线卡板之间的数据报文。部分交换机将引擎板与交换板做在一起。线卡板与交换板之间可以通过上链聚合端口连接在一起。对于跨线卡板槽位的交换,需要通过交换板转发。由于上链聚合端口包括多个上链端口,在线卡板到交换板的数据转发的过程中,具体走哪个上链端口便成为一个问题。如果数据报文在上链端口上分配不当,会导致如下两种情况的发生一种是数据流量不均衡,发生丢包。由于线卡前面板端口的端口带宽综合大于等于单个上链端口的端口带宽,因此,如果每个前面板端口都走同一个上链端口的话,必定会导致该上链端口拥塞,从而丢包。另一种是发生帧乱序。如果同一个类型的数据报文被分配到不同的上链端口,就意味着不同的路径,如果不同路径的延迟无法控制的话,就可能会导致帧乱序的产生。现有技术上链聚合端口的流量均衡方法可以分为三种第一种是基于数据报文内容的哈希算法,即在接收到数据报文之后,对数据报文进行拆分,提取里面的数据信息,如 IP信息、MAC地址信息、MPLS信息等等,然后将提取到的数据信息做运算,得到一个哈希值, 根据该哈希值把数据报文发往不同的上链端口。第二种是基于源端口号的哈希算法,即将接收到的数据报文的源端口号与上链聚合端口号进行取模运算后得到一个哈希值,根据该哈希值把数据报文发往不同的上链端口。第三种是将接收到的所有报文平均分配到所有上链端口上。上述三种流量均衡的方法都均在一定的问题,第一种和第二种方法在数据报文都是同一类型或者同一源端口发送的数据报文时,会将所有的数据报文都发往同一个上链端口,导致该上链端口的拥塞,从而丢包。而第三种方法会将同一类型的数据报文随机分配给各个上链端口,很可能导致乱序现象的发生。
发明内容
为了有效降低丢包现象和乱序现象的发生,本发明的第一个方面是提供一种上链聚合端口的流量均衡方法,包括根据数据报文的目的线卡上交换芯片的标识,为所述数据报文分配上链端口号;判断所述上链端口号对应的上链端口的流量计数是否小于所述上链端口的端口带宽;如果是,将所述数据报文发往该上链端口 ;
如果否,将所述数据报文发往第一上链端口,所述第一上链端口为组成上链聚合端口的全部上链端口中缓存堆积小于预设值的端口。本发明的另一个方面是提供一种上链聚合端口的流量均衡装置,包括分配模块,用于根据数据报文的目的线卡上交换芯片的标识,为所述数据报文分配上链端口号;判断模块,用于判断所述上链端口号对应的上链端口的流量计数是否小于所述上链端口的端口带宽;均衡模块,用于如果所述判断模块的判断结果为是,将所述数据报文发往该上链端口 ;如果所述判断模块的判断结果为否,将所述数据报文发往第一上链端口,所述第一上链端口为组成上链聚合端口的全部上链端口中缓存堆积小于预设值的端口。本发明的又一个方面是提供了一种上链聚合端口的流量均衡设备,该设备中包括如上所述的装置。本发明的技术效果是当同一类型的数据流量小于上链端口的带宽时,将该类型的数据都发往同一个上链端口,可以有效避免拥塞和乱序现象的产生;当同一类型的数据流量大于等于上链端口的带宽时,由于缓存小的端口延迟也短,所以将该类型的数据发往上链端口中缓存堆积小于预设值的端口,有效避免拥塞的同时,将乱序现象控制在最小的范围之内。
图1为本发明实施例一提供的上链聚合端口的流量均衡方法流程图;图2为本发明实施例二提供的上链聚合端口的流量均衡方法流程图;图3为本发明实施例三提供的上链聚合端口的流量均衡方法流程图;图4为本发明实施例四提供的上链聚合端口的流量均衡方法流程图;图5为本发明实施例五提供的上链聚合端口的流量均衡装置结构示意图;图6为本发明实施例六提供的上链聚合端口的流量均衡设备结构示意图。
具体实施例方式图1为本发明实施例一提供的上链聚合端口的流量均衡方法流程图,如图1所示, 该方法包括步骤101、根据数据报文的目的线卡上交换芯片的标识,为数据报文分配上链端口号。其中,一般情况下,一个交换芯片对应一个MOD-ID值(即目的线卡上交换芯片的标识)。对于模块化交换机,每个板卡的交换芯片都会分配一个MOD-ID值,用来跨卡转发时区分和识别交换芯片。这里使用MOD-ID值作为分配上链端口的依据好处在于相同MODID 的报文都是发往同一块线卡的,也就是目的地是一样的;这在转发过程中有利于同样目的地的报文走同一条路径,减少乱序的产生。而若采用数据内容或者源端口号分配上链端口, 则达不到这个效果。步骤103、判断该上链端口号对应的上链端口的流量计数是否小于该上链端口的端□带宽;
如果是,执行步骤105;如果否,执行步骤107。步骤105、将数据报文发往该上链端口。步骤107、将数据报文发送第一上链端口,该第一上链端口为组成上链聚合端口的全部上链端口中缓存堆积小于预设值的端口。优选的,第一上链端口为符合条件的端口中缓存堆积最小的端口。预设值可以根据经验或者实际情况设定。本发明实施例提供的上链聚合端口的流量均衡方法,当同一类型的数据流量小于上链端口的带宽时,将该类型的数据都发往同一个上链端口,可以有效避免拥塞和乱序现象的产生;当同一类型的数据流量大于等于上链端口的带宽时,由于缓存小的端口延迟也短,所以将该类型的数据发往上链端口中缓存堆积小于预设值的端口,有效避免拥塞的同时,将乱序现象控制在最小的范围之内。在上述实施方式的基础上,图2为本发明实施例二提供的上链聚合端口的流量均衡方法流程图,如图2所示,在步骤101之前,该方法还可以包括步骤100、接收数据报文,从该数据报文中获得数据报文的目的MAC地址。根据数据报文的目的MAC地址,在目的MAC地址与目的MOD-ID值的对应关系中,获得数据报文的目的MOD-ID值。其中,上述方法的执行主体可以是计算机中的软件,也可以是线程可编程门阵列 (Field Programmable Gate Array,简称为FPGA)。使用FPGA的好处在于硬件的运算速度非常快,有效提高数据报文的转发速度。在FPGA中可以包括一个输入口缓存,用于缓存输入端口的数据报文。还可以包括一个数据报文的输入处理模块(又称为输入口 hgress 模块),该模块主要是对FPGA接收到的数据报文进行拆分处理、地址学习等操作。对于数据报文进行拆分处理后,可以获得数据报文的目的MAC地址。根据数据报文获得目的MAC地址可以通过已知的技术实现,此处不做赘述。在FPGA中还可以包括一个地址解析模块,该模块主要是用来存放交换芯片地址学习的结果。其中包括目的MAC地址和目的MOD-ID的对应关系。可以使用该模块,根据目的MAC地址,在目的MAC地址和目的MOD-ID的对应关系中获得数据报文的MOD-ID值。在上述实施方式的基础上,图3为本发明实施例三提供的上链聚合端口的流量均衡方法流程图,如图3所示,步骤101可以包括步骤101a、将数据报文的目的MOD-ID与全部上链端口的数目做求余运算,得到相应的上链端口号,分配给数据报文。其中,FPGA中还可以包括一个转发判定模块,用于判定端口接收到的数据报文需要转发的上链端口。以上链端口数为4为例进行本步骤的说明。则MOD-ID与上链端口号之间的对应关系可以但不限于如表1所示表 1
MOD-ID目的上链端口号4N0
权利要求
1.一种上链聚合端口的流量均衡方法,其特征在于,包括根据数据报文的目的线卡上交换芯片的标识,为所述数据报文分配上链端口号;判断所述上链端口号对应的上链端口的流量计数是否小于所述上链端口的端口带宽;如果是,将所述数据报文发往该上链端口 ;如果否,将所述数据报文发往第一上链端口,所述第一上链端口为组成上链聚合端口的全部上链端口中缓存堆积小于预设值的端口。
2.根据权利要求1所述的方法,其特征在于,所述根据数据报文的目的线卡上交换芯片的标识,为所述数据报文分配上链端口号之前,所述方法还包括接收数据报文,从所述数据报文中获得所述数据报文的目的介质接入控制地址;根据所述数据报文的目的介质接入控制地址,在目的介质接入控制地址与目的线卡上交换芯片的标识的对应关系中,获得所述数据报文的目的线卡上交换芯片的标识。
3.根据权利要求1或2所述的方法,其特征在于,所述根据数据报文的目的线卡上交换芯片的标识,为所述数据报文分配上链端口号的过程包括将所述数据报文的目的线卡上交换芯片的标识与全部上链端口的数目做求余运算,得到相应的上链端口号,分配给所述数据报文。
4.根据权利要求1或2所述的方法,其特征在于,所述判断所述上链端口号对应的上链端口的流量计数是否小于所述上链端口的端口带宽之前,所述方法还包括获得所述上链端口号对应的上链端口的流量计数和端口带宽,所述流量计数为预设时间内所述上链端口对应的数据流量。
5.一种上链聚合端口的流量均衡装置,其特征在于,包括分配模块,用于根据数据报文的目的线卡上交换芯片的标识,为所述数据报文分配上链端口号;判断模块,用于判断所述上链端口号对应的上链端口的流量计数是否小于所述上链端口的端口带宽;均衡模块,用于如果所述判断模块的判断结果为是,将所述数据报文发往该上链端口 ; 如果所述判断模块的判断结果为否,将所述数据报文发往第一上链端口,所述第一上链端口为组成上链聚合端口的全部上链端口中缓存堆积小于预设值的端口。
6.根据权利要求5所述的装置,其特征在于,还包括接收模块,用于接收数据报文,从所述数据报文中获得所述数据报文的目的介质接入控制地址;标识获得模块,用于根据所述数据报文的目的介质接入控制地址,在目的介质接入控制地址与目的线卡上交换芯片的标识的对应关系中,获得所述数据报文的目的线卡上交换芯片的标识。
7.根据权利要求5或6所述的装置,其特征在于,所述分配模块包括分配单元,用于将所述数据报文的目的线卡上交换芯片的标识与全部上链端口的数目做求余运算,得到相应的上链端口号,分配给所述数据报文。
8.根据权利要求5或6所述的装置,其特征在于,还包括数据获得模块,用于获得所述上链端口号对应的上链端口的流量计数和端口带宽,所述流量计数为预设时间内所述上链端口对应的数据流量;相应的,所述判断模块用于根据所述数据获得模块获得的数据进行判断。
9.根据权利要求5所述的装置,其特征在于,所述装置为现场可编程门阵列FPGA。
10.一种上链聚合端口的流量均衡设备,其特征在于,所述设备包含如权利要求5至9 中任一项所述的装置。
全文摘要
本发明提供一种上链聚合端口的流量均衡方法、装置及设备。方法包括根据数据报文的目的线卡上交换芯片的标识,为所述数据报文分配上链端口号;判断所述上链端口号对应的上链端口的流量计数是否小于所述上链端口的端口带宽;如果是,将所述数据报文发往该上链端口;如果否,将所述数据报文发往第一上链端口,所述第一上链端口为组成上链聚合端口的全部上链端口中缓存堆积小于预设值的端口。装置包括分配模块、判断模块和均衡模块。设备包括上述装置。本发明实施例提供的技术方案,可以有效避免拥塞的产生,并将乱序现象控制在最小的范围之内。
文档编号H04L12/56GK102437956SQ201110422910
公开日2012年5月2日 申请日期2011年12月16日 优先权日2011年12月16日
发明者张寿棋, 彭少宁 申请人:福建星网锐捷网络有限公司