域名、dns、服务器、IP、主机名

1.IP地址:每个连接到Internet上的主机都会分配一个IP地址,IP地址是用来唯一标识互联网上计算机的逻辑地址,机器之间的访问就是通过IP地址来进行的。IP地址采用二进制的形式表示的话很长,比较麻烦,为了便于使用,IP地址经常被写成十进制的形式,用“.”分开,叫做“点分十进制表示法”,如:127.0.0.1。

2.域名:IP地址毕竟是数字标识,使用时不好记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。每一个符号化的地址都与特定的IP地址对应。这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名。目前域名已经成为互联网品牌、网上商标保护必备的要素之一,除了识别功能外,还有引导、宣传等作用。如:www.hstc.edn.cn。

3.DNS:在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。域名的最终指向是IP。

4.URL:统一资源定位符(英语UniformResourceLocator的缩写)俗称为网址,网址格式为:<协议>://<域名或IP>:<端口>/<路径>。<协议>://<域名或IP>是必需的,<端口>/<路径>有时可省略。如:https://www.baidu.com/

DNS:

DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。

域名:

域名Domain Name),是由一串用“点”分隔的字符组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名是一个IP地址上有“面具” 。域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等)。域名作为力所能及难忘的互联网参与者的名称。域名按域名系统(DNS)的规则流程组成。在DNS中注册的任何名称都是域名。域名用于各种网络环境和应用程序特定的命名和寻址目的。通常,域名表示互联网协议(IP)资源,例如用于访问因特网的个人计算机,托管网站的服务器计算机,或网站本身或通过因特网传送的任何其他服务。世界上第一个注册的域名是在1985年1月注册的。

服务器:

服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
服务器的构成包括 处理器硬盘内存系统 总线等,和通用的计算机架构类似,但是由于需要 提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
在网络环境下,根据服务器提供的服务类型不同,分为文件服务器, 数据库服务器,应用程序服务器,WEB服务器等。

IP、主机名和域名

在网络通信中,每个IP可唯一标识一台主机,在多网卡或者路由器等的情况下,每个主机可以有多个IP,通过哪个IP都可以找到该主机;但是IP地址是一个32位的数字,为了便于记忆,我们通常把按每字节划分,然后用10进制表示出来,即我们通常说的点分十进制(在IPV6的中采用的是冒号分十六进制)。如下图的网络抓包,可以看到一个我们常见的IP地址:192.168.100.1的实际存在形式用16进制就是:c0 a8 64 01 ,用二进制表示就是:

11000000 101010001100100 00000001

可以看到IP地址的可读性非常差,虽然用点分十进制表示之后,可读性有所提升,但是依然难以记忆,尤其是对于数字不敏感的老外,因此他们就想用易读的单词来代替这些纯数字,于是就诞生了主机名和域名。

在局域网中,每台主机都有一个主机名,可以使用英文字母或者单词组成的主机名来代替该主机的IP地址(这里假设主机只有一个网卡一个IP),这样就非常方便记忆,例如我们局域网中有一个主机名为:clsserv202的服务器,它的IP地址是:11.12.112.202,我们在使用IP地址11.12.112.202的地方使用clsserv202来代替它,例如我们要ping该主机,则可以执行命令:

ping clsserv202

这内部发生了什么事情呢?

在实际开发过程中,我们通常使用gethostbyname和gethostbyaddr这两个系统函数,其中gethostbyname表示通过主机名来查询IP地址,即传入一个主机名或域名,它就给你返回一个IP地址;gethostbyaddr表示通过IP地址来查询主机名;

在ping命令的源码中可以看到它就调用了gethostbyname函数将主机名转换成IP地址,然后才进行的ping操作。

Hosts文件

在linux系统中有个hosts文件来记录本机所在局域网中的主机的IP地址和对应的主机名。

可以看到host文件由一行行的IP和主机名的对应关系组成,其中每行的开始是一个IP地址,紧接着IP地址(隔着空格)的就是该IP对应的主机名;

如果局域网内的所有主机都想使用域名来代替IP进行通信,那么要求该局域网中每个主机上的hosts文件都要把本局域网中的所有主机的主机名和IP的对应关系都存起来。当局域网内的主机非常多的时候,维护起来就非常麻烦,例如IP有变更的时候就需要挨个把所有的主机的hosts文件都更新一遍。

那么有没有更好的办法来解决这个问题呢?方法就是通过搭建内网DNS服务来完成主机名和IP的映射;

域名

域名可以认为是主机在公网环境中的标识,在在公网下,对应一个唯一的IP,例如我们访问百度的主页:www.baidu.com

主机名和域名的区别

实质上,主机名的含义是机器本身的名字,域名是方面记录IP地址才做的一种IP映射;通过上述介绍可以看到,二者有共性:都能对应到一个唯一的IP上,从应用场景上可以这么简单理解二者的区别:主机名用于局域网中;域名用于公网中。





IP、主机名和域名

猜你喜欢

转载自blog.csdn.net/xiaohuya123/article/details/80919459