Guten Tag!
Ich möchte der Community einige interessante Gedanken zum Erstellen einer eigenständigen dezentralen E-Mail mitteilen und zeigen, wie eine bestehende Implementierung in der Praxis funktioniert.
Ursprünglich wurde „Telegraph“ als Amateurkommunikationsmittel zwischen Mitgliedern unserer kleinen Studentengemeinschaft entwickelt, die ihre Aktivitäten auf die eine oder andere Weise der Computertechnologie und Kommunikation widmete.
Nota bene: „Telegraph“ ist ein Amateurkommunikationsmittel; Es erscheint ziemlich problematisch, im industriellen Maßstab praktische Vorteile zu erzielen, aber dieses Problem kann kaum als signifikant bezeichnet werden – wir sehen unser Hauptziel darin, direkt Aufmerksamkeit auf die Entwicklung dieser Art von Kommunikationssystemen zu lenken.
Wir neigen dazu zu glauben, dass ein zunehmendes allgemeines Interesse an der Entwicklung verschiedener Kommunikationssysteme notwendig und sehr wichtig ist, da das Verständnis der Grundprinzipien der Funktionsweise dieser Systeme und ihrer Grundlagen der Hauptschlüssel für die Sensibilisierung der Bürger für Informationssicherheit ist Probleme.
Achtung!Um mögliche Missverständnisse zu vermeiden, können Sie in einigen Fällen durch die Bilder scrollen:
Das System basiert auf Freiwilligen und purer Begeisterung – wir mögen einfach, was wir tun. Sie können dies als Hobby betrachten und werden sich nicht irren – schließlich gibt es immer noch Liebhaber der Kommunikation durch Papierkorrespondenz; „Telegraph“ kann in den meisten Fällen als digitale Umsetzung der Prinzipien der regulären Post dargestellt werden.
Telegraph ist ein eigenständiges E-Mail-Analogon, mit dem Sie einfache Textnachrichten senden können, ohne das Internet zu nutzen. „Telegraph“ kann bis zu einem gewissen Grad zugeschrieben werden
Flash-Laufwerke werden als Postfächer verwendet, und Terminals – Computer, die einzigartige Zugangspunkte für den Empfang und die Übertragung elektronischer Korrespondenz sind – fungieren als Postämter.
Betrachten wir das einfachste Beispiel der Interaktion mit dem System. Wir haben zwei Flash-Laufwerke und ein Terminal auf Lager. Das Skript selbst enthält die notwendigen globalen Variablen für die spätere Interaktion mit dem System – Terminalnummer, Pfad zum Root usw.
Wenn wir einen Wechseldatenträger an das Terminal anschließen und das Skript ausführen, versucht es, ausgehende Nachrichten aus dem Verzeichnis zu empfangen /mnt/Telegraph/Outbox und übertragen Sie sie in Ihren Speicher. Suchen Sie dann nach neuen Nachrichten in Ihrem Speicher für den aktuellen Benutzer. Wenn es welche gibt, notieren Sie sie in /mnt/Telegraph/Inbox.
Registrieren neuer Geräte
Es passiert ganz zufällig. Das Skript findet neue Flash-Laufwerke, die mit dem System verbunden sind, und versucht, ihre eindeutigen IDs mit denen im Stammverzeichnis abzugleichen. Wenn Geräte zuvor nicht registriert wurden, werden sie gemäß den von Telegraph angegebenen Regeln formatiert.
Nach der Registrierung eines neuen Geräts hat die Root-Struktur folgende Form:
In der Konfigurationsdatei config.iniIm Stammverzeichnis des Flash-Laufwerks befinden sich Systeminformationen – eine eindeutige Kennung und ein geheimer Schlüssel.
Gib den Leuten etwas Rum!
Nein, wirklich, im Ernst! Sie können die Quellen erhalten
Aber ich sollte noch ein paar Worte dazu sagen, wie das Nachrichtensystem in der Praxis funktioniert.
Lassen Sie uns zunächst herausfinden, woraus eine elfstellige eindeutige Kennung besteht. Z.B, 10455000001.
Die erste Ziffer 1, ist für die Ländernummer zuständig. Internationaler Code - 0, Russland in diesem Fall - 1.
Als nächstes kommen vier Ziffern, die für die Nummer der Region verantwortlich sind, in der sich das Terminal befindet. 0455 ist der Stadtbezirk Kolomna.
Ihnen folgen zwei Zahlen - 00, - direkt verantwortlich für die Terminalnummer.
Und nur dann - vier Ziffern, die die Seriennummer des diesem Terminal zugewiesenen Benutzers darstellen. Wir haben das - 0001. Es gibt auch 0000 — Diese Nummer gehört direkt zum Terminal selbst. Sie können keine schriftliche Korrespondenz an ihn senden, aber das Terminal selbst verwendet diese Nummer, um Servicenachrichten an Benutzer zu senden. Zum Beispiel, wenn die Nachricht aus irgendeinem Grund nicht zugestellt werden konnte.
Im Stammverzeichnis unseres „Postfachs“ befinden sich zwei Verzeichnisse, die zum Empfangen und Senden von Textnachrichten erforderlich sind. Wenn ein Gerät mit dem Terminal verbunden ist, werden ausgehende Nachrichten aus dem Verzeichnis „Postausgang“ an den Server gesendet und eingehende Nachrichten in das Verzeichnis „Posteingang“ geladen, was logisch ist.
Jede Datei wird je nach Verzeichnis nach der Empfänger- oder Absendernummer benannt.
Wenn wir versuchen, eine Nachricht an einen nicht vorhandenen Empfänger zu senden, sendet uns das Terminal eine Fehlermeldung.
Wenn wir uns jedoch entscheiden, einen Brief an einen Empfänger zu senden, der sich auf einem anderen Terminal befindet (unabhängig davon, ob dieser existiert oder nicht), wird er im Speicher des Terminals gespeichert, bevor der Agent die schriftliche Korrespondenz von unserem Terminal auf sein Terminal überträgt.
Beim Filialagenten 10500000000 (also der Postbote) sein Gerät mit unserem Terminal verbindet, werden ausgehende Briefe auf sein Laufwerk übertragen. Wenn er anschließend sein Gerät an sein Terminal anschließt, werden diese Briefe im Speicher des Terminals abgelegt und warten darauf, dass der Empfänger sie auf sein Flash-Laufwerk herunterlädt.
Kommunikationssitzung
Versuchen wir, eine Nachricht mit dem Text „Hallo!“ zu senden. aus 10455000001 к 10455000002.
Das ist alles!
Ich freue mich über jede Kritik am Quellcode des Projekts und am Artikel selbst.
Vielen Dank für Ihre Aufmerksamkeit.
Source: habr.com