【计算机网络笔记】多路访问控制(MAC)协议——随机访问MAC协议

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)——速率、带宽、延迟
计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)
Cookie技术
Web缓存/代理服务器技术
传输层服务概述、传输层 vs. 网络层
传输层——多路复用和多路分用
传输层——UDP简介
传输层——可靠数据传输原理之Rdt协议
传输层——可靠数据传输之流水线机制与滑动窗口协议
传输层——TCP特点与段结构
传输层——TCP的可靠数据传输
TCP连接管理(图解三次握手和四次挥手)
传输层——拥塞控制原理与解决方法
TCP的拥塞控制机制
网络层服务与核心功能
网络层服务模型——虚电路网络
网络层服务模型——数据报网络
Internet网络的网络层——IP协议之IP数据报的结构
IP分片
IP编址与有类IP地址
IP子网划分与子网掩码
CIDR与路由聚合
DHCP协议
网络地址转换(NAT)
ICMP(互联网控制报文协议)
IPv6简介
路由算法之链路状态路由算法
路由算法之距离向量路由算法
路由算法之层次路由
数据链路层概述
数据链路层——差错编码


  • 系列文章目录
  • 多路访问控制
  • 多路访问控制(MAC)协议介绍
  • 随机访问MAC协议
    • 时隙ALOHA协议
    • ALOHA协议
    • CSMA协议
      • CSMA/CD协议


前面介绍了数据链路层提供的差错检测或者说差错纠正服务,它们依赖于差错编码。这里介绍链路层提供的另一种服务——多路访问控制。为此,需要带大家了解多路访问控制的概念和多路访问控制(MAC)协议。


多路访问控制

多路访问控制主要是解决一类链路的使用问题。作为网络中的链路,大致可以分为两类:

  • 点对点链路:链路只连接两个相邻的结点。比如以太网交换机与主机间的点对点链路

  • 广播链路 :特点是物理介质被共享。这种链路比较多见。比如现在广泛使用的802.11无线局域网,它的无线电频率就是被共享的

    在这里插入图片描述

当大家共享物理介质进行通信的时候,必须有一个机制来协调发送数据。为此就需要一类多路访问控制(MAC)协议。


多路访问控制(MAC)协议介绍

在单一共享广播信道这类链路中,如果有两个或者两个以上结点同时传输时,势必会相互干扰。也就是冲突(collision)。所以在广播链路中,冲突的发生就意味着传输的一次失败。因此需要多路访问控制(MAC)协议来协调共享链路的使用

作为多路访问控制(MAC)协议,一般有一些基本性的考虑和需求:

  • 期望设计出来的MAC协议采用分布式算法决定结点如何共享信道,即决策结点何时可以传输数据
  • 大家在协调的过程中,协议必须基于信道本身,通信信道共享协调信息

理想的MAC协议是什么样的?

假设给定速率为R bps的广播信道。MAC协议应该满足这些需求:

  • 当只有一个结点希望传输数据时,它可以以速率 R发送
  • 当有M个结点期望发送数据时,每个节点平均 发送数据的平均速率是R/M
  • 完全分散控制。无需特定结点协调、无需时钟、时隙同步
  • 简单不复杂

MAC协议主要分三大类:

  • 信道划分(channel partitioning)MAC协议

    • 使用多路复用技术,将信道资源划分一些资源片,然后再分配下去
    • 比如:TDMA、FDMA、CDMA、WDMA等
  • 随机访问(random access)MAC协议。在计算机局域网中非常多见

    • 信道不划分,允许冲突
    • 采用冲突 “恢复” 机制
  • 轮转(“taking turns”)MAC协议

    • 结点轮流使用信道

随机访问MAC协议

在随机访问MAC协议中,当结点要发送分组时,会利用信道全部数据速率R发送分组,动态性很强,没有事先的结点间协调。因此就可能出现冲突(两个或多个结点同时传输)。所以随机访问MAC协议需要定义:

  • 如何检测冲突
  • 如何从冲突中恢复 (e.g., 通过延迟重传)

典型的随机访问MAC协议:

  • 时隙(sloted)ALOHA
  • ALOHA
  • CSMA、CSMA/CD、CSMA/CA

时隙ALOHA协议

假定:

  • 所有帧大小相同
  • 时间被划分为等长的时隙 (每个时隙可以传输1个帧)
  • 结点只能在时隙开始时刻 发送帧
  • 结点间时钟同步
  • 如果2个或2个以上结点在 同一时隙发送帧,结点即 检测到冲突

运行过程:

  • 当结点有新的帧时,在下 一个时隙(slot)发送
    • 如果无冲突:该结点可以在下一个时隙继续发送新的帧
    • 如果冲突:该结点在下 一个时隙以概率p重传该帧,直至成功

下面看一下示意性的示例:

假设网络中有三个结点,共享一个广播链路。

在这里插入图片描述

  • C表示冲突,E表示空闲,S表示发送成功

  • 优点:

    • 单个结点活动时,可以 连续以信道全部速率传输数据,也就是占用信道的全部资源
    • 高度分散化:只需同步时隙
    • 整个协议非常简单
  • 缺点:

    • 很容易发生冲突,浪费时隙
    • 结点也许能以远小于分组传输时间检测到冲突
    • 必须要求所有结点时钟同步

效率(efficiency):长期运行时,成功发送帧的时隙所占 比例 (很多结点,有很多帧待发送)。

  • 假设: N个结点有很多帧 待传输,每个结点在每个 时隙均以概率p发送数据。
  • 对于给定的一个结点,在 一个时隙将帧发送成功的 概率= p(1-p)N-1;对于任意结点成功发送帧 的概率= Np(1-p)N-1
  • 最大效率: 求得使Np(1- p)N-1最大的p* ,对于很多结点,求 Np* (1-p*)N-1当N趋近无穷时的极限,可得 最大效率= 1/e = 0.37。
  • 也就是说,时隙ALOHA协议中,信道被成功利用的时间仅占37%!

显然时隙ALOHA协议的效率并不能让人满意。


ALOHA协议

  • 非时隙(纯)Aloha:更加简单,因为无需进行时钟同步

  • 每个结点当有新的帧生成时,就会立即发送

  • 因此冲突的可能性增大了

    • 在t0时刻发送帧,会与在[t0 -1, t0+1]期间其他结点发送的帧冲突

      在这里插入图片描述

在这里插入图片描述


CSMA协议

载波监听多路访问协议 CSMA (carrier sense multiple access)最大的改进地方在于:

  • 发送帧之前,监听信道 (载波)。如果信道空闲,就发送完整帧;如果信道忙则推迟发送。

但是冲突仍然可能发生。另外,信号传播延迟的存在也会导致冲突的发生。这时如果继续发送数据,就会浪费信道资源。

如果发送数据的同时就能判断有没有冲突就很好了,在发现冲突后就终止后面数据的传输,能够很好的提高信道的效率。这时,CSMA/CD协议就出现了。


CSMA/CD协议

CD(Collision Detection)强调在发送数据帧的同时可以检测冲突。换句话说,就是短时间内可以检测到冲突。在冲突后中止传输,就能减少信道浪费。

对于这个协议的冲突检测机制:

  • 有线局域网易于实现:通过测量信号强度,比较发射信号与接收信号
  • 无线局域网很难实现:信号衰减很快。接收信号强度淹没在本地发射信号强度下

把这样的特性概括为:“边发边听,不发不听

例题:

在这里插入图片描述

CSMA/CD协议的效率比ALOHA更高。

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

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

相关文章

Error PostCSS plugin autoprefixer requires PostCSS 8

文章目录 一、情况一二、情况二三、总结 在启动 vue项目时,突然控制台报错: Error: PostCSS plugin autoprefixer requires PostCSS 8。然后依次出现下面几种情况,依次解决完,项目就可以正常启动了 一、情况一 error in ./src/…

万宾科技可燃气体监测仪的功能有哪些?

随着城市人口的持续增长和智慧城市不断发展,燃气作为一种重要的能源供应方式,已经广泛地应用于居民生活和工业生产的各个领域。然而燃气泄漏和安全事故的风险也随之增加,对城市的安全和社会的稳定构成了潜在的威胁。我国燃气管道安全事故的频…

redhat9.3配置国内yum阿里源

由于新建的Redhat9.3在未注册激活之前是没有yum源的配置文件的,所以需要我们自己新建一个yum源文件的配置文件 vim /etc/yum.repos.d/aliyun_yum.repo 内容如下: [ali_baseos] nameali_baseos baseurlhttps://mirrors.aliyun.com/centos-stream/9-str…

基于Flutter的图片浏览器的实现

一 效果展示: 1. 图片展示: 2.混色,平铺,拉伸,原图展示 二 实验准备: 1.在包结构中创建images包来存放我们用到的图片,在pubspec.yaml中声明路径: 2. 检查虚拟机是否正常运行&…

crontab计划任务

银河麒麟v10服务器版和桌面版执行周期计划任务分为两类:系统任务调度和用户任务调度。系统任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的,通过vim /etc/crontab执行。用户自己设置的计划任务则使用crontab 命令 配置…

数据结构——堆的实现(详解)

呀哈喽&#xff0c;我是结衣。 堆的介绍 如果有一个关键码的集合K {k0,k1,k2,…,kn-1},把它的所有元素按照完全二叉树的顺序储存方式储存在一个一维数组中&#xff0c;并满足&#xff1a;Ki<K2i1且ki<K2i2(Ki>K2i1且Ki>-K2i2)i 1,2,3…,则称为小堆&#xff08;或…

Windows系统管理之备份与恢复

本章目录&#xff1a; 一. 本章须知&#xff1a; 前置条件 需要创建一个新的磁盘 前置条件2 给新添加的磁盘分盘 二. 了解开启并学会使用Windows sever backup 如何使用备份与恢复“备份计划”“一次性备份”“恢复” 最后是用命令行“一次性备份命令 ”完成一次备份 话不多说 …

React中如何解决点击<Tree>节点前面三角区域不触发onClick事件

React中如何解决点击节点前面三角区域不触发onClick事件&#xff0c;如何区别‘左边’和‘右边’区域点击逻辑呢&#xff1f;&#xff08;Tree引用开源组件TDesign&#xff09; 只需要在onClick里面加限制一下就行&#xff1a; <TreeexpandMutexactivabletransitiondata{t…

从0开始学习JavaScript--JavaScript函数返回值

在JavaScript中&#xff0c;函数是一种强大的工具&#xff0c;不仅能够执行一系列操作&#xff0c;还可以返回值。理解函数返回值的概念对于编写清晰、灵活的代码至关重要。本文将深入探讨JavaScript函数返回值的各种方面&#xff0c;包括基本返回值、多返回值、异步函数的返回…

STM32_8(DMA)

一、DMA DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输&#xff0c;无须CPU干预&#xff0c;节省了CPU的资源12个独立可配置的通道&#xff1a; DMA1&#xff08;7个通道&#xff09;&#xff…

吉他初学者学习网站搭建系列(3)——如何实现吉他在线调音

文章目录 背景知识teoriapitchytone效果 背景知识 学过初中物理就会知道&#xff0c;声音是由空气振动产生的。振动产生波&#xff0c;所以声音就是不同振幅和频率的波构成的。振幅决定了声音的响度&#xff0c;频率决定了声音的音高。想更进一步了解的可以访问这个网页wavefo…

万字解析设计模式之责任链模式、状态模式

目录 一、责任链模式 1.1概述 1.2结构 1.3实现 1.4 优缺点 1.5应用场景 1.6源码解析 二、状态模式 2.1概述 2.2结构 2.3实现 2.4优缺点 2.5应用场景 三、责任链模式实验 任务描述 实现方式 编程要求 测试说明 四、状态模式实验 任务描述 实现方式 编程要…

Leetcode—55.跳跃游戏【中等】

2023每日刷题&#xff08;四十&#xff09; Leetcode—55.跳跃游戏 贪心法实现代码 #define MAX(a, b) ((a > b)? (a): (b))bool canJump(int* nums, int numsSize) {int k 0;for(int i 0; i < numsSize; i) {if(i > k) {return false;}k MAX(k, i nums[i]);}r…

Linux(7):Vim 程序编辑器

vi 基本上 vi 共分为三种模式&#xff0c;分别是【一般指令模式】、【编辑模式】与【指令列命令模式】。 这三种模式的作用分别是&#xff1a; 一般指令模式(command mode) 以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式&#xff0c;也简称为一般模式)。在这个模…

微软 Edge 浏览器目前无法支持 avif 格式

avif 格式在微软 Edge 浏览器中还是没有办法支持。 如果你希望能够查看 avif 格式&#xff0c;那么只能通过浏览器打开&#xff0c;然后浏览器将会把这个文件格式下载到本地。 avif 格式已经在其他的浏览器上得到了广泛的支持&#xff0c;目前不支持的可能就只有 Edge 浏览器。…

管理后台系统,springboot+redis+nginx+html+bootstrap

一个简易版的管理后台系统&#xff0c;前后端分离&#xff0c;可适用于小团队开发&#xff0c;支持二次开发。 后端主要技术springboot&#xff0c;他可以帮我们快速的搭建项目&#xff0c;并快速实现开发。 redis做缓存&#xff0c;保存登录状态和一些高频率查询的基础数据。…

浅谈建筑节能监管平台在高校能源管理中的实践与应用

安科瑞 华楠 摘要&#xff1a;以节约型校园建设示范工程———宁夏大学节能监管平台项目建设为例&#xff0c;对系统的总体构架、关键技术、管理软件功能进行了详细的介绍。同时针对项目建设、运行和管理过程中出现的一些问题&#xff0c;提出有针对性的解决措施&#xff0c;为…

.NET6 开发一个检查某些状态持续多长时间的类

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !序言 在代码的世界里,时常碰撞…

从0到0.01入门 Webpack| 007.精选 Webpack面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Spring Cloud 版本升级遇坑记:OpenFeignClient与Gateway的恩怨情仇

Spring Cloud 版本升级遇坑记&#xff1a;OpenFeignClient与Gateway的恩怨情仇 近日&#xff0c;在对项目中的 Spring Boot、Spring Cloud 以及 Spring Cloud Alibaba 进行版本升级时&#xff0c;遭遇了一个令人头疼的问题&#xff1a;Spring Cloud Gateway 在运行时一直卡住&a…