网络协议之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:全局负载均衡

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

写在后面

参考文章列表

相关推荐
jerryinwuhan1 小时前
socket由浅入深
网络
xu_yule3 小时前
网络和Linux网络-3(套接字编程)TCP网络通信代码
linux·网络·tcp/ip
喜欢吃豆4 小时前
使用 OpenAI Responses API 构建生产级应用的终极指南—— 状态、流式、异步与文件处理
网络·人工智能·自然语言处理·大模型
xixixi777774 小时前
解析一下存储安全——“它是什么”,更是关于“它为何存在”、“如何实现”以及“面临何种挑战与未来”
网络·安全·通信
运维有小邓@4 小时前
实时日志关联分析工具:智能检测潜在安全威胁
运维·网络·安全
j***57685 小时前
电脑可以连接wifi,但是连接后仍然显示没有网络
网络·电脑·php
brave and determined6 小时前
接口通讯学习(day04):RS-232与RS-485:通信接口全解析
网络·uart·通讯·emc·rs232·rs485·嵌入式设计
檀越剑指大厂6 小时前
在家也能远程调代码?WSL+cpolar 的实用技巧分享
网络
秋邱6 小时前
价值升维!公益赋能 + 绿色技术 + 终身学习,构建可持续教育 AI 生态
网络·数据库·人工智能·redis·python·学习·docker
爱学习的大牛1236 小时前
如何系统学习网络渗透测试:从入门到精通的完整指南
网络·学习