太长不看版:单独对 B 站系列域名解析 IPv6 即可解决问题。
经过大半个月的测试,我觉得我有一点发言权:
B 站的 video host 有四种类型:(我将其添加个称呼好标注,非官方称呼)
upos-sz-mirrorkodo.bilivideo.com /
upos-sz-mirrorcos.bilivideo.com / Mirror 型
cn-gdgz4-cmcc-v-09.bilivideo.com /
cn-gdst-cmcc-bcache-02.bilivideo.com / Cache 型
xy112x48x59x98xy.mcdn.bilivideo.cn /
xy110x85x55x73xy.mcdn.bilivideo.cn / MCDN 型
a93lt21v.v1d.szbdyd.com /
hz6xy5t6.v1d.szbdyd.com / PCDN 型
以上几种是在广东移动的场景下测的,其他运营商应该也差不多。
在有无 IPv6 的情况下有很大区别:
无 IPv6 时:
PCDN 型 的概率很高,但因为是 PCDN ,质量比较一言难尽。
MCDN 型和 Cache 型 一般出现在比较热门的视频或是电影番剧中,质量尚可,高峰期可能会慢点但仍可接受。
Mirror 型分配就很奇怪了,热门视频有可能,但冷门或是几年前的视频也都分配这个,有快有慢不知道 B 站怎么搞的。
有 IPv6 就是两个世界了:
PCDN 型基本就没有了,MCDN 和 Cache 型概率也低很多。
Mirror 型分配的概率大大提高,冷门热门分配的都是这个,而且速度超级快,很少遇到卡顿。
基于我以上的观察,我在自家的 DNS 服务器上屏蔽了 PCDN 的域名,单独允许 B 站系列域名可解析 IPv6 以及屏蔽 203.107.1.1/24 的流量(这是阿里家的 HTTPDNS ,B 站会利用这个 DNS 请求解析,必须屏蔽),自此就基本没遇到卡顿的问题了。
最后,这也只是我家的测试情况,单一样本不具备普适性,所以仅供参考。
最后的最后,个人经验难免错误疏漏,还请大佬们补充纠正。