数据链路层中的广播信道通信详解

广播信道通信很核心的一点在于多方竞争信道时的冲突如何解决,下面我们在广播信道部分主要讨论这个问题

你们会问,之前不是讲过信道复用的问题嘛,但是呢,那是静态信道分配的方式,他有很大的局限性,我们从数学角度分析一下:

静态信道分配方案的缺陷

信道的相关参数是什么样子?

  • 信道容量:C (bit/s)
  • 平均延迟:T
  • 帧的平均到达率:λ (fr/s) 帧到达时间间隔服从泊松分布 
  • 帧的平均长度:1/μ(bit/fr)帧长度服从泊松分布

此时符合M/M/1排队系统模型

  • M(顾客到达时间间隔分布) 帧的平均到达率(输入率):λ (fr/s)
  • M(服务时间分布) 信道服务率:信道容量/帧的平均长度=μC (fr/s)
  • 1(并列服务台个数) 

信道平均延迟时间 (顾客在服务系统中的逗留时间) :

信道N等分后每个子信道的平均延迟时间:(平均输入率和平均服务率都变成原来的1/N)

我们看出静态信道分配的缺点

  • 当一些用户空闲时,浪费资源
  • 当用户数多时,延时大( N times ) 

适用于

  • 适于用户数量少且用户数目固定情况
  • 适于通信量大且流量稳定情况
  • 不适用于突发性业务情况

 

因此我们考虑

多路接入协议——动态信道分配方案

针对这个方案,我们首先作出以下假设:

  • 流量独立
    • N 个独立的站组成
    • 每个站都有一个程序产生要传输的帧
    • 在长度为t时间内产生的帧数为 λt (λ是新帧的到达率)——泊松分布
    • 一旦一帧产生,站阻塞,直到该帧被成功发送出去。 
  • 单信道
    • 所有通信使用一个信道
    • 所有站点通过该信道发送或接收帧 
  • 冲突可观察  
    • 如果两帧同时传输,则产生重叠,称为冲突
    • 所有的站可以检测到冲突
    • 受损帧必须重传
    • 除了冲突,没有其他差错 
  • 时间连续或分槽
    • 连续:任何时间都可以开始传输帧 
    • 分槽:时间被分成离散的时槽,帧只能在时槽开始时开始传输 
  • 载波侦听或不侦听  发送数据前检测信道是否忙

 

要实现动态的方案我们要做:

多路接入协议( Multiple Access Protocol ),下面我们来介绍实际使用的一些协议

ALOHA 

纯ALOHA协议 

  • 当用户有数据要发送的时候就让它们传输;
  • 会发生冲突;
  • 发送方监听信道,发现毁坏的帧,等待随机时间后重发。 

image.png

我们再从数学角度分析一下:

服从泊松分布

  • 一个帧时内用户产生新帧:均值N个
  • 一个帧时内信道中等待的帧(包括重传):均值G个 

分析

  • 0< N < 1,轻载N接近0,重载N接近1;N>1则几乎每个新帧都冲突
  • G ≥ N,轻载G=N(无冲突),重载G>N(冲突/重传) 

 

(一个帧时内信道中产生k个帧) 

 

只要本帧时和前一帧时内没有发送帧,则发送成功,这段时间称为冲突的危险期

概率为:

此时的吞吐量:

image.png

Slotted(时槽) ALOHA

  • 将时间分成离散的间隔。
  • 用户必须在时槽的开始才能发送数据。
  • 发送方监听信道,发现毁坏的帧,等待随机时间后重发。

提高:

  • 冲突的危险周期被减少了一半
  • 效率:信道利用率最高可达37%. 

image.png

比较:

image.png

评价:

无序竞争,冲突频繁

改进的基本思想----无序变有序,减少冲突

CSMA

Carrier Sense Multiple Access Protocols 

每个站发送之前都监听信道是否存在载波,并采取相应的动作

 

1-Persistent CSMA

  • 发送数据时,首先监听信道
  • 如果信道闲,发送数据(闲时发送概率为1,坚持)
  • 如果信道忙,继续监听,直到信道空闲
  • 若产生冲突,比如
    • 信号传输的延迟造成的冲突  
    • 多个站点在侦听到信道空闲时,同时发送,将产生冲突
  • 等待一随机时间,然后重新开始发送过程。 

减少了信道空闲时间,信道利用率高于ALOHA 

 

Nonpersistent CSMA 

  • 若站点有数据发送,先监听信道;
  • 若站点发现信道空闲,则发送;
  • 若信道忙,等待一随机时间,然后重新开始发送过程; (忙时,不坚持)
  • 若产生冲突,等待一随机时间,然后重新开始发送过程。

优点:减少了冲突的概率,提高了信道利用率

缺点:增加了信道空闲时间,数据发送延迟增大;信道效率比 1-坚持CSMA高,传输延迟比 1-坚持CSMA大

 

p-persistent CSMA 

  • 若站点有数据发送,先监听信道;
  • 若站点发现信道空闲,则以概率p发送数据,以概率q =1- p 延迟至下一个时槽发送。
  • 若下一个时槽仍空闲,重复此过程,直至数据发出或时槽被其他站点所占用;
  • 若信道忙,等待下一时槽,重新开始发送过程; 若产生冲突,等待随机时间,然后重新开始发送过程。

image.png

 

CSMA with Collision Detection(CSMA/CD)

当检测到冲突时,立即停止发送 ,广泛地应用于以太网中 

概念模型

image.png

发送方过程:

image.png

接收方过程:

image.png

概括:

发前先听 空闲发送 边发边听 冲突退避

 

冲突检测 (collision detection) :边发送边侦听,一旦检测到冲突立即停止发送数据。 

原理:

  • 当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。
  • 当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。    

image.png

由上图可知:

检测到冲突的最长时间为

冲突解决方法:

二进制指数后退算法:站点尝试争用信道,连续遇到冲突,退避等待时间(时间片个数)的策略

第 1 次冲突,等待时间为0或1;

第 2 次冲突,等待时间随机选择0~3中之一;

第 3 次冲突,等待时间随机选择0~7(即23-1)中之一;

第 i 次冲突,等待时间随机选择0~(2i-1)中之一。 

但是这种算法有缺陷,会存在恃强凌弱的情况

后来产生了新的退避算法:二进对数仲裁法

 

细节:

帧间隔:一个站在检测到总线开始空闲后,还要等待 9.6才能再次发送数据。 这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备

强化帧:发送者检测到冲突,发送 “jam signal”. 让所有用户都知道现在已经发生了碰撞 强化帧长为 32 bit times 

 

无冲突协议(Collision-free Protocols  )

二进制位图协议

  • 竞争周期和传输周期交替出现
  • 竞争周期分成时槽, 网络中每个主机占1bit.
    • 如果网络中的主机有帧要发送, 其竞争时槽的相应位置1,否则为0
    • 一个竞争时槽结束后,所有主机都知道哪些主机要发送数据。
  • 按照竞争时槽中填1的顺序依次发送 

性能分析:

以 bit slot时间度量(基本时长), 数据帧 d time units

  • 低负载情况下,  bit map 不断重复, 没有数据帧,所有站等待的平均时间为 N slots. 信道利用率为 d/(N+d)
  • 高负载情况下,所有站都有数据要发送 信道利用率为 d/(1+d),如果包含站点数目多,则竞争时隙占用了太多的信道资源

 

 

二进制倒计数协议 

无冲突 序号(地址)大的先发送 

他是什么神操作呢?

  • 每个站有一个二进制地址,在竞争期,每个站从最高位开始广播他的二进制地址,每次1bit 同时,将所有站的本bit进行OR运算
  • 仲裁规则:在他的地址位中,一个值为0的位被改写为1,就放弃发送—有其它地址位为1的站要发送 获得发送权,就发送一帧,然后开始新的竞争期

图解如下:

image.png

信道利用率: d/(d+log2N

如果发送地址是帧的第一个域 ,利用率是 100%

但是他的问题也很明显:

站点饿死 时间同步 信道支持

为了防止饿死,我们采取:每次成功传输后改变站地址 

令牌环局域网 

  • 环型拓扑----令牌的传送 ——一台计算机获得令牌才能发送数据
  • 令牌沿着环在计算机之间传递,直到某个计算机有数据要发送

有限竞争协议(Limited-contention Protocols )

考虑到上面竞争协议和非竞争协议各自的优势

  • 低负载情况 竞争协议具有比较短的延时,非竞争协议具有比较长的时延。
  • 高负载情况 竞争协议仲裁时间花费增多,可能要多次重传输;非竞争协议仲裁时间花费较少,不需要重传。 竞争协议信道利用效率低,非竞争协议信道利用效率高。

 

如果所有的站点都以相同的概率p获得信道,则称该协议是对称的,经过运算,我得出结论:

image.png

基本思想:

  • 将所有站点划分成组(减少竞争者的规模)
  • 只有0号组成员可以竞争0号时槽,竞争胜利者发送数据
  • 然后1号组成员开始竞争1号时槽,以此类推
  • 当负载很低的时候,每一个时槽的站点尽量多;当负载很高的时候,每一个时槽的站点尽量少。 

由这个思想我们设计出了自适应树搜索协议

无线局域网协议(Wireless LAN Protocols)

无线局域网相对于有线信道有什么特殊之处呢

隐蔽站问题:

未能检测出媒体上已存在的信号的问题

image.png

当 A 和 C 检测不到无线信号时,都以为 B 是空闲的, 因而都向 B 发送数据,结果发生碰撞

暴露站问题:

其实 B 向 A 发送数据并不影响 C 向 D 发送数据

image.png

B 向 A 发送数据,而 C 又想和 D 通信。 C 检测到媒体上有信号,于是就不敢向 D 发送数据

如何解决呢?

MACA——信道预约手段

  • RTS (request to send): 发送站在发送数据前先发送一个短的通告(30字节) 帧中含:发送地址,接收地址,要发送的数据长度
  • CTS (clear to send): 接收站收到准备接收,发送响应 帧中也含发送者要发送的数据长度 
posted @ 2021-05-30 14:18  Xiaohanahahah  阅读(817)  评论(0编辑  收藏  举报