ページ更新: 2013-09-11 (水) (1260日前)

関連:

(2006-03-10作成)

ネットワーク エミュレータ(Network emulator)、帯域制御(Traffic control)・優先制御(Priority control) を行うソフトウェアについてのメモ。

ちなみに、自分の目的は、以下の状況のエミュレートして、自分が開発するプログラムに反映すること。

  • 帯域の制御
  • パケットの遅延(RTT:Round-Trip Time)のエミュレート
  • パケットの紛失(パケットロス)のエミュレート

目次

[編集]

情報源 #

[編集]

ネットワークエミュレータ #

[編集]

[Windows] Wlinee #

  • Wlinee (←技術メモ)
    • 開発環境 VisualC++/C#のインストール, C++によるDLLの作成と、C++、C#からのDLL呼び出し
    • WinpcapのPacket.dll APIの使い方
    • Line Engine DLL の製作
    • C#によるGUIの製作
  • Wlineeの使い方
    • 概要 / 準備 / インストールと使用方法, スクリーンショット付き
[編集]

メモ System.Collections.Hashtable.InsertでSystem.ArgumentExceptionが発生 (2009-07-10) #

wlinee 1.0.0 をインストールして実行してみたところ、次の例外が発生した。「続行(C)」押したら続行できたけど、以後の動作は試してない。 目的のNICがリストの中に表示されない(例外が起きてHashtableに入れられなかったのだろう)ので。

もう少し調べて、sourceforge.jpにチケットを投入するつもり。

(ソースコードを見てないけど、WinPCapかWinAPIのどちらかでインターフェイスをリストアップしてるだろうから、その部分を調べればよいはず)

Just-In-Time (JIT) デバッグを呼び出すための詳細については、
ダイアログ ボックスではなく、このメッセージの最後を参照してください。

************** 例外テキスト **************
System.ArgumentException: 項目は既に追加されています。辞書のキー: 'VMware Virtual Ethernet Adapter'  
追加されるキー: 'VMware Virtual Ethernet Adapter'
   場所 System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
   場所 System.Collections.Hashtable.Add(Object key, Object value)
   場所 wlinee.wlinee.Form1_Load(Object sender, EventArgs e)
   場所 System.Windows.Forms.Form.OnLoad(EventArgs e)
   場所 System.Windows.Forms.Form.OnCreateControl()
   場所 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   場所 System.Windows.Forms.Control.CreateControl()
   場所 System.Windows.Forms.Control.WmShowWindow(Message& m)
   場所 System.Windows.Forms.Control.WndProc(Message& m)
   場所 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   場所 System.Windows.Forms.ContainerControl.WndProc(Message& m)
   場所 System.Windows.Forms.Form.WmShowWindow(Message& m)
   場所 System.Windows.Forms.Form.WndProc(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** 読み込まれたアセンブリ **************
mscorlib
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.3082 (QFE.050727-3000)
    コードベース: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
wlinee
    アセンブリ バージョン: 1.0.0.0
    Win32 バージョン: 1.0.0.0
    コードベース: file:///C:/Program%20Files/wlinee/wlinee.exe
----------------------------------------
System.Windows.Forms
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.3053 (netfxsp.050727-3000)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.3053 (netfxsp.050727-3000)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.3053 (netfxsp.050727-3000)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
mscorlib.resources
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.3082 (QFE.050727-3000)
    コードベース: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
System.Windows.Forms.resources
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.3053 (netfxsp.050727-3000)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ja_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

************** JIT デバッグ **************
Just-In-Time (JIT) デバッグを有効にするには、このアプリケーション、
またはコンピュータ (machine.config) の構成ファイルの jitDebugging 
値を system.windows.forms セクションで設定しなければなりません。
アプリケーションはまた、デバッグを有効にしてコンパイルされなければ
なりません。

例:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

JIT デバッグが有効なときは、このダイアログ ボックスで処理するよりも、
ハンドルされていない例外はすべてコンピュータに登録された
JIT デバッガに設定されなければなりません。

このPCにはイーサネットアダプタは次の4つがある (VMware Workstation 6.5.2のアダプタが2つある)。

C:> ipconfig /all | findstr "Ethernet adapter"
Ethernet adapter VMware Network Adapter VMnet8:
        Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
Ethernet adapter VMware Network Adapter VMnet1:
        Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet1
Ethernet adapter LAN On Board:
Ethernet adapter Bluetooth:
[編集]

[Linux] linee #

A network programer's Home page - あるネットワークプログラマのホームページ

PC View : Network

書籍: いまどきのソケットプログラミング - 遊んで学ぶ、TCP/IPネットワークの奥義

linee-01.png

Open Source Conference 2004 (OSC2004)で説明聞いたので、試してみようと思う。 OSC2004の案内だと「linee(ラインイー)」と書いてあるだけなので、 たまたまブースを覗かなければ知る事がなかったよなあ……(OpenBlockSSが並んでたので覗いてみた)。 一言「イーサネットエミュレータ」って書いてあればよかったのに、と思う。

[編集]

[FreeBSD] dummynet (2006-03-10) #

FreeBSD上で動作するソフトウェア。

手元にFreeBSD機がなくても、1フロッピー版が用意されているので便利。

A PicoBSD floppy
To conclude... if you want to try dummynet, here is a bootable floppy image of a system with FreeBSD, bridging, ipfw, dummynet, natd, ppp, drivers for a few interfaces, and accessible via telnet.

[編集]

The Network Simulator - ns-2 #

[編集]

The ns-3 network simulator (2010-02-20) #

[編集]

[Linux] NIST Net (2006-03-10) #

  • Linux PC用
  • dummynet に似ている?
[編集]

[Linux] Netem (2006-03-10) #

[編集]

Lenet (2007-08-27) #

以下、引用:

Lenetとは?  	

Lenetはブリッジタイプのネットワークエミュレータです.
基本的な機能として、あるネットワークの特性(パケットロス、遅延など)を
ローカルの環境でエミュレートする機能を持っています.

また,ネットワーク特性の変化を示したシナリオファイルを入力することで
ネットワーク特性を再現する機能を持ちます.
そして,新たな機能としてシナリオを入力することに加え,シナリオをキャプチャする
機能を持ちます.

もう一つの特徴として,Lenetはユーザランドのアプリケーションなので
カーネルへ実装されているものと比べると手軽に様々な場面で利用することができます.

動作環境はLinux

[編集]

OPNET (2010-02-20) #

自分が関わる範囲の要素開発テーマ・実用化テーマでは使わない気がするけど、念のためメモっておく。

[編集]

ALTQ #

[編集]

WANEM #

(2013-09-11)

[編集]

帯域制御、優先制御 #

リソース(ネットワーク、サーバ、プロセス)の配分を制御するために、次の機能を持つソフトウェア

  • 帯域の制御
  • 優先度の制御
[編集]

[Linux] iproute+tc #

iproute+tc
http://www.linux.or.jp/JF/JFdocs/traffic-control.html

  • 送受信とも帯域制限が可能。
  • ポートごとに制御が可能。
  • 既存のI/F (eth0など) に対して設定する。
[編集]

[Linux] shaper #

shaper
http://search.luky.org/linux-users.5/msg00665.html

  • 送信のみ、帯域制限が可能。
    • 低速回線のエミュレートには不向き。
  • 新しいI/F (shaper0など) を作り、routeを変更して使う。
[編集]

[Windows] WinTC Traffic Controller #

2006-03-13 あてずっぽうだが、

あたりの仕組みを使ってる?

  • Windows 2000, Windows XPの標準機能 (QoS Packet Scheduler) を用いているので、他のソフトとのコンフリクトが少ない(かもしれない)
  • コマンドラインから操作できるので、テストの自動化ができるかもしれない。
  • 設定ファイルを使うので、設定の記録・再現が容易だと思われる。
[編集]

[Windows] NEGiES #

(2005-12-16)

NEGiES, ねじえす。

[編集]

トラフィックジェネレータ (2006-03-16) #

[編集]

D-ITG, Distributed Internet Traffic Generator (2006-03-16) #

D-ITG, Distributed Internet Traffic Generator
http://www.grid.unina.it/software/ITG/

[編集]

Engage Packet builder (2006-03-16) #

Engage Packet builder - Scriptable libnet-based packet builder
http://www.engagesecurity.com/products/engagepacketbuilder/

[編集]

未調査(あるいは一部の製品だけ調査) #

[編集]

Graphical Network Simulator (2010-01-22) #

[編集]

Cisco Nexus 1000V (2010-01-22) #

ネットワークのエミュレータじゃないけど、ついでに。

[編集]

ShunraVE (2008-01-25) #

製品全般:

Virtual Enterprise Desktop (Standard, Professional):

  • Shunra VE Desktop Standard Edition ... ソフトウェア版、個々のPCにインストールする ($499, 試用版あり)
  • Shunra VE Desktop Professional Edition ... ソフトウェア版、個々のPCにインストールする

Virtual Enterprise Small Business:

  • Shunra VE SMB Edition (SMall Business) ... ソフトウェア版エミュレータ

Virtual Enterprise:

[編集]

Ethdelay (2010-03-02) #