【计算机网络】ARP协议

 🔥博客主页: 我要成为C++领域大神

🎥系列专栏【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】

❤️感谢大家点赞👍收藏⭐评论✍️

本博客致力于分享知识,欢迎大家共同学习和交流。

什么是ARP协议

ARP协议:地址解析协议(address revolution protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

ARP报文由:ARP报头 和 源MAC源IP,目的MAC和目的IP组成。

ARP协议是网络层和数据链路层之间的协议,所以ARP报头里的上层协议类型就是IP协议。

通过向目的IP发送ARP请求,此时的ARP报文中源MAC源IP,目的IP是已知的,目的MAC未知填0。ARP请求包通过“广播”的形式发送,交换机或WIFI设备收到广播包时将数据发送给同一局域网的其它主机。每个主机根据目的IP判断请求包是否为发送给自己的,若是,则会返回一个ARP响应包,ARP响应包中包含自己的MAC地址。
这样源主机在收到响应包时,就知道了目的主机的MAC地址。

上图是ARP协议实现的原理图,以广播形式发给局域网内其它主机,根据目的IP是否相同来返回ARP响应包

ARP请求包发送的形式是广播,ARP响应包发送的形式是单播,因为ARP报文中没有未知的部分了。

ARP代理

ARP协议中要查询的目的MAC与我们的主机PC都是在同一局域网内的,通过广播即可获得。但是若目的主机与主机PC不在同一局域网内呢?
因此就有了ARP代理。当我们的源主机广播发送ARP请求包时,本地网络不会有主机回应,因为目的机不在同一局域网内。那么此时路由器会被源主机误认为是目的端,会将报文全部转发给路由器,再由路由器转发报文到局域网外,这个路由器就被称为ARP代理。

免费ARP

Gratuitous ARP,也称为“无故ARP”,在没有人问自己的情况下,无缘无故自问自答
免费ARP中的ARP报文里的源IP和目的IP均为自己的IP,这个报文叫做ARP报文。该报文是不希望收到响应的,若收到响应,说明网络上有人使用相同的IP,这会造成IP冲突。
免费ARP是一个广播ARP请求报文。
免费ARP还会告诉广播域内的所有主机,发送报文的主机的IP和MAC地址,即IP-MAC对,保存在其它主机的缓存区中,若已存在IP-MAC对,则会进行更新。告诉网内所有主机自己的IP--MAC对应关系,让网内主机定期收到这个免费ARP请求,进而重置ARP老化时间等

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值