搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

IPv6详解

ipv6是"internet protocol version 6"的缩写,也被称作下一代互联网协议,它是由ietf设计的用来替代现行的ipv4协议的一种新的ip协议。今天的互联网大多数应用的是ipv4协议, ipv4协议已经使用了20多年,在这20多年的应用中,ipv4获得了巨大的成功,同时随着应用范围的扩大,它也面临着越来越不容忽视的危机,例如地址匮乏等等。ipv6是为了解决ipv4所存在的一些问题和不足而提出的,同时它还在许多方面提出了改进。下面就让我给大家讲解一下好了。。
 1。报头结构:
   ipv6报头占40字节,相对于变长的24字节ipv4报头好象长了点,但新的ipv6报头的结构比ipv4简单得多, ipv6报头中删除了ipv4报头中许多不常用的域,放入了可选项和报头扩展。其可选项有更严格的定义。ipv6报头中有6个域和2个地址空间,相对于 ipv4中的10个固定长度的域、2个地址空间和若干个选项的结构来说ipv6够简单了吧。。
 2。地址问题:(我想这也是大家最为关心的问题了吧。。。)
   ipv6协议的地址长度是128位,共有2128个不同的ipv6地址,也就是全球可分配地址数为 340,282,366,920,938,463,463,374,607,431,768,211,456个。若按土地面积分配,每平方厘米可获得 2.2*1020个地址。怎么样,这个数够用了吧。ipv6耗尽的机会是很小的,是不是很到的解决了ipv4的匮乏问题啊。。。。。
   ipv6地址表示方式和ipv4截然不同(ipv4地址表示为点分十进制格式,32位的地址分成4个8位分组,每个8位写成十进制,中间用点号分隔。),它采用十六进制格式,既128位地址是以16位为一分组,每个16位分组写成4个十六进制数,中间用冒号分十六进制格式。如:31da:01d3: 0000:2f3b:02aa:00ff:fe28:9c5a 是一个完整的ipv6地址。
   ipv6的地址除了上述的表示形式外还有以下几种特殊情形:
      (1)ipv6地址中每个16位分组中的前导零位可以去除做简化表示,但每个分组必须至少保留一位数字。如上例中的地址,去除前导零位后可写成:31da:1d3:0:2f3b:2aa:ff:fe28:9c5a。
     (2)某些地址中可能包含很长的零序列,为进一步简化表示法,还可以将冒号十六进制格式中相邻的连续零位合并,用双冒号“::”表示。“::”符号在一个地址中只能出现一次,该符号也能用来压缩地址中前部和尾部的相邻的连续零位。例如地址2080:0:0:0:7:800:200c:417a,0:0: 0:0:0:0:0:9,0:0:0:0:0:0:0:0分别可表示为压缩格式2080::7:800:200c:417a,::9,:: 。
      (3)在ipv4和ipv6混合环境中,有时更适合于采用另一种表示形式:x:x:x:x:x:x:d.d.d.d,其中x是地址中6个高阶16位分组的十六进制值,d是地址中4个低阶8位分组的十进制值(标准ipv4表示)。例如地址0:0:0:0:0:0:13.8.68.9 ,0:0:0:0:0:ffff:129.144.22.38 写成压缩形式为::13.8.68.9,::ffff.129.144.22.38 。
      (4)要在一个url中使用文本ipv6地址,文本地址应该用符号“[”和“]”来封闭。例如文本ipv6地址aedc:ba98:7654:3210: fedc:ba98:7654:3210写作url示例为http://[aedc:ba98:7654:3210:fedc:ba98:7654: 3210]:80/index.html。
  说到现在也许有人要说了,128位的地址配地址岂不是要花费很多时间?其实不会的,ipv6协议支持地址自动配置,这是一种即插即用的机制。ipv6节点通过地址自动配置得到ipv6地址和网关地址。ipv6支持无状态地址自动配置和状态地址自动配置两种地址自动配置方式。它会给配置128位的地址带来很大的方便,特别是无状态地址自动配置。
   那么ipv6地址都有哪些类型?下面我给大家简单的讲解一下。。
      所有类型的ipv6地址都被分配到接口,而不是节点。ipv6地址是单个或一组接口的128位标识符,有三种类型:
         (1) 单播(unicast)地址
            单一接口的标识符。发往单播地址的包被送给该地址标识的接口。单播地址中有下列两种特殊地址:
             不确定地址 :单播地址0:0:0:0:0:0:0:0称为不确定地址。它不能分配给任何节点,不能在ipv6包中用作目的地址,也不能用在ipv6路由头中。
             回环地址 :单播地址0:0:0:0:0:0:0:1称为回环地址。节点用它来向自身发送ipv6包。它不能分配给任何物理接口。
         (2) 任意播(anycast)地址:一组接口(一般属于不同节点)的标识符。发往任意播地址的包被送给该地址标识的接口之一。它不能用作源地址,而只能作为目的地址,不能指定给ipv6主机,只能指定给ipv6路由器。
         (3) 组播(multicast)地址:一组接口(一般属于不同节点)的标识符。
   说到这里不知道大家注意到了没有,ipv6中没有广播地址,这是和ipv4有所不同的。这个功能正在被组播地址所代替。
   ipv6的地址有这么多,那么一台ipv6主机有多少地址?下面我和大家说一下。。。一台ipv6主机可同时拥有以下几种单点传送地址:每个接口的链路本地地址;每个接口的单播地址(可以是一个站点本地地址和一个或多个可聚集全球地址);回环(loopback)接口的回环地址(::1)。
  3。地址自动配置技术 :
   刚刚我在上面提到过ipv6“即插即用”,那么它是如何实现的呢?下面我给大家说一下。。
    “即插即用”是指无需任何人工干预,就可以将一个节点插入ipv6网络并在网络中启动,ipv6使用了两种不同的机制来支持即插即用网络连接:启动协议(bootstrap protocol,bootp)和动态主机配置协议(dhcp)。这两种机制允许ip节点从特殊的bootp服务器或dhcp服务器获取配置信息。这些协议采用“状态自动配置”(stateful autoconfiguration),即服务器必须保持每个节点的状态信息,并管理这些保存的信息。但是状态自动配置也是存在问题的,我这里就不多说了。
  4。域名解析技术 :
     ipv6网络中的dns与ipv4的dns在体系结构上是一致的,都是采用树型结构的域名空间。ipv4和ipv6共同拥有统一的域名空间。在ipv4到 ipv6的过渡阶段,域名可以同时对应于多个ipv4和ipv6的地址。那么ipv6如何自动发现提供解析服务的dns服务器?它提供了两种方式,(1) 无状态的dns服务器发现。(2) 有状态的dns服务器发现。有状态的dns服务器发现方式是通过类似dhcp的服务器把dns服务器地址、域名和搜索路径等dns信息告知节点。这里就不多说了,我主要谈一下无状态的dns服务器发现。
    无状态dns服务器自动发现有以下几种方式:(1)为子网内部的dns服务器配置站点范围内的任意播地址。要进行自动配置的节点以该任意播地址为目的地址发送服务器发现请求,询问dns服务器地址、域名和搜索路径等dns信息。这个请求到达距离最近的dns服务器,服务器根据请求,回答dns服务器单播地址、域名和搜索路径等dns信息。节点根据服务器的应答配置本机dns信息,以后的dns请求就直接用单播地址发送给dns服务器。(2)与第一种方式相同,只是不用站点范围内的任意播地址,而采用站点范围内的组播地址或链路组播地址等。(3)一直用站点范围内的任意播地址作为dns服务器的地址,所有的 dns解析请求都发送给这个任意播地址。距离最近的dns服务器负责解析这个请求,得到解析结果后把结果返回请求节点,而不像第一种方式是把dns服务器单播地址、域名和搜索路径等dns信息告诉节点。好了,看到这里你应该知道那种方法比较好了吧。。那当然是第一种啦。。不论是从网络扩展性、安全性、实用性等多方面综合考虑,第一种方式都是相对较好的。
     那么在在ipv4到ipv6的过渡阶段如何实现dns呢?我简单的说一下,主要有两种方法,一是dns-alg与nat-pt相结合的方法,再一种是双协议栈方式。这里我就不详细讲解了。
  5。邻居发现
   任何设备都不能孤立的工作,要是孤立的话就没有什么意义了。那么ipv6是如何实现邻居发现的呢,我给大家简单的提一下。ipv6定义了邻居发现协议(neighbor discovery protocol,ndp),它使用一系列ipv6控制信息报文(icmpv6)来实现相邻节点(同一链路上的节点)的交互管理,并在一个子网中保持网络层地址和链路层地址之间的映射。正是这样才使使用ipv6的设备不至于孤立。。。。。。。
  6。超长数据传送问题
   ipv6要求互联网上的每条链路具有1280或更多个八位组的最大传输单元(mtu)。无法在一段之内传送1280个八位组的链路必须根据链路的情况在ipv6下层的协议中提供分段和重组机制。rfc1981中描述了一种动态发现路径最大传输单元(pmtu)的方法。有兴趣的朋友可以去看一下。。。。。。。。
  7。路由技术
    ipv6主要使用三种路由协议:ripv6(routing information protocol,路由信息协议)、ospfv6(open shortest path first,开放最短路径优先)和idrpv2(inter-domain routing protocol,域间路由协议)以及可能的eigrp和双层的is-is。不知道大家还记得不记得ipv4可路由的协议,如ip,ipx,等即便是你不记得可路由的协议,那么不可路由的你一定要记住,主要有dec,netbios等。
  另外,移动ipv6协议为用户提供可移动的ip数据服务,让用户可以在世界各地都使用同样的ipv6地址,非常适合未来无线上网。这点我就不多说了。。。有兴趣的朋友自己看一下好了。。
   8。安全问题
    这可是个首要问题啊。。。原来的互联网安全机制无法从ip层来保证internet的安全。为了解决这个问题,ietf制定了一套ip 安全(ip security,ipsec)协议用于保护ip通信的安全。它既可以用于ipv4也可用于ipv6。ipsec是ipv6的一个组成部分,也是ipv4 的一个可选扩展协议。它更好的支持了ipv6,使我们有机会在将网络转换到这种新型协议的同时发展端到端安全性。
  
  好了,说了这么一大堆,也不知道大家理解了多少,下面我给大家说一下ipv6的安装。
     (1)win2k下的安装:windows 2000下安装需要下载ipv6的安装包,下地址下载:http: //msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp 软件包名称为:tpipv6-001205.exe,是一个自解压文件。不同的补丁包系统有不同的安装方法,由于大家现在都是用的sp4的,我就用他给大家讲解一下好了。我先把下来的自解压包解到d:\ipv6kit
      在命令行界面,执行d:\ipv6kit\setup -x命令,然后出现解压目录对话框,我们这里解压到d:\ipv6kit\ipv6目录中;用“记事本”打开d:\ipv6kit\ipv6目录中的 hotfix.ini文件,在[version]段中,把ntservicepackversion=256改成 1024,保存。然后运行d:\ipv6kit\ipv6目录下的hotfix.exe,确定后重启动计算机。等机器起来后到网络连接的属性的协议里添加就可以了。。。。。。我想到这里大家应该对2k下怎么安装ipv6应该没问题了吧。。。。
      (2)在xp和2003下的安装。。。这个更简单,因为他们已经内置了ipv6,你只要到网络属性里添加就可以了。。。。
   测试你的安装有没有成功,只要在cmd下用ping ::1就可以了啊。。。不知道大家还记不记的这是什么意思。。。。可不要看糊涂了啊。。。。嘿嘿。。他就相当与ping 127.0.0.1
      最后我还要说的是ipv6协议不支持windows 95,98和windows me,如果你还是用这几个系统的话那就没戏了。。。。不过我建议你尽快换系统吧,想玩黑客这些系统是不行的。。

   好了。。。在windows上的ipv6我介绍到这里了,等有机会再个大家介绍一下它在x系统上的应用。。。。。。ok~!我还要说明的一点是,ipv6在路由器等设备上的应用我没说。。有机会好了。。。。。

()

相关文章:
© 2006   www.java-asp.net