这是我参与「第三届青训营 -后端场」笔记创作活动的第6篇笔记
1.刷抖音网络是怎么交互的?
网络接入
先让我的手机能访问抖音服务器!
往同网段如何发包/交互?
- 交换机/逻辑交换机(拥有IP)
- SDN:虚拟同网段
- 同网段发包/交互: 更改目标IP的MAC
- 跨网段发包/交互: 中间通过交换设备连接,配置一个路由
路由一定是对称的吗
路由是工作在哪一层协议?
ip层
那路由是改的IP地址吗?
路由是改Mac,找到发包口。 源IP地址和目标IP地址应该一直是不变的。源mac和目标mac会变
怎么找到下一跳的MAC?:
ARP协议
-
同逻辑网段才能发送ARP。跨网段不能直接发送ARP,需要不断找下一跳,一种到同逻辑网段
-
广播是不能跨网段的。
-
免费ARP? ARP代理?
免费ARP
- 新增服务器:不用请求,发送自己的MAC地址
- 新增IP:防止IP冲突(IPv6)
ARP代理
- 中介作用:用于虚拟网络
IP协议
-
唯一标识,互联网通用
-
MAC地址不能代替IP地址吗
- 二层协议有很多,历史遗留问题,向下兼容,封装成IP协议(地址的统一问题)
IPv4不够用,怎么解决?:
NAT
家里路由器是怎样上网的?
多个内网客户端访问同一个目标地址+端口,源端口恰好一样,冲突了?
NET是IP+端口一起改变的,解决多个内网客户端访问同一个目标地址+端口,而源端口一样的问题
视频下载?:
网络传输
数据包
抓包
数据包传送
先请求DNS
客户端发送网址的解析请求,递归解析器解析
UDP
发包每次发多少?
怎么避免分片?
怎么知道没丢包?
怎么权衡传输效率和质量?
怎么保证协议可靠?
TCP
三次握手:
什么是TCP连接?
心跳 探活
拔了网线,连接会断吗?
一定条件会断 一定条件不会断
三次握手,保持一个状态
-
确认MSS:防止分片(什么时候确认)
- TCP Option字段添加MSS,取最小值 (时间戳)
-
确认序列号
- 表示发送方此packet的数据部分的第一位应该在整个data stream中所在的位置
-
ACK:表示的是期望接收方下一次序列号是多少
-
SYN/FIN的传输虽然没有数据,但是会让下一次传输的packet seq+1,但ACK的传输,不会让下一次的传输packet seq+1
-
sequence number:表示的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置。
-
acknowledge number:表示的是期望的对方(接收方)的下一次sequence number是多少。注意,SYN/FIN的传输虽然没有data,但是会让下一次传输的packet seq增加一,但 是,ACK的传输,不会让下一次的传输packet加——。
TCP传输
为什么老问你Timewait? 丢包怎么办? 滑动窗口再结合基础概念去理解 流量控制/拥塞控制结合基础概念去理解
HTTP/HTTP1.1
为什么不直接用TCP通信呢?
其实HTTP只是多加了一层规矩。HTTP依然是TCP,只是这个规矩让用户更清晰/更简洁。tcp服务的内容已经够多了
为什么互联网上那么多HTTP通信?
HTTP1.1哪些优化?
HTTPS
传输中被插入小网站怎么办? HTTPS解密出来依然是HTTP
SSL/TLS 握手
对称加密和非对称加密
第三方CA
网络架构怎么给抖音提质
网络提速-HTTP2.0
怎么理解多路复用/stream?
单个TCP链接传输 如果TCP 丢包怎么办?
网络提速-QUIC/HTTP3.0
TCP or UDP? Kernel or Userspace 0RTT 弱网优势
除了协议优化,网络路径能不能优化?
网络提速-数据中心分布
网络提速-同运营商访问
网络提速-静态资源(图片视频)路径优化(CDN)
网络提速-动态API(播放/评论接口)路径优化 (DSA)
刷的快,但是三天两天挂掉,谁刷抖音?
网络稳定-容灾概念
- 故障发生->故障感知->自动切换->服务恢复
案例1
案例2
案例3
案例4
没有容灾的故障怎么查?
故障排查
-
故障明确
- 什么业务? 什么接口故障? 故障体现在哪里? 访问其他目标是否正常? 是否是修改导致的异常?
-
故障止损
-
先止损再排查
-
如何止损
- 组件容灾
- 降级
-
网络故障排查常用命令
dig查询DNS问题 ping/telnet/nmap查询三层/四层连通性 Traceroute排查中间链路 iptabels tcpdump
排查案例1
客户端异常->服务端自测正常->网关转发异常->健康检查异常
案例2
个别用户报故障,生产环境大多是客户端的问题
案例3
安徽电信报障某APP无法使用->检测后端服务正常,安徽电信流量突降->安徽电信客户端ping不通目标服务->电缆被挖断
案例4
某APP故障->后端服务器反馈服务正常->网络转发设备异常->抓包->路由不对称