具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种控制方法、装置和系统。以下分别进行详细说明。
实施例一、
本实施例将从用户端设备的角度进行描述,该用户端设备具体可以为个人计算机(PC,Personal Computer)、便携计算机等终端设备。
一种控制方法,包括:将用于对RNDIS设备进行控制的控制命令封装在发送给RNDIS设备的网络数据包中,然后将封装后的网络数据包发送给RNDIS设备,以对RNDIS设备进行控制。
参见图1,具体流程可以如下:
101、将控制命令封装在发送给RNDIS设备的网络数据包中;
例如,可以将控制命令封装在发送给RNDIS设备的基于连接的传输控制协议(TCP,Transmission Control Protocol)数据包中;或者,
将控制命令封装在发送给RNDIS设备的基于无连接的用户数据包协议(UDP,User Datagram Protocol)数据包中。
其中,该控制命令用于对RNDIS设备进行控制,比如,具体可以为AT命令、诊断(DIAG,Diagnose)命令以及其他的自定义命令。
102、将封装后的网络数据包发送给RNDIS设备,以对RNDIS设备进行控制;比如请求对RNDIS设备进行拨号、解个人标识号(PIN,personal identificationnumber)码、或断开拨号等操作。
可选的,在步骤101之前,即在发送给RNDIS设备的网络数据包中封装控制命令之前,还可以包括:建立与RNDIS设备的网络通信端口;其中,网络通信端口可以为任意端口,但是端口号不与已知的其他应用程序的端口号重叠。具体的建立方法可参见现有技术,在此不再赘述;
则此时,步骤101具体可以为:在通过该网络通信端口发送的网络数据包中封装控制命令。
由上可知,本实施例采用在发送给RNDIS设备的网络数据包中封装控制命令,然后将封装后的网络数据包发送给RNDIS设备,以对RNDIS设备进行控制。由于在现有的网络架构中,用户端设备本来就可以直接将网络数据包发送给RNDIS设备,所以采用该方案无需额外增加新的控制接口就可以向RNDIS设备传输控制命令,而且也无需安装额外的驱动程序,相对于现有技术中需要额外增加新的控制接口和安装驱动程序的方案而言,降低了使用的复杂度,而且对RNDIS设备没有特殊的要求,具有普遍的适用性,实现较为简单。
实施例二、
本实施例将从RNDIS设备的角度进行描述,该RNDIS设备具体可以为使用了RNDIS的端口的无线上网卡。
一种控制方法,包括:接收用户端设备发送的网络数据包,其中,该网络数据包中封装了用于对RNDIS设备进行控制的控制命令;对接收到的网络数据包进行解封装,得到控制命令;根据控制命令的指示执行操作。
参见图2,具体流程可以如下:
201、接收用户端设备发送的网络数据包,其中,网络数据包中封装了用于对RNDIS设备进行控制的控制命令,比如,AT命令、DIAG命令以及其他的自定义命令。
例如,可以接收用户端设备发送的基于连接的TCP数据包,其中,该TCP数据包中封装了用于对RNDIS设备进行控制的控制命令;或者,
也可以接收用户端设备发送的基于无连接的UDP数据包,其中,该UDP数据包中封装了用于对RNDIS设备进行控制的控制命令。
具体接收该网络数据包时,可以通过用户端设备和RNDIS设备之间建立的网络通信端口来进行接收。其中,网络通信端口可以为任意端口,但是端口号不与已知的其他应用程序的端口号重叠。
202、对接收到的网络数据包进行解封装,得到控制命令;具体可以如下:
RNDIS设备判断接收到的网络数据包是否携带有控制命令,如果是,则对该网络数据包进行解封装,否则确定该接收到的网络数据包为正常的网络数据,直接发到网络侧。
203、根据步骤202中得到的控制命令的指示执行操作,比如进行拨号、解PIN码、或断开拨号等。
可选的,RNDIS设备还可以返回响应消息,并通过发送广播数据包将设备状态变化上报给系统。
比如,RNDIS设备将响应消息以图3c同样的格式进行封装,然后发送给用户设备。
由上可知,本实施例采用接收用户端设备发送的封装有控制命令的网络数据包,在对网络数据包进行解封装,并得到控制命令之后,根据控制命令的指示执行操作,从而实现了用户端设备对RNDIS设备的控制。由于在现有的网络架构中,用户端设备本来就可以直接将网络数据包发送给RNDIS设备,所以采用该方案无需额外增加新的控制接口就可以向RNDIS设备传输控制命令,而且由于无需增加新的控制接口,所以也无需安装额外的驱动程序,相对于现有技术中需要额外增加新的控制接口和安装驱动程序的方案而言,降低了使用的复杂度,而且对RNDIS设备没有特殊的要求,具有普遍的适用性,实现较为简单。
实施例三、
根据实施例一和二所描述的方法,以下将举例进行详细说明。
在本实施例中,将以用户端设备为PC,网络数据包为基于无连接的UDP数据包,控制命令为AT命令为例进行说明。
参见图3a,具体流程可以如下:
301、PC建立与RNDIS设备的网络通信端口;该网络通信端口可以为任意端口,但是端口号不与已知的其他应用程序的端口号重叠,用于与RNDIS设备进行通信。为了描述方便,在本发明实施例中,将该网络通信端口称为RNDIS控制程序的端口。
例如,参见图3b,该图为了PC与RNDIS设备进行通信的场景示意图。看图中可以看出,文件传输协议(FTP,File Transfer Protocol)应用程序的端口号为“21”,超文本传输协议(http,HyperText Transfer Protocol)应用程序的端口号为“80”,假设在该PC设备中,已使用的端口号仅为“21”和“80”,则RNDIS控制程序的端口X可以为除“21”和“80”以外的任意端口。
由于RNDIS设备是网络设备,因此PC中的应用程序可以直接通过该网络通信端口将网络数据发到RNDIS设备上。
302、在步骤301建立的网络通信端口上,PC将需要下发给RNDIS设备的自定义的控制命令,如AT命令封装在基于无连接的UDP数据包中。
例如,参见图3c,该图为一种使用UDP数据包封装AT命令的数据包格式。其中AT标识(AT Flag)字段作为自定义控制命令的标识字段,字段大小可以设定为8字节(Bytes);AT命令数据(AT Command Data)字段为自定义控制命令的数据字段,字段大小是变化(Variable)的,即可以根据数据的大小而定,最大可以为1464Bytes。
在该封装了AT命令的UDP数据包中,因特网头部(Ethernet Header)字段、网际协议头部(IP Header)字段和UDP头部(UDP Header)字段与现有的UDP数据包格式相同,其中,Ethernet Header字段的大小为14Bytes,IP Header字段的大小为20Bytes,UDP Header字段的大小为8Bytes。但是,Ethernet Header中的目的媒体接入控制层(MAC,Media Access Control)地址需要使用RNDIS设备的MAC地址或者广播地址,以保证该UDP数据包能够被RNDIS设备接收到;同理,IP Header中的目的IP地址也需要使用RNDIS设备的IP地址或者广播地址,以保证该UDP数据包能够被RNDIS设备接收到。
303、PC将封装了AT命令的UDP数据包发送给RNDIS设备。
304、RNDIS设备接收PC发送的UDP数据包,判断UDP数据包中是否携带AT命令,比如可以判断UDP数据包中的AT标识是否匹配,如果是,则对接收到的UDP数据包进行解封装,得到AT命令,具体的解封装方法可参见现有技术,在此不再赘述;如果UDP数据包中没有携带AT命令,比如UDP数据包中的AT标识不匹配,则确定该UDP数据包为普通的UDP数据包,RNDIS设备直接将该UDP数据包发送给网络侧。
305、RNDIS设备根据步骤304中得到AT命令的指示执行操作,比如进行拨号、解PIN码、或断开拨号等。
可选的,RNDIS设备可以通过应答UDP数据包的方式,对相应的AT命令进行响应,并可以通过发送广播数据包的方式将RNDIS设备的设备状态变化上报给PC。
需说明的是,以上仅仅以网络数据包为基于无连接的UDP数据包为例进行说明,应当理解的是,还可以为其他的网络数据包,比如基于连接的TCP数据包等;另外,控制命令除了可以是AT命令之外,也可以是其他命令,比如DIAG命令以及其他的自定义命令等。
由上可知,本实施例采用在发送给RNDIS设备的UDP数据包中封装AT命令,然后将封装后的UDP数据包发送给RNDIS设备,以对RNDIS设备进行控制。由于在现有的网络架构中,用户端设备本来就可以直接将UDP数据包发送给RNDIS设备,所以采用该方案无需额外增加新的控制接口,而是使用RNDIS设备原有的接口,相对于现有技术需要增加额外的控制接口而言,方便了用户的使用。而且,由于无需增加新的控制接口,所以也无需安装额外的驱动程序,相对于现有技术中需要额外安装驱动程序的方案而言,降低了使用的复杂度;进一步的,该方案对RNDIS设备没有特殊的要求,具有普遍的适用性,实现较为简单。
实施例四、
除了在用户端设备和RNDIS设备之间建立网络通信端口之外,也可以通过在RNDIS设备上增加光盘(CD,Compact Disc)接口或人体学输入设备(HID,Human Input Device)接口的方式来封装和发送控制命令,即将控制命令封装成CD格式或HID接口格式,然后通过CD接口或HID接口发送给RNDIS设备。
与实施例一相似的,本实施例也将从用户端设备的角度进行描述,该用户端设备具体可以为PC、便携计算机等终端设备。
参见图4,一种控制方法,具体流程可以如下:
401、将控制命令封装在CD或HID接口格式的数据包中;
其中,控制命令用于对远程网络驱动接口规范RNDIS设备进行控制,比如,具体可以为AT命令、诊断(DIAG,Diagnose)命令以及其他的自定义命令。
402、将封装后的数据包通过RNDIS设备上设置的CD接口或HID接口发送给RNDIS设备,以对RNDIS设备进行控制,比如请求对RNDIS设备进行拨号、解PIN码、或断开拨号等操作。
由上可知,本实施例采用将控制命令封装在CD或HID接口格式的数据包中,然后通过在RNDIS设备上设置的CD接口或HID接口发送给RNDIS设备,以对RNDIS设备进行控制。由于现有的PC系统中已经包含了通用的CD接口或者HID设备的驱动,因此该方案也无需安装额外的驱动程序,相对于现有技术中需要额外安装驱动程序的方案而言,降低了使用的复杂度。
实施例五、
与实施例四对应的,本实施例将从RNDIS设备的角度进行描述。
参见图5,一种控制方法,具体流程可以如下:
501、通过设置在RNDIS设备上的CD接口或HID接口接收用户端设备发送的数据包,其中,该数据包中封装了用于对该RNDIS设备进行控制的控制命令;
需说明的是,这里的数据包指的是CD格式或HID接口格式的数据包。
502、对接收到的数据包进行解封装,得到控制命令;比如,AT命令、DIAG命令以及其他的自定义命令。具体可以如下:
RNDIS设备判断接收到的数据包是否携带有控制命令,如果是,则对该数据包进行解封装,否则确定该接收到的数据包为正常的数据,按现有技术进行处理。
503、根据步骤502中得到的控制命令的指示执行操作,比如进行拨号、解PIN码、或断开拨号等。
由上可知,本实施例采用通过CD接口或HID接口接收用户端设备发送的封装有控制命令的数据包,在对数据包进行解封装,并得到控制命令之后,根据控制命令的指示执行操作,从而实现了用户端设备对RNDIS设备的控制。由于现有的PC系统中已经包含了通用的CD接口或者HID设备的驱动,因此该方案也无需安装额外的驱动程序,相对于现有技术中需要额外安装驱动程序的方案而言,降低了使用的复杂度,当然,由于该方案需要增加额外的接口,所以相对于实施一、二和三的方法而言,实现较为复杂。
实施例六、
根据实施四和五所描述的方法,以下将举例进行详细说明。
与实施例三类似的,本实施例也将以用户端设备为PC,控制命令为AT命令为例进行说明;与实施例三不同的是,在本实施例中,不建立PC建立与RNDIS设备之间的网络通信端口,而是在RNDIS设备上增加CD接口或者HID接口。该方案主要适用于支持组合设备形态的接口类型的设备,如USB设备。以下将以用户端设备为PC,控制命令为AT命令为例进行简略说明。
首先,需要在RNDIS设备上增加CD接口或者HID接口,用于接收封装有控制命令的CD格式或HID接口格式的数据包,而原有的RNDIS端口则仍用于接收普通的网络数据包,参见图6a,该图为PC与RNDIS设备进行通信的场景示意图。由于PC系统中已经包含了通用的CD接口或者HID设备的驱动,因此这种方案下也无需安装额外的驱动程序。
参见图6b,具体流程可以如下:
601、PC将需要下发给RNDIS设备的自定义的控制命令,如AT命令封装在向CD或者HID设备发送的数据包中。
602、PC将封装了AT命令的数据包发送给RNDIS设备。
603、RNDIS设备通过CD接口或者HID接口接收PC发送的数据包,并判断该数据包是否携带了AT命令,比如判断该数据包携带的AT标识是否匹配,如果是,则对接收到的数据包进行解封装,得到AT命令,具体的解封装方法可参见现有技术,在此不再赘述;否则,如果判断该数据包没有携带了AT命令,比如该数据包携带的AT标识不匹配,则确定该数据包为普通的CD或者HID数据,按照现有技术的流程进行处理。
604、RNDIS设备根据步骤603中得到AT命令的指示执行操作,比如进行拨号、解PIN码、或断开拨号等。
可选的,RNDIS设备可以通过应答数据包的方式,对相应的AT命令进行响应,并可以通过发送广播数据包的方式将RNDIS设备的设备状态变化上报给PC。
需说明的是,以上仅仅以AT命令为例进行说明,应当理解的是,还可以是其他命令,比如DIAG命令以及其他的自定义命令等。
由上可知,本实施例采用在RNDIS设备增加额外的CD接口或HID接口,在发送给RNDIS设备的数据包中封装AT命令,然后将封装后的数据包通过CD接口或HID接口发送给RNDIS设备,以对RNDIS设备进行控制。由于现有的PC系统中已经包含了通用的CD接口或者HID设备的驱动,因此该方案也无需安装额外的驱动程序,相对于现有技术中需要额外安装驱动程序的方案而言,降低了使用的复杂度,当然,由于该方案需要增加额外的接口,所以相对于实施三而言,实现较为复杂。
实施例七、
为了更好地实施一至三的方法,本发明实施例还相应地提供一种用户端设备,如图7a所示,该用户端设备包括第一封装单元701和第一发送单元702;
第一封装单元701,用于将控制命令封装在发送给RNDIS设备的网络数据包中,其中,该控制命令用于对RNDIS设备进行控制;
其中,网络数据包可以是基于连接的TCP数据包或基于无连接的UDP数据包等,控制命令具体可以为AT命令,等等。
第一发送单元702,用于将第一封装单元701封装后的网络数据包发送给RNDIS设备,以对RNDIS设备进行控制,比如请求对RNDIS设备进行拨号、解PIN码、或断开拨号等操作。
可选的,参见图7b,该用户端设备还可以包括第一建立单元703;
第一建立单元703,用于建立与RNDIS设备的网络通信端口;其中,该网络通信端口可以为任意端口,但是端口号不与已知的其他应用程序的端口号重叠,具体的建立方法可参见现有技术,在此不再赘述;
则此时,第一封装单元701,具体用于在第一建立单元703建立的网络通信端口上的网络数据包中封装控制命令。
可选的,该用户端设备还可以包括第一接收单元,用于接收RNDIS设备返回的关于控制命令的响应,进一步的,还可以接收RNDIS设备上报的RNDIS设备的设备状态变化。
以上各个单元的具体实施可参见前面实施例,在此不再赘述。
由上可知,本实施例的用户端设备的第一封装单元701可以在发送给RNDIS设备的网络数据包中封装控制命令,然后由第一发送单元702将封装后的网络数据包发送给RNDIS设备,以对RNDIS设备进行控制。由于在现有的网络架构中,用户端设备本来就可以直接将网络数据包发送给RNDIS设备,所以采用该方案无需额外增加新的控制接口就可以向RNDIS设备传输控制命令,而且也无需安装额外的驱动程序,相对于现有技术中需要额外增加新的控制接口和安装驱动程序的方案而言,降低了使用的复杂度,而且对RNDIS设备没有特殊的要求,具有普遍的适用性,实现较为简单。
实施例八、
为了更好地实施四至六的方法,本发明实施例还相应地提供一种用户端设备,如图8所示,该用户端设备包括第二封装单元801和第二发送单元802;
第二封装单元801,用于将控制命令封装在CD或HID接口格式的数据包中,其中,控制命令用于对远程网络驱动接口规范RNDIS设备进行控制;比如,具体可以为AT命令、DIAG命令以及其他的自定义命令;
第二发送单元802,用于将第二封装单元801封装后的数据包通过RNDIS设备上设置的CD接口或HID接口发送给RNDIS设备,以对RNDIS设备进行控制,比如请求对RNDIS设备进行拨号、解PIN码、或断开拨号等操作。
由上可知,本实施例提供的用户端设的第二封装单元801采用将控制命令封装在CD或HID接口格式的数据包中,然后由第二发送单元802通过在RNDIS设备上设置的CD接口或HID接口发送给RNDIS设备,以对RNDIS设备进行控制。由于现有的PC系统中已经包含了通用的CD接口或者HID设备的驱动,因此该方案也无需安装额外的驱动程序,相对于现有技术中需要额外安装驱动程序的方案而言,降低了使用的复杂度。
实施例九、
与实施例七相应地,本发明实施例还提供一种RNDIS设备,如图9所示,该RNDIS设备包括第一接收单元901、第一解封装单元902和第一处理单元903;
第一接收单元901,用于接收用户端设备发送的网络数据包,其中,该网络数据包中封装了用于对RNDIS设备进行控制的控制命令,比如AT命令、DIAG命令以及其他的自定义命令等,该网络数据包具体可以是基于连接的TCP数据包或基于无连接的UDP数据包,等等。
第一解封装单元902,用于对第一接收单元901接收到的网络数据包进行解封装,得到控制命令;具体可参见前面实施例,在此不再赘述。
第一处理单元903,用于根据解封装单元902得到的控制命令的指示执行操作,比如进行拨号、解PIN码、或断开拨号等。
其中,接收单元901,具体用于通过用户端设备和RNDIS设备之间建立的网络通信端口接收用户端设备发送的网络数据包;其中,该网络通信端口可以为任意端口,但是端口号不与已知的其他应用程序的端口号重叠。
可选的,该RNDIS设备还可以包括第一响应单元,用于返回响应消息给用户端设备,该响应单元还可以通过发送广播数据包将设备状态变化上报给用户端设备。
以上各个单元的具体实施可参见前面实施例,在此不再赘述。
该RNDIS设备具体可以为使用了RNDIS的端口的无线上网卡。
由上可知,本实施例的RNDIS设备的第一接收单元901可以接收用户端设备发送的封装有控制命令的网络数据包,在第一解封装单元902对该网络数据包进行解封装,并得到控制命令之后,由第一处理单元903根据控制命令的指示执行操作,从而实现了用户端设备对RNDIS设备的控制。由于在现有的网络架构中,用户端设备本来就可以直接将网络数据包发送给RNDIS设备,所以采用该方案无需额外增加新的控制接口就可以向RNDIS设备传输控制命令,而且也无需安装额外的驱动程序,相对于现有技术中需要额外增加新的控制接口和安装驱动程序的方案而言,降低了使用的复杂度,而且对RNDIS设备没有特殊的要求,具有普遍的适用性,实现较为简单。
实施例十、
与实施例八相应地,本发明实施例还提供一种RNDIS设备,如图10所示,该RNDIS设备包括第二接收单元1001、第二解封装单元1002和第二处理单元1003;
第二接收单元1001,用于通过CD接口或HID接口接收用户端设备发送的数据包,其中,数据包中封装了用于对RNDIS设备进行控制的控制命令;
需说明的是,这里的数据包指的是CD格式或HID接口格式的数据包。
第二解封装单元1002,用于对第二接收单元1001接收到的数据包进行解封装,得到控制命令;比如,AT命令、DIAG命令以及其他的自定义命令;具体可参见前面实施例,在此不再赘述。
第二处理单元1003,用于根据第二解封装单元1002得到的控制命令的指示执行操作,比如进行拨号、解PIN码、或断开拨号等。
该RNDIS设备具体可以为使用了RNDIS的端口的无线上网卡。
由上可知,本实施例提供的RNDIS设备的第二接收单元1001采用通过CD接口或HID接口接收用户端设备发送的封装有控制命令的数据包,在第二解封装单元1002对数据包进行解封装,并得到控制命令之后,由第二处理单元1003根据控制命令的指示执行操作,从而实现了用户端设备对RNDIS设备的控制。由于现有的PC系统中已经包含了通用的CD接口或者HID设备的驱动,因此该方案也无需安装额外的驱动程序,相对于现有技术中需要额外安装驱动程序的方案而言,降低了使用的复杂度。
实施例十一、
相应的,本发明实施例还提供一种通信系统,如图11所示,包括本发明实施例提供的任一种用户端设备700和任一种RNDIS设备900;
用户端设备700,用于将控制命令封装在发送给RNDIS设备900的网络数据包中或者封装在CD或HID接口格式的数据包中,然后将封装后的网络数据包发送给RNDIS设备900,或者将封装后的数据包通过RNDIS设备上设置的CD接口或HID接口发送给RNDIS设备,以对RNDIS设备900进行控制;其中,控制命令用于对RNDIS设备900进行控制,该控制命令具体可以为AT命令等,网络数据包具体可以为TCP数据包或UDP数据包,等等。
RNDIS设备900,用于接收用户端设备700发送的封装了用于对RNDIS设备900进行控制的控制命令的网络数据包或数据包,对该网络数据包或数据包进行解封装,得到控制命令,然后根据控制命令的指示执行操作,比如进行拨号、解PIN码、或断开拨号等。
具体实施时,可选的,用户端设备700,还用于建立与RNDIS设备900的网络通信端口,然后在该网络通信端口上的网络数据包中封装控制命令;其中,网络通信端口可以为任意端口,但是端口号不与已知的其他应用程序的端口号重叠。
则此时,RNDIS设备900,具体用于通过用户端设备和RNDIS设备之间建立的网络通信端口接收网络数据包。
可选的,RNDIS设备900,还用于返回响应消息,并通过发送广播数据包将设备状态变化上报给系统;
则此时,用户端设备700,还用于接收RNDIS设备900返回的响应消息和上报的设备状态变化。
以上各个单元的具体实施可参见前面实施例,在此不再赘述。
由上可知,本实施例的通信系统的用户端设备700采用将控制命令封装在发送给RNDIS设备900的网络数据包,然后将封装后的UDP数据包发送给RNDIS设备900,以对RNDIS设备900进行控制。由于在现有的网络架构中,用户端设备700本来就可以直接将网络数据包发送给RNDIS设备900,所以采用该方案无需额外增加新的控制接口,而是使用RNDIS设备900原有的接口,相对于现有技术需要增加额外的控制接口而言,方便了用户的使用。而且,也无需安装额外的驱动程序,相对于现有技术中需要额外安装驱动程序的方案而言,降低了使用的复杂度;进一步的,该方案对RNDIS设备900没有特殊的要求,具有普遍的适用性,实现较为简单。
需说明的是,即使在本发明实施例中,也提出可以通过新增额外的CD或HID接口来建立控制通道,但是由于现有的用户端设备700的系统中已经包含了通用的CD接口或者HID设备的驱动,因此该方案也无需安装额外的驱动程序,相对于现有技术中需要额外安装驱动程序的方案而言,也同样可以达到降低了使用的复杂度的目的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种控制方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。