実際の IP アドレスを介して通信できるデバイス エミュレーターを構築する必要があります。
デバイス用にできるだけ多くのインスタンスを作成する必要があります。エミュレータ インスタンスごとに 1 つの IP アドレスと MAC アドレスを使用
これを達成する方法を教えてもらえますか?
5、6年前、私はPS2ゲーム用のネットワークエミュレーションレイヤーの作成に行き詰まりました。インターネット接続のすべての古典的な動作を表示する必要があると言われました。現実的な損失特性、パケットの並べ替え、遅延、ラッシュによるパケット損失。基本的に、私は数週間でインターネットを実装するように言われました。
すべてのゲームトラフィックをリモートエコーサーバーからバウンスすることを提案しました。パブリックワイヤを介して開発トラフィックを送信することは絶対に禁止されていると言われたとき、私は単に、受信したすべてのパケットを保存し、ドッペルゲンガー(元のパケットのIDでいっぱい)を送信するPS2開発キットを全員が指すサーバーを作成しましたそれに加えて、同じサイズにするためのランダムなゴミの束)を実行したエコーサーバーに送信します。ドッペルゲンガーを受け取ったら、元のパケットを元の宛先に渡します。
ブーム。8時間以内にすべてのとげを使ったインターネットシミュレーション。
アップデート:
ここでの回答が成功したので、しばらく前にゲームエコーサービスを再実装しました。githubはそれを隠しておくのに良い場所かもしれないと思われたので、ここにあります:それがあなたのために働くなら、素晴らしいです!そうでない場合は、私に知らせてください。現在の状態はせいぜい不安定だと思います。
簡単なアイデアは、ユーザースペースのLinuxカーネルのポートであるUser-Mode Linux(UML)を使用することです。これにより、複数の仮想Linuxシステム(ゲストと呼ばれる)を通常のLinuxシステム(ホストと呼ばれる)内でアプリケーションとして実行できます。
CPUとメモリで非常に軽いです。たとえば、UMLに基づくネットワークシミュレータであるNetkitを使用して、「あまり最近ではない」PCで同時に10を超えるUMLを使用しています。UMLはネイティブアプリケーションであり、重い仮想化(vmware、virtualbox、qemu)でも、準仮想化(xen)でもないため、軽量です。
ネットワークインターフェイスは(uml_switchを使用して)他のUMLマシンに接続できるように実装されているため、任意のMACアドレスを使用できます。これらのUMLマシンをシステムまたは外部ホストに接続する必要がある場合は、TUN/TAPを使用して仮想デバイスを作成できます。
PS:Windowsを使用している場合は、M$OS用のLinuxカーネルのポートであるCoLinixを試すことができます。UMLと同じ特性があるかどうかはわかりません。
2006 年 2 月 21 日午後 1 時 18 分、gil.elessarによる返信を参照してください。
.
ご参考までに:
Netsh インターフェイスの IP コンテキストでコマンドを使用して、TCP/IP プロトコル (アドレス、デフォルト ゲートウェイ、DNS サーバー、および WINS サーバーを含む) を構成し、構成および統計情報を表示できます。
ループバック アダプターを使用してみることができます。これを使用すると、任意の IP または MAC アドレスを設定できます。さまざまなネットワーク接続をエミュレートするのに最適です。
必要なデバイスの種類によっては、多数のVirtual PCエンジンに満足できる場合があります。オーバーヘッドが高いため(ネットワークインターフェイスだけでなくPC全体がエミュレートされるため)、1000台のマシンになってしまうことはありません。は「すぐに使える」ソリューションであり、各仮想PCは複数の仮想ネットワークカードを持つことができます。
コーディングの部分でデータリンク層を詳細に研究する必要があります-そうすれば、MACアドレスと通信のb / w macとipを取得する方法を理解できます
Cisco pakcet tracer を使用すると、GUI を使用してネットワーク トラフィックをエミュレートできます。誰もそれについて言及していないことに驚いています(ciscoデバイスに限定されていますが、標準はデバイス間で同じであるため、特定のデバイスのコマンドを学習します)。
通常の状況では ccna の生徒しか利用できないため、Google 検索を試してみてください。しかし、先生が許可してくれたのでコピーを保管しました。
または、誰かが自分のクラスのコピーをインターネットのどこかに投稿していることに気付くかもしれません。
車輪の再発明を始めないほうがいいと思います。この特定の問題には、ハードウェアとソフトウェアのソリューションがあります。また、ネットワーク負荷 (およびスループット) テストにも非常に適しています。
欠点は、そのようなデバイスが非常に高価であることです。