專利名稱:一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線網(wǎng)絡(luò)通信領(lǐng)域的一種應(yīng)答幀構(gòu)造方法,尤其涉及一種根據(jù)重新排序緩存 隊列狀態(tài)構(gòu)造IEEE 802.1 ln無線局域網(wǎng)的立即塊應(yīng)答幀中的位圖的方法。
背景技術(shù):
塊應(yīng)答機制是一種IEEE 802.11n無線局域網(wǎng)為了提高鏈路效率而將多個應(yīng)答幀合并為一 個應(yīng)答幀的機制。塊應(yīng)答本質(zhì)上是一種選擇重傳自動重發(fā)請求(Automatic Repeat reQuest, ARQ)機制。當接收方發(fā)現(xiàn)某些數(shù)據(jù)包出錯后,其后繼續(xù)送來的正確數(shù)據(jù)包雖然不能立即遞 交給接收方的高層,但接收方仍可接收保存在接收緩沖區(qū)中,同時要求對端發(fā)送方重新傳送 出錯數(shù)據(jù)包。 一旦收到重新傳來的數(shù)據(jù)包后,可與原來已存于緩沖區(qū)中的其余數(shù)據(jù)包一并按 正確的順序遞交高層。使用選擇重傳ARQ機制可以避免重復(fù)傳送那些本來已經(jīng)正確到達接收 端的數(shù)據(jù)包,但付出的代價是在接收端設(shè)置具有相當容量的接收緩存空間,以及更復(fù)雜的處 理流程。
正EE 802.11n的塊應(yīng)答機制分為兩種立即塊應(yīng)答和延遲塊應(yīng)答。立即塊應(yīng)答適用于高帶 寬、低延遲業(yè)務(wù),而延遲塊應(yīng)答適用于可容忍適當延遲的應(yīng)用。本發(fā)明僅涉及其中的立即塊 應(yīng)答機制。
由于接收方站點可能同時與多個對端發(fā)送方站點建立立即塊應(yīng)答約定,各對端發(fā)送方發(fā) 送數(shù)據(jù)包的順序可能與數(shù)據(jù)包序列號的先后順序不同,并且各對端發(fā)送方都存在重傳數(shù)據(jù)包 的可能,因此,接收方必須能將來自不同對端發(fā)送方的亂序和重傳數(shù)據(jù)包進行重新排序和重 組,并以正確順序提交給上層協(xié)議。為了實現(xiàn)上述目的,本發(fā)明提供了一種實現(xiàn)無線局域網(wǎng) 立即塊應(yīng)答機制的方法。
本發(fā)明提供的一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法,可應(yīng)用于接入點(Access Point AP)設(shè)備。AP設(shè)備需要為每一個站點維護相關(guān)信息,如加密密鑰、塊應(yīng)答位圖等。當整個 基本服務(wù)集(Basic Service Set, BSS)中關(guān)聯(lián)站點較多時,AP設(shè)備在發(fā)送和接收每一數(shù)據(jù)包 前,都要進行地址M配,以獲取相關(guān)信息。對于地址匹配的實現(xiàn),可以分成兩種方式
1. 使用MAC地址實現(xiàn)精確匹配。這種方式的優(yōu)點是匹配到的結(jié)果精確并且對內(nèi)存要求 不高。缺點是相對的邏輯部分面積較大,并且支持的接入站點數(shù)與邏輯部分面積呈線 性增長。
2. 使用哈希算法生成匹配結(jié)果。該實現(xiàn)方式的優(yōu)點是,匹配速度快、邏輯電路面積小,并且隨著接入站點數(shù)的增加,邏輯部分面積增加不明顯。缺點是匹配結(jié)果可能會產(chǎn)生 碰撞,并且內(nèi)存消耗較大。 綜合考慮以上因素,在算法效率和內(nèi)存開銷都可接受的前提下,本發(fā)明采用哈希算法實 現(xiàn)地址匹配功能。
哈希表是一個固定大小的數(shù)組,哈希表的每個表項,即數(shù)組的每個元素是一結(jié)構(gòu)體。在 本發(fā)明提供的一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法中,該結(jié)構(gòu)體成員至少包括一個健 值Key、 一個指向站點信息結(jié)構(gòu)的指針、 一個哈希次數(shù)。在本發(fā)明提供的一種實現(xiàn)無線局域 網(wǎng)立即塊應(yīng)答機制的方法中,哈希表的構(gòu)造方法采用除留余數(shù)法,以MAC地址的高3字節(jié) 和低3字節(jié)相加和為Key,取Key被哈希表表長除后所得余數(shù)為哈希地址H(Key),如下式所
示
Key = MAC地址高3字節(jié)+ MAC地址低3字節(jié) (1)
H(Key) = (Key) % (哈希表表長) (2) 由于哈希算法的自身特點,由不同Key經(jīng)過哈希表構(gòu)造方法后得到的哈希地址可能相同, 即可能發(fā)生沖突,這樣,哈希算法的實現(xiàn)中必須包括解決沖突的方法。沖突解決的目標是當 表項的哈希地址已經(jīng)被占用時,在哈希表中找到另一個空哈希地址。經(jīng)過對各算法的性能仿 真比較,本發(fā)明中采用偽隨機再哈希沖突解決方法,如下式所示
H(Key) = (H(Key) + Key %10 + 1) % (哈希表表長) (3) 如果由(2)式計算得到的哈希地址被占用,沖突解決方法按照(3)式計算下一個哈希地址。如果 這個地址也被占用,則按照(3)式再計算下一個哈希地址,依此類推,直到得到一個空哈希地 址。
發(fā)明內(nèi)容
本發(fā)明提供一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法,以期達到在不同幀傳輸順序(如 亂序、重傳)下,正確構(gòu)造立即塊應(yīng)答幀中的位圖,正確應(yīng)答塊數(shù)據(jù),并以正確順序向上層 協(xié)議提交數(shù)據(jù)包的目的。
為實現(xiàn)這一目標,本發(fā)明公開了一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法,本發(fā)明包 括一個地址匹配表, 一個立即塊應(yīng)答描述符, 一個發(fā)送方信息表, 一個立即塊應(yīng)答狀態(tài)表,
個地址匹配硬件電路。其中
所述地址匹配表包括n條發(fā)送方信息表項,每條發(fā)送方信息表項指向一個發(fā)送方信息表,
用十記錄與本地建立立即塊應(yīng)答約定的對端發(fā)送方站點的相關(guān)信息,以及與此立即塊應(yīng)答約 定相關(guān)的信息。立即塊應(yīng)答描述符包括哈希鍵值字段,用于記錄由驅(qū)動軟件根據(jù)對端發(fā)送方站點MAC 地址計算得到的鍵值;再哈希偏移地址字段,用于記錄由驅(qū)動軟件計算得到的再哈希地址, 再哈希地址中保存了哈希結(jié)果發(fā)生沖突時發(fā)送方信息表項的下一個存放位置;位圖指針字段, 用于記錄由驅(qū)動軟件在收數(shù)據(jù)幀過程中形成的立即塊應(yīng)答幀位圖的保存地址。
所述發(fā)送方信息表包括 一條是否支持塊應(yīng)答機制表項,用于標志對端發(fā)送方是否支持 塊應(yīng)答機制,當收到對端發(fā)送方站點發(fā)送的關(guān)聯(lián)請求幀時,驅(qū)動軟件可根據(jù)該幀中的能力信 息(C即ability Information)單元的延遲塊應(yīng)答(Delayed Block Ack)域值或立即塊應(yīng)答
(Immediate Block Ack)域值更新該表項,當上述二域值都為0時,該表項設(shè)置為0,即劉 端發(fā)送方站點不支持塊應(yīng)答機制;當上述二域值之一為1時,該表項設(shè)置為1,即對端發(fā)送 方站點支持塊應(yīng)答機制;八條接收序列號計數(shù)器表項,,每一表項對應(yīng)屬T該發(fā)送方站點的一 個優(yōu)先級,并分別用于記錄本地接收到的數(shù)據(jù)包序列號,每一發(fā)送方最多可支持八個優(yōu)先級, 因此每個發(fā)送方信息表中需維護八條接收序列號計數(shù)器表項,記錄本地接收到的屬于該優(yōu)先 級的數(shù)據(jù)包序列號,當接收到塊數(shù)據(jù)幀,驅(qū)動軟件可根據(jù)塊數(shù)據(jù)幀的序列號弓該記錄的比較 結(jié)果判斷是否出現(xiàn)重復(fù)幀,若不是重復(fù)幀,則將接收序列號計數(shù)器表項更新為數(shù)據(jù)幀的序列 號;否則該表項保持不變;八條立即塊應(yīng)答狀態(tài)表項,每一表項對應(yīng)一個優(yōu)先級,并分別指 向一個立即塊應(yīng)答狀態(tài)表,用于記錄各塊數(shù)據(jù)包的接收狀態(tài),每一發(fā)送方最多可支持八個優(yōu) 先級,因此每個發(fā)送方信息表中需維護八條立即塊應(yīng)答狀態(tài)表項,每條表項對應(yīng)屬于該發(fā)送 方站點的一個優(yōu)先級,用于記錄本地接收到的屬于該優(yōu)先級的塊數(shù)據(jù)包的接收狀態(tài)。
所述立即塊應(yīng)答狀態(tài)表包括 一條最后向上提交數(shù)據(jù)包序列號表項,用于記錄本地MAC 最后一次向上層協(xié)議提交的數(shù)據(jù)包的序列號,當收到對端發(fā)送方站點發(fā)送的塊應(yīng)答請求幀
(Block Ack Request)時,驅(qū)動軟件按照802. lln協(xié)議規(guī)定向上層協(xié)議提交由驅(qū)動軟件重組 完成的完整MSDU,驅(qū)動軟件將該表項更新為向上層提交的、最后的完整數(shù)據(jù)包的序列號;一 條發(fā)送方策略表項,用于記錄與本地建立塊應(yīng)答約定的對端發(fā)送方站點的塊應(yīng)答策略,當收 到對端發(fā)送方站點發(fā)送的關(guān)聯(lián)請求幀時,驅(qū)動軟件根據(jù)該幀巾的能力信息單元的延遲塊應(yīng)答 域值或立即塊應(yīng)答域值更新該表項,當上述延遲塊應(yīng)答域值為1且立即塊應(yīng)答域值為0時, 該表項設(shè)置為0,表示對端發(fā)送方站點支持延遲塊應(yīng)答機制;當上述延遲塊應(yīng)答域值為0且 立即塊應(yīng)答域值為1時,該表項設(shè)置為1,表示對端發(fā)送方站點支持立即塊應(yīng)答機制;當上 述二域值都為0時,該表項設(shè)置為2,表示對端發(fā)送方站點不支持塊應(yīng)答機制;當上述二域 值都為1時,該表項設(shè)置為3,表示對端發(fā)送方站點支持塊應(yīng)答機制; 一條發(fā)送方數(shù)據(jù)塊長 度表項,用于記錄與本地建立立即塊應(yīng)答約定的對端發(fā)送方站點在單個塊內(nèi)發(fā)送的數(shù)據(jù)包數(shù) 量,當收到對端發(fā)送方站點發(fā)送的建立塊應(yīng)答請求(ADDBA Request)幀吋,驅(qū)動軟件可根據(jù)
7該幀中的塊應(yīng)答參數(shù)集(Block Ack Parameter Set)單元的緩沖區(qū)大小(Buffer Size)域 值更新該表項; 一條發(fā)送方起始序列號表項,用于記錄與本地建立立即塊應(yīng)答約定的對端發(fā) 送方站點在單個塊內(nèi)發(fā)送的第一個數(shù)據(jù)包的序列號,當收到對端發(fā)送方站點發(fā)送的的建立塊 應(yīng)答請求(ADDBA Request)幀或塊應(yīng)答請求幀時,驅(qū)動軟件根據(jù)幀中的塊應(yīng)答起始序列號控 制(Block Ack Starting Sequence Control)域值更新該表項; 一條位圖表項,指向 -個位 圖結(jié)構(gòu),位圖結(jié)構(gòu)由IEEE 802.]ln定義,用于記錄與本地建立立即塊應(yīng)答約定的對端發(fā)送方 站點在單個塊內(nèi)發(fā)送的所有數(shù)據(jù)包是否被正確接收; 一條位圖表項,指向一個位圖結(jié)構(gòu),位 圖結(jié)構(gòu)由IEEE 802. lln定義,用于記錄與本地建立立即塊應(yīng)答約定的對端發(fā)送方站點在單個 塊內(nèi)發(fā)送的所有數(shù)據(jù)包是否被正確接收; 一條重新排序緩存隊列表項,指向一個緩存隊列結(jié) 構(gòu),用于緩存接收到的數(shù)據(jù)包。
所述地址匹配硬件電路,位于硬件部件中,根據(jù)驅(qū)動軟件設(shè)置的哈希表大小,計算得到 對端立即塊應(yīng)答位圖在主機內(nèi)存中的保存地址。地址匹配硬件電路被接收控制模塊啟動時, 按照(1)式所描述的哈希算法對MAC地址進行哈希運算,產(chǎn)生運算結(jié)果,并同時產(chǎn)生運算 完成指示
H(Key) = GetHash(Key) % HashSize (4 )
其中,HashSize為哈希表的大小,由驅(qū)動軟件設(shè)置;H(Key)是哈希算法的結(jié)果; GetHash(Key)為對端MAC地址的高3字節(jié)值和低3字節(jié)值求和所得鍵值(Key),如公式(2) 所示
GetHash(key) = MACAddr[47:24] + MACAddr[23:0] (5)
地址匹配硬件電路對外接口信號包括
machash一start:哈希運算的啟動信號; mac—addr: MAC地址;
hash—size:哈希表大小,所得的哈希結(jié)果將在該范圍內(nèi); hash—done:哈希運算完成信號;
hash—result:哈希的結(jié)果;
本發(fā)明的特征依次包括如下步驟
(1)驅(qū)動軟件收到從物理層到達的QoS數(shù)據(jù)包后,從數(shù)據(jù)包的QoS Control域屮取得 Tid和Ack Policy域值,當Ack Policy為Block Ack時,轉(zhuǎn)步驟(2)執(zhí)行塊數(shù)據(jù) 幀接收流程;否則作為普通應(yīng)答數(shù)據(jù)幀處理,其中QoS為服務(wù)質(zhì)量,QoS Control 為服務(wù)質(zhì)量控制,Tid為流量標識,Ack Policy為應(yīng)答策略,Block Ack為塊應(yīng)答;(2) 驅(qū)動軟件根據(jù)接收數(shù)據(jù)包的發(fā)送方地址域值從地址匹配表中取得與接收數(shù)據(jù)包 發(fā)送方地址對應(yīng)的發(fā)送方信息表項,并從該表項指向的發(fā)送方信息表中取得是否 支持塊應(yīng)答機制表項值,若該表項值為l,表明發(fā)送方站點支持塊應(yīng)答機制,則
轉(zhuǎn)步驟(3);否則銷毀當前接收的數(shù)據(jù)包,并轉(zhuǎn)步驟l;
(3) 驅(qū)動軟件根據(jù)接收數(shù)據(jù)包的Tid域值,取得與其對應(yīng)的立即塊應(yīng)答狀態(tài)表項,如 果該表項值為空,則說明本地與對端發(fā)送方站點之間立即塊應(yīng)答機制尚未建立, 本地?zé)o法處理接收到的塊數(shù)據(jù)包,因此將該數(shù)據(jù)包銷毀并回應(yīng)Ack應(yīng)答幀,轉(zhuǎn) 步驟l;如果該表項值不為空,說明本地與對端發(fā)送方站點之間立即塊應(yīng)答機制 已經(jīng)建立,轉(zhuǎn)步驟(4);
(4) 驅(qū)動軟件從該立即塊應(yīng)答狀態(tài)表中取得發(fā)送方起始序列號表項和位圖表項,以及 位圖表項所指向的位圖結(jié)構(gòu),若接收數(shù)據(jù)包序列號大于等于發(fā)送方起始序列號表 項值,則轉(zhuǎn)步驟(5);否則,將該數(shù)據(jù)包銷毀,轉(zhuǎn)步驟l;
(5) 查看位圖中對應(yīng)接收數(shù)據(jù)包的比特是否為1,若對應(yīng)比特為1,則說明該數(shù)據(jù)包 已經(jīng)正確接收,當前接收的數(shù)據(jù)包為重復(fù)幀,直接銷毀,并回應(yīng)Ack應(yīng)答幀, 轉(zhuǎn)步驟1:否則,則轉(zhuǎn)步驟(6);
(6) 驅(qū)動軟件從該立即塊應(yīng)答狀態(tài)表中取得發(fā)送方數(shù)據(jù)塊長度表項,比較驅(qū)動軟件維 護的重新排序緩存隊列當前長度和發(fā)送方數(shù)據(jù)塊長度表項值,若重新排序緩存隊 列長度等于發(fā)送方數(shù)據(jù)塊長度表項值,說明重新排序緩存隊列已滿,則轉(zhuǎn)步驟
(7);否則,轉(zhuǎn)步驟(8);
(7) 將重新排序緩存隊列隊首數(shù)據(jù)包釋放,并將立即塊應(yīng)答位圖中與隊首數(shù)據(jù)包對應(yīng) 位置為0;
(8 )將與當前數(shù)據(jù)包對應(yīng)的記錄插入重新排序緩存隊列;
(9) 將與當前數(shù)據(jù)包對應(yīng)的立即塊應(yīng)答位圖相應(yīng)位置為1;
(10) 硬件接收電路接收從物理層到達的下一幀,如果判斷幀類型為QoS數(shù)據(jù)幀,則 轉(zhuǎn)步驟(1);如果判斷幀類型為塊應(yīng)答請求幀,則轉(zhuǎn)步驟(11);
(11) 硬件接收電路取塊應(yīng)答請求幀的源地址和Tid,地址匹配硬件電路根據(jù)該目的地
址,由下式計算得到鍵值Key,并轉(zhuǎn)步驟(12);
Key =源地址高3字節(jié)+源地址低3字節(jié) (6)
9(12) 地址匹配硬件電路根據(jù)步驟(11)計算所得Key值,由下式計算得到與塊應(yīng)答 請求幀源地址和TM對應(yīng)的立即塊應(yīng)答描述符在主機內(nèi)存中的保存地址,并轉(zhuǎn)步 驟(13);
立即塊應(yīng)答位圖描述符=基址+ (Key) % (哈希表表長) (7)
(13) 比較步驟(11)計算所得Key值與立即塊應(yīng)答描述符中的Key值是否相等,若 相等,則轉(zhuǎn)步驟(15);否則,發(fā)生沖突,轉(zhuǎn)步驟(14);
(14) 由步驟(12)取得立即塊應(yīng)答描述符中的再哈希偏移地址,并由該再哈希偏移地 址取得卜一立即塊應(yīng)答描述符,轉(zhuǎn)步驟(13);
(15) 由下式計算得到與塊應(yīng)答請求幀源地址和Tid對應(yīng)的立即塊應(yīng)答位圖在主機內(nèi)
存中的保存地址
立即塊應(yīng)答位圖地址=基址+ (Key) % (哈希表表長)+ 8 + (Tid X 128) (8);
(16) 根據(jù)立即塊應(yīng)答位圖地址取得位圖內(nèi)容,并構(gòu)造塊應(yīng)答幀,用位圖內(nèi)容填充立即 塊應(yīng)答幀相應(yīng)域,硬件發(fā)送電路發(fā)送塊應(yīng)答幀。
圖1為一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法結(jié)構(gòu)圖。
圖2為兩種哈希沖突解決策略線性再哈希和偽隨機再哈希的性能比較。其中,縱坐標 為發(fā)生沖突而再哈希的平均次數(shù),橫坐標為裝填因子,其定義為《=哈希表中已經(jīng)填入的表 項數(shù)/哈希表的長度??梢?,a越小發(fā)牛沖突的可能性越小;反之,則可能性越大。由圖2所 示仿真結(jié)果證明,在裝填因子相同的條件—卜一,偽隨機再哈希方法發(fā)生沖突的次數(shù)小于線性再 哈希方法。
圖3為立即塊應(yīng)答描述符在內(nèi)存屮的組織結(jié)構(gòu)。 圖4為重新排序緩存隊列的組織結(jié)構(gòu)。 圖5為地址匹配硬件電路對外接口。
具體實施例方式
以下結(jié)合附圖,具體說明本發(fā)明。
本發(fā)明提供一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法,以期達到在不同幀傳輸順序(如 亂序、重傳)下,正確構(gòu)造立即塊應(yīng)答幀中的位圖,正確應(yīng)答塊數(shù)據(jù)的目的。本發(fā)明包括一 個地址匹配表, 一個立即塊應(yīng)答描述符, 一個發(fā)送方信息表, 一個立即塊應(yīng)答狀態(tài)表, 一個地址匹配硬件電路。其中
地址匹配表包括n條發(fā)送方信息表項,每條發(fā)送方信息表項指向一個發(fā)送方信息表,用
于記錄與本地建立立即塊應(yīng)答約定的對端發(fā)送方站點的相關(guān)信息,以及與此立即塊應(yīng)答約定 相關(guān)的信息。
所述發(fā)送方信息表包括 一條是否支持塊應(yīng)答機制表項,用于標志對端發(fā)送方是否支持 塊應(yīng)答機制;八條接收序列號計數(shù)器表項,每一表項對應(yīng)一個優(yōu)先級,并分別用于記錄本地 接收到的數(shù)據(jù)包序列號;八條立即塊應(yīng)答狀態(tài)表項,每一表項對應(yīng)一個優(yōu)先級,并分別指向 一個立即塊應(yīng)答狀態(tài)表,用于記錄各塊數(shù)據(jù)包的接收狀態(tài)。
立即塊應(yīng)答狀態(tài)表包括 一條最后向上提交數(shù)據(jù)包序列號表項,用于記錄本地MAC最 后一次向上層協(xié)議提交的數(shù)據(jù)包的序列號; 一條發(fā)送方策略表項,用于記錄與本地建立塊應(yīng) 答約定的對端發(fā)送方站點的塊應(yīng)答策略; 一條發(fā)送方數(shù)據(jù)塊長度表項,用于記錄與本地建立 立即塊應(yīng)答約定的對端發(fā)送方站點在單個塊內(nèi)發(fā)送的數(shù)據(jù)包數(shù)量; 一條發(fā)送方起始序列號表 項,用于記錄與本地建立立即塊應(yīng)答約定的對端發(fā)送方站點在單個塊內(nèi)發(fā)送的第一個數(shù)據(jù)包 的序列號; 一條位圖表項,指向一個位圖結(jié)構(gòu),位圖結(jié)構(gòu)由lEEES02.11n定義,用于記錄與 本地建立立即塊應(yīng)答約定的對端發(fā)送方站點在單個塊內(nèi)發(fā)送的所有數(shù)據(jù)包是否被正確接收; 一條重新排序緩存隊列表項,指向一個緩存隊列結(jié)構(gòu),用于緩存接收到的數(shù)據(jù)包。重新排序 緩存隊列用于緩存接收到的數(shù)據(jù)包。
立即塊應(yīng)答描述符包括哈希鍵值字段,用于記錄由驅(qū)動軟件根據(jù)發(fā)送方站點MAC地 址計算得到的鍵值;再哈希偏移地址字段,用十記錄由驅(qū)動軟件計算得到的再哈希地址,冉 哈希地址中保存了哈希結(jié)果發(fā)生沖突時發(fā)送方信息表項的下一個存放位置;立即塊應(yīng)答幀位 圖地址字段,用于記錄由驅(qū)動軟件在收數(shù)據(jù)幀過程屮形成的、立即塊應(yīng)答幀位圖的保存地址。
地址匹配硬件電路,位于硬件部件中,根據(jù)驅(qū)動軟件設(shè)置的哈希表大小,計算得到對端 立即塊應(yīng)答位圖在主機內(nèi)存中的保存地址。
具體步驟如下
(1) 驅(qū)動軟件收到從物理層到達的QoS數(shù)據(jù)包后,從數(shù)據(jù)包的QoS Control域中取得 Tid和Ack Policy域值,當Ack Policy為Block Ack時,轉(zhuǎn)歩驟(2)執(zhí)行塊數(shù)據(jù) 幀接收流程;否則作為普通應(yīng)答數(shù)據(jù)幀處理,其中QoS為服務(wù)質(zhì)量,QoS Control 為服務(wù)質(zhì)量控制,Tid為流量標識,Ack Policy為應(yīng)答策略,Block Ack為塊應(yīng)答;
(2) 驅(qū)動軟件根據(jù)接收數(shù)據(jù)包的發(fā)送方地址域值從地址匹配表中取得與接收數(shù)據(jù)包 發(fā)送方地址對應(yīng)的發(fā)送方信息表項,并從該表項指向的發(fā)送方信息表中取得是否支持塊應(yīng)答機制表項值,若該表項值為l,表明發(fā)送方站點支持塊應(yīng)答機制,則 轉(zhuǎn)步驟(3);否則銷毀當前接收的數(shù)據(jù)包,并轉(zhuǎn)步驟l;
(3) 驅(qū)動軟件根據(jù)接收數(shù)據(jù)包的Tid域值,取得與其對應(yīng)的立即塊應(yīng)答狀態(tài)表項,如 果該表項值為空,則說明本地與對端發(fā)送方站點之間立即塊應(yīng)答機制尚未建立, 本地?zé)o法處理接收到的塊數(shù)據(jù)包,因此將該數(shù)據(jù)包銷毀并回應(yīng)Ack應(yīng)答幀,轉(zhuǎn) 步驟l;如果該表項值不為空,說明本地與對端發(fā)送方站點之間tr.即塊應(yīng)答機制
已經(jīng)建立,轉(zhuǎn)步驟(4);
(4) 驅(qū)動軟件從該立即塊應(yīng)答狀態(tài)表中取得發(fā)送方起始序列號表項和位圖表項,以及
位圖表項所指向的位圖結(jié)構(gòu),若接收數(shù)據(jù)包序列號大于等于發(fā)送方起始序列號表
項值,則轉(zhuǎn)歩驟(5);否則,將該數(shù)據(jù)包銷毀,轉(zhuǎn)步驟l;
(5) 查看位圖中對應(yīng)接收數(shù)據(jù)包的比特是否為1,若對應(yīng)比特為l,則說明該數(shù)據(jù)包 已經(jīng)正確接收,當前接收的數(shù)據(jù)包為重復(fù)幀,直接銷毀,并回應(yīng)Ack應(yīng)答幀,
轉(zhuǎn)步驟1;否則,則轉(zhuǎn)步驟(6);
(6) 驅(qū)動軟件從該立即塊應(yīng)答狀態(tài)表中取得發(fā)送方數(shù)據(jù)塊長度表項,比較驅(qū)動軟件維
護的重新排序緩存隊列當前長度和發(fā)送方數(shù)據(jù)塊長度表項值,若重新排序緩存隊 列長度等于發(fā)送方數(shù)據(jù)塊長度表項值,說明重新排序緩存隊列已滿,則轉(zhuǎn)步驟
(7);否則,轉(zhuǎn)步驟(8);
(7) 將重新排序緩存隊列隊首數(shù)據(jù)包釋放,并將立即塊應(yīng)答位圖中與隊首數(shù)據(jù)包對應(yīng)
位置為0;
(8) 將與當前數(shù)據(jù)包對應(yīng)的記錄插入重新排序緩存隊列,重新排序緩存隊列的組織結(jié) 構(gòu)如圖4所示;
(9) 將與當前數(shù)據(jù)包對應(yīng)的立即塊應(yīng)答位圖相應(yīng)位置為1;
(10) 硬件接收電路接收從物理層到達的下-幀,如果判斷幀類型為QoS數(shù)據(jù)幀,則 轉(zhuǎn)步驟(1);如果判斷幀類型為塊應(yīng)答請求幀,則轉(zhuǎn)步驟(11);
(11) 硬件接收電路取塊應(yīng)答請求幀的源地址和Tid,啟動地址匹配硬件電路,電路輸
入輸出接口框圖如圖5所示。當輸入時序為啟動信號machash—start有效的同時
源地址mac—addr[47:0]有效并且哈希表長度hash_size有效,地址匹配硬件電路
根據(jù)該目的地址,由下式計算得到鍵值Key,并轉(zhuǎn)步驟(12);
Key =源地址高3字節(jié)+源地址低3字節(jié) (9)
12(12) 地址匹配硬件電路根據(jù)步驟(11)計算所得Key值,由下式計算得到與塊應(yīng)答 請求幀源地址和Tid對應(yīng)的立即塊應(yīng)答描述符在主機內(nèi)存中的保存地址,塊應(yīng)答 描述符在內(nèi)存中的組織結(jié)構(gòu)如圖3所示,當輸出時序為運算完成指示hash—done 有效的同時運算結(jié)果hashj:esult有效,并轉(zhuǎn)步驟(13);
立即塊應(yīng)答位圖描述符=基址+ (Key) % (哈希表衷長) (10)
(13) 比較步驟(11)計算所得Key值與立即塊應(yīng)答描述符中的Key值是否相等,若 相等,則轉(zhuǎn)步驟(15);否則,發(fā)生沖突,轉(zhuǎn)歩驟(14);
(14) 由步驟(12)取得立即塊應(yīng)答描述符中的再哈希偏移地址,并由該再哈希偏移地 址取得下一立即塊應(yīng)答描述符,轉(zhuǎn)步驟(13);
(15) 由下式計算得到與塊應(yīng)答請求幀源地址和Tid對應(yīng)的立即塊應(yīng)答位圖在主機內(nèi) 存中的保存地址
立即塊應(yīng)答位圖地址=基址+ (Key) % (哈希表表長)+ 8 + (Tid X 128) (11);
(16) 根據(jù)立即塊應(yīng)答位圖地址取得位圖內(nèi)容,并構(gòu)造塊應(yīng)答幀,用位圖內(nèi)容填充立即 塊應(yīng)答幀相應(yīng)域,硬件發(fā)送電路發(fā)送塊應(yīng)答幀。
本發(fā)明具有以下優(yōu)點
(1) 正確實現(xiàn)立即塊應(yīng)答機制。
(2) 正確構(gòu)造立即塊應(yīng)答幀中的位圖。
(3) 地址匹配過程速度快、邏輯電路面積小,并且隨著接入站點數(shù)的增加,邏輯部分 面積增加不明顯。
以上公開的僅為木發(fā)明的具體實施例,但本發(fā)明的保護范圍并不局限于此,任何本領(lǐng)域 的技術(shù)人員能思之的變化都應(yīng)落在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1、一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法,其特征在于,包括一個地址匹配表,一個立即塊應(yīng)答描述符,一個地址匹配硬件電路,其中所述地址匹配表包括n條發(fā)送方信息表項,n為在同一基本服務(wù)集中同時工作的站點數(shù)量,每條發(fā)送方信息表項指向一個發(fā)送方信息表,用于記錄與本地建立立即塊應(yīng)答約定的發(fā)送方站點的信息以及與此立即塊應(yīng)答約定的信息;所述立即塊應(yīng)答描述符記錄了驅(qū)動軟件生成的哈希鍵值、發(fā)生沖突時用于解決沖突所需的再哈希地址、立即塊應(yīng)答位圖地址;所述地址匹配硬件電路根據(jù)驅(qū)動軟件設(shè)置的哈希表大小和對端發(fā)送方MAC地址,計算得到與對端發(fā)送方站點對應(yīng)的塊應(yīng)答位圖在主機內(nèi)存中的保存地址;所述實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法包括以下步驟(1)驅(qū)動軟件收到從物理層到達的QoS數(shù)據(jù)包后,從數(shù)據(jù)包的QoS Control域中取得Tid和Ack Policy域值,當Ack Policy為Block Ack時,轉(zhuǎn)步驟(2)執(zhí)行塊數(shù)據(jù)幀接收流程;否則作為普通應(yīng)答數(shù)據(jù)幀處理,其中QoS為服務(wù)質(zhì)量,QoS Control為服務(wù)質(zhì)量控制,Tid為流量標識,Ack Policy為應(yīng)答策略,Block Ack為塊應(yīng)答;(2)驅(qū)動軟件根據(jù)接收數(shù)據(jù)包的發(fā)送方地址域值從地址匹配表中取得與接收數(shù)據(jù)包發(fā)送方地址對應(yīng)的發(fā)送方信息表項,并從該表項指向的發(fā)送方信息表中取得是否支持塊應(yīng)答機制表項值,若該表項值為1,表明發(fā)送方站點支持塊應(yīng)答機制,則轉(zhuǎn)步驟(3);否則銷毀當前接收的數(shù)據(jù)包,并轉(zhuǎn)步驟(1);(3)驅(qū)動軟件根據(jù)接收數(shù)據(jù)包的Tid域值,取得與其對應(yīng)的立即塊應(yīng)答狀態(tài)表項,如果該表項值為空,則說明本地與對端發(fā)送方站點之間立即塊應(yīng)答機制尚未建立,本地?zé)o法處理接收到的塊數(shù)據(jù)包,因此將該數(shù)據(jù)包銷毀并回應(yīng)Ack應(yīng)答幀,轉(zhuǎn)步驟1;如果該表項值不為空,說明本地與對端發(fā)送方站點之間立即塊應(yīng)答機制已經(jīng)建立,轉(zhuǎn)步驟(4);(4)驅(qū)動軟件從該立即塊應(yīng)答狀態(tài)表中取得發(fā)送方起始序列號表項和位圖表項,以及位圖表項所指向的位圖結(jié)構(gòu),若接收數(shù)據(jù)包序列號大于等于發(fā)送方起始序列號表項值,則轉(zhuǎn)步驟(5);否則,將該數(shù)據(jù)包銷毀,轉(zhuǎn)步驟(1);(5)查看位圖中對應(yīng)接收數(shù)據(jù)包的比特是否為1,若對應(yīng)比特為1,則說明該數(shù)據(jù)包已經(jīng)正確接收,當前接收的數(shù)據(jù)包為重復(fù)幀,直接銷毀,并回應(yīng)Ack應(yīng)答幀,轉(zhuǎn)步驟(1);否則,則轉(zhuǎn)步驟(6);(6)驅(qū)動軟件從該立即塊應(yīng)答狀態(tài)表中取得發(fā)送方數(shù)據(jù)塊長度表項,比較驅(qū)動軟件維護的重新排序緩存隊列當前長度和發(fā)送方數(shù)據(jù)塊長度表項值,若重新排序緩存隊列長度等于發(fā)送方數(shù)據(jù)塊長度表項值,說明重新排序緩存隊列已滿,則轉(zhuǎn)步驟(7);否則,轉(zhuǎn)步驟(8);(7)將重新排序緩存隊列隊首數(shù)據(jù)包釋放,并將立即塊應(yīng)答位圖中與隊首數(shù)據(jù)包對應(yīng)位置為0;(8)將與當前數(shù)據(jù)包對應(yīng)的記錄插入重新排序緩存隊列;(9)將與當前數(shù)據(jù)包對應(yīng)的立即塊應(yīng)答位圖相應(yīng)位置為1;(10)硬件接收電路接收從物理層到達的下一幀,如果判斷幀類型為QoS數(shù)據(jù)幀,則轉(zhuǎn)步驟(1);如果判斷幀類型為塊應(yīng)答請求幀,則轉(zhuǎn)步驟(11);(11)硬件接收電路取塊應(yīng)答請求幀的源地址和Tid,地址匹配便件電路根據(jù)該目的地址,由下式計算得到鍵值Key,并轉(zhuǎn)步驟(12);Key=源地址高3字節(jié)+源地址低3字節(jié)(12)地址匹配硬件電路根據(jù)步驟(11)計算所得Key值,由下式計算得到與塊應(yīng)答請求幀源地址和Tid對應(yīng)的立即塊應(yīng)答描述符在主機內(nèi)存中的保存地址,并轉(zhuǎn)步驟(13);立即塊應(yīng)答位圖描述符=基址+(Key)%(哈希表表長)(13)比較步驟(11)計算所得Key值與立即塊應(yīng)答描述符中的Key值是否相等,若相等,則轉(zhuǎn)步驟(15);否則,發(fā)生沖突,轉(zhuǎn)步驟(14);(14)由步驟(12)取得立即塊應(yīng)答描述符中的再哈希偏移地址,并由該再哈希偏移地址取得下一立即塊應(yīng)答描述符,轉(zhuǎn)步驟(13);(15)由下式計算得到與塊應(yīng)答請求幀源地址和Tid對應(yīng)的立即塊應(yīng)答位圖在主機內(nèi)存中的保存地址立即塊應(yīng)答位圖地址=基址+(Key)%(哈希表表長)+8+(Tid×128);(16)根據(jù)立即塊應(yīng)答位圖地址取得位圖內(nèi)容,并構(gòu)造塊應(yīng)答幀,用位圖內(nèi)容填充立即塊應(yīng)答幀相應(yīng)域,硬件發(fā)送電路發(fā)送塊應(yīng)答幀。
2、如權(quán)利要求l所述的一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法,其特征在于所述發(fā)送方信息表包括是否支持塊應(yīng)答機制表項、接收序列號計數(shù)器表項和立即塊應(yīng)答狀態(tài)表項,分別用于標志對端發(fā)送方是否支持塊應(yīng)答機制、記錄木地接收到的屬于該優(yōu)先級的數(shù)據(jù)包序列號和本地接收到的屬于該優(yōu)先級的塊數(shù)據(jù)包的接收狀態(tài)。
3、如權(quán)利要求l或2所述的一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法,其特征在于所 述立即塊應(yīng)答狀態(tài)表用于記錄本地MAC最后一次向上層協(xié)議提交的數(shù)據(jù)包的序列號、與本 地建立立即塊應(yīng)答約定的對端發(fā)送方站點的塊應(yīng)答策略、與本地建立立即塊應(yīng)答約定的對端 發(fā)送方站點在單個塊內(nèi)發(fā)送的數(shù)據(jù)包數(shù)量、與本地建立立即塊應(yīng)答約定的對端發(fā)送方站點在 單個塊內(nèi)發(fā)送的第一個數(shù)據(jù)包的序列號、與本地建立立即塊應(yīng)答約定的對端發(fā)送方站點在單 個塊內(nèi)發(fā)送的所有數(shù)據(jù)包是否被正確接收,以及重新排序緩存隊列地址,重新排序緩存隊列 用于緩存接收到的數(shù)據(jù)包。
全文摘要
本發(fā)明是一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法。立即塊應(yīng)答機制是一種為了提高無線局域網(wǎng)鏈路效率而將多個應(yīng)答幀合并為一個應(yīng)答幀的機制。由于接收方可能同時與多個發(fā)送方建立立即塊應(yīng)答約定,各發(fā)送方發(fā)送數(shù)據(jù)包的順序可能與數(shù)據(jù)包序列號的順序不同,并且各發(fā)送方都可能重傳數(shù)據(jù)包,因此,接收方必須能在各種復(fù)雜情況下,以正確順序向上層協(xié)議提交數(shù)據(jù)包。為了實現(xiàn)上述目的,本發(fā)明提供了一種實現(xiàn)無線局域網(wǎng)立即塊應(yīng)答機制的方法。本發(fā)明包含一個地址匹配表,一個立即塊應(yīng)答描述符,一個地址匹配硬件電路。采用本發(fā)明提供的方法可在復(fù)雜情況下,正確構(gòu)造立即塊應(yīng)答幀位圖,正確應(yīng)答數(shù)據(jù)包接收狀態(tài),以正確順序向上層協(xié)議提交數(shù)據(jù)包。
文檔編號H04L1/16GK101582756SQ20081010652
公開日2009年11月18日 申請日期2008年5月14日 優(yōu)先權(quán)日2008年5月14日
發(fā)明者巖 汪 申請人:北京中電華大電子設(shè)計有限責(zé)任公司