介质访问子层 Medium Control Layer

介质访问子层 Medium Control Layer

网络可以分为两大类:使用点对点连接和使用广播信道(同轴电缆,集线器,etc)的网络,在任何一个广播信道的网络中,主要的问题是:当存在多方竞争使用信道的时候,如何确认谁使用信道。比如电话会议,有可能会有多个人同时发言。在广播信道上确认下一个使用者的协议属于数据链路层的一个子层,称为MAC子层,在LAN(局域网)中,MAC子层显得尤为重要,因为许多LAN使用广播信道作为他的通信基础。相反,在WAN(广域网)中则使用点对点通信(PPP协议),客户端通过点对点链路连接到电信运营商网络。

IEEE 802 Standard:

包含Ethernet, Wireless LAN(Wifi), Personal Area Network PAN(Bluetooth), Boardhband Wireless(WiMax)

IEEE 802 Standard 把数据链路层分成LLC(Logical Link Control)和MAC(Medium Access Control)两个子层,LLC子层实现数据链路层与硬件无关的功能,比如流量控制,差错恢复;MAC子层提供LLC和物理层之间的接口。而如今很多厂商生产的适配器上就仅装有MAC协议而没有LLC协议。

 

多路访问协议

ALOHA(pure)

思想很简单,当用户有要传输的数据的时候就让它们传输,当然,这么做可能会造成冲突,帧将被损坏。当检测到送出去的帧被损坏了,发送方就等待一段随机长度的时间,然后再次发送。等待的时间必须是随机的,不然的话就会一直引起冲突,因为发送的节奏相同。

CSMA 载波检测多路访问协议(Carrier Sense Multiple Access):

如果在一个协议中,每个站都监测是否有载波(即传输),并采取相应的行动,那么这样的协议叫做载波监测协议(Carrier Sense Protocols);多点接入(Multiple Access) 表示许多计算机以多点接入的方式连接在一根总线上。

例如 1-persistent CSMA(1-持续 CSMA),当有一个站要发送数据时,它首先监听信道,如果信道在忙,该站会等待直到信道空闲;当信道空闲时,它会发送1帧数据,如果有冲突发送,它会再次检测和发送。再比如非持续CSMA(non-presistent CSMA):它不向持续CSMA那样贪婪,在检测到信道正忙后,它不会一直检测信道,而是等待一段随机时间在进行下一次检测。因此拥有更好的信道利用率但是延迟更长。

持续和非持续CSMA都是对ALOHA的改进,因为这些协议都保证了在信道忙时不传输数据。

CSMA/CD 带冲突检测的CSMA(Carrier Sense Multiple Access with Collision Detection)

另一种改进的方法是,当检测到冲突时,立即终止数据传输,快速终止损坏的帧可以节省时间和带宽。CSMA/CD广泛应用与LAN中的MAC子层,特别是以太网LAN的基础。

在一个站要传输数据时,首先监测信道,如果信道在忙,该站会等待直到信道空闲; 当信道空闲时再开始传输;当一个站在一个征用期时长内检测到冲突之后,它立即放弃它的传送任务,发送噪声信号(jamming),并等待一段随机的时间,然后在重新尝试传输,反之则传输到完成为止。因此,我们的CSMA/CD模型将由3部分组成:交替出现的竞争(contention)和传输(transmission)周期,以及空闲(idle)时期。如下图所示:

传播时延时对CSMA/CD的影响

现在来看一下竞争算法的细节,假定两个站在\(t_0\)时刻同时进行传输,那么它们需要多长时间才能意识到产生冲突了呢?假设两个最远的站之间单程传输信号需要的时间为\(\tau\),在\(\tau – \epsilon\)的时刻发生碰撞冲突,那么这次冲突产生的微小噪声要在\(2\times (\tau – \epsilon)\)的时刻才能返回原站。考虑最坏情况\(\epsilon = 0\),则需要\(2\tau\)时间(争用期)才能意识到发生了冲突。示例如下:

因此,每个站在发送数据之后的一小段时间内,还有遭遇碰撞的可能,对于10Mbps的以太网,在征用期内可发送64bytes,因此以太网在发送数据时,若前64bytes未发生冲突,则后续的数据就不会发生冲突。因此以太网规定了最短有效帧长度为64bytes。注意,当传输速率提高时,征用期内可发送当数据量也会增加,因此也应当增加最短有效帧长度。

二进制指数类型退避算法(binary exponential back-of)

发生碰撞的站在停止发送数据后,要推迟一段随机时间才能再次发送数据。基本的退避时间一般取为争用期\(2\tau\);定义参数\(k= Min(重传次数,10))\)(10为IEEE 802.3 backoff limit),我们在整数集合\([0,1,…,(2^{k}-1)]\)随机取出一个数R,重传所需的时延就是R倍的基本退避时间\(R\times 2\tau\)。当重传16次仍不成功时丢弃改帧,并向上层报告。以太网工作流程如下:

以太网 Ethernet

我们可以粗略地称,满足CSMA/CD协议的都是以太网。以太网满足IEEE802.3标准,又被分为MAC和LLC两个子层。

以太网提供的服务是不可靠的服务,即尽最大努力的交付。当接收站收到又差错的数据帧时就丢掉此帧,其他什么也不做,差错纠正由高层(传输层)来决定。

以太网信道利用率

假设对于某一个站获得信道的概率为\(A\),传输一帧的平均时间为P秒,争用期为\(2\tau\),那么平均争用期为\(\frac{2\tau}{A}\),信道利用率\(C_{E} = \frac{P}{P + \frac{2\tau}{A}}\)。这里我们可以看出,电缆的长度也会影响信道利用率,电缆越长,争用期越长,导致信道利用率降低。

如果设帧的长度为F bits,网络带宽为B bps,电缆长度为L m以及信号传播速度 c m/s,那么信道利用率为\(C_{E} = \frac{P}{P + \frac{2\tau}{A}} = \frac{\frac{F}{B}}{\frac{F}{B}+\frac{2\frac{L}{C}}{A}} = \frac{1}{1+\frac{2LB}{ACF}}\)可以看出,在帧长度一定的情况下,增加带宽或电缆长度会降低信道利用率,this explains why Ethernet is not suitable for high bandwidth applications over long distances (such as MANs).

网桥 Bridge

网桥是一种对帧进行转发的技术,根据MAC地址分区块,可隔离碰撞域(Collision Domain),即当网桥收到一个帧时,并不是向所有当接口转发此帧,而是线检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口。网桥将网络的多个网段在数据链路层连接起来。如下图,H1与H2通信的同时H3也可与H4通信,因为它们是不同的独立碰撞域。

交换式以太网 Switched Ethernet

交换式以太网是以交换式集线器(switching hub)或交换机(switch)为中心构成,是一种星型拓扑结构的网络。交换机的前身即是网桥,它同样有根据MAC地址隔离碰撞域的功能,并且一些交换机还有缓存帧的功能(buffering),例如上图中H1和H3都向和H2通信,那么交换机就将正在排队的帧进行缓存,等待合适的时机发送。