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。

目录
相关文章
|
4月前
|
网络协议 安全 NoSQL
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
|
6月前
|
缓存 网络协议 网络架构
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
本文详细介绍了如何使用网络抓包工具Wireshark进行网络抓包分析,包括以太网v2 MAC帧、IP数据报、ICMP报文和ARP报文的格式,以及不同网络通信的过程。文章通过抓包分析展示了IP数据报、ICMP数据报和ARP数据报的具体信息,包括MAC地址、IP地址、ICMP类型和代码、以及ARP的硬件类型、协议类型、操作类型等。通过这些分析,可以更好地理解网络协议的工作机制和数据传输过程。
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
|
5月前
|
缓存 网络协议 Linux
Python渗透测试之ARP毒化和协议应用
Python渗透测试之ARP毒化和协议应用
65 0
|
7月前
|
网络协议
用户态协议栈04-定时arp-table的实现
用户态协议栈04-定时arp-table的实现
|
7月前
|
网络协议 安全 网络安全
ARP协议详解及其工作原理
【8月更文挑战第31天】
623 0
|
7月前
|
存储 缓存 监控
|
网络协议 网络架构 Windows
MAC本遭遇ARP攻击的处理办法
windows环境下,如果遭遇ARP攻击,解决方法很简单:“360安全卫士”或"QQ软件管理"的实时防护里,都有ARP防护功能(默认是关闭的),只要启用就行了。但是Mac本上,就没这么方便了,先大概说下ARP攻击的原理:我们在局域网中访问外网时,总是要经过网关才能出去,IP设置里网关设置的是一个具体的ip4地址(比如192.168.1.1),但是IP地址每台机器通常是可以随便设置的(只要不跟局域网中的其它机器冲突),这是一个逻辑上的虚拟地址,只有网络设备(比如网卡)本身的静态MAC地址,这个才是物理真实地址,所有对IP的访问,最终必须定位到MAC物理地址,才能直接跟物理设备通讯。
1038 0
|
6月前
|
iOS开发 MacOS Windows
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
|
4月前
|
开发工具 git 开发者
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置
本篇将专注于如何在 DevEco Studio 中安装和配置必要的插件,以增强开发功能和提升效率。通过正确配置插件,开发流程能够得到简化,开发体验也会更加顺畅。
207 1
「Mac畅玩鸿蒙与硬件3」鸿蒙开发环境配置篇3 - DevEco Studio插件安装与配置
|
6月前
|
Oracle Java 关系型数据库
Mac电脑上安装和配置Flutter开发环境
Mac电脑上安装和配置Flutter开发环境
187 59