首页 > 解决方案 > DNS在传输层使用UDP协议时如何可靠?

问题描述

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

“应用程序可以使用 UDP,并且可以通过在应用程序层使用超时和重新发送来实现可靠。”

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

标签: networkingdnsudp

解决方案


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

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


推荐阅读