一文看懂:網址,URL,域名,IP 地址,DNS,域名解析
今天給大家梳理一篇關於網址、URL、IP 地址、域名、DNS、域名解析的白話長文,並以簡單的提問 - 解答形式讓讀者更加深刻理解網址、URL、IP 地址、域名、DNS、域名解析,希望有助於讀者的學習,面試和工作!
一、一個疑問
在指出這個問題之前,首先我們要清楚以下幾點:
-
互聯網上的所有數據都是存儲在主機 (服務器) 上
-
互聯網中的所有主機都擁有唯一的 IP 地址
-
互聯網中任意兩臺主機通信都是通過 IP 地址來實現
那麼瞭解上述內容之後,我們以兩臺主機最簡單的通信方式——上網爲例,爲大家說明這個疑問是什麼!
21 世紀的每個人應該都熟悉網上衝浪 (不知道還有沒有人用這個詞) 的過程,我們上網的實質就是獲取網址對應主機上的數據並在用戶主機上進行展示(瀏覽器上),那麼我們就該懷疑一個問題:
互聯網中的任意兩臺主機通信是依靠 IP 地址進行的,而我們上網只是輸入的網址,並不是 IP 地址,怎麼就能找到對方主機並獲取它的數據呢?
一個疑問
因此,勢必存在某種機制,將網址解析成爲了 IP 地址,再通過 IP 地址進行通信! 這個機制也是貫穿本文所有技術知識的主線!
二、網址
1. 網址是什麼?
網址,也叫做域名,又稱 URL,是互聯網用戶用來標識主機的名字,該名字具有唯一性,層次性,字面意義可以表示主機的賬號、功能、性質、所屬的地區或組織,便於所有互聯網用戶記憶與使用!
URL,即 Uniform Resource Locator,統一資源定位符,用於指明互聯網主機的服務器及具體的網頁位置,URL 的構成策略與示例如下:
URL 構成與示例
**特點:**網址命名遵循互聯網域名規則,且易於管理,包括分配,確認、回收,同時與主機 IP 地址進行綁定,在用戶訪問域名時能夠高效的將網址映射到 IP 地址 (高效由域名服務器保證,詳見後文)。
網址
2. 網址的出現解決了什麼問題?
網址 / 域名 / URL 的出現解決了以下兩個問題:
-
問題一:IP 地址是互聯網中所有主機的統一尋址方式,使用 IP 地址能夠直接訪問互聯網上主機數據、資源,但由於 IP 地址只是一串數據,不具有實際意義,導致所有互聯網用戶記憶起來十分困難。
-
問題二:在 Internet 架構中,幾乎所有的應用層軟件都不是通過 IP 地址來訪問互聯網中的主機資源,而是要求用戶輸入具有一定意義的主機名字來訪問對應主機的。
IP 地址記憶困難
3. 網址的結構組成
上面提到的主機名稱,也就是網址 / 域名的命名遵循了一定規則,這個規則便是由互聯網中的 “名字管理機構” 來制定的,即域名系統 DNS。這裏先介紹下網址的組成:
互聯網中的某臺主機域名由其所屬各級域名及其自身名字共同組成 (即由子域名構成),級別從左到右依增加,最右邊爲頂級域名,最左邊爲主機自己的名字,各級子域名使用“.” 隔開,常見的格式如下:
主機名.機構名.網絡名.頂級域名
中科大域名組成
下面將詳細介紹上圖提到的域名系統 DNS,包括 DNS 誕生解決了什麼問題,域名發展史,域名層級,部分頂層域名對象,域名服務器,域名解析過程與 IP 技術拓展!
三、DNS 域名系統
1. DNS 是什麼?
DNS,英文全寫爲 Domain Name System,中文意思爲域名系統,是互聯網中提供域名與 IP 地址互相映射的分佈式數據庫。
2. DNS 發展史
DNS 發展史
3. DNS 解決了什麼問題?
前文已經提到 DNS 域名系統是互聯網中的主機域名管理系統,充當 “管理員” 的角色! DNS 在誕生之前(ARPANET 時期),互聯網中的每臺主機都是用一個文件來紀錄所有的主機名及其 IP 地址,這個文件就是 hosts.txt (現在是 hosts 文件,無後綴),所有主機都必須定期從相應站點來更新該文件,用於同步互聯網中主機的新增、變更、消失。
hosts 文件內容
可以想象,隨着互聯網中的主機數量增加,hosts 文件必將越來越大,在維護更新方面的難度更是激增,主機名更是頻繁發生衝突,爲了解決這個問題,1983 年 DNS 域名系統問世。
搜索公衆號 Linux 中文社區後臺回覆 “私房菜”,獲取一份驚喜禮包。
DNS 解決了什麼問題
4. DNS 域名層次結構
DNS 是一個分層的樹形結構,各層由域構成,域的意義如下:
-
域表示一個區域、一個範圍
-
每個域可容納大量主機
-
每個主機必有自己的域,卻不一定有自己的域名地址
-
DNS 標準規定,單個域名長度一般在 63 個字符以內,最長不超過 255 個字符
-
DNS 標準規定,域名中的字符限 26 個字母 (不分大小寫),數字,連字符 “-”(不能作爲子 域名首字母與末尾字母)
-
域所在服務器稱爲域名服務器,主要用於將域名映射爲 IP 地址 (詳見後文)
DNS 的域名樹由根域,頂級域,二級域及其子域構成,其結構圖與示例如下:
域名結構
下面逐一介紹各級域:
-
根域,由互聯網網絡信息中心 (InterNIC) 負責管理,用點 “.” 表示,無名稱,是域名系統中的最高級別域,標準域名結尾應包含根域“.”,但實際使用中該根域都是省略的,所以大家常見的網址末尾並沒有“.”。
-
頂級域 (Top-Level Domains = TLD),隸屬於根域,是僅次於根域的下一級域,由國家頂級域(ccTLD) 與通用頂級域 (gTLD) 共同組成。國家頂級域共有 243 個(即全球的國家與地區總數),而通用頂級域,也叫國際域名,其數量是隨着因特網的發展在逐漸增加,理論會達到無窮多個。下表羅列出了常見的通用頂級域名:
通用頂級域名
-
二級域,正式給組織和個人註冊使用的唯一名稱,如亞馬遜、IBM,微軟的官方網址 (頭條不能帶網址) 中的字眼 “amazon”“ibm”“microsoft” 就是這些企業註冊的二級域名。
-
二級域以下子域,在二級域中的組織機構可以根據需要來進一步劃分子域,如銷售部門用 sale 子域名,業務部門用 business 子域名等。
前文中已經提到域名的出現是爲了解決用戶記憶困難的問題,實際在互聯網中並不能使用域名進行主機間的通信,而仍然需要使用 IP 地址進行數據交互,所以 DNS 系統在提供域名功能的同時更大的作用是能夠高效的將域名解析映射到對應主機的 IP 地址。這就是即將爲大家介紹的域名服務器的作用。
5. 域名服務器
域名服務器構成了 DNS 中的分佈式網絡系統,其功能主要是爲內外主機提供域名與 IP 地址的互相解析映射服務。域名服務器分佈在互聯網的各子網中,每個域名服務器負責管理連接到本子網的所有主機,併爲其提供服務,服務內容爲:
客戶機應用程序將目標主機域名發送給其所屬子網的域名服務器,域名服務器給該客戶機返回對應的目標主機 IP 地址; 若本子網中的域名服務器無法查詢到目標主機域名的 IP,則根據 DNS 的標準 IP 地址解析流程提供進一步的查詢服務,該過程將在下文 “域名解析過程” 中詳細介紹。
四、域名解析過程
通過域名獲取對應 IP 地址的過程叫做域名解析,參與域名解析過程最重要的單元就是域名服務器,域名服務器的體系結構如下:
域名服務器的結構
-
根域名服務器,是全球級別最高,最重要的域名服務器,全世界共有 13 臺 (IPv4 根域名服務器,編號爲 A 到 M),1 個主根服務器和 9 個輔根服務器在美國,歐洲 2 個輔根服務器,位於英國和瑞典,亞洲 1 個輔根服務器,位於日本。根域名服務器只紀錄其下級頂級域名服務器的域名及其 IP 地址,當低級域名服務器遇到無法解析的域名時,首先會向根域名服務器求助。
-
頂級域名服務器,級別同頂級域,用於紀錄註冊在該頂級域名服務器上的所有二級域名並提供 DNS 查詢服務。
-
權限域名服務器,爲一個區域的主機提供 DNS 查詢服務,如果查詢結果爲空,則通知發起請求的 DNS 用戶應到哪個權限域名服務器進一步查詢。
☆本地域名服務器,不在上圖的域名服務器體系中,但在域名解析中扮演重要的角色。每主機發出的 DNS 域名查詢請求首先都會發送到本地域名服務器。本地域名服務器可以設立在個人,大學,公司等各種範圍內,又叫做首選 DNS(很熟悉吧),就是我們計算機網絡連接中的首選 DNS:
本地 DNS 服務器
一張圖看懂域名解析全過程:
域名解析詳細過程
上圖以用戶訪問頭條網站爲例,簡明扼要的爲大家講述了用戶輸入網址到獲取 IP 地址的全過程,下面我們來詳細解釋該過程:
-
用戶打開計算機,在瀏覽器中輸入頭條網址後計算機將向本地 DNS 服務器發起域名解析請求。本地 DNS 服務器通常由互聯網服務提供商 (ISP) 提供,如三大運營商。
-
本地 DNS 服務器接收到用的 DNS 請求後,首先查詢其自身緩存紀錄中是否存在頭條域名對應的 IP 地址,如果存在,則直接將該 IP 地址回傳給用戶計算機; 否則,將進一步向根域名服務器發起求助。
-
由於根域名服務器只會紀錄其下級的 13 個頂級域名服務器,而不會直接紀錄域名與 IP 的映射關係,所以在接收到本地域名服務器的解析請求時,根域名服務器將告知本地服務器:“你所請求的域名由. com 頂級域名服務器管理,其 IP 爲 xxx”。
-
本地 DNS 服務器進一步向. com 頂級域名服務器發起域名解析請求,由於. com 域名服務器也不會紀錄域名與 IP 的映射關係,而是告知請求者去該域名所屬的域服務器上查詢,並給出其 IP 地址。
-
本地 DNS 服務器繼續向域服務器發起頭條域名解析請求,便會得到頭條域名對應的 IP 地址,這時本地 DNS 服務器不僅會向用戶計算機返回 IP 地址,同時在其自身緩存中增加頭條域名與其 IP 的紀錄,從而加快其他計算機獲取頭條域名對應 IP 的解析速度。
總結
本文以通俗易懂的語言結合實際問題詳細闡述了網址、域名、IP 地址、URL、域名服務器、域名解析等相關技術原理,並配置了細緻的示意圖,讓內容更易於讀者理解、記憶。希望有利於讀者的學習、工作!
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/-siIQ9K3OhiqoganFStDig