
互联网(或者说宽带)整体上是一个树状或者类树状的结构。每个家庭(或者用户)就好比树上的叶子,而主要的养分供给在泥土当中,通过树的根干运送到每片树叶。
互联网上的各种服务,就是养分。提供这些服务的服务器,就是泥土。而互联网的主干线(术语称为back bone),就是树的根干。
不过,为了符合题目当中的“上行”和“下行”,我们需要先做个手倒立才行。此时,我们看到土地在上,树叶在下,养分输送方向是“自上而下”的,这就叫“下行”。也就是你从服务器“下载”内容的速度。
反之,树叶在光合作用之后,将合成的有机物反向提供给树干,这个叫“上行”。也就是你向服务器“上传”文件的速度。
那么为什么大多数的宽带在“上行速度”和“下行速度”上有很大的区别而且通常“上行速度”远小于“下行速度”呢?按理说它们是走的同一条路径,路况应该相同呀?
这是因为信息与养分等物质不同,是可以无限复制的。任意一片树叶消耗的任何养分都必然来自泥土,3片树叶在某个时间点就需要消费3份养分。然而信息不是。我并不需要将这篇回答抄写500遍,才能让500个人看到,而只是写一次回答就可以了。
在互联网当中,有被称为CDN的节点。这些节点就是负责暂存并复制热点信息。一条新闻出来,第一个去看的,所得到的信息很可能来自于新闻机构的服务器。但是第二个去看的,如果他和第一个看的在同一个互联网接入商那里,那么它所看到的很可能是来自互联网接入商的CDN服务器。也就是在第一个人去看的时候,这条信息就在传输的路径上某个地方被缓存了。后面在这条路径上如果出现相同的内容请求,则直接从缓存当中取,而无需重走全程。
这就意味着,通过部署CDN节点,宽带接入商可以出售远大于其自身互联网通信带宽的带宽给家庭用户。
比如,假设某宽带接入商自身与互联网主干的通信带宽是10Gbps。那么如果不布置CDN,那么10个千兆家庭接入如果同时下载,就会耗尽其通信带宽。但是通过配置CDN缓存内容,则很多数据根本无需重新到互联网上去取,直接从宽带接入商那里就发给你了。那么就可以支持更多的用户,收取更多的接入费了。
但是上行通常不行。因为大部分用户通常上传的数据,都是1对1且独特的。这种数据在你和对象服务器之间需要跑完全程,这就会占用宽带提供商的互联网带宽。
如果还是按照下行带宽一样地分配上行带宽,则因为下行带宽原本就是超发的(由CDN对冲),就会造成上行带宽也超发,但是又不能简单地以CDN对冲(因为大部分上行数据都是一次性的),这就会导致问题。
