本节书摘来自华章社区《低功耗蓝牙开发权威指南》一书中的第2章,第2.4节非对称设计,作者 (英)robin heydon,更多章节内容可以访问云栖社区“华章社区”公众号查看
2.4 非对称设计
在理解低功耗蓝牙的体系结构后,你会发现一个设计概念十分明显,即在所有层都采用了非对称设计。为了让能源更少的设备负担更少的事情,这种非对称的设计显得非常重要。
物理层通常有两类无线电:发射器和接收器。一个设备可以既有发射器又有接收器,但也可能只有发射器或只有接收器。假如一个设备只有发射器,而另一个设备只有接收器,则二者构成的网络称为非对称网络。
这种不对称的设计源于一个基本的假设,即所有其他设备必须为资源最有限的设备进行优化。
在链路层,设备被分为广播者、扫描者、从设备和主设备。广播者是传输数据包的设备,扫描者是接收广播者的数据包的设备。从设备和主设备相连,但即便在这里,不对称性也是显而易见的。从设备无法发起任何复杂的操作,而主设备则必须负责微微网的定时、自适应跳频集合设置、加密以及一些其他的复杂操作。从设备只需完成要求的操作,不必进行复杂的处理。这样一来,从设备可以非常简单,实现了低成本、低内存和尽可能低的功耗。
在属性协议层存在两类设备,称为客户端和服务器。服务器保存数据,客户端向其发送请求以获得该数据。服务器好比链路层的从设备,只做被要求做的事情。客户端的工作相对辛苦,比如获得服务器上的数据类型以及理解如何使用该数据。
即便是低功耗的安全架构也是非对称的。安全架构基于这样一种密钥分配方案:由从设备提供密钥,将其交给主设备并由后者保存。主设备因而担负起保存链路绑定信息的重任,从设备则无需记忆任何相关信息。这意味着在从设备上实现安全特性将非常简单,但主设备上实现起来要麻烦一些。
由上述介绍可见,那些资源最为受限的设备都将成为广播者、从设备和服务器。这类设备拥有最少的可用内存和处理负担,得益于非对称的设计实现了超低功耗的目标。
其他类型的设备—扫描者、主设备和客户端拥有相对较多的可用资源。这些设备通常装备了较大的电池,具有丰富的用户界面,甚至可能由市电供电。把负担从从设备移到主设备,从广播者移到扫描者,从服务器移到客户端的选择是正确的,这一选择降低了资源受限的设备的功耗,将成本转嫁到具有丰富资源的设备上。