Seguro que la gran mayoría de vosotros ha usado alguna vez un cliente P2P para descargar cualquier tipo de archivo, pero, ¿realmente sabemos cómo funciona?
Un sistema P2P es un sistema distribuido (conjunto de computadoras conectadas y comunicadas entre sí) en el cual todos los elementos tienen la misma función.
Con este sistema, evitamos la infraestructura de los servidores y todos los problemas que conlleva (congestión de la red y del propio servidor etc). Ahora lo que tenemos son varios ordenadores los cuales tienen almacenados los recursos, por lo tanto está descentralizado, ya que cada sistema puede localizarse en cualquier parte.
Al hablar de recursos, quiere decir cualquier tipo de información tales como películas, juegos, programas, PDFs, páginas webs…
Parece que hasta ahora tenemos ventajas, pero va a haber dos problemas: el primero es cómo localizar los ordenadores que tienen los recursos que nosotros queremos, y el segundo que esos ordenadores no van a estar siempre conectados (ya que un usuario normal puede apagar o encender la máquina cuando él desee). Es por esto que se necesita una masa amplia para poder garantizar mayor disponibilidad de los recursos, es decir, tener la información replicada en varias zonas.
Hasta ahora se ha descrito la estructura que tiene un sistema P2P. BitTorrent es un protocolo, el cual nos indica que pasos hay que realizar para conectar distintas máquinas y localizar recursos. BitTorrent es utilizado para compartir archivos de cuyo contenido es estático y no va a cambiar, además es más útil con archivos grandes. Aquellos programas que implementen el protocolo BitTorrent, se llaman clientes BitTorrent.
Los ordenadores que tengan un cliente BitTorrent instalado se llamarán peer.
Los peer pueden ser seeders o leechers. Los seeders son aquellos que tienen una copia completa del archivo. Sin embargo los leechers son aquellos que tienen algún trozo del mismo (chunk), pero no el archivo completo. El initial seeder es el primer seeder que posee una copia completa del archivo.
A todos los participantes (seederes y leechers) se les denomina torrent o swarm.
Para comenzar la descarga de un archivo .torrent, es necesario tener instalado un cliente, y por supuesto el archivo .torrent, que posee la información del archivo a descargar: su nombre, cuál es su tamaño, un checksum, y lo más importante, la URL del tracker. El tracker es el servidor el cuál va a coordinar la distribución del archivo.
Como el protocolo está diseñado para compartir archivos grandes, puede ser que algunas veces sea necesario trocearlos. A los trozos se les denomina chunks. Los chunks pueden ser descargados desde cualquier ordenador e incluso de manera concurrente, para incrementar la velocidad.
Si queréis investigar las técnicas que se utilizan para compartir los archivos podéis ver este artículo.
Hoy queremos hablaros de Docker un proyecto que cada día es más usado, porque permite…
Cada vez estamos más acostumbrados a usar código para generar la infraestructura (IaC), documentar nuestro…
Uno de los problemas que se presentan con una mayor frecuencia hoy en día, es…
Uno de los problemas que solemos tener los programadores, es que nos gusta estar a…
Docker es una de las herramientas más usadas por los desarrolladores, sin embargo, usarlo en…
Como seguramente sabrás el uso de JavaScript ha crecido exponencialmente en los últimos tiempos, sin…