IPv4的数据包结构

IPV4数据包结构

IPv4的数据包结构_第1张图片
IPv4的数据包结构_第2张图片

  • 共6行,每一行是32个bit,也就是4个字节
  • 最后一行options和padding在默认的ipv4数据包中是空的
  • 版本(Version) 4bit
    如果协议是IPV4,则值为0100

  • IHL 头部长度(Header Length) 4bit
    头部长度字段指示IP数据报头部的总长度,IP数据报头部的总长度以4字节为单位,该字段占4位。当报头中无选项字段时,报头的总长度为5,也就是5×4=20字节(此时,报头长度的值为0101)。这就是说IP数据报头部固定部分长度为20字节。当IP头部长度为1111时,头部的固定长度为15×4=60字节。但报头长度必须是32位(四字节)的整数倍,如果不是,需要在选项字段的填充(PAD)字段中补0凑齐。

  • 服务类型 (Service type) 8bit
    作用:对数据、流量进行标记 可以用于QOS策略

  • 总长度(packet length) 16bit
    包含ip包头和data数据

  • 标识符(identification) 16bit
    1—65535 在3层ip包头中用来标识或区分不同的流量

  • 标志(Flags) 3bit
    标志字段用以指出该IP数据报后面是否还有分段
    第一位保留位 R 一般是空的
    第二位DF(Don’t Fragment)位 不分片位 1表示不分片,0表示分片
    第三位 MF(More Fragment)位 更多分片位 1表示后面还有分片,0表示无

  • 分片偏移(Flag offset) 13bit
    本数据包距离完整数据包头部的偏移值 单位:字节

  • 生存时间(Time to live) 8bit
    数值范围0—255 三层防环机制。
    每经过一台路由器TTL值减1,当减为0时路由器直接丢弃。

  • 协议号(protocol) 8bit
    用于描述上层协议

  • 头部校验和(header checksum) 16bit
    计算数据包头部完整性;只检验数据报的首部。

  • 源ip地址(Source address) 32bit

  • 目标ip地址(Destination address) 32bit

  • 可选项(options)
    完成一些特殊功能:严格路由 松散路由 记录路由 时间戳只能在options 里面做。

  • 填充项(padding)

IPv6与IPv4数据包内容的变化

IPv4的数据包结构_第3张图片IPv4数据包 IPv6数据包

Type of Service(Tos) <——> Traffic Class //用于流量分类标记

Total Length <——> Payload Length //用于标示数据大小

Protocal <——> Next Header //下层协议号

Time To Live(TTL) <——> Hop Limit //存活时间(跳数限制)

IPv4数据包中的其他字段:
Identification : 标志分片
Flags : 标记最后一个分片
Fragment Offset: 偏移位,通过偏移位将每个分片组装起来
Header Checksum: 头部校验和,检查数据包完整性

IPv6数据包中的其他字段:
Flow Label:流标签,通过流标签可以对不同数据流实施相应策略。

(注:可能有部分内容参考于其他博主,仅用于个人学习。)

你可能感兴趣的:(网络)