TCP / IP over Audio

開発者のChris Christopher(Chris Christopher)は、スピーカーを使用してコンピューター間の通信チャネルを上げる方法についてかなり詳細な説明を公​​開しています。 コンピューターに通信機器がない場合でも、TCP / IPおよびUDPパケットを「無線で」送信できます。



著者は、標準のラップトップとgnuradioプログラムを含むオープンソースソフトウェアを使用しました。 彼は、最も簡単な方法は、Gnuradioディストリビューション (gnuradioが既にインストールされているUbuntuのバージョン)の既製のLiveDVDイメージをダウンロードすることだと言います。



また、Githubからgnuradioパッチをダウンロードし、ルートからインストールする必要があります。 このパッチは、可変サイズのパケットをサポートするようにgnuradioパケットエンコーダーおよびデコーダーを変更します。







信号のエンコード/デコードアルゴリズム全体をこの図に示し 、著者は各ステップを説明します。仮想ネットワークインターフェイスの作成。 仮想NICからのパケットをパケットエンコーダーで処理するためのバイトストリームに変換します。パケットエンコーダーは、パケットプリアンブル、ヘッダー、チェックサムを追加します。



GFSK変調器は、最初の図に示すように、アナログキャリアにビットを重ねることで周波数変調(FSK)を実行します。



変調器では、各文字に対して送信するサンプル数を指定できます(デフォルトでは9)。この値が高いほど、信号対雑音比が向上します。つまり、送信は干渉に対してより耐性になります。



次の段階で、FIRフィルター(有限インパルス応答を持つフィルター)は、指定された周波数でオーディオ信号を送信します。 たとえば、19 kHz。 最後の段階で、特別なユニットが信号をオーディオカード用の許容可能なストリームに変換します。



受信ユニットは、いくつかの追加ブロックがありますが、説明されているすべての操作を逆の順序で実行します.1つはマイクからの信号を指定された回数増幅し、2つ目はマイクからの外来ノイズが復調器に入らないように所定の周波数範囲で音をフィルタリングします。



著者は、このようなスキームを使用すると、ラップトップが互いに異なる周波数で情報を送信するときに、二重伝送チャネルを確立できると述べています。







23 kHzの周波数でのテストオーディオチャネルTCP / IPの動作を以下のビデオに示します。 また、Chris Christopherは、遅延と転送速度を示すすべてのパケットの記録、 スクリーンショットを含むPCAPファイルの表示を提案しています。






All Articles