CDN是什么意思?测速能跑940兆看4K还转圈,我查了视频到底从哪台服务器来的

测速能跑940兆,客厅电视看在线4K却转圈,转得人心里发慌。更气人的是同一个片子,手机开流量看,唰一下就播了。
上回写电视联网那篇我留了个尾巴:网线插得好好的、一到晚高峰就是卡,这种九成不赖家里的网。这篇就把那个尾巴掰开讲——你看的视频,到底是从哪台服务器来的。
视频不是从总部寄来的,是从你家楼下的分店拿的
CDN三个字母,全称内容分发网络(Content Delivery Network),干的事一句话就能说明白:网站把自己的内容提前复制一份,放到全国各地的机房里,你看视频的时候,从离你最近的那一份拿。
打个比方,奶茶连锁。总店在广东,你在北京想喝,不用等广东给你寄一杯——楼下分店做的是同一杯。视频网站也一样,机房不可能只有一间,热门剧和视频会在全国几十个机房各存一份。这些机房有个统一的名字,叫边缘节点;去总部机房调分的那个动作,叫回源。
没有CDN会是什么样?全国几亿用户挤一个机房,机房出口带宽再粗也不够分。更要命的是物理距离:你在哈尔滨,服务器在广州,数据一个来回光跑路就得几十毫秒。视频是一段一段拉的,跑路的账要反复付。
分店备什么货也有讲究。热门剧是人人都要的,各家分店提前备得足足的,来了就能拿;冷门的老视频没什么人看,分店多半没存,你一点开它得回源去总部现调——这就是为什么热门内容秒开、有些冷门视频头几秒总是慢一拍,跟你的网没半点关系。
所以看视频卡不卡,第一件事不是查路由器,是搞清楚你被派去了哪家分店。
它怎么知道该给你哪份?看你问路时经过的那个DNS
分店再多,也得先决定把你派去哪家。CDN靠的正是你问路时经过的那个DNS。DNS解析那篇讲过递归查询的过程,CDN的调度就藏在这一步里。
流程拆开是这样:你敲了网址,你的DNS去问B站的调度系统;调度系统不急着回答,先看一眼「这个问题是谁替你问的」——也就是你这个DNS的出口在哪、走的是哪家运营商,然后从节点池里挑一批最适合你的IP扔回来。
我拿电脑实测了一轮。问B站的域名,一次能拿回16个IP,全是同一个池子里的;问淘宝,拿回2个IP;多问几次,IP的顺序还会换着来。这可不是什么劫持,是CDN在池子里轮着派活,跟菜市场几个摊位轮流称重一个道理。
坑就藏在调度依据里:它看的是DNS的位置,不是你的位置。你人用着联通的宽带,DNS的出口却在电信那边,就可能被派去电信的节点,数据跨网绕一大圈,这叫调度不准,是看视频卡的隐形原因之一。
业界有个补丁叫ECS,全称EDNS Client Subnet,让DNS问路的时候把你的IP前缀也捎上,调度系统就能拿到你真实的大致位置,派店就准了。阿里223.5.5.5、腾讯119.29.29.29、百度180.76.76.76这几家公共DNS都支持。所以网上说的「换个DNS看视频变快了」,多半不是DNS本身跑得多快,而是CDN给你换了一家更近的分店。
我挨个连了一遍:就近节点和总部机房差十倍
光说不练没意思。我把拿回来的那串IP挨个测了TCP握手延迟——就是建立连接那个三次握手的往返时间,意思跟ping差不多,延迟是什么那篇讲过这数字怎么读。结果记在下面这张表里。
| 连的是谁 | 握手往返 | 啥感觉 |
| B站就近节点一 | 18ms | 同城分店 |
| B站就近节点二 | 21ms | 同城另一家 |
| B站稍远的节点 | 35ms | 邻市分店 |
| 淘宝的节点 | 18ms | 同城分店 |
| 对比:一个没上CDN的小站源站 | 209ms | 总部直邮 |
就近节点和源站差出快十倍。209ms是什么概念——每建立一次连接,光跑路就磨掉0.2秒,一个网页要加载十几个文件,视频要一段一段拉流,这笔账全搭在里面。
这个差距你在家也能自己验证:电脑上nslookup敲一下域名,拿回一串IP,再找个在线多地ping的网站测一圈,你会看到同一个域名在不同省份测出来的延迟,从十几毫秒到一百多毫秒都有——那就是各地分店的远近差,清清楚楚。
晚高峰卡,三个嫌疑人挨个排
搞明白CDN,「测速快看视频卡」这件事就能分诊了。测速软件挑的是最近的节点、跑的是单一任务,测速那篇说过这属于理想工况;看视频是真实世界,节点要排队、要跨网、还可能回源。晚高峰卡,嫌疑人拢共三个。
| 嫌疑人 | 典型特征 | 谁来治 |
| CDN节点挤:晚八点几万人挤同一家分店 | 白天流畅、一到晚高峰就卡,降一档清晰度立刻顺 | 平台方的事,你只能错峰或降档 |
| 跨网绕路:联通宽带被派去电信节点 | 测速正常、就特定网站慢 | 换一个支持ECS的公共DNS试一轮 |
| 自家网段:WiFi信号差或被家人占带宽 | 手机贴脸测也慢、所有网站一起慢 | 自己动手,先插网线排除无线段 |
排的顺序建议从下往上:先插网线贴脸测一把,把无线那段摘干净——2.4G拥挤和隔墙掉档的账频段那篇算过,家里信号盲区也能照着自查表量一遍;网线还卡、丢包也排除了,才轮到墙外那两个嫌疑人。
手机开流量反而流畅,是这里面最有用的分诊信号。流量走的是运营商自己的核心网和就近调度,等于绕开了你家宽带整条链路——它好你卡,病在你家宽带上或者调度上;它也卡,那就是平台当晚节点的事,睡觉去吧。
家里能动的三件事,和真不赖你的那些
能动的一,查DNS。路由器WAN口的DNS和DHCP下发给设备的DNS都看一眼,DNS配置那篇有各家后台的路径。说句反直觉的:家宽用户用运营商默认的DNS,调度其实是最准的一档,因为DNS和你人在同一个网里;想换公共DNS,就换前面说那几家支持ECS的,别听人安利什么「提速DNS」就瞎填。
能动的二,把自家段测干净再下结论。有线贴脸测一轮,几个时段各测一次记下来——带宽、协商、实测是三本账,别拿WiFi隔墙的数字去冤枉宽带。
能动的三,报修带上证据。「晚八点到十点看4K卡,白天不卡,手机流量正常,网线直连测速940」——这几句话报上去,师傅一听就知道该查线路还是查局端。报之前光衰读数自己也先看一眼,-27以内心里才有底,光衰那篇有完整分档。
至于平台节点挤、冷门内容回源、跨网互联拥塞,这三样全在你家墙外,谁来了也治不了。降一档清晰度、错峰看,是最实在的两招。
顺带说一句,电视盒子和智能电视里有些DNS是内置的,设置里根本不给改。不用跟它较劲——改路由器上DHCP下发的那个DNS就行,设备问路还是得经过家里路由器这一站,等于换了它的带路人。
收尾给个顺序:贴脸测排除自家——看是全时段卡还是分时段卡(全时段查DNS和线路,分时段多半节点挤)——换支持ECS的DNS试一轮——还不行就带着时段记录和光衰读数报修。四步走完,这事就算对得起自己了。

发表评论