Unter Linux kann ich eine Datei über eine Kopfhörerbuchse, ein Audiokabel und eine Mikrofonbuchse kopieren

0

Ich möchte eine Datei (dh verlustfreie Übertragung) von einem Linux-Computer auf einen anderen Computer übertragen, indem ich nur den Kopfhörerausgang verwende. Ich würde ein Audiokabel verwenden und an den Mikrofoneingang des empfangenden Computers anschließen. Ist das möglich? Wie richte ich es ein?

Um es klar auszudrücken: Ich habe kein USB, Ethernet usw. zur Verfügung. Kopfhöreranschluss ist es. Also brauche ich natürlich ein Softwaremodem. Existiert einer?

user5406764
quelle
2
Theoretisch könnte dies getan werden, aber ich bezweifle, dass Sie die benötigten Treiber bereits geschrieben finden.
Tyson
Sie beschreiben im Grunde, was ein akustisches Modem tut. Aber Kopfhörerbuchsen und Audio-Ein- / Ausgang sind einfach nicht dafür ausgelegt. Keine einfache Möglichkeit, das zu tun, was Sie beschreiben. Das Anschließen eines Ethernet-Kabels ist die beste und realistischste Option, die Sie haben.
JakeGould
Angesichts der Tatsache, dass Leute Hacks gebaut haben, die TCP / IP-Daten über Standard-LEDs, Lautsprecher und IDE-Kabel senden, ist dies mit Sicherheit möglich. Moderne Audiokarten haben auch eine um eine Größenordnung größere Bandbreite als die besten analogen Modems.
Qasdfdsaq
2
Ehrliche Frage hier: Wie ist die Akte überhaupt dort reingekommen?
Braiam
4
Wichtiger: Wie würden Sie ein Softwaremodem auf dem Zielcomputer installieren, wenn es keine herkömmlichen Dateneingaben hat?
NReilingh

Antworten:

2

Es ist durchaus möglich, obwohl viel langsamer als Sie es vielleicht gewohnt sind.

Früher konnten Sie mit einem Kassettenrekorder Daten und Software auf Audiokassetten speichern. (So ​​wurde es gemacht, bevor Disketten für die breite Öffentlichkeit billig genug waren.) Während dieser Zeit gab es keine Möglichkeit zur bidirektionalen Kommunikation. Daher verwendeten sie verschiedene Fehlerkorrekturtechniken, um sicherzustellen, dass die Daten trotz der variablen, lauten Daten geladen werden konnten Eine Umgebung, in der Audio aufgenommen wurde, bevor digitales Audio eine Sache war.

Eine Variation davon wäre, die Daten als Audio "zu speichern", genau wie man sie auf einem Kassettenrekorder speichern könnte. (Anstatt mit einem Kassettenrekorder verbunden zu sein, würden Sie eine Verbindung zum "Line-In" eines anderen Computers herstellen.) Der andere Computer ist so eingerichtet, dass er die Daten von dieser "Line-In" -Verbindung "lädt".

Ich bin mir nicht sicher, ob solche Funktionen auf dem heutigen Linux verfügbar sind. Aber es gibt verschiedene Sound- und Fehlerkorrekturbibliotheken und die Technologien sind so einfach, dass Sie mit ein wenig Recherche und Ellbogenfett das bekommen, was Sie wollen.

Wenn man sich umschaut, scheint es immer noch ein Interesse an dieser Art von Technologie zu geben. Diese Seite beschreibt minimodem(und wie man es bekommt), eine Linux-Software, die genau das tut, was Sie verlangen.

Ouroborus
quelle
"Früher konnte man mit einem Kassettenrekorder Daten und Software auf Audiokassetten speichern" - Etwas irreführend, da hierfür eine Modulator- Hardwareschnittstelle erforderlich war , um den digitalen Datenstrom in ein analoges Audiosignal umzuwandeln. Ihre "Variation" beim Speichern der Daten als Audio funktioniert nicht, weil Sie die erforderliche Modulation falsch verstehen. Dies minimodemscheint jedoch eine Lösung zu sein (wenn es installiert werden kann), obwohl die Quelldatei möglicherweise mit einem Modemprotokoll verarbeitet werden muss, bevor sie an übergeben wird minimodem, und dann auf der empfangenden Seite umgekehrt verarbeitet werden muss.
Sägemehl
@sawdust Speichern von Daten "als" alles impliziert, dass eine Art von Übersetzung stattfindet. In den Fällen, die ich erwähnte, wurde dies in Hardware durchgeführt, und ein Modulator war Teil dieser Hardware. Angesichts des Arbeitsspeichers und der Rechenleistung, die wir heutzutage haben, scheint es, dass solche Dinge jetzt in Software ausgeführt werden können, möglicherweise in Echtzeit. minimodemmuss nicht verwendet werden. OP hat bereits angegeben, dass er kein Netzwerk hat und daher nichts herunterladen kann. Trotzdem scheint es immer noch möglich zu sein, ein Shell-Skript zu schreiben, das Daten in einen verwendbaren Audiostream kodieren oder einen aufgezeichneten Stream dekodieren kann.
Ouroborus
2

Absolut machbar auf einem modernen Linux-System. Wie oben erwähnt, ist Minimodem das, was Sie wollen. Über eine geschlossene Schleife erhalten Sie mindestens 2.400 Bit / s (2,4 KBit / s), möglicherweise mehr. Wenn es sich um einen ruhigen Raum handelt, können Sie mit nur einem Lautsprecher, einem Mikrofon und Schallwellen 100 Bit / s erreichen. Youtube Video hier . Sie müssen sich mit c-kermit für die eigentliche Dateiübertragung vertraut machen.

Ken
quelle
0

Konnten Binärdaten in Audio und zurück konvertiert werden? Natürlich . Und ich bin mir sicher, dass es dafür Softwarelösungen gibt , obwohl ich sehr bezweifle, dass sie nahezu verlustfrei sind und ich sie nie ausprobiert habe.

Würde ich es empfehlen? Überhaupt nicht. Bedenken Sie, dass es nicht möglich ist, Daten, die das empfangende Gerät nicht erhalten hat, erneut anzufordern, wenn Sie die Ausgabe eines Computers mit der Eingabe eines anderen Computers verknüpfen. Hinzu kommt, dass es unwahrscheinlich ist, dass normale Kopfhörer- und Mikrofon-Chipsätze / -Codecs auf Verbraucherebene so genau sind, wie Sie es für nahezu verlustfreie Verbindungen benötigen. Möglicherweise verfügen sie auch über einige Einstellungen oder Verstärkungen für den Equalizer hinter den Kulissen. Daher müssen Sie möglicherweise das Glück haben, überhaupt Daten zu übertragen.

Sie erhalten keine nachweislich verlustfreie Datenübertragung, auf die Sie sich in keiner Weise verlassen können. Sie könnten jedoch möglicherweise Daten übertragen.

Jonno
quelle
Sie können mit Sicherheit nachprüfbare verlustfreie Daten erhalten.
Qasdfdsaq
Könnten Sie näher darauf eingehen? Ich habe Mühe zu verstehen, wie Sie dies mit einer einseitigen Kommunikation erreichen können. Im Nachhinein (wird meine Antwort ändern) könnten Sie eine Parität angeben, anhand derer überprüft werden kann, ob Sie Daten verloren haben. Ich kann jedoch nicht abschätzen, wie Sie fehlgeschlagene Daten erneut anfordern, ohne eine Antwort an senden zu können der Server (ich dachte, es wäre vergleichbar mit einer UDP-Verbindung). Natürlich könnten Sie immer die gleichen redundanten Daten senden, aber das würde noch keine perfekte Übertragung garantieren, noch wäre es eine sehr effiziente Praxis?
Jonno
Auf die gleiche Weise können Sie die Verlustfreiheit einer ZIP-Datei überprüfen, die Ihnen per E-Mail gesendet wurde.
Qasdfdsaq
Sie brauchen nur Software, die Ihre Daten in Pakete aufteilt und eine Prüfsumme für die Pakete berechnet. Wenn die Prüfsumme für ein Paket schlecht ist, senden Sie eine erneute Übertragungsanforderung herunter oder bestätigen das Paket einfach nicht, obwohl Ihr verlustfreies Protokoll für die Arbeit eingerichtet ist. Sogar ein Protokoll, das über UDP geschrieben wurde, kann verlustfrei sein, solange das von Ihnen verwendete Protokoll Neuübertragungen implementiert
SE
@SE Senden einer erneuten Übertragungsanforderung Wie erreichen Sie dies mit einer solchen Einwegkommunikation ?
Jonno
0

Ausgehend von den Einschränkungen Ihrer Frage denke ich, dass ein herkömmliches Modem tatsächlich übertrieben wäre. Sie müssen nicht benötigen eine TCP - Verbindung eine Dateiübertragung über eine Audio - Verbindung zu tun, und man könnte ohne alle Overhead der Vernetzung besser dran.

Lassen Sie uns diese Frage zusammenfassen. Auf einem Computer verfügen Sie über eine beliebige Datendatei, die Sie so codieren möchten, dass sie als Audio wiedergegeben und dann auf einem anderen Computer decodiert werden kann.

Der Wiedergabe- und Aufnahmeteil sollte ziemlich einfach sein - sobald Sie eine generierte Audiodatei haben, kann ein Programm wie Audacity verwendet werden, um diese vom Audioeingang des anderen Computers aufzunehmen. Der schwierige Teil ist also das Kodieren und Dekodieren des Audiostreams.

Warum nicht Morsecode verwenden ? Sie könnten eine hexadezimale Darstellung Ihrer Daten verwenden, und es gibt Tools sowohl für die programmgesteuerte Codierung als auch für die Decodierung von Audiodaten.

Natürlich wirft die Erwähnung eines zusätzlichen Tools, das für die Dekodierung erforderlich ist, die Frage auf: Wie würden Sie dieses Tool überhaupt auf Ihren Zielcomputer bekommen? (Dies gilt auch für ein Softwaremodem.) Wenn Sie ein Programm auf dem Zielcomputer eingeben, um die Dekodierung für Sie durchzuführen, ist eine Open-Source-Javascript-Bibliothek keine ganz schreckliche Idee.

Sie können einen einfachen Prüfsummen-Hash verwenden, um die Genauigkeit nach dem Kodieren, Übertragen und Dekodieren zu überprüfen.

NReilingh
quelle