概念:
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
记录类型:
DNS系统中,常见的资源记录类型有:
主机记录(A记录):RFC 1035定义,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。
别名记录(CNAME记录): RFC 1035定义,CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。
IPv6主机记录(AAAA记录): RFC 3596定义,与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。
Name Server记录(NS记录)是域名服务器记录,用来指定域名由哪台服务器来进行解析。
Mail Exchanger记录(MX记录):
服务位置记录(SRV记录): RFC 2782定义,用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等。
NAPTR记录:RFC 3403定义,它提供了正则表达式方式去映射一个域名。NAPTR记录非常著名的一个应用是用于ENUM查询。
域名系统结构:
域名到IP地址的解析是由分布在因特网上的许多域名服务器程序共同完成的。域名服务器程序在专设的结点上运行,而人们也常把运行域名服务器程序的机器称为域名服务器。因特网上的DNS服务器也是按照层次安排的。每一个域名服务器只对域名体系中的一部分进行管辖,根据域名服务器所起的作用,可以把域名服务器划分为下面四种不同的类型。
根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。
顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。
权威域名服务器:负责一个“区”的域名服务器。
本地域名服务器:离用户最近的DNS,当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。
域名解析:
当我们去解析一个域名时,比如解析baidu.com,会经过如下步骤:
1.查看本机的缓存有无该域名记录,如果没有,查看本机的host文件有无该域名记录,如果没有,则发个请求到本地DNS服务器。
2.本地DNS服务器收到请求后,查看是否有该域名的解析,如果有,返回解析记录给主机,如果没有,则请求根域名服务器 。
3.根域名服务器收到请求后,返回该域名对应的顶级域名服务器,比如这次请求返回.com的服务器地址 。
4.本地域名服务器接到顶级域名服务器地址后,向该顶级域名服务器请求 。
5.顶级域名服务器返回该域名的权威服务器地址,比如这次返回baidu.com对应的权威服务器地址 。
6.本地域名服务器获得该地址后,发请求到该域名的权威服务器。
7.权威服务器返回该域名对应的解析。
8.本地域名服务器获取该解析后,将结果保存到缓存,同时返回给主机,解析完成。
CDN:
CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。
CDN的好处:
解决服务器端的“第一公里”问题
缓解甚至消除了不同运营商之间互联的瓶颈造成的影响
减轻了各省的出口带宽压力
缓解了骨干网的压力
优化了网上热点内容的分布
CDN的网络结构:
CDN网络一般分为中心与边缘节点两部分,中心负责全局负载均衡管理与内容管理;
中心节点的功能如下:
1. 随时监控边缘节点的健康状况(可用性,拥塞程度);
2. 根据边缘节点到请求端的距离,以及边缘节点的健康状况,按一定的策略重定向请求;
3. 与客户主站进行数据同步。
每个CDN节点由两部分组成:负载均衡设备和高速缓存服务器 。负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通信,实现整个系统的负载均衡。
资源在CDN节点和源站之间的传输主要分为边缘-中心-源站-中心-边缘、边缘-中心-边缘和边缘-源站-边缘三种方式。
CDN工作原理
1.用户向localDNS发起请求查询输入域名对应的IP地址(若有缓存直接返回,否则去rootDNS查询);
2.localDNS迭代向rootDNS查询,逐级迭代,rootDNS=>顶级DNS=>权威DNS;
3.获得权威DNS后,localDNS向权威DNS发起域名解析请求;
4.权限DNS通常会将域名CNAME【如果有CNAME则解析CNAME对应的CDN服务,否则的话默认为普通请求,直接返回解析到的IP】到另一个域名,这个域名最终会被指向CDN网络中的智能DNS负载均衡系统;
6.DNS负载均衡系统通过一些智能算法,将最合适的CDN节点IP地址返回给localDNS;
7.localDNS将获得的IP地址返回给用户;
8.用户得到节点的IP地址后,向该节点发起访问请求;
9.CDN节点返回请求文件,如果该节点中请求的文件不存在,就会再回到源站获取这个文件,然后返回给用户。
CDN关键技术
CDN的关键技术主要有内容路由技术、内容分发技术、内容存储技术、内容管理技术等。