【DNS系列】使用TCP传输

ops/2025/3/14 21:37:48/

DNS ​默认使用UDP协议​(端口53)进行通信,但在以下场景中会切换到TCP协议​(端口53):

1. 响应数据过大(超过512字节)​

  • UDP限制:DNS的UDP协议默认限制单个数据包大小为512字节​。如果响应数据(如包含多条记录的查询结果)超过此限制,服务器会强制使用TCP。
  • 机制
    • 当UDP响应被截断(Truncated)时,客户端会重新发起TCP请求。
    • 例如:查询包含大量记录的域(如大型企业的子域名列表)。
[root@master ~]# dig cccccccccc.yunqi1215.asia txt @clare.dnspod.net  ;; Truncated, retrying in TCP mode. ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.15 <<>> cccccccccc.yunqi1215.asia txt @clare.dnspod.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41590 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;cccccccccc.yunqi1215.asia.     IN      TXT ;; ANSWER SECTION: cccccccccc.yunqi1215.asia. 600  IN      TXT     "222222222222222222277777777777777777777777777777777777777777777777777777777777777777777777777777777777777777766666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666sssssssssssssssssssssssssssssssssssssss" "ssssssssssssssssssssssssssssssssllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" "nnnnnnnnnnfdpgkfbgfonbmgfpbmefpbp,pwr" ;; AUTHORITY SECTION: yunqi1215.asia.         86400   IN      NS      clare.dnspod.net. yunqi1215.asia.         86400   IN      NS      sagitta.dnspod.net. ;; Query time: 30 msec ;; SERVER: 112.80.181.45#53(112.80.181.45) ;; WHEN: 一 3月 25 14:32:44 CST 2024 ;; MSG SIZE  rcvd: 678 

2. 区域传输(Zone Transfer)​

  • 全量传输(AXFR)和增量传输(IXFR)​:主从DNS服务器之间的区域传输必须使用TCP
  • 原因
    • 区域文件通常较大(可能包含数千条记录),需要可靠传输。
    • TCP的流控、重传机制保证数据完整性。

3. 高可靠性场景

  • TCP的重传机制:在不可靠网络环境中,若UDP请求多次失败(如丢包),客户端可能改用TCP重试。
  • 应用场景:关键业务域名解析(如金融、政务系统)要求高可靠性。

http://www.ppmy.cn/ops/165481.html

相关文章

基于Redis实现限流

限流尽可能在满足需求的情况下越简单越好&#xff01; 1、基于Redsi的increment方法实现固定窗口限流 Redis的increment方法保证并发线程安全窗口尽可能越小越好(太大可能某一小段时间就打满请求剩下的都拿不到令牌了)这个原理其实就是用当前时间戳然后除窗口大小 在这个窗口大…

视频推拉流:EasyDSS平台直播通道重连转推失败原因排查与解决

视频推拉流EasyDSS视频直播点播平台&#xff0c;集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体&#xff0c;可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 用户使用EasyDSS平台对直播通道进行转推&#xff0c;发现只要关闭…

机器学习—赵卫东阅读笔记(一)

第一章&#xff1a;机器学习基础 1.1.2 机器学习主要流派 1.符号主义 2.贝叶斯分类——基础是贝叶斯定理 3.联结主义——源于神经学&#xff0c;主要算法是神经网络。——BP算法&#xff1a;作为一种监督学习算法&#xff0c;训练神经网络时通过不断反馈当前网络计算结果与…

vb编程有哪些相关的IDE开发工具vb.net,Basic语言?

在编程领域&#xff0c;VB 系列拥有丰富多样的 IDE 开发工具&#xff0c;为不同需求的开发者提供了广泛的选择&#xff0c;以下为你详细介绍&#xff1a; 兼容 VB6 源码的开发工具 twinbasic&#xff1a;属于 VB7 系列&#xff0c;它几乎能 100% 兼容 VB6 源码&#xff0c;这…

doris:ClickHouse

Deepseek R1 提供的 3D 迷宫设计方案是一个结合虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;和物理迷宫的创新项目&#xff0c;旨在为用户提供沉浸式体验。以下是该设计方案的详细讲解&#xff1a; 1. 设计目标 沉浸式体验&#xff1a;通过 3D 技…

鸿蒙ArkTs如何实现v-html的功能,显示富文本内容?

鸿蒙ArkTs如何实现v-html的功能&#xff0c;显示富文本内容&#xff1f; 先看效果前言功能介绍解决方案hp-richtext介绍hp-richtext 组件是如何实现的&#xff1f;下载安装代码示例richTextOption属性自定义 parser 函数具体介绍imageProp 对象具体属性 我在使用中遇到的问题问…

微信小程序-实现锚点跳转,页面加载后自动跳转、点击跳转到指定位置

一、页面加载后滚动到指定位置&#xff0c;onLoad或onReady里执行。 scrollAfterLoading() {const query wx.createSelectorQuery()query.select(#cont1).boundingClientRect()query.selectViewport().scrollOffset()query.exec(function (res) {wx.pageScrollTo({scrollTop:…

hadoop第3课(hdfs shell常用命令)

一、Hadoop FS 基础操作命令 1. 查看帮助 hadoop fs -help [命令名] # 查看具体命令的帮助文档 # 示例&#xff1a; hadoop fs -help mkdir2. 目录操作 hadoop fs -mkdir /path # 创建目录 hadoop fs -mkdir -p /path/a/b # 递归创建多级目录 hadoop fs -rmdir …