CSMA/CD协议要点: 1) 组装成帧: 从网络层获得一个分组,加上以太网的首部和尾部,组装成以太网帧,放入适配器的缓存中,等待发送。 2) 载波侦听:即先听后发(持续时长96bit)。 若适配器检测到信道空闲(即在96bit时间内没有检测到信道上有信号),就发送这个帧;若检测到信道忙,则继续检测并等待信道转为空闲(加上96bit时间),然后发送这个帧。 3) 冲突检测:即边听边发(持续时长512bit),冲突停发(持续时长48bit)。 在发送过程中继续检测信道,若一直未检测到碰撞,就顺利将该帧成功发送完毕。若检测到碰撞,则终止数据的发送,并发送人为干扰信号。 4) 指数退避:即随机重发(持续时长r512bit)。 在终止发送后,适配器执行指数退避算法,等待r倍512比特时间后,返回到步骤2)。 表-CSMA/CD的动作和持续时长 | 动作 | 持续时长(10Mb/s) | 时间说明 | 先听后发 | 96bit | 96bit时间为帧间最小间隔,即9.6us。用于使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。 | 边听边发 | 512bit | 512bit时间为争用期,即51.2us。如果在争用期内没有检测到碰撞,则之后也不会再有碰撞。以太网规定最短有效帧长等于能在争用期内发送出去的比特数(即64B)。 | 冲突停发 | 48bit | 48bit时间为人为干扰信号的持续时间,即4.8us。在检测到碰撞后通过发送人为干扰信号强化碰撞,以便让所有用户都知道现在已经发生了碰撞。 | 随机重发 | r512bit | r512bit时间为下次重传推迟的时间,即r51.2us。用于减小下次重传时再次发生冲突的概率。 | 说明: 1) 电磁波在1km电缆中的传播时延约为5us; 2) 以太网的争用期为总线网中相距最远的两个站之间的往返传播时延; 3) 以太网只能半双工工作,不能全双工工作(即同时接收和发送,因为会发送碰撞); |
指数退避算法: 1) 确定基本退避时间,即争用期2τ。以太网将争用期定为51.2us。对于10Mb/s以太网,在争用期内可发送512bit(先确定争用期,而后才算出10Mb/s的以太网在争用期内发送512bit)。 2) 从离散整数集合{0,1,2,…,(2k-1)}中随机取出一个数r。重传应退后的时间就是r倍的争用期。参数k=Min{将要重传次数(即冲突碰撞次数),10}。 3) 当重传16次仍不能成功时,则丢弃该帧,并向高层报告。 说明: 1) 冲突检测要求设备在发送数据的同时能够接收数据,并根据信号强度的变化来检测是否发生了冲突;无线网络由于不具有冲突检测的条件,因而使用带冲突避免的载波侦听多点接入,即CSMA/CA |