4.3--入门知识扫盲,IPv4的头部报文解析,数据报分片,地址分类(包你看一遍全部记住)

devtools/2025/3/19 8:04:29/

IPv4协议:网络世界的快递包裹指南(附拆箱说明书)

“IPv4就像一张明信片,既要写清楚地址,又要控制大小别超重” —— 某网络工程师的桌面铭牌

一、IPv4报头:快递面单的终极艺术

1.1 报头结构图(吃货简化版)

Version
煎饼果子摊
IHL
面饼层数
ToS
加几个蛋
Total Length
煎饼总重量
Identification
订单编号
Flags
要不要切
Fragment Offset
切几刀
TTL
保质期
Protocol
夹什么菜
Header Checksum
验货单
Source IP
你家地址
Destination IP
对象地址

在这里插入图片描述
这里我们的第二排是负责报文切片,这个在后面会有详细的概述

1.2 报头字段详解(快递员版)

字段名长度江湖作用现实比喻
Version (版本)4bit声明是IPv4还是IPv6快递公司LOGO
IHL (头部长度)4bit报头长度(单位4字节)面单用了多少张便利贴
ToS (服务类型)8bit快递加急/普通选择顺丰还是邮政
Total Length16bit整个包裹大小(最大65535字节)包裹重量不超过电梯承载
Identification16bit分片身份证号快递单号
Flags (标志位)3bitDF(别切)/MF(还有分片)"易碎勿压"标签
Fragment Offset13bit分片偏移量(单位8字节)拼图的位置编号
TTL (生存时间)8bit最多经过多少路由器快递员体力值
Protocol (协议)8bit上层协议类型(TCP=6,UDP=17)包裹里是文件还是生鲜
Header Checksum16bit头部校验和面单防伪码
Source IP32bit发件人地址你的淘宝收货地址
Destination IP32bit收件人地址女朋友家的地址

二、IP分片:当包裹太大时的骚操作

2.1 分片原理(切蛋糕流程)

graph TDA[原始数据包1500字节] --> B{MTU=500的路由器}B --> C[切!]C --> D[分片1: 500字节]C --> E[分片2: 500字节]C --> F[分片3: 500字节]D --> G((MF=1, Offset=0))E --> H((MF=1, Offset=62))F --> I((MF=0, Offset=124))
分片计算小课堂:
原始数据包:1500字节
MTU限制:500字节
每个分片数据量 = MTU - IP头(20) = 480字节
实际分片数:ceil(1500/480)=4片 (这里示例简化为3片)
偏移量计算:480/8=60 → 实际偏移量需要按8字节对齐

2.2 分片重组规则

  1. 同一身份证:Identification字段相同
  2. 偏移量连续:Offset字段形成序列
  3. 最后一片:MF标志位为0
  4. 超时机制:重组等待时间通常30秒

(段子:某黑客伪造分片导致服务器内存溢出,堪称"分片炸弹")

三、IP地址分类:网络世界的房地产

3.1 传统分类法(小区户型图)

类别地址范围默认掩码现实比喻私有地址段
A类1.0.0.0 - 126.255.255.255255.0.0.0豪华别墅区10.0.0.0/8
B类128.0.0.0 - 191.255.255.255255.255.0.0高端小区172.16.0.0/12
C类192.0.0.0 - 223.255.255.255255.255.255.0普通公寓192.168.0.0/16
D类224.0.0.0 - 239.255.255.255组播专用小区广播站
E类240.0.0.0 - 255.255.255.255保留未使用未开发地块

3.2 CIDR表示法(现代精装公寓)

传统分类:192.168.1.0/24 → 255.255.255.0
CIDR表示:192.168.1.0/26 → 可划分4个子网(每个子网62主机)
子网划分实例:
原始网络:192.168.1.0/24
切成四个子网:
• 192.168.1.0/26 (1-62)
• 192.168.1.64/26 (65-126)
• 192.168.1.128/26 (129-190)
• 192.168.1.192/26 (193-254)

(灵魂配图建议:用俄罗斯套娃表示子网划分)

四、专业知识点总结

4.1 IPv4头部关键字段

  • TTL机制:每经过一个路由器减1,防止数据包无限循环
  • 分片限制:DF=1时禁止分片,常用于路径MTU发现
  • 协议字段对照表
    • 1 → ICMP (网络诊断)
    • 6 → TCP (可靠传输)
    • 17 → UDP (快速传输)
    • 89 → OSPF (路由协议)

4.2 IP地址发展史

  1. 分类寻址:1981年RFC791定义
  2. 子网划分:1985年RFC950引入
  3. CIDR时代:1993年RFC1519终结分类时代
  4. NAT技术:缓解IPv4地址枯竭的续命丹

4.3 分片注意事项

  1. 性能影响:分片增加路由器处理负担
  2. 安全风险:分片可用于规避防火墙检测
  3. 重组漏洞:早期系统存在分片缓冲区溢出风险

五、灵魂问答:为什么需要IP分片?

Q:为什么不直接拒绝大包?
A:就像快递站不能拒收大件,但可以拆分运输Q:分片有什么缺点?
A:1. 丢失任意分片导致整个数据包失效2. 增加网络设备处理负担3. 安全隐患(分片攻击)Q:如何避免分片?
A:使用Path MTU Discovery技术,找到路径最小MTU

“IPv4就像乐高积木,拆开容易组装难” ——《网络工程从入门到改行》


http://www.ppmy.cn/devtools/168284.html

相关文章

MyBatis (三)关联查询

目录 一 学习自定义结果集 1 驼峰命名规则 2 自定义映射规则 二 指定一对一的关联封装进行查询 三 指定一对多的关联封装进行查询 一 学习自定义结果集 解决和数据库对不上的数据被封装为空: 1 驼峰命名规则 在xml文件中: # 启用驼峰命名自动转换…

饮食巧搭配,助力老人对抗进行性核上性麻痹

进行性核上性麻痹是一种较为罕见且复杂的神经系统退行性疾病,严重影响老人的生活自理能力与生活质量。在治疗的同时,合理的饮食搭配对缓解症状、维持身体机能至关重要。 由于疾病导致老人身体机能衰退,日常活动能力下降,却仍需充足…

【Spring】第三弹:基于 XML 获取 Bean 对象

一、获取 Bean 对象 1.1 根据名称获取 Bean 对象 由于 id 属性指定了 bean 的唯一标识,所以根据 bean 标签的 id 属性可以精确获取到一个组件对象。 1.确保存在一个测试类: public class HelloWorld {public void sayHello(){System.out.println(&quo…

linux 基础网络配置文件

使用“ifconfig”命令查看网络接口地址 直接执行“iconfg”命令后可以看到ens33、10、virbr0这3个网络接口的信息,具体命令如下 ifconfig ##查看网络接口地址 ens33:第一块以太网卡的名称 lo:“回环”网络接口 virbr0:虚拟网桥的连接接口 查看指…

理解Akamai EdgeGrid认证在REST API中的应用

在我们高度互联的世界中,快速且安全地将内容传递给用户是重中之重。Akamai 就是应运而生的佼佼者。作为内容分发和云服务的领导者,他们提供了一个名为 EdgeGrid 的平台,帮助使您的Web应用更加快速、可靠和安全。 但是,强大的功能伴…

两款软件助力图片视频去水印及图像编辑

今天给大家分享两款呼声很高的软件,它们都能处理图片和视频去水印相关的问题。其中一款软件在去水印的同时,图像编辑功能也十分出色;另一款软件专注于图片和视频去水印,去除效果好且支持批量处理。下面就来详细了解一下。 Remover…

多线程(四)----线程安全

线程安全问题的万恶之源就是多线程的抢占式执行所带来的随机性. 有了多线程, 此时抢占式执行下, 代码执行的顺序, 会出现更多的变数, 代码执行顺序的可能性就从一种情况变成了无数种情况. 只要有一种情况使得代码结果不正确, 都是视为bug, 线程不安全. 有线程安全的代码 以下…

HarmonyOS三层架构实战

目录: 1、三层架构项目结构1.0、三层架构简介1.1、 common层(主要放一些公共的资源等)1.2、 features层(主要模块定义的组件以及图片等静态资源)1.3、 products层(主要放主页面层和一些主要的资源&#xff…