5.14 链路状态路由选择
链路状态路由(LS)基本原理:
- 发现 它的邻居节点,了解它们的网络地址(发送hello报文)
- 设置 到它的每个邻居的成本度量
- 构造 一个分组LSP,包含它所了解到的上述所有信息
- 发送 这个分组给所有其他的路由器(这一步非常重要)
- 计算 基于完整的网络图,计算到每个目标的最短路径
开销/量度/代价:自动发现设置或人工配置
常见量度:链路带宽(反比)
延迟亦可作为量度
发送一个特别的ECH0分组,另一端立刻回送一个应答
通过测量往返时间RTT,可以获得一个合理的延迟估计值
可多次测量,取平均值
一个链路状态分组/公告(LSP/LSA)包含:
- 发送方的标识(自己)
- 序列号(Seq.)
- 年龄(Age)
- 邻居列表
- 到邻居的成本/量度
发送LSP/LSA:
每个LSP分组都包含一个序列号,递增
路由器记录下它所看见的所有(源路由器、序列号)对
当一个的新的分组到达时,路由器根据记录判断:
》如果该分组是新的,就被泛洪广播(序列号不在表中,转发到除了来的线路以外的所有线路)
》如果是重复分组,即旧的被丢弃(系列号相等,喜新厌旧)
》如果是过时分组,则被拒绝(序列号比对应源路由器发送的曾经到过的序列号还小)
序列号回转问题(比如两位二进制表示:00->01->10->11->00…)
这个问题会导致路由器无法甄别哪个是新的,哪个是旧的
解决办法:
使用32-bit长的序列号
解决路由器崩溃,序列号损坏问题
每一个分组的序列号之后加一个年龄age
》每过一秒,age-1
》age=0,丢掉对应的LSP
还有一种解决办法:
》LSP/LSA不直接分发,首先放到保留区
》新到达的LSP/LSA会和保留区