賴菊蘭,王曉品,劉 強(qiáng)
(廣州軟件學(xué)院 電子系,廣東 廣州 510990)
隨著終端接入數(shù)據(jù)數(shù)量增多,無(wú)線傳感通信網(wǎng)絡(luò)中的傳輸通道會(huì)發(fā)生擁塞,導(dǎo)致信息丟失,因此需要對(duì)無(wú)線傳感通信網(wǎng)絡(luò)中各傳輸通道的擁塞程度進(jìn)行控制。文獻(xiàn)[1]提出了基于數(shù)據(jù)驅(qū)動(dòng)的控制方法,該方法根據(jù)節(jié)點(diǎn)間關(guān)聯(lián)性被動(dòng)監(jiān)測(cè)附近節(jié)點(diǎn)傳輸數(shù)據(jù)幀,對(duì)節(jié)點(diǎn)活躍度進(jìn)行量化,并進(jìn)行擁塞控制。但該方法未考慮擁塞節(jié)點(diǎn)發(fā)送速率,端到端延時(shí)較大。文獻(xiàn)[2]提出了基于帶寬自適應(yīng)的控制方法,通過(guò)分組預(yù)測(cè)擁塞網(wǎng)絡(luò)狀態(tài),估計(jì)可用帶寬,判斷網(wǎng)絡(luò)丟包程度,通過(guò)擁塞窗口自適應(yīng)調(diào)節(jié)控制通信網(wǎng)絡(luò)擁塞。但該方法受到鏈路帶寬限制,節(jié)點(diǎn)丟包率較高。文獻(xiàn)[3]提出了基于博弈論的控制方法,運(yùn)用數(shù)據(jù)流優(yōu)化算法控制通信網(wǎng)絡(luò)的擁塞。但數(shù)據(jù)流優(yōu)化算法較為復(fù)雜,全局吞吐量小。
為了解決上述問(wèn)題,以提升無(wú)線傳感通信網(wǎng)絡(luò)擁塞控制效果,本文設(shè)計(jì)一種嵌入式技術(shù)下的無(wú)線傳感通信網(wǎng)絡(luò)擁塞控制系統(tǒng)。設(shè)計(jì)嵌入式以太網(wǎng)擁塞數(shù)據(jù)交換接口電路,采用嵌入緩沖器開(kāi)環(huán)控制模塊結(jié)構(gòu),根據(jù)排隊(duì)長(zhǎng)度變化控制數(shù)據(jù)包丟棄率。計(jì)算接收方通告窗口大小,檢測(cè)高、低優(yōu)先級(jí)傳輸網(wǎng)絡(luò)擁塞情況。通過(guò)計(jì)算擁塞節(jié)點(diǎn)發(fā)送速率來(lái)控制高、低優(yōu)先級(jí)傳輸網(wǎng)絡(luò)局部擁塞。將全局擁塞競(jìng)爭(zhēng)窗口變?yōu)楫?dāng)前窗口,使用檢測(cè)緩存隊(duì)列占空率方式控制全局擁塞。測(cè)試結(jié)果表明,所設(shè)計(jì)系統(tǒng)最大吞吐量為2 600 b/s,最大端到端延時(shí)為18 s,最大節(jié)點(diǎn)丟包率為2.0%,使用該系統(tǒng)能夠提升網(wǎng)絡(luò)擁塞控制效果。
當(dāng)前,網(wǎng)絡(luò)中擁塞檢測(cè)和控制多依靠節(jié)點(diǎn)的主動(dòng)響應(yīng),缺乏節(jié)點(diǎn)數(shù)據(jù)的緩沖區(qū)域,這將嚴(yán)重影響檢測(cè)和控制的進(jìn)程,并進(jìn)一步加劇擁塞,導(dǎo)致數(shù)據(jù)丟包?,F(xiàn)有分層網(wǎng)絡(luò)架構(gòu)的各層功能存在著大量的冗余和重疊,數(shù)據(jù)交換跨接時(shí)存在擁塞。為此,文章摒棄傳統(tǒng)分層結(jié)構(gòu),設(shè)計(jì)嵌入式無(wú)線傳感通信網(wǎng)絡(luò)擁塞控制系統(tǒng)硬件結(jié)構(gòu),如圖1 所示。
圖1 嵌入式無(wú)線傳感通信網(wǎng)絡(luò)擁塞控制系統(tǒng)硬件結(jié)構(gòu)
如圖1 所示,在系統(tǒng)硬件架構(gòu)中,使用Cortex?A8 核的AM3354 工業(yè)處理器高速處理數(shù)據(jù),為系統(tǒng)穩(wěn)定運(yùn)行提供支持。利用嵌入式以太網(wǎng)擁塞數(shù)據(jù)交換接口保證內(nèi)部點(diǎn)對(duì)點(diǎn)連接和外部跨接方式的通信質(zhì)量,解決數(shù)據(jù)交換跨接的擁塞問(wèn)題。利用開(kāi)環(huán)控制模塊將數(shù)據(jù)按優(yōu)先級(jí)排列,保留數(shù)據(jù)緩沖區(qū)域,控制丟包率。
將以太網(wǎng)接口添加到嵌入式系統(tǒng)中,利用內(nèi)置的以太網(wǎng)接口來(lái)實(shí)現(xiàn)。該接口采用一種內(nèi)部總線的方式來(lái)完成與網(wǎng)絡(luò)之間的信息交流。嵌入式以太網(wǎng)擁塞數(shù)據(jù)交換接口電路如圖2 所示。
圖2 嵌入式以太網(wǎng)擁塞數(shù)據(jù)交換接口電路
DM9000AE 可以8 位或16 位總線與Cortex?A8 內(nèi) 核的AM3354 工業(yè)處理器連接[4?5]。在向以太網(wǎng)上傳輸數(shù)據(jù)幀時(shí),將其按字節(jié)傳輸?shù)紻M9000AE 的數(shù)據(jù)傳輸緩沖存儲(chǔ)器中[6],DM9000AE 根據(jù)MAC 分組處 理緩沖數(shù)據(jù)[7]。外部網(wǎng)線無(wú)論是采用點(diǎn)對(duì)點(diǎn)還是跨接方式,都可以實(shí)現(xiàn)良好的通信。
開(kāi)環(huán)控制是將網(wǎng)絡(luò)傳輸信息存儲(chǔ)到緩沖系統(tǒng),利用模糊規(guī)則預(yù)測(cè)數(shù)據(jù)流量,控制網(wǎng)絡(luò)中的丟包速率[8]。嵌入緩沖器的開(kāi)環(huán)控制模塊結(jié)構(gòu)如圖3 所示。
圖3 嵌入緩沖器的開(kāi)環(huán)控制模塊結(jié)構(gòu)
嵌入緩沖器開(kāi)環(huán)控制的模塊化框架是按照數(shù)據(jù)包中的優(yōu)先級(jí)來(lái)判定的,將具有不同優(yōu)先級(jí)的每個(gè)字段排入對(duì)應(yīng)的排隊(duì)中[9];然后分別對(duì)每一個(gè)排隊(duì)進(jìn)行正規(guī)化,并對(duì)正規(guī)化的長(zhǎng)度進(jìn)行估計(jì),通過(guò)模糊規(guī)則推導(dǎo)出每個(gè)隊(duì)列的丟包率[10]。
模糊機(jī)制的特征在于它消除了以往固定的隊(duì)列長(zhǎng)度和固定的閾值限制,并以排隊(duì)長(zhǎng)度的變化情況和隊(duì)列優(yōu)先等級(jí)分類為依據(jù),對(duì)其進(jìn)行分類處理,從而動(dòng)態(tài)推斷數(shù)據(jù)包丟棄概率。
基于開(kāi)環(huán)控制模塊對(duì)緩沖空間的隊(duì)列數(shù)據(jù)進(jìn)行擁塞檢測(cè),根據(jù)檢測(cè)報(bào)文分別對(duì)高、低優(yōu)先級(jí)的數(shù)據(jù)進(jìn)行擁塞控制。
發(fā)送方窗口尺寸取決于接收方可用緩存空間,假設(shè)僅接收方可以指示發(fā)送方使用傳輸窗口尺寸,若無(wú)線傳感通信網(wǎng)絡(luò)無(wú)法以發(fā)送方同樣的速度將數(shù)據(jù)傳遞至接收方,則應(yīng)告知發(fā)送方減速。除了接收方以外,網(wǎng)絡(luò)是一個(gè)次要的實(shí)體,它確定了發(fā)送方窗口的尺寸。用于確定窗口真實(shí)尺寸的公式如下:
式中:Ct表示緩存空間;Dt表示擁塞窗口。窗口真正大小取兩者之中相對(duì)較小的一個(gè),將該窗口視為發(fā)送方窗口。
擁塞窗口有1 個(gè)最大報(bào)文段的長(zhǎng)度作為起始值,該報(bào)文段的數(shù)據(jù)在設(shè)置時(shí)被指定為同樣名稱的選項(xiàng)。每當(dāng)有一個(gè)報(bào)文段被證實(shí),就會(huì)在報(bào)文段的擁塞窗口增加一個(gè)報(bào)文段的長(zhǎng)度。在第1 個(gè)ACK 到達(dá)之后,擁塞窗口的尺寸會(huì)增加1,則目前的擁塞窗口為2。此時(shí),對(duì)于每個(gè)ACK,將增大1 個(gè)報(bào)文段的長(zhǎng)度,即識(shí)別擁塞窗口為4。這時(shí)4 個(gè)報(bào)文段可以被傳送,在4 次確認(rèn)之后,擁塞窗口的尺寸會(huì)再增大4,即擁塞窗口為8。慢開(kāi)始不會(huì)無(wú)限持續(xù),并且發(fā)送方會(huì)注意到一個(gè)變量是慢開(kāi)始的閾值,在以字節(jié)表示的窗口尺寸達(dá)到該閾值后,便停止慢開(kāi)始。
在對(duì)每個(gè)發(fā)送通道的擁塞狀況進(jìn)行衡量時(shí),根據(jù)數(shù)據(jù)優(yōu)先權(quán)級(jí)別檢測(cè)發(fā)送通道的擁塞狀況,并且它的測(cè)量準(zhǔn)則也是不同的。針對(duì)具有更高優(yōu)先權(quán)的傳輸數(shù)據(jù),僅在傳送通道中對(duì)具有更高優(yōu)先權(quán)的排隊(duì)對(duì)象使用情況進(jìn)行分析。然而,如果有優(yōu)先級(jí)比較低的發(fā)送數(shù)據(jù),在發(fā)送通道擁塞情況下,不僅需要對(duì)優(yōu)先級(jí)較低的數(shù)據(jù)進(jìn)行變換和分析,還需要將其優(yōu)先級(jí)排隊(duì)變?yōu)榭?,如此就可以將其?yōu)先級(jí)排隊(duì)中的數(shù)據(jù)傳遞出去。描述高優(yōu)先級(jí)傳輸數(shù)據(jù)a的信道擁塞情況公式如下:
式中:LHt表示所需傳輸高優(yōu)先級(jí)報(bào)文長(zhǎng)度;GHt表示高優(yōu)先級(jí)數(shù)據(jù)緩存大??;N表示節(jié)點(diǎn)總數(shù)。
對(duì)于低優(yōu)先級(jí)傳輸數(shù)據(jù)b,信道擁塞情況表示為:
式中:LFt表示低優(yōu)先級(jí)報(bào)文長(zhǎng)度;GFt表示低優(yōu)先級(jí)數(shù)據(jù)緩存大小。由此完成基于嵌入式技術(shù)的擁塞檢測(cè)。
將無(wú)線傳感通信網(wǎng)絡(luò)擁塞分為兩個(gè)部分:局部擁塞和全局擁塞,分別采用高優(yōu)先級(jí)傳輸數(shù)據(jù)和低優(yōu)先級(jí)傳輸數(shù)據(jù)進(jìn)行控制。
2.2.1 局部擁塞控制
在常規(guī)局部擁塞控制機(jī)制下,擁塞節(jié)點(diǎn)上游的中間節(jié)點(diǎn)負(fù)責(zé)碼率調(diào)整,這將極大地影響整個(gè)網(wǎng)絡(luò)的通信質(zhì)量,特別是對(duì)高優(yōu)先級(jí)數(shù)據(jù)包的傳輸穩(wěn)定性與公平性影響較大。當(dāng)上游節(jié)點(diǎn)接收到節(jié)點(diǎn)響應(yīng)后,在高優(yōu)先級(jí)傳送擁塞節(jié)點(diǎn)之間跳躍傳輸數(shù)據(jù),但在資源有限的情況下,信源的高發(fā)射率將超過(guò)整個(gè)網(wǎng)絡(luò)的最高承載量,導(dǎo)致低優(yōu)先級(jí)傳送數(shù)據(jù)出現(xiàn)擁塞。為此,本文創(chuàng)新性地提出一種基于閉環(huán)的信源率調(diào)整方案,信源網(wǎng)節(jié)點(diǎn)按照基站的需求動(dòng)態(tài)調(diào)節(jié)傳輸速率,公式如下:
式中:vk表示擁塞節(jié)點(diǎn)速率;g表示基站在單位時(shí)間內(nèi)獲取的數(shù)據(jù)吞吐量;β表示數(shù)據(jù)單位時(shí)間內(nèi)基站吞吐量;ψ表示擁塞節(jié)點(diǎn)速率提高幅度;分別表示高優(yōu)先級(jí)和低優(yōu)先級(jí)的傳輸速率,上游節(jié)點(diǎn)為k。
2.2.2 全局擁塞控制
當(dāng)出現(xiàn)全局擁塞問(wèn)題時(shí),競(jìng)爭(zhēng)窗口變?yōu)楫?dāng)前窗口的空閑度λ,則當(dāng)前窗口可表示為:
在碰撞開(kāi)始的瞬間,由于競(jìng)爭(zhēng)權(quán)值比較小,所以競(jìng)爭(zhēng)窗的增幅也較小,能夠降低信道的空閑度,使排隊(duì)不會(huì)在網(wǎng)絡(luò)中等得太久,從而提升信道的使用率。當(dāng)碰撞次數(shù)越來(lái)越多,競(jìng)爭(zhēng)權(quán)值越來(lái)越大,系統(tǒng)的性能也會(huì)越來(lái)越好。若重新傳送的數(shù)目超過(guò)閾值,則會(huì)丟棄此數(shù)據(jù)包,根據(jù)緩沖區(qū)排隊(duì)占空情況判斷是否發(fā)生了擁塞,并對(duì)各個(gè)擁塞節(jié)點(diǎn)進(jìn)行擁塞控制。逐跳網(wǎng)絡(luò)擁塞控制示意圖如圖4 所示。
圖4 逐跳網(wǎng)絡(luò)擁塞控制示意圖
如圖4 所示,當(dāng)一個(gè)局部節(jié)點(diǎn)接收到一個(gè)待轉(zhuǎn)發(fā)數(shù)據(jù)時(shí),通過(guò)逐跳網(wǎng)絡(luò)能夠立刻檢測(cè)擁塞。為了減少一個(gè)受影響的節(jié)點(diǎn)到達(dá)該通道所需的時(shí)間,可以在最短的時(shí)間內(nèi)將數(shù)據(jù)包從數(shù)據(jù)緩沖區(qū)中釋放出來(lái),從而快速緩解全局擁塞。由此完成嵌入式技術(shù)下無(wú)線傳感通信網(wǎng)絡(luò)擁塞控制。
以實(shí)際無(wú)線傳感通信網(wǎng)絡(luò)的狀況為依據(jù),將等比例的模擬場(chǎng)景部署在1 000 m×1 000 m 的監(jiān)控范圍內(nèi),通過(guò)數(shù)據(jù)傳輸可靠性衡量所設(shè)計(jì)的控制系統(tǒng)的穩(wěn)定性。
采用NS?2 仿真平臺(tái)對(duì)設(shè)計(jì)的控制系統(tǒng)進(jìn)行仿真實(shí)驗(yàn),基于此搭建的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖5 所示。
圖5 無(wú)線傳感通信網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
在安全校驗(yàn)范圍內(nèi),利用虛擬節(jié)點(diǎn)對(duì)節(jié)點(diǎn)信息校驗(yàn),避免被破壞節(jié)點(diǎn)中信息丟失。
將本文控制系統(tǒng)與基于數(shù)據(jù)驅(qū)動(dòng)的控制方法(文獻(xiàn)[1])、基于帶寬自適應(yīng)的控制方法(文獻(xiàn)[2])、基于博弈論的控制方法(文獻(xiàn)[3])進(jìn)行對(duì)比分析。
3.2.1 全局吞吐量
將全局吞吐量作為控制效率評(píng)價(jià)指標(biāo),公式如下:
式中:M表示信息量;T表示時(shí)間。根據(jù)該公式并結(jié)合實(shí)驗(yàn)數(shù)據(jù),統(tǒng)計(jì)13 000 s 內(nèi)不同方法的全局實(shí)際吞吐量。不同方法全局吞吐量對(duì)比結(jié)果如圖6 所示。
圖6 不同方法全局吞吐量對(duì)比結(jié)果
由圖6 可知,使用嵌入式技術(shù)下的控制系統(tǒng)比其他三種方法的吞吐量要大,最大吞吐量為2 600 b/s,說(shuō)明該系統(tǒng)利用良好的吞吐性能可以控制網(wǎng)絡(luò)擁塞。
3.2.2 端到端延時(shí)
將端到端延時(shí)作為控制效率的評(píng)價(jià)指標(biāo),公式如下:
式中:Td、Tp、Tt分別表示傳輸時(shí)延、傳播時(shí)延和處理時(shí)延;S表示源主機(jī)和目的主機(jī)之間的路由器臺(tái)數(shù)。
不同方法端到端延時(shí)的對(duì)比結(jié)果如圖7 所示。由圖7 可知:使用基于數(shù)據(jù)驅(qū)動(dòng)的控制方法、基于帶寬自適應(yīng)的控制方法、基于博弈論的控制方法最大端到端延時(shí)分別為59 s、70 s、93 s;使用嵌入式技術(shù)下控制系統(tǒng)最大端到端延時(shí)為18 s,與其他方法相比,該系統(tǒng)擁塞控制延時(shí)較小。
圖7 不同方法端到端延時(shí)對(duì)比結(jié)果
3.2.3 節(jié)點(diǎn)丟包率
將節(jié)點(diǎn)丟包率作為系統(tǒng)擁塞控制可靠性衡量指標(biāo),公式如下:
式中:Ds、Dr分別表示節(jié)點(diǎn)發(fā)送數(shù)據(jù)包平均數(shù)和最終接收數(shù)據(jù)包均值。不同方法節(jié)點(diǎn)丟包率對(duì)比結(jié)果如表1所示。
表1 不同方法節(jié)點(diǎn)丟包率對(duì)比結(jié)果 %
由表1 可知,本文設(shè)計(jì)的控制系統(tǒng)比其他三種方法的節(jié)點(diǎn)丟包率小,能夠在擁塞信道內(nèi)有效控制節(jié)點(diǎn)丟包率。
針對(duì)傳統(tǒng)控制系統(tǒng)擁塞控制效果差的問(wèn)題,本文設(shè)計(jì)一種嵌入式技術(shù)下的無(wú)線傳感通信網(wǎng)絡(luò)擁塞控制系統(tǒng)。在此基礎(chǔ)上,充分發(fā)揮嵌入式節(jié)點(diǎn)的靈活性和精確性,實(shí)現(xiàn)了對(duì)非聯(lián)網(wǎng)情況下網(wǎng)絡(luò)擁塞的有效控制。實(shí)驗(yàn)測(cè)試結(jié)果表明,所設(shè)計(jì)系統(tǒng)通過(guò)控制吞吐量、端到端延時(shí)、節(jié)點(diǎn)丟包率,能夠較快地緩解擁塞,在節(jié)約能量前提下,減少了網(wǎng)絡(luò)丟包,可以有效地克服現(xiàn)有方法缺陷,實(shí)現(xiàn)精確控制。