P2P 之 UDP穿透NAT的原理與實現(xiàn)(附源代碼)
原創(chuàng):shootingstars
參考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt
baidu
論壇上經(jīng)常有對P2P原理的討論,但是討論歸討論,很少有實質(zhì)的東西產(chǎn)生(源代碼)。呵呵,在這里我就用自己實現(xiàn)的一個源代碼來說明UDP穿越NAT的原理。
首先先介紹一些基本概念:
NAT(Network Address Translators),網(wǎng)絡(luò)地址轉(zhuǎn)換:網(wǎng)絡(luò)地址轉(zhuǎn)換是在IP地址日益缺乏的情況下產(chǎn)生的,它的主要目的就是為了能夠地址重用。NAT分為兩大類,基本的NAT和NAPT(Network Address/Port Translator)。
最開始NAT是運行在路由器上的一個功能模塊。
最先提出的是基本的NAT,它的產(chǎn)生基于如下事實:一個私有網(wǎng)絡(luò)(域)中的節(jié)點中只有很少的節(jié)點需要與外網(wǎng)連接(呵呵,這是在上世紀(jì)90年代中期提出的)。那么這個子網(wǎng)中其實只有少數(shù)的節(jié)點需要全球唯一的IP地址,其他的節(jié)點的IP地址應(yīng)該是可以重用的。
因此,基本的NAT實現(xiàn)的功能很簡單,在子網(wǎng)內(nèi)使用一個保留的IP子網(wǎng)段,這些IP對外是不可見的。子網(wǎng)內(nèi)只有少數(shù)一些IP地址可以對應(yīng)到真正全球唯一的IP地址。如果這些節(jié)點需要訪問外部網(wǎng)絡(luò),那么基本NAT就負責(zé)將這個節(jié)點的子網(wǎng)內(nèi)IP轉(zhuǎn)化為
標(biāo)簽:
draft-ford-midcom
shootingstars
sourceforge
midcom-p
上傳時間:
2015-12-08
上傳用戶:kernaling