Red de Respuestas Legales - Derecho empresarial - Comparación del uso y rendimiento del software P2P

Comparación del uso y rendimiento del software P2P

Puedes consultarlo.

Breve historia del desarrollo de los sistemas P2P

En 1999 nació el sistema de intercambio de archivos Napster. Napster fue el primer sistema P2P práctico y un gran número de usuarios de computadoras personales participaron en el sistema. Cada usuario proporciona los archivos que quiere disfrutar y puede descargar archivos que disfrutan otros usuarios. El problema central que Napster necesitaba resolver era saber qué máquinas tenían qué archivos para que los usuarios obtuvieran la coincidencia correcta cuando realizaran una solicitud de búsqueda de archivos.

En Napster, se utiliza un servidor central llamado servidor de directorio para almacenar información de metadatos (títulos de archivos y alguna información de descripción simple) de todos los archivos y las direcciones IP de sus nodos de almacenamiento. Cuando un nodo se une al sistema, primero debe conectarse al servidor de directorio e informar su dirección y lista de archivos. Cuando un usuario necesita un archivo, envía una solicitud de búsqueda al servidor de directorio. El servidor de directorio devuelve las direcciones de almacenamiento de todos los archivos que cumplen con los requisitos de búsqueda. Luego, el usuario descarga el archivo directamente desde el nodo que comparte el archivo. direccion correspondiente. Dado que el servidor de directorio solo proporciona servicios de indexación y no realiza servicios de almacenamiento ni descarga de archivos, admite decenas de miles de nodos en línea al mismo tiempo. Napster rápidamente se hizo popular después de su lanzamiento y pronto se convirtió en el sistema de aplicaciones de red de más rápido crecimiento.

De hecho, no todos los nodos en Napster son iguales y el servidor de directorio tiene que soportar una carga de trabajo mucho mayor que otros nodos. En este sentido, Naspter no es un sistema puramente peer-to-peer. Debido a la naturaleza altamente dinámica de los nodos en Naspter (es decir, los nodos se agregan y salen con frecuencia), el servidor de directorio se actualiza constantemente. Además, el servidor de directorio es responsable de responder a todas las solicitudes de consulta de los usuarios. Por lo tanto, cuando el sistema es relativamente grande, el servidor de directorio seguirá convirtiéndose en el cuello de botella del sistema. Además, la existencia del servidor de directorio se ha convertido en un punto clave del sistema y el punto más vulnerable de todo el sistema. El sistema P2P posterior a Naspter ha mejorado en este punto. El sistema básicamente adopta una estructura no central, lo que mejora enormemente la robustez y escalabilidad.

Después de que Napster lograra un gran éxito en sus inicios, pronto se encontró con problemas de derechos de autor. Debido a que muchos archivos en Napster son archivos multimedia de música, no se permite que estos medios musicales se distribuyan ampliamente sin autorización. El servidor de directorio de Napster brindaba soporte para la difusión de estos archivos, por lo que los autores de música rápidamente desafiaron a Napster a proteger sus derechos de autor y se vio obligado a cerrar en 2001.

Napster verificó por primera vez la viabilidad de la idea P2P en una red de área amplia. Después del cierre de Napster, rápidamente surgieron más sistemas de intercambio de archivos P2P y se convirtieron en una gran ola de desarrollo de Internet, entre los cuales Gnutella y KaZaA son los más famosos.

De Gnutella a KaZaA

Gnutella cambió por completo la arquitectura de Naspter. No utiliza un servidor de directorio central, sino que adopta una estructura completamente peer-to-peer: cada nodo registra las direcciones IP de varios otros nodos (llamados "punteros"), de modo que la topología de todo el sistema se convierte en una red dirigida construida a partir de punteros, a menudo llamado "gráfico de cobertura". Dado que la red superpuesta de Gnutella no estipula qué nodos deben estar conectados con punteros, toda la red superpuesta no tiene una estructura ordenada (como anillo, cubo, estructura jerárquica, estructura de árbol, gráfico acíclico dirigido, etc.), es decir, Entonces -llamado "superposición no estructurada".

Cuando un usuario necesita buscar un archivo, se realizará una búsqueda en amplitud o en profundidad en la red de cobertura. Después de que la búsqueda alcance un cierto rango, se obtendrán los resultados que cumplan con las condiciones de búsqueda. ser devuelto al usuario. Debido a que esta búsqueda no puede cubrir toda la red superpuesta, existe el problema de que no se puede buscar por completo. Pero este problema no es grave porque la mayoría de las veces la gente siempre busca algunos archivos populares y estos archivos tienden a tener muchas copias en todo el sistema. Siempre que el rango de búsqueda no sea muy pequeño, siempre podrás encontrar uno o más de ellos. Por supuesto, cómo buscar archivos impopulares en redes superpuestas no estructuradas también es un tema candente en la investigación P2P, y se han logrado algunos avances en los últimos años.

De hecho, este enfoque de sacrificar la integridad de la búsqueda brinda una alta escalabilidad: el sistema ya no tiene un nodo central como cuello de botella y la escala se puede expandir a millones o incluso decenas de millones de nodos. Además, también se mejora la robustez del sistema ya que no hay nodos críticos que sean vulnerables a ataques.

KaZaA mejora aún más Gnutella. Dado que la mayoría de los nodos del sistema son altamente dinámicos, los punteros que cubren los nodos de la red deben actualizarse con frecuencia para eliminar aquellos nodos que han abandonado el sistema y agregar nuevos nodos en línea. La gente sabe por experiencia práctica con Napster y Gnutella que las capacidades de los nodos en los sistemas de intercambio de archivos P2P varían mucho. Algunos nodos son muy fuertes y estables y pueden permanecer en línea durante mucho tiempo cada vez que se conectan, mientras que más nodos son muy débiles y abandonan el sistema al poco tiempo (muchos solo unos minutos) después de unirse al sistema. De esta manera, KaZaA utiliza nodos fuertes en el sistema para formar la columna vertebral del sistema, mientras que los nodos débiles se unen a nodos fuertes adyacentes.

En otras palabras, KaZaA divide los nodos en nodos fuertes y nodos débiles. Los nodos fuertes construyen una red superpuesta similar a Gnutella, mientras que los nodos débiles solo se conectan a uno o varios nodos fuertes y comparten sus propios metadatos (es decir, * * * lista de archivos). al nodo fuerte y la búsqueda de archivos solo se realiza en el nodo fuerte. De esta forma, KaZaA logra mayor estabilidad y eficiencia de búsqueda que Gnutella. Actualmente, el número de usuarios en línea simultáneos de KaZaA se ha estabilizado en más de 3 millones, lo que lo convierte en el sistema distribuido más grande del mundo.

Recientemente, los problemas de derechos de autor en los sistemas de intercambio de archivos P2P se han ido resolviendo gradualmente. Después de que Napster cerró y fue adquirida por el fabricante de software musical Roxio, la red Naspter se convirtió en un canal de distribución de software legal. Más tarde, Roxio cambió su nombre a Napster debido a su prometedor desempeño y cotizó en Nasdaq en junio de 2005. Actualmente, Napster cuenta con más de 70 millones de usuarios registrados en todo el mundo.

Aplicación e investigación de la estructura P2P

Por otro lado, el éxito del sistema de intercambio de archivos P2P ha impulsado a la gente a dedicarse a desarrollar más aplicaciones de estructura P2P. Los más exitosos son el sistema de distribución de archivos a gran escala BitTorrent y el sistema telefónico IP basado en red superpuesta Skype.

Las descargas de archivos tradicionales utilizan principalmente protocolos como FTP y se descargan en modo C/S. De esta forma, muchos usuarios necesitarán descargar algunos archivos populares al mismo tiempo. Debido al ancho de banda limitado en el servidor, muchas solicitudes de los usuarios no serán satisfechas y la eficiencia general de la descarga es muy baja. BitTorrent intenta aprovechar al máximo el ancho de banda entre los usuarios que descargan para la transmisión de datos, reduciendo así la carga en el servidor y aumentando las velocidades de descarga y la escalabilidad del sistema (número de descargas simultáneas). La estrategia básica de BitTorrent es: cada usuario descarga una parte de los datos del servidor, cada usuario descarga una parte diferente y luego los usuarios intercambian datos que la otra parte no tiene y finalmente todos los usuarios pueden obtener todos los datos. BitTorrent rápidamente se hizo popular después de su lanzamiento. A medida que más y más personas utilizan BitTorrent para descargar datos en Internet, el sistema P2P se ha convertido rápidamente en la principal aplicación de Internet y representa más del 50% del tráfico de la red.

Como sistema de telefonía IP basado en una red superpuesta, Skype proporciona mejores efectos de voz que los teléfonos IP conectados directamente a través de Internet, por lo que es ampliamente bienvenido por los usuarios. Desde su lanzamiento en 2003, su base de usuarios ha crecido rápidamente. En febrero de 2005, el número de usuarios registrados de Skype alcanzó los 210.000 y el número de usuarios en línea superó los 2 millones. La estructura del sistema de Skype es básicamente similar a KaZaA. Cuando los usuarios necesitan comunicarse entre sí, Skype encontrará una red de cobertura con el mayor ancho de banda y transmitirá los datos mediante reenvío de múltiples saltos. Normalmente, la calidad de la ruta de reenvío que se encuentra en la red superpuesta es mejor que la ruta directa entre los dos puntos de la llamada, por lo que la voz es más clara y fluida durante la llamada. Debido a la aparición y rápido desarrollo de Skype, cada vez más usuarios recurren a la telefonía IP, lo que supone una cierta amenaza para la industria de las telecomunicaciones tradicionales. En el futuro, es probable que los sistemas telefónicos IP basados ​​en P2P, como Skype, reemplacen en gran medida los servicios telefónicos tradicionales y se conviertan en una de las formas básicas para que las personas se comuniquen todos los días.

Con el rápido desarrollo de los sistemas P2P en la industria, la comunidad de investigación también ha dado seguimiento en el tiempo y ha llevado a cabo investigaciones a gran escala sobre sistemas P2P. Desde el año 2000, importantes resultados de investigación sobre sistemas P2P han seguido apareciendo en las principales conferencias como OSDI, SOSP, SIGCOMM, USENIX y HOTOS. En 2001, la comunidad académica celebró una nueva conferencia académica IPTPS, cuyo tema fue los sistemas P2P. A medida que la conferencia recibió una amplia atención por parte de universidades e instituciones de investigación famosas, rápidamente se convirtió en una cumbre en el campo de la investigación P2P, con una gran cantidad de excelentes artículos publicados y convirtiéndose en un punto de referencia para la investigación P2P. Desde 2002, universidades famosas como Berkeley y Stanford han abierto sucesivamente cursos de posgrado relacionados con el P2P, promoviendo aún más el P2P como una nueva dirección de investigación.

La esencia espiritual es la "cooperación de nodos"

La esencia del sistema P2P es la "cooperación de nodos". Por lo tanto, siempre que no haya un administrador en un sistema y todas las tareas se completen mediante el intercambio y la cooperación entre nodos, el sistema puede considerarse un sistema P2P. En términos generales, los sistemas P2P existentes se pueden dividir en dos categorías:

La primera categoría se denomina "sistemas P2P orientados a servicios". El sistema de servicios P2P organiza los nodos de servicios en la red de área amplia de igual a igual para proporcionar a los usuarios servicios más potentes y confiables (servicios de datos, servicios informáticos, servicios de almacenamiento, etc.). ). Dichos sistemas incluyen PlanetLab, la plataforma experimental distribuida de Wan, Ivy, etc.

La segunda categoría se denomina “Sistema P2P para intercambio de trueque”. El sistema de intercambio P2P proporciona una plataforma para el intercambio de recursos para una gran cantidad de usuarios finales en Internet. Los usuarios pueden intercambiar recursos en esta plataforma, que pueden ser archivos, bloques de datos, espacio de almacenamiento, etc. Estos sistemas incluyen KaZaA, BitTorrent, Pastiche, etc.

Tanto los sistemas de servicios P2P como los sistemas de intercambio P2P se enfrentan a muchos problemas nuevos que los sistemas distribuidos tradicionales no tienen:

El número de nodos es grande.

Muchos sistemas P2P han alcanzado la escala de millones de nodos en línea al mismo tiempo. Una consecuencia directa de una escala tan grande es que es imposible utilizar una topología completamente conectada (es decir, que cada nodo registre todos los demás nodos actualmente). De esta manera, es un problema difícil permitir que los nodos conozcan más información sobre otros nodos y garantizar que dos nodos cualesquiera puedan comunicarse. Por lo tanto, los algoritmos de recopilación de información de nodos y los protocolos de enrutamiento superpuestos en sistemas P2P se han convertido en una dirección importante en la investigación de P2P.

Los nodos son muy dinámicos.

Para los usuarios, un modo estándar de uso del sistema P2P es "entrar al sistema - buscar recursos - obtener recursos - salir del sistema", lo que normalmente no lleva mucho tiempo. Por tanto, una característica distintiva del sistema P2P es el corto tiempo medio de conexión de los nodos. Según cálculos experimentales, el tiempo promedio en línea de los nodos en los sistemas Napster y Gnutella es de solo más de 2 horas. La naturaleza altamente dinámica de los nodos hace que sea muy difícil mantener la disponibilidad de los datos.

Los nodos son heterogéneos.

Los nodos en Internet tienen diferentes capacidades de hardware y modos de acceso. Esto da como resultado grandes diferencias en las capacidades de almacenamiento, capacidades informáticas y capacidades de ancho de banda entre los nodos que participan en el sistema P2P. Cómo aprovechar esta heterogeneidad, aprovechar al máximo los recursos disponibles de todos los nodos y mejorar el rendimiento de todos los aspectos del sistema es un problema que debe estudiarse cuidadosamente en los sistemas P2P.

Los nodos están ampliamente distribuidos.

Los nodos del sistema P2P están distribuidos por todo el mundo. Debido a las diferentes zonas horarias, diferentes partes del sistema estarán ocupadas en diferentes momentos. Esto plantea nuevos desafíos para el equilibrio de carga, la migración de tareas y las estrategias de replicación.

La red es asíncrona.

Los sistemas distribuidos tradicionales se implementan dentro de clústeres o LAN y la red es una red síncrona.

(Red síncrona), es decir, el retraso de comunicación entre dos nodos cualesquiera siempre tiene un límite superior. Sin embargo, los sistemas P2P se implementan en redes asíncronas de Internet. Debido a que las redes a menudo están bloqueadas, interferidas y fragmentadas, no existe un límite superior determinado en el retraso de comunicación entre dos puntos cualesquiera del sistema. La naturaleza asincrónica de la red trae grandes dificultades a algunas aplicaciones que requieren una semántica estricta. Por ejemplo, los algoritmos de replicación no pueden garantizar una linealización estricta en redes asíncronas. Entonces, cómo garantizar la confiabilidad y coherencia de diversas operaciones en el entorno de Internet requiere un análisis e investigación cuidadosos.

No existe confianza mutua entre los nodos.

Los nodos P2P provienen de diferentes organizaciones y usuarios, y no existe una confianza natural entre los nodos, por lo que el trabajo de seguridad y privacidad es muy importante. Cómo proteger la privacidad al intercambiar datos con otros nodos siempre ha sido una dirección importante en la investigación P2P.

Los nodos son egoístas.

Muchos usuarios racionales siempre intentan hacer más uso de los recursos de otras personas y aportar menos de los propios. Los experimentos muestran que el 25% de los nodos en Gnutella nunca comparten datos con otros, sino que solo descargan datos de otros. Un gran número de usuarios (alrededor del 30%) no informan de su ancho de banda para reducir la disposición de otros usuarios a descargar sus datos. Muchos investigadores también se centran en cómo animar a los usuarios a contribuir con más recursos y garantizar la equidad del intercambio.

Todo el sistema está expuesto a la red pública.

En los sistemas distribuidos tradicionales, solo se puede acceder directamente desde Internet a los nodos del portal responsables del intercambio con los usuarios, mientras que se puede acceder directamente a casi todos los nodos del sistema P2P desde Internet, lo que hace que el sistema P2P más vulnerable al ataque. Especialmente para algunos sistemas que permiten que los nodos se unan a voluntad (como la mayoría de los sistemas de intercambio de archivos P2P), cómo prevenir ataques coordinados se vuelve aún más importante.

Son estas nuevas características del sistema P2P las que hacen que el sistema P2P se vea muy diferente en apariencia de los sistemas distribuidos tradicionales. Ésta es una de las razones por las que ha despertado el interés investigador de muchos académicos famosos.

El estado actual de la aplicación de los sistemas de aplicaciones P2P

Con el desarrollo de la tecnología P2P, la gente intenta utilizar métodos P2P para resolver diversos problemas. Cada vez se han propuesto y se han propuesto más sistemas de aplicaciones P2P. Probado en la práctica, que incluye:

Sistema de almacenamiento distribuido WAN (sistema de almacenamiento P2P).

Los sistemas de almacenamiento distribuido siempre han sido un campo importante de los sistemas distribuidos, los sistemas de archivos distribuidos tradicionales, los sistemas de almacenamiento de objetos distribuidos y las bases de datos distribuidas en redes de área local tienen una buena base de investigación. Después del surgimiento de la tecnología P2P, la gente intentó expandir estos sistemas de almacenamiento distribuido a una gama más amplia y propuso sistemas de archivos distribuidos, sistemas de almacenamiento de objetos y sistemas de bases de datos construidos en redes de área amplia.

Sistema multicast de vídeo.

La multidifusión de vídeo tiene altos requisitos de ancho de banda. El sistema de multidifusión estructurado C/S tradicional a menudo tiene una escalabilidad deficiente debido a la limitación del ancho de banda de exportación del servidor. En el sistema de multidifusión de video basado en la estructura P2P, solo unos pocos nodos obtienen datos directamente del servidor, y más nodos obtienen datos de otros nodos, por un lado, y proporcionan datos a otros nodos, por el otro. La arquitectura de todo el sistema es una estructura de árbol o una estructura de malla. Este sistema de multidifusión de vídeo peer-to-peer aprovecha al máximo el ancho de banda disponible entre nodos y mejora enormemente la escalabilidad del sistema.

Sistema de distribución de archivos a gran escala.

Al igual que el sistema de multidifusión de video, el sistema de distribución de archivos grandes también reduce la presión sobre la fuente de datos al transmitir datos entre nodos. Su arquitectura también es una estructura de árbol o una estructura de malla.

Sin embargo, dado que el sistema de distribución de archivos no tiene altos requisitos en tiempo real y no tiene altos requisitos para el ancho de banda mínimo aceptable, en comparación con los datos de video, el ancho de banda se puede utilizar por completo y se puede obtener una mayor escalabilidad.

Servidor de nombres de dominio (DNS).

Actualmente, las conexiones entre servidores DNS en Internet utilizan una estructura de árbol. En esta estructura, resolver algunos nombres de dominio poco comunes es ineficaz porque se requieren muchos saltos de consulta y reenvío en la estructura de árbol. Especialmente si se resuelve un nombre de dominio incorrecto o el servidor responsable de la resolución no está disponible temporalmente, tardará mucho en volver al usuario, lo que indica que la consulta falló. Además, debido a que la URL que identifica un documento bajo el mecanismo actual está directamente relacionada con su ubicación de almacenamiento, genera muchos inconvenientes para la migración de documentos. Se ha trabajado mucho en reconstruir el sistema DNS con una arquitectura P2P para hacerlo más eficiente, eliminando la correlación entre identificación de documentos y ubicación de almacenamiento, y logrando buenos resultados.

Caché de colaboración web (Web Cache).

Los sitios web suelen tener puntos de acceso, lo que afecta la usabilidad y la eficiencia del acceso a las páginas web. Este problema se puede resolver bien si las páginas web se almacenan en caché en varios nodos a través de P2P. Este enfoque de almacenamiento en caché cooperativo puede ocurrir entre múltiples clientes y múltiples servidores, y los servidores y sus clientes pueden organizarse para lograr mejores estrategias de distribución.

Anular enrutamiento.

Aunque Internet puede proporcionar una ruta de datos entre dos puntos cualesquiera, debido a actualizaciones del enrutador, errores de configuración, congestión de la red, etc., la calidad de la comunicación entre los dos puntos suele ser deficiente o incluso estar completamente desconectada. Para reducir o incluso evitar esta situación, se recomienda establecer una red superpuesta entre muchos nodos que necesitan comunicarse. Cuando la comunicación directa entre dos puntos no es fluida, podemos encontrar formas de lograr una comunicación más eficiente mediante el reenvío por parte de otros nodos. Por ejemplo, cuando el nodo A no puede enviar mensajes al nodo B o la calidad de la comunicación es deficiente, puede haber otro nodo C. La comunicación entre A y C y entre C y B es fluida y buena, de modo que A puede enviar mensajes al nodo B. C envía un mensaje y C lo reenvía a B.

Multidifusión de capa de aplicación.

Aunque la tecnología de multidifusión de capa IP se ha propuesto durante diez años, no se ha utilizado ampliamente. La razón principal es que es necesario cambiar el algoritmo del enrutador, por lo que es difícil implementarla ampliamente; La multidifusión necesita registrar el estado del grupo (nombre del grupo y dirección del miembro), lo que hace que el protocolo sea muy complejo e inconsistente con el principio básico de la capa IP sin estado que se ha respetado en el diseño de Internet. En vista de esto, se ha propuesto la multidifusión de capa de aplicación que no requiere soporte de capa IP, es decir, los mensajes se reenvían continuamente entre los nodos que necesitan recibir mensajes para garantizar que eventualmente puedan recibirlos todos los miembros del grupo. Muchas capas de aplicaciones realizan multidifusión entre nodos a través de una estructura de árbol y: (1) garantizan que la estructura de árbol se pueda reparar rápidamente cuando los nodos entran y salen (2) optimizan esta estructura de árbol para que coincida con la estructura inferior de Internet, lo que mejora la eficiencia de la multidifusión; Reduce la presión de la comunicación multicast en los enlaces de Internet.

Además, existen algunos intentos de construir motores de búsqueda P2P, utilizar sistemas P2P para medir las condiciones de la red, eliminar obstáculos entre firewalls y puertas de enlace mediante enrutamiento P2P, construir sistemas de juegos P2P, etc. , que no se presentará en detalle aquí.