報文傳輸方法及裝置製造方法
2023-10-08 07:36:09 2
報文傳輸方法及裝置製造方法
【專利摘要】本發明提供報文傳輸方法及裝置,所述方法包括:客戶端設備與伺服器之間建立用於傳輸直播業務的數據報文的TCP連接,接收所述伺服器通過所述TCP連接持續傳輸的數據報文;判斷接收的數據報文的丟包率是否小於丟包閾值;當小於所述丟包閾值時,根據接收的數據報文直接播放所述直播業務;當不小於所述丟包閾值時,向所述伺服器請求重傳丟失的數據報文。應用本發明實施例,客戶端設備可以在數據報文丟包較少時,避免因為請求重傳而產生的延遲,從而提高了直播業務的實時性。
【專利說明】報文傳輸方法及裝置【技術領域】
[0001 ] 本發明涉及網絡通信【技術領域】,尤其涉及報文傳輸方法及裝置。
【背景技術】
[0002]隨著數據通信與多媒體業務需求的發展,適應移動數據、移動計算及移動多媒體運作需要的第四代移動通信(4G)開始興起,其使得人們能夠通過網絡實現各種直播業務,例如,隨時隨地的視頻交流,以及網上觀看電影等。在實現直播業務時,用戶的客戶端設備可以與支持直播業務的伺服器之間建立TCP (Transmiss1n Control Protocol,傳輸控制協議)連接,然後由伺服器通過該TCP連接向客戶端設備傳輸直播業務的數據報文。
[0003]在傳輸數據報文的過程中,當由於網絡擁塞或網絡不穩定造成數據報文丟失時,TCP重傳機制支持伺服器向客戶端設備重傳丟失的數據報文,即當伺服器未接收到客戶端設備返回的數據報文的應答報文時,伺服器會向客戶端重傳數據報文。但是,當重傳的數據報文數量較少時,重傳過程仍然需要客戶端設備進行等待,由此使得客戶端設備上的直播業務產生延遲,嚴重時可能中斷直播業務,導致直播業務的實時性不高。
【發明內容】
[0004]本發明提供報文傳輸方法及裝置,以解決現有TCP重傳機制會造成直播業務延遲,導致直播業務的實時性不高的問題。
[0005]根據本發明實施例的第一方面,提供一種報文傳輸方法,所述方法應用在用於實現直播業務的客戶端設備上,所述客戶端設備與伺服器之間建立用於傳輸所述直播業務的數據報文的TCP連接,所述方法包括:
[0006]接收所述伺服器通過所述TCP連接持續傳輸的數據報文;
[0007]判斷接收的數據報文的丟包率是否小於丟包閾值;
[0008]當小於所述丟包閾值時,根據接收的數據報文直接播放所述直播業務;當不小於所述丟包閾值時,向所述伺服器請求重傳丟失的數據報文。
[0009]根據本發明實施例的第二方面,提供一種報文傳輸方法,所述方法應用在用於實現直播業務的伺服器上,所述伺服器與客戶端設備之間建立用於傳輸所述直播業務的數據報文的TCP連接,所述方法包括:
[0010]判斷是否接收到所述客戶端設備的重傳請求,所述重傳請求為所述客戶端設備在接收的數據報文的丟包率不小於丟包閾值時發送的請求;
[0011]當未接收到所述重傳請求時,通過所述TCP連接向所述客戶端設備持續傳輸數據報文,當接收到所述重傳請求時,向所述客戶端設備發送重傳的數據報文。
[0012]根據本發明實施例的第三方面,提供一種報文傳輸裝置,所述裝置應用在用於實現直播業務的客戶端設備上,所述裝置包括:
[0013] 建立單元,用於在所述客戶端設備與伺服器之間建立用於傳輸所述直播業務的數據報文的TCP連接;[0014]接收單元,用於接收所述伺服器通過所述TCP連接持續傳輸的數據報文;
[0015]判斷單元,用於判斷接收的數據報文的丟包率是否小於丟包閾值;
[0016]執行單元,用於當小於所述丟包閾值時,根據接收的數據報文直接播放所述直播業務;當不小於所述丟包閾值時,向所述伺服器請求重傳丟失的數據報文。
[0017]根據本發明實施例的第四方面,提供一種報文傳輸裝置,所述裝置應用在用於實現直播業務的伺服器上,所述裝置包括:
[0018]建立單元,用於在所述伺服器與客戶端設備之間建立用於傳輸所述直播業務的數據報文的TCP連接;
[0019]判斷單元,用於判斷是否接收到所述客戶端設備的重傳請求,所述重傳請求為所述客戶端設備在接收的數據報文的丟包率不小於丟包閾值時發送的請求;
[0020]執行單元,用於當未接收到所述重傳請求時,通過所述TCP連接向所述客戶端設備持續傳輸數據報文,當接收到所述重傳請求時,向所述客戶端設備發送重傳的數據報文。
[0021]本發明實施例中,當客戶端設備與伺服器之間建立TCP連接後,伺服器可以持續向客戶端設備傳輸數據報文,而客戶端設備在數據報文的丟包率小於丟包閾值時,無需請求重傳數據報文,而是根據接收的數據報文直接播放直播業務,因此使得客戶端設備在數據報文丟包較少時,避免了因為請求重傳而產生的延遲,從而提高了直播業務的實時性。
【專利附圖】
【附圖說明】
[0022]圖1是應用本發明實施例實現直播業務的應用場景示意圖;
[0023]圖2是本發明報文傳輸方法的一個實施例流程圖;
[0024]圖3是本發明報文傳輸方法的另一個實施例流程圖;
[0025]圖4是本發明報文傳輸方法的另一個實施例流程圖;
[0026]圖5是本發明報文傳輸控制裝置所在設備的一種硬體結構圖;
[0027]圖6是本發明報文傳輸裝置的一個實施例框圖;
[0028]圖7是本發明報文傳輸裝置的另一個實施例框圖。
【具體實施方式】
[0029]為了使本【技術領域】的人員更好地理解本發明實施例中的技術方案,並使本發明實施例的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖對本發明實施例中技術方案作進一步詳細的說明。
[0030]參見圖1,為應用本發明實施例實現直播業務的應用場景示意圖:
[0031]圖1中,伺服器作為數據報文發送方,客戶端設備作為數據報文接收方,該客戶端設備可以具體為手機、PC (Personal Computer,個人計算機)等。其中,客戶端設備與伺服器之間建立TCP連接後,通過接收伺服器傳輸的數據報文實現直播業務。本發明實施例中,客戶端設備可以無需在接收到數據報文時返回應答報文,因此伺服器可以持續向客戶端設備傳輸直播業務的數據報文,當客戶端設備檢測到數據報文的丟包率較小時,可以不請求重傳數據報文,而是直接播放直播業務,從而在丟包率較小的情況下,客戶端設備上的直播業務不會延遲,以此保證直播業務的實時性。
[0032]參見圖2,為本發明報文傳輸方法的一個實施例流程圖,該實施例從客戶端設備側進行描述,包括以下步驟:
[0033]步驟201:客戶端設備與伺服器之間建立用於傳輸直播業務的數據報文的TCP連接。
[0034]本實施例中,客戶端設備與伺服器之間可以採用現有方式完成TCP連接的建立,在此不再贅述。
[0035]步驟202:客戶端設備接收伺服器通過TCP連接持續傳輸的數據報文。
[0036]本實施例中,客戶端設備可以預先與伺服器協商報文傳輸非應答機制,即客戶端設備接收伺服器發送的TCP協商報文,該TCP協商報文的TCP選項中可以攜帶用於指示所述TCP協商報文的第一類型值,以及重傳閾值,客戶端設備可以根據該重傳閾值確定丟包閾值,然後向伺服器返回TCP協商應答報文,所述TCP協商應答報文中攜帶第一類型值,以使伺服器根據該第一類型值確定與客戶端設備協商成功。
[0037]協商成功後,客戶端設備在接收到數據報文後,不再向伺服器返回應答報文,而伺服器可以在不接收應答報文的情況下,持續向客戶端設備傳輸數據報文。
[0038]步驟203:客戶端設備判斷接收的數據報文的丟包率是否小於丟包閾值,若是,則執行步驟204 ;否則,執行步驟205。
[0039]本實施例中,客戶端設備可以按照預設的傳輸周期對丟包率進行判斷,在每個傳輸周期開始時,客戶端設備接收伺服器傳輸的TCP保活報文,該TCP保活報文的TCP選項中攜帶用於指示該TCP保活報文的第二類型值,以及該傳輸周期內首個數據報文的序列號;客戶端設備將首個數據報文的序列號作為統計值的初始值,每接收到一個數據報文時,將統計值加一,當所述傳輸周期到達時,根據統計值獲得傳輸周期內數據報文的實際接收數量,然後根據該傳輸周期內數據報文的實際接收數量和數據報文的應接收數量統計該傳輸周期內數據報文的丟包率。
[0040]步驟204:根據接收的數據報文直接播放直播業務,結束當前流程。
[0041]步驟205:向伺服器請求重傳丟失的數據報文,結束當前流程。
[0042]本實施例中,當客戶端設備判斷接收的數據報文的丟包率不小於丟包閾值時,說明當前客戶端設備側丟包率較高,因此客戶端設備可以向伺服器發送TCP重傳請求報文,TCP重傳請求報文的TCP選項中攜帶用於指示該TCP重傳請求報文的第三類型值,以及請求重傳的數據報文的重傳序列號,並接收伺服器根據重傳序列號返回的數據報文。
[0043]由上述實施例可見,當客戶端設備與伺服器之間建立TCP連接後,伺服器可以持續向客戶端設備傳輸數據報文,而客戶端設備在數據報文的丟包率小於丟包閾值時,無需請求重傳數據報文,而是根據接收的數據報文直接播放直播業務,因此使得客戶端設備在數據報文丟包較少時,避免了因為請求重傳而產生的延遲,從而提高了直播業務的實時性。
[0044]參見圖3,為本發明報文傳輸方法的另一個實施例流程圖,該實施例從伺服器側進行描述,包括以下步驟:
[0045]步驟301:伺服器與客戶端設備之間建立用於傳輸直播業務的數據報文的TCP連接。
[0046]步驟302:判斷是否接收到客戶端設備的重傳請求,若是,則執行步驟303 ;否則,執行步驟304。
[0047]所述重傳請求為所述客戶端設備在接收的數據報文的丟包率不小於丟包閾值時發送的請求
[0048]步驟303:通過TCP連接向客戶端設備持續傳輸數據報文,結束當前流程。
[0049]步驟304:向所述客戶端設備發送重傳的數據報文,結束當前流程。
[0050]圖3所示實施例與前述圖2所示實施例的描述一致,其區別僅在於執行主體不同,在此不再贅述。
[0051]由上述實施例可見,當客戶端設備與伺服器之間建立TCP連接後,伺服器可以持續向客戶端設備傳輸數據報文,而客戶端設備在數據報文的丟包率小於丟包閾值時,無需請求重傳數據報文,而是根據接收的數據報文直接播放直播業務,因此使得客戶端設備在數據報文丟包較少時,避免了因為請求重傳而產生的延遲,從而提高了直播業務的實時性。
[0052]參見圖4,為本發明報文傳輸方法的另一個實施例流程圖,該實施例通過客戶端設備與伺服器之間的交互,詳細描述了本發明實施例的報文傳輸過程:
[0053]步驟400:伺服器與客戶端設備之間建立TCP連接。
[0054]本實施例中,客戶端設備與伺服器之間可以採用現有技術中的三次握手過程完成TCP連接的建立,在此不再贅述。
[0055]步驟401:伺服器向客戶端設備發送TCP協商報文。 [0056]本實施例中,伺服器上可以預先配置一條「TCP NO ACK」命令,即「傳輸非應答」命令。根據該命令,當客戶端設備連接到伺服器時,伺服器與該客戶端設備協商「傳輸非應答機制」,即客戶端設備不向伺服器返回數據報文的應答報文,而伺服器持續傳輸數據報文。
[0057]在協商時,伺服器首先向客戶端設備發送TCP協商報文,該TCP協商報文中的TCP選項中攜帶用於指示該TCP協商報文的第一類型值和重傳閾值。如下表1所示,為一種TCP協商報文中的TCP選項示例:
[0058]表1
[0059]
【權利要求】
1.一種報文傳輸方法,所述方法應用在用於實現直播業務的客戶端設備上,所述客戶端設備與伺服器之間建立用於傳輸所述直播業務的數據報文的TCP連接,其特徵在於,所述方法包括: 接收所述伺服器通過所述TCP連接持續傳輸的數據報文; 判斷接收的數據報文的丟包率是否小於丟包閾值; 當小於所述丟包閾值時,根據接收的數據報文直接播放所述直播業務;當不小於所述丟包閾值時,向所述伺服器請求重傳丟失的數據報文。
2.根據權利要求1所述的方法,其特徵在於,所述接收所述伺服器通過所述TCP連接持續傳輸的數據報文之前,所述方法還包括: 與所述伺服器協商報文傳輸非應答機制,以使所述客戶端設備在協商成功後不向所述伺服器返回數據報文的應答報文; 所述接收所述伺服器通過所述TCP連接持續傳輸的數據報文包括:接收所述伺服器根據所述報文傳輸非應答機制,通過所述TCP連接向所述客戶端設備持續傳輸的數據報文。
3.根據權利要求2所述的方法,其特徵在於,所述與所述伺服器協商報文傳輸非應答機制包括: 接收所述伺服器發送的TCP協商報文,所述TCP協商報文的TCP選項中攜帶用於指示所述TCP協商報文的第一類型值,以及重傳閾值; 根據所述重傳閾值確定所述丟包閾值; 向所述伺服器返回TCP協商應答報文,所述TCP協商應答報文中攜帶所述第一類型值,以使所述伺服器根據所述第一類型值確定與所述客戶端設備協商成功。
4.根據權利要求1所述的方法,其特徵在於,所述方法還包括: 在每個傳輸周期開始時,接收所述伺服器傳輸的TCP保活報文,所述TCP保活報文的TCP選項中攜帶用於指示所述TCP保活報文的第二類型值,以及所述傳輸周期內首個數據報文的序列號; 所述判斷接收的數據報文的丟包率是否小於丟包閾值包括: 根據所述TCP保活報文獲得每個傳輸周期內接收的數據報文的丟包率; 按照所述傳輸周期判斷丟包率是否小於丟包閾值。
5.根據權利要求4所述的方法,其特徵在於,所述根據所述TCP保活報文獲得每個傳輸周期內接收的數據報文的丟包率包括: 在每個傳輸周期內,將所述首個數據報文的序列號作為統計值的初始值,每接收到一個數據報文時,將所述統計值加一; 當所述傳輸周期到達時,根據所述統計值獲得所述傳輸周期內數據報文的實際接收數量; 根據所述傳輸周期內數據報文的實際接收數量和所述數據報文的應接收數量統計所述傳輸周期內數據報文的丟包率。
6.根據權利要求1至5任一所述的方法,其特徵在於,所述向所述伺服器請求重傳丟失的數據報文包括: 向所述伺服器發送TCP重傳請求報文,所述TCP重傳請求報文的TCP選項中攜帶用於指示所述TCP重傳請求報文的第三類型值,以及請求重傳的數據報文的重傳序列號;接收所述伺服器根據所述重傳序列號返回的數據報文。
7.一種報文傳輸方法,所述方法應用在用於實現直播業務的伺服器上,所述伺服器與客戶端設備之間建立用於傳輸所述直播業務的數據報文的TCP連接,其特徵在於,所述方法包括: 判斷是否接收到所述客戶端設備的重傳請求,所述重傳請求為所述客戶端設備在接收的數據報文的丟包率不小於丟包閾值時發送的請求; 當未接收到所述重傳請求時,通過所述TCP連接向所述客戶端設備持續傳輸數據報文,當接收到所述重傳請求時,向所述客戶端設備發送重傳的數據報文。
8.根據權利要求7所述的方法,其特徵在於,所述方法還包括: 與所述客戶端設備協商報文傳輸非應答機制,以使所述客戶端設備在協商成功後不向所述伺服器返回數據報文的應答報文; 所述通過所述TCP連接向所述客戶端設備持續傳輸數據報文包括:根據所述報文傳輸非應答機制,通過所述TCP連接向所述客戶端設備持續傳輸數據報文。
9.根據權利要求8所述的方法,其特徵在於,所述與所述客戶端設備協商報文傳輸非應答機制包括: 向所述客戶端設備發 送TCP協商報文,所述TCP協商報文的TCP選項中攜帶用於指示所述TCP協商報文的第一類型值,以及重傳閾值,以使所述客戶端設備根據所述重傳閾值確定所述丟包閾值; 當接收到所述客戶端設備返回的TCP協商應答報文後,根據所述TCP協商應答報文中攜帶的所述第一類型值確定與所述客戶端設備協商成功。
10.根據權利要求7至9任一所述的方法,其特徵在於,所述方法還包括: 在每個傳輸周期開始時,向所述客戶端設備傳輸TCP保活報文,所述TCP保活報文的TCP選項中攜帶用於指示所述TCP保活報文的第二類型值,以及所述傳輸周期內首個數據報文的序列號,以使所述客戶端設備根據所述TCP保活報文獲得每個傳輸周期內接收的數據報文的丟包率,並按照所述傳輸周期判斷丟包率是否小於丟包閾值。
11.一種報文傳輸裝置,所述裝置應用在用於實現直播業務的客戶端設備上,其特徵在於,所述裝置包括: 建立單元,用於在所述客戶端設備與伺服器之間建立用於傳輸所述直播業務的數據報文的TCP連接; 接收單元,用於接收所述伺服器通過所述TCP連接持續傳輸的數據報文; 判斷單元,用於判斷接收的數據報文的丟包率是否小於丟包閾值; 執行單元,用於當小於所述丟包閾值時,根據接收的數據報文直接播放所述直播業務;當不小於所述丟包閾值時,向所述伺服器請求重傳丟失的數據報文。
12.根據權利要求11所述的裝置,其特徵在於,所述裝置還包括: 協商單元,用於與所述伺服器協商報文傳輸非應答機制,以使所述客戶端設備在協商成功後不向所述伺服器返回數據報文的應答報文; 所述接收單元,具體用於接收所述伺服器根據所述報文傳輸非應答機制,通過所述TCP連接向所述客戶端設備持續傳輸的數據報文。
13.根據權利要求12所述的裝置,其特徵在於,所述協商單元包括:報文接收子單元,用於接收所述伺服器發送的TCP協商報文,所述TCP協商報文的TCP選項中攜帶用於指示所述TCP協商報文的第一類型值,以及重傳閾值; 閾值確定子單元,用於根據所述重傳閾值確定所述丟包閾值; 報文應答子單元,用於向所述伺服器返回TCP協商應答報文,所述TCP協商應答報文中攜帶所述第一類型值,以使所述伺服器根據所述第一類型值確定與所述客戶端設備協商成功。
14.根據權利要求11所述的裝置,其特徵在於, 所述接收單元,還用於在每個傳輸周期開始時,接收所述伺服器傳輸的TCP保活報文,所述TCP保活報文的TCP選項中攜帶用於指示所述TCP保活報文的第二類型值,以及所述傳輸周期內首個數據報文的序列號; 所述判斷單元包括: 丟包率獲得子單元,用於根據所述TCP保活報文獲得每個傳輸周期內接收的數據報文的丟包率; 丟包閾值判斷子單元,用於按照所述傳輸周期判斷丟包率是否小於丟包閾值。
15.根據權利要求14所述的方法,其特徵在於,所述丟包率獲得子單元包括: 序列號統計模塊,用 於在每個傳輸周期內,將所述首個數據報文的序列號作為統計值的初始值,每接收到一個數據報文時,將所述統計值加一; 報文數量獲得模塊,用於當所述傳輸周期到達時,根據所述統計值獲得所述傳輸周期內數據報文的實際接收數量; 丟包率統計模塊,用於根據所述傳輸周期內數據報文的實際接收數量和所述數據報文的應接收數量統計所述傳輸周期內數據報文的丟包率。
16.根據權利要求11至15任一所述的裝置,其特徵在於,所述執行單元包括: 重傳請求子單元,用於向所述伺服器發送TCP重傳請求報文,所述TCP重傳請求報文的TCP選項中攜帶用於指示所述TCP重傳請求報文的第三類型值,以及請求重傳的數據報文的重傳序列號; 重傳接收子單元,用於接收所述伺服器根據所述重傳序列號返回的數據報文。
17.一種報文傳輸裝置,其特徵在於,所述裝置應用在用於實現直播業務的伺服器上,所述裝置包括: 建立單元,用於在所述伺服器與客戶端設備之間建立用於傳輸所述直播業務的數據報文的TCP連接; 判斷單元,用於判斷是否接收到所述客戶端設備的重傳請求,所述重傳請求為所述客戶端設備在接收的數據報文的丟包率不小於丟包閾值時發送的請求; 執行單元,用於當未接收到所述重傳請求時,通過所述TCP連接向所述客戶端設備持續傳輸數據報文,當接收到所述重傳請求時,向所述客戶端設備發送重傳的數據報文。
18.根據權利要求17所述的裝置,其特徵在於,所述裝置還包括: 協商單元,用於與所述客戶端設備協商報文傳輸非應答機制,以使所述客戶端設備在協商成功後不向所述伺服器返回數據報文的應答報文; 所述執行單元,具體用於根據所述報文傳輸非應答機制,通過所述TCP連接向所述客戶端設備持續傳輸數據報文。
19.根據權利要求18所述的裝置,其特徵在於,所述協商單元包括: 報文發送子單元,用於向所述客戶端設備發送TCP協商報文,所述TCP協商報文的TCP選項中攜帶用於指示所述TCP協商報文的第一類型值,以及重傳閾值,以使所述客戶端設備根據所述重傳閾值確定所述丟包閾值; 協商確認子單元,用於當接收到所述客戶端設備返回的TCP協商應答報文後,根據所述TCP協商應答報文中攜帶的所述第一類型值確定與所述客戶端設備協商成功。
20.根據權利要求17至19任一所述的裝置,其特徵在於,所述裝置還包括: 傳輸單元,用於在每個傳輸周期開始時,向所述客戶端設備傳輸TCP保活報文,所述TCP保活報文的TCP選項中攜帶用於指示所述TCP保活報文的第二類型值,以及所述傳輸周期內首個數據報文的序列號,以使所述客戶端設備根據所述TCP保活報文獲得每個傳輸周期內接收的數據報文的丟包率,並按照所述傳輸周期判斷丟包率是否小於丟包閾值。
【文檔編號】H04N21/647GK104038845SQ201410306557
【公開日】2014年9月10日 申請日期:2014年6月30日 優先權日:2014年6月30日
【發明者】徐燕成, 羅瀟, 王偉 申請人:杭州華三通信技術有限公司