Todo sobre P2P

Contenido

Notas:

En este artículo se trata sobre las redes P2P de manera técnica, enfocado a las distintas redes y buscando cubrir los puntos importantes de cada sistema. Tanto El Otro Lado como el autor no apoyan el uso de esta información para fines fuera de la ley, y no se harán responsables del uso que se le de a la misma. Así mismo no se incluirá información que pueda ser utilizada con tales fines.

¿Que es P2P?

P2P significa "Peer to Peer" (Par a Par o Igual a Igual), no es una red ni un software, mas bien esta definido como una estructura de red o una forma de organización lógica. Esto significa que P2P no define un protocolo en específico o reglas para su uso, P2P únicamente indica la manera en que se deben de realizar las conexiones y la organización de nodos, pero dejando a la implementación definir detalles de coordinación (protocolos), estructura y seguridad (autentificación, sesión, etc).

En las redes P2P se considera a cada Nodo un "peer" o "par" dado que todos son considerados iguales dentro de la red, al contrario de las redes cliente-servidor, en P2P los recursos provienen de cada uno de los nodos y se utilizan conexiones Ad-hoc, una conexión de este tipo es una conexión dedicada a resolver un problema especifico (en este caso comunicación de los nodos).

P2P es muy sencillo de entender y normalmente no hay que adentrarse en detalles, pero a diferencia de otro tipo de conexiones (por ejemplo FTP, HTTP, etc) hay que conocer algunos términos y conceptos para poder usar los sistemas P2P de manera eficiente.

Mitos y Realidades del P2P

  • El P2P tiene virus/spyware/malware: Falso, no todo los que existe en P2P tiene virus, de hecho es solo una fracción. Virus existen en todas las redes, solo hay que tener cuidado. Algunos clientes pueden tener malware, pero existen muchas alternativas libres y seguras.
  • El P2P es ilegal: La tecnología P2P no es ilegal, lo que es ilegal es utilizarla para actos ilícitos. P2P es solo una herramienta, depende de cada uno como la utilicemos.
  • En las redes P2P hay de todo: Probablemente si, pero a veces algún material cuesta mas trabajo de encontrar.
  • Usar P2P puede mandarme a la cárcel: Si utilizas P2P para obtener material ilícito, entonces puede que vayas a la cárcel o por lo menos recibas multas.
  • Hay que ser un genio para usar P2P: Falso, la mayoría de las redes son bastante sencillas, requiriendo solo aprender unos cuantos conceptos, es cierto que existen redes mas difíciles que otras, pero el P2P está al alcance de todos.
  • No puedo seedear/compartir/subir porque tengo conexión lenta: Falso, la conexión es solo una excusa, si deseas compartir, no será un obstáculo.

Entendiendo el P2P

Antes de conocer las implementaciones de P2P (que llamaremos "redes") tenemos que conocer que el funcionamiento general de una estructura P2P, esto nos permitirá entender los conceptos mas específicos de cada una de las redes.

Para entender el funcionamiento principal de las redes P2P es necesario entender el funcionamiento de las redes no P2P (cliente-servidor) por lo que vamos a usar el problema de la transferencia de archivos (un problema que P2P resuelve de manera eficaz).

El problema

Nuestro problema contempla 5 equipos (A, B, C, D y E) interconectados en red utilizando un concentrador, además existe un equipo mas poderoso denominado S, cuyas funciones son de servidor. El problema nos indica que los equipos A y B requieren un archivo (idéntico) contenido en el Servidor S y los equipos C y D. A empieza a descargar el archivo y el equipo B empieza a descargar una vez que el el equipo A ha descargado 50% del archivo, las conexiones entre los equipos tienen velocidad infinita (o muy alta), pero los equipos solo pueden servir información a una velocidad finita.

La respuesta Cliente-Servidor

Las estructuras cliente-servidor nos dicta que siempre existe un equipo dedicado proporcionando un servicio (llámese transferencia de archivos, Http, sonido, video, etc), a este equipo se le denomina servidor, así mismo existen uno o varios equipos que requieren del servicio y que se denominan clientes. La designación del servidor puede ser de manera dinámica o administrativa. En la primera, los clientes y servidores pueden cambiar de rol en cualquier momento, mientras que en la administrativa el servidor es definido previamente y únicamente ese equipo puede proporcionar el servicio.

Resolviendo con Servidor especificado Administrativamente

Si consideramos al servidor S como el servidor designado por el administrador, entonces la solución del problema sería como sigue:

  1. El Equipo A hace una petición al Servidor S, el Equipo A puede entonces preguntar al servidor si tiene el archivo que busca
  2. El Servidor S responde afirmativamente
  3. El equipo A establece una conexión con el servidor y empieza a descargar el archivo
  4. El equipo B empieza a descargar el archivo una vez que A ha descargado el 50%, B establece una conexión de la misma manera que lo hizo A
  5. A termina de descargar el archivo, cierra la conexión
  6. B termina de descargar, cierra la conexión

En el momento en que B establece su conexión, la velocidad de transferencia de A se ve afectada, debido a que el Servidor S tiene que proporcionar el mismo servicio hacia ambos equipos, como consideramos que la capacidad de transferencia es limitada, entonces cada equipo recibe 50% de la capacidad del servidor. Cuando A termina de descargar el archivo, B recibe de nuevo el 100% de capacidad de transferencia (ancho de banda), por lo que termina mas rápido.

En esta estructura tenemos la ventaja de que todo se encuentra centralizado, lo que facilita su administración, pero, también implica que el equipo utilizado como servidor tiene que tener capacidad para atender a los clientes, por lo que su costo puede ser elevado.

Cabe mencionar que aunque el archivo existe en dos equipos mas (C y D) los clientes no pueden conectarse a ellos porque no son servidores.

Un ejemplo de este tipo de redes es el FTP y el HTML.

Resolviendo con Servidor Dinámico

En este caso, el servidor no es fijo, por lo que puede ser cualquiera de los equipos existentes, por lo que la solución queda de este modo:

  1. El equipo A hace una petición del archivo al servidor porque conoce que existe el archivo.
  2. El Servidor responde y se establece la conexión
  3. El equipo A comienza a descargar el archivo
  4. EL equipo B conoce que el archivo existe en el Servidor S, pero también en el equipo D, por lo que envía una petición a ambos
  5. EL Servidor responde que ya tiene un usuario, por lo que el equipo B lo ignora, se conecta al Equipo D que responde afirmativamente
  6. A termina de descargar el archivo, se cierra la conexión.
  7. B termina de descargar el archivo, se cierra la conexión.

En este escenario, la velocidad de ambos equipos permaneció constante durante todo el proceso, debido a que se conectaron a diferentes equipos. Las ventajas de esto es que la carga se distribuye entre todos los equipos capaces de proporcionar el servicio, pero esto lleva a que la administración sea mas difícil y a que los equipos conozcan previamente donde se encuentran los servicios.

La Respuesta P2P

En un escenario P2P la transferencia se realizaría como sigue:

  1. El equipo A pregunta a todos los Nodos si tienen el archivo que busca
  2. EL servidor S y los equipos C y D responden afirmativamente
  3. A establece una conexión con cada uno y empieza a descargar una parte del archivo (de cada uno)
  4. B se conecta a la red y pregunta por el archivo
  5. A, C, D y S responden afirmativamente
  6. B establece una conexión con cada uno y comienza la descarga, aunque A no tiene el archivo completo, puede servir las partes que ya ha descargado
  7. A solicita algunas partes que no tiene a B
  8. B puede tener partes que A no tiene puesto que tiene conexión independiente a las fuentes y la descarga puede ser no secuencial
  9. A termina de descargar el archivo pero continua con su conexión a B
  10. B termina la descarga y cierra las conexiones
  11. Si E desea el mismo archivo, puede ahora conectarse con A, B, C, D y S

En P2P las transferencias pueden ser muy rápidas, debido a que se tienen conexiones con todos los equipos capaces de proporcionar el servicio, además, los peers que ya se encuentran descargando pueden apoyar a los nuevos peers. Dos grandes desventajas es que la descarga depende del numero y calidad de las peers conectadas, así mismo, el protocolo es mas complejo que una estructura cliente servidor. Dependiendo de la implementación la administración puede ser muy sencilla o muy compleja.

Usos de P2P

  • Transferencia de Correos: el email se transmite usando una red P2P entre los MTA (mail transport agents)
  • Multimedia: Existen aplicaciones para visualizar video en demanda a través de redes P2P como democracy player, skype también se apoya en parte por un sistema P2P
  • Investigación: Existen varios proyectos que buscan resolver problemas complejos utilizando P2P y cómputo distribuido.
  • Anonimato y Libertad de Expresión: Existen redes P2P cuya finalidad es proporcionar anonimato a los usuarios.
  • Transferencia de Archivos grandes: Hay muchas organizaciones que alientan a los usuarios a distribuir sus archivos en redes P2P, tales como distribuciones linux, fundaciones de software libre, sistemas abiertos, etc.

Además varios protocolos se apoyan en sistemas P2P para agilizar procesos, así como algunos P2P se apoyan en redes cliente servidor, un ejemplo es en protocolos de enrutamiento (usados en el Internet), donde la información sobre las conexiones de los host se intercambia entre cada router formando una red P2P.

Legalidad del P2P

El P2P como tecnología es legal en la mayoría de las jurisdicciones, mientras sea utilizado para fines dentro de la ley, desafortunadamente, debido a la naturaleza de anonimato que proporciona el P2P la distribución de material ilegal por medio de esas redes es cada vez mas frecuente. La mayoría de las Redes y Software P2P responsabilizan al usuario del uso que se le da, librándose (en parte) de las presiones legales de grupos de derecho de autor como la SGAE, MPAA, RIAA, etc. Otra razón mas de "dudosa legalidad" del P2P radica en que algunas jurisdicciones prohíben el anonimato o el uso de sistemas de anonimato que se apoyan mayormente en P2P. Existe también una marcada aversión al P2P por parte de empresas y escuelas, esto es debido a que los usuarios pueden meterlos en problemas y a los altos requerimientos de ancho de banda, muchas escuelas y empresas prohíben el uso de P2P dentro de sus instalaciones. Antes de utilizar una red P2P es importante verificar las leyes de nuestro país en lo que respecta a derechos de autor, anonimato y las reglas específicas de la red que utilicemos.

Ataques en P2P

Las redes P2P promueven la libre compartición de archivos y servicios, es por eso que es mas vulnerable a determinados tipos de ataques.

  • "envenenamiento" (poisoning): Consiste en distribuir información y/o archivos que no corresponden a la descripción dada (archivos falsos).
  • "contaminación" (polluting): Insertar piezas o paquetes malignos dentro de paquetes legítimos, a veces solo para afectar el rendimiento y otras conteniendo malware.
  • "saturación" (DoS, choking): El tráfico provocado por las redes P2P puede ser excesivo para los sistemas, provocando que la red se ahogue, pero también puede haber ataques orquestados para producir Negación de Servicios.
  • "identificación": Algunas redes P2P permiten identificar a los usuarios, algo que han aprovechado bastante los organismos de propiedad intelectual para localizar usuarios.
  • "estafas" (scamming): muchas "empresas" se aprovechan de la ignorancia del usuario y le venden servicios especiales, que no son otra cosa mas que acceso a lo que es gratis, sólo quitándoles su dinero.

Hay redes mas seguras que otras, pero todas pueden tener su grado de peligrosidad (que se verá mas adelante), en la siguiente sección veremos maneras de proteger el equipo contra los ataques mencionados anteriormente.

Protegerse en redes P2P

Hay muchas formas de protegerse contra ataques en redes P2P, estas son algunas de las mas importantes:

  • NO HACER COSAS ILEGALES: La mejor forma de no terminar con una demanda es no propiciar una.
  • Asegúrate que el cliente que vas a utilizar no instale malware en tu computadora: es preferible utilizar clientes de código abierto o conocido perfectamente (reviews, documentación, etc).
  • Mantén un antivirus actualizado (usuarios windows), y tu firewall a punto (de ser posible).
  • Busca utilizar redes mas seguras cuando puedas.
  • Instala software de protección P2P como Peerguardian o scripts de IPFILTER
  • Maneja tu Conexión sabiamente: la mayoría de los clientes P2P tienen opciones de configuración para optimizar el uso de la red, una congestión es común, pero si se da cada vez que se usa el programa, entonces hay un problema.
  • La mayoría del software de P2P es gratis, así como los servicios, si hay una compañía intentando cobrarte entonces verifica bien los reviews y busca mas información antes de pagar, existen programas P2P de pago, siempre es bueno informarse antes de pagar.

Siempre que uses una P2P ten sentido común y procura conocer bien el funcionamiento de la red, así evitarás sorpresas y problemas.

PeerGuardian

PeerGuardian es un software diseñado para proteger al usuario de los peligros de las redes P2P, su trabajo es filtrar las conexiones de aquellos usuarios peligrosos (por ejemplo spammers, scammers, etc), es recomendable tenerlo instalado y actualizado, se puede descargar de Http://phoenixlabs.org/pg2/

Existen versiones para linux, windows y Mac, la configuración es sencilla, una vez instalado es cuestión de actualizar todas las listas y activar el programa, de esta forma empezará a analizar las conexiones y a filtrar las dañinas. Es importante reiniciar las aplicaciones P2P después de instalar PeerGuardian para que pueda empezar a monitorear sus conexiones. Algunas veces el filtrado HTTP puede ocasionar problemas al ver algunas páginas, desactivarlo soluciona eso.

Firewall

Es importante configurar un firewall para evitar problemas de intrusos, el firewall de windows no es una muy buena opción (aunque es mejor que nada), una buena recomendación es COMODO personal firewall o Kerio Firewall. Para sistemas linux existen soluciones como FireStarter o Ip_tables y OSX cuenta con su propio firewall (accesible en la configuración del sistema) En la sección de configurando P2P se analizarán los pasos a seguir para usar P2P sin problemas a través de un firewall.

Usando P2P

Usar P2P no es difícil, requiere algo de configuración y paciencia, por lo que en esta sección se van a detallar pasos generales para tener funcionando la mayoría de las redes P2P.

Clasificación de las Redes P2P

Como se mencionó anteriormente, las redes P2P basan su funcionamiento en conexiones de persona a persona, pero tienen ciertas clasificaciones que nos ayudan a agruparlas en 4 clases:

  • Centralizadas: Estas redes dependen de un equipo servidor central que administra el funcionamiento, ejemplo: Napster
  • Descentralizadas: No dependen de un equipo en específico, cada nodo contiene información y esta se comparte, ejemplo: Freenet
  • Estructuradas: Existen categorías de nodos que permiten un control sobre la estructura de la red, ejemplo: BitTorrent
  • Des estructurado: Las conexiones y la estructura general es arbitraria, ejemplo: Gnutella

Puede haber redes híbridas donde se utilizan varias clasificaciones para diferentes motivos. Ademas, podemos clasificar las redes de acuerdo a la forma en que realizan las búsquedas y administran los archivos (en caso de ser transferencias), podemos distinguir 2 grandes grupos:

  • Redes Globales: En este tipo de redes existe solamente una red de servidores que proveen servicio a todos los usuarios, normalmente esta operada por una compañía u organización, aunque también puede ser puramente aleatoria, ejemplos de estas redes son Freenet, Kazaa, Gnutella y OpenFT.
  • Redes Privadas: En este tipo de redes no existe una red principal, solo existen muchas redes basadas en el protocolo que pueden o no estar interconectadas entre si, ejemplos: bittorrent y DirectConect.

Configuración de redes P2P

Para poder utilizar una red P2P es importante tener el sistema adecuadamente configurado, algunos de los pasos mas importantes son:

Firewall

En la mayoría de los sistemas P2P es necesario un puerto de comunicaciones, por lo que hay que permitir que el software firewall permita conexiones a través de ese puerto (la mayoría bloquea accesos no solicitados), detalles de como hacer esto dependen de la red y del firewall utilizado:

  • MacOSX Firewall: Http://www.wikilearning.com/como_configurar_el_firewall_de_los_mac_os_x-wkccp-8733-1.htm
  • Windows Firewall: Http://www.uned.es/csi/sistemas/secure/seguridad/docs/xp-firewall.htm
  • COMODO personal Firewall: Http://foros.softonic.com/showthread.phtml?goto=lastpost&t=32085
  • IPTABLES (linux): Http://www.pello.info/filez/firewall/iptables.html

En algunos tutoriales se habla de una red en especifico, los pasos pueden aplicarse a la mayoría de las redes.

Router

Ademas de permitir las conexiones por software, es necesario habilitar las conexiones en el hardware de red principalmente cuando se trabaja en una estructura de red donde exista un dispositivo de interconexión, como puede ser un router DSL (o ADSL), un switch en modo VPN (o con firewall) o un firewall físico.

Debido a que el proceso es muy diferente, dependiendo del programa, modelo y tipo del aparato y configuración de red, es imposible explicarlo aquí, pero hay una excelente página que nos puede ayudar: Http://portforward.com/

Nota: Aunque existe la herramienta automática que ofrecen en el sitio, es muy sencillo hacerlo a mano.

Básicamente Port Forwarding consiste en indicarle al dispositivo a donde dirija el tráfico cuando llegue a un determinado puerto.

Cliente

El último paso para poder utilizar una red P2P es configurar correctamente el cliente, la mayoría cuentan con asistentes que nos guiarán durante el proceso, pero no está de mas agregar un poco de configuración personalizada, estos son algunos de los parámetros que nos pueden ser útiles:

  • Puertos: Configurar correctamente los puertos en la aplicación permite que la red funcione correctamente, es muy importante que se utilice el mismo puerto en todas las configuraciones (es decir, en el firewall, router y la aplicación ), también es importante saber que dos aplicaciones no pueden utilizar el mismo puerto a la vez (así que hay que asignar un puerto diferente o un rango de puertos diferente a cada red que pensemos ejecutar simultáneamente) ademas, no se puede que dos computadoras compartan el mismo puerto en la red (hacer port forward a dos computadoras) por lo que también es necesario un puerto diferente a cada computadora (así sea la misma red y el mismo cliente) y una configuración de port forwarding a cada una.
  • Conexiones: Esto se refiere al número máximo de conexiones a otras peers, este número depende en gran medida del tipo y velocidad de conexión que se tenga, demasiadas conexiones pueden ahogar la red, mientras que muy pocas afectan el rendimiento, la mejor manera de encontrar la configuración es siguiendo el asistente (si existe) y después probar manualmente hasta encontrar la configuración mas adecuada.
  • Límites de Velocidad: Debido a la naturaleza de las redes en general, no es posible que trabaje a toda velocidad de subida y de bajada, es importante poner límites de velocidad dependiendo de la actividad que vayamos a realizar. Limitar la velocidad de bajada hace que las descargas sean mas lentas, pero libera el ancho de banda a otras aplicaciones, limitar la subida nos ayuda a que la bajada sea mas rápida, debido a que cada vez que se recibe información el sistema espera a que haya un “acuse de recibo”, si la conexión esta ocupada subiendo, los acuses de recibo se enviarán mas lentamente y el sistema del otro lado de la linea esperará hasta recibirlos antes de enviar mas información.

IMPORTANTE: deshabilitar la subida es MALO, puesto que rompe con la filosofía P2P y además, muchas redes lo penalizan.

  • Modos Especiales: Todas las redes tienen diversos modos especiales que pueden mejorar el desempeño en algunos casos, por ejemplo Freenet ofrece mejores velocidades a aquellas personas que se convierten en nodos fijos.

Términos

Es útil ademas conocer algunos términos comúnmente utilizados en todas las redes, durante la descripción de cada una de las redes.

  • Nodo / peer: Cada uno de los sistemas conectados en un red.
  • Servidor: Se le llama al sistema que proporciona algún servicio extra para el funcionamiento de la red.
  • Leecher: Nombre dado al usuario que no comparte o comparte muy poco, hay redes donde se nota poco y hay algunas donde influye mucho.
  • Seeder / Uploader: Nombre de la persona que se encuentra compartiendo un archivo a otras personas.
  • Ratio: Se refiere a la división de lo que subimos entre lo que bajamos, es decir, si bajamos 1 gb y subimos 500 mb el ratio es de 0.5
  • QR / Queue: Se refiere a una lista de espera por partes del archivo.
  • Hash: es un término que se refiere a un proceso matemático con el que se genera un número en base a los contenidos del archivo, teóricamente es único para cada archivo, y además siempre generará el mismo número si se aplica al mismo archivo, permite verificar que los archivos sean correctos (también es llamado Checksum y hay quienes le llaman Mdsum)
  • Descarga Multiparte: Se le llama así al método en el que se descargan diversas partes de muchas fuentes diferentes al mismo tiempo (como en el ejemplo del principio)
  • Descarga Directa: Se le llama así al método de transferencia en el que se utiliza una única conexión al nodo que provee el servicio, no se descarga de mas nodos.
  • Front-end: Se le llama así a una aplicación que sirve de interfaz para otra, por ejemplo una aplicación gráfica que facilita el uso de una aplicación de línea de comando.
  • Conexión Pasiva: Es aquella conexión que únicamente escucha (espera) a que otro nodo le haga una petición.
  • Conexión Activa: Es aquella donde el nodo envía peticiones a otros nodos.
  • No Conectable: Sucede cuando no se puede comunicar directo al puerto de la aplicación, una razón común es mala configuración del firewall y/o del router.

Conforme veamos las redes veremos términos específicos y se detallará cada uno.

Redes P2P

En esta sección se presentan las redes P2P mas comunes, sus usos y algunos conceptos útiles , esta guía cubre los aspectos esenciales de las redes, los clientes utilizados y algunos tips y sugerencias para utilizarlas optimamente, lamentablemente no se puede incluir toda la información referente a cada una, por lo que únicamente se presentarán los datos mas significativos. Solamente se van a presentar redes que continúen en funcionamiento utilizando protocolos P2P gratuitos, por lo que los sistemas de paga no serán incluidos.

NOTA: No se incluyen ligas de descarga para evitar infringir cualquier norma.

FastTrack

Datos:

  • Tipo: Descentralizada, estructurada, global (dependiendo del cliente)
  • Desarrollado por: Nikklas Zenström y Janus Friis
  • Búsqueda Integrada: Si
  • Riesgo: Medio-Alto
  • Uso: compartir archivos de todo tipo.
  • Estado actual: gratis, open source, activo.

Historia: FastTrack constituye una de las primeras redes P2P después de Napster, es una de las redes P2P mas utilizadas, su cliente oficial es Kazaa, pero ha sido sustituido por versiones de código abierto. La parte oficial de Kazaa está relativamente muerta, pero la red sigue en uso a través de clientes no oficiales. Ahora existen varios clientes que utilizan esta red, pero solamente los compatibles con Kazaa son llamados FastTrack, las demás son protocolos modificados incompatibles.

Funcionamiento: Su funcionamiento es en P2P híbrido puesto que mucho del trabajo es realizado por nodos especiales (denominados Super Nodos) los cuales están encargados de mantener índices temporales de los archivos en la red. Se realizan descargas multiparte capaces de resumir descargas interrumpidas y de realizar búsquedas globales, no tiene un servidor central.

Clientes:

  • Kazaa Oficial: Este es el cliente oficial de la red, creado por Sharman networks, contiene malware por lo que NO se recomienda su uso.
  • Kazaa Lite K++: Versión no oficial del Kazaa, se removió el spyware y se agregaron alguna herramientas y modificaciones extras. Es de código cerrado y difícil de conseguir.
  • gIFT: Cliente multiplataforma de linea de comando diseñado para soportar distintas redes, entre ellas FastTrack, es de línea de comando pero existen Front ends para la mayoría de los sistemas operativos.
  • Apollon: Cliente QT para Linux y KDE, es un front end para gIFT, cuenta con funciones de búsqueda y de manejo de descargas.
  • KcEasy: Front-end windows para gIFT, es necesario bajar un plugin para poder utilizar la red FastTrack.
  • iMesh: Cliente bastante popular de FastTrack con algunas modificaciones, continúa activo.
  • Poisoned: Front-end para gIFT en Mac OSX, uno de los mas populares, por el momento no existe en versión universal.

Se recomienda el uso de los clientes de gIFT, pues son open source y continúan en desarrollo.

Instalación y Uso: El acceso a la red FastTrack es relativamente sencillo, solamente hay que instalar el cliente adecuado (la mayoría de los instaladores se aseguran de incluir gIFT e instalarlo), una vez hecho esto, el sistema se encargará automáticamente de realizar las conexiones. Los puertos utilizados son configurables y es recomendable mantenerlos abiertos y correctamente dados de alta en el router. Todos los clientes incluyen un sistema de búsqueda en el que se pueden localizar los archivos directamente. Los archivos se califican en cuanto a “fuentes”, mientras mas fuentes tenga un archivo mas rápido bajará, esto es porque cada fuente constituye un usuario que tiene compartido el archivo.

Problemas: Debido a que la red no es unificada y a algunos errores de diseño, la red FastTrack se ve gravemente afectada por el poisoning y polluting, es importante tener mucho cuidado con cualquier archivo distribuido por estas redes pues no hay garantía de que sea seguro.

Términos Especiales: FastTrack no utiliza ningún concepto o término en específico, antes existía el participation level que indicaba el grado de participación de un nodo de acuerdo a lo que comparte, pero ha sido desechado en la mayoría de los clientes.

Tips y Configuraciones: FastTrack es relativamente sencillo de configurar, y no existen configuraciones especificas a la red, para los clientes gIFT es recomendable conseguir una lista de nodos actualizada al momento de instalar. Se puede conseguir de alguna otra red (como openFT) o de algunos foros y sitios web.

Gnutella

Datos:

  • Tipo: Descentralizada, estructurada, global
  • Desarrollado por: Justin Frankel y Tom Pepper
  • Búsqueda Integrada: Si
  • Riesgo: Medio-Alto
  • Uso: compartir archivos de todo tipo.
  • Estado actual: gratis, open source, activo.

Historia: Gnutella es un protocolo abierto desarrollado en paralelo con los clientes, a diferencia de la mayoría de las redes similares (FastTrack, Napster, etc) Gnutella no es respaldada por ninguna compañía, y no existe un cliente oficial. Originalmente fue desarrollado por Nullsoft, pero tras ser removido por la compañía pasó a ser del dominio público a través de clones. Actualmente constituye la tercera red P2P mas utilizada en el mundo.

Funcionamiento: Gnutella es una red descentralizada totalmente, donde se utilizan diferentes métodos de comunicación para lograr mas altas velocidades y liberar a la red de sobrecargas. La red se basa en las interconexiones de los nodos que se intercambian información del estado de los demás, las descargas se realizan por conexión directa activa o pasiva (dependiendo de la configuración de red) y se utilizan métodos especiales para poder pasar a través de firewalls y routers. Las búsquedas se estructuraron en un principio por el mecanismo de inundación (donde el nodo pregunta a sus nodos adyacentes y estos a sus adyacentes, etc hasta llegar a un límite) pero después se implementaron tablas de índice distribuidas. Además existe una determinada estructuración de la red con el motivo de hacerla mas extensible.

Clientes:

  • Limewire: Cliente popular que ofrece una versión gratuita y una de paga, tiene algunas funciones avanzadas como transferencias entre clientes detrás de un firewall (aunque algunos otros clientes ya tienen esa función).
  • Frostwire: Versión alternativa creada por ex-desarrolladores de Limewire. Su principal característica es ser gratuito y open source, una excelente opción, es casi idéntico a limewire.
  • Cabos: Otro cliente basado en limewire, disponible para macosx y windows
  • Apollon: Cliente QT para Linux y KDE, es un front end para gIFT, funciones de búsqueda y de manejo de descargas.
  • KcEasy: Front-end windows para gIFT, con soporte para Gnutella
  • Poisoned: Front-end para gIFT en Mac OSX, uno de los mas populares, por el momento no existe en versión universal.
  • Acquisition: Cliente para Mac OSX, se considera el mas pulido de todos, pues tiene un alta integración con el sistema operativo, es de paga.

Gnutella es de las redes con mas clientes que existen, pero los anteriores son los mas populares, se recomienda el uso de clientes especializados, como frostwire.

Instalación y Uso: Gnutella se instala de la misma manera que kazaa, tiene puertos configurables y es sencillo de utilizar. La búsqueda se realiza de la misma forma que kazaa.

Problemas: Gnutella tiene la misma estructura que Kazaa y otros protocolos, por lo que se ve afectado por poisoning y polluting.

Términos Especiales: Los conceptos mas importantes de la red Gnutella son:

  • Leaves (hojas): Son nodos que acaban de entrar a la red y se conectan por el exterior, no pueden conectar a nuevos nodos.
  • Ultra peer: se llama así a los nodos capaces de contener nuevos nodos (hojas) y de almacenar índices de búsqueda.

Tips y Configuraciones: Gnutella es un protocolo muy sencillo de utilizar, la principal recomendación es buscar un cliente que tenga mas facilidades de búsqueda puesto que la mayoría contiene características similares

OpenFT

Datos:

  • Tipo: Descentralizada, estructurada, global
  • Desarrollado por: gIFT project
  • Búsqueda Integrada: Si
  • Riesgo: Medio-Alto
  • Uso: compartir archivos de todo tipo.
  • Estado actual: gratis, open source, activo.

Historia: Creado como la red de gIFT, no es una red muy popular pero se considera como “respaldo” para los clientes basados en gIFT, su nombre significa Open FastTrack, pero es un protocolo diseñado desde cero, solamente tomando algunas ideas del protocolo FastTrack original.

Funcionamiento: Se basa en la misma arquitectura que FastTrack o Gnutella, con algunas ligeras modificaciones estructurales.

Clientes:

  • Apollon: Cliente QT para Linux y KDE, es un front end para gIFT, funciones de búsqueda y de manejo de descargas.
  • KcEasy: Front-end windows para gIFT
  • Poisoned: Front-end para gIFT en Mac OSX, uno de los mas populares, por el momento no existe en versión universal.

Este protocolo esta soportado solo por clientes gIFT por lo que no ha tenido mucho éxito.

Instalación y Uso: OpenFT se instala con cualquier distribución gIFT, tiene puertos configurables y no hay muchas opciones disponibles.

Problemas: OpenFT comparte los mismos problemas de Gnutella y FastTrack

Términos Especiales: No hay una terminología especial en FastTrack que sea de interés.

Tips y Configuraciones: La configuración es muy sencilla y no tiene tantos requisitos como otras redes.

Ares

Datos:

  • Tipo: Descentralizada, estructurada, global
  • Desarrollado por: aresgalaxy
  • Búsqueda Integrada: Si
  • Riesgo: Medio-Alto
  • Uso: compartir archivos de todo tipo.
  • Estado actual: gratis, open source, activo.

Historia: Ares Galaxy es una red P2P desarrollada desde cero, en un principio se pensó utilizar la red Gnutella, pero al final se creó una red similar pero personalizada.

Funcionamiento: Ares Galaxy se basa en una estructura similar a Gnutella, utilizando hojas y super nodos, la diferencia es que el protocolo es mas difícil de detectar, permitiendo que funcione en algunos lugares donde otras redes P2P no lo hacen.

Clientes:

  • Ares Galaxy: Cliente oficial open source, uno de los mejores..
  • Apollon: Cliente QT para Linux y KDE, es un front end para gIFT, funciones de búsqueda y de manejo de descargas.
  • KcEasy: Front-end windows para gIFT, el plugin de Ares se ha reportado que tiene problemas, especialmente al conectarse a la red.
  • Poisoned: Front-end para gIFT en Mac OSX, uno de los mas populares, por el momento no existe en versión universal.

En este caso se recomienda el uso del cliente oficial.

Instalación y Uso: La instalación es bastante sencilla, además, gIFT ya lo incluye por defecto.

Problemas: Ares se considera una de las redes mas limpias, aunque su estructura hace que no se pueda clasificar como segura (queda clasificada junto con Gnutella, FastTrack y OpenFT).

Términos Especiales: Ares no tiene ningún término en especifico que sea necesario conocer.

Tips y Configuraciones: El plugin Ares de gIFT tiene varios problemas identificados con Ares, por lo que de no funcionar lo mejor es cambiar al cliente oficial.


Freenet

Datos:

  • Tipo: Descentralizada, estructurada, global
  • Desarrollado por: Freenet Project
  • Búsqueda Integrada: Si
  • Riesgo: Variable
  • Uso: distribuir información de todo tipo (sitios web, archivos, etc).
  • Estado actual: gratis, open source, activo.

Historia: Freenet nace como iniciativa de Ian Clarke con el propósito de crear una red abierta y no controlada por ninguna organización, principalmente se usa para compartir contenido censurado de manera anónima entre los usuarios.

Funcionamiento: La red se basa en nodos, donde cada uno es una persona y mantiene copias del contenido, cuando uno de los nodos desea ver algo que se encuentra con otro nodo entonces hace la petición y se le hace llegar el contenido. Debido a esto es imposible identificar al creador original si el contenido se publica de manera anónima.

Clientes:

  • Freenet Client: se encuentra disponible para linux, windows y mac. Es el cliente oficial y proporciona excelente servicio.

En este caso se recomienda el uso del cliente oficial.

Instalación y Uso: Freenet es un tanto complejo de instalar porque instala un servidor web en la computadora, las conexiones se realizan por medio de un navegador web, aunque hay formas de enviar correos a través de freenet. La instalación es dependiente de la plataforma, pero se ha querido unificar por medio del uso de javawebstart.

Una vez hecho esto hay que descargar los primeros nodos de freenet, para esto hay que obtenerlos de algun amigo o conocido. Si no conocemos a nadie con freenet, entonces hay que obtener la referencia a mano, para los que le saben al IRC pueden ir a irc.freenode.net a la sala #freenet-refs e intercambiar ahi referencias, o para los flojos (o muy timidos) puede usar refbot que encuentran aqui: http://wiki.freenetproject.org/Refbot

Una vez realizadas las conexiones a diferentes nodos hay que esperar a que nuestro nodo se actualice (le toma desde horas hasta unos cuantos días dependiendo de la cantidad de nodos conectados) antes de poder visualizar contenido.

Para usar freenet es tan sencillo como apuntar nuestro navegador a localhost:8888 y empezar a navegar en algunos de los sitios de muestra.

Problemas: Freenet tiene un problema muy grande que a la vez es su gran ventaja, debido a que es una red no regulada ni censurada es bastante segura en cuanto a navegación anónima, pero eso quiere decir que vamos a poder encontrar de todo tipo de contenido, incluyendo cosas que no querremos ver, por lo hay que tener cuidado sobre donde damos click. Puede existir la transmisión de virus por freenet, asi que cuidado.

Términos Especiales:

  • Nodo: Asi es como se le llama al cliente de cada usuario.
  • Referencia: Es un archivo que indica a otros nodos de freenet como conectarse entre ellos, es necesario tener al menos 5 referencias para que funcione.
  • Freesite: Sitio web hospedado en freenet.
  • Index: Son sitios dedicados a mantener un índice del contenido de freenet, se podria decir que son el punto de entrada de freenet.
  • flog: Blog hospedado en freenet, se pueden encontrar de todo tipo de temas.
  • key: todas las páginas y recursos dentro de freenet se identifican por una llave (key), esta llave es anónima por lo que no se puede rastrear al autor.

Tips y Configuraciones: Freenet requiere el puerto 17685 para las conexiones, por lo que hay que hacer un forward. Paciencia es la clave de freenet, es necesario tener al menos 5 referencias y haber trabajado en la red varias horas (incluso hasta semanas) antes de que empiece a funcionar correctamente. Tener un nodo freenet dedicado permite obtener mejores velocidades.

Direct Connect

Datos:

  • Tipo: Centralizado, Estructurada, global y privada
  • Desarrollado por: Jonathan Heiss
  • Búsqueda Integrada: Si
  • Riesgo: Variable
  • Uso: transferencia de archivos
  • Estado actual: gratis, open source, activo.

Historia: Direc Connect o DC es un protocolo especializado en la transferencia de archivos 1 a 1 (es decir de un cliente a otro), nace con el cliente NeoModus Direct Connect de Jonathan Heiss y actualmente es desarrollado activamente por él mismo y por el equipo de DC++.

Funcionamiento: Esta red se basa en servidores llamados hubs, los cuales se encargan de mantener una lista de clientes conectados en la red. Cada hub es administrado de forma privada por el dueño del sistema en el que reside, y tiene control sobre las reglas del mismo, los hub normalmente funcionan como comunidad, con un chat principal y reglamentados, muchos hubs tienen acceso controlado.

La lista de hubs normalmente se puede encontrar en sitios web y hay algunos clientes que implementan descarga directa de la misma, otros prefieren no dar su dirección mas que a usuarios seleccionados.

Las descargas se hacen por medio de conexiones ad-hoc al usuario poseedor del archivo, y no existe la descarga multiparte.

Clientes:

  • NMDC: cliente oficial, actualmente no se usa mucho debido a la gran cantidad de bugs y a que no es mantenido tan activamente.
  • DC++: Cliente mas popular de DirectConnect, muchas funciones y además ha sido pionero en la introducción de nuevas mejoras, solo Windows.
  • ShakesPeer: Cliente DC para mac.
  • Valknut: Un cliente DC para linux y mac, ha recibido muy buenas notas.
  • LinuxDC++: Port del DC++ pero en linux, muy buenas notas.
  • ApexDC: Cliente para windows que es considerado de los mejores (incluso mejor que DC++)

Se recomiendan todos excepto NMDC.

Instalación y Uso: La instalación de DC es muy sencilla, puesto que la mayoría de los programas tienen algun sistema para recopilar información. En algunos programas hay necesidad de actualizar la lista de hubs públicos manualmente, para ello solo hay que buscar un poco por internet para encontrar la lista. Por último el puerto es importante, puesto que de no ser configurado nuestro cliente entrará en modo pasivo, y muchos hubs no permiten eso.

El uso de las redes DC es relativamente fácil, primero hay que navegar por los hubs públicos, una vez hecho esto es cuestión de entrar a uno que nos llame la atención (la mayoría tienen descripciones), una vez dentro, podemos ejecutar una búsqueda o navegar directamente a algún usuario.

Ya que encontramos el archivo se pone en lista de espera y en cuanto haya un slot libre se iniciará la descarga, hay que tener en cuenta las reglas del hub, algunos solamente funcionan si se tiene compartido una determinada cantidad de información y otros obligan al usuario a estar dentro del hub (y participando) durante toda la descarga.

Problemas: El mayor problema de esta red es la complejidad de tener que entrar a cada hub y estar al pendiente de las reglas, los archivos tienden a ser mas seguros debido a que los hubs implementan un estricto control. La red DC es la mas insegura en lo que respecta a identificación de los usuarios debido principalmente a errores de diseño.

Términos Especiales:

  • Hub: Servidor principal de la red.
  • Slot: Es una conexion a un usuario, por ejemplo si una persona tiene 2 slots quiere decir que puede aceptar dos conexiones al mismo tiempo.
  • Filelist: Como su nombre lo indica, una filelist es una lista de los archivos que tiene una persona.
  • op: Asi se le llama al adminsitrador de la red, normalmente hay mas de uno y un robot de seguridad (encargado de enviar mensajes automáticamente)

Tips y Configuraciones: Es muy importante estar al pendiente de las reglas del hub y cumplirlas, muchas veces los hubs mas estrictos son los que tienen mejor contenido. Al aproximarse a una red DC lo mejor es hacerlo con ganas de entrar a una comunidad, de lo contrario no funcionará como debe.

eDonkey

Datos:

  • Tipo: Descentralizado, Estructurada, global
  • Desarrollado por: MetaMachine
  • Búsqueda Integrada: Si
  • Riesgo: Medio-Alto
  • Uso: transferencia de archivos
  • Estado actual: gratis, open source, activo.

Historia: eDonkey es el nombre una red desarrollada por MetaMachine para el intercambio de archivos, una de sus principales características es que es una red híbrida entre servidores y P2P, el cliente original y varios de los servidores mas grandes han sido desactivados por las autoriades, pero aún existen diversos servidores y nuevas tecnologías como Kad que la mantienen como la red número 1 de P2P.

El código de los clientes de eDonkey es abierto y existen muchos clientes diferentes, pero el código de los servidores permanece como código cerrado, con el motivo de evitar la creación de servidores piratas.

Funcionamiento: eDonkey se basa en servidores centrales que mantienen conexiones con los usuarios y que se encargan de mantener un índice de los archivos, los clientes se conectan entre sí por medio de conexiones ad-hoc y pueden existir múltiples conexiones.

Adicionalmente existe la red Kad que proporciona servicios de indexado descentralizado.

Otra función es el uso de elinks, que permiten ligar directamente a un archivo dentro de la red, esto permite mas seguridad, pues los elinks pueden comentarse en foros u otros canales, y avisar si el archivo especificado es peligroso.

Clientes:

  • eDonkey2000: cliente oficial, sigue siendo uno de los mas utilizados a pesar de que esté descontinuado. multiplataforma
  • aMule: Otro cliente bastante popular basado en emule, multiplataforma.
  • eMule: el cliente mas popular de eDonkey, se dice que el 80% de los usuarios lo utilizan, solo para Windows.
  • MLDonkey: Cliente multiplataforma y multi red.
  • Shareaza: Cliente multi red para windows
  • fileDonkey: es un portal web dedicado a buscar archivos en la red eDonkey

Existen otros clientes, pero los mas populares y recomendados son aMule y eMule.

Instalación y Uso: La instalación de los clientes de eDonkey es sencilla y no presenta muchos problemas (excepto en los clientes multired que puede llegar a tener inconvenientes), eDonkey requiere 2 puertos, uno para la red y otro para Kad (que es una red acompañante), no todos los clientes soportan Kad. Una vez realizada la configuración inicial, el cliente se conectará a uno de los servidores y recibiremos una ID. Si ésta es Alta quiere decir que no tuvimos problemas con los puertos, de ser ID baja, entonces nos encontramos en modo pasivo y no podremos usar muchas de las funciones de la red.

Los clientes incluyen una función de búsqueda, esta se puede realizar de forma local (en el servidor al que estamos conectados) o global (todos los servidores), las busquedas globales toman mas tiempo que las locales.

Cuando encontramos el archivo que buscamos lo ponemos en cola de descarga, donde el cliente empezará a contactar a las demás peers. Normalmente entraremos en una cola de espera para empezar a descargar partes del archivo, estas colas pueden ser de miles, por lo que es una red lenta para empezar la descarga, nuestra posición en la cola se mide con el QR (Queue Rating) donde un QR de 0 indica que estamos descargando.

Algunos clientes incorporan algo llamado Credit Points, que indican el nivel de participación de un usuario en la red.

Problemas: eDonkey al ser descentralizado y público presenta problemas de poisoning y polluting, además de ser una de las redes mas lentas que existen (para comenzar a descargar).

Términos Especiales:

  • ID: Identificador otorgado a cada usuario, puede ser alto o bajo..
  • ID alto:Significa que los puertos necesarios estan abierto y podemos utilizar toda la capacidad de la red.
  • ID bajo: Existe un problema de configuración de los puertos y no podemos recibir conexiones. (Dos usuarios con ID baja no pueden conectarse entre si)
  • QR: Queue Rating, indica la posición en la lista de espera.
  • Credits: Son puntos que se otorgan por el buen comportamiento de los usuarios y permiten moverse mas rapido en las colas de espera.

Tips y Configuraciones: Para un correcto funcionamiento de la red es recomendable que se tengan correctamente configurado los puertos para recibir ID alta, esto permite agilizar las transferencias y además aligera la carga hacia los servidores.


Bittorrent

Datos:

  • Tipo: Centralizado, Estructurada, Local
  • Desarrollado por: Bram Cohen
  • Búsqueda Integrada: No
  • Riesgo: Medio-Bajo
  • Uso: transferencia de archivos
  • Estado actual: gratis, open source, activo.

Historia: La red Bittorrent es una de las redes que han tenido mas alto crecimiento (junto con eDonkey y Kazaa), la principal razón de esto es la alta estructuración y control que se tiene, además de que es relativamente mas segura que otras redes P2P. Fue creado para compartir archivos grandes de manera eficaz y ecnómica a través del internet, después de su creación muchos grupos comenzaron a desarrollar clientes alternativos, los cuales fueron bienvenidos. Se han hecho varias mejoras al protocolo, la mayoría por Bram Cohen y su empresa Bittorrent Inc, una de estas modificaciones es un intento por descentralizar la red. Se considera uno de los protocolos mas rápidos para el intercambio de información, pero se ve afectado por la complejidad de su funcionamiento, aunque hay muchas innovaciones que han buscado simplificar su uso. Bittorrent además ha sido adoptado por empresas legítimas para distribución de contenido, como es el sistema Steam de Valve o el juego Gunz.

Funcionamiento: Bittorrent se basa en la estructura común de P2P pero agrega una capa extra de control al definir a una computadora como servidor (llamado tracker), que se encarga de mantener un listado de los archivos activos dentro de la red. Bittorrent es una red de tipo Local, debido a que cada tracker opera independiente de los demás (aunque pueden compartir archivos entre ellos si así lo desean los administradores), por lo que existen muchísimos trackers diferentes con sus propias reglas y contenido. Los archivos compartidos en la red se manejan a través de un archivo denominado “torrent” que contiene metadata de los archivos a compartir (contiene información como el tracker, el usuario, hashes, lista de archivos, comentarios, etc), los torrents se distribuyen a través de alguna red común (como puede ser por HTTP o alguna otra red P2P), cuando un usuario desea un archivo, normalmente se dirige a la página poseedora del tracker (aunque hay sitios que listan torrents de muchos trackers) y descarga el archivo torrent (normalmente no mayor a 500kb). Cuando el usuario abre el archivo torrent con un cliente, éste se comunica al tracker, el cual le informa de los usuarios activos, una vez hecho esto, el cliente realiza conexiones directas a cada uno de los Nodos y descarga partes del archivo. Conforme el cliente va descargando partes, es capaz de servirlas a otros nodos. El tracker regula toda la operación con el motivo de controlar el sistema y además proporcionar información actualizada a las peers.

Clientes:

  • Bittorrent: cliente oficial, escrito en python, no tiene tantas funciones como otros, es multiplataforma.
  • Azureus: Cliente en Java, es multiplataforma, tiene bastantes funciones, es uno de los mas recomendados, su único problema es que utiliza demasiados recursos.
  • uTorrent: Cliente escrito en C++ para windows, es ligero y con muchisimas funciones, uno de los mejores.
  • BitTornado: Cliente multiplataforma, es una versión modificada del cliente oficial con muchas funciones añadidas. Es mas difícil de utilizar que otros.
  • ABC: Cliente para windows, con una interfaz sencilla, no tiene muchas funciones.
  • XTorrent: Cliente para Mac OS X, es de paga, su principal caracteristica es su sistema de búsqueda avanzada.
  • Bitcomet: Cliente windows escrito en C++, tiene muchas funciones y una interfaz amigable, pero esta vetado de muchos trackers privados, además de que contiene adware.
  • BitLord: Clon del Bitcomet, también contiene adware.
  • MLDonkey: Cliente multiplataforma y Multired, tiene soporte para torrent.
  • Transmission: Popular cliente para Mac y Linux, tiene una interfaz sencilla pero pocas opciones.
  • Tomato Torrent: Cliente para Mac OS X, es popular pero algo limitado en funciones.
  • rTorrent: Cliente Linux y Mac, basado en la interfaz ncurses (línea de comando), tiene muchisimas funciones y su principal característica es que utiliza muy pocos recursos, pero es difícil de utilizar.

Exsten muchos clientes para bittorrent, los mas recomendados son uTorrent, Azureus y Transmission, dependiendo de los gustos, rtorrent es una opción para aquellos que gustan de la línea de comandos o quieren algo muy ligero.


Instalación y Uso: Instalar un cliente torrent es muy sencillo, pues la mayoría cuenta con instaladores o sencillamente son ejecutables sin necesidad de instalar, una vez que el software esta instalado, hay que configurar el puerto de escucha que no esté bloqueado por el firewall o router. El siguiente paso es localizar el archivo torrent a descargar, podemos hacerlo de 3 maneras: -Ir a un sitio de búsqueda de torrents: existen muchísimos que se dedican a indexar torrents de otros sitios y trackers. Este es un buen punto de inicio. -Ir directamente al tracker o al sitio del proveedor: Esta es una opción si conocemos el proveedor del archivo (por ejemplo una distribución linux) o algún tracker privado. -Obtener el archivo por otras fuentes: por ejemplo en algún post de un foro o en otra red P2P (hay que tener cuidado con torrents encontrados en otras redes)

Al momento de escoger un torrent, es importante fijarse en el número de Peers y Seeds (o Fuentes), puesto que estas nos indican el estado de “salud” del torrent, un torrent con cero seeds indica que no hay nadie con el archivo completo compartiendolo, por lo que tardará mucho en terminar (si es que termina), un torrent con muchas peers no es malo, puesto que solo significa que hay muchas personas descargando el archivo, pero que no lo tienen completo. Algunas veces puede que haya cero seeds, pero muchas peers, en este caso hay que fijarse en el "Completion ratio" (o Health) que nos indica que tan completo esta el archivo (que tanta redundancia de partes hay), si es arriba de 1 quiere decir que el archivo esta completo a través de todos los usuarios (llamados comunmente swarm), un completion ratio por debajo del 1 indica que el archivo no está completo y en algunos casos puede que nunca lo esté, a este tipo de torrents se les llaman torrents muertos.

Una vez obtenido el archivo torrent, debemos abrirlo con el cliente Bittorrent, muchos clientes permiten seleccionar la carpeta a donde se descargarán los archivos, o seleccionar únicamente los archivos que nos interesen.

Una vez hecho esto el cliente se conectará al tracker y obtendrá la información de las otras peers, con lo que comenzará la descarga.

Durante la descarga el cliente bajará información de otros peers y subirá a otros, por lo que siempre tendremos dos velocidades, una de subida y otra de bajada, además, el tracker puede recopilar información de la cantidad de datos subidos y bajados, algunos clientes nos muestran algo llamado “Ratio” que es la relación entre lo que hemos bajado y lo que hemos subido, lo recomendable es un ratio mayor a 1, pues indica que hemos subido mas de lo que hemos bajado. Una vez terminado, es buena etiqueta dejar abierto el torrent hasta obtener un ratio de 0.7 o mas, a esto se le llama “seedear” un torrent, mientras que descargar sin subir se le llama “leechear”.

Cuando estamos en un tracker privado, se necesita que el usuario se registre antes de poder empezar a descargar, cada tracker tiene sus propias reglas , pero la mayoría obliga a mantener un ratio alto con el fin de mantenerse como miembro. Las ventajas de un tracker privado es que se controla mas estrictamente el contenido, se pueden hacer peticiones, y en caso de haber torrents muertos se puede pedir ayuda (llamado reseeding).

Problemas: Bittorrent se considera de los protocolos mas seguros puesto que normalmente se conoce tanto el servidor como el contenido a descargar, por ejemplo muchas distribuciones linux liberan sus archivos en trackers mantenidos por ellos mismos, por lo que no hay posibilidades de que sean archivos falsos. Además, muchos indíces de torrents permiten a los usuarios comentar sobre los archivos, pudiendo identificar rápidamente archivos infectados o corruptos. Otra situación es que el protocolo permite trackers privados, donde el dueño decide las reglas para el uso, por lo que normalmente se garantiza mas seguridad.

Términos Especiales:

  • Torrent: Archivo con metadatos que indican al cliente de dónde bajar los archivos.
  • Tracker : Servidor encargado de administrar las trasferencias y los usuarios, ademas de mantener un índice de archivos.
  • Seed: Un nodo con el archivo completo y que se encuentra compartiendo.
  • Peer: Un Nodo que se encuentra descargando y subiendo, pero no tiene el archivo completo.
  • Leecher: Nodo que solo se encuentra descargando o ha subido muy poco, tambien se le llama así a los usuarios con ratio muy bajo (menor a 0.7)
  • Seedear: Subir información a otros usuarios.
  • Hit n' Run: Así se le denomina a la persona que baja el archivo y no deja “seedeando” al final.
  • Swarm: Conjunto de todos los nodos que descargan un mismo torrent
  • DHT o Peer Exchange: Método para obtener mas Nodos a partir de otras personas, normalmente desactivado en trackers privados.


Tips y Configuraciones: Un tip es mantener un número razonable de conexiones abiertas simultaneamente, puesto que muchas conexiones pueden ahogar la red, y muy pocas hacen que no se utilice completamente. Hay que tener cuidado con los torrents de lugares desconocidos, siempre hay que verificar las opiniones de otros usuarios de ser posible. Es muy bueno que si no hay información del torrent proporcionarla nosotros. Un tracker privado es un excelente lugar para conocer personas, pues la mayoría se enfocan en un estilo de comunidad. Los archivos parciales de descarga normalmente se guardan en la caprte ade descarga, algunos clientes agregan extensiones para diferenciarlos de los archivos descargados (por ejemplo .ut! o .incomplete), estos “pedazos” de archivo son intercambiables entre clientes, muchos clientes al detectar archivos con el mismo nombre dentro de la carpeta de destino escanearán estos archivos para encontrar partes previamente descargadas y reanudar desde ese punto.

TOR (The Onion Router)

Datos:

  • Tipo: Descentralizado, No estrcuturado, global
  • Desarrollado por: The Free Haven Project
  • Búsqueda Integrada: No
  • Riesgo: Variable
  • Uso: Anonimato
  • Estado actual: gratis, open source, activo.

Historia: TOR es un proyecto desarrollado como parte de la iniciativa Free Haven Project del MIT que busca crear un sistema de guardado de información de manera anónima.

Funcionamiento: TOR basicamente enruta el tráfico a otros miembros de la red de tal forma de que los origenes y destinos originales quedan ocultos a cualquier atacante. Se basa en la instalación de un Proxy TCP por donde se transmite la información. Una vez hecho esto TOR genera un circuito virtual a través del cual navega el paquete hasta llegar al nodo de salida, el cual se encarga de enviar el paquete a la máquina destino. Este circuito esta formado por otros nodos de la red, los cuales se envían el mensaje entre ellos. De esta forma un atacante puede obtener el paquete, pero no puede determinar el origen del mismo.

Clientes:

  • TOR: Distribución oficial, es la unica que existe, pero existen diferentes agregados.
  • Torbutton: Extension de Firefox para habilitar/deshabilitar el enrutado por TOR.
  • Privoxy: Proxy parte de TOR para dirigir el tráfico.
  • OperaTor: Navegador Opera + TOR
  • Incognito: distribución linux con TOR y Privoxy.
  • Portable TOR: Firefox y TOR modificados para funcionar desde una llave USB.

Solo existe una distribución, y es la que se recomienda, lo unico que cambia es el uso.

Instalación y Uso: La instalación de TOR es sencilla, existe documentación extensiva para windows, linux y mac, una vez instalado TOR y Privoxy, se puede utilizar Vidalia para controlarlo. Su utilización depende en gran medida del programa a utilizar (o Torificar como dicen en el sitio), basicamente hay que redireccionar el tráfico a través de TOR, esto se puede hacer de 3 formas: -Para navegadores lo mejor es redirigir el tráfico a Privoxy. -Para aplicaciones SOCKS se puede redirigir dando de alta TOR como Proxy SOCKS. -Para aplicaciones no compatibles con SOCKS se puede utilizar FreeCap o SocksCap.

El programa automaticamente buscará los circuitos virtuales y creará las conexiones.

Problemas: TOR es un sistema de anonimato, por lo que hay que tener cuidado de hacer que se encarge de todo el tráfico de lo contrario la protección no será completa. Hay ciertas reglas sobre el uso de TOR, principalmente de cantidad y tipo de información.

Términos Especiales:

  • Proxy: Programa especial que sirve de paso hacia el internet, normalmente implementa funciones de filtrado, enrutado, etc.
  • SOCKS: Protocolo de comunicación cliente-servidor.

Tips y Configuraciones: La recomendacion es la de antes, asegurarse que el tráfico este correctamente dirigido o tendremos problemas de seguridad.

Algunas redes no P2P

Las redes SMB/CIFS (a veces llamadas Redes Microsoft) no funcionan bajo los principios de P2P, por lo que en este documento no se hablará de ellas. Así mismo Hamachi, un sistema de VPN contiene algunos elementos de P2P, pero mayormente se basa en una arquitectura cliente-servidor lo que la deja fuera del alcance de este documento.

Mas Información

P2P en Wikipedia: http://en.wikipedia.org/wiki/P2p