概述
常见概念说明
域名(Domain)
定义 :易记的网址(如 example),通过DNS解析为IP地址
。
作用 :提供访问入口,解耦IP变动。
关联性 :域名解析指向网关或负载均衡IP,触发后续路由。
# DNS解析过程演示
$ dig +short google
142.250.217.78
# 多级域名配置
www.example → Web服务器
api.example → 接口网关
static.example → CDN节点
证书 (SSL/TLS Certificate)
定义:用于加密通信的电子文档,验证服务器身份
核心作用
- HTTPS加密传输
- 身份认证
- 防止中间人攻击
# 生成自签名证书
openssl req -x509 -newkey rsa:4096 -nodes \
-keyout server.key -out server.crt -days 365
# Nginx配置示例
server {
listen 443 ssl;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
}
路由(Routing)
定义 :网络数据包从源到目的地的路径选择过程
,依赖路由表、协议(如OSPF、BGP)动态决策。
作用 :决定流量如何在不同网络节点间传递
。
层级 :OSI网络层(L3)核心功能。
# Nginx路由规则示例
location /v1/api {
proxy_pass http://api-v1;
}
location /v2/api {
proxy_pass http://api-v2;
}
location /static {
root /var/www/html;
}
上游/下游
基本概念
“上游”(Upstream)和"下游"(Downstream)是两个相对概念,其定义取决于数据流向和依赖关系
概念 | 角色定位 | 数据流向 | 典型特征 |
---|---|---|---|
上游 | 数据/请求的来源端 | 产生数据 发起请求 | 控制节奏 决定协议 |
下游 | 数据/请求的接收端 | 消费数据 响应请求 | 依赖上游 被动接收 |
举例
场景1:HTTP请求响应
- 请求阶段:客户端作为下游向服务器(上游)发起请求
- 响应阶段:服务器成为上游向下游(客户端)返回数据
场景2:微服务调用链
- 上游:每个服务的调用方(网关→Service A的上游是客户端)
- 下游:被调用方(Service B的下游是数据库)
场景3:消息队列系统
# Kafka生产消费模型
producer = KafkaProducer() # 上游(数据生产者)
consumer = KafkaConsumer() # 下游(数据消费者)
灰度发布 (Canary Release)
定义:渐进式的新版本发布策略
核心作用
- 降低发布风险
- 渐进式流量切换
- 快速回滚机制
# 基于用户特征的灰度路由
def route_request(user):
if user.id % 100 < 10: # 10%灰度流量
return canary_cluster
else:
return production_cluster
流量染色 (Traffic Tagging)
定义:给特定请求添加元数据标记的行为
核心作用
- A/B测试隔离
- 链路追踪标识
- 调试流量标记
网关(Gateway)
定义 :连接不同网络的枢纽(如企业内网与公网)。
功能 :
- 协议转换(如HTTP/HTTPS)
- 安全控制(防火墙、WAF)
- 负载均衡(分发流量到上游)
- API管理(限流、鉴权)
上述交互关系
概念 | 层级 | 核心功能 | 典型应用场景 | 技术示例 |
---|---|---|---|---|
域名 | 应用层 | 网络资源标识 | 网站访问 | DNS解析 example → 192.168.1.1 |
证书 | 传输层 | 加密通信 | HTTPS安全连接 | SSL/TLS证书 Let’s Encrypt |
路由 | 网络层 | 路径选择 | 请求转发决策 | Nginx路由规则 Kubernetes Ingress |
上游 | 架构层 | 后端服务抽象 | 负载均衡目标 | Upstream server_group Spring Cloud微服务 |
灰度 | 发布策略 | 风险控制 | 新功能逐步发布 | 按用户ID分流 10%流量切新版本 |
流量染色 | 流量治理 | 标记识别 | A/B测试链路追踪 | HTTP头添加X-Version: canary |
网关管理 | 系统入口 | 统一流量管控 | API聚合与安全 | Kong网关配置 Spring Cloud Gateway |
关键联动 :四者共同构建了 用户请求从发起到响应 的全链路闭环。
- 路由 是
路径决策机制
域名解析是流量进入系统的 起点
。- 网关作为 流量枢纽 ,
依赖路由策略指引方向
。 上游是实际业务 执行终端
,三者形成完整链路。
TLS/SSL
SSL(安全套接层)和TLS(传输层安全)都是加密协议,用于在互联网上提供安全通信
。
SSL是较早的版本,而TLS是其后续的升级版本。
现在TLS已经取代了SSL,但通常人们还是习惯用SSL来称呼这类协议
SSL的最终版本(3.0)与TLS的第一个版本无明显差异,名称更改只是表示所有权改变
演进关系
协议握手
SSL 3.0握手流程(已淘汰)
TLS 1.3握手流程(现代标准):双方: 基于DH参数生成密钥(无需额外往返)
双方: 基于DH参数生成密钥(无需额外往返)
HTTPS
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。
- 即
HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL。其所用 的端口号是 44
3。
过程大致如下:
-
建立连接获取证书
:SSL 客户端通过 TCP 和服务器建立连接之后(443 端口),并且在一般的 tcp 连接协商(握 手)过程中请求证书。即- 客户端发出一个消息给服务器,这个消息里面包含了自己可实现的算 法列表和其它一些需要的消息,
- SSL 的服务器端会回应一个数据包,这里面确定了这次通信所 需要的算法,
- 然后服务器向客户端返回证书。(证书里面包含了服务器信息:域名。申请证书 的公司,公共秘钥)。
-
证书验证
:Client 在收到服务器返回的证书后,判断签发这个证书的公共签发机构,并使用这个机构的公 共秘钥确认签名是否有效,客户端还会确保证书中列出的域名就是它正在连接的域名 -
数据加密和传输
:如果确认证书有效,那么生成对称秘钥并使用服务器的公共秘钥进行加密。然后发送给服务 器,服务器使用它的私钥对它进行解密,这样两台计算机可以开始进行对称加密进行通信
CDN 原理
CDN(内容分发网络,Content Delivery Network)是一种通过分布在不同地理位置的服务器网络来加速内容传输的技术
。
它的主要功能是将网站的静态资源(如图片、视频、样式表等)缓存到离用户更近的服务器上,从而提高访问速度和用户体
CND 一般包含分发服务系统、负载均衡系统和管理系统
-
分发服务系统:其基本的工作单元就是
各个 Cache 服务器。负责直接响应用户请求,将内容快速分发到用户;同时还 负责内容更新,保证和源站内容的同步
- 根据内容类型和服务种类的不同,分发服务系统分为多个子服务系统,
- 如:网页加速服务、流媒体加速 服务、应用加速服务等。
- 每个子服务系统都是一个分布式的服务集群,由功能类似、地域接近的分布部 署的 Cache 集群组成。
- 在承担内容同步、更新和响应用户请求之外,分发服务系统还需要向上层的管理调度系统反馈各个 Cache 设备的健康状况、响应情况、内容缓存状况等,以便管理调度系统能够根据设定的策略决定由 哪个 Cache 设备来响应用户的请求
- 根据内容类型和服务种类的不同,分发服务系统分为多个子服务系统,
-
负载均衡系统:
负载均衡系统是整个 CDN 系统的中枢。负责对所有的用户请求进行调度,确定提供给用户的最终访问 地址
- 使用分级实现。最基本的两极调度体系包括全局负载均衡(GSLB)和本地负载均衡(SLB)
- GSLB 根据用户地址和用户请求的内容,主要根据就近性原则,确定向用户服务的节点。
- 一般通过 DNS 解析或者应用层重定向(Http 3XX 重定向)的方式实现
- SLB 主要负责节点内部的负载均衡。当用户请求从 GSLB 调度到 SLB 时,SLB 会根据节点内各个 Cache 设备的工作状况和内容分布情况等对用户请求重定向。
- SLB 的实现有四层调度(LVS)、七层调 度(Nginx)和链路负载调度等。
- GSLB 根据用户地址和用户请求的内容,主要根据就近性原则,确定向用户服务的节点。
- 使用分级实现。最基本的两极调度体系包括全局负载均衡(GSLB)和本地负载均衡(SLB)
-
管理系统:
分为运营管理和网络管理子系统
。- 网络管理系统:实现
对 CDN 系统的设备管理、拓扑管理、链路监控和故障管理
,为管理员提供对全网资 源的可视化的集中管理,通常用 web 方式实现 - 运营管理:是
对 CDN 系统的业务管理,负责处理业务层面的与外界系统交互所必须的一些收集、整理、 交付工作
。包括用户管理、产品管理、计费管理、统计分析等
- 网络管理系统:实现
网络请求
流程图
关键解析阶段
DNS解析
浏览器查询本地缓存 → 系统缓存 → 路由器缓存 → ISP DNS 服务器
最终通过递归查询获取目标服务器的真实 IP 地址
日志查询
# 使用 dig 命令追踪DNS解析
dig +trace www.hihonor
TCP 连接建立
经典的三次握手过程:博客
客户端 --> SYN --> 服务器
客户端 <-- SYN-ACK <-- 服务器
客户端 --> ACK --> 服务器
HTTPS 特有步骤:TLS 握手(平均增加 2 RTT 时间)
- 交换加密套件
- 验证证书链
- 协商会话密钥
请求发送阶段
典型 HTTP 请求结构:详细见
GET /api/v1/products HTTP/1.1Host: api.hihonor
User-Agent: Mozilla/5.0
Accept: application/json
服务器处理流程
响应返回阶段
标准响应结构:详细见
HTTP/1.1 200 OK
Content-Type: application/json
Date: Tue, 01 Apr 2025 03:28:15 GMT
{"products": [...]}
典型耗时分布(基于 4G 网络)
大致范围分布
耗时优化矩阵
优化维度 | 技术手段 | 预期收益 | 实施成本 |
---|---|---|---|
DNS | HTTPDNS+LRU缓存 | -150ms | ★☆☆ |
TCP | TFO(TCP Fast Open) | -1 RTT | ★★☆ |
TLS | 1.3协议+0-RTT | -300ms | ★★☆ |
HTTP | 2/3协议+Hpack压缩 | -40%带宽 | ★★★ |
后端 | 异步批处理+缓存 | -50% CPU | ★★☆ |
前端 | 资源预加载+懒加载 | -30% FCP | ★☆☆ |
性能基线指标
阶段 | 优秀值 | 达标值 | 待改善 |
---|---|---|---|
DNS查询 | <50ms | <150ms | >300ms |
TCP握手 | <200ms | <400ms | >600ms |
TLS协商 | <300ms | <500ms | >800ms |
TTFB | <500ms | <1200ms | >2000ms |
资源加载 | <1500ms | <3000ms | >5000ms |
发布者:admin,转转请注明出处:http://www.yc00.com/web/1753909314a5097178.html
评论列表(0条)