偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

扒一扒 DNS 的前世今生

網絡 網絡管理
簡單來說,DNS(域名系統)就是域名和各種數據之間的一個映射表。最常見的映射就是把像?chatgpt.com?這樣的域名轉換成電腦能懂的IP地址。

今天給大家科普一下關于DNS的相關知識,講一講一個網址背后發(fā)生的一些故事。

簡單來說,DNS(域名系統)就是域名和各種數據之間的一個映射表。最常見的映射就是把像 chatgpt.com 這樣的域名轉換成電腦能懂的IP地址。

當你把 chatgpt.com 敲進瀏覽器時,DNS 就會出馬,找到并返回這個域名綁定的 IP 地址:

圖片圖片

當然啦,這背后發(fā)生了很多事。在這篇文章里,我們就來扒一扒它到底是怎么運作的。

我希望這篇文章能比 ChatGPT 或者 DeepSeek 講得還好懂,要是連它們都能寫得比我好,那我就太失敗了!

好了,閑話少說,咱們開始吧。

DNS 誕生之前

在深入 DNS 之前,咱先看看它出現之前是啥情況。

在 80 年代現代互聯網出現之前,有個叫ARPAnet的玩意兒。它是當時第一個分組交換網絡,算是現代互聯網的老祖宗。

ARPAnet 用一個叫HOSTS.TXT的文件,把服務器的域名和網絡地址(也就是 IP 地址)對應起來。

這個文件大概長這樣:

# 官方 ARPANET 主機表 (hosts.txt)
# 格式:<IP 地址>    <主機名>    [別名]    # [注釋]

10.0.0.6    mit-ai        # MIT 人工智能實驗室
10.0.0.7    sri-nic       # SRI 網絡信息中心
10.0.0.11   ucla-seismo   # 加州大學洛杉磯分校 地震學系
10.0.0.13   berkeley      # 加州大學伯克利分校
10.0.0.14   stanford      # 斯坦福大學

# 別名 (可選項,跟在主機名后面)
10.0.0.6    mit           mit-ai

這個“主” HOSTS.TXT 文件就一份,由斯坦福研究所 (SRI) 獨家維護。這慢慢就出問題了,為啥呢?

  • 流量和服務器壓力山大:所有設備都得找 SRI 的服務器查名字,SRI 服務器快被壓垮了。
  • 名字撞車越來越頻繁:網絡變大了,大家想用的好名字就那些,沖突越來越多。
  • 文件變得巨胖:文件大小漲到了 100-200KB?,F在看這點數據不算啥,但在 80 年代的基礎設施條件下,這已經是個大瓶頸了。

這些問題可太要命了,直接催生了 DNS 的誕生。

DNS登場

DNS 架構

DNS (域名系統)最好理解成一個分布式的和層次化的系統。

啥意思呢?

  • 分布式:意思是 DNS 運行在好多臺互相連接的服務器(也就是 DNS 服務器)上。
  • 層次化:DNS 組織成一個樹狀結構,上面的服務器管著下面的服務器。等會兒講到 DNS 區(qū)域時再細說。

DNS 記錄

現在我們知道了,DNS 就是一堆服務器按樹狀結構組織起來,互相通信。那這些服務器存啥呢?

DNS 服務器存的就是DNS 記錄。看個例子:

# DNS 記錄結構
# 域名              TTL(秒)  類別  類型     數據
example.com.        3600     IN    A       93.184.216.34
www.example.com.    3600     IN    CNAME   example.com.
example.com.        3600     IN    MX      10 mail.example.com.
mail.example.com.   3600     IN    A       93.184.216.50
example.com.        3600     IN    TXT     "hello world"

來詳細掰扯掰扯每個字段是啥意思:

  • 域名:就是互聯網上的域名,比如 chatgpt.com。注意結尾那個點 . 表示根域(通常可以省略)。
  • TTL:生存時間(單位秒)。意思是這個記錄你能在本地緩存多久,過期了就得去問權威服務器要新的。
  • 類別:這玩意兒基本總是IN,代表“互聯網” (Internet)。還有別的類,像CH或HS,但現在基本不用了。
  • 類型:代表這條記錄存的是哪類數據。最常見的類型有:

A:代表一個IPv4 地址。

AAAA:代表一個IPv6 地址。

CNAME:意思是規(guī)范名稱,就是給另一個域名起個別名。

MX:郵件交換器,指定誰來收這個域名的郵件(后面跟優(yōu)先級,數字越小越優(yōu)先)。

TXT:文本記錄,可以存任意文本(比如驗證信息、安全策略啥的)。

  • 數據:你要查的那個信息的真身。具體是啥完全取決于類型字段。

DNS 區(qū)域

還記得我們說 DNS 是個大樹嗎?

那么,一個 DNS 區(qū)域就可以代表整棵樹、樹的一個分支、或者樹里的一個節(jié)點。

在下面的示意圖里,我圈出了兩個分支,標為區(qū)域1和區(qū)域2。不過區(qū)域怎么劃分其實挺隨意的。

圖片圖片

關鍵點在于:位于一個區(qū)域根部的那個 DNS 服務器,負責管理它下面的所有服務器。比如,example.com 這個服務器就管著 hello 和 world(如果它們是子域的話)。

DNS 服務器

“DNS 服務器”這個詞用得很寬泛,這也是我學 DNS 時最暈乎的地方之一。

簡單說,任何運行 DNS 軟件的服務器都可以叫 DNS 服務器。但有四種核心角色你必須知道:

  1. 權威域名服務器:這些服務器存著它們負責的DNS 區(qū)域里所有域名的官方 DNS 記錄。比如 .com 的權威服務器就存著所有以 .com 結尾網站的記錄。
  2. 遞歸解析器:一個專門幫客戶(比如你的電腦)查找 DNS 信息的程序,還會把結果緩存起來。比如客戶說“我要訪問 www.example.com”,遞歸解析器就把復雜的查詢過程全包了,最后直接給你返回 example.com 的正確 IPv4 地址(A 記錄)。你的路由器或 ISP(像電信、聯通)提供的 DNS 服務器通常就干這個活。
  3. 緩存服務器:專門用來存之前查過的 DNS 結果,這樣下次再問就能飛快地給答案。
  4. 轉發(fā)器:它自己不去查,而是把收到的 DNS 查詢請求 轉給另一個能查的服務器(通常就是個遞歸解析器)去處理。

一臺物理上的 DNS 服務器可以同時干好幾樣活。比如,一個遞歸解析器通常也自帶緩存功能(也就是緩存服務器)。

DNS 查詢實例

術語講夠了,讓我們看個動圖(腦補一下)!看看這一切是怎么配合工作的,舉個栗子??:一個客戶端第一次查詢 hello.world.com 的 IP 地址(A 記錄)。

圖片圖片

請求內容是:A hello.world.com? (意思就是:hello.world.com 的 IP 是啥?)


注意:存根解析器(Stub Resolver)不算真正的 DNS 服務器,它就是你電腦操作系統里一個簡單的 DNS 客戶端,負責跟你配置的 DNS 服務器(通常是路由器或 ISP 的)對話。路由器這時通常就扮演轉發(fā)器的角色。

接下來,就要進行遞歸 DNS 查詢了。過程大概是這樣的:

  1. 客戶端問路由器/本地DNS:“嘿,hello.world.com 的 IP 是啥?” (本地沒緩存)。
  2. 本地DNS(遞歸解析器)開始干活:
  • 先看看自己緩存里有沒有,沒有。
  • 跑去問根域名服務器:“.com 該找誰管???”
  • 根服務器回復:“.com 的事歸這些 TLD 服務器(頂級域服務器)管,地址是 X.X.X.X”。
  1. 問 .com TLD 服務器:“world.com 該找誰管???”
  • .com TLD 服務器回復:“world.com 歸這些權威服務器管,地址是 Y.Y.Y.Y”。
  1. 問 world.com 權威服務器:“hello.world.com 的 IP 是啥?”
  • world.com 的權威服務器回復:“在這兒呢,hello.world.com 的 A 記錄是143.54.1.8”。
  1. 結果返回與緩存:
  • 遞歸解析器拿到最終答案 143.54.1.88,開心地把它返回給客戶端(一路經過路由器)。
  • 這個結果會一路被緩存:ISP 的解析器會緩存它,你的路由器(如果支持)也可能會緩存,你的電腦操作系統也會緩存。緩存多久?看記錄的 TTL 值,通常幾小時到幾天不等(比如 1 到 72 小時)。
  1. 連接建立:客戶端瀏覽器拿到 IP 地址 143.54.1.88,終于可以向這個地址發(fā)送 HTTP 請求加載網頁了。

圖片圖片

結語

DNS 這玩意兒挺繞的,倒不是因為它本身多難,而是因為要搞懂的東西實在有點多。

即使有了這些概念解釋和實例演示,我們也只是掀開了 DNS 世界的一角。它在現實世界中能干的事和帶來的影響,遠比我們這里講的要豐富和深遠得多。

責任編輯:武曉燕 來源: 程序員新世界
相關推薦

2018-07-30 15:49:12

2022-07-11 20:46:39

AQSJava

2019-10-21 10:59:52

編程語言JavaC

2019-09-10 07:29:44

2018-04-03 15:42:40

2023-01-30 22:10:12

BeanSpring容器

2019-02-25 22:46:39

2020-01-15 15:29:52

InnoDB數據硬盤

2015-09-16 14:04:06

大數據巨頭

2023-04-10 23:05:54

NacosOpenFeignRibbon

2015-10-15 13:38:39

2015-08-18 09:12:54

app推廣渠道

2019-01-03 11:09:19

2015-09-21 10:07:31

2015-09-16 14:11:47

2017-09-07 18:45:51

C#

2022-09-30 09:40:39

智能汽車

2025-04-30 07:26:04

2014-07-30 10:55:27

2015-11-18 14:14:11

OPNFVNFV
點贊
收藏

51CTO技術棧公眾號