网络中需要两种寻址方案(物理地址和逻辑地址)来识别主机吗?

网络工程 网络 MAC地址 互联网 IP地址 联网
2022-02-20 17:37:49

在计算机网络中,每个设备/主机都分配有 2 个不同的唯一地址。一个物理地址 MAC 和一个逻辑地址 IPv4/IPv6,使网络/互联网中任意 2 台主机之间的通信成为可能。

MAC 地址是平面寻址方案。因此,如果所有设备都以平面结构而不是分层结构连接(如今天的互联网),并且必须仅使用 MAC 地址来识别主机,那么效率将非常低。(打个比方,就像在一个排序的链表 DS 中找一个项目)

但是,IPv4 寻址方案本质上是分层的,因此主机识别非常有效。使用 IP 地址的网络部分,您将首先确定主机所在的网络,然后使用 IP 地址的主机部分,您将在该网络中找到确切的主机。(类似地,这就像在二叉搜索树 DS 中查找项目)。

所以我的问题是-如果仅使用分层寻址方案(例如,IPv4)就可以在网络/互联网中识别主机(既可以跨网络也可以在网络内识别),那么为什么我们需要额外的地址方案(MAC地址)旁边(仅在本地网络内有帮助)?

PS:很多朋友的解释,考虑到当前架构的第2层和第3层。但是,为什么首先要以这种方式设计架构呢?我可以很容易地想象一个只有本地 IP 地址的世界。这在技术上是可行的。不是吗?

3个回答

您需要记住,当今的主要协议 - 第 3 层和第 4 层的 TCP/IP 和第 1 层和第 2 层的以太网 - 是单独开发的。他们都以不同的方式解决各自层中的任务。

最初开发以太网时,TCP/IP 还没有准备好,它需要 15 年才能获得普遍接受。您如何为尚未完成的协议构建硬件?

开发 TCP/IP 的人建立在他们手头的任何东西上。对于以太网不兼容的寻址方案,必须开发一种转换 - ARP(顺便说一下,它被更有效的 IPv6 NDP 取代)。

此外,当以太网还很年轻时,那里有许多相互竞争的 L3 网络——IPX、NetBIOS、Apple/Ethertalk,......

实际上,单独的寻址机制为网络设计人员提供了额外的自由度——他可以将多个 IP 地址映射到单个 MAC,反之亦然,使用虚拟 IP 寻址,发明新的做事方式(如任播)或类似的。如果采用严格的端到端寻址方案,这一切都是不可能的。

链接级别的纯粹效率只是奖牌的一方面。为了提高整体效率,您还必须计算您可以做什么以及您可以轻松地做到这一点。考虑可扩展性和成本效益,看看整个事情。

如果以太网不能很好地与 IP 一起工作,那么其中一种替代方案将成为当今无处不在的网络标准。

您描述的问题很好地说明了 OSI 模型的第 2 层和第 3 层之间的交互。MAC 地址在第 2 层运行,是以太网帧的寻址方式。例如,如果主机 A 和主机 B 连接到以太网交换机,并希望进行通信,它们可以通过相互发送正确寻址的以太网帧来实现。当每个数据包到达交换机时,交换机将使用其 MAC 地址表来查找目标主机连接到哪个端口,并在途中发送数据包。要在以太网中发送流量,主机必须知道将数据包发送到哪个 MAC 地址。

到现在为止还挺好。但是应用程序不使用 MAC 地址,它们更喜欢使用 IP 地址。如果数据包只能使用 MAC 地址在线路上发送,但应用程序只知道如何使用 IP 地址,如何将数据包发送到正确的目的地?答案在于 ARP - 地址解析协议。该协议将 IP 地址映射到 MAC 地址,并且是每个主机知道如何使用正确的 MAC 在线路上发送数据包的方式。主机保留一个 ARP 查找表,用于将 IP 地址映射到 MAC 地址。

在上面的示例中,假设主机 A (10.0.0.5) 希望向主机 B (10.0.0.6) 发送数据包。序列如下所示:

  1. 想要发送到 10.0.0.6 的主机 A 查询其 ARP 表以获取该 IP。
  2. 没有与该 IP 匹配的现有条目,在本地以太网网络上广播 ARP 请求以查找该 IP 的 MAC 地址 ( arp who-has 10.0.0.6 tell 10.0.0.5)
  3. 主机 B,看到发送到以​​太网广播的 ARP 请求回复了 ARP 响应 ( arp reply 10.0.0.6 is-at 00:25:90:03:b3:98)
  4. 主机 A 现在知道主机 B 可以通过 MAC 地址 00:25:90:03:b3:98 访问,并且可以使用该 MAC 在线路上发送请求。

为了具体回答您的问题,即使主机连接到同一个以太网网络也使用分层地址方案(IPv4)的原因是因为应用程序只知道如何使用 IP 地址。对于应用程序来说,确定它们正在与之通信的目标 IP 是否连接到同一个以太网网络,并在使用 MAC 地址(如果是)和 IP 地址(如果不是)之间切换是不切实际的。

如需进一步阅读,请查看网络基础知识:ARP 工作原理,它对协议及其与这种情况的关系进行了很好的描述。

因此,如果您熟悉为什么面向对象编程如此成功,那么您就会知道这是因为它模拟了现实生活。

在您的网络接口卡上有一个 MAC 地址就像在您的汽车上有一个车牌。您的家庭地址就像拥有您的 IP 地址......如果有人想查看您的汽车,他们必须首先找到您的家庭地址(永远不会改变),然后是您的车牌。

IP 地址具有与其相关联的模式,该模式始终为真,包括地理位置,因为该信息已注册在可公开访问的数据库中。

还。你家里有很多 MAC 地址,而且它们会经常变化。但是,我可以获得一个 IP 地址,无论我的 Mac 地址是什么,我的 IP 地址都不会改变,这对我来说很方便。

DNS 服务器将不得不工作三次以跟上所有 Mac 地址以及谁拥有哪些 Mac 地址。与 MAC 地址相比,将 DNS 名称分配给 IP 地址随着时间的推移而发生的变化要少得多。

简而言之-IP地址比人类使用MAC地址方便得多,但是MAC地址对于交换机来说是必要的,以跟踪哪些数据包去哪里,以及将数据包放在哪条线上......它是一个低级寻址方案,不适合人们日常使用。