ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DNS为什么查询根域名服务器只返回13个IP地址

2021-03-15 22:57:48  阅读:217  来源: 互联网

标签:UDP 字节 MSS 13 TCP DNS IP地址 512


一次DNS的递归查询,首先会查询根域名服务器(.),然后是com.,edu.,等顶级域,根域名服务器承载了全球ipv4的域名解析,他的数量肯定是越多越好,为什么一次查询根域名服务器器只返回13个IP地 址呢?我们先看看DNS包结构,再分析DNS包传输的⼀一些限制;


1、DNS包传输限制以太⽹的最⼤传输单元(MTU)是1500,就是说一次链路上传输的最⼤长度是1500,结合下图,IP⾸部20字节,UDP⾸部8字节,DNS包的⻓度是否是1500减去28呢?DNS主要使⽤用UDP协议,由于UDP协议是不不可靠的传输,没有TCP协议的超时和重传机制,所以UDP服务为了了避免分⽚片,都会对应⽤用做⼀个包长度的限制;图片先来直观的看⼀一下TCP协议传输⻓长度的协商机制:图片TCP协议在三次握手的时候,SYN包⾥里面的MSS字段代表TCP协议的最⼤报文段⻓度,通常情况下,MSS=MTU-20(IP⾸部长度)-20(TCP首部长度),通信的两端都通告⾃己能接收的最⼤大MSS,TCP协 议会选择两边较小的MSS作为这条连接的MSS,TCP协议设计的这种机制可以避免链路发生分片;

DNS限制⻓度是512字节,那么为什么是512呢?查阅相关资料料得知,IP协议实现规定,要求主机最少能 够收发576个字节的数据报。UDP的应用程序的限制⽐这个⻓度要小,⼤多应用限制在512字节。

2、DNS之UDP和TCP传输DNS协议有UDP,TCP两种,通常wireshark抓包看到的DNS请求通常都是UDP协议的,例如以下包:图片看⼀一下DNS 响应包中的字段:图片
其中,Truncated:字段代表响应是否被截断,当时Truncated:被置为1时,就意味着响应超过了了512字节,当前响应只返回了前512字节,这时DNS server会使⽤用TCP重发原来的请求,这样显然增加了了域 名解析时间。
当查询根域的NS记录时,为了了在⼀一个报⽂文中传完响应,512字节只够返回包含13个根域名服务器器的NS记录和A记录;所以虽然从⽹络覆盖角度考虑根域名服务器器的地址越多越好,实际上一次查询根域名服 务器器只返回到13个IP地址。


标签:UDP,字节,MSS,13,TCP,DNS,IP地址,512
来源: https://blog.51cto.com/15127549/2660762

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有