网速优化
灾容
故障发生
故障感知
自动切换
服务恢复
故障排查
从程序员角度分析处理流程,再切入细节
故障明确
出现什么故障?-->沟通是前提
什么业务?什么接口故障? 故障体现在哪里? 访问其他目标是否正常? 是否修改导致的异常?
故障止损
先止损再排查
用户体验第一 对公司收入的影响是按照分钟甚至秒来计算
如何止损?
组件没有灾容,但是系统有没有? 降级
分段排查
客户端排查
客户端访问其他服务有没有问题? 其他客户端访问目标服务有没有问题?
服务端排查
服务端监控/指标是否正常? 手动访问是否正常? 分组件排查
中间链路排查
服务端跟客户端确保没有问腿 中间网络设备有没有问题?(交换机/路由/网关) 旁路的DNS有没有问题?
网络故障排查常用命令
dig查询DNS问题
ping/telnet/nmap查询三层/四层连通性
Traceroute排查中间链路
iptabels
tcpdump
网络接入
ARP协议
逻辑同网段才能发送ARP ARP请求广播,ARP应答单播 免费ARP?ARP代理?
ARP本质是查找下一跳的MAC,不是请求目标地址
IP协议
唯一标识,互联网通用。客户端一个,服务端一个。
网络传输先请求DNS
以抖音为例
1.客户端发www.douyin.com的解析请求 2.递归解析器去问“.” ,com.去哪里解析 3.递归解析器去问“com.” douyin.com去哪里解析 4.douyin.com告诉递归解(解析到xxx)
TCP传输
sequence number: 表示的是我方 (发送方) 这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置。
acknowledge number: 表示的是期望的对方(接收方)的下一次sequence number是多少注意,SYN/FIN的传输虽然没有data,但是会让下一次传输的packet seg增加一,但是ACK的传输,不会让下一次的传输packet加一
HTTP/HTTP1.1
其实HTTP只是多加了一层规矩,HTTP依然是TCP,只是这个规矩让用户更清晰/更简洁。
HTTP1.1有哪些优化?
长连接、部分传输、HOST、缓存......
网络传输-SSL/TLS 握手
对称加密和非对称加密
确保没有劫持,也确保私钥不泄密
怎么理解多路复用/stream?
TCP连接通道有多个stream,例stream1、stream2、stream3
单个TCP链接传输