Note05 打开抖音会发生什么 | 青训营

125 阅读6分钟

刷抖音网络是怎么交互的

网络接入:

路由

  • 路由是对称的吗?不是对称的。
  • 路由是用来改变IP地址吗?不是,路由是用来改变MAC地址的。在数据包传输过程中,源IP地址和目的IP地址不会改变,但经过每个设备时,MAC地址会发生改变。

ARP

  • ARP请求只能在同一个网段内使用。ARP请求的作用是获取目标主机的MAC地址。
  • ARP的本质是请求下一跳的MAC地址,而不是请求目标主机的MAC地址。

免费ARP

  • 免费ARP的使用场景:
    • 局域网上加入一台新机器时,新机器会主动发送免费ARP请求,告诉局域网中其他机器新机器的MAC地址。
    • 新增一个IP地址后,会主动发送免费ARP请求,检查IP地址是否与其他机器冲突。

ARP代理

  • ARP代理是指劫持ARP请求,并将其发送到另一个地方。

IP协议

  • 为什么MAC地址不能替代IP地址?因为MAC地址位于网络协议的数据链路层,而数据链路层有多个协议,不一定都使用MAC地址。为了向下兼容这些协议,引入了IP地址作为网络层的封装。

IPv4不够用怎么办?

  • 使用NAT转换。

NAT转换

  • NAT不仅改变了IP地址,还改变了端口。多个内网客户端访问同一个公网IP地址+端口不会冲突。

网络传输:

网络数据包模型

image.png

数据包发送全流程

image.png

DNS请求

DNS的实现是UDP协议

客户端向本地域名服务器查询是递归查询,本地域名服务器向根域名服务器请求是迭代查询

image.png TCP三次握手的具体过程如下:

  1. 客户端向服务器发送SYN包(同步请求),其中包含客户端的初始序列号(ISN)。

    客户端 --> SYN=1, Seq=X
    
  2. 服务器收到SYN包后,向客户端发送SYN-ACK包(同步确认),其中包含服务器的初始序列号(ISN)和确认号(ACK),确认号为客户端的序列号加1。

    服务器 --> SYN=1, ACK=1, Seq=Y, Ack=X+1
    
  3. 客户端收到服务器的SYN-ACK包后,向服务器发送ACK包(确认),其中确认号为服务器的序列号加1。

    客户端 --> ACK=1, Seq=X+1, Ack=Y+1
    

完成上述三个步骤后,TCP连接建立成功,可以进行数据传输。

TCP的有限状态机 image.png

TCP传输

传输控制协议(TCP,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。TCP通过以下方式保证报文传输的可靠性:

  1. 给每个包一个序号,保证传送到接收端实体的包按序接收。
  2. 接收端实体对已成功收到的字节发回一个相应的确认(ACK)。
  3. 如果发送端实体在合理的往返时延(RTT)内未收到确认,会进行重传。

HTTP/HTTP1.1

HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议。HTTP1.1在HTTP上加入了一些规则,以提供更清晰和简洁的用户体验,并进行了一些优化,包括:

  1. 长连接:允许在单个TCP连接上发送多个HTTP请求和响应,减少了连接建立和关闭的开销。
  2. 部分传输:支持只传输文件的一部分,适用于大文件下载或断点续传。
  3. HOST字段:允许在同一台服务器上托管多个网站,通过HOST字段区分不同的网站。
  4. 缓存:引入了缓存机制,可以缓存响应,减少对服务器的请求。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)是在HTTP上加入了安全层的协议。通过SSL/TLS协议实现数据机密性和数据完整性,确保数据安全地通过网络传输。HTTPS使用对称加密和非对称加密来实现加密传输,防止恶意用户窃取敏感信息。

SSL/TLS握手

SSL/TLS握手是建立HTTPS连接时的过程,主要包括以下步骤:

  1. 客户端向服务器发送Client Hello消息,包含支持的SSL/TLS版本、加密算法等信息。

  2. 服务器收到Client Hello后,发送Server Hello消息,选择SSL/TLS版本和加密算法,并返回服务器的数字证书。

  3. 客户端验证服务器的数字证书,生成一个随机的对称加密密钥,并使用服务器的公钥加密发送给服务器。

  4. 服务器使用私钥解密客户端发送的对称加密密钥,并向客户端发送一个握手结束通知。

  5. 客户端和服务器使用握手过程中协商的对称加密密钥进行加密通信。

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

网络提速

要实现网络提速,可以考虑以下几个方法和技术:

  1. 使用HTTP2.0:HTTP2.0引入了多路复用的功能,允许在同一个TCP连接上发送多个请求和响应,避免了建立多个TCP连接的开销,提高了请求的并发性和传输效率。

  2. 使用QUIC/HTTP3.0:QUIC是基于UDP协议的传输层协议,可以提供更快的连接建立和更低的网络延迟。结合HTTP3.0,可以实现更快的数据传输和更好的网络性能。此外,通过在多个数据中心分布网络,可以将数据尽可能地靠近用户,减少网络延迟。

  3. 静态资源路径优化(CDN):使用内容分发网络(CDN)可以将静态资源如图片、CSS和JavaScript等缓存到全国甚至全球各处的服务器节点上,使用户可以从离他们更近的服务器获取资源,减少网络延迟和提高下载速度。

  4. 动态API路径优化(DSA):对于动态生成的内容,可以使用动态API路径优化技术,将内容缓存到边缘服务器或缓存服务器上,减轻后端服务器的负载,并提高数据传输速度和响应时间。

总结起来,网络提速可以通过使用HTTP2.0的多路复用功能、QUIC/HTTP3.0的数据中心分布和同运营商访问、静态资源路径优化(CDN)以及动态API路径优化(DSA)等技术手段来实现。这些方法和技术可以减少网络延迟、提高传输效率,从而提升用户的网络体验和抖音应用的性能。

网络稳定

image.png

  • 网络容灾
  • 故障排查
  • 故障明确
  • 故障止损
  • 分段排查:客户端、服务端、中间链路

image.png