專利名稱:一種優(yōu)化無線視頻tcp傳輸?shù)姆椒?br>
技術領域:
本發(fā)明涉及在以無線網(wǎng)絡為承載的TCP視頻業(yè)務中,采用中間節(jié)點在TCP連接中 監(jiān)控,修改,注入相應報文的方法,尤其涉及一種優(yōu)化無線視頻TCP傳輸?shù)姆椒ā?br>
背景技術:
TCP連接要獲得穩(wěn)定帶寬的一個重要因素是穩(wěn)定的RTT(傳輸往返延時)值。如果 RTT頻繁變化,TCP無法準確估計出延時時間,因此可能一個短暫的臨時的延時增加就導致 TCP降低發(fā)送速率。現(xiàn)在無線網(wǎng)絡由于有鏈路層的糾錯或者重傳機制,表現(xiàn)為在空中鏈路上 的丟包率并不高,而在此類網(wǎng)絡中最大的三個問題是(一)延時突然增長。切換,底層重 傳,數(shù)據(jù)被阻塞都可能導致傳輸延時的突然增長。當它發(fā)生時,TCP協(xié)議看到的RTT延時可 能是正常值的數(shù)倍。當延時突長發(fā)生時,發(fā)送方長時間無法收到ACK,因此重傳定時器超時, 數(shù)據(jù)重發(fā)。事實上此時的重發(fā)是沒有必要的。隨后發(fā)送方馬上收到ACK,發(fā)送方無法判別哪 個是重發(fā)的ACK,觸發(fā)發(fā)送方的"慢啟動"過程,在慢啟動過程中造成數(shù)據(jù)發(fā)送的突發(fā)流,接 著又引起擁塞控制。(二)RTT和帶寬頻繁變化。RTT和帶寬頻繁變化,無線環(huán)境中鏈路質 量由于干擾,信號衰弱等原因,導致數(shù)據(jù)重傳,RTT變化和帶寬變化很大。例如WCDMA中的 RLC層為了保證按序投遞報文,會多次重傳。(三)有線和無線鏈路混合構成傳輸路徑。有 線鏈路和無線鏈路的特性不同,針對TCP協(xié)議的優(yōu)化難以同時適用于有線和無線鏈路。在 高寬帶的無線視頻監(jiān)控的應用中,對無線帶寬的穩(wěn)定性提出了很高要求,TCP連接實際的傳 輸帶寬的下降,必然影響到視頻監(jiān)控的效果。若傳輸帶寬下降較大,視頻的接收方會出現(xiàn)圖 像的抖動,遲滯,甚至馬賽克等現(xiàn)象。
發(fā)明內容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術存在的缺陷,提供一種高效可靠的優(yōu)化 無線視頻TCP傳輸?shù)姆椒ā?本發(fā)明的目的可以通過以下技術方案來實現(xiàn)一種優(yōu)化無線視頻TCP傳輸?shù)姆?br>
法,其特征在于,該方法包括 (1)采集RTT信息; (2)接收報文的處理; (3)設置重傳定時器; (4)重傳定時器的超時處理; (5)構造ACK報文的處理。 所述的采集RTT信息的步驟包括 (1)在收到應答某報文的ACK時,取出發(fā)送該報文的時間; (2)當前時間減去"發(fā)送時間",得到RTT_now ; (3)該TCP連接的RTT值記錄為RTT,初始值為0 ; (4)重新計算RTT,依據(jù)當前RTT值和RTT_now的加權平均取值。
所述的接收報文的處理包括 (1)如果接收到的報文不是TCP報文,則不做處理;
(2)檢測報文方向是"從無線側來",還是"從有線側來";
(3)若報文方向是"從無線側來",則進行以下步驟 a.報文帶有TCP標志RST或者FIN,則表示實際TCP連接已經(jīng)結束,查找本地對應 的實體,發(fā)完緩沖的報文; b.報文中帶有TCP標志SYN與ACK,則表示由有線側發(fā)起創(chuàng)建了該TCP連接,無線 側進行響應,此時創(chuàng)建本地對應的實體; c.報文中帶有SYN標志,則表示由無線側發(fā)起創(chuàng)建了該TCP連接,此時創(chuàng)建本地對 應的實體; d.報文中帶有ACK標志,則表示無線側對接收報文的應答,進入"ACK應答"處理;
(4)若報文方向是"從有線側來",則進行以下步驟 a.報文中同時帶有標志SYN與ACK,或僅帶有ACK,則說明此為有線側發(fā)來的新連 接,進入"DATA緩存處理"; b.報文中帶有標志SYN,則說明此為有線側發(fā)起的新的連接,進入"DATA緩存處 理"。 所述的"ACK應答"的處理包括 (1)獲取TCP連接對應的本地實體,若本地實體不存在,則不做處理返回;
(2)若該連接由無線側發(fā)起,且本地實體等待監(jiān)聽"3次握手中的ACK報文",則將 本地實體狀態(tài)設置為"建立完成"態(tài),記錄ACK序號為"記錄的ACK序號";
(3)對于其他狀態(tài) a.若報文中的"ACK序號"小于"記錄的ACK序號",則認為是異常情況; b.若報文中的"ACK序號"大于"記錄的ACK序號",則認為數(shù)據(jù)接收方又收到了數(shù)
據(jù)包 i.清空對應于"記錄的ACK序號"與"ACK序號"之間的緩存報文;
ii.更新"記錄的ACK序號"為"ACK序號";
iii.重新計算RTT ;
iv.復位重發(fā)定時器; c.若報文中的"ACK序號"等于"記錄的ACK序號",則認為這是重復ACK,代表接
收方報告了報文丟失 i.獲取可能的SACK選項; ii.循環(huán)緩沖的報文若報文在SACK丟失報告中,且現(xiàn)在距該報文發(fā)送時間大于2
倍連接的RTT時間,則重發(fā)報文該報文; iii.取出緩沖隊列中的第一個報文; d.更新TCP連接使用的窗口大?。?e.清除報文中的ACK標志; f.返回。 所述的取出緩沖隊列中的第一個報文包括
(1)若該報文序號大于"ACK序號",則轉入步驟d ;
6
(2)若該報文序號不等于"ACK序號",則轉入步驟d ;
(3)若設置了重發(fā)該報文,則轉入步驟d ; (4)若當前時間距離該TCP連接的本地實體發(fā)送報文的時間超過2倍的RTT,則重 發(fā)該報文; (5)若報文中給出窗口大小發(fā)生變化,或ACK報文中包含有數(shù)據(jù)部分,則轉入步驟 d ; (6)丟棄接收到的ACK報文。
所述的"DATA緩存"的流程包括 (1)獲取到對應TCP連接的本地實體,若如果本地實體不存在,則創(chuàng)建對應實體;
(2)若報文中帶有SYN標志,則進入"等待連接建立"狀態(tài);
(3)若報文中不帶有SYN標志,則進行以下步驟 a.若報文序號大于"記錄的ACK序號",則緩存報文到本地實體的隊列;
b.此為異常情況,讓報文通過中間實體。
所述的設置重傳定時器包括
(1)獲取緩沖隊列的第一包; (2)若報文空或報文對應的序號,不是"記錄的ACK序號",則刪除重傳定時器,并 返回; (3)修改重傳定時器的超時時間為該報文上次的發(fā)送時間加上2倍的RTT時間。
所述的重傳定時器的超時處理包括
(1)獲取緩沖隊列的第一包; (2)若報文空或對應的序號,不是"記錄的ACK序號",則返回; (3)重新發(fā)送取出的報文,重傳定時器的超時時間為該報文上次的發(fā)送時間加上
2倍的RTT時間。 所述的構造ACK報文的處理包括 (1)初始的ACK報文應答序號為TCP連接建立時發(fā)送方的起始序號;
(2)記錄接收到TCP接連的發(fā)送數(shù)據(jù)報文的序號;
(3)周期性地構造ACK報文 a. ACK報文應答序號二 ACK報文應答序號+依據(jù)應答周期和期望速率計算出的報 文字節(jié)數(shù); b.若"ACK報文應答序號"大于最近的"發(fā)送數(shù)據(jù)報文的序號",則設置"ACK報文 應答序號"為最近的"發(fā)送數(shù)據(jù)報文的序號"; c.構造ACK報文,其中應答序號為本地實體的"ACK報文應答序號",報文發(fā)往有線 網(wǎng)絡一側。 與現(xiàn)有技術相比,本發(fā)明的實現(xiàn)原理簡單,對于無線視頻TCP傳輸?shù)亩鄶?shù)場合有 效;此外,本發(fā)明視頻編碼器,視頻顯示中心等終端節(jié)點設備完全透明,功能模塊部署容易, 即可用于層2交換設備,也可用于層3路由設備。
圖1是本發(fā)明一種優(yōu)化無線視頻TCP傳輸?shù)姆椒ǖ氖疽鈭D。
具體實施例方式
以下結合具體實施例對本發(fā)明做進一步說明。 如圖1所示,視頻顯示中心A,無線設備IB,無線設備IIC(作為無線網(wǎng)絡的組成部 分),視頻編碼器D,視頻編碼器D將遠端的模擬視頻信號編碼成數(shù)字的IP報文,這些IP業(yè) 務報文通過無線網(wǎng)絡傳輸?shù)綗o線網(wǎng)絡和有線網(wǎng)絡的邊界設備(這里的無線設備IA),然后 再經(jīng)過有線網(wǎng)絡傳到"視頻顯示中心A"。 在高寬帶的無線視頻監(jiān)控的應用中,對無線帶寬的穩(wěn)定性提出了很高要求,TCP連 接實際的傳輸帶寬的下降,必然影響到視頻監(jiān)控的效果。若傳輸帶寬下降較大,視頻的接收 方會出現(xiàn)圖像的抖動,遲滯,甚至馬賽克等現(xiàn)象。本專利采用了創(chuàng)新的方法,提出了一種輕 量級的解決方法,無需修改終端設備,可完全解決上述問題。 在TCP連接經(jīng)過的中間節(jié)點上,安裝用于優(yōu)化TCP性能的模塊。該模塊首先通過 監(jiān)聽TCP建立連接的三次握手交互,建立對應連接的本地實體。然后該實體截取TCP連接 中接收者上報的帶有ACK標志的報文,并去除報文中ACK標志。該實體構造ACK報文發(fā)給 TCP連接中的發(fā)送方,以控制發(fā)送方均勻地發(fā)送數(shù)據(jù)。該實體將緩存發(fā)送者的數(shù)據(jù)報文,針 對接收者上報的重復ACK報文,判斷出丟失的報文,然后重發(fā)這些報文。如果接收者的ACK 報文在一定時間內沒有收到,該實體將重發(fā)自己緩存區(qū)的第一個報文,以幫助TCP連接檢 測錯誤。
基本流程
接收報文的處理 (1)如果接收到的報文不是TCP報文,不做處理。
(2)確定報文方向是"從無線側來"的,還是從"從有線側來" (3)如果報文方向為"從無線側來"。 a)報文帶有TCP標志RST或者FIN :表示實際TCP連接已經(jīng)結束。查找本地對應 的實體,發(fā)完緩沖的報文。 b)報文中帶有TCP標志SYN和ACK(同時)表示由有線側發(fā)起創(chuàng)建了該TCP連 接,無線側進行響應。此時創(chuàng)建本地對應的實體。 c)報文中帶有SYN標志表示由無線側發(fā)起創(chuàng)建了該TCP連接,此時創(chuàng)建本地對 應的實體。 d)報文中帶有ACK標志表示無線側對接收報文的應答。進入"ACK應答"處理。
(4)如果報文方向為"從有線側來"。 a)報文中帶有標志SYN和ACK(同時),或者ACK,說明此為有線側發(fā)來的新連接, 進入"DATA緩存"處理。 b)報文中帶有標志SYNC,說明此為有線側發(fā)起的新的連接,進入"DATA緩存"處理。"DATA緩存"的流程 (1)獲取到對應TCP連接的本地實體。如果本地實體不存在,則創(chuàng)建對應實體。
(2)如果報文中帶有SYN標志,進入"等待連接建立"狀態(tài)。
(3)否則
a)如果報文序號大于"記錄的ACK序號",則緩存報文到本地實體的隊列。 b)此為異常情況。讓報文通過中間實體。 "ACK應答"的處理 (1)獲取TCP連接對應的本地實體。如購本地實體不存在,則不做處理返回。 (2)如果該連接由"無線側發(fā)起",且本地實體等待監(jiān)聽"3次握手中的ACK報文", 將本地實體狀態(tài)設置為"建立完成"態(tài)。記錄ACK序號為"記錄的ACK序號"。 (3)對于其他狀態(tài) a)如果報文中的"ACK序號"小于"記錄的ACK序號",認為是異常情況 b)如果報文中的"ACK序號"大于"記錄的ACK序號",認為數(shù)據(jù)接收方又收到一些
數(shù)據(jù)包。 i.清空對應于"記錄的ACK序號"和"ACK序號"之間的緩存報文 ii.更新"記錄的ACK序號"為"ACK序號" iii.重新計算RTT iv.復位重發(fā)定時器 c)如果報文中的"ACK序號"等于"記錄的ACK序號",認為這是重復ACK,代表接
收方報告了報文丟失。 i.獲取可能的SACK選項 ii.循環(huán)緩沖的報文如果報文在SACK丟失報告中,且現(xiàn)在距該報文發(fā)送時間大
于2倍連接的RTT時間,則重發(fā)報文該報文。 iii.取出緩沖隊列中的第一個報文, 1.該報文序號大于"ACK序號"轉步驟d) 2.該報文序號不等于"ACK序號"轉步驟d) 3.如果設置了該重發(fā)該報文,轉步驟d) 4.如果當前時間距離該TCP連接的本地實體發(fā)送報文的時間,超過2倍的RTT,則 重發(fā)該報文。 5.如果報文中給出窗口大小發(fā)生變化?;蛘逜CK報文中還有數(shù)據(jù)部分,轉步驟d) 6.丟棄接收到的ACK報文 d)更新TCP連接使用的窗口大小 e)清除報文中的ACK標志 f)返回 設置重傳定時器的過程 (1)獲取緩沖隊列的第一包 (2)如果報文空或者報文對應的序號,不是"記錄的ACK序號"。那么刪除重傳定 時器。返回。 (3)修改重傳定時器的超時時間為該報文上次的發(fā)送時間加上2倍的RTT時間。 重傳定時器的超時處理 (1)獲取緩沖隊列的第一包。 (2)那么報文空或者對應的序號,不是"記錄的ACK序號",返回 (3)重新發(fā)送取出的報文。重傳定時器的超時時間為該報文上次的發(fā)送時間加上2倍的RTT時間。 計算RTT的過程 (1)在收到應答某報文的ACK時,取出發(fā)送該報文的時間。 (2)當前時間減去"發(fā)送時間",得到RT乙now (3)該TCP連接的RTT值記錄為RTT,初始值為0 (4)重新計算RTT,依據(jù)當前RTT值和RTT_now的加權平均取值。 構造ACK報文的處理 (1)初始的ACK報文應答序號為TCP連接建立時發(fā)送方的起始序號。
(2)記錄接收到TCP接連的發(fā)送數(shù)據(jù)報文的序號。 [O134] (3)周期性地構造ACK報文 a) ACK報文應答序號=ACK報文應答序號+依據(jù)應答周期和期望速率計算出來的 報文字節(jié)數(shù)。 b)如果"ACK報文應答序號"大于最近的"發(fā)送數(shù)據(jù)報文的序號",設置"ACK報文 應答序號"為最近的"發(fā)送數(shù)據(jù)報文的序號"。 c)構造ACK報文,其中應答序號為本地實體的""ACK報文應答序號"。報文發(fā)往有 線網(wǎng)絡一側。 TCP (Transmission Control Protocol):傳輸控制協(xié)議; RTT (Round Trip Time):往返傳輸時間; ACK -Acknowledge確認標志; RST :Reset復位標志; FIN :Finish結束標志; SYN :Synchronize同步標志;RLC :Radio Link Control無線鏈路控制;WCDMA :Wideband Code Division Multiple Access寬帶碼分多工存取。
權利要求
一種優(yōu)化無線視頻TCP傳輸?shù)姆椒?,其特征在于,該方法包?1)采集RTT信息;(2)接收報文的處理;(3)設置重傳定時器;(4)重傳定時器的超時處理;(5)構造ACK報文的處理。
2. 根據(jù)權利要求1所述的一種優(yōu)化無線視頻TCP傳輸?shù)姆椒?,其特征在于,所述的采集RTT信息的步驟包括(1) 在收到應答某報文的ACK時,取出發(fā)送該報文的時間;(2) 當前時間減去"發(fā)送時間",得到RTT_now ;(3) 該TCP連接的RTT值記錄為RTT,初始值為0 ;(4) 重新計算RTT,依據(jù)當前RTT值和RTT_now的加權平均取值。
3. 根據(jù)權利要求1所述的一種優(yōu)化無線視頻TCP傳輸?shù)姆椒ǎ涮卣髟谟?,所述的接收報文的處理包?1) 如果接收到的報文不是TCP報文,則不做處理;(2) 檢測報文方向是"從無線側來",還是"從有線側來";(3) 若報文方向是"從無線側來",則進行以下步驟a. 報文帶有TCP標志RST或者FIN,則表示實際TCP連接已經(jīng)結束,查找本地對應的實體,發(fā)完緩沖的報文;b. 報文中帶有TCP標志SYN與ACK,則表示由有線側發(fā)起創(chuàng)建了該TCP連接,無線側進行響應,此時創(chuàng)建本地對應的實體;c. 報文中帶有SYN標志,則表示由無線側發(fā)起創(chuàng)建了該TCP連接,此時創(chuàng)建本地對應的實體;d. 報文中帶有ACK標志,則表示無線側對接收報文的應答,進入"ACK應答"處理;(4) 若報文方向是"從有線側來",則進行以下步驟a. 報文中同時帶有標志SYN與ACK,或僅帶有ACK,則說明此為有線側發(fā)來的新連接,進入"DATA緩存處理";b. 報文中帶有標志SYN,則說明此為有線側發(fā)起的新的連接,進入"DATA緩存處理"。
4. 根據(jù)權利要求3所述的一種優(yōu)化無線視頻TCP傳輸?shù)姆椒?,其特征在于,所述?ACK應答"的處理包括(1) 獲取TCP連接對應的本地實體,若本地實體不存在,則不做處理返回;(2) 若該連接由無線側發(fā)起,且本地實體等待監(jiān)聽"3次握手中的ACK報文",則將本地實體狀態(tài)設置為"建立完成"態(tài),記錄ACK序號為"記錄的ACK序號";(3) 對于其他狀態(tài)a. 若報文中的"ACK序號"小于"記錄的ACK序號",則認為是異常情況;b. 若報文中的"ACK序號"大于"記錄的ACK序號",則認為數(shù)據(jù)接收方又收到了數(shù)據(jù)包i. 清空對應于"記錄的ACK序號"與"ACK序號"之間的緩存報文;ii. 更新"記錄的ACK序號"為"ACK序號";iii. 重新計算RTT ;iv. 復位重發(fā)定時器;c. 若報文中的"ACK序號"等于"記錄的ACK序號",則認為這是重復ACK,代表接收方報告了報文丟失i. 獲取可能的SACK選項;ii. 循環(huán)緩沖的報文若報文在SACK丟失報告中,且現(xiàn)在距該報文發(fā)送時間大于2倍連接的RTT時間,則重發(fā)報文該報文;iii. 取出緩沖隊列中的第一個報文;d. 更新TCP連接使用的窗口大小;e. 清除報文中的ACK標志;f. 返回。
5. 根據(jù)權利要求4所述的一種優(yōu)化無線視頻TCP傳輸?shù)姆椒ǎ涮卣髟谟冢龅娜〕鼍彌_隊列中的第一個報文包括(1) 若該報文序號大于"ACK序號",則轉入步驟d ;(2) 若該報文序號不等于"ACK序號",則轉入步驟d ;(3) 若設置了重發(fā)該報文,則轉入步驟d ;(4) 若當前時間距離該TCP連接的本地實體發(fā)送報文的時間超過2倍的RTT,則重發(fā)該報文;(5) 若報文中給出窗口大小發(fā)生變化,或ACK報文中包含有數(shù)據(jù)部分,則轉入步驟d ;(6) 丟棄接收到的ACK報文。
6. 根據(jù)權利要求3所述的一種優(yōu)化無線視頻TCP傳輸?shù)姆椒?,其特征在于,所述?DATA緩存"的流程包括(1) 獲取到對應TCP連接的本地實體,若如果本地實體不存在,則創(chuàng)建對應實體;(2) 若報文中帶有SYN標志,則進入"等待連接建立"狀態(tài);(3) 若報文中不帶有SYN標志,則進行以下步驟a. 若報文序號大于"記錄的ACK序號",則緩存報文到本地實體的隊列;b. 此為異常情況,讓報文通過中間實體。
7. 根據(jù)權利要求l所述的一種優(yōu)化無線視頻TCP傳輸?shù)姆椒?,其特征在于,所述的設置重傳定時器包括(1) 獲取緩沖隊列的第一包;(2) 若報文空或報文對應的序號,不是"記錄的ACK序號",則刪除重傳定時器,并返回;(3) 修改重傳定時器的超時時間為該報文上次的發(fā)送時間加上2倍的RTT時間。
8. 根據(jù)權利要求1所述的一種優(yōu)化無線視頻TCP傳輸?shù)姆椒?,其特征在于,所述的重傳定時器的超時處理包括(1) 獲取緩沖隊列的第一包;(2) 若報文空或對應的序號,不是"記錄的ACK序號",則返回;(3) 重新發(fā)送取出的報文,重傳定時器的超時時間為該報文上次的發(fā)送時間加上2倍的RTT時間。
9. 根據(jù)權利要求1所述的一種優(yōu)化無線視頻TCP傳輸?shù)姆椒?,其特征在于,所述的構造ACK報文的處理包括(1) 初始的ACK報文應答序號為TCP連接建立時發(fā)送方的起始序號;(2) 記錄接收到TCP接連的發(fā)送數(shù)據(jù)報文的序號;(3) 周期性地構造ACK報文a. ACK報文應答序號二 ACK報文應答序號+依據(jù)應答周期和期望速率計算出的報文字 節(jié)數(shù);b. 若"ACK報文應答序號"大于最近的"發(fā)送數(shù)據(jù)報文的序號",則設置"ACK報文應答 序號"為最近的"發(fā)送數(shù)據(jù)報文的序號";c. 構造ACK報文,其中應答序號為本地實體的"ACK報文應答序號",報文發(fā)往有線網(wǎng)絡
全文摘要
本發(fā)明涉及一種優(yōu)化無線視頻TCP傳輸?shù)姆椒?,該方法包括采集RTT信息;接收報文的處理;設置重傳定時器;重傳定時器的超時處理;構造ACK報文的處理。與現(xiàn)有技術相比,本發(fā)明的實現(xiàn)原理簡單,對于無線視頻TCP傳輸?shù)亩鄶?shù)場合有效;此外,本發(fā)明視頻編碼器,視頻顯示中心等終端節(jié)點設備完全透明,功能模塊部署容易,即可用于層2交換設備,也可用于層3路由設備。
文檔編號H04L29/06GK101765004SQ200810207789
公開日2010年6月30日 申請日期2008年12月25日 優(yōu)先權日2008年12月25日
發(fā)明者吳亮, 尚濤, 李賢平, 高鳳春 申請人:上海寰創(chuàng)通信科技有限公司