Mac 地址会重复吗?Mac 地址也会耗尽吗?

FightingCoder

共 2015字,需浏览 5分钟

 · 2022-02-14


9d9de3345ccc98116d81e0ce0030c8ca.webp


这是「进击的Coder」的第 567 篇技术分享来源:汇聚魔杖链接:https://www.sohu.com/a/453658004_100058692

阅读本文大概需要 5 分钟。


IP 地址和 Mac 地址产生的目的是方便别人找到自己

Mac 地址有点像身份证号码,而IP地址就像门牌号码。在茫茫大海中仅凭一个身份证号码找到一颗别样的沙粒很难,但如果先找到具体的沙滩,沙滩划分很小的网格片区,就很容易通过身份证找到这颗别样的沙粒了。

1b758aaf2c55b92f27a420c892c00eb1.webp

MAC 地址(物理地址、硬件地址)是实实在在的网络设备出身地址,它是由厂商写入网络设备的 bios 中。

8c02dbd1cf35c79c5a9f37056e6e49a3.webp

网络设备厂商也并不能随意的使用 Mac 地址,需要向 IEEE 申请,当然厂商申请需要付费。

b0458c13bdb1ff3bc6af49e6662aca80.webp

Mac 地址通常表示为 12 个 16 进制数,每 2 个 16 进制数之间用冒号隔开,前 6 位 16 进制数代表了网络硬件制造商的编号,由 IEEE 分配,而后 3 位 16 进制数是由网络产品制造产商自行分配。这样就可以保证世界上每个网络设备具有唯一的 MAC 地址,比如一台电脑的网卡坏掉了之后,更换一块网卡之后 MAC 地址就会变。

7e7cce0a2ba2f8e8b7061596731a5523.webp

IP 地址是出于拓扑设计出来的,它为互联网上每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。对于路由器、电脑等网络设备,只要 IP 地址不重复情况下,IP 地址是可以随意的修改。

00a3afdbb426b947cec3bbc30d142a7c.webp

网络的变迁

早期的以太网只有集线器(Hub)、没有交换机(Switch),所以发出去的包能被以太网内所有的机器监听到,所以数据包就需要带上源 mac 地址和目的 mac 地址,每个机器只需要接受和自己的 MAC 地址相匹配的数据包。

2ca424268f17f96d98d5a90ee55993cb.webp

局域网数据传输并不是通过网络层的 IP 地址进行路由和转发,想要在局域网中发送数据,还需要知道设备的 mac 地址。比如我们的电脑向其他局域网中的其他电脑发送数据时,它会先通过 ARP(地址解析协议)在局域网中获取目的 IP 地址所对应的 MAC 地址。

step1:源主机首先会向局域网中发送 ARP 的广播请求,只要目标 mac 地址是 FF:FF:FF:FF:FF:FF,局域网内的所有设备都会受到这个请求。

step2:接收到 ARP 请求的设备会检查目的 IP 地址和自己的 IP 地址是否一致,不一致就会忽略当前的 ARP 请求,一致就会向源主机发送 ARP 响应。

step3:源主机接收到 ARP 响应后就会更新本地缓存表并继续向目的主机发送数据。

042570f55e9196ab745061f34df00b70.webp

在局域网中如果采用集线器来连接不同的网络设备,相同的 MAC 地址一般不会出现太多的问题,因为在集线器连接的局域网中所有的数据帧都会被广播给局域网内的全部主机,而如果通过交换机连接不同的网络设备就会受到影响,因为交换机需要学习局域网中不同设备的 Mac 地址并将数据帧转发给特定的主机。

4ff3e49cf4bb46eec4c9bfd677fc6efa.webp

所以 Mac 地址其实是可以重复使用的,只是不能在同一个局域网中使用相同的 MAC 地址,而跨局域网的网络传输则需要通过网络层的 IP 协议,所以在不同的局域网使用相同的 Mac 地址就不存在类似的问题。

Mac 地址会有重复

按照 IEEE 的协定每个网络设备出厂都会有全球唯一的 Mac 地址,并且使用过的也不会再重复使用。但不意味着 Mac 地址就不会出现重复了,很多小伙伴们都改过 Mac 地址,有的直接可以通过系统进行修改。

35149db37faab5e548ad615f8038eab2.webp

有的网络设备允许你在管理后台手动的修改 mac 地址。

c5b0c159f4f35f38722f6f903a0dc521.webp

以上这些都是通过虚拟的方式覆盖原有的 Mac 地址,并没有更改掉设备出身时烙印的 Mac 地址。出身时烙印的 Mac 地址也并不是不能修改,通过硬件写入的方式同样的可以修改 Mac 地址,本质上 Mac 地址就是一串二进制数,存放在了 bios 的某个存储区域内。

3b8967ab833bb6888d912f3387fd19dc.webp

Mac 地址还可以用很久

有限的 Mac 地址,不断的使用,迟早是会消耗完的。但是 Mac 地址数量足够多,还可以使用很长一段时间。

IP 地址是 32 位二进制数,约 43 亿个 IP 地址,而 Mac 地址是 48 位二进制数,约 281 万亿个 Mac 地址。公网 IP 地址是在 2019 年才耗尽的,可想而知,Mac 地址池可是比 IP 地址池大了 6 万多倍,而且重复的 Mac 地址只要不在一个局域网内就能正常使用,Mac 地址相当于永远都消耗不完。

49f87413635e64c4e4b575cbaa099331.webp

End

崔庆才的新书《Python3网络爬虫开发实战(第二版)》已经正式上市了!书中详细介绍了零基础用 Python 开发爬虫的各方面知识,同时相比第一版新增了 JavaScript 逆向、Android 逆向、异步爬虫、深度学习、Kubernetes 相关内容,‍同时本书已经获得 Python 之父 Guido 的推荐,目前本书正在七折促销中!

内容介绍:《Python3网络爬虫开发实战(第二版)》内容介绍


18b1cc8de928bfa2787ebb999a9a468f.webp


扫码购买




503a71903c5acc5690f568feb395eac5.webp

点个在看你最好看

cc8f252e82cd69370cda8af07a4c5a36.webp
浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报