组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:Hlp(hlp,huangliuqi@hotmail.com)
译文发布时间:2001-5-23
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。



Network Working Group                                 C. Perkins, Editor
Request for Comments: 2002                                           IBM
Category: Standards Track                                   October 1996


IP移动性支持
(RFC2002  IP Mobility Support)


本文档现状
    本文档规定了Internet协会的一种标准跟踪协议,尚需讨论、建议以待提高。本协议的
标准化进程请参考“Internet官方协议标准”(STD 1)。本文档可以无限制的分发。
摘要
   本文档描述了一种增强型协议,允许把IP数据报透明地路由到Internet的移动节点。 每
一个移动节点总是由其家乡地址标识,而与其当前连接到Internet的位置无关。当不在家乡
(网络)时,移动节点还与一个转交地址相关,转交地址提供了其当前接入Internet的位置
信息。本协议提供了向家乡代理注册其转交地址的方法。家乡代理把以该移动节点为目的地
址的数据报通过一个隧道发送到其转交地址。在到达隧道的端点后,数据报被一个个传送到
移动节点。




目录
 1. 简介 …… … … … … … … … … … … … … … … … … …… … … … …   1
     1.1.协议要求…… … … … … … … … … … … … … … …… … … …   3
     1.2.目标  … … … …… … … … … … … … … … … … … …… … … …   4
     1.3.假设 … … …  … … … … … … … … … … … … … … …… … …    4
     1.4.适用性 ………………… …… … … … … … … … … … … … …  … … …4
     1.5.新的结构实体 … …  … … … … … … … … … … … … … …… … …   5
     1.6.术语 … … … … … … … … … … … … … … … … … …… … … … 6
1.7.协议概况… … … … … … … … … … … … … … … …… … … … … 7
1.8.规范用语… … … … … … … … … … … … … … … … …… … … …    11
     1.9.消息格式和协议扩展… … … … … … … … … … … … … … … … …    12
 2.代理发现… … … … … … …… … … … … … … … …… … … … …… … … 14
     2.1.代理广告  … … … …  … … … …… … … … …… … … … …… …  14
           2.1.1.移动代理广告扩展… … … … … … … … … … … … … … …    16
           2.1.2.前缀长度扩展… … … … … … … … … … … … … … …… … …18
           2.1.3. One-byte Padding扩展… … … … … … … … … … … ……    19
     2.2. 代理请求… … … … … … … … … … …  … … … … …… … … …     19
     2.3.外地代理和家乡代理考虑… … … … … … …  … … … … …… … … …  19
           2.3.1.广告路由器地址… … … … … … … … … … … … …  … … … …20
           2.3.2.序列号及翻转控制… … … … … …  … … … … … … … ……   21
     2.4.移动节点考虑… … … … … … … … … … … … … … … … …… … … … …21
           2.4.1.要求注册… … … … … … … … … … … … … … … …… …    22
           2.4.2.移动检测… … … … … … … … … … … … … … … … …   22
           2.4.3.返回家乡… … … … … … … … … … … … … … … … …   24
           2.4.4.序列号和翻转控制… … … … … … … … … … … … … … …24
 3. 注册… … … … … … … … … … … … …… … … …… … … … …… … …  24
     3.1. 注册概述… … … … … … … … … … … … … … … … …… … …   25
     3.2.认证 … … … … … … … … … … … … … … … … …  … … … …   26
     3.3.注册请求 … … … … … … … … … … … … … … … … …… … …   26
     3.4.注册应答 … … … … … … … … … … … … … … … … …… … …   29
     3.5. 注册扩展 … … … … … … … … … … … … … … … … …… … … 32
           3.5.1.计算认证扩展的值… … … … … … … … … … … … ……   32
           3.5.2.Mobile-Home认证扩展… … … … … … … … … … … …   33
           3.5.3.Mobile-Foreign认证扩展 … … … … … … … … … … … … 33
           3.5.4.Foreign-Home认证扩展… … … … … … … … … … … …   34
     3.6.移动节点考虑 … … … … … … … … … … … …… … … … …… …  34
           3.6.1.发送注册请求… … … … … … … … … … … …… … … … …36
           3.6.2.接收注册应答… … … … … … … … … … … …  … … … … 40
           3.6.3.注册重传… … … … … … … … … … … …… … … … ……  42
     3.7.外地代理考虑 … … … … … … … … … … … …  … … … … …… … 43
           3.7.1.配置表和注册表 … … … … … … … … … … … …… … …  44
           3.7.2.接收注册请求  … … … … … … … … … … … …… … … … 44
           3.7.3. 接收注册应答  … … … … … … … … … … … …… … … …47
     3.8.家乡代理考虑  … … … … … … … … … … … …… … … … …… …  49
           3.8.1.配置表和注册表 … … … … … … … … … … … …… … … …49
           3.8.2.接收注册请求 … … … … … … … … … … … …… … … … …49
           3.8.3. 发送注册应答 … … … … … … … … … … … …… … … … 53
 4.路由考虑… … … … … … … … … … … …… … … … … … … … … …  …  55
     4.1.封装类型 … … … … … … … … … … … …… … … … … … …… …  56
     4.2.单播数据报的路由 … … … … … … … … … …… … … … … … …   56
           4.2.1.移动节点考虑 … … … … … … … … … …… … … … … …   56
           4.2.2.外地代理考虑 … … … … … … … … … …… … … … …  …  57
           4.2.3. 家乡代理考虑 … …  … … … … … … …… … … …  … … 58
     4.3.广播数据报 … … … … … … … … … …… … … … … … … … … … 59
     4.4.多播数据报路由 … … … … … … … … … …… … … … … … … …   60
     4.5. 移动路由器 … … … … … … … … … …… … … … … … … … …   61
     4.6. ARP,代理ARP和免费ARP  … … … … … … … … … …… … …   62
 5. 安全考虑 … … … … … … … … … …… … … … … … … … … …… … …  66
     5.1.消息认证码 … … … … … … … … … …… … … … … … … … … …   66
     5.2.本协议涉及的安全区域 … … … … … … … … … …… … … …… … … 66
     5.3.密钥管理 … … … … … … … … …… … … … … … … … … …… … 67
     5.4.选好随机数 … … … … … … … … …… … … … … … …… … … … 67
     5.5.隐私保护 … … … … … … … … …… … … … … … … … … …… … 67
     5.6.注册请求重放保护 … … … … … … … … …… … … … … …… … … 68
           5.6.1.使用时间戳的重放保护 … … … … … … … … … …  … …   68
           5.6.2.使用随机数的重放保护 … … … … … … … … …… … … … 69
 6.致谢 … … … … … … … … … …… … … … … … … … …… … … … … 71
A. 专利问题 … … … … … … … … … …… … … … … … … … … …… …    72
     A.1. IBM第5,159,592号专利 … … … … … … … … … …… … …   72
     A.2. IBM 第5,148,479号专利  … … … … … … … … … …… … … 72
 B.链路层考虑… … … … … … … … … …  … … … … … … … … … …  … 73
 C. TCP考虑 … … … … … … … … … …… … … … … … … … … …… …  73
     C.1.TCP定时器 … … … … … … … … … …… … … … … …  … …… 73
     C.2.TCP拥塞控制 … … … … … …  … … … … … … … … …  … …  73
 D.特定情形下的例子 … … … … … … … … … …… … … … … … … …… 74
     D.1.使用外地代理转交地址注册 … … … … … … … … … …   … …… 74
     D.2.使用联合转交地址注册 … … … … … … … … … …… … … … … 75
     D.3. 解除注册 … … … … … … … … … …… … … … … … … … … …  76
 E.Prefix Lengths扩展的适用性 … … … … … … … … … …… … … … … …  76
编辑地址 … … … … … … … … … …… … … … … … … … … …  … …… ……79


1.简介
   IPv4假设节点的IP地址唯一确定了节点连接到Internet的位置。因此节点必须位于由
其IP地址标识的网络上才能收到发送给它的数据报;否则发往该节点的数据报将无法递交。
对于一个移动节点来说,为了在改变接入点的位置后不丧失其通信能力,当前必须使用下述
两种机制之一:
      a) 节点在改变其接入位置后必须改变其IP地址,或者
        b)基于主机的路由信息(host-specific routes)必须被传播到很多Internet路由
结构中。

这两种选择通常都是无法接受的。第一种情况使节点在改变位置后无法维持传输层及其
以上的连接。第二种显然有着严重的规模(scaling)问题,尤其是考虑到笔记本(移动的)
计算机的销售呈爆炸性增长。
这就要求有一种新的可扩展的机制以允许节点在Internet上的移动性。本文档定义了这
样一种机制,使得节点在改变它们的位置时不改变它们的IP地址。 

1.1.协议要求
移动节点必须能够在改变其在Internet上的链路层接入点后,不改变其IP地址便能与
其它节点通信。

移动节点必须能够与其它不使用移动功能的节点通信。如果主机或路由器不作为1.5中
介绍的新的结构实体,则不要求增加任何协议。

所有用于向其它节点更新本移动节点的位置信息的消息必须经过认证以保护系统免受远
程重定向攻击(remote redirection attacks)。
  
1.2.目标
   移动节点直接接入Internet的链路通常可能是一条无线链路。这样的链路可能因而比传
统的有线网络有更低的带宽以及更高的错误率。而且移动节点可能是电池驱动的,减小功耗
很重要。因此,应该尽量减少移动节点连接链路上发送的管理消息(administrative message)
的数量,而且消息的大小应该尽可能的小。
1.3. 假设
   本文档定义的协议对分配IP地址方面没有附加限制。也就是说,移动节点可以由拥有该
机器的组织指定一个IP地址。

   本协议假设移动节点Interner接入点的改变的频率通常不频繁于一秒钟一次。

   本协议假设IP单播数据报的路由是基于数据报头部的目的地址(而不是基于源地址)。
1.4.适用性
    移动IP目的是允许节点从一个IP子网移动到另一个IP子网。这种移动性适用于同类介
质,同样适用于异类介质,也就是说移动IP易于节点从一个以太网子段(segment)移动到
另一个子段,也允许节点从一个以太网子段移动到一个无线LAN,只要移动后节点的IP地址
保持不变。
    可以把移动IP看作解决移动性的“宏观”管理问题的方法。它不太适合于其他的移动性
的“微观”管理的应用——比如无线收发器之间的切换(handoff),其中每一个收发器只覆
盖了很小的地理区域。只要节点的移动不是发生在不同IP子网的接入点之间,移动性的链路
层机制(即链路层切换),可以提供比移动IP更快的收敛性(convergence)和更小的开销
(overhead)。
1.5. 新结构实体
   移动IP引入了下面的新的功能实体:
      移动节点(Mobile Node)
          其接入点从一个网络或子网变化到另一个网络或子网的主机或者路由器。移动节
点可以改变其位置而不改变其IP地址;假如到某个接入点的链路层连接可用,它
可以在任何地方使用其(固定的)IP地址与Internet上的其它节点通信。
      家乡代理(Home Agent)
          位于移动节点家乡网络上的一个路由器,该路由器在移动节点不在家乡(网络)
时为数据报创建隧道以把数据报传送到移动节点,并负责维护移动节点当前位置
信息。
      外地代理(Foreign Agent)
          位于被移动节点访问网络上的一个路由器,该路由器为注册节点提供路由服务。
外地代理把家乡代理通过隧道传送过来的数据报进行拆封(detunnel)并把这些
数据报传送到移动节点。对于从移动节点传送过来的数据报,外地代理作为该注
册移动节点的缺省路由器。

    移动节点在家乡网络被给予一个长期的IP地址。这个家乡地址按固定主机的“永久”
(permenent)IP地址来进行管理。当不在家乡网络时,移动节点与一个“转交地址”相关
联以反映出移动节点当前连接的位置。移动节点使用家乡地址作为其发送的所有IP数据报的
源IP地址,除了本文档中描述的为了特定的移动管理功能而发送地数据报外(例如3.6.1.1)。



1.6. 术语 
  本文档经常使用下面的术语:
      代理广告(Agent Advertisement)
               通过给路由器广告信息(参考文献[4])附加特殊的扩展而得到的广告信息。
转交地址(Care-of Address)
                指向移动节点的隧道的终止点,用于节点不在家乡时把数据报转交到移动
节点。本协议可以使用两种不同类型的转交地址:“外地代理转交地址”
(foreign agent care-of address)是移动节点所注册的外地代理的地址;
“联合转交地址”(co-located care-of address,疑为“collocated”,
配置转交地址——译者注)是移动节点从外部获得的本地地址,移动节点
已经将之与自己的一个网络接口建立关联。
      对方节点(Correspondent Node)
               与移动节点进行通信的同位体(peer)。对方节点可为移动节点或固定节点。
      外地网络(Foreign Network)
               除移动节点的家乡网络外的任何其他网络。
      家乡地址(Home Address)
               给移动节点分配的长期(extended period)IP地址。不管节点在何处接入
Internet,它都将保持不变。
      家乡网络(Home Network)
                其前缀与移动节点家乡地址的网络前缀匹配的网络,家乡网络可能是虚拟
的。注意标准的IP路由机制将把发往移动节点家乡地址的数据报发送到移
动节点的家乡网络上。
      链路(Link)
     节点能在其上进行链路层通信的设备或媒介。链路在网络层的下面。
      链路层地址(Link-Layer Address)
              用来标识某条物理链路上的通信端点的地址。典型地,链路层地址是一个接
口的MAC地址。
      移动代理(Mobility Agent)
               家乡代理或者外地代理。
      移动绑定(Mobility Binding)
               建立家乡地址与转交地址之间的关联,以及该关联的生存期。
      移动安全关联(Mobility Security Association)
                在一对节点之间的安全上下文(security contexts)的集合,这些安全上
下文可能应用于它们之间交换的移动IP协议消息。每一个安全上下文表明
一种认证算法及模式(见5.1),一个秘密(一个共享的密钥,或者一个公
共/私有密钥对),以及所使用的重放保护风格(见5.6)。
节点(Node) 
主机或者路由器。
      随机数(Nonce)
某个随便选取的值,与以前选用的值不同,插入消息中以避免重放攻击。
      安全参数索引(Security Parameter Index,简称SPI)
从移动安全关联的全部安全上下文中标识一对节点之间的安全上下文的索
引。0到255 的SPI值被保留,不允许在任何移动安全关联中使用。
      隧道(Tunnel)
数据报在处于封装状态时所经过的路径。模型为,在处于封装状态时,数据
报被路由到可知的(knowledgeable)拆封代理(decapsulating agent),拆
封代理对该数据报进行拆封然后把它正确传送到其最终目的地。
虚拟网络(Virtual Network)
        路由器以远没有物理实体的网络(有一个在其它网络上的物理网络接口)。路
由器(如家乡代理)通常使用传统路由协议把其可达性向虚拟网络广告。
      被访问网络(Visited Network)
               移动节点当前连接到其上的、不是移动节点家乡网络的网络。
      访问者列表(Visitor List)
              访问一个外地代理的移动节点的列表。
1.7. 协议概述
   下列支持服务专为移动IP定义:
      代理发现(Agent Discovery)
                家乡代理和外地代理可以在每一条它们为之提供服务的链路上将它们(外
地代理和家乡代理)的可用性进行广告。新到达的移动节点可在该链路上
发送一个请求(solicitation)以了解是否出现预期的(prospective)代
理。
      注册(Registration)
                当移动节点不在家乡时,它向其家乡代理注册其转交地址。移动节点可以
直接向其家乡代理注册,或者通过外地代理然后由外地代理把注册转发到
家乡代理,取决于它连接的方法。

移动IP协议的大致操作过程如下面几个步骤所示:

    ——移动代理(即外地代理和家乡代理)通过代理广告消息(见第2章)将它们的存在
性进行广告。移动节点可选地从所连接的外地代理通过一个代理请求消息请求一个
代理广告消息。

    ——移动节点收到这些代理广告并确定自己是在家乡网络还是在外地网络上。

    ——当移动节点检测到自己位于在家乡网络上,它将不使用移动服务进行操作。如果从
其它注册的地方返回到家乡网络, 通过交换注册请求和注册应答消息,移动节点解
除其在家乡代理的注册(仅当不在家乡网络时才有“注册”一说,见上面的注册—
—译者注)。

    ——当移动节点检测到自己已经移到外地网络,它将获得一个外地网络的转交地址。转
交地址可以从外地代理的广告中获得(外地代理转交地址),或者通过外部分配机制
如DHCP[6]获得(联合转交地址,再声明一遍,原文中可能有误,疑为“配置转交地
址”——译者注)。

    ——位于家乡以外的移动节点通过交换注册请求和注册应答消息向家乡代理注册其新的
转交地址,该过程可能通过外地代理(见第3章)。

    ——发送到移动节点家乡地址的数据报被其家乡代理截获,家乡代理通过隧道把数据报
送到移动节点的转交地址,在隧道的端点被(外地代理或者移动节点本身)接收,
最后传送到移动节点(见4.2.3)。

    ——在相反方向,由移动节点发送的数据报通常使用标准的IP路由机制传送到目的地
址,不一定经过家乡代理。

当不在家乡时,移动IP使用协议隧道(protocol tunneling)把移动节点的家乡地址向
从家乡网络到移动节点当前位置的沿途路由器隐藏。隧道终止于移动节点的转交地址。转交
地址必须是数据报能够通过传统IP路由到达的地址。在转交地址,原始数据报被从隧道中移
出并传送到移动节点。

  移动IP提供两种可选的获得转交地址的模式:

    ——外地代理转交地址(“foreign agent care-of address”)是由外地代理通过其代理
广告消息所提供的转交地址。在这种情况下,转交地址是外地代理的IP地址。在这
种模式,外部代理就是隧道的端点,一收到通过隧道到来的数据报,它就对这些数
据报进行解封装(拆封)并把内层的数据报传送到移动节点。这种获得转交地址的
模式是首选模式,因为它允许多个移动节点共用同一个转交地址因而不会给本来就
很有限的IPv4地址空间增加不必要的要求。

——联合转交地址(“co-located care-of address”)是移动节点通过某种外部方式得
到作为本地IP地址的转交地址,然后移动节点把它与自己的一个网络接口建立关
联。该地址可由移动节点动态获得(如通过DHCP [6])而作为一个临时地址;或者
由移动节点所拥有的只是在访问外地网络时才使用的长期地址。具体由外部获得本
地IP地址用作联合转交地址的方法超出了本文档的范畴。在使用联合转交地址时,
移动节点作为隧道的端点并且自己对数据报进行拆封。

使用联合转交地址的模式优点是允许移动节点在不需外地代理便能运行,例如,在还没
有实施外地代理的网络上。

但是,它会给IPv4地址空间增加额外的负担,因为它要求在外地网络上有一个地址池供
来访移动节点使用,对每一个允许移动节点访问的子网有效地维护这样的一个地址池很困难。

  理解转交地址和外地代理之间的功能区别是很重要的。转交地址仅仅是隧道的端点,它
可能实际上是一个外地代理的地址(外部代理转交地址),但是它也可能是移动节点临时获得
的地址(联合转交地址)。另一方面,外地代理是为移动节点提供服务的移动代理。详情见
3.7和4.2.2。

家乡代理必须能够收集和截获(attract&intercept)发往其任意一个已注册移动结点
的家乡地址的数据报。使用4.6中描述的代理ARP和免费ARP机制 ,如果家乡代理在由移动
节点家乡地址表明的链路上有一个网络接口,该条件可满足。使用其它截获发往移动节点家
乡地址的数据报的机制可以使用其它相对移动节点家乡位置放置家乡代理的方法。放置方法
超出了本文档的范畴。

同样,移动节点和预期的或者当前的外地代理必须能够不依赖标准IP路由机制而交换
数据报;也就是说,决定转发的机制是根据IP头部目的地址的网络前缀。如果外地代理和来
访移动节点在同一条链路上有一个接口,该条件可满足。在这种情况下,在互相发送数据报
时,移动节点和外地代理简单地“透传”(bypass)它们正常的IP路由机制,把其下的链路
层数据包的目的地址分别设为它们各自的链路层地址。在这些节点之间使用其它机制来交换
数据报还可以使用其它相对移动节点放置外地代理的方法,但这些放置方法超出了本文档的
范畴。

如果移动节点正在使用联合转交地址(如上面(b)所述),移动节点必须位于转交地址
的网络前缀所标识的链路上。否则,发往该联合转交地址的数据报将无法递交。

例如,下面的图显示了移动节点不在家乡时(已向其家乡代理注册)发送和接收数据报
的路由,在下面的图中,移动节点使用外地代理转交地址:

                2) 数据报被家乡代理截获      3)数据包被从隧道中移出
                   并通过隧道传送到转交         并被传送到移动节点                          
                   地址             
                    




     1) 发往移动节点的
        数据报通过标准
IP路由到达                4) 对于移动节点发送的数据报由 
家乡网络                     标准的IP路由将把每一个数据报
发送到各自的目的地,图中,
外地代理作为移动节点的
缺省路由器
                                            
                                        
                                        
1.8.用语规范
   本文档中使用几个词来强调规范的条件。这些词用粗体并用红颜色表示
      必须     形容词为“必要的”,表明该定义是本规范绝对要求的。
      不允许   表明该定义是本规范绝对禁止的。
         应该     形容词是“推荐的”,在某种环境下,可能存在有效的原因来忽略此项,但
在决定选用其他过程时,必须理解完整的实现并慎重权衡。否则将会出现
意想不到的结果。
      可以(可能)形容词为“可选的”,该项为允许的可选元素集合中的一个元素。不包
含该选项的实现必须做好与另一个包含该项的实现进行互操作
(interoperate)的准备。
      静悄悄地丢弃
                实现不经进一步处理便把数据报丢掉,并且不向发送者暗示错误。实现应
该提供记录错误的能力,包括被丢弃数据报的内容,并应该在一个统计计
数器中记录下该事件。 
1.9. 消息格式和协议扩展
    移动IP定义了一系列新的控制消息,使用UDP(参考文献[17])发送,众所周知端口号
为434。当前,定义了如下两种消息类型:
      1  Registration Request
3 Registration Reply

移动IP控制消息最新的类型值在最新的“Assigned Numbers”(参考文献[20])中指定。

另外,为了代理发现(Agent Discovery),移动IP使用了现有ICMP路由发现(ICMP Router 
Discovery,参考文献[4])定义的路由广告(Router Advertisement)和路由请求(Router 
Solicitation)消息。

移动IP定义了一种通用扩展机制以允许移动IP控制消息或ICMP路由发现消息负载可选
的信息 。每一个这些扩展(有一个例外)使用下面的Type-Length-Value格式进行编码:

0
1
2
3
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
     Type
     Length
               Data … … 
    
  Type     表明特定的扩展的类型。
      Length   表明该扩展中data域的长度(以字节为单位)。长度不包括Type和    
Length的字节数。
      Data      与该扩展相关的特定数据。该域可以为0个或多个字节。Data域的格式和
长度由type和length域决定。

扩展允许每一个数据报携带可变数量的信息。扩展列表的末尾由IP数据报的total 
length域决定。

    移动IP使用两个分开维护的编号空间,扩展类型值就是在这些空间里分配:

   ——第一个包含只出现在移动IP控制消息(通过UDP端口434传送)中的扩展。当前定
义了移动IP控制消息中出现的扩展类型:
          32  Mobile-Home Authentication
          33  Mobile-Foreign Authentication
          34  Foreign-Home Authentication
   ——第二个包含那些只出现在ICMP Router Descovery(参考文献[4])消息中的扩展。
当前移动IP定义了以下出现在ICMP Router Discovery 消息中的扩展类型:
           0  One-byte Padding (编码为无Length无Data域)
          16  Mobility Agent Advertisement
19 Prefix-Lengths

每一种扩展在本文档后面各辟一个章节详细描述。扩展类型的最新值在“Assigned   
Numbers”(参考文档[20])中定义。

由于这两个集合的分开(正交,orthogonality),有可能使后来定义的两种扩展有相
同的类型值,只要满足一个扩展仅用于移动IP控制消息而另一个仅用于ICMP Router 
Discovery 消息。

    当遇到在这两个集合中编号从0到127的扩展但无法识别时,包含该扩展的消息必须被
悄悄地丢弃。当遇到128到255的扩展号而无法识别时,该扩展被忽略,但必须继续处理其
它扩展和消息的数据。扩展中的Length域就是用来跳过Data域而查找新的扩展。  
2. Agent Discovery
代理发现是移动节点用来判断当前自己是连接到家乡网络还是外地网络的方法,代理发
现还是移动节点用来检测自己是否已经从一个网络移动到另一个网络。在连接到外地网络时,
本节介绍的方法还使得移动节点能够确定每一个外地代理所提供的“外地代理转交地址”。

移动IP把ICMP Router Discovery扩展为其代理发现的基本机制。代理广告通过在ICMP 
Router Advertisement消息(见2.1)中包含一个“移动代理广告扩展”(Mobility Agent 
Advertisement Extension)而得到。Agent Solicitation消息与ICMP Router Solicitation
消息相同,但其IP TTL必须设置为1 (见2.2)。本节描述了移动节点、外地代理和家乡代
理合作以实现代理发现所使用的消息格式和过程。

代理广告和代理请求对于已经提供这种功能的链路层来说可能是不必要的。移动节点与
预期代理建立链路层连接的方法超出了本文档的范畴(但请参考附录B)。下面的描述的过程
假设这样的链路层连接已经建立好。

 代理广告和代理请求消息不需要任何认证。它们可以使用IP认证头部(参考文献[1])
进行认证,认证头与本文档描述的消息无关。广告和请求消息的认证方法的更详尽的规范超
出了本文档的范畴。
2.1.代理广告( Agent Advertisement)
代理广告由移动代理在链路上发送以广告其服务。移动节点使用这些广告来确定它们当
前连接到Internet上的位置。代理广告是已被扩展的ICMP路由广告,扩展后携带一个移动
代理广告扩展(Mobility Agent Advertisement Extension,见2.2.1),一个可选的
Prefix-Lengths 扩展(见2.1.2),一个One-byte Padding扩展(见2.1.3),或将来定义的其
他扩展。

   在代理广告消息中,ICMP路由广告的各域要求遵守下面附加的规范:
    -  链路层各域(Link-Layer Fields)
          Destination Address
                  单播代理广告的链路层目的地址必须与提示该广告的代理请求的链路
层源地址相同。
    -  IP各域(IP Fields)
          TTL      所有代理广告的TTL必须设置为1。
          Destination Address
                  如ICMP Router Discovery中定义, 代理广告的目的IP地址必须为:
“该链路上所有系统”的多播地址(224.0.0.1,参考文献[5]),或者“受
限广播地址”(255。255。255。255)。不能使用〈prefix>.<-1>形式的
指向子网的(subnet-directed)广播地址,因为移动节点一般不知道外
地网络的前缀。
    -  ICMP Fields
          Code     代理广告的Code域按如下解释:
                    0 移动节点控制普通流量——也就是说,它作为(不一定与移动节点
有关的)IP数据报的路由器 。
                   16 移动代理不路由普通流量。但是所有的外地代理必须(最低限度地)
把从已注册移动节点收到的数据报转发至一个缺省路由器(见4。2。
2)。
          Lifetime
                   广告在不发送更多广告时保持有效的最长时间。
          Router Address(es)
                   见2.3.1关于代理广告中可能出现的地址的讨论。
          Num Addrs
                    消息中广告的Router Addresses的个数。注意在代理广告中,ICMP
路由广告部分指定的路由器地址数可为0。详情见2.3.1。                 
    如果定时性地发送,代理广告指定发送的时间间隔应该为ICMP头部中给出的
advertisement Lifetime的1/3。这允许移动节点在连续丢失三个广告后才从它的有效代理
表中删除一个代理。每个广告的实际传输时间应该被稍微随机化(参考文献[4])以避免同步
或与其他代理随后发送的代理广告产生冲突(或其他路由器发送的Router Advertisement)。
注意该域与下面定义的移动代理广告的“Registration Lifetime”域没有任何联系。
2.1.1移动代理广告扩展( Mobility Agent Advertisement Extension)
    移动代理广告扩展跟在ICMP路由广告域的后面。使用它来表明ICMP路由广告消息也是
移动代理发送的代理广告。移动代理广告扩展定义如下:  
0
1
2
3
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
       Type
     Length
       Sequence  Number
     Registration  Lifetime
R
B
H
F
M
G
V
     reserved

                     Zero or more Care-of Address
             
      Type     16
      Length   (6 + 4*N), N是被广告的转交地址数。
      Sequence Number
               代理被初始化以来发送的代理广告消息的数量(见2。3。2)。
      Registration Lifetime
              代理愿意接受Registration Request的最长时间(以秒为单位)。0xffff 意
味着无穷大。该域与代理广告中的ICMP路由广告部分的“Lifetime”域无关。
      R         要求注册。要求向外地代理(或该链路上的另一个外地代理)注册而不是
使用联合转交地址。
      B        忙。外地代理将不接受其他移动节点的注册。
H        家乡代理。该代理作为发送该代理广告消息的链路的家乡代理而提供服务。  
F        外地代理。该代理作为发送该代理广告消息的链路的外地代理而提供服务。
      M        最小封装。该代理接收通过隧道传送的使用最小封装的数据报。(参考文献
[15])。
      G         GRE封装。该代理接收通过隧道传送的使用GRE封装的数据报(参考文献
[8])。
      V        Van Jacobson头部压缩。该代理支持该链路上已注册移动节点的Van 
Jacobson头部压缩(参考文献[10])。
      reserved
               以0发送;接收时被忽略。
      Care-of Address(es)
               该外地代理提供的外地代理转交地址。Agent Advertisement在设置“F”
位时必须至少包含一个转交地址。出现的转交地址的个数取决于扩展中的
Length域。
  
移动节点的家乡代理必须时刻准备着为移动节点提供服务。外地代理有时可能太忙而不
能为其他移动节点服务;即使这样,它必须继续发送代理广告,以便已经向其注册的移动节
点知道它们没有超出外地代理的范围以及外地代理没有出现故障。外地代理可以通过在其代
理广告中设置“B”位来暗示它“太忙”,不允许新的移动节点向其注册。如果没有设置“F”
位,则在发送的代理广告消息中不允许设置“B”位,则代理广告消息不能设置“B”位。代
理广告中必须至少设置“F”为和“H”位之一。

   当外地代理要求使用联合转交地址的移动节点注册时,它把“R”位设置为1。由于该位
仅应用于外地代理,所以如果没有设置“F”位为1,则代理不能设置“R”位为1。








2.1.2. Prefix-Lengths Extension
   Prefix-Lengths Extension可以跟在Mobility Agent  Advertisement Extension后面。
它被用来表明代理广告ICMP Rounter Advertisement部分所列出的路由器地址的网络前缀的
比特数。注意给出的前缀长度不适用于Mobility Agent Advertisement Extension 所列出
的转交地址。Prefix-Lengths Extension定义如下:

0
1
2
3
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
        Type
      Length
  Prefix Length
     … … 
  
Type     19 (Prefix-Lengths Extension)

Length   N, 代理广告中ICMP Router Advertisement 部分Num Addrs域的值。

      Prefix Length(s)
                前几个比特数,定义了该消息中ICMP Router Advertisement部分列出的
相应路由器地址的网络号。每一个路由器地址的前缀长度编码为一个字节,
按消息中ICMP Router Advertisement部分路由器地址排列的顺序。 

    移动节点可以利用前缀长度扩展来确定自己是否已经移动,方法见2.2.4。使用该扩展
的实现细节请参见附录E。

2.1.3. One-byte Padding Extension
  某些IP协议的实现坚持要求把ICMP消息填充使其为偶数个字节。如果代理广告的ICMP
长度为奇数,可以包含该扩展以使ICMP长度为偶数。注意该扩展并不作为代理广告各个域
字(word-)对齐或长整数(long-)对齐的通用方法。代理广告不应该包含多于一个的One-byte 
Padding  Extension,并且如果出现,该扩展应该在代理广告中最后一个出现。
注意与移动IP的其他扩展不同,One-byte Padding 扩展编码为一个单独的字节,既没
有“Length域也没有“Data”域。One-byte Padding扩展定义如下:

0
1
2
3
4
5
6
7
      Type
 
      Type 0 (One-byte Padding Extension)
2.2. Agent Solicitation(代理请求)
     代理请求与ICMP路由请求相同,只是IP TTL域 必须设置为1。

2.3. 外地代理与家乡代理方面的考虑
   不能被链路层协议发现的移动代理必须发送代理广告。能够被链路层协议发现的代理也
应该实现代理广告。但是广告不需要发送,除非站点的策略要求(必须)向代理注册时(即
当设置“R ”位时),或者作为某个代理请求的响应时才发送。所有的移动代理均应该对代
理请求做出响应。

   代理广告和代理请求使用与ICMP路由发现消息(参考文献[4])相同的过程,缺省值和常
数,但是下面除外:

    ——移动代理必须限制其发送广播或多播代理广告的频率;建议的最大速率为一秒钟一
次。以及
    ——收到路由请求的移动代理不允许要求IP源地址为其相邻路由器的地址(即在该路
由器地址相对应的子网掩码之下在接收界面与路由器自己的一个地址匹配)。
   —— 移动代理可以配置为仅在响应代理请求消息时才发送代理广告。

如果家乡网络不是一个虚拟网络,那么移动节点的家乡代理应该位于由移动节点家乡地
址标识的链路上,并且家乡代理在该链路上发送的代理广告消息必须设置“H”位。通过这种
方法,位于自己家乡网络上的移动节点可以确定它们真正的“身在家乡”。由家乡代理在其他
可能连接的链路上(如果它作为不止一条链路的移动代理)发送的代理广告,不允许设置“H”
位,除非家乡代理也作为该条链路的(其他移动节点的)家乡代理。

如果家乡网络是一个虚拟网络,家乡网络在家乡代理自身之外没有任何物理实体。在这
种情况下没有实际的网络链路供家乡代理发送代理广告消息。以该网络为家乡网络的移动节
点总是被视为“远离家乡”。

   在某个特定的子网上,要么所有的移动代理必须包含Prefix-Lengths扩展,要么所有移
动代理不允许包含Prefix-Lengths扩展。等价地,禁止一个给定子网上某些代理包含该扩
展而其它代理不包含该扩展。否则,为移动节点设计的移动检测算法之一将不能正常运行(见
2.4.2)。
2.3.1. 被广告的Router Addresses
    代理广告的ICMP路由器广告部分可以包含一个或多个路由器地址。这样,代理可以在
广告中包含一个它自己的地址。外地代理可以通过把优先级(preference)设置为一个较低
的值,并且在广告中包含另一个路由器地址(带一个相对更高的优先级),从而阻止
(discourage)把该地址作为缺省路由器。不过,外地代理必须为接收到的来自注册移动节
点的数据报提供路由(见4.2.2)。
2.3.2. 序列号及翻转控制
    代理广告中的序列号范围从0到0xffff。在系统引导后,代理必须使用0作为其第一个
广告的序列号。随后每个广告序列号必须依次增1,但序列号0xffff后必须跟序列号256。
使用这种方法,移动节点能区分由于重起而导致的序列号的减小,以及在序列号达到0xffff
后翻转所导致的序列号的减小。
2.4.移动节点考虑
   每一个移动节点必须实现代理请求(Agent Solicitation)。请求应该仅在没有代理广告
的时候发送或者当转交地址不能通过链路层协议或其他方式确定时发送。移动节点的代理请
求使用与为ICMP路由器请求消息(参考文献[4])相同的过程,缺省值以及常数,不同的是
移动节点可以频繁于每三秒钟一次发送请求,以及当前没有连接到任何外地代理的移动节点
发送代理请求可以多于MAX_SOLICITATIONS次。

移动节点发送请求的速率必须由移动节点加以限制。在寻找代理时,移动节点可以以最
大速率(每秒钟一次)发送三个初始请求。此后,发送请求的速率必须降低以减小本地链路
的开销。随后的请求必须使用2的指数级回退机制(binary exponential backoff  
mechanism),把两个连续的请求之间的时间间隔加倍,直到达到一个最大间隔。最大间隔应
该根据移动节点发送请求的媒体的特性而适当选择。请求之间的最大间隔应该最小为一分
钟。

当仍在寻找代理时,移动节点不允许提高其发送请求的速(频)率,除非它收到暗示表
明移动节点已经移到新的链路。在向代理的注册成功后,移动节点在下次寻找新代理注册时
也应该提高请求发送的速(频)率。提高后的请求频率可以回复到最大频率,但随后必须按
上面的方法降低发送频率。所有情况下,所推荐的请求发送间隔只是名义上的值(nominal 
values )。移动节点必须与ICMP路由器发现中指定的一样在这些名义值上下对它们发送请
求的时间进行随机化。

  移动节点必须处理它所收到的代理广告。移动节点可以通过检查被广告的路由器地址的
个数和IP Total Length域来区分代理广告消息和ICMP路由器广告消息的其他应用。当IP
总长度表明ICMP消息比被广告地址数所需要的长度长时,多余的数据解释为一个或多个扩
展。扩展的出现标识该广告是一个代理广告。
当使用多种代理发现方法时,移动节点应该首先尝试在它们的广告中包括移动代理广告
扩展来向代理注册,并使用能被其它方法发现的优先权。该优先权把该注册被识别的可能性
最大化,从而使注册的尝试次数最小化。



2.4.1. 要求注册
    当移动节点收到设置了“R”位的代理广告时,移动节点应该通过外地代理进行注册,
即使移动节点可以获得联合转交地址。该特征目的是允许站点实施要求交换认证信息的访问
策略(例如计费)。
2.4.2.移动检测 
   有两种机制用于检测移动节点已经从一个子网移动到另一个子网。也可以使用其它的机
制。当移动节点检测到自己已经移动(到另一个子网),它应该向外地网络注册其转交地址
(见3)。但是,移动节点注册不允许频繁于平均每秒钟一次,如3.6.3中所述。
2.4.2.1. 算法1
   第一种方法基于代理广告中ICMP路由广告部分的Lifetime域。移动节点应该记录收到
的所有代理广告的Lifetime,直到Lifetime到时。如果移动节点在某个Lifetime内没有收
到另一个广告,它应该假设已经失去了与那个代理的联系 。如果在Lifetime尚未到时就收
到了另一个代理的代理广告,移动节点可以立即尝试向该代理注册。否则移动节点应该尝试
找到一个新的代理并向其注册。
2.4.2.2.算法2
   第二种方法使用网络前缀。在某些情况下移动节点可以使用Prefix-Lengths扩展来确定
新收到的代理广告是否来自与节点当前的转交地址同一个子网。如果前缀不同,移动节点可
以假设它已经移动(到另一个网络)。如果移动节点当前正在使用一个外地代理转交地址,
移动节点不应该使用这种移动检测方法,除非当前代理和新的代理在它们各自的代理广告中
均包括Prefix-Lengths扩展;如果该扩展在一个或两者的广告中缺失,则不应该使用这种
移动检测方法。同样,如果移动节点正在使用联合转交地址,它不应该使用这种移动检测方
法,除非新代理在其广告中包括了Prefix-Lengths Extension并且移动节点知道其当前联合
转交地址的网络前缀。在其当前注册时间到时,如果这种方法表明节点已经移动,,移动节点
可以选择向发送新的带不同网络前缀的代理广告的外地代理注册,而不是重新向其当前转交
地址注册。 新注册基于的代理广告不能已经过期(根据其Lifetime域)。
2.4.3. 返回家乡
    当移动节点收到来自家乡代理的代理广告时,则它已经回到家乡网络。这样,它应该解
除向其家乡代理的注册(见 3)。在尝试解除注册之前,移动节点应该为其家乡网络当配置好
路由表(见4.2.1)。另外,如果家乡网络正在使用ARP(参考文献[16]),移动节点必须遵循
4.6中描述的关于ARP,代理ARP以及免费ARP的过程。
2.4.4. 序列号和翻转控制
  如果移动节点检测到来自其注册的外地代理的两个连续序列号的代理广告,第二个比第
一个小并介于0到255间时,移动节点应该重新注册。如果第二个比第一个小但是大于等于
256,移动节点应该假设序列号已经超过其最大值(oxffff)而翻转(roll over),不需要
重新注册(见2.3)。
3. 注册(Registration)
    移动IP的注册提供了一种灵活机制使移动节点把它们当前的可达性信息传送到其家乡
代理。移动节点使用的方法是:
    ——在访问外地网络时请求转发服务,
    ——把它们当前的转交地址告知家乡代理,
    ——时间到,重新注册,和/或
    ——在回到家乡时解除注册。
   
    注册消息在移动节点、(可选)外地代理和家乡代理之间交换信息。注册过程创建或修改
家乡代理的移动绑定信息,以及特定Lifetime家乡地址和转交地址的关联(即更新移动节点
的转交地址) 。
   其它几种能力(可选)在注册过程中可用,这些过程使移动节点能够:
    ——维护多个同时的注册,使每个数据报的拷贝通过隧道到达处于活动状态的转交地址
    ——解除特定转交地址的注册,保留其它移动绑定信息
    ——发现家乡代理的地址,如果移动节点没有配置家乡代理的地址。
3.1. 注册总述
   移动IP定义了两种不同的注册过程,一种是外地代理把注册请求中继到家乡代理,一种
直接向家乡代理注册。下面的规则决定特定环境下使用哪一种注册过程:

    ——如果移动节点正在注册一个外地代理转交地址,移动节点必须通过外地代理注册
    ——如果移动节点正使用联合转交地址,并且收到它正在使用的转交地址的链路上的外
地代理发送的代理广告 ,并且代理广告消息设置了“R”位,则移动节点应该通过
这个外地代理注册,或者通过该链路上的另一个外地代理。
    ——如果移动节点正在使用联合转交地址,移动节点必须直接向其家乡代理注册。
    ——如果移动节点已经返回到其家乡网络并向其家乡代理注册(解除注册),移动节点
必须直接向其家乡代理注册。

两种注册过程均涉及到交换注册请求和注册应答消息(见3.3和 3.4)。当通过外地代理
注册时,注册过程要求下面的四条消息:

      a)移动节点向事先假定的外地代理发送注册请求,注册过程开始。
      b)外地代理处理该注册请求并把它中继到家乡代理。
      c)家乡代理发送一个注册应答给外地代理以接受或拒绝该请求。
      d)外地代理处理该注册应答然后把它中继到移动节点,把请求的处理结果告知移动节。



   当移动节点直接向家乡代理注册时,注册过程仅需两条消息:

           a)  移动节点向家乡代理发送注册请求。
b) 家乡代理给移动节点发送注册应答,同意或拒绝该请求。

3.3和3.4定义的注册消息使用用户数据报协议(UDP)(参考文献[17])。头部中应该包
含一个非0的UDP检验和,并且在接收时必须由接收方进行检验 。
3.2. 认证 (Authentication)
   每一个移动节点、外地代理和家乡代理必须能够支持移动实体的移动安全联合,由它们
的SPI和IP地址索引。对于移动节点来说,IP地址必须是其家乡地址。支持认证算法的要
求见5.1。在移动节点和其家乡代理之间的注册消息必须使用Mobile-Home认证扩展进行认
证(见3.5.2)。该扩展紧跟在所有除了可能在移动节点计算认证后加到消息中的外地代理自
定义扩展的非认证扩展之后。
 3.3. 注册请求(Registration Request)
    移动节点使用一个注册请求消息来向其家乡代理注册以使其家乡代理能够创建或修改移
动节点的移动绑定信息(也就是使用一个新的lifetime)。该请求可通过移动节点通过其注册
的外地代理中继到家乡代理,在移动节点正在注册联合转交地址时也可以直接送到家乡代理。
   IP fields:
      源地址典型的为消息发送所通过的接口的地址。
      目的地址典型的为外地代理或家乡代理的地址。
    详情见3.6.1.1和3.7.2.2 。
   UDP fields:
      源端口        可变
      目的端口       434
   移动IP遵循的UDP头部各域如下所示 :
0
1
2
3
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
       Type
S
B
D
M
G
V
rsw
               Lifetime
                                       Home Address
                                       Home Agent
                                        Care-of Address
                                        Identification
  Extensions … …

      Type     1 (Registration Request)
      S         同时的绑定信息。如果设置“S”位,移动节点要求家乡代理保留其以前
的绑定信息,如3.6.1.2所述。
      B         广播数据报。如果设置“B”位,移动节点要求家乡代理把在家乡网络上
收到的广播数据报通过隧道传送给它,如4。3所述。
      D         由移动节点进行解封装。如果设置“D”位,移动节点将自己解封装发送
到转交地址的数据报。也就是说,移动节点正在使用联合转交地址。
      M        最小封装。如果设置“M”位,移动节点要求家乡代理对通过隧道的数据报
采用最小封装[15]。
      G        GRE封装。如果设置“G”位,移动节点要求家乡代理对通过隧道发送到移
动节点的数据报使用GRE封装。
      V      移动节点要求其移动代理在其与移动节点的链路上使用Van               
Jacobson头部压缩[10]。
      rsv       保留位;按0发送
      Lifetime
               在注册到时之前剩下的秒数。0表示请求解除注册,0xffff表示无穷大。
      Home Address
               移动节点的IP地址。
      Home Agent
               移动节点家乡代理的IP地址。
      Care-of Address
               隧道末端的IP地址。
      Identification
              64位数,由移动节点构建,用于匹配注册请求和注册应答,以及避免使用注
册消息进行重放攻击。见5。4和5。6。
      Extensions
                注册请求的固定部分之后跟一个或多个列在3。5中的扩展。所有注册请求
必须包含Mobile-Home 认证扩展。如果出现扩展,则各种扩展必须遵循的
顺序见3.6.1.3。
3.4.注册应答
   移动代理向发送注册请求的移动节点返回一个注册应答消息(见3.3)。如果移动节点向外
地代理请求服务,该外地代理将收到来自家乡代理的应答,然后把它中继到移动节点。应答
消息包含了必要的代码以告知移动节点其注册请求的状态,以及家乡代理所核准的生存期, 
该生存期可能比原先请求的生存期小。外地代理不允许增加移动节点在注册请求中选择的
Lifetime, 因为Lifetime由Mobile-Home认证扩展覆盖,不能被外地代理正确(重新)计
算。家乡代理不能增加移动节点在注册请求中选定的Lifetime,因为这样做可能会超出外地
代理允许的最大生存期。如果收到的注册应答中Lifetime大于注册请求中的Lifetime,则
必须使用注册请求中的Lifetime。当收到注册应答中的Lifetime 小于注册请求中的
Lifetime,必须使用注册应答中的Lifetime。
   IP fields:
      Source Address       典型为从代理正在应答的注册请求的目的地址拷贝而得,见 
3.7.2.3和3.8.3.1的详细描述。
      Destination Address   从代理正在应答的注册请求的源地址拷贝而得。
   UDP fields:
      Source Port           可变
Destination Port      从对应的注册请求的源端口拷贝而得(见3。7。1)。


UDP头部后跟移动IP各域,如下所示:

0
1
2
3
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
         Type
     Code
           Lifetime
                                     Home Address
                                     Home  Agent
                                     
Identification
Extentions … … 

      Type     3 (Registration Reply)
      Code     表明注册请求结果的值。当前定义的Code值如稍后所示。
      Lifetime
                 如果Code表明注册被接受,Lifetime域设置为认为注册到期前剩下的秒数。
0表明移动节点已经被解除注册。值0xffff表明无穷大。如果Code域表明注
册被拒绝,该域没有定义,在接收时必须被忽略掉。
      Home Address
               移动节点的IP地址。
      Home Agent
               移动节点家乡代理的IP地址。
      Identification
                   64位值,用于匹配注册请求和注册应答以及避免使用注册消息进行重
放攻击。该值基于注册请求中的Identification域,以及移动节点和家乡
代理间安全上下文所使用的重放保护风格(由它们之间的安全联合以及
Mobile-Home认证扩展中的SPI定义)。见5。4 and 5。6。
      Extensions
注册应答的固定部分之后跟有一个或多个3.5中列出的扩展。所有家乡代
理返回的注册应答中必须包含Mobile-Home 认证扩展 。扩展放置的规则见
3.7.2.2和3.8.3.3。 

   在Code域使用下面定义的值。
   注册成功Registration successful:
        0   注册被接受
        1   注册被接受,但不支持并行移动绑定
   注册被外地代理拒绝Registration denied by the foreign agent:
       64  原因不明
       65  管理上禁止administratively prohibited
       66  资源不足
       67  移动节点认证失败
       68  家乡代理认证失败
       69  请求的Lifetime太长
       70  Request格式不对
       71  Reply格式不对
       72  请求的封装方法不可用
       73  请求的Van Jacobson压缩不可用
       80  家乡网络无法到达(收到ICMP错误)
       81  家乡代理主机不可达(收到ICMP错误)
       82  家乡代理端口不可达(收到ICMP错误)
       88  家乡代理不可达(收到其它ICMP错误)
   注册被家乡代理拒绝Registration denied by the home agent:
      128 原因不明
      129 管理禁止
      130 资源不足
      131 移动节点认证失败
      132 外地代理认证失败
      133 注册中的Identification不匹配
      134 Request格式不对
      135 并行移动绑定太多
      136 家乡代理地址不可知
     最新的Code域的值定义在最新的“Assigned Numbers”[20]中。
3.5.注册扩展
3.5.1. 计算认证扩展值
每一个认证扩展计算的Authenticator值必须保护注册消息中的下述域:

    ——UDP净载数据(即注册请求或注册应答数据),
    ——完整的之前所有的扩展,以及
——该扩展的Type和Length。

      缺省的认证算法使用keyed-MD5(参考文献[21])以“prefix+suffix”模式计算出该
注册消息的128位“消息摘要”。缺省的authenticator是下列字节流计算所得的128位MD5
检验和:
   ——由移动安全联合以及认证扩展中SPI定义的共享秘密,后跟
   ——注册消息中受保护的域,依上面定义的顺序,后跟
   ——再一次跟共享秘密

     注意在计算缺省Authenticator值时,并不包括Authenticator域本身和UDP头部。
消息认证Code要求的支持见5.1,这些Code用于各种认证扩展中 。

      任何认证扩展中的安全参数索引(SPI)定义了用来计算Authenticator域的安全上下
文,SPI必须由接收者用于检查该Authenticator值。特别是,SPI选择了认证算法和认证
模式(见5.1)以及用来计算Authenticator的秘密(共享秘密,或者合适的公用/私用密钥对)。
为确保移动IP协议的不同实现能够互用,实现必须能够把SPI的值与它使用的任何认证算
法和认证模式建立关联。另外,移动IP的所有实现必须实现缺省的认证算法(keyed-MD5)和
认证模式(“prefix+suffix”)。
3.5.2. Mobile-Home认证扩展
所有注册请求和注册应答中必须出现且仅出现一个Mobile-Home认证扩展,
Mobile-Home认证扩展用于消除由于不受控制的远程重定向传播所引起的问题[2]。
该扩展的位置标志着认证数据的结束。

0
1
2
3
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
        Type
        Length
           SPI …
              … SPI(continued) 
          Authenticator … 

      Type            32
      Length          4+Authenticator的字节数。
      SPI              安全参数索引(4个字节)。一个晦涩的(opaque)标识符(见1。
6)。                     
      Authenticator   长度可变(见3。5。1。)
3.5.3. Mobile-Foreign认证扩展  
   在移动节点和外地代理之间存在移动安全联合时,注册请求和注册应答可以包含该扩展。
消息认证Code要求的支持见5.1。

0
1
2
3
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
        Type
        Length
           SPI …
              … SPI(continued) 
          Authenticator … 
 
      Type            33
      Length          4+Authenticator字节数。
      SPI              安全参数索引(4字节)。一个晦涩的标识符(见1。6)。
      Authenticator   长度可变(见3.5.1)
3.5.4. Foreign-Home认证扩展
   当外地代理和家乡代理之间存在移动安全联合时,注册请求和注册应答可以包含该扩展 
支持消息认证的代码方面的要求见5.1 。




   
0
1
2
3
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
        Type
        Length
           SPI …
              … SPI(continued) 
          Authenticator … 

      Type            34
      Length          4+Authenticator的字节数。
      SPI              安全参数索引(4字节)。一个晦涩的标识符(见1。6)。
      Authenticator   长度可变(见3.5.1)
3.6移动节点方面的考虑 Mobile Node Considerations
    移动节点必须配置其家乡地址,网络掩码,以及每个家乡代理的一个移动安全联合。另
外,移动节点可以配置其一个或者多个IP地址;否则移动节点可以使用3.6.1.2中描述的
过程发现一个家乡代理。
   对每一个未决的注册,移动节点维护了下面的信息:
    ——注册请求发送到的外地代理的链路层地址,如果可用 if applicable,
    ——注册请求的目的IP地址,
    ——注册所使用的转交地址,
    ——请求所发送的Identification的值,
    ——最初请求的Lifetime,以及
    ——未决注册剩余的Lifetime。
   
移动节点在检测到其网络连接发生改变时应该初始化注册。检测方法见 2.4.2。当远离家乡
时,移动节点的注册请求允许其家乡代理创建或修改(该节点的)移动绑定信息。当在家乡
时,移动节点的注册请求/解除注册请求允许其家乡代理删除(该节点)以前的移动绑定信息。
移动节点在家乡时,其操作将不支持移动功能。

在其它条件下移动节点应该向外地代理(重新)注册,比如当移动节点检测到外地代理
重新启动(见2.4.4),以及当前注册的Lifetime即将到时。

如果没有链路层暗示接入点发生改变,而且当前注册尚未到时并且还能收到当前注册的
代理发送的代理广告,移动节点不应该因为收到新代理发送的代理广告而尝试新的注册。如
果没有链路层的指示,移动节点注册的频率不允许频繁于每秒钟一次。

在传输层协议表明重发过多(超过设定次数—译注)时,移动节点可以向另一个代理注
册。移动节点不能因为收到来自正给其提供服务的外地代理的ICMP Redirect而向新的外地
代理注册。在这些限制之内移动节点可以在任意时刻再次注册。
附录D给出了典型注册中注册消息中如何建立其中各域。




3.6.1.发送注册请求
   下面的章节移动节点必须在注册请求消息中给出的域的值的细节。
3.6.1.1.  IP Fields
   本节提供了移动节点给出注册请求IP头部各域的值所遵循的规则:
   IP Source Address:
    ——当向外地代理网络联合转交地址注册时,源IP必须是该转交地址。
    ——在所有其它情况下,源IP地址必须是移动节点的家乡地址。
   IP Destination Address:
    ——当移动节点通过某种不提供代理的IP地址的方式(例如链路层)找到了其正在注册
的代理,即移动节点不知道代理的IP地址,IP目的地址必须使用“所有移动代理”
多播地址(224.0.0.11)。在这种情况下,移动节点必须使用代理的链路层单播地址
一边能报数据报传送到正确的代理。       
    ——当向外地代理注册时,必须使用对应代理广告的源IP地址。另外在传送注册请求
消息时移动节点必须使用从代理广告(正是从该广告中移动节点得到了代理的IP
地址)中的源链路层地址作为目的链路层地址。
    ——当移动节点直接向其家乡代理注册并知道家乡代理的(单播)IP地址,目的地址必
须设置为该地址。
    ——如果移动节点直接向其家乡代理注册但不知道家乡代理的IP地址,它可以使用动态
家乡代理地址决定自动的确定其家乡代理的IP地址(见3。6。1。2)。在这种情况
下,IP目的地址设为家乡网络的子网导向广播地址(subnet-directed broadcast 
address)。如果移动节点正在通过外地代理来注册,这个地址不能用作目的IP地
址,但这种情况下它可以用作注册请求中的Home Agent地址。
   IP Time to Live:
    ——如果IP目的地址设为“所有移动代理”多播地址,IP TTL域必须设为1。否则应该
选择一个与标准IP实现(参考文献[19])相一致的合适的值。
3.6.1.2  注册请求各域
    下面章节提供一种特定的规则供移动节点填充注册请求中固定部分各域。
移动节点可以设置“S”位以请求家乡代理保留以前的移动绑定信息。否则,家乡代理删
除以前的任何移动绑定信息并用注册请求中指定的新的绑定信息来取代。当至少使用一个无
线网络接口的移动节点在多于一个外地代理的无线传输范围内移动时,多个并行的移动绑定
可能有用。IP明确允许数据报的复制。在家乡代理允许同时绑定时,它会把到达的每一个数
据报的一个拷贝通过隧道送到每个转交地址,移动节点将收到数据报的多个拷贝。

      如果移动节点正在注册一个联合转交地址,它应该设置“D”位。否则,不能设置“D”
位。

移动节点可以设置“B”位以请求家乡代理把从家乡网络上收到的广播数据报的一份拷
贝转发给它。家乡代理转发广播数据报的方法取决于移动节点注册的转交地址的类型,由
注册请求中的“D”决定:

    ——如果设置了“D”位,那么移动节点暗示它将自己对通过隧道传送到该转交地址的数
据报进行拆封(移动节点使用联合转交地址)。在这种情况下,为把这样一个广播数
据报转发到移动节点,家乡代理必须把它通过隧道传送到该转交地址。移动节点对
它收到的数据报进行拆封,与它处理通过隧道直接到达它的数据报一样。

——如果没有设置“D”位,那么移动节点暗示它正使用外地代理转交地址,外地代理在
把数据报转发到移动节点之前将对之进行拆封。这种情况下,为了把这样一个广播
数据报转发到移动节点,家乡代理必须首先把广播数据报封装在一个单播数据报中
(目的地址为移动节点的家乡地址),然后必须把该单播数据报通过隧道传送到移
动节点的转交地址。

在由外地代理拆封时,内层数据报将是一个单播IP数据报(地址为移动节点),它向外
地代理表明封装后的广播数据报预期的目的地,将与处理其它通过隧道到达并被送往移动节
点的数据报一样使用相同方式把该数据报传送到移动节点。外地代理不能对封装后的广播数
据报进行拆封,也不允许通过本地网络广播把它传送到移动节点。移动节点因而必须自己对
封装后的广播数据报进行拆封,这种情况下,移动节点不允许在注册请求中设置“B”位,
除非它能对这些数据报进行拆封。

移动节点可以通过设置“M”和/或“G”位请求可选形式的封装,但仅在移动节点拆封自
己的数据报时(使用联合转交地址),或者在收到的代理广告的扩展部分设置相应位以表明外
部代理支持这些形式的封装时才可设置 。否则移动节点不能设置这些位。

   Lifetime域按如下选择:
    ——如果移动节点正在向外地代理注册,Lifetime不应该超过来自外地代理的代理广告
的注册生存期。当得知转交地址的方法不包含Lifetime,可以使用ICMP路由广告
的缺省Lifetime(1800 seconds)。
    ——移动节点可以请求家乡代理删除特定的移动绑定,方法是发送一个包含该绑定的转
交地址,并且Lifetime域为0的注册请求(见3。8。2)。
——同样,在移动节点解除所有转交地址的注册时Lifetime为0,例如返回家乡时。
   
如果移动节点知道家乡代理的地址,Home Agent域必须设置为家乡代理地址。否则移动
节点可以使用动态家乡代理地址解析来确定其家乡代理。在这种情况下,移动节点必须把
Home Agent域设置为移动节点家乡网络的指向子网广播地址(subnet-directed broadcast 
address)。如果家乡代理收到带广播目的地址的注册请求,它必须拒绝移动节点的注册,并
且应该返回一条“拒绝”注册应答,其中带有其单播IP地址供移动节点以后尝试。

      Care-of Address域必须设置为移动节点希望注册/解除注册的特定的转交地址。在移
动节点希望对所有转交地址的解除注册的特殊情况中,它必须把该域设置为它的家乡地址。

     移动节点按照它使用的与其家乡代理的重放保护风格来选用Identification域。这是
移动节点和其家乡代理之间共享的移动安全联合的一部分。移动节点计算Identification
域的方法见5.6。
3.6.1.3  扩展
   本节描述移动节点附加到注册请求的必选和可选扩展的顺序。
   必须遵循下面的顺序:
      a) IP头,后跟UDP头,后跟注册请求的固定长度部分,后跟
      b)如果有,任何由家乡代理使用的非认证扩展(可以为外地代理使用也可以不被外地代
理使用),后跟
      c) Mobile-Home认证扩展,后跟
      d) 如果有,仅由外地代理使用的非认证扩展,后跟
      e)Mobile-Foreign认证扩展,如果出现的话。

    注意(a)和(c)项必须出现在移动节点发送的每一个注册请求中。(b), (d), 和(e)
项可选。但是,(e)在移动节点和外地代理共享一个移动安全联合时必须包含。
3.6.2  接收注册应答
  注册应答由移动节点接收,作为对其注册请求的响应。注册响应通常分为3类:
    ——注册被接受,
    ——注册被外地代理拒绝,或
    ——注册被家乡代理拒绝。
   本节的其余部分描述了移动节点对这三种注册应答的处理。
3.6.2.1  有效性检查
  带有无效的非0 UDP检验和的注册应答必须被丢弃。

另外,必须对比注册应答中Identification域的低32位和发送给应答代理最新的注册
请求的Identification域的第32位,如果不匹配,必须丢弃该应答。

    同样,必须检查注册应答的authentication。就是说,移动代理必须按照应答中的Code
域对出现认证扩展进行检查。规则如下:
      a)如果移动节点和外地代理共享一个移动安全联合,注册应答中必须包含一个 
Mobile-Foreign认证扩展,移动节点必须检查该扩展中的Authenticator值。如果
没有找到任何的Mobile-Foreign认证扩展,或者找到多于一个的Mobile-Foreign
认证扩展,或者Authenticator无效,移动节点必须丢弃该应答,并应该把该事件
记录为安全意外。
b)如果Code域表明服务被家乡代理拒绝,或者表明注册被家乡代理接受,注册应答
必须出现且仅出现一个Mobile-Home认证扩展。移动节点必须检查该扩展中的
Authenticator值。如果没有找到Mobile-Home认证扩展,或者找到不止一个的
Mobile-Home认证扩展,或者Authenticator无效,则移动节点必须丢弃该应答并
应该把该事件记录为安全意外。

   如果Code域表明认证失败,不管是在外地代理还是在家乡代理,很有可能注册应答中出
现的任意authenticators也是错误的。这种情况是可能出现,例如,移动节点和家乡代理之
间的共享秘密配置有误。移动节点应该把这样的错误记录为安全意外。
3.6.2.2  注册请求被接受
   如果Code域表明请求被接受,移动节点应该为其当前的接入点配置路由表(见4.2.1)。
   如果移动节点返回到其家乡网络而家乡网络使用ARP,移动节点必须遵循4.6中描述的关
于ARP,代理ARP和免费ARP过程。
如果移动节点已在外地网络上注册,它应该在注册Lifetime到时前重新注册,如3.6
所述,对每一个未决的注册请求,移动节点必须维护未决注册的生存期,以及该注册请求原
先的Lifetime。当移动节点收到一个有效的注册应答,移动节点必须减小由它所看到的注册
剩下的生存期,减小的量为家乡代理从原先请求的Lifetime中减去的量。该过程等价于:

移动节点在它发送的注册请求时为核准的Lifetime启动一个定时器,即使移动节点在接
收到注册应答时才知道核准的Lifetime。因为注册请求在家乡代理开始启动注册生存期定时
器(也基于核准时间)之前发送,该过程确保移动节点在家乡代理到时并删除注册前重新注
册, 尽管在最初的注册请求和注册应答起动移动节点和家乡代理的Lifetime定时之间可能
有不可忽略的传输延迟。  
3.6.2.3  注册请求被拒绝
   如果Code域表明服务被拒绝,移动节点应该记录该错误。在某些特定情况下移动节点也
许能够“修复”该错误,包括:
      Code 69:(被外地代理拒绝,生存期太长)
          在这种情况下,注册请求中的Lifetime域将包含该外地代理期望在注册请求中接
受的最大Lifetime值。移动节点可以尝试向同一个代理注册,(新的)注册请求
中使用的Lifetime必须小于等于该应答中指定的值。
      Code 133:(被家乡代理拒绝,Identification不匹配)
          在这种情况下,注册应答中的Identification域将包含允许移动节点与家乡代理
同步的值,基于使用的重放保护风格(见5.6)。移动节点在发送注册请求之前,
必须根据注册应答中的信息调整它用来计算Identification的参数。         
      Code 136:(被家乡代理拒绝,未知家乡代理地址)
            该code在移动节点做动态家乡代理决定时由家乡代理返回(3.6.1.1 和
3.6.1.2)在这种情况下,应答中的Home Agent域将包含返回该应答的家乡代理
的单播IP地址。移动节点然后可以尝试在(新的)注册请求中向该家乡代理注册。
另外,移动节点应该在继续发送注册请求之前,根据注册应答中对应的域调整它
用来计算Identification域的参数。
3.6.3  注册重传
在某段可接受的时间内如果没有收到注册应答,可以发送另一个注册请求。在使用时间
戳(timestamps)时,每次重传使用新的Identification注册;因此它算作一个新的注册。  
当使用随机数(nonces)时,未受回答的请求被不加改变地重传,因而这样的重传不能算作
一个新的注册(见5.6)。使用这种方式,在最初的注册请求(而不是其注册应答)被网络丢
失时,重传不要求家乡代理通过发送另一个nonce来与移动节点重新同步。

    新注册请求发送之前的最大时间应该不大于注册请求中请求的Lifetime。最小值应该足
够大以说明消息的大小,即两倍于传送到家乡代理的周转时间,另加至少100毫秒以允许在
响应之前处理该消息。传输到家乡代理的周转时间至少与以移动节点的链路速度把消息传输
到移动节点当前的接入点所需的时间一样多。某些回路给家乡代理的总的周转时间增加了另
外200毫秒的卫星延迟。注册请求之间间隔时间最小不能小于1秒。连续的重发timeout应
该最少为上一个timeout的两倍,只要它小于上面所讲的最大值。
3.7  外地代理方面的考虑
  外地代理在移动IP注册中大多扮演被动的角色。它在移动节点和家乡代理之间中继注册
请求,当它提供转交地址时,对数据报进行拆封并传送到移动节点。如果外地代理不能通过
链路层方式检测到,它还应该像2.3中所述那样定期发送代理广告以对其存在性进行广告。

     外地代理除了中继来自移动节点的注册请求外,不允许向家乡代理发送注册请求。   
外地代理除了中继来自家乡代理的注册应答,或者在外地代理拒绝为移动节点提供服务而向
注册请求作出响应外,不能发送注册应答。特别地,外地代理不能因为注册的生存期到时而
发送注册请求或注册应答。外地代理也不能构造注册请求来解除对一个移动节点的注册,但
是它必须中继由移动节点构造的有效的注册/解除注册请求。
3.7.1  配置和注册表
     每一个外地代理必须配置一个转交地址。另外,对每一个未决请求或当前请求,移动代
理必须维护一张访问者列表,包含下述从移动节点的注册请求中得到的信息: 
    ——移动节点的源链路层地址
    ——源IP地址(移动节点的家乡地址)
    ——目的IP地址(见3.6.2.3)
    ——UDP源端口号
    ——家乡代理地址
    ——Identification域
    ——请求的注册生存期,以及
——未决或当前注册剩余的生存期。

       与Internet上的任意一个节点一样,外地代理还可以与其他任意节点共享移动安全
联合。在把移动节点的注册请求中继到家乡代理时,如果外地代理与家乡代理之间共享移动
安全联合,外地代理必须给该注册请求增加一个Foreign-Home认证扩展,而且必须 对家乡
代理返回的注册应答中的Foreign-Home认证扩展进行检查(见3.3和3.4)。同样,在收到来
自移动节点的注册请求时,如果外地代理和移动节点之间共享移动安全联合,它必须检查注
册请求中的Mobile-Foreign认证扩展,而且必须给向该移动节点的注册应答增加一个
Mobile-Foreign认证扩展。
3.7.2 接受注册请求
   如果外地代理接受来自移动节点的注册请求,它必须把该请求中继到暗(指)示的家乡代
理。否则,如果外地代理拒绝该注册请求,它必须向移动节点发送一个带合适拒绝码的注册
应答,除非在外地代理被要求向同一个移动节点每秒发送多于一个这样的拒绝。下面几节更
详细描述了这种行为。
   如果外地代理收到来自其访问者列表中的一个移动节点的注册请求,在收到来自家乡代理
的有效注册应答(Code表明注册成功)之前,外地代理不应该删除或修改现有的该移动节点
的表项。外地代理必须与现存访问者列表表项无关而记录该新的未决注册请求。如果注册请
求要求解除注册,在外地代理收到成功的注册应答之前,它不应该删除该移动节点的现存访
问者列表表项。如果注册应答表明该请求(注册或解除注册)已被家乡代理拒绝,则不能修
改该节点的现存访问者列表表项,因为收到了这样的注册应答。 
3.7.2.1 有效性检查

带有无效的、非0的UDP检验和的注册请求必须丢弃。

另外,必须检查注册请求中的authentication。如果外地代理和移动节点共享移动安全
联合,注册请求中必须包含且仅包含一个Mobile-Foreign认证扩展,外地代理必须检查扩
展中的Authenticator值。如果没有找到Mobile-Foreign认证扩展,或者找到了不止一个的
Mobile-Foreign认证扩展,或者如果Authenticator无效,外地代理必须丢弃该请求并应该
把该事件记录为一个安全意外。外地代理还应该向移动节点发送一个Code为67的注册应答。

3.7.2.2. 向家乡代理转发有效请求

      如果外地代理接受移动节点的注册请求,它必须把该请求中继到家乡代理(由Home 
Agent域指定)。不允许外地代理修改注册请求中从固定部分开始直到Mobile-Home扩展(包
括Mobile-Home扩展)的各个域。否则,家乡代理将可能会出现认证失败。此外,外地代理
继续以下过程:
——它必须处理并删除Mobile-Home认证扩展后的所有扩展,
——它可以附加它自己与家乡代理相关的非认证扩展,如果applicable,
——如果外地代理与家乡代理共享移动安全联合,它必须附加Foreign-Home认证扩展。

  被中继的注册请求必须按如下设置IP头部和UDP头部各域:
      IP Source Address
               外地代理的接口地址,(注册请求)消息将从该接口发送。
      IP Destination Address
               从注册请求的Home Agent域拷贝而得。
      UDP Source Port
               可变
      UDP Destination Port
               434

  在转发一个有效注册请求到家乡代理之后,外地代理必须 按该注册请求中的Lifetime
为注册剩余的生存期起动定时器。如果在收到有效注册应答之前该生存期到时,外地代理必
须删除该未决注册的访问者列表表项。

3.7.2.3. 拒绝有效请求

如果外地代理由于某个原因拒绝移动节点的注册请求,它应该给移动节点发送一个带
有适当拒绝码的注册应答。在这种情况下,注册应答中的家乡地址,家乡代理,以及
Identification域从注册应答中相应的域拷贝而得。

如果Reserved域非0,外地代理必须拒绝该请求,并且应该给移动节点返回一个拒绝
码为70的注册应答。如果因为所请求的Lifetime太长而拒绝该注册请求,外地代理在应答
中把Lifetime设置为它愿意在任意注册请求中接受的最大Lifetime,并把Code设置为69。
否则Lifetime应该从请求中的Lifetime 域拷贝而得。

注册应答中IP头部和UDP头部各域必须按如下设置:  
      IP Source Address
                  从注册请求中的IP Destination Address拷贝而得,除非使用“All Agents 
Multicast”。这种情况下,必须使用外地代理的地址(发送消息的接口)。               
      IP Destination Address
               从注册请求的IP Source Address拷贝而得。
      UDP Source Port
               434
      UDP Destination Port
               从注册请求的UDP Source Port拷贝而得。
3.7.3. 接收注册应答
      在收到家乡代理的有效注册应答时,外地代理更新其访问者列表。然后它把该注册应
答中继到移动节点。下面几节有该行为的更详细的描述。

如果把注册请求中继到家乡代理后,外地代理收到的是ICMP错误消息而不是注册应答,
则外地代理应该给移动节点发送一个带适当的“Home Agent Unreachable”失败码(80-95,
包含80和95)的注册应答。构建注册应答的细节见3.7.2.3。

3.7.3.1. 有效性检查

含无效的,非0的UDP检验和的注册应答必须被丢弃。

当外地代理收到一个注册应答消息时,它必须用该应答指示的家乡地址查询访问者列表
以找到未决注册请求。如果没有找到未决请求,外地代理必须丢弃该应答。如果应答中
Identification域低32位与请求中的不匹配,外地代理也必须丢弃该响应。

同样,必须检查注册应答中的authentication。如果外地代理和家乡代理共享移动安全
联合,注册应答中必须出现且仅能出现一个Foreign-Home 认证扩展,并且外地代理必须检
查扩展中的Authenticator值。如果没有找到任何Foreign-Home认证扩展,或者找到不止一
个的Foreign-Home认证扩展,或者Authenticator无效,外地代理必须丢弃该应答,并且因
该把该事件记录为安全意外。外地代理还必须拒绝移动节点的注册,应该给移动节点发送
Code位68的注册应答。
3.7.3.2. 把应答转发给移动节点
   如果注册应答通过了3.8.2.1中的有效性检查,它应该被中继到移动节点。外地代理还
必须更新其访问者列表中该移动节点的表项,以反映注册请求的结果(由应答的Code域指
示)。如果Code域表明移动节点已经接受了注册(原文可能有错,疑为“家乡代理已经接受
了注册”——译者注)并且Lifetime不为0,外地代理必须把访问者列表中Lifetime表项
的值设为注册应答中指示的Lifetime。如果Code域表明Lifetime为0,外地代理必须删除
其访问者列表中该移动节点对应的表项。最后,如果Code表明注册被家乡代理拒绝,外地代
理必须删除其未决注册列表中该移动节点对应的表项,而不是其访问者列表中的表项。

   外地代理不能修改注册应答中从固定部分开始直到Mobile-Home认证扩展(包括
Mobile-Home扩展)的各个域。否则,在移动节点很可能产生一个认证错误。另外,外地代
理应该执行下面的过程:
    ——它必须处理并删除Mobile-Home认证扩展之后的所有扩展,
    ——它可以附加其自己域移动节点相关的非认证扩展,如果applicable,
    ——如果雨移动节点共享移动安全联合,它必须附加Mobile-Foreign认证扩展。

  被中继的注册应答的IP头部和UDP头部各域按3.7.2.3中相同的规则设置。

在把有效的注册应答转发给移动节点后,外地代理必须按如下更新该注册的访问者列表
表项。如果注册应答表明注册被家乡代理接受,外地代理把其注册生存期的定时器重置为注
册应答中核准后的Lifetime;与3.6.2.2中描述的移动节点对注册生存期的定时不同,外地
代理把转发注册请求消息的时刻定为该生存期的开始,以确保在移动节点生存期到时之前外
地代理不会(认为该注册)到时。另一方面,如果注册应答表明注册被家乡代理拒绝,外地
代理删除期访问者列表中该注册对应的表项。
3.8. 家乡代理方面的考虑
家乡代理在注册过程中扮演起反应作用的(reactive)角色。家乡代理接受移动节点(可
能由外地代理中继)的注册请求,更新该移动节点的移动绑定信息记录,并发送适当的注册
应答以对每一个注册请求作出响应。

除非是对来自移动节点的注册请求作出响应,家乡代理不能发送注册应答。特别地,家
乡代理不能构造注册应答来指示Lifetime已经到时。
3.8.1. 配置和注册表
   每一个家乡代理必须配置一个IP地址和一个家乡网络的前缀大小。家乡代理必须配置(移
动节点的)家乡地址以及每一个家乡地址的移动安全联合。当接收来自移动节点的有效的注
册请求(这时它作为该移动节点的家乡代理)时,家乡代理必须创建或修改移动绑定列表中
该移动节点对应的表项,(移动绑定列表——译者注)包括:
    ——移动节点的转交地址
    ——注册应答中的Identification域
——注册剩余的Lifetime

       家乡代理还可以与不同的外地代理维持移动安全联合。当收到外地代理的注册请求
时,如果家乡代理与外地代理共享移动安全联合,家乡代理必须检查请求的Foreign-Home
认证扩展中基于移动安全联合的Authenticator。同样,在给外地代理发送注册应答时,如
果家乡代理与外地代理共享移动安全联合,家乡代理必须在应答消息中包括一个基于移动安
全联合的 Foreign-Home认证扩展。
3.8.2. 接收注册请求
   如果家乡代理接受注册请求,它必须更新移动节点的移动绑定记录,并且应该发送一个
带有合适Code的注册应答。否则(家乡代理拒绝了该请求),它应该发送一个带合适Code
以指明请求被拒绝原因的注册应答。下面几节更详细的描述了该行为。

3.8.2.1. 有效性检查

带无效的非0的UDP检验和的注册请求必须被家乡代理丢弃。

    必须检查注册请求中的authentication。包含下面的操作:
      a)家乡代理必须检查出现的Mobile-Home认证扩展的有效性,并执行指示的认证。注
册应答中必须出现而且仅能出现一个Mobile-Home认证扩展,家乡代理必须检查该
扩展中的Authenticator值。如果没有找到Mobile-Home认证扩展,或者找到不止
一个的Mobile-Home认证扩展,或者Authenticator无效,则家乡代理必须拒绝该
移动节点的注册,并应该给移动节点发送一个Code为131的注册应答 。家乡代理
必须丢弃该请求并应该把该错误记录为一个安全意外。
      b)家乡代理必须使用Mobile-Home认证扩展中的SPI所选择的上下文检查注册的
Identification域是否正确。该执行过程的描述见5.6。如果不正确,家乡代理必
须拒绝该请求并且应该给移动节点发送一个Code为133的注册应答,包括按照5。
6中的规则计算的Identification域。家乡代理对这样的请求必须不作进一步处理, 
但是它应该把该错误记录为安全意外。
c)如果家乡代理和外地代理之间共享移动安全联合,家乡代理必须检查出现的
Foreign-Home认证扩展的有效性。这种情况下注册请求必须包含且仅能包含一个
Foreign-Home认证扩展,并且家乡代理必须检查该扩展中的Authenticator值。如
果没有找到任何Foreign-Home认证扩展,或者找到不止一个的 Foreign-Home 认证
扩展,或者Authenticator无效,家乡代理必须拒绝该移动节点的注册并且应该给
移动节点发送Code为132的注册应答。然后家乡代理必须丢弃该请求并应该把该
错误记录为安全意外。

     除了检查注册请求中的authentication之外,家乡代理必须拒绝送往家乡网络的指向
子网的广播地址的注册请求(反对单播到家乡代理)。家乡代理必须丢弃该请求并应该返回一
个Code为136的注册应答。这种情况下,注册应答将包含家乡代理的单播地址,以便移动节
点能使用正确的家乡代理地址重新发送注册请求。 

3.8.2.2. 接受有效请求

如果注册请求通过了3.8.2.1的有效性检查,并且家乡代理能够容纳该请求,家乡代理
必须更新该请求移动节点的移动绑定信息,并且必须给移动节点返回一个注册应答。这种情
况下应答的Code将为0(如果家乡代理支持并行移动绑定),或者1(如果家乡代理不支持并
行移动绑定)。构建注册应答消息的细节见3.8.3 。


    家乡代理按如下更新其移动节点的移动绑定记录,基于注册请求中各域:
     ——如果Lifetime为0并且转交地址等于移动节点的家乡地址,家乡代理删除移动绑
定信息表中对应于该移动节点的所有表项。这就是移动节点请求其家乡代理停止提
供移动服务的方法。
     ——如果Lifetime为0并且转交地址不等于移动节点的家乡地址,家乡代理仅从移动
绑定表中删除包含特定转交地址的表项。包含其它转交地址的活动表项依然保持
活动状态 。 
     ——如果Lifetime非0,家乡代理给该移动节点的移动绑定表中增加包含所请求的转
交地址的表项。如果设置“S”位并且家乡代理支持同时移动绑定,以前的移动绑定
表项被保留;否则家乡代理删除移动绑定列表中该移动节点以前所有的表项。  
   
所有情况下,家乡代理必须给注册请求的来源发送注册应答,注册请求的源可能实际不
是其转交地址正被注册(解除注册)的外地代理。如果家乡代理与其转交地址正被解除注册
的外地代理共享移动安全联合,并且那个外地代理不是中继该注册请求的外地代理,家乡代
理可以另给其转交地址正被解除注册的外地代理发送一个注册应答。如果家乡代理与该外地
代理之间不共享移动安全联合,则家乡代理不能发送这样一个应答。如果没有发送任何应答,
在原先Lifetime到时时,该外地代理的访问者列表将自然到时。

  家乡代理不能把Lifetime增加到超过移动节点在注册请求中指定的值。但是,移动节
点请求的Lifetime长于家乡代理愿意接受的值并不是错误,在这种情况下,家乡代理简单地
把请求Lifetime减少到其允许的值并在注册应答中返回该值。注册应答中的Lifetime告知
移动节点注册所核准的生存期,并暗示移动节点在什么时候应该重新注册以使服务继续进
行。在注册生存期到时后,家乡代理必须从移动绑定表中删除改注册的表项。

如果注册请求重复当前已被接受的注册请求,新的Lifetime不能超过原先核准后的
Lifetime。如果家乡地址,转交地址,Identification域都与当前已被接受的注册相同则认
为该新的注册请求是重复的。

另外,如果家乡网络时使用ARP(参考文献[16])并且注册请求要求家乡代理为以前没
有绑定信息的移动节点(移动节点先被假设为“身在家乡”)创建移动绑定信息,家乡代理
必须遵循4.6中关于ARP,代理ARP,免费ARP的过程。如果移动节点已经有一个以前的绑
定,家乡代理必须继续遵循4.6中描述的代理ARP的规则。

3.8.2.3.拒绝无效请求

      如果注册请求没有完全满足3.8.2.1中的有效性检查,或者家乡代理不能容纳该请求,
则家乡代理应该给移动节点返回一个由Code表明错误原因的注册应答。如果中继该请求涉
及到外地代理,该消息使得外地代理能够删除其未决访问者列表。同样,该消息告知移动节
点产生错误的原因以便它能尝试修复该错误并发送另一个请求。

    本节列举了一系列家乡代理可能拒绝请求的原因, 并提供了每一种情况下应该使用的
Code值。构建注册应答消息的细节见3.8.3。
很多拒绝注册的原因本质上都是管理方面的原因。例如家乡代理可以限制移动节点并行
注册的数量 ,它就会通过拒绝导致超过其极限的注册并返回一个错误号为135的注册应答。
同样,家乡代理可以通过返回一个错误号为129的注册应答拒绝为进入未授权服务区域的移
动节点提供服务。
如果Reserved域非0,它必须拒绝该请求,错误号为134。
3.8.3. 发送注册应答
       如果家乡代理接受注册请求,它必须更新该移动节点的移动绑定记录并且应该 发送
一个带合适Code的注册应答。否则(家乡代理拒绝该请求),它应该发送一个由合适的Code 
说明拒绝原因的注册应答。下面几节提供了注册应答消息中家乡代理必须提供的域值细节。

3.8.3.1. IP/UDP域
      本节提供移动节点为注册应答中IP和UDP头部各域提供值的规则。。
      IP Source Address
                    从注册应答的IP目的地址拷贝,除非使用多播或广播地址。如果注册请
求中的IP目的地址是广播或多播地址,注册应答中的IP源地址必须设置为
家乡代理的(单播)IP地址。
      IP Destination Address
                从注册请求的IP源地址拷贝。
      UDP Source Port
               从注册请求中的UDP目的端口号拷贝。
      UDP Destination Port
从注册请求中的UDP源端口拷贝。

当收到移动节点解除注册的注册请求(Lifetime为0,转交地址等于移动节点的家乡
地址,IP源地址也设置为移动节点的家乡地址,这是移动节点返回家乡网络时解除注册所通
常使用的方法)而发送注册应答来响应时,注册应答中的IP目的地址将被设为移动节点的家
乡地址,即从注册请求中的IP源地址拷贝。

这种情况下,在发送注册应答时,家乡代理必须把应答直接发送到家乡网络上(就像
移动节点“身在家乡”一样),并把所有在家乡代理上可能依然存在的移动绑定列表项旁路
(bypassing)到目的移动节点。特别地,当用转交地址注册的移动节点回到家乡时,如果移
动节点新的注册请求不被家乡代理所接受,该移动节点的移动绑定列表表项将依然指示送往
移动节点的数据报应该通过隧道送到移动节点注册的转交地址;在发送注册应答表明拒绝该
请求时,现存的绑定列表表项必须被忽略,家乡代理必须按移动节点“身在家乡”发送注册
应答。

3.8.3.2.注册应答各域

       本节提供家乡代理填充注册应答中固定部分各域的规则。注册应答中的Code域按前
面章节中的规则选用。在给已被接受的注册应答时,如果家乡代理不支持同时注册则它应该
设置Code为1。
       Lifetime必须从注册请求中相应域拷贝,除非所请求的Lifetime比家乡代理愿意接
受的服务最长时间长。在这种情况下,Lifetime必须设置为家乡代理为该服务提供的时间。 
减小后的Lifetime应该为家乡代理所允许的最大Lifetime(对于该移动节点和转交地址)。
    Home Address域必须从注册请求相应的域中拷贝。
      如果注册请求中Home Agent域包含一个家乡代理的单播地址,那么该域必须被拷贝
到注册应答中的Home Agent域。否则,家乡代理必须设置注册应答中的Home Agent域为其
单播地址。在后一种情况中,家乡代理必须用适当Code(例如,Code 136)来拒绝该注册,以
防止移动节点同时向两个或更多各家乡代理注册。

3.8.3.3.扩展
      本节描述家乡代理附加到注册应答中的必需和可选的移动IP扩展的顺序。必须遵循
下面的顺序:
      a)IP头,后跟UDP头,后跟注册应答中固定长度部分
      b)如果有,移动节点使用的非认证扩展(可能由也可能没有被外地代理使用),
      c)Mobile-Home认证扩展,
      d)如果有,仅由外地代理使用的任何非认证扩展,以及
      e)如果有,Foreign-Home认证扩展。
  
注意(a)和(c)必须出现在家乡代理发送的注册应答中。(b),(d)和(e)是可选的,
但是如果家乡代理和外地代理共享移动安全联合,则必须包含(e)。
4. 路由器方面的考虑
        本节描述了移动节点、家乡代理以及(可选)外地代理合作以便为传送到(自)移
动节点(连接在外地网络上)的数据报提供路由。移动节点使用3中描述的注册过程报它当
前位置告诉其家乡代理。移动节点家乡地址相对其家乡代理的位置,以及移动节点相对于其
尝试注册的外地代理的位置见1.7的协议综述。
4.1.封装类型
   家乡代理和外地代理必须支持IP-in-IP隧道数据报封装(参考文献[14])。使用联合转
交地址的移动节点必须支持接收使用IP-in-IP封装并通过隧道到达的数据报。最小封装(参
考文献[15])和GRE封装(参考文献[8])是可能被移动代理和移动节点所支持的可选(预
备)封装方法。在移动节点请求使用可选形式的封装时,(选用哪种形式的封装)由家乡代理
决定。
4.2.单播数据报的路由
4.2.1.移动节点方面的考虑
     在连接到家乡网络时,移动节点的操作不使用移动服务的支持。也就是说,它的操作方
式与其他任意(固定的)主机或者路由器一样 。移动节点连接在家乡网络时,以及远离家乡
并使用联合转交地址时其选用缺省路由器的方法的方法超出了本文档的范畴。ICMP路由发现
广告(参考文献[4])就是这样的一种方法。
     当在外地网络上注册时,移动节点按照下面的规则选用缺省路由器:
    ——如果移动节点使用外地代理转交地址进行注册,移动节点必须从代理广告消息中
ICMP路由广告部分所广告的路由器地址中选择其缺省路由器。移动节点也可以把代
理广告的IP源地址当成与消息中ICMP路由广告部分路由器地址列表(可能为空)
一样,当作缺省路由器的另一种选择。在这种情况下,IP源地址必须当成缺省路由
器最坏的选择(具有最低的优先权)。
    ——如果移动节点用联合转交地址直接向其家乡代理注册,那么移动节点的缺省路由器
应该从其收到的所有ICMP路由广告中使其路由器地址与其从外部获得的转交地址
在该网络前缀下匹配的那一个ICMP路由广告中所广告的路由器地址中选择。如果移
动节点由外部机制获得的转交地址在该网络前缀下与代理广告中的IP源地址匹配,
移动节点可以把该IP源地址当作与消息中ICMP路由广告部分路由器地址列表(可
能为空)一样作为缺省路由器IP地址的另一个选择。如果这样,IP源地址必须视
为缺省路由器最坏的选择(具有最低优先权)。网络其前缀可以从路由广告的
Prefix-Lengths扩展中获得,如果出现该扩展的话。网络前缀也可以通过其它超出
本文档的机制获得。

      除了这些规则以外,缺省路由器实际由ICMP路由器发现消息(参考文献[4])中指定
的选择方法从上面的路由器地址中选择。在任意情况下,通过外地代理注册的移动节点可以
选择其外地代理作为缺省路由器。

       注意除非所有发向移动节点和移动节点发出的TCP IP数据报各自经过相同的第一个
和最后一个转发路由器,Van Jacobson头部压缩将不会正常运行。因此,如果移动节点对其
外地代理执行Van Jacobson头部压缩,它必须选择其外地代理作为其缺省路由器。
4.2.2. 外地代理方面的考虑
     一收到发给其广告的转交地址的经封装的数据报,外地代理必须把内层目的地址与其
访问者列表中的表项进行对比。如果目的地址不与当前访问者列表中的任意移动节点的地址  
匹配,则外地代理不能不修改数据报的IP头便转发该数据报,否则将可能导致路由环回
(routing loop)。该数据报应该被丢弃。

     当外地代理不能转发通过隧道到来的数据报时,它不能发送ICMP Destination 
Unreachable。否则,外地代理把该经解封装的数据报转发到移动节点。

     外地代理不能向其路由域(routing domain)中的其它路由器发布广告,也不能给任
意其它移动节点做广告,如果出现了移动路由器(4.5)。

     外地代理必须路由其已注册移动节点发来的数据报。这意味着外地代理至少必须验证
IP头部检验和,减少IP的生存期(Time To Live),重新计算IP头部检验和,并把这样的
数据报转发到缺省路由器。另外,外地代理应该给移动节点发送一个合适的ICMP重定向消息。
4.2.3.家乡代理方面的考虑
      当移动节点在远离家乡注册时,家乡代理必须能在家乡网络上截获任意发往移动节点
(家乡地址)的数据报。可以使用代理和免费ARP来获得这种截获,如4.6所述。

      家乡代理必须检查所有到达的数据报的IP目的地址是否等于其中一个远离家乡注册
的移动节点的家乡地址。如果相等,家乡代理通过隧道把数据报送到移动节点当前注册的转
交地址(一个或多个)。如果家乡代理支持可选的多个并行移动绑定,则它把一份拷贝通过隧
道传送到移动节点的移动绑定列表中的每一个转交地址。如果移动节点当前没有移动绑定信
息,家乡代理不能尝试截获送往该移动节点的数据报,这样(移动节点)就不会收到这样的
数据报。但是,如果家乡代理同时也是处理普通IP流量的路由器,则它可能收到这样的数据
报 并把它转发到家乡网络上。在这种情况下,家乡代理必须假设移动节点“身处家乡”,并
简单地把数据报直接转发到家乡网络上。

   关于隧道可能使用的封装方法见4.1。实现隧道的节点应该也实现“隧道软状态”机制(参
考文献[14]),该机制允许隧道内部返回ICMP错误消息以向数据报的原始发送者正确反映(错
误)。

     有时移动节点出于维护其位置秘密(location privacy)的目的而给家乡代理发送数据
报(见5.5),家乡代理自己应该能对这些数据报进行拆封并作进一步传送。

如果给定移动绑定记录的Lifetime在家乡代理收到该移动节点的另一个有效注册请求前
到期,那么该绑定从移动绑定列表中删除。家乡代理不能简单地因为移动节点绑定到期而发
送任何的注册应答消息。当前外地代理的访问者列表中该移动节点的表项将自然到期,有可
能与家乡代理同时到期。当移动绑定的生存期到期,家乡代理必须删除该绑定,但是它必须
保留该移动节点其它(尚未到期)的并行移动绑定信息。

当家乡代理为其某个远离家乡的移动节点截获数据报时,家乡代理必须检查该数据报看
其是否经过封装。如果已经过封装,把该数据报转发到移动节点时使用特殊规则:

    ——如果内层(封装的)目的地址与外层目的地址(移动节点的家乡地址)相同,家乡
代理还必须检查该封装数据报的外层源地址(隧道的源地址)。如果外层源地址与
移动节点的当前转交地址相同,家乡代理必须丢弃该数据报以避免出现路由环回。
否则,如果外层源地址与移动节点当前转交地址不相同,那么家乡代理应该把数据
报转发到移动节点。这种情况下为了转发该数据报,家乡代理可以简单地把外层目
的地址变为转交地址,而不是重新封装该数据报。
    ——否则(内层目的地址域外层目的地址不相同),家乡代理应该再次封装该数据报(递
归封装),新的外层目的地址设为移动节点的转交地址。也就是说,家乡代理把整个
数据报转发到移动节点,就像转发其它数据报一样(不管是否经过封装)。



4.3.广播数据报
      当家乡代理收到广播数据报时,它不能把该数据报转发到移动绑定列表中除了那些请
求转发广播数据报的移动节点之外的其它移动节点。移动节点可以在注册请求消息中设置
“B”位来请求转发广播数据报(见3.3)。对每一个这样注册的移动节点,家乡代理应该把收
到的广播数据报转发到移动节点,但是家乡代理可以配置哪一种特定类型的广播数据报将被
转发到这些移动节点。

     如果移动节点的注册请求中设置了“D”位,表明移动节点正在使用联合转交地址,家
乡代理简单地把合适的IP广播数据报通过隧道送到移动节点的转交地址。否则(没有设置“D”
位),家乡代理首先把该数据报封装在一个以移动节点家乡地址为目的地址的单播数据报中, 
然后把该封装后的数据报通过隧道传送到外地代理。要求这另一层的封装是以便外地代理能
够决定解封装后的数据报由哪一个移动节点接收。当外地代理收到该单播数据报时,该单播
数据报被从隧道中移出并送到移动节点,与其它数据报一样。在两种情况下,移动节点都必
须对它收到的数据报进行解封装以恢复原先的广播数据报。
4.4.多播数据报路由
      前面提到,连接到家乡网络的移动节点运行方式与其他(固定的)主机或路由器相同。
这样,当“身处家乡”时,移动节点运行方式与其它多播数据报发送者和接收者一样。所以
本节只描述访问外部网络的移动节点的行为。

      为了接收多播数据报,移动节点必须以两种方式之一加入多播组。第一种,移动节点
可以通过被访子网上一个(本地的)多播路由器加入多播组。这种选择假设被访问的子网上
有一个多播路由器。如果移动节点正在使用联合转交地址,它应该把该地址用作其IGMP消
息(参考文献[5])的IP源地址。第二种选择,如果移动节点希望接收多播数据报,它可以
通过到其家乡代理的双向隧道加入多播组,假设其家乡代理是一个多播路由器。移动节点把
IGMP消息通过隧道送到其家乡代理,家乡代理把多播数据报通过隧道送到移动节点。这种情
况下,把多播数据报传送到移动节点的规则与把广播数据报传送到移动节点的规则相同
(4.3)。也就是说,如果移动节点使用联合转交地址(其注册请求种设置“D”位),那么家
乡代理应该把数据报通过隧道送到该转交地址;否则,家乡代理必须首先把该数据报封装在
一个以移动节点的家乡代理为目的地址的单播数据报中,并且必须把结果数据报通过隧道(递
归隧道)送到移动节点的转交地址。
   如果移动节点希望给多播组发送数据报,也有两种选择:(1)直接发送到被访问网络上;
或者(2)通过通向其家乡代理的隧道发送。因为多播路由一般依赖于IP源地址,把多播数
据报直接发送到被访网络的移动节点必须把其联合转交地址作为IP源地址。同样,通过隧
道把多播数据报送到家乡代理的移动节点必须把其家乡地址作为其(内层)多播数据报和外
层(正在封装的)数据报的IP源地址。第二种选择假设家乡代理是一个多播路由器。
4.5.移动路由器
       移动节点可以是一个路由器,负责一个或多个整体移动网络的移动性,这个(些)网
络可能位于飞机、轮船、火车、汽车、自行车或者皮划艇上。连接到由移动路由器提供服务
的网络上的节点自己可能是固定节点或移动节点或和路由器。本文档中,这样的网络称为“移
动网络”(“mobile networks”)。移动节点可以作为外部代理并为连接到该移动网络的移动
节点提供外部代理转交地址。这种情况下到移动节点的典型路由由下面的例子说明:
      a)膝上电脑断开与家乡网络的连接并随后通过飞机座背的网络端口连接到某个网络。
膝上电脑使用移动IP在该外地网络上注册,使用一个通过代理广告从飞机的外地代
理获得的外地代理转交地址。
      b)飞机网络自己是移动的。假设飞机上作为外地代理的节点同时作为该飞机网络连接
到Internet其余部分的缺省路由器 。当飞机在家乡时,该路由器连接到航空公司
总部的某个固定网络上,该网络是该路由器的家乡网络。在飞机飞行时,该路由器
通过其无线链路不时地向地面上一系列外地代理注册。路由器的家乡代理是位于航
空公司总部固定网络上的一个节点。
      c)一些通信节点给膝上电脑发送数据报,数据报的目的地址为膝上电脑的家乡地址。
该数据报首先被路由到膝上电脑的家乡网络。
      d)膝上电脑的家乡代理在家乡网络上截获该数据报,把它通过隧道送到膝上电脑的转
交地址(该例中是作为飞机上路由器和外地代理的节点的地址)。传统的IP路由将
把该数据报路由到航空公司总部固定网络。
      e)飞机上的路由器和外地代理的家乡代理截获该数据报并通过隧道把它送到当前转交
地址(在该例中是飞机机身下地面上的某个外地代理)。原先发自通信节点的数据报
至此已经被封装两次:一次被膝上电脑的家乡代理,另一次是飞机的家乡代理。
      f)地面上的外地代理把该数据报进行解封装,得到一个被膝上电脑封装的数据报,该
数据报的目的地址是膝上电脑的转交地址。地面上的外地代理通过无线链路把该数
据报发送到飞机。
      g)飞机上的外地代理对该数据报进行拆封,得到从通信节点发出的原始数据报,目的
地址是膝上电脑的家乡地址。飞机上的外地代理通过飞机上的网络把该数据报传送
到膝上电脑的链路层地址。
   
这个例子解释了移动节点连接到移动网络的情形。也就是说,移动节点向对于移动网络
移动,移动网络本身也是移动的(这里相对地面而言)。相反,如果移动节点相对于移动网络
是固定的(移动网络是固定节点的家乡网络),那么(下面?)两种方法中之一中可用来把来
自通信节点的数据报路由到固定节点。
    家乡代理可以配置为固定节点有一个永久注册,暗示着移动路由器的地址作为移动主机
的转交地址。移动路由器的家乡代理通常用于这个目的。家乡代理负责使用普通路由协议对
固定节点广告的连通性(connectivity)。发送往固定节点的数据报将使用上面描述的递归封
装。
    另一种选择,移动路由器可以通过一个到达其家乡代理的双向隧道使用传统IP协议向整
个移动网络广告广告其连通性。这种方法避免了位数据报创建递归隧道的要求。
4.6.ARP,代理ARP及免费ARP
    使用ARP(参考文献[16])要求在涉及无线或移动节点时使用特殊的规则以便正确操作。  
本节中指定的要求应用于所有使用ARP作为地址解析的家乡网络。
    除了使用传统的ARP从目的节点的链路层地址得到其IP地址外,本文档区分两种特殊
ARP的使用:
       ——代理ARP(参考文献[18])由一个节点代表另一个移动节点(该移动节点不能或
者不愿意回答自己的ARP请求)发送的ARP应答。代理ARP的发送者按参考文献
[16]调换Sender和Target协议地址(Protocol Address)域,但在硬件地址
(Hardware Address)域中提供某个配置的链路层地址(通常就是它自身)。接收
该ARP应答的节点将把该链路层地址和最初目标节点的IP地址建立关联,使得该
(接收ARP应答的)节点把以后传送给该目标节点的数据报送到具有该链路层地
址的节点。
     ——免费ARP(参考文献[23])由某个节点发送的为了引起其它节点自发的更新它们的
ARP缓冲区的一个表项的ARP数据包。免费ARP可以使用ARP请求或者ARP应答
数据包 。在两种情况下,ARP发送者协议地址和ARP目标协议地址都设为要更新
的缓冲区表项的IP地址,ARP发送者硬件地址设为缓冲区表项要更新的链路层地
址。在使用ARP应答数据包时,目标硬件地址也设为缓冲区表项要更新的链路层
地址(如果使用ARP请求数据包,该域不用)。

      在两种情况下,对于免费ARP,ARP数据包必须作为本地链路上的本地广播数据包传
送。如参考文献[16]中所述,任意收到ARP数据包(请求或应答)必须用ARP数据包中的发
送者协议地址和硬件地址更新其本地ARP缓冲区,如果接收节点有一个在其ARP缓冲区中的
IP地址表项。这个ARP协议中的要求甚至适用于ARP请求数据包,以及不匹配任何由接收节
点发送的ARP请求的ARP应答数据包(参考文献[16])。

当移动节点在外地网络上注册,其家乡代理使用代理ARP(参考文献[18])来应答其收到
的寻找移动节点链路层地址的ARP请求。当收到ARP请求时,家乡代理必须检查请求中的目
标IP地址,如果该IP地址匹配它注册的移动绑定的移动节点的家乡地址匹配,则家乡代理
必须代表移动节点发送一个ARP应答。在交换数据包中的发送者地址和目标地址后(参考文
献[18]),家乡代理必须把数据包中的发送者链路层地址设为它自己将在其上发送应答的接
口的链路层地址。

当移动节点离开其家乡网络并在外地网络上注册一个绑定,其家乡代理使用免费ARP来
更新其家乡网络上的节点的ARP缓冲区。这导致这些的节点把家乡代理的链路层地址和移动
节点的家乡(IP)地址建立关联。在为一个没有以前绑定信息的(移动节点被假设为身在家
乡)移动节点注册绑定时,家乡代理必须代表移动节点发送一个免费ARP。该免费ARP数据
包必须作为移动节点家乡地址所处链路上的广播数据包发送。因为本地链路上(比如以太网)
的广播不保证是可靠的,免费ARP数据包应该被传送几次以提高其可靠性。

    当移动节点返回到其家乡网络时,移动节点机器家乡代理使用免费ARP引发家乡网络上
所有节点更新它们的ARP缓冲区,再次建立移动节点自己的链路层地址和移动节点的家乡
(IP)地址之间的关联。在给其家乡代理传送注册请求/解除注册请求之前,移动节点必须
把该免费ARP作为该链路上的一个本地广播在其家乡网络上发送。免费ARP数据包应该被重
发几次以提高其可靠性,但这些重发应该与发送和处理其注册/解除注册请求并行进行。
  
    当移动节点的家乡代理收到并接受该注册/解除注册请求,家乡代理还必须在移动节点
的家乡网络上发送一个免费ARP。该免费ARP还用于建立移动节点的家乡地址和移动节点自
身链路层地址的关联。移动节点及其家乡代理两者都要发送一个免费代理,因为在无线网络
接口中,移动节点的传输区域范围可能与其家乡代理的传输区域范围不同。家乡代理发送的
ARP数据包必须作为移动节点的家乡链路上的本地广播发送,并且应该被重传几次以提高其
可靠性;但是,这些重传应该与传送和处理其注册/解除注册应答并行进行。
当移动节点不在家乡时,它不能传送任何广播ARP请求或ARP应答消息。最后当移动节
点不在家乡时,它不能对目的地址为其自己家乡地址的ARP请求做出应答,除非该ARP请求
由移动节点正尝试向其注册的外地代理,或者移动节点已经向其注册并且注册尚未到期的外
地代理发送。在后面的一种情形中,移动节点必须用一个单播ARP应答来响应该外地代理。

   注意如果移动节点正在使用联合转交地址,并且收到一个目标IP地址恰为该转交地址的
ARP请求,那么移动节点应该对该ARP做出应答。还要注意,当在外地网络发送注册册请求
时,移动节点可以通过存储某个外地代理的代理广告地址而不是发送广播ARP请求消息来获
得该外地代理的链路层地址。

上面要求使用ARP、代理ARP代理和免费ARP时的顺序与移动节点远离家乡或返回家乡时
注册请求和注册应答消息的传送和处理有关,对于该协议的正确操作非常重要。

    为总结上面的要求,在移动节点离开其家乡网络时,必须按顺序执行下面的步骤:
    ——移动节点决定在家乡之外注册,也许是因为收到了来自外地代理的代理广告同时最
近没有收到来自家乡代理的广告。
    ——在传送注册请求之前,移动节点将禁止其处理随后收到的ARP请求(请求与其家乡
代理相对应的链路层地址)的功能,除非有必要与被访网络上的外地代理通信。
    ——移动节点传送其注册请求。
    ——当移动节点的家乡代理收到并接受该注册请求,它代表移动节点执行免费ARP,并
用代理ARP对请求移动节点的链路层地址的ARP请求作出应答。否则,如果家乡代
理拒绝该注册请求,家乡代理将不执行任何ARP处理(既不执行免费ARP也不执行
代理ARP)。

   当移动节点后来返回到其家乡网络,必须按顺序执行下面的步骤:
    ——移动节点决定在家乡注册,也许是因为收到了来自家乡代理的代理广告。
    ——在传送注册请求之前,移动节点重新使能其处理随后请求其链路层地址的ARP请求
的能力。
    ——移动节点自己执行免费ARP。
    ——移动节点传送其注册请求。
    ——当移动节点的家乡代理收到并接受了该注册请求,它停止使用代理ARP来对收到的
请求移动节点的链路层地址的ARP请求,然后代表移动节点执行免费ARP。否则,如果家乡
代理拒绝该注册请求,家乡代理将不执行任何ARP处理过程(既不处理免费也不处理代理)。
5.安全方面的考虑
     移动节点的计算环境可能与普通计算环境非常不同。在很多情况下,移动计算机将通过
无线链路连接到网络。这样的链路很容易受被动的窃听、主动的重放攻击和其他主动攻击所
攻击。
5.1消息认证代码
        家乡代理和移动节点必须能够执行认证过程。缺省算法是keyed MD5(参考文献
[21]),密钥的大小为128位。缺省的操作模式是128位密钥在待散列数据之前和之后;即
MD5用于“prefix+suffix”模式。外地代理必须支持使用keyed-MD5以及手工分配的128位
或更大的密钥的认证。也可以支持其它认证算法、算法模式、密钥分配方法及密钥大小。
5.2.本协议涉及的安全领域
本文档描述的注册协议将导致移动节点的流量通过隧道到达其转交地址。如果注册未被
认证,则隧道特征将很容易受到攻击。如果未被认证,这样的远程重定向如移动注册协议执
行的,被广泛认为是当前Internet上的一个安全问题(参考文献[2])。而且,地址解析协议
(ARP)不进行认证,可潜在地用于偷窃其它主机的流量。“免费ARP”(4.6)的使用伴随着
所有与使用ARP有关的危险 
5.3.密钥管理
      本规范要求一种很强的认证机制(keyed MD5),该机制排除了很多潜在的基于移动IP
认证协议的攻击。但是,因为在没有网络密钥管理协议时密钥分配很困难,并不是所有的外
地代理消息都需要认证。在商业环境下,对外地代理和家乡代理之间的所有消息进行认证以
便计费,服务提供商将不为不是该服务提供商合法客户的用户提供服务。
5.4.选用好的随机数
    认证机制的强度取决于几个因素,包括认证算法先天的强度,所使用密钥的保密性以及
特定应用中的质量。本规范要求实现keyed MD5的认证,但不排除使用其它认证算法和认证
模式。为了使keyed MD5认证有用,128位密钥必须是秘密的(即仅有授权才知道)和随机
的。如果随机数与重放保护有关,它们也必须慎重选择。Eastlake, et al(参考文献[7])
提供了产生随机数的更详细的信息。
5.5. 隐私(Privacy)
       有敏感数据不希望其他人看到这些数据的用户使用超出本文档范围的机制(例如加
密)提供保护。关心流量分析的用户应该使用合适的链路加密。
       如果期望绝对位置隐私,移动节点可创建一个通向其家乡代理的隧道。然后发向通信
节点的数据报看起来将是从家乡网络发出,查明移动节点的位置将更困难。这样的机制都超
出了本文档的范畴。
5.6.注册请求的重放保护
     家乡节点使用Identification域证实该注册消息是移动节点新创建而不是被攻击者重
放以前的注册。本节描述两种方法:时间戳(强制)和随机数(nounces,可选)。所有的移
动节点和家乡代理必须实现基于时间戳的重放保护。这些节点也可以实现基于随机数的重放
保护(但使用基于随机数的重放保护时,见附录A.2的专利声明)。

移动节点及其家乡代理之间的使用的重放保护风格是移动安全联合的一部分。移动节点
及其家乡代理必须就使用那一种重放保护方法达成一致。Identification域的解释取决于重
放保护的方法,在后面的子节描述。

不管使用什么(重放保护)方法,Identification的低32位必须不经改变地从注册请求
拷贝到注册应答中。外地代理使用这些位(以及移动节点的家乡地址)来匹配注册请求和相
应的注册应答。移动节点必须核实注册应答中的该低32位与其发送的注册请求对应的32位
相同。

    新注册应答中的Identification不能与其直接前驱请求相同,在移动节点和家乡代理
间使用相同的安全上下文时,Identification不应该重复。允许像3.6.3中描述的重传。
 5.6.1使用时间戳的重放保护
时间戳重放保护的基本原理是:创建消息的节点把当前的日期时间插入到消息中,接收
消息的节点检查确认该时间戳与其自己的日期时间足够接近。显然这两个节点必须有充分同
步的日期时间时钟。对于任意消息,时间同步消息可保护由两个节点的安全上下文确定的认
证机制的干预。如果使用时间戳,移动节点必须把Identification域设为由网络时间协议
(NTP,参考文献[13])所指定格式的64位值。NTP格式的低32位代表fractional seconds, 
那些不能从时间源得到的位应该从好的随机源中产生。但是注意,在使用时间戳时,移动节
点注册请求中使用的64位Identification必须比先前任何注册请求中使用的大,因为家乡
代理还把该域作为序列号。如果没有这样一个序列号,则有可能延迟的先前(家乡代理要求
的时钟同步)注册请求的拷贝到达家乡代理,从而被失序应用,错误地改变移动节点当前注
册的转交地址。

当收到带有效Mobile-Home认证扩展的注册请求时,家乡代理必须对Identification进
行有效性检查。为了有效,Identification域的时间戳必须与家乡代理的日期时间足够近,
并且该时间戳必须大于该节点先前已被接受的所有时间戳大。时间差以及重新同步细节特定
于具体的移动安全联合。如果时间戳有效,家乡代理把整个Identification与拷贝到返回给
移动节点的注册应答中;如果时间戳无效,家乡代理仅把低32位拷贝到注册应答中,自己按
其日期时间提供高32位。在第二种情况中,家乡代理必须通过在注册应答中返回Code 
133(Identification不匹配)拒绝该注册。

    如3.6.2.1中所述,在使用该高32位尝试时钟重新同步之前,移动节点必须核实注册应
答中Identification低32位与被拒绝的注册尝试中的低32位相同。
5.6.2 使用随机数的重放保护
该可选机制的实现者应该检查附录A.2中可能适用于基于随机数的重放保护的专利声
明。

     随机数重放保护的基本原理为:节点A在发给节点B的每一个消息中包含一个新的随机
数,并检查确保节点B在其发给节点A的下一个消息中返回相同的数。两个消息都使用认证
Code来避免被攻击者修改。同时节点B可以在发送给节点A的所有消息中包含其自己的随机
数(有A回馈),以便它能核实它收到的消息是“新鲜”的。可以期望家乡代理有用于计算随
机数的资源(参考文献[7])。它把一个新的随机数作为Identification的高32位插入到每
一个注册应答中。家乡代理从注册请求中Identification低32位拷贝到注册应答中
Identification的低32位中。
     
     当移动节点收到来自家乡代理的经认证的注册应答时,它把Identification的高32
位保存作为其下一个注册请求的Identification的高32位。

     移动节点负责产生每一个注册请求中Identification的低32位。理想情况下它应该产
生自己的随机数。但是它可以使用其它可资利用的方法,包括拷贝从家乡代理发送的随机数。
选用的方法仅由移动节点关心,因为正是移动节点检查注册应答中值的有效性。选用的
Identification高32位和低32位应该分别于它们先前的值不同。在每一个注册消息中家乡
代理使用新的高32位而移动节点使用新的低32位。外地代理使用低32位(和移动主机的家
乡地址)来正确匹配注册应答与未决注册请求(见3.7.1)。
   如果注册消息因为无效随机数被拒绝,应答总是在应答中给移动节点提供一个在下一个注
册中使用的随机数。这样,随机数协议是自同步的。  



















6.致谢
   Special thanks to Steve Deering (Xerox PARC), along with Dan Duchamp
   and John Ioannidis (JI) (Columbia), for forming the working group,
   chairing it, and putting so much effort into its early development。
   Thanks also to Kannan Alaggapan, Greg Minshall, and Tony Li for their
   contributions to the group while performing the duties of
   chairperson, as well as for their many useful comments。
   Thanks to the active members of the Mobile IP Working Group,
   particularly those who contributed text, including (in alphabetical
   order)
    - Ran Atkinson (Naval Research Lab),
    - Dave Johnson (Carnegie Mellon University),
    - Frank Kastenholz (FTP Software),
    - Anders Klemets (KTH),
    - Chip Maguire (KTH),
    - Andrew Myles (Macquarie University),
    - Al Quirt (Bell Northern Research),
    - Yakov Rekhter (IBM), and
    - Fumio Teraoka (Sony)。
   Thanks to Charlie Kunzinger and to Bill Simpson, the editors who
   produced the first drafts for of this document, reflecting the
   discussions of the Working Group。  Much of the new text of this memo
   is due to Jim Solomon and Dave Johnson。
   Thanks to Greg Minshall (Novell), Phil Karn (Qualcomm), and Frank
   Kastenholz (FTP Software) for their generous support in hosting
   interim Working Group meetings。
















A.专利问题
      在本文档发表时,IETF已经意识到本文档描述协议的实现者可能于两个专利有关。
A.1.IBM5,159,592号专利
   Charles Perkins,本文档的编辑,是美国第5,159,59专利号的独立发明人,指定给
IBM。在1995年5月30日IBM致IETF的一封信中,指出该专利“与移动IP有关”。我们理
解为IBM目的不是声称移动IP的任何特定实现是否侵犯该专利,而是IBM把它认为任何人有
义务公开该协议在采纳为标准的进程有关的信息。
       基于专利声明的评论,IETF相信注册从外地代理获得的地址的系统,正如本文档描
述的那样,不必要侵犯该专利的任何声明;以及从其它地方获得地址然后注册的系统实现时
可以不侵犯该专利的任何声明。因此,我们的观点是推荐的协议的实现不能侵犯Perkins 
Patent。考虑采纳该协议的社团必须注意,加入到不侵犯该专利的实现中的特定实现或特征
可能增加侵犯该专利或其他专利的可能性。
     该评论是为IETF在标准设置过程有所帮助,不应该被任何团体依赖作为它们的任何实
现和使用不涉及到Perkins专利或其他专利的意见或担保。特别地,IBM可以不同意这里描
述的关于本专利的解释。
A.2.IBM 5,148,479号专利
     该专利也被指定给IBM,可能于那些实现5.6.2中描述的随机数重放保护有关。注意基
于随机数的重放保护是本规范的一个可选特征。另一方面,基于时间戳的重放保护(5.6.1)
是本规范的一个要求。
B.链路层考虑
移动节点可以使用链路层机制来判定它们的接入点已经变化。这样的暗示包括
Down/Testing/Up接口状态(参考文献[11]),以及小区(cell)或管理(administration)
的变化。这些机制由特定的链路层技术定义,超出了本文档的范畴。

点到点协议(PPP,参考文献[22])及因特网协议控制协议(IPCP,参考文献[12]),协
商了IP地址的使用。

移动节点应该首先尝试确定其家乡地址,以便如果移动节点连接到家乡网络时,无路由
的链路能正确运行。当家乡地址不被对等体接受,但给移动节点指定一个暂时IP地址并且移
动节点支持联合转交地址时,移动节点可以把该(动态分配的)地址注册为转交地址。在对
等体确定自己的IP地址时,该地址不能假设为外地代理转交地址或家乡代理的IP地址。
C. TCP考虑
C.1.TCP定时器
      大多数使用TCP/IP的主机或路由器不允许毫不费力的配置TCP定时器的值。当使用高
延迟(如SATCOM)或低带宽(如高频收音机High-Frequency Radio)链路时,很多系统的缺
省TCP定时器的值将导致重传或到时,即使当链路和网络实际上正正确运行,只是因为所使
用的介质而使得延迟比正常情况下大时。这将导致在这样的链路上不能创建或维护TCP连接,
并能导致不必要的重传占用本来就很贫乏的带宽资源。厂商应使得TCP定时器更可配置。设
计移动计算机系统的生产商应该选用更适合于低带宽高延迟链路的缺省定时器的值。移动节
点的用户应该能够感受到与定时器相关引起的麻烦。
C.2. TCP拥塞控制
    移动节点通常使用更可能引入错误的介质,结果引起更多数据包丢失。这里介绍一种与
TCP当前版(参考文献[9])中使用的拥塞控制冲突的机制。现在,当一个数据包丢失时,通
信节点的TCP实现可能作出反应,就像存在一个网络拥塞源一样,并初始化控制该问题的
slow-start机制(参考文献[9])。但是,那些机制不适合于克服链路自身引入的错误,并扩
大了有丢失数据包而引入的不连续性(段点)。这个问题已由Caceres, et al进行分析(参
考文献[3]);无法得到容易的解决办法,当然也不可能在所有通信节点上安装解决办法。虽
然这个问题超出了本文档的范畴,它却说明了给移动节点提供性能透明涉及到理解网络层之
外的机制。也暗示了设计时需要避免系统丢失数据包;这样的设计可能被认为有利于进行技
术折衷。
D.特定情形的例子
本节显示了集中一般情形下注册请求的例子。
D.1.使用外地代理转交地址注册
   移动节点收到外地代理的代理广告并希望适用该被广告的外地代理转交地址注册。移动节
点仅希望使用IP-in-IP封装,不想要广播(数据报),不想要同时移动绑定:
       IP fields:
         Source Address =移动节点的家乡地址
         Destination Address =从代理广告的IP源地址拷贝
         Time to Live = 1
       UDP fields:
         Source Port =任意
         Destination Port = 434
       Registration Request fields:
         Type = 1
         S=0,B=0,D=0,M=0,G=0
         Lifetime =路由广告消息中的移动代理广告扩展部分拷贝的注册生存期
         Home Address =移动节点的家乡地址
         Home Agent =移动节点的家乡代理的IP地址
         Care-of Address =从路由广告中的移动代理广告扩展部分拷贝的转交地址
         Identification =NTP时间戳或随机数
       Extensions:
          Mobile-Home认证扩展
D.2.使用联合转交地址注册
   移动节点进入外地网络,该网络不包含外地代理。移动节点从一个DHCP服务器(参考文
献[6])获得一个地址并用为联合转交地址。移动节点支持所有形式的封装(IP-in-IP, 最
小封装,GRE),希望接收家乡网络上的广播数据报,不想要同时移动绑定:
       IP fields:
         Source Address =从DHCP服务器获得的转交地址
         Destination Address =家乡代理的IP地址
         Time to Live = 64
       UDP fields:
         Source Port =任意
         Destination Port = 434
       Registration Request fields:
         Type = 1
         S=0,B=1,D=1,M=1,G=1
         Lifetime = 1800 (秒)
         Home Address =移动节点的家乡地址
         Home Agent = 移动节点家乡代理的IP地址
         Care-of Address =从DHCP服务器获得的转交地址
         Identification = NTP时间戳或随机数
       Extensions:
            Mobile-Home认证扩展
D.3.解除注册
    移动节点返回家乡,希望与家乡代理解除所有的转交地址的注册。
       IP fields:
         Source Address =移动节点的家乡地址
         Destination Address =家乡代理的IP地址
         Time to Live = 1
       UDP fields:
         Source Port =任意
         Destination Port = 434
       Registration Request fields:
         Type = 1
         S=0,B=0,D=0,M=0,G=0
         Lifetime = 0
         Home Address =移动节点的家乡地址
         Home Agent =移动节点家乡代理的IP地址
         Care-of Address =移动节点的家乡地址
         Identification = NTP时间戳或随机数
       Extensions:
           Mobile-Home认证扩展
E. Prefix Lengths扩展的适用性
    由于无线发射机所提供的覆盖范围不规则,在无线链路上使用Prefix Lengths扩展时要
小心。结果,可能两个外地代理给预期的移动节点广告相同的前缀长度但实际上提供不同的
连接。在这样的配置中代理发送的广告中不应该包含Prefix-Lengths扩展。
   使用不同无线接口的外地代理必须使用特定协议进行合作以提供相同的覆盖空间,从而能
声明它们拥有适合于同一个子网的无线接口。在有线接口的情形中,移动节点断开连接,随
后连接到一个新的接入点,可以很好地发送新的注册请求不关心的广告是否与已记录的上一
个广告在相同的介质上。最后,在外地代理密集的地区,要求通过路由协议传播与单个无线
外地代理相关联的子网前缀将是不明智;这样的策略可能导致路由表可拥空间的快速损耗,
路由更新所需时间无根据的增加以及决定路由选择的时间更长,如果路由(几乎总是不必要
的)存放在无线“子网”上。  


















参考文献
   [1] Atkinson, R., "IP认证头部”, RFC 1826, August 1995。
   [2] S. M. Bellovin.  TCP/IP协议族的安全问题, ACM Computer Communications 
Review, 19(2), March 1989。
   [3] Ramon Caceres and Liviu Iftode. 提高移动计算环境中可靠传输协议性能 。  IEEE 
Journal on Selected Areas in Communications, 13(5):850--857, June 1995。
   [4] Deering, S., Editor, “ICMP路由发现消息", RFC 1256, September 1991。
   [5] Deering, S., "IP多播种的主机扩展”, STD 5, RFC 1112, August 1989。
   [6] Droms, R., "动态主机配置协议”, RFC 1541,   October 1993。
   [7] Eastlake, D., Crocker, S., and J. Schiller,  “安全随机性要求”, RFC 1750, 
December 1994。
   [8] Hanks, S., Li, R., Farinacci, D., and P. Traina, “通用路由封装GRE”, 
RFC 1701, October 1994。
   [9] Van Jacobson. 拥塞的避免和控制。  In Proceedings of the SIGCOMM '88 Symposium:  
Communications Architectures &   Protocols, pages 314--329, August 1988。
   [10] Jacobson, V., "低速串行链路上的TCP/IP头部压缩", RFC 1144, February 
1990。
   [11] McCloghrie, K., and F. Kastenholz, "Evolution of the   Interfaces Group 
of MIB-II", RFC 1573, January 1994。
   [12] McGregor, G., "PPP因特网协议控制协议(IPCP)”, RFC 1332, May 1992。
   [13] Mills, D., “网络时间协议(第3版):规范,实现及分析”, RFC 1305, March
       1992。
   [14] Perkins, C., "IP-in-IP封装”, RFC 2003,   October 1996。
   [15] Perkins, C.,  "IP内最小封装”, RFC 2004,  October 1996。
   [16] Plummer, D., “一个以太网地址解析协议:或在以太网硬件上把网络协议地址转
化为48位以太网地址以用于传输”, STD 37,  RFC 826, November 1982。
   [17] Postel, J., "用户数据报协议", STD 6, RFC 768, August  1980。
   [18] Postel, J., “多局域网地址解析”, RFC 925, October   1984。
   [19] Postel, J., Editor, "因特网协议", STD 5, RFC 791,  September 1981。
   [20] Reynolds, J., and J. Postel, "指定值", STD 2,  RFC 1700, October 1994。
   [21] Rivest, R.,“MD5消息摘要算法”, RFC 1321, April 1992。
   [22] Simpson, W., Editor, "点对点协议(PPP)", STD 51, RFC 1661, July 1994。
   [23] W. Richard Stevens。  TCP/IP协议详解,卷1:协议, Addison-Wesley, Reading, 
Massachusetts, 1994。









编辑地址
   本文档的问题请直接与编辑联系:
   Charles Perkins
   Room H3-D34
   T. J. Watson Research Center
   IBM公司
   30 Saw Mill River Rd.
   Hawthorne, NY  10532
   Work:   +1-914-784-7350
   Fax:    +1-914-784-6205
   EMail: perk@watson.ibm.com
   工作组可以通过现任主席联系:
      Jim Solomon
      Motorola, Inc.
      1301 E. Algonquin Rd.
      Schaumburg, IL  60196
      Work:   +1-847-576-2753
      EMail: solomon@comm.mot.com


9

RFC2002  IP Mobility Support                            IP移动性支持
0
RFC文档中文翻译计划