浅谈ARP协议

浅谈 ARP 协议


  • ARP概述
       ARP 是地址解析协议(Address Resolution Protocol)的缩写,其基本功能为通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,
       ARP 是TCP/IP协议栈中一个 最不安全的协议 ,但是TCP/IP协议又离不开它,它有以下几个特点:

    • ARP协议的报文是不能穿越路由器,不能被转发到其它广播域
    • ARP整个完整交互过程仅需要两个包,一问一答即可搞定!
    • ARP协议,是用于实现从 IP 地址到 MAC地址的映射,即询问目标IP对应的MAC地址。
    • 在网络通信中,仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过数据链路层进行发送,而数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。每一个网络设备在数据封装前都需要获取下一跳的MAC地址。IP地址由网络层来提供,MAC地址通过ARP协议来获取。ARP协议是TCP/IP协议簇中的重要组成部分,ARP能够通过目的IP地址发现目标设备的MAC地址,从而实现数据链路层的可达性
    • 上层应用程序关心的是IP地址,而不关系MAC地址,所以需要ARP协议来获知目的地主机的MAC地址完成数据封装
  • ARP报文格式
    在这里插入图片描述

  • ARP工作原理简图
    在这里插入图片描述

   上图就是ARP协议的简单运行原理,通过 一问一答 的方式获取了目标的MAC地址,然后储存在本地的 ARP缓存表 ,后续需要直接先去缓存表里面找。

arp -n                   #查看ARP缓存表
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.39.254           ether   00:50:56:e1:42:8a   C                     eth0
192.168.39.1             ether   00:50:56:f3:f7:31   C                     eth0
192.168.39.100           ether   00:50:56:c0:00:08   C                     eth0 

  既然是"缓存"表,意味着它有时效性,并且如果电脑或者通信设备重启的话,这张表就会清空;也就是说,如果下次需要通信,又需要进行ARP请求.


  • ARP原理之广播请求单播回应
      上面的工作原理图,是在一个局域网里面就两台主机之间的通讯,所以这个 一问一答 很顺畅,但是实际生活中,一个网段里面不可能只有两台机器,存在上百上千台机器,那么他们的通讯是个什么情况呢
    在这里插入图片描述
    • 来分析下这张模拟图的运行原理
      1. PC1 发出需要跟 PC2 的请求通讯广播
      2. PC2 PC3 PC4 都收到了广播
      3. PC3 PC4 收到广播后发现不是问自己,所以把包丢弃
      4. PC2 收到广播后,根据报文所含信息(里面有 自己的IP地址 ),判断是给自己,所以不会做丢弃动作,而是返回一个 ARP回应包,并且把 PC1MAC地址 储存在自己的ARP缓存表里。
      5. PC1 收到后确认PC2的位置,并把PC2的MAC地址 储存在 ARP缓存表 里面
        注意:PC2的返回ARP回应包并没有通过广播来实现,而是单播回应

  ARP协议通过"一问一答"实现交互,但是"问"和"答"都有讲究,"问"是通过广播形式实现,"答"是通过单播形式。


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


完 毕

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值