本博客提供的更多是计网进阶版本的内容,基础的讲解请查阅b站.

DNS

平时在域名管理服务中会遇到的问题。

DNS 本质是一个运行在服务器上的进程,运行在BIND软件上

域名层次结构

域名在结构上是分层次的,最右边的是顶级域名(TLD),如 .com.net.org 等。每个域名由多个部分组成,通常包括子域名、主域名(或称为二级域名)和顶级域名。例如,在域名 www.example.com 中,com 是顶级域名,example 是二级域名,www 是子域名。

DNS 解析过程

当用户输入一个网址时,他们的设备会通过一系列步骤来查找与该网址关联的 IP 地址:

  • 本地缓存查询:设备首先检查自己的缓存中是否有该域名的记录。

  • 递归解析器:如果本地没有缓存,设备会向配置的 DNS 服务器发送查询请求。这个服务器通常由用户的互联网服务提供商(ISP)提供。

  • 根服务器查询:递归服务器查询根 DNS 服务器以找到包含目标顶级域名(如 .com)的服务器的信息。

  • 顶级域(TLD)服务器查询:根服务器回应后,递归服务器接着查询对应的 TLD 服务器(如 .com 服务器)以获取包含该二级域名的名称服务器的信息。

  • 权威名称服务器查询:最后,递归服务器向权威名称服务器发送请求,该服务器直接负责该域名的记录,以获取最终的 IP 地址。

DNS 记录

域名系统(DNS) 记录是用于将域名转换为其他类型的数据(如 IP 地址)的信息。这些记录存储在 DNS 服务器上,是互联网基础设施的核心部分。下面是一些常见类型的 DNS 记录:

1. A 记录(地址记录)

- 将域名映射到一个 IPv4 地址。

- 示例:`example.com A 192.0.2.1`

2. AAAA 记录(IPv6 地址记录)

- 将域名映射到一个 IPv6 地址。

- 示例:`example.com AAAA 2001:0db8::1`

3. CNAME 记录(规范名称记录)

- 将一个域名映射到另一个域名,而不是一个 IP 地址。

- 示例:`www.example.com CNAME example.com`

4. MX 记录(邮件交换记录)

- 定义邮件服务器的地址和优先级,用于电子邮件交换。

- 示例:`example.com MX 10 mail.example.com`

5. TXT 记录(文本记录)

- 存储与域名相关的任意文本,常用于验证域名所有权、邮件发送政策等。

- 示例:`example.com TXT "v=spf1 include:_spf.google.com ~all"`

6. NS 记录(名称服务器记录)

- 指明哪些 DNS 服务器负责该域名的 DNS 记录。

- 示例:`example.com NS ns1.example.com`

7. PTR 记录(指针记录)

- 主要用于逆向 DNS 查找,即将 IP 地址映射回对应的域名。

- 示例:`1.2.0.192.in-addr.arpa PTR example.com`

8. SRV 记录(服务定位记录)

- 指定提供特定服务的服务器的位置。

- 示例:`_sip._tcp.example.com SRV 0 5 5060 sipserver.example.com`

DNS 报文

DNS 报文用于在客户端(如浏览器)和 DNS 服务器之间交换信息。DNS 报文有两种类型:查询和响应。报文格式包括几个部分:

1. 报头

- 包含诸如交易 ID、标志、问题数、答案数、授权记录数和额外记录数等信息。

2. 问题部分

- 包含进行 DNS 查询的域名和查询类型(如 A、MX)。

3. 答案部分

- 包含对查询的回应,如域名的 IP 地址。

4. 授权部分

- 提供授权这个回答的 DNS 服务器的记录。

5. 附加部分

- 可能包含其他有用的附加信息。

DNS 查询通常使用 UDP 协议通过端口 53 发送,因为 UDP 相对于 TCP 有更低的延迟。然而,在需要更可靠的传输时,比如传输大量数据时,也可能使用 TCP。

总结

DNS 是帮助用户轻松访问互联网资源的关键服务之一,通过将用户友好的域名转换为机器可读的 IP 地址。了解 DNS 记录和报文的工作原理是理解网络通信的基础。

CDN

CDN(内容分发网络)加速的原理是基于将内容分散存储于多个地理位置分布的服务器中,从而让用户可以从最近的服务器快速获取数据。这种方法不仅减少了数据传输的距离和延迟,还提高了数据访问的速度和可靠性。以下是 CDN 加速的具体原理和组成部分:

1. 内容复制

CDN 的核心功能是将内容(如网页、图片、视频、软件更新等)复制到全球分布的多个服务器上。这些服务器被称为“边缘服务器”,因为它们位于网络的“边缘”,靠近用户群体。当内容被复制到多个位置时,用户可以从地理上距离最近的服务器接收数据,而不是所有用户都从一个中心服务器获取内容,这样可以显著减少数据传输的时间。

2. 智能路由

当用户尝试访问使用 CDN 的服务时,用户的请求会被智能路由技术引导到离他们最近的边缘服务器。这种路由决策通常基于几个因素,如用户的地理位置、服务器的当前负载、内部网络的延迟和带宽成本。智能路由确保每个用户都能以最快的速度访问请求的内容。

3. 缓存机制

CDN 通过高效的缓存策略来提供快速服务。边缘服务器会缓存静态资源的副本,如图片、视频、网页和其他下载文件。当这些内容被请求时,它们可以直接从边缘服务器的缓存中迅速提供,而不需要从原始服务器重新加载。CDN 通常提供配置工具来设置缓存时间、刷新策略和缓存的内容类型。

4. 负载均衡

CDN 使用负载均衡技术来分配请求到多个服务器,防止任何单一服务器因为过载而变得响应缓慢或宕机。这样可以确保即使在高流量情况下,用户访问速度也不会受到影响。

5. 数据压缩

为了进一步提速,CDN 还可以压缩数据,减少因数据传输造成的延迟。常见的压缩格式如 Gzip,能有效减少HTML、CSS和JavaScript文件的大小。通过压缩,可以快速加载页面,提高用户体验。

6. 网络优化

CDN 提供商通常会优化其内部网络,以确保数据在服务器之间快速、安全地传输。这包括使用高速的专用数据链接和优化的路由协议,确保数据沿最快的路径传递。

总结

通过以上机制,CDN 能够显著提高网站和网络应用的性能。用户无论身在何处,都能从最近的服务器获取数据,这不仅提高了加载速度,还降低了原始服务器的负载和整体运维成本。这些优势使 CDN 成为大规模内容分发和高需求应用的理想选择。

DASH

DASH(Dynamic Adaptive Streaming over HTTP),即动态自适应流媒体技术,是一种基于 HTTP 的流媒体技术,专门设计用来从网络服务器到客户端设备(如电视、电脑、手机等)提供流畅的视频播放体验。DASH 使得视频内容能够在各种网络条件下都能提供最佳的观看体验,尤其适用于变化的网络环境,比如移动设备通过蜂窝网络或 Wi-Fi 观看视频。

主要特点和工作原理

1. 自适应流技术

DASH 允许视频内容以多个不同的质量级别编码并存储在服务器上。客户端设备根据当前的网络条件(如带宽和延迟)动态选择最适合的流质量。这意味着当网络条件良好时,可以播放高清视频;如果网络条件恶化,客户端会自动降低视频质量以防止缓冲和播放中断。

2. 基于 HTTP 的服务

由于 DASH 使用标准的 HTTP/HTTPS 协议传输视频数据,它能充分利用现有的网络基础设施,如缓存服务器和内容分发网络(CDN)。这种方式简化了部署并兼容广泛的网络环境和设备。

3. 分段视频文件

DASH 技术将视频文件分割成一系列较短的片段(通常每个片段几秒钟)。每个片段都可以独立于其他片段以不同的质量级别进行编码。客户端在播放视频时可以逐个请求这些片段,并根据实时网络状况调整请求的视频质量。

4. 描述文件 —— MPD (Media Presentation Description)

DASH 使用一个名为 MPD 的 XML 描述文件来提供关于视频内容的元数据,如可用的视频质量级别、每个片段的URL、片段持续时间等。客户端首先下载这个 MPD 文件,然后根据文件中的信息决定如何请求视频数据。

5. 客户端驱动

视频的质量控制是由客户端完成的,而不是由服务器决定。这种方式提高了系统的灵活性,使其能够更好地适应用户的具体需求和当前的网络状况。

应用场景

DASH 广泛用于在线视频平台、直播服务和其他需要高可靠性和可扩展性的流媒体应用。例如,YouTube 和 Netflix 等主要视频服务提供商都采用了类似 DASH 的自适应流技术来优化用户的观看体验。

优势

- 提高可靠性和用户体验:通过适应网络条件动态调整视频质量,减少缓冲和中断。

- 网络效率:利用标准 HTTP/HTTPS,易于实现缓存和内容分发,提高数据传输效率。

- 设备兼容性:支持多种设备和平台,提高服务的可接受性和覆盖范围。

总体来说,DASH 提供了一种高效、灵活的方法来提供视频内容,特别适合网络条件多变的移动环境和需要高质量视频服务的应用。