互联网发展几十年,大家已习惯使用浏览器访问互联网上的各类资源,包括学习、工作、娱乐等等,只要知道资源的域名,通过浏览器就能够查看观赏各种有趣的资源。那么此处引来一个问题,浏览器是如何在海量互联网中查找到目标地址的呢?
域名系统
域名的作用
我们每天访问的地址被称之为:域名,一串便于记忆的字符串。域名组成从右往左分别是:顶级域名、二级域名、三级域名,如:
每个域名的背后都会对应一个或者一组服务器,为用户提供服务,如查看文档、观察视频、聆听音乐等,同时每个服务器存在一个IP地址,用于在网络中标识自己。域名的作用就是通过字符串映射到IP地址,进而访问服务器中的资源信息。
就如同地址目录一般,通过名称找到地址,然后直接根据去此参观访问。
域名IP地址的映射
在互联网中,使用一个名为DNS(Domain Name System)的系统进行域名和IP地址的映射关系。在历史发展进程中,DNS服务又被划分为:根域名、顶级域名、权威域名、本地域名,形成“等级深严的阶级系统”。
根域名
用来记录全球所有顶级域名权威域名的服务器地址。指挥着全球所有客户端访问请求需要去往的地址,一旦出现问题,则基本会造成全球网络的瘫痪。
在IPV4时代,目前全球一共13个根域名服务器,其中一个主根域名服务器、12个辅根域名服务器,在美国(10个,1主+9辅)、欧洲(2个辅)、日本(1个辅)。
随着时代进步,IPV4的消耗,进入到IPV6时代后,根域名服务器的部署也发生了变化,目前全球共25个IPV6根域名服务器,其中中国部署1个主根域名服务器以及3个辅助域名服务器。
顶级域名
用来记录权威域名服务器地址,如记录abc.com 的IP地址映射关系。
根据国家、区域、通用性等存在多种顶级域名,如.com、.net 等为通用型的顶级域名,如.cn 表示中国的顶级域名,如.org 用于非盈利性组织,.gov用于政府机构。
浏览器如何查找目标服务器
我们都知道,如果要访问某台服务器中的资源,首先需要知道服务器的域名,通过域名进行访问查看资源。当我们在浏览器中输入:http://www.baidu.com 时,浏览器帮助我们找到百度的服务器,并与其建立连接,我们就可以查找到想要的各种资源,那这其中究竟发生了什么事情呢?
DNS的解析
查找过程
当打开电脑/手机时,会自动连接上网络,在浏览器中输入要访问的域名后,浏览器会访问本地域名服务器(递归域名服务器)查找域名对应的服务器IP地址,所有的查找过程从此开始:
- 如果本地域名服务器无此域名-IP的数据缓存,则会直接访问根域名服务器;
- 根域名服务器会告知本地域名服务器其需要访问的顶级域名服务器地址,如:1.2.3.4;
- 本地域名服务器拿到顶级域名服务器地址后,直接访问顶级域名服务器,查找需要访问的服务器的地址,顶级域名服务器告知本地域名服务器,域名的权威域名服务器地址,如:1.2.3.5;
- 本地域名服务器访问权威域名服务器,查找到欲访问的服务器的地址,如:1.2.3.6;
- 本地域名服务器将欲访问的服务器的地址(1.2.3.6)告知浏览器;
- 浏览器拿着欲访问地址的服务器IP地址,建立TCP连接,发送访问请求,最终在浏览器中呈现花花世界的样子。
世纪大会面的样子如下图所展现的样子:
正确上网姿势
如果在访问某些网站时发现比较慢,那我们应该如何操作,用以提升访问的速度呢?通过以上DNS的介绍,相信你会想到,可能是DNS解析查找的问题,那这里小编也提供几组DNS服务器地址,相信对大家会有一定的帮助。
-
访问国内网站,建议使用国内的DNS服务商提供的服务,如百度、阿里、腾讯等提供的公共免费DNS解析,一定程度可以提高DNS解析速度。
-
除却国内DNS服务外,还可以使用Google提供的DNS解析地址,Google DNS
- 服务ip为:8.8.8.8和8.8.4.4
一般情况下路由器会自动识别公共DNS服务器,不需要做特殊设定,当发现访问被劫持、访问异常时,可以通过手动设置DNS用以解决上网问题。