为啥 IPv4 很快就耗尽了,而 MAC 地址却没有呢

51 天前
 shrugginG

其实这个疑问上学期间学习计算机网络就有了,我感觉 TCP/IP 作为数据链路层之上的协议,那 IPV4 应该是晚于 MAC 地址出现的吧,那为啥 MAC 地址一开始就被设置得这么长,足够扩展,而 IPv4 已经耗尽了呢》

7131 次点击
所在节点    程序员
55 条回复
Andim
51 天前
@kilotiger 大厂都分有一个固定的区间,就连 Vmware 都有专属的 区段
00:50:56:80:00:00 - [00:50:56:3F:FF:FF]
02:50:68:00:00:02 - 02:50:68:00:00:FF
cansiny0320
51 天前
@cinlen #18 前缀是谁分配的?我强行用别人的前缀会出现什么问题吗?
gdfsjunjun
51 天前
你在问 MAC 的时候就像在问内网 IP 地址就这么多,为什么没用完呢?
greygoo
51 天前
至于为什么要问 ipv4 是 32 位,mac 是 48 位,当时做些的人因为当时的原因自己选择的,现在不好用了就换一个不就行了嘛
cinlen
51 天前
@cansiny0320 大概是厂商(OUI)向权威机构(IEEE) 申请注册。

你强行用别人的大概率也没啥问题,除非你自己生产网卡并把它卖到全世界各地,然后买家刚好在同一个广播域里的同时用了你的网卡和原厂商的网卡,这时候有一丢丢丢丢概率会重复。
xcsoft
51 天前
@greygoo mac 地址在以太网帧结构中 已经分配好为 6 个 byte ,你要换这个 成本可想而知
laminux29
51 天前
目前业界处理全球 IPv4 地址不够用,以及千年虫的问题,仅仅使用了把数据结构长度加大的方法,这种方法治标不治本。因为造成这个问题的原因,并不是数据结构的长度不够长,而是静态长度的数据类型,永远会发生不够用的问题。

根治的方法是,使用动态长度的数据结构体,就像 tcp 通信中,先发数据长度,再发数据内容。
xcsoft
51 天前
我感觉 MAC 地址 作为硬件唯一标识,具有唯一性,一个厂商 (OUI) 可以有 24 位的自主分配,可以生产 2^24 台设备/ 即使用完 也可以再次申请新的 OUI

1. 3 楼所讲,网卡属于消耗品,可能每隔数十年就可以考虑重新分配原先的 MAC 地址 (还是有一定风险)
2. MAC 地址 只需要在同一个广播域内做到不冲突即可,同时大多数设备其实已经默认启用了随机 MAC 地址 以避免追踪,在广播域下 其实并没有使用硬件 MAC 地址
julyclyde
51 天前
@tywtyw2002 正好一样位数,但是相互没什么关系
julyclyde
51 天前
@shadowyue 同一个广播域相同的 mac
如果是集线器就无所谓;交换机的话,看具体产品,可能两边都收到,也可能各自断续
julyclyde
51 天前
@xcsoft 定长的数据就不可能唯一
xcsoft
51 天前
@julyclyde 相当于一个规范吧
luny
51 天前
mac 地址需要向 IEEE 购买,10 几年前买过,记得是 3000 美金一个段,1 百万个,不知道涨价没
greygoo
51 天前
@xcsoft #26 mac 地址现在很好用,以后万一就是同一个物理网络里面有 2^48 个设备,那估计还是有其他办法来解决一下.分离成多个网络?然后用 ipv6 定义一个本地网络?反正现在没有什么应用是直接使用以太网帧的,当然"现在不好用了就换一个"只是一种精神,总是有解决办法的.没必要纠结为什么 ipv4 没有 mac 地址那么多,要不你去问问他们本人为什么要这样设计,
julyclyde
51 天前
@greygoo 一个广播域里那么多设备,要解决的恐怕不是 mac 冲突的问题了,而是传输碰撞的问题
2333wz
51 天前
@rrfeng 碰到过相同问题,当时只知道检查新添加的网络设备,找到了 usb 网卡解决了。原来是 mac 地址的原因。
elboble
51 天前
@luny 3400 美元,2^24 个,1600 万个。
cnevil
51 天前
问问题之前建议先动动脑子
IPv4 跟 MAC 地址长度又不一样,而且即使重复了又怎么样呢,只要不在同一个二层网络环境下,随便重复
DOLLOR
51 天前
MAC 地址不要求全球唯一,只要局域网内唯一就行了。
同一个局域网下出现相同的 mac 地址的网卡概率非常低。
哪怕真的不幸地相遇了,也可以随机生成一个代替,毕竟 mac 地址可以随便伪造。
datou
51 天前
@luny 蓝牙设备的 mac 和网络设备的 mac 是分开结算的吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1061197

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX