第8节 IP包头分析

编程入门 行业动态 更新时间:2024-10-14 16:25:26

第8节 IP<a href=https://www.elefans.com/category/jswz/34/1758899.html style=包头分析"/>

第8节 IP包头分析

IP包头分析

  • 1.IP包头数据格式
  • 2.IP包头组成部分及功能
    • 2.1版本
    • 2.2首部长度
    • 2.3优先级与服务类型
    • 2.4总长度
    • 2.5标识符
    • 2.6标志
    • 2.7片偏移
    • 2.8生命周期TTL
    • 2.9协议号
    • 2.10首部校验和
    • 2.11源地址与目标地址
    • 2.12可选项
  • 3总结
  • 4参考文献

1.IP包头数据格式

2.IP包头组成部分及功能

2.1版本

  1. 长度:4bit。
  2. 功能:说明是Ipv4还是Ipv6。
  3. 例子:0100(ipv4)、0110(ipv6)。

2.2首部长度

  1. 长度:4bit。(每个字节的代表包头单位是字节)
  2. 功能:以字节为单位计算数据包的包头长度。
  3. 例子:首部长度最小二进制为“0101”,IP数据包长度20字节;首部长度最大二进制为“1111”,IP数据包长度60字节.

2.3优先级与服务类型

  1. 长度:8bit。
  2. 定义:8位bit定义如下PPPDTRC0,前三个bit代表优先级,中间四个bit表示服务类型,最后一个bit暂未启用。
  3. PPP:定义包的优先级,取值越大数据越重要。
PPP优先级
000普通 (Routine)
001优先的 (Priority)
010立即的发送 (Immediate)
011闪电式的 (Flash)
100比闪电还闪电式的 (Flash Override)
101CRI/TIC/ECP
110网间控制 (Internetwork Control)
111网络控制 (Network Control)
  1. DTRC:各自代表一个服务类型。
DTRC服务类型取值含义
D时延0:普通 1:延迟尽量小
T吞吐量0:普通 1:流量尽量大
R可靠性0:普通 1:可靠性尽量大
C传输成本0:普通 1:成本尽量小

2.4总长度

  1. 长度:16bit
  2. 功能:以字节为单位计算的IP包的长度 (包括头部和数据),所以IP包最大长度65535字节。
  3. 解释:该总长度表示的是一个IP包的总长度,包括上三层数据总和,由于每个数据帧MTU最大值为1500,因此需要分片发送IP包。

2.5标识符

  1. 长度:16bit。
  2. 功能:唯一的标识主机发送的每一份数据报,由主机生成具有唯一性。同一数据包的不同分片之间标识符相同,不同数据包之间标识符不同。

2.6标志

  1. 长度:3bit。
  2. 功能:第1个bit保留(永远为0,代表未启用);第2个bit代表数据包是否分片(0分片,1未分片);第3个bit代表是否为最后一个分片(0是,1不是)。
标志含义
010数据包不分片
000表示该IP分片是IP包的最后一片
001表示该IP分片不是IP包的最后一片,还有后续

2.7片偏移

  1. 长度:13bit。
  2. 功能:表示分片时,每一个分片的数据字段偏移原始数据报开始处的位置,决定分片在重组数据包时的顺序。
  3. 泪滴攻击(TearDrop):指的是向目标机器发送损坏的IP包,诸如重叠的包或过大的包载荷。借由这些手段,该攻击可以通过TCP/IP协议栈中分片重组代码中的bug来瘫痪各种不同的操作系统。
  4. 防御泪滴攻击:在服务器前加防火墙,过滤不安全的包。该方式能阻止不安全的包到达服务器,但是防火墙负荷大,当防火墙过载时,需要请求网络供应商提供流量清洗服务。

2.8生命周期TTL

  1. 长度:8bit。
  2. 功能:设定生命周期,避免垃圾信息一直存在网络空间中。
  3. 解释:在IP包开始进行传送时,先会对该字段赋予某个特定的值(Windows常大于100,linus常小于100),每当IP包经过一个路由器时,TTL值减少1,当如果TTL减少为0,则该IP包会被丢弃。
  4. 应用场景:tracert跟踪,跳了多少跳;Ping 返回的TTL值是初始TTL值。

2.9协议号

  1. 长度:8bit。
  2. 功能:明确上层服务是哪个。
  3. 常用协议号:
协议号协议号二进制协议
100000001ICMP
200000010IGMP
600000110TCP
1700010001UDP
8801011000IGRP
8901011001OSPF

2.10首部校验和

1.长度:16bit。
2. 功能:用来做IP头部的正确性检测,但不包含数据部分。 因为每个路由器要改变TTL的值,所以路由器会为每个通过的数据包重新计算这个值。

2.11源地址与目标地址

  1. 长度:32bit。
  2. 功能:标识了这个IP包的起源和目标地址。要注意除非使用NAT,否则整个传输的过程中,这两个地址不会改变。

2.12可选项

  1. 长度:可变,最长320bit。

  2. 功能:主要用于测试,由起源设备根据需要改写。

  3. 可选项目包含以下内容:

    (1)松散源路由(Loose source routing):给出一连串路由器接口的IP地址。IP包必须沿着这些IP地址传送,但是允许在相继的两个IP地址之间跳过多个路由器。

    (2)严格源路由(Strict source routing):给出一连串路由器接口的IP地址。IP包必须沿着这些IP地址传送,如果下一跳不在IP地址表中则表示发生错误。

    (3)路由记录(Record route):当IP包离开每个路由器的时候记录路由器的出站接口的IP地址。

    (4)时间戳(Timestamps):当IP包离开每个路由器的时候记录时间。

  4. 填充,IP包头总体长度需要是32bit的整数倍,对可选项不足32bit整数倍的部分进行填充。

3总结

  1. 掌握IP包头结构及其各部分的功能。
  2. 理解首部长度与总长度的区别。
  3. 理解标识符、标志、标识符对IP包分片与重组的意义。

4参考文献

  1. 《IP包头结构详解》
  2. 《IP包头分析》
  3. 《IP包头内容详解》
  4. 《IP包头格式及详细解释》
  5. ☆《IP协议安全:泪滴攻击与碎片攻击》

更多推荐

第8节 IP包头分析

本文发布于:2024-03-10 06:45:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1727269.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:包头   IP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!