Waylon Wang

计算机网络-MAC层

有 N 人看过

MAC全称

MAC: Medium Access Control 介质访问控制

MAC layer是data link layer的一个子层,处于数据链路层底部

本章的主题是如何在竞争用户之间分配单个广播信道

Why is MAC Sublayer Needed?

用来确定多路访问信道下一个使用者。

信道分配问题 Channel Allocation

  • LANs和MANs中静态信道分配 Static Channel Allocation

    可以用FDM频分复用和TDM时分复用

  • LANs和MANs中动态信道分配 Dynamic

    1. 静态模型
    2. 单信道假设
    3. 冲突假设
    4. 帧传输时间:时间连续或分槽
    5. 波载侦听或不听

多路访问协议 Multiple Access Protocols

  • ALOHA

    有两个版本:Pure ALOHA和Slotted ALOHA 纯和分槽

    区别是Pure版本时间是连续的,slotted版本时间是分成离散槽的,所有帧都要同步到时间槽中

    1. Pure ALOHA
      • 用户有数据需要发送时就传输
      • 由于广播的反馈属性,发送着可以在监听信道时一直知道帧是否被破坏
      • 如果帧损坏,发送方会等待随机时间然后再次发送
      • 在Pure ALOHA中帧的发送次序是任意的,所以无论何时两个帧同时占用信道,冲突就会发生,两个帧都会彻底损坏,稍后都要重传
    2. Slotted ALOHA
      • 能将ALOHA系统容量增加一倍
      • 将时间分成离散的间隔,称为时间槽
      • 分槽ALOHA不允许用户一有消息就立即发送,要等下一个时间槽开始的时候发送上一时间槽的帧
  • 载波侦听多路访问协议 Carrier Sense Multiple Access Protocols CSMA

    如果在一个协议中,站监听是否存在载波(即是否有传输),并据此采取相应的动作,这样的协议称为 载波侦听协议

    1. 1-坚持载波检测多路访问 1-persistent CSMA

      最简单的CSMA方案

      • 如果信道忙,则等待空闲
      • 站发现空闲时,它传输数据概率为1
      • 如果第一个站的信号还没有到达第二个站,第二个站将会sense空闲信道然后必然开始发送信号,这会导致冲突
    2. 非坚持CSMA nonpersistent CSMA

      • 和1-坚持一样发送前先侦听信道
      • 发现channel正在被使用的时候,站不会持续监听信道,以便于在上一个传输结束的时候立马传输数据
      • 这样的算法会导致更大的延迟
    3. p-坚持CSMA p-persistent CSMA

      • 当站准备好发送时,它就侦听信道。如果信道空闲(idle),则按概率p发送数据 (这就是n-坚持的概念,1-坚持就是概率为1)
      • 剩下的概率q=1-p,将以这个概率将发送推迟到下一个slot

    上面三种是坚持和非坚持CSMA

    1. 带冲突检测的CSMA CSMA/CD

      CSMA with Collision Detection

    是经典以太局域网的基础

    • 这里的冲突检测是一个模拟过程
    • 当站检测到冲突时立即抛弃他们的传输
    • 快速终止损坏的帧节省了时间和带宽
    • 被广泛使用在MAC子层中的LANs
    1. 带冲突避免的CSMA CSMA/CA

      CSMA with Collision Avoidance

      检测到冲突时立即停止传输数据

Ethernet 以太网

以太网有两类:

  1. 经典以太网 classic Ethernet 运用1-坚持CSMA/CD

  2. 交换式以太网 switched Ethernet


  • 经典以太网MAC子层协议

    二进制指数后退算法binary exponential back off algorithm

    一般的,在第i次冲突之后,从0~2^i-1之间随机选择一个数,然后等待这么多个时间槽,然而10次collision之后随机数选择区间被固定在最大值1023,不再增加。16次collision之后放弃努力,并传回一个失败报告,由高层协议去完成恢复工作。

  • 交换式以太网 switched Ethernet

    核心是一个 交换机(switch),交换机只把帧输出到想去的端口,且在交换机中,每个端口都有自己独立的冲突域(collision domain)

  • 以太网帧的格式

Preamble:前导码,包含比特模式10101010(除了最后一个字节的最后两位是11,即10101011)
  • 采用 网桥bridge 把多个局域网联结起来组成更大的局域网 ,可以处理更多容量的数据 ❗上面的那个交换机是网桥的现代名称,so bridge==switch

  • 可以用bridge把802.x协议转为802.y协议

  • 可以用bridge把多个LANs联结起来

                         *两个桥 4个LANs*
    
  • 生成树网桥 Spinning Tree Bridges

    为了提高可靠性,可以在网桥之间设置冗余链路,确保一条宕机后还是连在一起可以通信的,这会形成2条平行链路↓

    然后要发送帧bridge就会把这个帧的副本发到其他所有的其他端口,端口也不知道这些帧是副本,把这些副本都当成不同的来处理转发给其他端口,这会导致陷入死循环。

    这个问题的解决方法是变成一棵生成🌳,只有唯一的路可以走,不会出现环路。

  • 中继器/集线器/网桥/交换机/路由器/网关

    Repeaters, Hubs, Bridges, Switches, Routers, Gateways

    每个玩意儿在哪个层?

  • 虚拟局域网 Virtual LANs

    Why VLANs?

    VLANs可以使得物理拓扑结构划分为不同的逻辑拓扑结构