ZigBee路由機制有以下種類:
TableRouting
BroadcastRouting
MulticastRouting
Many-to-One/SourceRouting
源節(jié)點為了發(fā)現(xiàn)到目標節(jié)點的路徑,首先源節(jié)點發(fā)送路由發(fā)現(xiàn)請求從而形成路由表。當兩個節(jié)點之間的路由建立后,源節(jié)點只需要將數(shù)據(jù)發(fā)送給路由中的第一個節(jié)點,此節(jié)點存在源節(jié)點的路由表中。因此每一個中間節(jié)點都通過查詢自己的路由表將數(shù)據(jù)轉發(fā)到路由的下一個節(jié)點,直到數(shù)據(jù)到達目標節(jié)點。如果路由失敗,則將路由錯誤發(fā)送回給源節(jié)點,然后源節(jié)點可以重新發(fā)起路由發(fā)現(xiàn)請求。
廣播路由是在網(wǎng)絡中給所有設備發(fā)送消息的一種路由機制。網(wǎng)絡層廣播具有選項可以選擇是將消息只發(fā)送給路由設備,還是發(fā)送到非休眠的終端設備,或者還是發(fā)送到帶休眠的終端設備。
如下表格,通過廣播地址設置
廣播地址 | 目標設備 |
0xFFFF | 網(wǎng)絡中所有設備 |
0xFFFE | 預留 |
0xFFFD | 網(wǎng)絡中的非休眠設備 |
0xFFFC | 網(wǎng)絡中的協(xié)調器和所有路由設備 |
一條廣播消息會被網(wǎng)絡中所有路由設備重復廣播3次,以確保傳送到所有設備。雖然廣播是發(fā)送消息的可靠方法,但由于對網(wǎng)絡性能的影響,應謹慎使用廣播。重復廣播可能會限制網(wǎng)絡中其他正在發(fā)生的通信。廣播也不是給休眠設備發(fā)送消息的可靠方式,因為父設備負責緩沖發(fā)送給休眠子設備的消息,但可能會在休眠子設備喚醒前丟掉消息。
組播路由提供一對多通信的路由選項。當一個設備想要向一組設備發(fā)送消息時使用組播,例如一個開關向一組10個等發(fā)送開命令。在這種機制下,所有設備加入到一個組中。只有那些屬于該組成員的設備才會收到消息,而其他設備將路由轉發(fā)這些組播消息。組播可以理解成被限制的廣播,同樣過多使用會降低網(wǎng)絡性能。廣播和組播都是沒有ACK的。
Many-to-One Routing,是一種簡單的路由機制,使得整個網(wǎng)絡中的路由設備擁有回到中心節(jié)點(集中器)的路由,在這種機制下,中心節(jié)點(集中器)周期性發(fā)送Many-to-One route discovery廣播(默認60秒可以根據(jù)需求設置)。當網(wǎng)絡中的路由設備收到這條廣播之后,其擁有回到中心節(jié)點(集中器)的下一跳路由,并將此跳節(jié)點信息存儲在自己的路由表中。至此,只要網(wǎng)絡中的路由設備收到Many-to-One route discovery的廣播,就知道回中心節(jié)點(集中器)的路由。
如下圖所示,C周期廣播Many-to-One route discovery,網(wǎng)絡中的所有路由設備都知道自己到C的路由信息,同時并更新到自己的路由表中。
Source routing,是指中心節(jié)點(集中器)將發(fā)往其它路由設備的路由機制。對于中心節(jié)點(集中器)而言,其還不知道下行的路由,即將信息發(fā)往每個路由設備的路由還未知。因此當每個路由設備發(fā)送單播到中心節(jié)點時,會在此之前發(fā)送一條Route Record給中心節(jié)點。中心節(jié)點收到這條Route Record,將這條路由反向并存儲在中心節(jié)點的Source routing表里(表的大小需要儲存網(wǎng)絡中的所有路由設備的源路由信息)。這樣,中心節(jié)點就可以通過查詢Source routing表來獲取發(fā)給目的節(jié)點的路由。
如下圖所示,R1向C發(fā)送單播數(shù)據(jù)時,會先發(fā)一個自己的路由信息給C,C收到R1的路由信息時會把路由反向儲存到自己的源路由表中,同理源路由表會記錄網(wǎng)絡中所有路由設備的路由信息。
總之,只要路由設備收到Many-to-One route discovery廣播,就知道回到中心節(jié)點的路由。只要中心節(jié)點的Source routing表里面有路由設備的信息,則中心節(jié)點就知道發(fā)往該路由設備的路由。
如果異常情況下中心節(jié)點(集中器)復位或斷電重啟,其Source routing表的信息會全部丟失,此時需要有相應的機制來恢復其Source routing表。在此情況下,可以使中心節(jié)點(集中器)先廣播Many-to-One route discovery,
之后再廣播一條數(shù)據(jù)到各路由節(jié)點,使得路由節(jié)點向中心節(jié)點(集中器)回復一條單播,路由節(jié)點在發(fā)送此條單播之前會發(fā)送Route Record,因此中心節(jié)點可以更新其Source routing表。
如果在某種異常情況下路由節(jié)點全部斷電或重啟,其中各路由節(jié)點的路由表也會丟失,此時需要等待至少16s左右之后,每個路由節(jié)點建立起與鄰居路由節(jié)點的鏈路之后,再由中心節(jié)點(集中器)發(fā)送Many-to-One route discovery廣播,一旦各路由節(jié)點設備收到Many-to-One route discovery廣播,就擁有了回到中心節(jié)點的路由。
今天的分享就到這里啦,EBYTE人每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)進行了解,還有客服小姐姐在線答疑哦!
7 X 24 銷售服務熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務郵箱:support@cdebyte.com
全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機:028-61543675)
?? 成都億佰特電子科技有限公司【版權所有】 蜀ICP備13019384號-3