文章目录
前言
阅读本文前请注意最后编辑时间,文章内容可能与目前最新的技术发展情况相去甚远。欢迎各位评论与私信,指出错误或是进行交流等。
本文是关于《计算机网络:自顶向下方法(第七版)》的学习分享,内容书写顺序也是按照书中的顺序。本文并不会提及书中的所有内容,主要写重点的知识,以及自己感兴趣的内容。会对原文中的内容进行一定的精简,或者加上个人的理解。
无线网络和移动网络
蜂窝因特网接入
在前一节中,我们考察了一台因特网主机当位于 WiFi 热区中时,即当它位于一个802. 11 接人点附近时,是如何接入因特网的。 然而大多数WiFi 热区只有一个直径为 10 ~ 100m 的小规模覆盖范围。 当我们十分需要无线因特网接入但同时又无法访问 WiFi 热区时,该怎么办呢?
鉴于蜂窝电话目前在全球许多区域已经是无处不在了, 一个很自然的策略就是扩展蜂窝网络,使它们不仅支持语音电话,同时也支持无线因特网接入。 理想情况下,这种因特网接入将会有相当高的速率,并且可以提供无缝的移动性,允许用户在旅行过程中(如在汽车或火车上)保持其TCP会话。 使用足够高的上行和下行比特速率,用户甚至可以在移动中维持视频会议。
蜂窝网体系结构概述
在本节描述蜂窝网体系结构时,我们将采用全球移动通信系统 (GSM) 标准的术语。到了20世纪80年代,欧洲人认识到需要一个广泛的数字蜂窝电话系统,以代替多个不兼容的模拟蜂窝电话系统,从而导致了 GSM 标准的出现 。 欧洲人在20 世纪 90 年代初就成功地部署了 GSM 技术,自此后GSM 成长为移动电话领域的庞然大物,全世界有超过80% 的蜂窝用户使用 GSM。
当人们谈论蜂窝技术时,经常将该技术分类为几"代"之一。 最早一代的设计主要用于语音通信。 第一代 (1G) 系统是模拟FDMA 系统,其专门用于语音通信。 这些 1G系统目前几乎绝迹,它们被数字2G 系统所替代。 初始的2G系统也是为语音而设计,但后来除了语音服务外还扩展了对数据(即因特网)的支持 (2.5G)。 3G 系统也支持语音和数据,但更为强调数据能力和更高速的无线电接入链路。 今天的4G 系统基于LTE技术,其特征为全IP核心网络,并且以几兆比特速率提供了话音和数据集成。
2G 蜂窝网体系结构:语音与电话网连接
蜂窝 (cellular) 是指这样的事实,即由一个蜂窝网覆盖的区域被分成许多称作小区 (cell) 的地理覆盖区域,小区如图左侧的六边形所示。 如同学习的802. 11 WiFi 标准一样, GSM 有自己的特殊命名法。 每个小区包含一个收发基站 (BaseTransceiver Station, BTS) , 负责向位于其小区内的移动站点发送或接收信号。 一个小区的覆盖区域取决千许多因素,包括BTS的发射功率、用户设备的传输功率、小区中的障碍建筑物以及基站天线的高度。 尽管图中显示的是每个小区包含一个位于该小区中间的收发基站,但今天的许多系统将BTS放置在3个小区的交处,使得带有有向天线的单个BTS 能够为三个小区提供服务。

2G 蜂窝系统的 GSM标准对空中接口使用了组合的 FDM/TDM (无线电)。 第 1 章中讲过,使用纯FDM, 信道被划分成许多频段,每个呼叫分配一个频段。使用纯TDM, 时间被划分为帧,每个帧又被进一步划分为时隙,每个呼叫在循环的帧中被分配使用特定的时隙。 在组合的FDM/TDM系统中,信道被划分为若干频率子带;对于每个子带,时间又被划分为帧和时隙。 因此,对于一个组合的FDM/TDM系统,如果信道被划分为F个子带,并且时间被划分为T个时隙,那么该信道将能够支持F·T个并发的呼叫。 GSM 系统由多个200kHz 的频带组成,每个频带支持8个TDM呼叫。 GSM 以13kbps 和 12. 2kbps 的速率编码。
一个GSM 网络的基站控制器 (Base Station Controller, BSC) 通常服务于几十个收发基站。 BSC 的责任是为移动用户分配BTS无线信道,执行寻呼 (paging) (找出某移动用户所在的小区),执行移动用户的切换。 基站控制器及其控制的收发基站共同构成了 GSM基站系统 (Base Station System , BSS) 。
在用户鉴别和账户管理(决定是否允许某个移动设备与蜂窝网络连接)以及呼叫建立和切换中,移动交换中心 (Mobile s Witching Center, MSC) 起着决定性的作用。 单个MSC通常将包含多达5 个BSC, 因此每个 MSC 有大约200000个用户。一个蜂窝提供商的网络将有若干MSC, 使用称为网关MSC 的特殊MSC 将提供商的蜂窝网络与更大的公共电话网相连。
3G 蜂窝数据网:将因特网扩展到蜂窝用户
2G蜂窝语音用户能够连接到公共电话网。 但当我们开始这样干时,当然也乐意读电子邮件、访问Web、获取位置相关的服务(例如地图和餐馆推荐),或许观看流式视频。 为此、我们的智能手机需要运行完整的TCP/IP协议栈(包括物理层、链路层、网络层、运输层和应用层),并能够经过蜂窝数据网连接进入因特网。在我们下面的讨论中,我们将关注由第三代合作伙伴项目 (3rd Generation Partnership Project, 3GPP) 研发的通用移动通信服务 (Universal Mobile Telecommunications Service, UMTS) 3G 和 4G 标准 。

我们自上而下地查看一下显示在图中的3G蜂窝数据网体系结构。
-
3G 核心网
3G 核心蜂窝数据网将无线电接入网连接到公共因特网。 核心网与我们前面在遇到过的现有蜂窝语音网(特别是MSC) 的组件协作。 由于在现有的蜂窝语音网中具有大量的现有基础设施, 3G数据服务的设计者们所采取的方法非常清楚:不去触动现有核心 GSM蜂窝语音网,增加与现有蜂窝语音网平行的附加蜂窝数据功能。
在3G核心网中有两类节点:服务通用分组无线服务支持节点 (Serving Generalized packet radio service Support Node , SGSN) 和网关 GPRS 支持节点 (Gateway GPRS Support Node , GGSN) 。 GPRS (General Packet Radio Service) 表示通用分组无线服务,这是一种
在2G 网络中的早期蜂窝数据服务;这里我们讨论的是在3G 网络中 GPRS 的演化版本。一个SGSN 负责向位于其连接的无线电接入网中的移动节点交付(或从移动节点获取)数据报。 SGSN 与该区域蜂窝语音网的MSC进行交互,提供用户认证和切换,维护活跃移动节点的位置(小区)信息,执行位于无线接入网中的移动节点和 GGSN 之间的数据报转发。 GGSN起着网关的作用,将多个SGSN 连接到更大的因特网。GGSN 因此是源于移动节点的一个数据报在进入更大因特网之前遇到的3G基础设施的最后一部分。对外部而言,GGSN 看起来像任何其他网络路由器。
-
3G 无线电接人网: 无线边缘
3G 无线电接入网 (radio access network) 是我们作为 3G 用户看见的无线第一跳网络 、无线电网络控制器 (Radio Network Controller, RNC) 通常控制几个小区的收发基站,类似于我们在2G 网络中遇到的基站。 每个小区的无线链路运行在移动节点和收发基站之间,就像在2G 网络中那样。 RNC 既通过 MSC 与电路交换蜂窝语音网连接,又通过 SGSN 与分组交换的因特网连接。 因此,尽管3G蜂窝语音服务和蜂窝数据服务使用不同的核心网,但它们共享一个相同的第一/最后一跳无线电接人网。
较之2G 网络,在3G中的一个重大变化是不再使用GSM 的 FDMA/TDMA方案。3G 在 TDMA 时隙中使用称为直接序列宽带 CDMA (Direct Sequence Wideband CDMA,DS-WCDMA) 的 CDMA 技术。 TDMA 时隙又在多个频率上可供使用,即有趣地使用了我们在前面第6章指出的全部三种不同的信道共享方法。 这种变化要求一个新的3G蜂窝无线接入网与显示在图中的2G BSS 无线电网络并行运行。与 WCDMA 规范相关的数据服务被称为高速分组接入 (High Speed Packet Access, HSPA) , 其下行数据传输率有望高达 14Mbps。有关3G网络的细节能够在3GPP Web站点上找到。
走向 4G: LTE
在2015 年,有50 多个国家的4G覆盖率超过50% 。 由3GPP 提出的4G 长期演进互联网 (LTE) 标准 , 较之3G 系统而言有两个重要的创新: 一个全IP核心网和一个加强的无线电接入网。下面对此进行讨论。

- 4G 系统体系结构: 一个全 IP 核心网
上图显示了总体的4G 网络体系结构,有关4G体系结构,有两个重要的高层次观察。
- 一种统一的、全IP 网络体系结构。 与之前显示的3G 网络不同, 3G 网络对于语音和数据流量具有分离的网络组件和路径,4G 体系结构是
"全 IP 的",即语音和数据都承载在 IP 数据报中,从无线设备(用户设备, 4G 中将用于设备术语称为UE)发送IP数据报, 到分组网关 (P-GW)接收数据报,反之亦然。该P-GW将4G边缘网络连接到网络的其他部分。 使用了4G, 蜂窝网络来源于电话的最后痕迹已经荡然无存,让位给统一的IP服务了! - 4G 数据平面与 4G控制平面的清晰分离。 分别对照第4 章和第5 章中 IP 网络层的数据平面与控制平面之间的特征, 4G网络体系结构也清晰地分离了数据平面和控制平面。 我们将在下面讨论它们的功能。
- 无线电接入网与全IP核心网之间的清晰分离。 承载用户数据的IP数据报,在用户 (UE) 和网关(P-GW) 之间转发。 在4G控制服务组件之间经过相同的内部网络交换控制分组, 这些组件的作用将在下面描述。
4G 体系结构的主要组件如下: - eNodeB 是 2G 基站和 3G 无线电网络控制器的逻辑后代,并且此时还起着关键作用。 它的数据平面作用是在UE和P-GW之间 (经过LTE无线电接入网)转发数据报。 UE 数据报在eNodeB 被封装, 并且通过4G 网络的全IP强化分组核 (EPC) 以隧道形式传输到 P-GW。eNodeB 与 P-GW之间的隧道类似于IPv6 数据报隧道,这些分组在两个IPv6 端点之间通过一个使用 IPv4 路由器的网络传输。 这些隧道可能与保证服务质量 (QoS) 相关。 例如, 4G 网络可能确保语音流量在UE和P-GW之间历经不超过 100ms 时延,分组丢失率小于 1% ; TCP 流量也许能够确保300ms 时延以及小于0.0001 % 的分组丢失率。 在控制平面中, eNodeB 代表UE 来处理注册和移动性信令流量。
- 分组数据网络网关 (Packet Data Network Gateway, P-GW)给 UE 分配 IP 地址, 并且保证QoS 实施。 作为隧道端点,当向或从UE转发数据报时,它也执行数据报封装/解封装。
- 服务网关 (S-GW) 是数据平面移动性描点,即所有 UE 流量将通过S-GW传递。该S-GW 也执行收费/记账功能以及法定的流量拦截。
- 移动性管理实体 (Mobility Management Entity, MME) 代表位于它所控制单元中的UE, 执行连接和移动性管理。 它从 HHS接收 UE订购信息。
- 归属用户服务 (Home Subscriber Server, HSS) 包含了包括漫游接入能力、服务质量配置文件和鉴别信息的 UE信息。
- LTE 无线电接人网
LTE 在下行信道采用频分复用和时分复用结合的方法,称之为正交频分复用 (Orthogonal Frequency Division Multiplexing, OFDM ) 技术。 ("正交" 一词来源于如下事实,所生成的在不同频道上发送的信号,它们相互干扰非常小,即使当信道频率紧密排列时)。 在LTE 中, 每个活跃的移动节点都可以在一个或更多个信道频率上被分配一个或更多个0.5ms 时隙。 下图显示了在4 个频率上分配8个时隙的情况。 通过分配越来越多的时隙(无论是用相同的频率还是用不同的频率),移动节点能够获取越来越高的传输速率。 在移动节点之间进行时隙(重)分配的频度为每毫秒一次。

LTE 标准并未对向移动节点特殊分配时隙进行强制要求。 相反,允许哪个移动节点在某个给定的时隙在给定的频率下传输,这个决定由LTE 设备商和/或网络运营商提供的调度算法来做出。 使用机会调度 , 将物理层协议与发送方和接收方之间的信道条件相匹配,基于信道条件选择分组将发往的接收方,使无线电网络控制器能够最大限度地利用无线媒体。 此外,能够使用用户优先权和服务的契约等级 (如银、金或铅金) 调度下行分组传输。 除了上面描述的LTE能力,高级 LTE通过向移动节点分配聚合信道提供了数百兆下行带宽 。
另一种4G无线技术是WiMAX (全球微波接入互操作),它是一个IEEE 802. 16 标准协议簇,与LTE有着重大差异。 WiMAX 目前还没有得到 LTE 那样的广泛部署。
移动管理:原理
学习了无线网络中通信链路的无线特性后,现在我们将注意力转向这些无线链路带来的移动性。 宽泛地讲,移动节点是随时间改变它与网络连接位置的节点。 因为移动性这一术语在计算机界和电话界有许多含义,所以先更为详细地讨论一下移动性的各个方面将对我们很有帮助。
- 从网络层的角度看,用户如何移动?一个物理上移动的用户将对网络层提出一系列不同寻常的挑战,这取决于他(她)在网络连接点之间如何移动。 在下图中的移动程度的最左端,用户也许带着一台装有无线网络接口卡的便携机在一座建筑物内走动。 从网络层的角度来看,该用户并没有移动。 而且,如果该用户不论在何处都与同一个接入点相关联,从链路层角度来看该用户甚至也没有移动。
在该移动程度的最右端,考虑一下该用户在一辆轿车内以150km/h 的时速沿高速公路急速行驶时穿过多个无线接入网,并希望在整个旅程
中保持一个与远程应用的不间断的TCP连接。 这个用户无疑是移动的!在这两种极端之间的情况是, 一个用户带着一台便携机从一个地方(如办公室或宿舍)到另一个地方(如咖啡店、教室),并且想在新地方连入网络。 该用户也是移动的(虽然比轿车内的移动性差一些!),只不过不需要在网络接入点之间移动时维持一个不间断的连接。

- 移动节点的地址始终保持不变有多么重要?对移动电话而言,当你从一个提供商移动电话网络到另一个的过程中,你的电话号码(本质上是你电话的网络层地址)始终保持不变。 类似地,便携机在IP网络之间移动时是否也必须维持相同的IP地址呢?
对这一问题的回答很大程度上取决于所运行的应用程序。 对于那个在高速公路上飞驰,同时又希望维持对一个远程应用的不间断的TCP连接而言,维持相同的IP地址将会带来便利。 回想第3章,一个因特网应用程序需要知道它与之通信的远端实体的IP地址和端口号。 如果一个移动实体在移动过程中能够保持其IP地址不变,从应用的角度,移动性就变得不可见。 这种透明性有十分重要的价值,即应用程序不必关心IP地址潜在的变化,并且同样的应用程序代码既可用于移动连接,又可用于非移动连接。 在下一节我们将会看到移动IP提供了这种透明性,它允许移动节点在网络间移动的同时维持其永久的IP地址。在另一方面, 一个不移动用户也许只想关闭办公室便携机,将其带回家,然后开机,再在家中工作。 如果该便携机在家时只是作为一个客户,使用客户-服务器方式的应用(如发送/阅读电子邮件、 浏览Web、通过Telnet与远程主机相连),则使用特定 IP地址并不是那么重要。 特别是,用户能够得到一个由服务于家庭的ISP临时分配的IP地址即可。 - 支持有线基础设施的东西有哪些可用?在所有上述情形中,我们都隐含地假设存在一个固定的基础设施让移动用户连接,例如家庭的 ISP 网络、办公室的无线接人网,或者沿高速公路的无线接入网。 如果这样的基础设施不存在会怎么样?如果两个用户位于彼此的通信范围内,他们能否在没有其他网络基础设施存在的清况下建立一个网络连接?自组织网络正好提供了这些能力。
在一个网络环境中, 一个移动节点 (如一台便携机或智能手机)的永久居所被称为归属网络 (home network) , 在归属网络中代表移动节点执行移动管理功能的实体叫归属代理 (home agent) 。 移动节点当前所在网络叫作外部网络 (foreign network) 或被访网络 (visited network) , 在外部网络中帮助移动节点做移动管理功能的实体称为外部代理 (foreign agent) 。 一个通信者 (correspondent) 就是希望与该移动节点通信的实体。 下图阐述了这些概念,也说明了下面考虑的编址概念。在图中,我们注意到代理被配置在路由器上 (例如,作为在路由器上运行的进程),但它们也能在网络中其他主机或服务器上执行。

寻址
我们前面提到为了使用户移动性对网络应用透明,希望一个移动节点在从一个网络移动到另一个网络时保持其地址不变。 当某移动节点位于一个外部网络时,所有指向此节点固定地址的流量需要导向外部网络。 怎样才能做到这一点呢?外部网络可用的一种方法就是向所有其他网络发通告,告诉它们该移动节点正在它的网络中。 这通常可通过交换域内与域间路由选择信息来实现,而且只需对现有路由选择基础设施做很少的改动即可。 外部网络只需通告其邻居它有一条非常特别的路由能到达该移动节点的固定地址,即告诉其他网络它有一条正确的路径可将数据报导向该移动节点的固定地址。这些邻居将在全网传播该路由选择信息,而且是当作更新路由选择信息和转发表的正常过程的一部分来做。 当移动节点离开一个外部网络后又加入另一个外部网络时,新的外部网络会通告一条新的通向该移动节点的特别路由,旧的外部网络将撤销其与该移动节点有关的路由选择信息。
这种方法立刻解决了两个问题,且它这样做不需对网络层基础设施做重大改动。 其他网络知道该移动节点的位置,很容易将数据报路由到该移动节点,因为转发表将这些数据报导向外部网络。 然而它有一个很大的缺陷,即扩展性不好。 如果移动性管理是网络路由器的责任的话,则路由器将必须维护可能多达数百万个移动节点的转发表表项。
一种替代的方法(并在实际中得到了采用)是将移动性功能从网络核心搬到网络边缘,这是我们在研究因特网体系结构时一再重复的主题。 一种自然的做法是由该移动节点的归属网络来实现。移动节点的归属网络中的归属代理也能跟踪该移动节点所在的外部网络。 这当然需要一个移动节点(或一个代表该移动节点的外部代理)与归属代理之间的协议来更新移动节点的位置。
我们现在更详细地思考外部代理。 如上图所示,概念上最简单的方法是将外部代理放置在外部网络的边缘路由器上。 外部代理的作用之一就是为移动节点创建一个所谓的转交地址 (Care-Of Address, COA) , 该 COA 的网络部分与外部网络的网络部分相匹配。 因此一个移动节点可与两个地址相关联,即其永久地址 (permanent address) 与其COA, 该COA有时又称为外部地址 (foreign address) 。 在图中的例子,移动节点的固定地址是128. 119. 40. 186。 当被访网络为79. 129. 13/24 时,该移动节点具有的 COA 为79. 129. 13.2。 外部代理的第二个作用就是告诉归属代理,该移动节点在它的网络中且具有给定的COA。 我们很快就会看到,该COA将用于将数据报通过外部代理"重新路由选择"到移动节点。虽然我们已将移动节点与外部代理的功能分开,但是应当注意到移动节点也能承担外部代理的责任。 例如,某移动节点可在外部网络中得到一个COA (使用一个诸如DHCP之类的协议),且由它自己把其COA通告给归属代理。
路由选择到移动节点
我们现在已看到一个移动节点是如何得到一个COA 的,归属代理又是如何被告知该地址的。 但让归属代理知道该COA仅能解决部分问题。数据报应怎样寻址并转发给移动节点呢?因为只有归属代理(而不是全网的路由器) 知道该移动节点的位置,故如果只是将一个数据报寻址到移动节点的永久地址并将其发送到网络层基础结构中,这样做已不再满足需要了。 还有更多的事情要做。 目前有两种不同的方法,我们将称其为间接路由选择与直接路由选择。
- 移动节点的间接路由选择
我们先考虑一个想给移动节点发送数据报的通信者。 在间接路由选择 (indirect routing) 方法中,通信者只是将数据报寻址到移动节点的固定地址,并将数据报发送到网络中去,完全不知道移动节点是在归属网络中还是在某个外部网络,因此移动性对于通信者来说是完全透明的。这些数据报就像平常一样首先导向移动节点的归属网络,这用下图中的步骤 1 加以说明。

我们现在将注意力转向归属代理。 除了负责与外部代理交互以跟踪移动节点的 COA外,归属代理还有另一项很重要的功能。 它的第二项工作就是监视到达的数据报.这些数据报寻址的节点的归属网络与该归属代理所在网络相同,但这些节点当前却在某个外部网络中。 归属代理截获这些数据报,然后按两步走的过程转发它们。 通过使用移动节点的 COA, 该数据报先转发给外部代理 (图中的步骤2) 然后再从外部代理转发给移动节点(图中的步骤3)。
仔细地思考这种重新路由选择过程是有益的。 归属代理需要用该移动节点的 COA来设置数据报地址,以便网络层将数据报路由选择到外部网络。 在另一方面,需要保持通信者数据报的原样,因为接收该数据报的应用程序应该不知道该数据报是经由归属代理转发而来的。 让归属代理将通信者的原始完整数据报封装 (encapsulate) 在一个新的(较大的)数据报中,这两个目标都可以得到满足。 这个较大的数据报被导向并交付到移动节点的COA。 "拥有"该COA 的外部代理将接收并拆封该数据报,即从较大的封装数据报中取出通信者的原始数据报,然后再向移动节点转发该原始数据报 (图中的步骤3)。
接下来我们考虑某移动节点如何向一个通信者发送数据报。 这相当简单,因为移动节点可直接将其数据报寻址到通信者(使用自己的永久地址作为源地址,通信者的地址作为目的地址)。 因为移动节点知道通信者的地址,所以没有必要通过归属代理迂回传送数据报。 这就是显示在图中的步骤4。
下面通过列出支持移动性所需要的网络层新功能,我们小结一下对有关间接路由选择的讨论。
- 移动节点到外部代理的协议。 当移动节点连接到外部网络时,它向外部代理注册。类似地,当一个移动节点离开该外部网络时,它将向外部代理取消注册。
- 外部代理到归属代理的注册协议。 外部代理将向归属代理注册移动节点的 COA。当某移动节点离开其网络时,外部代理不需要显式地注销 COA, 因为当移动节点移动到一个新网络时,随之而来就要注册一个新的COA, 这将完成了注销。
- 归属代理数据报封装协议。 将通信者的原始数据报封装在一个目的地址为 COA 的数据报内,并转发之。
- 外部代理拆封协议。 从封装好的数据报中取出通信者的原始数据报,然后再将该原始数据报转发给移动节点。
上述讨论提供了一个移动节点在网络之间移动时要维持一个不间断的连接所需的各部分:外部代理、 归属代理和间接转发。 举一个例子来说明这些部分是如何协同下作的。 假设某移动节点连到外部网络A, 向其归属代理注册了网络A 中的一个COA, 并且正在接收通过归属代理间接路由而来的数据报。 该移动节点现在移动到外部网络 B 中,并向网络B中的外部代理注册,外部代理将该移动节点的新COA告诉了其归属代理。 此后,归属代理将数据报重路由到网络B。 对通信者而言,移动性是透明的, 即在移动前后,数据报都是由相同的归属代理进行路由选择。 对归属代理而言,数据报流没有中断,即到达的数据报先是转发到外部网络A; 改变COA后,则数据报转发到外部网络B。 但当移动节点在网络之间移动时,它会看到数据报流中断吗?只要移动节点与网络A断开连接 (此时它不能再经A 接收数据报)再连接到网络B (此时它将向归属代理注册一个新的COA) 用的时间少,那么儿乎没有丢失数据报。
- 移动节点的直接路由选择
间接路由选择方法存在一个低效的问题,即三角路由选择间题(triangle routing problem) 。 该问题是指即使在通信者与移动节点之间存在一条更有效的路由,发往移动节点的数据报也要先发给归属代理,然后再发送到外部网络。 在最坏情况下,设想一个移动用户正在一位同行所在的外部网络,两人并排坐在一起且正在通过网络交换数据。 从通信者(在该例中为该移动用户的同行)处发出的数据报被路由选择到该移动用户的归属代理,然后再回到该外部网络!
直接路由选择 (direct routing) 克服了三角路由选择的低效问题,但却是以增加复杂性为代价的。 在直接路由选择方法中,通信者所在网络中的一个通信者代理 (correspondent agent) 先知道该移动节点的 COA。 这可以通过让通信者代理向归属代理询问得知,这里假设与间接路由选择情况类似,移动节点具有一个在归属代理注册过的最新的COA。 与移动节点可以执行外部代理的功能相类似,通信者本身也可能执通信者代理的功能。 在下图中显示为步骤 1 和步骤2。 通信者代理然后将数据报直接通过隧道技术发往移动节点的 COA, 这与归属代理使用的隧道技术相类似, 参见图中的步骤3和步骤4。

尽管直接路由选择克服了三角路由选择问题,但它引入了两个重要的其他挑战:
- 需要一个移动用户定位协议 (mobile-user location protocol) , 以便通信者代理向归属代理查询获得移动节点的COA (图中的步骤1和步骤2)。
- 当移动节点从一个外部网络移到另一个外部网络时,如何将数据报转发到新的外部网络?在间接路由选择的情况下,这个问题可以容易地通过更新由归属代理维持的 COA 来解决。 然而,使用直接路由选择时,归属代理仅在会话开始时被通信者代理询问一次COA。 因此,当必要时在归属代理中更新COA, 这并不足以解决将数据路由选择到移动节点新的外部网络的问题。
一种解决方案是创建一个新的协议来告知通信者变化后的 COA。 另一种方案也是在GSM 网络实践中所采用的方案,它的工作方式如下。 假设数据当前正转发给位于某个外部网络中的移动节点,并且在会话刚开始时该移动节点就位于该网络中(下图中的步骤1) 。 我们将首次发现移动节点的外部网络中的外部代理标识为锚外部代理 (anchor foreign agent) 。 当移动节点到达一个新外部网络后(图中的步骤2), 移动节点向新的外部代理注册(步骤3),并且新外部代理向锚外部代理提供移动节点的新COA (步骤4)。 当锚外部代理收到一个发往已经离开的移动节点的封装数据报后,它可以使用新的COA重新封装数据报并将其转发给该移动节点(步骤5)。 如果移动节点其后又移到另一个外部网络中,在该被访网络中的外部代理随后将与锚外部代理联系,以便建立到该新外部网络的转发。

参考目录
书籍:《计算机网络:自顶向下方法(第七版)》