DNS 在传输层使用 UDP 协议时如何可靠?

How is DNS reliable when it uses UDP protocol at transport layer?

我搜索了同样的东西,得到了这样的东西:

"An application can use UDP and can be reliable by using timeout and resend at application layer."

可靠性是否仅意味着发送确认以及识别 corrupted/duplicate 数据包呢? 谁能给我解释一下这个的深度。

UDP 不可靠意味着 UDP 本身不关心数据包是否被对等方接收、数据包的顺序、重复等。

但是,应用层协议本身可以关心这个,不需要依赖下层的可靠性。在 DNS 的情况下,每个请求都应该导致一个响应,并且接收到响应隐含地表示已收到请求的确认。此外,DNS 请求和响应都适合单个 UDP 数据包 - 因此重新排序无关紧要。每个 UDP 请求都有唯一的 ID 和源端口组合,响应数据包包含相同的 ID 和端口 - 因此很清楚哪个响应属于哪个查询。如果在一段时间内没有收到响应,它将假定请求或响应丢失,并简单地用新查询重试。