1
前言
在《WiMinet 評說 1.2:多跳無線網(wǎng)絡(luò)的現(xiàn)狀》一文中,我們提到:在室外長距離的無線自組織網(wǎng)絡(luò)中,由于節(jié)點(diǎn)之間的鏈路損耗較大,其鏈路預(yù)算相對不足,其包誤碼率PER會相應(yīng)升高,也就是丟包概率 p 會比較大;而在一個大規(guī)模網(wǎng)絡(luò)中,某些分支節(jié)點(diǎn)的通訊鏈路又會比較深,也就是網(wǎng)絡(luò)跳數(shù) n 比較大,在這種情況下其通訊成功率 Pn 自然也就顯著下降了,人們的切身感受就是這個鏈路不太穩(wěn)定。
此時人們的第一反應(yīng)自然是上 TCP 算法,在發(fā)送節(jié)點(diǎn)啟用 TCP Client 算法,在接收點(diǎn)啟用 TCP Server 算法,實(shí)現(xiàn)端到端的控制,這樣不就可以解決多跳無線通訊網(wǎng)絡(luò)的可靠性了么?我們今天就來深入討論一下這個問題。
2
多跳網(wǎng)絡(luò)
很顯然在一個真實(shí)的無線通訊系統(tǒng)中,每一個節(jié)點(diǎn)都是具備雙向收發(fā)能力的,但是為了更加清晰的描述數(shù)據(jù)流向,我們將原始數(shù)據(jù)的發(fā)出者定義為發(fā)射機(jī),將目標(biāo)數(shù)據(jù)的接受者定義為接收機(jī);如下圖所示,我們定義左邊紅色的“鐵塔”為發(fā)射機(jī),右邊藍(lán)色的“鍋蓋”為接收機(jī)。
圖1-發(fā)射機(jī)與接收機(jī)
在一個較大規(guī)模的無線通訊網(wǎng)絡(luò)中,中繼通常有兩種存在形式,一種是獨(dú)立的中繼器,通常其硬件配置較高,性能也比較強(qiáng)勁,并安裝有多根天線;另外一種是普通的數(shù)據(jù)節(jié)點(diǎn)本身承擔(dān)數(shù)據(jù)轉(zhuǎn)發(fā)的功能,這種節(jié)點(diǎn)成本較低,通常僅僅配置一根天線。無論其硬件配置和工作原理如何,它們都可以承擔(dān)數(shù)據(jù)轉(zhuǎn)發(fā)的功能,為了更加直觀地描述中繼的工作機(jī)制,我們以雙天線的中繼器為例。
圖2-多跳無線中繼
在多數(shù)情況下,負(fù)責(zé)參數(shù)通訊的還有外部的用戶系統(tǒng),比如連接數(shù)據(jù)庫的上位機(jī)應(yīng)用程序和連接現(xiàn)場工業(yè)傳感器的嵌入式設(shè)備;通常負(fù)責(zé)發(fā)起數(shù)據(jù)請求的是上位機(jī)應(yīng)用程序,二者以RJ45以太網(wǎng)線或者RS232電纜連接。
圖3-上位機(jī)應(yīng)用軟件
負(fù)責(zé)采集數(shù)據(jù)并回傳的是嵌入式設(shè)備,二者以RS232電纜,TTL電平的串口或者GPIO端口直接相連。
3
業(yè)務(wù)流程與運(yùn)作機(jī)制
按照我們之前的約定,我們選定網(wǎng)絡(luò)中一個具有6跳的(5個中繼)分支鏈路,在該鏈路上一個標(biāo)準(zhǔn)的通訊業(yè)務(wù)流程通常如下:
01
上位機(jī)系統(tǒng)發(fā)起數(shù)據(jù)請求
02
數(shù)據(jù)請求通過有線電纜傳遞給發(fā)射機(jī)
03
發(fā)射機(jī)將數(shù)據(jù)發(fā)送給1號中繼
04
數(shù)據(jù)依次在中繼1→2→3→4→5之間傳遞,最后到達(dá)接收機(jī)
05
接收機(jī)將數(shù)據(jù)通過有線電纜傳遞給嵌入式系統(tǒng)
06
嵌入式系統(tǒng)采集數(shù)據(jù)
注意到,這里僅僅是數(shù)據(jù)的下行請求過程,在嵌入式系統(tǒng)完成了數(shù)據(jù)的采集之后,就會將其作為應(yīng)答回傳給上位機(jī)系統(tǒng),其上行通訊流程剛好和下行傳輸完全相反:
01
嵌入式系統(tǒng)送出采集到的數(shù)據(jù)
02
數(shù)據(jù)應(yīng)答通過有線電纜傳送給接收機(jī)
03
接收機(jī)將數(shù)據(jù)發(fā)送給5號中繼
04
數(shù)據(jù)依次在中繼5→4→3→2→1之間傳遞,最后到達(dá)發(fā)射機(jī)
05
發(fā)射機(jī)將數(shù)據(jù)通過有線電纜傳遞給上位機(jī)系統(tǒng)
06
上位機(jī)系統(tǒng)完成數(shù)據(jù)的存儲,計算和顯示
4
UDP多跳傳輸模型
我們都知道,有線通訊由于在封閉的通道中運(yùn)行,其錯誤率通常在 10-9~10-12,可靠性是非常高的,我們基本不用考慮丟包的問題。這里為了敘述方便,我們將上位機(jī)應(yīng)用程序的功能合并到發(fā)射機(jī)中去,將連接工業(yè)傳感器的嵌入式設(shè)備的功能合并到接收機(jī)中去,這樣簡化之后的模型就是下圖。
圖5-UDP多跳傳輸模型
在該模型中,每一個角色的基本工作原理如下:
01
發(fā)射機(jī):產(chǎn)生數(shù)據(jù)請求,發(fā)送給中繼1,然后轉(zhuǎn)入接收狀態(tài),等待來自目標(biāo)節(jié)點(diǎn)(接收機(jī))的應(yīng)答數(shù)據(jù);如果在指定的時間之內(nèi)收到了應(yīng)答數(shù)據(jù)則代表通訊成功;如果沒有則重新發(fā)送請求并增加計數(shù)器;當(dāng)計數(shù)器到達(dá)某個限定數(shù)值則認(rèn)定通訊失敗。
02
接收機(jī):平時處于接收等待狀態(tài),一旦從中繼5接收到了來自發(fā)射機(jī)的請求數(shù)據(jù),則立刻生成應(yīng)答數(shù)據(jù),并交給中繼5。
03
中繼器:按照報文約定的指定的傳輸方向,復(fù)制報文并以重新發(fā)送給下一個接收節(jié)點(diǎn),包括中繼,發(fā)射機(jī)和接收機(jī)。
上圖是丟包概率 p = 10% 的時候的一種效果模擬圖。這里設(shè)定了5次數(shù)據(jù)重傳,從該圖我們看出來每一次的通訊丟包情況都不同:
01
新數(shù)據(jù)請求,在發(fā)射機(jī)到中繼1的下行鏈路上就丟失了
02
第1次重傳,在中繼2到中繼3的下行鏈路上丟失了
03
第2次重傳,下行鏈路各跳全部成功,接收機(jī)正確地收到了數(shù)據(jù),并生成了應(yīng)答,但是應(yīng)答數(shù)據(jù)在中繼5→中繼4的上行鏈路上丟失了
04
第3次重傳,在中繼3到中繼4的下行鏈路上丟失了
05
第4次重傳,下行鏈路各跳全部成功,接收機(jī)正確地收到了數(shù)據(jù),并生成了應(yīng)答,但是應(yīng)答數(shù)據(jù)在中繼2→中繼1的上行鏈路上丟失了
06
第5次重傳,在中繼5→接收機(jī)的下行鏈路上丟失了
07
重傳計數(shù)器到達(dá)極限,應(yīng)用程序判定當(dāng)前鏈路不穩(wěn)定,通訊失??!
5
總結(jié)
當(dāng)然有的讀者心里會想,這個效果模擬圖太過于極端,上述流程中有好幾次差一點(diǎn)就通訊成功了呢,就差一口氣!如果我們加大嘗試的次數(shù),說不定就成功了呢?
事實(shí)上在大多數(shù)情況下,加大嘗試次數(shù),通訊成功率的確會有一定的改善,但無法從根本上消除問題。考慮到有線鏈路的和無線多跳的通訊延遲,再疊加上目標(biāo)設(shè)備的數(shù)據(jù)采集行為,下行或者上行鏈路的傳輸時間可能高達(dá)數(shù)百毫秒。
在真實(shí)的環(huán)境中,還要考慮到各種系統(tǒng)延遲和等待操作,比如Windows,Linux等主流桌面操作系統(tǒng)的調(diào)度延遲,各級無線節(jié)點(diǎn)的單片機(jī)延遲,這個時間往往還需要進(jìn)一步加大,最終這個總的時間往往高達(dá)數(shù)秒甚至幾十秒,在一個有幾百個節(jié)點(diǎn)的數(shù)據(jù)采集系統(tǒng)中,系統(tǒng)整體掃描一遍,耗時將會比較長了。
從上述分析可以看出,端到端的重傳機(jī)制在跳數(shù)較深的無線自組織網(wǎng)絡(luò)中難以保證足夠的可靠性,即便犧牲延時,加大重傳次數(shù),效果也不會有根本性的改善。
審核編輯:劉清
-
接收機(jī)
+關(guān)注
關(guān)注
8文章
1186瀏覽量
53675 -
中繼器
+關(guān)注
關(guān)注
3文章
394瀏覽量
28365 -
無線網(wǎng)絡(luò)
+關(guān)注
關(guān)注
6文章
1444瀏覽量
66104 -
無線通訊
+關(guān)注
關(guān)注
5文章
588瀏覽量
40375 -
UDP通信
+關(guān)注
關(guān)注
0文章
21瀏覽量
1959
原文標(biāo)題:WiMinet 評說1.3:模擬式UDP無線中繼技術(shù)的缺陷
文章出處:【微信號:WiMi-net,微信公眾號:WiMinet無線組網(wǎng)通信】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
WiMinet 評說1.3:模擬式UDP中繼技術(shù)缺陷
討論一下輸液泵精度調(diào)節(jié)的問題
AD模數(shù)轉(zhuǎn)換模塊大家都用什么芯片,都進(jìn)來討論一下。。。
大家討論一下這種電路
上傳一個原理圖,是關(guān)于壓電式蜂鳴器的,大家來討論一下工作原理
模擬式旋鈕的相關(guān)資料推薦
討論一下2018年物聯(lián)網(wǎng)行業(yè)應(yīng)該制定的7個新年計劃
基于VN5650討論一下以太網(wǎng)的配置與使用
![基于VN5650<b class='flag-5'>討論一下</b>以太網(wǎng)的配置與使用](https://file1.elecfans.com/web2/M00/88/B5/wKgZomRwClCAUle4AAAQK26z2L0949.png)
WiMinet 評說1.3:模擬式UDP中繼技術(shù)缺陷
![WiMinet 評說1.3:<b class='flag-5'>模擬式</b><b class='flag-5'>UDP</b><b class='flag-5'>中繼</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>缺陷</b>](https://file1.elecfans.com/web2/M00/C1/AC/wKgaomXYRJWAOTb-AABE8jYlE64975.png)
評論