Appendix B. 架构常量 (Architectural Constants)
A.4 LSA 格式 (LSA formats)
本备忘录定义了五种不同类型的 LSA. 每个 LSA 都以标准 20 字节 LSA 头部开始. 该头部在 Section A.4.1 中说明. 随后的章节给出各个 LSA 类型的图示.
每个 LSA 描述 OSPF 路由域的一部分. 每台路由器都会产生 router-LSA. 此外, 每当路由器被选为 Designated Router 时, 它会产生 network-LSA. 也可能产生其他类型的 LSA (见 Section 12.4). 随后所有 LSA 都会在整个 OSPF 路由域中泛洪. 泛洪算法是可靠的, 确保所有路由器拥有相同的 LSA 集合. 关于泛洪算法的更多信息, 见 Section 13. 这个 LSA 集合称为链路状态数据库 (link-state database).
每台路由器从链路状态数据库构建一棵以自身为根的最短路径树. 这会生成一张路由表 (见 Section 11). 关于路由表构建过程的细节, 见 Section 16.
A.4.1 LSA 头部 (The LSA header)
所有 LSA 都以一个公共 20 字节头部开始. 该头部包含足够信息来唯一标识 LSA (LS type, Link State ID 和 Advertising Router). 在路由域中, 同一个 LSA 可能同时存在多个实例. 因而必须判断哪个实例更新. 这是通过检查 LSA 头部中也包含的 LS age, LS sequence number 和 LS checksum 字段完成的.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | LS type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
LS age
自 LSA 产生以来经过的秒数.
Options
路由域被描述部分所支持的可选能力. OSPF 的可选能力记录在 Section A.2.
LS type
LSA 的类型. 每种 LSA 类型都有独立的通告格式. 本备忘录中定义的 LSA 类型如下 (进一步说明见 Section 12.1.3):
LS Type Description
___________________________________
1 Router-LSAs
2 Network-LSAs
3 Summary-LSAs (IP network)
4 Summary-LSAs (ASBR)
5 AS-external-LSAs
Link State ID
此字段标识该 LSA 正在描述的 internet 环境部分. 该字段内容取决于 LSA 的 LS type. 例如, 在 network-LSAs 中, Link State ID 设置为该网络 Designated Router 的 IP 接口地址 (可从中推导出网络的 IP 地址). Section 12.1.4 进一步讨论 Link State ID.
Advertising Router
产生该 LSA 的路由器的 Router ID. 例如, 在 network-LSAs 中, 此字段等于该网络 Designated Router 的 Router ID.
LS sequence number
检测旧的或重复的 LSA. 一个 LSA 的连续实例会被赋予连续的 LS sequence numbers. 更多细节见 Section 12.1.6.
LS checksum
LSA 完整内容的 Fletcher checksum, 包括 LSA 头部但不包括 LS age 字段. 更多细节见 Section 12.1.7.
length
LSA 的字节长度. 这包括 20 字节 LSA 头部.
A.4.2 Router-LSAs
Router-LSAs 是 Type 1 LSAs. 一个区域中的每台路由器都会产生 router-LSA. 该 LSA 描述路由器到该区域的链路, 即接口, 的状态和代价. 路由器到该区域的所有链路都必须在单个 router-LSA 中描述. 关于构造 router-LSAs 的细节, 见 Section 12.4.1.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 |V|E|B| 0 | # links |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | # TOS | metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TOS | 0 | TOS metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |