概念性的东西:

域名:

    ①.百度:域名Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名是一个IP地址上有“面具” 。一个域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等)。域名作为力所能及难忘的互联网参与者的名称,世界上第一个注册的域名是在1985年1月注册的。

    ②.个人理解:域名只是一个便于大家理解的字符串,其实底层真正通信的还是IP。但是无论是二进制、还是十进制的IP,都是一系列的数字,没有实际含义,不方便记忆。举个简单的例子:为什么手机里都有电话本呢?一个道理,电话号码相当于IP,人名相当于域名。我们打电话肯定是找人名的,但实际打过去的肯定是电话号码。

DNS:
    ①.百度:DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
    ②.个人理解:DNS的相当于翻译官,访问某个域名,他会告知你实际的IP地址。方便你访问。
 
前言:
    为啥突然研究这些基础的东西呢,主要由于最近想研究一下CDN的相关操作,但是了解CDN的大概原理之后,发现需要恶补计算机基础。这里还是要说一句,基础是最重要的,有了基础后,能了解原理性的东西,对于未来的发展是很有用的。
 下面就来先从一个简单的上网示例说起吧~
 
用户访问www.womai.com,只需要简简单单的打开浏览器,敲上网站,一按回车。看似简单的操作,这后面其实有很多文章。会依次经过以下几个步骤:
1.本地HOSTS文件:windows环境下的的路径: C:\Windows\System32\drivers\etc\HOSTS,里面配置了域名和IP的映射关系。如果访问的域名恰好在此配置中,就直接访问对应IP地址。
2.本地域名服务器:其实是一些分布式的DNS域名解析服务器,具有高速缓存。这些服务器对应着我们在IPV4那一栏配置的首选和备用DNS服务器。一般有114.114.114.114 、8.8.8.8等几种,相对较为固定。也可以选择自动获取,类似于IP自动获取的DHCP服务就会自动分配。如果电脑有连接路由器,可能会将路由器的IP设置到此处。
3.根域名服务器:本地域名服务器查询不到IP,会查询根域名服务器。
4.顶级域名服务器:全球13台顶级域名的服务器,.com .net 等等
5.权限域名服务器:对应着具体的应用服务器的DNS权限域名服务器,可由服务器所有者设置。
当然,如果每次都按照这个步骤走的话,服务器肯定压力山大。所以在本地域名服务器中实际上是有高速缓存的,只有缓存不存在或者缓存失效才会向其他服务器发起请求。这里顺便提及一下请求分为两种模式:递归解析和反复解析。说大白话就是:递归解析就是找一个人办事,找关系能把事办的妥妥的。反复解析就是被踢皮球,找A,A说你去找B,找B,B说你去找C,最终找了一个能办事的人。。如下图:
①.递归解析:
②.反复解析:
 
 
补充一点:虽然这些DNS域名解析服务器都是以对域进行解析的,但实际操作的最小单位并不是域,而是“区”。范围:“区” <= “域”。
还是以上面的例子做假设。公司有两台权限DNS域名解析服务器,分别解析womai.com和www.womai.com。当请求到womai.com域时,通过服务器的DNS域数据配置,最终实际由www.womai.com做解析。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

最新文章

  1. mina通信 demo
  2. codevs2572 路面修整
  3. VS调试时同时启动多个项目解决方法
  4. word统计章节字数
  5. 编程之linux与win区别
  6. hdu 4752
  7. post和get的区别?
  8. bootstrap-datetimepicker使用记录
  9. WebStorm JavaScript 开发神器
  10. Dotfuscator自定义规则中的元素选择
  11. C++中printf和scanf的用法
  12. Mac下安装pyenv
  13. MSSQL存储过程应用
  14. 2018/03/10 每日一个Linux命令 之 cksum
  15. c语言学习——安装
  16. Yii2 的安装及简单使用
  17. 理解flex布局
  18. 关于Vue中main.js,App.vue,index.html之间关系进行总结
  19. C# 中DateTime的各种使用
  20. 基于jQuery左侧小图滚动右侧大图显示代码

热门文章

  1. 【算法笔记】B1022 D进制的A+B
  2. QDU_CEF(补)
  3. HDU-6341 Problem J. Let Sudoku Rotate(dfs 剪枝)
  4. python内置函数一
  5. JedisPool
  6. Hash算法总结
  7. 转帖 css的块元素、内联元素、内联块元素、display属性、浮动、定位
  8. DP Intro - Tree DP
  9. Murano Weekly Meeting 2016.08.16
  10. MongoDB数据库进阶 --- 增删查改...