(57)【要約】  ネットワークは、接続された１つのデバイス及び接続された１つのクライアントを含む。デバイスは、複数のピンメッセージを受信する１つのレシーバ、受信した複数のピンメッセージをカウントする１つのカウンタ、及びカウント値に応じたピン負荷値を含む１つの応答メッセージを送信する１つのトランスミッタを含む。クライアントは、遅延時間を測定する１つのタイマ、前回のピンメッセージをデバイスに送信してから遅延時間が経過した後にデバイスに１つのピンメッセージを送信する１つのトランスミッタ、応答メッセージを受信する１つのレシーバ、及びデバイスのピン負荷に応じて遅延時間を調整する１つのコントローラを含む。【選択図】図１
2006528871.tif 000002
【特許請求の範囲】
【請求項１】
１つのネットワークに接続されるデバイスであって、
前記ネットワークに接続された複数のクライアントからピンメッセージを受信するレシーバと、
前記レシーバに接続されたカウンタであって、前記レシーバが前記複数のクライアントから受信した前記ピンメッセージのそれぞれに対してカウント値を増加させる前記カウンタと、
前記レシーバに接続されたトランスミッタであって、前記カウント値に応じたピン負荷値を含む１つの応答メッセージを送信する前記トランスミッタと
を備えるデバイス。
【請求項２】
前記応答メッセージはユニキャストのユーザデータグラムプロトコル（ＵＤＰ）メッセージである
請求項１に記載のデバイス。
【請求項３】
前記カウンタは、所望のデバイスのピン負荷に反比例する増分ずつ前記カウント値を増加させる
請求項１に記載のデバイス。
【請求項４】
前記カウンタは、前記デバイスによって変えることができる増分ずつ前記カウント値を増加させる
請求項１に記載のデバイス。
【請求項５】
前記ピン負荷の値は前記カウント値である
請求項１に記載のデバイス。
【請求項６】
前記複数のクライアントのうちの、ピンメッセージが最後に受信された１つのクライアントのアドレスを記憶するメモリ
をさらに備え、
前記応答メッセージは前記アドレスをさらに含む
請求項１に記載のデバイス。
【請求項７】
１つのネットワークに接続されたクライアントであって、
遅延時間を計測するタイマと、
前記タイマに接続されたトランスミッタであって、前記ネットワークに接続されたデバイスに、前記トランスミッタが前のピンメッセージを前記デバイスに送信してから前記遅延時間が経過した旨を前記タイマが示した後に、ピンメッセージを送信するトランスミッタと、
デバイスのピン負荷に応じたピン負荷値を含む応答メッセージを、前記デバイスから受信するレシーバと、
前記レシーバ及び前記タイマに接続され、前記デバイスのピン負荷に応じて前記遅延時間を調整するコントローラと
を備えるクライアント。
【請求項８】
前に受信したピン負荷値を記憶するメモリ
をさらに備え、
前記ピン負荷値は、前記デバイスが受信したそれぞれのピンメッセージに対して前記デバイスが増加させたカウント値であり、前記コントローラは、前記ピン負荷値及び前記前に受信したピン負荷値との差に応じて、前記遅延時間を調整する
請求項７に記載のクライアント。
【請求項９】
前記コントローラは、前記ピン負荷値及び前記前に受信したピン負荷値を含む複数の応答メッセージに対応するピンメッセージの間の時間間隔にさらに応答して、前記遅延時間を調整する
請求項８に記載のクライアント。
【請求項１０】
前記トランスミッタはさらに、前記レシーバが予め定められた時間内に前記デバイスから前記応答メッセージを受信しない場合に、前記デバイスのアドレス及び前記前に受信したピン負荷値を含むプロクシ−バイ・メッセージを、前記ネットワークに接続された第２クライアントに送信する
請求項８に記載のクライアント。
【請求項１１】
前記コントローラは、予め定められた最小の遅延時間以上になるよう前記遅延時間を調整する
請求項７に記載のクライアント。
【請求項１２】
前記コントローラは、予め定められた最大の遅延時間以下になるよう前記遅延時間を調整する
請求項７に記載のクライアント。
【請求項１３】
前記コントローラは、予め定められた最小の遅延時間以上になるよう前記遅延時間を調整する
請求項１２に記載のクライアント。
【請求項１４】
前記コントローラは、前記デバイスのピン負荷が低い閾値を下回った場合に、前記遅延時間に第１の予め定められた値を乗じ、前記デバイスのピン負荷が第２閾値より上である場合に、前記遅延時間に第２の予め定められた値を乗じることによって、前記遅延時間を調整する
請求項７に記載のクライアント。
【請求項１５】
デバイスのピン負荷を制御する方法であって、
前記ネットワークに接続された複数のクライアントからピンメッセージを受信する段階と、
前記複数のクライアントから受信した前記ピンメッセージのそれぞれに対してカウント値を増加させる段階と、
前記カウント値に応じたピン負荷値を含む応答メッセージを送信する段階と
を備える方法。
【請求項１６】
前記応答メッセージはユニキャストのユーザデータグラムプロトコル（ＵＤＰ）メッセージである
請求項１５に記載の方法。
【請求項１７】
前記カウント値は、所望のデバイスのピン負荷に反比例する増分ずつ増加させられる
請求項１５に記載の方法。
【請求項１８】
前記ピン負荷の値は前記カウント値である
請求項１５に記載の方法。
【請求項１９】
前記複数のクライアントのうちの、ピンメッセージが最後に受信された１つのクライアントのアドレスを記憶する段階
をさらに備え、
前記応答メッセージは前記アドレスをさらに含む
請求項１５に記載の方法。
【請求項２０】
デバイスのピン負荷を制御する方法であって、
ネットワークに接続されたデバイスに、前のピンメッセージを前記デバイスに送信してから遅延時間が経過した後にピンメッセージを送信する段階と、
デバイスのピン負荷に応じたピン負荷値を含む応答メッセージを、前記デバイスから受信する段階と、
前記デバイスのピン負荷に応じて前記遅延時間を調整する段階と
を備える方法。
【請求項２１】
前に受信したピン負荷値を記憶する段階
をさらに備え、
前記ピン負荷値は、前記デバイスが受信したピンメッセージのそれぞれに対して前記デバイスが増加させたカウント値であり、遅延時間の調整は、前記ピン負荷値と前記前に受信したピン負荷値との差にさらに応答する
をさらに備える請求項２０に記載の方法。
【請求項２２】
遅延時間を調整する段階は、前記ピン負荷値及び前記前に受信したピン負荷値を含む応答メッセージに対応するピンメッセージの間の時間間隔にさら応答する
請求項２１に記載の方法。
【請求項２３】
予め定められた時間内に前記デバイスから前記応答メッセージを受信しない場合に、前記デバイスのアドレス及び前記前に受信したピン負荷値を含むプロクシ−バイ・メッセージを、前記ネットワークに接続された第２クライアントに送信する段階
をさらに備える請求項２１に記載の方法。
【請求項２４】
予め定められた最小の遅延時間以上になるよう前記遅延時間を調整する段階
をさらに備える請求項２０に記載の方法。
【請求項２５】
予め定められた最大の遅延時間以下になるよう前記遅延時間を調整する段階
をさらに備える請求項２０に記載の方法。
【請求項２６】
予め定められた最小の遅延時間以上になるよう前記遅延時間を調整する段階
をさらに備える請求項２５に記載の方法。
【請求項２７】
前記遅延時間を調整する段階は、
前記デバイスのピン負荷が低い閾値を下回った場合に、前記遅延時間に第１の予め定められた値を乗じ、前記デバイスのピン負荷が第２閾値より上である場合に、前記遅延時間に第２の予め定められた値を乗じる段階
を含む
請求項２０に記載の方法。
【請求項２８】
デバイスによって実行された時、前記デバイスに操作を行わせる命令を備える機械可読メディアであって、前記操作は、
ネットワークに接続されたデバイスに、前のピンメッセージを前記デバイスに送信してから遅延時間が経過した後にピンメッセージを送信する段階と、
デバイスのピン負荷に応じたピン負荷値を含む応答メッセージを、前記デバイスから受信する段階と、
前記デバイスのピン負荷に応じて前記遅延時間を調整する段階と
を含む機械可読メディア。
【請求項２９】
前記操作は、
前に受信したピン負荷値を記憶する段階
をさらに備え、
前記ピン負荷値は、前記デバイスが受信したピンメッセージのそれぞれに対して前記デバイスが増加させたカウント値であり、遅延時間の調整は、前記ピン負荷値及び前記前に受信したピン負荷値との差にさらに応答する
請求項２８に記載の機械可読メディア。
【請求項３０】
遅延時間を調整する段階は、前記ピン負荷値及び前記前に受信したピン負荷値を含む応答メッセージに対応するピンメッセージの間の時間間隔にさらに応答する
請求項２９に記載の機械可読メディア。
【請求項３１】
前記操作は、
予め定められた時間内に前記デバイスから前記応答メッセージを受信しない場合に、前記デバイスのアドレス及び前記前に受信したピン負荷値を含むプロクシ−バイ・メッセージを、前記ネットワークに接続された第２クライアントに送信する段階
をさらに含む
請求項２８に記載の機械可読メディア。
【請求項３２】
前記操作は、
予め定められた最小の遅延時間以上になるよう前記遅延時間を調整する段階
をさらに含む
請求項２８に記載の機械可読メディア。
【請求項３３】
前記操作は、
予め定められた最大の遅延時間以下になるよう前記遅延時間を調整する段階
をさらに含む請求項２８に記載の機械可読メディア。
【請求項３４】
前記操作は、
予め定められた最小の遅延時間以上になるよう前記遅延時間を調整する段階
をさらに含む請求項３３に記載の機械可読メディア。
【請求項３５】
遅延時間の調整は、前記デバイスのピン負荷が低い閾値を下回った場合に、前記遅延時間に第１の予め定められた値を乗じ、前記デバイスのピン負荷が第２閾値より上である場合に、前記遅延時間に第２の予め定められた値を乗じる段階
を含む
請求項２８に記載の機械可読メディア。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００３年３月１日に出願された米国仮出願番号６０／４６７２９４及び２００３年７月２３日に出願された米国仮出願番号６０／４８９８６０の利益を主張するものである。
【背景技術】
【０００２】
ネットワークは、多数の異なるベンダからの複数のスタンドアロンのデバイスと複数のパーソナルコンピュータ（ＰＣ）との間に接続性を提供する。１つのネットワークは、（デスクトップＰＣ、プリンタ、及びスキャナのような）生産性の領域、（テレビ及びオーディオセットのような）娯楽の領域、（照明及びサーモスタット管理のような）ホームコントロール、及び（ラップトップコンピュータ、ユニバーサルリモートコントロール、移動電話、及び携帯情報端末のような）モバイル領域を含む数多くのデバイスを含む。これらのデバイスは、デバイスの動的な構成及び一過性の到達可能性を持ったネットワークを生み出すべく、取り外し可能にネットワークに接続される。そのようなネットワークの１つは、ＵＰｎＰ（UPnP Implementers Corporationの証明マーク）ネットワークである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ネットワーク管理者への要求を削減する又は除去すべく、ネットワークに追加される複数のデバイスは"プラグアンドプレイ"であるかもしれない。異なるネットワークの間におけるデバイスのシームレスなローミングがあり得る。デバイスの数は、１つのネットワークにおいて少数個から何千個の範囲にわたる。全て又は一部のネットワークは無線かもしれないし、マルチキャストのユーザデータグラムプロトコル（ＵＤＰ）パケットのサイズに厳しい上限を負わせる低い最大パケットサイズを持つかもしれない。無線ネットワークは、低い信頼性、低い帯域幅、及び頻繁なトポロジの変化を持つかもしれない。デバイスは、限られた処理及びメモリ性能を持つかもしれない。
【０００４】
ネットワークは、２つの論理的要素、複数のクライアント及び複数のデバイスを含み得る。複数のデバイスは、複数のクライアントに対してサーバの役割を果たす。ＰＣのような１つの物理的なデバイスは、複合的な論理的要素を務める。このように、１つの物理的なデバイスは、同時にクライアント及びデバイスになることができる。１つのクライアントは、ネットワーク上にある複数のデバイスを発見して、それらが提供しているサービスを見つけ出すかもしれない。クライアントは、必要なときにそれらのサービスを使用し得る。ＵＰｎＰ（登録商標）ネットワークでは、クライアントは"コントロールポイント"と呼ばれる。
【発明を実施するための最良の形態】
【０００５】
図１に示すように、ライブネスピンプロトコルは、複数のクライアント２０及び複数のデバイス３０を含む、ＵＰｎＰ（UPnP Implementers Corporationの証明マーク）のようなネットワーク１０に対して定義されている。ライブネスピンプロトコルは、それぞれのデバイスにおけるプロトコルのオーバヘッドをコントロールしている間、どのデバイス３０が到達可能であるかをクライアント２０が決定することを可能にする。クライアント２０がデバイス３０の特定のサブセットをチェックすることを望んだ場合、チェックされるそれぞれのデバイスに対してライブネスピンプロトコルのセッションを開始する。クライアント２０は、自由にそのサブセットを変え得る。クライアントは、ライブネスピンプロトコルを使用することを強制されるわけではない。典型的な実施例では、デバイスのサブセットは空であってもよい。
【０００６】
クライアントは、ユニキャストのユーザデータグラムプロトコル（ＵＤＰ）を用いて送信されるＬＰＩＮＧメッセージを送信することによって、デバイスの存在をチェックし得る。デバイスは、ＵＤＰユニキャストパケットによるＬＲＥＰＬＹメッセージで応答し得る。クライアントがタイムアウトより前に応答を受信しなかった場合、クライアントはＬＰＩＮＧメッセージを何度か、例えば３回、再送信してよい。デバイスが、ＬＰＩＮＧメッセージ、又は使用された場合にはその再送信に対して、ある時間長さ内でＬＲＥＰＬＹメッセージで応答しない場合には、クライアントはそのデバイスが到達不可能であると判断し得る。マルチキャスト通信でなくユニキャストの使用は、より大規模なネットワークにおいて、ネットワーク及びデバイスの負荷を減らし得る。リソースが制限されたデバイスにおいて高いダイナミクスを維持するためには、接続をセットアップ及び維持するのにより多くの時間及びリソースを要するＴＣＰよりも、ＵＤＰが好まれるだろう。
【０００７】
以下は、バッカス‐ナウア記法（ＢＮＦ）でのＬＰＩＮＧ及びＬＲＥＰＬＹメッセージの典型的な定義である。ダブルクォートの中の語は終端記号である。他の単語は、非終端記号である。
【表１】
2006528871.tif 000003
【０００８】
エクステンションは任意である。メッセージの送信者はエクステンションを含むことを要求されていない。メッセージの受信者は、メッセージに含まれるどんなエクステンションも無視し得る。
【０００９】
ＬＰＩＮＧ及びＬＲＥＰＬＹメッセージは、以下の情報を含むことができる。
【表２】
2006528871.tif 000004
【００１０】
多数のクライアントがデバイスの活性をチェックしている場合、ピン負荷はデバイスにとって大きくなりすぎるだろう。デバイスに負荷をかけすぎることを避けるべく、ピン負荷を制限するためのメカニズムが、ライブネスピンプロトコルによって提供される。ＬＲＥＰＬＹメッセージは、デバイスによって扱われているピンメッセージの数を示すピン負荷値を含む。一実施例においては、ピン負荷値は、デバイスによって受信されている、単位時間あたりのＬＰＩＮＧメッセージの数、例えば１秒あたりのメッセージの数である、ＰＩＮＧＬＯＡＤであってよい。他の実施例においては、ピン負荷値は、それぞれのＬＰＩＮＧメッセージを受信する毎に増加させられるカウンタの値であるＰＩＮＧＣＯＵＮＴであってよい。
【００１１】
デバイスがクライアントからＬＰＩＮＧメッセージを受信したとき、ピンを制御するメカニズムを提供すべく、デバイスは、内部カウンタ、例えばＰＩＮＧＣＯＵＮＴを、ＰＩＮＧＩＮＣＲＥＡＳＥのような一定の量の分量ずつ増加させる。デバイスのＰＩＮＧＬＯＡＤは、２つの連続するピンカウント、例えばＰＩＮＧＣＯＵＮＴ及びＬＡＳＴＰＩＮＧＣＯＵＮＴの間の差であって、秒で表現され得るその２つのカウントの間の時間、例えばＰＥＲＩＯＤで除された差として算出される。
【数１】
2006528871.tif 000005
【００１２】
内部カウンタは制限されたサイズを持ち、また、ピンカウントがその内部カウンタによって表現され得る最大の数を超えたときには、ラップアラウンドされ得ることが理解されるだろう。２つの連続するピンカウントの差は、カウンタがラップアラウンドしたことを認識し、そのカウンタがラップアラウンドしないほど十分大きかったかのように差の値を生む方法で算出され得る。いくつかの受信したＬＰＩＮＧメッセージを包含する期間の使用、ＰＩＮＧＬＯＡＤに対する移動平均の算出、又は固定された期間でのＰＩＮＧＬＯＡＤの算出のように、ＰＩＮＧＬＯＡＤを算出する他の方法を使用することもできる。
【００１３】
一実施形態では、デバイスは、ＰＩＮＧＬＯＡＤのようなデバイスのピン負荷を算出してよく、ＬＰＩＮＧメッセージを送信したクライアントに対して、デバイスのピン負荷の値をＬＲＥＰＬＹ応答メッセージで返してよい。他の実施例においては、デバイスは、ＬＰＩＮＧメッセージを送信したクライアントに対して、ＰＩＮＧＣＯＵＮＴの現在の値をＬＲＥＰＬＹ応答メッセージで返してよい。この実施例におけるデバイスの典型的な動作は、以下の仮想コードによって記述され得る。
【表３】
2006528871.tif 000006
【００１４】
クライアントは、デバイスから受信した前回のＰＩＮＧＣＯＵＮＴ値を、例えばＬＡＳＴＰＩＮＧＣＯＵＮＴとして保持し、ピン負荷値ＰＩＮＧＣＯＵＮＴと前回受信したピン負荷値ＬＡＳＴＰＩＮＧＣＯＵＮＴとの差を用いて、デバイスのピン負荷を算出してよい。さらに、クライアントは、デバイスに送信した連続するＬＰＩＮＧの間隔を、ＰＥＲＩＯＤとして計時してよい。これらの値を用いて、クライアントは、ＬＲＥＰＬＹメッセージを受信したときに、デバイスのピン負荷値ＰＩＮＧＬＯＡＤ値を計算してよい。
【数２】
2006528871.tif 000007
【００１５】
デバイスのＰＩＮＧＬＯＡＤを制限すべく、クライアントには、ランダム化された小さな値をさらに含むあるＤＥＬＡＹを、２つの連続するＬＰＩＮＧメッセージの間に、少なくとも持つことが要求される。このＤＥＬＡＹの値は、一組のルールによって規定され得る。クライアントは、ＬＰＩＮＧメッセージを送信するためにそのＤＥＬＡＹより長く待つことができる。このように、ＤＥＬＡＹはＰＥＲＩＯＤに対する下限となり得る。クライアントがデバイスのＰＩＮＧＬＯＡＤがある閾値、例えばＨＩＧＨＴＨＲＥＳＨＯＬＤより高いことを検出したとき、実効的なＰＩＮＧＬＯＡＤを下げるべく、当該ＤＥＬＡＹを増加させてよい。クライアントが、ＰＩＮＧＬＯＡＤがある閾値、例えばＬＯＷＴＨＲＥＳＨＯＬＤより小さくなったことを検出したとき、実効的なＰＩＮＧＬＯＡＤを上げるべく、当該ＤＥＬＡＹを低下させてよい。これは、以下の典型的な適応ルールによって取り込むことができる。
【表４】
2006528871.tif 000008
【００１６】
パラメータＨＩＧＨＴＨＲＥＳＨＯＬＤ及びＬＯＷＴＨＲＥＳＨＯＬＤは、単位時間あたりの複数のピン、例えば１秒間あたりの複数のピンで表現される固定された定数であってよい。当該定数は、それらがデバイスにおいて許容できる負荷に導くよう定義されてよい。ＨＩＧＨＴＨＲＥＳＨＯＬＤ及びＬＯＷＴＨＲＥＳＨＯＬＤの間の差は、当該ＤＥＬＡＹが速やかにＨＩＴＨＲＥＳＨＯＬＤとＬＯＷＴＨＲＥＳＨＯＬＤとの間に安定化すべく十分大きく設定され得る。典型的な実施例において、ルールＲ１における定数２でのＤＥＬＡＹの増加、及びルールＲ２における定数２／３でのＤＥＬＡＹの低下が使用された。この典型的な実施例におけるＬＯＷＴＨＲＥＳＨＯＬＤ／ＨＩＧＨＴＨＲＥＳＨＯＬＤの比は、ＤＥＬＡＹが速やかにＨＩＧＨＴＨＲＥＳＨＯＬＤとＬＯＷＴＨＲＥＳＨＯＬＤとの間の値に達するよう、２／３より小さかった。これらの値の選択は、シミュレーション結果に基づいてよい。
【００１７】
図２は、異なる閾値の具体的な値を持つ典型的な実施例を示す。デバイス３０は、ＰＩＮＧＩＮＣＲＥＡＳＥ値１００を持つ。クライアントＣＰ１  ２０は、デバイス３０に１秒毎に１度ピンしている。現在のＰＩＮＧＬＯＡＤは高い閾値１００と同じである。クライアントＣＰ１  ２０はＬＰＩＮＧ２００を送信する。他のクライアントはデバイス３０にピンしていないので、デバイス３０はクライアントＣＰ１に送信した前回のＬＲＥＰＬＹより１ＰＩＮＧＩＮＣＲＥＡＳＥだけ大きいＸ＋１００のＰＩＮＧＣＯＵＮＴ値を含むＬＲＥＰＬＹ２０２を送信する。ＣＰ２  ２２が同じデバイスにピンを開始すると、デバイス３０は、ＣＰ２からＬＰＩＮＧ２０４を受信した後にＰＩＮＧＣＯＵＮＴを増やして、ＰＩＮＧＣＯＵＮＴ値Ｘ＋２００を含むＬＲＥＰＬＹ２０６をＣＰ２に送信する。クライアントＣＰ１  ２０は、その次のＬＰＩＮＧ２０８を、直前のＬＲＥＰＬＹ２０２の約１秒後のＤＥＬＡＹ時間２１４で送信する。デバイス３０は、ＣＰ１からのＬＰＩＮＧ２０８を受信した後にＰＩＮＧＣＯＵＮＴを増加して、ＰＩＮＧＣＯＵＮＴ値Ｘ＋３００を含むＬＲＥＰＬＹ２１０をＣＰ１に送信する。ＣＰ１は、割り込んできたＣＰ２からのピンが、ＣＰ１の見る後続のＰＩＮＧＣＯＵＮＴに、ＣＰ２がピンを開始する前の１００ではなく２００だけ増加をもたらしたので、高い閾値が越えられた旨を検出する。ＣＰ１は、式２１２で示されるように、ＰＩＮＧＬＯＡＤを２００と算出する。その結果、ＣＰ１は、連続するデバイスのピン間のＤＥＬＡＹ２１６を、約２秒にまで倍増する。
【００１８】
同様にして、クライアントＣＰ２がデバイスをピンすることを停止した場合、ＰＩＮＧＬＯＡＤは減少する。ＣＰ１は、ＣＰ２がピンしていたときの２００ではなく１００だけの、後続するＰＩＮＧＣＯＵＮＴの増加を知るだろう。ＰＩＮＧＬＯＡＤが低い閾値より小さくなったとき、ルールＲ２が適用されてＣＰ１はそのＤＥＬＡＹを低下させることができる。
【００１９】
動的な環境では、１つのデバイスに関与している複数のクライアントの組はめまぐるしく変わる。ルールＲ１及びＲ２が、変化した状況に自動的にＤＥＬＡＹを適合させているときに、クライアントの数の突然の減少は、デバイスの利用不能の適時な検出を保証するには低すぎるＰＩＮＧＬＯＡＤに導き得る。残りのクライアントが再びピンして、それらのピン周波数を増加することができるのに気付くまでには長い時間を要する。この作用を制限すべく、最大のＤＥＬＡＹがＭＡＸＤＥＬＡＹと呼ばれるファクタによって制限され得る。ルールＲ１の適用は以下になり得る。
【表５】
2006528871.tif 000009
【００２０】
同様に、新たなクライアントの突然の到来は、高い閾値を超えるＰＩＮＧＬＯＡＤを一時的にもたらす。この作用を制限すべく、最小のＤＥＬＡＹ、ＭＩＮＤＥＬＡＹが導入され得る。ルールＲ２の適用は以下になり得る。
【表６】
2006528871.tif 000010
【００２１】
ＭＡＸＤＥＬＡＹ及びＭＩＮＤＥＬＡＹは共に定数であってよく、秒単位で表現されてよい。
【００２２】
デバイスは、デバイスによって受信されたピン毎のＰＩＮＧＣＯＵＮＴを増加させる変数ＰＩＮＧＩＮＣＲＥＡＳＥの値を静的又は動的に選択することによって、それらのＰＩＮＧＬＯＡＤを調整する。そのプロトコルが安定化したとき、デバイスが提供するＬＰＩＮＧメッセージの秒あたりの最大数は以下になる。
【数３】
2006528871.tif 000011
【００２３】
図２に示される典型的な実施例では、ＨＩＧＨＴＨＲＥＳＨＯＬＤが１００に等しかったので、１００のＰＩＮＧＩＮＣＲＥＡＳＥは、秒あたりわずか１つのＬＰＩＮＧを受信するという結果になった。より高性能なデバイスは、より低いＰＩＮＧＩＮＣＲＥＡＳＥ値を選択することができる。例えば、１のＰＩＮＧＩＮＣＲＥＡＳＥでは、安定した状況においては秒あたり１００個までのライブネスピンを受信しただろう。ＰＩＮＧＩＮＣＲＥＡＳＥの変更は、ネゴシエーション又はさらなるオペレーションを要することなく、ネットワーク及びデバイスにおける負荷を制限し得る。
【００２４】
ライブネスピンプロトコルは、１つのデバイスのＰＩＮＧＬＯＡＤがＭＡＸＰＩＮＧＰＥＲＳＥＣを超えないことを保証する。デバイスは、２×ＭＡＸＰＩＮＧＰＥＲＳＥＣパケット／秒を超えて送信及び受信する必要はないだろう。このルールに対する例外として、動的な環境における自己回復を保証すべく、クライアントの数がＭＡＸＤＥＬＡＹ×ＭＡＸＰＩＮＧＰＥＲＳＥＣを超えて増大しても、クライアントはＭＡＸＤＥＬＡＹ秒毎に１度ピンすることを許容されていてよい。＃Ｃクライアント及び＃Ｄデバイスがあるとすると、ライブネスピンプロトコルに関係したメッセージの数は以下になるだろう。
【数４】
2006528871.tif 000012
【００２５】
ライブネスピンプロトコルは、一のクライアントからの連続するピンの間の時間を増加させることによって、デバイスに対するＰＩＮＧメッセージのオーバーヘッドを制限し得る。それは、クライアントがネットワークからのデバイスの消失を検出するのに要する時間長さを増加させるかもしれない。プロクシ−バイ・プロトコルは、ネットワークからのデバイスの消失をより速やかにクライアントに通知すべく使用され得る。プロクシ−バイ・プロトコルは、クライアント間に限って行われる。多数のクライアントが同じデバイスの活性をチェックしていると、そのクライアントは、（ＰＩＮＧＬＯＡＤ制御によって）連続するＬＰＩＮＧメッセージ間の長いＤＥＬＡＹを持つことになるだろう。デバイスが到達不可能になったことをクライアントができるだけ速く発見することを保証すべく、デバイスが消失したことを検出した最初のクライアントが、プロクシ−バイ・プロトコルによって他のクライアントに通知する。
【００２６】
クライアントＣＰは、ＬＰＩＮＧメッセージを送信することによってデバイスの存在をチェックし得る。デバイスはクライアントＣＰにＬＲＥＰＬＹメッセージで応答し得る。クライアントがタイムアウトより前に応答を受信しなかった場合、ＬＰＩＮＧメッセージを何回か再送信する。デバイスがＬＰＩＮＧメッセージ又は使用された場合にはその再送信に、ある時間長さ内で応答しなかった場合、そのクライアントはそのデバイスが到達不可能と判断して、プロクシ−バイ・プロトコルが実行される。
【００２７】
クライアントが、デバイスが到達不可能になったと決定する度に、そのクライアントはプロクシ−バイ・メッセージを送信することによって他のクライアントに知らせる。プロクシ−バイ・メッセージは、デバイスのアドレス及びプロクシ−バイ・メッセージを生成するクライアントによって受信されたＬＡＳＴＰＩＮＧＣＯＵＮＴを含む。このＬＡＳＴＰＩＮＧＣＯＵＮＴ情報は、他のクライアントが重複するプロクシ−バイ・メッセージを破棄することを可能にする。
【００２８】
アドレス情報は、ゼロメッセージオーバヘッドの動的なメンバーシップメカニズムを提供すべく、ＬＲＥＰＬＹメッセージに乗っているクライアントの間で交換され得る。アドレスは、ＩＰアドレス及びＵＤＰポートを含んでよい。この情報交換を促進すべく、それぞれのデバイスは、ＬＰＩＮＧを送信した最後のいくつかのクライアントに対するアドレス情報を維持し、このアドレス情報をこのＬＲＥＰＬＹに含めて返信してよい。一実施例において、それぞれのデバイスは、ＬＰＩＮＧを送信した最後の２つのクライアントに対するアドレス情報を維持してよい。このＬＲＥＰＬＹメッセージは以下の情報を含んでよい。
【表７】
2006528871.tif 000013
【００２９】
最後の２つのクライアントを１つのＬＲＥＰＬＹの中に含む実施例におけるデバイスの典型的な動作は、以下の仮想コードによって記述される。
【表８】
2006528871.tif 000014
【００３０】
クライアントは、プロクシ−バイ・プロトコルにおいて他のいずれのクライアントが同じデバイスをチェックしているかを動的に決定すべく、この情報を用いることができる。これは、グループの複数のメンバ間における直接的な通信なしに、かつ付加的なメッセージなしに、発生し得る。
【００３１】
クライアントは、同じデバイスをチェックしている他の既知の全てのクライアントに、マルチキャスト及びユニキャストメッセージの組み合わせを用いてプロクシ−バイ・メッセージを送信し得る。ローカルリンクに少なくとも１つのクライアントが存在する場合、プロクシ−バイ・メッセージはローカルリンク上のマルチキャストとなる。リンク外の全てのクライアントは、ユニキャストメッセージによって届けられる。
【００３２】
プロクシ−バイ・メッセージを受信すると、クライアントは、プロクシ−バイ・メッセージが複製である（すなわち、類似のメッセージが既に受信されている）か否か又はそのデバイスがまだ到達可能か否かを、そのデバイスが到達不可能であると決定する前にチェックしてよい。そのプロクシ−バイ・メッセージが複製ではなく、かつ、そのデバイスが到達可能でなければ、そのデバイスはプロクシ−バイ・メッセージを伝送する。これは、メッセージが順序が乱れて現れる、動的なルーティング・ネットワークを、重複又は古くなったメッセージが伝搬することを保護し、かつ悪意のあるプロクシ−バイ・メッセージに備えて詐称攻撃から保護し得る。
【表９】
2006528871.tif 000015
【００３３】
図３は、典型的な実施例における、デバイス３０が到達不可能になった場合のメッセージのフローを示す。クライアントＣＰ１  ２０は、１つのＬＰＩＮＧメッセージ３００を送信する。ＣＰ１は、予め定められた時間３０２の期間内にＬＲＥＰＬＹを受信しない。ＣＰ１は、１回以上ＬＰＩＮＧ３０４を再送する。ＣＰ１はＬＲＥＰＬＹを受信しなかった場合、ＰＲＯＸＹＢＹＴＥメッセージ３０６をＣＰ２  ２２に送信する。クライアントＣＰ２は、その後ＬＰＩＮＧメッセージ３０８をデバイス３０に送信してよい。ＣＰ２は、ＬＲＥＰＬＹを受信しない場合、ＰＲＯＸＹＢＹＴＥメッセージ３１０を他のクライアントに伝送することによって、プロクシ−バイを伝搬させる。
【００３４】
クライアントＣＰ１は、ＬＲＥＰＬＹメッセージを受信する度に、ある数、例えば２個の、直前のクライアントＣＰ２及びＣＰ３のアドレスを受信する。クライアントＣＰ１による連続するＬＰＩＮＧの後、ピン周波数の差によって、クライアントＣＰ１がより多数のクライアントの組｛ＣＰ２、...、ＣＰｎ｝を受信することがあり得る。この効果は、プロクシ−バイ・プロトコルの信頼性を向上させ得るが、帯域幅及びプロトコルの性能要件を増加させるかもしれない。この組｛ＣＰ２、...、ＣＰｎ｝のサイズを制限すべく、ＣＰ１は古いクライアントを無視することが許容され得る。ＣＰ１は、時刻ＴにおいてＣＰｉについての情報を受信した場合に、ＣＰ１はそのＣＰｉについての情報を少なくともＴ＋ＭＡＸＤＥＬＡＹまで保持しなければならない。ＣＰｉについての情報が古くなると消去される。これは、１つのクライアントは、少なくとも２つの他のクライアントによって、これらのクライアントがネットワークを離れていない限り、常時知られていることを保証する。さらに、プロクシ−バイ・メッセージはマルチキャストであり得るので、ローカルリンク、小規模にブリッジされた複数のネットワークにおいては、全てのクライアントは同時に通知され得る。プロクシ−バイ・メッセージの伝搬パターンは、拡散効果と呼び得る。高い確率で、フォワーディンググラフはlog(#clients)の深さを持ち、たとえインターネットをまたいでも、速い伝搬を可能にし得る。それぞれのライブネスピンの後、クライアントの間の伝送接続は、関連するクライアントの最新のセットを反映すべく、自動的に更新される。したがって、プロクシ−バイ・メッセージは全てのクライアントに到達することになることが可能となる。
【００３５】
ライブネスピンプロトコルは、プロクシ−バイ・プロトコルと一緒に又はプロクシ−バイ・プロトコルなしで使用されることが理解されるだろう。また、ライブネスピンプロトコルなしのプロクシ−バイ・プロトコルも理解されるだろう。ＰＩＮＧＬＯＡＤ又はＰＩＮＧＣＯＵＮＴ値とクライアントアドレスとを同じＬＲＥＰＬＹメッセージに配置することによって、双方は共に有利に利用され得る。他の実施形例においては、ＰＩＮＧＬＯＡＤ又はＰＩＮＧＣＯＵＮＴ値とクライアントアドレスとは、異なるメッセージで送信されてよい。ライブネスピンプロトコル及びプロクシ−バイ・プロトコルは、ＵＰｎＰ（登録商標）ネットワークの場面で記載されたが、これらのプロトコルは、他の種類の複数のネットワークで使用され得る。
【００３６】
いくつかの典型的な実施例が記載され、複数の添付図面の中で説明されたが、そのような複数の実施例はこの広範な発明の単なる実例であって、この広範な発明を限定するものではないことが理解されるべきである。また、様々な他の複数の変形が通常の当業者に想到され得るので、この発明は説明及び記載された特定の複数の構成及び複数の取合せに限定されるべきものではないことが理解されるべきである。
【図面の簡単な説明】
【００３７】
【図１】複数のクライアント及び複数のデバイスを含むネットワークのブロック図である。
【図２】複数のクライアント及び複数のデバイスとの間の複数のピンメッセージ及び複数の応答メッセージの対話を示す図である。
【図３】複数のプロクシ−バイ・メッセージの伝搬を示す図である。
【図１】
2006528871.tif 000016
【図２】
2006528871.tif 000017
【図３】
2006528871.tif 000018
【国際調査報告】
2006528871.tif 000019
2006528871.tif 000020
2006528871.tif 000021