协议分析 第5章 ICMP协议
ICMP协议
ICMP协议协议名称:Internet控制报文协议(ICMP)协议概述:Internet控制报文协议(ICMP)是一种网络层协议,用于在IP网络中传递控制信息和错误报告。
它是TCP/IP协议族的一部分,旨在提供一种简单而可靠的机制,以便在网络中进行通信和故障排除。
协议目的:ICMP的主要目的是提供网络中的错误报告和故障排除功能。
它允许主机和路由器之间交换控制消息,以确定网络中的问题,并采取适当的措施进行修复。
协议内容:1. ICMP报文格式:ICMP报文由报文头部和数据部分组成。
报文头部包含以下字段:- 类型(Type):指示报文的类型,如请求回显(Echo Request)、回显回答(Echo Reply)、目的不可达(Destination Unreachable)等。
- 代码(Code):提供有关报文类型的更多详细信息。
- 校验和(Checksum):用于检测报文头部和数据部分的错误。
- 其他字段:根据报文类型和代码的不同,可能包含其他字段,如标识符(Identifier)和序列号(Sequence Number)。
2. ICMP报文类型:ICMP定义了多种报文类型,用于不同的目的。
以下是一些常见的ICMP报文类型:- 请求回显(Echo Request)和回显回答(Echo Reply):用于测试主机之间的可达性和延迟。
- 目的不可达(Destination Unreachable):指示某个目的地无法到达,可能是因为网络不可达、主机不可达或端口不可达等。
- 超时(Time Exceeded):指示某个报文在传输过程中发生了超时,可能是因为生存时间(TTL)过期或片段重组超时等。
- 参数问题(Parameter Problem):指示某个报文的参数存在问题,如IP首部长度错误或选项错误等。
- 重定向(Redirect):用于指示主机或路由器应该使用另一个路由器来转发数据包。
3. ICMP报文处理:主机和路由器在接收到ICMP报文时,根据报文类型和代码进行相应的处理。
ICMP协议
ICMP协议一、介绍ICMP(Internet Control Message Protocol)是一种网络层协议,用于在IP网络中传递控制消息。
它被用于网络设备之间的通信,主要用于错误报告、网络诊断和路由选择等功能。
本协议旨在规范ICMP协议的标准格式和相关规范,以便确保网络设备之间的正常通信和故障排除。
二、协议格式ICMP协议的标准格式如下:1. 类型(Type):8位字段,表示ICMP消息的类型。
常见的类型包括:- 0:回显应答消息- 3:目的不可达消息- 8:回显请求消息- 11:超时消息- 其他类型根据具体需求定义2. 代码(Code):8位字段,表示ICMP消息的具体代码。
不同类型的消息可能有不同的代码,用于进一步描述消息的详细信息。
3. 校验和(Checksum):16位字段,用于检验ICMP消息的完整性。
校验和的计算基于ICMP消息的所有字段。
4. 数据(Data):可选字段,用于携带特定类型的数据。
不同类型的ICMP消息可能需要携带不同的数据。
三、协议流程ICMP协议的流程如下:1. 发送ICMP消息:- 源主机构建ICMP消息,并填充必要的字段,如类型、代码、校验和等。
- 源主机将ICMP消息封装在IP数据报中,并发送给目标主机。
2. 接收ICMP消息:- 目标主机接收到ICMP消息后,首先验证校验和,确保消息的完整性。
- 目标主机根据消息的类型和代码进行相应的处理,如回复回显请求、发送目的不可达消息等。
- 目标主机可以选择将ICMP消息封装在新的IP数据报中,并发送给源主机。
四、常见类型和代码ICMP协议定义了多种类型和代码,用于不同的控制消息。
以下是一些常见的类型和代码:1. 回显请求和回显应答:- 类型:8(回显请求)、0(回显应答)- 代码:通常为02. 目的不可达消息:- 类型:3- 代码:0(网络不可达)、1(主机不可达)、2(协议不可达)、3(端口不可达)等3. 超时消息:- 类型:11- 代码:0(TTL超时)、1(片段重组超时)等五、应用场景ICMP协议在网络中有广泛的应用场景,包括但不限于以下几个方面:1. 网络故障排除:- ICMP协议可以用于发送目的不可达消息,帮助诊断网络中的故障和错误。
ICMP协议分析
ICMP协议分析专业:信息对抗技术学生姓名:石星宇学号:02123010完成时间:2014年11月25日ICMP协议分析................................................................................................ - 1 -一、ICMP协议概述.............................................................................. - 1 -二、ICMP报文类型.............................................................................. - 1 -三、ICMP的应用.................................................................................. - 1 -四、ICMP协议抓包分析...................................................................... - 2 -对帧的分析:................................................................................... - 3 -对以太网帧头的分析:................................................................... - 3 -IP首部分析...................................................................................... - 4 -ICMP报文分析................................................................................ - 4 -ICMP协议分析一、ICMP协议概述为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议ICMP(Internet Control Message Protocol)。
ICMP协议全方位解析
ICMP协议全方位解析ICMP(Internet Control Message Protocol)是互联网控制报文协议,用于在IP网络中传递控制消息和错误报告。
它是网络层协议IP (Internet Protocol)的一个补充,提供了一种通信方式,可以更有效地进行网络管理和故障排除。
在本文中,我将从协议的定义、特点、功能和应用领域等多个方面对ICMP进行全方位解析。
1.ICMP协议的定义和功能:ICMP是一种在IP网络中传递控制消息和错误报告的协议。
它的主要功能包括以下几个方面:-提供主机或路由器之间的通信。
当一个主机发送ICMP消息到另一个主机或路由器时,它可以请求其中一种服务或传递其中一种信息。
-提供错误报告。
在数据包传输过程中,如果出现错误,ICMP可以生成相应的错误报告,以提醒网络管理员或应用程序的开发者发生了错误。
-提供网络管理功能。
ICMP可以用于测试网络的可用性、延迟和带宽等参数,并向网络管理员或上层应用程序提供相关的统计信息。
-提供故障排除功能。
当网络出现故障时,ICMP可以通过发送请求和接收响应的方式来定位和解决问题。
2.ICMP协议的特点:-ICMP是一种无连接的协议,不需要在传输数据之前建立连接。
这使得ICMP非常适合用于低延迟和高效率的通信。
-ICMP是一种面向报文的协议,它将控制消息或错误报告封装在IP 数据包中进行传输。
-ICMP是一种可靠的协议,它可以检测到数据包的丢失、延迟和重复等问题,并向发送方提供相应的错误报告。
-ICMP具有较小的头部开销和较低的带宽占用率,这使得它在网络管理和故障排除方面非常有用。
3.ICMP协议的消息类型:ICMP定义了多种消息类型,主要包括以下几种:- 回应消息(Echo Reply):用于回应一个回显请求消息。
- 回显请求消息(Echo Request):用于测试目标主机的可用性和延迟。
- 目的地不可达消息(Destination Unreachable):用于通知发送方数据包无法到达目的地。
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协议是什么1. ICMP协议简介ICMP(Internet Control Message Protocol)协议是一种网络协议,用于在IP网络中传递错误、控制和诊断信息。
它是TCP/IP协议族中的一个重要组成部分,常用于网络故障排查、网络管理和网络性能测量等方面。
ICMP协议主要通过发送控制消息来实现其功能。
它封装在IP数据包中,作为IP协议的一个扩展,用于向网络中的其他设备发送消息。
ICMP消息通常由操作系统或网络设备生成,用于报告错误、确认连接、请求回应等。
2. ICMP消息类型ICMP协议定义了多种消息类型,每种类型都有其特定的目的和功能。
以下是常见的几种ICMP消息类型:2.1 回显请求和回显应答(Echo Request/Reply)回显请求(Echo Request)消息用于测试网络连接和延迟。
当一台主机发送回显请求消息时,目标主机会返回一个回显应答(Echo Reply)消息,以确认网络连接正常。
2.2 目的不可达(Destination Unreachable)目的不可达消息用于报告数据包发送失败的原因。
当一个数据包无法到达目的地时,中间路由器会向源主机发送目的不可达消息,以便源主机能够得知发送失败的原因。
2.3 超时(Time Exceeded)超时消息用于报告数据包在传输过程中发生超时的情况。
当一个数据包的生存时间(TTL)超过设定的阈值或在路由过程中出现环路时,中间路由器会向源主机发送超时消息,以便源主机能够得知数据包传输失败的原因。
2.4 参数问题(Parameter Problem)参数问题消息用于报告IP数据包中的参数错误。
当一个数据包的头部信息不符合规范或存在错误时,中间路由器会向源主机发送参数问题消息,以便源主机能够纠正错误并重新发送数据包。
2.5 重定向(Redirect)重定向消息用于通知源主机修改其路由表。
当一个中间路由器发现一个数据包的最佳路径发生变化时,它会向源主机发送重定向消息,以便源主机能够更新其路由表,选择更优的路径。
ICMP协议
ICMP协议协议名称:Internet控制消息协议(ICMP)1. 引言Internet控制消息协议(ICMP)是一种网络层协议,用于在IP网络中传递控制消息。
它提供了一种机制,使网络设备能够报告错误和状态信息,并支持网络故障排除和网络管理。
本协议旨在详细描述ICMP协议的标准格式和相关功能。
2. 协议概述ICMP协议是IP协议族的一部分,负责在IP网络中传递控制消息。
它使用IP 数据报的数据字段来传递消息,并依赖于IP协议的传输机制。
ICMP消息通常由网络设备(如路由器、主机等)生成,并通过IP协议发送到目标设备。
3. 协议格式ICMP消息由报文头部和数据字段组成。
报文头部包含以下字段:- 类型(Type):指示消息的类型,用于标识消息的目的和功能。
- 代码(Code):提供更详细的信息,对消息类型进行进一步分类。
- 校验和(Checksum):用于检测报文头部和数据字段是否损坏。
- 附加数据(Additional Data):根据消息类型和代码的不同,可能包含附加的数据信息。
4. ICMP消息类型ICMP协议定义了多种消息类型,用于不同的目的和功能。
以下是一些常见的ICMP消息类型:- 回显请求(Echo Request)和回显应答(Echo Reply):用于主机之间的连通性测试。
- 目的地不可达(Destination Unreachable):用于报告无法到达目标主机或网络的情况。
- 超时(Time Exceeded):用于报告数据包在传输过程中超时的情况。
- 参数问题(Parameter Problem):用于报告IP数据报中的参数错误。
- 重定向(Redirect):用于通知主机修改其路由表以优化数据包的传输路径。
5. 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(Internet Control Message Protocol,互联网控制报文协议)是一种网络协议,用于在IP网络中传递控制消息。
本协议旨在提供对网络连接和通信质量的监控和错误报告。
本协议规定了ICMP消息的格式和处理方式,以及与其他协议的关联。
二、协议范围本协议适用于所有使用ICMP协议的网络设备和系统。
其主要功能包括但不限于以下几个方面:1. 提供网络连接的可达性测试,例如Ping命令;2. 提供错误报告和异常情况的通知,例如网络不可达、超时等;3. 支持网络路由器的错误处理和路由表更新;4. 支持网络设备的状态监控和性能评估。
三、协议内容1. ICMP消息格式ICMP消息由报文头部和数据部分组成。
报文头部包含以下字段:- 类型(Type):表示ICMP消息的类型,用于指示消息的目的和处理方式;- 代码(Code):用于进一步细分消息类型,提供更详细的错误或状态信息;- 校验和(Checksum):用于校验报文完整性;- 其他字段:根据消息类型和代码的不同,可能包含其他字段,用于传递特定的信息。
2. ICMP消息类型本协议定义了多种ICMP消息类型,包括但不限于以下几个常用类型:- 回显请求(Echo Request)和回显应答(Echo Reply):用于测试网络连接的可达性和延迟;- 目的不可达(Destination Unreachable):用于指示数据包无法到达目的地的原因;- 超时(Time Exceeded):用于指示数据包在传输过程中发生超时;- 参数问题(Parameter Problem):用于指示数据包中的参数错误;- 时间戳请求(Timestamp Request)和时间戳应答(Timestamp Reply):用于同步网络设备的时钟。
3. ICMP消息处理接收方根据ICMP消息的类型和代码进行相应的处理。
具体处理方式包括但不限于以下几种:- 回显请求和回显应答:接收方收到回显请求后,应发送回显应答消息作为响应;- 目的不可达:接收方收到目的不可达消息后,应根据代码字段确定具体的不可达原因,并采取相应的措施;- 超时:接收方收到超时消息后,应根据代码字段确定超时原因,并采取相应的措施;- 参数问题:接收方收到参数问题消息后,应根据代码字段确定具体的参数错误,并采取相应的措施;- 时间戳请求和时间戳应答:接收方收到时间戳请求后,应发送时间戳应答消息作为响应,并同步时钟。
TCPIP协议第五章网际控制报文协议ICMP
注意:只有当源点和终点的机器中的时钟是 同步的,发送时间和接收时间的计算才是 准确的,但是即使这两个时钟没有同步, 往返时间的计算还是准确的
22
2
32
5.4 查询(续)
时间戳
例:给出以下信息 原始时间戳值:46 接收时间戳值:59 发送时间戳值:60 分组到达时间:67 试计算:往返时间是多少?
30
在本例中,经检查发现,在本机上安装了个人防火墙, 关闭之后,再执行ping命令出现以下的信息:
5.6 ping程序(续)
出现以上信息,表明主机上的网络接口卡安装和配 置没有问题。一般在互联网上,测试一个到目的站 的连通性,采用ping程序时,基于以下一些步骤:
关闭本主机上的防火墙和杀病毒等软件。 Ping目的站的IP地址,如果不通则执行下一步。 Ping主机所在的网络网关的IP地址,如果不通则执行下一步 Ping本机的IP地址,如果不通,则检查本主机的网络接口卡 安装、配置是否正确 Ping 127.0.0.1环回地址,如果不通,则检查本机安装的 TCP/IP软件是否正确。
回送请求和回答
回送请求和回送回答组合起来确定了两个系 统是否能够彼此通信 回送请求报文可以由主机或路由器发送,收 到回送请求保温的主机或路由器发送回送回 答报文 回送请求和回送回答报文可由网络管理员来 使用,用来检查IP协议的工作情况 用回送请求和回送回答报文可测试某个主机 的可达性,通常调用ping命令来完成。
13:请求 14:回答
类型: 13或14
代码:0 标识符
检验和 序号
原始时间戳(32位) 接收时间戳(32位) 发送时间戳(32位)
21
2
32
5.4 查询(续)
第5章 ICMP协议分析
19
如果出现主机不可达错误,则必然不会发生网络不可到达的故障, 而且说明寻找路由是正常的。因此主机不可到达的问题是传输过程 中的问题。 协议和端口不可达,这两种报文涉及更高级的协议,由目标主机本 身所产生。实际上是IP报文虽然到达目标主机,但是没有办法被高 层应用软件接收。
20
5.2 ICMP报文及类型 3.时间超时 在Internet网络中为了防止出现路由循环,TCP/IP采取了两个措施 ,一个是每个IP数据报的报头设置TTL(Time To Live,生存时间 )域,第二是对分片数据报采用定时器计数。 其核心思想就是通过定时来限制数据包在网络中的逗留时间,以防 出现不可忍受的传输延迟,从而提高网络的传输率。
24
5.2 ICMP报文及类型
在网络通信过程中,当大量的数据报进入路由器或信宿时,会造成 缓冲区溢出,即出现拥塞。 引起网络拥塞的原因,可能是网关的处理速度太慢或者是网关输入 数据的速率大于输出线路的容量。 本质上来讲,拥塞的原因都在于没有足够的数据缓冲区。 拥塞控制的方法很多,TCP/IP采用源抑制技术,即抑制信源发出数 据包的速率。
1
5.1 ICMP的作用 作为网络层重要的协议,ICMP可以提供有关网络可连接性的信息, 获得基于数据报或无连接协议不能传输的路由行为的信息。 如果要诊断和修复TCP/IP连接性问题,就必须知道从什么地方得到 IP互联网上数据包如何从原位置传输到目的位置的信息。 通常网络的可达性表述为:对于任何与另一个网络节点进行通信和 交互数据的网络节点来说,一定存在从发送方到接收方转发数据的 某种方法。 正常情况下,可用转发路径可以在位于发送方和接收方之间各种各 样中间设备的本地IP路由表的内容中发现。
5
典型的情况是ICMP重定向消息的处理。 当网关和路由器转发数据报时发现有更好的路径去往目的主机, 则把一条ICMP消息提供给发送方,把主机引导到一条更好的网络路由 上,即发送一条重定向消息。主机对这条ICMP消息的处理则各有不同 。 RFC792提供了有关ICMP协议的基础规范,并定义了各种ICMP信息和 服务的类型。
计算机网络 第五章 ICMP协议
●目的地址是广播地址或多播地址(D类地址)的IP数据 报。
●作为链路层广播的数据报。
● 不是IP分片的第一片。
●源地址不是单个主机的数据报。这就是说,源地址 不能为零地址、回送地址、广播地址或多播地址。
类似目标不可达ICMP报文,其中代码字段说 明超时的原因。0为TTL值减为0,1表示分片 重组超时。
11
0或1
2.3 参数错误ICMP报文
如果路由器或主机发现一个收到IP数据报的格式 不符和要求,它就会向源主机发送一个报错,并指 出数据报中的什么字段格式或值不正确.
代码字段表示了数据报格式错误的类型.
ICMP的应用举例-常用网络诊断工具
tracert
功能:发现从源主机到目的主机路径上的网络节点。 Tracert首先发送TTL=1的echo request,第一跳节点
向源端返回ICMP的Time Exceeded错误,然后发送 TTL=2的echo request,第二条节点返回Time Exceeded错误,不断递增TTL,直到到达目的主机
12
0或1
2.4 拥塞控制与源站抑制报文
当一个路由器接收IP数据报的速度比其处理IP数据报的速度快,或 一个路由器传入数据报的速率大于传出数据报的速率时,就会产生 拥 塞 (Congestion) 现 象 。 这 时 路 由 器 可 以 通 过 发 送 源 站 抑 制 (Source Quench)报文来抑制源主机发送IP数据报的速率,避免可 能产生的差错。
第5章 ICMP协议
第5章 ICMP协议
5.1 ICMP协议的作用与原理 5.1 ICMP报文的封装与格式 5.2 ICMP差错报文 5.3 ICMP控制报文 5.4 ICMP请求与应答报文
第5章 ICMP协议
ICMP功能
2. 查询 –ICMP协议的第2大功能就是查询,帮助主机或管理员 从一个路由器或主机得到特定的信息,这些报文是 以请求与应答方式成对出现的,一方主动向另一方 发出查询请求,而另一方将查询结果报告给请求方。 –ICMP请求应答报文对可在任何两个网络节点之间传 输,也可以以一对多方式传输,如广播。
5.2.5 重定向报文(P103)
• 主机数量很大,而且主机不总是在线,动态更新主机路由表 会产生很大的通信开销,因此主机通常使用静态路由选择。
• 主机在发送信息时要根据路由表选择路由器。为解决主机路 由表的更新问题,ICMP提供了重定向(Redirect)机制。
• 主机的下一跳路由器收到数据包后,判断本路由器是否是去 往目的地的最佳选择,如果不是,在转发的同时产生一个ICMP 重定向报文,通知源主机修改路由表。
5.2.1 目的地不可达(P100)
5种ICMP差错报告:目 的地不可达、超时、 参数问题、源抑制、 重定向。
• 目的地不可达(Destination Unreachable)
• 当路由器无法根据路由表转发IP包,或主机无法向上层 协议提交IP包,将丢弃当前数据包,并产生目的地不可 达差错报告,向源主机报告出错。
• 在报告差错时,携带原始出错IP数据报的首部和数据的 前8个字节,通常这些信息包括该数据报的关键信息, (前8字节一般是上层协议的首部信息),主要是引起差 错的原始数据包部分内容。
• 在请求和应答报文中,携带与请求和应答相关的额外信 息,也就是基于查询类型的其他信息。
5.1.5 ICMP报文类型(P99)
5.1.3 ICMP报文封装(P97)
• ICMP虽然可以接受来自上层(TCP UDP)的请求,但是并不 直接封装上层协议的数据,而是将请求转变为ICMP报文。
第5讲 ICMP协议
四、参数出错报告:数据报首部或选项出错时
类型(12) 校验和 未使用(0) 指针 IP数据报首部 + 数据报首部的前64字节 代码
指针:指向数据报出错的第一个字节
5.5 ICMP控制报文
一、拥塞控制与源站抑制 拥塞:大量数据报涌入同一网关,导致该网关资源耗 尽而必须丢弃后面到达的数据报时,就是拥塞。 拥塞控制:解决数据报大量涌入问题 流量控制:解决点对点传输速率的匹配问题 解决拥塞方法:源站抑制,即抑制信源发出数据报的 类型(4) 速率。 代码 校验和
类型(10) 代码 校验和 未使用(0)
使用:主机启动后,通过组播或有限广播方式发路由器 恳求报文,寻找默认路由器 。 路由器收到恳求报文后,立即发一个路由器通告报文作 为响应。 类型(9) 代码(0) 校验和
地址号 地址大小1 生命期(30分钟) 路由器地址1 优先级1 路由器地址2 优先级2 ……
一、报文格式 与类型相关,但是前3个域相同
类型
5.2 ICMP报文格式和类型
代码 校验和 其它字段(与类型相关) 数据区…
说明: (1)对整个报文计算校验和 (2)差错报告报文的数据区包括:出错数据报的首 部 + 出错数据报数据区前64bit 原因:包含上层协议报文的重要信息。 (3)非嵌套使用:规定不为携带ICMP差错报文的数 据报中出现的差错而生成ICMP报文。 如果该类报文出现差错,则产生异常。
二、获得子网掩码(已弃用): 地址掩码请求/应答报文
类型 代码 标识 掩码
校验和 序号
应用:主机发往网关,请求地址掩码 三、时钟同步与传送时间估计: 时戳请求/应答报文 类型 代码 校验和 功能: 标识 序号 1.时钟同步 初始时间戳 2.估算往返时间 接收时间戳 初始时间戳:发送方发送数据 传送时间戳 前填写 接收时间戳:接收方收到报文 问题:如何估算往返 时填写 传送时间戳:接收方发送回应 时间和进行时钟同 步? 时填写
ICMP协议
ICMP协议协议名称:ICMP协议一、引言ICMP(Internet Control Message Protocol,互联网控制报文协议)是一种网络协议,用于在IP网络中传递控制消息。
它通常与IP协议一起使用,用于报告错误和提供有关网络状况的信息。
本协议旨在详细描述ICMP协议的标准格式和相关内容。
二、协议格式ICMP报文由报文头和数据部分组成。
报文头包含以下字段:1. 类型(Type):指示报文的类型,用于区分不同的ICMP消息。
2. 代码(Code):与类型字段一起用于进一步指定报文的具体类型。
3. 校验和(Checksum):用于校验报文的完整性。
4. 标识符(Identifier):用于唯一标识一个ICMP报文。
5. 序列号(Sequence Number):与标识符一起用于识别ICMP报文的顺序。
三、ICMP消息类型ICMP协议定义了多种不同类型的消息,每种消息都有特定的目的和含义。
以下是常见的ICMP消息类型:1. 回显请求(Echo Request)和回显应答(Echo Reply):用于测试网络的可达性和延迟。
2. 目的地不可达(Destination Unreachable):用于通知发送方,目标主机不可达或某个中间节点无法到达目标主机。
3. 超时(Time Exceeded):用于通知发送方,某个数据包在传输过程中发生了超时。
4. 参数问题(Parameter Problem):用于通知发送方,某个IP数据报的头部参数有误。
5. 重定向(Redirect):用于通知发送方,某个路由器提供了更优的路径。
四、ICMP报文的具体格式和内容1. 回显请求(Echo Request)和回显应答(Echo Reply):- 类型:8(回显请求)和0(回显应答)- 代码:0- 校验和:16位校验和- 标识符:16位标识符- 序列号:16位序列号- 数据部分:可选的数据部分,用于传递额外信息。
ICMP(个人摘录并整理)
ICMP(个⼈摘录并整理)第5章ICMP协议因为IP协议是提供不可靠传输服务的,因此源地址发出的IP数据包很可能⽆法到达⽬标地址。
发⽣这种情况的原因是很多的,可能是⽬标主机根本不存在,也可能是传输途中的某个链路中断等。
那么在IP数据包⽆法传送到⽬标地址时,发送⽅怎样才能知道是什么原因造成的呢?ICMP协议就是⽤来探测并报告IP数据包传输中产⽣的各种错误的。
在本章中,我们将介绍ICMP协议。
5.1ICMP协议的作⽤与原理ICMP是Internet Control Message Protocol(互联⽹控制消息协议)的缩写。
ICMP协议就是⽤来探测并报告IP数据包传输中产⽣的各种错误的。
我们都知道IP协议的⼯作原理,IP数据包在⽹络上的传输是通过路由器对数据包的转发来完成的。
如果在IP数据包的传输过程中,某个路由器因为某种原因⽆法转发收到的数据包时,数据包就会被丢弃。
但这时数据包的发送站⽆法得知传输出错,更不知道出错的具体原因。
⽽⼀个有效的错误检查与报告机制对TCP/IP协议是⾮常重要的,因为它可以使我们在⽹络发⽣故障时知道故障的具体原因与位置。
ICMP协议就是这样⼀种能让我们对⽹络进⾏调试的报错机制,它能让发现错误的路由器向数据包的源站发送⼀个出错消息,报告出错原因。
这样源站就可以根据不同的错误采取相应的措施进⾏处理。
需要指出的是,ICMP的错误报告只能通知出错数据包的源主机,⽽⽆法通知从源主机到出错路由器途中的所有路由器。
例如:在图5.1中主机H1向H2发送⼀个IP数据包,路由器R C 发现⽆法将该数据包转发到H2。
我们看看通过R C接收到的数据包能提取哪些信息。
R C 能知道数据包的源地址和⽬标地址,但它⽆法知道该数据包到达本路由器时途中经过了哪些其他的路由器。
因此R C只能将出错消息发送给数据包的源地址H1。
图5.1IP数据包出错⽰例从图5.1中还可以看出ICMP数据包应该如何传输。
如果R C要向H1发送⼀个ICMP数据包,那么该数据包必须通过路由器R A 或R B,即要由它们之中的⼀个将数据包转发给主机H1。
ICMP协议详解
ICMP协议详解一. 什么是ICMP协议ICMP全称Internet Control Message Protocol(网际控制信息协议)提起ICMP,一些人可能会感到陌生,实际上,ICMP与我们息息相关。
在网络体系结构的各层次中,都需要控制,而不同的层次有不同的分工和控制内容,IP层的控制功能是最复杂的,主要负责差错控制、拥塞控制等,任何控制都是建立在信息的基础之上的,在基于IP 数据报的网络体系中,网关必须自己处理数据报的传输工作,而IP协议自身没有内在机制来获取差错信息并处理。
为了处理这些错误,TCP/IP设计了ICMP协议,当某个网关发现传输错误时,立即向信源主机发送ICMP报文,报告出错信息,让信源主机采取相应处理措施,它是一种差错和控制报文协议,不仅用于传输差错报文,还传输控制报文。
二.ICMP报文格式IC M P所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。
类型字段可以有1 5个不同的值,以描述特定类型的I C M P报文。
某些I C M P报文还使用代码字段的值来进一步描述不同的条件。
表示ICMP头部的数据结构typedefstruct icmp_hdr{ unsigned char icmp_type; //消息类型unsigned char icmp_code; //代码unsigned short icmp_checksum; //校验和unsigned short icmp_id; //ID号unsigned short icmp_sequence; //序列号unsigned long icmp_timestamp; //时间戳} ICMP_HDR,*PICMP_HDR;三ICMP报文的类型各种类型的I C M P报文如图所示,不同类型由报文中的类型字段和代码字段来共同决定。
图中的最后两列表明I C M P报文是一份查询报文还是一份差错报文。
因为对I C M P差错报文有时需要作特殊处理,因此我们需要对它们进行区分。
实验五 ICMP互联控制报文协议分析
实验五 ICMP互连控制报文协议一实验目的1、了解 ICMP 协议的格式和响应方式及作用;2、了解常见的网络故障。
二实验内容1、学习和掌握 ICMP 协议的基本作用;2、掌握 ICMP 报文的格式;3、理解 ICMP 协议与 IP 协议的封装关系;4、学会根据各种响应信息进行出错分析的方法;5、学会使用 ping、netstat 和 tracert 命令。
三实验环境四实验流程五实验原理该协议是 TCP/IP 协议集中的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。
当遇到 IP 数据无法访问目标、IP 路由器无法按当前的传输速率转发数据包等情况时,会自动发送 ICMP 消息。
IP 协议是一种不可靠无连接的包传输,当数据包经过多个网络传输后,可能出现错误、目的主机不响应、包拥塞和包丢失等。
为了处理这些问题,在 IP 层引入了一个子协议 ICMP (Inlernet Control Messa.ge Protocol)。
ICMP 数据报有两种形式:差错数据报和查询数据报。
ICMP 数据报封装在 IP 数据报里传输。
ICMP 报文可以被IP 协议层、传输层协议(TCP 或 UDP)和用户进程使用。
ICMP 与 IP 一样,都是不可靠传输,ICMP 的信息也可能丢失。
为了防止 ICMP 信息无限制的连续发送,对 ICMP数据报传输中问题不能再使用 ICMP 传输。
1、 ICMP 报文的封装ICMP 有两种报文:差错报文和查询报文。
两种报文都是封装在 IP 报文中进行传输的,具体的封装格式如图IP首部ICMP报文2、ICMP 报文的格式8位类型8位代码16位校验和根据类型和代码有不同的格式字段说明:8位的类型字段有15个不同的值,它与8位的代码字段共同决定了各种类型的ICMP报文;校验和:对ICMP整个报文中每个16bit进行二进制反码求和。
3、ICMP报文的主要类型类型代码描述查询差错0 0 回显应答√3 0 网络不可达√3 1 主机不可达√3 2 协议不可用√3 3 端口不可达√√3 4 需要进行分片3 5 源路由失败√4 0 源拥塞√√5 0 对网络重定向√5 1 对主机重定向8 0 请求回显√9 0 路由器通告√10 0 路由器请求√√11 0 传输期间生存期为0√11 1 数据报组装期间生存期为0√12 0 数据包首部参数问题13 0 时间戳请求√14 0 时间戳应答√15 0 信息请求√16 0 信息响应√17 0 地址掩码请求√18 0 地址掩码应答√六实验步骤步骤一:分析 ICMP 请求响应报文在命令行提示符下运行 ping 命令:1、从地址本中选择与本机属于同一子网的主机,例如:ping 172.16.3.22、在协议分析器端分别进行观察和分析:①是否捕获到响应包?②如果捕获到,观察并分析每个响应包的 ICMP 协议头部分;3、在本机开启协议分析软件进行数据包捕获。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二节
ICMP报文格式与类型
5.2 ICMP报文格式与类型
• ICMP报文由首部和数据段组成。 • 首部为定长的8个字节,前4个字节是通用部分,后4 个字节随报文类型的不同有所差异。 • ICMP报文的一般格式如图所示。
0 8 字节 类 型 8 代 码 首部其他部分 16 校 验 和 首部 31
8 9 10 11 12 13 14 15
• 信宿不可达有4个层次:从大到小
–网络不可达
–主机不可达
– 协议不可达
– 端口不可达
• 信宿不可达有4个层次:从大到小
–网络不可达:路由表出错、或 目的地址有错。
– 主机不可达
– 协议不可达
– 端口不可达
• 信宿不可达有4个层次:从大到小
– 网络不可达
• ICMP(Internet Control Massage Protocol)设 计的最初目的主要是用于IP层的差错报告,由路由器 或信宿以一对一的模式向信源报告传输错误的原因。
Байду номын сангаас
• 随着网络的发展,检测和控制功能逐渐被引入到 ICMP协议中,使得ICMP协议不仅用于传输差错报 告,而且大量用于传输控制报文。
5.1 因特网控制报文协议(ICMP)
• ICMP与IP协议位于同一个层次(IP层),但 ICMP报文是封装在IP数据报的数据部分进行传 输的。
• TCP/IP协议栈中,ICMP协议位于比IP协议略高 的位置。但ICMP不作为单独的独立层次,而只 是IP层的一部分。 • ICMP协议是IP协议的补充,用于IP层的差错报 告、拥塞控制、路径控制以及路由器或主机信息 的获取。
数据
类型12表明数据报参数错
– 代码“0”表示数据报首部中的某个字段的值有错或不明确,这时 ICMP报文首部的指针指向数据报中有问题的字节; – 代码“1”表示数据报首部中缺少某一选项所必须具有的部分参数 ,此时的ICMP报文没有指针字段。
地 址 掩 码 请 求 与 应 答 报 文
• 控制报文:引起信源机的相应处理,源抑制会引发信源机 的拥塞控制,重定向引发信源机进行路径控制。
ICM P 报文
差错报告
控制报文
请求应答报文
信 宿 不 可 达 报 告
数 据 报 超 时 报 告
数 据 报 参 数 错 报 告 源 抑 制 报 文 重 定 向 报 文 回 应 请 求 与 应 答 报 文
数
据
数据
图 6-1 ICMP 报文格式
0 8 字节 类 型
8 代 码
16 校 验 和
31 首部
首部其他部分
数
据
数据
Type :8bit ICMP报文类型 Code:8bit 报文类型的进一步信息 CheckSum:16bit ICMP整个报文的校验和 其它部分:32bit,大部分差错报告报文不使用该字段,置0, 参数错报告会用到其中的一个字节作指针,请求应答报文对 利用该4个字节匹配请求与应答报文。
图 6-2
ICMP 报文种类
5.3.3 数据报参数错报告
• 数据报参数错报告是由数据报首部字段值不明确或空缺而 引起的差错报告。 • 一旦路由器或信宿机发现错误的数据报首部和错误的数据 报选项参数时,便抛弃该数据报,并向信源发送差错报告 报文。
• 数据报参数错报文的格式如图所示。
0 8 字节 类 型:12 指 针 8 代 码:0/1 16 校 验 和 首部 未 用(全 0) 出错数据报的部分信息 (IP 数据报首部+数据报数据部分的前 64 位) 图 6-4 ICM P 参数错报文格式 31
计算机网络 协议分析与测试
第五章 ICMP协议
本章主要内容
5.1 5.2 5.3 5.4 5.5 5.6
因特网控制报文协议 ICMP报文格式与类型 ICMP差错报告 ICMP控制报文 ICMP请求与应答报文对 ICMP报文封装
第一节
因特网控制报文协议概述
5.1 因特网控制报文协议(ICMP)
ICMP报文三大类:差错报告、控制报文和请求应答报文。
ICMP 报文
差错报告
控制报文
请求应答报文
信 宿 不 可 达 报 告
数 据 报 超 时 报 告
数 据 报 参 数 错 报 告
源 抑 制 报 文
重 定 向 报 文
回 应 请 求 与 应 答 报 文
路 由 器 请 求 与 通 告 报 文
时 间 戳 请 求 与 应 答 报 文
回 应 请 求 与 应 答 报 文
路 由 器 请 求 与 通 告 报 文
时 间 戳 请 求 与 应 答 报 文
地 址 掩 码 请 求 与 应 答 报 文
图 6-2
ICMP 报文种类
5.3.2 数据报超时报告 • 在数据报的传输过程中,首部的TTL值用于防止数据 报因路由表的问题而无休止地在网络中传输。当TTL 值为0时,路由器会丢弃当前的数据报,并产生一个 ICMP数据报超时报告。 • 另外,在信宿进行分片重组时会启动重组定时器, 一旦重组定时器超时,信宿就会丢弃当前正在重组 的数据报,然后产生一个ICMP数据报超时报告,并 向信源发送该超时报告。
–主机不可达:信宿机不在运行中 ,或信宿机不存在,但此时网络 可达。
– 协议不可达
– 端口不可达
• 信宿不可达有4个层次:从大到小
– 网络不可达 – 主机不可达
– 协议不可达:IP向上TCP/UDP提交 时,协议未在运行中,但网络和主机 都可达。
– 端口不可达
• 信宿不可达有4个层次:从大到小
– 网络不可达 – 主机不可达 – 协议不可达
路 由 器 请 求 与 通 告 报 文
时 间 戳 请 求 与 应 答 报 文
地 址 掩 码 请 求 与 应 答 报 文
• 请求应答报文:成对出现,使得请求方可以从路由器或其 它主机获取信息。
ICM P 报文
差错报告
控制报文
请求应答报文
信 宿 不 可 达 报 告
数 据 报 超 时 报 告
数 据 报 参 数 错 报 告 源 抑 制 报 文 重 定 向 报 文 回 应 请 求 与 应 答 报 文
数据
• 信宿不可达报文可能由路由器产生, • 也可能由信宿机产生。16种可能的原因
类型 报 文 代码 描 述
0 1 2 3 4 5 6
网络不可达 主机不可达 协议不可达 端口不可达 数据报无法分片 源路由失败 信宿网络未知
7
3 信宿不可达
信宿主机未知
源主机被隔离 与信宿网络的通信被禁止 与信宿主机的通信被禁止 对特定的服务类型(TOS)网络不可达 对特定的服务类型(TOS)主机不可达 因管理者设置过滤而使主机不可达 因非法的优先权而使主机不可达 因报文的优先级低于网络设置的最小优先级而使主机不可达
• IP数据报传输中出现的故障,主要表现为:
– IP数据报不能到达目的(信宿机) – 数据报传输超时 – 系统拥塞
• 一旦发现错误,发现者立即向信源机发送 ICMP报文,报告出错情况,以便信源机采 取措施。
• 通常信源机本身不能解决问题,需要依赖经 验丰富的网络管理人员介入,或通过功能强 大的网络管理工具进行分析判断,逐步加以 解决。
• 数据报超时报告的报文格式与信宿不可达报告的报文 格式相同,只是类型和代码值不同。
• 数据报超时报告的类型和代码的含义如表所示。类型 值11表示是数据报超时报文,代码“0”表示TTL超 时,代码“1”表示分片重组超时。
类型 报 文 代码 0 11 超时 1 分片重组超时 路由TTL超时 描 述
ICMP报文三大类:差错报告、控制报文和请求应答报文。
ICM P 报文
差错报告
控制报文
请求应答报文
信 宿 不 可 达 报 告
数 据 报 超 时 报 告
数 据 报 参 数 错 报 告 源 抑 制 报 文 重 定 向 报 文 回 应 请 求 与 应 答 报 文
路 由 器 请 求 与 通 告 报 文
时 间 戳 请 求 与 应 答 报 文
地 址 掩 码 请 求 与 应 答 报 文
• 所以,随着网络的发展,检测和控制功能 逐渐被引入到ICMP协议中,使得ICMP协 议不仅用于传输差错报告,而且大量用于 传输控制报文。
• 检测和控制功能的引入,改变了ICMP 1对1 方式 向信源机报告传输错误的工作模式,如请求和应 答报文对可疑在任意两台设备之间传输,而且还 可以一对多方式传输(广播或组播)。
• TCP/IP的可靠性思想是将可靠性问题放在传输层解 决,以简化路由设备的实现。 • 利用IP层的ICMP实现差错报告是因为:
– TCP/IP传输层可靠性的实现和ICMP差错控制不矛盾,各 自解决的问题不同。 – IP层解决信宿不可达的问题,信宿不可达,则信宿机无法 直接参与控制,端到端无法实现。 – IP层仅涉及与路径和可达相关的差错问题,并不解决数据 本身的差错问题。 – IP层的差错与控制由一个独立的协议ICMP完成,IP协议不 负责完成差错与控制功能。 – 控制建立在信息了解的基础上,主动+被动,询问或者被动 接收对象报告信息。
ICMP 报文
差错报告
控制报文
请求应答报文
信 宿 不 可 达 报 告
数 据 报 超 时 报 告
数 据 报 参 数 错 报 告
源 抑 制 报 文
重 定 向 报 文
回 应 请 求 与 应 答 报 文
路 由 器 请 求 与 通 告 报 文
时 间 戳 请 求 与 应 答 报 文
地 址 掩 码 请 求 与 应 答 报 文
路 由 器 请 求 与 通 告 报 文
时 间 戳 请 求 与 应 答 报 文
地 址 掩 码 请 求 与 应 答 报 文
第三节
ICMP差错报告