一、路由表
在计算机网络中,路由表或称路由择域信息库(RIB)是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。
在现代路由器构造中,路由表不直接参与数据包的传输,而是用于生成一个小型指向表,这个指向表仅仅包含由路由算法选择的数据包传输优先路径,这个表格通常为了优化硬件存储和查找而被压缩或提前编译。
二、路由算法简介
路由是提高功能,尽量减少路由时所带来开销的。当实现路由的软件必须运行在资源有限的计算机上时高效尤其重要。路由必须健壮,即在出现不正常或不可预见事件的情况下必须仍能正常处理,例如硬件故障、高和不正确的实现。因为位于的连接点,当它们时会产生重大的问题。最好的路由通常是那些经过了时间考验,证实在各种条件下都很稳定的算法。
此外路由必须能快速聚合,聚合是所有对最佳路径达成一致的过程。当某事件使路径断掉或不可用时,通过网络分发路由更新,促使最佳路径的重新计算,最终使所有路由器达成一致。聚合很慢的路由可能会产生路由环或网路中断。
三、路由算法的目标特点
路由通常具有下列目标特点的一个或多个:、简单、低耗、健壮、稳定、快速聚合、灵活性。
(1)最:指路由算法选择的能力。根据metric的值和权值来计算。
(2)简洁性:设计必须简洁。在中必须高效地提供其功能,尽量减少软件和应用的开销。这在当实现路由算法的软件必须运行在资源有限的计算机上时尤其重要。
(3)坚固性:路由处于非正常或不可预料的环境时,如硬件故障、过高或操作失误时,都能正确运行。由于分布在联接点上,所以在它们出故障时会产生严重后果。最好的通常能经受时间的考验,并在各种下被证实是可靠的。
(4):收敛是在最佳路径的判断上所有达到一致的过程。当某个事件引起路由可用或不可用时,就发出更新。路由更新遍及整个,引发重新计算最佳路径,最终达到所有一致公认的最佳路径。收敛慢的路由会造成路径循环或中断。
(5)灵活性:路由要求可以快速、准确地适应各种。例如,某个发生故障,路由要能很快发现故障,并为使用该网段的所有另一条最佳路径。
四、路由算法分类
使用路由来找到到达目的地的最佳路由。当说“最佳路由”时,考虑的参数包括诸如跳跃数(分组在中从一个或中间到另外的的行程)、延时以及分组数据包通信耗时。
静态不能根据和的变化来调整自身的,也就不能找出最佳路由,动态路由算法则是的要依靠网络当前的状态信息来决定。这种策略能较好地适应网络流量、拓扑结构的变化,有利于改善网络的性能。但由于算法复杂,会增加网络的负担。实用的三种是:
(1)分布式路由选择。每个只有与它直接相连的路由器的——而没有中的每个路由器的信息。这些也被称为DV()算法。
(2)集中式路由选择。每个都拥有中所有其他路由器的全部以及网络的流量状态。这些算法也被称为LS(链路状态)算法。
(3)混合式。将分布与集中路由选择、以及其它路由选择方法混合使用。
五、距离向量算法
各周期性地向所有相邻节点发送路由刷新报文,报文由一组(V,D)有序数据对组成,V表示该节点可以到达的节点,D表示到达该节点的距离(跳数)。收到路由刷新报文的节点重新计算和修改它的。
具有简单,易于实现的优点。但它不适用于路由剧烈变化的或大型的网络环境。因为某个节点的路由变化像波动一样从相邻节点传播出去,其过程是非常缓慢的,称之为“慢收敛”。因此,在算法的路由刷新过程中,可能会出现路由不一致问题。距离向量路由选择算法的另一个缺陷是它需要大量的信息交换,但很多都可能是与当前路由刷新无关的。
六、链路状态算法
⑴ 每个节点必须找出它的所有邻居
当一个启动后,通过在每一条点到点的链路上发送一个特殊的HELLO,并通过链路另一端的节点发送一个应答报文告诉它自己是谁。
⑵ 每个节点测量到它的每个邻居的或其他参数
链路-状态算法要求每个节点都知道到它的每个邻居的时延。测量这种时延的最直接的方法是在它们之间的链路上发送一个特殊的ECHO响应报文,并且要求对方收到后立即再将其发送回来。将测量得到的来回时间除以2,即可得到一个比较合理的估计。为了得到更准确的结果,可以将测试重复多次,取平均值。
⑶ 建立链路-状态
收集齐了用于交换的信息后,下一步就为每一个节点建立一个包含所有数据的报文。报文以发送者的标识符开始,随后为顺序号以及它的所有邻居的列表。对于每一个邻居,给出到此邻居的。
建立链路-状态报文很容易,困难是决定何时建立它们。一种可行的方法是每隔一段规律的时间间隔周期性地建立它们。另一种可行的方法是当检测到了某些重要事件的发生时建立它们。例如,一条链路或一个邻居崩溃或恢复时,建立它们。
⑷ 分发链路-状态报文
基本的分发算法是使用顺序号的法。这种分发算法由于循环使用顺序号、某个节点曾经崩溃或某个顺序号曾经被误用过等原因,可能会使不同的节点使用不同版本的,这将导致不稳定、循环、到达不了目的机器及其他问题。为了防止这类错误的发生,需要在每个中包含一个年龄域,年龄每秒减1,当年龄减到0时,丢弃此报文。
⑸ 计算新路由
一旦一个收集齐了所有来自于其他节点的链路-状态报文,它就可以据此构造完整的结构图,然后使用算法在本地构造到所有可能的目的地的最短通路。
链路-状态算法具有各节点独立计算最短通路、能够快速适应网络变化、交换的路由信息少等优点,但相对于路由选择算法,它较复杂、难以实现。