打开抖音互联网会发生什么 | 青训营笔记

155 阅读6分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记

08 打开抖音互联网会发生什么

【网络与部署学习资料(上)】第三届字节跳动青训营 - 后端专场 - 掘金 (juejin.cn)

协议细节自学

简历更新(熟悉/了解TCP/IP、计算机网络)

抖音视频刷出来有哪些协议的交互(应用层)

1.刷抖音网络是怎么交互的?

网络接入

网络传输

手机与抖音服务器交互

1.1网络接入-互联网

终端-无线网络接入-有线网络-运营商网络-抖音服务器(海外:光缆接入)

最后一公里:无线网丢包问题

1.2网络接入-路由

同网段(IP在掩码子网以内):中间有一个中转设备(交换机/逻辑交换机)

有一定限制--->SDN:软件虚拟化

如何往同网段发包/交互:改目标IP的mac

跨网段接入

路由不一定是对称的:返回不一定是接入的路

路由是工作在IP层,路由协议不一定只是工作在IP层

路由是改的Mac地址,找到发包口,目标IP地址一直不变

指定网卡:发包时以网卡为单位

怎么找下一跳的Mac?ARP协议

1.3网络接入-ARP协议

跨网段不能发送ARP

不能问Mac地址

抖音客户端访问抖音服务器,怎么访问目标IP?

ARP一级一级发送,找到下一跳、发送ARP,找到narck地址,最终达到抖音服务器

不是直接向目标地址发送ARP(只有同网站可以)

广播不能跨网站

免费ARP:不用请求就告诉ARP地址

场景一:局域网中加一台机器,加一台机器的话,IP新加了,其他机器向新加的机器发包效率慢,这种场景下会发送免费ARP,一旦发出去,就会告诉别人刷新Mac地址,新增机器了

场景二:服务器新增了一个IP之后,按照正常的协议要求会发送一次免费ARP,为防止IP冲突

ARP代理:中介作用,存所有IP和MAC对应

ARP本质上是查找下一跳的Mac,不是请求目标地址的Mac

1.4网络接入-IP协议

Mac地址不能代替IP地址吗?

Mac是二层协议,不是只有以太网一个协议,不能下下兼容,所以用IP来封装和统一

IPV4不够用,一般怎么解决?NAT

1.5网络接入-NAT

家里路由器本质是一个NAT

内部用户通过NAT设备,改原地址

举例:内部局域网地址是1920,假如有很多内部的——公司A和公司B内部IP地址可以是重复地址,都是1920,但是联到互联网设备的外部,都是全局唯一的外网地址,即NAT服务器上面。这是把不同地址映缩到了一个地址上,就节约了IPV4的地址

多个内网客户端访问同一个目标地址+端口,源端口恰好一样,冲突了?

NAT是改变IP+端口的

防止冲突可以自己在NAT设备上维护一张表,每次有现在正在存在的链接时,把端口选另外一个即可

网络打通了视频怎么下载?

1.6网络传输-数据包

课后做抓包wireshark

数据包传输通过封装

1.6网络传输-数据包发送

源机器的网络设备->目的机器的网络设备:在真实的互联网世界中是个比较复杂的网络拓扑

1.7网络传输-先请求DNS

IP不容易记,用域名记

把域名映射到IP用DNS去请求

DNS协议关注递归迭代:客户端发出一个递归请求,本身DNS会请求一个递归解析器,递归解析器会发生一个迭代请求,会先请求根,根是全世界写死的几个,再请求顶级域名(比如com),再请求douyin.com,再请求www.douyin.com

1.8网络传输-DNS的传输协议UDP

MUP传输有限制所以要分片

为什么要避免分片:影响效率,一旦分片就要重组,分片和重组都需要资源

1.9网络传输-TCP三次握手

TCP链接:本质是一个状态

拔了网线,TCP链接会断吗?不一定——心跳包、心跳饱和

假设TCP有探活(定期发包探测)

TCP三次握手

确认

在TCP三次握手时,通过确认MSS字段确定分段传输正常

中间的网络设备确认MSS:取三者最小

MSS在TCP三次握手时怎么确认的?TCP的option字段——MSS在option里面填的时候,在server端也会填,这两边在三次握手时读到TCP option里面的双方的MSS会取最小值作为双方协议出来的MSS;TCP时间戳

1.9网络传输-TCP传输

为什么老问Timewait?状态复杂的东西

为什么有Timewait?确保连接正常关闭,防止前一次的app丢失,可能会异常关闭连接

Timewait recycle:直接自用

Timewait reuse

太多Timewait会占用端口

丢包怎么办?重查——ACK机制

结合SYN和ACK

1.10网络传输-HTTP/HTTP1.1

为什么不直接用TCP通信呢?HTTP分层,TCP负责的内容本身已经足够多了

为什么互联网上那麽多HTTP通信?

TCP本身可以理解为泛中文,HTTP是基于TCP的,HTTP和TCP的关系像军事用语和中文的关系

1.11网络传输-HTTPS

防止窃听可以加密

1.11网络传输-SSL/TLS握手

加密窃听的基础-SSL/TLS握手

盒子合法——第三方CA认证证书合法性

1.12总结

2.网络架构怎么给抖音提质

网络提速

网络稳定

2.1网络提速-HTTP2.0

最重要思想:多路复用 ——图片视频并行下载

2.2网络提速-怎么理解多路复用/stream?

stream123是串行的

TCP发生丢包会发生对头阻塞——多路复用就不能用了

2.3网络提速-QUIC/HTTP3.0

基于UDP推广方便

除了协议优化,网络路径能不能优化?CDN,P2P,就近访问服务器,DSA

2.4网络提速-数据中心分布

边缘机房更靠近用户,每个省每家运营商至少都一个

2.5网络提速-同运营商访问

中国:运营商跨网访问质量差

同运营商:解析域名可做到

2.6网络提速-静态资源(图片视频)路径优化(CDN)

2.7网络提速-动态API(播放/评论接口)路径优化(DSA)

路径优化算法

机房A到DBE做网络延时探测,把探测数据做成一张表

刷的快,但是三天两天挂掉,谁刷抖音?

2.8 网络稳定-容灾概念

2.9网络稳定-故障排查

2.10网络稳定-故障明确

2.11网络稳定-故障止损

先故障止损再定位bug

2.12网络稳定-分段排查

2.13网络稳定-网络故障排查常用命令

2.13.1网络故障排查案例一

2.13.2网络故障排查案例二

2.13.3网络故障排查案例三

2.13.4网络故障排查案例四

2.14网络稳定-故障预防很重要

2.15总结

课后作业