IPv6头部格式:
目前在资料上可搜索到两种格式,RFC1883和RFC 2460,目前1883已被2460取代,为了保持更好的兼容性
本文中的C语言实现主要根据RFC2460实现,RFC1883中IPv6首部格式定义如下
RFC1883说明:
Version:4位协议号,值为6
Prio.:4位数据优先级.
Flow Label:24位,流标签,主要用于QoS
Payload Length:16位,载荷长度
Next Header:8位,下一个头,类似于IPv4的Protocol字段,但不完全相同
Hop Limit:8位跳数限制,类似IPv4中的TTL
Source Address:128位源地址
Destination Address:128位目的地址
RFC1883已经被RFC2460取代,主要是RFC1883中Prio字段只有4位,而IPv4中的TOS字段为8位,两者不能完全兼容。
http://datatracker.ietf.org/doc/rfc1883/?include_text=1
RFC2460定义IPv6首部标准格式如下:
RFC2460格式说明:
Version: 4位协议号,值为6;
Traffic Class:8位传输类别,相对1883中的4位prio能更好支持QoS,在源端或中间转发端用来区分不同类型和优先权的IPv6包,和IPv4的TOS字段一样是8位,这样有利于设计IPv4/IPv6兼容的QoS标准;
Flow Label:20位流标签,用于源端标记IPv6包顺序,供路由器特别处理,用来满足某些特殊服务,如QoS和实时信息
Payload Length: 16位负载长度;
Next Header:8位,下一个头,类似于IPv4的Protocol字段,但不完全相同
Hop Limit:8位跳数限制,类似IPv4中的TTL
Source Address:128位源地址
Destination Address:128位目的地址
其中Traffic Class字段在RFC 2460中未明确定义,后来在在RFC 2474中定义为:
DSCP: differentiated services codepoint 6bit
CU:currently unused 2bit
http://tools.ietf.org/html/rfc2460
//blackbap.org