Características BitTorrent

Page last edited hace 1947 días 17 horas
De MOOC SSOFTWARE LIBRE
Saltar a: navegación, buscar

El protocolo BitTorrent puede censurado para reducir el impacto que tiene la distribución de archivos grandes en los servidores.En lugar de descargar el archivo desde un único servidor, el protocolo BitTorrent permite a los usuarios unirse entre ellos en un “enjambre” (swarm) para descargar y subir el archivo deforma simultánea. El protocolo es una alternativa al sistema basado en servidores, que consiste en disponer de varios servidores espejo (mirrors) desde donde el usuario descarga el archivo completo, y puede funcionar en redes con poco ancho debanda, de esta forma, dispositivos pequeños como los smartphone,son capaces de distribuir archivos grandes o vídeo en streaming a muchos receptores. Un usuario que quiere subir un archivo, primero crea un archivo torrent y lo distribuye de forma convencional (páginas web, correo electrónico, etc). Después hace que el archivo esté disponible en la red a través de un nodo BitTorrentque actúa como semilla (seed). Los usuarios que quieren descargar elarchivo, obtienen el archivo torrent y crean otro nodo BitTorrent que actúacomo cliente o “sanguijuela” (leecher), intercambiando partes delarchivo con la semilla y con otros clientes.

El archivo que está siendo distribuido se divide en partes pequeñas (pieces). Cada vez que unusuario recibe una parte nueva del archivo, puede a su vez compartirla con otros usuarios, liberando a la semilla original de tener que enviar una copiade esa parte a todos los usuarios que quieren el archivo. En BitTorrent, la tarea de distribuir un archivo es compartida por todos aquellos que deseantener el archivo. Es perfectamente posible que la semilla solo envíe una copiadel archivo y el archivo sea distribuido a un número ilimitado de usuarios.

Cada parte del archivo está protegida por un hashcriptográfico contenido dentro del archivo torrent.Esto asegura que cualquier modificación que se produzca en una parte puede ser detectada, y por lo tanto evita que tanto las modificaciones accidentales comolas maliciosas sean recibidas en otros nodos. Si un nodo tiene el archivo torrent autentico, puede verificar la autenticidad del archivo completo que ha recibido.

Las partes típicamente no sedescargan de forma secuencial, estas son reordenadas por el cliente BitTorrent,el cual comprueba las partes que tiene y las que faltan de recibir. Todas laspartes del archivo son del mismo tamaño y son transmitidas de una sola vez (porejemplo un archivo de 10 MB puede ser transmitido en diez partesde 1 MB o en cuarenta partes de 256 KB). Debido a esto, sepuede detener la descarga de un archivo en cualquier momento y reanudarlaposteriormente sin perder la información descargada anteriormente. Esto haceque BitTorrent sea especialmente útil en la transferencia de archivos grandes.Esto también permite al cliente buscar las partes disponibles para descargarfácilmente, en lugar de tener que pausar la descarga y esperar que la siguienteparte esté disponible, lo que reduce el tiempo de descarga. Cuando un cliente descarga elarchivo completamente se convierte en una semilla. Este cambio eventual declientes en semillas determina la salud (health) o disponibilidad delarchivo (determinado por el número de usuarios que tienen el archivo completo). La naturaleza distribuida de BitTorrent conduce a que el archivose distribuya a través de muchos nodos. Cuantos más usuarios se unan al“enjambre”, mayor es la probabilidad de que un nodo pueda descargar elarchivo completo. En relación con los esquemas de distribución tradicionales,esto permite al distribuidor original reducir los costes de hardware y de ancho de banda. Esto tambiénproporciona redundancia ante posibles problemas del sistema,reduce las dependencias con el distribuidor originaly proporciona fuentes de descargatransitorias (no son siempre los mismos usuarios los que comparten el archivo),por lo tanto es más difícil de rastrear de donde procede el archivo por los queintentan bloquear su distribución en comparación con un archivo alojado en unservidor externo. BitTorrent en comparación con otras redes P2P El método utilizado por BitTorrentpara 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 deficheros, reduciendo el ancho de banda disponible para cada transferencia. Lastransferencias en BitTorrent son normalmente muy rápidas ya que todos los nodosen un grupo se concentran en transferir un solo fichero o una colección de losmismos. Además el protocolo eDonkey2000 no premia a aquellos usuarios quecomparten un mayor ancho de banda. Sin embargo, hay que aclarar que el clientemás extendido para la red eDonkey, el eMule, sí incorpora unsistema de créditos para recompensar a los que más comparten. Al contrario que otras redes deintercambio, BitTorrent no incluye ningún mecanismo de búsqueda de archivos.Los usuarios de BitTorrent deberán localizar por sus propios medios losarchivos torrent que necesita el protocolo. Normalmente, estos archivos puedendescargarse desde las páginas web que publican grandes archivos (como lasdistribuciones GNU/Linux)o desde índices web de búsqueda (como The PirateBay, Ktorrents o Bitgle). BitTorrent fue programadooriginalmente en Python aunque hoy en día se pueden encontrarclientes escritos en C oenJavaporejemplo. Según CacheLogic, durante el año 2005 BitTorrent seutilizaba especialmente en Asia, mientras que eDonkey2000 se prefería enEuropay América. Programas cliente Categoríaprincipal: Clientes BitTorrent. Los clientes de BitTorrent se puedenencontrar de dos tipos distintos: • De múltiplesdescargas simultáneas como Vuze, BitComet, KTorrent, μTorrent o Transmission. • De descarga única(solo descarga un archivo .torrent, pero se pueden tener varios abiertossimultáneamente), como BitTornadoo elnavegadorOpera. Estructura de una red BitTorrent • Peers (puntos): Se denomina así a todos los usuarios queestán en la red. • Leechers (sanguijuelas): Se denomina así a todos losusuarios que están en la red descargando el archivo pero que todavía no tienenel archivo completo. También se llama despectivamente a quienes descarganarchivos pero no los comparten • Seeders (semillas): Son los usuarios de la red queposeen el archivo completo, no limitado a ello al usuario quien creó y publicóel torrent originalmente. • Trackers: Un tracker de BitTorrent es un servidor especial que contiene lainformación necesaria para que los peers se conecten unos con otros. Inicialmente es la únicaforma de localizar qué usuarios contienen el archivo que se quiere descargar. • Enjambre: El enjambre son losusuarios en general que el tracker se encarga de buscar. El nombre es debido a lasimilitud con las abejas y su comportamiento; en esta analogía, el tracker es el panal de abejas, el enjambre de abejas son losusuarios y la miel es eltorrent con el contenido. Mecánica del funcionamiento: 1. Un usuario bajade un servidor web un archivo .torrent que contiene la información del fichero que queremosdescargar. Entre otra mucha información contiene la dirección del tracker al que nos tenemos que conectar para unirnos alenjambre de peers(el.torrent generalmente es un archivo muy pequeño, de unos pocos kilobytes). 2. Este archivo .torrent se abre con algún “programa cliente”, que sabeinterpretar dicha información. Existen multitud de clientes gratuitos que sepueden utilizar. Entre los más populares están μtorrent, Bitcomet, Vuze (anteriormenteAzureus).Todos están basados en el protocolo BitTorrent original pero algunos de ellos incluyen mejoras alprotocolo. 3. El tracker y el peer se comunican a través de una ‘conexión HTTP’. El tracker informa de la lista de todos los peers y seedsque contienen partes del archivo que queremosdescargar. El tracker se actualiza con la información del nuevopeerqueacaba de ingresar. 4. Una vez que el peer sabe dónde tiene que buscar las partes necesarias,este peer se comunica con otros mediante ‘sockets TCP’ o ‘UDP’ yel archivo empieza a descargarse en el ordenador del usuario. Cada partedescargada se comparte automáticamente con otros peers. Limitaciones y ataques Se considera que lo justo es subirla misma cantidad de datos que se ha bajado, es decir que la tasa dedescarga/subida sea de 1, pero este comportamiento no es común ni estágarantizado en BitTorrent. Normalmente los usuarios se desconectan rápidamenteuna vez que han obtenido la copia completa de su archivo. Esto se denomina leeching. Esta forma de actuar provoca queaunque todo el contenido nuevo se comparta al principio muy rápidamente, con elpaso de los días el torrent caduque porque no quedan semillas, ya queBitTorrent sólo ofrece incentivos a los leechers pero no a losseedsque no obtienen ninguna ventaja porpermanecer subiendo a la red. Para evitar esto han aparecido losdenominados trackers privados. Normalmente para usar un tracker privado hay queidentificarse previamente. Para cada usuario registrado guardan lasestadísticas de tráfico y utilizan un sistema de porcentajes que permite sabersi el usuario comparte o no los datos que haya descargado o esté descargando.Muchos de estos trackers suelen expulsar a los usuarios que tienen unporcentaje bajo, ya que al no compartir no colaboran con la red. Otro punto flaco es que el trackeres un cuello de botella ya que consume el 1 por mil del tráfico total de lared. Teniendo en cuenta la cantidad de datos que circulan en una red de estetipo, es un porcentaje a tener en cuenta. Además, la caída del tracker implicaque nuevos peers no se puedan conectar y que aquellos que ya están conectadosno puedan descubrir otros. Conceptualmente se forman pequeñas islasdesorganizadas, donde en realidad todos los nodos están conectados entre sí através de vecinos pero no hay comunicación entre esas islas (la comunicaciónentre ellas la gestionaba el tracker) y por tanto influye muy negativamente enla descarga. Una debilidad más de BitTorrent esque es poco eficiente en transferencias de archivos pequeños (unos cuantos kb)ya que el ancho de banda usado en mensajes del protocolo es comparativamentealto. Al contrario que otros famososprogramas P2P como Kazaa o Emule, los clientes Bittorrent carecen de algunautilidad de búsqueda de contenidos. Los archivos .torrent se suelen bajar depáginas web donde se suelen indexar las novedades o bien existen buscadores detorrents como mininova.org o The Pirate Bay, este método garantiza que se estédescargando el fichero correcto. Recientemente la justicia sueca ha condenado alos webmasters de The Pirate Bay a multas y penas de cárcel por colaboración enla distribución de archivos con copyright, a pesar de que los contenidos en síno están albergados en sus servidores. Por otra parte, BitTorrent tiene unprotocolo considerado de los de modelo económico. Es inocente, no estápreparado para clientes maliciosos, y por tanto el protocolo no presentasoluciones para posibles ataques a través de este tipo de clientes. A continuación vamos a ver algunosejemplos de estos ataques: • Denegación deservicio a través de un ataque Sybil Cada peer genera un único identificadoral comienzo mediante un hash de su dirección IP y la hora. Si un peer generaramúltiples identificadores podría ocurrir que el conjunto de peers activos delos otros peers de la red sólo estuviera formado por multitud deidentificadores falsos del mismo peer atacante, y de esta manera sólo seservirían datos a él. • Ataque de “Sólo asemillas” Un peer tiene que subir a los otrospeers si quiere formar parte de su conjunto de peers activos. Si un peer sólose conecta a seeds, podría bajarse el archivo entero sin necesidad de habercompartido ni una sola pieza. • Ataque de “Subidacorrupta” Bittorrent verifica la integridad dela pieza una vez descargada comparando su código hash con el que aparecía en lametainformación del torrent. Cuando un peer pide un bloque a un peer malicioso,éste puede decir que lo tiene aunque en realidad no sea así. Lo que le envía esbasura, aunque el otro peer no se da cuenta hasta que le ha llegado la piezaentera y vuelve a pedir el bloque. Aunque se le están enviando datos corruptos,la tasas de subida sí son actualizadas y el peer malicioso puede mantenerse enla lista de peers preferidos. Los clientes BitTorrent actualescuando reciben varios bloques corruptos de un mismo cliente añaden su dirección IP a una lista de usuarios bloqueados yde esta forma solucionan este problema. Vocabulario BitTorrent Disponibilidad(availability) Es el número de copias completas deun archivo que están disponibles para la descarga. Cada semilla añade 1,0 aeste número, porque tienen el archivo completo. Un usuario con el archivoincompleto añade una fracción a la disponibilidad, si ningún usuario más tieneesa parte. Por ejemplo, un usuario que tiene descargado el 65.3%del archivo aumenta la disponibilidad en 0,653. Sin embargo, si dos usuariostienen descargada la misma parte del archivo, 50% por ejemplo, y solo hay unasemilla, la disponibilidad es 1,5. Cliente(client) Es el programa informático que permite el intercambio de archivos peer-to-peer usando el protocolo BitTorrent.Algunos ejemplos de clientes son Transmission, µTorrent y Vuze. Salud(health) La salud de un archivo torrent está relacionada con ladisponibilidad. En los directorios de archivos torrentnormalmente se muestra como unporcentaje e indica el tanto por ciento del archivo que está disponible. Unarchivo con una salud del 50% significa que solo está disponible la mitad delarchivo, por lo que no es posible descargarlo entero. Directorio (index) Un directorio o índice BitTorrent esuna página web que contiene una lista de archivos torrent (normalmente también incluyen unadescripción y otra información) y un buscador. Algunos directorios también disponende un tracker propio.