网络请求与加速技术详解:从域名解析到负载均衡| 豆包MarsCode AI 刷题

135 阅读4分钟

输入一个网址经历了哪些

  1. 域名解析 (DNS解析)

    • 将用户输入的域名(如www.xxx.com)转换为对应的IP地址。
    • 解析过程可能涉及多个DNS服务器:递归解析器、本地DNS缓存、权威DNS服务器。
    • DNS解析返回的结果有时会被浏览器缓存。
  2. TCP连接建立

    • 浏览器与服务器通过三次握手建立TCP连接。

    • 三次握手过程:

      1. 客户端发送SYN包(请求建立连接)。
      2. 服务器返回SYN-ACK包(确认连接请求并响应)。
      3. 客户端发送ACK包(确认响应)。
  3. SSL/TLS握手(如访问HTTPS网站)

    • 客户端和服务器协商加密协议版本和加密算法。
    • 服务器向客户端提供SSL证书。
    • 双方生成共享密钥用于后续通信的加密。
  4. HTTP请求

    • 浏览器向服务器发送HTTP请求(如GET、POST等)。
    • 请求中包括路径、HTTP头信息和其他数据(如Cookie、表单数据)。
  5. 服务器响应

    • 服务器处理请求并返回HTTP响应(如HTML、JSON、图片等)。
    • 浏览器渲染页面或处理数据。

网站加速技术

1. 静态加速 (CDN)

  • 原理

    • 将网站的静态资源(如图片、CSS、JS等)缓存到CDN节点。
    • 用户访问时从距离最近的节点获取资源,而非直接访问源站。
  • 优点

    • 减少延迟,提升加载速度。
    • 减轻源站服务器压力。

2. 动态加速 (DCDN)

  • 原理

    • 在CDN基础上优化动态内容的传输。
    • 建立边缘节点缓存部分动态数据或加速其传递。
  • 特点

    • 动态加速对实时性要求较高,通常使用协议优化和传输优化。

四层负载均衡

什么是四层负载均衡?

  • 通过IP和端口(OSI模型第4层:传输层)分发网络流量到多个后端服务器。
  • 基于TCP或UDP协议,不关注应用层内容。

有什么作用?

  • 提高系统的吞吐量和可用性。
  • 分担服务器压力,避免单点故障。

如何做到?

  • 使用硬件设备(如F5负载均衡器)或软件(如LVS、HAProxy)。

  • 关键技术

    • 数据包转发(通过NAT或直接路由)。
    • 高性能网络框架(如DPDK)。

DPDK技术

  • Data Plane Development Kit,用户态高性能网络框架。
  • 减少内核和用户态的上下文切换,提高网络IO效率。
  • 广泛用于四层负载均衡和高性能网络设备。

四层负载均衡只能监听一个端口?

  • 四层负载均衡通常监听多个端口(如80、443),具体取决于配置。

七层负载均衡

什么是七层负载均衡?

  • 基于应用层协议(如HTTP/HTTPS)分发流量。
  • 能分析HTTP头、URL路径等内容。

功能

  1. SSL卸载

    • 在负载均衡器上处理SSL加密和解密,减少后端服务器压力。
  2. 请求重定向

    • 例如,将abc.com重定向到www.abc.com
  3. 内容路由

    • 根据请求内容将流量分发到不同的后端服务器。
    • 如将静态内容的请求分配到专门的静态资源服务器。

使用Nginx配置七层负载均衡

示例配置:

 http {
     upstream backend {
         #轮询实现负载均衡
         server 192.168.1.100 weight=3;#权重是3
         server 192.168.1.101;#默认权重为1
     }
 ​
     server {
         listen 80;
         server_name www.xxxx.com;
         #可根据路径设置不同的转发代理
         location / {
             proxy_pass http://backend;
         }
         location /static/{
             root /www/static;#直接从本地读取静态文件
         }
     }
 }

完整的处理流程

  1. 客户端发送HTTP请求到 www.xxx.com 的80端口。
  2. Nginx 匹配到 server_name www.xxx.com 的虚拟主机。
  3. 匹配到 location /,将请求转发到 upstream backend 定义的后端服务器组。
  4. 后端服务器返回响应,Nginx 将其转发回客户端。

什么是Nginx?

定义

  • 高性能HTTP和反向代理服务器,同时支持IMAP/POP3协议。
  • 常用于负载均衡、静态资源服务、代理服务等。

特点和优点

  • 高并发:支持大量并发连接,适合高流量场景。
  • 轻量级:资源占用小,配置简单。
  • 模块化设计:功能可以扩展。
  • 稳定性:高效的内存使用和故障恢复能力。