详解ARP地址解析协议的工作流程

发布时间 - 2020-12-11 00:00:00    点击率:

我们知道,两台主机想要进行相互间通信,那么都需要有ip地址才行,而且还要知道通信对方的ip地址。那么有了ip地址就可以通信了么?还不行,还需要有对方的mac地址才能够进行通信,mac地址和ip地址缺一不可。下面我们来看,知道了对方主机的ip地址,那么如何查到对方的mac地址。

每台主机都有自己的arp缓存列表,里面存放着局域网内其他主机的Ip地址和Mac地址的映射关系。可以在命令窗口下,输入`arp -a查看本主机的arp缓存。

arp -a
接口: 192.168.110.145 --- 0x13
  Internet 地址         物理地址              类型
  192.168.110.1         30-0d-9e-61-27-3a     动态        
  192.168.110.255       ff-ff-ff-ff-ff-ff     静态        
……

当局域网的主机A(IP为192.168.1.11)要和同一局域网的主机B通信时,在已知主机B的IP地址(192.168.1.13)后,会查看自己的arp缓存,看里面有没有主机B的MAC地址,如果有的话,就可以和主机B进行通信了。如果没有的话,就要使用ARP地址解析协议来获取主机B的MAC地址。下面我们来看arp的工作流程:

(1)主机A在局域网内发送广播包,消息内容类似于:”我是192.168.1.11,mac地址是a0:a4:ce:42:29:56,我想知道192.168.1.13的MAC地址”。

(2)在本局域网上所有运行arp程序的主机都能收到该广播消息。

(3)主机B的IP匹配,所有收下该请求,并将主机A的IP与MAC地址的映射关系记录到记得的arp缓存中。然后发送一个单播包给主机A,内容类似于:“我是192.168.1.13,我的MAC地址是f1:21:fa:c2:d2:ad”。

(4)主机A收到B发来的单播消息,将主机B的IP地址和MAC地址关系记录到自己的arp缓存里。

注意,因为局域网主机是动态变换的,所以ARP缓存是有生存时间的,过期会自动删除。

大家可能会有疑问,你说的这只是局域网内主机情况,如果是不同网段的呢?其实也还是通过ARP来获取的,只不过需要进行多次ARP请求。


# 自己的  # 我是  # 网内  # 类似于  # 就可以  # 信了  # 域网  # 我想  # 都有  # 是有 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 原生JS实现图片轮播切换效果  图册素材网站设计制作软件,图册的导出方式有几种?  Laravel如何实现文件上传和存储?(本地与S3配置)  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  桂林网站制作公司有哪些,桂林马拉松怎么报名?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  如何在橙子建站上传落地页?操作指南详解  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  昵图网官方站入口 昵图网素材图库官网入口  大型企业网站制作流程,做网站需要注册公司吗?  Laravel如何处理和验证JSON类型的数据库字段  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  Laravel如何自定义分页视图?(Pagination示例)  Laravel怎么在Blade中安全地输出原始HTML内容  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  python中快速进行多个字符替换的方法小结  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  linux写shell需要注意的问题(必看)  Linux网络带宽限制_tc配置实践解析【教程】  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  香港服务器网站卡顿?如何解决网络延迟与负载问题?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Laravel如何使用模型观察者?(Observer代码示例)  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  如何在万网自助建站平台快速创建网站?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  Laravel Docker环境搭建教程_Laravel Sail使用指南  Laravel集合Collection怎么用_Laravel集合常用函数详解  UC浏览器如何设置启动页 UC浏览器启动页设置方法  制作企业网站建设方案,怎样建设一个公司网站?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  如何在服务器上三步完成建站并提升流量?  微信公众帐号开发教程之图文消息全攻略  javascript中对象的定义、使用以及对象和原型链操作小结  音乐网站服务器如何优化API响应速度?  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  js实现点击每个li节点,都弹出其文本值及修改  Laravel怎么使用Intervention Image库处理图片上传和缩放  Laravel如何处理CORS跨域请求?(配置示例)  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法