一文看懂:網址,URL,域名,IP位址,DNS,域名解析

2021-02-08 碼農有道

來源:猴哥技術站

今天給大家梳理一篇關於網址、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位址記憶困難

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域名系統問世。


DNS解決了什麼問題


4. DNS域名層次結構


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

域表示一個區域、一個範圍

每個域可容納大量主機

每個主機必有自己的域,卻不一定有自己的域名地址

DNS標準規定,單個域名長度一般在63個字符以內,最長不超過255個字符

DNS標準規定,域名中的字符限26個字母(不分大小寫),數字,連字符「-」(不能作為子 域名首字母與末尾字母)

域所在伺服器稱為域名伺服器,主要用於將域名映射為IP位址(詳見後文)


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


域名結構

下面逐一介紹各級域:

根域,由網際網路網絡信息中心(InterNIC)負責管理,用點「.」表示,無名稱,是域名系統中的最高級別域,標準域名結尾應包含根域「.」,但實際使用中該根域都是省略的,所以大家常見的網址末尾並沒有「.」。

頂級域(Top-Level Domains = TLD),隸屬於根域,是僅次於根域的下一級域,由國家頂級域(ccTLD)與通用頂級域(gTLD)共同組成。國家頂級域共有243個(即全球的國家與地區總數),而通用頂級域,也叫國際域名,其數量是隨著網際網路的發展在逐漸增加,理論會達到無窮多個。下表羅列出了常見的通用頂級域名:


通用頂級域名

前文中已經提到域名的出現是為了解決用戶記憶困難的問題,實際在網際網路中並不能使用域名進行主機間的通信,而仍然需要使用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、域名伺服器、域名解析等相關技術原理,並配置了細緻的示意圖,讓內容更易於讀者理解、記憶。希望有利於讀者的學習、工作!

嘿,你在看嗎

相關焦點

  • 很多人想開一個自己的網站,卻分不清域名與IP位址、網址什麼區別
    一、註冊一個自己的域名。二、租個伺服器,把自己的網站代碼拷貝上去。三、做一下域名解析。做完這三步,網民就可以在家裡打開這個網站了,建站過程非常簡單,絕對半小時就可以擁有自己的網站。這種」好事「開始不久,國家就發現了問題,大量的詐騙、病毒、血腥、暴力、黃色的網站出現了,嚴重地破壞了網絡環境,對網民和國家都造成了難以估量的損失。
  • 網絡知識掃盲,一文搞懂 DNS
    DNS是 Domain Name System 的縮寫,也就是 域名解析系統,它的作用非常簡單,就是根據域名查出對應的 IP位址。你可以把它想像成一本巨大的電話本,比如當你要訪問域名www.163.com,首先要通過DNS查出它的IP位址是112.48.162.8。
  • dns是什麼意思 - 百度經驗
    下面和大家分享dns是什麼;如果你覺得這個分享對你有幫助,請將之分享到朋友圈或微博中,讓更多小夥伴知多點。dns是domain name service的縮寫,它的作用簡單的說,可以理解為:將域名翻譯成ip地址。
  • DNS 域名解析面試題解析
    答:DNS(Domain Name System) 是「域名系統」的英文縮寫,是一種組織成域層次結構的計算機和網絡服務命名系統,它用於 TCP/IP 網絡,它從事將主機名或域名轉換為實際 IP 地址的工作。DNS 就是這樣的一位「翻譯官」,它的基本工作原理可用下圖來表示。
  • seo優化內容之——域名解析是什麼意思?seo要注意哪些問題
    當然在域名上線前,大家訪問一個網站通過的是ip,而ip是一串更長的數字,由於ip更複雜,更不方便記憶,為此就有了域名,將域名和ip連結後,讓大家通過域名就可以訪問到我們的網站,而這個將域名和ip關聯的過程就成為域名解析。
  • 網關、DNS和MAC地址
    DNS是域名解析伺服器(Domain Name System),是把網址變成IP位址的伺服器。DNS說白了是把域名翻譯成IP位址用的,這裡面舉個例子,大家就很容易清楚了。這個域名翻譯成了IP位址61.135.169.105。
  • 邵陽網站製作:阿里雲域名解析流程
    域名解析是邵陽網站製作過程中不可缺少的一個步驟,通過域名解析可以讓註冊後的域名去訪問網站空間,或者也可以這樣理解,域名解析相當於在用電腦的時候告訴網際網路此次操作是用該域名去訪問某個特定空間。一般域名被註冊後,註冊者只有域名使用權,需要進行域名解析才可以訪問自己的網站,而域名解析是由註冊商控制的,下面跟網站製作小孟來看看阿里雲域名解析流程是怎樣的吧。
  • 域名解析與DNS伺服器(2)
    域名解析有正向解析和反向解析之說,正向解析就是將域名轉換成對應的IP位址的過程,它應用於在瀏覽器地址欄中輸入網站域名時的情形;而反向解析就是將IP位址轉換成對應域名的過程,但在訪問網站時無須進行反向解析,即使在瀏覽器地址欄中輸入的網站伺服器IP
  • Fedora 33將默認使用systemd-resolved 域名解析:並非nss-dns
    今年秋季發布的 Fedora 33 計劃默認使用 systemd-resolved 而非 nss-dns 用於域名解析。Systemd-resolved 用於為 DNS / DNSSEC / DNS-over-TLS / mDNS / LLMNR 提供域名解析服務,其作為 systemd 擴展產品的一部分已經存在許多年,但現在作為 Fedora 構建的一部分,默認情況下處於被禁用的狀態。
  • 中級|軟考題庫每日一練|2.12
    3、如果DNS伺服器更新了某域名的IP位址,造成客戶端域名解析故障,在客戶端可以用兩種方法解決此問題,其中一種是在Windows命令行下執行(  )命令。A.ipconfig/allB.ipconfig/renewC.ipconfig/flushdnsD.ipconfig/release                            參考答案:C試題分析:本題主要考查Windows命令的作用。
  • 一文講懂什麼是三層交換機、網關、DNS、子網掩碼、MAC地址
    選擇 優質文章,及時送達來自:有為網絡服務很多朋友多次問到什麼是網關、dns、子網掩碼,三層交換機,它們定位的用途;確實,因為網絡技術在弱電中確實應用非常廣泛,我們平時在vip技術群中也是不斷的討論到網關、vlan、三層交換機或子網掩碼等問題,今天我們就一起用通俗方式一次性了解清楚。一、什麼是vlan?
  • 註冊域名解析是什麼意思
    註冊域名解析是什麼意思?當使用域名來搭建網站時,最後要將域名和空間建立起聯繫,這時網站才能正常打開訪問。域名解析,就是把域名指向網站空間的 IP,讓人們通過註冊的域名方便地訪問到網站的一種服務。IP位址是網路上標識你網站站點的數字地址,為了簡單好記,採用域名來代替ip地址標識站點地址。域名的解析工作由DNS伺服器完成。簡答的來說,域名解析也就是域名註冊後,域名到ip地址的轉換過程。域名解析有多個形式,域名解析包括:A記錄、CNAME記錄、NS記錄、MX記錄、URL顯示轉發、URL隱性轉發、動態域名解析。
  • 關於 DNS 看這一篇就夠了
    DNS是 Domain Name System 的縮寫,也就是 域名解析系統,它的作用非常簡單,就是根據域名查出對應的 IP位址。你可以把它想像成一本巨大的電話本,比如當你要訪問域名www.163.com,首先要通過DNS查出它的IP位址是112.48.162.8。2.
  • 如何手動更改IP位址及DNS
    各位在上網的時候一般有撥號、自動獲取地址或手動配置地址之分,一般在家裡都是通過路由器之間自動獲取就可以了。那麼在區域網或者在公司或校園網中如何手動配置ip地址呢?或者說網卡無法自動獲取的時候如何通過手動修改呢?
  • Android 4.4 從url.openConnection到DNS解析
    其實並不是要分析Dns流程的,一開始是分析Android設置wifi代理,怎麼起到全局代理的作用的。因為壞習慣,在線看源碼,全憑記憶,沒有做筆記的習慣,忽略了一個點,直接分析到dns了,回過頭才發現分析過了。而之前群裡有人問應用進程hook hosts文件能不能改dns,很久之前分析過4.1,記得是有個遠程進程負責dns解析的,但是太久了,細節都忘光了。
  • 網際網路初識系列3:DNS解析
    DNS( Domain Name System)是「域名系統」的英文縮寫,是一種組織成域層次結構的計算機和網絡服務命名系統,它用於TCP/IP網絡,它所提供的服務是用來將主機名和域名轉換為IP位址的工作。DNS就是這樣的一位「翻譯官」。
  • 註冊域名解析需要多久
    註冊域名解析需要多久?在域名狀態正常的情況下,域名解析的時間是很快的,一般在30分鐘左右生效。但是域名要普遍被搜索到,就要看整個網絡的DNS更新速度。所以,註冊域名一切正常的情況下,域名解析需要的時間以實際生效時間為準。
  • 詳解DNS 與 CoreDNS 的實現原理
    域名系統(Domain Name System)是整個網際網路的電話簿,它能夠將可被人理解的域名翻譯成可被機器理解 IP 地址,使得網際網路的使用者不再需要直接接觸很難閱讀和理解的 IP 地址。的地址之後會向頂級域名服務請求負責 dravenss.me.域名解析的命名服務;得到授權的 DNS 命名服務時,就可以根據請求的具體的主機記錄直接向該服務請求域名對應的 IP 地址;DNS 客戶端接受到 IP 地址之後,整個 DNS 解析的過程就結束了,客戶端接下來就會通過當前的 IP 地址直接向伺服器發送請求
  • 域名知識篇:域名DNS根域名伺服器背後的故事
    雖然網際網路是虛擬不可捉摸的,但DNS根域名伺服器就是支撐整個網際網路運作最重要的基礎設施之一。   何為DNS根伺服器?在網際網路上,一個網頁只和IP位址相對應,由於數字型的IP位址很難記住,所以訪問網絡時經常使用由一組字符組成的域名來表示IP位址。常見的域名有.com 、.cn等。而根DNS伺服器,就是最為權威的「號碼簿」。
  • 如何申請免費域名
    免費域名,其實是指免費二級域名或頂級域名,某些投資商通過註冊簡短的域名來提供免費二級域名或頂級域名服務,註冊者可以免費註冊一個格式為「XXX+二級的域名」或「XXX+頂級的域名」,然後利用這個格式去實現域名解析、域名轉發等服務功能。