MAC层协议总结

news2024/12/23 22:30:16

一、现存问题

广播网络存在问题

当信道的使用存在竞争时,如何分配信道的使用权----->如一个人停止讲话,另外可能两个或多个人同时讲话,当只有单个信道时,怎么决定下一个讲话的人?------>为了解决这个问题,制定协议。

广播信道也被称为多路访问信道(multiaccess channel)或随机访问信道(random access channel)。

用来决定广播信道中信道分配的协议属于数据链路层的子层,称为介质访问控制层MAC(medium access control)子层。

二、信道分配问题

 

局域网和城域网中的静态分配

传统方案:频分多路复用,将带宽分为N等份分给N个用户,每个用户有自己的频段,因此无冲突。

以上方案适用于用户较少且数目固定的情况,用户数目多且变化时,或通信量是突发的,会有资源浪费和短缺。

从上面的计算可知,采用FDM的延时变为原来排队的N倍,同样的TDM也是一样的,会有时隙的闲置等问题。因此,必须采用信道的动态分配

局域网和城域网中的动态分配

假定:

    1. 站模型:有N个独立的站;
    2. 单通道假设:所有通信通过单信道进行;
    3. 冲突假设:两个帧同时发生,会互相重叠导致冲突,信号难以辨认。
    4. 连续时间:帧在任何时候开始发送;
    5. 时隙:时间被分为离散的区间--时隙,帧在时隙开始的一瞬间开始发送。
    6. 载波侦听(carrier sense):所有站在使用信道以前都可以检测到,信道是否正在使用,如果信道正忙,其他站点不会再使用,直到信道空闲。
    7. 非载波侦听:各站在使用信道前不检测信道,只是盲目地发送,事后才知道本次传送是否成功。

三、多路访问协议

ALOHA协议

ALOHA是世界上最早的无线电计算机通信网,70年代初研制成功一种使用无线广播技术的分组交换计算机网络,也是最早最基本的无线数据通信协议,取名ALOHA是夏威夷人表示歉意的问候语。

基本思想:适用于任何无协调关系的多用户竞争单信道使用权的系统,包括纯ALOHA和分隙ALOHA,区别在于是否将时间分为离散的时隙。前者不需全局时间同步,后者必须时间同步。

  1. 纯ALOHA

基本思想:只要用户有数据待发,就让他们发,虽然存在冲突导致帧破坏的可能,但由于广播的反馈,发送方可以侦听信道得知发出的帧是否被破坏。

多个用户以某种可能导致冲突的方式共享共用信道的系统被称为竞争(contention)系统。

帧产生的示意图如下所示,图中各帧长度相同。

    • 工作原理:站点只要产生帧,就立即发送到信道上,规定时间内若收到应答,表示发送成功,否则重发;
    • 重发策略:等待一段随机的时间,然后重发;如再次冲突,则再等待一段随机的时间,直到重发成功为止。
    • 存在问题:任何时候,只要两帧试图同时使用信道就会产生冲突,并破坏冲突帧的内容;
    • 优点:简单易行;
    • 缺点:极容易冲突;
  1. 分隙ALOHA

基本思想:用时钟来统一用户的数据发送,方法是将时间分为离散的时间段,每段时间对应一帧,计算机不会立刻传输信息帧,而是会等到下一时隙才传送。

    • 重发策略:同纯ALOHA协议;
    • 代价:需要全网同步,可设置一个特殊站点,由该站点发送时钟信号;

载波侦听多路访问协议

网络站点侦听载波是否存在(有无传输)并相应动作的协议,被称为载波侦听协议(carrier sense protocol)。

持续CAMA

当站点要传输数据时,首先侦听信道,看是否有其他站点正在传送,如果信道正忙,持续等待直到侦听到信道空闲时,将数据送出。若发生冲突,站点就等待随机长的时间,然后重新开始。

存在问题:信道传输结束后,可能存在两个站点同时检测到空闲,一起传输从而冲突的情况;

非持续CAMA

发送前,站点会侦听信道的状态,如果没有其他站点发送,就开始发送。如果信道正在使用,将不再继续侦听该信道,而是等待一个随机时间后,再重复上述过程。

存在问题:利用率稍高于持续CAMA的同时,时延会略长。

​​​​​​​p-持续CSMA

用于分隙信道:站点传送之前侦听信道,如果信道空闲,以概率p传送,概率q=1-p将该次发送推迟到下一时隙;如果下一时隙仍然空闲,继续上述过程,一直重复,知道发送成功或信道忙为止。

通过对比信道利用和载荷曲线,可以看出:

从上图可以看出

    • 持续和非持续的CSMA是对ALOHA协议的改进,保证在侦听到信道忙时无新站点开始发送;
    • 另一改进是站点检测到冲突就取消传送,描述如下。
    • 有冲突检测的CSMA

带冲突检测的载波侦听多路访问CSMA/CD(carrier sense access with collision detection):在t0点处,一个站点已完成了帧的传送,其他想要发送的站点现在都可以尝试发送。如果两个或两个以上的站点同时决定传送,将会产生冲突。通过检测回复信号的能量或脉冲宽度并将其与传送信号比较,就可判断是否产生了冲突。

​​​​​​​

    • 当一个站点检测到冲突后,便取消传送,等到一个随机的时间后,尝试重新传送。

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

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

相关文章

JavaCV音视频开发宝典:rtsp转推到rtp(非TS流方式),及使用TS流发送解决sdp缺失问题

《JavaCV音视频开发宝典》专栏目录导航 《JavaCV音视频开发宝典》专栏介绍和目录 前言 在之前的文章中,由于忘记介绍使用的rtp推流方式都是TS流方式,RTP方式推流没讲,本章作为之前文章(JavaCV音视频开发宝典:rtsp拉流并使用转码方式转推到rtp)的补充。 注意:本文不需要…

Spring MVC Formatter(数据格式化)详解

Spring MVC 框架的 Formatter 与 Converter 一样,也是一个可以将一种数据类型转换成另一种数据类型的接口。不同的是,Formatter 的源数据类型必须是 String 类型,而 Converter 的源数据类型是任意数据类型。 在 Web 应用中由 HTTP 发送的请求…

keychron矮轴无线机械键盘简直就是yyds

一、背景 日常生活中,我们都离不开键盘,游戏党打游戏要键盘, 工作人员无论使用台式电脑还是笔记本操作都离不开键盘,尤其程序员这一族,键盘简直就是敲代码的灵魂。随着经济和科技飞速发展,我们早已不在像从…

[附源码]Python计算机毕业设计Django电子相册管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

公共建筑节能大数据应用进展

3月26日|清华大学建筑节能学术周——公共建筑节能—工程实践助力实现双碳目标 【3月26日公开论坛】公共建筑节能 – 工程实践助力实现双碳目标 公共建筑节能大数据应用进展 建筑用能负荷受到气象条件、建筑围护结构、设备系统、人行为等多重因素耦合影响&#xff…

C语言 结构体

C语言 结构体一、结构体的声明和初始化1. 结构体声明2. 结构体初始化二、typedef 重定义结构体三、结构体成员的类型四、结构体成员的访问五、结构体传参六、结构体的自引用七、结构体的内存对齐对齐规则程序清单1程序清单2程序清单3程序清单4修改默认对齐数一、结构体的声明和…

nvcc编译器之设备和主机独立编译(chapter 6)

目录 6. CUDA中的独立编译 6.1 单独编译时的代码改动 6.2 nvcc独立编译选项 6.3 库 6.4 示例 6.5 分布编译优化 6.6 独立编译的潜在问题 6. CUDA中的独立编译 在5.0版本之前,CUDA不支持分开编译,因此CUDA代码不能访问跨文件(编译单元&…

挂耳式耳机品牌排行榜,五款目前排行靠前的耳机分享

耳机传声的方式无非就是空气传播以及骨骼传播,而骨传导耳机就属后者,通过骨骼震动来完成声波的传递,在传递的过程无需经过外耳道和鼓膜,在一定程度上缓解了对耳道造成的损伤,减少对于耳道的负担,看到这里如…

OSI参考模型个人总结

附:参考模型 OSI参考模型 基于国际标准化组织ISO的建议,作为各种层上使用的协议国际标准化的第一步发展起来的,被称作ISO开放系统互联参考模型(open system interconnection refertence model),简称为OSI模…

[附源码]Python计算机毕业设计Django高校后勤保障系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

【解决问题】413错误 413 Request Entity Too Large 接口返回413 报413nginx

文章目录问题排查解决方案1、修改nginx配置文件nginx.conf2、更新完成后需要重启nginx3、其他可能性博客背景:JAVA项目,前端想弄个便捷富文本,直接很多图片转base64编码直接存库了。字段为longtext类型。这种问题通常是在使用http请求对象太大…

python实现中缀表达式转后缀表达式

前缀、中缀、后缀表达式(逆波兰表达式) 前缀表达式称为波兰表达式,前缀表达式的运算符位于操作符之前 举例说明:(34)x 5 – 6 对应的前缀表达式就是- X 3 4 5 6 中缀表达式转为后缀表达式: …

概率论与数理统计——事件间的关系

包含 事件A发生必然导致事件B发生。 代数中经常用这种方法证明两个事件相等。 事件的并(和) A与B至少有一个发生 事件的交(积) A与B同时发生 无限可列个:能按某种规律能把他排成一个序列(实变函数…

Typora导出Word

1.Typora导出Word配置 1.访问GitHub: https://github.com/jgm/pandoc/releases/tag/2.11.3.2https://github.com/jgm/pandoc/releases/tag/2.11.3.2 2.下载对应的文件 3.到本地安装Typora目录下解压 4.配置环境变量 我的电脑–属性–高级系统设置–高级–环境变量…

Python数据分析案例12——网飞影视剧数据分析及其可视化

背景介绍 Netflix是最受欢迎的媒体和视频流平台之一。他们的平台上有超过 8000 部电影或电视节目。截至 2021 年年中,他们在全球拥有超过 2 亿订阅者。 博主看美剧也较为多,像《怪奇物语》、《性爱自修室》等高分美剧都是网飞的。 对于网飞的影视剧&a…

【Docker学习系列】Docker学习1-docker安装

从本篇开始,凯哥将和大家一起学学docker。本篇是docker学习系列第一篇:安装docker。 docker安装前提条件:目前,centos发行版中的内核支持Docker.Docker运行在Centos7 64位上,要求系统为64位、linux系统内核版本为3.8以上的。凯哥所…

mybatis实战:三、mybatis多表查询的映射

依照上一期的继续 1.UserMapper.xml 除了直接对应基本数据类类型、表的实体类&#xff0c;还可能用到多表查询。 <select id"selectRolesByUserId" resultType"tk.mybatis.simple.model.SysRole">select r.id, r.role_name roleName, r.enabled, r…

一篇个人陈述应该包括这三个内容

大家好呀&#xff0c;申请季正如火如荼地进行着&#xff0c;不知道大家都忙碌得怎么样了呢&#xff1f;今天我们来聊聊个人陈述Personal statement,的撰写&#xff0c;包括一篇个人陈述应该包括哪些部分。 申请时&#xff0c;除了学习成绩等“硬背景”&#xff0c;个人陈述(PS…

五款朴实无华却又能极大提升办公效率的软件

最近后台收到好多小伙伴的私信&#xff0c;今天继续推荐五款小工具&#xff0c;都是免费使用的&#xff0c;大家可以去试试看。 1.光追动画制作——Luxion KeyShot Luxion KeyShot是一款互动性的光线追踪与全域光渲染3D渲染与动画制作软件&#xff0c;内置丰富多样的材质&…

Redis使用基础教程

本篇文章转载自&#xff1a;通俗易懂的Redis数据结构基础教程_Java程序员-张凯的博客-CSDN博客 Redis有5个基本数据结构&#xff0c;string、list、hash、set和zset。它们是日常开发中使用频率非常高应用最为广泛的数据结构&#xff0c;把这5个数据结构都吃透了&#xff0c;你…