神們自己
互聯(lián)網(wǎng)上的所有計(jì)算機(jī),都通過網(wǎng)線或Wi?Fi相互聯(lián)通。當(dāng)我們想瀏覽網(wǎng)頁、下載文件時(shí),我們的電腦(手機(jī)或其他設(shè)備)必須有一個(gè)地址,以便讓另一臺(tái)電腦(服務(wù)器)找到你,把相關(guān)信息發(fā)給你。在計(jì)算機(jī)術(shù)語中,這個(gè)地址叫“互聯(lián)網(wǎng)協(xié)議地址”(Internet Protocol Address),我們通常簡稱為“IP地址”。
為什么互聯(lián)網(wǎng)上的每個(gè)設(shè)備必須有一個(gè)地址?這就好比:如果你想發(fā)個(gè)快遞給我,你必須填寫我家的地址和你家的地址,以便快遞小哥上門服務(wù)。而且,每家的地址必須是獨(dú)一無二的,如果存在兩個(gè)完全相同的地址,快遞小哥就會(huì)不知所措。
互聯(lián)網(wǎng)也一樣。當(dāng)我們打開網(wǎng)頁或App時(shí),其實(shí)我們的電腦(手機(jī)或其他設(shè)備)先要向另一臺(tái)電腦(服務(wù)器)的地址發(fā)送消息(指令),把你的需求告訴它,服務(wù)器收到指令,才能把相關(guān)信息發(fā)到你的地址上。電腦之間互相傳遞的數(shù)據(jù)包,是不是很像快遞員傳遞的包裹?
這么一說,你大概覺得:IP地址和房子的地址不就是一回事嘛!但事實(shí)并沒有這么簡單,IP地址和房子的地址還是有很大不同的。
讓我們先來看看真實(shí)的IP地址長什么樣:它是用點(diǎn)分隔的4個(gè)數(shù)字,比如110.242.68.66。
我們熟悉的地址一般是這樣的:A省B市C區(qū)D路E號(hào)樓F單元G室。但是互聯(lián)網(wǎng)IP地址卻是用點(diǎn)分隔的4個(gè)數(shù)字,它們代表什么呢?
其實(shí),我們看到的這4個(gè)數(shù)字都有從0到255的范圍限制。它們對(duì)應(yīng)了二進(jìn)制00000000到11111111的不同組合。
以IP地址110.242.68.66來演示,將這4個(gè)數(shù)字轉(zhuǎn)成二進(jìn)制,分別是:
110=01101110
242=11110010
68=01000100
66=01000010
所以,這個(gè)IP地址所對(duì)應(yīng)的32位二進(jìn)制數(shù)是01101110111100100100010001000010。在計(jì)算機(jī)的世界里,只有0和1這兩個(gè)數(shù)字,所有的IP地址都可以用一個(gè)32位的二進(jìn)制數(shù)來表示。當(dāng)我們登錄網(wǎng)站時(shí),其實(shí)是在與一個(gè)32位數(shù)字表示的IP地址進(jìn)行通信,這個(gè)地址在全世界獨(dú)一無二。
按理說,既然每個(gè)網(wǎng)站都有獨(dú)一無二的IP地址,那我們的電腦或手機(jī)也應(yīng)該有個(gè)獨(dú)一無二的IP地址,兩者才能聯(lián)網(wǎng)通信。但如果你查看電腦的IP地址,會(huì)發(fā)現(xiàn)它長這樣:192.168.1.2。巧了,我的電腦的IP地址,也是192.168.1.2!
雖然我們的電腦IP地址一樣,但我們都可以正常上網(wǎng),還可以互相聊天。為什么會(huì)這樣?
其實(shí)道理也很簡單,我們電腦的IP地址只是內(nèi)網(wǎng)地址。服務(wù)器的公網(wǎng)地址必須全世界唯一,內(nèi)網(wǎng)地址卻無須如此。
還是用發(fā)快遞的例子來解釋吧:兩個(gè)公網(wǎng)地址之間互相通信,就好比快遞員送貨上門;但快遞員也可以把我們這個(gè)小區(qū)的所有快遞放在門衛(wèi)處,讓每個(gè)人自己來取。在這種情況下,只需要小區(qū)地址不重復(fù)就可以了,小區(qū)內(nèi)部的地址重不重復(fù)都沒關(guān)系。就算我們兩個(gè)都住2號(hào)樓404室,快遞也不可能送錯(cuò),因?yàn)槲覀冏≡诓煌男^(qū)。
小區(qū)的地址相當(dāng)于公網(wǎng)地址,而小區(qū)內(nèi)部的地址相當(dāng)于內(nèi)網(wǎng)地址。我們家里可以有多臺(tái)電腦、多部手機(jī)或其他設(shè)備同時(shí)上網(wǎng),可以各自瀏覽網(wǎng)頁,沒有任何沖突。但它們只有內(nèi)網(wǎng)地址,沒有公網(wǎng)地址。
假設(shè)你有臺(tái)電腦,IP地址是192.168.1.2,當(dāng)你上網(wǎng)時(shí),實(shí)際發(fā)生的事情是這樣的:電腦通過網(wǎng)線,向路由器(內(nèi)網(wǎng)IP地址192.168.1.1)發(fā)送請(qǐng)求,比如說要訪問百度。
路由器通過另一根網(wǎng)線,把請(qǐng)求數(shù)據(jù)發(fā)到光貓,這是電信、移動(dòng)等運(yùn)營商上門安裝寬帶時(shí)給你的設(shè)備,全稱叫“光調(diào)制解調(diào)器”。
光貓上有一根光纖連到運(yùn)營商。光貓打開時(shí),會(huì)自動(dòng)從運(yùn)營商獲取一個(gè)公網(wǎng)IP地址。當(dāng)光貓把你的請(qǐng)求數(shù)據(jù)發(fā)到百度的服務(wù)器地址時(shí),百度其實(shí)只能看到你的公網(wǎng)地址,它看不到也不需要看到你的內(nèi)網(wǎng)地址。
如果你發(fā)給百度的請(qǐng)求是搜索一個(gè)關(guān)鍵詞,那么百度返回給你的數(shù)據(jù)就是這個(gè)關(guān)鍵詞對(duì)應(yīng)的搜索結(jié)果的網(wǎng)頁,通過光纖發(fā)到你家的路由器上。路由器就像小區(qū)門衛(wèi)一樣,它知道該數(shù)據(jù)是192.168.1.2這臺(tái)電腦需要的,就會(huì)把數(shù)據(jù)包原封不動(dòng)轉(zhuǎn)發(fā)給電腦。
你在電腦上搜索網(wǎng)頁,立刻就能看到搜索結(jié)果。互聯(lián)網(wǎng)上的信息是以光速在全世界傳播的,所以你根本意識(shí)不到,在零點(diǎn)幾秒內(nèi)竟然發(fā)生了這么多故事。
你可能會(huì)想,既然IP地址只是一串?dāng)?shù)字,那給每個(gè)電腦(手機(jī)或其他設(shè)備)都發(fā)一個(gè)公網(wǎng)IP地址不就行了,為什么要用這么復(fù)雜的方式來上網(wǎng)呢?
原因其實(shí)很簡單:全世界唯一的公網(wǎng)IP地址太少了。IP地址有32位,每位可以為1或0,所以總共有232即4294967296種組合,也就是接近43億個(gè)不重復(fù)的IP地址。如果世界上有44億臺(tái)電腦(手機(jī)或其他設(shè)備)聯(lián)網(wǎng),那多出的1億多個(gè)設(shè)備就只能采取共享公網(wǎng)IP的上網(wǎng)方式了。
在互聯(lián)網(wǎng)誕生初期,人們覺得43億個(gè)IP地址是個(gè)天文數(shù)字,永遠(yuǎn)都用不完。沒有人能想到,短短幾十年后,幾乎人人都能上網(wǎng),甚至連手表、耳機(jī)、音箱等智能設(shè)備都能上網(wǎng)。如今地球近80億人口中,有接近50億人上網(wǎng),而聯(lián)網(wǎng)設(shè)備數(shù)量已超過了170億。43億個(gè)IP地址消耗殆盡,大多數(shù)人只能共享IP上網(wǎng)。
要讓每臺(tái)電腦(手機(jī)或其他設(shè)備)都有獨(dú)一無二的IP,我們需要下一代IP地址:IPv6。它由128位二進(jìn)制數(shù)字組成,所有可能的數(shù)字組合高達(dá)2128。這個(gè)數(shù)字大到難以想象,地球上每一平方米都可以分配到1026個(gè)IP地址,甚至連空氣中的每一?;覊m都能分配到一個(gè)。
可以預(yù)計(jì),當(dāng)IPv6普及之后,我們的上網(wǎng)方式也將徹底改變。