本申請涉及一種面向工業無線Mesh網絡的擁塞控制方法及裝置,屬于Mesh網絡控制領域。
背景技術:
無線Mesh網絡是一種動態自組織、自我配置的具有路由和轉發功能的多跳無線網絡,具有大容量、高速率、覆蓋范圍廣等特性,成為適合于大面積開放區域的無線區域網絡技術,因此近年來得到了學術界和工業界越來越多的關注。
mesh網絡業務匯聚于Mesh路由器/網關,容易造成局部網絡擁塞,使得部分節點負載過重,其余節點卻沒有業務,即網絡容量分配不均衡,嚴重影響網絡的通信性能,針對此現象,可以通過檢測Mesh網絡的擁塞狀況,然后根據檢測結果對Mesh網絡的路由進行控制。
現有技術中,可以采用端到端的擁塞控制方式,如圖1所示,在圖中的網絡中有兩條數據流S1-A-B-C-D1和S3-A-B-F-D2,當A-B段鏈路出現擁塞時,通過降低源節點的發送速率來解決擁塞問題,但是在整個的網絡環境下只有A-B段鏈路可能會出現擁塞,通過降低源節點的發送速率來解決擁塞問題會大大降低網絡的資源利用率。
現有技術中還可以采用逐跳的節點隊列管理方案進行擁塞控制,如圖2所示,若假設有第一數據流S1-A-B-C-F-D和第二數據流S3-A-B-E-F-D,第一數據流比第二數據流的優先級高,但第二數據流也有時延保障要求。這時,如果在鏈路A-B出給第一數據流以較高的優先級,在F-D處也給其較高優先級。假設第一數據流的時延保障要求為3ms,第二數據流的時延保障要求為5ms,在這種模式下傳輸可能會得到第一數據流的端到端時延為1ms,第二數據流的端到端時延為6ms,從而造成資源的浪費,且無法保證網絡傳輸的整體時延。
技術實現要素:
根據本申請的一個方面,提供了一種面向工業無線Mesh網絡的擁塞控制方法,該方法根據計算的發送速率發送數據包,對數據包端到端的傳輸提供了時延保障,而且提高了網絡資源利用率。
一種面向工業無線Mesh網絡的擁塞控制方法,包括:
對經過每條鏈路的數據包以所述鏈路的指定概率進行標記,得到數據包經過所有鏈路的概率ms(t);
當發送節點確認目的節點每收到未標記的數據包時,將數據包的發送窗口增大第一預設值,當發送節點確認目的節點每收到標記的數據包時,將數據包的發送窗口減小第二預設值;
根據所述ms(t)、所述第一預設值和所述第二預設值計算t時刻發送窗口的平均改變值,根據所述平均改變值計算數據包在t+1時刻的發送速率。
其中,所述第一預設值為1/TD,TD表示穩定狀態下鏈路的響應時間,TD=ws(t)/xs(t),其中ws(t)表示t時刻數據包發送窗口的大小,xs(t)為t時刻數據包的傳輸速率;所述第二預設值為ws(t)/2TD。
根據所述ms(t)、所述第一預設值和所述第二預設值計算t時刻發送窗口的平均改變值,根據所述平均改變值計算數據包在t+1時刻的發送速率,具體為:
設Δws(t)為t時刻發送窗口的平均改變值,
設xs(t+1)為t+1時刻數據包的發送速率,
進一步地,還包括:
計算t時刻數據包的接收時延方差;
根據t時刻時延方差和t-1時刻時延方差變化判斷Mesh網絡是否出現擁塞。
所述根據t時刻時延方差和t-1時刻時延方差變化判斷Mesh網絡是否出現擁塞,具體為:
當判斷t時刻時延方差與t-1時刻時延方差的變化大于預設閾值時,確定Mesh網絡出現擁塞。
根據本申請的又一個方面,提供了一種面向工業無線Mesh網絡的擁塞控制裝置,包括:標記模塊、調整模塊、第一計算模塊和第二計算模塊;
標記模塊,用于對經過每條鏈路的數據包以所述鏈路的指定概率進行標記,得到數據包經過所有鏈路的概率ms(t);
調整模塊,用于確認目的節點每收到未標記的數據包時,將數據包的發送窗口增大第一預設值,還用于確認目的節點每收到標記的數據包時,將數據包的發送窗口減小第二預設值;
第一計算模塊,用于根據所述ms(t)、所述第一預設值和所述第二預設值計算t時刻發送窗口的平均改變值;
第二計算模塊,用于根據所述第一計算模塊計算的平均改變值計算數據包在t+1時刻的發送速率。
所述第一預設值為1/TD,TD表示穩定狀態下鏈路的響應時間,TD=ws(t)/xs(t),其中ws(t)表示t時刻數據包發送窗口的大小,xs(t)為t時刻數據包的傳輸速率;所述第二預設值為ws(t)/2TD。
具體地,設Δws(t)為t時刻發送窗口的平均改變值,所述第一計算模塊計算的
具體地,設xs(t+1)為t+1時刻數據包的發送速率,所述第二計算模塊計算的
進一步地,還包括:
第三計算模塊,用于計算t時刻數據包的接收時延方差;
判斷模塊,用于根據第三計算模塊計算的t時刻時延方差和t-1時刻時延方差變化判斷Mesh網絡是否出現擁塞。
所述判斷模塊具體用于當判斷t時刻時延方差與t-1時刻時延方差的變化大于預設閾值時,確定Mesh網絡出現擁塞。
本申請能產生的有益效果包括:
本申請通過對經過鏈路的數據包以該鏈路的指定概率進行標記,當發送節點確認目的節點每收到未標記的數據包時,增大數據包的發送窗口,當發送節點確認目的節點每收到標記的數據包時,減小數據包的發送窗口,然后計算t時刻發送窗口的平均改變值,根據該平均改變值計算數據包在t+1時刻的發送速率,不僅對數據包端到端的傳輸提供了時延保障,而且根據網絡實際情況調整發送速率,靈活性好,提高了網絡資源利用率。
附圖說明
圖1為現有技術中采用端到端的擁塞控制方式示意圖;
圖2為現有技術中采用逐跳的節點隊列管理方式進行擁塞控制示意圖;
圖3為本發明實施例提供的一種面向工業無線Mesh網絡的擁塞控制方法流程示意圖;
圖4為本發明實施例提供的一種面向工業無線Mesh網絡的擁塞控制裝置結構示意圖。
具體實施方式
下面結合實施例詳述本申請,但本申請并不局限于這些實施例。
實施例1
參見圖3,本發明實施例提供了一種面向工業無線Mesh網絡的擁塞控制方法,該方法包括:
301、對經過每條鏈路的數據包以該鏈路的指定概率進行標記,得到數據包經過所有鏈路的概率;
具體地,設ml(t)是t時刻鏈路l的指定概率,ms(t)是數據包經過所有鏈路的概率,則ms(t)可以看作是數據包經過的所有鏈路Ls的概率之和,即數據包經過所有鏈路的概率也可以稱為數據包端到端的概率。
例如,設t時刻鏈路l的指定概率為70%,則在t時刻經過鏈路l的數據包中有70%的數據包被標記,30%的數據包未被標記。
302、當發送節點確認目的節點每收到未標記的數據包時,將數據包的發送窗口增大第一預設值,當發送節點確認目的節點每收到標記的數據包時,將數據包的發送窗口減小第二預設值;
其中,第一預設值具體可以是1/TD,TD表示穩定狀態下鏈路的響應時間,TD=ws(t)/xs(t),其中ws(t)表示t時刻數據包發送窗口的大小,xs(t)為t時刻數據包的傳輸速率;第二預設值具體可以是ws(t)/2TD。
目的節點會收到很多數據包,有的數據包有標記,有的數據包沒有標識,目的節點每次收到有標記的數據包,就會給發送節點反饋其收到一個有標記的數據包的消息,因此發送節點將數據包的發送窗口增加一點;目的節點每次收到沒有標記的數據包,就會給發送節點反饋其收到一個沒有標記的數據包的消息,因此發送節點將數據包的發送窗口減小一點。
303、根據ms(t)、第一預設值和第二預設值計算t時刻發送窗口的平均改變值,然后根據平均改變值計算數據包在t+1時刻的發送速率。
具體地,設Δws(t)為t時刻發送窗口大小的平均改變值,
設xs(t+1)為t+1時刻數據包的發送速率,
本發明實施例可以在Mesh網絡出現擁塞時,對數據包的發送速率進行調整,因此在調整數據包的發送速率之前,本發明實施例還可以包括:
計算t時刻數據包的接收時延方差;
根據t時刻時延方差和t-1時刻時延方差變化判斷Mesh網絡是否出現擁塞。
具體地,當判斷t時刻時延方差與t-1時刻時延方差的變化大于預設閾值時,確定Mesh網絡出現擁塞。
Mesh網絡中,有時會出現數據包丟失情況,數據包丟失的原因較多,但主要是網絡擁塞丟包和鏈路錯誤丟包,當網絡出現鏈路錯誤而引起數據包丟失時,時延方差不會出現較大幅度的變化,而當網絡由于擁塞而引起數據包丟失時,時延方差會有大幅變動,因此可以通過時延方差的變化來判斷Mesh網絡是否出現擁塞。
本發明實施例通過對經過鏈路的數據包以該鏈路的指定概率進行標記,當發送節點確認目的節點每收到未標記的數據包時,增大數據包的發送窗口,當發送節點確認目的節點每收到標記的數據包時,減小數據包的發送窗口,然后計算t時刻發送窗口的平均改變值,根據該平均改變值計算數據包在t+1時刻的發送速率,不僅對數據包端到端的傳輸提供了時延保障,而且根據網絡實際情況調整發送速率,靈活性好,提高了網絡資源利用率。
參見圖4,本發明實施例提供了一種面向工業無線Mesh網絡的擁塞控制裝置,該裝置包括:標記模塊401、調整模塊402、第一計算模塊403和第二計算模塊404;
標記模塊401,用于對經過每條鏈路的數據包以該鏈路的指定概率進行標記,得到數據包經過所有鏈路的概率ms(t);
具體地,設ml(t)是t時刻鏈路l的指定概率,ms(t)是數據包經過所有鏈路的概率,則ms(t)可以看作是數據包經過的所有鏈路Ls的概率之和,即數據包經過所有鏈路的概率也可以稱為數據包端到端的概率。
調整模塊402,用于確認目的節點每收到未標記的數據包時,將數據包的發送窗口增大第一預設值,還用于確認目的節點每收到標記的數據包時,將數據包的發送窗口減小第二預設值;
其中,第一預設值具體可以是1/TD,TD表示穩定狀態下鏈路的響應時間,TD=ws(t)/xs(t),其中ws(t)表示t時刻數據包發送窗口的大小,xs(t)為t時刻數據包的傳輸速率;所述第二預設值具體可以是ws(t)/2TD。
第一計算模塊403,用于根據ms(t)、第一預設值和第二預設值計算t時刻發送窗口的平均改變值;
具體地,設Δws(t)為t時刻發送窗口的平均改變值,則第一計算模塊403計算的
第二計算模塊404,用于根據第一計算模塊403計算的平均改變值計算數據包在t+1時刻的發送速率。
設xs(t+1)為t+1時刻數據包的發送速率,第二計算模塊404計算的
進一步地,本發明實施例還可以包括:第三計算模塊和判斷模塊;
第三計算模塊,用于計算t時刻數據包的接收時延方差;
判斷模塊,用于根據第三計算模塊計算的t時刻時延方差和t-1時刻時延方差變化判斷Mesh網絡是否出現擁塞。
具體地,判斷模塊判斷t時刻時延方差與t-1時刻時延方差的變化大于預設閾值時,確定Mesh網絡出現擁塞。
本發明實施例通過對經過鏈路的數據包以該鏈路的指定概率進行標記,當發送節點確認目的節點每收到未標記的數據包時,增大數據包的發送窗口,當發送節點確認目的節點每收到標記的數據包時,減小數據包的發送窗口,然后計算t時刻發送窗口的平均改變值,根據該平均改變值計算數據包在t+1時刻的發送速率,不僅對數據包端到端的傳輸提供了時延保障,而且根據網絡實際情況調整發送速率,靈活性好,提高了網絡資源利用率。
以上所述,僅是本申請的幾個實施例,并非對本申請做任何形式的限制,雖然本申請以較佳實施例揭示如上,然而并非用以限制本申請,任何熟悉本專業的技術人員,在不脫離本申請技術方案的范圍內,利用上述揭示的技術內容做出些許的變動或修飾均等同于等效實施案例,均屬于技術方案范圍內。