计算机网络
看视频需要:dNS域名解析、图片下载、视频下载、评论API-HTTP
个人思考:DNS就像虚拟通讯录,将所有ip和网址一一对应,这样省去了记忆ip的不便
如何与服务器交互
路由
掩码决定了子网范围,有了交换机可以做同网段(不一定是物理上的,通过虚拟网络也可以)
跨网段
路由不一定时对称的 路由是工作在哪一层协议:ip层 路由是改ip地址的吗:改mac地址,找到发包口
个人思考:这里我查了一下mac地址的含义,它就是每个设备的身份识别码,是唯一的,通过它可以定位到相应设备。
ARP协议
因为没有接触过ARP协议,所以我也查了一下,大概意思是将Ip地址转为对应的mac地址,以便底层网络协议拿着MAC地址通信
本质上是查找下一跳的mac 逻辑同网段才能发送ARP ARP请求为广播,应答为单播 免费ARP-提前判断ip是否有冲突
IP协议
MAC协议为什么不能代替ip:
额外知识:mac受局域网限制,在局域网设备间传输更高效,而ip则是全球网络范围内
IPV4不够用时怎么解决:NAT更改IP与端口
个人理解:NAT就像公用的电话,每个人都可以通过这个电话拨号或者接电话
通过NAT,把内部不同的地址映射到一个地址
网络传输
TCP三次握手
TCP连接是一种可靠的、面向连接的通信方式,能够保证数据的可靠传输和双向通信。
很多option都是在三次握手中交换
拔了网线后,tcp连接是否会断开?
取决于连接的是状态其他,因为拔了网线状态也不会改变,所以有时候会断有时候则不会。
滑动窗口机制
滑动窗口这里上课没讲,因此我去搜索了一下相关资料,我的理解就是,滑动窗口机制就像规划行车路线,每次规划都要提前看一下当前路线是否拥堵,如果拥堵那么就把当前路线的规划行车数量减少一点。
滑动窗口机制的基本原理是,在TCP连接中,发送方和接收方都维护了一个窗口,用于指示能够接收的数据的范围。发送方通过发送窗口的大小来控制发送的数据量,接收方通过接收窗口的大小来告知发送方能够接收的数据量,这个窗口可以根据网络状态动态调整大小。
HTTP1.1
HTTP仍然是TCP,只是这个规矩让用户更清晰/更简洁 HTTP的优化:主要的就是长链接,不需要每次请求
HTTPS
HTTPS解密出来也是HTTP,对HTTP进行加密,防止窃听
对称加密和非对称加密
非对称加密:把对称加密的算法进行加密。通过第三方的CA的公钥、私钥传输
HTTP2.0协议
最重要的思想就是多路复用,在视频中可以多图并发下载。并行相比串行提升明显。
这里很好理解,一次执行多次下载可以有效提升用户体验
HTTP3.0
防止队列头阻塞
数据中心分布
核心机房-POP接入-边缘机房 边缘机房更靠近用户、小运营商
个人思考:这样设计的好处:可以降低延迟、增加可靠性、点对点管理流量优化网络
移动网络访问移动更快,但是访问电信会不稳定,解析客户端到相应运营商接入
路径优化
静态资源
将不变的静态资源缓存到边缘机房,用户访问时首先到边缘机房查询是否存在缓存。
动态资源
对于评论接口,可以通过路径优化算法,在每个相邻机房做网络延迟探测,找出最优路径
网络稳定
容灾概念
故障发送、故障感知、自动切换、服务回复
专线
服务器间的内部连接 机房专线故障:环路容灾,避免某条专线故障导致机房孤岛问题(专线是连接各个机房的网络物理路径,如果专线不可用,则走外网容灾)
个人思考:专线容灾可能存在配置成本高+配置复杂的情况
单机房接入节点故障:DNS容灾,摘除故障的节点-字节GTM系统 云控容灾:云端交互,服务器/云上下发命令到终端-字节TNC系统 cache容灾:源站不可用,降级到之前的缓存内容-字节TLB/ByteCDN等系统的容灾建设
没有容灾的故障怎么查?
- 加强故障沟通-明确故障
- 故障止损要在第一时间做(灾备预案的建设)
- 熟悉常用的故障排查命令
故障明确-故障止损-分段排查 可以做降级,如推荐算法转换为随机刷视频 分段:客户端、服务端、中间链路排查
我的总结
网络优化主要包含两个方面:提速和稳定 提速包括:路径提速、HTTP2.0提速、数据中心提速、QUIC提速 网络稳定包括:网络容灾、故障排查。