【计算机网络】随机访问介质访问控制中的ALOHA协议、CSMA协议、CSMA/CD协议和CSMA/CA协议

news2024/9/21 13:35:17

二、随机访问介质访问控制

信道上的所有用户可随机发送信息

1. 简单ALOHA协议

解决信息发送时的冲突问题。其特点是不监听信道,不按时间槽发送,随机重发。

思想:在超时后,等随机一段时间后再重传

2. 时隙ALOHA协议

时隙ALOHA协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送(超时重传)。

3. CSMA协议(无确认机制)

全称叫载波监听多路访问协议。

CS:载波监听,监听总线上的电压摆动值,电压摆动值超过阈值,就认定有信号出现了碰撞

MA:多点接入,意思就是许多计算机以多点接入的方式连接着一根总线上。

  • 坚持CSMA:先监听信道,如果信道是空闲的,就直接传输,否则就一直监听
  • 非坚持CSMA:先监听信道,如果信道是空闲的,就直接传输,否则就等待一个随机时间后再去监听
  • p-坚持CSMA:监听信道空闲,空闲时,以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输,信道忙则持续监听,直到空闲,再以p概率发送。若发生冲突,则等待下一个时间槽,再重复以上操作。

4. CSMA/CD协议(无确认机制)

应用于总线型网络、半双工网络,不能允许双方同时使用网络。其中CD的意思是碰撞检测。在发送数据时也要去监听信道,判断是否发送了碰撞。

无法在无线网络中进行碰撞检测,因此不适用于无线网络

  • CSMA/CD协议帧发送流程图
    在这里插入图片描述

  • CSMA/CD协议帧接收流程图
    在这里插入图片描述

碰撞示意图,
在这里插入图片描述

  • 双方主机最多经过2ʈ的时长就可以检测到是否发送了碰撞
  • 见过2ʈ的时长后没有检测到碰撞,那么此次发送就不会发送碰撞
  • 每一个主机在自己发送顿之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的。它取决于另一个发送帧的主机到本主机的距离,但不会超过总线的端到端往返传播时延(2ʈ),即一个争用期时间。

最小帧长:以太网规定最小帧长为64字节,最小帧长确保了主机可以在帧发送完成之前就检测到是否发生了碰撞(小于64字节的帧都是在路上发生过碰撞的帧)。

最大帧长:以太网规定帧最大长度为1518字节
在这里插入图片描述

5.CSMA/CD的截断二进制指数退避算法

该算法用于计算退避时间:
退避时间 = 2 ʈ ∗ { 0 , 1 , . . . , 2 k − 1 } , 其中 k = M i n [ 重传次数, 10 ] 退避时间 = 2ʈ * \{0,1,...,2^k-1\},其中k=Min[重传次数,10] 退避时间={01...2k1},其中k=Min[重传次数,10]
在这里插入图片描述

  • 若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可使重传需要推迟的平均
    时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
  • 重传达16次仍不能成功时,表明同时打算发送帧的主机太多,以至于连续发生碰撞,则丢弃该帧,并向高层报告。

6.CSMA/CA协议(有确认机制)

CSMA/CA:载波监听多址接入/碰撞避免适用于无线网络

所有站点必须在持续检测到信道空闲一段时间后才能发送帧,这段时间称为 帧间间隔IFSIFS的长短取决于帧的优先级。常用的IFS如下:

  1. 短帧间间隔SIFS:长度为28微秒,常用于ACK帧,CTS帧(clear to send),过长MAC帧分片后的数据帧
  2. SCF帧间间隔DIFS:128微秒,在DCF方式中用于发送数据帧和管理帧。
工作原理

在这里插入图片描述

CSMA/CA协议中必须使用退避算法的情况

  1. 发送数据帧之前检测到信道处于忙状态
  2. 在每一次重传一个数据帧时
  3. 在每一次成功发送后要连续发送下一个帧时

不使用退避算法的情况:信道空闲,并且所发送的数据帧不是成功发送完上一个立即连续发送的数据帧(不满足上面的第三种情况时)

7. CSMA/CA的退避算法

在发送帧前,需要 先结果DIFS时间后,再退避一段时间,才能将数据发送出去
在这里插入图片描述

8.CSMA/CA的信道预约和虚拟载波监听

信道预约:尽可能减少碰撞的概率和降低碰撞的影响。信道预约流程如下,

  1. 原站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS(Request To Send), 它包括源地址
    目的地址以及这次通信(包括相应的确认帧)所需的持续时间。
  2. 若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS(Clear To Send),它也包括这次通信所需的特续时间(从RTS帧中将此持续时间复制到CTS帧中)。
  3. 源站收到CTS帧后,再等待一段时间SFS后,就可发送其数据帧。
  4. 其他各站在接收到CTS帧或数据帧后就推迟接入无线局域网。
    在这里插入图片描述

虚拟载波监听:除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制。

站点只要监听到RTS顿、CTS帧或数据帧中的任何一个,就能知道信道被占用的特续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题。

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

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

相关文章

送给她最最浪漫的表白(Python代码实现)

目录I 最美的浪漫 II 昨日浪漫的表白III 关于“美”的哲思 IV Python代码实现 I 最美的浪漫 II 昨日浪漫的表白 她问:有一个问题,我只问一遍,为什么是我?我微微一笑答道:笞案很长,我要用一生来回答。我:图书馆旁边的星空真美&…

Linux面试总结

一.常用命令1.目录切换cd / 切换到根目录cd ../ 切换到上级目录cd ~ 切换到home目录2.查看目录ls 列出当前目录下所有的文件ls [路径]ls / 查看根目录 ls -l 相当于 ll 最常用的命令,用了表的方式列出当前目录的内容3.查看当前目录pwd-4.创建一组空文件touch5.显示文件内容cat6…

Maven打包操作

对于企业级项目,无论是进行本地测试,还是测试环境测试以及最终的项目上线,都会涉及项目的打包操作。对于每个环境下的项目打包,对应的项目所需要的配置资源都会有所区别,实现打包的方式有很多种,可以通过an…

【Linux】进程理解与学习(Ⅰ)

环境:centos7.6,腾讯云服务器Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹相关文章推荐:【Linux】冯.诺依曼体系结构与操作系统进程概念什么是进程?进程是什么?我们打开任务管理器可以看到有…

Flex弹性布局一文通【最全Flex教学】

文章目录一.Flex布局1.1 传统布局和flex布局1.1.1 传统布局1.1.2 flex弹性布局1.2 flex初步体验1.3 布局原理二.常见Flex属性2.1 常见父项属性2.2 flex-direction主轴的方向2.3 justify-content设置主轴上的子元素排列方式2.4 设置子元素是否flex-wrap换行2.5 align-itmes设置侧…

数列的极限

数列的极限的定义: 当正多边形的边数越来越多时,正多边形的面积越来越接近于圆的面积。 这个过程就叫做极限。 数列的形式: 数列的每一个下标对应一个数列元素值。 认识数列 这就是4个数列的表现形式。 当数列的下标无限增长时&#xff0c…

记录--uni-app中安卓包检查更新、新版本下载、下载进度条显示功能实现

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 需求描述 如果想要做一个app的话,可以有很多种选择方案,uni-app是其中的一个性价比高一些(坑多一些)的方案。本文记录一下,uni-app打安卓包以后,需要检查…

【操作系统】如何避免预读失效和缓存污染的问题?

【操作系统】如何避免预读失效和缓存污染的问题? 文章目录【操作系统】如何避免预读失效和缓存污染的问题?Linux 和 MySQL 的缓存Linux 操作系统的缓存MySQL 的缓存传统 LRU 是如何管理内存数据的?预读失效,怎么办?什么…

bash if 判断及特殊字符

bash if 判断 1)字符串判断 str1 str2     当两个串有相同内容、长度时为真 str1 ! str2     当串str1和str2不等时为真 -n str1       当串的长度大于0时为真(串非空) -z str1       当串的长度为0时为真(空串) str1        当串str1为非…

华为OD机试题,用 Java 解【众数和中位数】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…

Spark DPP

Spark DPP分区剪裁动态分区剪裁DPP (Dynamic Partition Pruning,动态分区剪裁) : 过滤维度表后,能削减事实表的数据扫描量,提升关联计算的执行性能 分区剪裁 需求 :统计所有头部用户贡献的营业额,并按照营业额倒序排…

体验 Linux 音频驱动

目录 一、音频接口简介 1、音频编解码芯片 2、 WM8960 3、I2S总线接口 二、硬件原理图 三、音频驱动使能 三、使能内核的 WM8960 驱动 1、取消 ALSA 模拟 OSS API 2、使能 I.MX6ULL 的 WM8960 驱动 验证 四、alsa-lib 和 alsa-utils 移植 1、alsa-utils 移植 ①、开…

AUTOSAR知识点Com(四):CANIf接收

1、概述 根据AUTOSAR BSW架构,接收到的数据将在上层通信模块,即AUTOSAR COM、CanNm、CanTp和DCM中进行评估和处理。这意味着,上层模块既不能使用CanDrv的缓冲区,也不能访问CanIf的缓冲区。只有当CanIfPublicReadRxPduDataApi设置为…

自考本科计算机网络原理(04741)历年大题真题【18年10月-22年10月】

文章目录一、简答题(历年真题)18年10月-22年10月历年简答题出题情况分析2018年10月2019年4月2019年10月2020年8月2020年10月2021年4月2021年10月2022年4月2022年10月二、综合题(历年真题)2018年10月2019年4月2019年10月2020年8月2…

javaFunction函数,函数式接口,HashMap中的computeIfAbsent() 方法的使用

由于平时很少用到这种写法&#xff0c;导致每次看到有一脸懵逼&#xff0c;然后一段时间就要总结复习一次。。。。。。如图所示???这是什么牛马写法? Function<String, String> toUpperCase str -> str.toUpperCase();仔细分析一下&#xff0c;这因该要新建一个对…

Allegro如何使用自带的功能更改差分的线宽和间距操作指导

Allegro如何使用自带的功能更改差分的线宽和间距操作指导 在做PCB设计的时候,有时候PCB已经完成了布线,但是因为某些原因更改了层叠导致了差分的线宽和间距发生了变化,导致差分需要重新走一遍,如下图 如果差分数量比较多,重走是比较费时间的,Allegro自身有快速更新差分线…

服务器源码安装openssh7.4p1

系统环境&#xff1a; OS&#xff1a;Kylin-Server-10-SP2-x86-Release-Build09-20210524 软件版本&#xff1a;OpenSSH_8.2p1, OpenSSL 1.1.1f 一、源码安装升级 1、下载源码包 下载zlib-1.2.11.tar.gz、openssl-1.0.2k.tar.gz、openssh-7.4p1.tar.gz&#xff0c; openssl不…

【强化学习】一文弄懂,Q-learning和Sarsa的区别

一文弄懂&#xff0c;Q-learning和Sarsa的区别 2023.3.6 本文主要参考莫烦老师内容1. 理解Q_learning算法 主要看下面讲解&#xff0c;就不抄了&#xff1a; https://mofanpy.com/tutorials/machine-learning/reinforcement-learning/intro-q-learning 读懂几个内容&#xf…

旋转数组的几种做法

千淘万浪虽辛苦&#xff0c;吹尽黄沙始到金。 ——刘禹锡 第一种方法&#xff1a;遍历整个数组 题目描述&#xff1a; 一个数组A中存有N (N>0) 个整数&#xff0c;允许使用另外数组&#xff0c;将每个整数循环向右移动M(M>0)个位置。如果需要…

【Redis学习3】Redis四种模式之主从复制

主从复制模式 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。 前者称为主节点&#xff08;master&#xff09;&#xff0c;后者成为从节点&#xff08;slave&#xff09;&#xff1b;数据的复制是单向&#xff0c;主要是由主节点到从…