專利名稱:在物理傳輸介質(zhì)中斷時改善tcp數(shù)據(jù)傳輸進程的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在物理傳輸介質(zhì)中斷時改善TCP數(shù)據(jù)傳輸進程的方法。
當前,許多數(shù)據(jù)通信應(yīng)用,如互聯(lián)網(wǎng)連接或EMAIL,通常都將傳輸控 制協(xié)議(TCP)與互聯(lián)網(wǎng)協(xié)議(IP)同時使用。
TCP是一關(guān)于數(shù)據(jù)是如何在通信參與者,通常是計算機,之間交換的 協(xié)定(協(xié)議)。所有現(xiàn)代計算機的操作系統(tǒng)都熟知TCP并且將其用于與其 他計算機間的數(shù)據(jù)傳輸。其是互聯(lián)網(wǎng)協(xié)議族的成員之一,互聯(lián)網(wǎng)的基礎(chǔ)。 與無連接UDP (用戶數(shù)據(jù)表協(xié)議)不同,TCP在一網(wǎng)絡(luò)連接的兩個端點(接 口)之間構(gòu)建一虛擬信道。數(shù)據(jù)可以在此信道上雙向傳輸。在大多數(shù)情況 下,TCP依賴于IP (互聯(lián)網(wǎng)協(xié)議),這就是為什么經(jīng)常有TCP/IP協(xié)議這樣 的說法。其位于OSI參考模型的第四層。
需要被傳輸?shù)臄?shù)據(jù)被分成小的分組(IP數(shù)據(jù)分組)并被傳輸。TCP標 準所定義的原理保證在傳輸中丟失的分組以及沒有被確收的分組會被重新 傳輸。
如圖2所示,根據(jù)TCP原理, 一個數(shù)據(jù)接收設(shè)備,即所謂的客戶端10,
以及
4一個數(shù)據(jù)提供設(shè)備,即所謂的服務(wù)器12間的連接發(fā)生??蛻舳?0發(fā)起連 接并從服務(wù)器12提取數(shù)據(jù)。服務(wù)器12使得數(shù)據(jù)可用并負責將數(shù)據(jù)全部傳 送至客戶端10。為了建立一個連接,客戶端首先向服務(wù)器12傳送一個請求 消息,SYN。服務(wù)器12通過一確認消息SYN ACK作出應(yīng)答??蛻舳?0 繼而類似的發(fā)出一確認消息ACK。在建立一個TCP連接的過程中,用到了 一種所謂的三向握手。希望建立連接的通信參與者,在此即客戶端IO,向 另一方發(fā)送一個帶有一個序列碼的SYN分組(從同步)。在此過程中,這 些序列碼對于為一個完整的傳輸作按照正確順序的且無重復的備份是重要 的。問題是一個分組的SYN比特被設(shè)置在分組報頭中。起始序列碼可以是 任何碼——通常是依據(jù)各TCP實現(xiàn)而產(chǎn)生的隨機選擇的碼。
目標設(shè)備,在此是服務(wù)器12,接收該分組并送上一單獨的SYN分組作 為對該起始序列碼的回答,該單獨的分組也同樣是隨機的且獨立于客戶端 IO的起始序列碼的。同時,所述服務(wù)器通過將客戶端的序列碼加一以對該 第一 SYN分組進行確收并將其在報頭的ACK部分送回??蛻舳?0最終通 過將其自身的ACK分組發(fā)送至服務(wù)器來對該SYN ACK分組進行確收。該 進程也被稱為"前向確收"。連接就這樣建立了。
在此時連接建立且服務(wù)器向客戶端發(fā)送預定義數(shù)量的數(shù)據(jù)分組。數(shù)據(jù) 分組的數(shù)量是在客戶端與服務(wù)器此前在建立連接時商定的。這樣數(shù)據(jù)分組 傳送完畢后,在此為數(shù)據(jù)n和數(shù)據(jù)n+l,客戶端通過一額外的"ACK"消 息作為響應(yīng),在此為ACKn+2,并借此給出下次希望接受哪些數(shù)據(jù)分組這樣的信息。服務(wù)器12等待此來自客戶端 的"ACK n+2"消息。當服務(wù)器接收到該"ACK n+2"消息后,服務(wù)器向 客戶端IO傳送下一組數(shù)據(jù)分組。
圖3和5中示出了 TCP連接的中斷。如果,例如,服務(wù)器12在一個 預定義的等待時間段Tw內(nèi)沒有接收到該"ACKn+2"消息,則所述服務(wù)器 再次傳送上一個沒有被客戶端確收的數(shù)據(jù)分組,即本例中的數(shù)據(jù)n+l。此 包括等待以及在必要時重復發(fā)送數(shù)據(jù)分組的程序被多次重復??蛻舳?0的 等待數(shù)據(jù)時間隨著重復次數(shù)的增加而增長。典型的是,服務(wù)器12在開始時 等待"ACKn+2"消息幾秒(例如2至3秒)。繼而,由于等待時間段通常 在兩次重復之間加倍,因此會將等待時間段Tw增加大約一分鐘。
圖4表示了連接斷開的控制,連接斷開的發(fā)生于連接建立相似。不同 于SYN比特,這里使用FIN比特,該比特為客戶端10指出再沒有數(shù)據(jù)發(fā) 自服務(wù)器12。對該分組的確收由客戶端10通過ACK完成。FIN分組的接 收者最后代表自己發(fā)送一個FIN分組,該分組也被確收。
盡管實際上使用了四向,在斷開連接時還是三向握手,因為從服務(wù)器 至客戶端的ACK和FIN操作被歸類為一向。此外,縮短的時間方法是可 能的,在此種方法中,ACK以及FIN被精確地打包于同一分組內(nèi),就像建 立連接時那樣。報文段最大生存時間(MSL)是指一個報文段在其被拋棄 前能夠在網(wǎng)絡(luò)上停留的最長時間。當一個通信訂戶在移動通信網(wǎng)絡(luò)上使用數(shù)據(jù)通信應(yīng)用時,例如Email, 數(shù)據(jù)連接被中斷的概率遠高于例如在固定網(wǎng)絡(luò)上建立的數(shù)據(jù)連接。當移動 通信網(wǎng)絡(luò)上的數(shù)據(jù)連接被中斷時,即使物理信道在中斷發(fā)生后立刻可用, 數(shù)據(jù)連接也一直會處于中斷狀態(tài)直到TCP的重復程序有效并且數(shù)據(jù)傳輸被 重復。
本發(fā)明的目的在于提出一種當物理傳輸介質(zhì)發(fā)生中斷時,改善TCP數(shù) 據(jù)傳輸進程的方法。結(jié)果是,當物理介質(zhì)發(fā)生中斷時,TCP連接恢復所用 的時間應(yīng)該減小。
該任務(wù)通過權(quán)利要求1所記載的發(fā)明的特征得以解決。
從屬權(quán)利要求中記載了本發(fā)明的優(yōu)選實施方式,以及附加的有益特點。
按照本發(fā)明,當傳送ACK消息時,在客戶端啟動一默認時間為T1的 計時器,并且,如果在時間T1過后客戶端沒有從服務(wù)器接收到其他數(shù)據(jù)分 組,則向服務(wù)器重復地發(fā)送相同的該ACK消息。
本發(fā)明因此基于這樣的事實,即客戶端識別到來自服務(wù)器的數(shù)據(jù)流被 中斷,且從而以相對高的重復頻率向服務(wù)器再次傳送最后一個ACK消息。 服務(wù)器則能夠立刻對此作出響應(yīng)并繼續(xù)數(shù)據(jù)傳送。這樣,對同一ACK消息的重復傳送就成為可能,條件是客戶端保存每 個"ACK"消息至少直至一個ACK消息必須被重發(fā)。
優(yōu)選的是,時間T1,即等待來自服務(wù)器的數(shù)據(jù)時間,可以由客戶端設(shè)定。
對于無問題的建立連接流程和斷開連接流程,在連接和建立和斷開過 程中不啟動定時器。
進一步的,需要規(guī)定的是,在客戶端同一SYN消息的重復傳送次數(shù)由 一計數(shù)器C1進行計數(shù)。當超過一默認閾值后,就不再向服務(wù)器發(fā)送具有相 同內(nèi)容的SYN消息。
本發(fā)明的有益效果是顯而易見的-
到目前為止,在發(fā)生物理介質(zhì)的中斷后,對終端用戶的數(shù)據(jù)傳輸一直 中斷直到TCP標準中定義的重復程序開始執(zhí)行。這需要好幾秒。通過本發(fā) 明,在物理介質(zhì)重新可用后數(shù)據(jù)傳輸還處于中斷的時間得到減小。該時間 由定時器的值T1確定且可以由終端用戶設(shè)定。如果客戶端識別到數(shù)據(jù)傳輸 結(jié)束,則客戶端不在使用上述程序。
本設(shè)備或者依據(jù)本發(fā)明的方法可以安裝于一個移動通信網(wǎng)絡(luò)上的代理 服務(wù)器上并且通過該移動通信網(wǎng)絡(luò)控制。
下面,將結(jié)合附圖對本發(fā)明作進一步說明。本發(fā)明的其他特征以及有 益效果將通過附圖以及后續(xù)說明變得顯而易見。
圖1簡要示出了在發(fā)生物理傳送介質(zhì)中斷時TCP數(shù)據(jù)傳輸進程的根據(jù) 本發(fā)明的過程。
圖2簡要示出了建立TCP連接的過程(現(xiàn)有技術(shù))
圖3簡要示出了TCP連接中斷的過程(現(xiàn)有技術(shù))。
圖4簡要示出了斷開TCP連接的過程(現(xiàn)有技術(shù))。
圖5簡要示出了發(fā)生物理傳送介質(zhì)中斷時TCP數(shù)據(jù)傳輸進程的標準過 程(現(xiàn)有技術(shù))。
圖2至5已經(jīng)在說明書的概述部分進行了闡述。在此引入相應(yīng)段落。
根據(jù)本發(fā)明的方法,對連接的建立以及連接的斷開的檢測沒有發(fā)生變 化,仍如上面基于圖2至4的表述。TCP標準中的定義是, 一個連接的建 立由客戶端10通過發(fā)送一個IP分組而起始,在此情況下,"SYN"比特設(shè) 置于TCP部分中。服務(wù)器12繼而應(yīng)答一個分組,該分組中"SYN"和"ACK" 比特設(shè)置于該分組的TCP部分中。該客戶端10繼而應(yīng)答一個分組,該分 組中"ACK"設(shè)置于TCP部分中。當這三條消息在客戶端10和服務(wù)器12 間傳輸完畢后,就開始實際的數(shù)據(jù)傳送。在數(shù)據(jù)傳送結(jié)束時,服務(wù)器12在最后一個數(shù)據(jù)分組中設(shè)置一個"Fin" 比特??蛻舳死^而傳送一個ACK。為了實施本發(fā)明,客戶端使用該信息停 止對數(shù)據(jù)傳送的檢測。連接此后默認斷開。
借助圖1可以注意到,為了檢測數(shù)據(jù)流的中斷,按照本發(fā)明在客戶端 10上安裝了一個定時器14以監(jiān)測該連接。該定時器14的設(shè)定時間Tl是 可調(diào)的。定時器14僅在實際數(shù)據(jù)傳送時被使用,在連接建立和連接斷開階 段則不使用。
一旦客戶端10通過"ACK"消息確認連接的建立,定時器14就被啟動, 當收到ACK消息之后的來自服務(wù)器的數(shù)據(jù)定時器即停止。
如果在時間段T1內(nèi)沒有從服務(wù)器12接收到數(shù)據(jù)(在此為數(shù)據(jù)n+l), 客戶端即認為數(shù)據(jù)流被中斷并且觸發(fā)一預定義的動作。根據(jù)本發(fā)明,客戶 端10保存每個發(fā)送至服務(wù)器的"ACK"至少直至從服務(wù)器12接收到了后 續(xù)數(shù)據(jù)并需要發(fā)送新的ACK消息。
客戶端10的這一數(shù)據(jù)流中斷時的預定義動作的目的是快速恢復連接。 如果發(fā)送"新"的ACK消息,則先前存儲的ACK消息即被刪除并被新的所 代替。如果客戶端10已經(jīng)注意到,由于Tl已經(jīng)因沒有從服務(wù)器12收到數(shù) 據(jù)而過期,而使得數(shù)據(jù)流(數(shù)據(jù)n+l)被中斷,則客戶端10將最后一個存 儲的"ACK"消息再次發(fā)送到服務(wù)器12并再等待一段時間Tl以確定是否 從服務(wù)器12接收到了數(shù)據(jù)。另外,在客戶端可以實現(xiàn)一個計數(shù)器16用來計算在發(fā)生數(shù)據(jù)傳輸中斷 時,向服務(wù)器12發(fā)送同樣的ACK消息的次數(shù)。如果計數(shù)器16達到一個預 設(shè)的閾值,則客戶端IO就停止重復發(fā)送ACK消息。這樣就可以應(yīng)用傳統(tǒng) 的TCP標準了。
權(quán)利要求
1.一種在物理傳輸介質(zhì)發(fā)生中斷時改善TCP數(shù)據(jù)傳輸進程的方法,其中,客戶端(10)和服務(wù)器(12)之間的TCP連接建立后,從服務(wù)器(12)向客戶端(10)傳送一個數(shù)據(jù)分組,其中,客戶端(10)通過傳送一個分配給該數(shù)據(jù)分組的確認消息,ACK消息,來確認從服務(wù)器(12)收到了該數(shù)據(jù)分組,其中,當客戶端(10)傳送ACK消息時,啟動一個默認時間為T1的定時器(14),且如果客戶端(10)在時間T1到時后仍沒有從服務(wù)器(12)接收到后續(xù)數(shù)據(jù)分組,則將ACK消息重復發(fā)送至服務(wù)器(12)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于客戶端(10)對每個經(jīng)傳送的"ACK"消息進行存儲至少直至一個ACK消息必須被重發(fā)。
3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于能夠在客戶端(10)對時間T1進行設(shè)置。
4. 根據(jù)權(quán)利要求1至3中任意一項所述的方法,其特征在于在建立連接或清除連接的過程中定時器(14)不被激活。
5. 根據(jù)權(quán)利要求1至4中任意一項所述的方法,其特征在于:在客戶端(IO)的重復傳送同一 ACK消息的次數(shù)由一個計數(shù)器(16)進行計數(shù),且當其超過一默認的閾值時,就不再向服務(wù)器(12)發(fā)送具有相同內(nèi)容的后續(xù)ACK消息了。
6. 根據(jù)權(quán)利要求1至5中任意一項所述的方法,其特征在于該方法安裝于移動通信網(wǎng)絡(luò)的一個代理服務(wù)器上并通過移動通信網(wǎng)絡(luò)進行控制。
7. —種裝置,用于實施權(quán)利要求1至5中任意一項的當物理傳輸介質(zhì)發(fā)生中斷時改善TCP數(shù)據(jù)傳輸進程的方法,其特征在于在客戶端(10)安裝有一個定時器(14)用于記錄從服務(wù)器(12)發(fā)出的數(shù)據(jù)傳輸?shù)闹袛唷?br>
8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于在客戶端設(shè)置一計數(shù)器(16)用于對向服務(wù)器(12)傳送的具有相同內(nèi)容的ACK消息進行計數(shù)。
9. 根據(jù)權(quán)利要求7或8所述的裝置,其特征在于該裝置安裝于移動通信網(wǎng)絡(luò)的一個代理服務(wù)器上,且能夠通過移動通信網(wǎng)絡(luò)進行控制。
10. —種數(shù)據(jù)處理程序,其具有一程序代碼,該程序代碼在一數(shù)據(jù)處理裝置上執(zhí)行根據(jù)權(quán)利要求1至6中任意一項的方法。
11. 一種數(shù)據(jù)處理程序產(chǎn)品,其包括可在一數(shù)據(jù)處理裝置上執(zhí)行用于實施根據(jù)權(quán)利要求1至6中任意一項的方法的程序代碼。
全文摘要
一種當物理傳輸介質(zhì)發(fā)生中斷時改善TCP數(shù)據(jù)傳輸進程的方法,其中,客戶端(10)和服務(wù)器(12)之間的TCP連接建立后,從服務(wù)器(12)向客戶端(10)傳送一個數(shù)據(jù)分組,其中,客戶端(10)通過傳送一個分配給該數(shù)據(jù)分組的確認消息,ACK消息,來確認從服務(wù)器(12)收到了該數(shù)據(jù)分組,其中,當客戶端(10)傳送ACK消息時,啟動一個默認時間為T1的定時器(14),且如果客戶端(10)在時間T1到時后仍沒有從服務(wù)器(12)接收到后續(xù)數(shù)據(jù)分組,則將ACK消息重復發(fā)送至服務(wù)器(12)。
文檔編號H04L29/06GK101682611SQ200880011768
公開日2010年3月24日 申請日期2008年2月28日 優(yōu)先權(quán)日2007年3月7日
發(fā)明者雷米·克萊奧 申請人:T-移動國際股份公司