【计算机网络】-介质访问控制子层-无线LAN
【计算机网络】-介质访问控制子层-无线LAN
802.11体系结构和协议栈
802.11网络使用模式:
有架构模式(Infrastructure mode)
无线客户端连接接入点AP,叫做有架构模式
自组织模式(Ad hoc mode)
没有AP点,只是客户端与客户端相互连接,这叫做自组织模式,但是这是未来的趋势
802.11 协议栈
802.11物理层
网卡兼容多个物理层,如802.11 a/b/g
802.11 MAC子层协议
802.11没有像以太网那样采用CSMA/CD原因
1.无线电几乎都是半双工的。无线电介质中像以太网那样的冲突检测机制根本不起作用。802.11试图避免冲突,802.11采用CSMA/CA协议
2.不同站的传输范围可能有所不同。会出现隐藏站和暴露站问题
带冲突避免的CSMA(CSMA/CA)
1.通过侦听,确定在一个很短的时间内没有信号;然后倒计数空闲时间槽,当有帧在发送时暂停该计数器;当计数器递减到0,该站就发送自己的帧
2.若帧发送成功,目标站立即发送一个短确认
3.若没收到确认,则可推断出传输发生了错误。这种情况下,发送方要加倍后退选择的时间槽数,再重新试图发送
4.如此反复,连续像以太网那样依指数后退,直到发送成功或达到重传的最大次数
CSMA/CA机制下发送帧
1.首先对于站A来说,站A先朝站D发送,之后站D回复给站A一个ack帧,告诉它收到了,在这段时间内别的站都不能发送
2.之后对于站B和站C,他们从开始发送都一直在监听着信道,终于当A和D之间的相互发送结束之后,他们准备发送了,两个站都先倒计数空闲时间槽,当有帧在发送时暂停该计数器;当计数器递减到0,该站就发送自己的帧,通过这样C开始发送,B只能又开始监听等待空闲
3.当C和D之间相互发送完,B再倒计数空闲时间槽,当有帧在发送时就暂停该计数器;当计数器递减到0,站B就发送自己的帧,显然B这次Backoff之后,可以发送了,结果它发送,然后D回复给它ack帧结束.
总结:
1.CSMA/CA插入退避槽以避免冲突
2.MAC对无线错误使用ACKs/重传
802.11支持两种操作模式
DCF(分布式协调功能)
1.没有使用任何的中心控制手段
2.使用CSMA/CA (带冲突避免CSMA)这个协议中既用到了物理的监听手段也用到了虚拟的监听手段。CSMA/CA支持两种操作方法。
- 第一种模式是,当一个站想要发送数据,它首先先监听信道,如果信道现在是空闲状态的话,它就开始发送,但是它在发送的过程中不会监听信道,而是直接送出整个帧,但是这可能会导致对于接受方收到的是由于被干扰而损坏的帧,如果信道恰巧不是那么闲着,那么发送方就推迟到信道空闲开始发送,假如发生冲突的话,那么冲突的站就等待一段随机时间之后再重新传送。
- 第二种模式采用了虚拟信道监听方法
例子:
前提条件:
1.A希望朝B发送数据,C位于A的无线范围内
2.D在B的范围内,但是不在A的范围内
过程:
对于A和B的角度:
1.A决定向B发送一个数据,协议开始工作,首先A超B发送一个RTS帧,这个帧的目的请求一个给B发送帧的许可,换句话说也就是问问B,我要给你发一个东西,我能不能发
2.B收到这个这个请求帧RTS帧之后,它可能决定给予许可,告诉A你发吧,B发送一个CTS帧给A
3.A在征得B允许之后,也就是收到RTS之后,就开始发送出数据了,并开启一个ACK计时器,这个ACK计时器是干什么的呢,是确定B是否按时成功接收了数据并回复了ACK帧,如果B成功接收数据并回复了ACK帧,那么终止协议交换过程,如果超时了那么一切从头再来。
对于C和D的角度:
1.由于C也在A的范围内,因而它也是可以收到A发送出来的RTS帧的,但是它知道目的地址不是它,所以不会回复CTS,但是它知道甭管咋说,有人要发送数据了,为了全局考虑,它虽好闭嘴,就不要再发送任何信息了,直到人家传输完成之后,它怎么知道人家啥时候传输完成呢?这是由于它可以从RTS帧中推算出人家要传送多长时间,它是如何保持安静的呢?有一种信号叫做NAV(网络分配向量),它不被发送出去,它是一种内部的提醒信号,用来保持一段时间的安静。
2.D没有收听到RTS,但是它在B的范围内,所以它收到了CTS,所以在B发送CTS之后,它也声明了NAV信号,表示闭嘴。
3.所有802.11必须支持DCF
PCF(点协调功能)
1.使用AP点控制自己覆盖范围内的一切活动
2.PCF是可选的,802.11可以选择支持,也可以选择不支持
概念总结:
1.为了减少究竟哪个站在发送的模糊不清,802.11定义信道侦听包括物理侦听和虚拟侦听
2.网络分配向量(NAV),有了虚拟侦听,每个站可保留的一个信道何时要用的逻辑记录,这通过跟踪NAV获得的,每个帧携带一个NAV字段,说明这个帧所属的一系列数据将传输多长时间
3.可选RTS/CTS机制使用NAV来防止隐藏站在同一时间发送(几乎没有价值的设计)。该机制如下所示
4.注意:NAV信号是不传输的,只是由站内部使用,提醒自己保留一定时间内的安静
5.使用NAV(网络分配向量)和可选RTS/CTS(通常不使用)的虚拟信道感知避免了隐藏终端
MAC的一些机制
不同的退避时段支持服务质量,短时间间隔用于首选访问,例如控制、VoIP
MAC还具有其他机制,例如,节能
802.11帧结构
1.帧具有由“帧控制”指定的不同类型
2.数据帧有3个地址要通过ap
3.802.11标准定义了三种不同类型的帧用于通信,包括数据帧、控制帧、管理帧
【计算机网络】-介质访问控制子层-无线LAN的更多相关文章
- 介质访问控制子层-Medium Access Control Sublayer:多路访问协议、以太网、无线局域网
第四章 介质访问控制子层-Medium Access Control Sub-layer 4.1介质访问控制子层概述 MAC子层不属于之前提到的OSI或TCP/IP架构的任何一层,这也是为什么这一层被 ...
- 【计算机网络】-介质访问子层-(信道划分介质访问控制&随机访问介质访问控制)
[计算机网络]-介质访问子层-概述 介质访问控制子层功能 解决信道争用的协议,即用于多路访问信道上确定下一个使用者的协议 是数据链路层协议的一部分 介质访问控制子层位置 位于数据链路层的底部! 信道分 ...
- 计算机网络之介质访问控制(静态划分信道、FDM、TDM、STDM、WDM、CDM)、(动态划分信道、ALOHA、CSMA、CSMA/CD、CSMA/CA)、令牌传递协议
文章转自:https://blog.csdn.net/weixin_43914604/article/details/104935912 学习课程:<2019王道考研计算机网络> 学习目的 ...
- 计算机网络-链路层(4)WiFi:802. 11无线LAN
有几套有关无线LAN 的802. 11标准,包括802.11b.802.11a和802.11g. 802.11g是至今为止最为流行的技术.一些双模式(802.11a/g)和三模式(802.11a/b/ ...
- s4-介质访问控制子层-1 MAC子层
数据链路层被分成了两个子层:MAC和LLC MAC子层要解决什么问题? 介质访问控制(Madia Access Control) 数据通信方式 单播(unicast):One - to - One ...
- 介质共享型局域网中的介质访问控制(MAC)协议需要具体解决的3个问题,CSMA/CD介质访问控制的基本思想
1,在某一时刻,那个节点可以发送数据 2,发送时是否会出现冲突 3,出现冲突时如何处理 CSMA/CD介质访问控制的基本思想:先监听,再发送.边发送,边监听,如发生冲突,则等待一段时间后再次发送
- WIFI:802.11无线LAN
IEEE 802.11 无线LAN(也称WiFi) IEEE是什么 电气和电子工程师协会(IEEE,全称是Institute of Electrical and Electronics Enginee ...
- 计算机网络课程优秀备考PPT之第四章介质访问控制层(四)
为了记录自己从2016.9~2017.1的<计算机网络>助教生涯,也为了及时梳理和整写笔记! 前期博客是, 计算机网络课程优秀备考PPT之第一章概述(一) 计算机网络课程优秀备考PPT之第 ...
- H3C 802.11无线网络的介质访问控制
随机推荐
- 笔记本在安装Windows+Linux双系统后,进入Windows时花屏的解决办法
问题:在笔记本安装双系统(Windows7+Ubuntu14.04)[先安装Windows,后安装Ubuntu]后,进入Windows时出现了花屏. 问题原因:笔记本只有集显,在系统启动时会先加载Ub ...
- Python + cx_Orcale 连接Oracle数据库
这是我在使用python连接Oracle数据库时遇到的问题.在此做一下总结. 1.pip install cx_Oracle 2.然后还需要在下载一个数据库客户端工具instantclient-bas ...
- Redis 4.x 5.x 未授权访问
环境搭建 5.0版本下载 wget http://download.redis.io/releases/redis-5.0.5.tar.gz tar xzf redis-5.0.0.tar.gz cd ...
- AIDL 的工作原理
当创建AIDL文件并Clean Project 代码后,会生成相应的Java文件: 先来一段伪代码:类整体结构 /* * This file is auto-generated. DO NOT MOD ...
- Ubuntu——关于以root权限操作和启用root账户的讨论
概括性的说,在Ubuntu下面,推荐用户加入到sudo之后,使用命令: sudo -i 来以管理员权限进行操作. 而不推荐用户直接登录root用户. 具体内参考:https://help.ubuntu ...
- wait/notify模拟连接池
连接池中的连接可重复使用,减少每次新建和烧毁连接对资源的消耗,但连接池的容量大小也要设置合理,否则也会占用多余的资源.连接池的基本功能是获取连接和释放连接 连接在java中也是一个类,连接对象是一个普 ...
- java二进制工具
可以运用jdk工具监控java应用性能,再配合 jmeter 进行了一个长时间的加压,在加压过程中重点关注了系统资源的使用情况 D:\Program Files (x86)\Java\jdk1.8.0 ...
- Linux特点
开放性 多用户 多任务 丰富的网络功能 可靠的系统安全 良好的可移植性 具有标准兼容性 良好的用户界面(命令界面,图形界面等) 出色的速度性能.
- [Python]在python中调用shell脚本,并传入参数-02python操作shell实例
首先创建2个shell脚本文件,测试用. test_shell_no_para.sh 运行时,不需要传递参数 test_shell_2_para.sh 运行时,需要传递2个参数 test_shell ...
- Maven打包时出现无法下载org.apache.maven.plugins插件
解决方式: 方式1:使用 mvn clean package -U 打包即可(注意:出于性能原因,Maven缓存插件无法下载的信息.根据您的设置,您可能需要通过将标志添加-U到命令行来清除此缓存,以使 ...