这是我参加「第三届青训营 -后端场」笔记创造活动的的第6篇笔记
刷抖音网络是怎样交互的
- 网络接入
- 网络传输
网络接入-互联网
网络接入-路由
- 路由纷歧定是对称的
- 路由是改Mac,找到发包口
网络接入-ARP协议
- 逻辑同网段才能发送ARP
- ARP恳求播送,ARP应对单播
- 免费ARP? ARP代理?
ARP本质上是查找下一跳的MAC,不是恳求目标地址!
网络接入-IP协议
唯—标识,互联网通用。抖音客户端一个,抖音服务端一个。
网络接入-NAT
网络传输-数据包
网络传输-数据包发送
网络传输-先恳求DNS
- 客户端发 www.douyin.com 的解析恳求
- 递归解析器去问”.” , com去哪里解析
- 递归解析器去问”com.” , douyin.com去哪里解析
- douyin.com告诉递归解析器www.douyin.com解析到xxx
网络传输-DNS的传输协议UDP
- UDP自身相对简单
总结:想发什么包,就分配一个UDP的头,把payload里面塞数据发出去就好!
网络传输-TCP 三次握手
Tcpdump+Wireshark
网络传输-TCP传输
- sequence number:表明的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data stream中地点的位置。
- acknowledge number:表明的是希望的对方(接收方)的下一次sequence number是多少。注意,SYN/FIN的传输尽管没有data,可是会让下一次传输的packet seq增加一,可是,ACK的传输,不会让下一次的传输packet加—。
网络传输-HTTP/HTTP1.1
HTTP1.1有哪些优化
- 长连接
- 部分传输
- HOST
- 缓存
其实HTTP仅仅多加了一层规则。HTTP依然是TCP,仅仅这个规则让用户更明晰/更简洁。
网络传输-HTTPS
HTTPS解密出来仍然是HTTP
网络传输-SSL/TLS握手
对称加密与非对称加密
保证没有劫持,也保证私钥不泄密
网络架构怎样给抖音提质
- 网络提速
- 网络安稳
网络提速-HTTP2.0
网络提速-多路复用/stream
网络提速-QUIC/HTTP3.0
网络提速-数据中心分布
网络提速-同运营商拜访
网络提速-静态资源(图片视频)路径优化(CDN)
网络提速-动态API(播映/评论接口)路径优化(DSA)
网络安稳-容灾概念
- 毛病产生
- 毛病感知
- 主动切换
- 服务康复
网络容灾
网络安稳-毛病排查
- 毛病清晰
- 毛病止损
- 分段排查
毛病清晰
- 呈现什么毛病?->沟通是前提
- 什么业务?什么接口毛病?
- 毛病体现在哪里?
- 拜访其他目标是否正常?
- 是否是修正导致的反常?
毛病止损
-
先止损再排查
- 用户体验第一
- 对公司收入的影响是按照分钟乃至秒来核算
-
如何止损
- 组件没有容灾,可是体系有没有?
- 降级
分段排查
- 客户端排查
- 客户端拜访其他服务没问题吗?
- 其他客户端拜访目标服务没问题吗?
- 服务端排查
- 服务端监控/指标都正常吗?
- 手动拜访一下正常吗?
- 分组件排查
- 中心链路排查
- 服务端跟客户端保证都没问题
- 中心网络设备有没有问题?(交换机/路由器/网关LB)
- 旁路的DNS有没有问题?
网络安稳-网络毛病排查常用命令
- dig查询DNS问题
- ping/telnet/nmap查询三层/四层连通性
- Traceroute排查中心链路
- iptabels
- tcpdump
网络毛病
客户端反常->服务端自测正常->网关转发反常->健康检查反常
个别用户报毛病,出产环境大多是客户端的问题
某APP毛病->后端服务器反馈服务正常->网络转发设备反常->抓包->路由不对称
网络安稳-毛病防备很重要
- 监控报警
- 毛病演练/预案
- 毛病降级/止损