首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我们可以唯一地用IP地址标识每台机器,为什么我们需要MAC地址?

如果我们可以唯一地用IP地址标识每台机器,为什么我们需要MAC地址?
EN

Network Engineering用户
提问于 2016-09-09 16:59:16
回答 3查看 7.3K关注 0票数 12

我了解到,在ARP协议中,要将数据包从一台机器发送到另一台机器,我们需要知道目标机器的MAC地址,但是由于目的地已经被分配了一个唯一的IP地址,那么发送MAC地址不是多余的吗?

注-

  • 我理解在TCP/IP中有不同的层,其中数据链路层的主要功能是检查机器的MAC地址是否与数据包的目标MAC Address.相匹配,但是由于数据包已经包含目标IP地址,所以为什么我们不能将数据包进一步发送到网络层,以便将数据包与机器IP地址匹配,而不是在数据链路层使用MAC address.进行此检查,请不要将这个问题标记为模糊,因为我已经阅读过关于这个主题的Q&A,但是没有解释为什么这个检查不是在网络层而不是数据链路层进行的。请解释一下。谢谢。
EN

回答 3

Network Engineering用户

回答已采纳

发布于 2016-09-09 18:18:03

不要混淆网络层。每一层都有特定的用途。另外,不要假设每个层只有一个协议。第二层有很多协议,有的使用MAC地址,有的不使用MAC地址,有的使用48位MAC地址,有的使用64位MAC地址。还有多层-3协议.IPv4是使用最多但不是唯一的第三层协议,它使用32位地址,但它正在被使用128位地址的IPv6取代.每次要运行不同的第三层协议时,您都不希望替换或升级所有的第二层设备。

MAC地址是第2层地址,它们用于在局域网上传送第2层帧.交换机是第二层设备,它们使用MAC地址创建一个主机连接到哪个交换机接口的表。交换机将查看源MAC地址以构建其MAC地址表,它将查看目标MAC地址,在其MAC地址表中查找该地址,并将帧传送到正确的端口。由于它的MAC地址表中没有目标地址,交换机需要淹没所有其他接口的帧,这在所有其他接口上都是非常低效率和浪费带宽的。交换机不检查帧内的IP地址。这允许第二层和交换机携带任何第三层协议(IPv4、IPX、IPv6等).

IP地址是第三层地址,它们只被三层设备所观察,例如路由器.接收到第二层帧的路由器将从第三层数据包中剥离该帧,并在其路由表中查找IP地址,以查看该数据包应该切换到哪个接口。路由器将为连接到目标接口的新局域网构建一个新的第2层框架。

第二层(MAC地址等)用于连接到同一层-2域和第三层(IP地址等)的设备。允许您发送数据到其他层-2域.

票数 9
EN

Network Engineering用户

发布于 2016-09-09 23:10:10

正如@ronmaupin所暗示的,这是有历史原因的。

在小型网络中,您不需要第三层协议。所有的设备都是可直接寻址的,所以第二层地址工作得很好。随着网络规模的扩大和互联,有必要知道如何从一个网络到另一个网络。这就是路由的功能,在第三层完成。

IP并不是唯一的(甚至是最流行的) L3协议,以太网也不是唯一的第二层协议。这就是为什么有层次感。你可以把其中一个的功能和另一个分开。它使开发网络软件变得更容易,因为您不必为每种类型的网络都提供特殊版本。

第三层功能不知道或不关心您是否使用以太网、令牌环、PPP或其他十几种过时的网络协议。类似地,第二层协议并不关心您是否在使用IP、IPX或其他什么。

您为分层所付出的代价是,您必须在32位IP地址和48位MAC地址(用于以太网)之间“映射”。这就是ARP协议的目的--在第二层和第三层之间进行映射。

票数 16
EN

Network Engineering用户

发布于 2016-09-09 17:07:02

IP地址就像你剪的头发。它通常不会经常改变,但一旦改变了,你就会完全认不出来。MAC地址就像你的指纹。你可能看起来不一样,但你的指纹永远不会改变。

MAC地址允许我们做几件事。

  1. 它们使我们能够识别某一物品的制造商。
  2. 它们为一个项目提供了一个不变的(本质上)标识。
  3. 它允许在局域网中进行较少的硬件密集分组传输。
票数 4
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/34765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档