日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、前言

之前在聊到 App 網(wǎng)絡(luò)優(yōu)化時,聊到通過 HTTPDNS 替換掉傳統(tǒng)的 DNS 解析,來達(dá)到網(wǎng)絡(luò)優(yōu)化的效果。其中提到 DNS 解析,是支持 UDP 和 TCP 雙協(xié)議的。

但是細(xì)心的朋友通過 wireshark、sniffer、tcpdump 等抓包工具分析,會發(fā)現(xiàn)基本上所有客戶端發(fā)起 DNS 查詢的場景下,都只使用到了 UDP 協(xié)議。

那在 DNS 中,TCP 協(xié)議在什么場景下才會用到呢?

今天我們就來聊聊,DNS 的 TCP 的使用場景。

二、DNS

2.1 什么是 DNS

先來簡單了解一下 DNS。

在網(wǎng)絡(luò)的世界中,每個有效的域名背后都有為其提供服務(wù)的服務(wù)器,而我們網(wǎng)絡(luò)通信的首要條件,就是知道服務(wù)器的 IP 地址。

但是記住域名(網(wǎng)址)肯定是比記住 IP 地址簡單。如果有某種方法,可以通過域名,查到其提供服務(wù)的服務(wù)器 IP 地址,那就非常方便了。這里就需要用到 DNS 服務(wù)器以及 DNS 解析。

DNS(Domain Name System),它的作用就是根據(jù)域名,查出對應(yīng)的 IP 地址,它是 HTTP 協(xié)議的前提。只有將域名正確的解析成 IP 地址后,后面的 HTTP 流程才可以繼續(xù)進(jìn)行下去。

DNS 同時占用了 UDP 和 TCP 的 53 端口,但是大多數(shù)情況下,DNS 查詢都只使用到了 UDP,而 TCP 只在一些特殊情況下才會被使用到。

簡單來說,DNS 使用 TCP 的情況,只有兩種:

  1. DNS 查詢響應(yīng)報文大于 512 字節(jié)時。
  2. DNS 主、輔助服務(wù)器之間,進(jìn)行區(qū)域傳送時。

使用 TCP 的場景,基本上就是以上兩種場景,當(dāng)然,如果客戶端主動發(fā)起一個 TCP 的 DNS 查詢,也會使用 TCP 協(xié)議,這就不在討論的范圍內(nèi)了。

2.2 DNS 響應(yīng)報文大于 512 字節(jié)

說到 DNS 響應(yīng)報文,先來看看 DNS 數(shù)據(jù)包的結(jié)構(gòu),對于 DNS 來說,請求報文和響應(yīng)報文的結(jié)構(gòu)是一樣的。

DNS 支持 TCP 和 UDP 雙協(xié)議,但為何偏偏只鐘情 UDP?

 

這其中,我們主要關(guān)注 Flags 這個標(biāo)志位的結(jié)構(gòu)。

DNS 支持 TCP 和 UDP 雙協(xié)議,但為何偏偏只鐘情 UDP?

 

在 Flags 中,每個字段都有其自己的含義,在這里我們做重關(guān)注 QR 和 TC 兩個字段。

  • QR 是一個 Bit,用于標(biāo)識當(dāng)前是查詢報文(0)還是響應(yīng)報文(1)。
  • TC 也是一個 Bit,當(dāng)它的值為 1 時,表示當(dāng)前響應(yīng)報文總長度,已經(jīng)超過 512 字節(jié),所以做了截斷處理,只返回前 512 個字節(jié)。

當(dāng)遇到這種情況時,DNS 解析器會使用 TCP 來重發(fā)原來的查詢請求,UDP 要求相應(yīng)報文在 512 字節(jié)以內(nèi),而 TCP 則沒有此限制,TCP 能用多個報文段來傳送任意長度的用戶數(shù)據(jù)。

DNS 查詢是一個過程復(fù)雜,但是結(jié)果簡單的過程。通常返回的數(shù)據(jù)不會大于 512 字節(jié),這也就是為什么我們通過抓包的手段,得到的結(jié)果都是 DNS 在使用 UDP 協(xié)議。

需要注意的是,在實(shí)際使用中,很多 DNS 服務(wù)器在進(jìn)行配置的時候,就把 TCP 查詢包的方式關(guān)閉,僅支持 UDP 查詢包。

2.3 DNS 主、輔助服務(wù)器的區(qū)域傳送

DNS 服務(wù)器,在設(shè)計時就要求一定要是高可用、高并發(fā)和分布式的服務(wù)器,它被分為多個層次結(jié)構(gòu),分別是根 DNS 服務(wù)器、頂級域 DNS 服務(wù)器、權(quán)威 DNS 服務(wù)器。

這三類 DNS 服務(wù)器,組成一種類似樹的結(jié)構(gòu)。

DNS 支持 TCP 和 UDP 雙協(xié)議,但為何偏偏只鐘情 UDP?

 

在這個"樹"中,一個獨(dú)立管理的 DNS 子樹,稱為一個區(qū)域(zone)。一個 DNS 服務(wù)器負(fù)責(zé)管理一個或多個區(qū)域,為了滿足高可用,一個區(qū)域的管理者必須為該區(qū)域提供一個主 DNS 服務(wù)器和至少一個輔助 DNS 服務(wù)器

主 DNS 服務(wù)器和輔助 DNS 服務(wù)器,必須是獨(dú)立和冗余的,以便當(dāng)某個 DNS 服務(wù)器發(fā)生故障時,不會影響該區(qū)域的 DNS 查詢。

既然 DNS 服務(wù)器有主和輔助之分,那必然面臨了數(shù)據(jù)同步的情況,我們將輔助服務(wù)器從主服務(wù)器同步信息的動作,稱為區(qū)域傳送,而在觸發(fā)區(qū)域傳送試,使用的就是 TCP 協(xié)議。

觸發(fā) DNS 區(qū)域傳送的情況有兩種:

  1. 新上線一臺輔助服務(wù)器,會從主服務(wù)器執(zhí)行區(qū)域傳送,進(jìn)行同步數(shù)據(jù)。
  2. 輔助服務(wù)器會定時(通常是 3 小時),向主服務(wù)器查詢,以便了解到主服務(wù)器的數(shù)據(jù)是否發(fā)生變動,如果變動,也會觸發(fā)一次區(qū)域傳送。

區(qū)域傳送會使用 TCP 協(xié)議,一方面是為了保證數(shù)據(jù)的可靠,另一方面此時傳送的數(shù)據(jù),也遠(yuǎn)比一個查詢或響應(yīng)大的多。

三、小結(jié)時刻

到此我們就了解清楚了,雖然 DNS 服務(wù)器支持 TCP 和 UDP 雙協(xié)議,但是通常我們在做 DNS 查詢的時候,也只用到了 UDP 協(xié)議。

TCP 只有在以下兩種情況下,才會被使用到:

  1. DNS 響應(yīng)報文大于 512 字節(jié),通過 TC 標(biāo)記為截斷是,才會使用 TCP 重新查詢一遍。
  2. DNS 主服務(wù)器和輔助服務(wù)器之間,進(jìn)行區(qū)域傳送時,為了保證穩(wěn)定以及傳輸數(shù)據(jù)太大的原因,也會使用 TCP 協(xié)議傳輸。

DNS 查詢和響應(yīng),通常都在廣域網(wǎng)上通信,對于 DNS 客戶端,保證好的重傳和超時機(jī)制,就顯得尤為重要了。

分享到:
標(biāo)簽:UDP
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定