P2P system: Napster

Napster structure

client machines之所以叫peers是因为对于server来说这些machines是平等对待的

当你upload一首歌曲如PennyLane.mp3时,它不会上传到别的地方而是存在你的machine(运行了napster client的machine)里面

Servers是由Napster.com运行的,这些servers保存的是目录信息(file pointers和peer pointers)

当Napster client运行时,它先连接napster servers(如上张图片所示的server与client之间的直线),然后client upload a list files it wants shares.

然后server保存list of tuples(如上图所示),server不保存文件。

Napster的一些操作

client将它需要查找的keyword发送给所连接的server,然后a group of server talk with each other查找它们的目录信息list,找到所有符合的pairs,然后将这些pairs发送给那个client, client接收到list,ping each of the hosts in the list来查找这些host传输文件的带宽.当你点击其中的一个item时,client开始fetch the file from the peer.

Servers在这里面所起的作用不是传输文件,而是查找文件的location.

message使用的是TCP协议(一种可靠的传输协议)

Napster Search

Peers是如何加入P2P system的?它们怎么知道应该contact哪个server

Servers都有IP addresses,这些servers的IP地址可能会发生改变,所以你想要一个well-known URL(如对于napster来说是napster.com).当一个client start up,它给这个URL发送一个DNS(domain name system) 查询,返回一个IP地址(a Napster server),然后这个peer开始与这个特定的napster server对话。

在其它的一些P2P system中,DNS可能返回a well-known server(这个server维护着一些最近加入的peers的IP地址),或者返回已经在system中的一个peer的ip address

DNS是一种很好的introduced方式,告诉新加入的peer一些最近加入的peers的信息或者已经在system中的peers的信息,这样这个新加入的peer就可以使用它们来建立neighbor list

这个技术不仅仅用在Napster中用于新加入的peer来know about一个或多个servers;还用在后来的Gnutella system,用于新加入的peer来know about一些已经在系统中的peers.

一些问题

centralized of congestion:如果servers are overload with queries即使它们并不传输文件,但这些queries 却overwhelm它们,然后整个系统会变慢,查询也变慢

centralized of failure:如果一台或几台server挂掉的话,整个系统将受到牵连

No security:最初版本的Napster并没有security

以上的这些原因不是Napster bring down的原因,它真正bring down的原因是法院(版权问题),napster帮助users indirectly侵犯版权(indirectly infringement)。napster落没了,Gnutella发展起来,并且解决了一些上面的problems

时间: 2024-08-03 14:08:15

P2P system: Napster的相关文章

P2P system: GNUTELLA

P2P system: GNUTELLA GNUTELLA是第一个经论证的分布式的peer-to-peer system. Napster的一个重大问题是涉及到间接侵权,所以GNUTELLA消除the servers altogether然后使用client来search and retrieve,所以client也充当了servers,所以Gnutella的client也叫做servents(由server和client拼接而成) neighbors意味着这个peer知道它们的IP地址与por

P2P system: FastTrack and BitTorrent

FastTrack FastTrack来源于Gnutella,是Gnutella 和 Napster的杂交体 有些node承担了更重要的责任,这些nodes称为supernodes,因为这些改进,它比Gnutella更快 除了有几个supernodes之外,它与Gnutella overlay长得很像.这些supernodes承担了一些责任,这些责任与Napster的server存储derectory information类似. peers不能自己选择做supernode,peers被选择做s

P2P system:How Chord tackles failures

若有peer failures 怎么办 接上面的例子,如果N32 fail掉了,但是N80的finger table还没有更新,这样query到了N16,它找不到N32,只有N80,这样query就会丢失掉. 解决的方法是,保存r个successor而不是只一个successor,r 是一个系统可以配置的值. 那么r究竟为多大呢?这样如果有很多错误的话,query仍然可以正确到达 r=2log(N). w.h.p. = with high probability 如果node里面保存的file

Chord算法(原理)

Chrod算法是P2P中的四大算法之一,是有MIT(麻省理工学院)于2001年提出,其他三大算法分别是: CAN Pastry Tapestry Chord的目的是提供一种能在P2P网络快速定位资源的的算法,Cord并不关心资源是如何存储的,只是从算法层面研究资源的取得,因此Chord的API就简单到只有一个set.get. 1.Chord是什么? Chord是一个算法,也是一个协议.作为一个算法,Chord可以从数学的角度严格证明其正确性和收敛性:作为一个协议,Chord详细定义了每个环节的消

Smart internet of things services

A method and apparatus enable Internet of Things (IoT) services based on a SMART IoT architecture by integrating connectivity, content, cognition, context, cloud, and collaboration. Joint optimization of a combination of any of connectivity, content,

2-Application Layer

Please indicate the source: http://blog.csdn.net/gaoxiangnumber1 Welcome to my github: https://github.com/gaoxiangnumber1 2.1 Principles of Network Applications 2.1.1 Network Application Architectures Application's architecture is different from the

poj 3836 P2P File Sharing System

这题是一个模拟p2p的网络的一个题目.题意比较繁琐,只要看懂课,细心一点就很好AC了.直接上代码了,存模拟. #include<stdio.h> #include<string.h> #include<iostream> #include<string> #include<queue> #include<cmath> #include<map> #include<algorithm> #include<v

分布式系统阅读笔记(十)-----P2P对等网络系统

一.介绍 P2P系统全称是peer-To-peer System,就是对等系统的意思.他的出现使得资源可以在所有的节点间进行数据的共享了,前提是只要他是连上网络的.在P2P系统中,所有的资源和数据对象都分布于各个节点中. 1.P2P系统可以用在一些分布式的应用和服务当中. 2.在P2P中一个好的资源存放算法就显得非常重要. 3.正是因为上面的第2条原因,出现了P2P的中间件,目的就是为了location定位资源对象或者是副本容错的处理,每个资源以GUID的形式来区别标识别. 二.例子:Napst

P2P综述

原文参见:http://www.lotushy.com/?p=113 [TOC] 什么是P2P P2P全称是Peer-to-peer.P2P计算或P2P网络是一种分布式应用架构.它将任务或负载分发给Peers.在应用中,Peers是平等的.对等的参与者. 从资源角度来讲,Peers将它们拥有的资源如cpu.存储.网络带宽等直接分享给其它参与者们.所以,Peers即是资源的提供者也是资源的消费者.而在Client-Server架构中,资源消费和资源供给是分离开的.新兴的协作式P2P系统超越了Pee