这是我参与「第三届青训营 -后端场」笔记创作活动的的第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与端口一起改变
- NAT
- 网络传输-数据包
- 分层协议
- 网络传输-先请求DNS
- 递归迭代解析域名
- 使用UDP传输协议
- 网络传输-TCP协议
- 连接:三次握手,保持一个状态
- 确认MSS:防止分片
- TCP Option字段添加MSS,取最小值
- 确认序列号
- 表示发送方此packet的数据部分的第一位应该在整个data stream中所在的位置
- ACK:表示的是期望接收方下一次序列号是多少
- SYN/FIN的传输虽然没有数据,但是会让下一次传输的packet seq+1,但ACK的传输,不会让下一次的传输packet seq+1
- 确认MSS:防止分片
- 传输
- 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(播放/评论接口)路径优化
- 通过网络延时探测找到访问最优路径
- 同运营商访问
- HTTP2.0
- 网络稳定
- 容灾
- 故障发生->故障感知->自动切换->服务恢复
- 故障排查
- 故障明确
- 故障业务,故障接口,故障内容,访问其他目标是否正常,是否是修改导致的异常
- 故障止损
- 先止损再排查
- 如何止损
- 组件容灾
- 降级
- 分段排查
- 客户端排查
- 服务端排查
- 中间链路排查
- 故障明确
- 容灾
- 网络提速