網際網路支援使用主機名稱來識別包括客戶機和伺服器在內的主機。主機名稱通過名稱解析的過程轉換成ip位址
dns是乙個分布式的客戶機/伺服器網路資料庫,tcp/ip應用程式使用它來完成主機名稱和ip位址之間的對映。從應用程式的角度看,訪問dns是通過乙個稱為位址解析器的應用程式庫來完成的。通常,在請求tcp開啟乙個連線或使用udp傳送乙個單播資料報之前,應用程式必須將主機名稱轉換位ipv4與/或ipv6位址。
直接來自區域資料庫
區域傳輸的結果(來自乙個從屬伺服器)
來自於在處理解析過程中的另一台伺服器
第一種情況中,伺服器應該包含該區域的授權資訊(authoritative information),也可以稱為該區域的授權伺服器(authoritative server)。
值得一提的是,快取同時適用於成功的解析和不成功的解析(稱為否定快取(negative caching))。如果乙個特定網域名稱的請求無法返回乙個記錄,該事實也會被快取。當出錯的應用程式一再請求不存在的網域名稱時,這樣做就可以幫助降低網際網路流量。
dns協議由兩部分組成:
乙個完整的解析過程發生在幾個實體之間,過程如圖所示:
a.hoem 上的解析軟體首先向本地名稱伺服器 gw.home 傳送請求,請求將某網域名稱如 example.com 轉化成乙個ip位址;
很遺憾 gw.home 不知道這個ip位址,也不知道 example.com 或是 com tld 的名稱伺服器,於是它**到另乙個dns伺服器,例如isp提供的伺服器位址;(
這個過程稱為解析)
isp提供的伺服器也不清楚,所以它聯絡根伺服器 ; (根伺服器不是遞迴的)
因為根伺服器不是遞迴的,所以其返回需要聯絡的 com tld 的名稱伺服器的資訊;
根據根伺服器提供的資訊,isp伺服器就找到了 gtld 伺服器;
gtld伺服器給出了網域名稱 example.com 的名稱伺服器和伺服器的ip位址,例如a.iana-servers.net;
基於6返回的資訊,isp聯絡適當的伺服器;
該伺服器返回請求的位址;
isp伺服器把位址返回給 gw.home;
gw.home 再返回查詢請求。
基本的dns訊息格式用於所有的dns操作(查詢,響應,區域傳輸,通知和動態更新)
如圖所示:
名稱解釋
事務id
客戶端設定,伺服器返回,在客戶端用於匹配響應和查詢
qr查詢(0),響應(1)
opcode
操作嗎,0表示查詢,4表示通知,5表示更新,其他值無效
aa表示授權回答
tc表示截斷回答,使用udp時,當應答的長度超過512位元組時,只返回前512個位元組
rd期望遞迴,設定表示支援遞迴查詢,但是對不支援遞迴的伺服器沒有效果,例如根伺服器
z置0,為將來保留
ad設定為真表示資訊是已授權的
cd設定為真表示禁用安全檢查
recode
響應碼,具體見p370,常見有以下兩種:
0 noerror 沒有錯誤
3 nxdomain 不存在網域名稱;引用了未知網域名稱
隨後的四個字段表示組成dns訊息的問題、回答、授權和額外資訊區段中的條目的數目
資料標籤以一位元組的計數開始,該計數指定其後的位元組數目。 名稱以值為0結束。如圖所示:
注意,每個標籤的長度必須在0和63之間
壓縮標籤,如圖所示:
首位元組偏移量為0,如果出現了重複的標籤既可以壓縮。在重複出現的某個位置的位元組兩個高位置1,然後其後的14個位元組組成乙個偏移量。例如圖中重複出現的edu,偏移量為4,兩個高位置1後,其餘為0則為192+後面置為4
第十一章 名稱解析和與網域名稱系統
網際網路支援使用主機名稱來識別包括客戶機和伺服器在內的主機。主機名稱通過名稱解析的過程轉換成ip位址 dns是乙個分布式的客戶機 伺服器網路資料庫,tcp ip應用程式使用它來完成主機名稱和ip位址之間的對映。dns協議由兩部分組成 過程如圖所示 a.hoem上的解析軟體首先向本地名稱伺服器gw.h...
TCP IP協議原理解析
我算是半路出家的程式設計師吧,剛畢業的時候不知道做什麼,工作後慶幸遇到了一名好leader,給我指了前端這條路。所以,雖然可以完成工作,但是對一些基礎知識卻了解的不夠深入透徹,是時候該補補短了。要實現web瀏覽器和伺服器之間的通訊,最基礎的就是http了。開始打算從被稱作聖經的 http權威指南 入...
第一章 TCP IP協議概述
1 osi的概念 open system interconnect開放系統互連參考模型,是由iso 國際標準化組織 定義的。2 osi模型的目的 1 規範不同系統的網際網路標準 2 提供不同廠商間的介面標準 3 osi模型分為七層 1 物理層 作用 負責傳送和接受二進位制訊號 功能 為資料段裝置提供...