我是靠谱客的博主 开朗冬天,最近开发中收集的这篇文章主要介绍计算机网络(28)——多路访问协议多路访问协议,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 多路访问协议
    • 信道划分协议
    • 随机访问协议
      • 时隙 ALOHA 协议
      • 纯 ALOHA 协议
      • 载波监听多路访问(CSMA)协议
      • 具有冲突检测的载波监听多路访问(CSMA/CD)协议
    • 轮转协议
      • 轮询协议
      • 令牌传递协议

多路访问协议

网络链路有两种类型
(1)点对点链路:由链路一端的单个发送方和链路另一端的单个接收方组成,如点对点协议(point-to-point, PPP)和高级数据链路控制(high-level data link control, HDLC)。
(2)广播链路:能够让多个发送和接收节点都连接到相同的、单一的、共享的广播信道上,如早期的总线以太网、HFC 的上行链路和 802.11 无线局域网。这里使用术语“广播”是因为当任何一个节点传输一个帧时,信道广播该帧,每个其他节点都收到一个副本。

链路层中一个很重要的问题就是:如何协调多个发送和接收节点对一条单一共享广播信道的访问,这就是多路访问问题。为了避免冲突(collision,如果有多个节点同时传输数据帧而不受任何控制,传输的帧可能在接收方处碰撞,碰撞帧的信号纠缠在一起,便接收失败),计算机网络采用多路访问协议(multiple access protocol)来规范它们在共享的广播信道上的传输行为。

理想情况下,对于速率为 R R R bps 的广播信道,多路访问协议应该具有以下所希望的特性:
1)当今有一个节点有数据发送时,它可以以速率 R R R 发送;
2)当有 M M M 个节点期望发送数据时,每个节点平均发送数据的平均速率 R / M R/M R/M bps;
3)完全分散控制:无需特定节点协调,无需时钟、时隙同步;
4)简单,实现不昂贵。

这些年来,在大量的链路层技术中已经实现了几十种多路访问协议。尽管如此,我们能够将多路访问协议划分为 3 种类型之一:信道划分协议(channel partitioning protocol)、随机访问协议(random access protocol)和轮转协议(taking-turns protocol)。

信道划分协议

采用多路复用技术,将链路、网络资源(如带宽)划分为“资源片”,将资源片分配给各路通信,每路通信独占其分配到的资源片进行通信。

时分多址(Time Division Multiple Access, TDMA中,时间域被分成周期循环的等长的时分复用帧(TDM 帧),并进一步划分每个时间帧为 N N N时隙(slot)。每个站点在每个 TDM 帧中占用固定序号的时隙,每个用户所占用的时隙是周期性出现(其周期就是 TDM 帧的长度)。TMDA 消除了冲突而且非常公平:每个节点在每个帧时间内得到了专用的传输速率 R / N R/N R/N bps。然而它有两个主要缺点:首先,节点被限制于 R / N R/N R/N 的传输速率,即使当它是唯一有数据要发送的节点;其次,节点必须总是等待它在传输序列中的轮次,即使它是唯一一个有数据要发送的节点。

在这里插入图片描述

频分多址(Frequency Division Multiple Access, FDMA中,信道频谱划分为若干频带(frequency bands),每个站点分配一个固定的频带。FDMA 也有 TDMA 同样的优点和缺点。

在这里插入图片描述

第三种信道划分协议是码分多址(Code Division Multiple Access, CDMA。TDMA 和 FDMA 分别为节点分配时隙和频率,而 CDMA 对每个节点分配一种不同的码片序列,它既共享信道的频率,也共享时间,是一种真正的动态复用技术。如果精心选择这些码片序列,CDMA 网络允许不同的节点同时传输,并且它们各自相应的接收方仍能正确接收发送方编码的数据比特(假设接收方知道发送方的码片序列),而不在乎其他节点的干扰传输。CDMA 广泛应用于无线链路共享,如蜂窝网、卫星通信等。

随机访问协议

在随机访问协议中,一个传输节点总是以信道的全部速率(即 R R R bps)进行发送。由于信道不划分,所以可能出现而且允许冲突,而冲突意味着数据传输失败,因此随机访问协议需要定义:
1)如何检测冲突;
2)如何从冲突中恢复(e.g. 通过延迟重传)。

文献中描述的随机访问协议没有上百种也有几十种,下面描述一些最常用的随机访问协议,即 ALOHA 协议载波侦听多路访问(CSMA)协议。以太网采用了 CSMA 协议。

时隙 ALOHA 协议

在对时隙 ALOHA 的描述中,我们做下列假设:
所有数据帧大小相同,假定所有帧由 L L L 比特组成;
时间被划分成等长的时隙,每个时隙长度为 L / R L/R L/R 秒;
节点只能在时隙开始时刻发送数据帧(实际上是节点上的网络适配器,或称为网卡,来发送数据帧)。
节点间时钟同步,每个节点都知道时隙何时开始。
⑤ 如果在一个时隙中有多个节点发送数据帧,则节点在该时隙结束之前检测到该冲突事件。

在这里插入图片描述

p p p 是一个概率。在每个运行时隙 ALOHA 协议的节点中,它们所执行的操作很简单:

  • 当节点有新的数据帧时,在下一个时隙发送。
  • 如果没有冲突,该节点成功地传输它的数据帧,从而不需要考虑重传该帧。(如果该节点有新帧,它可以在下一个时隙继续发送新的帧。)
  • 如果有冲突,该节点在时隙结束之前检测到这次冲突,并在下一个时隙以概率 p p p 重传该帧,直至成功。

优点
① 当某节点是唯一活跃的节点时,时隙 ALOHA 允许该节点以全速 R R R 连续传输。
② 高度分散化:每个节点检测碰撞并独立地决定什么时候重传。
③ 简单。

缺点
① 当有多个活跃节点时,会出现冲突,浪费时隙。
② 会有空闲时隙,因为所有活跃节点由于概率传输策略会节制传输。
③ 节点也许能以远小于分组传输时间检测到冲突。
④ 时钟同步。

下面讨论时隙 ALOHA 协议的最大效率。时隙多路访问协议的效率(efficiency)定义为:长期运行时,成功发送数据帧的时隙所占比例。为了推导简单,假设每个节点试图在每个时隙以概率 q q q 传输一数据帧。假设有 N N N 个节点,对于给定的一个节点,在一个时隙将该帧发送成功的概率为 q ( 1 − q ) N − 1 q(1-q)^{N-1} q(1q)N1,那么任意一个节点成功发送帧的概率为 N q ( 1 − q ) N − 1 Nq(1-q)^{N-1} Nq(1q)N1。为了获得最大效率,需要求出使这个表达式最大化的 q ∗ q^* q,对该式求导,并令导数为 0 可得表达式最大化时 q = 1 / N q=1/N q=1/N q = 1 / N q=1/N q=1/N 代入,则 N q ( 1 − q ) N − 1 = ( 1 − 1 N ) N − 1 Nq(1-q)^{N-1}=(1-frac{1}{N})^{N-1} Nq(1q)N1=(1N1)N1 N N N 趋向于无穷时,上式的极限为 1 / e 1/e 1/e37%(前提是网络中有很多个节点需要占用该信道发送数据)。相似的分析还表明 37% 的时隙是空闲的,26% 的时隙有碰撞。

纯 ALOHA 协议

第一个 ALOHA 协议实际上是一个非时隙、完全分散的协议,也称为纯 ALOHA 协议,它更加简单、无需时钟同步

p p p 是一个概率。在每个运行时纯 ALOHA 协议的节点中,它们所执行的操作很简单:

  • 当有新的数据帧生成时,节点立刻将该帧完整地传输进广播信道,因此冲突的可能性增大
  • 如果一个传输的帧与其他传输发生冲突,这个节点立即以概率 p p p 重传该帧;否则,该节点等待一个帧传输时间后,再以概率 p p p 重传该帧,重复以上过程直至成功。

在这里插入图片描述

下面分析纯 ALOHA 协议的最大效率,所做的假设与在时隙 ALOHA 协议中的相同,取帧传输时间为时间单元。在任何给定时间,某节点传输一个帧的概率为 q q q。假设该帧在 t 0 t_0 t0 时刻开始传输,如上图所示,为了使该帧能成功地传输,在时间间隔 [ t 0 − 1 , t 0 ] [t_0-1,t_0] [t01,t0] 中不能有其他节点开始传输,此概率为 ( 1 − q ) N − 1 (1-q)^{N-1} (1q)N1;类似地,在时间间隔 [ t 0 , t 0 + 1 ] [t_0,t_0+1] [t0,t0+1] 中也不能有其他节点开始传输,此概率也为 ( 1 − q ) N − 1 (1-q)^{N-1} (1q)N1。因此,一个给定节点成功传输一次的概率为 p ( 1 − p ) 2 ( N − 1 ) p(1-p)^{2(N-1)} p(1p)2(N1)。重复时隙 ALOHA 的推导过程,可求得纯 ALOHA 协议的最大效率仅为 1 / ( 2 e ) 1/(2e) 1/(2e),刚好是时隙 ALOHA 的一半

载波监听多路访问(CSMA)协议

在时隙和纯 ALOHA 中,一个节点传输的决定独立于其他节点,它不关心在它开始传输时是否有其他节点碰巧在传输,而且即使有另一个节点开始干扰它的传输也不会停止传输,总而言之大家都在干着损人不利己的事。

运行载波监听多路访问(Carrier Sense Multiple Access, CSMA)协议的节点(的网络适配器、网卡)在发送数据帧之前,先监听信道,如果信道空闲,则发送完整帧(最简单的 CSMA 协议是怎么做的,可能有其他改进);如果信道忙,则推迟发送:节点则等待直到监听到一小段时间空闲,然后开始传输。根据推迟监听策略不同,CSMA 又可以分为1-坚持CSMA(信道忙则一直监听)、非坚持CSMA(信道忙等待随机时间后再开始监听)、P-坚持CSMA(以概率 p p p 等待随机时间后再开始监听)。

在 CSMA 协议中,由于信号传播延迟,冲突仍然会发生,下图显示了连接到一个线状广播总线的 4 个节点 (A,B,C,D) 的时空图,横轴表示每个节点在空间中的位置,纵轴表示时间。在时刻 t 0 t_0 t0,节点 B 监听到信道是空闲的,因此节点 B 开始传输,沿着广播链路在两个方向上传播它的比特,B 的比特沿着广播链路传播延迟不是零(虽然以接近光速传播)。尽管节点 B 在 t 1 t_1 t1 时刻正在传输,但 B 传输的比特信号还没有到达节点 D,因此 D 在 t 1 t_1 t1 监听到信道空闲。根据 CSMA 协议,D 也开始传输它的数据帧。一个短暂的时间后,B 的传输开始在 D 干扰 D 的传输,也就是发生了冲突。

在这里插入图片描述

具有冲突检测的载波监听多路访问(CSMA/CD)协议

在上面的 CSMA 协议中,即使已经出现了冲突,B 和 D 都将继续完整地传输它们的帧,这会造成信道资源的浪费。假如 B 和 D 节点在发送数据的同时能检测冲突,一旦检测到冲突将立即停止传输,这样就能够减少信道资源的浪费

这样的协议就是 CSMA/CD: CSMA with Collision Detection 协议:
(1)节点的网络适配器(网卡)从网络层收到数据报后,准备链路层帧,将其放入缓存中;
(2)如果网卡监听到信道空闲,它开始传输帧;否则它将等待,直到监听到没有信号能量时才开始传输帧。
(3)在传输过程中,网卡能够边发边听,且短时间内可以检测到冲突,如下图所示的“collision detect / abort time”;
(4)冲突后传输中止,减少信道浪费,如下图中,当 B 和 D 在经历了“collision detect / abort time”检测到了冲突之后,便立即停止传输。
(5)发生冲突并中止传输后,等待一个随机时间量,然后开始监听信道是否空闲,即回到第(2)步。

在这里插入图片描述

注意这里的冲突检测(Collision Detection)并不是说只有 CSMA/CD 协议有冲突检测,而其他的 CSMA 协议没有冲突检测。事实上,只要是随机访问协议都会有冲突检测机制,但冲突检测机制有所不同,有的协议只能靠接收方的确认才知道是否发生冲突,而 CSMA/CD 协议中的 CD 强调的是数据帧传输过程的同时能够监听是否有其他信号在使用该信道(边发边听)。

CSMA/CD 中的冲突检测在有线局域网中容易实现,可以通过测量信号强度,比较发射信号强度与接收信号强度来实现,实际上以太网广播链路就是使用具有二进制指数退避的 CSMA/CD 协议来实现的;但是冲突检测在无线局域网中很难实现,因为接收信号强度会淹没在本地发射信号强度下(802.11 无线局域网是使用 CSMA/CA 实现的,CA 指冲突避免)。

二进制指数退避算法简练地解决了发生冲突后随机等待的时间量如何确定的问题。当传输一个给定的数据帧时,在该帧经历了一连串的 n 次 ( n < 10 n < 10 n<10) 碰撞后,节点随机地从 { 0 , 1 , 2 , 3 , . . . , 2 n − 1 } {0,1,2,3,...,2^{n}-1} {0,1,2,3,...,2n1} 中选择一个 K K K 值,等待的时间量为 K ⋅ 512 Kcdot 512 K512 比特的传输延迟;在 10 次或更多次碰撞之后,从 { 0 , 1 , 2 , 3 , . . . , 1023 } {0,1,2,3,...,1023} {0,1,2,3,...,1023} 中随机选择 K K K
在这里插入图片描述

CSMA/CD 协议具有边发边听的特性,其实还具有不发不听的特性。上图显示了连接到一个线状广播总线的 4 个节点,距离最远的两个节点的距离为 d m a x d_{max} dmax,网络带宽为 R R R bps,数据帧最小长度为 L m i n L_{min} Lmin,信号传播速度为 v v v。因为节点 A 只有在传输过程中才能检测到冲突,它传输数据帧的传输延迟一定要满足: L m i n / R ≥ 2 d m a x / V L_{min}/Rgeq 2d_{max}/V Lmin/R2dmax/V,也就是节点 A 所发信号刚要到达 B 时,B 开始发送帧,其信号到达 A 所需的时间。

下面给出 CSMA/CD 协议的效率。令 d p r o p d_{prop} dprop 表示信号能量在任意两个节点之间传播所需的最大时间, d t r a n s d_{trans} dtrans 表示传输一个最大长度的帧的时间。CSMA/CD 协议的效率为:
e f f i c i e n c y = 1 1 + 5 d p r o p / d t r a n s efficiency=frac{1}{1+5d_{prop}/d_{trans}} efficiency=1+5dprop/dtrans1 d p r o p d_{prop} dprop 趋近于 0 或者 d t r a n s d_{trans} dtrans 趋近于 ∞ infty 时,效率趋近于 1。

CSMA/CD 协议远优于 ALOHA,并且简单、分散。

轮转协议

前面讲过多路访问协议的两个理想特性是:
1)当今有一个节点有数据发送时,它可以以速率 R R R 发送;
2)当有 M M M 个节点期望发送数据时,每个节点平均发送数据的平均速率为 R / M R/M R/M bps;

信道划分协议只满足第二个特性,随机访问协议只满足第一个特性,这激发研究人员创造另一类协议,也就是轮转协议(taking-turns protocol),它综合了前面两类协议的优点,即有着信道划分协议不冲突的优点,又有着随机访问协议每个节点可以利用信道全部带宽传输数据的优点。

目前也有几十种轮转协议,这里讨论两种比较重要的协议,即轮询协议(polling protocol)令牌传递协议(token-passing protocol)

轮询协议

在这里插入图片描述

主节点轮流“邀请”从属节点发送数据

该协议引入了轮询开销,即通知一个节点“它可以传输”所需的时间。如果只有一个节点是活跃的,那么介个这个将以小于 R R R bps 的速率传输,因为每次活跃节点发送了它最多数量的帧时,主节点必须依次轮询每一个非活跃的节点;存在单点故障问题(实际网络中可能有备用主节点)。

令牌传递协议

在这里插入图片描述

在这种协议中没有主节点,一个称为令牌(token)的小的特殊帧在节点之间以某种固定的次序进行交换。

当一个节点收到令牌时,仅当它有一些帧要发送时,它才持有这个令牌,它发送最大数目的帧数,然后把令牌转发给下一个节点;否则,它立即向下一个节点转发该令牌。

该协议也有自己的一些问题。例如,令牌的传递也有开销问题,即使网络中谁也不传输数据帧;一个节点的故障可能会使整个信道崩溃;或者一个节点偶然忘记了释放令牌,则必须调用某些恢复步骤使令牌返回到循环中来。

最后

以上就是开朗冬天为你收集整理的计算机网络(28)——多路访问协议多路访问协议的全部内容,希望文章能够帮你解决计算机网络(28)——多路访问协议多路访问协议所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部