【计算机网络】媒介访问控制子层(MAC)(一)概念理解

346 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第19天,点击查看活动详情

媒介访问控制子层(MAC):决定了谁能在信道上继续执行

注意:多路访问控制协议都无法保证传输的可靠性

相关背景知识及概念

  • 网络连接分为两类,一类是端到端连接(在物理层一章详细介绍了,我后面再整理),一类是通过广播信道,其中的一个关键问题是当存在竞争时,谁能获得信道的使用权。 本文中提到的一些协议用于解决该问题。
  • 广播信道的访问方式也分两种。一种是随机访问,一种是多路访问(存在竞争)。MAC属于多路访问的范畴。
  • 局域网(LAN)是一个广播信道,因此MAC层显得很重要;而在广域网(WAN)中,除卫星通信外多用端到端连接。

信道分配问题

信道是什么?

信道是一个抽象的逻辑概念,它实际的物理介质可以有多种形式。比如:无线频谱、有线网络里面的单根线、光纤等等。

静态信道分配

  • FDM(frequency division multiplexing) 按照使用者的数量N将带宽均分为N份
  • 缺点:
    • 当用户量变大时,每个用户能分到的带宽很小;
    • 当用户数量超过最大能分的数量时,有的用户会被挤出去(拒绝访问)
    • 用户不用时这部分资源也被独占,无法释放,造成浪费。
  • 用途:比如telephone trunk (其实关于这一点我是有切身体会的,我个人觉得真不仅是电话线,从某一个时段来看,这种思想依然是成立的。比如社团有人拉了宽带,少人连接的时候每个人都用得很流畅,多人用的时候速度真的一言难尽;再比如,我经常无法连接学校的校园网,属于是被挤掉的那个)

有如下公式: T=1/(μCλ)T=1/(μC-λ)

其中,T表示平均延迟时间,C是信道容量,1/μ是帧的平均长度,服务率就是大除以小,即μC,设平均到达率为λ。

帧在信道中的示意图.png

如果将单一信道分为N份,套用加对以上公式进行变形,即可得到:

T(N)=NTT(N)=NT

动态信道分配

前提是假设满足如下条件:

  • 交通独立。有N个独立的基站,并且对于单个基站而言,在一帧被成功传输前它不会发送新的帧。
  • 所有基站都在使用同一个信道(核心)。(各个基站理论上是可以均分信道资源的,不过在具体协议中会有所调整)
  • 冲突是可以被检测的。(基础)
  • 时间是持续的或者插槽式的
    • 时间是连续的:任意一个时刻都可以开始帧的发送
    • 时间片也可以被分为多个独立的整体,称为插槽(slot),在这种情况下,帧的传输必须在插槽开始的位置。 (这需要所有基站进行同步)
    • 插槽含有的帧数为0,说明是空槽;1,说明成功传输;多帧,说明存在冲突
  • 分是否含载波监听两种情况。 (载波监听机制也会有自己的问题,后续会详细说)

ALOHA(世界最早的无线电计算机通信网)(了解即可)

分纯正的和带插槽的两种。前者时间是连续的,后者时间被划分为一块块插槽。

带插槽的信道利用率最多可达1/e1/e

Carrier Sense Multiple Access Protocols(载波监听与多路访问)

目前以太网使用的是:CSMA/CD(多了个collision detection,冲突监测)

按照检测信道是否空闲的报文持续发送的程度(persistent),可将CSMA大致分成以下几种类型(实际上还不止,详见原书图4-4,只是这几种最有代表性)

  • persistent CSMA(一直等)
  • non-persistent CSMA(不总是等)
  • p-persistent CSMA(按概率来等)

以下将以小明等公交以及坐公交为例,详细解释这三种情况以及后续的CD模型。

  • persistent CSMA:小明一直在车站等公交,一直抬头张望(监听信道是否空闲);要是等到了就上车,等不到就继续等。
  • non-persistent CSMA:小明等公交并不是特别着急,如果能等到就上,等不到就去隔壁小卖部先坐会儿吹吹水(时长不定),过会儿再去看看车来了没有。
  • p-persistent CSMA:小明比较任性,在有了去隔壁小卖部吹水的习惯的前提下,他手握一枚硬币,即使公交来了他也不着急上车,而是先抛抛硬币,只有是正面(概率为p)他才上车。
  • with Collision Detection:小明终于上了车,只有稳稳坐在座位上他才能更好地敲代码完成老板的任务,但是车上座位只有一个(别质疑,先相信),如果有人也想坐这个位子,他会先站起来等一等,发现没人坐再坐回去。

不过这种情况下会存在问题,比如小军想坐这个位子,他也想着先等一会儿,没人了他再坐,如果他们两个同时开始等待又同时结束等待的话,实际上相当于中间那段时间信道处于空闲状态、而之后又产生新的冲突。

参考书籍

  • 《Computer Networks (the fifth edition) 》