TCP/IP 协议族 - 单播路由选择协议 笔记
引言
静态路由表还是动态路由表
静态路由表是人工设置的表项,但是如果链路出现故障时,就全完了。所以现在一般是动态路由表。
路由选择协议
分为域内路由选择
和域间路由选择
。
域内和域间路由选择
因为互联网太庞大,仅使用一种路由选择协议还无法处理所有路由器的路由表任务,因此,互联网需要划分成多个自治系统。
在自治系统内部的路由选择称为域内路由选择
。
域内路由选择协议包括:
- 距离向量(RIP)
- 链路状态(OSPF)
域间:
- 路径向量(BGP)
距离向量路由选择
Bellman-Ford 算法
看图论。
距离向量路由选择算法
当一个记录到达是:
- 如果相应的表项找到了,需要分两种情况:
- 如果这个记录的代价加上 1 之后小于路由表中的代价,修改。
- 如果下一跳是相同的,说明有一部分网络发生变化,就算距离变大也不能忽略这个数值,修改。
- 如果没有表项,添加。
计数到无穷大
考虑这么一种情况: A ——– B ——— C
如果 B 和 C 之间的网络断了,B 能马上反馈给 A,那么什么事没有。
如果 A 在收到 B 反馈之前发送了自己的路由表,B 收到这个更新,以为 A 找到了一条通向 C 的路,就更新了,然后发给 A,A 又以为 B 周围的环境变化了,就更新了这条线路,然后又发给 B,直到最后无穷大。
解决办法
- 定义无穷大。把无穷大定义为 16.
- 分割范围。只发送路由表的一部分。比如结点 B 认为到达 C 的路径要经过 A,就不要往 A 发了,因为 A 已经知道了。
- 用分割范围的话,当 A 收到 B 给他的,删除了 C 的路由表时,A 不知道是因为分割范围而删了,还是真的是到不了了,这时候就要使用毒性逆转策略。B 仍然可以通知 A 信息,不过把距离标为 16.
三结点的不稳定性
假设 A 发现到达 X 没路了,就发送给 B 和 C,而发送给 C 的包丢了,C 还一直以为到 X 有路。过一段时间,C 发送自己的路由表,然后骗了 B,B 再发路由表,就骗了 A。
RIP
报文格式
请求和响应
计时器
定期计时器
该计时器控制更新报文的定期发送,一般使用 25~35 之间的一个随机数,为了避免互联网过载。
截止期计时器
该计时器管理路由的有效性,长度为 180s。如果 180s 内没更新路由,就标记为 16.
无用信息收集计时器
当一条路由信息变为无效时,并不马上清除路由,而是保留 120s,之后才删除。 这是为了让邻站在某个路由被彻底清除之前了解该路由是无效的。
RIP
链路状态选择
- 每个结点创建一个有关链路状态的分组,成为 LSP。
- 洪泛。
- 为每个结点形成一个最短路径树
- 基于这个树形成路由表。
OSPF
开放最短路径优先,是一种基于链路状态路由选择的域内路由选择协议。
区域
它把一个自治系统划分为若干区域,在一个区域内使用洪泛法传送路由选择信息。在一个区域的边界,有特殊的路由器称为区域边界路由器,它们把有关本区域的信息汇总起来,发送到其他区域。
BGP
边界网关协议,是一个使用路径向量路由选择的域间路由选择协议。
这两个协议的具体部分就先跳过了,书上讲的比较复杂。