评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
负载分担算法简介
概述
逐包负载分担,设备启用了一个定时器,每来一个包,计数器加1,根据计数器的值选择出接口。
逐流负载分担采用哈希算法,因逐流负载分担应用较为广泛,本文重点介绍逐流负载分担的哈希算法。
哈希算法
哈希算法将任意长度的二进制值按某种哈希函数映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。计算出哈希值后,设备再根据哈希值按某种算法映射到出接口,并将报文从对应的出接口发送。逐流负载分担就是采用哈希算法。
哈希因子
哈希算法的输入是各报文的特征值,被称为“哈希因子”。
可作为哈希因子的报文特征值包括但不限于:
- 以太帧头:源MAC、目的MAC
- IP首部:源IP、目的IP、协议号
- TCP/UDP首部:源端口号、目的端口号
- MPLS首部:MPLS标签、报文负载的某些比特位
- L2TP报文:Tunnel ID和Session ID
哈希因子与负载分担效果
如果哈希因子散列性较好,则哈希算法得出的负载分担将会更均匀。如果网络流量类型过于复杂,单纯依靠上述哈希因子进行散列,有时不能取得最佳的分担效果。
为了得到更好的负载分担效果,设备允许用户根据流量类型人为选择最佳的哈希因子。如果选择了最适合的哈希因子仍然不能得到较满意的负载分担效果,可以设置哈希加扰值,增强哈希因子的散列性,从而取得更好的负载分担效果。