当DNS在传输层使用UDP协议时,它的可靠性如何



我也搜索过,得到了这样的结果:

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

可靠性是否只意味着发送确认,以及识别损坏/重复的数据包?有人能向我解释一下这件事的深度吗。

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

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

最新更新