01
一個近場通信的例子
1.1 全場景智慧生活的典型問題
在全場景智慧生活當(dāng)中,設(shè)備種類和數(shù)量越來越多,各種富設(shè)備(如智慧屏、PC、PAD、音箱)以及各種瘦設(shè)備(如IOT的智能門鎖、攝像頭、智能燈、智能窗簾)的近場通信方式各不相同,有wifi、藍牙、NFC、usb、zigbee等。
在這么多種近場通信方式選擇上,如何讓這些設(shè)備便捷、高效地通信,從而實現(xiàn)上層應(yīng)用無需考慮設(shè)備差異,就如同使用“一個設(shè)備”一樣,流暢地使用多個設(shè)備的能力,是全場景智慧生活中面臨的一個典型問題。HarmonyOS分布式軟總線為這個問題提供了可靠的解決方案,并通過簡單的API接口向開發(fā)者開放出來。
1.2 如何保障控制消息(Message)低時延高可靠
下圖是一個家庭場景中典型的富瘦設(shè)備的組網(wǎng)圖,主要包含兩類業(yè)務(wù),黑色線條的上網(wǎng)業(yè)務(wù),紅色線條的近場業(yè)務(wù)。橫向的近場通信業(yè)務(wù)的物理通道,比縱向的上網(wǎng)業(yè)務(wù)的物理通道種類更多,帶寬也不同,HarmonyOS分布式軟總線完全屏蔽了底層通信的差異,讓上層應(yīng)用通過使用幾個簡單的軟總線接口,就像使用本地接口一樣,輕松實現(xiàn)多設(shè)備間高速通信。

舉個例子,將手機上的游戲App的操作界面投屏到PAD上,如何實現(xiàn)在PAD上進行手機上游戲APP的控制如在手機上控制一樣的流暢?其中,使用軟總線的SendMessage接口完成PAD到手機的反控操作(華為Cast+技術(shù))Message的無延遲傳輸,起到了一個關(guān)鍵的作用。具體實現(xiàn)如下:
前提條件:
1、 手機、PAD均搭載了HarmonyOS,具備分布式軟總線能力
2、 手機已經(jīng)把游戲APP的操作界面投屏到PAD上
過程描述:
1、 手機首先使用軟總線的發(fā)現(xiàn)能力發(fā)現(xiàn)PAD設(shè)備,并把手機上游戲APP的操作界面投屏到PAD。
2、 因為游戲APP本身在手機上,所以在PAD上操作手機游戲APP,就是從PAD到手機的“反控操作”,即PAD上控制消息Message反饋到手機上執(zhí)行,PAD和手機之間需要通過軟總線建立控制通道。軟總線要選擇最優(yōu)傳輸通道,并保障該通道上的數(shù)據(jù)得到高優(yōu)先級的傳輸。
3、 PAD調(diào)用SendMessage接口把控制消息Message反饋給手機。
4、 手機收到PAD的反控消息并執(zhí)行,并把執(zhí)行后的結(jié)果再反饋到PAD上。整個過程的時延要求在百毫秒級。
上面描述的過程看似簡單,實際上底層通信使用到了HarmonyOS分布式軟總線的發(fā)現(xiàn)、連接和傳輸?shù)哪芰Α1敬尾恢v發(fā)現(xiàn)和連接的技術(shù)點,僅對傳輸?shù)膶崿F(xiàn)原理進行解釋。
02
近場Message/Byte傳輸實現(xiàn)原理
2.1 實現(xiàn)過程描述
HarmonyOS分布式軟總線提供了兩個接口,分別用于近場通信場景下長短消息的傳輸,分別是SendMessage和SendByte,實現(xiàn)原理相同,如下圖所示:

圖中APP X統(tǒng)一代表不同的上層應(yīng)用App。具體過程描述:
1)設(shè)備A和設(shè)備B的APP X會在初始化階段向軟總線注冊回調(diào)通知接口,用于在傳輸通道打開、數(shù)據(jù)接收后通知到APP X
2)設(shè)備A的APP X要向設(shè)備B上的APP X發(fā)送消息,設(shè)備A的APP X首先把設(shè)備B的設(shè)備ID信息、以及標(biāo)識APP X的信息傳遞給軟總線,請求一個傳輸通道。
3)軟總線要根據(jù)當(dāng)前兩個設(shè)備已有的物理通道種類(BR/BLE/WIFI2.4/Wifi 5G/P2P),以及物理通道的負(fù)載和設(shè)備的狀態(tài),決策選擇一個最優(yōu)的傳輸通道的底層連接,同時完成傳輸層的連接建立,和傳輸標(biāo)識的內(nèi)核態(tài)到用戶態(tài)的映射,最后把傳輸通道標(biāo)識傳遞到兩個設(shè)備的上層APP X。
4)設(shè)備A的APP X拿到通道標(biāo)識后再調(diào)用SendMessage/SendByte接口和設(shè)備B的APP X進行通信。設(shè)備B的APP X也可以使用相同的方法和設(shè)備A進行通信。
5)傳輸結(jié)束后,設(shè)備A的APP X可以調(diào)用關(guān)閉傳輸接口完成傳輸通道資源的釋放。
2.2 Message/Byte傳輸注意事項
1)Message類型主要用于低時延、高可靠業(yè)務(wù),比如游戲的控制命令、IoT設(shè)備的開關(guān)(燈的開關(guān)、門窗的開關(guān))等等,數(shù)據(jù)量最大不超過4KB。
2)SendMessage對Message類型消息的傳輸,HarmonyOS軟總線在底層實現(xiàn)按照最高優(yōu)先級進行傳輸,例如空口使用最高優(yōu)先級VO隊列。因此在實際使用中,為了獲得更低的時延,最好是一幀數(shù)據(jù)就能把Message消息發(fā)送完成。比如1.5KB大小,保證空口一幀就發(fā)送完成,減少空口的資源競爭和退避帶來的時延開銷。
3)Byte類型主要用于傳輸比Message類型消息大,時延要求沒那么高的業(yè)務(wù)。比如傳輸一個圖片的縮略圖。通常最大不超過4M大小。具體大小取決于設(shè)備的內(nèi)存大小,有些設(shè)備內(nèi)存小,則其Byte類型消息不會超過4M。
4)SendByte除了用于時延要求不高的基本業(yè)務(wù)數(shù)據(jù)傳輸外,也可以用于探測網(wǎng)絡(luò)端與端之間的時延,比如探測當(dāng)前網(wǎng)絡(luò)傳輸1MB數(shù)據(jù)需要多少時間。
5)在支持多種物理鏈路的情況下,不建議上層應(yīng)用指定具體的物理鏈路,讓HarmonyOS系統(tǒng)自動選擇,系統(tǒng)會根據(jù)當(dāng)前的網(wǎng)絡(luò)情況選擇最優(yōu)的傳輸通道。
6)傳輸?shù)幕卣{(diào)接口,不要有阻塞性動作,特別是對于持續(xù)性的傳輸,如果在回調(diào)中有阻塞性動作,會導(dǎo)致傳輸性能下降。 本次為大家簡單介紹HarmonyOS Message/Byte類型消息的底層傳輸原理,這兩個都是數(shù)據(jù)量比較小(Byte/M)且非持續(xù)性的消息傳輸,對于規(guī)格比較大(G)且有持續(xù)性傳輸要求的File和Stream類型數(shù)據(jù)傳輸,會在后續(xù)技術(shù)解析文章中進行講解,敬請期待!
本文作者:zhangkesi,華為軟件架構(gòu)設(shè)計工程師
編輯:jq
-
音箱
+關(guān)注
關(guān)注
36文章
648瀏覽量
70600 -
PC
+關(guān)注
關(guān)注
9文章
2167瀏覽量
159361 -
IOT
+關(guān)注
關(guān)注
190文章
4397瀏覽量
208650 -
智能門鎖
+關(guān)注
關(guān)注
18文章
1931瀏覽量
45953 -
OpenHarmony
+關(guān)注
關(guān)注
33文章
3954瀏覽量
21128
原文標(biāo)題:華為架構(gòu)師解讀:HarmonyOS低時延高可靠消息傳輸原理
文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
時延小于1毫秒,工信部發(fā)布全光算力網(wǎng)絡(luò)重磅利好政策
深入剖析 LTM4648:低輸入電壓 10A 降壓 μModule 調(diào)節(jié)器
深入剖析LMK6x系列低抖動高性能BAW振蕩器
高通深入剖析Wi-Fi 8的獨特關(guān)鍵技術(shù)
高可靠半橋驅(qū)動方案:SLM27211CA-DG的欠壓保護與快速開關(guān)性能
高欠壓保護驅(qū)動器SiLM27511HAC-AQ以12.5V欠壓鎖定提升驅(qū)動電路可靠性
釘釘正式開源HarmonyOS圖片編輯組件
SiLM27531HAC-7G高可靠性的高速單通道低邊驅(qū)動器
基于UC1842高可靠電源的設(shè)計與實現(xiàn)
深入剖析RabbitMQ高可用架構(gòu)設(shè)計
LLSM——基于RK3588的低延遲低帶寬流媒體傳輸模塊
工業(yè)級MIFI全棧式解決方案:快速構(gòu)建高可靠、低時延Wi-Fi網(wǎng)絡(luò)
工業(yè)無線通信新標(biāo)桿:MIFI技術(shù)驅(qū)動的低時延高可靠Wi-Fi網(wǎng)絡(luò)快速搭建方案!
TECS OpenStack資源池虛機寫磁盤時延高告警的問題處理
剖析HarmonyOS低時延高可靠消息傳輸原理
評論