一種提高tcp網絡會話速度的方法
【專利摘要】本發(fā)明公開了一種提高tcp網絡會話速度的方法,包括:發(fā)送端通過udp報文頭封裝待發(fā)送的tcp報文,得到第一udp報文;發(fā)送端向接收端發(fā)送第一udp報文,以使接收端在收到第一udp報文后,通過udp報文頭封裝ack報文,得到第二udp報文,并向發(fā)送端發(fā)送第二udp報文;發(fā)送端在接收到第二udp報文后,發(fā)送下一個待發(fā)送的tcp報文,直至所有待發(fā)送的tcp報文被接收端接收。本發(fā)明提出的提高tcp網絡會話速度的方法,通過upd報文頭封裝tcp報文,利用udp報文的無狀態(tài),易傳輸,udp報文傳輸速度快于tcp報文等特性,提高了tcp網絡會話速度,解決了在網絡環(huán)境不穩(wěn)定的情況下,tcp網絡會話緩慢的問題。
【專利說明】
一種提高tcp網絡會話速度的方法
技術領域
[0001]本發(fā)明涉及通信技術領域,具體涉及一種提高tcp網絡會話速度的方法。
【背景技術】
[0002]基于傳輸控制協(xié)議(Transmiss1nControl Protocol,tcp)的網絡(簡稱tcp網絡)的tcp會話過程如下:tcp會話中發(fā)送方與接收方通過ack來確認報文是否被接收,如發(fā)送方a向接收方b發(fā)送一份data報文,接收方b在收到data報文后會向a發(fā)送一份ack報文,如果a接收到ack報文,則認為b已接收到自己發(fā)送的data報文,如果未收到ack報文,則a再次發(fā)送data報文給b,反復多次,如果在后續(xù)的一段時間內仍舊未接收到b發(fā)送的ack報文,則a認為會話超時。
[0003]如果a向b發(fā)送的data報文或者b向a發(fā)送的ack報文由于網絡狀況不穩(wěn)定而導致未能接收到,則二者之間會重復發(fā)送大量這些未接收到報文,這就造成了網絡延遲高,速度慢的體驗。
[0004]在網絡環(huán)境不穩(wěn)定的情況下,如訪問海外網絡,經常出現tcp網絡訪問較慢,或者無法連接的情況,這是因為網絡的不穩(wěn)定容易造成tcp網絡流量重傳,大量的報文被浪費在確認報文接收狀態(tài)上,持續(xù)的不穩(wěn)定更容易引發(fā)這一狀況。
【發(fā)明內容】
[0005]鑒于上述問題,本發(fā)明提出了克服上述問題或者至少部分地解決上述問題的一種提高tcp網絡會話速度的方法。
[0006]為此目的,本發(fā)明提出一種提高tcp網絡會話速度的方法,包括:
[0007]發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文,得到第一udp報文;
[0008]所述發(fā)送端向接收端發(fā)送所述第一udp報文,以使所述接收端在收到所述第一udp報文后,通過udp報文頭封裝確認ack報文,得到第二 udp報文,并向所述發(fā)送端發(fā)送所述第二 udp報文;
[0009]所述發(fā)送端在接收到所述第二udp報文后,執(zhí)行所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文,以發(fā)送下一個待發(fā)送的tcp報文,直至所有待發(fā)送的tcp報文被所述接收端接收。
[0010]可選的,所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文,得到第一 udp報文之后,所述方法還包括:
[0011 ]所述發(fā)送端將所述第一 udp報文復制多份;
[0012]相應地,所述發(fā)送端向接收端發(fā)送所述第一udp報文,以使所述接收端在收到所述第一 udp報文后,通過udp報文頭封裝確認ack報文,得到第二 udp報文,并向所述發(fā)送端發(fā)送所述第二 udp報文,包括:
[0013]所述發(fā)送端向接收端發(fā)送復制的多份第一udp報文,以使所述接收端在接收到第一份第一 udp報文后,通過udp報文頭封裝確認ack報文,得到第二 udp報文,將所述第二 udp報文復制多份,并向所述發(fā)送端發(fā)送復制的多份第二 Udp報文;
[0014]相應地,所述發(fā)送端在接收到所述第二udp報文后,執(zhí)行所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文,包括:
[0015]所述發(fā)送端在接收到第一份第二udp報文后,執(zhí)行所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文。
[0016]可選的,所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文之前,所述方法還包括:
[0017]發(fā)送端與接收端建立連接,確定發(fā)送端與接收端的會話端口;
[0018]相應地,所述發(fā)送端向接收端發(fā)送所述第一udp報文,包括:
[0019]所述發(fā)送端從發(fā)送端的會話端口向接收端發(fā)送所述第一udp報文,以使所述接收端從接收端的會話端口接收所述第一 udp報文。
[0020]可選的,所述方法還包括:
[0021]所述發(fā)送端在向接收端發(fā)送所述第一udp報文后的預設時長內,沒有收到所述第二 udp報文,則執(zhí)行所述發(fā)送端向接收端發(fā)送所述第一 udp報文,直至收到所述第二 udp報文或連接時長超過預設會話時長;其中,所述連接時長為所述發(fā)送端在向接收端發(fā)送所述第一 udp報文后至接收到所述第二 udp報文的時長。
[0022]相比于現有技術,本發(fā)明提出的提高tcp網絡會話速度的方法,通過用upd報文頭封裝tcp報文,利用udp報文的無狀態(tài),易傳輸,udp報文傳輸速度快于tcp報文等特性,提高了 tcp網絡會話速度,解決了在網絡環(huán)境不穩(wěn)定的情況下,tcp網絡會話緩慢的問題。
【附圖說明】
[0023]圖1為本發(fā)明實施例提供的一種提高tcp網絡會話速度的方法流程圖。
【具體實施方式】
[0024]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。
[0025]需要說明的是,在本文中,“第一”、“第二”僅僅用來將相同的名稱區(qū)分開來,而不是暗示這些名稱之間的關系或者順序。
[0026]如圖1所示,本實施例公開一種提高tcp網絡會話速度的方法,可包括以下步驟101?103:
[0027]101、發(fā)送端通過用戶數據報協(xié)議(User Datagram Protocol,udp)報文頭封裝待發(fā)送的tcp報文,得到第一 udp報文。
[0028]102、所述發(fā)送端向接收端發(fā)送所述第一 udp報文,以使所述接收端在收到所述第一 udp報文后,通過udp報文頭封裝確認ack報文,得到第二 udp報文,并向所述發(fā)送端發(fā)送所述第二 udp報文。
[0029]103、所述發(fā)送端在接收到所述第二 udp報文后,執(zhí)行所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文,以發(fā)送下一個待發(fā)送的tcp報文,直至所有待發(fā)送的tcp報文被所述接收端接收。
[0030]相比于現有技術,本實施例公開的提高tcp網絡會話速度的方法,通過用upd報文頭封裝tcp報文,利用udp報文的無狀態(tài),易傳輸,udp報文傳輸速度快于tcp報文等特性,提高了 tcp網絡會話速度,解決了在網絡環(huán)境不穩(wěn)定的情況下,tcp網絡會話緩慢的問題。
[0031 ]進一步地,為了提尚tcp網絡會話的可靠性,本實施例公開的提尚tcp網絡會話速度的方法,與圖1所示的方法的區(qū)別在于,本實施例中,步驟101:“所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文,得到第一 udp報文”之后,所述方法還包括圖1中未示出的步驟101’:
[0032]101,、所述發(fā)送端將所述第一udp報文復制多份。
[0033]本實施例中,在網絡環(huán)境不穩(wěn)定的情況下,發(fā)送端將第一udp報文復制多份,可有效提高接收端接收到第一 udp的幾率,并且由于udp報文的體積一般較小,在非極限帶寬或非極限硬件利用率的狀況下對tcp網絡傳輸的開銷可忽略不計。
[0034]相應地,本實施例中,圖1所示的步驟102“所述發(fā)送端向接收端發(fā)送所述第一udp報文,以使所述接收端在收到所述第一 udp報文后,通過udp報文頭封裝確認ack報文,得到第二udp報文,并向所述發(fā)送端發(fā)送所述第二udp報文”,具體包括:
[0035]所述發(fā)送端向接收端發(fā)送復制的多份第一udp報文,以使所述接收端在接收到第一份第一 udp報文后,通過udp報文頭封裝確認ack報文,得到第二 udp報文,將所述第二 udp報文復制多份,并向所述發(fā)送端發(fā)送復制的多份第二 udp報文。
[0036]需要說明的是,本實施例中,接收端可能收到多份第一udp報文,接收端只處理接收到的第一份第一 udp報文,并在確認第一 udp報文以及第一 udp報文中的tcp報文合法后,執(zhí)行所述通過udp報文頭封裝確認ack報文的步驟。
[0037]相應地,本實施例中,圖1所示的步驟103:“所述發(fā)送端在接收到所述第二udp報文后,執(zhí)行所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文”,具體包括:
[0038]所述發(fā)送端在接收到第一份第二udp報文后,執(zhí)行所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文。
[0039]需要說明的是,本實施例中,發(fā)送端可能收到多份第二udp報文,發(fā)送端只處理接收到的第一份第二 udp報文,并在確認第二 udp報文以及第udp報文中的ack報文合法后,執(zhí)行所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文的步驟,以發(fā)送下一個待發(fā)送的tcp報文。
[0040]進一步地,為了提高tcp網絡會話的可靠性,本實施例公開的提高tcp網絡會話速度的方法,與圖1所示的方法的區(qū)別在于,本實施例中,步驟101:“所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文,得到第一 udp報文”之前,所述方法還包括圖1中未示出的步驟100:
[0041]100、發(fā)送端與接收端建立連接,確定發(fā)送端與接收端的會話端口。
[0042]相應地,本實施例中,圖1所示的步驟102:“所述發(fā)送端向接收端發(fā)送所述第一udp報文”,具體包括:
[0043]所述發(fā)送端從發(fā)送端的會話端口向接收端發(fā)送所述第一udp報文,以使所述接收端從接收端的會話端口接收所述第一 udp報文。
[0044]例如,發(fā)送端與接收端建立連接,確定發(fā)送端與接收端的會話端口為5000端口,則發(fā)送端從發(fā)送端的5000端口向接收端發(fā)送所述第一udp報文,以使所述接收端從接收端的5000端口接收所述第一 udp報文。
[0045]在一個具體的例子中,圖1所示的方法還包括圖1中未示出的步驟104:
[0046]104、所述發(fā)送端在向接收端發(fā)送所述第一udp報文后的預設時長內,沒有收到所述第二 udp報文,則執(zhí)行所述發(fā)送端向接收端發(fā)送所述第一 udp報文,直至收到所述第二 udp報文或連接時長超過預設會話時長;其中,所述連接時長為所述發(fā)送端在向接收端發(fā)送所述第一 udp報文后至接收到所述第二 udp報文的時長。
[0047]本實施例中,發(fā)送端可在發(fā)送第一udp報文后開始計時,計時時長即為連接時長。
[0048]本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內并且形成不同的實施例。
[0049]雖然結合附圖描述了本發(fā)明的實施方式,但是本領域技術人員可以在不脫離本發(fā)明的精神和范圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權利要求所限定的范圍之內。
【主權項】
1.一種提高tcp網絡會話速度的方法,其特征在于,包括: 發(fā)送端通過用戶數據報協(xié)議Udp報文頭封裝待發(fā)送的tcp報文,得到第一 UdP報文; 所述發(fā)送端向接收端發(fā)送所述第一Udp報文,以使所述接收端在收到所述第一udp報文后,通過udp報文頭封裝確認ack報文,得到第二 udp報文,并向所述發(fā)送端發(fā)送所述第二 udp報文; 所述發(fā)送端在接收到所述第二 udp報文后,執(zhí)行所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文,以發(fā)送下一個待發(fā)送的tcp報文,直至所有待發(fā)送的tcp報文被所述接收端接收。2.根據權利要求1所述的方法,其特征在于,所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文,得到第一 udp報文之后,所述方法還包括: 所述發(fā)送端將所述第一 udp報文復制多份; 相應地,所述發(fā)送端向接收端發(fā)送所述第一 Udp報文,以使所述接收端在收到所述第一Udp報文后,通過udp報文頭封裝確認ack報文,得到第二 udp報文,并向所述發(fā)送端發(fā)送所述第二 udp報文,包括: 所述發(fā)送端向接收端發(fā)送復制的多份第一 udp報文,以使所述接收端在接收到第一份第一 udp報文后,通過udp報文頭封裝確認ack報文,得到第二 udp報文,將所述第二 udp報文復制多份,并向所述發(fā)送端發(fā)送復制的多份第二 udp報文; 相應地,所述發(fā)送端在接收到所述第二 udp報文后,執(zhí)行所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文,包括: 所述發(fā)送端在接收到第一份第二 udp報文后,執(zhí)行所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文。3.根據權利要求1所述的方法,其特征在于,所述發(fā)送端通過用戶數據報協(xié)議udp報文頭封裝待發(fā)送的tcp報文之前,所述方法還包括: 發(fā)送端與接收端建立連接,確定發(fā)送端與接收端的會話端口 ; 相應地,所述發(fā)送端向接收端發(fā)送所述第一 Udp報文,包括: 所述發(fā)送端從發(fā)送端的會話端口向接收端發(fā)送所述第一Udp報文,以使所述接收端從接收端的會話端口接收所述第一 Udp報文。4.根據權利要求1所述的方法,其特征在于,所述方法還包括: 所述發(fā)送端在向接收端發(fā)送所述第一udp報文后的預設時長內,沒有收到所述第二udp報文,則執(zhí)行所述發(fā)送端向接收端發(fā)送所述第一 udp報文,直至收到所述第二 udp報文或連接時長超過預設會話時長;其中,所述連接時長為所述發(fā)送端在向接收端發(fā)送所述第一udp報文后至接收到所述第二 Udp報文的時長。
【文檔編號】H04L29/08GK105897740SQ201610348069
【公開日】2016年8月24日
【申請日】2016年5月23日
【發(fā)明人】周晨
【申請人】漢柏科技有限公司