ICMP是Internet Control Message Protocol的缩写,即互联网控制报文协议。它是TCP/IP协议族的一个子协议,用于IP主机、路由器直接传递控制信息。控制信息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些消息虽然并不传输用户数据,但是对于用户数据的传递起着非常重要的作用。
学习ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点就决定了它非常容易被用于攻击网络上的路由器和主机。例如,用户可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起Ping of Death(死亡之Ping)攻击。Ping of Death攻击的原理就是当ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,导致主机死机。
此外,向目标主机长时间、连续、大量的发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命。
ICMP因为其ping功能而著名。ping是用来检测一个设备的可连接性,大部分人都会对ping很熟悉。在命令行中输入ping
基本上来说,ping每次向一个设备发送一个数据包,并等待回复,以确定设备是否可连接。例如,当主机A向主机B发送一个Echo Ping请求包时,主机B就会向主机A发送一个Echo ping响应包。
路由跟踪功能是用来识别一个设备到另一个设备的网络路径。在一个简单的网络上,这个网络路径可能只经过一个路由器,甚至一个都不经过。但在复杂的网络中,数据包可能会经过数十个路由器才会到达最终目的地。在通信过程中,出现故障时可能无法判断问题出在哪,这时候就可以通过路由跟踪功能,找出网络故障的位置。
1)熟悉并掌握Wireshark的基本操作。
2)加深对常用网络协议的理解,提高就业机会。
3)培养学生理论联系实践的研究兴趣。
服务器:windows系统,IP地址:10.1.1.33
测试者:windows系统,IP地址:10.1.1.142
在网络中典型使用ICMP协议的程序就是ping命令。所以,需要选择两台主机进行ping通信。在本次实验中,在测试者机器上开启Wireshark工具捕获数据包。
任务描述:获取正常的ICMP数据包、请求超时的数据包、主机不可达的数据包。
首先运行命令:
netsh interface ip set address "本地连接 4" static 10.1.1.142 255.255.255.0 10.1.1.90 0
这时会断一下连接,是正常情况。
在这里,我们通过ping命令来获取,先启动Wireshark,并在Filter里输入icmp进行过滤,如下:
使用测试者机器,ping服务器的IP,如下:
以上输出的信息就是ping命令运行后的结果。在Windows操作系统中,ping默认响应4个数据包。执行完以上命令后,返回到Wireshark界面,如下: