Linux网络编程基础_5_网络层(四)--IPv6
网络层(四)
--IPv6
一、IPv6地址结构
IPv6地址 := {<前缀>,<接口标识>}
前缀:相当于v4地址中的网络ID
接口标识:相当于v4地址中的主机ID
如:2001:A304:6101:1::E0:F726:4E58
【地址极其丰富。地球上的每一粒沙子都可以有一个IPv6地址!】
二、IPv6地址表示方法
v6地址与v4地址表示方法有所不同
1、用十六进制表示,如: FE08:….
2、4位一组,中间用“:”隔开,如: 2001:12FC:….
3、若以零开头可以省略,全零的组可用“::”表示,如: 1:2::ACDR:….
4、地址前缀长度用“/xx”来表示,如: 1::1/64
以下是同一个地址不同表示法的例子:
0001:0123:0000:0000:0000:ABCD:0000:0001/96
1:123:0:0:0:ABCD:0:1/96
1:123::ABCD:0:1/96
三、IPv6地址分类
1、单播地址(UnicastAddress)
2、组播地址(MulticastAddress)
3、任播地址(AnycastAddress)
4、特殊地址
地址类型 |
二进制前缀 |
IPv6标识 |
---|---|---|
未指定 |
00...0(128bits) |
::/128 |
环回地址 |
00...1(128bits) |
::1/128 |
组播 |
11111111 |
FF00::/8 |
链路本地地址 |
1111111010 |
FE80::/10 |
网点本地地址 |
1111111011 |
FEC0::/10 |
全局单播 |
(其他) |
|
四、IPv6数据报格式
IPv6数据报的基本首部为长度固定的40字节,首部只有8个字段,用扩展首部取代了IPv4数据报首部中的可选项,便于中间节点高效率对其进行处理。
1、IPv6数据报的基本首部
IPv6数据报的基本首部是40字节的固定首部,其携带的信息为数据报传输途中经过的节点都必须处理的信息。
IPv6数据报基本首部的8个字段的意义:
⑴版本号(version),4位。
⑵传输类别(trafficclass),8位。用来区分不同的IPv6数据报的类别或优先级。
⑶流标识(flowlabel),20位。所谓流就是因特网上从特定源到特定目的的一系列数据报。而在这个“流”所经过的路径上的路由器都保证指定的服务质量(QoS)。所有属于同一个流的数据报都有相同的流标识。
⑷载荷长度(payloadlength),16位。基本首部以外的字节数,包括扩展首部和数据部分。
⑸下一首部(nextheader),8位。定义了紧跟在基本首部后面的扩展首部的数字标识号或数据部分的协议类型。
若没有扩展首部,相当于IPv4中的协议字段。
若有扩展首部,用来说明紧跟在基本首部后的第一个扩展首部的数字标识号,即是扩展首部的类型。
每个扩展首部也包含下一首部字段,下一首部的数字标识号在RFC1700中定义。
⑹跳数极限(hoplimit),8位。其作用类似于IPv4的TTL字段。
⑺源地址(sourceaddress),128位。标识发送数据报节点的IPv6地址。
⑻目的地址(destinationaddress),128位。标识接收数据报的节点的IPv6地址。
2、IPv6数据报的扩展首部
1)RFC2460定义了六种扩展首部:
-跳到跳首部(hop-by-hopheader)
-源路由选择首部(routingheader)
-分片首部(fragmentheader)
-目的选项首部(destinationoption header)
-鉴别首部
-加密安全载荷首部。
并不是每个扩展首部的都需要路由器处理。
路由器按照扩展首部的出现顺序,依次进行处理。扩展首部出现顺序的规则:
需要中间路由器处理的在前面;
只需要目的节点处理的在后面。
2)扩展首部的出现顺序为:
① IPv6基本首部;
② 跳到跳首部 ;
③ 目的选项首部(若携带的TLV可选项需要中间节点处理);
④ 源路径选择首部;
⑤ 分片首部;
⑥ 鉴别首部;
⑦ 加密安全载荷首部;
⑧ 目的选项首部(若携带的TLV可选项仅在目的节点处理);
⑨上层协议首部。
五、IPv6数据报格式的主要变化
⑴取消了数据报首部的校验和字段。提高数据报的传输效率。
⑵基本首部增加了流标识(flowlabel)和传输类别(trafficclass)字段,以加强对多媒体实时数据传送的支持。
⑶增加了鉴别扩展首部(AuthenticationHeader,AH)和加密安全载荷扩展首部(EncapsulatingSecurity Payload header,ESP),以增强安全性。
六、IPv6主要特点
IPv6有如下的特点:简化的报头和灵活的扩展;层次化的地址结构 ;即插即用的连网方式 ;网络层的认证与加密;服务质量的满足 ;对移动通讯更好的支持。
(1)简化的报头和灵活的扩展
IPv6对数据报头作了简化,以减少处理器开销并节省网络带宽。IPv6的报头由一个基本报头和多个扩展报头(ExtensionHeader)构成,基本报头具有固定的长度(40字节),放置所有路由器都需要处理的信息。由于Internet上的绝大部分包都只是被路由器简单的转发,因此固定的报头长度有助于加快路由速度。IPv4的报头有15个域,而IPv6的只有8个域,IPv4的报头长度是由IHL域来指定的,而IPv6的是固定40个字节。这就使得路由器在处理IPv6报头时显得更为轻松。与此同时,IPv6还定义了多种扩展报头,这使得IPv6变得极其灵活,能提供对多种应用的强力支持,同时又为以后支持新的应用提供了可能。这些报头被放置在IPv6报头和上层报头之间,每一个可以通过独特的“下一报头”的值来确认。除了逐个路程段选项报头。在那里,在IPv6的下一报头域中所使用的标准的解码方法调用相应的模块去处理第一个扩展报头(如果没有扩展报头,则处理上层报头)。每一个扩展报头的内容和语义决定了是否去处理下一个报头。因此,扩展报头必须按照它们在包中出现的次序依次处理。一个完整的IPv6的实现包括下面这些扩展报头的实现:逐个路程段选项报头,目的选项报头,路由报头,分段报头,身份认证报头,有效载荷安全封装报头,最终目的报头。
(2)层次化的地址结构
IPv6将现有的IP地址长度扩大4倍,由当前IPv4的32位扩充到128位,以支持大规模数量的网络节点。IPv6支持更多级别的地址层次,IPv6的设计者把IPv6的地址空间按照不同的地址前缀来划分,并采用了层次化的地址结构,以利于骨干网路由器对数据包的快速转发。
IPv6定义了三种不同的地址类型。分别为单点传送地址(UnicastAddress),多点传送地址(MulticastAddress)和任意点传送地址(AnycastAddress)。所有类型的IPv6地址都是属于接口(Interface)而不是节点(node)。一个IPv6单点传送地址被赋给某一个接口,而一个接口又只能属于某一个特定的节点,因此一个节点的任意一个接口的单点传送地址都可以用来标示该节点。
IPv6中的单点传送地址是连续的,以位为单位的可掩码地址与带有CIDR的IPv4地址很类似,一个标识符仅标识一个接口的情况。在IPv6中有多种单点传送地址形式,包括基于全局提供者的单点传送地址、基于地理位置的单点传送地址、NSAP地址、IPX地址、节点本地地址、链路本地地址和兼容IPv4的主机地址等。
多点传送地址是一个地址标识符对应多个接口的情况(通常属于不同节点)。IPv6多点传送地址用于表示一组节点。一个节点可能会属于几个多点传送地址。在Internet上进行多播是在1988年随着D类IPv4地址的出现而发展起来的。这个功能被多媒体应用程序所广泛使用,它们需要一个节点到多个节点的传输。
任意点传送地址也是一个标识符对应多个接口的情况。如果一个报文要求被传送到一个任意点传送地址,则它将被传送到由该地址标识的一组接口中的最近一个。任意点传送地址是从单点传送地址空间中划分出来的,因此它可以使用表示单点传送地址的任何形式。从语法上来看,它与单点传送地址间是没有差别的。当一个单点传送地址被指向多于一个接口时,该地址就成为任意点传送地址,并且被明确指明。当用户发送一个数据包到这个任意点传送地址时,离用户最近的一个服务器将响应用户。这对于一个经常移动和变更的网络用户大有益处。
(3)即插即用的连网方式
IPv6把自动将IP地址分配给用户的功能作为标准功能。只要机器一连接上网络便可自动设定地址。它有两个优点。一是最终用户用不着花精力进行地址设定,二是可以大大减轻网络管理者的负担。IPv6有两种自动设定功能。一种是和IPv4自动设定功能一样的名为“全状态自动设定”功能。另一种是“无状态自动设定”功能。在IPv4中,动态主机配置协议(DynamicHost ConfigurationProtocol,DHCP)实现了主机IP地址及其相关配置的自动设置。一个DHCP服务器拥有一个IP地址池,主机从DHCP服务器租借IP地址并获得有关的配置信息(如缺省网关、DNS服务器等),由此达到自动设置主机IP地址的目的。IPv6继承了IPv4的这种自动配置服务,并将其称为全状态自动配置(StatefulAutoconfiguration)。
(4)网络层的认证与加密
安全问题始终是与Internet相关的一个重要话题。由于在IP协议设计之初没有考虑安全性,因而在早期的Internet上时常发生诸如企业或机构网络遭到攻击、机密数据被窃取等不幸的事情。为了加强Internet的安全性,从1995年开始,IETF着手研究制定了一套用于保护IP通信的IP安全(IPSec)协议。IPSec是IPv4的一个可选扩展协议,是IPv6的一个必须组成部分。
IPSec的主要功能是在网络层对数据分组提供加密和鉴别等安全服务,它提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭到改动。加密机制通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被他人截获而失密。IPSec的认证报头(AuthenticationHeader,AH)协议定义了认证的应用方法,安全负载封装(EncapsulatingSecurityPayload,ESP)协议定义了加密和可选认证的应用方法。在实际进行IP通信时,可以根据安全需求同时使用这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。
做为IPv6的一个组成部分,IPSec是一个网络层协议。它只负责其下层的网络安全,并不负责其上层应用的安全,如Web、电子邮件和文件传输等。也就是说,验证一个Web会话,依然需要使用SSL协议。不过,TCP/IPv6协议簇中的协议可以从IPSec中受益,例如,用于IPv6的OSPFv6路由协议就去掉了用于IPv4的OSPF中的认证机制。作为IPSec的一项重要应用,IPv6集成了虚拟专用网(VPN)的功能,使用IPv6可以更容易地、实现更为安全可靠的虚拟专用网。
(5)服务质量的满足
基于IPv4的Internet在设计之初,只有一种简单的服务质量,即采用“尽最大努力”(Besteffort)传输,从原理上讲服务质量QoS是无保证的。文本传输,静态图像等传输对QoS并无要求。随着IP网上多媒体业务增加,如IP电话、VoD、电视会议等实时应用,对传输延时和延时抖动均有严格的要求。
IPv6数据包的格式包含一个8位的业务流类别(Class)和一个新的20位的流标签(FlowLabel)。最早在RFC1883中定义了4位的优先级字段,可以区分16个不同的优先级。后来在RFC2460里改为8位的类别字段。其数值及如何使用还没有定义,其目的是允许发送业务流的源节点和转发业务流的路由器在数据包上加上标记,并进行除默认处理之外的不同处理。一般来说,在所选择的链路上,可以根据开销、带宽、延时或其他特性对数据包进行特殊的处理。
一个流是以某种方式相关的一系列信息包,IP层必须以相关的方式对待它们。决定信息包属于同一流的参数包括:源地址,目的地址,QoS,身份认证及安全性。IPv6中流的概念的引入仍然是在无连接协议的基础上的,一个流可以包含几个TCP连接,一个流的目的地址可以是单个节点也可以是一组节点。IPv6的中间节点接收到一个信息包时,通过验证他的流标签,就可以判断它属于哪个流,然后就可以知道信息包的QoS需求,进行快速的转发。
(6)对移动通讯更好的支持
未来移动通信与互联网的结合将是网络发展的大趋势之一。移动互联网将成为我们日常生活的一部分,改变我们生活的方方面面。权威机构预计,到2005年,全球将有14亿移动电话用户,其中10亿为移动互联网用户。移动互联网不仅仅是移动接入互联网,它还提供一系列以移动性为核心的多种增值业务:查询本地化设计信息、远程控制工具、无限互动游戏、购物付款等。
移动IPv6的设计汲取了移动IPv4的设计经验,并且利用了IPv6的许多新的特征,所以提供了比移动IPv4更多的、更好的特点。移动IPv6成为IPv6协议不可分割的一部分。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。