计算机网络(七)--ICMP协议

在上一节中,我们有一张图纵观整个网络架构中的重要协议。其中在网络层中,IP协议的右上方有一个ICMP协议。根据下层协议服务上层协议的原则,ICMP协议便是基于IP协议,完成主机、路由器间的控制信息传递。控制信息包括:网络是否连通、主机是否可达、路由是否可用等。这些信息虽不是用户需要传递的数据本身,但对保证数据能够正常传递十分重要。

一、ICMP报文结构

1.类型:ICMP报文分为差错报告报文与询问报文两种,分别对应不同的类型值

2.代码:精确描述该ICMP报文的对应种类

3.检验和:检验ICMP报文在传输过程中是否发生了错误

ICMP报文基于ICMP协议,运行于IP协议之上,所以其内容可放在IP数据报的数据部分中,通过IP协议进行传输。

二、ICMP差错报告报文

ICMP差错报告报文会对多种网络差错进行报告:

​ 1)终点不可达:当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。

​ 2)时间超过:报文TTL减至0,报文仍未达到目的地址,则路由器丢弃该报文,并向源主机发送差错报告报文。

​ 3)参数问题:当路由器或主机的数据报首部被检验出错误时,就丢弃该数据报,并向源点发送参数问题报文。

​ 4)改变路由:路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器

为避免ICMP差错报告报文的泛滥或是循环发送,以下情况不再发送ICMP差错报告报文:

​ 1)对ICMP差错报告报文不再发送ICMP差错报告报文

​ 2)对第一个分片的数据报片的后续数据报片都不发送ICMP差错报告报文

​ 3)对具有组播地址的数据报不发送ICMP差错报告报文

​ 4)对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文

三、ICMP询问报文

ICMP询问报文主要有以下两种:

​ 1)回答请求和回答报文:主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解其相关状态。

​ 2)时间戳请求和回答报文:请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。

四、ICMP应用

1.ping

ping使用了ICMP回送请求和回答报文。

可在cmd中敲下

ping IP地址

来测试,某IP地址是否可通达。

ping IP地址 -t

可不停向某个IP地址发送ping请求,可通过ctrl+c停止发送

ping IP 地址 -l 字节数

通过-l 字节数的方式,可指定发送ICMP探寻报文的大小(0~65500,默认值为32字节)

2.tracert

tracert是在windows下的命令,其在linux中又称tracerout。

tracert IP地址

认值为32字节)

2.tracert

tracert是在windows下的命令,其在linux中又称tracerout。

tracert IP地址

该命令可以利用ICMP时间超过差错报文,逐一探寻出到达目的IP地址所经过的所有路由器

猜你喜欢

转载自blog.csdn.net/weixin_44580146/article/details/106914619