发明内容
本发明提供了一种网络适配方法及装置,以至少解决上述问题之一。
根据本发明的一个方面,提供了一种网络适配方法,包括:将预先配置在网卡中的多种驱动配置信息中的第一驱动配置信息发送给个人电脑(PC);接收PC返回的响应于第一驱动配置信息的第一消息;根据第一消息确定PC支持第一驱动配置信息,使用第一驱动配置信息进行网络适配。
优选地,根据第一消息确定PC支持第一驱动配置信息,包括:在发送第一驱动配置信息后的第一预定时长内,接收到第一消息,则确定PC支持第一驱动配置信息。
优选地,如果在发送第一驱动配置信息后的第一预定时长内没有接收到第一消息,该方法包括:将多种驱动配置信息中第一驱动配置信息的下一个驱动配置信息发送给PC,直到确定PC支持当前发送的驱动配置信息,使用当前发送的驱动配置信息进行网络适配。
优选地,在将多种驱动配置信息中的一个驱动配置信息发送给PC前,该方法还包括:确定多种驱动配置信息中只剩一个驱动配置信息未发送给PC,则直接使用该驱动配置信息进行网络适配。
优选地,多种驱动配置信息包括:以太网控制传输模式(ECM)的驱动配置信息、远程网络驱动程序接口规范(RNDIS)的驱动配置信息,以及移动宽带接口模式(MBIM)的驱动配置信息。
根据本发明的另一方面,提供了一种网络适配装置,包括:发送模块,用于将预先配置在网卡中的多种驱动配置信息中的第一驱动配置信息发送给个人电脑(PC);接收模块,用于接收PC返回的响应于第一驱动配置信息的第一消息;第一处理模块,用于根据第一消息确定PC支持第一驱动配置信息,使用第一驱动配置信息进行网络适配。
优选地,第一处理模块包括:确定单元,用于在发送模块发送第一驱动配置信息后的第一预定时长内接收到第一消息的情况下,确定PC支持第一驱动配置信息。
优选地,该装置还包括:第二处理模块,用于在发送模块发送第一驱动配置信息后的第一预定时长内没有接收到第一消息的情况下,将多种驱动配置信息中第一驱动配置信息的下一个驱动配置信息发送给PC,直到确定PC支持当前发送的驱动配置信息,使用当前发送的驱动配置信息进行网络适配。
优选地,该装置还包括:第三处理模块,用于在第二处理模块将多种驱动配置信息中的一个驱动配置信息发送给PC之前确定多种驱动配置信息中只剩一个驱动配置信息未发送给PC的情况下,直接使用该驱动配置信息进行网络适配。
优选地,多种驱动配置信息包括:以太网控制传输模式(ECM)的驱动配置信息、远程网络驱动程序接口规范(RNDIS)的驱动配置信息,以及移动宽带接口模式(MBIM)的驱动配置信息。
通过本发明,采用在USB虚拟数据卡中集成了多种驱动配置信息(ECM/RNDIS/MBIM三种驱动配置信息),并将多种驱动配置信息枚举给PC使PC确定出能够支持的驱动配置信息,从而实现网络适配的方式,解决了相关技术中在使用USB虚拟网卡接入无线网络时USB虚拟网卡可能无法匹配于PC的操作系统而导致无法实现网络适配的问题,进而达到无需用户手动操作、提高了用户体验的效果。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例为了在通过USB虚拟网卡接入网络的过程中实现自动适配多种不同操作系统所能支持的驱动,提供了下述的网络适配方法及装置。首先,对本发明的思路进行简要介绍:由于主机的操作系统一般为WINDOWS操作系统,LINUX操作系统,及MAC(苹果)操作系统,对于WINDOWS操作系统其本身支持RNDIS和WINDOWS 8支持MBIM驱动,而对于LINUX操作系统其本身支持以太网控制模块(Ethernet Control Model,ECM)驱动,并且部分还支持RNDIS驱动,MAC系统支持能够支持ECM驱动。因此,本发明实施例根据主机操纵系统本身自带驱动的特点,提供了以下的网络适配方案。
图1是根据本发明实施例的网络适配方法流程图,如图1所示,该方法主要包括以下步骤(步骤S102-步骤S106):
步骤S102,将预先配置在网卡中的多种驱动配置信息中的第一驱动配置信息发送给个人电脑(PC)。
步骤S104,接收PC返回的响应于第一驱动配置信息的第一消息。
步骤S106,根据第一消息确定PC支持第一驱动配置信息,使用第一驱动配置信息进行网络适配。
在本发明实施例中,在根据第一消息确定PC支持第一驱动配置信息的时候,可以采用以下方式:在将第一驱动配置信息发送给PC之后,可以设置一个定时器,同时为定时器设定一个预定时长(该预定时长可以使用多次),如果在发送第一驱动配置信息后的第一预定时长内接收到第一消息,则确定PC支持第一驱动配置信息。
当然,在实际应用中,如果在发送第一驱动配置信息后的第一预定时长内没有接收到第一消息,还可以将多种驱动配置信息中第一驱动配置信息的下一个驱动配置信息发送给PC,直到确定PC支持当前发送的驱动配置信息为止(这个期间,可能会使用到第二预定时长、第三预定时长等等,只要确定出PC支持的驱动配置信息时就停止继续发送的过程),使用当前发送的驱动配置信息进行网络适配。
在本发明实施例中,在将多种驱动配置信息中的一个驱动配置信息发送给PC之前,可以确定多种驱动配置信息中还剩下几个没有发送给PC,如果确定多种驱动配置信息中只剩一个驱动配置信息未发送给PC,则直接使用该驱动配置信息进行网络适配,这是因为,预先配置在网卡中的多种驱动配置信息已经穷尽了当前的所有操作系统能够支持的驱动信息的种类,当多种驱动配置信息中只剩下一个驱动配置信息时,证明前面所有已经发送过的驱动配置信息都不是当前操作系统能够支持的,那么剩下的这一个肯定是当前操作系统能够支持的,所以,当只剩下一个驱动配置信息的时候,就直接将驱动配置信息发送给PC即可进行网络适配了。
在本发明实施例中,多种驱动配置信息可以包括:以太网控制传输模式(ECM)的驱动配置信息、远程网络驱动程序接口规范(RNDIS)的驱动配置信息,以及移动宽带接口模式(MBIM)的驱动配置信息。
下面以多种驱动配置信息仅包括ECM的驱动配置信息、RNDIS的驱动配置信息,以及MBIM的驱动配置信息三种驱动配置信息为例,简要说明基于本发明实施例的一个优选实施方式(当然,并不局限于此):
首先,USB虚拟网卡是能够支持ECM/RNDIS/MBIM等多种配置(即预先在USB虚拟网卡中已经存储了ECM/RNDIS/MBIM三种驱动配置信息)的。
接来下进行USB虚拟网卡与主机(即上述PC)之间的枚举操作:USB虚拟网卡在与主机枚举过程中,先将自身保存的对应第一驱动配置信息(可以是ECM/RNDIS/MBIM中的任何一个,不受顺序限制)发送给主机,同时启动第二配置(基于第二驱动配置信息)切换倒计时(这里可以采取通过定时器设定预定时长的方式实施);当USB虚拟网卡接收到主机返回第一配置(对应于第一驱动配置信息)的请求信息时,表明主机支持当前第一配置,USB虚拟网卡则进行第一配置下的网络适配,同时可以关闭已经启动的第二配置的倒计时。需要说明的是,请求信息类似于上述第一消息,但二者并不完全相同,上述第一消息是PC在判断自己是否支持第一配置驱动配置信息后反馈的支持或不支持消息,在PC支持第一驱动配置信息时,发送指示支持的第一消息,在PC不支持第一驱动配置信息时,发送指示不支持的第一消息。而在实际应用中,可以这样实施:当PC判断支持第一驱动配置信息时,直接向USB虚拟数据卡返回一个请求使用第一驱动配置信息的请求消息;当PC判断不支持第一驱动配置信息时,则可以不进行任何操作了,目前的相关技术中多采用这种方式,这仅是一种优选的方式而已,所以并不对本发明实施例给出的方式造成任何限定
当第二配置切换倒计时时间到达时,如果仍未收到PC返回的请求消息,则USB虚拟网卡可以将保存的第二驱动配置信息发送给主机,同时可以启动第三配置的切换倒计时;
接下来的过程类似于第一驱动配置信息的发送和使用过程:当USB虚拟网卡接收到主机返回第二配置的请求信息时,表明主机支持当前第一配置,则USB虚拟网卡可以进行第二配置网络适配,同时可以关闭已经启动的第三配置的倒计时;当第二配置切换倒计时时间到达时,如果仍未收到PC返回的请求消息,则USB虚拟网卡可以将保存的第三驱动配置信息发送给主机,因为存在三种驱动配置信息,此时的第三驱动配置信息已经是最后一个没发送给PC的驱动配置信息了,所以直接将第三驱动配置信息发送给PC后无需使用定时器的切换倒计时了,PC收到它后直接进行网络适配即可。
使用该实施方式,在由RNDIS和大规模存储(MASS STORAGE)设备组合的复合设备的网络适配过程中,完全能够满足常用操作系统(WINDOWS/MAC/LINUX)下USB网络设备的接口需要,避免不同操作系统兼容性问题,从而实现网络适配,并达到了提高用户体验的效果。
下面结合图2和图2所示的优选实施例对上述网络适配方法进行进一步的说明。
在本优选实施例中,USB虚拟网卡本身保存有多套驱动配置信息,即第一驱动配置信息、第二驱动配置信息和第三驱动配置信息等,在USB虚拟网卡与主机枚举的过程中,首先将第一驱动配置信息发送给主机,并在接收到主机返回的请求信息时,进行网络适配,当未接收到主机返回的请求信息时,将第二驱动配置信息发送给主机,并进行网络适配,如还不能适配,继续上报第三驱动配置信息。
首先说明一下USB虚拟网卡的具体配置信息:第一驱动配置信息为MBIM驱动的配置信息,第二驱动配置信息为RNDIS驱动的配置信息,第三驱动配置信息为ECM驱动的配置信息。
请参考图2,图2是根据本发明优选实施例的网络适配流程图,如图2所示,该流程主要包括以下步骤(步骤S202-步骤S214):
步骤S202,主机上电,USB虚拟网卡在与主机枚举过程中,将自身保存的MBIM驱动的配置信息发送给主机,表明USB虚拟网卡当期处于MBIM驱动配置状态;
其中,该MBIM驱动的配置信息包括:MBIM设备描述符信息、配置描述符信息,以及接口和端点描述信息等。
步骤S204,在枚举的同时,开启跳转到第二配置的定时器,判断在该定时器的定时时间长度内是否接收到主机返回的主机MBIM请求信息,当判断结果为是时,进行步骤S206,否则,进行步骤S208;
步骤S206,当接收到主机返回的请求信息时,此时可以认为PC主机的驱动已经安装完成,USB虚拟网卡被激活,则可以进行MBIM网络适配,处理收到的MBIM各种请求,完成MBIM网卡设备的网络适配;
步骤S208,将自身保存的RNDIS驱动的配置信息发送给主机,表明USB虚拟网卡当前处于RNDIS驱动配置状态,同时启动跳转到第三配置的定时器;
其中,该RNDIS驱动的配置信息包括:RNDIS设备描述符信息、配置描述符信息,以及接口和端点描述信息等。
步骤S210,判断在该定时器的定时时间长度内是否接收到主机返回的RNDIS OID对象标示符请求信息,当判断结果为是时,进行步骤S212,否则,进行步骤S214;
步骤S212,当接收到主机返回的请求信息时,此时可以认为PC主机驱动已经安装完成,USB虚拟网卡被激活,则可以进行RNDIS OID网络适配,处理收到的OID各种请求,完成RNDIS网卡设备的网络适配;
步骤S214,将自身保存的ECM驱动的配置信息发送给主机,此时可以认为PC主机驱动已经安装完成,USB虚拟网卡被激活,表明当前虚拟网卡处于ECM网卡状态;
其中,该ECM驱动的配置信息包括:RNDIS设备描述符信息、配置描述符信息,以及接口和端点描述信息等,完成ECM网卡设备网络适配工作。
在本发明实施例中,充分利用操作系统对USB虚拟网卡中的MBIM、RNDIS和ECM网络协议驱动支持的特点,实现了USB虚拟网卡接入网络中的免驱方式。由于本发明实施例提供的USB虚拟网卡接入网络的方式为免开发驱动方式,因此,可以避免在主机上安装相应驱动,以及操作系统或驱动升级而带来的繁琐操作,以及兼容性的问题。
采用上述实施例提供的网络适配方法,可以将预先存储在USB虚拟数据卡中中的多种驱动配置信息(ECM/RNDIS/MBIM三种驱动配置信息)枚举给PC,使得PC最终确定出能够支持的驱动配置信息,从而实现网络适配的方式,解决了相关技术中在使用USB虚拟网卡接入无线网络时USB虚拟网卡可能无法匹配于PC的操作系统而导致无法实现网络适配的问题,进而达到无需用户手动操作、提高了用户体验的效果。
图3是根据本发明实施例的网络适配装置的结构框图,该装置用以实现上述实施例提供的网络适配方法,如图3所示,该装置主要包括:发送模块10、接收模块20以及第一处理模块30。其中,发送模块10,用于将预先配置在网卡中的多种驱动配置信息中的第一驱动配置信息发送给个人电脑(PC);接收模块20,连接至发送模块10,用于接收PC返回的响应于第一驱动配置信息的第一消息;第一处理模块30,用于根据第一消息确定PC支持第一驱动配置信息,使用第一驱动配置信息进行网络适配。
图4是根据本发明优选实施例的网络适配装置的结构框图,如图4所示,在本实施例的优选网络适配装置中,第一处理模块30可以进一步包括一个确定单元32,用于在发送模块10发送第一驱动配置信息后的第一预定时长内接收到第一消息的情况下,确定PC支持第一驱动配置信息。
在实际应用中,该装置还可以包括:第二处理模块40,用于在发送模块10发送第一驱动配置信息后的第一预定时长内没有接收到第一消息的情况下,将多种驱动配置信息中第一驱动配置信息的下一个驱动配置信息发送给PC,直到确定PC支持当前发送的驱动配置信息,使用当前发送的驱动配置信息进行网络适配。
优选地,在实际应用中,该装置还可以进一步包括:第三处理模块50,用于在第二处理模块40将多种驱动配置信息中的一个驱动配置信息发送给PC之前确定多种驱动配置信息中只剩一个驱动配置信息未发送给PC的情况下,直接使用该驱动配置信息进行网络适配。
其中,在本优选实施例中,多种驱动配置信息可以包括:以太网控制传输模式(ECM)的驱动配置信息、远程网络驱动程序接口规范(RNDIS)的驱动配置信息,以及移动宽带接口模式(MBIM)的驱动配置信息。
当然,在实际应用中,该装置的实现形式并不完全局限于此,例如,也可以采用如图5所示的实现方式:
请参考图5,图5是根据本发明一个优选实施例的网络适配装置的结构示意图,如图5所示,该优选网络适配装置主要包括:控制模块52、第一驱动模块54、第二驱动模块56和第三驱动模块58。其中,
控制模块52,用于与主机枚举过程中,将当前的驱动的配置信息发送给主机,开启定时器,判断在该定时器的定时时间长度内是否接收到主机返回的请求信息,根据接收的请求信息,判断是否切换将下一配置信息发送给主机。
在该优选装置中,控制模块52中包含USB虚拟网卡接口,具体地,该控制模块52的主要功能还包括:完成到主机的注册,以及对USB虚拟网卡中的软、硬件进行控制,是主机侧操作系统与USB虚拟网卡交互的桥梁,并且还可以再根据主机操作系统的不同在各个驱动模块间进行切换。
第一驱动模块54,用于保存第一驱动的配置信息,此实例为MBIM信息,MBIM是基于NCM 2.0,微软公司首先在WINDOWS 8系统上支持的网络驱动规范。
第二驱动模块56,用于保存第二驱动的配置信息,此实例为RNDIS信息,RNDIS网络设备驱动,用来支持微软制定的RNDIS协议的主机,例如WINDOWS操作系统(OperatingSystem,简称为OS),例如WIN 98、XP、VISTA、WIN7、WIN CE,和部分LINUX OS。
第三驱动模块58,用于保存第三驱动的配置信息,此实例为ECM信息,ECM网络设备驱动,用来支持LINUX操作系统和MAC OS。
在该优选装置中,每个驱动模块通过TCP/IP网络协议,与主机侧通过控制模块实现数据的发送和接收。需要说明的是,具体驱动模块配置信息都是网络接口驱动的协议规范,在此本实例没有详细给出。
另外,PC机对USB虚拟网卡识别过程是由操作系统自动完成的。主机操作系统对USB虚拟网卡的识别,是根据主机与USB虚拟网卡在进行枚举的过程中,USB虚拟网卡枚举的一系列自身的配置信息实现的,例如,设备描述符信息和配置描述符信息等。当主机操作系统支持该相应的驱动时,则主机的操作系统根据USB虚拟网卡的设备描述符信息和配置描述符信息,为USB虚拟网卡安装相应的驱动,具体地,操作系统根据USB热插拔的机制,以完成加载驱动文件,达到为USB虚拟网卡安装相应的驱动的目的,并且当操作系统安装相应驱动后,主机向USB虚拟网卡发送特定请求信息,从而进一步读取和配置USB虚拟网卡侧的网络信息。
本发明实施例提供的上述优选网络适配装置位于USB虚拟网卡设备内,此实例给出的处理个虚拟网络切换顺序仅为一个优选实施实施方式,实际应用完全可以不局限于MBIM-RNDIS-ECM的先后顺序,也可以是其他任意组合的顺序,例如,可以是RNDIS-MBIM-ECM的顺序。
当然,在此优选网络适配装置的基础上,完全可以组成一个包括该优选网络适配装置的网络适配系统,由于其改进在于该优选网络适配装置,以下只对该系统做简要的介绍(不再结合具体的附图进行说明):
USB虚拟网卡,支持多种USB虚拟网卡设备,自身能够保存多种配置。在与主机枚举过程中,将自身保存的第一驱动的配置信息发送给主机,同时开启定时器,判断在该定时器的定时时间长度内是否接收到所述主机返回的请求信息,当接收到所述主机返回的请求信息时,进行网络适配,否则,将自身保存的对应下一驱动的配置信息发送给主机,并进行网络适配。
主机,在与USB虚拟网卡枚举过程中接收USB虚拟网卡发送配置信息,根据自身设备驱动是否支持,加载相应驱动,这一过程是由操作系统自动完成的,无需设备干涉。
当然,在实际应中,并不局限于该优选系统,完全可以根据本发明的思想对该优选系统进行改进。
采用上述实施例提供的网络适配装置,可以将预先存储在USB虚拟数据卡中中的多种驱动配置信息(ECM/RNDIS/MBIM三种驱动配置信息)枚举给PC,使得PC最终确定出能够支持的驱动配置信息,从而实现网络适配的方式,解决了相关技术中在使用USB虚拟网卡接入无线网络时USB虚拟网卡可能无法匹配于PC的操作系统而导致无法实现网络适配的问题,进而达到无需用户手动操作、提高了用户体验的效果。
上述优选方法实施例、优选装置实施例以及优选系统实施例分别提供了一种优选网络适配方法、系统及装置。在该优选适配方法中,在USB虚拟网卡在与主机枚举过程中,首先将自身支持的驱动的配置信息发送给主机,并判断在计时器的定时时间长度内是否接收到主机返回的请求信息,当接收到该请求信息时,进行网络适配,否则,将下一配置信息发送给主机,并进行网络适配。由于在上述优选实施例中USB虚拟网卡在自身配置了相应的驱动,并且该驱动为主机操作系统本身支持的,因此,可以在通过USB虚拟网卡接入网络过程,主机中无需安装驱动,方便、快捷的实现无线网络接入。
从以上的描述中,可以看出,本发明实现了如下技术效果:可以将预先存储在USB虚拟数据卡中的多种驱动配置信息(ECM/RNDIS/MBIM三种驱动配置信息)枚举给PC,使得PC最终确定出能够支持的驱动配置信息,从而实现网络适配的方式,解决了相关技术中在使用USB虚拟网卡接入无线网络时USB虚拟网卡可能无法匹配于PC的操作系统而导致无法实现网络适配的问题,进而达到无需用户手动操作、提高了用户体验的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。