¿Cómo se puede aumentar la velocidad de transmisión de datos?

El retraso de extremo a extremo depende de varios factores. Principalmente, el retraso es causado por la transmisión, propagación, colas y procesamiento.

Entonces, para acelerar la transmisión de datos, cada uno de estos retrasos debe minimizarse.

El retraso de la transmisión depende del ancho de banda. Entonces, si tiene un ancho de banda de 10 Mbps y datos de 10 Mb, se desperdicia un segundo solo al enviarlo desde el extremo del remitente. Hoy en día, los retrasos en la transmisión son bastante bajos debido al alto ancho de banda.

Parece que estás enfocado principalmente en el retraso de propagación. El retraso de propagación es el retraso debido al flujo real de datos del lugar A al lugar B. Ahora, estos datos podrían ser a través de un medio lento, como cables eléctricos, donde la velocidad es 2/3 de la velocidad de la luz, o podría ser a la velocidad de la luz misma en cables de fibra óptica y enlaces inalámbricos. Por lo tanto, se puede aumentar la velocidad utilizando medios de comunicación más rápidos.

Por último, los enrutadores intermedios tienen que procesar estos paquetes. Estos paquetes llegan al enrutador, forman una cola y esperan a que se procese su turno. El enrutador decide dónde enviarlos después de analizar los datos de la capa de enlace. Esto induce más demora.

Y para colmo, este es solo el viaje de un paquete. Mucho más problemático es cuando los paquetes se descartan, se enrutan de manera ineficiente o se atascan en el tráfico. Los protocolos, como SPDY, intentan resolver el problema mediante el uso de la multiplexación (en la cual los paquetes se envían multiplexados a la vez), la compresión zlib (ahorra la cantidad de datos que se transfieren) y el empuje del servidor (los datos se envían antes de solicitarlos ya que el servidor espera que el cliente lo solicite de todos modos).

La velocidad puede ser un término vago,
un modelo de libro de texto común sobre el costo de transmisión de la red divide el costo de los mensajes en [matemática] T_ {mensaje} (n) = T_ {inicio} + n \ beta [/ matemática], donde [matemática] n [/ matemática] es la cantidad de datos a transmitir, [math] \ beta [/ math] es el ancho de banda inverso de la conexión (tiempo por unidad de datos), y [math] T_ {startup} [/ math] es el costo de inicio, es decir , el tiempo que toma para transmitir cualquier mensaje. Supongo que la pregunta es sobre la reducción del costo de inicio.

El límite inferior del costo de inicio es la latencia del cable, determinada por la velocidad de la luz (porque nada puede ir más rápido) y la distancia entre las partes que se comunican. En la práctica, el costo de inicio medible tiende a ser mucho más alto que esto, en parte debido a la sobrecarga de software de establecer una conexión. Antes de que los datos lleguen al cable, los programas incurren en un costo notable (comparable) al inicializar las estructuras de datos, llamar al núcleo del sistema operativo, copiar datos al dispositivo de red, observar varios protocolos (tanto en hardware como en software) para la detección o corrección de errores, apretones de manos para secuenciar, etc.

Se pueden eliminar partes de esto si los programas pueden inicializar la pila de software en ambos extremos con algunas suposiciones sobre los mensajes a seguir. El envío se puede hacer más rápido utilizando el conocimiento de que el extremo del receptor estará listo, los protocolos se pueden simplificar a expensas de la confiabilidad, la copia de datos se puede hacer más rápido si se sabe que los mensajes caben en un búfer reutilizable en una ubicación conocida, sistema las llamadas para notificar al dispositivo de red podrían simplificarse sacrificando la multitarea del sistema operativo, etc. Aunque es factible, minimizar todos los gastos generales mediante el uso de conocimientos específicos del programa es mucho trabajo a cambio de mejoras relativamente menores y compensaciones difíciles, pero si el dinero y el tiempo no son importantes, hacer cosas como estas es más factible que tratar de eludir Las leyes de la física.

La latencia tiene un historial de mejora más lenta que el ancho de banda, por lo que, por el bien del rendimiento del programa, creo que se puede obtener el mejor rendimiento mediante el uso de técnicas de programación que permiten que el tiempo de transmisión se superponga con el procesamiento de algo útil. Eso realmente no mejora la velocidad de la red como tal, pero puede mejorar la velocidad general de un programa.

La velocidad de transmisión de datos se puede aumentar con la compresión.
Esto será de ayuda solo si la fuente no genera símbolos uniformemente al azar sobre el conjunto de símbolos posibles. Cualquier asimetría y puede comprimir y enviar, y descomprimir en el receptor.

Hazlo “mecánico”

Si alguna vez colonizamos otros sistemas solares, seguramente tendremos ‘cables’ entre ellos.

Nada puede “aparentemente” viajar más rápido que la velocidad de la luz, por lo que si el otro planeta está a un año luz de distancia, ¿tendría que esperar al menos dos años para recibir un mensaje de respuesta? Incorrecto.

Solo necesita un cable fuerte de un año de luz, un nanotubo de carbono o quizás algo más fuerte (como el grafeno).

Ahora, para que los datos viajen más rápido entre dos planetas, solo necesita tirar de un extremo del cable por 1, y soltarlo por 0 … Y el transmisor de datos es instantáneo.

No sé si esto responde a tu pregunta, pero es una teoría divertida.

La velocidad de transmisión de datos no puede exceder la velocidad de la luz (a menos que Einstein esté equivocado) y, por lo tanto, lo que desea no se puede hacer. Podemos y trabajamos para aumentar el ancho de banda.