外的設(shè)備支持。
[0030]進(jìn)一步地,本發(fā)明方案還包括:
[0031]第一終端從TCP連接接收數(shù)據(jù)包,對(duì)數(shù)據(jù)包進(jìn)行解析,判斷源地址是否為第二終端虛擬機(jī)的IP地址IPVB,如果是,則將數(shù)據(jù)包發(fā)送給第一終端自己。
[0032]第二終端也可在其構(gòu)建的虛擬局域網(wǎng)內(nèi)進(jìn)行數(shù)據(jù)傳輸,具體地,第二終端內(nèi)保存關(guān)于第一終端虛擬機(jī)的映射關(guān)系,包括IPv^ IPvb之間的第三映射關(guān)系,以及IPv^ IP^間的第四映射關(guān)系;該方法還包括:
[0033]第二終端向本局域網(wǎng)內(nèi)的第一終端虛擬機(jī)發(fā)送數(shù)據(jù)包時(shí),在第三映射關(guān)系中查找出與目的地址IPva對(duì)應(yīng)的地址IP VB,將源地址修改為查找出的IPVB,在第四映射關(guān)系中查找出與目的地址IPva對(duì)應(yīng)的第二終端地址IP A,將目的地址修改為IPa;
[0034]第二終端對(duì)數(shù)據(jù)包進(jìn)行封裝,得到封裝后的數(shù)據(jù)包;根據(jù)目的地址IPa,將封裝后的數(shù)據(jù)包通過TCP連接發(fā)送給目的地。
[0035]第二終端可單獨(dú)向本局域網(wǎng)內(nèi)的第一終端虛擬機(jī)發(fā)送數(shù)據(jù)包,也可以通過在本局域網(wǎng)內(nèi)進(jìn)行廣播的方式向第一終端虛擬機(jī)發(fā)送數(shù)據(jù)包,此時(shí)發(fā)送的數(shù)據(jù)包為廣播包。
[0036]第二終端向本局域網(wǎng)內(nèi)的第一終端虛擬機(jī)發(fā)送數(shù)據(jù)包,其源地址IPb,目的地址為IPva;而第一終端虛擬機(jī)實(shí)際對(duì)應(yīng)的是第一終端,相應(yīng)地,需要對(duì)其進(jìn)行地址轉(zhuǎn)換。
[0037]進(jìn)一步地,該方法還包括:第二終端從TCP連接接收數(shù)據(jù)包,對(duì)數(shù)據(jù)包進(jìn)行解析,判斷源地址是否為第一終端虛擬機(jī)的IP地址,如果是,則將數(shù)據(jù)包發(fā)送給第二終端自己。
[0038]參見圖2,為本發(fā)明構(gòu)建局域網(wǎng)進(jìn)行信息傳輸?shù)南到y(tǒng)結(jié)構(gòu)示意圖,該系統(tǒng)包括第一終端和第二終端,第一終端處于第一局域網(wǎng)內(nèi),第二終端處于第一局域網(wǎng)外;其特征在于,第一終端包括第一虛擬單元和第一傳輸處理單元,所述第二終端包括第二虛擬單元;
[0039]所述第一虛擬單元,虛擬出關(guān)于第二終端的虛擬機(jī),表示為第二終端虛擬機(jī);
[0040]所述第二虛擬單元,虛擬出關(guān)于第一終端的虛擬機(jī),表示為第一終端虛擬機(jī);
[0041 ] 將第一終端用A表示,第二終端用B表示,將第二終端虛擬機(jī)用VB表示,將第一終端虛擬機(jī)用VA表示;將第一終端的IP地址用IPa表示,將第二終端的IP地址用IP B表示;將第一終端虛擬機(jī)的IP地址用IPva表示,IPva為與B同在一個(gè)局域網(wǎng)內(nèi)的不存在的虛擬IP地址,將第二終端虛擬機(jī)的IP地址用IPvb表示,IPvb為與A同在一個(gè)局域網(wǎng)內(nèi)的不存在的虛擬IP地址;
[0042]所述第一虛擬單元還保存關(guān)于第二終端虛擬機(jī)的映射關(guān)系,包括1?^與IPva之間的第一映射關(guān)系,以及IPvb與IPb之間的第二映射關(guān)系;
[0043]所述第一傳輸處理單元,與第二終端之間建立傳輸控制協(xié)議TCP連接;所述第一傳輸處理單元向第一局域網(wǎng)內(nèi)的第二終端虛擬機(jī)發(fā)送數(shù)據(jù)包時(shí),在第一映射關(guān)系中查找出與目的地址IPvb對(duì)應(yīng)的地址IPva,將源地址修改為查找出的IPva,在第二映射關(guān)系中查找出與目的地址IPvb對(duì)應(yīng)的地址IP B,將目的地址修改為IPb;對(duì)數(shù)據(jù)包進(jìn)行封裝,得到封裝后的數(shù)據(jù)包;根據(jù)目的地址IPB,將封裝后的數(shù)據(jù)包通過TCP連接發(fā)送給目的地。
[0044]較佳地,所述第一傳輸處理單元,還從TCP連接接收數(shù)據(jù)包,對(duì)數(shù)據(jù)包進(jìn)行解析,判斷源地址是否為第二終端虛擬機(jī)的IP地址IPVB,如果是,則將數(shù)據(jù)包發(fā)送給第一終端自己。
[0045]較佳地,所述第二虛擬單元,還保存關(guān)于第一終端虛擬機(jī)的映射關(guān)系,包括1?^與IPVB2間的第三映射關(guān)系,以及IPv^ IPa之間的第四映射關(guān)系;
[0046]所述第二終端包括第二傳輸處理單元,向本局域網(wǎng)內(nèi)的第一終端虛擬機(jī)發(fā)送數(shù)據(jù)包時(shí),在第三映射關(guān)系中查找出與目的地址IPva對(duì)應(yīng)的地址IP VB,將源地址修改為查找出的IPVB,在第四映射關(guān)系中查找出與目的地址IPva對(duì)應(yīng)的第二終端地址IP A,將目的地址修改為IPa;對(duì)數(shù)據(jù)包進(jìn)行封裝,得到封裝后的數(shù)據(jù)包;根據(jù)目的地址IPa,將封裝后的數(shù)據(jù)包通過TCP連接發(fā)送給目的地。
[0047]較佳地,所述第二傳輸處理單元,從TCP連接接收數(shù)據(jù)包,對(duì)數(shù)據(jù)包進(jìn)行解析,判斷源地址是否為第一終端虛擬機(jī)的IP地址,如果是,則將數(shù)據(jù)包發(fā)送給第二終端自己。
[0048]下面通過圖3所示的網(wǎng)絡(luò)應(yīng)用環(huán)境實(shí)例,對(duì)本發(fā)明構(gòu)建局域網(wǎng)進(jìn)行信息傳輸?shù)姆桨高M(jìn)行實(shí)例說明。
[0049]該實(shí)例中,有A、B兩臺(tái)PC,C為網(wǎng)關(guān)路由器,A處于一個(gè)局域網(wǎng)(LAN,Local AreaNetwork)內(nèi),C為A所在的LAN的網(wǎng)關(guān)路由,使用了網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT,Network AddressTranslat1n)協(xié)議進(jìn)行內(nèi)外網(wǎng)交互,B擁有外網(wǎng)IP。A的內(nèi)網(wǎng)IP為IPA,B的外網(wǎng)IP為IPB,C 上 A所接入端口的 IP 為 IPcft,C 上廣域網(wǎng)(WAN,Wide Area Network) 口 IP 為 IP”。IPvb為與A同在一個(gè)LAN內(nèi)的一個(gè)不存在的虛擬IP地址,與A在同一網(wǎng)段。IPva為與B同在一個(gè)LAN內(nèi)的一個(gè)不存在的虛擬IP地址,與B在同一網(wǎng)段。圖3的網(wǎng)絡(luò)應(yīng)用環(huán)境中,?(;擁有外網(wǎng)IP,PCvb實(shí)際不存在,為PC A上用來代表PC B的虛擬PC,PC VA實(shí)際不存在,為PC B上用來代表PCa的虛擬PC ;交換機(jī)I可選,交換機(jī)2實(shí)際不存在,為PC B上用來表示與PC VA處于同一廣播域。
[0050]PCJPPCb建立TCP連接,同時(shí)在A上虛擬出一個(gè)虛擬PC,表示為PCvb,用以代表B ;B上也虛擬出一個(gè)虛擬PC,表示為PCVA,用以代表A。在終端上虛擬出虛擬機(jī),為已有技術(shù),這里不多贅述。當(dāng)A向該P(yáng)CVB&出數(shù)據(jù)包時(shí),A將數(shù)據(jù)截獲,并做相應(yīng)IP地址的修改,通過TCP連接發(fā)送至B ;當(dāng)B從TCP連接收到數(shù)據(jù)包時(shí),即認(rèn)為數(shù)據(jù)包是從PCVA&來的。當(dāng)B向PCVA&出數(shù)據(jù)包時(shí),B將數(shù)據(jù)包截獲,并做相應(yīng)IP地址的修改,通過TCP連接發(fā)送至A ;當(dāng)A從TCP連接收到數(shù)據(jù)包時(shí),即認(rèn)為數(shù)據(jù)包是從PCv^來的。PC A認(rèn)為自己在與PC VB通信,而PCb認(rèn)為自己在與PCva通信,而實(shí)際通信數(shù)據(jù)在TCP連接內(nèi)傳輸。
[0051]對(duì)于圖3的網(wǎng)絡(luò)應(yīng)用環(huán)境中運(yùn)行以下流程:
[0052]1、A和B建立TCP連接;
[0053]2、A上循環(huán)執(zhí)行一個(gè)過程,該過程為:
[0054](I)若A向IPvb發(fā)送數(shù)據(jù)包,則該過程將該數(shù)據(jù)包的源地址改為IP VA,并將該數(shù)據(jù)包包裝,通過TCP連接發(fā)送給B ;
[0055](2)若A向外發(fā)出廣播包,則該過程將該數(shù)據(jù)包的源地址改為IPVA,并將該數(shù)據(jù)包包裝,通過TCP連接發(fā)送給B ;
[0056](3)若A從TCP連接收到從IPvb發(fā)出的數(shù)據(jù)包(包括廣播包),則將該數(shù)據(jù)包解包,發(fā)送給PCa自己;
[0057]B上循環(huán)執(zhí)行一個(gè)過程,該過程為:
[0058](I)若B向IPva發(fā)送數(shù)據(jù)包,則該過程將該數(shù)據(jù)包的源地址改為IP VB,并將該數(shù)據(jù)包包裝,通過TCP連接發(fā)送給A ;
[0059](2)若B向外發(fā)出廣播包,則該過程將該數(shù)據(jù)包的源地址改為IPVB,并將該數(shù)據(jù)包包裝,通過TCP連接發(fā)送給A ;
[0060](3)若B從TCP連接收到從IPva發(fā)出的數(shù)據(jù)包(包括廣播包),則將該數(shù)據(jù)包解包,發(fā)送給PCB自己。
[0061]采用上述方案,使得PCjP PCb處于同一廣播域,PCa可通過廣播包搜索到PC ^且只涉及網(wǎng)絡(luò)層操作,實(shí)現(xiàn)簡(jiǎn)單,不需要設(shè)備支持(比如無需改進(jìn)路由器、交換機(jī)、服務(wù)器等設(shè)備來給予支持),也不用設(shè)置虛擬網(wǎng)卡(比如有些情形不允許PC上擁有虛擬網(wǎng)卡,例如某些校園網(wǎng)連接的情形)。