看了一下 draft,自己总结的,不一定准确,但基本差不多
包头与消息格式改变
- 增加 M 位,用于注册至 MAP
- Neighbour Discovery 有一个新的结构,为 MAP 加的。
MN
MN 是改进的重点,大部分改进发生在这里。- 从 Router 的 RA 中发现 MAP,选择 perference 值最高的进行 BU。选择距 离远的(覆盖范围大的) MAP,可以减小切换发生的次数。
- 如果在相同的 MAP 内,只要重新 BU 一下新的 LCoA 就行了
- 如果进入新的 MAP,使用 stateless 的方式,生成新的 RCoA
- 向 MAP 发送 Local BU:置 M 和 A 位,是一种 BU,RCoA 放到 Home Addr 的位置,不需要 Alternate-CoA,LCoA 是作为源地址的。
- 注册新的 MAP 前应该使用新的 LCoA 向原来的 MAP 同样进行一次 Local 的 BU,减少丢包。
- MAP 进行 DAD,并发送回来 BAck。没有新定义错误代码,就是原有的。如果 返回的 ack 不包含 type2 的路由头部的话,忽略它。
- 所有发送的包通过隧道发送到 MAP,外层头部 LCoA-->MAP,内部的则以 RC oA 为原地址。
- 可以绑定多个 MAP,但不能嵌套使用,这样会降低协议效率和性能。(draft -ietf-mipshop-hmipv6-03.txt, October 2004, pp. 10,pp.16)
- 绑定 MAP 后,使用 RCoA 向 HA 和 CN 进行 BU,当然是通过 MAP 的。向 HA 和 CN 进行 BU 的lifetime 不能比 MAP 的大。
- 对以后通过隧道收到的包进行解包。
- 可以不通过 MAP。
MAP
MAP 是作为一个本地的 HA 存在的,其核心工作就是进行一个隧道操作,它不知道 HA 到底是谁。- 接受到 MN 的注册,返回确认信息,必须返回 type 2 的路由头;这个要参 考 MIPv6 对 HA 的规定,
- 与 MN 进行双向隧道。
- (与HA一样),使用 Neighbour Advertisement 来拦截到 RCoA 的包,把它们 通过隧道发送给 LCoA。