節(jié)點(diǎn)信息發(fā)送方法、終端及網(wǎng)絡(luò)系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種節(jié)點(diǎn)信息發(fā)送方法、終端及網(wǎng)絡(luò)系統(tǒng),屬于計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域。所述方法包括:從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息,所述有效節(jié)點(diǎn)信息包括IP地址和端口;將所述第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端,以便所述第二終端根據(jù)所述第一終端的有效節(jié)點(diǎn)信息與所述第一終端進(jìn)行通信。本發(fā)明通過(guò)由同時(shí)可以與第一、第二終端通信的當(dāng)前終端提取并保存第一終端的有效節(jié)點(diǎn)信息,然后將第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端;解決了第二終端可能會(huì)無(wú)法獲知第一終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第二終端獲知第一終端的有效節(jié)點(diǎn)信息的效果。
【專利說(shuō)明】節(jié)點(diǎn)信息發(fā)送方法、終端及網(wǎng)絡(luò)系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域,特別涉及一種節(jié)點(diǎn)信息發(fā)送方法、終端及網(wǎng)絡(luò)系統(tǒng)?!颈尘凹夹g(shù)】
[0002]諸如飛信、飛聊之類的即時(shí)通信程序已經(jīng)成為了人們使用最為廣泛的應(yīng)用程序之一。網(wǎng)絡(luò)互通能力直接決定了即時(shí)通信程序的易用性,特別是文件傳輸和音視頻播放等功能的良好運(yùn)行更是依賴于網(wǎng)絡(luò)互通能力。
[0003]兩個(gè)終端建立通信時(shí),主叫終端需要獲知被叫終端的節(jié)點(diǎn)信息,節(jié)點(diǎn)信息通常包括IP地址和端口。但是由于NAT (Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù)的廣泛使用,終端自身的IP地址并不一定是與其它終端通信時(shí)的真實(shí)IP地址,所以導(dǎo)致主叫終端并不能夠總是獲知被叫終端的真實(shí)有效的節(jié)點(diǎn)信息。簡(jiǎn)易來(lái)講,以圖1所示的局域網(wǎng)為例,終端A通過(guò)路由器C接入公網(wǎng),比如,終端A的IP地址為:10.10.40.170,路由器C的公網(wǎng)IP地址為:220.181.125.XXX。終端B則依次通過(guò)路由器D和路由器C接入公網(wǎng),比如,終端B的IP地址為:192.168.1.128,路由器D在局域網(wǎng)中的IP地址為:10.10.40.70。那么僅在此局域網(wǎng)內(nèi)通信時(shí),終端A的IP地址就是在該局域網(wǎng)中與其它終端通信時(shí)所采用的真實(shí)IP地址,終端B在獲知終端A的IP地址時(shí),可以作為主叫終端直接呼叫終端A來(lái)實(shí)現(xiàn)通信。但是終端B的IP地址并非是在該局域網(wǎng)中與其它終端通信時(shí)所采用的真實(shí)IP地址,即便終端A獲知終端B的IP地址也無(wú)法作為主叫終端直接呼叫終端B來(lái)實(shí)現(xiàn)通信。只有終端A犾知終端B在路由器D上的映射IP地址和端口之后,終端A才可以在該局域網(wǎng)內(nèi)作為主叫終端呼叫終端B來(lái)實(shí)現(xiàn)通信。
[0004]在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題:終端A無(wú)法獲知終端B在路由器D上的映射IP地址和端口,即便終端A利用STUN (Simple TraversalofUDP overNATs, NAT 的 UDP 簡(jiǎn)單穿越)服務(wù)器或者 TURN (Traversal Using Relay NAT,通過(guò)Relay方式穿越NAT)服務(wù)器實(shí)現(xiàn)了與終端B的通信,也都需要經(jīng)過(guò)公網(wǎng)來(lái)中轉(zhuǎn)通信,其實(shí)現(xiàn)的網(wǎng)絡(luò)互通能力也無(wú)法與局域網(wǎng)內(nèi)兩個(gè)終端直接互通所具有的最理想的網(wǎng)絡(luò)互通能力相比。
【發(fā)明內(nèi)容】
[0005]為了解決一個(gè)終端可能會(huì)無(wú)法獲知另一個(gè)終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題,本發(fā)明實(shí)施例提供了一種節(jié)點(diǎn)信息發(fā)送方法、終端及網(wǎng)絡(luò)系統(tǒng)。所述技術(shù)方案如下:
[0006]根據(jù)本發(fā)明的一個(gè)方面,提供了一種節(jié)點(diǎn)信息發(fā)送方法,所述方法包括:
[0007]從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息,所述有效節(jié)點(diǎn)信息包括IP地址和端口 ;
[0008]將所述第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端,以便所述第二終端根據(jù)所述第一終端的有效節(jié)點(diǎn)信息與所述第一終端進(jìn)行通信。
[0009]優(yōu)選地,所述方法,還包括:[0010]將已經(jīng)通信過(guò)的第二終端的有效節(jié)點(diǎn)信息發(fā)送給所述第一終端,以便所述第一終端根據(jù)所述第二終端的有效節(jié)點(diǎn)信息與所述第二終端進(jìn)行通信;
[0011]其中,所述第二終端的有效節(jié)點(diǎn)信息是從與所述第二終端通信的數(shù)據(jù)包中提取并保存的。
[0012]優(yōu)選地,所述從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息之前,還包括:
[0013]檢測(cè)是否為第一次與所述第一終端進(jìn)行通信;
[0014]若檢測(cè)結(jié)果是第一次與所述第一終端進(jìn)行通信,則執(zhí)行所述從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息的步驟。
[0015]優(yōu)選地,所述從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息,包括:
[0016]從與所述第一終端通信過(guò)程中,所述第一終端發(fā)送的數(shù)據(jù)包中提取源IP地址、端口和所述第一終端的標(biāo)識(shí)中的全部三項(xiàng)或者前兩項(xiàng)作為所述第一終端的有效節(jié)點(diǎn)信息;或者,
[0017]從與所述第一終端通信過(guò)程中,發(fā)向所述第一終端的數(shù)據(jù)包中提取目的IP地址、端口和所述第一終端的標(biāo)識(shí)中的全部三項(xiàng)或者前兩項(xiàng)作為所述第一終端的有效節(jié)點(diǎn)信息。
[0018]優(yōu)選地,所述第一終端的標(biāo)識(shí)包括用戶名、設(shè)備名或者介質(zhì)訪問(wèn)控制層MAC地址中的任意一種。
[0019]根據(jù)本發(fā)明的另一方面,提供了一種用于節(jié)點(diǎn)信息發(fā)送的終端,所述終端包括:
[0020]信息提取模塊,用于從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息,所述有效節(jié)點(diǎn)信息包括IP地址和端口 ;
[0021]信息發(fā)送模塊,用于將所述信息提取模塊提取的所述第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端,以便所述第二終端根據(jù)所述第一終端的有效節(jié)點(diǎn)信息與所述第一終端進(jìn)行通信。
[0022]優(yōu)選地,所述信息發(fā)送模塊,還用于將已經(jīng)通信過(guò)的第二終端的有效節(jié)點(diǎn)信息發(fā)送給所述第一終端,以便所述第一終端根據(jù)所述第二終端的有效節(jié)點(diǎn)信息與所述第二終端進(jìn)行通信;
[0023]其中,所述第二終端的有效節(jié)點(diǎn)信息是從與所述第二終端通信的數(shù)據(jù)包中提取的。
[0024]優(yōu)選地,通信檢測(cè)模塊;
[0025]所述通信檢測(cè)模塊,用于檢測(cè)是否為第一次與所述第一終端進(jìn)行通信;
[0026]所述信息提取模塊,用于若所述通信檢測(cè)模塊的檢測(cè)結(jié)果是第一次與所述第一終端進(jìn)行通信,則執(zhí)行所述從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)息的步驟。
[0027]優(yōu)選地,所述信息提取模塊,具體用于從與所述第一終端通信過(guò)程中,所述第一終端發(fā)送的數(shù)據(jù)包中提取源IP地址、端口和所述第一終端的標(biāo)識(shí)中的全部三項(xiàng)或者前兩項(xiàng)作為所述第一終端的有效節(jié)點(diǎn)信息;或者,
[0028]所述信息提取模塊,具體用于從與所述第一終端通信過(guò)程中,發(fā)向所述第一終端的數(shù)據(jù)包中提取目的IP地址、端口和所述第一終端的標(biāo)識(shí)中的全部三項(xiàng)或者前兩項(xiàng)作為所述第一終端的有效節(jié)點(diǎn)信息。
[0029]根據(jù)本發(fā)明的再一方面,提供了一種用于節(jié)點(diǎn)信息發(fā)送的網(wǎng)絡(luò)系統(tǒng),包括第一終端、第二終端和如上另一方面或者另一方面的各種優(yōu)選方案中所述的用于節(jié)點(diǎn)信息發(fā)送的終端。
[0030]本發(fā)明實(shí)施例提供的技術(shù)方案帶來(lái)的有益效果是:
[0031]通過(guò)由同時(shí)可以與第一終端和第二終端通信的當(dāng)前終端提取并保存第一終端的有效節(jié)點(diǎn)信息,然后將第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端;解決了第二終端可能會(huì)無(wú)法獲知第一終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第二終端獲知第一終端的有效節(jié)點(diǎn)信息的效果。
【專利附圖】
【附圖說(shuō)明】
[0032]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0033]圖1是一種局域網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)圖;
[0034]圖2是本發(fā)明一個(gè)實(shí)施例提供的節(jié)點(diǎn)信息發(fā)送方法的方法流程圖;
[0035]圖3是本發(fā)明另一實(shí)施例所涉及的實(shí)施環(huán)境的結(jié)構(gòu)示意圖;
[0036]圖4是本發(fā)明另一實(shí)施例提供的節(jié)點(diǎn)信息發(fā)送方法的方法流程圖;
[0037]圖5是本發(fā)明再一實(shí)施例所涉及的實(shí)施環(huán)境的結(jié)構(gòu)示意圖;
[0038]圖6是本發(fā)明再一實(shí)施例提供的節(jié)點(diǎn)信息發(fā)送方法的方法流程圖;
[0039]圖7是本發(fā)明一個(gè)實(shí)施例提供的終端的結(jié)構(gòu)方框圖;
[0040]圖8是本發(fā)明另一實(shí)施例提供的終端的結(jié)構(gòu)方框圖;
[0041]圖9是本發(fā)明一個(gè)實(shí)施例提供的網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu)方框圖。
【具體實(shí)施方式】
[0042]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0043]請(qǐng)參考圖2,其示出了本發(fā)明一個(gè)實(shí)施例所提供的節(jié)點(diǎn)信息發(fā)送方法的方法流程圖。本實(shí)施例主要以該節(jié)點(diǎn)信息發(fā)送方法用于作為一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的第三終端來(lái)舉例說(shuō)明。該節(jié)點(diǎn)信息發(fā)送方法,包括:
[0044]步驟202,從與第一終端通信的數(shù)據(jù)包中提取并保存第一終端的有效節(jié)點(diǎn)信息,有效節(jié)點(diǎn)信息包括IP地址和端口 ;
[0045]步驟204,將第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端,以便第二終端根據(jù)第一終端的有效節(jié)點(diǎn)信息與第一終端進(jìn)行通信。
[0046]綜上所述,本實(shí)施例提供的節(jié)點(diǎn)信息發(fā)送方法,通過(guò)由同時(shí)可以與第一終端和第二終端通信的當(dāng)前終端提取并保存第一終端的有效節(jié)點(diǎn)信息,然后將第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端;解決了第二終端可能會(huì)無(wú)法獲知第一終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第二終端獲知第一終端的有效節(jié)點(diǎn)信息的效果。
[0047]請(qǐng)參考圖3,其示出了本發(fā)明另一實(shí)施例所涉及的實(shí)施環(huán)境的網(wǎng)絡(luò)結(jié)構(gòu)圖。該實(shí)施環(huán)境為一個(gè)局域網(wǎng)。該局域網(wǎng)中包括終端A、終端B、終端C、終端D、路由器E、路由器F、路由器G和路由器H。
[0048]終端A通過(guò)路由器E接入公網(wǎng),比如,終端A的IP地址為:10.10.40.170,路由器E 的公網(wǎng) IP 地址為:220.181.125.xxx。
[0049]終端B依次通過(guò)路由器F和路由器E接入公網(wǎng),比如,終端B的IP地址為:192.168.1.128,路由器F在局域網(wǎng)中的IP地址為:10.10.40.70。
[0050]終端C依次通過(guò)路由器G和路由器E接入公網(wǎng),比如,終端C的IP地址為:192.168.0.12,路由器G在局域網(wǎng)中的IP地址為:10.10.40.71。
[0051]終端D依次通過(guò)路由器H和路由器E接入公網(wǎng),如,終端D的IP地址為:192.168.1.5,路由器H在局域網(wǎng)中的IP地址為:10.10.40.72。
[0052]初始狀態(tài)下,僅在局域網(wǎng)通信時(shí),終端B、終端C和終端D都可以直接作為主叫終端呼叫終端A。但是,終端B不可以直接作為主叫終端呼叫終端C和終端D ;終端A不可以直接作為王叫終纟而呼叫終纟而13、終纟而C和終纟而D ;終纟而C不可以直接作為王叫終纟而呼叫終立而B(niǎo)和終端D ;終端D不可以直接作為主叫終端呼叫終端B和終端C。
[0053]請(qǐng)參考圖4,其示出了本發(fā)明另一實(shí)施例所提供的節(jié)點(diǎn)信息發(fā)送方法的方法流程圖。本實(shí)施例主要以該節(jié)點(diǎn)信息發(fā)送方法應(yīng)用于圖3所示終端A中來(lái)進(jìn)行舉例說(shuō)明。作為基于圖2所示實(shí)施例提供的更為優(yōu)選地實(shí)施例,該節(jié)點(diǎn)信息發(fā)送方法,包括:
[0054]步驟402,檢測(cè)是否為第一次與第一終端進(jìn)行通信;
[0055]以第一終端為圖3所示終端B來(lái)舉例說(shuō)明。由于終端A無(wú)法直接作為主叫終端呼叫終端B,但是終端B可以作為主叫終端呼叫終端A。所以終端B在需要與終端A進(jìn)行通信時(shí),可以直接向終端A發(fā)起通信。本文中的“呼叫”主要是指單向通信或者雙向通信的發(fā)起,并不代表終端B與終端A之間進(jìn)行了真實(shí)語(yǔ)音電話或者視頻電話之類的呼叫。比如,終端B向終端A發(fā)送一個(gè)UDP (UserDatagram Protocol,用戶數(shù)據(jù)包協(xié)議)數(shù)據(jù)包,或者終端B與終端A建立了 TCP (Transmission Control Protocol,傳輸控制協(xié)議)連接等等,只要是終端B主動(dòng)向終端A發(fā)起了網(wǎng)絡(luò)通信,均視為本文中的“呼叫”。
[0056]此時(shí),終端A可以檢測(cè)自身是否為第一次與終端B進(jìn)行通信。檢測(cè)方法之一是檢測(cè)自身是否已經(jīng)提取過(guò)終端B的有效節(jié)點(diǎn)信息。
[0057]步驟404,若檢測(cè)結(jié)果是第一次與第一終端進(jìn)行通信,則從與第一終端通信的數(shù)據(jù)包中提取并保存第一終端的有效節(jié)點(diǎn)信息,有效節(jié)點(diǎn)信息包括IP地址和端口 ;
[0058]若終端A的檢測(cè)結(jié)果是第一次與終端B進(jìn)行通信,則從與終端B通信的數(shù)據(jù)包中提取并保存終端B的有效節(jié)點(diǎn)信息,有效節(jié)點(diǎn)信息包括IP地址和端口。比如,終端B向終端A發(fā)送了一個(gè)數(shù)據(jù)包,由于經(jīng)過(guò)路由器F的NAT轉(zhuǎn)換,假設(shè)終端B的IP地址和端口:192.168.1.128:6000被轉(zhuǎn)換為了該數(shù)據(jù)包中的源IP地址和端口:10.10.40.70:5000 ;同時(shí),該數(shù)據(jù)包中的目標(biāo)地址和端口是:10.10.40.170:8000o則終端A可以提取該數(shù)據(jù)包中的源IP地址和端口:10.10.40.70:5000作為終端B的有效節(jié)點(diǎn)信息。
[0059]鑒于終端A和終端B之間通信時(shí),可能存在由終端A向終端B發(fā)送的數(shù)據(jù)包,也可能存在由終端B向終端A發(fā)送的數(shù)據(jù)包,所以本步驟可以包括如下兩個(gè)子步驟中的一個(gè)或者兩個(gè):
[0060]第一,從與第一終端通信過(guò)程中,第一終端發(fā)送的數(shù)據(jù)包中提取源IP地址和端口作為第一終端的有效節(jié)點(diǎn)信息;
[0061]比如,終端A從與終端B通信過(guò)程中,終端B發(fā)送的數(shù)據(jù)包中提取源IP地址和端口作為終端B的有效節(jié)點(diǎn)信息。
[0062]第二,從與第一終端通信過(guò)程中,發(fā)向第一終端的數(shù)據(jù)包中提取目的IP地址和端口作為第一終端的有效節(jié)點(diǎn)信息。
[0063]tWn,終端A從與終端B通信過(guò)程中,向終端B發(fā)送的數(shù)據(jù)包中提取目的IP地址和端口作為終端B的有效節(jié)點(diǎn)信息。
[0064]步驟406,將第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端,以便第二終端根據(jù)第一終端的有效節(jié)點(diǎn)信息與第一終端進(jìn)行通信;
[0065]假設(shè)終端A已經(jīng)與終端C和終端D通信過(guò),那么終端A將終端B的有效節(jié)點(diǎn)信息發(fā)送給終端C和終端D。這樣,終端C和終端D需要與終端B通信時(shí),可以直接使用終端B的有效節(jié)點(diǎn)信息與終端B進(jìn)行通信。
[0066]步驟408,將已經(jīng)通信過(guò)的第二終端的有效節(jié)點(diǎn)信息發(fā)送給第一終端,以便第一終端根據(jù)第二終端的有效節(jié)點(diǎn)信息與第二終端進(jìn)行通信;
[0067]終端A還可以將終端C和終端D的有效節(jié)點(diǎn)信息發(fā)送給終端B。這樣,終端B需要與終端C/終端D通信時(shí),可以直接使用終端C/終端D的有效節(jié)點(diǎn)信息與終端C/D進(jìn)行通信。其中,終端C/D的有效節(jié)點(diǎn)信息是終端A從與終端C/D通信的數(shù)據(jù)包中提取并保存的,具體過(guò)程類似于步驟402和步驟404。也就是說(shuō),第二終端的有效節(jié)點(diǎn)信息是從與第二終端通信的數(shù)據(jù)包中提取并保存的。
[0068]需要說(shuō)明的是,步驟406也可以與步驟408同時(shí)進(jìn)行,或者在步驟408之前/之后進(jìn)行。
[0069]綜上所述,本實(shí)施例提供的節(jié)點(diǎn)信息發(fā)送方法,通過(guò)由同時(shí)可以與第一終端和第二終端通信的當(dāng)前終端提取并保存第一終端的有效節(jié)點(diǎn)信息,然后將第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端;解決了第二終端可能會(huì)無(wú)法獲知第一終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第二終端獲知第一終端的有效節(jié)點(diǎn)信息的效果。還通過(guò)將第二終端的有效節(jié)點(diǎn)信息發(fā)送給第一終端;也解決了第一終端可能會(huì)無(wú)法獲知第二終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第一終端獲知第二終端的有效節(jié)點(diǎn)信息的效果。
[0070]需要補(bǔ)充說(shuō)明的是,相較于STUN服務(wù)器或者TURN服務(wù)器提供的NAT穿越技術(shù),由于上述實(shí)施例中,終端B與終端C/D之間可以直接通過(guò)終端A獲取到對(duì)方在局域網(wǎng)內(nèi)的有效節(jié)點(diǎn)信息,進(jìn)而直接在局域網(wǎng)內(nèi)建立通信,可以獲得最理想的網(wǎng)絡(luò)互通能力,而不需要通過(guò)公網(wǎng)中轉(zhuǎn)通訊,只能達(dá)到較差的網(wǎng)絡(luò)互通能力。
[0071]上一實(shí)施例主要以該節(jié)點(diǎn)信息發(fā)送方法應(yīng)用于局域網(wǎng)類的網(wǎng)絡(luò)架構(gòu)來(lái)舉例說(shuō)明。易于思及的是,對(duì)于其它包含有錐形NAT網(wǎng)絡(luò)結(jié)構(gòu)的環(huán)境也適用該節(jié)點(diǎn)信息發(fā)送方法。請(qǐng)繼續(xù)參考如下實(shí)施例:
[0072]請(qǐng)參考圖5,其示出了本發(fā)明再一實(shí)施例所涉及的實(shí)施環(huán)境的網(wǎng)絡(luò)結(jié)構(gòu)圖。該實(shí)施環(huán)境為一個(gè)局域網(wǎng)。該局域網(wǎng)中包括終端A、終端B、終端C、路由器D和路由器E。[0073]終端A直接接入公網(wǎng),比如,終端A的IP地址為:220.181.126.xxx。
[0074]終端B通過(guò)路由器D接入公網(wǎng),比如,終端B的IP地址為:10.10.40.170,路由器D 的公網(wǎng) IP 地址為:221.180.125.xxx。
[0075]終端C通過(guò)路由器E接入公網(wǎng),比如,終端C的IP地址為:192.168.1.111,路由器E 的公網(wǎng) IP 地址為:220.182.255.xxx。
[0076]初始狀態(tài)下,終端B和終端C都可以直接作為主叫終端呼叫終端A。但是,終端A不可以直接作為主叫終端呼叫終端B和終端C。
[0077]請(qǐng)參考圖6,其示出了本發(fā)明再一實(shí)施例提供的節(jié)點(diǎn)信息發(fā)送方法的方法流程圖。本實(shí)施例主要以該節(jié)點(diǎn)信息發(fā)送方法應(yīng)用于圖5所示終端A中來(lái)進(jìn)行舉例說(shuō)明。作為基于圖2所示實(shí)施例提供的更為優(yōu)選地實(shí)施例,該節(jié)點(diǎn)信息發(fā)送方法,包括:
[0078]步驟602,檢測(cè)是否為第一次與第一終端進(jìn)行通信;
[0079]以第一終端為圖5所示終端B來(lái)舉例說(shuō)明。由于終端A無(wú)法直接作為主叫終端呼叫終端B,但是終端B可以作為主叫終端呼叫終端A。所以終端B在需要與終端A進(jìn)行通信時(shí),可以直接向終端A發(fā)起通信。本文中的“呼叫”主要是指單向通信或者雙向通信的發(fā)起,并不代表終端B與終端A之間進(jìn)行了真實(shí)語(yǔ)音電話或者視頻電話之類的呼叫。比如,終端B向終端A發(fā)送一個(gè)UDP (UserDatagram Protocol,用戶數(shù)據(jù)包協(xié)議)數(shù)據(jù)包,或者終端B與終端A建立了 TCP (Transmission Control Protocol,傳輸控制協(xié)議)連接等等,只要是終端B主動(dòng)向終端A發(fā)起了網(wǎng)絡(luò)通信,均視為本文中的“呼叫”。
[0080]此時(shí),終端A可以檢測(cè)自身是否為第一次與終端B進(jìn)行通信。檢測(cè)方法之一是檢測(cè)自身是否已經(jīng)提取過(guò)終端B的有效節(jié)點(diǎn)信息。
[0081]本實(shí)施例中,假設(shè)終端A、終端B和終端C均安裝有同一即時(shí)通信程序,并互相添加為好友。并且將終端A、終端B和終端C各自在該即時(shí)通信程序中的用戶名作為自身的標(biāo)識(shí),假設(shè)終端A的標(biāo)識(shí)為“張三”;終端B的標(biāo)識(shí)為“李四”;終端C的標(biāo)識(shí)為“王五”。
[0082]步驟604,若檢測(cè)結(jié)果是第一次與第一終端進(jìn)行通信,則從與第一終端通信的數(shù)據(jù)包中提取并保存第一終端的有效節(jié)點(diǎn)信息,有效節(jié)點(diǎn)信息包括IP地址、端口和終端的標(biāo)識(shí);
[0083]若終端A的檢測(cè)結(jié)果是第一次與終端B進(jìn)行通信,則從與終端B通信的數(shù)據(jù)包中提取并保存終端B的有效節(jié)點(diǎn)信息,有效節(jié)點(diǎn)信息包括IP地址、端口和終端B的標(biāo)識(shí)。比如,終端B向終端A發(fā)送了 一個(gè)數(shù)據(jù)包,由于經(jīng)過(guò)路由器F的NAT轉(zhuǎn)換,假設(shè)終端B的IP地址和端口:10.10.40.170:6000被轉(zhuǎn)換為了該數(shù)據(jù)包中的源IP地址和端口:221.180.125.xxx:5000 ;同時(shí),該數(shù)據(jù)包中的目標(biāo)地址和端口是:220.181.126.xxx:6000。則終端A可以提取該數(shù)據(jù)包中的源IP地址和端口:221.180.125.xxx:5000,和“李四”,作為終端B的有效節(jié)點(diǎn)信息。
[0084]鑒于終端A和終端B之間通信時(shí),可能存在由終端A向終端B發(fā)送的數(shù)據(jù)包,也可能存在由終端B向終端A發(fā)送的數(shù)據(jù)包,所以本步驟可以包括如下兩個(gè)子步驟中的一個(gè)或者兩個(gè):
[0085]第一,從與第一終端通信過(guò)程中,第一終端發(fā)送的數(shù)據(jù)包中提取源IP地址、端口和第一終端的標(biāo)識(shí)作為第一終端的有效節(jié)點(diǎn)信息;
[0086]比如,終端A從與終端B通信過(guò)程中,終端B發(fā)送的數(shù)據(jù)包中提取源IP地址、端口和終端B的標(biāo)識(shí)作為終端B的有效節(jié)點(diǎn)信息。
[0087]第二,從與第一終端通信過(guò)程中,發(fā)向第一終端的數(shù)據(jù)包中提取目的IP地址、端口和第一終端的標(biāo)識(shí)作為第一終端的有效節(jié)點(diǎn)信息。
[0088]tWn,終端A從與終端B通信過(guò)程中,向終端B發(fā)送的數(shù)據(jù)包中提取目的IP地址、端口和終端B的標(biāo)識(shí)作為終端B的有效節(jié)點(diǎn)信息。
[0089]其中,第一終端的標(biāo)識(shí)包括用戶名、設(shè)備名或者M(jìn)AC (MediaAccess Control,介質(zhì)訪問(wèn)控制層)地址中的任意一種。
[0090]步驟606,將第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端,以便第二終端根據(jù)第一終端的有效節(jié)點(diǎn)信息與第一終端進(jìn)行通信;
[0091]假設(shè)終端A已經(jīng)與終端C通信過(guò),那么終端A將終端B的有效節(jié)點(diǎn)信息發(fā)送給終端C。這樣,終端C需要與終端B通信時(shí),可以直接使用終端B的有效節(jié)點(diǎn)信息與終端B進(jìn)行通信。當(dāng)然,假設(shè)終端A在即時(shí)通信程序中添加有非常多的好友,可以將終端B的有效節(jié)點(diǎn)信息發(fā)送給全部好友。此時(shí),終端B的標(biāo)識(shí)可以使其它終端獲知終端A發(fā)送的有效節(jié)點(diǎn)信息是誰(shuí)的有效節(jié)點(diǎn)信息。
[0092]步驟608,將已經(jīng)通信過(guò)的第二終端的有效節(jié)點(diǎn)信息發(fā)送給第一終端,以便第一終端根據(jù)第二終端的有效節(jié)點(diǎn)信息與第二終端進(jìn)行通信;
[0093]終端A還可以將終端C的有效節(jié)點(diǎn)信息發(fā)送給終端B。這樣,終端B需要與終端C通信時(shí),可以直接使用終端C的有效節(jié)點(diǎn)信息與終端C進(jìn)行通信。其中,終端C的有效節(jié)點(diǎn)信息是終端A從與終端C通信的數(shù)據(jù)包中提取并保存的,具體過(guò)程類似于步驟602和步驟604。也就是說(shuō),第二終端的有效節(jié)點(diǎn)信息是從與第二終端通信的數(shù)據(jù)包中提取并保存的。當(dāng)然,假設(shè)終端A在即時(shí)通信程序中添加有非常多的好友,可以將除終端B之外的已經(jīng)通信過(guò)的全部好友的有效節(jié)點(diǎn)信息發(fā)送給終端B。此時(shí),每個(gè)有效節(jié)點(diǎn)信息中的第二終端的標(biāo)識(shí)可以使終端B獲知終端A發(fā)送的各個(gè)有效節(jié)點(diǎn)信息是誰(shuí)的有效節(jié)點(diǎn)信息。
[0094]需要說(shuō)明的是,步驟606也可以與步驟608同時(shí)進(jìn)行,或者在步驟608之前/之后進(jìn)行。
[0095]綜上所述,本實(shí)施例提供的節(jié)點(diǎn)信息發(fā)送方法,通過(guò)由同時(shí)可以與第一終端和第二終端通信的當(dāng)前終端提取并保存第一終端的有效節(jié)點(diǎn)信息,然后將第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端;解決了第二終端可能會(huì)無(wú)法獲知第一終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第二終端獲知第一終端的有效節(jié)點(diǎn)信息的效果。還通過(guò)將第二終端的有效節(jié)點(diǎn)信息發(fā)送給第一終端;也解決了第一終端可能會(huì)無(wú)法獲知第二終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第一終端獲知第二終端的有效節(jié)點(diǎn)信息的效果。
[0096]請(qǐng)參考圖7,其示出了本發(fā)明一個(gè)實(shí)施例提供的用于節(jié)點(diǎn)信息發(fā)送的終端的結(jié)構(gòu)方框圖。該終端包括:信息提取模塊720和信息發(fā)送模塊740。
[0097]信息提取模塊720,用于從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息,所述有效節(jié)點(diǎn)信息包括IP地址和端口 ;
[0098]信息發(fā)送模塊740,用于將所述信息提取模塊720提取的所述第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端,以便所述第二終端根據(jù)所述第一終端的有效節(jié)點(diǎn)信息與所述第一終端進(jìn)行通信。[0099]綜 上所述,本實(shí)施例提供的用于節(jié)點(diǎn)信息發(fā)送的終端,通過(guò)由同時(shí)可以與第一終端和第二終端通信的當(dāng)前終端提取并保存第一終端的有效節(jié)點(diǎn)信息,然后將第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端;解決了第二終端可能會(huì)無(wú)法獲知第一終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第二終端獲知第一終端的有效節(jié)點(diǎn)信息的效果。
[0100]請(qǐng)參考圖8,其示出了本發(fā)明另一實(shí)施例提供的用于節(jié)點(diǎn)信息發(fā)送的終端的結(jié)構(gòu)方框圖。作為基于圖7所示實(shí)施例提供的更為優(yōu)選地實(shí)施例,該終端包括:通信檢測(cè)模塊710、信息提取模塊720和信息發(fā)送模塊740。
[0101]通信檢測(cè)模塊710,用于檢測(cè)是否為第一次與所述第一終端進(jìn)行通信;
[0102]信息提取模塊720,用于若所述通信檢測(cè)模塊710的檢測(cè)結(jié)果是第一次與所述第一終端進(jìn)行通信,則執(zhí)行所述從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息的步驟。
[0103]信息發(fā)送模塊740,用于將所述信息提取模塊720提取的所述第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端,以便所述第二終端根據(jù)所述第一終端的有效節(jié)點(diǎn)信息與所述第一終端進(jìn)行通信。
[0104]信息發(fā)送模塊740,還用于將已經(jīng)通信過(guò)的第二終端的有效節(jié)點(diǎn)信息發(fā)送給所述第一終端,以便所述第一終端根據(jù)所述第二終端的有效節(jié)點(diǎn)信息與所述第二終端進(jìn)行通?目;
[0105]其中,所述第二終端的有效節(jié)點(diǎn)信息是從與所述第二終端通信的數(shù)據(jù)包中提取的。
[0106]具體來(lái)講,所述信息提取模塊720,具體用于從與所述第一終端通信過(guò)程中,所述第一終端發(fā)送的數(shù)據(jù)包中提取源IP地址、端口和所述第一終端的標(biāo)識(shí)中的全部三項(xiàng)或者前兩項(xiàng)作為所述第一終端的有效節(jié)點(diǎn)信息;或者,
[0107]所述信息提取模塊720,具體用于從與所述第一終端通信過(guò)程中,發(fā)向所述第一終端的數(shù)據(jù)包中提取目的IP地址、端口和所述第一終端的標(biāo)識(shí)中的全部三項(xiàng)或者前兩項(xiàng)作為所述第一終端的有效節(jié)點(diǎn)信息;
[0108]其中,所述第一終端的標(biāo)識(shí)包括用戶名、設(shè)備名或者介質(zhì)訪問(wèn)控制層MAC地址中的任意一種。
[0109]綜上所述,本實(shí)施例提供的用于節(jié)點(diǎn)信息發(fā)送的終端,通過(guò)由同時(shí)可以與第一終端和第二終端通信的當(dāng)前終端提取并保存第一終端的有效節(jié)點(diǎn)信息,然后將第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端;解決了第二終端可能會(huì)無(wú)法獲知第一終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第二終端獲知第一終端的有效節(jié)點(diǎn)信息的效果。還通過(guò)將第二終端的有效節(jié)點(diǎn)信息發(fā)送給第一終端;也解決了第一終端可能會(huì)無(wú)法獲知第二終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第一終端獲知第二終端的有效節(jié)點(diǎn)信息的效果。
[0110]請(qǐng)參考圖9,其示出了本發(fā)明一個(gè)實(shí)施例提供的用于節(jié)點(diǎn)信息發(fā)送的網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu)方框圖。該網(wǎng)絡(luò)系統(tǒng)包括弟一終端920、弟_.終端940和當(dāng)如終端960。
[0111]其中,所述當(dāng)前終端960可以是圖7所示實(shí)施例或者圖8所示實(shí)施例提供的用于節(jié)點(diǎn)信息發(fā)送的終端。[0112]綜上所述,本實(shí)施例提供的用于節(jié)點(diǎn)信息發(fā)送的網(wǎng)絡(luò)系統(tǒng),通過(guò)由同時(shí)可以與第一終端和第二終端通信的當(dāng)前終端提取并保存第一終端的有效節(jié)點(diǎn)信息,然后將第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端;解決了第二終端可能會(huì)無(wú)法獲知第一終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第二終端獲知第一終端的有效節(jié)點(diǎn)信息的效果。還通過(guò)將第二終端的有效節(jié)點(diǎn)信息發(fā)送給第一終端;也解決了第一終端可能會(huì)無(wú)法獲知第二終端的真實(shí)有效的節(jié)點(diǎn)信息的問(wèn)題;達(dá)到了通過(guò)由一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)作為橋梁,從而讓第一終端獲知第二終端的有效節(jié)點(diǎn)信息的效果。
[0113]需要說(shuō)明的是:上述實(shí)施例提供的用于節(jié)點(diǎn)信息發(fā)送的終端在發(fā)送節(jié)點(diǎn)信息時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的用于節(jié)點(diǎn)信息發(fā)送的終端與節(jié)點(diǎn)信息發(fā)送方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過(guò)程詳見(jiàn)方法實(shí)施例,這里不再贅述。
[0114]上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0115]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。
[0116]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種節(jié)點(diǎn)信息發(fā)送方法,其特征在于,所述方法包括: 從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息,所述有效節(jié)點(diǎn)信息包括IP地址和端口 ; 將所述第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端,以便所述第二終端根據(jù)所述第一終端的有效節(jié)點(diǎn)信息與所述第一終端進(jìn)行通信。
2.根據(jù)權(quán)利要求1所述的節(jié)點(diǎn)信息發(fā)送方法,其特征在于,所述方法,還包括: 將已經(jīng)通信過(guò)的第二終端的有效節(jié)點(diǎn)信息發(fā)送給所述第一終端,以便所述第一終端根據(jù)所述第二終端的有效節(jié)點(diǎn)信息與所述第二終端進(jìn)行通信; 其中,所述第二終端的有效節(jié)點(diǎn)信息是從與所述第二終端通信的數(shù)據(jù)包中提取并保存的。
3.根據(jù)權(quán)利要求1或2所述的節(jié)點(diǎn)信息發(fā)送方法,其特征在于,所述從與第一終端通信的數(shù)據(jù)包中提 取并保存所述第一終端的有效節(jié)點(diǎn)信息之前,還包括: 檢測(cè)是否為第一次與所述第一終端進(jìn)行通信; 若檢測(cè)結(jié)果是第一次與所述第一終端進(jìn)行通信,則執(zhí)行所述從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息的步驟。
4.根據(jù)權(quán)利要求1或2所述的節(jié)點(diǎn)信息發(fā)送方法,其特征在于,所述從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息,包括: 從與所述第一終端通信過(guò)程中,所述第一終端發(fā)送的數(shù)據(jù)包中提取源IP地址、端口和所述第一終端的標(biāo)識(shí)中的全部三項(xiàng)或者前兩項(xiàng)作為所述第一終端的有效節(jié)點(diǎn)信息;或者,從與所述第一終端通信過(guò)程中,發(fā)向所述第一終端的數(shù)據(jù)包中提取目的IP地址、端口和所述第一終端的標(biāo)識(shí)中的全部三項(xiàng)或者前兩項(xiàng)作為所述第一終端的有效節(jié)點(diǎn)信息。
5.根據(jù)權(quán)利要求4所述的節(jié)點(diǎn)信息發(fā)送方法,其特征在于,所述第一終端的標(biāo)識(shí)包括用戶名、設(shè)備名或者介質(zhì)訪問(wèn)控制層MAC地址中的任意一種。
6.一種用于節(jié)點(diǎn)信息發(fā)送的終端,其特征在于,所述終端包括: 信息提取模塊,用于從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息,所述有效節(jié)點(diǎn)信息包括IP地址和端口 ; 信息發(fā)送模塊,用于將所述信息提取模塊提取的所述第一終端的有效節(jié)點(diǎn)信息發(fā)送給已經(jīng)通信過(guò)的第二終端,以便所述第二終端根據(jù)所述第一終端的有效節(jié)點(diǎn)信息與所述第一終端進(jìn)行通信。
7.根據(jù)權(quán)利要求6所述的終端,其特征在于: 所述信息發(fā)送模塊,還用于將已經(jīng)通信過(guò)的第二終端的有效節(jié)點(diǎn)信息發(fā)送給所述第一終端,以便所述第一終端根據(jù)所述第二終端的有效節(jié)點(diǎn)信息與所述第二終端進(jìn)行通信;其中,所述第二終端的有效節(jié)點(diǎn)信息是從與所述第二終端通信的數(shù)據(jù)包中提取的。
8.根據(jù)權(quán)利要求6或7所述的終端,其特征在于,所述終端,還包括: 通信檢測(cè)模塊; 所述通信檢測(cè)模塊,用于檢測(cè)是否為第一次與所述第一終端進(jìn)行通信; 所述信息提取模塊,用于若所述通信檢測(cè)模塊的檢測(cè)結(jié)果是第一次與所述第一終端進(jìn)行通信,則執(zhí)行所述從與第一終端通信的數(shù)據(jù)包中提取并保存所述第一終端的有效節(jié)點(diǎn)信息的步驟。
9.根據(jù)權(quán)利要求6或7所述的終端,其特征在于: 所述信息提取模塊,具體用于從與所述第一終端通信過(guò)程中,所述第一終端發(fā)送的數(shù)據(jù)包中提取源IP地址、端口和所述第一終端的標(biāo)識(shí)中的全部三項(xiàng)或者前兩項(xiàng)作為所述第一終端的有效節(jié)點(diǎn)信息;或者, 所述信息提取模塊,具體用于從與所述第一終端通信過(guò)程中,發(fā)向所述第一終端的數(shù)據(jù)包中提取目的IP地址、端口和所述第一終端的標(biāo)識(shí)中的全部三項(xiàng)或者前兩項(xiàng)作為所述第一終端的有效節(jié)點(diǎn)信息。
10.一種用于節(jié)點(diǎn)信息發(fā)送的網(wǎng)絡(luò)系統(tǒng),其特征在于,包括第一終端、第二終端和如權(quán)利要求6至9任一所述的用于節(jié)點(diǎn)信息發(fā)送的終端。
【文檔編號(hào)】H04L12/70GK103916313SQ201210593483
【公開(kāi)日】2014年7月9日 申請(qǐng)日期:2012年12月31日 優(yōu)先權(quán)日:2012年12月31日
【發(fā)明者】劉玎 申請(qǐng)人:北京新媒傳信科技有限公司