参考网址:https://blog.csdn.net/zwl1584671413/article/details/77936950

https://blog.csdn.net/Righthek/article/details/39347917

WIFI是遵循IEEE802.11协议

WIFI网络结构,主要介绍涉及智能家居无线网络这块的组成元件:

1、站点STA(Station):所谓的站点,是指具有WIFI通信功能的,并且连接到无线网络中的终端设备。如手机、平板电脑、笔记本电脑等。

2、接入点AP(Access Point):也可称为基站。就是我们平常所说的WIFI热点,更通俗一点,就是我们家里的无线路由器。当我们需要从互联网上获取数据到手机上显示时,接入点就相当于一个转发器,将互联网上其他服务器上的数据转发给我们的手机。同时,接入点也属于站点的一种。

3、基本服务器集BSS(Basic Service Set):基本服务器集的组成情况有两种:a. 由一个接入点和若干个站点组成;b. 由若干个站点组成,最少两个。为什么这么分呢?主要和802.11网络类型有关。有接入点的,称为基础结构型基本服务集(infrastructure BSS);无接入点的,称为独立型基本服务集(Independent BSS,简称IBSS),IBSS也有其它的叫法,称为Ad Hoc Network。

4、服务集识别码SSID(Service Set IDentifier):当我们去一个新地方的时候,开口第一句就是:“请问WIFI账号和密码是多少?”,这里的WIFI账号就是SSID。SSID是通过接入点广播出来了。同时,我们在设置无线路由器时,可修改SSIDD的名称。

5、分布式系统DS(Distribution System):也称为传输系统。它通过基站将多个基本服务器连接起来。而DS属于802.11的逻辑元件,当帧(frame)传送至分布式系统时,随即会被送至正确的基站,而后由基站转送至目的站点STA。分布式系统必须负责追踪站点STA实际的位置,以及帧的传送。若要传送帧给某部移动式站点STA,分布式系统时基站间转送帧的骨干网络,通常称为骨干网络(backbone network)。

6、扩展服务集ESS(Extented Service Set):由一个或者多个基本服务集通过分布式系统串连在一起就构成了ESS。通过ESS,可以扩展无线网络的覆盖范围。

7、门桥(Portal):802.11定义的新名词,作用就相当于网桥。用于将无线局域网和有线局域网或者其他网络联系起来。所有来自非802.11局域网的数据都要通过门桥才能进入IEEE 802.11的网络结构。门桥可以使这两种类型的网络实现逻辑上的综合。

WIFI网络架构图

网络类型,网络类型主要在BSS中进行分类,如上面提到的独立型基本服务集(Independent BSS)和基础结构型基本服务集(Infrastructure BSS)。

1、独立型基本服务集

在IBSS中,每个站点不需要通过接入点AP就可以与相同IBSS下的任何其他站点彼此建立通信。两者间的距离必须可以在可以直接通信的范围内。通常,IBSS是由少数几部工作站针对特定目的而组成的临时性网络,最低限度的IBSS,是由两个站点组成的。IBSS有时被称为特设网络(ad hoc network)。

2、基础结构型基本服务集

判断是否为基础结构型网络,只要检视是否有基站参与其中。基站负责基础结构型网络所有的传输,包括同一服务区域中所有行动节点之间的通信。位于基础结构型基本服务集的移动式站点,如有必要跟其他移动式站点通信,必须经过两个步骤。首先,由开始对话的站点将帧传递给基站。其次,由基站将此帧转送至目的站点。既然所有通信都必须经过基站,基础结构型网络锁对应的基本服务区域就相当于基站的传送范围。虽然这种做法比直接传送资源耗费较多的资源,不过它有两个主要的优点。

优点:

1. 基础结构型基本服务集被界定在基站的传输范围。所有移动式站点都必须位于基站的传输范围之内,不过移动式站点之间的距离则无限制。允许移动式站点彼此直接通信虽然可以省下一些频宽,不过代价是相对提高了物理层的复杂度,因为每个站点都必须维护与服务区域中其他站点的邻接关系。

2. 基站在基础结构型网络里的作用是协助站点节省电力。基站乐意记住有哪些站点处于省电状态,并且为之暂存帧,以电池供电的工作站可以关闭无线收发器,只有在传输或接收来自基站的暂存帧时才会加以开启。

由于WIFI网络具有移动性,同时WIFI以无线电波作为传输媒介,这种媒介本质上是开放的,且容易被拦截,任何人都可以通过抓包工具截取无线网络的数据包。因此,在设计WIFI协议(其实就是802.11协议)时,需要提供一些传输数据和管理的服务。

1、分布式(Distribution)

  只要基础结构型网络里的移动式站点传送任何数据,就会使用这项服务。一旦基站接收到帧,就会使用分布式服务将帧送至目的地。任何行径基站的通信都会通过分布式服务,包括连接至同一部基站的两部移动式站点彼此通信时。

2、整合(Intergration)

  整合服务由分布式系统提供,它让分布式系统得以连接至非IEEE 802.11网络。整合功能将因所使用的分布式系统而异,因此除了必粗提供的服务,802.11并未加以规范。

3、关联(Association)

  之所以能够将帧传递给移动式站点,是因为移动式站点会向基站登记,或与基站产生关联。关联之后,分布式系统即可根据这些登录信息判定哪个移动式站点该使用哪个基站。如果使用强健安全网络协议(robust security network protocol),连接之后才能进行身份认证。在身份认证完成之前,基站会将丢弃来自站点的所有数据。

4、重新关联(Reassociation)

  当移动式站点在同一个扩展服务区域例的基本服务区域之间移动时,它必须随时评估信号的强度,并在必要时切换所连接的接入点。重新关联是由移动式站点所发起,当信号强度显示最好切换关联对象时便会如此做。接入点不可能直接开启重新关联服务。

一旦完成重新关联,分布式系统会更新站点的位置记录,以反映出可通过哪个基站连络上站点。和连接服务一样,在强健安全网络中,除非已经成功完成身份认证,否则来自站点的数据均会被弃置。

5、解除关联(Disassociation)

  要结束现有关联,站点可以利用解除关联服务。当站点启动解除关联服务时,储存于分布式系统的关联数据会随即被移除。一旦解除关联,站点即不再附接在网络上。在站点的关机过程中,解除关联是个礼貌性的动作,不过MAC在设计时已经考虑到站点未正式解除关联的情况。

6、身份认证(Authentication)

  实体安全防护在有线局域网络安全解决方案中是不可或缺的一部分。网络和连接点(attachment point)受到限制,通常只有位于外围访问控制设备(perimeter access control device)之后的办公区才能加以访问。网络设备可以通过加锁的配线柜(locked wiring closet)加以保护,因此必须依赖额外的身份认证程序,以保护访问网络的用户已获得授权。身份认证是关联的必要前提,唯有经过身份认证的用户才语序使用网络。

站点与无线网络连接的过程中,可能必须经过多次身份认证。在关联之前,站点会先以本身的MAC地址来跟基站进行基本的身份认证。此时的身份认证,通常称为802.11身份认证,有别于后续所进行、牢靠而经过加密的用户身份认证。

7、解除认证(Deauthentication)

  解除认证用来终结一段认证关系。因为获准使用网络之前必须经过身份认证,解除认证的副作用就是终止目前的关联。在强健安全网络中,解除认证也会清除密钥信息。

8、机密性(Confidentiality)

  在有线局域网络中,坚固的实体控制可以防止对于数据的绝大部分攻击。攻击者必须能够实际访问网络媒介,才有可能窥视往来的内容。在有线网络中国,网线与其他计算资源一样,也要受到实体保护。在设计上,实际访问无线网络,相对而言较为容易,只要使用正确的天线与调制方式就办得到。

802.11初次改版时,机密性(confidentiality)服务原本称为私密性(privacy)服务,而且是由目前已经毫无可信度的有线等效机密(Wired Equivalent Privacy,简称WEP)协议所提供。除了新的加密机制,802.11i另外提供了两种WEP无法解决的关键服务来加强机密性服务,亦即基于用户的身份认证(user-based authentication)以及密钥管理服务。

9、MSDU传递

  一个网络如果无法传递数据给接收端,大概也没有什么用。工作站所提供的MSDU(全名为MAC Service Data Unit)传递服务,负责将数据传送给实际的接收端。

10、传输功率控制(TransmitPower Control,简称TPC)

  TPC是在802.11h中定义的新服务。欧洲标准要求操作于5GHz频段的站点必须能够控制电波的传输功率,避免干扰其他同样使用5 GHz频段的用户。传输功率控制也有助于避免干扰其他无线局域网络。传输距离是传输功率的函数:站点的传输功率愈高,传输距离就愈远,也就愈容易干扰邻近的网络。如果可以将传输功率调到“刚刚好”(just right),就可以避免干扰到邻近的站点。

11、动态频率选择(Dynamic Frequency Selection,简称DFS)

  某些雷达系统的作业范围位于5GHz频段。因此,有些管制当局强制要求无线局域网络必须能够检测雷达系统,以及选择未被雷达系统所使用的频率。有些管制当局甚至要求无线局域网络必须能够均衡使用(uniform use)5GHz频段,因此网络必须具备重新配置频道(re-map channels)的能力。

最后,说一下用C++代码怎么连接wifi,有一篇很好的文章,试了第一部分,是OK的,链接:https://www.jb51.net/article/81199.htm

今天在写wifi连接传输问题的时候,会用到两个头文件

#include <WinSock2.h>
#include "wlanapi.h"

提醒一下,一定要注意两个的顺序,WinSock2.h一定要在wlanapi的前面,不然编译会一直报错,并且如果要引用windows.h的话,那么最好在WinSock2.h的后面。今天被这个问题搞了半天,各种尝试,主要引入的文件有点多,排列组合有点麻烦,人都晕了,一定一定要注意头文件的顺序。

第二十六篇 -- wifi学习的更多相关文章

  1. 第二十六篇 jQuery 学习8 遍历-父亲兄弟子孙元素

    jQuery 学习8 遍历-父亲兄弟子孙元素   jQuery遍历,可以理解为“移动”,使用“移动”还获取其他的元素.   什么意思呢?老师举一个例子: 班上30位同学,我是新来负责教这个班学生的老师 ...

  2. 第二十五篇 jQuery 学习7 获取并设置 CSS 类

    jQuery 学习7 获取并设置 CSS 类   jQuery动态控制页面,那么什么是动态呢?我们就说一下静态,静态几乎又纯html+css完成,就是刷新页面之后,不会再出现什么变动,一个实打实的静态 ...

  3. 第二十四篇 jQuery 学习6 删除元素

    jQuery 学习6 删除元素   上节课我们做了添加元素,模拟的是楼主发的文章,路人评论,那么同学们这节课学了删除之后,去之前的代码上添加一个删除,模拟一个楼主删除路人的评论. jQuery的删除方 ...

  4. 第二十二篇 jQuery 学习4 内容和属性

    jQuery 内容和属性   这节课,我们学习使用jQuery来控制元素的内容.值和属性.   html() 控制所选元素的内容(包括HTML标记): text() 控制所选元素的内容: val() ...

  5. 第二十六篇:两个SOUI新控件 ---- SListView和SComboView(借用Andorid的设计)

    SOUI原来实现的SListBoxEx的效率一直是我对SOUI不太满意的地方.包括后来网友实现的SListCtrlEx. 这类控件为每一个列表项创建一个SWindow来容纳数据,当数据量比较大(100 ...

  6. 第二十六篇-单击事件、Toast(提示框信息)

    单击事件有3种方法: 第一种: layout.xml <?xml version="1.0" encoding="utf-8"?> <Line ...

  7. Python之路(第二十六篇) 面向对象进阶:内置方法

    一.__getattribute__ object.__getattribute__(self, name) 无条件被调用,通过实例访问属性.如果class中定义了__getattr__(),则__g ...

  8. SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台

    转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/ 本文出自方志朋的博客 这篇文章主要介绍 ...

  9. 第二十四篇 -- Cache学习

    Cache存储器 电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic Random Access Memory)之间,规模较小,但速度很高的存储器,通常由SRAM(Static R ...

随机推荐

  1. 【NX二次开发】Block UI 线条颜色/线型/宽度

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  2. 【NX二次开发】属性操作总结

    内容包括:1.属相创建2.判断属性是否存在3.读取属性值4.时间属性转换成字符串5.统计属性的数量6.删除指定属性7.删除全部属性 源码: 1 #include <stdlib.h> 2 ...

  3. 配置IPv6公网地址DDNS并开放外网访问端口

    目前使用三大运营商宽带服务都会下发公网IPv6地址,这样我们想要在外网访问家里的路由.NAS等设备就可以直接通过IPv6地址来访问了.但是每次重新拨号后IPv6地址都会改变,而且IPv6的地址很长,这 ...

  4. 再有人问你HashMap,把这篇文章甩给他

    搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java==集合中的精髓==了,如果你觉得自己对它掌握的还不够好,我想今天这篇文 ...

  5. 01 . Varnish简介,原理,配置缓存

    简介 Varnish是高性能开源的反向代理服务器和HTTP缓存服务器,其功能与Squid服务器相似,都可以用来做HTTP缓存.可以安装 varnish 在任何web前端,同时配置它缓存内容.与传统的 ...

  6. 从谭浩强的《C语言程序设计》到《电容应用分析精粹》

    不记得具体从什么时候开始(反正很多年前的事了)的,不少人都陆续批评过谭浩强的<C语言程序设计>,各方面都有扒过.例如,与实践脱节,很多例子在不同编译器上运行是错误的,代码风格糟糕等等方面. ...

  7. 精尽Spring Boot源码分析 - 支持外部 Tomcat 容器的实现

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  8. Unity 异步加载 进度条

    当我们进行游戏开发时,时常会进行场景切换,如果下个场景较大,切换时就会出现卡顿现象,甚至看起来像是"死机",非常影响用户体验,我们这时就可以运用异步加载,在界面上显示加载的进度条以 ...

  9. 集合类线程安全吗?ConcurrentModification异常遇到过吗?如何解决?

    集合类不安全的问题 1. ArrayList的线程不安全问题 1.1 首先回顾ArrayList底层 ArrayList的底层数据结构是数组 底层是一个Object[] elementData的数组, ...

  10. SpringCloud 微服务最佳开发实践

    Maven规范 所有项目必须要有一个统一的parent模块 所有微服务工程都依赖这个parent,parent用于管理依赖版本,maven仓库,jar版本的统一升级维护 在parent下层可以有 co ...