ARP协议

ARP协议

​ (Address Resolution Protocol 地址解析协议):是根据IP地址获取MAC地址(物理地址)的一个TCP/IP协议。 主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回信息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议时建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存。 由此攻击者就可以向某一主机发送伪ARP应答报文,试其发送的信息无法到达预期主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可以用于查询本机ARP缓存IP地址和MAC地址的对应关系、添加或删除静态对应关系。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。

主机通过ARP协议获取MAC地址 过程

在主机B中有一个ARP高速缓存表,其中记录了IP地址和MAC地址的对应关系,以及类型(动态or静态)。

  • 动态:主机自动获取到的,生命周期默认为两分钟。生命周期结束时,该记录会自动删除。因为IP地址和MAC地址对应关系并不是永久性的。
  • 静态:人为手工配置的,不同操作系统下的生命周期不同。
  1. 主机B向主机C发送数据包。主机B先在主机的ARP高速缓存表中查找是否有主机IP地址对应的MAC地址的条目。但当前主机B只知道主机C的IP地址不知道MAC地址。主机B在数据链路层封装MAC帧时,无法填写目标MAC地址!所以现在无法发送数据包给到主机C。
  2. 主机B发送ARP请求报文(广播)来获取主机C的MAC地址。请求报文中包含了主机B的IP地址、MAC地址和目标主机的IP地址。提供自己的IP地址和MAC地址是为了让主机C能够进行IP-MAC地址对应存储,并且能够返回给自己主机C的MAC地址。ARP请求报文是有具体格式的。ARP请求报文被封装在MAC帧中发送,目的地址位广播地址。主机B发送封装有ARP请求报文的广播帧,总线上的其他主机都能收到该广播帧。
  3. 总线上的主机网卡接收到该广播帧后,将广播帧交付上层处理,上层的ARP进程解析ARP请求报文,如果发现IP地址不是自己则不会发送任何数据包回应,目标主机接收到才会进行响应。
  4. 主机C响应主机B。主机C先将主机B的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给主机B发送ARP响应,以告知自己的MAC地址。ARP响应报文内容为:主机C的IP地址和MAC地址。ARP响应报文被封装在MAC帧中发送,目的地址为主机B的MAC地址。主机C给主机B发送封装有ARP响应报文的单播帧。总线上的其他主机都能收到单播帧。
  5. 总线上主机的网卡接收到单播帧。非目标主机发现其目标的MAC地址与自己的MAC地址不匹配,直接丢弃该帧。主机B的网卡接收到该单播帧后,发现目标MAC地址和自己的MAC地址一样,把帧交付给上层处理,上层的ARP进程解析ARP报文,将其所包含主机C的IP地址与MAC地址记录到自己的ARP高速缓存表中。
  6. 主机B现在可以给主机C发送之前想发送的数据包了。

ARP报文类型:请求ARP、响应ARP、检查IP地址冲突的无故ARP(又称免费ARP) ARP协议没有安全验证机制!!!存在ARP欺骗或攻击等问题。

代理ARP:留作悬念

​ ARP攻击 ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能够更改目标主机缓存中的IP-MAC条目,造成网络中断或中间人攻击。 ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”搜段截获所在网络内其他计算机的通信信息,并因此造成网内其他计算机的通信故障。

ARP协议的小小了解相关推荐

  1. arp协议属于哪一层_网络工程师(3):详解ARP协议

    提起"协议",我们并不陌生,比如实习协议.租赁协议,等等. 所以,协议,其实就是双方或几方协商一致,需要共同遵守的约定. 网络中各种各样的协议,就是人们为了让电脑或网络设备(比如交 ...

  2. TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...

  3. 通信原理之IP协议,ARP协议 (三)

    把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...

  4. 4.3.7 ARP协议

    4.3.7 ARP协议 在一个网段内 不在一个网段内

  5. 网络工程:2.1.ARP协议与PC间通信

    ARP协议功能:通过解析网路层IPV4地址来找寻数据链路层MAC地址的一个网络传输协议 ARP协议格式 每台带ARP协议设备表格式  1.PC间正常通信原则一(双方PC能相互访问) ① 需求:1.1. ...

  6. ARP协议详解之ARP动态与静态条目的生命周期

    ARP协议详解之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自动添加和删除. q  每个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉.所以,生 ...

  7. ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御

    ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3  ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...

  8. Wireshark工具创建过滤器的方式ARP协议全面实战手册

    Wireshark工具创建过滤器的方式ARP协议全面实战手册 [实例1-3]现在要抓取目的或来源地址为192.168.5.9的封包.在图1.5中添加如下所示的条件: tcp dst port 3128 ...

  9. ARP协议全面实战手册1.1.2设置过滤器

    ARP协议全面实战手册1.1.2设置过滤器 如果使用Wireshark捕获数据包时,默认捕获所有协议的数据包.如果接收到的数据包过多时,想要查看自己想看的数据包,可能非常困难.幸运的是,Wiresha ...

最新文章

  1. JAVA获取资源的方法
  2. HttpServletRequestWrapper的使用
  3. 自动配置原理精讲||@Conditional ||怎么知道哪些自动配置类生效? 启用debug=true属性(在配置文件配置);
  4. 事件绑定机制简单实现
  5. Mysql笔记——DML
  6. 【个人感悟】效率,天道酬勤
  7. 3d目标检测_CVPR 2020 |基用于3D目标检测的层级图网络
  8. leetcode278. 第一个错误的版本(二分查找)
  9. 推荐周立功先生的一本书
  10. Pycharm 2019 添加 docker 解释器
  11. 【 Linux 网络虚拟化 】Netns
  12. 数据库的挂起(suspending)和恢复(resuming)
  13. 丘比特之箭python代码_心形丘比特之箭_可爱漂亮的非主流情侣QQ空间留言代码
  14. Hazelcast Jet Pipeline详解
  15. 多元化邮件插图成鲜活生命力,助力邮件营销转化!
  16. VX_Ipad协议和Mac协议
  17. ThinkPHP 5.0常用助手函数
  18. 滴滴夜莺:从监控告警系统向运维平台演化
  19. HTTP HTTPS 及网络请求与响应
  20. 虚函数、纯虚函数、虚继承、多继承

热门文章

  1. c语言学习日志 day5
  2. 四旋翼飞行器9——APM地面站使用详解(校准结束)
  3. 一切编程语言都是纸老虎
  4. Mac下独立设置触控板和鼠标的滚动方向
  5. java cup_java高cup占用解决方案
  6. 电力系统微型计算机继电保护2018,4月全国自考电力系统微型计算机继电保护试卷及答案解析.docx...
  7. 数据结构与算法 | 希尔排序
  8. Android 9 行为变更:所有应用
  9. 计算机高级职称考试襄阳,湖北襄阳2016年职称计算机考试报名时间公布
  10. GitHub改名字和修改仓库名的方法和注意事项 git remote set-url origin xxx