2019-07-30 什么是ECMP、五元组、负载均衡

2019-07-30 什么是ECMP、五元组、负载均衡,第1张

参考: http://server.51cto.com/Datacenter-568115.htm

           https://www.cnblogs.com/gzxbkk/p/8867663.html

ECMP,Equal-cost Multipath Routing,等价多径路由,是一种逐跳的基于流的负载均衡策略。与之对应的是WCMP,其中w是weigh-cost,即加权。ECMP是WCMP的特例,WCMP虽然能够非常灵活地按照比例在链路上传递流量,IGRP、EIGRP和部分静态路由也支持WCMP,但因为IGRP和EIGRP为非标准私有协议(Cisco的私有协议),不适宜扩展,因此只能采用静态路由,在中小网络部署。

ECMP的 路径选择策略 有多种方法:

1.哈希,例如根据源IP地址的哈希为流选择路径。

2.轮询,各个流在多条路径之间轮询传输。

3.基于路径权重,根据路径的权重分配流,权重大的路径分配的流数量更多。

面临的问题:

1.可能增加链路的拥塞

ECMP并没有拥塞感知的机制,只是将流分散到不同的路径上转发。对于已经产生拥塞的路径来说,很可能加剧路径的拥塞。而使用哈希的方法,产生哈希碰撞也会增加链路的拥塞可能。

2.非对称网络使用效果不好

例如图2中,A与h3之间的通信,ECMP只是均匀的将流通过B,D两条路径分别转发,但实际上,在B处可以承担更多的流量。因为B后面还有两条路径可以到达h3。

3.基于流的负载均衡效果不好

ECMP对于流大小相差不多的情况效果更好,而对于流大小差异较大,例如大象流和老鼠流并存的情况下,效果不好。如图2,主机h1到A的流量为15,h2到A的流量为5。那么无论为h1的流量选择哪条路径都会发生拥塞。但若将h1的流拆分成两部分传输,可以避免拥塞的情况。

以上是为了解决负载均衡问题,那么来讨论一下 负载均衡 :

负载分担方式有3种。

1.基于流负载分担:

路由器根据IP报文的 五元组 信息(是指 源IP地址,源端口,目的IP地址,目的端口,和传输层协议 这五个量组成的一个集合。 例如:192.168.1.1 10000 TCP 121.14.88.76 80 就构成了一个五元组)将数据分成不同的流。 具有相同五元组信息的IP报文属于同一个流。 转发数据时,路由器把不同的数据流根据算法从多个路径上依次发送出去。

2.基于包负载分担:

转发数据时,路由器把数据包从多个路径上依次发送出去。

基于包转发能够做到更精确的负载分担。但是由于路由器要对每一个包进行路由查表与转发 *** 作,所以无法使用快速转发缓存来转发数据,转发效率降低了。另外,Internet应用都是基于流的,如果路由器采用基于包的负载分担,一条流中的数据包会经过不同路径到达目的地,可能会造成接收方的乱序接收,从而影响应用程序的正常运行。

3.基于带宽的非平衡负载分担:

报文按接口物理带宽进行负载分担(即基于报文的负载分担)。当用户为接口配置了指定的负载带宽后,设备将按用户指定的接口带宽进行负载分担,即根据各接口物理带宽比例关系进行分配。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/8640621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存