问题指出
- 刷抖音怎么交互?--网络接入+运输
- 刷抖音又快又稳?
网络交互之网络传入
互联网 + 路由 + ARP协议 + IP协议 + NAT
- ❓路由一定是对称的吗?:本质上来说,不一定。
- ❓路由是工作在哪一层协议?:有IP、TCP、UDP等很多种可能。
- ❓路由是改IP地址吗?:不是,路由是改变MAC地址,找到发包口。
ARP协议
- 逻辑同网段才能发送ARP
- ARP请求广播,ARP应答单播
- 免费ARP:获取免费ARP后,不用请求就可得知IP和MAC的映射关系,提高工作效率。
- ARP代理:代理ARP就是将一个主机作为对另一个主机ARP进行应答。它能使得在不影响路由表的情况下添加一个新的Router,使得子网对该主机来说变得更透明化。
- ARP的本质是查找下一跳地址,而不是请求目标地址
IP协议
- 唯一标识,互联网通用。
NAT
- 家里路由器本质上使用NAT改变源地址(内部地址),使用全局唯一的外网地址联网。
网络交互之网络运输
数据包
封装数据为数据包,然后发送到目标的各层进行解析。
请求DNS
- 递归迭代:客户端发送递归请求,递归解析器迭代请求其他域名服务器
- DNS基于相对简单的传输协议UDP
TCP三次握手
TCPdump(抓包) + Wireshark(抓包分析)
TCP传输
- TimeWait:经常会影响效率
- 滑动窗口- 流量控制 + 拥塞控制
HTTP/HTTP1.1
HTTP依然是TCP,只是针对特定的场景做了优化,让用户更清晰/简洁。(TCP/HTTP类似中文/军事专用语)
HTTPS
HTTPS解密出来依然是HTTP,加密的基础是SSL/TLS握手
SSL/TLS握手
非对称加密/对称加密
网络架构如何给抖音提质之网络提速
HTTP2.0
多路复用:多图并发下载
多路复用
多个stream + 单个TCP链接传输
网络提速的优化之路
QUIC/HTTP3.0
弱网优势:解决对等阻塞的问题
数据中心分布
同运营商访问(访问和手机运营商一致的机房)
静态资源(图片视频)路径优化(CDN)
查找缓存
动态API(播放/评论接口)路径优化(DSA)
通过网络延时探测制作表,按照距离优化路径算法,寻找最优路径。
网络稳定
容灾概念
- 故障发生
- 故障感知
- 自动切换
- 服务恢复
故障排查
故障明确
沟通是前提:
- 什么业务?什么接口故障?
- 故障体现在哪里?
- 访问其他目标是否正常?
- 是否是修改导致的异常?
故障止损
- 先止损再排查
- 组件没有容灾,系统有无容灾?
- 降级
分段排查
- 客户端
- 服务端
- 中间链路
网络故障排查常用命令
- dog查询DNS问题
- ping/telnet/nmap查询三层/四层连通性
- Traceroute排查中间链路
- iptabels
- tcpdump
故障预防很重要
- 监控报警
- 故障演练/预案
- 故障降级/止损
总结
高质量刷抖音 = 路径提速 + 数据中心提速 + HTTP2.0提速 + QUIC提速 + 故障排查 + 网络容灾