udp是什么(为什么 DNS 使用 UDP 协议?)

2020年8月22日 评论 1

udp是什么(为何 DNS 应用 UDP 协议书?)今日要剖析的实际难题是『为何 DNS 应用 UDP 协议书』,DNS 做为全部互联网技术的通信录,它可以将能够被别人了解的网站域名译成能够被设备了解的 IP 详细地址,促使互联网技术的使用人已不必须直接接触难以阅读文章和了解的 IP 详细地址。创作者以前在详细说明 DNS 与 CoreDNS 的完成基本原理一文中详细介绍过 DNS 的完成基本原理,本文中就不容易详细介绍 DNS 的完成基本原理了,很感兴趣的阅读者能够看一下。

udp是什么(为什么 DNS 使用 UDP 协议?)

坚信 DNS 应用 UDP 协议书早已变成了前端工程师的基本常识,对计算机网稍有掌握的人都了解 DNS 会应用 UDP 协议书传送数据,可是这一见解实际上并不是完全的正确的,大家在这儿便会深入分析『为何 DNS 会应用 UDP 传送数据』及其『为何 DNS 不仅会应用 UDP 传送数据』2个难题,期待可以协助诸位阅读者了解 DNS 协议书的全景。

简述

大家即将探讨的2个难题实际上并不矛盾,在绝大部分状况下,DNS 全是应用 UDP 协议书开展通讯的,DNS 协议书在设计方案之初也强烈推荐我们在开展解析域名时最先应用 UDP,这的确能处理许多要求,可是不可以处理所有的难题。

事实上,DNS 不但应用了 UDP 协议书,也应用了 TCP 协议书,但是在实际详细介绍今日的难题以前,大家還是要对 DNS 协议书开展简易的详细介绍:DNS 查寻的种类不仅包括 A 纪录、CNAME 纪录等普遍查寻,还包括 AXFR 种类的独特查寻,这类独特查寻关键用以DNS 地区传送,它的功效便是在好几个取名集群服务器迅速转移纪录,因为查寻回到的回应较为大,因此会应用 TCP 协议书来传送数据包。

做为被普遍应用的协议书,大家可以寻找十分多 DNS 有关的 RFC 文本文档,DNS Camel Viewer中列举了接近 300 个与 DNS 协议书有关的 RFC 文本文档,在其中有 6 个是现阶段的互联网技术规范,有 102 个是 DNS 有关的提议,这种文本文档相互组成了大家现阶段针对 DNS 协议书的设计方案了解,创作者也没有办法去一一阅读文章在其中的內容,只挑选了在其中一些关键的文本文档帮大家了解 DNS 的发展历程及其它与 UDP/TCP 协议书的关联,这儿总是摘录文本文档中与 UDP/TCP 协议书有关的內容:

  • RFC1034 · Domain Names - Concepts and FacilitiesInternet Standard, 1987-11
    • DNS 查寻能够根据 UDP 数据文件或是 TCP 联接开展传送;
    • 因为 DNS 地区传送的作用针对数据信息的精确拥有极强的要求,因此大家务必应用 TCP 或是别的的靠谱协议书来解决 AXFR 种类的要求;

    2.RFC1035 · Domain Names - Implementation and Specification互联网技术适用取名网络服务器根据 TCP 或是 UDP 协议书开展浏览;

    • UDP 协议书带上的信息不应该超出 512 字节数,超出的信息会被断开并设定 DNS 协议书的 TC 位,UDP 协议书针对地区传送作用是不能接纳的,不过是互联网技术上标准查询的强烈推荐协议书。根据 UDP 协议书推送的查寻很有可能会遗失,因此必须重新传输对策处理这个问题;

    3.RFC1123 · Requirements for Internet Hosts – Application and SupportInternet Standard, 1989-10

    • 将来界定的新 DNS 纪录种类很有可能会包括超出 512 字节数的信息内容,因此大家应当应用 TCP 协议书来传送 DNS 纪录;因而在线解析和取名服务项目必须应用 TCP 协议书做为 UDP 没法满足需求时的备份数据;
    • DNS 在线解析和递归网络服务器务必适用 UDP 协议书,而且应当适用应用 TCP 协议书推送非地区传送的查寻;换句话说,DNS 在线解析或是网络服务器在推送非地区传送查寻时,务必先推送一个 UDP 查寻,假如该查寻的回应被断开,它应当试着应用 TCP 协议书再次要求;

    4.RFC3596 · DNS Extensions to Support IP Version 6Internet Standard, 2003-10

    • 根据 DNS 拓展适用 IPv6 协议书,每一个 IPv6 占 16 个字节数是 IPv4 的四倍;

    5.RFC5011 · Automated Updates of DNS Security (DNSSEC) Trust AnchorsIndependent, 2007-10

    • 增加多种多样資源纪录为 DNS 手机客户端的 DNS 数据来源开展验证,纪录包括的数据信息通常很大;

    6.RFC6376 · DomainKeys Identified Mail (DKIM) SignaturesInternet Standard, 2011-09

    • 挑选适合的键尺寸开展数据加密是必须在成本费、特性和风险性中间的衡量,殊不知大的键(4096-bit)很有可能没有办法立即放进 DNS UDP 回应包中立即回到;

    7.RFC6891 · Extension Mechanisms for DNS (EDNS(0))Internet Standard, 2013-04

    • 应用 UDP 开展传送的 DNS 查寻和回应较大 不可以超出 512 字节数,不可以适用很多 IPv6 详细地址或是 DNS 安全性签字等纪录的传送;
    • EDNS 为 DNS 出示了拓展作用,让 DNS 根据 UDP 协议书带上数最多 4096 字节数的数据信息;

    8.RFC7766 · DNS Transport over TCP - Implementation RequirementsProposed Standard, 2016-03

    • 当手机客户端接受到一个被环节的 DNS 回应时,应当根据 TC 字段名分辨是不是必须根据 TCP 协议书反复传出 DNS 查寻要求;
    • DNSSEC 的引进促使断开的 UDP 数据文件越来越十分普遍;
    • 应用 UDP 传送 DNS 的数据文件尺寸超出较大 传送模块(MTU)时很有可能会造成 IP 数据文件的分块,RFC1123 文本文档中预测分析的将来早已来临了,唯一一个用以提升 UDP 可以带上数据文件尺寸的 EDNS 体制被觉得不足靠谱;
    • 全部通用性 DNS 完成务必要另外适用 UDP 和 TCP 传输协议,在其中包含权威性网络服务器、递归网络服务器及其桩在线解析;
    • 桩在线解析和递归在线解析能够依据状况挑选应用 TCP 或是 UDP 查寻立即要求总体目标网络服务器,以 UDP 协议书来刚开始进行 DNS 要求已不是强制的,TCP 协议书与 UDP 协议书在 DNS 查寻中能够相互之间取代,而不是做为再试体制;

    9.Specification for DNS over Transport Layer Security (TLS)Proposed Standard, 2016-05

    • 在 DNS 协议书中引进 TLS 来为客户出示隐私保护,降低对 DNS 查寻的监听和伪造,可是 TLS 协议书的引进会产生一些特性层面的附加花销;

    10.RFC8484 · DNS Queries over HTTPS (DoH)Proposed Standard, 2018-10

    • 界定了一种根据 HTTPS 推送 DNS 查寻和获得 DNS 回应的协议书;

    我们可以简易小结一下 DNS 的发展历程,1987 年的RFC1034和RFC1035界定了最开始版本号的 DNS 协议书,刚被设计方案出去的 DNS 便会另外应用 UDP 和 TCP 协议书,针对绝大部分的 DNS 查寻而言都是应用 UDP 数据信息报开展传送,TCP 协议书总是在地区传送的情景中应用,在其中 UDP 数据文件总是传送较大 512 字节数的数据信息,不必要的会被断开;一年后公布的RFC1123预测分析了 DNS 纪录中储存的数据信息会愈来愈多,另外也第一次显示信息的强调了发觉 UDP 包被断开时应当根据 TCP 协议书再试。

    udp是什么(为什么 DNS 使用 UDP 协议?)

    过去了接近 20 年的時间,因为互联网技术的发展趋势,大家发觉 IPv4 早已不足分派了,因此引进了更长的 IPv6,DNS 也在 2003 年公布的RFC3596中开展了协议书上的适用;接着公布的RFC5011和RFC6376提升了在身份验证和安全性层面的适用,可是也产生了极大的 DNS 纪录,UDP 数据文件被断开越来越十分普遍。

    RFC6891出示的 DN
    S 拓展体制可以协助我们在一定水平上处理大数据文件被断开的难题,降低了应用 TCP 协议书开展再试的必须,可是因为较大 传送模块的限定,这并不可以处理全部难题。

    DNS 出現以后的 30 很多年,RFC7766才总算明确提出了应用 TCP 协议书做为关键协议书来处理 UDP 没法处理的难题,TCP 协议书也已不仅仅一种再试时应用的体制,接着出現的 DNS over TLS 和 DNS over HTTP 也全是对 DNS 协议书的一种填补。

    从这一段发展趋势时看来,DNS 并不只是应用 UDP 数据文件开展通讯,在 DNS 的规范中就一直能见到 TCP 协议书的影子,我们在今日也是要想立在历史时间的视角上剖析 ——『为何 DNS 查寻挑选应用 UDP/TCP 协议书』。

    设计方案

    在这里一节中,大家将依据 DNS 应用协议书的不一样,分2个一部分详细介绍 UDP 和 TCP 二种不一样的协议书在适用 DNS 查寻和回应时有什么优势与劣势,在剖析的全过程中大家也会融合在历史上的前后文,复原作出设计方案管理决策时的情景。

    UDP

    UDP 协议书过去的几十年中实际上全是 DNS 关键应用的协议书,做为互联网技术的规范,现阶段的绝大部分 DNS 要求和回应都是应用 UDP 协议书开展数据信息的传送,大家根据抓包工具就能轻轻松松得到 以 UDP 协议书为媒介的 DNS 要求和回应。

    DNS 要求的数据信息都是以二进制的方式封裝成以下的所显示的 UDP 数据文件中,下边便是一个启用 DNS 网络服务器获得 www.baidu.com 网站域名 IP 详细地址的要求,从第四行的 05 字节数刚开始到最终便是 DNS 要求的內容,全部数据文件中除开 DNS 协议书有关的內容以外,还包括以太网接口、IP 和 UDP 的协议书头:

    0000 b0 6e bf 6a 4c 40 38 f9 d3 ce 10 a6 08 00 45 00 .n.jL@8.......E.

    0010 00 3b 97 ae 00 00 40 11 0b 0a c0 a8 32 6d 72 72 .;....@.....1mrr

    0020 72 72 f3 27 00 35 00 27 6b ee 0c 5a 01 00 00 01 rr.'.5.'k..Z....

    0030 00 00 00 00 00 00 03 77 77 77→05 62 61 69 64 75 .......www.baidu

    0040 03 63 6f 6d 00 00 01 00 01 .com.....

    尽管每一个 UDP 数据文件上都包括了许多以太网接口、IP、UDP 及其 DNS 协议书的相关内容,可是上边的 DNS 要求尺寸仅有 73 个字节数,所述 DNS 要求的回应也仅有 132 个字节数,这针对今日别的的普遍要求而言全是十分小的数据文件:

    0000 38 f9 d3 ce 10 a6 b0 6e bf 6a 4c 40 08 00 45 00 8......n.jL@..E.

    0010 00 76 00 00 00 00 96 11 4c 7d 72 72 72 72 c0 a8 .v......L}rrrr..

    0020 32 6d 00 35 f3 27 00 62 5b c2 0c 5a 81 80 00 01 1m.5.'.b[..Z....

    0030 00 03 00 00 00 00 03 77 77 77 05 62 61 69 64 75 .......www.baidu

    0040 03 63 6f 6d 00 00 01 00 01 c0 0c 00 05 00 01 00 .com............

    0050 00 02 cb 00 0f 03 77 77 77 01 61 06 73 68 69 66 ......www.a.shif

    0060 65 6e c0 16 c0 6b 00 01 00 01 00 00 01 18 00 04 en... ..........

    0070 3d 87 a9 7d c0 6b 00 01 00 01 00 00 01 18 00 04 =..}. ..........

    0080 3d 87 a9 79 =..y

    UDP 和 TCP 的通讯体制十分不一样,做为靠谱的传输协议,TCP 协议书必须通讯的彼此根据三次握手创建 TCP 联接后才能够通讯,可是在 30 年以前的 DNS 查寻的情景中大家实际上并不一定平稳的联接(或是认为不用),每一次 DNS 查寻都是立即向取名服务器发送 UDP 数据信息报,此外普遍 DNS 查寻的数据文件都十分小,TCP 创建联接会产生下列的附加花销:

    • TCP 创建联接必须开展三次通信网络;
    • TCP 创建联接必须传送 ~130 字节数的数据信息;
    • TCP 消毁联接必须开展四次通信网络;
    • TCP 消毁联接必须传送 ~160 字节数的数据信息;

    假定通信网络所耗费的时间能够忽视的不计入的,如果我们只考虑到 TCP 创建联接时传送的数据信息得话,能够简易计算出来一笔账:

    udp是什么(为什么 DNS 使用 UDP 协议?)

    • 应用 TCP 协(共 330 字节数)
    • 三次握手 — 14x3(Ethernet) 20x3(IP) 44 44 32 字节数
    • 查寻协议书头 — 14(Ethernet) 20(IP) 20(TCP) 字节数
    • 回应协议书头 — 14(Ethernet) 20(IP) 20(TCP) 字节数
    • 应用 UDP 协议书(共 84 字节数)
    • 查寻协议书头 — 14(Ethernet) 20(IP) 8(UDP) 字节数
    • 回应协议书头 — 14(Ethernet) 20(IP) 8(UDP) 字节数

    必须留意的是,大家在这儿数值的前提条件是 DNS 在线解析只必须与一个取名网络服务器或是权威性服务器虚拟机通讯就可以得到 DNS 回应,可是在具体情景中,DNS 在线解析很有可能会递归地与好几个取名服务器虚拟机通讯,这也翻倍地变大了 TCP 协议书在附加花销上的缺点。

    假如 DNS 查寻的要求体和回应分别是 15 和 70 字节数,那麼 TCP 对比于 UDP 协议书会提升 ~250 字节数和 ~145% 的附加花销,因此当要求体和回应的尺寸较为钟头,根据 TCP 协议书开展传送不但必须传送大量的数据信息,还会继续耗费大量的資源,数次通讯及其信息内容传送产生的经济成本在 DNS 查寻较钟头是没法被忽略的,TCP 联接产生的可信性在 DNS 的情景中未能充分发挥很大的功效。

    TCP

    今日的互联网情况实际上沒有几十年前设计方案的这么简单,大家不但碰到了 IPv4 将要没法分派的情况,并且还必须引进 DNSSEC 等体制来确保 DNS 查寻和要求的一致性及其传送安全性,总得来说,DNS 协议书必须解决的数据文件越来越大、数据信息也愈来愈多,可是『为何当必须传送的数据信息较多时大家就务必应用 TCP 协议书呢?』,假如再次应用 UDP 协议书就不可以进行 DNS 分析么。

    从理论上而言,一个 UDP 数据文件的尺寸数最多能够做到 64KB,这针对一个普遍的 DNS 查寻实际上是一个十分大的标值;可是在具体生产制造中,一旦数据文件中的数据信息超出了传输路由协议的较大 传送模块(MTU,也就是单独数据文件尺寸的限制,一般为 1500 字节数),当今数据文件就很有可能会被分块传送、丢掉,一部分的计算机设备乃至会立即回绝解决包括 EDNS(0) 选择项的要求,这便会造成应用 UDP 协议书的 DNS 不稳定。

    TCP 做为靠谱的传输协议,能够很好的处理这个问题,根据系列号、重新传输等体制可以确保信息的太重不漏水,信息接受方的 TCP 栈会对分块的数据信息再次开展组装,DNS 等应用层协议能够立即应用解决好的详细数据信息。另外,当数据文件充足大的情况下,TCP 三次握手产生的附加花销占比便会愈来愈小,与全部包的尺寸对比便会趋于于 0:

    • 当 DNS 数据文件尺寸为 500 字节数时,TCP 协议书的附加花销为 ~41.2%;
    • 当 DNS 数据文件尺寸为 1100 字节数时,TCP 协议书的附加花销为 ~20.7%;
    • 当 DNS 数据文件尺寸为 2300 字节数时,TCP 协议书的附加花销为 ~10.3%;
    • 当 DNS 数据文件尺寸为 4800 字节数时,TCP 协议书的附加花销为 ~5.0%;

    udp是什么(为什么 DNS 使用 UDP 协议?)

    因此,我们在 DNS 中储存较多的內容时,TCP 三次握手及其协议书头产生的附加花销就并不是关
    键要素了,但是大家 TCP 三次握手产生的三次数据传输用时還是没有办法防止的,这也是我们在现阶段的情景下迫不得已接纳的难题。

    小结

    许多人觉得 DNS 应用了 UDP 协议书来获得网站域名相匹配的 IP 详细地址,这一见解尽管没有错,可是還是有一些片面性,更为精确的叫法实际上是 DNS查寻在刚设计方案时关键应用 UDP 协议书开展通讯,而 TCP 协议书也是在 DNS 的演变和发展趋势中被添加到标准的:

  • DNS 在设计方案之初就在地区传送中引进了 TCP 协议书,在查寻中应用 UDP 协议书;
  • 当 DNS 超出了 512 字节数的限定,大家第一次在 DNS 协议书中确立了『当 DNS 查寻被断开时,应当应用 TCP 协议书开展再试』这一标准;
  • 接着引进的 EDNS 体制容许大家应用 UDP 数最多传送 4096 字节数的数据信息,可是因为 MTU 的限定造成的数据信息分块及其遗失,促使这一特点不足靠谱;
  • 在近期的两年,大家再次要求了 DNS 应当另外适用 UDP 和 TCP 协议书,TCP 协议书也已不仅仅再试时的挑选;
  • 本文早已详解了 DNS 的历史时间及其挑选不一样协议书时考虑到的关键环节,在这儿大家再次回望一下 DNS 查寻挑选 UDP 或是 TCP 二种不一样协议书时的关键缘故:

    • UDP 协议书
    • DNS 查寻的数据文件较小、体制简易;
    • UDP 协议书的附加花销小、拥有更强的特性主要表现;
    • TCP 协议书
    • DNS 查寻因为 DNSSEC 和 IPv6 的引进快速澎涨,造成 DNS 回应常常超出 MTU 导致数据信息的分块和遗失,大家必须借助更为靠谱的 TCP 协议书进行数据信息的传送;
    • 伴随着 DNS 查寻中包括的数据信息持续提升,TCP 协议书头及其三次握手产生的附加花销占比慢慢减少,已不是占有总传送数据尺寸的关键一部分;

    不论是挑选 UDP 還是 TCP,最关键的分歧就取决于必须传送的数据文件尺寸,假如数据文件小到一定水平,UDP 协议书肯定最好的挑选,可是当数据文件慢慢扩大直至提升 512 字节数及其 MTU 1500 字节数的限定时,大家也只有挑选应用更靠谱的 TCP 协议书来传送 DNS 查寻和相对。到最终,大家還是看来一些较为对外开放的有关难题,有兴趣爱好的阅读者能够细心思索一下下边的难题:

    • 怎样对应用 TCP 协议书的 DNS 开展一些提升,降低一些附加花销?
    • 大家如今早已能够应用 UDP/TCP/TLS/HTTPS 四种方法传送 DNS 数据信息,这种方法有哪些不同点?是不是还能够根据别的的协议书完成 DNS 查寻?

    假如对文章内容中的內容有疑问或是要想掌握大量软件开发上一些设计方案管理决策身后的缘故,能够在blog下边留言板留言,创作者会立即回应文中有关的疑惑并挑选在其中适合的主题风格做为事后的內容。

    如有转载,请注明本文链接: http://www.luding333.com/176052.html

    AD:【内容仅限学习交流使用,如有侵权联系作者删除】

    商品标题怎么写(商品的标题语该如何去写) 创业新闻

    商品标题怎么写(商品的标题语该如何去写)

    产品标题怎么写(产品的题目语该如何去写)京东商城商品标题的设定和提升,这一还可以说成一个老调重弹的层面了。终究题目的必要性,也是许多店家都掌握的。那麼应当如何去提升呢?很有可能還是有一部分店家对于此事...
    相关性分析结果怎么看(要做相关性分析) 创业新闻

    相关性分析结果怎么看(要做相关性分析)

    有关明确是要剖析不一样要素间的关联性? 相关分析关键用以:(1)分辨2个或好几个自变量中间的应用统计学关系;(2)假如存有关系,进一步剖析关系抗压强度和方位。 那麼,哪些的科学研究能够开展相关分析呢?...
    匿名

    发表评论

    匿名网友 填写信息

    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: