博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ICMP控制报文协议
阅读量:5926 次
发布时间:2019-06-19

本文共 829 字,大约阅读时间需要 2 分钟。

1、引言

ICMP经常被认为是IP层的一个组成部分。它传递差错以及其他需要注意的信息。ICMP报文通常被IP层或更高层

协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。ICMP报文是在IP数据报内部被传输的,它封

装在IP数据报内。

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

类型字段可以有15个不同的值,以描述特定类型的ICMP报文。某些ICMP报文还使用代码字段的值来进一步描述

不同的条件。检验和字段覆盖整个ICMP报文。

                              

2、ICMP报文类型

如图:

 

图中的最后两列表明了ICMP报文是一份查询报文还是一份差错报文。因为对ICMP差错报文有时需要作特殊处理,

因此我们需要对它们进行区分。例如,在对ICMP差错文进行响应时,永远不会生成另一份ICMP差错报文(如果没有

这个限制规则,可能会遇到一个差错产生另一个差错的情况,而差错再产生差错,这样会无休止地循环下去)。

       当发送一份ICMP差错报文时,报文始终包含IP的首部和产生ICMP差错报文的IP数据报的前8个字节。这样,

接收ICMP差错报文就会把它与某个特定的协议(根据IP数据报首部中的协议字段来判断)和用户进程(根据包含在

IP数据报前8个字节中的TCP或UDP报文首部中的TCP或UDP端口号来判断)联系起来。

         下面各种情况都不会导致产生ICMP差错报文:

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

          2)目的地址是广播地址或多播地址的IP数据报。

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

          4)不是IP分片的第一片

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

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

 

 

转载于:https://www.cnblogs.com/webber1992/p/5850745.html

你可能感兴趣的文章
抛开flash,自己开发实现C++ RTMP直播流播放器
查看>>
PostgreSQL 统计信息pg_statistic格式及导入导出dump_stat - 兼容Oracle
查看>>
云堆栈三大服务模式解析
查看>>
阿里云与中国联通首个公共云平台上线
查看>>
E-MapReduce上如何升级EMR-Core
查看>>
[从C到C++] 1.3 C++布尔类型(bool)
查看>>
[九]RabbitMQ-客户端源码之Consumer
查看>>
探索发现:平台云——云的新风向
查看>>
【数学题】男女的比例
查看>>
Oracle常用sql语句(一)
查看>>
TensorFlow中RNN实现的正确打开方式
查看>>
[C++]VS2005(VC8) 使用 Boost
查看>>
【Solidity】3.类型 - 深入理解Solidity
查看>>
ASP.NET Core中的依赖注入(4): 构造函数的选择与服务生命周期管理
查看>>
美国银行将AI应用于企业应收账款处理
查看>>
Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分
查看>>
这一新的可视化方法教你优雅地探索相关性
查看>>
中国第一朵企业云
查看>>
稍微成型点的用WEBSOCKET实现的实时日志LOG输出
查看>>
IROS 2017上,这些厂商将会给我们展示什么样的黑科技?
查看>>