專利名稱:應(yīng)用于不同局域網(wǎng)的終端相互通訊的虛擬網(wǎng)卡通訊裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機(jī)通訊范疇的虛擬網(wǎng)卡通訊技術(shù)領(lǐng)域,特別是提供了一種應(yīng)用于兩個不同的局域網(wǎng)中的終端相互通訊的虛擬網(wǎng)卡通訊裝置。
背景技術(shù):
在不同局域網(wǎng)中的通訊終端的地址是該局域網(wǎng)中的路由器/NAT分配的,這些通訊地址一般只在當(dāng)前局域網(wǎng)中有效,跨越兩個不同局域網(wǎng)的用戶是不能直接相互訪問到的。但是,在人們?nèi)粘5纳a(chǎn)生活中有大量的通訊需求,要求雙方能建立直接的聯(lián)系,比如網(wǎng)絡(luò)電話、語音、視頻聊天等。對于這些應(yīng)用需求,有很多種解決方法,比如在路由器/NAT 中添加地址映射建立虛擬主機(jī)、采用UDP/TCP打洞技術(shù)開放通訊地址、采用中繼服務(wù)器技術(shù)來轉(zhuǎn)發(fā)數(shù)據(jù)包,或者采用專門的VPN技術(shù)將TCP/IP數(shù)據(jù)包加密后封裝在特定數(shù)據(jù)包中在網(wǎng)絡(luò)上傳輸,接收方在收到該數(shù)據(jù)包后再解密拆包再還原出通訊的內(nèi)容,等等。采用這些方案需要對應(yīng)用進(jìn)行特別處理,往往需要對原來在局域網(wǎng)中的應(yīng)用進(jìn)行重新編程,相對代價比較高昂,一般使用于企業(yè)用戶,不適合在因特網(wǎng)上普遍推廣。本專利設(shè)計的目的是提出一種解決此類問題的通訊裝置,這個通訊裝置包括兩個分別部署在兩個不同局域網(wǎng)的終端和一個部署在因特網(wǎng)上的服務(wù)器組成,兩個終端上應(yīng)用通過虛擬網(wǎng)卡進(jìn)行通訊;兩個虛擬網(wǎng)卡相互直接的通訊地址通過公網(wǎng)上的服務(wù)器交換得到,而在虛擬網(wǎng)卡上層,兩個應(yīng)用通過地址交換服務(wù)器分配的虛擬IP地址通訊,在虛擬網(wǎng)卡內(nèi)部實現(xiàn)跨越兩個不同局域網(wǎng)進(jìn)行通訊的復(fù)雜的通訊邏輯,包括傳輸?shù)刂帆@取、連接性檢查、連接建立、斷線重連、連接管理等。通過這樣的裝置,雙方通訊就如同在一個局域網(wǎng)內(nèi),這樣企業(yè)應(yīng)用的開發(fā)者只需要開發(fā)基于局域網(wǎng)的應(yīng)用,在企業(yè)內(nèi)部網(wǎng)絡(luò)拓?fù)浒l(fā)生變化的時候只需要修改虛擬網(wǎng)卡的配置即可,這樣對于保護(hù)用戶的投資,減少或者避免現(xiàn)有系統(tǒng)的更改,保持系統(tǒng)穩(wěn)定有著重大意義。詳細(xì)介紹技術(shù)背景,并描述已有的與本發(fā)明最相近似的技術(shù)方案作為本發(fā)明基礎(chǔ)的且?guī)椭斫獗景l(fā)明公知技術(shù)內(nèi)容網(wǎng)卡(Network Interface Card,簡稱NIC),也稱網(wǎng)絡(luò)適配器,是電腦與局域網(wǎng)相互連接的設(shè)備。無論是普通電腦還是高端服務(wù)器,只要連接到局域網(wǎng),就都需要安裝一塊網(wǎng)卡。如果有必要,一臺電腦也可以同時安裝兩塊或多塊網(wǎng)卡。網(wǎng)卡(NIC)插在計算機(jī)主板插槽中,負(fù)責(zé)將用戶要傳遞的數(shù)據(jù)轉(zhuǎn)換為網(wǎng)絡(luò)上其它設(shè)備能夠識別的信息格式,該信息進(jìn)一步通過網(wǎng)絡(luò)介質(zhì)傳輸?shù)骄W(wǎng)絡(luò)上其他主機(jī)的網(wǎng)卡之中。網(wǎng)卡對流經(jīng)自己的所有數(shù)據(jù)包進(jìn)行檢測,對與自己有關(guān)聯(lián)的數(shù)據(jù)包進(jìn)行處理后再進(jìn)一步轉(zhuǎn)發(fā)到其他主機(jī)上。虛擬網(wǎng)卡是一種軟件模擬技術(shù),通過軟件的方式在計算機(jī)虛擬出一塊“網(wǎng)卡”, 這個網(wǎng)卡的功能和真實的網(wǎng)卡的功能完全一樣,虛擬網(wǎng)卡也有個一個地址,通過該虛擬地址虛擬網(wǎng)卡可以和外部網(wǎng)絡(luò)進(jìn)行無差別的通訊。比如,在使VMWare公司的VMWare Workstation虛擬機(jī)軟件時,通過虛擬網(wǎng)卡可以使本機(jī)和虛擬機(jī)進(jìn)行通訊;通過虛擬網(wǎng)卡技術(shù),可以完全實現(xiàn)已有的網(wǎng)卡功能,實現(xiàn)一些特殊用途的通信。
地址收集技術(shù)。兩個不同局域網(wǎng)的兩個虛擬網(wǎng)卡能夠通訊的前提是必須要有合適的通訊地址,而這個通訊地址的獲得可以采用多種方法得到,比如本地的通訊地址可以通過遍歷本機(jī)上的所有網(wǎng)卡的地址;檢查當(dāng)前終端在路由器WAN(廣域網(wǎng))側(cè)的通訊地址,可以得到路由器的映射地址;還可以從一個專門的中繼服務(wù)器上獲取一個專門用于轉(zhuǎn)發(fā)的通訊地址。不同類型的通訊地址的質(zhì)量和傳輸速率是不一樣的,在實際數(shù)據(jù)傳輸?shù)臅r候需要從中篩選出最佳的通訊地址再進(jìn)行進(jìn)一步的通訊。網(wǎng)絡(luò)穿越技術(shù)NAT的英文全稱為Network Address ^Translators,它的主要功能是負(fù)責(zé)當(dāng)前路由器管理的局域網(wǎng)和公共網(wǎng)絡(luò)之間的地址轉(zhuǎn)換和轉(zhuǎn)發(fā)。在NAT上可能部署有防火墻,能阻止某些協(xié)議類型的數(shù)據(jù)包通過。STUN技術(shù)介紹在RFC3489 中,STUN 定義為 Simple Traversal of UDP through NAT,使用 UDP 方式對NAT的穿越。主要步驟包括在內(nèi)網(wǎng)的STUN客戶端向NAT外的STUN服務(wù)器發(fā)送STUN請求消息查詢自己轉(zhuǎn)換后的地址,STUN服務(wù)器在收到請求消息后,獲得自己看到的來源STUN 消息的來源地址信息,將這個信息作為負(fù)載存入響應(yīng)消息中。STUN客戶端通過返回消息中的內(nèi)容得知在NAT上的對應(yīng)的外部地址,將這個信息存入以后呼叫協(xié)議的UDP負(fù)載中。由于通過STUN協(xié)議已經(jīng)在NAT上預(yù)先建立了媒體流的NAT映射表項,故數(shù)據(jù)流可順利穿越NAT。TURN技術(shù)介紹TURN 技術(shù)的英文全稱為 Traversal Using Relay NAT (TURN) —種穿越 NAT 的協(xié)議,它允許一個在NAT (或者防火墻)后的終端通過TCP/UDP連接接受數(shù)據(jù)。TURN是一個簡單的客戶端服務(wù)器協(xié)議,包括一個TURN服務(wù)器和一個TURN客戶端。TURN協(xié)議采用和STUN 協(xié)議相同的語法和操作規(guī)則。TURN可以運行在TCP和UDP之上。通過TURN實現(xiàn)網(wǎng)關(guān)穿越的基本步驟是TURN客戶端首先要去發(fā)現(xiàn)TURN服務(wù)器的地址。一旦發(fā)現(xiàn)了一個TURN服務(wù)器,客戶端會發(fā)送一個TURN Allocate請求給TURN服務(wù)器。TURN提供了一種基于共享私密對既包括請求又包括響應(yīng)的交互式認(rèn)證和完整消息檢驗機(jī)制。在消息得到驗證之后,TURN服務(wù)器會記錄請求方(簡稱SA)的源傳輸?shù)刂?,然后在TURN應(yīng)答中返回一個公共的傳輸?shù)刂?簡稱PA)。TURN服務(wù)器有責(zé)任保證發(fā)送到PA的數(shù)據(jù)包轉(zhuǎn)發(fā)到TURN Server。TURN Server于是在PA上等待數(shù)據(jù)。當(dāng)接收到數(shù)據(jù)后,TURN krver會接受這個連接(在TCP的情況下), 并且存儲數(shù)據(jù)來源的地址和端口信息(RA)。在接收到數(shù)據(jù)之后,數(shù)據(jù)就會被轉(zhuǎn)發(fā)到SA。這樣TURN krver就充當(dāng)了一個中繼服務(wù)器的角色,將從SA接收到的數(shù)據(jù)轉(zhuǎn)發(fā)到RA,將從RA 到PA的數(shù)據(jù)轉(zhuǎn)發(fā)到SA。現(xiàn)有實現(xiàn)虛擬網(wǎng)卡的技術(shù)主要是通過VPN技術(shù)來實現(xiàn)。VPN主要采用IP隧道技術(shù)來實現(xiàn)通訊過程,來自客戶端的數(shù)據(jù)包首先被重定向到虛擬網(wǎng)卡,虛擬網(wǎng)卡將客戶端的數(shù)據(jù)采用指定的方式封裝到IP數(shù)據(jù)報之中,這些數(shù)據(jù)報作為負(fù)載通過TCP/UDP發(fā)送到公網(wǎng)上的VPN服務(wù)器上,VPN服務(wù)器對這些數(shù)據(jù)包進(jìn)行處理,將負(fù)載中的用戶地址轉(zhuǎn)換為真實的IP 地址,發(fā)給目標(biāo)客戶。VPN的缺點是一般都需要專門支持VPN的軟硬件來支持,在公網(wǎng)上一般都有很多NAT/防火墻可以分析和過濾VPN數(shù)據(jù)包,在很多網(wǎng)絡(luò)中VPN不能正常使用。而且VPN數(shù)據(jù)包需要進(jìn)行IP封裝,在傳輸過程中有比較大的帶寬損耗。
以因果關(guān)系推理的方式推導(dǎo)出現(xiàn)有技術(shù)的缺點是什么?針對這些缺點,說明本發(fā)明的目的?,F(xiàn)有實現(xiàn)跨越兩個局域網(wǎng)的終端通訊的虛擬網(wǎng)卡技術(shù)大都采用VPN(虛擬專用網(wǎng)絡(luò))技術(shù)來實現(xiàn)。在這些實現(xiàn)方案中,實現(xiàn)通訊的步驟是1)終端將IP數(shù)據(jù)包(或者以太網(wǎng)數(shù)據(jù)包,日本Sof讓ther虛擬網(wǎng)卡軟件采用這種技術(shù))提交給虛擬網(wǎng)卡;2)虛擬網(wǎng)卡對IP數(shù)據(jù)包(或者以太網(wǎng)數(shù)據(jù)包)進(jìn)行加密處理,封裝在UDP/TCP數(shù)據(jù)包中,然后通過真實網(wǎng)卡將數(shù)據(jù)包發(fā)送到公網(wǎng)的服務(wù)器;3)公網(wǎng)服務(wù)器收到該數(shù)據(jù)封包之后,對其數(shù)據(jù)包頭進(jìn)行解密,從中獲得對方的IP 地址,然后將按照發(fā)送方的策略重新封裝數(shù)據(jù)包,發(fā)送到接收方的虛擬網(wǎng)卡(接收方虛擬網(wǎng)卡已經(jīng)提前連接到服務(wù)器上);4)接收方虛擬網(wǎng)卡在收到服務(wù)器發(fā)來的加密數(shù)據(jù)包,執(zhí)行解密過程,獲得原始數(shù)據(jù)包的數(shù)據(jù)。這樣接收方就獲得了原始數(shù)據(jù)包。VPN的最大特點是雙方通訊需要特別的硬件支持,一般應(yīng)用于企業(yè)用戶,代價比較高昂;但VPN采用數(shù)據(jù)封包方式傳輸,即在TCP/IP數(shù)據(jù)包中又進(jìn)行了進(jìn)一步的封裝,數(shù)據(jù)封包方式增大了負(fù)載,降低了有效數(shù)據(jù)的傳送速度;在VPN服務(wù)器暫時失效的情況下,虛擬網(wǎng)卡就不能被訪問到。而且很多防火墻都添加了對IPkc/VPN數(shù)據(jù)的過濾模塊,這樣在很多情況下通訊就不成功。
發(fā)明內(nèi)容
本發(fā)明技術(shù)方案的詳細(xì)闡述,應(yīng)該結(jié)合流程圖、原理圖、電路圖、時序圖進(jìn)行說明一、通訊裝置組成結(jié)構(gòu)本發(fā)明提出了一種兩個不同局域網(wǎng)的兩個終端通過虛擬網(wǎng)卡進(jìn)行通訊的裝置,該裝置的組成包括1)兩個終端上的真實網(wǎng)卡NICA和NICB,它們的主要功能是對外界執(zhí)行真實的網(wǎng)絡(luò)數(shù)據(jù)接收和轉(zhuǎn)發(fā)工作,是虛擬網(wǎng)卡工作的基礎(chǔ);2)虛擬網(wǎng)卡NIC_SIMA和NIC_ SIMB,它們?yōu)樯蠈討?yīng)用提供虛擬地址,上層應(yīng)用使用該虛擬地址和對方通訊的時候,TCP/IP 數(shù)據(jù)包流經(jīng)該虛擬網(wǎng)卡,虛擬網(wǎng)卡軟件將虛擬地址轉(zhuǎn)換為真實的通訊地址,通過分配該通訊地址的真實網(wǎng)卡和對方通訊;幻地址服務(wù)器S,它作為兩個虛擬網(wǎng)卡通訊的中介,協(xié)調(diào)兩個虛擬網(wǎng)卡一步步建立通訊過程。真實網(wǎng)卡作為終端真實的物理設(shè)備存在于終端的硬件設(shè)備之中,虛擬網(wǎng)卡為終端上的一個駐留程序存在,地址服務(wù)器S是部署在因特網(wǎng)上軟件模塊,可以從任何地方訪問到該服務(wù)器。地址服務(wù)器S的主要功能包括1)統(tǒng)一管理所有連接到該服務(wù)的所有的虛擬地址,在虛擬網(wǎng)卡激活的時候為虛擬網(wǎng)卡分配通訊地址,在虛擬網(wǎng)卡斷開的時候回收通訊地址;2)接受來自某個虛擬網(wǎng)卡軟件的通訊地址信息,向有意連接該虛擬網(wǎng)卡的其他虛擬網(wǎng)卡發(fā)送通訊地址信息和連接方法;3)協(xié)調(diào)兩個虛擬網(wǎng)卡之間通過雙方發(fā)送的地址進(jìn)行通訊,完成信息的交互、連接握手、連接建立、媒體、數(shù)據(jù)流的傳送;4)應(yīng)用結(jié)束后關(guān)閉兩個虛擬網(wǎng)卡之間的連接、釋放資源并確認(rèn);
5)統(tǒng)計虛擬網(wǎng)卡傳輸?shù)刂返倪B接信息,包括傳輸速率、傳輸質(zhì)量、斷線率和工作時間等信息,計算優(yōu)先級,為連接方選擇傳輸?shù)刂诽峁﹨⒖肌L摂M網(wǎng)卡的主要功能包括1)通訊地址收集。收集當(dāng)前終端可以用于雙方建立通訊的地址,地址信息包括一個<IP地址,端口〉對,地址類別主要分為三類a)本機(jī)所有網(wǎng)卡的地址,通過遍歷本機(jī)所有網(wǎng)卡得到;b)NAT映射地址。一般的路由器都有網(wǎng)絡(luò)地址轉(zhuǎn)換功能,可以將局域網(wǎng)內(nèi)的地址映射為NAT出口的地址,可以在路由器上直接配置映射關(guān)系,也可以通過訪問STUN服務(wù)器得到;c)中繼地址。有些NAT是對稱式的,不支持固定的NAT映射,對于這種NAT,只能向特定的TURN服務(wù)器申請一個中繼地址,所有的通訊數(shù)據(jù)包要經(jīng)過中繼服務(wù)器轉(zhuǎn)發(fā)。對于每種類型的地址,參照ICE (互動式連接建立)算法計算一個優(yōu)先級別;2)虛擬地址注冊;為了向上層應(yīng)用提供服務(wù),虛擬網(wǎng)卡需要向地址服務(wù)器S申請一個虛擬地址,同時將自己的通訊地址、身份認(rèn)證等信息發(fā)送給服務(wù)器端;3)虛擬地址查詢,為了和對等方虛擬網(wǎng)卡通訊,需要根據(jù)虛擬地址查詢對方的通訊地址信息;4)傳輸?shù)刂愤x擇。在收到對方的通訊地址信息之后,雙方都需要根據(jù)這些通訊地址進(jìn)行連接檢查,從中獲得一個最佳的傳輸?shù)刂纷鳛樽罱K的傳輸?shù)刂罚?)使用通訊地址執(zhí)行數(shù)據(jù)傳輸操作;6)發(fā)送心跳數(shù)據(jù)包。考慮到NAT分配的地址有時效性,虛擬網(wǎng)卡會定時發(fā)送心跳數(shù)據(jù)包給對方的通訊地址,進(jìn)行檢測,并發(fā)送當(dāng)前地址的連接情況信息反饋給地址服務(wù)器 S,在通訊地址失效的情況下虛擬網(wǎng)卡會從地址列表中重新選擇通訊地址并進(jìn)行檢測;7)虛擬地址注銷。數(shù)據(jù)傳輸完畢后,虛擬網(wǎng)卡根據(jù)需要會斷開了所有和對等方虛擬網(wǎng)卡的網(wǎng)絡(luò)連接,同時發(fā)送注銷請求給地址服務(wù)器S,地址服務(wù)器回收分配給該虛擬網(wǎng)卡的通訊地址,虛擬網(wǎng)卡斷開。虛擬網(wǎng)卡的內(nèi)部結(jié)構(gòu)圖如說明書附圖1所示,主要包括下面這些模塊a.網(wǎng)絡(luò)協(xié)議接口單元用于處理訪問該虛擬網(wǎng)卡的TCP/IP的數(shù)據(jù)包,對包含在數(shù)據(jù)包中的虛擬通訊地址進(jìn)行轉(zhuǎn)換和處理,根據(jù)轉(zhuǎn)換后的地址選擇真實網(wǎng)卡和外部通訊;b.通訊處理單元執(zhí)行通訊地址收集、地址交換、連接檢查、數(shù)據(jù)傳輸?shù)裙δ?。實現(xiàn)當(dāng)前虛擬網(wǎng)卡和其他局域網(wǎng)的虛擬網(wǎng)卡的數(shù)據(jù)傳輸過程;c.信息管理單元該信息管理單元包含著當(dāng)前在本虛擬網(wǎng)卡和其他虛擬網(wǎng)卡進(jìn)行通訊過程中所有的數(shù)據(jù)結(jié)構(gòu),包括1)候選地址列表該表格中存儲著收集到的可以用于其他虛擬網(wǎng)卡和自己通訊的地址列表,主要包括前面所述的三類地址信息,根據(jù)實際的應(yīng)用,用戶可以向這個列表中添加其他可以用于通訊的地址信息,添加完畢之后需要計算并更新每個地址的優(yōu)先級,計算公式可以由用戶自己定義。2)虛擬地址映射表該表格中存儲對等方虛擬地址相關(guān)信息,通過該虛擬地址映射表可以查詢到虛擬地址對應(yīng)的真實連接地址。虛擬地址映射表中包含的信息包括虛擬地址、訪問端口、本方真實傳輸?shù)刂?、本方真實傳輸端口、對方傳輸?shù)刂?、對方傳輸端口、地址狀態(tài)、創(chuàng)建時間等信息。3)用戶認(rèn)證信息。虛擬網(wǎng)卡需要在連接地址服務(wù)器的時候,需要提供一個身份信息給地址服務(wù)器。經(jīng)過認(rèn)證之后,虛擬網(wǎng)卡才能注冊和查詢虛擬地址信息。4)好友和歷史訪問信息。在虛擬網(wǎng)卡內(nèi)部有一個好友列表,每個好友是一個虛擬網(wǎng)卡用戶,他們都注冊到當(dāng)前地址服務(wù)器。這個信息是在虛擬網(wǎng)卡初始化的時候,虛擬網(wǎng)卡從服務(wù)器上讀取到的。好友級別的用戶可以提供比其他用戶更好的傳輸質(zhì)量和傳輸速度。5)地址檢查列表。在執(zhí)行地址檢查過程生成的臨時數(shù)據(jù)。這個數(shù)據(jù)在數(shù)據(jù)傳輸完畢后可以被清除,作為一種優(yōu)化的選項,這個列表信息可以保留,下次虛擬網(wǎng)卡重新啟動后重新建立地址檢查表的時候,考慮到這個優(yōu)先級因子,以前高優(yōu)先級的地址還會保持優(yōu)先選擇,這樣用戶選擇的傳輸?shù)刂肪湍鼙3忠粋€優(yōu)化的狀態(tài)。優(yōu)化因子和優(yōu)化算法可以由用戶選擇和定義,也可以根據(jù)當(dāng)前網(wǎng)絡(luò)變動情況進(jìn)行演化,本專利不做特殊限制。6)輸入輸出緩沖區(qū)。用于臨時緩存需要發(fā)送和接收的數(shù)據(jù)包。d.虛擬網(wǎng)卡與地址服務(wù)器交互單元。該單元的主要功能包括1)虛擬地址注冊當(dāng)前虛擬網(wǎng)卡必須要有一個IP地址來和其他虛擬網(wǎng)卡通訊。 首先,當(dāng)前虛擬網(wǎng)卡向地址服務(wù)器發(fā)送一個注冊請求,地址服務(wù)器S根據(jù)當(dāng)前虛擬網(wǎng)卡的地址從自己內(nèi)部的地址池中選擇一個未占用的地址分配給該虛擬網(wǎng)卡用戶,并標(biāo)志該地址為占用狀態(tài);2)虛擬地址映射更新注冊成功后,當(dāng)前虛擬網(wǎng)卡將自己收集到的通訊地址發(fā)送給地址服務(wù)器S。當(dāng)前地址服務(wù)器收到這個信息后,將虛擬地址放在服務(wù)端的一個映射表中。3)虛擬地址交換當(dāng)前虛擬網(wǎng)卡為了和對等方通訊,需要向地址服務(wù)器查詢對等方的通訊地址,當(dāng)然,對方虛擬網(wǎng)卡是預(yù)先注冊到該服務(wù)器并且更新了地址信息。為了保證通訊的安全,在虛擬地址交換的時候地址交換服務(wù)器需要對當(dāng)前虛擬網(wǎng)卡的身份進(jìn)行認(rèn)證。4)通訊地址狀態(tài)更新當(dāng)前虛擬網(wǎng)卡獲得了對方提供的傳輸?shù)刂?,就進(jìn)行了從連接檢查到連接建立、數(shù)據(jù)傳輸?shù)榷鄠€操作,在此之中,通訊地址的可用性和性能就是很重要的指標(biāo)。在這些操作的每一步中,當(dāng)前虛擬網(wǎng)卡會向地址服務(wù)器提供通訊地址狀態(tài)的最新 fn息ο5)虛擬地址注銷在雙方通訊結(jié)束后,虛擬網(wǎng)卡需要從系統(tǒng)中注銷。首先虛擬網(wǎng)卡會向地址服務(wù)器發(fā)送一個注銷請求,地址服務(wù)器收到這個請求之后,將當(dāng)前虛擬網(wǎng)卡的地址從服務(wù)器中清除掉,斷開與服務(wù)器的連接,并且將該虛擬地址設(shè)置為可用狀態(tài)。e.信息存儲模塊。需要存儲的信息包括用戶身份信息、好友信息和地址狀態(tài)信息。 通過信息存儲模塊,虛擬網(wǎng)卡可以有效地保存各種參數(shù)信息,在虛擬網(wǎng)卡出現(xiàn)故障重新啟動之后可以重新讀取這些參數(shù)信息作為參考。f.地址優(yōu)化模塊。需要根據(jù)當(dāng)前虛擬網(wǎng)卡的通訊狀況,更新對方每個通訊地址的優(yōu)先級,在本專利中使用ICE(互動式連接建立算法)中的優(yōu)先級算法作為默認(rèn)的優(yōu)先級計算算法。為了提高系統(tǒng)的可用性,優(yōu)化算法提供統(tǒng)一的接口,系統(tǒng)只需要調(diào)用該接口就可以對優(yōu)先級進(jìn)行計算,在實現(xiàn)的時候優(yōu)化算法以動態(tài)庫的方式出現(xiàn),在系統(tǒng)初始化的時候加載,可以被同樣接口的其他優(yōu)化算法替換。虛擬網(wǎng)卡和地址交換服務(wù)器的消息通訊流程如圖3表示。在圖3中包含了兩個虛擬網(wǎng)卡和一個地址交換服務(wù)器,交流的消息流程包括
1)虛擬地址注冊請求。在收集完地址之后,虛擬網(wǎng)卡將外界可以和自己通訊的所有地址信息打成一數(shù)據(jù)包,加上自己的身份認(rèn)證和好友信息(哪些虛擬網(wǎng)卡可以訪問自己),加密后發(fā)送給地址服務(wù)器S ;2)注冊應(yīng)答消息。地址交換服務(wù)器在內(nèi)部維護(hù)一個虛擬地址信息映射表,根據(jù)一定算法和規(guī)則向發(fā)送端返回一個未用的虛擬IP地址,并以該IP地址作為鍵值更新映射表, 然后再將該虛擬IP地址信息通過正常的TCP/IP數(shù)據(jù)包發(fā)送給該虛擬網(wǎng)卡。3)更新請求消息。當(dāng)前虛擬網(wǎng)卡將自己收集到的通訊地址信息發(fā)送給地址交換服務(wù)器S。當(dāng)前虛擬網(wǎng)卡在此之前已經(jīng)做了一個連接檢查的操作,考慮到網(wǎng)絡(luò)的時延,某些地址的狀態(tài)還沒有及時返回,為了保持地址的有效性,虛擬網(wǎng)卡需要不斷地將有效的地址信息更新到服務(wù)器中,服務(wù)器再將更新后的地址狀態(tài)信息轉(zhuǎn)發(fā)到其他虛擬網(wǎng)卡用戶。4)更新應(yīng)答消息。根據(jù)當(dāng)前虛擬網(wǎng)卡的虛擬地址,地址交換服務(wù)器及時更新數(shù)據(jù)庫中的地址信息,然后發(fā)送一個應(yīng)答消息給虛擬網(wǎng)卡。5)認(rèn)證請求。其他虛擬網(wǎng)卡需要和當(dāng)前虛擬網(wǎng)卡通訊之前,需要提供身份認(rèn)證信肩、ο6)認(rèn)證應(yīng)答對于來自某個虛擬網(wǎng)卡的認(rèn)證請求,地址交換服務(wù)器需要核對當(dāng)前虛擬網(wǎng)卡提交的身份信息,返回當(dāng)前虛擬網(wǎng)卡的通訊權(quán)限和好友列表。7)查詢請求。可以根據(jù)某個虛擬網(wǎng)卡地址查詢到該虛擬網(wǎng)卡可用的地址信息。就是虛擬網(wǎng)卡在和其他虛擬網(wǎng)卡通訊之前,需要首先查詢該虛擬網(wǎng)卡的真實地址,查詢憑證就是對方虛擬網(wǎng)卡的虛擬地址。需要輸入一個或者多個虛擬地址信息組成一個字符串給地址服務(wù)器,如果需要查詢所有可訪問的可以使用可以輸入一個通配符*,查詢到所有虛擬網(wǎng)卡組成的列表。8)查詢應(yīng)答消息。服務(wù)器在收到該請求消息后,會從數(shù)據(jù)庫中進(jìn)行查詢,如果查詢成功,則返回對應(yīng)虛擬地址真實的傳輸?shù)刂沸畔ⅲ駝t向發(fā)送方報告一個地址不可達(dá)信息;9)訂閱消息。進(jìn)行通訊的雙方的網(wǎng)絡(luò)狀況有時是在不斷地變動過程中,有的時候用戶希望對方的網(wǎng)絡(luò)地址發(fā)生變化的時候本方及時得到通知,這就需要訂閱消息。訂閱消息需要兩個虛擬網(wǎng)卡、地址交換服務(wù)器三方參與,首先虛擬網(wǎng)卡向地址交換服務(wù)器發(fā)送訂閱消息,該消息經(jīng)該服務(wù)器轉(zhuǎn)發(fā)到對方虛擬網(wǎng)卡所在的客戶機(jī);10)訂閱消息應(yīng)答。在收到訂閱消息之后,對方虛擬網(wǎng)卡將發(fā)送一個確認(rèn)消息(或者發(fā)送一個拒絕消息,表示拒絕提供訂閱功能),這個確認(rèn)消息表示兩方存在這樣一個訂閱關(guān)系,在本方向地址交換服務(wù)器更新地址信息的時候,對方將收到一個通知,及時地處理通訊地址的變化。11)注銷請求??蛻魴C(jī)希望注銷該虛擬網(wǎng)卡,需要從地址服務(wù)器S中移除掉本方地址信息,將發(fā)送該請求;12)注銷應(yīng)答。地址服務(wù)器S檢查數(shù)據(jù)庫中的虛擬地址映射表,從中移除掉該客戶機(jī)的虛擬網(wǎng)卡地址映射信息,并發(fā)送一個應(yīng)答給客戶端。綜上所述,如說明書附圖4所示,兩個處于不同局域網(wǎng)的虛擬網(wǎng)卡通過虛擬網(wǎng)卡為中介建立通訊過程可以簡述如下a.首先在建立連接之前,雙方虛擬網(wǎng)卡需要做收集地址的準(zhǔn)備工作,所收集的地址可以是任何對方可以用來和自己進(jìn)行通訊的地址,根據(jù)收集的地址的類型不同,雙方虛擬網(wǎng)卡需要為每個地址計算一個優(yōu)先級,做為后續(xù)連接檢查中篩選地址的依據(jù);b.雙方向地址服務(wù)器S注冊虛擬地址和傳輸?shù)刂返挠成?,并且根?jù)虛擬地址向地址服務(wù)器S請求對方的傳輸?shù)刂罚籧.在獲得對方提供的傳輸?shù)刂分?,再加上自身的傳輸?shù)刂?,組成多組連接地址對,每個連接地址對有不同的優(yōu)先級,這些地址就是進(jìn)行連接檢查的候選地址。雙方根據(jù)候選地址列表開始進(jìn)行連接檢查測試,在檢查過程中根據(jù)測試結(jié)果對候選地址進(jìn)行篩選,從中選擇一個最佳的地址對作為雙方的通訊地址鏈路,并通知地址服務(wù)器,更新虛擬連接信肩、οd.雙方開始根據(jù)虛擬地址傳輸數(shù)據(jù)。虛擬網(wǎng)卡查詢地址服務(wù)器,得到最新的虛擬地址和真實通訊地址的映射,根據(jù)真實通訊地址選擇真實網(wǎng)卡傳輸數(shù)據(jù)。e.某些通訊地址有時效性,當(dāng)前虛擬網(wǎng)卡需要定時向該通訊地址發(fā)送特殊類型的數(shù)據(jù)包,該數(shù)據(jù)包的作用就是延長該地址的有效期,避免在數(shù)據(jù)傳輸過程中連接斷開。f.在數(shù)據(jù)傳輸完畢后,根據(jù)需要,雙方虛擬網(wǎng)卡可以向地址服務(wù)器注銷,虛擬網(wǎng)卡回收分配為雙方虛擬網(wǎng)卡的虛擬通訊地址,雙方虛擬網(wǎng)卡連接斷開。用推理方式推導(dǎo)出本發(fā)明的優(yōu)點,可以對應(yīng)3部分所要解決的技術(shù)問題或發(fā)明目的來描述。本發(fā)明相比VPN技術(shù)有如下創(chuàng)新點1)本發(fā)明提出了一個虛擬網(wǎng)卡通訊裝置來實現(xiàn)跨越兩個局域網(wǎng)的兩個終端的建立直接的通訊過程。相比使用VPN技術(shù)來說,可以在地址收集過程中在NAT上實現(xiàn)UDP/TCP 打洞建立一個有效的地址映射,通訊雙方使用映射后的地址傳輸速度是最快的,而VPN技術(shù)則使用了隧道傳輸技術(shù),在傳輸?shù)臄?shù)據(jù)包中封裝了原始的TCP/UDP數(shù)據(jù)包,增加了網(wǎng)絡(luò)傳輸?shù)呢?fù)荷,傳輸效率相對較低。日本的SoftKher軟件則是在TCP層次實現(xiàn)了對以太網(wǎng)的模擬技術(shù),當(dāng)相比之下還是不如建立直接的通訊鏈路效率高。2) VPN—般需要專門的廠家提供特定的軟硬件產(chǎn)品來實現(xiàn),它會受到路由器/NAT 的配置影響,或者受到網(wǎng)關(guān)代理設(shè)備的影響。而本虛擬網(wǎng)卡采用靈活的地址檢測方案進(jìn)行連接嘗試,從使用直接的本地局域網(wǎng)地址通訊到使用專門的中繼服務(wù)器來轉(zhuǎn)發(fā)數(shù)據(jù),這些地址信息可以通過檢測得到,靈活地適應(yīng)各種不同的網(wǎng)絡(luò)變化情況,提高了本虛擬網(wǎng)卡的健壯性。3) VPN 一般需要特定的協(xié)議支持,比如IPSEC,而且不同廠商的VPN產(chǎn)品和解決方案很難兼容,脫離開具體的VPN設(shè)備VPN技術(shù)就沒有了用武之地,相比之下本虛擬網(wǎng)卡采用標(biāo)準(zhǔn)的TCP/IP協(xié)議進(jìn)行地址收集和連接性檢測,上層應(yīng)用使用虛擬地址通訊也是基于 TCP/IP的,沒有硬件和協(xié)議限制。本發(fā)明在部署的時候,相對比較靈活,最基本的只需要在公網(wǎng)上架設(shè)一臺地址服務(wù)器,現(xiàn)在需要路由器/NAT都提供了端口映射功能,可以提供專門的NAT映射地址,也可以在地址服務(wù)器上部署一臺標(biāo)準(zhǔn)的STUN服務(wù)器和TURN服務(wù)器作為輔助,獲取更多可用的通訊地址。本發(fā)明在地址搜集過程中可以使用標(biāo)準(zhǔn)的ICE技術(shù)來進(jìn)行地址收集和檢測。在 ICE規(guī)范中規(guī)定了三類地址作為可選的通訊地址本機(jī)地址、服務(wù)器映射地址和中繼服務(wù)器地址;在連接檢查過程中使用四步握手協(xié)議;在連接檢查完畢后按照ICE規(guī)定的規(guī)則對地址進(jìn)行排序,獲得最佳的傳輸?shù)刂?;對于傳輸過程中地址的選擇,在虛擬網(wǎng)卡設(shè)計過程中每個虛擬網(wǎng)卡可以靈活地定義排序規(guī)則和演化規(guī)則,以獲得最優(yōu)的傳輸效果;同時,有可能檢測到多條有效的傳輸通路,虛擬網(wǎng)卡可以使用多個傳輸通道來執(zhí)行用戶層的一個傳輸, 可以獲得比單個真實網(wǎng)卡傳輸更好的效果;3)當(dāng)前虛擬網(wǎng)卡給最終應(yīng)用提供的是虛擬地址,最終應(yīng)用只需要通過虛擬地址可以喝對方進(jìn)行通訊;而在虛擬網(wǎng)卡中雙方通過地址服務(wù)器交換地址、建立通訊的細(xì)節(jié)則被隱藏在虛擬網(wǎng)卡內(nèi)部,不需要用戶參與。4)當(dāng)前虛擬網(wǎng)卡具備簡單的數(shù)據(jù)存儲功能,存儲的數(shù)據(jù)包括認(rèn)證信息、虛擬網(wǎng)卡好友信息、和地址狀態(tài)信息。認(rèn)證功能可以防止虛擬網(wǎng)卡執(zhí)行未授權(quán)的傳輸操作,提高虛擬網(wǎng)卡的安全性;好友信息可以為當(dāng)前虛擬網(wǎng)卡軟件的用戶進(jìn)行分級,為不同級別的好友提供的傳輸數(shù)據(jù)的質(zhì)量不同;傳輸速率也不同;通過緩存地址狀態(tài)信息可以為每個傳輸?shù)刂诽峁┮粋€歷史的優(yōu)先級因子,為當(dāng)前網(wǎng)卡選擇最佳的傳輸?shù)刂诽峁﹨⒖肌;脼榱吮3謧鬏數(shù)刂返目煽啃?,虛擬網(wǎng)卡會定時向?qū)Ψ絺鬏數(shù)刂钒l(fā)送保持狀態(tài)消息,這個操作不需要用戶參與;在連接檢測和數(shù)據(jù)傳輸過程中當(dāng)前虛擬網(wǎng)卡會不斷地向地址服務(wù)器發(fā)送傳輸?shù)刂返臓顟B(tài)信息,包括傳輸?shù)刂吩春湍繕?biāo)、傳輸速率,地址類型、連通性情況等信息,為連接到當(dāng)前地址服務(wù)器的所有虛擬網(wǎng)卡選擇最佳的通訊地址提供參考。6)在某些網(wǎng)絡(luò)中,比如無線網(wǎng)絡(luò),網(wǎng)絡(luò)組成和網(wǎng)絡(luò)結(jié)構(gòu)是易變的,但是通過虛擬網(wǎng)卡通訊是使用相對固定的虛擬地址進(jìn)行通訊的,對真實網(wǎng)絡(luò)的檢測是虛擬網(wǎng)卡內(nèi)部的工作,虛擬網(wǎng)卡本身的狀態(tài)相對穩(wěn)定一些,可以保證上層網(wǎng)絡(luò)的穩(wěn)定性和健壯性,減少應(yīng)用程序出錯的概率。7)提供地址優(yōu)化算法模塊,該模塊做成可插拔的動態(tài)庫組件,可以方便地升級和替換,方便用戶對虛擬網(wǎng)卡軟件進(jìn)行持續(xù)的改進(jìn)和優(yōu)化。針對技術(shù)方案,是否還有別的替代方案同樣能完成發(fā)明目的?本方案是針對使用VPN技術(shù)進(jìn)行私網(wǎng)通訊的改進(jìn)方案,采用ICE和地址交換服務(wù)器進(jìn)行虛擬地址的交換,通訊的細(xì)節(jié)交給虛擬網(wǎng)卡處理。從本專利的用途來說,尚無別的替代方案。
圖1為虛擬網(wǎng)卡內(nèi)部結(jié)構(gòu)圖。圖2虛擬網(wǎng)卡通訊裝置結(jié)構(gòu)圖。圖3為虛擬網(wǎng)卡和地址服務(wù)器的消息交互圖。圖4為虛擬網(wǎng)卡實現(xiàn)數(shù)據(jù)通訊的基本流程圖。
具體實施例方式參照圖2,說明本專利實現(xiàn)兩個不同局域網(wǎng)的終端通訊的實例??蛻舳?和客戶端 2分別位于兩個不同的局域網(wǎng)中,其中客戶端1位于NATl后的局域網(wǎng)1中,在局域網(wǎng)1中的網(wǎng)絡(luò)地址為192. 168. 0. 100,NAT1為客戶端1所在的網(wǎng)關(guān),它的局域網(wǎng)地址是192. 168. 0. 1, 公網(wǎng)地址是133. 155. 23. 26 ;客戶端2位于NAT2后的局域網(wǎng)2中,在局域網(wǎng)2中的地址為 172. 16. 13. 11,NAT2為客戶端2所在的網(wǎng)關(guān),它的局域網(wǎng)地址是172. 16. 0. 1,公網(wǎng)地址是129. 33. 88. 6。兩個NAT都非對稱式的NAT,可以使用STUN協(xié)議來進(jìn)行地址檢測。在公網(wǎng)上部署了兩臺STUN服務(wù)器,用于發(fā)現(xiàn)每個客戶端NAT出口的映射地址,兩臺STUN服務(wù)器的地址分別是129. 1. 23. 29和129. 1. 23. 30 ;還有一個地址交換服務(wù)器,用于在虛擬網(wǎng)卡通訊過程中交換地址信息,地址交換服務(wù)器的地址是12. 12. 1. 100。下面就這個網(wǎng)絡(luò)拓?fù)鋪碚f明兩個客戶機(jī)是如何通過虛擬網(wǎng)卡來實現(xiàn)通訊過程的。首先,兩個客戶端上的虛擬網(wǎng)卡需要收集本方可以用于通訊的地址。在當(dāng)前例子中,兩個NAT都非對稱式的NAT,所以不需要中繼地址,只需要前兩類地址,比如客戶端1收集的地址包括兩個地址192. 168. 0. 100 80為客戶端1上的真實網(wǎng)卡的通訊地址;133. 155. 23. 26 :1234為客戶端1通過STUN服務(wù)器查到的通訊地址;客戶端2也是同樣172. 168. 13. 11為客戶端2上的真實網(wǎng)卡的通訊地址;129. 33. 88. 6為客戶端2上通過STUN服務(wù)器查到的通訊地址。然后雙方需要向地址服務(wù)器注冊虛擬地址和真實傳輸?shù)刂返挠成潢P(guān)系,在注冊完畢之后可以通過地址服務(wù)器查詢映射關(guān)系。經(jīng)過這一步,客戶端1注冊的虛擬地址為 10. 10. 0. 101,客戶端2注冊的虛擬地址為10. 10. 0. 102.在兩個虛擬網(wǎng)卡得到了雙方的真實傳輸?shù)刂泛?,就開始對這些地址發(fā)送TCP/IP 數(shù)據(jù)包,執(zhí)行連接檢測過程。經(jīng)過反復(fù)檢測,發(fā)現(xiàn)客戶端1可以和客戶端2正常通訊的傳輸?shù)刂穼?192. 168. 0. 1 :80,129. 33. 88. 6 :4321)客戶端2可以和客戶端1正常通訊的傳輸?shù)刂穼?172. 16. 13. 11 :5566,133. 155. 23. 26 :1234)。這個信息會被保存到虛擬網(wǎng)卡內(nèi)部的虛擬地址映射表中,供數(shù)據(jù)傳輸時使用。對于建立在雙方虛擬網(wǎng)卡上的TCP/IP應(yīng)用來說,它們使用虛擬地址來進(jìn)行通訊, 虛擬地址是可以被虛擬網(wǎng)卡識別的,通過查詢虛擬地址映射表,虛擬網(wǎng)卡內(nèi)部使用真實的傳輸?shù)刂愤M(jìn)行通訊。在數(shù)據(jù)傳輸完畢,兩方可以根據(jù)需要可以從地址交換服務(wù)器上注銷自己,雙方的虛擬網(wǎng)卡就會顯示為斷開狀態(tài),也可以根據(jù)需要自動重新連接。
權(quán)利要求
1.一種應(yīng)用于不同局域網(wǎng)的終端相互通訊的虛擬網(wǎng)卡通訊裝置,其特征在于,包括 兩個終端上的真實網(wǎng)卡NICA和OTCB,功能是對外界執(zhí)行真實的網(wǎng)絡(luò)數(shù)據(jù)接收和轉(zhuǎn)發(fā)工作,是虛擬網(wǎng)卡工作的基礎(chǔ);虛擬網(wǎng)卡NIC_SIMA和NIC_SIMB,它們?yōu)樯蠈討?yīng)用提供虛擬地址,上層應(yīng)用使用該虛擬地址和對方通訊的時候,TCP/IP數(shù)據(jù)包流經(jīng)該虛擬網(wǎng)卡,虛擬網(wǎng)卡軟件將虛擬地址轉(zhuǎn)換為真實的通訊地址,通過分配該通訊地址的真實網(wǎng)卡和對方通訊;地址服務(wù)器S,它作為兩個虛擬網(wǎng)卡通訊的中介,協(xié)調(diào)兩個虛擬網(wǎng)卡一步步建立通訊過程;真實網(wǎng)卡作為終端真實的物理設(shè)備存在于終端的硬件設(shè)備之中,虛擬網(wǎng)卡為終端上的一個駐留程序存在,地址服務(wù)器S是部署在因特網(wǎng)上軟件模塊,可以從因特網(wǎng)上的任何地方訪問到該服務(wù)器;地址服務(wù)器S的功能包括1)統(tǒng)一管理所有連接到該服務(wù)的所有的虛擬地址,在虛擬網(wǎng)卡激活的時候為虛擬網(wǎng)卡分配通訊地址,在虛擬網(wǎng)卡斷開的時候回收通訊地址;2)接受來自某個虛擬網(wǎng)卡軟件的通訊地址信息,向有意連接該虛擬網(wǎng)卡的其他虛擬網(wǎng)卡發(fā)送通訊地址信息和連接方法;3)協(xié)調(diào)兩個虛擬網(wǎng)卡之間通過雙方發(fā)送的地址進(jìn)行通訊,完成信息的交互、連接握手、 連接建立、媒體、數(shù)據(jù)流的傳送;4)應(yīng)用結(jié)束后關(guān)閉兩個虛擬網(wǎng)卡之間的連接、釋放資源并確認(rèn);5)統(tǒng)計虛擬網(wǎng)卡傳輸?shù)刂返倪B接信息,包括傳輸速率、傳輸質(zhì)量、斷線率和工作時間等信息,計算優(yōu)先級,為連接方選擇傳輸?shù)刂诽峁﹨⒖肌L摂M網(wǎng)卡NIC_SIMA和NIC_SIMB的功能包括通訊地址收集、虛擬地址注冊、虛擬地址查詢、傳輸?shù)刂愤x擇、使用通訊地址執(zhí)行數(shù)據(jù)傳輸操作、發(fā)送心跳數(shù)據(jù)包、虛擬地址注銷; 虛擬網(wǎng)卡NIC_SIMA和NIC_SIMB的內(nèi)部結(jié)構(gòu)包括下面這些模塊 網(wǎng)絡(luò)協(xié)議接口單元用于處理訪問該虛擬網(wǎng)卡的TCP/IP的數(shù)據(jù)包,對包含在數(shù)據(jù)包中的虛擬通訊地址進(jìn)行轉(zhuǎn)換和處理,根據(jù)轉(zhuǎn)換后的地址選擇真實網(wǎng)卡和外部通訊;通訊處理單元執(zhí)行通訊地址收集、地址交換、連接檢查、數(shù)據(jù)傳輸?shù)裙δ埽粚崿F(xiàn)當(dāng)前虛擬網(wǎng)卡和其他局域網(wǎng)的虛擬網(wǎng)卡的數(shù)據(jù)傳輸過程;信息管理單元該信息管理單元包含著當(dāng)前在本虛擬網(wǎng)卡和其他虛擬網(wǎng)卡進(jìn)行通訊過程中所有的數(shù)據(jù)結(jié)構(gòu)。
2.根據(jù)權(quán)利要求1所述的虛擬網(wǎng)卡通訊裝置,其特征在于,通訊地址收集收集當(dāng)前終端可以用于雙方建立通訊的地址,地址信息包括一個<IP 地址,端口〉對,地址類別主要分為三類本機(jī)所有網(wǎng)卡的地址,通過遍歷本機(jī)所有網(wǎng)卡得到;NAT映射地址,一般的路由器都有網(wǎng)絡(luò)地址轉(zhuǎn)換功能,可以將局域網(wǎng)內(nèi)的地址映射為 NAT出口的地址,在路由器上直接配置映射關(guān)系,或通過訪問STUN服務(wù)器得到可供外部訪問當(dāng)前終端的映射地址;中繼地址,有些NAT是對稱式的,不支持固定的NAT映射,對于這種NAT,只能向特定的TURN服務(wù)器申請一個中繼地址,所有的通訊數(shù)據(jù)包要經(jīng)過中繼服務(wù)器轉(zhuǎn)發(fā)。對于每種類型的地址,參照ICE(互動式連接建立)算法計算一個優(yōu)先級別,作為在后續(xù)地址檢測中選擇最佳通訊地址的參考;虛擬地址注冊;為了向上層應(yīng)用提供服務(wù),虛擬網(wǎng)卡需要向地址服務(wù)器S申請一個虛擬地址,同時將自己的通訊地址、身份認(rèn)證信息發(fā)送給服務(wù)器端;虛擬地址查詢,為了和對等方虛擬網(wǎng)卡通訊,需要根據(jù)虛擬地址查詢對方的通訊地址 fn息;傳輸?shù)刂愤x擇在收到對方的通訊地址信息之后,雙方都需要根據(jù)這些通訊地址進(jìn)行連接檢查,從中獲得一個最佳的傳輸?shù)刂纷鳛樽罱K的傳輸?shù)刂罚话l(fā)送心跳數(shù)據(jù)包考慮到NAT分配的地址有時效性,虛擬網(wǎng)卡會定時發(fā)送心跳數(shù)據(jù)包給對方的通訊地址,進(jìn)行檢測,并發(fā)送當(dāng)前地址的連接情況信息反饋給地址服務(wù)器S,在通訊地址失效的情況下虛擬網(wǎng)卡會從地址列表中重新選擇通訊地址并進(jìn)行檢測;虛擬地址注銷數(shù)據(jù)傳輸完畢后,虛擬網(wǎng)卡根據(jù)需要會斷開所有和對等方虛擬網(wǎng)卡的網(wǎng)絡(luò)連接,同時發(fā)送注銷請求給地址服務(wù)器S,地址服務(wù)器回收分配給該虛擬網(wǎng)卡的通訊地址,虛擬網(wǎng)卡斷開。
3.根據(jù)權(quán)利要求1所述的虛擬網(wǎng)卡通訊裝置,其特征在于,所述的信息管理單元包含著當(dāng)前在本虛擬網(wǎng)卡和其他虛擬網(wǎng)卡進(jìn)行通訊過程中所有的數(shù)據(jù)結(jié)構(gòu),包括候選地址列表該表格中存儲著收集到的可以用于其他虛擬網(wǎng)卡和自己通訊的地址列表,包括前面所述的三類地址信息,根據(jù)實際的應(yīng)用,用戶可以向這個列表中添加其他可以用于通訊的地址信息,添加完畢之后需要計算并更新每個地址的優(yōu)先級,計算公式可以由用戶自己定義;虛擬地址映射表該表格中存儲對等方虛擬地址相關(guān)信息,通過該虛擬地址映射表可以查詢到虛擬地址對應(yīng)的真實連接地址;虛擬地址映射表中包含的信息包括虛擬地址、 訪問端口、本方真實傳輸?shù)刂?、本方真實傳輸端口、對方傳輸?shù)刂?、對方傳輸端口、地址狀態(tài)、創(chuàng)建時間等信息;用戶認(rèn)證信息虛擬網(wǎng)卡需要在連接地址服務(wù)器的時候,需要提供一個身份信息給地址服務(wù)器;經(jīng)過認(rèn)證之后,虛擬網(wǎng)卡才能注冊和查詢虛擬地址信息;好友和歷史訪問信息在虛擬網(wǎng)卡內(nèi)部有一個好友列表,每個好友是一個虛擬網(wǎng)卡用戶,他們都注冊到當(dāng)前地址服務(wù)器;這個信息是在虛擬網(wǎng)卡初始化的時候,虛擬網(wǎng)卡從服務(wù)器上讀取到的;好友級別的用戶可以提供比其他用戶更好的傳輸質(zhì)量和傳輸速度;地址檢查列表在執(zhí)行地址檢查過程生成的臨時數(shù)據(jù),這個數(shù)據(jù)在數(shù)據(jù)傳輸完畢后可以被清除,作為一種優(yōu)化的選項,這個列表信息可以保留,下次虛擬網(wǎng)卡重新啟動后重新建立地址檢查表的時候,考慮到這個優(yōu)先級因子,以前高優(yōu)先級的地址還會保持優(yōu)先選擇,這樣用戶選擇的傳輸?shù)刂肪湍鼙3忠粋€優(yōu)化的狀態(tài);優(yōu)化因子和優(yōu)化算法由用戶選擇和定義,或以根據(jù)當(dāng)前網(wǎng)絡(luò)變動情況進(jìn)行演化;輸入輸出緩沖區(qū)用于臨時緩存需要發(fā)送和接收的數(shù)據(jù)包。
4.根據(jù)權(quán)利要求1所述的虛擬網(wǎng)卡通訊裝置,其特征在于,虛擬網(wǎng)卡通過地址服務(wù)器實現(xiàn)通訊過程中交互的消息流程包括1)虛擬地址注冊請求在收集完地址之后,虛擬網(wǎng)卡將外界可以和自己通訊的所有地址信息打成一數(shù)據(jù)包,加上自己的身份認(rèn)證和好友信息,加密后發(fā)送給地址服務(wù)器S ;2)注冊應(yīng)答消息地址交換服務(wù)器在內(nèi)部維護(hù)一個虛擬地址信息映射表,根據(jù)一定算法和規(guī)則向發(fā)送端返回一個未用的虛擬IP地址,并以該IP地址作為鍵值更新映射表,然后再將該虛擬IP地址信息通過正常的TCP/IP數(shù)據(jù)包發(fā)送給該虛擬網(wǎng)卡;3)更新請求消息當(dāng)前虛擬網(wǎng)卡將自己收集到的通訊地址信息發(fā)送給地址交換服務(wù)器S ;當(dāng)前虛擬網(wǎng)卡在此之前已經(jīng)做了一個連接檢查的操作,考慮到網(wǎng)絡(luò)的時延,某些地址的狀態(tài)還沒有及時返回,為了保持地址的有效性,虛擬網(wǎng)卡需要不斷地將有效的地址信息更新到服務(wù)器中,服務(wù)器再將更新后的地址狀態(tài)信息轉(zhuǎn)發(fā)到其他虛擬網(wǎng)卡用戶;4)更新應(yīng)答消息根據(jù)當(dāng)前虛擬網(wǎng)卡的虛擬地址,地址交換服務(wù)器及時更新數(shù)據(jù)庫中的地址信息,然后發(fā)送一個應(yīng)答消息給虛擬網(wǎng)卡;5)認(rèn)證請求其他虛擬網(wǎng)卡需要和當(dāng)前虛擬網(wǎng)卡通訊之前,需要提供身份認(rèn)證信息;6)認(rèn)證應(yīng)答對于來自某個虛擬網(wǎng)卡的認(rèn)證請求,地址交換服務(wù)器需要核對當(dāng)前虛擬網(wǎng)卡提交的身份信息,返回當(dāng)前虛擬網(wǎng)卡的通訊權(quán)限和好友列表;7)查詢請求可以根據(jù)某個虛擬網(wǎng)卡地址查詢到該虛擬網(wǎng)卡可用的地址信息。就是虛擬網(wǎng)卡在和其他虛擬網(wǎng)卡通訊之前,需要首先查詢該虛擬網(wǎng)卡的真實地址,查詢憑證就是對方虛擬網(wǎng)卡的虛擬地址;需要輸入一個或者多個虛擬地址信息組成一個字符串給地址服務(wù)器,如果需要查詢所有可訪問的可以使用可以輸入一個通配符*,查詢到所有虛擬網(wǎng)卡組成的列表;8)查詢應(yīng)答消息服務(wù)器在收到該請求消息后,會從數(shù)據(jù)庫中進(jìn)行查詢,如果查詢成功,則返回對應(yīng)虛擬地址真實的傳輸?shù)刂沸畔?,否則向發(fā)送方報告一個地址不可達(dá)信息;9)訂閱消息進(jìn)行通訊的雙方的網(wǎng)絡(luò)狀況有時是在不斷地變動過程中,有的時候用戶希望對方的網(wǎng)絡(luò)地址發(fā)生變化的時候本方及時得到通知,這就需要訂閱消息;訂閱消息需要兩個虛擬網(wǎng)卡、地址交換服務(wù)器三方參與,首先虛擬網(wǎng)卡向地址交換服務(wù)器發(fā)送訂閱消息,該消息經(jīng)該服務(wù)器轉(zhuǎn)發(fā)到對方虛擬網(wǎng)卡所在的客戶機(jī);10)訂閱消息應(yīng)答在收到訂閱消息之后,對方虛擬網(wǎng)卡將發(fā)送一個確認(rèn)消息或者發(fā)送一個拒絕消息,表示拒絕提供訂閱功能;這個確認(rèn)消息表示兩方存在這樣一個訂閱關(guān)系, 在本方向地址交換服務(wù)器更新地址信息的時候,對方將收到一個通知,及時地處理通訊地址的變化;11)注銷請求客戶機(jī)希望注銷該虛擬網(wǎng)卡,需要從地址服務(wù)器S中移除掉本方地址信息,將發(fā)送該請求;12)注銷應(yīng)答地址服務(wù)器S檢查數(shù)據(jù)庫中的虛擬地址映射表,從中移除掉該客戶機(jī)的虛擬網(wǎng)卡地址映射信息,并發(fā)送一個應(yīng)答給客戶端。
全文摘要
一種應(yīng)用于不同局域網(wǎng)的終端相互通訊的虛擬網(wǎng)卡通訊裝置,屬于計算機(jī)通訊范疇的虛擬網(wǎng)卡通訊技術(shù)領(lǐng)域。包括兩個終端上的真實網(wǎng)卡NICA和NICB,功能是對外界執(zhí)行真實的網(wǎng)絡(luò)數(shù)據(jù)接收和轉(zhuǎn)發(fā)工作,是虛擬網(wǎng)卡工作的基礎(chǔ);虛擬網(wǎng)卡NIC_SIMA和NIC_SIMB,它們?yōu)樯蠈討?yīng)用提供虛擬地址,上層應(yīng)用使用該虛擬地址和對方通訊的時候,TCP/IP數(shù)據(jù)包流經(jīng)該虛擬網(wǎng)卡,虛擬網(wǎng)卡軟件將虛擬地址轉(zhuǎn)換為真實的通訊地址,通過分配該通訊地址的真實網(wǎng)卡和對方通訊;地址服務(wù)器S,它作為兩個虛擬網(wǎng)卡通訊的中介,協(xié)調(diào)兩個虛擬網(wǎng)卡一步步建立通訊過程;真實網(wǎng)卡作為終端真實的物理設(shè)備存在于終端的硬件設(shè)備之中,虛擬網(wǎng)卡為終端上的一個駐留程序存在。
文檔編號H04L12/46GK102281180SQ20111019710
公開日2011年12月14日 申請日期2011年7月14日 優(yōu)先權(quán)日2011年7月14日
發(fā)明者李勇 申請人:冶金自動化研究設(shè)計院