文章目录
计算机网络——网络层(四)
十四、链路状态路由选择
距离矢量路由站的不高,看的不远,完全相信他的邻居。
链路状态路由选择力图站的足够高、足够远来避免距离矢量的问题。
14.1 主要思想
- 发现:发现他的邻居节点,了解他们的网络地址。
- 设置:到它的每个邻居的成本度量。
- 构造:一个分组,包含他所了解的所有信息。
- 发送:这个分组给所有其他的路由器。
- 计算:到每个路由器的最短路径。
发现
当一个路由器启动的时候,在每个点到点的线路发送一个特别的hello分组。
收到hello分组的路由器应该会送一个应答,应答中有它自己的名字。
设置链路成本
- 路由器发送一个特别的echo分组,另一端立刻回送一个应答,通过测量往返的时间,发送路由可以获得一个合理的延迟估计值。
- 另一种常用的选择是链路带宽(反比)。
构造链路状态分组
分组包含如下信息
- 发送方的标识
- 序列号
- 年龄
- 邻居列表
- 到邻居的成本
发布分组
- 每个分组都包含一个序列号,序列号随着分组产生递增。
- 路由器记录所有看到的 原路由器-序列号 对。
- 当新分组到达时,若分组是新的,就从除了来的线路泛洪出去。若是重复分组,则被丢弃。如当前序列号比之前接收过的还小,则会当做过时信息丢弃。
发布过程中的问题及解决:
- 序列号回转:使用32位序列号。
- 如果一个路由崩溃,那么他将丢失自己的序列号记录,如果他再从0开始,新分组将被当做旧分组被拒绝。
- 如果一个系列号被破坏了,比如发方的序列号是4,但是由于产生了一位错误,序列号被看做是64450,那么,序列号5-65540的分组都被当做过时分组拒绝。
解决路由崩溃和序列号破坏:
- 每个分组序列号后面的年龄每秒钟减1
- 当年龄为0,该路由的信息被丢弃。
算法改进