DNS何时使用TCP或UDP

相关RFC文档:RFC1035


在上一篇文章DNS详解中提到DNS会用到TCP与UDP两种传输协议,本篇会详细说明为何如此。

TCP与UDP的特点

在详细了解原因之前,先来回顾下两者的优势与区别。

TCP:

  • 优势:具有较为可靠的确认重传机制来保障数据传输,环境限制较少;
  • 劣势:需多次握手挥手,复杂的拥塞控制与流量控制,头部需20个字节,总体上延迟和开销较高。

UDP:

  • 优势:仅需8字节头部,没有复杂的机制,总体上延迟与开销较低;
  • 劣势:缺少保障数据传输的机制,不够可靠。网络中路由器的关于UDP的MTU限制仅有576字节,再去除报头,仅能传576-20-8=548字节的数据,而且为适应网络,DNS协议限制UDP的长度为512字节,因为较小的数据包随机丢失的概率也相对会较小,所以导致UDP无法传输大量数据。

使用场景

主要是两种:

  • DNS服务器之间需要进行域名与IP信息的同步

        此场景下传输的相关信息数据往往较大,且需要可靠的方式将数据送至对应服务器。

  • 对域名进行解析

        此场景下需要快速的响应用户的解析请求,对于延迟要求较高,而且相应数据包往往较小。

总结

根据场景与两种协议的特点可以轻松得出结论,DNS在进行数据同步时使用TCP,解析协议时则用UDP。

你可能感兴趣的:(网络,算法,网络,网络协议,tcp/ip,udp)