不懂域名系统,何谈网络编程
日期: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.com和www.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 |
四、域名服务器结构
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 |
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
|
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
|
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
|
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
|
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
不懂域名系统,何谈网络编程相关推荐
- 谈一谈网络编程学习经验(06-08更新)
谈一谈网络编程学习经验 陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-08 PDF 版下载:https://github.com/down ...
- 谈一谈网络编程的经验
谈一谈网络编程学习经验 陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 本文谈一谈我在学习网络编程方面的一些个人经验."网络 ...
- 谈一谈网络编程学习经验(陈硕)
作者:陈硕 原文地址:http://blog.csdn.net/solstice/article/details/6527585 本文谈一谈我在学习网络编程方面的一些个人经验."网络编程& ...
- 谈一谈网络编程学习经验
转自 陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 PDF 版下载:https://github.com/downloads/ch ...
- 谈一谈网络编程学习经验——陈硕
陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 PDF 版下载:https://github.com/downloads/chensh ...
- 浅谈网络编程中的常见问题
OSI七层模型 OSI七层协议模型主要是: 应用层(Application) 表示层(Presentation) 会话层(Session) 传输层(Transport) 网络层(Network) 数据 ...
- 陈硕《网络编程实战》00 前言
陈硕<网络编程实战> 第 00 课 前言 站在巨人的肩膀之上,还要抓牢,不要掉下去. 按照录像整理,版权归陈硕大神. 作者简介: 陈硕,北京师范大学硕士,擅长 C++ 多线程网络编程 ...
- 陈硕《网络编程实战》 84 课程总结 【草稿】
陈硕<网络编程实战> 84 课程总结 [草稿] 站在巨人的肩膀之上. 按照录像整理,版权归陈硕大神. 我们这门课程呢,今天就是最后一讲,已经讲完了. 那我们再做一点小结,整理一下这个思路: ...
- 浅谈JAVA中如何利用socket进行网络编程(二)
转自:http://developer.51cto.com/art/201106/268386.htm Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以 ...
- 简谈计算机网络与网络编程
网络概念 : 首先.网络可以使不同物理位置上的计算机达到资源共享和通信的目的,在java中提供了专门的网络开发包----java.net来使用,当然也有随着时代技术的进步革新,会出现更多的API. 此 ...
最新文章
- iOS Category小举例
- 6月27日任务 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志
- Task04:青少年软件编程(Scratch)等级考试模拟卷(一级)
- 在Mac OS X macOS Sierra上进行VirtualBox和GNS3链接
- mysql实现row_number()和row_number() over(partition by)
- websocket趣说_转
- python 数学公式识别_Python实现基于KNN算法的笔迹识别功能详解
- java中一级缓存_java – 集群环境中的hibernate一级缓存
- Css选择器命名规则
- 使用Badboy录制脚本
- 神经网络之BP算法【图文并茂】
- VS2017社区版离线安装
- 引用参数如何设缺省值(默认值)(C++)
- vue的微信语音功能,录音+对接口返回amr音频播放
- android的UI性能优化
- 几种抽奖方式之轮盘抽奖
- 2019年E题薄利多销问题
- GitLab秘钥添加
- 【2019年05月20日】A股滚动市盈率PE历史新低排名
- 利用python理解mvc架构模型
热门文章
- 计算机广告制作介绍,计算机广告制作.ppt
- 【零基础学Python】Day8 Python基本数据类型之Dictionary
- 入门级蛋白质结构查看PyMol的使用——PyMol常用命令
- 运维工程师主要工作是做什么?
- finecms存在任意文件上传漏洞复现
- 电子电路计算机仿真应用,电力电子电路的计算机仿真
- linux 播放mkv视频,Fedora 22 怎么播放 rmvb mp4 mkv 视频文件
- GBASE 8s UDR内存管理_05_mi_free
- Git down代码简易操作手册
- pwn|软件安全相关问题学习笔记