看這位“翻譯官-DNS”如何轉換域名和IP地址
DNS( Domain Name System)是“域名系統”的英文縮寫,是一種組織成域層次結構的計算機和網路服務命名系統,它用於TCP/IP網路,它所提供的服務是用來將主機名和域名轉換為IP地址的工作。你可以把它想象成一本巨大的電話簿。 |
DNS( Domain Name System)是“域名系統”的英文縮寫,是一種組織成域層次結構的計算機和網路服務命名系統,它用於TCP/IP網路,它所提供的服務是用來將主機名和域名轉換為IP地址的工作。你可以把它想象成一本巨大的電話簿。
舉例來說,如果你要訪問域名math.stackexchange.com,首先要透過DNS查出它的IP地址是151.101.129.69。
DNS就是這樣的一位“翻譯官”,它的基本工作原理可用下圖來表示:
域名系統作為一個層次結構和分散式資料庫,包含各種型別的資料,包括主機名和域名。DNS資料庫中的名稱形成一個分層樹狀結構稱為域名稱空間。
根域:DNS域名使用中規定由尾部句點'.'來指定名稱位於根或者更高層次的域層次結構。
頂級域:用來指示某個國家、地區或者組織。採用三個字元,如com -> 商業公司,edu -> 教育機構,net -> 網路公司,gov -> 非軍事政府機構等等。
二級域:個人或者組織在Internet使用的註冊名稱。採用兩個字元,如:cn -> 代表中國,jp -> 日本,uk -> 英國,hk -> 香港等等。
主機:主機名處於域名空間結構中的最底層,主機名和域名結合構成FQDN,主機名是FQDN最左端的部分。
DNS是應用層協議,事實上他是為其他應用層協議工作的,包括不限於HTTP和SMTP以及FTP,用於將使用者提供的主機名解析為IP地址。
具體過程如下:
①使用者主機上執行著DNS的客戶端,就是我們的PC機或者手機客戶端執行著DNS客戶端了。
②瀏覽器將接收到的url中抽取出域名欄位,就是訪問的主機名,比如,並將這個主機名傳送給DNS應用的客戶端。
③DNS客戶機端向DNS伺服器端傳送一份查詢報文,報文中包含著要訪問的主機名欄位(中間包括一些列快取查詢以及分散式DNS叢集的工作)。
④該DNS客戶機最終會收到一份回答報文,其中包含有該主機名對應的IP地址。
⑤一旦該瀏覽器收到來自DNS的IP地址,就可以向該IP地址定位的HTTP伺服器發起TCP連線。
DNS服務的作用:把域名解析為IP地址,將IP地址解析為域名。
假設執行在使用者主機上的某些應用程式(如Webl瀏覽器或者郵件閱讀器)需要將主機名轉換為IP地址。這些應用程式將呼叫DNS的客戶機端,並指明需要被轉換的主機名。(在很多基於UNIX的機器上,應用程式為了執行這種轉換需要呼叫函式gethostbyname())。使用者主機的DNS客戶端接收到後,向網路中傳送一個DNS查詢報文。所有DNS請求和回答報文使用的UDP資料包經過埠53傳送(至於為什麼使用UDP,請參看為什麼域名根伺服器只能有13臺呢? - 郭無心的回答)經過若干ms到若干s的延時後,使用者主機上的DNS客戶端接收到一個提供所希望對映的DNS回答報文。這個查詢結果則被傳遞到呼叫DNS的應用程式。因此,從使用者主機上呼叫應用程式的角度看,DNS是一個提供簡單、直接的轉換服務的黑盒子。但事實上,實現這個服務的黑盒子非常複雜,它由分佈於全球的大量DNS伺服器以及定義了DNS伺服器與查詢主機通訊方式的應用層協議組成。
DNS的一種簡單的設計模式就是在因特網上只使用一個DNS伺服器,該伺服器包含所有的對映,在這種集中式的設計中,客戶機直接將所有查詢請求發往單一的DNS伺服器,同時該DNS伺服器直接對所有查詢客戶機做出響應。儘管這種設計方式非常誘人,但它不適用當前的網際網路。因為當今的因特網有著數量巨大並且在持續增長的主機,這種集中式設計會有單點故障,通訊容量(上億臺主機傳送的查詢DNS報文請求,包括但不限於所有的HTTP請求,電子郵件報文伺服器,TCP長連線服務),遠距離的時間延遲(澳大利亞到紐約的舉例),維護開銷大(因為所有的主機名-IP對映都要在一個服務站點更新)等問題。
DNS伺服器一般分三種,根DNS伺服器,頂級DNS伺服器,權威DNS伺服器。
當 DNS 客戶機需要查詢程式中使用的名稱時,它會查詢本地DNS 伺服器來解析該名稱。客戶機傳送的每條查詢訊息都包括3條資訊,以指定伺服器應回答的問題。
指定的 DNS 域名,表示為完全合格的域名 (FQDN) 。
指定的查詢型別,它可根據型別指定資源記錄,或作為查詢操作的專門型別。
DNS域名的指定類別。
對於DNS 伺服器,它始終應指定為 Internet 類別。例如,指定的名稱可以是計算機的完全合格的域名,如im.qq.com,並且指定的查詢型別用於透過該名稱搜尋地址資源記錄。
DNS 查詢以各種不同的方式進行解析。客戶機有時也可透過使用從以前查詢獲得的快取資訊就地應答查詢。DNS 伺服器可使用其自身的資源記錄資訊快取來應答查詢,也可代表請求客戶機來查詢或聯絡其他 DNS 伺服器,以完全解析該名稱,並隨後將應答返回至客戶機。這個過程稱為遞迴。
另外,客戶機自己也可嘗試聯絡其他的 DNS 伺服器來解析名稱。如果客戶機這麼做,它會使用基於伺服器應答的獨立和附加的查詢,該過程稱作迭代,即DNS伺服器之間的互動查詢就是迭代查詢。
DNS的查詢過程如下所示:
1、在瀏覽器中輸入www . qq .com 域名,作業系統會先檢查自己本地的hosts檔案是否有這個網址對映關係,如果有,就先呼叫這個IP地址對映,完成域名解析。
2、如果hosts裡沒有這個域名的對映,則查詢本地DNS解析器快取,是否有這個網址對映關係,如果有,直接返回,完成域名解析。
3、如果hosts與本地DNS解析器快取都沒有相應的網址對映關係,首先會找TCP/ip引數中設定的首選DNS伺服器,在此我們叫它本地DNS伺服器,此伺服器收到查詢時,如果要查詢的域名,包含在本地配置區域資源中,則返回解析結果給客戶機,完成域名解析,此解析具有權威性。
4、如果要查詢的域名,不由本地DNS伺服器區域解析,但該伺服器已快取了此網址對映關係,則呼叫這個IP地址對映,完成域名解析,此解析不具有權威性。
5、如果本地DNS伺服器本地區域檔案與快取解析都失效,則根據本地DNS伺服器的設定(是否設定轉發器)進行查詢,如果未用轉發模式,本地DNS就把請求發至13臺根DNS,根DNS伺服器收到請求後會判斷這個域名(.com)是誰來授權管理,並會返回一個負責該頂級域名伺服器的一個IP。本地DNS伺服器收到IP資訊後,將會聯絡負責.com域的這臺伺服器。這臺負責.com域的伺服器收到請求後,如果自己無法解析,它就會找一個管理.com域的下一級DNS伺服器地址(http://qq.com)給本地DNS伺服器。當本地DNS伺服器收到這個地址後,就會找http://qq.com域伺服器,重複上面的動作,進行查詢,直至找到www . qq .com主機。
6、如果用的是轉發模式,此DNS伺服器就會把請求轉發至上一級DNS伺服器,由上一級伺服器進行解析,上一級伺服器如果不能解析,或找根DNS或把轉請求轉至上上級,以此迴圈。不管是本地DNS伺服器用是是轉發,還是根提示,最後都是把結果返回給本地DNS伺服器,由此DNS伺服器再返回給客戶機。
從客戶端到本地DNS伺服器是屬於遞迴查詢,而DNS伺服器之間就是的互動查詢就是迭代查詢。
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2660591/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 域名和IP地址收集
- 手動設定ip地址和dns ip地址和dns怎麼設定DNS
- FreeBSD對IP地址和域名的控制(轉)
- JavaScript ip地址轉換為二進位制JavaScript
- 為什麼要並用域名和IP地址?域名和IP地址並用的理由
- Azure Public IP DNS域名DNS
- IP地址 、域名、 URL、 埠
- 你的域名是如何變成 IP 地址的?
- ARP協議:網路世界的地址翻譯官協議
- RHEL8&CentOS8配置IP地址和DNSCentOSDNS
- VBA轉換IP地址為可比較12位字串(去掉小數點)字串
- 192.168.1.1的首選dns 手動設定IP地址和DNSDNS
- 切換IP地址
- 【硬核】MMU是如何完成地址翻譯的
- java將IP地址轉換為數字以及逆向轉換Java
- 將某一主機域名解析為IP地址。 (轉)
- 將某一主機域名解析為IP地址 (轉)
- PTA 7-18 IP地址轉換(JAVA)Java
- IP、域名和DNS的關係與區別是什麼?DNS
- DNS域名劫持,被惡意DNS域名劫持了需要了解這些DNS
- 域名和伺服器IP地址有什麼關係伺服器
- 【Go】IP地址轉換:數字與字串之間高效轉換Go字串
- 電腦ip地址在哪看 電腦本地ip地址和網際網路ip地址有什麼區別
- ARP協議 地址解析協議:IP地址轉換為MAC地址協議Mac
- win10怎麼檢視自己電腦的IP地址和dns_win10檢視電腦的IP地址和dns的方法Win10DNS
- 14IP地址、主機名、域名
- IP地址切換工具
- 印表機ip地址哪裡看 印表機ip地址和埠檢視方法介紹
- 從“凱琳”看翻譯
- 【TCP/IP】IP地址分類和特殊IP地址TCP
- 域名管理常見問題:IP、域名和DNS之間的區別和關係(中科三方)DNS
- influxdb官網文件翻譯UX
- vb中從域名得到IP及從IP得到域名 (轉)
- [翻譯]關於通用文件轉換器Pandoc
- 一個域名可以對應多個IP嗎?如何透過DNS實現?DNS
- 利用批處理設定和切換IP地址
- 手工編輯過的IP地址分配表(方便大家看) (轉)
- 爬蟲實現:根據IP地址反查域名爬蟲