|
BitTorrent es un protocolo diseñado para el intercambio de ficheros entre iguales (peer to peer o P2P) y un programa cliente creados por el programador estadounidense Bram Cohen y que se estrenó en la Codecon 2002. El programa está escrito en el lenguaje Python y distribuido bajo la licencia MIT.
A diferencia de los sistemas de compartición de ficheros tradicionales, su principal objetivo es el proporcionar una forma eficiente de distribuir un mismo fichero a un gran grupo de personas, forzando a todos los que descargan un fichero a compartirlo también con otros. Primero se distribuye por medios convencionales un pequeño fichero con extensión .torrent. Este fichero es estático, por lo que a menudo se encuentra en páginas web o incluso se distribuye por correo electrónico. El fichero 'torrent' contiene la dirección de un "servidor de búsqueda", el cual se encarga de localizar posibles fuentes con el fichero o parte de él.
Este servidor actualmente se encuentra centralizado y provee estadísticas acerca del número de transferencias, el número de nodos con una copia completa del fichero y el número de nodos que poseen sólo una porción del mismo.
El fichero o colección de ficheros deseado es descargado de las fuentes encontradas por el servidor de búsqueda y, al mismo tiempo que se realiza la descarga, se comienza a subir las partes disponibles del fichero a otras fuentes, utilizando el ancho de banda asignado a ello. Ya que la acción de compartir comienza incluso antes de completar la descarga de un fichero, cada nodo inevitablemente contribuye a la distribución de dicho fichero. El sistema se encarga de premiar a quienes compartan más, a mayor ancho de banda mayor el número de conexiones a nodos de descarga que se establecerán.
Cuando un usuario comienza la descarga de un fichero, BitTorrent no necesariamente comienza por el principio del fichero, sino que se baja por partes al azar. Luego los usuarios se conectan entre sí para bajar el fichero. Si entre los usuarios conectados se dispone de cada parte del fichero completo (aún estando desparramado), finalmente todos obtendrán una copia completa de él. Por supuesto, inicialmente alguien debe poseer el fichero completo para comenzar el proceso. Este método produce importantes mejoras en la velocidad de transferencia cuando muchos usuarios se conectan para bajar un mismo fichero. Cuando no existan ya más nodos con el fichero completo ("semillas" o "seeds") conectados al servidor de búsqueda, existe la posibilidad de que el fichero no pueda ser completado.
Terminología disponibilidad (availability) (o también copias distribuidas) El número de copias completas del archivo disponibles para un cliente. Cada semilla añade 1.0 a su valor, ya que tiene una copia completa del archivo. Un cliente conectado que tiene una fracción del archivo disponible añade esa parte a la disponibilidad, si ningún otro cliente tiene esa porción del archivo (por ejemplo, un cliente con un 65.3% de un archivo descargado incrementa la disponibilidad en un 0.653). retenido (choked) Describe a un cliente de subida al que no se quiere subir. Un cliente 'retiene' a otro cliente en varias situaciones: El segundo cliente es una semilla, y no quiere ninguna parte del archivo (es decir, está completamente desinteresado) El cliente de subida ya está subiendo a su máxima capacidad (es decir, se ha alcanzado el valor para max_uploads). interesado (interested) Es un cliente que quiere bajar partes de un archivo que tiene otro cliente. Por ejemplo, el cliente de subida marcará un cliente como 'interesado' si ese cliente no tiene una parte que él sí tiene y desea tenerla. sanguijuela (leech) Una sanguijuela es un cliente que tiene efectos negativos sobre el enjambre por tener una tasa de compartición muy baja; en otras palabras, baja mucho más de lo que sube. La mayoría de las sanguijuelas son usuarios con conexiones asimétricas que no dejan abierto su cliente BitTorrent para servir el archivo después de que su bajada haya finalizado. También hay algunas sanguijuelas que dañan el enjambre intencionadamente utilizado clientes modificados que no suben o limitando en exceso su tasa de subida. El término sanguijuela también se utiliza mal para referirse a los que deberían llamarse clientes, un miembro del enjambre que todavía no ha conseguido el archivo completo. cliente (peer) Un cliente es una ejecución de un programa cliente de BitTorrent sobre un ordenador conectado a Internet que transfiere datos. Normalmente un cliente no tiene el archivo completo, sino partes de él. Puede llamarse 'cliente' a cualquier miembro del enjambre. raspado (scrape) Es la petición que un cliente envía al servidor de rastreo para obtener información estadística del torrent, como quién comparte el archivo con quien y la efectividad con la que los usuarios comparten. semilla (seed) Una semilla es un cliente que tiene una copia completa del archivo y todavía la ofrece para subir. Cuantas más semillas haya, mayores serán las probabilidades de completar un archivo. ignorado (snubbed) Un cliente de subida se marca como ignorado si el cliente de bajada no ha recibido nada de él de más de 60 segundos. supercompartición (superseed) Cuando un archivo es nuevo puede perderse mucho tiempo enviando la misma parte del archivo a varios clientes distintos, mientras que otras partes todavía no han sido bajadas. Algunos clientes como ABC, BitTornado o Azureus tienen un modo "supercompartición", en el que intentan enviar sólo partes que no han sido enviadas anteriormente, haciendo la propagación inicial del archivo mucho más rápida. Normalmente se utiliza sólo para un archivo nuevo, o uno que debe ser recompartido porque no hay más semillas disponibles. enjambre (swarm) Juntos, todos los clientes que comparten un torrent se denominan enjambre. Seis clientes normales y dos semillas hacen un enjambre de ocho. torrente (torrent) Un torrente puede referirse tanto a un archivo .torrent de metadatos o a todos los archivos que se describen en él, dependiendo del contexto. El archivo torrente contiene metadatos sobre todos los archivos que se pueden descargar mediante él, incluyendo sus nombres, tamaños y hashes de todas las partes del torrente. También contiene la dirección del rastreador que coordina la comunicación entre los clientes del enjambre. rastreador (tracker) Un rastreador es un servidor que sigue las huellas de qué semillas y clientes hay en el enjambre. Los clientes aportan información al rastreador periódicamente y a cambio reciben información de otros clientes a los que pueden conectarse. El rastreador no está relacionado con ningún movimiento de datos y no tiene ninguna copia del archivo.
BitTorrent en comparación con otras redes P2P
El método utilizado por BitTorrent para distribuir archivos es similar en muchos aspectos al utilizado por la red eDonkey 2000, pero generalmente los nodos en esta red comparten y bajan mayores cantidades de ficheros, reduciendo el ancho de banda disponible para cada transferencia. Las transferencias en BitTorrent son normalmente muy rápidas ya que todos los nodos en un grupo se concentran en transferir un solo fichero o una colección de los mismos. Además el protocolo eDonkey2000 no premia a aquellos usuarios que comparten un mayor ancho de banda.
Al contrario que otras redes de intercambio, BitTorrent no incluye ningún mecanismo de búsqueda de archivos. Los usuarios de BitTorrent deberán localizar por sus propios medios los archivos torrent que necesita el protocolo. Normalmente, estos archivos pueden descargarse desde las páginas web que publican grandes archivos (como las distribuciones GNU/Linux) o desde índices web de búsqueda (como The Pirate Bay).
A pesar de haber sido inicialmente creado para distribuir ficheros legales, como distribuciones de GNU/Linux o avances de películas, BitTorrent también está siendo utilizado en gran medida por ciertos usuarios para compartir contenidos con copyright restrictivos (actividad ilegal en algunos países), al igual que con otras redes "entre iguales".
BitTorrent fue programado originalmente en Python aunque hoy en día se pueden encontrar clientes escritos en C o en Java por ejemplo.
Última reactivación por Anonymous en Jue Abr 10, 2008 11:57 pm
|