MAC地址、IP地址、ARP协议

简介: 自己总结下

我们先从一个实际问题出发:

小明和小红约好周末去小红家里玩,小红和小明说了他的地址是:杭州市.西湖区.西湖小区.1号。
小明第一次去,他看了下导航,导航显示需要先步行到附近地铁A口,坐地铁到西湖站C口,步行到小红家。
小明第二次去,这时候就不需要导航了,他已经记住了。

同理,两台电脑A、B相互传数据时,电脑A是如何将数据包发送到电脑B呢?
image.png

请忽略图中的集线器

在A第一次连接B时,A仅仅知道B的ip地址,并不知道B的MAC地址,那么A能通过B的ip地址找到B吗?
答案是否定的。
因为IP地址是网络层的,类似于小红家,网络层并不负责数据的直接传输。当网络层的数据封装到下一层的数据链路层时,必须依靠着MAC地址来确认下一步往哪里走。
这时候没有B的MAC地址也没有导航怎么办?
聪明的电脑A想到了一种办法,我是用网线的,我传数据的速度非常快,我给连接的所有的电脑都发送下,收到数据的电脑确认下数据里面的IP地址与自己的是否一致,这样就可以成功将数据发送到B了。这种给所有电脑传数据的方式叫做广播。
image.png

这里CD都知道这个数据包不是发给自己的,就没有接收

当B接收到A的广播请求时,收到的数据里面有A的IP地址、MAC地址,这样B就可以给A单独发一条数据包。这种方式叫做单播,B也会将A的IP和MAC的映射关系记录在自己的ARP表中
image.png
image.png

这条单播数据成功到达A,A就知道了B的MAC地址啦。同理A也会将B的IP和MAC映射记录在自己的ARP中
image.png
在A第二次连接B时,他的数据就知道如何走了

总结下:

IP地址和MAC的主要区别:
IP地址封装在网络层,他是数据传输的终极地址,可以理解为小红家,当数据包传输过程中路过每一个交换机(理解为地铁站),这些数据在传输的时候只认MAC地址,比如一开始数据出发时,他的IP地址是小红家(杭州市.西湖区.西湖小区.1号)他的MAC地址并不是小红家的MAC地址,而是交换机(地铁站)的MAC地址。

ARP协议:当两台设备第一次交互时,在不清楚目的MAC地址时,通过广播发送请求数据包,当目的IP地址接收到数据时,更新自己的ARP缓存表,单播回应给数据发送者,发送者收到请求,再更新自己的ARP。

目录
相关文章
|
11月前
|
网络协议 安全 NoSQL
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
|
缓存 网络协议 Linux
Python渗透测试之ARP毒化和协议应用
Python渗透测试之ARP毒化和协议应用
179 0
|
网络协议
用户态协议栈04-定时arp-table的实现
用户态协议栈04-定时arp-table的实现
|
网络协议 安全 网络安全
ARP协议详解及其工作原理
【8月更文挑战第31天】
1247 0
|
存储 缓存 监控
|
1月前
|
前端开发 安全 测试技术
Postman Mac 版安装终极指南:从下载到流畅运行,一步到位
Postman 是 API 开发与测试的高效工具,支持各类 HTTP 请求调试与团队协作。本文详解 Mac 版下载、安装步骤,助你快速上手。同时推荐一体化 API 协作平台 Apifox,集文档、调试、测试于一体,提升开发效率与团队协同能力。
|
4月前
|
iOS开发 MacOS 索引
在不受支持的 Mac 上安装 macOS Tahoe 26
在不受支持的 Mac 上安装 macOS Tahoe 26
270 0
在不受支持的 Mac 上安装 macOS Tahoe 26
|
7月前
|
Ubuntu Linux Shell
Ubuntu gnome WhiteSur-gtk-theme类mac主题正确安装和卸载方式
通过这个过程,用户不仅可以定制自己的桌面外观,还可以学习到更多关于 Linux 系统管理的知识,从而更好地掌握系统配置和主题管理的技巧。
888 12
|
7月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。