网络框架提质 | 青训营

131 阅读6分钟

网络框架怎么给抖音提质

  • 网络提速
  • 网络稳定

网络提速

2.1 网络提速-HTTP2.0
2.2网络提速-怎么理解多路复用/stream

image-20230809201356807.png

2.2.1 单个TCP链接传输

使用单个TCP链接传输多个数据,可以避免建立多个独立的TCP连接所需要的建立和维护开销。实现单个TCP连接传输多个数据流的方法有多种,其中一种常见的方法是使用应用层协议或应用层协议扩展来在TCP连接上进行数据分包和重组。以下是一种简单的可能的实现方式:

  1. 数据分包:在发送端,将多个数据流的数据分割成小的数据包,并给每个数据包添加一些标识符,以便接收端能够识别和重组数据流。
  2. 数据重组:在接收端,根据标识符将接收到的数据包重新组合成原始的多个数据流。
  3. 数据流管理:发送端和接收端需要维护一个对应关系表,它记录了每个数据流的标识符和对应的数据包,以确保正确的数据重组和传输顺序。

常见问题:数据包的乱序、丢包等问题。

解决方法:使用一些差错控制和拥塞控制机制或者使用并行连接。

2.2.2 如果TCP丢包了怎么办

如果发生了对头阻塞问题,会由于等待丢失或延迟的数据包,导致整体的传输延迟增加,而且其他的数据包也会因此无法及时传输,从而降低了带宽的有效利用率;

措施:

  1. 使用并行连接:通过创建多个并行的TCP连接,将数据流分散到多个连接上传输,可以减少对头阻塞的影响,提高整体的传输效率。
  2. 使用拥塞控制算法:合适的拥塞控制算法可以根据网络状态进行动态调整,避免对头阻塞引起的过度阻塞。
  3. 使用可靠的传输协议:例如TCP提供丢失重传的机制。
2.3 网络提速-QUIC/HTTP3.0

QUIC是一种基于UDP的传输层协议

TCP和UDP

TCP是面向连接的可靠的数据传输协议;UDP是面向无连接的不可靠的数据传输协议。

Kernel和Userspace

kernel(内核):是操作系统的核心部分,它负责管理计算机的硬件资源(如处理器、内存、设备等)并提供系统服务和功能。内核是操作系统的第一层,它直接与硬件交互,并提供了一组系统调用接口供用户程序使用。

Userspace(用户空间):是指操作系统内核之外的部分,它是用户程序运行的环境。用户空间包括应用程序、服务程序和用户库等,用于执行各种任务和提供各种应用功能。

0-RTT(零往返时间)

QUIC采用了0-RTT握手方式,减少了建立连接的时间。

优势:降低建立连接的时延,提高应用程序的性能和响应速度。

缺点:因为服务器在接收到客户端的0-RTT数据时无法验证其真实性,可能会面临重放攻击(replay attack)的风险。因此,安全协议通常会在0-RTT阶段引入额外的安全机制来保证数据的合法性和防止攻击。

弱网优势

QUIC通过减少连接建立时间,抗丢包能力强、继承了加密功能和至此多路复用等特点,在软网传输条件下具有优势。

总结:HTTP3.0主要是对HTTP2.0的多路复用进行了一个优化,解决对头阻塞的问题

2.4 网络提速-数据中心分布

image-20230810143518426.png

2.5网络提速-同运营商访问

image-20230810143739333.png

2.6网络提速-静态资源(图片视频)路径优化(CDN)

image-20230810143921812.png

CDN缓存系统:是一种分布式存储和传输内容的网络架构,用于提供快速、可靠的内容传输和加速用户访问速度。

核心机房(源服务器):存储静态文件或动态内容的副本

边缘机房:主要任务是缓存并传送静态内容。当用户请求特定内容时,边缘服务器会检查是否有该内容,避免从源服务器拉取的时延。

2.7 网络提速-动态API(播放/评论接口)路径优化(DSA)

image-20230810144737131.png

路径优化算法DSA(Dijkstra’s Algorithm)

是一种常用于图论中的路径优化算法,用于找到两个节点之间的最短路径。

网络提质

2.8 网络稳定-容灾概念

image-20230810145600874.png

2.8.1 网络容灾的具体案例一

image-20230810150716306.png

外网容灾是保障组织网络稳定和服务可用性的重要措施。通过综合考虑业务需求、风险评估和预算等因素,可以制定合适的外网容灾策略并实施相关措施,以确保在网络故障或灾难情况下能够快速恢复和继续运行。

2.8.2 网络容灾的具体案例二

image-20230810155442558.png

调度容灾(Disaster Recovery Planning and Scheduling)是指在实施容灾计划时,对恢复步骤和恢复时间进行安排和调度的过程。调度容灾包括确定恢复顺序、时间目标、资源需求,并制定合理的计划和时间表,以确保在灾难发生时能够有效地执行容灾方案。

2.9 网络稳定-故障排查

image-20230810162004860.png

2.10 网络稳定-故障明确

出现什么故障? -> 沟通是前提

  • 什么业务?什么接口故障?
  • 故障体现在哪里?
  • 访问其他目标是否出现异常?
  • 是否是修改导致的异常?
2.11 网络稳定-故障止损

先止损再排查

  • 用户体验第一
  • 对公司收入的影响是按照分钟甚至秒来计算

如何止损

  • 组件没有容灾,但是系统有没有?
  • 降级
2.12 网络稳定-分段排查

客户端排查

  • 客户端访问其他服务没问题吗
  • 其他客户端访问目标服没问题吗

服务端排查

  • 服务端监控/指标都正常吗
  • 手动访问一下正常吗
  • 分组件排查

中间链路排查

  • 服务端跟客户端确保都没有问题
  • 中间网络设备有没有问题?(网络机/路由器/网关LB)
  • 旁路的DNS有没有问题
2.13 网络稳定-网络故障排查常用命令
  • dig查询DNS(域名系统)问题
  • ping/telnet/nmap查询三层(网络层)/四层(传输层)连通性

用法示例:

ping 192.168.0.1
telnet 192.168.0.1 22
nmap -p 80 192.168.0.1
  • Traceroute排查中间链路
  • iptabels
  • tcpdump
2.13.1 网络故障排查案例一

image-20230810164735582.png

客户端异常 -> 服务端自测正常 -> 网关转发异常 -> 健康检查异常

总结

image-20230810165454016.png