转载自:https://www.zhihu.com/question/23042131
网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的IP地址,而不能认识域名。我们无法记住10个以上IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,这是因为有一个叫“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页。
具体什么是DNS?
DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译官”,它的基本工作原理可用下图来表示。
DNS 的过程?
关于DNS的获取流程:
DNS是应用层协议,事实上他是为其他应用层协议工作的,包括不限于HTTP和SMTP以及FTP,用于将用户提供的主机名解析为ip地址。
具体过程如下:
①用户主机上运行着DNS的客户端,就是我们的PC机或者手机客户端运行着DNS客户端了
②浏览器将接收到的url中抽取出域名字段,就是访问的主机名,比如
http://www.baidu.com/
, 并将这个主机名传送给DNS应用的客户端
③DNS客户机端向DNS服务器端发送一份查询报文,报文中包含着要访问的主机名字段(中间包括一些列缓存查询以及分布式DNS集群的工作)
④该DNS客户机最终会收到一份回答报文,其中包含有该主机名对应的IP地址
⑤一旦该浏览器收到来自DNS的IP地址,就可以向该IP地址定位的HTTP服务器发起TCP连接
DNS服务的体系架构是怎样的?
DNS domain name system 主要作用就是将主机域名转换为ip地址
拓展 TCP/IP 理解 (原文地址:https://blog.csdn.net/mumubumaopao/article/details/107860818)
TCP/IP 的定义为传输控制协议/网络协议模型(Transmission Control Protocol/Internet Protocol)(不要被他长长的名字吓到了,只是一个模型的官方名,大部分的时间我们都统称为TCP/IP协议)。
这个模型描述了数据在网络传输的整个流程,可以简单理解为【程序发起数据传输请求、通过端口将数据发出、通过网络传递、接受程序收到数据】这个流程的模型。在这个模型里面用到了很多协议,但是TCP、IP协议在整个模型中占比最为重要,所以整个模型以TCP/IP来命名。
数据链路层:
链路层负责将封装完的数据帧在网络中(网线等各种传输介质)进行传递
网络层:
网络层负责接收来自链路层的数据,然后通过IP地址和MAC地址找到目标主机,然后将数据传递给对应的主机
传输层:
传输层负责接收来自网络层的数据,然后根据端口号将数据传递给目标端口,监听该端口的程序即可收到该数据
应用层:
应用层的程序负责接收到数据后进行解析使用
为什么要三次握手?
为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。