如何处理丢失的 DNS 查询

网络工程 UDP dns 数据包丢失
2022-02-10 19:10:15

如果 DNS 查询在到达目的地的过程中丢失了,难道没有任何处理吗?在我的网络课上,我的讲师说 DNS 在 UDP 上运行。我在 Wireshark 中通过对域执行 nslookup 并检查传输层协议来验证这一点。是UDP。我知道 UDP 是不可靠的,并且会“尽力而为”交付。它不会为收到的数据包发送确认,并且对损坏或丢弃的数据包不做任何事情。我也知道可靠性可以在应用层实现,但我们从未对此进行过多讨论。那么回到查询,对于丢失的 DNS 查询是否没有做任何事情?任何帮助,将不胜感激。

1个回答

从网络端,丢失的 DNS-over-UDP 请求只是丢失了。客户端可能会再试一次,但那是应用程序端。

DNS 也可以使用 TCP,尽管这对于正常的客户端请求并不常见。TCP 协议会自动重新传输丢失的 DNS-over-TCP 请求,直到它被服务器确认(在多次不成功的传输后套接字超时)。即使通过 TCP,理论上该请求也可能“丢失”——在服务器仍在尝试解析时客户端超时。