(57)【特許請求の範囲】
【請求項１】
ネットワークを介して他の装置と通信する通信手段と、自分のアドレスを決定する決定手段と、自分のアドレス及び他の装置のアドレスを記憶するメモリ手段とを有し、
前記決定手段は、前記メモリ手段に記憶された他の装置のアドレスを使用している装置がネットワーク上に存在するか否かを判断し、その装置が存在すれば、前記メモリ手段に記憶された自分のアドレスを再使用することを決定することを特徴とするネットワークに接続される装置。
【請求項２】
前記決定手段は、前記メモリ手段に記憶された自分のアドレスを使用している装置がネットワーク上に存在する場合、前記メモリ手段に記憶された他の装置のアドレス以外のアドレスを自分のアドレスとして決定することを特徴とする請求項１記載のネットワークに接続される装置。
【請求項３】
前記決定手段は、自分のアドレスを使用している装置が存在するか否かを調べるための信号の送信を、ネットワーク上のトラフィックに応じて制御することを特徴とする請求項１記載のネットワークに接続される装置。
【請求項４】
自分のアドレス及び他の装置のアドレスを記憶する記憶機能と、前記記憶機能で記憶された他の装置のアドレスを使用している装置がネットワーク上に存在するか否かを判断する判断機能と、その装置が存在すれば、前記記憶機能で記憶された自分のアドレスを再使用する再使用機能を、コンピュータに実現させるためのアドレス決定プログラム。
【請求項５】
前記再使用機能は、前記記憶機能で記憶された自分のアドレスを使用している装置がネットワーク上に存在する場合、前記記憶機能で記憶された他の装置のアドレス以外のアドレスを自分のアドレスとして決定することを特徴とする請求項４記載のアドレス決定プログラム。
【請求項６】
前記再使用機能は、自分のアドレスを使用している装置が存在するか否かを調べるための信号の送信を、ネットワーク上のトラフィックに応じて制御することを特徴とする請求項４記載のアドレス決定プログラム。
【請求項７】
自分のアドレス及び他の装置のアドレスを記憶する記憶ステップと、前記記憶ステップで記憶された他の装置のアドレスを使用している装置がネットワーク上に存在するか否かを判断する判断ステップと、その装置が存在すれば、前記記憶ステップで記憶された自分のアドレスを再使用する再使用ステップとを有することを特徴とするアドレス決定方法。
【請求項８】
前記再使用ステップでは、前記記憶ステップで記憶された自分のアドレスを使用している装置がネットワーク上に存在する場合、前記記憶ステップで記憶された他の装置のアドレス以外のアドレスを自分のアドレスとして決定することを特徴とする請求項７記載のアドレス決定方法。
【請求項９】
前記再使用ステップでは、自分のアドレスを使用している装置が存在するか否かを調べるための信号の送信を、ネットワーク上のトラフィックに応じて制御することを特徴とする請求項７記載のアドレス決定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークに接続される装置、アドレス決定プログラム及びアドレス決定方法に関する。
【０００２】
【従来の技術】
従来、インターネットによる通信の飛躍的な普及に伴い、ネットワーク対応型機器も、例えば従来のパーソナルコンピュータから、ＰＤＡ（Personal Digital Assistance）、携帯電話機等のユーザインタラクティブなデバイスや、スキャナ、プリンタ、複写機、デジタルカメラ等の画像処理装置、テレビ、エアコン、冷蔵庫等の家電製品に至るまでネットワーク対応が急速に進められつつある。
【０００３】
それに伴い、従来、ネットワーク管理者の元で実施されていたネットワーク対応型機器のネットワーク接続手続きも簡便化が図られている。特にインターネットプロトコル（ＩＰ：Internet Protocol）設定で重要なＩＰアドレス設定に関しても、従来のマニュアルによる設定から、ＤＨＣＰ（Dynamic Host Configuration Protocol）サーバを利用したＩＰアドレスの自動割当、或いはＳＯＨＯ（Small Office /Home Office）環境のようにサーバの設置が望めないネットワーク環境のために、自動ＩＰアドレス取得（draft-ietf-zeroconf-ipv4-linklocal-01.txt）などが提案されている（例えば、非特許文献１参照。）。Microsoft社が主催するUniversal Plug and Play Device Architecturev1.0においても、上記自動ＩＰアドレス取得が採用されている。これにより、一般ユーザは、ＩＰアドレスの設定規約、管理等に煩わされることなく、先に挙げたネットワーク対応型機器の利用が可能となっている。
【０００４】
【非特許文献１】
インターネット＜URL: http://www.upnp.org/download/draft  -ietf-zeroconf-ipv4-linklocal-01-Apr.txt＞
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来技術においては次のような問題があった。
【０００６】
即ち、上記自動ＩＰアドレス取得（draft-ietf-zeroconf-ipv4-linklocal-01.txt）に推奨されている通りに、ネットワーク対応型デバイスがＩＰアドレス取得のためのアルゴリズムを実装した場合、ネットワーク対応型デバイスは、起動のたびに新規ＩＰアドレスを取得するプロセスを実行する。しかし、ネットワーク上に例えば数十台の規模でネットワーク対応型機器が接続されている環境において、停電等の事故が発生した場合、或いは、始業後に一斉に機器の立ち上げを行う場合などのように、多数のデバイスが規定通りのアルゴリズムで一斉にＩＰアドレス取得を実行した場合は、ネットワーク上にはアドレス確認のためのＡＲＰ（Address Resolution Protocol）パケットにより、ネットワークトラフィックが発生し、ＡＲＰ応答の待ち時間設定によっては、ＩＰアドレスのコンフリクト（衝突）が発生する可能性があった。
【０００７】
また、ネットワーク上にダイナミックＤＮＳ（Domain Name Service：ＩＰアドレスとドメインネームを対応付けるインターネット用の分散名簿管理システム）が存在しない場合、これらネットワーク対応型サービスを使用するクライアントは、ホストネームではなく、ＩＰアドレスを用いて通信する必要がある。そのため、ネットワーク対応型デバイスのＩＰアドレスが変わるたびに、クライアント側アプリケーションの設定もその都度変更する必要があった。
【０００８】
本発明は、アドレスが他のデバイスとコンフリクトする可能性を低下させることを第１の目的とする。
【０００９】
また、本発明は、トラフィックを低減させることを第２の目的とする。
【００１０】
また、本発明は、デバイスを利用するクライアント側アプリケーションの設定変更の必要性を低減することを第３の目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するため、本発明のネットワークに接続される装置は、ネットワークを介して他の装置と通信する通信手段と、自分のアドレスを決定する決定手段と、自分のアドレス及び他の装置のアドレスを記憶するメモリ手段とを有し、前記決定手段は、前記メモリ手段に記憶された他の装置のアドレスを使用している装置がネットワーク上に存在するか否かを判断し、その装置が存在すれば、前記メモリ手段に記憶された自分のアドレスを再使用することを決定することを特徴とする。
【００１４】
上記目的を達成するため、本発明のアドレス決定プログラムは、自分のアドレス及び他の装置のアドレスを記憶する記憶機能と、前記記憶機能で記憶された他の装置のアドレスを使用している装置がネットワーク上に存在するか否かを判断する判断機能と、その装置が存在すれば、前記記憶機能で記憶された自分のアドレスを再使用する再使用機能を、コンピュータに実現させることを特徴とする。
【００１６】
上記目的を達成するため、本発明のアドレス決定方法は、自分のアドレス及び他の装置のアドレスを記憶する記憶ステップと、前記記憶ステップで記憶された他の装置のアドレスを使用している装置がネットワーク上に存在するか否かを判断する判断ステップと、その装置が存在すれば、前記記憶ステップで記憶された自分のアドレスを再使用する再使用ステップとを有することを特徴とする。
【００１７】
【発明の実施の形態】
先ず、本発明の実施の形態の詳細を説明する前に概要を説明する。
【００１８】
本発明の実施の形態では、図１に示す構成を有するネットワーク対応型デバイスが、ＩＰアドレスを生成し、前記生成したＩＰアドレスが、ネットワークに接続された他のネットワーク対応型デバイスと競合するか否かを確認し、競合が認められなくなるまでＩＰアドレスを生成し、競合が認められなくなったＩＰアドレスをネットワーク対応型デバイス自身のＩＰアドレスとして採用し、前記採用したＩＰアドレス、及び他のネットワーク対応型デバイスの物理アドレスとＩＰアドレスを記憶する。
【００１９】
また、本発明の実施の形態では、本ネットワーク対応型デバイスが、現在接続されているネットワークセグメントが、前回接続されていたネットワークセグメントと同一のネットワークセグメントか否かを確認し、同一のネットワークセグメントである場合は、第１の候補となるＩＰアドレスを前記採用したＩＰアドレスとし、第２以降の候補となるＩＰアドレスには、前記記憶された他のネットワーク対応型デバイスのＩＰアドレスを除外し、異なるネットワークセグメントである場合は、予め規定された範囲において乱数生成により候補となるＩＰアドレスを生成する。
【００２０】
また、本発明の実施の形態では、本ネットワーク対応型デバイスが、他のネットワーク対応型デバイスと競合するか否かを確認するためのパケットを発行し、他のネットワーク対応デバイスが発行するパケットを監視し、受信したパケットの単位時間あたりのトラフィックが予め規定した値を超えた場合は、トラフィックが予め規定した値に下がるまで、他のネットワーク対応型デバイスと競合するか否かを確認するためのパケットの発行を停止する。
【００２１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２２】
図１は本発明の実施の形態に係るネットワーク対応型デバイスのハードウエアの構成を示すブロック図である。ネットワーク対応型デバイスは、ＣＰＵ３０１、フラッシュＲＯＭ（Flash ＲＯＭ）３０２、ＲＡＭ３０３、ＬＡＮ（Local Area Network）コントローラ（ＬＡＮ Controller）３０４、ＬＡＮ物理層制御部（ＰＨＹ）３０５、コネクタ３０６、ペリフェラルインタフェースコントローラ（Peripheral Interface Controller）３０７、ペリフェラルインタフェース（Peripheral Interface）３０８を備えている。
【００２３】
上記構成を詳述すると、ＣＰＵ３０１は、ネットワーク対応型デバイス各部を制御する中央処理装置であり、フラッシュＲＯＭ３０２に格納されたプログラムコードに基づき図３・図４のフローチャートに示す処理を実行する。ＣＰＵ３０１は、本ネットワーク対応型デバイスのアドレスを決定する決定手段である。本実施の形態では、ＣＰＵ３０１は３２ｂｉｔＲＩＳＣ（Reduced Instruction Set Computer）チップを使用している。フラッシュＲＯＭ３０２には、プログラムコード及びネットワーク管理情報データベーステーブルが保持されている。また、フラッシュＲＯＭ３０２には、自動ＩＰアドレス取得を実現するソフトウエアが格納されている。また、フラッシュＲＯＭ３０２の一部領域をNon Volatileメモリ領域として使用し、ユーザが設定したパラメータ、コンフィグレーション（環境設定）情報等を記憶保持するのに利用している。このコンフィグレーション情報には、ネットワークに接続された他の装置のアドレスが含まれる。また、コンフィグレーション情報には、本ネットワーク対応型デバイスのアドレスが含まれる。
【００２４】
ＲＡＭ３０３は、ＤＲＡＭ（Dynamic ＲＡＭ）として構成されており、作業領域として使用される。本実施の形態では、フラッシュＲＯＭ３０２上に格納されたプログラム実行コード及びネットワーク管理情報データベーステーブルは、起動時にこのＲＡＭ３０３上にコピーされ、該コピー作業が完了した時点で上記プログラムコードの実行を開始する。このネットワーク管理情報データベーステーブルには、ネットワークに接続された他の装置のアドレスが含まれる。また、このネットワーク管理情報データベーステーブルには、本ネットワーク対応型デバイスのアドレスが含まれる。
【００２５】
ＬＡＮコントローラ３０４、ＬＡＮ物理層制御部３０５は、コネクタ３０６を介して本ネットワーク対応型デバイスをイーサネット（Ｒ）に接続する。コネクタ３０６は、８ピンのモジュラージャック（ＲＪ４５−８）として構成されている。
【００２６】
ＬＡＮコントローラ３０４は、バス マスタ タイプを使用しており、送受信をイベントトリガとしてバス権をＣＰＵ３０１と調停し、ＣＰＵ３０１とは独立して、ＲＡＭ３０３上に確保されて送受信バッファ上のデータの送信/受信を実行する。ＬＡＮコントローラ３０４は、ネットワークを介して他の装置と通信するための通信手段である。
【００２７】
ペリフェラルＩ/Ｆコントローラ３０７は、不図示のペリフェラルと接続され、このペリフェラルとの間の通信を制御するＡＳＩＣ（Application Specified IC）であり、３２ＫＢのデュアルポートＲＡＭを有する。
【００２８】
ペリフェラルとは、前記デュアルポートＲＡＭのメモリ領域を使用してデータを通信する。本実施の形態では、ペリフェラル装置としてプリンタを例に説明しているが、ペリフェラル装置（プリンタ）側のハード構成に関しては、本ネットワーク対応型デバイスと同様にＣＰＵ/ＲＯＭ/ＲＡＭから構成されており、通信制御部側の制御系からは独立した構成を持つ（図示は省略する）。
【００２９】
図２は本発明の実施の形態に係るネットワーク対応型デバイスのソフトウエアの構成を示すブロック図である。ネットワーク対応型デバイスは、イーサネット（Ｒ）ドライバ（Ethernet（Ｒ）Driver）１、ＴＣＰ/ＵＤＰ/ＩＰプロトコルスタック（Transmission Control Protocol/User Datagram Protocol/Internet Protocol）２、ＨＴＴＰ（Hyper Text Transfer Protocol）３、自動ＩＰアドレス取得処理部（Auto IP）４、ＡＲＰ（Address Resolution Protocol）５、プリントプロトコルモジュール（Print Protocol Module）６、プリンタコントローラ（Printer Controller）７を備えている。
【００３０】
上記構成を詳述すると、本実施の形態では、ネットワーク対応型デバイスはプリンタとして構成されている。ネットワーク対応型デバイスは、通信機能としてイーサネット（Ｒ）ドライバ１上に、ＴＣＰ/ＵＤＰ/ＩＰプロトコルスタック２を備えており、該ＴＣＰ/ＵＤＰ/ＩＰプロトコルスタック２上に、ＨＴＴＰ１．１サーバの機能（ＨＴＴＰ３）を実装し、該ＨＴＴＰ１．１サーバ（ＨＴＴＰ３）を介してデバイスのコンフィグレーション、ステータスの取得などのサービスを提供する。
【００３１】
自動ＩＰアドレス取得処理部４は、ネットワークドライバ層の上位層に実装され、更に、自動ＩＰアドレス取得処理部４は、ＡＲＰ５の上位層に実装されており、後述のＡＲＰプローブパケット、ＡＲＰパケットの送受信の制御を実行する。
【００３２】
また、ＴＣＰ/ＵＤＰ/ＩＰプロトコルスタック２上には、プリントプロトコルモジュール６が実装されており、ＬＡＮ８に接続されたクライアントから発行されるプリント要求を解析し、プリンタコントローラ７に対し該プリント要求を送出する機能を備えている。
【００３３】
次に、上記の如く構成されたネットワーク対応型デバイスの動作について図３・図４のフローチャートを参照しながら詳細に説明する。図３・図４のフローチャートに示す処理は、ネットワーク対応型デバイスのＣＰＵ３０１がフラッシュＲＯＭ３０２に格納されたプログラムコードに基づき実行する。
【００３４】
ネットワーク対応型デバイスは、起動後、不揮発メモリ（フラッシュＲＯＭ３０２）上のNon Volatile RAM領域に記録された該ネットワーク対応型デバイスのＩＰアドレスをチェックする（ステップＳ１）。不揮発メモリ上に記録されたネットワーク対応型デバイスのＩＰアドレス値が０.０.０.０である場合（即ち、ネットワーク対応型デバイスが以前に使用したＩＰアドレス値が記録されていない場合）、ネットワーク対応型デバイスが全く新規にネットワークに接続され使用される場合であり（ステップＳ２でｙｅｓ）、自動ＩＰアドレス取得手順（draft-ietf-zeroconf-ipv4-linklocal-01.txt）に従い、ＩＡＮＡ（Internet Assigned Number Authority：インターネットアドレス管理機構）に登録されている自動ＩＰアドレスレンジ１６９.２５４.１.０〜１６９.２５４.２５４.２５５より、一つのＩＰアドレスを選択（生成）する。
【００３５】
本実施の形態において、上記のＩＰアドレス生成においては、下位３バイトに対し０〜２５５までの乱数を生成して、候補となるＩＰアドレスを生成する（ステップＳ３）。この場合、乱数の生成においては、ネットワーク対応型デバイス自身のＭＡＣ（Media Access Control）アドレスの最下位バイト値と、ネットワーク対応型デバイスの起動時からの積算時間との積を核として使用する。
【００３６】
次に、上記ステップＳ３で生成したＩＰアドレスが、既にネットワーク上で稼動している他のデバイスに使用されているか否かをチェックするために、ターゲットＩＰアドレスに上記ステップＳ３で生成したＩＰアドレスをセットし、発信元アドレスをネットワーク対応型デバイス自身の物理アドレスにセットし、発信元ＩＰアドレスには０.０.０.０をセットしたＡＲＰプローブパケットを発行する（ステップＳ４）。また、それと同時に内部タイマをゼロクリアする。
【００３７】
ＡＲＰプローブパケットに対し応答があった場合（ステップＳ５でｙｅｓ）、上記ステップＳ３において生成したＩＰアドレスは、既にネットワーク上で稼動している他のデバイスに使用されていることを意味するので、再度、上記ステップＳ３において候補となるＩＰアドレス生成を実行し、ステップＳ４以降の処理を実行する。
【００３８】
ＡＲＰプローブパケットに対し応答が無かった場合は（ステップＳ５でｎｏ）、他のデバイスから発行されるＡＲＰプローブパケットの有無を監視する（ステップＳ６）。ＡＲＰプローブパケットを受信し、且つＡＲＰプローブパケットのターゲットＩＰアドレスの値が、上記ステップＳ３で生成したＩＰアドレスと同一であった場合は（ステップＳ７でｙｅｓ）、ネットワーク上で稼動を開始した他のデバイスとのＩＰアドレスがコンフリクトする可能性あるので、上記ＡＲＰプローブパケットに対しては応答せず、上記ステップ３の手順に戻り、再度、候補となるＩＰアドレスを生成し、上記ステップ３以降の処理を実行する。
【００３９】
本実施の形態においては、上記自動ＩＰアドレス取得手順（draft-ietf-zeroconf-ipv4-linklocal-01.txt）記載の推奨に従い、ステップＳ４からステップＳ７までの検証を４秒間隔で３回繰り返すが、本実施の形態では、以下の手順に従い、ネットワーク上のＡＲＰプローブパケットのトラフィックに応じ再検証のインターバルを調整する。
【００４０】
上記ステップ６においてＩＰアドレスのコンフリクトが検出されない場合、次に１秒あたりのＡＲＰプローブのパケット受信数を計測する。ＡＲＰプローブパケットの受信数が５０パケット/secを超える場合は、例えば停電後の同時復旧など、ネットワーク上のデバイスが一斉に自動ＩＰアドレス取得のプロセスを実行することによるトラフィック増加を意味するものであり、本実施の形態においては、ＡＲＰプローブパケットの受信数が１０パケット/sec以下になるまでＡＲＰプローブパケットの監視を継続する（ステップＳ８）。これにより、ネットワーク上のトラフィックの低減を実現する。ＡＲＰプローブパケットの受信数が１０パケット/sec以下であり、且つネットワーク対応型デバイス自身がＡＲＰプローブを発行してから４秒経過した場合は（ステップＳ９でｙｅｓ）、上記ステップＳ４に戻り、再度、ＡＲＰプローブを発行する。
【００４１】
以上のステップＳ４〜ステップＳ７を３回繰り返すことで（ステップＳ１０でｙｅｓ）、ネットワーク上の他のデバイスとＩＰアドレスのコンフリクトが無いことが確認されるので、ネットワーク上に送信先/送信元ともに、ネットワーク対応型デバイス自身の物理アドレス、ＩＰアドレスをセットしたGratuitous ＡＲＰパケットを発行し、ネットワーク上の他のデバイスに対しＡＲＰキャッシュの更新を促す（ステップＳ１１）。以上の処理が完了した後、ネットワーク対応型デバイス自身のＩＰアドレスを確定し（ステップＳ１２）、確定したネットワーク対応型デバイス自身のＩＰアドレスを不揮発メモリ（フラッシュＲＯＭ３０２）上に記憶する（ステップＳ１３）。
【００４２】
また、以降は、ネットワーク上の他のデバイスが発行したGratuitous ＡＲＰパケットを受信すると、そのGratuitous ＡＲＰパケットにセットされた他のデバイスの物理アドレス、ＩＰアドレスにより、ＤＲＡＭ３０３のＡＲＰキャッシュの内容を常時更新するとともに、該更新内容を同様に不揮発メモリ（フラッシュＲＯＭ３０２）上に記憶する（ステップＳ１４）。
【００４３】
以後、ＩＰを使用する上位アプリケーションは該ＩＰアドレスを使用し、各サービスの実行を行う。
【００４４】
上記ステップＳ１において不揮発メモリ（フラッシュＲＯＭ３０２）上に記録されているＩＰアドレス値が０.０.０.０以外の場合、即ち、ネットワーク対応型デバイスが以前に使用したＩＰアドレス値が記録されている場合（ステップＳ２でｎｏ）、まず、ネットワーク対応型デバイスが現在接続されているネットワークセグメントが、前回接続されていたネットワークセグメントと同一か否かを確認するために、不揮発メモリ（フラッシュＲＯＭ３０２）上に記録されたＡＲＰキャッシュの内容を元に、ＡＲＰパケットを発行する。ＡＲＰキャッシュには、ネットワークに接続された他のデバイスの物理アドレス、ＩＰアドレスが記憶されている。ＡＲＰパケットを発行する際は、ＩＰアドレスの最上位バイトが１６２以外、即ち、自動ＩＰアドレス取得を使用しておらず、ＩＰアドレスが変更される可能性の低いデバイスに対してＡＲＰパケットを発行し、そのＩＰアドレスを有するデバイスがネットワーク上に存在するか否かを確認する（ステップＳ１５）。
【００４５】
ＡＲＰパケットに対する応答が得られなかった場合は（ステップＳ１６でｎｏ）、ネットワーク対応型デバイスは前回接続されていたネットワークセグメントとは異なるネットワークセグメントに接続されたものと判断し、新規にＩＰアドレスを取得する必要があるので、上記ステップＳ３からステップＳ１４までのプロセスを実行する。
【００４６】
ＡＲＰパケットに対する応答が得られた場合は（ステップＳ１６でｙｅｓ）、ネットワーク対応型デバイスは前回接続されていたネットワークセグメントと同一のネットワークセグメントに接続されていたものと判断し、この場合は、不揮発メモリ（フラッシュＲＯＭ３０２）上に記憶されたＩＰアドレス、即ち、前回ネットワーク接続されていた際に使用していたＩＰアドレスを用い、該ＩＰアドレスが既にネットワーク上で稼動している他のデバイスに使用されているか否かをチェックする。このチェックのために、ターゲットＩＰアドレスに該ＩＰアドレスをセットし、発信元アドレスをネットワーク対応型デバイス自身の物理アドレスにセットし、発信元ＩＰアドレスには０.０.０.０をセットしたＡＲＰプローブパケットを発行する。また、それと同時に内部タイマをゼロクリアする（ステップＳ１７）。
【００４７】
ＡＲＰプローブパケットに対し応答があった場合は（ステップＳ１８でｙｅｓ）、該ＩＰアドレスは、既にネットワーク上で稼動している他のデバイスに使用されていることを意味する。この場合は、上記ステップＳ３と同一の手順で候補となるＩＰアドレスを生成するが（ステップＳ１９）、該生成したＩＰアドレス値が不揮発メモリ（フラッシュＲＯＭ３０２）上に記憶されたＡＲＰキャッシュに記憶された内容（ネットワークに接続された他のデバイスＩＰアドレス）と同一の場合は（ステップＳ２０でｙｅｓ）、再度、別のＩＰアドレスを生成し、既にネットワーク上で稼動しているデバイスのＩＰアドレスとのコンフリクトの可能性を低減させる。
【００４８】
ＡＲＰプローブパケットに対し応答が無かった場合は（ステップＳ１８でｎｏ）、他のデバイスから発行されるＡＲＰプローブパケットの有無を監視する（ステップＳ２１）。ＡＲＰプローブパケットを受信し、且つＡＲＰプローブパケットのターゲットＩＰアドレスの値がネットワーク対応型デバイス自身のＩＰアドレスと同一であった場合（ステップＳ２２でｙｅｓ）、ネットワーク上で稼動を開始した他のデバイスとのＩＰアドレスがコンフリクトする可能性あるので、ＡＲＰプローブパケットに対しては応答せず、再度、候補となるＩＰアドレスを生成し（ステップＳ１９）、ステップＳ１７以降の処理を実行する。
【００４９】
本実施の形態においては、上記自動ＩＰアドレス取得手順（draft-ietf-zeroconf-ipv4-linklocal-01.txt）記載の推奨に従い、ステップＳ２１からステップＳ２２までの検証を４秒間隔で３回繰り返すが、本実施の形態では、以下の手順に従い、ネットワーク上のＡＲＰプローブのトラフィックに応じ再検証のインターバルを調整する。
【００５０】
上記ステップ２１においてＩＰアドレスのコンフリクトが検出されない場合、次に１秒あたりのＡＲＰプローブのパケット受信数を計測する。ＡＲＰプローブパケットの受信数が５０パケット/secを超える場合は、例えば停電後の同時復旧など、ネットワーク上のデバイスが一斉に自動ＩＰアドレス取得のプロセスを実行することによるトラフィック増加を意味するものであり、本実施の形態においては、ＡＲＰプローブパケットの受信数が１０パケット/sec以下になるまでＡＲＰプローブパケットの監視を継続する（ステップＳ２３）。これにより、ネットワーク上のトラフィックの低減を実現する。ＡＲＰプローブパケットの受信数が１０パケット/sec以下であり、且つネットワーク対応型デバイス自身の発行したＡＲＰプローブが４秒経過した場合は（ステップＳ２４でｙｅｓ）、ステップＳ１７に戻り、再度、ＡＲＰプローブを発行する。
【００５１】
以上のステップＳ１７〜ステップＳ２４を３回繰り返した後（ステップＳ２５）、ステップＳ１１へ進む。
【００５２】
本実施の形態では、ネットワーク対応型デバイスとしてプリンタを例に挙げた場合を示しているが、ネットワーク対応型デバイスとしては、スキャナ、ファクシミリ、複写機、それらを複合した機能（画像読取機能、ファクシミリ機能、画像形成機能）を備えた複合機、デジタルカメラ等の画像処理装置、或いは画像処理装置に限らず情報を処理する装置に適用することが可能であり、この種の装置であれば、いずれの場合においても本発明を実現することが可能である。
【００５３】
また、本実施の形態では、新規ＩＰアドレスを生成する度に乱数生成アルゴリズムを使用しているが、一度ＩＰアドレスを生成した後にコンフリクトを検出し、再度ＩＰアドレスを生成する際は、単純に、最初に生成したＩＰアドレスに特定値を加算或いは減算するような他の処理手順を採用することでも、本発明を実現することが可能である。
【００５４】
また、本実施の形態では、ＡＲＰプローブを４秒間隔で３回発行することで、他のデバイスとのＩＰアドレスのコンフリクトの有無を確認しているが、これらの値は、上記の例に限定されるものではなく、また、これらの値を固定値ではなく、ネットワーク対応型デバイスの操作パネル、或いはネットワーク対応型デバイスに実装されたＨＴＴＰサーバ等を介して設定変更することも可能である。
【００５５】
同様に、ＡＲＰプローブのトラフィックの計測における単位時間あたりのパケット数に関しても、上記の例に限定されるものではなく、設定変更を可能とする実施形態を採ることも可能である。
【００５６】
また、本実施の形態では、ネットワークに接続された他のネットワーク対応型デバイスのＭＡＣアドレスとＩＰアドレスの情報としてＡＲＰキャッシュの内容を不揮発メモリ（フラッシュＲＯＭ３０２）上に記憶しているが、他の実施形態では、Microsoftが主催するUniversal Plug and Play Device Architecture1.0で規定されるＧＥＮＡ（General Event Notification Architecture） Notifyパケットを監視し、該パケットのＬＯＣＡＴＩＯＮヘッダから他のネットワーク対応型デバイスのＩＰアドレスを、ＵＵＩＤヘッダからＭＡＣアドレスを取得し、受信した全てのNotifyパケットからネットワーク上に存在し、且つNotifyパケットの発行が可能なネットワークデバイスのＭＡＣアドレスとＩＰアドレスの情報を不揮発メモリ上に記憶する。
【００５７】
また、他の実施形態では、ＡＲＰプローブのトラフィックと連動して、他のデバイスから発行される単位時間当たりのプローブパケット数に応じて、自身のＡＲＰプローブ発行の間隔/発行回数を変化させる。
【００５８】
また、他の実施形態では、フラッシュＲＯＭ３０２に、第１のネットワーク用のＡＲＰキャッシュ及びネットワーク対応型デバイス自身の第１のＩＰアドレスと、第２のネットワーク用のＡＲＰキャッシュ及びネットワーク対応型デバイス自身の第２のＩＰアドレスを記憶する。そして、第１のネットワーク用のＡＲＰキャッシュに含まれるＩＰアドレスを有するデバイスがネットワーク上に存在する場合、ネットワーク対応型デバイス自身のＩＰアドレスとして、第１のＩＰアドレスを用いる。また、第２のネットワーク用のＡＲＰキャッシュに含まれるＩＰアドレスを有するデバイスがネットワーク上に存在する場合、ネットワーク対応型デバイス自身のＩＰアドレスとして、第２のＩＰアドレスを用いる。
【００５９】
尚、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。上述した実施形態の機能を実現するソフトウエアのプログラムコードを記憶した記憶媒体等の媒体をシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体等の媒体に格納されたプログラムコードを読み出し実行することによっても、本発明は実現可能である。
【００６０】
この場合、記憶媒体等の媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体等の媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体等の媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、或いはネットワークを介したダウンロードなどを用いることができる。
【００６１】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も、本発明に含まれる。
【００６２】
更に、記憶媒体等の媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も、本発明に含まれる。
【００６３】
【発明の効果】
以上説明したように、本発明によれば、アドレスが他のデバイスとコンフリクトする可能性を低下させることができる。
【００６４】
また、本発明によれば、トラフィックを低減させることができる。
【００６５】
また、本発明によれば、デバイスを利用するクライアント側アプリケーションの設定変更の必要性を低減することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るネットワーク対応型デバイスのハードウエアの構成を示すブロック図である。
【図２】図１に示すネットワーク対応型デバイスのソフトウエアの構成を示すブロック図である。
【図３】図１に示すネットワーク対応型デバイスにおける処理を示すフローチャートである。
【図４】図３のフローチャートの続きである。
【符号の説明】
３０１  ＣＰＵ（決定手段）
３０２  フラッシュＲＯＭ（メモリ手段）
３０３  ＲＡＭ
３０４  ＬＡＮコントローラ
３０５  ＬＡＮ物理層制御部
３０７  ペリフェラルＩ／Ｆコントローラ（通信手段）
３０８  ペリフェラルＩ／Ｆ
【図１】
0003780259.tif 000002
【図２】
0003780259.tif 000003
【図３】
0003780259.tif 000004
【図４】
0003780259.tif 000005