グーグルは、ブラックコミュニティのための人種的資本を進めてまいります。 どのように参照してください。
このページは Cloud Translation API によって翻訳されました。
Switch to English

ハッピー

ハッピーは、シミュレートされたネットワークトポロジの軽量なオーケストレーションのためのツールです。 IoTデバイスのハードウェアを使用せずにネットワーク・プロトコルおよび単一のLinux開発マシン上の他の分散実行プログラムをテストするためにそれを使用してください。

それは何ですか?

ハッピーは、複雑なネットワークトポロジをシミュレートします。単一のLinuxマシンでは、ハッピーは互いに独立したネットワークスタックを持つ複数のノードを作成することができます。いくつかのノードは、他の人がシミュレートされたのWi-Fi、WAN(インターネット)、または携帯電話ネットワークに接続することができ、シミュレートされたスレッドのネットワークに接続することができます。

ハッピーアドレス以下の使用例:

  • ハードウェアを使用せずに、単一のLinux開発マシン上のネットワーク・プロトコルおよびその他の分散実行プログラムのテスト
  • ネットワーク経由で自動機能テストを実行します
  • 同じシステム上で複数の同時並行ネットワークを実行すると、テストのスループットを向上させるため

ハッピーは、最小限のユーザーオーバーヘッドでネットワークトポロジの抽象化を作成することにより、これらの問題を解決します。複雑なトポロジでは、単一のシェルコマンドの呼び出しで作成することができます。ハッピーは、対話的に使用し、自動化されたスクリプトの両方をサポートしています。

使用ハッピーシェルは、セットアップ、テスト、および開発中に自分のコードをデバッグするためのコマンド。同一のネットワーク構成とテストプログラムは、次いで、スクリプトと自動テストに使用することができます。

始めましょう

ハッピーを始めるための最も迅速かつ最も簡単な方法は、コードラボを通過することです。これは、を含むすべての幸せな基礎を介してユーザーを歩きます:

  • トポロジの作成と削除
  • 一緒にノードをネットワーク
  • トポロジの保存と復元
  • インターネットへの接続トポロジを
  • 織りのファンダメンタルズ

ハッピーコードラボ入門してみてください

参照のセットアップ使用方法を設定し、ハッピーを使用しての詳細については。

建築

ハッピーモデル以下:

  • ノード - A Linuxネットワークの名前空間。指定されたネットワークの名前空間内で実行ノードを備えるプロセス。
  • リンク - A Linuxのネットワークインタフェース。ハッピーは、使用veth L3(IP)インターフェイスをサポートするために、ネットワークデバイスおよびtap L2をサポートするネットワーク装置は、箱から出しインターフェース。
  • ネットワーク -その中に実行されているイーサネットブリッジとLinuxネットワークの名前空間。

実装

ハッピーは、Pythonモジュールのコレクションです。コアハッピーモジュールはのための抽象化を提供します。

  • ノードの抽象化を管理します
    • ノードの追加、変更、および削除
    • ノード内の一連のプロセスを実行します
  • リンクを管理します
    • リンクを追加、変更、および削除
    • ノードとネットワークへのリンクを割り当てます
    • アドレスの割り当てを割り当てると変更
  • ネットワークを管理します
    • 作成、変更、およびネットワークを破壊します
    • ネットワーク接続
  • 凝集方法でフレームワークの全体の状態を管理します

ハッピー・モジュールによって実装抽象化のほとんどは、Linuxのネットワークツールのinvokeそのコマンドにマップします。

ハッピーもで見つかったプラグインのセットが含ま/plugins 。プラグインは、特定の技術に関連する機能のセットを包みます。例えば、 /plugins/weaveハッピー内の実行のためのラップは、様々な織りのアプリケーションというヘルパーが含まれています。

実行

ユーザーは二つの方法を経由してシミュレートされたトポロジを構築することができます:

  • シェルコマンド-すべてのコマンドはしている/bin
  • Pythonスクリプト - 輸入ハッピー・モジュールは、独自のPythonスクリプトでハッピーコマンドを呼び出します。モジュールはである/happy

あなた自身のPythonスクリプトでハッピーモジュールを使用する方法の詳細については、 Pythonスクリプトを