解释说明
OSPF_Header.Type = 4;是对 LSR 的响应,其包含对方 LSR 要求的 LSA 数据;
报文示例
Internet Protocol Version 4, Src: 10.0.12.1, Dst: 224.0.0.6 Open Shortest Path First OSPF Header LS Update Packet Number of LSAs: 2 LSA-type 1 (Router-LSA), len 36 LSA-type 2 (Network-LSA), len 36 .000 0000 0000 0001 = LS Age (seconds): 1 0... .... .... .... = Do Not Age Flag: 0 Options: 0x02, (E) External Routing 0... .... = DN: Not set .0.. .... = O: Not set ..0. .... = (DC) Demand Circuits: Not supported ...0 .... = (L) LLS Data block: Not Present .... 0... = (N) NSSA: Not supported .... .0.. = (MC) Multicast: Not capable .... ..1. = (E) External Routing: Capable .... ...0 = (MT) Multi-Topology Routing: No LS Type: Network-LSA (2) Link State ID: 10.0.12.3 Advertising Router: 3.3.3.3 Sequence Number: 0x80000002 Checksum: 0xa966 Length: 36 Netmask: 255.255.255.0 Attached Router: 3.3.3.3 Attached Router: 1.1.1.1 Attached Router: 4.4.4.4
结构概览
注:该图示并不严谨,并没有表示出 Number of LSA 字段;
Number of LSAs
Number of LSAs:LSA 的数量;
图示未展示出 Number of LSAs 字段,然后才是多个 LSA Header + Payload 结构;
请结合报文示例部分显示的报文结构进行查看;
LSA Header
LS Age(链路状态老化时间):此字段表示LSA已经生存的时间,单位是秒。当 LSA 被始发时,该字段为0,随着LSA在网络中被泛洪,该时间逐渐累加,当到达MaxAge(缺省值为 3600s)时,LSA 不再用于路由计算(当然,路由器默认每 1800s 会重发该 LSA 报文,以刷新数据);
Options(可选项):每个 bit 都对应 OSPF 所支持的某种特性;
LS Type(链路状态类型):指示该 LSA 的类型,即决定 Payload 部分的数据内容。对于不同的 LSA 类型,具有不同的作用;
Link State ID(链路状态标识):不同的 LSA,对该字段的定义不同;
Advertising Router(通告路由器):产生该 LSA 的路由器的 Router ID;
LS Sequence Number(链路状态序列号):当 LSA 每次有新的实例产生时,序列号就会增加。该字段用于判断LSA的新旧或是否存在重复的实例。序列号范围是0x80000001-0x7FFFFFFF,路由器始发一个 LSA,序列号为 0x80000001,而后每次更新序列号 +1,当 LSA 达到最大序列号时,重新产生该LSA,并且把序列号设置为0x80000001;
LS Checksum(校验和):用于保证数据的完整性和准确性;
Length(长度):== LSA Header + Payload
LSA 存在于 LSU 中;当然也存在于 DD 中,但是 DD 仅包含 LSA Header 部分;
LS Type、Link State ID、Advertising Router,能够唯一表示一个 LSA 条目;
LS Age、LS Sequence Number、Checksum,能够判断 LSA 的新旧;
LSA Payload
参考 LSA Payload 笔记,获取 LSA 相关的内容;