打开抖音互联网会发生什么? | 青训营笔记

529 阅读3分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第6篇笔记

刷抖音网络是怎么交互的

  • 网络接入
  • 网络传输

网络接入-互联网

image.png

网络接入-路由

image.png

  • 路由不一定是对称的

image.png

  • 路由是改Mac,找到发包口

网络接入-ARP协议

  • 逻辑同网段才能发送ARP
  • ARP请求广播,ARP应答单播
  • 免费ARP? ARP代理?

ARP本质上是查找下一跳的MAC,不是请求目标地址!

image.png

网络接入-IP协议

唯—标识,互联网通用。抖音客户端一个,抖音服务端一个。

网络接入-NAT

image.png

网络传输-数据包

image.png

网络传输-数据包发送

image.png

网络传输-先请求DNS

  • 客户端发 www.douyin.com 的解析请求
  • 递归解析器去问"." , com去哪里解析
  • 递归解析器去问"com." , douyin.com去哪里解析
  • douyin.com告诉递归解析器www.douyin.com解析到xxx

image.png

网络传输-DNS的传输协议UDP

  • UDP本身相对简单

image.png

总结:想发什么包,就分配一个UDP的头,把payload里面塞数据发出去就好!

网络传输-TCP 三次握手

image.png Tcpdump+Wireshark

网络传输-TCP传输

image.png

  • sequence number:表示的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置。
  • acknowledge number:表示的是期望的对方(接收方)的下一次sequence number是多少。注意,SYN/FIN的传输虽然没有data,但是会让下一次传输的packet seq增加一,但是,ACK的传输,不会让下一次的传输packet加—。

image.png

网络传输-HTTP/HTTP1.1

HTTP1.1有哪些优化

  • 长连接
  • 部分传输
  • HOST
  • 缓存

image.png

其实HTTP只是多加了一层规矩。HTTP依然是TCP,只是这个规矩让用户更清晰/更简洁。

网络传输-HTTPS

HTTPS解密出来仍然是HTTP

image.png

网络传输-SSL/TLS握手

对称加密与非对称加密

image.png

确保没有劫持,也确保私钥不泄密

image.png

网络架构怎么给抖音提质

  • 网络提速
  • 网络稳定

网络提速-HTTP2.0

image.png

网络提速-多路复用/stream

image.png

网络提速-QUIC/HTTP3.0

image.png

网络提速-数据中心分布

image.png

网络提速-同运营商访问

image.png

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

image.png

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

image.png

网络稳定-容灾概念

  • 故障发生
  • 故障感知
  • 自动切换
  • 服务恢复

网络容灾

image.png

image.png

image.png

image.png

网络稳定-故障排查

  • 故障明确
  • 故障止损
  • 分段排查

故障明确

  • 出现什么故障?->沟通是前提
    • 什么业务?什么接口故障?
    • 故障体现在哪里?
    • 访问其他目标是否正常?
    • 是否是修改导致的异常?

故障止损

  • 先止损再排查

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

    • 组件没有容灾,但是系统有没有?
    • 降级

分段排查

  • 客户端排查
    • 客户端访问其他服务没问题吗?
    • 其他客户端访问目标服务没问题吗?
  • 服务端排查
    • 服务端监控/指标都正常吗?
    • 手动访问一下正常吗?
    • 分组件排查
  • 中间链路排查
    • 服务端跟客户端确保都没问题
    • 中间网络设备有没有问题?(交换机/路由器/网关LB)
    • 旁路的DNS有没有问题?

网络稳定-网络故障排查常用命令

  • dig查询DNS问题
  • ping/telnet/nmap查询三层/四层连通性
  • Traceroute排查中间链路
  • iptabels
  • tcpdump

网络故障

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

image.png

个别用户报故障,生产环境大多是客户端的问题 image.png

image.png

某APP故障->后端服务器反馈服务正常->网络转发设备异常->抓包->路由不对称

image.png

网络稳定-故障预防很重要

  • 监控报警
  • 故障演练/预案
  • 故障降级/止损