ICMP报文分析

一概述

ICMP报文的格式

ICMP差错报文56字节

ICMP询问报文40字节

Ping程序

 

以太网帧头+IP帧头+数据(ICMP报文)

.概述:

1. ICMP允许主机或路由报告差错情况和提供有关异常情况。ICMP是因特网的标准协议,但ICMP不是高层协议,而是IP层的协议。通常ICMP报文被IP层或更高层协议(TCPUDP)使用。一些ICMP报文把差错报文返回给用户进程。

2. ICMP报文作为IP层数据报的数据,加上数据报的首部,组成数据报发送出去。

3. ICMP报文的种类有两种,即ICMP差错报告报文和ICMP询问报文。

.ICMP报文的格式

1. 类型:占8

2. 代码:占8

3. 检验和:占16

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

4. 其它字段都ICMP报文类型不同而不同。

1> ICMP报文的前4个字节是统一的格式,共有三个字段:即类型,代码和检验和。

2> 8位类型和8位代码字段一起决定了ICMP报文的类型。

类型8,代码0:表示回显请求(ping请求)

类型0,代码0:表示回显应答(ping应答)

类型11,代码0:超时

3>16位的检验和字段:包括数据在内的整个ICMP数据包的检验和;其计算方法和IP头部检验和的计算方法一样的。

ICMP报文具体分为查询报文和差错报文(ICMP差错报文有时需要做特殊处理,因此要对其进行区分。如:对ICMP差错报文进行响应时,永远不会生成另一份ICMP差错报文,否则会出现死循环)

.ICMP差错报文(56字节)

1. ICMP差错报告报文共有5

1> 终点不可达:终点不可达分为:网络不可达,主机不可达,协议不可达,端口不可达,需要分片但DF比特已置为1,以及源路由失败等六种情况,其代码字段分别置为05。当出现以上六种情况时就向源站发送终点不可达报文。

说明:

端口不可达:UDP的规则之一是:如果收到UDP数据报而且目的端口与某个正在使用的进程不相符,那么UDP返回一个ICMP不可达报文。

2> 源站抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源站发送源站抑制报文,使源站知道应当将数据报的发送速率放慢。

3> 时间超过:当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源站发送时间超过报文。当目的站在预先规定的时间内不能收到一个数据报的全部数据报片时,就将已收到的数据报片都丢弃,并向源站发送时间超过报文。

4> 参数问题:当路由器或目的主机收到的数据报的首部中的字段的值不正确时,就丢弃该数据报,并向源站发送参数问题报文。

5> 改变路由(重定向)路由器将改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。

说明:

以下几种情况都不会导致产生ICMP差错报文

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

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

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

4>不是IP分片的第一片

5>源地址不是单个主机的数据报。即源地址不能为零地址、环回地址、广播地址或多播地址。

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

2.所有的ICMP差错报告报文中的数据字段都具有同样的格式。将收到的需要进行差错报告IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报文的数据字段。再加上响应的ICMP差错报告报文的前8个字节,就构成了ICMP差错报告报文。提取收到的数据报的数据字段的前8个字节是为了得到运输层的端口号(对于TCPUDP)以及运输层报文的发送序号(对于TCP)。

1.ICMP询问报文有四种回送请求和回答,时间戳请求和回答,掩码地址请求和回答,以及路由器询问和通过。

1>ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的机器必须给源主机发送ICMP回送应答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。

2>ICMP时间戳请求允许系统向另一个系统查询当前的时间。该ICMP报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间只能提供秒级的分辨率。请求端填写发起时间,然后发送报文。应答系统收到请求报文时填写接收时间戳,在发送应答时填写发送时间戳。大多数的实现是把后面两个字段都设成相同的值。

3>主机使用ICMP地址掩码请求报文可向子网掩码服务器得到某个接口的地址掩码。系统广播它的ICMP请求报文。ICMP报文中的标识符和序列号字段由发送端任意选择设定,这些值在应答中将被返回,这样,发送端就可以把应答与请求进行匹配。

4>主机使用ICMP路由器询问和通过报文可了解连接在本网络上的路由器是否正常工作。主机将路由器询问报文进行广播(或多播)。收到询问报文的一个或几个路由器就使用路由器通过报文广播其路由选择信息

.Ping程序

1.概述

1>Ping程序是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。

2>Ping程序还能测出到这台主机的往返时间,以表明该主机离我们有多远。

2.我们将发送回显请求的ping程序为客户,而称被ping的主机为服务器。

3.ICMP回显请求和回显应答报文格式:

1>Unix系统在实现ping程序时把ICMP报文中的标识符字段置成发送进程的ID号。这样即使在同一台主机上同时运行了多个ping程序实例,ping程序也可以识别出返回的信息。

2>序列号从0开始,每发送一次新的回显请求就加1ping程序打印出返回的每个分组的序列号,允许我们查看是否有分组丢失,失序或重复。.

3>ping程序通过在ICMP报文中存放发送请求的时间值来计算往返时间。当应答返回时,用当前时间减去存放在ICMP报文中的时间值,即是往返时间。

4>当返回ICMP回显应答时,要打印出序列号和TTL,并计算往返时间。TTL位于IP首部的生存时间字段。ping程序通过在ICMP报文数据段中存放发送请求的时间值来计算往返时间。当应答返回时,用当前时间减去存放在ICMP报文中的时间值,即是往返时间。

 

 

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Wireshark 是一款网络封包分析工具,它可以帮助我们捕获并分析网络中的数据包。ICMP 报文是 Internet Control Message Protocol 的缩写,它是 TCP/IP 协议族中的一种辅助协议,主要用于网络连通性检测和错误报告。 在 Wireshark 中分析 ICMP 报文时,可以通过过滤器将 ICMP 报文筛选出来,例如输入 "icmp" 作为过滤器。然后就可以看到所有 ICMP 报文的详细信息,包括类型、代码、校验和等。我们可以通过这些信息来分析网络中 ICMP 报文的情况。 ### 回答2: Wireshark是一个免费的网络协议分析器,可用于分析网络数据包。其中,ICMP是Internet控制消息协议,可用于向网络上的主机发送诊断消息。在Wireshark中,我们可以使用ICMP过滤器查看和分析收发的ICMP报文。 首先,我们需要打开Wireshark并选择需要进行分析的网络接口。在捕获过程中,我们可以使用过滤器过滤掉非ICMP报文,这将使我们的数据集更加清晰。这可以通过在Filter框中输入“icmp”来实现。当我们应用这个过滤器时,Wireshark只会显示接收和发送的ICMP报文。 在分析ICMP报文时,我们需要关注报文的头部。ICMP报文头分为两部分:类型和代码。类型指示了报文的类型(如回显请求或报文失效),而代码则给出了类型的详细信息。例如,回显请求报文的类型是8,代码为0。 除了报文头外,我们还可以分析每个ICMP报文的负载。负载是报文中附加的数据,如 ICMP ECHO-REQUEST报文的标识符和序列号。这些值可以用于分析收到的回显应答报文是否是对应的回显请求报文的响应。 最后,我们可以使用Wireshark的统计功能来分析收到和发送的ICMP报文。从这些统计信息中,我们可以看出网络上的ICMP报文流量,还可以使用此信息来确定网络的运行状况。 总之,Wireshark是一种有用的工具,可用于分析各种网络协议,包括ICMP。使用Wireshark,我们可以分析ICMP报文的头部和负载,并使用统计信息了解ICMP报文流量。 ### 回答3: Wireshark ICMP报文分析 Wireshark是一款常用的网络协议分析工具,它可以通过抓包的方式捕获网络数据流,并对各种协议进行分析。在Wireshark中,使用者可以对捕获的数据进行过滤和搜索,以及对各种协议包进行解析。 ICMP是Internet控制信息协议的缩写,它是TCP/IP协议中的重要协议之一。ICMP报文用于在IP网络中传输诸如状态、错误和控制信息等数据。在Wireshark中,使用者可以通过过滤器对ICMP报文进行筛选和分析,获得有用的网络信息。 ICMP报文格式 ICMP报文包括报文类型、代码和数据三个部分,其中报文类型和代码均为8位二进制数,数据部分为可变长。 ICMP报文类型分为两类:错误报文和询问报文,其中错误报文包括目的不可达、时间超过等报文;询问报文包括请求回显和回显应答报文ICMP报文分析 通过Wireshark捕获到ICMP报文后,我们可以对其进行分析并获取有用的网络信息。我们可以选择过滤器icmp进行过滤,仅显示ICMP报文。 对于ICMP报文分析,我们需要关注以下几个方面: 1. 报文类型和代码 在ICMP报文中,报文类型和代码表示了该报文所传递的信息。我们需要根据不同的报文类型和代码来分析报文的含义和作用。 2. IP地址和MAC地址 在ICMP报文中,源地址和目的地址字段表示了该报文的发送者和接收者。我们可以根据这两个字段来确定网络中的设备和它们之间的通信方式。 3. 报文的数据部分 在ICMP报文的数据部分中,包含了很多有用的网络信息,例如Ping命令所发送的信息等。我们可以对数据部分进行解析以获取更多的网络信息。 ICMP报文分析的应用 ICMP报文分析可以应用于网络管理、故障诊断、安全监控等领域。例如,通过分析ICMP错误报文可以诊断和解决网络中出现的问题;通过分析ICMP询问报文可以检测网络中的设备是否正常工作等。此外,ICMP报文分析还可以帮助网络管理员检测和防范网络安全威胁。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值