TCP/IP详解卷1 读书笔记:第六章 ICMP 网际报文控制协议

ICMP协议在IP网络中扮演信令兵的角色,用于查询和通报错误及异常。它通过不同类型的报文,如差错报文和查询报文,实现对网络错误的快速响应和定位。本文详细解析了ICMP报文的格式,差错报文的生成规则,以及不可达报文的特性,并介绍了ICMP源站抑制差错报文的概念,帮助读者深入了解ICMP协议在现代网络中的应用。

 引言

ICMP是IP网络中的信令兵,查询和通报网络中的错误及异常等。I C M P报文通常被 I P层或更高层协议(T C P或U D P)使用。一些 I C M P报文把差错报文返回给用户进程,如Ping程序直接调用ICMP报文。

 

ICMP报文格式

所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。

不同类型由报文中的类型字段和代码字段来共同决定。最终可归结为两大类:查询报文和差错报文。

注意:不同类型的ICMP报文,其格式是不同的。

 

当发送一份I C M P差错报文时,报文始终包含I P的首部和产生I C M P差错报文的I P数据报的前8个字节。这样,接收 I C M P差错报文的模块就会把它与某个特定的协议(根据 I P数据报首部中的协议字段来判断)和用户进程(根据包含在 I P数据报前 8个字节中的T C P或U D P报文首部中的T C P或U D P端口号来判断)联系起来。

下面各种情况都不会导致产生I C M P差错报文:

1) ICMP差错报文(但是, I C M P查询报文可能会产生 I C M P差错报文)。

2) 目的地址是广播地址(见图 3 - 9)或多播地址( D类地址,见图1 - 5)的I P数据报。

3) 作为链路层广播的数据报。

4) 不是I P分片的第一片(将在 11 . 5节介绍分片)。

5) 源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地

址或多播地址。

这些规则是为了防止过去允许I C M P差错报文对广播分组响应所带来的广播风暴。

ICMP不可达报文


注意:ICMP不可达报文中,报头的前8个字节中的后4上字节为0,即未使用。


I C M P的一个规则是, I C M P差错报文(参见图 6 - 3的最后一列)必须包括生成该差错报文的数据报 I P首部(包含任何选项),还必须至少包括跟在该 I P首部后面的前 8个字节。

导致差错的数据报中的 IP首部要被送回的原因是因为 I P首部中包含了协议字段,使得I C M P可以知道如何解释后面的 8个字节。而后面的8个字节,则是TCP/UDP的源目端口号,用于对应到具体的应用进程。

 

ICMP源站抑制差错报文

当目标主机的处理速度赶不上数据接收的速度,因为接受主机的IP层缓存会被占满,所以主机就会发出一个“我受不了”的一个ICMP报文。


内容概要 本资源是一套完整可运行的 Qt Widgets 批量图片压缩桌面工具源码,基于 Qt5/C++ 从零开发,专为初学者设计,分步实现图片批量处理全套功能。工具支持多选单张图片、直接读取整个文件夹内所有 JPG/PNG 图像,可自定义输出图片分辨率、调节 JPG0~100 区压缩质量,自带锁定宽高比防拉伸变形功能;批量处理完成后自动统计每张图片压缩前后文件体积,计算整体压缩缩小比例,直观展示压缩效果。 适用人群 Qt/C++ 零基础初学者,学习 QImage 图像绘图、文件目录遍历、UI 交互开发; 需要本地批量处理图片的办公、设计、自媒体从业者; 想要学习图片缩放、JPG 压缩、本地文件 IO、进度条交互的开发学习者。 使用场景 自媒体批量压缩配图,降低图片体积节省上传流量; 摄影、设计批量统一图片尺寸,批量轻量化相册图片; 程序开发学习:QFileDialog 文件选择、QDir 文件夹遍历、QImage 缩放保存、QSlider 参数联动、批量循环界面防卡顿、文件大小格式化转换全套 Qt 图像开发实战案例。 工具核心功能清单 双模式导入图片:手动多选单张图片 / 一键读取整个文件夹全部图片; 自定义输出宽高分辨率,支持锁定原始宽高比,避免图片拉伸变形; 滑块调节 JPG 压缩质量 0~100,平衡图片清晰度与文件占用大小; 自定义输出保存目录,批量生成压缩后的图片文件; 实时进度条展示处理进度,循环中刷新界面,程序不会假死卡顿; 自动统计每张图片压缩前后体积,换算 KB/MB 直观展示; 批量完成弹窗汇总:图片总数、成功数量、单张大小对比、整体压缩节省空比例; 完整模块化代码,功能拆分清晰,每段代码附带详细注释,新手可分步拆解学习。 其他说明 开发环境:Qt Creator + Qt5.15 MSVC,Windows 平台可直接编译运行; 源码结构清晰,功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值