ICMP
ICMP
ICMP简介IP协议是一种不可靠无连接的包传输,当数据包经过多个网络传输后,可能出现错误、目的主机不响应、包拥塞和包丢失等。
为了处理这些问题,在IP层引入了一个子协议ICMP(Internet Control Message Protocol)。
ICMP数据报有两种形式:差错数据报和查询数据报。
ICMP数据报封装在IP数据报里传输。
ICMP报文可以被IP协议层、传输层协议(TCP或UDP)和用户进程使用。
ICMP与IP一样,都是不可靠传输,ICMP的信息也可能丢失。
为了防止ICMP信息无限制的连续发送,对ICMP数据报传输中问题不能再使用ICMP传输。
查询报文是成对出现的,它帮助主机或网络管理员从一个路由器或另一个主机得到特定的信息。
ICMP报文的两大类型差错报告报文IP是不可靠的协议。
这就表示IP是不考虑处理检验和差错控制的。
ICMP就是为补偿这个缺点而设计的。
然而ICMP不能纠正差错; 它只是报告差错。
差错纠正留给高层协议去做。
差错报文总是发送给原始的数据源,因为在数据报中关于路由惟一可用的信息就是源IP地址和目的IP地址。
ICMP使用源IP地址将差错报文发送给数据报的源端。
关于ICMP差错报文有以下的一些要点:1. 对于携带ICMP差错报文的数据报,不再产生ICMP差错报文。
2. 对于分段数据报,如果不是第一个分段,则不产生ICMP差错报文。
3. 对于具有多播地址的数据报,不产生ICMP差错报文。
4. 对于有特殊地址(如127.0.0.0或0.0.0.0)的数据报,不产生ICMP差错报文。
差错报文中的数据部分包括了原始数据报的首部加上原始数据报数据的前8个字节。
原始数据报的首部给出了关于原始数据报本身的信息。
原始数据报的前8个字节数据提供了关于端口号和序号等信息。
结构如图:收到的数据报ICMP分组发送IP数据报 ICMP总是向原始的数据源报告差错报文。
差错报告报文中又可以分为 “目的端不可达”、 “源端抑制”、 “超时”、“参数问题”和 “改变路由”等。
ICMP协议是一个非常重要的协议,它对于网络安全具有极其重要的意义。
ICMPICMP原理目录【什么是ICMP】【ICMP 协定内容】【ICMP的重要性】【ICMP校验和算法】【应对ICMP攻击】[编辑本段]【什么是ICMP】英文原义:Internet Control Message Protocol中文释义:(RFC-792)Internet控制报文协议(网际控制报文协议)对TCP/IP协议你一定非常熟悉,但是对ICMP协议你可能就一无所知了。
ICMP协议是一个非常重要的协议,它对于网络安全具有极其重要的意义。
它是TCP/IP协议集中的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。
当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。
我们可以通过Ping命令发送ICMP回应请求消息并记录收到ICMP回应回复消息。
通过这些消息来对网络或主机的故障提供参考依据ICMP是“Internet Control Message Protocol”(Internet控制报文协议)的缩写。
它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
我们在网络中经常会使用到ICMP协议,只不过我们觉察不到而已。
比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。
还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。
[编辑本段]【ICMP 协定内容】ICMP的全称是Internet Control Message Protocol 。
从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性﹐其功能主要有:·侦测远端主机是否存在。
icmp的分类
ICMP的分类一、ICMP简介Internet控制消息协议(Internet Control Message Protocol,简称ICMP)是一种网络协议,用于在IP网络中传递控制信息和错误报告。
ICMP消息通常由网络设备(如路由器、防火墙等)生成并发送给源IP地址。
ICMP协议位于网络层,它的主要作用是提供一种机制,使网络设备能够相互通信并进行故障诊断。
ICMP消息通常是由网络设备在出现错误或需要发送控制信息时自动生成和发送的。
二、ICMP的分类ICMP消息根据其功能和目的可以分为以下几类:1. 差错报告消息差错报告消息用于向源IP地址通知网络中发生的错误。
这些错误可能包括目标主机不可达、端口不可达、超时等。
差错报告消息的目的是让源主机或设备了解网络中的问题,以便采取适当的措施。
差错报告消息的常见类型包括: - 目标不可达(Destination Unreachable) - 超时(Time Exceeded) - 参数问题(Parameter Problem) - 源抑制(Source Quench)2. 询问消息询问消息用于向目标主机或设备发送请求,以获取一些特定的信息。
这些信息可能包括目标主机的网络可达性、MTU(最大传输单元)等。
询问消息的常见类型包括: - 回显请求(Echo Request) - 回显应答(Echo Reply)3. 重定向消息重定向消息用于向源主机或设备发送提示,告知其通过其他路径发送数据。
这些重定向消息通常由路由器生成,以优化数据传输路径。
重定向消息的常见类型包括: - 重定向(Redirect)4. 其他消息除了差错报告消息、询问消息和重定向消息之外,ICMP还包括一些其他类型的消息,用于特定的网络功能和信息传递。
其他消息的常见类型包括: - 时间戳请求(Timestamp Request) - 时间戳应答(Timestamp Reply) - 地址掩码请求(Address Mask Request) - 地址掩码应答(Address Mask Reply)三、ICMP消息格式ICMP消息由固定的报头和可变的数据字段组成。
icmp的工作原理
icmp的工作原理ICMP(Internet Control Message Protocol)是一种网络协议,用于在IP网络中传递控制消息和错误报告。
它工作在网络层,主要用于网络故障诊断和错误报告的通信。
ICMP的工作原理如下:1. ICMP消息的封装:ICMP消息被封装在IP数据包的数据部分中。
ICMP消息由一个报头和实际数据组成,报头包含ICMP消息类型、代码以及校验和等字段。
2. ICMP消息的传递:ICMP消息通过IP协议进行传递。
发送端将ICMP消息封装在IP数据包中,然后通过路由器等网络设备转发给目标主机。
3. ICMP消息的接收与处理:目标主机接收到ICMP消息后,根据报头中的类型和代码判断消息的用途,然后进行相应的处理。
比如,接收到“目的地不可达”类型的ICMP消息时,主机可能会发送一个通知给源主机;接收到“超时”类型的ICMP消息时,主机可能会丢弃相关数据。
ICMP的主要作用包括:1. 提供网络故障诊断:ICMP消息可以用于诊断网络故障,比如通过“目的地不可达”类型的消息可以判断是否能够到达某个目的地;通过“超时”类型的消息可以判断网络的延迟情况。
2. 提供错误报告机制:ICMP消息可以用于向源主机发送错误报告,比如当目标主机无法到达时,可以发送一个“目的地不可达”的ICMP消息给源主机,告知其无法到达目的地。
3. 支持Ping命令:Ping命令利用ICMP Echo请求和Echo回应消息来测试主机之间的连通性和延迟情况。
总之,ICMP协议是在IP协议之上的一个补充协议,用于传递控制消息和错误报告,具有网络故障诊断和错误报告等功能。
通过ICMP消息,可以实现网络设备之间的通信和故障诊断。
ICMP协议
ICMP协议协议名称:ICMP协议一、背景介绍ICMP(Internet Control Message Protocol)是一种网络层协议,用于在IP网络中传递控制消息。
它提供了一种报告错误、诊断问题和测试网络连通性的方法。
ICMP协议通常与IP协议一起使用,用于在网络中传递错误和状态信息。
二、协议目的ICMP协议的主要目的是提供网络故障报告和网络连接状态信息。
它通过发送和接收控制消息来实现以下功能:1. 错误报告:当IP数据包在传递过程中发生错误时,ICMP协议可以生成错误报告消息,通知源主机和中间路由设备发生的错误。
2. 网络连通性测试:ICMP协议可以用于发送Echo请求消息,以测试目标主机的可达性和延迟。
3. 路由器发现:ICMP协议可以用于路由器发现,以确定网络中存在的路由器数量和位置。
三、协议内容ICMP协议定义了多种类型的消息,每种消息都有特定的目的和格式。
以下是常见的ICMP消息类型:1. Echo请求和回应消息Echo请求和回应消息用于测试网络主机的可达性和延迟。
当主机收到Echo请求消息时,它会生成一个Echo回应消息并将其发送回源主机。
2. 目的不可达消息当一个IP数据包无法到达目的地时,中间路由设备可以生成一个目的不可达消息,通知源主机数据包无法传递。
3. 超时消息当一个IP数据包在传递过程中经过一定时间仍未到达目的地时,中间路由设备可以生成一个超时消息,通知源主机数据包传递失败。
4. 参数问题消息当IP数据包的首部中存在错误的参数时,中间路由设备可以生成一个参数问题消息,通知源主机参数错误的位置和类型。
5. 重定向消息当一个中间路由设备发现某个数据包可以通过另一个路由设备更快地传递时,它可以生成一个重定向消息,通知源主机使用新的路由。
6. 时间戳请求和回应消息时间戳请求和回应消息用于测量数据包从源主机到目的主机的往返时间。
7. 路由器发现消息路由器发现消息用于确定网络中存在的路由器数量和位置。
ICMP协议
ICMP协议协议名称:ICMP协议协议概述:ICMP(Internet Control Message Protocol)是一种用于在IP网络上发送错误消息和操作信息的协议。
它是TCP/IP协议族中的一个重要成员,用于支持网络设备之间的通信和故障排除。
ICMP协议通常运行在网络层,但也可以在传输层或应用层上使用。
协议内容:ICMP协议定义了一系列的消息类型和代码,用于在网络设备之间传递信息。
以下是ICMP协议中常用的消息类型:1. Echo Request(请求回显):- 消息类型:8- 代码:0- 描述:用于测试网络连接和延迟。
发送方向目标主机发送一个回显请求消息,目标主机收到后会返回一个回显应答消息,以确认连接是否正常。
2. Echo Reply(回显应答):- 消息类型:0- 代码:0- 描述:用于回复Echo Request消息。
目标主机收到Echo Request消息后,会返回一个Echo Reply消息,以确认连接正常。
3. Destination Unreachable(目标不可达):- 消息类型:3- 代码:0-15- 描述:用于指示目标主机或网络不可达的错误。
根据代码的不同,可以进一步指示不可达的原因,如网络不可达、主机不可达等。
4. Time Exceeded(超时):- 消息类型:11- 代码:0-1- 描述:用于指示数据包在传输过程中发生超时错误。
根据代码的不同,可以进一步指示是数据包在路由过程中超时还是在目标主机处超时。
5. Redirect(重定向):- 消息类型:5- 代码:0-3- 描述:用于指示目标主机应该通过另一个路由器发送数据包。
通常在局域网内部使用,用于优化数据包的传输路径。
协议应用:ICMP协议在网络设备之间广泛应用,以下是ICMP协议的一些主要应用场景:1. 网络诊断和故障排除:- 通过发送Echo Request消息并接收Echo Reply消息,可以测试网络连接和延迟,以确定网络是否正常工作。
ICMP
ICMP差错报告的数据段部分:包含出错数据报的首部及出错数据报的 前64位数据(即:端口号(UDP和TCP)和序号(TCP)),这些信息有 助于信源或管理人员发现错误原因。
收到的IP数据报
IP数据报首部 8字节
ICMP差错报告报文
ICMP的前8 个字节
IP数据报 首部
8 字节
首部
ICMP差错报告报文
ICMP首部 ICMP数据
IP数据报首 部
IP数据报数据区
帧首部
帧数据区
因为传输错误的种类多种多样,ICMP 协议要报告这些错 误就必 须根据不同的错误采用不同的格式。但各种ICMP 数据包都有一个共同的ICMP头部。ICMP报文有一个8字节 的首部和一个可变长度的数据部分。如下图1所示。
图1 ICMP报文格式
类型字段值 0
描述 反射应答
3 4
5 8 9 10 11 12 13 14 15
目标不可达 源端关闭
重定向 反射请求
路由器通告
路由器请求 超时 数据包参数错误 时间戳请求 时间戳应答 信息请求(作废)
表1 ICMP 数据包类型
3、各种ICMP报文
ICMP报文可划分为两大类:差错报告报文和查询报文 差错报告报文报告了路由器或者主机在处理IP数据 包时可能遇到的问题。 差错报告报文的类型:目的站不可达(类型3)、 源站抑制(类型4)、时间超过(类型11)、参数 问题(类型12)、改变路由(类型5) 查询报文总是成双成对的出现,他帮助主机或者网 络管理员从某个路由器或者对方主机那里获取特定 的信息。 查询报文类型:回送请求或回答(类型8或0)、 时 间戳请求或回答(类型13或14)、地址掩码请求 或回答(类型17或18)
1、信宿不可达报告
icmp是什么协议
icmp是什么协议ICMP,全称为Internet Control Message Protocol,即Internet控制报文协议,是Internet协议族的一员,通常运行在网络层。
它主要是为了让主机或者路由器报告错误消息和提供网络层的诊断信息而设计的。
ICMP协议本身并不传输应用层数据,它只是传输控制数据。
通过ICMP报文,主机或者路由器可以通知其他设备某种错误发生,这种错误可能是路由无法到达,连通性出现问题,数据包太大等等。
ICMP协议常见的用途包括ping和traceroute。
ICMP协议的报文结构相对比较简单。
它的报文格式以8字节的固定头部开始,这个头部包括类型字段、代码字段、校验和字段和其它辅助信息。
ICMP报文的具体内容则随着不同类型的报文而有所不同。
比如,当发送一个ping请求报文时,它的类型为8,代码为0,而当接收到了ping请求报文时,发送ping应答,此时ICMP报文的类型为0,代码为0。
当网络无法到达目标地址时,路由器会发送一个ICMP报文,类型为3,代码分别以0、1、2、3、4等等来区分具体错误类型,在收到这样一个报文时,主机可以采取不同的措施,以确保数据的传输正常进行。
ICMP协议的主要作用是提供网络层的反馈机制,以及用于网络故障的诊断和排除。
其实,很多人都使用过ICMP协议,只是我们很少直接使用它而已。
比如我们经常使用ping命令来检测网络的连通性,而ping实际上就是通过发送ICMP报文来实现的。
当我们ping一个主机时,实际上是向这个主机发送一个ICMP报文并等待它的应答,如果成功收到应答,说明Ping命令发送的ICMP报文已经到达了目标主机,两台主机之间的网络连接畅通。
总之,ICMP协议是网络协议族中一个非常重要的协议。
它负责传递网络层的错误消息和网络诊断信息。
它的主要功能是提供实时的反馈机制,帮助我们识别并解决网络故障。
无论我们是在开发网络应用,还是在管理网络基础设施,ICMP协议都是必须掌握的基础知识。
ICMP协议
ICMP协议协议名称:ICMP协议1. 引言ICMP(Internet Control Message Protocol)是一种在互联网协议族中使用的网络层协议。
它主要用于在IP网络中传递控制消息和错误报告。
本协议旨在提供网络节点之间的通信和管理功能,以确保网络的正常运行和故障排除。
2. 目的本协议的目的是规范ICMP协议的标准格式,以便确保不同厂商和设备之间的互操作性,同时提供一致的错误报告和网络管理机制。
3. 范围本协议适用于所有使用ICMP协议的网络设备和应用程序。
4. 角色和责任4.1 发送方:负责生成和发送ICMP消息。
4.2 接收方:负责接收、解析和处理ICMP消息。
5. 协议格式ICMP消息由以下字段组成:5.1 类型(Type):指示ICMP消息的类型,用于标识不同的消息类型,如回显请求、回显应答、目标不可达等。
5.2 代码(Code):与类型字段配合使用,用于进一步说明消息的具体细节。
5.3 校验和(Checksum):用于检测ICMP消息的完整性,以防止数据在传输过程中的损坏。
5.4 数据(Data):可选字段,用于携带附加信息,如回显请求中的数据部分。
6. ICMP消息类型6.1 回显请求(Echo Request):用于测试目标主机的可达性和延迟。
发送方发送一个回显请求消息,接收方收到后返回一个回显应答消息。
6.2 回显应答(Echo Reply):作为回显请求的响应,接收方返回一个回显应答消息,以确认目标主机的可达性和延迟。
6.3 目标不可达(Destination Unreachable):当一个IP数据包无法到达目标主机时,接收方发送一个目标不可达消息,以通知发送方。
6.4 超时(Time Exceeded):当一个IP数据包在传输过程中超过了规定的生存时间,接收方发送一个超时消息,以通知发送方。
6.5 参数问题(Parameter Problem):当一个IP数据包的头部参数有误时,接收方发送一个参数问题消息,以通知发送方。
《典型的ICMP报》课件
灵活性
ICMP协议提供了多种类型的报文,适用于 不同的网络环境和需求。
ICMP协议的优缺点
• 可靠性:ICMP协议在传输过程中能够保证数据的完整性 和可靠性。
ICMP协议的优缺点
安全性问题
由于ICMP协议本身不提供加密和认证功能 ,因此在传输过程中可能会被恶意攻击者截 获或篡改。
带宽问题
ICMP协议报文通常较大,占用的带宽资源 较多,可能会对网络性能产生一定影响。
答”等。
校验和
用于检测报文在传输过程 中是否被修改。
序列号
用于标识报文的顺序。
ICMP报文数据部分
原始数据包
目的主机不可达信息
当一个数据包无法到达目的地时,源 主机发送的ICMP报文会包含这个原始 数据包的头部。
当一个数据包无法到达目的地时,源 主机发送的ICMP报文会包含目的主机 不可达的信息。
网络性能测试
丢包率测试
通过发送一定数量的ICMP 报文,计算丢失报文的比 例,评估网络性能。
延迟测试
通过测量ICMP回应请求报 文的往返时间,评估网络 延迟。
带宽测试
通过发送大量ICMP报文, 测试网络的带宽容量。
路由跟踪
要点一
TraceRoute工具
通过发送ICMP报文,逐跳跟踪数据包的路由路径。
ICMP协议的发展趋势与未来展望
安全性增强
随着网络安全问题的日益突出,ICMP协议将逐步加 强安全性方面的设计,以保障数据传输的安全性。
智能化
随着人工智能技术的发展,ICMP协议将逐步引入智 能化元素,实现自动化的网络管理和故障排查。
ICMP协议的发展趋势与未来展望
• 高效性提升:为了更好地满足网络传输的需求, ICMP协议将不断优化报文结构和传输机制,提高 处理效率。
icmp的名词解释
icmp的名词解释
ICMP(Internet Control Message Protocol)即因特网控制报文协议,是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。
这些控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
虽然这些控制消息并不传输用户数据,但对于用户数据的传递起着重要的作用。
ICMP使用IP的基本支持,就像它是一个更高级别的协议,但实际上,ICMP是IP的一个组成部分,必须由每个IP模块实现。
以上内容仅供参考,如需更多信息,建议查阅相关文献或咨询计算机专家。
icmp 时延 原理
icmp 时延原理
ICMP(Internet Control Message Protocol)是用于在IP网
络上发送控制消息的协议。
其中,ICMP时延是指通过ICMP协议测
量数据包从发送到接收所需的时间。
ICMP时延的原理涉及到网络通
信中的几个重要概念和过程。
首先,ICMP时延通常是通过发送“回显请求”(Echo Request)和接收“回显应答”(Echo Reply)来实现的。
当一台主机发送一
个回显请求时,目标主机会收到该请求并立即发送一个回显应答。
发送方记录下发送请求和接收应答的时间戳,通过计算两者的时间
差来得到往返时延。
其次,ICMP时延的原理还涉及到网络中的路由和数据包传输。
数据包在网络中传输时会经过多个路由器和交换机,每个设备都会
对数据包进行处理和转发,这些过程都会对数据包的传输时延产生
影响。
通过测量往返时延,可以了解数据包在网络中的传输性能和
延迟情况。
另外,ICMP时延的原理还与网络拓扑和网络设备的工作原理相关。
不同的网络拓扑结构和设备类型可能会对数据包的传输时延产
生不同的影响,例如在局域网内和广域网之间进行时延测量时会有不同的表现。
总的来说,ICMP时延的原理涉及到通过发送回显请求和接收回显应答来测量数据包的往返时延,同时考虑了网络中的路由、数据包传输和网络设备等因素对时延的影响。
这样的测量可以帮助网络管理员监控网络性能、诊断网络故障和优化网络配置。
ICMP协议详解(共31张)
(2) ICMP差错报文只提供IP数据报在传输过程中的差错报告,并不规定对各
类差错应采取什么样的处理措施。具体对差错的处理,由收到ICMP差错报文的 源主机将相应的差错与应用程序联系起来才能进行相应的差错处理。
第11页,共31页。
4 ICMP差错(chācuò)报文的特点
(3) ICMP差错报文不享受任何优先权,也没有特别的可靠 性保证措施,与普通的IP数据报一样进行传输,传输过程中可 能被丢失、损坏,甚至被抛弃。
(4) ICMP差错报文是伴随着抛弃出错的IP数据报而产生的。 (5) 当路由器发送一份参数错误等的ICMP差错报文时,ICMP 报文数据区始终包含产生ICMP差错报文的IP数据报的头部和其数据 区的前8个字节(64位)。
第6页,共31页。
3. ICMP数据包类型(lèixíng)
ICMP报文的类型和代码字段的值与ICMP报文类型的对应关系
类型 代码
说
明
0
0 回送应答(ping 命令应答)
目标不可达
0 网络不可达
1 主机不可达
2 协议不可达 3
3 端口不可达
4 需要进行分片,但设置了 DF 不分片(2.3.2 节)
1
3
5
码值Biblioteka 意义主机(zhǔjī)不可到达
端口不可到达
源路由失败
7
信宿主机未知
9 与信宿网络的通信被隔离
第16页,共31页。
5.1 差错 报告报文 (chācuò)
超时报文
互连网寻址是路由器根据本地寻径表进行的;如果寻址出现错误,可能出现routing cycle; 为了避免报文无限制的在网中循环,IP 协议采用了两种措施:
网际控制报文协议ICMP
ICMP 差错报告报文共有 4 种
终点不可达 时间超过 参数问题 改变路由(重定向)(Redirect)
ICMP 差错报告报文的数据字段的内容
收到的 IP 数据报
装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议。
ICMP 报文的格式
0
8
前 4 个字节 都是一样的
类型
16
代码
31
检验和
(这 4 个字节取决于 ICMP 报文的类型)
ICMP 的数据部分(长度取决于类型)
首部
ICMP 报文
数据部分 IP 数据报
1 ICMP 报文的种类
ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报 文。
用 tracert 命令获得到目的主机的路由信息
网际控制报文协议ICMP
网际控制报文协议 ICMP
为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了 网际控制报文协议 ICMP (Internet Control Message Protocol)。
ICMP 是互联网的标准协议。 ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。 但 ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是
2 ICMP 的应用举例
PING (Packet InterNet Groper) PING 用来测试两个主机之间的连通性。 PING 使用了 ICMP 回送请求与回送回答报文。 PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层
icmp的协议号
ICMP的协议号介绍ICMP(Internet Control Message Protocol)是互联网控制报文协议的缩写,它是TCP/IP协议族中的一个协议,用于在IP网络中传递控制信息和错误报告。
ICMP 协议号是指在IP数据报中用来标识ICMP协议的字段值,它决定了数据报中的数据是属于ICMP协议还是其他协议。
ICMP协议的作用ICMP协议主要有以下几个作用: 1. 错误报告:当网络中发生错误时,ICMP协议可以生成错误报告并发送给源主机,以便源主机可以采取相应措施。
2. 网络探测:ICMP协议可以用于网络探测,例如ping命令就是利用ICMP协议向目标主机发送探测报文,并根据目标主机的响应时间来判断网络延迟。
3. 路由选择:ICMP协议可以用于路由选择,例如traceroute命令就是利用ICMP协议向目标主机发送一系列探测报文,通过报文的返回路径来确定数据包的传输路径。
4. 重定向:当主机发送数据包到错误的网关时,网关可以利用ICMP协议向主机发送重定向报文,告诉主机正确的下一跳地址。
ICMP协议的协议号ICMP协议的协议号是1,它是IP数据报中的一个8位字段,用来标识数据报中的协议类型。
当IP数据报的协议字段为1时,表示该数据报的数据属于ICMP协议。
ICMP报文格式ICMP报文由报文头和报文数据组成,报文头的长度为8字节,报文数据的长度可变。
下面是ICMP报文的格式:0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Type | Code | Checksum |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Identifier | Sequence Number |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Data |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+•Type:指示ICMP报文的类型,例如0表示回显应答,8表示回显请求。
icmp的格式
ICMP报文格式分为两个部分,前一个部分是首部,后一个部分是数据部分。
首部是8个字节的固定长度,包括类型、代码和校验和三个字段。
类型字段代表着不同的报文类型,而代码字段指明了某个类型的报文中细分出的该报文的指定的功能。
数据部分中,前四个字节是统一的格式,第一个字节是类型,占8位。
第二个字节是代码,也占8位。
第三个字节是检验和,占16位。
第四个字节取决于ICMP报文的类型。
此外,ICMP报文的格式类型总共分为三大类:差错报文、控制报文和查询报文。
每种类型的报文都有其特定的格式和功能。
例如,差错报文用于报告在IP主机或路由器之间传输过程中出现的错误,控制报文用于测试主机或路由器的可达性,查询报文用于查询主机的状态或路由信息。
以上内容仅供参考,如需更多信息,建议查阅相关文献或咨询专业技术人员。
ICMP协议
ICMP协议协议名称:Internet控制消息协议(ICMP)1. 引言Internet控制消息协议(ICMP)是一种网络层协议,用于在IP网络中传递控制消息和错误报告。
ICMP协议是TCP/IP协议族的一部分,旨在支持网络设备之间的通信和故障排除。
本协议旨在详细描述ICMP协议的标准格式和相关功能。
2. 协议格式ICMP协议的标准格式如下:![ICMP协议格式](icmp_protocol_format.png)- 类型(Type):指定消息的类型,用于标识消息的目的和目的地。
常见的类型包括回显请求、回显应答、目的不可达等。
- 代码(Code):与类型字段一起用于更具体地描述消息的目的和目的地。
不同类型的消息具有不同的代码值。
- 校验和(Checksum):用于验证ICMP消息的完整性,以确保消息在传输过程中没有被篡改。
- 附加数据(Additional Data):根据消息类型和代码的不同,可能会包含其他的附加数据。
3. ICMP消息类型ICMP协议定义了多种消息类型,用于在网络设备之间传递不同的控制信息。
以下是一些常见的ICMP消息类型:3.1 回显请求(Echo Request)和回显应答(Echo Reply)回显请求和回显应答消息用于测试主机之间的可达性和往返时延。
发送方发送一个回显请求消息,接收方接收到后,会返回一个回显应答消息,以确认主机的可达性。
3.2 目的不可达(Destination Unreachable)目的不可达消息用于通知发送方,目标主机或网络不可达。
根据具体的代码值,可以进一步指定不可达的原因,如目标主机不可达、端口不可达等。
3.3 源抑制(Source Quench)源抑制消息用于告知发送方,接收方的缓冲区已满,需要发送方减慢发送速度,以防止网络拥塞。
3.4 重定向(Redirect)重定向消息用于通知发送方,更好的下一跳路由器的IP地址。
这样发送方可以通过直接发送数据包到更好的下一跳路由器,提高网络的效率。
icmp报文的identification字段
icmp报文的identification字段摘要:1.ICMP 报文的identification 字段概述2.identification 字段的作用3.identification 字段的取值和范围4.如何使用identification 字段进行故障排查和诊断正文:在计算机网络中,ICMP(Internet Control Message Protocol)报文是一种用于在IP 网络中传递控制信息的协议。
它主要用于网络故障诊断、差错报告和操作员通信等场景。
ICMP 报文包含多个字段,其中一个重要的字段就是identification 字段。
identification 字段是ICMP 报文中的一个可选项,它位于报文的头部,长度为13 个字节。
这个字段主要用于标识报文的唯一性和来源,类似于HTTP 报文中的“User-Agent”字段。
在网络诊断和故障排查过程中,identification 字段可以帮助我们快速定位问题,例如:当网络中出现大量ICMP 报文时,可以通过检查identification 字段来确定哪些设备发出了这些报文,从而缩小故障范围。
identification 字段的取值和范围并没有严格的规定,但通常情况下,它包含了一个唯一的整数值,用于标识报文的来源。
在实际应用中,identification 字段的取值可能会受到网络设备和应用程序的影响,因此具有一定的灵活性。
在网络故障排查和诊断过程中,我们可以利用identification 字段来确定问题的根源。
例如,当网络中出现大量ICMP 差错报文时,我们可以通过检查这些报文的identification 字段,找出产生这些报文的设备,进而分析设备的网络配置和运行状况,找出故障原因。
此外,identification 字段还可以用于追踪网络流量,帮助管理员监控网络运行状况,提高网络的可用性和稳定性。
总之,ICMP 报文的identification 字段在网络故障排查和诊断过程中具有重要作用。
02_ICMP协议分析
差错报告报文
参数出错报文
1) 参数出错报文报告出错的报文头与错误的报文选项参数 2) 路由器或信宿机在丢弃参数出错的报文时,将向信源机发出参数出错报文; 3) 参数出错报文格式:
类型(12) 指针
码(0-或121)
校验和
未用(全£0)
数据报报头+前64位数据
......
0 -- 数据报某个参数错,指针域指向出错的字节; 1 -- 数据报缺少某个选项,无指针域;
差错报告报文
信息不可达报文
网关在以下情况下发出信息不可到达报告 1) 信宿机硬件出现故障或关机; 2) 发送者指定的地址不存在; 3) 网关不知道去往信宿的路径;
信宿不可到达报告的格式
类型(3)
码(0-12)
校验和
未用(全0)
出错数据报报头+前64bit数据
........
差错报告报文
信息不可达报文
√
1 主机不可达
√
2 协议不可达
√
3
3 端口不可达
√
4 需要进行分片,但设置了 DF 不分片(2.3.2 节)
√
5 源路由选择失败
√
6 目标网络未知
√
ICMP数据包类型
ICMP报文类型
7 目标主机未知
√
8 源主机被隔离
√
9 与目标网络的通信被强制禁止
√
10 与目标主机的通信被强制禁止
√
11 对于请求的服务类型 TOS,网络不可达
码域值: 0 ~ 12,进一步说明信宿不可到达的具体原因
码值 0 2 4 6 8
10 11 12
意义
码值 意义
网络不可到达
1 主机不可到达
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 请求得到其它机器的时间,以保持时间同步 • 计算分组的往返时间(单位:ms)
– 发时间= 收时戳- 初始时戳,收时间= 返回时间- 发时戳 – 往返时间 = 发时间 + 收时间
• 由于路径、传输,难以得到非常精确的时间
– – – – 携带ICMP差错报文的分组 非第一个分片分组 组播分组 具有特殊地址(如127.0.0.0或0.0.0.0)的分组
差错报文的数据字段
Received datagram IP header ICMP header IP header ICMP header IP header IP header 8 bytes 8 bytes 8 bytes IP data ICMP packet
10 or 9
Router solicitation or advertisement
Coincidence between routers
3 报文格式
8 bits 8 bits 16 bits
Type
Code
Checksum
Data section
差错报文:引起差错的原始分组的一 部分(首部 + 数据部分的前8个字节) 查询报文:基于查询类型的额外信息
• 主机发送路由器询问报文,查询本网中的路由器
Type = 10 Code = 0 Identifier Checksum Sequence number
• 路由器发送路由器通告报文,通告自己以及所知 的本网中其他路由器的存在
Type = 10 Code = 0 Checksum Identifier Sequence number Router address 1 Address preference 1 Router address 2 Address preference 2 ……
ICMP协议
目录
• 协议概述
• 报文类型
• 报文格式
• ICMP差错报告处理
• ICMP查询处理
引言
• IP协议
– 只有一种报文格式 —— IP数据报 – 功能:传递数据 – 缺乏:应付可能出现差错的能力
• ICMP协议
– IP的辅助协议 – 为IP提供差错报告机制 – 为其它层(TCP/UDP、应用)提供辅助功能
拥塞处理
• 发送队列缓冲:缓解短暂的突发数据 • 丢弃报文,产生源抑制ICMP报文给源站
– 丢弃算法 —— QoS – 源站减缓发送速率 – 源站没有收到源抑制报文后逐步提高发送速率
• 源抑制报文的拥塞控制能力
– 只能解决因主机问题造成的拥塞 – 对因路由或路由器问题造成的拥塞不起作用
4.3 超时报文
Host B Net 2 Redirection message
R1 Net 1 IP packet
R2
重定向报文格式
Type = 5 Code = 0~3 IP header + 8 bytes IP data Cod e 0 1 Description 对特定网络路由的重定向 对特定主机的重定向 Checksum 目标路由器的IP地址
缩小路 由改变 的范围
2 3
对特定网络和服务类型的重定向 对特定主机和服务类型的重定向
5 ICMP查询处理
Query
Echo request and reply Timestamp request and reply Ping Trace route
Router solicitation and advertisement
Address mask request and reply
5.1 回送请求和应答报文
• 测试目的站的可达性 还可获取往返时间信息
Type = 8,0 Code = 0 Ping应用 Echo TCP ICMP UDP Identifier Checksum Sequence number
Optional data ( Send by the request message; repeated by the reply message) ICMP Echo reply
• Internet Control Message Protocol,ICMP
– RFC792:Internet Control Message Protocol, 1981 Application Layer Transport Layer Network Layer Network Access Layer
message
IP data
Frame data
Trailer (if any)
2 报文类型
ICMP报文 ICMP messages
差错报告 Error-reporting
报告路由器或目的站 点处理一个IP分组时可 能遇到的一些问题
测试查询 Query
帮助主机或管理员从 某一个路由器或主机 获得一些特定的信息
4 ICMP差错报告处理
Error reporting Destination unreachable Source quench Time exceeded Parameter problems Redirection
• ICMP只是报告差错,纠正差错由高层协议去做 • ICMP差错 报文总是发送给原始的数据源 • 不能为以下分组产生ICMP差错报文
过时: 15 Information request 16 Information response Category
类型
Type Message Reason 3 Destination unreachable Unreachable 4 Source quench Congestion Errorreporting 11 Time exceeded Too long route messages 12 Parameter problem Format error 5 Redirection Route changed 8 or 0 Echo request or reply Reachability Timestamp request or 13 or 14 Synchronization reply Query Address mask request or Mask messages 17 or 18 reply maintenance
ICMP
IGMP
IP
ARP
RARP
LANs
MANs
WANs
报文投递与封装
• ICMP在IP之上实现,逻辑上与IP同在网络 层
– 与IP报文的传递过程一致 —— 无连接通信 – 直接送达目的站点,沿途的转发路由器不能获 ICMP 知ICMP报文内容
• ICMP报文封装
Protocol = 1 Frame header IP header
差错报告和差错更正
• IP传输过程中出现差错是不可避免的
– IP分组传输出现差错时,会产生相应的ICMP报 文 – 通过ICMP报文提供差错报告
• ICMP差错报告只能送给IP分组的源站,协 议只提供了差错的处理方法的建议
– 出错点可能不是当前的路由器 – 反向传输路径可能与原路径不同
1 协议概述
• 路由器或主机因分组超时而丢弃IP分组时, 向源站发送ICMP超时报文
Code = 0 —— 路由器检测到分组的TTL值为0 Code = 1 —— 目的站在规定时间内没有收到所有分片 Type = 11 Code = 0,1
0x00000000 IP header + 8 bytes IP data
4.5 重定向报文
• 重定向
Net 1 直接交付 R2 直接交付 R1
Net 2 1 0.0.0.0/0
A want to send datagrams to B, but it doesn’t know R2 is the better choice. What will it do?
Host A
4.2 源抑制报文
• IP协议没有流控机制 拥塞
– 主机产生的数据量可能比网络快 – 不适当的路由使流量过分集中,超过信道容量 – 路由器的转发性能低
• 路由器或主机因拥塞丢弃IP分组时,向源站发送 ICMP源抑制报文,通知源站放慢分组的发送
Type = 4 Code = 0 0x00000000 IP header + 8 bytes IP data Checksum
IP
IP
5.2 时戳请求和应答报文
Type = 13, 14 Code = 0 Checksum Identifier
Sequence number
Original timestamp (filled by source)
Receive timestamp (filled by destination)
供源站分析错误
目的不可达代码
Code 描述 0 网络不可达 1 主机不可达 2 协议不可达 Code 描述 7 目的主机未知 8 源主机被隔离 9 与目的网络的通信被禁止
3 4 5 6
端口不可达 需要分片,但DF=1 源路由失败 目的网络未知
10 11 12
与目的主机的通信被禁止 对指定TOS,网络不可达 对指定TOS,主机不可达
Checksum
4.4 参数问题报文
• 路由器或主机因首部字段格式或取值错误 而丢弃报文时,向源站发送ICMP参数问题 报文
Code = 0 —— 首部字段错误,指针字段指向错误字节 Code = 1 —— 缺少所需的选项部分,指针字段无效 Type = 12 Pointer Code = 0,1 IP header + 8 bytes IP data Checksum 0x00000000