当前位置: 首页 > ai >正文

【TCP/IP】17. 移动 IP

这里写自定义目录标题

  • 17. 移动 IP
    • 17.1 移动 IP 的出现
    • 17.2 移动 IP 的基本术语
    • 17.3 移动 IP 的工作原理
      • 17.3.1 代理发现
      • 17.3.2 位置注册
      • 17.3.3 数据传输(隧道技术)
    • 17.4 移动 IP 的效率
    • 本章要点

17. 移动 IP

17.1 移动 IP 的出现

移动 IP 技术的核心需求是解决移动节点在跨网络漫游时,保持固定 IP 地址并持续通信的问题,其出现源于传统网络方案的局限性。

  1. 背景与需求
    随着便携设备(如笔记本、PDA)的普及,用户希望在移动过程中无需修改 IP 地址,仍能接入网络并保持通信。传统解决方案存在明显缺陷:
    • 若移动节点每次换网时修改 IP 地址,需频繁更新域名系统(DNS),操作复杂且影响通信连续性;
    • 采用蜂窝数字分组数据(CDPD)标准,需专用基础设施,与现有互联网不兼容,维护成本高;
    • 基于主机地址路由会浪费路由器资源,无法满足大规模网络需求。
  2. 移动 IP 的解决方案
    移动 IP 借鉴蜂窝移动电话的呼叫处理原理,让移动节点使用固定不变的 IP 地址,无论接入哪个网络,均可通过网络层机制实现通信持续,无需修改上层应用或依赖专用设施。

17.2 移动 IP 的基本术语

移动 IP 涉及多个核心术语,这些术语是理解其工作机制的基础。

  1. 移动代理(Mobility Agent)
    移动代理是具备移动 IP 功能的路由器,分为两类:

    • 归属代理(Home Agent)
      位于移动节点的归属网(Home Network)(节点原始注册的网络),至少有一个接口连接归属网。其核心功能是:当移动节点离开归属网时,通过 IP 隧道将发往移动节点的数据包转发至其当前位置;维护移动节点的位置信息。
    • 外区代理(Foreign Agent)
      位于移动节点当前接入的外区网(Foreign Network),其核心功能是:向移动节点提供转交地址;接收归属代理通过隧道发来的数据包,解除封装后转发给移动节点;作为移动节点的默认路由器(转发移动节点发出的数据包)。
  2. 移动 IP 地址
    移动节点拥有两个 IP 地址,分别用于标识身份和当前位置:

    • 归属地址(Home Address)
      移动节点的固定 IP 地址,用于标识端到端连接,与归属网关联。无论节点移动到何处,归属地址保持不变。

    • 转交地址(Care-of Address):

      临时分配的地址,标识移动节点当前所在的外区网位置,随节点移动而变化。分为两种类型:

      • 外区代理转交地址:由外区代理提供,可被多个移动节点共享(优先使用)。外区代理是隧道终点,负责解除数据包封装。
      • 协同定位转交地址(Co-located Care-of Address):由移动节点自身通过 DHCP 等方式获取,仅能被单个节点使用。移动节点自身作为隧道终点,自行解除封装。
  3. 位置注册(Registration)
    移动节点需将当前位置信息(转交地址)告知归属代理,以确保数据包能被正确转发。注册规则分为三种:

    • 通过外区代理注册:移动节点向外区代理发送注册请求,外区代理中继至归属代理;归属代理处理后,通过外区代理向移动节点返回注册应答。
    • 直接向归属代理注册:移动节点直接向归属代理发送注册请求,归属代理直接返回应答(通常用于使用协同定位转交地址时)。
    • 返回归属网注册:移动节点返回归属网时,向归属代理撤销之前的注册,恢复在归属网的正常通信。
  4. 代理发现(Agent Discovery)
    移动节点通过此过程识别当前网络中的移动代理(归属代理或外区代理),确定自身是否在归属网,并获取转交地址。分为两种方式:

    • 被动发现:移动节点等待移动代理周期性广播代理通告报文(含代理类型、转交地址等信息)。
    • 主动发现:若未收到代理通告,移动节点广播代理请求报文,触发代理立即发送通告。
  5. 隧道技术(Tunneling)
    当移动节点在外区网时,归属代理需将原始数据包转发至其转交地址,此时通过隧道技术将原始数据包封装在新的 IP 数据包中,使其 “透明” 传输至隧道终点(外区代理或移动节点自身)。移动 IP 支持三种隧道技术:IP 封装、最小封装、通用路由封装(GRE)。

17.3 移动 IP 的工作原理

移动 IP 的工作过程分为三个核心阶段:代理发现、位置注册、数据传输(基于隧道技术)。

17.3.1 代理发现

移动节点通过此阶段确定自身位置(归属网 / 外区网),并获取转交地址(若在外区网)。

  1. 被动发现(基于代理通告)

    • 移动代理(归属代理或外区代理)周期性广播

      代理通告报文

      (基于 ICMP 路由器发现机制扩展),报文包含:

      • 基本 ICMP 首部:类型 = 9(通告),代码 = 16(移动代理专用),校验和、生存期(代理发送频率)等;
      • 移动代理通告扩展首部:类型 = 16,长度 = 6+4×N(N 为转交地址数),序号(已发送通告数),注册生存时间(最长注册有效期),标志位(R = 要求注册、B = 代理忙、H = 归属代理、F = 外区代理等),以及转交地址列表(外区代理至少包含一个)。
    • 移动节点接收通告后,通过标志位判断代理类型(归属 / 外区),若为外区代理,提取转交地址。

  2. 主动发现(基于代理请求)

    • 若未收到代理通告,移动节点广播代理请求报文(ICMP 路由请求报文,IP 首部 TTL=1),触发链路上的移动代理立即回复通告。
    • 移动节点通过回复的通告获取代理信息和转交地址。

17.3.2 位置注册

移动节点将当前转交地址告知归属代理,完成注册后,归属代理可将数据包转发至正确位置。

  1. 通过外区代理注册(最常用)
    • 流程:
      1. 移动节点向外区代理发送注册请求报文(含归属地址、转交地址、注册生存期等);
      2. 外区代理验证请求后,中继至归属代理;
      3. 归属代理检查请求(如是否允许注册),生成注册应答报文(接受 / 拒绝),返回外区代理;
      4. 外区代理处理应答后,转发给移动节点。
  2. 直接向归属代理注册
    • 适用场景:移动节点使用协同定位转交地址(自身作为隧道终点)。
    • 流程:移动节点直接向归属代理发送注册请求,归属代理直接返回应答。
  3. 返回归属网注册
    • 移动节点返回归属网后,向归属代理发送撤销注册请求,解除之前的位置绑定,恢复在归属网的正常通信。

17.3.3 数据传输(隧道技术)

当移动节点在外区网时,归属代理通过隧道将发往移动节点的数据包转发至其转交地址,三种隧道技术的具体实现如下:

  1. IP 封装(IP Encapsulation,RFC 2003)
    • 原理:在原始 IP 数据包首部前添加外层 IP 首部,外层首部的源地址为归属代理地址,目的地址为转交地址(隧道终点),协议字段 = 4(标识内层为 IP 协议)。
    • 解封装:隧道终点(外区代理或移动节点)收到后,去除外层首部,恢复原始数据包并转发。
    • 特点:实现简单,是移动 IP 必须支持的技术,开销约 20 字节(外层 IP 首部)。
  2. 最小封装(Minimal Encapsulation,RFC 2004)
    • 原理:不添加完整外层首部,仅在原始 IP 首部(修改后)与数据之间插入最小转发首部(含源地址、目的地址等)。原始 IP 首部的协议字段 = 55(标识最小封装)。
    • 限制:仅适用于未分片的数据包(可选技术)。
    • 解封装:隧道终点将转发首部的信息恢复到原始 IP 首部,移除转发首部。
    • 特点:开销较小(8-12 字节),但适用场景有限。
  3. 通用路由封装(GRE,RFC 1701)
    • 原理:在原始数据包前添加GRE 首部和外层 IP 首部。GRE 首部含可选字段(校验和、密钥、序号等),外层 IP 首部协议字段 = 47(标识 GRE)。
    • 特点:支持多种网络层协议的封装(不仅限于 IP),但开销最大(含 GRE 首部和外层 IP 首部)。

17.4 移动 IP 的效率

移动 IP 虽解决了基本移动性问题,但存在局限性,IPv6 对其进行了优化。

  1. 移动 IP 的不足
    • 三角路由时延:通信对端将数据包发送至归属代理,再由归属代理隧道转发至外区代理,最后到移动节点;而移动节点的回复直接发往通信对端,形成三角形路径,增加时延且可能导致归属代理成为瓶颈。
    • 隧道封装开销:三种隧道技术均会增加额外首部(20 字节以上),消耗带宽。
    • QoS 支持不足:未定义带宽预留等 QoS 机制,难以支持实时业务;无线链路的低带宽、高误码率进一步影响性能。
    • 两次跨越因特网的低效率:若远程主机与移动节点位于同一外区网,数据包仍需先经归属代理转发,绕路导致低效。
  2. IPv6 对移动 IP 的优化
    • 路由优化:移动 IPv6 中,通信对端可直接向移动节点的转交地址发送数据包,无需经归属代理,消除三角路由(路由优化成为协议核心部分,所有 IPv6 节点支持)。
    • 绑定更新与缓存:移动节点切换外区网后,向归属代理和通信对端发送绑定更新(告知归属地址与新转交地址的关联);接收方将关联信息存入绑定缓存,后续直接按绑定发送数据包。
    • 解决入口过滤问题:移动 IPv6 中,移动节点发送数据包时,源地址可使用转交地址(与外区网子网前缀匹配),避免被具有 “入口过滤” 功能的路由器拦截;归属地址通过 “归属地址” 目的地选项携带,通信对端接收后自动替换为归属地址,保证透明性。

本章要点

  • 移动 IP 的核心是让移动节点保持固定 IP 地址(归属地址),实现跨网络漫游时的持续通信,对通信对端和上层应用透明。
  • 核心术语包括:移动代理(归属代理、外区代理)、归属地址、转交地址(外区代理 / 协同定位)、位置注册、代理发现、隧道技术。
  • 工作过程分三阶段:代理发现(被动 / 主动)、位置注册(三种规则)、数据传输(IP 封装、最小封装、GRE 隧道)。
  • 移动 IP 存在三角路由时延、封装开销等问题,IPv6 通过路由优化、绑定机制等进行了针对性优化,提升了效率和可靠性。
http://www.xdnf.cn/news/15090.html

相关文章:

  • Swift 解 LeetCode 324:一步步实现摆动排序 II,掌握数组重排的节奏感
  • 雷达遥感星座微波射频组件抗辐照MCU的选型与实践
  • 【JMeter】接口加密
  • 【JMeter】调试方法
  • 学弟让我帮忙写一个学生管理系统的后端,我直接上科技
  • [大模型问数]实现大模型调用MYSQL(03)【MCP笔记】
  • Webview 中可用的 VS Code 方法
  • Playwright Python 教程:网页自动化
  • 飞算JavaAI:新一代智能编码引擎,革新Java研发范式
  • Linux进程间通信--命名管道
  • 深度学习入门教程(三)- 线性代数教程
  • react打包发到线上报错Minified React error #130
  • 如何快速掌握WeNet:从零到一的端到端语音识别学习指南
  • spring-ai RAG(Retrieval-Augmented Generation)
  • 上位机知识篇---网络通信端口
  • 线程邮箱(线程间通信的异步缓存机制)
  • OBB旋转框检测配置与训练全流程(基于 DOTA8 数据集)
  • 云原生周刊:镜像兼容性
  • 十、MyBatis的逆向工程
  • 美颜SDK贴纸引擎设计指南:动画、识别与适配的实现逻辑
  • 华为数据通信网络基础
  • 香港站群服务器8C/4C/2C/1C有什么区别
  • 使用you-get命令下载视频/音频/图像
  • 北京-4年功能测试2年空窗-报培训班学测开-第四十八天
  • 【世纪龙科技】几何G6新能源汽车结构原理教学软件
  • 60 美元玩转 Li-Fi —— 开源 OpenVLC 平台入门(附 BeagleBone Black 驱动简单解析)
  • 飞算Java AI:专为 Java 开发者打造的智能开发引擎
  • uniapp制作一个个人页面
  • C++11堆操作深度解析:std::is_heap与std::is_heap_until原理解析与实践
  • [Reverse1] Tales of the Arrow