¿Por qué no se utiliza BitTorrent para actualizar el sistema operativo?

Glyn Williams señaló un par de buenas razones para no usar BitTorrent para distribuir actualizaciones del sistema operativo, aunque a partir de este escrito, tendría que sumergirse en la sección de comentarios de su respuesta para verlas.

Hay una razón técnica más, y es grande: UDP . En eso se ejecuta el protocolo de transporte de BitTorrent, y con suficiente volumen (es decir, torrenting sin estrangulamiento) juega un infierno con los mecanismos de control de congestión de su primo TCP. Si alguna vez ha querido estrangular a su compañero de habitación cuando su transmisión de video sin restricciones o torrenting le hizo imposible hacer la investigación en línea para un documento atrasado, ya sabe de dónde vengo.

Además, todas las aplicaciones habilitadas para la red en su sistema deben usar el protocolo DNS (Sistema de nombres de dominio) para resolver los nombres de host a las direcciones IP para conectarse a otros sistemas. El protocolo DNS se ejecuta sobre UDP y, por lo tanto, compite con sus sesiones de BitTorrent / streaming por el ancho de banda. DNS es un protocolo de bajo volumen (por ejemplo, un paquete a un millón o más de BitTorrent / streaming), por lo que generalmente pierde, y ahora no puede llegar a ningún lado.

Finalmente, si todo eso sucede con solo una Mac en su LAN, considere lo que sucede en una oficina llena de bondad afrutada.

Ahora míralo desde el punto de vista de Apple. Para apoyar su filosofía de “simplemente funciona”, tendría que, como mínimo :

  1. Compre / copie / ruede su propia implementación de protocolo BitTorrent
  2. Agregue código para monitorear el uso general de la red en su subred (monitorear el uso propio del sistema host no es suficiente cuando decenas de otros hosts podrían actualizarse simultáneamente, y aún no puede hacer nada con respecto a otras subredes conectadas que se conectan a su empresa ahora- enrutador principal sobrecargado)
  3. Agregue código para acelerar el torrente en consecuencia y ajústelo dinámicamente con el tiempo
  4. Ejecute sus propias sembradoras y rastreadores BitTorrent permanentes

O simplemente podrías:

  1. Abra una conexión TCP a su infraestructura web pública compatible con CDN y descargue la actualización

Cualquier ingeniero que elija el primer enfoque tendrá que justificar mucho .

Porque eso sería peor para los usuarios.

Bit Torrent funciona al requerir que los dispositivos del cliente compartan contenido con otros. Cada cliente es una fuente que se puede compartir, y se espera que cada usuario cargue tantas veces como descargue. O tal vez más.

Para dispositivos móviles, esta es una idea terrible. Nadie quiere descargar un archivo de 1 GB y luego cargar 3 GB de datos para el bien de la comunidad.

Además, los archivos del sistema operativo no se guardan en el dispositivo. Después de la instalación del sistema operativo, el archivo se elimina. Entonces no hay nada que compartir.

More Interesting

¿Puedo aprender a desarrollar aplicaciones de iOS y Android simplemente usando el material que está disponible en línea?

En el desarrollo de Mac / iOS, ¿cuál es la diferencia entre un objeto de aplicación y un delegado de aplicación?

¿Cómo puede restringir la sincronización de contactos de Facebook de iOS 6 a listas de amigos específicas?

¿Por qué el iPhone 4S se retrasa en la actualización a iOS 8 cuando en realidad está destinado a su mejora?

¿Debo actualizar mi iPhone 4 a iOS 9? No me actualicé a iOS 8.

¿Qué cursos o idiomas se deben aprender si alguien desea desarrollar sitios web, incluso los complejos como un sitio web de comercio electrónico, y también desea desarrollar aplicaciones para iOS y Android?

¿Cuáles son algunos buenos juegos fuera de línea para iOS?

¿Apple está pagando a Twitter, o viceversa, por la integración de iOS en Twitter?

Cómo acceder a las fotos almacenadas en una biblioteca de fotos de iCloud desde un iPhone con iOS 8

¿Necesito Photoshop para crear un icono de iOS?

¿Cómo saben las aplicaciones de iOS si los contactos del teléfono también tienen la aplicación?

Tabletas: Android vs iOS: ¿cuál es mejor? ¿Qué modelos disponibles en el mercado son mejores para el trabajo, internet y fotografía?

¿Es posible que se pueda crear una aplicación web, android o ios usando c o c ++? Si hay un ejemplo, publique aquí?

Tengo una idea y me gustaría desarrollar una aplicación para iOS. ¿Qué idioma debo comenzar a aprender primero?

¿Qué hace exactamente la consola de depuración en iOS en Safari?