以太网

Ethernet的核心的技术就是载波侦听访问协议(carrier sense Multiple access with collision detection,CSMA/CD)

CSMA/CD协议

基本原理:站在发送数据之前,先侦听信道上是否有其他站发送的载波信号,若有,说明信道正在忙;若没有,信道是空闲的,然后根据预定的策略决定;

  1. 若信道空闲,是否立即发送;
  2. 若信道正忙,是否继续侦听

一.即使信道是空闲的,若立即发送仍然可能会发生冲突。

一种情况是远端的站刚开始发送,载波信号尚未传到侦听站,这时候若侦听站立即发送,就会和远端的站发生冲突;另一种情况是虽然暂时没有站发送,但是碰巧两个站都看到了这种情况,都开始发送数据,这样也会发生冲突。所以,上面的控制策略的第1点就是想要避免这种情况虽然稀少,但仍然有可能发生的冲突。二. 若信道正忙,如果坚持侦听,发送的站一旦停止就立即抢占信道,但是有可能几个站同时侦听,同时都抢占信道,从而发生冲突。以上控制策略的第二点就是进一步优化侦听算法,使得有些侦听站或所有侦听站都后退一段随机时间然后在侦听,以避免这种冲突。

载波侦听只能减少冲突的概率,不能完全避免冲突。当两个帧发生冲突之后,若继续发送,将会浪费网络带宽。如果帧比较长,对带宽的浪费就很可观了。为了进一步改进带宽的利用率,发送站应采取边发送边侦听的冲突检测方法。即

  1. 发送期间同时接收,并把接收的数据与站中存储的数据进行比较;
  2. 若比较结果一致,若结果一致,说明没有冲突,重复(1);
  3. 若比较结果不一致,说明发生冲突,立即停止发送,并发送一个简短的干扰信号(Jamming),是所有站点都停止发送。
  4. 发送Jamming信号后,等待一段随机长的时间,重新侦听,然后再尝试着着重新发送。

带冲突检测的CSMA算法把浪费带宽的时间减少到检测冲突的时间。对于局域网来说这个时间很短。如下图所示,说明了检测冲突需要的最长时间。

设图中的两端的站A和B相聚1KM,用同轴电缆相连。电磁波再1KM电缆中的传播时延约为5微秒,因此,A向B发出的数据,在约5微秒后才能传送到B。换句话说,B若在A发送的数据到达B之前发送自己的数据帧(因为这时B的载波侦听不到A发送的信息),则必然在某一个时间和A发送的数据帧产生冲突。冲突的结果是两个帧都变得无用。在局域网分析中,常把总线上的单程端到端的传播时延记为T。从图中可以看出,这样,当A发送数据之后,最迟要经过2T才可以判断自己发送的数据可其他站发送的数据是否有冲突。由于局域网上任意两个站之间的时延有长有短,因此局域网必须按最坏的情况打算,所以T取总线两端的两个站之间传播时延(这两个站之间的距离最大)。

显然,在使用CSMA/CD协议的时候,一个站不可能同时接收和发送。

因为在每次传送过程中,接收模块被用于侦听冲突了。因此使用CSMA/CD协议的以太网不可能进行全双工通信,而只能采用半双工通信。

下面是上图的一些重要的时刻。

  1. 在t=0时,A发送数据。B检测到信道为空闲。
  2. 在t=T-Q时(这里T>Q>0),A发送的数据还没有到达B时,由于B检测到信道是空闲的,因此B发送数据。
  3. 经过时间Q/2后,即在t=T-Q/2时,A发送的数据和B发生的数据发生了冲突。但是这时A和B都不知道发生了冲突。
  4. 在t=T时,B检测到发生了冲突,于是停止发送数据。
  5. 在t=2T-Q时,A也检测到发生了冲突,于是也停止发送数据。

由此可见,每一个站点自己发送数据之后的一小段时间内,存在着遭遇冲突的可能性,并且这一小段时间是不确定的,它取决于另一个发送数据的站到本站的距离。因此,以太网并不能保证某一段时间之内一定能够把自己的数据帧成功的发送出去(因为存在产生冲突的可能)。以太网的这一特点称为发送的不确定性。如果希望在以太网上产生冲突的机会很小,必须使整个以太网的平均通信量远小于以太网的最高数据率。因此,以太网的端到端往返时间2T称为争用期(contention period),争用期又称为冲突窗口(collision window),这是因为一个站在发送完数据后,只有通过争用期的“考验”,即经过争用期这段时间还没有检测到冲突,才能肯定这次发送不会发生冲突。

与冲突检测相关的参数是最小帧长。设想在图中的A站发送的帧比较短,在2r内已经发送完毕,这样的A站在整个发送期间检测不到冲突,从而错误的以为已经成功地发送出去了。为了避免发生这种冲突,所有的帧至少需要2r才能发送完毕。这样可以保证当冲突回到发送方的时候,传送过程仍在运行,网络标准中根据设计的数据速率和最大网段长度规定了最小帧长

Lmin=2R*d/v

式中R为网络的速度;d为最大网络段长度;v为信号传播速度。

从公式中可以看出,随着网络速度R的提高,要保证等式成立,要么最小帧长Lmin成比例的增加,要么最大网段的长度d成比例缩短。

对于一个最大网络段长为2500m(由粗同轴电缆构成),具有4个中继器的10MpbsLAN来说,在最差情况下,往返一来回的时间大约为50微秒,其中包括了通过4个中继器所需要的时间。这样在10Mpbs的情况下,一位需要100ns,所以50微秒要求帧至少为500位(50微秒/100ns),考虑到加上一点安全余量,该数字被增加到512位,或者说64B。这样以太网的争用期变为了51.2微秒(512b/10Mpbs)。对于小于64B的帧,可以通过填充域来扩充到64B长。

由此可以看出,以太网在发送数据时,如果帧的前64B没有发生冲突,那么后续的数据就不会发生冲突。换句话说,如果发生冲突,就一定是在发送的前64B之内。由于一检查到冲突就会立即终止发送,这时,已经发送出去的数据一定是小于64B的,因此以太网闯关规定凡长度小于64B的帧都是由于冲突而异常终止的无效帧。接收站对收到的帧要检查长度,小于最小帧长的帧被认为是冲突碎片而被丢弃。

采用CSMA/CD算法检测到冲突之后,除了立即停止发送数据外,还要发送一个干扰信号(Jamming),以便让所有用户都知道现在发生了冲突。这里的干扰信号为32比特或者48比特。然后后退一段时间重新发送,后退时间的多少对于网络的稳定性有很大影响。特别在负载很重的情况下,为了避免很多站连续发生冲突,需要设计有效的后退算法。截断二进制指数退避算法让发生冲突的站在停止发送数据后,不是等待信道变为空闲就立即发送数据,而是推迟一个随机的时间,这样做的目的是为了重传时再发生冲突的概率很小。具体的退避算法如下:

  1. 确定基本退避时间,就是他的争用期为2T,以太网把争用期定为51.2微秒。
  2. 从离散的整数集合【0,1,...,(2(k)次方-1)】中随机取出一个数,记为r。重传应退后的时间就是r倍的争用期。上面的参数K按下面的公式计算:

K=Min【重传次数,10】

由此可见,当重次数不超过10次,参数K等于重传次数;当重传次数超过10次,参数K 的值为10。

  1. 当重传达到16次仍然不能成功时(这表明同时打算发送数据的站太多,以至连续发生冲突),则丢失该帧,并向高层报告。

例如,在第一次重传时,k=1,随机数r从整数{0,1}中随机选择一个数,因此重传的站可选择的重传推迟时间为0或2T,在这两个时间中随机选择一个。

若在发生冲突,选择第2次重传,k=2,随机数r从整数{0,1,2,3}中选择一个数,因此重传推迟的时间从0,2T,4T,6T中随机的选择一个。

若在发生冲突,选择第三次重传,K=3,随机数r从整数{0,1,2,3,4,5,6,7}中随机的选择一个数,因此重传推迟的时间从0,2T,4T,6T,8T,10T,12T,14T,在这些时间中随机的选择一个。

以太网还规定了帧间的最小间隔为9.6微秒,相当于96比特时间。这样做是为了使刚刚收到的数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。

以太网的CSMA/CD协议相关推荐

  1. 广播信道的数据链路层和CSMA/CD协议

    一.局域网和广播信道 广播信道可以进行一对多通信,局域网使用的就是广播信道.局域网为一个单位所共有,且地理范围和站点数目均有限.常见的局域网拓扑包括星形网.环形网.总线网.树形网.需要解决的一个问题是 ...

  2. 信道分类、信道复用技术、CSMA/CD 协议、PPP 协议、MAC 地址、局域网、以太网、交换机、虚拟局域网

    1.信道分类 1.1 广播信道 一对多通信,一个节点发送的数据能够被广播信道上所有的节点接收到. 所有的节点都在同一个广播信道上发送数据,因此需要有专门的控制方法进行协调,避免发生冲突(冲突也叫碰撞) ...

  3. 以太网使用的CSMA/CD协议是以争用方式接入到共享信道的。这与传统的时分复用TDM相比优缺点如何?网络适配器的作用是什么?网络适配器工作在哪一层?假定1km长的CSMA/CD网络的数据率为1Gb/s

    一.以太网使用的CSMA/CD协议是以争用方式接入到共享信道的.这与传统的时分复用TDM相比优缺点如何? CSMA/CD是一种动态媒体接入共享信道的方式: 优点:所有用户可以随机发送消息,不需要分配固 ...

  4. 假定在使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100。试问这个站需要等待多长时间后才能再次发送数据?如果是100Mb

    假定在使用CSMA/CD协议的10Mb/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100.试问这个站需要等待多长时间后才能再次发送数据?如果是100Mb/s的以太网呢? 以 ...

  5. 【计算机网络】数据链路层 : CSMA/CD 协议 ( 载波监听多点接入 / 碰撞检测 协议 | 单程端到端传播时延 | 截断二进制指数规避算法 | 计算示例 | 最小帧长问题 )★

    文章目录 一. CSMA/CD 协议 二. 传播时延对于 载波监听 的影响 三. 单程端到端传播时延 相关概念 四. 碰撞后重传时机 ( 截断二进制指数规避算法 ) 五.截断二进制指数规避算法 计算示 ...

  6. CSMA/CD协议——学习笔记

    CSMA/CD协议要点: 1)适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,准备发送. 2)若适配器检测到信道空闲(即在96比特时间内没有检测到信道上有信号), ...

  7. 计算机网络·CSMA/CD协议有关计算

    CSMA/CD 一.官方解释 二.争用期 三.二进制退避算法 一.官方解释 如果两个人同时和我们说话,我们是不能够听清说的啥的.计算机也是一样,在同一时间里只能允许一台计算机发送数据,否则各个计算机之 ...

  8. 计算机网络(十四)-CSMA/CD协议

    一.CSMA/CD协议 载波监听多点接入/碰撞检测CSMA/CD. 1.1 CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据. 1.2 MA:多点 ...

  9. CSMA/CD协议分析笔记

    CSMA/CD协议分析笔记 CSMA/CD(carrier sense multiple access with collision detection) 文章目录 CSMA/CD协议分析笔记 前言 ...

  10. 计算机网络 --- 数据链路层CSMA/CD协议

    CSMA/CD协议 全称为载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection) CSMA/CD协议 ...

最新文章

  1. YII显示sql进行调试
  2. Python语言的特点
  3. SMARTFORM 转 PDF
  4. python微信验证码收不到_给微信回复消息收不到(Python)
  5. RTX5 | STM32H743+CubeMX+RTX5+两路FDCAN模板
  6. Yii框架多表查询(一对一与多对一)
  7. python搜索word关键字_Python根据关键字抓取word相关内容
  8. 由入门C语言题目浅析gets()函数的用法
  9. Probabilistic Road Map
  10. matlab模型预测控制基本原理,matlab模型预测控制
  11. (已解决)windows2020卸载office2013(安装程序包语言不受系统支持)
  12. Godot Shader:无需建模用一张图片在Godot中生成一座山
  13. 境内股指期货品种、合约类型和周期规律简介
  14. MAC上测试常用工具整理
  15. Java架构师成长直通车:LVS+Nginx实现高可用集群
  16. 仁微电子-医院智慧病房物联网系统
  17. “你已被移出穷人群”
  18. 2023最全软件测试学习路线图(从入门到精通)
  19. CPC电商广告在复杂环境下需要考虑的要素
  20. 说说VB中的语法规则

热门文章

  1. DEVC++实现街头篮球(爷青回)
  2. 万能DOS启动盘制作全攻略(转)
  3. 干货 | 日均5亿字符翻译量,百毫秒内响应,携程机器翻译平台实践
  4. Android 蓝牙HID协议(基于BR蓝牙)连接流程分析--framework-jni-btif-bta-btm-hci -- 全网最详细(一)
  5. 对话90后,移动互联网新生代力量行为调查-20140219早读课
  6. 微服务集成skywalking实现全链路日志追踪方案
  7. SQLServer实现快速进行简繁体的翻译功能
  8. 数据结构上机实验1——线性表——班级管理系统
  9. 如何在 vuepress 中添加博客导流公众号-即输入验证码解锁全站文章
  10. 阿里网盘挂载到本地(Webdav)