二、媒体访问控制(MAC)
  IEEE802.3或Ethernet所用的媒体访问法为带有碰撞检测的载波侦听多路访问(CSMA/CD)。按
照这种方法,一个工作站在发送前,首先侦听媒体上是否有活动,即称为“谈前听”协议。所谓
活动是指媒体上有无传输,也就是载波是否存在。如果侦听到有载波存在,工作站便推迟自己的
传输。在侦听的结果为媒体空闲时,则立即开始进行传输。在侦听到媒体忙而等待传输情况下,
当传输中的帧最后一个数据位通过后,应继续等待至少9.6us,以提供适当的帧间间隔,随后便可
进行传输。
  如果两个工作站同时试图进行传输,将会造成废帧,这种现象称为碰撞,并认为是一种正常
现象,因以媒体上连接的所有工作站的发送都基于媒体上是否有载波,所以称为载波侦听多路访
问(CSMA)。为保证这种操作机制能够运行,还需要具备检测有无碰撞的机制,这便是碰撞检测(CD)。
也就是说,在一个工作站发送过程中仍要不断检测是否出现碰撞。出现碰撞的另一种情况是由下
述原因造成的,即信号在LAN上传播有一定时延,对于粗缆而言,信号在其上的传播速度是光速的
77%。对于细缆,在其上的传播速度为光速的65%。由于这种传播时延,虽然LAN上某一工作站已开
始发送,但由于另外一工作站尚未检测到第一站的传输也启动发送,从而造成碰撞。图3示出了工
作站检测碰撞所需的时间,图中标出的数字1为工作站发送一个帧(传输单位)所需的时间,数字0.5
为工作站A传输到工作站B所需的传播时间。可以看到,工作站A检测到碰撞是从A到B传播时间的2
倍。
  图3还表明,帧长度要足以在发完之前就能检测到碰撞,否则碰撞检测就失去意义。因此,在
IEEE802.3标准中定义了一个间隙时间,其大小为住返传播时间与为强化碰撞而有意发送的干扰序
列时间之和。这个间隙时间可用来确定最小的MAN帧长。
  检测到碰撞之后,涉及该次碰撞的站要丢弃各自开始的传输,转而继续发送一种特殊的干扰
信号,使碰撞更加严重以便警告LAN上的所有工作站,碰撞出现了!在此之后,两个碰撞的站都采
退避策略,即都设置一个随机间隔时间,另有当此时间间隔满期后才能启动发送。当然如果这两
个工作站所选的随机间隔时间相同,碰撞将会继续产生。为避免这种情况的出现,退避时间应为
一个服从均匀分布的随机量。同时,由于碰撞产生的重传加大了网络的通信流量,所以当出现多
次碰撞后,它应退避一个较长的时间。

图3



  截断二进制指数退避(Truncated Binary Exponential Backoff)就是基于这种思想提出的。
其基本算法是:
  .退避时延是间隔时间的整数倍;
  .为防止不成功发送无限进行,规定了最大尝试次数n;
  .碰撞后选择的退避时延为间隔时间的r倍;
  .r是大于0小于2k范围间的随机整数;K是min(n,10),即为尝试次数与10中最小的一个。
  由此可简单写成:
      K=Min(尝试次数,10)
      r=随机数(0,2 )
      退避时延=r.间隙时间
  不难看出, 这种算法对无碰撞或碰撞次数较少的工作站而言将获得优先的发送机会。因此,
Etgernet是一种发送机会不能保证的技术,因而不适用于实时应用。尽管有这一潜在的问题,但
现实使用中的Ethernet却很少碰到。
  CSMA/CD媒体访问方法从上面的描述可归纳为下述4步:
  第一步:如果媒体信道空闲,则可进行发送。
  第二步:如果媒体信道有载波(忙),则继续对信道进行侦听。一旦发现空闲,便立即发送。
  第三步:如果在发送过程中检测的碰撞,则停止自己的正常发送,转而发送一短暂的干扰信
号,强化碰撞信号,使LAN上所有站都能知道出现了碰撞。
  第四步:发送了干扰信号后,退避一随机时间,重新尝试发送。

有关CMSA/CD的更详细的解释

索引 上一页 下一页