Mobile-IP:互联网上的透明主机迁移

作者:Benjamin Lancki

硬件和通信技术的最新进展开创了移动计算的时代。功能强大的笔记本电脑和无线通信的普及有望为用户提供随时随地访问网络的能力。这种持续的连接将允许用户快速获知不断变化的事件,并为他们提供必要的资源来响应这些事件,即使在 transit 中也是如此。

不幸的是,当今的互联网协议(如 TCP/IP、IPX 和 Appletalk)在处理网络之间主机迁移时表现得十分笨拙。[footnote:在互联网术语中,计算机通常被称为主机。] 当前版本的互联网协议 (IP) 隐含地假设计算机连接到互联网的点是固定的,并且其 IP 地址标识了它所连接的网络。数据报基于其 IP 地址中包含的位置信息发送到计算机。

如果移动计算机或移动主机移动到新网络,同时保持其 IP 地址不变,则其地址将无法反映新的连接点。因此,现有的路由协议将无法正确地将数据报路由到它。在这种情况下,移动主机必须使用代表其新位置的不同 IP 地址重新配置。

这个过程不仅对普通用户来说很麻烦,而且还提出了通知潜在通信对象新地址的问题。此外,更改 IP 地址将导致已建立的传输层连接(例如,ftp 或 telnet 会话)丢失。简而言之,在当前的互联网协议下,如果移动主机在不更改其地址的情况下移动,它将失去路由;但如果它确实更改了其地址,它将失去连接。

Mobile-IP 是对 IP 的增强,它允许计算机在互联网上自由漫游,同时仍然保持相同的 IP 地址。互联网工程任务组 (IETF) 目前正在开发 Mobile-IP 标准,在撰写本文时,该标准已是第十六次修订版。IETF 提出的 Mobile-IP 架构定义了称为家乡代理 (HA) 和外部代理 (FA) 的特殊实体,它们协同工作以允许移动主机 (MH) 在不更改其 IP 地址的情况下移动。“移动性代理”一词用于指代充当家乡代理、外部代理或两者兼有的计算机。如果网络配备了移动性代理,则该网络被描述为具有移动性支持

每个移动主机都与其唯一的家乡网络相关联,这由其永久 IP 地址指示。正常的 IP 路由始终将发送给 MH 的数据包传递到该网络。当 MH 离开时,此网络上专门指定的计算机(其家乡代理)负责拦截和转发其数据包。

MH 使用特殊的注册协议,以使其 HA 了解其当前位置。每当 MH 从其家乡网络移动到外部网络,或从一个外部网络移动到另一个外部网络时,它都会在新网络上选择一个外部代理,并使用它将注册消息转发到其 HA。

成功注册后,到达其家乡网络上 MH 的数据包将由其 HA 封装并发送到其 FA。封装是指将原始数据报作为数据封闭在另一个带有新 IP 标头的数据报中的过程。这类似于邮局在为已搬迁的收件人转发邮件时,在旧标签上贴上新的地址标签。外部标头中的源地址和目标地址字段分别对应于 HA 和 FA。这种机制也称为隧道,因为中间路由器仍然不知道原始的内部 IP 标头。在没有这种封装的情况下,中间路由器将简单地将数据包返回到家乡网络。收到封装的数据报后,FA 会剥离外部标头,并将新暴露的数据报传递到其本地网络上适当的访问 MH。

主机移动通常会导致一些数据报丢失,而 HA 和 FA 的路由表会重新调整以反映移动。但是,通过使用重传和确认,传输层协议维护的连接能够像承受因拥塞造成的损失一样承受这些损失。请注意,即使当 MH 离开时,发送给它的数据报也始终首先发送到其家乡网络,这在许多情况下会导致非最佳路由。

图 12 显示了一个支持移动性的互联网,它作为一个说明性示例。它显示了两个支持移动性的网络,网络 A网络 B,它们分别配备了移动性代理 MA1MA2。还显示了一个移动主机 MH1,其家乡网络是 网络 A。每当 MH1 离开时,MA1 充当其家乡代理。当 MH1 访问 网络 B 时,MA2 充当其外部代理。

值得指出的是,Mobile-IP 引入的更改与所使用的通信介质无关。即使此图显示了有线互联网中的移动性支持,Mobile-IP 在无线环境中也同样有效。

图 3 进一步说明了 Mobile-IP 背后的主要思想。它显示了一个 IP 数据报从计算机 A(IP 地址 18.23.0.15)到移动主机(IP 地址 128.226.3.30)的流动。在此图中,移动主机显示为远离其家乡网络。主机 MA1(IP 地址 128.226.3.28)和 MA2(IP 地址 128.6.5.1)分别充当其家乡代理和外部代理。

数据报中的 IP 标头(当它离开 A 时)指示 128.226.3.30 作为目的地。在图 3 中,此标头显示为数据报的黑色部分。因此,此数据报被路由到网络 A(步骤 1 和 2)。在这里,家乡代理拾取数据报,并在将其重新注入网络之前插入一个额外的 IP 标头(步骤 3 和 4)。新的 IP 标头携带 128.6.5.1 作为其目标地址。此标头在图 3 中以交叉影线显示。由于这是中间路由器(如 R1)看到的标头,因此数据报被正确路由到外部代理(步骤 5)。此时,注册过程已经通知外部代理移动主机在本地网络上的存在。当封装的数据报到达 MA2 时,外部标头被剥离。新暴露的标头显示 MH 作为目的地,并且数据报被适当地转发(步骤 6)。

IETF Mobile-IP 草案还允许移动主机进行自己的解封装。在这种情况下,MH 必须在外部网络上获取临时 IP 地址(例如,使用 DHCP)以用于转发。这允许移动主机即使在没有外部代理的情况下也能接收来自其家乡网络的数据报。这种方法的缺点是现在必须修改 MH 上的内核以处理封装的数据报。

便携式计算机销量的稳步增长表明移动用户群正在增长。IETF 提出的 Mobile-IP 标准将促进不同供应商设计的移动设备之间的互操作,并进一步促进移动计算的普及。我们在纽约州立大学宾汉姆顿分校的研究小组为 Linux 开发了 Mobile-IP 实现。可以从 Linux Mobile-IP 主页 http://anchor.cs.binghamton.edu/~mobileip/ 下载此软件和相关文档。该页面还包含指向其他 Linux 和便携式计算资源的链接。

所有三位作者都隶属于纽约州立大学宾汉姆顿分校计算机科学系。可以通过 mobileip@anchor.cs.binghamton.edu 联系到他们。

Benjamin Lancki 是一名即将完成大学学业的本科生。他的兴趣包括移动网络、多媒体软件设计和铅笔素描。

Abhijit Dixit 是一名正在攻读硕士学位的研究生。他的兴趣包括移动网络和操作系统。

Vipul Gupta 是一位助理教授,其兴趣包括并行处理和计算机网络。

加载 Disqus 评论