一种数据传输方法及其装置
技术领域
本申请涉及领域,尤其涉及一种数据传输方法及其装置。
背景技术
终端设备可以通过接入设备接入互联网,从而实现终端设备的远程控制或管理。不同的终端设备也可以与接入设备连接,以接入无线网络,比如接入无线局域网。所述终端设备可以是手机,或者是智能家居设备,或者是嵌入式设备等;所述接入设备可以是无线路由器或者是家庭网关或者是移动终端等。所述终端设备可以采用无线接入方式与所述接入设备连接,比如,终端设备上可设置Wi-Fi模块,通过Wi-Fi方式与接入设备连接。
终端设备需要获得无线局域网的账户信息,使用该账户信息才能与接入设备建立连接。无线局域网的账户信息可包括无线局域网的SSID(Service Set Identifier,服务集标识)和接入密码。
如果终端设备,比如大部分智能家居设备或者是嵌入式设备,由于没有键盘和屏幕等输入装置,因此无法通过人工输入方式输入无线局域网的账户信息,只能借助于与其它设备进行交互来获取无线局域网的账户信息。但是,根据802.11协议,无线局域网的账户信息,尤其是接入密码,是承载在无线帧的帧体(也称为载荷)部分的,而无线帧的载荷部分所承载的数据是经过加密的,对于没有键盘和屏幕的终端设备来说,则无法解密得到无线帧的载荷部分所承载的数据,因此无法获得无线局域网的账户信息,进而无法与接入设备连接,无法接入无线局域网。
由此可见,目前亟需一种能够在不用解析无线帧的载荷部分也能获得需要的数据的解决方案。
申请内容
本申请的实施例提供了一种数据传输方法及其装置,用于实现通过无线帧的包长对应的比特序列传输数据,以使接收方能够根据无线帧的包长对应的比特序列获取需要的数据。
本申请实施例提供的一种数据传输方法,包括:
接收无线帧;
确定所述无线帧的包长,所述无线帧的包长对应的比特序列包括序号域和数据域,所述序号域的比特位数至少大于3;
根据所述无线帧的包长对应的比特序列中的序号域和/或数据域的比特位的取值,确定所述无线帧的包长对应的比特序列是否用来承载数据;
若确定为是,则根据所述无线帧的包长对应的比特序列中的数据域的比特位的取值,确定所述无线帧的包长对应的比特序列所承载的数据。
本申请另一实施例提供的一种数据传输方法,包括:
获取需要由无线帧的包长对应的比特序列承载的数据;
根据获取到的数据,确定无线帧的包长对应的比特序列,使所述无线帧的包长对应的比特序列中的数据域承载所述数据,其中,所述无线帧的包长对应的比特序列中包含序号域和数据域,所述序号域的比特位数至少大于3;
根据所述无线帧的包长生成所述无线帧;
发送所述无线帧。
本申请实施例提供的数据传输装置,包括:
接收模块,用于接收无线帧;
第一确定模块,用于确定所述无线帧的包长,所述无线帧的包长对应的比特序列包括序号域和数据域,所述序号域的比特位数至少大于3;
第二确定模块,用于根据所述无线帧的包长对应的比特序列中的序号域和/或数据域的比特位的取值,确定所述无线帧的包长对应的比特序列是否用来承载数据;
第三确定模块,用于在所述第二确定模块确定为是的情况下,根据所述无线帧的包长对应的比特序列中的数据域的比特位的取值,确定所述无线帧的包长对应的比特序列所承载的数据。
本申请另一实施例提供的一种数据传输装置,包括:
获取模块,用于获取需要由无线帧的包长对应的比特序列承载的数据;
确定模块,用于根据获取到的数据,确定无线帧的包长对应的比特序列,使所述无线帧的包长对应的比特序列中的数据域承载所述数据,其中,所述无线帧的包长对应的比特序列中包含序号域和数据域,所述序号域的比特位数至少大于3;
生成模块,用于根据所述无线帧的包长生成所述无线帧;;
发送模块,用于发送所述无线帧。
本申请的上述实施例中,由于通过无线帧的包长对应的比特序列的数据域承载需要发送给接入方的数据,使得接收方能够根据无线帧的包长对应的比特序列获取需要的数据。尤其在接入无线局域网的场景下,发送方可将无线局域网的账户信息承载在无线帧的包长对应的比特序列发送给接收方,使得接收方获得无线局域网的账户信息,从而可接入无线局域网。另外,由于无线帧的包长对应的比特序列中的序号域的比特位数大于3,由于包长对应的比特序列中的序号域可用来标识无线帧在所在分组内的序号,因此通过该长度的序号域,使得每个分组内包含较多数量的无线帧,也就是说,可以每间隔较多数量的无线帧发送一个作为分组间隔的无线帧,而作为分组间隔的无线帧的数量越少,越能降低因作为分组间隔的无线帧丢失而导致的对接收方接收效率的影响。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本现有技术中无线帧的结构示意图;
图2为本申请实施例中数据帧和分组帧的分布示意图;
图3a和图3b分别为本申请实施例提供的无线帧的包长对应的比特序列的格式示意图;
图4为本申请实施例提供的接收方的数据传输方法流程示意图;
图5为本申请实施例提供的用多个数据帧的包长对应的比特序列承载多个字节数据的示意图;
图6为本申请实施例提供的发送方的数据传输方法流程示意图;
图7为本申请实施例提供的数据传输装置的结构示意图之一;
图8为本申请实施例提供的数据发送装置的结构示意图之二。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下面介绍的是本申请的多个实施例中的一部份,旨在提供对本申请的基本了解,并不旨在确认本申请的关键或决定性要素或限定所要保护的范围。根据本申请的技术方案,在不变更本申请的实质精神下,可以相互替换而得到其它的实现方式。
如前所述,终端设备在未接入无线网络之前,无法与无线网络中的其它设备如手机,直接建立通信,也无法通过接入设备接入互联网。但是,终端设备的Wi-Fi模块可以进入监听模式,在监听模式下可以监听周边设备发送的无线帧。无线帧的载荷部分是加密的,如果终端设备无法解密载荷部分也就无法获得载荷部分承载的数据,但整个无线帧的包长是可以计算得到的,无线帧的包长即为该无线帧的总长度。依据这个特点,本申请实施提供了一种数据传输方案。
在本申请实施例提供的数据传输方案中,发送方将发送的数据承载在无线帧的包长对应的比特序列发送,接收方捕获到无线帧后,计算出无线帧的包长,根据该包长对应的比特序列可获取需要的数据。
以将本申请实施例应用在智能家居场景下为例,可将移动终端,如手机,作为发送方数据传输装置,将不具备键盘和屏幕等输入装置的智能家居设备或嵌入式设备作为接收方数据传输装置,由发送方数据传输装置通过无线帧的包长对应的比特序列承载无线局域网的接入密码,接收方数据传输装置根据接收到的无线帧计算该无线帧的包长,根据包长对应的比特序列获取无线局域网接入密码,从而根据该接入密码接入无线局域网,进而解决了智能家居设备或嵌入式设备接入无线局域网的问题。
本申请实施例中所述的无线帧遵循无线通信协议。本文以无线帧遵循802.11系列协议为例进行描述,在不特别声明的情况下,下面描述的无线帧为遵循802.11系列协议的无线帧。
图1示例性地示出了802.11协议定义的一种无线帧的结构。其中,帧头部分承载控制信息、协议信息和地址信息等,帧实体部分为无线帧的载荷部分,用来承载数据内容,FCS(Frame Check Sequence,帧校验序列)字段用来承载帧校验信息,以保证无线帧的完整性。帧头部分、帧实体部分以及FCS部分所占用的总长度,称为无线帧的包长。无线帧的包长可由接收方数据传输装置的应用层计算得到。
需要说明的是,本申请实施例中所述的无线帧不限于图1所示的结构。
无线帧可分组进行发送,一个分组内可包括多个无线帧。为描述方便,本申请实施例中,将一个分组内的无线帧称为数据帧。两个分组之间需要发送一个无线帧进行间隔,本申请实施例中将两个分组之间插入的无线帧称为分组帧。分组帧用于控制下一个分组的起始位置,即,用于同步下一分组的数据帧的位置,以防止接收方乱序。
本申请实施例中所述的数据帧,其包长对应的比特序列用来承载数据,比如用于接入无线网络的账户;所述的分组帧的包长对应的比特序列用来承载分组号。
需要说明的是,这种对无线帧的区分方式仅用于本申请实施例,目的是便于描述,并不意味着对802.11协议或其它通信协议定义的无线帧分类进行修改。
图2示例性地示出了数据帧与分组帧的分布。
本申请实施例中,针对需要用包长对应的比特序列来承载数据的无线帧,比如,需要用包长对应的比特序列来承载无线局域网的接入密码的无线帧,对该无线帧的包长对应的比特序列的格式进行了定义。具体来说,包长对应的比特序列中可包含序号域和数据域。如果无线帧是数据帧,则包长对应的比特序列中的序号域的比特位的取值用来表示数据帧在其所属分组内的序号,数据域的比特位的取值用来表示需要由包长对应的比特序列所承载的数据;如果无线帧是分组帧,则包长对应的比特序列中的序号域的比特位的取值可作为分组帧的标识,数据域的比特位的取值用来表示分组号。
优选地,本申请实施例中所述的无线帧的包长对应的比特序列中的序号域可位于包长对应的比特序列的高比特位部分,包长对应的比特序列中的数据域可位于包长对应的比特序列的低比特位部分。上述序号域和数据域的定义仅为一种示例,本申请实施例对此不作限制。
根据802.11协议,无线帧的包长由于MTU(通信协议约定的数据包最大传输单元)长度的限制原因,通常小于1500字节,十进制1500的十六进制表示为0x5DC,使用11比特位宽即可用来表示包长,即,无线帧的包长对应的比特序列的长度至少为11比特。
以无线帧的包长对应的比特序列长度为11比特为例,本申请实施例中,针对需要用包长对应的比特序列来承载数据的无线帧,将包长对应的比特序列的高4比特作为序号域,将包长对应的比特序列的低7比特作为数据域。
4个比特的取值范围为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},表示为[0,15]。本文以下用[a1,a2]表示取值范围,该范围的下限是a1,上限是a2,且包含a1和a2,即取值范围是a1到a2之间的整数。考虑到无线帧的包长通常限制在1500=0x5DC以下,因此高4比特的取值范围为[0,11]。
考虑到序号域中的比特位如果取全零的数值,则该无线帧可能与其它无线帧之间产生干扰,不利于接收方的数据接收,因此在本申请实施例中,序号域的取值范围中可排除0。比如,在一种优选的方案中,对于数据帧来说,包长对应的比特序列中的序号域的取值范围为[1,10];对于分组帧来说,包长对应的比特序列中的序号域的取值范围是[11]。7比特长度的数据域的取值范围是[0,127]。由于数据帧的包长对应的比特序列中的序号域的取值范围与分组帧的包长对应的比特序列中的序号域的取值或取值范围没有交叠,因此可通过包长对应的比特序列中的序号域的比特位的取值来区分数据帧和分组帧。
通常,需要使用包长对应的比特序列来承载的数据可以是ASCII字符,比如无线局域网的账户信息。由于该数据的有效ASCII字符仅为ASCII字符集的一个子集,该子集内的ASCII字符的取值范围为[32,126]。
根据数据帧的包长对应的比特序列中的数据域的取值的上述特点,本申请实施例中,可采用以下几种方案对数据帧和分组帧的包长对应的比特序列中的序号域以及数据域的取值范围进行定义,其中,为描述方便,用Fram_data表示数据帧,用Fram_group表示分组帧,用field_index表示包长对应的比特序列中的序号域,用field_data表示包长对应的比特序列中的数据域。
方案1
Fram_data:field_index取值范围为[1,10],field_data取值范围为[32,126]
Fram_group:field_index取值为[11,15]范围内的任意一个整数,优选取值为11,field_data取值范围为[0,31]
如果采用方案1,则发送方数据传输装置可将ASCII字符的二进制取值直接作为包长对应的比特序列中的数据域的比特位的取值,接收方数据传输装置可根据包长对应的比特序列中的数据域的比特位的取值直接得到对应的ASCII字符。
方案2
Fram_data:field_index取值范围为[1,11],优选范围为[1,10],field_data取值范围为[0,94]
Fram_group:field_index取值为[1,11]范围内的任意一个整数,优选取值为11,field_data取值范围为[95,126]
如果采用方案2,则发送方数据传输装置可将ASCII字符对应的取值减去32后,将减法运算后的取值所对应的取值作为包长对应的比特序列中的数据域的比特位的取值,接收方数据传输装置可将包长对应的比特序列中的数据域的比特位的取值加上32后,根据加法运算后的取值得到对应的ASCII字符。
以上序号域和数据域的取值范围的定义方案仅为一种示例,本申请实施例并不仅限于上述方案。比如,允许数据帧和分组帧的包长对应的比特序列中的序号域的取值范围交叠,但数据域的取值范围不能存在交叠,这样可根据数据域的取值范围来区分数据帧和分组帧;或者,允许数据帧和分组帧的包长对应的比特序列中的数据域的取值范围交叠,但序号域的取值范围不能存在交叠,这样,可以根据序号域的取值范围来区分数据帧和分组帧。
图3a和图3b以包长对应的比特序列的长度为11比特,且序号域的比特位数为4、数据域的比特位数为7为例,示例性地示出了本申请实施例提供的无线帧的包长对应的比特序列的格式。其中,图3a示例性地示出了数据帧的包长对应的比特序列的格式,一个数据帧的包长对应的比特序列中的数据域可以用来承载一个ASCII字符。图3b示例性地示出了分组帧的包长对应的比特序列的格式。
图3a中,数据帧的包长对应的比特序列的序号域占用该比特序列中的高比特位部分的4个比特,取值范围定义为[1,10],数据域占用该比特序列中的低比特位部分的7个比特,取值范围为[32,126]。
数据帧的包长对应的比特序列的格式定义可表示为:
len=(index<<7)+data,index=[1,2,3,4,5,6,7,8,9,10]
126>=data>=32
其中,len代表数据帧的包长;index代表数据帧相对序号,即数据帧在所属分组内的序号或位置;data代表数据域中的数据,即需要由包长对应的比特序列承载的数据,一个数据帧的包长对应的比特序列中的数据域可承载一个字节的数据,比如一个ASCII字符。在使用包长对应的比特序列承载用于接入无线网络的账号信息的情况下,可定义126>=data>=32,因为该范围所对应的ASCII字符为账号信息所使用的ASCII字符。
图3b中,分组帧的包长对应的比特序列中的序号域占用该比特序列的高比特位部分的4个比特,定义的取值固定为11,数据域占用该比特序列的低比特位部分的7个比特,取值范围为[0,31]。
分组帧的包长对应的比特序列的格式定义可表示为:
len=(fixed_index<<7)+base_index
其中,len代表分组帧的包长,fixed_index代表分组帧使用的固定序号,取值为11;base_index代表分组号,取值范围为[0,31]。
根据图3a和图3b,在定义126>=data>=32的情况下,由于base_index的取值范围是[0,31],与data的取值范围没有交叠,因此可根据无线帧的包长对应的比特序列中的数据域的比特位的取值区分数据帧和分组帧。当然,在数据帧和分组帧的包长对应的比特序列中的序号域的比特位的取值没有交叠的情况下,也可根据序号域的比特位的取值区分数据帧和分组帧。
可以看出,使用以上编码格式即可达到将数据和序号隐藏编码到无线帧的包长对应的比特序列的目的。
以上仅以无线帧的包长对应的比特序列的长度为11比特为例描述,无线帧的包长对应的比特序列的长度也可以大于11比特,在这种情况下,包长对应的比特序列中的高N比特可作为序号域,N是大于4的整数,该比特序列中的低M比特可作为数据域,M是大于或等于7的整数。
根据以上对无线帧的包长对应的比特序列的格式定义,下面分别结合图3和图4,对本申请实施例提供的数据传输方法流程进行详细描述。
参见图4,为本申请实施例提供的数据传输方法流程的示意图。该流程描述了数据接收方的处理过程,该流程可由作为数据接收方的数据传输装置执行。所述数据传输装置设置有无线模块,比如Wi-Fi模块,能够接收和处理无线帧。比如,该数据传输装置可以是智能家居设备或嵌入式设备等。
如图所示,该流程可包括如下步骤:
步骤401:接收无线帧;
步骤402:确定所述无线帧的包长;所述无线帧的包长对应的比特序列包括序号域和数据域,所述序号域的比特位数至少大于3;
步骤403:根据所述无线帧的包长对应的比特序列中的序号域和/或数据域的比特位的取值,确定所述无线帧的包长对应的比特序列是否用来承载数据;
步骤404:如果确定为是,则根据所述无线帧的包长对应的比特序列中的数据域的比特位的取值,确定所述无线帧的包长对应的比特序列所承载的数据。
进一步地,若在步骤403中确定所述无线帧的包长对应的比特序列用来承载分组号,则可根据该无线帧进行数据接收和排序。
上述流程中所述的无线帧,其包长对应的比特序列的结构可如前所述。比如,包长对应的比特序列中的序号域位于该比特序列中的高比特位部分,包长对应的比特序列中的数据域位于该比特序列中的低比特位部分。优选地,所述序号域的比特位数为4,所述数据域的比特位数为7。
在步骤401中,由于数据传输装置中设置有无线模块,因此可以监听周边设备发送的无线帧。
在步骤402中,作为接收方的数据传输装置可在应用层计算得到该无线帧的包长,进而得到该包长对应的比特序列。
如前所述,可根据包长对应的比特序列中的序号域的比特位的取值来区分数据帧和分组帧,也可以根据包长对应的比特序列中的数据域的比特位的取值来区分数据帧和分组帧,相应地,在步骤403中,数据传输装置可采用以下方式中的一种来确定所述无线帧是否是数据帧:
方式1:若所述无线帧的包长对应的比特序列中序号域的比特位的取值在第一取值范围内,则确定所述无线帧的包长对应的比特序列用来承载数据,其中,所述无线帧的包长对应的比特序列中序号域的比特位的取值用于标识所述无线帧在所属分组内的序号。
进一步地,若所述无线帧的包长对应的比特序列中序号域的比特位的取值在第二取值范围内或为第一取值,则确定所述无线帧的包长对应的比特序列用来承载分组号,其中,所述第二取值范围与所述第一取值范围没有交叠,所述第一取值不在所述第一取值范围内。
举例来说,以图3a和图3b所示的无线帧的包长对应的比特序列的格式为例,如果无线帧的包长对应的比特序列中的序号域的比特位的取值在[1,10]范围内,则确定该无线帧为数据帧,如果无线帧的包长对应的比特序列中的序号域的比特位的取值为11,则确定该无线帧为分组帧。
方式2:若所述无线帧的包长对应的比特序列中数据域的比特位的取值在第三取值范围内,则确定所述无线帧的包长对应的比特序列用来承载数据,所述第三取值范围为需要由无线帧的包长对应的比特序列承载的数据所对应的取值范围。优选地,在这种情况下,会选定一个固定值作为分组帧的包长对应的比特序列中的序号域的比特位的取值。
进一步地,若所述无线帧的包长对应的比特序列中数据域的比特位的取值在第四取值范围内,则确定所述无线帧的包长对应的比特序列用来承载分组号,所述第四取值范围为分组序号的取值范围,所述第三取值范围与所述第四取值范围没有交叠。
举例来说,以图3a和图3b所示的无线帧的包长对应的比特序列的格式为例,如果无线帧的包长对应的比特序列中的数据域的比特位的取值在[32,126]范围内,则确定该无线帧为数据帧,如果无线帧的包长对应的比特序列中的数据域的比特位的取值在[0,31]范围内,则确定该无线帧为分组帧。
在步骤404中,作为接收方的数据传输装置可通过以下过程确定所述数据帧的包长对应的比特序列所承载的数据:根据所述数据帧的包长对应的比特序列中的数据域的比特位的取值,确定对应的ASCII字符,将确定出的ASCII字符确定为所述数据帧的包长对应的比特序列所承载的数据。
一个数据帧的包长对应的比特序列中的数据域通常可承载一个字节,比如一个ASCII字符,如果需要由包长对应的比特序列承载的数据包含多个字节,比如多个ASCII字符,则可以使用相应数量的数据帧的包长对应的比特序列来承载该多个字节的数据。图5示例性地示出了用多个数据帧的包长对应的比特序列承载多个字节数据的示意图,图中字节1至字节n表示需要通过无线帧的包长传输的数据,比如,一个字节可代表一个ASCII字符。
考虑到数据传输装置接收无线帧的顺序可能与发送顺序不一致,因此本申请实施例中,可通过数据帧的包长对应的比特序列中的序号域的比特位的取值,来确定一个分组内的数据帧的顺序,按照该顺序将这些数据帧的包长对应的比特序列所承载的数据进行拼接,从而可以解决接收无线帧乱序所导致的数据不准确的问题。
具体来说,作为接收方的数据传输装置可以根据数据帧的包长对应的比特序列中序号域的比特位的取值确定该数据帧在所属分组内的序号,根据该数据帧在所属分组内的序号,确定该数据帧的包长对应的比特序列中的数据域所承载的数据在整个数据序列中的位置。
进一步地,作为接收方的数据传输装置可根据分组帧的包长对应的比特序列中的数据域的比特位的取值确定分组号,根据该分组号,确定数据的在整个数据序列里的绝对位置,或者说确定下一分组数据的起始偏移。
比如,作为接收方的数据传输装置解析数据时,可根据以下公式确定一个数据的最终位置:
pos=(base_index*group_nums)+index
其中,pos代表数据包的最终位置,group_nums代表一个分组内的数据帧的数量。接收方根据base_index和index来确定数据的最终位置。
优选地,可将上述实施例应用于无线网络接入的场景,在该场景下,所述需要由无线帧的包长对应的比特序列承载的数据可包括:用于进行无线网络接入的账户信息,或者无线网络的接入密码,比如可以是无线局域网的接入密码。
本申请的上述实施例中,由于通过无线帧的包长对应的比特序列的数据域承载需要发送给接入方的数据,使得接收方能够根据无线帧的包长对应的比特序列获取需要的数据。尤其在接入无线局域网的场景下,发送方可将无线局域网的账户信息承载在无线帧的包长对应的比特序列发送给接收方,使得接收方获得无线局域网的账户信息,从而可接入无线局域网。另外,由于无线帧的包长对应的比特序列中的序号域的比特位数大于3,由于包长对应的比特序列中的序号域可用来标识无线帧在所在分组内的序号,因此通过该长度的序号域,使得每个分组内包含较多数量的无线帧,也就是说,可以每间隔较多数量的无线帧发送一个作为分组间隔的无线帧,而作为分组间隔的无线帧的数量越少,越能降低因作为分组间隔的无线帧丢失而导致的对接收方接收效率的影响。
以需要通过无线帧的包长对应的比特序列传输100字节的数据为例,根据本申请的上述实施例,每发送10个数据帧,需要发送一个分组帧,一共需要10个分组帧。但是,如果无线帧的包长对应的比特序列中的序号域的比特位数小于或等于3,比如等于3,则需要25个分组帧。数据帧位置的确定对接收方至关重要,因为无线帧传输过程容易丢失,接收方一次很难将信息搜集完整,在循环接收过程中,每收到一个数据,需要确定该数据的位置。由于无线传输的可靠性不高,分组帧的丢失,易引起前一个分组的数据解析出现混乱,影响接收方的效率,因此采用本申请实施例降低了分组帧的数量,进而可一定程度上保证接收方的接收可靠性。
参见图6,为本申请实施例提供的数据传输方法流程的示意图。该流程描述了数据发送方的处理过程,该流程可由作为数据发送方的数据传输装置执行。所述数据传输装置设置有无线模块,比如Wi-Fi模块,能够发送和处理无线帧。比如,该数据传输装置可以是移动终端或者可以是无线路由器或家庭网关等。
如图6所示,该流程可包括如下步骤:
步骤601:获取需要由无线帧的包长对应的比特序列承载的数据;
步骤602:根据获取到的数据,确定无线帧的包长对应的比特序列,使所述无线帧的包长对应的比特序列中的数据域承载所述数据,其中,所述无线帧的包长对应的比特序列中包含序号域和数据域,所述序号域的比特位数至少大于3;
步骤603:根据所述无线帧的包长生成所述无线帧;
步骤604:发送所述无线帧。
上述流程中所述的无线帧,其包长对应的比特序列的结构可如前所述。比如,序号域位于包长对应的比特序列中的高比特位部分,所述数据域位于包长对应的比特序列中的低比特位部分。优选地,所述序号域的比特位数为4,所述数据域的比特位数为7。
在步骤601中,作为发送方的数据传输装置可获取需要由无线帧的包长对应的比特序列承载的数据,该数据可以是一个字节序列中的一个字节,比如一个ASCII字符串中的一个ASCII字符。
在步骤602中,作为发送方的数据传输装置可将所述需要由无线帧的包长对应的比特序列承载的数据转换为ASCII字符对应的取值,根据转换后的ASCII字符对应的取值,确定所述无线帧的包长对应的比特序列中数据域的取值,使所述无线帧的包长对应的比特序列中的数据域承载所述数据。
步骤603中,作为发送方的数据传输装置可根据步骤602中所确定出的包长对应的比特序列,生成相应长度的无线帧。通常情况下,无线帧的帧头部分和帧校验部分的长度是固定不变的,因此可通过调整帧实体部分的长度,使得生成的无线帧的长度与步骤602所确定出的包长对应的比特序列所表示的长度相等。
进一步地,在步骤602中,作为发送方的数据传输装置还可根据所述无线帧在所属分组内的序号,确定所述无线帧的包长对应的比特序列中序号域的比特位的取值,所述序号域中比特位的取值在第一取值范围内,所述第一取值范围与第二取值范围没有交叠,或者所述第一取值范围内不包含第一取值,其中,若无线帧的包长对应的比特序列中的序号域的比特位的取值在所述第二取值范围内或者为所述第一取值,则该无线帧的包长对应的比特序列中的数据域的比特位用来承载分组号。
举例来说,以图3a和图3b所示的无线帧的包长对应的比特序列的格式为例,作为发送方的数据传输装置可根据当前数据帧在所属分组内的序号设置包长对应的比特序列中的序号域的比特位的取值,结合该比特位序列中的数据域的比特位的取值,得到该比特序列的取值,即,当前数据帧的包长。
进一步地,作为发送方的数据传输装置还可在发送所述无线帧之前或之后发送以下无线帧:该无线帧的包长对应的比特序列中的数据域的比特位的取值在第四取值范围内,所述第四取值范围为分组序号的取值范围,所述第四取值范围与第三取值范围没有交叠,所述第三取值范围为需要使用无线帧的包长对应的比特序列承载的数据所对应的取值范围。
举例来说,以图3a和图3b所示的无线帧的包长对应的比特序列的格式为例,作为发送方的数据传输装置决定发送分组帧时,确定该分组帧的分组号,分组号的取值范围为[0,31],根据该分组号设置该分组帧的包长对应的比特序列中的数据域的比特位的取值。将该分组帧的包长对应的比特序列中的序号域的比特位的取值设置为11或者设置为[11,16]范围内的任意一个整数,以便用来标识该无线帧为分组帧。其中,数据帧的包长对应的比特序列中的数据域的比特位取值范围是[32,126],与分组帧的包长对应的比特序列中的数据域的比特位的取值范围没有交叠。
一个数据帧的包长对应的比特序列中的数据域通常可承载一个字节,比如一个ASCII字符,如果需要由包长对应的比特序列承载的数据包含多个字节,比如多个ASCII字符,则可以使用相应数量的数据帧的包长对应的比特序列来承载该多个字节的数据。图5示例性地示出了用多个数据帧的包长对应的比特序列承载多个字节数据的示意图,图中字节1至字节n表示需要通过无线帧的包长传输的数据,比如,一个字节可代表一个ASCII字符。
优选地,可将上述实施例应用于无线网络接入的场景,在该场景下,所述需要由无线帧的包长对应的比特序列承载的数据可包括:用于进行无线网络接入的账户信息,或者无线网络的接入密码,比如可以是无线局域网的接入密码。
本申请的上述实施例中,由于通过无线帧的包长对应的比特序列的数据域承载需要发送给接入方的数据,使得接收方能够根据无线帧的包长对应的比特序列获取需要的数据。尤其在接入无线局域网的场景下,发送方可将无线局域网的账户信息承载在无线帧的包长对应的比特序列发送给接收方,使得接收方获得无线局域网的账户信息,从而可接入无线局域网。另外,由于无线帧的包长对应的比特序列中的序号域的比特位数大于3,由于包长对应的比特序列中的序号域可用来标识无线帧在所在分组内的序号,因此通过该长度的序号域,使得每个分组内包含较多数量的无线帧,也就是说,可以每间隔较多数量的无线帧发送一个作为分组间隔的无线帧,而作为分组间隔的无线帧的数量越少,越能降低因作为分组间隔的无线帧丢失而导致的对接收方接收效率的影响。
需要说明的是,采用本申请实施例可通过包长对应的比特序列承载各种需要的数据发送给接收方。比如,这些数据包括但不限于:数据字节数(即总长)、标志位(flag)、SSID的长度、SSID、接入密码的长度、接入密码、帧校验序列等。其中,数据字节数(总长)、标志位(flag)、SSID的长度以及接入密码的长度,可分别占用1个字节,帧校验序列的可占用2个字节,SSID以及接入密码可分别占用多个字节。
其中,无线帧的标志位序列可定义如下:
bit7:固定为0;
bit6至bit5:保留字段;
bit4至bit3:协议版本,当前版本00;
bit2至bit1:载荷(payload)信息加密方式,00表示无加密,01表示流密码(streamcipher);
bit0:是否包含SSID。
为了更清楚地理解本申请的上述实施例,下面以图3a和图3b所示的无线帧的包长对应的比特序列格式为例,描述无线网络接入的场景下,通过无线帧的包长对应的比特序列承载用于接入无线局域网的账户信息的过程。
该场景为:智能家居设备通过移动终端获取无线局域网的账户信息以接入无线局域网。
该过程可描述为:移动终端上安装有应用程序,该应用程序的功能是可以采用本申请上述实施例的方式将无线局域网的账户信息通过无线帧的包长对应的比特序列发送。智能家居设备上安装有相应的应用程序,该应用程序的功能是可以采用本申请上述实施例的方式接收无线帧,并获得无线帧的包长对应的比特序列所承载的无线局域网的账户信息。
当移动终端和智能家居设备上安装的上述应用程序开启后,移动终端获取无线局域网的账户信息,该账户信息包括:SSID为1234,接入密码为abcd。该账户信息可通过多种方式被移动终端获得,比如,移动终端上缓存有该账户信息或者通过人工方式输入该账户信息。
移动终端顺序发送18个无线帧,其中,每10个无线帧发送一个用来间隔分组的无线帧。其中,发送方和接收方可约定第2至第5个无线帧的包长对应的比特序列分别用来承载总长度信息、flag、SSID的长度信息、接入密码的长度信息,其后的无线帧的包长对应的比特序列依次用来传输SSID和接入密码的ASCII字符,最后2个无线帧的包长对应的比特序列用来承载帧检验序列。发送方发送的无线帧包括:
无线帧1的包长对应的比特序列中的序号域的比特位的取值为1011,数据域的比特位的取值为0000000,该值表示第一个分组的分组号;
无线帧2的包长对应的比特序列中的序号域的比特位的取值为0001,数据域的比特位的取值为0001110,该值表示总长度信息,十进制取值为14,因为总长度信息、flag、SSID长度信息、接入密码长度信息、帧校验序列、4个ASCII字符的SSID以及4个ASCII字符的接入密码共计占用14个字节;
无线帧3的包长对应的比特序列中的序号域的比特位的取值为0010,数据域的比特位的取值为0000000,该值表示flag标志位的取值;
无线帧4的包长对应的比特序列中的序号域的比特位的取值为0011,数据域的比特位的取值为0000100,该值表示SSID由4个ASCII字符组成;
无线帧5的包长对应的比特序列中的序号域的比特位的取值为0100,数据域的比特位的取值为0000100,该值表示接入密码由4个ASCII字符组成;
无线帧6的包长对应的比特序列中的序号域的比特位的取值为0101,数据域的比特位的取值为0110001,该值表示SSID的第一个ASCII字符为1;
无线帧7的包长对应的比特序列中的序号域的比特位的取值为0110,数据域的比特位的取值为0110010,该值表示SSID的第二个ASCII字符为2;
无线帧8的包长对应的比特序列中的序号域的比特位的取值为0111,数据域的比特位的取值为0110011,该值表示SSID的第三个ASCII字符为3;
无线帧9的包长对应的比特序列中的序号域的比特位的取值为1000,数据域的比特位的取值为0110100,该值表示SSID的第四个ASCII字符为4;
无线帧10的包长对应的比特序列中的序号域的比特位的取值为1001,数据域的比特位的取值为1100001,该值表示接入密码的第一个ASCII字符为a;
无线帧11的包长对应的比特序列中的序号域的比特位的取值为1010,数据域的比特位的取值为1100010,该值表示接入密码的第二个ASCII字符为b;
无线帧12的包长对应的比特序列中的序号域的比特位的取值为1011,数据域的比特位的取值为0000010,该值表示第二个分组的分组号;
无线帧13的包长对应的比特序列中的序号域的比特位的取值为0001,数据域的比特位的取值为1100011,该值表示接入密码的第三个ASCII字符为c;
无线帧14的包长对应的比特序列中的序号域的比特位的取值为0010,数据域的比特位的取值为1100100,该值表示接入密码的第四个ASCII字符为d;
无线帧15的包长对应的比特序列中的序号域的比特位的取值为0011,数据域的比特位的取值为7比特的校验值;
无线帧16的包长对应的比特序列中的序号域的比特位的取值为0100,数据域的比特位的取值为7比特的校验值。
智能家居设备接收上述无线帧后,分别计算出每个无线帧的包长,将包长的取值转换为二进制序列,根据每个数据帧的包长对应的二进制序列中的数据域的比特位的取值得到相应的长度信息、flag、帧校验序列以及SSID和接入密码的ASCII字符,并根据数据帧的包长对应的二进制序列中的序号域的比特位的取值以及分组帧的包长对应的二进制序列中的数据域的比特位的取值,确定SSID和接入密码的ASCII字符的拼装顺序,从而得到完整的SSID和接入密码,进而可使用该账户信息接入无线局域网。
基于相同的技术构思,本申请实施例还提供了一种作为数据接收方的数据传输装置,以及一种作为数据发送方的数据传输装置。
参见图7,为本申请实施例提供的数据传输装置的结构示意图。该数据传输装置可作为数据接收方,执行前述的数据传输流程。所述数据传输装置设置有无线模块,比如Wi-Fi模块,能够接收和处理无线帧。比如,该数据传输装置可以是智能家居设备或嵌入式设备等。
如图所示,该数据传输装置可包括:接收模块701、第一确定模块702、第二确定模块703、第三确定模块704,其中:
接收模块701,用于接收无线帧;
第一确定模块702,用于确定所述无线帧的包长,所述无线帧的包长对应的比特序列包括序号域和数据域,所述序号域的比特位数至少大于3;
第二确定模块703,用于根据所述无线帧的包长对应的比特序列中的序号域和/或数据域的比特位的取值,确定所述无线帧的包长对应的比特序列是否用来承载数据;
第三确定模块704,用于在第二确定模块703确定为是的情况下,根据所述无线帧的包长对应的比特序列中的数据域的比特位的取值,确定所述无线帧的包长对应的比特序列所承载的数据。
其中,所述序号域位于包长对应的比特序列中的高比特位部分,所述数据域位于包长对应的比特序列中的低比特位部分。
其中,所述无线帧为802.11协议定义的无线帧,所述序号域的比特位数为4,所述数据域的比特位数为7。
其中,所述无线帧的包长对应的比特序列所承载的数据包括:用于进行无线网络接入的账户信息,或者无线网络的接入密码。
优选地,第三确定模块704可具体用于:根据所述无线帧的包长对应的比特序列中数据域的比特位的取值确定ASCII字符,并将确定出的ASCII字符确定为所述无线帧的包长对应的比特序列所承载的数据。
优选地,第二确定模块703可具体用于:若所述无线帧的包长对应的比特序列中序号域的比特位的取值在第一取值范围内,则确定所述无线帧的包长对应的比特序列用来承载数据,其中,所述无线帧的包长对应的比特序列中序号域的比特位的取值用于标识所述无线帧在所属分组内的序号。
进一步地,第二确定模块703还可用于:若所述无线帧的包长对应的比特序列中序号域的比特位的取值在第二取值范围内或为第一取值,则确定所述无线帧的包长对应的比特序列用来承载分组号,其中,所述第二取值范围与所述第一取值范围没有交叠,所述第一取值不在所述第一取值范围内。
优选地,第二确定模块703可具体用于:若所述无线帧的包长对应的比特序列中数据域的比特位的取值在第三取值范围内,则确定所述无线帧的包长对应的比特序列用来承载数据,所述第三取值范围为需要由无线帧的包长对应的比特序列承载的数据所对应的取值范围。
进一步地,第二确定模块703还可用于:若所述无线帧的包长对应的比特序列中数据域的比特位的取值在第四取值范围内,则确定所述无线帧的包长对应的比特序列用来承载分组号,所述第四取值范围为分组序号的取值范围,所述第三取值范围与所述第四取值范围没有交叠。
参见图8,为本申请实施例提供的数据传输装置的结构示意图。该数据传输装置可作为数据发送方,执行前述的数据传输流程。所述数据传输装置设置有无线模块,比如Wi-Fi模块,能够发送和处理无线帧。比如,该数据传输装置可以是移动终端或者可以是无线路由器或家庭网关等。
如图8所示,该装置可包括:获取模块801、确定模块802、生成模块803以及发送模块804,其中:
获取模块801,用于获取需要由无线帧的包长对应的比特序列承载的数据;
确定模块802,用于根据获取到的数据,确定无线帧的包长对应的比特序列,使所述无线帧的包长对应的比特序列中的数据域承载所述数据,其中,所述无线帧的包长对应的比特序列中包含序号域和数据域,所述序号域的比特位数至少大于3;
生成模块803,用于根据所述无线帧的包长生成所述无线帧;;
发送模块804,用于发送所述无线帧。
其中,所述序号域位于包长对应的比特序列中的高比特位部分,所述数据域位于包长对应的比特序列中的低比特位部分。
其中,所述无线帧为802.11协议定义的无线帧,所述序号域的比特位数为4,所述数据域的比特位数为7。
其中,所述需要由无线帧的包长对应的比特序列承载的数据包括:用于进行无线网络接入的账户信息,或者无线网络的接入密码。
优选地,确定模块802可具体用于:将获取到的数据转换为ASCII字符对应的取值,根据转换后的ASCII字符对应的取值,确定所述无线帧的包长对应的比特序列中数据域的取值,使所述无线帧的包长对应的比特序列中的数据域承载所述数据。
进一步地,确定模块802还可用于:根据所述无线帧在所属分组内的序号,确定所述无线帧的包长对应的比特序列中序号域的比特位的取值,所述序号域中比特位的取值在第一取值范围内,所述第一取值范围与第二取值范围没有交叠,或者所述第一取值范围内不包含第一取值,其中,若无线帧的包长对应的比特序列中的序号域的比特位的取值在所述第二取值范围内或者为所述第一取值,则该无线帧的包长对应的比特序列中的数据域的比特位用来承载分组号。
进一步地,发送模块804可还用于:在发送所述无线帧之前或之后发送一下无线帧:该无线帧的包长对应的比特序列中的数据域的比特位的取值在第四取值范围内,所述第四取值范围为分组序号的取值范围,所述第四取值范围与第三取值范围没有交叠,所述第三取值范围为需要使用无线帧的包长对应的比特序列承载的数据所对应的取值范围。
综上所述,由于通过无线帧的包长对应的比特序列的数据域承载需要发送给接入方的数据,使得接收方能够根据无线帧的包长对应的比特序列获取需要的数据。尤其在接入无线局域网的场景下,发送方可将无线局域网的账户信息承载在无线帧的包长对应的比特序列发送给接收方,使得接收方获得无线局域网的账户信息,从而可接入无线局域网。另外,由于无线帧的包长对应的比特序列中的序号域的比特位数大于3,由于包长对应的比特序列中的序号域可用来标识无线帧在所在分组内的序号,因此通过该长度的序号域,使得每个分组内包含较多数量的无线帧,也就是说,可以每间隔较多数量的无线帧发送一个作为分组间隔的无线帧,而作为分组间隔的无线帧的数量越少,越能降低因作为分组间隔的无线帧丢失而导致的对接收方接收效率的影响。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。