蓝牙服务发现协议综述
摘要:蓝牙服务发现协议(SDP)是蓝牙系统的核心协议,也是蓝牙系统所有用户模式的基础。蓝牙技术提供低成本、近距离的无线通信,构成固定与移动设备通信环境中个人网络,使得近距离内各种信息设备能够实现无缝资源共享。蓝牙技术工作在全球通用的2.4GHz ISM(工业、科学、医学)频段,从而消除了“国界”的障碍。蓝牙的数据速率为1Mb/s。任意蓝牙设备一旦搜寻到另一个蓝牙技术设备,马上就可以建立联系,而无须用户进行任何设置,在无线电环境非常复杂的环境下,其优势更加明显。本文首先简要介绍Bluetooth的基本概念,然后对蓝牙服务发现协议的概念进行分析,并对SDP的研究方法提出了意见。
关键词:蓝牙;服务;发现;数据
Bluetooth Service Discovery Protocols
Abstract: Bluetooth Service Discovery Protocol (SDP) is the core Bluetooth protocol, the Bluetooth system is the basis for all user mode. Bluetooth technology provides low-cost, short-range wireless communications, fixed and mobile devices pose in the personal network communications environment, making all kinds of information devices within close range to achieve seamless sharing of resources. Bluetooth technology work in the global generic 2.4GHz ISM (industrial, scientific, medical) frequency band, thereby eliminating the "border" barriers. Bluetooth's data rate is 1Mb / s. Once the search for any Bluetooth device to another Bluetooth device, we can immediately establish contact, without any user settings, in the radio environment is very complex environment, its advantages become more pronounced. This article first introduces the basic concepts of Bluetooth, and then the concept of the Bluetooth service discovery protocol analysis, and research methods proposed SDP views
Keyword:Bluetooth; services; discovery; data。
一、蓝牙基本概念
蓝牙(bluetooth)是近年来提出的一种近距离、低功耗无线通信技术.利用这种技术可以把现有的移动电话、PC 及其外设等各种电子设备的电缆接口用无线取代。蓝牙的发射功率微小,芯片成本低,实现容易,便于推广 [1]。随着1998年蓝牙特殊利益集团(SIG,Speeial Interest Group)的成立,特别是 1999年底推出了蓝牙技术规范 1.0b以后,蓝牙的一系列优点在全球引起各方面专业人士的极大兴趣。目前蓝牙技术仍在积极发展和完善中,其最新版本是v1.1,公布于2001年2月[2][3]。
蓝牙系统收/发频率选在2.4GHz这个ISM(工业/科学/医疗)频段上,并使用了跳频扩频技术(FH—ss)[4]。若干蓝牙设备可以组成网络使用。它的通信控制靠其协议栈进行。蓝牙协议栈底层包括链路管理(Link Manager)协议和基带(Baseband)控制部分。中间层包括逻辑链路控翩协议和适配协议L2CAP(Logieal Link Control and Adaptation Protoco1)等。服务发现协议简称SDP(Service Discovery Protoco1)位于L2CAP之上,它是以L2CAP为基础向应用程序提供一种机翩,用来发现网络中可用的服务。
SDP(服务发现协议)是蓝牙协议体系中的核心协议,它是蓝牙系统的重要组成部分,是所有用户模式的基础。在蓝牙系统中,客户(Client)只有通过服务发现协议才能获得设备信息、服务信息及服务特征,才能在此基础上建立相互问的连接。SDP提供发现有效服务的方法,并确定有效服务的特征。由于蓝牙利用无线方式连接,因此蓝牙设备能否正常接通还取决于其射频有效范围,我们称这种范围为蓝牙环境。蓝牙环境中的服务发现与传统网络环境下的服务发
现有着很大的区别。
SDP的基本功能包括:为客户提供由服务属性搜索服务的功能}提供由服务类发现服务的功能;提供服务浏览功能;提供设备有效或服务有效的判决机制;提供设备失效或服务失效的判决机制}提供唯一识别服务、服务类和服务属性的功能}不经第三方发现另一个设备上的服务;能够用于简单的设备;提供增量获取服务信息机制}支持服务发现信息的高速缓存,提高发现进程的效率或速度;能够独立传输;能
二、SDP 技术特性
1、客户机与服务器的交互方式
服务发现协议涉及的是 SDP 客户和服务器之间的通信同题,如图l 所示.服务发现机制能向客户机提供发现服务器上存在的服务及服务属性的方法。这里的服务属性包括服务类型和所需服务的协议信息。
服务器提供服务记录列表,它描述了服务器提供的全部服务.其中的每条服务记录包含此项服务的全部信息。户通过发送SDP 请求获取服务记录。SDP 提供了发现服务及其属性(包括相关服务接八协议)的机耐,但不提供使用这些服务的机制。因此,当客户或与客户相关的应用程序需要使用某项服务时,必须开辟一条单独的通路连接到服务提供者。
个蓝牙设各既可以作SDP 服务器,又可以作SDP 客户。当蓝牙设各都是客户时,就不需要SDP 服务器。当由一个设备上的多个应用程序提供服务时,SDP 服务器可以代表所有的服务提供者处理这些服务请求信息I 类似地,一个 SDP 客户也可以代表多个客户应用程序进行服务查询。
SDP 客户与SDP 服务器的射频距离大小决定了服务器的有效性。当一个服务器有效时,潜在的客户必须从SDP 之外得到通知,以便客户查询服务器提供的服务。当服务器远离射频有效范围或服务器失效时,SDP 不提供明确的通知,然而客户机可以利用SDP 轮询服务器,如果得不到响应,就可以推断该服务器已经无效。 2、服务记录
服务是一种实体,它能够提供信息、执行操作或控制那些代表着另一实体的资源。它可以由软件、硬件或二者的组合来实现。一项服务记录保存有单项服务的全部信息,它由一张服务属性表组成,如图2所示。
服务记录Service Record
图二 一条服务记录
服务记录旬柄是一个32
位无符号整数,它唯一地标识SDP 服务器提供的服务。需要特别指出的是,旬柄的唯一性是指它在某一个SDP 服务器中是唯一的。例如,服务器s1和服务器s2都有代表同一服务的相同服务记录,但是,它们的服务记录旬柄是各自独立的,S1中的该句柄值在 S2上毫无意义。
在服务器上增加或删除一项服务记录时,SDP 不提供通知机制。当通过逻辑链路控制和 适配协议(L2CAP)连接服务器时,如果服务记录没有从服务器中删除,它所对应的服务记录句柄将一直有效I 当某项服务记录已经从服务器中删除,如果仍然使用以前的服务记录句柄向服务器提出骶务请求,服务器将返回一个表时 句柄无效
的出错信息。在L2CAP 连接期间,服务器必须但证没有重复使用的句柄。在ServiceDatabaseState 属性值不变的情况下,服务记录句柄通过逐次的L2CAP 连接保持有效。
代表服务器本身的句柄值0x00000000在研有SDP 服务器上都是有效的。服务记录句柄值保留范围:OxO0000001~0x0000FFFF 。 3、蓝牙的服务属性
服务属性有两部分组成:属性标识符和属性值.如图3
所示。每一项服务属性描述服务的一个特性。例如:ServiceClasslDList
服务类标识符列表;
ProtocolDescriptorList ,指出可能使用的协议栈;ServiceID .唯一识别服务的标识符;RoviderName ,服务提供者的名字;IconURL ,服务图标的URLfServiceName .服务名字符串。
服务属性(Service Attribute)
图3服务属性的组成
服务属性可分为通用属性和专用属性两种。通用属性适用于所有服务记录,专用属性由服务提供者定义。
4、属性标识符(属性ID ) 属性m 采用16位无符号整数,以便区别于服务记 录
中的其他服务属性。服务类属性由属性ID 和属性值 组成。属于同一服务类的所有服务将赋予特定的属性ID 以相同的含义。属性m 通常用一个数据元表示,如图4 所示。