sábado, 18 de julio de 2015

Definicion y Terminologia

El proposito de este articulo es sentar una base para poder entender la materia que voy a ir explicando en los proximos articulos del blog. Si en algun momento teneis alguna duda sobre algun termino que no recordais, podeis volver a este articulo a revisar para recordarlo. Comenzamos:

BitTorrent es un protocolo diseñado para el intercambio de ficheros entre iguales (peer to peer o P2P). Este mismo nombre se le dio al programa cliente creado por el programador estadounidense Bram Cohen y que se estreno en la Codecon 2002. El programa esta escrito en el lenguaje Python y distribuido bajo la licencia MIT.

A diferencia de los sistemas de comparticion 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 tambien con otros. Primero se distribuye por medios convencionales un pequeño fichero con extension .torrent. Este fichero es estatico, por lo que a menudo se encuentra en paginas web o incluso se distribuye por correo electronico. El fichero 'torrent' contiene la direccion de un "servidor de busqueda", el cual se encarga de localizar posibles fuentes con el fichero o parte de el.

Este servidor actualmente se encuentra centralizado y provee estadisticas acerca del numero de transferencias, el numero de nodos con una copia completa del fichero y el numero de nodos que poseen solo una porcion del mismo.

El fichero o coleccion de ficheros deseado es descargado de las fuentes encontradas por el servidor de busqueda 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 accion de compartir comienza incluso antes de completar la descarga de un fichero, cada nodo inevitablemente contribuye a la distribucion de dicho fichero. El sistema se encarga de premiar a quienes compartan mas, a mayor ancho de banda mayor el numero de conexiones a nodos de descarga que se estableceran.

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 si para bajar el fichero. Si entre los usuarios conectados se dispone de cada parte del fichero completo (aun estando desparramado), finalmente todos obtendran una copia completa de el. Por supuesto, inicialmente alguien debe poseer el fichero completo para comenzar el proceso. Este metodo produce importantes mejoras en la velocidad de transferencia cuando muchos usuarios se conectan para bajar un mismo fichero. Cuando no existan ya mas nodos con el fichero completo ("semillas" o "seeds") conectados al servidor de busqueda, existe la posibilidad de que el fichero no pueda ser completado.

Terminologia:


� Disponibilidad (Availability).

(o tambien copias distribuidas) El numero 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 fraccion del archivo disponible añade esa parte a la disponibilidad, si ningun otro cliente tiene esa porcion 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, esta completamente desinteresado).

El cliente de subida ya esta subiendo a su maxima 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 marcara un cliente como 'interesado' si ese cliente no tiene una parte que el si tiene y desea tenerla.

� Sanguijuela (Leech).

Una sanguijuela es un cliente que tiene efectos negativos sobre el enjambre por tener una tasa de comparticion muy baja; en otras palabras, baja mucho mas de lo que sube. La mayoria de las sanguijuelas son usuarios con conexiones asimetricas que no dejan abierto su cliente BitTorrent para servir el archivo despues de que su bajada haya finalizado. Tambien hay algunas sanguijuelas que dejaran el enjambre intencionadamente utilizando clientes modificados que no suben o limitando en exceso su tasa de subida.

Este termino en ocasiones se utiliza de forma incorrecta para referirse a los clientes, un miembro del enjambre que todavia no ha conseguido el archivo completo.

� Cliente (Peer).

Un cliente es una ejecucion 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 el. Puede llamarse 'cliente' a cualquier miembro del enjambre.

� Raspado (Scrape).

Es la peticion que un cliente envia al servidor de rastreo para obtener informacion estadistica del torrent, como quien 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 todavia la ofrece para subir. Cuantas mas semillas haya, mayores seran 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 el desde hace mas de 60 segundos.

� Supercomparticion/Supersembrado (Superseed).

Cuando un archivo es nuevo puede perderse mucho tiempo enviando la misma parte del archivo a varios clientes distintos, mientras que otras partes todavia no han sido bajadas. Algunos clientes como ABC, BitTornado o Azureus tienen un modo "supercomparticion", en el que intentan enviar solo partes que no han sido enviadas anteriormente, haciendo la propagacion inicial del archivo mucho mas rapida. Normalmente se utiliza solo para un archivo nuevo, o uno que debe ser recompartido porque no hay mas 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 el, dependiendo del contexto. El archivo torrente contiene metadatos sobre todos los archivos que se pueden descargar mediante el, incluyendo sus nombres, tamaños y hashes de todas las partes del torrente. Tambien contiene la direccion del rastreador que coordina la comunicacion entre los clientes del enjambre.

� Hash.

Es un valor de 20 bytes representado en codigo hexadecimal (40 caracteres) que identifica un torrent. Forma parte de la direccion de un Magnet. Ejemplo: cb84ccc10f296df72d6c40ba7a07c178a4323a14

� Magnet.

Texto que hace las mismas funciones de un archivo torrent, pero en cuyo caso se puede incluir a la cola sin la necesidad de un archivo que la lance. Ejemplo. Esto es obviamente para el caso de un magnet de torrent: debemos tener en cuenta que, aunque se haya popularizado su uso con torrent, y su mayor uso sea este, no son exclusivos para torrent.

� Rastreador (Tracker).

Un rastreador es un servidor que sigue las huellas de que semillas y clientes hay en el enjambre. Los clientes aportan informacion al rastreador periodicamente y a cambio reciben informacion de otros clientes a los que pueden conectarse. El rastreador no esta relacionado con ningun movimiento de datos y no tiene ninguna copia del archivo.

BitTorrent en comparacion con otras redes P2P:


El metodo 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 rapidas ya que todos los nodos en un grupo se concentran en transferir un solo fichero o una coleccion de los mismos. Ademas 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 ningun mecanismo de busqueda de archivos. Los usuarios de BitTorrent deberin localizar por sus propios medios los archivos torrent que necesita el protocolo. Normalmente, estos archivos pueden descargarse desde las paginas web que publican grandes archivos (como las distribuciones GNU/Linux) o desde indices web de busqueda (como The Pirate Bay).

A pesar de haber sido inicialmente creado para distribuir ficheros legales, como distribuciones de GNU/Linux o avances de peliculas, BitTorrent tambien esta siendo utilizado en gran medida por ciertos usuarios para compartir contenidos con copyright restrictivos (actividad ilegal en algunos paises), al igual que con otras redes "entre iguales".

BitTorrent fue programado originalmente en Python aunque hoy en dia se pueden encontrar clientes escritos en C o en Java por ejemplo.


Mas informacion: http://ayudabittorrent.com/terminologia
http://ayudabittorrent.com/funcionamiento-protocolo-bittorrent
http://ehowenespanol.com/significado-indicadores-utorrent-info_175200/