Mobility Management¶
蜂窝网络中的移动性管理
- 传统的有线网络:设备和位置存在固定关系,因此位置ID等价于设备ID
- 新型的无线网络:设备可以自由移动,每个设备的位置需由网络来维护
我们重点聚焦以下几个问题
- 如何“切换”
- 位置管理
- 移动IP
名词汇总
- MS: Mobile Station, 移动台
- 移动终端 + SIM卡
- BS: Base Station, 基站
- MSC: Mobile Switching Center, 移动交换中心
- 管理连接多个BS
- RSS: Received Signal Strength. 接收信号强度
- HLR: Home Location Register, 家位置寄存器
- VLR: Visitor Location Register, 访客位置寄存器
- Paging: 寻呼
- MH: Mobile Host, 移动主机
- CH: Corresponding Host
- HA: Home Agent
- FA: Foreign Agent
- COA: Care-of-Address
Basic Idea¶
Handoff Management¶
步骤:
- Handoff Init: 用户/网络代理发现需要“切换”
- 什么时候需要: 基于接收信号的功率 \(P\) / 接收信号的强度 \(RSS\)
- New Connection Generation: 网络为交接连接寻找资源, 并为连接的建立执行额外的路由
- Data-flow Control: 网络控制数据流, 从原来的路径传向新的连接路径
- Handoff Completion: 旧路径上资源的“析构”
Handoff的触发条件
- Basic RSS:
- choose \(BS_{new}\) if \(P_{new}\) > \(P_{old}\)
- RSS with threshold:
- choose \(BS_{new}\) if \(P_{new}\) > \(P_{old}\) and \(P_{old}\) < \(P_T\)
- RSS with hysteresis(滞后):
- choose \(BS_{new}\) if \(P_{new}\) > \(P_{old}\) + \(P_H\)
- RSS with threshold and hysteresis:
- choose \(BS_{new}\) if \(P_{new}\) > \(P_{old}\) + \(P_H\) and \(P_{old}\) < \(P_T\)
Handoff的类型
- Hard Handoff
- 在与目标cell建立连接之前,MS中断与旧cell的连接
- trait: 切换期间造成瞬时通话中断
- Soft Handoff
- 在执行交接时,MS可以同时连接到多个cell,并使用合并的多个信号; 然后,它选择一个单元,并放弃其他单元
- trait: 切换期间不会造成通话中断
Intra-cell vs Inter-cell vs Inter-area
结构组成
- 扇区:Cell 的一个组成部分
- Cell:包含很多的扇区,每个 Cell 有一个负责的 BS
- Location Area:包含很多的 Cell,每个 Area 由一个负责的 MSC
分情况讨论
- Intra-cell handoff
- 交接发生在由同一BS管理的不同扇区之间
- BS 负责,在同一cell内寻找下家
- MSC 完全不参与
- Inter-cell handoff
- 交接发生在由同一MSC管理的不同BS之间
- BS 和 MSC 都参与
- Inter-area handoff
- 交接发生在由不同MSC管理的不同BS之间
- 两类BS 和 两个MSC 都参与
Location Management¶
前置: 两种基本的location update思路
Location Area
对应上文“结构组成”中的Area
- Without Location Update
- 网络没有维护 MS 的当前位置信息
- 每当有呼叫到达时,网络就会在覆盖区域内broadcast发送搜索信息
- 当 MS 收到搜索信息时,就对信息进行回复,以便网络找到 MS 的位置
- Location Update with Location Areas
- MS 向系统报告其当前的 LA 信息
- 何时报告? 基于时间 / 基于距离 / 基于运动 (下面会讲)
- 系统现在知道了MS对应的 LA 信息
- 只知道在哪个LA,但并不能具体知道在哪个Cell
- 新消息到达,系统只搜索对应的LA -> 缩小范围与成本
- MS 向系统报告其当前的 LA 信息
前置: Location Database
任何 MS 的信息都会保存在两个位置数据库中:
- HLR: Home Location Register
- 每个MS的主数据库
- 永久地存放在一个固定的位置(比如办卡的那个城市对应的数据库)
- VLR: Visitor Location Register
- 动态数据库,包含关于MS的临时信息
- 位于这个 Location Area 的 MSC, 为来访的MS提供服务
- 当一个 MS 移动到一个新的 MSC 区域时,该 MSC 的 VLR 将从 原HLR 请求关于 MS 的信息
Location Update Process
- 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
的作用
- 新信息到达 Location Area,MSC 会 multicast 这条信息给 所有Cell中的BS
- 这些 BS 会在 自己cell 的区域内进行 paging
- 分成两类: Parallel | Sequential (下面会讲)
- 现在,所有 Cell 中的所有 MS 都会听到,但只有 目标MS 才会发送 ACK
- 该 Location Area 有很多 BS,它们都可以听见此 ACK
- 这些 BS 向 MSC 报告: “目标MS 在我的覆盖范围内,我的 RSS 是 XXX”
- MSC收集完这些报告,选择 RSS 最强的 BS 为 MS 服务
事实上 Paging
可以分成两个类别:
- Parallel Paging: 在上述2中,所有cell的BS同时发送paging
- 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更新位置的方式
- 基于时间:MS 以固定时间间隔(使用时间阈值)定期执行位置更新
- 基于距离:通过移动到离前一个位置足够远的位置来触发的(使用距离阈值)
- 基于运动:通过跨越一定数量的不同小区边界来触发的(使用移动阈值)
- 在某些情况下是有用的,例如,用户在LA边界之间来回移动
Mobile IP¶
普通的IP就不用说了,包括 IPv4 / IPv6
现在我们要考虑主机的移动性,按照原有IP的设计就不行了...
因此我们需要一种新的设计: Mobile IP
Architecture
我们以一个旅客从 Home Network 走到 Foreign Network 为例:
- MH: Mobile Host
- “因旅游切换Area”的用户
- Home Network | Home Address
- 用户激活SIM卡的地方,注册地网络 | 注册地址 (永久IP)
- 这里的数据库就是 HLR
- Foreign Network | COA
- 用户因旅游等进入的新环境,访客网络 | 访客地址 (临时IP)
- 这里的数据库就是 VLR
- HA: Home Agent
- 注册地网络中的路由器代理
- FA: Foreign Agent
- 访客网络中的路由器代理
- COA: Care-of-Address
- 访客地址,临时的IP地址
- CH: Correspondent Host
- “正在calling旅游用户”的用户
- 移动或静止的都可以
这里我们会有几个问题:
- MH 如何知道自己是否从 Home Network 到 Foreign Network?
- MH 初进入 Foreign Network,如何注册?
- 现在 MH 要不要跟 Home Network “划清界限”?
- 答案是不要,因为不能!
- CH 呼叫 MH 的步骤是什么?
问题1: Agent Discovery
- MH 侦听来自 HA 和 FA 的周期性 ICMP 路由器通告消息
- MH 自身有 Network ID,HA 和 FA 也有
- MH 进行对比:
- Network ID 不同: 是FA,说明已进入 Foreign Network
- Network ID 相同: 是HA,说明还在 Home Network
问题2: Registration && Deregistration
- MH 进入 Foreign Network 时,跟 FA 进行双向交流
- MH -> FA: 发出注册请求
- FA -> MH: 给出相应的临时地址, COA
- MH 从 Foreign Network 返回至 Home Network
- MH -> FA: 取消注册
问题3: FA 如何注册用户
FA 对于 MH 的注册离不开 Home Network 的 HA!
- MH 向 FA 发起注册请求,并提供自身的 Home Address
- FA 根据 Home Address,将 注册请求 和 COA 转发到HA
- HA 更新 table, 将 Home Address 与 COA 建立映射
- HA 通知FA,注册已接受
- FA收到许可,从而更新访客列表, 加入 Home Address 与 COA 的映射
- FA 通知 MH,注册已通过
总之,HA 是 boss,FA是秘书,MH的注册请求给FA只是走个形式,具体能不能成功还得看 HA 拍板
问题4: Data Delivery
tunneling
隧道:在 Home Network 和 Foreign Network 之间建立一个隧道,并在隧道中向该 MH 发送封装的数据
隧道,也称为端口转发,是指通过公共网络传输仅用于私有网络(通常是公司网络)的数据。它为隧道入口和终端节点之间的可用数据包创建虚拟管道,是使用封装技术完成的。
- 当 CH 向 MH 发送数据包时,所有数据包的目的地址都是 MH 的Home address。因此,所有数据包都被发送到Home network
- 在接收到数据包后,HA 识别出数据包的目标地址属于 MH:
- HA 在 table 中查找 MH 的 Home Address 和 COA 的映射
- packet 会加一层封装
- HA 将数据包转发到拥有 COA 的 Foreign Network
- FA 识别 COA:
- 给 packet 解封装
- 使用原始的 Home Address 发送给 MH
Routing Optimization
看看上面的过程,你会发现有些地方很冗余。一个很朴素的想法便是: 既然 CH 和 MH 都在同一个 Foreign Network,能不能创建一种“直接通信”的方式呢?
上面的过程低效率体现在:
- 三角路由:
CH -> HA -> FA -> MH
- 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,并完成注册。具体过程如下:
- FA2 在它的网络里定期广播广告信息(类似 Wi-Fi 路由器的 SSID 广播)
- MH 发现 FA2 并向它注册
- FA2 将 MH 的新位置(新的 COA 地址)通知 HA(Home Agent)
- FA2 通知旧的 FA1(MH 之前连接的 FA1),告诉它 MH 已经迁移到 FA2
- FA1 确认(ACK)并将 任何滞留的数据包 转发给 FA2,避免丢失数据
- 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 现在在哪
- CH 还在向 FA1 发送数据包
- 旧的 FA1 知道 MH 现在已经连接 FA2,所以它直接把数据包转发给 FA2
- 旧的 FA1 告诉 HA:"MH 已经换了位置",请更新你的记录
- HA 告诉 CH:"MH 现在在 FA2,未来的数据请直接发送到 FA2"
- 未来的所有数据包都会直接送往 FA2,而不会再经过 FA1
✅ 这样,数据流的路径会自动更新,避免数据在老的 FA1 停留过久
📌 情况 2:旧的 FA 不知道 MH 现在在哪
- CH 仍然向 FA1 发送数据包
- 但 FA1 不知道 MH 现在在哪个 FA,所以它只能把数据发给 HA(Home Agent)
- HA 知道 MH 现在在哪,所以它把数据包转发给 FA2
- 同时,HA 告诉 CH:"MH 现在在 FA2",未来数据请直接发给 FA2
- 未来的所有数据包就会绕过 FA1,直接送到 FA2
✅ 这样,即使 FA1 没有正确追踪 MH,HA 仍然能确保数据最终送达,并帮助 CH 及时更新目标地址
Warning
这一部分将 Mobile IP 非常浅显,只是让读者有一个简单的认识,很多细节/规范其实不对
现在我们有了这些前置基础,将在 下一节: MIPv4 and MIPv6 中纠正 并给出 规范的解析