做无线网络测试已经大半年了,在这过程中发现《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. m.Tomcat使用openssl走APR通道配置单向和双向认证

    引用自: http://blog.csdn.net/gtuu0123/article/details/5827800(Tomcat的SSL单向认证)  http://blog.csdn.net/gtu ...

  2. 【转】OPENGL基本API概述

    本文信息资源来源于网络,欢迎转载!转载时请保留本文链接(http://www.shopliyang.com.cn/)! OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库. gl是核 ...

  3. ie8下背景图片平铺问题

    IE9+及其他浏览器实现背景图片平铺可能需要一个属性就可以background-size:100%/cover; 但是ie8下background-size是不兼容的,因此我们需要用到滤镜,来解决背景 ...

  4. ws_ webpack+reactjs+redux+nodejs认识

    /** * Created by yangpu on 2016/9/18. */ //环境安装方法1.npm install //加载依赖模块2.npm run build //打包没有压缩,开发环境 ...

  5. 20145236 GDB调试汇编堆栈过程分析

    GDB调试汇编堆栈过程分析 首先需要输入sudo apt-get install libc6-dev-i386安装一个库才能产生汇编代码,然后输入gcc - g example.c -o exampl ...

  6. mybatis高级(1)(入门回顾)

    首先入门案例(并且拿到新增记录当前id) 1.创建mybatis-config.xml文件 <?xml version="1.0" encoding="UTF-8& ...

  7. 20169212《Linux内核原理与分析》第六周作业

    视频学习 一.用户态.内核态和中断 内核态:处于高的执行级别下,代码可以执行特权指令,访问任意的物理地址,这时的CPU就对应内核态 用户态:处于低的执行级别下,代码只能在级别允许的特定范围内活动.在日 ...

  8. sicily 1934. 移动小球

    Description 你有一些小球,从左到右依次编号为1,2,3,...,n. 你可以执行两种指令(1或者2).其中, 1 X Y表示把小球X移动到小球Y的左边, 2 X Y表示把小球X移动到小球Y ...

  9. uva 10817(状压dp)

    题意:就是有个学校要招老师.要让没门课至少有两个老师可以上.每个样样例先输入三个数字课程数量s,已经在任的老师数量,和应聘的老师数量.已经在任的一定要聘请. 思路是参考了刘汝佳书上的,关键如何状压. ...

  10. jquery 中 $.map 的使用方法

    $.map(data,function(item,index){return XXX}) 遍历data数组中的每个元素,并按照return中的计算方式 形成一个新的元素,放入返回的数组中 ,,], f ...