计网必会:P2P体系结构,BitTorrent,DHT,分布式散列表

文章目录

      • P2P
    • P2P的应用
    • P2P文件分发
      • 扩展性
      • 分发文件过程
      • BitTorrent协议
        • 下载原理
        • 下载特点
      • 分布式散列表
        • 发展背景

P2P

对等式网络(peer-to-peer, 简称P2P),又称点对点技术,是无中心服务器、依靠用户群(peers)交换信息的互联网体系,他的作用在于,减低以往网络传输中的节点,以降低数据丢失的风险。

P2P的应用

  • 文件分发系统
  • 分布式散列表
    (1)集中式对等网络(Napster、QQ)

集中式对等网络基于中央目录服务器,为网络中各节目提供目录查询服务,传输内容无需再经过中央服务器。这种网络,结构比较简单,中央服务器的负担大大降低。但由于仍存在中央节点,容易形成传输瓶颈,扩展性也比较差,不适合大型网络。但由于目录集中管理,对于小型网络的管理和控制上倒是一种可选择方案。
(2)无结构分布式网络(Gnutella)

无结构分布式网络与集中式的最显著区别在于,它没有中央服务器,所有结点通过与相邻节点间的通信,接入整个网络。在无结构的网络中,节点采用一种查询包的机制来搜索需要的资源。具体的方式为,某节点将包含查询内容的查询包发送到与之相邻的节点,该查询包以扩散的方式在网络中蔓延,由于这样的方式如果不加节制,会造成消息泛滥,因此一般会设置一个适当的生存时间(TTL),在查询的过程中递减,当TTL值为0时,将不再继续发送。

这种无结构的方式,组织方式比较松散,节点的加入与离开比较自由,当查询热门内容时,很容易就能找到,但如果需求的内容比较冷门,较小的TTL不容易找到,而较大的TTL值又容易引起较大的查询流量,尤其当网络范围扩展到一定规模时,即使限制的TTL值较小,仍然会引起流量的剧增。但当网络中存在一些拥有丰富资源的所谓的类服务器节点时,可显著提高查询的效率。

(3)结构化分布式网络(第三代P2P Pastry、Tapestry、Chord、CAN)

 结构化分布式网络,是近几年基于分布式哈希表(Distributed Hash Table)技术的研究成果。它的基本思想是将网络中所有的资源整理成一张巨大的表,表内包含资源的关键字和所存放结点的地址,然后将这张表分割后分别存储到网络中的每一结点中去。当用户在网络中搜索相应的资源时,它将能发现存储与关键词对应的哈希表内容所存放的结点,在该结点中存储了包含所需资源的结点地址,然后发起搜索的结点根据这些地址信息,与对应结点连接并传输资源。这是一种技术上比较先进的对等网络,它具有高度结构化,高可扩展性,结点的加入与离开比较自由。这种方式适合比较大型的网络。

P2P文件分发

在P2P文件中每个对等放能够重新分发它所有的该文件的任何部分,从而在分发过程中协助该服务器。例如BitTorrent

扩展性

本质上来说,P2P系统的对等方能够为服务器来分发文件,当一个对等方收到文件时,能够使用自己的上载能力去重新把数据分给其他人。

分发文件过程

  • 只有服务器具备文件资源时候们为了让对等方得到这些文件,服务器必须经其接入链路至少发送该文件的每个bit一次。
  • 具有最低下载速率的对等方不能以小于 F / d m i n i F/d_{mini} F/dmini秒的分发时间获得所有F比特。因此最小分发时间至少为 F / d m i n F/d_{min} F/dmin
  • 观察到系统整体的总上载能力等于服务器的上载速率加上每个单独的对等方的上载速率,即 u t o t a l = u s + u 1 + u 2 + . . . + u N u_{total}=u_s+u_1+u_2+...+u_N utotal=us+u1+u2+...+uN。系统必须向这 N N N个对等方的每个交付方的上载速率,即 u t o t a l = u s + u 1 + u 2 + . . . + u N u_{total}=u_s+u_1+u_2+...+u_N utotal=us+u1+u2+...+uN.系统必须向这N个对等方的每个交付F比特,因此总共交付NF比特。

BitTorrent协议

下载原理

  1. 种子文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(虚拟逻辑上的分块),并把每个块的索引信息和Hash验证码写入种子文件中;所以,种子文件就是被下载文件的“索引”。
  2. 下载时,BT客户端首先解析种子文件得到Tracker地址,然后连接Tracker(追踪器)服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据种子文件,两者分别告知对方自己已经有的块,然后交换对方所没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。
  3. 下载者每得到一个块,需要算出下载块的Hash验证码与种子文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。
  4. 为了解决某些用户“下完就跑”的现象,一些种子发布站(PT站)有奖惩机制,上传即加分,下载即扣分。

下载特点

  1. 越多人下越快
  2. 稀缺优先机制:最稀缺的块优先得到分发

分布式散列表

发展背景

研究分布式散列表的主要动机是为了开发点对点系统,这些系统使用不同的方法来解决如何找到拥有某数据的节点的问题。DHT是解决这种问题的一个方法。
(1)DHT结构

分布式哈希表(DHT)[1]是一种功能强大的工具,它的提出引起了学术界一股研究DHT的热潮。虽然DHT具有各种各样的实现方式,但是具有共同的特征,即都是一个环行拓扑结构,在这个结构里每个节点具有一个唯一的节点标识(ID),节点ID是一个128位的哈希值。每个节点都在路由表里保存了其他前驱、后继节点的ID。如图1(a)所示。通过这些路由信息,可以方便地找到其他节点。这种结构多用于文件共享和作为底层结构用于流媒体传输[2]。
(2)树形结构
P2P网络树形结构如图1(b)所示。在这种结构中,所有的节点都被组织在一棵树中,树根只有子节点,树叶只有父节点,其他节点既有子节点也有父节点。信息的流向沿着树枝流动。最初的树形结构多用于P2P流媒体直播[3-4]。
(3)网状结构

网状结构如图1©所示,又叫无结构。顾名思义,这种结构中,所有的节点无规则地连在一起,没有稳定的关系,没有父子关系。网状结构[5]为P2P提供了最大的容忍性、动态适应性,在流媒体直播和点播应用中取得了极大的成功。当网络变得很大时,常常会引入超级节点的概念,超级节点可以和任何一种以上结构结合起来组成新的结构,如KaZaA[6]。

你可能感兴趣的:(计算机网络巅峰之路(自顶而下),p2p,网络,分布式)