趣谈网络协议
刘超
网易研究院云计算技术部首席架构师
立即订阅
38008 人已学习
课程目录
已完结 51 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 想成为技术牛人?先搞定网络协议!
免费
第一模块 通信协议综述 (4讲)
第1讲 | 为什么要学习网络协议?
第2讲 | 网络分层的真实含义是什么?
第3讲 | ifconfig:最熟悉又陌生的命令行
第4讲 | DHCP与PXE:IP是怎么来的,又是怎么没的?
第二模块 底层网络知识详解:从二层到三层 (5讲)
第5讲 | 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?
第6讲 | 交换机与VLAN:办公室太复杂,我要回学校
第7讲 | ICMP与ping:投石问路的侦察兵
第8讲 | 世界这么大,我想出网关:欧洲十国游与玄奘西行
第9讲 | 路由协议:西出网关无故人,敢问路在何方
第二模块 底层网络知识详解:最重要的传输层 (4讲)
第10讲 | UDP协议:因性善而简单,难免碰到“城会玩”
第11讲 | TCP协议(上):因性恶而复杂,先恶后善反轻松
第12讲 | TCP协议(下):西行必定多妖孽,恒心智慧消磨难
第13讲 | 套接字Socket:Talk is cheap, show me the code
第二模块 底层网络知识详解:最常用的应用层 (4讲)
第14讲 | HTTP协议:看个新闻原来这么麻烦
第15讲 | HTTPS协议:点外卖的过程原来这么复杂
第16讲 | 流媒体协议:如何在直播里看到美女帅哥?
第17讲 | P2P协议:我下小电影,99%急死你
第二模块 底层网络知识详解:陌生的数据中心 (6讲)
第18讲 | DNS协议:网络世界的地址簿
第19讲 | HTTPDNS:网络世界的地址簿也会指错路
第20讲 | CDN:你去小卖部取过快递么?
第21讲 | 数据中心:我是开发商,自己拿地盖别墅
第22讲 | VPN:朝中有人好做官
第23讲 | 移动网络:去巴塞罗那,手机也上不了脸书
第三模块 热门技术中的应用:云计算中的网络 (5讲)
第24讲 | 云中网络:自己拿地成本高,购买公寓更灵活
第25讲 | 软件定义网络:共享基础设施的小区物业管理办法
第26讲 | 云中的网络安全:虽然不是土豪,也需要基本安全和保障
第27讲 | 云中的网络QoS:邻居疯狂下电影,我该怎么办?
第28讲 | 云中网络的隔离GRE、VXLAN:虽然住一个小区,也要保护隐私
第三模块 热门技术中的应用:容器技术中的网络 (3讲)
第29讲 | 容器网络:来去自由的日子,不买公寓去合租
第30讲 | 容器网络之Flannel:每人一亩三分地
第31讲 | 容器网络之Calico:为高效说出善意的谎言
第三模块 热门技术中的应用:微服务相关协议 (5讲)
第32讲 | RPC协议综述:远在天边,近在眼前
第33讲 | 基于XML的SOAP协议:不要说NBA,请说美国职业篮球联赛
第34讲 | 基于JSON的RESTful接口协议:我不关心过程,请给我结果
第35讲 | 二进制类RPC协议:还是叫NBA吧,总说全称多费劲
第36讲 | 跨语言类RPC协议:交流之前,双方先来个专业术语表
第四模块 网络协议知识串讲 (4讲)
第37讲 | 知识串讲:用双十一的故事串起碎片的网络协议(上)
第38讲 | 知识串讲:用双十一的故事串起碎片的网络协议(中)
第39讲 | 知识串讲:用双十一的故事串起碎片的网络协议(下)
第40讲 | 搭建一个网络实验环境:授人以鱼不如授人以渔
答疑与加餐 (9讲)
协议专栏特别福利 | 答疑解惑第一期
协议专栏特别福利 | 答疑解惑第二期
协议专栏特别福利 | 答疑解惑第三期
协议专栏特别福利 | 答疑解惑第四期
协议专栏特别福利 | 答疑解惑第五期
加餐1 | 测一测:这些网络协议你都掌握了吗?
加餐2 | 创作故事:我是如何创作“趣谈网络协议”专栏的?
加餐3 | “趣谈网络协议”专栏食用指南
第2季回归 | 这次我们来“趣谈Linux操作系统”
结束语 (1讲)
结束语 | 放弃完美主义,执行力就是限时限量认真完成
趣谈网络协议
登录|注册

第18讲 | DNS协议:网络世界的地址簿

刘超 2018-06-27

前面我们讲了平时常见的看新闻、支付、直播、下载等场景,现在网站的数目非常多,常用的网站就有二三十个,如果全部用 IP 地址进行访问,恐怕很难记住。于是,就需要一个地址簿,根据名称,就可以查看具体的地址。

例如,我要去西湖边的“外婆家”,这就是名称,然后通过地址簿,查看到底是哪条路多少号。

DNS 服务器

在网络世界,也是这样的。你肯定记得住网站的名称,但是很难记住网站的 IP 地址,因而也需要一个地址簿,就是DNS 服务器

由此可见,DNS 在日常生活中多么重要。每个人上网,都需要访问它,但是同时,这对它来讲也是非常大的挑战。一旦它出了故障,整个互联网都将瘫痪。另外,上网的人分布在全世界各地,如果大家都去同一个地方访问某一台服务器,时延将会非常大。因而,DNS 服务器,一定要设置成高可用、高并发和分布式的

于是,就有了这样树状的层次结构

  • 根 DNS 服务器 :返回顶级域 DNS 服务器的 IP 地址

  • 顶级域 DNS 服务器:返回权威 DNS 服务器的 IP 地址

  • 权威 DNS 服务器 :返回相应主机的 IP 地址

DNS 解析流程

为了提高 DNS 的解析性能,很多网络都会就近部署 DNS 缓存服务器。于是,就有了以下的 DNS 解析流程。

  1. 电脑客户端会发出一个 DNS 请求,问 www.163.com 的 IP 是啥啊,并发给本地域名服务器 (本地 DNS)。那本地域名服务器 (本地 DNS) 是什么呢?如果是通过 DHCP 配置,本地 DNS 由你的网络服务商(ISP),如电信、移动等自动分配,它通常就在你网络服务商的某个机房。

  2. 本地 DNS 收到来自客户端的请求。你可以想象这台服务器上缓存了一张域名与之对应 IP 地址的大表格。如果能找到 www.163.com,它直接就返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器:“老大,能告诉我 www.163.com 的 IP 地址吗?”根域名服务器是最高层次的,全球共有 13 套。它不直接用于域名解析,但能指明一条道路。

  3. 根 DNS 收到来自本地 DNS 的请求,发现后缀是 .com,说:“哦,www.163.com 啊,这个域名是由.com 区域管理,我给你它的顶级域名服务器的地址,你去问问它吧。”

  4. 本地 DNS 转向问顶级域名服务器:“老二,你能告诉我 www.163.com 的 IP 地址吗?”顶级域名服务器就是大名鼎鼎的比如 .com、.net、 .org 这些一级域名,它负责管理二级域名,比如 163.com,所以它能提供一条更清晰的方向。

  5. 顶级域名服务器说:“我给你负责 www.163.com 区域的权威 DNS 服务器的地址,你去问它应该能问到。”

  6. 本地 DNS 转向问权威 DNS 服务器:“您好,www.163.com 对应的 IP 是啥呀?”163.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。

  7. 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。

  8. 本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。

© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《趣谈网络协议》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(106)

  • iiwoai
    图谱应该都给赠送才对啊
    2018-06-27
    204
  • ^_^
    老师,独家网络协议知识图谱,这么好的东西,应该阳光普照,哈哈
    2018-06-27
    85
  • kel
    分地址和运营商主要是为了返回最优的ip,也就是离用户最近的ip,提高用户访问的速度,分运营商也是返回最快的一条路径。gslb失灵一般是因为一个ns请求gslb的时候,看不到用户真实的ip,从而不一定是最优的,而且这个返回的结果可能给一个用户或者一万个用户,可以通过流量监测来缓解。

    作者回复: 对的

    2018-08-19
    3
    35
  • coldfire
    从真名到别名怎么完成均衡负载,感觉没讲清楚,对于小白来说这就是一笔带过留了个影响
    2018-06-27
    2
    19
  • 知识改变命运
    感谢刘老师的讲解!这几次课的理解程度好多了!话说不是不愿意回答思考题,而是小白无力回答~最后,同求知识图谱~多谢多谢
    2018-06-27
    15
  • upstream
    虽然有了域名,但对于大多数人而言,能记住的就那么一两个网站地址。于是,打开baidu.com 搜索想要打开的网站,也就不奇怪了。打开baidu.com 搜索谷歌,再去访问Google 也就成为很多人的默认行为。说白了,也还是记不住域名。
    Baidu.com 搜索qq邮箱的大有人在
    2018-06-27
    1
    11
  • upstream
    问题1,分成两级还是在于国内网络跨运营商访问慢
    问题2,如果用户是上海电信,用户本地dns不是用的电信dns服务器,负载均衡调度会不准确。针对app的可以httpdns
    针对网站的除非能支持edns协议才比较好。
    另外当用户使用阿里云这类anycast 地址时,不清楚gslb调度策略如何的
    2018-06-27
    9
  • jim
    浏览器,路由器也有缓存吧?

    作者回复: 是的

    2018-11-28
    7
  • LongXiaJun
    😃😃😃现在一周三天都在期待专栏更新~
    2018-06-27
    5
  • Garwen
    刘超老师,根域名服务器的访问不还是无法逃离高并发访问的场景吗,虽说本地的DNS已经可以解决80%请求的地址解析,但还是会有极其庞大数量的访问需要去找根域名服务器的吧,这里的根域名服务器的高并发场景不比12306小吧,是如何解决的呢?

    作者回复: 一方面,dns要求有缓存。另一方面,根服务器没有12306业务逻辑这么复杂,什么各种高铁段的计算啊,而且涉及事务,两个人不能同一个位置,涉及支付。根服务器基本只需要维护下一级别的就可以了,而下一个级别的相对稳定,而且都是静态的。所以支撑过双十一我们就知道,凡是静态的,我有一万种方式可以搞定,就怕落数据库

    2019-05-05
    1
    4
  • 一粟
    要解析本地DNS缓存,需要启动DNS Sclient服务,此服务不开启hosts配置会失效。
    2018-07-15
    4
  • 曾经瘦过
    报名太晚了 不知道是否还可以获得独家网络知识图谱和学习奖励券

    作者回复: 图谱最后一篇里面有啊

    2018-10-18
    3
  • selboo
    在递归的时候。返回的授权ns如果链接不上。dns服务器怎么处理的?
    比如dns服务器收到 www.163.com 解析请求 递归返回ns记录为 ns1.163.com 和ns2.163.com 但此时 ns1.163.com 网络不通。 此时dns服务器是一直等待?还是重试几次返回失败?还是其他?
    2018-07-09
    3
  • alexgzh
    以前只知道DNS是方便記憶。今天學到了DNS其實是解耦應用和被訪問應用的IP地址,還有局部負載均衡和全局負載均衡的功能, 學到了!!

    作者回复: 对的,负载均衡

    2019-07-20
    2
  • 极客时间
    引用原文中的话:
    “在 yourcompany.com 的 DNS 服务器中,一般是通过配置 CNAME 的方式,给
    object.yourcompany.com 起一个别名,例如 object.vip.yourcomany.com,然后告诉本地 DNS
    服务器,让它请求 GSLB 解析这个域名,GSLB 就可以在解析这个域名的过程中,通过自己的策略实
    现负载均衡”
    这里有一句没明白,告诉本地服务器,让object.vip.yourcomany.com域名去GSLB解析,这个应该如何告诉呢

    作者回复: 返回给他就可以了。

    2019-06-17
    1
    2
  • 起风了001
    好像设置GSLB是通过添加NS记录实现的, 不是CNAME呀.

    作者回复: 通过添加NS也是可以的

    2019-05-22
    2
  • caohuan
    本篇所得:1.DNS区域名称系统 也为域名系统,它为网络世界的地址薄,可以通过域名查地址,因为域名服务是按树状结构组织,域名查询是使用递归方法查询,缓存可以增强反应速度,提供性能 ;2.域名通过DNS查询IP,DNS给予应用基于域名做负载均衡,可以是简单的负载均衡也可以是基于地址和运营商做全局负载均衡。

    回答老师的问题1.全局负载均衡 分地址,为返回数据提供最快的速度,分运营商 这有跨网络,寻找路线 不是最短或者最优的,所以 就近 在同一个运营商 较快。2.全局负载均衡 失灵,DNS没有及时更新,所以域名与IP对应不上,得不到反馈,不能正常访问,有不对之处 请指正。
    2019-02-23
    2
  • Geek_zz
    dns 解析过程7步骤里有个错字,是权威,而不是权限
    2018-10-26
    2
  • 灰灰
    写得太好了,刘超老师,你还有其他技术专栏吗?或者有其他推荐的技术专栏吗?
    2018-06-27
    2
  • 刘培培
    1. 不同地区和运营商之间延迟不同,所以优先选择同运营商、同地区服务

    2. GLSB 挂掉了,客户端地址、运营商变更了,缓存未及时更新。

    作者回复: 赞

    2019-08-27
    1
收起评论
99+
返回
顶部