藍牙技術聯盟 藍牙Mesh 智慧照明 照明控制 藍牙mesh 1.1 定向轉發 受管網路泛洪

釐清路徑減少無效傳輸 解析藍牙Mesh定向轉發(1)

定向轉發(Directed Forwarding)在藍牙Mesh協定規格1.1版本中導入。要充分了解定向轉發的功能和優勢,就必須了解藍牙Mesh 1.0版本的特定層面。本文分為兩篇討論定向轉發細節。
iStock

定向轉發背景介紹

多點跳躍和多重路徑訊息傳輸

藍牙Mesh網路的顯著特點之一,就是即使裝置之間不在直接的無線電範圍內,也能進行通訊。網路中的裝置(稱為節點) 透過向目的地位址發送訊息進行通訊;如有必要,訊息將在網路中跳轉,直至到達目的地,這一過程稱為中繼。訊息最多可跳轉126次,使網路能夠覆蓋建築物內部、周圍和之間的大片區域。

同一訊息的副本可以同時透過不同路徑在網路中傳輸,其中將會處理第一個到達的副本,隨後到達的副本將遭到捨棄。這種多重路徑功能為網路提供備援,即使網路中一個或多個必要的中繼節點無法使用,訊息仍可送達。精心設計的藍牙Mesh網路,將利用多重路徑傳輸作為確保網路通訊可靠的策略之一。

節點功能

藍牙Mesh定義了節點可能具有的四種特殊功能,如表1所示。透過節點可實現諸多功能,例如LED燈可以根據從其他裝置(如開關和旋轉式控制器)接收到的訊息開啟或關閉LED燈,並改變其亮度或顏色。

受管網路泛洪

不受控制的網路泛洪(Flooding)是某些無線網路技術使用的技術,包括節點重新傳輸收到的每一條訊息,使訊息傳播到網路的每一個節點。這是一種簡單的方法, 但效率可能不高,並且浪費無線電頻譜和節點處理時間與功率。

藍牙Mesh 1.0用於中繼訊息的機制稱為受管網路泛洪,只有選定的節點才能啟用中繼功能。此外,這些節點會根據節點的訊息快取,以及稱為生存週期(TTL)的協定資料單元(PDU)欄位值,重新傳輸它們接收到的某些訊息。

TTL限制了訊息中繼的跳躍數,或是訊息從源頭發出的輻射距離。想像一下,在某間辦公室的大廳裡有一組藍牙Mesh照明開關,其中一個開關控制一樓的所有照明節點,而另一個開關只控制大廳裡的照明。如果大廳裡的所有照明節點都在大廳電燈開關的直接無線電範圍內,並不需要轉發這些訊息;相反地,如果要與該樓層大廳外的其他照明燈具連接,則可能需要兩次跳躍。第一個開關在發送訊息時會將TTL設定為0,表示不需要進行中繼。第二個開關會將TTL設定為3,如此便可確保有足夠的中繼次數讓訊息能抵達大廳外更遠的照明燈具。在前述兩種情形中,TTL都在優化中繼功能,確保訊息不會中繼到大樓內與其無關的區域,並確保訊息從源頭向外傳播,就像石頭掉進水裡產生的漣漪一樣。

在藍牙Mesh網路中,通常不會有超過5%的節點充當中繼站,與使用不受控制網路泛洪並產生大量不必要流量的網路形成鮮明對比。

受管網路泛洪的限制

在某些情況下,比起受管網路泛洪所能提供的功能,更精確地控制哪些節點將轉發訊息更有優勢,例如以下情境:

・相鄰樓層

無線電在三維空間中進行傳輸, 因此,藍牙Mesh訊息可能會由傳訊樓層上下兩層的節點接收;如果訊息只希望發送給與傳訊節點位在同一樓層的節點,這種情況可能並不理想。例如,電燈開關通常僅用於控制同一樓層的電燈,若開關發出的訊息由其他樓層節點接收到,並可能由相鄰樓層的中繼器重新傳輸,這些傳輸實際上並沒有價值。

・僅鎖定房間一側的裝置

想像一下,在大型會議廳的一端和具有舞台的另一端之間,牆壁上有一組電燈開關。其中一個開關控制舞台上方的照明, 而訊息需要跳躍一次以傳遞至所有開關。

圖1 含舞台燈光和多個中繼節點的會議廳

在圖1網路中,我們在開關範圍內設置了兩個中繼器,讓同一面板上的其他開關能夠觸及它們必須控制的所有燈光節點。使用舞台燈光開關時,將會傳輸訊息(圖2),由兩個中繼器接收並重新傳輸(圖3),因此訊息在網路中除了向目標照明燈具傳輸,也將同時朝反方向進行傳輸。

圖2 電燈開關廣播開/關訊息
圖3 兩個中繼器接收訊息並重新傳輸

如此將造成浪費,離舞台最遠的中繼器無法針對向舞台燈光所發出的訊息做出貢獻,因此最好不要參與傳輸過程。

訊息傳送能力和擴充性

裝置傳輸訊息時,會在一段時間內使用一個無線電頻道。與前述裝置處於同一範圍內的另一個裝置,如果同時在同一頻道傳輸訊息,就會造成碰撞(Collision)。因此在所有裝置都在彼此範圍內的網路中,訊息傳輸容量有其限制,所有傳輸的訊息都需要在一段時間內占用無線電頻道,而且每次只能安全地傳輸一條訊息。

儘管每條訊息消耗的時間很短,藍牙Mesh也具有三個無線電頻道,整體容量仍有限,將成為限制網路擴充的因素。

受管網路泛洪評估

受管網路泛洪是一種透過網路傳播訊息的系統,透過多點跳躍(Multi-hop)能力提供範圍和區域覆蓋,並可在妥善設計的網路中,搭配精心布置的中繼器,透過本身的多重路徑中繼行為提供備援。

訊息快取和使用TTL參數可對訊息傳輸距離進行一定程度的控制,進而提供一定程度的優化。中繼器之間完全獨立,代表在裝置移動等情況發生時,不存在必須維護的相依關係或配置設定。在大多數情況下,受管網路泛洪是一種適用的解決方案,幾乎不需要維護。

雖然TTL可用來限制訊息的跳躍數,但無法控制訊息在網路中的走向。受管網路泛洪會導致訊息在網路中向各個方向擴散,因此可能會浪費網路中有限的訊息容量,將訊息傳送至無關的地方。

部分網路設計方案中,受管網路泛洪無法提供最有效的網路利用率,可能在某些情況下限制擴充性。這也是藍牙Mesh功能強化(Feature Enhancements)1.1版本導入定向轉發功能的主要原因。

定向轉發的能力及優勢

提高利用率/增強擴充性

定向轉發可建立網路,讓只有能夠協助將訊息導向目的地的節點才能參與傳輸過程。與之相對,使用定向轉發的節點將忽略所有無法協助完成傳送的訊息。

在發送或中繼訊息時,能夠使用定向轉發的節點稱為定向轉發節點;能夠使用定向轉發中繼訊息的節點稱為定向轉發中繼節點。定向轉發中繼一定是定向轉發節點,但定向轉發節點可能是定向轉發中繼,也可能不是。使用的詞彙通常取決於背景脈絡。

如圖4所示,在會議廳範例中,來自舞台照明開關的訊息只會由其中一個定向轉發中繼節點轉發,因為它能夠將訊息發送到目的地,而開關範圍內的另一個定向轉發中繼節點則會忽略這些訊息。請注意, 本例中的照明開關是定向轉發節點。

圖4 定向轉發運作模式

更便捷的網路設計和設置

在設計和設置(Commissioning)僅使用受管網路泛洪進行訊息傳播的大型藍牙Mesh網路時,可能需要仔細考慮要配置多少節點作為中繼,以及放置位置等問題。如果充當中繼的節點過多,網路產生的流量就會超過需求,發生碰撞的風險更高,擴充性也會受到限制;如果充當中繼的節點太少,可能會出現訊息無法觸及某些節點,或是設計中缺乏備援等通訊問題。

在網路設置階段,啟用定向轉發幾乎不費吹灰之力。所有節點都可以配置為使用定向轉發,只需要設定一套簡單的定向轉發策略參數,系統就能自我維護和優化所需的通訊路徑。

定向轉發配置服務端模型

目前引入了新的基礎模型,稱為定向轉發配置服務端(Directed Forwarding Configuration Server)模型,包括名為定向控制的複合狀態,包含許多子狀態,如定向轉發狀態和定向中繼狀態,這些狀態分別指示和控制定向轉發及定向中繼功能是否啟用。有鑑於兩種功能之間的關係,定向中繼狀態與定向轉發狀態綁定,如果定向轉發功能遭到停用,定向中繼功能也將被停用。定向轉發配置服務端模型的存在與否,決定節點是否有可能使用定向轉發。定向控制狀態值將決定啟用或停用哪些定向轉發功能。

定向轉發路徑概念解析

定向轉發中繼節點只選擇性地參與某些訊息的重傳,而不參與其他訊息的重傳,這涉及路徑和通道(Paths and Lanes) 的概念。在藍牙Mesh配置文件1.0版本中,並未正式定義路徑一詞;在定向轉發文件中使用時,路徑具有更具體的涵義:路徑是一組節點,可以透過定向轉發功能,參與將訊息從來源位址轉發到特定子網(Subnet)的目的地位址。路徑的來源總是單一節點,由單播位址識別。在定向轉發中,來源節點稱為路徑原點。

路徑的目的地是一個或多個節點的集合,具體取決於所使用的位址類型。單播位址、群組位址和虛擬位址都是路徑目的地的有效識別項。如果目的地由群組位址或虛擬位址識別,那麼訂閱該位址的節點就稱為路徑目標。因此,用定向轉發的語言來說,一條路徑有一個路徑原點節點和一或多個路徑目標節點。

定向轉發節點知道自己所在的路徑,但對服務於同一路徑的其他節點一無所知,該節點並不知道在訊息中繼序列中,可能排在自己之前或之後的節點。如此一來,可確保系統避免複雜的配置相依性, 此類相依性會使網路維護變得困難、耗時或昂貴;因此,定向轉發保留了更簡單的受管網路泛洪方法的優點之一。

圖5~圖8進一步解釋定向轉發路徑的運作原理。圖5為圖例說明。

圖5 圖例說明

圖6顯示了簡單的定向轉發路徑,其中以一個燈具開關作為路徑原點,一個燈具作為唯一的路徑目標節點。圖6的紅色圖示代表定向轉發中繼節點,屬於開關節點到照明節點路徑的一部分,而照明節點訂閱了開關使用的發布位址。開關發布開/關訊息時,位於路徑上的紅色節點和不在路徑上的相鄰定向中繼節點(紫色)都會收到。紅色節點知道自己在所需路徑上,因此使用定向轉發中繼轉發訊息;紫色節點知道自己不在這條路徑上,因此立即捨棄開/關訊息。如此可防止訊息進一步傳播到與訊息無關的網路部分。

圖6 只有一個目標節點的路徑

群組位址和虛擬位址通常由不止一個節點訂閱。目的地為群組位址的路徑通常會有一個以上的路徑目標節點。圖7舉例說明在燈具開關和大禮堂邊上一系列燈具之間提供通訊服務的路徑,所有燈具都訂閱了該路徑的群組位址。

圖7 具有多個目標節點的路徑

開關節點再次發布開/關訊息,範圍內的所有定向轉發中繼器都會收到該訊息。只有知道自己處於開關節點單播位址(路徑原點)到訂閱路徑群組目的地位址節點(路徑目標節點)路徑上的節點才會重傳訊息,不在該路徑上的其他定向轉發節點將捨棄訊息。

圖8顯示開關使用受管網路泛洪中繼向群組位址發布的相同訊息,TTL值為4,以確保訊息有足夠的跳躍數來抵達所有目的地節點。比較圖7和圖8,可以明顯看出定向轉發如何更有效地完成訊息傳遞。本文的下半部分將進一步討論路徑和通道的技術細節。

圖8 採用受管網路泛洪的情況

(本文作者Martin Woolley任職於藍牙技術聯盟;Szymon Slupik、Piotr Winiarczyk任職於Silvair)

釐清路徑減少無效傳輸 解析藍牙Mesh定向轉發(1)

路徑/通道傳輸有門道 解析藍牙Mesh定向轉發(2)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!