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

203 阅读3分钟

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

  • 刷抖音网络是怎么交互的
    • 网络接入-互联网
    • 网络接入-路由
      • 同网段路由:
        • 交换机/逻辑交换机(拥有IP)
        • SDN:虚拟同网段
      • 跨网段路由:
        • 配置路由
        • 路由不一定是对称的
        • 路由工作在传输层协议/IP层协议
        • 路由:目标IP地址一直不变,改MAC地址,找到发包口
    • 网络接入-ARP协议
      • 找下一跳的MAC地址
      • 逻辑同网段才能发送ARP
      • ARP请求是广播,ARP应答是单播
      • 免费ARP
        • 新增服务器:不用请求,发送自己的MAC地址
        • 新增IP:防止IP冲突
      • ARP代理
        • 中介作用:用于虚拟网络
    • 网络接入-IP协议
      • 唯一标识,互联网通用
      • MAC地址不能代替IP地址吗
        • 二层协议有很多,历史遗留问题,向下兼容,封装成IP协议
      • IPv4不够用,怎么解决
        • NAT
          • 将内网IP映射到外网IP
          • IP与端口一起改变
    • 网络传输-数据包
      • 分层协议
    • 网络传输-先请求DNS
      • 递归迭代解析域名
      • 使用UDP传输协议
    • 网络传输-TCP协议
      • 连接:三次握手,保持一个状态
        • 确认MSS:防止分片
          • TCP Option字段添加MSS,取最小值
        • 确认序列号
          • 表示发送方此packet的数据部分的第一位应该在整个data stream中所在的位置
        • ACK:表示的是期望接收方下一次序列号是多少
        • SYN/FIN的传输虽然没有数据,但是会让下一次传输的packet seq+1,但ACK的传输,不会让下一次的传输packet seq+1
      • 传输
        • Timewait:确保连接正常关闭,防止上一次ACK丢失
    • 网络传输-HTTP1.1
      • 为什么不直接用TCP通信:关注于业务本身
      • HTTP1.1优化
        • 长连接
        • 部分传输
        • HOST
        • 缓存
    • 网络传输-HTTPS
      • HTTP+SSL/TLS握手
  • 网络架构如何给抖音提质
    • 网络提速
      • HTTP2.0
        • 多路复用
          • 单个TCP链接传输多个请求
          • TCP丢包:对头阻塞,重传完毕后才能传接下去的包
      • QUIC/HTTP3.0
        • 基于UDP进行修改
        • 基于Userspace实现
        • 0 RTT
        • 弱网优势:解决了对头阻塞的问题
      • 优化网络路径
        • 同运营商访问
          • 运营商跨网质量比较差
          • 智能解析IP,接入同运营商
        • CDN路径优化
          • 针对静态资源(图片视频)
          • 边缘机房缓存
        • DSA动态API(播放/评论接口)路径优化
          • 通过网络延时探测找到访问最优路径
    • 网络稳定
      • 容灾
        • 故障发生->故障感知->自动切换->服务恢复
      • 故障排查
        • 故障明确
          • 故障业务,故障接口,故障内容,访问其他目标是否正常,是否是修改导致的异常
        • 故障止损
          • 先止损再排查
          • 如何止损
            • 组件容灾
            • 降级
        • 分段排查
          • 客户端排查
          • 服务端排查
          • 中间链路排查