¿Qué protocolo de red actual sería la opción óptima para un ancho de banda FTL muy pequeño?

Posiblemente una pregunta tonta y ajena, pero mi conocimiento en los conceptos básicos de las redes informáticas es terrible.

Imagine el concepto posiblemente no demasiado original, que la humanidad de alguna manera se las arregla para transmitir datos instantáneamente, superando las vastas distancias del espacio; sin embargo, solo es posible para paquetes de datos muy pequeños.

Ahora sea un poco más específico: el transmisor y el receptor son la misma máquina, por lo que si se despliegan dos de esas máquinas, el contacto entre ellas puede ocurrir instantáneamente y sin ninguna pérdida, pero la velocidad en sí es lenta, digamos, ser capaz de envía de 5 a 10 bytes (10 a 20 códigos hexadecimales) por segundo.

¿Difiere de los primeros días de Internet? En otro sentido, ¿sería posible manejarlo con cualquier protocolo que se haya desarrollado en el campo de las redes informáticas?

Si no, ¿qué hace que sea imposible de manejar?

¿Alguna restricción sobre cuántos de estos dispositivos puede construir y colocar uno al lado del otro? Si puedo ejecutar 100,000 de estos en paralelo, solo necesito un multiplexor inverso para obtener un ancho de banda de 5 Mb.
@JohnFeltz tal vez el uso de energía? Pero por lo demás: santa mierda, me tienes.
es tu mundo Use handwavium según sea necesario. Pero ese es el tipo de cosas que un ingeniero de redes inteligente intentaría en su mundo.
@JohnFeltz No estoy seguro, tendría que pagarme mucho para configurar y administrar 100k conexiones paralelas; sería una pesadilla total mantener y hacer/mantener eficiente. ¿Qué sucede cuando el hardware de algunos de ellos se quema? la solución de problemas que va a ser un dolor.
Los multiplexores inversos (que se hicieron populares por primera vez en los años 90 cuando se agruparon varios T1/E1) están diseñados para manejar canales de caída. (Y mis 100,000 unidades fueron un poco hipérboles, por supuesto, pero lo hice para dejar claro que el ancho de banda se puede escalar)
(1) Como señala John Feltz, la palabra que está buscando es ancho de banda . La velocidad es instantánea (o, al menos, FTL); el ancho de banda es de 5 a 10 bytes por segundo. (2) Si el dispositivo está construido con unobtanium platinado, con puertos de interfaz hechos de handwavium, el costo puede ser un factor a la hora de escalar la solución. Si es tan grande como el edificio de ensamblaje de vehículos de la NASA , entonces el tamaño podría ser un problema.
Esta es una pregunta para Network Engineering o Serverfault , no World Building. Los "expertos en la construcción de mundos" no son (en general) expertos en protocolos de comunicación digital.
@BlueRaja-DannyPflughoeft, algunos de nosotros lo somos, quiero decir, hay una etiqueta, [ciencia dura] que es para ayuda experta. Creo que la etiqueta [basada en la ciencia] también se aplica a esto. La construcción de mundos puede tener preguntas muy especiales que pueden deconstruirse en problemas técnicos de IRL. EDITAR: ya sabes, ni siquiera estoy seguro de que esta pregunta sea bienvenida en esos sitios.
Estoy de acuerdo en que no sería bienvenido en NE o SF. Estás hablando de computadoras ficticias con interfaces ficticias en un mundo ficticio... no de lo que tratan ninguno de esos dos sitios. WB, por otro lado, trata con frecuencia #FictionalWorldProblems que tienen raíces en disciplinas de la vida real.
Con algunos transceptores FTL dispuestos cuidadosamente, puede enviar señales en el tiempo. ¿Cómo desea que el protocolo maneje los mensajes que llegan a sus puntos de partida antes de que se envíen?
Esto es lo que supuestamente sucede en la película Avatar. Tienen comunicación FTL, pero es muy cara y muy lenta con 3-5 BITS por segundo.
@Katamori: Según esa lógica, podría hacer literalmente cualquier pregunta en este sitio y afirmar que es sobre el tema. Esta pregunta está objetivamente fuera de tema. La única razón por la que todavía está abierto (y en la lista caliente) es que muchos usuarios de stackexchange también son ingenieros.
Esto no es realmente FTL para distancias suficientemente pequeñas (como un planeta completo); puede obtener fácilmente una conexión a Internet mucho más rápida hoy en día (la descarga/carga de 1 MB/s se considera un poco lenta, y en un orden de magnitud más rápida que la que tiene). De todos modos, si tuviera que usarlo, probablemente obtendría una lista de (muchos...) posibles mensajes que puedo enviar, asignaría un código a cada uno y enviaría códigos en su lugar.
¿Es fiable la capa física? Es decir, habrá pérdida durante la transferencia?
@PeregrineRook MMSP en lugar de espacio regular?
Como ejemplo de un sistema "como este" que opera en la tierra: ver ZEVS y similares. No encontrará mucho, si acaso, sobre la codificación de mensajes, pero el resto podría ser relevante.
Si los viajes FTL también son una cosa y no están severamente limitados, entonces entra en juego la vieja máxima de "nunca subestimes el ancho de banda de una camioneta llena de cintas que se precipitan por la carretera". La mayor parte de la comunicación interestelar se realizará cargando los mensajes en el equivalente de una unidad USB y enviándolos como carga a bordo de una nave con capacidad FTL.
La comunicación submarina podría ser un buen punto de referencia. Las técnicas utilizadas requieren anchos de banda extremadamente bajos, y no debería importar demasiado que las subcomunicaciones sean unidireccionales. es.wikipedia.org/wiki/…
Según la cantidad de datos que esté transmitiendo y la proximidad del remitente/receptor, podría ser más rápido transmitir a través de medios que no sean FTL, siempre que pueda reunir suficiente energía para que la señal se detecte en el destino. Una señal inalámbrica se propaga a la velocidad de la luz, pero puede canalizar los datos para que solo tenga que considerar el retraso de propagación una vez.
Wow, tantos comentarios que ni siquiera puedo decidir por dónde empezar a responder. ¡Gracias, todos sois geniales! Tal vez con @Beta, no, en mi caso, deseo excluir por completo la posibilidad de enviar un mensaje en el tiempo.
@ BlueRaja-DannyPflughoeft, creo que no pareces entender la naturaleza de este sitio.
@Devsman ¡Me gustaría hacer que esta tecnología se use en la comunicación entre planetas o incluso estrellas! Acabo de ver los videos del "grupo" de VSauce sobre Marte y creo que, en mi entorno, sería absolutamente inaceptable esperar 20 minutos o más, incluso para las respuestas más simples.
Realmente no estamos hablando de una red aquí. Estamos hablando de comunicación punto a punto. Hay poco beneficio para cualquier protocolo en absoluto. Imagina una tecla de telégrafo Morse y un tipo tocando 160 bits por segundo. Por supuesto, todos los mensajes están comprimidos y se utilizan códigos para acortar palabras comunes.
Otra cosa a considerar es que con un ancho de banda tan bajo, el uso de The Link estará estrictamente controlado para evitar que las personas envíen fotos de gatos. Un mensaje llegaría a través de The Link y luego se colocaría en una red normal para su distribución. Pero The Link no estaría "en" la red normal per se. No habría ningún beneficio en ello. Es más o menos un dispositivo de entrada del siglo XVIII para todos los efectos.
Los protocolos de red actuales reflejan las compensaciones de la tecnología actual (o de hace décadas). Con FTL tienes una situación significativamente diferente. Por ejemplo, si las paradojas son imposibles, el enlace se enviaría con algunos TB de ruido cuántico (igual en ambos extremos). El remitente busca el mensaje que quiere enviar en ese ruido y envía el desplazamiento. Si no se encuentra el mensaje, provocan una paradoja. Por lo tanto, se encuentra el mensaje, el receptor obtiene el desplazamiento y la longitud y lee el mensaje. Después de algún uso, el ruido se considera "agotado" y se reemplaza para evitar tonterías.

Respuestas (19)

Contrariamente a la preocupación del OP al principio, esta no es una pregunta tonta; en realidad es muy bueno. La mayoría de las respuestas que ha recibido esta publicación son bastante incorrectas, y en este grupo eso significa que debe haber hecho una pregunta que se basa en un montón de fundamentos realmente técnicos. ¡Así que felicitaciones!

El error común

El error común entre las respuestas hasta ahora es que hablan de lo que comúnmente se conoce como protocolos de "capa 3" , o incluso protocolos de "capa 2" adecuados . Para entender la respuesta, necesitamos entender por qué esta es la forma incorrecta de ver el problema.

En la infraestructura de red terrestre (y, en menor medida, satélite orbital) de hoy en día, los datos que se van a transmitir desde una computadora pasan por el siguiente proceso (en un nivel alto):

  1. El flujo de datos se identifica
  2. El flujo de datos se divide en segmentos de transmisión por el remitente
  3. Los segmentos están encapsulados (envueltos) dentro de un paquete de "Capa 3", que proporciona toda la información de fuente/destino/errata necesaria para hacer que el paquete sea enrutable a través de una gran cantidad de segmentos de red.
  4. Los paquetes se encapsulan (envuelven) dentro de un marco de "Capa 2", que proporciona información sobre el origen, el destino, el protocolo en uso y otras erratas. Esta encapsulación define cómo se enruta la trama a través de un único segmento de red.
  5. Una vez que se resuelve el encuadre, el paquete se codifica en el cable (o de forma inalámbrica). Esta codificación define, por ejemplo, cómo distinguir un “1” de un “0”. Entonces, indicando "alto voltaje = 1", "bajo voltaje = 0" y similares.

El problema contextual aquí que anula este método de operación es que está hablando de flujos de datos muy BAJOS con presumiblemente relativamente pocos objetivos comunicándose. De acuerdo con su premisa, también está hablando de un sistema que se sabe que no tiene pérdidas donde la fuente y el destino ya se conocen con anticipación. Esas no son las expectativas y situaciones a las que se adaptaron los protocolos a los que la mayoría de las personas están expuestas a diario.

La solución

Si el remitente y el destinatario se conocen con anticipación y la pérdida no es un problema, no hay ninguna razón para preocuparse por la encapsulación. Todo lo que necesita en ese momento es un método de codificación, como Codificación Manchester . Los métodos de codificación definen básicamente qué es un 0 y un 1 (tanto en tiempo como en amplitud) y proporcionan a los sistemas un mecanismo para garantizar que ambos estén en la misma página.

Para simplificar las cosas, probablemente solo usaría la codificación Manchester, como se usa en muchas de las conexiones por cable de hoy. Sí, hay otros tipos de codificación que pueden funcionar mejor para características de transmisión específicas, pero dado su sistema de entrega de portal "instantánea/perfecta", creo que podemos dibujar un análogo bastante bueno para que ese portal sea equivalente a solo un segmento infinitamente pequeño de una conexión de red por cable.

También tenga en cuenta

Debido a las velocidades muy lentas involucradas, si tiene datos que desea usar para ayudar a enrutar su información a su destino final, sería mejor dejar eso a protocolos de nivel superior (fuera de la red). Su velocidad de transferencia de datos es tan trivialmente lenta que significaría muy poco tener su equipo en ambos extremos para volver a ensamblar el flujo de datos completo y analizar los datos presentados para comprender hacia dónde debe dirigirse.

Y no, eso no significa mirar una IMAGEN, por ejemplo, y comprender lo que significan las imágenes: las computadoras tienen muchos lenguajes de alto protocolo que los usuarios nunca ven. Dicha información podría, por ejemplo, incluirse como parte de un paquete XML. Sin embargo, no me preocuparía por los detalles técnicos en ese momento.

Muy buena explicación, en realidad estoy incluso asombrado después de buscar en Google Codificación de Manchester. De hecho, esto es de muy bajo nivel y se puede lograr mediante una simple conexión electrónica, si pudiera entenderlo correctamente. Pensé que la solución más simple era escuchar ondas de radio, como en la realidad, pero este tipo de comunicación interna comenzó a formarse en la cabeza mientras leía las respuestas. Gracias adicionales por mencionar que el enrutamiento debería funcionar en los niveles superiores.
Tienes las capas al revés en tu descripción. Un paquete IP de capa 3 es 'encapsulado' por un encabezado y pie de página de marco de ethernet (o ATM) de capa 2, al igual que los datos de la capa de aplicación se dividen en paquetes TCP o UDP de capa 4 y luego se les pega un encabezado IP cuando están pasó a la capa 3.
Te equivocaste en las capas. En el modelo OSI, las capas 1 a 3 son física, de enlace y de red.
La codificación Manchester es terriblemente ineficiente. Nos alejamos de ella hace años.
@kingledion, v7d8dpo4 - Bien visto. Muy mal procesamiento mental de mi parte... Culpo al hecho de que había estado despierto durante 54 horas seguidas cuando escribí la respuesta. Seguiré adelante y haré las actualizaciones necesarias. Lo que es muy divertido de esto para mí es que en las primeras 8 horas de ese período de vigilia aprobé un examen escrito de enrutamiento y conmutación para renovar mis múltiples certificados CCIE :) ¡Estoy muy contento de haber programado ese examen para el miércoles y no para el jueves!
@PeterGreen: probablemente podríamos chatear para discutir eso con más detalle, pero ¿qué sugeriría? Manchester no es terriblemente ineficiente... ningún estándar moderno que se me ocurra lo es. Todavía necesita 1 transición de estado O unidad de tiempo (durante la cual podría haber ocurrido una transición de estado) para caracterizar un bit en cualquier esquema. Hay una sobrecarga de transición, pero eliminarla trae sus propias desventajas potenciales (falta de capacidad para distinguir entre el ruido y la transmisión intencional). La codificación utilizada debe coincidir con las características de rx/tx y puede/debe cambiar según la aplicación.
El hecho de que su enlace punto a punto sea confiable no significa que deba / pueda deshacerse de toda la jerarquía de la red. Presumiblemente habrá enrutadores y conmutadores FTL, o al menos centros de distribución en planetas/naves/etc. Todavía puede tener pérdidas, por ejemplo, por desbordamiento de cola o agotamiento de enrutamiento y aún necesita metadatos para averiguar qué hacer. Tal vez solo zlib un paquete TCP o algo así.
No sigo tu sugerencia en absoluto. El hecho de que esta parte de la red sea "impecable" no significa que pueda deshacerse de un enfoque en capas. Por ejemplo, es muy probable que no haya un par de casillas entre todos los socios de comunicación posibles, por lo que es muy probable que necesite enrutamiento. Por ejemplo, a pesar de que la conexión del hiperespacio puede ser perfecta, uno de los componentes eléctricos simples en el lado del remitente o del receptor podría no serlo (también sucede con la electrónica de todos los días). Por ejemplo, es posible que tenga una transmisión real en la que no pueda simplemente "reunir todo"...
... en el extremo receptor (por ejemplo, un flujo de valores de sensores), lo que muy bien significa que necesita tener una capa de empaquetado. Y así. Incluso en los protocolos más sencillos de la actualidad (p. ej., I2C en unos pocos cm de cobre entre dos µC protegidos con velocidades lentas, que pueden considerarse impecables), el manejo de errores es necesario, aunque solo sea en la forma de reconocer un Estado de falla y reinicio del bus.
@AnoE / imallett (Parte 1): el manejo de errores y la "paquetización" para enrutamiento adicional no necesitan manejarse en la capa de red en este escenario. La única razón por la que el manejo de errores y el etiquetado de rutas ocurren en las capas de red hoy en día es porque el objetivo es crear redes de alta velocidad conectadas por sistemas que tienen una potencia de procesamiento comparativamente baja. También para ayudar a las sesiones interactivas que se verían afectadas negativamente por el retraso o la inestabilidad. Este no es ese escenario.
@imallett / AnoE (Parte 2): en este escenario, tenemos capacidades de ancho de banda que son ridículamente lentas y aplicaciones como VoIP/video interactivo claramente no son compatibles. Dado que solo tiene 1 sistema por segmento (un enlace p2p), el direccionamiento específico del segmento no es necesario. El sistema receptor podría aceptar felizmente los datos, procesarlos y tomar cualquier acción apropiada. El flujo de datos en sí mismo podría, en formatos de nivel superior (XML, por ejemplo), definir el reenvío y otra información de manejo. No es necesario que se haga en la capa de red, por lo que no debería ser así.
@Anoe / imallett (Parte 3): tenga en cuenta que el sistema receptor podría, a su discreción, tomar los datos y empaquetarlos (después de descomprimirlos/manipularlos según corresponda). No descarto esa capacidad, solo afirmo que no es necesario consumir un ancho de banda extremadamente valioso con una sobrecarga que no es necesaria para el funcionamiento del sistema. Donde el ancho de banda es abundante (control central) es donde se agrega esa sobrecarga. Si se va a enviar a otro barco, el control central podría leer fácilmente los datos, eliminar los campos "a" de la información de nivel superior y reenviarlos.
@imallett / AnoE (parte 4): en lo que respecta específicamente al control de errores, muchas aplicaciones actuales se basan en protocolos de nivel superior para detectar errores. Cualquier aplicación que use UDP, por ejemplo, hace esto.
@GrinningX Este argumento tiene sentido principalmente en un escenario de igual a igual. El OP no lo establece explícitamente, pero siento que se implicaba una arquitectura distribuida similar a Internet.
@imallett: el OP especificó que "el transmisor y el receptor son la misma máquina, por lo que si se implementan dos de esas máquinas, el contacto entre ellas puede ocurrir instantáneamente y sin ninguna pérdida". Para mí, eso suena como que todos los barcos solo pueden comunicarse con un sistema centralizado O que los barcos pueden comunicarse con otros barcos, pero se conectan directamente a otros barcos. En el primer caso, sigo pensando que los protocolos de capa superior pueden/deben cubrir el manejo de la información (P2P a un mainframe que puede actuar en función del contenido de los datos), y en el segundo, si todas las conexiones son P2P, normalmente no se necesita información de enrutamiento.

Modo de transferencia asincrónica (ATM)

Me gustan las otras dos respuestas, pero creo que una mejor solución, dado el conjunto de problemas, es ATM. Una interfaz TCP/IP es mejor para una red distribuida, pero la pregunta especificaba la comunicación punto a punto. Los 'protocolos' de bus de transferencia de computadora internos no tienen la misma capacidad robusta para fusionar diferentes canales de información entrante en un solo flujo, y las sumas de verificación para garantizar la entrega correcta.

ATM fue más o menos eliminado en el uso común por TCP/IP porque este último es mejor para redes distribuidas, pero ATM todavía se usa en redes satelitales. De hecho, esta es la aplicación que más se aplica a su situación.

Para explicarlo de manera simple, si un barco en el mar quiere comunicarse con el resto de Internet, utilizará ATM para enviar paquetes TCP/IP a un centro en tierra a través de un satélite. El satélite fusiona múltiples posibles flujos de cajeros automáticos entrantes que provienen de los barcos y los envía de regreso al centro, donde los paquetes se extraen del flujo de cajeros automáticos y se envían alegremente a través de Internet normal.

Hay mucho más que eso, si desea leer en Wikipedia, o la especificación . Pero me imagino que esta es la capacidad que imagina para la comunicación FTL.


Editar:

Quería aclarar un poco mi respuesta. ATM es un protocolo de capa 2 y TCP/IP es un protocolo de capa 3/4. Así que no hay razón para que no se puedan usar juntos. Mi punto es el protocolo de interés que mejor se adapta a la comunicación FLT, como ATM, y puede enviar IP o cualquier otra cosa que podría ser mejor para un ancho de banda bajo.

Edit2:

Más respuestas a las críticas. Edité la primera sección sobre protocolos de bus para reflejar lo que no pueden hacer y creo que deben hacer.

Además, @Navin; Desea un protocolo L2 porque tendrá más de un operador yendo y viniendo entre dos sistemas estelares diferentes. ¿Por qué quedarse con un operador a 10 bytes/seg cuando podría instalar 10 operadores a esa velocidad? En este caso, necesita que sus paquetes se dividan entre varios operadores y luego se vuelvan a fusionar en el destino. Cajero automático hace eso. Aún querrá que un operador L3 disperse su mensaje a través de millones de nodos de red en el destino.

Además, si transfiere de esta manera, una trama ATM de 50 bytes se transfiere en un operador en 5 segundos; una trama ethernet de 9000 bytes en 15 minutos. Eso significa que un mensaje de 1000 bytes dividido en 20 marcos se puede transmitir en 10 segundos en 10 operadores diferentes con ATM, mientras que un mensaje de 1000 bytes en un marco de 1000 bytes se transmitirá en 100 segundos. Seguramente puede ver la ventaja de un tamaño de marco más pequeño para una aplicación de bajo ancho de banda.

Las interconexiones informáticas internas definitivamente tienen protocolos, solo que comúnmente agrupamos el protocolo junto con la interconexión física. Por ejemplo, tanto USB como SATA especifican las interfaces eléctrica y física, así como qué constituye información válida y cómo se debe codificar en el cable (por ejemplo, SATA especifica 10b8b). Si no se especifican todos estos, entonces sería muy poco probable que sea interoperable, lo que anularía todo el punto. Compare la tecnología Plug 'n' Play (advertencia: TV Tropes).
Incluso algo tan simple como los buses de memoria SDRAM tienen protocolos y comandos. El artículo Wiki tiene un buen resumen de ellos (y aún se aplica a DDR4). El conjunto de comandos es mucho más simple que SATA, por supuesto, y no necesita un microcontrolador para decodificarlo. (Los SSD tienen CPU bastante potentes para ejecutar su firmware, pero incluso los HD magnéticos tienen un microcontrolador (a menudo ARM) para manejar los comandos SATA y copiar datos entre su caché, la interfaz SATA y los cabezales de lectura/escritura).
Si va a ejecutar IP en él, ¿por qué usar un protocolo L2? No necesita direcciones L2 en un enlace punto a punto. ¡Ah, y ATM es terriblemente ineficiente porque usa marcos de 53 bytes de tamaño fijo , cada uno con un encabezado redundante! Por el contrario, cualquier conmutador Ethernet puede reenviar tramas de 9000 bytes .

Esta es una comunicación punto a punto, por lo que nunca se molestará con el
enrutamiento, el tiempo y la sobrecarga de la suma de verificación de los paquetes de red. Si la transmisión de ftl está sujeta a pérdida o corrupción, es posible que desee una corrección de errores y una noción de la orientación de la conexión. En lugar de reutilizar una tecnología existente, debe ajustar su protocolo para el perfil real de corrupción y pérdida de su nuevo medio.

ingrese la descripción de la imagen aquí

La limitación más importante aquí es la velocidad de transmisión insoportablemente lenta. Minimizaría la cantidad de sobrecarga que no es de mensajes (o la eliminaría por completo) y usaría la mejor compresión que pueda. Si necesita enviar información de enrutamiento o entrega, probablemente use una tabla hash y envíe el hash del destino en lugar de la información de entrega completa. Un comentario a continuación menciona TDMA, que es un pensamiento interesante. Dado el ancho de banda máximo de los fotones entrelazados (o lo que sea), podría tener sentido agrupar varios canales.

Me imagino que necesita una suma de verificación para garantizar la entrega durante muchos años luz, y me imagino que necesita sincronización (TDMA o algo así) si desea pasar múltiples canales.
Nota: Time To Live en el encabezado del paquete en realidad no tiene ninguna relevancia para el tiempo en el sentido temporal. Es un mecanismo de conteo de saltos.
@GrinningX Técnicamente, originalmente estaba destinado a usarse en el sentido temporal, simplemente nunca cambiaron el nombre cuando se descubrió que funcionaba mejor usar el campo para contar saltos.

Si es de A a B sin intermediarios y virtualmente garantizado sin pérdida/corrupción de datos o desconexión, básicamente está tratando con la misma mentalidad de comunicación entre los componentes internos de la computadora , solo que mucho, mucho, mucho más lento. No existe un protocolo de transferencia de red entre la CPU y la unidad de disco, porque simplemente no lo necesita.

Siendo que esta sociedad tiene esta tecnología, asumo que están en nuestro nivel de poder de cómputo general o (más realista) más allá. Esto significa que con esta velocidad lenta, el cuello de botella dolorosamente obviamente es la transferencia, no las computadoras de ambos lados.

Querrá centrarse en la compresión de datos (no en los protocolos de transferencia) y en un marcado que ayude a reducir los metadatos. El concepto detrás de MessagePack parece muy adecuado para ti:

MessagePack es un formato de serialización binaria eficiente. Le permite intercambiar datos entre múltiples idiomas como JSON. Pero es más rápido y más pequeño. Los números enteros pequeños se codifican en un solo byte, y las cadenas cortas típicas requieren solo un byte adicional además de las propias cadenas.

paquete de mensajes

No querrá detenerse allí, pero piense de esta manera. También podría expandir la eficiencia si sabe qué tipo de tráfico está enviando a través de esta conexión, y las CPU en el lado receptor pueden extrapolar desde la línea de base, similar a los gráficos vectoriales (se usan algunas definiciones para calcular el concepto más grande)

Su mejor solución será un formato propietario, ya que no necesita compatibilidad, solo necesita eficiencia.

Las cadenas terminadas en nulo requieren solo un byte adicional además de las propias cadenas. El único beneficio que puedo ver para anteponer un conteo de bytes es que le permite incrustar bytes nulos en las cadenas, y ¿con qué frecuencia se necesita eso? Y parece que se descompone para cadenas de más de alrededor de 34 bytes.
Me gusta tu dirección, pero con respeto discrepo muy levemente. Definitivamente me gustaría un formato estándar para la forma en que se codifican los datos en el cable. Con respecto a lo que sucede con los datos después de eso, probablemente me gustaría un formato de mensaje estandarizado, aunque no tiene que ser un formato de mensaje existente. Para las distancias y el tiempo involucrados, ¿no sería genial si pudieras usar algún hardware/software que no tuviste que construir tú mismo? La historia está en gran parte en contra del uso a largo plazo de protocolos propietarios por una razón.
No hay un protocolo de transferencia de red entre la CPU y la unidad de disco . Hay un protocolo con sumas de verificación, pero no es un protocolo de red . Ver comentarios en otra respuesta . SATA tiene específicamente un protocolo de 3 capas , con CRC para la detección de errores .
Aún querrá algún tipo de protocolo de bajo nivel, pero eso es parte de cómo la máquina funciona internamente en el proceso de obtener bits del punto A al punto B. Así que tiene razón en que un protocolo de alto nivel eficiente es importante. Si este enlace FTL va a ser parte de un sistema de comunicación más grande que también puede enviar mensajes a otros lugares, o a diferentes receptores posibles en el otro lado, entonces necesita algún tipo de información de enrutamiento.
@PeregrineRook, entonces, msgback tiene una lista de recuentos de bytes dedicados a cadenas cortas y luego un rango utilizado para tipos que no son cadenas. (¿Tiene una cadena más larga? Entonces puede tener un sigilo de varios bytes). Esto significa que, en el caso común, puede usar el mismo sigilo de un byte para el tipo y la longitud. Es una chapuza, pero es una chapuza que funciona bien en la práctica, y eso la hace valiosa.
@CharlesDuffy: Mmmm. Estaba pensando que cualquier carácter entre 00 y 7F sería un sigilo que marcaría el comienzo de una cadena de texto. Pasé por alto el hecho de que los números enteros entre 0 y 127 (¿o algún otro límite superior?) están codificados como un solo byte. Además, debe usar un esquema como este si desea permitir caracteres de ocho bits (≥ 0x80) en cadenas. Gracias por la explicación.

Los "paquetes de datos" son un concepto aplicado a las redes, cuando los datos deben enrutarse alrededor ya través de múltiples dispositivos para llegar a su destino; por ejemplo, una red o Internet. Si es solo una comunicación punto a punto, entonces es como un enlace serial (como las impresoras/teclados de la vieja escuela) y no necesita ser empaquetado.

Cualquier protocolo moderno puede lidiar con velocidades de transmisión lentas cuando está configurado para ello , por lo que unos pocos bytes por segundo son viables para TCP/IP o UDP siempre que el "tiempo de vida" sea lo suficientemente alto; sus necesidades determinarán el protocolo específico.

TCP/IP y UDP son apropiados para redes de malla grande porque contienen toda la información de direccionamiento necesaria para llegar de cualquier lugar a cualquier lugar cuando hay una gran cantidad de destinos y enrutadores. Si se trata de una red pequeña de solo unas pocas computadoras, existen protocolos más eficientes.

Para una conexión directa, una computadora hablando solo con otra computadora, un paquete no es óptimo, porque parte de la transmisión será absorbida por la información de la dirección. Para punto a punto se puede asumir la dirección.

Anexo para "TCP-IP/UDP con pérdidas":

El protocolo TCP tiene algo incorporado llamado "entrega garantizada", lo que significa que cada paquete enviado llegará a su destino... eventualmente. UDP no ofrece esta garantía. La pérdida de paquetes no ocurre solo en la transmisión, aunque es común (más o menos); los enrutadores pueden fallar o desbordarse y el paquete que estaban reteniendo para transmitir puede perderse, o un fotón perdido puede golpear el microchip en el que está almacenado y cambiar un poco, corrompiendo los datos. La corrupción y la pérdida no ocurren sólo en la transmisión.

La parte de "entrega garantizada" significa que, si falta un paquete, que están numerados individualmente (parte de la sobrecarga que estos paquetes tienen en términos de datos), el destinatario volverá a la fuente y solicitará que el paquete se envíe nuevamente. . Esto es bueno si DEBE tener todos los datos, completamente. Esto es malo para el ancho de banda de la red.

Los protocolos de estilo UDP, sin conexión o "sin garantía" son los que usa cuando transmite datos (por ejemplo, YouTube). Mataría a la red si tuviera que ir a capturar cada parte del último cuadro de animación que se perdió, y en ese momento no importa de todos modos. En realidad, tampoco pierde tantos paquetes de esta manera, y es mucho más fácil en el lado del ancho de banda para transmitir datos.

Sin embargo, para estos dos protocolos listos para usar, se trata de más de 60 bytes solo para la información del encabezado en cada paquete. Esa podría ser una parte significativa del tiempo que se toma para una simple conversación de punto a punto, especialmente cuando los datos se dividen en miles de paquetes.

Para tasas de datos tan bajas, buscaría técnicas de estilo serial antiguo (puerto COM), y seguiría adelante y restringiría la comunicación de una computadora a una computadora (incluso si estuviera disponible la comunicación múltiple), y si necesita una red solo use una red estándar entre estas computadoras FTL.

Ahora, nuevamente, mi conocimiento es muy restringido, pero he oído que TCP envía los datos deseados incluso si se pierden partes, mientras que UDP no tiene control para ello. ¿No significa una diferencia si este caso? Quiero decir, definí un sistema en el que no hay pérdida de datos en absoluto, ya que la recepción es instantánea. En mi opinión, puede implicar que la verificación de pérdidas es innecesaria y podría ser una pérdida de recursos.
@Katamori Hablaré sobre esto en una edición anterior, es un poco largo para un comentario
Gracias, es más claro ahora! Una última pregunta: ¿la comunicación punto a punto implica que la dirección está codificada o cableada y ya no se puede cambiar (fácilmente)?
@Katamori Posiblemente. La dirección se puede escribir en el código mismo (codificado), físicamente limitada (hay exactamente una conexión en todo momento, exactamente en un lugar) o dinámica (leer un archivo). El último es un estándar común en las redes modernas (por ejemplo, /etc/hosts en Unix).
@Frostfyre, pero creo que en el segundo y tercer caso, la información de la dirección aún debe enviarse, ¿verdad? Me gustaría examinar las posibilidades de un sistema en el que no se utilicen paquetes porque, como menciona Marky en su respuesta, posiblemente no sea óptimo.
@Katamori cuando hago desarrollo de software para clientes, a veces dicen "Tengo un dispositivo ay un dispositivo b, y solo se conectarán entre sí y nunca con nada más". En ese caso, puedo deshacerme de muchos de los gastos generales que normalmente son necesarios. Puedo hacer mi propio formato y solo tener una secuencia para una señal de "mantenerse vivo" y una señal de "despertar". Si dicen "... ya veces Internet...", tengo que tener todos esos otros gastos generales para el escenario 'por si acaso'.
No creo que haya necesidad de encapsulación múltiple. IP es un método de encapsulación que encapsula (típicamente) Ethernet. Pero incluso entonces, muchas de las características de Ethernet son redundantes para esta aplicación. La confiabilidad se puede dejar completamente en manos de las aplicaciones en ambos extremos, especialmente para velocidades de datos tan bajas como esta. Considere el Internet de las cosas (IOT): la mayoría de los dispositivos IoT envían mensajes UDP porque la sobrecarga confiable es una carga totalmente innecesaria a nivel de protocolo de red para el ancho de banda extremadamente bajo disponible para dichos sistemas.
TCP no "garantiza" la entrega. Si no existe un vínculo entre usted y su destino, le puedo asegurar que sus paquetes nunca llegarán a su destino. Lo que hace es garantizar que el flujo de datos llegará a su destino o , de lo contrario, se le devolverá un error de entrega. Esta es una distinción importante...
@Punto de Thomas. Debería haber aclarado que mientras haya una conexión, intentará y funcionará. Sin embargo, eso es más en el hardware que en el nivel de protocolo, y estaba en el espacio libre de la pregunta, donde se presume una conexión.

¿Difiere de los primeros días de Internet? En otro sentido, ¿sería posible manejarlo con cualquier protocolo que se haya desarrollado en el campo de las redes informáticas?

No, eso no es posible, en un nivel fundamental.

Un protocolo es un conjunto de reglas que definen cómo una cosa se comunica con otra cosa de forma estandarizada. Pueden ser dos partes de una aplicación en la misma computadora (por ejemplo, una parte de mi aplicación envía datos a otra parte al guardar JSON en un archivo), o pueden ser dos máquinas muy diferentes en diferentes rincones del mundo (por ejemplo, ejemplo, aquí en el Reino Unido puedo enviar un correo electrónico a mis amigos en Nueva Zelanda porque alguien definió POP y SMTP, algunos protocolos de correo electrónico).

Fundamentalmente, no puede participar en ninguna forma de comunicación con nada a menos que tenga un protocolo definido. Eso no tiene que ser un protocolo de protocolo escrito, numerado por RFC, aprobado por IETF y documentado por MDN, pero sigue siendo un protocolo.

Entonces: no , debe definir un protocolo de red antes de que sus computadoras puedan comunicarse entre sí.

No veo cómo esto es relevante. La cuestión no es si es necesario un protocolo, sino qué protocolo(s) utilizar.
@JacobRaihle En parte, sí, pero también pregunta directamente si es posible comunicarse sin un protocolo: la cita en la parte superior de mi respuesta se extrae directamente de la pregunta. No pongas demasiado énfasis en el título.
Sin duda es posible. Se podría usar cualquier protocolo existente, pero es más probable que se desarrollen mejores (o se estén desarrollando en el marco de tiempo del autor) para aprovechar esta nueva tecnología de comunicación. Por ejemplo, el código Morse que solía transmitirse a través de cables de telégrafo aún puede transmitirse a través de un cable Ethernet o un enlace satelital, pero existen innumerables protocolos más nuevos que transmiten de manera más eficiente y con una mejor funcionalidad. Los protocolos de comunicación modernos son más rápidos, pero eso no los hace inútiles.
@ Suncat2000 No estoy de acuerdo. Debe definir un protocolo de algún tipo antes de poder comunicarse, incluso si lo define solo escribiendo el código que lo controla. O incluso si utiliza un protocolo existente. Todavía estás usando un protocolo; tienes que tener uno antes de poder comunicarte.
Mencionas RFC. Pues ya han pensado en este problema: tools.ietf.org/html/rfc6921
@ArturoTorresSánchez ¿Por qué no me sorprende?

Lo que necesita es un protocolo de datos comprimidos basado en preajustes. Una compresión basada en preajustes permite al remitente seleccionar un protocolo que tiene un diccionario fijo basado en la intención. Por ejemplo, si desea traducir texto, es mejor utilizar un recuento de bits bajo para texto muy repetido. Algunas palabras también podrían eliminarse automáticamente. La mayoría de las veces, omitir un "el" no causará ningún problema, pero ahorraría bastante. Aplique la codificación Huffman o similar a muchos documentos de texto sin formato para obtener el diccionario. Dado que los diccionarios son grandes, es mejor no reenviarlos. Algo similar podría usarse para otros protocolos.

La respuesta a esta pregunta depende al 100% del tráfico que pasa por la red. Hay una buena razón por la que tenemos tantos protocolos hoy. Cada uno funciona bien en su propio nicho. Si necesita comunicación síncrona, los protocolos como ATM tienen valor. Si su sistema FTL tiene comportamientos similares a la fibra óptica, SONET puede ser útil. Si su sistema es un sistema de transmisión, ninguno de los dos funcionaría en absoluto, y le gustaría usar algo como 802.11b o quizás uno de los otros protocolos inalámbricos de menor ancho de banda como Zigbee.

Cada uno de esos protocolos que acabo de mencionar están en uso hoy en día, de una forma u otra. Cada uno se usa porque se ajusta a los roles que debe cumplir.

Una gran pregunta podría ser el uso militar versus civil. Si su sistema es utilizado únicamente por militares, los protocolos como LINK-16 se han diseñado durante décadas para funcionar bien en entornos de ancho de banda limitado. Mientras tanto, se eligieron protocolos creados sobre Turbo Codes para el Mars Reconnaissance Rover porque hizo el mejor uso del limitado ancho de banda disponible y pudimos ahorrar los recursos necesarios para decodificar turbo códigos.

Primero, gran pregunta. En segundo lugar, no para contradecir ni discutir con ninguna de las excelentes respuestas que ya están aquí, sino para ofrecer una alternativa muy situacional: según la tecnología, si está imaginando algo como el entrelazamiento cuántico, es posible que ni siquiera necesite preocuparse por un protocolo. Si se imagina algo más tradicional en lo que respecta a las comunicaciones, deje de leer. : )

Con un sistema similar a QE, siempre hay una conexión directa que siempre está activa pase lo que pase, por lo que "comunicarse" podría ser más como copiar un archivo de una parte de su disco duro a otra. No existen paquetes caídos o no sincronizados, y no hay riesgos de seguridad en la medida en que se transfieren los datos de un punto a otro. Entonces, incluso si hay un software diferente ejecutándose en cada extremo, solo tiene que enviar los datos sin procesar.

Lo importante sería simplemente comprimir los datos al tamaño más pequeño posible dadas las estrictas restricciones de ancho de banda. Siempre que se conozca el algoritmo de compresión en ambos extremos, no tendrá ningún problema.

Nuevamente, este es solo un enfoque para cierto tipo de escenario.

El entrelazamiento cuántico es una gran idea, pero no estaba hablando de eso por la razón: me gustaría utilizar la transmisión FTL por medios personalizados para la "magia" de mi mundo. | Gracias por tu respuesta de todos modos, ¡todo esto es importante!
@Katamori ¡Gracias! Tal vez le dé a alguien más algunas ideas algún día.
@Katamori: tu magia personalizada aún podría funcionar como un entrelazamiento cuántico. la magia de una persona es la ciencia de otra persona.
¿Alguna vez tuviste un disco duro defectuoso? :)
Incluso si QE parece un búfer de memoria compartida (de múltiples escrituras), eso no significa que no necesite un protocolo; aún es importante poder determinar qué contenido se ha escrito, quién está escribiendo ahora, etc. Eso podría ser algo tan simple como un búfer de anillo y algunas banderas para determinar la propiedad y la finalización, pero sigue siendo un protocolo.
@CharlesDuffy Las cosas que describe son necesarias. Simplemente supuse que esas responsabilidades conceptuales estaban más relacionadas con el sistema operativo o el sistema de archivos. Como estaba imaginando las cosas, los programas en cada extremo estarían monitoreando el hardware directamente sin necesidad de ninguna interfaz intermediaria. En otras palabras, sería como dos instancias del mismo programa comunicándose a través de una pieza física de medios de hardware. (Y para enmendar un comentario anterior, tendría mucho más sentido si se usara el mismo software en ambos extremos).

¿Difiere de los primeros días de Internet? En otro sentido, ¿sería posible manejarlo con cualquier protocolo que se haya desarrollado en el campo de las redes informáticas?

Es absolutamente diferente de los primeros días de Internet, y he aquí por qué.

Cuando se inventó Internet, las velocidades de comunicación ya eran mucho más rápidas que sus especificaciones, mientras que los procesadores eran mucho más lentos de lo que son hoy. Usted describe una situación en la que la proporción de (potencia informática) / (ancho de banda) es mucho mayor que nunca.

Entonces, aunque ciertamente sería posible usar (m) cualquier protocolo ya inventado ajustando los tiempos de espera, eso no es lo que se haría en esta situación. En su lugar, se inventarían nuevos protocolos, optimizados para esta situación específica.

El protocolo FTL v1 tendría una trama concisa no muy diferente a HDLC o Ethernet II. Algunas respuestas nombraron ATM, lo cual es bueno, excepto por valorar la latencia más que la eficiencia de bit, que, sospecho, podría ajustarse. Directamente encima de eso , sin capas adicionales, vendrían datos de protocolo de aplicación altamente comprimidos. Primero, mensajes militares/financieros cortos y costosos con un uso no muy diferente al del antiguo telégrafo. Luego, noticias y mensajes personales.

Las capas de los protocolos contemporáneos están diseñadas para mejorar la separación entre las preocupaciones de transportar, enrutar y usar los datos, lo que facilita reemplazar uno sin afectar al otro. Para que existan, este incentivo debe prevalecer sobre el incentivo a hacer el máximo uso del mínimo número de bits. No creo que este sea su caso hasta bien entrado en el universo de la red FTL, si es que llega a hacerlo.

Si no, ¿qué hace que sea imposible de manejar?

Nada. Pero el uso no se parecerá a Internet contemporáneo hasta que se mejore el ancho de banda.

Me gustaría responder a la pregunta de comentario de @JohnFeltz:

¿Alguna restricción sobre cuántos de estos dispositivos puede construir y colocar uno al lado del otro? Si puedo ejecutar 100,000 de estos en paralelo, solo necesito un multiplexor inverso para obtener un ancho de banda de 5 Mb

Desafortunadamente, si coloca dos o más de estos dispositivos uno al lado del otro, interferirán.

Esto no solo es un problema para ampliar el ancho de banda, sino que también permite la interferencia de mensajes que no desea que un enemigo envíe o reciba.

La distancia mínima de seguridad entre los transceptores depende de usted, solo sea consistente al respecto. También podría ser un problema solo en el lado de envío o recepción.

"El valiente héroe se cuela en los terrenos del palacio disfrazado de jardinero. Mientras replanta un arbusto, también entierra una pequeña caja debajo de sus raíces. Más tarde, un temporizador lo activa y la comunicación se vuelve imposible. El oficial de comunicaciones puede decirle al emperador que la caja está en algún lugar. en el lado este del palacio, pero en realidad encontrarlo requiere una larga búsqueda. Mientras tanto, el equipo de comunicación se reubica en la parte superior de la torre oeste, tratando de escuchar mensajes en el ruido".

dado que la transferencia es "instantánea", podría codificar la información no en los bytes que envía (como con los protocolos de red normales), sino en la cantidad de tiempo entre bits. entonces, si desea enviar el número 255, no usaría un byte completo (8 bits) como con un paquete de Internet normal. más bien, enviaría 1 bit exactamente 255 nanosegundos después del bit anterior. su ancho de banda total realizado estaría limitado solo por la precisión de sus relojes y su latencia deseada. por ejemplo, podría decir "enviaré 1 bit cada 10 millones de nanosegundos. El valor que representa ese bit es igual a la cantidad de nanosegundos desde que se envió el bit anterior". ese protocolo le daría una latencia unidireccional máxima de 10 milisegundos y una tasa de transferencia de datos mínima de poco menos de 300 bytes/segundo. duplicar la latencia máxima también duplica la tasa de transferencia efectiva. Se podrían construir protocolos más sofisticados sobre este para negociar la tasa de transferencia sobre la marcha, o usar codificación de código corto para maximizar el rendimiento asegurando que los bloques de datos más comunes tengan muchos ceros a la izquierda (para que los bits se envíen más rápido). También es posible que desee limitar el tamaño máximo del bloque para garantizar que los relojes permanezcan sincronizados según la desviación relativa del reloj.

Puede estar bastante seguro de que el término "instantáneo" en la pregunta significa que el tiempo de entrega de la señal no depende de la distancia entre dos nodos. Incluso si la transferencia FTL real es realmente, realmente, "instantánea" (cualquiera que sea la definición que pueda tener, considerando que ni siquiera existe un verdadero concepto de "antes/después" para las cosas FTL), tan pronto como adjunte incluso la cantidad más pequeña de rastro de cobre a cada lado, ya no es instantáneo. Por lo tanto, puede manejar la parte FTL de la transferencia simplemente como una pieza de su cable de cobre de longitud 0. El resto de los clásicos...
... todavía se aplican partes de la teoría de la información (Shannon-Nyquist); y como se ha dado un límite superior fijo para la transferencia de símbolos, no hay más trucos que aplicar (relación c/f entre frecuencia de muestreo y ancho de banda).
El teorema de muestreo de Nyquist-Shannon solo se aplica a la codificación de información digital en una señal analógica. no hay razón para creer que hay una onda portadora analógica involucrada aquí. Dada la premisa ondulada de la transferencia instantánea de información, parece razonable (y divertido) darle el mejor uso a esa premisa. es cierto que los circuitos de temporización y lectura tendrían una velocidad de reloj máxima, pero lo llamé en mi respuesta como precisión de reloj.
esto es ingenioso, me gusta mucho. creativo, divertido y logra lo que busca el OP. prestigio

Usaría el enlace directamente como una línea serial tonta de 7 bits y resucitaría los antiguos protocolos UUCP. Estas cosas en realidad tienen menos gastos generales que las modernas y están mejor diseñadas para lidiar con los estúpidos tiempos de transmisión lentos. El único cambio significativo es reemplazar uuencode con una de las variantes base85.

Bonito y gracias por la "explosión del pasado". :)

Supongo que esta máquina, a la que llamo The Link, es rara. Es decir, no habrá suficientes ejecutándose en paralelo para mejorar el ancho de banda.

Ofreceré una visión diferente. El enlace no estaría en una red en el sentido normal. No tendría sentido.

En primer lugar, debido a su importancia y al bajo ancho de banda, el uso de The Link estaría estrictamente controlado para que la gente no transmitiera imágenes de gatos. Habría cortafuegos para evitar el acceso no autorizado.

En segundo lugar, debido al bajo ancho de banda, The Link puede considerarse más como un telégrafo que como algo en una red informática moderna. Un telégrafo (salvo la necesidad de repetidores) ofrece velocidades comparables a la velocidad de la luz gracias a la magia del alambre de cobre. Cierras la tecla del telégrafo, el otro extremo hace "clic". Seguro que el electroimán es lento, pero el humano que manipula las señales es aún más lento. Es efectivamente instantáneo. Considere un cable submarino entre los EE. UU. y el Reino Unido. Cada país puede tener una red de telégrafos sofisticada y, por una pequeña tarifa, Sally en Florida puede contarle a su abuela en Maine sobre su nuevo gato, pero ¿qué mensajes se considerarían para las comunicaciones a través del cable submarino? Probablemente no el telegrama del gato. En cambio, probablemente se usaría para información relevante para la política y las altas finanzas.

Por supuesto, en 2016, no vamos a tener un par de personas escribiendo mensajes en nuestro enlace interestelar. Pero sigue siendo como un telégrafo. Tendrías una computadora en cada extremo de The Link. El remitente leería de un búfer de mensajes (codificados, luego comprimidos al máximo) y los sacaría. La máquina en el otro extremo recibiría, descomprimiría y decodificaría.

Entonces, si bien no habría un protocolo de red, probablemente habría algún tipo de protocolo de mensaje para que el receptor supiera cuándo era apropiado descomprimir el mensaje. Un mensaje corto sería un 'quemador de granero' sin duda porque la compresión por carácter sería más pequeña y, por lo tanto, menos eficiente.

Dado lo controlado que sería el uso de The Link, es poco probable que los mensajes sean particularmente interesantes para la persona normal de la misma manera que en nuestro ejemplo internacional anterior, la persona normal no estaría demasiado preocupada por los asuntos de las altas finanzas.

Pero, ¿exactamente qué mensajes se enviarían a través de The Link?

Digamos que una nave colonial sublumínica ha llegado a su destino después de 300 años y está comenzando a construir su nuevo hogar. El enlace está configurado.

Los primeros mensajes enviados son algo como esto:

Hola Tierra, hemos llegado sanos y salvos y todo marcha según lo previsto.

(Serán unos pocos caracteres, tal vez, debido a la codificación), y respondido por,

¡Es muy bueno saber de ti, cheerio!

(otros 2 o 3 caracteres)

Después de bromas y diagnósticos, ¿qué relevancia tiene algo en la Tierra para la colonia? La ayuda está a 300 años de distancia, salvo algún nuevo descubrimiento impactante. La política crece y decae a lo largo de los siglos. Los países cambian. ¿Seguiría existiendo el país que envió el barco? ¿Sería reconocible el Orden Mundial que envió la nave? ¿Qué relevancia tendría la colonia para la gente de la Tierra, 15 generaciones después de aquellas almas valientes y atrevidas que abordaron la nave de la colonia?

Podría ser que un jpeg de gato fuera tan útil como cualquier otro mensaje.

EDITAR: dada la falta de importancia entre la vida cotidiana de las personas en la Tierra y los colonos, parecería que The Link en este caso generalmente se usaría para comunicaciones científicas de bajo grado. Observaciones sobre la estrella en órbita, y ese tipo de cosas. No sé por qué eso sería particularmente relevante, pero es mejor que el aire muerto, suponiendo que The Link no se desgaste por el uso.

Un uso más probable de The Link no involucra a las personas en absoluto. En cambio, la nave que alberga a The Link es puramente robótica. Estas naves son enviadas por decenas a diferentes sistemas estelares. Observan, en silencio y con sigilo, las señales de otras razas. Los datos enviados, muy lentamente, están diseñados para permitir que los humanos en la Tierra vislumbren la tecnología de los extraterrestres y, con suerte, sus intenciones. Siniestro, de hecho.

Considere esto: Lucas 17:11 o esto: Corán 2:4-5, edición Oxford World's Classics, o incluso esto: "regla 5". Son todas referencias a frases o textos más extensos. El factor limitante en este tipo de codificación es la disponibilidad de las referencias tanto para el remitente como para el receptor. El inglés es un idioma altamente redundante, se conocen idiomas mucho más eficientes. El graduado universitario típico tiene un vocabulario de <20,000 palabras o familias de palabras. Un byte permite codificar 65k palabras. Por lo tanto, de 5 a 10 bytes/segundo es más rápido que hablar y no limitaría la transferencia de datos verbal (en contraste con la visual).

Un byte permite codificar 65k palabras. - Señor, eso es definitivamente imposible. Un byte equivale a ocho bits y un bit tiene dos estados. Por lo tanto, un byte puede tener solo 2^8 = 256 posibilidades.
Dos bytes permiten valores de 65k.
¡Verdadero! Sin embargo, dijo un byte inicialmente. Sin embargo, también creo que en el caso de 5-10 bps, es muy eficiente enviar solo 2-5 números que indiquen varias palabras/frases. Buena idea, pero la teoría de la computación es mucho más avanzada incluso hoy en día que eso.
Hay muchas limitaciones con este enfoque. Una es que básicamente asume un relé de solo texto. Otra es la idea de un diccionario de inglés estándar y acordado y que está bien tener que volver a cargar los controladores cada vez que una palabra cambia de significado. Ah, además, ese diccionario debe incluir palabras oscuras/técnicas o nombres de productos corporativos. Una tercera es que agregar una "s" para hacer que algo sea plural básicamente duplica la cantidad de palabras que necesita capturar en este sistema... y ese es solo un ejemplo de cómo se pueden agregar comúnmente una o dos letras para generar cambios significativos.
Un byte bien puede permitir 65k palabras si estipulamos la gramática de los libros de texto.
Esperaría que hubiera un libro de códigos de frases comunes. Dada la tecnología actual, podría contener una cantidad impresionante de frases. También podría ser inútil ya que no se podría encontrar fácilmente la frase apropiada. Y, por supuesto, el libro de códigos sería dinámico. Entonces, si llamo a una ciudad "Gazorinplatz", esperaría referirme a ella con algunos caracteres la próxima vez que me refiera a ella.

Soy un poco riguroso MeeSeeks.

Siento que deberíamos estar discutiendo la paradoja que presenta su tecnología al tratar de resolverla dentro de las convenciones de transmisión de datos modernas conocidas.

"la humanidad de alguna manera se las arregla para transmitir datos de forma instantánea"

Este elemento de las redes FTL de su mundo, en particular, hace que mucho de lo que define las convenciones modernas de transmisión de datos (y, por extensión, cómo las medimos) sea efectivamente inútil para usted.

Con su tecnología, hay latencia cero. En otras palabras, cuando envío algo, se recibe en el otro lado EXACTAMENTE al mismo tiempo que lo envío. No antes, no nanosegundos después, sino exactamente al mismo tiempo en algún lugar distante. Si resuelve esta situación dentro de las redes modernas, su rendimiento de datos estaría fuera de serie. En esencia, podría meter una cantidad infinita de información a través de esta red, ya que teóricamente no hay limitación. Al menos no todavía...

"pero la velocidad en sí es lenta, digamos, poder enviar de 5 a 10 bytes (10 a 20 códigos hexadecimales) por segundo".

Aquí es donde su situación se vuelve un poco única . Experimente mentalmente si quiere:

Cuando publique esta respuesta, recibirás una notificación. Pretenda por el bien de nuestra discusión que estamos operando con la tecnología de su mundo. Cuando presiono este botón "Publicar su respuesta", su dispositivo le hará ping con esta notificación; ambos eventos ocurrirán simultáneamente. PERO, ¿cuántos datos se enviaron?

El principal enigma aquí es que si los datos IF se envían instantáneamente, entonces no tiene sentido medir el rendimiento de los datos durante un período de tiempo. Y si las medidas de ancho de banda no se aplican, ¿cómo y/o por qué su tecnología es tan limitada?

Mi respuesta:

Teniendo en cuenta los hechos de su tecnología y ajustándose al contexto de su pregunta, si yo fuera usted, no me preocuparía por definir la transmisión de información con los principios modernos de redes. Me centraría en definir por qué las cosas son como son de la forma más sencilla.

Por ejemplo:

  • La transmisión de datos es instantánea debido a {insertar aquí el concepto teórico preferido de transmisión de información instantánea, es decir. entrelazamiento cuántico}
  • La tecnología está limitada a un estado de encendido y apagado (similar a los sistemas binarios), lo que le brinda una limitación a los datos que se pueden transmitir, así como también proporciona una justificación para resolver la limitación de la cantidad de datos que se pueden transmitir. enviados" durante un período de tiempo determinado a pesar de que el "envío" de esos datos sea instantáneo. Explicación: los datos en sí están en ambos lugares al mismo tiempo, pero el estado del sistema no puede estar ENCENDIDO y APAGADO al mismo tiempo. Lo que significa que el retraso en la transmisión de información no se debe a la latencia o al ancho de banda, que, como comentamos, no se aplican necesariamente, sino que está limitado por una limitación funcional del sistema en su lugar.
  • Opcional: Los sistemas son macho-hembra, y la comunicación solo es posible entre sistemas emparejados. No hay razón real, simplemente me gusta esto como una limitación adicional, ya que el contexto de su pregunta realmente se reduce a: "Si los datos se pueden transmitir instantáneamente, ¿cómo limito racionalmente la tecnología para los habitantes de mi mundo?"

Conclusión: como con cualquier cosa de la imaginación, haz con todo esto lo que quieras. Porque oye, es tu mundo. Y gracias, probablemente fue más divertido para mí escribirlo que para ti leerlo.

Pensé que ibas a decir usar el momento del mensaje como el principal canal de información. Mi comprensión de la descripción del OP es que cuando se envía un paquete, todos los bytes van simultáneamente (es decir, como una operación atómica), pero hay un límite superior estricto en el tamaño del paquete. También hay un retraso muy alto entre paquetes para completar el ciclo del equipo. Y dada la familiaridad limitada del OP con las redes, en realidad supuse que no se transmitía simultáneamente todos los bits en el paquete, sino que se produjo en una ráfaga y el tiempo no se ajustó a la distancia. No tiene que ser instantáneo.
@PeterCordes Suposiciones seguras para hacer, aunque no obstante suposiciones. Dado que su familiaridad con las redes es limitada, opté por tomar sus palabras literalmente, ya que era la apuesta más segura. Y de nuevo, porque presentaba una paradoja lógica, era el ángulo más entretenido de explorar jaja
Entrecierra los ojos un poco. Puede ser posible en el mundo de OP enviar un bit instantáneamente, pero eso no significa que ese bit se distinga del ruido. En su lugar, el bit debe enviarse instantáneamente quizás 1000 veces para distinguir el valor con un nivel adecuado de certeza. Por supuesto, eso entra en conflicto con el requisito 'sin pérdidas' del OP, pero es posible que el OP ni siquiera sepa sobre la corrección de errores.
@tonyennis contraargumentos válidos, pero al igual que Peter arriba, está haciendo sus propias suposiciones que no están explícitamente cubiertas en el contenido de la pregunta del OP y, de hecho, contradicen la información que proporciona explícitamente. Sin embargo, todo esto es completamente irrelevante, porque, amigos míos, estamos en una junta discutiendo conceptos ficticios. Argumentar a favor de tu idea no tiene sentido, ¿no crees?

¿Qué tipo de información desea transmitir? Si es solo texto sin formato, implemente algo como la Biblioteca de Babel en ambos extremos. Luego solo tiene que transmitir la información posicional del mensaje deseado.

Esto supone que en este mundo de FTL, la potencia de procesamiento de comunicaciones y el almacenamiento de datos no son problemas.

Aclaración: lo que quería decir al hacer referencia a la biblioteca de babel es una especie de tabla de búsqueda. Esta comunicación habría sido creada por una razón específica. Mi suposición es que esto es para la comunicación interestelar en lugar de enviar algo a unas pocas millas de distancia. Por lo tanto, habría alguna forma de codificación para garantizar que la intención del mensaje se envíe sin posiblemente la necesidad de enviar la información literal. ¿Por qué enviar 30.000 bytes cuando puedo enviar 10-20 que apuntan a una tabla de búsqueda que transmite el mensaje completo?

No creo que ninguna de esas sean consideraciones serias aquí. Si necesita un punto de solución, suponga que la potencia de procesamiento y el espacio de almacenamiento están AL MENOS tan desarrollados como hoy, a fines de 2016. Tal vez incluso mejor, pero en mi opinión, incluso hoy PODEMOS resolver este problema si alguna vez ocurre.
Lo que pasa con un sistema tipo "biblioteca de babel" es el principio del casillero. En algún momento, la información posicional es tan grande como la información que intenta enviar. Los programas de compresión funcionan porque ya sabe qué tipo de datos se van a comprimir (patrones simples con repeticiones), pero pueden hacer que los archivos sean más grandes si se usan incorrectamente.
La tecnología existe para satisfacer una necesidad. Es nuestra superación de un desafío. Entonces, la implementación para hacer que este FTL sea utilizable es relativo al rol que está tratando de cumplir.

Iba a publicar la misma observación que James Turner, así que voté a favor de su respuesta y pensé en una objeción (que también podría explicar tanto el efecto de interferencia como la lentitud de la transmisión).

Si la transmisión fue impecable e instantánea, entonces si fuera posible resolver el tiempo con precisión de nanosegundos, podría estar de acuerdo en que se envíe una señal cada 1.048576 ms (como máximo), con un retraso de 0 ns que significa 1111111111 y un retraso de 1048575 ns lo que significa 0000000000. Diez bits cada milisegundo y ya estamos en el rango de 10 kbit/s (y, en promedio, mejor).

Así que planteo que mientras la transmisión de la señal es instantánea, resolver la señal es un proceso probabilístico. Analice una ventana de 1 ns, y las posibilidades de distinguir una "señal" o "falta de ella" son nulas. Para alcanzar una certeza del 99%, debe analizar la transmisión de un segundo completo.

Así que, por supuesto, los ingenieros llegaron a un compromiso y, combinando tiempos más cortos con esquemas de compresión y corrección de errores, elevaron el ancho de banda a 40-80 bits/s.

Si colocamos dos transmisores cerca, alrededor del 50% de las veces uno transmitirá un 0 mientras que el otro transmitirá un 1, lo que aumentará la tasa de error en el extremo receptor, obligando a una velocidad más baja; así que escalar el dispositivo no te sirve de nada.

Por otro lado, ¿a qué distancia deben estar los transmisores entre sí para que dejen de interferir apreciablemente? Digamos que son 500 metros; en el espacio, podrías construir una enorme matriz de comunicación, un cubo de estructura alámbrica de diez kilómetros de tamaño, formado por "cables" de 500 m que sostienen unos ocho mil transmisores, coordinados a través de señales sublumínicas normales. Los planetas pueden comunicarse entre ellos utilizando redes de superficie; los barcos serían mucho más limitados. Las consecuencias parecen interesantes.

Esta discusión parece muy estrecha: miraría la pregunta desde unos pocos pasos atrás.

Supongo que el contexto es una civilización interestelar, ya que de lo contrario es difícil ver la ventaja sobre la tecnología de comunicaciones existente. Si esta civilización tiene viajes FTL, entonces sería más efectivo enviar datos físicamente: una sola tarjeta Micro SD podría contener más de 500 años de transmisiones.

Si tiene comunicaciones FTL, pero viajar es más lento que la luz, entonces se vuelve más interesante. Durante toda la historia, las personas han podido viajar tan rápido como la información; recientemente tenemos comunicación instantánea, pero tampoco toma más de un día viajar a cualquier lugar si tiene prisa.

Si los mundos distantes pudieran hablar en tiempo real, pero viajar entre ellos llevara décadas, sería un tipo de realidad completamente nuevo. El lanzamiento de un dedal semanal de chips de memoria aún ofrecería un mayor ancho de banda que la radio FTL (en muchos órdenes de magnitud), pero la latencia sería de décadas frente a minutos. Hay implicaciones interesantes.

Supongamos que la gente de la Tierra estuviera obsesionada con la versión de Shakespeare de Omicron Persei VIII. Thimbles proporcionaría todas las obras de teatro, películas y entrevistas que la Tierra pudiera consumir, pero llegarían mucho después de la muerte de Space Shakespeare. Un Terran rico podría alquilar 15 minutos de tiempo de radio FTL para una charla en vivo, pero lo mejor que podría hacer sería charlar con los nietos de Spacespeare. O bien, podría chatear con una celebridad omicroniana viva, pero solo sus nietos podrían ver por qué son famosos.

Económicamente hablando, es difícil ver que las comunicaciones en tiempo real jueguen un papel importante en el comercio cultural. La gente puede pagar para ver películas de Space Hollywood, pero solo consumirían las películas de 200 años que llegan por dedal y tratarían la versión de 200 años de Space Hollywood como "el presente".

La radio FTL solo sería realmente buena para los spoilers. Lo cual no es muy importante para el comercio, pero obviamente sería útil para avisos de flotas de invasión masiva/supernovas/etc. De hecho, ese servicio podría ser una garantía importante para el comercio; si no pagas tu factura de Space HBO por los programas que enviaron hace 200 años, no te avisarán sobre ese asteroide el próximo marzo.

(Vagamente relacionado, el premio Nobel Paul Krugman escribió una vez un artículo sobre la economía del comercio sublight ).

nótese bien

Algunas de las respuestas anteriores tocan la idea de codificar grandes cantidades de datos utilizando diccionarios gigantes; esta idea tiene una larga historia, desde al menos el siglo XVII hasta la década de 1950, cuando fue desmantelada en el curso de la creación de la Teoría de la Información.

La idea es que escribas todos los libros posibles, los pongas todos en orden y luego los menciones por número. El problema es que un libro ya es solo una secuencia de bytes, es decir, un número largo, y dar un número a cada libro significa que el número será tan largo como el libro mismo; de hecho, serán exactamente la misma secuencia de bytes.

Por supuesto, la mayoría de las cadenas de bytes no son libros "reales", y si solo incluye textos válidos en inglés, puede omitir la mayoría de los números. De hecho, eso conduce a una compresión de datos significativa. Pero también requiere un algoritmo para generar todos los textos "significativos" posibles, es decir, un algoritmo que pueda enumerar cada pensamiento que un ser humano pueda tener. Eso es... desafiante... y requiere mucho espacio en disco.

Los algoritmos de compresión prácticos utilizan este tipo de "codificación de diccionario", pero es mucho más básico. El truco consiste en dejar la mayor cantidad posible fuera del diccionario, de modo que solo las cadenas muy comunes se reemplacen por códigos muy cortos, por lo que, por ejemplo, the cat sat on the matse reduce a 1 c2 s2 on 1 m2. Si usó un diccionario preestablecido que incluía todas las palabras conocidas, podría terminar alargando el mensaje ( 23 4954 3430 109 23 908078).