交换机链路聚合技术之负载均衡算法原理

HASH表介绍:

在交换机内部,每创建一个聚合组时,底层同时创建对应该聚合组的一个hash表,该表存在于交换芯片上,详情见互联网相关文章。

交换机负载均衡转发原理:
虽然底层有了一张HASH表,那么到底是怎么利用这张表的呢?
1)工程师设定端口成员与HASH算法,如SIP、DIP、SIP+DIP、SIP+DIP+SP+DP等。
2)交换机根据成员生成HASH表,根据算法提取报文中相应内容。
3)使用特定HASH值的计算方法,把提取的内容计算出一个10bits的值。
4)找到底层HASH表项中该值对应的出端口。
5)把报文从这个出端口转发出去。
HASH值的计算方法:
 xor是异或运算,即两个值不相同,则异或结果为真;反之,为假。不同为1,相同为0。
1、SIP(源IP)
 1)SIP xor 0 得到一个32bit的值.
 2)然后作高16bits和低16bits的xor.
 3)再用16bits的15-12bits与11-8bitsxor,将得到的4bits替换到11-8bits,得到12bits右移2位得到10bits的hash值
注:10bits的值必然是0-1023里的一个数,该index对应的interface是多少,就从该接口转发出去。(相同的IP必然是相同的hash值)
2、DIP(目的IP)
同SIP
3、SIP+DIP(源IP+目的IP)
1)DIP xor SIP得到一个32bits的值。
2)然后作高16bits和低16bits的xor。
3)再用16bits的15-12bits与11-8bitsxor,将得到的4bits替换到11-8bits,得到12bits右移2位得到10bits的hash值。
4、SIP+DIP+SP+DP(源地址 + 目的地址 + 源端口 + 目的端口)
1)SIP xor DIP得到32bit的值value1
2)hashtemp1的低16bits xor SP 得到32bit的hashtemp2
3)hashtemp2 的低 16bit xor DP 得到 32bit 的hashtemp3
4)然后作高16bits和低16bits的xor
5)再用16bits的15~12bits和11~8bits xor,将得到的4bits替换到11~8bits,得到12bits右移2位得到10bits的hash值

时间: 2024-07-29 21:46:42

交换机链路聚合技术之负载均衡算法原理的相关文章

集群负载均衡算法原理

最近打算往互联网方向发展,研究了下集群的负载均衡.其实早就应该去了解学习了.如有理解不到位的地方,还望各大神指出. 负载均衡算法是集群在调度时,选择具体调度和分发方式的逻辑. 目前流行和常用的算法有:轮询算法,Hash算法,Session,最小连接数,最大空闲等. 1.轮询算法: 实现方式:把每一次的用户请求,按顺序循环分配给集群内部的一台服务器.优点是算法简洁,无状态. 2.权重轮询算法 由于服务器的处理能力不同,可以再给服务器加权.也就是权重轮询算法. 3.Hash算法 一般就是将请求中的某

Linux平台双网卡绑定技术实现负载均衡(网卡聚合)bonding

Linux平台双网卡绑定技术实现负载均衡 保持服务器的高可用性是企业级 IT 环境的重要因素.其中最重要的一点是服务器网络连接的高可用性.网卡(NIC)绑定技术有助于保证高可用性特性并提供其它优势以提高网络性能. 双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作.其实这项技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2

搞懂分布式技术10:LVS实现负载均衡的原理与实践

搞懂分布式技术10:LVS实现负载均衡的原理与实践 浅析负载均衡及LVS实现 原创: fireflyc 写程序的康德 2017-09-19 负载均衡 负载均衡(Load Balance,缩写LB)是一种网络技术,它在多个备选资源中做资源分配,以达到选择最优.这里有三个关键字: 网络技术,LB要解决的问题本质上是网络的问题,所以它实际上就是通过修改数据包中MAC地址.IP地址字段来实现数据包的"中转": 资源,这里的资源不仅仅是计算机也可以是交换机.存储设备等: 最优,它则是针对业务而言

负载均衡算法及手段

负载均衡器 可以是专用设备,也可以是在通用服务器上运行的应用程序. 分散请求到拥有相同内容或提供相同服务的服务器. 专用设备一般只有以太网接口,可以说是多层交换机的一种. 负载均衡器一般会被分配虚拟IP地址,所有来自客户端的请求都是针对虚拟IP地址完成的.负载均衡器通过负载均衡算法将来自客户端的请求转发到服务器的实际IP地址上. 负载均衡算法 private Map<String,Integer> serverMap = new HashMap<String,Integer>(){

七厂节目接入,中兴交换机链路聚合配置

需求:从数字电视机房核心交换机引出复用器IP组播信号,将前端节目信号传输至七厂交换机中兴5950,因带宽不够用,需做链路聚合,并通过NSG重新调制输出.中兴5950交换机配置如下: Building configuration... ! ! vlan list 1-3 ! interface vlan 1                     // 创建vlan1,将其加入smartgroup1 ip address 172.30.101.251 255.255.255.0 out_index

某虚拟化项目中思科与华为交换机链路聚合互连案例

在今年初的时候,我在实施一个VMware虚拟化项目中,涉及到华为与思科交换机通过"链路聚合"的方式互连,经过咨询华为的技术工程师,问题得以成功解决. 不像某些厂家的售后:我们的产品只支持与我们的产品互连,其他的不提供技术支持.华为售后没有因为我是询问与思科交换机的互连而不告诉我解决方法,而是直接告诉我现成的互连案例,并将案例文档及链接网页发到我邮箱,我通过参考案例解决了项目中碰到的问题.现在项目已经运行几个月,一切正常. 现在就此案例记录下来,同时感谢华为技术支持工程师! (小记:我咨

几种简单的负载均衡算法及其Java代码实现

什么是负载均衡 负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助.通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求.负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题,这种集群技术可以用最少的投资获得接近于大型主机的性能. 负载均衡分为软件负载均衡和硬件负载均衡,前者的代

基本的负载均衡算法

平衡算法设计质量直接决定了集群负载均衡性能,设计糟糕的算法.这将导致加载在集群中的不平衡.一般平衡算法的主要任务是决定如何在集群选择下一节点,然后将新的请求被转发到它.简单平衡方法能够独立使用,有些必须和其他简单或高级方法组合使用.而一个好的负载均衡算法也并非万能的,它一般仅仅在某些特殊的应用环境下才干发挥最大效用. 因此在考察负载均衡算法的同一时候.也要注意算法本身的适用面,并在採取集群部署的时候依据集群自身的特点进行综合考虑,把不同的算法和技术结合起来使用. 一.轮转法: 轮转算法是全部调度

互联网研发中负载均衡算法一点探索

负载均衡在线上服务中有着很重要作用,因为一台web服务比如tomcat,能够处理qps(每秒处理请求数) 是有限的.那么就需要有有前端负载均衡服务将大的流量分发为多个后端服务进行处理. 负载均衡产品有硬件F5.有软件,早之前使用Apache较多,目前是使用Nginx多,Nginx架构实现简洁优 雅性能高.LVS.HAProxy是著名软负载工具.说到LVS是由原淘宝章文蒿(目前在滴滴公司)博士领导开发, 是到目前为止Linux内核中网络核心部分,也是国人开Linux内核最高贡献,章博士在国内技术圈