这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记。
上课前要带着以下几个问题,协议基础,为什么会产生这些协议。
1. 刷抖音网络是怎么交互的
- 网络接入
- 路由:同网段如何发包/交互,采用交换机
- 路由一定是对称的吗?不一定
- 路由是工作在哪一层协议?网络层
- 路由是改的ip地址吗?不是,改Mac,找到发包口
- arp协议:请求同网段下一跳的mac地址,不是请求目标地址的mac
- IP协议
- 唯一标识,互联网通用
- Mac地址不能代替IP地址吗?不能,mac地址相当与身份证,ip地址相当与手机号。
- ipv4不够用怎么办:NAT
- 路由:同网段如何发包/交互,采用交换机
-
网络传输
-
先请求DNS,比如请求,www.douyin.com, 递归解析器去问根域(也称点域)服务器com.去哪里解析,再去问“com.”douyin.com去哪里解析,douyin.com告诉递归解
-
udp,tcp,很多tcp option字段都在三次握手时得以确认,比如MISS(这个是用来保证不会出现ip分片的,取最小值)。seq表示的是发送方这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置
ack表示期望的对方下一次seq是多少,SYN/FIN虽然没有data,但是会让packet seq加1,但是ack的传输,不会让下一次的传输packet加1
需要记住这两个字段的本质
-
- timewait很影响性能,65535个端口要是有60000个,就该重启了,我们会用timewait recycle/reuse来复用,默认连接安全的
- 丢包怎么办(ack机制)
- 滑动窗口/流量控制
- 为什么不用tcp做通信呢?tcp负责内容够多了。分层有利于解耦,其实HTTP只是多加了一层规矩,HTTP依然是Tcp,只是这个规矩让用户更清晰/更简洁。
HTTP1.1哪些优化:长连接,部分传输,HOST,缓存 HTTPS是是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
2 .网络架构怎么给抖音提质
- 网络提速
- HTTP2.0,多路复用,深入理解http2.0
- QUIC/HTTP3.0
- 选udp,简单易用,tcp不好改。
- 用户态,移植性好
- 0 RTT
- 弱网优势
- cdn:路径优化算法,本质是个缓存
- DSA:路径优化,动态api
-
网络稳定--容灾 最好可以自动化,出错了首先止损,再排查故障。可以采用主动降级来保证最基本的用户体验,先客户端排查,再服务端排查,最后中间链路排查。
常见命令 dig查询DNS问题,ping/telnet/nmap查询三层/四层连通性 Traceroute排查中间链路 iptables tcpdump
故障预防很重要,没有监控不能上线