打开抖音会发生什么、将我的服务开放给用户 | 青训营

44 阅读2分钟

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