两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種lte-wlan異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層arq方法

文檔序號(hào):7869209閱讀:190來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種lte-wlan異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層arq方法
技術(shù)領(lǐng)域
本發(fā)明涉及異構(gòu)無(wú)線網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)傳輸問(wèn)題,尤其涉及3GPP長(zhǎng)期演進(jìn)技術(shù) (LTE)和無(wú)線局域網(wǎng)(WLAN)互聯(lián)系統(tǒng)架構(gòu)下多模終端在兩者之間進(jìn)行切換時(shí)保證數(shù)據(jù)傳輸質(zhì)量的跨層自動(dòng)重傳請(qǐng)求(ARQ)技術(shù)。
背景技術(shù)
近年來(lái),互聯(lián)網(wǎng)、通信技術(shù)迅猛發(fā)展,人們的生活品質(zhì)逐步提高,多樣化的智能終端開(kāi)始普及,人們對(duì)通信網(wǎng)絡(luò)的容量、速率、靈活性以及質(zhì)量的需求日益增長(zhǎng),而單一模式的通信網(wǎng)絡(luò)已無(wú)法滿足現(xiàn)有需求,許多蜂窩網(wǎng)絡(luò)供應(yīng)商開(kāi)始為無(wú)線通信資源的短缺而感到十分焦慮。另一方面,未來(lái)無(wú)線網(wǎng)絡(luò)將是以室內(nèi)通信為其主要應(yīng)用場(chǎng)景,根據(jù)只有空間傳輸損耗計(jì)算法則,傳輸距離縮短一半,則功耗變?yōu)樵瓉?lái)1/4,因此,室內(nèi)覆蓋通信方式符合綠色通信的主流;而對(duì)于高速移動(dòng)或室外通信,我們還必須借助宏基站的覆蓋。因此,為了在較小改動(dòng)和較低花費(fèi)的前提下提高無(wú)線通信網(wǎng)絡(luò)的容量,同時(shí)實(shí)現(xiàn)以室內(nèi)覆蓋為主的微蜂窩或皮蜂窩等高速短距覆蓋與以室外覆蓋為主的宏小區(qū)之間的互聯(lián)互通,異構(gòu)網(wǎng)絡(luò)融合的概念被提出,即將多種不同模式的接入技術(shù)融合在一起形成新型的異構(gòu)網(wǎng)絡(luò)。在各種異構(gòu)網(wǎng)絡(luò)融合技術(shù)中,無(wú)線局域網(wǎng)(IEEE 802. 11 WLAN)和蜂窩網(wǎng)(GSM、GPRS, CDMA, LTE)的融合受到人們關(guān)注,相對(duì)于蜂窩網(wǎng),WLAN具有更高的數(shù)據(jù)傳輸速率,但其覆蓋范圍相對(duì)較小, 且一般不支持移動(dòng)性,適用于室內(nèi)覆蓋通信;另一方面,和WLAN相比,蜂窩網(wǎng)的覆蓋范圍更廣,支持用戶(hù)具有更靈活的移動(dòng)性,但其數(shù)據(jù)傳輸速率相對(duì)較低,適用于高速移動(dòng)或室外通信。因此,如果我們能有效地整合WLAN和蜂窩網(wǎng),用戶(hù)和蜂窩網(wǎng)絡(luò)供應(yīng)商便能充分利用這些網(wǎng)絡(luò)的互補(bǔ)性。特別是,蜂窩網(wǎng)可以通過(guò)和WLAN共享鏈路負(fù)載來(lái)容納更多的用戶(hù),同時(shí)為用戶(hù)提供更高的 數(shù)據(jù)傳輸速率,并且可以給用戶(hù)提供靈活的接入網(wǎng)絡(luò)選擇,實(shí)現(xiàn)室內(nèi)覆蓋通信和高速移動(dòng)或室外通信的無(wú)縫結(jié)合。
在LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)環(huán)境中,為了充分利用各鏈路資源并且為用戶(hù)提供最好的數(shù)據(jù)服務(wù),終端會(huì)在LTE網(wǎng)絡(luò)和WLAN網(wǎng)絡(luò)之間切換數(shù)據(jù)傳輸路徑,兩條路徑時(shí)延特性的不同可能會(huì)造成IP數(shù)據(jù)包的亂序到達(dá);終端在切換路徑的過(guò)程中,連續(xù)傳輸?shù)臄?shù)據(jù)包會(huì)被暫時(shí)打斷,部分?jǐn)?shù)據(jù)包可能會(huì)因此而滯留在切換之前的原路徑中,從而導(dǎo)致IP數(shù)據(jù)包的丟失。而IP數(shù)據(jù)包的亂序或丟包均會(huì)導(dǎo)致傳輸控制協(xié)議(TCP)鏈接進(jìn)入擁塞控制狀態(tài),執(zhí)行快恢復(fù)或慢啟動(dòng)過(guò)程,從而嚴(yán)重影響鏈路傳輸性能。
ARQ協(xié)議的確認(rèn)和重傳機(jī)制不僅能夠在出現(xiàn)差錯(cuò)時(shí)讓發(fā)送方重傳出錯(cuò)的數(shù)據(jù),同時(shí)也保證了接收方數(shù)據(jù)的按序提交。為了保證無(wú)線鏈路的可靠傳輸,LTE協(xié)議的媒體接入控制(MAC)層應(yīng)用了混合自動(dòng)重傳請(qǐng)求(HARQ)協(xié)議,無(wú)線鏈路控制(RLC)層則應(yīng)用了 ARQ 協(xié)議,IEEE 802. 11協(xié)議的數(shù)據(jù)鏈路層同樣應(yīng)用了 ARQ協(xié)議。但是數(shù)據(jù)鏈路層的ARQ協(xié)議并不能解決終端在LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)環(huán)境中切換時(shí)造成的數(shù)據(jù)包丟失或亂序到達(dá)的問(wèn)題,因此,我們需要在LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中應(yīng)用跨層ARQ方法。發(fā)明內(nèi)容
本發(fā)明的目的為了克服上述現(xiàn)有技術(shù)存在的問(wèn)題,而提供一種LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層ARQ方法,本發(fā)明能夠有效地解決多模終端在LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中進(jìn)行切換時(shí)造成的數(shù)據(jù)包丟失或亂序到達(dá)的問(wèn)題,從而保證數(shù)據(jù)傳輸質(zhì)量和系統(tǒng)性倉(cāng)泛。
本發(fā)明在LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)的終端以及網(wǎng)關(guān)的數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層之間分別添加虛擬網(wǎng)卡,對(duì)上為應(yīng)用層虛擬一個(gè)固定IP,避免因終端在不同網(wǎng)絡(luò)之間切換而造成IP地址發(fā)生變化,對(duì)下屏蔽底層不同物理鏈路的影響;跨層ARQ模塊位于終端及網(wǎng)關(guān)的虛擬網(wǎng)卡和實(shí)際物理網(wǎng)卡之間,其實(shí)現(xiàn)包含以下步驟
(A)發(fā)送端
發(fā)送端維護(hù)一個(gè)發(fā)送窗口,發(fā)送窗口在循環(huán)隊(duì)列中移動(dòng),其長(zhǎng)度固定為循環(huán)隊(duì)列的一定比例;發(fā)送窗口中數(shù)據(jù)包的狀態(tài)分為三種N0T_SEND,即未發(fā)送;SEND_N0T_ RESPONSE,即已發(fā)送但未收到確認(rèn);SEND_AND_RESPONSE,即已發(fā)送且收到確認(rèn);
發(fā)送端包含三個(gè)并行的處理流程發(fā)送數(shù)據(jù)包、接收確認(rèn)字符(ACK)信息、更新發(fā)送狀態(tài);
(I)發(fā)送數(shù)據(jù)包處理流程的具體步驟為
(1.1)從虛擬網(wǎng)卡提供的緩沖區(qū)中讀取一定數(shù)目的IP數(shù)據(jù)包,并寫(xiě)入發(fā)送窗口所在的循環(huán)隊(duì)列;
(1. 2)在發(fā)送窗口中,從下邊沿開(kāi)始,依次讀取固定數(shù)目個(gè)狀態(tài)為N0T_SEND且不為空的IP數(shù)據(jù)包進(jìn)行發(fā)送,同時(shí)啟動(dòng)發(fā)送定時(shí)器,將發(fā)送次數(shù)加一,記錄相應(yīng)數(shù)據(jù)包的SN 號(hào)(序號(hào)),將其狀態(tài)置為SEND_N0T_RESP0NSE ;
(2)接收ACK信息處理流程的具體步驟為
(2.1)接收ACK反饋,判斷ACK信息所對(duì)應(yīng)的SN號(hào)是否落在發(fā)送窗口內(nèi),若不是, 則返回;若是,則獲得該ACK在發(fā)送窗口中的相對(duì)位置;
(2.2)根據(jù)ACK在發(fā)送窗口的位置,更新發(fā)送窗口中正確接收的數(shù)據(jù)包的狀態(tài)為 SEND_AND_RESPONSE,未能夠正確接收的數(shù)據(jù)包則設(shè)置成N0T_SEND,準(zhǔn)備重傳;
(2. 3)將發(fā)送窗口下邊沿移動(dòng)到第一個(gè)狀態(tài)不為SEND_AND_RESPONSE的數(shù)據(jù)包上,同時(shí)更新已發(fā)送數(shù)據(jù)包的數(shù)目;
(3)更新發(fā)送狀態(tài)處理流程的具體步驟為
(3.1)檢查發(fā)送窗口中狀態(tài)為SEND_N0T_RESP0NSE的數(shù)據(jù)包對(duì)應(yīng)的發(fā)送定時(shí)器以及發(fā)送次數(shù),若定時(shí)器超時(shí),則將該數(shù)據(jù)包的狀態(tài)置為N0T_SEND ;若發(fā)送次數(shù)超過(guò)最大重傳次數(shù),則將該數(shù)據(jù)包的狀態(tài)置為SEND_AND_RESPONSE ;
(B)接收端
接收端維護(hù)一個(gè)接收窗口,接收窗口在循環(huán)隊(duì)列中移動(dòng),其長(zhǎng)度固定為循環(huán)隊(duì)列的一定比例。此外,接收端還要維護(hù)一個(gè)確認(rèn)等待隊(duì)列,該隊(duì)列包括若干個(gè)記錄節(jié)點(diǎn),隊(duì)列的每個(gè)記錄節(jié)點(diǎn)記錄一個(gè)已經(jīng)正確接收或檢測(cè)到丟失但是還沒(méi)有來(lái)得及被確認(rèn)的數(shù)據(jù)包的序號(hào)和該數(shù)據(jù)包到達(dá)或發(fā)現(xiàn)丟失的時(shí)間戳。該隊(duì)列是按照數(shù)據(jù)包序號(hào)正確接收或發(fā)現(xiàn)丟失的時(shí)間順序排列的,最先正確接收或檢測(cè)到丟失的數(shù)據(jù)包的記錄在隊(duì)列的最前面。數(shù)據(jù)接收方每次正確接收到數(shù)據(jù)包時(shí)檢測(cè)是否有丟失的數(shù)據(jù)包,如果有丟幀則將一個(gè)或者多個(gè)丟失的數(shù)據(jù)包的序號(hào)和當(dāng)前時(shí)間戳插入到確認(rèn)等待隊(duì)列,再將正確接收的數(shù)據(jù)包序號(hào)和當(dāng)前時(shí)間戳插入到確認(rèn)等待隊(duì)列;否則直接將正確接收的數(shù)據(jù)包序號(hào)和當(dāng)前時(shí)間戳插入到確認(rèn)等待隊(duì)列。
接收端反饋的ACK信息幀格式如表I所示
表I為ACK信息幀格式
位圖類(lèi)型|SN號(hào) [H
ACK幀采用累積確認(rèn)位圖和非累積確認(rèn)位圖兩種形式。當(dāng)ACK的確認(rèn)類(lèi)型是累積確認(rèn)位圖類(lèi)型時(shí),Bit I表示對(duì)序號(hào)為SN+1數(shù)據(jù)包的接收情況的確認(rèn),如果為I則表示該數(shù)據(jù)包已被接收方正確接收,即肯定確認(rèn);如果為O則表示沒(méi)有正確接收,即否定確認(rèn)。Bit2表示對(duì)序號(hào)SN+2的數(shù)據(jù)包的接收情況的確認(rèn),同理Bit 3到Bit N位表示對(duì)序號(hào)從SN+3 到SN+N的數(shù)據(jù)包接收情況的確認(rèn)。累積確認(rèn)位圖類(lèi)型總是對(duì)SN的數(shù)據(jù)包否定確認(rèn),對(duì)SN 之前的數(shù)據(jù)包肯定確認(rèn);當(dāng)ACK的確認(rèn)類(lèi)型是非累積確認(rèn)位圖類(lèi)型時(shí),Bit I表示對(duì)序號(hào)為 SN數(shù)據(jù)包的接收情況的確認(rèn),如果為I則表示該數(shù)據(jù)包已被接收方正確接收,即肯定確認(rèn); 如果為O則表示沒(méi)有正確接收,即否定確認(rèn)。Bit2表示對(duì)序號(hào)SN+1的數(shù)據(jù)包的接收情況的確認(rèn),同理Bit 3到Bit N位表示序號(hào)從SN+2到SN+N-1的數(shù)據(jù)包接收情況的確認(rèn)。非累積確認(rèn)位圖類(lèi)型對(duì)SN之前的數(shù)據(jù)包既不做肯定確認(rèn),也不做否 定確認(rèn)。
接收端包含三個(gè)并行的處理流程接收數(shù)據(jù)包、構(gòu)造并發(fā)送ACK幀、維護(hù)ACK確認(rèn)等待隊(duì)列。
(I)接收數(shù)據(jù)包處理流程的具體步驟為
(1.1)判斷接收數(shù)據(jù)包的SN號(hào)是否落在接收窗口的可接收范圍內(nèi)。若是,則被窗口接收;若不是,則返回;
(1.2)判斷接收數(shù)據(jù)包的SN號(hào)是否大于接收窗口的最后一個(gè)正確接收的數(shù)據(jù)包的記錄即receiveNumHighEdge ;若是,貝U轉(zhuǎn)入步驟(1. 3);若不是,貝U直接轉(zhuǎn)入步驟(1. 4);
(1.3)更新 receiveNumHighEdge,并且將原 receiveNumHighEdge 和新 receiveNumHighEdge之間的接收記錄加入到ACK確認(rèn)等待隊(duì)列中,插入的順序遵循SN號(hào)循環(huán)上升的過(guò)程。將這些數(shù)據(jù)包暫時(shí)視作未正確接收的數(shù)據(jù)包,并為這些數(shù)據(jù)包添加時(shí)間戳;
(1. 4)若接收數(shù)據(jù)包還未插入ACK確認(rèn)等待隊(duì)列,則將接收到的數(shù)據(jù)包記錄插入 ACK確認(rèn)等待隊(duì)列中;
(1. 5)更新接收窗口下邊沿,即在接收數(shù)據(jù)包以后找到第一個(gè)未能夠正確接收且等待未超時(shí)的數(shù)據(jù)包的SN號(hào),用該SN號(hào)來(lái)更新接收窗口下邊沿;
(1. 6)將正確接收的數(shù)據(jù)包,即接收窗口原下邊沿記錄到新下邊沿記錄的數(shù)據(jù)包, 移除窗口,交給上層虛擬網(wǎng)卡處理,并且從ACK確認(rèn)等待隊(duì)列中刪除對(duì)應(yīng)記錄;
(2)構(gòu)造并發(fā)送ACK幀處理流程的具體步驟為
(2.1)判斷ACK確認(rèn)等待隊(duì)列是否為空;若為空,則從接收窗的下邊沿取SN號(hào);若不為空,則從ACK確認(rèn)等待隊(duì)列的第一個(gè)元素中取SN號(hào);
(2. 2)判斷步驟(2.1)取得的SN號(hào)是否落在接收窗口內(nèi);若是,則將該SN號(hào)作為ACK幀的SN號(hào);若不是,則強(qiáng)制以窗口下邊沿作為ACK幀的SN號(hào);
(2. 3)判斷步驟(2. 2)得到的SN號(hào)與接收窗口下邊沿的關(guān)系。若相同,則采用累積位圖確認(rèn)模式;若不同,則采用非累積位圖確認(rèn)模式。根據(jù)包的錯(cuò)誤或正確接收狀態(tài)選擇 ACK類(lèi)型;
(2. 4)根據(jù)選擇的ACK類(lèi)型構(gòu)造ACK幀;
(2. 5)將確認(rèn)信息中包含過(guò)的SN號(hào)從ACK確認(rèn)等待隊(duì)列中刪除;
(2· 6 )發(fā)送 ACK 幀;
(3)維護(hù)ACK確認(rèn)等待隊(duì)列處理流程的具體步驟為
(3.1)將確認(rèn)等待隊(duì)列前面所有等待確認(rèn)時(shí)間大于放棄確認(rèn)時(shí)間門(mén)限的記錄節(jié)點(diǎn)刪除,即放棄對(duì)等待確認(rèn)時(shí)間大于放棄確認(rèn)時(shí)間門(mén)限的數(shù)據(jù)包進(jìn)行確認(rèn),其中放棄確認(rèn)時(shí)間門(mén)限等于發(fā) 送超時(shí)定時(shí)器的超時(shí)時(shí)間減去從數(shù)據(jù)接收方開(kāi)始發(fā)送ACK到數(shù)據(jù)發(fā)送方完全接收該ACK的處理時(shí)間。
發(fā)送窗口長(zhǎng)度、接收窗口長(zhǎng)度分別為循環(huán)隊(duì)列的1/2。
本發(fā)明的技術(shù)效果體現(xiàn)在
通過(guò)反饋和重傳機(jī)制,減小了因終端在LTE和WLAN鏈路之間進(jìn)行切換而造成數(shù)據(jù)包丟失的概率;
通過(guò)滑動(dòng)窗口機(jī)制,避免了因終端在LTE和WLAN鏈路之間進(jìn)行切換而造成的數(shù)據(jù)包亂序到達(dá)的問(wèn)題,保證了 IP數(shù)據(jù)包按序提交到傳輸層;
在IP層面實(shí)現(xiàn)ARQ協(xié)議,為傳輸層提供可靠服務(wù),有效降低了 TCP進(jìn)入慢啟動(dòng)或快恢復(fù)的概率,保證了數(shù)據(jù)傳輸效率和網(wǎng)絡(luò)吞吐量;
采用高效的確認(rèn)模式,盡可能減小確認(rèn)信息所占用的帶寬資源,在不影響網(wǎng)絡(luò)吞吐量的前提下保證了 LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的數(shù)據(jù)傳輸質(zhì)量。


圖1為L(zhǎng)TE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)架構(gòu)示意圖2為L(zhǎng)TE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中各節(jié)點(diǎn)功能模塊示意圖3為L(zhǎng)TE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中跨層ARQ模塊示意圖4為跨層ARQ I旲塊中發(fā)送窗口不意圖5a為跨層ARQ模塊發(fā)送端發(fā)送數(shù)據(jù)包的處理流程示意圖5b為跨層ARQ模塊發(fā)送端接收ACK反饋信息的處理流程示意圖5c為跨層ARQ模塊發(fā)送端更新發(fā)送狀態(tài)的處理流程示意圖6為跨層ARQ模塊中接收窗口示意圖7a為跨層ARQ模塊接收端接收數(shù)據(jù)包的處理流程示意圖7b為跨層ARQ模塊接收端構(gòu)造并發(fā)送ACK反饋信息的處理流程示意圖7c為跨層ARQ模塊接收端維護(hù)ACK確認(rèn)等待隊(duì)列的處理流程示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)發(fā)明進(jìn)行詳細(xì)說(shuō)明,但以下實(shí)施例僅是說(shuō)明性的,本發(fā)明的保護(hù)范圍并不受這些實(shí)施例的限制。
圖1為L(zhǎng)TE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)的整體架構(gòu),系統(tǒng)包含兩個(gè)多模終端、一個(gè) Linux網(wǎng)關(guān)以及一條LTE鏈路和兩條WLAN鏈路。系統(tǒng)中各節(jié)點(diǎn)所包含的功能模塊如圖2所示,網(wǎng)關(guān)和終端均自定義實(shí)現(xiàn)虛擬網(wǎng)卡以及跨層ARQ協(xié)議,此外,網(wǎng)關(guān)處還自定義實(shí)現(xiàn)路徑選擇、網(wǎng)絡(luò)地址轉(zhuǎn)換模塊,終端處自定義實(shí)現(xiàn)路徑選擇模塊??鐚覣RQ協(xié)議模塊在LTE-WLAN 異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的位置如圖3所示,在發(fā)送端,ARQ模塊的輸入為緩沖區(qū)A,輸出為緩沖區(qū)C,緩沖區(qū)中保存了 IP數(shù)據(jù)包的指針。虛擬網(wǎng)卡向緩沖區(qū)A寫(xiě)IP數(shù)據(jù)包,ARQ進(jìn)程從緩沖區(qū)A中讀取這些IP數(shù)據(jù)包,加封SN號(hào)后再寫(xiě)入緩沖區(qū)C,WLAN和LTE的物理網(wǎng)卡發(fā)送進(jìn)程再?gòu)木彌_區(qū)C中讀取數(shù)據(jù)包,添加相應(yīng)協(xié)議頭部后完成發(fā)包;在接收端,ARQ模塊的輸入為緩沖區(qū)D,輸出為緩沖區(qū)B,緩沖區(qū)中保存了 IP數(shù)據(jù)包的指針。ARQ進(jìn)程從緩沖區(qū)D中讀取物理網(wǎng)卡傳上來(lái)的IP數(shù)據(jù)包,經(jīng)整序、反饋處理后,將正確接收的數(shù)據(jù)包按序?qū)懭刖彌_區(qū)B,虛擬網(wǎng)卡接收進(jìn)程從緩沖區(qū)B中讀入已經(jīng)經(jīng)過(guò)整序的IP數(shù)據(jù)包,交給上層協(xié)議棧進(jìn)行處理。
跨層ARQ協(xié)議的實(shí)現(xiàn)主要分為發(fā)送端和接收端兩部分
發(fā)送端維護(hù)了一個(gè)發(fā)送窗口,如圖4所示,發(fā)送窗口在循環(huán)隊(duì)列中移動(dòng),其長(zhǎng)度為循環(huán)隊(duì)列的1/2。其中sendLowEdge指向發(fā)送窗口下邊沿,指示第一個(gè)發(fā)送且未正確接收 (SEND_N0T_RESP0NSE)的數(shù)據(jù)包,SendNumHighEdge指示最后一個(gè)發(fā)送的數(shù)據(jù)包。
發(fā)送端數(shù)據(jù)包處理流程如圖5a、圖5b、圖5c所示,主要包含三個(gè)并行的進(jìn)程發(fā)送數(shù)據(jù)包、接收ACK反饋信息、更新發(fā)送狀態(tài)。
(I)發(fā)送數(shù)據(jù)包處理流程的具體步驟為
(1.1)從虛擬網(wǎng)卡提供的緩沖區(qū)(即緩沖區(qū)A)中讀取一定數(shù)目的IP數(shù)據(jù)包,并寫(xiě)入發(fā)送窗口所在的循環(huán)隊(duì)列,直到發(fā)送端循環(huán)隊(duì)列被填滿或者緩沖區(qū)A為空止;
(1. 2)在發(fā)送窗口中,從下邊沿開(kāi)始,依次讀取固定數(shù)目個(gè)狀態(tài)為N0T_SEND且不為空的IP數(shù)據(jù)包進(jìn)行發(fā)送,同時(shí) 啟動(dòng)發(fā)送定時(shí)器,將發(fā)送次數(shù)加一,記錄相應(yīng)數(shù)據(jù)包的SN 號(hào),將其狀態(tài)置為SEND_N0T_RESP0NSE ;
(2)接收ACK反饋信息處理流程的具體步驟為
(2.1)接收ACK反饋,判斷ACK信息所對(duì)應(yīng)的SN號(hào)是否落在發(fā)送窗口內(nèi),若不是, 則返回;若是,則獲得該ACK在發(fā)送窗口中的相對(duì)位置;
(2.2)根據(jù)ACK在發(fā)送窗口的位置,更新發(fā)送窗口中正確接收的數(shù)據(jù)包的狀態(tài)為 SEND_AND_RESPONSE,未能夠正確接收的數(shù)據(jù)包則設(shè)置成N0T_SEND,準(zhǔn)備重傳;
(2. 3)將發(fā)送窗口下邊沿(sendLowEdge)移動(dòng)到第一個(gè)狀態(tài)不為SEND_ AND_RESP0NSE的數(shù)據(jù)包上,同時(shí)更新已發(fā)送數(shù)據(jù)包的數(shù)目,即SendNumHighEdge -sendLowEdge 的值。
(3)更新發(fā)送狀態(tài)處理流程的具體步驟為
(3.1)這一步主要的作用的是為了觸發(fā)超時(shí)重傳和放棄重傳超過(guò)最大重傳次數(shù)的數(shù)據(jù)包。檢查發(fā)送窗口中狀態(tài)為SEND_N0T_RESP0NSE的數(shù)據(jù)包對(duì)應(yīng)的發(fā)送定時(shí)器以及發(fā)送次數(shù),若發(fā)送定時(shí)器超時(shí),則將該數(shù)據(jù)包的狀態(tài)置為N0T_SEND ;若發(fā)送次數(shù)超過(guò)最大重傳次數(shù),則將該數(shù)據(jù)包的狀態(tài)置為SEND_AND_RESPONSE。超時(shí)時(shí)間應(yīng)該設(shè)置成略微大于最大鏈路往返時(shí)延,以及發(fā)送端發(fā)送處理時(shí)間和接收端ACK構(gòu)造時(shí)延之和。
接收端維護(hù)了一個(gè)接收窗口,如圖6所示,接收窗口在循環(huán)隊(duì)列中移動(dòng),其長(zhǎng)度等于循環(huán)隊(duì)列的1/2。receiveLowEdge為接收窗口下邊沿,指示第一個(gè)未能夠正確接收的數(shù)據(jù)包,receiveNumHighEdge指示最后一個(gè)正確接收的數(shù)據(jù)包。
接收端數(shù)據(jù)包處理流程如圖7a、圖7b、圖7c所示,主要包含三個(gè)并行的進(jìn)程接收數(shù)據(jù)包、構(gòu)造并發(fā)送ACK反饋信息、維護(hù)ACK確認(rèn)等待隊(duì)列。
(I)接收數(shù)據(jù)包處理流程的具體步驟為
(1.1)判斷接收數(shù)據(jù)包的SN號(hào)是否落在接收窗口的可接收范圍內(nèi)。若是,則被窗口接收;若不是,則返回;
(1. 2)判斷接收數(shù)據(jù)包的SN號(hào)是否大于接收窗口的最后一個(gè)正確接收的數(shù)據(jù)包的記錄(即receiveNumHighEdge)ο若是,則轉(zhuǎn)入步驟(1. 3);若不是,則直接轉(zhuǎn)入步驟 (1.4);
(1.3)更新 receiveNumHighEdge,并且將原 receiveNumHighEdge 和新 receiveNumHighEdge之間的接收記錄加入到ACK確認(rèn)等待隊(duì)列中,插入的順序遵循SN號(hào)循環(huán)上升的過(guò)程。將這些數(shù)據(jù)包暫時(shí)視作未正確接收的數(shù)據(jù)包,并為這些數(shù)據(jù)包添加時(shí)間戳。當(dāng)這些數(shù)據(jù)包在經(jīng)過(guò)了超時(shí)重傳時(shí)間*超時(shí)重傳次數(shù)以后,仍然沒(méi)有能夠正確接收,就可以根據(jù)這個(gè)時(shí)間戳強(qiáng)制移動(dòng)接收窗口 ;
(1. 4)若接收數(shù)據(jù)包還未插入ACK確認(rèn)等待隊(duì)列,則將接收到的數(shù)據(jù)包插入ACK確認(rèn)等待隊(duì)列中;
(1.5)更新接收窗口下邊沿,即在接收數(shù)據(jù)包以后找到第一個(gè)未能夠正確接收且等待未超時(shí)的數(shù)據(jù)包的SN號(hào),用該SN號(hào)來(lái)更新receiveLowEdge ;
(1. 6)將正確接收的數(shù)據(jù)包,即原receiveLowEdge到新receiveLowEdge-Ι的數(shù)據(jù)包,移除窗口,交給上層虛擬網(wǎng)卡處理,并且從ACK確認(rèn)等待隊(duì)列中刪除對(duì)應(yīng)記錄;
(2)構(gòu)造并發(fā)送ACK幀處理流程的具體步驟為
(2.1)判斷ACK確認(rèn)等待隊(duì)列是否為空。若為空,則從接收窗的下邊沿取SN號(hào); 若不為空,則從ACK確認(rèn)等待隊(duì)列的第一個(gè)元素中取SN號(hào);
(2. 2)判斷步驟(2.1)取得的SN號(hào)是否落在接收窗口內(nèi)。若是,則將該SN號(hào)作為 ACK幀的SN號(hào);若不是,則 強(qiáng)制以窗口下邊沿作為ACK幀的SN號(hào);
(2. 3)判斷步驟(2. 2)得到的SN號(hào)與接收窗口下邊沿的關(guān)系。若相同,則采用累積位圖確認(rèn)模式;若不同,則采用非累積位圖確認(rèn)模式。根據(jù)包的錯(cuò)誤或正確接收狀態(tài)選擇 ACK類(lèi)型;
(2. 4)根據(jù)選擇的ACK類(lèi)型構(gòu)造ACK幀;
(2. 5)將確認(rèn)信息中包含過(guò)的SN號(hào)從ACK確認(rèn)等待隊(duì)列中刪除;
(2. 6)發(fā)送 ACK 幀;
(3)維護(hù)ACK確認(rèn)等待隊(duì)列處理流程的具體步驟為
(3.1)計(jì)算確認(rèn)等待隊(duì)列的最大等待確認(rèn)時(shí)間,如果最大等待確認(rèn)時(shí)間大于設(shè)定的放棄確認(rèn)時(shí)間門(mén)限,則將確認(rèn)等待隊(duì)列前面所有等待確認(rèn)時(shí)間大于放棄確認(rèn)時(shí)間門(mén)限的記錄節(jié)點(diǎn)刪除,即放棄對(duì)等待確認(rèn)時(shí)間大于放棄確認(rèn)時(shí)間門(mén)限的數(shù)據(jù)包進(jìn)行確認(rèn)(放棄確認(rèn)策略),其中放棄確認(rèn)時(shí)間門(mén)限等于發(fā)送超時(shí)定時(shí)器的超時(shí)時(shí)間減去從數(shù)據(jù)接收方開(kāi)始發(fā)送ACK到數(shù)據(jù)發(fā)送方完全接收該ACK的處理時(shí)間。
放棄確認(rèn)策略的作用是對(duì)在確認(rèn)等待中等待時(shí)間超過(guò)門(mén)限的數(shù)據(jù)包放棄發(fā)送確認(rèn)信息,由發(fā) 送超時(shí)機(jī)制來(lái)進(jìn)行超時(shí)重傳,這樣一小部分?jǐn)?shù)據(jù)包通過(guò)超時(shí)重傳機(jī)制來(lái)處理, 大部分?jǐn)?shù)據(jù)包還是通過(guò)否定確認(rèn)機(jī)制來(lái)重傳,確認(rèn)帶寬并沒(méi)有浪費(fèi)。
權(quán)利要求
1.一種LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層ARQ方法,跨層ARQ模塊位于終端與網(wǎng)關(guān)的虛擬網(wǎng)卡和實(shí)際物理網(wǎng)卡之間,其特征在于在終端與網(wǎng)關(guān)的數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層之間分別添加虛擬網(wǎng)卡,對(duì)上為應(yīng)用層虛擬一個(gè)固定IP,對(duì)下屏蔽底層不同物理鏈路的影響; 其實(shí)現(xiàn)包含以下步驟(A)發(fā)送端發(fā)送端維護(hù)一個(gè)發(fā)送窗口,發(fā)送窗口在循環(huán)隊(duì)列中移動(dòng),其長(zhǎng)度固定為循環(huán)隊(duì)列的一定比例;發(fā)送窗口中數(shù)據(jù)包的狀態(tài)分為三種N0T_SEND,即未發(fā)送;SEND_N0T_RESP0NSE,即已發(fā)送但未收到確認(rèn);SEND_AND_RESPONSE,即已發(fā)送且收到確認(rèn);發(fā)送端包含發(fā)送數(shù)據(jù)包、接收確認(rèn)字符(ACK)信息、更新發(fā)送狀態(tài)三個(gè)并行的處理流(B)接收端接收端維護(hù)一個(gè)接收窗口,接收窗口在循環(huán)隊(duì)列中移動(dòng),其長(zhǎng)度固定為循環(huán)隊(duì)列的一定比例;此外,接收端還要維護(hù)一個(gè)確認(rèn)等待隊(duì)列,確認(rèn)等待隊(duì)列包括若干個(gè)記錄節(jié)點(diǎn),確認(rèn)等待隊(duì)列的每個(gè)記錄節(jié)點(diǎn)記錄一個(gè)已經(jīng)正確接收或檢測(cè)到丟失但是還沒(méi)有來(lái)得及被確認(rèn)的數(shù)據(jù)包的序號(hào)和該數(shù)據(jù)包到達(dá)或發(fā)現(xiàn)丟失的時(shí)間戳;該確認(rèn)等待隊(duì)列是按照數(shù)據(jù)包序號(hào)正確接收或發(fā)現(xiàn)丟失的時(shí)間順序排列的,最先正確接收或檢測(cè)到丟失的數(shù)據(jù)包的記錄在隊(duì)列的最前面;數(shù)據(jù)接收端每次正確接收到數(shù)據(jù)包時(shí)檢測(cè)是否有丟失的數(shù)據(jù)包,如果有丟幀則將一個(gè)或者多個(gè)丟失的數(shù)據(jù)包的序號(hào)和當(dāng)前時(shí)間戳插入到確認(rèn)等待隊(duì)列,再將正確接收的數(shù)據(jù)包序號(hào)和當(dāng)前時(shí)間戳插入到確認(rèn)等待隊(duì)列;否則直接將正確接收的數(shù)據(jù)包序號(hào)和當(dāng)前時(shí)間戳插入到確認(rèn)等待隊(duì)列;接收端反饋的ACK信息幀格式包括位圖類(lèi)型、SN號(hào)和位圖;接收端包含三個(gè)并行的處理流程接收數(shù)據(jù)包、構(gòu)造并發(fā)送ACK幀、維護(hù)ACK確認(rèn)等待隊(duì)列。
2.根據(jù)權(quán)利要求1所述的LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層ARQ方法,其特征在于發(fā)送窗口長(zhǎng)度、接收窗口長(zhǎng)度分別為循環(huán)隊(duì)列的1/2。
3.根據(jù)權(quán)利要求1或2所述的LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層ARQ方法,其特征在于所述發(fā)送端的發(fā)送數(shù)據(jù)包處理流程的具體步驟為(1.1)從虛擬網(wǎng)卡提供的緩沖區(qū)中讀取一定數(shù)目的IP數(shù)據(jù)包,并寫(xiě)入發(fā)送窗口所在的循環(huán)隊(duì)列;(1.2)在發(fā)送窗口中,從下邊沿開(kāi)始,依次讀取固定數(shù)目個(gè)狀態(tài)為N0T_SEND且不為空的IP數(shù)據(jù)包進(jìn)行發(fā)送,同時(shí)啟動(dòng)發(fā)送定時(shí)器,將發(fā)送次數(shù)加一,記錄相應(yīng)數(shù)據(jù)包的SN號(hào),將其狀態(tài)置為 SEND_N0T_RESP0NSE。
4.根據(jù)權(quán)利要求1或2所述的LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層ARQ方法,其特征在于所述發(fā)送端的接收ACK信息處理流程的具體步驟為(2.1)接收ACK反饋,判斷ACK信息所對(duì)應(yīng)的SN號(hào)是否落在發(fā)送窗口內(nèi),若不是,則返回;若是,則獲得該ACK在發(fā)送窗口中的相對(duì)位置;(2. 2)根據(jù)ACK在發(fā)送窗口的位置,更新發(fā)送窗口中正確接收的數(shù)據(jù)包的狀態(tài)為SEND_ AND_RESP0NSE,未能夠正確接收的數(shù)據(jù)包則設(shè)置成N0T_SEND,準(zhǔn)備重傳;(2. 3)將發(fā)送窗口下邊沿移動(dòng)到第一個(gè)狀態(tài)不為SEND_AND_RESPONSE的數(shù)據(jù)包上,同時(shí)更新已發(fā)送數(shù)據(jù)包的數(shù)目。
5.根據(jù)權(quán)利要求1或2所述的LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層ARQ方法,其特征在于所述發(fā)送端的更新發(fā)送狀態(tài)處理流程的具體步驟為檢查發(fā)送窗口中狀態(tài)為SEND_N0T_RESP0NSE的數(shù)據(jù)包對(duì)應(yīng)的發(fā)送定時(shí)器以及發(fā)送次數(shù),若定時(shí)器超時(shí),則將該數(shù)據(jù)包的狀態(tài)置為N0T_SEND ;若發(fā)送次數(shù)超過(guò)最大重傳次數(shù),則將該數(shù)據(jù)包的狀態(tài)置為SEND_AND_RESPONSE。
6.根據(jù)權(quán)利要求1或2所述的LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層ARQ方法,其特征在于所述接收端的ACK幀采用累積確認(rèn)位圖和非累積確認(rèn)位圖兩種形式;當(dāng)ACK的確認(rèn)類(lèi)型是累積確認(rèn)位圖類(lèi)型時(shí),Bit I表示對(duì)序號(hào)為SN+1數(shù)據(jù)包的接收情況的確認(rèn),如果為I則表示該數(shù)據(jù)包已被接收方正確接收,即肯定確認(rèn);如果為O則表示沒(méi)有正確接收,即否定確認(rèn)2表示對(duì)序號(hào)SN+2的數(shù)據(jù)包的接收情況的確認(rèn),同理Bit 3到Bit N位表示對(duì)序號(hào)從SN+3到SN+N的數(shù)據(jù)包接收情況的確認(rèn);累積確認(rèn)位圖類(lèi)型總是對(duì)SN的數(shù)據(jù)包否定確認(rèn),對(duì)SN之前的數(shù)據(jù)包肯定確認(rèn);當(dāng)ACK的確認(rèn)類(lèi)型是非累積確認(rèn)位圖類(lèi)型時(shí),Bit I表示對(duì)序號(hào)為SN數(shù)據(jù)包的接收情況的確認(rèn),如果為I則表示該數(shù)據(jù)包已被接收方正確接收,即肯定確認(rèn);如果為O則表示沒(méi)有正確接收,即否定確認(rèn);Bit2表示對(duì)序號(hào)SN+1的數(shù)據(jù)包的接收情況的確認(rèn),同理Bit 3到Bit N位表示序號(hào)從SN+2到SN+N-1的數(shù)據(jù)包接收情況的確認(rèn);非累積確認(rèn)位圖類(lèi)型對(duì)SN之前的數(shù)據(jù)包既不做肯定確認(rèn),也不做否定確認(rèn)。
7.根據(jù)權(quán)利要求1或2所述的LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層ARQ方法,其特征在于所述接收端的接收數(shù)據(jù)包處理流程的具體步驟為(1.1)判斷接收數(shù)據(jù)包的SN號(hào)是否落在接收窗口的可接收范圍內(nèi),若是,則被窗口接收;若不是,則返回;(1.2)判斷接收數(shù)據(jù)包的SN號(hào)是否大于接收窗口的最后一個(gè)正確接收的數(shù)據(jù)包的記錄即receiveNumHighEdge ;若是,則轉(zhuǎn)入步驟(L 3);若不是,則直接轉(zhuǎn)入步驟(L 4);(1.3)更新receiveNumHighEdge,并且將原 receiveNumHighEdge 和新 receiveNumHighEdge之間的接收記錄加入到ACK確認(rèn)等待隊(duì)列中,插入的順序遵循SN號(hào)循環(huán)上升的過(guò)程,將這些數(shù)據(jù)包暫時(shí)視作未正確接收的數(shù)據(jù)包,并為這些數(shù)據(jù)包添加時(shí)間戳;(1. 4)若接收數(shù)據(jù)包還未插入ACK確認(rèn)等待隊(duì)列,則將接收到的數(shù)據(jù)包記錄插入ACK確認(rèn)等待隊(duì)列中;(1. 5)更新接收窗口下邊沿,即在接收數(shù)據(jù)包以后找到第一個(gè)未能夠正確接收且等待未超時(shí)的數(shù)據(jù)包的SN號(hào),用該SN號(hào)來(lái)更新接收窗口下邊沿;(1. 6)將正確接收的數(shù)據(jù)包,即接收窗口原下邊沿記錄到新下邊沿記錄的數(shù)據(jù)包,移除窗口,交給上層虛擬網(wǎng)卡處理,并且從ACK確認(rèn)等待隊(duì)列中刪除對(duì)應(yīng)記錄。
8.根據(jù)權(quán)利要求1或2所述的LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層ARQ方法,其特征在于所述接收端的構(gòu)造并發(fā)送ACK幀處理流程的具體步驟為(2.1)判斷ACK確認(rèn)等待隊(duì)列是否為空;若為空,則從接收窗的下邊沿取SN號(hào);若不為空,則從ACK確認(rèn)等待隊(duì)列的第一個(gè)元素中取SN號(hào);(2. 2)判斷步驟(2.1)取得的SN號(hào)是否落在接收窗口內(nèi);若是,則將該SN號(hào)作為ACK 幀的SN號(hào);若不是,則強(qiáng)制以窗口下邊沿作為ACK幀的SN號(hào);(2. 3)判斷步驟(2. 2)得到的SN號(hào)與接收窗口下邊沿的關(guān)系。若相同,則采用累積位圖確認(rèn)模式;若不同,則采用非累積位圖確認(rèn)模式,根據(jù)包的錯(cuò)誤或正確接收狀態(tài)選擇ACK 類(lèi)型;(2.4)根據(jù)選擇的ACK類(lèi)型構(gòu)造ACK幀;(2.5)將確認(rèn)信息中包含過(guò)的SN號(hào)從ACK確認(rèn)等待隊(duì)列中刪除;(2. 6)發(fā)送ACK幀。
9.根據(jù)權(quán)利要求1或2所述的LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層ARQ方法,其特征在于所述接收端的維護(hù)ACK確認(rèn)等待隊(duì)列處理流程的具體步驟為將確認(rèn)等待隊(duì)列前面所有等待確認(rèn)時(shí)間大于放棄確認(rèn)時(shí)間門(mén)限的記錄節(jié)點(diǎn)刪除,即放棄對(duì)等待確認(rèn)時(shí)間大于放棄確認(rèn)時(shí)間門(mén)限的數(shù)據(jù)包進(jìn)行確認(rèn),其中放棄確認(rèn)時(shí)間門(mén)限等于發(fā)送超時(shí)定時(shí)器的超時(shí)時(shí)間減去從數(shù)據(jù)接收方開(kāi)始發(fā)送ACK到數(shù)據(jù)發(fā)送方完全接收該ACK 的處理時(shí)間。
全文摘要
本發(fā)明涉及一種LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)中的跨層ARQ方法,該方法為在LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)系統(tǒng)的終端與網(wǎng)關(guān)的數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層之間分別添加虛擬網(wǎng)卡,對(duì)上為應(yīng)用層虛擬一個(gè)固定IP,對(duì)下屏蔽底層不同物理鏈路的影響;利用閉環(huán)反饋機(jī)制,在IP層面實(shí)現(xiàn)ARQ協(xié)議。本發(fā)明提供的跨層ARQ協(xié)議能有效地解決終端在LTE-WLAN異構(gòu)無(wú)線網(wǎng)絡(luò)環(huán)境中切換時(shí)造成的數(shù)據(jù)包丟失或亂序到達(dá)的問(wèn)題,避免TCP鏈接因數(shù)據(jù)包丟失或亂序而進(jìn)入擁塞控制狀態(tài),執(zhí)行快恢復(fù)或慢啟動(dòng)過(guò)程而嚴(yán)重影響鏈路傳輸性能。能夠很好地保證異構(gòu)網(wǎng)絡(luò)系統(tǒng)中終端和網(wǎng)關(guān)之間的數(shù)據(jù)傳輸質(zhì)量,為傳輸層提供可靠服務(wù),使終端用戶(hù)在異構(gòu)無(wú)線網(wǎng)絡(luò)環(huán)境中獲得高速流暢的通信體驗(yàn)。
文檔編號(hào)H04L1/18GK103001751SQ20121055180
公開(kāi)日2013年3月27日 申請(qǐng)日期2012年12月18日 優(yōu)先權(quán)日2012年12月18日
發(fā)明者王德勝, 熊磊, 林宏志, 田科亮, 余想, 馬璇, 常成龍 申請(qǐng)人:華中科技大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
田阳县| 金寨县| 绥德县| 卓尼县| 土默特左旗| 防城港市| 松溪县| 宣汉县| 九台市| 永川市| 乳源| 林口县| 洪江市| 天水市| 稷山县| 台前县| 调兵山市| 庄河市| 庆云县| 榕江县| 富源县| 华阴市| 尼勒克县| 武川县| 江源县| 宝山区| 民权县| 那坡县| 承德县| 卓尼县| 巩义市| 靖西县| 承德市| 水城县| 开平市| 新建县| 奈曼旗| 察隅县| 镇平县| 阿巴嘎旗| 武乡县|