ICMP协议
ICMP(Internet Control Message Protocol)Internet控制报文协议。是TCP/IP协议的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
该协议是封装于网络层之上的协议,俗称“3.5层协议”。
在采用E2封装时的格式是这样的:
E2 | IP Header | ICMP | FCS |
其中ICMP格式是:
type | code | checksum |
ICMP协议最常用的的有ping和tracert 两种命令。
一般来讲,ping命令最为常见。
主机Aping主机B时,ping命令会执行的过程如下:
- .通信时,发送端的主机使用“对方的IP地址+自己的子网掩码”来进行计算,计算出对方的网络地址,要注意的是,除去固定位,其余位数全部为0.
- 计算之后,将对方的网络地址和自己的网络地址进行对比。自己的网络地址是“自己的IP地址+自己的子网掩码”。
- 如果计算的结果相同,发送端主机认为两台主机处于同一网段,进行通信,反之,不通信。
其中不在同一网段的通信成为跨网段通信,需要借助网关设备来通信。
ping命令作用:用来检测网络以及链路的连通性。
网关:
作用:用来转发来自不同的网段之间的数据包。
网关地址:网关设备上连接本地网段的接口地址就是该网关设备的网关地址。
网关地址是配置在某个设备的接口上的,其中某个设备可以是路由器、防火墙、交换机。
tracert命令作用:检查本地网络到测试目标的联通性。
简单来说,就是检测沿途经过的设备,路由追踪。
ICMP协议的消息类型和编码类型:(比较常用的一些ICMP报文格式)
类型(type) | 编码(code) | 描述 |
0 | 0 | Echo Reply |
8 | 0 | Echo Request |
3 | 0 | 网络不可达 |
3 | 1 | 主机不可达 |
3 | 2 | 协议不可达 |
3 | 3 | 端口不可达 |
5 | 0 | 重定向 |
11 | 0 | 传输生存时间TTL=0 |
其他不是很常见的报文格式大家可以百度查询。
表中的四种不可达报文是目的设备回复的错误报文,多数设备是禁止回复ICMP错误报文的。
今天的笔记就到这里就要结束啦✨✨✨
明天会更新关于ARP协议的笔记,篇幅很长,可能会分成上下两个部分来写。
而且呢,ARP协议也是最基本、最重要的(之一)一个协议,会在之后一直学习到的东西,所以基础性的东西还是要掌握好滴!!!
TIPS:ICMP协议的报文格式,编码消息类型。
最后的最后,报告一个好消息,我可以建立自己的分类专栏啦,之后的查看就会很方便了。