结构网络的制作方法

文档序号:10557398阅读:440来源:国知局
结构网络的制作方法
【专利摘要】呈现了与结构网络内的通信有关的系统和方法。所述结构网络包括使得连接到所述结构的设备能够使用为所述设备已知的各种简档来彼此进行通信的一个或多个逻辑网络。发送消息的设备可以遵循通用消息格式来对所述消息进行编码,使得所述结构中的其它设备可以不管所述设备连接到哪些逻辑网络都理解所述消息。在所述消息格式内,可以包括数据的有效负荷以便所述接收设备转发、存储、或者处理所述消息。所述有效负荷的格式和内容可以根据在所述有效负荷内指示简档的报头以及所述简档内的消息类型而变化。使用所述简档和消息类型,所述接收设备可以对所述消息进行解码以处理所述消息。
【专利说明】结构网络
【背景技术】
[0001] 本公开涉及使用一个或多个网络类型来耦合电子设备的结构网络。
[0002] 本部分旨在向读者介绍可能与在下面描述和/或要求保护的目前技术的各个方面 有关的领域的各个方面。本讨论被认为在给读者提供背景信息以方便更好地理解本公开的 各个方面时是有用的。因此,应该理解,这些声明将从这个角度阅读,而不作为对现有技术 的认可。
[0003] 网络连接的设备遍及家庭而出现。这些设备中的一些常常能够使用传输协议通过 单个网络类型(例如,WiFi连接)与彼此进行通信。可能期望将不太功率密集的连接协议用 于电池供电的或者接收减少的电荷的一些设备。然而,在一些场景中,连接到更低功率协议 的设备可能不能够与连接到更高功率协议(例如,WiFi)的设备进行通信。

【发明内容】

[0004] 在下面阐述本文中所公开的某些实施例的概要。应该理解,这些方面被仅呈现来 给读者提供这些特定实施例的简要概要,并且这些方面不旨在限制本公开的范围。实际上, 本公开可以包含可能未在下面阐述的各个方面。
[0005] 本公开的实施例涉及用于包括使得连接到结构的设备能够使用为设备已知的一 系列协议和/或简档彼此进行通信的一个或多个逻辑网络的结构网络的系统和方法。设备 之间的通信可以遵循使得设备能够不管通信设备在结构中被连接到哪些逻辑网络都理解 设备之间的通信的典型消息格式。在消息格式内,可以包括数据的有效负荷以便接收设备 存储和/或处理。有效负荷的格式和内容可以根据在有效负荷内指示简档(包括一个或多个 协议)的报头和/或正在根据简档发送的消息的类型而变化。
[0006] 根据一些实施例,结构中的两个或更多个设备可以使用状态报告协议或简档进行 通信。例如,在特定实施例中,状态报告协议或模式可以被包括在可被连接到结构的设备利 用的核心简档中。使用状态报告协议,设备可以向结构中的其它设备发送状态信息或者从 结构中的其它设备请求状态信息。
[0007] 类似地,在某些实施例中,结构中的两个或更多个设备可以使用更新软件协议或 简档进行通信。在一些实施例中,可以将更新软件协议或模式包括在可被连接到结构的设 备利用的核心简档中。使用更新软件协议,设备可以请求、发送或者通知更新存在于结构 内。
[0008] 在特定实施例中,结构中的两个或更多个设备可以使用数据管理协议或简档进行 通信。在一些实施例中,可以将数据管理协议或模式包括在可被连接到结构的设备利用的 核心简档中。使用更新数据管理协议,设备可以请求、查看、或者跟踪被存储在其它设备中 的节点驻留信息。
[0009] 此外,在某些实施例中,结构中的两个或更多个设备可以使用批量数据传输协议 或简档来传输数据。在一些实施例中,可以将批量数据传输协议或模式包括在可被连接到 结构的设备利用的核心简档中。使用批量数据传输协议,设备可以使用结构中的任何逻辑 网络来发起、发送、或者接收批量数据。在某些实施例中,使用批量数据传输协议的发送设 备或接收设备可以能够"驱动"设备之间的同步传输。在其它实施例中,可以利用异步传输 执行批量传输。
[0010] 可以存在上面所指出的关于本公开的各个方面的特征的各种明确表达。同样还可 以在这些各个方面中并入另外的特征。这些明确表达和附加特征可以单独地或相结合地存 在。例如,在下面所讨论的关于所图示的实施例中的一个或多个的各种特征可以被单独或 相结合地并入到本公开的上面描述的方面中的任一个中。上面所呈现的简要概要仅旨在使 读者熟悉本公开的实施例的特定方面和上下文,而不限于所要求保护的主题。
【附图说明】
[0011] 可以在阅读以下【具体实施方式】时并在参考附图时更好地理解本公开的各个方面, 在附图中:
[0012] 图1是根据实施例的可以使用结构网络与其它设备互连的电子设备的框图;
[0013] 图2图示根据实施例的图1的通用设备可以经由结构网络与其它设备进行通信的 家庭环境的框图;
[0014] 图3图示根据实施例的、表征用于图2的家庭环境的通信系统的开放系统互连 (OSI)模型的框图;
[0015]图4图示根据实施例的、具有单个逻辑网络拓扑的结构网络;
[0016]图5图示根据实施例的、具有星型网络拓扑的结构网络;
[0017] 图6图示根据实施例的、具有重叠网络拓扑的结构网络;
[0018] 图7图示根据实施例的、与一个或多个结构网络进行通信的服务;
[0019] 图8图示根据实施例的、通信性连接中的结构网络中的两个设备;
[0020] 图9图示根据实施例的、可以被用来对结构网络中的设备进行寻址的唯一本地地 址格式(ULA)。
[0021] 图10图示根据实施例的、用于在集线器网络上代理外围设备的过程;
[0022] 图11图示根据实施例的、可以被用来通过结构网络发传送数据的标签长度值 (TLV)分组;
[0023] 图12图示根据实施例的、可以被用来通过结构网络传送可以包括图17的TLV分组 的数据的通用消息协议(GMP);
[0024] 图13图示根据实施例的、图18的GMP的消息报头字段;
[0025] 图14图示根据实施例的、图18的GMP的密钥标识符字段;
[0026] 图15图示根据实施例的、图18的GMP的应用有效负荷字段;
[0027] 图16图示根据实施例的、可以被用来在结构网络中更新状态信息的状态报告模 式;
[0028] 图17图示根据实施例的、图22的状态报告模式的简档字段;
[0029] 图18图示根据实施例的、可以被用来在客户端与服务器之间执行软件更新的协议 序列;
[0030] 图19图示根据实施例的、可以在图24的协议序列中使用的映像查询帧;
[0031] 图20图示根据实施例的、图19的映像查询帧的帧控制字段;
[0032] 图21图示根据实施例的、图19的映像查询帧的产品规格字段;
[0033] 图22图示根据实施例的、图19的映像查询帧的版本规格字段;
[0034] 图23图示根据实施例的、图19的映像查询帧的场所规格字段;
[0035]图24图示根据实施例的、图19的映像查询帧的所支持完整性类型字段;
[0036] 图25图示根据实施例的、图19的映像查询帧的所支持更新方案字段;
[0037] 图26图示根据实施例的、可以在图18的协议序列中使用的映像查询响应帧;
[0038]图27图示根据实施例的、图26的映像查询响应帧的统一资源标识符(URI)字段; [0039]图28图示根据实施例的、图26的映像查询响应帧的完整性规格字段;
[0040]图29图示根据实施例的、图26的映像查询响应帧的更新方案字段;
[0041]图30图示根据实施例的、用来采用数据管理协议以管理结构网络中的设备之间的 数据的序列;
[0042]图31图示根据实施例的、可以在图30的序列中使用的快照请求帧;
[0043]图32图示根据实施例的、可以使用图31的快照请求帧访问的示例简档模式;
[0044]图33是依根据实施例的、可以在简档模式中指示路径的路径的二进制格式;
[0045] 图34图示根据实施例的、可以在图30的序列中使用的观看请求帧;
[0046] 图35图示根据实施例的、可以在图30的序列中使用的周期性更新请求帧;
[0047] 图36图示根据实施例的、可以在图30的序列中使用的刷新请求帧;
[0048] 图37图示根据实施例的、可以在图30的序列中使用的取消视图请求;
[0049]图38图示根据实施例的、可以在图30的序列中使用的视图响应帧;
[0050]图39图示根据实施例的、可以在图30的序列中使用的显式更新请求帧;
[0051 ]图40图示根据实施例的、可以在图30的序列中使用的视图更新请求帧;
[0052]图41图示根据实施例的、可以使用图30的序列来更新的更新项帧;
[0053]图42图示根据实施例的、可以在图30的序列中作为更新响应消息发送的更新响应 帧;
[0054]图43图示根据实施例的、批量数据传输中的发送方与接收方之间的通信性连接;
[0055 ]图44图示根据实施例的、可以被用来由图43的发送方发起通信连接的Send I n i t消 息;
[0056]图45图示根据实施例的、图44的SendIni t消息的传输控制字段;
[0057]图46图示根据实施例的、图45的Send In i t消息的范围控制字段;
[0058]图47图示根据实施例的、可以被用来接受通过由图44的发送方发送的图44的 Send I n i t消息所建议的通信性连接的SendAc c ep t消息;
[0059]图48图示根据实施例的、可以被用来拒绝通过由图44的发送方发送的图44的 SendInit消息所建议的通信性连接的SendRe ject消息;以及
[0060]图49图示根据实施例的、可以被用来接受由图44的发送方建议的通信性连接的 ReceiveAccept消息。
【具体实施方式】
[0061 ]将在下面描述本公开的一个或多个特定实施例。这些描述的实施例仅是目前公开 的技术的示例。因此,为了提供这些实施例的简明描述,可能不在本说明书中描述实际实施 方式的所有特征。应该了解在任何这种实际的实施方式的开发中,如在任何工程或设计项 目中一样,必须做出许多实施方式特定的决策以实现开发者的特定目标,诸如遵照可能从 一个实施方式到另一实施方式变化的系统相关且业务相关的约束。而且,应该了解,这种开 发努力可能是复杂的且费时的,但是对于受益于本公开的普通技术人员来说可能是设计、 制作和制造的例行任务。
[0062] 当介绍本公开的各种实施例的元件时,冠词"一"、"一个"和"该"旨在意味着存在 这些元件中的一个或多个。术语"含有"、"包括有"和"具有"旨在为包括的,并且意味着可以 存在除所列举的元件以外的附加元件。此外,应该理解,对本公开的"一个实施例"或"实施 例"的引用不旨在被解释为排除也并入所记载的特征的附加实施例的存在。
[0063] 本公开的实施例一般地涉及可以由在家庭环境中彼此进行通信的设备和/或服务 所使用的高效结构网络。通常,住在家里的消费者可能发现使他们的家庭内的各种设备的 操作协调使得他们所有的设备被高效地操作是有用的。例如,恒温器设备可以被用来检测 家庭的温度并且基于所检测到的温度来使其它设备(例如,灯)的活动协调。在这个示例中, 恒温器设备可以检测可以指示家庭外部的温度对应于白天的温度。恒温器设备然后可以向 灯设备输送可能存在可被家庭利用的日光并且因此应该关掉灯。
[0064] 除高效地操作这些设备之外,消费者通常更喜欢使用牵涉最少量的设置或初始化 的用户友好的设备。也就是说,消费者通常将更喜欢购买在执行少数初始化步骤之后就完 全可操作的设备,该少数初始化步骤可以由不管年龄或技术经验的几乎任何个体执行。
[0065] 记住上文,为了使得能够在家庭环境内在彼此之间高效地传递数据,设备可以使 用包括一个或多个逻辑网络的结构网络来管理设备之间的通信。也就是说,高效结构网络 可以使得家庭内的许多设备能够使用一个或多个逻辑网络来彼此进行通信。通信网络可以 支持网际协议版本6(IPv6)通信,使得每个连接的设备可以具有唯一本地地址(LA)。而且, 为了使得每个设备能够与家庭集成在一起,每个设备使用少量的功率在网络内通信可能是 有用的。也就是说,通过使得设备能够使用低功率进行通信,可以将设备放置在家庭中的任 何地方,而无需耦合到连续电源(例如,电池供电的)。
[0066] I ·结构介绍
[0067] 通过介绍,图1图示可以在家庭环境内与其它同样的设备进行通信的通用设备10 的示例。在一个实施例中,设备10可以包括一个或多个传感器12、用户接口组件14、电源16 (例如,包括电力连接和/或电池)、网络接口 18、处理器20等。特定传感器12、用户接口组件 14和电源配置可以与每个设备10相同或类似。然而,应该注意在一些实施例中,每个设备10 可以基于设备类型或模型而包括特定传感器12、用户接口组件14、电源配置等。
[0068]在某些实施例中,传感器12可以检测诸如加速度、温度、湿度、水、供应电力、接近、 外部运动、设备运动、声音信号、超声信号、光信号、火、烟雾、一氧化碳、全球定位卫星(GPS) 信号、射频(RF)、其它电磁信号或场等的各种特性。因此,传感器12可以包括温度传感器、湿 度传感器、危险相关传感器或其它环境传感器、加速度计、麦克风、相当于并包括相机(例 如,电荷耦合器件或视频相机)的光学传感器、有源或无源辐射传感器、GPS接收器或射频标 识检测器。虽然图1图示具有单个传感器的实施例,但是许多实施例可以包括多个传感器。 在一些实例中,设备10可以包括一个或多个主传感器和一个或多个辅传感器。这里,主传感 器可以感测对设备的核心操作极为重要的数据(例如,感测恒温器中的温度或者感测烟雾 检测器中的烟雾),同时辅传感器可以感测能够被用于能量高效目标或智能操作目标的其 它类型的数据(例如,运动、光或声音)。
[0069] 设备10中的一个或多个用户接口组件14可以从用户接收输入并且/或者向用户呈 现信息。用户接口组件14还可以包括可以从用户接收信息的一个或多个用户输入组件。所 接收到的输入可以被用来确定设定。在特定实施例中,用户输入组件可以包括对用户的运 动做出响应的机械或虚拟组件。例如,用户能够以机械方式(例如,沿着垂直或水平轨道)移 动滑动组件或者(例如,沿着圆形轨道)使可旋转环旋转,可以检测用户沿着触摸板的运动, 或者可以使用无接触手势检测传感器(例如,红外传感器或相机)来检测运动/手势。这些运 动可以对应于能够基于用户接口组件104的绝对位置或者基于用户接口组件104的位移来 确定的设定调整(例如,对于可旋转环组件的每10°旋转按1华氏度调整设定点温度)。物理 上且实际上可动的用户输入组件能够允许用户沿着表观连续能谱的一部分设置设定。因 此,用户可能不局限于在两个离散选项之间选择(例如,如果使用了上下按钮则情况将是这 样的),而是能够沿着一系列可能的设定值迅速地且直观地定义设定。例如,用户输入组件 的移动的大小可以与设定调整的大小相关联,使得用户可以显著地更改具有大移动的设定 或者微调具有小移动的设定。
[0070] 用户接口组件14还可以包括一个或多个按钮(例如,上下按钮)、小键盘、数字键 盘、开关、麦克风和/或相机(例如,以检测手势)。在一个实施例中,用户输入组件14可以包 括可以使得用户能够通过使环旋转(例如,以调整设定)和/或通过向内点击环(例如,以选 择经调整的设定或者以选择一个选项)来与组件交互的点击并旋转环孔组件。在另一实施 例中,用户输入组件14可以包括可以检测手势(例如,以指示设备的电力或警报状态将改 变)的相机。在一些实例中,设备10可以具有可以被用来设置各种类型的设定的一个主输入 组件。用户接口组件14还可以被配置成经由例如视觉显示器(例如,薄膜晶体管显示器或有 机发光二极管显示器)和/或音频扬声器向用户呈现信息。
[0071] 电源组件16可以包括电力连接和/或本地电池。例如,电力连接可以将设备10连接 到诸如线电压源的电源。在一些实例中,AC电源能够被用来反复地对(例如,可再充电的)本 地电池充电,使得电池可以被稍后用来在AC电源不可用时向设备10供应电力。在某些实施 例中,电源组件16可以包括可以小于经由家庭中的AC插座提供的间歇或减少的电力连接。 在某些实施例中,具有电池和/或间歇或减少的电力的设备可以作为在接通/唤醒状态与离 线/睡眠状态之间交替以减少功耗的"不活跃设备"被操作。
[0072] 网络接口 18可以包括使得设备10能够使用结构网络内的一个或多个逻辑网络来 在设备之间进行通信的一个或多个组件。在一个实施例中,网络接口 18可以使用高效网络 层作为其开放系统互连(OSI)模型的一部分进行通信。在某些实施例中,网络接口 18的一个 组件可以与一个逻辑网络(例如,WiFi)进行通信,并且网络接口的另一组件可以与另一逻 辑网络(例如,802.15.4)进行通信。换句话说,网络接口 18可以使得设备10能够经由多个 IPv6网络以无线方式进行通信。因此,网络接口 18可以包括无线卡、以太网端口、和/或其它 适合的收发器连接。
[0073] 处理器20可以支持各种不同的设备功能性中的一个或多个。因此,处理器20可以 包括被配置和编程为执行和/或使本文中所描述的功能性中的一个或多个被执行的一个或 多个处理器。在一个实施例中,处理器20可以包括执行存储在本地存储器(例如,闪存、硬 盘、随机存取存储器)中的计算机代码的通用处理器、专用处理器或专用集成电路、其它类 型的硬件/固件/软件处理平台和/或其某种组合。另外,可以将处理器20实现为由中央服务 器或基于云的系统诸如借助于运行使用异步Javascript和XML(AJAX)或类似协议来执行从 云服务器提供的指令的Java虚拟机(JVM)远程地执行或者管理的算法的本地化版本或配对 物。通过示例,处理器20可以检测位置(例如,房屋或房间)何时被占用,相当于并包括它被 特定人占用还是被特定数目的人们(例如,相对于一个或多个阈值)占用。在一个实施例中, 这个检测能够例如通过对麦克风信号进行分析、检测用户移动(例如,在设备前面)、检测门 或车库门的打开和关闭、检测无线信号、检测接收到的信号的IP地址、检测一个或多个设备 在时间窗口内的操作等而发生。而且,处理器20可以包括用于标识特定居住者或对象的图 像识别技术。
[0074] 在一些实例中,处理器200可以预测所希望的设定和/或实现那些设定。例如,基于 存在检测,处理器20可以将设备设定调整成例如在无人在家或在特定房间中时保存电力或 者符合用户偏好(例如,通用的在家偏好或用户特定的偏好)。作为另一示例,基于特定人、 动物或对象(例如,小孩、宠物或丢失对象)的检测,处理器20可以启动人、动物或对象在哪 里的音频或视觉指示器,或者可以在某些条件下(例如,在晚上或在灯关闭时)检测到未被 认出的人的情况下启动警报或安全特征。
[0075]在一些实例中,设备可以使用设备之间的一个或多个公共简档来彼此交互,使得 由第一设备检测到的事件影响第二设备的动作。例如,第一设备能够检测到用户已驶入车 库(例如,通过检测车库中的运动、检测车库中的光变化或者检测车库门的打开)。第一设备 能够经由结构网络network向第二设备传送这个信息,使得第二设备例如能够调整家庭温 度设定、光设定、音乐设定、和/或安全警报设定。作为另一示例,第一设备能够检测用户接 近前门(例如,通过检测运动或突然的光图案变化)。第一设备可以使得通用音频或视觉信 号被呈现(例如,诸如门铃的发声)或者使得位置特定的音频或视觉信号被呈现(例如,以通 告访问者存在于用户正占用的房间内)。
[0076] 记住上文,图2图示图1的设备10可以经由结构网络与其它设备进行通信的家庭环 境30的框图。所描绘的家庭环境30可以包括诸如房屋、办公建筑物、车库、或活动房屋的结 构32。应当了解,还能够将设备集成到不包括整个结构32的家庭环境(诸如套房、公寓、办公 空间等)中。另外,家庭环境30可以控制和/或耦合到实际结构32外部的设备。实际上,家庭 环境30中的数个设备根本不必物理上在结构32内。例如,控制水池加热器34或灌溉系统36 的设备可以位于结构32外部。
[0077]所描绘的结构32包括经由墙40彼此至少部分地分开的多个房间38。墙40能够包括 内墙或外墙。每个房间38还能够包括地板42和天花板44。这些设备能够被安装在墙40、地板 42或天花板44上,与墙40、地板42、或天花板44集成在一起,并且/或者由墙40、地板42或天 花板44支承。
[0078]家庭环境30可以包括多个设备,包括可以彼此和/或与基于云的服务器系统无缝 地集成在一起以提供各种有用的家庭目标中的任一个的智能多感测连接网络的设备。家庭 环境30中所图示的设备中的一个、更多个或每一个可以包括一个或多个传感器12、用户接 口 14、电源16、网络接口 18、处理器20等。
[0079] 示例性设备10可以包括连接网络的恒温器46,所述恒温器46可以检测环境气候特 性(例如,温度和/或湿度)并且控制加热、通风和空气调节(HVAC)系统48。另一示例性设备 10可以包括危险检测单元50,所述危险检测单元50能够检测危险物质和/或危险条件存在 于家庭环境30中(例如,烟雾、火或一氧化碳)。此外,能够被称为"智能门铃"的入口通道接 口设备52能够检测人接近于或背离位置、控制可听功能性、经由音频或视觉手段来通告人 的接近或背离、或者控制关于安全系统的设定(例如,以激活或停用该安全系统)。
[0080] 在某些实施例中,设备10可以包括可以检测环境照明条件、检测房间占用状态并 且控制一个或多个灯的电力和/或暗淡状态的灯开关54。在一些实例中,灯开关54可以控制 风扇(诸如吊式风扇)的电力状态或速度。
[0081] 此外,墙插座接口 56可以检测房间或围墙的占用并且控制电力到一个或多个墙插 座的供应(例如,使得在无人在家的情况下不向插座供应电力)。家庭环境30内的设备10还 可以包括家电58,诸如冰箱、电炉和/或烘箱、电视、洗衣机、烘干机、灯(在结构32内部和/或 外部)、立体声设备、对讲系统、车库门开门器、落地风扇、吊式风扇、全屋风扇、壁式空调器、 水池加热器34、灌溉系统36、安全系统等。虽然图2的描述可以标识与特定设备相关联的特 定传感器和功能性,但是应当了解,可以将各种传感器和功能性(诸如在整个说明书中所描 述的那些传感器和功能性)中的任一个集成到设备10中。
[0082]除包含处理和感测能力之外,上面所描述的示例性设备中的每一个也许能够与任 何其它设备以及对在世界上任何地方连接网络的任何云服务器或任何其它设备进行数据 通信和信息共享。在一个实施例中,设备10可以经由在下面所讨论的结构网络来发送和接 收通信。在一个实施例中,结构可以使得装置10能够经由一个或多个逻辑网络彼此进行通 信。因此,特定设备可以用作无线重发器和/或可以充当家庭环境中的可能未彼此直接连接 (即,单跳)的设备、服务和/或逻辑网络之间的桥接器。
[0083] 在一个实施例中,无线路由器60还可以经由一个或多个逻辑网络(例如,WiFi)与 家庭环境30中的设备10进行通信。无线路由器60然后可以与互联网62或其它网络进行通 信,使得每个设备10可以通过互联网62与远程服务或云计算系统64进行通信。云计算系统 64可以与和特定设备10相关联的制造商、支持实体或服务提供商相关联。因此,在一个实施 例中,用户可以使用设备它本身而不是使用诸如电话或连接互联网的计算机的一些其它通 信手段来联系客户支持。另外,能够从云计算系统64或家庭环境30中的设备向结构中的其 它设备自动地发送软件更新(例如,当可用时、当被购买时、当被请求时、或者以例行间隔)。
[0084] 借助于网络连接性,即使用户不接近于设备,设备10中的一个或多个也可以进一 步允许用户与设备交互。例如,用户可以使用计算机(例如,台式计算机、膝上型计算机或平 板)或其它便携式电子设备(例如,智能电话)66来与设备进行通信。网页或应用可以从用户 接收通信并且基于所接收到的通信来控制设备10。而且,网页或应用可以向用户呈现关于 设备的操作的信息。例如,用户能够查看设备的当前设定点温度并且使用可以连接到互联 网62的计算机来调整它。在这个示例中,恒温器46可以经由一个或多个底层逻辑网络经由 结构网络来接收当前设定点温度视图请求。
[0085]在特定实施例中,家庭环境30还可以包括各种非通信传统家电68,诸如能够借助 于墙插座接口 56来控制(即使粗糙地(0N/0FF))的旧常规的洗衣机/烘干机、冰箱等。家庭环 境30还可以包括各种部分地通信的传统家电70,诸如能够通过由危险检测单元50或灯开关 54所提供的IR信号来控制的红外(IR)控制的壁式空调器或其它IR控制的设备。
[0086]如上面所提到的,上面所描述的示例设备10中的每一个可以形成结构网络的一部 分。通常,结构网络可以是如图4中所描绘的开放系统互连(OSI)模型90的一部分。OSI模型 90图示通信系统相对于抽象层的功能。也就是说,OSI模型可以指定联网框架或者设备之间 的通信如何可以被实现。在一个实施例中,OSI模型可以包括六个层:物理层92、数据链路层 94、网络层96、传输层98、平台层100、和应用层102。通常,OSI模型90中的每个层可以服务它 上方的层并且可以被它下面的层服务。
[0087]记住这个,物理层92可以为可以与彼此进行通信的设备提供硬件规格。因此,物理 层92可以确立设备如何可以彼此连接,帮助管理如何可以在设备之间共享通信资源等。 [0088]数据链路层94可以指定如何可以在设备之间传输数据。通常,数据链路层94可以 提供可以将正被传送的数据分组编码和解码成比特作为传输协议的一部分的方式。
[0089]网络层96可以指定正被传输到目的地节点的数据如何被路由。网络层96还可以提 供可以维持正被传输的数据的完整性的安全协议。上面所讨论的高效网络层与网络层96相 对应。在特定实施例中,网络层96可以完全独立于平台层100,并且包括任何适合的IPv6网 络类型(例如,WiFi、以太网、!1〇11^1呢、802.15.4等)。
[0090] 传输层98可以指定数据从源节点到目的地节点的透明传输。传输层98还可以控制 数据的透明传输如何保持可靠。因此,传输层98可以被用来验证旨在传输到目的地节点的 数据分组实际上到达了目的地节点。可以在传输层98中采用的示例性协议可以包括传输控 制协议(TCP)和用户数据报协议(UDP)。
[0091] 平台层100包括结构网络并根据在传输层98内指定的协议在设备之间建立连接, 并且可能不知道在网络层96中使用的网络类型。平台层100还可以将数据分组译成应用层 102可以使用的格式。应用层102可以支持可以与用户直接接口对接的软件应用。因此,应用 层102可以实现由软件应用所定义的协议。例如,软件应用可以提供诸如文件传输、电子邮 件等的服务。
[0092] II.结构-设备互连
[0093] 如上面所讨论的,结构可以使用一个或多个适合的通信协议(诸如IPv6协议)来实 现。事实上,结构对于用来实现该结构的底层技术(例如,网络类型或通信协议)而言可能是 部分地或完全不可知论的。在一个或多个通信协议内,可以使用被用来使用无线或有线连 接通信地耦合电气设备的一个或多个网络类型来实现结构。例如,结构的某些实施例可以 包括以太网、WiFi、802 · 15.4、ZigBee?、ISA100 · lla、WirelessHART、MiWi?、电力线网络、 和/或其它适合的网络类型。在结构设备(例如节点)内能够直接或经由作为IP路由器的中 间节点(诸如智能恒温器)来与结构中的其它设备(例如节点)交换信息的分组。这些节点可 以包括制造商设备(例如,恒温器或烟雾检测器)和/或客户设备(例如,电话、平板、计算机 等)。此外,一些设备可以是"总是接通"并且使用电连接连续地供电。其它设备可以使用减 少/间歇的电力连接(诸如恒温器或门铃电力连接)而具有部分减少的电力使用(例如中等 占空度)。最终,一些设备可以具有短占空度并且只在电池电力上运行。换句话说,在某些实 施例中,结构可以包括可以根据连接类型和/或期望的电力使用连接到一个或多个子网络 的异构设备。图A至图C图示可以被用来经由结构中的一个或多个子网络来连接电气设备的 三个实施例。
[0094] A.单个网络拓扑
[0095] 图4图示具有单个网络拓扑的结构1000的实施例。如所图示的,结构1000包括单个 逻辑网络1002。网络1002能够包括以太网、WiFi、802.15.4、电力线网络和/或IPv6协议中的 其它适合的网络类型。事实上,在网络1002包括WiFi或以太网网络的一些实施例中,网络 1002可以横跨在链路层处桥接的多个WiFi和/或以太网段。
[0096] 网络 1002包括一个或多个节点 1004、1006、1008、1010、1012、1014 和 1016,被统称 为1004至1016。尽管所图示的网络1002包括七个节点,但是网络1002的某个实施例可以包 括使用网络1002互连的一个或多个节点。而且,如果网络1002是WiFi网络,则节点1004至 1016中的每一个可以使用节点1016(例如,WiFi路由器)来互连和/或使用WiFi直连(即, WiFi P2P)与其它节点配对。
[0097] B ·星型网络拓扑
[0098]图5图示作为具有星型网络拓扑的结构1018的结构1000的替选实施例。结构1018 包括将两个外围网络1022和1024接合在一起的集线器网络1020。集线器网络1020可以包括 诸如WiFi/以太网网络或电力线网络的家庭网络。外围网络1022和1024可以是与集线器网 络1020不同类型的附加的网络连接类型。例如,在一些实施例中,集线器网络1020可以是 WiFi/以太网网络,外围网络1022可以包括802.15.4网络,并且外围网络1024可以包括电力 线网络、ZigBee K网络、ISAlOO.lla网络、WirelessHART网络、或MiWi?网络。而且,尽管结构 1018的所图示的实施例包括三个网络,但是结构1018的某些实施例可以包括任何数目的网 络,诸如2、3、4、5或更多个网络。事实上,结构1018的一些实施例包括相同类型的多个外围 网络。
[0099]尽管所图示的结构1018包括各自由附图标记1024至1052单独地表示的十四个节 点,但是应该理解,结构1018可以包括任何数目的节点。可能直接在设备之间和/或通过接 入点(诸如WiFi/以太网网络中的节点1042)发生每个网络1020、1022或1024内的通信。外围 网络1022与外围网络1024之间的通信使用网络间路由节点通过集线器网络1020。例如,在 所图示的实施例中,节点1034和节点1036使用第一网络连接类型(例如802.15.4)连接到外 围网络1022并且使用第二网络连接类型(例如WiFi)连接到集线器网络1020,而节点1044使 用第二网络连接类型连接到集线器网络1020并且使用第三网络连接类型(例如电力线)连 接到外围网络1 〇 24。例如,从节点10 26发送到节点10 52的消息可以在途中通过节点1028、 1030、1032、1036、1042、1044、1048 和 1050 到节点 1052。
[0100] C.重叠网络拓扑
[0101]图6图示作为具有重叠网络拓扑的结构1054的结构1000的替选实施例。结构1054 包括网络1056和网络1058。如所图示的,节点1062、1064、1066、1068、1070和1072中的每一 个可以连接到网络中的每一个。在其它实施例中,节点1072可以包括以太网/WiFi网络的接 入点而不是端点,并且可能不存在于不是以太网/WiFi网络的网络1056或网络1058上。因 此,从节点1062到节点1068的通信可以通过网络1056、网络1058、或其一些组合。在所图示 的实施例中,每个节点能够使用所期望的任何网络经由任何网络与任何其它节点进行通 信。因此,与图5的星型网络拓扑不同,重叠网络拓扑可以在不使用网络间路由的情况下经 由任何网络在节点之间直接进行通信。
[0102] D.到服务的结构网络连接
[0103]除家庭内的设备之间的通信之外,结构(例如结构1000)可以包括可以物理上靠近 结构中的其它设备定位或者物理上远离这些设备的服务。结构通过一个或多个服务端点连 接到这些服务。图7图示服务1074与结构1076、1078和1080进行通信的实施例。服务1074可 以包括可以由结构1076、1078和/或1080中的设备使用的各种服务。例如,在一些实施例中, 服务1074可以是向设备供应日时间的日时间服务、用于提供各种天气数据(例如,外部温 度、日落、风力信息、天气预报等)的天气服务、"ping"每个设备的回声服务、数据管理服务、 设备管理服务和/或其它适合的服务。如所图示的,服务1074可以包括存储/访问相关数据 并且通过服务端点1084将信息传给结构(诸如结构1076)中的一个或多个端点1086的服务 器1082(例如web服务器)。尽管所图示的实施例仅包括具有单个服务器1082的三个结构,但 是应该了解,服务1074可以连接到任何数目的结构并且可以包括除服务器1082之外的服务 器和/或到附加服务的连接。
[0104] 在某些实施例中,服务1074还可以连接到诸如电话、平板、和/或计算机的消费者 设备1088。消费者设备1088可以被用来经由结构(诸如结构1076)、互联网连接、和/或一些 其它适合的连接方法连接到服务1074。消费者设备1088可以被用来从结构中的一个或多个 端点(例如电子设备)直接通过该结构或者经由服务1074来访问数据。换句话说,使用服务 1074,消费者设备1088可以被用来从结构远程地访问/管理结构中的设备。
[0105] E.结构中的设备之间的通信
[0106] 如上面所讨论的,每个电子设备或节点可以取决于结构拓扑和网络网络类型直接 或间接与结构中的任何其它节点进行通信。此外,一些设备(例如远程设备)可以通过服务 来通信以与结构中的其它设备进行通信。图8图示两个设备1092和设备1094之间的通信 1090的实施例。如上所述,通信1090可以直接或间接通过附加的设备和/或服务横跨一个或 多个网络。此外,通信1090可以使用一个或多个传输协议通过适当的通信协议(诸如IPv6) 而发生。例如,在一些实施例中通信1090可以包括使用传输控制协议(TCP)和/或用户数据 报协议(UDP)。在一些实施例中,设备1092可以使用无连接协议(例如,UDP)来向设备1094发 送第一信号1096。在某些实施例中,设备1092可以使用面向连接协议(例如TCP)来与设备 1094进行通信。尽管所图示的通信1090被描绘为双向连接,但是在一些实施例中,通信1090 可以是单向广播。
[0107] i.唯一本地地址
[0108] 如上面所讨论的,由节点接收到的在结构内传送的数据可以取决于用于通信的期 望目标通过节点被重定向或传到另一节点。在一些实施例中,数据的传输可能旨在被广播 到所有设备。在这些实施例中,可以在不用进一步处理的情况下重传数据以确定该数据是 否应该被一道传给另一节点。然而,可以将一些数据导向特定端点。为了使得被寻址消息能 够被传送到所期望的端点,可以给节点指派标识信息。
[0109] 可以给每个节点指派链路本地地址(LLA)集合,每个网络接口指派有一个LLA。这 些LLA可以被用来与同一网络上的其它节点进行通信。此外,LLA可以被用于各种通信过程, 诸如IPv6邻居发现协议。除LLA之外,可以给每个节点指派唯一本地地址(ULA)。
[0110] 图9图示可以被用来对结构中的每个节点进行寻址的唯一本地地址(ULAH098的 实施例。在某些实施例中,可以将ULA 1098格式化为包含被划分成全局ID 1110、子网ID 1102、和接口 ID 1104的128比特的IPv6地址格式。全局ID 1100包括40个比特并且子网ID 1102包括16个比特。全局ID 1100和子网ID 1102-起形成结构的结构ID 1103。
[0111] 结构ID 1103是用来标识结构的唯一 64比特标识符。可以在使用伪随机算法创建 相关联的结构时产生结构ID 1103。例如,伪随机算法可以1)获得64比特NTP格式的当前日 时间,2)获得设备的接口 ID 1104,3)将日时间与接口 ID 1104级联以创建密钥,4)对密钥进 行计算以及SHA-I摘要从而产生160个比特,5)将最低有效的40个比特用作全局ID 1100,并 且6)使ULA级联并且将最低有效比特设置为1以创建结构ID 1103。在某些实施例中,一旦以 该结构创建了结构ID 1103,则结构ID 1103就保持直到该结构被分解为止。
[0112] 全局ID 1100标识节点所属于的结构。子网ID 1102标识结构内的逻辑网络。可以 在将每个新的逻辑网络添加到结构情况下从一个子网ID开始单调地指派子网ID F3。例如, WiFi网络可以用十六进制值0x01标识,而后面连接的802.15.4网络可以在将每个新网络添 加到结构时递增地继续用十六进制值0x02标识。
[0113] 最后,ULA 1098包括包括64个比特的接口 ID 1104。可以根据IEEE EUI-64标准使 用全局唯一的64比特标识符来指派接口 ID 1104。例如,具有IEEE 802网络接口的设备可以 将烧入MAC地址用于设备"主接口"来得到接口 ID 1104。在一些实施例中,可以任意地确定 哪一个接口是主接口的指定。在其它实施例中,接口类型(例如WiFi)在存在时可以被视为 主接口。如果用于设备的主接口的MAC地址是48个比特而不是64比特,则可以经由封装(例 如,组织上唯一的标识符封装)将48比特MAC地址转换为EUI-64值。在消费者设备(例如,电 话或计算机)中,接口 ID 1104可以由消费者设备的本地操作系统来指派。
[0114] ii.逻辑网络之间的路由传输
[0115] 如上面关于星型网络拓扑所讨论的,可能在跨越逻辑网络的两个设备之间的通信 中发生网络间路由。在一些实施例中,网络间路由基于子网ID 1102。每个网络间节点(例 如,图5的节点1034)可以维护集线器网络1020及其相应的附接外围网络(例如,图5的外围 网络1024)上的其它路由节点(例如,图5的节点B 14)的列表。当寻址到除路由节点本身以 外的节点的分组到达时,目的地地址(例如,图5的节点1052的地址)与网络前缀的列表进行 比较,并且附接到所期望的网络(例如外围网络1024)的路由节点(例如节点1044)被选择。 分组然后被转发到所选择的路由节点。如果多个节点(例如,1034和1036)附接到到同一外 围网络,则以交替方式选择路由节点。
[0116] 此外,网络间路由节点可以在集线器网络上定期地传送邻居发现协议(NDP)路由 器广告消息,以向消费者设备报警集线器网络的存在并允许它们获取子网前缀。路由器广 告可以包括用于帮助在结构中路由信息的一个或多个路由信息选项。例如,这些路由信息 选项可以向消费者设备通知外围网络的存在以及如何将分组路由到外围网络。
[0117] 除路由信息选项之外或者代替路由信息选项,路由节点可以作为代理以在消费者 设备与外围网络中的设备之间提供连接,诸如如图16中所图示的过程1105。如所图示的,过 程1105包括每个外围网络设备通过将子网ID 1102与外围网络上的设备的接口 ID 1104组 合而在集线器网络上指派了虚拟地址(块1106)。为了使用虚拟地址代理,路由节点维护结 构中的可经由其接口中的一个直接达到的所有外围节点的列表(块1108)。路由节点使用其 虚拟地址在集线器网络上侦听请求外围节点的链路地址的邻居恳求消息(块1110)。在接收 到这种消息后,路由节点试图在一定时间段之后将虚拟地址指派给其集线器接口(块 1112)。作为指派的一部分,路由节点执行重复地址检测以便阻止通过多于一个路由节点代 理虚拟地址。在指派之后,路由节点对邻居恳求消息做出响应并接收分组(块1114)。在接收 到分组后,路由节点重写目的地地址以作为外围节点的真实地址(块1116)并且将消息转发 到适当的接口(块1118)。
[0118] iii.连接到结构的消费者设备
[0119] 为了加入结构,消费者设备可以发现已经在消费者设备想要加入的结构中的节点 的地址。此外,如果消费者设备已与结构断开达延长时间段,则可能需要在结构拓扑/布局 已改变的情况下再发现网络上的节点。为了帮助发现/再发现,集线器网络上的结构设备可 以经由mDNS发布域名系统-服务发现(DNS-SD)记录,其广告该结构的存在并向消费者设备 提供地址。
[0120] III.在结构中传送的数据
[0121] 在创建结构以及针对节点的地址创建之后,可以通过结构传送数据。可以按照为 所有消息所共有和/或为结构中的特定类型的会话所共有的格式来布置通过该结构传递的 数据。在一些实施例中,消息格式可以使用在下面所讨论的TLV串行化格式来使能到 JavaScript对象表示法(JSON)的一对一映射。此外,尽管以下数据帧被描述为包括特定大 小,但是应该注意,数据帧中的数据字段的长度对于其它适合的比特长度而言可以是变化 的。
[0122] 应该理解,在下面所讨论的以下数据帧、简档、和/或格式中的每一个可以在消息 传输之前和/或之后被存储在存储器(例如,设备10的存储器)中。换句话说,尽管数据帧、简 档、和格式通常可以作为数据的传输被讨论,但是它们还可以在数据帧、简档、和/或格式的 传输之前、期间、和/或之后被以物理方式存储(例如,在缓冲器中)。而且,以下数据帧、简 档、模式、和/或格式可以被存储在允许电子设备访问数据帧、简档、模式、和/或格式的非暂 时性计算机可读介质上。例如,用于对数据帧、简档、模式、和/或格式进行格式化的指令可 以被存储在任何适合的计算机可读介质中,诸如在设备10的存储器、另一设备的存储器、便 携式存储器设备(例如,光盘、闪存盘等)或适合于存储数据帧、简档、模式、和/或格式的其 它适合的物理设备中。
[0123] A.安全
[0124] 与旨在被传输的数据一起,结构可以利用诸如加密、消息完整性校验、和数字签名 的附加的安全度量来传输数据。在一些实施例中,设备所支持的安全的级别可以根据设备 的物理安全和/或设备的能力而变化。在某些实施例中,在结构中的节点之间发送的消息可 以利用128比特密钥使用在计数器模式(AES-CTR)下操作的高级加密标准(AES)块密码来加 密。如在下面所讨论的,每个消息包含32比特消息id。消息id可以与发送节点id组合来为 AES-CTR算法形成现时值(nonce)。32比特计数器使得40亿个消息能够在协商新密钥之前由 每个节点来加密和发送。
[0125] 在一些实施例中,结构可以使用可以被包括在每个加密的消息中的消息认证代码 (诸如HMAC-SHA-1)来保证消息完整性。在一些实施例中,可以使用与加密密钥一对一配对 的160比特消息完整性密钥来产生消息认证代码。此外,每个节点可以对照在节点对节点基 础上维护的最近接收到的id的列表来校验传入消息的消息id以阻止消息的再播。
[0126] B.标记长度值(TLV)格式化
[0127] 为了减少功耗,期望在使得数据容器能够灵活地表示容纳跳过数据(未通过跳过 到在数据的串行化内被理解的数据的下一个位置而被识别或理解)的数据的同时,紧凑地 发送通过结构发送的数据的至少一部分。在某些实施例中,标签长度值(TLV)格式化可以被 用来紧凑地且灵活地对数据进行编码/解码。通过将所传送的数据的至少一部分存储在TLV 中,可以与低编码/解码和存储器开销一起紧凑地且灵活地存储/发送数据,如下面参考表7 所讨论的。在某些实施例中,TLV可以被用于作为灵活的可扩展数据的一些数据,但是可以 按照被充分理解的标准协议数据单元(PDU)存储和发送不可扩展的数据的其它部分。
[0128] 可以将以TLV格式格式化的数据编码为各种类型(诸如原语类型和容器类型)的 TLV元素。原语类型包括某些格式的数据值,诸如整数或字符串。例如,TLV格式可以对1、2、 3、4或8字节有符号/无符号整数、UTF-8字符串、字节字符串、单/双精度浮点数(例如, IEEE754-1985格式)、布尔值、空值、以及其它适合的数据格式类型进行编码。容器类型包括 然后被细分类为容器或原语类型的元素的合集。可以将容器类型分类为各种类别,诸如词 典、阵列、路径或用于对TLV元素(被称为成员)进行分组的其它适合的类型。词典是在该词 典内各自具有不同定义和唯一标签的成员的合集。阵列是具有隐含定义或没有不同定义的 成员的有序合集。路径是描述了如何遍历TLV元素的树的成员的有序合集。
[0129] 如图11中所图示的,TLV分组1120的实施例包括三个数据字段:标签字段1122、长 度字段1124、和值字段1126。尽管所图示的字段1122、1124、和1126被图示为在大小上近似 相等,但是每个字段的大小可以是可变的并且相对于彼此在大小上变化。在其它实施例中, TLV分组1120还可以在标签字段1122之前包括控制字节。
[0130] 在具有控制字节的实施例中,可以将控制字节细分成元素类型字段和标签控制字 段。在一些实施例中,元素类型字段包括控制字节的5个更低比特并且标签控制字段占用高 3个比特。元素类型字段指示TLV元素的类型以及长度字段1124和值字段1126如何被编码。 在某些实施例中,元素类型字段还对用于TLV的布尔值和/或空值进行编码。例如,在下表1 中提供了元素类型字段的枚举的实施例。
[0132] 表1.示例元素类型字段值。
[0133] 标签控制字段指示指派给TLV元素的标签字段1122中的标签的形式(包括零长度 标签)。在下表2中提供了标签控制字段值的示例。
[0135] 表2.标签控制字段的示例值。
[0136] 换句话说,在具有控制字节的实施例中,控制字节可以指示标签的长度。
[0137] 在某些实施例中,标签字段1122可以包括零至八个字节,诸如八、十六、三十二、或 六十四个比特。在一些实施例中,可以将标签字段的标签分类为简档特定标签或上下文特 定标签。简档特定标签使用如在下面所讨论的厂商IcU简档IcU和/或标签号来全局地标识 元素。上下文特定标签在包含词典元素的上下文内标识TLV元素并且可以包括单字节标签 号。因为上下文特定标签是在它们的容器的上下文中定义的,所以单个上下文特定标签在 被包括在不同的容器中时可以具有不同的解释。在一些实施例中,还可以从嵌套容器得到 上下文。
[0138] 在具有控制字节的实施例中,标签长度被编码在标签控制字段中并且标签字段 1122包括可能的三个字段:厂商Id字段、简档Id字段、和标签号字段。按照完全限定形式,经 编码的标签字段1122包括具有包括由标签控制字段所确定的16或32个比特的标签号字段 的所有三个字段。按照隐式形式,标签仅包括标签号,并且厂商Id和简档号是从TLV元素的 协议上下文推理到的。如上面所讨论的,核心简档形式包括简档特定标签。上下文特定标签 被编码为传达该标签号的单个字节。无名元素具有零长度标签字段1122。
[0139] 在没有控制字节的一些实施例中,两个比特可以指示标签字段1122的长度,两个 比特可以指示长度字段1124的长度,并且四个比特可以指示存储在值字段1126中的信息的 类型。在下面在表3中图示针对标签字段的高8个比特的可能编码的示例。
[0141] 表3. TLV分组的标签字段
[0142] 如表3中所图示的,标签字段1122的高8个比特可以被用来对关于标签字段1122、 长度字段1124和值字段1126的信息进行编码,使得标签字段112可以被用来确定标签字段 122和长度字段1124的长度。标签字段1122中的剩余比特可以变得对于用户分配的和/或用 户指派的标签值是可用的。
[0143] 长度字段1124可以包括如由如表3中所图示的标签字段1122或如表2中所图示的 元素字段所指示的八、十六、三十二或六十四个比特。而且,长度字段1124可以包括表示编 码在值字段1126中的长度的无符号整数。在一些实施例中,长度可以由发送TLV元素的设备 来选择。值字段1126包括要解码的有效负荷数据,但是值字段1126的解释可以取决于标签 长度字段和/或控制字节。例如,为了说明而在下表4中图示了包括8比特标签的没有控制字 节的TLV分组。
[0145] 表4.包括8比特标签的TLV分组的示例
[0146] 如表4中所图示的,第一行指示标签字段1122和长度字段1124各自具有8个比特的 长度。此外,标签字段1122指示第一行的标签类型是容器(例如TLV分组)。第二行至第六行 的标签字段1124指示TLV分组中的每个条目具有各自由8个比特构成的标签字段1122和长 度字段1124。此外,标签字段1124指示TLV分组中的每个条目具有包括32比特浮点的值字段 1126。值字段1126中的每个条目与可以使用对应的标签字段1122和长度字段1124信息来解 码的浮点数相对应。如这个示例中所图示的,值字段1126中的每个条目与华氏温度相对应。 如可以理解的,通过像上面所描述的那样将数据存储在TLV分组中,可以在保持灵活以便改 变如可以由结构中的不同设备所使用的长度和信息的同时紧凑地传输数据。而且,在一些 实施例中,可以按照小端顺序或大端顺序传送多字节整数字段。
[0147] 通过在使用可以通过发送/接收设备格式(例如JS0N)来使用的顺序协议(例如小 端)时传送TLV分组,可以按照由节点中的至少一个所使用的顺序协议(例如小端)传送在节 点之间传输的数据。例如,如果一个或多个节点包括ARM或ix86处理器,则可以使用小端字 节排序来传送节点之间的传输以减少字节再排序的使用。通过减少字节再排序的包括 (inclusion),TLV格式使得设备能够使用比在传输的两端上使用字节再排序的传输更少的 功率来进行通信。此外,可以指定TLV格式化以在其它数据存储技术(诸如JSON+可扩展标记 语言(XML))之间提供一对一转化。作为示例,TLV格式可以被用来表示以下XML属性列表: <?xml version="I.Of' Ctieddiiig=lfUTF-Sf'?> <! DOCTYPE plist PUBLIC ''-/./Apple Computer//DTD PLIST 1.0//ΕΝ" ''http://www;a|5plex〇m/DTDs/Pf〇pertyList-i.0.dM''> <plist version='11.0"> <dict> <key>OfflineMode</key> <false/> <key>Net.work</key>
[0148] <dict> <key>IP v4</key > <dict> <key>Metliod</key> <string>dhcp</string> </dict> <key> IP v6</key> <dict> <key > M eth od</key> <string>auto</string> </dict> </dict> <key>Tech no I ogi es</key> <dict> <k.ey > w i fi </key> <dict> <key> En ab I ecK/key^ <true/> <key>Devices</key> -dict> < k e y > w i fi _ 18 b4300008 b02 7</k e y > <dict> <key>Hnabled</key> <true/> 〈/diet〉
[0149] </dict> <key>Services<7key> <array> <string>wifi_i8b43UUU08b()27_3939382d332Q4 16c70696e652054657 272616365<7string> </array> </dict> <key>802.1 5.4</key> <dict> <key> Hnab I ed<7k ey> <true/> < k e y > Device s</k e y > <dict> <key>_2.154_18b43000000Q〇2&c4</key> <dict> <key>Bnabled</key> <true/> </dict> </dict> <key>Services</key> <arrav> <suing>802.15.4__! 8b43000000002iac4___3 93938243320416c70696c6520546572</striiig> 〈/array > </dict> </diGt> <key> Sefviees</key> <dict> <key>wifi i8b43000G8b()27__3939382d3320416c70696e652054657 2726163-65</key>
[0150] <dict> <key>N aine</k ey> <string>998-3 Alpine Terrace</string> <k ey>SS I D</kev> <data>3939382d3320416c70696e652054657272616365 </data> <key>Frequency</k^y> <integer>2462</integer> <kev>AutoConnect</key> <truc/> <key>FaY〇rite</k€y> <true/> <k e y > E rro i</k e y > <string/> <key>Network</key> <dict> <key>lPv4</key> <diet> <key>DHCP</kcv> <dict> <key>LastAddress</key> <data>0a02001 e</dala> </diet> <7dict> <key>I Pv6</key> <dici/> </dict> </dict> <key>8U2. i 5.4_! 8b430U0000002fac4_3939382d33204 ] 6c70696 e6520546572</kev>
[0151] ' <dict> <key>Nairie</key> <string>998-3 Alpine Ter</string> <kcy>EP AN I D</kcy> <data>3939382d33204】6c706%e652()546572</data> <key>Frequency</key> <integer>2412</integer> <key>AutoConnect</key> <true/> <key>Favorite</key> <tru.e/> <k ey > E r r o r </ k e y > <slring/> <key >N etwork</key> <dici/> </dict> </dict>
[0152] </dict> </plist
[0153] 作为示例,可以根据下表5在上面描述的TLV格式(没有控制字节)的标签中表示上 述属性列表。
[0155] 表5. TLV格式中的XML属性列表的示例性表示
[0156] 类似地,表6图示针对示例XML属性列表的文字标签、长度、和倌表示的示例。

[0158] 表6.针对XML属性列表的标签、长度、和值字段的文字值的示例
[0159] TLV格式使能还可以用XML枚举,但是在更小存储大小情况下才这样做的属性的引 用。例如,表7图示XML属性列表、对应的二进制属性列表、和TLV格式的数据大小的比较。

[0161] 表7.属性列表数据大小的大小的比较。
[0162] 通过减少用来传输数据的数据的量,TLV格式使得结构1000能够向和/或从由于有 限功率而具有短工作周期的设备(例如,电池供电的设备)传输数据。换句话说,TLV格式在 增加要传送的数据的紧凑性的同时允许传输的灵活性。
[0163] C.通用消息协议
[0164] 除发送变化大小的特定条目之外,可以使用可以并入TLV格式化的通用消息协议 在结构内传送数据。在图12中图示了通用消息协议(GMPH128的实施例。在某些实施例中, 通用消息协议(GMP) 1128可以被用来在结构内传送数据。GMP 1128可以被用来经由无连接 协议(例如UDP)和/或面向连接协议(例如TCP)来发送数据。因此,GMP 1128可以在当使用另 一协议时忽视这种信息的同时灵活地适应在一个协议中使用的信息。而且,GMP 1226可以 使得能够省略在特定传输中未使用的字段。可以从一个或多个GMP 1226传输中省略的数据 通常使用在数据单元附近的灰色边界来指示。在一些实施例中,可以按照小端顺序或大端 顺序传送多字节整数字段。
[0165] i.分组长度
[0166] 在一些实施例中,GMP 1128可以包括分组长度字段1130。在一些实施例中,分组长 度字段1130包括2个字节。分组长度字段1130中的值与指示排除分组长度字段1130本身的 以字节为单位的消息的总长度的无符号整数相对应。当通过TCP连接传送GMP 1128时可以 存在分组长度字段1130,但是当通过UDP连接传送GMP 1128时,消息长度可以等于消除分组 长度字段1130的底层UDP分组的有效负荷长度。
[0167] ii.消息报头
[0168] GMP 1128还可以不管GMP 1128是使用TCP连接还是UDP连接来传送都包括消息报 头1132。在一些实施例中,消息报头1132包括以图13中所图示的格式布置的两个字节的数 据。如图13中所图示的,消息报头1132包括版本字段1156。版本字段1156与被用来对消息进 行编码的GMP 1128的版本相对应。因此,随着GMP 1128被更新,可以创建GMP 1128的新版 本,但是结构中的每个设备可以能够在为设备所知的GMP 1128的任何版本中接收数据分 组。除版本字段1156之外,消息报头1132还可以包括S标志字段1158和D标志1160 d标志 1158是指示源节点Id(在下面讨论)字段是否被包括在所传送的分组中的单个比特。类似 地,D标志1160是指示目的地节点Id(在下面讨论)字段是否被包括在所传送的分组中的单 个比特。
[0169] 消息报头1132还包括加密类型字段1162。若有的话,加密类型字段1162包括指定 哪一种类型的加密/完整性校验被应用于该消息的四个比特。例如,0x0可以指示不包括加 密或消息完整性校验,但是十进制Ox 1可以指示包括具有HMAC-SHA-I消息完整性校验的 AES-128-CTR 加密。
[0170] 最后,消息报头1132还包括签名类型字段1164。若有的话,签名类型字段1164包括 指示哪一种类型的数字签名被应用于该消息的四个比特。例如,0x0可以指示没有数字签名 被包括在该消息中,但是Oxl可以指示具有Prime256vl椭圆曲线参数的椭圆曲线数字签名 算法(E⑶SA)被包括在该消息中。
[0171] iii.消息Id
[0172] 返回到图12,GMP 1128还包括可以不管消息是使用TCP还是UDP来发送都被包括在 所传送的消息中的消息Id字段1134。消息Id字段1134包括与从发送节点的观点看唯一地标 识消息的无符号整数值相对应的四个字节。在一些实施例中,节点可以将渐增消息Id 1134 值指派给它们发送的每个消息,从而在达到232个消息之后返回到零。
[0173] iv.源节点 Id
[0174] 在某些实施例中,GMP 1128还可以包括包含八个字节的源节点Id字段1136。如上 面所讨论的,当消息报头1132中的单比特S标志1158被设置为1时源节点Id字段1136可以存 在于消息中。在一些实施例中,源节点Id字段1136可以包含ULA 1098的接口 ID 1104或整个 ULA 1098。在一些实施例中,按照上升索引值顺序(例如,EUI [0]然后EUI [1]然后EUI[2]然 后EUI[3]等)传送源节点Id字段1136的字节。
[0175] V.目的地节点Id
[0176] GMP 1128可以包括包含八个字节的目的地节点Id字段1138。目的地节点Id字段 1138与源节点Id字段1136类似,但是目的地节点Id字段1138与消息的目的地节点相对应。 当消息报头1132中的单比特D标志1160被设置为1时目的地节点I d字段1138可以存在于消 息中。并且与源节点Id字段1136类似,在一些实施例中,可以按照上升索引值顺序(例如, EUI[0]然后EUI[1]然后EUI[2]然后EUI[3]等)传送目的地节点Id字段1138的字节。
[0177] vi.密钥Id
[0178] 在一些实施例中,GMP 1128可以包括密钥Id字段1140。在某些实施例中,密钥Id字 段1140包括两个字节。密钥Id字段1140包括标识用来对消息进行加密的加密/消息完整性 密钥的无符号整数值。密钥Id字段1140的存在可以通过消息报头1132的加密类型字段1162 的值来确定。例如,在一些实施例中,当消息报头1132的加密类型字段1162的值是0x0时,可 以从该消息中省略密钥Id字段1140。
[0179] 在图20中呈现了密钥Id字段1140的实施例。在所图示的实施例中,密钥Id字段 1140包括密钥类型字段1166和密钥号字段1168。在一些实施例中,密钥类型字段1166包括 四个比特。密钥类型字段1166与标识用来对消息进行加密的加密/消息完整性的类型的无 符号整数值相对应。例如,在一些实施例中,如果密钥类型字段1166是0x0,则结构密钥被结 构中的所有或大多数节点共享。然而,如果密钥类型字段1166是0x1,则结构密钥被结构中 的一对节点共享。
[0180]密钥Id字段1140还包括包含与从可用密钥(共享密钥或结构密钥)集合当中标识 用来对消息进行加密的特定密钥的无符号整数值相对应的十二个比特的密钥号字段1168。
[0181] vii.有效负荷长度
[0182] 在一些实施例中,GMP 1128可以包括有效负荷长度字段1142。有效负荷长度1142 在存在时可以包括两个字节。有效负荷长度字段1142与指示应用有效负荷字段的字节大小 的无符号整数值相对应。当利用使用如在下面关于填充字段所描述的消息填充的算法来对 消息进行加密时,可以存在有效负荷长度字段1142。
[0183] viii.初始化向量
[0184] 在一些实施例中,GMP 1128还可以包括初始化向量(IV)字段1144 JV字段1144当 存在时包括可变数目字节的数据。IV字段1144包含用来对消息进行加密的加密IV值。当消 息利用使用IV的算法进行加密时可以使用IV字段1144。可以通过用来对消息进行加密的加 密的类型来得到IV字段1144的长度。
[0185] ix.应用有效负荷
[0186] GMP 1128包括应用有效负荷字段1146。应用有效负荷字段1146包括可变数目的字 节。应用有效负荷字段1146包括在消息中所传达的应用数据。应用有效负荷字段1146的长 度可以在存在时根据有效负荷长度字段1142来确定。如果有效负荷长度字段1142不存在, 则可以通过将包括在应用有效负荷1146(例如TLV)内的消息和/或数据值的总长度减去所 有其它字段的长度来确定应用有效负荷字段1146的长度。
[0187] 在图15中图示了应用有效负荷字段1146的实施例。应用有效负荷字段1146包括 APVersion字段1170。在一些实施例中,APVersion字段1170包括指示结构软件的什么版本 被发送设备支持的八个比特。应用有效负荷字段1146还包括消息类型字段1172。消息类型 字段1172可以包括与指示正在简档内发送的消息的类型的消息操作代码相对应的八个比 特。例如,在软件更新简档中,0x00可以指示正被发送的消息是映像通告。应用有效负荷字 段1146还包括包括与对于用于事务的发送节点而言唯一的交换标识符相对应的十六个比 特。
[0188] 此外,应用有效负荷字段1146包括简档Id字段1176。简档Id 1176指示用来指示在 消息中发送什么类型的通信的"讨论的主题"。简档Id 1176可以与设备也许能够进行通信 的一个或多个简档相对应。例如,简档Id 1176可以指示消息涉及核心简档、软件更新简档、 状态更新简档、数据管理简档、气候与舒适简档、安全性简档、安全简档、和/或其它适合的 简档类型。结构上的每个设备可以包括与设备相关并且设备能够"参与讨论"的简档的列 表。例如,结构中的许多设备可以包括核心简档、软件更新简档、状态更新简档、以及数据管 理简档,但是仅一些设备将包括气候与舒适简档。APVersion字段1170、消息类型字段1172、 交换Id字段、简档Id字段1176、和简档特定报头字段1176(若存在的话)可以被相结合地称 为"应用报头"。
[0189] 在一些实施例中,经由简档Id字段1176指示简档Id可以提供足够的信息来提供针 对简档传送的数据的模式。然而,在一些实施例中,附加信息可以被用来确定用于对应用有 效负荷字段1146进行解码的进一步指导。在这些实施例中,应用有效负荷字段1146可以包 括简档特定报头字段1178。一些简档可能不使用简档特定报头字段1178,从而使得应用有 效负荷字段1146能够省略简档特定报头字段1178。在根据简档Id字段1176和/或简档特定 报头字段1178确定模式后,可以在应用有效负荷子字段1180中对数据进行编码/解码。应用 有效负荷子字段1180包括要在设备之间传送的核心应用数据和/或要由接收设备/服务存 储、重播、和/或遵照的服务。
[0190] X.消息完整性校验
[0191] 返回到图12,在一些实施例中,GMP 1128还可以包括消息完整性校验(MIC)字段 1148 JIC字段1148当存在时包括包含针对消息的MIC的可变长度字节的数据。该字段的长 度和字节顺序取决于使用中的完整性校验算法。例如,如果使用HMAC-SHA-I针对消息完整 性而对消息进行校验,则MIC字段1148按照大端顺序包括二十个字节。此外,可以通过消息 报头1132的加密类型字段1162是否包括除0x0以外的任何值来确定MIC字段1148的存在。
[0192] xi.填充
[0193] GMP 1128还可以包括填充字段1150。填充字段1150当存在时包括表示加密填充的 字节序列,所述加密填充被添加到消息以使得消息的已加密部分可被加密块大小整除的。 可以通过由消息报头1132中的加密类型字段1162所指示的加密算法(例如,在密码块链模 式下的块密码)的类型是否使用加密填充,来确定填充字段1150的存在。
[0194] xii.加密
[0195] 应用有效负荷字段1146、MIC字段1148、和填充字段1150-起形成加密块1152。加 密块1152包括在消息报头1132中的加密类型字段1162是除0x0以外的任何值时被加密消息 的部分。
[0196] xiii.消息签名
[0197] GMP 1128还可以包括消息签名字段1154。消息签名字段1154当存在时包括包含消 息的加密签名的可变长度的字节序列。可以根据使用中并且由消息报头1132的签名类型字 段1164所指示的签名算法的类型来确定消息签名字段的长度和内容。例如,如果使用 Prime256vl椭圆曲线参数的ECDSA是使用中的算法,则消息签名字段1154可以包括按照小 端顺序编码的两个三十二比特整数。
[0198] IV.简档和协议
[0199] 如上面所讨论的,可以根据消息的期望的通用讨论类型来选择信息的一个或多个 模式。简档可以由一个或多个模式构成。例如,信息的模式的一个集合可以被用来当在应用 有效负荷1146的简档Id字段1176中指示了一个简档时,在应用有效负荷子字段1180中对数 据进行编码/解码。然而,模式的不同集合可以被用来当在应用有效负荷1146的简档Id字段 1176中指示了不同简档时,在应用有效负荷子字段1180中对数据进行编码/解码。
[0200] 此外,在某些实施例中,每个设备可以包括用来处理简档的方法集合。例如,核心 协议可以包括以下简档:GetProfiles、GetSchema、GetSchemas、GetProperty、 GetProperties、SetProperty、SetProperties、RemoveProperty、RemoveProperties、 RequestEcho、NotifyPropertyChanged、^P/^NotifyPropertiesChanged〇GetProfiles* 法可以返回由被查询节点所支持的简档的阵列。GetSchema和GetSchemas方法可以针对特 定简档分别返回一个或所有模式。GetProperty和GetProperties可以针对简档模式分别返 回一个值或所有值对。SetProperty和SetProperties可以针对简档模式分别设置单个值或 多个值。RemoveProperty和RemoveProperties可以分别试图从简档模式中移除单个值或多 个值。RequeStEcho可以向返回未修改的节点的指定节点发送任意数据有效负荷。 式改变的情况下分别发出通知。
[0201] 为了帮助理解简档和模式,出于说明性目的在下面提供了简档和模式的非排他性 列表。
[0202] A.状态报告
[0203]在图16中,状态报告模式被呈现为状态报告帧1182。状态报告模式可以是单独的 简档或者可以被包括在一个或多个简档(例如核心简档)中。在某些实施例中,状态报告帧 1182包括简档字段1184、状态代码字段1186、下一个状态字段1188,并且可以包括附加状态 信息字段1190。
[0204] i.简档字段
[0205]在一些实施例中,简档字段1184包括定义简档的四个字节的数据,将根据该简档 解释目前状态报告中的信息。简档字段1184的实施例在图23中用两个子字段图示。在所图 示的实施例中,简档字段1184包括包含与简档的厂商特定标识符相对应的十六个比特的简 档Id子字段1192,根据该简档定义状态代码字段1186的值。简档字段1184还可以包括包含 标识提供在简档Id子字段1192中标识的简档的厂商的十六个比特的厂商Id子字段1194。 [0206] ii.状态代码
[0207]在某些实施例中,状态代码字段1186包括对正被报告的状态进行编码的十六个比 特。状态代码字段1186中的值是关于在简档字段1184中提供的厂商Id子字段1192和简档Id 子字段1194中编码的值而解释的。此外,在一些实施例中,可以将状态代码空间划分成四个 组,如下表8中所指示的。
[0209] 表8.状态代码范围表
[0210]尽管表8标识可以被单独地指派并用于每个特定简档Id的通用状态代码范围,但 是在一些实施例中,一些状态代码可以为这些简档中的每一个所共有。例如,这些简档可以 使用公共简档(例如,核心简档)标识符(诸如0x00000000)来标识。
[0211] iii.下一个状态
[0212] 在一些实施例中,下一个状态代码字段1188包括八个比特。下一个状态代码1188 指示在当前报告的状态之后是否存在以下状态信息。如果以下状态信息将被包括,则下一 个状态代码字段1188指示什么类型的状态信息将被包括。在一些实施例中,可以总是包括 下一个状态代码字段1188,从而潜在地增加消息的大小。然而,通过提供用于将状态信息链 接在一起的机会,可以减少所发送的数据总体减少的可能性。如果下一个状态字段1186是 0x00,则不包括以下状态信息字段1190。然而,非零值可以指示可以包括数据并且指示数据 被包括(例如在TLV分组中)的形式。
[0213] iv.附加状态信息
[0214] 当下一个状态代码字段1188是非零时,附加状态信息字段1190被包括在消息中。 如果存在,则状态项字段可以按照可以通过在先状态类型字段的值来确定的形式(例如TLV 格式)包含状态。
[0215] B.软件更新
[0216] 软件更新简档或协议是使得客户端能够变得知道或者寻求关于它们可以下载并 安装的软件的存在的信息的模式和/或客户端/服务器协议的集合。使用软件更新协议,可 以按照为客户端所知的格式向简档客户端提供软件映像。软件映像的后续处理可以是通用 的、设备特定的或厂商特定的,并且通过软件更新协议和设备来确定。
[0217] i.用于应用有效负荷的通用应用报头
[0218] 为了被适当地识别和处理,可以在GMP 1128的应用有效负荷字段1146内标识软件 更新简档帧。在一些实施例中,所有软件更新简档帧可以使用诸如0X0000000C的公共简档 Id 1176。附加地,软件更新简档帧可以包括指示附加信息的消息类型字段1172并且可以根 据下表9和正被发送的消息的类型来选择。
[0220] 表9.软件更新简档消息类型
[0221] 附加地,如在下面所描述的,软件更新序列可以通过服务器发送更新作为映像通 告或者客户端接收更新作为映像查询来发起。在任何一个实施例中,来自发起事件的交换 Id 1174被用于关于软件更新而使用的所有消息。
[0222] ii.协议序列
[0223]图18图示针对软件更新客户端1198与软件更新服务器1200之间的软件更新的协 议序列1196的实施例。在特定实施例中,结构中的任何设备可以是软件更新客户端1198或 软件更新服务器1200。协议序列1196的特定实施例可以包括可以在一些软件更新传输中省 略的附加步骤,诸如图示为虚线的那些步骤。
[0224] 1.服务发现
[0225] 在一些实施例中,协议序列1196始于软件更新简档服务器通告更新的存在。然而, 在其它实施例(诸如所图示的实施例)中,如上面所讨论的,协议序列1196始于服务发现 1202〇
[0226] 2.映像通告
[0227] 在一些实施例中,可以由软件更新服务器1200来多播或单播映像通告消息1204。 映像通告消息1204通知结构中的设备服务器1200具有软件更新要提供。如果更新适用于客 户端1198,则在接收到映像通告消息1204后,软件更新客户端1198用映像查询消息1206做 出响应。在特定实施例中,可能不将映像通告消息1204包括在协议序列1196中。替代地,在 这些实施例中,软件更新客户端119 8可以使用轮询调度来确定何时发送映像查询消息 1206〇
[0228] 3.映像查询
[0229] 在某些实施例中,如上面所讨论的,可以响应于映像通告消息1204或者根据轮询 调度来从软件更新客户端1198单播映像查询消息1206。映像查询消息1206包括来自客户端 1198关于它本身的信息。在图19中图示了映像查询消息1206的帧的实施例。如图19中所图 示的,映像查询消息1206的某些实施例可以包括帧控制字段1218、产品规格字段1220、厂商 特定数据字段1222、版本规格字段1224、场所规格字段1226、所支持完整性类型字段1228以 及所支持更新方案字段1230。
[0230] a.帧控制
[0231]帧控制字段1218包括1个字节并且指示关于映像查询消息1204的各种信息。在图 20中图示了帧控制字段128的示例。如所图示的,帧控制字段1218可以包括三个子字段:厂 商特定标志1232、场所规格标志1234、和保留字段S3。厂商特定标志1232指示厂商特定数据 字段1222是否被包括在消息映像查询消息中。例如,当厂商特定标志1232是0时无厂商特定 数据字段1222可以存在于映像查询消息中,但是当厂商特定标志1232是1时厂商特定数据 字段1222可以存在于映像查询消息中。类似地,场所规格标志1234中的1值指示场所规格字 段1226存在于映像查询消息中,而0值指示场所规格字段1226不存在于映像查询消息中。 [0232] b.产品规格
[0233]产品规格字段1220是六字节字段。在图21中图示了产品规格字段1220的实施例。 如所图示的,产品规格字段1220可以包括三个子字段:厂商Id字段1236、产品Id字段1238、 和产品修订字段1240。厂商Id字段1236包括指示软件更新客户端1198的厂商的十六个比 特。产品Id字段1238包括将正在发送映像查询消息1206的设备产品指示为软件更新客户端 1198的十六个比特。产品修订字段1240包括指示软件更新客户端1198的修订属性的十六个 比特。
[0234] c.厂商特定数据
[0235] 厂商特定数据字段1222当存在于映像查询消息1206中时具有可变数目的字节的 长度。可以根据帧控制字段1218的厂商特定标志1232来确定厂商特定数据字段1222的存 在。如上所述,当存在时,厂商特定数据字段1222按照TLV格式对关于软件更新客户端1198 的厂商特定信息进行编码。
[0236] d.版本规格
[0237] 在图22中图示了版本规格字段1224的实施例。版本规格字段1224包括被细分成以 下两个子字段的可变数目的字节:版本长度字段1242和版本字符串字段1244。版本长度字 段1242包括指示版本字符串字段1244的长度的八个比特。版本字符串字段1244在长度上可 变并且由版本长度字段1242来确定。在一些实施例中,可以在长度上以255个UTF-8字符覆 盖版本字符串字段1244。在版本字符串字段1244中编码的值指示针对软件更新客户端1198 的软件版本属性。
[0238] e.场所规格
[0239] 在某些实施例中,当帧控制1218的场所规格标志1234是1时可以将场所规格字段 1226包括在映像查询消息1206中。在图23中图示了场所规格字段1226的实施例。场所规格 字段1226的所图示的实施例包括被细分成以下两个子字段的可变数目的字节:场所字符串 长度字段1246和场所字符串字段1248。场所字符串长度字段1246包括指示场所字符串字段 1248的长度的八个比特。场所规格字段1226的场所字符串字段1248可以在长度上可变并且 包含基于便携式操作系统接口(POSIX)场所代码对本地描述进行编码的UTF-8字符的字符 串。POSIX场所代码的标准格式是[language[_territory] [·codeset] [Omodif ier]]。例如, 澳大利亚英语的POSIX表示是en_AU. UTF8。
[0240] f.所支持完整性类型
[0241] 在图24中图示了完整性类型字段1228的实施例。所支持完整性类型字段1228包括 被细分成以下两个子字段的两至四个字节的数据:类型列表长度字段1250和完整性类型列 表字段1252。类型列表长度字段1250包括指示完整性类型列表字段1252的字节长度的八个 比特。完整性类型列表字段1252指示软件更新客户端1198的软件更新完整性类型属性的 值。在一些实施例中,完整性类型可以从下表10得到。
[0243] 表10.示例完整性类型
[0244] 完整性类型列表字段1252可以包含来自表10的至少一个元素或未包括的其它附 加值。
[0245] g.受支持更新方案
[0246] 在图25中图示了所支持方案字段1230的实施例。所支持方案字段1230包括被划分 成以下两个子字段的可变数目的字节:方案列表长度字段1254和更新方案列表字段1256。 方案列表长度字段1254包括指示更新方案列表字段的字节长度的八个比特。所支持更新方 案字段1222的更新方案列表字段1256在长度上可变并且由方案列表长度字段1254来确定。 更新方案列表字段1256表示软件更新客户端1198的软件更新简档的更新方案属性。在下表 11中示出了示例值的实施例。
[0248]表11.示例更新方案
[0249]在接收到映像查询消息1206后,软件更新服务器1200使用所发送的信息来确定软 件更新服务器1200是否具有针对软件更新客户端1198的更新并且如何最好地将更新递送 给软件更新客户端1198。
[0250] 4.映像查询响应
[0251] 返回到图18,在软件更新服务器1200从软件更新客户端1198接收到映像查询消息 1206之后,软件更新服务器1200用映像查询响应1208做出响应。映像查询响应1208包括详 述更新映像为什么不可被软件更新客户端1198利用的信息或者关于可用映像更新以使得 软件更新客户端1198能够下载和安装更新的信息。
[0252] 在图26中图示了映像查询响应1208的帧的实施例。如所图示的,映像查询响应 1208包括五个可能的子字段:查询状态字段1258、统一资源标识符(URI)字段1260、完整性 规格字段1262、更新方案字段1264和更新选项字段1266。
[0253] a.查询状态
[0254]查询状态字段1258包括可变数目的字节并且包含状态报告格式化数据,如参考状 态报告上面所讨论的。例如,查询状态字段1258可以包括映像查询响应状态代码,诸如在下 面表12中所图示的那些。
[0256] 表12.示例映像查询响应状态代码
[0257] b.URI
[0258] URI字段1260包括可变数目的字节。可以通过查询状态字段1258来确定URI字段 1260的存在。如果查询状态字段1258指示更新是可用的,则可以包括URI字段1260。在图27 中图示了URI字段1260的实施例。URI字段1260包括两个子字段:URI长度字段1268和URI字 符串字段1270 WRI长度字段1268包括指示UTF-8字符的URI字符串字段1270的长度的十六 个比特。URI字符串字段1270指示正被呈现的软件映像更新的URI属性,使得软件更新客户 端1198也许能够在存在时定位、下载并安装软件映像更新。
[0259] c ·完整性规格
[0260]完整性规格字段1262可以在长度上可变并且在查询状态字段1258指示更新可从 软件更新服务器1198被软件更新客户端1198利用时存在。在图28中图示了完整性规格字段 1262的实施例。如所图示的,完整性规格字段1262包括两个子字段:完整性类型字段1272和 完整性值字段1274。完整性类型字段1272包括指示软件映像更新的完整性类型属性并且可 以使用与上表10中所图示的列表类似的列表来填充的八个比特。完整性值字段1274包括被 用来验证映像更新消息已在传输期间维持完整性的完整性值。
[0261] d.更新方案
[0262]更新方案字段1264包括八个比特并且在查询状态字段1258指示更新可从软件更 新服务器1198被软件更新客户端1198利用时存在。如果存在,则更新方案字段1264指示针 对正被呈现给软件更新服务器1198的软件更新映像的方案属性。
[0263] e.更新选项
[0264]更新选项字段1266包括八个比特并且在查询状态字段1258指示更新可从软件更 新服务器1198被软件更新客户端1198利用时存在。可以像图29中所图示的那样细分更新选 项字段1266。如所图示的,更新选项字段1266包括四个子字段:更新优先级字段1276、更新 条件字段1278、报告状态标志1280和保留字段1282。在一些实施例中,更新优先级字段1276 包括两个比特。更新优先级字段1276指示更新的优先级属性,并且可以使用诸如下表13中 所图示的那些值的值来确定。
[0266] 表13.示例更新优先级值
[0267] 更新条件字段1278包括可以被用来确定用于确定何时或是否更新的条件因素的 三个比特。例如,可以使用下表14来对更新条件字段1278中的值进行解码。
[0269]表14.示例更新条件
[0270]报告状态标志1280是指示软件更新客户端1198是否应该用下载通知消息1210做 出响应的单个比特。如果报告状态标志1280被设置为1,则软件更新服务器1198正在请求下 载通知消息1210在软件更新由软件更新客户端1200下载之后发送。
[0271] 如果映像查询响应1208指示更新是可用的。软件更新客户端1198在映像查询响应 1208中所指示的时间处使用包括在映像查询响应1208中的信息来下载1210更新。
[0272] 5.下载通知
[0273]在更新下载1210成功地完成或失败了并且报告状态标志1280值是1之后,软件更 新客户端1198可以用下载通知消息1212做出响应。可以根据上面所讨论的状态报告格式来 对下载通知消息1210进行格式化。在下表15中图示了下载通知消息1212中使用的状态代码 的示例。
[0275] 表15.示例下载通知状态代码
[0276] 除上面所描述的状态报告之外,下载通知消息1208可以包括可能与下载和/或未 能下载相关的附加状态信息。
[0277] 6.通知响应
[0278] 软件更新服务器1200可以响应于下载通知消息1212或更新通知消息1216来用通 知响应消息1214做出响应。如上所述,通知响应消息1214可以包括状态报告格式。例如,通 知响应消息1214可以包括如下表16中所枚举的状态代码。
[0280] 表16.示例通知响应状态代码
[0281] 除上面所描述的状态报告之外,通知响应消息1214可以包括可能与用于下载/更 新软件更新的下载、更新、和/或失败相关的附加状态信息。
[0282] 7.更新通知
[0283]在更新成功地完成或失败了并且报告状态标志1280值是1之后,软件更新客户端 1198可以用更新通知消息1216做出响应。更新通知消息1216可以使用上面所描述的状态报 告格式。例如,更新通知消息1216可以包括如下表17中所枚举的状态代码。
[0285] 表17.示例更新通知状态代码
[0286] 除上面所描述的状态报告之外,更新通知消息1216可以包括可能与更新和/或更 新失败相关的附加状态信息。
[0287] C.数据管理协议
[0288] 数据管理可以被包括在结构内的各种电子设备中所使用的公共简档(例如,核心 简档)中或者可以被指定为单独的简档。在任何情形下,设备管理协议(DMP)可以被用于节 点浏览、共享和/或更新节点驻留信息。在图30中图示了 DMP中使用的序列1284。序列1284图 示请求查看和/或改变被查看节点1288的驻留数据的查看节点1286。此外,查看节点1286可 以请求使用数个查看选项中的一个(诸如快照请求、查看在一定时间段期间持续的观看请 求或其它适合的查看类型)来查看驻留数据。每个消息遵循参考图15所描述的应用有效负 荷1146的格式。例如,每个消息包含对应于数据管理简档和/或相关核心简档的简档Id 1176,诸如0x235A0000。每个消息还包含消息类型1172。消息类型1172可以被用来确定与会 话有关的各种因素,诸如用于视图的查看类型。例如,在一些实施例中,可以根据下表18对 消息类型字段1172进行编码/解码。

[0290] 表18.示例软件更新简档消息类型
[0291] i.视图请求
[0292] 如上面所讨论的,尽管视图请求消息1290请求查看节点驻留数据,但是请求的类 型可以由消息类型字段1172确定。因此每个请求类型可以包括不同的视图请求帧。
[0293] 丨.快照请求
[0294] 当查看节点1286期望在不用请求将来更新的情况下进入被查看节点1288上的节 点驻留数据的即时查看时可以由查看节点1286发送快照请求。在图31中图示了快照请求帧 1292的实施例。
[0295] 如图31中所图示的,快照请求帧1292可以在长度上可变并且包括三个字段:视图 句柄字段1294、路径长度列表字段1296、和路径列表字段1298。视图句柄字段1294可以包括 提供"句柄"来标识所请求的视图的两个比特。在一些实施例中,视图句柄字段1294与在请 求被形成时在查看节点1286上执行的唯一性校验一起使用随机16比特数或16比特序列号 来填充。路径列表长度字段1296包括指示路径列表字段1298的长度的两个字节。路径列表 字段1298在长度上可变并且由路径列表长度字段1296的值来指示。路径列表字段1298的值 指示针对节点的模式路径。
[0296] 模式路径是针对作为驻留在节点上的模式的一部分的数据项或容器的紧凑描述。 例如,图32提供简档模式1300的示例。在所图示的简档模式1300中,可以按照二进制格式将 到数据项1302的路径写为"F 〇〇:自行车:山地"。如图33中所描绘的,可以将路径的二进制格 式表示为简档二进制格式1304。简档二进制格式1304包括两个子字段:简档标识符字段 1306和TLV数据字段1308。简档标识符字段1306标识哪一个简档正被引用(例如,Foo简档)。 TLV数据字段1308包括路径信息。如先前所讨论的,TLV数据包括包含关于所包封的数据的 信息的标签字段。用来表示图32的Foo简档的标签字段值可以与表19中所列举的那些值类 似。

[0298] 表19. Foo简档的示例标签值
[0299] 使用表19和图32的Foo简档,表示路径"Foo:自行车:山地"的TLV格式的二进制字 符串可以像下表20中所示出的那样来表示。
[0301] 表20.模式路径的示例二进制标签列表
[0302]如果查看节点1286期望接收在简档模式(例如,图33的Foo简档模式)中定义的整 个数据集,则视图请求消息1290可以请求"nil"项(例如,表示容器的OxODOOTL以及空长 度)。
[0303] 2.观看请求
[0304] 如果查看节点1286期望多于一个快照,则查看节点1286可以请求观看请求。观看 请求要求被查看节点1288在对被查看节点1288中的感兴趣数据作出改变时发送更新,使得 查看节点1286能够保持数据的同步列表。观看请求帧可以具有与图31的快照请求不同的格 式。在图34中图示了观看请求帧1310的实施例。观看请求帧1310包括四个字段:视图句柄字 段1312、路径列表长度字段1314、路径列表字段1316、和改变计数字段1316。视图句柄字段 1312、路径列表长度字段1314、和路径列表字段可以被分别格式化为与图31的快照请求的 视图句柄字段1294、路径列表长度字段1296、和路径列表字段1298类似。附加字段(改变计 数字段1318)指示对更新被发送到查看节点1286的所请求的数据的改变的数目的阈值。在 一些实施例中,如果改变计数字段1318的值是0,则被查看节点1288可以靠自己确定何时发 送更新。如果改变计数字段1318的值是非零,则在改变的数目等于该值之后,那么更新被发 送到查看节点1286。
[0305] 3.周期性更新请求
[0306]第三类型的视图还可以由查看节点1286请求。这个第三类型的视图被称为周期性 更新。周期性更新包括快照视图以及周期性更新。如可以理解的,周期性更新请求可以与具 有确定更新周期的附加信息的快照请求类似。例如,在图35中描绘了周期性更新请求帧 1320的实施例。周期性更新请求帧1320包括四个字段:视图句柄字段1322、路径列表长度字 段1324、路径列表字段1326、和更新周期字段1328。视图句柄字段1322、路径列表长度字段 1324、和路径列表字段1326可以被格式化为与它们在快照请求帧1292中的相应字段类似。 更新周期字段1328在长度上是四个字节并且包含对应于以相关时间单位(例如,秒)在更新 之间经过的时间段的值。
[0307] 4.刷新请求
[0308]当查看节点1286期望接收更新的快照时,查看节点1286可以发送形式为如图36中 所图示的刷新请求帧1330的视图请求消息1290。刷新请求帧1330根据被查看节点1288能够 使用刷新请求帧1330中的视图句柄值来识别为先前请求的先前快照请求,而基本上再次发 送快照视图句柄字段(例如,视图句柄字段1294)。
[0309] 5.取消视图请求
[0310]当查看节点1286期望取消正在进行的视图(例如,周期性更新或观看视图)时,查 看节点1290可以发送形式为如图37中所图示的取消视图请求的视图请求消息1290。取消视 图请求帧1332根据被查看节点1288能够使用刷新请求帧1330中的视图句柄值来识别为先 前请求的先前请求,而基本上再次发送来自先前周期性更新或观看视图的视图句柄字段 (例如,视图句柄字段1310或1322)并且取消当前周期性更新或观看视图。
[0311] ii.视图响应
[0312]返回到图30,在被查看节点1288接收到视图请求消息1290之后,被查看节点1288 用视图响应消息1334做出响应。在图38中图示了视图响应消息帧1336的示例。视图响应消 息帧1336包括三个字段:视图句柄字段1338、视图请求状态字段1240、和数据项列表1242。 可以将视图句柄字段1338格式化为与上面引用的视图句柄字段1338中的任一个类似。此 外,视图句柄字段1338包含和来自视图响应消息1334正做出响应的视图请求消息1290的相 应的视图句柄字段匹配的值。视图请求状态字段1340是指示视图请求的状态并且可以根据 上面所讨论的状态更新格式来格式化的可变长度字段。数据项列表字段1342是当视图请求 状态字段1340指示视图请求成功时存在的可变长度字段。当存在时,数据项列表字段1342 包含与视图请求消息1290的路径列表对应的请求的数据的有序列表。而且,如上面所讨论 的,可以按照TLV格式对数据项列表字段1342中的数据进行编码。
[0313] iii.更新请求
[0314]如上面所讨论的,在一些实施例中,被查看节点1288可以向查看节点1286发送更 新。可以发送这些更新作为更新请求消息1344。更新请求消息1344可以包括依赖于更新请 求的类型的指定格式。例如,更新请求可以是可以由消息Id 1172来标识的显式更新请求或 视图更新请求字段。
[0315] 1.显式更新请求
[0316] 作为对于来自结构1000中的另一节点的信息的期望的结果,可以在任何时候发送 显式更新请求。可以在图39中所图示的更新请求帧1346中对显式更新请求进行格式化。所 图示的更新请求帧1346包括四个字段:更新句柄字段1348、路径列表长度字段1350、路径列 表字段1352和数据项列表字段1354。
[0317] 更新句柄字段1348包括可以利用带有唯一性校验的随机数或顺序数填充的两个 字节以标识更新请求或对该请求的响应。路径列表长度字段1350包括指示路径列表字段 1352的长度的两个字节。如上所述,路径列表字段1352是指示一系列路径的可变长度字段。 可以将数据项列表字段1354格式化为与数据项列表字段1242类似。
[0318] 2.视图更新请求
[0319]视图更新请求消息可以由先前已请求了进入另一节点的模式的视图的节点或已 代表另一节点建立了进入它自己的数据的视图的节点来传送。在图40中图示了视图更新请 求帧1356的实施例。视图更新请求帧1356包括四个字段:更新句柄字段1358、视图句柄字段 1360、更新项列表长度字段1362和更新项列表字段1364。可以使用参考更新句柄字段1348 上面所讨论的格式来组成更新句柄字段1358。视图句柄字段1360包括标识由具有相同视图 句柄的相关视图请求消息1290所创建的视图的两个字节。更新项列表长度字段1362包括两 个字节并且指示被包括在更新项列表字段1364中的更新项的数目。
[0320]更新项列表字段1364包括可变数目的字节并且列举构成经更新的值的数据项。每 个更新项列表可以包括多个更新项。单独的更新项是根据图41中所图示的更新项帧1366相 应地格式化的。每个更新项帧1366包括三个子字段:项索引字段1368、项时间戳字段1370和 数据项字段1372。项索引字段1368包括指示更新正被请求的视图以及针对数据项字段1372 的该视图的路径列表中的索引的两个字节。
[0321]项时间戳字段1370包括四个字节并且指示从改变起直到做出了正被传递的更新 为止所经过的时间(例如,以秒为单位)。如果已经对数据项做出多于一个改变,则项时间戳 字段1370可以指示最近或最早的改变。数据项字段1372是将作为经更新的信息被接收的按 照TLV格式编码的可变长度字段。
[0322] iv.更新响应
[0323]在接收到更新之后,节点(例如,查看节点1286)可以发送更新响应消息1374。可以 使用图42中所图示的更新响应帧1376来对更新响应消息1374进行编码。更新响应帧1376包 括两个字段:更新句柄字段1378和更新请求状态字段1380。更新句柄字段1378与更新响应 消息1374正做出响应的更新请求消息1344的更新句柄字段值相对应。更新请求状态字段 1380根据上面所讨论的状态报告格式来报告更新的状态。此外,使用DMP(例如,核心简档或 数据管理简档)的简档可以包括简档特定代码,诸如下表21中所枚举的那些代码。
[0325] 表21.包括DMP的简档的状态代码的示例
[0326] D ·批量传输
[0327] 在一些实施例中,可能期望在结构1000中的节点/服务之间传输批量数据文件(例 如,传感器数据、日志或更新映像)。为了使得能够传输批量数据,单独的简档或协议可以被 并入到一个或多个简档中并且可被节点/节点中的服务利用。批量数据传输协议可以将数 据文件建模为具有元数据附件的数据的合集。在某些实施例中,数据可以是不透明的,但是 元数据可以被用来确定是否继续进行所请求的文件传输。
[0328] 通常可以根据批量传输通信和事件创建来划分参与批量传输的设备。如图43中所 图示的,批量传输中的每个通信1400包括作为向作为接收批量数据1404的节点/服务的接 收方发送批量数据1404的节点/服务的发送方1402。在一些实施例中,接收方可以向发送方 1402发送指示批量传输的状态的状态信息1408。此外,批量传输事件可以由作为发起者的 发送方1402(例如,上传)或接收方1406(例如,下载)发起。在批量数据传输中与发起者相对 应的节点/服务可以被称为响应者。
[0329] 批量数据传输可以使用同步模式或异步模式而发生。可以使用各种因素(诸如上 面发送批量数据的底层协议(例如,UDP或TCP)来确定传输数据的模式。在无连接协议(例 如,UDP)中,可以使用允许节点/服务("驱动器")中的一个控制传输进行的速率的同步模式 来传输批量数据。在某些实施例中,在同步模式批量数据传输中的每个消息之后,可以在批 量数据传输中发送下一个消息之前发送肯定应答。驱动器可以是发送方1402或接收方 1406。在一些实施例中,驱动器可以在发送消息以当在联机状态下时将传输提前的同时在 联机状态与脱机模式之间切换。在使用面向连接协议(例如,TCP)的批量数据传输中,可以 使用在发送接连的消息之前不使用肯定应答的异步模式或单个驱动器来传输批量数据。
[0330] 不管是使用同步模式还是异步模式来执行批量数据传输,都可以使用应用有效负 荷1146中的消息类型1172根据该应用有效负荷中的简档Id 1176来确定消息的类型。表22 包括可以关于简档Id 1176中的批量数据传输简档值而使用的消息类型的示例。
[0332] 表22用于批量数据传输简档的消息类型的示例
[0333] i . SendInit
[0334] 在图44中图示了SendInit消息1420的实施例。SendInit消息1420可以包括7个字 段,传输控制字段1422、范围控制字段1424、文件标志符长度字段1426、建议最大块大小字 段1432、起始偏移字段1430、长度字段1432和文件标志符字段1434。
[0335] 传输控制字段1422包括图45中所图示的一字节的数据。传输控制字段包括至少四 个字段:异步标志1450、RDrive标志1452、SDrive标志1454和版本字段1456。异步标志1450 指示可以使用同步模式还是异步模式来执行所建议的传输。RDrive标志1452和SDrive标志 1454各自分别指示接收方1406是否能够与驱动同步模式传输的接收方1402或发送方1408 一起传输数据。
[0336] 范围控制字段1424包括诸如图46中所图示的范围控制字段1424的一字节的数据。 在所图示的实施例中,范围控制字段1424包括至少三个字段:BigExtent标志1470、起始偏 移标志1472和限定长度标志1474。限定长度标志1474指示传输是否具有限定长度。限定长 度标志1474指示长度字段1432是否存在于SendInit消息1420中,并且BigExtent标志1470 指示长度字段1432的大小。例如,在一些实施例中,BigExtent标志中的值1指示长度字段 1432是八个字节。否则,长度字段1432在存在时是四个字节。如果传输具有限定长度,则起 始偏移标志1472指示起始偏移是否存在。如果起始偏移存在,则BigExtent标志1470指示起 始偏移字段1430的长度。例如,在一些实施例中,BigExtent标志中的值1指示偏移字段1430 是八个字节。否则,起始偏移字段1430在存在时是四个字节。
[0337] 返回到图44,文件标志符长度字段1426包括指示文件标志符字段1434的长度的两 个字节。作为可变长度字段的文件标志符字段1434依赖于文件标志符长度字段1426。最大 块大小字段1428建议可以在单个传输中传输的块的最大大小。
[0338] 起始偏移字段1430在存在时具有由BigExtent标志1470所指示的长度。起始偏移 字段1430的值指示要传输的文件内的发送方1402可以开始传输的位置,本质上允许大文件 传输被分段成多个批量传输会话。
[0339] 如果限定长度字段1474指示文件具有限定长度,则长度字段1432在存在时指示要 传输的文件的长度。在一些实施例中,如果接收方1402在长度被实现之前接收到最终块,则 接收方可以像在下面所讨论的那样将传输认为是失败的并报告错误。
[0340]文件标志符字段1434是由发送方1402选择来标识要发送的文件的可变长度标识 符。在一些实施例中,发送方1402和接收方1406可以在传送之前协商文件的标识符。在其它 实施例中,接收方1406可以与文件标志符字段1434-起使用元数据来确定是否接受传输以 及如何处理数据。可以根据文件标志符长度字段1426来确定文件标志符字段1434的长度。 在一些实施例中,SendInit消息1420还可以包括按照TLV格式编码的可变长度的元数据字 段1480。元数据字段1480使得发起者能够发送附加信息,诸如关于要传输的文件的应用特 定信息。在一些实施例中,元数据字段1480可以被用来避免在批量数据传输之前协商文件 标志符字段1434。
[0341 ] ii.SendAccept
[0342]发送接受消息是从响应者传送的以指示针对传输所选择的传输模式。在图47中呈 现了 SendAccept消息1500的实施例。SendAccept消息1500包括与SendInit消息1420的传输 控制字段1422类似的传输控制字段1502。然而,在一些实施例中,仅RDrive标志1452或 SDrive 1454可以在传输控制字段1502中具有非零值,以将发送方1402或接收方1406标识 为同步模式传输的驱动器。SendAccept消息1500还包括指示传输的最大块大小的最大块大 小字段1504。块大小字段1504可以等于SendInit消息1420的最大块字段1428的值,但是最 大块大小字段1504的值可以小于最大块字段1428中建议的值。最后,SendAccept消息1500 可以包括指示接收方1506可以传给发送方1402的关于传输的信息的元数据字段1506。
[0343] iii.SendReject
[0344] 当接收方1206在SendInit消息之后拒绝传输时,接收方1206可以发送指示有关发 送方1202与接收方1206之间的批量数据传输存在一个或多个问题的SendReject消息。可以 根据上面所描述的和图48中所图示的状态报告格式对发送拒绝消息进行格式化。发送拒绝 帧1520可以包括包含指示用于拒绝传输的理由的两个字节的状态代码字段1522。可以使用 与像下表23中所指示的那样枚举的那些值类似的值来对状态代码字段1522进行解码。
[0346] 表23发送拒绝消息的示例状态代码
[0347] 在一些实施例中,发送拒绝消息1520可以包括下一个状态字段1524。下一状态字 段1524在存在时可以如上面所讨论的像关于状态报告帧的下一个状态字段1188那样被格 式化和编码。在某些实施例中,发送拒绝消息1520可以包括附加信息字段1526。附加信息字 段1526在存在时可以存储关于附加状态的信息,并且可以使用上面所讨论的TLV格式来编 码。
[0348] iv.ReceiveInit
[0349] ReceiveInit消息可以由作为发起者的接收方1206来传送。可以与图44中所图示 的SendInit消息1480类似地对ReceiveInit消息进行格式化和编码,但是BigExtent字段 1470可以被称为规定接收方1206能够处理的最大文件大小的最大长度字段。
[0350] V.ReceiveAccept
[0351 ] 当发送方1202接收到ReceiveInit消息时,发送方1202可以用ReceiveAccept消息 做出响应。ReceiveAccept消息可以被格式化和编码为图49中所图示的ReceiveAccept消息 1540 AeceiveAccept消息1540可以包括四个字段:传输控制字段1542、范围控制字段1544、 最大块大小字段1546、以及有时包括长度字段1548。可以与具有指示范围控制字段1544的 第二字节的图47的SendAccept消息1502类似地对ReceiveAccept消息1540进行格式化。此 外,可以使用关于有关图46的范围控制字段1424上面所讨论的相同方法来对范围控制字段 1544进行格式化和编码。
[0352] vi.ReceiveReject
[0353] 如果发送方1202遇到将文件传输到接收方1206的问题,则发送方1202可以使用状 态报告格式来发送与SendReject消息48类似地格式化和编码的ReceiveReject消息,两者 皆在上面讨论了。然而,可以使用与像下表24中所指示的那样枚举的那些值类似的值来对 状态代码字段1522进行编码/解码。
[0355] 表24接收拒绝消息的示例状态代码
[0356] vii.BlockQuery
[0357] BlockQuery消息可以由驱动接收方1202在同步模式批量数据传输中发送以请求 数据的下一个块。如果尚未发送显式肯定应答,则BlockQuery隐含地对数据的先前块的接 收进行肯定应答。在使用异步传输的实施例中,可以从传输过程中省略BlockQuery消息。
[0358] viii.Block
[0359] 在批量数据传输中传送的数据的块可以包括大于0并小于由发送方1202和接收方 1206同意的最大块大小的任何长度。
[0360] ix.BlockEOF
[0361] 数据传输中的最终块可以作为块文件结束(BlockEOF)被呈现。BlockEOF可以具有 〇与最大块大小之间的长度。如果接收方1206发现预协商的文件大小(例如,长度字段1432) 与实际上传输的数据的量之间的不同,则接收方1206可以发送如在下面所讨论的指示失败 的错误消息。
[0362] x.Ack
[0363] 如果发送方1202正在驱动同步模式传输,则发送方1202可以等待直到在发送块之 后在发送下一个块之前接收到肯定应答(Ack)为止。如果接收方正在驱动同步模式传输,则 接收方1206可以发送显式Ack或BlockQuery以对先前块的接收进行肯定应答。此外,在异步 模式批量传输中,可以一起从传输过程中省略Ack消息。
[0364] xi.AckEOF
[0365] 可以在在同步模式或异步模式下发送的批量传输中发送文件结束的肯定应答 (AckEOF)。使用AckEOF接收方1206指示传输中的所有数据已被接收到并且发信号通知批量 数据传输会话的结束。
[0366] xii.Error
[0367] 在通信中发生某些问题时,发送方1202或接收方1206可以发送错误消息以过早地 结束批量数据传输会话。可以根据上面所讨论的状态报告格式来对错误消息进行格式化和 编码。例如,可以与图48的SendRe ject帧1520类似地对错误消息进行格式化。然而,可以利 用包括和/或与下表25中所枚举的那些值类似的值对状态代码进行编码/解码。
[0369]表25.批量数据传输简档中的错误消息的示例状态代码
[0370]已经通过示例示出了上面所描述的某些实施例,并且应该理解,这些实施例可能 易受各种修改和替选形式影响。还应该理解,权利要求不旨在限于所公开的特定形式,而是 相反旨在涵盖落入本公开的精神和范围内的所有修改、等同物和替选方案。
【主权项】
1. 一种上面存储有消息格式的非暂时性计算机可读介质,其中所述消息格式包括: 消息报头字段,所述消息报头字段被配置成指示: 用来对消息进行格式化的所述消息格式的版本; 寻址信息是否被包括在所述消息中;以及 安全信息是否被包括在所述消息中; 消息ID字段,所述消息ID字段被配置成利用对于对消息进行编码或发送的结构网络中 的设备来说唯一的标识符来标识所述消息,其中所述消息ID字段跟在所述消息报头字段之 后;以及 应用有效负荷字段,所述应用有效负荷字段跟在所述消息ID字段之后并且包括从所述 结构网络内的所述设备传送的数据。2. 根据权利要求1所述的非暂时性计算机可读介质,其中,所述消息报头字段包括两个 字节的数据。3. 根据权利要求1所述的非暂时性计算机可读介质,其中,所述消息ID字段包括四个比 特的数据。4. 根据权利要求1所述的非暂时性计算机可读介质,其中,所述应用有效负荷字段包括 可变长度的数据。5. 根据权利要求1所述的非暂时性计算机可读介质,其中,所述应用有效负荷字段包括 按照标签长度值格式来格式化的数据。6. 根据权利要求1所述的非暂时性计算机可读介质,其中,所述寻址信息包括指示所述 设备的源地址是否被包括在所述消息中的源ID标志,其中所述源地址指示按照包括以下的 唯一本地地址格式来格式化的所述设备: 具有40个比特的数据的全局ID,所述全局ID被配置成标识所述发送设备被连接在的所 述结构网络; 具有16个比特的数据的子网ID,所述子网ID被配置成标识所述发送设备被连接在的所 述结构网络中的逻辑网络;以及 具有64个比特的数据的接口 ID,所述接口 ID被配置成标识所述发送设备。7. 根据权利要求1所述的非暂时性计算机可读介质,其中,所述寻址信息包括指示目的 地地址是否被包括在所述消息中的目的地ID标志,其中所述目的地地址指示连接到所述结 构网络的目的地设备,其中所述目的地地址是按照包括以下的唯一本地地址格式来格式化 的: 具有40个比特的数据的全局ID,所述全局ID被配置成标识所述目的地设备被连接在的 所述结构网络; 具有16个比特的数据的子网ID,所述子网ID被配置成标识所述目的地设备被连接在的 所述结构网络中的逻辑网络;以及 具有64个比特的数据的接口 ID,所述接口 ID被配置成标识所述发送设备。8. -种被配置成通过平台层向其它电子设备发送消息或接收消息的电子设备,其中, 所述消息包括: 消息格式,所述消息格式包括: 版本字段,所述版本字段被配置成指示被用来对所述消息进行格式化的所述消息格式 的版本; 紧接着所述版本字段的消息类型字段,其中所述消息类型字段被配置成指示指定正被 发送的消息的类型的消息操作代码; 紧接着所述版本字段的交换ID字段,其中所述交换ID字段被配置成唯一地标识所述消 息针对所述电子设备而发生的讨论; 紧接着所述交换ID字段的简档ID字段,其中所述简档ID字段指示使得接收设备能够解 释所述消息类型字段并且标识针对所传送的数据的多个模式中的至少一个模式的多个简 档中的简档,其中所述多个模式中的每个模式根据所述简档和模式指示编码格式;以及 跟在所述简档id之后的应用有效负荷字段,其中所述应用有效负荷字段包括与所述电 子设备的应用层相关联的数据。9. 根据权利要求8所述的电子设备,包括紧接着所述简档ID字段并且紧接在所述应用 有效负荷字段之前的简档特定报头字段,其中当所述简档字段指示使用附加信息来处理所 述应用有效负荷的简档被包括时所述简档特定报头是按照所述消息格式被包括的。10. 根据权利要求8所述的电子设备,其中,所述多个简档中的每个简档包括所述多个 模式中的一组模式。11. 根据权利要求9所述的电子设备,其中,所指示的简档包括: 核心简档,所述核心简档包括对所述电子设备可用的一组基本模式; 数据管理简档,所述数据管理简档包括使得所述电子设备能够访问位于其它电子设备 上的数据的一组数据管理模式; 批量数据传输简档,所述批量数据传输简档包括使得所述电子设备能够向所述其它电 子设备传输批量数据或者从所述电子设备传输批量数据的一组批量数据传输模式; 状态报告简档,所述状态报告简档包括使得所述电子设备能够从所述其它电子设备发 送或者接收状态信息的一组状态报告模式;或者 软件更新简档,所述软件更新简档包括使得所述电子设备能够从所述其它电子设备发 送或者接收软件更新映像的一组软件更新模式。12. 根据权利要求8所述的电子设备,其中,所述版本字段包括8个比特的数据。13. 根据权利要求8所述的电子设备,其中,所述消息类型字段包括8个比特的数据。14. 根据权利要求8所述的电子设备,其中,所述交换ID字段包括16个比特的数据。15. -种用于在结构网络中的设备之间发送和接收消息的方法,其中所述方法包括: 使用通用消息格式来发送或者接收消息,其中所述通用消息格式包括: 消息报头字段,所述消息报头字段包括: 签名类型字段;以及 加密类型字段, 其中,所述消息报头字段被配置成指示: 用来对所述消息进行格式化的所述消息格式的版本; 寻址信息是否被包括在所述消息中;以及 一个或多个安全信息字段是否被包括在所述消息中; 跟在所述消息报头字段之后的消息ID字段,其中所述消息ID字段被配置成利用对于所 述一个或多个电子设备的发送消息的发送设备来说唯一的的标识符来标识所述消息;以及 跟在所述消息报头字段之后的应用有效负荷字段,其中所述应用有效负荷字段包括从 所述结构网络内的所述发送设备所传送的数据。16. 根据权利要求15所述的方法,其中,所述通用消息格式包括紧接在所述消息报头字 段之前的分组长度字段,其中所述分组长度字段指示使用用来发送所述消息的连接类型所 发送的分组的长度。17. 根据权利要求16所述的方法,其中,所述连接类型包括传输控制协议连接。18. 根据权利要求15所述的方法,其中,所述通用消息格式包括跟在所述消息ID字段之 后并且在所述应用有效负荷字段之前的有效负荷长度字段,其中所述有效负荷长度字段包 括2个字节并且被配置成指示所述应用有效负荷字段的长度。19. 根据权利要求15所述的方法,其中,所述通用消息格式包括紧接着所述应用有效负 荷并且具有至少部分地基于由所述加密类型字段所指示的加密类型的长度的消息完整性 校验字段。20. 根据权利要求19所述的方法,其中,所述一个或多个安全信息字段包括: 在所述应用有效负荷字段之前的密钥ID字段,其中所述密钥ID字段包括指示用来对由 所述加密类型字段所指示的所述消息进行加密的加密或消息完整性密钥的两个字节; 紧接在所述应用有效负荷字段之前的初始化向量字段,其中所述初始化向量字段包括 用来对由所述加密类型字段所指示的所述消息进行加密的初始化向量; 跟在所述应用有效负荷字段之后的填充字段,其中所述填充字段包括表示被添加到所 述消息以使所述消息的加密部分可被加密块大小整除的加密填充的字节的长度,其中所述 加密部分包括所述应用有效负荷字段、所述消息完整性字段和所述填充字段;或者 位于所述消息的结尾处的消息签名字段,其中所述消息签名字段包括针对所述消息至 少部分地基于由所述签名类型字段所指示的签名类型的加密签名。
【文档编号】H04L12/28GK105917615SQ201480045696
【公开日】2016年8月31日
【申请日】2014年6月23日
【发明人】杰伊·D·洛格, 格兰特·M·埃里克森, 扎卡里·B·史密斯, 奥斯博尔内·B·哈迪森, 理查德·J·舒尔茨, 珊妮·P·古嘉露, 马修·G·尼利
【申请人】谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1