TCP/IP 7.1.5泛洪扩散(Flooding)

6 、泛洪扩散( Flooding
   OSPF 拓扑数据库 - 就是链路状态数据库。这个数据库由路由器可以接受到的所有 LSA 组成。在 top 发生的变化,可以看成 LSA 的变化。
泛洪扩散过程就是将这些变化的货新的 LSA 发送到整个网络中去,以确保每一个节点的数据库都可以更新,最终保存所有其他节点的数据库的统一性。
所谓的泛洪扩散,就是(最新最全) LSA 的统一的过程。
 
链路状态更新数据包( Link State Update packets
链路状态确认数据包( Link State Acknowledgment packets
 
每个链路状态更新数据包 / 确认数据包里面可以放很多个 LSA 。就像是信封里面的信纸。
LSA 是扩散到整个网络中,但是更新 / 确认数据包却只在具有邻接关系之间传送
 
点到点:组播方式将更新数据包发送到组播地址 224.0.0.5
 
点到多点和虚链路:单播方式将更新数据包发送到邻接邻居的接口地址的
 
广播:
这个地方看图比文字更加的形象
BDR 也接收更新,但是他不重复扩散,除非 DR 挂了。
 
因为完全相同的链路状态数据库信息是正确操作 OSPF 最基本的前提,所以 LSA 泛洪扩散必须是可靠的。确认收到是正确的 LSA 很重要
1)  可靠的泛洪扩散:确认
每一个单独传送的 LSA 都必须被确认。隐式确认,显式确认
一个确认包可以确认好几个 LSA 通告,携带 LSA 的头部
路由器发送一个 LSA 的时候,会把这个 LSA 的一份拷贝放进邻居的链路状态重传列表中,每个 RxmtInterval 重传一次,直到收到确认。不管是什么网络情况,包含重传的链路状态更新数据包总是以单播发送
 
确认可以是时延和直接。延迟 --- 作用可以一下子确认好几个 LSA 通告(这个确认是单个组播的链路状态确认数据包来确认)延迟的时间要小于 RxmtInterval ,避免重传。
 
不同的网络类型上使用于链路状态更新数据包的单播 / 组播地址约定也可以适用于链路状态确认。
 
直接的确认总是立即发送并且是以单播方式发送的
1、  收到重复的 LSA ,表明邻居还没有收到这个 LSA 的一个确认
2、  LSA 的老化时间( age )达到最大生存时间,接收路由器的链路状态数据库已经没有这个 77LSA 实例
  
2) 可靠的泛洪扩散:序列号、校验和、老化时间(这个地方有必要重新理解)
每一个 LSA 都包含 3 个值用来确保在每个数据库中保存的 LSA 是最新的。
序列号、校验、老化时间
序列号:就是棒棒糖 ~~ 0x80000001 0x7ffffff.
校验和:每个 LSA 的校验和没 5min 将检验一次( age 字段不放在里面),确保没有被破坏
老化时间:到达最大老化时间,重新泛洪扩散,在路由器的数据库中清除该 LSA 。时间 0~3600 就是 1h
 
收到相同的 LSA 的多个实例是,确认最新的方法:
1、  比较 LSA 实例的序列号,拥有最大序列号就是最新的
2、  序列号相同,比较校验和。拥有最大的无符号校验和的 LSA 就是最新的 LSA
3、  LSA 实例校验也相同比较老化时间,最大生成时间的老化时间就是最新的
4、  LSA 的老化时间之间的差别多于 15min ,那么拥有较小的老化时间的 LSAS 是最新的 LSA
5、  如果都无法区别认为是一样的
 
 

你可能感兴趣的:(TCP/IP 7.1.5泛洪扩散(Flooding))