每日一个计算机小知识: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,然后双方就可以直接通信了。

相关推荐
前端工作日常1 小时前
我学习到的JIT即时编译与机器码缓存失效
java·后端
犀利豆1 小时前
Claude Code Tools 研究系列(三)ExitPlanMode
人工智能·后端
星栈2 小时前
oh-my-pi工程级AI编码工使用体验
人工智能·后端·agent
Bruce_Liuxiaowei3 小时前
轻量级 IOC 管理方案:Streamlit 驱动的恶意IP情报平台
网络·jvm·网络协议·tcp/ip·安全
立心者03 小时前
SpringBoot中使用TOTP实现MFA(多因素认证)
java·spring boot·后端
AskHarries4 小时前
SEO 页面怎么生成
后端
爱吃牛肉的大老虎4 小时前
Rust对象之结构体,枚举,特性
开发语言·后端·rust
石榴4 小时前
NestJS 的请求到底经过了什么:装饰器、守卫、拦截器、管道与中间件如何配合
后端
Gopher_HBo5 小时前
moby-client客户端
后端
杨运交5 小时前
[055][调度模块]Spring动态任务调度框架的设计与实现
java·后端·spring