每日一个计算机小知识:ARP协议

每日分享一个有趣的计算机小知识,今日话题:ARP协议

ARP 是 Address Resolution Protocol 的缩写,地址解析协议,在网络通信中主要用于将网络层的逻辑地址(IP地址),映射为数据链路层的物理地址(MAC地址)的网络协议。

1982年,由互联网工程任务组IETF在RFC 826中正式定义,设计初衷是为了解决局域网内通信的地址解析问题,仅用于同一局域网内,不能跨网段使用。

ARP缓存表:在网络中每台支持TCP/IP协议的计算机或路由器里都会有一张ARP缓存表,它是储存在设备本地的一张IP地址和MAC地址映射关系的临时表,主要作用就是避免重复发送ARP广播请求,提升局域网内的通信效率。

缓存表里储存的内容包含4个部分:IP地址、MAC地址、类型(动态、静态)、生存时间(仅动态类型,配置的时间超时后会自动删除)。动态类型设备通信后会自动添加到缓存表中,过期了会重发ARP广播请求然后更新数据,静态类型需要手动修改或删除,windows上查看缓存表命令为 arp -a,Linux/MacOS上查看命令为 arp -n 或 ip neigh。

这里举一个直观点的例子给大家演示ARP协议的工作流程:当前局域网内的主机A想要发送数据给主机B,需要同时知道对方的IP地址和MAC地址才能完成数据传输,IP地址作为逻辑地址本身是网络提前分配好的,也就可以通过配置或网络协议提前获取到。 现在主机A只知道主机B的IP地址,那就还需要通过IP地址去找到主机B的MAC地址了,这时主机A就会先在自己本地的ARP缓存表中查找有没有主机B对应的MAC地址,如果有就可以直接通信了。

如果没有则主机A会向同一局域网里的所有设备发送ARP广播请求:我的IP地址是192.168.1.100,MAC地址是02:1A:2B:3C:4D:5E,你们谁的IP地址是192.168.1.101呀,发我下你的MAC地址。当主机B收到请求后就会单播回复主机A:是我是我,我的MAC地址是02:1A:2B:3C:4D:5F,然后双方就可以直接通信了。

相关推荐
小信丶28 分钟前
@EnableTransactionManagement注解介绍、应用场景和示例代码
java·spring boot·后端
To Be Clean Coder36 分钟前
【Spring源码】createBean如何寻找构造器(四)——类型转换与匹配权重
java·后端·spring
-孤存-1 小时前
SpringBoot核心注解与配置详解
java·spring boot·后端
..过云雨1 小时前
五种IO模型与非阻塞IO
网络·网络协议·tcp/ip
2301_818732062 小时前
项目启动报错,错误指向xml 已解决
xml·java·数据库·后端·springboot
源远流长jerry2 小时前
dpdk之kni处理dns案例
linux·网络·网络协议·ubuntu·ip
小王不爱笑1322 小时前
SpringBoot 整合 Ollama + 本地 DeepSeek 模型
java·spring boot·后端
短剑重铸之日4 小时前
《设计模式》第七篇:适配器模式
java·后端·设计模式·适配器模式
树码小子5 小时前
SpringIoC & DI (1):IOC介绍 & Spring IoC使用 & DI
java·后端·spring
db_murphy5 小时前
知识篇 | net.ipv4.ip_forward 参数
网络·网络协议·tcp/ip