IPv6
· IPv4的局限性:
· IPv6的特性:
IPv6的基本首部
· IPv6支持无连接的传送,将协议传送单元(PDU)称为分组,为了方便起见,我们仍采用数据报这个说法。
· IPv6数据报的一般形式如下:
由2部分组成:
基本首部:固定为40字节。
有效载荷(Payload):也称为净载荷。这里面包含了0个或多个扩展首部以及数据部分。
· IPv6把基本首部变为40字节,把其中不必要的功能取消了,使得IPv6基本首部就只有8个字段:
· 对于基本首部,具体来说:
版本:4位,对于IPv6来说总是6。
通信量类(Traffic Class):8位,为了区分不同的IPv6数据报的类别或优先级,这个字段目前还在进行实验。
流标号(Flow Label):20位,用于IPv6支持资源的预分配。"流"在这里指的是互联网上从特定源点到特定终点的一系列数据报,所有属于同一个流的数据报都有相同的流标号,因此,这个对音视频传送很有用。
有效载荷长度(Payload):16位,它指明IPv6数据报除基本首部外的字节数,所有拓展首部都算在有效载荷内,最大为64KB。
下一个首部(Next Header):8位,它相当于IPv6的协议字段或可选字段,当没有拓展首部时,相当于IPv4的协议字段,如6表示TCP,17表示UDP。
跳数限制(Hop Limit):8位,就是IPv4中的TTL,每经过一个路由器就减1,为0则丢弃,防止数据报在网络中无限存在。
源地址和目的地址:都是128位。
· 定义了6种IPv6的拓展首部:
在分片中,与IPv4支持在路径上的路由器进行分片不同,IPv6就只在源主机进行分片,并且,它会通过路径MTU发现(Path MTU Discovery)技术找到传输路径上路由器支持的最小MTU来进行分片,以确保传输过程中报文不会因为大于MTU而被路由器丢弃。
· 下一个首部其实就类似一个指针链表:
每一个首部除了有自己的信息外还会存储Next Header,比如上面第二个的Routing Header的Next Header=6,即下一个首部是TCP内容。
相比于以前放在可选字段里面,现在实现起来就更加方便。
IPv6的地址
· IPv6数据报的目的地址可以是:
单播(Unicast):即传统的点对点通信。
多播(Multicast):一对多通信。
任播(Anycast):IPv6增加的一种类型,其目的站是一组计算机,但数据报在交付的时候只交给距离最近的一个。可以理解为多个节点共享一个IPv6地址。
· 结点与接口:
· 冒号16进制记法:IPv6使用冒号16进制记法,每个16位的值用16进制表示,各值之间用冒号分隔,例如:
· 冒号16进制记法允许零压缩(Zero Compression):即一连串连续的0可以用一对冒号来替代
值得注意的是,任一地址中零压缩只能用一次!
· 点分十进制记法后缀:
· CIDR斜杠表示法:和IPv4类似,IPv6也可以用斜杠表示法,斜杠后面表示网络号前缀。
· IPv6地址分类:
关于全球单播地址:
可以分为2级也可以分为3级,目前来说要使用IPv6的话仍要向国际相关组织去申请这个全球路由选择前缀。
· 地址映射转换:我们之前说过,子网前缀是路由器告诉主机的,主机需要生成一个接口标识符组合起来才能作为一个完整的IPv6地址,一般来说会使用主机的MAC地址去做标识符,但是我们知道,MAC地址只有48位,如果子网前缀只给64位的话,就没办法凑成128位,此时就需要用到映射转换。
我们在公司ID和扩展ID之间填充16位,然后求个反就能获得全球管理位
从IPv4向IPv6过渡
· IPv4向IPv6过渡必须逐步演进,同时还必须使新安装的IPv6系统能兼容IPv4,即能接受和转发IPv4分组、选择路由。
· 向IPv6过渡的策略:
使用双协议栈:主机或路由器同时使用IPv4和IPv6协议。
使用隧道技术:一个协议封装另一个协议。
ICMPv6
· IPv6和IPv4一样是一个不可靠协议,需要ICMP来返回一些差错信息。
· 地址解析协议ARP和网际组管理协议IGMP都已经被包含在了新的ICMPv6中。
· ICMPv6报文类型(看看就好):