欢迎大家一起学习探讨通信之WLAN。上节我们对802.11标准基于OSI模型进行了分析,主要将OSI模型的“数据链路层”定义分为“LLC层”和“MAC层”,“物理层”定义分为“PLCP层”和“PMD层”。本节基于OSI模型中数据传输流向,分析802.11标准定义的“LLC层”和“MAC层”,其对数据做了哪些处理。

OSI模型

OSI模型数据从第7层传送到第3层,在第3层将IP Header添加到来自第4层到第7层的数据中,并将数据封装成一个IP包。接下来IP包被送到数据链路层,在LLC子层,添加LLC数据,并对其与IP数据包进行封装,封装后的数据包格式,802.11协议定义称为:MAC Service Data Unit,缩写(MSDU)。

802.11协议对MSDU有要求定义,对其MSDU的最大长度定义为2304,定义MSDU聚合机制[后续讲解]。

我们看下一个MSDU实例形式,如下图所示,MSDU由802.2 LLC Header和IP包组成。简单来说,MSDU的定义为一个IP包加上LLC数据。

从上节可以知,LLC层及以上层与以太网对应层没有区别。接下来我们重点探讨“数据链路层”的MAC子层。

802.11网络中,经过LLC层后,数据被封装为一个MSDU。MSDU将被传送到MAC子层,MAC层对MSDU数据最主要的操作,添加802.11 MAC Header,并对MSDU进行封装,封装后的数据格式802.11协议定义称为:MAC Protocol Data Unit,缩写(MPDU)。

注:

802.11网络中,对数据类型有以下称作方式:

  • 网络层及以上层对应的数据类型称为数据包,如TCP数据包,IP数据包。

  • MAC层以下将对数据类型称为帧,如管理帧,数据帧等。

我们看下MPDU的实例形式,如下图所示,由802.11 MAC Header,MSDU和FCS组成。

从上实例可以可知,802.11 数据帧格式 MPDU组成形式:

MAC Header + Frame body +FCS。如下图所示。

802.11协议在MAC层定义了“数据帧”,“管理帧”和“控制帧”三种帧类型。将管理帧数据格式在MAC子层称作:Management MAC Protocol Data Unit,缩写(MMPDU)。其不携带上层数据信息。

我们看下MMPDU实例形式,如下图所示,MMPDU由802.11 MAC Header,Frame body与FCS组成。但Frame body非上层数据。

好。以上我们分析了802.11协议在LLC层将数据封装处理后称作MSDU,在MAC层,管理帧数据格式称作MMPDU,数据帧数据格式称作MPDU。802.11协议在MAC层最主要的内容是定义了不同的帧格式,主要分为“数据帧”,“控制帧”和“管理帧”三种类型,各个类型定了多种子类型。

接下来我们主要探讨三种帧类型在WiFi网络的作用。后续章节我们将陆续介绍不同的帧类型,深入理解WiFi网络MAC层的作用。

【数据帧】:

802.11数据帧是上层协议数据的携带者,承载着实际数据传输的重任。但802.11协议也定义了一些不携带任何数据的数据帧。主要目的为设备传输一些特定的控制信息给路由器。不同类型的数据帧格式和作用后续探讨。

【管理帧】:

802.11管理帧是WLAN网络主要的帧类型。主要用作WiFi设备加入网络和离开网络管理。Frame body有固定长度的信息字段,信息可变长度字段和可选信息字段组成。管理帧不包含上层数据信息,因此,管理帧不向上层转发。始终终止在当前WiFi网络。

【控制帧】:

802.11控制帧主要用作协助数据帧的传输。在一个WiFi网络,控制帧可被任何一个WiFi设备接收处理,因此,要求控制帧必须要使用基本速率传输。控制帧在WiFi网络中,用作信道申请和单播帧提供确认。其帧数据格式仅包含802.11 MAC Header和FCS。不包含Frame body。

我们看下控制帧实例形式,如下图所示:

探讨就到此,本节主要对802.11协议在LLC层和MAC层中定义的数据类型进行了学习。LLC层将封装的数据格式称作MSDU,MAC层基于“数据帧”和“管理帧”将封装的数据格式分别称作MPDU和MMPDU,同时,三种帧类型基于实例抓包,探讨了其帧的组成形式。WiFi基础学习到实战(二)探讨就到此,后续期待共同继续探讨学习。

注:
       对以上所述专业知识有修正意见或建议,可随时留言反馈。如感兴趣更多通信知识,可关注“通信之WLAN” for WeChat。
       谢谢大家支持~!

WiFi基础学习到实战(二:WiFi网络“数据链路层”)相关推荐

  1. WiFi基础学习到实战(三:WiFi网络“物理层”)

    欢迎大家一起学习探讨通信之WLAN.上节我们对802.11标准基于OSI模型,在"数据链路层"的定义进行了解,数据传送经过LLC层被封装为一个MSDU,通过MAC层封装为一个MPD ...

  2. WiFi基础学习到实战(一:802.11介绍)

    针对WLAN技术的前些课节分享,知识点比较独立,相互之间比较零散.以一个小功能或特性作为一次分享.通过一年多对WLAN技术的了解,为了彼此互相学习,在WLAN技术能有体系性的一起探讨进步.我们新起一个 ...

  3. Java基础学习——第十四章 网络编程

    Java基础学习--第十四章 网络编程 一.网络编程概述 计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信 ...

  4. Unity超基础学习笔记(二)

    Unity超基础学习笔记(二) 1. 基本数据类型的扩展 之前在K12中学习了一些基本的数据类型,实际上C#支持更多的数据类型.如下: 注意无符号整型数和有符号整型数的表示范围,例如: int 能表示 ...

  5. 计算机基础学习日志(二)sq函数

    计算机基础学习日志(二)sq函数 代码功能 代脉内容 运行结果 结果分析 代码功能 模拟计算机内部进行乘法运算时发生溢出的情况,x*x(x被定义为int型)的结果不是永远大于零的. 代脉内容 #inc ...

  6. WiFi基础学习心得

    一.Wifi基础知识 1.开发中常用类和常量 类名    功能 WifiManager    wifi统一管理类,进行各种wifi操作 WifiInfo    描述当前连接的wifi热点信息 Wifi ...

  7. Java基础学习总结(18)——网络编程

    一.网络基础概念 首先理清一个概念:网络编程 != 网站编程,网络编程现在一般称为TCP/IP编程. 二.网络通信协议及接口 三.通信协议分层思想 四.参考模型 五.IP协议 每个人的电脑都有一个独一 ...

  8. java基础学习总结(二)——开篇(转载于孤傲苍狼博主的心得体会)

    由于孤傲苍狼博主16年后,就没有更新博客了.其中有些文章看不了,挺可惜的.为了避免后续文章也会有类似情况,因此,他的博文基本都会转载过来,也会标注转载,做一个备份.不过文章太多,不会每篇文章都有转载于 ...

  9. 集成电路模拟版图入门-版图基础学习笔记(二)

    我们今日接着版图基础学习笔记(一)的内容来写. 第二部分版图设计基础 2.1器件 2.1.2 电阻 选择合适的类型,由电阻阻值.方块电阻值,确定 W.L:R=L/W*R0 2.1器件 2.1.3 电容 ...

最新文章

  1. IBM Rational DOORS通过DXL进行二次开发初试(2)
  2. UDP(socket)接和数据案例封装成C++代码
  3. poj 2976 基础01分数规划
  4. GPT语言模型:通过生成式预训练改善语言理解 OpenAI 2018
  5. 用计算机来弹一首少年,辽宁省锦州市2018年中考语文试卷(word版,含答案)
  6. CCF201709-5 除法(100分)【树状数组+线段树】
  7. 官方AI语音系统电销机器人系统搭建|AI智能|电话机器人源码|2022最新电销外呼系统《各版本机器人部署》
  8. mysql的启动脚本编写_老鸟带你开发专业规范的MySQL启动脚本
  9. 机器学习(1):knn算法总结
  10. Win10电脑卡顿原因和解决方法
  11. Miracle密码算法开源库(四)分析 :mrarth2.c
  12. 【深度学习Faster-RCNN】深刻解读Faster R-CNN
  13. 很多情侣看了以后,不在关机
  14. 优品优男所谓“日有所思,夜有所梦”
  15. 水晶报表 双面打印_打印机办公用纸选购指南!(推荐收藏)
  16. 【Qt开发笔记】Qt设置生成的exe文件图标
  17. spool导出多列去空格
  18. Java身份证号校验
  19. python 儿童 游戏_python程序:两个小孩玩剪刀石头布游戏,一人十分,赢一次得一分,输一次减一分,平手不扣分,当没...
  20. 单摆c语言编程,单摆时钟

热门文章

  1. HTML学习-14天天生鲜项目
  2. 百度智能云 x 联通在线丨智能助理,“智”理你的通话
  3. Reactive Extensions (Rx) 入门(4) —— Rx的事件编程②
  4. 如何用乌班图(Ubuntu)制作 linux 系统 U盘启动盘
  5. 11.Scrapy框架基础-使用Scrapy抓取数据并保存到mongodb
  6. java数据库配置_Java数据库配置(一)
  7. 查看centos自带jdk版本并卸载
  8. 方舟(ARK)物品指令代码!
  9. pyhive连接kerberos认证的hive
  10. 鸿蒙App开发(1)---初识鸿蒙开发