这是我参与「第三届青训营 -后端场」笔记创作活动的第3篇笔记。
由于事先是在稀土掘金插件上面随手记的笔记,接下来再整理,所以就不一定按顺序走了。
今天课程的标题是“打开抖音互联网会发生什么”。作为一个完全不懂计网的小白,可以说一上来就被标题吸引住了。当然在课前讲师也就预告了说这个问题和面试过程中经常被问到的一个八股“打开一个网页诸如www.baidu.com 等等,会发生什么”。
课程依赖:Linux操作系统、Wireshark软件、Socket网络编程开发环境。
课程首先从一个我们熟悉的抖音界面开始讲起,分别剖析了各个部分与网络的联系。
第一部分:刷抖音网络是怎么交互的。分为网络接入和网络传输两部分。
网络接入 互联网、路由、ARP协议、数据包、数据包发送;
网络传输:先请求DNS、DNS传输协议UDP、TCP三次握手、SSL/RLS握手
逻辑同网段才能发送ARP ARP请求广播,ARP应答单播 免费ARP ARP本质上是查找下一跳的MAC, 不是请求目标地址。
IP协议 唯一标识,互联网通用。抖音客户端一个、抖音服务端一个。 IPv4
UDP本身相对简单,想发什么包就分配一个UDP的头,把payload里面塞数据发出去。 用好很难
TCP传输: sequence number 表示发送方这边,packet的数据部分的第一位应该在整个data stream中所在的位置。 acknow number 表示的是期望的对方(接收方)的下一次sequence number是多少。注意SYN/FIN传输虽然没有data,但是会让下一次的packet seq增加1, 但是ACK传输不会让下一次的传输packet加1.
TCP Timewait 丢包怎么办 滑动窗口再结合基础概念去理解。 流量控制、拥塞控制结合基础概念去理解。
HTTP/HTTP1.1 HTTP只是多加了一层规矩,仍然是TCP,这个规矩让用户更清晰、更简洁。 HTTP1.1优化: 长连接、部分传输、HOST、 缓存等。 HTTPS解密出来依然是HTTP
SSL/TLS握手:对称加密和非对称加密、确保没有劫持,也确保私钥不泄密。 总结:网络连接协议、网络传输协议、愉快的刷抖音,三者是一个金字塔由下而上的关系。
网络架构给抖音提质:网络提速、网络稳定。 HTTP2.0 实现多图并发下载。 多路复用stream 单个TCP链接传输
QUIC/HTTP3.0 TCP or UDP? Kernel or Userspace 0 RTT 弱网优势
网络路径优化: 数据中心分布、同运营商访问、静态资源(图片视频)路径优化CDN 、动态API(播放、评论接口)路径优化(DSA)
网络稳定:容灾概念。 故障发生、故障感知、自动切换、服务恢复。
故障排查:故障明确、故障止损、分段排查。 故障明确:出现什么故障?沟通是前提。什么业务?什么接口故障?故障体现在哪?访问其他目标是否正常?是否是修改导致的异常? 先止损再排查:用户体验第一,对公司收入的影响是按照分钟甚至秒来计算。 如何止损:组件没有容灾,但系统有没有?降级。
分段排查:客户端排查(客户端访问其他服务、其他客户端访问目标服务)、服务端排查(服务端监控、指标正常吗?手动访问一下正常吗?分组件排查)、中间链路排查(服务端与客户端确保没问题,中间网络设备问题(交换机、路由器、网关LB)、旁路DNS)
网络稳定:网络故障排查常用命令 dig查询DNS问题、ping/telnet/nmap查询三层、四层连通性 Traceroute排查中间链路 iptabels tcpdump
故障预防:监控报警、故障演练、预案;故障降级/止损
总结:要想实现高质量刷抖音,路径提速、故障排查、HTTP2.0提速、网络容灾、数据中心提速、QUIC提速。
本节课干货很多,了解了很多具体的名词,后面学习计算机网络可以有目的性的看书了。