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

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

写在后面

参考文章列表

相关推荐
charlotte1024102415 分钟前
高并发:关于在等待学校教务系统选课时的碎碎念
java·运维·网络
Zaralike38 分钟前
Linux 服务器网络不通排查 SOP(标准操作流程)
linux·服务器·网络
云姜.1 小时前
网络协议----OSI七层网络协议 和 TCP/IP四层(五层)网络协议
网络·网络协议
!chen1 小时前
LabVIEW TCP Server端工具TCP通信
网络·tcp/ip·labview
枷锁—sha1 小时前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
郝学胜-神的一滴2 小时前
深入解析C/S模型下的TCP通信流程:从握手到挥手的技术之旅
linux·服务器·c语言·网络·网络协议·tcp/ip
池央2 小时前
CANN 算子诊断与故障定位:oam-tools 在异构计算错误解析中的作用
网络
“αβ”2 小时前
数据链路层协议 -- 以太网协议与ARP协议
服务器·网络·网络协议·以太网·数据链路层·arp·mac地址
释怀不想释怀2 小时前
Linux网络基础(ip,域名)
linux·网络·tcp/ip
开开心心就好2 小时前
AI人声伴奏分离工具,离线提取伴奏K歌用
java·linux·开发语言·网络·人工智能·电脑·blender