基于 smart-config技术实现

基于无线网络嗅探的智能配网技术研究

摘要

现代化的计算机和通信技术已经应用到生活的各个方面,物联网技术已经逐步的影响我们的生活方式,例如智能家居,车联网,智能玩具等。由于无线网络的方便,快捷,稳定等特性,使得无线网络在物联网应用中成为设备实现网络互连的首要选择。

随着物联网的蓬勃发展,设备接入无线网络的方式也发经历了许多改变,传统的配置无线网络的方式有通过蓝牙和AP模式。使用蓝牙配置无线网络的方式需要联网设备支持蓝牙,并且在操作上需要用户打开蓝牙连接、建立蓝牙连接等[1],操作比较复杂,而且对使用者并不友好。

本设计旨在研究一种更加方便快捷的配置无线网络的配网方式,利用的是无线网络的一个特殊工作模式:监听模式。配置网络的流程是智能设备开启监听模式,无线网卡在该模式下能接收到附近无线网络链路层数据包,该数据包承载的数据是加密的,但是数据包头部是可以解密的[2],也就是说可以通过数据包头部来传递信息,这相当于在智能设备和路由器之间建立了一个单向通信通道。配网的方式是通过手机发送包含SSID和密码的广播包到局域网中,智能设备解析出广播包中的信息,然后接入到无线网络中。该方式相比于现阶段使用的蓝牙或者AP模式配置网络,对智能设备的没有特殊的硬件要求,操作更加简单,不需要用户连接蓝牙或者切换无线网络。

关键词:物联网,配置网络,网络嗅探,监听模式

目录

第一章 绪论 1

1.1 课题研究的背景 1

1.2 课题的研究意义 1

1.3 配网技术概述 2

1.4 配网技术应用于物联网产品的国内外研究现状
2

1.4.1 Smart Config技术 2

1.4.2 Air Kiss技术 2

1.4.3 总结 2

1.5 本章小结 3

第二章 智能配网技术理论基础 4

2.1 计算机无线网络 4

2.1.1 计算机无线网络体系 4

2.1.2 OSI七层模型 4

2.1.3 无线信道 4

2.2无线网卡监听模式 5

2.3 802.11包数据结构 5

2.4 本章小结 7

第三章 基于组播技术的信息传递 8

3.1 组播技术传递信息原理介绍 8

3.2 组播技术传递信息举例说明 8

第四章 配网通信协议设计 10

4.1 配网通信协议整体设计 10

4.2 物理层通信协议设计 10

4.3 链路层通信协议设计 10

4.3.1 magic code字段 11

4.3.2 prefix code字段 11

4.3.3 sequence header字段 11

4.3.4 sequence data字段 12

4.4 应用层通信协议设计 12

4.5 本章小结 13

第五章 智能配网技术整体设计 14

5.1 智能配网技术系统组成 14

5.1.1 智能配网数据发送端 14

5.1.2 智能配网数据接收端 14

5.2 智能配网技术总体设计方案 15

5.2.1 配网过程 15

5.2.2 配网数据发送端和数据接收端流程 15

5.3 本章小结 17

第六章 基于嵌入式Linux的数据接收端实现
18

6.1 搭建嵌入式Linux开发环境 18

6.1.1 安装Virtual Box虚拟机 18

6.1.2 安装Ubuntu系统 18

(1)获取Ubuntu操作系统 19

(2)在Virtual Box中安装Ubuntu系统 19

6.1.3 建交叉编译环境 19

6.2 监听模式抓包程序实现 20

6.3 数据解析程序实现 20

6.4 修改系统无线配置实现 20

6.4.1 Linux无线工具(Linux Wireless Tools)
20

6.4.2 wpa_supplicant 20

6.5 配网端“开始配网”按键接线图 21

6.6 本章小结 21

第七章 基于Android的数据发送端实现 22

7.1 搭建Android程序开发环境 22

7.1.1 配置JDK环境 22

7.1.2 配置开发环境Android Studio 23

7.1.3 搭建工程并编写实现程序 24

7.2 获取无线网络SSID和密码程序实现 24

7.3 数据编码程序实现 25

7.3.1 magic_data字段编码实现 25

7.3.2 prefix_data字段编码实现 25

7.3.3 sequence_data编码实现 26

7.3.4 sequence_data字段 26

7.4 本章小结 27

第八章 系统调试与测试 28

8.1 基于Android的数据发送端测试 28

8.1.1 获取无线网络SSID和密码测试 28

8.1.2 组装数据包并在网络中发送 29

8.2 基于Linux的数据接收端测试 30

8.3 本章小结 31

第九章 总结与展望 32

9.1 课题总结 32

9.2 课题前景展望 32

9.2.1 数据恢复技术 32

9.2.2 数据包过滤技术 32

参考文献 33

谢辞 34

附录一:安卓端主要代码 35

附录二:嵌入式Linux端主要代码 39

第一章 绪论

现代化的计算机和通信技术已经应用到生活的各个方面,物联网、智能家居、车联网等,已经逐渐的改变了我们的生活方式,智能家居是科技和文化发展相结合的产物,由于人们的生活物质水平和精神文明的不断提升,人们家庭住宅内的电智能设备越来越多,包括智能电视、智能空调、智能洗衣机、智能插座、智能远程监控设备等。同时由于中国互联网的迅猛发展,现在大多数家庭都已经覆盖了无线网络,所以这些设备都首选无线网络作为接入网络的方式,设备接入网络需要用户的手动操作让这些设备接入到我们的家庭网络中,传统的对这些设备配置无线网络的方式包括利用蓝牙、利用无线网卡AP模式等[3],这些方法配置无线网络都比复杂。本设计主要是实现一种便捷、高效的配置无线网络的方式。

课题研究的背景

本课题研究一种更加便捷的配置无线网络的技术。

随着物联网、智能家居等概念的兴起,我们的家中出现越来越多的智能设备。甚至有的家庭已经可以实现完全的智能化,智能家居给我们的生活带了很多科技化的改变。随着物联网技术的发展,无线网设备接入互联网的方式也经历了很多改变,最开始大多使用有线网络的方式接入到互联网,但是有线网络有非常多的限制,首先需要物联网设备具备有线网络接口,而且在物联网设备在使用的过程中需要布线。有线网络的使用的不便捷性,使得无线网络的接入成为一种非常好的替代方案。

无线网络的接入方式具有方便、便捷的特性,不受硬件设备接口或者网络布线的限制,在物联网设备中应用越来越广。但是随之而来的一个问题就是无线网络的配置问题,不同于有线网络的即插即用,直接插上一根网线就能接入到局域网中来,无线网络首先需要进行一系列的配置工作,由于无线网路通常是加密的,且一个区域内通常有很多个无线网络的覆盖,所以需要进行无线网络的选择,并且进行认证,只有在认证成功才能接入到局域网中[4]。

认证就是把无线网络的密码输入到需要联网的设备中,我们需要一个“渠道”来将无线网络的SSID和密码告知需要联网的设备。当前主流的配网方式中,这种“渠道”有一下几种:

(1)、有线,首先进行有线连接,在建立有线连接的前提下来配置无线网络;

(2)、蓝牙,利用蓝牙建立连接,在建立蓝牙连接的前提下来配置无线网络;

(3)、AP模式,利用需要联网设备的无线网卡的AP模式,发射出一个Wi-Fi,用户切换到发射的这个Wi-Fi来配置无线网络;

可以看出以上这几种方法,对硬件有额外的要求,而且操作复杂,对使用者非常的不友好。

无线网络联网方式为物联网带来移动便捷等优势的同时,配置网络的复杂也成为一个限制,配网方式的复杂会导致用户在配网过程中体验非常不好。本课题将研究一种可以替代掉这些技术的配网方案,不要求设备在硬件上支持有线网络或者蓝牙,同时操作更加简单,非常有研究和应用价值。

课题的研究意义

本课题研究的智能配网技术主要使用到无线网卡的一种模式[5]:监听模式(Monitor
Mode),在这个模式下即使无线网卡未接入到网络中,也可以抓取到网络中的数据包,由于

数据在网络中是加密传输的,对于未接入网络的设备,数据包中承载的数据是加密状态的,

不能够获取数据包中承载的数据,但是数据包头部是明文的,也就有了利用数据包头部来向

第三方传递信息的可能性。我们将无线网络的名称和密码隐藏在数据包头部中[6],无线网卡就可以直接获取到这些信息然后接入到局域网中。

在这种方式下,不需要用户去建立额外的通信渠道来将无线网络的SSID和密码告知联网设备,也不要求硬件支持有线连接或者蓝牙,适用性更强,操作更加便捷。

这项技术最开始由德州仪器公司提出,近期在国内的公司如腾讯、华为等厂商的智能硬件产品中都有使用,也很大程度上提高了他们公司的产品操作的便捷性,但是这些公司都把这项技术作为一个保密的技术点,并没有对这项技术开源,要使用这项技术,必须使用他们公司的解决方案,并不能在已有的一些平台或者通用的平台上使用。

本课题将在研究这个配网方案的可行性的基础上,在通用的平台(嵌入式Linux)上研究实现这项配网技术。

1.3 配网技术概述

本设计研究了一种配置智能设备无线网络连接的技术,配置网络的过程主要包括以下几个步骤:

默认初始状态是:通过路由器组建一个无线局域网络,有安卓设备已经接入到这个无线网络中,需要配置网络的智能设备放置在无线网络的覆盖范围中。

过程1:将需要接入网络的设备(之后简称联网设备)置于当前路由器无线网络覆盖范围之内,将联网设备的无线网卡置于监听模式(Monitor
Mode),此时无线网卡能够收到来自该路由器的无线数据包,相当于是在路由器和联网设备之间建立了一个单向通信的通道。

过程2:在智能设备上编写配置数据作为多播数据包,配置数据包括无线网络的SSID(Service
Set
Identifier:服务集标识,即我们通常说的无线网络的名称)和无线密码。路由器通过多播的方式持续发送数据包。

过程3:联网设备在监听模式下持续扫描不同的无线网络信道,直到在某个信道抓取到无线网络链路层的多播数据包,之后锁定到该信道,持续接收数据包直到解析出SSID和密码,然后连接到路由器。

过程4:如果成功连接到路由器,则会发送一个连接成功的信息到智能设备,否则返回过程3。

本设计在首先是,在嵌入式平台上通过C语言编程实现上述过程,验证其可行性,并通过智能设备完成配网交互过程。

1.4 配网技术应用于物联网产品的国内外研究现状

1.4.1 Smart Config技术

德州仪器公司(Texas Instruments)为该公司生产的无线模块解决方案SimpleLink Wi-Fi
CC3000
附带的技术。该技术可以实现对无线网络接入配置操作进行简化,允许客户端简单高效的接入到无线局域网中。传统的修改无线网络配置通常需要用到显示屏或者键盘,Smart
Config技术为用户提供了一种简化的接入无线网络的方式[7]。通过调用Smart
Config程序提供的接口,可以实现在用户的安卓系统或者IOS系统配置无线网络。

1.4.2 Air Kiss技术

Air
Kiss是由腾讯公司推出的,应用于微信智能硬件平台,为Wi-Fi设备提供的微信配网、局域网发现和局域网通信的技术。Air
Kiss只能在微信智能硬件平台使用。

1.4.3 总结

利用无线网卡的监听模式来实现配置无线网络的技术在TI公司和腾讯公司都有在使

用,他们公司有公布一部分实现思路,但是并没有公布实现细节,并且对使用平台都有限制,

要使用这项技术必须使用他们公司的解决方案。本设计的目的是在这些公司公布的思路的基础上,来实现这项技术,并且让这项技术能够运用到通用的平台上。

1.5 本章小结

本章节主要介绍了本课题的研究目的和意义。本课题的研究目的是实现一种新型的无线网络配置方式,该配网方式相比较与其他常见的配网方式,比如通过有线网络、蓝牙等方式,更加简单、便捷。具有较大的研究和应用价值。

本课题设计的实现技术主要是依赖于无线网卡存在的一个特殊的模式:监听模式,利用该模式下无线网卡可以接受到周围空气种无线网络中传输的数据,相当于是在无线网络和该无线网卡之间建立了一个单向通信的通道,利用这个通道来传输无线网络的SSID和密码,接收端接收到之后进行修改系统配置,完成整个智能配网的流程。

智能配网技术是一项非常新的技术,最开始是由TI公司推出,应用与该公司的CC3000系列的无线网卡,在之后国内的腾讯公司在其微信智能硬件平台也有使用这项技术,但是这两个公司都没有对这个技术进行开源,同时对使用的平台也有比较大的限制。本课题设计的目的是在实现这项技术,让这项技术能够在通用性平台上使用。

智能配网技术理论基础

2.1 计算机无线网络

2.1.1 计算机无线网络体系

计算机无线网络-WLAN,是指通过最新的无线网络技术,将几个近距离的设备连接袭来,可以进行相互之间通信,网络资源共享的一种网络架构体系[8]。无线网络的特征是排除了有线电缆的不便性,不再使用有线电缆来连接多个客户端。而是采取无线的方式进行连接,这样可以使得网络的搭建更加灵活、使用更加便捷。计算无线网络通信使用到的通信协议是由IEEE制定的802.11协议。

2.1.2 OSI七层模型

为使不同厂家的计算机能互相通信,以便在更大的网络范围内实现网络互联,国际标准化组织ISO(International
Organization for Standardization)在1983年提出将OSI(Open System Interconnection
Reference
Mode)七层模型作为国际网络标准[9]:开放式系统互联模型,当两台计算机通信时,任何一层的软件都假定和另一台计算机的同一层进行通信,而开发人员并不关系该层如何通过此层服务实现功能。简化了网络结构,各种网络设备也可以互相兼容,大大推动了网络通信的发展。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

OSI七层模型如图2-1所示:

图2-1 OSI七层模型

2.1.3 无线信道

无线网络的信道总共有14个,每个国家使用的信道都不相同,中国使用的无线网络信道是1-13信道,14信道仅用作测试使用。目前主流的无线网络网络设备一般都支持13个信道,不管采用的标准是802.11b/g还是802.11b/g/n ,对于14个无线信道来说,各自的频率是不同的,但是每个信道都占据一定的频率范围,为20mhz,所以在相邻的信道之间会有一些相互重叠的情况存在。

无线网络(电脑无线网卡、路由器、AP热点)可在不同的信道上运行。由于信道的特性,在某一个信道上,同一个时间点只允许一个发送方或者接收方的存在,也就是说如果不同的两个网络中的设备使用了相同的信道来进行数据传输,如果某个设备正在进行数据传输,其他设备需要等待这个设备传输完成才能使用当前信道进行数据传输,会严重影响数据的传输效率,所以为了降低干扰,我们需要尽量使用不同的信道。

常用的2.4GHz(=2400MHz)频带的14个信道划分如下图所示。实际上一共存在了14个信道,在中国不能使用14信道,这是由国家无线电管理协会规定的[10]。下图画出了每个信道的中心频率,可以明显看出每个信道的有效带宽为
20MHz,除此之外还可以看到在信道1、6、11有2MHZ的强制隔离带,这个强制隔离带的效果类似于在高速公路上的隔离带。所以对于第1信道来说,其信道中心频率为2412MHZ,其频率范围为2401\~2423MH。

图2-2 2.4GHZ无线信道

2.2无线网卡监听模式

我们生活中常用的无线网卡,一般有都存在四种模式,即Monitor Mode,Ad-hoc Mode
Managed Mode,Master Mode。这四种模式对应着不同的工作场景。

Managed
Mode:在该模式下,主要用于直接与其他的无线客户端进行通信,进行接入连接。如果我们需要接入Internet上网,就需要使用这个模式。在这个模式下,整个网络通信过程是由无线驱动程序控制。

Master
Mode:在这个模式下,将允许一下特定的驱动程序和软件工作在无线网卡上。这个模式主要适用于提供一个可供接入的无线接入点,我们常见的无线路由器就是工作在这个模式下。同时对于一个普通的PC来讲,如果将无线网卡的模式改成Master模式,它就相当于一个无线路由器。

Ad hoc Mode :当两台设备采用直连的方式组建成局域网的时候,使用的就是Ad
hoc模式,在Ad
hoc模式下,设备与设备之间,采用的是相等的网络进行网络互联。对于进行网络互联的设备,双方都担任了无线接入点的角色。

Monitor
模式:本设计主要使用到的模式,该模式可以用于监控某个无线网络中的流量,也可以用来检测网络故障和纠错。在这个模式下可以使用tcpdump、aircrack等工具进行无线网络抓包[11]。

2.3 802.11包数据结构

当我们以802.11结构从数据链路层抓取数据的时候,我们只需要对承载数据的数据包进行识别并获取长度,所以我们需要对数据包类型进行判断。

802.11帧的组成结构如图2-3所示:

图2-3 802.11帧结构

其中Frame control为帧控制字段,控制字段的前2bit节为:协议类型;

type为:00时是管理帧,

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值