steam下载速度通常能达到满速,而迅雷却达不到,为什么?


这就要聊一聊Steam的下载史了。

G胖在开发Steam的时候,就是抱著让玩家随时随地玩上自己的游戏的野心,去聘请了BT之父——Bram Cohen,让他来打造比德芙更丝滑的下载体验。

很多人应该不知道Cohen,他是一名天才程序员,也是自闭症患者。

虽然美国的少儿编程渗透率很高,达到40%以上(也就是说几乎两个孩子里就有一个在学编程),但是一般孩子都是运用MIT开发的Scratch编程工具学习基础的运算思维,没有真正接触代码。但Cohen在五岁的时候,就掌握了C语言,到了十六岁,已经学会了三种编程语言了。

就是他,编写了点对点文件共享协议BitTorrent,并且开发了第一款利用该协议的文件共享程序。

Cohen加入Steam之后,就采用了自己研发的P2P技术,将游戏打包成GCF格式,没有进行任何压缩,玩家就只能直接全量下载。但是如高赞答主所说,因为是直接从伺服器进行传输,所以速度也是非常快的。

但这不是结局。

后来大家发现,这不压缩就下载实际上很麻烦,如果遇上更新,还得重新下载。那怎么办呢?几年前,Valve又发布了一个新内容下载系统SteamPipe,对Steam的下载功能进行了优化。

可以看看官方介绍:http://store.steampowered.com/news/5856/

其中一个很核心的点在于更改传输模式:即使用HTTP传输游戏数据,把游戏拆分成许多小块,再加密压缩,使得Steam数据能轻松地在防火墙间传递,还能使用第三方HTTP缓存和资源发布网路来提升下载的速度。

这个分割拆解的优势,在SteamCN中的社区里有一个很详细的讲解,这里给大家贴一段:

「用户只需要一小块一小块地下载,每下载回一块就解压,最后就能组成完整的游戏。

游戏更新的时候,客户端只要删除过期的小块,重新向从伺服器上下载回新的小块就ok了。这样不仅做到了边下载边解压,而且解决了更新困难的问题。而且还能防止用户抓包提取到下载链接然后用其他工具下载或分享给别人下载,因为游戏已经变成很多小块了,抓包只能抓到单个小块的下载链接,而且下载链接是一次性的。

有些游戏发行的前几天会允许玩家预先载入,这个过程其实是允许用户提前下载好这些经过加密压缩的小块,但是不提供解压key,用户没法解压也就没法知道里面的内容。等到游戏正式发行的时候,Steam客户端才会收到用于解压的key,完成解压过程。」(来源:https://steamcn.com/t96574-1-1)

而且回归到核心想一想,Steam的本质就是游戏分发平台,如果下载效率低,会迅速丧失许多用户,这对它将是毁灭性的打击。

可以预见,他们还会在追求速度的路上越走越远。

毕竟G胖可是要掏空全世界钱包的男人啊!


我告诉你为什么。

迅雷的下载协议是P2P,你要下的东西不在迅雷伺服器里,而在原地址以及其他伺服器里。你下的电影啊游戏啊什么的都是迅雷在原地址给你下,或者在其他几个有相同资源的地址给你同时下。如果你不开会员,原地址多快下载速度就有多快。比如一个1G的照片压缩包,原地址只给你10KB的下载速度,那你的下载速度也只有10KB。如果还有几个链接有相同的文件,它就给你一起下载,起到加速的目的。迅雷下载的文件下方不是有个0/120之类的数字吗?这就是链接数量,其中大部分都是死链,没有任何速度的那种。

但是迅雷也有一个伺服器,储存一些没有违规的内容。如果你开了会员,迅雷就会把这个资源从伺服器端传输给你,这自然速度非常快。如果你没有会员,你是没有使用这个服务的权利的,自然没有加速。但是千万别以为你充了会员就一定能加速,我下载的90%的视频内容都无法加速,只能随缘下载,甚至直接告诉你资源违规,不能下载。你要不信,你可以试试用迅雷和其他P2P下载软体同样一个下载速度很慢的磁链或种子,你用BT彗星之类的软体下载,那也很慢。而且根据我自己的测试,下载无法加速的文件,迅雷的速度和链接也比其他P2P软体快的多。(但是迅雷直接不让下这种情况很心烦)。

迅雷并没有限速,P2P下载软体给用户限速那是找死,P2P文件的下载取决于原始地址的下载速度、拥有这个文件的伺服器的数量。比如1亿人下载过一个同样的视频,这个视频的下载链接就会非常多,迅雷就可以同时下载,你的网速多快,下载速度就有多快。假如这个视频发布出来后,原始地址关闭了,下载过的人也寥寥无几,那链接可能只有五六条,能用的可能就一条或者一条也没有。这个时候就看迅雷伺服器有没有这个文件,如果有,你开会员就能下,如果没有,你开会员也下不了。

举个例子:你用迅雷下载没有违规的文件,但是它可用链接只有三条,下载速度每秒15KB,但是这个文件迅雷的伺服器正好有,如果你开了会员,迅雷从自己伺服器给你发,那你就可以获得很强的加速效果。如果你下载一个文件,迅雷伺服器也没有,或者它知道这个文件违规不给你加速,原下载速度每秒15KB,那你充了会员,下载速度也是15KB。

主流的下载软体真正限速的是百度云,原因就是我说的那样。做存储和流量是很费钱的。百度云不充会员就限速,但是国外的网盘呢?要不收费更贵,要不空间特别小,要不广告一堆,下载等待还限速。要是有一个可以代替百度网盘的免费网盘出现,百度网盘早就死了,又怎么会被人诟病?事实上,个人用户对百度云盘怨声载道的时候,那些小型做视频,做教育,做网课的公司或机构,对百度云简直是乐开了花。每个月25块钱,能存5TB内容,能快速分享给用户,对于这些带来的效益而言,25块钱简直九牛一毛。

说句题外话,迅雷最近一直被人诟病,比如广告多,强制升级,浏览器软体页面,造成这一切的原因我认为是迅雷没有找到更好的盈利方式。做数据很费钱,而随著版权时代来临和政策对网路色情内容的封杀,迅雷的会员们发现自己能下载的东西越来越少,能加速的东西也越来越少。下载器的核心就是下载,失去了这一点,会员们自然不会续费。当收入减少时候,迅雷作为一个上市公司自然要想别的发财渠道。被骂和死之间如何权衡,我想大家都有答案。

而steam的下载方式就很容易了,就是把游戏文件从自己的伺服器发给你,当然快了。(评论区有人告诉我p2p的亲爹就在steam搞下载,steam也用p2p技术)


1,steam下载前会预分配硬碟空间,所以只要你的下载速度小于硬碟连续写入速度就不会被硬碟拖累,哪怕是机械硬碟(epic是边下载边写入,机械硬碟经常卡掉速)

2,steam在全球都有节点,当然,playu和epic也是,唯独origin在很多地区和国家没有节点

3,steam可以手动锁定下载节点,而playu和epic下载节点取决于dns返回结果,如果像我一样喜欢用1.1.1.1作为dns,playu和epic经常会从海外节点下载,而steam仍然会从设置的节点下载(我一般设置为日本或新加坡)

4,steam下载完才开始更新文件,而epic是下载一个文件更新一个,同样这也导致了在机械硬碟上epic的下载速度非常难看(而steam经常飞快的下载完然后再本地更新更上半小时)

5,steam本身相对资源消耗较低。虽然steam,playu,epic,origin,gog都是基于libcef(chromium)开发的套壳客户端,但是steam相对自身占用较低,与之相反的是epic,经常在高分屏上直接耗尽cpu,以及经常内存泄漏的playu


1/伺服器下载,打开设置可以看到节点很多。

2/BT下载,据说当年是请美国的BT之父布莱姆设计的。这是旧闻链接布莱姆加入v社设计steam系统


Steam在大陆有独立CDN,然后加上P2P下载,HTTP直连,速度自然快


推荐阅读:
相关文章