09.07.2015 Views

Elementos de las redes P2P - DIT

Elementos de las redes P2P - DIT

Elementos de las redes P2P - DIT

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Peer 2 PeerSistemas Operativos DistribuidosAbel Santín González


INDICEIntroducción <strong>P2P</strong> ........................................................................................................... ......... 3<strong>Elementos</strong> <strong>de</strong> <strong>las</strong> re<strong>de</strong>s <strong>P2P</strong> ................................................................................................. 3Arquitectura <strong>de</strong> <strong>las</strong> re<strong>de</strong>s <strong>P2P</strong> ............................................................................................. 4Mo<strong>de</strong>lo Híbrido o Centralizado ............................................................................. ............ 4Mo<strong>de</strong>lo <strong>P2P</strong> Puro o totalmente <strong>de</strong>scentralizado .............................................................. 5Mo<strong>de</strong>lo <strong>P2P</strong> Mixto o semicentralizado ........................................................................... 6Comunicación en <strong>las</strong> re<strong>de</strong>s <strong>P2P</strong> .......................................................................................... 7Búsqueda <strong>de</strong> pares, contenidos y servicios ...................................................................... 7Tab<strong>las</strong> Hash Distribuidas (DHT)..................................................................................... 8Características y Beneficios <strong>de</strong> <strong>las</strong> Re<strong>de</strong>s <strong>P2P</strong> .............................................................. 11JXTA ........................................................................................................ ............................ 12Introducción .................................................................................................................. 12Pila <strong>de</strong> Protocolos JXTA ............................................................................................... 12Bibliografía ....................................................................................................................... 13


Mo<strong>de</strong>lo <strong>P2P</strong> Mixto o semicentralizadoHoy en día la mayoría <strong>de</strong> aplicaciones <strong>P2P</strong> consi<strong>de</strong>radas <strong>de</strong> tercera generación empleanun mo<strong>de</strong>lo mixto. Dentro <strong>de</strong> este mo<strong>de</strong>lo, ciertos pares <strong>de</strong> la red son seleccionados comosuperpares y ayudan a gestionar el tráfico dirigido hacia otros pares. Los superparescambian dinámicamente a medida que nuevos pares se conectan.En este mo<strong>de</strong>lo cada nodo cliente mantiene sólo un pequeño número <strong>de</strong> conexionesabiertas y cada una <strong>de</strong> esas conexiones es a un superpar. Así mismo los superpares estánconectados entre siEsta nueva topología virtual tiene el efecto <strong>de</strong> hacer la red escalable, mediante lareducción <strong>de</strong>l número <strong>de</strong> nodos involucrados en el encaminamiento y manejo <strong>de</strong> losmensajes, así como la disminución <strong>de</strong>l volumen <strong>de</strong> tráfico entre ellos.A<strong>de</strong>más la velocidad <strong>de</strong> respuesta a <strong>las</strong> solicitu<strong>de</strong>s <strong>de</strong>ntro <strong>de</strong> un entorno mixto escomparable al <strong>de</strong> un entorno <strong>P2P</strong> centralizado.Par A (¿cc.mp3?)(¿cc.mp3?) (¿cc.mp3?)SuperparZ cc.mp3Par Z (cc.mp3)cc.mp3->Zcc.mp3->ZConexión directaFlujo <strong>de</strong> Datos


La <strong>de</strong>sunión también es muy simple, el nodo que <strong>de</strong>ja la red copia toda su información asu pre<strong>de</strong>cesor y este cambia su puntero <strong>de</strong> nodo siguiente al mismo <strong>de</strong>l nodo queabandona la red. En caso <strong>de</strong> caída <strong>de</strong>l nodo, el nodo anterior al nodo caído, tendrá queiniciar un proceso <strong>de</strong> unión para volver a establecer el anillo.También cabe <strong>de</strong>stacar que en caso <strong>de</strong> caída <strong>de</strong> un nodo la información almacenada endicho nodo <strong>de</strong>ja <strong>de</strong> estar disponible temporalmente. Los distintos protocolos establecenmecanismos <strong>de</strong> almacenamiento <strong>de</strong> la información pasado un tiempo para que lainformación vuelva a estar disponible.Sin embargo este protocolo no está <strong>de</strong>l todo optimizado, ya que para encontrar un recursoen la red se pue<strong>de</strong>n dar tantos saltos como número <strong>de</strong> nodos como máximo, siendo elnúmero <strong>de</strong> saltos medio n/2 (siendo n el nº d nodos).Para resolver esto, una modificación al protocolo es que cada nodo en lugar <strong>de</strong> apuntarúnicamente al siguiente nodo, tenga una tabla don<strong>de</strong> apunte a k nodos. La distancia entreel ID <strong>de</strong>l nodo que almacena la tabla y los IDs <strong>de</strong> los nodos apuntados incremente <strong>de</strong>forma exponencial.Para que la búsqueda “logarítmica” funcione, la tabla <strong>de</strong> punteros necesita estaractualizada. Una tabla <strong>de</strong> punteros a nodos mal actualizada no tiene porque perjudicar a labúsqueda siempre y cuando todos los nodos tengan el puntero al siguiente nodoactualizado, aunque en el caso <strong>de</strong> estar mal actualizada no funcionará la búsquedalogarítmica.Como hemos dicho, cada nodo tiene k punteros a otros nodos (k=nº <strong>de</strong> bits <strong>de</strong>l ID). Sea xuno <strong>de</strong> estos punteros (1 distance (next.id, key)Current=nextNext=findFinger(current,key)Return current


Mas o menos tal y como está <strong>de</strong>finido el protocolo hasta este punto es la versión original<strong>de</strong> Chord DHT, <strong>de</strong>scrito por el MIT.Otra propiedad útil para una DHT es la posibilidad <strong>de</strong> actualizar la tabla <strong>de</strong> punteros <strong>de</strong>forma pasiva, haciendo búsquedas <strong>de</strong> forma pasiva para refrescar la tabla.Otra <strong>de</strong> <strong>las</strong> mejoras que se le pue<strong>de</strong> añadir al protocolo es la posibilidad para un nodo <strong>de</strong>añadir mas punteros a nodos en su tabla, cuando contacta con otros nodos durante labúsqueda, ya que en el proceso <strong>de</strong> búsqueda se establece la comunicación con el nodoreduciendo la sobrecarga en la red.Desafortunadamente, <strong>las</strong> tab<strong>las</strong> <strong>de</strong> punteros que hemos visto son unidireccionales, o loque es lo mismo, la distancia no es simétrica entre dos nodos y por lo tanto un nodo comonorma general no estará en la tabla <strong>de</strong> nodos apuntados <strong>de</strong> los nodos a los que el apunta.Una solución a este problema es remplazar la distancia entre nodos <strong>de</strong>finidaanteriormente, por la operación XOR entre <strong>las</strong> IDs <strong>de</strong> los nodos siendo así ladistancia(A,B)=distancia(B,A). Si A está en la tabla <strong>de</strong> punteros <strong>de</strong> B entonces B está enla tabla <strong>de</strong> A. Esto significa que los nodos pue<strong>de</strong>n actualizar sus tab<strong>las</strong> <strong>de</strong> punterosguardando la tabla <strong>de</strong> los nodos a los que consulta, reduciendo así la cantidad <strong>de</strong> tráfico.Una cuestión con el diseño presentado es que si un nodo en la ruta no quiere cooperar.Entre dos nodos hay solo un camino, así que hacer búsquedas entre nodos caídos esimposible. Ka<strong>de</strong>mlia DHT resuelve esto ampliando la tabla <strong>de</strong> punteros a nodosconteniendo j referencias para cada nodo, en lugar <strong>de</strong> sólo uno. A<strong>de</strong>más Ka<strong>de</strong>mlia dapreferencia en su tabla <strong>de</strong> nodos a aquellos que más tiempo llevan, añadiendo tan solonuevas referencias en caso <strong>de</strong> que no tenga la tabla llena.Características y Beneficios <strong>de</strong> <strong>las</strong> Re<strong>de</strong>s <strong>P2P</strong>- Descentralización- Escalabilidad- Anonimato- Propiedad compartida- Rendimiento- Seguridad- Tolerancia a Fallos- Interoperabilidad


JXTAIntroducciónDes<strong>de</strong> la aparición <strong>de</strong> Napster, conocido como el primer programa <strong>P2P</strong>, han surgidomultitud <strong>de</strong> programas que implementan dicha funcionalidad. Sin embargo la grancantidad <strong>de</strong> aplicaciones <strong>P2P</strong> distintas, ha resultado en una gran inflexibilidad y falta <strong>de</strong>interoperabilidad entre el<strong>las</strong>.El proyecto JXTA comenzó en el año 2001 <strong>de</strong>ntro <strong>de</strong> Sun Microsystems e intentaconvertirse en una plataforma modular que provee bloques <strong>de</strong> construcción simples yesenciales para el <strong>de</strong>sarrollo <strong>de</strong> un amplio rango <strong>de</strong> servicios y aplicaciones distribuidasbasadas en <strong>P2P</strong>.La tecnología JXTA está basada en estándares como XML y Java, aunque el uso <strong>de</strong> Javano es requerido, ya que los protocolos JXTA pue<strong>de</strong>n ser implementados en C++, Perl ocualquier lenguaje <strong>de</strong> programación. A<strong>de</strong>más JXTA está pensado para ser ejecutado entodo tipo <strong>de</strong> dispositivos, teléfonos móviles, PDAS, or<strong>de</strong>nadores.La plataforma provee <strong>de</strong> un ambiente <strong>de</strong>scentralizado que minimiza los puntos únicos <strong>de</strong>fallo y no es <strong>de</strong>pendiente <strong>de</strong> ningún servidor centralizado.Los servicios JXTA pue<strong>de</strong>n ser implementados para interoperar con otros servicios dandonacimiento a nuevas aplicaciones <strong>P2P</strong>. Por ejemplo, un servicio <strong>de</strong> comunicación <strong>P2P</strong> <strong>de</strong>mensajería instantánea pue<strong>de</strong> ser fácilmente agregado a una aplicación <strong>P2P</strong> <strong>de</strong>compartición <strong>de</strong> ficheros si es que ambos soportan protocolos JXTA.La forma <strong>de</strong> funcionamiento se basa en un conjunto <strong>de</strong> protocolos <strong>P2P</strong> simples y abiertosque permiten que cualquier dispositivo <strong>de</strong> red se comunique, colabore y compartarecursos. Los nodos JXTA crean una red virtual sobre <strong>las</strong> re<strong>de</strong>s existentes, escondiendo lacomplejidad <strong>de</strong> sus capas.Pila <strong>de</strong> Protocolos JXTATodos los protocolos JXTA son asíncronos y están basados en el mo<strong>de</strong>lo peticiónrespuesta. Un par JXTA envía una petición a uno o más pares en el grupo <strong>de</strong> pares ypue<strong>de</strong> recibir cero, una o varias respuestas.• Endpoint Routing Protocol: Usado para encontrar <strong>las</strong> rutas <strong>de</strong> <strong>de</strong>stino a otros paresa través <strong>de</strong> i<strong>de</strong>ntificadores únicos <strong>de</strong> pares (relay peers) que pue<strong>de</strong>n ser usadospara enviar un mensaje a su <strong>de</strong>stino• Peer Resolver Protocol: Permite a los pares enviar peticiones genéricas a uno omás pares y recibir una o múltiples respuestas. Las peticiones pue<strong>de</strong>n estardirigidas a todo el grupo <strong>de</strong> pares específicos <strong>de</strong>l grupo.• Peer Discovery Protocol: Usado para publicar sus propios recursos y <strong>de</strong>scubrirdon<strong>de</strong> se encuentran los recursos <strong>de</strong> otros pares• Peer Binding Protocol: Establece un canal <strong>de</strong> comunicación virtual entre dos omás pares


• Peer Information Protocol: Usado por los pares para obtener información <strong>de</strong>estado <strong>de</strong> otros pares.• Peer Membership Protocol: Protocolo para suscribirse a un servicio <strong>de</strong>propagación.BibliografíaDomine <strong>las</strong> re<strong>de</strong>s <strong>P2P</strong> : "Peer to Peer" orígenes, funcionamiento y legislación <strong>de</strong>l<strong>P2P</strong>, selección y configuración <strong>de</strong>l acceso <strong>de</strong> banda ancha a internet”Millán Tejedor, Ramón JesúsEditor: Creaciones CopyrightFecha <strong>de</strong> pub: 2006Páginas: XVIII, 330 p.ISBN: 849630020XKa<strong>de</strong>mlia: A Peer-to-peer Information System Based on the XOR MetricPetar Maymounkov and David MazieresNew York Universityhttp://ka<strong>de</strong>mlia.scs.cs.nyu.edu/Artículo Distributed Hash Tables, Part IBrandon WileyLinux Journal http://www.linuxjournal.com/article/6797

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!