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

目录

前言

引言

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.mzph.cn/news/811098.shtml

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

相关文章

别让这6个UI设计雷区毁了你的APP!

一款成功的APP不仅仅取决于其功能性,更取决于用户体验,这其中,UI设计又至关重要。优秀的UI设计能够为用户带来直观、愉悦的交互体验,甚至让用户“一见钟情”,从而大大提高产品吸引力。 然而,有很多设计师在…

Python的基础知识学习路线2—运算符与变量类型(使用jupyter notebook进行操作:最全路线,每部分附有代码操作结果)

一、更改jupyter notebook 打开文件的位置 1、打开Anaconda Prompt终端,输入以下命令,创建配置文件:jupyter_notebook_config.py jupyter notebook --generate-config2、打开生成的配置文件 3、编辑配置文件jupyter_notebook_config.py&…

ssm045基于jsp的精品酒销售管理系统+jsp

精品酒销售管理系统 摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于精品酒销售管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了精品酒销售管理系统&…

深度学习入门(2)

一。Matplotlib模块添加 Matplotlib是用于绘制图形的库,使用 Matplotlib 可以轻松地绘制图形和实现数据的可视化。 pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple 二、绘制简单图形 import numpy as np import matplotlib.pyplot as plt #…

三年了,期待下一个三年

第一个三年 时间好快,距离我发布我第一篇文章都已经三个年头了。 转眼也从大一新生变成了大四打工人。 在平台上发布博客,分享自己的项目、学习思路、解决的bug都带给我很多收获。 平台上的粉丝,阅读量等,也让我的简历更加出彩。…

约瑟夫问题---C++

今天来讲一道饶有名气的题目,约瑟夫问题 约瑟夫问题 这道题目有许多大佬用队列、递归、链表来解这道题目而这题的难度也确实非同小可! 可是你们难道没有想过?用数组去解决吗?没错一维数组!为了想出解决办法我掉了23根头…

Idea显示无法自动装配。找不到‘ xxx’类型的Bean

虽然只标红,不报错,但是看着非常别扭! 原因: 当我们在使用Autowired注解的时候,默认requiredtrue,表示注入的时候bean必须存在,否则注入失败。 解决方案一: 在自动转配的注解后面添加(require…

Rockchip Android13 Vold(一):Native层

一:概述 Vold全称Volume Daemon是用于管理存储类设备的守护进程,负责接收驱动层设备挂载和卸载消息以及与Framework层之间的通信。Vold作为一个守护进程位于Android的Native Daemons层。 二:Vold框架图 三:Vold Sevice Android13的init.rc位于/system/etc/init/hw/其中使…

代码随想录第38天| 509. 斐波那契数 70. 爬楼梯

理论基础 刷题大纲: 动态规划5步曲: 1、确定dp数组以及下标的含义 2、确定递推公式 3、dp数组如何初始化 4、确定遍历顺序 5、举例推导dp数组 509. 斐波那契数 509. 斐波那契数 - 力扣(LeetCode) 代码随想录 (programmercarl.co…

JAVA 并发编程JUC 锁策略

锁策略 悲观锁乐观锁乐观锁的实现方式公平锁 vs 非公平锁 悲观锁 悲观锁总是假设最坏的情况,认为共享资源每次被访问的时候就会出现问题,例如共享数据被修改等,所以每次在获取资源操作的时候都会上锁,这样其他线程想拿到这个资源…

【03709】24年4月马克思主义基本原理概论考前密卷1

目录 1.选择题 2.简答题 3.论述题(三选二) 1.选择题

文章分享:《二代测序临床报告解读指引》

[摘要] 二代测序(next generation sequencing,NGS)已成为中国临床肿瘤医生常用检测工具,而中国超 90%临床医生需要 NGS 报告解读支持。因此,为提升临床医生 NGS 报告解读能力,特编写…

【MATLAB源码-第4期】基于MATLAB的1024QAM误码率曲线,以及星座图展示。

1、算法描述 正交幅度调制(QAM,Quadrature Amplitude Modulation)是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度(π/2)的正弦波,因此被称作正交载波。这种调制方式因此而得…

新天龙八部3永恒经典之江山策仿官方_源码架设教程

本教程仅限学习使用,禁止商用,一切后果与本人无关,此声明具有法律效应!!!! 教程是本人亲自搭建成功的,绝对是完整可运行的,踩过的坑都给你们填上了 一. 效果演示 新天龙…

QAT量化 demo

一、QAT量化基本流程 QAT过程可以分解为以下步骤: 定义模型:定义一个浮点模型,就像常规模型一样。定义量化模型:定义一个与原始模型结构相同但增加了量化操作(如torch.quantization.QuantStub())和反量化…

1分钟以上情感短视频素材去哪里找?推荐五个素材网站

在这个充斥着各种短视频的世界里,我就像是一名寻宝的冒险家,不断在素材的海洋中潜水,寻找那些能让我的视频金光闪闪的珍珠。让我告诉你,这不仅仅是一场寻宝,这简直是一场奇妙的冒险。九才素材网: 我的创作…

LeetCode题练习与总结:不同路径Ⅱ--63

一、题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从…

我企业的业务需要制作企业网站吗?11个支持的理由以及5个反对的理由!

如果你的企业经营得还不错,你可能会找出很多理由,说明为什么一个高效的网站对你来说并不那么重要。确实,你明白企业需要在互联网上有一定的存在感,但你可能并不认为一个高效的网站会对你的特定业务产生太大的影响——尤其是当你已…

【Linux】Socket编程接口 | 实现简单的UDP网络程序

文章目录 一、预备知识理解源IP地址和目的IP地址理解源mac地址和目的mac地址认识端口号理解源端口号和目的端口号理解“端口号(PORT)”和“进程ID(PID)” 认识TCP和UDP协议TCP协议UDP协议 网络字节序为什么网络字节序采用的是大端…

循环单链表算法库

学习贺老师数据结构 数据结构之自建算法库——循环单链表_循环单链表 csdn-CSDN博客​​​​​​ 整理总结出的循环单链表算法库 v1.0 : 基本实现功能 v2.0(2024.4.6): 修复Delete_SpecificLocate_CyclicList()删除节点函数bug,添加验证删除节点是否超范围判断 目录 1.主要功能…