0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ARP、ICMP协议的执行原理

jf_78858299 来源:京东科技技术说 作者: 宋国伟 2023-03-23 15:58 次阅读

ARP地址解析协议

第一篇中讲到局域网内主机及网关相互通信需要ip地址、mac地址两个核心元素,ip地址在通信前就可以得知(DNS解析),而mac地址如何得到呢,这时就需要ARP协议支持了,ARP全称为:Address Resolution Protocol即地址解析协议,假设主机A需要访问局域网主机B,主机A通过地址解析协议向局域网内部发群体广播,询问主机B的地址信息,被命中主机B确认目标主机IP为自身时会将广播报文中主机A地址信息存入ARP缓存表中(缓存减小访问次数),并向主机A返回自己的mac地址,主机A将主机B返回的地址信息缓存在ARP缓存表中,至此主机A已知主机B的MAC,就可以愉快的开始通信了。发起方需要查询目标MAC地址时都会先去ARP缓存表中查询,未查询到才会发起广播流程,示例如下:

图片

熟悉地址解析歇息工作流程之后,看一下协议报文,报文结构示例图如下:

图片

根据上述报文结构,通过抓包分解图如下所示:

图片

请看下方红框中16进制显示的报文,首先看第1到16字节,前六个字节(ff:ff:ff:ff:ff:ff)表示数据包发送的目标地址为广播地址,局域网内所有主机均需收到,第七到第十二字节(00:2a:6a:f4:7c:41)表示本机mac地址,第十三到二十分别代表帧类型、硬件类型、协议类型、硬件长度、协议长度,第二十一到第二十二字节表示访问类型(指明当前包是请求包还是应答包,对应的值分别是0x0001和0x0002),第二十三到第二十八字节表示发送端地址(00:2a:6a:f4:7c:41),第二十九到第三十二表示发送端IP(10.13.95.253),第三十三到第三十八表示目标地址(ff:ff:ff:ff:ff:ff),第三十九到第四十二为目标IP(10.13.91.166),到这里ARP协议的报文结构就全部分析完成,可知道ARP的执行原理了。

图片

ICMP控制报文协议

ICMP协议属于一种控制报文协议,此类信息的显著特征是不会带有用户数据,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。通俗一点理解控制报文协议就是错误发现及错误报告回传机制,因为只有发送端拿到发送过程中的失败原因消息才能针对性的做出处理方案,ICMP的报文结构如下所示:

图片

ICMP协议通过IP协议发送,ICMP协议相当于定义一套返回码枚举,不同类型的返回码所带有的返回信息也不相同。根据上述报文结构,通过抓包分解图如下所示:

图片

请看下方红框十六进制显示报文内容,前三十四字节表示以太网头部和IP头部此处不做详细解析,从第三十五字节开始属于ICMP的报文体部分,首先第三十五字节表示类型,第三十六字节表示编码,以ping(ping命令就是以ICMP协议实现的)为例,它的类型代码请求报文为8,编码为0(其它类型和编码可以网上搜索参考“类型编码表”,此处不做码表显示),第三十七到第三十八字节表示唯一校验和,第三十九字节到第四十二字节属于不同类型内容不同的扩展报文,抓包中表示ping的唯一标识码和自增序列以保证目标返回值是对应请求报文的,第四十三字节到七十四字节表示ping附带的报文内容,可以通过改变配置报文大小来控制传输数据大小,如图所示实际发送报文即为英文小写字母,这是ICMP的执行原理。

1、Ping

ping命令是以ICMP协议实现的网络工具,主要的作用是检查主机连通性、统计连通时间,若出现超时不能连通:一种可能为目标IP不存在,第二种可能是对方主机屏蔽了ping命令执行,示例截图如图所示:

图片

如图所示,展示返回报文的关键字段:

  • 字节=32:即ICMP抓包中的32字节英文小写字母,表示发送报文大小
  • 时间=6毫秒:即目标主机响应时间
  • TTL=51:即发送者设置的数据包在网络中可以存活的跳数

2、Tracert

tracert命令是以ICMP协议实现的网络工具,主要解决网络连通性问题,统计响应耗时时间,路径明细等信息,示例截图如图所示:

图片

如图所示,返回报文主要字段:

  • 第一列:表示经历的网络节点,逐一递增
  • 第二列到第四列,三次响应的平均时间
  • 经历的ip信息
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IP
    IP
    +关注

    关注

    5

    文章

    1405

    浏览量

    148296
  • 路由器
    +关注

    关注

    22

    文章

    3503

    浏览量

    111345
  • ICMP
    +关注

    关注

    0

    文章

    50

    浏览量

    14809
  • ARP
    ARP
    +关注

    关注

    0

    文章

    50

    浏览量

    14651
收藏 人收藏

    评论

    相关推荐

    ARP地址解析协议简介

    英文原义:Address Resolution Protocol 中文释义:(RFC-826)地址解析协议 地址解析协议(Address Resolution Protocol,ARP)是在仅知道
    发表于 02-24 08:27

    ARP协议攻击及其解决方案

    由于ARP协议的设计缺陷,使得ARP协议在使用的过程中存在着盗用IP地址和ARP欺骗等严重的安全问题。本文分析
    发表于 06-11 10:17 16次下载

    地址解析协议ARP

    地址解析协议ARP 地址解析协议 ARP 是一种广播协议,主机通过它可以动态地
    发表于 06-09 21:53 1037次阅读
    地址解析<b class='flag-5'>协议</b><b class='flag-5'>ARP</b>

    地址解析协议(ARP),地址解析协议(ARP)是什么意思

    地址解析协议(ARP),地址解析协议(ARP)是什么意思 地址解析协议 (ARP) “地址
    发表于 04-06 09:07 1983次阅读

    ICMP控制报文协议

    TCP-IP详解卷2 ICMP控制报文协议,学习TCP很好的资料。欢迎下载。
    发表于 05-09 14:13 0次下载

    icmp协议工作原理

    ICMP协议的功能非常重要,在网络协议的学习中,这部分知识也是我们讲解的重点。那么对于ICMP协议的工作原理,以及工作流程具体是如何完成的呢
    发表于 11-02 16:05 2.2w次阅读
    <b class='flag-5'>icmp</b><b class='flag-5'>协议</b>工作原理

    arp协议的作用是什么?arp协议的工作原理介绍

    地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。那么ARP协议
    发表于 11-02 16:14 6.3w次阅读
    <b class='flag-5'>arp</b><b class='flag-5'>协议</b>的作用是什么?<b class='flag-5'>arp</b><b class='flag-5'>协议</b>的工作原理介绍

    icmp协议是什么

     ICMP协议是什么?可能很多互联网人士都不没听说过,其实ICMP协议和我们的网络生活密切相关,只是我们从未察觉而已。只要有网络、路由器、IP等配置的地方,会有
    发表于 11-02 16:46 7434次阅读
    <b class='flag-5'>icmp</b><b class='flag-5'>协议</b>是什么

    icmp协议行为分析研究

    ICMP允许主机或路由报告差错情况和提供有关异常情况。ICMP是因特网的标准协议,但ICMP不是高层协议,而是IP层的
    发表于 12-08 14:47 3150次阅读
    <b class='flag-5'>icmp</b><b class='flag-5'>协议</b>行为分析研究

    icmp协议协议基础详解

    ICMP 经常被认为是 IP 层的一个组成部分,它传递差错报文以及其他需要注意的信息。ICMP 报文通常被 IP 层或更高层协议(TCP 或 UDP)使用。ICMP 报文是在 IP 数
    发表于 12-08 16:59 1.1w次阅读
    <b class='flag-5'>icmp</b><b class='flag-5'>协议</b><b class='flag-5'>协议</b>基础详解

    tcp_ip 协议讲座:介绍ARPICMP,DHCP协议

    介绍了Tcp_ip协议的分层,简单介绍了ARPICMP,DHCP协议
    的头像 发表于 07-03 11:10 3303次阅读

    ARP是什么意思?ARP是什么协议ARP协议用于什么地方

    ARP是什么意思?ARP是什么协议ARP协议用于什么地方 ARP是什么意思?
    发表于 11-10 18:00 1.8w次阅读

    ICMP网络控制消息协议简介

    ICMP全名为(INTERNET CONTROL MESSAGE PROTOCOL)网络控制消息协议
    发表于 05-21 15:10 685次阅读
    <b class='flag-5'>ICMP</b>网络控制消息<b class='flag-5'>协议</b>简介

    ARP协议原理是什么

    ARP协议是地址解析协议(`Address Resolution Protocol`)是通过解析`IP地址`得到`MAC地址`的,是一个在网络协议包中极其重要的网络传输
    的头像 发表于 02-14 10:10 1795次阅读
    <b class='flag-5'>ARP</b><b class='flag-5'>协议</b>原理是什么

    ARP协议的工作流程

    通过ARP协议知道对方的mac地址,已经知道对方ip地址的情况下,不知道mac地址。定义了一个ARP协议来解决这个问题。
    的头像 发表于 07-10 17:29 1595次阅读
    <b class='flag-5'>ARP</b><b class='flag-5'>协议</b>的工作流程