zoukankan      html  css  js  c++  java
  • 10.秋招复习简单整理之CSMA/CD协议

    我们知道,总线上只要有一台计算机在发送数据,总线的传输资源就被占用。因此,在同一时间只能允许一台计算机发送数据,否则各计算机之间就会相互干扰,使得所发送的数据被破坏。因此,如何协调总线上各计算机的工作就是以太网要解决的一个重要问题。以太网采用最简单的随机接入,但又很好的协议来减少冲突产生的概率。

    以太网采用的协调方法是CSMA/CD协议,意思是载波监听多点接入/碰撞检测。

    CSMA/CD协议的要点:

    1.多点接入,说明是一个总线型网络,许多计算机以多点接入的方式连接在同一根总线上。协议的实质是载波监听和碰撞检测。

    2.载波监听,即使用电子技术检测总线上有没有其他计算机在发送数据,其实总线上并没有什么载波,这里只不过借用一下这个名词,因此载波监听就是检测信道,这是个很重要的措施,不论是发送前,还是发送中,每个站都必须不停的检测信道。如果在发送前检测信道,是为了获得发送权,如果检测出已有其他站正在发送数据,则自己就暂时不许发送数据,必须要等到信道空闲了才能发送。在发送中检测信道,是为了及时发现其他站的发送和本站的碰撞,即碰撞检测。

    3.碰撞检测,即边发送边监听,适配器边发送数据时边检测信道上的信号电压变化情况,以便判断自己在发送数据是有无其他站也在同时发送数据,当几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(互相叠加),当适配器检测到信号电压变化幅度超过一定的门限值时,就认为总线上至少有两个站点同时发送数据,表明产生了碰撞。所谓碰撞就是发生了冲突。因此,碰撞检测也称为冲突检测,这时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。因此,任何一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,避免继续进行无效的发送,白白浪费网络资源,然后等待一段随机时间后再次发送。

    使用CSMA/CD协议时,一个站不可能同时发送同时接收,因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信,即半双工通信。

    以太网使用截断二进制指数退避算法来确定碰撞后重传的时机。

    还有一种情况,适配器在发送数据时,帧太短了,在发送完才检测出碰撞,此时就很尴尬,因为数据已经发送完了将无法停止发送。所以以太网就规定了一个最短帧长64字节,即512bit。

    以太网在发送数据时,如果在争用期(共发送了64字节)没有发生碰撞,那么后续发送的数据就一定不会产生冲突。换句话说,如果发生碰撞,就一定是在发送的前64字节之内。由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于冲突而异常中止的无效帧,只要收到了这种无效帧,则应当立即丢弃。如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节。

  • 相关阅读:
    一位区域销售经理百条经验手记
    PAIP.FLEX与JAVA数据对应关系.txt
    转:java生成EXCEL表格(POI vs JXL)
    逆向分析工具介绍
    applet与SERLET交互...
    AT命令集(
    关于WINDOWS超级终端的使用来调试MODEM,串口.
    poj1331
    poj1338
    poj1325
  • 原文地址:https://www.cnblogs.com/wenbinshen/p/11197680.html
Copyright © 2011-2022 走看看