我读到过,如果我们使用 NAT,路由器会根据 TCP/UDP 端口信息知道在本地网络中将传入数据包发送到哪里。如果此信息可用于唯一标识本地网络上的每台机器,那么为什么需要 MAC 地址?
答案1
您需要能够识别网络堆栈各个级别的连接。
MAC 地址仅用于识别以太网层(第 2 层简化 OSI 模型)中的 LAN 适配器。IP
地址(TCP 和/或 UDP)仅适用于 IP 层(第 3 层)。
并非所有使用 IP 的通信都通过以太网进行。IP 可以通过没有 MAC 地址的其他第 2 层发送。
除 IP 之外,以太网还可以承载其他第 3 层流量,这些流量根本不使用 IP 地址。
对于以太网上的 IP,您需要两个标识符,因为所涉及的两个层都需要各自的 ID 系统。
答案2
MAC 地址是每个可以连接到网络的硬件上都存在的物理签名。它始终是唯一的。它基本上是您的网络设备的低级唯一 ID。
现在,您无法仅通过了解端口信息来进行通信,因为多个设备可以监听/发送到同一个端口。
它是网络通信的基础!由于 MAC 地址是唯一的,因此通常用于限制无线网络等的访问。
如果您想了解更多,可以阅读以下文章:http://www.howtogeek.com/169540/what-exactly-is-a-mac-address-used-for/
答案3
需要 MAC 有几个原因,其中最大的原因是 IP 地址不是(必然)唯一的。
在计算机拥有 IP 地址之前,它通常会使用名为 DHCP 的服务在网络上请求一个 IP 地址。此时,计算机会向整个网络发送一条广播消息,说“嘿,我没有 IP 地址。我的唯一标识符是 <MAC>。DHCP 服务器能否为我分配一个 IP 地址,以便我可以在网络上通信?”
此外,路由器和交换机使用 MAC 地址表来确定哪些设备位于哪些端口上。这用于智能地将数据包移动到正确的端口。使用 MAC 地址比使用 IP 地址更容易,因为网卡可以同时分配多个 IP 地址,因此存储 MAC 更有效率。
还有其他用途。它通常用作许可目的的唯一标识符,以及熵目的的随机种子的一部分。