在實際的訪問網際網路資源的時候,我們會使用網域名稱進行訪問,比如www.baidu.com、www.defense.gov等等。但是,實際的資料傳輸的時候,我們知道是通過ip位址與埠建立連線的,那麼怎麼把網域名稱翻譯成ip位址,這裡用到的協議就是dns協議。解析網域名稱時候,在unix環境高階程式設計中,遇到過兩個函式分別是gethostbyname和gethostbyaddr,第乙個函式通過主機名字返回ip位址,第二個函式通過ip位址返回主機名。
說起頂級網域名稱,不得不提一下,全球有13個頂級網域名稱伺服器,其位址可以直接登入:進行檢視。
dns資料報的格式如下:
這裡我們首先看一下查詢時候,查詢問題的格式:
查詢名是要查詢的名字,它是乙個或多個識別符號的序列。每個識別符號以首位元組的計數值來說明隨後識別符號的位元組長度,每個名字以最後位元組為0結束,長度為0的識別符號是根識別符號。計數位元組的值必須是0~63的數,因為識別符號的最大長度僅為63,該欄位無需以整32bit邊界結束,即無需填充位元組。乙個網域名稱儲存的結構如下:
每次查詢的時候,都有乙個型別:
對於查詢類,通常設為1,指的是網際網路位址。
響應問題的格式如下:
主要看下後面三個字段:
生存時間欄位是客戶程式保留該資源記錄的秒數,資源記錄通常的生存時間值為2天。
資源資料長度說明資源資料的數量。該資料的格式依賴於型別欄位的值。對於型別1資源資料是4位元組的ip位址。
有了上面的了解後,那麼dns資料報完整的格式如下:
在linux系統下要檢視本地網路系統網域名稱伺服器的位址可以檢視這個檔案:
/etc/resolv.conf
在訪問某個主機的時候,先到網域名稱伺服器獲取主機的ip位址,然後再發起訪問。
我們利用tcpdump抓取資料報進行分析這乙個過程:
tcpdump -i eth0 -vnn port 53
另外若只是查詢網域名稱,可以使用host命令獲取網域名稱,還有nslookup,還可以使用dig命令進行網域名稱的查詢,具體的使用可以使用man進行檢視。 《TCP IP協議族》 DNS協議一
網域名稱系統 dns domain name system 網域名稱系統並不像 號碼通訊錄那麼簡單,通訊錄主要是單個個體在使用,同乙個名字出現在不同個體的通訊錄裡並不會出現問題,但網域名稱是群體中所有人都在用的,必須要保持唯一性。為了達到唯一性的目的,網際網路在命名的時候採用了層次結構的命名方法。d...
TCP IP協議族(四)
在tcp中面向連線的傳輸需要三個過程 連線建立,資料傳輸,連線終止。tcp ip三次握手 tcp ip四次揮手 timewait的作用 在客戶端傳送完四次揮手的最後乙個ack之後,會進入乙個time wait的階段。time wait是為了保證最後乙個ack能夠正常到達,並且保證老的tcp請求不會影...
TCP IP 協議筆記四
一 tcp首部 t c p提供了一種可靠的面向連線的位元組流運輸層服務。t c p將使用者資料打包構成報文段 它傳送資料後啟動乙個定時器 另一端對收到的資料進行確認,對失序的資料重新排序,丟棄重複資料 t c p提供端到端的流量控制,並計算和驗證乙個強制性的端到端檢驗和。每個t c p段都包含源端和...