(57)【要約】【課題】従来のネットワーク機能プロキシ部では、ホストOSのネットワーク層にパケットデータを届けることができなかったため、組み込みOSシミュレータとホストOS上のネットワークアプリケーションの通信が不可能であった。【解決手段】ネットワーク機能プロキシ部に、ホストOSのネットワーク層にネットワークデバイスドライバを装ってパケットデータを受け渡すことのできるブリッジモジュールと、組み込みOSシミュレータから送信されるパケットデータの受け渡し先を、ホストOSか外部ネットワークかを判断して分配するパケット分配部を追加する。【選択図】図１
2007228098.tif 000002
【特許請求の範囲】
【請求項１】
汎用コンピュータの汎用OS上で動作する組み込みOSシミュレータのネットワーク機能プロキシであって、
ネットワーク機能の代替機能を実現するネットワーク機能プロキシ部と、
前記組み込みOSシミュレータから送信されるパケットデータの受け渡し先を、前記組み込みOSシミュレータが動作している汎用コンピュータか外部ネットワークかを判断するパケット分配部と、
前記汎用コンピュータの汎用OSのネットワーク層に対してネットワークデバイスドライバを装ってパケットデータを受け渡す機能を有するブリッジモジュールと
を含むことを特徴とするネットワーク機能プロキシ。
【請求項２】
前記パケット分配部は、パケットの宛先アドレスがグループアドレスの場合には、該パケットを、前記ブリッジモジュールを利用して前記汎用OSのネットワーク層に受け渡すとともに外部ネットワークにも送出し、
パケットの宛先アドレスが前記汎用コンピュータのアドレスであった場合には、前記パケットを、前記ブリッジモジュールを利用して前記汎用OSのネットワーク層に受け渡し、
パケットの宛先アドレスが、上記いずれにも該当しない場合には、前記パケットを、外部ネットワークに送出するようにパケット分配動作を行うことを特徴とする請求項１に記載のネットワーク機能プロキシ。
【請求項３】
前記パケット分配部は、パケットの宛先アドレスが前記汎用コンピュータのアドレス、もしくはグループアドレスであった場合には、前記パケットを、前記ブリッジモジュールを利用して前記汎用OSのネットワーク層に受け渡すとともに外部ネットワークにも送出し、
パケットの宛先アドレスが上記に該当しない場合には、前記パケットを、外部ネットワークに送出するようにパケットの分配動作を行うことを特徴とする請求項１に記載のネットワーク機能プロキシ。
【請求項４】
前記パケット分配部は、全てのパケットに対して、前記ブリッジモジュールを利用して前記汎用OSのネットワーク層に受け渡すとともに、外部ネットワークにも送出するようにパケット分配動作を行うことを特徴とする請求項１に記載のネットワーク機能プロキシ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、汎用コンピュータ上での組み込み機器用のソフトウェア開発を支援する組み込みOSシミュレータのネットワーク機能プロキシに関する。
【背景技術】
【０００２】
近年、組み込み機器の制御用ソフトウェアが複雑化している反面、開発期間の短縮も要求されてきている。
そこで、組み込み機器用のソフトウェア開発を効率的に進めるために、開発しているターゲットハードウェアが完成する前から、汎用コンピュータ上で組み込みソフトウェアの開発を先行して行うことが可能な組み込みOSシミュレータが有用となっている。
【０００３】
組み込みOSシミュレータでは、ターゲットハードウェアが持つ機能を、汎用コンピュータ上のデバイスで代替機能を用意することによって、よりターゲットハードウェアに近い環境を実現する。
イーサネット（登録商標）などのネットワーク機能に関しても、組み込みOSシミュレータが送信するパケットを実ネットワークに送出し、実ネットワークからの組み込みOSシミュレータ宛てのパケットを取り込んで組み込みOSシミュレータに受け渡す動作を行うネットワーク機能プロキシ部を用意することで実現している。
【０００４】
このネットワーク機能プロキシ部について、以下詳細に説明する。
組み込みOSシミュレータを、ネットワーク機能を利用して使用する場合の構成を図２に示す。
組み込みOSシミュレータ203およびネットワーク機能プロキシ部204は、汎用コンピュータ上のホストOS 201のアプリケーションとして動作する。
ここで、組み込みOSシミュレータ203のネットワークアプリケーション209と実ネットワーク202が通信する仕組みを説明する。
【０００５】
ネットワーク機能プロキシ部204は、実ネットワーク202を流れる全てのパケットを取り込み、その中から組み込みOSシミュレータ203が受け取るべきものだけを選択して、組み込みOSシミュレータ用ネットワークドライバ207に受け渡す。OSシミュレータ用ネットワークドライバ208に渡されたパケットは、組み込みOSネットワークスタック208で適当なプロトコルに則って処理され、ネットワークアプリケーション209が受信することになる。
【０００６】
逆に、ネットワークアプリケーション209が送信したデータは、適当なプロトコルに則って組み込みOSネットワークスタック208を介してパケット化され、組み込みOSシミュレータ用ネットワークドライバ207に渡される。組み込みOSシミュレータ用ネットワークドライバ207は、ネットワーク機能プロキシ部204にパケットを受け渡す。
ネットワーク機能プロキシ部204は、汎用コンピュータのネットワークデバイス206を通じて、実ネットワーク202にパケットを送出する。
【０００７】
ここで、ネットワーク機能プロキシ部204をさらに詳細に説明するため、ネットワーク機能プロキシ部の構成の詳細を図４に示す。
ネットワーク機能プロキシ部401は、送信処理部402と受信処理部403とからなる。
さらに、送信処理部402は、ドライバ受信部402とネットワーク送信部403からなり、受信処理部403は、ドライバ送信部406、ネットワーク受信部407、パケットフィルタ408とからなる。
【０００８】
送信処理部402では、ドライバ受信部402が組み込みOSシミュレータ用ネットワークドライバからパケットを受け取り、そのパケットをそのまま、ネットワーク送信部403から実ネットワークに送信する処理を行う。
受信処理部403では、ネットワーク受信部407が実ネットワークからネットワークデバイスに到着する全てのパケットを取り込み、パケットフィルタ408で、組み込みOSシミュレータが受け取るべきパケットのみを抜き出して、ドライバ送信部406から組み込みOSシミュレータ用ネットワークドライバに受け渡す処理を行う。
【０００９】
ここで、上記のネットワークデバイスからの全パケットの取り込みやパケットの抜き出しの処理は、パケットキャプチャライブラリを利用して簡易に実現可能である。
パケットキャプチャライブラリとは、ネットワークデバイスドライバとの間に介在して、ネットワークデバイスが受信可能なパケットを取り込む機能等を提供するライブラリであり、多くの汎用的なOSに用意されている。
【００１０】
このように、ネットワーク機能プロキシ部204を用意することによって、組み込みOSシミュレータ203上のネットワークアプリケーション209が実ネットワーク202とデータ（パケット）のやりとりが可能になる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記説明した構成のみであると、組み込みOSシミュレータ203の送出したパケットは、組み込みOSシミュレータ203自身が動作しているホストOS 201に対しては届けることができないため、組み込みOSシミュレータとホストOSとの間ではネットワーク通信が不可能であった。
【００１２】
したがって、組み込みOSシミュレータ上で開発しているネットワークアプリケーションに対して動作試験を行う際には、図3に示すように、組み込みOSシミュレータ304が動作している汎用コンピュータ303とは別に汎用コンピュータ302を用意する。そして、その汎用コンピュータ302上で試験用のネットワークアプリケーションを動作させて、実ネットワーク301を通じて、開発中のネットワークアプリケーション307の動作試験を行う必要がある。一対一で動作するネットワークアプリケーションの動作試験のような場合でも、２台の汎用コンピュータが必要となり、コスト的および試験を行うオペレータの操作性の面からも非効率的であった。
【００１３】
しかしながら、OSシミュレータからのパケットがホストOSに届く経路を実現するために、ホストOSの既存のネットワークデバイスドライバに変更を加えることは、ネットワークデバイスドライバがネットワークデバイスのハードウェア毎に存在することもあり、汎用性・保守性が非常に悪化する。
【００１４】
そこで本発明では、組み込みOSシミュレータとシミュレータ自身が動作している汎用コンピュータのホストOSとの間で通信が可能となるネットワーク機能プロキシ部を、ホストOSの既存のネットワークデバイスドライバに影響を与えることなく実現することを目的とする。
【課題を解決するための手段】
【００１５】
本発明のネットワーク機能プロキシは、汎用コンピュータの汎用OS上で動作する組み込みOSシミュレータのネットワーク機能プロキシであって、ネットワーク機能の代替機能を実現するネットワーク機能プロキシ部と、前記組み込みOSシミュレータから送信されるパケットデータの受け渡し先を、前記組み込みOSシミュレータが動作している汎用コンピュータか外部ネットワークかを判断するパケット分配部と、前記汎用コンピュータの汎用OSのネットワーク層に対してネットワークデバイスドライバを装ってパケットデータを受け渡す機能を有するブリッジモジュールとを含む。
【発明の効果】
【００１６】
本発明のネットワーク機能プロキシ部によれば、組み込みOSシミュレータとシミュレータ自身が動作している汎用コンピュータのホストOSとの間で通信が可能となるネットワーク機能プロキシ部を、ホストOSの既存のネットワークデバイスドライバに影響を与えることなく実現する。これにより、組み込みOSシミュレータ上でのネットワークアプリケーションの開発の利便性を大きく向上させることができる。
【発明を実施するための最良の形態】
【００１７】
（第１の実施形態）
本発明の第１の実施形態について説明する。
本発明のネットワーク機能プロキシ部の構成を図５に示す。
ネットワーク機能プロキシ部501は、送信処理部502、受信処理部503、ブリッジモジュール510とからなる。
【００１８】
受信処理部503は、従来の場合と同様に、ネットワーク受信部502が実ネットワークからネットワークデバイスに到着する全てのパケットを取り込む。そして、パケットフィルタ508で、組み込みOSシミュレータが受け取るべきパケットのみを抜き出す。これにより、ドライバ送信部506から組み込みOSシミュレータ用ネットワークドライバに受け渡す処理を行う。
【００１９】
送信処理部502は、ドライバ受信部402が組み込みOSシミュレータ用ネットワークドライバからパケットを受け取ると、パケット分配部509において宛先アドレスを検査する。そして、その検査結果と分配ルールに従って、ネットワーク送信部503から実ネットワークに送信するか、ブリッジモジュール510に受け渡すか、同時に両方に受け渡すという処理を行う。
ここで、パケット分配部509が従う分配ルールは、以下のものである（図６）。
（１）パケットの宛先アドレスが、ブロードキャストアドレスなどのグループアドレスの場合には、そのパケットをネットワーク送信部とブリッジモジュールの両方に受け渡す。
（２）パケットの宛先アドレスが、組み込みOSシミュレータの動作している汎用コンピュータのネットワークデバイスのアドレスであったなら、そのパケットをブリッジモジュールのみに受け渡す。
（３）パケットの宛先アドレスが、上記のどちらにも該当しない場合には、そのパケットをネットワーク送信部のみに受け渡す。
【００２０】
ブリッジモジュール510は、パケット分配部509からパケットを受け取ると、ホストOSのネットワークI/F部に対して、ネットワークデバイスドライバを装ってパケットを受け渡す機能を持つ。
ブリッジモジュールがネットワークデバイスドライバを装うには、ホストOSの種類によって多少の実装方法は異なるが、ホストOSのネットワークデバイスドライバにおいてパケットを受信した際に用いられるシステムコールを用いればよい。
【００２１】
このようなネットワーク機能プロキシ部を用いて、組み込みOSシミュレータを利用した場合の全体構成を図１に示す。
この構成で、組み込みOSシミュレータ103上のネットワークアプリケーション109とホストOS 101上のネットワークアプリケーション112が通信する仕組みを説明する。
【００２２】
ホストOS 101上のネットワークアプリケーション112が送信したデータは、適当なプロトコルに則ってホストOS 101のネットワークスタック111を介してパケット化される。そして、ネットワークI/F層110、ネットワークデバイスドライバ105を経て実ネットワーク102に向けて送信される。
【００２３】
そのパケットもネットワーク機能プロキシ部104に取り込まれ、組み込みOSシミュレータ103が受け取るべきものであれば、組み込みOSシミュレータ用ネットワークドライバ107に渡される。
OSシミュレータ用ネットワークドライバ107に渡されたパケットは、組み込みOSネットワークスタック108で適当なプロトコルに則って処理され、OSシミュレータ103上のネットワークアプリケーション109が受信する。
【００２４】
逆に、OSシミュレータ103上のネットワークアプリケーション109が送信したデータは、適当なプロトコルに則って組み込みOSネットワークスタック108を介してパケット化され、組み込みOSシミュレータ用ネットワークドライバ107に渡される。組み込みOSシミュレータ用ネットワークドライバ107は、ネットワーク機能プロキシ部204にパケットを受け渡す。
【００２５】
ネットワーク機能プロキシ部204のパケット分配部114において、ホストOS 101宛てのパケットと判断されたパケットは、ブリッジモジュール113に渡される。
ブリッジモジュール113は、ホストOS 101のネットワークI/F層110に対して、ネットワークデバイスドライバを装って受け取ったパケットを受け渡す。ネットワークI/F層110に渡されたパケットは、実ネットワークからきたものとして、適当なプロトに則ってホストOSネットワークスタック111で処理されて、ホストOS 101上のネットワークアプリケーション112が受信する。
【００２６】
このように、組み込みOSシミュレータ上のネットワークアプリケーションとその組み込みOSシミュレータが動作している汎用コンピュータのホストOSのネットワークアプリケーションとが通信可能になる。これにより、1台の汎用コンピュータのみで開発中の組み込みネットワークアプリケーションの動作試験を行うことが可能となる。
【００２７】
（第２の実施形態）
第１の実施形態とは、パケット分配部の動作が異なる実施形態について説明する。
開発中のネットワークアプリケーションの動作試験・デバッグ作業を行う際には、図７に示すようにネットワークモニタリング装置をネットワークに接続する。そして、ネットワーク上を流れるパケットを取り込み、動作試験やデバッグ作業の参考にするといったことが行われる。
【００２８】
第１の実施形態の場合、組み込みOSシミュレータからシミュレータが動作しているホストOSに対して送信したパケットはネットワークには出てこないため、ネットワークモニタリング装置には取り込まれることはない。
【００２９】
そこで、構成は図５に示される第１の実施形態と同じくするが、パケット分配部509が従う分配ルールを、以下のようにする（図８）。
（１）パケットの宛先アドレスが、グループアドレス、もしくは組み込みOSシミュレータの動作している汎用コンピュータのネットワークデバイスのアドレスである場合には、そのパケットをネットワーク送信部とブリッジモジュールの両方に受け渡す。
（２）パケットの宛先アドレスが、上記に該当しない場合には、そのパケットをネットワーク送信部のみに受け渡す。
【００３０】
これにより、組み込みOSシミュレータからシミュレータが動作しているホストOSに対して送信されたパケットも、ネットワークモニタリング装置に取り込まれて解析可能となる。
【００３１】
（第３の実施形態）
第１、第２の実施形態とは、パケット分配部の動作が異なる実施形態について説明する。
パケット分配部の処理を簡潔化するために、次のような実施形態も考えられる。
構成は図５に示される第１の実施形態と同じくするが、パケット分配部では全てのパケットに対して、ネットワーク送信部とブリッジモジュールの両方に受け渡すようにする。
【００３２】
これにより、パケット分配部におけるアドレスの条件判定が不必要になり、パケット分配部の実装が簡易になる。
但し、ホストOSのネットワークスタックに宛先エラーのパケットを廃棄する負荷が発生する。
【図面の簡単な説明】
【００３３】
【図１】本発明のネットワーク機能プロキシ部を用いて組み込みOSシミュレータを使用した場合の構成図である。
【図２】従来のネットワーク機能プロキシ部を用いて組み込みOSシミュレータを使用した場合の構成図である。
【図３】従来のネットワーク機能プロキシ部を用いて組み込みOSシミュレータ上のネットワークアプリケーションの動作試験を行う場合の構成の一例の図である。
【図４】従来のネットワーク機能プロキシ部の構成図である。
【図５】本発明のネットワーク機能プロキシ部の構成図である。
【図６】本発明の第１の実施形態におけるパケット分配部の動作を表したフローチャートである。
【図７】従来の構成でネットワークモニタリング装置を利用する一例の図である。
【図８】本発明の第２の実施形態におけるパケット分配部の動作を表したフローチャートである。
【符号の説明】
【００３４】
101,201  …  ホストOS
102,202,301,701  …  ネットワーク
302,303,702,703  …  汎用コンピュータ
103,203,304,704  …  組み込みOSシミュレータ
104,204,305,401,501,705  …  ネットワーク機能プロキシ部
105,205  …  ネットワークデバイスドライバ
106,206  …  ネットワークデバイス
107,207  …  組み込みOSシミュレータ用ネットワークドライバ
108,208  …  組み込みOSシミュレータ  ネットワークスタック
109,209,307,707  …  組み込みOSシミュレータ上のネットワークアプリケーション
110  …  ネットワークI/F層
111  …  ホストOS  ネットワークスタック
112  …  ホストOS上のネットワークアプリケーション
306,706  …  汎用OS上のネットワークアプリケーション
402,502  …  ネットワーク機能プロキシ部の送信処理部
403,503  …  ネットワーク機能プロキシ部の受信処理部
404,504  …  ネットワーク機能プロキシ部のドライバ受信部
405,505  …  ネットワーク機能プロキシ部のネットワーク送信部
406,506  …  ネットワーク機能プロキシ部のドライバ送信部
407,507  …  ネットワーク機能プロキシ部のネットワーク受信部
408,508  …  ネットワーク機能プロキシ部のパケットフィルタ
114,509  …  パケット分配部
113,510  …  ブリッジモジュール
708  …  ネットワークモニタリング装置
【図１】
2007228098.tif 000003
【図２】
2007228098.tif 000004
【図３】
2007228098.tif 000005
【図４】
2007228098.tif 000006
【図５】
2007228098.tif 000007
【図６】
2007228098.tif 000008
【図７】
2007228098.tif 000009
【図８】
2007228098.tif 000010