毕业论文-移动IPv6的实验环境的设计与实现_第1页
毕业论文-移动IPv6的实验环境的设计与实现_第2页
毕业论文-移动IPv6的实验环境的设计与实现_第3页
毕业论文-移动IPv6的实验环境的设计与实现_第4页
毕业论文-移动IPv6的实验环境的设计与实现_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE[键入文字]PAGEIII毕业设计(论文)题目:移动IPv6的实验环境的设计与实现T院别:软件学院T专业:计算机科学与技术T姓名:T学号:T指导教师:T日期:T摘要自从二十世纪Internet出现以来,它成为我们生活中的一部分。当时主要采用固定接入方式使用Internet,这在很多方面限制了Internet的进一步应用。信息化时代的今天,我们需要移动Internet接入方式去实现随时随地连接到Internet的目标。但其IP地址即将枯竭而极大地阻止了Internet网络的发展。由此引入移动IPv6正是在原来IP协议基础上为了支持节点移动而提出的解决方案。随着移动IPv6协议的发展和应用,最初的移动IPv4已经暴露出先天存在的不足。移动IPv6协议正在成为IP协议不可缺少的部分,而且比移动IPv4有很多显著改进。新的IPv6是一种很好的解决方案。IPv6在设计时充分考虑了移动需求,并将移动IPv6作为IPv6的基本组成部分。因此IPv6在移动环境下可更好地支持端到端以及多媒体业务。随着IPv6标准的成熟,移动网络中逐渐引入IPv6也成为通信网络的重要方向。本文主要介绍移动IPv6的基本概念以及分析Linux下的MIPv6实验环境的设计与实现。索引关键词:移动IPv6,移动节点,Linux下的MIPv6实现

ABSTRACTSincethe20thcenturytheadventoftheInternet,

itis

partof

ourlives.

Themain

useof

fixed

access

Internet,whichlimitsthe

furtherapplicationof

theInternet

inmanyways.

Today's

informationage,

we

needtomove

Internet

access

wayto

connecttothetarget

totheInternet

anytime,anywhere.

Becauseofits

imminent

exhaustionof

IPaddresses

and

significantlyimpede

the

developmentoftheInternet.Thus

theintroductionof

Mobile

IP

isthe

IP

protocol

intheoriginal

basis

inordertosupport

themobile

node

whilethe

proposedsolutions.

Withthedevelopment

andapplicationof

theMobileIPprotocol,thefirst

two

havebeenexposed

to

mobile

IPv4congenitaldeficiency

exists.

MobileIPv6

isbecoming

anindispensablepartof

theIPprotocol,

buttherearemany

significant

improvementsover

mobile

IPv4.ThenewIPv6isagoodsolution.IPv6isdesignedtotakefullaccountoftheneedsofmobileandmobileIPv6asanessentialpartofIPv6,soIPv6canbettersupportendandmultimediaservicesinamobileenvironment.WithIPv6standardsmature,thegradualintroductionofIPv6inmobilenetworkshasbecomeanimportantdirectionofthecommunicationnetwork.ThispaperdescribesthebasicconceptofmobileIPv6andthedesignandimplementationofMIPv6experimentalenvironmentunderLinuxAnalysis。Keywords:MobileIPv6,MobileNode,IPv6ImplementationsUnderLinux

目录TOC\o"1-2"\h\u第一章绪论 11.1研究背景及意义 11.2IPv6的产生原因与及特点 21.3IP6发展的大事记 21.4移动IPv6的概念 3第二章移动IPv6基本介绍 42.1移动IPv6功能实体 42.2通信对端节点(CN) 42.3移动IPv6切换机制 5第三章方案设计 63.1课题设计目标 63.2NetfilterFramework简介 83.3在Netfilter框架上实现移动IPv6协议 11第四章数据结构 154.1HomeAgentList 154.2本地代理的实现细节 16第五章实验环境及测试 195.1网络环境的组成 195.2主机设备配置介绍 205.3测试结果与分析 215.4实验环境实现遇到的问题及分析方法 26参考文献 28后记 29PAGE29第一章绪论1.1研究背景及意义IPv4标准是于二十世纪七十年代指定的,当时IPv4标准的设计者原本只是将其用于异种计算机的互联应用,然而并没有想到如今IP网络达到爆炸性的发展趋势,而今天的发展速度快和规模大,它和通信技术相融并成为通信产业的一部分,在九十年代早期,互联网专家已预料到这个巨大的问题,因此开展IPv6的研究的定制工作非常必要必要性很大,并预言IPv6将会在九十年代进入商用,但由于版本的升级换代涉及硬件、软件、兼容性、应用、成本、产品、需求等问题,更由于IETF(TheInternetEngineeringTaskForce,互联网工程任务组) 也制定了包括CIDR(ClasslessInter-DomainRouting,无类域间路由)和VLSM(VariableLengthSubnetworkMask,变长子网掩码)等在内的提高IPv4使用效率问题需要解决。随着新业务的发展,其已经满足不了社会需求。IPv6是最新版本的网络层协议,他的设计被研究者领域认为是对IPv4的一个革命性的进步。因为IPv4近20年来的空前成功,已证明了IPv4协议设计的基本思想和构架是值得肯定的。因此,IPv6并不是完全颠覆了IPv4的大部分的思路和结构,再从头另起炉灶设计健全一个全新的网络协议标准,而是首先继承了IPv4协议运行的主要优点,又根据IPv4近二十年来运营得到的经验进行了大量的功能的更新和修改。而且针对IP协议的变化必将对TCP/IP协议栈的许多协议产生影响导致传统的标准要加以修改。移动IPv6仍有家乡代理的移动结点,但没有了家乡地址、家乡链路、转交地址、外地代理以及外地链路等概念术语。移动IPv4中只采用了隧道技术,移动IPv6中同时不但采用了隧道技术而且还有信源技术来向连接在外地链路上的移动结点传送数据报文[1]。当前Internet上成千上万的主机、路由器等网络设备都运行着IPv4协议。这就决定了IPv4的网络向IPv6演进将是一个浩大而且复杂的工程,IPv4和IPv6网络将在很长时间内共存,如何从IPv4平滑地过渡到IPv6是一个非常复杂的问题。移动互联网是计算机技术和通信技术融合的又一次升级,是当前通信技术研究的热点,也是继互联网之后最大、最具潜力的产业市场,必将对中国的国民经济和社会发展带来影响。正是在这一背景下实验环境的设计与实现显得十分必要。在当前互联网+的时代,MIPv6是移动设备发展的瓶颈,解决这问题显得十分必要,对于MIPv6的实验环境的设计与实现成为首要着手点。IPv6和IPv4比较,它彻底解决了IP地址空间耗尽和路由表爆炸等问题,而且为IP协议加入了新的内容,使支持安全、主机移动性以及多媒体成为IP协议的有机组成部分。协议的设计使路由器处理报文更加简便;协议的扩展性也更好。目前,IPv6的实验网6Bnoe已经遍布全球,IP协议从IPv4过渡到IPv6已经是历史必然。1.2IPv6的产生原因与及特点自进入20世纪,IP地址面临枯竭问题,究其原因,主要由于部分地址不能分派使用、资源分配不合理、IP浪费惊人、NAT技术存在缺陷、路由表急剧膨胀、路由安全机制得不到保障、服务质量得不到保障。面临这一系列问题,IPv6诞生了,它与IPv4相比具有如下特点,巨大的地址空间,在可预估的时间内,不会出现IP地址不够用的现象。全新的报文结构、简化报头结构和灵活的报头扩展、简化路由表、层次化的地址结构,即插即用的联网功能、网络层的认证与加密、服务质量得到保证、对通信的支持、全新邻居发现协议[2]1.3IP6发展的大事记1993年,IETF成立了IPng工作小组,开启对IPv6的研究工作。1995年IPng完成了IPv6的协议文本。1996年IPng成立全球IPv6实验床:6BONE。1998年,启动面向使用的IPv6教育科研网:6REN。1999年,IPv6完成IETF要求的协议测试和审定工作。2000年,成立IPv6论坛,开始分配IP地址以及IPv6协议文本成为标准草案。2001年,大部分操作系统开始支持IPv6,如Linux、Silaris、WindowsXP等。2003年,IPv6协议完成,下一代互联网概念形成;各主流厂家开始推出IPv6网络产品。2004年,新一代网络开始实施。2005年,美国GENI成立,西方新一代网络概念出现。2005年全球IPv6测试中心参与中国网通CNGI和中国电信CN2网络测试验证。2006年,美国FIND欧盟FIG计划成立。2007年,ISO提出未来网络计划、未来网络概念诞生。2007年全球IPv6测试中心和SIPForum合作在北京成功举办了SIPIT’21大型国际测试活动。2008年,欧盟开始实施未来网络计划。2008年全球IPv6测试中心共计服务国内外著名的通信设备厂商有50家,共获得LogoID个数超过100。2009年,全球IPv6测试中心发布全球首个IPv6服务测试认证-IPv6EnabledLogo认证,这也是首次由中国研发团队主导制定的服务认证。2010年,完成来自全球700多web应用认证,240多个产品系列IPv6测试认证。2011年,已对1500多家企业单位提供测试或认证服务:为国家下一代互联网建设商用提供参考指标。2012年12月28日,北京市发展和改革委员正式同意中心牵头组建下一代互联网关键技术和评测北京市工程研究中心。2012年,中关村开放实验室产学研项目交接研讨会:促进及推动实验室与企业间的合作,拉动产业项目发展。[3]1.4移动IPv6的概念移动IPv6是移动通信和互联网协议IPv6组成的,他要实现用户终端(例如iPhone、iPad、Mac等终端设备)在移动或可移动状态下,可以在不同的地点接入互联网,其中包括通过移动通信网接入,也包括通过固定网或局域网接入,随时可以共享互联网的信息资源。简单的理解为一个IOS工程师的笔记本电脑,可能在办公室中接入公司的网络,也可能在会议室中接入网络,甚至可能在旅途中或教室中接入无线网,所以需要一种技术来解决主机漫游问题。

第二章移动IPv6基本介绍2.1移动IPv6功能实体1)移动节点(MobileNode)MN指从一个网络或者子网链路上切换到另一个网络或者子网链路的节点;同时还通过其家庭地址为可达,节点可以是移动的或静止的。2)家乡代理(HomeAgent)HA在移动节点的归属链路的路由器与移动节点上已经注册其当前的转交地址。当移动节点离开或远离家乡,家乡代理(HomeAgent)上家截取数据包并加链接目的地为移动节点的归属地址,封装它们,并把它们通过隧道向所述移动节点的注册的转交地址。维持移动节点当前位置信息[3]。3)通信对端节点(CorrespondentNode)CN指与移动节点通信的对等实体,可简称为通信对端。它可以是移动的节点也可以是位置固定的节点,通信对端利用SHISA在内核中维护绑定缓存数据库,跟踪MN的当前位置,通过在目的地为MN的报文中插入RT2选项,实现路由优化。CN的主要功能包括:1绑定缓存的管理;2广播事件触发模式:对报文中目的地址选项中未知的家乡地址和未知的MH类型值建立触发模式,广播事件处理请求[4]。2.2通信对端节点(CN)指与移动节点通信的对等实体,可简称为通信对端(CN)。它可以是移动的节点也可以是位置固定的节点2.2.1为了解决移动性问题,移动节点MN有两类地址(1)家乡地址:指移动节点在家乡链路上分配到的地址,作为通信连接的标识;这是移动节点的通信伙伴们所知道的移动节点的IP地址。当移动节点在因特网上移动时,它的家乡地址是不变的。移动节点家乡地址的网络前缀与在它的家乡链路上的节点的网络前缀是一样的。移动节点的家乡地址、家乡链路和家乡代理是密切相关的。(2)转交地址:指移动节点连接在外地链路上时的地址,这个地址的子网前缀和外地链路子网前缀相同。移动节点将这个地址暂时作为从移动节点的家乡代理发出的隧道的出口。当移动节点在因特网上移动时,转交地址是会改变的。转交地址有两类:外地代理转交地址是有一个端口在移动节点当前链路上的那台外地代理的地址,而配置转交地址是暂时分配给移动节点某一个端口的地址。移动节点的转交地址、外地链路和外地代理是密切相关的[5]。2.3移动IPv6切换机制在家乡子网(HomeNetwork)中,家乡代理为了表明移动节点的存在,它使用传统的路由机制和通信对端交换IP数据包,周期性发送路由公告。只要MN周期性地接收到家乡代理的路由公告,就表明移动节点在家乡网络中。因此可以认为移动节点连接在家乡链路上,它的行为就看做固定节点。图2-3(移动IPv6切换机制)

第三章方案设计3.1课题设计目标3.1.1实现功能及硬件平台实现在一个单纯的MIPv6的环境下,设计并可以移动IPv6协议软件,通过它可以使计算机设备不但可以在物理空间自由移动(具体实现可以模拟为将它的网线连接到另外一个子网),并且还可以不用手工配置任何网络信息(比如IP地址、网络号、路由器等)就能够继续通信,并且还能保持在正在进行的网络连接的时候不被中断。一台作为本地网(HomeSubnet)的本地移动代理(HomeAgent),以及一台作为移动主机,还有一台是与移动主机通信的固定主机;三个IPv6子网一个是移动主机所属的本地网(HomeSubnet),一台是移动主机漫游到的外网(OuterSubnet),以及一个是固定主机所在的固定网络。一台IPv6路由器用来连接三个网络,可以用本地移动代理主机和固定主机兼做路由器。这里最小的试验环境为三台计算机和部分网线、集线器。3.1.2软件平台操作系统和IPv6协议栈在此选用Linux操作系统作为开发环境(具体选用产品为RedhatLinux7.1,内核版本为2.4.2-2)。主要原因:1、目前Linux在操作系统内核中支持IPv6协议栈;2、Linux操作系统是具有大量的网络资源以及完全开放的源代码可供参考3、内核代码TCP/IPv6协议栈一部分结构清晰,便于理解。支持IPv6网络应用软件有RedhatLinux7.1操作系统中已经包含了ping6的命令,可以测试各个主机间IPv6的连通性。另外在Linux系统中有支持IPv6协议的TELNET软件和FTP软件,这两个软件可以保持长时间的TCP连接,有利于测试设备的移动性优良。在最新版本的Apacheweb服务器(Apache2.0.32Beta)也支持IPv6,能测试在移动环境中对HTTP协议和多媒体业务的支持。3.1.3测试软件TCPDUMP:该软件可以在Linux上运行编译,可以侦听以太网上的数据包,而且支持IP6协议的分析。Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。3.1.4通信平台移动IPv6的协议是一个网络层的协议,故从理论上讲,能在网络层之上的协议都可以做到透明的支持。由于开发环境的要求以及项目时间的限制,我们主要做到对ICMP、UDP、TCP等协议在移动IPv6环境下的测试与分析。3.1.5协议要求移动IP在1996年6月由IESG(InternetEngineeringSteeringGroup,美国国防部高级研究计划局)通过,并在1996年11月公布为推荐标准。针对移动IPv6,IETF的移动IP工作组(IPRoutingforWireless/MobileHosts)制订了如下标准:RFC2002定义了移动IP协议;RFC2003、2004和1701定义了在移动IP中用到的三种隧道技术;RFC2005叙述了移动IP的应用;RFC3775是第一版,后来又发布了RFC6275,这都是MIPv6的协议标准[6]。3.1.6解决案例按照设计目标,在Linux系统上实现移动IPv6协议必须要满足几个条件:1)该解决方案在网络层按照相关标准实现移动IPv6协议的细节。2)该解决方案需要对网络层的改动,要求是更改的时候也需要保证对上层协议的透明。相当于对于UDP、TCP以及应用程序,需要做到不用修改就能在移动IPv6协议工作。3)该解决方案需具备可行性、可扩展性以及易用性。4)该解决方案也具兼容性,不支持移动IPv6的主机,也是适用的[7]。综合以上几点要求,经过我的进一步研究发现,要实现移动IPv6协议可以有两种思路:常规的思路:常规思路无疑是对Linux操作系统内核源代码的网络部分进行改造,添加相应移动IPv6的代码。此方法的优点是,在内核代码程序的基础上增加移动IPv6的功能,使代码执行效率高。但其缺点是代码结构不明朗,开发难度较大,测试困难,维护升级也很繁杂。因此,其方法针对适合于Linux内核代码维护人员合适,不适合本课题的研究实现。充分考虑分析到Linux操作系统的特点,充分利用Linux系统具备的LoadableKernelModule和NetfilterFramework内核板块编程方式,来提出新的解决思路,能做到对Linux系统原代码不做修改,即可实现移动IPv6协议。首先简要介绍LoadableKernelModule,以及NetfilterFramework内核模块编程方式,然后再提出较好的的解决思路。3.2NetfilterFramework简介Netfilter是PaulRussell研究的一个新型的框架,它能对特殊协议的数据包分析处理。在该框架上,他在Linux系统框架上构造了一个很精简、高效率易于扩展的包过滤系统IPtables,它攻克了以往ipfwadm和ipchains等两种包过滤系统的一些缺点,给构筑安全的防火墙和进一步开发高版本系统提供了支持。Netfilter和Berkeley套接字接口的协议数据包的处理框架是不同的。它的主要思想如下:Netfilter在每种协议的处理过程中新定了部分检查点(hook),IPv4定义了5个hook(在新版本的Linux内核里,Netfilter已经支持IPv6协议)。在每个检查点协议都要要用数据包和hook,用其作为参数来获取执行调用Netfilter框架;部分内核程序能注册监听每个协议的不同hook.这样,当某个数据包给传送到Netfilter框架后,它检查是否在程序中注册监听这种协议和hook。如果有这样的程序,那么每个程序即可按顺序获得针对数据包检查、放弃、允许通过或使Netfilter把该数据包存为用户空间创建的队列的权力;上面的队列的信息被收集起来发送到用户空间,由用户程序不同步的处理;能在数据包被丢掉之前,对它进行(chack)检查。如,对于IPv4(或IPv6)协议,这个功能可让模块对由路由代码丢掉的IP欺骗的数据包进行检查。3.2.1Netfilter体系结构Netfilter通俗的讲是在协议栈中一系列不同点上的hook(钩子),目前在Netfilter体系上,都建立了IPv4和IPv6协议栈。下图3-2.1说明Netfilter对IPv4包的处理过程:图3-2SEQ图3-3\*ARABIC1(Netfilter体系结构)图上边左边是数据包的进入:经过完整性检查(如:数据包没被截取,IP检查正确,不是混杂模式的接收等),然后数据报被传递给Netfilter的NF_IP_PRE_ROUTING(1)[8]。接着数据包进入路由选择代码。在此路由代码来判定它们,它们是要转发给另一接口还是要发送给本地进程,而且还要丢掉不能路由的数据包。如果数据包是需要发送给本地进程的,在被送到本地进程之前,Netfilter的NF_IP_LOCAL_INhook(2)将被调用。如果数据包是要转发到另一接口,则Netfilter的NF_IP_FORWARDhook(3)将被调用。要转发的数据包在被发送到传输线路之前,最后通过Netfilter的NF_IP_POST_ROUTINGhook(4)。由本地进程产生的数据包最后通过Netfilter的NF_IP_LOCAL_OUT(5)hook,发送到传输线路上。3.2.2内核编程实现一个较简单的内核模块,它最少需要两个函数。即cleanup_module()和init_module()。一般在init_module()完成初始化工作,例如内存分配(kmalloc);在cleanup_module()中完成回收工作。下面的例子表示了一个最简单的模块编程的代码:/*Thenecessaryheaderfiles*//*Standardinkernelmodules*/#include/*Wedoingkernelwork*/#include/*Specifically,amodule*//*DealwithCONFIG_MODVERSIONS*/#ifCONFIG_MODVERSIONS==1#defineMODVERSIONS//这两行应该修改为#ifdefMODVERSIONS#include#endif/*Initializethemodule*/intinit_module(){Printk("Hello,world-thisisthekernelspeaking");/*Ifwereturnanonzerovalue,itmeansthat*init_modulefailedandthekernelmodule*canbeloaded*/Return0;}/*Cleanup-undidwhateverinit_moduledid*/voidcleanup_module(){Printk("Shortisthelifeofakernelmodule");}[9]3.3在Netfilter框架上实现移动IPv6协议实现移动IPv6系统最关键的一点就是能够正确拦截并修改与移动IPv6相关的IP包,而对于其他正常的IP包不做任何改动。基于Netfilter软件的开放结构,对于发出去的IPv6包,我们利用Netfilter框架的NF_LOCAL_OUThook来拦截并判断是否属于移动IPv6。若否,则不做改动,将包发送出去;如是移动IPv6协议的包,则将它们递交到相应的移动IPv6处理模块处理后转发。同样,对于从网络中的IPv6包,我们做基本相同的操作,只不过包的流动方向相反。采用LKM(可加载内核模块程序,LoadableKernelModule)的编程方式实现对原来Linux核心不做任何改动。解决方案结构图3-3.1如下图3-3SEQ图3-3\*ARABIC1(本解决方案的系统结构图)3.4移动IPv6网络实验环境的搭建图3-4(网络实验环境的搭建图)根据课题开发要求,需要搭建一个移动IPv6网络的实验环境。该环境必须满足以下三点要求:有一台标准的IPv6路由器;有三个IPv6的网络,且三个网络之间可路由;有三台IPv6主机分别作本地代理(HA)、移动主机(MN)和对端节点(CN)3.4.1路由器配置图表以太网口1以太网口2以太网口3以太网口4作用网关/配置端口网关网关网关IPv4地址99IPv4网络掩码24IPv6地址无3ffe:1::2/643ffe:2::2/643ffe:3::2/64连接主机开发测试主机HA/MNMN*CN连接网络--本地网络外部网络1外部网络2图3-4SEQ图3-4\*ARABIC1(路由器配置图表)3.4.2主机配置图开发测试主机HAMNCNCPUAMD1.13GHzPII266MHzPII266MHzPII266MHZ内存(M)256128128128硬盘(G)40操作系统Win2000profRedhatLinux7.1RedhatLinux7.1RedhatLinux7.1协议栈IPv4IPv4/IPv6IPv4/IPv6IPv4/IPv6IPv4协议配置地址0掩码24网关地址99IPv6协议地址无3ffe:1::2/643ffe:2::2/643ffe:3::2/64网关地址无3ffe:1::2/643ffe:2::2/643ffe:3::2/64主机配置图3-4.2注1:在HA,MN和CN上面配置IPv4地址主要是为了能够从开发测试主机上通过IPv4协议访问到它们(使用telnet,ftp,http等),便于程序的开发、调试与运行;注2:在HA,MN和CN上配置的IPv6地址是采用手工配置的,这些地址比较简单,主要是为了调试程序方便。在真实的使用环境中,IPv6主机都应该采用自动地址配置方式,此时地址的后64bit应该是采用各自MAC地址生成的EUI-64形式。

第四章数据结构4.1HomeAgentList应该是在每一个本地代理或者移动节点中都有一个这样的list,用来记录每一个本地代理的信息。但在我的设计中,被简化为只是移动节点保留这样一个表,且只有一个值。(即只考虑一个MN只有一个对应的HomeAgent的情况!)4.1.1各字段定义-Thelink_localIPaddressofarouteronthelink实际上就是HomeAgent的link_localaddress;-OneormoreglobalIPofthehomeagent实际上是HomeAgent的globalIPaddress;-Theremaininglifetimeofthishomeagentlistentry.该homeagent的lifetime,应该由路由器宣告来更新;-Thepreferenceforthehomeagent.该HomeAgent的优先级4.1.2设计的结构structHomeAgentList{structin6_addrHomeAgent;//本地代理的全球可路由地址}4.2本地代理的实现细节当移动节点从本地网络漫游到外部网络时,通过移动发现过程得知自己已经不在本地网络,就会向本地代理发送BindingUpdateOption包。这个过程叫做绑定更新,最主要的目的就是告诉本地代理自己目前的转交地址。当移动节点重新回到本地网络时,同样需要发送BUO包给本地代理,解除以前登记的转交地址。注册与解除注册发送的BUO的包结构类似,唯一不同的是将lifetime域设置为0或者将COA域和Haddr设置为相同则表示解除注册,其他的皆表示注册地址。BUO包的合法性的处理流程(下图)。图4-2(BUO包的合法性的处理流程)对于本地代理来说,当收到BUO的包后,主要做以下几个工作:首先,检查BUO包的合法性;然后根据BUO中的信息建立或者更新自己的BindingCache,最后根据需要发送绑定确认消息(BAO包)。

4-2-1在检查合法后的处理流程图4-2-1(在检查合法后的处理流程)4.2.2把包tunnel给移动节点本地代理在做了邻居发现代理的工作后,就能收到发给移动节点的包。本地代理将这些包作为载荷,放入一个新的IPv6包中,发送到移动节点当前的转交地址。这种方式是IPv6_in_IPv6tunnel的方式。下图表示了一个IPv6_in_IPv6tunnel包的结构新的IPv6包头原来发给移动节点的IPv6包(新的IPv6包头中,源地址为本地代理的地址,目的地址为移动节点当前的转交地址)注意:本地代理对于移动节点来说是一个对端节点,所以除了tunnel的包之外,别的包都需要通过Routingheader来路由给移动节点。图4-2-2(本地代理操作的总流程图)显示了本地代理操作的总流程图,从该图中可以看出本地代理软件模与上层应用以及NetfilterFramework之间的关系

第五章实验环境及测试5.1网络环境的组成图图5-1(网络环境的组成图)上图是我们地区网络中心的IPv6实验和演示环境。这个IPv6实验网络的核心部分是支持IPv6的NokiaIP650路由器,通过它到CERNET的IPv6TestBed有一条光缆的纯IPv6连接,到6Bone有一条tunnel连接。其中红色部分是移动IPv6环境的主要组成[10]。路由器IP650各个接口的配置已经标注在图上,可以看到从接口s1p2和s1p3出去分别接100M的HubA和HubB,形成两个子网,其中HubA所在的子网的IPv4地址为4/28,IPv6地址为3ffe:81b1:400:2::/64,HubB所在的子网的IPv4地址为0/28,IPv6地址为3ffe:81b1:400:3::/645.2主机设备配置介绍下图是测试环境中分别作为移动节点MN和本地代理HA的两台主机的配置情况:MNHACPUPII266MHzPII266MHz内存(M)128128硬盘(G)4.34.3操作系统RedhatLinux7.1RedhatLinux7.1协议栈IPv4/IPv6IPv4/IPv6IPv4协议配置地址202.115.1321.898掩码4040网关地址11IPv6协议配置地址2001:DA8:6000:2::62001:DA8:6000:2::5网络前缀6464网管地址2001:DA8:6000:2::1/642001:DA8:6000:2::1/645.3测试结果与分析测试项目对ICMPv6协议支持的测试测试目的验证移动节点在移动过程中和对端节点之间网络层的连通性测试方法1)在移动节点主机上使用ping6–t命令,每隔一秒向对端节点发起ICMPv6请求,并接受相应回复。在此期间做网线的插拔使移动节点本地不连通而漫游到外部网络,然后再次漫游回来到home。2)在对端节点主机上使用ping6–t命令,每隔一秒向移动节点发起ICMPv6请求,并接受相应回复。在此期间做网线的插拔操作使移动节点首先漫游到外部网络,然后再次漫游内部网络。测试结果在网线拔插期间,收到RequestTimeout。恢复时间较短,粗略测量只需要3秒左右网络即恢复正常。漫游成功后,丢包率为零。结果分析该结果验证了我们的系统对ICMPv6协议的支持,更重要的是验证了系统在网络层工作正常。网络的恢复时间较短,主要是因为ICMPv6协议是无状态的,网络层的暂时中断不会导致任何延时或者重传。测试项目对Telnet协议(TCP协议)的支持测试目的验证移动节点在移动过程中和对端节点之间的Telnet应用连接不会被中断。验证系统对Telnet协议这种数据量小、时延大的应用的支持的可靠性测试方法1)在移动节点主机上使用telnet6命令,登陆到对端主机的控制台;2)通过网线的插拔使移动节点漫游到外部网络,观察控制台是否正常;3)然后是移动节点再次漫游回家,观察控制台是否正常。测试结果在网线拔插期间,在控制台上键入命令以及回显都非常正常。主观上感觉不到网络有时延。结果分析该结果验证了我们的系统对Telnet协议的支持,同时也验证了系统在TCP层工作正常。

测试项目对FTP协议(TCP协议)的支持测试目的验证移动节点在移动过程中和对端节点之间的FTP应用连接不会被中断。验证我们的系统对传输大数据量的应用的支持。测试方法在移动节点主机上使用ftp6命令,连接到对端主机的FTPv6服务器上,然后选择下载一个150M的gZip文件;在下载的过程中,不断通过网线的插拔使移动节点漫游到外部网络然后漫游回家,重复该过程直到文件下载完毕;3)对gZip文件解压缩。测试结果文件下载正常,未出现程序连接中断;下载后文件解压正常;网络平均恢复时间约为5秒;下载速率平均达到900Kb/s(10M网卡)。结果分析该结果验证了我们的系统对FTP协议的支持,同时也验证了系统在TCP层传输大数据量时工作正常;文件解压正常说明传输150M的数据量未出现任何误码;网络恢复时间相对较长,分析原因是应为TCP层的重传机制导致。TCP在重传一个IP包前采用了一定的时延算法,使网络恢复变慢;下载速度900Kb/s已接近10M网卡的极限,说明我们系统的效率很高。测试项目对HTTP协议以及多媒体流的支持测试目的验证移动节点在移动过程中和对端节点之间的HTTP应用连接不会被中断。验证我们的系统对实时性要求很高的多媒体应用的支持。测试方法1)在移动节点主机安装支持IPv6的Web服务器,产生几个简单的互相连接的页面;连接到一个DVD文件test.vob;2)通过WindowsXP(配置好IPv6协议栈)的IE6.0访问移动节点上的Web服务器。在此过程中不断通过网线的插拔使移动节点漫游到外部网络然后漫游回家;3)点击test.vob的连接并播放DVD,在此过程中不断通过网线的插拔使移动节点漫游到外部网络然后漫游回家,重复该过程数次。测试结果浏览Web页面正常,未出现程序连接中断;播放DVD画面和声音流畅,未出现马赛克;结果分析该结果验证了我们的系统对HTTP协议的支持,同时也验证了系统在TCP层传输大量的实时数据时也能工作正常;DVD画面声音流畅是因为播放器有一点时间的Buffer,这样在网络恢复阶段可以正常播放。如果完全取消Buffer,则播放在网络恢复期间会暂停4-5秒,但是连接仍然不会中断。

测试项目对UDP协议的支持测试目的验证移动节点在移动过程中和对端节点之间的UDP工作正常。测试方法1)在移动节点主机上运行的自编程序sendudp向对端节点连续发送1000UDP包;2)在对端节点使用Tcpdump程序统计接收到的UDP包。在此过程中不断通过网线的插拔使移动节点漫游到外部网络然后漫游回家,重复该过程直到发送完毕。测试结果与ICMPv6的测试结果类似。在网线拔插期间,收不到UDP包。恢复时间较短,粗略测量只需要3秒左右网络即恢复正常。漫游成功后,UDP丢包率为零;结果分析该结果验证了我们的系统对UDP协议的支持。因为UDP协议是无状态的,网络层的暂时中断不会导致任何延时或者重传,所以恢复时间比较理想。5.4实验环境实现遇到的问题及分析方法5.4.1如何实现移动检测提出问题:当移动节点从本地网络移动出来时,需要有一种检测机制使它能够迅速地发现自己当下不在本地网络了,从而向本地代理传发绑定更新消息。同样,但移动节点从外面又进入本地网络后,需要迅速检测出自己已回来,然后通知本地代理。那么问题是采用什么判断自己是否移动?如何检测到这种移动?分析问题:移动节点需要一种检测机制来判断自己是否移动。在我的设计中,移动节点采用路由器宣告消息(RouterAdvertisement)来判断移动。工作原理如下:移动节点每时刻组播一次路由器请求消息(RouterSolicitation),这将引起网络内的路由器时刻钟回复一次路由器宣告。路由器宣告消息中存有路由器的MAC地址和本网络的网络前缀(NetworkPrefix)。移动节点可以不断检查该MAC地址和网络前缀就可以知道自己是否移动,是否在本地网络。

5.4.2如何让移动节点正确发送IPv6包提出问题:移动节点移动到外地网络时与在本地网络时传发IPv6包是不一样的。但是对于上层的程序来说,不知道这个区别,仍然按照移动节点在本地网络上的情况来生处理IPv6包,并让底层的软件将其正确发送出去。这就会产生问题,因为移动漫游时所在的网络前缀和缺省网关都发生了变

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论