php读取路由器arp表,详解ARP地址解析协议的工作流程

我们知道,两台主机想要进行相互间通信,那么都需要有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请求。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值