CN104144086B - 通信方法和系统及信息发送和接收装置 - Google Patents
通信方法和系统及信息发送和接收装置 Download PDFInfo
- Publication number
- CN104144086B CN104144086B CN201310649198.1A CN201310649198A CN104144086B CN 104144086 B CN104144086 B CN 104144086B CN 201310649198 A CN201310649198 A CN 201310649198A CN 104144086 B CN104144086 B CN 104144086B
- Authority
- CN
- China
- Prior art keywords
- field
- data
- sequence
- code
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
- H04W28/065—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/02—Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
- H04W12/033—Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
- H04W12/037—Protecting confidentiality, e.g. by encryption of the control plane, e.g. signalling traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
一种通信方法,包括获取待发送的传输数据;将传输数据编码在编码字段上而生成数据包,编码字段为数据包中可直接监听内容的字段;发送数据包;接收数据包;解码编码字段获得传输数据。上述通信方法利用数据包中的可直接监听内容的编码字段,编码上传输数据并发送出去由接收端接收。通过上述方法,由于传输数据被编码的编码字段是可直接监听到内容的,即使数据包的其他字段被加密而无法获知内容,仍然可以获得传输数据,从而实现向接收端发送信息并由接收端接收获得信息,接收端无需事先进行设置与外界建立连接,仅通过监听即可接收传输数据。此外还提供一种通信系统及信息发送/接收装置。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种通信方法和系统及信息发送/接收装置。
背景技术
随着移动互联网与物联网技术的发展,越来越多的设备具有了无线网络的接入能力。但是,如何便捷的向一台与外界没有建立实质性连接的接收端传递信息,却是一个难题。
发明内容
基于此,有必要针对如何向与外界没有任何实质性连接而又具有网络接入能力的接收端发送信息的问题,提供一种通信方法和系统及信息发送/接收装置。
一种通信方法,包括:
获取待发送的传输数据;
将所述传输数据编码在编码字段上而生成数据包,所述编码字段为所述数据包中可直接监听内容的字段;
发送所述数据包。
一种通信方法,包括:
接收将传输数据编码在编码字段上而生成的数据包,所述编码字段为所述数据包中可直接监听内容的字段;
解码所述编码字段获得所述传输数据。
一种通信方法,包括:
获取待发送的传输数据;
将所述传输数据编码在编码字段上而生成数据包,所述编码字段为所述数据包中可直接监听内容的字段;
发送所述数据包;
接收所述数据包;
解码所述编码字段获得所述传输数据。
一种信息发送装置,包括:
获取模块,用于获取待发送的传输数据;
编码模块,用于将所述传输数据编码在编码字段上而生成数据包,所述编码字段为所述数据包中可直接监听内容的字段;
发送模块,用于发送所述数据包。
一种信息接收装置,包括:
接收模块,用于接收将传输数据编码在编码字段上而生成的数据包,所述编码字段为所述数据包中可直接监听内容的字段;
解码模块,用于解码所述编码字段获得所述传输数据。
一种通信系统,包括:
获取模块,用于获取待发送的传输数据;
编码模块,用于将所述传输数据编码在编码字段上而生成数据包,所述编码字段为所述数据包中可直接监听内容的字段;
发送模块,用于发送所述数据包;
接收模块,用于接收所述数据包;
解码模块,用于解码所述编码字段获得所述传输数据。
上述通信方法和系统及信息发送/接收装置,利用数据包中的可直接监听内容的编码字段,编码上传输数据并发送出去由接收端接收。通过上述方法,由于传输数据被编码的编码字段是可直接监听到内容的,即使数据包的其他字段被加密而无法获知内容,仍然可以获得传输数据,从而实现向接收端发送信息并由接收端接收获得信息,接收端无需事先进行设置与外界建立实质性连接,仅通过监听即可接收传输数据。
附图说明
图1为一实施例通信方法的流程图;
图2为如图1所示通信方法中的802.2SNAP格式数据包示意图;
图3为如图1所示通信方法中的生成数据包的流程图;
图4为如图3所示通信方法中的链路层数据结构示意图;
图5为如图3所示通信方法中的magic code字段的数据结构示意图;
图6为如图3所示通信方法中的序列首字段的数据结构示意图;
图7为如图3所示通信方法中的序列字段的数据结构示意图;
图8为如图3所示通信方法中的数据发送顺序的示意图;
图9为又一实施例通信方法的流程图;
图10为图3、图9所示实施例中的Length字段的转义表;
图11为图3、图9所示实施例的纠错能力分析表;
图12为又一实施例通信方法中的Ethernet802.2格式数据包的示意图;
图13为又一实施例通信方法中的Ethernet802.3格式数据包的示意图;
图14为又一实施例通信方法的流程图;
图15为一实施例信息发送装置的示意图;
图16为一实施例信息接收装置的示意图;
图17为一实施例通信系统的示意图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对通信方法和系统及信息发送/接收装置进行更全面的描述。附图中给出了通信方法和系统及信息发送/接收装置的首选实施例。但是,通信方法和系统及信息发送/接收装置可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对通信方法和系统及信息发送/接收装置的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在通信方法和系统及信息发送/接收装置的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
图1为一实施方式的通信方法,本实施例具体可适用于与处于混杂模式监 听空间中的无线信号的接收端进行无线通信,尤其适用于向未与其他设备建立实质性连接的接收端传送信息。如图1所示,本实施例的通信方法的具体步骤如下:
S120,获取待发送的传输数据。传输数据是进行无线通信需要发送至接收端的用户数据,而非系统自动生成的用于传输过程的传输控制数据。传输数据例如可以是无线接入时所需的服务集标识(Service Set Identifier,缩写为ssid)和密码、智能空调的调整参数等等。传输数据可以接收用户输入的方式获取,也可以通过网络获取,还可以从发送端的本地存储器中获取。
S140,将传输数据编码在编码字段上而生成数据包,编码字段为数据包中可直接监听内容的字段。可直接监听内容的编码字段是指无线传输过程中,暴露具体内容的字段。即使没有获得无线通信的密码,只要在信号覆盖的范围内,具备该无线传输功能的接收端都能够获得该编码字段的具体内容。在很多无线通信方式中,数据包内存在一些不需要保密的信息,这些不需要保密的信息是直接暴露的,例如无线局域网用到的802.2SNAP格式数据包中的长度字段等。传输数据可以明文传送,也可以另行加密,加密信道密码和加密传输数据的密码是不同的密码。若传输数据加密,接收端可以相应解密,还是可以直接获得传输数据的内容,不受加密信道的影响。
S160,发送数据包。生成数据包后,按照无线通信的要求,例如采用设定的频率、功率等进行数据包的发送。如果发送数据包的信道已经加密,通过加密信道发送数据包。
上述通信方法,利用数据包中的可直接监听内容的编码字段,编码上传输数据并发送出去由接收端接收。通过上述方法,由于传输数据被编码的编码字段是可直接监听到内容的,即使数据包的其他字段被加密而无法获知内容,仍然可以获得传输数据,从而实现向接收端发送信息并由接收端接收获得信息,接收端无需事先进行设置与外界建立连接,仅通过监听即可接收传输数据。
本实施例在信号载体方面,可采用wifi无线信号进行信息传递,较优的,可1至14全信道支持。利用数据包中可直接监听内容的编码字段编码传送数据,接收端可以处于混杂模式监听空间中的无线信号,从而能够监听到可直接监听 内容的编码字段,解码编码字段即可得到传输数据。本实施例的方法较适合传输少量的数据,可应用于具有无线发送能力的手机、平板电脑等无线终端向智能设备上的物联网智能控制芯片发送服务集标识和密码。步骤S160中,数据包为广播包,通过无线访问接入点转发给接收端。无线访问接入点具有较大的功率,经其转发可增大无线通信信号物理空间上的覆盖范围。
在其中一个实施例中,编码字段为普通应用程序可直接控制的字段。由于移动终端的操作系统的限制(比如IOS或者Android),有些可直接监听内容的字段的控制需要很高的控制权限,负责编码的应用程序一般是很难控制。编码字段选择普通应用程序可直接控制的字段,则执行本实施例的应用程序不需要具有很高的控制权限,不仅方便使用,而且也不会影响系统的安全性。作为一个实施例,数据包为802.2SNAP格式,编码字段为802.2SNAP格式数据包中的长度字段。802.11是IEEE制定的无线局域网协议,802.11以802.2的逻辑链路控制封装来携带IP封包,因此能够以802.2SNAP格式接收无线网络数据。如果开启wifi芯片的混杂模式监听空间中的无线信号,并以802.2SNAP格式从数据链路层截取数据,就会得到如图2所示的数据包。
图2中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,LLC字段表示LLC头(LLC是Logical Link Control的缩写,是指逻辑链路控制),SNAP字段包括3字节的厂商代码和2字节的协议类型标识。DATA区(数据区)为负载,对于加密信道来说是密文,接收端在获得加密信道的密码之前,是无法获得数据区的具体内容的。FCS字段表示帧检验序列。从无线信号监听方,即接收端的角度来说,不管无线信道有没有加密,DA、SA、Length、LLC、SNAP、FCS字段总是暴露的,可以直接监听内容,但从执行本实施例的方法的发送端的角度来说,由于操作系统的限制(比如IOS或者Android),DA、SA、LLC、SNAP、FCS五个字段的控制需要很高的控制权限,发送端负责编码的应用程序一般是很难控制。因此利用可直接监听内容且普通应用程序可直接控制的Length字段,发送端负责编码的应用程序可以通过改变其所需要发送数据包的长度进行很方便的控制。
在其中一个实施例中,数据包基于用户数据报协议(User Datagram Protocol,缩写为UDP)。可利用UDP广播包作为信息的载体,发送端发送一系列的UDP广播包,其中每一包的长度(即Length字段)都进行编码,接收端利用混杂模式监听空间中的无线信号,并从数据链路层截取802.2SNAP格式数据包,便可得到已编码的Length字段,并解码得到传输数据。当然数据包也可以是基于传输控制协议(Transmission Control Protocol,TCP)的数据包。
在其中一个实施例中,由于受到最大传输单元(Maximum Transmission Unit,缩写为MTU)的限制,Length字段最大可编码位数为10bit。但实际测试过程中发现,UDP包长度与丢包率成正比,当Length字段编码位数达到9bit,即发送UDP包的长度大于256时,UDP广播包的丢包率就会明显升高,而且包与包之间也会发生乱序。因此Length字段编码位数限制在8bit之内,即UDP广播包的发送长度不大于256,因此每一个UDP广播包所能携带的信息量刚好为一个字节,所以较优的,本实施例的方法采用单字节方式发送信息。
由于每个数据包可承载的数据较少,作为一个实施例,通过多个数据包组成的数据包组完成一次传输数据的发送,参见图3,步骤S140包括:
S142,根据传输数据生成用于被识别的控制字段和用于装载传输数据的数据字段。
S144,将控制字段和数据字段顺序编码在多个数据包的编码字段上而生成多个数据包。通过控制字段和数据字段,可以在单个数据包传输数据量有限的情况下,通过数据包组实现大于单个数据包数据量的数据传输。
通信方法的链路层数据结构示意图请参见图4。链路层数据结构分为两类,control字段(即控制字段)与data字段(即数据字段)。magic code field(即识别字段)、prefix code field(即前缀字段)、sequence header field(即序列首字段)属于控制字段,data field(即序列字段)属于数据字段。在控制字段中,识别字段用于被识别,前缀字段与识别字段完全相同,在序列首字段之前发送,作用是表示多个序列的正式开始。序列首字段用于装载校验数据的校验码。在数据字段中,序列字段用于装载传输数据。控制字段与数据字段的字节以第7bit位加以区别,该位为1表示数据字段,为0表示control字段。在其他实施例中,控制字段和数据字段的字节可以以任意其他bit位为控制位,控制字段和数据字 段的字节的控制位的代码不相同。bit位可以是0bit位至7bit位中的任一。当然也可以0表示数据字段,1表示control字段。magic code与序列首字段通过第6bit位加以区分,该位为1表示序列首字段,为0表示识别字段。在其他实施例中,也可以用其他bit位进行区分。当然也可以0表示序列首字段,1表示识别字段。
参见图5,识别字段包括magic code(即识别字节),识别字节包括用于被识别的magic(即识别代码)和用于装载信息的information(即信息代码)。具体的,识别字段包括4字节(bytes),每个字节的高4位为识别代码,低四位为信息代码。前两个字节的信息代码分别装载要发送数据长度的高4位和低4位,后面两个字节的信息代码分别装载要发送ssid的crc8(循环冗余校验码)值的高4位和低4位。在该通信方法用于传输wifi的ssid和密码时,在控制字段传输ssid的crc8字段是对整个传输过程的优化。接收端接收数据之前先对无线访问接入点(Access Point,缩写为AP)进行扫描,通过获取的信标可以得知无线环境中所有非隐藏AP的ssid、rssi(received signal strength indicator,接收信号强度显示)以及信道。在传输过程中,接收端先从识别字段中获取目标AP的ssidcrc8值,然后再和事先扫描所得到的ssid的crc8值进行比对,如果发现相同值,那么在接下来的接收过程中接收端就不用再接收ssid信息,可大大缩短传输的时间。
在其中一个实施例中,首先需要发送预定数目的识别字段,例如20个。接收端处于的无线网络环境有可能较为复杂,很有可能在同一个空间中存在多个AP,而这些AP又分布在相同或者不同的信道上,这样接收端开始时无法得知发送端在1至14中的哪一个信道上发送信息,而且同一个信道上也可能会有很多设备在发送UDP广播包。在这种情况下,接收端监听到的数据包是海量的。为了从海量的数据信息中定位出发送端所在的信道和发送端的物理地址(即mac地址),在发送其他信息之前,发送端可发送20个识别字段,这些识别字段均由4个字节组成,并且很容易被识别出来,接收端就能定位发送端的mac地址与所处的信道,便于在之后的信息监听过程中对海量信息进行有效的过滤。
参见图6,序列首字段包括sequence crc8(即序列循环冗余校验码)和 sequenceindex(即序列索引)。序列字段包括序列字节,用于装载传输数据。一个序列首字段和一个序列字段组成一个sequence(即序列),可以通过多个序列传送传输数据。本实施例中,把待发送的传输数据以4为粒度进行划分(如果传输数据的长度不能被4整除要用0进行补齐),每4个序列字节组成一个序列字段,以序列为单位进行数据的发送。并且,为了纠错而重复执行预定次数的传输数据发送时,在第一次发送传输数据后,即第一次发送完包含上述传输数据的N个序列之后,重新开始N个序列的发送之前,发送一次前缀字段,表示N个序列的开始。即在重复发送时,数据包由前缀字段、序列首字段和数据字段组成,可以没有识别字段。序列首字段由两个字节组成,第一个字节的低六位装载的是从序列索引开始到本序列结束发送的所有数据的crc8,在接收完一个序列的数据之后,需进行crc8值的效验,如果不相同,证明该序列的数据接收出错,应该丢弃。
参见图7,序列字段由4字节组成,每个字节的第7bit位为控制位,固定为1,其余的7位用于装载传输数据。传输数据包括ssid和ssid的密码,以及用于确认接收到传输数据的随机数。其中随机数的作用是,当数据接收端连上AP之后,立即发送以该随机数为内容的UDP广播包,当发送端收到该广播包后就能确认接收端已经准确接收到所有传输数据。随机数大小为一个字节,且其大小小于127。密码和ssid都’\0’结尾,并且可以通过字典法加密,相应的接收端用可以用相同的字典解密。传输数据的发送顺序为先发送密码,再发送随机数,最后发送ssid,参见图8。如果接收端在识别字段中获取目标AP的ssid crc8值,与事先扫描所得到的ssid的crc8值进行比对,且发现相同值,则可不接收在后发送的ssid信息,可大大缩短传输的时间。
图9为一实施方式的通信方法,本实施例具体可适用于处于混杂模式监听空间中的无线信号的接收端与具有无线发送能力的手机、平板电脑等无线终端进行无线通信,尤其适用于在未与其他设备建立实质性连接的情况下接收信息。如图9所示,本实施例的通信方法的具体步骤如下:
S220,接收将传输数据编码在编码字段上而生成的数据包,编码字段为数 据包中可直接监听内容的字段。本步骤与S160对应,不再赘述。对于采用了加密信道传输的数据包,通过加密信道取得数据包。
S240,解码编码字段获得传输数据。按照与编码相应的格式进行解码,即可获得传输数据。对于采用了加密信道传输的数据包,虽然数据区加密而无法获得具体内容,但是编码字段为数据包中可直接监听内容的字段,不受加密信道的影响,仍然能够获得其中的内容而进行解码。
本实施例的接收端可基于wifi无线通信协议,较适合接收少量的数据,可应用于物联网智能控制芯片接收ssid和密码。比如智能开关,由于不具备输入ssid的按键或触摸屏,通过这种接收方式可以便捷的获得ssid和密码。上述的数据包可以为广播包,通过接收无线访问接入点转发获得。无线访问接入点具有较大的功率,经其转发可增大无线通信信号物理空间上的覆盖范围。接收端通过混杂模式监听状态监听空间中的无线信号,执行步骤S220。步骤S220为从数据链路层截取数据,得到数据包。
数据包及编码字段可参见图1至图8所示的实施例。数据包被发送前经IP层和数据链路层封装,并加密。所以步骤S240包括将长度字段转义的步骤。作为一个实施例,数据包作为UDP广播包发送,一个UDP层的数据包,要经过IP层、数据链路层的封装,并且通过加密(加密方式包括WPA2、WPA和WEP)后才会被发送出去,所以发送端发送UDP广播包的长度与接收端最后监听到的Length字段值存在差异,因此需要进行转义。通过研究发现,只要UDP广播包的长度在MTU的限制范围内(即UDP包不分割),那么发送端发送UDP广播包的长度与接收端最后监听到的Length字段值的差值为一个定值,且该定值不随UDP广播包的长度变化而变化,只与WIFI对信道的加密方式有关。因此只要找出该差值在不同加密方式下的值,接收端就能对Length字段进行转义。
通过一系列的实验,得到如图10所示的转义表。AES为Advanced EncryptionStandard的缩写,是指高级加密标准。TKIP为Temporal Key Integrity Protocol的缩写,是指临时密钥完整性协议。RC4是指密钥长度可变的流加密算法。如果WIFI加密方式为WPA2(AES),接收端通过监听,在链路层截获一个802.2SNAP格式的UDP广播包,其Length字段的值152,接收端转义可得到发送端 发送的内容为152-52=100。因此将长度字段转义的步骤可以是长度字段的值减去预设的转义值。
在其中一个实施例中,通过接收多个数据包组成的数据包组完成一次传输数据的接收,步骤S240包括:解码多个数据包,获得顺序编码在多个数据包的编码字段上的用于被识别的控制字段和用于装载传输数据的数据字段。控制字段包括识别字段及序列首字段,识别字段用于识别,序列首字段用于解码获得校验数据的校验码。数据字段包括序列字段,序列字段用于解码获得传输数据。序列首字段包括序列循环冗余校验码,以及序列索引。序列字段包括序列字节,用于解码获得传输数据。接收一个数据包组后,通过序列循环冗余校验码,进行校验,若校验失败,则证明该序列的数据接收出错,丢弃该数据包组。
在其中一个实施例中,具体的,一个序列首字段和一个序列字段组成一个序列,可以通过多个序列传送传输数据。序列首字段由两个字节组成,第一个的低六位装载的是从序列索引开始到本序列结束发送的所有数据的crc8,在接收完一个序列的数据之后,需进行crc8值的效验,如果不相同,证明该序列的数据接收出错,应该丢弃。
在每次接收到装载传输数据的N个序列之前,会接收到前缀字段,解码可得到用于解码获得ssid的ssid crc8。本实施例的通信方法还包括扫描环境中的AP,获得环境服务集标识。通过ssid crc8校验环境服务集标识,若校验成功,则放弃接收ssid。接收端接收数据之前先对AP进行扫描,通过获取的信标可以得知无线环境中所有非隐藏AP的ssid、rssi(received signal strength indicator,接收信号强度显示)以及信道。在传输过程中,接收端先从识别字段中获取目标AP的ssid crc8值,然后再和事先扫描所得到的ssid的crc8值进行比对,如果发现相同值,那么在接下来的接收过程中接收端就不用再接收ssid信息,可大大缩短传输的时间。
上述实施例中的通信模型可以抽象为错误率为0-5%的单向的信道,所需要传递信息的最大长度为68字节。在这种情况下,如果不采用纠错算法,就很难保证在有限次数内完成信息的发送。作为一个实施例,采用了累积纠错算法来保证在有限次内完成传输过程。累积纠错算法的理论基础为:多轮数据发送过 程中,在同一位数据上发生错误的概率是很低的。因此可以累积多轮的数据传递结果进行分析,其中一轮中某一位错误数据有很大的概率能在其它轮中找到其对应的正确值,这样就能保证在有限次内完成信息的发送。
假定需要传递信息的长度为68字节,计算在最坏的情况下,使用累积纠错算法与不使用累积纠错算法信息发送成功的概率与发送次数的关系,结果如图11所示。假定每传递一个字节的错误率是5%,如果需要传递68字节的数据,那么一次传递成功的概率为:(1-0.05)68=3%。在采用了上述纠错算法的情况下,一次传递成功的概率同上为3%,n次传递成功的概率为:(1-0.05n)68。
本实施例的传输速率取决于发送端UDP广播包的发送速率,目前广播包的发送频率为5ms发送一个,因此其传输速率为200bytes/s。在不计算识别字段的情况下,负载效率为66.7%。如果发送信息长度为最长的68字节,那么在最坏情况下,最多需要5次就可以完成信息发送,最大的传输时间需要68/66.7×5/200=2.549s。
在其他实施例中,数据包还可以是Ethernet802.2格式,如图12所示为Ethernet802.2格式数据包的示意图,编码字段为Ethernet802.2格式数据包中的长度字段,其他与数据包为Ethernet802.2SNAP格式的实施例相同。图12中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,LLC字段表示LLC头,数据字段为负载,FCS字段表示帧检验序列。
数据包还可以是Ethernet802.3格式,如图13所示为Ethernet802.3格式数据包的示意图,编码字段为Ethernet802.3格式数据包中的长度字段,其他与数据包为Ethernet802.2SNAP格式的实施例相同。图13中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,数据字段为负载,FCS字段表示帧检验序列。
数据包还可以是Ethernet802.3SNAP格式,参见图2,Ethernet802.3SNAP格式数据包的示意图与数据包为Ethernet802.2SNAP格式的实施例相同,编码字段为Ethernet802.3SNAP格式数据包中的长度字段。
图14为一实施方式的通信方法,本实施例具体可适用于处于混杂模式监听空间中的无线信号的接收端与具有无线发送能力的手机、平板电脑等无线终端进行无线通信,尤其适用于在未与其他设备建立实质性连接的情况下接收信息。如图14所示,本实施例的通信方法的具体步骤如下:
S320,获取待发送的传输数据。传输数据是进行无线通信需要发送至接收端的用户数据,而非系统自动生成的用于传输过程的传输控制数据。传输数据例如可以是无线接入时所需的服务集标识(Service Set Identifier,缩写为ssid)和密码、智能空调的调整参数等等。传输数据可以接收用户输入的方式获取,也可以通过网络获取,还可以从发送端的本地存储器中获取。
S340,将传输数据编码在编码字段上而生成数据包,编码字段为数据包中可直接监听内容的字段。可直接监听内容的编码字段是指无线传输过程中,暴露具体内容的字段。即使没有获得无线通信的密码,只要在信号覆盖的范围内,具备该无线传输功能的接收端都能够获得该编码字段的具体内容。在很多无线通信方式中,数据包内存在一些不需要保密的信息,这些不需要保密的信息是直接暴露的,例如无线局域网用到的802.2SNAP格式数据包中的长度字段等。
S360,发送数据包。生成数据包后,按照无线通信的要求,例如采用设定的频率、功率等进行数据包的发送。如果发送数据包的信道已经加密,通过加密信道发送数据包。
S380,接收数据包。本步骤与S360对应,对于采用了加密信道传输的数据包,通过加密信道取得数据包。
S390,解码编码字段获得传输数据。按照与编码相应的格式进行解码,即可获得传输数据。对于采用了加密信道传输的数据包,虽然数据区加密而无法获得具体内容,但是编码字段为数据包中可直接监听内容的字段,不受加密信道的影响,仍然能够获得其中的内容而进行解码。
上述通信方法,利用数据包中的可直接监听内容的编码字段,编码上传输数据并发送出去由接收端接收。通过上述方法,由于传输数据被编码的编码字段是可直接监听到内容的,即使数据包的其他字段被加密而无法获知内容,仍然可以获得传输数据,从而实现向接收端发送信息并由接收端接收获得信息, 接收端无需事先进行设置与外界建立连接,仅通过监听即可接收传输数据。
本实施例在信号载体方面,可采用wifi无线信号进行信息传递,较优的,可1至14全信道支持。利用数据包中可直接监听内容的编码字段编码传送数据,接收端可以处于混杂模式监听空间中的无线信号,从而能够监听到可直接监听内容的编码字段,解码编码字段即可得到传输数据。本实施例的方法较适合传输少量的数据,可应用于具有无线发送能力的手机、平板电脑等无线终端向智能设备上的物联网智能控制芯片发送服务集标识和密码。步骤S360中,数据包为广播包,通过无线访问接入点转发给接收端。无线访问接入点具有较大的功率,经其转发可增大无线通信信号物理空间上的覆盖范围。
在其中一个实施例中,编码字段为普通应用程序可直接控制的字段。由于移动终端的操作系统的限制(比如IOS或者Android),有些可直接监听内容的字段的控制需要很高的控制权限,负责编码的应用程序一般是很难控制。编码字段选择普通应用程序可直接控制的字段,则执行本实施例的应用程序不需要具有很高的控制权限,不仅方便使用,而且也不会影响系统的安全性。作为一个实施例,数据包为802.2SNAP格式,编码字段为802.2SNAP格式数据包中的长度字段。802.11是IEEE制定的无线局域网协议,802.11以802.2的逻辑链路控制封装来携带IP封包,因此能够以802.2SNAP格式接收无线网络数据。如果开启wifi芯片的混杂模式监听空间中的无线信号,并以802.2SNAP格式从数据链路层截取数据,就会得到如图2所示的数据包。
图2中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,LLC字段表示LLC头(LLC是Logical Link Control的缩写,是指逻辑链路控制),SNAP字段包括3字节的厂商代码和2字节的协议类型标识。DATA区(数据区)为负载,对于加密信道来说是密文,接收端在获得加密信道的密码之前,是无法获得数据区的具体内容的。FCS字段表示帧检验序列。从无线信号监听方,即接收端的角度来说,不管无线信道有没有加密,DA、SA、Length、LLC、SNAP、FCS字段总是暴露的,可以直接监听内容,但从执行本实施例的方法的发送端的角度来说,由于操作系统的限制(比如IOS或者Android),DA、SA、LLC、SNAP、FCS五个字 段的控制需要很高的控制权限,发送端负责编码的应用程序一般是很难控制。因此利用可直接监听内容且普通应用程序可直接控制的Length字段,发送端负责编码的应用程序可以通过改变其所需要发送数据包的长度进行很方便的控制。
在其中一个实施例中,数据包基于用户数据报协议(User Datagram Protocol,缩写为UDP)。可利用UDP广播包作为信息的载体,发送端发送一系列的UDP广播包,其中每一包的长度(即Length字段)都进行编码,接收端利用混杂模式监听空间中的无线信号,并从数据链路层截取802.2SNAP格式数据包,便可得到已编码的Length字段,并解码得到传输数据。当然数据包也可以是基于传输控制协议(Transmission Control Protocol,TCP)的数据包。
在其中一个实施例中,由于受到最大传输单元(Maximum Transmission Unit,缩写为MTU)的限制,Length字段最大可编码位数为10bit。但实际测试过程中发现,UDP包长度与丢包率成正比,当Length字段编码位数达到9bit,即发送UDP包的长度大于256时,UDP广播包的丢包率就会明显升高,而且包与包之间也会发生乱序。因此Length字段编码位数限制在8bit之内,即UDP广播包的发送长度不大于256,因此每一个UDP广播包所能携带的信息量刚好为一个字节,所以较优的,本实施例的方法采用单字节方式发送信息。
由于每个数据包可承载的数据较少,作为一个实施例,通过多个数据包组成的数据包组完成一次传输数据的发送,步骤S340包括:
根据传输数据生成用于被识别的控制字段和用于装载传输数据的数据字段。
将控制字段和数据字段顺序编码在多个数据包的编码字段上而生成多个数据包。
通过控制字段和数据字段,可以在单个数据包传输数据量有限的情况下,通过数据包组实现大于单个数据包数据量的数据传输。
通信方法的链路层数据结构示意图请参见图4。链路层数据结构分为两类,control字段(即控制字段)与data字段(即数据字段)。magic code field(即识别字段)、prefix code field(即前缀字段)、sequence header field(即序列首字段)属于控制字段,data field(即序列字段)属于数据字段。在控制字段中,识别字段用于被识别,前缀字段与识别字段完全相同,在序列首字段之前发送,作用 是表示多个序列的正式开始。序列首字段用于装载校验数据的校验码。在数据字段中,序列字段用于装载传输数据。控制字段与数据字段的字节以第7bit位加以区别,该位为1表示数据字段,为0表示control字段。在其他实施例中,控制字段和数据字段的字节可以以任意其他bit位为控制位,控制字段和数据字段的字节的控制位的代码不相同。bit位可以是0bit位至7bit位中的任一。当然也可以0表示数据字段,1表示control字段。magic code与序列首字段通过第6bit位加以区分,该位为1表示序列首字段,为0表示识别字段。在其他实施例中,也可以用其他bit位进行区分。当然也可以0表示序列首字段,1表示识别字段。
参见图5,识别字段包括magic code(即识别字节),识别字节包括用于被识别的magic(即识别代码)和用于装载信息的information(即信息代码)。具体的,识别字段包括4字节(bytes),每个字节的高4位为识别代码,低四位为信息代码。前两个字节的信息代码分别装载要发送数据长度的高4位和低4位,后面两个字节的信息代码分别装载要发送ssid的crc8(循环冗余校验码)值的高4位和低4位。在该通信方法用于传输wifi的ssid和密码时,在控制字段传输ssid的crc8字段是对整个传输过程的优化。接收端接收数据之前先对无线访问接入点(Access Point,缩写为AP)进行扫描,通过获取的信标可以得知无线环境中所有非隐藏AP的ssid、rssi(received signal strength indicator,接收信号强度显示)以及信道。在传输过程中,接收端先从识别字段中获取目标AP的ssid crc8值,然后再和事先扫描所得到的ssid的crc8值进行比对,如果发现相同值,那么在接下来的接收过程中接收端就不用再接收ssid信息,可大大缩短传输的时间。
在其中一个实施例中,首先需要发送预定数目的识别字段,例如20个。接收端处于的无线网络环境有可能较为复杂,很有可能在同一个空间中存在多个AP,而这些AP又分布在相同或者不同的信道上,这样接收端开始时无法得知发送端在1至14中的哪一个信道上发送信息,而且同一个信道上也可能会有很多设备在发送UDP广播包。在这种情况下,接收端监听到的数据包是海量的。为了从海量的数据信息中定位出发送端所在的信道和发送端的物理地址(即mac 地址),在发送其他信息之前,发送端可发送20个识别字段,这些识别字段均由4个字节组成,并且很容易被识别出来,接收端就能定位发送端的mac地址与所处的信道,便于在之后的信息监听过程中对海量信息进行有效的过滤。
参见图6,序列首字段包括sequence crc8(即序列循环冗余校验码)和sequenceindex(即序列索引)。序列字段包括序列字节,用于装载传输数据。一个序列首字段和一个序列字段组成一个sequence(即序列),可以通过多个序列传送传输数据。本实施例中,把待发送的传输数据以4为粒度进行划分(如果传输数据的长度不能被4整除要用0进行补齐),每4个序列字节组成一个序列字段,以序列为单位进行数据的发送。并且,为了纠错而重复执行预定次数的传输数据发送时,在第一次发送传输数据后,即第一次发送完包含上述传输数据的N个序列之后,重新开始N个序列的发送之前,发送一次前缀字段,表示N个序列的开始。即在重复发送时,数据包由前缀字段、序列首字段和数据字段组成,可以没有识别字段。序列首字段由两个字节组成,第一个字节的低六位装载的是从序列索引开始到本序列结束发送的所有数据的crc8,在接收完一个序列的数据之后,需进行crc8值的效验,如果不相同,证明该序列的数据接收出错,应该丢弃。
参见图7,序列字段由4字节组成,每个字节的第7bit位为控制位,固定为1,其余的7位用于装载传输数据。传输数据包括ssid和ssid的密码,以及用于确认接收到传输数据的随机数。其中随机数的作用是,当数据接收端连上AP之后,立即发送以该随机数为内容的UDP广播包,当发送端收到该广播包后就能确认接收端已经准确接收到所有传输数据。随机数大小为一个字节,且其大小小于127。密码和ssid都’\0’结尾,并且可以通过字典法加密,相应的接收端用可以用相同的字典解密。传输数据的发送顺序为先发送密码,再发送随机数,最后发送ssid,参见图8。如果接收端在识别字段中获取目标AP的ssid crc8值,与事先扫描所得到的ssid的crc8值进行比对,且发现相同值,则可不接收在后发送的ssid信息,可大大缩短传输的时间。
本实施例的接收端可基于wifi无线通信协议,较适合接收少量的数据,可应用于物联网智能控制芯片接收ssid和密码。比如智能开关,由于不具备输入 ssid的按键或触摸屏,通过这种接收方式可以便捷的获得ssid和密码。上述的数据包可以为广播包,通过接收无线访问接入点转发获得。无线访问接入点具有较大的功率,经其转发可增大无线通信信号物理空间上的覆盖范围。接收端通过混杂模式监听状态监听空间中的无线信号,执行步骤S380。步骤S380为从数据链路层截取数据,得到数据包。
数据包被发送前经IP层和数据链路层封装,并加密。所以步骤S390包括将长度字段转义的步骤。作为一个实施例,数据包作为UDP广播包发送,一个UDP层的数据包,要经过IP层、数据链路层的封装,并且通过加密(加密方式包括WPA2、WPA和WEP)后才会被发送出去,所以发送端发送UDP广播包的长度与接收端最后监听到的Length字段值存在差异,因此需要进行转义。通过研究发现,只要UDP广播包的长度在MTU的限制范围内(即UDP包不分割),那么发送端发送UDP广播包的长度与接收端最后监听到的Length字段值的差值为一个定值,且该定值不随UDP广播包的长度变化而变化,只与WIFI对信道的加密方式有关。因此只要找出该差值在不同加密方式下的值,接收端就能对Length字段进行转义。
通过一系列的实验,得到如图10所示的转义表。AES为Advanced EncryptionStandard的缩写,是指高级加密标准。TKIP为Temporal Key Integrity Protocol的缩写,是指临时密钥完整性协议。RC4是指密钥长度可变的流加密算法。如果WIFI加密方式为WPA2(AES),接收端通过监听,在链路层截获一个802.2SNAP格式的UDP广播包,其Length字段的值152,接收端转义可得到发送端发送的内容为152-52=100。因此将长度字段转义的步骤可以是长度字段的值减去预设的转义值。
在其中一个实施例中,通过接收多个数据包组成的数据包组完成一次传输数据的接收,步骤S390包括:解码多个数据包,获得顺序编码在多个数据包的编码字段上的用于被识别的控制字段和用于装载传输数据的数据字段。控制字段包括识别字段及序列首字段,识别字段用于识别,序列首字段用于解码获得校验数据的校验码。数据字段包括序列字段,序列字段用于解码获得传输数据。序列首字段包括序列循环冗余校验码,以及序列索引。序列字段包括序列字节, 用于解码获得传输数据。接收一个数据包组后,通过序列循环冗余校验码,进行校验,若校验失败,则证明该序列的数据接收出错,丢弃该数据包组。
在其中一个实施例中,具体的,一个序列首字段和一个序列字段组成一个序列,可以通过多个序列传送传输数据。序列首字段由两个字节组成,第一个的低六位装载的是从序列索引开始到本序列结束发送的所有数据的crc8,在接收完一个序列的数据之后,需进行crc8值的效验,如果不相同,证明该序列的数据接收出错,应该丢弃。
在每次接收到装载传输数据的N个序列之前,会接收到前缀字段,解码可得到用于解码获得ssid的ssid crc8。本实施例的通信方法还包括扫描环境中的AP,获得环境服务集标识。通过ssid crc8校验环境服务集标识,若校验成功,则放弃接收ssid。接收端接收数据之前先对AP进行扫描,通过获取的信标可以得知无线环境中所有非隐藏AP的ssid、rssi(received signal strength indicator,接收信号强度显示)以及信道。在传输过程中,接收端先从识别字段中获取目标AP的ssid crc8值,然后再和事先扫描所得到的ssid的crc8值进行比对,如果发现相同值,那么在接下来的接收过程中接收端就不用再接收ssid信息,可大大缩短传输的时间。
上述实施例中的通信模型可以抽象为错误率为0-5%的单向的信道,所需要传递信息的最大长度为68字节。在这种情况下,如果不采用纠错算法,就很难保证在有限次数内完成信息的发送。作为一个实施例,采用了累积纠错算法来保证在有限次内完成传输过程。累积纠错算法的理论基础为:多轮数据发送过程中,在同一位数据上发生错误的概率是很低的。因此可以累积多轮的数据传递结果进行分析,其中一轮中某一位错误数据有很大的概率能在其它轮中找到其对应的正确值,这样就能保证在有限次内完成信息的发送。
假定需要传递信息的长度为68字节,计算在最坏的情况下,使用累积纠错算法与不使用累积纠错算法信息发送成功的概率与发送次数的关系,结果如图11所示。假定每传递一个字节的错误率是5%,如果需要传递68字节的数据,那么一次传递成功的概率为:(1-0.05)68=3%。在采用了上述纠错算法的情况下,一次传递成功的概率同上为3%,n次传递成功的概率为:(1-0.05n)68。
本实施例的传输速率取决于发送端UDP广播包的发送速率,目前广播包的发送频率为5ms发送一个,因此其传输速率为200bytes/s。在不计算识别字段的情况下,负载效率为66.7%。如果发送信息长度为最长的68字节,那么在最坏情况下,最多需要5次就可以完成信息发送,最大的传输时间需要68/66.7×5/200=2.549s。
在其他实施例中,数据包还可以是Ethernet802.2格式,如图12所示为Ethernet802.2格式数据包的示意图,编码字段为Ethernet802.2格式数据包中的长度字段,其他与数据包为Ethernet802.2SNAP格式的实施例相同。图12中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,LLC字段表示LLC头,数据字段为负载,FCS字段表示帧检验序列。
数据包还可以是Ethernet802.3格式,如图13所示为Ethernet802.3格式数据包的示意图,编码字段为Ethernet802.3格式数据包中的长度字段,其他与数据包为Ethernet802.2SNAP格式的实施例相同。图13中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,数据字段为负载,FCS字段表示帧检验序列。
数据包还可以是Ethernet802.3SNAP格式,参见图2,Ethernet802.3SNAP格式数据包的示意图与数据包为Ethernet802.2SNAP格式的实施例相同,编码字段为Ethernet802.3SNAP格式数据包中的长度字段。
图15为一实施方式的信息发送装置100,本实施例具体可适用于与处于混杂模式监听空间中的无线信号的接收端进行无线通信,尤其适用于向未与其他设备建立实质性连接的接收端传送信息。如图15所示,本实施例的信息发送装置100包括:
获取模块120,用于获取待发送的传输数据。传输数据是进行无线通信需要发送至接收端的用户数据,而非系统自动生成的用于传输过程的传输控制数据。传输数据例如可以是无线接入时所需的服务集标识(Service Set Identifier,缩写为ssid)和密码、智能空调的调整参数等等。传输数据可以接收用户输入的方式 获取,也可以通过网络获取,还可以从信息发送装置100的本地存储器中获取。
编码模块140,用于将传输数据编码在编码字段上而生成数据包,编码字段为数据包中可直接监听内容的字段。可直接监听内容的编码字段是指无线传输过程中,暴露具体内容的字段。即使没有获得无线通信的密码,只要在信号覆盖的范围内,具备该无线传输功能的接收端都能够获得该编码字段的具体内容。在很多无线通信方式中,数据包内存在一些不需要保密的信息,这些不需要保密的信息是直接暴露的,例如无线局域网用到的802.2SNAP格式数据包中的长度字段等。传输数据可以明文传送,也可以另行加密,加密信道密码和加密传输数据的密码是不同的密码。若传输数据加密,接收端可以相应解密,还是可以直接获得传输数据的内容,不受加密信道的影响。
发送模块160,用于发送数据包。生成数据包后,按照无线通信的要求,例如采用设定的频率、功率等进行数据包的发送。如果发送数据包的信道已经加密,通过加密信道发送数据包。
上述信息发送装置100,利用数据包中的可直接监听内容的编码字段,编码上传输数据并发送出去由接收端接收。通过信息发送装置100,由于传输数据被编码的编码字段是可直接监听到内容的,即使数据包的其他字段被加密而无法获知内容,仍然可以获得传输数据,从而实现向接收端发送信息并由接收端接收获得信息,接收端无需事先进行设置与外界建立连接,仅通过监听即可接收传输数据。
本实施例在信号载体方面,可采用wifi无线信号进行信息传递,较优的,可1至14全信道支持。利用数据包中可直接监听内容的编码字段编码传送数据,接收端可以处于混杂模式监听空间中的无线信号,从而能够监听到可直接监听内容的编码字段,解码编码字段即可得到传输数据。信息发送装置100较适合传输少量的数据,可应用于具有无线发送能力的手机、平板电脑等无线终端向智能设备上的物联网智能控制芯片发送服务集标识和密码。发送模块160中,数据包为广播包,通过无线访问接入点转发给接收端。无线访问接入点具有较大的功率,经其转发可增大无线通信信号物理空间上的覆盖范围。
在其中一个实施例中,编码字段为普通应用程序可直接控制的字段。由于 移动终端的操作系统的限制(比如IOS或者Android),有些可直接监听内容的字段的控制需要很高的控制权限,负责编码的应用程序一般是很难控制。编码字段选择普通应用程序可直接控制的字段,则执行本实施例的应用程序不需要具有很高的控制权限,不仅方便使用,而且也不会影响系统的安全性。作为一个实施例,数据包为802.2SNAP格式,编码字段为802.2SNAP格式数据包中的长度字段。802.11是IEEE制定的无线局域网协议,802.11以802.2的逻辑链路控制封装来携带IP封包,因此能够以802.2SNAP格式接收无线网络数据。如果开启wifi芯片的混杂模式监听空间中的无线信号,并以802.2SNAP格式从数据链路层截取数据,就会得到如图2所示的数据包。
图2中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,LLC字段表示LLC头(LLC是Logical Link Control的缩写,是指逻辑链路控制),SNAP字段包括3字节的厂商代码和2字节的协议类型标识。DATA区(数据区)为负载,对于加密信道来说是密文,接收端在获得加密信道的密码之前,是无法获得数据区的具体内容的。FCS字段表示帧检验序列。从无线信号监听方,即接收端的角度来说,不管无线信道有没有加密,DA、SA、Length、LLC、SNAP、FCS字段总是暴露的,可以直接监听内容,但信息发送装置100,由于操作系统的限制(比如IOS或者Android),DA、SA、LLC、SNAP、FCS五个字段的控制需要很高的控制权限,信息发送装置100负责编码的应用程序一般是很难控制。因此利用可直接监听内容且普通应用程序可直接控制的Length字段,信息发送装置100负责编码的应用程序可以通过改变其所需要发送数据包的长度进行很方便的控制。
在其中一个实施例中,数据包基于用户数据报协议(User Datagram Protocol,缩写为UDP)。可利用UDP广播包作为信息的载体,信息发送装置100发送一系列的UDP广播包,其中每一包的长度(即Length字段)都进行编码,接收端利用混杂模式监听空间中的无线信号,并从数据链路层截取802.2SNAP格式数据包,便可得到已编码的Length字段,并解码得到传输数据。当然数据包也可以是基于传输控制协议(Transmission Control Protocol,TCP)的数据包。
在其中一个实施例中,由于受到最大传输单元(Maximum Transmission Unit, 缩写为MTU)的限制,Length字段最大可编码位数为10bit。但实际测试过程中发现,UDP包长度与丢包率成正比,当Length字段编码位数达到9bit,即发送UDP包的长度大于256时,UDP广播包的丢包率就会明显升高,而且包与包之间也会发生乱序。因此Length字段编码位数限制在8bit之内,即UDP广播包的发送长度不大于256,因此每一个UDP广播包所能携带的信息量刚好为一个字节,所以较优的,信息发送装置100采用单字节方式发送信息。
由于每个数据包可承载的数据较少,作为一个实施例,通过多个数据包组成的数据包组完成一次传输数据的发送,将传输数据编码在编码字段上而生成数据包,编码字段为数据包中可直接监听内容的字段的步骤具体包括:根据传输数据生成用于被识别的控制字段和用于装载传输数据的数据字段。将控制字段和数据字段顺序编码在多个数据包的编码字段上而生成多个数据包。通过控制字段和数据字段,可以在单个数据包传输数据量有限的情况下,通过数据包组实现大于单个数据包数据量的数据传输。
信息发送装置100发送的信息的链路层数据结构示意图请参见图4。链路层数据结构分为两类,control字段(即控制字段)与data字段(即数据字段)。magic code field(即识别字段)、prefix code field(即前缀字段)、sequence header field(即序列首字段)属于控制字段,data field(即序列字段)属于数据字段。在控制字段中,识别字段用于被识别,前缀字段与识别字段完全相同,在序列首字段之前发送,作用是表示多个序列的正式开始。序列首字段用于装载校验数据的校验码。在数据字段中,序列字段用于装载传输数据。控制字段与数据字段的字节以第7bit位加以区别,该位为1表示数据字段,为0表示control字段。在其他实施例中,控制字段和数据字段的字节可以以任意其他bit位为控制位,控制字段和数据字段的字节的控制位的代码不相同。bit位可以是0bit位至7bit位中的任一。当然也可以0表示数据字段,1表示control字段。magic code与序列首字段通过第6bit位加以区分,该位为1表示序列首字段,为0表示识别字段。在其他实施例中,也可以用其他bit位进行区分。当然也可以0表示序列首字段,1表示识别字段。
参见图5,识别字段包括magic code(即识别字节),识别字节包括用于被 识别的magic(即识别代码)和用于装载信息的information(即信息代码)。具体的,识别字段包括4字节(bytes),每个字节的高4位为识别代码,低四位为信息代码。前两个字节的信息代码分别装载要发送数据长度的高4位和低4位,后面两个字节的信息代码分别装载要发送ssid的crc8(循环冗余校验码)值的高4位和低4位。在信息发送装置100用于传输wifi的ssid和密码时,在控制字段传输ssid的crc8字段是对整个传输过程的优化。接收端接收数据之前先对无线访问接入点(Access Point,缩写为AP)进行扫描,通过获取的信标可以得知无线环境中所有非隐藏AP的ssid、rssi(received signal strength indicator,接收信号强度显示)以及信道。在传输过程中,接收端先从识别字段中获取目标AP的ssid crc8值,然后再和事先扫描所得到的ssid的crc8值进行比对,如果发现相同值,那么在接下来的接收过程中接收端就不用再接收ssid信息,可大大缩短传输的时间。
在其中一个实施例中,首先需要发送预定数目的识别字段,例如20个。接收端处于的无线网络环境有可能较为复杂,很有可能在同一个空间中存在多个AP,而这些AP又分布在相同或者不同的信道上,这样接收端开始时无法得知信息发送装置100在1至14中的哪一个信道上发送信息,而且同一个信道上也可能会有很多设备在发送UDP广播包。在这种情况下,接收端监听到的数据包是海量的。为了从海量的数据信息中定位出信息发送装置100所在的信道和信息发送装置100的物理地址(即mac地址),在发送其他信息之前,信息发送装置100可发送20个识别字段,这些识别字段均由4个字节组成,并且很容易被识别出来,接收端就能定位信息发送装置100的mac地址与所处的信道,便于在之后的信息监听过程中对海量信息进行有效的过滤。
参见图6,序列首字段包括sequence crc8(即序列循环冗余校验码)和sequenceindex(即序列索引)。序列字段包括序列字节,用于装载传输数据。一个序列首字段和一个序列字段组成一个sequence(即序列),可以通过多个序列传送传输数据。本实施例中,把待发送的传输数据以4为粒度进行划分(如果传输数据的长度不能被4整除要用0进行补齐),每4个序列字节组成一个序列字段,以序列为单位进行数据的发送。并且,为了纠错而重复执行预定次数的传 输数据发送时,在第一次发送传输数据后,即第一次发送完包含上述传输数据的N个序列之后,重新开始N个序列的发送之前,发送一次前缀字段,表示N个序列的开始。即在重复发送时,数据包由前缀字段、序列首字段和数据字段组成,可以没有识别字段。序列首字段由两个字节组成,第一个字节的低六位装载的是从序列索引开始到本序列结束发送的所有数据的crc8,在接收完一个序列的数据之后,需进行crc8值的效验,如果不相同,证明该序列的数据接收出错,应该丢弃。
参见图7,序列字段由4字节组成,每个字节的第7bit位为控制位,固定为1,其余的7位用于装载传输数据。传输数据包括ssid和ssid的密码,以及用于确认接收到传输数据的随机数。其中随机数的作用是,当数据接收端连上AP之后,立即发送以该随机数为内容的UDP广播包,当信息发送装置100收到该广播包后就能确认接收端已经准确接收到所有传输数据。随机数大小为一个字节,且其大小小于127。密码和ssid都’\0’结尾,并且可以通过字典法加密,相应的接收端用可以用相同的字典解密。传输数据的发送顺序为先发送密码,再发送随机数,最后发送ssid,参见图8。如果接收端在识别字段中获取目标AP的ssidcrc8值,与事先扫描所得到的ssid的crc8值进行比对,且发现相同值,则可不接收在后发送的ssid信息,可大大缩短传输的时间。
图16为一实施方式的信息接收装置200,本实施例的信息接收装置200具体可适用于处于混杂模式监听空间中的无线信号,信息接收装置200可以与具有无线发送能力的手机、平板电脑等无线终端进行无线通信,尤其适用于在未与其他设备建立实质性连接的情况下接收信息。如图16所示,本实施例的信息接收装置200包括:
接收模块220,用于接收将传输数据编码在编码字段上而生成的数据包,编码字段为数据包中可直接监听内容的字段。本步骤与发送模块160对应,不再赘述。对于采用了加密信道传输的数据包,通过加密信道取得数据包。
解码模块240,用于解码编码字段获得传输数据。按照与编码相应的格式进行解码,即可获得传输数据。对于采用了加密信道传输的数据包,虽然数据区 加密而无法获得具体内容,但是编码字段为数据包中可直接监听内容的字段,不受加密信道的影响,仍然能够获得其中的内容而进行解码。
信息接收装置200可基于wifi无线通信协议,较适合接收少量的数据,可应用于物联网智能控制芯片接收ssid和密码。比如智能开关,由于不具备输入ssid的按键或触摸屏,通过这种接收方式可以便捷的获得ssid和密码。上述的数据包可以为广播包,通过接收无线访问接入点转发获得。无线访问接入点具有较大的功率,经其转发可增大无线通信信号物理空间上的覆盖范围。接收模块220通过混杂模式监听状态监听空间中的无线信号,从数据链路层截取数据,得到数据包。
数据包及编码字段可参见图1至图8所示的实施例。数据包被发送前经IP层和数据链路层封装,并加密。所以解码编码字段获得传输数据的步骤包括将长度字段转义的步骤。作为一个实施例,数据包作为UDP广播包发送,一个UDP层的数据包,要经过IP层、数据链路层的封装,并且通过加密(加密方式包括WPA2、WPA和WEP)后才会被发送出去,所以发送端发送UDP广播包的长度与信息接收装置200最后监听到的Length字段值存在差异,因此需要进行转义。通过研究发现,只要UDP广播包的长度在MTU的限制范围内(即UDP包不分割),那么发送端发送UDP广播包的长度与信息接收装置200最后监听到的Length字段值的差值为一个定值,且该定值不随UDP广播包的长度变化而变化,只与WIFI对信道的加密方式有关。因此只要找出该差值在不同加密方式下的值,信息接收装置200就能对Length字段进行转义。
通过一系列的实验,得到如图10所示的转义表。AES为Advanced EncryptionStandard的缩写,是指高级加密标准。TKIP为Temporal Key Integrity Protocol的缩写,是指临时密钥完整性协议。RC4是指密钥长度可变的流加密算法。如果WIFI加密方式为WPA2(AES),接收端通过监听,在链路层截获一个802.2SNAP格式的UDP广播包,其Length字段的值152,信息接收装置200转义可得到发送端发送的内容为152-52=100。因此将长度字段转义的步骤可以是长度字段的值减去预设的转义值。
在其中一个实施例中,通过接收多个数据包组成的数据包组完成一次传输 数据的接收,解码模块240解码多个数据包,获得顺序编码在多个数据包的编码字段上的用于被识别的控制字段和用于装载传输数据的数据字段。控制字段包括识别字段及序列首字段,识别字段用于识别,序列首字段用于解码获得校验数据的校验码。数据字段包括序列字段,序列字段用于解码获得传输数据。序列首字段包括序列循环冗余校验码,以及序列索引。序列字段包括序列字节,用于解码获得传输数据。接收一个数据包组后,通过序列循环冗余校验码,进行校验,若校验失败,则证明该序列的数据接收出错,丢弃该数据包组。
在其中一个实施例中,具体的,一个序列首字段和一个序列字段组成一个序列,可以通过多个序列传送传输数据。序列首字段由两个字节组成,第一个的低六位装载的是从序列索引开始到本序列结束发送的所有数据的crc8,在接收完一个序列的数据之后,需进行crc8值的效验,如果不相同,证明该序列的数据接收出错,应该丢弃。
在每次接收到装载传输数据的N个序列之前,会接收到前缀字段,解码可得到用于解码获得ssid的ssid crc8。接收模块220还用于扫描环境中的AP,获得环境服务集标识。通过ssid crc8校验环境服务集标识,若校验成功,则放弃接收ssid。信息接收装置200接收数据之前先对AP进行扫描,通过获取的信标可以得知无线环境中所有非隐藏AP的ssid、rssi(received signal strength indicator,接收信号强度显示)以及信道。在传输过程中,信息接收装置200先从识别字段中获取目标AP的ssid crc8值,然后再和事先扫描所得到的ssid的crc8值进行比对,如果发现相同值,那么在接下来的接收过程中信息接收装置200就不用再接收ssid信息,可大大缩短传输的时间。
上述实施例中的通信模型可以抽象为错误率为0-5%的单向的信道,所需要传递信息的最大长度为68字节。在这种情况下,如果不采用纠错算法,就很难保证在有限次数内完成信息的发送。作为一个实施例,采用了累积纠错算法来保证在有限次内完成传输过程。累积纠错算法的理论基础为:多轮数据发送过程中,在同一位数据上发生错误的概率是很低的。因此可以累积多轮的数据传递结果进行分析,其中一轮中某一位错误数据有很大的概率能在其它轮中找到其对应的正确值,这样就能保证在有限次内完成信息的发送。
假定需要传递信息的长度为68字节,计算在最坏的情况下,使用累积纠错算法与不使用累积纠错算法信息发送成功的概率与发送次数的关系,结果如图11所示。假定每传递一个字节的错误率是5%,如果需要传递68字节的数据,那么一次传递成功的概率为:(1-0.05)68=3%。在采用了上述纠错算法的情况下,一次传递成功的概率同上为3%,n次传递成功的概率为:(1-0.05n)68。
本实施例的传输速率取决于发送端的UDP广播包的发送速率,目前广播包的发送频率为5ms发送一个,因此其传输速率为200bytes/s。在不计算识别字段的情况下,负载效率为66.7%。如果发送信息长度为最长的68字节,那么在最坏情况下,最多需要5次就可以完成信息发送,最大的传输时间需要68/66.7×5/200=2.549s。
在其他实施例中,数据包还可以是Ethernet802.2格式,如图12所示为Ethernet802.2格式数据包的示意图,编码字段为Ethernet802.2格式数据包中的长度字段,其他与数据包为Ethernet802.2SNAP格式的实施例相同。图12中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,LLC字段表示LLC头,数据字段为负载,FCS字段表示帧检验序列。
数据包还可以是Ethernet802.3格式,如图13所示为Ethernet802.3格式数据包的示意图,编码字段为Ethernet802.3格式数据包中的长度字段,其他与数据包为Ethernet802.2SNAP格式的实施例相同。图13中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,数据字段为负载,FCS字段表示帧检验序列。
数据包还可以是Ethernet802.3SNAP格式,参见图2,Ethernet802.3SNAP格式数据包的示意图与数据包为Ethernet802.2SNAP格式的实施例相同,编码字段为Ethernet802.3SNAP格式数据包中的长度字段。
图17为一实施方式的通信系统,本实施例具体可适用于处于混杂模式监听空间中的无线信号的接收端与具有无线发送能力的手机、平板电脑等无线终端进行无线通信,尤其适用于在未与其他设备建立实质性连接的情况下接收信息。 如图17所示,本实施例的通信系统包括:
获取模块120,用于获取待发送的传输数据。传输数据是进行无线通信需要发送至接收端的用户数据,而非系统自动生成的用于传输过程的传输控制数据。传输数据例如可以是无线接入时所需的服务集标识(Service Set Identifier,缩写为ssid)和密码、智能空调的调整参数等等。传输数据可以接收用户输入的方式获取,也可以通过网络获取,还可以从发送端的本地存储器中获取。
编码模块140,用于将传输数据编码在编码字段上而生成数据包,编码字段为数据包中可直接监听内容的字段。可直接监听内容的编码字段是指无线传输过程中,暴露具体内容的字段。即使没有获得无线通信的密码,只要在信号覆盖的范围内,具备该无线传输功能的接收端都能够获得该编码字段的具体内容。在很多无线通信方式中,数据包内存在一些不需要保密的信息,这些不需要保密的信息是直接暴露的,例如无线局域网用到的802.2SNAP格式数据包中的长度字段等。
发送模块160,用于发送数据包。生成数据包后,按照无线通信的要求,例如采用设定的频率、功率等进行数据包的发送。如果发送数据包的信道已经加密,通过加密信道发送数据包。
接收模块220,用于接收数据包。与发送模块160对应,接收发送模块160发送的数据包。对于采用了加密信道传输的数据包,通过加密信道取得数据包。
解码模块240,用于解码编码字段获得传输数据。按照与编码相应的格式进行解码,即可获得传输数据。对于采用了加密信道传输的数据包,虽然数据区加密而无法获得具体内容,但是编码字段为数据包中可直接监听内容的字段,不受加密信道的影响,仍然能够获得其中的内容而进行解码。
上述通信系统,利用数据包中的可直接监听内容的编码字段,编码上传输数据并发送出去由接收端接收。通过上述通信系统,由于传输数据被编码的编码字段是可直接监听到内容的,即使数据包的其他字段被加密而无法获知内容,仍然可以获得传输数据,从而实现向接收端发送信息并由接收端接收获得信息,接收端无需事先进行设置与外界建立连接,仅通过监听即可接收传输数据。
本实施例在信号载体方面,可采用wifi无线信号进行信息传递,较优的, 可1至14全信道支持。利用数据包中可直接监听内容的编码字段编码传送数据,接收端可以处于混杂模式监听空间中的无线信号,从而能够监听到可直接监听内容的编码字段,解码编码字段即可得到传输数据。本实施例的通信系统较适合传输少量的数据,可应用于具有无线发送能力的手机、平板电脑等无线终端向智能设备上的物联网智能控制芯片发送服务集标识和密码。发送模块160发送的数据包为广播包,通过无线访问接入点转发给接收端。无线访问接入点具有较大的功率,经其转发可增大无线通信信号物理空间上的覆盖范围。
在其中一个实施例中,编码字段为普通应用程序可直接控制的字段。由于移动终端的操作系统的限制(比如IOS或者Android),有些可直接监听内容的字段的控制需要很高的控制权限,负责编码的应用程序一般是很难控制。编码字段选择普通应用程序可直接控制的字段,则执行本实施例的应用程序不需要具有很高的控制权限,不仅方便使用,而且也不会影响系统的安全性。作为一个实施例,数据包为802.2SNAP格式,编码字段为802.2SNAP格式数据包中的长度字段。802.11是IEEE制定的无线局域网协议,802.11以802.2的逻辑链路控制封装来携带IP封包,因此能够以802.2SNAP格式接收无线网络数据。如果开启wifi芯片的混杂模式监听空间中的无线信号,并以802.2SNAP格式从数据链路层截取数据,就会得到如图2所示的数据包。
图2中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,LLC字段表示LLC头(LLC是Logical Link Control的缩写,是指逻辑链路控制),SNAP字段包括3字节的厂商代码和2字节的协议类型标识。DATA区(数据区)为负载,对于加密信道来说是密文,接收端在获得加密信道的密码之前,是无法获得数据区的具体内容的。FCS字段表示帧检验序列。从无线信号监听方,即接收端的角度来说,不管无线信道有没有加密,DA、SA、Length、LLC、SNAP、FCS字段总是暴露的,可以直接监听内容,但从执行本实施例的通信系统的发送端的角度来说,由于操作系统的限制(比如IOS或者Android),DA、SA、LLC、SNAP、FCS五个字段的控制需要很高的控制权限,发送端负责编码的应用程序一般是很难控制。因此利用可直接监听内容且普通应用程序可直接控制的Length字段,发送 端负责编码的应用程序可以通过改变其所需要发送数据包的长度进行很方便的控制。
在其中一个实施例中,数据包基于用户数据报协议(User Datagram Protocol,缩写为UDP)。可利用UDP广播包作为信息的载体,发送端发送一系列的UDP广播包,其中每一包的长度(即Length字段)都进行编码,接收端利用混杂模式监听空间中的无线信号,并从数据链路层截取802.2SNAP格式数据包,便可得到已编码的Length字段,并解码得到传输数据。当然数据包也可以是基于传输控制协议(Transmission Control Protocol,TCP)的数据包。
在其中一个实施例中,由于受到最大传输单元(Maximum Transmission Unit,缩写为MTU)的限制,Length字段最大可编码位数为10bit。但实际测试过程中发现,UDP包长度与丢包率成正比,当Length字段编码位数达到9bit,即发送UDP包的长度大于256时,UDP广播包的丢包率就会明显升高,而且包与包之间也会发生乱序。因此Length字段编码位数限制在8bit之内,即UDP广播包的发送长度不大于256,因此每一个UDP广播包所能携带的信息量刚好为一个字节,所以较优的,本实施例的通信系统采用单字节方式发送信息。
由于每个数据包可承载的数据较少,作为一个实施例,通过多个数据包组成的数据包组完成一次传输数据的发送,将传输数据编码在编码字段上而生成数据包,编码字段为数据包中可直接监听内容的字段的步骤具体包括:根据传输数据生成用于被识别的控制字段和用于装载传输数据的数据字段。将控制字段和数据字段顺序编码在多个数据包的编码字段上而生成多个数据包。通过控制字段和数据字段,可以在单个数据包传输数据量有限的情况下,通过数据包组实现大于单个数据包数据量的数据传输。
通信系统的链路层数据结构示意图请参见图4。链路层数据结构分为两类,control字段(即控制字段)与data字段(即数据字段)。magic code field(即识别字段)、prefix code field(即前缀字段)、sequence header field(即序列首字段)属于控制字段,data field(即序列字段)属于数据字段。在控制字段中,识别字段用于被识别,前缀字段与识别字段完全相同,在序列首字段之前发送,作用是表示多个序列的正式开始。序列首字段用于装载校验数据的校验码。在数据 字段中,序列字段用于装载传输数据。控制字段与数据字段的字节以第7bit位加以区别,该位为1表示数据字段,为0表示control字段。在其他实施例中,控制字段和数据字段的字节可以以任意其他bit位为控制位,控制字段和数据字段的字节的控制位的代码不相同。bit位可以是0bit位至7bit位中的任一。当然也可以0表示数据字段,1表示control字段。magic code与序列首字段通过第6bit位加以区分,该位为1表示序列首字段,为0表示识别字段。在其他实施例中,也可以用其他bit位进行区分。当然也可以0表示序列首字段,1表示识别字段。
参见图5,识别字段包括magic code(即识别字节),识别字节包括用于被识别的magic(即识别代码)和用于装载信息的information(即信息代码)。具体的,识别字段包括4字节(bytes),每个字节的高4位为识别代码,低四位为信息代码。前两个字节的信息代码分别装载要发送数据长度的高4位和低4位,后面两个字节的信息代码分别装载要发送ssid的crc8(循环冗余校验码)值的高4位和低4位。在该通信系统用于传输wifi的ssid和密码时,在控制字段传输ssid的crc8字段是对整个传输过程的优化。接收端接收数据之前先对无线访问接入点(Access Point,缩写为AP)进行扫描,通过获取的信标可以得知无线环境中所有非隐藏AP的ssid、rssi(received signal strength indicator,接收信号强度显示)以及信道。在传输过程中,接收端先从识别字段中获取目标AP的ssidcrc8值,然后再和事先扫描所得到的ssid的crc8值进行比对,如果发现相同值,那么在接下来的接收过程中接收端就不用再接收ssid信息,可大大缩短传输的时间。
在其中一个实施例中,首先需要发送预定数目的识别字段,例如20个。接收端处于的无线网络环境有可能较为复杂,很有可能在同一个空间中存在多个AP,而这些AP又分布在相同或者不同的信道上,这样接收端开始时无法得知发送端在1至14中的哪一个信道上发送信息,而且同一个信道上也可能会有很多设备在发送UDP广播包。在这种情况下,接收端监听到的数据包是海量的。为了从海量的数据信息中定位出发送端所在的信道和发送端的物理地址(即mac地址),在发送其他信息之前,发送端可发送20个识别字段,这些识别字段均 由4个字节组成,并且很容易被识别出来,接收端就能定位发送端的mac地址与所处的信道,便于在之后的信息监听过程中对海量信息进行有效的过滤。
参见图6,序列首字段包括sequence crc8(即序列循环冗余校验码)和sequenceindex(即序列索引)。序列字段包括序列字节,用于装载传输数据。一个序列首字段和一个序列字段组成一个sequence(即序列),可以通过多个序列传送传输数据。本实施例中,把待发送的传输数据以4为粒度进行划分(如果传输数据的长度不能被4整除要用0进行补齐),每4个序列字节组成一个序列字段,以序列为单位进行数据的发送。并且,为了纠错而重复执行预定次数的传输数据发送时,在第一次发送传输数据后,即第一次发送完包含上述传输数据的N个序列之后,重新开始N个序列的发送之前,发送一次前缀字段,表示N个序列的开始。即在重复发送时,数据包由前缀字段、序列首字段和数据字段组成,可以没有识别字段。序列首字段由两个字节组成,第一个字节的低六位装载的是从序列索引开始到本序列结束发送的所有数据的crc8,在接收完一个序列的数据之后,需进行crc8值的效验,如果不相同,证明该序列的数据接收出错,应该丢弃。
参见图7,序列字段由4字节组成,每个字节的第7bit位为控制位,固定为1,其余的7位用于装载传输数据。传输数据包括ssid和ssid的密码,以及用于确认接收到传输数据的随机数。其中随机数的作用是,当数据接收端连上AP之后,立即发送以该随机数为内容的UDP广播包,当发送端收到该广播包后就能确认接收端已经准确接收到所有传输数据。随机数大小为一个字节,且其大小小于127。密码和ssid都’\0’结尾,并且可以通过字典法加密,相应的接收端用可以用相同的字典解密。传输数据的发送顺序为先发送密码,再发送随机数,最后发送ssid,参见图8。如果接收端在识别字段中获取目标AP的ssid crc8值,与事先扫描所得到的ssid的crc8值进行比对,且发现相同值,则可不接收在后发送的ssid信息,可大大缩短传输的时间。
本实施例的接收端可基于wifi无线通信协议,较适合接收少量的数据,可应用于物联网智能控制芯片接收ssid和密码。比如智能开关,由于不具备输入ssid的按键或触摸屏,通过这种接收方式可以便捷的获得ssid和密码。上述的数 据包可以为广播包,通过接收无线访问接入点转发获得。无线访问接入点具有较大的功率,经其转发可增大无线通信信号物理空间上的覆盖范围。接收模块220通过混杂模式监听状态监听空间中的无线信号,执行接收数据包的步骤,接收模块220从数据链路层截取数据,得到数据包。
数据包被发送前经IP层和数据链路层封装,并加密。解码模块240还用于将长度字段转义。作为一个实施例,数据包作为UDP广播包发送,一个UDP层的数据包,要经过IP层、数据链路层的封装,并且通过加密(加密方式包括WPA2、WPA和WEP)后才会被发送出去,所以发送端发送UDP广播包的长度与接收端最后监听到的Length字段值存在差异,因此需要进行转义。通过研究发现,只要UDP广播包的长度在MTU的限制范围内(即UDP包不分割),那么发送端发送UDP广播包的长度与接收端最后监听到的Length字段值的差值为一个定值,且该定值不随UDP广播包的长度变化而变化,只与WIFI对信道的加密方式有关。因此只要找出该差值在不同加密方式下的值,接收端就能对Length字段进行转义。
通过一系列的实验,得到如图10所示的转义表。AES为Advanced EncryptionStandard的缩写,是指高级加密标准。TKIP为Temporal Key Integrity Protocol的缩写,是指临时密钥完整性协议。RC4是指密钥长度可变的流加密算法。如果WIFI加密方式为WPA2(AES),接收端通过监听,在链路层截获一个802.2SNAP格式的UDP广播包,其Length字段的值152,接收端转义可得到发送端发送的内容为152-52=100。因此将长度字段转义的步骤可以是长度字段的值减去预设的转义值。
在其中一个实施例中,通过接收多个数据包组成的数据包组完成一次传输数据的接收,解码模块240解码多个数据包,获得顺序编码在多个数据包的编码字段上的用于被识别的控制字段和用于装载传输数据的数据字段。控制字段包括识别字段及序列首字段,识别字段用于识别,序列首字段用于解码获得校验数据的校验码。数据字段包括序列字段,序列字段用于解码获得传输数据。序列首字段包括序列循环冗余校验码,以及序列索引。序列字段包括序列字节,用于解码获得传输数据。接收一个数据包组后,通过序列循环冗余校验码,进 行校验,若校验失败,则证明该序列的数据接收出错,丢弃该数据包组。
在其中一个实施例中,具体的,一个序列首字段和一个序列字段组成一个序列,可以通过多个序列传送传输数据。序列首字段由两个字节组成,第一个的低六位装载的是从序列索引开始到本序列结束发送的所有数据的crc8,在接收完一个序列的数据之后,需进行crc8值的效验,如果不相同,证明该序列的数据接收出错,应该丢弃。
在每次接收到装载传输数据的N个序列之前,会接收到前缀字段,解码可得到用于解码获得ssid的ssid crc8。本实施例的通信系统还包括扫描环境中的AP,获得环境服务集标识。通过ssid crc8校验环境服务集标识,若校验成功,则放弃接收ssid。接收端接收数据之前先对AP进行扫描,通过获取的信标可以得知无线环境中所有非隐藏AP的ssid、rssi(received signal strength indicator,接收信号强度显示)以及信道。在传输过程中,接收端先从识别字段中获取目标AP的ssid crc8值,然后再和事先扫描所得到的ssid的crc8值进行比对,如果发现相同值,那么在接下来的接收过程中接收端就不用再接收ssid信息,可大大缩短传输的时间。
上述实施例中的通信模型可以抽象为错误率为0-5%的单向的信道,所需要传递信息的最大长度为68字节。在这种情况下,如果不采用纠错算法,就很难保证在有限次数内完成信息的发送。作为一个实施例,采用了累积纠错算法来保证在有限次内完成传输过程。累积纠错算法的理论基础为:多轮数据发送过程中,在同一位数据上发生错误的概率是很低的。因此可以累积多轮的数据传递结果进行分析,其中一轮中某一位错误数据有很大的概率能在其它轮中找到其对应的正确值,这样就能保证在有限次内完成信息的发送。
假定需要传递信息的长度为68字节,计算在最坏的情况下,使用累积纠错算法与不使用累积纠错算法信息发送成功的概率与发送次数的关系,结果如图11所示。假定每传递一个字节的错误率是5%,如果需要传递68字节的数据,那么一次传递成功的概率为:(1-0.05)68=3%。在采用了上述纠错算法的情况下,一次传递成功的概率同上为3%,n次传递成功的概率为:(1-0.05n)68。
本实施例的传输速率取决于发送端UDP广播包的发送速率,目前广播包的 发送频率为5ms发送一个,因此其传输速率为200bytes/s。在不计算识别字段的情况下,负载效率为66.7%。如果发送信息长度为最长的68字节,那么在最坏情况下,最多需要5次就可以完成信息发送,最大的传输时间需要68/66.7×5/200=2.549s。
在其他实施例中,数据包还可以是Ethernet802.2格式,如图12所示为Ethernet802.2格式数据包的示意图,编码字段为Ethernet802.2格式数据包中的长度字段,其他与数据包为Ethernet802.2SNAP格式的实施例相同。图12中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,LLC字段表示LLC头,数据字段为负载,FCS字段表示帧检验序列。
数据包还可以是Ethernet802.3格式,如图13所示为Ethernet802.3格式数据包的示意图,编码字段为Ethernet802.3格式数据包中的长度字段,其他与数据包为Ethernet802.2SNAP格式的实施例相同。图13中的Length字段表示后面数据的长度,即上述的长度字段。DA字段表示目标mac地址,SA字段表示源mac地址,数据字段为负载,FCS字段表示帧检验序列。
数据包还可以是Ethernet802.3SNAP格式,参见图2,Ethernet802.3SNAP格式数据包的示意图与数据包为Ethernet802.2SNAP格式的实施例相同,编码字段为Ethernet802.3SNAP格式数据包中的长度字段。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的程序,可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (70)
1.一种通信方法,其特征在于,包括:
获取待发送的传输数据;
将所述传输数据编码在编码字段上而生成数据包,所述编码字段为所述数据包中可直接监听内容的字段;
发送所述数据包;
其中,通过多个所述数据包组成的数据包组完成一次所述传输数据的发送,所述将所述传输数据编码在数据包的编码字段上而生成数据包的步骤包括:
根据所述传输数据生成用于被识别的控制字段和用于装载所述传输数据的数据字段;
将所述控制字段和所述数据字段顺序编码在多个所述数据包的编码字段上而生成多个所述数据包;
其中,所述控制字段包括多个识别字段;每个所述识别字段包括四个识别字节,所述识别字节包括用于被识别的识别代码和用于装载信息的信息代码;每个所述识别字节的高4位为识别代码,低4位为信息代码;前两个所述信息代码分别装载要发送数据长度的高4位和低4位;后两个所述信息代码分别装载要发送服务集标识循环冗余校验码的高4位和低4位;
在传输过程中,接收端先从识别字段中获取目标无线访问接入点的服务集标识循环冗余校验码,然后再和事先扫描所得到的服务集标识循环冗余校验码进行比对,如果发现相同值,那么在接下来的接收过程中接收端不用再接收服务集标识信息。
2.根据权利要求1所述的通信方法,其特征在于,所述编码字段为普通应用程序可直接控制的字段。
3.根据权利要求2所述的通信方法,其特征在于;
所述数据包为Ethernet 802.2 SNAP格式,所述编码字段为Ethernet 802.2 SNAP格式数据包中的长度字段;或者
所述数据包为Ethernet 802.2格式,所述编码字段为Ethernet 802.2格式数据包中的长度字段;或者
所述数据包为Ethernet 802.3格式,所述编码字段为Ethernet 802.3格式数据包中的长度字段;或者
所述数据包为Ethernet 802.3 SNAP格式,所述编码字段为Ethernet 802.3 SNAP格式数据包中的长度字段。
4.根据权利要求3所述的通信方法,其特征在于,所述编码字段为8位。
5.根据权利要求1所述的通信方法,其特征在于,所述发送所述数据包的步骤为通过加密信道发送所述数据包。
6.根据权利要求1所述的通信方法,其特征在于,所述控制字段的字节和所述数据字段的字节的第n位为控制位,所述控制字段的控制位与所述数据字段的控制位的代码不相同;所述n为0至7中的任意整数。
7.根据权利要求1所述的通信方法,其特征在于,所述控制字段还包括序列首字段,所述序列首字段用于装载校验数据的校验码;
所述数据字段包括序列字段,所述序列字段用于装载所述传输数据。
8.根据权利要求1所述的通信方法,其特征在于,所述控制字段包括预定数目的所述识别字段。
9.根据权利要求1所述的通信方法,其特征在于,所述传输数据包括服务集标识和所述服务集标识的密码;
所述密码和所述服务集标识的发送顺序为先发送所述密码,后发送所述服务集标识。
10.根据权利要求7所述的通信方法,其特征在于,所述控制字段还包括用于表示序列开始的前缀字段,所述前缀字段与所述识别字段相同,在每个序列首字段之前发送。
11.根据权利要求10所述的通信方法,其特征在于,重复执行预定次数的发送,所述重复发送的数据包由所述前缀字段、序列首字段和数据字段组成。
12.根据权利要求1所述的通信方法,其特征在于,所述控制字段包括序列首字段,所述数据字段包括序列字段;
所述序列首字段包括序列循环冗余校验码以及序列索引;所述序列字段包括序列字节,用于装载所述传输数据。
13.根据权利要求1所述的通信方法,其特征在于,所述控制字段包括序列首字段,所述数据字段包括序列字段;
所述序列首字段包括两个序列首字节,第一个所述序列首字节装载从第二个所述序列首字节开始到序列字段结束发送的所有数据的序列循环冗余校验码;第二个所述序列首字节装载序列索引;所述序列字段包括四个序列字节,用于装载所述传输数据。
14.根据权利要求13所述的通信方法,其特征在于,一个所述序列首字段和一个所述序列字段组成一个序列,通过多个所述序列传送所述传输数据。
15.根据权利要求1所述的通信方法,其特征在于,所述传输数据包括服务集标识和所述服务集标识的密码,以及用于确认接收到所述传输数据的随机数。
16.根据权利要求1至15中任意一项所述的通信方法,其特征在于,所述发送所述数据包的步骤中,所述数据包为广播包,通过无线访问接入点转发给接收端。
17.一种通信方法,其特征在于,包括:
接收将传输数据编码在编码字段上而生成的数据包,所述编码字段为所述数据包中可直接监听内容的字段;
解码所述编码字段获得所述传输数据;
通过接收多个所述数据包组成的数据包组完成一次所述传输数据的接收,所述解码所述编码字段获得所述传输数据的步骤包括:
解码多个所述数据包,获得顺序编码在多个所述数据包的编码字段上的用于被识别的控制字段和用于装载所述传输数据的数据字段;
其中,所述控制字段包括多个识别字段;每个所述识别字段包括四个识别字节,所述识别字节包括用于被识别的识别代码和用于装载信息的信息代码;每个所述识别字节的高4位为识别代码,低4位为信息代码;前两个所述信息代码分别装载要发送数据长度的高4位和低4位;后两个所述信息代码分别装载要发送服务集标识循环冗余校验码的高4位和低4位;
在传输过程中,接收端先从识别字段中获取目标无线访问接入点的服务集标识循环冗余校验码,然后再和事先扫描所得到的服务集标识循环冗余校验码进行比对,如果发现相同值,那么在接下来的接收过程中接收端不用再接收服务集标识信息。
18.根据权利要求17所述的通信方法,其特征在于,通过混杂模式监听状态监听空间中的无线信号,执行所述接收将传输数据编码在编码字段上而生成的数据包的步骤。
19.根据权利要求17所述的通信方法,其特征在于,所述接收将传输数据编码在编码字段上而生成的数据包的步骤,为通过加密信道取得所述数据包。
20.根据权利要求17所述的通信方法,其特征在于,所述编码字段为普通应用程序可直接控制的字段。
21.根据权利要求20所述的通信方法,其特征在于;
所述数据包为Ethernet 802.2 SNAP格式,所述编码字段为Ethernet 802.2 SNAP格式数据包中的长度字段;或者
所述数据包为Ethernet 802.2格式,所述编码字段为Ethernet 802.2格式数据包中的长度字段;或者
所述数据包为Ethernet 802.3格式,所述编码字段为Ethernet 802.3格式数据包中的长度字段;或者
所述数据包为Ethernet 802.3 SNAP格式,所述编码字段为Ethernet 802.3 SNAP格式数据包中的长度字段。
22.根据权利要求21所述的通信方法,其特征在于,所述数据包被发送前经IP层和数据链路层封装,并加密;
所述解码所述编码字段获得所述传输数据的步骤,包括将所述长度字段转义的步骤。
23.根据权利要求22所述的通信方法,其特征在于,所述将所述长度字段转义的步骤,包括:
所述长度字段的值减去预设的转义值。
24.根据权利要求17所述的通信方法,其特征在于,
所述控制字段包括序列首字段,所述序列首字段用于解码获得校验数据的校验码;
所述数据字段包括序列字段,所述序列字段用于解码获得所述传输数据。
25.根据权利要求17所述的通信方法,其特征在于,所述控制字段包括序列首字段,所述数据字段包括序列字段;
所述序列首字段包括序列循环冗余校验码,以及序列索引;所述序列字段包括序列字节,用于解码获得所述传输数据;
接收一个所述数据包组后,通过所述序列循环冗余校验码进行校验,若校验失败,则丢弃所述数据包组。
26.根据权利要求17所述的通信方法,其特征在于,所述控制字段包括序列首字段,所述数据字段包括序列字段;
所述序列首字段包括两个序列首字节,第一个所述序列首字节解码获得从第二个所述序列首字节开始到序列字段结束接收的所有数据的序列循环冗余校验码;第二个所述序列首字节解码获得序列索引;所述序列字段包括四个序列字节,用于解码获得所述传输数据;
接收一个所述数据包组后,通过所述序列循环冗余校验码进行校验,若校验失败,则丢弃所述数据包组。
27.根据权利要求26所述的通信方法,其特征在于,一个所述序列首字段和一个所述序列字段组成一个序列,通过接收多个所述序列获得所述传输数据。
28.根据权利要求17所述的通信方法,其特征在于,所述传输数据包括服务集标识和所述服务集标识的密码;
所述控制字段还包括用于解码获得服务集标识循环冗余校验码的前缀字段;
所述通信方法还包括扫描环境中的无线访问接入点,获得环境服务集标识;通过所述服务集标识循环冗余校验码校验所述环境服务集标识,若校验成功,则放弃接收所述服务集标识。
29.根据权利要求17至28中任意一项所述的通信方法,其特征在于,所述接收将传输数据编码在编码字段上而生成的数据包的步骤中,所述数据包为广播包,通过接收无线访问接入点的转发数据获得。
30.一种通信方法,其特征在于,包括:
获取待发送的传输数据;
将所述传输数据编码在编码字段上而生成数据包,所述编码字段为所述数据包中可直接监听内容的字段;
发送所述数据包;
接收所述数据包;
解码所述编码字段获得所述传输数据;
其中,通过多个所述数据包组成的数据包组完成一次所述传输数据的发送,所述将所述传输数据编码在数据包的编码字段上而生成数据包的步骤包括:根据所述传输数据生成用于被识别的控制字段和用于装载所述传输数据的数据字段;将所述控制字段和所述数据字段顺序编码在多个所述数据包的编码字段上而生成多个所述数据包;
所述解码所述编码字段获得所述传输数据的步骤包括:解码多个所述数据包,获得顺序编码在多个所述数据包的编码字段上的用于被识别的控制字段和用于装载所述传输数据的数据字段;
其中,所述控制字段包括多个识别字段;每个所述识别字段包括四个识别字节,所述识别字节包括用于被识别的识别代码和用于装载信息的信息代码;每个所述识别字节的高4位为识别代码,低4位为信息代码;前两个所述信息代码分别装载要发送数据长度的高4位和低4位;后两个所述信息代码分别装载要发送服务集标识循环冗余校验码的高4位和低4位;
在传输过程中,接收端先从识别字段中获取目标无线访问接入点的服务集标识循环冗余校验码,然后再和事先扫描所得到的服务集标识循环冗余校验码进行比对,如果发现相同值,那么在接下来的接收过程中接收端不用再接收服务集标识信息。
31.根据权利要求30所述的通信方法,其特征在于,所述编码字段为普通应用程序可直接控制的字段。
32.根据权利要求30所述的通信方法,其特征在于,所述发送所述数据包的步骤为通过加密信道发送所述数据包;所述接收所述数据包的步骤为通过加密信道接收所述数据包。
33.根据权利要求32所述的通信方法,其特征在于,所述控制字段包括序列首字段,所述序列首字段用于装载校验数据的校验码;
所述数据字段包括序列字段,所述序列字段用于装载所述传输数据。
34.根据权利要求30所述的通信方法,其特征在于,所述发送所述数据包的步骤中,所述数据包为广播包,通过无线访问接入点转发给接收端。
35.根据权利要求30所述的通信方法,其特征在于,通过混杂模式监听状态监听空间中的无线信号,执行所述接收所述数据包的步骤。
36.一种信息发送装置,其特征在于,包括:
获取模块,用于获取待发送的传输数据;
编码模块,用于将所述传输数据编码在编码字段上而生成数据包,所述编码字段为所述数据包中可直接监听内容的字段;通过多个所述数据包组成的数据包组完成一次所述传输数据的发送,所述编码模块用于将所述传输数据编码在数据包的编码字段上而生成数据包为根据所述传输数据生成用于被识别的控制字段和用于装载所述传输数据的数据字段;将所述控制字段和所述数据字段顺序编码在多个所述数据包的编码字段上而生成多个所述数据包;
其中,所述控制字段包括多个识别字段;每个所述识别字段包括四个识别字节,所述识别字节包括用于被识别的识别代码和用于装载信息的信息代码;每个所述识别字节的高4位为识别代码,低4位为信息代码;前两个所述信息代码分别装载要发送数据长度的高4位和低4位;后两个所述信息代码分别装载要发送服务集标识循环冗余校验码的高4位和低4位;
发送模块,用于发送所述数据包;
在传输过程中,接收端先从识别字段中获取目标无线访问接入点的服务集标识循环冗余校验码,然后再和事先扫描所得到的服务集标识循环冗余校验码进行比对,如果发现相同值,那么在接下来的接收过程中接收端不用再接收服务集标识信息。
37.根据权利要求36所述的信息发送装置,其特征在于,所述编码字段为普通应用程序可直接控制的字段。
38.根据权利要求37所述的信息发送装置,其特征在于;
所述数据包为Ethernet 802.2 SNAP格式,所述编码字段为Ethernet 802.2 SNAP格式数据包中的长度字段;或者
所述数据包为Ethernet 802.2格式,所述编码字段为Ethernet 802.2格式数据包中的长度字段;或者
所述数据包为Ethernet 802.3格式,所述编码字段为Ethernet 802.3格式数据包中的长度字段;或者
所述数据包为Ethernet 802.3 SNAP格式,所述编码字段为Ethernet 802.3 SNAP格式数据包中的长度字段。
39.根据权利要求38所述的信息发送装置,其特征在于,所述编码字段为8位。
40.根据权利要求36所述的信息发送装置,其特征在于,所述发送所述数据包为通过加密信道发送所述数据包。
41.根据权利要求36所述的信息发送装置,其特征在于,所述控制字段的字节和所述数据字段的字节的第n位为控制位,所述控制字段的控制位与所述数据字段的控制位的代码不相同;所述n为0至7中的任意整数。
42.根据权利要求36所述的信息发送装置,其特征在于,所述控制字段包括序列首字段,所述序列首字段用于装载校验数据的校验码;
所述数据字段包括序列字段,所述序列字段用于装载所述传输数据。
43.根据权利要求36所述的信息发送装置,其特征在于,所述控制字段包括预定数目的所述识别字段。
44.根据权利要求36所述的信息发送装置,其特征在于,所述传输数据包括服务集标识和所述服务集标识的密码;
所述密码和所述服务集标识的发送顺序为先发送所述密码,后发送所述服务集标识。
45.根据权利要求42所述的信息发送装置,其特征在于,所述控制字段还包括用于表示序列开始的前缀字段,所述前缀字段与所述识别字段相同,在每个序列首字段之前发送。
46.根据权利要求45所述的信息发送装置,其特征在于,重复执行预定次数的发送,所述重复发送的数据包由所述前缀字段、序列首字段和数据字段组成。
47.根据权利要求36所述的信息发送装置,其特征在于,所述控制字段包括序列首字段,所述数据字段包括序列字段;
所述序列首字段包括序列循环冗余校验码以及序列索引;所述序列字段包括序列字节,用于装载所述传输数据。
48.根据权利要求36所述的信息发送装置,其特征在于,所述控制字段包括序列首字段,所述数据字段包括序列字段;
所述序列首字段包括两个序列首字节,第一个所述序列首字节装载从第二个所述序列首字节开始到序列字段结束发送的所有数据的序列循环冗余校验码;第二个所述序列首字节装载序列索引;所述序列字段包括四个序列字节,用于装载所述传输数据。
49.根据权利要求48所述的信息发送装置,其特征在于,一个所述序列首字段和一个所述序列字段组成一个序列,通过多个所述序列传送所述传输数据。
50.根据权利要求36所述的信息发送装置,其特征在于,所述传输数据包括服务集标识和所述服务集标识的密码,以及用于确认接收到所述传输数据的随机数。
51.根据权利要求36至50中任意一项所述的信息发送装置,其特征在于,所述数据包为广播包,通过无线访问接入点转发给接收端。
52.一种信息接收装置,其特征在于,包括:
接收模块,用于接收将传输数据编码在编码字段上而生成的数据包,所述编码字段为所述数据包中可直接监听内容的字段;
解码模块,用于解码所述编码字段获得所述传输数据;通过接收多个所述数据包组成的数据包组完成一次所述传输数据的接收,所述解码模块用于解码多个所述数据包,获得顺序编码在多个所述数据包的编码字段上的用于被识别的控制字段和用于装载所述传输数据的数据字段;
其中,所述控制字段包括多个识别字段;每个所述识别字段包括四个识别字节,所述识别字节包括用于被识别的识别代码和用于装载信息的信息代码;每个所述识别字节的高4位为识别代码,低4位为信息代码;前两个所述信息代码分别装载要发送数据长度的高4位和低4位;后两个所述信息代码分别装载要发送服务集标识循环冗余校验码的高4位和低4位;
在传输过程中,接收端先从识别字段中获取目标无线访问接入点的服务集标识循环冗余校验码,然后再和事先扫描所得到的服务集标识循环冗余校验码进行比对,如果发现相同值,那么在接下来的接收过程中接收端不用再接收服务集标识信息。
53.根据权利要求52所述的信息接收装置,其特征在于,所述接收模块通过混杂模式监听状态监听空间中的无线信号,接收将传输数据编码在编码字段上而生成的数据包。
54.根据权利要求52所述的信息接收装置,其特征在于,所述接收模块接收将传输数据编码在编码字段上而生成的数据包为通过加密信道取得所述数据包。
55.根据权利要求52所述的信息接收装置,其特征在于,所述编码字段为普通应用程序可直接控制的字段。
56.根据权利要求55所述的信息接收装置,其特征在于;
所述数据包为Ethernet 802.2 SNAP格式,所述编码字段为Ethernet 802.2 SNAP格式数据包中的长度字段;或者
所述数据包为Ethernet 802.2格式,所述编码字段为Ethernet 802.2格式数据包中的长度字段;或者
所述数据包为Ethernet 802.3格式,所述编码字段为Ethernet 802.3格式数据包中的长度字段;或者
所述数据包为Ethernet 802.3 SNAP格式,所述编码字段为Ethernet 802.3 SNAP格式数据包中的长度字段。
57.根据权利要求56所述的信息接收装置,其特征在于,所述数据包被发送前经IP层和数据链路层封装,并加密;
所述解码模块将所述长度字段转义。
58.根据权利要求57所述的信息接收装置,其特征在于,所述将所述长度字段转义为所述长度字段的值减去预设的转义值。
59.根据权利要求52所述的信息接收装置,其特征在于,所述控制字段包括序列首字段,所述序列首字段用于解码获得校验数据的校验码;
所述数据字段包括序列字段,所述序列字段用于解码获得所述传输数据。
60.根据权利要求52所述的信息接收装置,其特征在于,所述控制字段包括序列首字段,所述数据字段包括序列字段;
所述序列首字段包括序列循环冗余校验码,以及序列索引;所述序列字段包括序列字节,用于解码获得所述传输数据;
接收一个所述数据包组后,通过所述序列循环冗余校验码进行校验,若校验失败,则丢弃所述数据包组。
61.根据权利要求52所述的信息接收装置,其特征在于,所述控制字段包括序列首字段,所述数据字段包括序列字段;
所述序列首字段包括两个序列首字节,第一个所述序列首字节解码获得从第二个所述序列首字节开始到序列字段结束接收的所有数据的序列循环冗余校验码;第二个所述序列首字节解码获得序列索引;所述序列字段包括四个序列字节,用于解码获得所述传输数据;
接收一个所述数据包组后,通过所述序列循环冗余校验码进行校验,若校验失败,则丢弃所述数据包组。
62.根据权利要求61所述的信息接收装置,其特征在于,一个所述序列首字段和一个所述序列字段组成一个序列,通过接收多个所述序列获得所述传输数据。
63.根据权利要求52所述的信息接收装置,其特征在于,所述传输数据包括服务集标识和所述服务集标识的密码;
所述控制字段还包括用于解码获得服务集标识循环冗余校验码的前缀字段;
所述接收模块,还用于扫描环境中的无线访问接入点,获得环境服务集标识;通过所述服务集标识循环冗余校验码校验所述环境服务集标识,若校验成功,则放弃接收所述服务集标识。
64.根据权利要求52至63中任意一项所述的信息接收装置,其特征在于,所述数据包为广播包,通过接收无线访问接入点的转发数据获得。
65.一种通信系统,其特征在于,包括:
获取模块,用于获取待发送的传输数据;
编码模块,用于将所述传输数据编码在编码字段上而生成数据包,所述编码字段为所述数据包中可直接监听内容的字段;通过多个所述数据包组成的数据包组完成一次所述传输数据的发送,所述编码模块用于将所述传输数据编码在数据包的编码字段上而生成数据包为根据所述传输数据生成用于被识别的控制字段和用于装载所述传输数据的数据字段;将所述控制字段和所述数据字段顺序编码在多个所述数据包的编码字段上而生成多个所述数据包;
其中,所述控制字段包括多个识别字段;每个所述识别字段包括四个识别字节,所述识别字节包括用于被识别的识别代码和用于装载信息的信息代码;每个所述识别字节的高4位为识别代码,低4位为信息代码;前两个所述信息代码分别装载要发送数据长度的高4位和低4位;后两个所述信息代码分别装载要发送服务集标识循环冗余校验码的高4位和低4位;
发送模块,用于发送所述数据包;
接收模块,用于接收所述数据包;
解码模块,用于解码所述编码字段获得所述传输数据,具体是用于解码多个所述数据包,获得顺序编码在多个所述数据包的编码字段上的用于被识别的控制字段和用于装载所述传输数据的数据字段;
在传输过程中,接收端先从识别字段中获取目标无线访问接入点的服务集标识循环冗余校验码,然后再和事先扫描所得到的服务集标识循环冗余校验码进行比对,如果发现相同值,那么在接下来的接收过程中接收端不用再接收服务集标识信息。
66.根据权利要求65所述的通信系统,其特征在于,所述编码字段为普通应用程序可直接控制的字段。
67.根据权利要求65所述的通信系统,其特征在于,所述发送所述数据包为通过加密信道发送所述数据包;所述接收所述数据包为通过加密信道接收所述数据包。
68.根据权利要求65所述的通信系统,其特征在于,所述控制字段包括序列首字段,所述序列首字段用于装载校验数据的校验码;
所述数据字段包括序列字段,所述序列字段用于装载所述传输数据。
69.根据权利要求65所述的通信系统,其特征在于,所述数据包为广播包,通过无线访问接入点转发给接收端。
70.根据权利要求65所述的通信系统,其特征在于,所述接收模块通过混杂模式监听状态监听空间中的无线信号,接收所述数据包。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310649198.1A CN104144086B (zh) | 2013-12-04 | 2013-12-04 | 通信方法和系统及信息发送和接收装置 |
KR1020167016830A KR101859923B1 (ko) | 2013-12-04 | 2014-12-01 | 데이터 패킷 헤더들을 통한 데이터 통신 |
ES14868695T ES2702889T3 (es) | 2013-12-04 | 2014-12-01 | Comunicación de datos mediante encabezamientos de paquetes de datos |
MYPI2016701784A MY183511A (en) | 2013-12-04 | 2014-12-01 | Data communication via data packet headers |
EP14868695.9A EP3078164B1 (en) | 2013-12-04 | 2014-12-01 | Data communication via data packet headers |
PCT/CN2014/092652 WO2015081823A1 (en) | 2013-12-04 | 2014-12-01 | Data communication via data packet headers |
US14/973,474 US9918250B2 (en) | 2013-12-04 | 2015-12-17 | Data communication via data packet headers |
US15/881,547 US10542458B2 (en) | 2013-12-04 | 2018-01-26 | Data communication via data packet headers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310649198.1A CN104144086B (zh) | 2013-12-04 | 2013-12-04 | 通信方法和系统及信息发送和接收装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104144086A CN104144086A (zh) | 2014-11-12 |
CN104144086B true CN104144086B (zh) | 2018-09-11 |
Family
ID=51853156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310649198.1A Active CN104144086B (zh) | 2013-12-04 | 2013-12-04 | 通信方法和系统及信息发送和接收装置 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9918250B2 (zh) |
EP (1) | EP3078164B1 (zh) |
KR (1) | KR101859923B1 (zh) |
CN (1) | CN104144086B (zh) |
ES (1) | ES2702889T3 (zh) |
MY (1) | MY183511A (zh) |
WO (1) | WO2015081823A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104144086B (zh) | 2013-12-04 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 通信方法和系统及信息发送和接收装置 |
CN104378758B (zh) * | 2014-05-12 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 接入点连接方法、终端及服务器 |
US10205776B2 (en) * | 2014-12-23 | 2019-02-12 | Xiaomi Inc. | Method and device for wireless connection |
CN105119957A (zh) * | 2015-07-10 | 2015-12-02 | 普联技术有限公司 | 用于智能设备的信息传递方法及装置 |
CN107801230A (zh) * | 2016-09-07 | 2018-03-13 | 阿里巴巴集团控股有限公司 | 发送及接收信息的方法及装置 |
CN110072267A (zh) * | 2018-01-22 | 2019-07-30 | 阿拉的(深圳)人工智能有限公司 | 智能音箱联网的方法、装置、存储介质以及智能音箱 |
KR102406857B1 (ko) | 2018-02-09 | 2022-06-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
CN108200634A (zh) * | 2018-02-12 | 2018-06-22 | 天津天地伟业信息系统集成有限公司 | 一种嵌入式设备的无线网络添加方法 |
CN109450937A (zh) * | 2018-12-24 | 2019-03-08 | 深圳市华讯方舟卫星产业科技有限公司 | 信息安全通信方法、系统、网卡和存储介质 |
US10855609B2 (en) * | 2019-02-07 | 2020-12-01 | Arm Limited | Interconnect and method of operation of such an interconnect |
CN112069094A (zh) * | 2019-06-10 | 2020-12-11 | 海信视像科技股份有限公司 | 一种数据包封装方法及显示设备 |
US11368382B2 (en) * | 2019-10-04 | 2022-06-21 | Nxp B.V. | Communications device and method of communications |
KR102714828B1 (ko) | 2019-12-24 | 2024-10-10 | 주식회사 엘엑스세미콘 | 디스플레이 구동 장치 및 이를 포함하는 디스플레이 장치 |
KR102715386B1 (ko) | 2019-12-24 | 2024-10-11 | 주식회사 엘엑스세미콘 | 디스플레이 구동 장치 및 이를 포함하는 디스플레이 장치 |
CN111600662A (zh) * | 2020-04-13 | 2020-08-28 | 云知声智能科技股份有限公司 | 一种通过crc16校验缩短声波传输WIFI热点信息的系统和方法 |
DE102020114415A1 (de) * | 2020-05-29 | 2021-12-02 | Miele & Cie. Kg | Datenübertragung zu WLAN-fähigen Haushaltsgeräten |
CN111881108B (zh) * | 2020-07-27 | 2021-05-14 | 广州锦行网络科技有限公司 | 一种基于web ssh的文件传输方法及装置 |
CN112181883B (zh) * | 2020-09-24 | 2022-11-08 | 深圳市乐唯科技开发有限公司 | 一种串口通讯的数据传输方法、系统及存储介质 |
CN115134142B (zh) * | 2022-06-28 | 2023-09-22 | 南京信息工程大学 | 一种基于文件分割的信息隐藏方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488954A (zh) * | 2009-01-09 | 2009-07-22 | 中兴通讯股份有限公司 | 语音监听方法以及接入网关 |
CN103237313A (zh) * | 2013-04-07 | 2013-08-07 | 杭州电子科技大学 | 基于数据输出过滤机制的无线传感器网络数据收集方法 |
CN103327030A (zh) * | 2013-07-10 | 2013-09-25 | 上海庆科信息技术有限公司 | 一种利用Wi-Fi报文长度进行信息传输的方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100344121C (zh) * | 2003-03-13 | 2007-10-17 | 华为技术有限公司 | 一种提高无线局域网系统网络传输效率的方法 |
US7987499B2 (en) | 2004-08-18 | 2011-07-26 | Broadcom Corporation | Method and system for exchanging setup configuration protocol information in beacon frames in a WLAN |
US8014529B2 (en) * | 2006-08-18 | 2011-09-06 | Eye-Fi, Inc. | In-band device enrollment without access point support |
US8259691B2 (en) * | 2006-09-05 | 2012-09-04 | Marvell International Ltd. | System and method for identifying an access point |
US20080310452A1 (en) * | 2007-06-14 | 2008-12-18 | Texas Instruments Incorporated | Data link layer headers |
CN101471937B (zh) * | 2007-12-27 | 2011-08-24 | 华为技术有限公司 | 以太报文复用、解复用方法及设备 |
US8831568B2 (en) | 2011-09-27 | 2014-09-09 | Qualcomm Incorporated | Automatic configuration of a wireless device |
US8925069B2 (en) * | 2013-01-07 | 2014-12-30 | Apple Inc. | Accessory device authentication using list of known good devices maintained by host device |
CN104144034B (zh) * | 2013-12-04 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 密码共享和获取方法及装置 |
CN104144086B (zh) * | 2013-12-04 | 2018-09-11 | 腾讯科技(深圳)有限公司 | 通信方法和系统及信息发送和接收装置 |
-
2013
- 2013-12-04 CN CN201310649198.1A patent/CN104144086B/zh active Active
-
2014
- 2014-12-01 ES ES14868695T patent/ES2702889T3/es active Active
- 2014-12-01 WO PCT/CN2014/092652 patent/WO2015081823A1/en active Application Filing
- 2014-12-01 MY MYPI2016701784A patent/MY183511A/en unknown
- 2014-12-01 EP EP14868695.9A patent/EP3078164B1/en active Active
- 2014-12-01 KR KR1020167016830A patent/KR101859923B1/ko active IP Right Grant
-
2015
- 2015-12-17 US US14/973,474 patent/US9918250B2/en active Active
-
2018
- 2018-01-26 US US15/881,547 patent/US10542458B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488954A (zh) * | 2009-01-09 | 2009-07-22 | 中兴通讯股份有限公司 | 语音监听方法以及接入网关 |
CN103237313A (zh) * | 2013-04-07 | 2013-08-07 | 杭州电子科技大学 | 基于数据输出过滤机制的无线传感器网络数据收集方法 |
CN103327030A (zh) * | 2013-07-10 | 2013-09-25 | 上海庆科信息技术有限公司 | 一种利用Wi-Fi报文长度进行信息传输的方法 |
Also Published As
Publication number | Publication date |
---|---|
US9918250B2 (en) | 2018-03-13 |
KR20160086949A (ko) | 2016-07-20 |
US10542458B2 (en) | 2020-01-21 |
CN104144086A (zh) | 2014-11-12 |
EP3078164B1 (en) | 2018-10-03 |
US20180167846A1 (en) | 2018-06-14 |
US20160112901A1 (en) | 2016-04-21 |
EP3078164A4 (en) | 2016-10-12 |
EP3078164A1 (en) | 2016-10-12 |
KR101859923B1 (ko) | 2018-05-21 |
WO2015081823A1 (en) | 2015-06-11 |
ES2702889T3 (es) | 2019-03-06 |
MY183511A (en) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104144086B (zh) | 通信方法和系统及信息发送和接收装置 | |
CN104144034B (zh) | 密码共享和获取方法及装置 | |
CN106254147B (zh) | 一种用于Wi-Fi网络的配置方法、物联网终端和控制端 | |
ES2658063T3 (es) | Aparatos y procedimientos para compresión de cabeceras mac | |
Wang et al. | Rapidrider: Efficient wifi backscatter with uncontrolled ambient signals | |
CN107005927A (zh) | 用户设备ue的接入方法、设备及系统 | |
CN114868356A (zh) | 用于多链路安全重传的通信装置和通信方法 | |
US8885557B2 (en) | Dynamic selection among algorithms for generating fillers for security of data communications | |
JP7547632B2 (ja) | データ送信方法、通信装置、コンピュータ可読記憶媒体、およびチップ | |
AU2022275911B2 (en) | Data transmission method, communication apparatus, computer-readable storage medium, and chip | |
EP3432536B1 (en) | Communication device for communicating data via a first communication network with a second communication network using a cryptographic token | |
WO2018190928A1 (en) | Modified header for communication in a next-generation wi-fi network | |
US20230337295A1 (en) | Methods for connection oriented data transfer for ultra-wideband systems and apparatuses | |
CN106376001A (zh) | 分布式家庭基站、分布式家庭基站的前置单元及后置单元 | |
CN115038066A (zh) | 一种数据传输方法、装置、相关设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |