Wireshark-ICMP协议学习

一、ICMP简介及报文格式

1、ICMP简介

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

2、ICMP报文格式,如下图所示,ICMP包有一个8字节长的包头,其中前4个字节是固定的格式,包含8位类型字段,8位代码字段和16位的校验和;后4个字节根据ICMP包的类型而取不同的值。


Wireshark-ICMP协议学习_第1张图片

类型:一个8位类型字段,表示ICMP数据包类型;

代码:一个8位代码域,表示指定类型中的一个功能,如果一个类型中只有一种功能,代码域置为0;

检验和:数据包中ICMP部分上的一个16位检验和。

类型和代码如下图所示:


Wireshark-ICMP协议学习_第2张图片

二、Wireshark抓包分析

ICMP报文的类型和代码组合起来有很多种,用Wireshark找几个常见的来学习一下。

1、下图是一个PING百度包,从中可以看到类型为8,代码为0,代表一个PING请求。


Wireshark-ICMP协议学习_第3张图片

2、下图是一个PING百度包,从中可以看到类型为0,代码为0,代表一个应答PING。


Wireshark-ICMP协议学习_第4张图片

3、下图是一个tracert百度包,从中可以看到类型为11,代码为0,代表超时(从IP协议可以看到源地址为192.168.1.1,目的地址为192.168.1.106,应该是tracer www.baidu.com后返回的应答消息,为什么会超时,目前没想明白)。


Wireshark-ICMP协议学习_第5张图片

4、下图是一个tracert百度包,从中可以看到类型为3,代码为3,代表端口不可达(应该是tracer www.baidu.com后返回的应答消息,为什么会端口不可达,目前没想明白)。


Wireshark-ICMP协议学习_第6张图片

三、小结

协议这个东西不学的时候,自己感觉还懂一点点,再学就发现自己毛都不会。

路漫漫其修远啊。

你可能感兴趣的:(Wireshark-ICMP协议学习)