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

相关推荐
H5css�海秀7 小时前
今天是自学大模型的第一天(sanjose)
后端·python·node.js·php
SuniaWang7 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
韩立学长7 小时前
Springboot校园跑腿业务系统0b7amk02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
sheji34167 小时前
【开题答辩全过程】以 基于springboot的扶贫系统为例,包含答辩的问题和答案
java·spring boot·后端
代码栈上的思考8 小时前
消息队列:内存与磁盘数据中心设计与实现
后端·spring
程序员小假9 小时前
我们来说一下 b+ 树与 b 树的区别
java·后端
Meepo_haha10 小时前
Spring Boot 条件注解:@ConditionalOnProperty 完全解析
java·spring boot·后端
sheji341610 小时前
【开题答辩全过程】以 基于springboot的房屋租赁系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
Victor35611 小时前
MongoDB(57)如何优化MongoDB的查询性能?
后端
钛态11 小时前
Flutter 三方库 http_mock_adapter — 赋能鸿蒙应用开发的高效率网络接口 Mock 与自动化测试注入引擎(适配鸿蒙 HarmonyOS Next ohos)
android·网络协议·flutter·http·华为·中间件·harmonyos