原来的:
DNS 占用 UDP 和 TCP 的 53 端口是公认的事实,这种单一应用协议同时使用两种传输协议的情况在 TCP/IP 协议栈中也属于例外,但很少有人知道 DNS 在什么情况下会同时使用这两种协议。
我们先简单介绍一下TCP和UDP。
TCP是面向连接的协议,提供可靠的数据传输,一般在对服务质量要求比较高的场合使用。UDP---用户数据报协议是一种无连接的传输层协议,为事务提供简单、不可靠的信息传输服务。
TCP与UDP的区别:
UDP与TCP的主要区别在于它们如何实现可靠的信息传输。TCP包含一种特殊的送达保障机制,当数据接收方收到发送方的信息后,会自动向发送方发送确认信息,发送方只有收到确认信息后才会继续传输其它信息,否则会一直等到收到确认信息为止。与TCP不同,UDP并不提供数据传输的保障机制,如果在数据报从发送方到接收方的传输过程中丢失了,协议本身无法做出任何检测或提示,因此人们通常称UDP为不可靠的传输协议。UDP与TCP相比的另一个不同之处在于如何突发式地接收多个数据报。与TCP不同,UDP无法确保数据发送和接收的顺序,事实上UDP的这种无序性很少发生,通常只有在网络非常拥堵时才有可能出现。
既然UDP是一种不可靠的网络协议,那使用它的价值或必要性又是什么呢?其实不然,在某些情况下UDP协议可能变得非常有用。因为UDP具有TCP无法比拟的速度优势。虽然TCP协议中嵌入了各种安全功能,但在实际执行过程中会占用很大的系统开销,这无疑会严重影响速度。另一方面,UDP排除了可靠的信息传输机制,将安全、排序等功能交由上层应用程序来完成,大大减少了执行时间,保证了速度。
DNS 在执行区域传输时使用 TCP 协议,其他时候使用 UDP 协议;
DNS 规范规定了两种类型的 DNS 服务器,一种称为主 DNS 服务器,一种称为辅助 DNS 服务器。在一个区域中,主 DNS 服务器从自己的本地数据文件中读取该区域的 DNS 数据信息,而辅助 DNS 服务器则从该区域的主 DNS 服务器读取该区域的 DNS 数据信息。当辅助 DNS 服务器启动时,需要与主 DNS 服务器进行通信并加载数据信息,这个过程称为区域传输。
为什么同时使用 TCP 和 UDP?
首先我们来了解一下TCP和UDP传输字节的长度限制:
UDP 消息的最大长度为 512 字节,而 TCP 允许消息长度超过 512 字节。当 DNS 查询超过 512 字节时,协议的 TC 标志将被删除,并使用 TCP 发送。通常,传统的 UDP 消息不会大于 512 字节。
使用 TCP 进行区域传输时,主要需要考虑两个方面:
1、辅助域名服务器会定期(一般每3小时一次)向主域名服务器查询数据是否有变化,如果有变化,则进行区域传输,同步数据。区域传输会使用TCP,而不是UDP,因为数据同步传输的数据量比一次请求和响应的数据量要大得多。
2.TCP是可靠的连接,保证数据的准确性。
UDP协议用于域名解析:
客户端向 DNS 服务器查询域名时,返回的内容一般不超过 512 字节,可以使用 UDP 传输。这样就无需 TCP 三次握手,从而减轻了 DNS 服务器的负载,并可以更快地做出响应。虽然理论上客户端在查询 DNS 服务器时也可以指定使用 TCP,但实际上,许多 DNS 服务器在配置时仅支持 UDP 查询数据包。
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。