【Linux網絡與網絡編程】15.DNS與ICMP協議

1. DNS

1.1 DNS介紹

TCP/IP 中使用 IP 地址和端口號來確定網絡上的一臺主機的一個程序,但是 IP 地址不方便記憶,于是人們發明了一種叫主機名的字符串,并使用 hosts 文件來描述主機名和 IP 地址的關系。最初, 通過互連網信息中心(SRI-NIC)來管理這個 hosts 文件的。

但是如果一個新計算機要接入網絡或者某個計算機 IP 變更,都需要到信息中心申請變更 hosts 文件。其他計算機也需要定期下載更新新版本的 hosts 文件才能正確上網,這樣就太麻煩了,于是產生了 DNS 系統。一個組織的系統管理機構,維護系統內的每個主機的 IP 和主機名的對應關系。如果新計算機接入網絡,將這個信息注冊到數據庫中。當用戶輸入域名時,會自動查詢 DNS 服務器,由 DNS 服務器檢索數據庫,得到對應的 IP 地址。至今, 我們的計算機上仍然保留了 hosts 文件,在域名解析的過程中仍然會優先查找 hosts 文件的內容。

DNS是基于UDP協議的一整套從域名映射到IP的系統。?

1.2 域名解析過程

如上圖所示,域名結構是樹狀結構,樹的最頂端代表根服務器,根的下一層就是由我 們所熟知的.com、.net、.cn 等通用域和.cn、.uk 等國家域組成,稱為頂級域。網上注冊的域名基本都是二級域名,比如 http://baidu.com、http://taobao.com 等等二級域 名,它們基本上是歸企業和運維人員管理。

1.3 使用dig工具分析DNS過程

caryon@ALiClode:~$ dig www.baidu.com; <<>> DiG 9.18.30-0ubuntu0.24.04.2-Ubuntu <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7183
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.baidu.com.			IN	A;; ANSWER SECTION:
www.baidu.com.		916	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	61	IN	A	220.181.111.1
www.a.shifen.com.	61	IN	A	220.181.111.232;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Tue Jun 24 20:39:12 CST 2025
;; MSG SIZE  rcvd: 101

1.4 DNS緩存

在 Windows 系統中,可以使用 ipconfig /displaydns 命令來查看系統級別的 DNS 緩存

瀏覽器中輸入url后發生的事情有什么?

1. 瀏覽器會將url解析出協議類型、域名、端口號和請求的資源所在路徑。

2. DNS會對域名經行解析,先在緩存中查找,如果沒有就要從根域名進行解析,將其轉換為IP

3. 瀏覽器通過三次握手與服務器建立TCP連接,如果是https協議還需要進行TLS握手

4. 到此,瀏覽器就可以向服務端發起http請求

5. 服務端對瀏覽器的請求做出應答

6. 瀏覽器根據服務端的應答對界面做出渲染

2. ICMP協議

一個新搭建好的網絡,往往需要先進行一個簡單的測試來驗證網絡是否暢通,但是 IP 協議并不提供可靠傳輸,如果丟包了,IP 協議并不能通知傳輸層是否丟包以及丟包的原因。ICMP 協議正是一個提供這種檢測功能的網絡層協議

ICMP協議可以確認 IP 包是否成功到達目標地址或者通知在發送過程中 IP 包被丟棄的原因。ICMP 也是基于 IP 協議工作的,但是它并不是傳輸層的功能,因此人們仍然把它歸結為網絡層協議。ICMP 只能搭配 IPv4 使用,如果是 IPv6 的情況下,需要使用 ICMPv6

2.1 ICMP的報文格式

ICMP 大概分為兩類報文: 一類是通知出錯原因? ?一類是用于診斷查詢

2.2 ping命令

caryon@ALiClode:~$ ping baidu.com
PING baidu.com (182.61.201.211) 56(84) bytes of data.
64 bytes from 182.61.201.211: icmp_seq=1 ttl=54 time=6.60 ms
64 bytes from 182.61.201.211: icmp_seq=2 ttl=54 time=6.59 ms
64 bytes from 182.61.201.211: icmp_seq=3 ttl=54 time=6.60 ms
64 bytes from 182.61.201.211: icmp_seq=4 ttl=54 time=6.58 ms
^C
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 6.582/6.593/6.604/0.009 ms

ping 命令不光能驗證網絡的連通性,同時也會統計響應時間和 TTL(IP 包中的 Time To Live, 生存周期)。

ping命令的工作原理

ping命令是基于ICMP協議的。ping 命令會先發送一個 ICMP Echo Request 給對端,對端接收到之后會返回一個 ICMP Echo Reply

2.3?traceroute 命令

traceroute 命令也是基于 ICMP 協議實現,能夠打印出可執行程序主機,一直到目標主機之前經歷多少路由器。

caryon@ALiClode:~$ traceroute baidu.com
traceroute to baidu.com (182.61.244.181), 30 hops max, 60 byte packets1  10.92.211.46 (10.92.211.46)  0.625 ms  0.653 ms 10.92.209.70 (10.92.209.70)  0.753 ms2  11.73.19.161 (11.73.19.161)  1.622 ms 11.73.19.137 (11.73.19.137)  11.829 ms 11.73.75.182 (11.73.75.182)  5.736 ms3  10.102.242.177 (10.102.242.177)  0.900 ms 10.216.138.42 (10.216.138.42)  9.601 ms 10.216.138.186 (10.216.138.186)  1.676 ms4  10.216.223.218 (10.216.223.218)  1.945 ms * 10.216.231.238 (10.216.231.238)  2.225 ms5  10.102.155.110 (10.102.155.110)  2.145 ms 10.102.154.230 (10.102.154.230)  2.866 ms 116.251.112.189 (116.251.112.189)  2.511 ms6  * * *7  61.148.154.113 (61.148.154.113)  3.996 ms 125.33.185.101 (125.33.185.101)  3.825 ms  3.600 ms8  bt-229-110.bta.net.cn (202.106.229.110)  4.319 ms 61.51.114.190 (61.51.114.190)  4.461 ms 61.51.114.198 (61.51.114.198)  4.690 ms9  220.206.193.182 (220.206.193.182)  5.410 ms 220.206.193.186 (220.206.193.186)  5.500 ms 220.206.193.182 (220.206.193.182)  5.882 ms
10  * 182.61.255.70 (182.61.255.70)  5.472 ms 182.61.255.74 (182.61.255.74)  6.164 ms
11  182.61.255.101 (182.61.255.101)  22.522 ms 182.61.217.169 (182.61.217.169)  22.098 ms 182.61.238.157 (182.61.238.157)  21.677 ms
12  182.61.251.166 (182.61.251.166)  21.462 ms 182.61.250.228 (182.61.250.228)  27.591 ms 182.61.250.232 (182.61.250.232)  37.304 ms
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

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

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

相關文章

Python打卡:Day35

復習日 浙大疏錦行

GoAdmin代碼生成器實踐

文章目錄 前言創建SQL表格使用在線生成工具應用自動生成的代碼數據變更時附加新的邏輯總結 前言 開源項目 go-admin&#xff0c;我一直用的是這個地址 https://github.com/GoAdminGroup/go-admin&#xff0c;不過最近發現了一個 Gin Vue 版本的 go-admin&#xff0c;對我解決…

web布局13

在 CSS 中有很多種類型的函數&#xff0c;其中可用于尺寸屬性的函數主要有 calc() 、min() 、max() 、clamp() 等。這些 CSS 函數都可用來設置網格軌道尺寸&#xff0c;除此之外&#xff0c;還有一些專門用于設置網格軌道的函數&#xff0c;比如 repeat() 、minmax() 和 fit-co…

pdf轉圖片(png,jpg)的python腳本

pdf轉圖片&#xff08;png&#xff0c;jpg&#xff09;的python腳本 PDF轉圖片工具 1.安裝庫 pip install pymupdf 2.如果需要pdf轉jpg的更改DEFAULT_FORMAT即可 3.一定注意要將腳本與待轉化的.pdf文件放在同一個目錄 4.運行腳本&#xff0c;將腳本所在目錄所有.pdf文件轉…

大模型本地部署,擁有屬于自己的ChatGpt

ChatGpt 以其強大的信息整合和對話能力驚艷了全球,在自然語言處理上面表現出了驚人的能力。不管用于文案撰寫還是程序輔助開發都大大提高了我們的工作效率,但是其使用有一定的門檻,讓我們大多數人都望而卻步,今天我們利用ollama實現本地大模型的步驟,讓我們輕松擁有自己的…

【mcu】-老舊小區門禁電話改造指南

老舊小區門禁電話改造指南(四線制DIY方案) 一、明確四根線的功能(關鍵第一步) 通常四線制門禁電話的線纜定義如下(需用萬用表驗證): 線色 常見功能 電壓/信號類型 檢測方法 紅線 電源正極(+12V) DC 12V(待機) 萬用表直流檔測對黑線電壓 黑線 電源負極(GND) 0V 與…

word中如何快速打出上標?

在 Microsoft Word 中快速輸入上標的方法有以下幾種&#xff0c;推薦掌握 鍵盤快捷鍵法&#xff08;最常用高效&#xff09;&#xff1a; ? 方法一&#xff1a;快捷鍵法&#xff08;強烈推薦&#xff0c;效率最高&#xff01;&#xff09; 輸入需要上標的文字/數字&#xff0…

如何優化HarmonyOS 5的分布式通信性能?

以下是針對HarmonyOS 5分布式通信性能優化的系統性方案&#xff0c;結合核心技術特性與實踐經驗&#xff1a; 一、傳輸層優化 數據壓縮與批處理 // 啟用ZLIB壓縮&#xff08;>1KB自動壓縮&#xff09; DistributedConfig config new DistributedConfig.Builder().setCom…

Matplotlib圖像處理三劍客:imshow(), imread(), imsave()

Matplotlib是Python中最著名的數據可視化庫之一&#xff0c;它不僅能夠繪制各種統計圖表&#xff0c;還提供了強大的圖像處理功能。本文將重點介紹Matplotlib中三個核心的圖像處理方法&#xff1a;imshow()、imread()和imsave()&#xff0c;通過示例代碼展示它們的使用方法。 …

[特殊字符]防止 MyBatis-Plus 中模糊查詢 `%` 查出全表:實現通配符轉義攔截器

目錄標題 ?為什么需要轉義 % 和 _&#x1f9ea; 使用案例&#xff1a;防止傳入 % 導致全表查詢&#x1f3af; 支持哪些場景&#xff1f;? 攔截器實現思路&#x1f9e9; 核心攔截器代碼實現&#x1f510; 可選忽略某些 SQL 的轉義 ?為什么需要轉義 % 和 _ 在使用 MyBatis-Pl…

linux grep的一些坑

grep -a "commit" a.log 可以獲取到所有的數據&#xff08;可以看到a.log所有的commit關鍵詞&#xff09; 但cat a.log|grep "commit" 無法全部獲取到&#xff08;只能看到a.log中部分的的commit&#xff09; 細分析和可能原因&#xff1a; 1. 二進制文件…

牛客 AI 面試 Ultra 版升級:開啟招聘新紀元

每到招聘季&#xff0c;HR 們便陷入繁忙與焦慮。海量簡歷篩選耗費大量人力&#xff0c;初步面試耗費數周時間&#xff0c;好不容易安排好面試官與候選人時間&#xff0c;又可能因各種意外狀況打亂節奏。而牛客 AI 面試 Ultra 版恰似一束光&#xff0c;照亮了招聘流程優化的道路…

OSS與NAS混合云存儲架構:非結構化數據統一管理實戰

AI訓練集管理面臨的核心挑戰&#xff1a;數據規模爆炸式增長與訪問模式多樣化的矛盾。ImageNet等典型數據集已達150TB規模&#xff0c;傳統單一存儲方案面臨三重困境&#xff1a; NAS在PB級場景下硬件成本呈指數增長OSS對象存儲無法滿足高頻隨機訪問需求跨存儲數據訪問導致訓練…

72、單元測試-常用測試注解

72、單元測試-常用測試注解 在單元測試中&#xff0c;常用的測試注解可以幫助組織和管理測試代碼&#xff0c;提高測試的可讀性和可維護性。以下是JUnit和TestNG框架中一些常用的測試注解及其功能&#xff1a; #### JUnit注解 1. **Test** - 標記一個方法為測試方法。 - 可以設…

強化學習在大型語言模型訓練中的最新進展:開源項目深度分析報告

強化學習在大型語言模型訓練中的最新進展&#xff1a;開源項目深度分析報告 引言 近年來&#xff0c;人工智能領域見證了大型語言模型(LLM)的迅速崛起&#xff0c;而強化學習作為機器學習的重要分支&#xff0c;在提升LLM推理能力方面展現出巨大潛力。隨著OpenAI發布o1等推理…

微服務:服務治理

簡單描述這個過程&#xff1a; 生產者與消費者之間的供需關系僅憑這兩者很難有效維持&#xff0c;比如某個消費者掛掉了&#xff0c;而生產者并不知道&#xff0c;就會依然給掛掉的消費者提供內容&#xff0c;那么此時的內容明顯就是未獲取到的&#xff0c;從而出現輸出問題。…

關于數據編碼、進制、位運算的詳細講解(從屬GESP三級)

本章內容 數據編碼基礎 進制轉換 位運算基礎 別讓符號位絆住你的步伐&#xff0c;掌握補碼&#xff0c;讓加減法都成為加法。 一、 數據編碼基礎 目標&#xff1a;掌握 原碼 / 反碼 / 補碼 的定義與互轉、常見進制&#xff08;2 / 8 / 10 / 16&#xff09;互化方法&#x…

實戰項目8(11)

任務場景一 按照下圖完成網絡拓撲搭建和配置 任務要求&#xff1a; 1、根據個人模擬器情況&#xff0c;將各交換機的MAC地址標注在拓撲圖中&#xff0c;并將結果進行截圖。 把每個交換機的這個復制粘貼出來【如上圖綠色標記的】 【SW1】配置 dis stp 【SW2】配置 dis stp 【…

儲能系統的離網,并網,構網,跟網 簡介

一、并網&#xff08;Grid-Connected&#xff09; ? 定義&#xff1a;PCS輸出與公共電網并聯運行&#xff0c;電網主導電壓和頻率&#xff0c;PCS按設定的有功/無功功率注入電網。 ? 特點&#xff1a; 電網存在、電壓頻率穩定 PCS僅作為電源“從機”&#xff0c;不能主導電壓…

Solr 初始環境搭建(Windows)

前言 Apache Solr 是一個開源的、基于 Java 的企業級搜索平臺&#xff0c;構建在 Apache Lucene 之上&#xff0c;提供了強大的全文檢索、分布式搜索、索引管理、高亮顯示、分面搜索等功能。它被廣泛應用于電子商務、內容管理系統&#xff08;CMS&#xff09;、數據分析和大規模…