网际控制报文协议ICMP

这篇具有很好参考价值的文章主要介绍了网际控制报文协议ICMP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网际控制报文协议ICMP

​ 为了更有效的转发IP数据报和提高交付成功的机会,在网际层使用ICMP(Internet Control Message Protocol)协议,其允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP报文装在IP数据报中,作为其中的数据部分,看起来像高层协议,但其实还是IP层的协议。
网际控制报文协议ICMP,# 网络层,网络,ICMP

一、ICMP报文的种类

​ ICMP报文有两种。前四个字节是统一的格式。代码字段用于进一步区分某种类型中的几种不同情况,校验和字段用来检验整个ICMP报文(因为IP数据报首部中的检验和字段只检验首部,不检验IP数据报的内容)。
网际控制报文协议ICMP,# 网络层,网络,ICMP

1、ICMP差错报告报文

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

(2)时间超过

  • 当路由器收到TTL为0的数据报时,除了丢弃该数据报外还要向源点发送该报文。
  • 当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片全部丢弃,并向源点发送该报文。

(3)参数问题:当路由器或目的主机收到的数据报的首部中有的字段值不正确时(根据首部检验和字段判断),就丢弃该数据报并向源点发送该报文。

(4)改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(也就是说,找到了更好的路由)。

​ 在互联网的主机中也要有一个转发表。当主机要发送数据报时,首先查找主机自己的转发表,看应当从哪一个接口把数据报发送出去。在互联网中主机的数量远大于路由器的数量,出于效率的考虑,这些主机不和连接在网络上的路由器定期交换路由信息。在主机刚开始工作时,一般都在转发表中设置一个默认路由器的IP地址。不管数据报要发送到哪个目的地址,都一律先把数据报传送给这个默认路由器,而这个默认路由器知道到每一个目的网络的最佳路由(通过和其他路由器交换路由信息)。如果默认路由器发现主机发往某个目的地址的数据报的最佳路由应当经过网络上的另一个路由器R,就用改变路由报文把这情况告诉主机。于是,主机就在其转发表中增加一个项目:到某某目的地址应经过路由器R(而不是默认路由器)。

​ 所有的ICMP差错报告报文中的数据字段都具有同样的格式。把收到的需要进行差错报告的IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报文的数据字段。再加上相应的ICMP 差错报告报文的前8个字节,就构成了ICMP 差错报告报文。提取收到的数据报的数据字段前8个字节是为了得到运输层的端口号(对于 TCP和UDP)以及运输层报文的发送序号(对于 TCP)。这些信息对源点通知高层协议是有用的。整个ICMP报文作为IP数据报的数据字段发送给源点。
网际控制报文协议ICMP,# 网络层,网络,ICMP

2、ICMP询问报文

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

(2)时间戳请求或时间戳回答:发出该报文后,就能够收到对方响应的ICMP时间戳回答报文,利用在报文中记录的时间戳,发送方可以计算出当前网络是往返时延。

二、ICMP的应用举例
1、ping

​ 用来测试两台主机之间的连通性,使用了ICMP回送请求与回送回答报文。它没有经过运输层的TCP或UDP,而是直接使用网络层的ICMP。

网际控制报文协议ICMP,# 网络层,网络,ICMP

2、traceroute(tracert)

​ 用来追踪一个分组从源点到终点的路径。在UNIX操作系统下是traceroute,Windows下是tracert。

其工作原理大致是这样的:

​ 从源主机向目的主机发送一连串的IP数据报,数据报中封装的是无法交付的UDP用户数据报(使用了非法端口)。第一个数据报P1的生存时间TTL设置为1,当P1到达路径上的第一个路由器R1时,路由器R1先收下它,接着把TTL 的值减1。由于TTL等于零了,因此R1就把P1丢弃,并向源主机发送一个ICMP 时间超过差错报告报文。源主机接着发送第二个数据报P2,并把TTL 设置为2。P2先到达路由器R1,R1收下后把TTL减1再转发给路由器R2。R2收到P2时 TTL为1,但减1后 TTL变为零了。R2就丢弃P2,并向源主机发送一个ICMP 时间超过差错报告报文。

​ 这样一直继续下去。当最后一个数据报刚刚到达目的主机时,数据报的TTL是1。主机不转发数据报,也不把TTL 值减1。但因IP数据报中封装的是无达交付的运输层的 UDP用户数据报,因此目的主机要向源主机发送ICMP终点不可达差错报告报文。

​ 这样,源主机达到了自己的目的,因为这些路由器和最后目的主机发来的ICMP报文正好给出了源主机想知道的路由信息:到达目的主机所经过的路由器的IP 地址,以及到达其中的每一个路由器的往返时间。图中每一行有三个时间出现,是因为对应于每一个TTL值,源主机要发送三次同样的IP数据报。
网际控制报文协议ICMP,# 网络层,网络,ICMP文章来源地址https://www.toymoban.com/news/detail-739233.html

到了这里,关于网际控制报文协议ICMP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络】- TCP/IP四层(五层)协议 - 网际层(网络层) - 路由控制

    网际协议 IP 大致分为三大作用模块, ①IP寻址、 ②路由(最终节点为止的转发) 、③IP分包与组包。前面两篇文章讨论了IP地址的相关知识,本文继续讨论网际协议的第二个模块——路由,了解IP数据报是怎样从一个网络到另一个网络的。 在进行下面的阅读之前,先了解一个

    2024年02月06日
    浏览(46)
  • 基于Wireshark的ARP协议分析和IP报文、ICMP报文的分析|网络数据抓包|课程设计|traceroute|ping|

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 https://blog.csdn.net/yu_cblog/category_12379430.html?spm=1001.2014.3001.5482 目录 ​编辑前言 Wireshark软

    2024年02月10日
    浏览(49)
  • linux ping命令原理与用法(ping指令)ICMP(Internet Control Message Protocol,互联网控制报文协议)TTL(Time to Live)数据包生存时间

    Ping是一种网络工具,用于测试主机之间的连通性。它基于ICMP(Internet Control Message Protocol,互联网控制报文协议)来发送探测包并接收响应。 Ping工具发送一个ICMP Echo Request(回显请求)消息到目标主机,目标主机收到请求后会返回一个ICMP Echo Reply(回显回复)消息作为响应。

    2024年02月04日
    浏览(50)
  • 【网络安全---ICMP报文分析】Wireshark教程----Wireshark 分析ICMP报文数据试验

    分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记 两台kali主机(虚拟机)                  kali2022   192.168.220.129/24                 kali2022   192.168.220.3/27 1-2-1 网关配置:    编辑-------- 虚拟网路编辑器

    2024年02月07日
    浏览(41)
  • 6.3.5 利用Wireshark进行协议分析(五)----捕获并分析ICMP报文

    6.3.5 利用Wireshark进行协议分析(五)----捕获并分析ICMP报文 一、捕获ICMP报文 打开Wireshark,选择网络接口并点击开始按钮。分组列表面板不断刷新抓渠道的数据包,为了过滤出我们所要分析的ICMP报文,我们在过滤框中输入icmp,为了生成icmp报文,我们需要运行系统自带的ping程

    2024年02月16日
    浏览(44)
  • 【网络】- TCP/IP四层(五层)协议 - 网际层(网络层) - 网际协议IP

    这篇文章主要介绍TCP/IP协议的网际层,上一篇文章介绍了数据链路层,数据链路层的主要作用是 在互连同一种数据链路的节点之间进行包传递 。而网际层的主要作用是 实现终端节点(即使不在同一网络)的通信 。 网际层 有时也称 网络层 ,但由于网际层的作用中包含了“实现

    2024年02月06日
    浏览(59)
  • 【网络】- TCP/IP四层(五层)协议 - 网际层(网络层) - IP地址

    上篇文章简单介绍了网际协议IP。网际协议 IP 大致分为三大作用模块, ①IP寻址、 ②路由(最终节点为止的转发) 、③IP分包与组包。 这篇文章主要详细介绍IP地址的基础知识。包括IP地址的组成、分类、广播地址、多播、子网掩码等。 在用 TCP/IP 通信时, 用 IP地址 识别主

    2024年02月06日
    浏览(47)
  • ICMP协议(Internet控制消息协议)

    目录 前言 一,什么是ICMP协议? 二,实例:路由之间相互直连ping 三,了解ICMP报文 ​编辑 3.1,为什么要了解这个字段呢? 四,ICMP重定向 (路径优化-绕路-最优路径) 五,ICMP错误报告 总结 随着华为公司的不断发展,数据通信这门技术也越来越重要,很多人都开启了数据通信学

    2024年02月14日
    浏览(34)
  • 【网络】- TCP/IP四层(五层)协议 - 网际层(网络层) - 划分子网、构造超网

    前面的文章介绍了网络层的 网际协议IP ,介绍了IP地址的定义,知道了IP地址分为 网络标识 (网络地址)、 主机标识 (主机地址)两部分,也清楚了最初IP地址是按照 分类 被划分为A、B、C、D、E 五类。但是这样的分类却存在不合理的地方,这篇文章的内容之一就是要谈谈这些不

    2024年02月06日
    浏览(43)
  • 网络协议与攻击模拟_04ICMP协议与ICMP重定向

    ICMP协议是网络层协议, 利用ICMP协议可以实现网络中监听服务和拒绝服务,如 ICMP重定向的攻击。 ICMP是Internet控制报文协议,用于在IP主机、路由器之间传递控制消息,控制消息指网络通不通、主机是否可达,路由是否可用等等。 案例 环境:GNS3 路由器 交换机 电脑 slots设置

    2024年01月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包