日期:2020年4月6日
作者:Commas
励志:当你的才华撑不起你的野心的时候,你就该静下心来好好学习!
注释:您的每一个小小举动,将会是技术人大家庭的福泽,非常感谢……
如果您觉得这篇博客对您有所帮助,那么不妨给我点个赞;
如果您觉得这篇博客有哪里写的不好的地方,那么不妨给我点个拨。


文章目录

  • 一、产生域名系统的原因
  • 二、域名结构
  • 三、域名系统的资源记录
  • 四、域名服务器结构
  • 五、域名解析过程

一、产生域名系统的原因

我们知道,当一台终端需要访问Internet另外一台终端的信息资源的时候,我们必须要获知对方的IP地址,才可以连接,从而获得资源。
那么IP是什么呢?IP是标识互联网中不同终端的编址,其本质上就是一串32位二进制流。一串二进制是相当难以记忆的,于是聪明的前辈们,想着生活中常用的数字是十进制,就按8位二进制(即一个字节)进行划分,并转为十进制,且予以.相连进行间隔,这样就方便记忆多了。
随着网络的不断发展,人们觉得IP也是比较难以记忆的,并且主机的IP地址可能会发生变化,这对于访问者来说是非常糟糕的。于是聪明的前辈们又想出了一个用方案——用名字来表示主机,并且建议主机名字与IP地址之间的映射关系,人们可以轻松记住名字,就可以轻松获取相应的资源,如我们访问CSDN,不需要写IP地址,而是写域名www.csdn.net。

另外,Windows系统中,有一个路径下存放了一个域名解析文件hosts如下图所示:

但是当前互联网中的主机数量是数以亿计的,采用一台服务器管理名字和IP地址之间的关系,显然是心有余而力不足的,因此我们需要多台服务器来共同完成这一项工作,于是乎出现了域名系统(DNS,即Domain Name System的缩写)

  • 分层的域名结构;
  • 分布式域名服务器结构;
  • 通过域名解析过程完成域名到IP地址的完美转换;

二、域名结构

  • 根节点:域名系统,只有一个根节点,如图中的根(root);
  • 叶节点:最明细的节点即为叶节点,如三级域名中的ftp、mail、www;
  • 完全合格域名:根节点到叶节点经过的所有域名反向.作为分隔符连接成的字符串,如www.baidu.comwww.csdn.net等;

其中域名相对于IP来说,还可以赋予比较有含义的内容,如下:

顶级域名 全称 含义
com commerce 商业网址
edu education 教育网址
net network 网络组织
cn China 中国地域的网址

三、域名系统的资源记录

域名服务器中的资源记录主要由4个字段组成<名字,类别、类型、值>,如下:

  • 名字:用于解析的域名;
  • 类别:指定类型的实体,目前仅有一种为IN,表示Internet;
  • 类型:用于说明名字与值得关系;
  • :解析的结果(IP地址、域名服务器……)

其中,类型最主要的有:

  • A:address的缩写,值的结果为该完全合格域名所对应的IP地址
  • NS:Name System的缩写,值的结果为负责该域的域名服务器的完全合格域名

资源记录,示例如下:

名字 类别 类型
www.baidu.com IN A 182.61.200.6
www.csdn.net IN A 47.95.164.112
com IN NS dns.root
net IN NS dns.net

四、域名服务器结构

  1. dns.root的资源记录
名字 类别 类型
com IN NS dns.com
edu IN NS dns.edu
gov IN NS dns.gov
net IN NS dns.net
dns.com IN A 192.1.2.5
dns.edu IN A …(IP地址)
dns.gov IN A …(IP地址)
dns.net IN A 192.1.4.5
  1. dns.com的资源记录
名字 类别 类型
a.com IN NS dns.com
b.com IN NS dns.com
edu IN NS dns.root
gov IN NS dns.root
net IN NS dns.root
dns.a.com IN A 192.1.1.5
dns.b.com IN A 192.1.1.9
dns.root IN A 192.1.3.5
  1. dns.a.com的资源记录
名字 类别 类型
b.com IN NS dns.com
edu IN NS dns.root
gov IN NS dns.root
net IN NS dns.root
www.a.com IN A 192.1.1.5
dns.com IN A 192.1.2.5
dns.root IN A 192.1.3.5
  1. dns.b.com的资源记录
名字 类别 类型
a.com IN NS dns.com
edu IN NS dns.root
gov IN NS dns.root
net IN NS dns.root
www.b.com IN A 192.1.1.9
dns.com IN A 192.1.2.5
dns.root IN A 192.1.3.5
  1. dns.net的资源记录
名字 类别 类型
com IN NS dns.root
edu IN NS dns.root
gov IN NS dns.root
net IN NS dns.root
a.net IN NS dns.a.net
dns.a.net IN A 192.1.4.5
dns.root IN A 192.1.3.5
  1. dns.a.net的资源记录
名字 类别 类型
com IN NS dns.root
edu IN NS dns.root
gov IN NS dns.root
net IN NS dns.root
ftp.a.net IN A 192.1.5.5
dns.root IN A 192.1.3.5

五、域名解析过程


其中,域名解析过程方法有两种,详情如下所示:


版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/105322977

不懂域名系统,何谈网络编程相关推荐

  1. 谈一谈网络编程学习经验(06-08更新)

    谈一谈网络编程学习经验 陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-08 PDF 版下载:https://github.com/down ...

  2. 谈一谈网络编程的经验

    谈一谈网络编程学习经验 陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 本文谈一谈我在学习网络编程方面的一些个人经验."网络 ...

  3. 谈一谈网络编程学习经验(陈硕)

    作者:陈硕  原文地址:http://blog.csdn.net/solstice/article/details/6527585 本文谈一谈我在学习网络编程方面的一些个人经验."网络编程& ...

  4. 谈一谈网络编程学习经验

    转自  陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 PDF 版下载:https://github.com/downloads/ch ...

  5. 谈一谈网络编程学习经验——陈硕

    陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 PDF 版下载:https://github.com/downloads/chensh ...

  6. 浅谈网络编程中的常见问题

    OSI七层模型 OSI七层协议模型主要是: 应用层(Application) 表示层(Presentation) 会话层(Session) 传输层(Transport) 网络层(Network) 数据 ...

  7. 陈硕《网络编程实战》00 前言

    陈硕<网络编程实战> 第 00 课 前言 站在巨人的肩膀之上,还要抓牢,不要掉下去.    按照录像整理,版权归陈硕大神. 作者简介: 陈硕,北京师范大学硕士,擅长 C++ 多线程网络编程 ...

  8. 陈硕《网络编程实战》 84 课程总结 【草稿】

    陈硕<网络编程实战> 84 课程总结 [草稿] 站在巨人的肩膀之上. 按照录像整理,版权归陈硕大神. 我们这门课程呢,今天就是最后一讲,已经讲完了. 那我们再做一点小结,整理一下这个思路: ...

  9. 浅谈JAVA中如何利用socket进行网络编程(二)

    转自:http://developer.51cto.com/art/201106/268386.htm Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以 ...

  10. 简谈计算机网络与网络编程

    网络概念 : 首先.网络可以使不同物理位置上的计算机达到资源共享和通信的目的,在java中提供了专门的网络开发包----java.net来使用,当然也有随着时代技术的进步革新,会出现更多的API. 此 ...

最新文章

  1. iOS Category小举例
  2. 6月27日任务 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志
  3. Task04:青少年软件编程(Scratch)等级考试模拟卷(一级)
  4. 在Mac OS X macOS Sierra上进行VirtualBox和GNS3链接
  5. mysql实现row_number()和row_number() over(partition by)
  6. websocket趣说_转
  7. python 数学公式识别_Python实现基于KNN算法的笔迹识别功能详解
  8. java中一级缓存_java – 集群环境中的hibernate一级缓存
  9. Css选择器命名规则
  10. 使用Badboy录制脚本
  11. 神经网络之BP算法【图文并茂】
  12. VS2017社区版离线安装
  13. 引用参数如何设缺省值(默认值)(C++)
  14. vue的微信语音功能,录音+对接口返回amr音频播放
  15. android的UI性能优化
  16. 几种抽奖方式之轮盘抽奖
  17. 2019年E题薄利多销问题
  18. GitLab秘钥添加
  19. 【2019年05月20日】A股滚动市盈率PE历史新低排名
  20. 利用python理解mvc架构模型

热门文章

  1. 计算机广告制作介绍,计算机广告制作.ppt
  2. 【零基础学Python】Day8 Python基本数据类型之Dictionary
  3. 入门级蛋白质结构查看PyMol的使用——PyMol常用命令
  4. 运维工程师主要工作是做什么?
  5. finecms存在任意文件上传漏洞复现
  6. 电子电路计算机仿真应用,电力电子电路的计算机仿真
  7. linux 播放mkv视频,Fedora 22 怎么播放 rmvb mp4 mkv 视频文件
  8. GBASE 8s UDR内存管理_05_mi_free
  9. Git down代码简易操作手册
  10. pwn|软件安全相关问题学习笔记