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