グラフィカルなWindows用ネットワークツールを開発する
第1回:アーキテクチャの決定と開発環境の整備

この連載では、Linux上で開発したEthernetエミュレータをWindowsプラットフォームに移植し、グラフィカルで使いやすいネットワークツールの作成を目指します。今回は、全体のアーキテクチャの決定と開発環境の整備です。

はじめに

はじめまして。数年前に私の記事をお読みになっていただいた読者の皆さんは、お久しぶりです。NTTPCコミュニケーションズの波多浩昭といいます。ネットワークエンジニアリングの仕事をやっています。

以前(数年前になりますが)ここで、いくつかのネットワークツールをLinuxベースでご紹介しました。Linuxはそのような簡単なツールを開発するには便利なOSでした。しかし、読者の皆さんからご指摘をいただきましたように、使う人の側に立てば、必ずしも便利というわけではなかったようです。

確かにLinuxのいろいろなディストリビューションも進化してグラフィカルにもなってきましたが、多くの人が利用するWindowsへのツール開発を試みることにしました。まずは、以前に開発したEthernetエミュレータのLineeを題材に、Windowsプラットフォームへの移植にトライします。

最初は準備ということで、全体のアーキテクチャの決定と開発環境の整備を行います。

LineeのWindows版Wlineeアーキテクチャ

Lineeの開発は4年前の記事でした。図1のとおり、2つのEthernetの間にLinuxマシンを挟んで、その間に遅延やフレームロスを発生させて、品質の悪いEthernetを再現します。通信ソフトウェア開発や、通信品質計測をする実験に利用できるソフトウェアツールでした。

Lineeは2つのNICを搭載するパソコンで動作するソフトウェアで、Linuxを通常インストールした状態で、特殊なハードウェアやソフトウェアの追加は一切必要がないよう組み上げました。ソフトウェア操作により、ネットワークインタフェースをプロミスカスモードという特殊なモードに変えて、通常は受信しない他人宛のEthernetフレームも取り込むという動作をやっていました。

Windowsでもこのモードは可能だったのですが、取り込めるデータはIPパケットでした。Hubを作るのには、Ethernetフレームをまるまる取り込む必要があったのですがMACアドレスヘッダを取り込むには、デバイスドライバから開発しなければなりませんでした。

今回は何でも自力で解決するのではなく、誰でも利用できるオープンソースの力を借りることにしました。そのソフトウェアは、皆さんご存知のWinpcapです。WinpcapはWireshark(旧Ethereal)というネットワークプロトコルアナライザにも使われているオープンスースのデバイスドライバです。

これだけWiresharkがネットワークエンジニアに普及しているのなら、Winpcapも普及しているはずです。それを利用させていただくことにしました。このWindows版LineeをWlineeと名づけました。

図2のとおり、Wlineeは2つのパーツから構成することにしました。ひとつめは、Winpcapを呼び出してHubの動作をするフレーム転送エンジンともいうものです。WinpcapがC言語を使って書かれており、特殊な構造体を利用していることと、フレーム転送動作は高速性が要求されるために、エンジンはC言語を使ってDLLとします。

もうひとつのパーツはエンジンを制御するGUI部分です。ここは開発の容易性を考慮してC#を利用します。C言語もC#言語も開発環境はMicrofost社から無償でダウンロードが出来ます。以下では必要となる開発環境、およびWinPcatのインストールを説明します。

執筆者のプロフィール

P.N.波多 浩昭(はた ひろあき)

NTTPCコミュニケーションズ ネットワーク事業部
ISPのバックボーンネットワークやVPNの企画設計に従事。

グラフィカルなWindows用ネットワークツールを開発する

第1回:アーキテクチャの決定と開発環境の整備
はじめに
Visual C++のインストール
VisualC#のインストール
第2回:WinpcapのPacket.dll APIの使い方
Winpcap開発環境の整備
アダプタを決定するためのAPI
アダプタの性質を決定するAPI
受信のためのAPI
Winpcapを使ってEthernetフレームモニタを作る
第3回:Ethernetエミュレータ「Linee」をWindowsに移植する
全体構成
DLLのアーキテクチャ
Windowsに移植するときの変更点(1)
Windowsに移植するときの変更点(2)
最新記事

2007-11-16

用語解説

知りたい用語を入力して検索ボタンをクリックしてください。

または、知りたい用語の頭文字をクリックしてください。

0~9 ABC DEF
GHI JKL MNO
PQR STU VWX
YZ あ行 か行
さ行 た行 な行
は行 ま行 や行
ら行 わ行  

PC Viewメール

毎週金曜日、PC Viewの特集記事の更新に合わせて、1週間の更新情報をテキストメールでお届けします。購読料はもちろん無料。お申し込みの前に会員規約顧客情報保護方針をご覧ください。(メールアドレスは半角でご記入ください。)

メールアドレス: