— 作者 謝恩銘 轉載請註明出處
上一課Web探索之旅 | 第三部分第一課:伺服器中,我們說了在Web之中,全球各地有無數臺機器,有些充當客戶機,有些作為伺服器。
那麼這些機器如何找到和辨認彼此呢?難道不會“只是因為在人群中多看了你一眼,再也沒能想起你容顏”嗎?
如果我用我的瀏覽器上網,我怎麼知道哪個伺服器向我傳送此網站呢?
為了解決這個難題,IT科學家們使用了一個叫做IP地址的東西(東西好像有點太難聽了,IP它根本就不是個東西好嗎)。
IP是Internet Protocol的簡稱,英語意為“網際網路協議”。
IP地址就是用來表示每一臺連線Web的機器的。而且是唯一標識(當然我們在【TCP/IP探索之旅】中會講到不同類別的IP地址,有些是可以重複的,牽涉到區域網,廣域網,公有地址和私有地址等概念,在此不深究)。
我們暫時只要瞭解:大範圍來講,全球每臺電腦都有一個獨一無二的IP地址,就好像是它的唯一銘牌。我們可以把“電腦”比作“電話”,那麼“IP地址”就相當於“電話號碼”。
IPv4和IPv6
IPv4和IPv6是IP地址的不同版本,v4就是第四版(v是英語version的首字母,version意為“版本”),那麼v6就是第六版。
IPv4的地址長度為32位(共有2^32(2的32次方)個IP地址),分為4段,每段8位,用十進位制數字表示,每段數字範圍為0~255,段與段之間用句點隔開。例如159.226.13.1。
IPv6的地址長度為128位(共有2^128(2的128次方)個IP地址),分為8段,每段16位,用十進位制數字表示,每段數字範圍為0~65535,段與段之間用句點隔開。如果每個16位用16進製表示,那麼例如1080:0000:0000:0000:0008:0800:200C:417A。
網際網路當前使用的主要是基於IPv4協議的32位地址,地址總容量近43億個。而IPv6地址採用128位標識,數量為2的128次方,相當於IPv4地址空間的4次冪。
有人曾形象地比喻:“IPv6可以讓地球上每一粒沙子都擁有一個IP地址。”
實際上,並不急於推廣IPv6,只需在現有的IPv4基礎上將32位擴充套件8位到40位,即可解決IPv4地址不夠的問題。這樣一來可用地址數就擴大了256倍。
我們的課程中還是以IPv4的地址值來舉例。
例如我們有以下IP地址:
難道我們每次上網,都要在位址列裡輸入這樣的數字才能找到我要的網頁嗎?這樣的話太累了,臣妾做不到啊。
那怎麼辦呢?於是域名應運而生。
域名
因為直接記每個IP地址太難,所以人們想到了用人類易於記憶的名字來代替數字。比如,上面例子中的 205.89.177.26,其實是曾經Google首頁的IP地址。所以我們就用一個域名(domain name)來代替:google.com
但是我們的伺服器其實只認得數字形式的IP地址。所以我們需要一個“中間人”,將google.com這樣的域名先解析成205.89.177.26,然後再找到對應的網頁。
這個中間人就是DNS,Domain Name System(域名系統),是Internet的一項服務。它作為將域名和IP地址相互對映的一個分散式資料庫,能夠使人更方便的訪問網際網路。
有了DNS,我們就可以輕鬆地在位址列輸入 google.com,然後經過DNS解析,變為對應的IP地址,再由伺服器讀取。
DNS是由域名解析器和域名伺服器組成的。域名伺服器是指儲存有該網路中所有主機的域名和對應IP地址,並具有將域名轉換為IP地址功能的伺服器。其中域名必須對應一個IP地址,而IP地址不一定有域名。
總結
-
IP地址使我們可以找到地球上每臺聯網的電腦。
-
記住域名比IP地址方便,而從域名到IP地址的解析是通過DNS。
下回預告
人世間,
萬千情感皆有溫度,
千萬程式碼似有性格。
這裡有原創教程,IT叢林……
和你一起探索程式人生。
微信公眾號「程式設計師聯盟」ProgrammerLeague
我是謝恩銘,在巴黎奮鬥的嵌入式軟體工程師。
個人簡介
熱愛生活,喜歡游泳,略懂烹飪。