DNS的解析,gethostbyname的弊端

2021-07-11 03:03:03 字數 908 閱讀 6820

**:

在網路程式設計中,常常要使用網域名稱轉換為ip的操作,這個時候就需要用到網域名稱解析。網域名稱解析是乙個垂直請求的過程,具體如下圖。

一、dns報文角度來看

主要是檢視dns報文首部中的標誌字段

[qr][opcode][aa][tc][rd][ra][(zone)][rcode]

主要關注欄位為tc欄位,當tc欄位為1時,表示應答總長度超過512位元組,只返回前512個位元組,這時dns就需要使用tcp重發原來的查詢請求。因為在udp的應用程式中,其應用程式被限制在512個位元組或更小,因此dns報文穿資料流只能有512位元組,而tcp能將使用者的資料流分為一些報文段,因此tcp就能用多個報文段去傳超過512位元組的資料流或是任意長度的資料流。

大多數書只寫dns使用udp 53埠,這並不完整,會導致別人誤解,認為dns只用udp,不用tcp,呵呵。

二、應用角度來看

區域傳輸用tcp,其他用udp。

什麼是區域傳輸?

dns的規範規定了2種型別的dns伺服器,乙個叫主dns伺服器,乙個叫輔助dns伺服器。在乙個區中主dns伺服器從自己本機的資料檔案中讀取該區的dns資料資訊,而輔助dns伺服器則從區的權威dns伺服器中讀取該區的dns資料資訊。當乙個輔助dns伺服器啟動時,它需要與主dns伺服器通訊,並載入資料資訊,這就叫做區傳送(zone transfer).

通俗地講,就是dns伺服器之間傳輸時使用tcp,而客戶端與dns伺服器之間傳輸時用的是udp

關於DNS的解析

1 dns伺服器中的記錄 ns記錄 即名稱伺服器記錄,說明這個區域有哪些dns伺服器負責解析 soa記錄 說明哪個dns伺服器是主伺服器 mx記錄,即郵件交換記錄,說明哪台伺服器是當前區域的郵件伺服器 郵件伺服器必須先有1個主機 記錄,因為外部的郵箱要傳送的時候,都會先查一下目標dns上的mx記錄 ...

DNS的雙向解析

1.什麼是雙向解析 不同的物件,解析的路徑不一樣,看的內容也不一樣。就如同公司內網和外網看到的內容不一樣。2.示意圖 3.cd var named 在此目錄下建立乙個外網解析檔案和乙個內網解析檔案 cp p westos.com.zone westos.com.localnet 4.cp p etc...

DNS的解析原理

dns 查詢的過程如下圖所示。1 在瀏覽器中輸入www.qq.com網域名稱,作業系統會先檢查自己本地的hosts檔案是否有這個 對映關係,如果有,就先呼叫這個ip位址對映,完成網域名稱解析。2 如果hosts裡沒有這個網域名稱的對映,則查詢本地dns解析器快取,是否有這個 對映關係,如果有,直接返...