跳转至

Mobility Management

蜂窝网络中的移动性管理

  • 传统的有线网络:设备和位置存在固定关系,因此位置ID等价于设备ID
  • 新型的无线网络:设备可以自由移动,每个设备的位置需由网络来维护

我们重点聚焦以下几个问题

  1. 如何“切换”
  2. 位置管理
  3. 移动IP
名词汇总
  1. MS: Mobile Station, 移动台
    • 移动终端 + SIM卡
  2. BS: Base Station, 基站
  3. MSC: Mobile Switching Center, 移动交换中心
    • 管理连接多个BS
  4. RSS: Received Signal Strength. 接收信号强度
  5. HLR: Home Location Register, 家位置寄存器
  6. VLR: Visitor Location Register, 访客位置寄存器
  7. Paging: 寻呼
  8. MH: Mobile Host, 移动主机
  9. CH: Corresponding Host
  10. HA: Home Agent
  11. FA: Foreign Agent
  12. COA: Care-of-Address

Basic Idea

Handoff Management

步骤:

  1. Handoff Init: 用户/网络代理发现需要“切换”
    • 什么时候需要: 基于接收信号的功率 \(P\) / 接收信号的强度 \(RSS\)
  2. New Connection Generation: 网络为交接连接寻找资源, 并为连接的建立执行额外的路由
  3. Data-flow Control: 网络控制数据流, 从原来的路径传向新的连接路径
  4. Handoff Completion: 旧路径上资源的“析构”

Handoff的触发条件

  1. Basic RSS:
    • choose \(BS_{new}\) if \(P_{new}\) > \(P_{old}\)
  2. RSS with threshold:
    • choose \(BS_{new}\) if \(P_{new}\) > \(P_{old}\) and \(P_{old}\) < \(P_T\)
  3. RSS with hysteresis(滞后):
    • choose \(BS_{new}\) if \(P_{new}\) > \(P_{old}\) + \(P_H\)
  4. RSS with threshold and hysteresis:
    • choose \(BS_{new}\) if \(P_{new}\) > \(P_{old}\) + \(P_H\) and \(P_{old}\) < \(P_T\)

alt text

Handoff的类型

  1. Hard Handoff
    • 在与目标cell建立连接之前,MS中断与旧cell的连接
    • trait: 切换期间造成瞬时通话中断
  2. Soft Handoff
    • 在执行交接时,MS可以同时连接到多个cell,并使用合并的多个信号; 然后,它选择一个单元,并放弃其他单元
    • trait: 切换期间不会造成通话中断

Intra-cell vs Inter-cell vs Inter-area

alt text

结构组成

  • 扇区:Cell 的一个组成部分
  • Cell:包含很多的扇区,每个 Cell 有一个负责的 BS
  • Location Area:包含很多的 Cell,每个 Area 由一个负责的 MSC

分情况讨论

  1. Intra-cell handoff
    • 交接发生在由同一BS管理的不同扇区之间
    • BS 负责,在同一cell内寻找下家
    • MSC 完全不参与
  2. Inter-cell handoff
    • 交接发生在由同一MSC管理的不同BS之间
    • BS 和 MSC 都参与
  3. Inter-area handoff
    • 交接发生在由不同MSC管理的不同BS之间
    • 两类BS 和 两个MSC 都参与

Location Management

前置: 两种基本的location update思路

Location Area

alt text

对应上文“结构组成”中的Area

  1. Without Location Update
    • 网络没有维护 MS 的当前位置信息
    • 每当有呼叫到达时,网络就会在覆盖区域内broadcast发送搜索信息
    • 当 MS 收到搜索信息时,就对信息进行回复,以便网络找到 MS 的位置
  2. Location Update with Location Areas
    • MS 向系统报告其当前的 LA 信息
      • 何时报告? 基于时间 / 基于距离 / 基于运动 (下面会讲)
    • 系统现在知道了MS对应的 LA 信息
      • 只知道在哪个LA,但并不能具体知道在哪个Cell
      • 新消息到达,系统只搜索对应的LA -> 缩小范围与成本

前置: Location Database

任何 MS 的信息都会保存在两个位置数据库中:

  1. HLR: Home Location Register
    • 每个MS的主数据库
    • 永久地存放在一个固定的位置(比如办卡的那个城市对应的数据库)
  2. VLR: Visitor Location Register
    • 动态数据库,包含关于MS的临时信息
    • 位于这个 Location Area 的 MSC, 为来访的MS提供服务
    • 当一个 MS 移动到一个新的 MSC 区域时,该 MSC 的 VLR 将从 原HLR 请求关于 MS 的信息

Location Update Process

alt text

  • U1: MS进入新的LA,它向新的BS发送位置更新消息
  • U2: 消息转发至MSC,MSC向VLR发起visitor注册查询
  • U3:
    • 如果MS已经被VLR知道,VLR直接更新成新的位置,注册完成 (下面会讲)
    • 反之,VLR向HLR发送位置注册消息,以获取 原HLR 信息
  • U4: HLR认证,更新数据库中当前VLR(MS已从旧VLR新VLR),并向VLR确认MS的位置注册
  • U5: HLR向旧的VLR发送注册取消信息
  • U6: 旧VLR删除MS的记录, 同时向HLR发送ACK
如果MS已经被VLR知道?

我们后面会讲到这一点,在CH对FA的路由优化部分

Paging Process

paging 寻呼, 专指:BS -> MS的过程

当用户的手机(MS)处于空闲状态(Idle Mode)时,它不会主动与基站通信,以节省电量。但如果有电话、短信或数据需要送达,网络必须找到该用户的当前位置,这就是 Paging 的作用

  1. 新信息到达 Location Area,MSC 会 multicast 这条信息给 所有Cell中的BS
  2. 这些 BS 会在 自己cell 的区域内进行 paging
    • 分成两类: Parallel | Sequential (下面会讲)
  3. 现在,所有 Cell 中的所有 MS 都会听到,但只有 目标MS 才会发送 ACK
  4. 该 Location Area 有很多 BS,它们都可以听见此 ACK
  5. 这些 BS 向 MSC 报告: “目标MS 在我的覆盖范围内,我的 RSS 是 XXX”
  6. MSC收集完这些报告,选择 RSS 最强的 BS 为 MS 服务

事实上 Paging 可以分成两个类别:

  1. Parallel Paging: 在上述2中,所有cell的BS同时发送paging
  2. Sequential Paging: 在上述2中,所有基站按顺序paging
    • 按什么顺序? 从MS最后更新的位置开始,最短距离优先 ...

Paging 角度看 Size of Location Area:

  • Bigger LA:
    • 降低 Location Update 成本
    • 增加 Paging 成本
  • Smaller LA:
    • 增加 Location Update 成本
    • 降低 Paging 成本

Location Update Methods

在前置中,我们提及:MS 向系统报告其当前的 LA 信息

何时报告? 基于时间 / 基于距离 / 基于运动

这里我们就来解释“MS什么时候更新位置”,即:MS更新位置的方式

alt text

  1. 基于时间:MS 以固定时间间隔(使用时间阈值)定期执行位置更新
  2. 基于距离:通过移动到离前一个位置足够远的位置来触发的(使用距离阈值)
  3. 基于运动:通过跨越一定数量的不同小区边界来触发的(使用移动阈值)
    • 在某些情况下是有用的,例如,用户在LA边界之间来回移动

Mobile IP

普通的IP就不用说了,包括 IPv4 / IPv6

现在我们要考虑主机的移动性,按照原有IP的设计就不行了...

因此我们需要一种新的设计: Mobile IP

Architecture

我们以一个旅客从 Home Network 走到 Foreign Network 为例:

alt text

  1. MH: Mobile Host
    • “因旅游切换Area”的用户
  2. Home Network | Home Address
    • 用户激活SIM卡的地方,注册地网络 | 注册地址 (永久IP)
    • 这里的数据库就是 HLR
  3. Foreign Network | COA
    • 用户因旅游等进入的新环境,访客网络 | 访客地址 (临时IP)
    • 这里的数据库就是 VLR
  4. HA: Home Agent
    • 注册地网络中的路由器代理
  5. FA: Foreign Agent
    • 访客网络中的路由器代理
  6. COA: Care-of-Address
    • 访客地址,临时的IP地址
  7. CH: Correspondent Host
    • “正在calling旅游用户”的用户
    • 移动或静止的都可以

这里我们会有几个问题:

  1. MH 如何知道自己是否从 Home Network 到 Foreign Network?
  2. MH 初进入 Foreign Network,如何注册?
  3. 现在 MH 要不要跟 Home Network “划清界限”?
    • 答案是不要,因为不能!
  4. CH 呼叫 MH 的步骤是什么?

问题1: Agent Discovery

  1. MH 侦听来自 HA 和 FA 的周期性 ICMP 路由器通告消息
  2. MH 自身有 Network ID,HA 和 FA 也有
  3. MH 进行对比:
    • Network ID 不同: 是FA,说明已进入 Foreign Network
    • Network ID 相同: 是HA,说明还在 Home Network

问题2: Registration && Deregistration

  1. MH 进入 Foreign Network 时,跟 FA 进行双向交流
    • MH -> FA: 发出注册请求
    • FA -> MH: 给出相应的临时地址, COA
  2. MH 从 Foreign Network 返回至 Home Network
    • MH -> FA: 取消注册

问题3: FA 如何注册用户

FA 对于 MH 的注册离不开 Home Network 的 HA!

alt text

  1. MH 向 FA 发起注册请求,并提供自身的 Home Address
  2. FA 根据 Home Address,将 注册请求COA 转发到HA
  3. HA 更新 table, 将 Home AddressCOA 建立映射
  4. HA 通知FA,注册已接受
  5. FA收到许可,从而更新访客列表, 加入 Home AddressCOA 的映射
  6. FA 通知 MH,注册已通过

总之,HA 是 boss,FA是秘书,MH的注册请求给FA只是走个形式,具体能不能成功还得看 HA 拍板

问题4: Data Delivery

tunneling

隧道:在 Home Network 和 Foreign Network 之间建立一个隧道,并在隧道中向该 MH 发送封装的数据

隧道,也称为端口转发,是指通过公共网络传输仅用于私有网络(通常是公司网络)的数据。它为隧道入口和终端节点之间的可用数据包创建虚拟管道,是使用封装技术完成的。

alt text

  1. 当 CH 向 MH 发送数据包时,所有数据包的目的地址都是 MH 的Home address。因此,所有数据包都被发送到Home network
  2. 在接收到数据包后,HA 识别出数据包的目标地址属于 MH:
    • HA 在 table 中查找 MH 的 Home AddressCOA 的映射
    • packet 会加一层封装
    • HA 将数据包转发到拥有 COA 的 Foreign Network
  3. FA 识别 COA:
    • 给 packet 解封装
    • 使用原始的 Home Address 发送给 MH

Routing Optimization

看看上面的过程,你会发现有些地方很冗余。一个很朴素的想法便是: 既然 CH 和 MH 都在同一个 Foreign Network,能不能创建一种“直接通信”的方式呢?

上面的过程低效率体现在:

  1. 三角路由:CH -> HA -> FA -> MH
  2. Double Crossing: CH -> HA && HA -> FA

优化策略:

当 HA 收到不在 Home Network 的 MH 的数据包时,会向 CH 发送 "绑定更新信息"

  • "绑定更新信息" 有 MH 的 COA
  • CH 缓存 COA,未来的数据包直接发送到 COA

固有的弊端:当 MH 移动到新的 FA 时,缓存在 CH 中的 COA 就会变得陈旧 (下面会讲)

Handoff Management

我们以一个旅客从 Foreign Network 1 走到 Foreign Network 2 为例:

(1) MH 连接到新的 FA(FA2)

当 MH 移动到一个新的网络区域,它会找到一个新的外部代理 FA2,并完成注册。具体过程如下:

  1. FA2 在它的网络里定期广播广告信息(类似 Wi-Fi 路由器的 SSID 广播)
  2. MH 发现 FA2 并向它注册
  3. FA2 将 MH 的新位置(新的 COA 地址)通知 HA(Home Agent)
  4. FA2 通知旧的 FA1(MH 之前连接的 FA1),告诉它 MH 已经迁移到 FA2
  5. FA1 确认(ACK)并将 任何滞留的数据包 转发给 FA2,避免丢失数据
  6. FA2 告诉 MH,切换已完成,它可以正常使用新网络。

(2) CH仍然向旧的 FA 发送数据

MH 移动后,CH 仍然按照旧的 FA 发送数据。为了让未来的数据能直接送到 FA2,有两种情况:

为什么CH 仍然按照旧的 FA 发送数据

按最开始的例子:正常来说,CH 的呼叫不是按照 MH 的 HomeAddress 来的吗?

这样的话,步骤就是CH-HA-FA2? 为什么还会经过 FA1 呢?

这是 因为 CH 在发送数据时,可能使用的是上一次通信中缓存的 FA 地址,而不是每次都查 HA

这个行为类似于:

"上次我发消息给你时,你在 FA1,那我还是先发 FA1,看看它还能不能转交给你。"

  • 如果 FA1 仍然知道 MH 现在在哪里,它会直接转发给 FA2,省去了额外的 HA 处理
  • 如果 FA1 不知道 MH 去哪了,才会把数据发回 HA,让 HA 重新查询 MH 的新位置

📌 情况 1:旧的 FA 知道 MH 现在在哪

  1. CH 还在向 FA1 发送数据包
  2. 旧的 FA1 知道 MH 现在已经连接 FA2,所以它直接把数据包转发给 FA2
  3. 旧的 FA1 告诉 HA:"MH 已经换了位置",请更新你的记录
  4. HA 告诉 CH:"MH 现在在 FA2,未来的数据请直接发送到 FA2"
  5. 未来的所有数据包都会直接送往 FA2,而不会再经过 FA1

✅ 这样,数据流的路径会自动更新,避免数据在老的 FA1 停留过久

📌 情况 2:旧的 FA 不知道 MH 现在在哪

  1. CH 仍然向 FA1 发送数据包
  2. 但 FA1 不知道 MH 现在在哪个 FA,所以它只能把数据发给 HA(Home Agent)
  3. HA 知道 MH 现在在哪,所以它把数据包转发给 FA2
  4. 同时,HA 告诉 CH:"MH 现在在 FA2",未来数据请直接发给 FA2
  5. 未来的所有数据包就会绕过 FA1,直接送到 FA2

✅ 这样,即使 FA1 没有正确追踪 MH,HA 仍然能确保数据最终送达,并帮助 CH 及时更新目标地址

Warning

这一部分将 Mobile IP 非常浅显,只是让读者有一个简单的认识,很多细节/规范其实不对

现在我们有了这些前置基础,将在 下一节: MIPv4 and MIPv6 中纠正 并给出 规范的解析