路由器网络c算法距离矢量协议直接传送各自的路由表信息。网络中的路由器从自己的邻居路由器得到路由信息,并将这些路由信息连同自己的本地路由信息发送给其他邻居,这样一级级的传递下去以达到全网同步。每个路由器都不了解整个网络拓扑,它们只知道与自己直接相连的网络情况,并根据从邻居得到的路由信息更新自己的路由表。
距离矢量协议无论是实现还是管理都比较简单,但是它的收敛速度慢,报文量大,占用较多网络开销,并且为避免路由环路需要做各种特殊处理。
距离矢量算法要求每个路由器将自己的路由表传送给相邻的路由器。当路由器接收到更新的路由信息时,首先将更新的信息与原有的路由表中的信息相比较,遇到下述情况之一时.须修改本地路由表(假设RouterA收到RouterB的D-V报文)以反映***的网络变化:
(1)RouterB的路由表中列出的某表项RouterA的路由表中没有,则RouterA的路由表中须增加相应表项,其目标网络为RouterB路由表中的目标网络,其路径开销为RouterB表项中的路径开销加l(假设以跳数计算路径开销).其下一跳为RouterB;
(2)RouterB的路由表中去往某目标网络的路径开销比RouterA的路由表中去往该目标网络的路径开销减1还小.这说明去往该目标网络若经过RouterB路径开销会更小.则RouterA修改本表项,将下一跳改为RouterB,路径开销为RouterB中的路径开销加l:
(3)RouterA的路由表中去往某目标网络的下一跳为RouterB,而RouterB的路由表中去往该目标网络的路径开销发生了变化.则RouterA中相应表项的路径开销须修改.以RouterB的更新后的路径开销加l取代原来的路径开销;
(4)RouterA的路由表中去往某目标网络的下一跳为RouterB,而RouterB的路由表中不再包含去往该目标网络的路径,则RouterA的路由表中相应路径应删除。
抑制广播风暴的方法:
水平分割是在距离矢量路由协议中最常用的避免环路发生的解决方案之一。分析产生路由环路的原因,其中一条就是因为路由器将从某个邻居学到的路由信息又告诉了这个邻居。水平分割的思想就是在路由信息传送过程中,不再把路由信息发送给接收此路由信息的接口上。如上图所示:
路由器C告诉路由器B去往网络11.4.0.0的路由,路由器B会把此路由信息传递给路由器A。同时,也会再传回给路由器C。网络11.4.0.0没有崩溃时,路由器C不会接受路由器B传递来的去住网络11.4.0.0的路由信息。因为,路由器C有花费更小的路由。
如果路由器C到达网络11.4.0.0的路由崩溃了,路由器C就会接受路由器B传递来的去往网络11.4.0.0的路由信息,尽管这条路由信启、已经是错误路由了(因为随着路由器C去往网络11.4.0.0的路由崩溃,路由器B从路由器C学到的去往网络11.4.0.0路由也就错误了)。但是路由器C并不知道这一点。
这样,路由器B认为可以通过路由器C去往网络11.4.0.0,路由器C认为可以通过路由器B去往网络11.4.0.0,就形成了环路。
水平分割方法就是解决这样问题的,水平分割不允许路由器将路由更新信息再次传回到传出该路由信息的端口。上图中,路由器B从路由器C那里学习到了去往网络11.4.0.0的路由。水平分割规定:路由器B不再把去往网络11.4.0.0的路由信息传回给路由器C,从而在一定程度上避免了环路的产生。