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

时间:2018-12-01 12:00:31

标签: networking dns udp

我搜索了相同的内容,并得到了这样的内容:

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

可靠性仅意味着发送确认吗?如何识别损坏/重复的数据包呢? 谁能解释这个问题的深度。

1 个答案:

答案 0 :(得分:1)

UDP不可靠意味着UDP并不在乎自己是否被对等方接收到数据包,数据包的顺序,重复项等。

但是,应用程序层协议本身可以解决此问题,而不必依赖于较低层的可靠性。在DNS的情况下,每个请求应恰好导致一个响应,并且接收到该响应暗含了对已接收到该请求的确认。另外,DNS请求和响应都适合单个UDP数据包-因此重新排序并不重要。每个UDP请求都有ID和源端口的唯一组合,并且响应数据包包含相同的ID和端口-因此很清楚哪个响应属于哪个查询。而且,如果在一段时间内未收到响应,则将假定该请求或响应都丢失了,只需使用新查询重试即可。