这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记
下图是的各层常见的协议
quic (Quick UDP Internet Connection)是谷歌制定的一种基于UDP的低时延的互联网传输层协议,处理更多的连接,安全性,和低延迟
ARP 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个[TCP/IP协议](传输层协议)。
网络交互
接入
子网掩码,区别
-
同网段
修改MAC
-
跨网段
路由 routing 选择路径,需要经过网关
路由不一定对称,不一定会原路返回
动态路由:
目标ip地址不变,改的也是通过ARP查到的MAC地址,跳到修改的MAC地址,跳转过程中MAC会一直变。
发包需要指定网卡
逻辑同网段才能ARP请求广播
免费ARP zhuanlan.zhihu.com/p/371088648 ,配置静态ip时,发送免费ARP,提前检测ip地址冲突
代理ARP: 如果ARP请求是从一个网络的主机发往同一网段却不在同一物理网络上的另一台主机,那么连
接它们的具有代理ARP功能的设备就可以回答该请求,这个过程称作代理ARP(Proxy
ARP)
为什么MAC不能代替IP?
首先,他们就不是同一层的协议,MAC(Ethernet)位于第二层,肯定第二层还有其他协议不能直接遗弃。为了兼容就再封装一层。
NAT
修改ip+端口
传输
请求DNS解析域名
UDP 避免分片,MTU有限,就会分片,但是分片了就得组装了,组装的时候少了一片就麻烦了
TCP 通过MSS(Maximum Segment Size,最大报文长度)选项避免大多数的分片情况,在三次握手的时候就确认了,填在option字段里面,协商时取最小值
sequence number :表示的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置。简而言之就是我这次发送是从哪开始
acknowledge number :表示的是期望的对方(接收方)的下一次sequence number是多少。注意,SYN/FIN的传输虽然没有data,但是会让下一次传输的packet seq增加一,但是,ACK的传输,不会让下一次的传输packet加—。简而言之就是我这次想要你下一次从哪开始,也就表明之前的我都处理完了,你别瞎管了。
HTTP 只是封装了一些特定的场景,基于TCP
HTTPS : CA,非对称加密,安全证书
FRP is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. As of now, it supports TCP and UDP, as well as HTTP and HTTPS protocols, where requests can be forwarded to internal services by domain name.
frp also has a P2P connect mode. github.com/fatedier/fr…
网络提速
协议优化
HTTP2.0 多路复用
TCP连接和Stream一对多的关系 , 但是丢包后,会有队头阻塞(Head-of-Line Blocking)和全部重传问题 ,解决:SACK(Selective ACK)是TCP选项,它使得接收方能告诉发送方哪些报文段丢失,哪些报文段重传了,哪些报文段已经提前收到等信息。
多图并发下载
QUIC
0 RTT (Round-Trip Time): 往返时延
路径优化
- CDN 是构建在数据网络上的一种分布式的内容分发网。 CDN的作用是采用流媒体服务器集群技术,克服单机系统输出带宽及并发能力不足的缺点,可极大提升系统支持的并发流数目,减少或避免单点失效带来的不良影响。针对静态资源
P2P
anycast
遗传算法
蚁群算法
-
数据中心分布
-
同运营商访问
解析ip是哪个运营商
-
DSA 动态
网络稳定
容灾
-
网络容灾
-
调度容灾
GTM,只有通过计算后确定剩下的机器能承受住访问才允许转移
-
主动降级
-
前置兜底文件/cache
故障排查
-
沟通,明确故障
-
止损
-
分段排查
- 客户端
- 服务端
- 中间链路
\