(57)【要約】【課題】ホスト名を管理するサーバが存在しないと、ホスト名が重複することがある。【解決手段】機器３はデフォルト候補ホスト名を持つ。機器３は、機器３以外のリンクローカルネットワーク１内に存在する機器２のホスト名を取得する。機器３は、デフォルト候補ホスト名を候補ホスト名とし、該取得したホスト名と機器３の候補ホスト名が重複しない場合、候補ホスト名をホスト名として設定する。重複する場合、該機器２のホスト名と重複しないホスト名を生成して設定する。【選択図】    図３
2004328358.tif 000002
【特許請求の範囲】
【請求項１】
他装置のホスト名を取得する取得手順と、
該取得した他装置のホスト名と異なるホスト名を自装置のホスト名として設定する設定手順とを備え、
重複しないホスト名を設定することを特徴とするホスト名設定方法、ホスト名設定プログラム、または、該ホスト名設定方法を実行する通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホスト名設定方法、プログラム、及び、通信装置に関する。
【０００２】
【従来の技術】
インターネットにおいて、ホスト名とＩＰアドレスの対応をとることは普通に行われている。この対応をとることを名前解決という。ホスト名とは、例えば「ｈｏｓｔ．ｃａｎｏｎ．ｃｏ．ｊｐ」や「ｈｏｓｔ」といった、人間が読みやすくした文字列であり、多くの場合、あるパソコン１台や機器１台といった機器毎に人間がつけるものである。本発明では、前者をＦｕｌｌｙ  Ｑｕａｌｉｆｉｅｄ  Ｄｏｍａｉｎ  Ｎａｍｅ（以下ＦＱＤＮと記す）、後者をホスト名と呼び区別する。
【０００３】
ＩＰアドレスは例えばＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ４（以下ＩＰｖ４と記す）であるならば１９２．１０．０．１といった表記がなされ、Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ  ６（以下ＩＰｖ６と記す）であるならば２００１：０３４０：１０００：：１といった表記がなされる。
【０００４】
ＩＰｖ６において、機器同士で直接メッセージをやりとりすることにより名前解決を行う仕組みがインターネットドラフト（Ｍａｔｔ  Ｃｒａｗｆｏｒｄ、「ＩＰｖ６  Ｎｏｄｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｑｕｅｒｉｅｓ」、ｄｒａｆｔ−ｉｅｔｆ−ｉｐｎｇｗｇ−ｉｃｍｐ−ｎａｍｅ−ｌｏｏｋｕｐｓ−０９．ｔｘｔ、Ｍａｙ  １７，  ２００２。以下ドラフトと記す）で提案されている。
【０００５】
ドラフトでは、以下のようにして名前解決を行うことが説明されている。
【０００６】
ＩＣＭＰｖ６パケットを用いて機器間で直接メッセージのやり取りを行う。問い合わせ元から問い合わせ先への問い合わせ用のＩＣＭＰｖ６パケットを「Ｎｏｄｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｑｕｅｒｙ」（以下ＮＩ  Ｑｕｅｒｙと記す）、問い合わせ先から問い合わせ元への返答用のＩＣＭＰｖ６パケットを「Ｎｏｄｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒｅｐｌｙ」（以下ＮＩ  Ｒｅｐｌｙと記す）と定義している。
【０００７】
問い合わせ元は、ＮＩ  Ｑｕｅｒｙを問い合わせ先に送信する。ＮＩ  Ｑｕｅｒｙには、問い合わせ先のどの情報が欲しいかといった要求が含まれている。問い合わせ先はＮＩ  Ｑｕｅｒｙを受信し、チェックを行って返信を行うと決定した場合、ＮＩ  Ｑｕｅｒｙに含まれる要求に沿うデータをＮＩ  Ｒｅｐｌｙに含み、ＮＩ  Ｒｅｐｌｙを問い合わせ元に送信する。問い合わせ元は、ＮＩ  Ｒｅｐｌｙを受信し、ＮＩ  Ｒｅｐｌｙをチェックし、要求に沿うデータが含まれていれば、それを取り出す。
【０００８】
問い合わせ方法にはＳｕｂｊｅｃｔアドレスを用いる方法と、Ｓｕｂｊｅｃｔ名を用いる方法の２種類が挙げられている。
【０００９】
最初にＳｕｂｊｅｃｔアドレスを用いる方法について説明する。問い合わせ元が、ＮＩ  Ｑｕｅｒｙに、Ｓｕｂｊｅｃｔアドレスと称されるＩＰｖ６アドレスを含め、問い合わせ先にＮＩ  Ｑｕｅｒｙを送信する。問い合わせ先は、ＮＩ  Ｑｕｅｒｙを受信後、ＮＩ  Ｑｕｅｒｙ内のＳｕｂｊｅｃｔアドレスをチェックし、問い合わせ先が返答する必要があるＳｕｂｊｅｃｔアドレスであるならば、ＮＩ  Ｑｕｅｒｙに記された要求に従い、ＦＱＤＮ（ホスト名の場合もある）もしくは問い合わせ先のユニキャストアドレスを返信する。Ｓｕｂｊｅｃｔアドレスは、大抵問い合わせ先のユニキャストアドレスであり、ＮＩ  Ｑｕｅｒｙの送信先アドレスも問い合わせ先のユニキャストアドレスである。
【００１０】
次に、Ｓｕｂｊｅｃｔ名を用いる方法について説明する。Ｓｕｂｊｅｃｔ名を用いる方法では、問い合わせ元がＮＩ  ＱｕｅｒｙにＳｕｂｊｅｃｔ名となる文字列を含め、問い合わせ先にＮＩ  Ｑｕｅｒｙを送信する。その際、問い合わせ元が問い合わせ先のユニキャストアドレスを所持せず、Ｓｕｂｊｅｃｔ名がＦＱＤＮかまたはホスト名の場合、以下のようにして作成したＮｏｄｅ  Ｉｎｆｏｒｍａｔｉｏｎグループアドレス（以下ＮＩグループアドレスと記す）という名前のリンクローカルスコープマルチキャストアドレスを送信先アドレスとする。
【００１１】
ＮＩグループアドレスの作成方法は以下のとおりである。ホスト名を一方向ハッシュ関数（ドラフトではＭＤ５（Ｒ．  Ｒｉｖｅｓｔ、「Ｔｈｅ  ＭＤ５  Ｍｅｓｓａｇｅ−Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ」、ＲＦＣ１３２１、Ａｐｒｉｌ  １９９２））に通し、１２８ビットのデータを得る。一方向ハッシュ関数とは、関数ｈとその定義域のある値ｘが与えられて、ｈ（ｘ）＝ｈ（ｙ）となるようなｙを求めることが難しいような関数のことである。さらに、衝突困難ハッシュ関数というのがあり、この関数は、関数ｈが与えられていて、ｈ（ｘ）＝ｈ（ｙ）となるような一対の値（ｘ、ｙ）を求めることが難しいような関数である。両者をまとめて一方向ハッシュ関数と呼ぶことが多々あり、本提案でもその慣習に習う。つまり、一方向ハッシュ関数とは、本関数を用いて生成したデータ列から元データを算出することが難しく、また異なる元データＡとＢから本関数を用いて生成したデータ列が一致することが稀な関数のことである。一方向ハッシュ関数については、例えば「現代暗号」（岡本龍明、山本博資  著、産業図書株式会社、シリーズ／情報科学の数学、ＩＳＢＮ４−７８２８−５３５３−Ｘ  Ｃ３３５５）の１２章などの他、暗号関係の書籍に詳しい説明があるので、本発明での詳細な説明は省略する。
【００１２】
この１２８ビットの最初の３２ビットに、「ｆｆ０２：０：０：０：０：２：：／９６」のプレフィックスを追加して、マルチキャストアドレスを作成する。この作成したマルチキャストアドレスをＮＩグループアドレスとする。ＮＩ  Ｑｕｅｒｙを受信した問い合わせ先は、ＮＩ  Ｑｕｅｒｙの送信先アドレスをチェックし、問い合わせ先のユニキャストアドレス、エニキャストアドレス、問い合わせ先が参加しているリンクローカルスコープマルチキャストアドレス（ＮＩグループアドレスも含まれる）でない場合、パケットを廃棄する。それ以外の場合、問い合わせ先は、ポリシーに従い返信するかどうか決定し、ＮＩ  Ｑｕｅｒｙに記された要求に従い、名前もしくはユニキャストアドレスを返信する。
【００１３】
【発明が解決しようとする課題】
ドラフトの仕組みを用いることにより、機器同士が直接通信を行い、ホスト名を取得することは可能となった。
【００１４】
しかしながら、ホスト名が重複した場合にどのような処置を行うかは、ドラフト外のことであり既定されていない。
【００１５】
ホスト名の重複を回避することは、名前解決を行う上で必要である。回避策の１つとして、メーカーが機器に事前に非常に長いシリアル番号をホスト名として仕込んでおき、重複する確率を下げることは可能である。しかし、ユーザが他の機器に任意にホスト名をつけることは可能なので、重複する可能性は依然存続する。
【００１６】
つまり、ネットワーク上で重複したホスト名を検出し、重複を回避する仕組みが必要となる。
【００１７】
本発明は、上記の問題に鑑みてなされたものであり、重複しない名前を生成し設定することを目的とする。
【００１８】
【課題を解決するための手段】
上記目的を達成するために、本発明は、他装置のホスト名を取得する取得手順と、該取得した他装置のホスト名と異なるホスト名を自装置のホスト名として設定する設定手順とを備え、重複しないホスト名を設定することを特徴とする。
【００１９】
あらかじめ設定されているホスト名が、他の装置のホスト名と重複していれば、他の装置のホスト名と重複しないように、あらかじめ設定されているホスト名に、付加情報を加えて、自装置のホスト名に設定する。
【００２０】
【発明の実施の形態】
本発明の実施の形態を、図面を参照しながら説明する。
【００２１】
（第１の実施の形態）
本実施の形態では、リンクローカルネットワーク１に、機器２が接続されている場合を想定する。この環境に、機器を追加、削除などを行う場合を説明する。
【００２２】
図１は、本実施の形態を適用する環境を示す図である。リンクローカルネットワーク１があり、ｐｒｉｎｔｅｒというホスト名を持ち、リンクローカルスコープＩＰｖ６アドレス「ｆｅ８０：：１００１」を持つ、機器２が存在する。リンクローカルネットワーク１の物理層の種類は特に種類は問わない。イーサネット（登録商標）、ＩＥＥＥ８０２．１１、Ｂｌｕｅｔｏｏｔｈなど、物理層の上位でＩＰｖ６による通信ができれば問題ない。ただし、マルチキャストアドレスによる通信とユニキャストアドレスによる通信が行える必要がある。機器２は、ＮＩ  Ｑｕｅｒｙを受信し、ホスト名を含めたＮＩ  Ｒｅｐｌｙを返信する。本実施の形態では、物理層がイーサネット（登録商標）の場合を例とする。
【００２３】
図２は、機器２の一般的な構成を示す図である。ＣＰＵ２０１が機器２の全体の動作を制御する。ＲＡＭ２０２は一時記憶装置であり、ＲＯＭ２０３はプログラムなど、消去不可能なデータが組み込まれているＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙである。ネットワークインタフェース２０４は、機器２が外部機器とデータ送受信を行う際に使用するインタフェースである。バス２０５は、各モジュールを接続する内部バスである。さらに、ハードディスクなどの大容量記憶装置、ディスプレイやキーボード、マウス、プリントアウト部といった入出力機器用のインタフェースなどを備えていてもよい。機器２は、ネットワークインタフェース２０４により、リンクローカルネットワーク１と接続可能で、ＩＰｖ６通信が行えれば問題ない。
【００２４】
―機器をネットワークに追加する場合―
ここで、図１に示された環境に機器３が追加される場合を想定する。この環境は、図３で示される。機器３の一般的な構成を図４に示す。基本的に機器２と同じであり、リンクローカルネットワーク１と接続可能でＩＰｖ６通信が行えれば問題ない。
【００２５】
機器３がリンクローカルネットワーク１に接続された場合の動作を、図５に示すフローチャートを参照しながら説明する。
【００２６】
図５のＳ１０１において、本発明の実施の形態の動作がスタートする。スタート時、機器３には予めＲＯＭ３０３に仕込まれたデフォルト候補ホスト名があるものとする。デフォルト候補ホスト名とは、ネットワーク参照されるホスト名用に仕込まれている文字列データであるが、まだネットワーク参照される状態になっていない、単なる文字列データのことである。デフォルト候補ホスト名は、ＲＯＭ３０３に記録されている。本実施の形態では、デフォルト候補ホスト名を「ｐｒｉｎｔｅｒ」とする。このデフォルト候補ホスト名は、後述するＳ１０７において、取得したホスト名と初回に比較される場合の候補ホスト名となる。
【００２７】
図５のフローチャートは、他装置（機器２）のホスト名を取得する取得手順（Ｓ１０４）と、該取得した他装置のホスト名と異なる自装置のホスト名の候補文字列を生成する生成手順（Ｓ１１３）と、候補文字列をホスト名として設定する設定手順（Ｓ１０９）とを備え、重複しないホスト名を設定するホスト名設定プログラムであり、ホスト名設定方法を示す。また、ネットワークインタフェース３０４は、他装置（機器２）のホスト名を取得し、ＣＰＵ２０１は、該取得した他装置のホスト名と異なる自装置のホスト名の候補文字列を生成し、候補文字列をホスト名として設定する。
【００２８】
本実施の形態では、デフォルト候補ホスト名を機器の属性を示す「ｐｒｉｎｔｅｒ」とするが、例えば「ｔｖ」、「ｃａｍｅｒａ」、「ｖｉｄｅｏｃａｍｅｒａ」、  「ｄｉｇｉｔａｌｃａｍｅｒａ」、「ｐｌａｙｅｒ」、「ｍｏｄｅｍ」など、他の文字列でもかまわない。さらに、ホスト名に機器の製品名を示す文字列、例えば、「ｐｉｘｕｓ９５０ｉ」「ｐｉｘｕｓ８５０ｉ」、「ｌｂｐ９００」でもかまわない。さらに、「ｃａｎｏｎ」などのメーカー名が含まれていても、無論かまわない。デフォルト候補ホスト名は、その機器を判別する際にわかりやすいものが望ましい。またＤＮＳ関連のＲＦＣ（Ｋ．  Ｈａｒｒｅｎｓｔｉｅｎ、Ｍ．  Ｓｔａｈｌ、Ｅ．  Ｆｅｉｎｌｅｒ、「ＤＯＤ  ＩＮＴＥＲＮＥＴ  ＨＯＳＴ  ＴＡＢＬＥ  ＳＰＥＣＩＦＩＣＡＴＩＯＮ」、ＲＦＣ９５２、Ｏｃｔｏｂｅｒ  １９８５とＲ．  Ｂｒａｄｅｎ、「Ｒｅｑｕｉｒｅｍｅｎｔｓ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ｈｏｓｔｓ  −−  Ａｐｐｌｉｃａｔｉｏｎ  ａｎｄ  Ｓｕｐｐｏｒｔ」、ＲＦＣ１１２３、Ｏｃｔｏｂｅｒ  １９８９）で規定された文字のみを使用するのが望ましい。
【００２９】
具体的なスタート時は、例えば電源ＯＮされた機器３がリンクローカルネットワーク１にコネクタで接続されたときや、接続されていたが電源ＯＦＦだった機器３が電源ＯＮされたときなどが相当する。機器３のＣＰＵ３０１が、ＲＯＭ３０３内のプログラム、もしくはＲＯＭ３０３からＲＡＭ３０２にコピーされたプログラムを起動して実行開始となる。ＣＰＵ３０１は、このプログラムを実行するコンピュータである。スタート時、Ｓ１０３で生成される名前解決リスト（後述）にデータが記録されていた場合、初期化しておく。
【００３０】
また、機器３は、Ｓ１１０に遷移して終了するまでの間に、他ホストからホスト名を問い合わせるＮＩ  Ｑｕｅｒｙを受信した場合、Ｃｏｄｅフィールド  ０（ゼロ）、データフィールド  空のＮＩ  Ｒｅｐｌｙを返信するように設定されている。
【００３１】
スタート後、Ｓ１０２において、ＣＰＵ３０１はＲＦＣ２４６０に従い、ネットワークインタフェース３０４のＭＡＣアドレスよりインタフェースＩＤという６４ビットのＩＤを生成する。ここで、ネットワークインタフェース３０４にＭＡＣアドレスのような数字がない場合は、ＲＦＣ２４６０に詳細に記述されて処理を行う。次に、インタフェースＩＤとｆｅ８０：：／６４というリンクローカルを示す６４ビットのプレフィックスを併せ、リンクローカルアドレスを生成する。次に、リンクローカルアドレスが同じリンクローカルネットワーク１内で重複しないかどうか、重複アドレス検出（Ｄｕｐｌｉｃａｔｅｄ  Ａｄｄｒｅｓｓ  Ｄｅｔｅｃｔｉｏｎ、以下ＤＡＤと記す）を行う。重複したアドレスがリンクローカルネットワーク１上に存在しなかった場合、生成したリンクローカルアドレスを設定し、使用可能とする。重複した場合、別のリンクローカルアドレスを生成し、同様にＤＡＤを試行し、重複するか再び検査する。何度か試行してリンクローカルアドレスを設定できない場合、ＮＯとなり、Ｓ１１０に遷移し終了する。
【００３２】
Ｓ１０２においてリンクローカルアドレスを設定できた場合、ＹＥＳとなり、Ｓ１０３に遷移する。
【００３３】
Ｓ１０３において、他のホストが存在するか検査する。具体的には、ＣＰＵ３０１はリンクローカルオールノードマルチキャストアドレス（ｆｆ０２：：１）宛にＩＣＭＰｖ６エコー要求メッセージを送信し、ＩＣＭＰｖ６エコー応答メッセージが返信されるかチェックする。ここで、機器３（自分）以外の機器からのＩＣＭＰｖ６エコー応答メッセージがない場合、リンクローカルネットワーク１上には自分以外の機器が存在しないと判断できるので、ＮＯとなり、Ｓ１０９に遷移する。Ｓ１０９において、ＣＰＵ３０１はデフォルト候補ホスト名をホスト名として有効にし、ネットワーク参照される（他機器からＮＩ  Ｑｕｅｒｙによるホスト名の問い合わせがあった場合、この有効となったホスト名を含めたＮＩ  Ｒｅｐｌｙを返すようにする）ようにし、Ｓ１１０に遷移して終了する。
【００３４】
機器３（自分）以外の機器からのＩＣＭＰｖ６エコー応答メッセージがある場合、リンクローカルネットワーク１上に他の機器が存在すると判断できるので、Ｓ１０３はＹＥＳとなり、図６に示される名前解決リスト（後述）をＲＡＭ３０２もしくは読み書き可能な記録媒体上に生成し、Ｓ１０４に遷移する。図３の例では、機器２が存在し、機器２がＩＣＭＰｖ６エコー応答メッセージを機器３に返信する。機器３は、返信があった場合、その返信の送信元アドレスを収集し、ＲＡＭ３０２内の図６に示すようなリストに記録しておく。これを名前解決リストと称することにする。図６の管理番号とは、返信された送信元アドレスに順番に振った管理上の番号であり、１から昇順に振られるものとする。ただし、この管理番号は名前解決リスト内で一意に送信元アドレスを区別できればよい。さらに送信元アドレスをキーとしてリストを管理することも可能であるので、管理番号はなくてもよい。また名前解決リストはＲＡＭ３０２内に必ずしも存在する必要はなく、読み書き可能な記録領域、例えばハードディスクなどでも問題ない。図３の例では、機器２のＩＰｖ６アドレスが記録される。Ｓ１０３において図６に示すように生成した名前解決リストは、名前解決処理に以後使用できるので、リスト生成後、アプリケーションソフトウェアは名前解決の必要がある場合、図６に示したリストを参照してもよい。
【００３５】
Ｓ１０４において、機器３は、ＲＡＭ３０２に記録した送信元アドレスを送信先アドレスとしたＮＩ  Ｑｕｅｒｙを生成、送信し、相手機器のホスト名取得を行う。ここで、ＮＩ  Ｑｕｅｒｙの送信は、Ｅｔｈｅｒｎｅｔ（登録商標）やＩＥＥＥ８０２．３で用いられているＥｘｐｏｒｎｅｎｔｉａｌ  Ｂａｃｋｏｆｆアルゴリズムに従い、再送するものとする。例えば、台形型バイナリ・エクスポーネンシャル・バックオフ（ｔｒｕｎｃａｔｅｄ  ｂｉｎａｒｙ  ｅｘｐｏｎｅｎｔｉａｌ  ｂａｃｋｏｆｆ）を用いて、再送信間隔ＴをＴ［ｍｓ］＝１０×ｎで決定されるものとする。整数ｎは０≦ｎ＜（２のｋ剰）の範囲からランダムに選択する。ただし、ｋは衝突回数で最大値は１０であり、１０回試行されるものとする。このアルゴリズムはＥｔｈｅｒｎｅｔ（登録商標）において長年用いられてきたものであり、混雑時には確率的に再送時の衝突の可能性を減らし、非混雑時には再送遅延が小さくなるように設計されている。
【００３６】
Ｓ１０５において、ＮＩ  Ｒｅｐｌｙが返信されたか確認し、ＮＩ  Ｒｅｐｌｙ中に通信相手のホスト名が含まれているかチェックする。ここで、ＮＩ  Ｒｅｐｌｙがタイムアウトその他の理由により１つも返信されない場合や、ＮＩ  Ｒｅｐｌｙが返信されたが、コードフィールドの値が１で、ホスト名の返答を拒否され、ホスト名が１つも含まれていなかった場合、ＮＯとなり、Ｓ１０９に遷移する。コードフィールドの値が１もしくは２の場合、図６に示すような名前解決リストにおいて、対応する機器のＩＰｖ６アドレス、管理番号、ホスト名の部分を全て削除する。ただし、後述のコードフィールド０、データフィールド空のＮＩ  Ｒｅｐｌｙが返答された場合、ホスト名が含まれていると判断することとする。ホスト名を設置中の機器は、このようなＮＩ  Ｒｅｐｌｙを返答する。このようなＮＩ  Ｒｅｐｌｙ  が返答された場合、図７において、そのＩＰｖ６アドレスは記述されているが、ホスト名の部分が空になる。もし、機器２がホスト名を設定中であれば、管理番号１の行は、ＩＰｖ６アドレス「ｆｅ８０：：１００１」が記述されるが、ホスト名の部分は、空のままとなる。Ｓ１０５がＮＯとなれば、Ｓ１０９において、候補ホスト名をホスト名として有効にし、ネットワーク参照されるようにし、Ｓ１１０に遷移して終了する。
【００３７】
Ｓ１０５において１つ以上のホスト名を取得できた場合、図７に示すように、ＲＡＭ３０２内にＳ１０３で生成された名前解決リストで、対応するＩＰｖ６アドレスの行にホスト名を記録する。図３の例では、機器２のＩＰｖ６アドレス「ｆｅ８０：：１００１」と同じ行に、機器２のホスト名「ｐｒｉｎｔｅｒ」が記録される。１つ以上のホスト名を取得できたので、ＹＥＳとなり、Ｓ１０６に遷移する。
【００３８】
Ｓ１０６において、ホスト名設定中の他機器がないかチェックする。具体的には、図７において、ＩＰｖ６アドレスは記述されているが、ホスト名の部分が空である行がないか、チェックする。なければＮＯとなり、Ｓ１０７に遷移する。図３の例ではないので、Ｓ１０７に遷移する。あればＹＥＳとなり、図１１のＳ１１０１に遷移する。図１１のアルゴリズムについては、後述する。
【００３９】
Ｓ１０７において、取得した全てのホスト名と、候補ホスト名を比較する。１回目の比較の際は、ＲＯＭ３０３内に記録されているデフォルト候補ホスト名を読み出し、候補ホスト名とする。デフォルト候補ホスト名をＲＡＭ３０２内に一時書き出して候補ホスト名として使用してもよい。こうして用意した候補ホスト名を、図７で示した「ｐｒｉｎｔｅｒ」といった取得したホスト名の文字列と一致するか比較する。
【００４０】
Ｓ１０８において、重複するホスト名があったか判断する。本実施例では、候補ホスト名である「ｐｒｉｎｔｅｒ」と、取得したホスト名である「ｐｒｉｎｔｅｒ」が一致するので、ＹＥＳとなり、Ｓ１１１に遷移する。もし取得した複数のホスト名に、候補ホスト名「ｐｒｉｎｔｅｒ」と一致するものがなければ、ＮＯとなる。その場合、Ｓ１０９に遷移し、Ｓ１０９において、候補ホスト名をホスト名として有効にし、ネットワーク参照されるようにし、Ｓ１１０に遷移して終了する。
【００４１】
Ｓ１１１において、試行回数をインクリメントする。例えば、試行回数の初期値が０だとすると、ここで１インクリメントされるとすれば１となる。Ｓ１１１においてインクリメント、と記述したが、デクリメントでもかまわない。つまり、何回試行したかカウントできれば問題ない。
【００４２】
Ｓ１１２において、試行回数が試行限度回数を超えたかチェックする。例えば、試行限度回数が５回であるならば、今回、試行回数は１であるので、試行限度回数より大きくないのでＮＯとなり、Ｓ１１３に遷移する。Ｓ１１２において、試行回数が試行限度回数を超過した場合、Ｓ１１０に遷移し終了となる。
【００４３】
Ｓ１１３において、新たな候補ホスト名を生成する。候補ホスト名を生成するアルゴリズムは既に色々提案されている。本実施の形態では、図８に示す方法を行う。
【００４４】
図５のＳ１１３より図８のＳ８０１に遷移してスタートする。Ｓ８１１において、試行回数がＮ回以上かチェックする。Ｎ回は、このアルゴリズムを組み込む機器の種類によって異なってくる。本実施の形態では仮にＮ＝１０とする。Ｓ８１１において、試行回数がＮ回以上ならＹＥＳとなり、Ｓ８２１に、Ｎ回より少ないならＳ８１２に遷移する。Ｓ８１２において、シーケンシャルな処理を基本とした新たな候補ホスト名を生成し、Ｓ８３１に遷移して、候補ホスト名生成アルゴリズムは終了する。Ｓ８１１でＹＥＳとなり、Ｓ８２１に遷移した場合、Ｓ８２１において、試行回数がＮ＋Ｓ回以上かチェックする。Ｓ回は、Ｓ８２２で行う処理を何度行うかという回数である。先のＮ回と同様、このＳも組み込む機器や環境を想定して設定すべき値である。本実施の形態では、仮に５回とする。ここで、試行回数がＮ＋Ｓ回より少ない場合、Ｓ８２２に遷移する。Ｓ８２２において、ランダムな処理を基本とした新たな候補ホスト名を生成し、Ｓ８３１に遷移して終了する。
【００４５】
一方、試行回数がＮ＋Ｓ回以上の場合、新たな候補ホスト名を生成せず、Ｓ８３１に遷移し終了となる。なお、試行回数がＮ＋Ｓ回になると、Ｓ１１２がＹＥＳになるように、Ｓ１１２の試行限度回数を設定しておけば、Ｓ８２１のチェックは、不要である。すなわち、デフォルト候補ホスト名と、Ｓ１０４で取得したホスト名の比較を１回目の試行とすると（すなわち、試行回数の初期値を１とすると）、２回目の試行からＮ回目の試行の前までは（例えば、２回目から９回目の試行は）、Ｓ８１２で、新たな候補ホスト名を生成し、Ｎ回目の試行からＮ＋Ｓ回目の試行の前までは（例えば、１０回目から１４回目の試行は）、Ｓ８２２で、新たな候補ホスト名を生成し、Ｎ＋Ｓ回目（１５回目）の試行は、行わずに（Ｓ１１２がＹＥＳとなるので、図８の処理には進まず）、終了する。
【００４６】
図８に示したアルゴリズムでは、シーケンシャルな処理を先に試行し、ランダムな処理を後に試行するようにしている。これは、例えばｐｒｉｎｔｅｒ１，  ｐｒｉｎｔｅｒ２  ，ｐｒｉｎｔｅｒ３，  ｐｒｉｎｔｅｒ４，  …といったシーケンシャルな番号がついたホスト名のほうが、ｐｒｉｎｔｅｒ８２７３４７２４，  ｐｒｉｎｔｅｒ７４３８７２８４，  …といった乱数がつくホスト名よりも、人間が把握しやすいためである。
【００４７】
したがって、ＩＰｖ６通信機器が複数台同時に起動しない場合は、シーケンシャルな番号が振られた、人間にとって識別しやすいホスト名を自動的に設定できる、という効果が得られる。
【００４８】
Ｓ８１２の処理の一例を図９、Ｓ８２２の処理の一例を図１０にそれぞれ示す。
【００４９】
図９で示すアルゴリズムはＳ９０１からスタートする。Ｓ９０２において、古い候補ホスト名からデフォルト候補ホスト名を除去する。図３の例の場合、古い候補ホスト名は「ｐｒｉｎｔｅｒ」であり、デフォルト候補ホスト名は「ｐｒｉｎｔｅｒ」であるので、除去すると文字列なし（ＮＵＬＬ）となる。Ｓ９１１において、除去した結果がＮＵＬＬであるか判定する。ＮＵＬＬであればＹＥＳとなり、Ｓ９１２に遷移する。そうでなければＮＯとなり、Ｓ９１３に遷移する。Ｓ９１２において、除去した結果がＮＵＬＬであった、つまり古い候補ホスト名には数字が付与されていなかったので、１をデフォルト候補ホスト名の後ろに加え、新しい候補ホスト名とする。図３の例では、Ｓ９１２に遷移し、デフォルト候補ホスト名は「ｐｒｉｎｔｅｒ」であるので、新しい候補ホスト名は「ｐｒｉｎｔｅｒ１」となる。その後、Ｓ９２１に遷移して終了する。
【００５０】
Ｓ９１１においてＮＵＬＬでなかった場合、Ｓ９１３に遷移する。例えば、古い候補ホスト名が「ｐｒｉｎｔｅｒ３」であるとすると、デフォルト候補ホスト名「ｐｒｉｎｔｅｒ」を除去した結果は「３」となり、Ｓ９１１からＳ９１３に遷移する。Ｓ９１３において、数字に１をインクリメントし、デフォルト候補ホスト名の後ろに加え、新しい候補ホスト名とする。例えば、「３」がＳ９１３に入力された場合、３に１をインクリメントし「４」となり、その値をデフォルト候補ホスト名「ｐｒｉｎｔｅｒ」に加え、「ｐｒｉｎｔｅｒ４」が新しい候補ホスト名として生成される。
【００５１】
図１０で示すアルゴリズムはＳ１００１からスタートする。図９のＳ９０２、Ｓ９１１と同様に、Ｓ１００２、Ｓ１０１１において、古い候補ホスト名からデフォルト候補ホスト名を除去し、その結果がＮＵＬＬとなるか判断する。除去した結果がＮＵＬＬでない場合、ＮＯとなり、Ｓ１０１３に遷移する。Ｓ１０１３において、乱数を生成し、Ｓ１０１１で除去された結果である数字と同じ場合は、違う数字となるまで乱数の生成を繰り返す。除去された結果である数字と異なった場合、生成した乱数をデフォルト候補ホスト名の後ろに加え、新しい候補ホスト名とし、Ｓ１０２１に遷移して終了する。例えば、Ｓ１０１１において除去した結果が「１０」である場合、Ｓ１０１３において乱数を生成する。仮に乱数を「７２６８３７４１」とすると、乱数は「１０」と一致しないので、デフォルト候補ホスト名「ｐｒｉｎｔｅｒ」のうしろに加えて「ｐｒｉｎｔｅｒ７２６８３７４１」という新しい候補ホスト名を生成し、Ｓ１０２１に遷移して終了となる。
【００５２】
本実施の形態では、図９で、デフォルト候補名の後ろに数字が加えられているので、図８で示したアルゴリズムのおいて、Ｓ１０１１がＹＥＳとなって、Ｓ１０１２を通過することはありえないが、ここでは、アルゴリズムの整合性という観点から記述しておく。Ｓ１０１２に遷移してきた場合、乱数を生成し、デフォルト候補ホスト名のうしろに生成した乱数を加え、新しい候補ホスト名とし、Ｓ１０２１に遷移して終了する。例えば、Ｓ１０１２において、「８２７４９２７３」という乱数が生成され、デフォルト候補ホスト名の後ろに加えられ、「ｐｒｉｎｔｅｒ８２７４９２７３」という新しい候補ホスト名が生成される。しかしながら、Ｓ８２２の処理は、Ｓ１００２で、デフォルト候補ホスト名を除去し、Ｓ１０１３で、新たな乱数を加えるだけで、十分である。
【００５３】
以上、図５のＳ１１３で行われる処理について、図８、９、１０を用いて具体的に説明した。
【００５４】
ここで図５のＳ１１３の処理後に説明を戻す。Ｓ１１３において新しい候補ホスト名が生成されたら、Ｓ１０７に遷移する。Ｓ１０７において、再び、生成された新たな候補ホスト名と、取得したホスト名を比較する。以後Ｓ１０８において重複するホスト名がない場合（ＮＯ）となるか、Ｓ１１２において試行限度回数を超える（ＹＥＳ）となり、Ｓ１１０に遷移するまでＳ１０７からＳ１１３の処理を繰り返す。図３の例では、初回、候補ホスト名は「ｐｒｉｎｔｅｒ」であり、図７で示した取得したホスト名のリストに、「ｐｒｉｎｔｅｒ」というホスト名が存在したので、Ｓ１０８において重複するホスト名ありと判断した。その後、試行回数は初期値０（ゼロ）とすると、Ｓ１１１において１インクリメントされて１となる。Ｓ１１２においてインクリメントされた試行回数「１」は、試行限度回数を「１５」とすると、試行限度回数を超えていないのでＳ１１３に遷移する。Ｓ１１３において、試行回数は１なので、図８、図９で示したアルゴリズムにより処理され、新たな候補ホスト名として「ｐｒｉｎｔｅｒ１」が出力される。Ｓ１１３からＳ１０７に遷移し、再び比較が行われる。新たな候補ホスト名である「ｐｒｉｎｔｅｒ１」は、図７で示したリスト内のホスト名のどれとも一致しないので、ＮＯとなり、Ｓ１０９において「ｐｒｉｎｔｅｒ１」が、重複しない、機器３のホスト名として有効になり、ネットワーク参照されるように設定される。そして、Ｓ１１０において終了する。
【００５５】
すなわち、本形態では、Ｓ１０４で、ネットワークインタフェース３０４により、ネットワークに接続されている装置（機器２）のホスト名を取得し、ＣＰＵ３０１は、取得したホスト名と重複しないホスト名を、自装置のホスト名に設定する。ＲＯＭ２０３には、ホスト名の候補が記憶されており、ＣＰＵ３０１は、このＲＯＭ２０３に記憶されているホスト名が、他の装置（機器２）のホスト名と重複しなければ、このＲＯＭ２０３に記憶されているホスト名を、自装置のホスト名に設定する。ＣＰＵ３０１は、このＲＯＭ２０３に記憶されているホスト名（デフォルトホスト名）が、他の装置（機器２）のホスト名と重複していれば、他の装置（機器２）のホスト名と重複しないように、このデフォルトホスト名（ｐｒｉｎｔｅｒ）に、付加情報（数字）を加えて、自装置のホスト名に設定する。この付加情報は、数字に限らず、アルファベットでもよい。
【００５６】
図１１で示されるアルゴリズムについて記す。図１１で行われる処理は、図５のＳ１０６がＹＥＳとなった場合に実行される処理であり、本提案が同時に２台以上の機器で実行された場合に発生する。このような場合が想定されるケースとしては、例えば、停電後電源スイッチがＯＮのままの複数の機器が、停電復帰後、一斉に起動した場合などが考えられる。図１１で示す処理は、そのような場合の一例の処理である。図１１で示す処理について説明する。
【００５７】
図５のＳ１０６において、ホスト名設定中の機器（ホスト名が未設定の機器）が発見された場合、Ｓ１１０１に遷移する。Ｓ１１０１においてスタート後、Ｓ１１１１において、乱数を生成し、デフォルト候補ホスト名の後ろに加えて新しい候補ホスト名とする。例えば、デフォルト候補ホスト名が「ｐｒｉｎｔｅｒ」の場合、乱数「３４８２７３９７」が生成され、候補ホスト名「ｐｒｉｎｔｅｒ３４８２７３９７」が生成される。
【００５８】
生成後、Ｓ１１１２においてある時間待つ。これは、複数機器の同時起動を考慮した待ちである。例えば、先に説明したＥｘｐｏｒｎｅｎｔｉａｌ  Ｂａｃｋｏｆｆアルゴリズムを用いて待機する。ある時間待ったら、Ｓ１１１３に遷移する。
【００５９】
Ｓ１１１３において、名前解決リストより、ホスト名設定中の機器に対してＮＩ  Ｑｕｅｒｙを送信する。ここで、ホスト名設定中の機器は、名前解決リスト中ではＩＰｖ６アドレスが記述されているが、ホスト名の部分が空として表現される。
【００６０】
Ｓ１１１４にてＮＩ  Ｒｅｐｌｙを受信後、ＮＩ  Ｒｅｐｌｙから送信元アドレスとホスト名を読み出し、名前解決リストに記述する。ここでＮＩ  Ｒｅｐｌｙの処理は、先に、Ｓ１０５で述べたように、コードフィールドが１もしくは２である場合、対応するＩＰｖ６アドレスのある行を削除する。コードフィールドが０である場合、データフィールドよりホスト名を読み出す。すなわち、ホスト名が未設定の装置がネットワークに接続されている場合には、再度、ホスト名を取得する。
【００６１】
Ｓ１１２１において、Ｓ１１１１において生成した候補ホスト名が、名前解決リストのホスト名と重複するかチェックする。重複したら、ＹＥＳとなり、Ｓ１１１１に戻る。重複しなかったらＮＯとなり、Ｓ１１３１に遷移する。
【００６２】
Ｓ１１３１において、設定中の機器がないかチェックする。具体的には、名前解決リストでホスト名の部分が空の行がないかチェックする。あればＮＯとなり、Ｓ１１１２に遷移する。なければＹＥＳとなり、Ｓ１１１１で生成した新しい候補ホスト名は、機器３のホスト名として有効になり、ネットワーク参照されるように設定し、Ｓ１１４１に遷移して終了する。Ｓ１１４１で終了後、図５のＳ１１０に遷移し、本提案のアルゴリズムは終了となる。Ｓ１１２１とＳ１１３１を行う順番は、逆でもよい。また、好ましい実施例では、Ｓ１１２１でＹＥＳとなる回数、Ｓ１１３１でＮＯとなる回数をカウントし、再試行の回数を制限する。ホスト名を設定できない場合、図５のＳ１１０で終了後、例えばユーザに「ホスト名の自動設定ができませんでした」などといったメッセージを表示する、「ホスト名自動設定失敗ランプ」を点灯させるなどのエラー表示を行ったほうがよい。
【００６３】
以上の処理により、以下のことが実現された。リンクローカルネットワーク１において、「ｐｒｉｎｔｅｒ」というホスト名を持つ機器２が存在する状況において、新たな機器３をリンクローカルネットワーク１に追加すると、機器３は、機器２のホスト名を自動的に取得して機器２のホスト名と重複しないホスト名「ｐｒｉｎｔｅｒ１」を自分自身に設定した。つまり、機器３は、リンクローカルネットワーク１において、重複せず人間が判別しやすいホスト名を自動的に設定した。
【００６４】
また、デフォルト候補ホスト名に文字列を付加するという方式により、結果的に設定されるホスト名は、「デフォルト候補ホスト名＋文字列」という型となる。これより、人間がホスト名を見たとき、ホスト名のデフォルト候補ホスト名部分により、機器がデフォルト候補ホスト名に関するグループである、ということを瞬時に知ることが可能となる。例えば、図３の例では「ｐｒｉｎｔｅｒ」というデフォルト候補ホスト名を用いたので、機器がプリンタに属すると容易に識別可能である。さらに、デフォルト候補ホスト名が製品名、メーカー名、その他の場合、その命名による識別効果を得ることができる。
【００６５】
これにより、外部のインターネットと接続せず、名前解決を行うサーバが存在しない、一時的なアドホックネットワークが発生する場合、ホスト名を人間が手動で機器に設定する必要なく、機器を自動的に設定されたホスト名で指定できるようになるので便利である。例えば、複数のノートパソコンと複数のプロジェクターを用いた会議において、ノートパソコン内の資料をプロジェクターに転送して表示する際、プロジェクターを簡単なホスト名で指定可能となる。
【００６６】
以後、好ましい実施の形態では、例えば機器２が機器３にＮＩ  Ｑｕｅｒｙを送信し、機器３のホスト名を取得する。機器３以外の各機器が、ＮＩ  Ｑｕｅｒｙの送信元に、ある時間待機してからＮＩ  Ｑｕｅｒｙを送信し、機器３のホスト名を取得するようにすれば、ＤＮＳサーバなしで、リンクローカルネットワーク１上に存在する機器の名前解決（ホスト名からＩｐｖ６アドレスへの変換）を、全ての機器が行うことが可能となる。
【００６７】
また、機器を複数台追加するときも、同様に行える。充分な時間間隔を持って、１台ずつ追加するのであれば、機器３を追加したときと同様に、問題なくホスト名を自動的に設定することが可能である。また、複数台同時に追加したときも図１１の処理があるので対応可能である。
【００６８】
―機器をネットワークから除去する場合―
図１２のように、リンクローカルネットワーク１上に、機器２、機器３が接続されている状況を想定する。ここで、機器２のＲＡＭ２０２には図１３に示すＩＰｖ６アドレスとホスト名のリストが、機器３のＲＡＭ３０２には図７に示すリストが、先の機器をネットワークに追加する場合で説明した方法を用いて記録されているものとする。
【００６９】
このような状況において、機器２がリンクローカルネットワーク１から除去された場合を想定する。除去だけでなく、電源ＯＦＦなど、通信不可能になった場合でも同様である。
【００７０】
上記状況において、機器３は機器２への通信が発生するまで何も行わない。機器２のホスト名を指定した通信が発生したら、機器３は図７の名前解決リストを参照し、機器２のＩｐｖ６アドレスを用いて、機器２への通信を試みる。通信が成功した場合、何も行わない。その通信にエラーが発生した場合、図１４に示すアルゴリズムがスタートする。このアルゴリズムは、ＣＰＵ３０１が実行するプログラムである。機器３のＣＰＵ３０１は、ＲＯＭ３０３内のこのプログラム、もしくはＲＯＭ３０３からＲＡＭ３０２にコピーされたこのプログラムを起動して実行開始する。ＣＰＵ３０１は、このプログラムを実行するコンピュータである。図１４において、Ｓ１４０１でスタート後、Ｓ１４０２において、相手機器への通信がタイムアウトで失敗したか判定する。タイムアウトで失敗した場合、ＹＥＳとなり、Ｓ１４０３に遷移し、名前解決リストから通信が失敗したＩＰｖ６アドレスと対応するホスト名を削除し、Ｓ１４０４に遷移して終了する。Ｓ１４０２において、それ以外の原因で通信が失敗した場合、何もせずにＳ１４０４に遷移して終了とする。
【００７１】
―機器をネットワークから除去し、再び追加する場合―
前述の「機器をネットワークから除去する場合」ののち、再び機器２を追加する場合を想定する。機器２も、最初の「機器をネットワークに追加する場合」の機器３と同様の動作をするものとする。
【００７２】
リンクローカルネットワーク１において、機器３が「ｐｒｉｎｔｅｒ１」というホスト名で動作している。ここで機器２を追加すると、図５のＳ１０８において、候補ホスト名「ｐｒｉｎｔｅｒ」と取得した（機器３の）ホスト名「ｐｒｉｎｔｅｒ１」の比較の結果、一致しないのでＮＯとなる。ＮＯとなるのでＳ１０９に遷移し、機器２は「ｐｒｉｎｔｅｒ」をホスト名として使用可能となる。
【００７３】
（第２の実施の形態）
第１の実施の形態では、他の機器のホスト名を取得するために、最初にＩＣＭＰｖ６エコー要求メッセージを送信して、返答があった機器に対してのみＮＩ  Ｑｕｅｒｙを送信していた（図５を参照）。しかし、図１５に示すように、ＩＣＭＰｖ６エコー要求を送信せず、ＮＩ  Ｑｕｅｒｙをリンクローカルオールノードマルチキャストアドレスに送信してもよい。
【００７４】
図５と図１５の違いは、Ｓ１５０１からＳ１５０３に示した部分だけであるので、その部分についてのみ説明する。それ以外の動作は実施例１と同様なので省略する。
【００７５】
図１５のＳ１０２において、ＩＰｖ６アドレスを設定後、Ｓ１５０１に遷移する。
【００７６】
Ｓ１５０１において、ＣＰＵ３０１はＮＩ  Ｑｕｅｒｙを生成し、リンクローカルオールノードマルチキャストアドレス宛に送信する。Ｓ１５０２において返信があったかチェックする。なければＮＯとなり、Ｓ１０９に遷移し、候補ホスト名（ここでは比較が発生しなかったのでデフォルト候補ホスト名）をホスト名として有効にし、Ｓ１１０に遷移して終了となる。あればＳ１５０３に遷移する。Ｓ１５０３において、返信されたＮＩ  Ｒｅｐｌｙにホスト名が含まれていたかチェックする。なければＳ１０９に遷移して、上記と同様の処理を行う。あればＳ１０６に遷移し、以後、第１の実施の形態で説明したように処理を継続する。
【００７７】
（第３の実施の形態）
第１の実施の形態において、図９で示したシーケンシャルな候補ホスト名生成アルゴリズムは、処理が単純ではあるが、Ｎ個以上の機器にシーケンシャルな番号つきのホスト名をつけることができなかった。
【００７８】
図１６に示したシーケンシャルな候補ホスト名生成アルゴリズムは、ソートが必要ではあるが、ＮＩ  Ｑｕｅｒｙを行った時点において、最大の番号を持つホスト名の次の番号を設定することが可能となる。
【００７９】
図１６において、図８のＳ８１２より遷移してＳ１６０１よりスタートとなる。また、図５のＳ１１２がＮＯの場合に実行するＳ１１３の処理として、図１６の処理を実行するようにしてもよい。Ｓ１６０２において、ＣＰＵ３０１は、ＲＡＭ３０２内の名前解決リスト内に記録した複数のホスト名のうち、デフォルト候補ホスト名と前方一致するホスト名から、デフォルト候補ホスト名を除去する。例えば、複数のホスト名として、ｐｒｉｎｔｅｒ１，  ｐｒｉｎｔｅｒ２，  …，ｐｒｉｎｔｅｒ９９，  ｐｒｉｎｔｅｒ１００、ｃａｍｅｒａの１０１種があり、デフォルト候補ホスト名が「ｐｒｉｎｔｅｒ」であるとする。前記１０１種に対し、「ｐｒｉｎｔｅｒ」で前方一致検索すると、ｃａｍｅｒａは一致しないので、ｐｒｉｎｔｅｒ１，  ｐｒｉｎｔｅｒ２，  …，ｐｒｉｎｔｅｒ９９，  ｐｒｉｎｔｅｒ１００までの１００種が前方一致したホスト名となる。ここで、前方一致した複数のホスト名からデフォルト候補ホスト名を除去する。すると、１，２、…９９、１００という数字が得られる。
【００８０】
Ｓ１６０３において、除去した後の数字をソートする。前記の例だと、１から１００までの数字がソートされる。
【００８１】
Ｓ１６０４において、最大の数字に１をインクリメントしてデフォルト候補ホスト名の後ろに加えて、新しい候補ホスト名とする。例えば、先の例で最大の数字は１００であるので、１をインクリメントし、１０１となる。この数字を、デフォルト候補ホスト名「ｐｒｉｎｔｅｒ」の後ろに追加し、「ｐｒｉｎｔｅｒ１０１」という新しい候補ホスト名を生成する。
【００８２】
その後、Ｓ１６０５に遷移し、終了となり、図８のＳ８３１に戻る。以降は、Ｓ１６０４で生成したホスト名をホスト名として有効にする。
【００８３】
なお、図５のＳ１０６で設定中の機器が合った場合に、図１１のＳ１１１２、１１１３、１１１４を実施して、他の機器のホスト名を取得した後に、図１６の処理により、取得したホスト名から自装置のホスト名を設定することもできる。
【００８４】
また、図１５のステップＳ１５０１、１５０２、１５０３を実施して、他の機器のホスト名を取得した後に、図１６の処理により、取得したホスト名から自装置のホスト名を設定することもできる。
【００８５】
（他の実施例の形態）
本発明の前提として、名前解決を行うサーバ（例えばＤＮＳサーバ）が存在しない環境を前提としたが、名前解決を行うサーバが存在しても、登録を行わない限り問題はない。
【００８６】
ＮＩ  Ｑｕｅｒｙによるホスト名の問い合わせに返答せず、名前解決サーバにホスト名を登録している機器（仮に機器１とする）があるとする。例えば「ｃａｍｅｒａ」というホスト名であるとする。ここで、リンクローカルネットワーク上に機器１と名前解決サーバのみが存在する状況で、他の機器（仮に機器２とする）が本発明の仕組みを使用した場合を想定する。機器２が本発明の仕組みを使用し、機器１にＮＩ  Ｑｕｅｒｙを送信しても返信がない。その場合、機器２はデフォルト候補ホスト名をホスト名として使用する。例えばそれが「ｃａｍｅｒａ」というホスト名であっても、機器２のホスト名を名前解決サーバに登録しなければ、名前解決サーバ上で機器１のホスト名と衝突しないので問題ない。
【００８７】
【発明の効果】
以上説明したように、本発明によれば、ホスト名を管理するサーバが存在しない状況でも、重複しないホスト名を設定することが可能となる。
【図面の簡単な説明】
【図１】第１の実施の形態で本発明を適用するネットワークの図である。
【図２】第１の実施の形態で本発明を実施する機器２の一般的な構成を示す図である。
【図３】第１の実施の形態で本発明を適用する状況を示す図である。
【図４】第１の実施の形態で本発明を実施する機器３の一般的な構成を示す図である。
【図５】第１の実施の形態の動作を示すフローチャート図である。
【図６】名前解決リストの例を示す図である。
【図７】名前解決リストの例で示す図である。
【図８】候補ホスト名生成アルゴリズムを示すフローチャート図である。
【図９】候補ホスト名生成アルゴリズム内で、シーケンシャルな処理を基本とした候補ホスト名を生成するアルゴリズムを示すフローチャート図である。
【図１０】候補ホスト名生成アルゴリズム内で、ランダム処理を基本とした候補ホスト名を生成するアルゴリズムを示すフローチャート図である。
【図１１】設定中の機器が発見された場合に動作する候補ホスト名生成アルゴリズムを示すフローチャート図である。
【図１２】機器３をリンクローカルネットワーク１から除去する場合を説明するための図である。
【図１３】機器２に記録されている名前解決リストの例を示す図である。
【図１４】機器を除去するときに行うアルゴリズムを示すフローチャート図である。
【図１５】図５のアルゴリズムと、ホスト名収集方法が異なる場合の動作を示すフローチャート図である。
【図１６】図９で示したアルゴリズムと別のシーケンシャルな処理を基本とした候補ホスト名を生成するアルゴリズムを示すフローチャート図である。
【符号の説明】
１  ネットワーク
２０５  バス
３０５  バス
【図１】
2004328358.tif 000003
【図２】
2004328358.tif 000004
【図３】
2004328358.tif 000005
【図４】
2004328358.tif 000006
【図５】
2004328358.tif 000007
【図６】
2004328358.tif 000008
【図７】
2004328358.tif 000009
【図８】
2004328358.tif 000010
【図９】
2004328358.tif 000011
【図１０】
2004328358.tif 000012
【図１１】
2004328358.tif 000013
【図１２】
2004328358.tif 000014
【図１３】
2004328358.tif 000015
【図１４】
2004328358.tif 000016
【図１５】
2004328358.tif 000017
【図１６】
2004328358.tif 000018