网路基本优化| 青训营

167 阅读3分钟

课程资料

参考

  1. 建议在Linux安装tcpdump软件(apt/yum命令安装,参考相关博客。如无法安装,可以下载源码安装)
  2. 安装wireshark(根据你的主机选择安装版本Linux主机

网络提速

协议优化

HTTP2.0

使用了多路复用:同一个Tcp连接有多个Http的连接

  • 依然有队头阻塞:使得一个http丢失就要重新传整个tcp的报文

image-20230803153029379

QUIC

使用重发的udp

  • QUIC的产生背景和背后思考:

    • 为什么在用户态实现?内核的更新迭代频率较低,不好推广
    • 为什么用UDP?TCP的队头阻塞问题不好解决,推倒重来&复用所有操作系统基本都支持的底层协议

img

路由跳数

数据中心建设

将服务器分布的更好

  • 核心机房:用户的数据
  • pop接入:接入互联网
  • 边缘机房:直接接入用户

image-20230803153834578

运营商

  • 多运营商接入:同运营商内部访问,避免跨运营商的流量
  • 有边缘机房/汇聚机房/中心机房

CDN静态缓存系统

静态数据缓存,分层的访问机房:边缘-> 汇集->核心

边缘机房的建设,优先访问边缘机房,缓存命中视频/图片等静态内容

image-20230803154221534

DSA动态加速系统

分四层/七层动态加速。核心在于利用可控节点做路径探测和规划

访问核心机房(用户数据),使用延迟探测得到最佳路径

image-20230803154405427

网络稳定

容灾

  • 感知:使用日志、监控、用户反馈
  • 切换:分布式中切换节点

img

机房专线故障

环路容灾,避免某条专线故障导致机房孤岛问题(专线是连接各个机房的网络物理路径)

  • 使用外网还是专线:线路切换

image-20230803154936853

单机房接入节点故障

DNS容灾,摘除故障的节点-字节GTM系统

  • 切换节点

image-20230803155022741

云控容灾

云端交互,服务器/云上下发命令到终端-字节TNC系统

  • 降级:防止访问某些功能:但是浏览器访问无法,这个需要sdk包

image-20230803155216950

cache容灾

源站不可用,降级到之前的缓存内容-字节TLB/ByteCDN等系统的容灾建设

  • 降级:服务器出问题,直接使用之前缓存的数据(CDN)

image-20230803155343945

故障排查

img

  • 加强故障沟通-明确故障、防止误报
  • 故障止损要在第一时间做(灾备预案的建设)
  • 熟悉常用的故障排查命令

服务端配置异常(健康检查异常)

  • 检查服务器

image-20230803160239686

客户端某个例异常

(客户端自己配置错误)

  • 客户的问题

image-20230803160305345

外部运营商故障

  • 运营商的问题

image-20230803160351425

复杂故障的排查

需要抓包,具体问题具体分析

  • 最终手段:在线debug 如:网路传输设备问题,使用抓包

image-20230803160435657

比如:路由对称问题,并不对称,路由链路并不能预测