计算机网络——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.rhkb.cn/news/307664.html

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

相关文章

DVWA-xss储存型及beef下载(kali)

beef下载 apt-get update apt-get install beef-xss 登录网址是 这里的ip为虚拟机的地址 之后会让你设置密码 如果密码和用户不知道在etc/beef-xss/config.yaml可以查看 这是偷cookie的就是代码 这里是可以修改的不修改的话代码是不全的 通过beef拿到了cookies之后在网页…

【自然语言处理八-transformer实现翻译任务-一(输入)】

自然语言处理八-transformer实现翻译任务-一(输入) transformer架构数据处理部分模型的输入数据(图中inputs outputs outputs_probilities对应的label)以处理英中翻译数据集为例的代码 positional encoding 位置嵌入代码 鉴于transfomer的重要性&#xf…

抖音快手直播整蛊软件插件工具合集(多啦咪/梦歌)

哪一款整蛊直播软件靠谱呢? 相信很多粉丝宝宝们,在做抖音直播或者快手的都在找好用又便宜的直播整蛊插件或者软件,但是好用的几乎少之又少,今天梦歌给大家分享几个,目前在用的也亲测过的几个软件及插件工具给大家参考&…

记录一下MySQL8版本更改密码规则

#查看当前密码策略 show variables like validate_password%;#修改密码等级为low set global validate_password.policy LOW; #注意MySQL8版本这是点,不是_#修改密码长度为6 set global validate_password.length 6;#查询我的数据库中user表host和user select host,…

基于javassm的医院挂号系统

开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclip…

大厂Java笔试题之判断字母大小写

/*** 题目:如果一个由字母组成的字符串,首字母是大写,那么就统计该字符串中大写字母的数量,并输出该字符串中所有的大写字母。否则,就输出* 该字符串不是首字母大写*/ public class Demo2 {public static void main(St…

图片批量高效缩放,批量缩放GIF图片并在缩放后以bmp位图保存

在这个数字化时代,图片已经成为我们生活和工作中不可或缺的一部分。无论是制作海报、设计网站,还是日常分享,我们都需要对图片进行处理。然而,面对大量的GIF图片,如何高效地进行缩放并转换为BMP位图,成为了…

Traefik与传统的Edge Router有何不同?

在云原生时代,传统的网络架构和现代的解决方案之间存在明显的差异。特别是在处理网络流量和路由方面,传统的 Edge Router 与像 Traefik 这样的现代反向代理和负载均衡器相比,展现出许多不同的特点。本文将深入探讨 Traefik 与传统 Edge Route…

阿里云账号注册流程,支持多种方式注册,这种方法最简单

2024年阿里云账号注册支持手机号短信验证码注册、淘宝、支付宝和钉钉注册四种方式,使用手机号注册后还需要完成实名认证,如果选择支付宝、淘宝或钉钉注册的话,可以自动调用实名认证信息,免去实名认证步骤。阿里云百科aliyunbaike.…

Tomcat启动闪退的10个解决小技巧

引言 大家好!在我们日常开发中,使用Tomcat作为Web服务器是相当常见的。 然而,遇到Tomcat启动后立即闪退的问题也不是什么稀罕事。 这种情况可能会让人感到困惑和沮丧,特别是当你急需完成一个项目或者修复一个重要的bug时。 不过…

【Java SE】多态

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 多态1.1 多态是什么1.2 多态的意义1.3 多态的实现条件 2. 重写2.1 重写的概念2.2 重写的规则2.3 重写与重…

MP4 封装格式详解

MP4 封装格式详解 MP4 封装格式详解简介概念与术语MP4 整体结构Box 结构Box HeaderBox Data MP4 典型 Boxftyp(File Type Box)moov(Movie Box)mvhd(moov header)traktkhd(track header box&…

vue3大事件项目3

弹框验证 先准备变量: const formModel ref({ cate_name: , cate_alias: }) 还有规则: const rules { cate_name: [ { required: true, message: please input name, trigger: blur }, { pattern: /^\S{1,10}$/, message: must be 1-10, trigger: blur } ], …

太阳光光照试验耐久性老化试验使用太阳光模拟器系统

上海科迎法电气科技有限公司生产的太阳光模拟器系统主要应用于太阳能研究、材料研究、光伏组件测试、空间环境模拟器、植物生长研究、光热模拟等领域,主要表现特征为: 1. 太阳能研究:可用于模拟不同光照条件下太阳能电池的性能测试和研究&am…

高清视频素材,免费下载,收藏好这6个网站。

国内大部分视频素材网站都需要付费购买,这让很多从事视频剪辑的朋友不知道去哪里找免费的视频素材,本期就给大家分享我收藏多年的6个视频素材网站,都可以免费下载,还可以商用,而且国内外的都有哦,有需要的朋…

java-spring 图灵 02 手写spring

01.idea中创建一个maven管理的空项目 02.模拟创建出spring容器类,这里叫wzpApplicationContext,创建的时候会自动加载配置类的数据 public class wzpApplicationContext {private Class configClass;public wzpApplicationContext(Class configClass) …

【Qt 学习笔记】QWidget的windowOpacity属性 | cursor属性 | font属性

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ QWidget的windowOpacity属性 | cursor属性 | font属性 文章编号&#…

解决 MSYS2 Qt 6.7 默认 stylesheet 在 windows 11 下的显示故障

项目场景: MSYS2 升级到 Qt6.7.0,发现显示故障,所有Qt6程序以及 QtCreator的SpinBox都显示不全,Combox的底色不对。 问题描述 2024年4月1日,pacman升级MSYS2后,Qt6遇到风格错误。 msys环境: …

ThingsBoard实现告警规则创建并生成报警信息

一、概述 1.概念 2.告警规则 3.简单报警条件 步骤1. 打开设置配置 ​步骤2. 单击警报规则 ​步骤3. 单击警报条件 ​步骤4. 单击过滤条件 ​步骤5. 选择数据键 ​步骤6. 设置条件 ​步骤7. 保存条件 ​步骤8. 应用更改 4.测试告警 1、使用MQTT发送遥测属性 2、查看…

数据结构:双向链表

一.双向链表的结构 最常用的链表就是单链表和双向链表。我们首先要知道,链表有八种分类。单链表是不带头单向不循环链表。而此篇博客要讲的是带头双向循环链表。 结构如下: 注意:带头链表里的头节点,实际为“哨兵位”&#xff0…