网络协议之DNS

写在前面

DNS,全称domain name system,域名系统,在网络世界中异常重要的存在。本文来一起了解下。

1:正文

因为IP地址过于晦涩,难记,所以就有了域名,而域名无法直接访问服务器,所以在使用时有需要转换为IP地址,所以就有了DNS。DNS是一种树形的结构,如下图:

从上往下分别是:

复制代码
根DNS服务器:职责是返回顶级域DNS服务器的IP地址
顶级域DNS服务器:职责是返回权威DNS服务器的IP地址
权威DNS服务器:职责是返回域名对应的IP地址,即底层的真正干活的劳动人民

对于我们来说了解DNS的大致工作流程就足够了,所以接下来就看下这部分内容。作为扩展也来看下作为其具体应用的负载均衡部分内容。

1.1:DNS的工作流程

为了提高性能,一般都会使用DNS缓存服务器,所以就有了以下的流程。

假定我们要访问www.dahuyou.com:

复制代码
0:请求本地DNS缓存,本地DNS缓存从hosts中获取
1:客户端发送请求给本地DNS(本地DNS一般在ISP,即网络服务商的某个机房中)
2:一般在本地DNS服务器中会缓存一份数据,如果有则直接返回,如果没有则请求根DNS服务器
3:根DNS服务器收到请求后,发现是.com的,则会返回.com对应的顶级域名DNS服务器
4:本地DNS拿到了顶级域名DNS服务器(负责管理二级域名)的地址之后,则继续请求之,顶级域名DNS服务器发现二级域名是dahuyou.com,则将对应的权威DNS服务器地址返回
5:本地DNS拿到了权威DNS服务器地址后,就请求之,权威DNS返回IP给本地DNS,本地DNS给客户端,这样客户端就拿到可用的IP地址了

完整过程如下图:

过程还是蛮复杂的,所以这里缓存还是比较重要的。

1.2:负载均衡

1.2.1:内部负载均衡

这里的内部不是一个应用内部,而是一个系统的内部(一个机房),比如A服务需要访问B服务,这时候A服务基于域名方式访问B服务,可以配置解析出多个B服务的IP地址,这次返回这个IP地址给客户端,下次返回那个IP地址给客户端,就实现负载均衡了。

1.2.2:全局负载均衡

全局负载均衡是,将系统部署在多个城市,或者是多个运营商中,这里以多个城市为例,北京的用户就近访问北京的服务器,而上海上的用户则就近访问上海的服务器。

写在后面

参考文章列表

相关推荐
2301_780789669 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
2501_915106329 小时前
抓包抓到乱码或压缩字节怎么解析,TraceEagle五种查看模式和一键解码
网络协议·计算机网络·网络安全·ios·adb·https·udp
情 九9 小时前
MCP 实战 06:把 HTTP 接口接成工具,让 AI 帮你查数据
人工智能·网络协议·http·mcp
星融元asterfusion11 小时前
工业网络升级实战:100G 双轨 Leaf-Spine 架构破解高并发出货网络瓶颈
网络·架构·spine
Da Da 泓11 小时前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
云和数据.ChenGuang12 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
ESDWAN12 小时前
企业网络监控应该监测哪些目标?网关、网络节点还是业务系统?
服务器·网络·php
mennekes12 小时前
临时用电线路标识:插头颜色、钟面标识配套规范
运维·网络·科技·安全·制造
发光小北14 小时前
EtherNet/IP 转 ModbusTCP 网关现场应用中会遇到什么问题?
服务器·网络·tcp/ip
海宇大数据14 小时前
零信任架构实战:基于海宇全能小微企业报告构建自动化持牌网络小贷小微商户极速助业贷秒级全维风险决策网关
网络·人工智能·架构·自动化