Welches aktuelle Netzwerkprotokoll wäre die optimale Wahl für sehr kleine FTL-Bandbreiten?

Möglicherweise eine dumme und Außenseiterfrage, aber mein Wissen in den Grundlagen von Computernetzwerken ist schrecklich.

Stellen Sie sich das möglicherweise nicht allzu originelle Konzept vor, dass die Menschheit es irgendwie schafft, Daten augenblicklich zu übertragen und dabei die weiten Entfernungen des Weltraums zu überwinden - dies ist jedoch nur für sehr kleine Datenpakete möglich.

Machen Sie es jetzt etwas genauer: Der Sender und der Empfänger sind dieselbe Maschine. Wenn also zwei solcher Maschinen eingesetzt werden, kann der Kontakt zwischen ihnen sofort und ohne Verlust erfolgen, aber die Geschwindigkeit selbst ist langsam - sagen wir, in der Lage zu sein senden 5 bis 10 Bytes (10 bis 20 Hexadezimalcodes) pro Sekunde.

Unterscheidet es sich von den Anfängen des Internets - in einem anderen Sinne, wäre es möglich, mit allen Protokollen umzugehen, die jemals im Bereich der Computernetzwerke entwickelt wurden?

Wenn nein, was macht es unmöglich, damit umzugehen?

Irgendeine Einschränkung, wie viele dieser Geräte Sie konstruieren und nebeneinander platzieren können? Wenn ich 100.000 davon parallel betreiben kann, brauche ich nur einen inversen Multiplexer, um 5 MB Bandbreite zu erhalten.
@JohnFeltz vielleicht Energieverbrauch? Aber ansonsten: Holy sh@t, you got me.
Es ist deine Welt. Verwenden Sie nach Bedarf Handwavium. Aber so etwas würde ein intelligenter Netzwerktechniker in Ihrer Welt versuchen.
@JohnFeltz Ich bin mir nicht sicher, Sie müssten mir viel bezahlen, um 100.000 parallele Verbindungen einzurichten und zu verwalten. Es wäre ein absoluter Albtraum, es zu warten und effizient zu machen / zu halten. Was passiert, wenn die Hardware einiger von ihnen durchbrennt? Fehlerbehebung, das wird ein Schmerz sein.
Inverse Muxes (die erstmals in den 90er Jahren aufkamen, als mehrere T1s/E1s zusammengeschaltet wurden) wurden entwickelt, um Dropping-Kanäle zu handhaben. (Und meine 100.000 Einheiten waren zugegebenermaßen ein bisschen übertrieben, aber ich habe es getan, um deutlich zu machen, dass die Bandbreite skaliert werden kann.)
(1) Wie John Feltz betont, ist das Wort, nach dem Sie suchen, Bandbreite . Die Geschwindigkeit ist augenblicklich (oder zumindest FTL); die Bandbreite beträgt 5 bis 10 Byte pro Sekunde. (2) Wenn das Gerät aus platinbeschichtetem Unobtanium mit Schnittstellenanschlüssen aus Handwavium besteht, können die Kosten ein Faktor bei der Skalierung der Lösung sein. Wenn es so groß ist wie das Vehicle Assembly Building der NASA , dann könnte die Größe ein Problem sein.
Dies ist eine Frage für Network Engineering oder Serverfault , nicht für World Building. "World-Building-Experten" sind (im Allgemeinen) keine Experten für digitale Kommunikationsprotokolle.
@BlueRaja-DannyPflughoeft Einige von uns sind es tatsächlich - ich meine, es gibt ein Tag, [hard-science], das für Expertenhilfe steht. Ich denke, das Tag [wissenschaftsbasiert] trifft auch dafür zu. Worldbuilding kann sehr spezielle Fragen haben, die auf IRL-technische Probleme dekonstruiert werden können. BEARBEITEN: Weißt du, ich bin mir nicht einmal sicher, ob diese Frage auf diesen Seiten willkommen wäre.
Ich stimme zu, dass es auf NE oder SF nicht willkommen wäre. Sie sprechen von fiktiven Computern mit fiktiven Schnittstellen in einer fiktiven Welt ... nicht, womit sich eine dieser beiden Seiten befasst. WB hingegen befasst sich häufig mit #FictionalWorldProblems, die ihre Wurzeln in realen Disziplinen haben.
Mit ein paar sorgfältig angeordneten FTL-Transceivern können Sie Signale in der Zeit zurücksenden. Wie soll das Protokoll Nachrichten handhaben, die an ihren Ausgangspunkten ankommen, bevor sie gesendet werden?
Das passiert angeblich im Avatar-Film. Sie haben FTL-Kommunikation, aber es ist sehr teuer und mit 3-5 BITS pro Sekunde sehr langsam.
@Katamori: Nach dieser Logik könntest du buchstäblich jede Frage auf dieser Seite stellen und behaupten, dass sie zum Thema gehört. Diese Frage ist objektiv off-topic. Der einzige Grund, warum es noch offen ist (und auf der Hotlist), ist, dass so viele Stackexchange-Benutzer zufällig auch Ingenieure sind.
Dies ist nicht wirklich FTL für ausreichend kleine Entfernungen (wie ein ganzer Planet); Sie können heute problemlos eine viel schnellere Internetverbindung erhalten (Download/Upload von 1 MB/s wird als ziemlich langsam angesehen und ist um Größenordnungen schneller als das, was Sie haben). Wie auch immer, wenn ich es verwenden würde, würde ich wahrscheinlich eine Liste von (vielen ...) möglichen Nachrichten erhalten, die ich senden kann, jeder einen Code zuweisen und stattdessen Codes senden.
Ist die physikalische Schicht zuverlässig? Dh wird es während der Übertragung zu Verlusten kommen?
@PeregrineRook MMSP statt normaler Leerzeichen?
Als Beispiel für ein System "wie dieses", das auf der Erde operiert: siehe ZEVS und dergleichen. Sie werden, wenn überhaupt, nicht viel über die Nachrichtencodierung finden, aber der Rest könnte immer noch relevant sein.
Wenn FTL-Reisen auch eine Sache sind und nicht auch stark eingeschränkt sind, dann kommt die alte Maxime "Unterschätze niemals die Bandbreite eines Kombis voller Bänder, der über die Autobahn rast" ins Spiel. Der größte Teil der interstellaren Kommunikation erfolgt durch Laden der Nachrichten auf das Äquivalent eines USB-Laufwerks und Versenden als Fracht an Bord eines FTL-fähigen Schiffes.
U-Boot-Kommunikation könnte ein guter Bezugspunkt sein. Die verwendeten Techniken erfordern extrem niedrige Bandbreiten, und es sollte keine allzu große Rolle spielen, dass Sub-Comms unidirektional sind. de.wikipedia.org/wiki/…
Abhängig von der zu übertragenden Datenmenge und der Nähe des Senders/Empfängers kann es schneller sein, über Nicht-FTL-Mittel zu übertragen, vorausgesetzt, Sie können genug Energie sammeln, damit das Signal am Ziel erkannt werden kann. Ein drahtloses Signal breitet sich mit Lichtgeschwindigkeit aus, aber Sie können die Daten per Pipeline übertragen, sodass Sie die Ausbreitungsverzögerung nur einmal berücksichtigen müssen.
Wow, so viele Kommentare, dass ich mich gar nicht entscheiden kann, wo ich anfangen soll zu antworten – danke, ihr seid alle großartig! Vielleicht mit @Beta - nein, in meinem Fall möchte ich die Möglichkeit, eine Nachricht in die Vergangenheit zu senden, vollständig ausschließen.
@BlueRaja-DannyPflughoeft Du scheinst die Natur dieser Seite nicht zu verstehen, denke ich.
@Devsman Ich möchte, dass diese Technologie für die Kommunikation zwischen Planeten oder sogar Sternen verwendet wird! Ich habe gerade die Videos der VSauce-"Gruppe" über den Mars gesehen und denke, dass es in meiner Umgebung absolut inakzeptabel wäre, 20 oder mehr Minuten selbst auf die einfachsten Antworten zu warten.
Wir reden hier nicht wirklich von einem Netzwerk. Wir sprechen von Punkt-zu-Punkt-Kommunikation. Protokolle haben wenig Nutzen. Stellen Sie sich eine Morse-Telegrafentaste und einen Typen vor, der 160 Bits pro Sekunde ausgibt. Natürlich sind alle Nachrichten komprimiert und Codes werden verwendet, um gebräuchliche Wörter zu verkürzen.
Eine andere zu berücksichtigende Sache ist, dass bei einer so geringen Bandbreite die Verwendung von The Link streng kontrolliert wird, um zu verhindern, dass Leute Katzenbilder senden. Eine Nachricht würde über The Link ankommen und dann zur Verteilung in ein normales Netzwerk gestellt werden. Aber The Link wäre per se nicht "auf" dem normalen Netzwerk. Es hätte keinen Vorteil. Es ist so ziemlich ein Eingabegerät aus dem 18. Jahrhundert für alle Absichten und Zwecke.
Aktuelle Netzwerkprotokolle spiegeln Kompromisse aktueller (oder Jahrzehnte alter) Technologien wider. Mit FTL haben Sie eine deutlich andere Situation. Wenn beispielsweise Paradoxien unmöglich sind, würde die Verbindung mit einigen TB Quantenrauschen (an beiden Enden gleich) versendet werden. Der Sender sucht nach der Nachricht, die er im Rauschen senden möchte, und sendet den Offset. Wenn die Nachricht nicht gefunden wird, verursachen sie ein Paradoxon. Daher wird die Nachricht gefunden, der Empfänger erhält den Offset und die Länge und liest die Nachricht. Nach einigem Gebrauch wird das Geräusch als "erschöpft" angesehen und ersetzt, um Albernheiten zu vermeiden.

Antworten (19)

Entgegen der anfänglichen Befürchtung des OP ist dies keine dumme Frage; es ist eigentlich ein sehr gutes. Die meisten Antworten, die dieser Beitrag erhalten hat, sind ziemlich falsch, und in dieser Gruppe bedeutet das, dass Sie eine Frage gestellt haben müssen, die auf einer Reihe wirklich technischer Grundlagen beruht. Also großes Lob!

Der gemeinsame Fehler

Der häufigste Fehler bei den bisherigen Antworten ist, dass sie sich auf das beziehen, was gemeinhin als „Layer 3“-Protokolle oder sogar richtige „Layer 2“-Protokolle bezeichnet wird . Um die Antwort zu verstehen, müssen wir verstehen, warum dies die falsche Betrachtungsweise des Problems ist.

In der heutigen terrestrischen (und in geringerem Umfang orbitalen Satelliten) Netzwerkinfrastruktur durchlaufen Daten, die von einem Computer übertragen werden sollen, den folgenden Prozess (auf hoher Ebene):

  1. Der Datenstrom wird identifiziert
  2. Der Datenstrom wird vom Sender in Übertragungssegmente zerlegt
  3. Die Segmente sind in einem "Layer 3"-Paket eingekapselt (verpackt), das alle notwendigen Quell-/Ziel-/Errata-Informationen bereitstellt, die erforderlich sind, um das Paket durch eine große Anzahl von Netzwerksegmenten routen zu können
  4. Die Pakete werden in einen „Layer 2“-Rahmen gekapselt (verpackt), der Informationen über Quelle, Ziel, verwendetes Protokoll und andere Errata enthält. Diese Kapselung definiert, wie der Frame durch ein einzelnes Netzwerksegment geleitet wird.
  5. Nachdem das Framing ausgearbeitet ist, wird das Paket auf dem Draht (oder drahtlos) codiert. Diese Codierung definiert beispielsweise, wie eine „1“ von einer „0“ zu unterscheiden ist. Also "Hochspannung = 1", "Niederspannung = 0" und ähnliches.

Das kontextuelle Problem hier, das diese Betriebsmethode zunichte macht, besteht darin, dass Sie über sehr NIEDRIGE Datenströme mit vermutlich relativ wenigen kommunizierenden Zielen sprechen. Nach Ihrer Prämisse sprechen Sie auch von einem bekanntermaßen verlustfreien System, bei dem Quelle und Ziel bereits im Voraus bekannt sind. Das sind nicht die Erwartungen und Situationen, auf die die Protokolle zugeschnitten sind, denen die meisten Menschen täglich ausgesetzt sind.

Die Lösung

Wenn Absender und Empfänger im Voraus bekannt sind und ein Verlust kein Problem darstellt, gibt es überhaupt keinen Grund, sich um eine Kapselung zu kümmern. Alles, was Sie zu diesem Zeitpunkt benötigen, ist eine Codierungsmethode wie Manchester Encoding . Codierungsmethoden definieren grundsätzlich, was eine 0 und eine 1 ist (sowohl in Zeit als auch in Amplitude) und bieten Systemen einen Mechanismus, um sicherzustellen, dass sie sich beide auf derselben Seite befinden.

Um die Dinge einfach zu halten, würde ich wahrscheinlich nur die Manchester-Codierung verwenden, wie sie in vielen der heutigen Kabelverbindungen verwendet wird. Ja, es gibt andere Arten der Codierung, die für bestimmte Übertragungseigenschaften besser funktionieren, aber angesichts Ihres „sofortigen/fehlerfreien“ Portalbereitstellungssystems können wir meiner Meinung nach ein ziemlich gutes Analogon dazu ziehen, dass dieses Portal nur einem unendlich kleinen Segment entspricht eine kabelgebundene Netzwerkverbindung.

Beachten Sie auch

Wenn Sie Daten haben, die Sie verwenden möchten, um Ihre Informationen an ihr endgültiges Ziel zu leiten, sollten Sie dies aufgrund der sehr langsamen Geschwindigkeiten besser Protokollen auf höherer Ebene (Nicht-Netzwerk) überlassen. Ihre Datenübertragungsgeschwindigkeit ist so trivial langsam, dass es sehr wenig bedeuten würde, wenn Ihre Geräte an beiden Enden den vollständigen Datenstrom wieder zusammensetzen und die präsentierten Daten analysieren würden, um zu verstehen, wohin sie geleitet werden sollten.

Und nein, das bedeutet nicht, zum Beispiel auf ein BILD zu schauen und zu verstehen, was Bilder bedeuten – Computer haben viele höhere Protokollsprachen, die Benutzer nie sehen. Solche Informationen könnten beispielsweise als Teil eines XML-Pakets enthalten sein. Über die technischen Details würde ich mir jetzt aber noch keine Gedanken machen.

Sehr schöne Erklärung, ich bin sogar erstaunt, nachdem ich Manchester Encoding gegoogelt habe. Dies ist in der Tat sehr niedrig und kann durch eine einfache elektronische Verbindung erreicht werden, wenn ich es richtig verstehen könnte. Ich dachte, die einfachste Lösung wäre, Radiowellen zu hören, wie in der Realität, aber diese Art der internen Kommunikation begann sich im Kopf zu bilden, während ich die Antworten las. Extra vielen Dank für die Erwähnung, dass das Routing auf den höheren Ebenen funktionieren sollte.
Sie haben die Schichten in Ihrer Beschreibung rückwärts. Ein Layer-3-IP-Paket wird von einem Layer-2-Ethernet- (oder ATM-)Frame-Header und -Footer „eingekapselt“, genauso wie Anwendungsschichtdaten in Layer-4-TCP- oder -UDP-Pakete aufgeteilt werden und dann einen IP-Header erhalten, wenn sie es sind an Schicht 3 übergeben.
Du hast die Schichten falsch verstanden. Im OSI-Modell sind die Schichten 1 bis 3 physisch, Verbindung und Netzwerk.
Die Manchester-Kodierung ist erschreckend ineffizient. Wir sind vor Jahren davon weggezogen.
@kingledion, v7d8dpo4 - Gut entdeckt. Sehr schlechte mentale Verarbeitung meinerseits ... Ich beschuldige die Tatsache, dass ich 54 Stunden am Stück wach war, als ich die Antwort schrieb. Ich werde weitermachen und die erforderlichen Updates vornehmen. Was mich daran sehr amüsiert, ist, dass ich in den ersten 8 Stunden dieser Wachphase tatsächlich eine schriftliche Routing & Switching-Prüfung bestanden habe, um meine mehrfachen CCIE-Zertifikate zu erneuern :) Ich bin sehr froh, dass ich diesen Test für Mittwoch und nicht für Donnerstag geplant habe!
@PeterGreen - Wir könnten wahrscheinlich ins Gespräch gehen, um das ausführlicher zu besprechen, aber was würden Sie vorschlagen? Manchester ist nicht schrecklich ineffizient ... keine modernen Standards, die ich mir vorstellen kann. Sie benötigen immer noch 1 Zustandsübergang ODER eine Zeiteinheit (während der ein Zustandsübergang hätte auftreten können), um ein Bit in einem beliebigen Schema zu charakterisieren. Es gibt Übergangs-Overhead, aber das Entfernen bringt seine eigenen potenziellen Nachteile mit sich (mangelnde Fähigkeit, zwischen Rauschen und absichtlicher Übertragung zu unterscheiden). Die verwendete Codierung sollte mit den RX/TX-Eigenschaften übereinstimmen und kann/sollte sich je nach App ändern.
Nur weil Ihre Punkt-zu-Punkt-Verbindung zuverlässig ist, heißt das nicht, dass Sie die gesamte Netzwerkhierarchie entsorgen sollten/können. Vermutlich wird es FTL-Router und Switches geben – oder zumindest Distributionszentren auf Planeten/Schiffen/etc. Sie können immer noch Verluste erleiden, z. B. durch Warteschlangenüberlauf oder Routing-Erschöpfung, und Sie benötigen immer noch Metadaten, um herauszufinden, was zu tun ist. Vielleicht zlib einfach ein TCP-Paket oder so.
Ich folge deinem Vorschlag überhaupt nicht. Nur weil dieser Teil des Netzes „makellos“ ist, heißt das noch lange nicht, dass man auf einen mehrschichtigen Ansatz verzichten kann. Beispielsweise ist es sehr wahrscheinlich, dass zwischen allen möglichen Kommunikationspartnern kein Boxenpaar vorhanden ist, sodass Sie sehr wohl ein Routing benötigen. Auch wenn beispielsweise die Hyperraumverbindung fehlerfrei sein mag, ist es möglicherweise eine der einfachen elektrischen Komponenten auf der Sender- oder Empfängerseite nicht (das passiert auch mit alltäglicher Elektronik). Zum Beispiel haben Sie möglicherweise echtes Streaming, bei dem Sie nicht einfach "alles zusammentragen" können ...
... auf der Empfängerseite (z. B. ein Strom von Sensorwerten), was sehr wohl bedeutet, dass Sie eine Paketierungsschicht benötigen. Usw. Selbst in den einfachsten der einfachsten Protokolle heute (z. B. I2C auf wenigen cm Kupfer zwischen zwei geschirmten µCs mit langsamen Geschwindigkeiten, die als so fehlerfrei wie möglich angesehen werden können) ist eine Fehlerbehandlung erforderlich , und sei es nur in der Form, a zu erkennen Ausfallzustand und Zurücksetzen des Busses.
@AnoE / imallett (Teil 1) - Fehlerbehandlung und "Paketierung" für das weitere Routing müssen in diesem Szenario nicht auf der Netzwerkschicht behandelt werden. Der einzige Grund, warum Fehlerbehandlung und Routenkennzeichnung heute auf den Netzwerkschichten stattfinden, liegt darin, dass das Ziel darin besteht, Hochgeschwindigkeitsnetzwerke zu schaffen, die durch Systeme mit vergleichsweise geringer Verarbeitungsleistung verbunden sind. Auch um interaktive Sitzungen zu unterstützen, die durch Verzögerung/Jitter negativ beeinflusst würden. Dies ist nicht dieses Szenario.
@imallett / AnoE (Teil 2) - In diesem Szenario haben wir Bandbreitenkapazitäten, die lächerlich langsam sind, und Anwendungen wie interaktives VoIP/Video werden eindeutig nicht unterstützt. Da Sie auch nur 1 System pro Segment (eine p2p-Verbindung) haben, erübrigt sich eine segmentspezifische Adressierung. Das empfangende System könnte die Daten problemlos annehmen, verarbeiten und die jeweils geeigneten Maßnahmen ergreifen. Der Datenstrom selbst könnte in übergeordneten Formaten (z. B. XML) Weiterleitungs- und andere Handhabungsinformationen definieren. Es ist nicht erforderlich, dies auf der Netzwerkschicht zu tun, also sollte es auch nicht sein.
@Anoe / imallett (Teil 3) - Denken Sie daran, dass das empfangende System nach eigenem Ermessen die Daten nehmen und selbst paketieren kann (nachdem es entsprechend dekomprimiert / manipuliert wurde). Ich unterschätze diese Fähigkeit nicht, sondern behaupte nur, dass es unnötig ist, extrem wertvolle Bandbreite mit Overhead zu verbrauchen, der für den Betrieb des Systems nicht notwendig ist. Wo Bandbreite reichlich vorhanden ist (zentrale Steuerung), wird dieser Overhead hinzugefügt. Wenn sie an ein anderes Schiff gesendet werden sollen, könnte die zentrale Steuerung die Daten einfach lesen, "an"-Felder aus den Informationen der oberen Ebene entfernen und sie weiterleiten.
@imallett / AnoE (Teil 4) - Speziell in Bezug auf die Fehlerkontrolle verlassen sich viele Anwendungen heute auf übergeordnete Protokolle, um Fehler zu erkennen. Jede Anwendung, die beispielsweise UDP verwendet, tut dies.
@GrinningX Dieses Argument ist hauptsächlich in einem Peer-to-Peer-Szenario sinnvoll. Das OP gibt es nicht ausdrücklich an, aber ich habe das Gefühl, dass eine internetähnliche verteilte Architektur impliziert wurde.
@imallett - Das OP gab an, dass "der Sender und der Empfänger dieselbe Maschine sind. Wenn also zwei solcher Maschinen eingesetzt werden, kann der Kontakt zwischen ihnen sofort und ohne Verlust erfolgen". Für mich klingt das so, als ob entweder jedes Schiff nur ein zentrales System kontaktieren kann ODER dass Schiffe andere Schiffe kontaktieren können, aber sie verbinden sich direkt mit anderen Schiffen. Im ersten Fall denke ich immer noch, dass Protokolle der oberen Schicht Handhabungsinformationen abdecken können / sollten (P2P zu einem Mainframe, der basierend auf Dateninhalten handeln kann), und im zweiten Fall, wenn alle Verbindungen P2P sind, werden normalerweise keine Routing-Informationen benötigt.

Asynchroner Übertragungsmodus (ATM)

Ich mag die beiden anderen Antworten, aber ich denke, angesichts des Problems ist ATM eine bessere Lösung. Eine TCP/IP-Schnittstelle ist am besten für ein verteiltes Netzwerk, aber die Frage spezifizierte Punkt-zu-Punkt-Kommunikation. Interne Computerübertragungsbus-'Protokolle' haben nicht die gleiche robuste Fähigkeit, verschiedene Kanäle eingehender Informationen zu einem Strom zusammenzuführen, und die Prüfsummen, um eine korrekte Lieferung sicherzustellen.

ATM wurde im allgemeinen Gebrauch durch TCP/IP mehr oder weniger ausgelöscht, weil letzteres besser für verteilte Netzwerke ist, aber ATM wird immer noch in Satellitennetzwerken verwendet. Tatsächlich ist dies genau die Anwendung, die für Ihre Situation am besten geeignet ist.

Um es einfach zu erklären: Wenn ein Schiff auf See mit dem Rest des Internets kommunizieren möchte, verwendet es ATM, um TCP/IP-Pakete über einen Satelliten an einen Hub an Land zu senden. Der Satellit führt mehrere mögliche eingehende ATM-Streams zusammen, die von Schiffen kommen, und sendet sie zurück zum Hub, wo die Pakete aus dem ATM-Stream herausgenommen und auf ihrem fröhlichen Weg über das reguläre Internet gesendet werden.

Es steckt noch viel mehr dahinter, wenn Sie auf Wikipedia oder der Spezifikation nachlesen möchten . Aber ich kann mir vorstellen, dass dies die Fähigkeit ist, die Sie sich für die FTL-Kommunikation vorstellen.


Bearbeiten:

Ich wollte meine Antwort ein wenig präzisieren. ATM ist ein Schicht-2-Protokoll und TCP/IP ist ein Schicht-3/4-Protokoll. Es gibt also keinen Grund, warum sie nicht zusammen verwendet werden können. Mein Punkt ist das Protokoll von Interesse, das am besten für die FLT-Kommunikation geeignet ist, z. B. ATM, und Sie können entweder IP oder etwas anderes senden, das für niedrige Bandbreiten besser geeignet ist.

Edit2:

Weitere Reaktionen auf Kritik. Ich habe den ersten Abschnitt über Busprotokolle bearbeitet, um zu zeigen, was sie nicht können, was sie meiner Meinung nach tun müssen.

Auch @Navin; Sie wollen ein L2-Protokoll, weil Sie mehr als einen Träger haben werden, der zwischen zwei verschiedenen Sternensystemen hin und her geht. Warum bei einem Träger mit 10 Byte/s bleiben, wenn Sie 10 Träger mit dieser Geschwindigkeit installieren könnten? In diesem Fall müssen Sie Ihre Pakete auf mehrere Träger aufteilen und dann am Zielort wieder zusammenführen. Das macht der Geldautomat. Sie möchten immer noch, dass ein L3-Carrier Ihre Nachricht über möglicherweise Millionen von Netzwerkknoten am Zielort verteilt.

Wenn Sie auf diese Weise übertragen, wird ein 50-Byte-ATM-Rahmen auf einem Träger in 5 Sekunden übertragen; ein 9000-Byte-Ethernet-Frame in 15 Minuten. Das bedeutet, dass eine in 20 Frames aufgeteilte 1000-Byte-Nachricht in 10 Sekunden auf 10 verschiedenen Trägern mit ATM übertragen werden kann, während eine 1000-Byte-Nachricht in einem 1000-Byte-Frame in 100 Sekunden übertragen wird. Sicherlich können Sie den Vorteil einer kleineren Framegröße gegenüber einer Anwendung mit geringer Bandbreite erkennen.

Interne Computerverbindungen haben definitiv Protokolle, es ist nur so, dass wir das Protokoll üblicherweise mit der physischen Verbindung in einen Topf werfen. Zum Beispiel spezifizieren USB und SATA sowohl die elektrischen als auch die physikalischen Schnittstellen sowie was gültige Daten sind und wie sie auf dem Kabel kodiert werden sollten (zum Beispiel spezifiziert SATA 10b8b). Wenn nicht alle angegeben sind, wäre es sehr unwahrscheinlich, dass es interoperabel ist, was den ganzen Punkt zunichte machen würde. Vergleichen Sie die Plug 'n' Play-Technologie (Achtung: TV-Tropen).
Sogar etwas so Einfaches wie SDRAM-Speicherbusse haben Protokolle und Befehle. Der Wiki-Artikel hat eine gute Zusammenfassung davon (und gilt immer noch für DDR4). Der Befehlssatz ist natürlich viel einfacher als SATA und benötigt keinen Mikrocontroller, um ihn zu decodieren. (SSDs haben ziemlich leistungsstarke CPUs, um ihre Firmware auszuführen, aber selbst magnetische HDs haben einen Mikrocontroller (häufig ARM), um SATA-Befehle zu verarbeiten und Daten zwischen ihrem Cache, der SATA-Schnittstelle und den Lese-/Schreibköpfen zu kopieren.)
Wenn Sie IP darauf ausführen, warum überhaupt ein L2-Protokoll verwenden? Bei einer Punkt-zu-Punkt-Verbindung benötigen Sie keine L2-Adressen. Oh, und ATM ist schrecklich ineffizient , weil es Frames mit fester Größe von 53 Byte verwendet, jeder mit einem redundanten Header! Im Gegensatz dazu kann jeder Ethernet-Switch 9000-Byte - Frames weiterleiten.

Dies ist eine Punkt-zu-Punkt-Kommunikation, sodass Sie sich nie mit dem
Routing-, Timing- und Prüfsummen-Overhead von Netzwerkpaketen herumschlagen müssen. Wenn die ftl-Übertragung verloren geht oder beschädigt wird, möchten Sie möglicherweise eine Fehlerkorrektur und eine Vorstellung von der Verbindungsausrichtung. Anstatt eine vorhandene Technologie wiederzuverwenden, sollten Sie Ihr Protokoll auf das tatsächliche Beschädigungs- und Verlustprofil Ihres neuen Mediums abstimmen.

Geben Sie hier die Bildbeschreibung ein

Die wichtigste Einschränkung ist hier die unerträglich langsame Übertragungsgeschwindigkeit. Sie würden die Menge an Nicht-Nachrichten-Overhead minimieren (oder vollständig eliminieren) und die bestmögliche Komprimierung verwenden. Wenn Sie Routing- oder Zustellinformationen senden müssen, verwenden Sie wahrscheinlich eine Hash-Tabelle und senden den Hash des Ziels anstelle der vollständigen Zustellinformationen. Ein Kommentar unten erwähnt TDMA, was ein interessanter Gedanke ist. Angesichts der maximalen Bandbreite der verschränkten Photonen (oder was auch immer) könnte es sinnvoll sein, mehrere Kanäle zu bündeln.

Ich stelle mir vor, dass Sie eine Prüfsumme benötigen, um die Zustellung über viele Lichtjahre sicherzustellen, und ich stelle mir vor, dass Sie ein Timing (TDMA oder so) benötigen, wenn Sie mehrere Kanäle passieren möchten.
Hinweis: Time To Live im Paketheader hat im zeitlichen Sinne eigentlich keine Zeitrelevanz. Es ist ein Hop-Count-Mechanismus.
@GrinningX Technisch sollte es ursprünglich im zeitlichen Sinne verwendet werden, sie haben den Namen einfach nie geändert, als sich herausstellte, dass es besser funktionierte, das Feld stattdessen für die Hop-Zählung zu verwenden.

Wenn es von A nach B geht, ohne Mittelsmann und praktisch garantiert ohne Datenverlust/-beschädigung oder -unterbrechung, haben Sie es im Grunde mit der gleichen Denkweise bei der Kommunikation zwischen internen Computerkomponenten zu tun , nur viel, viel, viel langsamer. Es gibt kein Netzwerkübertragungsprotokoll zwischen der CPU und dem Plattenlaufwerk, weil Sie einfach keins benötigen.

Da diese Gesellschaft über diese Technologie verfügt, gehe ich davon aus, dass sie sich auf unserem Niveau der allgemeinen Rechenleistung befinden oder (realistischer) darüber hinaus. Das bedeutet, dass bei dieser langsamen Geschwindigkeit der Engpass schmerzlich offensichtlich die Übertragung ist, nicht die Computer auf beiden Seiten.

Sie sollten sich auf die Datenkomprimierung (nicht Übertragungsprotokolle) und ein Markup konzentrieren, das hilft, Metadaten zu reduzieren. Das Konzept hinter MessagePack erscheint Ihnen recht passend:

MessagePack ist ein effizientes binäres Serialisierungsformat. Damit können Sie Daten zwischen mehreren Sprachen wie JSON austauschen. Aber es ist schneller und kleiner. Kleine Ganzzahlen werden in ein einzelnes Byte codiert, und typische kurze Zeichenfolgen erfordern nur ein zusätzliches Byte zusätzlich zu den Zeichenfolgen selbst.

MessagePack

Sie werden hier nicht aufhören wollen, aber denken Sie in diese Richtung. Sie können die Effizienz auch erweitern, wenn Sie wissen, welche Art von Datenverkehr Sie über diese Verbindung schieben, und die CPUs auf der Empfangsseite können von der Basislinie extrapolieren, ähnlich wie bei Vektorgrafiken (einige Definitionen werden verwendet, um das größere Konzept zu berechnen).

Ihre beste Lösung wird ein proprietäres Format sein, da Sie keine Kompatibilität benötigen, sondern nur Effizienz.

Null-terminierte Strings benötigen zusätzlich zu den Strings selbst nur ein zusätzliches Byte. Der einzige Vorteil, den ich sehe, wenn ich eine Byte-Zählung voranstelle, ist, dass Sie Null-Bytes in die Zeichenfolgen einbetten können, und wie oft wird das benötigt? Und es sieht so aus, als würde es für Zeichenfolgen, die länger als etwa 34 Bytes sind, zusammenbrechen.
Ich mag Ihre Richtung, aber bei allem Respekt, ich bin ganz anderer Meinung. Ich würde auf jeden Fall ein Standardformat dafür wollen, wie die Daten auf der Leitung codiert werden. In Bezug darauf, was danach mit den Daten passiert, würde ich wahrscheinlich ein standardisiertes Nachrichtenformat wünschen - obwohl es kein vorhandenes Nachrichtenformat sein muss. Wäre es für die Entfernungen und das Timing nicht großartig, wenn Sie Hardware / Software verwenden könnten, die Sie nicht selbst bauen müssten? Die Geschichte ist aus gutem Grund weitgehend gegen die langfristige Verwendung proprietärer Protokolle.
Es gibt kein Netzwerkübertragungsprotokoll zwischen der CPU und dem Plattenlaufwerk . Es gibt ein Protokoll mit Prüfsummen, es ist einfach kein Netzwerkprotokoll . Siehe Kommentare zu einer anderen Antwort . SATA hat speziell ein 3-Layer-Protokoll mit CRC zur Fehlererkennung .
Sie werden immer noch eine Art Low-Level-Protokoll wollen, aber das ist Teil der internen Funktionsweise der Maschine, um Bits von Punkt A nach Punkt B zu bringen. Sie haben also Recht, dass ein effizientes High-Level-Protokoll wichtig ist. Wenn diese FTL-Verbindung Teil eines größeren Kommunikationssystems sein soll, das auch Nachrichten an andere Orte oder an verschiedene mögliche Empfänger auf der anderen Seite senden kann, benötigen Sie eine Art Routing-Informationen.
@PeregrineRook, also hat msgback eine Liste von Bytezahlen, die kurzen Strings gewidmet sind, und dann einen Bereich, der für Nicht-String-Typen verwendet wird. (Sie haben eine längere Zeichenfolge? Dann erhalten Sie ein Multi-Byte-Siegel). Das bedeutet, dass Sie im Normalfall dasselbe Ein-Byte-Siegel für Typ und Länge verwenden können. Es ist ein Kludge, aber es ist ein Kludge, der in der Praxis gut funktioniert, und das macht ihn wertvoll.
@CharlesDuffy: Hm. Ich dachte, dass jedes Zeichen zwischen 00 und 7F ein Siegel wäre, das den Anfang einer Textzeichenfolge markiert. Ich habe übersehen, dass ganze Zahlen zwischen 0 und 127 (oder einer anderen Obergrenze?) als einzelnes Byte codiert werden. Außerdem müssen Sie ein solches Schema verwenden, wenn Sie 8-Bit-Zeichen (≥ 0x80) in Zeichenfolgen zulassen möchten. Danke fürs Erklären.

„Datenpakete“ sind ein Konzept, das auf Netzwerke angewendet wird, wenn Daten um und durch mehrere Geräte geleitet werden müssen, um ihr Ziel zu erreichen; zB ein Netzwerk oder das Internet. Wenn es sich nur um eine Punkt-zu-Punkt-Kommunikation handelt, ist es wie eine serielle Verbindung (wie Drucker/Tastaturen der alten Schule) und muss nicht paketiert werden.

Jedes moderne Protokoll kann mit langsamen Übertragungsraten umgehen, wenn es dafür konfiguriert ist , daher sind einige Bytes pro Sekunde für TCP/IP oder UDP brauchbar, solange die "Lebensdauer" hoch genug ist; Ihre Bedürfnisse bestimmen das spezifische Protokoll.

TCP/IP und UDP eignen sich für große Maschennetzwerke, da sie alle Adressierungsinformationen enthalten, die erforderlich sind, um von überall nach überall zu gelangen, wenn es eine große Anzahl von Zielen und Routern gibt. Wenn Sie es mit einem kleinen Netzwerk mit nur wenigen Computern zu tun haben, gibt es effizientere Protokolle.

Für eine direkte Verbindung, bei der ein Computer nur mit einem anderen Computer kommuniziert, ist ein Paket nicht optimal, da ein Teil der Übertragung durch Adressinformationen belegt wird. Bei Punkt-zu-Punkt kann die Adresse angenommen werden.

Nachtrag zu "TCP-IP/UDP-Verlust":

Das TCP-Protokoll hat etwas eingebaut, das als "garantierte Zustellung" bezeichnet wird, was bedeutet, dass jedes gesendete Paket das Ziel erreicht .... schließlich. UDP übernimmt diese Garantie nicht. Paketverlust tritt nicht nur bei der Übertragung auf, obwohl es üblich ist (ish); Router können abstürzen oder überlaufen und das Paket, das sie zur Übertragung festgehalten haben, kann verloren gehen, oder ein verirrtes Photon kann den Mikrochip treffen, in dem es gespeichert ist, und ein wenig umkippen, wodurch die Daten beschädigt werden. Korruption und Verlust passieren nicht nur bei der Übertragung.

Der Teil „Garantierte Zustellung“ bedeutet, dass, wenn ein Paket fehlt, das individuell nummeriert ist (Teil des Overheads, den diese Pakete in Bezug auf Daten verursachen), der Empfänger zur Quelle zurückkehrt und anfordert, dass das Paket erneut gesendet wird . Dies ist gut, wenn Sie alle Daten vollständig haben MÜSSEN. Dies ist schlecht für die Netzwerkbandbreite.

UDP- oder verbindungslose oder "keine Garantie"-Stilprotokolle sind das, was Sie verwenden, wenn Sie Daten streamen (z. B. YouTube). Es würde das Netzwerk zerstören, wenn Sie jedes Bit des letzten Frames der Animation, das Sie verpasst haben, holen müssten, und an diesem Punkt spielt es sowieso keine Rolle. Sie verlieren auf diese Weise auch nicht so viele Pakete, und es ist auf der Bandbreitenseite viel einfacher, Daten zu übertragen.

Bei diesen beiden handelsüblichen Protokollen haben Sie es jedoch mit über 60 Byte allein für die Header-Informationen in jedem Paket zu tun. Dies kann ein erheblicher Teil der Zeit sein, die für ein einfaches Punkt-zu-Punkt-Gespräch benötigt wird, insbesondere wenn die Daten in Tausende von Paketen aufgeteilt werden.

Für solch niedrige Datenraten würde ich mir alte Techniken im seriellen Stil (COM-Port) ansehen und sie auf die Kommunikation von einem Computer zu einem Computer beschränken (selbst wenn Multi-Talking verfügbar wäre), und wenn Sie nur ein Netzwerk benötigen Verwenden Sie ein Standardnetzwerk zwischen diesen FTL-Computern.

Jetzt ist mein Wissen wieder sehr begrenzt, aber ich habe gehört, dass TCP die gewünschten Daten auch dann sendet, wenn Teile verloren gehen, während UDP keine Überprüfung dafür hat. Bedeutet es in diesem Fall keinen Unterschied? Ich meine, ich habe ein System definiert, bei dem es überhaupt keinen Datenverlust gibt, da der Empfang sofort erfolgt. Meiner Ansicht nach kann dies bedeuten, dass die Überprüfung auf Verluste unnötig ist und möglicherweise eine Ressourcenverschwendung darstellt.
@Katamori Ich werde darüber in einer Bearbeitung oben sprechen, es ist ein bisschen lang für einen Kommentar
Danke, jetzt ist es klarer! Eine letzte Frage: Bedeutet die Punkt-zu-Punkt-Kommunikation, dass die Adresse fest codiert oder fest verdrahtet ist und nicht mehr (einfach) geändert werden kann?
@Katamori Möglicherweise. Die Adresse kann in den Code selbst geschrieben (fest codiert), physikalisch begrenzt (es besteht immer genau eine Verbindung zu genau einem Ort) oder dynamisch (Datei lesen) sein. Letzteres ist ein allgemeiner Standard in modernen Netzwerken (z. B. /etc/hosts unter Unix).
@Frostfyre, aber ich denke, im zweiten und dritten Fall sollten immer noch Adressinformationen gesendet werden, oder? Ich möchte die Möglichkeiten eines Systems untersuchen, bei dem keine Pakete verwendet werden, da dies, wie Marky in seiner Antwort erwähnt, möglicherweise nicht optimal ist.
@Katamori Wenn ich Softwareentwicklung für Kunden mache, sagen sie manchmal: "Ich habe Gerät a und Gerät b, und dort werden sie nur miteinander verbunden und nie etwas anderes." In diesem Fall kann ich einen Großteil des Overheads wegwerfen, der normalerweise notwendig ist. Ich kann mein eigenes Format erstellen und habe nur eine Sequenz für ein "Stay Alive"-Signal und ein "Weck"-Signal. Wenn sie sagen "... und manchmal das Internet ...", muss ich all das andere Overhead-Zeug für das Szenario "nur für den Fall" haben.
Ich denke nicht, dass eine Mehrfachkapselung erforderlich ist. IP ist eine Kapselungsmethode, die (typischerweise) Ethernet einkapselt. Aber selbst dann sind viele Eigenschaften von Ethernet für diese Anwendung überflüssig. Das Aussortieren der Zuverlässigkeit kann vollständig den Anwendungen an beiden Enden überlassen werden, insbesondere bei so niedrigen Datenraten wie dieser. Betrachten Sie das Internet der Dinge (IOT) – die meisten IoT-Geräte senden UDP-Nachrichten, da zuverlässiger Overhead eine völlig unnötige Belastung auf Netzwerkprotokollebene für die extrem geringe Bandbreite darstellt, die für solche Systeme verfügbar ist.
TCP "garantiert" keine Zustellung. Wenn es keine Verbindung zwischen Ihnen und Ihrem Ziel gibt, kann ich Ihnen versichern, dass Ihre Pakete Ihr Ziel niemals erreichen werden. Es garantiert, dass entweder der Datenstrom Ihr Ziel erreicht oder Ihnen andernfalls ein Übermittlungsfehler zurückgegeben wird. Das ist ein wichtiger Unterschied...
@ Thomas Punkt. Ich hätte klarstellen sollen, dass, solange eine Verbindung besteht, versucht wird, zu liefern. Das liegt jedoch eher auf Hardware- als auf Protokollebene, und ich war im Headspace der Frage, wo eine Verbindung vermutet wird.

Unterscheidet es sich von den Anfängen des Internets - in einem anderen Sinne, wäre es möglich, mit allen Protokollen umzugehen, die jemals im Bereich der Computernetzwerke entwickelt wurden?

Nein, das ist grundsätzlich nicht möglich.

Ein Protokoll ist eine Reihe von Regeln, die definieren, wie ein Ding mit einem anderen Ding auf standardisierte Weise kommuniziert . Das können zwei Teile einer Anwendung auf demselben Computer sein (z. B. sendet ein Teil meiner App Daten an einen anderen Teil, indem JSON in einer Datei gespeichert wird), oder es können zwei völlig unterschiedliche Maschinen in verschiedenen Teilen der Welt sein (z Zum Beispiel kann ich hier in Großbritannien eine E-Mail an meine Freunde in Neuseeland senden, weil jemand POP und SMTP definiert hat - einige E-Mail-Protokolle).

Grundsätzlich können Sie mit nichts in irgendeiner Form kommunizieren, es sei denn, Sie haben ein definiertes Protokoll. Das muss kein niedergeschriebenes, RFC-nummeriertes, IETF-genehmigtes, MDN-dokumentiertes Protokollprotokoll sein, aber es ist immer noch ein Protokoll.

Also: Nein , Sie müssen ein Netzwerkprotokoll definieren, bevor Ihre Computer miteinander kommunizieren können.

Ich sehe nicht, wie das relevant ist. Die Frage ist nicht, ob ein Protokoll notwendig ist, sondern welche(s) Protokoll(e) verwendet werden sollen.
@JacobRaihle Teilweise ja, aber es wird auch direkt gefragt, ob es möglich ist, ohne Protokoll zu kommunizieren - das Zitat oben in meiner Antwort stammt direkt aus der Frage. Legen Sie nicht zu viel Wert auf den Titel.
Es ist ohne Zweifel möglich. Jedes vorhandene Protokoll könnte verwendet werden, aber es ist wahrscheinlicher, dass bessere entwickelt werden (oder im Zeitrahmen des Autors entwickelt werden), um diese neue Kommunikationstechnologie zu nutzen. Beispielsweise kann Morsecode, der früher über Telegrafenkabel übertragen wurde, immer noch über ein Ethernet-Kabel oder eine Satellitenverbindung übertragen werden, aber es gibt unzählige neuere Protokolle, die effizienter und mit besserer Funktionalität übertragen. Moderne Kommunikationsprotokolle sind schneller, aber das macht sie nicht nutzlos.
@ Suncat2000 Ich bin anderer Meinung. Sie müssen eine Art Protokoll definieren, bevor Sie kommunizieren können – selbst wenn Sie es nur definieren, indem Sie den Code schreiben, der es steuert. Oder auch wenn Sie ein vorhandenes Protokoll verwenden. Sie verwenden immer noch ein Protokoll; Sie müssen einen haben, bevor Sie kommunizieren können.
Sie erwähnen RFC. Nun, sie haben bereits über dieses Problem nachgedacht: tools.ietf.org/html/rfc6921
@ArturoTorresSánchez Warum überrascht mich das nicht?

Ein voreingestelltes komprimiertes Datenprotokoll ist genau das, was Sie brauchen. Eine auf Voreinstellungen basierende Komprimierung ermöglicht es dem Absender, Protokolle auszuwählen, die ein festes Wörterbuch basierend auf der Absicht haben. Wenn Sie beispielsweise Text übersetzen möchten, ist es am besten, niedrige Bitzahlen für häufig wiederholten Text zu verwenden. Einige Wörter könnten auch automatisch entfernt werden. Meistens wird das Überspringen eines "the" keine Probleme verursachen, aber es würde einiges sparen. Wenden Sie Huffman oder eine ähnliche Codierung auf viele Klartextdokumente an, um das Wörterbuch zu erhalten. Da Wörterbücher sehr groß sind, sollten Sie sie am besten nicht erneut senden. Etwas Ähnliches könnte für andere Protokolle verwendet werden.

Die Antwort auf diese Frage hängt zu 100 % vom Datenverkehr ab, der über das Netzwerk fließt. Es gibt einen guten Grund dafür, dass wir heute so viele Protokolle haben. Jeder funktioniert gut in seiner eigenen Nische. Wenn Sie eine synchrone Kommunikation benötigen, haben Protokolle wie ATM einen Wert. Wenn Ihr FTL-System ein ähnliches Verhalten wie Glasfaser aufweist, kann SONET nützlich sein. Wenn Ihr System ein Broadcast-System ist, würde beides überhaupt nicht funktionieren, und Sie würden etwas wie 802.11b oder vielleicht eines der anderen drahtlosen Protokolle mit geringerer Bandbreite wie Zigbee verwenden wollen.

Jedes dieser Protokolle, die ich gerade erwähnt habe, wird heute in der einen oder anderen Form verwendet. Jeder wird verwendet, weil er zu den Rollen passt, die er erfüllen muss.

Eine große Frage könnte die militärische vs. zivile Nutzung sein. Wenn Ihr System nur vom Militär verwendet wird, sind Protokolle wie LINK-16 seit Jahrzehnten darauf ausgelegt, in Umgebungen mit begrenzter Bandbreite gut zu funktionieren. In der Zwischenzeit wurden für den Mars Reconnaissance Rover Protokolle ausgewählt, die auf Turbo-Codes aufbauen, weil sie die begrenzte verfügbare Bandbreite optimal nutzen und wir die Ressourcen sparen konnten, die zum Decodieren von Turbo-Codes erforderlich sind.

Erste, große Frage. Zweitens, um den hervorragenden Antworten, die hier bereits vorhanden sind, nicht zu widersprechen oder zu argumentieren, sondern um eine sehr situative Alternative anzubieten: Wenn Sie sich je nach Technologie so etwas wie Quantenverschränkung vorstellen, müssen Sie sich möglicherweise nicht einmal um ein Protokoll kümmern. Wenn Sie sich etwas Traditionelleres vorstellen, was die Kommunikation betrifft, dann hören Sie auf zu lesen. :)

Bei einem QE-ähnlichen System gibt es immer eine direkte Verbindung, die immer aktiv ist, egal was passiert, also könnte "Kommunizieren" eher dem Kopieren einer Datei von einem Teil Ihrer Festplatte zu einem anderen gleichen. Es gibt keine verworfenen oder asynchronen Packs und keine Sicherheitsrisiken insofern, als die Daten von einem Punkt zum anderen übertragen werden. Selbst wenn also an jedem Ende unterschiedliche Software läuft, müssen Sie nur die Rohdaten senden.

Wichtig wäre nur, die Daten angesichts der engen Bandbreitenbeschränkungen auf die kleinstmögliche Größe zu komprimieren. Solange der Komprimierungsalgorithmus an beiden Enden bekannt ist, haben Sie kein Problem.

Auch dies ist nur ein Ansatz für eine bestimmte Art von Szenario.

Die Quantenverschränkung ist eine großartige Idee, aber ich habe nicht aus gutem Grund darüber gesprochen: Ich möchte die FTL-Übertragung mit Mitteln nutzen, die für die "Magie" meiner Welt üblich sind. | Danke trotzdem für deine Antwort, all das ist wichtig!
@Katamori Danke! Vielleicht gibt es jemandem eines Tages ein paar Ideen.
@Katamori: Ihre benutzerdefinierte Magie könnte immer noch wie Quantenverschränkung funktionieren. die Magie einer Person ist die Wissenschaft einer anderen Person.
Hatten Sie schon einmal eine defekte Festplatte? :)
Auch wenn QE wie ein gemeinsam genutzter (mehrfach beschreibbarer) Speicherpuffer aussieht, bedeutet das nicht, dass Sie kein Protokoll benötigen – es ist immer noch wichtig, feststellen zu können, welcher Inhalt geschrieben wurde, wer gerade schreibt usw. Das könnte etwas so Einfaches wie ein Ringpuffer und einige Flags sein, um den Besitz und die Fertigstellung zu bestimmen, aber es ist immer noch ein Protokoll.
@CharlesDuffy Die Dinge, die Sie beschreiben, sind notwendig. Ich habe nur angenommen, dass diese konzeptionellen Verantwortlichkeiten eher im Bereich des Betriebssystems oder Dateisystems liegen. Wie ich mir die Dinge vorgestellt hatte, würden Programme an jedem Ende die Hardware direkt überwachen, ohne dass eine zwischengeschaltete Schnittstelle erforderlich wäre. Mit anderen Worten, es wäre so, als würden zwei Instanzen desselben Programms über ein physisches Stück Hardwaremedium kommunizieren. (Und um einen früheren Kommentar zu ändern, wäre es viel sinnvoller, wenn an beiden Enden dieselbe Software verwendet würde.)

Unterscheidet es sich von den Anfängen des Internets - in einem anderen Sinne, wäre es möglich, mit allen Protokollen umzugehen, die jemals im Bereich der Computernetzwerke entwickelt wurden?

Es unterscheidet sich absolut von den frühen Tagen des Internets, und hier ist der Grund.

Als das Internet erfunden wurde, waren die Kommunikationsgeschwindigkeiten bereits viel höher als Ihre Spezifikationen, während die Prozessoren viel langsamer waren als heute. Sie beschreiben eine Situation, in der das Verhältnis von (Rechenleistung) / (Bandbreite) ungleich größer ist als je zuvor.

Während es also sicherlich möglich wäre , (viele) bereits erfundene Protokolle zu verwenden, indem man Timeouts anpasst, würde man das in dieser Situation nicht tun. Stattdessen würden neue, für diese spezifische Situation optimierte Protokolle erfunden.

Das FTL-Protokoll v1 hätte ein prägnantes Framing, das HDLC oder Ethernet II nicht unähnlich ist. Einige Antworten namens ATM, was gut ist, außer dass die Latenz höher bewertet wird als die Biteffizienz, die, wie ich vermute, möglicherweise optimiert wird. Direkt darauf , ohne zusätzliche Schichten, würden hochkomprimierte Anwendungsprotokolldaten kommen. Erstens, kurze und teure Militär-/Finanznachrichten mit einer Verwendung, die der alten Telegrafie nicht unähnlich ist. Dann Nachrichten und persönliche Nachrichten.

Die Schichten moderner Protokolle wurden entwickelt, um die Trennung zwischen Transport, Routing und Verwendung der Daten zu verbessern, wodurch es einfach ist, die eine zu ersetzen, ohne die andere zu beeinträchtigen. Damit sie existieren, muss dieser Anreiz gegenüber dem Anreiz, die minimale Anzahl von Bits maximal zu nutzen, überwiegen. Ich glaube nicht, dass dies bis weit in das FTL-vernetzte Universum hinein Ihr Fall wäre, wenn überhaupt.

Wenn nein, was macht es unmöglich, damit umzugehen?

Nichts. Aber die Nutzung würde nicht dem heutigen Internet ähneln, bis die Bandbreite verbessert wird.

Ich möchte die Kommentarfrage von @JohnFeltz beantworten:

Irgendeine Einschränkung, wie viele dieser Geräte Sie konstruieren und nebeneinander platzieren können? Wenn ich 100.000 davon parallel betreiben kann, brauche ich nur einen inversen Multiplexer, um 5 MB Bandbreite zu erhalten

Wenn Sie zwei oder mehr dieser Geräte nebeneinander stellen, stören sie sich leider.

Dies ist nicht nur ein Problem für die Skalierung der Bandbreite, sondern ermöglicht auch das Jamming von Nachrichten, die ein Feind nicht senden/empfangen soll.

Der Mindestsicherheitsabstand zwischen Transceivern liegt bei Ihnen, seien Sie einfach konsequent. Es kann auch nur auf der Sende- oder Empfangsseite ein Problem geben.

„Die tapfere Heldin schleicht sich als Gärtnerin verkleidet auf das Schlossgelände. Während sie einen Busch umpflanzt, vergräbt sie auch eine kleine Kiste unter den Wurzeln. Später wird sie durch einen Timer aktiviert und die Kommunikation wird unmöglich. Der Kommunikationsoffizier kann dem Kaiser mitteilen, dass die Kiste irgendwo ist auf der Ostseite des Palastes, aber um ihn tatsächlich zu finden, ist eine lange Suche erforderlich. In der Zwischenzeit wird das Kommunikationsteam auf die Spitze des Westturms verlegt und versucht, im Lärm nach Nachrichten zu lauschen.

Da die Übertragung "sofort" erfolgt, können Sie die Informationen nicht in den von Ihnen gesendeten Bytes (wie bei normalen Netzwerkprotokollen) codieren, sondern in der Zeit zwischen den Bits. Wenn Sie also die Nummer 255 senden möchten, würden Sie nicht wie bei einem normalen Internetpaket ein ganzes Byte (8 Bit) verwenden. Stattdessen würden Sie 1 Bit genau 255 Nanosekunden nach dem vorhergehenden Bit senden. Ihre gesamte realisierte Bandbreite wäre nur durch die Präzision Ihrer Uhren und Ihre gewünschte Latenzzeit begrenzt. Sie könnten beispielsweise sagen: "Ich werde alle 10 Millionen Nanosekunden 1 Bit senden. Der Wert, den dieses Bit darstellt, entspricht der Anzahl der Nanosekunden seit dem Senden des vorherigen Bits." Dieses Protokoll würde Ihnen eine maximale 1-Wege-Latenz von 10 Millisekunden und eine minimale Datenübertragungsrate von knapp unter 300 Bytes/Sekunde geben. eine Verdoppelung der maximalen Latenz verdoppelt auch die effektive Übertragungsrate. Ausgeklügeltere Protokolle könnten darauf aufgebaut werden, um die Übertragungsrate on-the-fly auszuhandeln oder Kurzcode-Codierung zu verwenden, um den Durchsatz zu maximieren, indem sichergestellt wird, dass die häufigsten Datenblöcke viele führende Nullen haben (also Bits gesendet werden Schneller). Möglicherweise möchten Sie auch die maximale Blockgröße begrenzen, um sicherzustellen, dass die Uhren je nach relativer Uhrendrift synchron bleiben.

Sie können ziemlich sicher sein, dass der Begriff "sofort" in der Frage bedeutet, dass die Lieferzeit des Signals nicht von der Entfernung zwischen zwei Knoten abhängt. Selbst wenn die eigentliche FTL-Überweisung wirklich, wirklich, „sofort“ ist (was auch immer die Definition sein mag, wenn man bedenkt, dass es nicht einmal ein echtes Konzept von „vorher/nachher“ für FTL-Sachen gibt), sobald Sie auch nur den kleinsten Betrag beifügen von Kupferspuren auf beiden Seiten, es ist nicht mehr augenblicklich. Daher können Sie den FTL-Teil der Übertragung einfach als ein Stück Ihres Kupferdrahts der Länge 0 behandeln. Der Rest der klassischen ...
... Teile der Informationstheorie (Shannon-Nyquist) gelten noch; und da es eine feste Obergrenze für die Übertragung von Symbolen gegeben hat, müssen keine Tricks mehr angewendet werden (c/f-Verhältnis zwischen Abtastrate und Bandbreite).
Das Nyquist-Shannon-Abtasttheorem gilt nur für die Codierung digitaler Informationen in einem analogen Signal. Es gibt keinen Grund zu der Annahme, dass es sich hier um eine analoge Trägerwelle handelt. Angesichts der handgewellten Prämisse der sofortigen Informationsübertragung erscheint es vernünftig (und macht Spaß), diese Prämisse optimal zu nutzen. Es stimmt, dass die Zeit- und Leseschaltungen eine maximale Taktgeschwindigkeit haben würden, aber ich habe das in meiner Antwort als Taktgenauigkeit bezeichnet.
Das ist clever, das gefällt mir sehr. kreativ, lustig und bringt das zustande, wonach das OP sucht. Respekt

Ich würde den Link direkt als dumme 7-Bit-Serienleitung verwenden und die alten UUCP-Protokolle wiederbeleben. Diese Dinger haben tatsächlich weniger Overhead als moderne und sind besser darauf ausgelegt, mit den dummen langsamen Übertragungszeiten fertig zu werden. Die einzige wesentliche Änderung ist das Ersetzen von uuencode durch eine der base85-Varianten.

Nett und danke für den "Blast aus der Vergangenheit". :)

Ich gehe davon aus, dass diese Maschine, die ich The Link nenne, selten ist. Das heißt, es werden nicht genug davon parallel laufen, um die Bandbreite zu verbessern.

Ich werde eine andere Ansicht anbieten. Der Link würde sich nicht in einem Netzwerk im normalen Sinne befinden. Es hätte keinen Sinn.

Erstens würde die Nutzung von The Link aufgrund seiner Bedeutung und der geringen Bandbreite streng kontrolliert, sodass die Leute keine Katzenbilder übertragen würden. Es würde Firewalls geben, um unbefugten Zugriff zu verhindern.

Zweitens kann The Link aufgrund der geringen Bandbreite eher als Telegraf denn als etwas in einem modernen Computernetzwerk betrachtet werden. Ein Telegraf (abgesehen von der Notwendigkeit von Repeatern) bietet Geschwindigkeiten, die dank der Magie des Kupferdrahts mit Lichtgeschwindigkeit vergleichbar sind. Sie schließen die Telegrafentaste, das andere Ende macht "Klick". Sicher, der Elektromagnet ist langsam, aber der Mensch, der die Signale eingibt, ist noch langsamer. Es ist praktisch sofort. Betrachten Sie ein Unterwasserkabel zwischen den USA und Großbritannien. Jedes Land mag ein ausgeklügeltes Telegrafennetz haben, und gegen eine geringe Gebühr kann Sally in Florida Oma in Maine von ihrer neuen Katze erzählen, aber welche Nachrichten kommen für die Kommunikation über das Unterwasserkabel in Betracht? Wahrscheinlich nicht das Katzentelegramm. Stattdessen würde es wahrscheinlich für Informationen verwendet werden, die für Politik und Hochfinanz relevant sind.

Natürlich werden wir 2016 nicht ein paar Leute haben, die Nachrichten auf unserer interstellaren Verbindung abhören. Aber es ist immer noch wie ein Telegraf. Sie hätten an jedem Ende von The Link einen Computer. Der Absender würde aus einem Puffer von Nachrichten lesen (codiert, dann maximal komprimiert) und sie abgreifen. Die Maschine am anderen Ende würde empfangen, dekomprimieren und decodieren.

Obwohl es also kein Netzwerkprotokoll geben würde, würde es wahrscheinlich eine Art Nachrichtenprotokoll geben, damit der Empfänger weiß, wann es angebracht ist, die Nachricht zu dekomprimieren. Eine kurze Nachricht wäre allerdings ein "Scheunenbrenner", da die Komprimierung pro Zeichen geringer und damit weniger effizient wäre.

In Anbetracht dessen, wie kontrolliert die Verwendung von The Link wäre, ist es unwahrscheinlich, dass die Nachrichten für den Normalbürger besonders interessant wären, genauso wie in unserem obigen internationalen Beispiel der Normalbürger sich nicht allzu sehr um Angelegenheiten der Hochfinanz kümmern würde.

Aber welche Nachrichten genau würden über The Link gesendet werden?

Angenommen, ein subleichtes Kolonieschiff hat nach 300 Jahren sein Ziel erreicht und beginnt mit dem Bau seines neuen Zuhauses. Der Link ist eingerichtet.

Die ersten gesendeten Nachrichten sehen in etwa so aus:

Hallo Erde, wir sind gut angekommen und alles läuft nach Plan.

(Dies werden vielleicht wegen der Codierung ein paar Zeichen sein) und beantwortet von

Es tut verdammt gut, von dir zu hören, Cheerio!

(weitere 2 oder 3 Zeichen)

Nach Höflichkeiten und Diagnosen, welche Bedeutung hat irgendetwas auf der Erde für die Kolonie? Hilfe ist 300 Jahre entfernt, abgesehen von einigen schockierenden neuen Entdeckungen. Die Politik wächst und schwindet im Laufe der Jahrhunderte. Länder wechseln. Würde das Land, das das Schiff geschickt hat, noch existieren? Wäre die Weltordnung, die das Schiff geschickt hat, erkennbar? Welche Bedeutung hätte die Kolonie für die Menschen auf der Erde, 15 Generationen entfernt von jenen tapferen, wagemutigen Seelen, die das Kolonieschiff bestiegen?

Es könnte sein, dass ein Katzen-JPEG tatsächlich genauso nützlich ist wie jede andere Nachricht.

BEARBEITEN – Angesichts des Mangels an Bedeutung zwischen dem täglichen Leben der Menschen auf der Erde und den Kolonisten scheint es, dass The Link in diesem Fall im Allgemeinen für minderwertige Wissenschaftskommunikation verwendet wird. Beobachtungen über den Stern, der umkreist wird, und solche Sachen. Ich weiß nicht, warum das besonders relevant wäre, aber es ist besser als tote Luft, vorausgesetzt, The Link nutzt sich nicht durch den Gebrauch ab.

Eine wahrscheinlichere Verwendung von The Link betrifft überhaupt keine Personen. Stattdessen ist das Schiff, in dem The Link untergebracht ist, rein roboterhaft. Diese Schiffe werden von der Partitur zu verschiedenen Sternensystemen geschickt. Sie halten still und heimlich Ausschau nach den Signalen anderer Rassen. Die Daten, die sehr langsam zurückgesendet werden, sollen den Menschen auf der Erde einen Einblick in die Technologie der Außerirdischen und hoffentlich ihre Absicht geben. Wirklich finster.

Betrachten Sie dies: Lukas 17:11 oder dies: Koran 2:4-5, Oxford World's Classics Edition, oder sogar dies: "Regel 5". Sie alle sind Verweise auf längere Sätze oder Texte. Der einschränkende Faktor bei dieser Art der Verschlüsselung ist die Verfügbarkeit der Referenz(en) sowohl für den Sender als auch für den Empfänger. Englisch ist eine hochredundante Sprache, weitaus effizientere Sprachen sind bekannt. Der typische Hochschulabsolvent hat einen Wortschatz von <20.000 Wörtern oder Wortfamilien. Ein Byte ermöglicht die Codierung von 65.000 Wörtern. So sind 5 bis 10 Bytes/Sekunde schneller als Sprechen und würden die verbale (im Gegensatz zur visuellen) Datenübertragung nicht einschränken.

Ein Byte ermöglicht die Codierung von 65.000 Wörtern. - Sir, das ist definitiv unmöglich. Ein Byte entspricht acht Bits, und ein Bit hat zwei Zustände. Somit kann ein Byte nur 2^8 = 256 Möglichkeiten haben.
Zwei Bytes erlauben 65.000 Werte.
WAHR! Er sagte jedoch zunächst ein Byte. Ich denke auch, dass es bei 5-10 bps sehr effizient ist, nur 2-5 Zahlen zu senden, die verschiedene Wörter/Sätze bezeichnen. Schöne Idee, aber die Computertheorie ist auch heute noch viel weiter fortgeschritten.
Es gibt viele Einschränkungen bei diesem Ansatz. Einer ist, dass es im Grunde genommen ein Nur-Text-Relay annimmt. Eine andere ist die Idee eines standardisierten, vereinbarten englischen Wörterbuchs und dass es in Ordnung ist, Treiber neu laden zu müssen, wenn ein Wort seine Bedeutung ändert. Oh, außerdem muss dieses Wörterbuch obskure/technische Wörter oder Firmenproduktnamen enthalten. Ein dritter ist, dass das Hinzufügen eines „s“, um etwas Plural zu bilden, im Grunde genommen die Anzahl der Wörter verdoppelt, die Sie in diesem System erfassen müssen ... und das ist nur ein Beispiel dafür, wie ein oder zwei Buchstaben häufig hinzugefügt werden können, um zu erheblichen Änderungen zu führen.
Ein Byte kann durchaus 65.000 Wörter zulassen, wenn wir eine Lehrbuchgrammatik vorgeben.
Ich würde erwarten, dass es ein Codebuch mit gebräuchlichen Phrasen gibt. Angesichts der aktuellen Technologie könnte es eine beeindruckende Anzahl von Phrasen enthalten. Es könnte auch nutzlos sein, da der passende Ausdruck nicht leicht zu finden ist. Und natürlich wäre das Codebuch dynamisch. Wenn ich also eine Stadt "Gazorinplatz" nenne, würde ich erwarten, dass ich mich beim nächsten Mal mit ein paar Buchstaben darauf beziehe.

Ich bin ein bisschen MeeSeeks-Sticker.

Ich denke, wir sollten das Paradoxon diskutieren, das Ihre Technologie darstellt, wenn Sie versuchen, es innerhalb bekannter moderner Datenübertragungskonventionen zu lösen.

"Die Menschheit schafft es irgendwie, Daten augenblicklich zu übertragen"

Insbesondere dieses Element Ihrer weltweiten FTL-Netzwerke macht vieles von dem, was moderne Datenübertragungskonventionen definiert (und im weiteren Sinne, wie wir sie messen), für Sie effektiv nutzlos.

Mit Ihrer Technologie gibt es Null-Latenz. Mit anderen Worten, wenn ich etwas sende, kommt es auf der anderen Seite GENAU zur selben Zeit an, zu der ich es sende. Nicht vorher, nicht Nanosekunden danach, sondern zur exakt gleichen Zeit an einem entfernten Ort. Wenn Sie diese Situation in modernen Netzwerken lösen, würde Ihr Datendurchsatz aus den Charts fallen. Im Wesentlichen könnten Sie eine unendliche Menge an Informationen durch dieses Netzwerk stopfen, da es theoretisch keine Begrenzung gibt. Zumindest jetzt noch nicht...

"Aber die Geschwindigkeit selbst ist langsam - sagen wir, 5 bis 10 Bytes (10 bis 20 Hexadezimalcodes) pro Sekunde senden zu können."

Hier wird Ihre Situation etwas einzigartig . Gedankenexperiment, wenn Sie so wollen:

Wenn ich diese Antwort poste, erhalten Sie eine Benachrichtigung. Geben Sie für unsere Diskussion vor, dass wir mit der Technologie Ihrer Welt arbeiten. Wenn ich auf diese Schaltfläche „Antwort posten“ drücke, wird Ihr Gerät Sie mit dieser Benachrichtigung anpingen – beide Ereignisse finden gleichzeitig statt. ABER wie viele Daten wurden gesendet?

Das Hauptproblem dabei ist, dass IF-Daten sofort gesendet werden und es sinnlos ist, den Datendurchsatz über einen bestimmten Zeitraum zu messen. Und wenn Bandbreitenmessungen nicht zutreffen, wie und/oder warum ist Ihre Technologie dann so begrenzt?

Meine Antwort:

Angesichts der Tatsachen Ihrer Technologie und um im Kontext Ihrer Frage zu bleiben, würde ich mir an Ihrer Stelle keine Gedanken darüber machen, die Übertragung von Informationen mit modernen Netzwerkprinzipien zu definieren. Ich würde mich darauf konzentrieren, auf einfachste Weise zu definieren, warum die Dinge so sind, wie sie sind.

Zum Beispiel:

  • Die Datenübertragung erfolgt aufgrund des {bevorzugten theoretischen Konzepts der sofortigen Informationsübertragung hier einfügen, d. h. Quantenverschränkung}
  • Die Technologie ist auf einen Ein- und Aus-Zustand beschränkt (ähnlich wie bei binären Systemen), was Ihnen eine Begrenzung der zu übertragenden Daten sowie eine Begründung für die Aufhebung der Begrenzung der zu übertragenden Datenmenge bietet. gesendet" über einen bestimmten Zeitraum, obwohl das "Senden" dieser Daten sofort erfolgt. Erläuterung: Die Daten selbst befinden sich gleichzeitig an beiden Orten, aber der Systemstatus kann nicht gleichzeitig EIN und AUS sein. Das bedeutet, dass die Verzögerung bei der Informationsübertragung nicht auf Latenz oder Bandbreite zurückzuführen ist, was, wie wir besprochen haben, nicht unbedingt zutrifft, sondern durch eine funktionale Einschränkung des vorhandenen Systems begrenzt ist.
  • Optional: Systeme sind männlich-weiblich, wobei die Kommunikation nur zwischen gepaarten Systemen möglich ist. Kein wirklicher Grund, ich mag das nur als weitere Einschränkung, da der Kontext Ihrer Frage wirklich darauf hinausläuft: "Wenn Daten sofort übertragen werden können, wie schränke ich die Technologie für die Bewohner meiner Welt rational ein?"

Fazit: Wie bei allem der Vorstellungskraft, tun Sie dies alles nach Belieben. Denn hey, es ist deine Welt. Und danke, es hat mir wahrscheinlich mehr Spaß gemacht, das zu schreiben, als dir, es zu lesen.

Ich dachte, Sie wollten sagen, verwenden Sie den Zeitpunkt der Nachricht als Hauptinformationskanal. Mein Verständnis der Beschreibung des OP ist, dass beim Senden eines Pakets alle Bytes gleichzeitig gesendet werden (dh als atomare Operation), aber es gibt eine harte Obergrenze für die Paketgröße. Es gibt auch eine sehr hohe Verzögerung zwischen den Paketen, um die Ausrüstung zu durchlaufen. Und angesichts der begrenzten Vertrautheit des OP mit Netzwerken ging ich eigentlich davon aus, dass nicht alle Bits im Paket gleichzeitig übertragen wurden, sondern nur, dass es in einem Burst ging und die Zeit nicht mit der Entfernung skaliert wurde. Es muss nicht sofort sein.
@PeterCordes Sichere Annahmen, aber trotzdem Annahmen. Da seine Vertrautheit mit Netzwerken tatsächlich begrenzt ist, habe ich mich entschieden, seine Worte wörtlich zu nehmen, da dies die sicherste Wette war. Und wieder, weil es ein logisches Paradoxon darstellte, war es der unterhaltsamste Blickwinkel, den man erkunden konnte, haha
Schiel ein wenig. In der Welt des OP ist es möglicherweise möglich, ein Bit sofort zu senden, aber das bedeutet nicht, dass dieses Bit vom Rauschen unterscheidbar ist. Stattdessen muss das Bit sofort vielleicht 1000 Mal gesendet werden, um den Wert mit einer angemessenen Sicherheit zu unterscheiden. Das widerspricht natürlich der „verlustfreien“ Anforderung des OP, aber das OP weiß möglicherweise nicht einmal etwas über die Fehlerkorrektur.
@tonyennis gültige Gegenargumente, aber wie Peter oben treffen Sie Ihre eigenen Annahmen, die nicht ausdrücklich im Frageninhalt des OP behandelt werden, und widersprechen tatsächlich den Informationen, die er ausdrücklich bereitstellt. All dies ist jedoch völlig irrelevant, denn meine Freunde, wir sind in einem Forum und diskutieren über Scheinkonzepte. Für Ihre Idee zu argumentieren, ist irgendwie sinnlos, finden Sie nicht?

Welche Art von Informationen möchten Sie übermitteln? Wenn es nur einfacher Text ist, implementieren Sie an beiden Enden so etwas wie die Bibliothek von Babel . Dann müssen Sie nur noch Positionsinformationen der gewünschten Nachricht übermitteln.

Dies setzt voraus, dass in dieser Welt der FTL-Kommunikation Verarbeitungsleistung und Datenspeicherung im Wesentlichen keine Probleme sind.

Klarstellung: Was ich mit dem Verweis auf die Bibliothek von babel gemeint habe, ist eine Art Nachschlagetabelle. Diese Mitteilung wäre aus einem bestimmten Grund erstellt worden. Meine Vermutung ist, dass dies eher für die interstellare Kommunikation als für das Senden von etwas ein paar Meilen entfernt ist. Daher würde es eine Form der Codierung geben, um sicherzustellen, dass die Absicht der Nachricht gesendet wird, ohne dass möglicherweise die wörtlichen Informationen gesendet werden müssen. Warum 30.000 Bytes senden, wenn ich 10-20 dieser Punkte an eine Nachschlagetabelle senden kann, die die gesamte Nachricht übermittelt.

Ich denke nicht, dass beides hier ernsthafte Überlegungen sind. Wenn Sie einen Fixpunkt brauchen, gehen Sie davon aus, dass Rechenleistung und Speicherplatz MINDESTENS so entwickelt sind wie heute, Ende 2016. Vielleicht sogar besser, aber meiner Meinung nach KÖNNEN wir dieses Problem auch heute noch lösen, falls es jemals auftritt.
Die Sache mit einem System vom Typ „Bibliothek von Babel“ ist das Schubladenprinzip. Irgendwann sind die Positionsinformationen so groß wie die Informationen, die Sie zu senden versuchen. Komprimierungsprogramme funktionieren, weil Sie bereits wissen, welche Art von Daten komprimiert werden sollen (einfache Muster mit Wiederholungen), aber sie können Dateien vergrößern, wenn sie falsch verwendet werden.
Technologie existiert, um einen Bedarf zu decken. Es ist unsere Überwindung einer Herausforderung. Die Implementierung, um diese FTL nutzbar zu machen, hängt also von der Rolle ab, die sie auszufüllen versucht.

Ich wollte dieselbe Beobachtung wie James Turner posten, also habe ich stattdessen seine Antwort positiv bewertet und über einen Einwand nachgedacht (was auch den Störeffekt und die Langsamkeit der Übertragung erklären könnte).

Wenn die Übertragung fehlerfrei und augenblicklich wäre, könnte ich mich darauf einigen, dass ein Signal alle 1,048576 ms (höchstens) mit einer Verzögerung von 0 ns gesendet wird, was 1111111111 und einer Verzögerung von 1048575 ns bedeutet, wenn es möglich wäre, die Zeit mit Nanosekunden-Präzision aufzulösen also 0000000000. Zehn Bits pro Millisekunde und schon sind wir im 10-kbit/s-Bereich (und im Durchschnitt besser).

Ich gehe also davon aus, dass die Übertragung des Signals zwar augenblicklich erfolgt, die Auflösung des Signals jedoch ein probabilistischer Prozess ist. Analysieren Sie ein 1-ns-Fenster, und die Chancen, ein "Signal" oder "Fehlen davon" zu unterscheiden, sind gleich Null. Um eine Sicherheit von 99 % zu erreichen, müssen Sie die Übertragung einer ganzen Sekunde analysieren.

Daher haben die Ingenieure natürlich einen Kompromiss gefunden und kürzere Zeiten mit Komprimierungs- und Fehlerkorrekturschemata kombiniert, um die Bandbreite auf 40-80 Bit/s zu erhöhen.

Wenn wir zwei Sender in der Nähe platzieren, sendet einer etwa 50% der Zeit eine 0, während der andere eine 1 sendet, was die Fehlerrate am Empfängerende erhöht und eine niedrigere Geschwindigkeit erzwingt. Das Skalieren des Geräts bringt Ihnen also nichts.

Andererseits, wie weit müssen die Sender voneinander entfernt sein, damit sie sich nicht nennenswert stören? Angenommen, es sind 500 Meter; Im Weltraum könnte man ein riesiges Kommunikationsfeld aufbauen, einen zehn Kilometer großen Drahtgitterwürfel, der aus 500 m "Drähten" besteht, die etwa achttausend Sender an Ort und Stelle halten und durch normale Unterlichtsignale koordiniert werden. Planeten könnten über Oberflächennetzwerke miteinander kommunizieren; Schiffe wären viel begrenzter. Die Folgen scheinen interessant.

Diese Diskussion scheint sehr eng zu sein – ich würde die Frage von ein paar Schritten zurück betrachten.

Ich gehe davon aus, dass der Kontext eine interstellare Zivilisation ist, da es sonst schwierig ist, den Vorteil gegenüber bestehender Kommunikationstechnologie zu erkennen. Wenn diese Zivilisation FTL -Reisen hat, wäre es effektiver, Daten physisch zu versenden: Eine einzige Micro-SD-Karte könnte Übertragungen im Wert von mehr als 500 Jahren speichern.

Wenn Sie FTL - Kommunikation haben, aber die Reise langsamer als das Licht ist, wird es interessanter. Seit jeher konnten sich Menschen so schnell fortbewegen wie Informationen; Seit Kurzem haben wir eine sofortige Kommunikation, aber es dauert auch nicht länger als einen Tag, um irgendwohin zu reisen, wenn Sie es eilig haben.

Wenn ferne Welten in Echtzeit miteinander sprechen könnten, aber Reisen zwischen ihnen Jahrzehnte dauern würden, wäre das eine völlig neue Art von Realität. Die Einführung eines wöchentlichen Fingerhuts voller Speicherchips würde immer noch eine größere Bandbreite bieten als das FTL-Radio (um viele Größenordnungen), aber die Latenz würde Jahrzehnte gegenüber Minuten betragen. Es gibt interessante Implikationen.

Angenommen, die Menschen auf der Erde wären besessen von Omicron Persei VIIIs Version von Shakespeare. Thimbles würde alle Theaterstücke, Filme und Interviews liefern, die die Erde konsumieren könnte, aber sie würden lange nach Space Shakespeares Tod eintreffen. Ein wohlhabender Terraner könnte 15 Minuten FTL-Funkzeit für einen Live-Chat mieten, aber das Beste, was er tun könnte, wäre ein Chat mit den Enkelkindern von Spacespeare. Oder Sie könnten sich mit einer lebenden omikronischen Berühmtheit unterhalten, aber nur Ihre Enkelkinder würden sehen, wofür sie berühmt waren.

Aus wirtschaftlicher Sicht ist es schwer vorstellbar, dass die Echtzeitkommunikation im Kulturhandel eine große Rolle spielt. Die Leute zahlen vielleicht, um Filme aus Space Hollywood zu sehen, aber sie würden einfach die 200 Jahre alten Filme konsumieren, die per Fingerhut ankommen, und die 200 Jahre alte Version von Space Hollywood als „die Gegenwart“ behandeln.

Das FTL-Radio wäre eigentlich nur für Spoiler gut. Was für den Handel nicht sehr wichtig ist, aber offensichtlich nützlich wäre für Warnungen vor massiven Invasionsflotten / Supernovas / etc. Tatsächlich könnte dieser Service eine wichtige Garantie für den Handel sein; Wenn Sie Ihre Space-HBO-Rechnung für die Sendungen, die sie vor 200 Jahren gesendet haben, nicht bezahlen, werden sie Sie im nächsten März nicht vor diesem Asteroiden warnen.

(Vage verwandt, schrieb der Nobelpreisträger Paul Krugman einmal eine Abhandlung über die Ökonomie des Sublichthandels ).

NB

Einige der obigen Antworten berühren die Idee, riesige Datenmengen mit riesigen Wörterbüchern zu kodieren; Diese Idee hat eine lange Geschichte, mindestens seit dem 17. Jahrhundert bis in die 1950er Jahre, als sie im Zuge der Schaffung der Informationstheorie demontiert wurde.

Die Idee ist, dass Sie alle möglichen Bücher aufschreiben, sie alle ordnen und sie dann einfach durch Nummern ansprechen. Das Problem ist, dass ein Buch bereits nur eine Folge von Bytes ist, dh eine lange Nummer, und wenn Sie jedem Buch eine Nummer geben, bedeutet dies, dass die Nummer so lang ist wie das Buch selbst; Tatsächlich handelt es sich um genau dieselbe Folge von Bytes.

Natürlich sind die meisten Byte-Strings keine "echten" Bücher, und wenn Sie nur gültige englische Texte einfügen, können Sie die meisten Zahlen überspringen. Das führt tatsächlich zu einer erheblichen Datenkomprimierung. Aber es erfordert auch einen Algorithmus, um jeden möglichen „sinnvollen“ Text zu generieren, das heißt, einen Algorithmus, der jeden Gedanken aufzählen kann, den ein Mensch jemals haben könnte. Das ist ... herausfordernd ... und erfordert viel Speicherplatz.

Praktische Komprimierungsalgorithmen verwenden diese Art der "Wörterbuchcodierung", aber sie ist viel grundlegender. Der Trick besteht eigentlich darin, so viel wie möglich aus dem Wörterbuch herauszulassen, sodass nur sehr häufig vorkommende Zeichenfolgen durch sehr kurze Codes ersetzt werden, also zum Beispiel the cat sat on the matauf reduziert werden 1 c2 s2 on 1 m2. Wenn Sie ein vorgefertigtes Wörterbuch verwendet haben, das alle bekannten Wörter enthält, wird die Nachricht möglicherweise länger ( 23 4954 3430 109 23 908078).