网站加速之本地DNS

一、问题背景:访问一个网页【开源中国】速度特别慢,作为一个技术控,以前cdn行业的从业者,这我肯定不能忍耶,那就搞它

网站加速之本地DNS

网站加速之本地DNS

二、解决方法:

1、打开平时测试网速的网站,把访问慢的网址【https://www.oschina.net/】放到DNS里面去解析,根据DNS解析找到最近一个访问的IP

测试网速的网站:

http://tool.chinaz.com/dns/?type=1&host=www.oschina.net%2Fhome%2Fopenid&ip=

网站加速之本地DNS

2、在本地电脑目录【C:WindowsSystem32driversetc】:hosts文件中添加对应 IP 和域名,并保存hosts文件

网站加速之本地DNS

网站加速之本地DNS

3、之后打开命令行【WIN+R;输入cmd;回车】

网站加速之本地DNS

4、刷新本地DNS加速:【在命令提示符下输入ipconfig /flushdns,如下图所示】

网站加速之本地DNS

5、之后刷新网页,测试访问速度有无提升?

结果就是速度比之前好太多

网站加速之本地DNS

三、此次网页加速原理:

因为通常你输入没被本地【C:WindowsSystem32driversetchosts】缓存的域名,他都要去dns服务器去查对应的服务器IP,然后再去访问IP;减少去别的DNS服务器解析之一步的时间,直接访问这个IP地址;缩短网页打开时间

如果你想进一步对网页加速,提高体验感知,可以使用CDN加速;通常这是网站拥有者考虑的,如果阁下财大气粗,可以直接联系CDN厂家把你要访问网址域名给CDN厂家加速。我知道CDN厂家有:网宿、白山云、阿里、腾讯、华为;若是想了解CDN加速的原理;可以参考一下这篇文章:

CDN初涉

四、接下来我就给大家说说这个DNS是个啥?

在吹DNS是个啥之前,首先我们来聊聊为何会出现DNS这个玩意,本人人一向坚信每个东西的诞生,都有人们对它强烈需求;在最开始网页的访问是通过:协议+IP+端口+文件存放目录来访问,协议还好,网页访问协议就http和https2个兄弟,这IP地址【xxx.xxx.xxx.xxx】全是数字,这对于普通人的我们,谁能记住他,它奶奶个腿,肯定是不能接受的,由于 IP 地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,为此,当时还在南加州大学工作的Paul Mockapetris博士发明和设计了DNS系统,通过利用分布式数据库来解决这个问题,主要作用是转换我们可读的主机名,例如:ww.oschina.net,转换成机器可读的IP地址212.64.62.183。接下来我在给大家说说如何区分一下域名和 IP 地址这个两个概念:

IP 地址:一长串能够唯一地标记网络上的计算机的数字

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

不知道有没有朋友会混淆域名和网址的概念,我是这样理解的,网址里面含有域名。举个例子:
www.gitee.com/veal98 就是一个网址,而 www.gitee.com 就是域名
人们设计出了域名,并通过域名解析协议(DNS,Domain Name System)来将域名和 IP 地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP 地址数串。将域名映射成 IP 地址称为正向解析,将 IP 地址映射成域名称为反向解析。

1、DNS协议:域名系统(Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCPUDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。DNS协议是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址);

2、DNS活在OSI的那一层?

和HTTP一样,都是活在应用层的家伙。

3、DNS服务器归谁管?

全世界域名的最高管理机构,是一个叫做 ICANN (Internet Corporation for Assigned Names and Numbers)的组织,总部在美国加州。ICANN 负责管理全世界域名系统的运作

网站加速之本地DNS

4、DNS层次的划分?

从上到下依次为:根域名顶级域名(top level domain,TLD)、二级域名、(三级域名)

网站加速之本地DNS

① 根域名服务器:上面我有说ICANN公司,ICANN 维护着一张根域名列表,里面记载着顶级域名和对应的托管商,其实根域名列表的正式名称是 DNS 根区(DNS root zone),保存 DNS 根区文件的服务器,就叫做 DNS 根域名服务器(root name server)。根域名服务器保存所有的顶级域名服务器的地址;由于早期的 DNS 查询结果是一个 512 字节的 UDP 数据包。这个包最多可以容纳 13 个服务器的地址,因此就规定全世界有 13 个根域名服务器,编号从 a.root-servers.net 一直到 m.root-servers.net。其中 10 台设置在美国,另外各有一台设置于荷兰、瑞典和日本。随着我国互联网行业迅速发展,下一代IPV6的25台DNS根服务器我国有4台

中国:1主3辅

美国:1主2辅

日本:1主

印度:3辅

法国:3辅

德国:2辅

上文聊过,理论上所有域名的查询都必须先查询根域名,所以一般来说所有的域名服务器都会注册一份根域名服务器的 IP 地址的缓存,用于在必要的时候向其发送请求。

② 顶级域名服务器

按照根域名服务器管理顶级域名的逻辑,顶级域名服务器显然就是用来管理注册在该顶级域名下的所有二级域名的,记录这些二级域名的 IP 地址。

③ 权限域名服务器

按照上面的逻辑,权限域名服务器应该是管理注册在二级域名下的所有三/四级域名的,但其实不是这样,如果一个二级域名或者一个三/四级域名对应一个域名服务器,则域名服务器数量会很多,我们需要使用划分区的办法来解决这个问题。那么权限域名服务器就是负责管理一个“区”的域名服务器。
么是区?怎样划分区呢?
区和域其实是不同的,区可以有多种不同的划分方法。以百度为例,我们假设有 fanyi.baidu.com、ai.baidu.com、tieba.baidu.com 这三个三级域名。我们可以这样分区,fanyi.baidu.com 和 tieba.baidu.com 放在 baidu.com 权限域名服务器,ai.baidu.com 放在 ai.baidu.com 权限域名服务器中。并且 baidu.com 权限域名服务器和 ai.baidu.com 权限域名服务器是同等地位的,而具体怎么分区是百度公司根据域名多少、访问多少等情况去自己规定的。

5、DNS的查询方式

1)、递归查询:递归查询中,如果 A 请求 B,那么 B 作为请求的接收者一定要给 A 想要的答案;而迭代查询则是指,如果接收者 B 没有请求者 A 所需要的准确内容,接收者 B 将告诉请求者 A,如何去获得这个内容,但是自己并不去发出请求。

网站加速之本地DNS

2)、迭代查询:迭代就是,如果请求的接收者不知道所请求的内容,那么接收者将扮演请求者,发出有关请求,直到获得所需要的内容,然后将内容返回给最初的请求者。

网站加速之本地DNS

6、域名缓存方式?

计算机中 DNS 记录在本地有两种缓存方式:浏览器缓存和操作系统缓存

1)、浏览器缓存:浏览器在获取网站域名的实际 IP 地址后会对其进行缓存,减少网络请求的损耗。每种浏览器都有一个固定的 DNS 缓存时间,如 Chrome 的过期时间是 1 分钟,在这个期限内不会重新请求 DNS

2)、操作系统缓存:操作系统的缓存其实是用户自己配置的 hosts 文件。比如 Windows10 下的 hosts 文件存放在 C:WindowsSystem32driversetchosts

网站加速之本地DNS

Windows 系统默认开启 DNS 缓存服务,服务名是 DNSClient
,可以缓存一些常用的域名。

网站加速之本地DNS

查看电脑中缓存的域名;可以使用命令 ipconfig/displaydns

网站加速之本地DNS

7、 完整域名解析过程

接下来我们结合上面所说的域名服务器之间的 DNS 查询请求过程和域名缓存结合起来,就是一个完整的 DNS 协议进行域名解析的过程。这里我们以正向解析为例(域名解析成 IP 地址):

1)首先搜索浏览器的 DNS 缓存,缓存中维护一张域名与 IP 地址的对应表;

2)若没有命中,则继续搜索操作系统的 DNS 缓存;

3)若仍然没有命中,则操作系统将域名发送至本地域名服务器,本地域名服务器查询自己的 DNS 缓存,查找成功则返回结果(注意:主机和本地域名服务器之间的查询方式是递归查询);

4)若本地域名服务器的 DNS 缓存没有命中,则本地域名服务器向上级域名服务器进行查询,通过以下方式进行迭代查询(注意:本地域名服务器和其他域名服务器之间的查询方式是迭代查询,防止根域名服务器压力过大):

首先本地域名服务器向根域名服务器发起请求,根域名服务器是最高层次的,它并不会直接指明这个域名对应的 IP 地址,而是返回顶级域名服务器的地址,也就是说给本地域名服务器指明一条道路,让他去这里寻找答案

本地域名服务器拿到这个顶级域名服务器的地址后,就向其发起请求,获取权限域名服务器的地址

本地域名服务器根据权限域名服务器的地址向其发起请求,最终得到该域名对应的 IP 地址

5)本地域名服务器将得到的 IP 地址返回给操作系统,同时自己将 IP 地址缓存起来

6)操作系统将 IP 地址返回给浏览器,同时自己也将 IP 地址缓存起来

7)至此,浏览器就得到了域名对应的 IP 地址,并将 IP 地址缓存起来

配合下图直观理解:

网站加速之本地DNS

五、生活在应用层的协议有哪些?

应用层协议(application layer protocol)定义了运行在不同端系统上的应用程序进程如何相互传递报文。

(1)域名系统(Domain Name System,DNS):用于实现网络设备名字到IP地址映射的网络服务。

(2)文件传输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能。

FTP是一种文件传输协议,它支持两种模式:

一种方式叫做 Standard (也就是 Active,主动模式);

一种是 Passive (也就是 PASV,被动模式)。

Standard 模式是 FTP 的客户端发送 PORT 命令到 FTP 服务器。Passive 模式是 FTP 的客户端发送 PASV 命令到 FTP 服务器。两种方式中数据和控制链路都是分开传输的,惟一的区别在于主动模式由服务器端发起数据链路的链接请求,而被动模式由客户端发起数据链路的链接请求。
FTP 通信过程中它的控制链路和数据链路不是在同一个端口进行通信的,而是在两个不同的 端口独立进行通信。首先由客户端向服务器发起控制链接的请求,当和服务器建立控制链接成功之后,在主动模式下客户端将会发一个端口号给服务器,告诉当前这次传输服务器所使用的数据传输端口,服务器收到这个信息后就向客户端发起数据链接请求,成功后进行当前这次的数据传输。在当前传输完成之后,该数据链路就被拆除了,如果客户端进行一次新的传输,则向服务器发送一个新的端口号,重新建立链接。在整个过程中,控制链路的链接一直都存在,直到 FTP 的整个通信过程结束,而数据链路每一次传输就需要建立一次新的链接。而被动模式过程和上述通信过程差不多,只是由客户端发起数据链路的建立请求。
在 FTP 交互的过程中,客户端通过命令字来告诉服务器相关的信息,常用的有访问控制命令 USER,PASS,CWD,QUIT 等八种;传输参数命令 PORT,PASV,TYPE, STRU,MODE 五种;FTP 服务命令 RETR,STOR,LIST,ABOR 等二十种。服务器则通过一些状态码告诉客户端当前服务器的反馈状态。一般 2xx 表示当前的操作成功,3xx 表示权限问题,4xx 表示文件问题,5xx 表示服务器问题。

(3)简单邮件传送协议(Simple Mail Transfer Protocol, SMTP):用于实现电子邮箱传送功能

SMTP是一种提供可靠且有效电子邮件传输的协议。SMTP 是建模在 FTP 文件传输服务上的一种邮件服务,SMTP 服务器在默认端口 25 上监听客户请求,主要用于传输系统之间的邮件信息。

SMTP 交互过程:

比较简单,首先客户端向服务器的 SMTP 服务端口发起请求,通过三次握手建立链接。然后服务器返回 220 的状态码告诉客户端当前已经准备好服务,客户端收到该状态码后向服务器发出 HELO 或者 EHLO 的命令告诉服务器该客户端需要的服务类型,其中 HELO 是默认的 SMTP 服务,EHLO 要求除了默认的服务之 外还要支持扩展服务。当服务器告诉客户端它所支持的服务之后,双方用命令字和状态码进行交互

(4)超文本传输协议(HyperText Transfer Protocol,HTTP):用于实现WWW服务。是一个属于应用层的面向对象的协议,它是基于 TCP(Transfer Control Protocol, 传输控制协议)的可靠传输,采用的是客户端/服务器的工作模式。在 HTTP 通信过程中,首先由客户端向服务器发起建立链接的请求,通过 TCP三次握手来完成,然后客户端向服务器发出请求,告诉服务器想得到的信息。服务器通过响应返回客户端需要的信息。最后通过 TCP 四次握手关闭链接,从而完成一次基本的通信过程。

(5)简单网络管理协议(simple Network Management Protocol,SNMP):用于管理与监视网络设备。

(6)远程登录协议(Telnet):用于实现远程登录功能。

原文链接:https://www.modb.pro/db/182884

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/23101

(0)
上一篇 2024年3月14日
下一篇 2024年3月15日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml