原文地址:Bluetooth协议栈学习之SDP作者:BigSam78

作者: Sam (甄峰) sam_code@hotmail.com

SDP(service discovery protocol:服务发现协议)提供了一个方法,让应用程序检测哪些服务是可用的并探测这些可用服务的特性。

服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。这个协议定义了客户如何能够寻找基于特定属性的服务而不让客户知道可用服务的任何知识。SDP提供发现新服务的方法,在当客户登录到正在操作的蓝牙服务器的一个区域时是可用的时。

SDP提供了一套SDP server和SDP client之间的通讯方法。 SDP server维护着一个服务条目列表,这个列表存放着SDP server对应的服务以及服务特性。每个服务条目对应一个单独的服务。SDP client可以通过发送请求得到SDP server维护的这个服务条目list.

如果SDP client或者联系于client之上的应用程序决定使用某个service,则打开一个针对此服务的连接到服务提供者去使用此服务。SDP只是提供侦测service以及特性的方法,但不提供如何使用这些service的方法.

每个bluetooth device最多有一个SDP server. 如果某个device只作为client.则不需要拥有SDP server.而一个bluetooth device可以同时为SDP client和SDP server.

服务条目(Service Record):

一个service就是某个实体提供一些信息,执行某种动作,或控制资源代表另一个实体。一个service可以由软件,硬件或软硬件结合提供。

SDP server维护的service条目包含在service record中。

SDP server中,每个service record由一个32位数与别的record区别。注意,只是在这个SDP server内。

当SDP server添加或删除某个service时,不会主动提供给client.

Service 属性:

每个属性描述一个service的特征。

service属性包含两部分:

attribute ID + attribute Value.

属性ID是一个16bit的值,用来和Service record内的其它属性区别开来。

Service Class:

每个server是 service class的一个实例。service class定义了service(此class的实例)的每个特性。属性对应attribute ID,属性value的格式,

每个service classs也指定为一个的标识符。这个标识符被包含在属性ServiceClassIDList中。并描述为UUID。

Search for service:

service search功能允许SDP client得到包含在service record 中的service 属性。

可以使用属性的Universally Unique Identifiers1 (UUIDs)得到属性。

[转载]Bluetooth协议栈学习之SDP相关推荐

  1. CanOpen协议栈学习笔记1-帧格式,SYNC和NMT报文介绍

    前面已经记录过can协议,后面开始CanOpen协议栈学习.其实协议栈代码已经看过了,而且已经在开发板上跑过了.这里回过头来,重新看下之前遇到的坑,记录下学习笔记.下面均以标准帧为例 文章目录 1.C ...

  2. 转载Shell 数组学习

    转载Shell 数组学习 linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结 ...

  3. linux协议栈学习 第七节 GRO的实现

    linux协议栈学习 第七节 GRO的实现 GRO (generic receive offload) 概述: GRO是在协议栈接收报文时进行减负的一种处理方式,该方式在设计上考虑了多种协议报文.主要 ...

  4. linux 协议栈学习 第八节 链路层GRO的处理

    linux 协议栈学习 第八节 链路层GRO的处理 链路层的接收匹配函数__napi_gro_receive(napi, skb): 该函数对报文进行匹配,并不合并报文. 匹配规则必须同时满足以下两个 ...

  5. 搞笑的文章(转载)工作学习累时休息看看

    搞笑的文章(转载)工作学习累时休息看看 春眠不觉晓,聊天心情好. 夜来美媚声,作梦心情好. ------------------------ ☆你所想呼叫的[缘份]已经关机了啊☆ ☆你所想查询的[感情 ...

  6. 教大家S40/java所有玩机技巧,喜欢请转载 加QQ657752021学习更多技术

    教大家S40/java所有玩机技巧,喜欢请转载 加QQ657752021学习更多技术 2012年01月11日 加QQ657752021 学习更多网络技术 希望大家支持橙音 [b]自己打造高品质音乐:[ ...

  7. Bluetooth协议学习

    蓝牙协议学习 背景知识 蓝牙(Bluetooth)是一个短距离无线传输的技术,工作在免证的ISM频段.最初名字为Wibree,在90年代由Nokia设计开发,随后转交给蓝牙特别兴趣小组(SIG)专门维 ...

  8. Linux 内核协议栈 学习资料

    终极资料 1.<Understanding Linux Network Internals> 2.<TCP/IP Architecture, Design and Implement ...

  9. Bluetooth技术学习笔记 ——GAP

    佛系学习,想学就学,不想学就不学. core_v5.0 vol 3. Part C GAP:Generic access profile,通用访问协议,定义了基本过程,包括设备发现,链路管理,配置,安 ...

最新文章

  1. linux一共有多少级别,简述linux的几个运行级别及其相应的含义。
  2. PermGen space错误解决方法
  3. 为什么Java进程使用的RAM比Heap Size大?
  4. android studio- java注释自己动手弄起来
  5. Selenium WebDriver中的TestNG侦听器及示例
  6. 如何在redhat8里使用gcc命令_如何使用who命令检查用户登录信息
  7. 前端-requests-flask对应关系 json
  8. 星河经纬加入会员可靠吗_珍爱网免费相亲可靠吗?女会员处境艰难红娘为她重拾勇气...
  9. UML类图(Class Diagram)中类与类之间的关系及表示方式
  10. 美赛论文Latex模板说明
  11. matlab遗传算法超出,matlab遗传算法提示索引超出范围
  12. MAXHUB会议平板的无线投屏怎么用?
  13. 计算机网络技术专业一体化课程方案,计算机网络技术课程革新中“一体化”模式的应用研究...
  14. 计算机的物理地址怎么写,电脑物理地址怎么查
  15. PHP 进阶:代码整洁之道
  16. 神武3进不去 服务器响应,windows7系统玩神武2卡机的解决方法
  17. mib文件导入mysql数据库_SNMP mib文件说明
  18. Kindle 推送教程:教你用电子邮箱推送电子书(Kindle伴侣)
  19. 大一学计算机心得,大一计算机学习心得范文
  20. java exception 乱码_java如何解决乱码问题

热门文章

  1. P3938 斐波那契
  2. 【VirtualBox】VirtualBox的桥接网络模式,为啥网络不稳定?
  3. 封装EF code first用存储过程的分页方法
  4. 推荐几个配色和图标网站
  5. @jsonignore的作用
  6. LPC1768的SPI通讯
  7. [活动通知]Nanjing GDG 2013年4月活动
  8. Atlas应用程序调试技巧
  9. leetcode之回溯backtracing专题2
  10. ibm量子计算机科学家,重磅!IBM发布全球首个独立商用量子计算机