DNS協議(一)


 

在互聯網上要想與另外一台主機通信,要知道對方的IP地址,但是IP地址是很難記憶的,

比如百度的一台服務器的IP地址為115.239.210.27,我們在瀏覽器中輸入http://115.239.210.27/就可以訪問百度了,但是如果訪問一個網站就要記住它的的IP是很蛋疼的事,人們習慣記住有意義的字符串,比如baidu

 

域名系統(英文Domain Name System縮寫:DNS)是因特網的一項服務。它作為將域名IP地址相互映射的一個分布式數據庫,能夠使人更方便的訪問互聯網DNS 使用TCPUDP端口53

 

DNS服務是如何實現的呢?

首先我們的電腦里面都會有一個DNS服務器(Name Server)的IP地址,可以手動設置也可以自動獲取,有名的DNS服務器包括google8.8.8.8 阿里巴巴的223.5.5.5等,查看自己電腦的DNS服務器的IP地址可以在windows命令行下輸入ipconfig /all,在linux下面則通過more /etc/resolv.conf查看。

 

客戶端發起訪問請求www.163.com:

1.查看本地hosts文件,發現沒有www.163.com IP 映射關系,將請求發送給本地DNS服務器( ----遞歸查詢----)                          

2.本地DNS服務器不包含163.com的權威域,不存在對應的www記錄,因此將請求轉發到根域名服務器(假如  a.root-servers.net.)   

3.根域名DNS服務器會返回負責.com域解析的服務器(假如 a.gtld-servers.net.)給本地DNS服務器,本地DNS服務器再將請求發送給 a.gtld-servers.net                                  

4..com域名服務器只能返回負責163.com域的解析服務器(如 ns1.nease.net.)給本地DNS服務器,本地DNS服務器再將請求發送給ns1.nease.net.                                

5.ns1.nease.net.域名服務器返回www.163.com 的 IP映射關系給本地DNS服務器

                         (2-5過程)----迭代查詢----

6.本地DNS服務器將結果保存到本地緩存,並保持TTL時間,同時將結果應答給客戶端.                                

7.當其他客戶端再次向本地DNS服務器查詢www.163.com時,在TTL時間內,本地DNS服務器不再向根域名服務器轉發請求,而是直接從緩存中讀取數據應答給客戶端如果已經超過TTL時間,則本地DNS服務器會再次經歷一次上訴2-6的過程.

 

 

 

 

 

以后會結合Wireshark分析DNS報文的每個字段詳細意思,以及DNS查詢的其它細節問題。

 

【參考文獻】

http://magic3.blog.51cto.com/1146917/1354084

http://www.360doc.com/content/11/0809/17/706976_139190573.shtml

http://zh.wikipedia.org/zh/域名系統

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM