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

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

写在后面

参考文章列表

相关推荐
fei_sun39 分钟前
【复习】计网每日一题1105大题---ARP、NAT、路由器、IP数据报、冲突域、广播域、100BASE-F、10BASE-T
网络
wearegogog1232 小时前
基于混合蛙跳算法和漏桶算法的无线传感器网络拥塞控制与分簇新方法
网络·算法
周杰伦fans3 小时前
.NET Core WebAPI 中 HTTP 请求方法详解:从新手到精通
网络协议·http·.netcore
希赛网4 小时前
倒计时两天!软考网络工程师案例分析模拟题
网络·网络工程师·软考·案例分析题·考前复习
熙xi.4 小时前
以太网帧格式、IP数据报头部、TCP头部、UDP头部
网络·tcp/ip·udp
盛世宏博智慧档案5 小时前
新生产力算力机房内部温湿度之以太网监控系统方案
运维·服务器·网络·算力·温湿度
星释5 小时前
Rust 练习册 16:Trait 作为返回类型
java·网络·rust
qyresearch_5 小时前
全球生物识别加密U盘市场:安全需求驱动增长,技术迭代重塑格局
网络·安全
wydaicls5 小时前
C语言完成Socket通信
c语言·网络·websocket
light_forest7 小时前
tcp_connect_v4接口
java·网络·tcp/ip