DNS什麼時候用UDP什麼時候用TCP來傳輸解釋

一、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。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章