0. P2P 对等网络

我的理解是对等网络中的主机之间不存在谁为服务器,谁为客户端的问题。彼此在网络在网络中的地位是相同的,也即互为服务器和客户机。

对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。“Peer”在英语里有“对等者、伙伴、对端”的意义。因此,从字面上,P2P 可以理解为对等计算或对等网络。国内一些媒体将P2P翻译成“点对点”或者“端对端”,学术界则统一称为对等网络(Peer-to-peer networking)或对等计算(Peer-to-peer computing),其可以定义为:网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者(Server),又是资源、服务和内容的获取者(Client)。

在 P2P 网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。通常这些资源和服务包括:信息的共享和交换、计算资源(如 CPU 计算能力共享)、存储共享(如缓存和磁盘空间的使用)、网络共享、打印机共享等。

总线型对等网络示意图:

1. BT 下载

无论是 BT 还是 PT,还是 FTP,都是一种下载方式,或者学术点的讲法,叫文件传输。

BT 是一种互联网上新兴的 P2P 传输协议(即 BT 是一种特殊的 P2P),BT 下载通过一个 P2P 下载软件(点对点下载软件)来实现,克服了传统下载方式的局限性,具有下载的人越多,文件下载速度就越快的特点。其好处是不需要资源发布者拥有高性能服务器就能迅速有效地把发布的资源传向其他的 BT 客户软件使用者,而且大多数的 BT 软件都是免费的。

1.1 传统方式

在传统下载方式中,一般是把文件由服务器端传送到客户端,例如 FTP,HTTP,PUB 等等。由于是从一台服务器下载,服务器所提供的带宽是一定的,因而下载人越多速度越慢。但是这样就出现了一个问题,随着用户的增多,对带宽的要求也随之增多,用户过多就会造成瓶颈,而且搞不好还会把服务器挂掉,所以很多的服务器会都有用户人数的限制,下载速度的限制,这样就给用户造成了诸多的不便

1.2 BT 方式

与传统下载不同,用 BT 下载反而是用户越多,下载越快,这是因为 BT 用的是一种传销的方式来达到共享的。

BT 首先在上传端把一个文件分成了 Z 个部分,甲在服务器随机下载了第 N 个部分,乙在服务器随机下载了第 M 个部分,这样甲的 BT 就会根据情况到乙的电脑上去下载乙已经下载好的 M 部分,乙的 BT 就会根据情况到甲的电脑上去下载甲已经下载好的 N 部分,这样就不但减轻了服务器端的负荷,也加快了用户方(甲乙)的下载速度,效率也提高了,更同样减少了地域之间的限制。比如说丙要连到服务器去下载的话可能才几K,但是要是到甲和乙的电脑上去下载就快得多了。所以说用的人越多,下载的人越多,大家也就越快,BT 的优越性就在这里。而且,在你下载的同时,你也在上传(别人从你的电脑上下载那个文件的某个部分),所以说在享受别人提供的下载的同时,你也在贡献。

与 BT 下载相比,普通下载原理图普通的 HTTP/FTP 下载使用 TCP/IP 协议,BitTorrent 协议是架构于 TCP/IP 协议之上的一个 P2P文件传输协议,处于 TCP/IP 结构的应用层。BitTorrent 协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中。根据 BitTorrent 协议,文件发布者发布的文件生成提供一个 .torrent 文件,即种子文件,简称为“种子”。

torrent 文件本质上是文本文件,包含:

  • Tracker 信息, BT 下载中需要用到的 Tracker 服务器的地址和针对Tracker 服务器的设置
  • 文件信息两部分。

文件信息是根据对目标文件的计算生成的,计算结果根据 BitTorrent 协议内的 B 编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和 Hash 验证码写入.torrent文件中;所以,.torrent文件就是被下载文件的“索引”。下载者要下载文件内容,需要先得到相应的.torrent文件,然后使用 BT 客户端软件进行下载。

BT 客户软软件:

  • uTorrent(Windows):现在uTorrent由BitTorrent公司所有(不要和BT协议混淆)。
  • Deluge(所有平台):跨平台 uTorrent
  • Transmission(Mac OS X/*nix)

下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供给下载者其他下载者(包括发布者)的 IP。下载者再连接其他下载者,根据 .torrent 文件,两者分别告知对方自己已经有的块,然后交换彼此的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。

下载者每得到一个块,需要算出下载块的 Hash 验证码与 .torrent 文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。

而有些人下载完成后关掉下载任务,提供较少量数据给其他用户,为尽量避免这种行为,在非官方BitTorrent协议中存在超级种子的算法。这种算法允许文件发布者分几步发布文件,发布者不需要一次提供文件所有内容,而是慢慢开放的下载内容的比例,延长下载时间。此时,速度快的人由于未下载完必须提供给他人数据,速度慢的人有更多机会得到数据。由此往往造成用户卡在任务的99%,下载1G的任务要上传3G之多。

2. PT 下载

PT(Private Tracker)下载其实是原理类似 BT(BitTorrent,比特流) 下载的一种,但有两个明显的改进:

  • 一是私密的小范围下载;
  • 二是进行流量统计,根据下载量决定你的权限。

P2P(对等网络)、 PT 下载与 BT 下载相关推荐

  1. 基本概念学习(7000)--P2P对等网络

    对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构[1] ,是对等计算模型在应用层形成的一种组网或网络形式."Peer"在英语里有&quo ...

  2. P2P对等网络技术原理整合

    P2P(Peer to Peer)对等网络 P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式.在C/S模式中,数据的分发 ...

  3. 网络下载方式 bt pt 简介

    目录 HTTP下载 FTP下载 BT下载 PT下载 网络资源下载方式有HTTP下载.FTP下载.BT下载和PT下载等.其中 HTTP和FTP下载方式都是从服务器上下载,同一时间下载的人数越多,下载速度 ...

  4. 用python实现bt下载_Python边学边用--BT客户端实现之(一)BitTorrent文件解析

    原博文 2012-09-29 23:17 − BitTorrent文件解析: BitTorrent文件使用bencode编码,其中包括了4种数据类型: 'd' 开头表示是dict类型,'e'表示结束 ...

  5. 搭建自己的BT下载平台服务器

    [原理基础] BT(Bit Torren比特流)是由国外的一名叫Bram Cohen的程序员开发的下载软件,可以说它是目前网络是非常流行的一个多点下载的P2P软件,它最显著的特点就是:下载的人越多,速 ...

  6. 计算机对等网络,什么是对等网络p2p?

    对等网络,简称P2P,是指使用分布式体系结构的计算机网络.在P2P网络中,属于它们的所有计算机和设备都称为对等设备,它们共享和交换工作负载.对等网络中的每个对等方都等于其他对等方.网络中没有特权对等体 ...

  7. BitComet for Mac(高效好用的BT下载客户端)

    BitComet for Ma一款支持多任务下载的BT下载工具.Bitcomet mac版具有高效的网络内核,即使同时下载多个文件也只占用很少的CPU内存,bitcomet macos还可以对一个bt ...

  8. 使用ISA Server 2004限制BT下载

    使用ISA Server 2004限制BT下载 BT下载作为当前一种流行的下载方式,受到很多人的喜欢.但是在 企业网络环境中,BT下载却经常让网络管理员头痛.下面我谈谈如何通过ISA Server 2 ...

  9. ISA2006禁止BT下载方法

    BT下载作为当前一种流行的下载方式,受到很多人的喜欢.但是在公司网络环境中,BT下载却经常让网络管理员头痛.下面我从ISA2004的角度谈论一下限制bt的方法. 首要原则:尽量只在ISA上开放需要的端 ...

  10. P2P下载技术-BT协议与Magnet磁力链接

    P2P下载技术-BT协议与Magnet磁力链接 前言 传统C/S服务器-客户端文件下载 FTP下载 HTTP下载 C/S下载模式缺点 P2P下载 最早的P2P下载应用-Napster BT-BitTo ...

最新文章

  1. 打印数组算法:堆栈与深度优先搜索(迷宫问题)
  2. 【Python】透视表、统计表、汇总表、报表
  3. 数据中心级交换机考核方法
  4. Oracle 原理:逻辑备份和恢复
  5. 注入游戏没有焦点_《热血传奇怀旧版》即将登陆咪咕快游 盛趣游戏端游上云再落一子...
  6. 洛谷P4742(tarjan缩点+拓扑DP)
  7. 前端特效demo | 值得收藏的6个 HTML5 Canvas 实用案例 1
  8. 什么是树(Tree),数据结构中一般有哪些树?
  9. echarts中x轴文件消失_实测实例:labview中波形图X轴刻度任意刻度设置
  10. Java编程解密-Dubbo负载均衡与集群容错机制
  11. python字典长度可变吗_[python] 根据字典中的信息生成列表,每次都会额外变长。...
  12. win10找不到oracle修正,简单解决 WIN10更新后 远程桌面提示 CredSSP加密Oracle修正的问题...
  13. 计算机机械硬盘寿命,机械硬盘的寿命
  14. 人事工作中的Python运用——离职证明生成器
  15. 微信CRM六大模块详解
  16. 《Java编程思想》读书笔记分享
  17. 刷题、OJ 1337: 运动员分组
  18. 人脸识别,验证,登录开发 (三)
  19. 【Daily Games——开发篇】:类QQ飞车商城的试衣间模块
  20. gtm - ebooks

热门文章

  1. 演化博弈及Python实现
  2. 小程序推广引导下载app的解决办法
  3. matlab处理波动的数据,波动数据时间序列的分析与处理
  4. dtw算法 c语言实现,DTW算法的python实现
  5. 华为交换机做qos案例_华为交换机 01-08 QoS
  6. Android 版本检测更新
  7. matlab统计车流量及车流密度,基于视频的车流量统计——matlab代码
  8. 前端缓存之HTTP缓存(二)
  9. java properties native2ascii_使用native2ascii针对中文乱码,进行转码操作,用于native2ascii处理properties文件...
  10. native2ascii的使用