首页> 中国专利> 使用附件协议经由无线传输来在主机和附件设备之间进行通信

使用附件协议经由无线传输来在主机和附件设备之间进行通信

摘要

本发明公开了一种附件,该附件可与主机设备诸如便携式电子设备进行无线通信。针对有线通信开发的现有附件协议可不经修改地加以使用,并且连接两个设备的无线网络可提供连接两个设备的传输或信道。建立无线信道可涉及两个设备的积极参与。例如,主机设备可创建并识别待由附件使用的虚拟端口,然后附件可在该虚拟端口上发起通信。主机设备可被配置为在各种特定条件下检测到无线网络上的附件时自动连接到特定附件。还提供了对附件和主机设备之间的附件协议通信进行加密。

著录项

  • 公开/公告号CN105393564A

    专利类型发明专利

  • 公开/公告日2016-03-09

    原文格式PDF

  • 申请/专利权人 苹果公司;

    申请/专利号CN201480032349.1

  • 申请日2014-06-05

  • 分类号H04W8/00(20060101);H04W76/02(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人周磊

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 14:35:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-19

    授权

    授权

  • 2016-04-06

    实质审查的生效 IPC(主分类):H04W8/00 申请日:20140605

    实质审查的生效

  • 2016-03-09

    公开

    公开

说明书

相关专利申请的交叉引用

本专利申请要求于2014年6月4日提交的名称为“Communication BetweenHostandAccessoryDevicesUsingAccessoryProtocolsviaWireless Transport”的美国专利申请14/296,302的优先权,该专利申请要求于2013 年6月7日提交的美国临时专利申请61/832,650的优先权。所述两个专利 申请的相应公开全文以引用方式并入本文。

背景技术

本公开整体涉及在主机设备和附件设备之间进行通信,并且更具体地 涉及使用附件协议经由无线传输来在主机和附件设备之间进行通信。

便携式电子设备可存储并提供对数据对象的交互式用户访问,该数据 对象包括多种格式的媒体文件(音频、视频、图像)、文档、原图文件、 个人数据(例如,联系人、日历)、表格等。因此,用户可操作便携式电 子设备以收听音乐、观看电影、查看并管理个人信息等。在一些情况下, 便携式电子设备还可创建数据对象,例如通过音频或视频录制、使用静物 相机拍摄照片、收集并处理用户输入等。

一些便携式电子设备还可与各种附件进行通信以增强与设备的用户交 互。例如,便携式电子设备可连接至具有比便携式电子设备更大的显示器 或更强大的扬声器或更方便的用户界面的附件。此类附件可用于呈现存储 于便携式电子设备上的媒体内容和其他信息并与其进行交互。

发明内容

本发明的特定实施例涉及允许附件(也称为附件设备)与主机设备(也 称为主机)诸如便携式电子设备进行无线通信。针对有线通信开发的现有附 件协议可不经修改地加以使用,并且连接两个设备的无线网络可提供连接两 个设备的传输或信道。建立无线信道可涉及两个设备的积极参与。例如,如 下所述,在主机设备和附件之间建立无线信道的前提可包括主机设备创建并 识别待由附件使用的虚拟端口,然后附件可在该虚拟端口上发起通信。主机 设备可被配置为在无线网络上检测到附件时自动(即,无需用户干预)连接 到特定附件。可以匹配用户预期的方式来管理自动连接功能。在一些实施例 中,可在附件协议内选择性地加密附件和主机设备之间的附件协议通信。

以下具体实施方式连同附图将提供对本发明的实质和优点的更好的理 解。

附图说明

图1示出了根据本发明的一个实施例的主机设备和附件。

图2是根据本发明的一个实施例的包括主机设备和附件的系统的简化 框图。

图3是示出了根据本发明的一个实施例的主机设备内的过程的进一步 细节的框图。

图4是根据本发明的一个实施例的用于将附件连接到网络的过程的流 程图。

图5是根据本发明的一个实施例的用于针对附件协议通信建立信道的 过程的流程图。

图6是根据本发明的一个实施例的用于建立附件协议通信信道的过程 的流程图。

图7是根据本发明的一个实施例的用于测试连接的过程的流程图。

图8是根据本发明的一个实施例的用于确定是否使用链路层加密的过 程的流程图。

具体实施方式

本发明的特定实施例涉及允许附件(也称为附件设备)与主机设备(也 称为主机)诸如便携式电子设备进行无线通信。针对有线通信开发的现有附 件协议可不经修改地加以使用,并且连接两个设备的无线网络可提供连接两 个设备的传输或信道。建立无线信道可涉及两个设备的积极参与。例如,如 下所述,在主机设备和附件之间建立无线信道的前提可包括主机设备创建并 识别待由附件使用的虚拟端口,然后附件可在该虚拟端口上发起通信。主机 设备可被配置为在无线网络上检测到附件时自动(即,无需用户干预)连接 到特定附件。可以匹配用户预期的方式来管理自动连接功能。在一些实施例 中,可在附件协议内选择性地加密附件和主机设备之间的附件协议通信。

图1示出了根据本发明的一个实施例的主机设备100和附件102。

主机设备100例如可以是手持设备,诸如媒体播放器、智能电话或个 人数字助理;平板电脑;膝上型计算机;台式计算机;或能够与其他设备 发送数据并进行通信的任何其他电子设备。在一些实施例中,主机设备 100可以是便携式设备(便携式设备是指容易由用户从一个地方带到另一 个地方以在不同地方使用的设备),但这不是必需的。在所示实例中,主 机设备100是平板电脑,该平板电脑具有控制按钮108以及由边框106包 围的显示区域104。主机设备100可具有无线通信接口110。(尽管接口 110由图1中的外部天线表示,但应当理解,接口110的任何天线或其他 硬件部件的全部或部分可物理地位于主机设备100的外壳内部。)无线通 信接口110可支持由主机设备300限定的虚拟端口和各种外部设备之间的 数据传输。可使用常规无线协议或其他无线协议。在一些实施例中,主机 设备100还可提供物理连接,例如经由多管脚插座连接器(未示出)。

附件102可以是能够与主机设备100进行交互的任何附件,诸如扬声 器底座或扬声器系统、媒体控制台、汽车音响主机、按摩椅、灯、车库门 开启器等。附件102可具有各种用户界面部件,诸如扬声器112、显示器 114和用户可操作控件116。附件102可具有无线通信接口118。(尽管接 口118由图1中的外部天线表示,但应当理解,接口118的任何天线或其 他硬件部件的全部或部分可物理地位于附件102的外壳内部。)无线通信 接口118可支持由附件102限定的虚拟端口和各种外部设备之间的数据传 输。可使用常规无线协议或其他无线协议。在一些实施例中,附件102还 可提供物理连接,例如经由多管脚插头连接器(未示出)。

例如,使用射频通信技术诸如Wi-Fi或蓝牙、近场通信技术、红外通 信等,无线接口110和118可支持在主机设备100和附件102之间进行无 线通信。在一些实施例中,例如也可使用在两个设备中可能存在的补充连 接器来提供有线信号路径。在一些实施例中,可在主机设备100与附件 102之间同时建立多个通信路径或信道,其中选择性地在不同路径上路由 不同类型的信息。

如插页120中所示的,主机设备100可提供协议栈,以支持与附件 102进行通信。协议栈可包括可针对主机设备来实现功能的各种应用程序 和操作系统程序122,该功能包括可与附件102进行互操作的功能。会话 层124可居中于程序122和更低层之间以优化程序122和附件102之间的 不同类型的信息的通信。链路层126可从会话层324分离或隐藏数据传输 和接收的细节,并且端口128可发射和接收信号(经由有线信道和/或无线 信道)以实现数据和/或消息140的通信。

如插页130中所示的,附件102可提供协议栈,以支持与主机设备 100进行通信。这种协议栈可与主机侧的协议栈类似或相同。在这种情况 下,系统功能132可实现于硬件和/或软件中(例如,实现为应用程序或操 作系统程序、附件固件和/或专用逻辑电路)。会话层134可居中于功能 132和更低层之间以优化系统功能132和主机设备100之间的不同类型的 信息的通信。链路层136能够从会话层134分离或隐藏数据传输和接收的 细节,端口138能够发射和接收信号(经由有线信道和/或无线信道)以实 现数据和/或消息140的通信。通信可以是双向的。

主机侧协议栈和附件侧协议栈可实施相同的附件协议,该相同的附件 协议可定义消息和/或分组格式、消息参数和响应于协议的具体消息待采取 的动作或待产生的效果。下文描述附件协议和协议栈的实例。

应当理解,图1的主机设备和附件是示例性的,并且变型和修改是可 能的。主机设备和/或附件可实现任何功能的组合。在一些实施例中,主机 设备和/或附件可使用例如多个物理端口或逻辑端口同时连接到多个设备。

图2是根据本发明的一个实施例的包括主机设备202和附件204的系 统200的简化框图。在该实施例中,主机设备202(例如,实施图1的主机 设备100)可提供计算能力、传送能力和/或媒体回放能力。主机设备202 可包括处理子系统210、存储设备212、用户界面214、网络接口216和附 件输入/输出(I/O)接口218。主机设备202还可包括其他部件(未明确示 出),诸如电池、电力控制器和可操作以提供各种增强能力的其他部件。

存储设备212可例如使用磁盘、闪存存储器或任何其他非暂态存储介 质或介质的组合来实现,并且可包括易失性介质30和/或非易失性介质。在 一些实施例中,存储设备212可存储数据对象,诸如音频文件、视频文 件、图像或原图文件、有关用户的联系人的信息(姓名、地址、电话号码 等)、有关用户的预定约会和事件的信息备注和/或其他类型的信息。在一 些实施例中,存储设备212还可存储待由处理子系统210执行的一个或多 个应用程序(例如,视频游戏程序、个人信息管理程序、媒体回放程序 等)和/或一个或多个操作系统程序或其他固件,以实现并支持各种设备层 级的能力,包括支持根据附件协议与附件进行通信的协议栈。

用户界面214可包括输入设备诸如触末板、触摸屏、滚轮、点击式转 盘、拨号盘、按钮、开关、小键盘、麦克风等;以及输出设备诸如视频屏 幕、指示灯、扬声器、耳机接口等,连同支持性电子器件(例如,数模转 换器或模数转换器、信号处理器等)。用户可操作用户界面214的输入设 备以调用主机设备202的功能,并且可经由用户界面214的输出设备来查 看和/或收听来自主机设备202的输出。

处理子系统210可被实现为一个或多个集成电路,例如一个或多个单 核或多核微处理器或微控制器,这些微处理器或微控制器的实例在本领域中 是已知的。在操作中,处理子系统210可控制主机设备202的操作。在各种 实施例中,处理子系统210可响应于程序代码来执行各种程序,并且可维护 多个同时执行的程序或过程。在任何给定时间处,待执行的一些或全部程序 代码可驻留在处理子系统210和/或存储介质诸如存储设备212中。

通过合适的编程,处理子系统210可以为主机设备202提供各种功 能。例如,处理子系统210可控制无线收发器(例如,网络接口216和/或 附件I/O接口218的一部分)以检测可无线连接到主机设备202的附件 (例如,附件204)。响应于检测到来自附件204的连接,处理子系统210 可发起各种会话,以用于与附件204(或其他附件)进行通信,并且此类 通信可包括对从附件204接收的消息进行解析。处理子系统210还可设置 并维护链路层,以用于管理会话和一个或多个附件之间的通信。下文描述 了会话和链路层的实例。处理子系统210还可执行其他程序以控制主机设 备202的其他功能,包括可存储于存储设备212中的应用程序;在一些实 施例中,这些应用程序可包括导致与附件204进行交互的指令,并且处理 子系统210可使用协议栈(例如,如下所述)来执行此类交互。

网络接口216可为主机设备202提供语音和/或数据通信能力。在一些 实施例中,网络接口216可包括用于访问无线语音和/或数据网络(例如, 使用蜂窝电话技术、高级数据网络技术诸如3G或EDGE、Wi-Fi(IEEE 802.11系列标准)或其他移动通信技术,或它们的任何组合)的射频(RF) 收发器部件;用于短范围无线联网(例如,使用蓝牙标准)的部件;支持 专有无线网络技术诸如定制网状网络、直接无线链路的部件;GPS接收器 部件;和/或其他部件。在一些实施例中,除了无线接口,网络接口216可 提供有线网络连接(例如以太网)。网络接口216可使用硬件部件(例 如,驱动电路、天线、调制器/解调器、编码器/解码器,以及其他模拟信号 处理电路和/或数字信号处理电路)与软件部件的组合来实现。

附件I/O接口218可允许主机设备202与各种附件进行通信。例如,附 件I/O接口218可支持到计算机、外部键盘、扬声器底座或媒体回放站、数 字相机、无线电调谐器、车载娱乐系统或音响主机、外部视频设备、存储卡 阅读器等的连接。在一些实施例中,附件I/O接口218可支持无线通信(例 如,经由Wi-Fi、蓝牙或其他无线传输)。可将与网络接口216相同的无线 收发器硬件用于联网和附件通信两者;例如,如下所述,可将Wi-Fi网络或 其他无线网络用作用于附件协议消息的传输。此外,在一些实施例中,附件 I/O接口218可包括连接器,诸如与各种和产品以及支 持电路中使用的连接器对应的连接器。因此,附件I/O接口218可支持多个 通信信道,并且给定附件可使用这些信道中的任一个信道或全部信道。

附件204(例如,实现图1的附件102)可包括控制器230、用户界面 设备232、存储介质233、其他特定于附件的硬件234和主机I/O接口 236。附件204表示可与主机设备进行互操作的一大类附件,并且此类附件 在能力、复杂性和形状因数方面可能有很大不同。各种附件可包括图2中 未明确示出的部件,包括但不限于具有固定或可移除存储介质的存储设备 (磁盘、闪存存储器等);视频屏幕、扬声器或用于连接到外部音频/视频 设备的端口;相机部件,诸如镜头、图像传感器和用于该图像传感器的控 件(例如,孔径,缩放,曝光时间、帧速率等);用于记录音频的麦克风 (单独地或与视频录制结合)等。此外,一些附件可提供可连接至另一个 附件并且与其进行通信的另外的接口(未示出)。

控制器230可包括例如执行程序代码以便执行与附件204相关联的各 种功能的一个或多个单核或多核微处理器和/或微控制器。例如,在附件204 结合有用户可操作控件(例如,图1的控件116)的情况下,控制器230可 解释用户对控件的操作并且作为响应调用附件202的功能;在一些情况下, 所调用的功能可包括向主机设备202发送信息和/或从主机设备接收信息。 控制器230还可实施协议栈以支持根据附件协议与主机设备进行通信。

用户界面232可包括用户可操作输入设备诸如触摸板、触摸屏、滚 轮、点击式转盘、拨号盘、按钮、开关、小键盘、麦克风等;以及输出设备 诸如视频屏幕、指示灯、扬声器、耳机插孔等,连同支持性电子器件(例 如,数模转换器或模数转换器、信号处理器等)。根据特定附件202的具体 实施,用户可操作用户界面232的输入设备来调用附件202的功能。

存储介质233可包含任何类型的数据存储介质,包括但不限于磁盘、 闪存存储器、或任何其他非暂态存储介质、或介质的组合,并且可包括易 失性介质和/或非易失性介质。存储介质233可用于存储待由控制器230执 行的程序代码、从主机设备202接收的数据对象、以及可在附件204的操 作中生成和/或使用的任何其他数据或指令。在一些实施例中,存储介质 233可仅包括易失性存储装置,例如对于可点对点地通过从另一设备接收 代码或经由网络来引导的附件而言。

特定于附件的硬件234可包括可存在于附件204中以启用其功能的任 何其他部件。例如,在各种实施例中,特定于附件的硬件234可包括使用 固定或可移除存储介质的一个或多个存储设备;GPS接收机;网络接口; 电源和/或电源管理电路;环境传感器(例如,温度传感器、压力传感器、 加速度计、化学传感器等)等等。应当理解,可通过提供合适的特定于附 件的硬件234来支持任何类型的附件功能。

主机I/O接口236可允许附件204与主机设备202进行通信。在一些 实施例中,主机I/O接口236可支持无线通信(例如,经由Wi-Fi、蓝牙或 其他无线传输),并可包括合适的收发器和信号处理电路以及软件或固 件。此外,在一些实施例中,主机I/O接口236可包括与包括在主机设备 202中的连接器直接配对的连接器,诸如与各种和产 品中所使用的连接器互补的连接器。

附件204可以是与主机设备202进行交互的任何电子装置。在一些实 施例中,附件204可通过对主机设备202或远程用户界面的操作来提供远程 控制,该远程用户界面可同时包括输入控件和输出控件(例如,用于显示从 主机设备202获得的当前状态信息的显示屏)。在各种实施例中,附件204 可控制主机设备202的任何功能,并且还可从主机设备202接收数据和/或 控制信号。在其他实施例中,主机设备202可控制附件204的操作,诸如从 附件204的存储介质检索所存储的数据,由并入附件204中的相机发起图像 捕获操作等。在一些实施例中,附件204可根据需要使用相同协议或不同协 议与主机设备202以及一个或多个其他设备同时具有通信信道。

应当理解,本文所述的系统配置和部件是示例性的,并且变型和修改 是可能的。主机设备和/或附件可能具有本文并未明确描述的其他能力(例 如,移动电话、全球定位系统(GPS)、宽带数据通信、互联网连接等)。

此外,尽管本文参考特定块描述了主机设备和附件,但应当理解,定 义这些块是为了描述的方便,而并非旨在暗示部件部分的特定物理布置。 此外,各个块不必对应于物理上不同的部件,并且可使用相同物理部件来 实施多个块的各个方面。块可被配置为执行各种操作,例如通过对处理器 进行编程或提供合适的控制电路,并且根据获得初始配置的方式,各个块 可以是可重新配置的或不可重新配置的。可在包括使用电路和软件的任何 组合来实现的电子设备的各种装置中实现本发明的实施例。

主机设备202的附件I/O接口218和附件204的主机I/O接口236允许 主机设备202与附件204连接并且随后与附件204断开连接。如本文所 用,每当在主机设备和附件的相应接口之间建立专门针对附件协议通信指 定的通信信道时主机设备和附件“连接”,并且当该信道终止时“断开连 接”。此类连接可经由例如具有配对连接器的直接物理连接;间接物理连 接例如经由电缆;和/或无线连接例如经由Wi-Fi或蓝牙来实现。在一些实 施例中,用于附件协议通信的通信信道可支撑于另一种传输(例如,有线 功率传输或无线功率传输)上,或者可包括另一种协议(例如,HTTP或 HTTPS协议)内部的附件协议通信的隧穿。

在一些实施例中,主机设备和附件可在连接的同时通过根据“附件协 议”交换消息和数据来进行通信,附件协议可以是主机设备制造商的专利 或是由其开发的开放协议(例如,由AppleInc.开发的iPod附件协议 (“iAP”))。例如,可使用由相关I/O接口提供的无线传输介质来传送 消息和数据。附件协议可很大程度或完全对传输无意识;即,无论提供信 道以经其交换附件协议消息和数据的传输介质(例如,有线或无线)或传 输层级协议如何都可使用相同的消息和数据格式。在一些情况下,附件协 议可指定操作序列以建立信道,这些操作中的一些或全部操作可以是特定 传输介质或传输层次协议所特有的。下面描述针对附件协议通信来建立无 线通信信道的操作序列的实例。

附件协议可定义可在主机设备202与连接至其上的附件诸如附件204 之间进行交换的消息的“全域”。消息格式可包括例如用于指示接下来是 消息代码的起始位或位序列,该起始位或位序列之后是可由接收人解释并 起作用的实际消息代码。至少一些消息代码可具有由协议定义的一个或多 个关联参数,并且除消息代码之外,消息可包括用于任何此类参数的值。 在一些情况下,协议还可规定在未接收到与消息代码相关联的特定参数的 情况下或在与消息代码一起接收到预期外参数的情况下的接收人的行为。 针对不同的消息,参数的数量可不同,并且在一些情况下,参数可具有可 变长度。在一些实施例中,消息代码可被定义成使得给定消息代码仅在一 个方向上有效。也可使用其他消息结构。

附件协议还可定义用于在链路层处对消息进行分组的格式。例如,附 件协议可规定使用一个或多个分组来发送消息,每个分组均具有标头和有 效载荷。标头提供基本信息(例如,如下所述,开始指示符;分组的长 度;分组序列编号;分组所关联的会话的标识符),而有效载荷提供消息 数据的全部或一部分。分组还可包括如本领域中已知的错误检测代码或错 误校正代码。链路层可跟踪发送分组和/或接收分组,并可实施操作以验证 分组递送。例如,对于所接收的分组,链路层可发送确认,从而执行错误 校验,并且如果检测到不可校正的错误,则请求重新传输。对于所传输的 分组,链路层可接收确认并可重新传输未确认的和/或接收设备针对其请求 重新传输的分组。这些和其他链路层操作可以是分组内容不知道的。

在一些实施例中,可将由附件协议定义的消息的全域在逻辑上分为 “通用”消息集和“可选”消息集。可要求使用附件协议的每个附件和每 个主机设备都至少支持通用消息集。该消息集可包括使得主机设备和附件 能够彼此识别和验证并且提供有关它们相应能力的信息的消息,其包括每 个所支持的可选集中的消息(如果有的话)。例如,一般的消息集可包括 附件可向主机设备发送以发起附件协议通信的“检测”消息,主机可响应 于检测消息向附件发送以请求附件识别其自身的“请求识别”消息(或检 测消息),以及附件可向主机发送以提供识别信息的识别消息(或消息序 列)。识别可包括例如提供关于附件设备的基本信息,诸如制造商、型号 名称、序列号、固件版本、设备类信息;在可选消息集中列出设备能够发 送和/或接收的特定消息;提供关于输入/输出能力、加密能力的信息;等 等。通用消息集还可包括主机设备可用于验证附件的所支持的身份和能力 (或反之亦然)的验证消息,并且如果验证不成功则可能阻止附件(或主 机设备)调用某些(或所有)可选消息。

可选消息集可包括与在给定附件中可能支持或可能不支持的各种功能 相关的消息。例如,可选消息集可包括允许附件识别主机设备的待调用的功 能的简单远程控制消息,可用于获得与在附件上复制主机设备的全部或部分 用户界面相关的信息(从而支持更高级的远程控制)的远程用户界面消息, 允许用户通过操作主机设备来控制附件中的无线电定时器和/或通过操作附 件来控制主机设备中的无线电调谐器的消息,促进数据对象在主机设备与附 件之间传输的消息,等等。可在附件协议中定义可选消息的任意组合,并且 不要求给定附件或主机设备支持所有(或甚至任一条)可选消息。

图3是示出了根据本发明的一个实施例的主机设备202(或主机设备 101)内的过程的进一步细节的框图。所示出的各种过程可对应于在图2的 处理子系统210中执行的程序,并可提供协议栈300(例如,实现图1的 插页120中的协议栈)。可在附件204中实现类似的协议栈(例如,实现 图1的插页130中的协议栈)。在一些实施例中,多个处理器芯片或单个 芯片内的多个处理器核可用于实现多个过程。处理器的一些或全部处理器 可以是执行软件和/或固件程序的可编程通用处理器,或者一些或全部处理 器可以是数字信号处理器、具有内置功能的状态机或它们的任何组合。可 将协议栈300用于附件协议通信。

物理传输302可包括天线、信号管脚、驱动器、数模转换器、编码 器、RF电路,以及可操作以通过物理传输来发射和接收信号的其他部件, 诸如管脚、电线、光纤、无线传输(例如,RF载波)等。具体细节取决于 传输,并且可使用常规传输或其他传输。在一些实施例中,物理传输302 实现Wi-Fi传输并能够在主机设备上的多个不同端口(包括图3中所示的 端口306)之间往返路由传入Wi-Fi通信和传出Wi-Fi通信;在同一主机设 备内,不同端口可具有不同的相关联的协议栈。因此,例如,物理传输 302可将来自已建立与端口306的附件协议连接的附件的任何传入通信路 由到端口306,并可将来自其他设备(例如,无线网络接入点诸如路由 器)的通信路由到主机设备的其他端口(图3中未示出)。建立与端口 306的连接的实例如下所述。

协议守护进程304可通过管理各种物理端口或虚拟端口来控制附件协议 通信。在一些实施例中,协议守护进程304可定义与已建立的与附件的每个 连接对应的端口306。尽管仅示出了一个端口306,但一些实施例允许多个 并发的与附件的连接,并且可存在连接到相同附件或不同附件的多个端口 306。每个端口306可与物理传输302(其可为针对不同端口306的相同传输 介质或不同传输介质)进行交互以将信号发送到连接于端口306上的附件并 从其接收信号。在一些情况下,可将虚拟端口306实现为软件对象(例如, 设备固件的一部分);在其他情况下,端口306可连接到合适的通信硬件或 与其关联。例如,为了便于无线通信,端口306可实现为软件对象,物理传 输302可选择性地将寻址到端口306的传入无线信号传送到该软件对象,并 且物理传输302可从该软件对象接收待无线传送到其他设备的传出信号。

协议守护进程304可提取经由接口306所接收的入站附件协议消息 (或任何其他活动端口)并将它们传送至协议管理器308。协议守护进程 304还可从协议管理器308接收出站附件协议消息并将这些消息提供至端 口306(或另一活动端口)以用于递送至连接至端口306的附件。

更具体地,协议守护进程304可包括可被实现为在合适的硬件上执行 的软件对象(例如,设备固件的一部分)的链路层310。在一些实施例 中,链路层310进行操作以创建、发送、接收和读取符合附件协议的分组 (例如,如上所述)。对于出站通信,链路层310可从协议管理器308接 收消息,将消息封装进一个或多个分组中,并经由端口306将分组发送至 物理传输302。在一些情况下,例如,在物理传输302实现Wi-Fi通信的 情况下,物理传输302可将链路层分组(或其部分)封装成符合Wi-Fi或 另一种无线协议的数据分组的有效载荷。

对于入站通信,链路层310可经由端口306接收分组,提取消息,并 将消息提供至协议管理器308以用于处理。在连接多个端口306的情况 下,链路层310可管理跨不同的所连接的端口306的通信交织,特别是在 多个端口共享共同的物理传输302(例如,使用所有端口所共用的天线的 无线传输)的情况下。

协议守护进程304可提供附加功能。例如,协议守护进程304可维护 自动连接列表307,该列表包含针对在各种条件下应当与其发起附件协议 通信的附件的条目,下文描述其实例。作为另一个实例,协议守护进程 304可包括加密模块309,该加密模块支持在链路层处对附件协议消息进行 加密和解密。

协议管理器308可从协议守护进程304接收附件协议消息并开始解释 消息的过程。无论是什么端口,协议管理器308都可以相同格式来接收所 有消息;因此,可将图3中所示的过程栈的上层与传输机构隔离。协议管 理器308可将消息递送至充当协议管理器308(以及可选地其他低级别设 备功能)和应用332之间的中介的支撑层330,或者在一些情况下直接递 送至应用332。

协议管理器308可包括会话层312,该会话层可实现为在合适硬件上 执行的软件对象(例如,设备固件的一部分)。会话层312可操作以创建 并读取符合附件协议(例如,如上所述的协议)的消息。对于出站通信, 会话层312可例如基于来自支撑层330或直接来自应用332的函数调用来 创建消息,并将消息提供至用于被发送的链路层310。对于入站通信,链路 层310可将提取自分组的消息提供至会话层312以用于处理。会话层312 可解释消息并将合适的函数调用发送至支撑层330或直接发送至应用332。

在一些实施例中,会话层312可创建并定义不同类型的多个会话,每 个会话适于处理不同类型的消息和数据交换。图3中的实例被示出为会话 314,316,318。每个会话可被分配唯一的会话标识符(未示出),使得会话 层312中没有两个同时存在的会话具有相同的会话标识符。在一些实施例 中,在创建会话时由主机设备分配会话标识符,并且主机设备可(例如, 经由已经存在的会话上的消息)向附件传送所分配的会话标识符。可定义 不同会话类型以处理附件协议中的不同子集的消息,并且在一些实施例 中,这些子集可重叠。

控制会话314可被配置为处理与附件协议的一般消息集相关联的所有 消息,诸如所连接的附件的识别和认证;控制会话314还可确定允许与附 件进行通信的其他类型的会话。该确定可基于附件识别和认证、主机设备 的能力等等。在一些实施例中,控制会话314具有固定标识符,该固定标 识符具有由附件协议指定的值;这可允许主机和附件利用匹配会话标识符 来创建控制会话,而无需专门传送将要使用的标识符值。

可创建消息会话316以处理来自附件协议的可选消息集的至少一些消 息。例如,很多消息可包括相对较少量的参数和/或其他数据,并且消息会 话316可用于创建并读取此类消息。

可响应于在主机设备和附件之间传输数据的请求,创建数据传输会话 318。可使用不同类型的数据传输会话,例如包括用于在开始传输之前已知 大小的分立数据对象(诸如文件)的缓冲传输会话,以及用于开放端数据 传输的流式传输数据会话,其中大小是事先已知的(例如,对往返于应用 332转发的媒体或特定于应用的消息进行流式传输)。

应当理解,本文所述的具体会话类型是示例性的,并且除了图3中所 示那些之外或作为替代,还可定义其他会话类型。在一些实施例中,具有同 一附件的多个会话可同时操作,经由链路层310共享对端口306的访问。

在具有多个端口306的一些实施例中,会话层312可针对每个所连接 的端口定义不同组会话。每个会话可具有全局唯一的会话标识符(例如, 与第一端口相关联的控制会话和与第二端口相关联的控制会话可具有不同 的标识符)。在一些实施例中,每个所接收的分组都包含会话标识符,并 且链路层310可基于会话标识符来向特定会话路由所提取的消息;类似 地,链路层310可基于消息源的会话标识符来向不同端口路由不同的传出 消息。链路层310可保持会话标识符到端口的映射,并且会话层312可在 不了解当前定义了哪些端口的情况下进行操作或用于特定会话。应当理 解,多个会话标识符可被映射到同一端口。在多个会话标识符被映射到同 一端口的情况下,链路层310可对来往于不同会话的通信交织进行管理, 其对会话层312来说是透明的。

对于入站通信,协议管理器308内的会话314-318中的一个会话可从 协议守护进程304接收附件协议消息并且开始对消息进行解释的过程。无 论是什么端口,协议管理器308都可以相同格式来接收所有消息;因此可 将图3中所示的过程栈的上层与传输机构隔离。协议管理器308可将消息 传送至充当协议管理器308(以及可选地其他低级别设备功能)和应用332 之间的中介的支撑层330,或者在一些情况下直接传送至应用332。

应用332可包括实现主机设备202的各种功能的一个或多个应用程 序。实例包括用于导航媒体资产的数据库并用于回放各种类型的资产(例 如,音频、视频、静态图像诸如照片,等等)的接口。其他实例包括万维网 浏览器、电子邮件程序、个人信息管理应用(例如,用于管理日历、任务、 联系人等)、地理导航程序(例如,在存在的情况下使用GPS功能)等 等。根据具体实施,应用332可为主机设备202的操作系统的一部分、预加 载到主机设备202上的独立程序、或由用户加载到主机设备202上的程序。

会话层312中的一些或所有会话可根据要求发起和终止。例如,控制 会话314可在检测到新的连接并对端口306进行初始化时发起。控制会话 314可用于处理从附件接收的识别消息和认证消息,并确定是否应当创建 消息会话316。在一些实施例中,控制会话314可保持活动,直至端口306 出现断开连接或终止时为止。消息会话316可响应于控制会话314确定应 当创建消息会话316而创建,例如在成功识别和/或验证附件时。一旦创 建,消息会话316就可保持活动,直至端口306出现断开连接或终止时为 止,或直至控制会话314确定应当终止消息会话316(例如,由于经由端 口306从附件接收到新的识别消息)时为止。

响应于特定事件,可稍后发起(或创建)其他会话。例如,消息会话 316可从附件或请求传输数据对象的应用接收消息。作为响应,消息会话 316可发起数据传输会话318以传输数据对象。在一些实施例中,如果控 制会话314确定所连接的附件未被授权执行所请求的数据传输,则可阻止 消息会话316发起数据传输会话318。数据传输会话318一旦创建,就可 开始传输数据对象,并且一旦传输完成便可终止。如果随后对另一传输进 行请求,则可创建另一数据传输会话。

应当理解,本文所述的协议栈是示例性的,并且变型和修改是可能 的。主机设备202可支持任何类型的应用,并且应用可根据用户或另一过程 的控制来启动或退出。预期较低级别的过程(包括支撑层330、协议管理器 308和协议守护进程304)可在软件和/或固件中实现,并且可被配置为在设 备上电时自动开始并仅在断电时或在检测到各种异常情况时终止。在一些实 施例中,协议管理器308和协议守护进程304始终进行操作,但仅在检测到 兼容附件时才发起会话层312、链路层310和端口306,并且在没有附件连 接时终止。过程可在未使用时进入非活动状态以使资源消耗最小化。此外, 并非需要本文所示的所有层级和过程;例如,在一些实施例中,应用可直接 与协议管理器或协议守护进程进行通信。在其他实施例中,可组合图3中被 示为独立的过程,或者图3中的单个块可对应于在设备上执行的多个过程。

还应当理解,附件204可实现类似的协议栈。通信需要主机设备202 和附件204两者具有合适配置的硬件部件和/或软件部件,以发射和接收相 互可理解的消息(例如,符合链路层和会话层两者处的附件协议),但具 体实施可根据需要而变化。

在图1的实施例中,主机设备100和附件102可使用无线通信协议诸 如Wi-Fi作为传输来交换符合附件协议的消息和数据。实际上,消息和数 据可通过主机端口128(例如,对应于图3的端口306)和附件端口138之 间的无线信道流动。

在一些实施例中,主机设备(或附件)可使用单一无线传输来为不同 类型的通信提供多个端口。在此类实施例中,通信的发送方(主机或附 件,视情况而定)可能需要指示接收方设备上的应当递送通信的特定端 口。对于使用图3的栈300的附件协议通信的情况,附件将需要为端口 306提供端口标识符;因此,附件需要在发送附件协议消息之前知道针对 端口306的端口标识符。

一种选择是静态地处理端口识别。例如,主机设备的制造商可指定经 由无线传输为附件协议通信分配特定端口号,并且附件开发者可对其附件 进行编程以使用所分配的端口号。然而,此类静态识别可能会限制主机设 备提供多个并行通信会话的能力。因此,在一些实施例中,主机设备可动 态地分配端口标识符。即,在创建或打开时,从可用标识符池(例如,从 0到255的数字标识符)为端口分配标识符。在端口终止或关闭时,可将 其标识符返回到池。

在主机设备使用动态端口标识符时,可通知附件其应当连接的端口标 识符,以进行附件协议通信。在一些实施例中,在主机设备100和附件 102之间发起附件协议通信之前,建立Wi-Fi信道并对其进行配置,使得附 件102可接收用于主机设备的端口识别信息。附件102然后可通过例如向 所识别的端口发送检测消息来与主机100发起附件协议通信。现在将描述 用于建立与端口306的连接的过程的具体实例。

图4是根据本发明的一个实施例的用于将附件连接到网络的过程400的 流程图。例如,可在图3的传输模块302和/或协议守护进程304中实现过程 400的主机侧方面,并且可在附件的协议栈中实现过程400的附件侧方面。

在过程400开始(框402)时,假设主机设备100已连接到具有接入 点(例如路由器)的无线(例如Wi-Fi)网络,并且接入点可例如通过仅 授权访问用于呈现正确访问凭证(例如密码)的设备来限制对网络的访 问。进一步假设尚未为附件102配置网络访问凭证。在过程400中,附件 102可使用联网服务(例如,由AppleInc.(Cupertino,California)提供的 服务,或其他零配置联网服务)以从主机设备100获得网络访问 凭证;同时,主机设备100可向已知附件的列表(诸如图3的自动连接列 表307)添加附件102。

在框404处,附件102可进入广播模式,并发出符合联网服务规范的 信标信号。信标信号可包括附件的标识符(例如,MAC地址或其他唯一性 标识符)和指示附件支持与特定类型的主机设备进行附件协议通信的信息 元素。可宽泛地指定主机类型,例如支持任何版本的特定附件协议的任何 主机,或者更窄地指定主机类型,例如特定类别(平板电脑、电话等)或 具有特定能力(GPS、蜂窝数据网络连接、支持特定附件协议版本或功能 等)的主机设备。在框406处,主机设备100可检测信标信号。

基于该信息元素,在框408处,主机设备100可确定是否对信标作出 响应。例如,主机设备100可确定附件102是否是可与其进行互操作的附 件。在一些实施例中,在框408处,主机设备100还可通知用户该附件 102正在尝试加入无线网络,并提示用户确认仅在用户进行确认时向附件 发送网络访问凭证的情况下,才应当允许附件102加入。

如果主机设备100确定其应当对信标作出响应,然后在框410处,主 机设备100可向附件102提供网络访问凭证,并且附件102可在框412处 接收网络访问凭证。可根据由联网服务(例如Bonjour)指定的过程来管理 网络访问凭证的发送,并可以涉及主机100和附件102之间的多个通信的 交换。在框414处,附件102可使用网络访问凭证来加入无线网络。

在框416处,主机设备100可向主机设备100维护的自动连接列表 307添加附件的标识符以用于控制对其附件协议栈300的访问。在一些实 施例中,自动连接列表307可由协议守护进程304或由主机设备100的其 他操作系统部件维护。自动连接列表307可包括用于任意数量附件的条 目。每个条目可包括唯一的附件标识符(例如,附件的MAC地址或附件 名称和序列号等)。尽管自动连接列表是可选的,但维护此类列表可促进 建立附件协议通信会话,而无需用户干预,例如,如下所述。

在完成过程400时,主机设备100和附件102两者连接到同一无线网 络。然而,在可经由无线传输进行附件协议通信之前,两个设备需要在无 线网络上彼此找到,并识别用于附件协议通信的具体目的地端口,由此限 定用于附件协议通信的信道。

图5是根据本发明的一个实施例的用于针对附件协议通信建立信道的 过程500的流程图。例如,可在图3的传输模块302和/或协议守护进程 304中实现过程500的主机侧方面,并且可在附件的协议栈中实现过程500 的附件侧方面,这可与图3的协议栈300相似或相同。

假设可找到主机,可在已加入无线网络的附件102确定应当建立附件 协议通信时的任何时间开始过程500(框502)。在这个阶段处,假设附件 102不知道什么(如果有的话),则主机设备可进行连接。在一些实施例 中,可在附件加入无线网络时(例如,在完成过程400时)自动发生这一 过程;在其他实施例中,可能会涉及到用户输入诸如推动附件102上的 “连接”按钮。在框504处,附件102可在无线网络上广播用于指示其支 持附件协议的服务信息记录。可由恰好在无线网络上的任何主机设备诸如 主机设备100以及由管理无线目录并可能维护关于无线网络上设备的信息 的存储的网络接入点来接收这一记录。

在框506处,主机设备100可检测来自附件102的服务信息记录,并验 证附件在自动连接列表上(例如,先前在过程400的框416处对其进行添 加)。例如,主机设备100可将与服务信息记录相关联的MAC地址(或其 他附件标识符)与其自动连接列表上的MAC地址(或其他附件标识符)进 行比较,并确定是否找到匹配。在一些实施例中,主机设备100可忽略来自 不在自动连接列表上的附件的广播。如下所述,可手动连接此类附件。

假设附件102在自动连接列表上,在框508处,主机设备100可对附件 协议端口(例如端口306)进行初始化以用于与附件102进行通信。对端口 306进行初始化可包括创建虚拟端口306,向端口306动态地分配端口标识 符和/或创建套接字以向端口306提供传输302的连接。在框510处,主机 设备100可向附件102发送用于指示主机设备100支持附件通信协并且可连 接到附件102的邀请消息。邀请消息可包括分配到端口306的端口标识符。

在框512处,附件102可接收邀请,并且在框514处,附件102可确 定是否接受邀请并发起与主机100的附件协议通信。可应用各种决定规 则。例如,附件102可响应于广播来从多个主机接收邀请,可从中选择待 接受的一个邀请。作为另一个实例,在从另一个主机设备接收邀请时,附 件102可能已经正在与一个主机设备进行通信,并且可决定是接受新邀请 还是继续与第一主机设备进行通信。

具体的决定规则是设计选择的问题,并且可考虑用户预期和特定附件的 性质。例如,如果附件是播放从主机接收的音频的扬声器坞站,则可能希望 使附件接受最近的邀请。这可促进如下的情形:其中不同的用户正在使用其 主机设备通过扬声器坞站来播放音乐。相反,如果附件是可由主机设备控制 的按摩椅,如果附件已经连接到一个主机,则可能希望使附件拒绝邀请,以 防止其他用户干扰第一用户的消息。如果两个或更多主机在附件未连接到任 何主机的同时发出邀请,则附件可使用优先级规则来选择主机(例如,先选 择第一个邀请,先选择最后一个邀请,先选择最近连接的主机)。在一些情 况下,用户界面能力充分大的附件可提示用户选择应当接受其邀请的主机。

如果附件102确定不接受邀请,则其可发送响应从而通知主机,或者简 单地忽略邀请。在框516处,主机设备100可等待重试事件,这可以是导致 发出新邀请的任何事件。例如,如下所述,用户可发起手动连接尝试。在一 些实施例中,特定事件可能导致主机100尝试再次自动连接;下文描述了该 实例。在一些实施例中,如果在超时期间内未发生重试事件,则主机设备 100可关闭在框508处进行初始化的端口,并且过程500结束。

如果在框514处附件102确定接受邀请,则在框518处,附件102可 对链路层以及一个或多个会话(例如,类似于图3)进行初始化以与主机 100进行通信。在框520处,附件102可使用邀请中指定的主机端口标识符 来发起附件协议通信。例如,在上述实施例中,附件可通过向主机发送 “检测”消息来发起附件协议通信,并且框518可包括向指定的主机端口 发送这一消息。

在一些实施例中,附件102可实施动态端口分配。如果是这种情况, 附件102可在广播其服务信息记录之前对端口进行初始化以用于附件协议 通信,并且主机设备100可将邀请指向该端口(框510)。或者,附件102 可响应于确定(框514)接受邀请而来端口进行初始化以用于附件协议通 信,并可以将附件协议端口识别为发送方的方式来发送发起消息(框 520)。在任一种情况下,主机设备100都接受附件的端口标识符,并可将 来自主机端口306的后续附件协议通信指向指定的附件端口。

在框522处,主机设备100可对其自己的链路层和会话进行初始化, 以使用附件协议与附件102进行通信。此时,建立附件协议通信信道并且 可使用由附件协议定义的各种消息将无线网络用作传输介质来发生该通 信。例如,主机和附件可继续进行识别和认证,然后通过交换附加消息来 开始互操作。

如上所述,在一些实施例中,可由主机设备100的用户手动发起附件 协议通信信道的建立。图6是根据本发明的一个实施例的用于建立附件协 议通信信道的过程600的流程图。过程600可在例如主机设备100的协议 栈300中实现。过程600可在主机设备100连接到无线网络的任何时间开 始(框602)。

在框604处,主机设备100可接收用户请求以连接到无线附件。例 如,主机设备100可包括提供“设置”菜单的用户界面,并且在设置菜单 内,可存在用户可选择的选项,以连接到无线附件。在框606处,主机设 备100可检测到其当前所属并支持附件协议通信的无线网络上存在的任何 附件。例如,主机设备100可收听网络上的附件广播的服务信息记录(类 似于过程500在框504的广播),或者主机设备100可向维护服务信息的 目录的网络接入点查询网络上的设备。

在框608处,主机设备100可向用户呈现检测到的附件的列表。在该 实例中,无论附件是否在主机设备100的自动连接列表中都可被包括在列 表中。在框610处,主机设备100可接收对特定附件的用户选择(例如附 件102)作为应当连接的附件。在框612处,如果附件102并非已被列出, 则主机设备100可向其自动连接列表添加针对附件102的条目,使得可发 生后续重新连接,而无需用户干预(例如,通过使用过程500)。在一些实 施例中,框612可包括提示用户确认应当向自动连接列表添加附件102。

在框614处,主机设备100可对端口进行初始化,这类似于过程500 的框508,并且在框616,主机设备100可向附件102发送邀请消息,这类 似于过程500的框510。从此时开始,就可像在过程500中那样继续建立 连接,仅在附件接受邀请时,附件才确定是否对邀请作出响应并建立附件 协议通信信道。在一些实施例中,主机设备100可推迟向其自动连接列表 添加针对附件102的条目,直到接受邀请并建立连接。

应当理解,图4-图6的配置和连接过程是示例性的,并且变型和修改 是可能的。可并行执行按顺序描述的步骤,可改变步骤的顺序,并且可修 改、合并、添加或省略步骤。任意过程都可以其他过程无关地实施。例 如,无论附件先前是否从该主机设备或一些其他源获得网络访问凭证,都 可在特定主机和附件之间执行图5和/或图6的信道建立过程。一旦附件获 得并存储针对特定网络的网络访问凭证,只要所存储的凭证保持有效,附 件便可使用该所存储的凭证根据需要离开和重新加入网络。因此设想可独 立于过程500或600来执行过程400。

可使用参考过程500描述的自动连接来允许主机设备在两者存在于同 一网络上的任何时间自动与附件重新连接。这对于用户而言可能是方便 的,因为它们可使用附件,而无需每次手动建立连接。例如,在用户的电 话(主机设备的实例)加入其家庭Wi-Fi网络时,电话可自动连接到无线 扬声器系统、电视、按摩椅或家中其他“活”(或存在)的附件,从而允 许用户播放媒体内容或执行其他操作,而无需首先连接。尽管自动连接可 能是有帮助的特征,但对自动连接列表和与附件的任何自动重新连接的使 用都是可选的。在一些实施例中,用户可在全局或每个附件的基础上例如 使用适当配置的设置菜单来指定期望的行为,从而能够针对特定主机设备 启用或禁用自动连接功能。

可响应于各种事件发生自动连接。上述一个实例是主机将加入网络的 附件识别为在主机的自动连接列表上。在对主机设备上电或重新引导时可 能发生另一个实例;作为引导序列的一部分,主机设备可自动加入优选的 无线网络(假设有此类网络)并查找网络上的处在其自动连接列表上的附 件。作为另一个实例,主机设备可查找在主机设备加入无线网络时(例 如,在具有家庭Wi-Fi网络的用户将主机设备带到家中时)或在关机之后 将无线收发器上电时待自动连接的附件。

需注意,在过程500和600中,附件102等待从主机设备100接收邀 请,而不是主动搜索主机设备(或搜索主机设备上的附件通信端口)。这 允许主机设备100保持控制是否建立连接,尽管附件102发起附件协议通 信。因此,仅在两个设备都同意连接时才发生附件协议通信:主机通过向 特定附件发送邀请从而识别待使用的端口而“同意”,并且附件通过响应 于邀请与端口发起附件协议通信而“同意”。

在一些实施例中,可就其是基于自动连接规则(例如,过程500)而 生成的还是基于表示用户请求(例如,过程600)而生成的来对每个邀请 消息进行标记。如果附件拒绝基于明确用户请求的邀请,则主机设备可警 示用户。如果拒绝基于自动连接所生成的邀请,则主机设备可确定不警示 用户。因此,如果未能建立用户专门请求的连接,则通知用户,而自动连 接的失败对于用户来说可以是透明的。如果用户希望主机设备与不是通过 自动连接过程(例如,过程500)连接的附件进行互操作,则用户可发起 手动连接(例如,过程600)。

在上述实施例中,可选择性地实施自动连接。这样可减小主机设备作 出用户不希望的连接的可能性,还避免了主机设备保持提示用户连接到可 能出现于具有主机设备的网络上的各个附件的状况(这可能会使用户体验 分心)。例如,如果过程400包括主机设备获得应当向网络添加附件的用 户确认,则这种确认可充当指示,即用户希望将主机设备连接到附件,并 且主机设备不需要在过程500中再次提示用户。如果用户不向特定主机设 备确认应当向网络添加附件,则主机设备可假设用户对将该主机设备连接 到附件不感兴趣。类似地,如上文参考过程600所述的,在用户手动指示 主机设备连接到特定附件时,主机设备可向自动连接列表添加附件,使得 将来可连接到该附件而,而无需用户手动指示。这种自动连接行为可提供 令人愉快的体验。例如,用户不会被连接到各个附件的提示连续追问,例 如在预计将相对不频繁发生的条件下发生的此类提示(例如,仅对于新附 件的初次配置)。当前在网络上的附件的用户可访问菜单允许用户决定何 时发起与未自动连接的附件的连接。同时,不需要用户反复指示主机设备 连接到同一附件。此外,如上所述,一些实施例可提供定制菜单,如果用 户倾向于这样的话,则允许用户详细指出期望的自动连接行为。

一旦建立了附件协议通信信道,便可无限制地继续进行通信,直到诸如 关闭信道的时间。例如,如果主机100或附件102因任何原因离开无线网 络,则信道可以关闭。作为另一个实例,用户可指示主机100或附件102关 闭信道(例如,经由提供“断开连接”控制的用户界面)。在信道关闭时, 可执行清理操作以释放资源和/或阻止不希望的连接。清理操作可包括终止或 关闭端口306和/或其相关联的套接字。在一些实施例中,如果链路层实施基 于连接的协议诸如TCP,则在链路层处容易检测到连接的丢失,并可采取合 适的清理动作。然而,链路层可使用无连接协议诸如UDP等,并且可能不 那么容易检测到连接的丢失。例如,附件可从主机设备断开连接,同时保持 在同一无线网络(例如,因为附件从不同主机设备接受对连接的邀请)上。

在一些实施例中,人为关闭信道的主机或附件可在关闭信道之前向另 一个设备发送附件协议的“终止连接”消息。例如,如果主机100进入睡 眠状态或如果用户已操作“断开连接”控制,则主机100可发送“终止连 接”消息;如果附件102被断电或决定从不同主机设备接受连接(并且不 能保持两个连接),则附件102可发送“终止连接”消息。接收“终止连 接”消息可表示信道正在被关闭,从而允许接收方设备执行清理操作。应 当理解,根据具体环境,始终可能关闭信道而不发送“终止连接”消息, 或者可能接收不到所发送的“终止连接”消息。因此,主机或附件不需要 假设信道保持连接,仅仅因为未接收到“终止连接”。

图7是根据本发明的一个实施例的用于测试连接的过程700的流程 图。例如,可在协议栈300等内的主机设备100中实现过程700。过程700 可在主机设备100具有连接到附件102的附件协议通信信道时开始(框 701)。在框702处,主机设备100可检测信道的可能关闭或丢失。例如, 主机设备100可监测联网服务(例如,Bonjour服务),并且丢失通与该服 务的连接还可表示丢失与其他设备的连接。在发生信道的可能丢失时,主 机设备100可在框704处暂停与附件的通信;在该实例中,在可恢复连接 的情况下,不终止端口和任何相关联的套接字。

在框706处,主机设备100可检测连接的恢复。在框708处,主机设 备100经由过附件102连接到的端口(例如端口306)向附件102发送 “验证连接”消息。可在附件协议中定义“验证连接”消息,并作为任何 其他附件协议消息来发送。附件协议可要求接收“验证连接”消息的附件 应当在特定时间(例如,5秒钟)内通过发送确认响应来作出响应。在一 些实施例中,确认响应可包括附件标识符、数字证书、可用于确认附件是 先前连接的同一附件的经数字签名的数据或其他信息。

在框710处,主机设备100可确定是否从附件102接收到有效响应。如 果是这样,则在框712处,主机设备100可恢复与附件102的会话。如果接 收到无效响应(或在超时期间内没有响应),则在框714处,主机设备100 可关闭或终止虚拟端口和任何相关联的套接字。如果附件102在网络上,则 在框716处,主机设备100可尝试例如通过创建新端口并发送新邀请来尝试 重新连接,以连接到附件102。在一些实施例中,仅在附件102在主机设备 100维护的自动连接列表上时才在框716处自动尝试重新连接。

应当理解,过程700是示例性的,并且变型和修改是可能的。可并行 执行按顺序描述的步骤,可改变步骤顺序,并且可修改、合并、添加或省 略步骤。例如,若干个事件可触发主机设备100发送验证连接消息,包括 使信道状态不确定的任何事件,在一些实施例中,如果怀疑信道可能已断 开连接,则附件102还可向主机设备100生成验证连接消息。

在一些情况下,丢失连接可自动触发关闭端口,而无需首先尝试验证连 接。例如,如果附件停止对主机发送的应用协议消息作出响应(或反之亦 然),则主机(或附件)可以终止连接并关闭其端口。在一些实施例中,任 一端处的链路层可发送对所接收的消息的确认,并且在某一数量的发送消息 之后未能接收到确认可能表示另一个设备已停止在信道上进行通信。

作为另一个实例,可能由于各种事件使主机设备的无线收发器断电, 各种事件诸如设备进入睡眠状态或关闭状态或“飞行”模式(RF收发器关 闭)等;在一些情况下,也可使收发器断电或通过其他方式使收发器去激 活,以允许使用其他RF通信协议(例如,移动电话网络)。在发生收发 器断电时,可终止所有虚拟端口和相关联的套接字。在再次对无线收发器 上电时,主机设备可自动创建新的虚拟端口并尝试与断电时其具有活动信 道的任何附件重新建立连接。在一些实施例中,仅在附件在主机的自动连 接列表上时主机设备才自动尝试重新建立连接;在其他实施例中,主机设 备可存储关于在收发器断电时其具有哪类附件连接的信息,并可尝试重新 建立那些连接,而不论附件是否在主机的自动连接列表上。

作为另一个实例,附件协议可提供框架以用于在主机设备100上执行 的应用(例如图3的应用332)和所连接的附件之间递送任意的通信。例 如,可使用图3的数据传输会话318来递送此类通信,其使用协议管理器 308和协议守护进程304来提供与内容无关的数据传输。通信的内容可符 合由应用332和附件102(或其一些部件)理解的特定于应用的协议。例 如,可将特定于应用的协议与合适的应用332一起使用以在主机设备100 上提供用户界面,以用于控制专用附件诸如按摩椅。

在一些实施例中,在主机设备100启动用于使用特定于应用的协议的 应用332时,主机设备100可自动确定网络上是否存在支持相同的特定于 应用的协议的任何附件,并尝试连接到此类附件。例如,附件102使用附 件协议所提供的识别信息可包括识别任何特定于应用的协议的信息或附件 所支持或优选的特定应用的信息。主机设备100可在例如针对附件102的 自动连接列表条目中存储这一信息。在启动支持特定于应用的协议的应用 时,主机设备100可使用自动连接列表来识别优选或支持该应用或特定于 应用的协议的已知附件。如果无线网络上存在此类附件,则主机设备100 可尝试连接到附件(例如,如上所述通过发送邀请消息)。

无线网络诸如Wi-Fi网络可实施各种安全措施(例如,数据加密并需 要网络访问凭证),并且这些安全措施可帮助保证无线发送的附件协议通 信不受拦截、欺骗和其他危害。在一些实施例中,可在附件协议内实现附 加安全层。例如,链路层可例如使用图3的加密模块309来支持对其所发 送的分组内容进行加密(并对应地对其接收的分组内容进行解密)。可根 据连接并可根据附件和主机是否都支持链路层加密来实施加密。

图8是根据本发明的一个实施例的用于确定是否使用链路层加密的过程 800的流程图。过程800可在主机100和附件102已建立附件协议通信信道 (例如,使用上述过程500或600)之后开始(框802)。作为其识别信息 的一部分,附件102可在框804处发送链路层配置信息,包括其是否具有链 路层加密能力的指示。在框806处,主机设备100可接收这种信息。在框 808处,主机设备100可发送其自身的链路层配置信息,该链路层配置信息 可包括其是否具有链路层加密能力的指示。由任一个或两个设备发送的链路 层配置信息还可指定链路层的其他属性,诸如接收消息(可由发送方用于防 止溢流)的缓冲区的大小、发送确认之前将被接收的消息的最大数量等等。

在框810处,主机设备100可确定是否在链路层处启用加密。在一些 实施例中,主机设备100针对任何连接实施来启用链路层加密的策略,其 中主机设备100和附件102都支持链路层加密。在其他实施例中,可将附 加标准并入决定中。可使用与评估与未加密的通信相关联的风险相关的任 何标准,该决定可涉及针对使用加密的处理资源成本来对风险进行加权。 相关标准的实例包括关于附件102意图使用的特定消息的信息(可在上述 附件识别期间提供)或关于连接的附件102类型的信息。

直到或除非主机设备100确定应当启用链路层加密,附件102(和主 机设备100)可在框812处默认在未加密模式下进行操作。如果在框810 处主机设备100确定不启用链路层加密,则附件102(和主机设备100)可 继续在未加密模式下进行通信。(这种上下文中的“未加密模式”表示不 采用链路层加密;可在其他层处采用加密,诸如由充当传输的无线网络进 行加密。)

如果主机设备100确定应当启用链路层加密,则在框814处于,主机设 备100可向附件102发送符合附件协议的“开始加密”消息,并且附件102 可在框816处接收消息。之后,在框818,820处,两个设备都可切换到在加 密模式下进行操作,在一些实施例中,在加密模式下进行操作可包括交换允 许每个设备建立共享秘密的信息。可使用共享秘密来生成会话密钥,并且可 使用会话密钥来对后续通信进行加密。在附件协议使用数字证书和公共密钥 对/私有密钥对来提供附件认证的实施例中,可使用这种密钥对对交换的一些 或全部信息进行加密以建立共享秘密。可使用常规或其他加密算法来生成会 话密钥并使用其对消息进行加密;可根据需要使用对称算法或不对称算法。 例如,可在图3的加密模块309内实施并由链路层310来调用此类算法。

应当理解,本文所述的过程800是示例性的,并且变型和修改是可能 的。可并行执行按顺序描述的步骤,可改变步骤顺序,并且可修改、合 并、添加或省略步骤。主机设备100可决定在任何时间发起加密,并非仅 在配置链路层时进行加密。在一些实施例中,一旦针对给定连接启用加 密,则在该连接期间便保持启用;在其他实施例中,可在单个连接内开始 和停止(以及重新开始)加密。可将链路层处的加密应用于所有附件协议 消息或选择性地应用于特定消息(例如,预期用于特定会话而非用于其他 会话的消息),只要两个设备知道哪些消息加密哪些消息未加密即可。

在一些实施例中,如果附件102不支持链路层加密,则主机设备100 可限制授予附件102访问权限的功能。例如,可允许不支持链路层加密的 附件发送遥控命令,以开始和停止主机设备100上存储的或由主机设备 100通过其他方式访问的媒体资产的媒体回放,但不接收数字媒体内容或 关于媒体资产的其他信息(例如,描述性元数据诸如标题、艺术家标识 符、相关联的作品等)。

此外,过程800不取决于任何特定的通信信道,并且可根据需要用于 无线通信信道和/或有线通信信道。

如上所述,附件和主机设备可使用通过无线通信网络诸如Wi-Fi网络 传输的附件协议来进行通信。网络可充当主机设备的虚拟端口和附件的对 应端口之间的传输或信道。在两个设备都同意时建立信道:例如,主机设 备可向附件提供端口标识符,并且附件可利用消息作出响应,从而发起与 该端口的附件协议通信。主机设备可选择性地自动连接到附件并可自动重 新连接到附件。此外,可在链路层处对消息进行选择性加密,以提供增强 的安全性,尤其是在无线传输消息时。

虽然已相对于具体实施例对本发明进行了描述,但本领域的技术人员 将认识到许多修改是可能的。

在一些情况下,主机设备可例如通过创建多个虚拟端口而具有与附件 的多个并行无线连接。不同的虚拟端口可连接到不同附件或连接到同一附 件的不同端口。在一些实施例中,主机可至少部分地基于已连接了哪类 (如果有)附件来确定是否连接到附件。例如,如果主机一次仅可支持一 个输出媒体流,可能不希望主机同时连接到用于接收媒体流的两个不同附 件,或者由于接收到冲突控制指令的风险,可能不希望主机同时连接到两 个不同的遥控附件。

此外,由于资源约束,主机设备上能够同时存在的虚拟端口的数量可 能受到限制。如果主机已使用最大数量的虚拟端口,则其可忽略来自查找 待连接的主机的其他附件的任何广播,或者主机可提示用户选择附件以断 开连接,以便允许新的连接。

尽管以上描述假设附件一次连接到一个主机设备,但附件也可能具有 多个同时操作的端口和与同一主机和/或不同主机的多个并行连接。可同时 与多个主机进行交互的附件可包括能够管理来自多个端口和/或主机的通信 的控制逻辑部件。具有多端口能力的附件可至少部分地基于已经连接了哪 类(如果有)主机来确定是否接受来自主机的邀请。

可使用专用部件和/或可编程处理器和/或其他可编程设备的任意组合来 实现本发明的实施例。本文所述的各种过程可以任何组合方式在同一处理 器或不同处理器上实现。在部件被描述为被配置为执行某些操作的情况 下,可例如通过设计电子电路以执行操作、通过对可编程电子电路(诸如 微处理器)进行编程以执行操作或它们的任何组合来实现此类配置。另 外,尽管上述实施例可参考具体硬件部件和软件部件,但本领域的技术人 员应当理解,也可使用硬件部件和/或软件部件的不同组合,并且被描述为 在硬件中实现的特定操作也可能在软件中实现,或反之亦然。

结合本发明的各种特征的计算机程序可被编码并存储在各种计算机可 读存储介质上;合适的介质包括磁盘或磁带、诸如光盘(CD)或DVD(数字 多功能光盘)的光学存储介质、闪存存储器以及其他非暂态介质。(应当 理解,数据的“存储”不同于使用暂态介质诸如载波的数据传播。)可将 利用程序代码就编码的计算机可读介质与兼容的电子设备封装在一起,或 者该程序代码可独立于电子设备提供(例如,经由互联网下载或作为单独 封装的计算机可读存储介质)。

因此,尽管已相对于具体实施例描述了本发明,但应当理解,本发明 旨在覆盖以下权利要求范围内的所有修改形式和等同形式。

权利要求书(按照条约第19条的修改)

1.一种在主机设备和附件之间建立无线通信信道的方法,所述方法包 括:

通过所述主机设备来加入无线网络;

通过所述主机设备经由所述无线网络来检测来自所述附件的服 务信息记录,所述服务信息记录包括附件标识符和所述附件支持附 件协议的指示;

通过所述主机设备来确定是否应当与所述附件建立附件协议通 信信道;以及

在应当与所述附件建立附件协议通信信道的情况下:

通过所述主机设备经由所述无线网络来向所述附件发送邀 请消息,所述邀请包括所述主机设备的地址以及针对待用于与 所述附件进行附件协议通信的所述主机设备的虚拟端口的动态 分配的端口标识符;

在所述虚拟端口处从所述附件接收检测消息,所述检测消 息是由所述附件协议定义为指示所述附件正在发起与所述主机 设备的附件协议通信的消息;以及

响应于所述检测消息,通过所述主机设备来对协议栈进行 初始化以用于与所述附件进行附件协议通信,所述协议栈连接 到所述虚拟端口。

2.根据权利要求1所述的方法,还包括在应当与所述附件建立附件协 议通信信道的情况下:

通过所述主机设备来创建所述虚拟端口;以及

通过所述主机设备来向所述虚拟端口分配所述端口标识符。

3.根据权利要求1所述的方法,其中确定是否应当与所述附件建立所 述附件协议通信信道包括确定所述附件是否在由所述主机设备维护 的自动连接列表上。

4.根据权利要求3所述的方法,还包括在检测到所述广播消息之前:

通过所述主机设备来检测来自所述附件的信标传输,所述信标 传输请求网络访问凭证,所述信标传输还包括附件标识符和所述附 件支持所述附件协议的指示;以及

响应于所述信标传输:

通过所述主机设备来向所述附件传送用于所述无线网络的 所述网络访问凭证;以及

通过所述主机设备来向所述自动连接列表添加所述附件标 识符。

5.根据权利要求1所述的方法,其中确定是否应当与所述附件建立所 述附件协议通信信道包括通过所述主机设备来接收指示所述主机设 备应当连接到所述附件的用户输入。

6.根据权利要求5所述的方法,还包括:

通过所述主机设备来呈现所述无线网络上存在的附件的用户可 读列表,

其中接收所述用户输入包括从所述用户可读列表接收用户选 择。

7.根据权利要求5所述的方法,还包括:

响应于所述用户输入,通过所述主机设备来向由所述主机设备 维护的自动连接列表添加所述附件的标识符。

8.根据权利要求1所述的方法,其中用于附件协议通信的所述协议栈 包括链路层,所述方法还包括在对所述协议栈进行初始化之后:

在所述虚拟端口处从所述附件接收符合所述附件协议的识别消 息,所述识别消息指示所述附件是否支持在所述协议栈的所述链路 层处对附件协议消息进行加密;

通过所述主机设备来确定是否在加密模式下进行操作,所述确 定基于所述识别消息;以及

响应于确定所述主机设备在所述加密模式下进行操作:

通过所述主机设备来向所述附件发送开始加密消息,所述 开始加密消息符合所述附件协议;以及

通过所述主机设备来对在发送所述开始加密消息之后向所 述附件发送的一个或多个传出附件协议消息进行加密,所述加 密在所述协议栈的所述链路层处执行。

9.根据权利要求8所述的方法,还包括:

在发送所述开始加密消息之后,通过所述主机设备来忽略在所 述端口处接收的未加密的传入附件协议消息。

10.根据权利要求8所述的方法,还包括响应于确定所述主机设备不在 所述加密模式下进行操作:

通过所述主机设备来确定能够以未加密形式接受的附件协议消 息全域的子集;以及

通过所述主机设备来忽略不在所述子集中的所接收的附件协议 消息。

11.一种在主机设备和附件之间建立无线通信信道的方法,所述方法包 括:

通过所述附件来加入无线网络;

通过所述附件经由所述无线网络来广播服务信息记录,所述服 务信息记录包括附件标识符和所述附件支持附件协议的指示;

通过所述附件来从所述无线网络上的主机设备接收邀请消息, 所述邀请消息包括所述主机设备的地址以及针对待由所述附件用于 与所述主机设备进行附件协议通信的所述主机设备上的虚拟端口的 端口标识符;

通过所述附件来确定是否应当接受所述邀请消息;以及

响应于确定应当接受所述邀请消息:

通过所述附件来向所述主机设备的所述虚拟端口发送检测 消息,所述检测消息是由所述附件协议定义为指示所述附件正 在发起与所述主机设备的附件协议通信的消息;以及

通过所述附件来对协议栈进行初始化以用于与所述主机设 备进行附件协议通信。

12.根据权利要求11所述的方法,其中确定是否应当接受所述邀请消息 包括通过所述附件来确定所述附件是否已使用所述附件协议来与另 一个主机设备进行通信,其中如果所述附件已与另一个主机设备进 行通信,则不接受所述邀请。

13.根据权利要求11所述的方法,其中确定是否应当接受所述邀请消息 包括通过所述附件来确定所述附件是否已使用所述附件协议来与另 一个主机设备进行通信,所述方法还包括如果所述附件已与另一个 主机设备进行通信:

则中断与所述另一个主机设备的通信;以及

确定应当接受所述邀请消息。

14.根据权利要求11所述的方法,还包括:

响应于确定不应当接受所述邀请消息,通过所述附件来向所述 主机设备发送拒绝消息。

15.根据权利要求11所述的方法,还包括:

通过所述附件来向所述主机设备的所述端口发送识别消息,所 述识别消息符合所述附件协议,所述识别消息指示所述附件是否支 持在所述附件用于进行附件协议通信的协议栈的链路层处对附件协 议消息进行加密;

从所述主机设备来接收符合所述附件协议的开始加密消息;以 及

通过所述附件来对在接收到所述开始加密消息之后向所述主机 设备的所述端口发送的一个或多个传出附件协议消息进行加密,所 述加密在所述协议栈的所述链路层处执行。

16.一种主机设备,包括:

无线通信接口;

用户界面;和

处理器,所述处理器耦接到所述无线通信接口和所述用户界 面,所述处理器被配置为:

经由所述无线通信接口来使所述主机设备加入无线网络;

经由所述无线网络来检测来自附件的服务信息记录,所述 服务信息记录包括附件标识符和所述附件支持附件协议的指 示;

至少部分地基于所述广播记录来确定应当与所述附件建立 附件协议通信信道;

经由所述无线网络来向所述附件发送邀请消息,所述邀请 包括所述主机设备的地址以及针对待用于与所述附件进行附件 协议通信的所述主机设备的虚拟端口的动态分配的端口标识 符;

在所述虚拟端口处从所述附件接收检测消息,所述检测消 息是由所述附件协议定义为指示所述附件正在发起与所述主机 设备的附件协议通信的消息;以及

响应于所述检测消息,对协议栈进行初始化以用于与所述 附件进行附件协议通信,所述协议栈连接到所述虚拟端口。

17.根据权利要求16所述的主机设备,其中所述处理器被进一步配置为 响应于确定应当建立所述附件协议通信信道来创建所述虚拟端口并 生成所述端口标识符。

18.根据权利要求16所述的主机设备,其中所述处理器被进一步配置为 使得确定应当与所述附件建立所述附件协议通信信道包括经由所述 用户界面来接收指示所述主机设备应当连接到所述附件的用户输 入。

19.一种附件,包括:

无线通信接口;和

控制器,所述控制器耦接到所述无线通信接口,所述控制器被 配置为:

经由所述无线通信接口来使所述附件加入无线网络;

在所述无线网络上广播服务信息记录,所述服务信息记录 包括附件标识符和所述附件支持附件协议的指示;

从所述无线网络上的主机设备接收邀请消息,所述邀请消 息包括所述主机设备的地址以及针对待由所述附件用于与所述 主机设备进行附件协议通信的所述主机设备的虚拟端口的端口 标识符;

向所述主机设备的所述虚拟端口发送检测消息,所述检测 消息是由所述附件协议定义为指示所述附件正在发起与所述主 机设备的附件协议通信的消息;以及

对协议栈进行初始化以用于与所述主机设备进行附件协议 通信。

20.根据权利要求19所述的附件,其中所述控制器被进一步配置为确定 是否接受来自所述主机设备的所述邀请消息,所述确定至少部分地 基于所述附件是否已使用所述附件协议来与另一个主机设备进行通 信。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号