介质访问控制

-{zh-cn:媒体接入控制;zh-tw:媒体存取控制;}-（ 或 Media Access Control，缩写：MAC，大陆简体也称为“介质访问控制”）子层，是局域网中数据链路层的下层部分，提供定址及媒体存取的控制方式，使得不同设备或网路上的节点可以在多点的网路上通讯，而不会互相冲突，上述的特性在局域网或者城域网中格外重要。若只是两台设备之间全双工的通讯，因为两台设备可以同时传送及接收资料，不会冲突，因此不需要用到MAC协定。
MAC子层作为逻辑链路控制子层及物理层之间沟通的媒介，提供了一种定址的方法，称为实体地址或MAC地址。对于IEEE标准的MAC地址，全球管理的MAC地址（其最高字节的次低比特位，即从高到低的第7位取0）是唯一的，每张网卡的MAC地址都不一样，因此可以在一子网路中传送封包到特定的目的设备。此处的子网路是指没有路由器的实体网路（例如乙太网路）。但本地管理（相应的比特位取1）的MAC地址可以由用户自行分配。在同一个局域网内，MAC地址已经足够使用，但随着互连网络的发展，为了适应全球性能差异巨大，使用不同种类MAC层地址和MAC层协议的网络，并在其基础上建立一个虚拟互联网络，IP地址应运而生。互联网广泛使用ARP协议来将IP地址转换为MAC地址。
通道存取控制机制.
介质访问控制层提供的机制（channel access control mechanism）也称为多路存取方法（multiple access method）。这让数个连在一个因此连接在同一传输介质的几个设备可以共享其介质。像汇流排拓扑、环状拓扑、HUB网路、无线网路及半双工点对点的连结都是这类的网路。若有使用以封包模式为基础的的-{zh-cn:信道;zh-tw:通道;}-存取方法，可以侦测甚至避免资讯封包的，若是使用以电路交换或是-{zh-cn:信道;zh-tw:通道;}-化（channelization）为基础的-{zh-cn:信道;zh-tw:通道;}-存取方法，可以保留资料建立逻辑-{zh-cn:信道;zh-tw:通道;}-。-{zh-cn:信道;zh-tw:通道;}-存取方法要以实体层的多路复用框架为基础。
广为使用的多路存取方法之一是乙太网使用，以竞争为基础的CSMA/CD方法。此作法只适用在一个网路碰撞域中，例如乙太网汇流排网路或是星状拓扑。乙太网网路可以分为数个个网路碰撞域，彼此之间用桥接器和网路交换器。
多路存取方法不一定要用在有交换器的双工网路（例如乙太网），不过因为相容性的考量，这类的网路常会有网路交换器。
以下是一些使用在有线网路的封包交换多路访问协定：
以下是一些使用在无线网路的封包交换多路访问协定：
以太网的媒体接入控制.
由于历史原因，有线局域网拥有两个标准：DIX Ethernet V2和IEEE 802.3，基于前者的有线局域网称为以太网。IEEE 802.3局域网标准与前者十分相似，因而也被视作“以太网”，这里不做区分。
在传统的总线拓扑以太网以及使用集线器（hub）的星形拓扑以太网（集线器工作在物理层，故从逻辑上看这种以太网和总线以太网没有差别）中，在总线上，某台站点发送的数据会被发送至所有站。在发送数据帧时，在帧的首部标明目的站的适配器地址，适配器据此来进行过滤，接收发给自己的数据帧，丢弃发给其他站点的数据帧，从而实现一对一通信链路的建立。这种网络连接方式的缺点是同一时间只能有一个站点在发送数据，而以太网使用随机接入方式，任何用户都可随机发送数据，这会导致碰撞的可能性。所以这种以太网只能使用半双工通信方式。并在MAC层采用CSMA/CD协议（载波监听多点接入/碰撞检测）。
使用交换式集线器（switching hub，又名以太网交换机（switch））的以太网中，以太网交换机通常工作在全双工模式，通过查询帧交换表来将数据帧转发到相应的站点连接的物理端口。以太网交换机的帧交换表是通过自学习算法得到的：在一开始交换机的帧交换表是空白的。当以太网上的两个站点A和B双向通信时，A要发给B数据帧，交换机收到A要发给B的数据帧，记录A的MAC地址（数据帧的源地址）以及所在的接口，由于不知道B连接的接口，交换机向所有其他接口转发这个帧；B接受数据帧，其他站收到数据帧后丢弃；B向A发送数据帧时，交换机记录B的MAC地址和连接的接口。之后A与B通信时，不必再广播数据帧，直接按照记录的地址-接口对应关系转发即可。这种以太网不使用CSMA/CD协议。
吉比特以太网拥有全双工和半双工模式，在全双工模式不使用CSMA/CD协议。在吉比特以太网中，由于网络速率很快，因而帧发送时间会变短，争用期也变短。为了使网络线缆长度符合实际，在半双工模式下采用载波延伸（Carrier Extension，在发送帧末尾添加填充以使帧长度加倍）和分组突发模式（Burst Mode，在第一个帧后，连续发送数据帧）来解决上述问题。10GE以及更高速（≥10 Gbps）的以太网只使用全双工模式工作，也不使用CSMA/CD协议。
CSMA/CD协议.
CSMA/CD协议适用于半双工信道。CSMA/CD协议要求站点不断检测信道（“载波监听”），不论是否发送数据。在数据发送前，如果有其他站发送数据，则暂时不发送，等待信道空闲。然而由于电磁波在媒介中速率有限，难免会有站点未能及时侦测到信道占用。在数据发送中，若发现数据包与其他站点发送的数据“碰撞”，则采用截断二进制指数退避来确定重传时间。
若将总线的单程端到端传播时延记作τ，则其往返传播时延为2τ。可以证明，总线上的站点需要至多2τ的时间得知发送的数据帧是否遭遇碰撞，故将此段时间称为“争用期”或“碰撞窗口”，对于具体的以太网协议，规定其为51.2 μs。在检测到碰撞后，站点不会等待信道空闲后马上发送数据，而是推迟随机时间。这个随机时间是由下面的截断二进制指数退避来确定的：
对于以太网来说，长度小于一定数值的帧是因为帧冲突中止的无效帧，因为其发送时间小于争用期。例如对于10 Mbps以太网，长度小于64字节的帧都是无效帧。这种无效帧应被丢弃。
以太网MAC帧.
常用的以太网MAC帧有两种：DIX Ethernet V2标准MAC帧和IEEE 802.3标准MAC帧。
DIX Ethernet V2标准MAC帧的格式如下，各个字段按照发送顺序排列：
这种MAC帧没有长度字段，上层协议（如IP协议）处理时根据上层协议数据报头部的长度字段去掉填充字段。
IEEE 802.3标准的以太网MAC帧格式与上述标准的区别如下：
IEEE 802.11无线局域网的媒体接入控制.
802.11无线局域网采用星形拓扑，中心点称为接入点（AP）。它的MAC层采用CSMA/CA（载波监听多点接入/碰撞避免）协议以及停止等待协议。与以太网不同，802.11无线局域网是具有链路层确认的，它是可靠传输，而以太网的数据链路层是不可靠的。
CSMA/CD协议不适用于无线局域网。因为存在以下问题：无线信道与有线信道不同，由于多径效应和多普勒频移等原因，无线信号的信号强度动态范围很大，适配器上接收到信号强度往往小于发送信号的强度。硬件实现困难。即使在硬件上实现碰撞检测，也无法避免碰撞的产生。简单例子：假设有一定移动站A和C之间存在站点B，A和C都欲和B通信，存在这样一种可能：A和C足够远，以至于A无法探测到C的信号，但A和C都可以和B通信，这会导致潜在的碰撞可能，称为隐蔽站问题。
802.11无线局域网的MAC层分为分布协调功能层（DCF）和点协调功能层（PCF）。 DCF层在每一个节点使用CSMA机制的分布式接入算法，让每个站点争用信道。所有的802.11无线局域网实现都必须要有此层。而PCF层是可选层，它用接入点AP集中控制基本服务集（BSS），使用类似探询的办法来依次将发送数据的权利交给各个站点，它提供无争用服务。
802.11局域网规定所有站点发送完成之后，必须等待一段很短的时间（帧间隔，IFS）才可以发送下一帧。帧间隔的长度取决于帧的类型，高优先级的帧等待时间短，低优先级的长。若低优先级帧未来得及发送，而其他站的高优先级帧已经发送，则媒体变为忙态，低优先级帧推迟发送。帧间隔分为短帧间间隔（SIFS）和分布协调功能帧间间隔（DIFS）。SIFS是最短的帧间间隔。使用该类型间隔的帧有ACK帧、CTS帧、由过长的MAC帧分片得到的帧、回答AP探询的帧以及在PCF方式中AP发射的帧。DIFS的长度比SIFS长。它用来发送DCF方式下的数据帧和管理帧。
CSMA/CA协议.
与CSMA/CD相似，将要发送数据的站点检测信道，当源站发送其首个MAC帧时，若检测到信道空闲则等待间隔DIFS后发送，这是为了让其他站优先发送高优先级帧。若无高优先级帧发送，源站发送了自己的数据帧，若目的站正确接收，则经过SIFS后向源站发送确认帧ACK。若源站未在重传计时器满时接收到ACK，则重传该帧直到收到确认为止。
发送数据的源站会将占用信道的时间通知给其他站点（包括目的站发回确认帧所需的时间），以使其他站点在这段时间内停止发送数据。这叫虚拟载波监听（Virtual Carrier Sense）。这是通过源站在下面提到的数据帧的第二个字段“持续时间”内填入本帧结束后还会占用信道的时间来实现的。每当某站检测到信道中正在传输的MAC帧首部的持续时间字段时，会调整自己的网络分配向量NAV（Network Allocation Vector），其指出了完成数据帧的本次传输必需的时间。
当信道由忙态转为空闲时，任何站发送非首个数据帧时，不仅需要等待间隔DIFS，还要进入争用窗口，计算随机退避时间，这与CSMA/CD协议是不同的。802.11无线局域网也使用截断二进制指数退避算法，但是第i次退避要在22+i个时隙中随机选择一个。时隙选择完成后要根据其设置一个退避计时器，若计时器的值降至零，则发送数据。若信道在此过程中再度进入忙态，则计时器数值冻结，到信道再度空闲再等待一个DIFS间隔后，从冻结时的数值开始继续计时，这是为了使得继续启动退避计时器的站及时接入信道。
802.11无线局域网MAC帧.
802.11帧有三种类型：控制帧、数据帧、管理帧。其格式如下（按照发送顺序）：
802.11数据帧的地址.
802.11数据帧有四个地址字段。地址4用于自组网络，在有基础设施的网络中不使用。而前三个地址的内容取决于帧控制字段中的“去往DS”和“来自DS”子字段。DS指的是分配系统。
两个站点A和B之间通信，需要经过AP转发。基本服务集标识符（BSSID）是一个48位地址，与以太网MAC地址类似，其最高字节的最低位为0，次低位为1，其余46位通过算法产生，确保无重复，可以视作AP的地址。站点A向AP发送数据，“去往DS”和“来自DS”子字段分别设置为1和0。地址1是基本服务集标识符（接收地址），地址2是A的地址（源地址），地址3是B的地址（目的地址）。AP将数据转发给B，“去往DS”和“来自DS”子字段分别设置为0和1。地址1是B的地址（目的地址），地址2是基本服务集标识符（发送地址），地址3是A的地址（源地址）。
现在考虑另一种情况：来自其他网络的数据报发往无线局域网上的移动站C。网络层数据报经由路由器转发，路由器在网络层数据报首部提取C的IP地址，通过ARP协议得知C的MAC地址，于是路由器将数据报封装为以太网MAC帧。以太网帧通过有线信道到达AP。AP将C的MAC地址（目的地址）和路由器转发该数据报的端口的MAC地址（源地址）提取出来，加入AP地址，并重新封装成802.11无线局域网帧。此时“去往DS”和“来自DS”子字段分别设置为0和1。地址1是C的地址（目的地址），地址2是基本服务集标识符（发送地址），地址3是路由器转发该数据报的端口的MAC地址（源地址）。
同样地，C要发送数据到其他网络，先发送802.11无线局域网帧到AP。地址1是基本服务集标识符（接收地址），地址2是C的地址（源地址），地址3是路由器转发端口的地址（目的地址）。AP提取出路由器转发该数据报的端口的MAC地址（目的地址）和C的MAC地址（源地址），转换为以太网帧，通过有线信道送至路由器的转发端口。
蜂窝移动网络的媒体接入控制.
蜂窝网络的MAC层是其空中接口的一部分，为无线链路控制层提供服务。它不需要利用MAC地址，它通过无线临时标识（RNTI） 和逻辑信道映射区分用户。MAC层将多个逻辑信道（如同时有控制信令和用户数据）的数据复用到同一个传输信道块（TB）里发送，并在接收端正确解复用。这是通过MAC PDU中的C/T字段（UMTS网络）或者LCID字段（LTE以及更新的网络）实现的。MAC层通过调度机制为双向通信分配资源，并通过HARQ机制管理重传。
UMTS网络（即WCDMA，TD-SCDMA是其变种）的MAC层分为四个实体：
LTE网络和5G NR网络的MAC层对此进行了简化，不再延续UMTS的多实体划分，而是通过统一MAC实体整合功能。
MAC层完成逻辑信道与传输信道之间的映射，而传输信道与物理信道之间映射的工作由物理层实现，UMTS网络的映射关系如下：
LTE网络和5G NR网络的映射关系如下：
上面忽略了映射的方向问题。实际上映射的方向与数据的传输方向有关：接收数据的一侧按照物理信道→传输信道→逻辑信道的方向映射，发送数据的一侧按照逻辑信道→传输信道→物理信道的方向映射。
MAC报头.
MAC层将来自RLC层的SDU（服务数据单元）加上MAC报头，构成MAC PDU（协议数据单元）。需要注意的是UMTS网络发展时间较早，其MAC报头结构与现在流行的LTE/LTE-A网络和5G NR网络有较大的差异。
UMTS网络的MAC报头.
对于UMTS网络，不同信道映射下的MAC报头包含不同的字段。非HS-DSCH的MAC PDU可能包含的字段有：目标信道类型（TCTF）、C/T、UE-Id和UE-Id类型。HS-DSCH的MAC PDU分为两种：MAC-d PDU和HS-DSCH MAC PDU。MAC-d PDU的格式与非HS-DSCH的MAC PDU的相同；而HS-DSCH MAC PDU包含了一个或多个MAC-hs报头以及一个或多个MAC-hs SDU。MAC-hs SDU相当于一个MAC-d PDU。
TCTF域在多种逻辑信道映射到同一传输信道时使用，它标识了FACH和RACH传输信道传输的逻辑信道的类型，以便于接收端的MAC将SDU传送到合适的逻辑信道。C/T域在多个同类型的逻辑信道映射到同一传输信道时使用，它提供了同一传输信道（不包括HS-DSCH）上或者同一MAC-d流上的诸逻辑信道之区分标识。UE-Id用于在公用信道上区别不同的UE，其中包含的是RNTI。UE-Id类型用于标识UE-Id的类型。
LTE/5G NR网络的MAC报头.
对于LTE网络和5G NR网络，MAC协议的全局报头由一组报头单元组成，每个单元都与RLC帧或控制元件有关。对于LTE网络，报头单元连续排列，位于首部，RLC帧或控制元件的连接顺序与报头单元的顺序对应。而与控制元件相关的单元应位于与RLC帧相关的单元前。而对于5G NR网络，由于采用了sub-PDU，报头单元不再连续排列在首部，而是排列在对应的RLC帧或控制元件前。
LTE/5G NR的MAC PDU可能包括以下字段:
典型的LTE/LTE-A MAC报头可以有以下格式：
典型的5G NR MAC报头可以有以下格式:
值得注意的是，LTE/LTE-A网络的上行和下行链路MAC PDU格式相同，控制元件排在MAC SDU前。而5G NR网络下行链路中，控制元件所在sub-PDU的置于MAC SDU所在sub-PDU前；上行链路中，控制元件所在sub-PDU的置于MAC SDU所在sub-PDU后。
MAC控制元件.
LTE/LTE-A以及5G NR网络的MAC帧包含若干控制元件，主要类型如下：