【通用】计算机网络网络层路由算法.pptVIP

  • 1
  • 0
  • 约3.07千字
  • 约 32页
  • 2020-05-23 发布于湖北
  • 举报

【通用】计算机网络网络层路由算法.ppt

路由算法(Routing Algorithm) 是网络层软件的一部分,负责所收到数据包发送到哪一条线路上。 路由选择算法应具有下列特性:正确性、简单性、鲁棒性、稳定性、公平性和最优性。 路由算法应该能够处理拓扑结构和流量方面的各种变化,而不能要求所有主机停止所有工作。 路由选择算法可以分为两大类: 非自适应---不会根据当前测量或者估计的流量和拓扑结构,来调整它的路由决策。所用的路由选择是在预先离线情况下计算好的,并在网络启动时被下载到路由器中的。 自适应---根据拓扑结构、通信量的变化来改变其路由选择。 5.2.1 优化原则 最优路径一般陈述:如果路由器J在路由器I到K的最优路径上,那么J到K的最优路径也必须遵循同样的路径。 汇集树: B A C D E G F H I J 路由器B的汇集树 5.2.2 最短路径算法 基本想法:构造一张网络图中每个节点代表一个路由器,每条边代表一条通信线路或链路,为了选择给定路由器之间的路由,只需找出他们的最短路径。 最短路径: 度量方法:跳数,以千米为单位的距离。标准测试包的平均延迟。 Dijksstra算法 5.2.3 泛洪算法 泛洪:将每一个入境数据包发送到了除该数据包到达的那条线路外的每条出境线路。 缺点:产生大量重复数据包。 措施 :(1)设置跳计数器; (2)跟踪数据包。 优点:确保数据包被传送到每个网络中的节点; 泛洪途径的鲁棒性非常好; 即使大量路由器被炸成碎片路由器也能找到一条路径使得数据包到达目的地。 距离矢量路由算法 (Distance Vector Routing) 工作原理 :每个路由器维护一张表,表中给出了到每个目的路由器的已知最短“距离”和相应输出线路,并通过与相邻路由器交换距离信息来更新表。 “距离” :到目的路由器的跳数、估计的时间延迟、路由排队的分组估计总数或类似的值。 ? 假设使用延迟作为距离度量,并且路由器知道他到每个邻居的延迟。每隔T秒每个路由器向他的每个邻居发送一个表,该表记录了它到每个目标的延迟,同时它也从邻居那里收到一个类似的表。 交换距离信息更新路由表示例 无穷计算问题 ∞ 第1次交换后 ∞ 第3次交换后 A B C D E 1 2 3 4 初始时 3 2 3 4 第1次交换后 3 4 3 4 第2次交换后 5 4 5 4 第3次交换后 5 6 5 6 第4次交换后 7 6 7 6 第5次交换后 7 8 7 8 第6次交换后 ∞ ∞ ∞ ∞ (b) . . . A B C D E ∞ ∞ ∞ ∞ 初始时 1 ∞ ∞ 1 2 ∞ ∞ 第2次交换后 1 2 3 1 2 3 4 第4次交换后 (a) 问题的核心在于当X告诉Y自己有一条通往某个地方的路径的Y不知道自己是否在这条路径上。 链路状态路由算法 发现邻居,了解其网络地址 设置到每个邻居节点的距离或成本度量值。 构造一个包含所有刚刚获知的链路信息包。 将这个包发送给所有其他的路由器,并接受来自其他路由器的信息包。 计算每个到其他路由器的最短路径。 发现邻居 在每一条点到点的线路上发送一个特殊的HELLO数据包,线路另一端的路由器返回一个应答说明自己是谁。 两个或多个路由器通过一个广播链路连接的情况: 设置链路成本 一种与带宽成反比; 链路延迟是成本的组成部分。 方法:通过线路给另一边发送一个特殊的ECHO数据包,要求对方立即发回,通过测量往返时间再除以2,发送路由器可以得到一个合理的延迟估算值。 构造链路状态包 内容:发送方的标示符,接着是一个序号和年龄,邻居列表。 创建时间:周期性,发生重要事情时。 链路状态包 一个网络示例 分发链路状态数据包 (1)泛洪法:为了控制泛洪规模,每个数据包包含一个序号,序号随着每个数据包发出逐一递增,路由器记录下它所看到的所有(源路由器,序号)对,当一个新的链路状态数据包到达时,路由器检查这个数据包是否已经出现在上述观察到的列表中,若是新的数据包,则转发,若重复或过时则丢弃。 (2)改进方法:当数据包被泛洪到其他路由器时并没有被立即排入队列等待,首先放到保留区。在它被转发出去前另一个来自同一源路由器的链路状态数据包也到来,就比较他们的序号来判定转发哪一个。 路由器B的状态包缓冲区 特殊情况:如果一个重复数据包到来时,原来的数据包仍然在缓冲区。此时标志位的变化。C的副本从F到达,那么标志位变为100011. 计算新路由:利用Dijikstra算法。 链路状态路由算法优点:没有慢收敛问题。 5.2.6 层次路由 原理:路由器被划成了区域,每个路由器知道如何将数据包路由到

文档评论(0)

1亿VIP精品文档

相关文档