使用Java开发兼容 IPv6 的网络应用程序.docVIP

使用Java开发兼容 IPv6 的网络应用程序.doc

  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文档。上传文档
查看更多
使用Java开发兼容 IPv6 的网络应用程序

使用Java开发兼容 IPv6 的网络应用程序 IPv6 背景介绍   目前我们使用的是第二代互联网 IPv4 技术,它的最大问题是网络地址资源有限,从理论上讲,可以编址 1600 万个网络、40 亿台主机。但采用 A、B、C 三类编址方式后,可用的网络地址和主机地址的数目大打折扣,以至目前的 IP 地址近乎枯竭。网络地址不足,严重地制约了全球互联网的应用和发展。   一方面是地址资源数量的限制,另一方面是随着电子技术及网络技术的发展,计算机网络将进入人们的日常生活,可能身边的每一样东西都需要连入全球因特 网。在这种网络空间匮乏的环境下,IPv6 应运而生。它的产生不但解决了网络地址资源数量的问题,同时也为除电脑外的设备连入互联网在数量限制上扫清了障碍。   如果说 IPv4 实现的只是人机对话,那么 IPv6 则扩展到任意事物之间的对话,它不仅可以为人类服务,还将服务于众多硬件设备,如家用电器、传感器、远程照相机、汽车等,它将是无时不在,无处不在的深入 社会每个角落的真正的宽带网,它所带来的经济效益也将非常巨大。   当然,IPv6 并非十全十美、一劳永逸,不可能解决所有问题。IPv6 只能在发展中不断完善,也不可能在一夜之间发生,过渡需要时间和成本,但从长远看,IPv6 有利于互联网的持续和长久发展。目前,国际互联网组织已经决定成立两个专门工作组,制定相应的国际标准。   Java 对 IPv6 的支持   随着 IPv6 越来越受到业界的重视,Java 从 1.4 版开始支持 Linux 和 Solaris 平台上的 IPv6。1.5 版起又加入了 Windows 平台上的支持。相对于 C++,Java 很好得封装了 IPv4 和 IPv6 的变化部分,遗留代码都可以原生支持 IPv6,而不用随底层具体实现的变化而变化。   那么 Java 是如何来支持 IPv6 的呢? Java 网络栈会优先检查底层系统是否支持 IPv6,以及采用的何种 IP 栈系统。如果是双栈系统,那它直接创建一个 IPv6 套接字(如图 1)。   图 1. 双栈结构   对于分隔栈系统,Java 则创建 IPv4/v6 两个套接字(如图 2)。如果是 TCP 客户端程序,一旦其中某个套接字连接成功,另一个套接字就会被关闭,这个套接字连接使用的 IP 协议类型也就此被固定下来???如果是 TCP 服务器端程序,因为无法预期客户端使用的 IP 协议,所以 IPv4/v6 两个套接字会被一直保留。对于 UDP 应用程序,无论是客户端还是服务器端程序,两个套接字都会保留来完成通信。   图 2. 分隔栈结构   如何验证 IPv6 地址   IPv6 地址表示   从 IPv4 到 IPv6 最显著的变化就是网络地址的长度,IPv6 地址为 128 位长度,一般采用 32 个十六进制数,但通常写做 8 组每组 4 个十六进制的形式。例如:   2001:0db8:85a3:08d3:1319:8a2e:0370:7344 是一个合法的 IPv6 地址。如果四个数字都是零,则可以被省略。   2001:0db8:85a3:0000:1319:8a2e:0370:7344 等同于 2001:0db8:85a3::1319:8a2e:0370:7344。   遵从这些规则,如果因为省略而出现了两个以上的冒号的话,可以压缩为一个,但这种零压缩在地址中只能出现一次。因此: CODE: 2001:0DB8:0000:0000:0000:0000:1428:57ab 2001:0DB8:0000:0000:0000::1428:57ab 2001:0DB8:0:0:0:0:1428:57ab 2001:0DB8:0::0:1428:57ab 2001:0DB8::1428:57ab  都是合法的地址,并且他们是等价的。但 2001::25de::cade 是非法的。(因为这样会使得搞不清楚每个压缩中有几个全零的分组)。同时前导的零可以省略,因此:2001:0DB8:02de::0e13 等于 2001:DB8:2de::e13。   IPv6 地址校验   IPv4 地址可以很容易的转化为 IPv6 格式。举例来说,如果 IPv4 的一个地址为 2(十六进制为 0x874B2B34),它可以被转化为 0000:0000:0000:0000:0000:0000:874B:2B34 或者::874B:2B34。同时,还可以使用混合符号(IPv4- compatible address),则地址可以为::2。   在 IPv6 的环境下开发 Java 应用,或者移植已有的 IPv4 环境下开发的 Java 应用到 IPv6 环境中来,对于 IPv6 网络地址的

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档