导读:在前面老鬼向各位好友介绍一些关于网络的基础知识,同时针对ICMP协议(常见使用的Ping测试网络就是使用该协议)进行了详细介绍。具体可参见《Ping是你经常测试工业智能制造网络的工具,但你了解其原理吗》文章中的介绍。今天老鬼将继续以傻瓜式的方式讲解地址解析协议ARP,让大家看到不一样的深层网络知识原理。

原创版权声明:本文为今日头条自媒体-老鬼非鬼的原创文章,遵循CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

这是物联老鬼在【今日头条】写的第119篇文章


本文将按照以下目录引导介绍:

1.ARP协议用来做什么

2.ARP协议报文介绍

3.ARP工作过程

4.免费ARP介绍

1.ARP协议用来做什么

一台网络设备要发送数据给另一太网络设备时,必须要知道对方的IP地 址。但是,仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通 过数据链路进行发送,而数据帧必须要包含目的MAC地址,因此发送端 还必须获取到目的MAC地址。每一个网络设备在数据封装前都需要获取 下一跳的MAC地址。IP地址由网络层来提供,MAC地址通过ARP协议 来获取。ARP协议是TCP/IP协议簇中的重要组成部分,ARP能够通过目 的IP地址发现目标设备的MAC地址,从而实现数据链路层的可达性。

2.ARP协议报文介绍

ARP报文中包含以下字段 :

  • 1. Hardware Type表示硬件地址类型,一般为以太网;
  • 2. Protocol Type表示三层协议地址类型,一般为IP;
  • 3. Hardware Length和Protocol Length为MAC地址和IP地址的长度, 单位是字节;
  • 4. Operation Code指定了ARP报文的类型,包括ARP request和ARP reply;
  • 5. Source Hardware Address指的是发送ARP报文的设备MAC地址;
  • 6. Source Protocol Address指的是发送ARP报文的设备IP地址;
  • 7. Destination Hardware Address指的是接收者MAC地址,在ARP request报文中,该字段值为0;
  • 8. Destination Protocol Address指的是指接收者的IP地址

3.ARP工作过程

总览

通过ARP协议,网络设备可以建立目标IP地址和MAC地址之间的映射。 网络设备通过网络层获取到目的IP地址之后,还要判断目的MAC地址是 否已知。

ARP缓存表

网络设备一般都有一个ARP缓存(ARP Cache),ARP缓存用来存放IP 地址和MAC地址的关联信息。在发送数据前,设备会先查找ARP缓存表 。如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来 封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过发 送ARP request报文来获得它。学习到的IP地址和MAC地址的映射关系 会被放入ARP缓存表中存放一段时间。在有效期内,设备可以直接从这 个表中查找目的MAC地址来进行数据封装,而无需进行ARP查询。过了 这段有效期,ARP表项会被自动删除。 如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的 MAC地址,然后将数据发送给网关,网关再把数据转发给目的设备

Step1:ARP请求

本例中,主机A的ARP缓存表中不存在主机C的MAC地址,所以主机A会 发送ARP request来获取目的MAC地址。ARP request报文封装在以太 帧里。帧头中的源MAC地址为发送端主机A的MAC地址。此时,由于主 机A不知道主机C的MAC地址,所以目的MAC地址为广播地址FF-FFFF-FF-FF-FF。ARP request报文中包含源IP地址、目的IP地址、源 MAC地址、目的MAC地址,其中目的MAC地址的值为0。ARP Request 报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此 ARP request报文。网关将会阻止该报文发送到其他网络上

Step2:ARP响应

所有的主机接收到该ARP Request报文后,会检查它的目的协议地址字 段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP Request报文。如果匹配,则该主机会将ARP报文中的源MAC地址和源 IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行 响应。

主机C会向主机A回应ARP Reply报文。ARP Reply报文中的源协议地址 是主机C自己的IP地址,目标协议地址是主机A的IP地址,目的MAC地 址是主机A的MAC地址,源MAC地址是自己的MAC地址,同时 Operation Code被设置为reply。ARPReply报文通过单播传送

Step3:写入ARP缓存

主机A收到ARP Reply以后,会检查ARP报文中目的MAC地址是否与自 己的MAC匹配。如果匹配,ARP报文中的源MAC地址和源IP地址会被 记录到主机A的ARP缓存表中。ARP表项的老化超时时间缺省为1200秒。

跨网段如何访问

在上述例子的组网中,主机A需要与主机B通信时,目的IP地址与本机的 IP地址位于不同网络,但是由于主机A未配置网关,所以它将会以广播 形式发送ARP Request报文,请求主机B的MAC地址。但是,广播报文 无法被路由器转发,所以主机B无法收到主机A的ARP请求报文,当然也 就无法应答。 在路由器上启用代理ARP功能,就可以解决这个问题。启用代理ARP后 ,路由器收到这样的请求,会查找路由表,如果存在主机B的路由表项 ,路由器将会使用自己的G0/0/0接口的MAC地址来回应该ARP request 。主机A收到ARP reply后,将以路由器的G0/0/0接口MAC地址作为目的 MAC地址进行数据转发。

4.免费ARP介绍

主机被分配了IP地址或者IP地址发生变更后,必须立刻检测其所分配的 IP地址在网络上是否是唯一的,以避免地址冲突。主机通过发送ARP request报文来进行地址冲突检测。 主机A将ARP Request广播报文中的目的IP地址字段设置为自己的IP地 址,该网络中所有主机包括网关都会接收到此报文。当目的IP地址已经 被某一个主机或网关使用时,该主机或网关就会回应ARP reply报文。 通过这种方式,主机A就能探测到IP地址冲突了

尾言

好了至此大家应该比较清楚了ARP协议的作用以及其作为免费侦测IP地址冲突的工作过程和原理。


老鬼非鬼-致力于关注社会、科技、军事、民生的自媒体,提供一个专业、严谨、科学的新媒体深度解读和分析平台!

chrome web获取mac地址_老鬼傻瓜式讲解网络知识:网络设备如何通过IP地址获取设备MAC地址...相关推荐

  1. tcp协议的主要功能是什么_前端要知道的网络知识一:TCP/IP 协议到底在讲什么...

    你之所以不知道那套书在讲什么,是因为你还没有认识到网络协议有什么用,怎么用,以什么形式在使用,网络协议的概念很简单,就几句话,你只知道网络协议的概念,只知道很多大神都推荐这套书,都强调网络协议的重要性 ...

  2. web页面上数据是否进行缓存要怎么判断_前端要知道的网络知识五:详细的介绍web缓存...

    Web缓存是可以自动保存常见文档副本的HTTP设备.当Web请求抵达缓存时,如果本地有"已缓存的"副本,就可以从本地存储设备而不是原始服务器中提取这个文档.本文将详细介绍缓存的相关 ...

  3. 北京dns服务器ip地址_什么是DNS? 域名系统,DNS服务器和IP地址概念介绍

    北京dns服务器ip地址 介绍 (Introduction) By the end of this article, you should have a better understanding of ...

  4. 网络知识:快速了解IP地址的概念以及IPV4和IPV6的区别!

    ‍ ‍ 小伙伴们看到上面的机房了吗?成千上万台服务器他们都少不了一个小小的IP 地址,每台服务器都配置了一个或多个IP.今天电脑学习微信公众号小编就带大家详细了解下IP地址都是什么? IP地址(Int ...

  5. mysql获取img标签_前台html页面的img标签图片想动态从数据库获取,如何获取?

    展开全部 1.这个在数据库中存储62616964757a686964616fe78988e69d8331333431366235img图片的地址,前台放置img服务器标签,后台读取数据库中的img图片 ...

  6. 关于fi dd ler 手机抓包 网卡地址地址_一篇不错的网络数据抓包

    一,网络抓包 Android 手机抓包  adb shell tcpdump -p -vv -s 0 -w /sdcard/capture.pcap adb pull /sdcard/capture. ...

  7. 关于fi dd ler 手机抓包 网卡地址地址_分布式场景下,网络故障排查抓包指南!...

    点击上方☝SpringForAll社区 轻松关注! 及时获取有趣有料的技术文章 本文来源:http://r6a.cn/gLgP 本文将展示如何使用 tcpdump 抓包,以及如何用 tcpdump 和 ...

  8. 我的世界java2b2t服务器地址_我的世界2b2t服务器怎么进 2b2t服务器ip是什么

    我的世界2b2t服务器怎么进不去 可能是输入的IP错了,正确IP:mc2b2t.com,国服就能直接连. 进不去的原因也可能是软件安装需要的Windows Installer出现了问题,按照下面步骤做 ...

  9. c语言实现农夫过河问题,傻瓜式讲解,看不明白来打我

    农夫过河问题本站可以搜索到很多博客,笔者是初学c语言,功底不深,没能力创造源代码,只是看了一篇大佬的文章对该问题进行描述之后,产生了一点自己的想法,我想以我能理解的方式分享给许多初学c语言朋友们,笔者 ...

最新文章

  1. Asp.net MVC 3实例学习之ExtShop(二)——创建母版页
  2. 【原】python3.7 无法pip安装提示ssl错误解决方案
  3. asp自动生成html文件的方法
  4. Serverless 实战 —— 基于 Serverless 的 VuePress 极简静态网站
  5. 【统计学习】随机梯度下降法求解感知机模型
  6. 屏幕空间环境光遮蔽(SSAO)算法的实现
  7. 【hive】hive权限
  8. java equals和==以及hashmap原理和区别
  9. jar包转换为exe可执行文件
  10. 为你写诗(LSTM 诗歌生成器)
  11. 应用程序“xxx“不能打开,怎么解决?
  12. PS改变证件照片背景颜色
  13. 这是历史上程序员被黑的最惨的一次,原谅我发出了杀猪般的笑声!
  14. DBA的工作职责是什么?
  15. 华为研究院高级研究员几年心得终得趣谈网络协议文档,附资深架构师讲解
  16. ubuntu卸载福昕阅读器
  17. 【Git版本控制管理】Gitee(码云)和GitHub的使用
  18. 【JWT】JWT 整合
  19. 生成特定分贝的音频波形
  20. 【FCC】Build a Tribute Page(html+css+bootstrap)

热门文章

  1. Hiring data scientists
  2. 浅析人类最贵、最大的机器学习模型GPT-3及背后隐含的商业逻辑
  3. redis 面试问题问答Top 10
  4. STOMP协议规范--转载
  5. 在浏览器地址栏按回车、F5、Ctrl+F5刷新网页的区别--转
  6. 【数据处理】python变量分箱常见手法:分类型、数值型、卡方、自定义
  7. 【DBA】DBA——数据库管理员
  8. 信用评分卡模型开发及评估指标
  9. 【待继续研究】如何运用机器学习技术构建可行的反欺诈检测方案?
  10. 太疯狂, 2021年涨幅第一,房价几天翻一倍, 全球炒房客都来了