【字节青训营-后端专场】打开抖音互联网会发生什么
刷抖音网络是怎么交互的
交换机
路由
- 路由一定是堆成的吗? 不是
- 路由工作在哪一层协议? IP层
- 路由是改IP地址吗? 不是 改MAC地址,每次更改源MAC和目的MAC,找到发包口,目标IP地址始终不变
- 怎么找下一跳的MAC? ARP协议,逻辑同网段才能发送ARP,ARP请求广播->ARP应答单播
IP协议
唯一标识,互联网通用
- MAC地址不能替代IP地址。
- IPv4不够用,一般怎么解决?IPv6;NAT
先请求DNS
- 客户端发 www.douyin.com 解析请求
- 递归解析器问'.',com.去哪里解析
- 递归解析器问'com.',douyin.com去哪里解析
- douyin.com告诉递归解析器 www.douyin.com 解析到xxx
DNS的传输协议UDP
想发什么包,分配一个UDP的头,把payload里面塞数据发出去就行
如何保证协议可靠?
TCP三次握手
什么是TCP连接?
- 拔了网线,连接会断吗? 不会,TCP保护会使其断开:探活(心跳包)
sequence number:表示的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data stream中的位置
acknowledge number:表示的是期望的对方(接收方)的下一次sequence number是多少。
注意,SYN/FIN的传输虽然设有data,但是会让下一次传输的packet seq增加1,但是ACK的传输,不会让下一次的传输packet增加1。
TCP传输
- Timewait 保证连接正常关闭,防止前一次ACK丢失......
- 丢包怎么办? ACK机制重发包
- 滑动窗口
- 流量控制
HTTP/HTTP1.1
为什么不直接用TCP通信?
HTTP只是多加了一层规矩,依然是TCP,这个规矩让用户更清晰、简洁。
HTTP1.1的优化:长连接;部分传输;HOST;缓存。
HTTPS
HTTPS解密出来依然是HTTP,防止中间窃听。
先非对称加密交换密钥,再对称加密交换信息。