8-ICMP协议

本文介绍了ICMP协议如何解决IP协议在网络传输过程中缺乏差错报告和纠正机制的问题,并详细阐述了ICMP协议在网络层中的作用及其实现数据链路连通性和追踪的差错报告的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. ICMP协议

  在学习ICMP协议之前,我们先来回顾下IP协议。

  IP协议的缺点: 无差错报告和差错纠正机制,缺少一种为主机管理查询的机制。

  数据在网络中传输必须要封装成IP数据报格式,而IP协议的特点是面向无连接,且不可靠的,可靠性由上层协议来保证,因为IP协议对于数据是尽最大努力传输到目的地的,所以对于数据在网络传输过程中出现了故障时,出错的问题定位和排除非常困难,因为IP协议对于数据的错误的处理不进行任何报告和纠正,缺少对错误的管理,也就是不会把错误进行查询并把错误发回给发送端。

  而ICMP协议正好解决了这个问题,ICMP协议就是针对IP协议的这种缺点产生的,那么ICMP是一个什么协议呢?

  ICMP协议(英文:Internet Control Message Protocol,ICMP)是一个网络控制消息协议,用于实现ip网络层及上层协议的数据链路连通性和追踪的差错报告,即在计算机,路由器之间传递控制消息。

  控制消息是指网络连通性,主机是否可达,路由是否可用等网络本身的消息

  源发送者或上层应用程序根据返回的ICMP错误信息,执行下一步动作,比如常用的ping程序和tracert程序都是基于ICMP协议进行开发的。

ICMP协议传输过程如图所示:

这里写图片描述

  上图中展示了ICMP协议是属于网络层,因为从网络的角度来说,ICMP协议服务于IP协议,主要用于实现数据在网络链路传输的消息报告。也就是说ICMP协议的数据报文往下传输到网络接口层(数据链路层)需要进行封装成IP的数据报文。

这里写图片描述

  首先ICMP数据报文封装到IP数据报文的数据部分里,然后加上IP的首部形成一个完整的IP数据报文再往下进行传输,到数据链路层,IP数据报文再加上帧头和帧尾,封装成数据帧格式。

2. ICMP封装过程

说了这么多,现在我们通过wireshark软件来抓一个ICMP协议的包来验证ICMP的传输过程中数据是怎么封装的。
这里写图片描述

  上图来看,在IP数据报文中确实封装了ICMP报文。

  前面我们说过,ICMP数据报在往下传输时,必须封装成IP数据报文的形式,我们打开IP数据报文查看发现,在IP数据报文中的Protocol(协议)字段的值为1就表示携带的协议是ICMP协议,上图中确实也验证了这一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值