介质访问控制 (Medium Access Control, MAC)
为什么需要介质访问控制?
想象一下,很多人在同一个房间里开会,但只有一支麦克风。如果大家想说就说,不遵守任何规则,那肯定会乱作一团,谁也听不清谁在说什么。这种情况在计算机网络里,就叫做“冲突 (Collision)”。
在很多网络(尤其是早期的局域网)中,多台计算机共享同一条物理通信线路(比如一根同轴电缆或一个集线器连接的网络),这条共享的线路就叫共享信道 (Shared Channel) 或广播信道 (Broadcast Channel) 。当两台或更多的设备同时在共享信道上发送数据时,它们的信号就会在信道上相互干扰,导致数据被破坏,这就是冲突。
为了解决这个问题,我们就需要一套规则来协调大家如何使用这支“麦克风”(共享信道)。这套规则,就是介质访问控制 (MAC) 协议。它的核心任务是:决定在广播信道中,下一个时刻由哪一个节点获得信道的使用权 。
MAC协议的功能是在数据链路层中一个专门的子层——MAC子层——来实现的。
介质访问控制协议的分类
这些“规则”大体上可以分为三类:
-
竞争协议 (Contention Protocols):也叫随机接入协议。规则是“先到先得,发生冲突再解决”。就像开会时,谁想发言就直接说,如果发现和别人同时说了(冲突),那就都停下来,各自等一个随机时间再尝试发言。以太网使用的CSMA/CD就属于这一类。这类协议在网络负载较轻时,延迟低,效率高。
-
无冲突协议 (Collision-Free Protocols):规则是“轮流发言,保证不冲突”。例如,依次传递一个叫“令牌 (Token)”的信物,只有拿到令牌的设备才能发言。这种方式可以确保任何时候只有一个设备在发送数据,但缺点是即使只有一个设备想发言,它也必须等到轮到自己时才能说,所以在网络负载轻的时候效率不高 。
-
有限竞争协议 (Limited-Contention Protocols):这是上述两种协议的混合体,试图在低负载时获得低延迟,在高负载时获得高效率 。
以太网访问控制:CSMA/CD 协议
以太网是目前应用最广泛的局域网技术。在共享信道的以太网中(例如使用集线器连接的网络),它采用的介质访问控制协议就是带冲突检测的载波侦听多路访问 (Carrier Sense Multiple Access with Collision Detection, CSMA/CD) 。
我们可以把这个长长的名字拆解成三部分来理解:
1. 载波侦听 (Carrier Sense, CS)
这是指“先听再说”。网络中的每个设备在发送数据前,都会先“听”一下共享信道上有没有其他设备在传输数据(通过检测信道上的电压)。
- 如果信道空闲:设备就准备发送数据。
- 如果信道忙碌:设备就继续等待,直到信道变为空闲。
这样做可以大大降低冲突的概率。但仅仅“先听再说”还不够,因为电信号在介质上传播是需要时间的,这个时间叫做传播时延 (Propagation Delay)。
2. 多路访问 (Multiple Access, MA)
这指的是多台计算机设备共同连接在同一个共享介质上,它们都有访问和使用这个信道的权利。
3. 冲突检测 (Collision Detection, CD)
这是指“边说边听,一旦冲突,立即停止”。
由于传播时延的存在,即使一个设备在发送前侦听到信道是空闲的,也可能在它发送数据的过程中,另一台远处的设备也恰好侦听到信道空闲并开始发送数据,从而导致冲突。
为了解决这个问题,CSMA/CD要求设备一边发送数据,一边持续侦听信道。如果在发送过程中,设备检测到信道上的信号能量变得异常(比自己发送的信号能量大得多),它就知道发生了冲突。
一旦检测到冲突,设备会立即执行以下三步:
- 停止发送数据。
- 发送一个特殊的“阻塞信号 (Jamming Signal)”,这是一个短促的信号,目的是让网络上所有的设备都知道这里发生了冲突。
- 执行“二进制指数退避算法”来决定等待多久后再重新尝试发送。
CSMA/CD 协议的关键知识点(考试重点)
1. 争用期 (Contention Period)
这是CSMA/CD协议中一个至关重要的概念。争用期是指从设备开始发送数据,到它可能检测到冲突所经过的最长时间。这个时间等于信号在网络中任意两点之间往返一次的传播时延 (2τ2\tau2τ)。
- 为什么是2τ2\tau2τ? 考虑网络中最远的两台设备A和B。A发送数据,信号传播到B需要一个传播时延τ\tauτ。假设在A的信号到达B的前一瞬间,B也侦听到信道空闲并开始发送,此时冲突发生。B检测到冲突后,冲突的信号再传回A,又需要一个传播时延τ\tauτ。所以,A最多需要2τ2\tau2τ的时间才能确定自己发送的数据有没有和别人冲突。
- 争用期的意义:如果一个设备在争用期内没有检测到冲突,那么它就可以确定这次发送不会再发生冲突了,可以安心地把剩下的数据发送完毕。在10Mbps的以太网中,争用期通常被定为51.2μs\mu sμs。
2. 最短帧长 (Minimum Frame Size)
为了确保在数据发送完毕前能够检测到可能发生的任何冲突,数据帧的发送时间必须不小于争用期 (2τ2τ2τ)。
发送时间 = 帧长 (bit) / 数据传输速率 (bps)
所以,这就导出了以太网帧的最短长度限制:
Lmin=2×τ×RL_{min} = 2 \times \tau \times RLmin

最低0.47元/天 解锁文章
995

被折叠的 条评论
为什么被折叠?



