「テレグラフ」 - インターネットを使用しない電子メール

良い一日!

スタンドアロンの分散型電子メールの作成に関する興味深い考えをコミュニティと共有し、既存の実装が実際にどのように機能するかを示したいと思います。

当初、Telegraph は、何らかの形でコンピュータ テクノロジーと通信に活動を捧げていた小規模な学生コミュニティのメンバー間のアマチュア通信手段として開発されました。

注意せよ: 「電信」はアマチュアの通信手段です。 産業規模で実際的な利益を引き出すことは非常に問題があるように思えますが、この問題は決して重大であるとは言えません。私たちは、この種の通信システムの開発に直接注目を集めることが私たちの主な目標であると考えています。

私たちは、さまざまな通信システムの開発に対する一般の関心を高めることが必要であり、非常に重要であると考えています。なぜなら、これらのシステムがどのように機能し、何に基づいているのかという基本原則を理解することが、情報セキュリティに対する国民の意識を高める主な鍵だからです。問題。

「テレグラフ」 - インターネットを使用しない電子メール

アクトゥン!誤解を避けるために、場合によっては画像をスクロールしてください。
「テレグラフ」 - インターネットを使用しない電子メール

このシステムはボランティアと純粋な熱意に基づいています。私たちはただ自分たちの仕事が好きです。 これを趣味と考えても間違いはありません。結局のところ、紙の通信を使用したコミュニケーションを愛好する人は今でも存在します。 ほとんどの場合、「電信」は、通常の郵便の原理をデジタルで実現したものとして表すことができます。

Telegraph は、インターネットを使用せずに単純なテキスト メッセージを送信できる、スタンドアロンの電子メールの類似物です。 「電信」は程度の差こそあれ、 スニーカーネット - ネットワークを使用せずに情報を交換する方法。

フラッシュ ドライブはメールボックスとして使用され、端末 (電子通信を送受信するための独自のアクセス ポイントであるコンピューター) は郵便局として機能します。

システムとの対話の最も単純な例を考えてみましょう。 フラッシュドライブXNUMX台と端末XNUMX台の在庫があります。 スクリプト自体には、その後のシステムとの対話に必要なグローバル変数 (端末番号、ルートへのパスなど) が含まれています。

リムーバブル ドライブをターミナルに接続してスクリプトを実行すると、ディレクトリから送信メッセージを受信しようとします。 /mnt/電信/送信ボックス それらをメモリに転送してから、メモリ内の現在のユーザーの新しいメッセージを確認します。 ある場合は、それを書き留めてください /mnt/電信/受信箱.

新しいデバイスを登録する

それはかなりランダムに起こります。 スクリプトは、システムに接続されている新しいフラッシュ ドライブを検出し、その一意の ID をルートに表示されている ID と照合しようとします。 デバイスが事前に登録されていない場合は、Telegraph が規定する規則に従ってフォーマットされます。

新しいデバイスを登録すると、ルート構造は次の形式になります。

imgur.comの投稿を見ます

設定ファイル内 config.ini、フラッシュドライブのルートにあり、一意の識別子と秘密キーなどのシステム情報があります。

imgur.comの投稿を見ます

人々にラム酒を飲ませてください!

いや、本当に、真剣に! ソースを入手できます ここでそして、ゆっくりと理論から実践に移行するときが来ました。

ただし、メッセージング システムが実際にどのように機能するかについて、もう少し説明する必要があります。

まず、XNUMX 桁の一意の識別子が何で構成されているかを理解しましょう。 例えば、 10455000001.

最初の桁 1、国番号を担当します。 国際コード - 0、この場合はロシア - 1.

次に、端末が位置する地域の番号を表す XNUMX 桁の数字が続きます。 0455 コロムナ市街地です。

これらの後には XNUMX つの数字が続きます - 00, - 端末番号を直接担当します。

そしてその場合のみ、この端末に割り当てられたユーザーのシリアル番号であるXNUMX桁の数字が表示されます。 私たちはこれを持っています - 0001。 もあります 0000 — この番号は端末自体に直接属します。 書面による通信を送信することはできませんが、端末自体はこの番号を使用してユーザーにサービス メッセージを送信します。 たとえば、何らかの理由でメッセージを配信できなかった場合などです。

imgur.comの投稿を見ます

「メールボックス」のルートには、テキスト メッセージの送受信に必要な XNUMX つのディレクトリがあります。 デバイスが端末に接続されると、送信メッセージは「Outbox」ディレクトリからサーバーに送信され、受信メッセージは論理的な「Inbox」ディレクトリにロードされます。

各ファイルには、ディレクトリに応じて、受信者または送信者の番号によって名前が付けられます。

存在しない受信者にメッセージを送信しようとすると、端末はエラー メッセージを送信します。

imgur.comの投稿を見ます

ただし、当社が別の端末 (存在するかどうかに関係なく) にある宛先に手紙を送ることにした場合、エージェントが書面による通信を当社の端末から自分の端末に転送する前に、その手紙は端末のメモリに記録されます。

imgur.comの投稿を見ます

ブランチエージェントの場合 10500000000 (言い換えれば、郵便配達員) が自分のデバイスを私たちの端末に接続すると、送信された手紙が彼のドライブに転送されます。 その後、彼がデバイスを端末に接続すると、これらの手紙は端末のメモリにダンプされ、受信者がフラッシュ ドライブにダウンロードするのを待ちます。

コミュニケーションセッション

「こんにちは!」というテキストを含むメッセージを送信してみましょう。 から 10455000001 к 10455000002.

imgur.comの投稿を見ます

それだけです!

プロジェクトのソース コードや記事自体に対する批判は喜んで受け付けます。

ご清聴ありがとうございました。

出所: habr.com

コメントを追加します