1. 移动IP技术
1.1 移动IP问题的提出
移动节点是指从一个链路移动到另一个链路或一个网络移动到另一个网络的主机或者路由器
问题: 当移动节点在不同网络或者不同的传输介质之间移动时, 随着接入位置的变化, 接入点会不断变化, 最初分配的IP地址已经不能表示其当前所处的网络位置. 路由选择算法不能够为移动节点提供正确的路由服务.
解决方案::
- 每次改变接入点时也随着改变它的IP地址
- 改变接入点时不改变IP地址, 而是在整个Internet中加入该主机的特定主机路由. 根据特定的主机的地址进行路由选择.
1.2 移动IP的设计目标和主要特征
1.2.1 设计目标(解决的两个基本问题):
- 移动节点可以通过一个永久的IP连接到任何链路上
- 移动节点在切换到新的链路上时, 仍然能够保持(与原先通信对端主机)正常通信
1.3 移动IP的基本结构和基本术语
1.3.1 基本结构
移动IP的基本工作原理设计4个功能实体:
- 移动节点(mobile node):
移动节点指从一个链路移动到另一链路的主机或者路由器, 移动节点在改变了网络接入点之后, 可以不改变其IP地址, 继续与其他节点通信
- 家乡代理(home agent):
家乡代理是指移动节点的家乡网络连接到Internet的路由器(或者叫第一跳路由器).
- 外地代理(foreign agent):
指移动节点访问的外地网络连接到Internet的路由器(或者叫第一跳路由器)
- 通信对段(correspondent node):
与移动节点在移动过程中进行通信的节点, 对端节点可以是移动节点也可以是固定节点.
1.3.2 基本术语
术语 | 含义 |
---|
家乡地址(home address) | 家乡网络为移动节点分配的一个长期有效的IP地址 | 转交地址(care-of address) | 当移动节点接入一个外地网络时, 被分配的一个临时IP地址 | 家乡网络(home network) | 为移动节点分配长期IP地址的网络, **目的地址为家乡地址的IP分组, 会以标准的IP路由机制发送到家乡网络 ** | 家乡链路(home link) | 移动节点在家乡网络接入的本地链路 | 外地网络(foreign link) | 移动网络在访问外地网络时接入的本地网络 | 移动绑定(mobility binding) | 由家乡网络维护的移动节点的家乡地址与转发地址的关联 | 隧道(tunnel) | 家乡网络通过隧道, 将发送给移动节点的IP分组转发到移动节点. 隧道的另一端是家乡代理, 另一端有可能是外地代理, 也有可能是移动节点 |
2. 移动IPv4的基本工作原理
2.1 移动IPv4的基本工作过程
工作过程可以分为: 代理发现、注册、分组路由与注销
2.1.1 代理发现(agent discovery)
代理发现是通过扩展ICMP路由发现机制,定义了“代理通告”和“代理请求”两种新报文
- 外地代理会周期性发送代理通告
- 外地代理在接收到移动节点的代理请求后也会发送代理通告。
- 移动节点在接收到代理通告报文后,可以判断出这个通告报文是由家乡代理发送的还是由外地代理发送, 因此可以知道是处在家乡网络还是外地网络
- 接收到代理通告报文后, 会获取到一个转交地址. 由于是通过代理通告获取的转交地址, 因而叫做代理转交地址. 如果是通过主机配置协议DHCP获得的转交地址, 叫做配置转交地址.
- 随后, 移动节点向家乡代理发送"注册请求"报文, 接收"注册应答"报文, 注册它获得的"转交地址".
- 家乡代理会截获发送到移动节点家乡地址的数据分组
- 家乡代理通过隧道将截获的数据分组按照转交地址发送给移动节点
- 隧道的输出端(外地代理)将收到的数据分组拆包之后, 转交给移动节点.
2.1.2 注册(registration)
- 通过注册达到以下目的:
- 使得移动节点获取外地代理的转发服务
- 使家乡代理知道当前移动节点的转发地址
- 家乡代理更新即将过期的移动节点的注册,或者注销回到家乡的移动节点。
- 注册过程
移动节点到家乡代理的注册有两种情况:
- 通过外地代理转发节点的注册请求
- 移动节点直接到家乡代理上进行注册请求
通过外地代理注册的过程需要经过以下步骤:
- 移动节点发送注册请求报文到外地代理, 开始注册过程
- 外地代理处理注册请求报文, 然后将它转发到家乡代理
- 家乡代理向外地代理发送注册应答报文, 同意(或拒绝)请求
- 外地代理接收注册应答报文, 并将处理结果告知移动节点
移动节点直接到家乡代理注册的过程只需要两步:
- 移动节点向家乡代理注册请求报文
- 家乡代理向移动节点发送一个注册应答报文
2.1.3 分组路由(packet routing)
移动IP的路由可以分为单播、广播与多播3种情况讨论
2.1.3.1 单播分组路由:
- 移动节点在外地网络上接收单播分组
- 通信对端使用移动节点的IP地址发送数据分组到家乡代理
- 家乡代理判断移动节点已经在外地网络, 利用隧道将数据分组发送给外地代理
- 外地代理将数据分组转发给移动节点.
- 移动节点在外地网络上发送单播分组
- 一种方法是通过外地代理直接路由到目的主机发送数据报文
- 另一种方法是通过家乡代理转发.
2.1.3.2 广播分组路由:
一般情况下家乡代理不将广播数据分组转发到移动绑定列表中的每一个移动节点, 如果移动节点请求转发广播数据分组, 家乡代理将采取IP封装的方式实现
2.1.3.3 多播分组路由:
- 移动节点接收多播数据分组
- 第一种方式: 移动节点通过外地网络的多播路由器加入多播组
- 第二种方式: 通过和家乡代理之间建立的双向隧道加入多播组, 移动节点将IGMP报文通过反向隧道发送到家乡代理, 家乡代理通过隧道将多播数据分组发送到移动节点
- 移动节点发送多播数据分组
- 第一种方式: 移动节点通过外地网络的多播路由器发送多播分组
- 第二种方式: 将多播分组发送到家乡代理, 家乡代理再将多播数据分组转发出去
2.2 移动节点和通信对段的基本操作:
2.3 移动IP的概念性数据结构
移动IPv6协议为实现以上功能定义了3种概念性数据结构
- 绑定缓存(binding cache):
-
每个家乡代理和通信对端都要维护绑定缓存. -
IPv6节点发送每个分组时, 根据目的地址搜索绑定缓存, 如果缓存中发现了匹配的表项, 则将转交地址作为分组的目的地址, 分组原本的目的地址放在新增的家乡地址选项.
- 绑定更新列表(binding update list):
|