一種高速傳輸隧道的實現方法及系統的制作方法
【專利摘要】本發明揭示一種高速傳輸隧道的實現方法,除按照TCP協議傳輸步驟外,還包括在VPN客戶端與VPN服務器端建立SSL連接,加密傳輸VPN配置;切換SSL連接為SSL VPN隧道,同時建立DTLS VPN隧道;判斷VPN客戶端協議類型;對于非TCP/UDP的流量,讓其繼續走SSL VPN隧道,對于TCP/UDP的流量,讓其走所述的DTLS VPN隧道。本發明揭示的方法及系統,解決了TCP流量超時重傳和SSL VPN隧道本身重傳的雙重重傳問題,同時解決了UDP應用在TCP隧道中傳輸實時性欠佳、以及非TCP/UDP協議數據走UDP隧道產生的丟包問題。
【專利說明】一種高速傳輸隧道的實現方法及系統
【技術領域】
[0001]本發明涉及網絡傳輸領域,特別涉及一種高速傳輸隧道的實現方法及系統。
【背景技術】
[0002]安全套接層(Secure Socket Layer,簡稱SSL)及其繼任者安全傳輸層(TransportLayer Security,簡稱TLS)是為網絡通訊提供數據保密性和數據完整性的一種安全協議,SSL及TLS被設計為基于可靠傳輸層協議TCP之上,并為上層應用透明地提供安全傳輸。
[0003]SSL VPN是指采用SSL/TLS協議來實現安全隧道的一種新型遠程接入技術,目前被絕大多數的VPN廠商所采用。
[0004]數據報傳輸層安全協議(DatagramTransport Layer Security,簡稱 DTLS)是由IETF提出的解決UDP (User Datagram Protocol用戶數據報協議)應用協議傳輸安全的標準。DTLSvl.0于2006年正式發布,在TLS1.1的基礎上針對UDP協議的丟包及亂序等特性做了相應的擴展,使其能夠為UDP應用協議提供一個安全的傳輸層,并且能保證與TLS具有相同的安全性。
[0005]目前傳統意義上的SSL VPN隧道方案是指完全使用TCP來傳輸所有SSLVPN隧道中的流量數據,這種實現方式在如下方面有很大的缺陷性:
[0006]I)對隧道內的TCP數據流量會發生雙重重傳,從而導致SSL VPN的性能急劇下降,尤其是在丟包、延遲很嚴重的廣域網上。因為SSL VPN隧道本身也是一個TCP連接,當網絡狀況不好時隧道內的TCP連接發生丟包后,不僅隧道內的TCP包會發生重傳,而且SSL VPN隧道本身也會發生重傳,這種雙重重傳的現象會導致重傳包的數量呈指數級增長、加劇網絡擁塞,同時這種雙重重傳是由TCP協議的可靠傳輸機制所決定的、是不可避免的。
[0007]2)對隧道內的UDP應用產生某些限制,比如對一些實時性要求較高的網絡游戲、視頻聊天、語音聊天及VOIP (Voice over Internet Protocol將模擬信號數字化,以數據封包的形式在IP網絡上做實時傳遞)等本身就是為了追求UDP協議的高效性而設計的這類應用。當這類UDP應用被放入TCP隧道后,不可避免的會被隧道本身的TCP協議所影響,一方面受制于TCP隧道的傳輸限制(比如因TCP的可靠傳輸和擁塞控制而導致的時延),而實際上這類應用本身允許丟包而優先保證實時性,另一方面也違背了這類應用協議基于UDP設計的初衷。
[0008]中國專利CN102137100公開了一種構建IP層SSL VPN隧道的方法,它主要是解決由于SSL協議和DTLS協議需二次協商建立連接造成的系統性能的消耗問題,主要的解決方法是先通過SSL協議協商控制連接,得到加密套件和加密參數后再通過DTLS協議使用所述加密套件和加密參數建立數據連接。該方法是采用Μ)Ρ隧道傳輸所有的SSL VPN隧道中的流量數據,TCP隧道不傳輸任何流量數據,僅用于連接控制。雖然避免了雙重重傳的問題,但是全部的數據流量走UDP隧道也帶來了一定的局限性,一是對VPN內的某些重要應用會發生丟包,比如ICMP (Internet Control Message Protocol互聯網控制報文協議)等一系列非TCP/UDP的協議數據,二是缺乏足夠的靈活性來滿足不同的用戶及系統管理人員的特殊需求。
【發明內容】
[0009]為克服已有技術中存在的問題,本發明的目的是提供一種高速傳輸隧道的實現方法及系統,用以解決TCP流量超時重傳和SSL VPN隧道本身重傳的雙重重傳問題,同時解決UDP應用在TCP隧道中傳輸實時性欠佳的問題、以及解決非TCP/UDP協議數據走UDP隧道產生的丟包問題。
[0010]本發明是一種高速傳輸隧道的實現方法,包括按照TCP協議傳輸的方法,還包括以下步驟:
[0011]步驟一,在VPN客戶端與VPN服務器端建立SSL連接,加密傳輸VPN配置;
[0012]步驟二,切換SSL連接為SSL VPN隧道,同時建立DTLS VPN隧道;
[0013]步驟三,判斷VPN客戶端協議類型;
[0014]步驟四,對于非TCP/UDP的流量,讓其繼續走SSL VPN隧道,對于TCP/UDP的流量,讓其走所述的DTLS VPN隧道。
[0015]進一步地,當VPN客戶端配置了流量管理策略,則上述步驟一還包括加密傳輸流量管理策略的步驟,相應地,在上述步驟二與步驟三之間,還包括根據VPN客戶端(包括客戶端VPN設備的管理人員)配置的流量管理策略選擇走SSL VPN隧道還是DTLS VPN隧道的步驟。
[0016]本發明是一種高速傳輸隧道的系統,是由VPN客戶端通過SSL VPN隧道連接VPN服務器端構成,其中,在所述的VPN客戶端包括有協議類型判斷模塊,同時在VPN客戶端與VPN服務器端連接有DTSL VPN隧道。
[0017]所述的VPN客戶端還包括有流量管理策略模塊。
[0018]本發明揭示的方法及系統,解決了 TCP流量超時重傳和SSL VPN隧道本身重傳的雙重重傳問題,同時解決了 m)P應用在TCP隧道中傳輸實時性欠佳、以及非tcp/udp協議數據走UDP隧道產生的丟包問題。
【專利附圖】
【附圖說明】
[0019]圖1是本發明方法步驟示意圖;
[0020]圖2是本發明系統應用的一種實施例示意框圖。
【具體實施方式】
[0021]在以下的敘述中,為了使讀者更好地理解本申請而提出了許多技術細節。但是,本領域的普通技術人員可以理解,即使沒有這些技術細節和基于以下各實施方式的種種變化和修改,也是本申請各權利要求所要求保護的技術方案。
[0022]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明的實施方式作進一步地詳細描述。
[0023]如圖1所示,本發明一種高速傳輸隧道的實現方法,包括按照TCP協議傳輸的方法,還包括以下步驟:
[0024]步驟一,在VPN客戶端與VPN服務器端建立SSL連接,加密傳輸VPN配置;
[0025]步驟二,切換SSL連接為SSL VPN隧道,同時建立DTLS VPN隧道;
[0026]步驟三,判斷VPN客戶端協議類型;
[0027]步驟四,對于非TCP/UDP的流量,讓其繼續走SSL VPN隧道,對于TCP/UDP的流量,讓其走所述的DTLS VPN隧道。
[0028]再如圖1,進一步地,當VPN客戶端配置了流量管理策略,則上述步驟一還包括加密傳輸流量管理策略的步驟,相應地,在上述步驟二與步驟三之間,還包括根據VPN客戶端(包括VPN設備的管理人員)配置的流量管理策略選擇走SSL VPN隧道還是DTLS VPN隧道的步驟。
[0029]對于非TCP/UDP的流量,讓其繼續走SSL VPN隧道,所述的非TCP/UDP的流量,比如ICMP協議,因為它們本身不提供像TCP協議一樣的可靠性,當VPN客戶端使用PING命令來檢測VPN隧道的工作狀況時,如果發生丟包就會影響結果的預期。同時,所述的非TCP/UDP協議,可能本身沒有考慮丟包的問題,當通過VPN訪問的時候,建議選擇SSL VPN隧道來保證可靠性。
[0030]對于TCP/UDP的流量,讓其走所述的DTLS VPN隧道。DTLS VPN是基于UDP傳輸的,由于m)P是非可靠傳輸協議且不會產生重傳,這樣當DTLS VPN隧道內的TCP流量發生丟包時,僅DTLS VPN隧道內的TCP流量連接會發生重傳,因而可以從根本上避免了 TCP流量雙重重傳現象。而對于普通的UDP流量數據,其實可以選擇其中任何一個隧道,當然在沒有流量管理策略的前提下我們會首選DTLS VPN隧道,因為UDP應用是允許丟包的,并且DTLS具有和TLS —樣的安全性,所以我們完全可以采用DTLS VPN來實現安全隧道。
[0031]同時對于隧道內的對傳輸實時性要求較高的這類UDP應用的流量數據,我們完全可以采用強制性的管理策略來要求其必須通過基于UDP的DTLS VPN隧道來傳輸,因為Μ)Ρ的隧道沒有任何的流量控制,能保證這類UDP應用的實時性,所述的UDP應用包括TFTP (Trivial File Transfer Protocol,簡單文件傳輸協議)、SNMP (Simple NetworkManagement Protocol,簡單網絡管理協議)、NFS (Network File System 網絡文件系統)、DNS (Domain Name System域名系統)、網絡游戲、視頻聊天、語音聊天及VOIP等適用UDP協議傳輸的應用。
[0032]對于流量管理策略,它體現了雙隧道方案的足夠靈活性。不僅可以讓VPN客戶端自己選擇哪些流量走哪個隧道,而且VPN設備的管理人員也能根據實際需求來調整數據流量的分配,同時能夠應對各種網絡情況及一些特殊需求。比如用戶基于UDP設計的自定義協議,可能是基于局域網設計的、未考慮丟包的,當通過VPN訪問的話就不能簡單的按照前面提到的方式走DTLS VPN隧道了,對于這種特例,可以通過流量管理策略來解決。同時,也可能有VPN設備的管理人員有其它特殊的需求,需要定制哪些流量走哪個隧道。
[0033]歸納以上,本發明方法的關鍵是實現SSL VPN和DTLS VPN雙隧道機制來支持各種網絡應用:對于非TCP/UDP的流量,讓其繼續走SSL VPN隧道;對于TCP/UDP的流量,讓其走DTLS VPN隧道。同時為設置和使用方便還可增加一個流量管理策略步驟,讓VPN客戶端自己選擇哪些流量走哪個隧道,使得雙隧道方案有足夠靈活性,以應對各種網絡情況及一些特殊需求。
[0034]本發明對于TCP/UDP流量也可以使用自定義的協議來實現UDP隧道。
[0035]如圖2所示,為本發明一種高速傳輸隧道的系統的實施例示意框圖,該系統是由VPN客戶端100通過SSL VPN隧道200與DTSLVPN隧道300連接VPN服務器端400及單位內網500等構成;在所述的VPN客戶端包括有TCP/IP協議棧110、路由模塊120、虛擬網卡130及VPN進程模塊140,在VPN進程模塊中包括有協議類型判斷模塊141,同時還可以包括有流量管理策略模塊142,所述的VPN客戶端可以是PC機、平板電腦、智能手機等可用于連接互聯網絡通信的設備;所述的VPN服務器端包括有VPN服務模塊410及TCP/IP協議棧420 等。
[0036]需要說明的是,本發明各設備實施方式中提到的各單元都是邏輯單元,在物理上,一個邏輯單元可以是一個物理單元,也可以是一個物理單元的一部分,還可以以多個物理單元的組合實現,這些邏輯單元本身的物理實現方式并不是最重要的,這些邏輯單元所實現的功能的組合才是解決本發明所提出的技術問題的關鍵。此外,為了突出本發明的創新部分,本發明沒有引入上述各設備實施方式以及與解決本發明所提出的技術問題關系不太密切的單元,但這并不表明不存在上述設備實施方式以及其它有關實施單元。
[0037]雖然通過參照本發明的某些優選實施方式,已經對本發明進行了圖示和描述,但本領域的普通技術人員應該明白,可以在形式上和細節上對其作各種改變,而不偏離本發明的精神和范圍。
【權利要求】
1.一種高速傳輸隧道的實現方法,包括按照TCP協議傳輸的方法,其特征是還包括以下步驟: 步驟一,在VPN客戶端與VPN服務器端建立SSL連接,加密傳輸VPN配置; 步驟二,切換SSL連接為SSL VPN隧道,同時建立DTLS VPN隧道; 步驟三,判斷VPN客戶端協議類型; 步驟四,對于非TCP/UDP的流量,讓其繼續走SSL VPN隧道,對于TCP/UDP的流量,讓其走所述的DTLS VPN隧道。
2.根據權利要求1所述的一種高速傳輸隧道的實現方法,其特征是當VPN客戶端配置了流量管理策略,則上述步驟一還包括加密傳輸流量管理策略的步驟,相應地,在上述步驟二與步驟三之間,還包括根據VPN客戶端配置的流量管理策略選擇走SSL VPN隧道還是DTLS VPN隧道的步驟。
3.一種高速傳輸隧道的實現系統,是由VPN客戶端通過SSL VPN隧道連接VPN服務器端構成,其特征是在所述的VPN客戶端包括有協議類型判斷模塊,對應地在VPN客戶端與VPN服務器端連接有DTSL VPN隧道。
4.根據權利要求3所述的一種高速傳輸隧道的實現系統,其特征是所述的VPN客戶端還包括有流量管理策略模塊。
【文檔編號】H04L1/18GK104426732SQ201310362224
【公開日】2015年3月18日 申請日期:2013年8月19日 優先權日:2013年8月19日
【發明者】王黎, 劉志永, 吉嶺 申請人:華耀(中國)科技有限公司