網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

計算機網絡,計算機專業必修科目之一,是專業課,但是,很多的人除了進入瀏覽器,輸入網址,然後回車就看到頁面了,然後往下操作,基本沒怎麼關注過它的原理,但是,你回車之後,網絡內部真的是發生了很多的事情,只是你不知道,今天,我就帶大家解開網絡的神秘面紗


一、一個疑問

在指出這個問題之前,首先我們要清楚以下幾點:

  • 互聯網上的所有數據都是存儲在主機(服務器)上
  • 互聯網中的所有主機都擁有唯一的IP地址
  • 互聯網中任意兩臺主機通信都是通過IP地址來實現


那麼瞭解上述內容之後,我們以兩臺主機最簡單的通信方式——上網為例,為大家說明這個疑問是什麼!


21世紀的每個人應該都熟悉網上衝浪(不知道還有沒有人用這個詞)的過程,我們上網的實質就是獲取網址對應主機上的數據並在用戶主機上進行展示(瀏覽器上),那麼我們就該懷疑一個問題:


互聯網中的任意兩臺主機通信是依靠IP地址進行的,而我們上網只是輸入的網址,並不是IP地址,怎麼就能找到對方主機並獲取它的數據呢?


網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

一個疑問

因此,勢必存在某種機制,將網址解析成為了IP地址,再通過IP地址進行通信!這個機制也是貫穿本文所有技術知識的主線!


二、網址


1. 網址是什麼?


網址,也叫做域名,又稱URL,是互聯網用戶用來標識主機的名字,該名字具有唯一性,層次性,字面意義可以表示主機的賬號、功能、性質、所屬的地區或組織,便於所有互聯網用戶記憶與使用!


URL,即Uniform Resource Locator,統一資源定位符,用於指明互聯網主機的服務器及具體的網頁位置,URL的構成策略與示例如下:


網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

URL構成與示例

特點:網址命名遵循互聯網域名規則,且易於管理,包括分配,確認、回收,同時與主機IP地址進行綁定,在用戶訪問域名時能夠高效的將網址映射到IP地址(高效由域名服務器保證,詳見後文)。


網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

網址

2. 網址的出現解決了什麼問題?


網址/域名/URL的出現解決了以下兩個問題:

  • 問題一:IP地址是互聯網中所有主機的統一尋址方式,使用IP地址能夠直接訪問互聯網上主機數據、資源,但由於IP地址只是一串數據,不具有實際意義,導致所有互聯網用戶記憶起來十分困難。
  • 問題二:在Internet架構中,幾乎所有的應用層軟件都不是通過IP地址來訪問互聯網中的主機資源,而是要求用戶輸入具有一定意義的主機名字來訪問對應主機的。

網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

IP地址記憶困難

3. 網址的結構組成


上面提到的主機名稱,也就是網址/域名的命名遵循了一定規則,這個規則便是由互聯網中的“名字管理機構”來制定的,即域名系統DNS。這裡先介紹下網址的組成:


互聯網中的某臺主機域名由其所屬各級域名及其自身名字共同組成(即由子域名構成),級別從左到右依增加,最右邊為頂級域名,最左邊為主機自己的名字,各級子域名使用“.”隔開,常見的格式如下:


<code>主機名.機構名.網絡名.頂級域名 /<code>
<code>
網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

中科大域名組成


下面將詳細介紹上圖提到的域名系統DNS,包括DNS誕生解決了什麼問題,域名發展史,域名層級,部分頂層域名對象,域名服務器,域名解析過程與IP技術拓展!


三、DNS域名系統


1. DNS是什麼?


DNS,英文全寫為Domain Name System,中文意思為域名系統,是互聯網中提供域名與IP地址互相映射的分佈式數據庫。


2. DNS發展史


網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

DNS發展史


3. DNS解決了什麼問題?


前文已經提到DNS域名系統是互聯網中的主機域名管理系統,充當“管理員”的角色!DNS在誕生之前(ARPANET時期),互聯網中的每臺主機都是用一個文件來紀錄所有的主機名及其IP地址,這個文件就是hosts.txt (現在是hosts文件,無後綴),所有主機都必須定期從相應站點來更新該文件,用於同步互聯網中主機的新增、變更、消失。


網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

hosts文件內容

可以想象,隨著互聯網中的主機數量增加,hosts文件必將越來越大,在維護更新方面的難度更是激增,主機名更是頻繁發生衝突,為了解決這個問題,1983年DNS域名系統問世。


網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

DNS解決了什麼問題


4. DNS域名層次結構


DNS是一個分層的樹形結構,各層由域構成,域的意義如下:

  • 域表示一個區域、一個範圍
  • 每個域可容納大量主機
  • 每個主機必有自己的域,卻不一定有自己的域名地址
  • DNS標準規定,單個域名長度一般在63個字符以內,最長不超過255個字符
  • DNS標準規定,域名中的字符限26個字母(不分大小寫),數字,連字符“-”(不能作為子 域名首字母與末尾字母)
  • 域所在服務器稱為域名服務器,主要用於將域名映射為IP地址(詳見後文)

DNS的域名樹由根域,頂級域,二級域及其子域構成,其結構圖與示例如下:


網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

域名結構

下面逐一介紹各級域:

  • 根域,由互聯網網絡信息中心(InterNIC)負責管理,用點“.”表示,無名稱,是域名系統中的最高級別域,標準域名結尾應包含根域“.”,但實際使用中該根域都是省略的,所以大家常見的網址末尾並沒有“.”。
  • 頂級域(Top-Level Domains = TLD),隸屬於根域,是僅次於根域的下一級域,由國家頂級域(ccTLD)與通用頂級域(gTLD)共同組成。國家頂級域共有243個(即全球的國家與地區總數),而通用頂級域,也叫國際域名,其數量是隨著因特網的發展在逐漸增加,理論會達到無窮多個。下表羅列出了常見的通用頂級域名:

網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

通用頂級域名

  • 二級域,正式給組織和個人註冊使用的唯一名稱,如亞馬遜、IBM,微軟的官方網址(頭條不能帶網址)中的字眼“amazon”“ibm”“microsoft”就是這些企業註冊的二級域名。
  • 二級域以下子域,在二級域中的組織機構可以根據需要來進一步劃分子域,如銷售部門用sale子域名,業務部門用business子域名等。

前文中已經提到域名的出現是為了解決用戶記憶困難的問題,實際在互聯網中並不能使用域名進行主機間的通信,而仍然需要使用IP地址進行數據交互,所以DNS系統在提供域名功能的同時更大的作用是能夠高效的將域名解析映射到對應主機的IP地址。這就是即將為大家介紹的域名服務器的作用。


5. 域名服務器


域名服務器構成了DNS中的分佈式網絡系統,其功能主要是為內外主機提供域名與IP地址的互相解析映射服務。域名服務器分佈在互聯網的各子網中,每個域名服務器負責管理連接到本子網的所有主機,併為其提供服務,服務內容為:


客戶機應用程序將目標主機域名發送給其所屬子網的域名服務器,域名服務器給該客戶機返回對應的目標主機IP地址;若本子網中的域名服務器無法查詢到目標主機域名的IP,則根據DNS的標準IP地址解析流程提供進一步的查詢服務,該過程將在下文“域名解析過程”中詳細介紹。


四、域名解析過程

通過域名獲取對應IP地址的過程叫做域名解析,參與域名解析過程最重要的單元就是域名服務器,域名服務器的體系結構如下:


網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

域名服務器的結構

  • 根域名服務器,是全球級別最高,最重要的域名服務器,全世界共有13臺(IPv4根域名服務器,編號為A到M),1個主根服務器和9個輔根服務器在美國,歐洲2個輔根服務器,位於英國和瑞典,亞洲1個輔根服務器,位於日本。根域名服務器只紀錄其下級頂級域名服務器的域名及其IP地址,當低級域名服務器遇到無法解析的域名時,首先會向根域名服務器求助。
  • 頂級域名服務器,級別同頂級域,用於紀錄註冊在該頂級域名服務器上的所有二級域名並提供DNS查詢服務。
  • 權限域名服務器,為一個區域的主機提供DNS查詢服務,如果查詢結果為空,則通知發起請求的DNS用戶應到哪個權限域名服務器進一步查詢。

☆本地域名服務器,不在上圖的域名服務器體系中,但在域名解析中扮演重要的角色。每主機發出的DNS域名查詢請求首先都會發送到本地域名服務器。本地域名服務器可以設立在個人,大學,公司等各種範圍內,又叫做首選DNS(很熟悉吧),就是我們計算機網絡連接中的首選DNS:


網址,URL,域名,IP地址,DNS,域名解析,只為你能成功訪問

本地DNS服務器

一張圖看懂域名解析全過程:

網址,URL,域名,IP地址,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、域名服務器、域名解析等相關技術原理,並配置了細緻的示意圖,讓內容更易於讀者理解、記憶。希望有利於讀者的學習、工作!


分享到:


相關文章: