MANUSCRITO REDES COMPAÑERO A COMPAÑERO CON SOPORTE DE SISTEMAS DE ARCHIVOS DISTRIBUIDOS David Alberto Valdez Clavijo División Estadística y Sistemas Departamento de Ciencias Básicas Universidad Nacional de Luján Contacto David Alberto Valdez Clavijo DavidAlbertoValdez@yahoo.com.ar Dirección: Honduras 5616. Localidad: Moreno. Provincia: Bs Aires. País: Argentina. Tel.: (011) -1540479580 REDES COMPAÑERO A COMPAÑERO CON SOPORTE DE SISTEMAS DE ARCHIVOS DISTRIBUIDOS Resumen David Alberto Valdez Clavijo DavidAlbertoValdez@yahoo.com.ar División Estadística y Sistemas Departamento de Ciencias Básicas Universidad Nacional de Luján Como las tecnologias en internet son tan dinamicas y estan creciendo en forma exponencial es necesario la renovación tecnologica que permita un mejor aprovechamiento de la web. Por lo cual este paper trata de aclarar el panorama de las redes Pear to Pear dando conocer la filosofía de trabajo y los diversos sectores en la cual se pueden aplicar. Describiendo su arquitectura básica compuesta por nodos, items, colecciones y transaciones. Y los modelos fundamentales en la compartición de archivos que ofrece Pear to Pear que son: El modelo cliente servidor y el modelo distribuido Gnutella así como las ventajas y desventajas que cada uno presenta, su arquitectura y forma de proceder como es el caso de Gnetulla que usa la propagación para interconectarse con sus vecinos de la red. Y por ultimo un ejemplo de un sistema distribuido como lo es Freenet. Introducción P2P "Path to Profitability" (camino a la rentabilidad) se ha convertido, en los últimos meses, en uno de los términos más acuñados por las empresas punto com. Es el mantra utilizado por las organizaciones de la nueva economía como filosofía, como objetivo y como punto de referencia fundamental para satisfacer las expectativas de los inversores y garantizar que el equipo directivo está realizando una gestión eficaz. No podemos olvidar que ésta es una de las principales preocupaciones de los inversores que ven como, en los últimos meses, los pelotazos empresariales que se dieron eco en el mercado de las punto com, están resultando en muchos casos, como se temía, poco de fiar. El P2P no consiste en ser rentables hoy. La rentabilidad es un camino que en ocasiones, puede parecer largo para las empresas de Internet y deberán tener paciencia y perseverancia para saber que siempre que estén demostrando un acercamiento hacia la rentabilidad estarán en el buen camino para sobrevivir en el mercado de Internet ante esta nueva situación de mercado llamada P2P. Que se pasa a describir a continuación. 1. Filosofía de trabajo del P2P Es una plataforma tecnológica que permite las relaciones directas (desde el simple intercambio de archivos a transacciones) entre "pares" de una misma red SIN NECESIDAD de pasar por un mecanismo CENTRALIZADO. En jerga tecnológica: computación distribuida. Una palabrota con la que la mayoría de las personas todavía no se familiarizó, pero que en el 2002 va a estar en la cima. La idea del P2P ("peer to peer") comenzó a salir de la sombra con la fama del Napster el polémico sofware de distribución de archivos (de música, en MP3), nacido en Silicon Valley y que hoy es objeto de una ofensiva legal. Súbitamente, las computadoras "clientes", pasaron de meros usuarios (consumidores), a ser también proveedores la relación pasó a ser biunívoca y sin nadie que mande. file:///c /WINDOWS/Escritorio/BORRAR/valdez/David/valdez-p2p.html (1 of 6) [16/12/2001 11:13:01 AM]
1.1. Campos de Aplicación del P2P Tenemos los siguientesmodelos basados para P2P [A] Distribución universal de archivos (aplicación a la distribución de contenidos protegidos en intranets y extranets). Distribución activa de capacidad computacional (reducción de la necesidad de supercomputadoras y de servidores ultra potentes) Computación colaborativa (distribución de archivos seguros en tiempo real en grupos "ad hoc"). Agentes inteligentes (motor de investigación cooperativo). Computación distribuida (reducción al 1/100 o 1/20 en los costos de computación con aumento simultaneo de la productividad). Relación entre usuarios y grupos de especialistas distribuyendo intereses comunes (potencialidades para la investigación eficaz en áreas de contenidos o de gestión del conocimiento). 1.2. Segmentos de mercado que podrán usar el P2P Tenemos las siguientes segmentos de mercado [A] Empresas que necesiten de supercomputación sin poder invertir en supercomputadoras y que estén dispuestas a pagar por la locación de recursos ajenos (áreas de biotecnología) Servicios financieros, máquinas de búsqueda, ISP (Internet Service Providers) y ASP (Application Service Providers) y CAD (Diseño asistido por computadora) Venta de contenidos distribución de media (audio digital, video y multimedia). Plataformas de B2B sin agregador central -modelo B2P ("business to peer") en "portales de pares» ("peer portals") 2. Arquitectura La arquitectura de una red P2P esta compuesta por los siguientes componentes visto desde su funcionalidad: 2.1. Nodos Los nodos de una red P2P son las computadoras que se comunican entre sí con las mismas reglas para solicitar un determinado tipo de servicio como puede ser compartir archivos o servicios. 2.2 Items Los Items encapsulan la meta información acerca de los archivos de datos generalmente es como un index global virtual de la red para la búsqueda d información. 2.3 Colecciones Es una lista que contiene otoros Items. 2.4. Transacciones Son la consultas por información o recursos que se realizan al sistema generalmente se basan en un index global virtual para realizar la búsqueda. 3. P2P Compartiendo Archivos en Internet La compartición de información y de archivos era muy limitada [B] y se llevaba unicamente sobre las Redes LAN y entre usuarios conocidos entre sí sobre internet. Generalemte se usaban los protocolo de transferencia FTP (Protocolo de transferencia de archivos) y IRC (Ineternet Relay Chat) que se usaba para transfereir con usuarios desconocidos. Existen dos modelos de transferencia de archivos y son: la estructura del cliente servidor y la estructura Gnutella distribuida. 3.1. Modelo Cliente Servidor Este modelo esta basado sobre un sistema central que es el servidor el cual dirige él trafico de transferencia de archivos compartidos [B] entre los usuarios registrados en su sistema. Un ejemplo de este servicio sería el extinto Napster que compartía archivos de música MP3 y funcionaba de la forma que cada servidor central que lo integraban almacenaba en directorios los archivos compartidos de los usuarios conectados y registrados en la red. Es de aclarar que los archivos compartidos se hallan ubicados en las maquinas de los usuarios conectados a la red. Estos directorios eran actualizados cada vez que un usuario entraba o salía del servicio de compartición de archivos Cuando un usuario del sistema P2P centralizado hace una consulta al servidor este se encarga de crear una lista matcheando su consulta con las de base de datos de los usuarios conectados a la red en ese momento. El servidor central muestra una lista al usuario que inicio la demanda. Esta lista es el resultado de la consulta realizada por parte del servidor a los usuarios conectados a la red que realizo para satisfacer la demanda de la consulta. El usuario demandante podrá elegir de la lista el archivo deseado e iniciar una conexión directa vía HTTP para iniciar la transferencia con el usuario que posea dicho archivo. En ningún momento de la transferencia el archivo compartido es almacenado en el servidor ya que el rol de este es supervisar él trafico de la transferencia de archivos. Esquema de un sistema centralizado los círculos representan nodos y la línea azul la conexión entre nodos con intervención de algún servidor. file:///c /WINDOWS/Escritorio/BORRAR/valdez/David/valdez-p2p.html (2 of 6) [16/12/2001 11:13:01 AM]
Modelo Cliente servidor Ventajas Indexación de archivos: Permiten eficientes búsquedas si realiza constantes actualizaciones sobre los directorios que guardan información de los archivos compartidos. Uso de usuarios registrados: Al buscar solo con usuarios logeados del sistemas se hace más eficiente y más probable de encontrar lo deseado en la consulta. Desventajas Problemas de colapsación: Por tener una consulta sobre un único punto. Información Imprecisa: Debido a que el servidor puede proporcionar información en mal estado por link rotos o porque el servidor central solo se refresca periódicamente sus directorios. 3.2. Modelo Gnutella Descentralizado Al contrario del modelo centralizado Gnutella [B] se caracteriza por no usar un servidor centralizado para guardar información de los archivos compartidos. Se define una red a nivel de aplicación donde todo usuario (nodo) realiza al mismo tiempo funciones de cliente y servidor (servent). En sí es un sistema distribuido para almacenar y buscar información. Otra característica es la cooperación existente entre los usuarios de la red Ya que mientras un usuario ofrece los archivos que desea compartir con otros usuarios él puede realizar consultas a otro usuarios para recuperar un archivo deseado. Genutella opera bajo la modalidad propagación por inundación. La estructura de los mensajes Gnetulla es: Identificador del Nodo Función Asociada TTL Hops Payload 16 bytes 1 byte 1 byte 1 byte 4 bytes Total de la cabecera 23 bytes El protocolo Gnetulla es un protocolo de aplicación que para poder transportarse debe usar un protocolo de transporte como lo es TCP y este a su vez IP que es de red para obtener la conexión extremo a extremo. Identificador del Nodo: Identifica un nodo cuando este es propagado a otros nodos. Función Asociada: Indica las funciones que debe realizar el nodo que lo reciba y estos pueden ser:. Ping: Es usado para indicar que un nodo está presente en la red. b. Pong: Responde un mensaje Ping. Cuando un nodo recibe un mensaje Pong se puede dar una apertura de conexión. Este Pong contiene la dirección la dirección IP de su nodo y el puerto y los archivos que esta compartiendo. c. Push: Cuando un servent esta detrás de un Firewall. Otros nodos no pueden habilitar con ese servent una conexión directa para transmitir un archivo. Cuando esto pasa el nodo envía un mensaje Push request preguntando al servent que esta detrás del firewall para ver si tiene el permiso para una conexión exterior y puede enviarle el archivo. Es decir nodo que accede a la red a través de un firewall o viceversa. d. Query: Averigua los recursos de otros nodos. e. Query_Hit: Responde un mensaje Query que da a conocer los recursos disponibles en un nodo. TTL: El Campo TTL sirve evitar que en la red exista tramas perdidas y puedan causar loop infinitos. Por lo cual cuando un nodo recibe un mensaje debe decrementa el valor del TTL en una unidad antes de volver a transmitirlo; si llega a cero se desecha el mensaje el por las causas citadas anteriormente. Hops: Indica la cantidad de nodos que ha atravesado un mensaje Payload: Es la carga de información que transporta la estructura Gnetulla. 3.2.1. Propagación por inundación La propagación por inundación [B,C]se da cuando un cliente de la red envía un mensaje a otro nodo de la red, y este lo reenvía a todos los otros nodos a los cuales esté conectado; de esta forma el modo de operación se daría por ejemplo cuando un usuario A inicia una demanda a otro usuario B. A anunciara a B que esta vivo y si el usuario B esta conectado por decir a otros usuarios como C, D. B se encargará de comunicar que A esta vivo. Par poder realizar la conexión se debe tener la dirección de red del usuario (nodo) para establecer la transferencia de mensajes. Así también cada nodo que interviene debe tener la capacidad de propagar los mensajes debido a su topología y maximizar el rendimiento de la red para lo cual debe implementar una serie de reglas de propagación denominadas DSS. La transferencia de archivos se realiza con el protocolo HTTP. file:///c /WINDOWS/Escritorio/BORRAR/valdez/David/valdez-p2p.html (3 of 6) [16/12/2001 11:13:01 AM]
El nodo iniciador una vez que ya anunciado que esta vivo a los integrantes de la red pear to pear esta en condiciones de explorar los contenidos de los directorios compartidos de los mismos. Cuando inicie una demanda a todos los miembros de la red empezara con B, y luego C,D y E quienes a su vez enviarán la demanda a quienes ellos estén conectados y así para adelante seguirá la propagación. Si uno de los miembros anuncia por ejemplo D que tiene un archivo que el demandante requiere, le transmitirá la información del archivo tamaño, nombre, etc. y lo enviará por la misma senda que le llego en mensaje de demanda de A. Donde en A aparecerá una lista dando a conocer el resultado de los matcheos de la búsqueda. A entonces podrá elegir el más conveniente y si escoge D en ese momento se iniciará una apertura de conexión con él y Gnetulla habilitara la compartición de archivos sin la intervención de servidores intermediarios. 3.2.2. Reglas de Propagación Tenemos las siguientes: Regla 1: El nodo origen que inicia una transferencia de mensajes envía las funciones Ping y Query (en el campo función de la estructura del mensaje). A todos los nodos que se encuentren conectados en la red menos a él mismo. Regla 2: Antes de enviar una respuesta a las mensajes Ping y Query. El nodo revisa su tabla de interna para responder los mensaje Pong, Query_Hit y Push y establecer la conexión Regla 3: El nodo que reciba un mensaje debe decrementa el valor del TTL en una unidad antes de volver a transmitirlo; si llega a cero se desecha el mensaje esto es realiza para evitar que en la red exista tramas perdidas y puedan causar loop infinitos. Regla 4: Sin dos mensajes con el mismo identificador de nodo y función llegan a un nodo este debe evitar propagarlo durante un determinado tipo de tiempo. Para evitar mensajes que produzcan propagación redundante. Esquema de un sistema distribuido los círculos representan nodos y la línea azul la conexión entre nodos sin intervención de algún servidor la línea negra representa la red distribuida. Modelo Gnetulla Distribuido Ventajas Descentralizado: Gentulla al estar descentralizado es más robusta que un sistema centralizado al eliminar la dependencia exclusiva sobre el servidor. En la comunicación entre los nodos. Mayor poder de computo: Al ser un sistema distribuido su poder computo se incrementa porque adquiere la capacidad de procesamiento en paralelo. Desventajas Menos Seguridad: Es menos seguro en la transmisión de información de carácter privado. Si no utiliza métodos de encriptación. Altos Costos Administrativos: En la mantención de los índices virtuales de los Items. Mejor Búsqueda: Gentulla ofrece una búsqueda de cobertura más amplia que un motor de búsqueda, que solo puede como máximo abarcar el 20 % del total de los sitios web existentes. 4. Freenet Freenet es una red Pear to Pear que permite distribución de información en Internet en forma eficaz. Opera de manera descentralizada y proporciona anonimato a los usuarios. No existen servidores que centralicen el servicio por lo cual existe mayor estabilidad en la red ante posibles caídas del sistema. Usa propagación y políticas de cacheo que mejoran a Gnetulla. Incorporando estrategias para determinar que archivos son los más visitados frecuentemente para cachearlos y generar rutas alternativas hacia los archivos cacheados con el objetivo de regular el tráfico y mejor la forma de transmisión [D,E]. 4.1. Sistema de Arquitectura El sistema se basa en los componentes de un nodo que puede cumplir funciones de servent es decir ser servidor y cliente a la vez. Utiliza el Item para encapsular la información acerca de sus archivos utiliza un DataID que identifica en forma univoca el contenido de un archivo Un Item es principalmente una parte del índice global virtual de información disponible en la red. Los Items son distribuidos de una manera redundante por la red, haciéndolo fácil para los nodos encontrar información al buscarlo. La redundancia es importante dado el hecho que se asume que los nodos de la red sólo están disponibles en determinados momentos. Las colecciones son un cierto tipo de Item que contiene una lista de otros Item Las Transacciones permiten que un nodo pregunte por un cierto Item que esta en la red ubicado en un índice global virtual que utiliza palabras clave o dataid. Por lo tanto las transacciones pueden recuperar y cachear colecciones de Items de otros nodos y presentarlos al usuario solicitante. file:///c /WINDOWS/Escritorio/BORRAR/valdez/David/valdez-p2p.html (4 of 6) [16/12/2001 11:13:01 AM]
4.2 Problemas de la indexación distribuida Los problemas de la indexación distribuida son que exige un alto costo administrativo para el mantenimiento del índice global virtual de la red. Recordando que este crea cacheos de los archivos más accedidos y estos se hallan dispersos en diversos nodos de la red; para lo cual se realizan constantes actualizaciones que acarrean ventajas y desventajas. Para solucionar este problema se plantea que cada nodo dentro de la red tenga el índice lo más completo posible. Esto hace que la búsqueda sea más fácil y rápida. Además cada nodo debe llevar Items de los archivos de datos almacenados localmente. Freenet incorpora una aplicación técnica novedosa usada dentro de los queryless proxy caching. Pero en lugar de ser incorporados dentro de las páginas web o proxy caches. Freenet usa consultas, nodos e Items que permiten lograr una tolerancia a fallas y un balance de carga, distribuyendo los items a través de los nodos, con la resultante de una actualización local y consultas rápidas. 4.3. Interface del Usuario Los usuarios interactuan con una aplicación que se ejecuta dentro del nodo y presenta una interface bastante amigable. Posibilita la búsqueda de datos y compartición de archivos que uno desee. 4.4 Modelo Freenet El protocolo que usa Freenet trabaja sobre el protocolo HTTP. y para representar los datos utiliza XML sobre un browser. Manteniendo compatibilidad con respecto a los proxy servers y firewalls. El método de invocación del protocolo esta basado sobre el standart URL por lo tanto los valores son transferidos con HTTP. Para realizar un pedido se basa sobre el comando GET que puede con una serie de parámetros. Cuando se realiza un envío se utiliza el comando POST. 4.5. Procedimiento de Instalación de Freenet Freenet ofrece varias plataformas donde puede instalarse: Esta descripción corresponde para windows. [F] Con cualquier buscador se consigue acceso a la pagina Freenet GNU donde se bajan los programas instaladores de Freenet uno es Freenet_setup0.3.9.2.exe y el otro es un parche que es un freenet-0.3.9.2.zip. Se ejecuta Freenet_setup0.3.9.2.exe su instalación es bastante intuitiva, solicita una versión de Java Runtime y pregunta si lo desea bajar de internet o buscarlo en su máquina. Luego solicita un puerto de conexión. Se procede a la instalación del parche freenet-0.3.9.2.zip el cual solicita una serie de configuraciones como las citadas: Se ejecuta cfgnode.exe para configurar Freenet en forma personalizada se usa la dirección de loopack 127.0.0.1 y un número de puerto si se desea cambiar de puerto. En forma de testeo. Cuando la instalación fue exitosa aparece un icono en la barra de tareas, en la cual si se desea se puede pulir las configuraciones como las de Routeo que abarcan parámetros como de almacenamiento de los mensajes, archivos nodos, Límite de ancho de banda, máximo contenido de Threads y el máximo de Hops de vida. También fproxy con un puerto y si esta habilitado. Y otra serie de parámetros. La funcionalidad fue cumplida al compartir información y ofrecer archivos compartidos. REFERENCIAS [A] Anne Zieger, Chief Analyst what Can P2P Do For Enterprise Users. [B] CHO, S. "Understanding P2P file sharing", Lime Wire LLC, disponble en http://www.limewire.com/index.jsp/p2p [C] Gabriel Tolosa y Fernando Bordignon - Propuesta De Arquitectura Cooperativa Destinada A La Distribucion De Un Servicio De Transmisión De Radio Por Internet. [D] Proceedings: Clarke, I., Sandberg, O., Wiley, B. and Hong, T., "Freenet: A Distributed Anonymous Information Storage and Retrieval System," Proc. ICSI Workshop on Design Issues in Anonymity and Unobservability, Berkeley, CA, (2000). [E] OHAHA Inc, "Smart Decentralized Peer-to-Peer Sharing Taking Gnutella, Freenet to file:///c /WINDOWS/Escritorio/BORRAR/valdez/David/valdez-p2p.html (5 of 6) [16/12/2001 11:13:01 AM]
the Next Level" White Paper Ohaha System, http://www.ohaha.com/design.html [F] http://www.frenetproyect.org División de informática de la universidad de Edinburgh file:///c /WINDOWS/Escritorio/BORRAR/valdez/David/valdez-p2p.html (6 of 6) [16/12/2001 11:13:01 AM]