【问题标题】:Why DNS uses UDP as the transport layer protocol?为什么 DNS 使用 UDP 作为传输层协议?
【发布时间】:2017-02-25 01:53:35
【问题描述】:

为什么 DNS 使用 UDP 作为传输层协议?

【问题讨论】:

  • 大多数查询适合一条消息。如果没有得到答复,您可以重新发送消息。开销低于 TCP。

标签: tcp dns udp protocols


【解决方案1】:
  • UDP 快得多。 TCP 很慢,因为它需要 3 次握手。 DNS 服务器上的负载也是一个重要因素。 DNS 服务器(因为它们使用 UDP)不必保持连接。
  • DNS 请求通常非常小,非常适合 UDP 段。
  • UDP 不可靠,但可以在应用层增加可靠性。应用程序可以使用 UDP,并且可以通过在应用程序层使用超时和重发来实现可靠。

你可以在这里阅读: https://www.geeksforgeeks.org/why-does-dns-use-udp-and-not-tcp/

【讨论】:

  • 您的答案的 3 条注释:1) DNS 仅使用 UDP - 有时它也使用 TCP。 2)TCP的慢主要在于not在连接建立上(反过来not只是3次握手)。 3) 可靠性可以添加到更高层,但 不是 DNS 的情况。
  • dns 如何使用 tcp。请解释@MarianD ???随着响应时间的增加
  • @AmanGupta,请看我回答的最后两段。
  • 此答案已被抄袭,包括错别字,此处:geeksforgeeks.org/why-does-dns-use-udp-and-not-tcp
  • 是的,我是从另一个来源得到的,我不记得了。我本来可以给它命名的。
【解决方案2】:

UDP 很便宜。 UDP 本身并不可靠,但更高级别的协议(如 DNS)可以保持可靠性,例如在没有响应的情况下重复UDP数据报。

DNS 的情况并非如此。 DNS 本身有时也使用除了UDP(作为其主要协议)之外的可靠传输控制协议 (TCP)。

当响应数据大小超过512 字节时使用最后一个,并且用于需要可靠传递的任务(例如区域传输)。

此外,还有一些解析器实现将TCP 用于所有个查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    相关资源
    最近更新 更多