《流量负载分担的方法及设备.pdf》由会员分享,可在线阅读,更多相关《流量负载分担的方法及设备.pdf(25页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102904826 A (43)申请公布日 2013.01.30 C N 1 0 2 9 0 4 8 2 6 A *CN102904826A* (21)申请号 201210367400.7 (22)申请日 2012.09.28 H04L 12/803(2013.01) H04L 12/819(2013.01) (71)申请人华为技术有限公司 地址 518129 广东省深圳市龙岗区坂田华为 总部办公楼 (72)发明人陈刚 (74)专利代理机构北京龙双利达知识产权代理 有限公司 11329 代理人王君 肖鹂 (54) 发明名称 流量负载分担的方法及设备 (57) 摘要 本。
2、发明实施例提供一种流量负载分担的方法 及设备。该方法包括:根据M个出接口的信息获 取所述M个出接口相应的当前的令牌值,所述当 前的令牌值由前一次的令牌值确定的,M为正整 数;根据所述当前的令牌值确定筛选次数和所述 M个出接口中各个出接口的筛选因子;根据所述 筛选因子和所述筛选次数从所述M个出接口中确 定数据流转发的出接口。由于出接口的当前的令 牌值与流量相关,因此根据当前的令牌值确定筛 选因子和筛选次数,通过筛选因子和筛选次数可 以将当前流量相对较大的出接口屏蔽掉,将当前 流量相对较小或当前还没有流量的出接口选为数 据流转发的出接口,从而实现各个出接口的流量 负载分担均衡,降低丢包率,提高数据。
3、流转发的可 靠性。 (51)Int.Cl. 权利要求书4页 说明书18页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 4 页 说明书 18 页 附图 2 页 1/4页 2 1.一种流量负载分担的方法,其特征在于,包括: 根据M个出接口的信息获取所述M个出接口相应的当前的令牌值,所述当前的令牌值 由前一次的令牌值确定的,M为正整数; 根据所述当前的令牌值确定筛选次数和所述M个出接口中各个出接口的筛选因子; 根据所述筛选因子和所述筛选次数从所述M个出接口中确定数据流转发的出接口。 2.如权利要求1所述的方法,其特征在于,在所述根据M个出接口的信息获取所述M个 。
4、出接口相应的当前的令牌值之前,所述方法还包括: 根据转发信息表FIB获取所述M个出接口的信息。 3.如权利要求1或2所述的方法,其特征在于,所述当前的令牌值由前一次的令牌值确 定的,包括: 所述当前的令牌值由前一次的令牌值和所述令牌更新因子确定的,所述令牌更新因子 包括至少下列之一:前一次的出接口转发的数据长度,出接口类型、出接口带宽、出接口链 路质量和出接口资源占用率。 4.如权利要求3所述的方法,其特征在于,所述当前的令牌值由前一次的令牌值和所 述令牌更新因子确定的,包括: 所述当前的令牌值由前一次的令牌值、前一次的出接口转发的数据长度,以及出接口 带宽权重因子确定的。 5.如权利要求4所。
5、述的方法,其特征在于,所述当前的令牌值由前一次的令牌值、前一 次的出接口转发的数据长度,以及出接口带宽权重因子确定的,包括: 如果前一次在所述M个出接口中的第K个出接口转发的数据长度为TokenF,则: TokenC1 i =TokenC2 i +TokenF*Portw i ,(iK) TokenC1 i =TokenC2 i -TokenF*Portw i ,(i=K) 其中,TokenC1 i 为第i个出接口的当前的令牌值,TokenC2 i 为第i个出接口的前一次 的令牌值,Portw i 为第i个出接口的带宽权重因子;i为正整数且取值从1到M。 6.如权利要求1-5任一项所述的方法,。
6、其特征在于,初始令牌值由出接口参数确定的, 所述出接口参数包括至少下列之一:出接口类型、出接口带宽和出接口链路质量。 7.如权利要求1-6任一项所述的方法,其特征在于,所述根据所述当前的令牌值确定 筛选次数和所述M个出接口中各个出接口的筛选因子,包括: 根据所述当前的令牌值和误差允许因子确定筛选次数和所述M个出接口中各个出接 口的筛选因子,所述误差因子用于指示所述M个出接口中各个出接口当前的流量负载的均 衡情况。 8.如权利要求7所述的方法,其特征在于,所述根据所述当前的令牌值和误差允许因 子确定筛选次数和所述M个出接口中各个出接口的筛选因子,包括: 其中,TokenC1 i 为第i个出接口的。
7、当前的令牌值,FilterG i 为第i个出接口的筛选因 权 利 要 求 书CN 102904826 A 2/4页 3 子,ErrorV为所述误差允许因子;i为正整数且取值从1到M,为向下取整运算符; 所述筛选次数为所述M个出接口中筛选因子大于0的出接口数目。 9.如权利要求1-8任一项所述的方法,根据所述筛选因子和所述筛选次数确定数据流 转发的出接口,包括: 根据所述筛选因子、所述筛选次数以及由Hash算法得到的第一Hash结果确定数据流 转发的出接口。 10.如权利要求9所述的方法,其特征在于,所述根据所述筛选因子、所述筛选次数以 及由Hash算法得到的第一Hash结果确定数据流转发的出接。
8、口,包括: 根据所述筛选次数判断所述M个出接口中是否存在需要屏蔽的出接口,所述需要屏蔽 的出接口的当前流量负载大于流量阈值; 如果所述M个出接口中不存在需要屏蔽的出接口,则确定所述第一Hash结果为所述数 据流转发的出接口; 如果所述M个出接口中存在需要屏蔽的出接口,则根据所述筛选因子确定所述数据流 转发的出接口,以使所述数据流转发的出接口为不需要屏蔽的出接口。 11.如权利要求10所述的方法,其特征在于,所述如果所述M个出接口中不存在需要屏 蔽的出接口,则确定所述第一Hash结果为所述数据流转发的出接口,包括: 如果所述筛选次数等于M或者所述筛选次数等于0,则确定所述第一Hash结果为所述 。
9、数据流转发的出接口; 所述如果所述M个出接口中存在需要屏蔽的出接口,则根据所述筛选因子确定所述数 据流转发的出接口,以使所述数据流转发的出接口为不需要屏蔽的出接口,包括: 如果所述筛选次数小于M且大于0,则执行下列步骤: 步骤a:设置第二Hash结果且所述第二Hash结果的初始值为0,设置初始正整数k1且 值为1,如果所述第一Hash结果大于所述筛选次数,则将所述第一Hash结果除以所述筛选 次数得到的余数设置为第一Hash结果; 步骤b:比较所述第二Hash结果与所述第一Hash结果; 如果所述第二Hash结果小于所述第一Hash结果,则进入步骤c; 如果所述第二Hash结果大于或等于所述第。
10、一Hash结果,则进入步骤d; 步骤c:将所述第二Hash结果加上第k1个出接口的筛选因子获得第三Hash结果,设 置所述第二Hash结果等于所述第三Hash结果,且将k1加上1获得k2,设置所述k1等于所 述k2;进入步骤b; 步骤d:将所述k2减去1获得k3,将第k3个出接口确定为数据流转发的出接口。 12.如权利要求1-11任一项所述的方法,其特征在于,所述方法还包括: 根据所述数据流转发的出接口对流信息表进行更新,所述流信息表用于指示所述数据 流与所述数据流转发的出接口的映射关系。 13.如权利要求1-12任一项所述的方法,其特征在于,所述根据所述M个出接口的信息 获取所述M个出接口相。
11、应的当前的令牌值,包括: 根据所述M个出接口的出接口号与令牌桶索引的映射关系获取令牌桶索引; 根据所述令牌桶索引在相应的令牌桶中获取所述M个出接口相应的当前的令牌值。 14.一种流量负载分担的设备,其特征在于,包括: 权 利 要 求 书CN 102904826 A 3/4页 4 获取单元,用于根据M个出接口的信息获取所述M个出接口相应的当前的令牌值,所述 当前的令牌值由前一次的令牌值确定的,M为正整数; 确定单元,用于根据所述获取单元获取的所述当前的令牌值确定筛选次数和所述M个 出接口中各个出接口的筛选因子;还用于根据所述筛选因子和所述筛选次数从所述M个出 接口中确定数据流转发的出接口。 15。
12、.如权利要求14所述的设备,其特征在于,所述获取单元还用于: 根据转发信息表FIB获取所述M个出接口的信息。 16.如权利要求14或15所述的设备,其特征在于,所述当前的令牌值由前一次的令牌 值和所述令牌更新因子确定的,所述令牌更新因子包括至少下列之一:前一次的出接口转 发的数据长度,出接口类型、出接口带宽、出接口链路质量和出接口资源占用率。 17.如权利要求16所述的设备,其特征在于,所述当前的令牌值由前一次的令牌值和 所述令牌更新因子确定的,包括:所述当前的令牌值由前一次的令牌值、前一次的出接口转 发的数据长度,以及出接口带宽权重因子确定的。 18.如权利要求17所述的设备,其特征在于,所。
13、述当前的令牌值由前一次的令牌值、前 一次的出接口转发的数据长度,以及出接口带宽权重因子确定的,包括: 如果前一次在所述M个出接口中的第K个出接口转发的数据长度为TokenF,则: TokenC1 i =TokenC2 i +TokenF*Portw i ,(iK) TokenC1 i =TokenC2 i -TokenF*Portw i ,(i=K) 其中,TokenC1 i 为第i个出接口的当前的令牌值,TokenC2 i 为第i个出接口的前一次 的令牌值,Portw i 为第i个出接口的带宽权重因子;i为正整数且取值从1到M。 19.如权利要求14-18任一项所述的设备,其特征在于,初始令。
14、牌值由出接口参数确定 的,所述出接口参数包括至少下列之一:出接口类型、出接口带宽和出接口链路质量。 20.如权利要求14-19任一项所述的设备,其特征在于,所述确定单元具体用于: 根据所述当前的令牌值和误差允许因子确定筛选次数和所述M个出接口中各个出接 口的筛选因子,所述误差因子用于指示所述M个出接口中各个出接口当前的流量负载的均 衡情况。 21.如权利要求20所述的设备,其特征在于,所述确定单元还具体用于: 确定FilterG i , 其中,TokenC1 i 为第i个出接口的当前的令牌值,FilterG i 为第i个出接口的筛选因 子,ErrorV为所述误差允许因子;i为正整数且取值从1到。
15、M,为向下取整运算符; 确定所述筛选次数,所述筛选次数为所述M个出接口中筛选因子大于0的出接口数目。 22.如权利要求14-21任一项所述的设备,所述确定单元具体用于: 根据所述筛选因子、所述筛选次数以及由Hash算法得到的第一Hash结果确定数据流 权 利 要 求 书CN 102904826 A 4/4页 5 转发的出接口。 23.如权利要求22所述的设备,其特征在于,所述确定单元具体用于: 根据所述筛选次数判断所述M个出接口中是否存在需要屏蔽的出接口,所述需要屏蔽 的出接口的当前流量负载大于流量阈值; 如果所述M个出接口中不存在需要屏蔽的出接口,则确定所述第一Hash结果为所述数 据流转发。
16、的出接口; 如果所述M个出接口中存在需要屏蔽的出接口,则根据所述筛选因子确定所述数据流 转发的出接口,以使所述数据流转发的出接口为不需要屏蔽的出接口。 24.如权利要求23所述的设备,其特征在于,所述确定单元具体用于: 如果所述筛选次数等于M或者所述筛选次数等于0,则确定所述第一Hash结果为所述 数据流转发的出接口; 如果所述筛选次数小于M且大于0,则执行下列步骤: 步骤a:设置第二Hash结果且所述第二Hash结果的初始值为0,设置初始正整数k1且 值为1,如果所述第一Hash结果大于所述筛选次数,则将所述第一Hash结果除以所述筛选 次数得到的余数设置为第一Hash结果; 步骤b:比较所。
17、述第二Hash结果与所述第一Hash结果; 如果所述第二Hash结果小于所述第一Hash结果,则进入步骤c; 如果所述第二Hash结果大于或等于所述第一Hash结果,则进入步骤d; 步骤c:将所述第二Hash结果加上第k1个出接口的筛选因子获得第三Hash结果,设 置所述第二Hash结果等于所述第三Hash结果,且将k1加上1获得k2,设置所述k1等于所 述k2;进入步骤b; 步骤d:将所述k2减去1获得k3,将第k3个出接口确定为数据流转发的出接口。 25.如权利要求14-24任一项所述的设备,其特征在于,所述设备还包括: 更新单元,用于根据所述数据流转发的出接口对流信息表进行更新,所述流信。
18、息表用 于指示所述数据流与所述数据流转发的出接口的映射关系。 26.如权利要求14-25任一项所述的设备,其特征在于,所述获取单元具体用于: 根据所述M个出接口的出接口号与令牌桶索引的映射关系获取令牌桶索引; 根据所述令牌桶索引在相应的令牌桶中获取所述M个出接口相应的当前的令牌值。 权 利 要 求 书CN 102904826 A 1/18页 6 流量负载分担的方法及设备 技术领域 0001 本发明实施例涉及通信技术领域,并且更具体地,涉及流量负载分担的方法及设 备。 背景技术 0002 路由负载分担是一种提高网络可靠性和稳定性的有效手段。常用的负载分担方法 有Hash算法、逐包负载分担和Min。
19、Miss算法等。 0003 其中,Hash算法通过分析SIP(Source Internet Protocol Address,源因特网 协议地址)、DIP(Destination Internet Protocol Address,目的因特网协议地址)、SMAC (Source Media Access Control Address,源媒体接入控制地址)和DMAC(Destination Media Access Control Address,目的媒体接入控制地址)等Hash因子来选择路由。由于 受到Hash因子的散列局限,会导致流量负担不均衡。例如,有4个出接口和10条数据流需 要转发。
20、且每条数据流初始带宽为1M,通过Hash算法得到的Hash结果可能是10条数据流中 有5条数据流从第一个出接口转发,3条数据流从第二个出接口转发,2条数据从第三个出 接口转发。这样,4个出接口的带宽使用分别是5M、3M、2M和0,因此,流量负担不均衡。当 流量负担不均衡而导致某条链路流量拥塞时,甚至会出现丢包的问题。 0004 目前,在Hash算法上作了部分改进,设置M个虚拟Hash桶,M远大于负载分担的 出接口数N。先通过Hash算法将数据流分配给M个虚拟Hash桶,再根据M个虚拟Hash桶 与N个出接口的映射关系选择出接口,而且可以结合出接口的流量负载情况动态调整该映 射关系。这样,数据流。
21、从虚拟Hash桶映射到出接口时,选择未被使用的出接口或者流量负 载较小的出接口,从而实现流量负载均衡。但是,在经Hash算法得到的结果不散列的情况 下,仍然存在流量负载分担不均衡。 发明内容 0005 本发明实施例提供一种流量负载分担的方法及设备,能够实现出接口的流量负载 分担均衡。 0006 第一方面,提供了一种流量负载分担的方法,该方法包括:根据M个出接口的信息 获取所述M个出接口相应的当前的令牌值,所述当前的令牌值由前一次的令牌值确定的,M 为正整数;根据所述当前的令牌值确定筛选次数和所述M个出接口中各个出接口的筛选因 子;根据所述筛选因子和所述筛选次数从所述M个出接口中确定数据流转发的。
22、出接口。 0007 结合第一方面,在第一种实现方式中,在所述根据M个出接口的信息获取所述M个 出接口相应的当前的令牌值之前,具体实现可以为: 0008 根据转发信息表FIB获取所述M个出接口的信息。 0009 结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式 中,所述当前的令牌值由前一次的令牌值确定的,具体实现可以为: 0010 所述当前的令牌值由前一次的令牌值和所述令牌更新因子确定的,所述令牌更新 说 明 书CN 102904826 A 2/18页 7 因子包括至少下列之一:前一次的出接口转发的数据长度,出接口类型、出接口带宽、出接 口链路质量和出接口资源占用率。 001。
23、1 根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述当前 的令牌值由前一次的令牌值和所述令牌更新因子确定的,具体实现可以为: 0012 所述当前的令牌值由前一次的令牌值、前一次的出接口转发的数据长度,以及出 接口带宽权重因子确定的。 0013 根据第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述当前 的令牌值由前一次的令牌值、前一次的出接口转发的数据长度,以及出接口带宽权重因子 确定的,具体实现可以为: 0014 如果前一次在所述M个出接口中的第K个出接口转发的数据长度为TokenF,则: 0015 TokenC1 i =TokenC2 i +TokenF*Po。
24、rtw i ,(iK) 0016 TokenC1 i =TokenC2 i -TokenF*Portw i ,(i=K) 0017 其中,TokenC1 i 为第i个出接口的当前的令牌值,TokenC2 i 为第i个出接口的前 一次的令牌值,Portw i 为第i个出接口的带宽权重因子;i为正整数且取值从1到M。 0018 结合第一方面或第一方面的第一种可能的实现方式至第四种可能的实现方式的 任一种方式,在第五种可能的实现方式中,具体实现可以为: 0019 初始令牌值由出接口参数确定的,所述出接口参数包括至少下列之一:出接口类 型、出接口带宽和出接口链路质量。 0020 结合第一方面或第一方面。
25、的第一种可能的实现方式至第五种可能的实现方式的 任一种方式,在第六种可能的实现方式中,所述根据所述当前的令牌值确定筛选次数和所 述M个出接口中各个出接口的筛选因子,具体实现可以为: 0021 根据所述当前的令牌值和误差允许因子确定筛选次数和所述M个出接口中各个 出接口的筛选因子,所述误差因子用于指示所述M个出接口中各个出接口当前的流量负载 的均衡情况。 0022 根据第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述根据 所述当前的令牌值和误差允许因子确定筛选次数和所述M个出接口中各个出接口的筛选 因子,具体实现可以为: 0023 0024 其中,TokenC1 i 为第i个出接口。
26、的当前的令牌值,FilterG i 为第i个出接口的筛 选因子,ErrorV为所述误差允许因子;i为正整数且取值从1到M,为向下取整运算符; 所述筛选次数为所述M个出接口中筛选因子大于0的出接口数目。 0025 结合第一方面或第一方面的第一种可能的实现方式至第七种可能的实现方式的 任一种方式,在第八种可能的实现方式中,根据所述筛选因子和所述筛选次数确定数据流 转发的出接口,具体实现可以为: 说 明 书CN 102904826 A 3/18页 8 0026 根据所述筛选因子、所述筛选次数以及由Hash算法得到的第一Hash结果确定数 据流转发的出接口。 0027 根据第一方面的第八种可能的实现方。
27、式,在第九种可能的实现方式中,所述根据 所述筛选因子、所述筛选次数以及由Hash算法得到的第一Hash结果确定数据流转发的出 接口,具体实现可以为: 0028 根据所述筛选次数判断所述M个出接口中是否存在需要屏蔽的出接口,所述需要 屏蔽的出接口的当前流量负载大于流量阈值;如果所述M个出接口中不存在需要屏蔽的出 接口,则确定所述第一Hash结果为所述数据流转发的出接口;如果所述M个出接口中存在 需要屏蔽的出接口,则根据所述筛选因子确定所述数据流转发的出接口,以使所述数据流 转发的出接口为不需要屏蔽的出接口。 0029 根据第一方面的第九种可能的实现方式,在第十种可能的实现方式中,所述如果 所述M。
28、个出接口中不存在需要屏蔽的出接口,则确定所述第一Hash结果为所述数据流转发 的出接口,具体实现可以为: 0030 如果所述筛选次数等于M或者所述筛选次数等于0,则确定所述第一Hash结果为 所述数据流转发的出接口; 0031 所述如果所述M个出接口中存在需要屏蔽的出接口,则根据所述筛选因子确定所 述数据流转发的出接口,以使所述数据流转发的出接口为不需要屏蔽的出接口,具体实现 可以为: 0032 如果所述筛选次数小于M且大于0,则执行下列步骤: 0033 步骤a:设置第二Hash结果且所述第二Hash结果的初始值为0,设置初始正整数 k1且值为1,如果所述第一Hash结果大于所述筛选次数,则将。
29、所述第一Hash结果除以所述 筛选次数得到的余数设置为第一Hash结果; 0034 步骤b:比较所述第二Hash结果与所述第一Hash结果; 0035 如果所述第二Hash结果小于所述第一Hash结果,则进入步骤c; 0036 如果所述第二Hash结果大于或等于所述第一Hash结果,则进入步骤d; 0037 步骤c:将所述第二Hash结果加上第k1个出接口的筛选因子获得第三Hash结果, 设置所述第二Hash结果等于所述第三Hash结果,且将k1加上1获得k2,设置所述k1等于 所述k2;进入步骤b; 0038 步骤d:将所述k2减去1获得k3,将第k3个出接口确定为数据流转发的出接口。 00。
30、39 结合第一方面或第一方面的第一种可能的实现方式至第十种可能的实现方式的 任一种方式,在第十一种可能的实现方式中,具体实现可以为: 0040 根据所述数据流转发的出接口对流信息表进行更新,所述流信息表用于指示所述 数据流与所述数据流转发的出接口的映射关系。 0041 结合第一方面或第一方面的第一种可能的实现方式至第十一种可能的实现方式 的任一种方式,在第十二种可能的实现方式中,所述根据所述M个出接口的信息获取所述M 个出接口相应的当前的令牌值,具体实现可以为: 0042 根据所述M个出接口的出接口号与令牌桶索引的映射关系获取令牌桶索引;根据 所述令牌桶索引在相应的令牌桶中获取所述M个出接口相。
31、应的当前的令牌值。 0043 第二方面,提供了一种流量负载分担的设备,该设备包括:获取单元,用于根据M 说 明 书CN 102904826 A 4/18页 9 个出接口的信息获取所述M个出接口相应的当前的令牌值,所述当前的令牌值由前一次的 令牌值确定的,M为正整数;确定单元,用于根据所述获取单元获取的所述当前的令牌值确 定筛选次数和所述M个出接口中各个出接口的筛选因子;还用于根据所述筛选因子和所述 筛选次数从所述M个出接口中确定数据流转发的出接口。 0044 结合第二方面或第一种可能的实现方式,在第二种可能的实现方式中,所述获取 单元还用于:根据转发信息表FIB获取所述M个出接口的信息。 00。
32、45 结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式 中,所述当前的令牌值由前一次的令牌值和所述令牌更新因子确定的,所述令牌更新因子 包括至少下列之一:前一次的出接口转发的数据长度,出接口类型、出接口带宽、出接口链 路质量和出接口资源占用率。 0046 根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述当前 的令牌值由前一次的令牌值、前一次的出接口转发的数据长度,以及出接口带宽权重因子 确定的。 0047 根据第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述当前 的令牌值由前一次的令牌值、前一次的出接口转发的数据长度,以及出接口带宽权重因子 。
33、确定的,包括: 0048 如果前一次在所述M个出接口中的第K个出接口转发的数据长度为TokenF,则: 0049 TokenC1 i =TokenC2 i +TokenF*Portw i ,(iK) 0050 TokenC1 i =TokenC2 i -TokenF*Portw i ,(i=K) 0051 其中,TokenC1 i 为第i个出接口的当前的令牌值,TokenC2 i 为第i个出接口的前 一次的令牌值,Portw i 为第i个出接口的带宽权重因子;i为正整数且取值从1到M。 0052 结合第二方面或第二方面的第一种可能的实现方式至第四种可能的实现方式任 一种方式,在第五种可能的实现。
34、方式中,初始令牌值由出接口参数确定的,所述出接口参数 包括至少下列之一:出接口类型、出接口带宽和出接口链路质量。 0053 结合第二方面或第二方面的第一种可能的实现方式至第五种可能的实现方式任 一种方式,在第六种可能的实现方式中,所述确定单元具体用于:根据所述当前的令牌值和 误差允许因子确定筛选次数和所述M个出接口中各个出接口的筛选因子,所述误差因子用 于指示所述M个出接口中各个出接口当前的流量负载的均衡情况。 0054 根据第二方面的第六种可能的实现方式,在第七种可能的实现方式中,所述确定 单元还具体用于: 0055 确定FilterG i , 0056 0057 其中,TokenC1 i 。
35、为第i个出接口的当前的令牌值,FilterG i 为第i个出接口的筛 选因子,ErrorV为所述误差允许因子;i为正整数且取值从1到M,为向下取整运算符; 说 明 书CN 102904826 A 5/18页 10 0058 确定所述筛选次数,所述筛选次数为所述M个出接口中筛选因子大于0的出接口 数目。 0059 结合第二方面或第二方面的第一种可能的实现方式至第七种可能的实现方式任 一种方式,在第八种可能的实现方式中,所述确定单元具体用于:根据所述筛选因子、所述 筛选次数以及由Hash算法得到的第一Hash结果确定数据流转发的出接口。 0060 根据第二方面的第八种可能的实现方式,在第九种可能的。
36、实现方式中,所述确定 单元具体用于:根据所述筛选次数判断所述M个出接口中是否存在需要屏蔽的出接口,所 述需要屏蔽的出接口的当前流量负载大于流量阈值;如果所述M个出接口中不存在需要屏 蔽的出接口,则确定所述第一Hash结果为所述数据流转发的出接口;如果所述M个出接口 中存在需要屏蔽的出接口,则根据所述筛选因子确定所述数据流转发的出接口,以使所述 数据流转发的出接口为不需要屏蔽的出接口。 0061 根据第二方面的第九种可能的实现方式,在第十种可能的实现方式中,所述确定 单元具体用于:如果所述筛选次数等于M或者所述筛选次数等于0,则确定所述第一Hash 结果为所述数据流转发的出接口; 0062 如果。
37、所述筛选次数小于M且大于0,则执行下列步骤: 0063 步骤a:设置第二Hash结果且所述第二Hash结果的初始值为0,设置初始正整数 k1且值为1,如果所述第一Hash结果大于所述筛选次数,则将所述第一Hash结果除以所述 筛选次数得到的余数设置为第一Hash结果; 0064 步骤b:比较所述第二Hash结果与所述第一Hash结果; 0065 如果所述第二Hash结果小于所述第一Hash结果,则进入步骤c; 0066 如果所述第二Hash结果大于或等于所述第一Hash结果,则进入步骤d; 0067 步骤c:将所述第二Hash结果加上第k1个出接口的筛选因子获得第三Hash结果, 设置所述第二。
38、Hash结果等于所述第三Hash结果,且将k1加上1获得k2,设置所述k1等于 所述k2;进入步骤b; 0068 步骤d:将所述k2减去1获得k3,将第k3个出接口确定为数据流转发的出接口。 0069 结合第二方面或第二方面的第一种可能的实现方式至第十种可能的实现方式任 一种方式,在第十一种可能的实现方式中,所述设备还包括: 0070 更新单元,用于根据所述数据流转发的出接口对流信息表进行更新,所述流信息 表用于指示所述数据流与所述数据流转发的出接口的映射关系。 0071 结合第二方面或第二方面的第一种可能的实现方式至第十一种可能的实现方式 任一种方式,在第十二种可能的实现方式中,所述获取单元。
39、具体用于: 0072 根据所述M个出接口的出接口号与令牌桶索引的映射关系获取令牌桶索引;根据 所述令牌桶索引在相应的令牌桶中获取所述M个出接口相应的当前的令牌值。 0073 本发明实施例根据出接口的信息获取各个出接口的当前的令牌值,通过各个出接 口的当前的令牌值确定筛选因子和筛选次数,根据筛选因子和筛选次数确定数据流转发的 出接口。由于出接口的当前的令牌值与流量相关,因此根据当前的令牌值确定筛选因子和 筛选次数,通过筛选因子和筛选次数可以将当前流量相对较大的出接口屏蔽掉,将当前流 量相对较小或当前还没有流量的出接口选为数据流转发的出接口,从而实现各个出接口的 流量负载分担均衡,降低丢包率,提高。
40、数据流转发的可靠性。 说 明 书CN 102904826 A 10 6/18页 11 附图说明 0074 为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中 所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实 施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图 获得其他的附图。 0075 图1是本发明一个实施例的流量负载分担的方法的流程图。 0076 图2是本发明另一个实施例的流量负载分担的方法的过程的示意性流程图。 0077 图3是本发明一个实施例的流量负载分担的设备的结构框图。 0078 图4是本发明一个实施例的。
41、设备的框图。 0079 图5是本发明一个实施例的流量负载分担的设备的结构框图。 具体实施方式 0080 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发 明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。 0081 图1是本发明一个实施例的流量负载分担的方法的流程图。 0082 101,根据M个出接口的信息获取M个出接口相应的当前的令牌值,当前的令牌值 由前一次的令牌值确定的,M为正整数。 0083 102,根据当前的令牌值确定筛选次。
42、数和M个出接口中各个出接口的筛选因子。 0084 103,根据筛选因子和筛选次数从M个出接口中确定数据流转发的出接口。 0085 本发明实施例根据出接口的信息获取各个出接口的当前的令牌值,通过各个出接 口的当前的令牌值确定筛选因子和筛选次数,根据筛选因子和筛选次数确定数据流转发的 出接口。由于出接口的当前的令牌值与流量相关,因此根据当前的令牌值确定筛选因子和 筛选次数,通过筛选因子和筛选次数可以将当前流量相对较大的出接口屏蔽掉,将当前流 量相对较小或当前还没有流量的出接口选为数据流转发的出接口,从而实现各个出接口的 流量负载分担均衡,降低丢包率,提高数据流转发的可靠性。 0086 可选地,作为。
43、一个实施例,在步骤101之前,可以在FIB(Forwarding Information Base,转发信息表)获取数据流转发可选用的M个出接口的信息。出接口的信息可以是出接 口的标识,例如,M取值为3,3个出接口的标识分别是出接口1、出接口2和出接口3。应理 解,本发明实施例对如何获取M个出接口的信息的方式不作限定。 0087 可选地,作为另一个实施例,在步骤101中,当前的令牌值可以由前一次的令牌值 和令牌更新因子确定的。其中,令牌更新因子包括至少下列之一:前一次的出接口转发的数 据长度,出接口类型、出接口带宽、出接口链路质量和出接口资源占用率。进一步地,当前的 令牌值可以由前一次的令牌值。
44、、前一次的出接口转发的数据长度,以及出接口带宽权重因 子确定的。例如,数据流转发可选用的出接口有4个,即M取值为4,分别是出接口1,出接 口2,出接口3和出接口4,并且4个出接口带宽权重相同,即4个出接口带宽权重因子取值 为1。假设4个出接口的前一次的令牌值均为0,前一次数据流转发的出接口为出接口1,且 说 明 书CN 102904826 A 11 7/18页 12 数据流的报文的长度为100(字节),则出接口1的当前的令牌值可以保持不变,即为0,出接 口2、出接口3和出接口4的当前的令牌值均确定为100。相应地,在步骤102中,可选地, 出接口1的当前的令牌值小于4个出接口当前的令牌值的平均。
45、值75,而出接口2、出接口3 和出接口4的当前的令牌值均大于4个出接口当前的令牌值的平均值75。因此,可以确定 出接口1的筛选因子为0,出接口2、出接口3和出接口4的筛选因子分别为1,筛选次数为 3,表示当前数据流转发可选择的出接口个数,筛选因子等于0的出接口1被屏蔽。这样,可 以通过其他出接口实现数据流分担,防止出接口1数据流拥塞的现象。 0088 具体而言,如果前一次在M个出接口中的第K个出接口转发的数据长度为TokenF, 则M个出接口中各个出接口的当前的令牌值可以由下列式子确定: 0089 TokenC1 i =TokenC2 i +TokenF*Portw i ,(iK) 0090 。
46、TokenC1 i =TokenC2 i -TokenF*Portw i ,(i=K) (1) 0091 其中,TokenC1 i 为第i个出接口的当前的令牌值,TokenC2 i 为第i个出接口的前 一次的令牌值,Portw i 为第i个出接口的带宽权重因子;i为正整数且取值从1到M。 0092 例如,数据流转发可选用的出接口有4个,即M取值为4,分别是出接口1,出接口 2,出接口3和出接口4,并且4个出接口带宽权重相同,即4个出接口带宽权重因子取值为 1。假设4个出接口的前一次的令牌值分别为0,100,100和100。前一次数据流转发的出接 口为出接口2且数据流的报文长度为200(字节)。。
47、根据(1)式,可以得到出接口1的当前 的令牌值为200,出接口2的当前的令牌值为100,出接口3的当前的令牌值为300,出接口 4的当前的令牌值为300。相应地,在步骤102中,可以将当前的令牌值大于250的出接口 的筛选因子确定为1,当前的令牌值小于或等于250的出接口的筛选因子确定为0,并将筛 选因子为0的出接口屏蔽,即当前的数据流转发选择出接口3或出接口4,因此,能够实现数 据流的分担。 0093 另外,可以将各个出接口的初始令牌值设置为0。或者,各个出接口的初始令牌值 还可以由出接口参数确定的,出接口参数包括至少下列之一:出接口类型、出接口带宽和出 接口链路质量。例如,数据流转发可选用。
48、的出接口有3个,即M取值为3,分别是出接口1, 出接口2和出接口3,出接口1带宽为B1,出接口2带宽为B2,出接口3带宽为B3,其中, B3B2B1。可以将出接口1的初始令牌值设置为Value1,出接口2的初始令牌值设置为 Value2,出接口3的初始令牌值设置为Value3,其中,Value1Value2Value3。又例如,数 据流转发可选用的出接口有2个,即M取值为2,分别是出接口1和出接口2,出接口1的链 路质量比出接口2的链路质量好,可以将出接口1的初始令牌值设置为Value1,出接口2的 初始令牌值设置为Value2,其中,Value1Value2。等等。 0094 应理解,上述例。
49、子仅仅是示例性的,而非对本发明实施例的限制。还应理解,上述 例子中M的取值、出接口标识的符号、数据流的报文长度、出接口参数的选取以及令牌值的 设置等等仅仅是示例性的,而非对本发明实施例的限制。需要指出的是,本发明实施例采用 出接口的当前的令牌值指示出接口的当前流量负载的情况,在一种实现方式下,出接口的 当前的令牌值越大指示出接口的当前流量负载越小,使得选择的数据流转发的出接口为当 前的令牌值较大的出接口。在另一种实现方式下,本发明实施例还可以采用出接口的当前 的令牌值越小指示出接口的当前流量负载越小的方式,使得选择的数据流转发的出接口为 当前的令牌值较小的出接口。 说 明 书CN 102904826 A 12 8/18页 13 0095 可选地,作为另一个实施例,在步骤101中,可以根据M个出接口的出接口号与令 牌桶索引的映射关系获取令牌桶索引,根据令牌桶索引在相应的令牌桶中获取M个出接口。