笔记一下学习网路五层#2.6

Peer-to-Peer Applications

探讨适合用于P2P设计的application,主要分于两部分,第一部分为file distribution,介绍档案如何从单一来源分配至多数的peers,这部分清楚的展示了P2P架构的 self-scalability,主要透过BitTorrent system为範例。第二部分则会探讨 database distributed over a large community of peers

P2P File Distribution

每个peer都可以提供自己的capacity来帮助server distribute 档案,不同于client-server的模式,在分配档案时,server不需要copy每一份档案给peers,反之,只要其中一个peer拥有档案之后便可以透过此peer重新再分配档案到其他peers。放一张比较图

BitTorrent

Torrent在此的定义为,所有参与同一档案distribution的peers的集合,每个于此Torrent的peer都会下载同样容量的chunks,通常为256KBytes为一个chunk,当peer首次加入torrent并无任何chunk,随着时间他会存入越来越多chunk,下载的同时也成为upload的来源之一,但档案完成后可以选择继续留着torrent当为upload source之一继续提供流量或者就离开torrent。

每一个torrent会拥有基本的node called tracker,当peer加入torrent时,会把自己注册进tracker里面并固定一小段时间通知tracker我还在torrent里面。当一个新的peer加入时,tracker会随机挑出一个peers子集合以及这群子集合的IP address丢给新的peer,拥有这些资讯后,新的peer便能与这群子集合建立TCP connection,通常这样的子集合群称为neighboring peers,建立TCP连结后便能从这群peers里面获取需要的chunks。

rarest first 决定取得chunck採用的技术之一,会从使用者当前没有的chunks里面去判断,这些尚未拥有的chunck哪些是在neiboring peers重複性最低的,优先抓取此chunk。目标在于让此rarest chunk更快的能在torrent里面拥有与其他chunks一样多的copies。

在BitTorrent协定中,主要根据peers内拥有最高的传输速率作为respond的判断依据,也就是说,每十秒使用者会侦测接受到的rate以及upload rate,这个符合最高速率的set称为unchoked,而每三十秒会随机抓取一个额外的neighboring peer传送chunck,此额外的peer称为optimistically unchoked,若此peer正好速率高过于unchoked的其中一个,则此会替代成为unchoked之一,相对来说,若互相都满足彼此的highest rate,则互为unchoked之一。

其他neighboring peer则称为choked也就是不再top four peers(unchoked) and one probing peer(optimistically unchoked里面,choked并不会接受从使用者接收到chunks。

Distributed Hash Tables(DHTs)

P2P系统里,每一个peer会存取一小部分的key-value pairs,每一个peer都可以发出query到distributed database获取对应的value,收到query后database作抓取拥有此key值value的peer并回传给发出query之peer,任何一个peer都准许插入新的 key-value paris到database里面,这样的设计称为 distributed hash table


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章