P2P - LIDeCC
Download
Report
Transcript P2P - LIDeCC
(Discovering) Peer-to-Peer
Javier Echaiz
Ana Maguitman
Definición
• Un sistema peer-to-peer (p2p) es un
sistema distribuido sin ningún control
centralizado y donde la funcionalidad
de cada nodo es idéntico.
“Single servants are less powerful than a single server
but the collective of many servants is more powerful
than any single server” – by Daniel Stephen Rule
Definiciones
Preocupación sobre la red
Definiciones P2P
Preocupación sobre la aplicación
Definiciones
Redes completamente descentralizadas con estructuras
no-jerárquicas y comunicación simétrica - Stoica et al.
Preocupación sobre la red
Definiciones P2P
Preocupación sobre la aplicación
Definiciones
Los sistemas P2P acentúan la cooperación entre entidades
(conocidas como Peers) que son esencialmente iguales y que se
proporcionan servicios entre ellas. P2P acentúa la descentralización,
la resistencia y la explotación de recursos de la red - Coulson.
Preocupación sobre la red
Definiciones P2P
Preocupación sobre la aplicación
Definiciones
Elementos relacionados que se aprovechan de los recursos
disponibles de la red - Shirky
Preocupación sobre la red
Definiciones P2P
Preocupación sobre la aplicación
Introducción
Peer-To-Peer (P2P): Compartición de
recursos informáticos e información mediante
intercambio directo.
La comunicación es simétrica.
Los equipos actúan como iguales (peers).
Los peers cumple a la vez el papel de cliente
y servidor.
Alternativa a la arquitectura cliente/servidor.
Modelo cliente/servidor
Modelo cliente/servidor
Modelo cliente/servidor: Un servidor ofrece servicio a
muchas máquinas cliente.
Gran extensión en las aplicaciones Internet: FTP, www,
correo electrónico.
Ventajas:
Casi toda el procesamiento se realiza en el servidor.
Clientes muy simples. Clientes pasivos.
Inconvenientes:
Conforme el número de clientes crece, la carga y la demanda de
ancho de banda del servidor se incrementa impidiendo a este
servir más peticiones.
Direcciones IP dinámicas: impiden ofrecer servicios a otros
usuarios.
Redes privadas: los sistemas de seguridad (firewalls, NAT)
impiden las conexiones externas.
Peer-To-Peer
Cualquier equipo puede ofrecer un servicio a
otro.
Organización totalmente distribuida:
No dependen de un servidor centralizado para
ofrecer acceso a los servicios.
Funcionan de forma independiente al sistema
de nombrado de dominio (DNS).
Distribuyen la responsabilidad de ofrecer
servicios entre todos los peers de la red:
Elimina las indisponibilidades de servicios debidas a
caídas de los servidores.
Mejora la escalabilidad.
Peer-To-Peer
Ventajas:
Escalabilidad.
Agregación de información.
Disponibilidad.
Tolerancia a fallos.
Inconvenientes:
Redundancia.
Las peticiones de servicio no son deterministas:
Dos clientes que soliciten el mismo recurso pueden conectarse con
máquinas completamente diferentes, a través de rutas diferentes, y
posiblemente con resultados diferentes.
Los servicios no siempre están disponibles.
Posibles soluciones:
Acceso redundante a los recursos:
El servicio está disponible mientras exista un peer conectado.
Peer-To-Peer
Elementos de P2P. Peers.
Peer: Cualquier entidad capaz de realizar una tarea
útil y comunicar el resultado de dicha tarea a otra
entidad de la red, bien directa o indirectamente.
Puede desde ser una aplicación en una sola
máquina, una aplicación distribuida en varias
máquinas o cualquier dispositivo.
Tipos de peers:
Peers simples: Sirven a un solo usuario final, permitiendo a
este usuario ofrecer y utilizar servicios de otros peers.
Peers rendezvous: Permite descubrir a otros peers o
recursos. Responden directamente o propagan la consulta.
Peers enrutadores: Permite la comunicación entre peers
que no tienen conectividad física directa (firewalls, NAT’s).
Elementos de P2P. Peer
groups.
Peer group: Conjunto de peers que comparten un
interés u objetivo común definido por todos los
miembros del grupo.
Objetivos de los peer groups:
Crear entornos seguros.
Crear entornos limitados.
Establecer políticas de seguridad (login/password, PKI, etc).
Publicar contenidos protegidos de acceso restringido.
Crear dominios de especialización (divisiones lógicas).
Limitar las búsquedas de recursos.
Crear entornos de monitorización.
Monitorizar el estado de un grupo de equipos.
Elementos de P2P. Transporte de
red.
Transporte de red: Capa de procesamiento
responsable de la transmisión de los datos.
Puede ser un protocolo de bajo nivel, como UDP o
TCP, o un protocolo de alto nivel, como HTTP o
SMTP.
Puede dividirse en tres componentes:
Extremos: El origen inicial o destino final de cualquier
fragmento de datos transmitido en la red. Un extremo
corresponde a las interfaces de red utilizadas para enviar y
recibir datos.
Tuberías: Canales virtuales de comunicación asíncronos y
unidireccionales que conectan uno o más extremos.
Mensajes: Contenedores de datos transmitidos a través de
una tubería desde un extremo a otro.
Elementos de P2P. Servicios.
Servicios: funciones y capacidades que los peers
ofrecen al resto de la red.
Permiten a los dispositivos el acceso a los recursos.
Pueden dividirse en dos categorías:
Servicios de peer.
Funciones que ofrece un peer determinado de la red a otros
peers.
Las capacidades de este servicio son propias del peer y sólo
estarán disponibles mientras se encuentre conectado a la red.
Servicios de peer group.
Funciones que ofrece un peer group a sus miembros.
Pueden ser suministrados por varios miembros: acceso
redundante. El servicio se encuentra disponible mientras exista
algún miembro del peer group conectado.
Elementos de P2P. Anuncios.
Anuncio: Representación estructurada
de una entidad, servicio o recurso
publicado por un peer o un peer group
como parte de una red P2P.
Todo recurso se identifica mediante
anuncios:
Peers, peer groups, tuberías, extremos,
servicios y contenidos.
Elementos de P2P.
Protocolos.
Protocolo: Método de estructurar el intercambio de
información entre dos o más participantes mediante
reglas previamente acordadas por todas la partes.
En P2P, se definen protocolos para:
Encontrar peers en la red.
Averiguar los servicios ofrecidos por un peer.
Obtener información de estado de un peer.
Invocar un servicio de un peer.
Crear, unirse o dejar un peer group.
Crear conexiones con otros peers.
Enviar mensajes de ruteo a otros peers.
La definición de los protocolos se reduce a la
definición del intercambio de anuncios
correspondiente.
Elementos de P2P.
Nombrado.
Todo recurso debe identificarse de
forma única:
Peers, peer groups, tuberías, contenidos.
Una red P2P pura debe utilizar un
esquema de nombrado independiente
del transporte de red y del sistema
operativo.
Independiente de la localización.
P2P. Mecanismos de
descubrimiento
Descubrimiento: Proceso de localización de los
recursos de la red.
El descubrimiento de recursos consiste en la
búsqueda de los anuncios correspondientes.
Tipos de descubrimiento:
Pasivo: Mantener en una caché los anuncios descubiertos
anteriormente en la que buscarán la información de los
recursos de la red.
Directo: Utiliza los mecanismos de broadcast o multicast
para encontrar peers en la misma LAN.
Indirecto: Se consulta a peers intermediarios (rendezvous)
sobre los anuncios.
P2P. Mecanismos de
descubrimiento
Descubrimiento pasivo
P2P. Mecanismos de
descubrimiento
Descubrimiento directo
P2P. Mecanismos de
descubrimiento
Descubrimiento indirecto
P2P. Retos para la
comunicación
Los firewalls y NAT presentes en las redes
corporativas representan un serio obstáculo para la
comunicación P2P.
Firewalls: Son utilizados para proteger las redes
privadas contra conexiones no autorizadas
provenientes del exterior o del interior de la red.
Utilizan filtrado de IP’s y protocolos.
Bloquean conexiones entrantes:
Un peer externo no puede conectarse a uno interno.
Los peers internos suelen estar restringidos a utilizar
sólo ciertos protocolos: SMTP, HTTP.
P2P. Retos para la
comunicación
P2P. Retos para la
comunicación
Network Address Translation: Técnica utilizada
para mapear un conjunto de direcciones IP privadas
dentro de una red interna a un conjunto de
direcciones IP externas de una red pública.
Se utilizan por muchas razones:
Elimina la necesidad de una dirección IP pública para cada
equipo dentro de una red privada.
Permite proteger la red al existir un único punto de entrada.
Sólo autoriza las conexiones entrantes que fueron
originadas dentro de la red.
P2P. Retos para la
comunicación
P2P. Retos para la
comunicación
Solución:
La única herramienta de que disponen
los peers para atravesar firewalls/NAT
es su capacidad para crear conexiones
de salida hacia los equipos externos.
Se pueden usar protocolos permitidos
por el firewall para realizar mediante
túnel conexiones al exterior.
P2P. Retos para la
comunicación
Aplicaciones P2P.
Compartición de ficheros: Kazaa,
eMule, etc.
Monitoreo de datos.
Mensajería instantánea: ICQ.
Búsqueda en la web. Motores de
búsqueda.
Computación distribuida.
Propiedades de P2P
No existe un control central=> Sistema distribuido
No existe jerarquía
Todos los nodos son a clientes y servidores
La comunicación entre nodos es simétrica
No existe una visión global
Escalabilidad
Disponibilidad para cualquier peer
Los peers son autónomos
Sistema globalmente poco fiable
Aspectos de robustez y seguridad
Avances
Que ha permitido llegar hasta este punto?
Historia / Evolución
(Computación)
Computación y
Comunicación Ubicua
Cultura / Sociedad
(Servicios / Intercambio
de ficheros)
Gran extensión de
conexión a Internet
Comunicación
/ Colaboración
Comunicaciones de
banda ancha, Wireless,
nuevos tipos de Redes.
Arquitectura
Algoritmos
Que posibilidades ofrece?
Aprovechar la potencia del
ordenador en casa y la
oficina
Intercambio usuariousuario, minimiza los
vínculos con intermediarios
Comunicaciones y
colaboración
Incremento en la
descentralización de Internet
Gran escalabilidad, mejor
accesibilidad
Estados descentralizados
Mejoras en la escalabilidad,
disponibilidad y anonimato
Cliente servidor vs. P2P
Cliente/servidor
P2P
Tráfico de red
Asimétrico, tráfico de Simétrico.
subida bajo aceptable.
Contenido
Centralizado en el
servidor.
Distribuido entre los
peers.
Direccionamiento
Estático, utilizando
DNS, NAT, puertos
bien conocidos (80).
Dinámico, registros en
tiempo real.
Tratamiento de
NAT/firewall.
Rendimiento
Decrece con el
número de usuarios.
Aumenta con el
número de usuarios.
Distribución de contenido en
P2P
Beneficios:
Mejora dramáticamente la velocidad => Escalable
Servidores con pocos requerimientos => Barato
Desafíos:
Requiere incentivos para la cooperación
Seguridad
Manejabilidad
Variabilidad en los anchos de banda
Necesidad de algoritmos distribuidos
Some more Intro Slides
By Charles Greenwald
P2P (peer-to-peer) …
is a hot new thing on the internet,
but what exactly is it?
Is P2P a topology, a technology, a
computing model, an ideology, or a way
of life?
We’ll talk about
definitions of P2P
implementations of P2P
unintended consequences of P2P
We'll also talk about what to listen
for when you hear P2P talk and about
what you should expect to hear.
Topologies - I
server
terminal
Topologies - II
email (1971)
Z39.50 (1988)
WAIS (1991)
gopher (1993)
early AIM
server
server
terminal
terminal
Topologies - III
Quake (1996)
AIM (1999)
Napster
server
ISP
ISP
client/
server
client/
server
Topologies - IV
Doom (1993)
Gnutella (2000)
ISP
ISP
client/
server
client/
server
Definition I - topology
"A type of network in which each
workstation has equivalent
capabilities and responsibilities. This
differs from client/server
architectures, in which some
computers are dedicated to serving
the others.
Webopedia
Definition II - technology
“This literal approach to peer-to-peer is plainly
not helping us understand what makes P2P
important”. “If you're looking for a litmus test
for P2P, this is it:
1) Does it treat variable connectivity and
temporary network addresses as the norm, and
2) does it give the nodes at the edges of the
network significant autonomy?”
Clay Shirky at O’Reilly
“… a central server helps make the
connection.” (Forrester)
directory (used to find people)
AOL Instant Messenger
ICQ
index (used to find data)
Napster
(distinction after GartnerGroup)
… or not.
When you log onto the Gnutella network, you are sort of
wading into a sea of people. People as far as the eye can see.
And further, but they disappear over the horizon. So that's
the analogy. When you log on, you see the host counter start
going crazy. That's because everyone in your horizon is
saying "Hello" to you. After a while, it stops counting so
rapidly, because you've counted most everyone in your
horizon. Over time the people in the horizon change, so you'll
see the counter move slowly. If you log in another day, you
should see a whole bunch of fresh faces, and maybe you'll
have waded into a different part of the network. A
different part of the crowd. Different information.
What is Gnutella?
Definition III - computing
model
“The potential of tapping into the
unused computer resources sitting
around on everyone's desk at home
and in the office ... to link individual
PCs into a virtual supercomputer and
harness vast unused processing
resources.”
Definition IV - ideology
“Freenet protects freedom of speech by enabling anonymous and
uncensorable publication of material ranging from grassroots
alternative journalism to banned exposes like Peter Wright's and
David Shayler's revelations about MI5.” Ian Clark (Freenet)
"I worry about my child and the Internet all the time, even though
she's too young to have logged on yet. Here's what I worry about. I
worry that 10 or 15 years from now, she will come to me and say
'Daddy, where were you when they took freedom of the press away
from the Internet?'" Mike Godwin (EFF)
“we need many-to-many media like the Internet, with no central
control allowing dictators or corporations to put us all in danger and
to throw us back into the Dark Ages … we must fight vigorously
against any and all attempts to restrict information freedom on the
Net and elsewhere” infoAnarchy.org mission statement
Definition V - way of life
P2P is really person to person
eBay - person to person sales
PayPal - person to person payments
NeetMeeting and AIM- person to person
conversation
Napster - person to person file transfer
the land of unintended
consequences
the tragedy of the commons
“almost 70% of Gnutella users share no files, and
nearly 50% of all responses are returned by the
top 1% of sharing hosts. ... free riding is
distributed evenly between domains, so that no
one group contributes significantly more than
others, ... peers that volunteer to share files are
not necessarily those who have desirable ones. …
free riding leads to degradation of the system
performance and adds vulnerability to the system.
Free Riding on Gnutella by Eytan Adar and Bernardo A. Huberman
“YAPUKA”
This whole area is reminiscent of, say, nuclear power, or
electronic voting, or anything based on Social Security
numbers: the technocrats (who do not necessarily have any
technical background, even if they are in the private sector)
come up with some great scheme that "simply" relies on
nobody ever, ever screwing up. (Since most technocrats
have never actually done a real job in their lives, they have
probably never screwed up either.) This attitude is known in
French as "yapuka", short for “il n'y a plus qu'a…”, or “it's
easy, all you have to do is…”. Nick Brown, Risks Digest 21.34
reciprocity
“a given file could be hosted (and
copies and redundancies built-in) by
10, 200, or 10,000 individual
computers, eliminating the need to
concentrate spending on backup
equipment or on bandwidth or on a
central location” Nicholas Mercader
reliability
Downloads that fail show the problem with
Mojo's "Swarm Distribution" method: If a
chunk of a file is no longer available on any
server, you can't get the file. Since the
nature of any P2P network is very dynamic,
with hosts connecting and disconnecting all
the time, this is a major problem.
InfoAnarchy.org review
cheating
"Fifty percent of the project's resources have
been spent dealing with security problems,”
“the Seti@home software has been hacked ... to
make it run faster, to spoof positive results and to
make it look more work had been performed to
improve leader board rankings”
“If people are spoofing Seti@home to enhance
their self esteem, what are the chances they will
cheat distributed computing projects that pay
them for taking part?”
David Anderson (SETI@home director)
getting what you ask for
“ShareZilla intercepts every Gnutella
search that comes across its network
horizon and re-transmits an ad back
to the person originating the
request.”
open source, no central control, resists
censorship ...
the salesman always comes
“When you use Napster's servers to allow
fellow music lovers access to your MP3
collection, you're also allowing online
marketers to peek inside your hard drives
to determine your musical tastes -- and to
infer from those tastes your interests in a
wealth of other products they might want
to sell you.”
tanstaafl
Because it is peer-to-peer, Hotline does
away with the Internet service provider or
central server and provides a direct link
between individual computers. The result is
a faster, more-efficient exchange of files.
P2P also makes it possible to send large
files -- pictures or videos -- without having
to worry about whether or not the server
will accept a file of such size. Marjo Johne
the garage sale
That data which you have bothered to
keep on your hard disk is what you
found to be valuable. So when you
share it you are sharing what is most
valuable on the entire Internet. -What is Gnutella
the Edsel: what would you
pay?
"P2P is a particularly comical new
coinage for a business model since
the phrase starkly points out that
there's no middleman -- so how can
anyone possibly make any money?"
Katherine Mieszkowski, Salon
information wants to be free
“… one can’t have it both ways. Either my node is
distinctive and will be missed for some reason
when it goes down, or else how have I gained any
power in this new P2P Internet? Don’t get me
wrong, I prefer the more reliable implementation
where my machine provides nothing completely
unique. But the I miss exactly how this is
supposed to [produce] the ‘democratization’ of the
Internet, whatever that might be.” Nancy Collins
Napster works because it
has:
simple implementations
the same data on many different PCs
static files
data such that you don’t mind trusting
the person sharing it
lots of college students with very
fast network connections
P2P doesn’t work as well
with:
unique content (when I want your
pictures I don’t want to have to call
and ask you to boot your PC)
content that keeps changing (imagine
eBay having all its data stored like
Napster)
content that requires a trust
relationship - Dan Bricklin
P2P
a topology
a technology
a computing model
an ideology
a way of life
tests
common resources
yapuka
reciprocity
reliability
cheating
sales
free lunch
where’s the value
where’s the money
"a global network that allows
communication and files to flow
directly from one person's desktop to
another, unseen and untouched by any
person or company along the way"
"searching for information ...
contained not just in websites but
also in the hard drives of PCs
connected to the network"
"the potential of tapping into the
unused computer resources sitting
around on everyone's desk at home
and in the office"
“a given file could be hosted (and
copies and redundancies built-in) by
10, 200, or 10,000 individual
computers, eliminating the need to
concentrate spending on backup
equipment or on bandwidth or on a
central location” Nicholas Mercader
P2P Applications
Person 2 Person (Instant Messaging)
AOL, MSN
File Sharing
Napster, Gnutella, BitTorrent, KaZaA, eMule
Distributed Computing
seti@home, climateprediction.com
P2P Collaboration
Lotus Notes, M$
P2P Traffic Estimates
2004
BitTorrent accounts for 30% of all Internet
Traffic
2005
File-sharing accounts for 60% of all Internet
Traffic
For file-sharing; 62% video, 11% audio
eDonkey dominates video traffic over
BitTorrent
Gnutella – 69% music
P2P Process Model
Discovery (?)
Who is out there that I can talk to?
Connection (C)
What is their address, so that I can connect?
Messaging (M)
What kinds of things do they support, and what am
I looking for?
Data Distribution (D)
Send data