【计算机网络】为什么DNS协议采用的是UDP作为传输层协议,而不是TCP?

简介: 【1月更文挑战第10天】【计算机网络】为什么DNS协议采用的是UDP作为传输层协议,而不是TCP?

实际上DNS协议同时采用了UDP和TCP两种传输层协议。他同时占用了UDP和TCP的53端口。那么这个问题就变成了为什么DNS同时使用了UDP和TCP两种传输层协议?

首先对于TCP协议来说,在进行请求和响应前后需要进行连接的建立,即TCP需要进行三次握手建立连接,四次挥手释放连接。相对于UDP而言,UDP不用进行连接的建立和释放,在这一步加快了请求响应的时间。再者TCP首部需要20个字节,而UDP的首部只有8字节,从数据的传输上考虑当然UDP的效率更高。并且TCP具有一些一的可靠传输机制,在保证数据的可靠性前提下,会耗费一定的资源对数据进行校验。而UDP只保证了请求尽最大努力交付,不提供可靠传输机制,如果在数据传输的过程中出现部分数据的丢失,UDP 协议本身并不能做出任何检测或补救措施。正是由于 UDP 没有了可靠传输机制,所以速度远远快于 TCP。

这就是为什么DNS协议偏向使用UDP的原因,那么为什么还要采用TCP也作为传输层协议呢?

首先,TCP是面向字节流的,UDP面向报文。TCP具有序列号机制,发送方会把一个大的HTTP报文按序号分割成若干报文段并加上TCP首部,封装成为TCP报文段。接收方在收到这些报文段之后,就会按照序列号按照原来的顺序重组HTTP报文。

而UDP面向报文,发送方的UDP对应用层交付下来的HTTP报文,在添加了UDP首部后,封装成为UDP报文后,就交付给下层IP协议。不对应用层交付下来的报文进行任何拆分和合并。

互联网上物理链路的最小传输单元 = 576 字节,为了在物理链路上顺利传输,UDP 报文不能超过 576 字节,为此,UDP 报文被限制在 512 字节以内。

而 DNS 由于大面积使用了 UDP,这样一旦 DNS 报文超过 512 字节,基于 UDP 的 DNS 报文就只有抛弃多出来的 64 字节,截短为 512 字节,那么用户得到的 DNS 报文就是不完整的。

相关文章
|
9月前
|
数据采集 算法 数据挖掘
模块化控制协议(MCP)在网络中增强智能体执行效率的研究
随着Web3技术的迅速发展,去中心化应用和智能体在各种领域的应用逐渐增多。MCP(Modularized Control Protocol,模块化控制协议)作为一种增强智能体执行能力的关键技术,为Web3场景中的智能体提供了更强的灵活性和可扩展性。本文将探讨如何利用MCP技术提升智能体在Web3场景中的执行能力,并通过实例代码展示其实现路径。
888 22
|
6月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
7月前
|
运维 架构师 安全
二层协议透明传输:让跨域二层协议“无感穿越”多服务商网络
简介:本文详解二层协议透明传输技术,适用于企业网工、运营商及架构师,解决LLDP/LACP/BPDU跨运营商传输难题,实现端到端协议透传,提升网络韧性与运维效率。
|
11月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
337 18
|
网络协议 数据安全/隐私保护 网络架构
|
7月前
|
网络协议 安全 网络安全
什么是TCP/UDP/HTTP?它们如何影响你的内网穿透体验?
数据的传输离不开各种协议,它们就像现实世界中的交通规则,规定了数据如何打包、寻址、传输和接收。对于使用内网穿透的用户来说,理解TCP、UDP和HTTP这些基础协议的特点,能帮助你更好地理解其性能表现,并选择最适合的配置方案。
|
9月前
|
网络协议 安全 网络安全
详细阐述 TCP、UDP、ICMPv4 和 ICMPv6 协议-以及防火墙端口原理优雅草卓伊凡
详细阐述 TCP、UDP、ICMPv4 和 ICMPv6 协议-以及防火墙端口原理优雅草卓伊凡
655 2
|
12月前
|
网络协议 Java 开发工具
全平台开源即时通讯IM框架MobileIMSDK:7端+TCP/UDP/WebSocket协议,鸿蒙NEXT端已发布,5.7K Stars
全平台开源即时通讯IM框架MobileIMSDK:7端+TCP/UDP/WebSocket协议,鸿蒙NEXT端已发布,5.7K Stars
687 1
|
网络协议 算法 网络性能优化
|
监控 网络协议 网络性能优化
不再困惑!一文搞懂TCP与UDP的所有区别
本文介绍网络基础中TCP与UDP的区别及其应用场景。TCP是面向连接、可靠传输的协议,适用于HTTP、FTP等需要保证数据完整性的场景;UDP是无连接、不可靠但速度快的协议,适合DNS、RIP等对实时性要求高的应用。文章通过对比两者在连接方式、可靠性、速度、流量控制和数据包大小等方面的差异,帮助读者理解其各自特点与适用场景。