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