【課題を解決するための手段】
【0005】
第1の態様に基づいて、請求項1に記載のプロキシノードが提供される。
【0006】
第1の態様は、クラウドサービスの採用に関して言えば、レイテンシが主要な懸案事項であるとみなされていることを認識している。さらに、適切なサービス品質(QoS)の仕組みの欠如およびトラフィック需要に対するネットワークの過少利用は、クラウドベースサービスの配備に遅れをきたす。
【0007】
伝送制御プロトコル(TCP)は現在、主要なトランスポートプロトコルとみなされている。研究に基づけば、TCPは世界全体のトラフィックのうち89%を上回る量を伝送している。しかしながら、TCPのパフォーマンスはパケットロスや遅れたパケットから大きな影響を受ける。特に、TCPの積極的なバックオフ挙動は、リンクの過少利用や遅れの増加をもたらし得る。つい最近の研究は、TCPの挙動を変更することにより、ネットワークでのスループットが16倍改善する可能性があることを示している。
図1は、達成可能なスループット対パケットロスという観点からの、TCPのパフォーマンスの例を示している。図示されるように、パケットのドロップ率のわずかな上昇に伴って、スループットが著しく減少する(これはほとんどのネットワークにおいてよくあることである)。
【0008】
TCPバックオフ挙動によるレイテンシの増加は、サービス品質保証契約(SLA)違反がクラウドプロバイダに経済的な罰則をもたらし得るクラウドベースサービスを考えると、特に問題となり得る。残念ながら、そのような過度の遅れは、ネットワークに輻輳がある時に頻繁に生じやすく、その時こそTCPの効果が最も明らかになる時なのである。輻輳に加えて、モバイルデータ使用量の著しい増加により、無線リンクがほとんどのエンドツーエンド通信に統合されてきている。無線チャネルでは通常パケットドロップが起こりやすく、したがってTCPは無線チャネルにとって最善の選択肢ではないと知られている(したがって無線アクセスプロトコル(WAP)などのプロトコルは独自のトランスポートプロトコルである、無線トランスポートプロトコル(WTP)を持つ)。
【0009】
このようなマイナスの側面はあるが、TCPは依然としてそのパフォーマンスの信頼性という点で評価されている。他のいずれの解決策も、帯域幅のオーバーヘッドを著しく増加させることなくパケット配信の信頼性を確保しなければならない。これから説明されるように、レートレス符号ベースのトランスポートプロトコルは、レイテンシを最小化しつつ信頼性を確保する効率的な方法である。このエンドツーエンドプロトコルはすでに実装され、測定は、TCPの代わりにこのトランスポートプロトコルを使用すると、スループットを4倍改善できる(有線回線を介して。無線リンクを介すると最大11倍)ことを示している。このような著しい改善は、他のつい最近の研究報告で観察された数量と一致している。
【0010】
上述のように、TCPは積極的なバックオフや帯域幅の過少利用がもたらすレイテンシの増加から影響を受ける。一方で、ユーザデータグラムプロトコル(UDP)はより単純なプロトコルであるが、パケット配信プロセスの信頼性を何も保証しない。従来の固定レート誤り訂正符号の使用は、パケットドロップ(全パケット消失)に対処する上で非効率的である。さらに、パケットレベルの誤り訂正符号は、帯域幅と信頼性のトレードオフをもたらし、前方誤り訂正(FEC)符号による帯域幅の不必要な使用を生じさせることがある。ハイブリッド自動再送要求(ARQ)という技術は概してより効率的であるが、そのパフォーマンスはパラメータの最適性、およびフィードバックチャネルの信頼性に著しく依存する。
【0011】
しかしながら、第1の態様はまた、TCPまたは他の何らかのプロトコルの置き換えを目的とした何らかの方式の導入に伴う主要な課題は、その方式の採用であることも認識している。ほとんどのアプリケーションはトランスポートプロトコルとしてTCPまたは他のプロトコルを使用しているので、新しいプロトコルがTCPに取って代わるためには長い時間/努力が必要になるだろう。したがって、レガシーアプリケーション/ネットワークエンドノードが、それらのノードに何ら変更を加える必要なく新しいプロトコルの恩恵を受けることを可能にする仕組みが必要である。
【0012】
それで、プロキシノードが提供される。プロキシノードは、通信リンクを介して第2のノードに送信されるデータを第1のノードから受信し得る受信ロジックを含み得る。プロキシリンクはまた、プロキシノードのグループから、選択される1つのプロキシノードを決定し得る決定ロジックを含み得る。決定ロジックは、プロキシノードと第2のノードとの間の通信リンクの通信リンク特性を決定し、プロキシノード、選択されるノードおよび第2のノードとの間の通信リンク特性を決定することにより、プロキシノードを選択し得る。この差が閾値量の範囲に収まる場合、プロキシノードはグループから選択され得る。プロキシノードはまた、選択されるプロキシノードとのデータの転送のための、レートレス符号化通信リンクまたは噴水符号化通信リンクを確立し得る、送信ロジックを含み得る。このようにして、プロキシノードは、既存のノードへの変更を何ら必要とすることなくレートレス符号化を利用するために必要な機能を提供することができる。特に、プロキシノードはデータを第2のノードに送信する際に経由する他のプロキシノードをグループから選択し得るが、その選択されるノードを介する通信リンクは依然として必要な特性を得ることができる。つまり、通信リンクの特性は、プロキシノードと第2のノードとの間の直接的なリンクと比較して少しだけ劣るかもしれないが、これらの特性が閾値量の範囲に収まる限り、プロキシノードと第2のノードとの間のエンドツーエンドの改善は、プロキシノードと選択されるプロキシノードとの間のレートレス符号化を使用することで依然として実現することができる。これにより、第1のノードから第2のノードに送信されるデータは、例えばネイティブプロトコルに従ってプロキシノードに受信され、次いでより効率的なレートレス符号化を使用してプロキシノードと選択されたプロキシノードとの間で送信され、そして例えばネイティブプロトコルを使用して選択されたプロキシノードにより第2のノードに転送されることが可能である。これにより、第1のノードか第2のノードのどちらにおいても何の変更も必要とすることなく、可能であればいつでもより効率的なレートレス符号化が使用されるようにすることができる。
【0013】
一実施形態において、決定ロジックは、プロキシノードグループの複数のプロキシノードを選択されるプロキシノードとして選択できる場合、通信リンクの特性がプロキシノードと第2のノードとの間の通信リンクの通信リンク特性に最も近い、複数のプロキシノードのうちの1つを選択するように動作可能である。したがって、グループ内の複数のプロキシノードが必要な通信リンク特性を実現できる場合、最高の特性(つまり、プロキシと第2のノードとの間の通信リンク特性に最も近いか、それを上回るもの)を示すプロキシノードが選択され得る。これにより、最適なプロキシノードが選択され得る。
【0014】
一実施形態において、受信ロジックは、データ転送と関連付けられているユーザのクラスおよびサービスタイプのうち少なくとも1つに基づいて、決定ロジックが選択されるプロキシノードを決定しないようにし、その代わりに送信ロジックに第2のノードとのデータ転送のための通信リンクを確立させるように動作可能である。したがって、レートレス符号化の使用は、データと関連付けられたサービスタイプに基づいて、またはデータ転送を実行するユーザのクラスに基づいて、提供されるか拒否され得る。これにより、レートレス符号化の使用を特定のユーザタイプまたは特定のアプリケーションに限定することができる。
【0015】
一実施形態において、通信リンク特性は、ノードの近接性およびノード間の距離のうち少なくとも1つを含む。したがって、ノード間の物理的な距離は、通信リンク特性の指示を提供し得る。
【0016】
一実施形態において、決定ロジックは、プロキシノードのサブグループおよび第2のノードのアドレスから決定可能な推定近接性に基づいて、プロキシノードのサブグループから、選択されるプロキシノードを決定するよう動作可能である。
【0017】
一実施形態において、通信リンク特性は、通信遅延、ホップ数および通信リンクの容量のうち少なくとも1つを含む。したがって、通信リンクのレイテンシまたは容量の違いは、レートレス符号化を使用することがより効率的かどうかを決定するために比較され得る。
【0018】
一実施形態において、決定ロジックは、プロキシノードグループのプロキシノードと第2のノードとの間の、そのプロキシノードが測定し報告する通信リンクの通信リンク特性に基づいて、選択されるプロキシノードを決定するよう動作可能である。したがって、グループ内の特定のプロキシノードと第2のノードとの間のリンクの特性は、グループ内の各プロキシノードによって測定され報告され得る。これにより、特性の正確な評価が、グループ内の各プロキシノードにより可能になる。
【0019】
一実施形態において、閾値量は、レートレス符号化通信リンクのパラメータに基づいて適合される。レートレス符号化通信リンクを確立するために使用されるレートレス符号化方式のパラメータを変更することにより、その方式の効率または特定の状況下でのその適切性は変化し、閾値を変化させることによりこれを反映させることができることが理解されよう。
【0020】
一実施形態において、プロキシノードは、ノードとの通信リンクの通信リンク特性を決定するようにとのリクエスト側プロキシノードからのリクエストを受信し、ノードとの通信リンクの通信リンク特性を確立し、通信リンク特性をリクエスト側プロキシノードに報告するよう動作可能な、通信リンク特性ロジックを含む。したがって、プロキシノードは、通信リンク特性決定のリクエストを受信すると、それらの特性を決定し、それらをリクエスト側ノードに報告を返すことができる。
【0021】
一実施形態において、プロキシノードは、データを抽出するために受信したレートレス符号化通信リンクを復号し、ソースノードを識別するソースアドレスをプロキシノードを識別するソースアドレスに置換し、データを受信側ノードに転送するよう動作可能な、復号ロジックを含む。したがって、プロキシノードはレートレス符号化通信リンクを受信し、データをリンクから抽出し、レートレス符号化データを送信したノードのアドレスをプロキシノードのソースアドレスに置換し、次いでプロキシノードを示すソースアドレスを持つ復号されたデータを受信側ノードに転送することができる。こうすることで、受信側ノードが次いで、データのソースではなくプロキシノードに対して確実に応答するようにできる。
【0022】
一実施形態において、プロキシノードは、データを抽出し、受信側ノードによるアクセスのためにデータを格納するために、受信したレートレス符号化通信リンクを復号するよう動作可能な、復号ロジックを含む。したがって、プロキシノードは、受信側ノードによってアクセスできるように復号されたデータを格納することができる。実施形態において、プロキシノードは次いで、受信側ノードからのリクエストに応じて、格納された復号されたデータを提供することができる。
【0023】
一実施形態において、送信ロジックは第1のノードに対して選択されたプロキシノードを識別するよう動作可能である。したがって、プロキシノードは、選択されたプロキシノードで受信側ノードのために格納されたデータを受信側ノードがリクエストできるように、第1のノードが受信側ノードに情報を伝えるために、第1のノードに選択されたプロキシノードの識別子を伝え得る。
【0024】
一実施形態において、プロキシノードは、プロキシノードを識別する宛先アドレスを他のプロキシノードを識別する宛先アドレスに置換し、他のプロキシノードとのデータの転送のためのレートレス符号化通信リンクを利用するよう動作可能な、符号化ロジックを含む。
【0025】
一実施形態において、プロキシノードは、確認の指示が受信側ノードから受信されない場合、拒否の指示をソースノードに転送するよう動作可能な拒否ロジックを含む。したがって、ノードがプロキシノードからのデータ受信の確認に失敗した場合(これはデータ転送が例えばファイアウォールにブロックされていることの指示であり得る)、データがブロックされた可能性があること、あるいは受信されていないことの指示が、プロキシノードにより、プロキシノードが配信しようとしているデータのソースであるノードに対して提供され得る。
【0026】
一実施形態において、受信ロジックは、拒否の指示を受信すると、決定ロジックが選択されるプロキシノードを決定しないようにし、その代わりに送信ロジックに第2のノードとのデータ転送のための通信リンクを確立させるよう動作可能である。したがって、拒否の指示がプロキシノードによって受信された場合、選択されるプロキシを介してデータを配信しようとする試みは取り消され、代わりに、データはプロキシと第2のノードとの間の通信リンクを介して配信され得る。
【0027】
一実施形態において、プロキシノードは、データを抽出するためにレートレス符号化通信リンクを復号し、プロキシノードを特定する宛先アドレスを第1のノードを特定する宛先アドレスに置換し、データを第1のノードに転送するよう動作可能な、変更ロジックを含む。
【0028】
一実施形態において、プロキシノードは、送信側ノードから確認データを受信し、レートレス符号化をせずに確認データを受信側ノードに転送するよう動作可能な、転送ロジックを含む。したがって確認データは、そのような確認データをより速くより急速に配信するために、レートレス符号化の対象になることを避けることができる。
【0029】
第2の態様に基づいて、請求項14に記載のプロキシノードの方法が提供される。
【0030】
一実施形態において、決定ステップは、プロキシノードグループの複数のプロキシノードを選択されるプロキシノードとして選択できる場合、通信リンクの特性がプロキシノードと第2のノードとの間の通信リンクの通信リンク特性に最も近い、複数のプロキシノードのうちの1つを選択するステップを含む。
【0031】
一実施形態において、方法は、データ転送と関連付けられているユーザのクラスおよびサービスタイプのうち少なくとも1つに基づいて、決定ステップが選択されるプロキシノードを決定しないようにし、その代わりに第2のノードとのデータ転送のための通信リンクを確立させるステップを含む。
【0032】
一実施形態において、通信リンク特性は、ノードの近接性およびノード間の距離のうち少なくとも1つを含む。
【0033】
一実施形態において、通信リンク特性は、通信遅延、ホップ数および通信リンクの容量のうち少なくとも1つを含む。
【0034】
一実施形態において、決定ステップは、プロキシノードのサブグループおよび第2のノードのアドレスから決定可能な推定近接性に基づいて、プロキシノードのサブグループから、選択されるプロキシノードを決定するステップを含む。
【0035】
一実施形態において、決定ステップは、プロキシノードグループのプロキシノードと第2のノードとの間の、そのプロキシノードによって測定、報告される通信リンクの通信リンク特性に基づいて、選択されるプロキシノードを決定するステップを含む。
【0036】
一実施形態において、方法は、ノードとの通信リンクの通信リンク特性を決定するようにとのリクエスト側プロキシノードからのリクエストを受信し、ノードとの通信リンクの通信リンク特性を確立し、通信リンク特性をリクエスト側プロキシノードに報告するステップを含む。
【0037】
一実施形態において、方法は、データを抽出するために受信したレートレス符号化通信リンクを復号し、ソースノードを識別するソースアドレスをプロキシノードを識別するソースアドレスに置換し、データを受信側ノードに転送するステップを含む。
【0038】
一実施形態において、方法は、データを抽出し、受信側ノードによってアクセスするためにデータを格納するために、受信したレートレス符号化通信リンクを復号するステップを含む。
【0039】
一実施形態において、方法は、第1のノードに対して選択されたプロキシノードを識別するステップを含む。
【0040】
一実施形態において、方法は、プロキシノードを識別する宛先アドレスを他のプロキシノードを特定する宛先アドレスに置換し、他のプロキシノードとのデータの転送のためのレートレス符号化通信リンクを利用するステップを含む。
【0041】
一実施形態において、方法は、確認の指示が受信側ノードから受信されない場合、拒否の指示をソースノードに転送するステップを含む。
【0042】
一実施形態において、方法は、拒否の指示を受信すると、決定ロジックが選択されるプロキシノードを決定しないようにし、その代わりに第2のノードとのデータ転送のための通信リンクを確立させるステップを含む。
【0043】
一実施形態において、方法は、データを抽出するためにレートレス符号化通信リンクを復号し、プロキシノードを識別する宛先アドレスを第1のノードを識別する宛先アドレスに置換し、データを第1のノードに転送するステップを含む。
【0044】
一実施形態において、方法は、送信側ノードから確認データを受信し、レートレス符号化をせずに確認データを受信側ノードに転送するステップを含む。
【0045】
第3の態様に基づいて、コンピュータで実行された時に、第2の態様の方法のステップを実施するよう動作可能なコンピュータプログラム製品が提供される。
【0046】
さらなる特定の好ましい態様は、付随する独立請求項および従属請求項で定められる。従属請求項の特徴は、必要に応じて独立請求項の特徴と結合され、また請求項で明示されている場合を除き組み合わせられ得る。
【0047】
装置の特徴が機能を提供するよう動作可能であると説明されている場合、このことがその機能を提供するか、またはその機能を提供するように適合されるか、もしくは構成される装置の特徴を含むことが理解されよう。
【0048】
本発明の実施形態は、付随する図面と関連してさらに説明される。