- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[信息与通信]第四章最短路由
什么是路由 路由是网络的核心功能 路由确保源节点的信息能够在一定性能指标的条件下正确的到达目的节点集合 在源节点和目的节点之间选择一条传输路径 在路径选择好以后,把消息正确发送到接收端 什么是路由 路由的决策时间 数据报路由: 每一个分组都独立路由 虚电路: 为每一个会话进行一次路由决策 更多的状态 静态路由 每一个OD对预先安排好路由 路由分类 按照目的节点数量分 点到点 组播 物理介质 光网络 无线、移动 传感器网络 互联网 地理路由 网络功能 P2P 内容分配网 路由选择对系统性能的影响 路由选择对系统性能的影响 时延 吞吐量 路由选择对系统性能的影响 路由选择对系统性能的影响 好的路由算法的特点 在高的业务负载的情况下,在保证相同时延的条件下,可以增加网络的通过量 在轻载或者中等负载的情况下,减少每一个分组的平均时延 路由对流量控制的影响 路由和流量控制紧密相关 路由使用的链路拥塞测度取决于流控 流量控制的反馈时延又取决于路由 理论上能够对他们一起优化,但是在实际操作中不实用 但是把路由和流量控制分离开,则路由和流量控制都不可能获得较好的性能 最短路由 每一个链路都有一个代价 链路长度 链路时延 拥塞 通信成本 路径长度是路径上所有链路的代价的和 最短路径是具有最小长度的路径 最短路径算法 Bellman ford 算法 Dijkstra’s algorithm 其他 无向图 有向图 有向图G=(N,A):节点集合N和有序节点对集合A 例子: 路由表 数据层面: 使用路由表转发分组 控制层面: 建立和维护路由表 (e.g., Distance Vector, Link State protocols) Bellman-Ford Algorithm 目的:计算图中节点1到其它节点的最短路径 每个节点V有一个变量记录从源节点S 到节点V的最短路径长度的当前估计值,记为d(v) 初始化:对于节点S,有d(s)=0 ,其他节点V, d(v) 设为无穷大 Bellman-Ford Algorithm 每一个节点按照下面的原则刷新d(v) Example: Bellman-Ford’s algorithm (1) Example: Bellman-Ford’s algorithm (2) Example: Bellman-Ford’s algorithm (3) Example: Bellman-Ford’s algorithm (4) Example: Bellman-Ford’s algorithm (5) 分布Bellman-Ford 链路代价随着时间变化而变化 随流量波动而变化 链路故障 每个节点维持一个路由表 需要周期刷新以反映网络流量的变化 令Di为节点i到达目的节点的代价 分布Bellman-Ford 每个节点周期刷新Di 每个节点周期地测量该节点到达一跳邻居节点的距离;记录邻居节点j发送给它的路由表,该路由表包括邻居节点j到达目的节点的距离Di 计算Di,并且把这个值发送给它的邻居 如果网络没有变化,则算法在N步后收敛 分布Bellman-Ford 分布Bellman-Ford Bellman-Ford:收敛问题 Bellman-Ford:收敛问题 解决方法: 反向毒化(水平分裂算法):如果节点2是通过节点3到达节点1的,则节点2就向节点3通报它到节点1的距离无穷大 D2=2,D3=1,节点3向节点2通报距离1,节点2向节点3通报距离无穷大 节点3和节点1之间链路断,节点3向节点2通报无穷,则节点2通过100的链路去1 节点2向3通报100,则节点3通过2去往节点1 Bellman-Ford:收敛问题 反向毒化有时也解决不了问题 C到D为1,A通过C到D为2, B通过C到D为2 CD断开,A向C通报无穷,B向C通报无穷,C判断D不可达 B听到A到D距离为2,则B认为 通过A到D的距离为3.同理,A认 为通过B到D的距离为3.计数到无穷大 Dijkstra’s 算法 Dijkstra’s Example (2) Dijkstra’s Example (3) Dijkstra算法的实现 集中算法:一个节点收集到全网的拓扑,用Dijkstra算法计算路由 计算结果广播到全网 分布式算法:每个节点把它到邻居节点的距离和邻居节点的地址向全网广播,则网络上每一个节点都可以知道全网拓扑,在利用Dijkstra算法计算路由 OSPF 有向图中的路由 前面的两种算法都是计算S点到其他节点的最短路由. 如果需要计算从其他节点到S节点的最短路由,则 对于belman-ford 对于Dijkstra D(v) = min( D(v), D(w) + c(v,w) ) 5.4 自适应最短路由的稳定性分
文档评论(0)