如果我们已经有了 MAC 地址,为什么还要使用 IP?

网络工程 ipv4 以太网
2021-07-17 14:43:21

我正在准备 ICND1 考试,最近开始了解不同的 Cisco 设备。我刚刚知道如何生成数据包以通过网络或网络外部传输。

例如,在生成数据包时,会添加源IP地址、目的IP地址、源MAC地址、目的MAC地址等数据。

由于 Switch 是第 2 层设备,它使用 MAC 地址与网络内的其他主机进行交互,那么为什么我们在本地网络内使用 IP 地址?

如果某人不需要连接到自己网络之外的任何主机或网络怎么办,为什么他仍然需要一个IP地址,MAC地址还不够吗?

4个回答

既然 Switch 是一个二层设备,它使用 MAC 地址与网络内的其他主机交互,那为什么我们在本地网络中使用 IP 地址呢?

好吧,让我们从您发送的流量开始。

如果您在自己的 LAN 中使用严格的第 2 层协议,而没有HTTP、SSL、NFSCIFSiSCSIH.323SIPDNSICMP、数据库或 websockets,那么您的提议就可以正常工作。事实上,FCoE不依赖于 IP 层......所以如果这是你想要的,那就去吧:-)

问题在于,您通过删除这些基于 IP 的服务,只会削弱大多数网络 95% 的效用。网络的存在是为了共享信息;地球上的所有操作系统都通过将服务绑定到 IP 并将其封装在 IP 中来共享信息。该信息通常也包含在 TCP 中。

  • 反问:一群坚定的人能否在所有主要操作系统中直接在以太网之上实现 TCP 和 UDP 服务?
  • 迂腐的回答:是的,但是为了微不足道的收益,这是对时间和资源的巨大浪费。让我们从基础开始……没有用于以太网 mac 地址的DNS名称服务。这意味着除非您构建它,否则您将如何解析没有 IP 地址的 URL?我怀疑是否有人真的想打字http://00c0.9b4a.fb2c/,这样他们就可以避免每个数据包中的 20 个额外字节。这只是所需工作的一个示例。

如果一个人不需要连接到自己网络之外的任何主机或网络怎么办,为什么他还需要一个IP地址,MAC地址还不够吗?

从技术上讲,是的。在现实世界中……这是一个非常无聊的没有 IP 的网络。

(又不是这个)

第 2 层与第 3 层

IP 在第 3 层工作。它通过以太网(第 2 层)承载,使用 MAC 来识别节点。使用不同的第 2 层(例如 ATM),您将没有 MAC。(或者使用不同的第 3 层,比如 IPX,你将没有 IP。)

MAC 标识哪个设备。IP 标识该设备所在的位置。

我知道你的名字,但不知道你住在哪里,所以我不能把我承诺用邮政服务寄给你的那张 100 美元的钞票寄给你。

您是正确的,仅在 1 个 LAN 内您就知道每个设备的确切位置。因此,从技术上讲,仅 Mac 地址表就足以将您的数据包装在 LAN 中的帧中。

但是有一个问题!所有网络设备和 PC 都是使用 TCP/IP 网络模型构建的。1个模型来统治他们。该模型要求您将 IP 地址包装在框架内。因此,如果没有 IP 地址,您将无法发送帧。如果没有帧,您将无法使用 MAC 地址来获取数据。

从技术上讲,我们可以构建第二个网络模型,专门用于省略 IP 地址要求的 LAN。但这需要很长时间。然后,您需要说服 IT 行业制作将您的模型视为自己的硬件和软件。它只是太麻烦了。

你的问题就像问为什么我们需要汽车在高速公路上行驶?为什么不走路,它就在附近。好吧,在高速公路上行走是违反规则的。而你最终入狱。

从技术上讲,您可以推动更改法律。但是你需要写出那个法律。考虑到与之相关的所有其他法律。此外,整个高速公路网格的设计理念是没有行人使用它。You got to convince the public, get elected, get enought votes, get your bill pass congress and the senate. 这太麻烦了。

如果没有 IP,您将在世界各地为系统中的每个未知/老化的 MAC 地址(未知单播)广播流量。

此外,IP 还可以帮助您以有效的方式(例如:使用 IP 地址汇总)在逻辑上规划网络,以便路由器可以使用更少的内存来路由表和转发信息。