后端-打开抖音互联网会发生什么

青训营

刷抖音视频会涉及那些协议呢?

  • 域名解析 DNS
  • 视频下载/HTTP
  • 图片下载/HTTP
  • 评论API/HTTP

目录

  • 1 刷抖音网络是怎么交互的?
    • 1.1 网络接入-互联网
    • 1.2 网络接入-路由
    • 1.3 网络接入-ARP协议
    • 1.4 网络接入-IP协议
    • 1.5 网络接入-NAT
    • 1.6 网络传输-数据包
    • 1.7 网络传输-先请求DNS
    • 1.8 网络传输-DNS的传输协议UDP
    • 1.9 网络传输-TCP三次握手
    • 1.9 网络传输-TCP三次握手
    • 1.9 网络传输-TCP传输
    • 1.10 网络协议-HTTP/HTTP1.1
    • 1.11 网络传输-HTTPS
    • 1.11 网络传输-SSL/TLS握手
  • 2 刷抖音为什么又快又稳?
    • 2.1 网络提速-HTTP2.0
  • 3 总结回顾

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

1.1 网络接入-互联网

后端-打开抖音互联网会发生什么_第1张图片

1.2 网络接入-路由

往同网段如何发包、交互?
在网段通信时,数据包中的地址就是源IP,目标IP,源MAC,目标MAC,根本用不到网关,而当检测到需要把数据包发到远程网络时,这时,目标MAC就必须改变了,在还没有出内网时,目标MAC必须写成网关的MAC地址发出去,当网关收到时,再把目标MAC地址改成下一跳的MAC地址发出去,而源IP和源MAC以及目标IP不曾改变,就算到达了公网上,目标MAC仍然在不断改变着,直到最后,这个数据包到达目标IP的网络,最终通信结束!
详细参考连接:
同网段和不同网段间的通信

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

10.10.10.0/24
这是表示一个IP或网段的方法,/前面是ip或者子网,/后面的数字是掩码中高位算起1的位数,24就是掩码有24个1,就是255.255.255.0

路由一定是对称的么?
路由不一定是对称的,可以对称,也可以不对称。

路由是工作在哪一层协议?
网络层

网络层的功能:
定义了基于IP协议的逻辑地址
连接不同得媒介类型
选择数据通过网络得最佳路径

那路由是改的IP地址吗?
不是改IP地址,是改MAC地址。目标IP地址是一直不变的,改的是目标MAC地址。
路由是改MAC地址,找到发包口。

1.3 网络接入-ARP协议

  • 逻辑同网段才能发送ARP
  • ARP请求广播,ARP应答单播

免费ARP?

  • 把实时的ip和mac变更消息第一时间通告到全网,及时的更新全网的ARP表项
  • 免费ARP用于做地址冲突检测

ARP代理?

  • 代理ARP是ARP协议的一个变种。对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的 ARP 请求会使用自己的 MAC 地址与目标计算机的 IP地址对源计算机进行应答。代理ARP就是将一个主机作为对另一个主机ARP进行应答。

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

1.4 网络接入-IP协议

Internet Protocol(网际互连协议)

  • 唯一标识,互联网通用。
  • Mac地址不能代表IP地址吗?
    MAC层位于OSI七层协议中数据链路层,mac地址是以太网链路寻址的解决方案。
    IP地址有分层。IP 划分有规律,方便寻路
  • IPv4不够用,一般怎么解决的?
    IPv6
    NAT

1.5 网络接入-NAT

多个内网客户端访问同一个目标地址+端口,源端口恰好一样,冲突了?
用端口识别不同的主机。
NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。因此我们可以认为,NAT在一定程度上,能够有效的解决公网地址不足的问题。

1.6 网络传输-数据包

1.7 网络传输-先请求DNS

后端-打开抖音互联网会发生什么_第2张图片

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

UDP本身相对简单,但是想用好UDP很难。

  • 发包每次发多少?怎么避免分片?(MTU, (最大传输单元(Maximum Transmission Unit,MTU)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小),有限制,就需要分片)
  • 怎么知道没丢包?
  • 怎么权衡传输效率和质量?

1.9 网络传输-TCP三次握手

拔了网线,连接会断吗?
不会马上断掉。在需要长连接的网络通信程序中,经常需要心跳检测机制,来实现检测对方是否在线或者维持网络连接的需要。这一机制是在应用层实现的,对应的,在TCP协议中,也有类似的机制,就是TCP保活机制。
TCP保活机制

1.9 网络传输-TCP三次握手

MSS(Maximum Segment Size,最大报文长度),是TCP协议定义的一个选项,MSS选项用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度。

1.9 网络传输-TCP传输

为什么老问你Timewait?
确保连接正常关闭。
防止新的连接建立异常。
Timewait需要等待MSL。MSL是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。

丢包怎么办?
重传,有ACK机制。

1.10 网络协议-HTTP/HTTP1.1

为什么不直接用TCP通信呢?
为什么互联网上那么多用HTTP通信?

HTTP只是多加了一层规矩。HTTP依然是TCP,只是这个规矩让用户更清晰/更简洁。
HTTP1.1哪些优化?

  • 长连接,不用每次发送请求都需要建立一个TCP连接
  • 部分传输
  • HOST
  • 缓存
  • 。。。

1.11 网络传输-HTTPS

1.11 网络传输-SSL/TLS握手

SSL(Secure Sockets Layer)协议既安全套接字层协议,TLS(Transport Layer Security)协议即安全传输层协议。SSL与TLS协议详解

2 刷抖音为什么又快又稳?

2.1 网络提速-HTTP2.0

后端-打开抖音互联网会发生什么_第3张图片

3 总结回顾

你可能感兴趣的:(GO学习,网络,网络协议)