距离矢量路由算法(D-V)
Distance vector routing:动态路由算法,最初应用于ARPANET,后来应用于因特网的RIP协议(路由信息协议) ,Cisco的IGRP和EIGRP路由协议也是采用DV这种路由算法的。
基本思想
每个结点通过测取与相邻结点的距离,再依据与其相邻结点交换的距离信息(度量可能采用跳数,时间延时等),间接地求出路由表,邻居之间相互交换信息
1)各结点周期性地测取相邻结点的距离
2)向相邻结点发送它到每个目的结点的距离表
3)同时也接收每个邻居结点发来的距离表
现在1节点开始周期性的测量相结点的距离,并假设从相邻结点接受到的向量表,如下图
开始更新路由器1的向量表
D-V算法缺点
路径信息不一致
收敛速度慢(好消息传播得快,坏消息传播得慢)
结论
通常情况下,不适合大型网络,不提倡使用,因为会增大路由表,浪费链路带宽。
链路状态路由算法(L-S)
Link state routing:动态路由算法
基本思想-5个部分:
1.发现它的邻接结点,并得到其网络地址
路由器启动后,向每个点到点线路发送HELLO分组,另一端的路由器发送回来一个应答说明它是谁
2.测量它到各邻接结点的延迟或开销
发送一个ECHO分组要求对方响应,来回时间除以2(可多次测量取平均值)
3、组装一个分组,包含它刚知道的所有信息
4、将分组发给所有其他路由器(扩散法)
5、计算到每个其它路由器的最短路径
用Dijkstra算法计算到每个结点的路由,得到该结点到每个结点的最短路径
优点:
L-S packet一次性,无修改地向全网广播,保证各路由器的路由信息的一致性好
每个路由器在本地计算shortest path,不相互影响
收敛性好,坏消息也一样传播很快
适用于大型网络
缺点:
每个路由器需要有较大的存储空间,计算工作量大