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