1.DNS緩存
DNS 是計算機域名系統(Domain Name System 或Domain Name Service) 的縮寫,它是由解析器以及域名服務器組成的。域名服務器是指保存有該網絡中全部主機的域名和對應IP地址,並具備將域名轉換爲IP地址功能的服務器。DNS使用TCP與UDP端口號都是53,主要使用UDP,服務器之間備份使用TCP。
- 域名解析過程:
-
- 當某個應用進程須要將主機名解析爲IP地址時,該應用進程就調用解析程序,併成爲DNS的一個客戶,將待解析的域名放在DNS請求報文中,以UDP數據報方式發給本地域名服務器。本地域名服務器在查找域名後,將對應的IP地址放在回答的報文中返回。應用進程得到目的主機的IP地址後便可進行通訊。
- 域名結構:
-
- 域名:任何一個連接在因特網上的主機或路由器,都擁有一個惟一的層次結構名字,該名字爲域名。
- 域:名字空間中的一個可被管理的劃分,能夠繼續劃分爲子域。
- 設計原則:域名的結構由若干個份量組成,各份量之間用點隔開,如:….三級域名.二級域名.頂級域名
-
- 每一級域名都由英文字母和數字組成(不超過63個字符,不區分大小寫字母),除連字符外不能使用其餘標點符號。
- 類別最低的域名寫在最左邊,級別最高的頂級域名寫在最右邊
- 完成的域名不超過255個字符。
- 域名的層次結構如圖所示
2.DNS的報文格式
DNS定義了一個用於查詢和響應的報文格式。這個報文由12字節長的首部和4個長度可變的字段組成
- 標識字段:由客戶程序設置並由服務器返回結果。客戶程序經過他來肯定響應與查詢是否匹配。
- 標誌字段:16bit的標誌字段被劃分爲若干子段,如圖所示
-
- QR:0表示查詢報文,1表示響應報文
- opcode:0標準查詢,1反向查詢,2服務器狀態請求。
- AA:表示「受權回答」,該名字服務器是受權於該域的。
- TC:表示「可截斷的」,使用UDP時,它表示當應答的總長度超過512字節時, 只返回前512個字節。
- RD:表示「指望遞歸」。這個表示告訴名字服務器必須處理這個查詢,也稱爲一個遞歸查詢。
- RA:表示「可用遞歸」。若是名字服務器支持遞歸查詢,則在相應中將該比特設置爲1。
- zero:3bit爲0
- rcode:返回碼字段。0爲沒有差錯,3名字差錯。
- 問題部分
-
- 問題部分中每一個問題的格式如圖所示,一般只有一個問題:
- 查詢名是要查找的名字,它是一個或多個標識符的序列。
- 每一個問題有一個查詢類型,而每一個相應也有一個類型。大約有20個不一樣的類型只,其中有一部分已通過時,最經常使用的查詢類型是A類型,表示指望得到查詢名的IP地址。
- DNS報文最後三個字段:回答字段、受權字段和附加信息字段,均採用一種稱爲資源記錄RR的相同格式。如圖所示:
-
- 域名是記錄中資源數據對應的名字
- 類型說明RR的類型碼
- 生存時間是客戶程序保留該資源記錄的秒數
3.DNS高速緩存
爲了減小Internet上的DNS的通訊量,全部的名字服務器均使用高速緩存,存放最近用過的名字以及從何處得到名字映射信息的記錄。