首页 > 代码库 > 一个关于DNS的故事
一个关于DNS的故事
前段时间,由于迁移后的服务器不稳定,使用公司WiFi时,数据会出现不稳定的情况,简直go nuts。(原来服务器的环境是稳定的,当时如果想查看数据实际是什么情况,就只能使用非公司WiFi或4G等访问。)
今天更改了公司WiFi的DNS,就解决了这个问题。
问题的本质原因:
公司DNS服务器的Host文件里配置了服务器A的IP和指定域名的映射,当指定域名访问公司的DNS时,公司的DNS就将A的IP发送给客户端,然后客户端就向A的IP地址发起HTTP请求。当将公司WiFi的DNS更改了成了外部的DNS后,指定域名访问外部DNS时,外部DNS会将原来服务器的IP地址传送给客户端,客户端访问的是原来的服务器,所以此时使用公司WiFi访问,和切换成4G等访问,效果是一样的。
DNS:
DNS有什么作用呢? 它是提供域名到IP地址之间的解析服务。
HTTP、DNS、IP、TCP之间的关系:
举个例子:
首先是,我想访问网站,将域名发送给DNS去解析,DNS解析后将网站的IP地址返回给客户端,然后通过IP地址发起HTTP请求。HTTP此时的作用是 生成针对目标WEB服务器(我们这里指的是网站的服务器)的HTTP请求报文,然后将请求报文传送给传输层,此时为了方便通信,TCP会将HTTP请求报文 分割成报文段,这些报文段会有一个序号,这里的报文段哪一个先发送哪一个先到达,它们是按序传送的。只要建立起TCP连接,客户端与服务器之间的报文交换就不会丢失,不会被破坏,也不会在接收时出现错序。接着到了网络层,此时IP协议的职责是,搜索对方的地址,一边中转一边传送。然后找到了服务器的位置,此时服务器的传输层中 TCP的职责是 接收到对方传送过来的报文段后,对其进行重组,这里的重组是按序号进行重组的。然后到了服务器的应用层,HTTP会对客户端请求的内容进行处理。处理完后,服务器同样会利用TCP/IP通信协议向客户端进行回传响应。最后客户端收到响应后,将内容输出页面显示。即完成了一次HTTP事务。
参考:http://network.51cto.com/art/201510/494459.htm
一个关于DNS的故事