遇到MAC时常会联想到物理地址(MAC地址),而疏忽MAC层。本文通过搜集资料来对两者进行简单的区分。
这两个概念都源于网络互连模型——OSI模型(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)。
1)MAC层(Medium Access Control Layer)——介质访问控制层:

  • 属于数据链路层下层子层,定义数据包如何在介质中传输。
  • 数据链路层分为上层LLC(逻辑链路控制)和下层MAC层。而该子层主要负责控制与连接物理层的物理介质,即定义了数据帧怎样在介质上进行传输。物理寻址、逻辑拓扑在此处被定义,线路控制、出错通知(不纠正)、帧的传递顺序和可选择的流量控制也在这层实现[1]。

2)MAC地址(Medi Access Control Address)——直译为媒体存取控制位址,也叫物理地址、硬件地址。

  • 用来确认网络设备位置的位址。用于在网络中唯一标示一个网卡,如果一台设备若有一或多个网卡,则每个网卡都需要并会有唯一的MAC地址,由网络设备制造商生产时烧录在网卡的EEPROM中。IP地址与MAC地址在计算机都是以二进制表示的,IP地址是32位,MAC地址48位[2]。
  • 在OSI模型中,第三层网络层负责IP地址,第二层数据链路层负责MAC地址。

这里为了更好的理解两者之间的关系,需要进一步了解MAC层工作过程。在MAC层中进行数据包传送的关键是将目标节点的IP地址通过ARP地址解析协议完成到主机的MAC地址的映射。以交换机为例,交换机接收到网上一个数据包时,根据数据包的目标IP地址,查看交换机内部是否有跟该IP地址对应的MAC地址,如果有上次保留下来的对应的MAC地址,就会将该数据包转发到对应的MAC地址的主机上。如果交换机内部没有与目标IP地址对应的MAC地址,则交换机会根据ARP协议将目标IP地址按照“表”中对应关系映射成MAC地址,数据包就被转送到对应的MAC地址的主机上[3]。
将MAC层比喻为“房子”,则MAC地址就是该“房子”的地址