【25软考网工】第五章(5)ICMP和ICMPv6、NDP、IP组播技术和MPLS
目录
一、ICMP
1. ICMP基础
2.ICMP应用
1)ping命令
2)tracert原理演示
3)ICMP生存时间超时报文类型(网规2015年11月第29题)
ICMP生存时间超时报文类型
4)例题:ping命令失败原因判断(网规2018年11月第17题)
网络诊断基础
5)例题:IP数据报首部校验错误路由器动作(网规2019年11月第49题)
数据报错误处理机制
6)例题:服务器操作系统与跳数判断 网规2020年真题解析
路由追踪验证
TTL值原理与应用
操作系统类型判断
7)例题:ICMP封装层次(网工2021年5月第20题)
8)例题:Traceroute命令ICMP超时报文Type和Code(网工2023年5月第17题)
9)例题:IP报文TTL减至0发送的ICMP消息(网工2024年11月第20题)
3.知识小结
二、ICMPv6
1. 差错报文[0,127]
1)Path MTU发现
2. 信息报文[128,255]
1)Ping
三、NDP
1. NDP定义的信息和功能
2. NDP报文类型及功能
编辑
3. IPv6地址自动配置的分类
1)IPv6地址无状态自动配置过程
4. 应用案例
1)例题:IPv6无状态配置过程
5.知识小结
四、组播技术
1. 组播应用场景
1)网络协议通信
2)互联网直播等视频业务
2. 组播IP地址
3. 组播MAC地址
4. 常见组播协议
5. 组播网络架构
6. 应用案例
1)例题#组播分组数量
五、MPLS
1. MPLS的发展历程
2. MPLS的标签分发与操作
1)例题#压标签操作设备
2)例题#传递标签协议
3.知识小结
一、ICMP
1. ICMP基础
ICMP(Internet Control Message Protocol,Internet控制报文协议),封装在IP报文中,协议号为1,用来传递差错、控制、查询等信息,典型应用ping/tracert依赖ICMP报文。
2.ICMP应用
1)ping命令
Echo Request和Echo Reply分别用来查询某些信息,进行差错检测。
ICMP报文分析
报文类型:
- Echo request: Type=8, Code=0 (ping请求)
- Echo reply: Type=0, Code=0 (ping响应)
- TTL超时报文: Type=11, Code=0 (传输过程中TTL超时)
关键字段:
- Identifier: 标识字段(0x0001)
- Sequence number: 序列号(52/13312等)
- TTL值: 显示生存时间(64,53等)
2)tracert原理演示
- 作用:跟踪从起点到目标节点经过的路径
- 注意:二层交换机只负责转发数据
- 原理: TTL递增,当TTL变为0返回报错信息
- 工作流程:
- 主机A发送TTL=1的ICMP Echo请求
- 第一跳TTL=0,路由器(RTA)返回TTL超时报文,主机A因此获取到RTA的地址
- 主机A发送TTL=2的ICMP Echo请求
- 第二跳TTL=0路由器(RTB)返回TTL超时报文,主机A因此获取到RTB的地址
- 依次递增TTL直到到达目标主机B
实际抓包分析
- 报文序列:
- 前3个包: TTL=1的Echo request(Type=8,Code=0)-->第一跳
- 第4-6个包: TTL=2的Echo request-->第二跳
- 第7-9个包: TTL=3的Echo request-->第三跳
- 响应规律:
- 每个TTL值发送3个探测包
- 中间路由器返回TTL超时报文(Type=11,Code=0)
最终目标返回Echo reply(Type=0)
关键知识点
- 重要考点:
- TTL超时报文: Type=11, Code=0 (考试出现概率70%)
- Echo request/reply: Type=8/0, Code=0
- 实际应用:
- 百度服务器使用负载均衡(每次返回不同IP)
- 正常网络路径跳数通常不超过30跳
- 运营商地址可能使用二次NAT(如100.x.x.x)
- 报文分析技巧:
- 通过Sequence number跟踪报文序列
- TTL值递增规律: 1→2→3...
- 每个TTL值发送3个探测包计算平均延迟
实验注意事项
- 实验验证:
- 建议自行抓包观察TTL递增规律
- 注意区分本地网关和公网路由器的响应
- 超时(*)表示节点未响应ICMP报文
- 常见误区:
- 误认为每次探测TTL都会递增(实际每组3个相同TTL)
- 忽略Type=11报文的诊断价值
- 不理解100.x.x.x是运营商NAT地址
3)ICMP生存时间超时报文类型(网规2015年11月第29题)
- 关键提示:题干明确"在数据包组装期间"的TTL=0情况
- 选项分析:
- A/B项(地址/网络不可达)属于ICMP目的不可达类型
- C项(校验差错)与TTL机制无关
- D项(分片丢失)是组装失败的典型原因
- 答案验证:通过ICMP报文类型代码区分(类型11代码0为传输超时,类型11代码1为组装超时)
ICMP生存时间超时报文类型
- 传输期间TTL=0:典型场景如tracert应用,路由器在TTL减为0时向客户端回复该报文
- 组装期间TTL=0:发生在IP分片重组阶段,表明存在分片丢失导致无法完成重组
4)例题:ping命令失败原因判断(网规2018年11月第17题)
- 排除法应用:
- 排除A项(TCP/IP配置):域名解析成功说明协议栈正常
- 排除B项(DNS故障):已获取正确IP地址
- 排除C项(ARP攻击):网关错误会导致DNS解析失败
- D,正选依据:ACL拦截可能针对特定主机(其他主机访问正常)
网络诊断基础
- DNS解析正常标志:能正确显示域名对应的IP地址(202.117.112.36)
- 网络不可达特征:返回"Destination net unreachable"且往返时间为0ms
5)例题:IP数据报首部校验错误路由器动作(网规2019年11月第49题)
- 行为判断:
- 排除A项(纠正错误):网络设备不具备数据修正能力
- 排除B项(转发):错误数据报必须丢弃
- 排除D项(通知目的端):ICMP报文的正确发送方向
- 核心考点:校验错误属于致命错误,必须终止传输
- 答案:C
数据报错误处理机制
- 纠错原则:网络层不进行数据修复(纠错码开销过大)
- 标准流程:丢弃错误数据报并发送类型12代码0的ICMP差错报文
- 通知对象:必须反馈给源端而非目的主机
6)例题:服务器操作系统与跳数判断 网规2020年真题解析
- 解题步骤:
- 观察返回TTL值为50,排除初始255(205跳不合理)和128(78跳不合理)的情况
- 确认64-50=14跳符合网络实际情况
- 查表确定TTL64对应FreeBSD系统
- 易错点: 容易忽略全球路由跳数限制而选择理论计算值(如255−50=205跳)
- 参考答案: (27)C-FreeBSD;(28)C-14跳
- 考点强调: 第二空跳数计算是固定考点,需重点掌握计算方法和合理性验证。
路由追踪验证
- 抓包分析原理: 通过Wireshark观察TTL递减过程,如初始255收到253说明经过2个三层设备。
- 本地网关特征: 网关返回报文TTL通常为64(未减),证明与终端直接相连无中间设备。
- 实验验证建议: 推荐使用ping+tracert组合命令配合抓包工具进行实践验证。
TTL值原理与应用
- TTL作用机制: 表示数据包在网络中经过的最大跳数,每经过一个路由器减1。常见初始值有255、128和64三种。
- 跳数计算方法: 用初始TTL减去接收到的TTL值。例如初始64收到50,则跳数=64−50=14跳。
- 全球路由限制: 实际网络中任意两点间路由跳数通常不超过30跳,这是判断计算合理性的重要依据。
操作系统类型判断
- 判断依据: FreeBSD系统默认TTL为64,Windows系统多为128,Unix类系统可能为255。
- 可靠性说明: 该方法在现代网络环境中准确性有限,因操作系统可自定义TTL初始值,不同版本也可能存在差异。
- 重点提示: 考试中需记忆典型系统的默认TTL值,实际工作中应结合其他检测手段。
7)例题:ICMP封装层次(网工2021年5月第20题)
- 协议层级:ICMP是TCP/IP分层模型中的第三层(网络层)协议
- 封装方式:ICMP报文直接封装在IP数据报中进行传送
抓包验证:通过Wireshark抓包可见ICMP报文上层直接对应IPv4头部
- 选项分析:
- A.以太帧:错误,这是第二层封装
- B.IP数据报:正确,网络层协议直接封装
- C.UDP报文:错误,属于传输层
- D.TCP报文:错误,属于传输层
- 答案:B
- 考点提醒:这是基础考点,注意区分不同协议的分层位置
- 记忆技巧:网络层协议(如ICMP)直接使用IP封装,类比信件(ICMP)需要信封(IP)邮寄
8)例题:Traceroute命令ICMP超时报文Type和Code(网工2023年5月第17题)
- 关键考点: 中间路由器返回的ICMP报文类型和代码值
- 选项分析:
- A选项(Type=3)是目的不可达报文
- B选项(Type=8)是回显请求报文
- C选项(Type=11)是TTL超时报文
- D选项(Type=12)是参数问题报文
- 正确答案: C(Type=11,Code=0)
- 记忆要点: "TTL exceeded in transit"对应Type=11,Code=0
- 平台差异: Windows系统使用tracert命令,Linux系统使用traceroute命令,两者功能相同但名称不同
- 返回机制: 中间路由器返回TTL超时报文(Type=11,Code=0),终点返回端口不可达报文
9)例题:IP报文TTL减至0发送的ICMP消息(网工2024年11月第20题)
- 关键考点: TTL减至0时触发的ICMP消息类型
- 选项分析:
- A选项是目的不可达消息
- B选项是TTL超时消息
- C选项是参数问题消息
- D选项是源站抑制消息
- 正确答案: B(TTL Exceeded)
- 技术细节: 实际返回的是"TTL exceeded in transit"消息,属于ICMP超时报文
相关概念
- TTL机制: 当IP报文在网络中传输时,每经过一个路由器TTL值减1
- 触发条件: 当TTL值减至0时,路由器会丢弃该报文并返回ICMP错误消息
3.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
ICMP协议基础 | - 直接封装在IP报文中,协议号为1; - 功能:传递差错、控制、查询网络状态 | 协议号=1(高频考点); 与TCP/UDP协议号区分 | ★★☆☆☆ |
ICMP报文类型 | - Type 8 Code 0:Echo Request(拼请求); - Type 0 Code 0:Echo Reply(拼回应); - Type 11 Code 0:TTL超时(传输期间); - Type 11 Code 1:组装超时(分片丢失) | Type/Code组合(必考); 区分传输超时 vs 组装超时 | ★★★☆☆ |
Ping命令原理 | - 发送Echo Request,接收Echo Reply; - 测试连通性、时延(如41ms) | 底层为ICMP协议; 防火墙过滤需放行协议号1 | ★★☆☆☆ |
Traceroute原理 | - 通过TTL递增触发超时报文(Type 11); - 每跳发送3次探测包(默认) | TTL超时报文=11/0(高频考点); 二层交换机不显示IP地址 | ★★★★☆ |
TTL值分析 | - 初始值:Windows=128,Linux=64; - 跳数计算:初始TTL - 接收TTL(如64-50=14跳) | 操作系统推断(不准确); 实际跳数限制(≤30) | ★★★☆☆ |
ICMP错误处理 | - 校验错误:丢弃报文并通知源端; - 不纠正错误(仅检错重传) | 通知源端(非目的端); 与纠错码区别 | ★★☆☆☆ |
典型考题 | - 过滤Ping需配置协议号1; - Traceroute返回Type 11 Code 0; - TTL超时原因(传输/组装) | 协议号、Type/Code(70%出现率); ACL拦截导致拼不通(非ARP攻击) | ★★★★☆ |
二、ICMPv6
IPv6下的ICMP报文,主要分为差错报文和信息报文
1. 差错报文[0,127]
类型范围:Type字段最高bit为0,取值范围[0,127],用于报告IPv6数据包转发过程中的错误
典型应用:目的不可达、超时等错误反馈
底层机制:通过报错信息实现功能,类似traceroute记录路径信息
1)Path MTU发现
- IPv6特性:中间设备不进行分片,分片仅在源节点完成
- 工作原理:通过ICMPv6差错报文反馈路径最小MTU值
- 性能优势:避免中途分片导致的性能下降,类似TCP的MSS协商
- 工作示例:1500→1400→1300的MTU递减过程,最终以1300字节通信
- PMTU(Path MTU)就是路径上的最小接口MTU
2. 信息报文[128,255]
类型范围:Type字段最高bit为1,取值[128,255],用于网络管理和配置
典型应用:地址自动配置、组播成员管理等
1)Ping
- 报文类型:
- Echo Request(Type=128,Code=0):探测请求
- Echo Reply(Type=129,Code=0):响应回复
- 协议差异:与IPv4的ICMP类型值不同,但功能实现相同
三、NDP
1. NDP定义的信息和功能
协议基础:基于ICMPv6实现的邻居发现协议
包括:路由器宣告、路由器请求、路由重定向、邻居请求和邻居宣告
- 核心功能:
- 路由器发现:通过RS/RA报文发现链路上路由器,获得路由器上的通告信息。
- 无状态自动配置:利用路由器通告RA报文的前缀信息,终端自动生成IPv6地址
- DAD检测/重复地址解析:获得地址后,进行重复地址检测,确保地址不存在重复冲突,类似免费ARP的地址冲突检测,替代IPv4的ARP功能(NS/NA报文)
- 地址解析:请求目的网络地址对应的数据链路层地址,类似ARP的功能
- 邻居状态跟踪:通过NDP发现链路上的邻居并跟踪邻居状态,IPv6邻居表和在IPv4中的ARP表类似
- 前缀重编址:路由器对所有通告的地址前缀进行灵活配置,实现网络重编制
- 重定向:告知其他设备,到达目标网络的更优下一跳,优化路由路径(类似ICMP重定向)
2. NDP报文类型及功能
报文对应:
- RS(133)/RA(134):路由请求报文/路由器通告报文,可以实现路由器发现与地址生成配置
- NS(135)/NA(136):邻居请求报文/邻居通告报文,类似ARP请求和ARP通告
- 重定向(137):路径优化
功能映射:
- RS/RA实现路由器发现和前缀重编址
- NS/NA实现地址解析(ARP等效功能)和重复地址检测
3. IPv6地址自动配置的分类
无状态配置:
- 特点:不需要IPv6地址分配服务器保存和管理每个节点的状态,不记录终端具体地址,仅分配前缀(不完整)
- 实现:基于NDP协议(RS/RA报文)
有状态配置:
- 特点:IPv6分配服务器必须保存每个节点的状态信息(全部)
- 实现:DHCPv6服务器记录全地址
类比:"全款购房"与"按揭购房"的区别
1)IPv6地址无状态自动配置过程
生成链路地址:PC1基于本地的接口ID自动生成链路本地单播地址fe80::/10地址
DAD检测:PC1使用NS/NA检测地址冲突,如果改地址无冲突则可启用,此时PC1具备IPv6连接能力
RS报文--路由器发现:PC1发送RS请求,尝试发现路由器
RA报文--获取前缀:R1回应RA,鞋带IPv6前缀,PC1接收RA报文获得/64前缀
生成全局地址:PC1使用前缀+接口ID(EUI-64)组成128位IPv6单播地址
最终检测:PC1对新地址再次执行DAD检测
4. 应用案例
1)例题:IPv6无状态配置过程
- 关键步骤:首先生成链路本地地址(fe80::),再发送RS报文
- 报文对应:RS(133)请求路由器信息,RA(134)回复前缀,如果需要进行的是冲突检测则发送NS
- 典型错误:容易混淆NS与RS的适用场景
- 正确答案:(33)D链路本地地址;(34)B Router Solicitation
5.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
ICMPv6报文分类 | 分为差错报文(Type 0-127)和信息报文(Type 128-255) | 差错报文用于反馈网络问题(如目的不可达、超时);信息报文用于地址自动配置、组播管理 | ⭐⭐ |
Path MTU发现机制 | 通过ICMPv6差错报文动态探测路径最小MTU,避免IPv6中间设备分片 | 依赖ICMPv6差错报文(类似Traceroute原理),仅源节点分片 | ⭐⭐⭐ |
NDP协议(邻居发现协议) | 基于ICMPv6实现,包含5种报文类型(RS/RA/NS/NA/重定向) | 功能对比: - RS/RA:路由器发现、前缀获取(类似DHCP) - NS/NA:地址解析、重复检测(替代ARP) | ⭐⭐⭐⭐ |
IPv6地址自动配置 | 无状态(依赖NDP的RA报文) vs 有状态(DHCPv6) | 无状态流程: 1. 生成链路本地地址(FE80::) 2. DAD检测(NS/NA) 3. 发RS请求前缀 4. 组合前缀+MAC生成全局地址 | ⭐⭐⭐ |
NDP典型应用 | - 路由器发现(RS/RA) - 地址解析(NS/NA替代ARP) - 重定向优化路径(Type 137报文) | 易混淆点: RA报文可强制指定前缀(与接口地址无关) | ⭐⭐⭐⭐ |
四、组播技术
1. 组播应用场景
1)网络协议通信
- 典型协议:RIPv2(224.0.0.9)、OSPF(224.0.5和6)、VRRP(224.0.0.18)使用组播交互信息
- 效率优势:比单播更高效,是选择题高频考点
- 地址记忆:协议对应的组播地址需重点记忆(如OSPF使用224.0.0.5/6)
2)互联网直播等视频业务
- 典型应用:IPTV、网络直播(如抖音)、视频会议
- 技术原理:底层通过组播实现数据分发,源端只需发送一份数据
2. 组播IP地址
- 地址范围:224.0.0.0∼239.255.255.255(D类地址)
- 进制转换:十进制23对应十六进制17(7×16^0+1×16^1=23)
- IPv6特性:IPv6地址采用十六进制表示
3. 组播MAC地址
- 固定前缀:0100.5E(前25位固定)
- 生成规则:后23位由组播IP地址映射生成(如230.20.15.23→01005E14OF17)
- 格式差异:IP地址用十进制,MAC地址用十六进制表示
4. 常见组播协议
- 核心协议:IGMP(加入组播组)、PIM、MSDP、MBGP
- 易混淆点:IGMP与ICMP区别(IGMP用于组播组管理,ICMP用于差错控制)
- 考试注意:协议名称拼写差异是常见考点(如IGMP的"G"与ICMP的"C")
5. 组播网络架构
- 在接受组播报文时,判断该报文是否在正确的接口上到达,从而确保组播数据转发的无环化
- 无环机制:通过组播分发树(组播流量转发的路径树)实现无环转发
- 组播分发树表项标识:(S,G)表示特定源组播,(∗,G)表示任意源组播
- 带宽优势:源端只需发送单份数据,接收者通过加入组播组获取
6. 应用案例
1)例题#组播分组数量
- 核心原理:无论接收者数量多少,组播源只需发送1个分组
- 干扰项:路由器数量(2个)和成员数量(6个)均为干扰信息
- 答案:A(1个分组)
五、MPLS
多协议标签交换(Muti-Protocol Label Swithing,MPLS)通过在数据链路层和网络层之间增加4字节的MPLS标签,基于MPLS标签实现数据快速转发。
1. MPLS的发展历程
- 技术定位:数据链路层与网络层间增加4字节标签(类似802.1Q标签)
- 发展转折:早期解决IP转发效率问题,后因硬件芯片发展转向VPN应用
- 典型场景:电子政务外网等广域网互联与业务隔离需求
2. MPLS的标签分发与操作
- 标签分发:通过LDP协议实现(需记忆协议全称)
- 三大操作:
- PUSH:指当IP标签进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之前插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新标签(即标签嵌套封装)
- SWAP:当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签替换MPLS报文的栈顶标签。(如10→20)
- POP:当报文离开MPLS域时,将MPLS报文的标签去掉,或者在MPLS倒数第二跳的节点处去掉栈顶标签,减少标签栈中的标签数目。
1)例题#压标签操作设备
- 关键概念:PUSH操作只在MPLS入口边界设备(LER)执行
- 排除法:B/C/D选项均包含非边界设备
- 答案:A(入口LER设备)
2)例题#传递标签协议
- 协议功能:标签分发协议LDP专用于标签分发(区分BGP/OSPF等路由协议)
- 实践应用:实际网络多采用LDP动态分发,静态配置较少
- 答案:A(LDP协议)
3.知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
主播技术应用场景 | 网络协议通信(RIP/VRRP/OSPF等)和互联网直播/视频业务(IPTV/抖音直播/视频会议) | D类IP地址范围(224-239) | ★★☆☆☆ |
主播地址体系 | IP地址(D类)和MAC地址(前25位固定为01-00-5E,后23位由IP映射) | 十六进制转换(如23→0x17) | ★★★☆☆ |
主播协议 | IGMP(组管理协议) vs ICMP(差错控制协议) | 字母拼写差异(G/C)导致功能完全不同 | ★★★★☆ |
主播网络架构 | 无环分发树机制,源端只需发送单份数据 | 转发效率对比(主播vs单播) | ★★☆☆☆ |
MPS技术本质 | 二层与三层间插入4字节标签,原为提升IP转发效率,现主要用于MPLS VPN | 标签操作类型(push/swamp/pop) | ★★★☆☆ |
MPLS标签分发 | LDP协议动态分配标签,支持三种操作: - push:入口压标签; - swamp:中间交换标签; - pop:出口弹标签 | LER设备功能(标签边缘路由器) | ★★★★☆ |
MPLS应用场景 | 电子政务外网等广域网互联与业务隔离 | 典型组网(国家-省-市-县多级架构) | ★★★☆☆ |