數(shù)據(jù)傳輸控制方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種數(shù)據(jù)傳輸控制方法及系統(tǒng),該數(shù)據(jù)傳輸控制方法包括分片步驟、封包步驟、調(diào)度步驟、會(huì)話步驟、擁塞預(yù)測步驟、擁塞避免步驟。本發(fā)明的有益效果是:在本發(fā)明中,傳輸控制分為擁塞預(yù)測、擁塞控制、擁塞避免幾個(gè)過程,在數(shù)據(jù)傳輸之前進(jìn)行預(yù)測,采用策略避免傳輸質(zhì)量出現(xiàn)問題,從而提高了傳輸質(zhì)量,保證了傳輸效率。
【專利說明】數(shù)據(jù)傳輸控制方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及數(shù)據(jù)傳輸控制方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著社會(huì)的發(fā)展,科技的進(jìn)步,在局域網(wǎng)或互聯(lián)網(wǎng)中都要進(jìn)行數(shù)據(jù)的傳輸,但是目前在數(shù)據(jù)傳輸過程中不可避免的會(huì)出現(xiàn)擁塞的情況,目前缺乏有效的應(yīng)對機(jī)制和控制方法,造成傳輸質(zhì)量降低。
【發(fā)明內(nèi)容】
[0003]為了解決現(xiàn)有技術(shù)中的問題,本發(fā)明提供了一種數(shù)據(jù)傳輸控制方法。
[0004]本發(fā)明提供了一種數(shù)據(jù)傳輸控制方法,包括如下步驟:
[0005]分片步驟:將上層交付的數(shù)據(jù)塊進(jìn)行分片,并將每個(gè)分片加上時(shí)間序號;
[0006]封包步驟:每個(gè)分片按報(bào)文封裝成數(shù)據(jù)包,數(shù)據(jù)包進(jìn)入待發(fā)送隊(duì)列;
[0007]調(diào)度步驟:將待發(fā)送隊(duì)列里面的數(shù)據(jù)包調(diào)度到發(fā)送隊(duì)列中;
[0008]通過以下步驟完成數(shù)據(jù)的調(diào)度及傳輸:
[0009]會(huì)話步驟:判斷會(huì)話是否建立,若是,那么執(zhí)行擁塞預(yù)測步驟,否則結(jié)束;
[0010]擁塞預(yù)測步驟:計(jì)算RTT,當(dāng)式(3-1)成立時(shí)進(jìn)入擁塞避免步驟,
[0011](I/min(RTT) -1/CRTT )/(^1/RTT(j)/n) > T(3-1)
/=1
[0012]式中RTT表示時(shí)間端內(nèi)通信往返時(shí)延向量,CRTT為當(dāng)前的往返時(shí)延,η為向量RTT長度,T為擁塞避免臨界閥值,擁塞解除處理中狀態(tài)計(jì)數(shù)增加一次T減少設(shè)定數(shù)值,反之增加設(shè)定數(shù)值,min為最小函數(shù);
[0013]擁塞避免步驟:將發(fā)送隊(duì)列窗口調(diào)整至擁塞預(yù)測窗口,待發(fā)送隊(duì)列超過閥值時(shí),不接收上層非I幀數(shù)據(jù);進(jìn)入擁塞解除處理中狀態(tài),處于發(fā)送隊(duì)列的超時(shí)的非I幀分片丟棄,當(dāng)前時(shí)鐘與RTT之和小于I幀分片延時(shí)播放時(shí)間重發(fā),否則丟棄。
[0014]作為本發(fā)明的進(jìn)一步改進(jìn),在所述會(huì)話步驟中,實(shí)現(xiàn)會(huì)話連接的過程為:會(huì)話由發(fā)端發(fā)起,調(diào)用入口,創(chuàng)建會(huì)話后初始狀態(tài)為連接中,收到對方成功回應(yīng)時(shí)進(jìn)入擁塞預(yù)測步驟;實(shí)現(xiàn)會(huì)話關(guān)閉的過程為:當(dāng)會(huì)話收到上層的關(guān)閉命令時(shí),先將發(fā)送隊(duì)列里面的分片發(fā)送完,將狀態(tài)設(shè)為正在關(guān)閉狀態(tài),啟動(dòng)定時(shí)器T2,然后通知對端關(guān)閉會(huì)話,收到對端的回應(yīng)時(shí)或T2超時(shí),會(huì)話關(guān)閉。
[0015]作為本發(fā)明的進(jìn)一步改進(jìn),RTT計(jì)算過程只有當(dāng)會(huì)話處于擁塞預(yù)測、擁塞避免和擁塞處理3個(gè)狀態(tài)下執(zhí)行,當(dāng)會(huì)話由擁塞避免狀態(tài)進(jìn)入擁塞處理狀態(tài)和擁塞避免狀態(tài)進(jìn)入擁塞預(yù)測狀態(tài)時(shí)進(jìn)行自適應(yīng)調(diào)整。
[0016]作為本發(fā)明的進(jìn)一步改進(jìn),在所述擁塞避免步驟中,將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將待發(fā)送區(qū)的視頻非關(guān)鍵幀丟棄,丟棄發(fā)送區(qū)所有超時(shí)的非關(guān)鍵幀,對于關(guān)鍵幀,如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā)。
[0017]作為本發(fā)明的進(jìn)一步改進(jìn),在擁塞處理步驟中,將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將丟棄發(fā)送區(qū)和待發(fā)送區(qū)所有的非關(guān)鍵幀,對于關(guān)鍵幀如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā),數(shù)據(jù)發(fā)送完成后重新啟動(dòng)擁塞預(yù)測步驟,如果不滿足擁塞條件了,會(huì)話進(jìn)入擁塞預(yù)測步驟。
[0018]本發(fā)明還提供了一種數(shù)據(jù)傳輸控制系統(tǒng),包括:
[0019]分片模塊:用于將上層交付的數(shù)據(jù)塊進(jìn)行分片,并將每個(gè)分片加上時(shí)間序號;
[0020]封包模塊:用于將每個(gè)分片按報(bào)文封裝成數(shù)據(jù)包,數(shù)據(jù)包進(jìn)入待發(fā)送隊(duì)列;
[0021]調(diào)度模塊:用于將待發(fā)送隊(duì)列里面的數(shù)據(jù)包調(diào)度到發(fā)送隊(duì)列中;
[0022]會(huì)話模塊:用于判斷會(huì)話是否建立,若是,那么執(zhí)行擁塞預(yù)測模塊,否則結(jié)束;
[0023]擁塞預(yù)測模塊:用于計(jì)算RTT,當(dāng)式(3-1)成立時(shí)進(jìn)入擁塞避免模塊,
[0024](l/min(RTT) -1 /CRTT )/(Jl / RTT(i) /n) >T(3-1)
?=1
[0025]式中RTT表示時(shí)間端內(nèi)通信往返時(shí)延向量,CRTT為當(dāng)前的往返時(shí)延,η為向量RTT長度,T為擁塞避免臨界閥值,擁塞解除處理中狀態(tài)計(jì)數(shù)增加一次T減少設(shè)定數(shù)值,反之增加設(shè)定數(shù)值,min為最小函數(shù);
[0026]擁塞避免模塊:將發(fā)送隊(duì)列窗口調(diào)整至擁塞預(yù)測窗口,待發(fā)送隊(duì)列超過閥值時(shí),不接收上層非I幀數(shù)據(jù);進(jìn)入擁塞解除處理中狀態(tài),處于發(fā)送隊(duì)列的超時(shí)的非I幀分片丟棄,當(dāng)前時(shí)鐘與RTT之和小于I幀分片延時(shí)播放時(shí)間重發(fā),否則丟棄。
[0027]作為本發(fā)明的進(jìn)一步改進(jìn),在所述會(huì)話模塊中,實(shí)現(xiàn)會(huì)話連接的過程為:會(huì)話由發(fā)端發(fā)起,調(diào)用入口,創(chuàng)建會(huì)話后初始狀態(tài)為連接中,收到對方成功回應(yīng)時(shí)進(jìn)入擁塞預(yù)測模塊;實(shí)現(xiàn)會(huì)話關(guān)閉的過程為:當(dāng)會(huì)話收到上層的關(guān)閉命令時(shí),先將發(fā)送隊(duì)列里面的分片發(fā)送完,將狀態(tài)設(shè)為正在關(guān)閉狀態(tài),啟動(dòng)定時(shí)器T2,然后通知對端關(guān)閉會(huì)話,收到對端的回應(yīng)時(shí)或T2超時(shí),會(huì)話關(guān)閉。
[0028]作為本發(fā)明的進(jìn)一步改進(jìn),RTT計(jì)算過程只有當(dāng)會(huì)話處于擁塞預(yù)測、擁塞避免和擁塞處理3個(gè)狀態(tài)下執(zhí)行,當(dāng)會(huì)話由擁塞避免狀態(tài)進(jìn)入擁塞處理狀態(tài)和擁塞避免狀態(tài)進(jìn)入擁塞預(yù)測狀態(tài)時(shí)進(jìn)行自適應(yīng)調(diào)整。
[0029]作為本發(fā)明的進(jìn)一步改進(jìn),在所述擁塞避免模塊中,將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將待發(fā)送區(qū)的視頻非關(guān)鍵幀丟棄,丟棄發(fā)送區(qū)所有超時(shí)的非關(guān)鍵幀,對于關(guān)鍵幀,如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā)。
[0030]作為本發(fā)明的進(jìn)一步改進(jìn),在擁塞處理模塊中,將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將丟棄發(fā)送區(qū)和待發(fā)送區(qū)所有的非關(guān)鍵幀,對于關(guān)鍵幀如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā),數(shù)據(jù)發(fā)送完成后重新啟動(dòng)擁塞預(yù)測模塊,如果不滿足擁塞條件了,會(huì)話進(jìn)入擁塞預(yù)測模塊。
[0031]本發(fā)明的有益效果是:在本發(fā)明中,傳輸控制分為擁塞預(yù)測、擁塞控制、擁塞避免幾個(gè)過程,在數(shù)據(jù)傳輸之前進(jìn)行預(yù)測,采用策略避免傳輸質(zhì)量出現(xiàn)問題,從而提高了傳輸質(zhì)量,保證了傳輸效率。
【專利附圖】
【附圖說明】
[0032]圖1是本發(fā)明的會(huì)話控制狀態(tài)圖;
[0033]圖2是本發(fā)明的會(huì)話連接過程實(shí)現(xiàn)流程圖;
[0034]圖3是本發(fā)明的會(huì)話關(guān)閉處理流程圖;
[0035]圖4是本發(fā)明的RTT計(jì)算與擁塞預(yù)測處理流程圖;
[0036]圖5是本發(fā)明的擁塞避免實(shí)現(xiàn)流程圖;
[0037]圖6是本發(fā)明的擁塞處理實(shí)現(xiàn)流程圖。
【具體實(shí)施方式】
[0038]本發(fā)明公開了一種數(shù)據(jù)傳輸控制方法,包括如下步驟:
[0039]分片步驟:將上層交付的數(shù)據(jù)塊進(jìn)行分片,并將每個(gè)分片加上時(shí)間序號,以便接收端能夠按正確的順序進(jìn)行重組,如果是局域網(wǎng)則分片大小為1460字節(jié),如果互聯(lián)網(wǎng)則分片大小與576字節(jié);
[0040]封包步驟:每個(gè)分片按報(bào)文封裝成數(shù)據(jù)包,數(shù)據(jù)包進(jìn)入待發(fā)送隊(duì)列;
[0041]調(diào)度步驟:將待發(fā)送隊(duì)列里面的數(shù)據(jù)包調(diào)度到發(fā)送隊(duì)列中;
[0042]通過以下步驟完成數(shù)據(jù)的調(diào)度及傳輸:
[0043]會(huì)話步驟:判斷會(huì)話是否建立,若是,那么執(zhí)行擁塞預(yù)測步驟,否則結(jié)束;
[0044]擁塞預(yù)測步驟:計(jì)算RTT,當(dāng)式(3-1)成立時(shí)進(jìn)入擁塞避免步驟,
[0045](IZrnin(RTT) - 1/CRTT) /(γ?/RTT(J)/n) > T(3-1)
/=1
[0046]式中RTT表示時(shí)間端內(nèi)通信往返時(shí)延向量,CRTT為當(dāng)前的往返時(shí)延,η為向量RTT長度,T為擁塞避免臨界閥值,區(qū)間值為0.3?0.5,需要根據(jù)網(wǎng)絡(luò)測試數(shù)據(jù)自適應(yīng)調(diào)整,擁塞解除處理中狀態(tài)計(jì)數(shù)增加一次T減少0.1,反之增加0.1,min為最小函數(shù);
[0047]擁塞避免步驟:將發(fā)送隊(duì)列窗口調(diào)整至擁塞預(yù)測窗口,待發(fā)送隊(duì)列超過閥值一半時(shí)(以緩沖5秒的大小設(shè)置閥值),不接收上層非I幀數(shù)據(jù);進(jìn)入擁塞解除處理中狀態(tài),處于發(fā)送隊(duì)列的超時(shí)的非I幀分片丟棄,當(dāng)前時(shí)鐘與RTT之和小于I幀分片延時(shí)播放時(shí)間重發(fā),否則丟棄。
[0048]本發(fā)明的數(shù)據(jù)傳輸控制方法由KDT-STCP來實(shí)現(xiàn),KDT-STCP協(xié)議是本發(fā)明的一種發(fā)送端控制協(xié)議。
[0049]圖1所示為會(huì)話控制過程圖,主要實(shí)現(xiàn)包括連接過程,關(guān)閉過程、分片重組過程,擁塞預(yù)測狀態(tài)RTT計(jì)算與預(yù)測過程、擁塞避免狀態(tài)和擁塞處理狀態(tài)下控制過程實(shí)現(xiàn)。
[0050]在圖1中,連接中狀態(tài)表示為STCP_CONNECTING,擁塞預(yù)測狀態(tài)(擁塞預(yù)測步驟)表示為STCP_PREDICTING,擁塞避免狀態(tài)(擁塞避免步驟)表示為STCP_AV0IDING,擁塞處理狀態(tài)(擁塞處理步驟)表示STCP_PROCEEDING,正在關(guān)閉狀態(tài)表示為STCP_C10SEING。[0051 ] 如圖2所示,KDT-STCP會(huì)話連接過程實(shí)現(xiàn):KDT_STCP會(huì)話由發(fā)端發(fā)起,調(diào)用TransMod:: CreateRTCPSess1n入口,創(chuàng)建RTCP會(huì)話后初始狀態(tài)為連接中,收到對方成功回應(yīng)時(shí)進(jìn)入擁塞預(yù)測步驟,該擁塞預(yù)測步驟也可稱為入擁塞預(yù)測狀態(tài)。
[0052]如圖3所示,當(dāng)KDT-STCP會(huì)話收到上層的OnCloseSess1n命令時(shí),先將發(fā)送隊(duì)列里面的分片發(fā)送完,將狀態(tài)設(shè)為STCP_CL0SING,啟動(dòng)定時(shí)器T2,T2超時(shí)時(shí)間為3秒。然后通知對端關(guān)閉會(huì)話,收到對端的回應(yīng)時(shí)或T2超時(shí),會(huì)話關(guān)閉。
[0053]如圖4所示,RTT計(jì)算過程只有當(dāng)STCP會(huì)話處于擁塞預(yù)測、擁塞避免和擁塞處理3個(gè)狀態(tài)下執(zhí)行,算法有STCPSess1n::Predict函數(shù)封裝,預(yù)測閥值初始化為0.5,當(dāng)會(huì)話由擁塞避免狀態(tài)進(jìn)入擁塞處理狀態(tài)和擁塞避免狀態(tài)進(jìn)入擁塞預(yù)測狀態(tài)時(shí)進(jìn)行自適應(yīng)調(diào)整。
[0054]如圖5所示,在擁塞避免步驟中,即在擁塞避免狀態(tài)下將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將待發(fā)送區(qū)的視頻非關(guān)鍵幀丟棄,丟棄發(fā)送區(qū)所有超時(shí)的非關(guān)鍵幀,對于關(guān)鍵幀,如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā)。
[0055]如圖6所示,在擁塞處理步驟中,即在擁塞處理狀態(tài)下將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將丟棄發(fā)送區(qū)和待發(fā)送區(qū)所有的非關(guān)鍵幀,對于關(guān)鍵幀如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā),數(shù)據(jù)發(fā)送完成后重新啟動(dòng)擁塞預(yù)測過程(擁塞預(yù)測步驟),如果不滿足擁塞條件了,會(huì)話進(jìn)入擁塞預(yù)測狀態(tài)(擁塞預(yù)測步驟)。
[0056]本發(fā)明還公開了一種數(shù)據(jù)傳輸控制系統(tǒng),包括:
[0057]分片模塊:用于將上層交付的數(shù)據(jù)塊進(jìn)行分片,并將每個(gè)分片加上時(shí)間序號;
[0058]封包模塊:用于將每個(gè)分片按報(bào)文封裝成數(shù)據(jù)包,數(shù)據(jù)包進(jìn)入待發(fā)送隊(duì)列;
[0059]調(diào)度模塊:用于將待發(fā)送隊(duì)列里面的數(shù)據(jù)包調(diào)度到發(fā)送隊(duì)列中;
[0060]會(huì)話模塊:用于判斷會(huì)話是否建立,若是,那么執(zhí)行擁塞預(yù)測模塊,否則結(jié)束;
[0061]擁塞預(yù)測模塊:用于計(jì)算RTT,當(dāng)式(3-1)成立時(shí)進(jìn)入擁塞避免模塊,
[0062](l/min(RTT) - 1/CRTT ) /(了(/)/n) > T(3-1)
/=1
[0063]式中RTT表示時(shí)間端內(nèi)通信往返時(shí)延向量,CRTT為當(dāng)前的往返時(shí)延,η為向量RTT長度,T為擁塞避免臨界閥值,擁塞解除處理中狀態(tài)計(jì)數(shù)增加一次T減少設(shè)定數(shù)值,反之增加設(shè)定數(shù)值,min為最小函數(shù);
[0064]擁塞避免模塊:將發(fā)送隊(duì)列窗口調(diào)整至擁塞預(yù)測窗口,待發(fā)送隊(duì)列超過閥值時(shí),不接收上層非I幀數(shù)據(jù);進(jìn)入擁塞解除處理中狀態(tài),處于發(fā)送隊(duì)列的超時(shí)的非I幀分片丟棄,當(dāng)前時(shí)鐘與RTT之和小于I幀分片延時(shí)播放時(shí)間重發(fā),否則丟棄。
[0065]在所述會(huì)話模塊中,實(shí)現(xiàn)會(huì)話連接的過程為:會(huì)話由發(fā)端發(fā)起,調(diào)用入口,創(chuàng)建會(huì)話后初始狀態(tài)為連接中,收到對方成功回應(yīng)時(shí)進(jìn)入擁塞預(yù)測模塊;實(shí)現(xiàn)會(huì)話關(guān)閉的過程為:當(dāng)會(huì)話收到上層的關(guān)閉命令時(shí),先將發(fā)送隊(duì)列里面的分片發(fā)送完,將狀態(tài)設(shè)為正在關(guān)閉狀態(tài),啟動(dòng)定時(shí)器T2,然后通知對端關(guān)閉會(huì)話,收到對端的回應(yīng)時(shí)或T2超時(shí),會(huì)話關(guān)閉。
[0066]RTT計(jì)算過程只有當(dāng)會(huì)話處于擁塞預(yù)測、擁塞避免和擁塞處理3個(gè)狀態(tài)下執(zhí)行,當(dāng)會(huì)話由擁塞避免狀態(tài)進(jìn)入擁塞處理狀態(tài)和擁塞避免狀態(tài)進(jìn)入擁塞預(yù)測狀態(tài)時(shí)進(jìn)行自適應(yīng)調(diào)整。
[0067]在所述擁塞避免模塊中,將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將待發(fā)送區(qū)的視頻非關(guān)鍵幀丟棄,丟棄發(fā)送區(qū)所有超時(shí)的非關(guān)鍵幀,對于關(guān)鍵幀,如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā)。
[0068]在擁塞處理模塊中,將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將丟棄發(fā)送區(qū)和待發(fā)送區(qū)所有的非關(guān)鍵幀,對于關(guān)鍵幀如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā),數(shù)據(jù)發(fā)送完成后重新啟動(dòng)擁塞預(yù)測模塊,如果不滿足擁塞條件了,會(huì)話進(jìn)入擁塞預(yù)測模塊。
[0069]在本發(fā)明中,傳輸控制分為擁塞預(yù)測、擁塞控制、擁塞避免幾個(gè)過程,在數(shù)據(jù)傳輸之前進(jìn)行預(yù)測,采用策略避免傳輸質(zhì)量出現(xiàn)問題,從而提高了傳輸質(zhì)量,保證了傳輸效率。
[0070]而且本發(fā)明具有重發(fā)機(jī)制,根據(jù)音視頻的采集播放特點(diǎn)優(yōu)化重發(fā)機(jī)制,對于在重發(fā)等待隊(duì)列中超過音視頻傳輸最大可接收延時(shí)的數(shù)據(jù)包不進(jìn)行重傳,根據(jù)視頻解碼的特點(diǎn)設(shè)計(jì)重傳策略,首先將視頻解碼時(shí)間按500毫秒一個(gè)時(shí)間片,首先更據(jù)視頻數(shù)據(jù)解碼時(shí)間片排序,同一個(gè)時(shí)間片內(nèi)的視頻幀優(yōu)先重傳視頻I幀數(shù)據(jù),然后視頻P幀數(shù)據(jù),最后重傳B幀數(shù)據(jù)。這樣就提高了視頻傳輸?shù)馁|(zhì)量和重發(fā)效率,傳輸性能。
[0071]本發(fā)明根據(jù)不同的傳輸狀態(tài)對發(fā)送緩沖器采用不同的策略進(jìn)行管理,提高了傳輸?shù)膬?nèi)存使用效率,同時(shí)提高傳輸?shù)目煽啃浴?br>
[0072]以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說明。對于本發(fā)明所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)傳輸控制方法,其特征在于,包括如下步驟: 分片步驟:將上層交付的數(shù)據(jù)塊進(jìn)行分片,并將每個(gè)分片加上時(shí)間序號;封包步驟:每個(gè)分片按報(bào)文封裝成數(shù)據(jù)包,數(shù)據(jù)包進(jìn)入待發(fā)送隊(duì)列; 調(diào)度步驟:將待發(fā)送隊(duì)列里面的數(shù)據(jù)包調(diào)度到發(fā)送隊(duì)列中; 通過以下步驟完成數(shù)據(jù)的調(diào)度及傳輸: 會(huì)話步驟:判斷會(huì)話是否建立,若是,那么執(zhí)行擁塞預(yù)測步驟,否則結(jié)束;擁塞預(yù)測步驟:計(jì)算RTT,當(dāng)式(3-1)成立時(shí)進(jìn)入擁塞避免步驟, (I /min(RTT) - 1/CRTT ) /(Jl//?7T(/)/n) > T(3-1)
i=i 式中RTT表示時(shí)間端內(nèi)通信往返時(shí)延向量,CRTT為當(dāng)前的往返時(shí)延,η為向量RTT長度,T為擁塞避免臨界閥值,擁塞解除處理中狀態(tài)計(jì)數(shù)增加一次T減少設(shè)定數(shù)值,反之增加設(shè)定數(shù)值,min為最小函數(shù); 擁塞避免步驟:將發(fā)送隊(duì)列窗口調(diào)整至擁塞預(yù)測窗口,待發(fā)送隊(duì)列超過閥值時(shí),不接收上層非I幀數(shù)據(jù);進(jìn)入擁塞解除處理中狀態(tài),處于發(fā)送隊(duì)列的超時(shí)的非I幀分片丟棄,當(dāng)前時(shí)鐘與RTT之和小于I幀分片延時(shí)播放時(shí)間重發(fā),否則丟棄。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸控制方法,其特征在于,在所述會(huì)話步驟中,實(shí)現(xiàn)會(huì)話連接的過程為:會(huì)話由發(fā)端發(fā)起,調(diào)用入口,創(chuàng)建會(huì)話后初始狀態(tài)為連接中,收到對方成功回應(yīng)時(shí)進(jìn)入擁塞預(yù)測步驟;實(shí)現(xiàn)會(huì)話關(guān)閉的過程為:當(dāng)會(huì)話收到上層的關(guān)閉命令時(shí),先將發(fā)送隊(duì)列里面的分片發(fā)送完,將狀態(tài)設(shè)為正在關(guān)閉狀態(tài),啟動(dòng)定時(shí)器T2,然后通知對端關(guān)閉會(huì)話,收到對端的回應(yīng)時(shí)或T2超時(shí),會(huì)話關(guān)閉。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸控制方法,其特征在于,RTT計(jì)算過程只有當(dāng)會(huì)話處于擁塞預(yù)測、擁塞避免和擁塞處理3個(gè)狀態(tài)下執(zhí)行,當(dāng)會(huì)話由擁塞避免狀態(tài)進(jìn)入擁塞處理狀態(tài)和擁塞避免狀態(tài)進(jìn)入擁塞預(yù)測狀態(tài)時(shí)進(jìn)行自適應(yīng)調(diào)整。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸控制方法,其特征在于,在所述擁塞避免步驟中,將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將待發(fā)送區(qū)的視頻非關(guān)鍵幀丟棄,丟棄發(fā)送區(qū)所有超時(shí)的非關(guān)鍵幀,對于關(guān)鍵幀,如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā)。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸控制方法,其特征在于,在擁塞處理步驟中,將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將丟棄發(fā)送區(qū)和待發(fā)送區(qū)所有的非關(guān)鍵幀,對于關(guān)鍵幀如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā),數(shù)據(jù)發(fā)送完成后重新啟動(dòng)擁塞預(yù)測步驟,如果不滿足擁塞條件了,會(huì)話進(jìn)入擁塞預(yù)測步驟。
6.一種數(shù)據(jù)傳輸控制系統(tǒng),其特征在于,包括: 分片模塊:用于將上層交付的數(shù)據(jù)塊進(jìn)行分片,并將每個(gè)分片加上時(shí)間序號; 封包模塊:用于將每個(gè)分片按報(bào)文封裝成數(shù)據(jù)包,數(shù)據(jù)包進(jìn)入待發(fā)送隊(duì)列;調(diào)度模塊:用于將待發(fā)送隊(duì)列里面的數(shù)據(jù)包調(diào)度到發(fā)送隊(duì)列中; 會(huì)話模塊:用于判斷會(huì)話是否建立,若是,那么執(zhí)行擁塞預(yù)測模塊,否則結(jié)束; 擁塞預(yù)測模塊:用于計(jì)算RTT,當(dāng)式(3-1)成立時(shí)進(jìn)入擁塞避免模塊, (I/min(RTT) -1/CRTT )/(Ji/RTT(i)/n) > T(3-1)
/=1 式中RTT表示時(shí)間端內(nèi)通信往返時(shí)延向量,CRTT為當(dāng)前的往返時(shí)延,η為向量RTT長度,T為擁塞避免臨界閥值,擁塞解除處理中狀態(tài)計(jì)數(shù)增加一次T減少設(shè)定數(shù)值,反之增加設(shè)定數(shù)值,min為最小函數(shù); 擁塞避免模塊:將發(fā)送隊(duì)列窗口調(diào)整至擁塞預(yù)測窗口,待發(fā)送隊(duì)列超過閥值時(shí),不接收上層非I幀數(shù)據(jù);進(jìn)入擁塞解除處理中狀態(tài),處于發(fā)送隊(duì)列的超時(shí)的非I幀分片丟棄,當(dāng)前時(shí)鐘與RTT之和小于I幀分片延時(shí)播放時(shí)間重發(fā),否則丟棄。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)傳輸控制系統(tǒng),其特征在于,在所述會(huì)話模塊中,實(shí)現(xiàn)會(huì)話連接的過程為:會(huì)話由發(fā)端發(fā)起,調(diào)用入口,創(chuàng)建會(huì)話后初始狀態(tài)為連接中,收到對方成功回應(yīng)時(shí)進(jìn)入擁塞預(yù)測模塊;實(shí)現(xiàn)會(huì)話關(guān)閉的過程為:當(dāng)會(huì)話收到上層的關(guān)閉命令時(shí),先將發(fā)送隊(duì)列里面的分片發(fā)送完,將狀態(tài)設(shè)為正在關(guān)閉狀態(tài),啟動(dòng)定時(shí)器T2,然后通知對端關(guān)閉會(huì)話,收到對端的回應(yīng)時(shí)或T2超時(shí),會(huì)話關(guān)閉。
8.根據(jù)權(quán)利要求6所述的數(shù)據(jù)傳輸控制系統(tǒng),其特征在于,RTT計(jì)算過程只有當(dāng)會(huì)話處于擁塞預(yù)測、擁塞避免和擁塞處理3個(gè)狀態(tài)下執(zhí)行,當(dāng)會(huì)話由擁塞避免狀態(tài)進(jìn)入擁塞處理狀態(tài)和擁塞避免狀態(tài)進(jìn)入擁塞預(yù)測狀態(tài)時(shí)進(jìn)行自適應(yīng)調(diào)整。
9.根據(jù)權(quán)利要求6所述的數(shù)據(jù)傳輸控制系統(tǒng),其特征在于,在所述擁塞避免模塊中,將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將待發(fā)送區(qū)的視頻非關(guān)鍵幀丟棄,丟棄發(fā)送區(qū)所有超時(shí)的非關(guān)鍵幀,對于關(guān)鍵幀,如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā)。
10.根據(jù)權(quán)利要求6所述的數(shù)據(jù)傳輸控制系統(tǒng),其特征在于,在擁塞處理模塊中,將發(fā)送窗口切換為擁塞避免窗口,同時(shí)將丟棄發(fā)送區(qū)和待發(fā)送區(qū)所有的非關(guān)鍵幀,對于關(guān)鍵幀如果當(dāng)前時(shí)間與平均RTT之和小于播放時(shí)間與延時(shí)T時(shí)重發(fā),數(shù)據(jù)發(fā)送完成后重新啟動(dòng)擁塞預(yù)測模塊,如果不滿足擁塞條件了,會(huì)話進(jìn)入擁塞預(yù)測模塊。
【文檔編號】H04L12/841GK104243342SQ201410483051
【公開日】2014年12月24日 申請日期:2014年9月19日 優(yōu)先權(quán)日:2014年9月19日
【發(fā)明者】鄧劍鴻 申請人:深圳市優(yōu)視技術(shù)有限公司