HDC2021技术分论坛:分布式软时钟有多重要?
作者:lishijun,HarmonyOS解决方案首席技术专家&软总线首席架构师
分布式软总线是HarmonyOS的关键根技术之一,也是众多开发者们非常关注的一项技术。通过分布式软总线,可以将多个不同类型的设备按场景连接在一起,形成超级终端,为消费者带来全场景新体验。本期,我们就来聊一聊分布式软总线,以及其关键技术——分布式软时钟。
一、分布式软总线带来不一样体验
我们先来看看,分布式软总线能为用户使用超级终端带来哪些不一样的体验呢?
1. 无感发现与连接,让多个设备自动组成超级终端
通过分布式软总线,可以将同账号下的多个设备即时连接到一起。如上面的动图所示,同一个账号下的多个设备在超级终端的控制中心时刻都是实时在线的。这样,让用户使用由多个设备组成的超级终端,就像操作单个设备一样简单。
首次发现时,两个陌生设备发现与连接的时间降至0.5秒,极大改善了用户体验。首次连接成功后,下次两个设备就能无感发现和连接了。
为达成“无感的发现与连接”体验,我们采取了以下关键措施:
- 占空比调整:占空比动态调速,加速发现。
- 优先级控制:基于场景的优先级控制VO、VI、BE、BK。
- 异构混合组网:蓝牙和WiFi混合组网,可信设备自组网。
- 设备信息交换:组网后设备间信息交换,及时感知上下线及信息管理。
- 策略控制:基于场景感知的发现策略,包括亮灭屏、前后台、夜间、运动等多种场景。
2. 逼近空口速率的传输速度,让GB级文件秒传完成
通过华为分享一个5GB的文件,基本在20秒完成传送,传输速率逼近空口速率。
为达成“极致数据传输”体验,我们采取了以下关键措施:
- 快速唤醒与启动芯片,进入高性能模式。
- 精准流控算法,调整传输速率。
- 极简协议支持,传输功耗降低10%。
- 多径双路并发,提升文件传输的吞吐能力。
- 多级动态缓冲池技术,合理调度提升端到端运力。
二、分布式系统的新挑战
分布式软总线已经在发现与连接、传输方面做了很多,有了很大提升。但是随着分布式系统发展,接入的设备越来越多,分布式软总线面临以下两大新挑战:
1. 分布式系统里的设备越多,通信能力要求越高
图1 分布式软总线
如上图所示,五大智慧场景的多种设备接入分布式软总线,设备越多,对分布式软总线的通信能力要求越高。
分布式软总线分为任务总线和数据总线。短数据(比如控制类指令、短的消息包)通过任务总线传输,文件、媒体流等通过数据总线传输。对于媒体流,发送和接收的两个设备在处理每一帧数据的时候,要严格按照帧率的倒数做资源供给。
比如,帧率为90,则必须在每1/90(大约11.1)毫秒时,两端设备中的每个子系统都能恰好处理完,才能使得媒体不出现卡顿和花屏,同时又能保证两个设备的功耗是最低的,在用户体验与功耗之间取得最佳且最合理的平衡。
然而每个设备的硬件能力可能不同,比如一台高端手机和一台低端手机同时向一台大屏投屏,如何使得各设备都能恰好按序完成业务,其中就需要多设备间一致的时钟。
而每个设备有自己的时钟,其精度由其本机所带晶振决定,就会非常容易出现因时钟精度不一样而导致时钟不同步。时钟不一致就可能导致两端收发节奏不一致,容易产生丢包。这时,在多设备之间构建一套分布式软时钟就非常重要了,它能让由超级终端里的多个设备保持节奏一致。
2. 空口资源如何合理、且最大程度的使用
图2 空口资源
空口资源在使用中摆脱不了多介质频段冲突、随机接入竞争、同频竞争和邻频干扰等。除此之外,随着手机上安装的App和原子化服务越来越多,跨端协同也越来越多,两个设备之间有多对应用交互。同时,跨端协同的设备数量越来越多。这种情况下,空口资源如何被进一步复用?只靠频分,无法满足业务需求,还需引入时分复用来实现空口资源的最大程度使用。提到时分复用,那就不得不提分布式软时钟了。
三、什么是分布式软时钟?
从上面分布式系统的两个新挑战可知,多设备间的时钟同步,以及空口资源的时分复用都离不开分布式软时钟,它是解决问题的关键钥匙之一。那么,什么是分布式软时钟呢?
分布式软时钟:以异构网络拓扑与结构为基础,以时间同步方式为超级终端分布式系统构建一个统一的时钟源,协调各设备业务时钟,并保持高精度时钟进行分布式业务。
时钟同步时,分布式软时钟需要解决以下问题:
- 每个设备都有自己的独立时钟源,晶振质量决定时钟偏移不同。
- 瞬时单次测量要求双端在线,否则无法进行交换与对比。
- 持续同步将带来功耗与通信消耗,如何在精度与成本间平衡。
对于上述问题,分布式软时钟通过软件算法来解决。分布式软时钟的同步算法如下图所示:
图3 分布式软时钟的同步算法
图3中,以P节点作为基准的时钟源,其他节点(比如A节点和B节点)与P节点之间,除了本地时间差异外,还存在时间漂移和时钟频率差异等。把这些因素考虑在内,就能得出各节点上数据包接收时间的公式,以及节点之间的数据包接收时间差值。这样,通过调整时间差,就能实现多节点之间的时钟同步。
四、分布式软时钟的用途
下面我们来看看分布式软时钟的用途:
1. 使更多的设备可以自动组网,并进行动态拓朴管理。
引入时钟后,时分复用让极少的频谱资源支持更多设备的连接成为可能。根据每个设备的特征、账号、承载的业务等信息,就可以自动组装成一个超级终端。比如,音箱与PAD、PC、手机等自动组成树形的拓扑结构,这些设备都可以连接音箱来发声。同时,可以将现有BLE的三个广播信道基于分布式软时钟的不同时间戳来连接不同设备,使未来一个家庭多达几百台智能家居设备连接在一起成为可能。
2. 在无线干扰环境中发挥抗干扰作用。
以WiFi 2.4G为例:凡是落在实线拱门内的虚线信道就会有无线干扰存在,只有跨拱门的信道之间才没有干扰,但这样就使得无干扰的信道数是3个,大大降低了同时进行业务的设备数量。
图4 WiFi 2.4G
多设备自动组网后,分布式软总线可以从全视角看到哪些设备能够发生业务、业务特征、需要的带宽、时延、功耗等,也能从单设备看到设备与全局的关系。这样,当超级终端中的多对设备发生业务时,就可以通过全视角、单设备视角为其选择合适的频点、频宽的信道为其工作,再加上分层控制及QoS管理,就使干扰降到最低成为可能。
3. 多设备业务协同的功耗控制。
如果没有时钟,接入设备越多,设备之间需要来回协商资源,也就是所谓的退让机制,造成资源浪费,同时降低了用户体验。引入时钟之后,通过时分与频分复用,设备之间无序的通信变得更加有序。
图5 时分与频分复用
除了以上给出的分布式软时钟常用的场景,随着业务复杂性越来越多,分布式软时钟还可以在更多场景中发挥更多的作用。比如多设备所带传感器信号的采集,分布式软时钟就可以使得不同传感器上时钟保持一致,以便于更好理解用户意图,为用户提供更加智能与贴心的服务,让用户的生活与工作更加便利与简单。
五、结束语
图6为分布式软时钟的演进路径。基于窗口协同,分布式软时钟精度可以达到1ms;基于分布式软时钟算法与传输层协同,分布式软时钟精度可以达到500us;基于分布式软时钟算法与传输层及物理层协同,分布式软时钟精度小于300us。同时,随着不同设备属性不同,所承载业务的网络拓扑不同,其所需要的时钟不同,将引入复杂网络时钟,为业务提供更加精准的时钟。
图6 分布式软时钟的演进
我们不断在算法和干扰抑制方面进行探索,逐步提升分布式软时钟的精度,让分布式体验越来越好!
HDC2021技术分论坛:分布式软时钟有多重要?的更多相关文章
- HDC2021技术分论坛:异构组网如何解决共享资源冲突?
作者:lijie,HarmonyOS软总线领域专家 相信大家对HarmonyOS的"超级终端"比较熟悉了.那么,您知道超级终端场景下的多种设备在不同环境下是如何组成一个网络的吗?这 ...
- HDC2021技术分论坛:“积木拼装”,HarmonyOS弹性部署大揭秘!
作者:peitaiyi,华为终端OS产品交付专家 HarmonyOS是一款面向万物互联时代的.全新的分布式操作系统.在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力.适配多种终 ...
- HDC2021技术分论坛:如何高效完成HarmonyOS分布式应用测试?
作者:liuxun,HarmonyOS测试架构师 HarmonyOS是新一代的智能终端操作系统,给开发者提供了设备发现.设备连接.跨设备调用等丰富的分布式API.随着越来越多的开发者投入到Harmon ...
- HDC2021技术分论坛:组件通信、硬件池化,这些创新技术你get了吗?
作者:ligang 华为分布式硬件技术专家,sunbinxin 华为应用框架技术专家 HarmonyOS是一款全新的分布式操作系统,为开发者提供了元能力框架.事件通知.分布式硬件等分布式技术,使能开发 ...
- HDC2021技术分论坛:进程崩溃/应用卡死,故障频频怎么办?
作者:jiwenqiang,DFX技术专家 提到开发一个产品,我们通常首先想到的是要实现什么样的功能,但是除了功能之外,非功能属性也会很大程度上影响一个产品的体验效果,比如不定时出现的应用卡死.崩溃 ...
- HDC技术分论坛:HarmonyOS新一代UI框架的全面解读
作者:yuzhiqiang,UI编程框架首席技术专家 在Harmony 3.0.0开发者预览版中,包含了新一代的声明式UI框架ArkUI 3.0.多语言跨平台编译器ArkCompiler 3.0.跨端 ...
- 搞懂分布式技术12:分布式ID生成方案
搞懂分布式技术12:分布式ID生成方案 ## 转自: 58沈剑 架构师之路 2017-06-25 一.需求缘起 几乎所有的业务系统,都有生成一个唯一记录标识的需求,例如: 消息标识:message-i ...
- 搞懂分布式技术2:分布式一致性协议与Paxos,Raft算法
搞懂分布式技术2:分布式一致性协议与Paxos,Raft算法 2PC 由于BASE理论需要在一致性和可用性方面做出权衡,因此涌现了很多关于一致性的算法和协议.其中比较著名的有二阶提交协议(2 Phas ...
- 深度解读设备的“万能语言”HarmonyOS的分布式软总线能力
摘要:本文分享鸿蒙分布式软总线,并对相关源代码进行解析,为在鸿蒙系统平台上工作的相关人员的信息参考和指导. 总线是一种内部结构,在计算机系统中,主机的各个部件通过总线相连,外部设备通过相应的接口电路再 ...
- 搞懂分布式技术11:分布式session解决方案与一致性hash
搞懂分布式技术11:分布式session解决方案与一致性hash session一致性架构设计实践 原创: 58沈剑 架构师之路 2017-05-18 一.缘起 什么是session? 服务器为每个用 ...
随机推荐
- 【Azure 应用服务】添加自定义域时,Domain ownership 验证无法通过
问题描述 在Azure App Service添加自定义域名时,遇见了Domain ownership 验证无法通过的问题? 问题解决 因为DNS中配置App Service默认域名和自定义域名的CN ...
- 【Azure 应用服务】记一次 App Service 部分请求一直返回 401 "No Authority" 的情况
问题描述 发现部署在App Service上的 WCF 应用对于所请求的接口出现部分返回 401 - No Authority 消息,10次中有一次这样的概率.比较疑惑的问题是,应用没有更新,所以怀疑 ...
- 2024年,提升Windows开发和使用体验实践 - 小工具篇
前言 本来是一篇文章的,不知不觉写成了系列. 其实开工那几天就已经写好了长文,这几天一忙就没连着发了. 本文介绍一些 Windows 上用的小工具. 美化/折腾/小工具 虽然这是在用 Windows ...
- 我为什么使用Linux做开发
系统选择 目前市面上主流的桌面操作系统在大多数人眼里只有Windows和MacOS,那为什么我没选择它们两呢? 首先,不选MacOS的原因,就是太贵.当然这是我的原因不是苹果的原因,我最早使用Linu ...
- 使用@RequestBody注解踩的坑
一.问题由来 最近在和前端调试一个自己写的接口时,频频出现问题,让我很是烦恼.因此写下这篇博文来记录开发中遇到的一些问题.第一个问题是 前端页面传递参数后,后台不能正常接收参数.我写好接口以后,通过s ...
- ohmyposh 安装 - 基于 powershell7.2.1 - 最后改成 profile自定义
今天偶然下载了 powershell7.2.1 https://mydown.yesky.com/pcsoft/468254.html 这想着 vscode也支持了,得装一个 ohmyposh的主题啊 ...
- 使用Deployment和Service实现简单的灰度发布
在Kubernetes中,使用单个Service和多个Deployment来实现灰度发布的一种常见方法是利用标签(Labels)和选择器(Selectors)来控制哪些Pods接收来自Service的 ...
- 市场主流的G-sensor芯片盘点
一 前记 1.简介 随着可穿戴智能硬件的广泛发展,G-sensor成了一个必不可少的器件.梳理,测试和运用这些传感器.是做可穿戴产品必不可少的环节. 二 产品解析 1.ST的G-sensor型号LIS ...
- 后端基础PHP-PHP简介及基本函数
后端基础PHP-PHP简介及基本函数 1.PHP简单介绍 2.PHP基本语法 一.PHP简单介绍 PHP(超文本预处理器),是一种通用的开源脚本语言,标准的后端语言 比较常见的后端语言,ASP|ASP ...
- Ubuntu 14.04 升级到Gnome3.12z的折腾之旅(警示后来者)+推荐Extensions.-------(二)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文发布于 2014-12-22 15:33:35 ...