CSMA/CD解释与理解
1. CSMA/CD含义
CSMA/CD即载波监听多点接入/碰撞检测,此协议是使用在总线型网络中的,不同计算机是通过多点接入的方式连接在一起。协议的重点在于监听和碰撞检测。
2. 为什么要监听和碰撞检测
当初学习的时候,对于为什么要监听空闲和检测碰撞一直很疑惑,其实原因很简单,对于总线型网络来说,如果有多个主机同时发送信号,那么是很难从中分辨出信息的。举个栗子就是一堆不同频率相位的正弦混合在一起,让你从波形图中画出某条正弦曲线,是不是感觉非常的困难?为了避免在网络中遇到这个问题,所以采用载波监听和碰撞检测的方法。

3.载波监听用处
载波监听其实就是检测信道是不是为空,如果是,那么就可以发送自己的信息了。如果信道正忙,那么只能等到信道空闲,才能发送自己的信息。那么,是不是只要空闲发送自己的信息就永远不会出错呢?当然不是,我们联系生活中的一个栗子就能知道,当开会讨论的时候,如果一片安静,那么之后就可能会有两个或者多个人同时开始说话发言。信道上也是如此,甚至更加明显。因为载波监听只能是在自己的位置监听,而从别的主机发送过来的信号需要时间。这就不可避免的会出现主机B明明发送了信息,但是主机A没有发现,也发送一个信息出来,这样便会发生碰撞,导致数据信号失真。
4.碰撞检测用处
碰撞检测就是为了解决上面说的同时发送,或者说在很短时间(B发送信号尚未到达A)内同时发送引发的碰撞问题。碰撞检测即适配器在发送数据的过程中也要检测信道信号,若发现信号电压变化幅度增大超过某个阈值,则认为发生碰撞。
5.截断二进制指数退避
发送了碰撞怎么办?当然是停止发送,找个合适的时间再发送。那么怎么寻找一个合适的时间呢?那就要用到截断二进制指数退避,这个名字听起来很高端大气,其实很简单。首先我们明确一个概念,叫做争用期。什么叫争用期,就是在这个发送信息后的这段时间内可能发生碰撞,但是过了这个争用期,那么就一定不会发生碰撞。我们把争用期定义为两倍的端到端传播时延,如下图,δ足够小的时候,A要经过2τ的时间才能发现碰撞。

退避算法:
1.从[0,1,2, ...,(2^k-1)]中随机选一个数,记为r。重传应在r倍争用期之后进行。k的取值为Min[重传次数,10],即k小于10时为重传次数,最大不超过10 。
2.若重传超过16次还是不成功,则说明信道中数据过多,放弃重传,向高层报告。
6.最短帧长
那么,经历了上面的一系列操作,我们是不是可以保证信道中不会存在冲突了呢?答案是,不能。我们要注意到我们的碰撞检测和监听都是在本机的位置上进行的,不能够跑到别的信道位置上进行。那么这样就存在了一个问题,那就是要发送的信息过短,导致碰撞检测在发送该信息的时候没有检测到碰撞,但是在发送出去之后,这个信息与其他的信息碰撞。就好像你寄东西,寄出去的时候还是好好的,等送到别人手里变得一塌糊涂,这就是在寄的过程中发生了冲突。解决办法很简单,就是增加信息长度。以太网规定最短帧长为64字节,对于10Mbit/s以太网,发送64字节(512bit)数据需要51.2us,也就是上面的争用期。这样如果发生碰撞,那么一定能在自己这边检测出来,因为自己的信号和别人发送的信号混在一起,导致信号电压变化超过阈值。如果发送完了,那么自己是不知道自己发送的东西在路上有没有出现意外,这个就只有接收方才能知道,会把这个丢弃,但是自己不会再次发送,这就导致数据的丢失。并且由于发现冲突就会停止发送,所以可以认为,凡是长度小于64字节的帧都是由于冲突而停止发送无效帧。
7.强化碰撞
在发送数据的时候发生冲突,除了停止发送用户数据,还要继续发送32bit或者48bit的干扰信号,目的就是为了让所有用户都知道现在发生了冲突。
CSMA/CD解释与理解的更多相关文章
- CSMA/CD ,现在的交换式以太网还用吗?谈全双工,半双工与CSMA/CD的关系
我们知道:以太网访问控制用的是CSMA/CD,即载波侦听多点接入/ 冲突检测,是以广播的方式将数据发送到所有端口: 我们还知道:交换机能主动学习端口所接设备的MAC地址,在获知该端口的MAC 地址后, ...
- 计算机网络之介质访问控制(静态划分信道、FDM、TDM、STDM、WDM、CDM)、(动态划分信道、ALOHA、CSMA、CSMA/CD、CSMA/CA)、令牌传递协议
文章转自:https://blog.csdn.net/weixin_43914604/article/details/104935912 学习课程:<2019王道考研计算机网络> 学习目的 ...
- 2016.6.20 计算机网络复习要点第三章之CSMA/CD协议
1.最早的以太网是将许多计算机都连接到一根总线上: (1)总线的特点是:当一台计算机发送数据时,总线上的所有计算机都检测到这个数据,这种就是广播通信方式: (2)为了实现在总线上的一对一通信,可以使每 ...
- CSMA/CD协议——学习笔记
CSMA/CD协议要点: 1)适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,准备发送. 2)若适配器检测到信道空闲(即在96比特时间内没有检测到信道上有信号), ...
- CSMA/CD协议
为了通信的简便,以太网采取了两种重要的措施: 第一:采用较为灵活的无连接的工作方式,即不必先建立连接就可以直接发送数据: 第二:以太网对发送的数据帧不进行编号,也不要求对方发回确认. 因此,以太网提供 ...
- 介质共享型局域网中的介质访问控制(MAC)协议需要具体解决的3个问题,CSMA/CD介质访问控制的基本思想
1,在某一时刻,那个节点可以发送数据 2,发送时是否会出现冲突 3,出现冲突时如何处理 CSMA/CD介质访问控制的基本思想:先监听,再发送.边发送,边监听,如发生冲突,则等待一段时间后再次发送
- 重学 以太网的mac协议的CSMA/CD
之前上课一直模糊的CSMA/CD进行系统性整理. CSMA/CD (Carrier Sense Multiple Acess/Collision Detect)应用在OSI的 数据链路层 在以太网中, ...
- 计算机网络【2】—— CSMA/CD协议
参考文献: https://blog.csdn.net/loveCC_orange/article/details/79177129 一.认识以太网 最早的以太网是将许多计算机都连接到一根总线上. 使 ...
- CSMA/CD 3
一.二进制指数类型退避算法 (truncated binary exponential type) 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据. 目的:重传时再次发生碰撞的 ...
随机推荐
- delphi crc校验函数
function CalCRC16(AData: array of Byte; AStart, AEnd: Integer): string;const GENP=$8408; //多项式公式X1 ...
- display:inline-block;在各浏览器下的问题和终极兼容办法
display:inline-block;在各浏览器下的问题和终极兼容办法 一.IE 5.5.6.7 .8(Q)中display:inline-block;失效 兼容办法: IE 5.5.6.7 .8 ...
- 计算机速度GHz等于每秒多少次
这个是没有对比关系的.需要看处理器的微指令.计算机的GHz指的是CPU的时钟频率,不同的指令需要的时钟个数是不同的,列如,从内存读一个数据,一般需要4个时钟周期,而进行一次8位数的加法运算,一般需要1 ...
- phpMyAdmin搭建及管理多台数据库服务器
phpMyAdmin搭建及管理多台数据库服务器 环境说明: 系统版本 CentOS 6.9 x86_64 软件版本 nginx-1.12.2 php-5.5. ...
- 2017.5.1 java动态代理总结
参考来自:http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html 1.代理模式 代理类和委托类有相同接口. 代理类负责为委托类:预处理消 ...
- 转:Eclipse常见问题,快捷键收集
Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键. 1.[ALT+/] Sysout+ System.out.pri ...
- Redis源代码分析(十三)--- redis-benchmark性能測试
今天讲的这个是用来给redis数据库做性能測试的,说到性能測试,感觉这必定是高大上的操作了.redis性能測试.測的究竟是哪方面的性能,怎样測试,通过什么指标反映此次測试的性能好坏呢.以下我通过源代码 ...
- Centos 通过yum的方式升级内核
在安装某些软件时,可能对我们的系统内核版本有要求. 比如在安装docker要满足一定的条件,对于centos系统,要求必须是64位,并且内核版本是3.10以上. 如果你的centos操作系统内核低于3 ...
- Angular 学习笔记——shop
<!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...
- Android学习(十七)自定义View控件 TopBar
一.创建自定义TopBar头部菜单条 实现步骤: 1.在values中添加attrs.xml文件,设置自定义属性. 2.添加Topbar类,继承RelativeLayout,实现具体功能. 3.添加到 ...