当前位置: 首页 > article >正文

局域网 - CSMA/CD(载波侦听多路访问 / 冲突检测)

文章目录

  • 1 概述
    • 1.1 局域网的拓扑结构
  • 2 CSMA/CD
    • 2.1 三种监听算法
    • 2.2 冲突检测原理
    • 2.3 二进制指数后退算法
  • 3 扩展
    • 3.1 网工软考真题

1 概述

1.1 局域网的拓扑结构

在这里插入图片描述

2 CSMA/CD

  • CSMA/CD:Carrier Sense Multiple Access/ Collision Detection,载波侦听多路访问 / 冲突检测
  • 目的:在共享网络里,解决冲突的协议
  • CSMA 的基本原理是:站在发送数据之前,先监听信道上是否有别的站发送的载波信号。若有,说明信道正忙,否则说明信道是空闲的,然后根据预定的策略决定:
    • 若信道空闲,是否立即发送
    • 若信道忙,是否继续监听
  • 如果连续发送 16次 碰撞后,认为网络繁忙有问题,不再尝试发送。

2.1 三种监听算法

在这里插入图片描述

  • 非坚持型监听算法:当一个站准备好帧,发送之前先监听信道。
    • ① 若信道空闲,立即发送,否则转 ②
    • ② 若信道忙,则 后退一个随机时间,重复 ①
    • 由于随机是延后退,从而 减少了冲突的概率。然而,可能出现的问题是因为后退而使信道闲置一段时间,这使 信道的利用率降低,而且 增加了发送时延
  • 1-坚持型监听算法:当一个站准备好帧,发送之前先监听信道。
    • ① 若信道空闲,立即发送,否则转 ②
    • ② 若信道忙,继续监听,直到信道空闲后立即发送。
    • 这种算法的优缺点与前一种正好相反:有利于抢占信道,减少信道空闲时间。但是,多个站同时都在监听信道时必然会发生冲突。(冲突概率利用率 都高)
  • P-坚持型监听算法:这种算法汲取了以上两种算法的优点,但较为复杂。
    • ① 若信道空闲,以 概率 P 发送,以概率(1-P)延迟一个时间单位。一个时间单位等于网络传输时延
    • ② 若信道忙,继续监听,直到信道空闲,转 ①
    • ③ 如果发送延迟一个时间单位,则重复 ①

2.2 冲突检测原理

  • 载波监听智能减少冲突的概率,不能完全避免冲突。当两个帧发生冲突后,若继续发送,将会浪费网络带宽。如果帧比较长,对带宽的浪费就大了。为了进一步改进带宽的利用率,发送站应采取 边发边听 的冲突检测方法,即:
    • ① 发送期间同时接收,并把接收的数据与站中存储的数据进行比较。
    • ② 若比较结果一致,说明没有冲突,重复 ①
    • ③ 若比较结果不一致,说明发生了冲突,立即停止发送,并发送一个简短的 干扰信号(Jamming),使所有站都停止发送。
    • ④ 发送 Jamming 信号后,等待一段随机时长的时间,重新监听,再试着发送。
  • 最小帧长: L m i n = 2 R × d v L_{min} = 2 R \times \frac{d}{v} Lmin=2R×vd
    • R:网络数据速率
    • d:最大段长
    • v:信号传播速度

2.3 二进制指数后退算法

在这里插入图片描述

3 扩展

3.1 网工软考真题

[2018-]在CSMA/CD 以太网中,数据速率为 100 Mb/s,网段长 2km,
信号速率为 200 m/μs,则此网络的最小帧长是()比特
A.1000   B.2000   C.10000   D.200000

【参考答案:B】

  • 根据最小帧公式: L m i n = 2 R × d v L_{min} = 2 R \times \frac{d}{v} Lmin=2R×vd 可知
  • L m i n = 2 ∗ 100 ∗ 1 0 6 b / s ∗ 2 ∗ 1 0 3 m 200 / 1 0 − 6 s = 2000 b i t L_{min} = 2 * 100 * 10^6 b/s * \frac{2 * 10^3 m}{200/ 10^-6 s } = 2000 bit Lmin=2100106b/s200/106s2103m=2000bit
[2014-]以太网采用的 CSMA/CD 协议,当冲突发生时要通过二进制指数后退算法
计算后退时延,关于这个算法,以下论述中错误是的()。
A.冲突次数越多,后退的时间越短  // 后退时间越长
B.平均后退次数的多少与负载大小有关
C.后退时延的平均值与负载大小有关
D.重发次数达到一定极限后放弃发送

http://www.kler.cn/a/15014.html

相关文章:

  • VBA-自定义面板,使用SQL查询Excel数据
  • 大公司为什么禁止SpringBoot项目使用Tomcat?
  • 记录-使用双token实现无感刷新,前后端详细代码
  • 【PLC】贝加莱PLC理论及操作年度培训
  • 波奇学Linux:Linux的认识和云服务器使用
  • 论文阅读笔记《Grounded Action Transformation for Robot Learning in Simulation》
  • 机器学习(二):线性回归之梯度下降法
  • 【车载以太网测试从入门到精通】——以太网网络管理自动化测试(含CAPL源码)
  • 【C++进阶知识】C++类的继承和派生
  • Linux入门操作
  • 【Python】ddddoc进行OCR识别和目标检测 ——识别验证码和滑块(安装部署+测试代码注释详细)
  • Next.js 备忘清单_开发速查表分享
  • 1970-01-01是什么?为什么计算机起始时间是1970年1月1日
  • 使用SOCK_DGRAM类型的socket实现的ping程序
  • 高效的封装一个网络请求需要考虑哪些?
  • 服务(第十三篇)lvs(负载均衡器)+nginx(反向代理)+tomcat(后端服务器)+nfs共享
  • Spring————java的反射机制,Spring的IOC和DI
  • ipv6地址技术详解
  • python@面向对象OOP@类的构造
  • 史上最烂 spring aop 原理分析