一.DNS工作原理
DNS(Domain Name System)
1.作用:
是将域名(例如:www.lcvnsfvrhe.cn)转换成对应的IP地址(例如:192.0.10.1)【即 将域名(网址)解析为IP地址】,便于在互联网上定位和访问服务器。
2.关键名词解释:
根域名服务器 用于存储和维护 顶级域名服务器 的信息。根域名服务器 主要用于 递归查询根域名部分,提供 顶级域名服务器 的地址信息。
顶级域名服务器 是 根域名服务器下一级 的服务器,负责 管理和存储特定顶级域名(例如:com、.org、.net等)的域名信息。顶级域名服务器 记录着全球各个具体的域名(例如:www.lcvnsfvrhe.cn)。
权威域名服务器 是负责 管理和存储特定域名的IP地址记录 的服务器【由域名所有者或管理者指定并维护,存储着该域名下所有的DNS记录,包括 域名和IP地址的映射关系,以及 其他各种类型的DNS记录(例如:MX记录、CNAME记录等)】。权威域名服务器 提供准确的域名解析结果,并保证域名的可用性和安全性,确保互联网上的域名和IP地址映射正确无误,并提供可靠的服务。
当 本地DNS解析器 通过 根域名服务器 和 顶级域名服务器 获取到特定域名的 权威域名服务器 的地址后,会向 权威域名服务器 发送查询请求以获取该域名对应的IP地址,权威域名服务器 将返回与该域名相关的DNS记录【包括目标IP地址】。
根域名服务器和顶级域名服务器共同完成域名解析的过程。
3.工作流程:
1)查询递归:当用户在浏览器中输入一个域名时,操作系统首先会向本地DNS解析器发出查询请求。如果本地解析器没有缓存该域名对应的IP地址,则会进行递归查询。
2)DNS递归解析:本地DNS解析器向根域名服务器发送查询请求,根域名服务器返回顶级域名服务器的地址。
3)顶级域名解析:本地DNS解析器向顶级域名服务器发送查询请求,顶级域名服务器返回该域名的权威域名服务器的地址。
4)权威域名解析:本地DNS解析器向权威域名服务器发送查询请求,权威域名服务器返回该域名对应的IP地址。
5)结果返回:本地DNS解析器将获取到的IP地址返回给操作系统,操作系统将其缓存,并将IP地址返回给浏览器,使浏览器可以与目标服务器建立连接。
4.输入网址到显示页面的过程:
1)用户在浏览器中输入网址(URL):www.lcvnsfvrhe.cn。
2)浏览器将URL发送到本地DNS解析器,并进行域名解析。本地DNS解析器会查询缓存或递归查询,向DNS服务器获取域名对应的IP地址。
3)本地DNS解析器通过根域名服务器、顶级域名服务器和权威域名服务器的查询,获取到目标域名(www.lcvnsfvrhe.cn)的IP地址。
4)本地DNS解析器将得到的IP地址返回给浏览器。
5)浏览器通过获取到的IP地址与目标服务器建立TCP连接。这个过程涉及TCP三次握手,即建立连接、传输数据和断开连接。
6)TCP建立连接,浏览器发送HTTP请求到目标服务器,请求特定的资源(例如:GET请求获取网页内容)。
7)目标服务器接收到HTTP请求后,会解析请求,找到请求对应的资源(例如:HTML文件)。
8)目标服务器将请求的资源作为HTTP响应返回给浏览器。
9)浏览器接收到响应后,会根据响应中的内容进行渲染,将 HTML、CSS和 JavaScript 等资源解析并显示到用户界面上。
10)如果页面中有其他资源需要加载(例如图片、样式表、脚本等),浏览器会继续发送请求并加载这些资源。
11)所有资源加载完成,网页内容会完整地显示在用户的浏览器窗口中。
通过以上步骤,用户输入网址后,浏览器经过域名解析、建立连接、发送HTTP请求、接收响应、解析渲染等过程,最终将网页内容显示给用户。
二.数据的发送与接收
一个主机上的一个应用向另一个主机的一个应用发送数据,数据从发送端的应用程序经过多个层次的封装和传输,在目标主机上经过解封装和传递,最终被目标应用程序接收和使用。
数据会经过以下步骤进行传输:
1. 应用层:发送端的应用程序将数据进行封装,并使用特定的应用层协议(如HTTP、FTP等)添加应用层的头部信息。然后,发送端的应用程序将数据交给操作系统的传输层。
2. 传输层:传输层将应用层的数据封装成传输层的数据段,并添加传输层的头部信息。根据应用程序所使用的协议(如TCP或UDP),传输层将数据段传递给网络层。
3. 网际层:网络层将传输层的数据段封装成网络层的数据包(也称为IP数据报),并添加网络层的头部信息。网络层使用目标主机的IP地址来确定数据包的目的地,并将数据包传递给网络接口层。
4. 网络接口层:网络接口层将网络层的数据包封装成数据链路层的数据帧,并添加数据链路层的头部和尾部信息(如帧起始符、目标MAC地址、源MAC地址等)。
5.物理层:在物理层数据帧被封装成比特流,之后通过传输介质(如以太网)传送到对端。
6. 目标主机接收:目标主机上的网络接口层接收到数据帧,并进行解封装,去除数据链路层的头部和尾部信息。然后,数据包会传递给网络层。
7. 目标主机的网络层:目标主机的网络层接收到数据包,根据目标主机的IP地址进行路由,找到对应的应用程序,并将数据包传递给传输层。
8. 目标主机的传输层:传输层根据传输层头部中的端口号信息,将数据包传递给目标应用程序。
9. 目标应用程序:目标应用程序接收到数据包后,进行解封装,去除应用层的头部信息,获取发送端应用程序发送的原始数据。