1、IPv6报文头部是定长(固定为40字节),IPv4报文头部是变长的。这个意味着,写代码处理IPv6数据报文的效率会提高很多;
2、IPv6中HopLimit字段含义类似IPv4的TTL;
3、IPv6中的TrafficClass字段含义类似IPv4中的TOS(TypeOfService);
4、IPv6的报文头部取消了校验和字段:取消这个字段也是对IPv4协议的一个改进。当IPv4报文在网路间传输,每经过一个路由器转发就是修改TTL字段,就需要重新计算校验和,而由于数据链路层L2和传输层L4的校验已经足够强壮,因此IPv6取消这个字段会提高路由器的转发效率。值得一提的是,在IPv6协议下,传输层L4协议UDP、TCP是强制需要进行校验和的(IPv4是可选的);
5、IPv6报文头部中的NextHeader字段表示“承载上一层的协议类型”或者“扩展头部类型”。
这里的含义与IPv4有很大的差别
需要加以解释:
1、当IPv6数据报文承载的是上层协议ICMPv6、TCP、UDP等的时候,NextHeader的值分别为58、6、17,这个时候和IPv4报文头部中的Protocol字段很类似;
2、当不是以上3种协议类型的时候,IPv6报文头部紧接的是扩展头部。扩展头部是IPv6引入的一个新的概念,每个IPv6的数据报文可以承载0个或多个扩展头部,扩展头部通过链表的形式组织起来。当IPv6数据报文承载着扩展头部的时候,NextHeader的数值为扩展头部的类型值。
本地链路地址:
IPv6本地链路地址,类似于IPv4中APIPA
(AutomaticPrivateIPAddressing,自动专用IP寻址)所定义的地址169.254.0.0/16。
IPv6本地链路地址的前缀为固定的FE80::/10,而默认情况下从11bit到64bit设置为0,而剩下的64bit,就使用接口的MAC地址扩展为64位进行填充标识。
本地站点地址:
IPv6本地站点地址,只能在IPv6所定义的一个站点内使用。类似于IPv4中的私有IP地址。对于IPv6本地站点地址的配置,必须通过DHCPv6进行地址的分配、无状态的前缀公告、或者手工的进行输入,如FEC0:FECC:2::1/10。本地站点地址是由固定10bit地址前缀FEC0::/10、54bit子网标识以及64bit的扩展MAC地址组成。
全球单播地址:
IPv6全球单播地址指用于internet上的地址,类似于IPv4的公有IP地址。
而一个IPv6地址是由提供商提供的48bit的路由前缀、组织机构使用16bit划分子网以及64bit接口标识符组成。
注意:接口标识符:是基于48bitMAC地址扩展为64bit;
通过使用IEEE的扩展唯一标识符(EUI-64)格式的主机可以自动配置其接口ID。首先,主机会将其自己的MAC地址分为两个24位。那么16位十六进制值FFFE被夹到MAC地址的那两半中间,生成64位接口ID。
任播地址:
IPv6任意播地址,也叫做泛播地址,是一个只能分配给路由的IPv6的地址。是一种网络寻址和路由的策略,使得数据可以根据路由拓朴来决定送到“最近”或“最好”的目的地。
IPv6中一个任播地址是分配给不同节点的多个接口的,就是说有若干个网络接口可分配同一个任播地址。当有一个数据包传送给这个地址时,路由器只将此数据包转发到其中一个“最近距离”的接口上就完事了,并不是每个接口都收到此数据包。(这一点上也与IPv6多播不同)另外,单从IPv6的地址形式上是无法区分单播与任播地址的。
阅读推荐:[Linux培训]这些基本命令你可以好好看看