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

107 天前
 shrugginG

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

7261 次点击
所在节点    程序员
55 条回复
huage
107 天前
IPv4 地址和 MAC 地址的耗尽问题有以下几个主要区别:

1.地址空间大小:
IPv4 地址:IPv4 使用 32 位地址,这意味着最多可以提供大约 43 亿个唯一的 IP 地址。这看起来很多,但随着互联网的快速增长,这些地址很快就被分配完了。
MAC 地址:MAC 地址使用 48 位地址空间,可以提供大约 281 万亿个唯一的地址。这个数量远远超过了目前和未来可预见的网络设备数量。

2.用途和分配方式:
IPv4 地址:IP 地址是全球唯一的,用于互联网设备之间的通信。随着全球联网设备的增加,尤其是物联网( IoT )设备的普及,IPv4 地址被快速消耗。
MAC 地址:MAC 地址是本地唯一的,每个网络接口卡( NIC )都有一个唯一的 MAC 地址。它们主要用于局域网( LAN )内部的通信,通常不需要全球唯一性。即使存在重叠的 MAC 地址,只要不在同一个局域网中,通常也不会引起冲突。

3.解决方案:
IPv4 地址枯竭的解决方案:随着 IPv4 地址的枯竭,IPv6 被引入作为替代方案。IPv6 使用 128 位地址空间,可以提供几乎无限数量的地址,足以支持未来的互联网设备增长。
MAC 地址:由于 MAC 地址空间非常大,目前还没有出现枯竭的问题。此外,MAC 地址通常是硬件制造商分配的,而且可以根据需要生成和分配新的 MAC 地址。

因此,IPv4 地址因为地址空间相对较小和全球唯一性要求,已经面临枯竭问题,而 MAC 地址由于其巨大的地址空间和局域网络使用特性,目前并没有面临类似的耗尽问题。
WildDonkey
107 天前
你这个对链路层的作用不是很了解,链路层本身就是广播范围内的物理通信,不用来寻路和路由,因此只要在一个子网内没有重复就可以。你家里的 MAC 地址跟你公司的 MAC 地址完全一样也没有关系,因为互相不知道,但 IP 不一样,IP 有寻路路由功能,那么就得全网唯一标识。本质上来说这俩不是一个层,起 的作用不一样,决定了会不会耗尽问题。
cnt2ex
107 天前
生产商也是会回收重利用 MAC 地址的。并且 MAC 地址只在局域网使用,因此就算是有重复的,只要不在同个局域网就不会有影响。
tywtyw2002
107 天前
你仔细读读书。mac 地址在设计的时候的有效位数是多少?

ipv4 在设计的时候 最大的 a 类地址,可以保证多少位有效(一个局域网最多多少 host )

不得不说 ipv4 的 cidr 和 nat 让 ipv4 续命了多少年,估计能续道跟 32 位 unix 时间戳一样长。
guanzhangzhang
107 天前
mac 地址是二层,基本是内网和“邻居系统”使用,不需要公网上使用
totoro625
107 天前
@huage #1 请勿使用 Chatgpt 回复,站内会封号
NewYear
107 天前
@totoro625 这 gpt 说得还蛮清楚的,除了啰嗦点……
totoro625
107 天前
参考 /t/934365 /t/892826
总结版:IPv4 由于设计之初是树状结构,并不是按需分配,例如,A 公司分配 1627 万个 IP ,B 公司分配 6 万个 IP ,C 公司分配 254 个 IP ,并不是根据公司大小给不同数量的 IP ,而是根据先来后到分配,而且由于先天结构缺陷,只能就这样用下去了
如上海商场里的一个公共 WiFi 发射出去了 4k 个公网 ip
julyclyde
107 天前
其实这个疑问说明你网络课根本没学好

MAC 地址只在广播域内有效
sodesga
107 天前
mac 地址是按厂商授权的,是一种共识,而且在物理层。
混杂模式可以监听所有请求,也就是抓包的底层逻辑。
ipv4 + NAT 完全够用的,ipv6 是一种博弈,荒唐的是还有 ipv9
julyclyde
107 天前
@tywtyw2002 你也没读好
julyclyde
107 天前
@sodesga 你也没读好
tywtyw2002
107 天前
@julyclyde mac 地址有效位数 24 位 ip a 类地址 24 位 正好一样位数 有什么问题?

mac 地址前 24 位是厂商 信息,这个不应该算在有效位数里面。(如果所以 a 类地址主机都用相同厂商的网卡)
rrfeng
107 天前
上次在公司网络出了问题,排查好久发现是 IT 给的 usb-rj45 mac 和别人的冲突了……
kilotiger
107 天前
我其实一直好奇 mac 地址不会重复吗?既然是各大厂商随机分配的,那么谁知道谁用过哪个(好幼稚的提问但我就是搞不懂)
opengps
107 天前
做个简单的题目:
IPv4 总数是 256 的四次方
Mac 的总数是 ( 10 数字+26 字母)的 6 次方
tywtyw2002
107 天前
楼主别看自顶向下了,那本书没用。

网络就这几本书是经典

编程类
TCP/IP 详解 看 1 ,2 就好了 不过里面没有 quic 之类的现在协议讲解了。tcp 窗口看个大概就行了,主要三次握手。
网络类
tcpip 路由技术 偏向于网络实践,2 层三层路由协议等等。
ipv6 详解,可以看,我是没读完,只看了 ndp 那些,ipv6 下没有 arp ,用 ndp 代替 arp 了。
greygoo
107 天前
@opengps 不是 10 个数字+26 个字母,是 10 个数字+6 个字母,用来表示十六进制,4 位二进制。所以 mac 才是 48 位数,而 256 是 8 位二进制,ipv4 是 32 位,其实后面都是二进制,只是写法不一样
cinlen
107 天前
@kilotiger mac 地址中有固定前缀是给厂商的, 例如 aa:bb:cc:dd:ee:ff:gg ,aa:bb:cc 固定是厂商 A 用的。
shadowyue
107 天前
@julyclyde 同一个广播域出现了 MAC 地址一样的会咋样,💣?

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

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

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

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

© 2021 V2EX