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

168 阅读7分钟

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

1.1网络接入-互联网

互联网(internet),又称国际网络,指的是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。----百度百科

1.2网络接入-路由

路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程 [1]  。路由工作在OSI参考模型第三层——网络层数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPXAppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。----百度百科

路由一定是对称的吗?

QQ截图20220519134817.png

不是的,比如用户A和用户H进行交互,有多条线路可以进行交互,返回也可以有多条线路。

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

在网络层工作。

那路由是改ip的地址吗?

不是的,路由是改Mac,找到发包口。

1.3网络接入-ARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP代理ARPNDP用于在IPv6中代替地址解析协议。----百度百科

QQ截图20220519160921.png

1.4网络接入-IP协议

IP协议是互联网通用的一种标识。

Mac地址为什么不能替代IP地址

不同协议需要统一

IPv4不够用一般怎么解决

用IPv6进行扩充,或使用NAT

1.5网络接入-NAT

NAT(Network Address Translation),是指网络地址转换,1994年提出的。

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

NAT不止改IP,会连端口一起改变。

1.6网络传输-数据包

QQ截图20220519162828.png

数据包发送

QQ截图20220519163621.png

1.7网络传输-先请求DNS

它是将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

DNS需要注意递归迭代

QQ截图20220519165238.png

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

Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。

1.9网络传输-TCP三次握手

所谓的“三次握手”:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。

第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户端的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

TCP传输

两个比较重要的概念:

sequence number :表示的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置。

acknowledge number :表示的是期望的对方(接收方)的下一次sequence number是多少。注意,SYN/FIN的传输虽然没有data,但是会让下一次传输的packet seq增加一,但是,ACK的传输,不会让下一次的传输packet加一。

QQ截图20220519172144.png

1.10网络传输-HTTP/HTTP1.1

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。

QQ截图20220519172954.png

1.11网络传输-HTTPS

是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。

2.1网络提速-HTTP2.0

多路复用,可以在一个TCP链接上运行多个HTTP

QQ截图20220519211853.png

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

QQ截图20220519212413.png 如果TCP丢包怎么办?

会发生对头阻塞

2.3网络提速-QUIC/HTTP3.0

谷歌为了解决TCP对头阻塞问题,推出了QUIC

除了协议优化,网络路径能不能优化?

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

什么是数据中心

可以理解为服务器集合的地方

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

使用同运营商的网络访问同运营商的服务器

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

QQ截图20220519215725.png

CDN本质上是一个缓存接口,边缘机房会缓存核心机房读取过的静态文件,其他客户端读取文件时会优先进入边缘机房查找文件,没找到时再进入汇聚机房和核心机房。

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

QQ截图20220519220612.png

假如用户最靠近机房A,服务器在机房I,服务器会通过算法找到离机房I最近的路径。

2.8网络稳定-容灾概念

  1. 故障发生
  2. 故障感知
  3. 自动切换
  4. 服务恢复

2.8.1网络容灾的具体案例

QQ截图20220519221305.png

QQ截图20220519221456.png 没有容灾的故障怎么排查

2.9网络稳定-故障排查

  1. 故障明确
  2. 故障止损
  3. 分段排查

2.10网络稳定-故障明确

QQ截图20220519221820.png

2.11网络稳定-故障止损

QQ截图20220519221850.png

2.12网络稳定-分段排查

QQ截图20220519222046.png

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

QQ截图20220519222318.png

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

  1. 监控报警
  2. 故障演练/预案
  3. 故障降级/止损