DNS
DNS简介
DNS,即Domain Name System,域名系统。DNS是一整套从域名映射到IP的系统。
TCP/IP中使用IP地址来确定网络上的一台主机,但是IP地址不方便记忆,且不能表达地址组织信息,于是人们发明了域名,并通过域名系统来映射域名和IP地址。
域名是一个字符串,如 www.baidu.com , hr.nowcoder.com
DNS的产生
起初,域名和IP地址的对应关系都保存在一个文件中,文件中的每一行是一条记录,但随着互联网的发展,网站越来越多,不能把所有的映射关系都写到这个文件中了,因此更科学的办法,使用DNS服务器来保存这个文件,哪个设备需要DNS解析,就访问这个DNS服务器即可。
但这样的做法,也是存在问题的,全世界要上网的设备是非常多的,每个设备上网的时候都去访问DNS服务器,DNS根本扛不住这么大的访问量。
那么该如何解决DNS服务器访问量太高的问题呢?
- 主机在请求DNS之后,会对映射关系在本地缓存,例如我的主机在第一次访问www.baidu.com的时候,会访问一次DNS服务器,并将映射关系在本地缓存,这样在后续访问该网站的时候,就不需要再访问DNS服务器了,这样就减少了DNS的访问量
- 架设DNS镜像服务器,最初的DNS服务器是"根服务器",其他的服务器,从根服务器上同步数据,得到的是"镜像服务器"
域名的构成
域名系统为一个树形结构的系统,包含多个根节点。其中:
- 根节点即为根域名服务器,最早IPv4的根域名服务器全球只有13台,IPv6在此基础上扩充了数量。
- 子节点主要由各级DNS服务器,或DNS缓存构成。
DNS域名服务器,即提供域名转换为IP地址的服务器。
浏览器、主机系统、路由器中都保存有DNS缓存。
Windows系统的DNS缓存在 C:\Windows\System32\drivers\etc\hosts 文件中,Mac/Linux系统的DNS缓存在 /etc/hosts 文件中。
ICMP协议
ICMP的介绍
对于一个搭建好的网络,需要验证该网络的设置(IP地址、子网掩码、路由表的设置等)是否正确,此外,为了确保网络能够按照预期正常工作,一旦遇到问题需要立即制止问题的蔓延,ICMP这是提供这类功能的协议
ICMP的功能
ICMP的主要功能,确认IP包是否成功送达目标地址,通知再发送过程当中IP包被丢弃的原因等
ICMP大致分为两种类型:通知出错原因的错误信息和用于诊断的查询信息
下图为IP包由于某种原因未能到达目标地址,ICMP负责通知未能到达的原因
【ICMP消息类型】
ICMP消息类型介绍
ICMP目标不可到达消息
IP路由器无法将IP数据包发送给目标地址时,会给发送端主机返回一个目标不可达的ICMP消息,并在消息中显示不可达的具体原因
ICMP重定向信息
如果路由器发现发送端主机使用了次优的路径发送数据,那么会返回一个ICMP重定向的消息给这个主机。消息中包括最合适的路由信息和元数据
ICMP超时信息
IP包中有一个字段TTL(生存周期),它的值随着每经过一次路由就会减1,直到减为0时该IP包被丢弃,此时路由器发送一个ICMP超时的消息给发送端主机。
ICMP 回送消息
用于进行通信的主机或路由器之间,判断所发送的数据包是否已经成功到达对端的一种消息。可以向对端主机发送ICMP回送请求消息,也可以接收对端主机发回来的回送应答消息
网络上最常用的ping命令就是利用这个消息实现的。