DNS在两种情况下使用TCP
1.如果用wireshark、sniffer或古老些的tcpdump抓包分析,会发现几乎所有的情况都是在使用UDP,使用TCP的情况非常罕见。其实当解析器发出一个request后,返回的response中的tc删节标志比特位被置1时,说明反馈报文因为超长而有删节。这是因为UDP的报文最大长度为512字节。解析器发现后,将使用TCP重发request,TCP允许报文长度超过512字节。既然TCP能将data stream分成多个segment,它就能用更多的segment来传送任意长度的数据。
UDP报文的最大长度为512字节,而TCP则允许报文长度超过512字节。当DNS查询超过512字节时,协议的TC标志出现删除标志,这时则使用TCP发送。通常传统的UDP报文一般不会大于512字节。
2.另外一种情况是,DNS在进行区域传输的时候使用TCP协议,其它时候则使用UDP协议。
DNS的规范规定了2种类型的DNS服务器,一个叫主DNS服务器,一个叫辅助DNS服务器。在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。当一个辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息,这就叫做区传送(zone transfer)。
辅域名服务器会定时(一般时3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,则会执行一次区域传送,进行数据同步。区域传送将使用TCP而不是UDP,一是因为数据同步传送的数据量比一个请求和应答的数据量要多得多;二是因为TCP是一种可靠的连接,保证了数据的准确性。
DNS更多情况下使用UDP
客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过TCP三次握手,这样DNS服务器负载更低,响应更快。虽然从理论上说,客户端也可以指定向DNS服务器查询的时候使用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。

DNS使用TCP和UDP的端口号53相关推荐

  1. (6)TCP与UDP之端口号

    1.端口号的定义 数据链路层的地址是MAC地址,用来识别同一链路中不同的计算机 网络层(IP)的地址是IP地址,用来识别TCP/IP网络中互连的主机和路由器 传输层中类似于地址的概念就是端口号 端口号 ...

  2. Windows防火墙之DNS端口号

    公司的有独立的DNS服务器,每一个人上网都要去那台DNS服务器进行查询.今天突然上不了网了,本以为是代理服务器出问题了,但是查了.也测试了没有什么异常问题.最后在客户端电脑上使用ping都能ping通 ...

  3. TCP/UDP端口号

    大家好呀,我是请假君,今天又来和大家一起学习数通了,今天要分享的知识是TCP/UDP端口号. 在IP网络中,一个IP地址可以唯一地标识一个主机.但一个主机上却可能同时有多个程序访问网络,要标识这些程序 ...

  4. linux修改dns端口号,Linux防火墙设置-DNS服务器篇

    亲测可用,对于刚刚搭建了DNS服务器,需要开启防火墙但又不知道该怎么设置的朋友,可以参考下面的内容,或者直接使用我下面给出的脚本程序. 如果服务器是作为DNS服务器使用的,针对绝大多数的情况,为了开启 ...

  5. DNS默认的端口号是: 53

    DNS默认的端口号是: 53 DNS : 域名系统(主机命名系统) DNS 是 ( Domain Name System ) 的缩写 DNS协议运行在UDP协议之上,使用端口号53.

  6. 详解 TCP 和 UDP

    本篇文章转载自公众号:网络技术平台 https://mp.weixin.qq.com/s/8iyxF1tT3JhyHKdyeF1uAg 目录 一.概述 二.初始传输层 2.1 TCP 2.2 UDP ...

  7. Java开发数据库默认端口及网络常用端口号

    更多免费教学文章请关注这里 一 :Oracle 驱动:oracle.jdbc.driver.OracleDriver URL:jdbc:oracle:thin:@<machine_name> ...

  8. TCP、UDP、IP头部结构

    数据传输在TCP/IP网络模型中,经过一层便会添加一层头部,其中TCP(网络传输协议),UDP处于传输层,IP(网间协议)处于网络层. 数据进入协议栈的封装过程 TCP/IP协议族 TCP 传输控制协 ...

  9. xserver服务端口号_服务器怎么开通端口号

    dns端口号的服务器如何开启端口 答:在架设dns服务器时,linux系统需要在防火墙规则中内加入UDP端口53的外网访问,windows系统需要在防火墙里添加端口,选择UDP,输入端口号53,如果使 ...

最新文章

  1. Webpack 代码分离
  2. 平面广告设计和Web设计的差别
  3. 搜索和其他机器学习问题有什么不同?
  4. 浙江大学远程教育计算机应用基础第4次,浙江大学远程教育计算机应用基础5.Powerpoint知识题.docx...
  5. Windows环境下多个tomcat启动方法
  6. table隔行变色与table单元格根据条件更改字体颜色
  7. 190303每日一句
  8. ajax性能测试脚本,mqtt性能测试工具
  9. 无法忘却的旋律:《荷东》、《猛士》各专辑的曲目列表
  10. win7本地登录计算机,win7系统绑定微软账户到本地电脑上的具体办法
  11. linux cp并打包目录,【linux】【qt5】【将linux下的qt程序打包发布(完全适用于中标麒麟)】...
  12. 互联网创业项目加盟,超低门槛,0经验也能开
  13. Android游戏之仿 微信飞机大战
  14. 常见的计算机局域网拓扑有,计算机网络原理 常见的局域网拓扑结构
  15. 如何安装打印机驱动程序?快速安装的方法
  16. x的y次方python表达式怎么写_x 的 y 次方(xy) 以下表达式正确的是________
  17. 电源防反接电路设计(重要)
  18. 2019-2020记罗振宇“时间的朋友”跨年演讲(一)
  19. 2022-12-01:从不订购的客户。找出所有从不订购任何东西的客户,以下数据的答案输出是Henry和Max,sql语句如何写? DROP TABLE IF EXISTS `customers`; C
  20. 华为5g服务器硬件供应商,华为P50系列硬件供应商名单曝光,国产化程度高,5G版或延后上市...

热门文章

  1. 微信小程序:云开发·初探
  2. 澳门赌王何鸿燊谈成功秘决
  3. C语言指针操作(一)指针变量
  4. 电子人的基因 Cyborg Genes
  5. Sentinel的规则
  6. matlab凸透镜防仿真,西安邮电大学matlab仿真解剖.doc
  7. 聚类算法(K-means AGNES DBSCAN)
  8. 消灭中间商!他们用区块链技术实现流量的点对点交易
  9. python put指令是什么意思_request.put()但它请求使用PUT在我的Python上使用GET
  10. 服务端JAVA执行js_[Java][Js]利用Rhino在服务器端执行JavaScript