欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種建立對等直連通道的方法

文檔序號:7622332閱讀:251來源:國知局
專利名稱:一種建立對等直連通道的方法
技術領域
本發(fā)明涉及計算機網(wǎng)絡中節(jié)點的連接技術,特別是涉及一種建立對等連接(P2P,Peer to Peer)通道的方法。
背景技術
在網(wǎng)絡中,兩個節(jié)點之間的連接方式一般有兩種一種是客戶端/服務器方式的連接,客戶端申請服務,服務器提供服務,通常這種連接方式是一對多的關系,如圖1所示,一個服務器可以接收來自多個客戶端的申請,并向多個客戶端提供服務,兩者之間的關系是非對等的關系;另一種是P2P方式,如圖2所示,P2P方式的連接是指在計算機網(wǎng)絡中的每兩個節(jié)點直接連接,即每兩個節(jié)點之間是對等連接的關系。
在客戶端/服務器的方式下,由于服務器需要向多個客戶端提供服務,所以,通常需要使用高性能的機器,成本一般比較大。P2P方式的通訊雙方是對等的關系,兩者互相為對方提供服務,所以,P2P方式的突出優(yōu)勢在于可以將眾多性能不高的PC連接起來,以實現(xiàn)資源共享和通訊,這種連接方式大大降低了成本,逐漸成為網(wǎng)絡發(fā)展的新方向。目前主要的應用有文件交換、分布式計算、協(xié)同工作、分布式搜索和電子商務等。
雖然P2P方式有如上所述的優(yōu)勢,但是其發(fā)展受到一定限制,這是因為,為了防范網(wǎng)絡病毒的攻擊,越來越多的計算機都位于網(wǎng)絡地址轉(zhuǎn)換器(Network Address Translator,NAT)的保護之內(nèi)。NAT是在內(nèi)部網(wǎng)絡和公共網(wǎng)絡之間起檢查和轉(zhuǎn)發(fā)作用的設備,通常集成在路由器上,NAT可能會修改內(nèi)網(wǎng)中主機的IP地址和端口信息,所以它限制了網(wǎng)絡上任意兩臺計算機之間的直接通訊,只有符合一定規(guī)則的通訊才被允許,所以,如何突破NAT的限制是實現(xiàn)P2P的重要內(nèi)容。
NAT大致分為三種類型基本NAT(Basic NAT)、非對稱NAT(ConeNAT)和對稱NAT(Symmetric NAT)。
Basic NAT建立(私有IP地址,私有端口)和(公網(wǎng)IP地址,公網(wǎng)端口)之間的綁定關系,Basic NAT為綁定的端口執(zhí)行地址翻譯。
Cone NAT建立(私有IP地址,私有端口)和(公網(wǎng)IP地址,公網(wǎng)端口)之間的綁定關系,然后,對于來自同一私有IP和端口號的應用連接,將重復使用這個綁定的端口,只要有一個連接會話,這個綁定端口就會保持激活狀態(tài)。
Cone NAT又分為幾種子類型全部非對稱NAT(Full Cone NAT)、受限非對稱NAT(Restricted Cone NAT)和端口受限非對稱NAT(Port-Restricted Cone NAT)。Full Cone NAT在給一個新的外部會話建立了一個公網(wǎng)/私有的端口綁定后,就可以通過這個公共端口從公網(wǎng)上的任何外部端點接收數(shù)據(jù)通訊了。Restricted Cone NAT在內(nèi)部主機發(fā)送了一個或多個數(shù)據(jù)包給一個外部主機的IP地址后,才會接收這個外部IP地址的數(shù)據(jù)包。Port-Restricted Cone NAT在內(nèi)部主機發(fā)送了一個或多個數(shù)據(jù)包給一個外部主機的IP地址和端口號后,才會接收這個外部IP地址和端口號的數(shù)據(jù)包。可見,Restricted Cone NAT和Port-Restricted Cone NAT可有效保護內(nèi)部主機不接收未被請求的數(shù)據(jù)包。
Symmetric NAT在所有會話期間不會保持(私有IP,私有端口號)和(公網(wǎng)IP,公網(wǎng)端口號)的綁定關系不變,相反,它會為每個新會話重新分配一個新的公網(wǎng)端口或公網(wǎng)IP地址。
由于當前NAT的種類繁多,并且不同種類的NAT各有其自身規(guī)定的通訊方式,所以,在位于不同種類NAT中的兩個節(jié)點之間建立P2P通道的時候,首先需要獲得雙方節(jié)點的NAT的類型,然后根據(jù)NAT的類型采用不同的通訊方式建立P2P通道。
下面介紹現(xiàn)有技術建立P2P通道的方法。
首先,當網(wǎng)絡中某主機A需要與主機B建立P2P通道時,通常需要一臺具有雙IP的外部服務器確定自身所在網(wǎng)絡的NAT類型,然后將NAT類型提交給服務器,同樣,服務器也保存有主機B提交的NAT類型。主機A從服務器獲取主機B所在網(wǎng)絡的NAT類型,如果主機B位于公網(wǎng),或其所在網(wǎng)絡的NAT類型為Full Cone NAT,則主機A采用主動方式,如圖3所示,主機A直接發(fā)送數(shù)據(jù)包至主機B,主機B返回應答數(shù)據(jù)包至主機A,從而建立P2P連接;否則,主機A采用被動方式,如圖4所示,主機A通過服務器通知主機B先發(fā)送數(shù)據(jù)包給主機A,主機A返回應答數(shù)據(jù)包至主機B,從而建立P2P連接。
對于上述采取被動方式的情況,如果主機A位于公網(wǎng),或其所在網(wǎng)絡的NAT類型為Full Cone NAT,P2P連接可以成功建立。但是,如果主機A所在網(wǎng)絡的NAT類型為Restricted Cone NAT、Port-Restricted Cone NAT和Symmetric NAT,由于這些類型的NAT將拒絕不請自來的數(shù)據(jù)包,甚至會將某IP地址和端口號在一段時間之內(nèi)發(fā)來的數(shù)據(jù)包認作攻擊包而全部丟棄,造成P2P連接的建立失敗。由此可見,現(xiàn)有技術建立P2P通道的成功率低。

發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種建立P2P通道的方法,提高P2P通道建立的成功率。
本發(fā)明的目的是通過如下技術方案實現(xiàn)的一種建立對等直連通道的方法,包括A、服務器在接收到第一主機發(fā)來的同步請求后,同時向第一和第二主機發(fā)送至少包含對方地址信息的同步數(shù)據(jù)包;B、第一和第二主機在接收到同步數(shù)據(jù)包后,立即向?qū)Ψ桨l(fā)送用戶數(shù)據(jù)報協(xié)議UDP數(shù)據(jù)包。
其中,步驟A之前進一步包括第一主機和第二主機登錄服務器,服務器記錄第一和第二主機的網(wǎng)絡標識和地址信息。
其中,步驟A所述第一主機發(fā)來的同步請求至少包括第二主機的網(wǎng)絡標識和地址信息。
其中,在步驟B中,第二主機在接收到同步數(shù)據(jù)包后,判斷是否建立與第一主機的對等直連通道,如果是,則立即向第一主機發(fā)送UDP數(shù)據(jù)包;否則,退出本流程。
其中,步驟B之后進一步包括第一和第二主機在接收到對方發(fā)來的UDP數(shù)據(jù)包后,向?qū)Ψ椒祷貞饠?shù)據(jù)包。
其中,所述地址信息包含公網(wǎng)網(wǎng)際協(xié)議IP地址和端口號、私網(wǎng)IP地址和端口號。
從上述技術方案可以看出,在本發(fā)明的方法中,兩個主機同時向?qū)Ψ桨l(fā)送UDP數(shù)據(jù)包,那么在接收到對方發(fā)來的數(shù)據(jù)包時,由于已經(jīng)向?qū)Ψ桨l(fā)送了數(shù)據(jù)包,NAT將接收到的數(shù)據(jù)包認作有效的數(shù)據(jù)包,則兩個主機之間能夠成功建立P2P通道。解決了現(xiàn)有技術中雙方主機所在網(wǎng)絡的NAT均為Restricted Cone NAT或Port-Restricted Cone NAT的情況下,由于這兩種NAT拒絕不請自來的數(shù)據(jù)包所造成的無法成功建立P2P通道的問題。而且,在其中一方主機所在網(wǎng)絡的NAT為變端口的Symmetric NAT,另一方主機所在網(wǎng)絡的NAT為Restricted Cone NAT的情況下也可成功建立P2P連接。從而大大提高了P2P連接建立的成功率。


圖1是網(wǎng)絡中的主機以客戶端/服務器方式連接的示意圖;圖2是網(wǎng)絡中的主機以P2P方式連接的示意圖;圖3是現(xiàn)有技術的采用主動方式建立P2P通道的示意圖;圖4是現(xiàn)有技術的采用被動方式建立P2P通道的示意圖;圖5是本發(fā)明的采用同步方式建立P2P通道的示意圖;圖6是本發(fā)明的采用同步方式建立P2P通道的流程圖。
具體實施例方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供了一種采用同步方式建立P2P通道的方法,如圖5所示,當主機A希望建立與主機B之間的P2P連接時,首先向服務器發(fā)送同步請求數(shù)據(jù)包,服務器在接收到到同步請求數(shù)據(jù)包后,同時向主機A和主機B發(fā)送包含雙方網(wǎng)絡信息的同步數(shù)據(jù)包,在主機A和主機B分別接收到同步數(shù)據(jù)包后,立即向?qū)Ψ桨l(fā)送用戶數(shù)據(jù)報協(xié)議(UDP)數(shù)據(jù)包,并在接收到對方發(fā)來的UDP數(shù)據(jù)包后,分別向?qū)Ψ椒祷豒DP應答數(shù)據(jù)包。
圖6是本發(fā)明的采用同步方式建立P2P通道的流程圖。從圖6可見,該流程具體包括如下步驟步驟601主機A和主機B分別登錄服務器,服務器記錄主機A和主機B的公網(wǎng)IP地址和公網(wǎng)端口號、私網(wǎng)IP地址和私網(wǎng)端口號、網(wǎng)絡標識;步驟602當主機A希望建立其與主機B之間的P2P連接時,向服務器發(fā)送同步請求數(shù)據(jù)包,該同步數(shù)據(jù)包至少包含主機A的私網(wǎng)IP地址和端口號、主機A的公網(wǎng)IP地址和端口號、主機B的網(wǎng)絡標識;步驟603服務器接收到主機A發(fā)來的同步請求數(shù)據(jù)包后,同時向主機A和主機B發(fā)送同步數(shù)據(jù)包,發(fā)給主機A的同步數(shù)據(jù)包至少包含主機B的公網(wǎng)IP地址和端口號、主機B的私網(wǎng)IP地址和端口號,發(fā)給主機B的同步數(shù)據(jù)包至少包含主機A的公網(wǎng)IP地址和端口號、主機A的私網(wǎng)IP地址和端口號,然后分別執(zhí)行步驟604和606;步驟604主機A在接收到服務器發(fā)來的同步數(shù)據(jù)包后,根據(jù)主機B的公網(wǎng)及私網(wǎng)的IP地址和端口號立即向主機B發(fā)送UDP數(shù)據(jù)包;步驟605主機A在接收到主機B發(fā)來的UDP數(shù)據(jù)包后,由于主機A已經(jīng)發(fā)送了一個UDP數(shù)據(jù)包至主機B,因此主機B所在網(wǎng)絡的NAT接受該數(shù)據(jù)包,主機A向主機B返回一個應答數(shù)據(jù)包,然后退出本流程;步驟606主機B在接收到服務器發(fā)來的同步數(shù)據(jù)包后,判斷是否與主機A建立P2P連接,如果是,則執(zhí)行步驟607,否則結(jié)束,P2P通道建立失??;步驟607主機B根據(jù)主機A的公網(wǎng)及私網(wǎng)的IP地址和端口號立即向主機A發(fā)送UDP數(shù)據(jù)包;步驟608主機B在接收到主機A發(fā)來的UDP數(shù)據(jù)包后,由于其已經(jīng)發(fā)送了一個UDP數(shù)據(jù)包至主機A,因此主機A所在網(wǎng)絡的NAT也接受該數(shù)據(jù)包,主機B向主機A返回一個應答數(shù)據(jù)包。
從而,完成了主機A和主機B之間的P2P通道的建立過程。
下面對于上述技術方案的效果進行分析。
對于主機A和主機B位于公網(wǎng)或Full Cone NAT的情況,本發(fā)明的采用同步方式建立P2P通道的方法可以成功建立P2P通道。
對于主機A位于Restricted Cone NAT、Port-Restricted Cone NAT或Symmetric NAT、主機B位于公網(wǎng)或Full Cone NAT的情況,只要在步驟608之前已經(jīng)執(zhí)行了步驟604,即主機A在接收到主機B發(fā)來的UDP數(shù)據(jù)包之前已經(jīng)向主機B發(fā)送了UDP數(shù)據(jù)包,即可保證P2P通道能夠成功建立。
對于主機A位于公網(wǎng)或Full Cone NAT、主機B位于Restricted ConeNAT、Port-Restricted Cone NAT或Symmetric NAT的情況,只要在步驟605之前已經(jīng)執(zhí)行了步驟607,即主機B在接收到主機A發(fā)來的UDP數(shù)據(jù)包之前已經(jīng)向主機A發(fā)送了UDP數(shù)據(jù)包,即可保證P2P通道能夠成功建立。
對于主機A位于Restricted Cone NAT或Port-Restricted Cone NAT、主機B位于Restricted Cone NAT或Port-Restricted Cone NAT的情況,只要在步驟605之前已經(jīng)執(zhí)行了步驟607,或者在步驟608之前已經(jīng)執(zhí)行了步驟604,即可保證P2P通道能夠成功建立。
對于主機A和主機B中任一方位于Symmetric NAT的情況,采用本發(fā)明的方法理論上無法成功建立連接,但是以下兩種情況除外
其一,如果一方位于變端口的Symmetric NAT、另一方位于RestrictedNAT,由于Symmetric NAT不改變發(fā)出數(shù)據(jù)包的源公網(wǎng)IP地址,因此對方的Restricted NAT可接受該數(shù)據(jù)包,從而雙方可以建立P2P連接;其二,有的操作系統(tǒng)對于檢測出的Symmetric NAT,可默認按Port-Restricted Cone NAT的方式來映射IP地址和端口號,例如Linux,這時雙方可以建立P2P連接。
從以上分析可以看出,采用本發(fā)明的同步方式建立P2P連接至少可以解決現(xiàn)有技術中無法建立雙方主機位于Restricted Cone NAT或Port-RestrictedCone NAT下時無法建立P2P通道的問題,只要確保雙方主機在接收到對方的數(shù)據(jù)包時已經(jīng)向?qū)Ψ桨l(fā)送過數(shù)據(jù)包即可,如圖5所示,只要確保服務器發(fā)送同步數(shù)據(jù)包至主機A的時間加上主機A發(fā)送UDP數(shù)據(jù)包到主機B的時間大于服務器發(fā)送同步數(shù)據(jù)包至主機B的時間,在現(xiàn)實情況下,這個條件很容易滿足,因此本發(fā)明能夠在較多情況下成功建立P2P連接,從而提高了P2P連接建立的成功率。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種建立對等直連通道的方法,其特征在于,包括A、服務器在接收到第一主機發(fā)來的同步請求后,同時向第一和第二主機發(fā)送至少包含對方地址信息的同步數(shù)據(jù)包;B、第一和第二主機在接收到同步數(shù)據(jù)包后,根據(jù)接收到的對方地址信息,立即向?qū)Ψ桨l(fā)送用戶數(shù)據(jù)報協(xié)議UDP數(shù)據(jù)包。
2.根據(jù)權利要求1所述的方法,其特征在于,步驟A之前進一步包括第一主機和第二主機登錄服務器,服務器分別記錄第一和第二主機的網(wǎng)絡標識和地址信息。
3.根據(jù)權利要求1所述的方法,其特征在于,步驟A所述第一主機發(fā)來的同步請求至少包括第二主機的網(wǎng)絡標識和地址信息。
4.根據(jù)權利要求1所述的方法,其特征在于,在步驟B中,第二主機在接收到同步數(shù)據(jù)包后,判斷是否建立與第一主機的對等直連通道,如果是,則立即向第一主機發(fā)送UDP數(shù)據(jù)包;否則,退出本流程。
5.根據(jù)權利要求1所述的方法,其特征在于,步驟B之后進一步包括第一和第二主機在接收到對方發(fā)來的UDP數(shù)據(jù)包后,向?qū)Ψ椒祷貞饠?shù)據(jù)包。
6.根據(jù)權利要求1至5中任一項所述的方法,其特征在于,所述地址信息包含公網(wǎng)網(wǎng)際協(xié)議IP地址和端口號、私網(wǎng)IP地址和端口號。
全文摘要
本發(fā)明公開了一種建立對等直連通道的方法,該方法是服務器在接收到第一主機發(fā)來的同步請求后,同時向第一和第二主機發(fā)送至少包含對方地址信息的同步數(shù)據(jù)包;第一和第二主機在接收到同步數(shù)據(jù)包后,立即向?qū)Ψ桨l(fā)送用戶數(shù)據(jù)報協(xié)議UDP數(shù)據(jù)包。使用了本發(fā)明的方法,第一和第二主機在接收到對方發(fā)來的數(shù)據(jù)包時,由于已經(jīng)向?qū)Ψ桨l(fā)送了數(shù)據(jù)包,所以,除了至少一方所在網(wǎng)絡類型為Symmetric NAT的情況,均可成功建立雙方的對等直連通道。因此,本發(fā)明能夠提高對等直連通道建立的成功率。
文檔編號H04L12/28GK1917512SQ200510092810
公開日2007年2月21日 申請日期2005年8月18日 優(yōu)先權日2005年8月18日
發(fā)明者朱冶, 張寶和, 吳波, 伍海君 申請人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
石景山区| 大足县| 榆社县| 宜黄县| 田林县| 礼泉县| 丹棱县| 霞浦县| 改则县| 北川| 潞西市| 涿州市| 北辰区| 汉沽区| 景泰县| 大田县| 广水市| 广平县| 库车县| 新泰市| 新竹市| 临沭县| 禹州市| 石嘴山市| 呼伦贝尔市| 肃宁县| 高平市| 河北区| 吉木萨尔县| 泰来县| 射洪县| 布尔津县| 龙南县| 兴城市| 麦盖提县| 会东县| 洛南县| 海丰县| 潮州市| 望江县| 杨浦区|