LoRa信道争抢怎么办?传说中的冲突退避管用吗?
前言
如果要說LoRaWAN的缺點,我覺得最大的不足就是:作為一個MAC層協議,它在信道接入這塊機制的處理太簡單了。
LoRaWAN標準中,終端的信道接入方法是純ALOHA機制,終端不進行信道檢測,直接發送,這樣隨著終端數量增多或發送包數量增多時,多個終端的包在信道上發生碰撞的概率就大大增加。
IoT小能手在LoRa之前玩了挺長時間的ZigBee,放眼到WiFi,ZigBee等協議底層,他們都不約而同地采用了CSMA-CA技術。哦,這個“不約而同”用地并不好,本質上他們都是IEEE協會出的標準,工作組之間相互借鑒下成熟的東西,是挺正常的一回事。
你看這些協議都在關鍵部分就把信道接入給提出來了。
CSMA-CA
我們就來看看CSMA-CA是什么東西。
如下一段是摘抄自 IEEE802.15.4-2006 標準文檔。
The IEEE 802.15.4 LR-WPAN uses two types of channel access mechanism, depending on the network configuration. Nonbeacon-enabled PANs use an unslotted CSMA-CA channel access mechanism, as described in 7.5.1. Each time a device wishes to transmit data frames or MAC commands, it waits for a random period. If the channel is found to be idle, following the random backoff, the device transmits its data. If the channel is found to be busy following the random backoff, the device waits for another random period before trying to access the channel again.
所以,CSMA-CA算法是怎么回事呢?
簡單說就是分兩步,第1步是對信道進行檢測,檢測信道忙閑,當信道空閑時進行發送;第2步是在信道忙時進行延時退避,延時到后再檢測,如果檢測還忙,則再進行退避,退避時間根據重試次數而指數倍增加。
這確實對提升數據單次傳輸的可靠性有一定的幫助,CLAA(中國LoRa應用聯盟)的協議標準中也推薦了CSMA-CA算法。(利益聲明:聯盟秘書長和我是微信好友)
duty-cycle
難道Semtech、IBM、Actility這些通信專家就沒想過這些問題嗎?
在官方協議的地區參數文檔中就做了聲明,但是不明顯。細心如本尊twowinter,也是在翻了第十二遍協議文檔時,才發現了這段話。
為了滿足ETSI 868的標準,LoRaWAN協議采用了其中的duty-cycle機制來處理,而放棄了 Listen Before Talk 機制。
duty-cycle的吐槽
說起duty-cycle機制,不知道在座的各位用過沒有。反正我用著挺蛋疼的,每次都要費盡口舌給別人解釋一番。場景是這樣:
“小能手,為什么我現在發不了數據了?”
“因為你剛才的數據發了2秒鐘,根據1%的duty-cycle限制,你接下來得等198秒后才能再發。”
“哇靠,what the f***!”
低功耗廣域網領域目前還有一家躁動的公司Ingenu,它也深深地吐槽了LoRa的duty-cycle處理。(Ingenu取名源自英文足智多謀“ingenuity”,不少人讀作“英格努”,我覺得還不夠貼切,應該讀作“英巨牛”。注意,twowinter我是認真的,不信可以去看英標。)
Ingenu的官網比較熱血,如果你像我一樣頂著產品經理的頭銜,沒事去找些無聊資料的話,就會在白皮書位置看到英巨牛對LoRaWAN和Sigfox的公開嘲諷,《LoRaWAN給你準備的九大驚喜》、《Sigfox給你準備的八大驚喜》。
在《LoRaWAN給你準備的九大驚喜》中,發現第一個驚喜就是對LoRaWAN duty-cycle的吐槽。
LoRaWAN的考量
行文至此,twowinter陷入了沉思,LoRa接下去的路究竟該怎么走。。。
想著想著,似乎化身成了LoRa技術委員會主席 Nicolas Sornin。畫面切到2014年,為了制定協議標準而進行了多日唇槍舌戰的那個夏夜。
“Listen Before Talk這種信道爭搶方式,確實對數據可靠性有一定幫助,但各位剛才也提到了,這種隨機延時會增加若干個接收窗口,增大功耗。我想這是一個取舍的問題,我們是什么技術,低功耗廣域網技術,低功耗這三個字可是寫在最前頭啊。所以各位,數據可以丟,電池要保住!
還有一個尤為重要的地方,是我強烈支持采用duty-cycle的原因。在座的各位已經投入了非常多的財力物力到這里,可以說我們是一條船上的人。LBT的競爭性,不確定性讓我感到不安,duty-cycle是讓人放心的,即便有天網絡癱瘓,duty-cycle可以讓這個世界像沒發生過。我們的LoRaWAN是奔著廣域網的大目標去的,相比于ZigBee、WiFi這些小型網絡,它的考量應該是更慎重一些。”
前面這個臆想畫面純屬玩笑,但我想LoRaWAN很可能真的是從功耗和網絡穩定性這兩個角度去考慮,所以才采用duty-cycle信道接入方式。
后記
如果想要保證單次傳輸的可靠性和及時性,那還是可以考慮用下CSMA機制。畢竟LoRa技術的自由度很大,玩家在LoRa調制的基礎上,根據自己的應用場景來玩就好了。
總結
以上是生活随笔為你收集整理的LoRa信道争抢怎么办?传说中的冲突退避管用吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目工程设计图纸内容规范
- 下一篇: JS 最新版身份证格式验证