计算机网络——CSMA/CD协议以及相关习题

news2024/12/24 2:15:27

目录

前言

引言

CSMA/CD协议

CSMA与CSMA/CD的区别

CSMA/CD流程


前言

本博客是博主用于复习计算机网络的博客,如果疏忽出现错误,还望各位指正。

引言

最早的以太网,许多计算机都连接在一根总线上工作——广播通信方式。

总线的特点想必不用多说,当一台计算机发送数据时,总线上所有的计算机都能检测到这个数据。

But当两台计算机同时发送数据时候,就可能产生信号上的叠加,导致出现差错。

35c1bec6f1114cf0bffe9811064d0535.jpeg

为了在总线上实现一对一通信,可以使每个适配器都拥有一个独一无二的地址,在发送数据帧时,在帧的首部写明接收站的地址。

仅当数据帧中的目的地址与适配器ROM中存放的硬件地址一致时候,才接收,其余的丢了。

这样具有广播性质的总线上就实现了一对一通信。But也会发生冲突。

然后之后为简化通讯,以太网采取两种措施:

一种是以太网发送的数据都使用曼彻斯特编码——解决二进制基带数字信号出现连续1或0无法提取比特同步信号的问题,不过自身也有弊端,占频带宽度比原始的基带信号增加一倍。

另一种就是采用较为灵活的无连接工作方式,即不必先建立连接就可以直接发送数据。

怎么个事儿呢?

就是适配器对发送的数据帧不进行编号,也不要求对方发回确认。

以太网提供的服务是尽最大努力地交付,不可靠交付,对有差错帧是否要重传由高层决定。

比如CRC出错,直接扔了,TCP发现丢失数据,就会要求重传,但是以太网并不知道这是重传的,认为是新的帧。

然后我们知道,总线上只要有一台计算机在发送数据,总线的传输资源就被占用,在同一时间只允许一台计算机发送数据。

于是,如何协调总线上计算机的工作就成了以太网要解决的一个重要问题。

以太网采取最简单的随机接入

“随机接入”是指在无线通信中,用户可以在任意时刻,任意地点,以任意的方式进行接入,而不受时间、地点、方式的限制。)。

但是有很好的协议用来减少冲突发生的概率——引出我们的CSMA/CD协议!

CSMA/CD协议

全名(Carrier Sense Multiple Access/collision detection,载波监听多点接入/冲突检测)

CSMA与CSMA/CD的区别

CSMA和CSMA/CD的主要区别在于冲突处理机制,具体如下:

  • CSMA。是一种基本的载波侦听多路访问协议,它要求节点在发送数据前先监听信道,如果信道空闲,则立即发送数据;如果信道忙碌,则等待直到信道空闲后再发送。当多个节点同时检测到信道为空闲并尝试发送数据时,可能会发生冲突,CSMA协议在这种情况下不会采取任何措施来避免或检测冲突。听我们老师上课讲的是使用CSMA协议的需要返回确认帧确认,而CSMA/CD协议就不会。
  • CSMA/CD。是CSMA的一种改进版本,特别适用于总线型局域网拓扑结构。在CSMA/CD中,节点在发送数据的同时监测信道上是否发生冲突,如果检测到冲突(例如,通过监测信号电压的变化),节点会立即停止发送数据,并等待一段时间后再次尝试发送。这种机制可以有效减少或避免数据碰撞,提高网络效率。

说白了,载波监听就是在发送数据之前,需要检测信道,加上冲突检测(边发送边监听,不发送不监听),就构成了CSMA/CD协议。

CSMA/CD流程

  1. 准备发送。网卡从网络层获得一个分组,加上头尾,组成以太帧,放入网卡缓存。
  2. 检测信道。在帧间最小间隔(以太网规定是96比特时间)内信道保持空闲就发送该帧。
  3. 冲突检测。边发送边监听。然后看成功与否
  • 如果成功,两种情况,要么没事,要么CRC错了,返回第一步重传去。
  • 如果失败,先发送人为干扰信号,一般是32或者48比特,发完之后,阶段二进制指数退避算法咔咔一算,然后回到第二步。

2365c0d8ab2e48e4bacbe9d1dbabd34d.png

先了解了流程,别慌,后面还会介绍一些以太网的规定。我们先来看两道题。3-24和3-25题。

a8e4f2e6430242319dc17cf14e3e7f16.jpeg

看到这个题。明确一点,以太网,为了避免某种情况,规定一个最短帧长64字节,凡是长度小于64字节的帧,都是由于冲突而异常终止的无效帧。

某种情况:比如某个站发送了一个很短的帧,但在发送完毕之前并没有检测到碰撞,而这个帧继续传播和别的发生了碰撞,但是发送站这时候就不知道了,因为边发送边监听,不发送不监听,所以不会重传这个帧。

381d98c29ae4427db0c110285e1400c4.png

所以要保证,极限情况,到头发生碰撞,一来一回的时间(以太网端到端往返时间2eq?%5Ctau——争用期)要小于传输时间,才能保证这个数据顺利发送完毕。

争用期按理来说应该和传输往返时间相关。

但是10Mbit/s以太网规定规定,注意是规定51.2μs为争用期!!

如果是100Mbit/s,争用期就该5.12μs。

一般往返时间比这个小就没问题,要是超了的话我们老师说可能会出问题。具体啥问题我也不知道。

然后发现了一个博主讲的不错:

里面的内容很简要但是一点就透!

争用期,最小帧等知识,看看就悟了

5eaa47c259e448e59863d2d2e13b98e6.png

 我觉得中间那句话是最重要的,前64B之内出问题,不出后面的也不会出,就相当于来回建立了“连接”,后面都是我自己一个人站着这个道。

好啦,我们来做题,读题:

同一个10Mbit/s的以太网

好!以太网什么规定,争用期51.2μs,检测信道96比特时间(就是1bit的发送时间)。

所以一开始假设都检测信道没问题,AB就发。

假设B在225比特时间发

(因为题目是单向传播是225比特时间,所以我们统一一下)

那么225比特时间,B刚发就碰撞,碰撞信号B立马收到,B随即发送人为干扰信号,32或者48bit,因为下一个题是48bit,所以统一一下,发完干扰信号之后,退避算法,然后检测信道。

然后碰撞信号往回传225比特时间,在450比特时间到A,A也发送人为干扰信号,退避算法,然后检测信道。

OK,题目问A发送完数据之前会不会检测到碰撞,我这多写了,不过下一题你可以按这个流程画。

肯定会碰撞,因为A是最短帧长64字节,即512bit,10Mbit/s要用512比特时间才传完,450<512,所以会碰撞。

(其实更长,因为题目说MAC还有什么同步码和帧定界,那个是8字节,512+64=576,书上有)

然后要是没检测到,说明可以认为后面安全,看前面,我说的那个中间重要那句,那就是解释。

c51e5643d72340b2a821a5f51ad14898.jpg

下一题不讲啦,直接贴个答案链接吧,不过可能有所出入,理解了就行。

答案

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

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

相关文章

APP开发教学:开发同城O2O外卖跑腿系统源码详解

同城O2O外卖跑腿系统,满足了人们对于外卖送餐和生活服务的需求。今天,小编将为您讲解如何开发同城O2O外卖跑腿系统源码。 1.前期准备 首先,我们需要明确系统的功能需求和用户需求,包括外卖订购、配送员接单、支付功能等。其次&am…

排序1——C语言

排序 1. 复杂度2. 插入排序2.1 直接插入排序2.2 希尔排序 3. 选择排序3.1 直接选择排序3.2 堆排序 排序在生活中很常见,比如在网购时,按价格排序,按好评数排序,点餐时,按评分排序等等。而排序有快和慢,快的…

vue2响应式原理----发布订阅模式

很多人感觉vue2的响应式其实用到了观察者发布订阅。我们先来看一下简单的发布订阅的代码: // 调度中心 class Dep {static subscribes {}// 订阅所有需求static subscribe (key, demand) {// 对需求分类收集if (!Dep.subscribes[key]) Dep.subscribes[key] []Dep…

使用腾讯云服务器如何搭建网站?新手建站教程

使用腾讯云服务器搭建网站全流程,包括轻量应用服务器和云服务器CVM建站教程,轻量可以使用应用镜像一键建站,云服务器CVM可以通过安装宝塔面板的方式来搭建网站,腾讯云服务器网txyfwq.com整理使用腾讯云服务器建站教程,…

前端下载url文件(解决PDF, 图片自动在浏览器打开)

常规下载方法: /* 方法1 */ window.open(下载url地址, _blank)/* 方法2 */ const link document.createElement("a"); link.download true; link.href 下载url地址; link.click(); document.body.removeChild(link);pdf文件默认在浏览器中展示解决方案…

Linux:Zabbix + Grafana10.4.2(3)

1.部署zabbix 下面这篇文章写了详细的部署zabbix过程 ,使用的centos9系统 Linux:部署搭建zabbix6(1)-CSDN博客https://blog.csdn.net/w14768855/article/details/137426966?spm1001.2014.3001.5501下面这篇文章使用的是centos7…

RTSP/Onvif安防视频EasyNVR平台 vs.多协议接入视频汇聚EasyCVR平台:设备分组的区别

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力,能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、W…

二叉树练习day.8

235.二叉搜索树的最近公共祖先 链接:. - 力扣(LeetCode) 题目描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共…

30万的源码和300的源码有什么区别?

源码的质量很大程度上取决于其来源、开发者的技术水平和项目的具体需求。有些源码可能确实存在一些问题,比如代码结构混乱、注释不清晰、性能不佳等。 而价高优秀的源码都采用了高效的数据结构和算法,代码结构清晰,逻辑严谨,具有良…

ubuntu22下使用vscode调试redis7源码环境搭建

ubuntu22下使用vscode调试redis7源码环境搭建 ##vscode launch.json配置文件 {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid830387"version": "0.2.0&…

【神经网络与深度学习】循环神经网络基础

tokenization tokenization:分词 每一个词语都是token 分词方法:转为单个词、转为多个词语 N-gram表示法 准备词语特征的方法 (把连续的N个词作为特征) 如 ”我爱你“——>[我,爱,你] 2-gram——[[我…

游戏服务器DDOS克星-抗D盾(游戏盾)

随着网络游戏市场的不断扩大和发展,游戏服务器遭受DDOS攻击的频率也在逐年增加。DDOS攻击的主要目的是使游戏服务器瘫痪,使得游戏无法正常进行,导致游戏运营商巨额损失。鉴于此,针对游戏服务器的防DDOS攻击技术德迅云安全自主研发…

Ubuntu 22上安装Anaconda3。下载、安装、验证详细教程

在Ubuntu 22上安装Anaconda3,你可以遵循以下步骤: 更新系统存储库: 打开终端并运行以下命令来更新系统存储库: sudo apt update安装curl包: 下载Anaconda安装脚本通常需要使用curl工具。如果系统中没有安装curl&#x…

【Python函数和类4/6】递归与匿名函数

目录 目标 匿名函数 多个形参 匿名函数的局限性 递归 语言例子 数学例子 递归的实现 递归代码 练习 总结 目标 在之前的博客中,我们学习了定义函数、调用函数以及设置函数的参数。在今天,我们会补充函数的两个常见的知识点,一个是匿…

前端css笔记(pink老师)

css css书写顺序 自适应屏幕 html { width: 100%; height: 100%; display: table; } body { display: table-cell; } 用了这个方法以后,如果希望页面内的盒子也适应屏幕大小,则使用以下方法,会根据父亲的宽高计算出该盒子的宽高 width:xx%; …

策略模式(知识点)——设计模式学习笔记

文章目录 0 概念1 使用场景2 优缺点2.1 优点2.2 缺点 3 实现方式4 和其他模式的区别5 具体例子实现5.1 实现代码 0 概念 定义:定义一个算法族,并分别封装起来。策略让算法的变化独立于它的客户(这样就可在不修改上下文代码或其他策略的情况下…

死锁的成因, 和解决方案.

死锁 死锁就是两个或两个以上线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。 成因 1.一个线程一把锁 一个线程,对同一个对象,重复加锁两次,如…

相机参数的意义

相机标定的意义: 相机标定:使用带有pattern的标定板来求解相机参数的过程;用一个简化的数学模型来代表复杂的三维到二维的成像过程;相机参数包括:相机内参(焦距等),外参&#xff08…

⑤-1 学习PID--什么是PID

​ PID 算法可以用于温度控制、水位控制、飞行姿态控制等领域。后面我们通过PID 控制电机进行说明。 自动控制系统 在直流有刷电机的基础驱动中,如果电机负载不变,我们只要设置固定的占空比(电压),电机的速度就会稳定在…

Solana 上创建自己的 SLPToken:简明指南

Solana 定义 Solana 是由 Solana Labs 创建的区块链平台,旨在提供高吞吐量和低延迟的去中心化应用(DApps)开发环境。它采用一系列创新技术,如 PoH(Proof of History)共识机制和 Tower BFT(BFT …