DNS使用TCP和UDP的埠號53

2021-08-17 00:18:05 字數 1049 閱讀 3420

dns在兩種情況下使用tcp

1.如果用wireshark、sniffer或古老些的tcpdump抓包分析,會發現幾乎所有的情況都是在使用udp,使用tcp的情況非常罕見。其實當解析器發出乙個request後,返回的response中的tc刪節標誌位元位被置1時,說明反饋報文因為超長而有刪節。這是因為udp的報文最大長度為512位元組。解析器發現後,將使用tcp重發request,tcp允許報文長度超過512位元組。既然tcp能將data stream分成多個segment,它就能用更多的segment來傳送任意長度的資料。

udp報文的最大長度為512位元組,而tcp則允許報文長度超過512位元組。當dns查詢超過512位元組時,協議的tc標誌出現刪除標誌,這時則使用tcp傳送。通常傳統的udp報文一般不會大於512位元組。

2.另外一種情況是,dns在進行區域傳輸的時候使用tcp協議,其它時候則使用udp協議。

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

輔網域名稱伺服器會定時(一般時3小時)向主網域名稱伺服器進行查詢以便了解資料是否有變動。如有變動,則會執行一次區域傳送,進行資料同步。區域傳送將使用tcp而不是udp,一是因為資料同步傳送的資料量比乙個請求和應答的資料量要多得多;二是因為tcp是一種可靠的連線,保證了資料的準確性。

dns更多情況下使用udp

客戶端向dns伺服器查詢網域名稱,一般返回的內容都不超過512位元組,用udp傳輸即可。不用經過tcp三次握手,這樣dns伺服器負載更低,響應更快。雖然從理論上說,客戶端也可以指定向dns伺服器查詢的時候使用tcp,但事實上,很多dns伺服器進行配置的時候,僅支援udp查詢包。

埠 TCP和UDP輸出

任何時候,多個程序可能同時使用 tcp udp sctp 這三種傳輸層協議中的任何一種。這三種協議都使用 16 位整數的埠號來區分這些程序。當乙個客戶想要和乙個伺服器聯絡時,它必須標識想要與之通訊的這個伺服器。一方面,tcp udp sctp 定義了一組眾所周知的埠,用於標識眾所周知的服務。舉例說明...

Linux測試UDP 和 TCP 埠

1 tcp埠的連通性 tc埠的連通性,一般通過telnet檢測 tcp協議是面向連線的,可以直接通過telnet命令連線 telnet host ip port2 udp埠的連通性 因為公司網路防火牆一般對埠會有一些限制,通過公司網路訪問外部伺服器特定埠時,需要檢測與目標伺服器特定埠的連通性 對於u...

TCP和UDP協議常用埠彙總

埠 協議說明 udp常用埠 echo 將收到的資料報送給傳送端 smtp 簡單郵件傳輸協議 host name server 主機名服務 tacacs 登入主機協議 dns網域名稱服務 dhcp 動態主機配置檔案 tftp 簡單檔案傳輸協議 snmp 簡單網路管理協議 snmp 簡單網路管理協議 t...