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

135 阅读4分钟

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

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

  • 网络接入
  • 网络传输

1.1 网络接入-互联网

image.png

1.2 网络接入-路由

同网段如何发包/交互? arp协议,改一下mac地址

路由一定是对称的吗?

image.png 不一定对称,路很多

路由工作在哪一次? 一般来说是网络层,但是也有工作中传输层的

路由是改ip地址吗? 路由是找到发包口,改mac

1.3 网络接入-ARP协议

image.png

ARP协议的本质是查找下一跳的mac,不是请求目标地址!

  • 逻辑同网段才能发送ARP
  • ARP请求广播,ARP应答单播 免费ARP? 在新加服务器的时候用到,服务器新增一个ip,防止ip冲突 ARP代理? 起中间代理的作用

ip协议

唯一标识,互联网通用

mac地址能代替ip地址吗? 二层的协议已经够多了,并且ip协议是二层协议的一个统一

ipv4不够用,一般怎么解决的? NAT,ipv6

NAT

image.png ip和端口号都改变

1.4 网络传输-数据包

image.png

1.5 网络传输-数据包发送

image.png

1.6 网络传输-先请求DNS

image.png

1.7 网络传输-DNS的传输协议udp

udp本身相对简单,但是用好udp很难

  • 发包每次发多少?怎么避免分片? mss,在三次握手的时候确认,在tcp的optin字段里,在里面放入mss,取最小值,还有事件戳。
  • 怎么知道没丢包?
  • 怎么权衡传输效率和质量?

1.8 网络传输-tcp 三次握手

拔了网线tcp连接会断掉吗? 不会断掉,是否有保活机制,在一定的情况下会断开

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

为什么老问Timewait? 影响性能

流量控制/拥塞控制

1.9 网络传输-HTTP/HTTP1.1

为什么不直接用tcp通信? 其实http只是多加了一层规矩。http依然是tcp,只是这个规矩让用户更清晰/更简洁

http1.1哪些优化? 长连接、部分传输、HOST、缓存

HTTPS

https解密出来之后依然是http

SSL/TLS 握手

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

  • 网络提速
  • 网络稳定

2.1 网络提速- HTTP2.0

多路复用

image.png 单个tcp链路传输

如果tcp丢包怎么办? 队头阻塞,会全部重传,可以使用option字段,但是治标不治本

QUIC/HTTP3.0

使用udp

0rtt, 用户态保证,弱网优势,

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

image.png

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

image.png

不同的运营商之间通信会比较慢,可以通过解析ip地址来做

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

image.png

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

2.8 网络稳定-容灾概念

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

案例一

image.png

案例二

image.png

案例三

image.png

案例四

image.png

2.9 网络稳定-故障排查

故障明确-> 故障止损-> 分段排查

2.10 网络稳定-故障明确

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

2.11 网络稳定-故障止损

先止损再排查

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

如何止损

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

2.12 网络稳定-分段排查

客户端排查

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

服务排查

  • 服务端监控/指标都正常吗?
  • 分组件排查

中间链路排查

  • 服务端和客户端确保都没有问题
  • 中间网络设备有没有问题?(交换机/路由器/网关LB)
  • 旁路的DNS有没有问题?

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

dig 查新dns问题

  • ping/telnet/nmap查询三层/四层联通性
  • traceroute排查中间链路
  • iptabels
  • tcpdump

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

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

总结

image.png