亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法及系統(tǒng)與流程

文檔序號:11279399閱讀:710來源:國知局
一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法及系統(tǒng)與流程

本發(fā)明涉及數(shù)據(jù)網(wǎng)絡(luò)傳輸技術(shù)領(lǐng)域,尤其涉及一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法及系統(tǒng)。



背景技術(shù):

在當(dāng)前遠(yuǎn)程跨局域網(wǎng)取證產(chǎn)品中,由于取證數(shù)據(jù)量較大通常希望能夠點(diǎn)對點(diǎn)的直接傳輸數(shù)據(jù)。而不是通過中轉(zhuǎn)服務(wù)器來中轉(zhuǎn),這會對中轉(zhuǎn)服務(wù)器的帶寬及負(fù)載能力帶來較大的考驗(yàn)。目前點(diǎn)對點(diǎn)傳輸數(shù)據(jù)使用比較廣泛的是基于udp(userdatagramprotocol,用戶數(shù)據(jù)報協(xié)議)傳輸?shù)膇ce網(wǎng)絡(luò)穿透方案,而基于tcp(transmissioncontrolprotocol,傳輸控制協(xié)議)的網(wǎng)絡(luò)穿透目前沒有解決方案。

基于udp傳輸?shù)木W(wǎng)絡(luò)穿透方案最大的不足之處在于udp是非連接的不可靠傳輸,這對于實(shí)時音視頻通話是適用的,丟失幾幀數(shù)據(jù)影響不大。但這對于數(shù)據(jù)取證來說是一個硬傷,尤其在跨局域網(wǎng)點(diǎn)對點(diǎn)數(shù)據(jù)傳輸?shù)倪^程中無法保證數(shù)據(jù)的完整性。

也就是說,亟需提供一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法,來解決現(xiàn)有基于udp傳輸?shù)木W(wǎng)絡(luò)穿透方案無法保證數(shù)據(jù)完整性的問題。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法及系統(tǒng),用以解決現(xiàn)有基于udp傳輸?shù)木W(wǎng)絡(luò)穿透方案無法保證數(shù)據(jù)完整性的問題。

本發(fā)明實(shí)施例提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法,包括:

服務(wù)器分別與客戶端a和客戶端b建立傳輸控制協(xié)議tcp監(jiān)聽,并通過tcp監(jiān)聽端口分別與所述客戶端a和客戶端b建立連接;

接收所述客戶端a或客戶端b發(fā)送的登錄請求,并接收所述客戶端a發(fā)送的客戶端a的唯一識別碼uuid和內(nèi)網(wǎng)地址或客戶端b發(fā)送的客戶端b的uuid和內(nèi)網(wǎng)地址;

確定所述客戶端a的外網(wǎng)地址或客戶端b的外網(wǎng)地址,并存儲所述客戶端a的配對記錄或客戶端b的配對記錄;其中,所述配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址;

接收所述客戶端a或客戶端b發(fā)送的配對請求,所述配對請求中攜帶有所述客戶端b的uuid或客戶端a的uuid,根據(jù)所述客戶端b的uuid或客戶端a的uuid進(jìn)行檢索,當(dāng)確定所述客戶端b或客戶端a在線時,將所述客戶端b的配對記錄或客戶端a的配對記錄發(fā)送至所述客戶端a或客戶端b,以由所述客戶端a根據(jù)所述客戶端b的配對記錄向所述客戶端b發(fā)送連接請求,與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸;或,以由所述客戶端b根據(jù)所述客戶端a的配對記錄向所述客戶端a發(fā)送連接請求,與所述客戶端a建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

進(jìn)一步地,作為一個可執(zhí)行方案,所述方法還包括:

若接收到所述客戶端a或所述客戶端b發(fā)送的第一連接失敗通知信息,則將所述客戶端a的配對記錄或所述客戶端b的配對記錄發(fā)送給所述客戶端b或客戶端a,以由所述客戶端b或客戶端a發(fā)送連接請求。

進(jìn)一步地,作為一個可執(zhí)行方案,在若接收到所述客戶端a或所述客戶端b發(fā)送的第一連接失敗通知信息,則將所述客戶端a的配對記錄或所述客戶端b的配對記錄發(fā)送給所述客戶端b或客戶端a,以由所述客戶端b或客戶端a發(fā)送連接請求之后,所述方法還包括:

若接收到所述客戶端b或所述客戶端a發(fā)送的第二連接失敗通知信息,則分別通知所述客戶端b和所述客戶端a以中繼方式傳輸數(shù)據(jù)。

進(jìn)一步地,本發(fā)明實(shí)施例還提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法,包括:

客戶端a與服務(wù)器建立tcp監(jiān)聽,并通過tcp監(jiān)聽端口與服務(wù)器建立連接;

向服務(wù)器發(fā)送登錄請求,并發(fā)送自身對應(yīng)的uuid和內(nèi)網(wǎng)地址,以由服務(wù)器確定所述客戶端a的外網(wǎng)地址,并存儲所述客戶端a的配對記錄;其中,所述配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址;

向所述服務(wù)器發(fā)送配對請求,所述配對請求中攜帶有客戶端b的uuid,以由所述服務(wù)器根據(jù)所述客戶端b的uuid進(jìn)行檢索,并在確定所述客戶端b在線時,將所述客戶端b的配對記錄發(fā)送至所述客戶端a;

接收所述服務(wù)器發(fā)送的所述客戶端b的配對記錄,并根據(jù)所述客戶端b的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端b發(fā)送連接請求,與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

具體地,作為一個可執(zhí)行方案,所述根據(jù)所述客戶端b的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端b發(fā)送連接請求,與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸,包括:

根據(jù)所述客戶端b的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端b的內(nèi)網(wǎng)地址發(fā)送連接請求,若所述客戶端b與所述客戶端a在同一局域網(wǎng),則直接與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸;

若否,則連接失敗,向所述客戶端b的外網(wǎng)地址發(fā)送連接請求,與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸,若連接失敗,則向所述服務(wù)器發(fā)送第一連接失敗通知信息,以由所述服務(wù)器將所述客戶端a的配對記錄發(fā)送給所述客戶端b,并由所述客戶端b向所述客戶端a發(fā)送連接請求,與客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

進(jìn)一步地,作為一個可執(zhí)行方案,所述方法還包括:

接收所述客戶端b發(fā)送的連接請求,并與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸;或,

接收所述客戶端b發(fā)送的連接請求,無法與所述客戶端b建立點(diǎn)對點(diǎn)連接,并向所述服務(wù)器發(fā)送第二連接失敗通知信息。

進(jìn)一步地,作為一個可執(zhí)行方案,所述方法還包括:

接收所述服務(wù)器發(fā)送的以中繼方式傳輸數(shù)據(jù)的通知信息。

進(jìn)一步地,本發(fā)明實(shí)施例還提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸系統(tǒng),所述系統(tǒng)包括:

服務(wù)器,用于分別與客戶端a和客戶端b建立tcp監(jiān)聽,并通過tcp監(jiān)聽端口分別與所述客戶端a和客戶端b建立連接;接收所述客戶端a或客戶端b發(fā)送的登錄請求,并接收所述客戶端a發(fā)送的客戶端a的uuid和內(nèi)網(wǎng)地址或客戶端b發(fā)送的客戶端b的uuid和內(nèi)網(wǎng)地址;確定所述客戶端a的外網(wǎng)地址或客戶端b的外網(wǎng)地址,并存儲所述客戶端a的配對記錄或客戶端b的配對記錄;其中,所述配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址;接收所述客戶端a或客戶端b發(fā)送的配對請求,所述配對請求中攜帶有所述客戶端b的uuid或客戶端a的uuid,根據(jù)所述客戶端b的uuid或客戶端a的uuid進(jìn)行檢索,當(dāng)確定所述客戶端b或客戶端a在線時,將所述客戶端b的配對記錄或客戶端a的配對記錄發(fā)送至所述客戶端a或客戶端b,以由所述客戶端a根據(jù)所述客戶端b的配對記錄向所述客戶端b發(fā)送連接請求,與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸;或,以由所述客戶端b根據(jù)所述客戶端a的配對記錄向所述客戶端a發(fā)送連接請求,與所述客戶端a建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸;

客戶端a,用于與所述服務(wù)器建立tcp監(jiān)聽,并通過tcp監(jiān)聽端口與服務(wù)器建立連接;向服務(wù)器發(fā)送登錄請求,并發(fā)送自身對應(yīng)的uuid和內(nèi)網(wǎng)地址,以由服務(wù)器確定所述客戶端a的外網(wǎng)地址,并存儲所述客戶端a的配對記錄;其中,所述配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址;向所述服務(wù)器發(fā)送配對請求,所述配對請求中攜帶有客戶端b的uuid,以由所述服務(wù)器根據(jù)所述客戶端b的uuid進(jìn)行檢索,并在確定所述客戶端b在線時,將所述客戶端b的配對記錄發(fā)送至所述客戶端a;接收所述服務(wù)器發(fā)送的所述客戶端b的配對記錄,并根據(jù)所述客戶端b的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端b發(fā)送連接請求,與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

本發(fā)明有益效果如下:

本發(fā)明實(shí)施例提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法及系統(tǒng),在該方法中,服務(wù)器分別與客戶端a和客戶端b建立連接,并根據(jù)接收到的客戶端a或客戶端b發(fā)送的信息存儲客戶端a或客戶端b的配對記錄,其中,配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址,以及,接收客戶端a發(fā)送的配對請求,并根據(jù)該請求將客戶端b的配對記錄發(fā)送至客戶端a,以由客戶端a根據(jù)該配對記錄向客戶端b發(fā)送連接請求,與客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。在本發(fā)明所述技術(shù)方案由于采用tcp協(xié)議進(jìn)行數(shù)據(jù)傳輸,并且tcp是面向連接的可靠傳輸,因此可以實(shí)現(xiàn)遠(yuǎn)程取證數(shù)據(jù)點(diǎn)對點(diǎn)傳輸,即實(shí)現(xiàn)跨局域網(wǎng)點(diǎn)對點(diǎn)的數(shù)據(jù)傳輸?shù)耐瑫r有效地保證數(shù)據(jù)的完整性。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1所示為本發(fā)明實(shí)施例一所述的點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法的流程示意圖;

圖2所示為本發(fā)明實(shí)施例所述的點(diǎn)對點(diǎn)連接模型示意圖;

圖3所示為本發(fā)明實(shí)施例二所述的點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法的流程示意圖;

圖4所示為本發(fā)明實(shí)施例三所述的點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法的流程示意圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

在詳細(xì)說明具體實(shí)施例之前,首先了解一些基本網(wǎng)絡(luò)數(shù)據(jù)傳輸信息。

由于基于udp傳輸?shù)木W(wǎng)絡(luò)穿透方案無法保證數(shù)據(jù)完整性,因此,遠(yuǎn)程數(shù)據(jù)傳輸方案的網(wǎng)絡(luò)傳輸方式本發(fā)明實(shí)施例所選擇的傳輸方式是tcp傳輸協(xié)議,用以保證數(shù)據(jù)傳輸?shù)目煽啃?,本發(fā)明所述技術(shù)方案主要應(yīng)用到tcp的端口復(fù)用特性,一個tcp端口可以同時與多方進(jìn)行通信,協(xié)議層通過源地址、源端口、目的地址、目的端口四元組來區(qū)分。那么接下來的重點(diǎn)就是如何實(shí)現(xiàn)網(wǎng)絡(luò)穿透。用一個典型的使用場景進(jìn)行原理說明,設(shè)取證端為客戶端a,被取證端為客戶端b,客戶端a和客戶端b分別位于不同局域網(wǎng)內(nèi),網(wǎng)絡(luò)路由規(guī)則上客戶端a是無法與客戶端b直接建立連接的。因此,本發(fā)明通過在公網(wǎng)上部署一臺服務(wù)器server來協(xié)助客戶端a與客戶端b建立點(diǎn)到點(diǎn)連接。具體實(shí)現(xiàn)方案見下述具體實(shí)施例。

實(shí)施例一:

本發(fā)明實(shí)施例一提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法,如圖1所示,其為本發(fā)明實(shí)施例一所述的點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法的流程示意圖,所述方法可包括以下步驟:

步驟101:服務(wù)器分別與客戶端a和客戶端b建立tcp監(jiān)聽,并通過tcp監(jiān)聽端口分別與所述客戶端a和客戶端b建立連接。

步驟102:接收所述客戶端a或客戶端b發(fā)送的登錄請求,并接收所述客戶端a發(fā)送的客戶端a的uuid和內(nèi)網(wǎng)地址或客戶端b發(fā)送的客戶端b的uuid和內(nèi)網(wǎng)地址。

步驟103:確定所述客戶端a的外網(wǎng)地址或客戶端b的外網(wǎng)地址,并存儲所述客戶端a的配對記錄或客戶端b的配對記錄;其中,所述配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址。

步驟104:接收所述客戶端a或客戶端b發(fā)送的配對請求,所述配對請求中攜帶有所述客戶端b的uuid或客戶端a的uuid,根據(jù)所述客戶端b的uuid或客戶端a的uuid進(jìn)行檢索,當(dāng)確定所述客戶端b或客戶端a在線時,將所述客戶端b的配對記錄或客戶端a的配對記錄發(fā)送至所述客戶端a或客戶端b,以由所述客戶端a根據(jù)所述客戶端b的配對記錄向所述客戶端b發(fā)送連接請求,與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸;或,以由所述客戶端b根據(jù)所述客戶端a的配對記錄向所述客戶端a發(fā)送連接請求,與所述客戶端a建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

也就是說,首先,服務(wù)器分別與客戶端a和客戶端b建立tcp監(jiān)聽,然后客戶端a和b分別復(fù)用監(jiān)聽端口再與服務(wù)器建立一個tcp連接。此時服務(wù)器可以通過解析tcp數(shù)據(jù)報的源地址分別獲得客戶端a和客戶端b的經(jīng)nat轉(zhuǎn)換后的外網(wǎng)地址。客戶端a和客戶端b分別與服務(wù)器建立連接后,任意一方可以發(fā)送連接配對請求,服務(wù)器通過識別身份通知預(yù)配對連接的一端其連接對端的配對記錄,與配對連接方再次復(fù)用tcp端口以分別向?qū)Χ说耐饩W(wǎng)地址發(fā)起連接請求,從而實(shí)現(xiàn)點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。其中,建立點(diǎn)對點(diǎn)連接的模型圖可如圖2所示。

進(jìn)一步地,作為一個可執(zhí)行方案,所述方法還可包括步驟s1:

步驟s1:若接收到所述客戶端a或所述客戶端b發(fā)送的第一連接失敗通知信息,則將所述客戶端a的配對記錄或所述客戶端b的配對記錄發(fā)送給所述客戶端b或客戶端a,以由所述客戶端b或客戶端a發(fā)送連接請求。

對于步驟s1,以一例子進(jìn)行說明,如圖2所示,以客戶端a和客戶端b兩個局域網(wǎng)的網(wǎng)關(guān)都是地址限制型nat來舉例,客戶端a首先向客戶端b外網(wǎng)地址發(fā)送syn(握手信號)連接請求,由于客戶端b未向客戶端a的外網(wǎng)地址發(fā)過任何數(shù)據(jù),路由器b訪問控制列表沒有記錄,此時客戶端a發(fā)向客戶端b的syn包會被路由器b攔截丟棄。但沒關(guān)系客戶端a發(fā)向客戶端b連接請求已在路由器a上打了一個客戶端a內(nèi)網(wǎng)地址到客戶端b外網(wǎng)地址的“洞”,路由器a的訪問控制列表上增加了客戶端b的外網(wǎng)地址。當(dāng)客戶端b向客戶端a的外網(wǎng)地址發(fā)起連接時,由于a剛才發(fā)送的連接請求已經(jīng)打了一個“洞”,因此,路由器a不會拒絕客戶端b的連接請求,會將客戶端b的連接請求轉(zhuǎn)發(fā)給客戶端a。那么此時客戶端a和客戶端b就建立的點(diǎn)對點(diǎn)連接。

上述工作原理中說明了一個典型使用場景的穿透過程,考慮到使用場景的多樣性和復(fù)雜性,本發(fā)明所述技術(shù)方案需要滿足全場景可用。首先要考慮到對于不同網(wǎng)關(guān)的nat類型的穿透過程。

我們通常將網(wǎng)關(guān)的nat類型分為四種類型:完全錐型nat,地址限制型nat,端口限制性nat,對稱型nat。對于前三種類型nat上述的網(wǎng)絡(luò)穿透方案都可以實(shí)現(xiàn)點(diǎn)對點(diǎn)連接。對于對稱型nat由于對數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則的嚴(yán)格限制,我們可以通過在服務(wù)器中轉(zhuǎn)的方式來實(shí)現(xiàn)全場景可連接的請求。目前市面上大部分網(wǎng)關(guān)的nat類型都是前三種,對稱型nat相對較少,那么在整個系統(tǒng)中通過服務(wù)器中轉(zhuǎn)數(shù)據(jù)的連接相對較少對于系統(tǒng)的負(fù)載要求是可以接受的。具體中轉(zhuǎn)方式傳輸方式可見下述步驟s2。

進(jìn)一步地,作為一個可執(zhí)行方案,在步驟s1若接收到所述客戶端a或所述客戶端b發(fā)送的第一連接失敗通知信息,則將所述客戶端a的配對記錄或所述客戶端b的配對記錄發(fā)送給所述客戶端b或客戶端a,以由所述客戶端b或客戶端a發(fā)送連接請求之后,所述方法還可包括步驟s2:

步驟s2:若接收到所述客戶端b或所述客戶端a發(fā)送的第二連接失敗通知信息,則分別通知所述客戶端b和所述客戶端a以中繼方式傳輸數(shù)據(jù)。

需要說明的是,方案設(shè)計(jì)需要滿足在windowsxp、windows7/8/10、linux平臺上都能夠使用。其中主要差異是各平臺的網(wǎng)絡(luò)協(xié)議版本有所不同網(wǎng)絡(luò)連接的細(xì)節(jié)會有所差異。其中主要考慮幾個問題:一、windowsxp的tcp版本為非伯克利版本,不支持預(yù)建立連接的兩端同時發(fā)起syn請求建立連接,而伯克利版本的tcp支持同時發(fā)起請求建立連接。為了兼容不同平臺實(shí)現(xiàn)上需要使用有序連接嘗試。二、windows7平臺當(dāng)創(chuàng)建listen監(jiān)聽時同時復(fù)用端口請求與對端建立連接,在遇到主動連接發(fā)送syn請求無響應(yīng),之后如果再收到syn請求連接將會被拒絕,而windowsxp平臺支持調(diào)整連接序列號直接建立連接。win7需要調(diào)用系統(tǒng)接口將處于syn_sent的socket結(jié)束掉才能接受連接請求。三、各平臺tcp協(xié)議在關(guān)閉socket后socket會進(jìn)入time_wait狀態(tài),這是為了連接關(guān)閉的可靠性。但這同時帶來一個問題,在time_wait的端口不能馬上復(fù)用,這個狀態(tài)一般要維持1~2分鐘的時間。這對于需要頻繁建立連接的場景顯然是不行,因此端口申請上需要注意,不能永遠(yuǎn)使用一個固定的端口。

本發(fā)明實(shí)施例一提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法,在該方法中,服務(wù)器分別與客戶端a和客戶端b建立連接,并根據(jù)接收到的客戶端a或客戶端b發(fā)送的信息存儲客戶端a或客戶端b的配對記錄,其中,配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址,以及,接收客戶端a發(fā)送的配對請求,并根據(jù)該請求將客戶端b的配對記錄發(fā)送至客戶端a,以由客戶端a根據(jù)該配對記錄向客戶端b發(fā)送連接請求,與客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。在本發(fā)明所述技術(shù)方案由于采用tcp協(xié)議進(jìn)行數(shù)據(jù)傳輸,并且tcp是面向連接的可靠傳輸,因此可以實(shí)現(xiàn)遠(yuǎn)程取證數(shù)據(jù)點(diǎn)對點(diǎn)傳輸,即實(shí)現(xiàn)跨局域網(wǎng)點(diǎn)對點(diǎn)的數(shù)據(jù)傳輸?shù)耐瑫r有效地保證數(shù)據(jù)的完整性。

實(shí)施例二

基于與本發(fā)明實(shí)施例一相同的發(fā)明構(gòu)思,本發(fā)明實(shí)施例二以客戶端a為執(zhí)行主體提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法,該方法的具體實(shí)施可參見上述方法實(shí)施例一中的相關(guān)描述,重復(fù)之處不再贅述,其流程示意圖如圖3所示,該方法主要可包括:

步驟301:客戶端a與服務(wù)器建立tcp監(jiān)聽,并通過tcp監(jiān)聽端口與服務(wù)器建立連接。

步驟302:向服務(wù)器發(fā)送登錄請求,并發(fā)送自身對應(yīng)的uuid和內(nèi)網(wǎng)地址,以由服務(wù)器確定所述客戶端a的外網(wǎng)地址,并存儲所述客戶端a的配對記錄;其中,所述配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址。

步驟303:向所述服務(wù)器發(fā)送配對請求,所述配對請求中攜帶有客戶端b的uuid,以由所述服務(wù)器根據(jù)所述客戶端b的uuid進(jìn)行檢索,并在確定所述客戶端b在線時,將所述客戶端b的配對記錄發(fā)送至所述客戶端a。

步驟304:接收所述服務(wù)器發(fā)送的所述客戶端b的配對記錄,并根據(jù)所述客戶端b的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端b發(fā)送連接請求,與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

具體地,對于步驟步驟304所述根據(jù)所述客戶端b的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端b發(fā)送連接請求,與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸,具體可包括步驟s11-s12:

步驟s11:根據(jù)所述客戶端b的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端b的內(nèi)網(wǎng)地址發(fā)送連接請求,若所述客戶端b與所述客戶端a在同一局域網(wǎng),則直接與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

步驟s12:若否,則連接失敗,向所述客戶端b的外網(wǎng)地址發(fā)送連接請求,與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸,若連接失敗,則向所述服務(wù)器發(fā)送第一連接失敗通知信息,以由所述服務(wù)器將所述客戶端a的配對記錄發(fā)送給所述客戶端b,并由所述客戶端b向所述客戶端a發(fā)送連接請求,與客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

也就是說,為了使得本發(fā)明所述技術(shù)方案更為全面,考慮到使用場景網(wǎng)絡(luò)拓?fù)涞亩鄻有?,如取證端和被取證端都在同一局域網(wǎng)時那么兩端應(yīng)該優(yōu)先通過內(nèi)網(wǎng)路由地址建立連接。

進(jìn)一步地,作為一個可執(zhí)行方案,所述方法還可包括:

接收所述客戶端b發(fā)送的連接請求,并與所述客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸;或,

接收所述客戶端b發(fā)送的連接請求,無法與所述客戶端b建立點(diǎn)對點(diǎn)連接,并向所述服務(wù)器發(fā)送第二連接失敗通知信息。

進(jìn)一步地,作為一個可執(zhí)行方案,所述方法還可包括:

接收所述服務(wù)器發(fā)送的以中繼方式傳輸數(shù)據(jù)的通知信息。

本發(fā)明實(shí)施例二提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法,在該方法中,客戶端a和客戶端b分別與服務(wù)器建立連接,客戶端a根據(jù)服務(wù)器發(fā)送的客戶端b的配對記錄向客戶端b發(fā)送連接請求,與客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸,其中,配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址。在本發(fā)明所述技術(shù)方案由于采用tcp協(xié)議進(jìn)行數(shù)據(jù)傳輸,并且tcp是面向連接的可靠傳輸,因此可以實(shí)現(xiàn)遠(yuǎn)程取證數(shù)據(jù)點(diǎn)對點(diǎn)傳輸,即實(shí)現(xiàn)跨局域網(wǎng)點(diǎn)對點(diǎn)的數(shù)據(jù)傳輸?shù)耐瑫r有效地保證數(shù)據(jù)的完整性。

實(shí)施例三

基于與本發(fā)明實(shí)施例一相同的發(fā)明構(gòu)思,本發(fā)明實(shí)施例三以客戶端b為執(zhí)行主體提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法,該方法的具體實(shí)施可參見上述方法實(shí)施例一中的相關(guān)描述,重復(fù)之處不再贅述,其流程示意圖如圖4所示,該方法主要可包括:

步驟401:客戶端b與服務(wù)器建立傳輸控制協(xié)議tcp監(jiān)聽,并通過tcp監(jiān)聽端口與服務(wù)器建立連接。

步驟402:向服務(wù)器發(fā)送登錄請求,并發(fā)送自身對應(yīng)的唯一識別碼uuid和內(nèi)網(wǎng)地址,以由服務(wù)器確定所述客戶端b的外網(wǎng)地址,并存儲所述客戶端b的配對記錄;其中,所述配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址。

步驟403:向所述服務(wù)器發(fā)送配對請求,所述配對請求中攜帶有客戶端a的uuid,以由所述服務(wù)器根據(jù)所述客戶端a的uuid進(jìn)行檢索,并在確定所述客戶端a在線時,將所述客戶端a的配對記錄發(fā)送至所述客戶端b。

步驟404:接收所述服務(wù)器發(fā)送的所述客戶端a的配對記錄,并根據(jù)所述客戶端a的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端a發(fā)送連接請求,與所述客戶端a建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

進(jìn)一步地,對于步驟404所述根據(jù)所述客戶端a的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端a發(fā)送連接請求,與所述客戶端a建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸,具體可包括步驟s111-s112:

步驟s111:根據(jù)所述客戶端a的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端a的內(nèi)網(wǎng)地址發(fā)送連接請求,若所述客戶端a與所述客戶端b在同一局域網(wǎng),則直接與所述客戶端a建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

步驟s112:若否,則連接失敗,向所述客戶端a的外網(wǎng)地址發(fā)送連接請求,與所述客戶端a建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸,若連接失敗,則向所述服務(wù)器發(fā)送第一連接失敗通知信息,以由所述服務(wù)器將所述客戶端b的配對記錄發(fā)送給所述客戶端a,并由所述客戶端a向所述客戶端b發(fā)送連接請求,與客戶端a建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

進(jìn)一步地,作為一個可執(zhí)行方案,所述方法還可包括:

接收所述客戶端a發(fā)送的連接請求,并與所述客戶端a建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸;或,

接收所述客戶端a發(fā)送的連接請求,無法與所述客戶端a建立點(diǎn)對點(diǎn)連接,并向所述服務(wù)器發(fā)送第二連接失敗通知信息。

進(jìn)一步地,作為一個可執(zhí)行方案,所述方法還可包括:

接收所述服務(wù)器發(fā)送的以中繼方式傳輸數(shù)據(jù)的通知信息。

本發(fā)明實(shí)施例三提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法,在該方法中,客戶端b和客戶端a分別與服務(wù)器建立連接,客戶端b根據(jù)服務(wù)器發(fā)送的客戶端a的配對記錄向客戶端a發(fā)送連接請求,與客戶端a建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸,其中,配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址。在本發(fā)明所述技術(shù)方案由于采用tcp協(xié)議進(jìn)行數(shù)據(jù)傳輸,并且tcp是面向連接的可靠傳輸,因此可以實(shí)現(xiàn)遠(yuǎn)程取證數(shù)據(jù)點(diǎn)對點(diǎn)傳輸,即實(shí)現(xiàn)跨局域網(wǎng)點(diǎn)對點(diǎn)的數(shù)據(jù)傳輸?shù)耐瑫r有效地保證數(shù)據(jù)的完整性。

實(shí)施例四

基于與本發(fā)明實(shí)施例一至三相同的發(fā)明構(gòu)思,本發(fā)明實(shí)施例四以服務(wù)器、客戶端a和客戶端b為交互為例,提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸方法,該方法的具體實(shí)施可參見上述方法實(shí)施例一中的相關(guān)描述,重復(fù)之處不再贅述,該方法主要可包括:

步驟c1:客戶端a和客戶端b分別與服務(wù)器創(chuàng)建tcp監(jiān)聽。

步驟c2:客戶端a和客戶端b分別復(fù)用監(jiān)聽端口,創(chuàng)建一個新的連接到服務(wù)器。

步驟c3:客戶端a和客戶端b分別向服務(wù)器執(zhí)行登錄操,客戶端a和客戶端b分別向server發(fā)送一個唯一的身份標(biāo)識uuid和對應(yīng)的內(nèi)網(wǎng)地址。

步驟c4:服務(wù)器可以通過分析tcp數(shù)據(jù)包的原地址分別得到客戶端a和客戶端b的外網(wǎng)地址,并可以保存這樣一條配對記錄:uuid+內(nèi)網(wǎng)地址+外網(wǎng)地址,即分別保存客戶端a和客戶端b的配對記錄。

步驟c5:客戶端a嘗試與客戶端b建立點(diǎn)對點(diǎn)連接,客戶端a向服務(wù)器發(fā)送配對客戶端b連接的請求,請求信息中攜帶客戶端b的身份標(biāo)識。

步驟c6:服務(wù)器檢索當(dāng)前信息發(fā)現(xiàn)客戶端b在線,因此把客戶端b的配對記錄發(fā)送給客戶端a。

步驟c7:客戶端a收到客戶端b的配對記錄后復(fù)用監(jiān)聽端口首先向客戶端b的內(nèi)網(wǎng)地址發(fā)送連接請求,如果客戶端a和客戶端b在同一局域網(wǎng)則可以直接建立連接。如果連接嘗試失敗再向客戶端b的外網(wǎng)地址發(fā)起連接。如果連接仍然嘗試失敗(被對端的路由器攔截)則通知服務(wù)器讓對端(客戶端b)發(fā)起連接。

步驟c8:服務(wù)器收到客戶端a的嘗試連接失敗的通知后將客戶端a的配對記錄發(fā)送給客戶端b,讓客戶端b來發(fā)起連接請求。

步驟c9:客戶端b同樣復(fù)用監(jiān)聽端口先向客戶端a向外網(wǎng)地址發(fā)起請求。如果連接失敗則通知服務(wù)器。

步驟c10:服務(wù)器收到客戶端b的嘗試連接失敗的通知,則通知客戶端a和客戶端b以服務(wù)器為中繼的方式傳輸數(shù)據(jù),且中繼傳輸數(shù)據(jù)可以使用客戶端a和客戶端b已和服務(wù)器建立連接的這條鏈路。

實(shí)施例五

基于與本發(fā)明實(shí)施例一至四相同的發(fā)明構(gòu)思,本發(fā)明實(shí)施例五提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸系統(tǒng),該系統(tǒng)的具體實(shí)施可參見上述方法實(shí)施例一至四中的相關(guān)描述,重復(fù)之處不再贅述,其結(jié)構(gòu)示意圖如圖2所示,該系統(tǒng)主要可包括:

服務(wù)器21,可用于分別與客戶端a22和客戶端b23建立tcp監(jiān)聽,并通過tcp監(jiān)聽端口分別與所述客戶端a22和客戶端b23建立連接;接收所述客戶端a22或客戶端b23發(fā)送的登錄請求,并接收所述客戶端a22發(fā)送的客戶端a22的唯一識別碼uuid和內(nèi)網(wǎng)地址或客戶端b23發(fā)送的客戶端b23的uuid和內(nèi)網(wǎng)地址;確定所述客戶端a22的外網(wǎng)地址或客戶端b23的外網(wǎng)地址,并存儲所述客戶端a22的配對記錄或客戶端b23的配對記錄;其中,所述配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址;接收所述客戶端a22或客戶端b23發(fā)送的配對請求,所述配對請求中攜帶有所述客戶端b23的uuid或客戶端a22的uuid,根據(jù)所述客戶端b23的uuid或客戶端a22的uuid進(jìn)行檢索,當(dāng)確定所述客戶端b23或客戶端a22在線時,將所述客戶端b23的配對記錄或客戶端a22的配對記錄發(fā)送至所述客戶端a22或客戶端b23,以由所述客戶端a22根據(jù)所述客戶端b23的配對記錄向所述客戶端b23發(fā)送連接請求,與所述客戶端b23建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸;或,以由所述客戶端b23根據(jù)所述客戶端a22的配對記錄向所述客戶端a22發(fā)送連接請求,與所述客戶端a22建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸;

客戶端a22,可用于與所述服務(wù)器21建立tcp監(jiān)聽,并通過tcp監(jiān)聽端口與服務(wù)器21建立連接;向服務(wù)器21發(fā)送登錄請求,并發(fā)送自身對應(yīng)的uuid和內(nèi)網(wǎng)地址,以由服務(wù)器21確定所述客戶端a22的外網(wǎng)地址,并存儲所述客戶端a22的配對記錄;其中,所述配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址;向所述服務(wù)器21發(fā)送配對請求,所述配對請求中攜帶有客戶端b23的uuid,以由所述服務(wù)器21根據(jù)所述客戶端b23的uuid進(jìn)行檢索,并在確定所述客戶端b23在線時,將所述客戶端b23的配對記錄發(fā)送至所述客戶端a22;接收所述服務(wù)器21發(fā)送的所述客戶端b23的配對記錄,并根據(jù)所述客戶端b23的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端b23發(fā)送連接請求,與所述客戶端b23建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸;

客戶端b23,可用于與所述服務(wù)器21建立tcp監(jiān)聽,并通過tcp監(jiān)聽端口與服務(wù)器21建立連接;向服務(wù)器21發(fā)送登錄請求,并發(fā)送自身對應(yīng)的uuid和內(nèi)網(wǎng)地址,以由服務(wù)器21確定所述客戶端b23的外網(wǎng)地址,并存儲所述客戶端b23的配對記錄;其中,所述配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址;向所述服務(wù)器21發(fā)送配對請求,所述配對請求中攜帶有客戶端a22的uuid,以由所述服務(wù)器21根據(jù)所述客戶端a22的uuid進(jìn)行檢索,并在確定所述客戶端a22在線時,將所述客戶端a22的配對記錄發(fā)送至所述客戶端b23;接收所述服務(wù)器21發(fā)送的所述客戶端a22的配對記錄,并根據(jù)所述客戶端a22的配對記錄通過所述tcp監(jiān)聽端口向所述客戶端a22發(fā)送連接請求,與所述客戶端a22建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。

本發(fā)明實(shí)施例五提供了一種點(diǎn)對點(diǎn)數(shù)據(jù)傳輸系統(tǒng),在該方法中,服務(wù)器分別與客戶端a和客戶端b建立連接,并根據(jù)接收到的客戶端a或客戶端b發(fā)送的信息存儲客戶端a或客戶端b的配對記錄,其中,配對記錄中至少包括uuid、內(nèi)網(wǎng)地址和外網(wǎng)地址,以及,接收客戶端a發(fā)送的配對請求,并根據(jù)該請求將客戶端b的配對記錄發(fā)送至客戶端a,以由客戶端a根據(jù)該配對記錄向客戶端b發(fā)送連接請求,與客戶端b建立點(diǎn)對點(diǎn)連接,并進(jìn)行數(shù)據(jù)傳輸。在本發(fā)明所述技術(shù)方案由于采用tcp協(xié)議進(jìn)行數(shù)據(jù)傳輸,并且tcp是面向連接的可靠傳輸,因此可以實(shí)現(xiàn)遠(yuǎn)程取證數(shù)據(jù)點(diǎn)對點(diǎn)傳輸,即實(shí)現(xiàn)跨局域網(wǎng)點(diǎn)對點(diǎn)的數(shù)據(jù)傳輸?shù)耐瑫r有效地保證數(shù)據(jù)的完整性。

本領(lǐng)域技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、裝置(設(shè)備)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(設(shè)備)和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。

顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1