轉(zhuǎn)自:http://blog.sina.com.cn/s/blog_5d302bd20100gprv.html
近年來己英,隨著Internet的迅猛發(fā)展作郭,連入Internet的主機數(shù)量成倍增長陨囊。由于最初設(shè)計Internet的時候并沒有考慮到需要支持這么大的規(guī)模,因而Internet使用的Ipv4協(xié)議中IP地址的長度選擇了32位夹攒,它可以使IP包的格式很好地對齊蜘醋;但是,目前IP地址的短缺已經(jīng)成為Internet面臨的最大問題之一咏尝。
為了解決IP地址短缺的問題压语,人們提出了許多解決方案,nternet能夠支持到新一代IP協(xié)議Ipv6的出臺编检。在眾多的解決方案中胎食,網(wǎng)絡(luò)地址轉(zhuǎn)換NAT(Network Address Translation)技術(shù)提供了一種完全將私有網(wǎng)和公共網(wǎng)隔離的方法,從而得到了廣泛的應用允懂。圖1 NAT工作原理示意圖1 NAT技術(shù)
NAT技術(shù)的基本功能就是厕怜,用1個或幾個IP地址來實現(xiàn)1個私有網(wǎng)中的所有主機和公共網(wǎng)中主機的IP通信。NAT技術(shù)可為TCP蕾总、UDP以及ICMP數(shù)據(jù)包提供透明轉(zhuǎn)發(fā)粥航。
1.1 NAT工作原理
NAT的基本工作原理是,當私有網(wǎng)主機和公共網(wǎng)主機通信的IP包經(jīng)過NAT網(wǎng)關(guān)時生百,將IP包中的源IP或目的IP在私有IP和NAT的公共IP之間進行轉(zhuǎn)換递雀。
如圖1所示,NAT網(wǎng)關(guān)有2個網(wǎng)絡(luò)端口蚀浆,其中公共網(wǎng)絡(luò)端口的IP地址是統(tǒng)一分配的公共IP缀程,為202.204.65.2;私有網(wǎng)絡(luò)端口的IP地址是保留地址市俊,為192.168.1.1杨凑。私有網(wǎng)中的主機192.168.1.2向公共網(wǎng)中的主機166.111.80.200發(fā)送了1個IP包(Des=166.111.80.200,Src=192.168.1.2)。當IP包經(jīng)過NAT網(wǎng)關(guān)時摆昧,NAT會將IP包的源IP轉(zhuǎn)換為NAT的公共IP并轉(zhuǎn)發(fā)到公共網(wǎng)撩满,此時IP包(Des=166.111.80.200,Src=202.204.65.2)中已經(jīng)不含任何私有網(wǎng)IP的信息。由于IP包的源IP已經(jīng)被轉(zhuǎn)換成NAT的公共IP鹦牛,響應的IP包(Des=202.204.65.2,Src=166.111.80.200)將被發(fā)送到NAT。這時勇吊,NAT會將IP包的目的IP轉(zhuǎn)換成私有網(wǎng)中主機的IP曼追,然后將IP包(Des=192.168.1.2,Src=166.111.80.200)轉(zhuǎn)發(fā)到私有網(wǎng)汉规。對于通信雙方而言礼殊,這種地址的轉(zhuǎn)換過程是完全透明的。
1.2 NAPT技術(shù)
由于NAT實現(xiàn)是私有IP和NAT的公共IP之間的轉(zhuǎn)換针史,那么晶伦,私有網(wǎng)中同時與公共網(wǎng)進行通信的主機數(shù)量就受到NAT的公共IP地址數(shù)量的限制。為了克服這種限制啄枕,NAT被進一步擴展到在進行IP地址轉(zhuǎn)換的同時進行Port的轉(zhuǎn)換婚陪,這就是網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(Network Address Port Translation)技術(shù)。
NAPT與NAT的區(qū)別在于频祝,NAPT不僅轉(zhuǎn)換IP包中的IP地址泌参,還對IP包中TCP和UDP的Port進行轉(zhuǎn)換。這使得多臺私有網(wǎng)主機利用1個NAT公共IP就可以同時和公共網(wǎng)進行通信常空。
如圖2所示沽一,私有網(wǎng)主機192.168.1.2要訪問公共網(wǎng)中的Http服務器166.111.80.200。首先漓糙,要建立TCP連接铣缠,假設(shè)分配的TCP Port是1010,發(fā)送了1個IP包(Des=166.111.80.200:80,Src=192.168.1.2:1010),當IP包經(jīng)過NAT網(wǎng)關(guān)時昆禽,NAT會將IP包的源IP轉(zhuǎn)換為NAT的公共IP蝗蛙,同時將源Port轉(zhuǎn)換為NAT動態(tài)分配的1個Port。然后为狸,轉(zhuǎn)發(fā)到公共網(wǎng)歼郭,此時IP包(Des=166.111.80.200:80,Src=202.204.65.2:2010)已經(jīng)不含任何私有網(wǎng)IP和Port的信息辐棒。由于IP包的源IP和Port已經(jīng)被轉(zhuǎn)換成NAT的公共IP和Port病曾,響應的IP包(Des=202.204.65.2:,Src=2010166.111.80.200:80)將被發(fā)送到NAT。這時NAT會將IP包的目的IP轉(zhuǎn)換成私有網(wǎng)主機的IP漾根,同時將目的Port轉(zhuǎn)換為私有網(wǎng)主機的Port泰涂,然后將IP包(Des=192.168.1.2:1010,Src=166.111.80.200:80)轉(zhuǎn)發(fā)到私網(wǎng)辐怕。對于通信雙方而言逼蒙,這種IP地址和Port的轉(zhuǎn)換是完全透明的。