隊(duì)列管理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù),尤其涉及一種隊(duì)列管理方法和裝置。
【背景技術(shù)】
[0002] 隨著移動(dòng)互聯(lián)網(wǎng)的爆炸式發(fā)展,通過無線接入網(wǎng)入口的Internet服務(wù)需求龐大。 由于無線接入網(wǎng)固有的切換、高丟包率、時(shí)延抖動(dòng)等特點(diǎn),一般是端到端IP網(wǎng)絡(luò)性能的瓶 頸。無線和有線網(wǎng)絡(luò)共同組成的帶寬不匹配管道會(huì)增加網(wǎng)絡(luò)擁塞的發(fā)生概率,此時(shí)降低擁 塞發(fā)生概率以及從擁塞狀態(tài)快速恢復(fù)的能力和魯棒性很大程度上決定了端到端網(wǎng)絡(luò)性能。
[0003] 無線有線混合網(wǎng)絡(luò)擁塞的發(fā)生靜態(tài)上是由于有線和無線之間管道的可用帶寬 存在差異:對(duì)于下行鏈路而言,互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)數(shù)據(jù)報(bào)從公共數(shù) 據(jù)網(wǎng)關(guān)(Public Data Network Gateway, PDN Gateway)流入無線接入網(wǎng)(Radio Access Network,RAN)的速率高于RAN通過無線接口向用戶設(shè)備(UserEquipment,UE)的發(fā)送速 率,在諸如eNodeB等RAN網(wǎng)元節(jié)點(diǎn)處數(shù)據(jù)緩存,當(dāng)緩存數(shù)據(jù)量超過緩存內(nèi)存空間(Buffer Size)時(shí),導(dǎo)致緩存溢出的大量連續(xù)被動(dòng)丟包。從高層協(xié)議(如傳輸控制協(xié)議Transmit Control Protocol,TCP)的角度看,就是底層網(wǎng)絡(luò)發(fā)生了嚴(yán)重?fù)砣?br>[0004] 無線信道相對(duì)于有線信道具有窄帶寬、信道質(zhì)量不穩(wěn)定、移動(dòng)性等固有特征。而 TCP協(xié)議將無線信道的不穩(wěn)定性直觀理解為端到端環(huán)回時(shí)延(Round Trip Time,RTT)波動(dòng) 或報(bào)文段丟失。
[0005] 當(dāng)然,TCP協(xié)議本身具有一定的流量控制和擁塞恢復(fù)能力。當(dāng)TCP協(xié)議"感知"到 報(bào)文段丟失后,TCP的擁塞窗口會(huì)自適應(yīng)收縮,降低高層發(fā)包速率以應(yīng)對(duì)底層網(wǎng)絡(luò)擁塞。但 是,TCP的擁塞恢復(fù)是典型的"端算法",僅僅在終端設(shè)備(如UE/Server)中發(fā)揮作用。當(dāng)無 線信道環(huán)境發(fā)生劇烈變化或者可用無線資源由于更多競(jìng)爭(zhēng)者加入發(fā)生變化時(shí),位于Server 中的TCP響應(yīng)一般情況下都無法及時(shí)跟蹤這種變化,導(dǎo)致?lián)砣麩o法得到及時(shí)解決或者當(dāng)擁 塞解除后高層傳輸速率無法及時(shí)恢復(fù)的"TCP遲滯"特性。
[0006] 主動(dòng)隊(duì)列管理(Active Queue Management, AQM)是一種解決"TCP遲滯"的有效方 案,算法一般在傳輸瓶頸的網(wǎng)元節(jié)點(diǎn)中實(shí)現(xiàn)。優(yōu)點(diǎn)是簡(jiǎn)單易行,缺點(diǎn)是主動(dòng)丟包在一些場(chǎng)景 中可能導(dǎo)致丟包率急劇上升,降低傳輸效率。而導(dǎo)致性能下降的根本原因在于,TCP和AQM 這兩種擁塞算法之間無法默契配合,嚴(yán)重時(shí)出現(xiàn)互相制約。但TCP和AQM算法本身分布在 不同的網(wǎng)絡(luò)設(shè)備中,處于各自為戰(zhàn)狀態(tài),缺乏協(xié)同能力。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明要解決的技術(shù)問題是提供一種隊(duì)列管理方法及裝置,以解決現(xiàn)有擁塞解決 方案不合理的問題。
[0008] 為解決上述技術(shù)問題,本發(fā)明提供了一種隊(duì)列管理方法,該方法包括:
[0009] 監(jiān)控隊(duì)列緩存狀態(tài);
[0010] 當(dāng)隊(duì)列緩存數(shù)量超過擁塞預(yù)警門限的時(shí)間超過預(yù)定時(shí)長(zhǎng)后,開始執(zhí)行策略丟包。
[0011] 進(jìn)一步地,所述隊(duì)列緩存數(shù)量超過擁塞預(yù)警門限且持續(xù)預(yù)定時(shí)長(zhǎng)指隊(duì)列緩存數(shù)量 超過擁塞預(yù)警門限的單次持續(xù)時(shí)長(zhǎng)或多次持續(xù)累計(jì)時(shí)長(zhǎng)超過預(yù)定時(shí)長(zhǎng)。
[0012] 為解決上述技術(shù)問題,本發(fā)明還提供了一種隊(duì)列管理裝置,該裝置包括:
[0013] 監(jiān)控模塊,用于監(jiān)控隊(duì)列緩存狀態(tài);
[0014] 丟包控制模塊,用于當(dāng)隊(duì)列緩存數(shù)量超過擁塞預(yù)警門限的時(shí)間超過預(yù)定時(shí)長(zhǎng)后, 開始執(zhí)行策略丟包。
[0015] 進(jìn)一步地,所述隊(duì)列緩存數(shù)量超過擁塞預(yù)警門限且持續(xù)預(yù)定時(shí)長(zhǎng)指隊(duì)列緩存數(shù)量 超過擁塞預(yù)警門限的單次持續(xù)時(shí)長(zhǎng)或多次持續(xù)累計(jì)時(shí)長(zhǎng)超過預(yù)定時(shí)長(zhǎng)。
[0016] 相較于現(xiàn)有技術(shù),本發(fā)明隊(duì)列管理方法和裝置通過監(jiān)控隊(duì)列緩存狀態(tài),并在隊(duì)列 緩存數(shù)量超過擁塞預(yù)警門限的時(shí)間超過預(yù)定時(shí)長(zhǎng)后,才開始執(zhí)行策略丟包。在一定程度上 解決TCP和AQM "各自為政"的無序狀態(tài),在不增加額外測(cè)量和協(xié)議信令的前提下,通過設(shè) 置"觀察窗"(即預(yù)定時(shí)長(zhǎng))對(duì)無線擁塞進(jìn)行早期預(yù)測(cè)并評(píng)估TCP的擁塞恢復(fù)能力,根據(jù)評(píng) 估和預(yù)測(cè)結(jié)果協(xié)同調(diào)整隊(duì)列管理方案,降低未來發(fā)生嚴(yán)重?fù)砣母怕?,?shí)現(xiàn)了 TCP與AQM之 間的協(xié)同,為一種協(xié)同隊(duì)列管理(Cooperate Queue Management, CQM)的方式。
【附圖說明】
[0017] 圖1為本發(fā)明隊(duì)列管理方法實(shí)施例1的示意圖;
[0018] 圖2為本發(fā)明"運(yùn)行觀察期"主動(dòng)管理策略示意圖;
[0019] 圖3為本發(fā)明隊(duì)列管理方法實(shí)施例2的示意圖;
[0020] 圖4為基于實(shí)施例2的應(yīng)用實(shí)例1的TK意圖;
[0021] 圖5為應(yīng)用實(shí)施例2和圖4流程的動(dòng)態(tài)實(shí)施效果示意圖;
[0022] 圖6為本發(fā)明隊(duì)列管理方法實(shí)施例3的示意圖;
[0023] 圖7為基于實(shí)施例3的應(yīng)用實(shí)例2的不意圖;
[0024] 圖8為應(yīng)用實(shí)施例2和圖7流程的動(dòng)態(tài)實(shí)施效果示意圖;
[0025] 圖9為本發(fā)明隊(duì)列管理方法實(shí)施例4的示意圖;
[0026] 圖10至圖12為三種定時(shí)器自身狀態(tài)轉(zhuǎn)移的條件示意圖;
[0027] 圖13為二種定時(shí)器的動(dòng)態(tài)變化TK意圖;
[0028] 圖14為基于實(shí)施例4的應(yīng)用實(shí)例3的TJK意圖;
[0029] 圖15為應(yīng)用實(shí)施例4和圖14流程的動(dòng)態(tài)實(shí)施效果示意圖;
[0030] 圖16至圖18為本發(fā)明隊(duì)列管理裝置實(shí)施例的模塊結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0031] 實(shí)施例1
[0032] 本發(fā)明隊(duì)列管理方法實(shí)施例1,如圖1所示,該方法包括:
[0033] 步驟101 :監(jiān)控隊(duì)列緩存狀態(tài);
[0034] 步驟102 :當(dāng)隊(duì)列緩存數(shù)量超過擁塞預(yù)警門限的時(shí)間超過預(yù)定時(shí)長(zhǎng)后,開始執(zhí)行 策略丟包。
[0035] 進(jìn)一步地,所述隊(duì)列緩存數(shù)量超過擁塞預(yù)警門限且持續(xù)預(yù)定時(shí)長(zhǎng)指隊(duì)列緩存數(shù)量 超過擁塞預(yù)警門限的單次持續(xù)時(shí)長(zhǎng)或多次持續(xù)累計(jì)時(shí)長(zhǎng)超過預(yù)定時(shí)長(zhǎng)。
[0036] 當(dāng)隊(duì)列緩存數(shù)量超過擁塞預(yù)警門限的時(shí)間超過預(yù)定時(shí)長(zhǎng)(本文中也稱為"喚醒觀 察期")表明無線網(wǎng)絡(luò)側(cè)監(jiān)測(cè)到TCP的擁塞恢復(fù)機(jī)制無法解決的擁塞問題發(fā)生,即達(dá)到了真 正的擁塞,這種情況下才開始執(zhí)行策略丟包,以解決該擁塞。
[0037] 上述實(shí)施例1在不增加額外測(cè)量和協(xié)議信令的前提下,通過設(shè)置"觀察窗"(即預(yù) 定時(shí)長(zhǎng))對(duì)無線擁塞進(jìn)行早期預(yù)測(cè)并評(píng)估TCP的擁塞恢復(fù)能力,根據(jù)評(píng)估和預(yù)測(cè)結(jié)果協(xié)同 調(diào)整隊(duì)列管理方案,降低未來發(fā)生嚴(yán)重?fù)砣母怕剩瑢?shí)現(xiàn)了 TCP與AQM之間的協(xié)同,為一種 協(xié)同隊(duì)列管理(Cooperate Queue Management, CQM)的方式。
[0038] 具體的,當(dāng)CQM處于"運(yùn)行觀察期"時(shí),通過設(shè)置類似RED算法的CQM控制區(qū)(概 率丟棄區(qū))門限來控制主動(dòng)丟包,如下圖2所示:
[0039] 其中CQM控制區(qū)是緩存區(qū)域的一個(gè)連續(xù)子集,一般情況下丟包區(qū)上限為緩存容量 上限,丟包區(qū)下限由參數(shù)"CQM丟包的隊(duì)列長(zhǎng)度下限"確定。
[0040] CQM去激活態(tài):當(dāng)緩存量低于CQM控制區(qū)下限即擁塞預(yù)警門限或緩存量超過擁塞 預(yù)警門限的時(shí)間但未超過預(yù)定時(shí)長(zhǎng)時(shí),為CQM去激活態(tài),無條件接納到達(dá)的任意IP數(shù)據(jù) 報(bào);
[0041] CQM激活態(tài):當(dāng)緩存量高于CQM控制區(qū)下限(即擁塞預(yù)警門限)且超過預(yù)定時(shí)長(zhǎng) 后,進(jìn)入CQM激活態(tài),此時(shí)根據(jù)緩存隊(duì)列長(zhǎng)度(例如rocp中待處理的IP數(shù)據(jù)報(bào)文量),通過 AQM丟包概率曲線進(jìn)行選擇性丟棄。
[0042] 一種典型的線性RED算法丟包概率曲線為:
[0044] 其中High為CQM控制區(qū)上限(即為緩存容量上限);Low為丟包區(qū)下限,由參數(shù) "CQM丟包隊(duì)列長(zhǎng)度下限"控制;BO為當(dāng)前緩存隊(duì)列實(shí)際長(zhǎng)度。
[0045] 設(shè)置的擁塞預(yù)警門限一般大于丟包區(qū)下限。
[0046] 另外,可通過自適應(yīng)調(diào)整"觀察窗",提升TCP和AQM之間的互相協(xié)同能力。具體地, 從開始執(zhí)行丟包至隊(duì)列緩存數(shù)量再次超過擁塞預(yù)警門限的時(shí)長(zhǎng)小于第一預(yù)定時(shí)間,則減少 所述喚醒定時(shí)器的時(shí)長(zhǎng);如從開始執(zhí)行丟包至隊(duì)列緩存數(shù)量再次超過擁塞預(yù)警門限的時(shí)長(zhǎng) 大于第二預(yù)定時(shí)間,則增加所述喚醒定時(shí)器的時(shí)長(zhǎng)。
[0047] 進(jìn)一步地,當(dāng)擁塞解決或者TCP擁塞恢復(fù)能力提升后及時(shí)退出主動(dòng)丟包策略。
[0048] 為了實(shí)現(xiàn)對(duì)隊(duì)列緩存狀態(tài)的監(jiān)控,可以采用定時(shí)器方式,具體地,本發(fā)明實(shí)現(xiàn)方案 設(shè)計(jì)以下配置參數(shù):
[0049]
[0050] 以下根據(jù)設(shè)置的定時(shí)器的,給出多個(gè)實(shí)施例:
[0051] 實(shí)施例2
[0052] 本發(fā)明隊(duì)列管理方法實(shí)施例2中僅設(shè)置喚醒定時(shí)器,如圖3所示,該方法包括:
[0053] 步驟301 :設(shè)置喚醒定時(shí)器及喚醒定時(shí)器時(shí)長(zhǎng);
[0054] 步驟302 :根據(jù)隊(duì)列緩存狀態(tài)調(diào)整所述喚醒定時(shí)器的狀態(tài);
[0055] 其中,當(dāng)隊(duì)列緩存數(shù)量上升至大于所述擁塞預(yù)警門限時(shí),啟動(dòng)所述喚醒定時(shí)器;所 述喚醒定時(shí)器運(yùn)行期間,所述隊(duì)列緩存數(shù)量下降至小于所述擁塞預(yù)警門限時(shí),廢棄已啟動(dòng) 的喚醒定時(shí)器;
[0056] 步驟303 :監(jiān)控所述喚醒定時(shí)器的狀態(tài);
[0057] 以上步驟301至303實(shí)現(xiàn)了對(duì)隊(duì)列緩存狀態(tài)的監(jiān)控;具體地,可周期和/或事件觸 發(fā)隊(duì)列緩存狀態(tài)尤其是隊(duì)列緩存數(shù)量的監(jiān)控操作,本文所說的所述事件包括數(shù)據(jù)包到達(dá)和 數(shù)據(jù)包發(fā)送。
[0058] 步驟304 :當(dāng)所述喚醒定時(shí)器溢出后,開始執(zhí)行策略丟包。
[0059] 當(dāng)所述喚醒定時(shí)器溢出時(shí),認(rèn)為隊(duì)列緩存數(shù)量超過擁塞預(yù)警門限的時(shí)間超過預(yù)定 時(shí)長(zhǎng)。
[0060] 步驟305 :當(dāng)所述隊(duì)列緩存數(shù)量下降至小于所述擁塞預(yù)警門限時(shí),停止執(zhí)行丟包 策略。
[0061] 可選地,該實(shí)施例還包括定時(shí)器時(shí)長(zhǎng)調(diào)整步驟,其中所述喚醒定時(shí)