説明

ネットワークインターフェイス制御装置及び制御方法

【課題】ネットワークインターフェイスの動作モードによって生じる特定の処理に対する負荷の影響を軽減することを目的とする。
【解決手段】ネットワークインターフェイスを、全てのパケットを受信するプロミスキャスモードと、ネットワークアドレスの一部分を用いて受信するパケットを選別するフィルタモードと、自分宛パケット、マルチキャスト宛パケット、ブロードキャスト宛パケットを受信する通常受信モードとを含むモードで動作可能なネットワークインターフェイスのモードを制御するにおいて、プロミスキャスモードへ遷移させる命令が発行された場合に、特定の処理が動作中でなければネットワークインターフェイスの動作モードをプロミスキャスモードへ遷移させ、特定の処理が動作中であれば動作モードをフィルタモードへ遷移させる。また、特定の処理の終了時にフィルタモードで動作していた場合は、動作モードをプロミスキャスモードへ遷移させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークインターフェイスの動作モードを制御するネットワークインターフェイス制御装置及び制御方法に関する。
【背景技術】
【0002】
通常、ネットワークインターフェイスは自ホスト宛かマルチキャスト宛、ブロードキャスト宛以外の(他ノード宛などの)パケットを破棄している。これは、伝送路上に流れるパケットをすべて受信処理した場合、ネットワークインターフェイスを含む装置のリソースに膨大な処理負荷が発生するからである。一方でアプリケーションによっては自ホスト宛やマルチキャスト宛、ブロードキャスト宛以外のパケットの受信が必要な場合もある。その場合、ネットワークインターフェイスのパケット受信モードを全パケット受信モード(プロミスキャスモード)に遷移させることで他ホスト宛パケットを受信処理できるようになる。
【0003】
しかし、プロミスキャスモードにてネットワークインターフェイスを動作させた場合、前述のように受信処理負荷が増大する。そこで、受信負荷増大を回避するための方式として、アプリケーションが必要とする間だけネットワークインターフェイスをプロミスキャスモードに遷移させる方式が広く取られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−303998号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
以上のように、ネットワークインターフェイスの動作モードを変更させる手法として、アプリケーションが必要とする期間だけネットワークインターフェイスをプロミスキャスモードに設定する方法がある。一方でプリンタなど組み込み機器において、印刷などのメイン業務処理実行をインターフェイスの動作モードによって妨げることができない状況が発生しうる。たとえばプリンタにおいて、印刷中にLLTDレスポンダ(ネットワークインターフェイスをプロミスキャスモード化するアプリケーション)が稼動し、ネットワークインターフェイスがプロミスキャスモードに遷移した場合などがこれにあたる。なお、LLTDとは、Link Layer Topology Discoveryである。プリンタにおいて印刷処理の実施中は他のプロセスによって印刷プロセスの使用できるリソースが減少することは看過できない。ネットワークインターフェイスがプロミスキャスモード化することもリソース減少の要因のひとつである。
【0006】
このことから、メイン業務処理を妨げない点を考慮したネットワークインターフェイス動作モード制御の仕組みが必要であった。また、その場合にはメイン業務処理への影響を最小限におさえつつ、ネットワークインターフェイスモードの変更を必要とするアプリケーションも同時に動作できることが望ましい。
【0007】
本発明は、ネットワークインターフェイスの動作モードによって生じるメイン業務処理への負荷の影響を軽減することを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するための本発明の一態様によるネットワークインターフェイス制御装置は以下の構成を備える。すなわち、
【発明の効果】
【0009】
本発明によれば、任意のタイミングでネットワークインターフェイスモードを切替えても、メイン業務処理など処理優先度の高い特定の処理のパフォーマンスの低下を抑えることが可能となる。
【図面の簡単な説明】
【0010】
【図1】実施形態によるネットワークプリンタのシステム構成例を示すブロック図である。
【図2】プロセステーブルのデータ構成例を示す図である。
【図3】ネットワークインターフェイスモードの切替処理を説明するフローチャートである。
【図4】プレフィックスモードの設定処理を示すフローチャートである。
【図5】ネットワークインターフェイスモード監視の処理を示すフローチャートである。
【図6】プレフィックステーブル学習処理を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
以下では、本発明のネットワークインターフェイス制御装置を有効に機能させる一実施形態として、ネットワークプリンタへの適用例を示す。
【0012】
まず、本実施形態によるネットワークプリンタにおけるシステム構成の概要について説明する。図1は、実施形態によるネットワークプリンタのシステム構成例を示すブロック図である。本実施形態のシステムは外部の通信端末2と有線LAN(または無線LAN)によってパケット通信が可能な印刷機1である。印刷機1は、記録媒体への印刷を行う印刷デバイス104とこれを制御する印刷処理部101を有する。印刷処理部101は印刷プロセス110を実行することにより印刷デバイス104による印刷を実行する。通信処理部102は、ネットワークインターフェイス106及びこれを制御するネットワークインターフェイス制御部103を用いて、外部の通信端末2との間の通信を実現する。例えば、通信処理部102は、ネットワークインターフェイス106を通常受信モード、プロミスキャスモード、プレフィックスモードのいずれかで動作するように制御する。ネットワークインターフェイス制御部103は、プレフィックスモードにおける受信フィルタのためのプレフィックステーブル113を有する。プレフィックステーブル学習部107は、「プロミスキャスモード」における受信パケットを監視することによりプレフィックステーブル113を設定する。プロセス管理部105は、印刷機1において実行される各種プロセスを管理し、プロセス情報を管理するためのプロセステーブル112を生成する。なお、通信処理部102は、LLTD(LinkLayer Topology Discovery)サービスを提供するLLTDプロセス111を備えている。
【0013】
プロセス管理部105は印刷機1内で動作するプロセスの動作状況を管理する機能をもち、プロセスの動作状況を示すプロセステーブル112(図2参照)を保持する。印刷処理部101は通信処理部102を介して印刷データを取得し、印刷プロセス110にて印刷情報を作成し、印刷デバイス104に印刷命令を出す。印刷デバイス104は印刷処理部101からの命令を受け、印刷を実行する。
【0014】
通信処理部102はネットワークインターフェイス106にて受信した情報を各プロセスに渡す機構を持つ。また、通信処理部102のLLTDプロセス111は、その動作中にネットワークインターフェイス制御部103に対してプロミスキャスモード遷移命令(図3参照)を発行する。このとき、LLTDプロセス111が必要とするパケットは特定のOUI(Organizationally Unique Identifier:イーサMACアドレスの先頭24bitのベンダ固有識別子)をもつMACアドレス宛のものがほとんどである。したがって、ネットワークインターフェイス106がプロミスキャスモードで受信すべきところを、特定のOUIをもつMACアドレス宛のパケットを受信できるモード(プレフィックスモード)で動作してもLLTDプロセス111の処理への影響は小さい。また、通信処理部102のLLTDプロセス111はプロミスキャスモードで動作する必要がなくなると(例えばLLTDプロセス111を中止、もしくは終了する場合)、ネットワークインターフェイス制御部へプロミスキャスモードOFF命令を発行する。
【0015】
上述したように、ネットワークインターフェイス106は少なくとも、プロミスキャスモード、プレフィックスモード、通常受信モードの3つのパケット受信モードで動作可能である。プロミスキャスモードはネットワークインターフェイス106に到達したすべてのパケットを受信するモードである。通常受信モードは自分宛パケット、マルチキャスト宛パケット、ブロードキャスト宛パケットを受信するモードである。プレフィックスモードはネットワークインターフェイス106のMAC層(Media Access Control)を制御するハードウエア回路に対して受信フィルタを設定するモードである。プレフィックスモードにおいて、ネットワークインターフェイス制御部103は、プレフィックステーブル113に設定された所定のプレフィックスを持つパケットと通常受信モードで受信するパケットとを受信する。なお、フィルタにはイーサネット(登録商標)MACアドレスのOUIの指定ができるものとするが、これに限られるものではない。例えば、フィルタは他のプロトコルのアドレスのプレフィックス情報でもよい。すなわち、ネットワークアドレスの一部分を用いて受信するパケットを選別するモード(フィルタモード)をプレフィックスモードの代わりに用いることができる。ネットワークインターフェイス制御部103は、ネットワークインターフェイス106の動作モードを、上述したモードのいずれかに設定する。
【0016】
プレフィックステーブル113は、図6に示すプレフィックステーブル学習フローにより、プロミスキャスモードにおける受信パケットに基づいて設定される。ここで、図6に示されるプレフィックステーブル学習フローについて説明しておく。ネットワークインターフェイス制御部103は、ネットワークインターフェイス106がプロミスキャスモードで動作している間(S401)、プレフィックステーブルに関する学習処理を行う。ネットワークインターフェイス制御部103は、プロミスキャスモード中にパケットを受信すると、当該パケットのプレフィックスがすでにプレフィックステーブル113に存在するか確認する(S402、S403)。受信パケットのプレフィックスがプレフィックステーブル113に存在しない場合は、当該受信パケットのプレフィックスをプレフィックステーブル113へ登録する(S404)。なお、図6の処理フロー以外の方法を用いてプレフィックステーブルを設定するようにしても構わない。例えば、キーボード等からプレフィックス値を手入力することによりプレフィックステーブルを設定してもよい。
【0017】
次に、ネットワークインターフェイス制御部103(以下、制御部103と記載する)によるネットワークインターフェイスモードの切替処理に関して、図3〜図5を参照して説明する。制御部103は、まず、ネットワークインターフェイス106を通常受信モードで動作するように設定する(S101)。制御部103は、各プロセスよりネットワークインターフェイス106のプロミスキャスモードへの遷移命令が発行されると、印刷機1にとって処理優先度の高い特定のプロセス(本例では印刷プロセス110)が動作しているかを確認する(S102、S103)。なお、プロミスキャスモードへの遷移命令を発行するプロセスとしては、LLTDプロセス111やネットワークインターフェイスモード監視等のプロセスがあげられる。また、制御部103は、プロセステーブル112(図2)を参照することにより、印刷プロセス110が動作中であるか停止中であるかを確認する。
【0018】
印刷プロセス110が動作中である場合、ネットワークインターフェイス106をプレフィックスモードに遷移させるために、プレフィックスモード遷移命令を発行する(S104)。そして、後述のプレフィックスモード設定処理の完了後、制御部103は、ネットワークインターフェイスモード監視命令を発行する(S107)。一方、印刷プロセス110が動作していない場合、制御部103は、ネットワークインターフェイス106をプロミスキャスモードへ遷移させる(S105)。そして、制御部103は、上述したプレフィックステーブル学習フロー(図6)を起動する(S106)と共に、ネットワークインターフェイスモード監視命令を発行する(S107)。このように、プレフィックスモードに設定した場合も、プロミスキャスモードに設定した場合も、ネットワークインターフェイス監視処理に進む。LLTDプロセス111或いは後述のネットワークインターフェイスモード監視処理からプロミスキャスモードOFF命令が発行された場合、制御部103はネットワークインターフェイス106を通常受信モードへ設定する(S108でYES、S101)。なお、上記処理では、優先度の高い特定のプロセスが動作していることをプロセステーブル112を用いて検出しているが、その他フラグを使用する手法などこの検出方法は他の方法をとってもよい。
【0019】
次に、プレフィックスモード遷移命令の発行に応じて起動されるプレフィックスモード設定フローに関して図4を参照して説明する。プレフィックスモード遷移命令が発行された場合、制御部103は、現時点でのネットワークインターフェイス106の動作モードがプロミスキャスモードであるか確認する(S201)。プロミスキャスモードでないと判定された場合(S201)、制御部103は、プレフィックステーブル113からプレフィックス情報を取得してネットワークインターフェイス106にプレフィックスフィルタを設定する(S203)。一方、プロミスキャスモードであれば(S201)、制御部103は、ネットワークインターフェイス106を通常受信モードへ設定する(S202)。そして、制御部103は、プレフィックステーブル113からプレフィックス情報を取得してネットワークインターフェイス106にプレフィックスフィルタを設定する(S203)。このように、本フローでは、プロミスキャスモードからプレフィックスモードに遷移する場合、一旦通常受信モードに設定してからプレフィックスモードに遷移するようにしているが、必ずしもこのような処理を行う必要はない。例えば、プロミスキャスモードから直接プレフィックスモードに遷移するようにしてもよい。すなわち、プレフィックスモード遷移命令が発行された後、動作モード確認を行なわず直接プレフィックスフィルタの設定を行なってもよい。
【0020】
次に、ネットワークインターフェイスモード監視フローについて図5を用いて説明する。ネットワークインターフェイスモード監視命令が発行されると、制御部103は、プロセステーブル112を参照してLLTDプロセス111のCPU稼働率を調べる(S301)。LLTDプロセス111のCPU稼働率が閾値以上であればプロミスキャスモードOFF命令を発行し(S302)、ネットワークインターフェイスモード監視を終了する。このプロミスキャスモードOFF命令の発行により、ネットワークインターフェイス106はプロミスキャスモードまたはプレフィックスモードから通常受信モードに遷移(S108→S101)する。すなわち、ネットワークインターフェイス106を介した通信に関わるCPUの処理負荷が閾値を越えた場合に、ネットワークインターフェイスの動作を通常受信モードに遷移させる。一方、LLTDプロセス111のCPU稼働率が閾値以下の場合、制御部103はネットワークインターフェイス106が通常受信モードで動作しているか判定する(S303)。通常受信モードで動作している場合は監視不要としてネットワークインターフェイスモード監視を終了する。
【0021】
通常受信モードでないと判定された場合、制御部103は、プロセステーブル112を参照して印刷プロセス110が動作しているか確認する(S304)。印刷プロセス110が動作しておりかつネットワークインターフェイス106がプロミスキャスモードで動作している場合は(S304でYES、S305でYES)、プレフィックスモード遷移命令を発行して(S306)、モードの監視を終了する。この処理によれば、ネットワークインターフェイスをプロミスキャスモードで動作させているときに特定の処理が開始されたことに応じて、ネットワークインターフェイス106の動作がプレフィックスモードへ遷移することになる。また、印刷プロセス110が動作しておりかつプロミスキャスモードでない場合は、S301に戻り、引き続きネットワークインターフェイスモードの監視を続ける(S304でNO、S305でNO)。
【0022】
印刷プロセス110が動作しておらず、かつネットワークインターフェイス106の動作モードがプレフィックスモードであった場合(S304でNO,S307でYES)、制御部103は、プロミスキャスモード遷移命令を発行する(S308)。これらS304、S307の処理により、特定の処理の終了時においてネットワークインターフェイス106がフィルタモードで動作していた場合に、ネットワークインターフェイス106の動作をプロミスキャスモードへ遷移させることになる。そして、当該ネットワークインターフェイスモード監視を終了する。印刷プロセス110が動作しておらず、かつネットワークインターフェイス106の動作モードがプロミスキャスモードであった場合(S304でNO,S307でNO)、S301に戻り、引き続きネットワークインターフェイスモード監視を続ける。なお、印刷プロセス110の動作を検出する仕組みとしてプロセステーブルを用いているが、フラグを使用する方法など他の方法を用いてもよい。また、本フローでは、LLTDプロセス111のCPU稼働率が閾値以上の場合(S301)、ネットワークインターフェイスの動作を通常受信モードに遷移させるので、LLTDプロセス111は中止されることとなる。しかしながら、LLTDプロセス111のCPU稼働率に関わらず、LLTDプロセス111を継続するようにしてもよい。すなわち、S301、S302を省略し、ネットワークインターフェイスモード監視命令が発行されると、S303以降の処理に進むようにしてもよい。なお、この場合は、LLTDプロセス111からプロミスキャスモードOFF命令が発行されたときに、ネットワークインターフェイス106はプロミスキャスモードまたはプレフィックスモードから通常受信モードに遷移(S108→S101)することとなる。

【0023】
以上説明した実施形態によれば、任意のタイミングにてLLTDプロセス111がネットワークインターフェイス制御部103へプロミスキャスモード遷移命令を発行しても、
・印刷プロセス110が動作している間、ネットワークインターフェイス106はプレフィックスモードとして動作する、
・印刷プロセス110が終了するのを待って、ネットワークインターフェイス106がプロミスキャスモードに遷移する、
という処理フローを達成することができる。これにより印刷プロセス110へのパフォーマンス影響を低次に抑えた任意タイミングでのプロミスキャスモード命令の発行が実現できる。
【0024】
なお、プロミスキャスモード遷移命令およびプロミスキャスモードOFF命令はLLTDプロセス111以外のプロセスを含む、複数のプロセスから発行できるようにしてもよい。また、プレフィックスモード化の遷移条件は優先度の高いプロセスの一例として印刷プロセス110を説明したが、その他プロセスであってもよいし、複数のプロセスが優先度の高いプロセスとして用いられてもよい。
【0025】
また、上記実施形態において図3〜図6により説明した処理と同等の処理を、コンピュータプログラムでも実現できる。また、通常、コンピュータプログラムは、CD−ROM等のコンピュータ可読記憶媒体に格納されており、それを、コンピュータが有する読取り装置(CD−ROMドライブ等)にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、かかるコンピュータプログラム及びコンピュータ可読記憶媒体も本発明の範疇にあることは明らかである。

【特許請求の範囲】
【請求項1】
全てのパケットを受信するプロミスキャスモードと、自分宛パケット、マルチキャスト宛パケット、ブロードキャスト宛パケットを受信する通常受信モードとを含むモードで動作可能なネットワークインターフェイスを制御する制御装置であって、
前記プロミスキャスモードへ遷移させる命令が発行された場合に、特定の処理が動作中でなければ前記ネットワークインターフェイスの動作を前記プロミスキャスモードへ遷移させ、前記特定の処理が動作中であれば前記ネットワークインターフェイスの動作をネットワークアドレスの一部分を用いて受信するパケットを選別するフィルタモードへ遷移させる手段と、
前記特定の処理の終了時において前記ネットワークインターフェイスが前記フィルタモードで動作していた場合、前記ネットワークインターフェイスの動作を前記プロミスキャスモードへ遷移させる手段とを備えることを特徴とするネットワークインターフェイス制御装置。
【請求項2】
前記ネットワークインターフェイスを前記プロミスキャスモードで動作させているときに前記特定の処理が開始された場合に、前記ネットワークインターフェイスの動作を前記フィルタモードへ遷移させる手段を更に備えることを特徴とする請求項1に記載のネットワークインターフェイス制御装置。
【請求項3】
前記フィルタモードでは、所定のプレフィックスを持つネットワークアドレスを持つパケットを選別することを特徴とする請求項1または2に記載のネットワークインターフェイス制御装置。
【請求項4】
前記フィルタモードでは、イーサネット(登録商標)MACアドレスの先頭の24bitであるOUIに基づいて受信すべきパケットを選別することを特徴とする請求項3に記載のネットワークインターフェイス制御装置。
【請求項5】
前記ネットワークインターフェイスが前記プロミスキャスモードまたは前記フィルタモードで動作中に、CPUの前記ネットワークインターフェイスを介した通信に関わる処理負荷が閾値を越えた場合に、前記ネットワークインターフェイスの動作を前記通常受信モードに遷移させる手段を更に備えることを特徴とする請求項1乃至4のいずれか1項に記載のネットワークインターフェイス制御装置。
【請求項6】
前記プロミスキャスモードで動作している間に受信したネットワークアドレスのプレフィックスに基づいて前記所定のプレフィックスを設定する設定手段を更に備えることを特徴とする請求項3または4に記載のネットワークインターフェイス制御装置。
【請求項7】
全てのパケットを受信するプロミスキャスモードと、自分宛パケット、マルチキャスト宛パケット、ブロードキャスト宛パケットを受信する通常受信モードとを含むモードで動作可能なネットワークインターフェイスを制御する制御方法であって、
前記プロミスキャスモードへ遷移させる命令が発行された場合に、特定の処理が動作中でなければ前記ネットワークインターフェイスの動作を前記プロミスキャスモードへ遷移させ、前記特定の処理が動作中であれば前記ネットワークインターフェイスの動作をネットワークアドレスの一部分を用いて受信するパケットを選別するフィルタモードへ遷移させる工程と、
前記特定の処理の終了時において前記ネットワークインターフェイスが前記フィルタモードで動作していた場合、前記ネットワークインターフェイスの動作を前記プロミスキャスモードへ遷移させる工程とを備えることを特徴とするネットワークインターフェイス制御方法。
【請求項8】
コンピュータを請求項1乃至6のいずれか1項に記載のネットワークインターフェイス制御装置が備える各手段として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−220098(P2010−220098A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−66905(P2009−66905)
【出願日】平成21年3月18日(2009.3.18)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】