第6章路由算法总结ppt课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
非自适应路由算法
固定路由算法(fixed routing algorithm) 洪泛法(flooding) 随机走动法(random walk) 基于流量的路由算法(flow-based routing)
由所有的线路平均延迟,可直接计算出流量的加权 平均值,从而得到整个网络的平均分组延迟
这样找出网络的最小平均延迟就可以实现最优路由 选择
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
自适应路由算法
孤立路由选择 集中路由选择 分布式路由选择
当结点或链路发生故障时,该方法可使路由算法有 较好的稳健性
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
基于流量的路由算法
该方法不仅考虑网络的拓扑结构,还要考虑网络的 负载因素
对某一给定的线路,如果已知负载量与平均流量, 那么可以根据排队论的知识计算出该线路上的平均 分组延迟
• 如果找不到相应的表项,在G的路由表中增加一项 :(N,G’,D’+C)
• 如果V=G’,G中路由表对应的表项根据D’+C和D的 比较获得
– 如果D’+C<D,G中表项更新为(N,G’,D’+C)
– 否则G中表项保持原状,仍为(N,V,D)
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
路由的概念
路由:按照某种指标(传输延迟,所经过的站点数目 等)找到一条从源结点到目标结点的较好路径 较好路径: 按照某种指标较小的路径
路由算法(routing algorithm):网络层软件的一部 分,完成路由功能
路由器1的更新后的路由表
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
距离矢量路由算法
DV的无穷计算问题
DV的特点 • 好消息传的快 坏消息传的慢
好消息的传播以每一个交换周期前进一个路由器 的速度进行
• 好消息:某个路由器接入或有更短的路径
路由的时机 虚电路:在建立虚电路时使用(会话路由选择, session routing) 数据报:每个分组独立路由
最优化原则(optimality principle) 在日常生活中,随处都可以看到浪费粮食的现象。也许你并未意识到自己在浪费,也许你认为浪费这一点点算不了什么
汇集树(sink tree)
集中路由选择
根据所有结点的网络信息来选择路由
网络中设置了一个路由控制中心
每隔一段时间,每个结点向路由控制中心发送状态 信息,如链路连接情况、流量和队列长度等
路由控制中心收集所有这些信息,然后根据它对整 个网络的全局性了解,利用这些信息使用最短路径 算法计算出每对结点之间的最佳路径,构造出路由 表分发给对应的每个结点
缺点:计算量大和路由控制中心的脆弱性
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
分布式路由选择
根据来自于相邻结点的信息,通过一个最短花费路 由算法计算出到每个目的地的路由
分布式路由算法得到了广泛使用
目前最流行的两个分布式路由算法 距离矢量路由算法(distance vector routing)
如果V=G’,那么无条件的把G中的项目更新为G’中的
(N,G’,D’+C)。
如果V≠G’,G中路由表对应的表项根据D’+C和D的比较获得
– 如果D’+C<D,G中表项更新为(N,G’,D’+C)
– 否则G中表项保持原状,仍为(N,V,D)
该改为:如果V=G’,那么无条件的把G中的项目更新为G’。理由 是:要以最新消息为准。见谢希仁第五版《计算机网络》148页
正确的算法
如果找不到相应的表项,在G的路由表中增加一项:(N,G’,D’+C)
如果V=G’,G中路由表对应的表项根据D’+C和D的比较获得
– 如果D’+C<D,G中表项更新为(N,G’,D’+C)
– 否则G中表项保持原状,仍为(N,V,D)
ห้องสมุดไป่ตู้
改为:
如果找不到相应的表项,在G的路由表中增加一项:
(N,G’,D’+C)
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
图抽象
图: G = (N,E)
5
v 3w
2
5
u
2 31
z
1
x
1y
2
N = 路由器集合 = { u, v, w, x, y, z }
E = 链路集合 ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
公平性(fairness):对每一个站点都公平
最优性(optimality):某一个指标的最优(时间、 费用或综合指标)。实际上,获取最优的结果代价 较高,可以选择次优的结果
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
距离矢量路由算法
结点G收到G’送来的路由信息,对于更新信息中 给出的每个目的地,在G的路由表中查找相对应 的表项,设它为(N,V,D),而更新信息中的三元 组为(N,V’,D’),C为结点G和G’之间的距离
距离矢量路由算法
历史及应用情况 由Bellman、Ford和Fulkerson等提出 用于ARPANET, Internet和Novell
基本思想
每个结点都保存一张到目的地的路由表
• 到目的地的下一结点 • 测量出到目的地的度量值(metric):初始化时,直接
连接的目的地置为0(表示无需经过别的路由器),其 它置为 每个结点把它的路由表定期向它直接连接的相邻结点传递
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
固定路由算法
每个网络结点存储一张表格,表格的每一项记录到 达某个目的结点的下一结点或链路,而不是记录到 该目的结点的所有中间结点
优点:简单,适合一个负载稳定和拓扑变化不大的 网络
• 如果J列出了一个K还没有记录的某个目的地的路 径,结点K会向表中增加一项
• 如果K记录的下一结点标识为J,并且J所报告的 到目的地的距离改变了,也会更新路由表中的距 离度量
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
• 局部:路由器只知道与它有物理连接关系的邻居路由 器和到该路由器的代价
链路状态路由算法(link state routing)
• 全局:所有的路由器拥有完整的拓扑和边的代价的信 息
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
• 举例
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
标注:图抽象在其它网络上下文中也十分有用 例如: P2P, N是peer结点,E是TCP的连接
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
图抽象:边的代价
5
v 3w
2
5
u
2 31
z
1
x
1y
2
• c(x,x’) = 链路的代价 (x,x’)
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
距离矢量路由算法
当结点K从结点J接收一个更新消息后,它对 到每个目的地的路由和距离度量进行检查
• 如果J知道一条到目的地的更短的路径,结点K更 新该目的地对应的下一结点标识和距离度量
该方法的缺点是网络中的分组数目会迅速增加,导 致网络出现拥塞现象,应用并不广泛
该方法可用于健壮性要求很高的地方,如军事网络
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
随机走动法
随即徘徊法
当分组到达某个结点时,随机选择一条链路作为转 发的路由;当某结点的输出链路有3条时,就以平均 概率0.33选择任一条链路作为转发路由
简单性(simplicity):在计算机上,算法的实现应 该简单。最优但复杂的算法,时间延迟很大,不实 用,不应为了获取路由信息而增加很多的通信量
健壮性(robustness):算法应适应通信量和网络拓 扑的变化,不向很拥挤的链路发送数据,不向中断 的链路发送数据
稳定性(stability):产生的路由不应该摇摆
- e.g., c(w,z) = 5
• 代价可能总为1, 或者是链路 带宽的倒数, 或者是拥塞情况 的倒数
Cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp) 问题: 结点u到结点z的最小代价路径是什么?
路由算法:发现最小代价路径的算法
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
距离矢量路由算法
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
距离矢量路由算法
路由器1的更新前的路由表 路由器2发给路由器1的报文
一个结点的汇集树:所有其它结点到此结点的最优路径 形成的树
路由算法就是为所有路由器找到并使用汇集树
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
路由算法的原则
正确性(correctness):算法必须正确和完整,使 分组一站一站接力,正确发向目的站点
距离矢量路由算法
算法表示
初始化。对于每个结点G,对所有它直接连接的 目的地N,路由表中的表项用三元组(N,G,0)来表 示,即从结点G到目的地N无需经过转发
结点G定期发送它的路由表给相邻结点。更新信 息中对应着每一个目的地N用一个三元组来表示 (N,V,D),即到目的地N的路由上的下一结点为 V,G到N的距离为D
路由算法的分类
自适应或者非自适应?
非自适应算法(non-adaptive algorithm):不能 适应网络拓扑和通信量的变化,路由表是事先计 算好的,也叫静态路由算法和非自适应路由算法
自适应算法(adaptive algorithm):能适应网络 拓扑和通信量的变化,也叫动态路由算法和自适 应路由算法
缺点:灵活性较差,无法对网络的拥塞和故障作出 反应
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
洪泛法
结点收到不是发给它的分组时,就将该分组的副本 向除输入链路之外的所有与此结点相连的链路转发 出去
当网络的通信量很小时,该方法使分组的时延为最 小,因为在并行发送的路由中,肯定有一条为最佳
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
孤立路由选择
每个结点并不利用其它结点来的网络信息,仅仅根 据它自己所看到的情况来确定路由 最短等待法
逆向学习算法
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么