目前随着云计算、物联网、移动互联网、等智能网络等急速发展,以及语音、数据、图像、视频、多媒体等新业务的不断呈现,当前使用的网际协议版本4-IPV4出现空间地址短缺、路由表膨胀,以及缺乏对移动网络服务质量的支持等一系列问题。CIDR(无类域间的路由)、VLSM(可变长子网掩码)、NAT(网络地址转换)技术只能缓解IP地址耗尽的时间,但不能从根本上解决IP地址枯竭的问题。

ipv6和ipv4有哪些主要差别(IPv6网络协议基础知识-IPv4)(1)

下一代网际协议版本6-IPV6用于替代IPv4的下一代IP协议,拥有128位地址长度,长于IPv4的32位,IPv6可以提供2^128-1个地址数量,按照IPv6的地址空间设想思想,地球上每一粒沙子都可以被分配一个IP地址,完全可以从根本上解决IP地址短缺的问题。

ipv6和ipv4有哪些主要差别(IPv6网络协议基础知识-IPv4)(2)

下面分别介绍一下IPv4和IPv6报文头字段信息。

IPv4报文格式

ipv6和ipv4有哪些主要差别(IPv6网络协议基础知识-IPv4)(3)

IPv4报文

Version

IP 版本号,4 比特位长度,IPv4对应的二进制是 0100。

IHL(Internet Header Length)

IP包头长度, 4 比特位长度,表示 IP 报头的长度。单位为32bit(4个字节),比如最长为“1111”,即15*4=60个字节。

Type of Service

服务类型,8比特位长度,主要用途是对等待通过路由器的数据报区分优先级,而目前大多数 IP 实现是把这个字段全填为 0。

Total Length

IP包总长, 16 比特位长度,表示 IP 数据报的长度,单位是字节,最大表示65535字节。

Identification

标识符, 16 比特位长度,该字段和Flags和Fragment Offest字段联合使用,对较大的上层数据包进行分段(fragment)操作。路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。

Flags

标记,3比特位长度,这个字段表示分段可能性。第 1 位未使用,其值应该为 0。第 2 位称为 DF(Don’t Fragment),表示是否允许分段,0 表示允许,1 表示不允许。第 3 位是 MF(More Fragments),表示是否还有分段正在传输,设置为 0 时表示没有更多分段需要发送,或是数据报根本没有分段。

Fragment Offset

片偏移,13 比特位长度,表示该IP包在该组分片包中位置,接收端靠此来组装还原IP包。

Time To Live (TTL)

生存时间,8 比特位长度,这个字段表示数据报在被抛弃之前能保留的时间(以秒为单位)或路由器跳数。当IP包进行传送时,先会对该字段赋予某个特定的值。当IP包经过每一个沿途的路由器的时候,每个沿途的路由器会将IP包的TTL值减少1。如果TTL减少为0,则该IP包会被丢弃。这个字段可以防止由于路由环路而导致IP包在网络中不停被转发。

Protocol

协议,8比特位长度,标识接收数据载荷的协议:1 ICMP;2 IGMP;6 TCP;17 UDP;88 IGRP;89 OSPF。

Header Checksum

头部校验,16比特位长度,用来做IP头部的正确性检测,但不包含数据部分。 因为每个路由器要改变TTL的值,所以路由器会为每个通过的数据包重新计算这个值。

Source IP Addresses

起源地址,32比特位长度,标识了IP包的起源地址。要注意除非使用NAT,否则整个传输的过程中,这两个地址不会改变。

Destination IP Addresses

目标地址,32比特位长度,标识了IP包的目的地址。要注意除非使用NAT,否则整个传输的过程中,这两个地址不会改变。

IP Options

可选项,可变长长度,字段属于可选项,主要用于测试,由起源设备根据需要改写。

Padding

填充字段,可变长度。IP 选项字段的长度不是固定的。填充字段可以提供一些额外的 0,从而保证整个报头的长度是 32 位的整倍数。

IPv6报文格式

ipv6和ipv4有哪些主要差别(IPv6网络协议基础知识-IPv4)(4)

IPv4报文

Version

版本,4比特位长度,IPv6对应的二进制是 0110。

Traffic Class

流量分类,8比特位长度,指示IPv6数据流通信类别或优先级,类似于IPv4中的服务类型字段Type of Service。

Flow Label

流标签,20比特位长度,用来标记特定流的报文,以便在网络层区分不同的报文。转发路径上的路由器可以根据流标签来区分流并进行处理。由于流标签在IPv6报文头中携带,转发路由器可以不必根据报文内容来识别不同的流,目的节点也同样可以根据流标签识别流,同时由于流标签在报文头中,因此使用IPSec后仍然可以根据流标签进行QoS处理。

Payload Length

载荷长度,16位特位长度,表示IPv6报文中负载的长度,即报文基本头以后部分的长度,而不是整个IPv6数据报文的长度。

Next Header

下一个首部,8比特位长度,用来标识当前头(基本头或扩展头)后下一个头的类型,与IPV4包中的协议字段Protocol类似。

Hop Limit

跳数限制,8比特位长度,指示在路由器之间的转发次数来限定IPv6报文的生命周期。每经过路由器一次转发,该字段减1,减到0时就把这个包丢弃。与IPv4的生存时间字段Time To Live类似。

Source Address

源地址,128比特位长,与IPv4中的源IP地址作用一样。

Destination Address

目标地址,128比特位长,与IPv4中的目标IP地址作用一样。

Possible Extension Heade

报文扩展头,IPv6基本头后面可以有0到多个扩展头,值0-逐跳选项头;60-目的选项头;43-路由头;44-分片头;51-验证头(AH头);50-封装安全载荷头(ESP头)。

IPV6与IPV4比较

1、IPv6支持一个主首部与0~n个扩展首部,这样做可以让数据报文的结构更清晰,层次化更明显,也可在IPv6的报文中存放更多的信息。

2、IPv6的首部中保留了数据转发所必须的重要信息,删除了IPv4中定义的几个字段,一些字段被放到IPv6的扩展首部中,减少IPv6首部的长度,提高报文效率。

3、IPv6中增加扩展部分,高层的协议与IPv6的主首部进行了分离,所以对高层协议的错误校验就被删除,减少了校验时间,提高报文转发效率。

,