Sobre el protocolo BitTorrent. Algunos detalles de su funcionamiento
En el artículo anterior comencé una breve introducción al funcionamiento del protocolo BitTorrent que constituye mi forma preferida de compartir archivos en redes P2P. Habíamos quedado en que el procedimiento consiste en que se genere un archivo torrent y se comparta mediante un rastreador (Servidor que se encarga de comunicar al resto de la red la disponibilidad y ubicación de un archivo y donde encontrarlo). Otra alternativa es la de utilizar un enlace magnético, con el cual se busca nodo por nodo hasta encontrar el archivo. Así es como continúa el proceso.
Hay que tener en claro que el rastreador es algo así como las páginas amarillas. Solo contiene información sobre dónde encontrar algo, pero no participa directamente del intercambio.
Cuando algún otro de los miembros del enjambre (El conjunto de ordenadores conectados a la red) tiene interés en el archivo comienza descargando fragmentos del mismo (Voy a entrar en detalle sobre eso más adelante). Al llegar a determinado nivel de descarga comienza a compartir esos archivos con otros clientes interesados en el mismo archivo. Es decir que cada uno que descarga ese archivo ofrece ancho de banda para que otros también pueda descargarlo aumentando la velocidad para todos.
Descarga de archivos sobre el protocolo BitTorrent. Roles.
Ahora quiero describir en más detalle los diferentes componentes de una red BitTorrent y su función.
El rastreador
Un rastreador de BitTorrent es un servidor que tiene instalado un software encargado de coordina de forma centralizada la transferencia de archivos entre los usuarios. El mencionado servidor no aloja copias de los archivos ya que su función solo es solo hacer que los pares se encuentren.
Para intercambiar información, el rastreador y el cliente utilizando un protocolo simple sobre HTTP similar al del usuario que ingresa a una página web. En dicho intercambio los clientes informan al rastreador sobre el archivo que quieren descargar, su IP y puerto y el rastreador responde con una lista de pares que descargan el mismo archivo y su información de contacto. Los que conforman de la lista junto al que se quiere sumar a la descarga conforman el ya mencionado «enjambre». Sin embargo, este paso puede evitarse desde que los clientes BitTorrent implementaron la tecnología de tabla hash distribuida (DHT) en la que cada nodo asume la función de rastreador.
El archivo torrent
Llamado también metainfo tiene la extensión .torrent y es el que se descarga de la mayoría de los sitios web que recopilan torrents.
Este archivo contiene información codificada incluyendo la URL del rastreador, el nombre del archivo y los hash de las partes del archivo para verificar cuales fueron descargadas. Para crear este archivo el cliente BitTorrent necesita la ubicación del archivo original y la url de un rastreador.
Seeders (Sembradores)
El equipo desde que se sube por primera vez el archivo es conocido como seeder o sembrador y debe seguir conectado al enjambre hasta que entre todo el resto del enjambre dispongan de una copia del archivo para que los demás puedan seguir descargándola. El mote de sembrador se utiliza también para los clientes que habiendo descargado un archivo completamente siguen conectados para permitir a los demás el acceso. Hay que mencionar que el protocolo compensa a quienes comparten dándole prioridad en la descarga.
Leechers (sanguijuelas)
No es necesario que un miembro del enjambre o par tenga el archivo completo para compartirlo. A los pares que no cuentan con una copia completa del archivo se denomina como leechers o sanguijuelas. Los leechers piden al rastreador la lista de los otros miembros del enjambre que tienen las partes del archivo que le faltan. El leecher procederá luego a descargar la parte requerida de uno de esos pares. Al mismo tiempo, un leecher también continuará distribuyendo las partes cuyas descargas ya se completaron Una vez que un Leecher descargó todas las partes, las valida con los hash presentes en el archivo de metainformación.
En el próximo artículo hablaremos de las reglas que regulan el funcionamiento entre las partes.