【Linux】DNS協議——應用層

目錄

DNS協議

DNS背景

域名簡介

域名解析過程

使用dig工具分析DNS過程


DNS(Domain Name System,域名系統)協議,是一個用來將域名轉化為IP地址的應用層協議。

DNS背景

TCP/IP中通過IP地址和端口號的方式,來確定網絡中一個主機上的一個程序。但IP地址是一長串數字,并不便于人們記憶,于是人們發明了一種叫做主機名的東西,并用hosts文件夾來描述主機名和IP地址之間的對應關系。

最初,這個hosts文件是由互聯網信息中心(SRI-NIC)來管理的。

  • 如果一個新計算機要接入網絡,或者某個計算機IP變更,都需要到信息中心申請變更hosts文件。
  • 其他計算機也需要定期下載更新新版本的hosts文件才能正確上網。
  • 當用戶通過域名訪問互聯網服務時,會先通過域名在本地的hosts文件中找到其對應的IP地址,然后再用這個IP地址去訪問對應的服務。

但這樣太麻煩了,于是產生了DNS系統。

  • 由一個組織的系統管理機構,維護系統內的每個主機的IP和主機名的對應關系。
  • 如果新計算機要接入網絡,或者某個計算機IP變更,就需要將對應信息注冊到數據庫中。
  • 當用戶通過域名訪問互聯網服務時,會自動查詢DNS服務器,由DNS服務器檢索數據庫,得到對應的IP地址。

至今,我們的計算機上仍然保留了hosts文件,這個hosts文件當中一般存儲的是主機名與IP地址之間的映射,用戶也可以在hosts文件中自主添加域名和IP映射關系,在域名解析的過程中會優先查找hosts文件的內容。

通過cat /etc/hosts可以查看hosts文件當中的內容。

域名簡介

域名是用來識別主機名稱和主機所屬的組織機構的一種分層結構的名稱,例如www.baidu.com。?

  • com:一級域名,表示這是一個工商企業域名。同級的還有.net(網絡提供商)和.org(開源組織或非盈利組織)等。
  • baidu:二級域名,一般對應的就是公司名。
  • www:只是一種習慣用法,之前人們在使用域名時,往往命名成類似于ftp.xxx.xxx/www.xxx.xxx這樣的格式,來表示主機支持的協議。

域名解析過程

在瀏覽器中輸入url后,如果url當中包含域名,則需要進行域名解析。

  • 首先會在瀏覽器的DNS緩存中去查詢是否有對應的記錄,如果查詢到記錄就可以直接得到對應的IP地址,完成解析。
  • 如果在瀏覽器的DNS緩存中沒有找到,就會去查詢操作系統中的DNS緩存,如果查詢到對應的IP地址則完成解析。
  • 如果在操作系統的DNS緩存中沒有找到,就會去查找本地的hosts文件,如果查詢到對應的IP地址則完成解析。
  • 如果在本地的hosts文件中也沒有找到,就會去本地DNS服務器中查找。本地DNS服務器IP地址一般由本地網絡服務商提供,如電信、移動等公司,一般通過DHCP自動分配。目前使用的比較多的是谷歌提供的公用NDS 8.8.8.8和國內公用DNS 114.114.114.114。如果在本地DNS服務器中有對應域名的緩存,則直接返回對應的IP地址,完成解析。
  • 如果本地DNS服務器中仍然沒有找到,那么本地DNS服務器就會拿著域名去根DNS服務器中詢問,根DNS服務器會告訴本地DNS頂級域名服務器的IP地址。
  • 本地DNS拿到頂級域名服務器的IP地址后,就會拿著域名去找頂級DNS服務器,頂級域名服務器會告訴本地DNS權威域名服務器的IP地址。
  • 本地DNS服務器拿著域名去權威域名服務器中,查詢域名對應的IP地址,最終將該域名對應的IP地址返回給瀏覽器,此時整個域名解析過程就完成了。

使用dig工具分析DNS過程

我們可以使用dig工具來查看域名解析的過程,例如查看百度域名www.baidu.com的解析過程。

dig工具的分析結果如下:

結果解釋:

  • 開頭位置是dig工具的版本號。
  • 第二部分是服務器返回的詳情,其中status參數為NOERROR表示查詢成功。
  • QUESTION SECTION表示待查詢的域名。
  • ANSWER SECTION表示查詢的結果,首先www.baidu.com被查詢成了www.a.shifen.com,而最終www.a.shifen.com被查詢成了兩個具體的IP地址。
  • 最下面是一些結果統計,包含查詢時間和DNS服務器的地址等。

參考文獻:

http://t.csdn.cn/gwHLE

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/34855.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/34855.shtml
英文地址,請注明出處:http://en.pswp.cn/news/34855.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CAS服務端入門使用實踐

CAS服務端入門使用實踐 一、前言 1.簡介 CAS 是一個企業多語言單點登錄解決方案,支持大量附加身份驗證協議和功能,滿足身份驗證和授權需求的綜合平臺。 2.環境 Windows 10JDK 1.8git version 2.41.0.windows.3Tomcat 9.0.78Maven 3.5.3cas-overlay-…

【ARM 嵌入式 編譯系列 4.2 -- GCC 鏈接規范 extern “C“ 介紹】

文章目錄 extern "C" 介紹extern "C" 使用示例1.2.2 作用場景 上篇文章:ARM 嵌入式 編譯系列 4.1 – GCC 編譯屬性 likely與unlikely 學習 下篇文章:ARM 嵌入式 編譯系列 5 – GCC 內建函數 __builtin 介紹 extern “C” 介紹 exte…

輕轍視覺引擎以多種AI算法工具,助力紡織行業斷線檢測智能識別

近年來,人工智能技術在各行各業的應用愈發廣泛,機器視覺作為人工智能的重要分支,成為當下的研究熱點。機器視覺技術的發展,大幅提升了工業、農業、醫療等領域的效率和精度。尤其在工業領域,隨著智能制造的進一步發展&a…

stringstream常見用法

目錄 構造函數 輸出字符串 修改和清空字符串 利用 stringstream 去除字符串空格 利用stringstream去除指定的字符 stringstream 數據庫 <sstream> 構造函數 創建一個對象&#xff0c;向對象輸入字符串&#xff1a; string x"abcdefg";stringstream s…

Zookeeper與Kafka

Zookeeper與Kafka 一、Zookeeper 概述1.Zookeeper 定義2.Zookeeper 工作機制3.Zookeeper 特點4.Zookeeper 數據結構5.Zookeeper 應用場景6.Zookeeper 選舉機制 二、部署 Zookeeper 集群1.準備 3 臺服務器做 Zookeeper 集群2.安裝 Zookeeper3.拷貝配置好的 Zookeeper 配置文件到…

【Java】 java | git | win系統重裝會給開發環境帶來哪些問題

一、概述 1、近期發現電腦用起來不絲滑了&#xff0c;文件夾操作卡頓&#xff0c;一陣操作還會藍屏 2、不能忍&#xff0c;整理排查 二、電腦情況 1、CPU&#xff1a; I5-9400F 2.9GHz 6核 2、內存&#xff1a; 32G 3、固態&#xff1a;256G 4、機械&#xff1a;1T 5、盤符使用…

二叉樹的講解

&#x1f493;博主個人主頁:不是笨小孩&#x1f440; ?專欄分類:數據結構與算法&#x1f440; 刷題專欄&#x1f440; C語言&#x1f440; &#x1f69a;代碼倉庫:笨小孩的代碼庫&#x1f440; ?社區&#xff1a;不是笨小孩&#x1f440; &#x1f339;歡迎大家三連關注&…

詳解C語言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t

2023年8月8日&#xff0c;周二上午 目錄 為什么會產生int8_t、uint8_t等這類數據類型int8_t、uint8_t等這類數據類型有什么用頭文件int8_t、uint8_t等這類數據類型是怎么實現的 為什么會產生int8_t、uint8_t等這類數據類型 根本原因在于&#xff0c;C 語言標準只是規定了各個…

SQL | 匯總數據

9-匯總數據 9.1-聚集函數 在實際開發過程中&#xff0c;可能會遇到下面這些情況&#xff1a; 確定大于某個值的有多少行數據&#xff0c;比如游戲排行榜&#xff0c;查詢玩家排行多少名。 獲取表中某些行的和&#xff0c;比如雙十一當天&#xff0c;某個用戶總訂單價格是多少…

學習篇之React Fiber概念及原理

什么是React Fibber&#xff1f; React Fiber 是 React 框架的一種底層架構&#xff0c;為了改進 React 的渲染引擎&#xff0c;使其更加高效、靈活和可擴展。 傳統上&#xff0c;React 使用一種稱為堆棧調和遞歸算法來處理虛擬 DOM 的更新&#xff0c;這種方法在大型應用或者…

最強自動化測試框架Playwright(7)- 使用cookie避免重復登錄

playwright在稱為瀏覽器上下文的隔離環境中執行測試。這種隔離模型提高了可重復性&#xff0c;并防止了級聯測試失敗。測試可以加載現有的經過身份驗證的狀態。這消除了在每次測試中進行身份驗證的需要&#xff0c;并加快了測試執行速度。 每次測試前登錄 以下示例登錄到 Git…

談談什么是云計算?以及它的應用

作者&#xff1a;Insist-- 個人主頁&#xff1a;insist--個人主頁 作者會持續更新網絡知識和python基礎知識&#xff0c;期待你的關注 目錄 ?編輯 一、什么是云計算 二、云計算的優勢與劣勢&#xff1f; 1、云計算的優勢 ①提高資源利用率 ②提升效率 ③降低成本 2、云…

python編程基礎與案例集錦,python編程入門經典

大家好&#xff0c;本文將圍繞python編程基礎與案例集錦展開說明&#xff0c;python編程入門與案例詳解是一個很多人都想弄明白的事情&#xff0c;想搞清楚python入門程序例子需要先了解以下幾個事情。 【程序1】 題目&#xff1a;輸入一行字符&#xff0c;分別統計出其中英文字…

『CV學習筆記』Opencv和PIL Image以及base64編碼互相轉化

Opencv和PIL Image以及base64編碼互相轉化 文章目錄 一. opencv&PIL.Image&Skimage1.1. opencv-python讀取透明圖片(帶alpha通道)1.2. opencv、PIL.Image、Skimage讀取的彩色圖片維度區別1.3. opencv、PIL.Image轉換二. base64和cv2 imge互相轉換三. base64和PIL imge互…

射頻入門知識-混頻器-1

5.4混頻電路-視頻_嗶哩嗶哩_bilibili ???????

【算法題】螺旋矩陣II (求解n階Z形矩陣)

一、問題的提出 n階Z形矩陣的特點是按照之(Z)字形的方式排列元素。n階Z形矩陣是指矩陣的大小為nn&#xff0c;其中n為正整數。 題目描述 一個 n 行 n 列的螺旋(Z形)矩陣如圖1所示&#xff0c;觀察并找出填數規律。 圖1 7行7列和8行8列的螺旋(Z形)矩陣 現在給出矩陣大小 n&…

數據結構入門:棧

目錄 前言 1. 棧 1.1棧的概念及結構 1.2 棧的實現 1.2.1 棧的定義 1.2.2 棧的初始化 1.2.3 入棧 1.2.4 出棧 1.2.5 棧的元素個數 1.2.6 棧頂數據 1.2.7 棧的判空 2.棧的應用 2.1 題目一&#xff1a;括號匹配 2.1.1 思路 2.1.2 分析 2.1.3 題解 總結 前言 無論你是計算機科學專…

CVE漏洞復現-CVE-2021-22555 Linux Netfilter 權限提升漏洞

CVE-2021-22555 Linux Netfilter 權限提升漏洞 漏洞描述 近日&#xff0c;互聯網公開了Linux Netfilter權限提升漏洞的POC及EXP&#xff0c;相關CVE編號&#xff1a;CVE-2021-22555。該漏洞在kCTF中被用于攻擊kubernetes pod容器實現虛擬化逃逸&#xff0c;該漏洞已在Linux內…

用chatGPT從左右眼圖片生成點云數據

左右眼圖片 需求 需要將左右眼圖像利用視差生成三維點云數據 先問問chatGPT相關知識 進一步問有沒有現成的軟件 chatGPT提到了OpenCV&#xff0c;我們讓chatGPT用OpenCV寫一個程序來做這個事情 當然&#xff0c;代碼里面會有一些錯誤&#xff0c;chatGPT寫的代碼并不會做模…

Arduino驅動MQ2模擬煙霧傳感器(氣體傳感器篇)

目錄 1、傳感器特性 2、硬件原理圖 3、控制器和傳感器連線圖 4、驅動程序 MQ2氣體傳感器,可以很靈敏的檢測到空氣中的煙霧、液化氣、丁烷、丙烷、甲烷、酒精、氫氣等氣體,與Arduino結合使用,可以制作火災煙霧報警、液化氣、丁烷、丙烷、甲烷、酒精、氫氣氣體泄露報警等相…