一 IPV4数据包格式
1,版本(Version)
由4比特构成,表示标识IP首部的版本号.IPV4的版本号即为4,因此在这个字段上的值也是"4"
2,首部长度 (IHL:Internet Header Length)
由4比特构成,表明IP首部的大小,单位为4字节(32比特).对于没有可选项的IP包,首部长度则设置为"5".也就是说,当没有可选项时,IP首部的长度为20字节(4*5=20)
3 服务类型(Type Of Service)
优先级标志位和服务类型标志位,由8比特构成,被路由器用来进行流量的优先排序,不过已被划分为DSCP和ECN
4 DSCP段与ECN段
DSCP(Differential Services Codepoint,差分服务代码点)是TOS(Type Of Service)的一部分
ECN(Explict Congestion Notification,显式拥塞通告)用来报告网络拥堵情况
5 总长度(Total Length)
表示IP首部与数据部分合起来的总字节数.该字段长16比特.因此IP包的最大长度为65535(=2的16次方)字节
6 标识(ID:Identification)
由16比特构成,用于分片重组.同一个分片的标识值相同,不同分片的标识值不同.通常,每发送一个IP包,它的值也逐渐递增.此外,即使ID相同,如果目标地址,原地址或协议不同的话,也会被认为是不同的分片.
7 标志(Flags)
由3比特构成,表示包被分片的相关信息
8 片偏移 (FO:Fragment Offset)
由13比特构成,用来标识被分片的每一个分段相对于原始数据的位置.第一个分片对应的值为0.由于FO域占13位,因此最多可以表示8192(=2的13次方)个相对位置.单位为8字节,因此最大可表示原始数据8*8192=65535字节的位置
9 生存时间(TTL:Time To Live)
由8比特构成,它最初的意思是以秒为单位记录当前包在网络上应该生存的期限.然而在实际中它是指可以中转多少个路由器的意思.没经过一个路由器,TTL会减少1,直到变成0则丢弃该包
10 协议(Protocol)
由8比特构成,表示IP首部的下一个首部隶属于哪个协议.目前常使用的协议如下表所示:
11 首部校验和 (Header Checksum)
由16比特(2个字节)构成,也叫IP首部校验和.该字段只校验数据报的首部,不校验数据部分.它主要用来确保IP数据报不被破坏
12 源地址(Source Address)
由32比特(4个字节)构成,表示发送端IP地址
13 目标地址(Destination Address)
由32比特(4个字节)构成,表示接收端IP地址
14 选项 (Options):保留作额外的IP选项.它包含着源站选路和时间戳的一些选项
二 IPV6 首部格式
IPv6的IP数据首部格式,如下图所示:
版本 (Version)
IPV6其版本号为6,因此在这个字段上的值为"6"
通信量类 (Traffic Class)
相当于IPv4的TOS(Type Of Service)字段,也由8比特构成.
流标号(Flow Label)
由20比特构成,准备用于服务质量(QoS:Quality Of Service)控制
有效载荷长度 (Payload Length)
有效载荷是指包的数据部分.IPV4的TL(Total Length)是指包括首部在内的所有长度.然而IPv6中的这个Playload Length不包括首部,只表示数据部分的长度
下一个首部(Next Header)
相当于IPv4中的协议字段
跳变限制(Hop Limit)
源地址 (Source)
目的地址 (Destination)
IPV6的地址
IPv4地址被局限在32位,这意味着该长度只能提供亿级的地址空间,IPv6地址有128位,可以提供2的128次方的地址空间
IPv6的地址分为网络部分和主机部分,分别称为网络前缀(network prefix)和接口标识符(interface identifier).这两个部分在地址上的分布取决于IPv6的通信类型.IPv6通信有3种类别:单播(unicast),任播(anycast)和多播(multicast).