亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方法及裝置的制造方法

文檔序號:10660749閱讀:457來源:國知局
一種基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方法及裝置的制造方法
【專利摘要】本發(fā)明提供了一種基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方法及裝置,所述方法包括:發(fā)送端為傳輸控制協(xié)議TCP層中待發(fā)送的數(shù)據(jù)包增加預(yù)設(shè)長度的頭部信息位,增加的頭部信息位包括:編碼信息字段;對于一個(gè)擁塞窗口單元,當(dāng)發(fā)送端根據(jù)當(dāng)前鏈路丟包率檢測出當(dāng)前超時(shí)概率超過預(yù)設(shè)閾值時(shí),發(fā)送端將當(dāng)前擁塞窗口中的w1個(gè)原始數(shù)據(jù)包進(jìn)行編碼生成C1個(gè)補(bǔ)償編碼包,并將處理后的C1個(gè)補(bǔ)償編碼包發(fā)送至接收端,C1是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框架模型確定的。本發(fā)明能夠根據(jù)實(shí)時(shí)的網(wǎng)絡(luò)環(huán)境產(chǎn)生主動(dòng)編碼補(bǔ)償,降低TCP流超時(shí)概率,且不需要對交換機(jī),網(wǎng)絡(luò)接口等硬件設(shè)備進(jìn)行修改,易于部署實(shí)施。
【專利說明】
一種基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方 法及裝置。
【背景技術(shù)】
[0002] 數(shù)據(jù)中心作為云計(jì)算和因特網(wǎng)服務(wù)的基礎(chǔ)設(shè)施網(wǎng)絡(luò),它提供大量集中的計(jì)算和存 儲(chǔ)資源。數(shù)據(jù)中心網(wǎng)絡(luò)是一個(gè)高帶寬(Gbps級)低時(shí)延(毫秒級)的大型網(wǎng)絡(luò),它面向的應(yīng)用 大多是擁有嚴(yán)格時(shí)延要求的云計(jì)算以及因特網(wǎng)服務(wù)應(yīng)用。在數(shù)據(jù)中心網(wǎng)絡(luò)中的數(shù)據(jù)流,通 常被分成兩類:時(shí)延敏感的短流,以及吞吐量敏感的長流。對數(shù)據(jù)中心中時(shí)延敏感的應(yīng)用服 務(wù)來說時(shí)延性能將極大地影響企業(yè)的收益。亞馬遜的研究表明流的完成時(shí)延每增加一百毫 秒,公司就將虧損百分之一的利潤。對于電子交易平臺,完成時(shí)間增加5ms,則企業(yè)將損失約 4百萬美元。TCP的AIMD擁塞控制方案不可避免的會(huì)造成相當(dāng)高的丟包率,而基于丟包的丟 包恢復(fù)策略并不能滿足數(shù)據(jù)中心如此嚴(yán)格的時(shí)延要求。谷歌數(shù)據(jù)中心的測量顯示,相對于 沒有丟包的流,丟包會(huì)造成流的完成時(shí)間擴(kuò)漲五倍。而其中77%的丟包都是通過超時(shí)重傳 完成的。
[0003] TCP是目前數(shù)據(jù)中心中最主要的傳輸協(xié)議。然而,最初為普通有線網(wǎng)絡(luò)設(shè)計(jì)的TCP, 在數(shù)據(jù)中心中卻存在吞吐量和時(shí)延等性能方面的許多不足。TCP基于丟包的擁塞檢測機(jī)制 以及基于重傳的丟包恢復(fù)機(jī)制都面臨著極大的挑戰(zhàn)。TCP將一切丟包都誤認(rèn)為是擁塞的標(biāo) 志,從而導(dǎo)致吞吐量大幅下降。另外,TCP的擁塞檢測時(shí)延和重傳恢復(fù)時(shí)延都不能滿足數(shù)據(jù) 中心中嚴(yán)格的時(shí)延要求。TCP超時(shí)時(shí)鐘通常為200毫秒,這個(gè)時(shí)間對于數(shù)據(jù)中心中的時(shí)延敏 感型應(yīng)用來說,是不能容忍的。數(shù)據(jù)中心中普遍存在TCP incast問題。在incast模式下,數(shù) 據(jù)被分成多個(gè)塊,進(jìn)行多對一傳輸,每一個(gè)傳輸都采用獨(dú)立的TCP。只有所有的TCP流都完成 了當(dāng)前塊的傳輸任務(wù),才能進(jìn)行下一個(gè)塊的傳輸。一旦有一條TCP流出現(xiàn)超時(shí),即便其他TCP 流都完成了當(dāng)前塊的傳輸,也必須繼續(xù)等待這條超時(shí)的TCP流。當(dāng)大流占據(jù)帶寬資源時(shí),時(shí) 延敏感的小流常常遭遇超時(shí)問題。而單純的減少超時(shí)時(shí)鐘間隔又會(huì)帶來過度重傳等問題。
[0004] 所以提升數(shù)據(jù)中心中TCP傳輸性能的關(guān)鍵在于改善超時(shí)問題。網(wǎng)絡(luò)編碼TCP作為傳 輸層前向糾錯(cuò)技術(shù)在改善TCP丟包超時(shí)導(dǎo)致的一系列網(wǎng)絡(luò)傳輸性能下降問題上極具潛力。 然而,數(shù)據(jù)中心具有高帶寬低時(shí)延的特性,其對編碼開銷有著嚴(yán)格的要求。
[0005] 為了提高TCP在數(shù)據(jù)中心網(wǎng)絡(luò)中的吞吐量和時(shí)延性能,許多避免或者緩解超時(shí)發(fā) 生的方案被提出。DCTCP采用顯示擁塞通知以在交換機(jī)上維持一個(gè)比較小的數(shù)據(jù)包隊(duì)列來 避免丟包超時(shí)。ICTCP動(dòng)態(tài)調(diào)整通告窗口來控制發(fā)送端發(fā)送速率以控制鏈路擁塞,從而降低 超時(shí)的發(fā)生。ICaT采用入網(wǎng)控制方案來限定進(jìn)入網(wǎng)絡(luò)的流量不超過網(wǎng)絡(luò)容量。然而,這些傳 輸層的解決方案,均無法較好地降低TCP流超時(shí)概率,包括DCTCP,ICTCP以及ICaT都需要依 賴于對交換機(jī)或者網(wǎng)絡(luò)接口的改變,其部署難度開銷太大。與這些方案相比,冗余傳輸方案 在部署以及系統(tǒng)開銷的優(yōu)勢使得其成為了一個(gè)新的研究熱點(diǎn)。
[0006] 針對TCP超時(shí)的冗余傳輸方案可以劃分為兩大類:單純?nèi)哂郥CP傳輸以及網(wǎng)絡(luò)編碼 冗余TCP傳輸。單純?nèi)哂郥CP傳輸是指對原始包或者流進(jìn)行復(fù)制傳輸。對于數(shù)據(jù)中心而言,對 于小流而言,對時(shí)延的需求比節(jié)約帶寬更加重要。Repflow和More-is-less通過對小流進(jìn)行 復(fù)制傳輸以減小小流的時(shí)延。GIP對數(shù)據(jù)塊尾的最后一個(gè)數(shù)據(jù)包進(jìn)行重傳以將超時(shí)恢復(fù)轉(zhuǎn) 換為快速重傳恢復(fù)。然而,單純?nèi)哂郥CP傳輸方案只能恢復(fù)特定的丟包,即那些有機(jī)會(huì)被冗 余傳輸?shù)臄?shù)據(jù)包。
[0007] 而對于網(wǎng)絡(luò)編碼冗余TCP傳輸方案來說,一個(gè)編碼包將多個(gè)原始包通過異或操作 生成一個(gè)隨機(jī)線性組合,接收端只需要接收到一定數(shù)量的線性無關(guān)的數(shù)據(jù)包,就可以對任 意的參與編碼的包,而不用關(guān)心具體哪個(gè)包丟了。在丟包恢復(fù)方面更加靈活,更加有效。 Google在其數(shù)據(jù)中心網(wǎng)絡(luò)中采用線性網(wǎng)絡(luò)編碼冗余TCP方案Corrective。Corrective每個(gè) 擁塞窗口增加一個(gè)冗余編碼包發(fā)出,接收端可以恢復(fù)任意單個(gè)丟包,而不需要額外的丟包 檢測時(shí)延以及重傳時(shí)延。
[0008] 然而,由于Corrective的冗余度是固定的,對于多余一個(gè)丟包,它是不能進(jìn)行有效 的丟包恢復(fù)的。對于網(wǎng)絡(luò)傳輸狀態(tài)的無感知性局限了它只能對單個(gè)丟包進(jìn)行恢復(fù)。

【發(fā)明內(nèi)容】

[0009] 針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供一種基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方 法及裝置,能夠根據(jù)實(shí)時(shí)的網(wǎng)絡(luò)環(huán)境產(chǎn)生主動(dòng)編碼補(bǔ)償,降低TCP流超時(shí)概率,且不需要對 交換機(jī),網(wǎng)絡(luò)接口等硬件設(shè)備進(jìn)行修改,易于部署實(shí)施。
[0010] 為解決上述技術(shù)問題,本發(fā)明提供以下技術(shù)方案:
[0011] 第一方面,本發(fā)明提供了一種基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方法,包括:
[0012] 發(fā)送端為傳輸控制協(xié)議TCP層中待發(fā)送的數(shù)據(jù)包增加預(yù)設(shè)長度的頭部信息位,增 加的頭部信息位包括:編碼信息字段;其中,所述編碼信息字段包括解碼提示位base、編碼 指示位n、編碼系數(shù)、參與編碼的原始數(shù)據(jù)包的序列號;所述base表示不再參與編碼的原始 數(shù)據(jù)包的最大序列號;n = 0表示該數(shù)據(jù)包為原始數(shù)據(jù)包,n>0表示該數(shù)據(jù)包為補(bǔ)償編碼包, 其中,η表示該補(bǔ)償編碼包中包含的原始數(shù)據(jù)包的數(shù)目;
[0013] 發(fā)送端將傳輸控制協(xié)議TCP層中待發(fā)送的原始數(shù)據(jù)包的編碼信息字段中的解碼提 示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的最大序列號,以及將編碼指示位η設(shè)置為0,并將設(shè)置 好的原始數(shù)據(jù)包按照預(yù)設(shè)擁塞控制策略發(fā)送至接收端;
[0014] 對于一個(gè)擁塞窗口單元,當(dāng)發(fā)送端根據(jù)當(dāng)前鏈路丟包率檢測出當(dāng)前超時(shí)概率超過 預(yù)設(shè)閾值時(shí),發(fā)送端將當(dāng)前擁塞窗口中的奶個(gè)原始數(shù)據(jù)包進(jìn)行編碼生成&個(gè)補(bǔ)償編碼包,并 將每個(gè)補(bǔ)償編碼包的編碼信息字段中的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的最大 序列號,將編碼指示位η設(shè)置為參與編碼的原始數(shù)據(jù)包的個(gè)數(shù)奶,以及將編碼用到的編碼系 數(shù)、參與編碼的原始數(shù)據(jù)包的序列號加入至相應(yīng)補(bǔ)償編碼包的編碼信息字段中,并將處理 后的&個(gè)補(bǔ)償編碼包發(fā)送至所述接收端;
[0015] 其中,所述補(bǔ)償編碼包的個(gè)數(shù)Q是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框架 模型確定的。
[0016] 優(yōu)選地,所述方法還包括:
[0017] 當(dāng)發(fā)送端接收到的由接收端發(fā)送的應(yīng)答ACK中帶有丟包數(shù)d時(shí),發(fā)送端根據(jù)丟包數(shù) d獲取當(dāng)前新的丟包數(shù)cUw;其中,所述應(yīng)答ACK是接收端在對發(fā)送端發(fā)送的補(bǔ)償編碼包接收 失敗后向發(fā)送端發(fā)送的應(yīng)答消息;
[0018] 若cUw>0,則發(fā)送端將當(dāng)前擁塞窗口中的《2個(gè)原始數(shù)據(jù)包進(jìn)行編碼生成C2個(gè)補(bǔ)償 編碼包,并將每個(gè)補(bǔ)償編碼包的編碼信息字段中的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的 包的最大序列號,將編碼指示位η設(shè)置為參與編碼的原始數(shù)據(jù)包的個(gè)數(shù)《 2,以及將編碼用到 的編碼系數(shù)、參與編碼的原始數(shù)據(jù)包的序列號加入至相應(yīng)補(bǔ)償編碼包的編碼信息字段中, 并將處理后的C 2個(gè)補(bǔ)償編碼包發(fā)送至所述接收端,以及更新dnew=0;
[0019] 其中,所述補(bǔ)償編碼包的個(gè)數(shù)C2是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框架 模型確定的。
[0020] 優(yōu)選地,所述補(bǔ)償編碼包的個(gè)數(shù)&是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框 架模型確定的,包括:
[0021 ]根據(jù)下述優(yōu)化函數(shù)獲取補(bǔ)償編碼包的個(gè)數(shù)&:
[0022] Minimize C(t)Q(t)+Vpt(t)
[0023] 其中,pt(t)為李雅普諾夫優(yōu)化中的懲罰項(xiàng),pt(t)對應(yīng)超時(shí)概率,其中,
,P1為當(dāng)前丟包率;V為李雅普諾夫常數(shù)因 子;Q(t)為預(yù)設(shè)長度的虛擬緩沖區(qū)間在t時(shí)刻的剩余空間隊(duì)列;C(t)為李雅普諾夫中的t時(shí) 刻的最優(yōu)發(fā)送補(bǔ)償編碼包的數(shù)目。
[0024] 優(yōu)選地,所述補(bǔ)償編碼包的個(gè)數(shù)Q為小于或等于第一預(yù)設(shè)閾值的數(shù)值,所述第一 預(yù)設(shè)閾值的取值范圍為[0,5]。
[0025] 優(yōu)選地,所述補(bǔ)償編碼包的個(gè)數(shù)C2是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框 架模型確定的,包括:
[0026] 根據(jù)下述優(yōu)化函數(shù)獲取補(bǔ)償編碼包的個(gè)數(shù)C2:
[0027] Minimize C(t)Q(t)+Vpt(t)
[0028] 其中,pt(t)為李雅普諾夫優(yōu)化中的懲罰項(xiàng),pt(t)對應(yīng)超時(shí)概率,其中,
P2為當(dāng)前丟包率;V為李雅普諾夫 常數(shù)因子;Q(t)為預(yù)設(shè)長度的虛擬緩沖區(qū)間在t時(shí)刻的剩余空間隊(duì)列;C(t)為李雅普諾夫中 的t時(shí)刻的最優(yōu)發(fā)送補(bǔ)償編碼包的數(shù)目。
[0029] 優(yōu)選地,補(bǔ)償編碼包的個(gè)數(shù)C2為小于或等于第二預(yù)設(shè)閾值的數(shù)值,所述第二預(yù)設(shè) 閾值的取值范圍為[0,5]。
[0030] 第二方面,本發(fā)明還提供了一種基于上面所述方法的基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò) 性能優(yōu)化方法,包括:
[0031 ]接收由所述發(fā)送端發(fā)送的數(shù)據(jù)包;
[0032] 提取所述數(shù)據(jù)包的頭部信息中的編碼信息字段;
[0033] 根據(jù)提取的編碼信息字段中的base的大小,將序列號小于所述base的數(shù)據(jù)包從解 碼矩陣中移除;
[0034] 根據(jù)提取的編碼信息字段中的η的大小對所述數(shù)據(jù)包進(jìn)行處理:
[0035] 若η = 0,則將數(shù)據(jù)包加入解碼矩陣,并將數(shù)據(jù)包交由相應(yīng)的擁塞控制模塊進(jìn)行處 理以產(chǎn)生對應(yīng)的第一應(yīng)答消息,并將產(chǎn)生的第一應(yīng)答消息發(fā)送給發(fā)送端;
[0036] 若n>0,則根據(jù)編碼系數(shù)、參與編碼的數(shù)據(jù)包的序列號對數(shù)據(jù)包進(jìn)行解碼,當(dāng)數(shù)據(jù) 包被解碼解出時(shí),交由相應(yīng)的擁塞控制模塊進(jìn)行處理以產(chǎn)生對應(yīng)的第二應(yīng)答消息,并將產(chǎn) 生的第二應(yīng)答消息發(fā)送給所述發(fā)送端。
[0037] 優(yōu)選地,所述第二應(yīng)答消息為ACK消息,所述第二應(yīng)答消息中包含當(dāng)前丟包數(shù)d。
[0038] 第三方面,本發(fā)明還提供了一種基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化裝置,包括:
[0039] 添加單元,用于為傳輸控制協(xié)議TCP層中待發(fā)送的數(shù)據(jù)包增加預(yù)設(shè)長度的頭部信 息位,增加的頭部信息位包括:編碼信息字段;其中,所述編碼信息字段包括解碼提示位 base、編碼指示位n、編碼系數(shù)、參與編碼的原始數(shù)據(jù)包的序列號;所述base表示不再參與編 碼的原始數(shù)據(jù)包的最大序列號;n = 0表示該數(shù)據(jù)包為原始數(shù)據(jù)包,n>0表示該數(shù)據(jù)包為補(bǔ) 償編碼包,其中,η表示該補(bǔ)償編碼包中包含的原始數(shù)據(jù)包的數(shù)目;
[0040] 第一處理單元,用于將傳輸控制協(xié)議TCP層中待發(fā)送的原始數(shù)據(jù)包的編碼信息字 段中的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的最大序列號,以及將編碼指示位η設(shè)置 為〇,并將設(shè)置好的原始數(shù)據(jù)包按照預(yù)設(shè)擁塞控制策略發(fā)送;
[0041] 檢測單元,對于一個(gè)擁塞窗口單元,用于根據(jù)當(dāng)前鏈路丟包率檢測當(dāng)前超時(shí)概率 是否超過預(yù)設(shè)閾值;
[0042] 第二處理單元,用于在所述檢測單元檢測出當(dāng)前超時(shí)概率超過預(yù)設(shè)閾值時(shí),將當(dāng) 前擁塞窗口中的奶個(gè)原始數(shù)據(jù)包進(jìn)行編碼生成Ci個(gè)補(bǔ)償編碼包,并將每個(gè)補(bǔ)償編碼包的編 碼信息字段中的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的最大序列號,將編碼指示位η 設(shè)置為參與編碼的原始數(shù)據(jù)包的個(gè)數(shù)奶,以及將編碼用到的編碼系數(shù)、參與編碼的原始數(shù) 據(jù)包的序列號加入至相應(yīng)補(bǔ)償編碼包的編碼信息字段中,并將處理后的&個(gè)補(bǔ)償編碼包發(fā) 送;
[0043] 其中,所述補(bǔ)償編碼包的個(gè)數(shù)Q是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框架 模型確定的。
[0044] 第四方面,本發(fā)明還提供了一種基于上面所述裝置的基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò) 性能優(yōu)化裝置,包括:
[0045] 接收單元,用于接收如上面所述裝置發(fā)送的數(shù)據(jù)包;
[0046] 提取單元,用于提取所述接收單元接收的數(shù)據(jù)包的頭部信息中的編碼信息字段;
[0047] 移除單元,用于根據(jù)提取的編碼信息字段中的base的大小,將序列號小于所述 base的數(shù)據(jù)包從預(yù)設(shè)解碼矩陣中移除;
[0048]處理單元,用于根據(jù)提取的編碼信息字段中的η的大小對所述數(shù)據(jù)包進(jìn)行處理:
[0049] 若η = 0,則將數(shù)據(jù)包加入所述預(yù)設(shè)解碼矩陣,并將數(shù)據(jù)包交由相應(yīng)的擁塞控制模 塊進(jìn)行處理以產(chǎn)生對應(yīng)的第一應(yīng)答消息,并將產(chǎn)生的第一應(yīng)答消息發(fā)送給如上面所述裝 置;
[0050] 若η>0,則根據(jù)編碼系數(shù)、參與編碼的數(shù)據(jù)包的序列號對數(shù)據(jù)包進(jìn)行解碼,當(dāng)數(shù)據(jù) 包被解碼解出時(shí),交由相應(yīng)的擁塞控制模塊進(jìn)行處理以產(chǎn)生對應(yīng)的第二應(yīng)答消息,并將產(chǎn) 生的第二應(yīng)答消息發(fā)送給如上面所述的裝置。
[0051 ]由上述技術(shù)方案可知,本發(fā)明所述的基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方法, 能夠根據(jù)網(wǎng)絡(luò)狀況自適應(yīng)地確定編碼個(gè)數(shù),從而既可以有效降低超時(shí)發(fā)生,也能不浪費(fèi)編 碼開銷,從而提升了數(shù)據(jù)中心網(wǎng)絡(luò)傳輸性能。且該方法不需要對交換機(jī),網(wǎng)絡(luò)接口等硬件設(shè) 備進(jìn)行修改,易于部署實(shí)施。此外,該方法還是第一個(gè)將李雅普諾夫最優(yōu)化框架應(yīng)用到數(shù)據(jù) 中心網(wǎng)絡(luò)TCP編碼中,首次提出了如何將李雅普諾夫最優(yōu)化框架應(yīng)用到自適應(yīng)編碼補(bǔ)償中 以在編碼開銷和超時(shí)概率降低之間取得最優(yōu)平衡。
【附圖說明】
[0052] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明 的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù) 這些附圖獲得其他的附圖。
[0053] 圖1是本發(fā)明第一個(gè)實(shí)施例提供的基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方法的流 程圖;
[0054]圖2是新TCP頭部結(jié)構(gòu)示意圖;
[0055] 圖3是本發(fā)明第二個(gè)實(shí)施例提供的基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方法的流 程圖;
[0056] 圖4是本發(fā)明第三個(gè)實(shí)施例提供的基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方法的流 程圖;
[0057] 圖5是本發(fā)明第四個(gè)實(shí)施例提供的基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化裝置的結(jié) 構(gòu)示意圖;
[0058] 圖6是本發(fā)明第五個(gè)實(shí)施例提供的基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化裝置的結(jié) 構(gòu)示意圖。
【具體實(shí)施方式】
[0059] 為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0060] TCP傳輸模型中導(dǎo)致超時(shí)的有兩種情況:①一個(gè)擁塞窗口內(nèi)大多數(shù)包丟失,使得不 足三個(gè)重復(fù)ACK來觸發(fā)快速重傳;②當(dāng)已經(jīng)確定丟包后,重傳該包時(shí)又出現(xiàn)了數(shù)據(jù)包丟失。 本發(fā)明下述第一個(gè)實(shí)施例和第二個(gè)實(shí)施例分別針對上述兩種情況進(jìn)行了基于自適應(yīng)補(bǔ)償 編碼的網(wǎng)絡(luò)性能優(yōu)化處理。
[0061] 圖1示出了本發(fā)明第一個(gè)實(shí)施例提供的基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方法 的流程圖。參見圖1,本發(fā)明第一個(gè)實(shí)施例提供了一種基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化 方法,該網(wǎng)絡(luò)性能優(yōu)化方法主要針對于TCP層發(fā)送端的處理,該方法具體包括如下步驟:
[0062] 步驟101:發(fā)送端為傳輸控制協(xié)議TCP層中待發(fā)送的數(shù)據(jù)包增加預(yù)設(shè)長度的頭部信 息位,增加的頭部信息位包括:編碼信息字段;其中,所述編碼信息字段包括解碼提示位 base、編碼指示位n、編碼系數(shù)、參與編碼的原始數(shù)據(jù)包的序列號;所述base表示不再參與編 碼的原始數(shù)據(jù)包的最大序列號;n = 0表示該數(shù)據(jù)包為原始數(shù)據(jù)包,n>0表示該數(shù)據(jù)包為補(bǔ) 償編碼包,其中,η表示該補(bǔ)償編碼包中包含的原始數(shù)據(jù)包的數(shù)目。
[0063]在本步驟中,發(fā)送端為TCP層中的發(fā)送端。參見圖2,在原有的TCP頭部信息的基礎(chǔ) 之上,本實(shí)施例中的TCP層中的發(fā)送端為TCP層中待發(fā)送的數(shù)據(jù)包增加了預(yù)設(shè)長度的頭部信 息位,最后得到的頭部信息可以稱之為新TCP頭部結(jié)構(gòu)。其中,新增加的頭部信息位包括編 碼信息字段,該編碼信息字段包括:解碼提示位base、編碼指示位η、編碼系數(shù) (rl 0 , 3,,(),,)和參與編碼的原始數(shù)據(jù)包的序列號(Starti和Endi),Starti為參與編 碼的第i個(gè)包h的序列號,EncU為其最后一個(gè)字節(jié)相對于Start的長度。索引為0的包的序列 號已經(jīng)保存在了原TCP頭部中。
[0064]從圖2可見,新TCP頭部結(jié)構(gòu)包含兩部分。第一部分為原有TCP頭部結(jié)構(gòu),包含TCP端 口,序列號等信息。第二部分是編碼信息字段,類似于除去源端口地址和目的端口地址的 TCP/NC中的TCPNC頭部結(jié)構(gòu)。這部分包含了編碼相關(guān)的信息如base,n,編碼系數(shù),參與編碼 的包的序列號。其中,base為不再參與編碼的原始包的最大序列號,接收端解碼時(shí)不再需要 序列號小于base的原始數(shù)據(jù)包,可將序列號小于base的數(shù)據(jù)包從解碼矩陣中安全移除。 TCP/NC中對于編碼包C = ,3/為編碼系數(shù),η為編碼包中參與編碼的原始包Pi的數(shù) 目。
[0065] 步驟102:發(fā)送端將傳輸控制協(xié)議TCP層中待發(fā)送的原始數(shù)據(jù)包的編碼信息字段中 的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的最大序列號,以及將編碼指示位η設(shè)置為0, 并將設(shè)置好的原始數(shù)據(jù)包按照預(yù)設(shè)擁塞控制策略發(fā)送至接收端。
[0066] 步驟103:對于一個(gè)擁塞窗口單元,當(dāng)發(fā)送端根據(jù)當(dāng)前鏈路丟包率檢測出當(dāng)前超時(shí) 概率超過預(yù)設(shè)閾值(如40%)時(shí),發(fā)送端將當(dāng)前擁塞窗口中的奶個(gè)原始數(shù)據(jù)包進(jìn)行編碼生成 &個(gè)補(bǔ)償編碼包,并將每個(gè)補(bǔ)償編碼包的編碼信息字段中的解碼提示位base設(shè)置為當(dāng)前內(nèi) 存刪除的包的最大序列號,將編碼指示位η設(shè)置為參與編碼的原始數(shù)據(jù)包的個(gè)數(shù)奶,以及將 編碼用到的編碼系數(shù)、參與編碼的原始數(shù)據(jù)包的序列號加入至相應(yīng)補(bǔ)償編碼包的編碼信息 字段中,并將處理后的&個(gè)補(bǔ)償編碼包發(fā)送至所述接收端;其中,所述補(bǔ)償編碼包的個(gè)數(shù)Q 是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框架模型確定的。
[0067]上面已經(jīng)提到,TCP傳輸模型中導(dǎo)致超時(shí)的一種情況是:一個(gè)擁塞窗口內(nèi)大多數(shù)包 丟失,使得不足三個(gè)重復(fù)ACK來觸發(fā)快速重傳。
[0068]為了降低這種超時(shí)情況的發(fā)生的概率,設(shè)定對應(yīng)的編碼冗余包參數(shù)為Q。在這種 超時(shí)情況下,對于一個(gè)大小為w的TCP擁塞窗口,鏈路丟包率為p,冗余編碼包個(gè)數(shù)為&,則發(fā) 送端總共發(fā)送的數(shù)據(jù)包個(gè)數(shù)為w+Q,其中包含按照TCP擁塞控制算法發(fā)送的w個(gè)原始包,以 及CTCP額外發(fā)送的Q個(gè)補(bǔ)償編碼包。如果這w+Q個(gè)數(shù)據(jù)包在傳輸中出現(xiàn)大量丟失從而導(dǎo)致 只有少于三個(gè)數(shù)據(jù)包被接收端成功接收,那么快速重傳失敗,超時(shí)發(fā)生。所以這種情況下的 超時(shí)概率為:
[0070]在本步驟中,對于補(bǔ)償編碼包的個(gè)數(shù)&,直覺上,&可以隨著丟包率的增加而增加。 因?yàn)楦嗟娜哂喟鼘⒏行У匮a(bǔ)償丟包以及降低超時(shí)概率。然而,發(fā)送更多的補(bǔ)償編碼包 也會(huì)帶來更高的編碼開銷。編碼開銷主要包括編碼的計(jì)算開銷,以及編碼包的帶寬開銷。所 以這里存在著一個(gè)在降低超時(shí)概率與編碼開銷之間的平衡(T-C平衡)。
[0071 ]優(yōu)選地,本實(shí)施例采用李雅普諾夫最優(yōu)化方法來解決T-C平衡問題。李雅普諾夫最 優(yōu)化是指使用一個(gè)李雅普諾夫函數(shù)來優(yōu)化控制一個(gè)動(dòng)態(tài)系統(tǒng)。李雅普諾夫函數(shù)在控制理論 中得到廣泛應(yīng)用,以保證系統(tǒng)不同形式的穩(wěn)定性。在特定的時(shí)間,系統(tǒng)的狀態(tài)通常是由一個(gè) 多維向量描述。一個(gè)李諾夫函數(shù)是一個(gè)非負(fù)標(biāo)量這個(gè)多維狀態(tài)的函數(shù)。通常,當(dāng)系統(tǒng)向不受 歡迎的狀態(tài)移動(dòng)時(shí),該函數(shù)結(jié)果被定義為大。系統(tǒng)的穩(wěn)定性是通過采取控制措施,使李雅普 諾夫漂移像負(fù)向逼近。排隊(duì)網(wǎng)絡(luò)的最優(yōu)控制研究中,李諾夫諾夫漂移是一項(xiàng)重要的研究。一 個(gè)典型的目標(biāo)是穩(wěn)定所有的網(wǎng)絡(luò)隊(duì)列,同時(shí)優(yōu)化一些性能目標(biāo),如最大限度地減少平均能 耗或最大限度地提高平均吞吐量。
[0072] 為了將李雅普諾夫優(yōu)化方法應(yīng)用到本實(shí)施例所述的性能優(yōu)化方法中,假設(shè)發(fā)送端 每輪RTT生成λ(〇個(gè)編碼包,并以C(t)的速率發(fā)送這些編碼冗余包。有一個(gè)虛擬的緩沖區(qū) 間,容量固定為B個(gè)包。該緩沖在t時(shí)刻的剩余空間隊(duì)列即為Q(t)。直觀表現(xiàn)為該隊(duì)長越長冗 余包發(fā)得越多,對網(wǎng)絡(luò)造成的擁塞越大,但超時(shí)概率降得越低。根據(jù)李雅普諾夫最優(yōu)化框 架,最優(yōu)化目標(biāo)是:
[0073] Minimize C(t)Q(t)+Vpt(t)(公式一)
[0074] 其中,pt(t)為李雅普諾夫優(yōu)化中的懲罰項(xiàng),pt(t)對應(yīng)超時(shí)概率,其中,
,p2為當(dāng)前丟包率;V為李雅普諾夫 常數(shù)因子;Q(t)為預(yù)設(shè)長度的虛擬緩沖區(qū)間在t時(shí)刻的剩余空間隊(duì)列;C(t)為李雅普諾夫中 的t時(shí)刻的最優(yōu)發(fā)送補(bǔ)償編碼包的數(shù)目。
[0075]從上面公式一可以看出,這個(gè)式子是一個(gè)冪次方程,求解復(fù)雜,算法復(fù)雜度高???以通過泰勒展開成高階多項(xiàng)式,再采用牛頓最速下降法求解。牛頓最速下降法是一個(gè)搜索 算法,給一個(gè)初始值,然后沿負(fù)梯度方向搜索,不停地有規(guī)律地枚舉解,看附近有沒有更小 的,有就繼續(xù),沒有就結(jié)束了。這種方法不能保證全局最優(yōu),只能保證是局部最優(yōu),看初始值 的選取,如果初始值選的離最優(yōu)解比較近就是全局最優(yōu)。顯然,在網(wǎng)絡(luò)傳輸中最好是不要采 用復(fù)雜度如此高的算法,考慮到實(shí)際情況,權(quán)衡編解碼復(fù)雜度和計(jì)算的時(shí)延代價(jià)之后得到 一個(gè)結(jié)論,即每輪RTT,發(fā)送的冗余包數(shù)目不應(yīng)該大于一個(gè)常數(shù)C max。即采用在不大于Cmad9 范圍內(nèi)的簡單枚舉比較李雅普諾夫優(yōu)化方程的目標(biāo)值即可快速獲得近似解,使得編解碼和 整體計(jì)算復(fù)雜度非常低,保證算法簡單高效;例如可以將c max取5,10,15,...以觀察不同的 Cmax對實(shí)驗(yàn)結(jié)果的影響。直觀上可以得出,C max是一個(gè)很小的整數(shù)就能取得很好的效果。實(shí)驗(yàn) 可以證明該近似解距離最優(yōu)解非常近,近似比非常高。因此,在另一種優(yōu)選實(shí)施方式中,所 述補(bǔ)償編碼包的個(gè)數(shù)Ci為小于或等于第一預(yù)設(shè)閾值的數(shù)值,所述第一預(yù)設(shè)閾值的取值范圍 為[0,5]。
[0076] 從上面描述可知,本實(shí)施例提供了一種自適應(yīng)編碼補(bǔ)償?shù)木W(wǎng)絡(luò)性能優(yōu)化方法,該 方法對原有的TCP層的處理作出了改進(jìn),能夠根據(jù)網(wǎng)絡(luò)狀況自適應(yīng)地確定編碼個(gè)數(shù),從而既 可以有效降低超時(shí)發(fā)生,也能不浪費(fèi)編碼開銷,從而提升了數(shù)據(jù)中心網(wǎng)絡(luò)傳輸性能。且該方 法不需要對交換機(jī),網(wǎng)絡(luò)接口等硬件設(shè)備進(jìn)行修改,易于部署實(shí)施。此外,該方法還是第一 個(gè)將李雅普諾夫最優(yōu)化框架應(yīng)用到數(shù)據(jù)中心網(wǎng)絡(luò)TCP編碼中,首次提出了如何將李雅普諾 夫最優(yōu)化框架應(yīng)用到自適應(yīng)編碼補(bǔ)償中以在編碼開銷和超時(shí)概率降低之間取得最優(yōu)平衡。
[0077] 在本發(fā)明第二個(gè)實(shí)施例中,參見圖3,上述基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方 法除了包括步驟101-103之外,還包括如下步驟104-106。
[0078] 步驟104:當(dāng)發(fā)送端接收到的由接收端發(fā)送的應(yīng)答ACK中帶有丟包數(shù)d時(shí),發(fā)送端根 據(jù)丟包數(shù)d獲取當(dāng)前新的丟包數(shù)cUw。
[0079] 在本步驟中,所述應(yīng)答ACK是接收端在對發(fā)送端發(fā)送的補(bǔ)償編碼包接收失敗后向 發(fā)送端發(fā)送的應(yīng)答消息。
[0080] 當(dāng)發(fā)送端接收到的由接收端發(fā)送的應(yīng)答ACK中帶有丟包數(shù)d時(shí),發(fā)送端根據(jù)ACK返 回的丟包數(shù)d,計(jì)算出兩個(gè)相鄰應(yīng)答ACK所帶來的丟包數(shù)之差,即新出現(xiàn)的丟包數(shù)cU w。例如 上一次的丟包數(shù)為d',貝ljdnew=d_d'。
[0081] 步驟105:判斷(^^是否大于0,若是,則執(zhí)行步驟106。若否,則結(jié)束流程。
[0082] 步驟106:發(fā)送端將當(dāng)前擁塞窗口中的w2個(gè)原始數(shù)據(jù)包進(jìn)行編碼生成C2個(gè)補(bǔ)償編碼 包,并將每個(gè)補(bǔ)償編碼包的編碼信息字段中的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的 最大序列號,將編碼指示位η設(shè)置為參與編碼的原始數(shù)據(jù)包的個(gè)數(shù)w 2,以及將編碼用到的編 碼系數(shù)、參與編碼的原始數(shù)據(jù)包的序列號加入至相應(yīng)補(bǔ)償編碼包的編碼信息字段中,并將 處理后的&個(gè)補(bǔ)償編碼包發(fā)送至所述接收端,以及更新d new=0;其中,所述補(bǔ)償編碼包的個(gè) 數(shù)&是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框架模型確定的。
[0083] 上面已經(jīng)提到,TCP傳輸模型中導(dǎo)致超時(shí)的另一種情況是:當(dāng)已經(jīng)確定丟包后,重 傳該包時(shí)又出現(xiàn)了數(shù)據(jù)包丟失。
[0084]為了降低這種情況的發(fā)生的概率,設(shè)定對應(yīng)的編碼冗余包參數(shù)為C2。在這種超時(shí) 情況下,當(dāng)ACK帶回確定丟包數(shù)后,發(fā)送(:2個(gè)編碼冗余包進(jìn)行補(bǔ)償。當(dāng)TCP得知丟包發(fā)生時(shí), TCP擁塞控制會(huì)重傳丟失的數(shù)據(jù)包,如果重傳該包時(shí)又出現(xiàn)了包丟失,那么超時(shí)就會(huì)發(fā)生。 對于出現(xiàn)的丟包數(shù)為cU w,編碼擁塞窗口為w,丟包率為p,冗余編碼包個(gè)數(shù)為C2的情況,發(fā)送 端總共發(fā)送w+C 2個(gè)數(shù)據(jù)包,其中包含按照TCP擁塞控制算法發(fā)送的擁塞窗口內(nèi)的w個(gè)原始 包,以及額外發(fā)送的C2個(gè)補(bǔ)償編碼包。如果接收端可以成功接收到至少w個(gè)數(shù)據(jù)包,則所有 的w個(gè)原始數(shù)據(jù)包均可以被恢復(fù),TCP擁塞控制看不到包丟失。否則,TCP擁塞控制可以感知 到數(shù)據(jù)包丟失,從而導(dǎo)致超時(shí)發(fā)生。這是因?yàn)?,編碼技術(shù)只關(guān)心接收到的包的數(shù)目,而不關(guān) 心具體收到的是哪些數(shù)據(jù)包。所以,這種情況下的超時(shí)概率為:
[0086] 根據(jù)上面實(shí)施例提到的降低超時(shí)概率與編碼開銷之間需要平衡的原則,因此補(bǔ)償 編碼包的個(gè)數(shù)C2不可能無限大。因此在本實(shí)施例的一種優(yōu)選實(shí)施方式中,可以根據(jù)下述李 雅普諾夫優(yōu)化函數(shù)獲取補(bǔ)償編碼包的個(gè)數(shù)C 2:
[0087] Minimize C(t)Q(t)+Vpt(t)
[0088] 其中,pt(t)為李雅普諾夫優(yōu)化中的懲罰項(xiàng),pt(t)對應(yīng)超時(shí)概率,其中,
,p2為當(dāng)前丟包率;V為李雅普諾夫 常數(shù)因子;Q(t)為預(yù)設(shè)長度的虛擬緩沖區(qū)間在t時(shí)刻的剩余空間隊(duì)列;C(t)為李雅普諾夫中 的t時(shí)刻的最優(yōu)發(fā)送補(bǔ)償編碼包的數(shù)目。
[0089] 同上一個(gè)實(shí)施例,具體原理不再贅述。為了降低計(jì)算復(fù)雜度,降低時(shí)延,同時(shí)不影 響效果的情況下,在本實(shí)施例的另一種優(yōu)選實(shí)施方式中,所述補(bǔ)償編碼包的個(gè)數(shù)C 2為小于 或等于第二預(yù)設(shè)閾值的數(shù)值,所述第二預(yù)設(shè)閾值的取值范圍為[0,5]。
[0090] 從上面描述可知,相對于原來的TCP層,在本實(shí)施例提供的TCP層發(fā)送端共有三種 事件需要增加額外的處理。第一種事件為:按照TCP的擁塞控制發(fā)送原始數(shù)據(jù)包;第二種事 件為:按照TCP擁塞窗口滑動(dòng)方式更新?lián)砣翱趩卧?第三種事件為:接收來自接收端的數(shù) 據(jù)確認(rèn)ACK包。
[0091] 針對上述第一個(gè)實(shí)施例和第二個(gè)實(shí)施例所述的方法,下面給出一個(gè)具體實(shí)例進(jìn)行 解釋說明。
[0092] A)根據(jù)TCP的擁塞控制算法有原始數(shù)據(jù)包發(fā)送時(shí),發(fā)送端按如下步驟執(zhí)行:
[0093] ①在數(shù)據(jù)包頭部將base設(shè)為當(dāng)前內(nèi)存刪除的包的最大序列號。
[0094]②置數(shù)據(jù)包ACTCP頭部η字段為0,發(fā)出。
[0095] Β)新的擁塞窗口單元生成。
[0096] ①當(dāng)當(dāng)前超時(shí)概率超過預(yù)設(shè)閾值時(shí),根據(jù)李雅普諾夫最優(yōu)化模型,將當(dāng)前擁塞窗 口中的w個(gè)原始數(shù)據(jù)包生成&個(gè)補(bǔ)償編碼包。
[0097] ②將每個(gè)補(bǔ)償編碼包的ACTCP頭部base字段設(shè)為當(dāng)前內(nèi)存刪除的包的最大序列 號。以及字段η設(shè)為參與編碼的原始包數(shù)w。并將編碼系數(shù)以及參與編碼的包的信息和長度 加入頭部對應(yīng)字段。
[0098]③將這&個(gè)冗余編碼包發(fā)出。
[0099] C)當(dāng)收到一個(gè)來自ACK包時(shí),發(fā)送端按如下步驟執(zhí)行:
[0100] ①從ACK包中提出丟包數(shù)d,并計(jì)算新的丟包數(shù)cUw。
[0101] ②如果dnew大于0
[0102] I)根據(jù)李雅普諾夫最優(yōu)化模型,將當(dāng)前擁塞窗口中的w個(gè)原始數(shù)據(jù)包生成C2個(gè)補(bǔ) 償編碼包。
[0103] II)將每個(gè)補(bǔ)償編碼包的頭部base字段設(shè)為當(dāng)前內(nèi)存刪除的包的最大序列號。以 及字段η設(shè)為參與編碼的原始包數(shù)w。并將編碼系數(shù)以及參與編碼的包的信息和長度加入部 對應(yīng)字段。
[0104] III)將這&個(gè)冗余編碼包發(fā)出。
[0105] IV)將這些冗余編碼包發(fā)出,并更新dnew為0。
[0106] 本發(fā)明第三個(gè)實(shí)施例提供了一種基于上述第一或第二實(shí)施例所述的網(wǎng)絡(luò)性能優(yōu) 化方法的網(wǎng)絡(luò)性能優(yōu)化方法,該網(wǎng)絡(luò)性能優(yōu)化方法主要針對于接收端的處理,參見圖4,具 體包括如下步驟:
[0107] 步驟201:接收由所述發(fā)送端發(fā)送的數(shù)據(jù)包。
[0108] 在本步驟中,TCP層中的接收端接收由TCP層中的發(fā)送端發(fā)送的數(shù)據(jù)包。該數(shù)據(jù)包 為上述第一個(gè)實(shí)施例中由TCP層中的發(fā)送端發(fā)送的數(shù)據(jù)包。
[0109] 步驟202:提取所述數(shù)據(jù)包的頭部信息中的編碼信息字段。
[0110] 在本步驟中,由于接收到的數(shù)據(jù)包的頭部結(jié)構(gòu)中不但包含原始TCP頭部信息,還包 括新增加的編碼信息字段。而對接收到的數(shù)據(jù)包進(jìn)行解碼與否,與新增加的編碼信息字段 有關(guān),因此在接收到所述數(shù)據(jù)包之后,需要提取所述數(shù)據(jù)包的頭部信息中的編碼信息字段。
[0111] 步驟203:根據(jù)提取的編碼信息字段中的base的大小,將序列號小于所述base的數(shù) 據(jù)包從解碼矩陣中移除。
[0112] 在本步驟中,由于base為不再參與編碼的原始包的最大序列號,接收端解碼時(shí)不 再需要序列號小于base的原始數(shù)據(jù)包,可將序列號小于base的數(shù)據(jù)包從解碼矩陣中安全移 除。
[0113]步驟204:根據(jù)提取的編碼信息字段中的η的大小對所述數(shù)據(jù)包進(jìn)行處理。
[0114] 在本步驟中,若η = 0,則將數(shù)據(jù)包加入解碼矩陣,并將數(shù)據(jù)包交由相應(yīng)的擁塞控制 模塊進(jìn)行處理以產(chǎn)生對應(yīng)的第一應(yīng)答消息,并將產(chǎn)生的第一應(yīng)答消息發(fā)送給發(fā)送端;
[0115] 若η>0,則根據(jù)編碼系數(shù)、參與編碼的數(shù)據(jù)包的序列號對數(shù)據(jù)包進(jìn)行解碼,當(dāng)數(shù)據(jù) 包被解碼解出時(shí),交由相應(yīng)的擁塞控制模塊進(jìn)行處理以產(chǎn)生對應(yīng)的第二應(yīng)答消息,并將產(chǎn) 生的第二應(yīng)答消息發(fā)送給所述發(fā)送端。
[0116]優(yōu)選地,為了使得發(fā)送端能夠獲知當(dāng)前丟包數(shù)d,所述第二應(yīng)答消息為ACK消息,所 述第二應(yīng)答消息中包含當(dāng)前丟包數(shù)d。
[0117] 通過上面描述可知,在接收端,相對于原有TCP,有兩種事件需要增加額外的處理。 第一種事件為接收到來自發(fā)送端的數(shù)據(jù)包。與網(wǎng)絡(luò)編碼TCP方案TCP/NC中接收端只處理編 碼包不同的是本實(shí)施例中TCP接收端需要處理兩種類型的數(shù)據(jù)包:原始數(shù)據(jù)包,以及極少的 冗余編碼包。當(dāng)收到一個(gè)數(shù)據(jù)包時(shí),其具體操作詳見下述步驟A');第二種事件為,根據(jù)TCP 擁塞控制產(chǎn)生新的ACK時(shí),需要在ACK包中加入丟包數(shù)d,以利于發(fā)送端計(jì)算最優(yōu)的冗余補(bǔ)償 編碼包數(shù)。該丟包數(shù)即為當(dāng)前解碼矩陣行列數(shù)之差,具體操作詳見下述步驟B')。
[0118] 下面給出了一個(gè)具體實(shí)例,對上述步驟201-204進(jìn)行詳細(xì)解釋說明。
[0119] A')當(dāng)收到來自發(fā)送端的數(shù)據(jù)包時(shí),接收端按如下步驟執(zhí)行
[0120] ①提取頭部信息,并將序列號小于base的包從ACTCP解碼矩陣中移除。
[0121] ②如果η等于0,將該原始數(shù)據(jù)包加入解碼矩陣,并立即交付給擁塞控制部分處理 以產(chǎn)生對應(yīng)的ACK。
[0122] ③如果η大于0,執(zhí)行高斯消元解碼,如果有新的原始數(shù)據(jù)包被順序解出,將立即交 付給ACTCP擁塞控制部分處理。
[0123] Β')當(dāng)接收端有ACK要發(fā)送時(shí),按如下步驟執(zhí)行
[0124] ①在該ACK包中加入丟包數(shù)d返回給發(fā)送端。
[0125] 本發(fā)明第四個(gè)實(shí)施例提供了一種網(wǎng)絡(luò)性能優(yōu)化裝置,參見圖5,該裝置包括:
[0126] 添加單元51,用于為傳輸控制協(xié)議TCP層中待發(fā)送的數(shù)據(jù)包增加預(yù)設(shè)長度的頭部 信息位,增加的頭部信息位包括:編碼信息字段;其中,所述編碼信息字段包括解碼提示位 base、編碼指示位n、編碼系數(shù)、參與編碼的原始數(shù)據(jù)包的序列號;所述base表示不再參與編 碼的原始數(shù)據(jù)包的最大序列號;n = 0表示該數(shù)據(jù)包為原始數(shù)據(jù)包,n>0表示該數(shù)據(jù)包為補(bǔ) 償編碼包,其中,η表示該補(bǔ)償編碼包中包含的原始數(shù)據(jù)包的數(shù)目;
[0127] 第一處理單元52,用于將傳輸控制協(xié)議TCP層中待發(fā)送的原始數(shù)據(jù)包的編碼信息 字段中的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的最大序列號,以及將編碼指示位η設(shè) 置為〇,并將設(shè)置好的原始數(shù)據(jù)包按照預(yù)設(shè)擁塞控制策略發(fā)送;
[0128] 檢測單元53,對于一個(gè)擁塞窗口單元,用于根據(jù)當(dāng)前鏈路丟包率檢測當(dāng)前超時(shí)概 率是否超過預(yù)設(shè)閾值;
[0129] 第二處理單元54,用于在所述檢測單元檢測出當(dāng)前超時(shí)概率超過預(yù)設(shè)閾值時(shí),將 當(dāng)前擁塞窗口中的個(gè)原始數(shù)據(jù)包進(jìn)行編碼生成Ci個(gè)補(bǔ)償編碼包,并將每個(gè)補(bǔ)償編碼包的 編碼信息字段中的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的最大序列號,將編碼指示位 η設(shè)置為參與編碼的原始數(shù)據(jù)包的個(gè)數(shù)奶,以及將編碼用到的編碼系數(shù)、參與編碼的原始數(shù) 據(jù)包的序列號加入至相應(yīng)補(bǔ)償編碼包的編碼信息字段中,并將處理后的&個(gè)補(bǔ)償編碼包發(fā) 送;
[0130] 其中,所述補(bǔ)償編碼包的個(gè)數(shù)Q是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框架 模型確定的。
[0131] 本實(shí)施例所述的系統(tǒng)可以用于執(zhí)行上述第一個(gè)實(shí)施例所述的方法,其原理和技術(shù) 效果類似,此處不再贅述。
[0132] 本發(fā)明第五個(gè)實(shí)施例提供了一種基于上述第四個(gè)網(wǎng)絡(luò)性能優(yōu)化裝置的網(wǎng)絡(luò)性能 優(yōu)化裝置,參見圖6,該裝置包括:
[0133] 接收單元61,用于接收如權(quán)利要求9所述裝置發(fā)送的數(shù)據(jù)包;
[0134] 提取單元62,用于提取所述接收單元接收的數(shù)據(jù)包的頭部信息中的編碼信息字 段;
[0135] 移除單元63,用于根據(jù)提取的編碼信息字段中的base的大小,將序列號小于所述 base的數(shù)據(jù)包從預(yù)設(shè)解碼矩陣中移除;
[0136] 處理單元64,用于根據(jù)提取的編碼信息字段中的η的大小對所述數(shù)據(jù)包進(jìn)行處理:
[0137] 若η = 0,則將數(shù)據(jù)包加入所述預(yù)設(shè)解碼矩陣,并將數(shù)據(jù)包交由相應(yīng)的擁塞控制模 塊進(jìn)行處理以產(chǎn)生對應(yīng)的應(yīng)答信息,并將產(chǎn)生的應(yīng)答信息發(fā)送給如權(quán)利要求9所述裝置;
[0138] 若η>0,則根據(jù)編碼系數(shù)、參與編碼的數(shù)據(jù)包的序列號對數(shù)據(jù)包進(jìn)行解碼,當(dāng)數(shù)據(jù) 包被解碼解出時(shí),交由相應(yīng)的擁塞控制模塊進(jìn)行處理以產(chǎn)生對應(yīng)的應(yīng)答信息,并將產(chǎn)生的 應(yīng)答信息發(fā)送給如權(quán)利要求9所述裝置。
[0139] 本實(shí)施例所述的系統(tǒng)可以用于執(zhí)行上述第三個(gè)實(shí)施例所述的方法,其原理和技術(shù) 效果類似,此處不再贅述。
[0140] 以上實(shí)施例僅用于說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例 對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施 例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或替 換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1. 一種基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化方法,其特征在于,包括: 發(fā)送端為傳輸控制協(xié)議TCP層中待發(fā)送的數(shù)據(jù)包增加預(yù)設(shè)長度的頭部信息位,增加的 頭部信息位包括:編碼信息字段;其中,所述編碼信息字段包括解碼提示位base、編碼指示 位n、編碼系數(shù)、參與編碼的原始數(shù)據(jù)包的序列號;所述base表示不再參與編碼的原始數(shù)據(jù) 包的最大序列號;n = 0表示該數(shù)據(jù)包為原始數(shù)據(jù)包,n>0表示該數(shù)據(jù)包為補(bǔ)償編碼包,其 中,η表示該補(bǔ)償編碼包中包含的原始數(shù)據(jù)包的數(shù)目; 發(fā)送端將傳輸控制協(xié)議TCP層中待發(fā)送的原始數(shù)據(jù)包的編碼信息字段中的解碼提示位 base設(shè)置為當(dāng)前內(nèi)存刪除的包的最大序列號,以及將編碼指示位η設(shè)置為0,并將設(shè)置好的 原始數(shù)據(jù)包按照預(yù)設(shè)擁塞控制策略發(fā)送至接收端; 對于一個(gè)擁塞窗口單元,當(dāng)發(fā)送端根據(jù)當(dāng)前鏈路丟包率檢測出當(dāng)前超時(shí)概率超過預(yù)設(shè) 閾值時(shí),發(fā)送端將當(dāng)前擁塞窗口中的奶個(gè)原始數(shù)據(jù)包進(jìn)行編碼生成C1個(gè)補(bǔ)償編碼包,并將每 個(gè)補(bǔ)償編碼包的編碼信息字段中的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的最大序列 號,將編碼指示位η設(shè)置為參與編碼的原始數(shù)據(jù)包的個(gè)數(shù)奶,以及將編碼用到的編碼系數(shù)、 參與編碼的原始數(shù)據(jù)包的序列號加入至相應(yīng)補(bǔ)償編碼包的編碼信息字段中,并將處理后的 C 1個(gè)補(bǔ)償編碼包發(fā)送至所述接收端; 其中,所述補(bǔ)償編碼包的個(gè)數(shù)C1是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框架模型 確定的。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)發(fā)送端接收到的由接收端發(fā)送的應(yīng)答ACK中帶有丟包數(shù)d時(shí),發(fā)送端根據(jù)丟包數(shù)d獲 取當(dāng)前新的丟包數(shù)CUw;其中,所述應(yīng)答ACK是接收端在對發(fā)送端發(fā)送的補(bǔ)償編碼包接收失 敗后向發(fā)送端發(fā)送的應(yīng)答消息; 若dne3W>0,則發(fā)送端將當(dāng)前擁塞窗口中的《2個(gè)原始數(shù)據(jù)包進(jìn)行編碼生成C2個(gè)補(bǔ)償編碼 包,并將每個(gè)補(bǔ)償編碼包的編碼信息字段中的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的 最大序列號,將編碼指示位η設(shè)置為參與編碼的原始數(shù)據(jù)包的個(gè)數(shù)w 2,以及將編碼用到的編 碼系數(shù)、參與編碼的原始數(shù)據(jù)包的序列號加入至相應(yīng)補(bǔ)償編碼包的編碼信息字段中,并將 處理后的&個(gè)補(bǔ)償編碼包發(fā)送至所述接收端,以及更新Cl new=0; 其中,所述補(bǔ)償編碼包的個(gè)數(shù)C2是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框架模型 確定的。3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述補(bǔ)償編碼包的個(gè)數(shù)C1是根據(jù)當(dāng)前超 時(shí)概率以及李雅普諾夫最優(yōu)化框架模型確定的,包括: 根據(jù)下述優(yōu)化函數(shù)獲取補(bǔ)償編碼包的個(gè)數(shù)C1: Minimize C(t)Q(t)+Vpt(t) 其中,P t ( t )為李雅普諾夫優(yōu)化中的懲罰項(xiàng),p t ( t )對應(yīng)超時(shí)概率,其中,M為當(dāng)前丟包率;V為李雅普諾夫常數(shù)因 子;Q(t)為預(yù)設(shè)長度的虛擬緩沖區(qū)間在t時(shí)刻的剩余空間隊(duì)列;C(t)為李雅普諾夫中的t時(shí) 刻的最優(yōu)發(fā)送補(bǔ)償編碼包的數(shù)目。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述補(bǔ)償編碼包的個(gè)數(shù)(^為小于或等于第 一預(yù)設(shè)閾值的數(shù)值,所述第一預(yù)設(shè)閾值的取值范圍為[〇,5]。5. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述補(bǔ)償編碼包的個(gè)數(shù)(:2是根據(jù)當(dāng)前超時(shí) 概率以及李雅普諾夫最優(yōu)化框架模型確定的,包括: 根據(jù)下述優(yōu)化函數(shù)獲取補(bǔ)償編碼包的個(gè)數(shù)C2: Minimize C(t)Q(t)+Vpt(t) 其中,P t ( t )為李雅普諾夫優(yōu)化中的懲罰項(xiàng),p t ( t )對應(yīng)超時(shí)概率,其中,,p2為當(dāng)前丟包率;V為李雅普諾夫 常數(shù)因子;Q(t)為預(yù)設(shè)長度的虛擬緩沖區(qū)間在t時(shí)刻的剩余空間隊(duì)列;C(t)為李雅普諾夫中 的t時(shí)刻的最優(yōu)發(fā)送補(bǔ)償編碼包的數(shù)目。6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,補(bǔ)償編碼包的個(gè)數(shù)C2為小于或等于第二預(yù) 設(shè)閾值的數(shù)值,所述第二預(yù)設(shè)閾值的取值范圍為[〇,5]。7. -種基于權(quán)利要求1~6中任一項(xiàng)所述方法的基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化 方法,其特征在于,包括: 接收由所述發(fā)送端發(fā)送的數(shù)據(jù)包; 提取所述數(shù)據(jù)包的頭部信息中的編碼信息字段; 根據(jù)提取的編碼信息字段中的base的大小,將序列號小于所述base的數(shù)據(jù)包從解碼矩 陣中移除; 根據(jù)提取的編碼信息字段中的η的大小對所述數(shù)據(jù)包進(jìn)行處理: 若n = o,則將數(shù)據(jù)包加入解碼矩陣,并將數(shù)據(jù)包交由相應(yīng)的擁塞控制模塊進(jìn)行處理以 產(chǎn)生對應(yīng)的第一應(yīng)答消息,并將產(chǎn)生的第一應(yīng)答消息發(fā)送給發(fā)送端; 若η>〇,則根據(jù)編碼系數(shù)、參與編碼的數(shù)據(jù)包的序列號對數(shù)據(jù)包進(jìn)行解碼,當(dāng)數(shù)據(jù)包被 解碼解出時(shí),交由相應(yīng)的擁塞控制模塊進(jìn)行處理以產(chǎn)生對應(yīng)的第二應(yīng)答消息,并將產(chǎn)生的 第二應(yīng)答消息發(fā)送給所述發(fā)送端。8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述第二應(yīng)答消息為ACK消息,所述第二應(yīng) 答消息中包含當(dāng)前丟包數(shù)d。9. 一種基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化裝置,其特征在于,包括: 添加單元,用于為傳輸控制協(xié)議TCP層中待發(fā)送的數(shù)據(jù)包增加預(yù)設(shè)長度的頭部信息位, 增加的頭部信息位包括:編碼信息字段;其中,所述編碼信息字段包括解碼提示位base、編 碼指示位n、編碼系數(shù)、參與編碼的原始數(shù)據(jù)包的序列號;所述base表示不再參與編碼的原 始數(shù)據(jù)包的最大序列號;n = 0表示該數(shù)據(jù)包為原始數(shù)據(jù)包,n>0表示該數(shù)據(jù)包為補(bǔ)償編碼 包,其中,η表示該補(bǔ)償編碼包中包含的原始數(shù)據(jù)包的數(shù)目; 第一處理單元,用于將傳輸控制協(xié)議TCP層中待發(fā)送的原始數(shù)據(jù)包的編碼信息字段中 的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的最大序列號,以及將編碼指示位η設(shè)置為0, 并將設(shè)置好的原始數(shù)據(jù)包按照預(yù)設(shè)擁塞控制策略發(fā)送; 檢測單元,對于一個(gè)擁塞窗口單元,用于根據(jù)當(dāng)前鏈路丟包率檢測當(dāng)前超時(shí)概率是否 超過預(yù)設(shè)閾值; 第二處理單元,用于在所述檢測單元檢測出當(dāng)前超時(shí)概率超過預(yù)設(shè)閾值時(shí),將當(dāng)前擁 塞窗口中的W1個(gè)原始數(shù)據(jù)包進(jìn)行編碼生成C1個(gè)補(bǔ)償編碼包,并將每個(gè)補(bǔ)償編碼包的編碼信 息字段中的解碼提示位base設(shè)置為當(dāng)前內(nèi)存刪除的包的最大序列號,將編碼指示位η設(shè)置 為參與編碼的原始數(shù)據(jù)包的個(gè)數(shù)W1,以及將編碼用到的編碼系數(shù)、參與編碼的原始數(shù)據(jù)包 的序列號加入至相應(yīng)補(bǔ)償編碼包的編碼信息字段中,并將處理后的&個(gè)補(bǔ)償編碼包發(fā)送; 其中,所述補(bǔ)償編碼包的個(gè)數(shù)C 1是根據(jù)當(dāng)前超時(shí)概率以及李雅普諾夫最優(yōu)化框架模型 確定的。10. -種基于權(quán)利要求9所述裝置的基于自適應(yīng)補(bǔ)償編碼的網(wǎng)絡(luò)性能優(yōu)化裝置,其特征 在于,包括: 接收單元,用于接收如權(quán)利要求9所述裝置發(fā)送的數(shù)據(jù)包; 提取單元,用于提取所述接收單元接收的數(shù)據(jù)包的頭部信息中的編碼信息字段; 移除單元,用于根據(jù)提取的編碼信息字段中的base的大小,將序列號小于所述base的 數(shù)據(jù)包從預(yù)設(shè)解碼矩陣中移除; 處理單元,用于根據(jù)提取的編碼信息字段中的η的大小對所述數(shù)據(jù)包進(jìn)行處理: 若n = o,則將數(shù)據(jù)包加入所述預(yù)設(shè)解碼矩陣,并將數(shù)據(jù)包交由相應(yīng)的擁塞控制模塊進(jìn) 行處理以產(chǎn)生對應(yīng)的第一應(yīng)答消息,并將產(chǎn)生的第一應(yīng)答消息發(fā)送給如權(quán)利要求9所述裝 置; 若η>〇,則根據(jù)編碼系數(shù)、參與編碼的數(shù)據(jù)包的序列號對數(shù)據(jù)包進(jìn)行解碼,當(dāng)數(shù)據(jù)包被 解碼解出時(shí),交由相應(yīng)的擁塞控制模塊進(jìn)行處理以產(chǎn)生對應(yīng)的第二應(yīng)答消息,并將產(chǎn)生的 第二應(yīng)答消息發(fā)送給如權(quán)利要求9所述裝置。
【文檔編號】H04L12/855GK106027404SQ201610285483
【公開日】2016年10月12日
【申請日】2016年4月29日
【發(fā)明人】孫繼燕, 張棪, 唐鼎, 張舒黎, 陳鑫
【申請人】中國科學(xué)院信息工程研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1