在大多数情况下,数据包需要多跳才能到达目的地。路由是分组交换网络设计中最复杂和最关键的方面之一。
路由算法的理想特性:-
- 正确性和简单性
- 鲁棒性:网络即使在遇到故障时也能通过某些路由传送数据包的能力。
- 稳定性:面对网络中不断变化的条件,算法应该快速收敛到平衡。
- 公平与最优
- 效率:最小的开销。
路由算法的设计参数:
- 性能标准:跳数、成本(以高带宽路径发送数据包成本较低)、延迟(队列大小)、吞吐量时间(传输的数据包数量/时间)。
- 决策时间:何时决定路由数据包?每包(数据报)或每会话(虚拟电路)。
- 决策地点:谁来决定路由?每个节点(分布式)、中心节点(集中式)、源节点(源)。
- 网络信息源:无、本地、相邻节点、沿途节点、所有节点。
- 网络信息更新时间:连续、周期性、主要负载变化、拓扑变化。
路由策略:
- 固定路由
- 洪水
- 动态路由
- 随机路由
- 基于流的路由
固定路由 –
- 为网络中的每个源节点和目标节点对选择一条路由。
- 路线固定;仅当网络拓扑发生变化时才会发生变化。
固定路由:示例 (1)
图 –具有六个节点(路由器)的简单分组交换网络
图 –基于最低成本路径算法的中央路由表
- 基于存储在网络控制中心的最低成本路径创建中央路由矩阵
- 该矩阵显示了路由的每个源目的地,路由上的下一个节点的身份。
- 缺点:如果网络控制中心出现故障,那么一切都会崩溃。因此它是不可靠的。
固定路由:示例 (2)
‘
图 –存储在网络不同节点的路由表
- 为每个节点创建路由表。这称为分布式路由算法
- 可以使用最小路径或最小跳到达方法创建路由表。两种著名的路径算法
- Dijkstra 算法
- 贝尔曼福特算法
优点 –
- 简单的
- 在可靠网络中工作良好,在可靠网络中负载稳定
- 虚电路和数据报相同
缺点——
- 缺乏灵活性
- 不对故障或网络拥塞做出反应
洪水——
- 不需要拓扑、负载条件、差异成本等网络信息。路径
- 到达节点的每个传入数据包都会在每个传出数据包上发送出去,除了它到达的那个。
- 例如上图
- 到 (1) 的传入数据包被发送到 (2), (3)
- 从(2)发送到(6),(4)和从(3)发送到(4),(5)
- 从(4)发送到(6),(5),(3),从(6)发送到(2),(4),(5),从(5)发送到(4) ),(3)
特征 –
- 源和目的地之间的所有可能的路由都被尝试。如果路径存在,数据包将始终通过
- 尝试所有路线后,将至少有一条路线最短
- 访问所有直接或间接连接的节点
限制 –
- 洪水会产生大量重复的数据包
- 必须使用合适的阻尼机制
跳数 –
- 跳计数器可以包含在分组报头中,其在每一跳处递减。
当计数器变为零时,数据包被丢弃 - 发送方初始化跳计数器。如果不知道估计值,则将其设置为子网的全直径。
- 使用序列号跟踪负责泛洪的数据包。避免再次发送它们。
选择性泛洪:路由器不会在每条线路上发送每个传入的数据包,只会在那些大致朝着目的地方向进入的线路上发送。
洪水的优点:
- 可以发送高度稳健的紧急消息或即时消息(例如军事应用)
- 在虚电路中建立路由
- 洪水总是选择最短路径
- 向所有节点广播消息
参考 –
数据和计算机通信
阅读下一篇文章 – 路由协议集 1(距离矢量路由)