切換
舊版
前往
大廳
主題

DNS(Domain Name System)的運作

默思 | 2017-02-08 15:21:40 | 巴幣 2 | 人氣 1045

最近把買好久的<奮鬥吧!系統工程師>第12集看完了,這本有介紹到DNS的運作,讓我回憶起大一上網路概論的記憶...

不過當初老師教的其實是很簡單的概念,內部比較詳細的流程並沒有介紹到(當然也有可能是我忘了),所以就來記錄一下DNS的流程

首先,DNS有分為Recursive(遞迴)和Iterative(迭代)共兩種的詢問方式

Recursive:
通常是Client使用,Client透過Resolver程式丟出向DNS伺服器查詢的請求,之後只要翹著二郎腿等DNS伺服器回應要查詢的IP就行了

Iterative:
通常是DNS伺服器與伺服器之間溝通的方式,向其它DNS伺服器丟出查詢請求,收到回覆後的結果可能並不是我所要查詢的IP,而是其它的DNS伺服器

接下來看圖會比較好理解,下圖舉查詢www.google.com.tw為例:


1. Client拋出查詢請求,向ISP業者的快取伺服器查詢,若快取伺服器裡有Client要的IP就直接回傳,若無,則向根伺服器(Root)查詢,另外,Client請求查詢的方式是使用Recursive
2. 若無資料,快取伺服器得向google.com.tw查詢,但是不知道主機在哪,故向根伺服器查詢其下游網域的情報,透過如上圖一層一層的詢問,最後查到google.com.tw的主機位置

大致上的流程差不多是這樣,透過這樣階層式的架構使DNS伺服器只要保留最低限度的資訊即可

另外再補充幾點:
1. 大部分的DNS伺服器支援Recursive和Iterative,除了根伺服器不支援Recursive,這是為了減輕伺服器的負擔
2. 為何需要快取伺服器而不直接透過Client連上根伺服器?理由同1,減輕負擔
3. 快取伺服器同時又被稱為Recursive Server

創作回應

更多創作