距离矢量(Distance Vector)是两个
路由算法中的一个。另一类是链路状态
路由选择。基本上,路由协议基于
距离矢量算法根据目的地的远近来决定最好的
路径,链路状态协议是可以使用更高级的方法根据链路的变化,例如
带宽,延迟,可靠性和负载。
距离矢量协议根据距离的远近来决定最好的路径。距离可能用
跳数或一个metrics运算的组合来代表一个距离值。
距离矢量路由算法是
动态路由算法。它是这样工作的:每个
路由器维护一张矢量表,表中列出了当前已知的到 每个目标的最佳距离,以及所使用的线路。通过在邻居之间相互交换信息,
路由器不断地更新它们内部的表。
距离矢量路由算法最常见的是Ford-Fulkerson算法。该算法的核心思想是使用标号的方法不断寻找一个图上的 可增广
路径并且进行调整,直到找不到可增广路径为止。距离矢量路由算法号召每个
路由器在每次更新时发送它 的整个
路由表,但仅仅给它的邻居。距离矢量路由算法倾向于路由循环,但比
链路状态路由算法计算更简单。
在距离矢量
路由选择算法中,每个
路由器维持有一张
子网中每一个以其他路由器为索引的
路由选择表,表中的 每一个项目都对应于子网中的每个路由器。此表项包括两个部分,即希望使用的到目的地的输出线路和估计到达 目的地所需时间或距离。用度量标准可为站点,估计的时间延迟(ms),该路出排队的分组估计总数或类似的值。
假定
路由器知道它到每个相邻路由器的“距离”。如果度量标准为站点,其距离就为一个站点;如果度量标准是
队列长度,则
路由器会简单地检查每个队列;如果度量标准是延迟,路由器可以直接发送一个特别“响应”(ECHO)分组来测出延迟,接收者只对它加上时间标记后就尽快送回。