计算机网络复习小结(2)-路由算法
网络层路由算法:
静态路由和动态路由:
路由器转发分组是通过路由表转发的,而路由标识通过各种算法得到的。
静态路由算法(非自适应路由算法):
由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息,大型和复杂的网络环境通常不宜采用静态路由。
动态路由算法(自定义路由算法):
指路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些陆游信息会在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果。
静态路由算法的优点:简便,可靠,在符合稳定、拓扑变化不大的网络中运行效果很好。
动态路由算法的优点:能改善网络的性能,并有助于流量控制
缺点:算法复杂,会增加网络的负担,有时会因对动态变化的反应太快而引起震荡,或反应太慢而影响网络路由的一致性。
常用的动态路由算法:
距离-向量路由算法和链路状态路由算法
距离-向量路由算法
该算法中,所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点。这种路由选择表包含:
-
每条路径的目的地(另一结点)
-
路径的代价(距离)
在RIP算法中将距离定义为跳数,跳数指从源接口到达目的端口所经过的路由个数,每经过一个路由器,跳数加1
这种算法中,所有结点都必须参加距离向量交换,以保证路由的有效性和一致性,所有结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新他们的路由表:
1.被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由。
2.发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离。这种情况下,就用发送路由信息的结点的新路由替换路由表中到达那个目的地的现有路由
距离-向量算法的是指迭代计算一条路由中的站段数或延迟时间,从而得到到达一个目标的最短通路。要求每个节点在每次更新时都将它的全部路由表发送给所有相邻的结点,因为更新报文发送给直接邻接的结点,所以所有结点都将参加路由选择信息交换,所以在通信子网上传送的路由选择信息的数量很容易变得非常大。
最常见距离-向量路由算法是RIP算法,采用跳数作为距离的度量。
链路状态路由算法:
链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息。第一,主动测试所有邻接节点的状态,两个共享一条连接的结点是相邻结点,他们连接到同一链路,或者连接到同一广播型物理网络。第二,定期地将链路状态传播给所有其他结点(或路由结点)。典型的链路状态算法是OSPF算法。
在一个链路状态路由选择中,一个结点检查所有直接链路的状态,并将所得的状态信息发送给网上的所有其他结点,而不是只送给那些直接相连的结点。每个节点都用这种方式从网上所有其他的结点接收包含直接链路状态的路由选择信息。
每当链路状态报文到达时,路由结点就使用这些状态信息去更新自己的网络拓扑和状态视野图,一旦链路状态发生变化,结点就对更新的网络图利用迪杰斯特拉最短路径算法重新计算路由,从单一的源出发计算到达所有目的结点的最短路径。
链路状态路由算法主要有三个特征:
1.向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法,路由器通过所有端口向所有相邻的路由器发送信息,每个相邻路由器又将此信息发往其所有相邻路由器。
2.发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
3.只有当链路状态发生变化时,路由器才向所有路由器发送此信息。
优点:每个路由结点都是用同样的原始状态数据独立地计算路径,而不依赖中间结点的计算;链路状态不加改变地转发,因此采用该算法易于查找故障,因此链路状态算法比距离-向量路由算法有更好的规模可延展性。
比较:
在距离-向量路由算法中,每个节点只与它的直接邻居交谈,它为他的邻居提供从自己到网络中所有其他结点的最低费用估计。在链路状态路由算法中,每个结点通过广播的方式与所有其他节点交谈,但它仅告诉他们与它直接相连的链路的费用,
比较之下,距离-向量路由算法有可能遇到路由环路等问题。
层次路由
因特网将整个互联网划分为许多较小的自治系统。每个自治系统有权自主决定本系统内应采用何种路由选择协议。如果两个自治系统需要通信,那么就需要一种在两个自治系统之间的协议来屏蔽这些差异。因特网把路由协议划分为两大类:
1.一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP),也称域内路由选择,具体的协议有RIP和OSPF。
2.自治系统之间所使用的路由选择协议称为外部网关协议(EGP),也称域间路由选择,用在不同自治系统的路由器之间交换路由信息,并负责在不同自治系统之间选择最优的庐江。具体的协议有BGP。
题目小结:
静态路由选择使用手动配置的路由信息,实现简单且开销小
静态路由又称非自适应算法,用户可以随时配置路由表,动态路由也称自适应算法,需要适时获取网络的状态,并根据网络的状态改变路由决策。
距离-向量路由算法需要每个路由器维护一张路由表,该表给出了到达每个目的地址的一直最佳距离和下一步的转发地址。算法要求每个路由器定期与所有相邻路由器交换整个路由表,并更新自己的路由表项。从邻接节点接收到路由表不能直接进行比较,而要叫上相邻结点传输消耗后再进行计算。
链路状态路由算法中,每个路由器在自己的链路状态变化时,将链路状态信息用洪泛法传送给网络中的其他路由器。发送的链路状态信息包括该路由器的相邻路由器及所有相邻链路的状态。 链路状态协议具有快速收敛的优点,能够在网络拓扑发生变化时,立即进行路由的重新计算,并及时向其他路由器发送最新的链路状态,使得各路由器的链路状态表能够尽量保持一致。
在链路状态路由算法中,得到完整的拓扑结构后,路由器就是用迪杰斯特拉最短路径算垃圾算到所有结点的最短路径。
在距离-向量路由协议中,好消息传的快,坏消息传的慢
路由选择分为直接交付和间接交付。当发送站和目的站在同一网段内时,就使用直接交付,反之使用间接交付。间接交付的最后一个路由器肯定是直接交付。
采用分层路由后,路由器被划分为区域,每个路由器知道如何将分组路由到自己所在区域内的目标地址,但对于其他区域内的结构毫不知情,不同的网络相互连接时,可将每个网络当做一个独立的区域,这样的好处是一个网络中的路由器不必知道其他网络的拓扑结构。