IP协议详解

文章目录

参考视频

https://www.bilibili.com/video/BV12K4y1d7kX/

抓取IP协议内容

IP协议详解

IP协议字段解释

  • version:版本
  • header length:头长度
  • differentiated service field:差分服务区域
  • total length:总长度
  • identification:标识位
  • flags:标志位
  • fragment offset:偏移量
  • time to live:生存周期
  • Protocol:上层协议
  • Header checksum:校验和
  • Source:源IP地址
  • destination:目的IP地址

IP协议处理分片

MTU

  • 最大传输单元,默认是1500字节
  • 指的是一个数据包从网卡发出时,最大的total length的长度
  • 如果大于1500字节就会进行分片

举例讲解

ping -s 5000 192.168.1.2

ping -s 4000 192.168.1.2

理解identification的作用

  • 数据包1:5000字节需要分片,分成1500,1500,1500,500,四片
  • 数据包2:4000字节需要分片,分成1500,1500,1000,三片

identification的作用就是用来标识一个分片的,也就是说:数据包1的identification都是一致的,数据包2的identification也都是一致的

理解flags的作用

  • Reserved bit:保留位,暂时没作用
  • Don’t fragment:DM位,该位置1,说明该数据包不能被分片
    • 当一个数据包大于接口的MTU时,又不能分片,那么网络设备就会丢弃该数据包。主要是用来测试接口的MTU大小的
  • More fragment:FM位,如果是最后一个分片,就用0来表示,不是最后一个分片就用1来表示

理解fragment offset的作用

  • fragment offset也叫偏移量,偏移的计算是payload部分
  • payload指的是去掉二层头部和三层头部后的内容
  • 1500字节的分片,指的是IP+payload的大小
  • 加上E2,整个数据包抓包看到的大小是1514字节

整个数据包的组成

14B + 20B + 1480B

  • 第一个分片的payload取值范围:0~1479

    • 偏移量:0
  • 第二个分片的偏移量:1480-2959

    • 偏移量:1480
  • 第三个分片的偏移量:2960-4439

    • 偏移量:2960
  • 第四个分片的偏移量:4440~5919

    • 偏移量:4440

抓包验证分片字段

上一篇:关于Android开发的面试经验总结,已拿offer附真题解析


下一篇:android插件化好处,写给程序员的Flutter详细教程,面试必问