下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

利用ICMP协议来解释ping命令

作者:课课家教育     来源: http://www.kokojia.com点击数:1031发布时间: 2017-03-25 10:10:07

标签: 互联网技术网络工程师网络规划设计师

    ICMP是(InternetControlMessageProtocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

    一、MTU

    以太网和IEEE 802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,将这个限制称作最大传输单元(MTU,Maximum Transmission Unit)。如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就要进行分片(Fragmentation),把数据报分成若干片,这样每一片都小于MTU。当网络上的两台主机互相进行通信时,两台主机之间要经过多个网络,每个网络的链路层可能有不同的MTU,其中两台通信主机路径中的最小MTU被称作路径MTU,Internet上标准MTU为576B(TCP)、512B(UDP)。

    二、以太网帧格式

利用ICMP协议来解释ping命令_互联网技术_网络工程师_网络规划设计师_课课家教育

    其中的源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的。

    用ifconfig命令:ifconfig -a, 协议字段有三种值,分别对应IP、ARP、RARP。帧末尾是CRC校验码。
以太网帧中的数据长度规定最小46字节,最大1500字节,ARP和RARP数据包的长度不够46字节,要在后面补填充位。ifconfig命令的输出中也有“MTU:1500”。注意,MTU这个概念指数据帧中有效载荷的最大长度,不包括帧首部的长度。

    三、ARP(address resolution protocol)

    在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址,而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。

    源主机发出ARP请求,询问“IP地址是10.0.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。如下图所示

利用ICMP协议来解释ping命令_互联网技术_网络工程师_网络规划设计师_课课家教育

    APR格式:

利用ICMP协议来解释ping命令_互联网技术_网络工程师_网络规划设计师_课课家教育

    硬件类型指链路层网络类型,1为以太网,协议类型指要转换的地址类型,0x0800为IP地址,后面两个地址长度对于以太网地址和IP地址分别为6和4(字节),op

字段为1表示ARP请求,op字段为2表示ARP应答。

    地址解析协议的处理流程如下图:

地址解析协议的处理流程

    四、RARP(Reverse Address Resolution Protocol)

    主要用于获取无盘工作站的ip地址

主要用于获取无盘工作站的ip地址

    五、ICMP(Internet Control Message Protocol)

    ICMP协议用于传递差错信息、时间、回显、网络信息等控制数据,如下图所示。

主要用于获取无盘工作站的ip地址

    具体的类型和代码见下图。

具体的类型和代码见下图

    六、利用ARP和ICMP协议解释ping程序

    步骤a:应用程序ping会判断发送的是主机名还是IP地址,如果是主机名会调用函数gethostbyname()解析主机B,将主机名转换成一个32位的IP地址。这个过程叫做DNS域名解析。

    步骤b:ping程序向目的IP地址发送一个ICMP的ECHO包

    步骤c:将目标主机的IP地址转换为48位硬件地址,在局域网内发送ARP请求广播,查找主机B的硬件地址。

    步骤d:主机B的ARP协议层接收到主机A的ARP请求后,将本机的硬件地址填充到应答包,发送ARP应答到主机A。

    步骤e:发送ICMP数据包到主机B。

    步骤f:主机B接收到主机A的ICMP包,发送响应包。

    步骤g:主机A接收到主机B的ICMP包响应包。

    ICMP协议对于网路安全具有极其重要的的意义,ICMP协议本身的特点决定了它非常容易被用于攻击网络上的主机和路由器。由此可见ICMP的重要性不可以忽视,其功能主要有:侦测远端主机是否存在建立及维护路由资料重导资料传送路径(ICMP重定向)资料流量控制。ICMP在沟通之中,主要是透过不同的类别(Type)与代码(Code)让机器来识别不同的连线状况。ICMP是个非常有用的协议﹐尤其是当我们要对网路连接状况进行判断的时候。

    关于ICMP协议的更多详细资料尽在课课家教育,我们24小时客服在线,等候您的咨询!

  

赞(1)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程