计算机网络:网络层 —— 移动 IP 技术

文章目录

      • 移动性对因特网应用的影响
      • 移动 IP 相关基本概念
      • 移动IP技术的基本工作原理
        • 代理发现与注册
        • 固定主机向移动主机发送IP数据报
        • 移动主机向固定主机发送IP数据报
        • 同址转交地址方式
        • 三角形路由问题

移动性对因特网应用的影响

我们列举如下三个应用场景说明移动性对因特网应用的影响:

![[移动性对因特网应用的影响.png]]

为解决应用场景三出现的问题,出现了移动 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)同时向外地代理注册自己的永久地址归属代理地址

![[代理发现与注册.png]]

外地代理会将 移动主机A 的永久地址,记录在自己的注册表中,并向移动主机的归属代理注册该移动主机的转交地址(也可由移动主机直接进行注册)

归属代理会将 移动主机A 的转交地址记录下来,此后,归属代理会代替移动主机接收所有发送给该移动主机的IP数据报,并利用IP隧道技术,将这些数据报转发给外地网络中的移动主机

比喻一下:【归属代理】就是你家,【外地代理】你的公司,你在公司(外地代理)写下你的家的地址,在家(归属代理)写下你公司的地址,以后有人找你,找不到就先发消息到你家,让你家帮忙发消息给你(即转发消息)

当移动主机不在归属网络时,归属代理会以自己的 MAC 地址,应答所有对该移动主机的 ARP 请求,即归属代理采用ARP代理技术

为了使归属网络中其他各主机和路由器能够尽快更新各自的 ARP 高速缓存归属代理还会主动发送 ARP 广播,并声称自己是该移动主机。这样,所有发送给该移动主机的 IP 数据报,都会发送给归属代理。

固定主机向移动主机发送IP数据报

![[固定主机向移动主机发送IP数据报.png]]

假设固定主机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数据报.png]]

为此,移动主机可以将外地代理作为自己的默认路由器,也可以通过代理发现协议从外地代理获取外地网络中其他路由器的地址,并将其设置为自己的默认路由器。

同址转交地址方式

外地代理除了可以配置在外地网络中的某个路由器上,也可以直接运行在移动主机上。移动主机需要运行额外的外地代理软件。外地网络也需要提供相应机制,使移动主机能够自动获取一个外地网络中的地址,作为自己的IP地址和外地代理的地址,被称为同址转交地址(Co-Located Care-of Address)。这样,移动主机自己将接收所有发往转交地址的IP数据报。

三角形路由问题

![[三角形路由问题.png]]

即使在固定主机与移动主机之间存在一条更有效的路径,发往移动主机的IP数据报也要先发送给归属代理,这就是三角路由问题,造成 IP 数据报转发的低效。

解决三角形路由问题的一种方法:

给固定主机配置一个通信代理固定主机发送给移动主机的IP数据报,都要通过该通信代理转发

通信代理先从归属代理获取移动主机的转交地址,之后所有发送给移动主机的IP数据报,都利用转交地址直接通过 IP 隧道发送给移动主机的外地代理,而无须再通过移动主机的归属代理进行转发。

这种方法以增加复杂性为代价,并要求固定主机也要配置通信代理,也就是对固定主机不再透明。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙多线程开发——Worker多线程

1、概 述 1.1、基本介绍 Worker主要作用是为应用程序提供一个多线程的运行环境,可满足应用程序在执行过程中与主线程分离,在后台线程中运行一个脚本进行耗时操作,极大避免类似于计算密集型或高延迟的任务阻塞主线程的运行。 创建Worker的线…

【大数据学习 | kafka】消费者的分区分配规则

1. 概述 上面我们提到过,消费者有的时候会少于或者多于分区的个数,那么如果消费者少了有的消费者要消费多个分区的数据,如果消费者多了,有的消费者就可能没有分区的数据消费。 那么这个关系是如何分配的呢? 现在我们…

Python接口自动化测试自学指南(项目实战)

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 接口自动化测试是指通过编写程序来模拟用户的行为,对接口进行自动化测试。Python是一种流行的编程语言,它在接口自动化测试中得到了广…

Redis - 哨兵(Sentinel)

Redis 的主从复制模式下,⼀旦主节点由于故障不能提供服务,需要⼈⼯进⾏主从切换,同时⼤量 的客⼾端需要被通知切换到新的主节点上,对于上了⼀定规模的应⽤来说,这种⽅案是⽆法接受的, 于是Redis从2.8开始提…

24年配置CUDA12.4,Pytorch2.5.1,CUDAnn9.5运行环境

没什么好介绍的,直接说了。 下载 首先打开命令行,输入代码查看显卡最高支持的cuda版本,下载的版本不要高于该版本 nvidia-smi PyTorch 插件这个是PyTorch下载地址,就按照我这么选CUDA版本就选最新的,看好绿框里的CU…

debian系统安装qt的时候 显示xcb相关文件缺失

如果是安装之后的问题 我们可以选择使用ldd的命令查看当前依赖的so那些文件确实 ldd /home/yinsir/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so 本人在进行打包的时候 出现则会个报错 ERROR: ldd outputLine: “libxcb-util.so.1 > not found” ERROR: for binary: “/…

找工作就上万码优才,海量技术岗位等你来

已至岁末,不论你将实习,或正在求职,求职平台千千万万,但简历如落叶般无人问津。 是否因未找到理想职位而心生焦虑?别急,万码优才在这里,为你点亮职业之路的明灯! 今天给大家推荐一…

⭐SmartControl: Enhancing ControlNet for Handling Rough Visual Conditions

目录 0 Abstract 1 Motivation 2 Related Work 2.1 Text-to-Image Diffusion Model 2.2 Controllable Text-to-Image Generation 2.3 ControlNet 2.4 Control Scale Exploration 3 Method 3.1 Framework 3.2 Control Scale Predictor 3.3 Unaligned Data Constructi…

vue3 + element-plus 的 upload + axios + django 文件上传并保存

之前在网上搜了好多教程,一直没有找到合适自己的,要么只有前端部分没有后端,要么就是写的不是很明白。所以还得靠自己摸索出来后,来此记录一下整个过程。 其实就是不要用默认的 action,要手动实现上传方式 http-reque…

更改Ubuntu22.04锁屏壁纸

更改Ubuntu22.04锁屏壁纸 sudo apt install gnome-shell-extensions gnome-shell-extension-manager安装Gnome Shell 扩展管理器后,打开“扩展管理器”并使用搜索栏找到“锁屏背景”扩展

SDL打开YUV视频

文章目录 问题1:如何控制帧率?问题2:如何触发退出事件?问题3:如何实时调整视频窗口的大小问题4:YUV如何一次读取一帧的数据? 问题1:如何控制帧率? 单独用一个子线程给主线…

SQL server 中 CROSS APPLY的使用

CROSS APPLY 是 SQL Server 中的一个操作符,用于将一个表表达式(如子查询、函数等)与外部表进行连接。CROSS APPLY 类似于 INNER JOIN,但它允许你在一个查询中多次引用外部表的行,并且可以动态地生成结果集。 基本语法…

【算法】Floyd多源最短路径算法

目录 一、概念 二、思路 三、代码 一、概念 在前面的学习中,我们已经接触了Dijkstra、Bellman-Ford等单源最短路径算法。但首先我们要知道何为单源最短路径,何为多源最短路径 单源最短路径:从图中选取一点,求这个点到图中其他…

纯C++信号槽使用Demo (sigslot 库使用)

sigslot 库与QT的信号槽一样,通过发送信号,触发槽函数,信号槽不是QT的专利,早在2002年国外的一小哥用C写了sigslot 库,简单易用; 该库的官网(喜欢阅读的小伙伴可以仔细研究)&#xf…

【路径规划】PID搜索算法PSA求解UAV路径规划

摘要 本文研究了基于PID搜索算法(PID Search Algorithm, PSA)求解无人机(UAV)路径规划问题。通过引入PID控制思想来控制路径生成过程,使得无人机可以避开障碍物并在复杂地形中寻找最优路径。实验结果表明,…

【大数据学习 | kafka高级部分】kafka的数据同步和数据均衡

1. 数据同步 通过上图我们发现每个分区的数据都不一样,但是三个分区对外的数据却是一致的 这个时候如果第二个副本宕机了 但是如果是leader副本宕机了会发生什么呢? 2. 数据均衡 在线上程序运行的时候,有的时候因为上面副本的损坏&#xff…

java:使用Multi-Release Jar改造Java 1.7项目增加module-info.class以全面合规Java 9模块化规范

common-java是一个我维护了好多年的一个基础项目,编译目标为Java 1.7 现在整个团队的项目要做Java 9以上的技术迁移准备,就需要对这个在内部各项目中被广泛引用的基础项目进行改造,以适合Java 9的模块化规范。 Automatic-Module-Name Java 9的模块化规范(即Java Platform Mod…

机器视觉基础—双目相机

机器视觉基础—双目相机与立体视觉 双目相机概念与测量原理 我们多视几何的基础就在于是需要不同的相机拍摄的同一个物体的视场是由重合的区域的。通过下面的这种几何模型的目的是要得到估计物体的长度,或者说是离这个相机的距离。(深度信息&#xff09…

C++继承(图文非常详细)

继承的概念 1.什么是继承 1.简单定义 我们来看一下下面这串代码注意其中的两个类father 和 son using namespace std; #include<iostream> class father { public:void definity(){cout << "father" << endl;} protected:int tall 180;int age …

【机器学习】均方误差根(RMSE:Root Mean Squared Error)

均方误差根&#xff08;Root Mean Squared Error&#xff0c;RMSE&#xff09;是机器学习和统计学中常用的误差度量指标&#xff0c;用于评估预测值与真实值之间的差异。它通常用于回归模型的评价&#xff0c;以衡量模型的预测精度。 RMSE的定义与公式 给定预测值 和实际值 …