文档库 最新最全的文档下载
当前位置:文档库 › 简述ICMP协议功能与作用,并抓包分析

简述ICMP协议功能与作用,并抓包分析

ICMP协议功能与作用

ICMP是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。我们在网络中经常会使用到ICMP协议,只不过我们觉察不到而已。比如我们经常使用的用于检查网络通不通的Ping命令,这个“Ping”的过程实际上就是ICMP 协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。基本的功能是测试网络是否畅通。

ICMP协议分析

在PC 以https://www.wendangku.net/doc/3f15704539.html,为目标主机,在命令行窗口执行Ping 命令;

Ping命令为:ping https://www.wendangku.net/doc/3f15704539.html,

将命令行窗口进行截图:

抓包结果

1:报文格式类型

类型为8。

2:报文格式代码

报文格式代码为0。3:报文格式标识

标识为0x4d32

4:报文格式序列号

5:

IP协议和ICMP协议

这是主机B发出的ip数据报 这是E接受到的IP数据报 观察:TTL 128 TTL127 结论: 变化的字段有:“生存时间”和“首部校验和”。原因:主机B为路由器,数据包每经过一路由器“生存时间”字段的值就会减1,并重新计算校验和。

现象:主机E捕获不到 经过路由器“生存时间”字段的值就会减1,当“生存时间”字段的值减至为0时,路由器将该报文丢弃不进行转发。 设置好,并在过滤器面板启用 PC-C、PC-D、Router-A Router-A 直接广播地址包含一个有效的网络号和一个全“1”的主机号,一个直接广播的单一拷贝被发送到一个指定网段的网络,它被广播到该网络中的所有终端. 路由器会阻断不同分组中直接广播(路由器没有开启定向广播功能)

PC-C、PC-D、Router-A PC-E,PC-F 受限的广播地址为255.255.255.255.可以用在计算机不知道自己IP地址的时候,比如向DHCP服务器索要地址时、PPPOE拨号时等。在任何情况下,路由器都不转发目的地址为受限地址的数据报。这样的数据报仅出现在本地的网络中。 127.0.0.1称为环回地址,常用于本机上软件测试和本机上网络应用程序之间的通信地址,分组永远不离开这个机器。

此次传输的ip数据报共分为两片,第一个数据报片的信息如下 第二个数据报片如下 分片数情况记录表 0xd 0xd 0x1 0x0 0x0 0x5c8

1500 1040 不同的分片拥有相同的ID标识字段的可以重新还原为原来的数据报 MF=1,表示后面还有分片 片偏移:0x0表示该分片是整个包的起始位置,0x5c8是第二个分片的起始位置原始数据报的首部被复制到个数据报片的首部,会相应更改有关字段的值 是 否 分析:主机B:172.16.1.2 主机C:172.16.1.3 主机D:172.16.1.100 主机B的子网掩码255.255.255.0 网络号为172.16.1 主机C与D子网掩码255.255.255.224 即255.255.255.11100000 那么C的网络号为172.16.1 那么D的网络号为172.16.1.96 过程: (1 )当主机B ping 主机C,B 一开始是不知道C的掩码(C的掩码对B来说是透明的),B就拿自己的掩码255.255.255.0去与C的IP,得到的网络号为172.16.1,主观认为C和自己是同一个网段,那么B直接发送ARP请求,ARP请求的目的IP是172.16.1.3,C接受到ARP请求,查看了用自己的掩码与了一下源IP,也就是B的IP,得到的网络号是172.16.1,和自己同处一个网段,就接受了这个arp请求,向主机B返回自己的Mac地址。那么B,C就可以互通了 (2 )当主机B ping 主机D,B 一开始是不知道D的掩码(D的掩码对B来说是透明的),B想当然的认为D和自己同处一个网段,直接发送arp广播,arp广播的目的ip是D,D接受到arp请求,将自己的掩码与了一下来源ip和自己的ip 发现,不对劲!网段不一致,就拒收,arp解析失败。那么B与D就不可以互通 ※拓展一下:

ICMP和IP协议分析

江西师范大学计算机信息工程学院 网络工程系 计算机网络实验报告 实验名称:IP和ICMP协议分析 一、实验目的 1.通过使用协议分析软件掌握ICMP(因特网控制报文协议)的工作过程; 2.用抓包软件wireshark抓取ICMP的包,对ICMO协议进行分析。 二、实验原理

使用ping命令来做ip实验。使用ping命令(Ping命令使用的ICMP协议中的回送请求和回送响应,所以可以使用协议分析软件通过使用ping命令来抓包,分析ICMP协议的工作过程),一台pc机ping另外一台pc机,过滤出ICMP的包,对其进行协议分析。 IP协议试验 三,试验步骤 1. ping –a [IP] 解析计算机的域名。 2.ping –n 指令可以指定返回数据包的个数比如ping –n 6 ,就表示通过ICMP返回的 数据包就有6个。

3. ping –l指令是表示每个ping的数据包中所能传输的数据数,后面接数字。 ICMP协议分析 三、实验步骤 四、打开抓包软件wireshark,过滤ICMP的包,之后点击start 五、用主机(192.168.1.2)去ping虚拟机(192.168.1.1)

3.打开wireshark过滤完了ICMP的报文包,如图,是我们抓到过滤完的ICMP 数据报。 第一帧:

这一帧类型为8是一个请求报文,数据位32个字节,校验和正确第二帧:

这是个类型为0是一个响应报文,响应时间为3.496ms ,数据位32个字节,校验和正确 四,实验总结 ICMP协议是一种面向连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。[1] 它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

icmp协议功能是什么

icmp协议功能是什么 ICMP协议ICMP(Internet Control Message Protocol)是介于网络层和传输层的协议。它的主要功能是传输网络诊断信息。 ICMP传输的信息可以分为两类,一类是错误信息,这一类信息可用来诊断网络故障。我们已经知道,IP协议的工作方式是best effort。如果IP包没有被传输到目的地,或者IP 包发生错误,IP协议本身不会做进一步的努力。但是上游发送IP包的主机和接力的路由器并不知道下游发生了错误和故障,它们可能继续发送IP包。通过ICMP包,下游的的路由器和主机可以将错误信息汇报给上游,从而让上游的路由器和主机进行调整,需要主要的是,ICMP只提供特定类型的错误汇报,它不能帮助IP协议成为可靠(reliable)的协议。另一类信息是咨询性质的,比如某台计算机询问路径上的每个路由器都是谁,然后各个路由器同样用ICMP包回答。 备注:ICMP基于IP协议,也就是说,一个ICMP包需要封装在IP包中,然后在互联网传送.ICMP是IP套装的必须部分,也就是说,任何一个支持IP协议的计算机,都要实现ICMP. ICMP包的结构: 有点复杂,但是那是注释,内容不复杂,下面看我给大家一一道来: ICMP包都会有Type,Code,Checksum三部分.Type标识ICMP包的大的类型,而Code 是一个Type之内细分小类型。针对不同的错误信息或者资讯信息,会有不同的Type和Code.从上面我们可以看出,ICMP支持的类型非常多,由多种多样的功能.Checksum 与IP 协议的header Checksum相类似,但与IP协议中checksum只校验头部不同,这里的Checksum所校验的是整个ICMP包(包括头部和数据) 余下的ICMP包格式根据不同的类型不同。另一方面,ICMP包通常是由某个IP包触发的。这个触发IP包的头部和一部分数据会被包含在ICMP包的数据部分。 ICMP协议是实现ping命令和traceroute命令的基础。这两个工具常用于网络排错。

ICMP协议分析

ICMP协议分析 1 ICMP协议协议概述 IP协议是一种不可靠的协议,无法进行差错控制。但IP协议可以借助其他协议来实现这一功能,如ICMP。 ICMP(Internet Control Messages Protocol, 网间控制报文协议)允许主机或路由器报告差错情况和提供有关异常情况的报告。 一般来说,ICMP报文提供针对网络层的错误诊断、拥塞控制、路径控制和查询服务四项大的功能。如,当一个分组无法到达目的站点或TTL超时后,路由器就会丢弃此分组,并向源站点返回一个目的站点不可到达的ICMP报文。 2 ICMP报文类型 2.1 ICMP报文类型 ICMP报文大体可以分为两种类型,即ICMP差错报文和ICMP询问报文。但细分又可分为很多类型,如表1所示。

表1 ICMP报文类型

2.2 ICMP回射请求和应答报文头部格式 ICMP报文被封装在IP数据报内部传输。如图1所示,是ICMP回射请求和应答报文头部格式。 图1 ICMP回射请求和应答报文头部格式 各种ICMP报文的前32bits都一样,它们是: 8bits类型和8bits代码字段:一起决定了ICMP报文的类型。常见的有: 类型8、代码0:回射请求。 类型0、代码0:回射应答。 类型11、代码0:超时。 16bits校验和字段:包括数据在内的整个ICMP数据包的校验和,其计算方法和IP头部校验和的计算方法是一样的。 对于ICMP回射请求和应答报文来说,接下来是16bits标识符字段:用于标识本ICMP进程。 最后是16bits序列号字段:用于判断回射应答数据报。 2.3 ICMP目标不可达报文 如图2所示,是ICMP目标不可达报文头部格式。 图2 ICMP目标不可达报文头部格式 其中代码字段的不同值又代表不同的含义,如0代表网络不可达、1代表主机不可达等,见表1。

ICMP协议原理分析

实验三ICMP协议原理分析 一、ICMP协议简介 ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。 网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的IP 协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP 的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。 ICMP的报头长8字节,结构如图1所示。 比特0 7 8 15 16 比特31 (图1 ICMP报头结构) ●类型:标识生成的错误报文,它是ICMP报文中的第一个字段; ●代码:进一步地限定生成ICMP报文。该字段用来查找产生错误的原因; ●校验和:存储了ICMP所使用的校验和值。 ●未使用:保留字段,供将来使用,起值设为0 ●数据:包含了所有接受到的数据报的IP报头。还包含IP数据报中前8个字节的数据; ICMP协议提供的诊断报文类型如表1所示。 (表1 ICMP诊断报文类型) ICMP提供多种类型的消息为源端节点提供网络层的故障信息反馈,它的报文类型可以归纳为以下5个大类:

●诊断报文(类型8,代码0;类型0,代码0); ●目的不可达报文(类型3,代码0-15); ●重定向报文(类型5,代码0-4); ●超时报文(类型11,代码0-1); ●信息报文(类型12-18)。 二、详细解码 使用科来网络分析系统捕获数据包,我们得到ICMP回显报文的信息,如图1所示, (图1 科来网络分析系统抓取的ICMP回显报文) 我们详细介绍在图1中的解码信息, ●类型:8,表示是一个ICMP回显请求报文; ●代码:0,表示网络不可达; ●校验和:表示ICMP的0x425C;使用IP校验和的算法。 ●标识:0x0400 ●序列号:0x0700,每一个ICMP回显报文都有一个序列号且是递增的 ●数据:表示是一个32字节的数据 注:以上是一个ICMP回送报文,可以看出了和前面列出的ICMP报文有点不一样。因为ICMP有几种类型的报文(目标不可达报文,重定向报文,超时报文,回送请求和回送应答报文),每一种报文都相对都有一些区别。

实验:利用Wireshark分析ICMP协议

实验利用Wireshark分析ICMP协议 一、实验目的 分析ICMP协议 二、实验环境 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。 三、协议简介 ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。 网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。 ICMP的报头长8字节,结构如图1所示。 比特0 7 8 15 16 比特31 (图1 ICMP报头结构) ●类型:标识生成的错误报文,它是ICMP报文中的第一个字段; ●代码:进一步地限定生成ICMP报文。该字段用来查找产生错误的原因; ●校验和:存储了ICMP所使用的校验和值。 ●未使用:保留字段,供将来使用,起值设为0 ●数据:包含了所有接受到的数据报的IP报头。还包含IP数据报中前8个字节的数据; ICMP协议提供的诊断报文类型如表1所示。

(表1 ICMP诊断报文类型) ICMP提供多种类型的消息为源端节点提供网络层的故障信息反馈,它的报文类型可以归纳为以下5个大类: ●诊断报文(类型8,代码0;类型0,代码0); ●目的不可达报文(类型3,代码0-15); ●重定向报文(类型5,代码0-4); ●超时报文(类型11,代码0-1); ●信息报文(类型12-18)。 Ping 命令只有在安装了TCP/IP 协议之后才可以使用,其命令格式如下: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] target_name 这里对实验中可能用到的参数解释如下: -t :用户所在主机不断向目标主机发送回送请求报文,直到用户中断; -n count:指定要Ping 多少次,具体次数由后面的count 来指定,缺省值为4; -l size:指定发送到目标主机的数据包的大小,默认为32 字节,最大值是65,527; -w timeout:指定超时间隔,单位为毫秒; target_name:指定要ping 的远程计算机。 Ping和traceroute命令都依赖于ICMP。ICMP可以看作是IP协议的伴随协议。ICMP 报文被封装在IP 数据报发送。 一些ICMP报文会请求信息。例如:在ping中,一个ICMP回应请求报文被发送给远程主机。如果对方主机存在,期望它们返回一个ICMP回应应答报文。 一些ICMP报文在网络层发生错误时发送。例如,有一种ICMP报文类型表示目的不可达。造成不可达的原因很多,ICMP报文试图确定这一问题。例如,可能是主机关及或整个网络连接断开。

利用Wireshark分析ICMP协议

计算机网络实验报告 年级:姓名:学号: 实验日期:2012年10月9号 实验名称:利用wireshark分析ICMP协议 一、实验目的 分析ICMP协议 二、实验环境 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。 三、协议简介 ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI 的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。 ICMP的报头长8字节,结构如图1所示。 比特0 7 8 15 16 比特31 (图1 ICMP报头结构) ●类型:标识生成的错误报文,它是ICMP报文中的第一个字段; ●代码:进一步地限定生成ICMP报文。该字段用来查找产生错误的原因; ●校验和:存储了ICMP所使用的校验和值。 ●未使用:保留字段,供将来使用,起值设为0 ●数据:包含了所有接受到的数据报的IP报头。还包含IP数据报中前8个字节的数据; ICMP协议提供的诊断报文类型如表1所示。

(表1 ICMP诊断报文类型) ICMP提供多种类型的消息为源端节点提供网络层的故障信息反馈,它的报文类型可以归纳为以下5个大类: ●诊断报文(类型8,代码0;类型0,代码0); ●目的不可达报文(类型3,代码0-15); ●重定向报文(类型5,代码0-4); ●超时报文(类型11,代码0-1); ●信息报文(类型12-18)。 Ping 命令只有在安装了TCP/IP 协议之后才可以使用,其命令格式如下: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] target_name 这里对实验中可能用到的参数解释如下: -t :用户所在主机不断向目标主机发送回送请求报文,直到用户中断; -n count:指定要Ping 多少次,具体次数由后面的count 来指定,缺省值为4; -l size:指定发送到目标主机的数据包的大小,默认为32 字节,最大值是65,527; -w timeout:指定超时间隔,单位为毫秒; target_name:指定要ping 的远程计算机。 Ping和traceroute命令都依赖于ICMP。ICMP可以看作是IP协议的伴随协议。ICMP报文被封装在IP 数据报发送。 一些ICMP报文会请求信息。例如:在ping中,一个ICMP回应请求报文被发送给远程主机。如果对方主机存在,期望它们返回一个ICMP回应应答报文。 一些ICMP报文在网络层发生错误时发送。例如,有一种ICMP报文类型表示目的不可达。造

ICMP协议ping

ICMP协议,ping和Traceroute 1.IMCP协议介绍前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。 当传送IP数据包发生错误——比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前 16bit就组成了ICMP所要传递的信息。书上的图6-3清楚的给出了错误类型和代码的组合代表的意思。 尽管在大多数情况下,错误的包传送应该给出ICMP报文,但是在特殊情况下,是不产生ICMP 错误报文的。如下ICMP差错报文不会产生ICMP差错报文(出IMCP查询报文)(防止IMCP的无限产生和传送) 目的地址是广播地址或多播地址的IP数据报。 作为链路层广播的数据报。 不是IP分片的第一片。 源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地址或多播地址。 虽然里面的一些规定现在还不是很明白,但是所有的这一切规定,都是为了防止产生ICMP报文的无限传播而定义的。 ICMP协议大致分为两类,一种是查询报文,一种是差错报文。其中查询报文有以下几种用途:ping查询(不要告诉我你不知道ping程序) 子网掩码查询(用于无盘工作站在初始化自身的时候初始化子网掩码) 时间戳查询(可以用来同步时间) 而差错报文则产生在数据传送发生错误的时候。就不赘述了。 2.ICMP的应用——ping ping可以说是ICMP的最著名的应用,当我们某一个网站上不去的时候。通常会ping一下这个网站。ping会回显出一些有用的信息。一般的信息如下:Reply from 10.4.24.1:bytes=32 time<1ms TTL=255 Ping statistics for 10.4.24.1:Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:Minimum = 0ms, Maximum = 0ms, Average = 0ms ping这个单词源自声纳定位,而这个程序的作用也确实如此,它利用ICMP协议包来侦测另一

ICMP协议报文分析

南京理工大学泰州科技学院实验报告书 课程名称:《TCP/IP与网络互联》 实验题目:实验四 ICMP协议报文分析 班级:09计算机(2) 学号:09090302 姓名: 指导教师:王巍 成绩: 批阅教师: 2012年月日

一、实验目的和要求 1.学会使用Ping的重要参数。 2.理解不同类型ICMP报文的具体意义。 3.通过使用协议分析软件掌握ICMP协议的工作过程。 二、实验原理 类型代码校验和 首部其他部分 数据 图1 ICMP报文格式 (1)IP协议是一种不可靠无连接的包传输,当数据包经过多个网络传输后,可能出现错误、目的主机不响应、包拥塞和包丢失等。为了处理这些问题,在IP层引入了一个子协议ICMP(Internet Control Message Protocol)。 (2)ICMP数据报有两种形式:差错数据报和查询数据报。ICMP数据报封装在IP数据报里传输。 ICMP 报文可以被IP协议层、传输层协议(TCP或UDP)和用户进程使用。ICMP与IP一样,都是不可靠传输,ICMP的信息也可能丢失。 (3)为了防止ICMP信息无限制的连续发送,对ICMP数据报传输中问题不能再使用ICMP传输。查询报文是成对出现的,它帮助主机或网络管理员从一个路由器或另一个主机得到特定的信息。 (4)ICMP主要用于在主机与路由器之间传递控制信息。Ping命令使用的ICMP协议中的回送请求和回送响应,所以可以使用协议分析软件通过使用ping命令来抓包,分析IP协议和ICMP协议的工作过程。 三、实验内容和步骤 (1)实验拓扑图 图2 实验拓扑图 (2)按实验拓扑图把各个实验设备连起来并把路由器和交换机配置好。然后用wireshark软件开始抓包。

实验3ICMP协议实践ping解析

计算机网络实验上机指导书 专业 班级 学号 姓名 沈阳工程学院信息工程系

实验2ICMP协议实践--ping解析 一.实验目的 掌握ICMP原理,利用其实现网络主机状态测试。 二.实验内容 利用ICMP协议原理编程实现PING命令,测试目标主机是否可到达。并了解Ping实现原理。三.实验前的准备 ●了解ICMP原理及相关概念。 ●掌握相关软件编程知识。 四.实验要求及实验软硬件环境 【基本要求】 ●设计程序完成PING命令。 ●完成此项实验,完成实验报告。 【实验组织方式】 ●个人实验 【实验条件】 ●局域网环境下微机两台,编程软件。 五.实验步骤 .了解ICMP原理以及网络编程 (1)源程序:Windows // // Ping.h // #pragma pack(1) #define ICMP_ECHOREPLY 0 #define ICMP_ECHOREQ 8 // IP Header -- RFC 791 typedef struct tagIPHDR { u_char VIHL; // Version and IHL u_char TOS; // Type Of Service short TotLen; // Total Length short ID; // Identification short FlagOff; // Flags and Fragment Offset u_char TTL; // Time To Live u_char Protocol; // Protocol u_short Checksum; // Checksum struct in_addr iaSrc; // Internet Address - Source struct in_addr iaDst; // Internet Address - Destination }IPHDR, *PIPHDR;

ICMP协议实例分析

发现:在承载ICMP的IP的报文中的协议字段的值是0x01 作为ping命令的原理,自己通过ping同一宿舍的电脑但是失败的报文的场景: ICMP询问报文中的回送请求或回答报文中的回送报文: 直接分析ICMP报文部分: 首部8字节:3C~3J, 1个字节,0x08:表示这个ICMP的回送请求报文

:不知道什么意思 ICMP报文的检验和 identifier BE和Identifier LE,依然不知道是什么意思 这个也要分开说明,分别是:sequence number BE 和sequence number LE依然不知道什么意思,不过应该和这是第几个ping包有关 下面的从3K~5J共32B的数据:却是: Abcdefghijklmnopqrstuvwabcdefghi 经自己查看发送的request和reply基本上都是这个ascii码序列,但是也有的不是这个序列 ICMP的询问报文中的回送请求或回答中的回答报文: 直接看ICMP报文部分: 3C~3J

0x00,表示这个是ICMP回送请求或回答报文中的回答报文 ,不知道什么意思 ICMP报文的检验和 identifier BE和Identifier LE,依然不知道是什么意思 sequence number BE 和sequence number LE依然不知道什么意思,不过应该和这是第几个ping包有关,用于标识这是回送的第几个请求包 下面的3K~5J的数据共32B,依然是:序列!abcdefg··· ICMP的差错报告报文中的终点不可达报文, 自己意外的捕获到了这种报文: 直接分析ICMP的报文, 0x03,标识这个是终点不可达报文

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头部的数据结构 typedef struct 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报文的类型

icmp,,tcp,udp,eigrp,ospf的协议号

竭诚为您提供优质文档/双击可除icmp,,tcp,udp,eigrp,ospf的协议号 篇一:路由器协议ospf,eigrp 云南工商学院信息工程学院eigRp与ospF重发布 实训项目实训报告表 篇二:icmp协议 icmp协议 背景知识: 在以太网中,数据帧大小最大为1518字节,最小为64字节(由以太网 csma/cd决定)以太网中数据帧的封装格式: 662 —4ip数据报格式: 其中,较常用“协议”的取值有: icmp数据包格式 icmp协议基于ip协议,icmp数据包封装在ip数据包内。icmp封装格式: 20字节 icmp数据包的结构:

icmp头部长度为8bytes。 icmp查询报文 icmp两种报文形式icmp差错报文 检测连通性icmp报文作用 提示错误信息 常见icmp类型、代码值及应用场景: 下面是几种常见的icmp报文:1).响应请求 我们日常使用最多的ping,就是响应请求(type=8)和应答(type=0),一台主机向一个节点发送一个type=8的icmp 报文,如果途中没有异常(例如被路由器丢弃、目标不回应icmp或传输失败),则目标返回type=0的icmp报文,说明这台主机存在,更详细的tracert通过计算icmp报文通过的节点来确定主机与目标之间的网络距离。ping程序的参数如下:c:\users\qich>ping 用 法:ping[-t][-a][-ncount][-lsize][-f][-ittl][-rcount ][-scount][-R][-ssrcaddr]target_name选项: -tping指定的主机,直到停止。 若要查看统计信息并继续操作-请键入control-break;若要停止-请键入control-c。 -a将地址解析成主机名。-ncount要发送的回显请求数。-lsize发送缓冲区大小。

ICMP协议

ICMP协议 背景知识: ●在以太网中,数据帧大小最大为1518字节,最小为64字节(由以太网 CSMA/CD决定) 以太网中数据帧的封装格式: 6 6 2 — 4 ●IP数据报格式: 其中,较常用“协议”的取值有: ICMP数据包格式 ICMP协议基于IP协议,ICMP数据包封装在IP数据包内。 ICMP封装格式:

20字节 ICMP数据包的结构: ICMP头部长度为8bytes。 ICMP查询报文ICMP两种报文形式 ICMP差错报文 检测连通性 ICMP报文作用 提示错误信息 常见ICMP类型、代码值及应用场景:

下面是几种常见的ICMP报文: 1).响应请求 我们日常使用最多的ping,就是响应请求(Type=8)和应答(Type=0),一台主机向一个节点发送一个Type=8的ICMP报文,如果途中没有异常(例如被路由器丢弃、目标不回应ICMP或传输失败),则目标返回Type=0的ICMP报文,说明这台主机存在,更详细的tracert通过计算ICMP报文通过的节点来确定主机与目标之间的网络距离。 Ping程序的参数如下: C:\Users\qich>ping 用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-r count] [-s count] [-R] [-S srcaddr] target_name 选项: -t Ping 指定的主机,直到停止。 若要查看统计信息并继续操作- 请键入Control-Break; 若要停止- 请键入Control-C。

-a 将地址解析成主机名。 -n count 要发送的回显请求数。 -l size 发送缓冲区大小。 -f 在数据包中设置“不分段”标志(仅适用于 IPv4)。 -i TTL 生存时间。 -r count 记录计数跃点的路由(仅适用于 IPv4)。 -s count 计数跃点的时间戳(仅适用于 IPv4)。 -S srcaddr 要使用的源地址。 使用Ping 程序时,如果指定了参数-f (不分片),则参数-l 后,可以指定的最大发送缓冲区大小为1472。 1500(IP MTU)-20(IP 头部大小)-8(ICMP 头部大小)=1472 2) 需要进行分片但设置了DF 标记位 在封装UDP 的IP 数据包中,一般支持分片。 以太网中IP 数据包的MTU 为1500,这与初期设备的接收缓存小有关。当发送数据包的大小大于MTU 时,需要对该数据包进行分片。 发生ICMP 不可达差错的另一种情况是,当路由器收到一份需要分片的数据报,而在IP 首部又设置了不分片(DF )的标志比特。如果某个程序需要判断到达目的端的路途中最小MTU 是多少—称作路径MTU 发现机制(PMTUD ),那么这个差错就可以被该程序使用。 这种情况下的ICMP 不可达差错报文格式如下图所示。在第2个32bit 字中,16~31bit 可以提供下一跳的MTU 。 ICMP 报文中的IP 首部和原始IP 数据报中数据的前8字节,也成为伪首部 类型(3) 代码(4) 检验和 8 字节 下一跳网络的MTU 未用(必须为0) IP 首部(包括选项)+原始IP 数据报中数据的前8字节 (

ICMP协议分析报告

实验名称:利用Wireshark软件进行ICMP抓包实验 实验目的:1.掌握Wireshark的基本使用方法。 2.通过对Wireshark抓取的ICMP协议数据包分析,掌握ICMP的帧格式及运行原 理。 3.熟悉IP首部各字段的含义及以太网封装格式。 实验环境:1.硬件环境 a)网卡信息 Description:Realtek RTL8139 Family Fast Ethernet Adapter @ Link speed:100MBits/s Media supported:(Ethernet) Media in use: (Ethernet) Maximum Packet Size 1514 其它详细信息见附图1. b)网络组成 实验电脑通过ADSL MODEM 接入互联网中联通ADSL服务器,ADSL MODEM 和ADSL服务器间通过PPP over Ethernet(PPPoE)协议转播以太网络中PPP 帧信息。电脑通过ADSL方式上网是通过以太网卡(Ethernet)与互联网相连 的。使用的还是普通的TCP/IP方式,并没有付加新的协议,对我们的抓包实 验是透明的。 2. 软件环境 a)¥ b)操作系统 Microsoft Windows XP Professional 版本2002 Service Pack 3 c)Wireshark 软件 通过系统命令systeminfo查看处理器类型为X86-based PC,为32位机,因此选 择32位的Wireshark软件(Version:Version 1.2.3 for win32)。 实验的主要步骤和内容: 1.理论基础 本实验的主要目的是通过软件进一步掌握ICMP协议,因此选用PING 命令来 产生ICMP包,通过对这些数据包的分析,达成实验目的。所以该部分必须 包括ICMP报文格式,PING命令运行机制等说明。 a)( b)ICMP简述 ICMP(Internet Control Message Protocal)在网络中的主要作用是主机探 测、路由维护、路由选择、流量控制。运行于OSI的第三层,是IP协议 的一个附属协议。其报文封装在IP数据报内部。如下图。

相关文档