Aplicaciones P2P BitTorrent

Sitio: Facultad de Ingeniería U.Na.M.
Curso: Redes II - IC421
Libro: Aplicaciones P2P BitTorrent
Imprimido por: Invitado
Día: miércoles, 3 de julio de 2024, 06:31

1. Introducción

El término P2P (Peer To Peer) para el español sería: red entre pares o red de igual a igual.

La tecnología Peer to Peer o  P2P, permite que las personas compartan archivos a través de una red en Internet. La tecnología P2P sería lo opuesto a la basada en Servidor.

Son aplicaciones y corren en capa 5 ,  sobre la Capa 4 de Transporte, por eso usan puertos, cualquiera entre el 1024 y el 65535.

Se suele elegir 2 al azar (uno TCP y otro UDP) para cada equipo.


NO se debe confundir P2P con PPP  (Point to Point Protocol) que es un protocolo del nivel de enlace de datos (Capa 2) utilizado para establecer una conexión directa entre dos nodos de una red.

¿Qué es una conexión P2P y por qué se utiliza para la piratería?

Las redes P2P se pueden utilizar para muchos propósitos. La más habitual es la opción de compartir archivos de cualquier tipo como: audio, vídeo, imágenes o software variado, como  ficheros distribuidos, para hacer cálculos científicos o para hacer transacciones mediante dinero virtual (Bitcoin), entre otras cosas.

Podemos ver que en este intercambio de información, se puede poner en riesgo los derechos de autor, es por eso que este tipo de Tecnología, se suele asociar principalmente con la piratería.

La mayoría de las personas ahora usan lo que se conoce como la segunda generación de P2P, lo que en un inicio (1era. Generación) fue conocido  como Napster.


Napster empezó en 1999 como una idea en la cabeza de un joven, con la aparición del formato MP3, pensó que compartir la música con otros. Este programa pionero del peer-to-peer, llegó a tener 85 millones de usuarios en todo el planeta, tenía un catálogo de millones de canciones y registraba mil millones de búsquedas al día. Pero SONY y el grupo Metallica empezó una guerra que contó con el apoyo de la RIAA, la todopoderosa patronal de la industria discográfica de Estados Unidos.

Esto redefinió Internet, la industria de la música y la manera en que todos pensamos sobre la propiedad intelectual.

Napster actualmente está en el mercado como un sitio para descargarse música de forma legal. Napster hoy compite con Spotify, pero desde muy atrás, su base de temas disponibles y usuarios es mucho menor que Spotify.

No es la misión de este artículo decir lo que debemos o no hacer, sino hablar de uno de los fenómenos de los que más se ha hablado en el mundo del Peer-To-Peer.

Hay dos generaciones de P2P, actualmente esta operativa la 2da versión.


2. Funcionamiento

Cómo funciona la red Peer-to-Peer


La descarga de archivos a través del sistema P2P es bastante sencilla, pues la operación requiere únicamente de usuarios, máquinas conectadas y archivos digitales que viajan por la web.

Recuerda que cada usuario solicita y envía simultáneamente, es decir, cada máquina conectada a la red funciona como un nodo (es cliente y servidor).

P2P y medios

Imagine su computadora como parte de una red de computadoras que desempeñan simultáneamente los roles de servidor y cliente y circulan datos a alta velocidad.

Esto explica la reputación del sistema, donde el intercambio de datos se realiza mediante fragmentos aleatorios muy pequeños hasta que se logra obtener el archivo completo.

El archivo final se ensambla a partir de los miles de fragmentos recibidos.

Al no depender de una fuente de distribución, si no de tener miles de fuentes de distribución, las descargas, además de ser más rápidas, no generan cola, ya que todos comparten partes del archivo entre sí. Por lo tanto, cuantas más personas descarguen el mismo archivo, más ancho de banda estará disponible, lo que evitará bloqueos y demoras.


Cuanto mas se use, mas mas ancho de banda voy a tener!!

Varias aplicaciones utilizan el sistema P2P para descargar archivos multimedia como:

  • BitTorrent
  • µTorrent
  • AresGalaxy
  • qBitorrent
  • BitComet

etc.... entre otros.

El servidor P2P se preocupa de enviar paquetes “Keep Alive” con frecuencia para que nuestro equipo mantenga la conexión UDP abierta.

3. Tipos de P2P


Los sistemas P2P se clasifican en:

P2P Estructurados o Centralizados

  •     Los nodos se organizan siguiendo una estructura de datos distribuida.
  •     Todas las comunicaciones se realizan a través de un servidor central.
  •     Existe una base centralizada que mantiene información de los nodo.
  •        Es lento por el "cuello botella" en el servidor.

Las estructuras centralizadas permiten facilitar el accionar de la Justicia en caso de alguna ilegalidad, ya que pueden accionar contra el Servidor, el dueño del Servidor o el Dominio.

Respecto de esto último es frecuente ver que los sitios donde se registran estos dominios son lugares en los que tienen algunos vacíos legales,  esto normalmente solo demora el accionar de la justicia.

 
Nota Informativa.
The Pirate Bay (traducido literalmente al español como La Bahía Pirata; comúnmente abreviado por las siglas TPB) es un motor de búsqueda y rastreo de ficheros BitTorrent (.torrent) en el que es posible realizar búsquedas de todo tipo de material multimedia.
 
El dominio principal de The Pirate Bay sigue siendo thepiratebay.org, pero es posible que sea bloqueado por la actividad que desarrolla ( distribuir contenido no legal). 
Por ello, decidieron abrir seis nuevos dominios en 2015, pero tampoco duraron demasiado. El acceso por IP, que sí funcionó durante un tiempo.

Viéndose así de acorralados, desde el portal empezaron a promocionar su dominio .onion. (TOR)  para acceder, basta con descargar Tor Browser para Windows, macOS o Linux. Este navegador utiliza Firefox como base para darnos acceso a la Deep Web y a la Dark Web. La dirección en la Dark Web de The Pirate Bay era, hasta ahora, uj3wazyk5u4hnvtk.onion.

Sin embargo, desde el portal son conscientes de lo difícil que es recordar algo así salvo que lo guardemos en marcadores o lo tengamos copiado en algún lugar. Por esa razón, han decido abrir un nuevo dominio en la Dark Web y esta vez es mucho más sencillo. Para acceder a The Pirate Bay bastará con escribir

http://piratebayo3klnzokct3wt5yyxb2vpebbuyjl7m623iaxmqhsd52coid.onion/  
en Tor Browser.

Desde el 17 de octubre de 2012 The Pirate Bay se ha convertido en una plataforma descentralizada, siendo alojada entre muchos servidores en diferentes ubicaciones.

Algo para pensar sobre la IA ChatGPT:



P2P No estructurados o No Centralizados.


La segunda generación P2P no tiene un servidor centralizado, lo que le da robustez, ya que no hay una computadora, si no que es un sistema distribuido. Por otro lado NO hay solo un responsable, si no miles, lo cual diluyen las responsabilidades, en miles de usuarios/países.


  • Los nodos seleccionan aleatoriamente a sus vecinos.
  • Los vecinos poseen vistas parciales de la red que permiten localizar recursos.
  • Es importante mantener las vistas actualizada.
  • Robusto.
  • Rápido, ya que no tiene cuello de botella.

P2P Hibridos.

También hay P2P Híbridos.
  • Algunos nodos poseen funciones especiales (cliente servidor y P2P).
  • Posee un servidor central del cual se descarga la información de pares ( NO del archivo a descartar!!)
  • La información reside en los nodos ( NO en el Servidor )
  • Comienza como una P2P Centralizado y luego sigue como un P2P Descentralizado

4. Aplicaciones

Swarn. (Enjambre).

Incluye todas las estructuras y usuarios de la red Torrent, con diseño y funcionamiento similar a un enjambre de abejas y de ahí su denominación

BitTorrent

Veamos como funciona BitTorrent de manera superficial.

Es híbrido, al inicio se comporta como Sistema Centralizado (Cliente - Servidor) , en el que se recurre a la URL de él/los trackers.

BitTorrent, que  es un protocolo diseñado para el intercambio de archivos entre iguales (peer-to-peer) en Internet.
Es uno de los protocolos más comunes para la transferencia de archivos grandes
En cualquier instante de tiempo, BitTorrent tiene, en promedio, más usuarios activos que YouTube y Facebook juntos (en un instante de tiempo, no en número total de usuarios únicos específicamente de BitTorrent).

Tracker. (Rastreador).

Servidor especial que identifica el enjambre y ayuda al cliente a compartir las partes de un fichero con otros ordenadores y usuarios. Un tracker o rastreador de BitTorrent es un servidor especial que contiene la información necesaria para que los Peers se conecten con otros Peers asistiendo la comunicación entre ellos usando el protocolo BitTorrent.



Notar que el SERVIDOR NO tiene el archivo que se quiere obtener, ni sabe sobre el contenido del mismo, solamente tiene la DIRECCIÓN de los equipos (peers)  que SI tienen el archivo o algunas partes del archivo.

Los peers ( pares ) son los nodos o cliente o equipos que forman parte de la red P2P y que contiene el archivo o algunas partes del archivo.

Leecher (sanguijuela)

Un Leecher ,es un usuario que está descargando un archivo desde la red P2P.

Independientemente de que estemos subiendo o descargando un archivo, tendremos esta categoría de Leech.

La función del Leecher es la de descargar las partes de los archivos que aún no están presentes en su ordenador. En algunos casos de redes P2P el término Leecher puede tener una connotación negativa y se refiere a usuarios que descargan pero NO comparten, recordemos que si todos colaboran el sistema se vuelve mas efectivo. 


En algunos lugares este comportamiento es castigado y se elimina al usuario de la red P2P.

Seeders (sembradores)

En cuanto a los Seeders, (Seeds o semillas) podemos decir que son todos aquellos usuarios que están compartiendo un archivo completo dentro la red Torrent tras haber finalizado su descarga.

Estos usuarios son los deseados de una red P2P. 


Cuando se tiene el 100% nos convertimos en semillas y empezamos a compartirlo con otros usuarios para que puedan seguir descargándolo.

Una particularidad que los diferencia de los Leechers, es que comparten el archivo con sus compañeros pero no descargan ninguna parte del archivo de otros.


Archivo Torrent.

Un archivo Torrent es un contenedor de metadatos acerca de carpetas y ficheros que se van a distribuir y que serán utilizados por un cliente BitTorrent.

Es decir, un archivo Torrent contiene la información acerca de la localización de un archivo específico, sin tener información del archivo como tal.

Metadatos: se refiere a aquellos datos que hablan de los datos, es decir, describen el contenido de los archivos o la información de los mismos (ver nota al final)


NOTA: El archivo torrent NO tiene información del archivo a descargar, si no de la localización !

Para lograr hacer el sistema mas eficiente, mas rápido es común es que un archivo grande sea fragmentado en diversos pedazos.

Esto indica que si queremos compartir un archivo de gran tamaño sería un camino a considerar, sin esperar a que se compartan entre muchos, si no mas bien pensando en la distribución de pequeños fragmentos.

Cada una de estas partes es localizada en un host o equipo distinto.

El archivo Torrent consta de la información de localización de cada una de estas partes. Mediante esta información, el cliente puede descargar cada una de estas partes por separado y después unirlas para conformar el fichero original.

Es imprescindible que la descarga finalice para que las partes de ficheros pueden ser ensambladas.

Este método acelera la descarga de ficheros grandes, por esta razón es que es un mecanismo bastante usado.

El uso de ficheros Torrents para descargar contenido de internet es una vía más. Desde algún servidor descargamos el Archivo .torrent, que contiene la información de localización de las partes del archivo que queremos descargar.

Este archivo .torrent es abierto por una aplicación P2P que permite contactar a los Seeders, Seeds o semillas que contienen el archivo y comienza a descargar pequeños pedazos del archivo.


Si un equipo es Seeder o semilla y muchos Leechers están descargando el archivo, el ancho de banda subida (salida del equipo) podría ser elevado para ese Seeder ( usuario)

En realidad hay varios clientes que caen bajo esta sombrilla, como son:

  •     ABC
  •     BitComet
  •     BitSpirit
  •     BitTornado
  •     BitTorrent.Net
  •     G3 Torrent
  •     mlMac
  •     MLdonkey
  •     MXIE
  •     QTorrent
  •     Shareaza
  •     µTorrent
  •     Vuz

Magnet Link.

Compartir archivos torrent es bastante sencillo.

Una vez creado el fichero .torrent simplemente tenemos que compartir este,
Un enlce al torrent se nombra comúnmente como enlace magnético (Magnet Link).

Los Magnet Links son: son sólo enlaces !! no archivos.

Un Magnet Link contienen la misma información que los archivos .Torrent, pero en formato de enlace. Contiene un identificador único , varios parámetros según la naturaleza exacta del torrente y, lo que es más importante, un HASH criptográfico de los archivos del torrent.

Esto es útil para los torrents porque puede aplicar HASH a dos torrents cualquiera y, si apuntan exactamente a los mismos archivos, tendrán HASHES idénticos.

Entonces, para que su cliente de torrent sepa quién más es parte de un torrent determinado, simplemente tiene que comparar el HASH en el enlace magnet con los hash de los torrents que se comparten. Filtrar solo aquellos con HASHES coincidentes reconstruye rápidamente el enjambre de pares en la red.

En una red BitTorrent, cada enlace magnético hace referencia a un torrent específico. Por tanto, al tener este HASH, es como si tuviéramos el archivo torrent en sí.

En los sitios creados para compartir torrent, los enlaces magnéticos y los ficheros .torrent son enumerados e indexados. Un archivo torrent puede ser compartido a través de correos electrónicos o sms.

Recordemos que el fichero .torrent o el enlace hash solo contienen las instrucciones necesarias para que el cliente BitTorrent sepa de donde obtener los datos.

Notar que NO sabemos mas allá del nombre sobre un archivo que descargamos. Si alguien pusiera un virus en ese archivo. El archivo original y el fraudulento NO tendrían el mismo hash!, pero NO podemos saber cual es el "bueno" o el "malo".


Otras aplicaciones.

eMule (utiliza la red eDonkey)
LimeWire (red Gnutella)
Kazaa (red FastTrack)
Morpheus (red FastTrack)
iMesh (red Gnutella)
BearShare (red Gnutella)
WinMx (redes OpenNap y WPNP)

Metadato Información Complementaria:

Un metadato es la mínima información indispensable para identificar un recurso, como puede ser un archivo en tu ordenador, una información extra sobre un tipo de dato

Otra forma de explicar qué son estos metadatos, también llamados metadata, es que son los datos que se usan para describir el contenido o información de otros datos.

Los metadatos son muy importantes en el entorno digital (aunque no solo los encontramos en él), pues ayudan a mejorar la estructuración de la información, puesto que describen y catalogan esta, además de mejorar su recuperación, ya que nos sirven para identificar la relevancia de aquello que estamos buscando. 

Toda información, sea cual sea su soporte, contiene metadatos, por ejemplo, para un libro serían el nombre del autor, la fecha de publicación, la editorial o la cantidad de páginas, Fotos, archivos de Word, PDF, Música, etc.

Entre los diferentes tipos de información que ofrecen los metadatos podemos encontrar:

  •     Información del contenido.
  •     Información sobre aspectos formales (tamaño, fecha, tipo, idioma, etc.).
  •     Información de derechos de autor o copyright.
  •     Información de la autenticidad del documento o recurso.
  •     Información sobre el contexto (calidad, condiciones de acceso, uso, etc.).



Funciones de un Metadato

  • Búsqueda: Los metadatos deben proporcionar la información suficiente para determinar si existen datos de interés dentro del recurso o colección de recursos o, simplemente, para saber que existen esos datos.
  • Recuperación: La información que proporcionen los metadatos debe servir a los usuarios para adquirir el recurso que están buscando y que les resulte de interés.
  • Transferencia: Los metadatos deben facilitar la información necesarias para que los usuarios puedan usar los recursos recuperados en sus dispositivos (incluye información sobre el tamaño del recurso, su estructura lógica y física y los propios metadatos).
  • Evaluación: Los metadatos deben evaluar la información para determinar si el recurso será útil para el usuario.
  • Archivo y conservación: Los metadatos sirven también para garantizar que los recursos de información se documenten, se definan sus responsables y sigan siendo accesibles en el futuro.
  • Interporeabilidad: Los metadatos deben facilitar la interoperalidad, para lo que se han creado y definido estándares y protocolos que permiten el intercambio de esta información. Ejemplos de estos protocolos y estándares serían el protocolo Z39.50 o la norma ISO 15836-2003.

Tipos de Metadato.

  • Descriptivos: Son los metadatos que describen e identifican los recursos, permitiendo a los usuarios su búsqueda y recuperación.
  • Estructurales: Estos metadatos proporcionar información sobre la estructura interna de los recursos y la relación entre ellos. Su objetivo es facilitar la navegación y la presentación de estos recursos.
  • Administrativos: Los metadatos destinado a facilitar la gestión del conjunto de recursos, incluyendo los derechos y el control de acceso y uso. Dentro de este tipo de metadatos tenemos metadatos:
    • Técnicos: Sirven para decodificar y representar archivos.
    • De presernvación: Para la gestión a largo plazo de archivos.
    • De derechos: Los derechos de propiedad intelectual adjuntos al contenido.


5. Cálculo de Torrent

El Torrent usa un mecanismo de verificación de suma para asegurarse que NADIE cambie algo en los archivos que tiene almacenado en sus equipos, recordemos que estos "trozos" de archivos son enviado al destinatario. Se podría plantear la pregunta: ¿Puede alguien modificar de manera intencional un archivo y poner algo como ser por ejemplo un malware o virus?

En caso de modificarse la modificación sería detectada.

Vamos intentar mostrar con un EJEMPLO.

Para ello creamos dos archivos , uno original y otro con una pequeña modificación.

Empezamos con crear un archivo con el resultado del factorial de 10000.

Ese archivo tiene una cantidad de 36709 caracteres numéricos.

La primer línea es:

Vamos a crear una copia fraudulenta del archivo, con el mismo nombre, pero con un pequeño cambio, el primer 2 lo reemplazamos por una letra A.

Ahora vamos a crear primero un Hash  y luego un torrent para cada uno de estos archivos, (con el Transmission creamos los archivos) : factorial.txt.torrent

Vamos a demostrar que el pequeño cambio de una letra A en el archivo genera dos torrents distintos.. esto demostaría que cualquier modificación en un archivo Torrent se puede detectar.

Creamos un Hash y comparamos...

ya podemos ver que los códigos de Hash son distintos.. veamos con el Torrent,

Si creamos un Torrent de cada uno de los archivos , el fraudulento y el original tenemos:

Podemos ver que NO son iguales los Torrents!!

Información Complementaria:

MD5 (Message Digest Algorithm 5, Algoritmo de Ordenación de Mensajes 5) es un algoritmo seguro desarrollado por RSA Data Security, Inc. MD5 es una función hash de 128 bits, que toma como entrada un mensaje de tamaño arbitrario y produce como salida un resumen del mensaje de 128 bits.