为什么域名访问比IP慢?
来源:互联网 发布:sql server好学吗 编辑:程序博客网 时间:2024/05/23 23:29
链接:https://www.zhihu.com/question/55707634/answer/145902300
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如今互联网的基础协议是 IP 协议,在IP之上是 TCP/UDP,再往上是 HTTP等应用协议。
IP的传输的基础是IP地址,路由器都是只认IP地址,不认域名的。
域名是为了方便理解而存在的,也解决了IP地址和网络服务设备的关系不固定的问题。
在使用域名访问网络的时候先要把 域名解析成IP地址,这个解析服务就是DNS。
访问DNS一般来说是很快的,就是一个UDP包来回,但是总要花点时间,所以用域名注定比用IP慢一点。
但是DNS不总是很快的,有时会非常慢,甚至根本就无法使用,这就造成了用域名访问网络会遇到各种不稳定问题。
每台互联网终端设备,比如 PC 手机,都会有一个默认DNS,你在PC上输入
ipconfig /all
就可以看到默认DNS的IP地址。
所谓域名解析服务就是通过查表把 域名换算成IP的过程,访问网络的时候把域名发送到DNS服务器,然后从DNS获取解析后的IP地址,如果DNS服务器上有域名到IP的对照表,那么这个解析就很快,如果没有,DNS服务需要向它的上层服务去询问,这样一层一层问上去,直到找到这个对照表为止,这个过程时间就很不可控了,有时几百毫秒,慢起来10秒钟都可能。
所以上规模的互联网服务商都会自建DNS,就是防止网络服务商的域名解析服务不靠谱的问题。
有时候DNS解析失败也不是网络服务商的责任,有可能是中间某个路由的问题把DNS包搞丢了,屏蔽了,或者导入到流量黑洞去了。因为UDP包并不可控。
有的厂商实现了HTTP DNS,这个HTTP请求是基于IP地址的本身不需要再解析一次域名,基于HTTP协议就很少被拦截,如果HTTP都被拦截就是断网了。
DNS服务不仅仅解决域名和IP的对应问题,还会解决就近接入和负载均衡问题。你会发现用同一个域名在不同地方,不同上网方式下得到的IP地址都不一样,比如用电信宽带和移动4G上网会得到不同的IP,你在北京和上海访问同一个网站IP也不一样,甚至同一个地点同一个网络不同时间得到的IP也不一样。这就是DNS服务根据需要给你选择了最佳接入的IDC,并且根据服务器负载选择了最佳服务器。这个决策过程也是需要时间的。
- 为什么域名访问比IP慢?
- 为什么IP能访问,域名却不行呢?
- 为什么Java比C++慢?
- android 为什么比iphone慢。。。
- 为什么erlang比C“慢”?
- 为什么https比http慢
- 为什么android比ios慢
- Java为什么比C慢?
- lua的string.format为什么比".."慢
- 为什么Java的foreach比for慢??
- 为什么Java永远比C++慢?
- lua的string.format为什么比".."慢
- lua的string.format为什么比".."慢
- LinkedList查找为什么比ArrayList慢
- 为什么JSP比Beetl要慢?
- Tomcat配置域名/IP访问
- fidle 域名代替ip访问
- 域名访问和IP访问问题
- 深度学习:Keras入门(一)之基础篇
- iOS开发之33 款主宰 2017 iOS 开发的开源库
- 邮箱发送和短信发送
- typedef和define作用域的区别
- 最全的dedecms织梦系统安装的方法步骤
- 为什么域名访问比IP慢?
- PythonWeb开发Django框架(三)模板Templates初步
- 大数据和人工智能浪潮下的未来进化【智库2861】
- 面试题---静态代码块和构造函数的执行顺序
- 深度学习与计算机视觉系列(6)_神经网络结构与神经元激励函数
- windows下maven环境开发hadoop mapreduce程序报Cannot initialize Cluster
- Linux一键修改主机名
- ViewStub用法
- Action+service+DAO