Udp數據包的傳輸方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明適用于數據通信【技術領域】,提供了一種UDP數據包的傳輸方法及系統(tǒng),其中,方法包括:客戶端向服務器請求用于檢測UDP數據包傳輸的TCP心跳檢測連接;服務器確認客戶端的TCP心跳檢測連接,設置TCP心跳檢測連接的心跳間隔時間;客戶端向服務器發(fā)送UDP數據傳輸請求;服務器接受UDP數據傳輸請求,開始UDP數據傳輸;客戶端接收到第一個UDP數據包后,設置檢測窗口,當一個心跳間隔時間結束后,通過TCP心跳檢測連接將檢測結果發(fā)送給服務器;判斷服務器在一個心跳間隔內是否收到了客戶端的檢測結果;若收到,則根據檢測結果決定是否需要重傳UDP數據包。本發(fā)明提供的UDP數據包的傳輸方法及系統(tǒng),通過建立心跳檢測通信,可以有效地提高UDP數據傳輸的可靠性。
【專利說明】UDP數據包的傳輸方法及系統(tǒng)
【技術領域】
[0001] 本發(fā)明屬于數據通信【技術領域】,尤其涉及一種UDP (User Datagram Protocol)數 據包的傳輸方法及系統(tǒng)。
【背景技術】
[0002] 在通信技術異常發(fā)達的今天,隨著人們生活水平的提高,對接受信息的質量要求 越來越高,不可避免,數據傳輸的要求也越來越高,特別是對聲音,視頻流等高質量流暢播 放需求,要求數據傳輸既要實時,又要可靠。
[0003] 目前常用的網絡數據傳輸協(xié)議有兩種:傳輸控制協(xié)議(Transmission Control Protocol,以下簡稱為TCP)和用戶數據報協(xié)議(User Datagram Protocol,以下簡稱為 UDP)。TCP是可靠的,面向連接的協(xié)議,有完善的數據傳輸驗證機制,可靠性高,但是數據傳 輸效率偏低,信道利用率偏低;UDP是為了提高數據傳輸效率設計的,但其對發(fā)送出去的數 據沒有驗證機制,數據傳輸的可靠性較差,不適合對實時性、可靠性都有較高要求的應用環(huán) 境。
[0004] 針對UDP可靠性較差的問題,可以通過提供選擇重傳功能,使得丟失的數據包能 被發(fā)送方重新傳送,來提高UDP數據傳輸的可靠性,也可以通過提供UDP流量控制,測試往 返時延(Round-Trip Time,以下簡稱為RTT),控制發(fā)送速率,來提高UDP數據傳輸的可靠 性。
[0005] UDP選擇重傳功能是指在任意時刻,發(fā)送方都維持了一個連續(xù)的允許發(fā)送的幀的 序號,同時,接收方也維持了一個連續(xù)的允許接收的幀的序號,當發(fā)送方發(fā)送幀后,等待接 收方的確認信息,然后接收方回應是否有包丟失需要發(fā)送方重傳,發(fā)送方根據收到的重傳 請求將指定序號的數據包重傳。但是,在UDP選擇重傳協(xié)議中,接收方發(fā)送的重傳請求包可 能會因網絡不穩(wěn)定丟失,導致發(fā)送方捕捉不到,無法重傳。
[0006] UDP流量控制是指發(fā)送方收到接收方的確認包,然后測量這些數據包的RTT,當 RTT超過閾值,就控制發(fā)送端數據包發(fā)送速率,降低接收方接收數據包的丟失率,從而提高 UDP數據傳送的可靠性。但是,接收方發(fā)送的確認包可能會因網絡不穩(wěn)定丟失,使得發(fā)送方 無法測量RTT,無法調整發(fā)包速率。
[0007] 針對UDP可靠性差的缺陷,為了應對實際應用環(huán)境中,高質量,高效率數據傳輸的 需求,本技術提供了一種通過建立心跳檢測通信提高UDP數據傳輸可靠性的方法。
【發(fā)明內容】
[0008] 本發(fā)明的目的在于提供一種UDP數據包的傳輸方法及系統(tǒng),旨在解決現有UDP數 據傳輸的可靠性較差的技術問題。
[0009] 本發(fā)明是這樣實現的,一種UDP數據包的傳輸方法,包括:客戶端向服務器請求用 于檢測所述UDP數據包傳輸的TCP心跳檢測連接的步驟;所述服務器確認所述客戶端的所 述TCP心跳檢測連接,設置所述TCP心跳檢測連接的心跳間隔時間的步驟;所述客戶端向所 述服務器發(fā)送UDP數據傳輸請求的步驟;所述服務器接受所述UDP數據傳輸請求,開始UDP 數據傳輸的步驟;所述客戶端接收到第一個所述UDP數據包后,設置檢測窗口,當所述TCP 心跳檢測連接的一個心跳間隔時間結束后,通過所述TCP心跳檢測連接將檢測結果發(fā)送給 所述服務器的步驟;判斷所述服務器在所述一個心跳間隔內是否收到了所述客戶端的所述 檢測結果的步驟;以及若所述服務器在所述一個心跳間隔內收到了所述客戶端的所述檢測 結果,則根據所述檢測結果決定是否需要重傳所述UDP數據包的步驟。
[0010] 較優(yōu)的,若所述UDP數據包的丟包率達到閾值,則對所述UDP數據包的所述發(fā)送速 率進行調整。
[0011] 較優(yōu)的,還包括:若所述服務器在所述一個心跳間隔內沒有收到所述客戶端的所 述檢測結果,則重傳上一次的UDP數據包,并調整所述UDP數據包的發(fā)送速率。
[0012] 較優(yōu)的,調整所述UDP數據包的所述發(fā)送速率是將所述UDP數據包的當前發(fā)送速 率減半。
[0013] 較優(yōu)的,若所述服務器在連續(xù)5個心跳間隔內沒有收到所述TCP心跳檢測連接返 回的檢測結果,則停止傳送所述UDP數據包。
[0014] 較優(yōu)的,還包括:將所述TCP心跳檢測連接的所述心跳間隔時間發(fā)送至所述客戶 端的步驟;所述客戶端確認所述TCP心跳檢測連接的所述心跳間隔時間,啟動數據接收檢 測線程并等待激活的步驟;以及所述客戶端接收到第一個UDP數據包時,激活所述數據接 收檢測線程的步驟。
[0015] 較優(yōu)的,所述數據接收檢測線程用于檢查所述UDP數據包在一個心跳間隔時間內 是否有丟失。
[0016] 較優(yōu)的,還包括:所述客戶端開啟緩沖區(qū)用于緩沖UDP數據包的步驟。
[0017] 本發(fā)明的另一目的在于提供一種UDP數據包的傳輸系統(tǒng),包括:客戶端以及服務 器,所述客戶端包括TCP請求模塊、UDP請求模塊以及檢測模塊,所述服務器包括設置模塊、 數據傳輸模塊以及處理模塊,其中:所述TCP請求模塊,向所述服務器的所述設置模塊請求 用于檢測UDP數據包傳輸的TCP心跳檢測連接;所述設置模塊,確認所述客戶端的所述TCP 心跳檢測連接,設置所述TCP心跳檢測連接的心跳間隔時間;所述UDP請求模塊,向所述服 務器發(fā)送UDP數據傳輸請求;所述數據傳輸模塊,接受所述UDP數據傳輸請求,開始UDP數 據傳輸;所述檢測模塊,于接收到第一個UDP數據包后,設置檢測窗口,當所述TCP心跳檢測 的一個心跳間隔時間結束后,通過所述TCP心跳檢測連接將檢測結果發(fā)送給所述服務器; 以及所述處理模塊,判斷所述服務器在所述一個心跳間隔內是否收到了所述客戶端發(fā)送的 所述檢測結果,若收到,則根據所述檢測結果決定是否需要重傳 UDP數據包,若沒收到,則 重傳上一次的UDP數據包,并調整所述UDP數據包的發(fā)送速率。
[0018] 較優(yōu)的,所述檢測模塊中進一步包括數據接收檢測模塊,用于檢測所述UDP數據 包在一個心跳間隔時間內是否有丟失,并生成檢測結果。
[0019] 較優(yōu)的,所述客戶端還包括緩沖模塊,用于緩沖數據。
[0020] 較優(yōu)的,所述處理模塊預先設置丟包率閾值,當所述UDP數據包的丟包率達到閾 值后,對所述UDP數據包的所述發(fā)送速率進行調整。
[0021] 本發(fā)明提供的UDP數據包的傳輸方法及系統(tǒng),通過建立心跳檢測通信,可以有效 地提高UDP數據傳輸的可靠性。
【專利附圖】
【附圖說明】
[0022] 為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據這些附圖獲得其他的附圖。
[0023] 圖1是本發(fā)明一實施例提供的UDP數據包的傳輸方法流程圖。
[0024] 圖2是本發(fā)明另一實施例提供的UDP數據包的傳輸方法流程圖。
[0025] 圖3是本發(fā)明另一實施例提供的UDP數據包的傳輸方法流程圖。
[0026] 圖4是本發(fā)明一實施例提供的UDP數據包的傳輸系統(tǒng)的結構示意圖。
【具體實施方式】
[0027] 為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
[0028] 請參見圖1,圖1是本發(fā)明一實施例提供的UDP數據包的傳輸方法流程圖,如圖1 所示,UDP數據包的傳輸方法100包括以下步驟: 步驟S101 :客戶端向服務器請求用于檢測UDP數據包傳輸的TCP心跳檢測連接。
[0029] 步驟S103 :服務器確認客戶端的TCP心跳檢測連接,設置TCP心跳檢測連接的心 跳間隔時間,其中,心跳間隔時間是根據網絡狀況和系統(tǒng)性能設置。
[0030] 步驟S105 :客戶端向服務器發(fā)送UDP數據傳輸請求。
[0031] 步驟S107 :服務器接受UDP數據傳輸請求,開始UDP數據傳輸。
[0032] 步驟S109 :客戶端接收到第一個UDP數據包后,設置檢測窗口,當一個TCP心跳檢 測的心跳間隔時間結束后,通過TCP心跳檢測連接將檢測結果發(fā)送給服務器。
[0033] 步驟S111 :判斷服務器在一個TCP心跳檢測連接心跳間隔內是否收到了客戶端的 檢測結果。若收到,則執(zhí)行步驟S113 ;若沒收到,則執(zhí)行步驟S115。
[0034] 步驟S113 :若服務器在一個TCP心跳檢測連接心跳間隔內收到了客戶端的檢測結 果,則根據檢測結果決定是否需要重傳 UDP數據包,并設置閾值,當UDP數據包的丟包率達 到閾值后,對UDP數據包的發(fā)送速率進行調整,具體調整方式為:當丟包率比較高時,將所 述UDP數據包的當前發(fā)送速率減半,當丟包率比較低時,將所述UDP數據包的當前發(fā)送速率 逐步增加。
[0035] 步驟S115 :若服務器在一個TCP心跳檢測連接的心跳間隔內沒有收到客戶端返回 的檢測結果,則重傳上一次的UDP數據包,并調整UDP數據包的發(fā)送速率。其中,具體調整 方式為:將當前UDP數據包的發(fā)送速率減半,每隔一個心跳間隔再減半,若連續(xù)5個時間間 隔沒有收到TCP心跳檢測連接返回的檢測結果,則可認為網絡環(huán)境很差,停止傳送UDP數據 包,直到網絡環(huán)境恢復為止。
[0036] 根據以上UDP數據包的傳輸方法100,服務器及客戶端通過TCP心跳檢測連接持續(xù) 檢測并調整UDP數據包的發(fā)送速率,直到客戶端停止數據請求,以保證雙方通信高效并可 A+^. Ο
[0037] 請參見圖2,圖2是本發(fā)明另一實施例提供的UDP數據包的傳輸方法流程圖,如圖 2所示,UDP數據包的傳輸方法200包括以下步驟: 步驟S201 :客戶端向服務器請求用于檢測UDP數據包傳輸的TCP心跳檢測連接。
[0038] 步驟S203 :服務器確認客戶端的TCP心跳檢測連接,設置TCP心跳檢測連接的心 跳間隔時間,同時將TCP心跳檢測連接的心跳間隔時間發(fā)送至客戶端,并檢測客戶端的UDP 數據傳輸請求,其中,心跳間隔時間是根據網絡狀況和系統(tǒng)性能設置。
[0039] 步驟S205 :客戶端確認TCP心跳檢測連接的心跳間隔時間,啟動數據接收檢測線 程,等待激活。其中,數據接收檢測線程用于檢查UDP數據包在一個心跳間隔時間內是否有 丟失。
[0040] 步驟S207 :客戶端向服務器發(fā)送UDP數據傳輸請求。
[0041] 步驟S209 :服務器接受UDP數據傳輸請求,開始UDP數據傳輸,并通過TCP心跳檢 測連接把UDP數據包的發(fā)送速率傳送給客戶端,然后等待客戶端的檢測結果。
[0042] 步驟S211 :客戶端接收到第一個UDP數據包時,激活數據接收檢測線程,并根據收 到的UDP數據包的發(fā)送速率,設置檢測窗口,當一個心跳間隔時間結束后,通過TCP心跳檢 測連接將檢測結果發(fā)送給服務器。
[0043] 步驟S213 :判斷服務器在一個TCP心跳檢測連接心跳間隔內是否收到了客戶端的 檢測結果。若收到,則執(zhí)行步驟S215 ;若沒收到,則執(zhí)行步驟S217。
[0044] 步驟S215 :若服務器在一個TCP心跳檢測連接心跳間隔內收到了客戶端的檢測結 果,則根據檢測結果決定是否需要重傳 UDP數據包,并設置閾值,當UDP數據包的丟包率達 到閾值后,對UDP數據包的發(fā)送速率進行調整,具體調整方式為:當丟包率比較高時,將所 述UDP數據包的當前發(fā)送速率減半,當丟包率比較低時,將所述UDP數據包的當前發(fā)送速率 逐步增加。
[0045] 步驟S217 :若服務器在一個TCP心跳檢測連接的心跳間隔內沒有收到客戶端返回 的檢測結果,則重傳上一次的UDP數據包,并調整UDP數據包的發(fā)送速率。其中,具體調整 方式為:將當前UDP數據包的發(fā)送速率減半,每隔一個心跳間隔再減半,若連續(xù)5個時間間 隔沒有收到TCP心跳檢測連接返回的檢測結果,則可認為網絡環(huán)境很差,停止傳送UDP數據 包,直到網絡環(huán)境恢復為止。
[0046] 根據以上UDP數據包的傳輸方法200,服務器及客戶端通過TCP心跳檢測連接持續(xù) 檢測并調整UDP數據包的發(fā)送速率,直到客戶端停止數據請求,以保證雙方通信高效并可 A+^. Ο
[0047] 請參見圖3,圖3是本發(fā)明另一實施例提供的UDP數據包的傳輸方法流程圖,如圖 3所示,UDP數據包的傳輸方法300包括以下步驟: 步驟S301 :客戶端向服務器請求用于檢測UDP數據包傳輸的TCP心跳檢測連接。
[0048] 步驟S303 :服務器確認客戶端的TCP心跳檢測連接,設置TCP心跳檢測連接的心 跳間隔時間,同時將TCP心跳檢測連接的心跳間隔時間發(fā)送至客戶端,并檢測客戶端的UDP 數據傳輸請求,其中,心跳間隔時間是根據網絡狀況和系統(tǒng)性能設置。
[0049] 步驟S305 :客戶端確認TCP心跳檢測連接的心跳間隔時間,啟動數據接收檢測線 程,等待激活。其中,數據接收檢測線程用于檢查UDP數據包在一個心跳間隔時間內是否有 丟失,通過TCP心跳檢測連接向服務器提供反饋信息,提示服務器數據包丟失統(tǒng)計,并要求 重傳丟失包。
[0050] 步驟S307 :客戶端開啟緩沖區(qū)。其中,緩沖區(qū)用于緩沖數據,例如:視頻播放數據, 以保證當客戶端接收的UDP數據傳輸有丟包產生時,在緩沖區(qū)數據讀取完之前,可以等待 服務器對丟失的UDP數據包進行重傳,補全丟失的數據。
[0051] 步驟S309 :客戶端向服務器發(fā)送UDP數據傳輸請求。
[0052] 步驟S311 :服務器接受UDP數據傳輸請求,開始UDP數據傳輸,并通過TCP心跳檢 測連接把UDP數據包的發(fā)送速率傳送給客戶端,然后等待客戶端的TCP心跳信息,S卩,檢測 結果。
[0053] 步驟S313 :客戶端接收到第一個UDP數據包時,激活數據接收檢測線程,并根據收 到的UDP數據包的發(fā)送速率,設置檢測窗口,同時,開始心跳計時,并把數據解析后,存入緩 沖區(qū),當一個心跳間隔時間結束后,通過TCP心跳檢測連接將檢測結果發(fā)送給服務器。
[0054] 步驟S315 :判斷服務器在一個TCP心跳檢測連接心跳間隔內是否收到了客戶端的 檢測結果。若收到,則執(zhí)行步驟S317 ;若沒收到,則執(zhí)行步驟S319。
[0055] 步驟S317 :若服務器在一個TCP心跳檢測連接心跳間隔內收到了客戶端的檢測結 果,則根據檢測結果決定是否需要重傳 UDP數據包,并設置閾值,當UDP數據包的丟包率達 到閾值后,對UDP數據包的發(fā)送速率進行調整,具體調整方式為:當丟包率比較高時,將所 述UDP數據包的當前發(fā)送速率減半,當丟包率比較低時,將所述UDP數據包的當前發(fā)送速率 逐步增加。
[0056] 步驟S319 :若服務器在一個TCP心跳檢測連接的心跳間隔內沒有收到客戶端返回 的檢測結果,則重傳上一次的UDP數據包,并調整UDP數據包的發(fā)送速率。其中,具體調整 方式為:將當前UDP數據包的發(fā)送速率減半,每隔一個心跳間隔再減半,若連續(xù)5個時間間 隔沒有收到TCP心跳檢測連接返回的檢測結果,則可認為網絡環(huán)境很差,停止傳送UDP數據 包,直到網絡環(huán)境恢復為止。
[0057] 根據以上UDP數據包的傳輸方法300,服務器及客戶端通過TCP心跳檢測連接持續(xù) 檢測并調整UDP數據包的發(fā)送速率,直到客戶端停止數據請求,以保證雙方通信高效并可 A+^. Ο
[0058] 以上實施方式所提供的UDP數據包的傳輸方法在客戶端和服務器之間建立一個 TCP心跳監(jiān)測連接,然后通過檢測信息和心跳連接的穩(wěn)定性來提高可靠性??蛻舳藛⒂靡?個數據接收檢測線程,檢測UDP數據包的丟失情況,并以TCP心跳監(jiān)測連接每隔一個心跳間 隔發(fā)送檢測結果給服務器;服務器根據TCP心跳監(jiān)測連接反饋的信息和TCP心跳監(jiān)測連接 本身是否穩(wěn)定來判斷網絡狀況,并調整UDP數據包傳送速率。合理的整合了 TCP的可靠和 UDP的高效傳輸特性,實現了高質量的數據傳輸。
[0059] 請參見圖4,圖4是本發(fā)明一實施例提供的UDP數據包的傳輸系統(tǒng)的結構示意圖。 如圖4所示,UDP數據包的傳輸系統(tǒng)400包括:客戶端410以及服務器420,其中,客戶端 410包括TCP請求模塊411、UDP請求模塊412、以及檢測模塊413 ;服務器420包括設置模 塊421、數據傳輸模塊422、以及處理模塊423。
[0060] 客戶端410的TCP請求模塊411向設置模塊421請求用于檢測UDP數據包傳輸的 TCP心跳監(jiān)測連接。
[0061] 服務器420的設置模塊421確認客戶端410的TCP心跳監(jiān)測連接,設置TCP心跳 監(jiān)測連接的心跳間隔時間,其中,心跳間隔時間是根據網絡狀況和系統(tǒng)性能設置。
[0062] 客戶端410的UDP請求模塊412向服務器420發(fā)送UDP數據傳輸請求。
[0063] 服務器420的數據傳輸模塊422接受UDP數據傳輸請求,開始UDP數據傳輸。
[0064] 客戶端410的檢測模塊413接收到第一個UDP數據包后,設置檢測窗口,當一個 TCP心跳檢測的心跳間隔時間結束后,通過TCP心跳檢測連接將檢測結果發(fā)送給服務器 420。檢測模塊413中進一步包括數據接收檢測模塊(圖中未示),用于檢測UDP數據包在一 個心跳間隔時間內是否有丟失,并生成檢測結果。
[0065] 服務器420的處理模塊423判斷服務器420在一個TCP心跳檢測連接心跳間隔內 是否收到了客戶端410發(fā)送的檢測結果。若收到,則根據檢測結果決定是否需要重傳數據 包;若沒收到,則重傳上一次的UDP數據包,并調整UDP數據包的發(fā)送速率。
[0066] 另外,處理模塊423還會預先設置一丟包率閾值,當UDP數據包的丟包率達到閾值 后,對UDP數據包的發(fā)送速率進行調整,具體調整方式為:當丟包率比較高時,將所述UDP數 據包的當前發(fā)送速率減半,當丟包率比較低時,將所述UDP數據包的當前發(fā)送速率逐步增 力口。若處理模塊423在一個TCP心跳檢測連接的心跳間隔內沒有收到客戶端返回的檢測結 果,則將當前UDP數據包的發(fā)送速率減半。若接下來還是沒有收到客戶端返回的檢測結果, 則每隔一個心跳間隔再減半,若連續(xù)5個時間間隔沒有收到TCP心跳檢測連接返回的檢測 結果,則可認為網絡環(huán)境很差,停止傳送UDP數據包,直到網絡環(huán)境恢復為止。
[0067] 客戶端410中還包括緩沖模塊(圖中未示),用于緩沖數據,例如:視頻播放數據, 如果客戶端410接收的UDP數據包有丟失,在從緩沖模塊讀取到該段數據之前,可以等待服 務器420對丟失的UDP數據包進行重傳,以補全數據。
[0068] 以上實施方式所提供的UDP數據包的傳輸方法及系統(tǒng),通過在客戶端以及服務器 之間建立心跳檢測通信,可以有效地提高UDP數據傳輸的可靠性,并保證了信道的利用率 和m)P數據傳輸的高效性。
[0069] 以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。
【權利要求】
1. 一種UDP數據包的傳輸方法,其特征在于,包括: 客戶端向服務器請求用于檢測所述UDP數據包傳輸的TCP心跳檢測連接的步驟; 所述服務器確認所述客戶端的所述TCP心跳檢測連接,設置所述TCP心跳檢測連接的 心跳間隔時間的步驟; 所述客戶端向所述服務器發(fā)送UDP數據傳輸請求的步驟; 所述服務器接受所述UDP數據傳輸請求,開始UDP數據傳輸的步驟; 所述客戶端接收到第一個所述UDP數據包后,設置檢測窗口,當所述TCP心跳檢測連接 的一個心跳間隔時間結束后,通過所述TCP心跳檢測連接將檢測結果發(fā)送給所述服務器的 步驟; 判斷所述服務器在所述一個心跳間隔內是否收到了所述客戶端的所述檢測結果的步 驟;以及 若所述服務器在所述一個心跳間隔內收到了所述客戶端的所述檢測結果,則根據所述 檢測結果決定是否需要重傳所述UDP數據包的步驟。
2. 如權利要求1所述的UDP數據包的傳輸方法,其特征在于: 若所述UDP數據包的丟包率達到閾值,則對所述UDP數據包的所述發(fā)送速率進行調整。
3. 如權利要求1所述的UDP數據包的傳輸方法,其特征在于,還包括: 若所述服務器在所述一個心跳間隔內沒有收到所述客戶端的所述檢測結果,則重傳上 一次的UDP數據包,并調整所述UDP數據包的發(fā)送速率。
4. 如權利要求3所述的UDP數據包的傳輸方法,其特征在于: 調整所述UDP數據包的所述發(fā)送速率是將所述UDP數據包的當前發(fā)送速率減半。
5. 如權利要求3所述的UDP數據包的傳輸方法,其特征在于: 若所述服務器在連續(xù)5個心跳間隔內沒有收到所述TCP心跳檢測連接返回的檢測結 果,則停止傳送所述UDP數據包。
6. 如權利要求1所述的UDP數據包的傳輸方法,其特征在于,還包括: 將所述TCP心跳檢測連接的所述心跳間隔時間發(fā)送至所述客戶端的步驟; 所述客戶端確認所述TCP心跳檢測連接的所述心跳間隔時間,啟動數據接收檢測線程 并等待激活的步驟;以及 所述客戶端接收到第一個UDP數據包時,激活所述數據接收檢測線程的步驟。
7. 如權利要求6所述的UDP數據包的傳輸方法,其特征在于,所述數據接收檢測線程 用于檢查所述UDP數據包在一個心跳間隔時間內是否有丟失。
8. 如權利要求1所述的UDP數據包的傳輸方法,其特征在于,還包括: 所述客戶端開啟緩沖區(qū)用于緩沖UDP數據包的步驟。
9. 一種UDP數據包的傳輸系統(tǒng),其特征在于,包括:客戶端以及服務器,所述客戶端包 括TCP請求模塊、UDP請求模塊以及檢測模塊,所述服務器包括設置模塊、數據傳輸模塊以 及處理模塊,其中: 所述TCP請求模塊,向所述服務器的所述設置模塊請求用于檢測UDP數據包傳輸的TCP 心跳檢測連接; 所述設置模塊,確認所述客戶端的所述TCP心跳檢測連接,設置所述TCP心跳檢測連接 的心跳間隔時間; 所述UDP請求模塊,向所述服務器發(fā)送UDP數據傳輸請求; 所述數據傳輸模塊,接受所述UDP數據傳輸請求,開始UDP數據傳輸; 所述檢測模塊,于接收到第一個UDP數據包后,設置檢測窗口,當所述TCP心跳檢測的 一個心跳間隔時間結束后,通過所述TCP心跳檢測連接將檢測結果發(fā)送給所述服務器;以 及 所述處理模塊,判斷所述服務器在所述一個心跳間隔內是否收到了所述客戶端發(fā)送的 所述檢測結果,若收到,則根據所述檢測結果決定是否需要重傳 UDP數據包,若沒收到,則 重傳上一次的UDP數據包,并調整所述UDP數據包的發(fā)送速率。
10. 如權利要求9所述的UDP數據包的傳輸系統(tǒng),其特征在于: 所述檢測模塊中進一步包括數據接收檢測模塊,用于檢測所述UDP數據包在一個心跳 間隔時間內是否有丟失,并生成檢測結果。
11. 如權利要求9所述的UDP數據包的傳輸系統(tǒng),其特征在于:所述客戶端還包括緩沖 模塊,用于緩沖數據。
12. 如權利要求9所述的UDP數據包的傳輸系統(tǒng),其特征在于: 所述處理模塊預先設置丟包率閾值,當所述UDP數據包的丟包率達到閾值后,對所述 UDP數據包的所述發(fā)送速率進行調整。
【文檔編號】H04L12/26GK104125034SQ201310141743
【公開日】2014年10月29日 申請日期:2013年4月23日 優(yōu)先權日:2013年4月23日
【發(fā)明者】韓峰 申請人:深圳市同洲電子股份有限公司