JP2008523643A - ピアツーピアネットワーク内のトラフィックを管理するためのシステム及び方法 - Google Patents

ピアツーピアネットワーク内のトラフィックを管理するためのシステム及び方法 Download PDF

Info

Publication number
JP2008523643A
JP2008523643A JP2006554367A JP2006554367A JP2008523643A JP 2008523643 A JP2008523643 A JP 2008523643A JP 2006554367 A JP2006554367 A JP 2006554367A JP 2006554367 A JP2006554367 A JP 2006554367A JP 2008523643 A JP2008523643 A JP 2008523643A
Authority
JP
Japan
Prior art keywords
node
congestion
multicast request
peer
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006554367A
Other languages
English (en)
Other versions
JP4096991B1 (ja
Inventor
デボン エス. サムナー,
ダブリュー. ブライアント イーストハム,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Electric Works Co Ltd
Original Assignee
Matsushita Electric Works Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Works Ltd filed Critical Matsushita Electric Works Ltd
Application granted granted Critical
Publication of JP4096991B1 publication Critical patent/JP4096991B1/ja
Publication of JP2008523643A publication Critical patent/JP2008523643A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/24Radio transmission systems, i.e. using radiation field for communication between two or more posts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1881Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

ピアツーピアネットワークにおいて、ネットワーク上で輻輳を意味する1つ以上の輻輳イベントが、定義される。さらに、ネットワーク上で輻輳の欠落を意味する1つ以上の非輻輳イベントが、定義される。ノードが、定義された輻輳イベントの1つ以上の発生を検出するとき、ノードはノードによって送信されるコネクションレスプロトコル(例えば、UDP)のパケットの間隔を増加させる。ノードが、定義された非輻輳イベントの1つ以上の発生を検出するとき、ノードはノードによって送信されるコネクションレスプロトコルのパケットの間隔を減少させる。

Description

本発明は、一般的なコンピュータとコンピュータ関連技術に関する。より具体的には、本発明は、ピアツーピアネットワーク内のトラフィックを管理するためのシステム及び方法に関する。
コンピュータや通信技術は、急速な歩みで進み続けている。事実、コンピュータや通信技術は、人間の日常の多くの側面に関わる。例えば、今日消費者によって使用される多くの装置は、その装置内部に小型コンピュータを有する。これらの小型コンピュータは、精密さに関して様々なサイズ及び程度のものが提供されている。これらの小型コンピュータは、1つのマイクロコントローラから、全ての機能を持つ完全なコンピュータシステムまで、全てを含んでいる。例えば、これらの小型コンピュータは、マイクロコントローラのようなワンチップコンピュータ、コントローラのような1ボードのタイプのコンピュータ、IBMTM−PCコンパチブルのような典型的なデスクトップコンピュータなどであっても良い。
コンピュータは、一般的に、そのコンピュータの心臓部に1つ以上のプロセッサを有する。プロセッサは、通常、異なる外部の入力と出力に相互接続されており、特定のコンピュータ又は装置を管理するために機能する。例えば、サーモスタットのプロセッサは、温度設定を選択するために使用されるボタン、温度を変えるための暖炉やエアコン、及び現在の温度をディスプレイ上から読んだり表示したりするための温度センサと接続できる。
多くの電気製品や装置などは、1つ以上の小型コンピュータを含んでいる。例えば、サーモスタット、暖炉、空調システム、冷蔵庫、電話機、タイプライタ、自動車、自動販売機、及び多くの異なるタイプの産業機器は、現在一般的に、小型コンピュータ又はプロセッサをそれらの内部に有する。コンピュータソフトウェアは、これらコンピュータのプロセッサを動かして、いかに所定のタスクを実行するかをプロセッサに指示する。例えば、サーモスタット上で動作するコンピュータソフトウェアは、特定の温度に達している場合エアコンの実行を止めたり、又は必要に応じて暖房機をオンにしたりすることができる。
装置、電気製品、ツールなどの一部であるこれらのタイプの小型コンピュータは、しばしば組込み機器又は組込みシステムと呼ばれる。(用語「組込み機器」と「組込みシステム」は本明細書において互換性を持って使用される)。組込みシステムは、通常、コンピュータハードウェアと、より大きいシステムの一部であるソフトウェアについて言及する。組込みシステムは、キーボード、マウス、及び/又はモニタなどの典型的な入出力装置を有することができない。通常、それぞれの心臓部で組み込まれているシステムは、1つ以上のプロセッサである。
照明システムは組込みシステムを組み込むことができる。照明システムの効力を監視し、制御するために組込みシステムを使用できる。例えば、組込みシステムは、照明システムの中で照明の明るさを薄暗くするための制御を与えることができる。あるいはまた、組込みシステムは、照明の明るさを強めるための制御を与えることができる。組込みシステムは、照明システム内の個々の照明内の特定の照明パターンを起動するための制御を与えることができる。組込みシステムは、照明システム内の個々のスイッチと結合できる。これらの組込みシステムは、個々の照明又は全体の照明システムにパワーアップ、パワーダウンするためのスイッチ対して指示できる。同様に、組込みシステムは、照明システム内の個々の照明と結合できる。それぞれの個々の照明の明るさ又は電源状態は、組込みシステムにより制御できる。
セキュリティシステムもまた、組込みシステムを組み込むことができる。組込みシステムは、セキュリティシステムを備える個人セキュリティセンサを制御するために使用できる。例えば、組込みシステムは、それぞれのセキュリティセンサを自動的に強化する制御を与えることができる。組込みシステムは、それぞれの個人セキュリティセンサと結合できる。例えば、組込みシステムは、動作センサと結合できる。動きが検出された場合、組込みシステムは、自動的に個々の動作センサをパワーアップして、動作センサを作動するための制御を与えることができる。動作センサの作動では、動作センサの中に配置されたLEDをパワーアップするための指示を与えたり、動作センサの出力部からアラームを出力したり、等を含むことができる。組込みシステムは、ドアを監視するセンサとも結合できる。組込みシステムは、ドアが開けられるか、又は閉じられるとき、作動するためにドアを監視するセンサに指示を与えることができる。同様に、組込みシステムは、窓を監視するセンサと結合できる。窓が開けられるか、閉じられた場合、組込みシステムは、窓のセンサモニタリングを作動するために指示を与えることができる。
携帯電話などのワイヤレス製品を制御するのにもまた、いくつかの組込みシステムを使用できる。組込みシステムは、携帯電話のLEDディスプレイをパワーアップするための指示を与えることができる。組込みシステムは、携帯電話に関する音声通知をユーザに与えるために、携帯電話内のオーディオスピーカーもまた作動することができる。
家庭電化製品もまた、組込みシステムを組み込むことができる。家電は、従来の台所で通常使用される電気製品、例えば、ストーブ、冷蔵庫、電子レンジなどを含むことができる。家電はまた、ユーザの健康と快適な暮らしに関する電気製品を含むことができる。例えば、マッサージリクライニングシートは、組込みシステムを組み込むことができる。組込みシステムは、椅子の背もたれ部分を、ユーザの好みに従って自動的にもたれさせるための指示を与えることができる。組込みシステムはまた、リクライニングシート内の振動を、ユーザの好みに従って引き起こす椅子内の振動装置を始動するためにも指示を与えることができる。
家庭内で通常備えられる更なる製品もまた、組込みシステムを組み込むことができる。例えば、コンテナータンクを詰め替えるのに使用される水のレベルを制御するために、トイレ内で組込みシステムを使用できる。空気の流出を制御するためにジェットバス内で組込みシステムを使用できる。
上記のように、組込みシステムは、多くの異系統、資源、製品などを監視又は制御するために使用できる。インターネットとワールドワイドウェブの発展で、組込みシステムは、リモートで制御及び/又は監視されることができるように、ますますインターネットに接続されるようになる。ローカルエリアネットワークや広域ネットワークなどを含むコンピュータネットワークに、他の組込みシステムを接続できる。本明細書で用いられるように、用語「コンピュータネットワーク」(又は、単に「ネットワーク」)は、一連のノードが通信パスによって相互接続されるどのようなシステムをも示す。用語「ノード」は、コンピュータネットワークの一部として接続されるどのような装置をも示す。組込みシステムがネットワークノードであっても良い。ネットワークノードの他の実施例は、コンピュータ、携帯情報端末(PDA:Personal Digital Assistants)、携帯電話などを含んでいる。
一部の組込みシステムは、コンピュータネットワークを用いて、他のコンピュータ機器に対してデータ及び/又はサービスを提供できる。多くの異種のサービスを提供できる。サービスのいくつかの実施例は、ある場所から温度データを提供したり、監視データを提供したり、気象情報を提供したり、オーディオストリームを供給したり、ビデオストリーム提供したりすることなどを含んでいる。
複数のノード(少なくともいくつかの組込みシステムを含む)は、ピアツーピアネットワークを形成するために相互接続されることができる。ピアツーピアコンピュータネットワークは、各ノードが別々のサーバーコンピュータ又はサーバソフトウェアに接続することなく、他のノードと通信できるネットワークである。ピアツーピアネットワークは、比較的少ない数のサーバで集結するよりも、むしろネットワークにおける参加者のコンピュータ能力と帯域幅を当てにする。ピアツーピアネットワークは、主にその場限りの接続を介して、接続ノードとして使用できる。
ピアツーピアネットワーク内の多くのノードは、およそ同時にお互いにコミュニケートでき、その結果、ネットワークは混雑するようになるかもしれない。これが生じる場合、他のノードが今やパケットを送るとき、ノードはネットワークを利用できないであろう。ピアツーピアネットワークにおけるセントラルサーバーノードの欠落で、この問題は、より深刻になる。パケット損失を最小にする試みが、スループット、すなわち、ネットワークを通して伝送されるデータ量に、過度に影響することは知られている。従って、パケット損失を最小にする間のスループットを最大にするために、ピアツーピアネットワーク内のトラフィック管理に関する改良によってメリットを実現できる。
ピアツーピアネットワーク内でトラフィックを管理するためのシステム及び方法が、開示される。例示された実施形態では、ピアツーピアネットワークで輻輳を意味する1つ以上の輻輳イベントが、定義される。さらに、ピアツーピアネットワークで輻輳の欠落を意味するが、将来の網輻輳を予測する/予測するのを支援することができる1つ以上の非輻輳イベントが、定義される。ノードが、定義された輻輳イベントの1つ以上の発生を検出するとき、ノードはノードによって送信されるコネクションレスプロトコル(例えば、ユーザーデータグラムプロトコル)パケットの間隔を増加させる。ノードが、定義された非輻輳イベントの1つ以上の発生を検出するとき、ノードはノードによって送信されるコネクションレスプロトコルパケットの間隔を減少させる。ピアツーピアネットワーク内のノードのいくつかが、組込みシステムであっても良い。
多くの異種の非輻輳イベントと輻輳イベントを定義することができる。一例の非輻輳イベントは、ノードがマルチキャストリクエストとマルチキャストリクエストに関連する応答機リストとを受信するということであり、ノードは応答機リストに含まれている。逆に、一例の輻輳イベントは、ノードがマルチキャストリクエストとマルチキャストリクエストに関連する応答機リストとを受信するということであり、ノードは、それが含まれるべきであるとき、応答機リストに含まれていない。
別の例の輻輳イベントは、ノードがマルチキャストリクエストを送るということである。別の例の輻輳イベントは、ノードがマルチキャストリクエストを受信するが、マルチキャストリクエストに関連する応答機リストは受信しないで、ノードがマルチキャストリクエストに多重応答を送信するということである。別の例の輻輳イベントは、パケットを送信するのを待つ間、ノードがマルチキャストリクエストを受信するということである。別の例の輻輳イベントは、パケットを送信するのを待つ間、ノードがユニキャスト応答を受信するということである。
本発明の例示された実施形態は、以下の説明と添付の特許請求の範囲から、添付図面と共により完全に明らかになる。これらの図面について理解することは、例示された実施形態についてのみ描いていることであり、従って、本発明の範囲の限定であることは考慮されない。本発明の例示された実施形態は、更なる特定性で説明され、添付図面を用いて詳しく述べる。
図面を参照しながら本発明の様々な実施例について説明する。同一参照番号は同一か機能上同様の要素を示す。本明細書において一様に説明し図面に示す本発明の実施例は、広く様々な異なる形態でアレンジし設計することができるであろう。それ故、図面で表される本発明の様々に例示された実施形態の以下のより詳細な説明は、本発明のクレームとしての範囲を限定する意図でなく、単に本発明の実施例を示す意図である。
「例」という言葉は、「実施例、実例、又は図示としての役目をすること」を意味するために本明細書において排他的に使用される。本明細書に「例」として記述されたどんな実施例も、他の実施例を越えて好ましい又は有利であると理解されるために必ずしも必要ではない。図面に実施例の種々の外観を提示するが、特別に示さなかったといって、比例するように必ずしも図面を作成するというわけではない。
本明細書に開示された実施例の多くの素材を、コンピュータソフトウェア、電子ハードウェア、又は両方の組合せとして、実施することができる。一般的に、明確にハードウェアとソフトウェアのこの互換性を示すために、それらの機能性において種々の装置について説明する。そのような機能性がハードウェア又はソフトウェアとして実施されるか否かは、システム全体に課された特殊なアプリケーションと設計制約条件に依存する。当業者は各特殊アプリケーションのために様々な方法で説明した機能性を実施することができるが、本発明の範囲から逸脱して、そのような実施決定を解釈するべきでない。
説明された機能性がコンピュータソフトウェアとして実施される場合、そのようなソフトウェアは、どのようなタイプの機械命令も含むことができるか、コンピュータ実行可能コードがメモリデバイスの中に位置し及び/又は電子信号としてシステムバス又はネットワーク上を伝送される。本明細書で説明される装置に関連する機能性を実施するソフトウェアは、ただ一つの指示、又は多くの指示を具備することができ、異なるプログラムの中といくつかのメモリデバイスにまたがって、様々な異なるコードセグメントに分散できる。
図1は、いくつかの実施例を実施できる、一例のピアツーピアネットワーク100を示している。ネットワーク100は複数のノード102を含んでいる。特に、ネットワーク100は、ノード(A)102a、ノード(B)102b、ノード(C)102c、及びノード(D)102dを含んでいる。ネットワーク100はまた、ノード102に互いに接続するハブ104、及びインターネット108を介してノード102がネットワーク100の外で他の装置とコミュニケートするのを可能にするルーター106も含んでいる。もちろん、インターネット108は、ルーター106を通してアクセスできるネットワークの1つのタイプに過ぎない。
図1に示される実線は、ノード102間の物理接続を示している。それ故、各ノード102は、物理的にハブ104に接続される。ルーター106はまた、物理的にハブ104と、インターネット108とにも接続される。図1に示される点線は、ネットワーク100上の各ノード102が、ネットワーク100上の他の全てのノード102とコミュニケートできることを示す。同様に、インターネット108上の1つ以上の装置は、ネットワーク100におけるノード102と通信でき、そして、逆もまた同様である。
本明細書に開示された実施例は、少なくともノード102のいくつかが組込みシステムであるピアツーピアネットワーク100で実施されることができる。以上で論じたように、通常、用語「組込みシステム」は、コンピュータハードウェアと、より大きいシステムの一部であるソフトウェアを示す。図1に表わされるネットワーク100では、ノード102のいくつかが、組込みシステムであっても良い。
図1に示されるネットワーク100は、例だけの目的に供される。簡単にするために、図1に示されるネットワーク100は、いくつかのノード102を含んでいるだけである。しかしながら、この実施例は、もっと多くのノード102を含んでいるピアツーピアネットワークで実施できる。この実施例は、より少ないノード102を含んでいるピアツーピアネットワークでもまた実施できる。
ネットワーク100内のノード102のいくつか又は全てを、ネットワーク100における他のノード102へのメッセージをマルチキャストするように構成できる。本明細書で用いられるように、用語「マルチキャスティング」は、ネットワーク100上の1つ以上のノード102に同時にメッセージを送る処理を示す。マルチキャスティングは、ネットワーク内のノードの特定のグループにメッセージを送信するマルチキャスティング手段であるところがブロードキャストとは異なっているが、ブロードキャストは、ネットワーク上の全てのノードにメッセージを送信することを意味する。ネットワーク100内のノード102はまた、他のネットワークノード102へのメッセージをユニキャストするように構成できる。用語「ユニキャスティング」は、ネットワーク100における特定のノード102にメッセージを送ることを示す。UDP(ユーザーデータグラムプロトコル)などのコネクションレスなトランスポートプロトコルは、マルチキャスティングと他のネットワークノード102へのユニキャスティングメッセージとの双方に、使用できる。あるいはまた、ブロードキャストがマルチキャストに代わって使用されるネットワーク100で、本発明の実施例を実施できる。ブロードキャストは、マルチキャストの特殊ケースであり、マルチキャストグループが全てのノード102を含んでいる。
少なくともノード102のいくつかが、ネットワーク100上の他のノード102に対するデータ及び/又はサービスを提供できる。ノード102はまた、例えば、インターネット108を介して、ネットワーク100の外に配置されている装置に対するデータ及び/又はサービスも提供できる。
本明細書で用いられるように、用語「マルチキャストリクエスト」は、マルチキャストによって送信されるデータ及び/又は1つ以上のサービスのためのリクエストを示す。マルチキャストリクエストは、マルチキャストグループに宛てて、(理想的には)マルチキャストグループに結合したノード102の全てに配送される。「リクエスタ」は、マルチキャストリクエストを送信するノード102である。「応答機」は、マルチキャストリクエストに応答するノード102である。図2A−2Fは、ピアツーピアネットワーク100内のノード202が、互いに対するデータ及び/又はサービスを提供するために、どのように相互作用できるかを例示している。図示された例は、4つのノード202、すなわち、ノード(A)202a、ノード(B)202b、ノード(C)202c、及びノード(D)202dにかかわる。
図2Aに示すように、ノード(A)202aは、初めに、サービス212のためのリクエスト210をマルチキャストする。リクエスト210に加えて、ノード(A)202aはまた、リクエスト210関連する応答機リスト214にもマルチキャストする。例えば、トランザクションIDは、リクエスト210と応答機リスト214の両方に関連づけられる。大まかに言えば、マルチキャストリクエスト210で関連する応答機リスト214は、以前にマルチキャストリクエスト210に応答したノード202のリストである。以下でさらに詳細に説明するように、ネットワーク100内でデータのスループットを改善するために、応答機リスト214を使用できる。図2Aでは、応答機リスト214は空である。これは図2Aでは、リクエスタ202aが初めてマルチキャストリクエスト210を送信するのを示しているからである。もちろん、ネットワーク100上で、リクエスト210と応答機リスト214を一緒に送信することができる。
図示した例では、ノード(B)202b、ノード(C)202c、及びノード(D)202dは、リクエスト210が宛先となるマルチキャストグループを接合したものとする。マルチキャストリクエスト210が初めて送信されるとき、ノード(B)202b及びノード(C)202cの双方は、マルチキャストリクエスト210を受信する。しかしながら、それが初めて送信されるとき、ノード(D)202dは、マルチキャストリクエスト210を受信しない。ノード(D)202dがマルチキャストリクエスト210を受信することができない様々な理由がある。例えば、ネットワーク100は、トラフィックでひどく混雑するかもしれず、リクエスト210は、ノード(A)202aからノード(D)202dまでの途中のいくつかのポイントで劣化するかもしれない。宛先に到着する前に、マルチキャストリクエスト210などのパケットが劣化するとき、これは時々パケット損失と呼ばれる。(用語「パケット」は、ネットワーク100上の1つのノード202から別のノード202まで伝送される情報のユニットを示す。通常、マルチキャストリクエスト210は、単一のパケットの中に収納される。)
ノード202が、マルチキャストリクエスト210を受信するとき、リクエストされているデータ及び/又はサービスを提供できるか否かを判断する。もし提供できる場合、ノード202は、マルチキャストリクエスト210を送信したノード202に応答216を送信する。図2Bは、初回のリクエスト210を送るノード(A)202aに応じた、ノード(B)202b、ノード(C)202c、及びノード(D)202dの動作を示している。ノード(B)202b及びノード(C)202cはともに、リクエストされているサービス212を提供する。従って、ノード(B)202bは、応答216bをノード(A)202aに返送する。同様に、ノード(C)202cは、応答216cをノード(A)202aに返送する。応答216b、216cは、ユニキャストによって送信することができる。ノード(D)202dは、リクエスト210を受信しなかったため、マルチキャストリクエスト210に応答しない。
所定の期間の後、ノード(A)202aは、所望するサービス212のためのリクエスト210を再送する。図2Cは、2回目にリクエスト210と応答機リスト214とを送信するノード(A)202aを示している。図2Dは、2回目のリクエスト210及び応答機リスト214を送信するノード(A)202aに応じる、ノード(B)202b、ノード(C)202c、及びノード(D)202dの動作を示している。
これまでのように、リクエスト210と応答機リスト214の両方は、マルチキャストによって送信される。ノード(B)202bとノード(C)202cは、以前にマルチキャストリクエスト210に応答しているため、応答機リスト214は、現在、ノード(B)202bとノード(C)202cの両方を含んでいる。図2C示されているように、それらが2回目に送信されるとき、ノード(B)202b、ノード(C)202c、及びノード(D)202dはそれぞれ、マルチキャストリクエスト210と応答機リスト214を受信する。ノード(B)202bとノード(C)202cが、マルチキャストリクエスト210と応答機リスト214を受信するとき、それら両方は、それらが応答機リスト214に含まれていることを認識する。その結果、ノード(B)202bもノード(C)202cも、このマルチキャストリクエスト210には応答しない。しかしながら、ノード(D)202dは、それが応答機リスト214に含まれていないことを認識する。従って、図2Dに示されているように、ノード(D)202dは、ノード(A)202aに応答216dを返送する。この応答216dは、ユニキャストによって送信することができる。
所定の期間の後、ノード(A)202aは、もう一度、所望のサービス212のためのリクエスト210を再送する。図2Eは、3回目にリクエスト210と応答機リスト214とを送信するノード(A)202aを示している。図2Fは、3回目のリクエスト210及び応答機リスト214を送信するノード(A)202aに応じる、ノード(B)202b、ノード(C)202c、及びノード(D)202dの動作を示している。
これまでのように、リクエスト210と応答機リスト214の両方は、マルチキャストによって送信される。ノード(B)202b、ノード(C)202c、及びノード(D)202dは、以前にマルチキャストリクエスト210に応答しているため、応答機リスト214は、現在、ノード(B)202b、ノード(C)202c、及びノード(D)202dを含んでいる。図2E示されているように、それらが3回目に送信されるとき、ノード(B)202b、ノード(C)202c、及びノード(D)202dはそれぞれ、マルチキャストリクエスト210と応答機リスト214を受信する。各ノード(B)202b、ノード(C)202c、及びノード(D)202dは、各自が応答機リスト214に含まれていることを認識する。その結果、これらのノード202b、202c、202dはいずれも、このマルチキャストリクエスト210に応答しない。
最初の試みの後に、リクエスタ(例えば、ノード(A)202a)がマルチキャストリクエスト210を再送する回数は、本明細書で「再試行」の数と呼ばれる。リクエスタは、所定の数の再試行を送るように構成できる。図2A−2Fに示された例では、1つの初回の試みと、2つの再試行があった。もちろん、本明細書に開示された実施例によれば、追加再試行又はより少ない再試行を送信するように、リクエスタを構成できる。
図3は、一実施例による、ピアツーピアネットワーク100内のノード302で利用できる種々のソフトウェアコンポーネントを示すデータフローダイアグラムである。図3に示されるノード302は、アプリケーションモジュール318を含んでいる。アプリケーションモジュール318は、ネットワーク100上の他のノード102に対するデータ及び/又はサービスを提供できる。アプリケーションモジュール318は、ネットワーク100上の他のノード102からデータ及び/又はサービスもまた得ることができる。
図示されたノード302はまた、通信モジュール320も含んでいる。通信モジュール320は、ネットワーク100におけるアプリケーションモジュール318と他のノード102との間の通信を容易にする。ユニキャストによって及び/又はマルチキャストによって、他のネットワークノード102にメッセージを送信し、メッセージを受信するために、通信モジュール320を構成できる。
アプリケーションモジュール318と通信モジュール320は、ノード302がネットワーク100における他のノード102と情報をやりとりするように、上記図2A−2Fに関連して示した方法で、一緒に動作できる。ネットワーク100上の1つ以上の他のノード102によって提供されるデータ及び/又は1つ以上のサービスを得るために、アプリケーションモジュール318は、データ及び/又はサービスのためのリクエスト210をマルチキャストするために、通信モジュール320に対して1つ以上のコールをすることができる。ネットワーク100上の他のノード102が、マルチキャストリクエスト210に応答するとき、応答216は、通信モジュール320で受信され、その後アプリケーションモジュール318に命令することができる。
図4は、一実施例による、ピアツーピアネットワーク100内のノード402によって利用できる、種々のソフトウェアコンポーネントを示す別のデータフローダイアグラムである。前述のとおり、本明細書に開示された実施例は、パケット損失を最小にする間にスループットを最大にするために、ピアツーピアネットワーク100内のトラフィック管理のための仕組みに関する。この機能性を実施するために、図4に示される装置を使用できる。
表わされた実施例では、複数のイベント422がネットワーク100上の輻輳を意味するものとして定義される。これらのイベント422は、本明細書で輻輳イベント422と呼ばれる。更に、複数のイベント424がネットワーク100上の輻輳の欠落を意味するものとして定義される。これらのイベント424は、本明細書で非輻輳イベント424と呼ばれる。非輻輳イベント424は、将来のネットワーク輻輳を予測する/予測するのを助けることができる。以下、輻輳イベント422と非輻輳イベント424のいくつかの実施例について論じる。
イベント検出モジュール426がノード402上に配置されている。イベント検出モジュール426は、1つの輻輳イベント422又は1つの非輻輳イベント424の発生用にノード402の動作を監視する。
パケット間隔モジュール428もまた、ノード402上に配置されている。イベント検出モジュール426が、定義された輻輳イベント422又は非輻輳イベント424のいずれかを検出したとき、パケット間隔モジュール428に通知する。定義された輻輳イベント422の1つ(あるいはそれ以上)が検出された場合、パケット間隔モジュール428は、ノード402によって送信されるパケットの間隔を増加させる。言い換えれば、ノード402は、1つのパケットを送った後、別のパケットを送る前に待つ時間量を増加する。これは、ネットワーク100上のトラフィック量を減少させる目的のため、なされる。その結果、ネットワーク100の輻輳を減少させる。逆に、定義された非輻輳イベント424の1つ(あるいはそれ以上)が検出された場合、これは、トラフィックの著しい量がネットワーク100上にないことを意味し、応答において、パケット間隔モジュール428は、ノード402によって送信されるパケットの間隔を減少させる。(すなわち、1つのパケットを送った後、別のパケットを送る前に待つ時間を減少する)。
ある実施例では、パケット間隔モジュール428は、UDPなどのようなコネクションレスプロトコルによって送信されるパケットの間隔を調整するだけである。パケット間隔モジュール428は、TCP/IPなどのような接続ベースのプロトコルに従って、送信されるパケットの間隔に影響しないように構成できる。
図5は、一実施例による、ピアツーピアネットワーク100内のノード102の動作を示すフローチャートである。図示された方法500によると、1つ以上の輻輳イベント422が定義される(ステップ502)。同様に、1つ以上の非輻輳イベント424が定義される(ステップ504)。
ノード102上のイベント検出モジュール426は、輻輳イベント422の1つ又は非輻輳イベント424の1つの発生のために、ノード102の活動を監視することができる(ステップ506)。輻輳イベント422が検出される場合(ステップ508)、ノード102上のパケット間隔モジュール428は、ネットワーク輻輳を減少させる試みにおいて、ノード402によって送信されるパケットの間隔を増加できる(ステップ510)。逆に、非輻輳イベント424が検出される場合、パケット間隔モジュール428は、ノード102によって送信されるパケットの間隔を減少できる(ステップ512)。
一部の実施例では、ネットワーク100上の複数ノード102が、図5に示されていた方法500に従って動作する。言い換えれば、複数ノード102は、輻輳イベント422が検出される場合にはパケット間隔を増加させ、非輻輳イベント424が検出される場合にはパケット間隔を減少させるように構成できる。事実上、この様に動作するために、ネットワーク100のノード102の全てを構成できる。この方法では、パケット損失を最小にする間に、ネットワーク100内のデータのスループットを最大にするための、仕組みを備えることができる。有利なことには、セントラルサーバーが、ネットワーク100内の個々のノード102のパケット間隔を制御することは、必要でない。代わりに、ノード102自体は、ネットワーク状態に応じてパケット間隔を調整する。
一実施例による、ピアツーピアネットワーク100のノード102で使用できる特定のアルゴリズムの一例について、これから論じる。特定のアルゴリズムについて論ずるが、実施例はこの特定のアルゴリズムに限定されない。事実、本明細書に開示される実施例と共にどんな適応アルゴリズムも使用できる。使用できる適応アルゴリズムのいくつかの例は、ニューラルネットアルゴリズム、ファジィ論理アルゴリズム、遺伝的アルゴリズムなどを含んでいる。
図6は、一実施例による、ノードのために定義することができる非輻輳イベント624の一例を示している。図6に示されている非輻輳イベント624は、2つの条件630a、630bを含んでいる。第1の条件630aは、ノード102が、マルチキャストリクエスト210とマルチキャストリクエスト210に関連している応答機リスト214を受信したということである。2番目の条件630bは、ノード102が、応答機リスト214に含まれているということである。イベント検出モジュール426が、これら両方の条件630a、630bが満たされていると判断する場合、イベント検出モジュール426は、非輻輳イベント624が生じたことを検出する。
前述のとおり、非輻輳イベント624を検出することに応じて、ノード102はパケット間隔を減少させることができる。
一部の実施例では、図6に示されている非輻輳イベント624が生じる場合、ノード102は、式1に従ってパケット間隔を減少させることができる。一部の実施例では、図6に示されている非輻輳イベント624が生じる場合、ノード102は、式1に従ってパケット間隔を減少させることができる。
swndnew = swnd *(1−1/ shrinkfactor) (1)
式1において、項「swnd」は、送信時間枠の現在値である。送信時間枠は、ノード102のために定義することができる変数である。送信時間枠は、ノード102がどれくらい長く送信パケットの間で待つかを示す。項「swndnew」は、送信時間枠の新たな値である。項「shrinkfactor」は、順調なネットワーク100条件下で減少する送信時間枠を、どれくらい高速に制御するのかに使用できる乗数である。例示された実施例では、「shrinkfactor」の値は、16に等しく設定できる。
図7は、一実施例による、ノード102のために定義することができる輻輳イベント722の一例を示している。図7に示されている輻輳イベント722は、2つの条件730a、730bを含んでいる。第1の条件730aは、ノード102が、マルチキャストリクエスト210とマルチキャストリクエスト210に関連している応答機リスト214とを受信したということである。第2の条件730bは、サービス212を提供するが、ノード102が応答機リスト214に含まれていないということである。イベント検出モジュール426が、これら両方の条件730a、730bが満たされていると判断する場合、イベント検出モジュール426は、輻輳イベント722が発生したものと判断する。
前述のとおり、輻輳イベント722を検出することに応じて、ノード102はパケット間隔を増加させることができる。一部の実施例では、図7に示されている輻輳イベント722が発生する際、ノード102は、式2に従ってパケット間隔を増加させることができる。
swndnew = growmin + swndmax / rlSize / growthrottle(2)
式2において、項「swndnew」は、送信時間枠の新たな値である。(送信時間枠については、上の式1に関連して論じた)。項「growmin」は、ノード102がパケット間隔を増加させている際の、送信時間枠の最小値である。項「swndmax」は、送信時間枠の最大値である。項「rlSize」は、応答機リスト214のサイズである。項「growthrottle」は、パケット間隔がどれくらい高速に増加されているかを制御するのに使用できる乗数である。例示された実施形態では、「growmin」は0.5秒と等しく設定でき、「swndmax」は8秒と等しく設定でき、「growthrottle」は1と等しく設定できる。
図8は、一実施例による、ノード102のために定義することができる輻輳イベント822の別の例を示している。図8に示されている輻輳イベント822は、単一条件830を含んでいる。この条件830は、ノード102がマルチキャストリクエスト210を送信するということである。一部の実施例では、図8に示されている輻輳イベント822が発生する際、ノード102は、式3に従ってパケット間隔を増加させることができる。
swndnew = swnd *(1+1/ shrinkfactor) (3)
式3において、項「swnd」は、送信時間枠(上で論じた)である。項「swndnew」は、送信時間枠の新たな値である。項「shrinkfactor」は、送信時間枠が、順調なネットワーク100条件下で、どれくらい高速に減少するかを制御するのに使用できる乗数である。
図9は、一実施例による、ノード102のために定義することができる輻輳イベント922の別の例を示している。図9に示されている輻輳イベント922は、3つの条件930a、930b、930cを含んでいる。第1の条件930aは、ノード102が、マルチキャストリクエスト210を受信したということである。第2の条件930bは、ノード102が、関連する応答機リスト214を受信しなかったということである。3番目の条件930cは、ノード102がマルチキャストリクエスト210に多重応答216を送信するということである(応答機リスト214を受信しないことの結果として)。イベント検出モジュール426が、これらすべての条件930a、930b、930cが満たされていると判断する場合、イベント検出モジュール426は、輻輳イベント922が発生したものと判断する。一部の実施例では、図9に示されている輻輳イベント922が発生する際、ノード102は、式4に従ってパケット間隔を増加させることができる。
swnd = swnd+( swndmax - swnd)/ growfactor (4)
式4において、項「swnd」は、送信時間枠である。項「swndmax」は、送信時間枠の最大値である。項「growfactor」は、不利な条件下で、送信時間枠の成長率を制御するのに使用できる乗数である。例示された実施例では、項「swndmax」は8秒と等しく設定でき、用語「growfactor」は16と等しく設定できる。
図10は、一実施例による、ノード102のために定義することができる輻輳イベント1022の別の例を示している。図10に示されている輻輳イベント1022は、単一条件1030を含んでいる。この条件1030は、ノード102が、送信要求遅延の間、マルチキャストリクエスト210を受信するということである。上で論じたように、1つのパケットを送った後、別のパケットを送る前に、ノード102は所定の時間、待つことができる。これは、ネットワーク100上のトラフィック量を減少させる目的のためにでき、その結果、ネットワーク100輻輳を減少させる。用語「送信要求遅延」は、ノード102が、パケットを送信する必要があると判断した後から、送信時間枠によって導入された遅延までに実際にパケットが送信される前までの期間を示す。一部の実施例では、図10に示されている輻輳イベント1022が発生する際、ノード102は、式5に従ってパケット間隔を増加させることができる。
timeSendMcast = (swnd + swndjitter)/(1+mretries) (5)
式5において、項「timeSendMcast」は、マルチキャストパケットを送るまで、ノード102が待つ時間の長さである。この遅延は、全てのノード102が、パケット損失を引き起こすことからスパイクを防ぐために、それらのリクエストの間を置くのを招くことを意図する。項「swnd」は、送信時間枠(上で論じた)である。項「swndjitter」は、コリジョンを避けるためにパケットの発信における可変性を導入する乱数(例えば、0から100)である。項「mretries」は、自身を送信するのを待っていた間、ノード102がマルチキャストリクエストを受信した回数である。その数は、どのようなパケットも送信することができないことを意味し、スターベイションを防ぐのに式で使用される。
図11は、一実施例による、ノード102のために定義することができる輻輳イベント1122の別の例を示している。図11に示されている輻輳イベント1122は、単一条件1130を含んでいる。上で論じたように、この条件1130は、ノード102が、発送要求遅延の間にユニキャスト応答216を受信するということである。一部の実施例では、図11に示されている輻輳イベント1122が発生する際、ノード102は、式6に従ってパケット間隔を増加させることができる。
timeSendUcast = rand(swnd/2) (6)
式6において、項「timeSendUcast」は、ユニキャストパケットを送るまで、ノード102が待つ時の長さである。この遅延は、全ての応答機が、パケット損失の発生の急上昇を防ぐために、それらのリクエストの間隔をあける原因となることを意図する。用語「swnd」は、送信時間枠(上で論じた)である。項「rand(swnd/2)」は、0とswnd/2の間の乱数である。
前述のとおり、ピア・ツウ・ピアネットワーク100内のノード102は、組込みシステムであっても良い。図12は、一実施例に従って構成される組込みシステム1202で用いることができるハードウェア機器のブロック図である。CPU(Central Processing Unit)1208又はプロセッサは、その他の装置(装置はバス1210を介してCPU1208と結合される)を含んでいる組込みシステム1202の動作を制御するために提供できる。CPU1208は、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ又は当技術分野で既知のその他の機器として供されることができる。CPU1208は、メモリ内に保存されたプログラムコードに基づいて、論理的及び算術演算を実行する。所定の実施例では、メモリ1214は、CPU1208を含むオンボードでメモリであっても良い。例えば、マイクロコントローラは、しばしばオンボードメモリの所定の量を含む。
組込みシステム1202はまた、ネットワークインタフェース1212も含むことができる。ネットワークインタフェース1212は、組込みシステム1202を、ネットワークに接続させる。ネットワークは、ポケベルのネットワーク、セルラネットワーク、グローバルな通信ネットワーク、インターネット、コンピュータネットワーク、電話網であっても良い。ネットワークインタフェース1212は、標準プロトコルに従って、適用すべきネットワークのために動作する。
組込みシステム1202はまた、メモリ1214も含むことができる。メモリ1214は、一時的なデータを格納するためのRAM(Random Access Memory)を含むことができる。代わりに又は更に、メモリ1214は、一定のコードやコンフィギュレーションデータのような、より恒久的なデータを格納するためのROM(Read-Only Memory)を含むことができる。メモリ1214は、ハードディスクドライブなどの磁気記憶装置としてもまた、供されることができる。メモリ1214は、電子的情報を格納できるどのようなタイプの電子装置であっても良い。
組込みシステム1202はまた、1つ以上のCOMポート1216も含むことができる。COMポートは他の装置との通信を容易にする。組込みシステム1202はまた、キーボード、マウス、ジョイスティック、タッチスクリーン、モニタ、スピーカー、プリンタなどのような入出力装置1218も含むことができる。
もちろん、図12はコンピュータシステム1201の1つの可能な構造だけを示している。他の種々のアーキテクチャと装置を利用できる。
本システム及び方法は、様々な場面に使用することができる。図13は本システム及び方法を実施することができるシステムの1つの実施例を示している。図13は、照明コントローラシステム1308を含む照明システム700の1つの実施例を示すブロック図である。図13の照明システム1300は、家庭内の種々の部屋に組み込むことができる。図示したように、システム1300は、部屋(A)1302、部屋(B)1304、及び部屋(C)1306を含んでいる。図13では3つの部屋が示されているが、システム1300は、家庭、居住、又は他の環境の中で、どのような数及び種類の部屋でも導入できる。
照明コントローラシステム1308は、システム1300内で、追加組込みシステム及び装置を監視し、制御できる。1つの実施例において、部屋(A)1302と部屋(B)1304は、それぞれスイッチ装置1314、1318を含んでいる。スイッチ装置1314、1318は、セカンダリ組込みシステム1316、1320もまた含むことができる。セカンダリ組込みシステム1316、1320は、照明コントローラシステム1308からの指示を受信できる。セカンダリ組込みシステム1316、1320は、その後これらの指示を実行できる。その指示は、種々の照明装置1310、1312、1322、1324の電源を入れたり、電源を切ったりすることを含むことができる。その指示は、種々の照明装置1310、1312、1322、1324の明るさを薄暗くしたり、明るさを増強したりすることを含むことができる。その指示は、種々のパターンの照明装置1310、1312、1322、1324の明るさをアレンジすることを更に含むことができる。セカンダリ組込みシステム1316、1320は、部屋(A)1302と部屋(B)1304にある各照明装置1310、1312、1322、1324を監視して制御するために、照明コントローラシステム1308を円滑にする。
照明コントローラシステム1308はまた、描かれた部屋(C)1306にセカンダリ組込みシステム1328を含む照明装置1326に直接指示を与えるかもしれない。照明コントローラシステム1308は、個別の照明装置1326をパワーアップ又はパワーダウンするために、セカンダリ組込みシステム1328に指示することができる。同様に、照明コントローラシステム1308から受信された指示は、個々の照明装置1326の明るさを薄暗くしたり、明るさを増強したりすることを含むことができる。
照明コントローラシステム1308はまた、システム1300内の個々の照明装置1330及び1332に対して、監視し、直接指示を与えることができる。これらの指示は、以前に説明したものと同様の指示を含むことができる。
図14は、本発明の本システム及び方法を実施することができるシステムの追加実施例である。図14は、セキュリティシステム1400を示すブロック図である。描かれた実施例におけるセキュリティシステム1400は、部屋(A)1402、部屋(B)1404、部屋(C)1406で実施される。これらの部屋は、家庭又は他の閉じられた環境の範囲にあってもよい。システム1400はまた、部屋(A)1402、部屋(B)1404、及び部屋(C)1406がそれぞれ領域又は境界を表す開かれた環境で実施することもできる。
システム1400は、セキュリティコントローラシステム1408を含んでいる。セキュリティコントローラシステム1408は、システム1400内の種々の装置を監視し、情報を受信する。例えば、動作センサ1414、1418は、セカンダリ組込みシステム1416を含むことができる。動きがセカンダリ組込みシステム1416、1420を介して検出されるとき、動作センサ1414、1418は、動きのために即座に空間を監視し、セキュリティコントローラシステム1408に警告することができる。セキュリティコントローラシステム1408はまた、システム1400内の種々の装置にも指示を与えることができる。例えば、セキュリティコントローラシステム1408は、窓センサ1410、1422とドアセンサ1412、1424を、パワーアップ又はパワーダウンするために、セカンダリ組込みシステム1416、1420へ指示を供給できる。1つの実施例において、セカンダリ組込みシステム1416、1420は、窓センサ1410、1422が窓の動きを検出した場合に、セキュリティコントローラシステム1408に通知する。同様に、セカンダリ組込みシステム1416、1420は、ドアセンサ1412、1424がドアの動きを検出した場合に、セキュリティコントローラシステム1408に通知する。セカンダリ組込みシステム1416、1420は、動作センサ1414、1418内に設置されたLED(図示せず)を作動させるために、動作センサ1414、1418に対して指示できる。
セキュリティコントローラシステム1408はまた、システム1400内の個々の装置を監視し、直接指示を与えることができる。例えば、セキュリティコントローラシステム1408は、動作センサ1430又は窓のセンサ1432を監視し、パワーアップ又はパワーダウンするための指示を与えることができる。セキュリティコントローラシステム1408はまた、センサ1430及び1432内でLED(図示せず)又はオーディオの警告通知を作動させるために、動作センサ1430と窓のセンサ1432に対して指示もできる
それぞれの個々の装置はまた、セカンダリ組込みシステムを含むことができるシステム1400を備える。例えば、図14はセカンダリ組込みシステム1428を含むドアセンサ1426を示している。セキュリティコントローラシステム1408は、以前説明したのと同じような方法で、セカンダリ組込みシステム1428を監視し、指示を与えることができる。
図15は、ホームコントロールシステム1500の1つの実施例を示すブロック図である。ホームコントロールシステム1500は、照明システム1500、セキュリティシステム1500などの種々のシステムのモニタリングを容易にするホームコントローラ1508を含んでいる。ホームコントロールシステム1500は、ユーザに、1つ以上の組込みシステムを通して、種々の装置とシステムを制御することを可能にしている。1つの実施例では、ホームコントローラシステム1508は、以前に図7及び図8に関連して説明したのと同じ方法で、情報を監視して提供する。描かれている実施例では、ホームコントローラ1508は、セカンダリ組込みシステム1520を介して暖房装置1524に指示を与える。暖房装置1524は、居住場所又はオフィスで通常備えられる暖炉又は他の加熱装置を含むことができる。ホームコントローラシステム1508は、セカンダリ組込みシステム1520を介して、暖房装置1524をパワーアップ又はパワーダウンするための指示を与えることができる。
同様に、ホームコントローラ1508は、ホームコントロールシステム1500内の冷房装置1530などの装置を監視して、直接指示を与えることができる。冷房装置1530は、居住場所又はオフィスで通常備えられるエアコン又は他の冷却装置を含むことができる。セントラルホームコントローラ1508は、セントラル組込みシステム1508によってコントロールされた計測温度に応じてパワーアップ又はパワーダウンするように、冷房装置1530に指示できる。ホームコントローラシステム1508は、以前に図13及び図14に関連して説明したのと同じ方法で機能する。
さまざまな異なった技術と手法のどれかを使用することで、情報と信号を表すことができる。データ、指示、コマンド、情報、信号、ビット、シンボル、及びチップは、例えば、電圧、電流、電磁波、磁場又は粒子、光場又は粒子、又はそれのどのような組合せによって表すことができる上記の説明を通して参照できる。
本明細書に開示された実施例に関して説明した、種々の図示した論理ブロック、モジュール、回路、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、又は両方の組合せとして実施することができる。明確にハードウェアとソフトウェアのこの互換性を図示するために、種々の図示された装置、ブロック、モジュール、回路、及びステップは、一般的に上記の機能性に関して説明されている。そのような機能性がハードウェア又はソフトウェアとして実施されるか否かは、システム全体に課された特殊用途と設計制約条件に依存する。当業者は、各特殊用途のための様々な方法における説明された機能性を実施することができるが、本発明の範囲からの逸脱しながら、そのような実施判断を解釈するべきでない。
本明細書に開示された実施例に関して説明された図示した論理ブロック、モジュール、及び回路は、汎用プロセッサ、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array signal)又は他のプログラマブル論理デバイス、離散的なゲート又はトランジスタロジック、離散的なハードウェア機器、又は本明細書に記載された機能を実行するように設計されたどのような組合せでも、実施又は実行できる。汎用プロセッサは、マイクロプロセッサであっても良いが、代替として、プロセッサは、どのような従来のプロセッサ、コントローラ、マイクロコントローラ、又は状態マシンであっても良い。プロセッサ又は、コンピュータ機器の組合せ、例えば、DSPとマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアに関連した1つ以上のマイクロプロセッサ、又はいかなる他のそのような形態の組合せとしても実施することができる。
本明細書に開示された実施例に関して説明された方法又はアルゴリズムのステップは、直接的にハードウェアで、プロセッサにより実行されるソフトウェアモジュールで、又は2つの組合せで、具体化されることができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、又は当技術分野で既知の記憶媒体のいかなる他の形式にも常駐できる。例示された記憶媒体は、プロセッサが記憶媒体から情報を読み込んで、情報を書書き込むことができるように、プロセッサと結合される。別の方法では、記憶媒体はプロセッサに不可欠であろう。プロセッサと記憶媒体は、ASICに常駐できる。ASICは、利用者端末に常駐できる。別の方法では、プロセッサと記憶媒体は、個別装置として利用者端末に常駐できる。
本明細書に開示された方法は、説明された方法を遂行するために、1つ以上のステップ又は動作を具備する。方法ステップ及び/又は動作は、本発明の範囲から逸脱しないで、互いに交換できる。言い換えれば、実施例の適切な動作のために、ステップ又は動作に特定の順序を要しない限り、特定のステップ及び/又は動作の順序及び/又は行使は、本発明の範囲を逸脱しないで変更できる。
本発明の特定の実施例とアプリケーションを図示して説明したが、本発明が本明細書に開示された正確な形態と装置に限定されないことを理解されるべきである。当分野の当業者にとって明白な種々の修正、変更、及びバリエーションは、本発明の趣旨と範囲から逸脱しないで、本明細書に開示した本発明のアレンジ、操作、及び方法やシステムの詳細を成しうることができるであろう。
いくつかの実施例を実施できる、一例のピアツーピアネットワークを示す。 ピアツーピアネットワーク内のノードが、互いに対するデータ及び/又はサービスを提供するために、どのように相互作用できるかを例示する。 ピアツーピアネットワーク内のノードが、互いに対するデータ及び/又はサービスを提供するために、どのように相互作用できるかを例示する。 ピアツーピアネットワーク内のノードが、互いに対するデータ及び/又はサービスを提供するために、どのように相互作用できるかを例示する。 ピアツーピアネットワーク内のノードが、互いに対するデータ及び/又はサービスを提供するために、どのように相互作用できるかを例示する。 ピアツーピアネットワーク内のノードが、互いに対するデータ及び/又はサービスを提供するために、どのように相互作用できるかを例示する。 ピアツーピアネットワーク内のノードが、互いに対するデータ及び/又はサービスを提供するために、どのように相互作用できるかを例示する。 一実施例による、ピアツーピアネットワーク内のノードによって利用できる種々のソフトウェアコンポーネントを示すデータフローダイアグラムである。 一実施例による、ピアツーピアネットワーク内のノードによって利用できる種々のソフトウェアコンポーネントを示す別のデータフローダイアグラムである。 一実施例による、ピアツーピアネットワーク内のノードの動作を示すフローチャートである。 一実施例による、ノードのために定義することができる非輻輳イベントの一例を示す。 一実施例による、ノードのために定義することができる輻輳イベントの一例を示す。 一実施例による、ノードのために定義することができる輻輳イベントの別の例を示す。 一実施例による、ノードのために定義することができる輻輳イベントの別の例を示す。 一実施例による、ノードのために定義することができる輻輳イベントの別の例を示す。 一実施例による、ノードのために定義することができる輻輳イベントの別の例を示す。 一実施例によって構成される組込みシステムで用いることができるハードウェア機器のブロック図である。 本システム及び方法を実施することができる照明システムの一例を示す。 本システム及び方法を実施することができるセキュリティシステムの一例を示す。 本システム及び方法を実施することができるホームコントローラシステムの一例を示す。
ピアツーピアネットワーク内でトラフィックを管理するためのシステム及び方法が、開示される。例示された実施形態では、ピアツーピアネットワークで輻輳を意味する1つ以上の輻輳イベントが、定義される。さらに、ピアツーピアネットワークで輻輳の欠落を意味するが、将来の網輻輳を予測する/予測するのを支援することができる1つ以上の非輻輳イベントが、定義される。パケット通信を実行した時に、当該パケット通信の対象となったパケットの内容と送信又は受信の種別とのうち少なくとも一つに基づいて、定義された輻輳イベントの1つ以上又は前記定義された非輻輳イベントの1つ以上を検出したかを判断する。ノードが、定義された輻輳イベントの1つ以上の発生を検出するとき、ノードはノードによって送信されるコネクションレスプロトコル(例えば、ユーザーデータグラムプロトコル)パケットの間隔を増加させる。ノードが、定義された非輻輳イベントの1つ以上の発生を検出するとき、ノードはノードによって送信されるコネクションレスプロトコルパケットの間隔を減少させる。ピアツーピアネットワーク内のノードのいくつかが、組込みシステムであっても良い。

Claims (20)

  1. ピアツーピアネットワーク内のノードによって実行され、前記ピアツーピアネットワーク内のトラフィック管理のための方法であって、
    前記ピアツーピアネットワーク上で輻輳を意味する1つ以上の輻輳イベントを定義し、
    前記ピアツーピアネットワーク上で輻輳の欠如を意味する1つ以上の非輻輳イベントを定義し、
    前記定義された輻輳イベントの1つ以上を検出することに応じて、前記ノードによって送信されるコネクションレスプロトコルパケットの間隔を増加させ、
    前記定義された非輻輳イベントの1つ以上を検出することに応じて、前記ノードによって送信される前記コネクションレスプロトコルパケットの間隔を減少させること
    を含むことを特徴とする方法。
  2. 前記輻輳イベント又は前記非輻輳イベントのいずれかの発生用にノードの動作を監視すること
    を更に含むことを特徴とする請求項1記載の方法。
  3. 前記1つ以上の非輻輳イベントは、
    マルチキャストリクエストと前記マルチキャストリクエストに関連する応答機リストとを受信し、
    前記ノードが前記応答機リストに含まれていることを判断すること
    を含むことを特徴とする請求項1記載の方法。
  4. 前記1つ以上の輻輳イベントは、
    マルチキャストリクエストと前記マルチキャストリクエストに関連する応答機リストとを受信し、
    前記ノードが前記応答機リストに含まれていないことを判断すること
    を含むことを特徴とする請求項1記載の方法。
  5. 前記1つ以上の輻輳イベントは、マルチキャストリクエストを送信すること
    を含むことを特徴とする請求項1記載の方法。
  6. 前記1つ以上の輻輳イベントは、
    マルチキャストリクエストを受信するが、前記マルチキャストリクエストに関連する応答機リストを受信せず、
    多重応答を前記マルチキャストリクエストに送信すること
    を含むことを特徴とする請求項1記載の方法。
  7. 前記1つ以上の輻輳イベントは、パケットを送信するのを待つ間、マルチキャストリクエストを受信すること
    を含むことを特徴とする請求項1記載の方法。
  8. 前記1つ以上の輻輳イベントは、パケットを送信するのを待つ間、ユニキャスト応答を受信すること
    を含むことを特徴とする請求項1記載の方法。
  9. 前記コネクションレスプロトコルは、ユーザーデータグラムプロトコルであること
    を特徴とする請求項1記載の方法。
  10. 前記ノードは、組込みシステムであること
    を特徴とする請求項1記載の方法。
  11. ネットワーク内におけるトラフィック管理のための方法を実行するために構成される、ピアツーピアネットワークにおけるノードであって、
    プロセッサと、
    前記プロセッサと電子通信するメモリと、
    前記メモリに格納された指示とを備え、方法を実行するために実行可能である前記指示は、
    前記ピアツーピアネットワーク上で輻輳を意味する1つ以上の輻輳イベントを定義し、
    前記ピアツーピアネットワーク上で輻輳の欠如を意味する1つ以上の非輻輳イベントを定義し、
    前記定義された輻輳イベントの1つ以上を検出することに応じて、コネクションレスプロトコルに従って前記ノードによって送信されるパケットの間隔を増加させ、
    前記定義された非輻輳イベントの1つ以上を検出することに応じて、前記コネクションレスプロトコルに従って前記ノードによって送信される前記パケットの間隔を減少させること
    を含むことを特徴とするノード。
  12. 前記方法は、更に、前記輻輳イベント又は前記非輻輳イベントのいずれかの発生のために、ノードの動作を監視すること
    を含むことを特徴とする請求項11記載のノード。
  13. 前記1つ以上の非輻輳イベントは、
    マルチキャストリクエストと前記マルチキャストリクエストに関連する応答機リストとを受信し、
    前記ノードが前記応答機リストに含まれていることを判断すること
    を含むことを特徴とする請求項11記載のノード。
  14. 前記1つ以上の輻輳イベントは、
    マルチキャストリクエストと前記マルチキャストリクエストに関連する応答機リストとを受信し、
    前記ノードが前記応答機リストに含まれていないことを判断すること
    を含むことを特徴とする請求項11記載のノード。
  15. 前記1つ以上の輻輳イベントは、
    マルチキャストリクエストを送信することと、
    マルチキャストリクエストを受信するが、前記マルチキャストリクエストに関連する応答機リストを受信せず、前記マルチキャストリクエストに多重応答を送信する処理と、
    パケットを送信するのを待つ間、前記マルチキャストリクエストを受信する処理と、
    パケットを送信するのを待つ間、ユニキャスト応答を受信する処理と
    から構成されるグループから選択されることを特徴とする請求項11記載のノード。
  16. ネットワーク内でトラフィック管理のための方法を実行するために実行可能な指示を具備するコンピュータ読み込み可能な媒体であって、前記方法は
    ピアツーピアネットワーク上で輻輳を意味する1つ以上の輻輳イベントを定義し、
    前記ピアツーピアネットワーク上で輻輳の欠如を意味する1つ以上の非輻輳イベントを定義し、
    前記定義された輻輳イベントの1つ以上を検出することに応じて、コネクションレスプロトコルに従って前記ノードによって送信されるパケットの間隔を増加させ、
    前記定義された非輻輳イベントの1つ以上を検出することに応じて、前記コネクションレスプロトコルに従って前記ノードによって送信される前記パケットの間隔を減少させること
    を含むことを特徴とするコンピュータ読み込み可能な媒体。
  17. 前記方法は、更に、前記輻輳イベント又は前記非輻輳イベントのいずれかの発生用にノードの動作を監視すること
    を含むことを特徴とする請求項16記載のコンピュータ読み込み可能な媒体。
  18. 前記1つ以上の非輻輳イベントは、
    マルチキャストリクエストと前記マルチキャストリクエストに関連する応答機リストとを受信し、
    前記ノードが前記応答機リストに含まれていることを判断すること
    を含むことを特徴とする請求項16記載のコンピュータ読み込み可能な媒体。
  19. 前記1つ以上の輻輳イベントは、
    マルチキャストリクエストと前記マルチキャストリクエストに関連する応答機リストとを受信し、
    前記ノードが前記応答機リストに含まれていないことを判断すること
    を含むことを特徴とする請求項16記載のコンピュータ読み込み可能な媒体。
  20. 前記1つ以上の輻輳イベントは、
    マルチキャストリクエストを送信することと、
    マルチキャストリクエストを受信するが、前記マルチキャストリクエストに関連する応答機リストを受信せず、前記マルチキャストリクエストに多重応答を送信する処理と、
    パケットを送信するのを待つ間、前記マルチキャストリクエストを受信する処理と、
    パケットを送信するのを待つ間、ユニキャスト応答を受信する処理と
    から構成されるグループから選択されることを特徴とする請求項16記載のコンピュータ読み込み可能な媒体。
JP2006554367A 2005-12-29 2006-02-03 ピアツーピアネットワーク内のトラフィックを管理するためのシステム及び方法 Expired - Fee Related JP4096991B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/324,030 2005-12-29
US11/324,030 US7680044B2 (en) 2005-12-29 2005-12-29 Systems and methods for managing traffic within a peer-to-peer network
PCT/JP2006/302290 WO2007074539A1 (en) 2005-12-29 2006-02-03 Systems and methods for managing traffic within a peer-to-peer network

Publications (2)

Publication Number Publication Date
JP4096991B1 JP4096991B1 (ja) 2008-06-04
JP2008523643A true JP2008523643A (ja) 2008-07-03

Family

ID=36499685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006554367A Expired - Fee Related JP4096991B1 (ja) 2005-12-29 2006-02-03 ピアツーピアネットワーク内のトラフィックを管理するためのシステム及び方法

Country Status (11)

Country Link
US (1) US7680044B2 (ja)
EP (1) EP1966948B8 (ja)
JP (1) JP4096991B1 (ja)
KR (1) KR100970533B1 (ja)
CN (1) CN101069393B (ja)
AT (1) ATE494708T1 (ja)
DE (1) DE602006019491D1 (ja)
DK (1) DK1966948T3 (ja)
ES (1) ES2356480T3 (ja)
RU (1) RU2405271C2 (ja)
WO (1) WO2007074539A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2562592A1 (en) * 2005-11-28 2007-05-28 Tundra Semiconductor Corporation Method and system for handling multicast event control symbols
CN101420335B (zh) 2007-10-26 2011-09-14 华为技术有限公司 对等网络节点故障检测/处理方法及装置
US9014616B2 (en) * 2009-07-10 2015-04-21 Tomtom International B.V. Alert content reception apparatus, alert content communications system and method of acquiring alert content
KR101568288B1 (ko) 2009-09-21 2015-11-12 삼성전자주식회사 데이터 수신 장치 및 방법
US8995356B2 (en) * 2009-10-14 2015-03-31 Qualcomm Incorporated Coding methods and apparatus for broadcast channels
US8630307B2 (en) 2011-09-13 2014-01-14 Qualcomm Incorporated Methods and apparatus for traffic contention resource allocation
US10200213B1 (en) * 2015-09-30 2019-02-05 The Directv Group, Inc. Method and system for allocating resources in a gateway device
CN115484632B (zh) * 2021-05-31 2024-09-17 极米科技股份有限公司 一种事件测量方法、装置、设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9510934D0 (en) * 1995-05-31 1995-07-26 3Com Ireland Storm protection mechanism
US5892754A (en) * 1996-06-07 1999-04-06 International Business Machines Corporation User controlled adaptive flow control for packet networks
US6115749A (en) * 1997-10-14 2000-09-05 Lucent Technologies Inc. System and method for using a window mechanism to control multicast data congestion
JP3493309B2 (ja) * 1997-10-31 2004-02-03 富士通株式会社 マルチキャスト送信方法
US6215769B1 (en) 1998-10-07 2001-04-10 Nokia Telecommunications, Inc. Enhanced acknowledgment pacing device and method for TCP connections
US6449491B1 (en) * 1999-05-10 2002-09-10 Ericsson Inc. Apparatus and methods for conducting group calls in wireless communications systems
JP2002271356A (ja) * 2001-03-12 2002-09-20 Oki Electric Ind Co Ltd ネットワーク通信システム
US7483433B2 (en) * 2001-09-17 2009-01-27 Foundry Networks, Inc. System and method for router data distribution
US20030189495A1 (en) * 2002-04-03 2003-10-09 Pettler Peter R. Method and system for controlling a selected electrical load in a building
US20030212804A1 (en) * 2002-05-09 2003-11-13 Ardeshir Hashemi Method and apparatus for media clip sharing over a network
KR100554015B1 (ko) 2002-12-23 2006-02-22 한국과학기술정보연구원 그리드 컴퓨팅에 적합한 데이터 전송 제어 시스템 및방법과 그 프로세스를 기록한 컴퓨터 판독가능한 기록매체
GB0303192D0 (en) * 2003-02-12 2003-03-19 Saviso Group Ltd Methods and apparatus for traffic management in peer-to-peer networks
US7966368B2 (en) * 2003-05-02 2011-06-21 Microsoft Corporation Communicating messages over transient connections in a peer-to-peer network
US9160571B2 (en) 2004-03-11 2015-10-13 Hewlett-Packard Development Company, L.P. Requesting a service from a multicast network
US7423986B2 (en) 2004-03-26 2008-09-09 Cisco Technology, Inc. Providing a multicast service in a communication network
EP1589706B1 (en) 2004-04-19 2008-03-19 Alcatel Lucent Control of multicast traffic

Also Published As

Publication number Publication date
EP1966948B8 (en) 2011-04-13
JP4096991B1 (ja) 2008-06-04
CN101069393B (zh) 2012-03-14
US20070159966A1 (en) 2007-07-12
CN101069393A (zh) 2007-11-07
WO2007074539A1 (en) 2007-07-05
US7680044B2 (en) 2010-03-16
RU2405271C2 (ru) 2010-11-27
DE602006019491D1 (de) 2011-02-17
ATE494708T1 (de) 2011-01-15
EP1966948A1 (en) 2008-09-10
KR20080084975A (ko) 2008-09-22
EP1966948B1 (en) 2011-01-05
KR100970533B1 (ko) 2010-07-16
ES2356480T3 (es) 2011-04-08
RU2008125069A (ru) 2009-12-27
DK1966948T3 (da) 2011-03-28

Similar Documents

Publication Publication Date Title
JP4140660B1 (ja) サービスを発見し対話するためのシステム及び方法
JP4096991B1 (ja) ピアツーピアネットワーク内のトラフィックを管理するためのシステム及び方法
JP4029911B1 (ja) コンピュータネットワーク上の選択式マルチキャストプロキシを提供するためのシステム及び方法
JP4412405B2 (ja) ネットワーク内通信用転送処理を選択するためのシステムと方法
US7529241B2 (en) Systems and methods for providing a network bridge for UDP multicast traffic

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080303

R150 Certificate of patent or registration of utility model

Ref document number: 4096991

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140321

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees