一、CDN类型介绍
B站作为一个流媒体内容提供者,高效地为用户提供内容是其核心职责之一。为实现这一目标,B站采用了CDN(Content Delivery/Distribution Network,内容分发网络)和PCDN(P2P CDN)技术。
1.CDN (内容分发网络)
CDN是一种在多个地理位置部署的服务器网络,旨在通过将内容复制到最靠近用户的节点,从而减少内容传输的时间和带宽成本。这样,当用户请求特定内容时,他们将从最近的节点接收内容,从而提高加载速度和用户体验。
B站所采用的CDN类型:
-
服务商CDN:由第三方提供的CDN服务
域名:upos-sz-mirror****.bilivideo.com
- 腾讯:cos, cosb, coso1, coso2, bos
- 金山:ks3, ks3b, ks3c, ks32
- 七牛:kodo, kodob
- 华为:hw, hwb, uphw, js
- 阿卡迈(海外):akamai
-
自建CDN:B站自行建设和维护的服务器网络
域名:cn-****.bilivideo.com
从其域名结构可以推测,该CDN可能按照地区进行了部署,其中的标识符代表了各个省份和城市的首字母缩写
-
MCDN:与京东云相关的CDN类型
域名:xxxxx(ip地址).mcdn.bilivideo.com
从其IP地址分配来看,可能与家用宽带网络有关,与京东云的无线宝产品存在某种关联
2.PCDN (P2P CDN)
与传统的CDN不同,PCDN采用点对点技术将内容从一个用户分发到另一个用户,而不是通过中央服务器。这种方法的好处是能够减少对中央服务器的负担,但由于用户之间的网络质量和速度差异,可能会导致内容传输速度的不稳定。
-
PCDN:B站自行建设和维护的服务器网络
域名:****.v1d.szbdyd.com
B站所采用的PCDN,可能会受到各种因素的影响,如用户之间的距离、上行带宽差异等
二、CDN卡顿原因分析
为什么B站视频卡顿?
-
无 IPv6 : PCDN 型 的概率很高,但因为是 PCDN ,质量比较一言难尽。
-
有 IPv6 : PCDN 型基本就没有了,MCDN 概率也低很多。
为什么B站仍使用PCDN?
- 成本效益: 与维护大型、地理分散的服务器网络相比,PCDN可能在某些情况下更为经济。
- 流量分配: PCDN可以帮助分散大量的流量,从而减轻中心服务器的负担。
三、优化方法
1.屏蔽相关DNS解析
以adguardhome为例,可以通过以下规则来屏蔽pcdn和mcdn的获取与解析
||*pcdn*.biliapi.net^$important
||mcdn.bilivideo.cn^$important
||szbdyd.com^$important
#||cn-*.bilivideo.com
*pcdn*.biliapi.net
屏蔽此域名是因为b站似乎已经开始直接使用 IP 连接 PCDN 节点,通过请求这个域名会返回一系列节点信息
cn-*.bilivideo.com
这条是用于屏蔽B站自建CDN的规则
2.Tampermonkey脚本
①浏览器安装 Tampermonkey
②打开 MBGA 点击安装脚本
③点击 Tampermonkey > 管理面板,点击 “Make BiliBili Grate Again”
之后刷新视频,右键点击视频统计信息,查看 Video Host
是否已变为 UPOS
评论区