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

511 阅读3分钟

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

路由

路由是不是对称的?

不是对称的

路由是改IP地址吗?

路由是改MAC地址,发包过程中,源IP地址和目的IP地址是不会变得,每经过一个设备MAC地址会更改

ARP

ARP请求只能在同网段,ARP 请求的作用是请求MAC地址

ARP的本质是请求下一跳的MAC,而不是请求目标地址的MAC

免费ARP

使用的场景:

  1. 局域网加一台机器,此机器主动发送免费APR,告诉局域网中其他机器自己的MAC地址
  2. 新增一个IP后,会主动发送一个免费ARP,检测IP地址是否冲突

ARP代理

劫持一个ARP请求,并发送往另一个地方

IP协议

MAC地址为什么不能替代IP地址?

MAC地址位于网络协议的数据链路层,而数据链路层有许多协议,不一定都会有MAC地址,那么为了向下兼容这些协议,就在网络层定义了IP地址,进行封装。

IPv4不够用怎么办?

NAT转换

NAT只改了IP地址吗?多个内网客户端访问同一个IP地址+端口,不就冲突了吗?

不是,NAT是改了IP地址和端口,不会冲突

网络传输

网络数据包模型

image.png

数据包发送

image.png

DNS请求

DNS的实现是UDP协议

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

image.png

TCP协议

如果把网线拔了,TCP会不会断开?

需要看具体的场景有没有TCP的保活机制,如果有TCP的保活机制,那么如果一端没有响应,另一端会发送探测报文,在一段时间后,才会断开TCP连接;如果没有这个机制的话,就会直接断开。

TCP三次握手中的MSS

MSS: (Maximum Segment Size) 最大报文段长度,是TCP数据包每次能够传输的最大数据分段。

为了达到最佳的传输效能,TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值(1500字节)代替(需要减去IP数据包包头的大小20字节和TCP数据段的包头20字节)所以一般MSS值1460字节

通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。

Seq和ACK

seq是发送方的序号,ack是期望对方下一次发送的序号

SYN/FIN请求 虽然没有数据data,但是会让下一次传输的seq加一,ACK回复则不会

HTTP

为什么不直接用TCP通信呢?

因为TCP过于复杂, HTTP对于开发更为简单,对于用户更简洁

HTTP1.1优化?

增加了长连接的机制、缓存、部分传输、HOST

HTTPS加密

HTTPS使用非对称加密+对称加密的方式

image.png

HTTP2.0优化?

多路复用:在一个TCP连接里面,多个HTTP请求都可以复用这个连接

多路复用的缺点:队头阻塞,意思是如果某个数据包丢失,剩下的数据包都要等到这个数据包重传才能继续发送

网络提速

静态资源:cdn缓存

动态资源:路径优化