CSMA/CD协议分析笔记

CSMA/CD协议分析笔记

CSMA/CD(carrier sense multiple access with collision detection)

文章目录

  • CSMA/CD协议分析笔记
  • 前言
  • 一、解读CS MA / CD
    • CS——“载波监听”
    • MA——“多点接入”
    • CD——“碰撞(冲突)检测”
  • 二、传播时延对载波监听的影响
    • 为什么先听后发还是会产生冲突???
    • 端到端往返传播时延
  • 三、产生冲突(确定碰撞)后的重传时机
    • 如何确定碰撞后的重传时机??
    • 最小帧长问题
  • 四、强化碰撞
  • 五、要点归纳
      • 1.准备发送
      • 2.检测信道
      • 3.边发送边监听


前言

课程视频https://www.bilibili.com/video/BV19E411D78Q/?p=35

CSMA/CD协议,意思是载波监听多点接入/碰撞检测,属于共享信道中动态媒体接入控制的随机接入的协议,即所有用户可以随机发送信息,发送信息时占用全部信道带宽。




CSMA/CD口诀:先听后发;边听边发;冲突停止;随机重发


一、解读CS MA / CD

CS——“载波监听”

检测信道。不管在发送前还是发送后,每个站都必须不停地检测信道,检查是否有其他的计算机在发送数据。

MA——“多点接入”

总线型网络,即计算机以多点接入地方式连接在一根总线上。
在这里插入图片描述

CD——“碰撞(冲突)检测”

半双工网络“边发送边监听”,即适配器边发送数据边检测信道上地信号电压地变化情况,以便于判断自己在发送数据时其他站是否也在发送数据。当几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(互相叠加),当适配器检测到地信号电压变化幅度超过一定地门限值时,就认为总线上至少有两个站同时发送数据,即产生了冲突或碰撞。




二、传播时延对载波监听的影响

为什么先听后发还是会产生冲突???

因为电磁波在总线上总是以有限的速率传播的。

在这里插入图片描述
在这里插入图片描述

设局域网两端站A和站B相距1km,用同轴电缆相连。电磁波在1km电缆的传播时延约为5us。因此,A向B发出的数据,在约5us后才能传送到B。如果B在A发送的数据到达前发送数据,这是B的载波监听检测不到A发送的信息,就一定会在某个时间A的帧和B的帧碰撞。产生碰撞之后,A和B分别对数据进行差错控制,一定会检测到所接收到的数据出现错误,而碰撞之后接收的数据发生错误,这两个帧都会变得无用,A和B站也会停发数据,不让这个错误继续下去。

端到端往返传播时延

在局域网的分析中,常把总线上的单程端到端传播时延记为τ

发送的数据站希望尽早知道是否发生了碰撞,最多要经过的时间是两倍的总线端到端的传播时延(2τ),或总线的端到端往返传播时延,也称为争用期/冲突窗口/碰撞窗口

在这里插入图片描述
只要经过2τ时间还没有检测到碰撞,就能肯定这次发送不会发生碰撞
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。




三、产生冲突(确定碰撞)后的重传时机

以太网使用截断二进制指数退避算法来确定碰撞后重传的时机。这种算法让发生碰撞的站在停止发送数据后,不是等待信道变成空闲后就立即重新发送数据,而是推迟(避让)一个随机的时间。

如果几个发生碰撞的站都在监听信道,那么都会同时发现信道变成了空闲。如果在此时都同时重新发送,那么一定会又发生碰撞

如何确定碰撞后的重传时机??

  1. 确定基本推迟时间为争用期2τ
  2. 定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]。重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10
  3. 从离散的整数集合[0,1,2k-1]中随机取出一个数,重传所需要退避的时间就是r倍的基本推迟时间,即r * 2τ
  4. 当重传达到16次仍然不成功,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错
(1)第一次重传:k=1,r从{0,1}选;重传推迟时间为0或2τ,在这两个时间中随机选一个
(2)若再次碰撞,则进行第二次重传:k=2,r从{0,1,2,3}选;重传推迟时间为0或2τ或4τ或6τ,在这四个时间中随机选一个
(3)若再次碰撞,则进行第三次重传:k=3,r从{0,1,2,3,4,5,6,7}选......;
(10)若还是碰撞,则进行第十次重传:k=10,r从{0,1,2,......,1022,1023}选......
(11)若还是碰撞,则进行第十一次重传:k=10,r从{0,1,2,......,1022,1023}选......
(16)若还是碰撞,说明网络太拥挤,此时认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。
若连续发生多次冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。

最小帧长问题

——帧的传输时延至少要两倍的信号在总线中的传播时延——

%为什么要设置最小帧长???%
如果某一个站发送了一个很短的帧,假定这个帧在继续向前传播到达目的站之前和别的站发送的帧发生了碰撞,因而目的站点接收到错误的帧,然后将该帧丢弃。而发送站不知道这个帧发生了碰撞,因而不会重传此帧。
在这里插入图片描述

最小帧长的计算:
在这里插入图片描述
以太网规定的最小帧长为64B,即512bit。凡是长度小于64B的都是由于冲突而异常终止的无效帧。只要接收到这种无效帧,就应当立即丢弃。

最小帧长相关例题请跳转到计算机网络——CSMA/CD最小帧长相关题目

协议规定了基本推迟时间为争用期2τ,具体的争用期时间是51.2us。对于10Mbit/s以太网,在争用期内可发送512bit,即64字节,也可以说争用期是512比特时间。




四、强化碰撞

当发送数据的站点一旦发生了碰撞,除了立即停止发送数据外,还需要再继续发送32比特或者48比特的人为干扰信号,以便于让所有用户都知道现在已经发生了碰撞

在这里插入图片描述

T1:A站从发送数据开始到检测到碰撞并停止发送的时间间隔
T2:A站得知碰撞已经发生时发送的强化碰撞的干扰信号的持续时间
发生碰撞使A浪费的时间:T1+T2
整个信道被占用的时间:T1+T2+τ

为了使刚刚收到数据帧的目的站点清理接收缓存,做好接收下一帧的准备,以太网规定了帧间最小间隔9.6us,相当于96比特时间。




五、要点归纳

1.准备发送

在发送数据帧之前,先要检测信道。适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。

2.检测信道

若检测到信道忙,就不停的检测信道,一直等待信道转为空闲。

若检测到信道为空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。

3.边发送边监听

  • 发送成功
    在争用期内一直未检测到碰撞,那么这个帧肯定能发送成功。

  • 发送失败
    (1)在争用期内检测到碰撞,这时立即停止发送数据,按照规定发送人为干扰信号

    (2)适配器执行截断二进制指数退避算法,等待r倍的512比特时间后,返回步骤2继续检测信道

    (3)若重传16次仍不能成功,则停止重传向上报错

以太网每发完一个帧,一定要把已发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞,那么还要再推迟了一段时间后再把这个帧重传一次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【剑指offer】面试题52:两个链表的第一个公共节点(java)

输入两个链表,找出它们的第一个公共节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入:intersectVal 8, listA [4,1,8,4,5], listB [5,0,1,8,4,5], skipA 2, skipB 3 输出:Reference of the node wit…

城市大脑全球标准研究1:城市大脑产生的时代背景是什么?

来源:城市大脑全球标准研究组20世纪10年代以来,IT科技领域出现了很多“大脑”“神经系统”概念,如互联网大脑、谷歌大脑、百度大脑、360安全大脑、华为城市神经系统等等,城市大脑是其中一个。这是一个有趣的现象,为什么…

【剑指offer】面试题53 - 1:在排序数组中查找数字 I(java)

统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums [5,7,7,8,8,10], target 8 输出: 2 示例 2: 输入: nums [5,7,7,8,8,10], target 6 输出: 0 限制&#xff1a; 0 < 数组长度 < 50000 代码&#xff1a; class Solution { public int search(int[] nu…

JavaWeb中实现页面跳转的方法

JavaWeb中实现页面跳转的方法 在src中新建Servlet文件&#xff0c;重写doPost()、doGet()方法&#xff0c;可以使用请求转发、重定向或者使用out内置对象编写HTML代码&#xff0c;从而实现页面跳转 ———————————————————————— 一、利用Servlet—————…

Catalan数总结

参考维基百科 Catalan数详解 这里只是把常见的公式搬过来 设Catalan数的第n项为 hnhn&#xff0c;定义 h0h11h0h11 则有如下两个常用递推式 hnh0hn−1h1hn−2...hn−1h0,n>2hnh0hn−1h1hn−2...hn−1h0,n>2hn4n−2n1hn−1,n>1hn4n−2n1hn−1,n>1通项公式为 hnCn2n…

李书福:对未来世界及汽车发展的六个洞见(附万字内部讲话全文)

来源&#xff1a;东西智库2月20日&#xff0c;一直被外界誉为缔造汽车行业传奇的吉利控股集团董事长李书福以“守正出奇 实事求是”为主题在集团内部进行了分享交流&#xff0c;在这场万字内部分享中&#xff0c;李书福从国内国际双循环之机遇和挑战&#xff0c;企业治理能力、…

JSP的“三指六动九内”

JavaWeb——JSP的“三指六动九内” JSP的基本使用 1. JSP模板元素 网页的静态内容。如html标签 JSP脚本 2. JSP的脚本 2.1、小脚本<% Java代码%> 2.2、表达式<% 11%>&#xff0c;等价于out.print(11) 2.3、声明<%! 声明变量和方法%> 3. JSP注释 JSP注释…

【剑指offer】面试题53 - II:0~n-1中缺失的数字(java)

一个长度为n-1的递增排序数组中的所有数字都是唯一的&#xff0c;并且每个数字都在范围0&#xff5e;n-1之内。在范围0&#xff5e;n-1内的n个数字中有且只有一个数字不在该数组中&#xff0c;请找出这个数字。 示例 1: 输入: [0,1,3] 输出: 2 示例 2: 输入: [0,1,2,3,4,5,6,…

Dcloud+mui 压缩上传图片到服务器

chooseImgFromAlbums选择图片chooseImgFromPictures 拍照changeToLocalUrl 转换成可用的路径uploadpic.compressImg 压缩图片uploadpic.avatar 上传图片到oss服务器/*** 上传图片*/function UPLOADPIC() {//上传图片this.avatar function(compressurl) {bzpcommon.showLoading…

基于IPP-FFT的线性调频Z(Chirp-Z,CZT)的C++类库封装并导出为dll(固定接口支持更新)

上一篇分析了三种不同导出C++类方法的优缺点,同时也讲了如何基于IPP库将FFT函数封装为C++类库,并导出为支持更新的dll库供他人调用。 在此基础上,结合前面的CZT的原理及代码实现,可以很容易将CZT变换也封装为C++类库并导出为dll,关于CZT的原理和实现,如有问题请参考: …

梦境交互:做个现代灵媒,考虑一下?

来源&#xff1a;脑极体睡眠几乎占据人生的三分之一时间&#xff0c;做梦又是睡眠中必不可少的生理活动。很多人常常把“无梦之眠”看作是一个人精神状态好的标志&#xff0c;但事实上做梦常常发生&#xff0c;只是很多人在醒来后完全忘记自己做过梦而已。研究表明&#xff0c;…

使用浏览器获取网页模板(HTML+CSS)

使用浏览器获取网页模板(HTMLCSS) 一、获取网页的源代码 进入网页&#xff0c;使用快捷键CtrlU查看网页源代码&#xff0c;也可以单击鼠标右键选择查看网页源代码获取。 网页源代码&#xff1a; 将网页源代码CtrlA全选&#xff0c;CtrlC复制 在网页编辑器中新建一个HTML文…

【剑指offer】面试题54:二叉搜索树的第k大节点(java)

给定一棵二叉搜索树&#xff0c;请找出其中第k大的节点。 示例 1: 输入: root [3,1,4,null,2], k 1 3 / \ 1 4 \ 2 输出: 4 示例 2: 输入: root [5,3,6,2,4,null,null,1], k 3 5 / \ 3 6 / \ 2 4 / 1 输出: 4 限制&…

基于MATLAB的Sobel边缘检测算法实现

图像边缘就是图像灰度值突变的地方&#xff0c;也就是图像在该部分的像素值变化速度非常之快&#xff0c;就比如在坐标轴上一条曲线有刚开始的平滑突然来个大转弯&#xff0c;在变化出的导数非常大。 Sobel算子主要用作边缘检测&#xff0c;它是一离散型差分算子&#xff0c;用…

JavaWeb——EL表达式

在JSP开发中&#xff0c;为了获取Servlet域对象中存储的数据&#xff0c;需要书写很多的Java代码&#xff0c;这样会使JSP页面看起来十分的混乱&#xff0c;难以维护&#xff0c;为此&#xff0c;在JSP2.0规范中提供了EL表达式。EL是Expression Language的缩写&#xff0c;它是…

一文读懂人工智能产业最新发展趋势

来源&#xff1a;世界物联网博览会作者&#xff1a;赛迪智库人工智能产业形势分析课题组当前&#xff0c;以新一代人工智能为代表的科技和产业革命正在孕育兴起。数字化、网络化、智能化的信息基础设施加速构建&#xff0c;以信息通信、生命、材料科学等交叉融合为特征的集成化…

python的变量命名及其使用

以下内容皆从书本自学 &#xff0c;归纳。 1. 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头&#xff0c;但不能以数字打头&#xff0c;例如&#xff0c;可将变量命名为message_1&#xff0c;但不能将其命名为1_message。 2. 变量名不能包含空格&#xff0c;但…

【剑指offer】面试题55 - I. 二叉树的深度(java)

输入一棵二叉树的根节点&#xff0c;求该树的深度。从根节点到叶节点依次经过的节点&#xff08;含根、叶节点&#xff09;形成树的一条路径&#xff0c;最长路径的长度为树的深度。 例如&#xff1a; 给定二叉树 [3,9,20,null,null,15,7]&#xff0c; 3 / \ 9 20 …

半导体的过去、现在和未来

文章来源&#xff1a;中科院半导体所01半导体是信息化的基础上个世纪半导体大规模集成电路、半导体激光器、以及各种半导体器件的发明&#xff0c;对现代信息技术革命起了至关重要的作用&#xff0c;引发了一场新的全球性产业革命。信息化是当今世界经济和社会发展的大趋势&…

计算机网络——奈氏准则(奈奎斯特定理)

奈奎斯特定理——奈氏准则&#xff08;理想状态&#xff09; 奈氏准则&#xff1a;在理想低通&#xff08;没有噪声、带宽有限&#xff09;的信道中&#xff0c;为了避免码间串扰&#xff0c;极限码元传输率为2WBaud。其中W是理想低通信道的带宽&#xff0c;单位为Hz。若用V表…