專利名稱:使用udp協(xié)議進行可靠數(shù)據(jù)傳輸?shù)姆椒?br>
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在計算機軟件和互聯(lián)網(wǎng)中進行數(shù)據(jù)傳輸方法,尤其涉 及一種可使用UDP協(xié)議來進行可靠數(shù)據(jù)傳輸?shù)姆椒ā?br>
背景技術(shù):
隨著互聯(lián)網(wǎng)接入技術(shù)的變化和各種新型的互聯(lián)網(wǎng)應(yīng)用不斷涌現(xiàn),傳統(tǒng) 的互聯(lián)網(wǎng)數(shù)據(jù)傳輸協(xié)議TCP協(xié)議和UDP協(xié)議己經(jīng)不能完全的滿足新型互聯(lián) 網(wǎng)應(yīng)用對數(shù)據(jù)傳輸?shù)男枨?。UDP協(xié)議并不提供數(shù)據(jù)傳送的保證機制,例如 如果在從發(fā)送方到接收方的傳遞過程中出現(xiàn)數(shù)據(jù)報的丟失,UDP協(xié)議本身 并不能做出任何檢測或提示,因此UDP協(xié)議通常被稱為是不可靠傳輸協(xié) 議,所以當需要在互聯(lián)網(wǎng)中兩臺主機間可靠的傳輸數(shù)據(jù)時,人們往往會選 擇TCP協(xié)議來進行數(shù)據(jù)的傳輸。但是,在P2P等網(wǎng)絡(luò)應(yīng)用環(huán)境中,由于互 聯(lián)網(wǎng)防火墻和NAT網(wǎng)關(guān)的存在,兩臺主機間并不一定可以使用TCP協(xié)議來 建立連接,從而無法進行可靠的數(shù)據(jù)傳輸,但在這些網(wǎng)絡(luò)應(yīng)用環(huán)境中,UDP 協(xié)議卻可以在兩臺主機間進行不可靠的數(shù)據(jù)傳輸。另外,由于TCP協(xié)議的 連接涉及到操作系統(tǒng)內(nèi)部的各種資源,連接的建立和釋放相對于UDP協(xié)議 是有一定代價的,而且某些操作系統(tǒng)對TCP協(xié)議的連接數(shù)量等指標進行了 限制,這些都會影響TCP協(xié)議在互聯(lián)網(wǎng)應(yīng)用中的使用。因此對于P2P等網(wǎng) 絡(luò)應(yīng)用來說,使用UDP協(xié)議比使用TCP協(xié)議更容易使得傳輸數(shù)據(jù)順利到達 目標主機。由于UDP協(xié)議并不提供數(shù)據(jù)傳送的保證機制,因此目前使用UDP協(xié)議
進行數(shù)據(jù)傳輸時,主要存在如下三方面問題
1、 容易產(chǎn)生數(shù)據(jù)包丟失的現(xiàn)象,即UDP數(shù)據(jù)包在互聯(lián)網(wǎng)傳輸過程中 可能會因數(shù)據(jù)損壞或擁塞而被路由器丟棄;
2、 易發(fā)生數(shù)據(jù)包亂序到達的現(xiàn)象,即發(fā)送方按順序發(fā)出的UDP數(shù)據(jù) 包在到達接受方時可能會順序錯亂,從而影響數(shù)據(jù)的解析;
3、 沒有擁塞控制能力,因此當數(shù)據(jù)包發(fā)送速度超過數(shù)據(jù)鏈路層的吞 吐量時會導致數(shù)據(jù)包丟失,從而降低數(shù)據(jù)傳輸效率。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種使用UDP協(xié)議進行可靠數(shù)據(jù)傳 輸?shù)姆椒ǎ杀苊鈹?shù)據(jù)傳輸過程中發(fā)生數(shù)據(jù)報丟失、數(shù)據(jù)包亂序到達等現(xiàn) 象,而且可以實現(xiàn)擁塞控制的功能,從而實現(xiàn)基于UDP協(xié)議的可靠數(shù)據(jù)傳輸。
為解決上述技術(shù)問題,本發(fā)明提供一種使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸 的方法,包括
(1) 在發(fā)送方和接收方之間進行連接握手的步驟;
(2) 在數(shù)據(jù)傳輸過程中,將發(fā)送方發(fā)出的數(shù)據(jù)保存到發(fā)送隊列中,并 在收到接收方回應(yīng)后再將己發(fā)送的數(shù)據(jù)從發(fā)送隊列中刪除的步驟;
(3) 在數(shù)據(jù)傳輸過程中,接收方接收到發(fā)送方發(fā)來的數(shù)據(jù)包后,按照 所述數(shù)據(jù)包的序列號將有效數(shù)據(jù)放入接收緩沖中的步驟;
(4) 數(shù)據(jù)發(fā)送方和接受方之間協(xié)商關(guān)閉連接的步驟。 該方法還包括在執(zhí)行所述步驟(1)、 (2)、 (3)和/或(4)時,對發(fā)送
方和接收方之間傳送各種數(shù)據(jù)包進行超時重傳的步驟。該方法還包括在執(zhí)行步驟(2)的過程中,發(fā)送方進行擁塞探測的步驟。
本發(fā)明由于采用了上述技術(shù)方案,具有這樣的有益效果,即有效避免 了發(fā)生數(shù)據(jù)報丟失、數(shù)據(jù)包亂序到達等現(xiàn)象,而且實現(xiàn)了擁塞控制,從而
實現(xiàn)了可使用UDP協(xié)議在互聯(lián)網(wǎng)中進行可靠的數(shù)據(jù)傳輸,尤其增強了P2P等
互聯(lián)網(wǎng)應(yīng)用中數(shù)據(jù)傳輸?shù)姆奖阈院统晒β省?
下面結(jié)合附圖與具體實施方式
對本發(fā)明作進一步詳細的說明
圖1為本發(fā)明所述方法的一個應(yīng)用實施例的數(shù)據(jù)包時序和流向示意圖。
具體實施例方式
本發(fā)明所述使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)姆椒ò?br>
首先,需在發(fā)送方和接收方之間進行連接握手的過程。該連接握手過
程主要分為以下四步第一步,發(fā)送方發(fā)送TPCMD—CONNECT命令數(shù)據(jù)包到 接收方的預(yù)定UDP端口 ,該TPCMD—CONNECT命令數(shù)據(jù)包中應(yīng)包含發(fā)送方所 使用的接收隊列的大小、通道號以及初始數(shù)據(jù)包的序列號。第二步,接收 方收到TPCMD—CONNECT命令數(shù)據(jù)包后,向發(fā)送方發(fā)送TPCMD一CONNECT一ACK 命令數(shù)據(jù)包,該TPCMD一CONNECT—ACK命令數(shù)據(jù)包中包含接收方所使用的接 收隊列的大小、通道號和初始數(shù)據(jù)包的序列號。第三步,發(fā)送方收到 TPCMD—CONNECT—ACK命令數(shù)據(jù)包后,向接收方發(fā)送TPCMD—C0NNECT_EST命 令數(shù)據(jù)包,并通知上層應(yīng)用程序連接建立成功。第四步,接收方收到 TPCMD—CONNECT一EST命令數(shù)據(jù)包后,通知上層應(yīng)用程序有新的客戶端連接建立。
當在發(fā)送方和接收方之間成功建立連接后,就可以在發(fā)送方和接收方 之間進行數(shù)據(jù)傳送了。由于數(shù)據(jù)傳送過程中,數(shù)據(jù)包在到達目標主機(即 接收方)前有可能會丟失,因此需將發(fā)送方發(fā)出的數(shù)據(jù)保存到發(fā)送隊列中, 并在收到接收方回應(yīng)后再將已發(fā)送的數(shù)據(jù)從發(fā)送隊列中刪除。所述數(shù)據(jù)隊 列可以是先進先出隊列,當發(fā)送方發(fā)送數(shù)據(jù)時,需先將數(shù)據(jù)包編號后加入
該數(shù)據(jù)隊列的隊尾,然后發(fā)送命令字為TPCMD—STREAM—FRAME的命令數(shù)據(jù) 包給接收方。接收方接收到該命令字為TPCMD—STREAM—FRAME的命令數(shù)據(jù) 包后,需發(fā)送命令字為TPCMD—STREAM—FRAME—ACK的UDP命令數(shù)據(jù)包回應(yīng) 給發(fā)送方,然后發(fā)送方再將相應(yīng)序號之前所有的數(shù)據(jù)包移出發(fā)送隊列。
在數(shù)據(jù)傳輸過程中,當接收方接收到發(fā)送方發(fā)來的數(shù)據(jù)包后,還應(yīng)按 照數(shù)據(jù)包序列號將有效數(shù)據(jù)放入接收緩沖中。數(shù)據(jù)在接收緩沖的位置是由 數(shù)據(jù)包的序列號決定的,相鄰序列號的數(shù)據(jù)被放置在一起并被合并成一個 大的數(shù)據(jù)塊。當接收緩沖區(qū)頭部被連續(xù)數(shù)據(jù)塊填充后,將所述數(shù)據(jù)塊通過 回調(diào)函數(shù)通知上層應(yīng)用程序;然后,將接收緩沖區(qū)的頭部指針向后移動; 當接收緩沖區(qū)的頭部指針移到接收緩沖區(qū)尾部后,將接收緩沖區(qū)的頭部指 針重置到緩沖區(qū)頭部。
為了保證數(shù)據(jù)傳輸過程中,數(shù)據(jù)包不會因為擁塞而丟失,因此還應(yīng)在 發(fā)送方實現(xiàn)擁塞探測機制,該機制包括一個擁塞探測狀態(tài)標志和擁塞閥 值。擁塞探測狀態(tài)標志為布爾型變量,用于表示當前是否在進行擁塞探測。 擁塞閥值則用于限制發(fā)送隊列中已經(jīng)發(fā)送但未被確認的數(shù)據(jù)包的數(shù)量,以 字節(jié)為單位。擁塞閥值初始值為一個最大發(fā)送單位。在一個實施例中,所述擁塞探測機制可實現(xiàn)如下操作 發(fā)送方發(fā)送數(shù)據(jù)時,首先檢査擁塞探測狀態(tài)標志,如果該值為"真", 則計算出第一可發(fā)送數(shù)據(jù)量,該第一可發(fā)送數(shù)據(jù)量=擁塞閥值-發(fā)送隊列中 未被確認的數(shù)據(jù)包的數(shù)量。只有當該第一可發(fā)送數(shù)據(jù)量大于零時才會發(fā)送 UDP數(shù)據(jù)包到接收方,并將發(fā)出的數(shù)據(jù)放入發(fā)送隊列尾部。如果擁塞探測 狀態(tài)為"假",則計算出第二可發(fā)送數(shù)據(jù)量,該第二可發(fā)送數(shù)據(jù)量等于發(fā) 送隊列的剩余空間大小。然后,將第二可發(fā)送數(shù)據(jù)量的數(shù)據(jù)發(fā)送到接收方 后將數(shù)據(jù)放入發(fā)送隊列尾部。接著,檢査當前發(fā)送隊列的大小,如果其值 大于擁塞閥值大小,則將擁塞探測標志設(shè)為"真"。當發(fā)送隊列中的所有 數(shù)據(jù)都被確認并且沒有出現(xiàn)超時重傳的情況時,將擁塞探測標志設(shè)為"假" 并將擁塞伐值增加一個最大發(fā)送單位。如果出現(xiàn)過超時重傳的情況,在所 有數(shù)據(jù)都被確認后將擁塞探測標志設(shè)為"假"并將擁塞閥值減小一個最大 發(fā)送單位。
當所有數(shù)據(jù)都發(fā)送完畢后,在發(fā)送方和接受方之間還需進行協(xié)商關(guān)閉 連接的步驟,具體包括以下過程當發(fā)送方完成數(shù)據(jù)發(fā)送后,向接收方發(fā)
送TPCMD一DISCO麗ECT命令數(shù)據(jù)包,并將自己設(shè)置為CLOSE—WAIT狀態(tài)。接 收方收到TPCMD—DISCONNECT命令數(shù)據(jù)包后通知上層應(yīng)用程序連接通道己 經(jīng)關(guān)閉并向發(fā)送方發(fā)送TPCMD—DISCONNECT—ACK命令數(shù)據(jù)包,最后釋放連 接通道。接收方收到TPCMD—DISCONNECT_ACK命令數(shù)據(jù)包后釋放連接通道。 在上述各個步驟中,發(fā)送方和接收方之間傳送的各種數(shù)據(jù)包都有可能 會丟失,因此在一個實施例中,本發(fā)明還可包括對發(fā)送方和接收方之間傳 送的上述各種數(shù)據(jù)包進行超時重傳的步驟。所述各種數(shù)據(jù)包可以是連接握手過程中在發(fā)送方和接收方之間傳送的各種命令數(shù)據(jù)包,或者是數(shù)據(jù)傳送 過程中在發(fā)送方和接收方之間傳送的各個數(shù)據(jù)包,或者是關(guān)閉連接過程中 在發(fā)送方和接收方之間傳送的各種命令數(shù)據(jù)包等。所述超時重傳的步驟可 通過在發(fā)送方設(shè)置重傳定時器的方式來實現(xiàn)。例如,在連接握手過程中,
由于接收方回應(yīng)的TPCMD—STREAM—FRAME—ACK數(shù)據(jù)包會有可能丟失,因此 需要在發(fā)送方設(shè)置一個重傳定時器,當該定時器超時后,發(fā)送方就重新發(fā) 送隊列頭部的數(shù)據(jù)包并重置重傳定時器。
如圖1所示,為根據(jù)本發(fā)明所述方法的一個應(yīng)用實施例,顯示了發(fā)送 方和接收方之間的數(shù)據(jù)包時序和流向。在該圖中,由發(fā)送方主動連接到接 收方,并在發(fā)送完數(shù)據(jù)后主動關(guān)閉連接。具體步驟如下
1、 發(fā)送方分配數(shù)據(jù)通道,然后發(fā)送TPCMD—CONNECT數(shù)據(jù)包到接收方 的預(yù)定UDP端口。
2、 接收方收到TPCMD—CONNECT數(shù)據(jù)包后分配數(shù)據(jù)通道,然后回應(yīng) TPCMD一CONNECT一ACK數(shù)據(jù)包給發(fā)送方。
3 、發(fā)送方收到TPCMD—CONNECT—ACK數(shù)據(jù)包后發(fā)送TPCMD—CONNECT—EST
數(shù)據(jù)包給接收方,并通知上層應(yīng)用程序連接建立成功。
4、 接收方收到TPCMD一CONNECT一EST數(shù)據(jù)包后,通知上層應(yīng)用程序有 新連接到來。
5、 發(fā)送方將需要發(fā)送的數(shù)據(jù)編號后放入TPCMD—STREAM—FRAME中并發(fā) 送到接收方。在該過程中需要進行擁塞檢測。
6、 接收方收到TCPCMD—STREAM—FRAME數(shù)據(jù)包后將其中的數(shù)據(jù)放入接 收緩沖區(qū),檢査接受緩沖區(qū)頭部,如果有連續(xù)的數(shù)據(jù)塊則通知上層應(yīng)用程序有數(shù)據(jù)到達并發(fā)送TPCMD—STREAM—FRAME一ACK數(shù)據(jù)包給發(fā)送方。然后接 收緩沖區(qū)向后滑動。
7、 發(fā)送方收到TPCMD—STREAM—FRAME_ACK數(shù)據(jù)包后根據(jù)其中的序列號 將發(fā)送隊列頭部的數(shù)據(jù)移出。
8、 循環(huán)5至7步驟直到發(fā)送方完成所有數(shù)據(jù)發(fā)送。
9、 當發(fā)送方完成數(shù)據(jù)發(fā)送后,向接收方發(fā)送TPCMD—DISCONNECT數(shù)據(jù) 包,并將自己設(shè)置為CLOSE—WAIT狀態(tài)。
10、 接收方收到TPCMD_DISCONNECT數(shù)據(jù)包后通知上層應(yīng)用程序連接 通道已經(jīng)關(guān)閉并向發(fā)送方發(fā)送TPCMD—DISCONNECT—ACK數(shù)據(jù)包,最后釋放 連接通道。
11 、接收方收到TPCMD—DISCONNECT—ACK數(shù)據(jù)包后釋放連接通道。
權(quán)利要求
1、一種使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,包?1)在發(fā)送方和接收方之間進行連接握手的步驟;(2)在數(shù)據(jù)傳輸過程中,將發(fā)送方發(fā)出的數(shù)據(jù)保存到發(fā)送隊列中,并在收到接收方回應(yīng)后再將已發(fā)送的數(shù)據(jù)從發(fā)送隊列中刪除的步驟;(3)在數(shù)據(jù)傳輸過程中,接收方接收到發(fā)送方發(fā)來的數(shù)據(jù)包后,按照所述數(shù)據(jù)包的序列號將有效數(shù)據(jù)放入接收緩沖中的步驟;(4)數(shù)據(jù)發(fā)送方和接受方之間協(xié)商關(guān)閉連接的步驟。
2、 根據(jù)權(quán)利要求1所述使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)姆椒?,其特?在于,還包括在執(zhí)行所述步驟(1) 、 (2) 、 (3)禾卩/或(4)時,對發(fā)送 方和接收方之間傳送各種數(shù)據(jù)包進行超時重傳的步驟。
3、 根據(jù)權(quán)利求1所述使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)姆椒?,其特征?于,還包括在執(zhí)行步驟(2)的過程中,發(fā)送方進行擁塞探測的步驟。
4、 根據(jù)權(quán)利要求1至3中任一項所述使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)?方法,其特征在于,所述步驟(1)中的連接握手過程包括第一步,發(fā)送方發(fā)送TPCMDJX)NNECT命令數(shù)據(jù)包到接收方的預(yù)定UDP端第二步,接收方收到TPCMD—CONNECT命令數(shù)據(jù)包后,向發(fā)送方發(fā)送 TPCMD—CONNECT—ACK命令數(shù)據(jù)包;第三步,發(fā)送方收至UTPCMD一CONNECT—ACK命令數(shù)據(jù)包后,向接收方發(fā)送 TPCMD一CONNECT一EST命令數(shù)據(jù)包,并通知上層應(yīng)用程序連接建立成功;第四步,接收方收到TPCMD—CONNECT—EST命令數(shù)據(jù)包后,通知上層應(yīng)用程序有新的客戶端連接建立。
5、 根據(jù)權(quán)利要求4所述使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣?在于,所述TPCMD一CONNECT命令數(shù)據(jù)包中包含發(fā)送方所使用的接收隊列的大 小、通道號以及初始數(shù)據(jù)包的序列號;所述TPCMDj:ONNECT一ACK命令數(shù)據(jù)包 包含接收方所使用的接收隊列的大小、通道號和初始數(shù)據(jù)包的序列號。
6、 根據(jù)權(quán)利要求1至3中任一項所述使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)?方法,其特征在于,所述步驟(2)的具體過程如下所述數(shù)據(jù)隊列為先進 先出隊列,當發(fā)送方發(fā)送數(shù)據(jù)時,需先將數(shù)據(jù)包編號后加入該數(shù)據(jù)隊列的 隊尾,然后發(fā)送命令字為TPCMD—STRE旭—FRAME的命令數(shù)據(jù)包給接收方;接 收方接收到該命令字為TPCMD—FRAME的命令數(shù)據(jù)包后,發(fā)送命令字為 TPCMD—STREAM—FRAME—ACK的UDP命令數(shù)據(jù)包回應(yīng)給發(fā)送方,然后發(fā)送方再將 相應(yīng)序號之前所有的數(shù)據(jù)包移出發(fā)送隊列。
7、 根據(jù)權(quán)利要求1至3中任一項所述使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)?方法,其特征在于,所述步驟(3)的具體過程為所述接收緩沖的位置是 由數(shù)據(jù)包的序列號決定,相鄰序列號的數(shù)據(jù)放置在一起并被合并成一個數(shù) 據(jù)塊;當接收緩沖區(qū)頭部被連續(xù)數(shù)據(jù)塊填充后,將所述數(shù)據(jù)塊通過回調(diào)函 數(shù)通知上層應(yīng)用程序;然后,將接收緩沖區(qū)的頭部指針向后移動;當接收 緩沖區(qū)的頭部指針移到接收緩沖區(qū)尾部后,將接收緩沖區(qū)的頭部指針重置 到緩沖區(qū)頭部。
8、 根據(jù)權(quán)利要求1所述使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣?在于,所述步驟(4)具體包括向接收方發(fā)送TPCMD—DISCONNECT命令數(shù)據(jù)包,并將自己設(shè)置為CLOSE—WAIT狀態(tài);接收方收到TPCMD—DISCONNECT命令數(shù)據(jù)包后通知上層應(yīng) 用程序連接通道己經(jīng)關(guān)閉并向發(fā)送方發(fā)送TPCMD一DISCONNECT一ACK命令數(shù)據(jù) 包,最后釋放連接通道;接收方收到TPCMD—DISCO腦ECT一ACK命令數(shù)據(jù)包后 釋放連接通道。
9、 根據(jù)權(quán)利要求2所述使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,通過在發(fā)送方設(shè)置重傳定時器的方式來實現(xiàn)所述超時重傳步驟。
10、 根權(quán)利要求3所述使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)姆椒?其特征在于,所述擁塞控制機制中包括一擁塞探測狀態(tài)標志和一擁塞閥值;所述擁 塞探測狀態(tài)標志為布爾型變量,用于表示當前是否在進行擁塞探測;所述 擁塞閥值以字節(jié)為單位,用于限制發(fā)送隊列中已經(jīng)發(fā)送但未被確認的數(shù)據(jù) 包的數(shù)量。
11、 根據(jù)權(quán)利要求10所述使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)姆椒?其特 征在于,所述擁塞控制機制用于實現(xiàn)如下操作發(fā)送方發(fā)送數(shù)據(jù)時,首先檢查所述擁塞探測狀態(tài)標志,如果該值為 "真",則計算出第一可發(fā)送數(shù)據(jù)量,該第一可發(fā)送數(shù)據(jù)量二擁塞閥值-發(fā) 送隊列中未被確認的數(shù)據(jù)包的數(shù)量;只有當所述第一可發(fā)送數(shù)據(jù)量大于零 時才會發(fā)送數(shù)據(jù)包到接收方,并將發(fā)出的數(shù)據(jù)放入發(fā)送隊列尾部;如果所述擁塞探測狀態(tài)為"假",則計算出第二可發(fā)送數(shù)據(jù)量,所述 第二可發(fā)送數(shù)據(jù)量等于發(fā)送隊列的剩余空間大?。蝗缓?,將所述第二可發(fā) 送數(shù)據(jù)量的數(shù)據(jù)發(fā)送到接收方后將數(shù)據(jù)放入發(fā)送隊列尾部;接著,檢査當前發(fā)送隊列的大小,如果該當前發(fā)送隊列的大小大于擁 塞閥值大小,則將所述擁塞探測標志設(shè)為"真";而當發(fā)送隊列中的所有數(shù)據(jù)都被確認并且沒有出現(xiàn)超時重傳的情況時,將所述擁塞探測標志設(shè)為 "假",并將所述擁塞伐值增加一個最大發(fā)送單位;如果出現(xiàn)過超時重傳 的情況,則在所有數(shù)據(jù)都被確認后,將所述擁塞探測標志設(shè)為"假",并 將所述擁塞閥值減小一個最大發(fā)送單位。
全文摘要
本發(fā)明公開了一種使用UDP協(xié)議進行可靠數(shù)據(jù)傳輸?shù)姆椒?,可避免發(fā)生數(shù)據(jù)報丟失、數(shù)據(jù)包亂序到達等現(xiàn)象,而且可實現(xiàn)擁塞控制,從而實現(xiàn)可使用UDP協(xié)議在互聯(lián)網(wǎng)中進行可靠的數(shù)據(jù)傳輸,增強P2P等互聯(lián)網(wǎng)應(yīng)用中數(shù)據(jù)傳輸?shù)姆奖阈院统晒β省T摲椒ㄖ饕ㄔ诎l(fā)送方和接收方之間進行連接握手的步驟;在數(shù)據(jù)傳輸過程中,將發(fā)送方發(fā)出的數(shù)據(jù)保存到發(fā)送隊列中,并在收到接收方回應(yīng)后再將已發(fā)送的數(shù)據(jù)從發(fā)送隊列中刪除的步驟;在數(shù)據(jù)傳輸過程中,接收方接收到發(fā)送方發(fā)來的數(shù)據(jù)包后,按照所述數(shù)據(jù)包的序列號將有效數(shù)據(jù)放入接收緩沖中的步驟;數(shù)據(jù)發(fā)送方和接受方之間協(xié)商關(guān)閉連接的步驟。
文檔編號H04L12/56GK101436978SQ20071009423
公開日2009年5月20日 申請日期2007年11月15日 優(yōu)先權(quán)日2007年11月15日
發(fā)明者高先超 申請人:盛樂信息技術(shù)(上海)有限公司