为什么我们需要以太网 MAC 地址?

网络工程 以太网 MAC地址 互联网 协议论 IP地址
2022-02-24 21:29:31

不要认为它是重复的。我已经搜索了很多文章,但找不到令人满意的答案。

我明白 :

  • ARP 的工作原理

  • MAC 地址是每个 NIC 的唯一地址

  • IP是网络层协议,MAC地址是链路层

  • 交换机使用 MAC 地址,路由器使用 IP 地址

请不要这样回答。我知道互联网是如何运作的。

我的问题是为什么互联网是这样创建的。为什么人们同时使用以太网 MAC 地址和 IP 地址,而不仅仅是使用 IP 地址。

IP 有利于数据包发送,因为它是分层的并且具有子网信息。所以我认为我们可以只使用 IP 地址来创建类似 Internet 的网络!数据包将被适当地发送。

3个回答

您应该记住,以太网(带有 MAC 地址)和 IP(带有 IP 地址)是独立开发的。

据我正确理解,MAC 地址最初的目的是像我们今天使用“第 3 层”地址(IP 地址)一样使用;可以说它们不打算与 IP 地址一起使用,而是用来代替IP 地址。(但是,如果我理解正确,IP 还不存在。)

另一方面,IP 并非旨在与以太网兼容。以太网不像今天那么重要,但它是当时许多不同的本地网络技术之一。

通过以太网发送 IP 数据包的必要性在很久以后才出现,因为已经有很多硬件使用 MAC 地址,而没有硬件使用 IP 地址。

用于通过以太网发送 IP 数据包的解决方案与用于通过 IPv6 网络发送 IPv4 数据包的解决方案相同:数据包被封装。

就像在 IPv4-over-IPv6 的情况下,您将需要两个不同的(目标)地址:一个用于“外部”协议(两个示例中的 IPv6 或 MAC),一个用于“内部”协议 (IPv4)。

我的问题是为什么互联网是这样创建的。为什么我们使用双地址而不是 IP 地址。

已经开发为与以太网兼容的协议不使用两种不同的地址,但 MAC 地址是第 3 层地址的一部分:

  • 80 位 IPX 地址由 32 位(子)网络和 MAC 地址组成
  • 最初 128 位 IPv6 地址旨在由 64 位(子)网络和 MAC 地址组成(在 IPv6-over-Ethernet 的情况下保留 16 位)

就纯粹的技术术语而言,您当然可以设计一些没有两层寻址的东西。

考虑两个问题:1)当它不是下面的以太网时,我们应该如何发送IP数据包?2)我们应该如何发送不是IP的数据包?

您必须记住,在设计互联网时,以太网并不是无处不在。在设计以太网时,许多其他上层协议都是最新的。

所以我想说真正的问题是:分层协议有什么好处?从根本上说,这归结为成本。尤其是以太网,其设计目的是尽可能广泛地部署,其明确目标是最小化单位成本。它带有一种便于 LAN 使用且与任何高位寻址无关的寻址方案,它允许以太网硬件在不中断 CPU 的情况下识别传入的帧。这种寻址方式的维护成本极低。相应地,互联网协议被设计为在您可能拥有的任何链接之上工作,并且具有在组织方面有意义的地址,并且便于路由。但相比之下,它们的维护成本相当高。

所以我们有两层寻址来覆盖这两层的需求。

[编辑]一些事后的想法:

您可以使用单一类型寻址的证据是,您可以将所有以太网卡重新编程为 02:00:a:b:c:d,其中 IP 地址为 abcd 单个 IP 地址有多个 IP 地址的情况以太网几乎会强制使用与我们现在拥有的相同类型的机制,即类似于 ARP 的机制。

作为硬件的一部分提供以太网地址的一个好处是 BOOTP(以及因此 DHCP)很容易。如果没有硬件 MAC 地址,您将需要锁定到硬件的序列号、操作系统安装(如 SSH 主机密钥)或手动配置(如主机名)。如果您将序列号锁定到硬件,则可以将其用作 MAC 地址!

以太网需要 MAC 地址才能将其有效负载传输到目标节点。以太网是点对多点网络,即。单个物理链接允许您与网络上的任何节点进行通信 - 这需要某种寻址。MAC 寻址是以太网设计中固有的,因此没有它,以太网将无法工作。

互联网使用更高一层的TCP/IP(IPv4 和 IPv6)。TCP/IP 不关心底层如何运作,因此它不需要它使用 MAC 地址。IP 也可以在点对点层上正常工作,无需额外寻址。

但是,以太网是流行的第 2 层技术,它确实使用 MAC。其他第 2 层实现可能会或可能不会使用 MAC 地址。