[发明专利]基于带宽的非平衡负载分担无效
申请号: | 201110383412.4 | 申请日: | 2011-11-28 |
公开(公告)号: | CN103139092A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 王文斌 | 申请(专利权)人: | 王文斌 |
主分类号: | H04L12/803 | 分类号: | H04L12/803 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 215000 江苏省苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 带宽 平衡 负载 分担 | ||
1.技术领域
本发明属于计算机通信领域。
2.背景技术
对于同一路由协议来说,可以配置多条目的地址和开销都相同的路由。如果到达同一目的地址的路由中,如果优先级别都相同,则同时采用这几条路径。在转发去往该目的地址的报文时,依次通过各条路径发送,实现网络的负载分担,并提高系统吞吐率,从而提高转发效率。当各条路径的带宽相同时,则称其为基于带宽的平衡负载分担;当带宽不同时,即是基于带宽的非平衡负载分担。
目前的IPv6路由器一般带有非平衡负载分担功能。思科和华为的路由器在实现非平衡负载分担时有如下限制:在各条分担路由中,任一条链路的带宽不能小于总带宽的1/16,否则不参与负载分担。这种策略使得用户不能根据实际情况灵活地为各接口设置带宽值。例如:有一台带宽为10G的路由器和一台带宽为1G的路由器堆叠起来作为一台设备使用时,如果需要用两个10G端口和一个1G端口形成三条等价路由,华为和思科的路由器是不支持这种组网的。如果一定需要这种组网环境的话,就需要将10G接口的带宽降低为7.5G来满足“1/16”这个限制,这样反而会降低路由转发性能。本文中的实现将打破“在各条分担路由中,任一条链路的带宽不能小于总带宽的1/16”这个限制,进一步提高路由转发效率。
目前常用的算法如下:在数据平面FIB中增加一个成员,假设是ulEcmp[2]。它是一个ULONG型变量,由64位组成。将其分成16份,每份占4位,第一位用于表示数据有效性,后三位表示FIB表项的编号。因为FIB表项占三位,所以最多能支持8条不同的等价路由。
假设有2条等价路由,一条带宽是1G,其对应的FIB表项序号为X;另一条带宽为15G,其FIB表项序号为Y。则ulEcmp[2]变量被填充后结果如图1所示。其中第一位全部有效,都置位为1,为了便于观察,不在下面的数组结构图中显示。
通过上面的例子可以看到如下限制:在各条分担路由中,任一条链路的带宽不能小于总带宽的1/16,否则无法用成员ulEcmp[2]填充结果表示。
3.发明内容
下面是改进的算法,不仅打破了上述“1/16”的限制,而且对任意一条等价路由的带宽可以设置的最小精度为总带宽的1/232,大大增加了用户对带宽设置的灵活性。
为了使得路由器能对收到的每一条流,快速的确定它该从哪个等价的接口中发送出去,便采用了对流的源IPv6地址和目的IPv6地址的前32位进行哈希计算得到的值来确定与该流相匹配的发送接口。该哈希函数的设计中用到了著名的三距离定理:用{X}表示正整数X的小数部分,设0<C<1,C是无理数,则{C},{2*C},{3*C},.....{N*C}把[0,1]分成N+1段。这N+1段的长度最多只有三种可能取值,并且{(N+1)*C}会把某一长度最大的那段分为两小段。如果C是黄金分割数,则{(N+1)*C}把最长那段分为两个小段后,这两个小段的长度为黄金分割的比例。
利用上述定理采用源和目的IPv6地址之和的前32位与黄金分割数(0.618)相乘得到的哈希值,对于相同的流,值相同。不同的流哈希值会在整个散列的区间上找到最长那段的黄金分割点,这样便使得全部流的哈希值在整个散列区间上均匀分布。然后将所有参加负载分担的接口的带宽值累加形成从0到最大值为带宽累加值的区间,并与上述散列得到的区间一一对应起来,那么从总体流量上的均衡效果就和用户在接口上配置的带宽值相一致了,这样基于带宽的负载分担功能便可以实现了。
利用伪代码描述如下:W[i]表示各FIB表项对应的带宽值,在负载分担功能未开启的情况下,该值为1,各等价路由负载均衡;在我们的功能使能时,W[0]到W[i-1]中的值为用户配置的相应带宽值。n表示等价FIB表项的个数,W_SUM表示各等价FIB带宽之和,P[i]表示各等价接口占总带宽的比例大小,W_TMP表示临时存放带宽值。
1)首先计算等价路由的总带宽W_SUM=W[0]+W[1]+......+W[n-1]。
2)计算各等价接口占总带宽的比例大小
3)计算参与该负载分担的报文的哈希值X,使得该值均匀地散列在0到232的区间范围内。
for(i=0;i<n;i++){
if(X<=p[i])
则报文从这条等价路由发送出去;}
4.附图说明
图1是已有的负载分担实现中用的ulEcmp[2]数组结构图。
图2是FIB和路由表内容对比图。
图3是VN内容结构图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于王文斌,未经王文斌许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110383412.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电磁波发生器的循环冷却装置
- 下一篇:心包穿刺针固定器