我了解到,在本地网络中,在该网络内进行通信的计算机不仅需要 IP 地址,还需要 MAC 地址。
这是计算机网络早期的遗留问题吗?
因为当我有 IP 地址时,我便有了想要与之通信的主机的“地址”(或身份)。无需获取目标主机的 MAC 地址。与公网中的计算机通信时也不需要 MAC 地址 - 此处您也只需要 IP 地址。
看起来 MAC 地址用于在 LAN 中的交换机内进行 IP-MAC 映射,但这似乎是多余的,因为交换机应该已经知道哪个端口通向具有给定 IP 地址的哪个主机。交换机知道所连接主机的 IP 地址,它知道从哪个端口将数据发送到具有正确 IP 地址的正确主机。
我也知道 MAC 地址标识主机中的物理硬件设备。当主机具有多种的硬件网络设备?打个比方,IP 地址是包裹投递到的邮政地址,而 MAC 地址则标识要采取的入口(如主入口、后入口、烟囱)?这就是 MAC 地址的原因吗?但如果是这样,那仍然不重要。数据通过哪个硬件设备传送并不重要,只要数据被传送到正确的地址(IP 地址)即可……
我读了MAC 地址的具体用途是什么?但不认为它提供了令人满意的答案。
答案1
网络并不像看上去那么简单。我们谈论的是一层层蛋糕,表面之下有很多事情发生。重要的是要了解通信有两个层次:物理和逻辑。
一切网络化的定义是IEEE 802 标准。以太网受 802.3 管辖,WiFi 受 802.11 管辖。
第一层是身体的,OSI 模型第 1 层。这里只有电、电磁辐射和光;实际的物理电缆、天线和接口。这一层上的所有东西都是哑的,设备之间完全没有相互意识。
最重要的是身体数据链路层,OSI 模型第 2 层。在这里,1 和 0 被转换为信号的调制,反之亦然。这是设备相互了解并能够进行通信的最低要求。因为多个接口可以连接到单个 L2网段, 每个界面必须有唯一的L2标识符,即硬件地址-MAC地址。
这协议数据单元这一层称为框架,其结构为:
+--------------+-----------------+---------+------------+
| SenderL2Addr | RecipientL2Addr | Payload | ErrorCheck |
+--------------+-----------------+---------+------------+
L2 帧只能在同一个子网和广播域. 同一子网/广播域中的设备使用 L2 寻址进行通信。
接下来是网络层,OSI 模型第 3 层。此层处理网络之间的传输。为了允许此层上的通信,每个设备必须有一个唯一的 L3 标识符 - IP 地址。
这一层的协议不需要也不需要了解物理介质,它们也不关心物理传输;这是 L2 的工作。这一层的 PDU 称为数据包,其结构如下:
+--------------+-----------------+---------+------------+
| SenderL3Addr | RecipientL3Addr | Payload | ErrorCheck |
+--------------+-----------------+---------+------------+
在传输过程中,L3 数据包被封装在 L2 帧中,它是有效载荷。因此,当数据传输到线路时,帧实际上看起来像这样:
+-----------+-----------+-----------+-----------+---------+--------+
| SndL2Addr | RcpL2Addr | SndL3Addr | RcpL3Addr | Payload | ErrChk |
+-----------+-----------+-----------+-----------+---------+--------+
由于 IP 是 L3 协议,因此它无法在物理层面处理实际数据转发。因此,如果没有 L2 协议,数据根本无法在系统之间移动。
当然,理论上可以将 L2 及其寻址从图中完全移除。但是 - 正如已经说过的 - 这意味着我们不再谈论 802.3 和 .11。需要制定新标准,所有协议都需要从头开始重写,需要设计新芯片组,改变制造工艺来生产它们,需要设计新设备,采用新制造工艺来生产它们...
除某些企业级网络设备外,L3 由软件处理,而 L2 由硬件处理;即芯片。这意味着您的手机无法使用 WiFi 进行通信,因为其 WiFi 硬件是根据 802.11 标准设计的。
实现转变的唯一现实方式是通过自然设备退役周期。这是一个漫长的过程。
以这种方式重新设计网络的想法比采用 IPv6 的要求高出许多倍。IPv6 于 1995 年推出,但大约十年前才开始流行。全球采用 IPv6 的难度约40%。因此,尽管我可以想象 MAC 寻址被废弃的未来(虽然我真的不明白为什么),但这确实是非常遥远的未来。
答案2
更多背景信息:我了解到 MAC 地址用于 LAN 交换机中,以将交换机的端口映射到某个 MAC 地址。但为什么不将交换机的端口映射到某个 IP 地址呢?这应该与将数据包从源路由到目标主机的方式完全相同...
确实如此,但您的交换机将仅限于 IPv4/IPv6(如果交换机较旧,则甚至仅限于 IPv4)。它实际上将变成 IP 路由器。
但实际上存在各种其他通过以太网运行的东西,但是不是IP,例如几种“专业音频”协议——过去,甚至更多。
(例如,IPv4 LAN 可以与基于 NetWare IPX 的 LAN、和/或 Xerox XNS LAN、和/或 DECnet LAN、和/或 OSI CLNP LAN 共存……全部位于同一以太网上。)
当 Xerox 最初发明以太网时,它确实在以太网层和网络(Xerox Pup)层使用了相同的寻址。根据他们自己的文章,这被证明太不灵活了。
答案3
MAC 地址(尽管它可以被伪造)是唯一寻址设备或网络接口的方法。IP 地址(我假设您指的是 IPv4)不是唯一的,可以随机分配给其他接口,并且需要与设备所连接的网络保持一致。设备可以有多个 IP 地址,并且拥有动态 IPv4 地址(如 DHCP)非常有用。如果没有 MAC 地址或非常类似的地址,DHCP 就无法工作。
还有一个重要的事实:IP(v4)不是唯一的网络协议。
答案4
不,MAC 并非初级概念。由于以太网和 WiFi 具有多路访问功能,因此 MAC 正是其必要条件,用于区分同一链路后面的对等体。MAC 并非总是必需的;想象一下 IP 通过 PPP 运行的串行链路,没有 MAC 地址,因为链路另一端只有一个对等体,因此无需区分它们。
想想物理城市。有邮政地址(如“100 East Davie Street Raleigh, NC 27601. 美国”),也有地铁站路线,如乘坐 1 号线或 A 号线或“红色”线,然后前往“车站”。而且你不能使用汽车或公共汽车,你必须使用地铁在城市中旅行。
第一个(邮政)就像 IP 地址。第二个(车站名称)就像 MAC 地址。继续这个例子,如果只有一条铁路线,并且没有中间站点,那么甚至不需要车站名称,您总是会前往“另一端”;这就是 PPP 的工作方式。