当主机通过数据链路发送数据的时候,IP 数据报会先被封装为一个数据帧,而MAC 地址会被添加到数据帧的报头(链路层介绍时已讲过)。

ARP 便是在这个过程中通过目标主机的 IP 地址,查询目标主机的 MAC 地址。

原理

在你的电脑和路由器中都有一个 ARP 缓存表,其中保存的是近期(20 分钟)与自己有过通信的主机的 IP 地址与 MAC 地址的对应关系。

ARP 缓存表使用过程:

  • 当主机要发送一个 IP 数据报的时候,会首先查询一下自己的 ARP 缓存表;
  • 如果在 ARP 缓存表中找到对应的 MAC 地址,则将 IP 数据报封装为数据帧,把 MAC 地址放在帧首部,发送数据帧;
  • 如果查询的 IP-MAC 值对不存在,那么主机就向网络中广播发送一个 ARP 请求数据帧,ARP 请求中包含待查询 IP 地址;
  • 网络内所有收到 ARP 请求的主机查询自己的 IP 地址,如果发现自己符合条件,就回复一个 ARP 应答数据帧,其中包含自己的 MAC 地址;
  • 收到 ARP 应答后,主机将其 IP - MAC 对应信息存入自己的 ARP 缓存,然后再据此封装 IP 数据报,再发送数据帧。

你可以通过命令 arp -a 查看 ARP 缓存表(表项记录 20 分钟超时),这里介绍几个主要选项:

命令描述-a显示 ARP 高速缓存中的所有内容-d从 ARP 缓冲区中删除指定主机的 ARP 条目-s设置指定的主机的 IP 地址与 MAC 地址的静态映射-v显示详细的 arp 缓冲区条目,包括缓冲区条目的统计信息

下面使用 arp 命令实际查看一下 arp 缓存:

arparp -aarp -v

ARP 代理

如果 ARP 请求是从一个网络上的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该 ARP 请求,这个过程称作代理 ARP(Proxy ARP)。

当连接这两个网络的路由器收到该 ARP 请求时,它会发现自己有通向目的主机的路径,随后它会将自己(路由器)的 MAC 地址回复给源主机。源主机会认为路由器的 MAC 地址就是目的主机的 MAC 地址,而对于随后发来的数据帧,路由器会转发到它后面真实 MAC 地址的目的主机。

两个物理网络之间的路由器可以使这两个网络彼此透明化,在这种情况下,只要路由器设置成一个 ARP 代理,以响应一个网络到另一个网络主机的 ARP 请求,两个物理网络就可以使用相同的网络号。

ARP 欺骗

从 ARP 代理的原理可以看出来:IP - MAC 的对应信息很容易被伪造!黑客可以伪造 ARP 应答数据帧而欺骗 ARP 请求者,从而达到截获数据的目的。

netsh 查询mac地址_ARP(Address Resolution Protocol)地址解析协议相关推荐

  1. 地址解析协议(Address Resolution Protocol)

    将IP地址转换成MAC地址的网络层协议 为什么需要ARP 位于网络层的主机和路由器是通过其逻辑地址标识的,在TCP/IP协议簇中,逻辑地址对应为IP地址,长度为32比特. 报文是通过物理网络送达主机和 ...

  2. ARP(Address Resolution Protocol)地址解析协议初识

    ARP址解析协议是根据IP地址获取物理地址的一个TCP/IP协议.它工作在OSI七层模型的中第二层--数据链路层. 使用ARP地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址 ...

  3. 地址解析协议(Address Resolution Protocol,ARP)

    1. IP地址 要说ARP,首先我们要知道IP地址的概念,IP地址是分配给主机的逻辑地址(或称协议地址),同时每个主机还有一个在子网内部唯一的MAC地址,我们把这个地址叫做物理地址或硬件地址.从网络互 ...

  4. 利用ARP协议查询服务器的MAC,HTTP报文格式又是怎样的 如何使用ARP协议查询Mac地址...

    浏览器从地址栏得到服务器 IP,接着构造一个 HTTP 报文,其中包括: 请求行包含请求方法.URL.协议版本 请求报头(Request Header):由 "关键字: 值"对组成 ...

  5. xp查看计算机mac地址查询,mac地址查询,教你用dos命令查看mac地址的方法

    如何进行mac地址查询?其实MAC地址也就是(Media Access Control)的缩写,MAC地址的主要作用是定义网络配置的位置.尤其当我们在需要进行设置路由器的时候我们就需要通过Mac来进行 ...

  6. 协议簇:Ethernet Address Resolution Protocol (ARP) 解析

    简介 前面的文章中,我们介绍了 MAC Frame 的帧格式.我们知道,在每个 Ethernet Frame 中都分别包含一个 48 bit 的源物理地址和目的物理地址. 对于源地址很容易理解,该地址 ...

  7. 查询MAC地址所属生产厂商

    网卡 MAC码是由全球惟一的一个固定组织来分配的,未经 认证和授权的厂家无权生产网卡. 每块网卡都有一个固定的卡号,并且任何正规厂家生产的网卡上都直接标明了卡号, 一般为一组12位的16进制数.其中前 ...

  8. 查询mac地址所属厂家的网站

    http://www.macvendorlookup.com/ http://standards.ieee.org/develop/regauth/oui/public.html 输出厂家名,查取ma ...

  9. linux查询mac地址分屏,Tmux: linux下的分屏神器

    tmux tmux(terminal multiplexer)是Linux上的终端窗口的分屏神器.在一个终端窗口中可以分多个屏同时使用. 安装 Tmux 的安装. # Ubuntu $ sudo ap ...

最新文章

  1. mysql 查询某字段值全是数字
  2. MegaCli查看RAID
  3. ajax异步上传到又拍云的实例教程
  4. C++leetcode找出两个有序数组的中位数(2)
  5. wxWidgets:wxScopedCharTypeBuffer< T >类模板用法
  6. Linux线程池的设计
  7. 【Git】Git提交代码到GitHub的基本操作流程
  8. Bootstrap3 带条纹的表格样式
  9. 【OJ4976】硬币,神奇的背包
  10. Python实现字符串对齐
  11. 如何将索引碎片数量降至最低
  12. 多线程编程之两阶段终止模式
  13. 笔记本电脑主板电池_深圳外星人笔记本电脑维修服务中心
  14. 基于 Multiple Teacher Single Student 框架的多领域对话模型
  15. 各种常用的JSON接口
  16. 民间的三种说法-Java与咖啡的故事
  17. 就Linux的一些操作,王里面导入jdk,mysql,tomcat三个包,实现项目在虚拟机上面运行
  18. 高人、天才、牛逼…从柳传志到雷军、马云,几乎没人不服任正非!
  19. XaaC一切皆计算机 和 XaaS一切皆服务
  20. 为android模拟器加速

热门文章

  1. Redis性能指标监控
  2. 沉浸式视频技术应用与挑战
  3. 展望二十一世纪第三个十年
  4. 音视频技术开发周刊 90期
  5. “鹅厂养鹅”是假的,但腾讯这个“山洞”是真的
  6. ffmpeg-简单AES加解密记录
  7. librtmp实时消息传输协议(RTMP)库代码浅析
  8. Kubernetes1.6安装指南 (二进制文件方式)
  9. 想成为BAT中的一员,你总要去学点什么(三)
  10. 最快解决在win下杀死端口号的方式