數據報文聚合裝置和數據報文聚合方法
2023-05-22 20:17:56
專利名稱:數據報文聚合裝置和數據報文聚合方法
技術領域:
本發明涉及無線區域網技術領域,尤其涉及一種無線區域網的聚合數據報文的裝置和方法。
背景技術:
無線區域網(WLAN)是以無線信道作為傳輸媒介的計算機區域網路,採用無線方式提供傳統有線區域網的功能,能夠是用戶真正實現隨時隨地隨意的寬帶網絡接入。WLAN 802. Iln協議正式的標準化實現了物理速率的提升,最高物理速率可以達到了 300Mbps。而且,802. Iln協議的A-MPDU (報文聚合)功能充分提高空間媒介的信道利用率,同時帶來了 WLAN網絡的信道承載性能的成倍提升。用於報文聚合的聚合算法會根據預先設置好的最大聚合報文數以及最大幀長度來判斷當前這個報文是否滿足條件。當然也會有一個超時機制,長時間無法聚合到最大報文數或最大幀長度時也會將報文發送出去。每一個用戶都有一個隊列來存儲聚合幀。現有技術中的聚合方案中,在多用戶狀態下,從內核發往無線協議棧的發送幀不一定是連續的,可能是多個用戶的報文混雜在一起,因此有可能導致聚合效率的下降。
發明內容
本發明的目的在於提供一種能夠通過預先緩存來提高聚合效率的用於聚合數據報文的裝置和方法。為了實現上述目的,提供了一種數據報文聚合裝置,包括緩存模塊,用於針對發送給每個用戶站的報文進行緩存,其中,在緩存模塊分別針對每個用戶站設置一個緩存隊列,將發送給相同用戶站的報文被保存在一個緩存隊列中;聚合模塊,分別對每個用戶站緩存隊列中的報文進行聚合併發送,其中,緩存模塊將緩存在用戶站緩存隊列中的所有報文 基於用戶站進行排隊,並將排隊後的報文發送給聚合模塊。優選地,緩存模塊可包括接收模塊,用於接收要發送給各用戶站的報文並且將各用戶的報文分別緩存在為各用戶站設置的緩存隊列中。優選地,緩存模塊還可包括定時模塊,用於設置中斷觸發信號以在一定時間周期內將緩存在各緩存隊列中的所有報文發送給聚合模塊,其中,在所述一定時間周期內緩存在每個緩存隊列中報文的個數沒有達到隊列最大發包門限。優選地,緩存模塊還可包括判斷模塊,用於在發送兩次中斷觸發信號的時間段內判斷在每個用戶站緩存隊列中緩存的報文的個數是否達到隊列最大發包門限。優選地,緩存模塊還可包括發送模塊,當緩存在一個緩存隊列中的報文的個數達到隊列最大發包門限時,發送模塊將緩存在該緩存隊列中的報文發送給聚合模塊。優選地,聚合模塊直接按順序將各報文排列在相應的用戶站隊列中。優選地,聚合模塊可包括判斷模塊,用於計算進入各用戶站隊列的報文的數量以及報文長度,並將計算的報文數量以及報文長度與預先設定的最大聚合報文數以及最大報文長度進行比較,在計算的報文數量達到最大聚合報文數或者計算的報文長度達到最大報文長度時,將進入該用戶站隊列的報文形成聚合併發送出去;定時模塊,聚合模塊針對每個用戶站隊列都設置一個定時模塊,定時模塊用於將兩次發出中斷觸發信號之間的時間間隔內緩存在每個用戶站隊列中沒有達到最大聚合報文數或最大報文長度的報文發送出去。為了實現上述目的,提供了一種數據報文聚合方法,包括針對發送給每個用戶站的報文進行緩存,其中,分別針對每個用戶站設置一個緩存隊列,將發送給相同用戶站的報文被保存在一個緩存隊列中;將緩存在用戶站緩存隊列中的所有報文基於用戶站進行排隊,並發送排隊後的報文;接收排隊後的報文,按順序將排隊後的報文排列在相應的用戶站隊列中,分別對每個用戶站隊列中排列的報文進行聚合併發送。優選地,所述針對發送給每個用戶站的報文進行緩存的步驟可包括接收要發送給各用戶站的報文並且將各用戶的報文分別緩存在為各用戶站設置的緩存隊列中。
優選地,所述針對發送給每個用戶站的報文進行緩存的步驟還可包括確定中斷觸發信號是否發送;如果確定發送中斷觸發信號,將各用戶站的緩存隊列中緩存的所有報文基於用戶站進行順序排隊。優選地,如果確定沒有發送中斷觸發信號,則判斷每個用戶站緩存隊列中緩存的報文的個數是否達到隊列最大發包門限,其中,如果判斷達到隊列最大發包門限,則發送緩存在該緩存隊列中的報文。優選地,分別對每個用戶站緩存隊列中的報文進行聚合的步驟還可包括確定針對多個用戶站隊列中的哪個用戶站隊列的中斷觸發信號被發送;如果確定發送了針對一個用戶站隊列的中斷觸發信號,則將該用戶站隊列中的報文進行聚合併發送出去;如果確定沒有發送中斷觸發信號,則計算進入各用戶站隊列的報文的數量以及報文長度,並將計算的報文數量以及報文長度與預先設定的最大聚合報文數以及最大報文長度進行比較,來確定計算的報文數量是否達到最大聚合報文數或者計算的報文長度是否達到最大報文長度;如果確定計算的報文數量達到最大聚合報文數或者計算的報文長度達到最大報文長度,則將各用戶站隊列中的報文分別進行聚合併發送出去。
圖I是用於示出根據本發明實施例的數據報文聚合裝置的結構的框圖;圖2是示出根據本發明實施例的緩衝模塊的結構的框圖;圖3是示出排隊單元操作的示意圖;圖4是示出聚合模塊進行聚合操作的示意圖;圖5是示出根據本發明實施例的數據報文聚合方法的流程圖。
具體實施例方式現在,詳細描述本發明的實施例,其示例在附圖中表示,其中,相同的標號始終表示相同的部件。以下通過參考附圖描述實施例以解釋本發明。圖I是用於示出根據本發明實施例的數據報文聚合裝置的結構的框圖。如圖I所示,根據本發明實施例的數據報文聚合裝置包括緩存模塊10和聚合模塊20。
緩存模塊10用於針對發送給每個用戶站的報文進行緩存。其中,在緩存模塊10分別針對每個用戶站設置一個緩存隊列,將發送給相同用戶站的報文被保存在一個緩存隊列中。下面將參照圖2對緩存模塊10進行詳細描述。聚合模塊20分別對每個用戶站緩存隊列中的報文進行聚合併發送。圖2是示出根據本發明實施例的緩衝模塊10的結構的框圖。
如圖2所示,緩存模塊10包括接收模塊11、判斷模塊12、定時模塊13和發送模塊14。接收模塊11用於接收要發送給各用戶站的報文並且將各用戶站的報文分別緩存在為各用戶設置的緩存隊列中。定時模塊13用於設置中斷觸發信號以在一定時間周期內觸發發送模塊14將緩存在各緩存隊列中的所有報文發送給聚合模塊20。設置中斷觸發信號的目的是為了防止一定時間長度內在一個用戶站緩存隊列中緩存的報文的個數在沒有達到隊列最大發包門限的情況下而導致報文超時。在發送模塊14中包括排隊單元141。在定時模塊13觸發發送模塊14發送報文時,排隊單元141將所有報文基於用戶站進行排隊。圖3是示出排隊單元141操作的示意圖。如圖3所示,已經在用戶站I (STAl)的緩存隊列中緩存了報文STA1-BUF1,在用戶站2(STA2)的緩存隊列中緩存了報文STA2-BUF1、STA2-BUF2、STA2-BUF3和STA2-BUF4,在用戶站3 (STA3)的緩存隊列中緩存了報文STA3-BUF1和STA3-BUF2。當定時模塊13發送中斷觸發信號時,排隊單元141針對各用戶站對各緩存隊列中緩存的報文進行順序排隊。具體地講,排隊單元141將在一個緩存隊列中緩存的所有報文看作一個大的報文,並按照各用戶站對各用戶站的報文進行排隊。如圖3所示,針對用戶站ISTAl的報文STA1-BUF1排在第一位,緊接著是針對用戶站 2STA2 的報文 STA2-BUF1、STA2-BUF2、STA2-BUF3 和 STA2-BUF4,然後是針對用戶站 3STA3的報文 STA3-BUF1 和 STA3-BUF2。發送模塊14將排隊單兀141排隊後的報文發送給聚合模塊13。判斷模塊12用於在發送兩次中斷觸發信號的時間段內判斷各緩存隊列中緩存的報文的個數是否達到隊列最大發包門限。當緩存在一個緩存隊列中的報文的個數達到隊列最大發包門限時,發送模塊14將緩存在該緩存隊列中的報文發送給聚合模塊20。下面對聚合模塊20的操作進行描述。由於從緩存模塊10發送來的報文已經根據用戶進行了排序或者發送的報文都屬於一個用戶站,因此,聚合模塊20可直接按順序將各報文排列在相應的用戶站隊列中。另外,聚合模塊20也可包括判斷模塊22,判斷模塊22用於計算進入各用戶站隊列的報文的數量以及報文長度,並將計算的報文數量以及報文長度與預先設定的最大聚合報文數以及最大報文長度進行比較,在計算的報文數量達到最大聚合報文數或者計算的報文長度達到最大報文長度時,將進入該用戶站隊列的報文形成聚合併發送出去。如圖4所示,例如,聚合模塊20將最大聚合報文數設置為4,在進入用戶站ISTAl的隊列中的報文個數達到4個時,聚合模塊20將該隊列中是所有報文4個報文發送出去。聚合模塊20還包括定時模塊23。其中,聚合模塊20針對每個用戶站隊列都設置一個定時模塊23,以便將長時間(即兩次發出中斷觸發信號之間的時間間隔)緩存在每個用戶站隊列中沒有達到最大聚合報文數或最大報文長度的報文發送出去。圖5是示出根據本發明實施例的數據報文聚合方法的流程圖。如圖5所示,在步驟S51,針對發送給每個用戶的報文進行緩存,其中,分別針對每個用戶站設置一個緩存隊列,將發送給相同用戶站的報文被保存在一個緩存隊列中。在步驟S52,確定中斷觸發信號是否發送。設置中斷觸發信號的目的是為了防止一定時間長度內接收到的報文的個數在沒有達到隊列最大發包門限的情況下而導致報文超時。如果確定發送中斷觸發信號,即一定時間已經過去,則在步驟S54,將各用戶站的 緩存隊列中緩存的所有報文基於用戶站進行順序排隊,具體地講,將在一個用戶站的緩存隊列中緩存的所有報文看作一個大的報文,並按照各用戶站對各用戶站隊列中緩存的所有報文進行排隊。隨後,在步驟S55,將排隊後的報文發送到聚合模塊。如果確定沒有發送中斷觸發信號,則在步驟S53判斷每個用戶站緩存隊列中緩存的報文的個數是否達到隊列最大發包門限。如果在步驟S53判斷達到隊列最大發包門限,則在步驟S55,將緩存在該緩存隊列中的報文發送給聚合模塊。如果在步驟S53判斷沒有達到最大發包門限,則繼續執行步驟S52。在步驟S56,聚合模塊按順序將接收到的各報文排列在相應的用戶站隊列中。在步驟S57,聚合模塊確定針對多個用戶站隊列中的哪個用戶站隊列的中斷觸發信號被發送。其中,針對每個用戶站隊列定時發出中斷觸發信號以將長時間(即兩次發出觸發信號之間的時間間隔)在該用戶站隊列中無法聚合到最大聚合報文數或最大報文長度的報文發送出去。如果在步驟S57聚合模塊確定發送了針對一個用戶站隊列的中斷觸發信號,則在步驟S58將該用戶站隊列中的報文進行聚合併發送出去。如果在步驟S57聚合模塊確定沒有發送中斷觸發信號,則在步驟S59聚合模塊計算進入各用戶站隊列的報文的數量以及報文長度,並將計算的報文數量以及報文長度與預先設定的最大聚合報文數以及最大報文長度進行比較,來確定計算的報文數量是否達到最大聚合報文數或者計算的報文長度是否達到最大報文長度。如果在步驟S59確定計算的報文數量達到最大聚合報文數或者計算的報文長度達到最大報文長度,則在步驟S58將各用戶站隊列中的報文分別進行聚合併發送出去。否則地話,繼續執行步驟S57。根據本發明實施例的數據報文聚合裝置,由於已經預先針對各用戶站的報文進行了排序,因此聚合模塊進行聚合報文時效率就會提高。儘管已經參照其示例性實施例具體顯示和描述了本發明,但是本領域的技術人員應該理解,在不脫離由權利要求限定的本發明的精神和範圍的情況下,可以對其進行形式和細節上的各種改變。
權利要求
1.一種數據報文聚合裝置,包括 緩存模塊,用於針對發送給每個用戶站的報文進行緩存,其中,在緩存模塊分別針對每個用戶站設置一個緩存隊列,將發送給相同用戶站的報文被保存在一個緩存隊列中; 聚合模塊,分別對每個用戶站緩存隊列中的報文進行聚合併發送, 其中,緩存模塊將緩存在用戶站緩存隊列中的所有報文基於用戶站進行排隊,並將排隊後的報文發送給聚合模塊。
2.如權利要求I所述的數據報文聚合裝置,其中,緩存模塊包括接收模塊,用於接收要發送給各用戶站的報文並且將各用戶的報文分別緩存在為各用戶站設置的緩存隊列中。
3.如權利要求2所述的數據報文聚合裝置,其中,緩存模塊還包括定時模塊,用於設置中斷觸發信號以在一定時間周期內將緩存在各緩存隊列中的所有報文發送給聚合模塊, 其中,在所述一定時間周期內緩存在每個緩存隊列中報文的個數沒有達到隊列最大發包門限。
4.如權利要求3所述的數據報文聚合裝置,其中,緩存模塊還包括判斷模塊,用於在發送兩次中斷觸發信號的時間段內判斷在每個用戶站緩存隊列中緩存的報文的個數是否達到隊列最大發包門限。
5.如權利要求4所述的數據報文聚合裝置,其中,緩存模塊還包括發送模塊,當緩存在一個緩存隊列中的報文的個數達到隊列最大發包門限時,發送模塊將緩存在該緩存隊列中的報文發送給聚合模塊。
6.如權利要求5所述的數據報文聚合裝置,其中,聚合模塊直接按順序將各報文排列在相應的用戶站隊列中。
7.如權利要求6所述的數據報文聚合裝置,其中,聚合模塊包括 判斷模塊,用於計算進入各用戶站隊列的報文的數量以及報文長度,並將計算的報文數量以及報文長度與預先設定的最大聚合報文數以及最大報文長度進行比較,在計算的報文數量達到最大聚合報文數或者計算的報文長度達到最大報文長度時,將進入該用戶站隊列的報文形成聚合併發送出去; 定時模塊,聚合模塊針對每個用戶站隊列都設置一個定時模塊,定時模塊用於將兩次發出中斷觸發信號之間的時間間隔內緩存在每個用戶站隊列中沒有達到最大聚合報文數或最大報文長度的報文發送出去。
8.一種數據報文聚合方法,包括 針對發送給每個用戶站的報文進行緩存,其中,分別針對每個用戶站設置一個緩存隊列,將發送給相同用戶站的報文被保存在一個緩存隊列中; 將緩存在用戶站緩存隊列中的所有報文基於用戶站進行排隊,並發送排隊後的報文; 接收排隊後的報文,按順序將排隊後的報文排列在相應的用戶站隊列中,分別對每個用戶站隊列中排列的報文進行聚合併發送。
9.如權利要求8所述的數據報文聚合方法,其中,所述針對發送給每個用戶站的報文進行緩存的步驟包括 接收要發送給各用戶站的報文並且將各用戶的報文分別緩存在為各用戶站設置的緩存隊列中。
10.如權利要求9所述的數據報文聚合方法,其中,所述針對發送給每個用戶站的報文進行緩存的步驟還包括 確定中斷觸發信號是否發送; 如果確定中斷觸發信號被發送,則將各用戶站緩存隊列中緩存的所有報文基於用戶站進行順序排隊。
11.如權利要求10所述的數據報文聚合方法,其中,如果確定沒有發送中斷觸發信號,則判斷每個用戶站緩存隊列中緩存的報文的個數是否達到隊列最大發包門限, 其中,如果判斷達到隊列最大發包門限,則發送緩存在該緩存隊列中的報文。
12.如權利要求11所述的數據報文聚合方法,其中,分別對每個用戶站緩存隊列中的報文進行聚合的步驟還包括 確定針對多個用戶站隊列中的哪個用戶站隊列的中斷觸發信號被發送; 如果確定發送了針對一個用戶站隊列的中斷觸發信號,則將該用戶站隊列中的報文進行聚合併發送出去; 如果確定沒有發送中斷觸發信號,則計算進入各用戶站隊列的報文的數量以及報文長度,並將計算的報文數量以及報文長度與預先設定的最大聚合報文數以及最大報文長度進行比較,來確定計算的報文數量是否達到最大聚合報文數或者計算的報文長度是否達到最大報文長度; 如果確定計算的報文數量達到最大聚合報文數或者計算的報文長度達到最大報文長度,則將各用戶站隊列中的報文分別進行聚合併發送出去。
全文摘要
提供了一種數據報文聚合裝置和數據報文聚合方法,包括緩存模塊,用於針對發送給每個用戶站的報文進行緩存,其中,在緩存模塊分別針對每個用戶站設置一個緩存隊列,將發送給相同用戶站的報文被保存在一個緩存隊列中;聚合模塊,分別對每個用戶站緩存隊列中的報文進行聚合併發送,其中,緩存模塊將緩存在用戶站緩存隊列中的所有報文基於用戶站進行排隊,並將排隊後的報文發送給聚合模塊。
文檔編號H04W28/06GK102905311SQ20121037612
公開日2013年1月30日 申請日期2012年9月29日 優先權日2012年9月29日
發明者段銘哲, 範成龍 申請人:北京傲天動聯技術有限公司