6.6. Changing the Contents of EID-to-RLOC Mappings (更改 EID-to-RLOC 映射内容)
6.6. Changing the Contents of EID-to-RLOC Mappings (更改 EID-to-RLOC 映射内容)
由于 LISP 架构使用缓存方案获取并存储 EID-to-RLOC 映射, ITR 获得更新映射的唯一途径是重新请求映射. 然而 ITR 不知道映射何时变化, ETR 也不跟踪哪些 ITR 请求过其映射. 出于可扩展性, 希望保持这一方式, 但需要提供途径使 ETR 能更改映射并通知当前正使用此类映射与 ETR 站点通信的站点.
按字典序将新 Locator 记录追加到 Locator-Set 末尾时, 更新映射较容易. 假定新映射保持与旧映射相同的 Locator 排序, 仅在列表末尾追加新 Locator. 因此部分 ITR 可有新映射, 而其他 ITR 在超时前仍只使用旧映射. 当 ITR 仅有旧映射, 但检测到 Locator-Status-Bits 中对应于其缓存列表之外 Locator 的位被置位时, 直接忽略这些位. 然而这只可能发生在 locator 地址按字典序大于现有 Locator-Set 中地址的情况下.
为保持字典序而在 Locator-Set 中间插入 Locator 记录时, 使用第 6.6.2 节的 SMR 程序通知 ITR 与 PITR 新的 Locator-Status-Bit 映射.
从 Locator-Set 移除 Locator 记录时, 已缓存该映射的 ITR 将不使用被移除的 Locator, 因为 xTR 会把对应 Locator-Status-Bit 置 0. 因此即使 Locator 仍在列表中也不会被使用. 对于新的映射请求, xTR 可将 Locator AFI 设为 0 (表示未指定地址), 并将对应 Locator-Status-Bit 置 0. 这迫使持有旧映射或新映射的 ITR 都避免使用被移除的 Locator.
若映射在长时间内发生许多变化, Locator-Set 中间会出现空记录槽, 新记录追加在末尾. 某时点压缩 Locator-Set 会有益, 以便高效打包 Locator-Status-Bit 设置.
此处提出三种 Locator-Set 压缩方法: 一种运维机制与两种协议机制. 运维方法使用 clock sweep. 协议方法使用 Solicit-Map-Request 与 Map-Versioning 概念.