(57)【要約】【課題】ネットワークインターフェイスの動作モードによって生じる特定の処理に対する負荷の影響を軽減することを目的とする。【解決手段】ネットワークインターフェイスを、全てのパケットを受信するプロミスキャスモードと、ネットワークアドレスの一部分を用いて受信するパケットを選別するフィルタモードと、自分宛パケット、マルチキャスト宛パケット、ブロードキャスト宛パケットを受信する通常受信モードとを含むモードで動作可能なネットワークインターフェイスのモードを制御するにおいて、プロミスキャスモードへ遷移させる命令が発行された場合に、特定の処理が動作中でなければネットワークインターフェイスの動作モードをプロミスキャスモードへ遷移させ、特定の処理が動作中であれば動作モードをフィルタモードへ遷移させる。また、特定の処理の終了時にフィルタモードで動作していた場合は、動作モードをプロミスキャスモードへ遷移させる。【選択図】    図１
2010220098.tif 000002
【特許請求の範囲】
【請求項１】
全てのパケットを受信するプロミスキャスモードと、自分宛パケット、マルチキャスト宛パケット、ブロードキャスト宛パケットを受信する通常受信モードとを含むモードで動作可能なネットワークインターフェイスを制御する制御装置であって、
前記プロミスキャスモードへ遷移させる命令が発行された場合に、特定の処理が動作中でなければ前記ネットワークインターフェイスの動作を前記プロミスキャスモードへ遷移させ、前記特定の処理が動作中であれば前記ネットワークインターフェイスの動作をネットワークアドレスの一部分を用いて受信するパケットを選別するフィルタモードへ遷移させる手段と、
前記特定の処理の終了時において前記ネットワークインターフェイスが前記フィルタモードで動作していた場合、前記ネットワークインターフェイスの動作を前記プロミスキャスモードへ遷移させる手段とを備えることを特徴とするネットワークインターフェイス制御装置。
【請求項２】
前記ネットワークインターフェイスを前記プロミスキャスモードで動作させているときに前記特定の処理が開始された場合に、前記ネットワークインターフェイスの動作を前記フィルタモードへ遷移させる手段を更に備えることを特徴とする請求項１に記載のネットワークインターフェイス制御装置。
【請求項３】
前記フィルタモードでは、所定のプレフィックスを持つネットワークアドレスを持つパケットを選別することを特徴とする請求項１または２に記載のネットワークインターフェイス制御装置。
【請求項４】
前記フィルタモードでは、イーサネット（登録商標）ＭＡＣアドレスの先頭の２４bitであるＯＵＩに基づいて受信すべきパケットを選別することを特徴とする請求項３に記載のネットワークインターフェイス制御装置。
【請求項５】
前記ネットワークインターフェイスが前記プロミスキャスモードまたは前記フィルタモードで動作中に、ＣＰＵの前記ネットワークインターフェイスを介した通信に関わる処理負荷が閾値を越えた場合に、前記ネットワークインターフェイスの動作を前記通常受信モードに遷移させる手段を更に備えることを特徴とする請求項１乃至４のいずれか１項に記載のネットワークインターフェイス制御装置。
【請求項６】
前記プロミスキャスモードで動作している間に受信したネットワークアドレスのプレフィックスに基づいて前記所定のプレフィックスを設定する設定手段を更に備えることを特徴とする請求項３または４に記載のネットワークインターフェイス制御装置。
【請求項７】
全てのパケットを受信するプロミスキャスモードと、自分宛パケット、マルチキャスト宛パケット、ブロードキャスト宛パケットを受信する通常受信モードとを含むモードで動作可能なネットワークインターフェイスを制御する制御方法であって、
前記プロミスキャスモードへ遷移させる命令が発行された場合に、特定の処理が動作中でなければ前記ネットワークインターフェイスの動作を前記プロミスキャスモードへ遷移させ、前記特定の処理が動作中であれば前記ネットワークインターフェイスの動作をネットワークアドレスの一部分を用いて受信するパケットを選別するフィルタモードへ遷移させる工程と、
前記特定の処理の終了時において前記ネットワークインターフェイスが前記フィルタモードで動作していた場合、前記ネットワークインターフェイスの動作を前記プロミスキャスモードへ遷移させる工程とを備えることを特徴とするネットワークインターフェイス制御方法。
【請求項８】
コンピュータを請求項１乃至６のいずれか１項に記載のネットワークインターフェイス制御装置が備える各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークインターフェイスの動作モードを制御するネットワークインターフェイス制御装置及び制御方法に関する。
【背景技術】
【０００２】
通常、ネットワークインターフェイスは自ホスト宛かマルチキャスト宛、ブロードキャスト宛以外の（他ノード宛などの）パケットを破棄している。これは、伝送路上に流れるパケットをすべて受信処理した場合、ネットワークインターフェイスを含む装置のリソースに膨大な処理負荷が発生するからである。一方でアプリケーションによっては自ホスト宛やマルチキャスト宛、ブロードキャスト宛以外のパケットの受信が必要な場合もある。その場合、ネットワークインターフェイスのパケット受信モードを全パケット受信モード（プロミスキャスモード）に遷移させることで他ホスト宛パケットを受信処理できるようになる。
【０００３】
しかし、プロミスキャスモードにてネットワークインターフェイスを動作させた場合、前述のように受信処理負荷が増大する。そこで、受信負荷増大を回避するための方式として、アプリケーションが必要とする間だけネットワークインターフェイスをプロミスキャスモードに遷移させる方式が広く取られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３０３９９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上のように、ネットワークインターフェイスの動作モードを変更させる手法として、アプリケーションが必要とする期間だけネットワークインターフェイスをプロミスキャスモードに設定する方法がある。一方でプリンタなど組み込み機器において、印刷などのメイン業務処理実行をインターフェイスの動作モードによって妨げることができない状況が発生しうる。たとえばプリンタにおいて、印刷中にＬＬＴＤレスポンダ（ネットワークインターフェイスをプロミスキャスモード化するアプリケーション）が稼動し、ネットワークインターフェイスがプロミスキャスモードに遷移した場合などがこれにあたる。なお、ＬＬＴＤとは、Link Layer Topology Discoveryである。プリンタにおいて印刷処理の実施中は他のプロセスによって印刷プロセスの使用できるリソースが減少することは看過できない。ネットワークインターフェイスがプロミスキャスモード化することもリソース減少の要因のひとつである。
【０００６】
このことから、メイン業務処理を妨げない点を考慮したネットワークインターフェイス動作モード制御の仕組みが必要であった。また、その場合にはメイン業務処理への影響を最小限におさえつつ、ネットワークインターフェイスモードの変更を必要とするアプリケーションも同時に動作できることが望ましい。
【０００７】
本発明は、ネットワークインターフェイスの動作モードによって生じるメイン業務処理への負荷の影響を軽減することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明の一態様によるネットワークインターフェイス制御装置は以下の構成を備える。すなわち、
【発明の効果】
【０００９】
本発明によれば、任意のタイミングでネットワークインターフェイスモードを切替えても、メイン業務処理など処理優先度の高い特定の処理のパフォーマンスの低下を抑えることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施形態によるネットワークプリンタのシステム構成例を示すブロック図である。
【図２】プロセステーブルのデータ構成例を示す図である。
【図３】ネットワークインターフェイスモードの切替処理を説明するフローチャートである。
【図４】プレフィックスモードの設定処理を示すフローチャートである。
【図５】ネットワークインターフェイスモード監視の処理を示すフローチャートである。
【図６】プレフィックステーブル学習処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
以下では、本発明のネットワークインターフェイス制御装置を有効に機能させる一実施形態として、ネットワークプリンタへの適用例を示す。
【００１２】
まず、本実施形態によるネットワークプリンタにおけるシステム構成の概要について説明する。図１は、実施形態によるネットワークプリンタのシステム構成例を示すブロック図である。本実施形態のシステムは外部の通信端末２と有線ＬＡＮ（または無線ＬＡＮ）によってパケット通信が可能な印刷機１である。印刷機１は、記録媒体への印刷を行う印刷デバイス１０４とこれを制御する印刷処理部１０１を有する。印刷処理部１０１は印刷プロセス１１０を実行することにより印刷デバイス１０４による印刷を実行する。通信処理部１０２は、ネットワークインターフェイス１０６及びこれを制御するネットワークインターフェイス制御部１０３を用いて、外部の通信端末２との間の通信を実現する。例えば、通信処理部１０２は、ネットワークインターフェイス１０６を通常受信モード、プロミスキャスモード、プレフィックスモードのいずれかで動作するように制御する。ネットワークインターフェイス制御部１０３は、プレフィックスモードにおける受信フィルタのためのプレフィックステーブル１１３を有する。プレフィックステーブル学習部１０７は、「プロミスキャスモード」における受信パケットを監視することによりプレフィックステーブル１１３を設定する。プロセス管理部１０５は、印刷機１において実行される各種プロセスを管理し、プロセス情報を管理するためのプロセステーブル１１２を生成する。なお、通信処理部１０２は、ＬＬＴＤ（LinkLayer Topology Discovery）サービスを提供するＬＬＴＤプロセス１１１を備えている。
【００１３】
プロセス管理部１０５は印刷機１内で動作するプロセスの動作状況を管理する機能をもち、プロセスの動作状況を示すプロセステーブル１１２（図２参照）を保持する。印刷処理部１０１は通信処理部１０２を介して印刷データを取得し、印刷プロセス１１０にて印刷情報を作成し、印刷デバイス１０４に印刷命令を出す。印刷デバイス１０４は印刷処理部１０１からの命令を受け、印刷を実行する。
【００１４】
通信処理部１０２はネットワークインターフェイス１０６にて受信した情報を各プロセスに渡す機構を持つ。また、通信処理部１０２のＬＬＴＤプロセス１１１は、その動作中にネットワークインターフェイス制御部１０３に対してプロミスキャスモード遷移命令（図３参照）を発行する。このとき、ＬＬＴＤプロセス１１１が必要とするパケットは特定のＯＵＩ（Organizationally Unique Identifier：イーサＭＡＣアドレスの先頭２４bitのベンダ固有識別子）をもつＭＡＣアドレス宛のものがほとんどである。したがって、ネットワークインターフェイス１０６がプロミスキャスモードで受信すべきところを、特定のＯＵＩをもつＭＡＣアドレス宛のパケットを受信できるモード（プレフィックスモード）で動作してもＬＬＴＤプロセス１１１の処理への影響は小さい。また、通信処理部１０２のＬＬＴＤプロセス１１１はプロミスキャスモードで動作する必要がなくなると（例えばＬＬＴＤプロセス１１１を中止、もしくは終了する場合）、ネットワークインターフェイス制御部へプロミスキャスモードＯＦＦ命令を発行する。
【００１５】
上述したように、ネットワークインターフェイス１０６は少なくとも、プロミスキャスモード、プレフィックスモード、通常受信モードの３つのパケット受信モードで動作可能である。プロミスキャスモードはネットワークインターフェイス１０６に到達したすべてのパケットを受信するモードである。通常受信モードは自分宛パケット、マルチキャスト宛パケット、ブロードキャスト宛パケットを受信するモードである。プレフィックスモードはネットワークインターフェイス１０６のＭＡＣ層（Media Access Control）を制御するハードウエア回路に対して受信フィルタを設定するモードである。プレフィックスモードにおいて、ネットワークインターフェイス制御部１０３は、プレフィックステーブル１１３に設定された所定のプレフィックスを持つパケットと通常受信モードで受信するパケットとを受信する。なお、フィルタにはイーサネット（登録商標）ＭＡＣアドレスのＯＵＩの指定ができるものとするが、これに限られるものではない。例えば、フィルタは他のプロトコルのアドレスのプレフィックス情報でもよい。すなわち、ネットワークアドレスの一部分を用いて受信するパケットを選別するモード（フィルタモード）をプレフィックスモードの代わりに用いることができる。ネットワークインターフェイス制御部１０３は、ネットワークインターフェイス１０６の動作モードを、上述したモードのいずれかに設定する。
【００１６】
プレフィックステーブル１１３は、図６に示すプレフィックステーブル学習フローにより、プロミスキャスモードにおける受信パケットに基づいて設定される。ここで、図６に示されるプレフィックステーブル学習フローについて説明しておく。ネットワークインターフェイス制御部１０３は、ネットワークインターフェイス１０６がプロミスキャスモードで動作している間（Ｓ４０１）、プレフィックステーブルに関する学習処理を行う。ネットワークインターフェイス制御部１０３は、プロミスキャスモード中にパケットを受信すると、当該パケットのプレフィックスがすでにプレフィックステーブル１１３に存在するか確認する（Ｓ４０２、Ｓ４０３）。受信パケットのプレフィックスがプレフィックステーブル１１３に存在しない場合は、当該受信パケットのプレフィックスをプレフィックステーブル１１３へ登録する（Ｓ４０４）。なお、図６の処理フロー以外の方法を用いてプレフィックステーブルを設定するようにしても構わない。例えば、キーボード等からプレフィックス値を手入力することによりプレフィックステーブルを設定してもよい。
【００１７】
次に、ネットワークインターフェイス制御部１０３（以下、制御部１０３と記載する）によるネットワークインターフェイスモードの切替処理に関して、図３〜図５を参照して説明する。制御部１０３は、まず、ネットワークインターフェイス１０６を通常受信モードで動作するように設定する（Ｓ１０１）。制御部１０３は、各プロセスよりネットワークインターフェイス１０６のプロミスキャスモードへの遷移命令が発行されると、印刷機１にとって処理優先度の高い特定のプロセス（本例では印刷プロセス１１０）が動作しているかを確認する（Ｓ１０２、Ｓ１０３）。なお、プロミスキャスモードへの遷移命令を発行するプロセスとしては、ＬＬＴＤプロセス１１１やネットワークインターフェイスモード監視等のプロセスがあげられる。また、制御部１０３は、プロセステーブル１１２（図２）を参照することにより、印刷プロセス１１０が動作中であるか停止中であるかを確認する。
【００１８】
印刷プロセス１１０が動作中である場合、ネットワークインターフェイス１０６をプレフィックスモードに遷移させるために、プレフィックスモード遷移命令を発行する（Ｓ１０４）。そして、後述のプレフィックスモード設定処理の完了後、制御部１０３は、ネットワークインターフェイスモード監視命令を発行する（Ｓ１０７）。一方、印刷プロセス１１０が動作していない場合、制御部１０３は、ネットワークインターフェイス１０６をプロミスキャスモードへ遷移させる（Ｓ１０５）。そして、制御部１０３は、上述したプレフィックステーブル学習フロー（図６）を起動する（Ｓ１０６）と共に、ネットワークインターフェイスモード監視命令を発行する（Ｓ１０７）。このように、プレフィックスモードに設定した場合も、プロミスキャスモードに設定した場合も、ネットワークインターフェイス監視処理に進む。ＬＬＴＤプロセス１１１或いは後述のネットワークインターフェイスモード監視処理からプロミスキャスモードＯＦＦ命令が発行された場合、制御部１０３はネットワークインターフェイス１０６を通常受信モードへ設定する（Ｓ１０８でＹＥＳ、Ｓ１０１）。なお、上記処理では、優先度の高い特定のプロセスが動作していることをプロセステーブル１１２を用いて検出しているが、その他フラグを使用する手法などこの検出方法は他の方法をとってもよい。
【００１９】
次に、プレフィックスモード遷移命令の発行に応じて起動されるプレフィックスモード設定フローに関して図４を参照して説明する。プレフィックスモード遷移命令が発行された場合、制御部１０３は、現時点でのネットワークインターフェイス１０６の動作モードがプロミスキャスモードであるか確認する（Ｓ２０１）。プロミスキャスモードでないと判定された場合（Ｓ２０１）、制御部１０３は、プレフィックステーブル１１３からプレフィックス情報を取得してネットワークインターフェイス１０６にプレフィックスフィルタを設定する（Ｓ２０３）。一方、プロミスキャスモードであれば（Ｓ２０１）、制御部１０３は、ネットワークインターフェイス１０６を通常受信モードへ設定する（Ｓ２０２）。そして、制御部１０３は、プレフィックステーブル１１３からプレフィックス情報を取得してネットワークインターフェイス１０６にプレフィックスフィルタを設定する（Ｓ２０３）。このように、本フローでは、プロミスキャスモードからプレフィックスモードに遷移する場合、一旦通常受信モードに設定してからプレフィックスモードに遷移するようにしているが、必ずしもこのような処理を行う必要はない。例えば、プロミスキャスモードから直接プレフィックスモードに遷移するようにしてもよい。すなわち、プレフィックスモード遷移命令が発行された後、動作モード確認を行なわず直接プレフィックスフィルタの設定を行なってもよい。
【００２０】
次に、ネットワークインターフェイスモード監視フローについて図５を用いて説明する。ネットワークインターフェイスモード監視命令が発行されると、制御部１０３は、プロセステーブル１１２を参照してＬＬＴＤプロセス１１１のＣＰＵ稼働率を調べる（Ｓ３０１）。ＬＬＴＤプロセス１１１のＣＰＵ稼働率が閾値以上であればプロミスキャスモードＯＦＦ命令を発行し（Ｓ３０２）、ネットワークインターフェイスモード監視を終了する。このプロミスキャスモードＯＦＦ命令の発行により、ネットワークインターフェイス１０６はプロミスキャスモードまたはプレフィックスモードから通常受信モードに遷移（Ｓ１０８→Ｓ１０１）する。すなわち、ネットワークインターフェイス１０６を介した通信に関わるＣＰＵの処理負荷が閾値を越えた場合に、ネットワークインターフェイスの動作を通常受信モードに遷移させる。一方、ＬＬＴＤプロセス１１１のＣＰＵ稼働率が閾値以下の場合、制御部１０３はネットワークインターフェイス１０６が通常受信モードで動作しているか判定する（Ｓ３０３）。通常受信モードで動作している場合は監視不要としてネットワークインターフェイスモード監視を終了する。
【００２１】
通常受信モードでないと判定された場合、制御部１０３は、プロセステーブル１１２を参照して印刷プロセス１１０が動作しているか確認する（Ｓ３０４）。印刷プロセス１１０が動作しておりかつネットワークインターフェイス１０６がプロミスキャスモードで動作している場合は（Ｓ３０４でＹＥＳ、Ｓ３０５でＹＥＳ）、プレフィックスモード遷移命令を発行して（Ｓ３０６）、モードの監視を終了する。この処理によれば、ネットワークインターフェイスをプロミスキャスモードで動作させているときに特定の処理が開始されたことに応じて、ネットワークインターフェイス１０６の動作がプレフィックスモードへ遷移することになる。また、印刷プロセス１１０が動作しておりかつプロミスキャスモードでない場合は、Ｓ３０１に戻り、引き続きネットワークインターフェイスモードの監視を続ける（Ｓ３０４でＮＯ、Ｓ３０５でＮＯ）。
【００２２】
印刷プロセス１１０が動作しておらず、かつネットワークインターフェイス１０６の動作モードがプレフィックスモードであった場合（Ｓ３０４でＮＯ，Ｓ３０７でＹＥＳ）、制御部１０３は、プロミスキャスモード遷移命令を発行する（Ｓ３０８）。これらＳ３０４、Ｓ３０７の処理により、特定の処理の終了時においてネットワークインターフェイス１０６がフィルタモードで動作していた場合に、ネットワークインターフェイス１０６の動作をプロミスキャスモードへ遷移させることになる。そして、当該ネットワークインターフェイスモード監視を終了する。印刷プロセス１１０が動作しておらず、かつネットワークインターフェイス１０６の動作モードがプロミスキャスモードであった場合（Ｓ３０４でＮＯ，Ｓ３０７でＮＯ）、Ｓ３０１に戻り、引き続きネットワークインターフェイスモード監視を続ける。なお、印刷プロセス１１０の動作を検出する仕組みとしてプロセステーブルを用いているが、フラグを使用する方法など他の方法を用いてもよい。また、本フローでは、ＬＬＴＤプロセス１１１のＣＰＵ稼働率が閾値以上の場合（Ｓ３０１）、ネットワークインターフェイスの動作を通常受信モードに遷移させるので、ＬＬＴＤプロセス１１１は中止されることとなる。しかしながら、ＬＬＴＤプロセス１１１のＣＰＵ稼働率に関わらず、ＬＬＴＤプロセス１１１を継続するようにしてもよい。すなわち、Ｓ３０１、Ｓ３０２を省略し、ネットワークインターフェイスモード監視命令が発行されると、Ｓ３０３以降の処理に進むようにしてもよい。なお、この場合は、ＬＬＴＤプロセス１１１からプロミスキャスモードＯＦＦ命令が発行されたときに、ネットワークインターフェイス１０６はプロミスキャスモードまたはプレフィックスモードから通常受信モードに遷移（Ｓ１０８→Ｓ１０１）することとなる。
。
【００２３】
以上説明した実施形態によれば、任意のタイミングにてＬＬＴＤプロセス１１１がネットワークインターフェイス制御部１０３へプロミスキャスモード遷移命令を発行しても、
・印刷プロセス１１０が動作している間、ネットワークインターフェイス１０６はプレフィックスモードとして動作する、
・印刷プロセス１１０が終了するのを待って、ネットワークインターフェイス１０６がプロミスキャスモードに遷移する、
という処理フローを達成することができる。これにより印刷プロセス１１０へのパフォーマンス影響を低次に抑えた任意タイミングでのプロミスキャスモード命令の発行が実現できる。
【００２４】
なお、プロミスキャスモード遷移命令およびプロミスキャスモードＯＦＦ命令はＬＬＴＤプロセス１１１以外のプロセスを含む、複数のプロセスから発行できるようにしてもよい。また、プレフィックスモード化の遷移条件は優先度の高いプロセスの一例として印刷プロセス１１０を説明したが、その他プロセスであってもよいし、複数のプロセスが優先度の高いプロセスとして用いられてもよい。
【００２５】
また、上記実施形態において図３〜図６により説明した処理と同等の処理を、コンピュータプログラムでも実現できる。また、通常、コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されており、それを、コンピュータが有する読取り装置（ＣＤ−ＲＯＭドライブ等）にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、かかるコンピュータプログラム及びコンピュータ可読記憶媒体も本発明の範疇にあることは明らかである。
【図１】
2010220098.tif 000003
【図２】
2010220098.tif 000004
【図３】
2010220098.tif 000005
【図４】
2010220098.tif 000006
【図５】
2010220098.tif 000007
【図６】
2010220098.tif 000008