跳到主要内容

5.3. Serial Query (序列查询)

5.3 Serial Query (序列查询)

路由器发送序列查询以要求缓存提供自序列查询中指定的序列号以来发生的所有公告和撤销。

如果缓存有自路由器指定的序列号以来的更改记录(可能为空), 缓存将使用缓存响应PDU(第5.5节)回复此查询, 然后是零个或多个有效负载PDU和数据结束PDU(第5.8节)。

在回复序列查询时, 缓存必须返回使路由器与缓存同步所需的最小更改集。也就是说, 如果特定前缀或路由器密钥在路由器指定的序列号和缓存的当前序列号之间经历了多次更改, 缓存必须合并这些更改以向路由器呈现这些更改的最简单视图。通常, 这意味着对于任何特定的前缀或路由器密钥, 数据流最多包含一次撤销, 然后最多包含一次公告, 如果所有更改都被抵消, 数据流将根本不提及该前缀或路由器密钥。

这种方法的理由是, RPKI-路由器协议的全部目的是将工作从路由器卸载到缓存, 因此简化更改集应该是缓存的工作, 从而减少路由器的工作。

如果缓存没有更新路由器所需的数据, 可能是因为其记录不回溯到序列查询中的序列号, 那么它会使用缓存重置PDU(第5.9节)响应。

会话ID告诉缓存路由器期望的实例, 以确保序列号是相称的, 即缓存会话没有更改。

0          8          16         24        31
.-------------------------------------------.
| Protocol | PDU | |
| Version | Type | Session ID |
| 1 | 1 | |
+-------------------------------------------+
| |
| Length=12 |
| |
+-------------------------------------------+
| |
| Serial Number |
| |
`-------------------------------------------'