zoukankan      html  css  js  c++  java
  • [缓存]迅雷下载的原理——P2SP加速技术

    BT的出现使大多数人现在对P2P并不陌生,P2P的下载概念,简单点说,就是下载不再象传统方式那样只能依赖服务器,内容的传递可以在网络上的各个终端机器中进行。

    而现在,P2SP出现使用户有了更好的选择,它除了包含P2P以外,更多了个S(P2SP的“S”是指服务器)。P2SP有效地通过多媒体检索数据库这个桥梁把原本孤立的服务器和其镜像资源以及P2P资源整合到了一起。也就是说,在下载的稳定性和下载的速度上,都比传统的P2P或P2S有了非常大的提高。

    迅雷的加速原理就是采用了P2SP技术,说起来并不复杂

    迅雷P2S技术的核心

    1. 智能资源选择

    如何在多达1亿资源中选择合适的资源是智能选择的关键。

    合适的资源既要考虑资源本身的服务能力,又要考虑具体的网络环境,我们不妨看几个具体的例子:

    示例一:

    用户A在进行下载时,候选资源有R1、R2,其中,R1来自专用下载服务器,专用带宽100M,R2则是网友个人站点,在同等条件下,选择R1显然获得更高的下载速度。

    示例二:

    在示例一中,如果A是网通用户,而R1是电信资源,R2是网通资源,那么,由于网间限速的原因,R1的速度未必高过R2。

    迅雷的智能资源选择技术来自迅雷核心技术的积累和对每日海量数据的挖掘利用,它充分考虑用户的网络条件、服务器的服务能力、当前的网络负载等,实时、迅速的选择最佳资源。

    2. 下载服务器负载均衡

    很显然,由于巨大的下载量,单个下载服务器,无论能力如何出色,总可能被压垮,传统的解决方法是提供多个下载地址,让用户自己选择;下图是一个典型的下载页面:

    这样做的实际结果是:

    第一, 把复杂性转移给了用户。用户面对一堆的下载地址,一个一个的尝试,一直到碰到能够下载的为止。

    第二, 由于人的选择一般是从上到下,所以上面的服务器压力大甚至垮掉,而下面的服务器则可能根本用不上;服务器的使用效率和用户的下载速度都受到损害。

    迅雷技术则完全解决了这些问题,除了智能资源选择,迅雷会自动根据当前服务器压力进行负载均衡。迅雷的负载均衡技术保证:

    第一, 网站A的下载会自动在A的下载服务器列表中选择负载最低的服务器;

    第二, 网站A可能有限使用B的下载服务器,当然是在保证B网站本身下载速度的前提下;

    第三, 为防止网站A不提供下载服务,大量盗用网站B资源,迅雷会自动对网站进行分级,降低甚至取消对贡献小和不贡献网站的加速;

    综上可知,迅雷的P2S技术做到了:

    首先,给用户节省了时间,提高了速度;

    其次,提高下载网站的服务能力,迅雷作为全局的负载均衡器,有效的把各下载网站的服务器组织为一体,提供7*24的服务;该服务不会因为部分服务器或部分网站的全部服务器的Down机而受到大的影响;

    第三,迅雷的算法保证公平原则,在下载服务方面投入越多,则网站的加速效果越好,反之亦然;这样,专注用户体验的网站,投入越大,其流量和价值越高,投机取巧的网站则必然衰落;从这个意义上讲,迅雷不是在盗链,而恰恰是在帮助下载网站进行更有效的数据传递。

    盗链的理解
    假如迅雷提供的资源是盗链,那么百度MP3搜索是什么?

    隐私威胁
    有用户提出,迅雷所具有的P2SP技术可能会造成用户信息泄露,由于P2SP技术类似于P2P技术,因此必定存在于一个索引服务器。如果用户下载的个人隐私文件在下载完成后即使从服务器上删除,但未在客户端删除的话,将有可能导致个人用户隐私泄露。
    任何用户只要安装了迅雷下载工具,使用迅雷下载的时候,用户的下载行为会完全被迅雷记录并上传,这样的行为也侵犯了用户的合法隐私,造成了网络安全的隐患。 迅雷下载技术跳过了网页环节,使得用户在下载文件的时候,有可能下载到非法网站的内容,使用户可能感染电脑病毒和木马,并对信产部网站监管工作造成不利影响。(华军软件园声明)

    迅雷的工作原理
    也就是说,迅雷会收集互联网上的所有下载地址和装了迅雷的电脑的资料.

    1.其实收集互联网上的服务器的下载地址,很多软件都会这样做.如网际快车等,但网际快车不会收集在下载地址里包涵了用户名和密码的下载地址,为什么?因为网际快车的程序员知道,下载地址里有用户名和密码,就是不想让所有人都使用.但迅雷的程序员可不理你,一样收集,然后供其它人使用.说白了,就是我们站长最恨的"盗链".

    例:包涵用户名的下载地:ftp://Thund:Issue@202.154.123.218/0718/世界大战.rmvb

    这个下载地址里的Thund:Issue就是用户名和密码了


    2.上面说到的,只是提供下载的站长利益受损,下载的用户好像说,关我什么事?我下载快,就行了.

    嘿嘿,天下可没那么便宜的事.如果网上就那么几个网站的下载点,作用也不是很大,人家站长也不是傻的,让你迅雷一直的盗链.那有什么办法增加下载点呢?不就是那个用过迅雷下载的人喽

    迅雷一装好后,以后你系统启动,在你的系统背后,都会启动两个线程(迅雷的),Thunder.exe和Issue.exe,但你在系统的右下角的工具栏里是看不到迅雷已经悄悄的启动了.只有在线程里才能看到.

    这两个线程有什么用呢?就是要像BT那样,共享你硬盘上的文件,让其它人下载.所以,局域网的网管可就辛苦了,找死你也找不出,为什么你的网里面的流量那么大.

    从以上看出来,迅雷的程序员是很清楚用户是不想共享自己电脑上的文件给其它人下载的,所以他在系统后面悄悄启动迅雷的两个线程,而让你不发觉.

    所以就算你不在下载,你上网也会慢得要死.硬盘不用多久就可以丢进垃圾桶里.

    3.在迅雷的客户端上,还能通过搜索,找到不同的东西下载.如搜win2003,就会搜到win2003的下载点.但这些下载点可不是在迅雷服务器上的,但这个不要面的,却通过这种方式,让迅雷的用户觉得迅雷提供了速度快的下载点.

    这种行为,我相信会得到众多的普通迅雷用户的支持.但这种盗链,严重影响到一个网站的生存.再有,每个迅雷用户也不一定同意自己每天一开电脑,就给别人上传.

    迅雷下载速度快的原因和工作原理 迅雷比其它下载工具快,是因为他是P2SP机制,说白了,就是BT的升级:

    例:当有一个用户在一个电影网站上,得到一个下载地址(A),然后用迅雷下载,这个下载地址就会收集到迅雷的服务器上.

    在地求的另一个地方又有一个用户在另一个网站上下载同一部电影,而得到另一个下载地址(B),就又会给迅雷服务器收集.

    然后迅雷服务器就会把相同文件的下载地址(A,B)集合在一起,形成一个资源.那两个用迅雷下载这两个电影的用户也算上.就会有四个下载点了.

    而又有用户在别的地方准备下载相同的电影的时候,迅雷就会在数据库里比较,找出相同的资源(其它下载点,也就是上面收集到的),提供给那个准备下载的用户下载,那这个用户就会同时有多个下载点来下载,而达到速度的提升.而这个用户当然也不可能只是享受高速的下载,他同时也会上传了他下载的那部份数据(BT原理).

    所以,当一个用户用迅雷下载时,就会连上迅雷服务器,查找资源,如果是热门的文件,迅雷就能返回大量的下载点,供这个用户下载.从而达到下载速度的提升.

  • 相关阅读:
    POJ 3261 Milk Patterns (求可重叠的k次最长重复子串)
    UVaLive 5031 Graph and Queries (Treap)
    Uva 11996 Jewel Magic (Splay)
    HYSBZ
    POJ 3580 SuperMemo (Splay 区间更新、翻转、循环右移,插入,删除,查询)
    HDU 1890 Robotic Sort (Splay 区间翻转)
    【转】ACM中java的使用
    HDU 4267 A Simple Problem with Integers (树状数组)
    POJ 1195 Mobile phones (二维树状数组)
    HDU 4417 Super Mario (树状数组/线段树)
  • 原文地址:https://www.cnblogs.com/erwin/p/1529809.html
Copyright © 2011-2022 走看看