在ipv4中,所有包头以32位为单位,即基本的长度单位是4个字节。在IPv6中,包头以64位为单位,且包头的总长度是40字节。IPv6协议为对其包头定义了以下字段:
•版本。长度为4位,对于IPv6,该字段必须为6。
•类别。长度为8位,指明为该包提供了某种“区分服务”。RFC1883中最初定义该字段只有4位,并命名为“优先级字段”,后来该字段的名字改为“类别”,在最新的IPv6Internet草案中,称之为“业务流类别”。该字段的定义独立于IPv6,目前尚未在任何RFC中定义。该字段的默认值是全0。
•流标签。长度为20位,用于标识属于同一业务流的包。一个节点可以同时作为多个业务流的发送源。流标签和源节点地址唯一标识了一个业务流。在RFC1883中这个字段最初被设计为24位,但当类别字段的长度增加到8位后,流标签字段被迫减小长度来作补偿。
•净荷长度。长度为16位,其中包括包净荷的字节长度,即IPv6头后的包中包含的字节数。这意味着在计算净荷长度时包含了IPv6扩展头的长度。
•下一个头。这个字段指出了IPv6头后所跟的头字段中的协议类型。与IPv6协议字段类似,下一个头字段可以用来指出高层是TCP还是UDP,但它也可以用来指明IPv6扩展头的存在。
•跳极限。长度为8位。每当一个节点对包进行一次转发之后,这个字段就会被减1。假如该字段达到0,这个包就将被丢弃。IPv4中有一个具有类似功能的生存期字段,但与IPv4不同,人们不愿意在IPv6中由协议定义一个关于包生存时间的上限。这意味着对过期包进行超时判定的功能可以由高层协议完成。
•源地址。长度为128位,指出了IPv6包的发送方地址。
•目的地址。长度为128位,指出了IPv6包的接收方地址。这个地址可以是一个单播、组播或任意点播地址。假如使用了选路扩展头(其中定义了一个包必须经过的非凡路由),其目的地址可以是其中某一个中间节点的地址而不必是最终地址。
下图中显示了IPv6包头的格式