介质访问控制(medium access control)简称MAC。 是解决当局域网中共用信道的使用产生竞争时,如何分配信道的使用权问题。
它定义了数据帧怎样在介质上进行传输。在共享同一个带宽的链路中,对连接介质的访问是“先来先服务”的。物理寻址在此处被定义,逻辑拓扑(信号通过物理拓扑的路径)也在此处被定义。线路控制、出错通知(不纠正)、帧的传递顺序和可选择的流量控制也在这一子层实现。
简介局域网的数据链路层分为逻辑链路层LLC和介质访问控制MAC两个子层。
逻辑链路控制(Logical Link Control或简称LLC)是局域网中数据链路层的上层部分,IEEE 802.2中定义了逻辑链路控制协议。用户的数据链路服务通过LLC子层为网络层提供统一的接口。在LLC子层下面是MAC子层。
**MAC(medium access control)属于LLC(**Logical Link Control)****下的一个子层。局域网中广泛采用的两种介质访问控制方法,分别是:
1、争用型介质访问控制,又称随机型的介质访问控制协议,如CSMA/CD方式。
2、确定型介质访问控制,又称有序的访问控制协议,如Token(令牌)方式。
CSMA/CD工作原理在CSMA中,由于信道传播时延的存在,即使通信双方的站点都没有侦听到载波信号,在发送数据时仍可能会发生冲突,因为他们可能会在检测到介质空闲时同时发送数据,致使冲突发生。尽管CSMA可以发现冲突,但它并没有先知的冲突检测和阻止功能,致使冲突发生频繁。
一种CSMA的改进方案是使发送站点在传输过程中仍继续侦听介质,以检测是否存在冲突。如果两个站点都在某一时间检测到信道是空闲的,并且同时开始传送数据,则它们几乎立刻就会检测到有冲突发生。如果发生冲突,信道上可以检测到超过发送站点本身发送的载波信号幅度的电磁波,由此判断出冲突的存在。一旦检测到冲突,发送站点就立即停止发送,并向总线上发一串阻塞信号,用以通知总线上通信的对方站点,快速地终止被破坏的帧,可以节省时间和带宽。这种方案就是本节要介绍的CSMA/CD(Carrier Sense Multiple Access with Collision Detection,载波侦听多路访问/冲突检测协议),已广泛应用于局域网中。
所谓载波侦听(Carrier Sense),意思是网络上各个工作站在发送数据前都要确认总线上有没有数据传输。若有数据传输(称总线为忙),则不发送数据;若无数据传输(称总线为空),立即发送准备好的数据。
所谓多路访问(Multiple Access),意思是网络上所有工作站收发数据共同使用同一条总线,且发送数据是广播式的。
所谓冲突(Collision),意思是若网上有两个或两个以上工作站同时发送数据,在总线上就会产生信号的混合,这样哪个工作站都辨别不出真正的数据是什么。这种情况称为数据冲突,又称为碰撞。
为了减少冲突发生后的影响,工作站在发送数据过程中还要不停地检测自己发送的数据,看有没有在传输过程中与其他工作站的数据发生冲突,这就是冲突检测(Collision Detected)。
1、CSMA/CD冲突检测原理
CSMA/CD是标准以太网、快速以太网和千兆以太网中统一采用的介质争用处理协议(但在万兆以太网中,由于采用的是全双工通信,所以不再采用这一协议)。之所以称之为"载波侦听"("载波"就是承载信号的电磁波),而不是称之为"介质侦听",那是因为如果介质上正在有载波存在,则证明介质处于忙的状态(因为信号或者数据不是直接传输的,而是通过电磁载波进行的);如果没有载波存在,则介质是空闲状态。也就是通过载波的检测,可以得知介质的状态,而不能直接来侦听介质本身得出其空闲状态。
【说明】其实这里侦听的应该是"信道",而不是"介质"本身,因为在一条传输介质中,可能包含有多条信道,用于不同的传输链路。
前面说了,CSMA/CD相对CSMA来说的进步就是具有冲突检测功能,随之问题就来了,CSMA/CD是如何检测冲突呢?
CSMA/CD的工作原理可以用以下几句话来概括:
先听后说,边听边说。
一旦冲突,立即停说。
等待时机,然后再说。
这里的"听"即监听、检测之意;"说"即发送数据之意。具体的检测原理描述如下:
(1)当一个站点想要发送数据的时候,它检测网络查看是否有其他站点正在传输,即侦听信道是否空闲。
(2)如果信道忙,则等待,直到信道空闲;如果信道空闲,站点就准备好要发送的数据。
(3)在发送数据的同时,站点继续侦听网络,确信没有其他站点在同时传输数据才继续传输数据。因为有可能两个或多个站点都同时检测到网络空闲然后几乎在同一时刻开始传输数据。如果两个或多个站点同时发送数据,就会产生冲突。若无冲突则继续发送,直到发完全部数据。
(4)若有冲突,则立即停止发送数据,但是要发送一个加强冲突的JAM(阻塞)信号,以便使网络上所有工作站都知道网上发生了冲突,然后,等待一个预定的随机时间,且在总线为空闲时,再重新发送未发完的数据。
CSMA/CD控制方式的优点是:原理比较简单,技术上易实现,网络中各工作站处于平等地位,不需集中控制,不提供优先级控制。但在网络负载增大时,发送时间增长,发送效率急剧下降
2、令牌访问控制工作原理
令牌访问控制方法可分为令牌环访问控制和令牌总线访问控制两类。已较少采用令牌总线访问控制。
应用不管是在传统的有线局域网(LAN)中还是在流行的无线局域网(WLAN)中,MAC协议都被广泛地应用。在传统局域网中,各种传输介质的物理层对应到相应的MAC层,普遍使用的网络采用的是IEEE802.3的MAC层标准,采用CSMA/CD访问控制方式;而在无线局域网中,MAC所对应的标准为IEEE802.11,其工作方式采用DCF(分布控制)和PCF(中心控制)1。
令牌环介质访问控制IEEE 802.5令牌环介质访问控制使用一个令牌沿着环循环,且应确保令牌在环中为唯一的。令牌环工作原理:
网上站点要求发送帧,必须等待空令牌。
当获取空令牌,则将它改为忙令牌,后随数据帧;环内其它站点不能发送数据。
环上站点接收、移位数据,并进行检测。如果与本站地址相同,则同时接收数据,接收完成后,设置相应标记。
该帧在环上循环一周后,回到发送站,发送站检测相应标记后,将此帧移去。
将忙令牌改成空令牌,继续传送,供后续站发送帧。 环的长度用位计算:
由于电磁波的传播速度有限,传输介质中可能同时存在多个数据位。
环上每个中继器引入至少 1 bit 延迟
环上保留的位数:
传播延迟(us /km)×介质长度×数据速率 + 中继器延迟
例:介质长度 L = 1 km ,数据速率 C = 4 Mbit/s ,站点数 N = 50。
解:传播延迟 tp = L / v
v = 2 ×105km / s tp = 5 us 环上保留的位数 = 5 × 1 ×4 + 50 = 70 bit2
令牌环MAC帧结构IEEE 802.5 MAC帧格式令牌和数据帧的管理:
如何防止数据帧在环上无休止循环?
设置监控器
在帧结构上留一标识
如何监测令牌出错?
无令牌
多个令牌
忙令牌死循环
集中式检测:
设置集中监控站(超时计数器)/标记丢失
在帧结构上检测忙标记标识/ 死循环
分布式检测:
每站设置定时器:当站有数据要发且等待标记的时间超限 /标记丢失
令牌控制协议拓扑结构: 工作原理: Token Bus 在物理总系线上建立逻辑环。
逻辑环上,令牌是站点可以发送数据的必要条件。
令牌在逻辑环中按地址的递减顺序传送到下一站点。
从物理上看,含DA的令牌帧广播到BUS上,所有站点按DA = 本站地址判断收否。
特点: 无冲突,令牌环的信息帧长度可按需而定。
顺序接收Fairness (公平性),站点等待Token的时间是确知的。
(需限定每个站发送帧的最大值)。
因检测冲突需要填充信息位(不允许小于46字节)。
介质访问控制技术介质访问子层的中心论题是相互竞争的用户之间如何分配一个单独的广播信道。
1、静态分配:只要一个用户得到了信道就不会和别的用户冲突。(用户数据流量具有突发性和间歇性) 。
2、动态分配:称为多路访问或多点接入,指多个用户共用一条线路,而信道并非是在用户通信时固定分配给用户,这样的系统又称为竞争系统。动态分配方法又可以分为:随机访问,典型ALOHA协议、CSMA协议 ;受控访问,典型令牌网竞争系统和集中控制的多点线路轮询。
3、信道动态分配中的5个关键假设。
站模型:站独立,以恒定速率产生帧,每个站只有一个程序。
单信道假设(核心)
冲突假设:两个帧同时传送,就会冲突,所有站点能检测到,冲突帧需重发
发送时间:1.连续时间;2.时隙。
载波检测:1.有载波侦听;2.无载波侦听3。
本词条内容贡献者为:
孔祥杰 - 副教授 - 大连理工大学软件学院