计算机网络学习笔记-3.2介质访问控制

文章目录

    • 介质访问控制
      • 静态划分信道
    • 动态分配信道
    • 轮询访问介质访问控制
    • 随机访问介质访问控制
      • ALOHA协议简介
      • ALOHA协议的工作原理

介质访问控制

介质访问控制(MAC,Medium Access Control),质访问控制的目的是确保多个设备能够高效、可靠地访问和使用共享通信介质,从而避免或减少冲突。主要分为静态划分信道动态分配信道两种方式。

静态划分信道

静态划分信道方式主要通过对信道进行预先的固定分割来实现介质的共享,适用于稳定的传输环境。在这种方式下,信道被分成若干不重叠的部分,每个部分分配给一个用户使用。主要有以下几种方法:

  • 频分多路复用(FDM,Frequency Division Multiplexing):将整个信道的频谱划分为若干个频带,每个用户占用一个特定频带,可以同时传输数据。FDM的典型应用是传统的广播和电视信号。
    在这里插入图片描述

  • 时分多路复用(TDM,Time Division Multiplexing):将时间划分为不同时隙,每个用户占用一个时隙,轮流发送数据。TDM常见于数字电话通信系统。

在这里插入图片描述

  • 统计时分多路复用STDM:而是根据用户的实际数据传输需求动态分配时隙资源,从而提高了信道的利用率。

  • 波分多路复用(WDM,Wavelength Division Multiplexing):将光纤信道划分为不同的波长,每个波长用于一个独立的信号传输,是光纤通信中广泛应用的技术。

  • 码分多路复用(CDM,Code Division Multiplexing):不同用户使用不同的编码进行通信,通过特定的编码来区分和恢复每个用户的数据流。CDM广泛应用于移动通信(如CDMA系统)。

动态分配信道

动态分配信道是在信道访问竞争的情况下分配资源,适用于传输需求不确定的情况。根据具体的访问方式,动态分配信道又分为轮询访问随机访问两类。

轮询访问介质访问控制

在轮询访问中,系统会按照预定顺序或使用令牌传递的方式,依次将传输机会分配给每个设备。

  • 令牌传递协议:通过一个“令牌”(Token)在网络中的节点之间轮流传递,持有令牌的节点可以访问信道,完成通信任务后将令牌传递给下一个节点。这种方式避免了竞争冲突,但适用于节点数量少且网络拓扑结构固定的场景,如令牌环网络。每个节点令牌时间有限制。

随机访问介质访问控制

随机访问方式是指设备可以在任何时候尝试访问信道,若发生冲突则重传。

ALOHA协议简介

ALOHA(Additive Links On-line Hawaii Area)是一种用于无线通信中的随机接入协议。ALOHA协议的核心思想是允许多个设备共享同一无线信道,而不需要严格的时隙分配。设备在有数据发送需求时,可以随时尝试发送数据,若发生冲突,设备会等待一段时间后重新尝试发送。

ALOHA协议的工作原理

ALOHA协议的工作过程可以分为以下几个步骤:

  1. 数据发送:设备在任意时刻如果有数据需要发送,便开始发送数据。
  2. 碰撞检测:如果两个设备同时发送数据,它们的信号会发生碰撞,导致数据丢失。
  3. 冲突后重发:发送者在检测到冲突后,会等待一个随机时间段再重新发送数据,以降低下一次碰撞的概率。
  • CSMA协议(Carrier Sense Multiple Access,多点接入载波侦听):在传输前侦听信道是否空闲。CSMA协议包含多种变体:

    • CSMA/CD(Collision Detection,碰撞检测)协议:设备在发送数据前侦听信道,若检测到信道空闲则发送数据,若发生碰撞则停止发送并重新传输。CSMA/CD用于以太网的介质访问控制。一旦设备检测到碰撞,它不会立刻再次发送数据。设备会在一个随机的时间段后再尝试重新发送数据,这个过程称为退避(Backoff)。随机等待时间是为了减少下一次发送时发生碰撞的概率。退避时间通常是根据某种退避算法来计算的。例如,指数退避(Exponential Backoff)算法会在每次碰撞后使等待时间呈指数增长。

    • CSMA/CA(Collision Avoidance,碰撞避免)协议:在发送数据前侦听信道,如果信道空闲则发送,若发现信道忙则推迟发送以避免碰撞。CSMA/CA常用于无线局域网(如Wi-Fi)的介质访问控制。CSMA/CA协议的目标是避免碰撞,而不是在碰撞发生后进行检测和处理。

      1. 载波监听(Carrier Sense)
        在发送数据之前,设备会监听信道是否空闲。
        如果信道空闲,设备可以开始发送数据。如果信道正在使用,设备会等待信道空闲。

      2. 随机退避(Backoff)
        如果信道忙碌,设备会等待一个随机的时间间隔再尝试发送。这个随机退避时间通常是通过选择一个数字(比如在某个区间内随机选择)来决定的。
        等待时间的单位通常是时间槽(Time Slot),这是一种同步机制,确保设备在同一时刻尝试发送数据的概率尽量低。

      3. 请求发送(Request to Send, RTS)/清除发送(Clear to Send, CTS)
        为了避免多个设备同时发送数据而发生碰撞,CSMA/CA协议引入了RTS/CTS机制:
        RTS:当设备准备发送数据时,它首先发送一个请求发送(RTS)信号给接收端,询问是否可以发送数据。
        CTS:如果接收端空闲,它会返回一个清除发送(CTS)信号,允许发送方开始数据传输。
        这种机制的作用是通过在信道上先发送RTS/CTS信号来确保没有其他设备发送数据,从而减少碰撞的机会。

      4. 数据发送(Data Transmission)
        一旦接收到CTS信号,设备开始发送数据。
        在数据发送过程中,设备不会检查是否发生了碰撞,因为无线信号中碰撞检测比较困难。相反,它会假定通过RTS/CTS机制避免了冲突。

      5. 确认应答(Acknowledgment, ACK)
        发送方在数据发送完毕后会等待接收方的确认应答(ACK)信号。
        如果发送方没有收到ACK,表示数据丢失,设备会重新发送数据。重传的时间也通常是随机选择的,以避免多次重传导致更多冲突。

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

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

相关文章

GitCode光引计划有奖征文大赛

一、活动介绍 GitCode平台汇聚了众多杰出的G-Star项目,它们犹如璀璨星辰,用各自的故事和成就,为后来者照亮前行的道路。我们诚邀广大开发者、项目维护者及爱好者,共同撰写并分享项目在GitCode平台上托管的体验,挖掘平…

深入理解接口测试:实用指南与最佳实践5.0(三)

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…

使用electron-egg把vue项目在linux Ubuntu环境下打包并安装运行

electron-egg一个入门简单、跨平台、企业级桌面软件开发框架https://www.kaka996.com/electron-egg 跳转地址 1,使用 git下载代码到本地,如果没有git需要进行安装 # gitee git clone https://gitee.com/dromara/electron-egg.git # github git clone https://github.com/dro…

DAY112代码审计PHP开发框架POP链利用Yii反序列化POP利用链

一、pop1链的跟踪 1、路由关系 2、漏洞触发口unserialize(base64_decode($data)); 2、__destruct(),魔术法方法调用close函数方法 3、未找到利用链,尝试__call魔术方法 4、逆推找call_user_func 函数 第一部分 namespace yii\db; class BatchQueryResu…

Maven 构建项目

Maven 是一个项目管理和构建工具,主要用于 Java 项目。它简化了项目的构建、依赖管理、报告生成、发布等一系列工作。 构建自动化:Maven 提供了一套标准化的构建生命周期,包括编译、测试、打包、部署等步骤,通过简单的命令就可以执…

任务调度中心-XXL-JOB使用详解

目录 详解 调度中心 执行器 原理 快速入门 源码仓库地址 1.初始化数据库 2.配置调度中心 1.解压源码 2.需改配置文件 3.启动调度中心 3.配置执行器 1.引入pom依赖 2.修改配置文件 3.执行器组件配置 4.部署执行器项目 4.开发第一个任务 BEAN模式(类…

ROM修改进阶教程------安卓14 安卓15去除app签名验证的几种操作步骤 详细图文解析

在安卓14 安卓15的固件中。如果修改了系统级别的app。那么就会触发安卓14 15的应用签名验证。要么会导致修改的固件会进不去系统,或者进入系统有bug。博文将从几方面来解析去除安卓14 15应用签名验证的几种方法。 💝💝💝通过博文了解: 1💝💝💝-----安卓14去除…

批量规范化与ResNet-paddle

批量规范化与ResNet——paddle部分 本文部分为paddle框架以及部分理论分析,torch框架对应代码可见批量规范化与ResNet import paddle print("paddle version:",paddle.__version__)paddle version: 2.6.1批量规范化 批量规范化(Batch Norma…

从零开始快速构建Vue3项目

一、技术选型 组件大类 具体插件 vue3插件 相关插件开发文档 基础架构搭建 初始项目搭建、打包构件工具:vite开始 | Vite路由管理及菜单权限封装vue-router介绍 | Vue Router状态管理Pinia介绍 | Pinia 中文文档API请求及异常封装axiosUI框架 element-uihttps…

74HC245

74HC245:典型的CMOS型缓冲门电路 在这里用于增加电压

BFS 算法专题(三):BFS 解决边权为 1 的最短路问题

目录 1. 迷宫中离入口最近的出口 1.1 算法原理 1.2 算法代码 2. 最小基因变化 ★★★ 2.1 算法原理 2.2 算法代码 3. 单词接龙 3.1 算法原理 3.2 算法代码 4. 为高尔夫比赛砍树 (hard) 4.1 算法原理 4.2 算法代码 1. 迷宫中离入口最近的出口 . - 力扣(…

「数据要素」行业简报|2024.11.上刊

纵观数据要素行业动态,洞察行业风向,把握行业脉搏! 一、政策发布 1、《山东省公共数据资源登记管理工作规范(试行)》公开征求意见 11月7日,为认真贯彻落实《中共中央办公厅 国务院办公厅关于加快公共数据资源开发利用的意见》《…

有什么好用的 WebSocket 调试工具吗?

在开发和测试 WebSocket 应用程序时,确保客户端能够正确地与服务器建立连接、发送和接收消息是非常重要的。 市面上有许多通用的 API 测试工具,它们大多专注于 HTTP 请求,而对于 WebSocket 的支持则显得较为有限。这种局限性使得开发者在寻找…

MQTT协议解析 : 物联网领域的最佳选择

1. MQTT协议概述 1.1 MQTT协议是什么 MQTT : Message Queuing Telemetry Transport 模式 : 发布 / 订阅主题优点 : 代码量小、低带宽、实时可靠应用 : 物联网、小型设备、移动应用MQTT 常用端口 : 1883 MQTT是一个网络协议,和HTTP类似,因为轻量简单&…

鸿蒙HarmonyOS 网络请求获取数据Http

注意的是;要为接口返回值指定类型 ,以及定义接口数据类型 index.ets import { http } from kit.NetworkKit;interface createAtType {date: number,}interface dataListType {createAt: createAtType;imgUrl: }Component export default struct TabBar {State dat…

2024136读书笔记|《飞鸟集》——使生如夏花之绚烂,死如秋叶之静美

2024136读书笔记|《飞鸟集》——使生如夏花之绚烂,死如秋叶之静美 《飞鸟集》[印]泰戈尔,一本有意思的诗集,中英文对照着读更有意思。“你是谁,读者,百年后读着我的诗?”让我觉得有些久别重逢,忽…

ROS Action

在 ROS 中,Action 是一种支持长时间异步任务的通信机制。与 Service 不同,Action 允许客户端发起一个请求,并在任务执行的过程中不断接收反馈,直到任务完成。这种机制非常适用于可能需要较长时间来完成的任务,比如机器…

约束(MYSQL)

not null(非空) unique(唯一) default(默认约束,规定值) 主键约束primary key(非空且唯一) auto_increment(自增类型) 复合主键 check&#xff08…

笔记 | image may have poor performance,or fail,if run via emulation

在Docker Desktop中现象如图: 当你运行 AMD64 平台代码时(Intel 和 AMD 芯),你的 Mac 必须模拟其CPU架构(因为你自身是ARM)。这通常会非常吃性能。 Docker Desktop 警告你在模拟 Intel/AMD x64 CPU 时性能可…

【C++】C++11特性(上)

✨✨欢迎大家来到Celia的博客✨✨ 🎉🎉创作不易,请点赞关注,多多支持哦🎉🎉 所属专栏:C 个人主页:Celias blog~ 目录 一、列表初始化 二、std::initializer_list 三、右值引用和移…