DNS
端口53
最常用的DNS協議,明文傳輸(大部分情況使用UDP,少數情況為TCP)
用於域名-IP地址解析
用編程語言表示功能為:
ip_addr
DNS(domain
)
返回類型 函數名(入參)
如
123.58.180.8
DNS(163.com
)
可通過 cmd 命令向當前網卡配置的 DNS 服務器查詢
安全性:垃圾級別,參見:用winpcap實現局域網DNS欺騙之一(基礎知識)
DNSCrypt
DNS加密版本
mDNS
端口5353
DNS 的多播版
不需要服務器,客戶機域名以.local結尾。每一台客戶端都自動向局域網廣播 mDNS 數據包,支持 mDNS 的目標客戶端即可處理並返回 ip 地址。
這對於基於DHCP自動分配IP地址的局域網設備
是非常高效有用的,畢竟原始的 DNS 協議可沒有打算支持局域網。
其中蘋果的Bonjour就是mDNS的一個實現,此外Android 4.1之后也加入了對mDNS協議的支持。
Windows默認不開啟,開啟方法(二選一):
- 原生開啟支持 https://superuser.com/questions/1330027/how-to-enable-mdns-on-windows-10-build-17134
- 通過第三方軟件支持 Bonjour Print Services
- raspberrypi.local 為什么可以ping通以及ssh登錄?它是如何被解析的?又如何改變?
DNS 透傳版
由 DNS 衍生出的透傳版本,大部分都是加密的,實質是把 DNS 數據放在對應的加密網絡協議包里透傳:
事實上你想 Dns-Over-QQ Dns-Over-Email 都可以,但以下是有事實標准或 RFC 文檔標准的
[DoQ]
DNS over QUIC 端口x
無統一規定標准端口
[DoH]
DNS over HTTPS 端口443
[DoT]
DNS over TLS 端口853
參考:https://developers.google.cn/speed/public-dns/docs/secure-transports
參考資料
各協議所在位置圖解,TCP和UDP處於平等地位。
另有基於 UDP 改進的傳輸層協議 QUIC,自帶加密和可靠性,但由於基於現有 UDP 改進,因此需占用 UDP 端口。另外 QUIC 也作為 HTTP3 版本所要求使用的傳輸層協議。
注:TCP和UDP端口並不沖突,因為計算機網絡包五元組{源IP,目標IP,源端口,目標端口,傳輸層協議類型}只要有一個不同就不沖突。
網絡包數據幀圖,參見:通信數據挖掘學習筆記(一)——網絡協議 + 報文抓包-VoidOc-zhihu