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

119 阅读3分钟

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

01 刷抖音网络是怎么交互的?

  • 网络接入
  • 网络传输

1.1 网络接入——互联网

1.2 网络接入——路由

  • 同网段:配置网段即可默认添加静态路由。获取对端MAC直接发包

    • SDN

    • 往同网段如何发包/交互?

      • 改目标IP的MAC
  • 跨网段:配置网关路由。获取网关MAC地址发包

    • 通过交换设备连接起来

    • 路由一定是对称的吗?

      • 不是,路由是网状的
    • 路由是工作在哪一层协议?

      • 总体来说路由工作在IP层;路由协议本身不是,属于传输层的协议
    • 路由是改的IP地址吗?

      • 不是,是改MAC,找到发包口,目标IP地址是不变的
      • 源IP地址和⽬标IP地址在传输过程中是不会变化的,只有源 MAC 地址和⽬标 MAC ⼀直在变化。
    • 发包需要指定网卡,为什么?

      • 发包以网卡为单位,不指定网卡不知道从哪发
    • 怎么找到下一跳的MAC?

      • 通过ARP协议

1.3 网络接入——ARP协议

  • 逻辑同网段才能发送ARP
  • ARP请求广播,ARP应答单播
  • 免费ARP:主动广播告知MAC地址
  • ARP代理:虚拟网络/伪造MAC地址
  • ARP本质上是查找下一跳的MAC,不是请求目标地址!

1.4 网络接入——IP协议

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

  • MAC地址不能代替IP地址

    • 二层有很多协议,很多设备不支持Mac地址;统一协议
  • IPv4不够用,一般怎么解决?

    • NAT

1.5 网络接入——NAT

  • NAT上网:家用路由器
  • NAT出网:机房内网主机上外网
  • NAT原理:注意不仅仅是源地址变换,源端口/校验和/SEQ等都会变化

1.6 网络传输——数据包

  • 数据包:本质上是一段内存,里面存储的内存是有序的,一般是按照TCP/IP的多层协议去封装。拆包/封包都是按照协议去写内存/读内存。

02 网络架构怎么给抖音提质

网络稳定——容灾概念

案例

  1. 专线不可用了,外网容灾
  2. GTM系统,探测故障感知,机房A挂了,机房B够用,切换到自动切换到机房B
  3. 云到端→主动降级/容灾
  4. Bug导致全crash→前置兜底逻辑/cache文件

没有容灾的故障怎么查?

网络稳定——故障排查

  • 故障明确

    • 出现什么故障?→沟通是前提

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

    • 先止损再排查

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

      • 组件没有容灾,但是系统有没有?
      • 降级
  • 分段排查

    • 客户端排查
    • 服务端排查
    • 中间链路排查
  • 网络故障排查常用命令

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

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