​ns(来源于“network simulator”)是一系列离散事件网络模拟器,包括ns-1、ns-2和ns-3。他们主要应用于研究和教学。ns-3是自由软件,以GNU GPLv2协议分发。​——百度百科

wifi是日常生活中不可或缺的一部分,在工业和物联网场景也得到了越来越多的应用,在ns-3网络模拟器的说明文档里面占有46页的比重(说明文档总共605页,四十多章),可见wifi模块在ns-3体系中占有很重要的地位。

ns-3体系中有一种对象称为 节点 node,每一个node相当于一台电脑,一个Linux主机平台,每个node上面可以安装一个或几个网卡,网卡称为net device,net device可以是以太网有线网卡,也可以是蓝牙 wifi 无线网卡(蓝牙也是传输数据,也可以组网,所以也算是net device)。

目录

WIFI模块的功能介绍

ns-3中创建的wifi net device支持802.11的如下特性

以上的都是对网卡的模拟,以下是信道、运动之类的模拟

WIFI模块的简单组成与收发模型

wifi模块包含以下几个重要的部分:

一个标准的发送流程可以总结如下:

一个标准的从信道收信号的过程如下:

WIFI Mac&Phy的更加精确的描述

High Mac在调用的时候涉及以下3个模块:

Low Mac有以下三个模块组成:

Phy模块的三个组成部分:


WIFI模块的功能介绍

ns-3中创建的wifi net device支持802.11的如下特性

DCF、中心化的infrastructure 和 去中心化的点对点ad hoc

网卡可设置为802.11 a/b/g/n/ac/ax,其中n支持全部的2.4G/5G,ax支持全部的2.4G/5G/6G

支持11n中的msdu聚合和mpdu聚合,支持msdu聚合之后mpdu接着聚合的双层聚合

支持11ax 的上下行OFDMA和多用户EDCA——还能配置多用户EDCA的参数

基于Qos的EDCA机制(来自11e)

来自802.11s的蜂窝自组网

支持802.11p也叫做WAVE的这种为汽车这类高速运动设备准备的协议

以上的都是对网卡的模拟,以下是信道、运动之类的模拟

不同的传播损耗模型和传播延迟模型

(根据链路仿真和参考文献确认过的)真实的误包模型和帧检测模型

不同的速率控制算法:Aarf, Arf, Cara, Onoe, Rraa, ConstantRate, Minstrel and Minstrel-HT
总的来说,ns-3的WiFi模块,精确实现了80211mac并包级模仿了80211的phy。

由于多网卡可以并存,ns-3可以用来仿真多网卡不同信道的干扰。

所有wifi module的源码都在src/wifi中。

WIFI模块的简单组成与收发模型

wifi模块包含以下几个重要的部分:

Phy层模型:标准协议对应phy以及修正案对应phy都有。负责收发在物理信道上面的帧,查询interference helper和错误率模型,用SINR(姑且理解成SNR信噪比把,区别不是很大)算出来帧接收成功的概率

Low Mac:包括DCF和EDCA这两个媒体接入协议,RTS CTS这两个帧保护协议,ACK和BlockACK。这些协议被 帧交换管理器(Frame ExchangeManager,管理某一版修正案对应的帧交换序列)信道接入管理器(ChannelAccessManager产生接入信道的命令)和Mac中间实体(MACMiddleEntity 管理包队列,解包,包重传——会通过检查wifi remote station manager来确认是否需要重传)

High Mac:实现非严格实时进程,比beacon帧组装,probe过程,连接状态状态机,速率控制算法。学术上,High mac也叫upper mac,比模拟款多出一些软件实现vs严格实时性的硬件实现.高层mac包括adhoc的/AP的/STA的 MAC模型,实现了关联、发beacon之类的功能。

接下来贴一张ns-3 wifi模块的结构图:

下行链路最顶层的就是 网卡层 网络设备,下一层就是高层MAC,再下一层就是Low Mac(三部分,MAC 中层  帧交换管理器  信道接入管理器),再下一层就是WIFI的phy层,然后就接入信道了(WIFI信道也是ns-3模拟出来的——当然)

信道负责jie'h搜所有连接的物理层的发出来的信号,根据传播损失模型和传播延迟模型确定啥时候把多强的信号广播给各个连在自己身上的PHY。

一个标准的发送流程可以总结如下:

发给网卡一个数据包,指出接收方地址和使用的协议版本,网卡给把包放到队列传给high mac,high mac把包放到队列里给TxOp,在信道接入管理器确定信道可以接入的时候,TxOp开始传输,包被传到帧交换管理器,帧交换管理器侦听信道接入管理器的状态,确认信道可以接入就发包到phy,phy页侦听信道接入管理器,信道能发就发信号波形到信道。

一个标准的从信道收信号的过程如下:

phy检测到信道里面的前导码,报告帧交换管理器信号接收正确还是错误并传上去正确的数据,再传到Mac中间层再传到High MAC最终到网卡层。

WIFI Mac&Phy的更加精确的描述

High Mac在调用的时候涉及以下3个模块:

( ns3::ApWifiMac ),建立AP型的high mac,有Beacon,接受association request并回response

( ns3::StaWifiMac ),建立STA型的high mac,有prob和association,beacon miss太多会自动reassociation

( ns3::AdhocWifiMac )ad hoc就是几个STA自己组网,不要AP,构成BSS的模式,没有Beacon,没有prob,也没有association。

这三个模块都隶属于一个大类ns3::RegularWifiMac,这个大类有上述三个模块里面的基本功能,也有一些11e的WMM的Qos功能。

Low Mac有以下三个模块组成:

上面提到过两次,Low Mac的三个组成部分是帧交换管理器、信道接入管理器和Mac中间实体

帧交换管理器:Frame ExchangeManager,管理某一版修正案对应的帧交换序列,也负责帧的聚合、重传、RTS/CTS、ACK/Block ACK

信道接入管理器:ChannelAccessManager,产生接入信道的命令,也就是DCF和EDCAF(此处EDCAF与EDCA应该是同意的)功能

Mac中间实体:MACMiddleEntity 管理包队列,这部分在TX和RX的时候功能不同,又被分为了两部分:一个有名字的ns3::Txop和一个没有正式命名的MACRXMiddle,TxOp这里是用来管理包队列的,用来来传输介入信道服从DCF的帧。除了普通的Txop之外,还有QosTxOp,也就是符合Qos的发送队列,介入信道需要EDCA的。

Phy模块的三个组成部分:

首先先说Phy的主要任务:对MAC传来的数据包采样、模拟传输过程的功耗,接下来就是PHY的三个主要组成部分:

包是否接收成功判断部分:根据信噪比、当前是否睡眠(睡眠了自然就接受失败)、调制方式来模拟信号接收结果,可能成功也可能失败。

一个接收信号强度记录模块,记录接收的信号强度,判定包正常收到或失败以后,我们还可以查看当时这个包收到的时候,干扰信号的功率强度。

根据调制方式和标准类型的错误模型,用于计算成功接收数据包的概率。

Phy有两种yans和Spectrum,yans是基本的物理层功能,仿真的对象就是包的错误率,Spectrum还会模拟信号的频率分解和同时在一个信道上不仅仿真wifi还可以加个蓝牙 zigbee等同频协议。

ns-3-model-library wifi 浅析_ns-3wifi部分解析_ns-3网络模拟器wifi部分文档分析_Part1相关推荐

  1. ns-3-model-library wifi 浅析_ns-3wifi部分解析_ns-3网络模拟器wifi部分文档分析_Part2

    ns(来源于"network simulator")是一系列离散事件网络模拟器,包括ns-1.ns-2和ns-3.他们主要应用于研究和教学.ns-3是自由软件,以GNU GPLv2 ...

  2. linux查看wifi网速,无线信号强度解析及linux如何查看wifi信号强弱等

    dBdB是一个表征相对值的值,纯粹的比值,只表示两个量的相对大小关系,没有单位,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面的计算公式:10log(甲功率/乙功率),如果采用两者的电压比计算, ...

  3. vp服务器创建无线热点,在Mac中使用屏幕共享 mac创建wifi热点方法:苹果mac设置无线网络wifi共享步骤...

    延伸:mac创建wifi热点方法:苹果mac设置无线网络wifi共享步骤 描述:...给大家的就是mac创建wifi热点的方法,机友们可以来看一看.首先,连接网线,进入设置,选择共享.在互联网共享这一 ...

  4. Android 网络连接--Wifi/3G

    获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityMan ...

  5. 网络营销专员浅析在当下移动互联网中实施网络营销的基本特点

    所谓的移动互联网就是"移动+互联网",将移动通信与互联网技术结合是现在移动通讯中满足用户对于互联网检索需求.这一应用的实现不仅满足用户需求更在一定程度上实现了企业商业模式的进一步拓 ...

  6. 网络营销外包专员浅析从用户角度出发如何完善网络营销外包?

    随着网络优化技术的不断优化,百度算法也在跟随时代脚步下用户的变化而变化,为什么要跟随用户需求而变化?众所周知,在企业网站建设.优化.推广运营等方面全部都是以用户真实需求为基础而进行的,搜索引擎也要根据 ...

  7. 网络推广外包专员浅析为什么说企业网站都需要网络推广外包?

    自从互联网技术的发展网络营销市场越发活跃,让企业商家能够及时嗅到互联网庞大的潜在市场,随之而来的各行各业都开始建立属于自家的企业网站,但网站建设成功后还需要展开运营优化,这才能确保企业品牌能够长久性在 ...

  8. 企业网络推广专员浅析是否网站权重越高企业网络推广效果越好?

    现如今越来越多的企业选择线上营销与线上营销双向结合,通过线上营销的方式瓜分互联网中可获取的资源,借助互联网推广后提升企业品牌知名度,增强自我竞争力,从而获得更多用户和流量,成为行业中的领头羊.然而理想 ...

  9. 网络营销专员浅析如何以低成本高获取实现网络营销?

    网络营销基于互联网技术基础面对众多潜在用户实现针对性推广,充分掌握目标用户群体需求,并针对相关用户制定不同解决方案,在当下竞争激烈的网络营销市场中,寻求生存与发展的空间.对于企业客户来说最能吸引客户合 ...

最新文章

  1. 如何开发利用计算机字体,如何利用PS来制作水纹特效字体
  2. 2020-2021年面向中小学生的全国性竞赛活动名单的公示
  3. 剑指offer 二进制中1的个数
  4. 炫酷实用的jQuery插件 涵盖菜单、按钮、图片
  5. JavaScript中的的面向对象中的一些知识
  6. node-webkit学习(4)Native UI API 之window
  7. SQL查询语句 select
  8. SPOJ-COT-Count on a tree(树上路径第K小,可持久化线段树)
  9. Windows Terminal 窗口/控制台切换快捷键总结
  10. Java代码实现“爱心”表白
  11. BAT批处理文件,脚本时间值%time:~0,2%%time:~3,2%%time:~6,2%的用法
  12. 卧龙图说酒:喝酒的人生,是有意义的人生!
  13. 参加南京mooc活动有感
  14. boto3使用教程用法
  15. 用python实现bt下载_Python边学边用--BT客户端实现之(一)BitTorrent文件解析
  16. vue3新拟态组件库开发流程——button组件源码
  17. 【参赛作品12】基于华为云鲲鹏弹性云服务器部署openGauss数据库-实验
  18. linux命令ps aux grep,更优雅的“ps aux |” grep -v grep“
  19. 阻止Vue生成生产提示
  20. 狭义相对论最基础的知识

热门文章

  1. Axure8 教程:两种图片交互效果(悬浮放大和左右滑动切换)
  2. 【python】20行代码实现有道翻译api接口调用
  3. java中怎么让字体可以显示下划线呢_数字文字中的下划线(Java 7特性)
  4. 徐州泰奇妙机器人编程教育_机器人和STEM编程教育,帮助自闭症儿童重归社会...
  5. ryzen linux 搭配显卡,R3 2200G适合搭配什么显卡?AMD锐龙3 2200G适合搭配的显卡攻略...
  6. bootstrap之data-toggle,data-dismiss,data-target用法
  7. 【活动】Lava参加“星火燎原”矿业中国行活动
  8. [作业]英语作业,无聊记事
  9. matlab 饼状图 纹理,Matlab小波下纹理特征
  10. trac mysql_Trac的安装和简单使用