访问控制子层(MAC子层)
概述
介质访问控制(MAC, Medium Access Control)子层是局域网体系结构中划分的子层,对于广播型网络(以太网、WLAN)是非常重要的,它负责局域网内寻址和介质争用的问题 。而非广播型的网络(广域网)就不存在这个问题,因为点对点意味着节点是唯一的,不需要寻址,也不存在争用。
MAC子层是广播型网络体系结构中数据链路层的一个子层,如上述讲到的,它负责寻址和解决介质争用。实际上不止总线型局域网存在介质争用的问题,实际上不论是何总拓扑,几乎上都存在介质争用,如星型拓扑中多个用户要访问同一个用户,这就存在争用现象。如树形结构中级交换只有一条线路,这也存在介质争用。
局域网、令牌网、以太局域网、WLAN等中与接入的各种传输介质的相关问题都放在MAC子层来解决,且MAC子层还负责在物理基础上无差错的通信。
具体地说,其负责功能如下:
- MAC帧的装卸
- 实现、维护MAC协议
- 比特流差错检测
- MAC寻址
虽然数据链路层分为了LLC子层和MAC子层,数据有LLC帧和MAC帧,但是,通常我们说的帧指的都是MAC帧,因为对于物理层而言,数据链路层最终的结果就是MAC帧。
IEEE 802局域网标准里有多重不同的MAC子层协议,MAC帧的格式也不尽相同,但不管是哪一种都一定会具有MAC地址。
在局域网中,MAC地址的作用就是定位的,网卡从网上每收到一个MAC帧先判断是否发网本机的帧,然后再进行相应处理。但MAC地址只能在数据链路层识别,在网络层是不能识别的,必须依靠ARP映射表来查找对应的MAC地址,MAC帧又有如下三种:
- 单播帧——目的地址是单播MAC地址
- 广播帧——目的地址是全1的地址,即广播地址
- 多播帧——目的地址是多播地址,多MAC地址有许多种
两种信道类型
MAC子层主要功能是解决信道争用的问题,但是并不是所有网络都存在争用的问题,只有广播型网络中存在这个问题。网络和信道均分为点对点和广播两大类。
所谓点对点信道指的是两个节点之间没有经过任何中间设备。具体还需要看链路上封装的数据链路层协议,最常见的点对点数据链路层协议有PPP、PPPoE等,这样的链路就叫做点对点链路。
广播信道指的是信道被多条链路所共享,也就是存在物理介质共享的情况,最常见的广播型数据链路层协议就是以太网和WLAN协议,这种链路就叫做广播链路。在广播网络中,一个用户发送的广播包可以通过交换机广播到局域网中所有节点。
如下图所示的即是一个总线型网络,及数据在广播信道中向多个节点传输的示例。
以上图片来自《深入理解计算机网络》
介质争用
介质争用中有个很重要的概念叫做冲突域,也就是可能发生介质访问冲突的范围。
存在争用就得解决争用,对于广域网,通常是使用信道复用技术来解决,而以太局域网、WLAN无线局域网的主要解决方案有CSMA、CSMA/CD、CSMA/CA协议等等。