IPv6与IPv4隧道技术的编程模拟_第1页
IPv6与IPv4隧道技术的编程模拟_第2页
IPv6与IPv4隧道技术的编程模拟_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

IPv6与IPv4隧道技术的编程模拟

摘要IPv6协议是因特网的新一代通信协议,如何实现从IPv4到IPv6的平滑过渡是IPv6发展目前急需解决的关键问题。本文从实际情况出发,对隧道模式提供一种可行的模拟方案,为即将到来的网络过渡[1]时期采用隧道模式提供一定的技术探索。

关键词IPv6IPv4IPv4/IPv6双栈隧道1引言

一旦IPv6投入应用,看起来网络中所有的主机都必须升级。但是,实际情况并非如此,研究向IPv6过渡的人士正在致力于IPv6的设计及IPv6所支持的协议和机制,以实现得体的渐进的升级。如果能有条理地、明智地进行现有网络向IPv6的升级,升级的影响可能较小。在RFC1933(主机和路由器向IPv6过渡的机制)、RFC2185(向IPv6过渡的选路问题)、RFC2071(网络重新编号概观:为何需要及需要什么)以及RFC2072(路由器重新编号指导)等文档中都涉及有关向IPv6过渡的讨论。

向IPv6过渡必定是渐进的,预计IPv4和IPv6将长期共存,目前大多数过渡策略都依靠隧道的实现方法,即至少在最初,将来自IPv6岛的IPv6包封装在IPv4包中,然后在广泛分布的IPv4海洋中传送。经过过渡的早期阶段,越来越多的IP网络和设备将支持IPv6。但即使在过渡的后期阶段,IPv6封装仍将提供跨越只支持IPv4的骨干网和其他坚持使用IPv4的网络的连接能力[2-3]。

本文在使用简单的实验室环境下实现隧道模式提供一种可行的模拟方案,为即将到来的网络过渡时期采用隧道模式提供一定的技术探索。2技术基础

(1)IPv6地址设置

IPv6地址长度为128位。RFC2373中不仅解释了这些地址的表现方式,同时还介绍了不同的地址类型及其结构。IPv6地址有三类、单播、组播和泛播地址。单播和组播地址与IPv4的地址非常类似;但IPv6中不再支持IPv4中的广播地址,而增加了一个泛播地址。

一个完整的IPv6地址分为两个部分:子网前缀和接口标识符,因此人们期待一个IP节点地址可以按照类似CIDR地址的方式被表示为一个携带额外数值的地址,其中指出了地址中有多少位是掩码。即,IPv6节点地址中指出了前缀长度,该长度与IPv6地址间以斜杠区分,例如:1030:0:0:0:C9B4:FF12:48AA:1A2B/60,这个地址中用于选路的前缀长度为60位。

IPv6寻址模型与IPv4很相似。每个单播地址标识一个单独的网络接口。IP地址被指定给网络接口而不是节点,因此一个拥有多个网络接口的节点可以具备多个IPv6地址,其中任何一个IPv6地址都可以代表该节点。尽管一个网络接口能与多个单播地址相关联,但一个单播地址只能与一个网络接口相关联。每个网络接口必须至少具备一个单播地址。

(2)隧道机制

隧道技术是一种通过互联网络基础设施在网络之间传递数据的方式。使用隧道传递的数据可以是不同协议的数据帧或包,隧道协议将这些其它协议的数据帧或包重新封装在新的包头中发送,被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由,一旦到达网络终点,数据将被解包并转发到最终目的地。整个传递过程中,被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。

简言之,隧道技术是指包括数据封装,传输和解包在内的全过程。3模拟序列设计

由于IP地址被指定给网络接口而不是节点,对于隧道机制的编程模拟可以使用通用接口的方式实现,即将隧道模拟为一个虚拟的接口,实际使用中绑定到实际的物理接口中,其接口属性同普通的接口类似。该种方法比较灵活,能够以一种形式实现不同方式的隧道[4]。

(1)确定隧道模式

各种类型的隧道[5]都可以表示为图1所示的结构,其中协议B作为协议A的虚拟下层协议,源包源节点和隧道入口节点可以重合,源包目的节点和隧道出口节点可以重合。由于图1所示结构的典型性,模拟的隧道结构模式就在图1的基础上设计。(2)确定模拟方法

图1所示结构实现比较复杂,因此要考虑用适当的模拟方法进行简化。实际模拟中只模拟了网络节点的一般隧道技术,包括隧道包的封装和解封装,对隧道包在传输过程中的各种处理技术不做模拟。同时加以一定扩展,以一台主机模拟多台,这样避免了模拟过程中的同步处理问题,也简化了模拟系统的实现。

(3)模拟程序序列设计IPv6隧道模拟过程的形式化描述如下:

[SimulateProcedure]//模拟隧道序列

Char*Echo_IPv6_Local()

//发送IPv6连接请求

Char*Reply_IPv6_Local()//回复IPv6连接请求

Char*Send_IPv6_Data()

//发送IPv6数据报文

IntIPv6_Over_IPv4()

//将IPv6数据包进行IPv4封装

IntIPv4_InTo_IPv6()

//从IPv4数据包中解封出IPv6数据包

Char*Accept_IPv6_Data()//接收IPv6数据报文

Char*Simu_Exit()//模拟结束

[/Procedure]

通过VC6编程实现的模拟序列正确的实现了以上模拟过程,在实验室(Windows2003双栈主机+纯IPv4路由)环境下对隧道的数据封装,传输和解包在内的全过程进行了模拟。4结束语

在IPv6成为主流协议之前,首先使用IPv6协议栈的网络希望能与当前仍被IPv4支撑着的Internet进行正常通信,

温馨提示

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

评论

0/150

提交评论