¿Por qué la distribución de piezas aleatorias de un archivo es más rápida que una transferencia contigua?


17

¿Por qué se dice que BitTorrent es más rápido, en parte, porque transfiere piezas aleatorias de un archivo en lugar de transferirlo de principio a fin de manera contigua / lineal?


EDITAR: ¿Pero por qué tienen que ser 'al azar'? ¿Por qué no una transferencia 'semi-contigua' más predecible en la que un compañero te da la primera mitad y el segundo compañero la otra mitad? Esto teóricamente reduciría los gastos generales.

Respuestas:


6

Con respecto a la edición preguntando por qué tienen que ser aleatorios: Digamos que los torrents se cambiaron para descargar solo el primer bloque que el descargador no tiene, lo que garantiza una transferencia contigua.

Luego comparto un archivo de 100MB. 10 personas se conectan y cada una descarga 50 MB antes de que me desconecte.

Estas personas son jodidas, porque todas tienen la primera mitad del archivo, mientras que solo yo tengo la segunda mitad. Hasta que vuelva a estar disponible, no podrán completar la descarga.

En cambio, con los bloques transferidos en un orden aleatorio, como es realmente el caso, cada una de estas 10 personas tiene un conjunto diferente de bloques, por lo que pueden intercambiar entre ellos para completar sus descargas sin necesidad de que yo esté cerca.

Sin embargo, aún mejor, porque cada uno de ellos tiene un conjunto diferente de bloques, cada uno de ellos puede descargar de todosde los otros para llenar los vacíos en su copia. Su edición aludía a la idea de comenzar desde un punto aleatorio en el archivo y descargar de forma contigua desde ese punto, pero eso aumentaría la cantidad de superposición de una copia del descargador a la siguiente (si Alice comienza al principio del archivo y Bob comienza 10% en él, luego hay un 40% del archivo que ambos tienen y solo un 10% exclusivo de cada uno de ellos que pueden intercambiar sin que me vuelva a conectar para que el resto esté disponible). La descarga en un orden aleatorio maximiza la unicidad del conjunto de bloques de cada descargador, maximizando así la capacidad de los descargadores para comenzar a comerciar entre ellos y maximizando las posibilidades de que puedan armar una copia completa si no hay semillas disponibles.

Una descarga contigua única puede (o no, según las condiciones) ser mejor para usted , pero la descarga en orden aleatorio es mejor para la red en su conjunto.


"un orden aleatorio maximiza la unicidad de cada conjunto", precisamente.
eternalmatt

30

La clave es que está obteniendo el archivo de varias fuentes (pares) al mismo tiempo en lugar de una sola fuente.

Si tiene un archivo que se divide en 10 partes y tarda 100 segundos en descargarse de 1 servidor, entonces, en teoría, puede obtener el archivo de 10 pares en 10 segundos (más algunos gastos generales) ya que cada par puede entregar su parte en 10 segundos. En la práctica, llevará más tiempo ya que cada par no será perfecto, y probablemente alcanzará su límite de ancho de banda (pero se entiende la idea).

Como debe volver a ensamblar el archivo de todos modos, no tiene que buscar las piezas en orden. Entonces, si solo tiene 5 pares con cada uno entregando 2 partes, estas pueden ser partes aleatorias del archivo.


Sencillo. Claro. +1
Xavierjazz

55
"Si 6 hombres pueden cavar 6 hoyos en 6 minutos, ¿cuánto tiempo les toma a 10 hombres cavar 10 hoyos?"
Martin

44
@martin depende del tamaño de los agujeros (el tamaño del trozo) y el equipo disponible (ancho de banda) :)
Ratchet Freak

14

Debe decirse que esto depende completamente del archivo en cuestión, la cantidad de pares y la velocidad de la fuente no bittorent.

Nunca descargará más rápido que el ancho de banda máximo de descarga de su conexión, y si está descargando desde un lugar con suficiente ancho de banda, será más rápido que usar Bittorrent.

Sin embargo, a medida que las velocidades de Internet son cada vez más rápidas, estamos llegando al punto en que los sitios web (más pequeños) y los hosts no pueden mantenerse al día.

Por ejemplo, cuando estaba buscando precios de colocación en Londres hace unos meses, me cotizaron precios absolutamente terribles para una conexión de 5Mb. Si tuviera que tomar esto, serviría bien a la mayoría de las personas.

Sin embargo, en la misma línea, si tuviera que alojar algunos archivos de 500Mb, y todos tuvieran líneas de Cable (50Mb) o ADSL2 + (24Mb) rápidas, notaría que mi servidor no podría servirle velocidad tan rápido. ...

... sin embargo, si tuviera que ofrecerle el mismo archivo a través de Bittorrent y hubiera 200 personas, cada una con solo 30Kb / s, eso equivaldría a 5.8Mb / s (¡y muchas personas tienen una velocidad de carga mucho más rápida que eso!) .... y ahora, si tuviera que ejecutar Bittorrent en mi servidor y ofrecer el mismo archivo, significaría que hay un total de 10.8Mb / s descargables, mucho más de lo que podría proporcionar a través de esa tubería de 5Mb / s mío.

Bittorrent es en gran medida un juego de números, debes tener suficientes personas cargando con suficiente ancho de banda ... Debido a los pasos adicionales involucrados, como la verificación de integridad (y el hecho de que deberías volver a cargar), es difícil superarlo directamente descarga desde un buen sitio con suficiente ancho de banda, pero, para muchos sitios más pequeños, son sitios brillantes o incluso más grandes que simplemente quieren ahorrar dinero de su factura de ancho de banda.


sin mencionar que el ancho de banda de carga y descarga en las conexiones de cable estándar no es lo mismo (la A en ADSL)
freak de trinquete el

Regla de ancho de banda colo extraño, me parece a mí. Aquí, en Colorado, parece que la mayoría de los colos ofrecen conexiones de 100 Mbps y le cobran por uso cada mes, y depende de usted administrar y limitar su propia velocidad de conexión si necesita mantener el costo bajo.
Zan Lynx

Otro comentario: prefiero descargar desde Bittorrent cuando sea posible debido a la verificación de integridad. Es increíblemente doloroso verse obligado a volver a descargar un DVD ISO completo porque el SHA1 no coincide. Bittorrent comprueba cada bloque, por lo que solo es un pequeño fragmento para reemplazar.
Zan Lynx

@Zan Lynx - ¡Ay! Solo he tenido ese problema una vez en los últimos 5 años ... y antes de eso, fue principalmente cuando tuve mala memoria que corrompe silenciosamente las cosas, puedo entenderlo, pero no lo he visto en muchos años ... De todos modos, he tenido la intención de buscar alojamiento y alojamiento en el extranjero desde hace algún tiempo: Inglaterra es muy costosa para casi todo :(
William Hilsum

4

La mayoría de las respuestas no parecen responder a su pregunta.

BitTorrent no es más rápido.

En realidad, es más lento debido a la sobrecarga de conectarse a múltiples fuentes.

Sin embargo, la verdadera diferencia en la práctica es que está descargando desde muchas fuentes que pueden sumar potencialmente más rápido de lo que un sitio web podría brindarle. Muchos servidores web están bajo cargas pesadas o tienen una velocidad limitada, por lo que no los secará.

El hecho de que BitTorrent transfiera el archivo en un orden aparentemente aleatorio no tiene un efecto directo en su velocidad.

En lo que respecta a su edición, ¡las piezas no son aleatorias! Se priorizan en función de la rareza: una pieza rara debe volverse menos rara lo más rápido posible para que no se pierda si la fuente que la tiene se va repentinamente. Tiene que ver con la disponibilidad, no con la velocidad.


3

Es un problema de disponibilidad. Si tiene que descargar de manera contigua, entonces depende de las personas que alojan más del archivo que usted. Todas las personas con menos archivos que usted no podrán enviarle ningún dato.

Si los fragmentos se distribuyen aleatoriamente, la cantidad de hosts desde los que puede descargar será mayor, por lo tanto, descargará el archivo más rápido.


1

Los torrentes no siempre son más rápidos, pero cuando lo son, una de las razones es la entropía de la red. Una conexión de cualquier duración (la descarga de un archivo grande) puede degradarse con el tiempo, ya que factores aleatorios e incontrolables afectan la transmisión de paquetes, como la sobrecarga del enrutador y otros problemas entre usted y el servidor. Más errores significan más retransmisiones de paquetes, y esta situación tiende a empeorar con el tiempo. Los torrentes hacen muchas conexiones más pequeñas, a través de muchas rutas de enrutamiento, una estrategia que puede, en las circunstancias correctas, reducir errores y paquetes perdidos o dañados, y parece ser más rápida, especialmente a medida que aumenta el número de semillas y pares.


1

Supongamos que envía a dos personas a la tienda de comestibles para recoger una lista de artículos. Les das a cada uno exactamente la misma lista. Sin embargo, uno de ellos debe recoger los artículos en el orden exacto en que aparecen en la lista. El otro puede recoger los artículos en el orden que desee. ¿Cuál crees que terminará primero?


¿Qué pasa si todos los artículos se organizaron en orden? (Desfragmentado?)
Mateen Ulhaq

Dispuesto en qué orden? ¿En orden alfabético? A menos que se hayan organizado exactamente de la misma manera que se organizó el supermercado, no ayudaría. En la analogía, el "supermercado" son las listas de bloqueo de varios cargadores. (Si todos comenzaron desde el principio, entonces dos personas que tenían el 33% del archivo no podrían ayudarse entre sí, ya que tendrían exactamente los mismos bloques. ¡Qué asco!)
David Schwartz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.