深入看ECMP(详解其实现机制)

深入看ECMP(详解其实现机制)本文转载自 https www sdnlab com 20605 html 个人总结 我低估了 ECMP 虽然这玩意不算难 但是我依然对它有一些错误理解 为此 把它的实现机制转过来 深入地看一看到底什么是 ECMP 特别是基于数据流的转发 对某一个结点运用 ECMP 时的前提是 这些数据流的目标地址相同 源地址不同 比如来自源地址 A 的数据流和来自源地址 B 的数据流都要经过 R 到达目标地址 D 而 R 到 D 有

本文转载自https://www.sdnlab.com/20605.html

个人总结:我低估了ECMP,虽然这玩意不算难,但是我依然对它有一些错误理解,为此,把它的实现机制转过来,深入地看一看到底什么是ECMP。

特别是基于数据流的转发,对某一个结点运用ECMP时的前提是,这些数据流的目标地址相同,源地址不同。比如来自源地址A的数据流和来自源地址B的数据流都要经过R到达目标地址D,而R到D有两条路径,那么R可能会把来自A的数据流转发到路径1上,把来自B的数据流转发到路径2上。

感觉ECMP是用在MPLS网络上。

ECMP(Equal-cost multi-path)

ECMP是一个逐跳的基于流的负载均衡策略,当路由器发现同一目的地址出现多个最优路径时,会更新路由表,为此目的地址添加多条规则,对应于多个下一跳。可同时利用这些路径转发数据,增加带宽。ECMP算法被多种路由协议支持,例如:OSPF、ISIS、EIGRP、BGP等。在数据中心架构VL2中也提到使用ECMP作为负载均衡算法。

对于未开启ECMP的网络来说,无法充分利用路径资源。如图1所示,假设从S0到Server的为S0-S1-S2-S4即图中橘色路径,那么即便存在另一条等价路径,蓝色路径,路由器仍然会每次选择第一条橘色路径转发数据。除非此条路径发生拥塞,才会重新选择路径。

当开启ECMP功能时,便可同时利用两条路径,进行基于流的负载均衡,例如主机A到Server的数据流选择橘色路径,主机B到Server的数据流选择蓝色路径。

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

  • 哈希,例如根据源IP地址的哈希为流选择路径。
  • 轮询,各个流在多条路径之间轮询传输。
  • 基于路径权重,根据路径的权重分配流,权重大的路径分配的流数量更多。

深入看ECMP(详解其实现机制)

                                         图1.使用ECMP进行负载均衡

ECMP面临的问题

然而ECMP是一种较为简单的负载均衡策略,其在实际使用中面临的问题也不容忽视。

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

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

深入看ECMP(详解其实现机制)

                                             图2. 非对称网络

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

以上,为使用ECMP算法进行负载均衡的分析,在数据中心这种突发性流量多,大象流与老鼠流并存的环境中,需要慎重考虑选择的负载均衡策略,ECMP简单易部署但也存在较多问题需要注意。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205859.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午5:01
下一篇 2026年3月19日 下午5:01


相关推荐

  • i2c时序图的详细讲解[通俗易懂]

     i2c简易时序图  启动信号:  SCL为高电平的时候,SDA由高电平向低电平跳变。结束信号:SCL为高电平的时候,SDA由低电平向高电平跳变。  应答信号:  I2C总线上的所有数据都是以8位字节传送的,发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规…

    2022年4月14日
    831
  • vue 登录页面记住密码功能

    vue 登录页面记住密码功能vue iview element 一般用来快速搭建后台管理系统 登录页的记住密码功能也是必不可少的 记住密码快速登录功能 iviewui 思路 首次登录 记住密码 将密码存储到 cookie 中 退出登录 下次进来的时候 读取 cookie 登录 1 Checkboxv model autoLogin size large 记住密码 Checkboxv model autoLogin size large

    2026年3月17日
    2
  • 威尔逊定理B

    威尔逊定理B题目 Themathdepar Duetoimmense theydecidedt Another Public Turing Te

    2026年3月18日
    2
  • BN层理解_理解六层次总结

    BN层理解_理解六层次总结bn层计算的均值和方差是channel的输入数据是nchw,求得的均值和方差均是长度为c的向量mini-batch指的是一个batch的所有样本对应通道组合成一个minibatch,1个nchw的数据有c个mini-batch一个mini-batch在一起进行求均值和方差HW的归一化,求出NC个均值与方差,然后N个均值与方差求出一个均值与方差的Vector,size为C,即相同通道的一个mini_batch的样本求出一个mean和variance每次迭代时采用的是滑动平均方式更新,.

    2022年10月14日
    6
  • pjsip编译

    pjsip编译pjsip 编译主要是找到编译器路径 Xcode5 开始所有版本 系统的 gcc 整合到 xcrun 中了 需要用参数来区分在 pjlib include pj 目录下增加 con

    2025年10月26日
    4
  • mac phpstorm 激活码【在线注册码/序列号/破解码】

    mac phpstorm 激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号