NB IOT系列專題2 長連線

2021-10-09 17:42:44 字數 1557 閱讀 9223

為什麼要單獨講nb-iot的長連線呢?有人會問,我之前用的2g、4g都是直接用的呀,連上伺服器,發個心跳不就做到長連線了嗎?沒錯,2g、4g的通訊模組這樣做確實就可以了,但是nb-iot不可以,由於nb-iot的網路原因,本身就是針對低頻次、小資料量的場景,對長連線方案並不友好。

但是既然有需求,當然也就有解決方案,下文會針對需求,提供兩種方案,來使nb裝置達到長連線的效果。

從nb-iot的工作狀態來看,因為nb-iot引入了psm機制(別說你不知道,第一章低功耗章節有講到),終端進入psm模式後,也就是模組關閉了rf功能,也就意味著終端與網路的連線已經斷開,此時終端處於斷網狀態,任何伺服器下發的指令都不可能收的到。

還乙個就是ip老化問題,只是這個問題,我雖然遇到過,但是不知道用什麼言語來形容的好,一般搞通訊的都懂,歸根到底是因為ipv4位址分配的問題。

首先為了解決上述psm的導致的終端與伺服器斷開的問題我們需要關閉終端模組的psm功能;當終端關閉psm功能後,在資料傳送完成斷開rrc連線後,模組會一直處於idle狀態,在idle狀態下,模組會按照設定的尋呼時間窗,週期的監聽網路尋呼,達到終端裝置與伺服器的長連線效果。

1、入門方案—心跳

沒錯,可以延續2g、4g模組的方案,定期的傳送心跳資料到伺服器,重新整理nat對映老化計時器時間,從而維持ipv4 nat對映不被**,此時上層應用伺服器下發的資料便能隨時通過該nat對映傳送到基站,基站通過尋呼即可將資料傳送到終端。

但是,心跳方案在一定的場合存在著不小的缺陷。且看下文分析:

3gpp規定的nb-iot使用的載波頻寬為200khz,並且當前部署的子載波頻寬都為15khz,這就意味著出去保護帶20khz,(200 - 20) / 15 = 12。這是啥意思?

也就是說乙個nb基站可以同時併發的nb裝置,最大只有12臺!!!

突然想起教我訊號系統的美女姐姐老師,好像講過夏農定理的,說的啥忘記了,本來沒想往這塊發展的。(ps: 有個理論是:通道容量由頻寬及訊雜比決定,增大頻寬、提高訊雜比可以增大通道容量)

看到現在,可以看出心跳方案本身存在著巨大缺陷,那就是當乙個基站下很多終端都在使用心跳方案進行長連線的時候,有很大的可能會因為網路的併發容量不夠而引起的終端資料傳送失敗!在這種情況下,甚至可能引起終端掉網,網路嚴重阻塞的問題。

說到這裡,我想到了在我中學時,過年在家拿著大人的手機,瀏覽網頁,經常會斷網,當時還不知道啥原因,就被踢掉了!

2、開通gre隧道卡

在第一種心跳方案不太適合一定場景的情況下,這時候就需要另尋途徑解決ipv4 nat對映不被老化**的手段。

ipv4的nat對映老化是由於公網資源有限而引入的,那麼是否有辦法可以通過專用網路的方式解決資源受限的問題,從而規避nat對映這種機制帶來的影響呢?

當然有,移動物聯網為我們提供了乙個onenet專網,開通對應的隧道卡即可使用,這種方式無需傳送心跳維持連線,不會因為頻繁心跳導致多個終端出現併發受限,導致傳送資料失敗或者引起網路阻塞的問題。

可以理解為,核心網為裝置專門開通了乙個ip port供裝置上下行使用。

這個方案呢主要是移動提供的,專網通道,具體原理呢咱也不知道,反正是這樣用的。

俗氣的理解為別人都要通過高考擠獨木橋,而你被保送清華了。

微核心專題系列

微核心定義 微核心是核心的一種精簡形式。將通常與核心整合在一起的系統服務層被分離出來,變成可以根據需求加入選件,這樣就可提供更好的可擴充套件性和更加有效的應用環境。使用微核心設計,對系統進行公升級,只要用新模組替換舊模組,不需要改變整個作業系統。在我們常見的應用程式中,有哪些採用了微核心的思想去開發...

專題訓練(2)

本週的學習內容 樹狀陣列 用於對區間操作非常方便。1001 求乙個整數,二進位制表示形式中最低位的1代表的整數。就是樹狀陣列中,求lowbit的操作。題解 include using namespace std intmain return0 1002 樹狀陣列的應用。點操作,區間查詢。剛開始樹狀陣...

LeetCode系列 位運算專題

目錄 位運算專題 leetcode 231 2的冪 1 分析 2 leetcode 762 二進位制表示中質數個數計算置位 1 分析 leetcode 136 只出現一次的數 1 分析 2 leetcode 476 數字的補數 1 分析 2 leetcode 137 只出現一次的數字ii 1 分析 ...