我了解到,在ARP协议中,要将数据包从一台机器发送到另一台机器,我们需要知道目标机器的MAC地址,但是由于目的地已经被分配了一个唯一的IP地址,那么发送MAC地址不是多余的吗?
注-
发布于 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域.
发布于 2016-09-09 23:10:10
正如@ronmaupin所暗示的,这是有历史原因的。
在小型网络中,您不需要第三层协议。所有的设备都是可直接寻址的,所以第二层地址工作得很好。随着网络规模的扩大和互联,有必要知道如何从一个网络到另一个网络。这就是路由的功能,在第三层完成。
IP并不是唯一的(甚至是最流行的) L3协议,以太网也不是唯一的第二层协议。这就是为什么有层次感。你可以把其中一个的功能和另一个分开。它使开发网络软件变得更容易,因为您不必为每种类型的网络都提供特殊版本。
第三层功能不知道或不关心您是否使用以太网、令牌环、PPP或其他十几种过时的网络协议。类似地,第二层协议并不关心您是否在使用IP、IPX或其他什么。
您为分层所付出的代价是,您必须在32位IP地址和48位MAC地址(用于以太网)之间“映射”。这就是ARP协议的目的--在第二层和第三层之间进行映射。
发布于 2016-09-09 17:07:02
IP地址就像你剪的头发。它通常不会经常改变,但一旦改变了,你就会完全认不出来。MAC地址就像你的指纹。你可能看起来不一样,但你的指纹永远不会改变。
MAC地址允许我们做几件事。
https://networkengineering.stackexchange.com/questions/34765
复制相似问题