一種基于mptcp的擁塞控制方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)傳輸技術(shù)領(lǐng)域,尤其涉及一種基于MPTCP的擁塞控制方法及 裝置。
【背景技術(shù)】
[0002] 如今網(wǎng)絡(luò)技術(shù)在飛速的發(fā)展,傳統(tǒng)TCP協(xié)議開始逐漸暴露出不能適應(yīng)發(fā)展的局限 性。傳統(tǒng)TCP協(xié)議在網(wǎng)絡(luò)中流量不斷地增加時(shí),將所有的流量限制在單一路徑上傳輸,沒能 有效的利用網(wǎng)絡(luò)資源。單一路徑的TCP傳輸已經(jīng)不能完全的滿足現(xiàn)代高速傳輸。MPTCP (MultiPath Transport Control Protocol,多路徑傳輸協(xié)議)是對(duì)傳統(tǒng)TCP的一種延伸,在 通信源和目的節(jié)點(diǎn)之間通過多條路徑高效的傳輸數(shù)據(jù),提供端到端可靠、有序的快速數(shù)據(jù) 傳輸。比較于傳統(tǒng)的TCP,MPTCP協(xié)議有著兩個(gè)顯著的特點(diǎn):1)改進(jìn)網(wǎng)絡(luò)的吞吐量。由于MPTCP 同時(shí)采用多條路徑傳輸數(shù)據(jù),在量上增加了網(wǎng)絡(luò)資源,因而傳輸了更多的數(shù)據(jù)流量,也就提 高了網(wǎng)絡(luò)的吞吐量。2)提供更靈活、可靠的服務(wù),且增強(qiáng)了網(wǎng)絡(luò)魯棒性。因?yàn)樵趥鬏攲?,?shù)據(jù) 可以通過多條路徑傳輸,當(dāng)一條路徑上傳輸過程中連接失敗,而該連接的數(shù)據(jù)仍在其他可 用路徑上保持傳輸,且MPTCP路徑管理單元將立即選擇一條可用路徑來轉(zhuǎn)移鏈路失敗的數(shù) 據(jù),這就避免了傳輸終止。MPTCP協(xié)議也可以與現(xiàn)有的TCP協(xié)議完全兼容(自動(dòng)協(xié)商的)。
[0003] 目前,MPTCP的擁塞控制就是對(duì)TCP的一個(gè)擴(kuò)展,采用的擁塞控制策略是:用于傳輸 的多條子流都有一個(gè)各自的擁塞窗口,每條子流分別根據(jù)該條路徑上收到的確認(rèn)數(shù)據(jù)包, 或者是檢測(cè)到的丟包相應(yīng)的增加和減少擁塞窗口,而對(duì)于窗口的具體的增加和減少取決于 所有子流路徑的擁塞窗口和回路時(shí)間。目前,MPTCP利用是否收到ACK作為擁塞判斷依據(jù),這 種方法簡(jiǎn)單但準(zhǔn)確度不高,因此,需要一種新型的擁塞控制方法。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明要解決的一個(gè)技術(shù)問題是提供一種基于MPTCP的擁塞控制方法 及系統(tǒng),能夠解決上述的問題。
[0005] -種基于MPTCP的擁塞控制方法,包括:建立MPTCP連接,并為所述MPTCP連接中的 每條TCP子流分配各自的緩存區(qū);對(duì)每條TCP子流的緩存區(qū)占用率進(jìn)行估算;根據(jù)所述緩存 區(qū)占用率確定所述TCP子流的擁塞等級(jí),并基于所述擁塞等級(jí)對(duì)所述TCP子流的傳輸速率進(jìn) 行調(diào)節(jié)。
[0006] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,進(jìn)一步的,所述為所述MPTCP連接中的每條TCP子流分 配各自的緩存區(qū)包括:為每條TCP子流分配的緩存區(qū)為:
[0008] 其中,Buffi為所述MPTCP連接的第i條TCP子流的大小,Buff total為所述MPTCP連接 的總緩存區(qū)大小,BWi為第i條TCP子流的帶寬,ΣBWi為所述MPTCP連接中的全部TCP子流的 總帶寬。
[0009]根據(jù)本發(fā)明的一個(gè)實(shí)施例,進(jìn)一步的,所述對(duì)每條TCP子流的緩存區(qū)占用率進(jìn)行估 算包括:采用增加指數(shù)加權(quán)移動(dòng)平均EffMA算法對(duì)每條TCP子流的緩存區(qū)占用長(zhǎng)度進(jìn)行估值, 每條TCP子流的緩存區(qū)占用長(zhǎng)度滿足:
[0011] 其中,邱#7胃為第i條TCP子流在當(dāng)前時(shí)刻的緩存區(qū)占用長(zhǎng)度,Suif V為第i條TCP 子流在上一時(shí)刻的緩存區(qū)占用長(zhǎng)度,P為緩存區(qū)大小計(jì)算參數(shù)。
[0012] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,進(jìn)一步的,根據(jù)所述緩存區(qū)占用率確定所述TCP子流的 擁塞等級(jí)包括:設(shè)置兩個(gè)擁塞等級(jí),分別為輕度擁塞和嚴(yán)重?fù)砣燃?jí);當(dāng)判斷
,則確定此T C P子流為輕度擁塞等級(jí);當(dāng)判斷 ,則確定此TCP子流為嚴(yán)重?fù)砣燃?jí);其中,α、β都為參數(shù),且0 < α < β < I ,Buffi為第i條TCP子流緩存區(qū)的長(zhǎng)度。
[0013] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,進(jìn)一步的,所述基于所述擁塞等級(jí)對(duì)所述TCP子流的傳 輸速率進(jìn)行調(diào)節(jié)包括:如果確定TCP子流為輕度擁塞等級(jí),則調(diào)節(jié)此TCP子流發(fā)送窗口大小 并滿足Wi=Wi- γ *wi;如果確定TCP子流為嚴(yán)重?fù)砣燃?jí),則調(diào)節(jié)此TCP子流發(fā)送窗口大小并 滿足
;如果確定TCP子流不為輕度擁塞等級(jí)和嚴(yán)重?fù)砣燃?jí),則調(diào)節(jié)此TCP 子流發(fā)送窗口大小并滿足:
[0015]其中,Wi是第i條TCP子流的發(fā)送窗口大小,r和δ為速率控制參數(shù),并且,〇〈 γ〈〇. 5, δ = η2,η為所述MPTCP連接中的TCP子流的個(gè)數(shù)。
[0016] 一種基于MPTCP的擁塞控制裝置,包括:緩存分配單元,用于建立MPTCP連接,并為 所述MPTCP連接中的每條TCP子流分配各自的緩存區(qū);緩存使用估算單元,用于對(duì)每條TCP子 流的緩存區(qū)占用率進(jìn)行估算;傳輸速率調(diào)節(jié)單元,用于根據(jù)所述緩存區(qū)占用率確定所述TCP 子流的擁塞等級(jí),并基于所述擁塞等級(jí)對(duì)所述TCP子流的傳輸速率進(jìn)行調(diào)節(jié)。
[0017]根據(jù)本發(fā)明的一個(gè)實(shí)施例,進(jìn)一步的,所述緩存分配單元為每條TCP子流分配的緩 存區(qū)為:
[0019]其中,Buffi為第i條TCP子流的大小,Buff total為所述MPTCP連接的總緩存區(qū)大小, BWi為第i條TCP子流的帶寬,Σ BWi為所述MPTCP連接中的全部TCP子流的總帶寬。
[0020]根據(jù)本發(fā)明的一個(gè)實(shí)施例,進(jìn)一步的,所述緩存使用估算單元,還用于采用增加指 數(shù)加權(quán)移動(dòng)平均EffMA算法對(duì)每條TCP子流的緩存區(qū)占用長(zhǎng)度進(jìn)行估值,每條TCP子流的緩存 區(qū)占用長(zhǎng)度滿足:
[0022] 其中,邱C為第i條TCP子流在當(dāng)前時(shí)刻的緩存區(qū)占用長(zhǎng)度,JuJfsi為第^TCP 子流在上一時(shí)刻的緩存區(qū)占用長(zhǎng)度,P為緩存區(qū)大小計(jì)算參數(shù)。
[0023] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,進(jìn)一步的,所述傳輸速率調(diào)節(jié)單元,還用于設(shè)置兩個(gè)擁 塞等級(jí),分別為輕度擁塞和嚴(yán)重?fù)砣燃?jí);當(dāng)判斷
則確定此 TCP子流為輕度擁塞等級(jí);當(dāng)判斷
時(shí),則確定此TCP子流為嚴(yán)重?fù)砣燃?jí); 其中,α、β都為參數(shù),且O < α < β < I,Buffi為第i條TCP子流緩存區(qū)的長(zhǎng)度。
[0024]根據(jù)本發(fā)明的一個(gè)實(shí)施例,進(jìn)一步的,所述傳輸速率調(diào)節(jié)單元,還用于如果確定 TCP子流為輕度擁塞等級(jí),則調(diào)節(jié)此TCP子流發(fā)送窗口大小并滿足Wi=Wi- γ *wi;如果確定 TCP子流為嚴(yán)重?fù)砣燃?jí),則調(diào)節(jié)此TCP子流發(fā)送窗口大小并滿足
:如果確 定TCP子流不為輕度擁塞等級(jí)和嚴(yán)重?fù)砣燃?jí),則調(diào)節(jié)此TCP子流發(fā)送窗口大小并滿足:
[0026]其中,Wi是第i條TCP子流的發(fā)送窗口大小,r和δ為速率控制參數(shù),并且,〇〈 γ〈〇. 5, δ = η2,η為所述MPTCP連接中的TCP子流的個(gè)數(shù)。
[0027]本發(fā)明的基于MPTCP的擁塞控制方法及裝置,為每條子流分割緩存區(qū),然后根據(jù)每 條子流緩存區(qū)使用比例精確的檢測(cè)出是否存在擁塞,并根據(jù)擁塞程度分級(jí)進(jìn)行流量調(diào)控, 同時(shí)兼顧MPTCP傳輸?shù)墓叫裕咕W(wǎng)絡(luò)吞吐量變化更平滑,提高了MPTCP的鏈路利用率、吞吐 量和健壯性。
【附圖說明】
[0028] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所 需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施 例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲 得其他的附圖。
[0029] 圖1為根據(jù)本發(fā)明的基于MPTCP的擁塞控制方法的一個(gè)實(shí)施例的流程示意圖;
[0030] 圖2為MPTCP擁塞控制場(chǎng)景的示意圖;
[0031 ]圖3為擁塞控制與吞吐量的關(guān)系示意圖;
[0032] 圖4為根據(jù)本發(fā)明的基于MPTCP的擁塞控制方法的另一個(gè)實(shí)施例的流程示意圖;
[0033] 圖5為根據(jù)本發(fā)明的基于MPTCP的擁塞控制方法的一個(gè)應(yīng)用場(chǎng)景示意圖;
[0034]圖6為MPTCP擁塞控制場(chǎng)景的另一示意圖;
[0035]圖7為根據(jù)本發(fā)明的基于MPTCP的擁塞控制裝置的一個(gè)實(shí)施例的示意圖。
【具體實(shí)施方式】
[0036]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整的描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0037]圖1為根據(jù)本發(fā)明的基于MPTCP的擁塞控制方法的一個(gè)實(shí)施例的流程示意圖,如圖 1所示:
[0038] 步驟101,建立MPTCP連接,并為MPTCP連接中的每條TCP子流分配各自的緩存區(qū)。
[0039] 步驟102,對(duì)每條TCP子流的緩存區(qū)占用率進(jìn)行估算。
[0040] 步驟103,根據(jù)緩存區(qū)占用率確定TCP子流的擁塞等級(jí),并基于擁塞等級(jí)對(duì)TCP子流 的傳輸速率進(jìn)行調(diào)節(jié)。
[0041] 在一個(gè)實(shí)施例中,為每條TCP子流分配的緩存區(qū)為:
[0043] Buffi為MPTCP連接的第i條TCP子流的大小,Buff tcltai為MPTCP連接的總緩存區(qū)大 小,BWi為第i條TCP子流的帶寬,Σ BWi為MPTCP連接中的全部TCP子流的總帶寬。
[0044]對(duì)每條TCP子流的緩存區(qū)占用率進(jìn)行估算可以采用多種方法,例如采用增加指數(shù) 加權(quán)移動(dòng)平均EWM算法對(duì)每條TCP子流的緩存區(qū)占用長(zhǎng)度進(jìn)行估值,每條TCP子流的緩存區(qū) 占用長(zhǎng)度滿足:
[0046] 為第i條TCP子流在當(dāng)前時(shí)刻的緩存區(qū)占用長(zhǎng)度,為第i條TCP子流 在上一時(shí)刻的緩存區(qū)占用長(zhǎng)度,P為緩存區(qū)大小計(jì)算參數(shù)。
[0047]緩存區(qū)的使用率情況能直接反映出該條線路的擁塞情況,但是MPTCP是多條子流 共用一個(gè)緩存區(qū),所以要對(duì)單條子流進(jìn)行精確的擁