目录
一、IPv4报文格式
1.IP报文格式
1)版本(4位)
IPv4报文版本字段固定为0100,对应十进制为4,表示IPv4报文。
IPv6报文版本字段固定为0110,对应十进制为6。
2)头部长(5-15,单位4字节)
头部长字段为4位,为2^4=16,可以表示的数值[0,15],单位为4字节,取值范围5-15,对应20-60字节。
IPv4头部(20~60字节): IPv4报头长度可变,基本IP头部为20字节,通过选项字段可扩展至最多60字节。
- 基本IP头部长度:5x4B=20B
- IP头部最长:15x4b=6B
3)TOS字段(8位)
用于区分服务,设置不同服务的优先级。例如,可将重要服务的优先级设为较高值。
4)总长度(16位)
16位字段,表示IP报文的总长度,包含IP报头。最大值为2^16-1=65535字节。
5)标识(16位)
相当于IP报文的ID,每发送一次加一,用于唯一标识报文。
6)标志(3位)和分片偏移(13位)
涉及IP分片
7) 生存期(TTL,8位)
设置数据包可经过的路由器上限,每经过一个路由器TTL减一。取值范围0-255。
8)协议(8位)
包含一个数字,表示IP报文内封装的上层协议类型。例如,协议号1表示ICMP,6表示TCP,17表示UDP。
9)头部校验和(16位)
对IP头部进行校验,校验值放在该字段。由于TTL值每经过一个路由器会变化,因此头部校验和需重新计算。
10)源IP地址、目的IP地址(32位)
32位源IP地址和目的IP地址
11 )选项字段(任意)
可选字段,最多320位即最大40字节。若存在,则IP头部最大可达60字节。
12) IP数据(任意)
数据部分最多65515字节(65535字节减去20字节基本头部)。
2.应用案例
1)例题:IPv4报文样式
通过wireshark抓包可以观察IPv4报文的格式:
2)例题:IHL字段最小值和最大值
解析: IHL字段占4位,单位为4字节,可表示最小值为5(54字节=20字节),最大值为15(154字节=60字节)。因此,IP头部长度最小为20字节,最大为60字节。
答案选A。
3)例题:IPv4无限转发控制字段
解析: 为控制IP数据报在网络中无限转发,IPv4数据报首部设置了TTL(生存期)字段。TTL值每经过一个路由器减一,当TTL值为0时,数据包被丢弃,最大为255。
答案选C。
4)例题:IPv4最大长度
解析: IPv4报文的最大能表示为2^16=65536[0,65535],最大长度65535字节。
答案选D。
5)例题:IP报酬首部有填充原因
解析: IP报酬首部有填充字段的原因是IHL(首部长度)必须是4字节(32位)的整数倍。如果不够,需用全0填充字段补齐。
答案选A。
10)例题:IPv4首部最大值
解析: IPv4首部的最大值为60字节,原因是IHL字段长度为4比特,最大能表示16个数(0-15),但单位取4字节,因此实际使用5-15这些数值,对应20-60字节。
答案选D,B,IHL字段长度为4比特。
3.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
IPV4报文格式 | 包含版本号、头部长、TOS字段、总长度、标识、标志位、TTL、协议号、校验和等字段 | 版本号固定值(IPv4: 0100→4,IPv6: 0110→6) | ⭐⭐ |
头部长字段 | 4比特,单位4字节,取值5-15(对应20-60字节) | 高频考点:最小5(20字节)、最大15(60字节) | ⭐⭐⭐⭐ |
TOS字段 | 区分服务优先级(如领导数据设高优先级) | 网络拥塞时优先转发高优先级数据 | ⭐⭐ |
总长度字段 | 16位,最大65535字节(含IP头和数据) | 计算题:数据部分最大=65535-20(基本头)=65515字节 | ⭐⭐⭐ |
TTL字段 | 生存周期(0-255),每经三层设备减1 | 控制无限转发,常见初始值64/128/255 | ⭐⭐⭐ |
协议号 | 标识上层协议(1=ICMP,6=TCP,17=UDP) | 必背特殊值 | ⭐⭐⭐ |
头部校验和 | 校验IP头部(TTL变化需重新计算) | 不校验数据部分 | ⭐⭐ |
IP分片相关 | 标识(ID)、标志位、片偏移 | 分片规则需结合后续讲解(未展开) | ⭐⭐⭐⭐ |
选项字段 | 扩展头部(0-40字节),最大总头60字节 | 实际抓包中罕见选项字段 | ⭐⭐ |
抓包验证 | Wireshark示例:版本号、头部长5(20字节)、协议号6(TCP) | 二进制转十进制技巧(如0101→5) | ⭐⭐ |
高频考题 | 头部长单位/范围、TTL作用、总长度最大值、填充字段原因 | 易错点:头部长单位非1字节而是4字节 | ⭐⭐⭐⭐ |
二、IP分片计算
1. IP分片定义
传输限制:IP报文最大长度65535字节,以太网MTU(最大传输单元)为1500字节
运输类比:相当于货轮(65535载重)需将货物分装给多个火车(1500载重)运输
帧结构:以太网帧包含首部14字节 + IP首部20字节 + TCP首部20字节+应用数据+尾部4字节,MTU范围46−1500字节
1)例题#IP分组分片计算
隐含条件:标准IP头部长度20字节,MTU1500字节
计算步骤:
- 原始数据:3000字节(含头)→ 数据部分2980字节(3000−20)
- 分片1:总长1500字节(含20字节头),数据1480字节
- 分片2:同分片1,数据1480字节
- 分片3:剩余数据20字节(2980−1480×2),总长40字节(20+20)
MF标志:
- 分片1/2置1(后续有分片)
- 分片3置0(末片)
偏移量计算:
- 分片1:0(基准)
- 分片2:1480/8=185(以8字节为单位)
- 分片3:(1480+1480)/8=370
总长度变化:原始3000字节→分片后3040字节(多出40字节来自新增的2个IP头)
攻击案例:泪滴攻击(Teardrop)通过篡改偏移量使分片无法重组
2. 类比理解IP分片
类比模型:
- 大型集装箱:总重3000斤(货物2980斤+箱体20斤)
- 小型集装箱:限重1500斤(箱体均重20斤)
分装方案:
- 前2箱:各装1480斤货物(总重1500斤)
- 第3箱:装20斤剩余货物(总重40斤)
对应关系:货物重量=IP数据长度,箱体重量=IP头部长度
3. 应用案例
1)例题#分片计算
分片数量计算:当IP数据报总长度3000B经过MTU为1500B的链路时,需分成3片。第一片数据部分1480B(总长1500B含20B首部),第二片相同,第三片剩余20B数据(总长40B)。
偏移量计算:最后一个分片的Offset字段值为370,计算方式为1480*2/8=370(1480是前两片数据长度,8是因偏移量以8字节为单位)。
首部说明:标准IP首部为20字节(无可选字段时),每个分片都需携带独立首部。
答案:(24)B,(25)A
2)例题#分段和重装配字段作用
字段功能:
- 段偏置值:指示分片在原始报文中的位置(如370表示从第370*8=2960字节开始)
- M标志:MF=1表示后续还有分片,MF=0表示当前是最后分片
- 报文ID:同一报文的所有分片标识符相同
- 数据长度:记录当前分片的数据部分长度
典型错误:易混淆M标志与段偏置值的作用,需注意M标志只表示分片连续性。
答案:(23)A , (24)B
3)例题#分段和重装配用到哪些字段
核心字段:
- 标识符:唯一标识同一报文的不同分片(如随机生成的16位ID)
- M标志:More Fragment位,分片连续性指示
- 片偏移:以8字节为单位的相对位置
- 数据长度:当前分片有效载荷长度
重组原理:接收方通过标识符聚合分片,按片偏移排序,当收到MF=0的分片时完成重组。
答案:(16)B,(17)D, (18)A
4)例题#分片计算
分片细节:
- 3000B报文在1500B MTU链路中分为3片(1480+1480+20数据)
- 最后分片总长40B(20B首部+20B数据),但实际以太网需填充至64B
注意点:题目可能忽略最小帧长限制,实际网络传输时需考虑数据链路层要求。
答案:(22)B, (23)B
5)例题#分片叙述判断
IPv4/6区别:IPv4允许中间路由分片,IPv6通过MTU发现机制避免中间分片(仅在源端分片)
重组位置:始终在目的端重组,因分组交换可能导致分片走不同路径
分片验证:4000B报文分3片,最后一片MF=0且offset=370(1480*2/8)正确
典型错误:选项B错在"路由器重组",选项C的"每片4000B"明显矛盾
答案:D
6)例题#IP分片重组地点
分片发生点:
- IPv4:源端或中间路由器(当MTU突然变小时)
- IPv6:仅源端(通过Path MTU Discovery预先确定最小MTU)
重组原则:
-
- 必须目的端重组,因分片可能经不同路由到达
- 中间路由器不存储状态,无法保证收齐所有分片
记忆技巧:"IPv4处处可分,IPv6源头搞定;重组只看终点,路由绝不等待"
答案:B
4.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
IP分片原理 | MTU限制导致分片需求:IP报文最大65535字节 vs 以太网MTU 1500字节; 类比说明:货轮(65535)需分装到火车(1500)运输 | 分片会增加额外IP头(每个分片20字节) | ★★★☆☆ |
分片计算步骤 | 1. 计算净数据长度(总长-IP头); 2. 按MTU划分分片(1500-20=1480数据/片); 3. 处理剩余数据 | 易错点:总长度=分片数据+新增IP头(3000→3040字节) | ★★★★☆ |
分片字段解析 | MF标志位:1=还有后续分片,0=最后分片; 偏移量计算:前片数据长度/8(必须8字节对齐) | 偏移量计算需排除IP头长度 | ★★★★☆ |
分片重组机制 | 重组位置:仅在目的端重组(非路由器); 重组依据:标识符+偏移量+MF标志 | 分组交换特性导致中间节点无法重组 | ★★★☆☆ |
分片攻击类型 | 泪滴攻击(Teardrop):篡改偏移量导致重组错乱 | 攻击目标是偏移量字段 | ★★☆☆☆ |
IPV4 vs IPV6 | IPV4:中间网络可分片; IPV6:通过MTU发现避免分片 | IPV6分片仅发生在源端 | ★★★★☆ |
典型考题分析 | 1. 3000字节分片数量计算(3片); 2. 最后分片偏移量(370); 3. MF标志位设置规则 | 注意以太网最小帧长64字节的隐含条件 | ★★★★☆ |
三、IPv4地址分类
基本结构:IPv4地址为32位二进制数,分为A、B、C、D、E五大类
主要分类:
- A-C类:单播地址,应用最广泛
- D类:组播地址,部分场景使用
- E类:保留地址,科研用途
地址范围:
- A类:1.0.0.0-127.255.255.255(排除特殊地址。10.0.0.0~10.255.255.255私有地址;127.X.X.X保留地址,用于循环测试)
- B类:128.0.0.0-191.255.255.255(172.16.0.0~172.31.255.255私有地址,169.254.X.X保留地址)
- C类:192.0.0.0-223.255.255.255(192.168.0.0~192.168.255.255私有地址)
- D类:224.0.0.0-239.255.255.255
- E类:240.0.0.0-255.255.255.255
1. 特殊IPv4地址
1)0.0.0.0
主机端:
- DHCP分配过程中表示本机
- 示例:DHCP Discovery报文源地址为0.0.0.0,目的地址255.255.255.255,UDP端口68→67
服务器端:
- 表示本机所有IPv4地址
- 示例:Web服务监听0.0.0.0时,可通过任意本机IP访问
路由:
- 表示默认路由,当无精确匹配时使用
2)255.255.255.255
三层广播地址:
- 目标地址为255.255.255.255时,同一广播域内所有主机都会接收
- 广播域范围可变,与子网划分相关
3)169.254.0.0/16
自动专用地址(APIPA):
- DHCP故障或超时时自动分配
- 可进行局域网通信但无法访问互联网
- 示例:两台169.254.x.x主机可互相通信
4)127.0.0.0/8
本地环回地址:
- 范围:127.0.0.1-127.255.255.255
- 功能:ping通任意127.x.x.x地址证明TCP/IP协议栈正常
5)RFC1918私有IP地址
特性:
不能直接访问公网,需通过NAT转换
地址范围:
- A类:10.0.0.0/8(10.0.0.1~10.255.255.255)1个A类网络
- B类:172.16.0.0/12(172.16.0.1~172.31.255.255)16个B类网络聚合
- C类:192.168.0.0/16(192.168.0.1~192.1689.255.255)256个C类网络聚合
6)常见组播地址
- 224.0.0.1:所有主机
- 244.0.0.2:所有路由器
- 224.0.0.5:所有运行OSPF路由器
- 224.0.0.6:DR/BDR的组播接收地址
- 224.0.0.9:RIPv2组播更新地址
- 224.0.0.18:VRRP组播地址
2. 应用案例
1)例题:自动专用IP地址范围和使用情况
- 关键点:APIPA地址范围为169.254.0.0/16
- 使用场景:DHCP分配失败时自动获取
- 答案:27题B,28题B
2)例题:私有地址个数和地址描述判断
- A类错误:仅1个私有地址段(10.0.0.0/8)
- B类错误:范围应为172.16.0.0-172.31.255.255
- C类正确:256个C类网络(192.168.0.0/16)
- 答案:D
3)例题:RIP路由协议
- RIP度量标准:跳数(A)
- RIPv2组播地址:224.0.0.9(C)
- 对比:OSPF使用224.0.0.5和224.0.0.6
- 答案:23题A,24题C
3.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
IPv4地址分类 | 32位地址,分为A/B/C/D/E五类,A/B/C为单播地址,D类为组播,E类保留 | A类(1-127)、B类(128-191)、C类(192-223)、D类(224-239)范围需记忆 | ⭐⭐ |
特殊IPv4地址 | - 0.0.0.0:DHCP初始请求源地址/服务器监听所有本地IP - 255.255.255.255:广播地址 - 169.254.x.x:DHCP失败后自动分配地址 - 127.x.x.x:环回地址(测试协议栈) | 0.0.0.0在DHCP Discovery中的用途 169.254.x.x的通信限制(仅局域网) | ⭐⭐⭐ |
私有地址(RFC1918) | - A类:10.0.0.0/8 - B类:172.16.0.0/12(16个B类网段聚合) - C类:192.168.0.0/16(256个C类网段聚合) | B类私有地址范围(172.16-172.31)易错 聚合后掩码(B类/12、C类/16) | ⭐⭐⭐⭐ |
组播地址 | - OSPF:224.0.0.5(AllSPFRouter)、224.0.0.6(AllDRouter) - RIPv2:224.0.0.9 | RIPv1广播 vs. RIPv2组播(224.0.0.9) OSPF组播地址功能区分 | ⭐⭐⭐ |
路由协议对比 | - RIP:基于跳数,v1广播/v2组播 - OSPF:基于带宽,使用组播224.0.0.5/6 | RIP与OSPF的度量标准差异 版本更新方式(广播/组播) | ⭐⭐⭐⭐ |