1.一種P2P連接建立的方法,應(yīng)用于NAT客戶端,其中,NAT服務(wù)端具有檢測NAT類型的功能,其特征在于,所述客戶端加載了P2P連接算法,所述P2P連接算法為基于本端和對(duì)端客戶端的NAT類型確定兩端間的連接方式,包括:
獲取通過NAT服務(wù)端確定的本端的NAT類型;以及,獲取本端的外網(wǎng)地址信息和所述NAT服務(wù)端分配的轉(zhuǎn)發(fā)地址信息;
將本端NAT類型、外網(wǎng)地址信息以及轉(zhuǎn)發(fā)地址信息發(fā)送至NAT服務(wù)端,以由所述NAT服務(wù)端將本端NAT類型、外網(wǎng)地址信息以及轉(zhuǎn)發(fā)地址信息轉(zhuǎn)發(fā)至對(duì)端客戶端,并接收所述NAT服務(wù)端發(fā)送的對(duì)端客戶端的NAT類型、外網(wǎng)地址信息以及轉(zhuǎn)發(fā)地址信息;
基于本端NAT類型和對(duì)端客戶端的NAT類型,通過P2P連接算法確定本端與對(duì)端間的連接方式,并基于所述連接方式與對(duì)端建立P2P連接。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述NAT類型包括對(duì)稱型和非對(duì)稱型;
所述P2P連接算法包括:
當(dāng)本端和對(duì)端客戶端的NAT類型均為非對(duì)稱型時(shí),將對(duì)端客戶端的外網(wǎng)地址信息作為目的地址信息,建立本端與對(duì)端間的連接;
當(dāng)本端和對(duì)端客戶端的NAT類型中任一端的NAT類型為對(duì)稱型時(shí),將所述NAT服務(wù)端作為中繼服務(wù)端,基于本端客戶端和對(duì)端客戶端的轉(zhuǎn)發(fā)地址信息,由所述NAT服務(wù)端實(shí)現(xiàn)本端與對(duì)端客戶端間的間接連接。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述NAT服務(wù)端配置NAT類型檢測服務(wù)器;其中,所述NAT類型檢測服務(wù)器加載了NAT類型檢測程序;
所述通過NAT服務(wù)端確定本端的NAT類型,包括:
向所述NAT服務(wù)端發(fā)送NAT類型檢測請(qǐng)求,以使所述NAT服務(wù)端接收到所述NAT類型檢測請(qǐng)求后,基于所述NAT類型檢測程序檢測本端的NAT類型,并將檢測結(jié)果返回至客戶端;
接收所述NAT服務(wù)端發(fā)送的檢測結(jié)果,并保存所述檢測結(jié)果。
4.根據(jù)權(quán)利要求1所述的方式,其特征在于,所述方法還包括:
將本端的內(nèi)網(wǎng)地址信息發(fā)送至NAT服務(wù)端,以由所述NAT服務(wù)端將所述內(nèi)網(wǎng)地址信息轉(zhuǎn)發(fā)至對(duì)端客戶端,并接收所述NAT服務(wù)端發(fā)送的對(duì)端客戶端的內(nèi)網(wǎng)地址信息;
基于本端的內(nèi)網(wǎng)地址信息與對(duì)端客戶端的內(nèi)網(wǎng)地址信息,判斷本端客戶端與對(duì)端客戶端是否在同一個(gè)局域網(wǎng);
如果本端客戶端與對(duì)端客戶端在同一個(gè)局域網(wǎng),通過本端的內(nèi)網(wǎng)地址信息與對(duì)端客戶端的內(nèi)網(wǎng)地址信息,建立本端與對(duì)端客戶端間的連接。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,如果本端客戶端與對(duì)端客戶端不在同一個(gè)局域網(wǎng),通過本端和對(duì)端客戶端的NAT類型進(jìn)一步確定兩端的連接方式;
所述基于本端NAT類型和對(duì)端客戶端的NAT類型,通過P2P連接算法確定本端與對(duì)端間的連接方式,包括:
通過所述P2P連接算法對(duì)本端的NAT類型和對(duì)端客戶端的NAT類型進(jìn)行計(jì)算;
根據(jù)計(jì)算結(jié)果,確定本端與對(duì)端客戶端間的連接方式。
6.一種P2P連接建立的裝置,應(yīng)用于NAT客戶端,其中,NAT服務(wù)端具有檢測NAT類型的功能,其特征在于,所述客戶端加載了P2P連接算法,所述P2P連接算法為基于本端和對(duì)端客戶端的NAT類型確定兩端間的連接方式,包括:
獲取單元,用于獲取通過NAT服務(wù)端確定的本端的NAT類型;以及,獲取本端的外網(wǎng)地址信息和所述NAT服務(wù)端分配的轉(zhuǎn)發(fā)地址信息;
發(fā)接單元,用于將本端NAT類型、外網(wǎng)地址信息以及轉(zhuǎn)發(fā)地址信息發(fā)送至NAT服務(wù)端,以由所述NAT服務(wù)端將本端NAT類型、外網(wǎng)地址信息以及轉(zhuǎn)發(fā)地址信息轉(zhuǎn)發(fā)至對(duì)端客戶端,并接收所述NAT服務(wù)端發(fā)送的對(duì)端客戶端的NAT類型、外網(wǎng)地址信息以及轉(zhuǎn)發(fā)地址信息;
確定單元,用于基于本端NAT類型和對(duì)端客戶端的NAT類型,通過P2P連接算法確定本端與對(duì)端間的連接方式,并基于所述連接方式與對(duì)端建立P2P連接。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述NAT類型包括對(duì)稱型和非對(duì)稱型;
所述P2P連接算法包括:
當(dāng)本端和對(duì)端客戶端的NAT類型均為非對(duì)稱型時(shí),將對(duì)端客戶端的外網(wǎng)地址信息作為目的地址信息,建立本端與對(duì)端間的連接;
當(dāng)本端和對(duì)端客戶端的NAT類型中任一端的NAT類型為對(duì)稱型時(shí),將所述NAT服務(wù)端作為中繼服務(wù)端,基于本端客戶端和對(duì)端客戶端的轉(zhuǎn)發(fā)地址信息,由所述NAT服務(wù)端實(shí)現(xiàn)本端與對(duì)端客戶端間的間接連接。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述NAT服務(wù)端配置NAT類型檢測服務(wù)器;其中,所述NAT類型檢測服務(wù)器加載了NAT類型檢測程序;
所述獲取單元具體用于:
向所述NAT服務(wù)端發(fā)送NAT類型檢測請(qǐng)求,以使所述NAT服務(wù)端接收到所述NAT類型檢測請(qǐng)求后,基于所述NAT類型檢測程序檢測本端的NAT類型,并將檢測結(jié)果返回至客戶端;
接收所述NAT服務(wù)端發(fā)送的檢測結(jié)果,并保存所述檢測結(jié)果。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括:
第二發(fā)接單元,用于將本端的內(nèi)網(wǎng)地址信息發(fā)送至NAT服務(wù)端,以由所述NAT服務(wù)端將所述內(nèi)網(wǎng)地址信息轉(zhuǎn)發(fā)至對(duì)端客戶端,并接收所述NAT服務(wù)端發(fā)送的對(duì)端客戶端的內(nèi)網(wǎng)地址信息;
判斷單元,用于基于本端的內(nèi)網(wǎng)地址信息與對(duì)端客戶端的內(nèi)網(wǎng)地址信息,判斷本端客戶端與對(duì)端客戶端是否在同一個(gè)局域網(wǎng);
建立單元,用于如果本端客戶端與對(duì)端客戶端在同一個(gè)局域網(wǎng),通過本端的內(nèi)網(wǎng)地址信息與對(duì)端客戶端的內(nèi)網(wǎng)地址信息,建立本端與對(duì)端客戶端間的連接。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,如果本端客戶端與對(duì)端客戶端不在同一個(gè)局域網(wǎng),通過本端和對(duì)端客戶端的NAT類型進(jìn)一步確定兩端的連接方式;
所述確定單元具體用于:
通過所述P2P連接算法對(duì)本端的NAT類型和對(duì)端客戶端的NAT類型進(jìn)行計(jì)算;
根據(jù)計(jì)算結(jié)果,確定本端與對(duì)端客戶端間的連接方式。