文章目录
- 移动性对因特网应用的影响
- 移动 IP 相关基本概念
- 移动IP技术的基本工作原理
- 代理发现与注册
- 固定主机向移动主机发送IP数据报
- 移动主机向固定主机发送IP数据报
- 同址转交地址方式
- 三角形路由问题
移动性对因特网应用的影响
我们列举如下三个应用场景说明移动性对因特网应用的影响:
为解决应用场景三出现的问题,出现了移动 IP 技术。
移动IP(Mobile IP)技术,是因特网工程任务组IETF开发的一种技术 [RFC 3344]
,该技术使得移动主机在各网络之间漫游时,仍然能够保持其原来的 IP 地址不变,即允许移动设备在不改变其IP地址的情况下,在不同网络之间切换并保持持续连接的网络协议。
移动IP技术还为因特网中的非移动主机提供了相应机制,使得它们能够将IP数据报正确发送到移动主机。
移动 IP 相关基本概念
-
归属网络(Home Network):每个移动主机都有一个默认连接的网络或初始申请接入的网络
-
归属地址(HomeAddress):移动主机在归属网络中的IP地址在其整个移动通信过程中是始终不变的,也称为永久地址(Permanent Address)。
-
归属代理(HomeAgent):在归属网络中,代表移动主机执行移动管理功能的实体。归属代理通常就是连接在归属网络上的路由器,然而它作为代理的特定功能则是在网络层完成的。
-
外地网络(ForeignNetwork):移动主机当前漫游所在的网络称为外地网络或被访网络(VisitedNetwork)
-
外地代理(ForeignAgent):在外地网络中,帮助移动主机执行移动管理功能的实体,通常就是连接在外地网络上的路由器。
-
转交地址(Care-of Address):外地代理会为移动主机提供一个临时使用的属于外地网络的转交地址
移动IP技术的基本工作原理
代理发现与注册
移动主机A 通过自己的代理发现协议与外地代理建立联系,并从外地代理获得一个属于该外地网络的转交地址(例如 175.1.1.1/16
)同时向外地代理注册自己的永久地址和归属代理地址。
外地代理会将 移动主机A 的永久地址,记录在自己的注册表中,并向移动主机的归属代理注册该移动主机的转交地址(也可由移动主机直接进行注册)
归属代理会将 移动主机A 的转交地址记录下来,此后,归属代理会代替移动主机接收所有发送给该移动主机的IP数据报,并利用IP隧道技术,将这些数据报转发给外地网络中的移动主机。
比喻一下:【归属代理】就是你家,【外地代理】你的公司,你在公司(外地代理)写下你的家的地址,在家(归属代理)写下你公司的地址,以后有人找你,找不到就先发消息到你家,让你家帮忙发消息给你(即转发消息)
当移动主机不在归属网络时,归属代理会以自己的 MAC
地址,应答所有对该移动主机的 ARP 请求
,即归属代理采用ARP代理技术。
为了使归属网络中其他各主机和路由器能够尽快更新各自的 ARP 高速缓存,归属代理还会主动发送 ARP 广播,并声称自己是该移动主机。这样,所有发送给该移动主机的 IP 数据报,都会发送给归属代理。
固定主机向移动主机发送IP数据报
假设固定主机B 要给移动主机A发送一个IP数据报,该数据报会被路由到移动主机A的归属网络,归属代理会代替移动主机A接收该数据报。该数据报的源地址为固定主机B自己的IP地址,目的地址为移动主机A的永久地址 218.75.230.16
。
归属代理将该数据报封装到一个新的 IP 数据报中,其首部中的目的地址为移动主机A的转交地址 175.1.1.1/16
,即外部代理的 IP 地址。
归属代理将这个新的IP数据报,通过IP隧道发送给外地代理,外地代理收到数据报后,将其数据载荷(即原 IP 数据报)解封出来,根据其首部中的目的地址,直接转发给位于外地网络中的移动主机A。
当外地代理和移动主机不是同一台设备时,转交地址实际上是外地代理的地址而不是移动主机的地址,转交地址既不会作为移动主机发送IP数据报的源地址,也不会作为移动主机所接收的IP数据报的目的地址。
转交地址仅仅是归属代理到外地代理的IP隧道的出口地址。所有使用同一外地代理的移动主机都可以共享同一个转交地址。
当外地代理从 IP 隧道中收到并解封出原 IP 数据报时,会在自己的代理注册表中查找移动主机的永久地址所对应的 MAC 地址,并将该数据报封装到目的地址为该 MAC 地址的帧中发送给移动主机。这与 IP 数据报的正常转发流程是不同的,否则会造成该数据报又被发回移动主机的归属网络。
在正常 IP 数据包的转发流程里,路由器会根据目的 IP 地址查找在自己的哪个接口。这里是 MAC 地址直接发送给A,如果是 IP 地址的话就会发给归属代理(因为所有发给A的 IP 数据报都会发往归属代理),就会死循环了。
移动主机向固定主机发送IP数据报
假设位于外地网络中的移动主机A,向固定主机B发送一个IP数据报。IP数据报被移动主机A按照正常的发送流程发送出去即可。由于IP路由器并不关心IP数据报的源地址,因此该IP数据报被直接路由到固定主机B,而无须再通过归属代理进行转发。
为此,移动主机可以将外地代理作为自己的默认路由器,也可以通过代理发现协议从外地代理获取外地网络中其他路由器的地址,并将其设置为自己的默认路由器。
同址转交地址方式
外地代理除了可以配置在外地网络中的某个路由器上,也可以直接运行在移动主机上。移动主机需要运行额外的外地代理软件。外地网络也需要提供相应机制,使移动主机能够自动获取一个外地网络中的地址,作为自己的IP地址和外地代理的地址,被称为同址转交地址(Co-Located Care-of Address)。这样,移动主机自己将接收所有发往转交地址的IP数据报。
三角形路由问题
即使在固定主机与移动主机之间存在一条更有效的路径,发往移动主机的IP数据报也要先发送给归属代理,这就是三角路由问题,造成 IP 数据报转发的低效。
解决三角形路由问题的一种方法:
给固定主机配置一个通信代理,固定主机发送给移动主机的IP数据报,都要通过该通信代理转发。
通信代理先从归属代理获取移动主机的转交地址,之后所有发送给移动主机的IP数据报,都利用转交地址直接通过 IP 隧道发送给移动主机的外地代理,而无须再通过移动主机的归属代理进行转发。
这种方法以增加复杂性为代价,并要求固定主机也要配置通信代理,也就是对固定主机不再透明。