【笔记】IP数据包格式

前言

IP数据包格式

IP数据包

  • IP数据包(三层数据)包头
1
版本(4bit)-首部长度(4bit)-优先级与服务类型(8bit)-总长度(16bit)-标识符(16bit)-标志(3bit)-段偏移量(13bit)-TTL(8bit)-协议号(8bit)-首部校验和(16bit)-源地址(32bit)-目标地址(32bit)-可选项(0-40bit)

版本

  • 标识IPv4或者IPv6

首部长度

  • 标识整个IP包头的字节数
  • 首部长度的长度范围为20-60字节,这个数值取决于首选项

优先级与服务类型

  • 通常为了限网速
  • 优先级为3bit,服务类型为4bit,剩下1bit为预留

总长度

  • 标识整个IP包的总长度(包括三层包头、四层包头、五层数据),单位字节

段偏移量

  • 如果一个IP包的数据很大,(包括IP包头在内的数据)超过了1500字节,那么会将数据进行分片,每一分片最多只能承载1500-20=1480字节个数据(这个数据包括四层包头和五层数据),而接收数据的网卡,在收到多个分片数据时,需要将数据重新组合,由段偏移量来控制数据的次序
  • 第1个分片段偏移量为1480*0=0字节,第2个分片段偏移量为1400*1=1480字节,以此类推

标识符

  • 如果多个IP包的数据很大,分片后如果仅通过段偏移量确认次序,很容易混淆,可以使用标识符进行分辨
  • 标识符为随机生成的id

标志

  • 第一个bit一定为0,目前为保留位

  • 第二个bit 为0表示进行了分片 为1表示没进行分片

  • 第三个bit 为1表示不是最后一个分片 为0表示是最后一个分片

TTL(Time to life)

  • 生存时间

  • 每经过一个路由器,TTl值-1,直到达到1,此时不再-1,直接被杀掉

  • 初始值

微软系列操作系统初始值通常大于100 Unix系列操作系统初始值通常小于100 其他网络设备初始值通常等于255

  • 作用:防止IP包在互联网上永久的循环下去

协议号

  • 识别上层协议

上层是TCP协议,协议号为6 上层是UDP,协议号为17 “上层”是ICMP,协议号为1

首部校验和

  • 校验IP包头是否被篡改

源地址

  • 源IP地址

目标地址

  • 目标IP地址

完成

参考文献

哔哩哔哩——千锋教育网络安全学院