我們家里經(jīng)常會有路由器,只要交點錢向服務(wù)商申請個賬號,密碼,再登上路由器的配置網(wǎng)頁,設(shè)置PPPoE,輸入賬號密碼,這樣就差不多可以上網(wǎng)了。路由器會產(chǎn)生一個局域網(wǎng),通常路由器的IP為192.168.1.1,一個局域網(wǎng)最多可以連接250幾臺電腦,可以設(shè)置路由器的地址池的起始地址。當(dāng)我們連上局域網(wǎng)后,打開命令提示符(cmd),輸入ipconfig,就可以知道自己電腦的IP了,例如192.168.1.2等。但是為什么別人家的電腦IP也可能是相同的IP嗎?不是不能出現(xiàn)兩個相同的IP??
其實啊,為了解決IPV4的匱乏,技術(shù)人員們想出了NAT技術(shù),也就是網(wǎng)絡(luò)地址轉(zhuǎn)換的技術(shù),它可以提供在專用地址和全球地址之間的互相映射,同時支持虛擬專用網(wǎng)絡(luò)。這個技術(shù)允許一個站點的內(nèi)部通信使用一組準(zhǔn)用地址,而與世界其他地方進(jìn)行通信時有使用另一組(至少有一個)全球英特網(wǎng)地址。這個站點必須僅有一條道全球因特網(wǎng)的連接,而且這條通路通過一個運(yùn)行NAT軟件功能的路由器。簡明點說就是,每個全球IP地址都可以拓展到250多個局域網(wǎng)地址,大大緩解了IP匱乏的問題。這個機(jī)制的實現(xiàn)全靠帶NAT軟件的路由器。比如說該路由器連接地址為200.24.5.8的全球IP地址,路由器內(nèi)的主機(jī)的地址可以從192.168.1.0~192.168.1.255,要實現(xiàn)局域網(wǎng)內(nèi)部的主機(jī)與外網(wǎng)之間的通信,要做地址轉(zhuǎn)換的工作。當(dāng)要局域網(wǎng)內(nèi)的主機(jī)要發(fā)數(shù)據(jù)到外網(wǎng)的某服務(wù)器時,很明顯,主機(jī)發(fā)送的數(shù)據(jù)包的目的IP地址就是該服務(wù)器的IP,源IP地址是主機(jī)的局域網(wǎng)IP地址(如192,168.1.2),數(shù)據(jù)包經(jīng)過路由器,路由器將數(shù)據(jù)包的源IP地址改為路由器的全球IP地址(200.24.5.8),再將數(shù)據(jù)包發(fā)送給服務(wù)器。但是,服務(wù)器收到數(shù)據(jù)包之后,只知道發(fā)送給他的IP地址是200.24.5.8,要發(fā)數(shù)據(jù)包回去,怎么知道給哪臺主機(jī)呢?這就要引進(jìn)端口的概念了,主機(jī)發(fā)送給服務(wù)器時,與路由器建立一個端口地址,路由器會將端口的地址發(fā)給服務(wù)器,服務(wù)器雖然不能根據(jù)源IP地址識別給哪臺主機(jī)發(fā)送數(shù)據(jù)包,但是可以通過端口識別。對于服務(wù)器來說,該局域網(wǎng)內(nèi)的主機(jī)的IP地址都是相同的(專用網(wǎng)絡(luò)是透明),根據(jù)端口就可以區(qū)別不同的主機(jī)。
實際生活中,不僅只有一級NAT技術(shù),還有兩級NAT技術(shù),或者更多。我們定義了有4組專用網(wǎng)絡(luò),10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,根據(jù)這4組專用網(wǎng)絡(luò)地址,可以實現(xiàn)多級地址轉(zhuǎn)換。就那我學(xué)校來說吧,我們實驗室的路由器內(nèi)的IP池是從192.168.1.2~192.168.254,路由器的外網(wǎng)IP是172.16.169.154,很明顯也是個專用IP,也不是全球IP,說明我學(xué)校的網(wǎng)絡(luò)至少有兩級的地址轉(zhuǎn)換。也許我們學(xué)校也就分到一個全球IP地址,通過幾級的地址轉(zhuǎn)換,才有學(xué)校那么多地址。甚至學(xué)校連一個全球IP也沒有,學(xué)校的IP可能也是某個全球IP地址轉(zhuǎn)換過來的,具體的我也不清楚