DNS协议--笔记

引自: 

什么是DNS? - 知乎 (zhihu.com) 

超详细 DNS 协议解析 - 知乎 (zhihu.com)

  • IP 地址:一长串能够唯一地标记网络上的计算机的数字
  • 域名:又称网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)比如 www.baidu.com

不知道有没有同学会混淆域名和网址的概念,可以这样理解,网址里面含有域名。举个例子:www.gitee.com/veal98 就是一个网址,而 www.gitee.com 就是域名 

域名其实是具有一定的层次结构的,从上到下依次为:根域名顶级域名(top level domain,TLD)、二级域名、(三级域名)

  • DNS概括

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址互相映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。

  • DNS的作用

DNS系统的作用

正向解析:根据主机名称(域名)查找对应的IP地址

反向解析:根据IP地址查找对应的主机域名

DNS系统的分布式数据结构        

2.域名类型
 

一是国际域名(international top-level domain-names,简称iTDs),也叫国际顶级域名。这也是使用最早也最广泛的域名。例如表示工商企业的 .com .top,表示网络提供商的.net,表示非盈利组织的.org等。

二是国内域名,又称为国内顶级域名(national top-level domainnames,简称nTLDs),即按照国家的不同分配不同后缀,这些域名即为该国的国内顶级域名。200多个国家和地区都按照ISO3166国家代码分配了顶级域名,例如中国是cn,美国是us,日本是jp等。
 

3.类型
 


主域名服务器
负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改


辅助域名服务器
当主域名服务器出现故障、关闭或负载过重时,辅助域名服务器作为主域名服务器的备份提供域名解析服务。辅助域名服务器中的区域文件中的数据是从另外的一台主域名服务器中复制过来的,是不可以修改的


缓存域名服务器
从某个远程服务器取得每次域名服务器的查询回答,一旦取得一个答案就将它放在高速缓存中,以后查询相同的信息就用高速缓存中的数据回答,缓存域名服务器不是权威的域名服务器,因为它提供的信息都是间接信息


转发域名服务器
负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

二、两个纯净DNS


1、114.114.114.114
  114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。

2、8.8.8.8
  8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用。

三、如何合理选择DNS


    DNS对于网民来说,就跟灯塔和航海人员的道理是一样的,选择合理的DNS可以有效的帮助我们防止DNS劫持、提升上网速度等,那么,如何合理的选择DNS呢?

1、选择本地干净的DNS

  目前世界上的大中型网站都是采用CDN做内容分发的,从而可以确保用户就近的接入、提升访问速度,不少的网站会使用DNS作为识别,因此,如果本人在北京,却选择了上海的DNS,就有可能会被网站认为是上海的用户而引导到上海的服务器上去。 
  不过所幸,现在的不少网站都根据IP地址来引导用户的。

2、选择安全无毒、免费的DNS

  目前国内有不少的免费、安全而且无毒的DNS,常见的如百度提供的180.76.76.76、阿里提供的223.5.5.5和223.6.6.6、前文提到的114.114.114.114

出处:https://javaforall.cn/180458.html原文链接:https://javaforall.cn 从指定的域名服务器来查询域名对应的IP地址。

 nslookup指定服务器是什么命令,nslookup命令详解_nslookup命令指定dns[通俗易懂]

为什么 UDP 头部没有「首部长度」字段,而 TCP 头部有「首部长度」字段呢?

原因是 TCP 有可变长的「选项」字段,而 UDP 头部长度则是不会变化的,无需多一个字段去记录 UDP 的首部长度。

为什么 UDP 头部有「包长度」字段,而 TCP 头部则没有「包长度」字段呢?

先说说 TCP 是如何计算负载数据长度:

其中 IP 总长度 和 IP 首部长度,在 IP 首部格式是已知的。TCP 首部长度,则是在 TCP 首部格式已知的,所以就可以求得 TCP 数据的长度。

大家这时就奇怪了问:“UDP 也是基于 IP 层的呀,那 UDP 的数据长度也可以通过这个公式计算呀? 为何还要有「包长度」呢?”

这么一问,确实感觉 UDP 的「包长度」是冗余的。

我查阅了很多资料,我觉得有两个比较靠谱的说法:

  • 第一种说法:因为为了网络设备硬件设计和处理方便,首部长度需要是 4 字节的整数倍。如果去掉 UDP 的「包长度」字段,那 UDP 首部长度就不是 4 字节的整数倍了        ,所以我觉得这可能是为了补全 UDP 首部长度是 4 字节的整数倍,才补充了「包长度」字段。

5. 首部开销

  • TCP 首部长度较长,会有一定的开销,首部在没有使用「选项」字段时是 20 个字节,如果使用了「选项」字段则会变长的。
  • UDP 首部只有 8 个字节(其中是包含包长度字段的!!!),并且是固定不变的,开销较小。

  • 第二种说法:如今的 UDP 协议是基于 IP 协议发展的,而当年可能并非如此,依赖的可能是别的不提供自身报文长度或首部长度的网络层协议,因此 UDP 报文首部需要有长度字段以供计算。
  • 可以参看这个UDP数据格式进行理解数据包的长度

猜你喜欢

转载自blog.csdn.net/Hoshea_sun/article/details/129743830