专利名称:一个蓝牙系统同时支持多组蓝牙网络连接的方法
技术领域:
本发明涉及蓝牙设备之间组成IP网络的方法,尤其涉及蓝牙设备组成多组个人局域网络PAN(或Ad-hoc临时网络)的方法,隶属于通信领域。
背景技术:
蓝牙(Bluetooth),它工作在2.4GHz的ISM(Industrial ScientificMedical)频段。蓝牙是特别为诸如笔记本计算机、移动电话和个人数字助理(PDA)等小型移动设备计划的。按照蓝牙特别兴趣小组(SpecialInterest Group,简称SIG)制定的蓝牙规范,蓝牙的基本网络结构是由一个主控设备和最多七个从属设备组成的微微网(Piconet),主控设备和从属设备之间采用时分多址(TDMA)的方式进行通信。通过集成蓝牙通讯模块,各种设备可以低成本连接起来。蓝牙设备之间通过全球唯一的蓝牙设备地址(Bluetooth Device Address)建立蓝牙的异步连接(Asynchronous Connection-Less Link)和同步连接(SynchronousConnection-Oriented Link)以传输字符数据和语音数据。
蓝牙个人局域网络应用(Personal Area Networking Profile,简称PAN)提供了使两个或多个蓝牙设备(Bluetooth-enabled device)形成或者参与个人局域网络(PAN)的规范,使它们得以互用和交换IP数据。PAN描述了蓝牙设备可扮演的3个角色网络接入点(NAP)、群组网络(GN)和个人局域网用户(PANU)。下文中,“NAP”设备和“GN”设备分别指提供NAP服务、GN服务的设备;PANU设备指作为PANU角色,连接别的NAP或GN设备的蓝牙设备。
NAP设备允许一个或多个蓝牙个人局域网用户PANU设备无线的接入,形成蓝牙个人局域网络,交换IP数据;NAP设备通常还有一个到达另一个网络的连接;NAP作为蓝牙网络和另一个网络(如10BASE-T、GSM等)之间的网桥、代理服务器或者路由器,从而使得蓝牙网络里的蓝牙设备可以通过NAP设备访问另一个网络;连接到NAP设备的蓝牙网络里的其他蓝牙设备之间不能直接通讯,需要通过NAP设备通讯。
GN设备允许一个或多个蓝牙个人局域网用户PANU设备无线的接入,形成蓝牙个人局域网络,交换IP数据;GN设备是该独立的蓝牙个人局域网络的中心节点。连接到GN设备的蓝牙网络里的其他蓝牙设备之间不能直接通讯,需要通过GN设备通讯。GN蓝牙网络本身并不提供访问其它网络的能力。
PANU设备可以主动连接NAP设备或者GN设备,作为NAP和GN设备的客户端接入NAP设备或者GN设备,组成蓝牙个人局域网络;NAP设备或者GN设备也可以主动发起连接,将PANU设备加入到蓝牙个人局域网络中。
在蓝牙规范中,NAP和GN只能作为提供服务的设备,PANU可以作为提供服务的设备也可以作为客户端访问其它蓝牙设备的GN或NAP服务。PANU可以通过服务发现协议(Service Discovery Protocol,简称SDP)发现NAP服务和GN服务,作为客户加入NAP或GN形成的蓝牙网络。PANU也可以广告PANU服务,NAP和GN通过SDP发现PANU服务,然后NAP或者GN发起到PANU的连接,将PANU加入到NAP或者GN形成的蓝牙网络中。蓝牙设备形成或参与到个人局域网后,可以与蓝牙网络中的其它蓝牙设备交换IP数据,相互访问。
蓝牙PAN规范的定义使得相互独立的蓝牙设备可以形成蓝牙网络,相互共享资源。对于复杂的系统,如Windows/Linux或其他嵌入式系统,系统可以支持GN,也可以支持NAP,或者可以作为PANU加入别的网络。
目前这些支持蓝牙PAN的系统的通常作法是,系统在一个时刻只能加入或形成一个蓝牙网络,即系统的角色同时只能为GN、NAP或PANU其中之一。因此,当一个蓝牙设备加入一个蓝牙网络之后,如果需要与蓝牙网络之外的其它蓝牙设备交换IP数据时,必须先退出现有的蓝牙网络才能与其它蓝牙设备形成新的蓝牙网络,这导致其与原有蓝牙网络中蓝牙设备的一切操作以及数据流都被中断。用户使用不便,而且不能充分发挥蓝牙的作用。
发明内容
本发明的首要目的是为了解决以上问题,所提出的一个蓝牙系统同时支持多组蓝牙网络连接的方法,包括不同组蓝牙网络具有不同的网卡应用策略,不同组的蓝牙网络连接具有不同的IP分配策略,本蓝牙系统同时注册运行多个蓝牙个人局域网的服务,不同组的蓝牙网络独立运行。
具体的,一个蓝牙设备同时支持多组蓝牙网络,与不同组的蓝牙网络中的蓝牙设备共享资源。为了实现这一情形,系统网卡应用策略、IP分配策略、PAN服务注册、BNEP连接的维护策略都需要进行合理的设计。
多组蓝牙网络连接是指一个蓝牙系统同时参与多组蓝牙网络,即系统作为NAP形成多个蓝牙网络,每个NAP形成一个蓝牙网络;作为GN形成一个蓝牙网络;同时作为PANU加入一个蓝牙网络;应用NAT互连物理网络和本蓝牙系统作为GN形成的蓝牙网络。各个蓝牙网络同时相互独立的运行。
网卡应用策略方面,不同组的蓝牙网络具有不同的网卡应用策略,网卡包括物理网卡和蓝牙虚拟网卡。本蓝牙系统作为NAP形成的蓝牙网络应用物理网卡,物理网卡设置为混杂模式,作为网桥互连蓝牙网络和物理网络,根据MAC地址来转发数据。本蓝牙网络中的蓝牙设备可以通过该物理网卡访问外部网络。将网卡设置为混杂模式,使得即使目标地址不是本地(广播地址除外)的数据包也不会被网卡的硬件底层过滤丢弃掉,这是能够应用物理网卡同时参与物理网络和蓝牙网络,并作为两者之间的网桥的一个基础。
如果有多个物理网卡,本蓝牙系统可以同时启动多个NAP服务,作为NAP形成多组蓝牙网络,不同组的蓝牙网络应用不同的物理网卡,这样形成的不同组蓝牙网络里的蓝牙设备可以通过相应的物理网卡访问外部网络。
本蓝牙系统作为GN形成蓝牙网络和作为PANU加入蓝牙网络时共用同一蓝牙虚拟网卡。
上述的网卡应用策略突破了现在通常采用的一个PAN角色参与一个蓝牙网络时应用一个蓝牙虚拟网卡的局限。
IP分配策略方面,为避免访问不同网络时IP冲突,不同的网络(包括物理网络和蓝牙网络)使用不同的IP网段。所有参与网络的设备都必须有一个IP地址,IP地址是唯一的,标识且只能标识一个网络里的一台设备。当一个设备参与多个网络时,为了使本设备能区分其参与的不同组蓝牙网络里的设备,不同组蓝牙网络里的不同设备必须具有不同的IP。为了实现这一目的,本蓝牙系统采取的策略是本蓝牙系统参与的不同组网络(包括物理网络和蓝牙网络)采用不同的IP网段。这样同一网络里的设备具有同一网段里的不同IP;而不同网络里的设备的IP所在的网段不同,也不会发生IP冲突,这样本蓝牙系统参与每个网络的每个设备的IP都是唯一标识的,互不冲突。
需要特别说明的是,本蓝牙作为NAP形成的蓝牙网络应用物理网卡,物理网卡作为网桥连接蓝牙网络和物理网络,因此该蓝牙网络和物理网络应用同一IP网段。
本蓝牙系统作为GN形成的蓝牙网络和作为PANU形成的蓝牙网络共用的蓝牙虚拟网卡拥有两个IP地址,且这两个IP地址在不同的IP地址网段;一个IP地址应用于本蓝牙系统作为GN)成的蓝牙网络,另一个IP地址应用于本蓝牙系统作为PANU加入的蓝牙网络。
本蓝牙系统同时支持多组蓝牙网络,即同时运行了多个PAN服务,为了使得其它的蓝牙设备能够通过服务发现协议(service discoverprotocol,简称SDP)发现本蓝牙系统提供的PAN服务,必须将其运行的各个PAN服务区分。蓝牙协议规定每个服务都对应于一条服务记录(service record),此记录中包含了服务的描述信息;服务记录由一系列服务属性(service attribute)组成,每个服务属性描述服务的一个特征,用户(或客户端)可利用这些信息来访问所需要的服务。NAP、GN和PANU是三个不同的PAN服务,具有不同的服务类型,从而将NAP、GN和PANU服务区分开;同时运行多个NAP服务形成多个蓝牙网络时,其服务类型都是NAP服务,为了区分不同的NAP服务,可以将服务记录里的协议描述符列表(ProtocolDescriptorList)属性用到的PSM(protocol/service multiplexer)值设置为不同的值,或者在服务记录里的扩展字段增加标识字段。通过这种方式,本蓝牙系统同时注册多个PAN服务供其它蓝牙设备通过SDP协议发现并使用。
根据PAN规范,NAP或者GN与PANU之间建立了BNEP连接,BNEP封装以太网数据并通过BNEP连接在NAP或者GN与PANU之间传递数据。为了使不同组蓝牙网络保持相互独立,本蓝牙系统采用的策略是本蓝牙系统应用于不同组蓝牙网络的BNEP连接保持相互独立,应用于一个蓝牙网络的BNEP连接的状态改变不影响应用于其它蓝牙网络的BNEP连接。
根据蓝牙规范,以太网的有效负荷(payloads)不需要任何修改就可以通过BNEP协议在蓝牙设备之间交换数据。因此,作为以太网的有效载荷的IP数据,不论是IPv4(Internet Protocol Version 4)数据包还是IPv6(Internet Protocol Version 6)数据包都可以通过BNEP连接传输。所以本发明同时适合于IPv4和IPv6。
本蓝牙系统形成或者参与的各个蓝牙网络里的网络数据包的处理、转发是相互独立的。
本蓝牙系统作为NAP形成的蓝牙网络里的网络数据包,只在本蓝牙网络及其应用的物理网卡连接的物理网络之间转发处理,这种转发通过物理网卡作为网桥来实现,与其它蓝牙网络和物理网络相互独立。
本蓝牙系统作为GN形成的蓝牙网络和作为PANU加入的蓝牙网络里的网络数据包,只在本蓝牙网络里转发处理,与其它蓝牙网络和物理网络相互独立。特别需要说明的是,虽然本蓝牙系统应用同一蓝牙虚拟网卡参与以上两个蓝牙网络,当两个蓝牙网络的网络数据包的转发相互独立。
本发明的另一个方面是应用NAT互连物理网络和本蓝牙系统作为GN形成的蓝牙网络。
网络地址转换NAT是一个IETF(Internet Engineering Task Force,Internet工程任务组)标准,NAT是将IP数据包中一组IP地址和端口转换为另一个IP地址及其端口的技术,使得IP数据包可以从一个网络通过NAT设备桥接转发到另外一个网络。
应用NAT互连本蓝牙系统作为GN形成的蓝牙网络和物理网络时,物理网络应用物理网卡,该物理网卡可以是一个独立的物理网卡,也可以是同时被本蓝牙系统作为网络接入点(NAP)形成的蓝牙网络应用的物理网卡。
NAT互连的物理网络和本蓝牙系统作为NAP形成的蓝牙网络应用同一块物理网卡时,NAT互连的蓝牙网络通过NAT,而本蓝牙系统作为NAP形成的蓝牙网络通过物理网卡作为网桥,同时与同一个物理网络互连,但两组蓝牙网络相互独立。
蓝牙网络里的蓝牙设备访问物理网络或者通过其访问外部网络的方法是应用NAT,将蓝牙网络里蓝牙设备的IP地址和端口转换为物理网卡的IP和一个端口,也就是说,蓝牙网络里的所有蓝牙设备与外部网络通讯时共享一个IP地址,即物理网卡的IP地址。上述转换对终端用户是透明的,也就是说,终端用户不需要了解上述转换,就象直接跟外部网络通讯一样。
这种互连蓝牙网络和物理网络的方式,与作为NAP形成蓝牙网络时,NAP设备作为网桥连接蓝牙网络和物理网络的方式不一样。NAP设备互连的方式,蓝牙网络和物理网络必须在同一个网段。因此一个蓝牙网络与不同的物理网络互连时,蓝牙网络里所有蓝牙设备的IP地址必须重新获取。蓝牙网络里的IP地址的获取通过物理网络的DHCP服务器自动分配;如果物理网络中没有DHCP服务器,只能手工为蓝牙网络里的每个蓝牙设备指定IP地址,这种手工指定还必须保证不与物理网络中任一个已经使用的IP地址冲突。这种IP分配方式对以移动性为重要特征的蓝牙设备来说很不方便。
NAT互连蓝牙网络和物理网络的方式,蓝牙网络和物理网络的IP地址分配相互独立,因此一个蓝牙网络与不同的物理网络互连时不需要修改蓝牙网络里蓝牙设备的IP地址。
本蓝牙系统应用NAT互连的蓝牙网络里的网络数据包,只在NAT互连的蓝牙网络和物理网络之间转发处理,这种转发通过NAT实现,与其它蓝牙网络和物理网络相互独立。
可以根据需要决定是否应用NAT互连本蓝牙系统作为GN形成的蓝牙网络和物理网络,应用或者停止NAT不会影响本蓝牙系统运行的各种PAN服务和参与的各组蓝牙网络里的数据传输。
通过上述方法,一个蓝牙系统可以同时支持多组蓝牙网络连接,各组蓝牙网络之间相互独立,互不影响。该蓝牙系统可以同时加入到一个别的GN设备形成的蓝牙网络;自己提供GN接入,别的设备加入本系统作为GN形成的蓝牙网络;同时提供多个NAP接入(限制仅取决于本地所连接的物理网络的个数);同时也可以将GN网络桥接到任何一个物理网络。用户在想加入或组建GN蓝牙网络时,不必停止自己的NAP接入服务,这样提高了本地蓝牙网络的使用的方便性和易用性。
通过借助附图详细描述本发明的具体实施例,将有助于理解本发明的目的和优点。其中图1是示例的NAP连接的场景图示。
图2是示例的GN连接的场景图示。
图3是本发明的蓝牙系统同时支持多组蓝牙网络连接的示例结构模块图。
具体实施例图1是示例的NAP连接的场景图示。
其中,网络接入点104与LAN105间有线连接,LAN105连接到因特网106。计算机101、102和PDA PANU设备103通过NAP设备104访问网络105和106。
图2是示例的GN连接的场景图示。
设备201提供GN服务,作为piconet的主设备运行。计算机202、203、204、205、206和PDA207、208作为从设备,加入蓝牙局域网络。这七个从设备代表了蓝牙网络中通常情况下的有效从设备的数量。
图3是本发明的蓝牙系统同时支持多组蓝牙网络连接的示例结构模块图。
本架构遵循PAN背景中多层蓝牙网络协议堆栈。关键的设计是,当一个蓝牙设备支持多组蓝牙网络时的网卡应用策略;蓝牙系统作为NAP形成蓝牙网络时应用物理网卡,此时将物理网卡设置为混杂模式。本实施架构中,当有多个物理网卡时,可以同时启动多个NAP,即NAP1306应用物理网卡NIC1309,NAPn307应用物理网卡NICn311;GN303和PANU304共用蓝牙虚拟网卡305,蓝牙虚拟网卡305具有两个IP地址,一个用于GN形成的蓝牙网络,另一个用于PANU参与的蓝牙网络。NAT312互连GN303形成的蓝牙网络和物理网卡309参与的物理网络。
一个蓝牙虚拟网卡获取两个IP地址的方法依赖于系统,以windows为例,一种方法是直接为一个网卡指定两个IP地址。另一种方法是,当蓝牙虚拟网卡305拥有IP1参与GN303形成的蓝牙网络,而又需要另一个IP2供PANU304参与另一蓝牙网络时,先暂时禁用网卡,再立即启用网卡,参与另一蓝牙网络,这样从另一蓝牙网络的DHCP服务器分配一个新的IP2地址用于新加入的蓝牙网络;然后把原来的IP1添加给蓝牙虚拟网卡305。这样IP1应用于GN303形成的蓝牙网络,IP2应用于PANU304参与的蓝牙网络。而两个蓝牙网络相互独立。
这样一个蓝牙设备同时支持多个NAP、一个GN和一个PANU角色,建立多个蓝牙网络。对物理网卡和蓝牙虚拟网卡的处理方式是不同的,蓝牙网卡是虚拟网卡驱动,并没有对应的网卡硬件;物理网卡有实际的物理网卡硬件,且将物理网卡设置为混杂模式,这样物理网卡能同时参与物理网络和蓝牙网络并作为两者之间的桥转发数据。上层的应用程序313通过不同的网卡与不同的蓝牙网络和物理网络进行交互。各个蓝牙网络之间相互独立。
在蓝牙规范中,BNEP302封装上层网络协议,如IPv4和IPv6数据包。底层协议301包括蓝牙射频、基带、链路管理协议(LMP)和逻辑链路控制和适应协议(L2CAP)。射频层、基带层和LMP属于蓝牙的硬件模块。射频层通过2.4GHz无需授权的ISM频段的微波,实现数据位流的过滤和传输。基带层负责跳频和蓝牙数据及信息帧的传输。LMP负责连接的建立和拆除以及链路的安全和控制。L2CAP完成数据拆装、服务质量控制和协议复用等功能,是其它上层协议实现的基础。
本蓝牙系统作为NAP306形成的蓝牙网络里的网络数据包,只在该蓝牙网络及其应用的物理网卡308连接的物理网络之间转发处理,这种转发通过物理网卡308作为网桥来实现,与其它蓝牙网络和物理网络相互独立。
本蓝牙系统作为PANU304加入的蓝牙网络里的网络数据包,只在该蓝牙网络里转发处理,与其它蓝牙网络和物理网络相互独立。
本蓝牙系统作为GN303形成的蓝牙网络里的网络数据包,只在该蓝牙网络和物理网卡308参与的物理网络之间转发处理,这种转发通过NAT312来实现,与其它蓝牙网络和物理网络相互独立。
虽然本发明是参考其实施例示出和描述的,但本领域的普通技术人员应该理解,在不脱离附属的权利要求书所限定的本发明的精神和范围的情况下,可以进行形式和细节的各种改变。
权利要求
1.一种同一蓝牙系统同时支持多组蓝牙网络连接的方法,包括不同组蓝牙网络具有不同的网卡应用策略,不同组蓝牙网络连接具有不同的IP地址分配策略,本蓝牙系统同时注册运行多个蓝牙个人局域网(Personal Area Networking)的服务,不同组的蓝牙网络独立运行。
2.如权利要求1所述的方法,其中所述的蓝牙网络其特征在于通过蓝牙网络封装协议(Bluetooth Network Encapsulation Protocol,简称BNEP),系统作为群组网络(Group Network,简称GN)或者网络接入点(Network Access Point,简称NAP)供其它蓝牙设备加入形成的微微网(piconet),或系统作为个人局域网用户(Personal AreaNetwork User,简称PANU)加入其它微微网,所形成的IP(InternetProtocol)数据网络。
3.如权利要求1所述的方法,其中所述的多组蓝牙网络连接其特征在于一个蓝牙系统同时参与多组蓝牙网络,即系统作为网络接入点(NAP)形成多组蓝牙网络,每个网络接入点(NAP)形成一个蓝牙网络;系统作为群组网络(GN)形成一个蓝牙网络;系统同时作为个人局域网用户(PANU)加入其它蓝牙设备形成的蓝牙网络。
4.如权利要求1所述的方法,还包括应用网络地址转换(NetworkAddress Translation,简称NAT)互连物理网络和本蓝牙系统作为群组网络(GN)形成的蓝牙网络。
5.如权利要求1所述的方法,包括本蓝牙系统在其支持的不同组蓝牙网络具有不同的网卡应用策略,网卡包括蓝牙虚拟网卡和各种物理网卡。
6.如权利要求1所述的方法,包括本蓝牙系统在其支持的不同组蓝牙网络中应用不同的IP分配策略,其特征在于,不同组蓝牙网络应用不同的IP(Internet Protocol)地址网段。
7.如权利要求1所述的方法,包括本蓝牙系统同时注册并且运行多个蓝牙个人局域网(PAN)服务,其特征在于,同时注册运行多个网络访问点(NAP)服务、一个群组网络(GN)服务和一个个人局域网用户(PANU)服务。
8.如权利要求1所述的方法,包括本蓝牙系统支持的不同组蓝牙网络连接应用相互独立的蓝牙网络封装协议(BNEP)连接,一组蓝牙网络的蓝牙网络封装协议(BNEP)连接的状态变化不影响其它组蓝牙网络连接。
9.如权利要求1所述的方法,包括不同组蓝牙网络相互独立的运行,一组蓝牙网络的状态变化、数据转发不影响其它组蓝牙网络。
10.如权利要求5所述,本蓝牙系统作为网络接入点(NAP)形成蓝牙网络时应用物理网卡,作为网桥(Bridge)连接蓝牙网络和物理网络,根据媒体访问控制(MAC)地址来转发数据。
11.如权利要求5所述,本蓝牙系统作为群组网络(GN)形成蓝牙网络和作为个人局域网用户(PANU)加入蓝牙网络时,共用同一蓝牙虚拟网卡。
12.如权利要求3、10和11所述,本蓝牙系统同时支持多组蓝牙网络时,其特征在于蓝牙系统作为网络接入点(NAP)形成多组蓝牙网络,不同的网络接入点(NAP)形成的不同的蓝牙网络应用不同的物理网卡,这样形成的不同组蓝牙网络里的蓝牙设备可以通过相应的物理网卡访问外部网络;蓝牙系统作为群组网络(GN)形成的蓝牙网络和作为个人局域网用户(PANU)加入的蓝牙网络共用同一蓝牙虚拟网卡。
13.如权利要求6和11所述,本蓝牙系统作为群组网络(GN)和个人局域网用户(PANU)共用的蓝牙虚拟网卡拥有两个IP地址,且这两个IP地址在不同的IP地址网段;一个IP地址应用于本蓝牙系统作为群组网络(GN)形成的蓝牙网络,另一个IP地址应用于本蓝牙系统作为个人局域网用户(PANU)加入的蓝牙网络。
14.如权利要求9、11和13所述,蓝牙虚拟网卡同时应用于本蓝牙系统作为群组网络(GN)形成的蓝牙网络和作为个人局域网用户(PANU)加入的蓝牙网络,但两个蓝牙网络的状态变化、数据转发相互独立。
15.如权利要求4所述,其中所述的网络地址转换(NAT)互连的物理网络其特征在于应用物理网卡参与该物理网络,且该物理网卡是一个独立的物理网卡或者同时被本蓝牙系统作为网络接入点(NAP)形成的蓝牙网络应用的物理网卡。
16.如权利要求4所述,网络地址转换(NAT)互连蓝牙网络和物理网络时,蓝牙网络和物理网络的IP分配策略相互独立,互不影响。
17.如权利要求9和10所述,本蓝牙系统作为网络接入点(NAP)形成的蓝牙网络里的网络数据包,只在本蓝牙网络及其应用的物理网卡连接的物理网络之间转发处理,这种转发通过物理网卡作为网桥(bridge)来实现,与其它蓝牙网络和物理网络相互独立。
18.如权利要求9、11和14所述,本蓝牙系统作为个人局域网用户(PANU)加入的蓝牙网络里的网络数据包,只在本蓝牙网络里转发处理,与其它蓝牙网络和物理网络相互独立。
19.如权利要求4、9、14和15所述,本蓝牙系统应用网络地址转换(NAT)互连的蓝牙网络里的网络数据包,只在网络地址转换(NAT)互连的物理网络和本蓝牙系统作为群组网络(GN)形成的蓝牙网络之间转发处理,这种转发通过网络地址转换(NAT)实现,与其它蓝牙网络和物理网络相互独立。
全文摘要
本发明公开了一种同一蓝牙系统同时支持多组蓝牙网络连接的方法。所述的方法包括同一设备上不同的PAN角色参与不同的蓝牙网络连接,而不同的蓝牙网络连接应用不同的连接实现方式。
文档编号H04L29/12GK1956398SQ20051008673
公开日2007年5月2日 申请日期2005年10月28日 优先权日2005年10月28日
发明者杨松华, 赵磊, 田丹 申请人:艾威梯软件技术(北京)有限公司