Skip to content

Latest commit

 

History

History
364 lines (251 loc) · 11.3 KB

File metadata and controls

364 lines (251 loc) · 11.3 KB

CH6-2

链路访问

  • 有两种类型的 “链路”:
  • 点对点:专用的两两通信链路
  • 例如:长途光纤链路
  • 例如:以太网交换机与主机之间的点对点链路
  • 广播:共享线路或介质
  • 传统以太网(约 2000 年前)
  • 802.11 无线局域网

多路访问控制(MAC)(和之前那个不一样)

  • 多路访问链路的特性
  • 单一共享广播信道
  • 节点同时进行两次或多次传输:干扰
  • 冲突:节点在同一时间接收到两个或多个信号
  • 多路访问协议
    • 用于确定节点如何共享信道的分布式算法,即确定节点何时可以传输
    • 关于信道共享的通信必须使用信道本身!
      • 没有用于协调的带外信道

多路访问协议

  • 理想的多路访问协议
  • 给定一个速率为 R 比特 / 秒的广播信道,我们希望:
  1. 当一个节点想要传输时,它能以速率 R 发送数据。
  2. 当 M 个节点想要传输时,每个节点的平均传输速率为 R/M。
  3. 完全去中心化:
    • 没有专门的节点来协调传输
    • 无需时钟或时隙同步
  4. 协议实现简单

处理多路访问

  • 多路访问控制(MAC)

    • 确定节点何时能在共享介质上传输
  • 分为三类:

  • 信道划分

    • 将信道划分为更小的 “部分”(时隙、频率、码)
    • 为节点分配专属使用的部分
  • 轮流传输

    • 节点轮流传输,需发送更多数据的节点可获得更长的传输时间
  • 随机访问

    • 信道不划分,允许冲突发生
    • 对冲突进行协调或恢复

信道划分

基于时分多址(TDMA)的信道划分

  • TDMA:时分多址访问
  • 以 “时隙和轮次” 的方式访问信道
  • 每个站点在每一轮中获得固定长度的时隙(数据包传输时间)
  • 未使用的时隙处于空闲状态
  • 示例:一个 6 站点的局域网中,站点 1、3、4 有数据包要传输,时隙 2、5、6 处于空闲状态

基于频分多址(FDMA)的信道划分

  • FDMA:频分多址访问
  • 信道频谱被划分为多个频段
  • 为每个站点分配固定频段
  • 频段中未使用的传输时间处于空闲状态
  • 示例:一个 6 站点的局域网中,站点 1、3、4 有数据包要传输,频段 2、5、6 处于空闲状态

基于码分多址(CDMA)的信道划分

  • CDMA:码分多址访问
  • 应用于无线广播信道(蜂窝网络、卫星等)
  • 所有节点共享相同频率,但每个节点拥有专属 “码片序列”(即码集)对数据进行编码
  • 编码信号 = (原始数据)×(码片序列)
  • 解码 = 编码信号与码片序列的内积
  • 若码序列 “正交”
  • 多个节点可同时传输且干扰极小


轮流传输

轮询:

  • 主节点 “邀请” 从节点依次传输

  • 通常用于 “哑” 从设备

需关注的问题:

  • 轮询开销

  • 延迟

  • 单点故障(主节点)

  • 例如:蓝牙

令牌传递:

  • 控制令牌按顺序从一个节点传递至下一个节点

  • 令牌用于传输消息

需关注的问题:

  • 令牌开销

  • 延迟

  • 单点故障(令牌)

  • 例如:IBM 令牌环、光纤分布式数据接口(FDDI)


随机访问

随机访问协议

  • 当节点有数据包需要发送时
  • 以全信道数据速率 R 传输
  • 节点之间无需预先协调
  • 两个或多个节点同时传输会导致冲突
  • 随机访问 MAC 协议规定:
    • 如何检测 / 避免冲突
    • 如何从冲突中恢复(例如通过延迟重传)
  • 随机访问 MAC 协议的示例:
    • ALOHA、时隙 ALOHA
    • CSMA、CSMA/CD、CSMA/CA

ALOHA

  • 附加链路在线夏威夷系统

  • 由夏威夷大学为分组无线电网络开发

  • 发送方

    • 当站点有帧时,直接发送
    • 若收到确认(ACK),则正常
      • 若未收到,以概率 p 重传,以概率 (1-p) 等待
  • 若多次重传后仍无确认,则放弃

  • 接收方

    • 使用帧校验序列(如 HDLC 协议)
    • 若帧正确且地址匹配接收方,发送 ACK
  • 帧可能因噪声或冲突损坏

    • 其他站点同时传输
    • 任何帧重叠都会导致冲突

时隙 ALOHA

  • 所有帧大小相同
  • 时间划分为与帧传输时间(T0)相等的统一时隙
  • 节点需同步(需中央时钟或其他同步机制)
  • 传输在时隙边界开始
  • 帧要么完全不重叠,要么完全重叠

工作机制: ❖ 当节点获取新帧时,在下一个时隙传输 ▪ 若无冲突:节点可在下一个时隙发送新帧 ▪ 若发生冲突:节点以概率 p 在后续每个时隙重传该帧,直至成功

节点在后续每个时隙以概率 p 重传该帧,直至成功

CSMA(载波侦听多路访问)

  • Carrier sense multiple access(载波侦听多路访问)
  • CSMA:先听后发
  • 若检测到信道空闲:传输整个帧
  • 若检测到信道繁忙:推迟传输
  • 人类类比:不要打断别人!
  • 无法消除所有冲突
    • 为什么?
    • 提示:传播延迟

CSMA 冲突

  • 传播延迟:两个节点在发送前可能无法听到对方的信号
  • CSMA 减少但不会消除冲突
  • 冲突会导致整个数据包传输时间被浪费
  • 距离和传播延迟会影响冲突发生的概率

非持续 CSMA(非持续载波侦听多路访问)

  • 希望传输的站点执行以下操作:

    • 若介质空闲,立即传输;否则,进入步骤 2

    • 若介质繁忙,等待一段随机时间(延迟)后重复步骤 1

  • 随机延迟可降低冲突概率

    • 两个等待的站点会选择不同的时间开始传输
  • 容量会被浪费,因为传输结束后介质可能保持空闲

    • 即使有一个或多个站点在等待
  • 非持续站点具有谦让性

1 - 坚持 CSMA(1 - 坚持载波侦听多路访问)

  • 为避免信道空闲时间,采用 1 - 坚持协议

  • 希望传输的站点执行以下操作:

    • 若介质空闲,立即传输;否则,进入步骤 2

    • 若介质繁忙,持续监听直至空闲,然后立即传输

  • 1 - 坚持站点具有 “自私性”

    • 若两个或多个站点同时等待,必然发生冲突

p - 坚持 CSMA

  • 尝试做出折中
  • 既如非持续 CSMA 般降低冲突概率
  • 又似 1 - 坚持 CSMA 般减少空闲时间
  • 规则
  1. 若介质空闲,以概率 p 传输,以概率 (1–p) 延迟一个时间单位 通常,时间单位 = 最大传播延迟
  2. 若介质繁忙,持续监听直至空闲,然后重复步骤 1
  3. 若传输延迟了一个时间单位,重复步骤 1 p 的有效值是什么?

p 的取值

  • 目标:在高负载下避免不稳定性
  • 假设:有 N 个站点等待发送
  • 理论上 p 的最佳取值为 1/N
  • 若预期负载较高,p 的取值应较小
  • 然而,p 的取值越小,站点等待的时间越长
  • 总体而言,这会导致延迟时间变得很长


CSMA/CD(冲突检测)

  • 采用 CSMA 时,冲突会占用介质整个传输时长
  • 一旦检测到冲突,冲突的传输会被中止
  • 站点在传输时同时监听
  1. 若介质空闲,立即传输;否则,进入步骤 2
  2. 若介质繁忙,监听至空闲,然后立即传输
  3. 若检测到冲突,发送阻塞信号,然后中止传输
  4. 阻塞信号(jam)发送后,等待随机时间,再从步骤 1 开始
  5. Jam信号是连续几个字节全1的信号,旨在加强冲突,使其他设备易于检测

冲突检测(CD)

  • 在基带总线中,冲突产生的信号电压远高于单个信号
  • 若电缆信号强度大于单个站点的信号,则检测到冲突
  • 信号会随距离衰减
    • 因此需要发送阻塞信号(Jam)
    • (例如)将距离限制为 500 米(10Base5)或 200 米(10Base2)
  • 对于双绞线(星型拓扑),多个端口同时活跃即视为冲突
    • 存在专门的冲突存在信号

为使此机制有效,需要对最小帧长度和最大距离进行限制。

CSMA/CD:最小帧长度

  • B:带宽

  • L:链路长度

  • V:传播速度

  • Size:帧的大小

  • 传播时间:Ta = L /v

  • 一帧的传输时间:Tb = Size / B

  • 冲突检测机制:

  • 在最坏情况下,冲突检测需耗时 2Ta。

    • 最小竞争间隔 = 2Ta
  • 最小帧长度推导:

  • 若帧的传输时间小于 2Ta,则冲突发生时可能无法检测到冲突。

  • 为确保冲突检测,必须满足 Tb ≥ 2Ta

  • 因此 Size / B ≥ 2L /v,最小帧长度为:Size ≥ 2 × L × B /v


随机访问的三个关键思想

  • 载波侦听

    • 先听后说,不打断
    • 检查是否有其他节点已在发送数据
    • … 并等待其他节点完成发送
  • 冲突检测

    • 若其他节点同时开始传输,立即停止
    • 确保所有节点知晓冲突发生!
    • 通过检测线路上数据是否乱码,判断是否存在两节点同时传输的情况
  • 随机性

    • 不立即重传数据
    • 重试前等待一段随机时间
  • 你应该等待多久?

    • 是应该立即(重传)吗?
    • 还是应该采用服从固定分布的随机数(作为等待时间)?

持久性算法

  • IEEE 802.3 采用 1 - 坚持算法
  • 非坚持和 p - 坚持算法均存在性能问题
  • 1- 坚持算法的冲突处理机制:
    • 冲突导致的时间浪费较短
    • 结合随机退避机制,下次尝试时再次冲突的概率较低
    • 采用二进制指数退避算法

二进制指数退避

  • 若多次发生冲突,则尝试重复传输

  • 前 10 次尝试中,随机延迟的平均值翻倍

  • 随后的 6 次尝试中,该值保持不变

  • 16 次尝试均未成功后,站点放弃并报告错误

  • 采用二进制指数退避的 1 - 坚持算法可在大范围负载下保持高效

    • 低负载时,1 - 坚持特性确保效率
    • 高负载时,至少与其他技术一样稳定
  • 退避算法会产生 “后进先出” 效应

    • 冲突较少的站点优先传输

以太网 CSMA/CD 算法

  • 网卡从网络层接收数据报,创建帧

  • 若网卡检测到信道空闲,开始传输帧;若检测到信道繁忙,等待至信道空闲后再传输

  • 若网卡传输完整帧且未检测到其他传输,帧传输完成

  • 若传输过程中检测到其他传输,中止传输并发送阻塞信号

  • 中止后,网卡进入二进制(指数)退避机制:

    • 第 m 次冲突后,网卡从 {0,1,2,…,2ᵐ-1} 中随机选择 K

    • 等待 K・512 比特时间后,返回步骤 2

    • 冲突次数越多,退避间隔越长