DNS使用TCP和UDP的端口号53
DNS在兩種情況下使用TCP
1.如果用wireshark、sniffer或古老些的tcpdump抓包分析,會(huì)發(fā)現(xiàn)幾乎所有的情況都是在使用UDP,使用TCP的情況非常罕見(jiàn)。其實(shí)當(dāng)解析器發(fā)出一個(gè)request后,返回的response中的tc刪節(jié)標(biāo)志比特位被置1時(shí),說(shuō)明反饋報(bào)文因?yàn)槌L(zhǎng)而有刪節(jié)。這是因?yàn)閁DP的報(bào)文最大長(zhǎng)度為512字節(jié)。解析器發(fā)現(xiàn)后,將使用TCP重發(fā)request,TCP允許報(bào)文長(zhǎng)度超過(guò)512字節(jié)。既然TCP能將data stream分成多個(gè)segment,它就能用更多的segment來(lái)傳送任意長(zhǎng)度的數(shù)據(jù)。
UDP報(bào)文的最大長(zhǎng)度為512字節(jié),而TCP則允許報(bào)文長(zhǎng)度超過(guò)512字節(jié)。當(dāng)DNS查詢超過(guò)512字節(jié)時(shí),協(xié)議的TC標(biāo)志出現(xiàn)刪除標(biāo)志,這時(shí)則使用TCP發(fā)送。通常傳統(tǒng)的UDP報(bào)文一般不會(huì)大于512字節(jié)。
2.另外一種情況是,DNS在進(jìn)行區(qū)域傳輸?shù)臅r(shí)候使用TCP協(xié)議,其它時(shí)候則使用UDP協(xié)議。
DNS的規(guī)范規(guī)定了2種類型的DNS服務(wù)器,一個(gè)叫主DNS服務(wù)器,一個(gè)叫輔助DNS服務(wù)器。在一個(gè)區(qū)中主DNS服務(wù)器從自己本機(jī)的數(shù)據(jù)文件中讀取該區(qū)的DNS數(shù)據(jù)信息,而輔助DNS服務(wù)器則從區(qū)的主DNS服務(wù)器中讀取該區(qū)的DNS數(shù)據(jù)信息。當(dāng)一個(gè)輔助DNS服務(wù)器啟動(dòng)時(shí),它需要與主DNS服務(wù)器通信,并加載數(shù)據(jù)信息,這就叫做區(qū)傳送(zone transfer)。
輔域名服務(wù)器會(huì)定時(shí)(一般時(shí)3小時(shí))向主域名服務(wù)器進(jìn)行查詢以便了解數(shù)據(jù)是否有變動(dòng)。如有變動(dòng),則會(huì)執(zhí)行一次區(qū)域傳送,進(jìn)行數(shù)據(jù)同步。區(qū)域傳送將使用TCP而不是UDP,一是因?yàn)閿?shù)據(jù)同步傳送的數(shù)據(jù)量比一個(gè)請(qǐng)求和應(yīng)答的數(shù)據(jù)量要多得多;二是因?yàn)門CP是一種可靠的連接,保證了數(shù)據(jù)的準(zhǔn)確性。
DNS更多情況下使用UDP
客戶端向DNS服務(wù)器查詢域名,一般返回的內(nèi)容都不超過(guò)512字節(jié),用UDP傳輸即可。不用經(jīng)過(guò)TCP三次握手,這樣DNS服務(wù)器負(fù)載更低,響應(yīng)更快。雖然從理論上說(shuō),客戶端也可以指定向DNS服務(wù)器查詢的時(shí)候使用TCP,但事實(shí)上,很多DNS服務(wù)器進(jìn)行配置的時(shí)候,僅支持UDP查詢包。
總結(jié)
以上是生活随笔為你收集整理的DNS使用TCP和UDP的端口号53的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: html游戏怎么运行,怎么让代码运行
- 下一篇: 【艾思软件】定制开发小程序需要费用明细