计算机网络学习笔记-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.xdnf.cn/news/14808.html

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

相关文章

软件测试-巨量测试开发

软件测试-巨量测试 编辑时间:2024/11/13 软件测试基础知识 软件测试定义和测试分类 软件是计算机程序、程序所用的数据以及有关文档资料的集合。 软件测试分类 按测试执行阶段划分 单元测试、集成测试、系统测试、验收测试 是否运行程序划分 动态测试、静态测试…

pycharm中from[本地包]import文件/模块出现问题(最最最全方法!)

1.通过PYTHONPATH的方法在此处将路径添加上,能够让IDE访问得到。 2.通过选中目标文件所在的文件的文件夹单击右键,如下图所示可以看到下方的mark directory as选项中存在 存在excluded,选择此项可解决问题,如果仍有问题可以尝试其…

【日志】Unity——Roll-A-Ball(二)

2024.11.13 【Unity】 3.搭建游戏场景 4.设置可拾取物品 4.1设置可拾取方块 给予一定的变化和颜色 编写方块旋转脚本Rotator.cs using System.Collections; using System.Collections.Generic; using UnityEngine;public class Rotator : MonoBehaviour {// Update is cal…

机器学习(1)线性回归

前言   线性回归算法是机器学习深度学习入门的必学的算法,其算法原理虽然简单,但是却蕴含着机器学习中的一些重要的基本思想。许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结构或高维映射而得。同时机器学习深度学习的核心思想就是优…

CSS:导航栏三角箭头

用CSS实现导航流程图的样式。可根据自己的需求进行修改,代码精略的写了一下。 注:场景一和场景二在分辨率比较低的情况下会有一个1px的缝隙不太优雅,自行处理。有个方法是直接在每个外面包一个DIV,用动态样式设置底色。 场景一、…

Redis设计与实现 学习笔记 第十七章 集群

Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding,水平切分)来进行数据共享,并提供复制和故障转移功能。 17.1 节点 一个Redis集群通常由多个节点(node)组成,在刚开…

(11)(2.1.7) FETtec OneWire ESCs(二)

文章目录 前言 3 组态 4 可选功能 5 SITL模拟 6 故障排除 前言 !Note 此功能在固件版本4.1.1及更高版本上可用。 3 组态 FTW掩码 SERVO_FTW_MASK 参数选择将哪些伺服输出(如果有的话)路由到 FETtec ESC。更改此参数后需要重新启动。…

Python Bokeh 数据可视化教程

Python Bokeh 数据可视化教程 引言 在数据科学和分析的过程中,数据可视化是一个至关重要的环节。它不仅能帮助我们更好地理解数据,还能在报告和展示中提升数据的可读性和吸引力。Python 作为数据科学的主要工具之一,提供了多种数据可视化库…

(免费领源码)java#SSM#mysql高校就业数据可视化管理系统的设计与实现81461-计算机毕设 原创

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校就业管理等问题,对高校就业…

wordcloud库基本介绍

文章目录 wordcloud库概述wordcloud库的安装 wordcloud库使用说明配置对象参数 wordcloud应用实例实例: 政府工作报告词云 wordcloud库概述 wordcloud是优秀的词云展示第三方库 词云以词语为基本单位,更加直观和艺术地展示文本 wordcloud库的安装 (cmd命令行) pip install …

替换OpenTSDB和HBase,宝武集团使用IoTDB助力钢铁设备智能运维

时序数据库 IoTDB 应用于宝武集团全基地钢铁时序数据管理,激活数据资产,赋能大型设备智能运维。 1. 背景概述 宝武装备智能科技有限公司(以下简称:宝武智维)是中国宝武设备智能运维专业化平台公司,30 余年始…

面试_ABtest原理简介

01 什么是ABtest ABtest来源于假设检验,现有两个随机均匀的有样本组A、B,对其中一个组A做出某种改动,实验结束后分析两组用户行为数据,通过显著性检验,判断这个改动对于我们所关注的核心指标是否有显著的影响&#xf…

Anolis8.2系统中搭建python环境

文章目录 安装依赖项依赖项介绍 下载python源码包安装python源码包 安装依赖项 [rootPython ~]# dnf install -y gcc make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel xz-devel libffi-devel uuid-devel libnsl2-d…

Gurobi学术版+Anaconda安装步骤

注意:在anaconda虚拟环境中安装gurobi库是不需要在本地下载gurobi这个软件的,只需要conda install gurobi即可,或者指定版本的安装conda install -c gurobi gurobi11.0.3。 step0:安装ananconda step1:获得学术许可&a…

OBOO鸥柏:旗下户外景区自助触摸查询一体机已布局智慧城市便民

OBOO鸥柏作为户外自助查询一体机制造商品牌源头工厂一体化,鸥柏室外液晶广告屏凭借其独特的展览展示交互式查询互动优势,OBOO鸥柏正逐渐成为城市公共服务与商业信息查询的商用及工业液晶显示终端机新标杆。基于智慧城市便民化布局主要体现于以下几点&…

Mysql每日一题(分组+select嵌套查询)

本题我通过自己的努力,利用多个知识点,完成了本题,目前还没有查看题解,一会会给出别人题解的方法,自己写的代码就很很繁琐很麻烦,如果是大佬,可能知道这一题就直接这个窗口函数加这个窗口函数就…

Java并发篇--线程池

线程池 为什么要创建线程池 因为CPU核心数量有限,如果每来一个任务就创建一个线程,就会使线程数远远多于CPU核心数,使线程上下文切换过于频繁,会导致系统性能降低。而且每创建一个线程都会占用一定的内存,如果每来一个任务就创建一个线程,内存消耗太大了。 ThreadPoolExecuto…

ubontu--cuDNN安装

1. 下载 cuDNN https://developer.nvidia.com/cudnn 2. 拷贝到服务器/home/<username>文件夹下 解压缩到当前文件夹&#xff1a; tar -xvf cudnn-linux-x86_64-9.5.1.17_cuda11-archive.tar.xz复制头文件和库文件到cuda安装目录/usr/local/cuda/ sudo cp /home/usern…

Mac终端使用brew命令报错:zsh: command not found: brew

当在终端中出现 zsh: command not found: brew 这个错误时&#xff0c;可能是因为 Homebrew 没有被正确安装&#xff0c;或者它的路径没有被添加到环境变量中。 1. 检查 Homebrew 是否已安装&#xff1a; 打开终端&#xff0c;运行以下命令来检查 Homebrew 是否已安装&#xf…

斯坦福iDP3——改进3D扩散策略以赋能人形机器人的训练:不再依赖相机校准和点云分割(含源码解析)

前言 今天10.23日&#xff0c;明天1024则将作为长沙程序员代表&#xff0c;在CSDN和长沙相关部门举办的1024程序员节开幕式上发言&#xff0c;欢迎广大开发者来长工作 生活 考察 创业&#xff0c;​包括我司七月也一直在招聘大模型与机器人开发人员 后天&#xff0c;则将和相关…