为什么ethernet / mac -addresses 为十六进制而IP 数字为十进制?

网络工程 ipv4 以太网
2021-07-18 00:12:55

为什么以太网-/mac-地址是十六进制的(有 48 位),而 ip 数字是十进制的(有 32 位)?这有历史或实际原因吗?

2个回答

不同的人设计不同的协议。以太网可以传输的不仅仅是 IP(IPX 在 15-20 年前非常普遍,并且在它的地址中也使用了十六进制。更准确地说:IPX 地址的本地部分是 MAC 地址)。另一方面,IP 可以在不使用以太网作为第 2 层协议的情况下运行。

不知何故,以太网(和 MAC 地址)成为主要的第 2 层协议,而 IPv4 成为主要的第 3 层协议。使用 IPv6,我们的 IP(v6) 地址中有 HEX。

Jens 有一个很好的技术答案(并且得到了我的支持),但另一方面是人类的可读性,因为作为人类,我们总是希望成为需要在机器的更高意识层理解这些地址的“事物”不拥有。以十进制传送 48 位地址的效率低于以十进制传送 32 位地址(在人类可读性的上下文中;对于路由器/交换机/任何东西,一切都是二进制的)。

例如,可以用 32 位表示的数字空间非常适合将该空间划分为大小均匀的块(这里的块是字节或八位字节),每个为 8 位,并且您有一个最大的十进制“容量” “对于这些块中的每一个,255 个。这自然会导致以点分十进制格式表示这些地址,因为您永远不会拥有超过 3 个十进制数字的八位字节。

MAC地址不同。十六进制在这里更有效,因为您可以用更少的钱表达更多,并且您再次限制数字长度的范围以补偿更大的地址空间。一个48位的地址有6个八位字节,每个十六进制数为4位;48 位地址中的任何八位字节都不会长于两个十六进制数字。

aa:d3:ad:be:ef:aa

比读、写和解释更容易(更有效)

170:211:173:190:239:170