¿Es posible garantizar que los datos transmitidos sean correctos con una precisión del 100%?

Puede verificar que toda la información enviada se haya recibido y esté intacta.

Pero no creo que puedas hacerlo a la escala y magnitud que pides con la tecnología actual. Empujar y recibir 1TB de datos por segundo solo es un desafío, y mucho menos verificar la integridad de los datos.

Por ejemplo:

  1. Puede enviar los mismos datos dos veces y compararlos en el extremo receptor para mayor precisión.
  2. Se puede realizar una verificación adicional (CRC) en cada uno de estos mensajes para verificar que estén intactos.
  3. También puede enviar un ACK de regreso a la fuente para verificar que cada mensaje haya sido recibido.
  4. Una vez comparado en el extremo receptor, puede preguntar al lado transmisor si ese fue el mensaje real que envió.
  5. Una vez aprobado, ahora lo ha comparado en el lado receptor, solicitó a la fuente pruebas de que era correcto y también le dijo a la fuente que lo obtuvo.
  6. Y si por casualidad los datos eran incorrectos en cualquier nivel, reinicie este proceso para regresar y recibirlos nuevamente.
  7. Eso es solo para un mensaje.

Se puede hacer. Pero como puede ver, hay muchos gastos generales para verificar la integridad de un solo mensaje. Por lo tanto, es poco probable que multiplique por 1 TB por segundo cuando lo solicite.

La capacidad de verificar que los datos entrantes fueron enviados, recibidos y correctos puede hacerse. Si el hecho se ha hecho por algún tiempo. La industria ferroviaria que describí en mi publicación anterior ha estado haciendo esto desde los años 60. Pero a velocidades relativas a las necesidades de estos sistemas.

Sin embargo, en la escala que solicita no es probable. Y además, incluso si pudiera verificar “entrada de datos” versus “salida de datos” a este nivel, ¿qué planea hacer con esta información? ¿Y cómo verificaría que todavía está intacto en las siguientes etapas del flujo de trabajo? ¿O en las etapas anteriores para el caso?

Cada paso o hito en el proceso del flujo de trabajo debería tener la capacidad de verificar que los datos fueron enviados / recibidos y están intactos. Y si lo almacena, haga lo mismo. Y regrese y verifique los datos almacenados periódicamente.

Y solo por risas, agregue algunos mensajes malos de vez en cuando para probar su sistema y asegurarse de que esté funcionando.

No Existe la posibilidad de que un error voltee todos los bits del mensaje o los cambie de manera impredecible. Información teóricamente, cuanto mayor sea la redundancia, mejor es su oportunidad de preservar su información, pero en un medio con ruido nunca hay una manera de garantizar al 100% que su paquete de datos sea correcto.

Desea enviar [math] 10 ^ {15} \ cdot10 ^ {12} [/ math] bytes (utilizando unidades largas) y desea descartar cualquier error en un mensaje … OK, entonces [math] 10 ^ {27} [/ math], un poco menos que [math] 2 ^ {90} [/ math] bytes. OK, entonces queremos reducir un error dentro de [math] 2 ^ {93} [/ math] bits para que ninguno sea aceptado incluso si es un error.
Una buena firma en RSA debería proporcionar al menos 128 bits de seguridad, que es más que los 93 que necesitamos en su caso. Aunque todavía no es 100% como dice mi primer párrafo, está lo suficientemente cerca para sus necesidades.