本文参考 计算机网络微课堂

1. CSMA/CD协议介绍


当多个主机同时发送数据时,如何解决碰撞冲突问题呢?

早期的共享式以太网采用 载波监听多址接入/碰撞检测 ,即CSMA/CD协议 来解决碰撞冲突问题

多址接入MA

  • 多个站连接在一条总线上,竞争使用总线

载波监听CS

  • 每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧(先听后说):

    1. 若检测到总线空闲 96 比特时间,则发送这个帧
    2. 若检测到总线忙,则继续检测并等待总线转为空闲 96 比特时间,然后发送这个帧
  • 96 比特时间 是指发送 96 比特所耗费的时间,也称为 帧间最小间隔。其作用是使接收方可以检测出一个帧的结束,同时也使得其他站点有机会平等竞争信道并发送帧

碰撞检测CD

  • 每一个正在发送帧的站边发送边检测碰撞(边听边说):

    1. 一旦发现总线上出现碰撞,则立即停止发送,退避一段随机时间后再次发送

2. 基本原理


CSMA/CD的基本原理是:所有节点都共享网络传输信道,节点在发送数据之前,首先检测信道是否空闲,如果信道空闲则发送,否则就等待;在发送出信息后,再对冲突进行检测,当发现冲突时,则取消发送。

  1. 假设在主机 B 发送帧的过程中,主机 C 也要发送帧。主机 C 进行载波监听,发现总线空闲 96 比特后立即发送帧,这必然导致碰撞
  2. 碰撞信号沿总线传播,主机 C 比主机 B 更早检测到碰撞并停止发送,退避一段随机时间后,重新发送之前所发送的帧
  3. 当主线 B 检测到碰撞后,同样也停止发送退避一段随机时间,重新发送之前所发送的帧

以太网还采用了一种 强化碰撞 的措施,这就是当发送帧的站点一旦检测到碰撞,除了立即停止发送帧外,还要继续 发送 32 比特或 48 比特的人为干扰信号(Jamming Signal),以便有足够多的碰撞信号使所有站点都能检测出碰撞。

3. 争用期(碰撞窗口)



  • 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
  • 每一个主机在自己发送帧之后的一小段时间内,存在着偶遇碰撞的可能性。这一小段时间取决于另一个发送帧的主机到本主机的距离,但不会超过总线端到端的往返传播时延,也就是一个争用期时间
  • 显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长

4. 最小帧长


  • 以太网规定最小帧长为 64 字节,即 512 比特(512 比特时间即为争用期)

    1. 如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不少于 64 字节
  • 以太网的 最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞
    1. 如果在争用期(共发送 64 字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞
    2. 如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于 64 字节。因此,凡长度小于 64 字节的帧都是由于碰撞而异常中止的无效帧

5. 最大帧长


  • 示例

6. 截断二进制指数退避算法



  • 若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可 使重传需要推迟的平均时间随重传次数而增大(这也称为 动态退避),因而 减小发生碰撞的概率,有利于整个系统的稳定
  • 重传 16 次仍不能成功 时,表明同时打算发送帧的主机太多,以至于发生碰撞,则 丢弃该帧,并向高层报告

7. 信道利用率




8. 帧发送流程


9. 帧接收流程


附加: 相关练习题




注意: CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早期版本中。 现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CD协议。

CSMA/CD协议(一目了然,看过都说好)相关推荐

  1. CSMA/CD协议分析

    简介 CSMA /CD(Carrier Sense Multiple Access with Collision Detectio)即带碰撞检测的载波监听多路访问技术,是一种争用型的介质访问控制协议, ...

  2. 数据链路层协议 广播链路 CSMA/CD协议

    广播信道主要用于局域网.在使用CSMA/CD协议时,一个站不可能同时进行发送和接收,进行的是半双工通信. 信道的基本概念:信道是往一个方向传输信息的媒体,一条通信电路包含一个发送信道和一个接受信道. ...

  3. 如下图所示,在Hub再生比特流的过程中会产生1.535us的延时,信号传播速率为200m/us,不考虑......[CSMA/CD协议+综合]错题总结

    计算机网络错题总结 原题 这道计网题是16年的统考真题. 刚看到这道题的时候我也懵了,感觉16年统考的真题都很难,这道题也是王道书上数据链路层介质访问控制的课后习题,如果感觉是真题的话,可能真的会想不 ...

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

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

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

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

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

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

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

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

  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协议分析笔记 前言 ...

最新文章

  1. numpy使用np.argmax函数获取一维数组中最大值所在的索引(index of largest value in numpy array with np.argmax)
  2. CodeForces 625A Guest From the Past
  3. python面试-Python面试题总结
  4. Java中divide用法_java的BIgInteger类中divideAndRemainder方法怎么用?
  5. android 手机wifi重启,android – 如何通过重启来记住wifi配置和连接网络
  6. java FileReader/FileWriter读写文件
  7. CodeForces - 1445E Team-Building(可撤销并查集)
  8. c++ 删除二叉树的子树_平衡二叉树
  9. 服务器收到消息加入数组,从聊天服务器发送到聊天客户端的数组更新
  10. 深入JS正则先行断言
  11. python post 远程主机强迫关闭了一个现有的连接_Python最强动态可视化库!
  12. 美宇航局发现地球“表兄弟” 距离1400光年
  13. 决胜新能源汽车战场:价格拖死战、舆论声量战、产业兼并战
  14. 如何记才能不搞混绝对路径和相对路径
  15. 最新版2017安装教程
  16. MapGuide Viewer
  17. linux越狱连接不了设备,Checkra1n 越狱常见问题汇总
  18. 温度传感器—LM75
  19. LigerUi的Form表单展示
  20. java 翻译 go语言_【翻译】go是面向对象语言吗?

热门文章

  1. delphi 点击wsdl出不了描述文件_iOS 13 公测版来了,安装公测版官方描述文件
  2. python api测试框架_python api 测试框架
  3. 组件通信-父组件为子组件传递数据-静态数据//动态数据 // 数据校验
  4. ES6-set集合应用
  5. 「雕爷学编程」Arduino动手做(30)——光敏二极管模块
  6. Confluence 6 管理协同编辑 - 最大编辑者的限制
  7. linux freopen函数
  8. 阅读《平庸的世界》后感觉 (两)
  9. 模型如何京东培训6万人
  10. LoadRunner error -27728