抖音网络交互过程| 青训营

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

从事其他方向研发 从事网络相关研发

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

协议分析( 自学 ) 互联网应用泛解

协议基础/为什么会产生这些协议

应用层

域名解析DNS

视频下载/HTTP

图片下载/HTTP

评论API/HTTP

抖音网络交互过程

网络接入

抖音客户端在连接到互联网时,首先需要进行网络接入。这涉及到路由和ARP协议。

路由

路由是在IP层协议中处理的,用于确定数据包应该通过哪条网络路径发送。路由不一定对称,意味着数据包的往返路径可能并不相同。路由的目的是根据目标IP地址找到下一跳的路由器,然后将数据包转发给该路由器。

ARP协议

在数据包发送之前,抖音客户端需要找到下一跳的目标设备的MAC地址,以便正确地将数据包发送到目标设备。为了解决这个问题,使用ARP协议来将目标IP地址解析为对应的MAC地址。ARP请求是广播的,而ARP应答则是单播的。

IP协议

IP协议用于唯一标识互联网上的设备。抖音客户端和抖音服务端分别具有唯一的IP地址。

网络传输

在数据包发送过程中,会先请求DNS,然后利用UDP传输数据。

image.png

DNS解析

抖音客户端在发送请求时,需要将域名解析为IP地址,这通过DNS解析来实现。DNS是一个层次化的分布式系统,负责将域名映射到相应的IP地址。DNS请求通常使用UDP协议进行传输。

UDP传输

UDP是一种无连接的传输协议,它使用简单的数据报文形式进行传输。抖音在网络传输中,利用UDP进行数据包的传输。UDP传输快速,但不可靠,因为它不提供重传机制和数据包的确认。

TCP三次握手

如果需要建立可靠的连接,抖音使用TCP协议。在TCP建立连接时,会进行三次握手来确保连接的可靠性。

  1. 客户端向服务端发送一个请求连接的数据包(SYN包)。
  2. 服务端收到请求后回复客户端一个同意连接的数据包,并且自己也发送一个请求连接的数据包(SYN+ACK包)。
  3. 客户端收到服务端的回复后,再回复一个确认连接的数据包(ACK包),连接建立完成。

HTTP协议

其实HTTP只是多加了一层规矩。HTTP依然是TCP,只是这个规矩让用户更清晰/更简洁.

HTTP1.1哪些优化 ?

长连接 中文/TCP 部分传输 HOST 缓存

HTTPS解密出来依然是HTTP

SSL/TLS 握手

对称加密和非对称加密

网络架构优化方向

为了提高抖音的网络质量,可以考虑以下优化方向:

网络提速

  • 使用HTTP/2.0:HTTP/2.0支持多路复用,能够更高效地传输数据,从而减少延迟和提高性能。
  • QUIC/HTTP3.0:QUIC是基于UDP的传输协议,具有0 RTT(往返时间为0)的特性,适用于弱网环境下的优势。

网络稳定

  • 容灾:建立故障感知和自动切换机制,当发生故障时能够及时切换到备用网络,确保服务的连续性。
  • 故障排查:建立有效的故障排查流程,使用dig、ping、telnet、traceroute等命令来诊断网络问题。

网络故障排查是网络相关研发和运维工作中非常重要的一环。以下是常用的网络故障排查命令:

  1. dig: 用于查询DNS问题,可以查找域名对应的IP地址、解析的详细过程和结果。例如:

    dig www.example.com
    
  2. ping: 用于测试主机之间的连通性,通过发送ICMP回显请求(ping包)来检查目标主机是否可达。例如:

    ping www.google.com
    
  3. telnet: 用于测试主机之间的TCP连接,可以检查指定端口是否开放。例如:

    telnet www.example.com 80
    
  4. nmap: 用于网络探测和安全扫描,可以扫描指定主机的端口开放情况。例如:

    nmap www.example.com
    
  5. traceroute: 用于跟踪数据包在网络中的路径,显示数据包经过的路由器和节点。例如:

    traceroute www.example.com
    
  6. iptables: 用于配置Linux系统的防火墙规则,可以通过配置iptables规则来控制网络流量。例如:

    iptables -L
    
  7. tcpdump: 用于抓取和分析网络数据包,可以查看数据包的内容和流量。例如:

    tcpdump -i eth0
    
posted @ 2023-08-01 22:08  LucianaiB  阅读(29)  评论(0编辑  收藏  举报  来源