【智能家居篇】wifi网络接入原理(上)——扫描Scanning

转载请注明出处:http://blog.csdn.net/Righthek 谢谢!

对于低头党来说,在使用WIFI功能时,经常性的操作是打开手机上的WIFI设备,搜索到心目中的热点,输入密码,联网成功,各种低头上网。。。这个看似简单的过程,背后却是隐藏着大量的无线通信技术。用几个专业术语来表示这个过程,分别是:扫描(Scanning)、认证(Authentication)、关联(Association)。下面用一张图来表示这个过程。

图1  WIFI接入网络过程

现在让我们来分析一下这个过程的工作原理。

相对移动电子产品来说,WIFI的功耗会比较大。因此,上层应用程序都会有一个开关,用于打开和关闭WIFI功能。个人认为,最好的电源管理设计是上层应用程序的开关可操作WIFI硬件模块的电源的通断。当用户在手机上点击打开WIFI时,WIFI模块通电运行起来,当然也会相应加载WIFI的驱动程序。

打开完成后,我们可以看到手机上显示搜索到附近的WIFI热点,这个搜索过程的工作原理是怎样的呢?用一个无线通信专业术语来表示:扫描(Scanning)。

扫描的目的是什么?就是要找到一个无线网络,然后加入到该网络中。

要加入一个无线网络,那么我们需要找到它的网络名称,即SSID。这个SSID其实是接入点(Access Point)回应工作站扫描时所带的参数,还有其它的网络参数,包括BSSID(可理解为接入点的MAC地址)、信号强度、加密和认证方式等。

扫描类型分两种,一种是主动扫描(active scanning),另一种是被动扫描(passivescanning)。

        1、 主动扫描(activescanning)

我们先来说说主动扫描。即我们的手机(工作站STA)以主动的方式,在每个信道上发出Probe Request帧,请求某个特定无线网络予以回应。主动扫描是主动寻找网络,而不是静候无线网络声明本身的存在。使用主动扫描的工作站将会以如下的程序扫描信道表所列的频道:

(1)跳至某个信道,然后等候来帧指示(indicationof an incoming frame)或者等到ProbeDelay定时器超时。如果在这个信道收到帧,就证明该信道有用户在使用,因此可以加以探测。而ProbeDelay定时器可用来防止某个闲置信道让整个过程停止,因为工作站不会一直等待帧的到来。

(2)利用基本的DCF访问过程取得媒介使用权,然后送出一个Probe Request帧。

(3)至少等候一段最短的信道时间(即MinChannelTime)。

a.如果媒介并不忙碌,表示没有网络存在,因此可以跳至下个信道。

b.如果在MinChannelTime这段期间媒介非常忙碌,就继续等候一段时间,直到最长的信道时间(即MaxChannelTime)超时,然后处理任何的Probe Response帧。

大家可能会发现当手机进行WIFI热点搜索时,有时时间会比较长,原因是你处在的区域存在多个接入点(AP),当手机发出Probe Request帧时,多个接入点(AP)通过竞争窗口(congestionwindow)回应Probe Response帧,而这个竞争过程受限于最长的信道时间(即MaxChannelTime)。

当无线网络收到搜寻其所属的扩展服务集(ESS)的Probe Request时,就会发出Probe Response帧。若要找到附近所有的无线网络,那么Probe Request帧可使用broadcastSSID,如此一来,该区所有的802.11无线网络都会以Probe Response加以回应。

        2、 被动扫描(passivescanning)

现在大部分移动电子产品都是采用被动扫描(passive scanning)的方式,原因是扫描过程中不需要传送任何信号,可以省电。在被动扫描中,工作站会在信道列表(channel list)所列的各个信道之间不断切换,并静候Beacon帧的到来。所收到的任何帧都会被暂存起来,以便取出传送这些帧的BSS 的相关数据。

在被动扫描的过程中,工作站会在信道间不断切换,并且会记录来自所收到的任何Beacon的信息。Beacon在设计上是为了让工作站知道加入某个基本服务集(Basic Service Set,简称 BSS)所需要的参数以便进行通信。在下图中,通过监听来自前三个接入点的Beacon帧,移动式工作站以被动扫描找出该区所有BSS。如果该工作站并未收到来自第四个接入点的Beacon,就会汇报目前只发现的三个BSS。

图2  被动扫描

转载请注明出处:http://blog.csdn.net/Righthek 谢谢!

时间: 2024-08-10 17:06:05

【智能家居篇】wifi网络接入原理(上)——扫描Scanning的相关文章

【智能家居篇】嵌入式WIFI与普通WIFI的区别

转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 既然我们这系列的文章名称为<智能家居篇>,那么我们有必要提出一个与智能家居相关的概念.曾经一次在TI的无线研讨会上,提及这个概念.究竟是TI提出的,还是其他无线厂家提出的,这个就不去深究了.这个概念就是嵌入式WIFI,也有叫WIFI的IoT(全称:Internet of Things)解决方案,那么它和普通的WIFI又有什么区别呢?请继续阅读下文.         1.嵌入式WIFI的来源 我们都知道笔记本.手

【智能家居篇】通信技术简介

转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 在这个巴西世界杯火爆进行的炎热夏天,能够静下心来写一篇技术性的文章,不容易.2014年科技领域最备受关注之一的莫过于智能家居了.从年初的国际消费电子展(CES)的其中一大看点智能家居,到苹果发布智能家居平台homekit.世界各个科技公司都相继推出自己的智能家居产品. 什么是智能家居呢? 好吧,概念性的东西,我们在谷歌上百度一下吧! 智能家居是以住宅为平台,利用综合布线技术.网络通信技术.安全防范技术.自动控制技

【智能家居篇】wifi网络结构(上)

转载请注明出处:http://blog.csdn.net/Righthek 谢谢! WIFI是什么,相信大家都知道,这里就不作说明了.我们需要做的是深入了解其工作原理,包括软硬件.网络结构等.先说明一下WIFI是遵循IEEE802.11协议的,802.11是最早被国际标准组织认可的无线局域网协议,应该是1999年,到现在都有15年了.那时候哥还在读小学,连电脑都没摸过!太落后了...后来发展出很多以字母为后缀的802.11标准协议,如a.b.g.n.ac等. 本章节不作802.11协议的讲解,后

【智能家居篇】wifi在智能家居中的应用

转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 在设计智能家居系统方案时,一个非常关键的point就是组网方式.组网方式关系到整个智能家居系统的稳定性.可扩展性.实时性等:从安装及维护等各方面考虑,对于组网方式,本人觉得现在应该没人会去搭建一个有线的智能家居网络了吧,呵呵...... 所以,我们毫无疑问选择了无线的组网方式! 无线组网方式有很多种,有采用Zigbee.Wifi.Z-wave等等,当然一个完整的智能家居系统不可能只采用单纯的一种无线通信方式进行组

【智能家居篇】wifi驱动的理解(3)——usb接口在wifi模块中的角色

转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 上一篇文章已经提到USB接口在wifi模块中的最重要两个函数是usb_read_port()和usb_write_port().那它们是怎么和wifi扯上关系的呢?我们可以从以下三个方面去分析: 1.首先需要明确wifi模块是USB设备,主控(CPU)端是USB主机: 2.USB主机若需要对wifi模块进行数据的读写时,就必须经过USB接口: 3.既然涉及到数据的读写操作,必然要用相应的读写函数,那么usb_re

智能家居常用WiFi模块

WiFi模块 WiFi模块就是整个系统的控制中心,控制很简单,就是输出一个开关信号控制继电器,而这个模块的核心是WiFi的连接,手机连接WiFi时需要扫描,输入密码,而这类本身没有屏幕和键盘的硬件设备,要想快捷的接入WiFi网络就需要更加便捷的连接方案,这就是这些模块厂家的主要工作了,所以这些模块都提供类似的连接方案,即手机APP扫描WiFi,在APP上输入对应WiFi的连接密码后自动由APP发送到模块,完成模块和WiFi的连接,本质上是一样的,只是叫的名字不同而已,有的叫SimpleLink有

【智能家居篇】wifi网络接入原理(中)——认证Authentication

转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 还是用手机来举例,扫描完成后,我们会选择想要加入的WIFI热点.此时,大部分都会弹出一个输入密码的窗口,当然也有不用输入密码的.这个过程叫做:认证(Authentication). 有时觉得搞技术的真累,当我们辛辛苦苦地在网上找资料学习新技术时,当我们渐渐掌握这门技术之后,才发现该技术对自己来说是新的,但是对现时来说,已经过时并且被遗弃了!所以说--Shit! 由于网上大量讲解WIFI技术的资料在认证方面都是侧重

【智能家居篇】wifi网络接入原理(下)——关联Association

转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 认证完成后,下一步就是关联(Association). 工作站与基站进行关联,以便获得网络的完全访问权.关联属于一种记录(record keeping)过程,它让分布式系统(Distribution System)得以记录每个移动式工作站的位置,以便将传送给移动式工作站的帧,转送给正确的基站.形成关联之后,基站必须为该移动式工作站在网络上注册,如此一来,发送给该移动式工作站的帧,才会转送至其所属基站.其中一种注册

【智能家居篇】wifi驱动的理解(1)——驱动架构

转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 在分析WIFI驱动前,分享一下个人对Linux驱动的一些了解,其实纵观Linux众多的设备驱动,几乎都是以总线为载体,所有的数据传输都是基于总线形式的,即使设备没有所谓的总线接口,但是Linux还是会给它添加一条虚拟总线,如platform总线等:介于WIFI的驱动实在是太庞大了,同时又是基于比较复杂的USB总线,所以建议读者在看此文章之前,先了解一下USB设备驱动和网络设备驱动. 我们要看懂WIFI驱动,首先要