米葫芦网

移动IP路由器技术的基本原理与工作过程

热度:60℃ 发布时间:2024-06-04 07:19:35

互联网的广泛应用、移动用户的不断增加,使移动IP路由技术的研究显得非凡重要。IETF的建议提供了移动IP协议,但却没有提供优化路由,它存在路由的“三角形”问题。因此,只有解决IETF建议的路由“三角形”问题及其复杂性问题,移动IP路由技术才可以有效地同现有的网络兼容,实现真正的移动优化路由。
移动IP路由技术还处于发展阶段,许多技术还有待于深入研究和探讨,这里从目前使用的移动IP路由技术出发,简要介绍移动IP路由技术的基本原理和工作过程,并对路由优化进行分析总结。
移动IP路由技术
技术背景
1996年IETF提出了RF2002移动IP协议。它提出的背景是由于当时盛行的IP协议并不能满足用户以移动方式接入企业网和互联网的要求。因为在IP协议中,假定任何一个端点的设备都是固定的(即IP地址唯一),那么在通信时,只要将目的端的IP地址嵌入目的地址域,与数据包一同打包封装,然后传送到目的端即可。但在移动环境中,若通信端点的一方为移动用户,IP协议就无法准确地将数据包送到移动主机。移动IP协议的出现,使该问题迎刃而解。
移动IP协议的基本思想是:将IP地址标志与寻址功能分开,用两个IP地址分别表示。用于标志移动主机的IP地址为本地代理地址,用于标志主机当前所在位置的IP地址为接管地址CoA(CareofAddress)。那么移动主机如何进行路由寻址,又用到了哪些路由技术?下面作具体分析。
运用协议要经常谈到几个通信实体:移动主机MH(MainHost)、本地网络HN(HomeNetwork)、外地网络FN(For?eignNetwork)、本地代理HA(HomeA?gent)、外地代理FA(ForeignAgent)及接管地址CoA(CareofAddress)。这里我们仅对接管地址CoA进行具体分析。
CoA地址的作用与获取
路由技术最基本的原理是移动主机(MH)登记到本地代理(HA),在本地代理(HA)与外地代理(FA)之间建立数据通道来实现数据包的路由功能。接管地址(CoA)是指移动主机漫游到外地网络(FN)后所获得的临时地址,为移动主机和本地网络(HN)通信提供了一个通道,它是通道的终点。因此正确获取接管地址(CoA)是要害的步骤。要获得接管地址通常有两种渠道:一是直接以外地代理(FA)的IP地址作为接管地址(CoA),移动主机利用它来登记,此时,FA就是通道的终点,负责接收数据包、解除封装、再发给移动主机。这种地址模式可以使多个移动主机共享一个CoA,使用率较高。二是临时分配给移动主机的IP地址。它是通过外部(如DHCP)获得的外地网络中的一个暂时地址。此时移动主机自身是通道终点,自行解除封装,取出数据包。在这种模式下,一个CoA仅能被一个移动主机使用,使用率较低。CoA是数据包路由的核心,但它是一种动态的地址,也就是说当移动主机更换网络时,CoA也就随即改变。
寻找移动代理
当移动主机进入网络时,必须找到一个移动代理以便获得最新的CoA。移动主机有两种寻找代理的方法:一是被动发现,移动主机等待移动代理周期性的广播代理通告报文。二是主动发现,移动主机广播一条请求代理的报文。两种方法中的任何一种都可使移动主机识别出代理,并获得CoA。但第二种方法只有在移动主机没有收到代理通告报文,并且无法获得CoA时才使用。
登记规程
有了CoA,移动主机必须向本地代理(HA)登记当前的CoA,以便HA能准确地转发数据包,登记规程在不同网络中有不同方式。一种是通过FA进行登记,移动主机向FA发送登记请求报文,FA处理请求报文,并转发至HA,HA处理登记请求,发送登记答复给FA,FA处理答复,并转发至移动主机;另一种是移动主机直接向HA请求登记,HA处理后向移动主机发送登记答复。
移动IP的工作过程
移动主机在不同子网间漫游,其数据包的通信过程如下:
(1)本地代理和外地代理不停地向网上发送代理广告(AgentAdvertise?ment)消息,以声明自己的存在。
(2)移动主机收到这些消息,确定自己是在本地网还是在外地网。
(3)假如移动主机发现自己仍在本地网,即收到的是本地代理发来的消息,则不启动移动功能。假如是从外地网络重新返回的,则向本地代理发出取消注册的消息,声明自己回到了本地网。
(4)当移动主机检测到它移动到外地网时,则获得接管地址(CoA)。
(5)然后移动主机向本地代理登记,表明自己已离开本地网,把所获得的接管地址通知本地代理。
(6)登记完毕后,所有发给移动主机的数据包被本地代理截获,经本地代理封装后,通过隧道发到外地网络的外地代理FA(第一种CoA地址)或移动主机自身(第二种CoA地址)。第一种情况下,外地代理再把数据包转发给移动主机。此时,数据包在不同子网间传送成功。
(7)移动主机发送数据到一般的IP主机时,按正常的IP寻址方法发送,不必通过本地代理。出现的问题
在上述工作过程中,有效地解决了移动主机在子网间漫游通信的问题。但是,却在路由上存在着问题。当移动主机发送数据时,不管它是在本地网络还是在外地网络,它始终保留了它的本地网络地址,当它发送数据包时,可以用通常的IP协议发送。反之,当一般IP主机给移动主机发送数据包时,首先到达移动主机的本地代理(HA),HA再根据收到的移动主机当前的接管地址CoA(假定为第一种地址),将数据包发往外地网络,由外地代理最终将数据包发给移动主机,这就出现了路由的“三角问题”。最差的情况是当发送数据包的一般IP主机靠近移动主机所在的外地网络或移动主机已经漫游到发送主机所在的网络时,发送的数据包却仍要先到达移动主机的本地代理,再由本地代理发到外地代理,最后到达移动主机,这不仅增大了传输延迟,同时对一些延迟敏感的业务如音频、视频等造成极大的损害。其次,数据包在网络中运行时间过长,浪费了网络资源,增加了网络负担。优化路由
为了减小传输延迟、减轻网络负担,必须对路由进行优化。一种最具代表意义的思想是隧道技术。隧道技术本身是指移动主机登记后,发送主机发送数据包到本地网络,本地代理截获数据包后,将它作为净负荷封装在转发的数据包中,生成一个新的数据包,该数据包数据部分是净负荷,报头中,以本地代理的IP地址作为源地址,以接管地址CoA作为目的地址,完成封装,然后按常规的IP路由方式,通过隧道转发到处于隧道终点的接管地址处,解除隧道封装后,取出原始数据包,再发送至移动主机。当接管地址是临时分配的驻留地址时,移动主机自己是隧道终点,它自身解除隧道封装,取出原始的数据包。
在路由优化中假如将隧道技术应用到发送数据包的一般IP主机上,执行各种工作,那么就会省去本地代理的转发,解决了“三角形”问题。也就是说当本地代理收到IP主机发往移动主机的数据后,向IP主机发出绑定请求,通知IP主机关于移动主机的捆绑信息(包括本地代理地址、CoA和注册生存时间),随后,IP主机对数据包进行封装,并建立与CoA处的隧道,数据包在隧道中透明传输,到达隧道终点后,解除封装,传给移动主机。假如移动主机又移动了,新的CoA实体会把更新的捆绑信息传给老的CoA实体,而且本地代理也随后得到更新的捆绑信息,它再通知IP主机新的捆绑信息,之后传送的数据包直接由IP主机发往新的CoA处。这样保证了数据包的网间通信,同时,减少了转发环节,消除了路由三角形,实现了路由的优化。
这一思想是优化路由的基本思想,但假如在实践中应用会碰到许多问题,如对IP主机要求条件太高,它必须具有能够获取捆绑信息、能够封装数据及能够建立隧道的能力,对现有的互联网用户而言,实现难度太大。另外,外地代理的平滑切换、网络安全等也都是亟待解决的问题。
另一种路由优化的思想是引入一个新的通信代理CA(CommunicateAgent),专门负责治理IP主机与移动主机通信时的寻址、隧道建立、数据传输等工作。它大大缩短了传输路径,减小了传输延迟,减轻了IP主机的负担,实现起来简单,对现有的互联网用户而言,不必进行太大的改动,就可以实现移动IP的功能,应用前景广阔。

网友评论
评论
发 布

更多软件教程
  • 软件教程推荐
更多+
Greenfoot设置中文的方法

Greenfoot设置中文的方法

Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...

07-05

Egret UI Editor修改快捷键的方法

Egret UI Editor修改快捷键的方法

Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...

07-05

KittenCode新建项目的方法

KittenCode新建项目的方法

KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...

07-05

Thonny设置中文的方法

Thonny设置中文的方法

Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...

07-05

最新软件下载