多路访问链路和协议--链路层

多路访问链路和协议

网络链路有两种类型:

  • 点对点链路
  • 广播链路

点对点链路:由一个发送端和一个接收端组成

广播链路:拥有多个发送端和多个接收端

这里先不讨论链路层协议,先考虑一下多路访问协议,因为当你拥有多个发送方和接收方时,可能会出现分组之间的碰撞,你就需要协调活跃节点的传输

三种类型的多路访问协议:

  • 信道划分协议
  • 随机接入协议
  • 轮流协议

信道划分协议

信道划分协议在这篇文章里有多路复用


随机接入协议

随机接入协议:一个传输节点总是以全部速率R传输分组,当出现碰撞时就反复的重新发送该分组,但是它不是立即重发,不然又得碰撞一次,它以一定的概率延后几个时延发送,也就是尽量避免重新发送碰撞

时隙ALOHA

时隙ALOHA为最简单的随机接入协议之一

时隙ALOHA

  • 所有帧(分组)由L比特组成
  • 时间被划分为长度为L/R的时隙(每个时隙传输一个分组)
  • 结点只在时隙起点传输帧
  • 结点是同步的,每个结点知道时隙何时开始
  • 如果在一个时隙中有两个或者多个帧碰撞,则所有结点在该时隙结束之前检测到该碰撞事件

时隙ALOHA中对节点的处理

  • 当结点有一个帧要传输时,它等到下一个时隙并在该时隙传输整个帧
  • 如果没有碰撞,该结点成功传输该帧
  • 如果有碰撞,该结点在时隙结束前检测到这次碰撞,并以概率p在后续的中重传它的帧直到该帧被无碰撞的传输出去

解释一下以概率p在后续中重传它的帧,该结点在该时隙以概率p重传,以1-p的概率跳过这个时隙,在下一个时隙重复该操作(结点并不会在下一个时隙传输该帧,而是在下一个时隙中重新以概率p决定是重传还是跳过)

时隙ALOHA看似很好了,每当有结点要传输帧时,就以全速R传输,但是结点碰撞后以分散式的重发帧可能会造成大量的时隙无结点传输,降低效率

我们现在推导一下时隙ALOHA的最高效率为多少,为了方便推导,我们假设每一个结点在每一个时隙都有帧要传输,而结点以概率p发送帧(包括重发的帧以及正常发的帧),假设有N个结点,而一个结点成功发送的概率为(结点发送)p * (其他N-1个结点都不发送)(1-p)^(N-1), N个结点的成功概率即N*p*(1-p)^(N-1)

首先求出使N*p*(1-p)^(N-1)取最大的p,然后求极限,得到效率的值为1/e≈0.37,显然,信道的利用率只有37%

ALOHA

一个实际的ALOHA协议实际上是一个非时隙的,完全分散的协议(纯ALOHA),一个结点传输的帧发生碰撞后会以概率p立即重传,否则就以1-p的概率在另一个帧等待,因此这个效率值还要乘于一个(1-p)^(N-1),结果为N*p*(1-p)^2(N-1),因为不仅要考虑在这传输时间内(t0-->t0+1)其他结点不能传输,还要考虑前(t0-1-->t0)这一时间段内没有结点进行重传

所以当N趋于无穷大时,极限为(1/2e),效率特别低


载波侦听多路访问(CSMA)

举个例子,纯ALOHA就像是一群人在交谈,但是每个人是有话就说,如果同时说了,可能就随机的隔几秒重新说,如果一个人在说的时候其他人刚好都没说,那就刚刚好,也就是纯ALOHA就是一群人在那聊天却是自己说自己的,别人在说话的时候他也说,这样肯定是不好的,我们应该在别人没说话的时候说,当有人说话的时候就等他说完,这就是载波侦听

  • 载波侦听:一个信道传输前先听信道,如果有结点正在传输,那么就等到没人传输时再开始传输
  • 碰撞检测: 当一个结点传输过程中遇到碰撞时,就会放弃传输,在重复“侦听-当空闲时传输”之前先等待一段时间

你可能会问,不是在信道空闲时才开始传输嘛,怎么就又碰撞了,还是上面那个例子,假如声速降低100倍,变成三米多每秒,那一个人说话的时候,如果另一个人离它比较远,可能还没听到,所以他以为没人在说话,然后他就开始说话了,结果了碰撞了,两人都不说,等一段时间没人说再开口

同时说明一下一个结点是如何判断信道是否为空闲的,当一个结点的适配器中没有其他信息传输时,说明是空闲的,(跟上面例子一样,可能前面结点的信号还没过来呢,但是它只看它自己适配器是否有信号传入),空闲的话就开始传输,传输的同时侦听信道,如果有其他结点的信息传入该适配器,说明碰撞了,立即放弃传输

我们看这段文字在重复“侦听-当空闲时传输”之前先等待一段时间,这段时间是有讲究的,因为如果碰撞就立马重新传输,那不是又碰撞了嘛,所以我们希望,当有较少结点碰撞时,等待时间短一点,当有较多结点碰撞时,等待时间多一点

有一个简单的算法可以解决这个问题

二进制后退算法

当一个结点经历n次碰撞之后,就等概率的在[0,1,2,4,...,2^n-1]中选出一个等待时间K,在以太网中,一个结点的实际等待时间为K*512(512个字节进入以太网所需的时间的K倍)


实际上,每个适配器准备传输一个新的帧时,它要运行CSMA/CD算法,不考虑近期过去的时间内可能发生的任何碰撞,因此,当几个其他的适配器处于指数后退状态时,有可能一个具有新帧的结点能够立即插入一次成功的传输

CSMA/CD

CSMA/CD效率:当有大量的活跃结点,且每个结点有大量的帧要发送时,帧在信道中无碰撞地传输的那部分在长期运行时间中所占的份额

用公式表示CSMA/CD效率,d_prop表示两个适配器之间传播所需的最大时间,d_trans表示传输一个最大长度的以太网帧的时间

效率 = 1/(1+5d_prop/d_trans)

可以看到,当两个适配器传播时延很小时,效率趋于1,当传播时间很长时,效率也趋于1(因为一个当一个帧取得信道时,它将占信道很长时间(即没有被其他的结点打断),信道被有效利用)


轮流协议

多路访问协议的两个理想特性

  • 当只有一个结点活跃时,该结点具有R bps的吞吐量
  • 当有N个结点活跃时,每个活跃结点吞吐量接近R/N bps

前面两个协议只能满足第一个条件,不能满足第二个条件,因此,研究人员创造了另一类协议 “轮流协议”,轮流协议有几十种,我们只讨论两种,轮询协议令牌传递协议


轮询协议

基本思想::轮询协议要求这些结点之一为主节点,然后主节点通过发送报文给其他结点来通知它们能够传输的帧的最大数量,主节点以循环的方式轮询每个结点,通过观察信道是否缺乏信号来判断结点是否传输完成

优点

  • 消除了困扰随机接入协议的碰撞和空时隙

缺点

  • 如果只有一个结点要传输时,它依然得等主结点通知完在它前面的结点,增加了时延
  • 当主结点崩溃时,整个网络就会崩溃

令牌传递协议

基本思想:每个结点以某种固定的次序(如结点1总传给结点2,结点N总传给结点1)传输一个特殊的帧称为令牌,当一个结点不传输时,就将令牌交给下一位

缺点

  • 当一个结点崩溃时,整个网络就崩溃了
  • 一个结点忘记释放令牌同样会引起崩溃

猜你喜欢

转载自blog.csdn.net/jump_into_zehe/article/details/106605815