網際網路 網際網路協定位址(IP Address)、網域名稱系統(DNS) 嗨!我是寶拉 在微軟工作的軟體工程師 讓我們來聊聊網際網路是如何運作的吧! 我的工作需要使用網路來和其他人溝通 但回溯到 1970 年代的時候,還沒有標準的作法 在 Vint Cerf 與 Bob Khan 發明了網路通訊協定之後 才讓(網際網路)這樣的溝通方式得以實現 這項發明,成為了網際網路的重要基礎 網際網路(Internet)是一堆的小型網路構成 它將地球上數十億的設備連接在一起。 你可能是使用筆電或手機透過 Wi-Fi 上網 Wi-Fi 則連結到網際網路服務供應商(ISP) ISP 則透過數十萬互相連結的網路 讓你與世界上數十億的裝置得以連接 多數人沒有注意到的一點是:網際網路其實是一種設計哲學 網際網路也是由一組協定來表現的結構體系 一個通訊協定是由一組大家公認的規則和標準組成 如果所有參與者都同意使用,就能讓彼此順利的溝通 網際網路「實際上」如何運作,反而沒那麼重要。 更重要的是: 它的設計哲學能夠讓網際網路調整與納入新的通訊技術 這是因為新的通訊技術只需要配合協定, 就能以某種方式使用網際網路 各式各樣的設備在網際網路世界裡,都擁有一個獨一無二的位址 這些網路位址就是一組數字, 很類似電話號碼或街道地址 這個網路位址,在一個範圍的網路內,對每個電腦或設備而言都是獨一無二的 這就好比多數的住家或公司行號都有郵件地址。 你不知需認識對方,就能寄信給他 但你需要知道他的地址,以及該如何正確的書寫地址 如此一來,這封信才能透過郵政系統送達到目的地 在網際網路裡,電腦的位址系統有類似的作用 這形成了最重要的通訊協定之一: 網際網路協定(Internet Protocol),簡稱: IP 電腦的位址也因此稱為:IP 位址 瀏覽網站等於是:你的電腦向另一部電腦徵求資訊 你的電腦向另一台電腦的IP位址發送訊息, 同時也附帶著自己的IP位址 所以,另一台電腦就知道要回覆訊息到什麼地方 你也許有看過 IP 位址, 它其實就是一連串的數字! 這些數字是由「層級」所構成 就像住家地址有:國家、城市、街道、門牌號碼那樣 IP位址也可分為許多部分 與所有的數位資料一樣,每一個數字都是以位元(bit)所表示 典型的IP位址的長度是32位元,每一個部分則有8位元 前面的數字,通常可識別裝置所在的國家或區域 接下來表示:子網域 最後則表示:特定裝置的位址 這個版本的IP協定,稱為 IPv4 它是在1973年所設計,並且在80年大初期被廣泛使用 提供了超過40億個獨一無二的位址,讓裝置連接到網際網路 但是網際網路遠比 Vint Cerf 想像的更為普遍 40億個不同的位址仍然不夠! 我們正處於轉換到更長的 IP 協定(IPv6)的過渡期中 IPv6 的每一個位址的長度為 128 位元, 可提供超過 340 x 10^33 個不同的位址 這個數量多到足夠讓地球上每一顆沙子都有自己的IP位址! 大多數的人不曾見過或關心 IP 網路位址 網域名稱系統(DNS) 可讓網域名稱(www.example.com)與對應的IP位址,關聯在一起 你的電腦會使用 DNS 查詢網域名稱,來取得對應的 IP 位址 IP 位址則用來讓你的電腦,能夠連結到網際網路上的目的地 看個例子... (聲音ㄧ:嗨!我想要前往 www.code.org) (伺服器一:嗯... 我不知道那個網域的 IP 位址,讓我問一下) (伺服器一:嗨,有人知道 code.org 要怎麼去嗎?) (伺服器二:耶,我知道,它就是在 174.129.14.120) (伺服器一:喔!讚讚,謝拉!我要把它記下來保存,以免之後我又需要它) (伺服器一:嘿!這是你需要的 IP 位址) (聲音ㄧ:好喔!謝謝拉!) 要如何設計一個系統能讓: 數十億個裝置,都能在茫茫網站大海中,找到正確的那一個呢? 只有一台 DNS 伺服器, 一定無法處理所有裝置的查詢請求 解決方法是:讓所有的 DNS 伺服器以「分散式階層」串聯在一起 並且以區域分開,針對主要的網域(.org, .com, .net)分開負責 DNS 起初是為了政府與教育機關而設計的開放且公開的通訊協定 因為 DNS 的開放特性,它很容易受到網路攻擊的影響。 有一種攻擊稱為:偽造 DNS 紀錄(DNS spoofing) 這是指:駭客入侵一台 DNS 伺服器,並且將網域名稱修改對應到錯誤的 IP 位址 如此,攻擊者就能把人們傳送到「冒名頂替」的假網站 如果這發生在你身上,你會信以為真的使用這個假網站,讓你受到更多問題的傷害。 網際網路非常巨大,且每天都不斷擴大。 然而,DNS 以及 網際網路協定 都被設計可以持續擴充 無論網際網路會成長到多麽巨大!