溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

DNS何時使用TCP與UDP協(xié)議?

發(fā)布時間:2020-08-08 18:31:12 來源:ITPUB博客 閱讀:218 作者:安全劍客 欄目:互聯(lián)網(wǎng)科技
DNS同時占用UDP和TCP端口53是公認的,這種單個應(yīng)用協(xié)議同時使用兩種傳輸協(xié)議的情況在TCP/IP棧也算是個另類。但很少有人知道DNS分別在什么情況下使用這兩種協(xié)議。

DNS同時占用UDP和TCP端口53是公認的,這種單個應(yīng)用協(xié)議同時使用兩種傳輸協(xié)議的情況在TCP/IP棧也算是個另類。但很少有人知道DNS分別在什么情況下使用這兩種協(xié)議。

TCP與UDP

TCP:面向連接的協(xié)議,提供可靠的數(shù)據(jù)傳輸,一般服務(wù)質(zhì)量要求比較高的情況,使用這個協(xié)議。

UDP:用戶數(shù)據(jù)報協(xié)議,是一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡單不可靠信息傳送服務(wù)。

DNS何時使用TCP與UDP協(xié)議?

TCP與UDP的區(qū)別

UDP和TCP協(xié)議的主要區(qū)別是兩者在如何實現(xiàn)信息的可靠傳遞方面不同。

TCP協(xié)議中包含了專門的傳遞保證機制,當(dāng)數(shù)據(jù)接收方收到發(fā)送方傳來的信息時,會自動向發(fā)送方發(fā)出確認消息;發(fā)送方只有在接收到該確認消息之后才繼續(xù)傳送其它信息,否則將一直等待直到收到確認信息為止。

與TCP不同,UDP協(xié)議并不提供數(shù)據(jù)傳送的保證機制。如果在從發(fā)送方到接收方的傳遞過程中出現(xiàn)數(shù)據(jù)報的丟失,協(xié)議本身并不能做出任何檢測或提示。因此,通常人們把UDP協(xié)議稱為不可靠的傳輸協(xié)議。

相對于TCP協(xié)議,UDP協(xié)議的另外一個不同之處在于如何接收突發(fā)性的多個數(shù)據(jù)報。不同于TCP,UDP并不能確保數(shù)據(jù)的發(fā)送和接收順序。事實上,UDP協(xié)議的這種亂序性基本上很少出現(xiàn),通常只會在網(wǎng)絡(luò)非常擁擠的情況下才有可能發(fā)生。

既然UDP是一種不可靠的網(wǎng)絡(luò)協(xié)議,那么還有什么使用價值或必要呢?其實不然,在有些情況下UDP協(xié)議可能會變得非常有用。因為UDP具有TCP所望塵莫及的速度優(yōu)勢。

雖然TCP協(xié)議中植入了各種安全保障功能,但是在實際執(zhí)行的過程中會占用大量的系統(tǒng)開銷,無疑使速度受到嚴(yán)重的影響。

反觀UDP由于排除了信息可靠傳遞機制,將安全和排序等功能移交給上層應(yīng)用來完成,極大降低了執(zhí)行時間,使速度得到了保證。

DNS在進行區(qū)域傳輸?shù)臅r候使用TCP協(xié)議,其它時候則使用UDP協(xié)議。

DNS的規(guī)范規(guī)定了2種類型的DNS服務(wù)器,一個叫主DNS服務(wù)器,一個叫輔助DNS服務(wù)器。

在一個區(qū)中主DNS服務(wù)器從自己本機的數(shù)據(jù)文件中讀取該區(qū)的DNS數(shù)據(jù)信息,而輔助DNS服務(wù)器則從區(qū)的主DNS服務(wù)器中讀取該區(qū)的DNS數(shù)據(jù)信息。當(dāng)一個輔助DNS服務(wù)器啟動時,它需要與主DNS服務(wù)器通信,并加載數(shù)據(jù)信息,這就叫做區(qū)傳送(zone transfer)。

為什么既使用TCP又使用UDP?

首先了解一下TCP與UDP傳送字節(jié)的長度限制:

UDP報文的最大長度為512字節(jié),而TCP則允許報文長度超過512字節(jié)。當(dāng)DNS查詢超過512字節(jié)時,協(xié)議的TC標(biāo)志出現(xiàn)刪除標(biāo)志,這時則使用TCP發(fā)送。通常傳統(tǒng)的UDP報文一般不會大于512字節(jié)。

區(qū)域傳送時使用TCP,主要有一下兩點考慮:

  • 輔助域名服務(wù)器會定時(一般是3小時)向主域名服務(wù)器進行查詢以便了解數(shù)據(jù)是否有變動。如有變動,則會執(zhí)行一次區(qū)域傳送,進行數(shù)據(jù)同步。區(qū)域傳送將使用TCP而不是UDP,因為數(shù)據(jù)同步傳送的數(shù)據(jù)量比一個請求和應(yīng)答的數(shù)據(jù)量要多得多。
  • TCP是一種可靠的連接,保證了數(shù)據(jù)的準(zhǔn)確性。
域名解析時使用UDP協(xié)議

客戶端向DNS服務(wù)器查詢域名,一般返回的內(nèi)容都不超過512字節(jié),用UDP傳輸即可。不用經(jīng)過TCP三次握手,這樣DNS服務(wù)器負載更低,響應(yīng)更快。

雖然從理論上說,客戶端也可以指定向DNS服務(wù)器查詢的時候使用TCP,但事實上,很多DNS服務(wù)器進行配置的時候,僅支持UDP查詢包。

原文地址: https://www.linuxprobe.com/dns-tcp-udp.html

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI