一种IPv6穿越CDMA网络方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种IPv6穿越CDMA网络方法

一种IPv6穿越CDMA网络的方法   摘要:为了使IPv6客户端能够通过CDMA无线接入方式访问远程的IPv6服务器,介绍了已有的隧道技术并分析其不足,如不能适用于CDMA网络,提出并实现了一种基于NetFilter框架、Libnet和Libipq使得IPv6可以穿越CDMA网络的方法。实际应用表明,运用这种方法,IPv6主机可以有效地通过CDMA方式接入网络,并访问远程的IPv6服务器。   关键词: IPv4; IPv6; 码分多址; 无线接入; 隧道   中图分类号:TP302文献标志码:A   文章编号:1001-3695(2008)04-1199-02      随着IPv6网络和CDMA无线上网方式的普及,出现了将两者结合使用的需求。这两种新兴技术的结合将会有非常广阔的应用前景,如汽车的远程故障诊断、移动终端的视频会议等。但是目前的CDMA网络并不支持IPv6协议,造成IPv6客户无法穿越CDMA网络访问互联网中的IPv6服务器,严重制约了IPv6应用在CDMA网络中的发展。针对隧道的各种实现技术,国内外都做了大量工作[1~3],但多数均无法穿越NAT。??      1常用的隧道技术??      目前在IPv4网络中部署IPv6网络的基本技术主要有三种,即双协议栈(RFC 4213[4])、隧道技术(RFC 4213)和NAT-PT(RFC 2766[5])。由于目前CDMA网络并不支持IPv6并且人们要实现的是IPv6客户端访问远程IPv6服务器,这相当于在IPv4的“海洋”中实现IPv6“小岛”的互通。鉴于这种情况,只可能使用隧道技术。目前在实践中常用的隧道技术有以下几种:手工配置隧道、自动配置隧道、Tunnel Broker、6 over 4、6 to 4。由于在CDMA网络中经常使用NAT技术和存在基于状态的防火墙,使得上述几种隧道技术均在CDMA网络中失效。鉴于以上原因,本文提出并实现了一种基于NetFilter框架、Libnet和Libipq使得IPv6可以穿越CDMA网络的方法。      2实现技术??      1)NetFilter[6]Linux 2.4内核中实现数据包过滤、处理和NAT等功能的框架。包含以下三部分: ??   a)为每种网络协议(IPv4、IPv6等)定义一套钩子函数(IPv4和IPv6各定义了五个钩子函数)。这些钩子函数在数据报流过协议栈的几个关键点被调用。在这几个点中,协议栈将把数据报及钩子函数标号作为参数调用NetFilter框架。??   b)内核的任何模块可以对每种协议的一个或多个钩子进行注册,实现挂接。这样当某个数据包被传递给NetFilter框架时,内核能检测是否有任何模块对该协议和钩子函数进行了注册。若注册了,则调用该模块注册时使用的回调函数。这样这些模块就有机会检查(可能还会修改)该数据包、丢弃该数据包及指示NetFilter将该数据包传入用户空间的队列。 ??   c)那些被传递到用户空间的数据包被异步地进行处理。一个用户进程能检查数据包、修改数据包,甚至可以重新将该数据包通过离开内核的同一个钩子处而被重新注入到内核中。??   一个数据包按照图1所示的过程通过NetFilter框架。??   从图中可以看到IPv6共有五个钩子函数,分别为NF_IP6_PRE_ROUTING、NF_IP6_LOCAL_IN、NF_IP6_FORWARD、NF_IP6_POST_ROUTING、NF_IP6_LOCAL_OUT。数据报从左边进入系统,进行IP校验以后,数据报经过第一个钩子函数NF_IP6_PRE_ROUTING[1]进行处理;然后就进入路由代码,其决定该数据包是需要转发还是发给本机。若该数据包是发送本机。则该数据经过钩子函数NF_IP6_LOCAL_IN[2]处理后传递给上层协议;若该数据包应该被转发则它被NF_IP6_FORWARD[3]处理。经过转发的数据报经过最后一个钩子函数NF_IP6_POST_ROUTING[4]处理后传输到网络上。本地产生的数据经过钩子函数NF_IP6_LOCAL_OUT [5]处理后进行路由选择处理;然后经过NF_IP6_POST_ROUTING[4]处理后发送到网络上。??   内核模块可以对一个或多个这样的钩子函数进行注册挂接,并且在数据报经过这些钩子函数时被调用,从而模块可以修改这些数据报,并向NetFilter返回如下值: ??   NF_ACCEPT――继续正常传输数据报;??   NF_DROP――丢弃该数据报,不再传输;??   NF_STOLEN――模块接管该数据报,不要继续传输该数据报;??   NF_QUEUE――对该数据报进行排队(通常用于将数据报给

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档