前言
学习了IP协议后,都知道IP协议本身是不提供可靠性保障的,那么数据包在这么复杂的互联网环境中传输,总会遇到问题,如果遇到问题后,被丢弃、无回应,可能作为工程师的我们来说都不知道发生了什么事,更别提普通用户了,所以数据包发送出去如果被丢弃、或者某些原因造成的不可达,需要一种协议来进行通知原因,这个协议就是这篇要讲解的ICMP。
ICMP有啥功能
ICMP全称叫做Internet Control Message Protocol (互联网控制报文协议),主要功能用于确认IP包是否成功抵达目的地、如果中途出现意外,进行报告通知发送者,好让维护人员根据原因得到解决办法。比如IP数据包由于某种原因未能抵达目的地,由于什么原因导致的由ICMP负责通知,这也我们在实际中排错跟测试最常用到的一个协议。
(1)ICMP包格式
1、类型:表示ICMP报文的种类,ICMP的类型有很多
2、代码:在同一个类型中可能有多个组合,用代码来详细区分
3、校验和:校验ICMP的包是否有错误
4、根据类型和代码组合最终的数据内容。
ICMP类型字段,主要分为两大类
- 一类用于诊断的查询报文【查询报文类型】,上一篇我们用的Ping工具就是属于查询类型
- 一类是通知出错的原因【差错报文类型】,这个排错中非常有用
由于类型比较多,这里了解几个实际中经常用到的ICMP类型。
查询报文类型
回送消息主要用于通信的主机或者网络设备之间,用于判断所发送的数据包是否成功抵达对方的一种消息,我们上一篇用到Ping命令就是使用的这个消息来实现,这里来详细了解下Ping的原理。
用模拟器搭建一个这样的环境(已经用过几次了,这个基本的连线,拖设备应该都会了哈),然后各个PC设置好地址,接入到交换机,全部启动。