Es posible que como usuario recuerde que hace unos 15 años existía un servicio llamado Napster. A través de ese servicio millones de usuarios intercambiamos ilegalmente canciones entre nosotros y casi llevamos a la industria de la música a la quiebra. Napster también quebró poco después, bajo el yugo de las leyes y la justicia.
Pero no todo lo que dejó Napster fue malo. Nos dejó la tecnología de intercambio de archivos conocida como peer to peer (P2P) como legado. Esta tecnología habilita el intercambio directo y seguro de información entre 2 o mas computadores sin la necesidad de tener un servidor en medio. El P2P tiene aplicaciones legales muy poderosas, que nunca se popularizaron por la estigmatización que le generó la piratería.
Bittorrent es uno de los protocolos que usa la tecnología P2P. Posiblemente sea el protocolo P2P mas popular hoy en día. Su uso sigue siendo relacionado principalmente con la piratería. Pero su creador, Bram Cohen, que no es un pirata, ni tiene nada que ver con la aplicación ilegal de su tecnología, ha buscado limpiar la imágen desarrollando servicios legales alrededor de ella.
BitTorrent suena a magia negra, pero en realidad es una tecnología relativamente sencilla de explicar. Se trata de un protocolo de intercambio distribuido de archivos que aprovecha el ancho de banda de muchos computadores para acelerar el intercambio de archivos. Entre mas computadores hay conectados, mas rápido sucede el intercambio.
¿Cómo funciona?
Cada archivo compartido se comporta como un rompecabezas que tiene miles de piezas. Las piezas se codifican en un “mapa” que le dice a cada interesado que piezas hay disponibles y como debe organizarlas. Al grupo de computadores interesados en el intercambio se le llama swarm. El swarm está compuesto por 3 tipos de clientes:
- Un tracker que mantiene un listado de los integrantes del swarm y que actúa como policía de tráfico, distribuyendo las piezas
- Uno o varios seed que tienen copias completas del archivo y envían piezas a los demás integrantes del swarm
- Uno o varios leecher que tienen solo algunas piezas del archivo y que envían y reciben piezas a los demás integrantes del swarm
Cuando empieza el intercambio el leecher solicita al tracker que le envíe una pieza de las que le hacen falta para completar la descarga. El tracker identifica quien tiene la pieza y le ordena enviarla. En la medida en que el leecher recibe piezas, a su vez las pone disponibles en el tracker para que otro leecher las baje. Eventualmente el leecher completa todas las piezas del rompecabezas y se convierte en un nuevo seed. La actividad principal del tracker es asegurar que las piezas se distribuyan uniformemente en el swarm, de manera que siempre existan varias opciones de donde bajar cada pieza. El secreto de la velocidad de este sistema se basa en que la velocidad de bajada de la información estará limitada por su propia conexión y no por la de subida que tiene la fuente del archivo. Cada cliente comparte a la velocidad que quiere y es posible salirse del swarm y retomar la bajada mas adelante.
Lo mas importante es que siempre haya en el swarm al menos una copia disponible de cada pieza. De lo contrario la distribución se paraliza completamente cuando todos han recibido las piezas disponibles y nadie tiene una copia completa.
BitTorrent Sync, una aplicación legal de la misma tecnología
Como decía antes el uso de esta tecnología se ha popularizado con la piratería de medios, especialmente de música y películas. Pero la tecnología tiene aplicaciones legales muy poderosas. La principal es permitir el intercambio de archivos rápido y con un mínimo de requerimientos de infraestructura.
Bram Cohen recientemente lanzó al mercado BitTorrent Sync, una suerte de Dropbox privado, que usa el protocolo. A través de este servicio puede compartir privadamente archivos entre sus propios computadores, y, porque no, con terceros. La ventaja principal es de seguridad, pues no hay un servidor central que tenga acceso a los archivos compartidos.Aunque aún no se populariza el servicio, las dudas que causa la privacidad de los servicios de almacenamiento en la nube, hacen de esta una opción interesante.
BitTorrent Sync no es perfecto, aunque sea muy rápido y seguro. El intercambio, cuando es privado, es por definición limitado en el numero de clientes tiene el swarm. Por este motivo, es susceptible de paralizarse si no hay un seed conectado en todo momento. Así que es recomendable tener un cliente conectado continuamente a internet. Algunas NAS ya traen un cliente de BitTorrent Sync embebido lo cual facilita el proceso. Yo recomiendo tener un servidor en casa . Hoy puede tener uno por menos de 20 dólares y un computador viejo conectado a internet. BitTorrent Sync está disponible gratis para prácticamente cualquier plataforma, móvil o fija.
Una implementación práctica
He estado experimentando con BitTorrent Sync y encontré una implementación práctica que me ayuda a resolver varios problemas que tengo con los servicios de almacenamiento en la nube. Como saben, el almacenamiento gratuito en la nube es limitado y en casi todos los casos está atado a un folder específico en su computador (la excepción es SugarSync, pero este es uno de los servicios de mayor costo). Adicionalmente tengo que correr un cliente para cada uno de ellos en mi computador, los cuales consumen energía y recursos del sistema.
Se me ocurrió recientemente que puedo centralizar el intercambio con los servicios de almacenamiento en la nube en mi servidor casero (que esta conectado 7 x 24 a internet), y usar BitTorrent Sync como servicio único para sincronizar automáticamente todos mis dispositivos con el servidor. Así reduzco el número de clientes que corro en mis computadores, ahorrando duración de batería y mejorando el desempeño de cada uno. De paso también puedo optimizar el uso de los servicios de almacenamiento en la nube y el uso de disco en mi computador. En un próximo artículo explicaré como configurar estoy las ventajas que trae.
Por lo pronto vale la pena que ponga a BitTorrent Sync en su lista de corta de aplicaciones interesantes.