ICMP (网际控制报文协议)

原创 2015年07月09日 10:33:16

        曾经看过这样的一道面试题,icmp报文是基于什么传输层协议进行传输的?顺着他的思路传输层的两个主要协议tcp和udp,区别也就是在于是否保障可靠性的传输。当时还没有系统的学习过ICMP的报文结构和组成,因此也没有过多思考,基于tcp。然而实际上来说,ICMP报文是不基于传输层的协议进行传输的,它只是对ip功能的一个补充。

        ICMP报文通过ip报文发送,ICMP报文当做是ip数据包的数据部分,而IP数据包又被放倒了以太网的数据帧中的数据区。

        我们知道ip数据报的首部有一个协议类型的字段,这个部分封装的是传输层的协议的类型,当ip数据部分为ICMP报文时,这里的首部协议类型字段也将改为1,表示为ICMP报文。

                                                                  

        那么,ICMP到底是什么样的报文,它有什么用处吗?

        首先,ICMP报文分为了三类:差错控制类,请求/应答类,通知类。这三类报文包括了所有的ICMP报文的类型。

        我们先看看ICMP报文的结构:

                                                           

        icmp的不同的报文的类型中,首部的结构是确定的。其中校验和部分和ip首部的校验和的计算方法相同,并且这个计算方法贯穿于整个的icmp报文中。

        类型1:差错空中类报文

                 发送差错控制类的报文的规则如下:

                                                          1. icmp差错控制报文的数据区包括发生差错的ip数据包的首部和数据区的至少前64bite。

                                                           2.仅能向数据包的源端发送差错控制报文,不能向中间的路由器报告差错。

                                                           3.当携带差错控制的报文发生差错时,不再报告差错。

                                                           4.对于进行了分片的ip数据包,紧能对第一个分片应用icmp协议。

                  1.目的站不可达

                                当路由器无法转发或者交付数据时,使用icmp报文通知数据包的发送者,并且告诉不可达的原因。

                  2.超时报文

                                发送超时报文的两种情况:1 TTL值为0  

                                                                                 2 数据报分片重组超时。

                  3 参数错误报告

                                  不是以上两种情况的错误时,就会向源主机报告此报文。

        类型2:请求/应答类报文

                   1.回送请求和回送应答报文

                                  测试网络的连通性的时候,可以用这种类型的报文,ping 的应用。

                    2.地址掩码请求和应答报文

                                  当主机使用子网编码时,为了知道本网络中的子网掩码,主机可以向路由器发送地址掩码请求报文,路由器收到这个报文后,发送携带有掩码的应答报文。

                                  (此时,主机可能知道路由器的IP地址,这时就直接发给路由器,也肯那个不知道ip地址,这时就要以广播的方式进行发送,路由器收到后再单播给主机。)

                    3.时戳请求和应答报文

                                

                     4.路由器通告和路由器恳求报文

                                   通告报文:是路由器在网络中定时的向主机发送自己存在的通告,告诉主机自己还在正常的运行着。

                                  恳求报文:这个报文是主机发送的,用于需找默认的路由

                                  (注意,这两种报文都是可以主动发送的,当一种报文发送后,另外的一种报文在接收方作为响应报文发送给发送方。)

        类型3:单向通知控制类报文

                     1.源站抑制报文

                                   这种报文产生的原因是:路由器接收的数据是有上限的,不能无限的接收,当路由器中缓冲区快满时,路由器会向源主机发送这种类型的报文,告诉主机要降低发送速度。如果一段时间内,源主机没有收到源站抑制的报文,就会提高发送速度。

                      2.重定向报文

                                 路由器选路时,不一定都选择最近的路,优化路由选路。

         我们回到开始提出的问题,icmp到底是基于什么传输层的协议的,答案是它根本不基于传输层的协议,只是封装在了ip数据包中。

         icmp报文的应用:ping    traceroute等。

         关于icmp校验和以及ip数据包首部校验和的内容,我会在接下来的时间进行总结。

版权声明:本文为博主原创文章,未经博主允许不得转载。

我们一起学网络(六)——网络层(网际控制报文协议ICMP)

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网...
  • lxtalx
  • lxtalx
  • 2013年11月10日 09:43
  • 1339

TCP/IP详解卷1 读书笔记:第六章 ICMP 网际报文控制协议

引言 ICMP是IP网络中的信令兵,查询和通报网络中的错误及异常等。I C M P报文通常被 I P层或更高层协议(T C P或U D P)使用。一些 I C M P报文把差错报文返回给用户进程,如P...
  • wwww4
  • wwww4
  • 2015年10月02日 12:26
  • 685

第四章 网络层 4.4网际控制报文协议ICMP

ICMP允许主机或路由器报告差错情况和提供异常情况报告 其格式就是将IP数据报的数据部分替换为ICMP报文 ICMP类型:ICMP差错报告报文                       IC...

网际控制报文协议ICMP

网际控制报文协议ICMP1. 网际控制报文协议ICMP(Internet Control Message Protocol) ICMP:是因特网的标准协议,但不是高层协议,而是IP层的协议。 ICMP...
  • cainv89
  • cainv89
  • 2017年04月10日 23:38
  • 315

(三)网络层——网际控制报文协议ICMP

一、目的及格式网际控制报文协议ICMP(Internet Control message Protocol),允许主机或路由器报告差错情况和提供有关一场情况的报告。格式: ICMP报文作为IP数据报...

ICMP:网际控制报文协议

还记得linux网络命令中的ping和traceroute吗?(在windows中对应ping和tracert),这两个命令的底层实现协议就是本文所要提到的ICMP协议,全称为Internet Con...
  • JXH_123
  • JXH_123
  • 2014年04月18日 21:04
  • 838

【网络层】精析网络层 -- 网际控制报文协议ICMP

网际控制报文协议ICMP(Internet  Control  Message Protocol)         1)报文格式:ICMP报文封装到IP报文的数据部分               ...

TCP/IP协议族——网际控制报文协议ICMP

一 引入目的 IP协议没有差错报告或差错纠正机制;IP协议还缺少主机和管理查询所需要的机制。ICMP是设计来弥补上述两个缺憾的。 备注:ICMP本身是一个网络层协议,但是ICMP报文首先要封装成I...

《用tcp/ip进行网际互联》 第8章 差错与控制报文(ICMP)

首先,说明一下网际控制报文协议(ICMP)的存在理由,由于互联网中存在的都是独立运行的路由器,由于路由器不可能在任何时候都运行的很好,总有时候会出错,而IP协议是不会有差错控制的,那么当问题出现的时候...

ICMP(Internet报文控制协议)

  • 2011年08月14日 21:16
  • 23KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ICMP (网际控制报文协议)
举报原因:
原因补充:

(最多只允许输入30个字)