Hoy os voy a hablar de la diferencia técnica entre un sistema P2P y un sistema de descargas directas (cliente-servidor), teniendo en cuenta su eficiencia a la hora de aprovechar los recursos de la red y por supuesto, lo que nos interesa a todos, su rapidez. Imaginemos que queremos pasar un fichero de audio o video de 10MB. En la arquitectura cliente-servidor, el servidor debe enviar una copia del archivo a cada uno de los usuarios, provocando, en muchos casos, que el ancho de banda de dicho servidor sea insuficiente. Esto no ocurre en el P2P ya que cada par también distribuye cualquier parte del archivo a cualquier otro usuario a la vez que recibe de otros usuarios estas partes. De este modo, ayudamos al servidor a distribuir el archivo. Podéis visitar nuestro tutorial sobre descargar por P2P anónimo.
Arquitectura Cliente-Servidor
- El servidor debe transmitir cada copia del archivo a cada cliente, por tanto tenemos N*F bits que hay que enviar. Siendo la carga del servidor Us, el tiempo para distribuir el archivo será NF/Us.
- Imaginemos que tenemos un par que es lento, y que su velocidad es mínima. El tiempo mínimo de distribución sería F/descarga.
Por tanto, el tiempo de distribución sería mayor-igual al máximo de los dos casos anteriores. Si consideramos que el límite inferior se alcanza, el tiempo de distribución sería IGUAL al máximo de los dos casos anteriores. Para un N muy grande (número de clientes) tenemos que el tiempo de distribución aumenta linealmente.
Arquitectura P2P
Al comenzar la distribución, el archivo solo está en el servidor, por tanto deberá enviar al menos una vez, la totalidad del archivo (1 copia del archivo). Podéis visitar nuestro tutorial sobre PeerBlock para evitar problemas de privacidad.
- El tiempo mínimo de distribución sería F/Us (tamaño del archivo entre la velocidad de subida del servidor). Al contrario de lo que ocurre en cliente-servidor, en este caso, no es necesario enviar N veces el archivo.
- Si tenemos alguien que baja lento, tendremos que el tiempo mínimo es F/descarga.
- Si hay muchos peers descargando (y compartiendo) dicho archivo, el tiempo míninmo sería mayor o igual que NF/(Us+U1+U2..Un). Siendo Us el primer SEED y los demás los peers que comparten y descargan.
Por tanto, teniendo en cuenta todo lo anterior, tendríamos que el tiempo mínimo de distribución de la arquitectura P2P sería mayor o igual al máximo de los casos anteriores. Si consideramos que un bit es reenviado tan pronto como se recibe, el tiempo mínimo sería IGUAL al máximo de los casos anteriores (no >= mayor igual). ¿Te ha sonado todo esto a chino? Mira la gráfica y juzga por ti mismo.
¿Por qué son más rápidos en la práctica los servicios como Megaupload o Rapidshare? Porque la mayoría usamos líneas ADSL (Asimétricas), más bajada que subida, por tanto siempre bajaremos más que lo que vayamos a subir, sin embargo los servidores tienen un ancho de banda muy grande ya que usan muchos servidores alojados en distintos países…servidores distribuidos.