主机名到 IP 地址的转换(hostname to IP address translation);
主机别名(host aliasing):一个主机可以有一个规范主机名和多个主机别名,应用程序调用 DNS 获取主机别名对应的规范主机名(canonical hostname)以及主机的 IP 地址;
邮件服务器别名(mail server aliasing);
负载分配(load distribution):繁忙的站点被冗余分布在多台服务器上,每台服务器运行在不同的端系统上,每个都有着不同的 IP 地址。由于这些冗余的 Web 服务器,一个 IP 地址集合对应一个规范主机名。当客户对映射到某处到某地址集合的名字发出一个 DNS 请求时,该服务器用 IP 地址的整个集合进行响应,但在每个回答中循环这些地址次序。因为客户通常总是向 IP 地址排在最前面的服务器发送 HTTP 请求报文,所以 DNS 就在所有这些冗余的 Web 服务器之间循环分配了负载;
Answers:[<DNS baidu.com. IN A RRset:[<110.242.68.66>,<39.156.66.10>]>,<DNS baidu.com. IN NS RRset:[<ns7.baidu.com.>,<ns2.baidu.com.>,<dns.baidu.com.>,<ns3.baidu.com.>,<ns4.baidu.com.>]>]
22
Authority:[]
23
Additional information:[<DNS dns.baidu.com. IN A RRset:[<110.242.68.134>]>,<DNS ns2.baidu.com. IN A RRset:[<220.181.33.31>]>,<DNS ns3.baidu.com. IN A RRset:[<153.3.238.93>,<36.155.132.78>]>,<DNS ns4.baidu.com. IN A RRset:[<111.45.3.226>,<14.215.178.80>]>,<DNS ns7.baidu.com. IN A RRset:[<180.76.76.92>]>,<DNS ns7.baidu.com. IN AAAA RRset:[<240e:bf:b801:1002:0:ff:b024:26de>,<240e:940:603:4:0:ff:b01b:589a>]>]
When a browser in a user’s host is instructed to retrieve a specific video (identified by a URL), the CDN must intercept(截获) the request so that it can
Determine a suitable CDN server cluster(集群) for that
client at that time
Redirect the client’s request to a server in that cluster.
许多 CDN 利用 DNS 截获用户请求并将用户重定向到最近的 CDN 服务器。
如下是一个用户访问 NetCinema 网页中视频的过程:
用户访问 NetCinema 的网页。
当用户点击链接http://video.netcinema.com/6Y7B23V时,用户的主机会发送一个寻找video.netcinema.com的 DNS 查询。
用户的本地 DNS 服务器(LDNS)将 DNS 查询转发到 NetCinema 的权威 DNS 服务器,该服务器注意到主机名video.netcinema.com中的字符串 video。为了将 DNS 查询交给 KingCDN,NetCinema 的权威 DNS 服务器不返回 IP 地址,而是返回 KingCDN 域中的主机名,例如a1105.kingcdn.com
DNS 查询进入 KingCDN 的私有 DNS 基础设施;用户的 LDNS 然后发送查询a1105.kingcdn.com的请求;KingCDN 的 DNS 系统指定合适的 KingCDN 内容服务器,将其 IP 地址返回给 LDNS。
LDNS 将提供内容的 CDN 节点的 IP 地址转发给用户的主机。
一旦客户端收到 KingCDN 内容服务器的 IP 地址,它就会与该 IP 地址的服务器建立 TCP 连接,并发出一个 HTTP GET 请求获取视频。如果使用 DASH,服务器会首先向客户端发送一个清单文件,其中包含一个 URL 列表,每个版本的视频对应一个 URL,客户端会动态地从不同的版本中选择块。