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

news2024/11/30 6:41:03

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 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.coloradmin.cn/o/1253585.html

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

相关文章

Linux操作系统之apt常用命令记录

文章目录 apt 命令apt 语法apt 常用命令列出所有可更新的软件清单命令升级软件包列出可更新的软件包及版本信息升级软件包,升级前先删除需要更新软件包安装指定的软件命令:安装多个软件包:更新指定的软件命令显示软件包具体信息,例如&#xf…

3. 内存单元

1位的内存单元 对于一个内存单元需要有:1个锁存器,数据输入,可写控制,是否读取(也是是否输出), 行和列(内存地址), 数据输出这几部分组成写入: 当行和列, 数据输入,可写全为1时则写入,(行 & 列 & 输入 & 可写)读出(输出): 当 行,列, 是否读取(也是是否输出) ( 行 …

C语言进阶之路-运算符小怪篇

目录 一、学习目标 二、运算符详谈 算术运算符 关系运算符 逻辑运算符 位运算符 特殊运算符 条件运算符 sizeof 运算符 打怪实战 三、控制流 二路分支 多路分支 const while与 do…while循环 语法: for循环 break与continue goto语句&#xff08…

应用Web3.0的5种方法提升你的点击量

Web3.0早已成为互联网的全新方向标,为用户带来全新的手机上网感受。它也变成吸引住点击量疯涨的秘密武器。我们将要详细介绍Web3.0的五种使用方法,帮助你更好的了解并应用Web3.0技术性,以提升你的点击量。 1.可靠的身份认证Web3.0技术性提供了…

GIS入门,开源 JavaScript二维地图引擎OpenLayers介绍

VueOpenLayers中文教程推荐,不同于OpenLayers官方文档使用htmljs原生原生教程,博主专栏包含大量vue整合案例和实际开发案例,非常适合地图开发小白快速入门。 vue整合OpenLayers6入门教程: 《VueOpenLayers入门教程汇总目录》vue整…

MySQL MHA高可用架构搭建

快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,博主会及时修改) MySQL MHA高可用架构搭建 MHA(Master HA)是一款开源的 MySQL 的高可用程序&#xf…

STM32_8(DMA)

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

11-25碎片小知识

一.strlen补充 strlen函数返回值是size_t,即无符号整型, size_t有头文件,是stdio.h 由于strlen函数返回值是无符号整型,所以下面代码要注意 -3会被转换成无符号的 实现my_strlen 法一:指针减指针 #define _CRT_S…

Spring Cache框架,实现了基于注解的缓存功能。

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Spring Cache框架 简介Spring Cache 环境准备S…

RedLock底层源码分析

RedLock底层源码分析 一、Redlock红锁算法 https://redis.io/docs/manual/patterns/distributed-locks/官网说明 1、为什么要学习这个?怎么产生的? ​ 一个很直接的问题,当我使用redis锁的那台机器挂了,出现了单点故障了&#…

源 “MySQL 8.0 Community Server“ 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。

源 “MySQL 8.0 Community Server“ 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。yum install mysql-server --nogpgcheck

【深度学习】因果推断与机器学习的高级实践 | 数学建模

文章目录 因果推断因果推断的前世今生(1)潜在结果框架(Potential Outcome Framework)(2)结构因果模型(Structual Causal Model,SCM) 身处人工智能爆发式增长时代的机器学…

VCenter6.7 Web访问提示503 Service Unavailable

PS:本文分享VMware Vcenter在web登录的时候报错:503 Service Unavailable,对于6.7.x版本比较适用,其他版本需自行测试。 简单来讲就是需要重启一下vsphre-client服务,如重启该服务仍无法解决,可以尝试重启一…

Windows系统管理之备份与恢复

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

MyBatis框架_01

Web后端开发_03 MyBatis框架 什么是MyBatis? MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。MyBatis本是 Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。官网…

MSI Center,XBox从任务栏取消固定

1,设置查看方式中隐藏项目可见 2,进入文件夹:C:\Users\Default\AppData\Local\Microsoft\Windows\Shell 找到下面这两个文件夹: 3,修改文件名或者删除这两个文件即可

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

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

NoSQL基础知识小结

NoSQL 基础知识 什么是 NoSQL? NoSQL(Not Only SQL 的缩写)泛指非关系型的数据库,主要针对的是键值、文档以及图形类型数据存储。 NoSQL 数据库天生支持分布式,数据冗余和数据分片等特性,旨在提供可扩展的高可用高…

超越噪音,让音乐重获新生:iZotope RX 10音频降噪修复软件

在音乐制作或者音频处理的过程中,噪音往往是一个让人头痛的问题。无论是环境噪音,还是设备产生的噪音,都会对音频质量产生重大影响。而现在,我们有了iZotope RX 10,这款专业的音频降噪修复软件,可以将你从噪…

HCIA题目解析(1)

1、【多选题】关于动态 MAC 地址表说法正确的是? A、通过报文中的源MAC地址学习获得的动态MAC表项会老化 B、通过查看指定动态MAC地址表项的个数,可以获取接口下通信的用户数 C、在设备重启后,之前的动态表项会丢失 D、在设备重启后&…