做无线网络测试已经大半年了,在这过程中发现《802.11权威指南》真是以本好书,在这里分享一下学习到的知识,也帮助我记忆。

1.MAC:

  mac(媒介访问控制层),它位于物理层之上,控制着数据的传输,负责核心的额成帧操作以及与有线网络的交互,不同的物理层提供不同的传输速率,不过物理层之间必须彼此互用。802.11采用CSMA/CA来避免冲突。

2.面临的问题

  a.射频链路的品质--

  b.隐藏节点的问题---通过RTS/CTS解决

3.载波侦听功能和网络分配矢量

  a.载波侦听主要用来判断媒介是否处于可用状态,802.11有两种载波侦听:物理载波侦听和虚拟载波侦听,物理载波侦听是通过物理实现,使用很少。

  b.虚拟载波侦听由网络分配矢量(NAV)提供,帧中的Duration字段用来预定媒介的使用时间,NAV就是一个定时器(timer),当NAV为0时,表示媒介处于空闲状态,利用NAV可以确保工作站的原子操作不被中断。

    

4.帧间间隔

  短帧间间隔(SIFS)用于高优先级传输场合,如RTS/CT以及肯定确认。

  PCF帧间间隔(PIFS)用于PCF(点协调功能)在无竞争操作中。

  DCF帧间间隔(DIFS)是竞争式服务中最短的媒介闲置时间,如果媒介长时间处于DIFS,则认为媒介处于空闲状态

  扩展帧间间隔(EIFS)只有在帧出现错误的时候在会用到EIFS。

这写帧间间隔的关系如图:

  

5.利用DCF进行基于竞争的访问

  a.媒介闲置时间大雨一个DIFS,便可以立即进行传输,如果帧呗准确的收到,则媒介空出一个DIFS,如果出现错误,媒介必须空出一个EIFS。

  b.错误恢复

  c.多帧序列可以在传输过程的每个步骤中更新NAV。

  d.如果叫高层的包的大小超过所设定的阈值,则必须使用扩展帧序列

    1)、包的大小超过RTS阈值,必须使用RTS/CTS交换过程。RTS阈值为0时,表示传送数据就交换RTS/CTS。RTS阈值为2347时,表示用于不会发送RTS信号。

    2)、长度超过分段阈值的必须加以分段。

6.无线到有线帧的转换

  a.检查无线帧的完整性

  b.查看是否还要处理这个帧:

    1).将Address1的地址改为bssid(有些产品可能不实现这个)

      通过验证, MAC标头的Address3的地址作为Ethernet的目的地址,Address2作为Ethernet的原地址,Data中的SNAP标头将类型代码复制到Ethernet帧里的Type字段中,顺序信息主要提供帧分段重组用,如果有qos处理过程,在这里需要进行无线接口与有线接口的qos映射。

    2).802.11 MAC检测且移除重复的帧

  c.解密

  d.解密成功之后,ap检查该帧是否为帧片段,是否需要进一步重组

  e.重新计算FCS

  f.产生的新的帧交付给Ethernet接口传送。

  

7.有线到无线帧的转换

  a.检查Ethernet的完整性FCS,检测目的地址是否为接入点上的终端

  b.将SNAP标头附加与Ethernet帧的数据之前

  c.对帧进行调度(省电操作,缓存帧)

  d.一旦帧呗置于队列待传,就会呗赋予一个序列号

  e.如果需要,则对帧主体进行加密

  f.802.11标头根据Ethernet的MAC标头产生

    Ethernet的目的MAC作为Address1,Ethernet的源MAC作为Address3,将BSSID至于Address2中,把预计传送时间写如到Duration字段,

  g.重新计算FCS

  h.将产生的帧交互给无线网口

802.11MAC基础的更多相关文章

  1. 第三章 802.11MAC基础 ****需要深入理解

    1.mac所面临的挑战 射频链路品质     radio link   容易受到干扰    802.11采用肯定确认机制   所有传送出去的帧都必须得到响应        工作站发送请求帧    基站 ...

  2. 802.1X基础

    这是一个认证规范.使用EAPOL协议在客户端与认证端交互. EAPOL协议:Extensible Authentication Protocol over LAN. 假设三个实体: 客户端:PC 认证 ...

  3. WiFi(802.11)基础

    参考: 1. Wireshark数据包分析实战(第2版) 2. wifi技术从了解到熟悉1----概念.802.11协议简述及四种主要物理组件.wifi适配层.wap_supplicant和wap_c ...

  4. WiFi相关基础概念

    转自:https://blog.csdn.net/lbaihao/article/details/73250798 一.WiFi相关基础概念 1.什么是wifi 我们看一下百度百科是如何定义的: Wi ...

  5. 【转】WiFi基础知识

    http://blog.csdn.net/myarrow/article/details/7930131 1. IE802.11简介 标准号 IEEE 802.11b IEEE 802.11a IEE ...

  6. WIFI 基础知识

    转载自:wifi基本知识 如侵犯您的版权,请联系:2378264731@qq.com 1. IE802.11简介 标准号 IEEE 802.11b IEEE 802.11a IEEE 802.11g ...

  7. 计算机网络基础之OSI参考模型

    计算机网络基础之OSI参考模型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.OSI参考模型 OSI是Open System Interconnection的缩写,意为开放式系 ...

  8. beacon帧

    1.MAC头部 解释: ① Version 版本号  目前为止802.11只有一个版本,所以协议编号为0 ② Type 00表示管理帧,01表示控制帧,10表示数据帧 ③ Subtype 和Type一 ...

  9. 与NS2一起度过第一个圣诞夜!(NS2入门学习参考资料)

    Merry xmas! 安装好NS2后正式开始学习NS2啦,先转发一哥们的博客内容,慢慢看! 一). NS常用基本网站         1. 寻求问题答案最好的地方.           http:/ ...

随机推荐

  1. Pyinstaller打包Selenium脚本为exe文件执行问题

    由于同事辞职,许多运维工具的维护工作就交到我这里处理了,运维居然没人会Python脚本! 用Selenium编写的一个爬虫脚本cctv.py,需要给不懂软件的人运行.为了不让他去搭建,安装各种包,库, ...

  2. Excel公式学习

    1.Left函数 (1)语法格式=left(text,num_chars) ,(text代表用来截取的单元格内容,num_chars代表从左开始截取的字符数): (2)示例:例如A1单元格内的文本为: ...

  3. javadoc相关问题

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  4. JS中循环绑定遇到的问题及解决方法

    本文是原创文章,如需转载,请注明文章出处 在工作中,有时会有这样的需求:在一个页面上添加了6个按钮,然后分别为他们绑定点击事件监听器,当点击按钮1时,输出1,当点击按钮2时,输出2. 循环绑定代码如下 ...

  5. JAVA中的正则表达式

    正则表达式:是字符串内容的匹配模板 正则表达式本身就是一个字符串 正则表达式的模糊符号: 一个[ ]代表一个字符,括号里面表示可以选择那些字符 { }用来表示前面这个正则表达式出现的次数 ?+* 这三 ...

  6. OpenBSD之开篇

    对BSD有特殊的情节,早在大学的时候最初迷恋FreeBSD,还记得第一个折腾的版本是5.x,后来组件转到折腾Linux,但那份情节还是在心底,再加上越发觉得Linux的一盘散沙和BSD的完整性形成鲜明 ...

  7. 《精通C#》十四章-.NET程序集入门

    在书中,这一章节的开头说的是自定义命名空间和使用命名空间,在以我目前有限的经验来说,程序集就是一个类库经过编译之后,所生成的一个在引用命名空间,进而使用该文件中已经定义好的字段,属性以及方法的文件,以 ...

  8. CentOS_7.2安装Redis_3.0

    一.安装依赖包和开发工具: yum install vim vim-enhanced wget zip unzip telnet ntsysv compat* apr* nasm* gcc gcc* ...

  9. css实现强制不换行/自动换行/强制换行

    在我们日常的编码中经常会遇到这段文字不可以换行,或者自动换行的需求.虽然这个功能在我们平时很常见但是我相信大家一定不会可以的去记住它吧(至少小月是很懒惰的从来是用什么查什么 ♦ 嘻嘻...).今天我们 ...

  10. js判断qq浏览器

    if(navigator.userAgent.toLowerCase().toString().indexOf('qqbrowser') > -1){ console.log('qq');}el ...