0803 打开抖音会发生什么
网络接入:将主机使用网络设备通过公共网络连接到互联网
- 网络层:经过多个路由器,过程中源ip和目的ip并不变,修改的是源、目的mac地址。NAT协议负责内外网ip和端口映射
- 数据链路层:ARP协议广播请求到局域网中所有主机,确定下跳物理地址。免费ARP(Gratuitous ARP,GARP):主机广播自己的ip和mac地址,其他主机如果响应说明ip冲突
网络传输
- 应用层:HTTP,HTTPS,DNS
- 传输层:TCP,UDP
抖音网络提速协议优化:
- http2.0:主要思想是多路复用,并行下载,但本质上还是只建立一个连接,然后串行分时。
- http3.0(谷歌):放弃TCP,使用基于UDP的QUIC协议,用户态
- 数据中心的边缘机房靠近用户
- 同运营商访问:解析ip,让一个运营商的用户访问该运营商的机房
- 静态资源路径优化:使用内容分发网络CDN
- 动态API路径优化
- 网络容灾
0805 将我的服务开放给用户
访问一个网站的过程:DNS域名解析,TCP建立连接,SSL/TLS握手,发送HTTP请求资源
域名解析:
- hosts文件时效性差、不好维护,所以使用域名系统DNS来替代hosts文件进行域名解析。本地DNS服务器查询根、顶级、授权(可以有多层)DNS服务器
- 为了方便内网解析,所以自建DNS服务器:主要是授权DNS服务器,常用开源DNS服务器bind
DNS记录类型
- A/AAAA:IP指向记录,用于指向IP,前者为IPv4记录,后者为IPv6记录
- CNAME:别名记录,配置值为别名或主机名,客户端根据别名继续解析以提取IP地址
- TXT:文本记录,购买证书时需要
- MX:邮件交换记录,用于指向邮件交换服务器
- NS:解析服务器记录,用于指定哪台服务器对于该城名解析
- SOA记录:起始授权机构记录,每个zone有且仅有唯一的一条SOA记录,SOA是描述zone属性以及主要权威服务器的记录
https:防止中间人劫持明文信息,在http基础上加入SSL非对称加密,使用证书链验证公钥
对于响应慢问题,使用全站加速:
- 并发请求低:增加后端机器数量,对静态内容(不会改变的)使用CDN静态加速缓存;
- 网络传输慢:动态加速DCDN,从多个线路中选一条,绕过拥堵线路
4层负载均衡:基于ip:端口,通过算法使得报文负载均衡地转发给后端服务器。RR轮询、最小连接、一致性hash。dpdk
7层负载均衡:Nginx