Vpn網絡數據交互方法和系統及其網絡數據交互設備的製作方法
2023-06-01 07:10:01
Vpn網絡數據交互方法和系統及其網絡數據交互設備的製作方法
【專利摘要】本發明涉及虛擬專用網技術,其提供了一種VPN網絡數據交互方法,其包括:用於封裝並發送數據包的步驟,該步驟包括:基於TCP三次握手協議建立與公用網絡節點之間的連接;在加密數據包前添加偽TCP頭部,形成偽TCP數據包;利用數據鏈路控制協議將所述偽TCP數據包傳送至所述公用網絡節點,用以將所述偽TCP數據包轉發至目標VPN節點。本發明的方法相比現有技術的方式,提高了VPN網絡的兼容性好,實現了性能較高的VPN連接。本發明還提供了一種VPN網絡數據交互系統及其設備。
【專利說明】VPN網絡數據交互方法和系統及其網絡數據交互設備
【技術領域】
[0001]本發明涉及虛擬專用網技術,特別是涉及一種VPN網絡數據交互方法和系統及其網絡數據交互設備。
【背景技術】
[0002]隨著Internet的迅猛發展和網絡社會化的到來,網絡已經無所不在地影響著社會的政治、經濟、文化、軍事、意識形態和社會生活等各個方面。同時在全球範圍內針對重要信息資源和網絡基礎設施的入侵行為和企圖入侵行為的數量仍在持續不斷增加,網絡攻擊與入侵行為對國家安全、經濟和社會造成了極大的威脅。
[0003]如圖1所示,虛擬專用網(英語:Virtual Private Network,簡稱VPN),是一種常用於連接中、大型企業或團體與團體間的私人網絡的通訊方法。虛擬私人網絡的訊息透過公用的網絡架構(例如:網際網路)來傳送內聯網的網絡訊息。它利用已加密的通道協議(Tunneling Protocol)來達到保密、傳送端認證、信息準確性等私人信息安全效果。
[0004]圖1中,現有VPN技術(VPN-Virtual Private Network,即指在公用網絡上建立專用網絡的技術)主要通過以下兩種方式來實現:
[0005](I)對數據包進行加密後,通過UDP (是User Datagram Protocol的簡稱,中文名是用戶數據報協議,是OSI (Open System Interconnect1n,開放式系統互聯)參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務,IETF RFC 768是UDP的正式規範。)來進行傳輸。直接通過UDP協議傳輸數據時,由於P2P等協議都採用UDP來實現,運營商往往會對UDP協議進行流量控制,防止網絡擁塞,結果就會導致使用UDP協議建立的VPN極不穩定。
[0006](2)對數據包進行加密後,通過TCP (Transmiss1n Control Protocol,即傳輸控制協議)來進行傳輸。使用該方式傳輸時,則會存在諸如數據傳輸流程比較複雜、需要等待確認數據包是否收到、如果一有丟包就需要重傳等情況的發生,導致其性能表現不夠好。
[0007]鑑於以上兩種方式均會使VPN在實際使用過程中存在一定的缺陷,則需要改進VPN專用網絡接入公共網絡時的數據傳輸方式。
【發明內容】
[0008]基於此,有必要針對因UDP網絡兼容性不好、TCP天生性能不足導致VPN在實際使用過程中存在的缺陷,提供一種VPN網絡數據交互方法和系統及其網絡數據交互設備。
[0009]一種VPN網絡數據交互方法,所述方法包括:
[0010]用於封裝並發送數據包的步驟,該步驟包括:
[0011]基於TCP三次握手協議建立與公用網絡節點之間的連接;
[0012]在加密數據包前添加偽TCP頭部,形成偽TCP數據包;
[0013]利用數據鏈路控制協議將所述偽TCP數據包傳送至所述公用網絡節點,用以將所述偽TCP數據包轉發至目標VPN節點;
[0014]用於接收並處理數據包的步驟,該步驟包括:
[0015]接收來自所述公用網絡節點轉發的偽TCP數據包;
[0016]去除所述偽TCP數據包的偽TCP頭部,獲得相應的加密數據包。
[0017]在其中一個實施例中,在執行所述用於封裝並發送數據包的步驟或執行用於接收並處理數據包的步驟之前,所述方法還包括:建立與目標VPN節點之間的虛擬專用網絡通信隧道。
[0018]在其中一個實施例中,所述偽TCP頭部為符合TCP協議格式要求、但選項欄位被賦值為用於與真實TCP數據包相區分的特定標誌的TCP頭部欄位。
[0019]在其中一個實施例中,所述方法中,對應用數據進行分段、壓縮、添加MAC地址信息後加密形成所述加密數據包。
[0020]在其中一個實施例中,所述接收來自所述公用網絡節點轉發的偽TCP數據包的步驟包括:
[0021]接收來自公用網絡節點轉發的數據包;
[0022]判斷所述接收的數據包是否具有偽TCP頭部,若是,則判定接收的數據包為偽TCP數據包,用於執行去除偽TCP頭部的步驟,若否,則採用VPN技術中的解密技術對接收的數據包直接進行處理。
[0023]基於上述方法,本發明還提供了一種VPN網絡數據交互系統,其包括:
[0024]公用網絡節點,配置為用於轉發來自VPN節點的數據包;
[0025]VPN節點,配置為用於基於TCP三次握手協議建立與所述公用網絡節點之間的連接,在加密數據包前添加偽TCP頭部形成偽TCP數據包,再利用數據鏈路控制協議將所述偽TCP數據包傳送至所述公用網絡節點;或者接收來自所述公用網絡節點的偽TCP數據包,並去除所述偽TCP數據包的偽TCP頭部獲得相應的加密數據包。
[0026]在其中一個實施例中,所述VPN節點還包括判斷接收的來自所述公用網絡節點的數據包是否具有偽TCP頭部,針對具有偽TCP頭部的數據包去除所述偽TCP頭部,獲得相應的加密數據包。
[0027]基於上述系統,本發明還提供了一種VPN網絡數據交互設備,其包括:
[0028]TCP會話協議模塊,用於基於TCP三次握手協議建立與公用網絡節點之間的連接;
[0029]TCP數據封裝/解封裝模塊,用於在加密數據包前添加偽TCP頭部形成偽TCP數據包,或者將接收到的偽TCP數據包去除所述偽TCP頭部獲得所述加密數據包;及
[0030]數據轉發/接收模塊,用於利用數據鏈路控制協議將所述偽TCP數據包傳送至所述公用網絡節點,或者接收來自公用網絡節點的所述偽TCP數據包。
[0031]在其中一個實施例中,所述設備還包括:通信隧道建立模塊,用於建立與目標VPN節點之間的虛擬專用網絡通信隧道。
[0032]在其中一個實施例中,所述設備還包括:數據加密/解密模塊,用於採用VPN技術中的加密技術對數據進行加密形成所述加密數據包,或者採用VPN技術中的解密技術對接收的加密數據包進行解密處理。
[0033]上述VPN網絡數據交互方法、系統及設備中,通過基於TCP三次握手協議建立與公用網絡節點的連接後,對內網數據包加密後,再加上偽TCP頭部不通過協議棧而採用通過底層數據傳輸的方式,通過公用網絡節點將數據包轉發給目標VPN節點,而目標VPN節點則直接從底層收到偽TCP包後,去除偽TCP頭部,解密數據包,從而獲得應用數據。本發明的方法相比現有技術的方式,提高了 VPN網絡的兼容性好,實現了性能較高的VPN連接。
【專利附圖】
【附圖說明】
[0034]圖1為現有的VPN網絡基本功能圖;
[0035]圖2為本發明的VPN網絡數據交互方法的一實施例流程示意圖;
[0036]圖3為本發明的VPN網絡數據交互方法的另一實施例流程示意圖;
[0037]圖4為本發明的VPN網絡數據交互系統的架構示意圖;
[0038]圖5為本發明的最優實施例的網絡信息傳輸流程示意圖;
[0039]圖6為TCP數據封裝/解封裝模塊的結構示意圖。
【具體實施方式】
[0040]本發明通過提供的一種VPN網絡數據交互的新方法,既解決了由於UDP流控導致VPN網絡建立不起來的問題,又解決TCP性能不足的問題,從而實現了 VPN的網絡適應能力和有UDP流控環境下的網絡性能的雙重提升。本發明的具體實施例通過以下實施例說明。
[0041]如圖2所示,本實施例提供了一種VPN網絡數據交互方法,其包括:用於封裝並發送數據包的步驟和用於接收並處理數據包的步驟,這兩個步驟是相應的逆向過程,具體如下所述。
[0042]在用於封裝並發送數據包的步驟中,該步驟包括:
[0043]步驟201:基於TCP三次握手協議建立與公用網絡節點之間的連接。
[0044]步驟202:在加密數據包前添加偽TCP頭部,形成偽TCP數據包;這裡的加密數據包是指對應用數據進行分段、壓縮、添加MAC地址信息後加密形成的數據包,即通過VPN加密技術形成的VPN數據包。
[0045]步驟203:利用數據鏈路控制協議將偽TCP數據包傳送至公用網絡節點,用以將偽TCP數據包轉發至目標VPN節點。本實施例的VPN節點可以是VPN網關、路由,或者具有VPN網關或路由功能的終端或伺服器。本實施例的公用網絡節點可以是公用網絡伺服器、路由、網關等等。在本實施例中利用數據鏈路控制協議通過底層傳輸偽TCP數據包至目標VPN節點,而數據包的處理跳過傳輸層、協議棧直接在IP層進行。
[0046]在用於接收並處理數據包的步驟中,該步驟包括:
[0047]步驟301:接收來自公用網絡節點轉發的偽TCP數據包;
[0048]步驟302:去除偽TCP數據包的偽TCP頭部,獲得相應的加密數據包。
[0049]在上述實施例中,如圖3所示,上述用於接收並處理數據包的步驟中,步驟301包括:
[0050]步驟311:接收來自公用網絡節點轉發的數據包;
[0051]步驟312:判斷接收的數據包是否具有偽TCP頭部,若是,則判定接收的數據包為偽TCP數據包,執行步驟302,去除偽TCP頭部,獲得加密數據包,從而再利用VPN技術中的解密技術對其進行解密處理,若否,則判定接收的數據包為非偽TCP數據包,執行步驟313:採用VPN技術中的解密技術對接收的數據包直接進行處理。
[0052]在上述實施例中,在執行用於封裝並發送數據包的步驟或執行用於接收並處理數據包的步驟之前,所述方法還包括:建立與目標VPN節點之間的虛擬專用網絡通信隧道。這裡的虛擬專用網絡通信隧道即VPN隧道,可以採用常規方法實現,比如通過源VPN節點發起建立通信隧道連接的請求給地址代理伺服器,地址代理伺服器根據請求中的目標終端地址提供目標VPN節點的外網地址,然後再由源VPN節點將應用數據按照不同的VPN技術加密成不同的VPN數據包,並就目標VPN節點的外網地址一併發送給公用網絡伺服器,然後由公用網絡伺服器將相應數據發送目標VPN節點,再由目標VPN節點發送給目標終端。
[0053]在本實施例中,上述步驟201基於TCP三次握手協議建立與公用網絡節點之間的連接通過發起TCP三次握手協議來與所述公用網絡節點實現通信連接。具體方式可以參見標準的TCP三次握手協議。
[0054]在本實施例中,上述步驟202的偽TCP頭部包括隨機生成或預設的虛擬源目標主機埠號、目標主機埠號、順序號、確認號、頭部長度、標誌位、窗口大小、校驗字、選項欄位中的幾個欄位的組合,完全符合TCP協議要求的格式,但是在偽TCP頭部中的選項欄位被賦值為特定標誌,用於與真實TCP數據包相區分,表示該TCP數據包為非真實TCP數據包,即偽TCP數據包。這裡主要針對VPN數據包,將其偽裝成TCP數據包發送給公用網絡節點,避免數據被限制或者被排隊等候,從而提高VPN網絡的適應性能,但是,其只是具有TCP頭部特徵但為非真實的TCP數據包,所以不具備TCP數據流的特徵,比如發送端不等待確認號,不重傳,不限制流量,沒有擁塞控制,從而提高了 VPN網絡的數據傳輸速度。
[0055]基於上述方法,如圖4所示,本實施例提供了一種VPN網絡數據交互系統,其包括:
[0056]公用網絡節點,配置為用於轉發來自VPN節點的數據包;
[0057]VPN節點,配置為用於基於TCP三次握手協議建立與所述公用網絡節點之間的連接,在加密數據包前添加偽TCP頭部形成偽TCP數據包,再利用數據鏈路控制協議將所述偽TCP數據包傳送至所述公用網絡節點,用以將所述偽TCP數據包轉發至所述目標VPN節點;或者接收來自所述公用網絡節點的偽TCP數據包,並去除所述偽TCP數據包的偽TCP頭部獲得相應的加密數據包。這裡的VPN節點可以是VPN網關、路由,或者具有VPN網關或路由功能的終端或伺服器。
[0058]在本實施例的VPN節點上增加了實現上述方法的功能,主要是為了使VPN節點適配公用網絡節點實現上述VPN網絡數據交互方法。鑑於上述方法中還包括判斷接收的來自公有網絡節點是否是偽TCP數據包的步驟,則上述VPN節點中還可以是:VPN節點配置為用於基於TCP三次握手協議建立與所述公用網絡節點之間的連接,在加密數據包前添加偽TCP頭部形成偽TCP數據包,再利用數據鏈路控制協議將所述偽TCP數據包傳送至所述公用網絡節點;或者判斷接收的來自所述公用網絡節點的數據包是否具有偽TCP頭部,針對具有偽TCP頭部的數據包去除所述偽TCP頭部,獲得相應的加密數據包。這裡的判斷接收的來自公用網絡節點的數據包是否是偽TCP數據包的依據是判斷數據包是否具有偽TCP頭部,而根據上述有關偽TCP頭部的解釋,可以理解在判斷是否具有偽TCP頭部時只要讀取選項欄位就可以判定了,如果選項欄位是上述預設的特定標誌,則表示是偽TCP頭部,反之則為真實的TCP數據包。
[0059]基於上述系統和方法,如圖4所示,本實施例還提供了一種VPN網絡數據交互設備400,其包括:
[0060]TCP會話協議模塊405,用於基於TCP三次握手協議建立與公用網絡節點之間的連接;
[0061 ] TCP數據封裝/解封裝模塊404,用於在加密數據包前添加偽TCP頭部形成偽TCP數據包,或者將接收到的偽TCP數據包去除所述偽TCP頭部獲得所述加密數據包 '及
[0062]數據轉發/接收模塊401,用於利用數據鏈路控制協議將所述偽TCP數據包傳送至所述公用網絡節點,或者接收來自公用網絡節點的所述偽TCP數據包。
[0063]在其中一個實施例中,所述設備還包括:通信隧道建立模塊403,用於建立與目標VPN節點之間的虛擬專用網絡通信隧道。
[0064]在其中一個實施例中,所述設備還包括:數據加密/解密模塊402,用於採用VPN技術中的加密技術對數據進行加密形成加密數據包,或者採用VPN技術中的解密技術對加密數據包進行解密處理。本模塊的主要實現方式可參見VPN技術中有關數據包的封裝和加密方式。
[0065]在其中一個實施例中,如圖6所示,上述TCP數據封裝/解封裝模塊404包括以下單元:
[0066]輸入單元414,用於接收來自外部的加密數據包或來自公用網絡節點的數據包,比如來自數據加密/解密模塊402的加密數據包或者來自公用網絡節點的數據包;
[0067]封裝單元424,用於在加密數據包前添加偽TCP頭部形成偽TCP數據包;
[0068]判斷單元454,用於依據判斷來自公用網絡節點的數據包是否具有TCP頭部,來劃分數據包的類型為偽TCP數據包或非偽TCP數據包;
[0069]解封裝單元444,用於將接收到的偽TCP數據包去除偽TCP頭部獲得相應的加密數據包;及
[0070]輸出單元434,用於將封裝單元424生成的偽TCP數據包發送給數據轉發/接收模塊401,或者將解封裝單元444獲得加密數據包或輸入單元接收的非偽TCP數據包發送給數據加密/解密模塊402進行解密處理。
[0071]下面結合附圖5說明本發明方法中有關數據交互的最優實施例,其中公有網絡伺服器作為公有網絡節點,以下方法在於實現第一私有網絡終端A與第二私有網絡終端B的數據交互,第一私有網絡內的各個終端通過源VPN節點轉發消息,第二私有網絡內的各個終端通過目標VPN節點轉發消息。
[0072]步驟601:源VPN節點根據第一私有網絡終端A的需求向地址代理伺服器發送登陸連接請求,此登陸連接請求中含有告知地址代理伺服器的第二私有網絡終端B (即目標終端)的私有網絡地址。
[0073]步驟602:根據上述登陸連接請求中的目標終端私有網路地址,地址代理伺服器查找並反饋相應的目標VPN節點外網地址。
[0074]步驟603:根據獲得的目標VPN節點外網地址,源VPN節點向公用網絡伺服器發送請求建立VPN通信隧道的連接請求。
[0075]步驟604:接收上述連接請求,公用網絡伺服器將上述連接請求轉發給目標VPN節點。
[0076]步驟605:接收上述連接請求,目標VPN節點反饋給公用網絡伺服器響應所述連接請求的應答消息。
[0077]步驟606:公用網絡伺服器在接收到所述應答消息後,告知源VPN節點目標節點已準備建立連接的消息。
[0078]步驟607:源VPN節點收到來自公用網絡伺服器的上述告知消息,並反饋應答消息,說明源VPN節點與目標VPN節點之間的虛擬專用網絡通信隧道已建立成功,準備傳輸數據包。
[0079]步驟608 -M VPN節點發送SYN (SEQ = x)報文給公用網絡伺服器,進入SYN_SEND狀態。
[0080]步驟609:公用網絡伺服器收到SYN報文,回應一個SYN(SEQ = y)ACK(ACK = x+1)報文,進入SYN_RECV狀態。
[0081]步驟610:源VPN節點收到公用網絡伺服器的SYN報文,回應一個ACK (ACK = y+1)報文,進入Established狀態。通過步驟608、609、610實現基於TCP三次握手協議的與公用網絡伺服器之間的連接。
[0082]步驟611:在源VPN節點內,根據VPN技術對應用數據進行分段、壓縮、添加MAC地址信息後加密形成加密數據包,在此加密數據包前添加偽TCP頭部形成偽TCP數據包(即滿足TCP數據包格式要求、但選項欄位被賦值為用於與真實TCP數據包相區分的特定標誌的數據包),然後利用數據鏈路控制協議將偽TCP數據包傳送至公用網絡伺服器。
[0083]步驟612:公用網絡伺服器直接將接收的偽TCP數據包,通過上述建立的虛擬專用網絡通信隧道轉發至目標VPN節點。目標VPN節點接收來自公用網絡伺服器轉發的偽TCP數據包,去除偽TCP數據包的偽TCP頭部後獲得相應的加密數據包,或者目標VPN節點判斷接收的來自公用網絡伺服器轉發的數據包是否具有偽TCP頭部(即判斷接收的數據包中TCP頭部的選項欄位是否是上述特定標誌),若是則判定接收的數據包為偽TCP數據包,去除偽TCP頭部,獲得相應的加密數據包;若否,則判定接收的數據包為非偽TCP數據包,採用VPN技術中的解密技術對接收的數據包直接進行處理。通過VPN技術中的解密技術解密該加密數據包獲知第二私有網絡終端B(即目標終端)的地址,並轉發解密後的數據給該第二私有網絡終端B。
[0084]上述實施例通過添加偽TCP頭部封裝數據包和底層傳輸數據包的方式,可以較好地適應公網環境,又有較高的性能,在公網環境下適應性表現較好,提高了 VPN的適應性、可用性和性能。
[0085]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可藉助軟體加必需的通用硬體平臺的方式來實現,當然也可以通過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質(如R0M/RAM、磁碟、光碟)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,伺服器,或者網絡設備等)執行本發明各個實施例所述的方法。
[0086]以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但並不能因此而理解為對本發明專利範圍的限制。應當指出的是,對於本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬於本發明的保護範圍。因此,本發明專利的保護範圍應以所附權利要求為準。
【權利要求】
1.一種VPN網絡數據交互方法,其特徵在於,所述方法包括: 用於封裝並發送數據包的步驟,該步驟包括: 基於TCP三次握手協議建立與公用網絡節點之間的連接; 在加密數據包前添加偽TCP頭部,形成偽TCP數據包; 利用數據鏈路控制協議將所述偽TCP數據包傳送至所述公用網絡節點,用以將所述偽TCP數據包轉發至目標VPN節點; 用於接收並處理數據包的步驟,該步驟包括: 接收來自所述公用網絡節點轉發的偽TCP數據包; 去除所述偽TCP數據包的偽TCP頭部,獲得相應的加密數據包。
2.根據權利要求1所述的VPN網絡數據交互方法,其特徵在於, 在執行所述用於封裝並發送數據包的步驟或執行用於接收並處理數據包的步驟之前,所述方法還包括:建立與目標VPN節點之間的虛擬專用網絡通信隧道。
3.根據權利要求1所述的VPN網絡數據交互方法,其特徵在於,所述偽TCP頭部為符合TCP協議格式要求、但選項欄位被賦值為用於與真實TCP數據包相區分的特定標誌的TCP頭部欄位。
4.根據權利要求1所述的VPN網絡數據交互方法,其特徵在於,所述方法中,對應用數據進行分段、壓縮、添加MAC地址信息後加密形成所述加密數據包。
5.根據權利要求1所述的VPN網絡數據交互方法,其特徵在於,所述接收來自所述公用網絡節點轉發的偽TCP數據包的步驟包括: 接收來自公用網絡節點轉發的數據包; 判斷所述接收的數據包是否具有偽TCP頭部,若是,則判定接收的數據包為偽TCP數據包,用於執行去除偽TCP頭部的步驟,若否,則採用VPN技術中的解密技術對接收的數據包直接進行處理。
6.一種VPN網絡數據交互系統,其特徵在於,所述系統包括: 公用網絡節點,配置為用於轉發來自VPN節點的數據包; VPN節點,配置為用於基於TCP三次握手協議建立與所述公用網絡節點之間的連接,在加密數據包前添加偽TCP頭部形成偽TCP數據包,再利用數據鏈路控制協議將所述偽TCP數據包傳送至所述公用網絡節點;或者接收來自所述公用網絡節點的偽TCP數據包,並去除所述偽TCP數據包的偽TCP頭部獲得相應的加密數據包。
7.根據權利要求6所述的VPN網絡數據交互系統,其特徵在於,所述VPN節點還包括判斷接收的來自所述公用網絡節點的數據包是否具有偽TCP頭部,針對具有偽TCP頭部的數據包去除所述偽TCP頭部,獲得相應的加密數據包。
8.—種VPN網絡數據交互設備,其特徵在於,所述設備包括: TCP會話協議模塊,用於基於TCP三次握手協議建立與公用網絡節點之間的連接; TCP數據封裝/解封裝模塊,用於在加密數據包前添加偽TCP頭部形成偽TCP數據包,或者將接收到的偽TCP數據包去除所述偽TCP頭部獲得所述加密數據包;及 數據轉發/接收模塊,用於利用數據鏈路控制協議將所述偽TCP數據包傳送至所述公用網絡節點,或者接收來自公用網絡節點的所述偽TCP數據包。
9.根據權利要求8所述的VPN網絡數據交互設備,其特徵在於,所述設備還包括: 通信隧道建立模塊,用於建立與目標VPN節點之間的虛擬專用網絡通信隧道。
10.根據權利要求8所述的VPN網絡數據交互設備,其特徵在於,所述設備還包括:數據加密/解密模塊,用於採用VPN技術中的加密技術對數據進行加密形成所述加密數據包,或者採用VPN技術中的解密技術對接收的加密數據包進行解密處理。
【文檔編號】H04L12/46GK104184646SQ201410452481
【公開日】2014年12月3日 申請日期:2014年9月5日 優先權日:2014年9月5日
【發明者】吳利斌 申請人:深信服網絡科技(深圳)有限公司