OBEX即对象交换(Object Exchange)协议,是IrOBEX的简称,IrOBEX协议是红外数据协会IrDAInfrared Data Association)开发的用于红外数据链路上数据对象交换的会话层协议。同样作为小范围无线通信系统的蓝牙采纳了该协议,这使得原先基于红外链路的OBEX应用有可能方便地移植到蓝牙上来或在两者之间进行切换。

OBEX协议是一种紧凑、高效的二进制协议,它的功能类似于HTTP协议。为了支持各种不同平台,OBEX的设计者不指定特定的传输数据类型,只定义传输对象(Object)。它可以是从文件到商业电子卡片,从命令和控制字到数据库等任何类型。OBEX对系统资源的要求比较低,适用于低端设备,同时它具有灵活的数据处理功能和可扩展性,它允许在不增加系统资源要求的情况下,提供如安全、压缩等方面的特性。

下图给出了OBEX在蓝牙体系中的层次以及基于OBEX的一些应用。在蓝牙系统中,OBEX的作用同样是为了数据交换,典型的应用是用于商业电子卡片,以及使用OBEX进行多设备的同步应用,比较常见的文件传输应用也可以通过OBEX来实现。

参考下图,OBEX在蓝牙系统中被映射到RFCOMMTCP/IP层之上,其中OBEX over TCP/IP是作为可选项出现的。需要说明的是,由于在蓝牙体系结构中,OBEX被映射到的是面向连接的底层协议,因此蓝牙仅支持面向连接的OBEX应用,在这一点上,IrDA同时支持面向连接和无连接的应用。

OBEX协议本身分为两部分:数据对象模型和会话协议。对象模型包括了将要传输的数据对象的各种信息以及数据对象本身。该模型的建立完全基于各种标准的或者用户自定义的可分析的信息头(Headers),类似于HTTP1.1中定义的信息头概念。会话协议规定了设备间的数据传输过程,OBEX使用基于二进制分组结构的客户机/服务器模式作为该过程的模型。

 

  

8.1 OBEX在蓝牙体系中的层次