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