传统的网络拓朴结构可以形象的表示为树结构,我们称之为“有中心的网络拓扑结构”,简单地认为很多流量请求最终会汇聚到主干网这样的路由中心,才能转发到下一条路径。

传统的路由协议都是采用单路径路由的方式,简单地认为,从源到目的,所有的包都通过一条路径转发(如果某条最优路径出现了问题,再考虑下一条最优路径),其它链路处于备份状态或无效状态,并且在动态路由环境下相互的切换需要一定时间。

现在问题来了:
1)主干网总有一天会承受不了过多的流量请求;
2)单一的路径路由会使很多路由路径处于相对空闲的状态。
那么一个解决问题的办法就产生了,使用多路径路由,因为路由器是有多个端口的,所以这样的路由方式在硬件上是有支持的。好处就是,在网络环境下同时使用多条链路,不仅增加了传输带宽,并且可以无时延无丢包地备份失效链路的数据传输。

多路径路由特点:(1)可以为不同的服务质量要求提供不同的路径。(2)多路可以为同一种类型的服务提供多条路径,经聚集可实现更高的服务质量。(3)由于主机对路径有自主的使用权,它可以通过探测各路径的状况(比如丢包率)猜测网络的拥塞程度,据此调整对各路径的使用,从而在得到优质服务的同时也提高了网络的利用率。因此,多路的正确使用还可以提高网络的利用率。

根据不相交性,多路径路由可以分为3种:节点不相交(Node-Disjoint)多路径、链路不相交(Link-Disjoint)多路径和相交多路径。节点不相交多路径,也称为完全不相关多路径,就是各条路径中除源节点和目的节点之外没有其他任何共用节点。链路不相交多路径是指各条路径间没有任何共用的链路,但有可能有共用的节点。相交多路径是指各条路径间既有共用的节点,又有共用的链路。表1是3种路径间的比较。

那下面的问题就是如何进行多路径路由。关键问题就两个:

1)多路径选择

2)流量的动态分配

下面看一下目前的多路径选择算法都有哪些:

1)ECMP(Equal-Cost Multi-Path Routing,等价多路径路由)。

Equal-cost multi-path (ECMP) [8] is a routing technique for routing packets along multiple paths of
equal cost. Load is distributed equally over multiple equal-cost paths typically using simple round-robin
distribution. Optimal splitting with ECMP has been researched in OSPF-Optimized Multi Path (OMP) [9].
OSPF-OMP uses ECMP, but instead of depending upon weight assignments, it samples traffic load
information and floods it via opaque LSAs. This information is used to change local load splitting
decisions.

ECMP是指,到达一个目的地有多条相同度量值的路由项(路由路径),这样就可以使用不超过3条这样的路径来转发流量。ECMP最大的特点是实现了等值情况下,多路径负载均衡和链路备份的目的,在静态路由和OSPF中基本上都支持ECMP功能。

但是实际情况是,各路径的带宽、时延和可靠性等不一样,把Cost认可成一样,不能很好地利用带宽,尤其在路径间差异大时,效果会非常不理想。例如,路由器两个出口,两路径,一个带宽是100M,一个是2M,如果部署是ECMP,则网络总带宽只能达到4M的利用率。(在RFC2991中讨论了一般的多路径路由。每一封包多路径路由的负载平衡通常不适用因为大辐变化的延迟、数据包重新排序,以及可以破坏许多互联网协定运作的最大传输单元(MTU)在网络流量的差异,最特别是传输控制协议(TCP)和path MTU discovery。)另外一种情况下等价多路径路由也不能提供真正的最佳路径路由的优点,例如,如果多个最佳的next-hop的路径到目的地重新汇聚到一个单一的低带宽的路径(一种常见的情形)下游,它只会增加到该目的地流量路径的复杂性,而无法提高带宽的能力。

有篇专利可供参考:http://www.google.com/patents/CN103607358A?cl=zh

我们可以看到,“等价路径的计算”妨碍了这个算法的使用。

浅析ECMP等价路由

1、ECMP简介

Equal-CostMultipathRouting,等价多路径。即存在多条到达同一个目的地址的相同开销的路径。当设备支持等价路由时,发往该目的 IP 或者目的网段的三层转发流量就可以通过不同的路径分担,实现网络的负载均衡,并在其中某些路径出现故障时,由其它路径代替完成转发处理,实现路由冗余备份功能。

2、与传统路由技术比较

如果使用传统的路由技术,发往该目的地址的数据包只能利用其中的一条链路,其它链路处于备份状态或无效状态,并且在动态路由环境下相互的切换需要一定的时间,而等价多路径路由协议可以在该网络环境下同时使用多条链路,不仅增加了传输带宽,并且可以无时延无丢包地备份失效链路的数据传输。

3、分配包的基本方式

1)基于数据流的负载分担

目的地址和源地址相同的报文属于一个数据流。基于数据流的负载分担的方式就是,假定有10个数据流,有2条路径可选择,一边各走5个。

2)基于数据报文的负载分担

假定有10个数据报文,有2个路径可选择,一边各走5个。

4、优点

提高链路利用率;路径冗余备份。

5、缺点

实际上,网络中各条路径的带宽、时延和可靠性等不一样,把Cost认可成一样,不能很好地利用带宽,尤其在路径间差异大时,效果会非常不理想,逐包转发可能导致报文乱序。例如,路由器两个出口,两路径,一个带宽是100M,一个是2M,如果部署是ECMP,则网络总带宽只能达到4M的利用率。

6、ECMP改进方向

ECMP算法的核心是均衡使用所有等代价的路径。

当前网络的负载状态会影响最短路径的选取。比如,两点之间的最短路如果使用越来越多直至拥塞,最短路就会发生变化。因此,最短路是随着当前网络的负载而发生变化的。最短路径的计算是由链路权重确定的,链路权重确定了之后最短路也就确定了。所以,如何根据当前网络负载状况对链路权重进行赋值是ECMP路由算法的一个重要的问题。

2)WCMP(Weight-Cost Multi-Path Routing,加权多路径路由)。

WCMP能够非常灵活地按照比例在链路上传递流量,ECMP是它的特例。IGRP、EIGRP和部分静态路由也支持WCMP,但因为IGRP和EIGRP为非标准私有协议(Cisco的私有协议),不适宜扩展,因此只能采用静态路由,在中小网络部署。

貌似也不需要考虑。

3)MPA、DSPA、CRA、MDVA、MPDA/QMPDA、MPTAH、MARA、ST、NPMA等算法稍后讲解

关于流量的动态分配,即所谓的负载均衡问题:

1)负载分担方式有3种。

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

基于包负载分担:转发数据时,路由器把数据包从多个路径上依次发送出去。

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

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

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

多路径路由算法—ECMP、WCMP相关推荐

  1. 多路径路由算法选择(2)——回顾传统的动态路由协议(RIP、OSPF、BGP、IGRP、EIGRP、IS-IS)

    路由协议:用于路由器动态寻找网络最佳路径,保证所有路由器拥有相同的路由表,一般路由协议决定数据包在网络上的行走路径. 路由协议简单分为静态路由协议和动态路由协议. 静态路由协议简单说就是手工配置路由选 ...

  2. 网络协议学习:等价多路径路由ECMP

    简介 在计算机网络中,很多时候通信的源和目的存在多条已知路径.例如在数据中心网络中,需要有大量的带宽资源,且网络拓扑已知,利用这种特性可以采用ECMP(Equal-cost multi-path, 等 ...

  3. 编程实现路由算法 实验报告_lt;中国通信专刊gt; EARS:用于软件定义网络中自动路由的智能驱动体验网络架构...

    题目:EARS:用于软件定义网络中自动路由的智能驱动体验网络架构 摘要:软件定义网络(SDN)通过将控制平面与数据平面解耦来适应逻辑集中的控制,并提供对网络资源的有效利用.但是,由于传统路由策略依赖于 ...

  4. 路由算法之——ECMP算法的改进方向

    摘要 本文主要讲述当前网络协议中的ECMP算法的改进方向. 1. ECMP路由全局回顾 ECMP算法的核心是均衡使用所有等代价的路径.不同的学科背景有不同的应用,在计算机网络中,当所面临的路径是多条最 ...

  5. 路由算法之——ECMP算法

    摘要 本文主要讲述ECMP算法,Equal-CostMultipathRouting,即最大限度地使用最短路径,各条最短路径之间均分流量.比如,如下图所示,节点3到节点8之间的最短路有两条,分别是3, ...

  6. 连线自动路由算法:在GEF中实现连线的自动直角路由,智能避障并绕开模型,选择最佳路径进行布线,仿Visio效果

    在使用GEF(图形编辑框架)开发建模工具时,比如利用GEF实现程序流程图建模功能,有时对连线的路由方式会有比较高的要求,比如连线自动采用直角布局,要能够智能地避障并绕开模型,选择最佳路径进行布线.在建 ...

  7. PHP与ECMP,ECMP等价多路径路由(与PCC区别)

    ECMP-"Equal-Cost Multi-Path Routing"即等价多路径路由是三层路由标准协议,在华为.H3C和思科等路由器中ECMP路由配置是很常见的静态路由负载均衡 ...

  8. ospf cost 引起路由可以ping通但应用无法连接_路由算法(通网五)

    在通信网络中,网络层主要负责将两个终端系统经过网络中的节点用数据锥路连接起来,组成通信通路,实现两个终端系统之间数据的透明传送.所谓透明传输是指发端发送到网络接口的任何信息都会按照其原始的形式传送到接 ...

  9. 【计算机网络】网络层 : 总结 ( 功能 | 数据交换 | IP 数据报 | IPv4 地址 | IPv6 地址 | 路由选择协议 | 路由算法 )★★★

    文章目录 一.网络层功能 二.数据交换方式 ★ 三.IP 数据报 ★ 四. IPv4 地址 ★★ 1 . IP 地址 发展 : 2 . 分类 IP 地址 3 . NAT 转换 4 . 子网划分 5 . ...

最新文章

  1. 客快物流大数据项目(四):大数据项目为什么使用Docker
  2. 计算机组装cpu用哪种好,教你电脑处理器哪款好
  3. pandas 选择行和列
  4. 【Github开源】一站搞定各种开发文档
  5. android使用bintray发布aar到jcenter
  6. 聊聊 vue 生命周期
  7. STM32之SPI原理
  8. Mr.J-- HTTP学习笔记(四)-- 连接管理
  9. [jQuery基础] jQuery事件相关案例 -- 电影排行榜、Tab选项卡
  10. win10 中的系统变量 windir、userProfile 等
  11. 高阶函数 / abs方法
  12. Linux内核调用SPI平台级驱动_实现OLED的显示功能
  13. 与代码无关的React Native常识
  14. 什么是android原生系统版本,定制安卓和原生Android到底有哪些不同之处?彻底真相了...
  15. 用 PS 去除图片中文字的方法
  16. matlab 2016b caffe,请教:在Win7+VS 2013+Matlab R2016b上编译Caffe时遇到问题
  17. vs2019,C#,MySQL创建图书管理系统7(用户借/还书)
  18. 13 岁女孩因发布JavaScript被捕,写个死循环你就进去了?
  19. python educoder苹果梨子_pythoneducoder苹果梨子煮水的功效_苹果梨子汤的功效
  20. 基于Spring的微服架构实战之问题记录

热门文章

  1. 软件测试面试技巧,你都get到了么
  2. pdf预览引发的vue项目只允许Chrome浏览器访问
  3. 给 dom 元素添加 onresize 功能
  4. 怎么追一个不喜欢我的女孩子?
  5. 两个scanf只运行了一个
  6. 小米电视 “无法访问,请检查网络链接是否正常“
  7. 6个Java神级项目,帅炸了!
  8. C语言之EOF、feof函数、ferror函数
  9. Selenium 详解CSS定位
  10. USB充电,标准充电器,非标准充电器的区别