课程资料
网络提速
协议优化
HTTP2.0
使用了多路复用:同一个Tcp连接有多个Http的连接
- 依然有队头阻塞:使得一个http丢失就要重新传整个tcp的报文
QUIC
使用重发的udp
-
QUIC的产生背景和背后思考:
- 为什么在用户态实现?内核的更新迭代频率较低,不好推广
- 为什么用UDP?TCP的队头阻塞问题不好解决,推倒重来&复用所有操作系统基本都支持的底层协议
路由跳数
数据中心建设
将服务器分布的更好
- 核心机房:用户的数据
- pop接入:接入互联网
- 边缘机房:直接接入用户
运营商
- 多运营商接入:同运营商内部访问,避免跨运营商的流量
- 有边缘机房/汇聚机房/中心机房
CDN静态缓存系统
静态数据缓存,分层的访问机房:边缘-> 汇集->核心
边缘机房的建设,优先访问边缘机房,缓存命中视频/图片等静态内容
DSA动态加速系统
分四层/七层动态加速。核心在于利用可控节点做路径探测和规划
访问核心机房(用户数据),使用延迟探测得到最佳路径
网络稳定
容灾
- 感知:使用日志、监控、用户反馈
- 切换:分布式中切换节点
机房专线故障
环路容灾,避免某条专线故障导致机房孤岛问题(专线是连接各个机房的网络物理路径)
- 使用外网还是专线:线路切换
单机房接入节点故障
DNS容灾,摘除故障的节点-字节GTM系统
- 切换节点
云控容灾
云端交互,服务器/云上下发命令到终端-字节TNC系统
- 降级:防止访问某些功能:但是浏览器访问无法,这个需要sdk包
cache容灾
源站不可用,降级到之前的缓存内容-字节TLB/ByteCDN等系统的容灾建设
- 降级:服务器出问题,直接使用之前缓存的数据(CDN)
故障排查
- 加强故障沟通-明确故障、防止误报
- 故障止损要在第一时间做(灾备预案的建设)
- 熟悉常用的故障排查命令
服务端配置异常(健康检查异常)
- 检查服务器
客户端某个例异常
(客户端自己配置错误)
- 客户的问题
外部运营商故障
- 运营商的问题
复杂故障的排查
需要抓包,具体问题具体分析
- 最终手段:在线debug 如:网路传输设备问题,使用抓包
比如:路由对称问题,并不对称,路由链路并不能预测