簡介:DNS(Domain Name System,域名系統),因特網上作爲域名和IP地址相互映射的一個分佈式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。DNS協議運行在TCP與UDP協議之上,使用端口號53。
正文:
DNS是由C/S架構的,由服務端提供數據解析的工作,客戶端接受解析的最終結果。
DNS是將一個服務端的IP地址映射成一個域名,然後客戶端訪問域名的時候會由服務端去解析這個域名的IP地址是多少,以此來通過域名訪問互聯網。而DNS服務器是由不同級別的域服務器來完成不通級別的域之間的解析的。
結構解析:
客戶端 >> DNS解析服務器 >> 根服務器 >> 一級域服務器 >> 二級域服務器 >> 主機
由以上可以看出,最頂級的爲根服務器,然後是一級域服務器,再接二級域服務器,最後纔到達需要訪問的主機,這裏根服務器只做一級域解析,一級域只做二級域解析,以此類推,每個域服務器只管自己的一部分,不做詳細的解析工作。
根服務器:根服務器是全球解析的服務器,根服務器是一個點(.)一般是被省略的,根服務器直接管理一級域服務器,不做直接的域名解析,只做一級服務器的分配解析,如果你需要訪問一個沒有訪問過的域名,都會先去找根服務器,但是如果不訪問外部互聯網的話,也可以不需要用到根服務器。
客戶端會發送消息給DNS解析服務器,由解析服務器訪問根服務器,然後根服務器解析域名給出一級域服務器地址。www.baidu.com.這個域名的一級域爲com,需要轉交給com域服務器,然後DNS會去找com服務器
一級域服務器:一級域是由根域直接管理的,意思就是根域會根據一級域是什麼而分配下一跳的域解析服務器爲哪個。
一級域:
組織域:.com,.org,.net,.mil,.edu,.gov,前期一共七個。 現在新增:.info,.cc,.me,.tv,由IANA管理
國家域:.cn,.us,.uk,.jp,.tw,.hk,.iq,ir,由各國DNS服務商管理
一級域服務器接受域名之後也會分析這個是不是歸自己管的先,如果不是會讓DNS解析服務器重新去找根,如果是就會分析域名,分配匹配的二級域IP給DNS解析服務器,然後DNS解析服務器會去找二級域服務器
二級域服務器:二級域是由一級域管理的,一級域會根據域名前面的字段分析來分配下一條的地址。
二級域服務器是baidu,他會查看下www是不是自己內部的域名,如果有那就會跟DNS服務器說這個域名是我這的,將這個域名的主機IP發給DNS服務器
經過根服務器 》 一級域服務器 》 二級域服務器 》最後DNS服務器獲得了目的地主機的IP地址,會將這個IP地址保存到DNS服務器的緩存中,並且將主機地址發送給客戶端,客戶端會根據DNS服務器發送的目的地IP地址訪問主機。
-------------------------------------------------------------------------------------
至此,DNS服務的原理應該已經說了一遍了,但是DNS服務還有一些說明。
1、如果本地主機已經有了目的地地址的緩存將會直接根據本地緩存訪問,如果緩存地址錯誤的話,只能等緩存被清除之後纔會重新去訪問DNS服務器,要求服務器解析地址來獲取目的地地址。一般緩存清除爲2小時左右。
2、如上,DNS服務器也擁有自己的地址緩存,如果緩存地址錯誤要等待緩存清除然後重新解析才能獲得地址。一般緩存清除爲2小時左右。
3、DNS服務的訪問關係,客戶端訪問DNS服務器爲遞歸,DNS服務器必須給客戶端一個結果。而DNS服務器訪問個個域服務器爲迭代(die dai)由各個域服務器給出下一跳地址,然後由DNS服務器去訪問各個域服務器地址然後解析出最後的目的地主機IP地址
---------------------------------------------------------------------------------------
DNS服務示意圖: