説明

クライアント間のデータ伝送の選択的ルーティング

パケットのルーティングホップカウントに従って、直接P2Pチャネルおよびリレーチャネルから、より良好な通信チャネルを選択する、クライアント間のデータ伝送の選択的ルーティングのための方法が提供される。本方法は、第1のクライアントから第2のクライアントまでの第1のルーティングホップカウントを直接P2Pチャネルがそれらの間にあると仮定して取得し、第1のクライアントからリレーサーバまでの第2のルーティングホップカウントをリレーサーバを通るリレーチャネルがあると仮定して取得し、リレーサーバから第2のクライアントまでの第3のルーティングホップカウントをリレーサーバを通るリレーチャネルがあると仮定して取得して、かつ第2のルーティングホップカウントおよび第3のルーティングホップカウントの合計と、第1のルーティングホップカウントとを比較する。本方法は、次いで、比較結果に基づいて、第1のクライアントと第2のクライアントとの間のより良好なデータ伝送チャネルを、直接P2Pチャネルおよびリレーチャネルから選択する。選択的ルーティングのための方法を使用するシステムも開示される。

【発明の詳細な説明】
【技術分野】
【0001】
<関連出願>
本出願は、2007年11月6日出願の「クライアント間のデータ伝送の選択的ルーティングのためのシステムおよび機器(SYSTEM AND APPARATUS SELECTIVE ROUTING OF DATA TRANSMISSION BETWEEN CLIENTS)」と題する中国特許出願第200710168112.8号の優先権を主張するものであり、本中国出願は、参照によりその内容全体が本明細書に組み込まれる。
【背景技術】
【0002】
本開示は、ネットワーク通信に関し、より具体的には、データ伝送モードまたはチャネルを設定するためのルーティング解析の技術に関する。
【0003】
現在のインターネット技術の広範囲に及ぶ使用とともに、ネットワークを通じた通信アプリケーションは、人々の仕事、教育、およびエンターテイメントにとって、ますます重要になっている。より具体的には、クライアント間のデータ交換は、ネットワークユーザ間での音声や映像のファイル共有および交換を大幅に容易にしている。一般に、クライアント間のデータ交換には2種類の方法がある。第1の種類は、P2P伝送チャネルを確立してデータファイルを伝送するように、直接P2P(ピアツーピア)技術を使用する。ここに引用されているP2P技術は、サーバに基づく類似技術とは異なる。それは、P2Pネットワークの形態構造に基づく、比較的に新しいネットワーク通信技術である。インターネットサービスを提供する方法が3種類に、すなわちサーバに基づくもの、サーバを伴う(部分的にサーバに基づく)もの、およびサーバを伴わないものに分類されている場合、P2P技術は、主に、サーバを伴うもの、およびサーバを伴わないものに属し得る。
【0004】
第2の種類は、リレー伝送チャネルを確立するように、ファイルの伝送に指定されたリレーサーバを使用する。開始クライアントおよび応答クライアントの両方がリレーサーバに接続している時に、データファイルの伝送を開始する。
【0005】
データを伝送するのにP2P方式を使用することで、2つの通信クライアント間のルーティングホップカウントが小さい時に、高速データ伝送が達成され得る。ルーティングホップカウントは、データパケットが、1つのルータレベル(通常はソースルータ)から、別のルータレベル(通常は宛先ルータ)までトラバースするのに必要である、飛び越しの数である。この条件を満たす実施例は、同じISP(インターネットサービスプロバイダ)のADSL(非対称デジタル加入者ループ)ネットワークユーザ間、および同じLAN(ローカルエリアネットワーク)内に存在するユーザ間の通信である。この種類の直接P2P方式は、ネットワークサービス事業者のネットワーク帯域幅を占有せず、運用コストが低く抑えられる。しかしながら、特定のネットワーク化された環境の下では、データ交換のための直接P2P伝送チャネルを確立することができない場合がある。その一実施例は、データ交換を行う両方のクライアントが、どちらも対称NAT(ネットワークアドレス変換)型である異なるLAN内に存在する時である。その上、直接P2P伝送チャネルが、いくつかのネットワーク化された環境内に確立され得る時であっても、通信クライアントが存在するネットワークが異なるISPに属するので、直接P2Pチャネルの設定には、より高いルーティングホップカウントが必要になり得る。ネットワーク内の長時間の遅延、および中間リンクの帯域幅に対する制限のため、データ伝送の速度は、非常に遅い。
【0006】
それでもやはり、ネットワークサービス事業者は、ファイル伝送を実行するクライアント間の伝送の速度をある程度の許容可能なレベルまで高めるために、リレーサーバを使用してリレー伝送チャネルを確立し、ISPから帯域幅を購入し、経路最適化を実行する場合がある。しかし、同じLAN内のユーザ間に構築される直接P2P伝送チャネルと比較すると、その速度は依然として遅い場合がある。さらに、ネットワークサービス事業者の運用コストは、このようにより高くなる。
【0007】
既存の技術において、データ伝送がクライアント間で実行される時、ネットワークサービス事業者の運用コストを低減するために、通常、伝送のための直接P2Pチャネルの使用が最大化される。しかしながら、特定のネットワーク化された環境下(例えば、データ伝送の両方のクライアントが、異なるISPに属している)では、ユーザが、データ伝送のための直接P2P伝送チャネルを確立し得る場合であっても、伝送速度が非常に遅くなる可能性があることは、上述した直接P2P技術の簡単な紹介から明らかである。結果として、特に大容量のファイルが伝送される時は、データ伝送に時間がかかり、乏しいユーザエクスペリエンスをもたらす。
【発明の概要】
【0008】
既存の技術におけるクライアント間のデータ伝送に観察される不完全さを解決するために、本開示は、クライアント間のデータ伝送の選択的ルーティングのための方法およびシステムを提供する。本方法は、ルーティングホップカウントに従って、直接P2Pリンクおよびリレーリンクから、より良好な通信モードまたはチャネルを選択する。
【0009】
本開示の一態様によれば、クライアント間のデータ伝送の選択的ルーティングのための方法は、少なくとも第1のクライアントと、第2のクライアントと、中央サーバと、リレーサーバと、を含むネットワークシステム内で使用される。本方法は、3つのルーティングホップカウントを取得する。すなわち、直接P2Pリンクをそれらの間で使用すると仮定して、第1のクライアントから第2のクライアントまでの第1のルーティングホップカウントを取得し、リレーサーバを通るリレーチャネルがあると仮定して、第1のクライアントからリレーサーバまでの第2のルーティングホップカウントを取得し、およびリレーサーバを通るリレーチャネルがあると仮定して、リレーサーバから第2のクライアントまでの第3のルーティングホップカウントを取得するためのものである。本方法は、第2のルーティングホップカウントおよび第3のルーティングホップカウントの合計と、第1のルーティングホップカウントとを比較し、次いで、比較結果に基づいて、第1のクライアントと第2のクライアントとの間のデータ伝送方式を、直接P2P方式およびリレー方式から選択する。一実施形態において、第2のルーティングホップカウントおよび第3のルーティングホップカウントの合計が、第1のルーティングホップカウントより小さい場合は、第1のクライアントと第2のクライアントとの間のデータ伝送にリレー方式が選択され、第2のルーティングホップカウントおよび第3のルーティングホップカウントの合計が、第1のルーティングホップカウントよりも大きい場合は、第1のクライアントと第2のクライアントとの間のデータ伝送にP2Pリンク方式が選択される。
【0010】
一実施形態において、第1のクライアントは、第1のルーティングホップカウントと、第2のルーティングホップカウントと、を取得する。第2のクライアントは、第3のルーティングホップカウントを取得する。
【0011】
一実施形態によれば、上述の基準に従って直接P2P方式が選択されるが、直接P2P方式を使用した時に、直接P2P伝送チャネルを確立することができない場合は、データ伝送を実行するためにリレー方式を使用したリレー伝送チャネルが選択される。
【0012】
一実施形態において、第1のクライアントは、中央サーバを通して第2のクライアントのネットワークアドレスおよびリレーサーバのアドレスを取得し、かつ経路検出インターフェースを使用して、それぞれ、第1および第2のルーティングホップカウントを取得する。より具体的には、第2のクライアントのネットワークアドレスは、第1のルーティングホップカウントを生成するように、アドレスパラメータとして、経路検出インターフェースによって使用される。同様に、リレーサーバのアドレスは、第2のルーティングホップカウントを生じるように、アドレスパラメータとして、経路検出インターフェースによって使用される。
【0013】
別の実施形態において、第2のクライアントは、中央サーバを通してリレーサーバのアドレスを取得し、かつ経路検出インターフェースを使用して、第3のルーティングホップカウントを取得する。より具体的には、第2のクライアントは、中央サーバを通して第1のクライアントから要求コマンドを受け取り、要求コマンドを構文解析してその中に含まれるリレーサーバのアドレスを取得して、かつリレーサーバのアドレスをアドレスパラメータとして経路検出インターフェースに提供することにより、第3のルーティングホップカウントを取得する。
【0014】
本開示の別の態様によれば、本開示は、ネットワーク内のクライアント間の選択的ルーティングのためのルーティングシステムを提供する。本ルーティングシステムは、第1、第2、および第3のルーティングホップカウントを取得するための経路解析手段と、第2のルーティングホップカウントおよび第3のルーティングホップカウントの合計と第1のルーティングホップカウントとを比較するための決定モジュールと、を含む。比較結果に基づいて、決定モジュールは、第1のクライアントと第2のクライアントとの間のデータ伝送のために、直接P2Pリンク方式およびリレー方式から好適な伝送方式を選択する。
【0015】
開示されたクライアント間のデータ伝送の選択的ルーティングのための方法およびシステムを使用することで、P2P伝送チャネルを確立することができ、かつ直接P2Pを使用したルーティングホップカウントが、リレーサーバのリレー方式を使用したルーティングホップカウントよりも小さい場合は、直接P2P伝送方式がデータ伝送に選択される。直接P2P伝送チャネルを確立することができるが、直接P2Pを使用したルーティングホップカウントが、リレーサーバのリレー方式を使用したルーティングホップカウントよりも大きい場合は、代わりに、リレーサーバの使用によるリレー伝送チャネルがデータ伝送に選択される。よって、クライアント間のデータ交換は、種々のネットワーク化された環境下で、高速伝送を有し得、ユーザエクスペリエンスを大幅に向上させることができる。
【図面の簡単な説明】
【0016】
詳細な説明は、添付の図面を参照して記載される。図面において、参照番号の左端の数字は、参照番号が最初に現れる図面を特定する。異なる図面における同一の参照番号の使用は、同様または同一の項目を示す。
【図1】クライアント間のデータ伝送のための既存の方法のフローチャートである。
【図2】本開示による、クライアント間のデータ伝送の選択的ルーティングのための例示的な方法の概略図である。
【図3】本開示による、クライアント間のデータ伝送の選択的ルーティングのための例示的な方法のフローチャートである。
【図4】開始クライアントによってルーティングホップカウントを取得する、例示的なプロセスのフローチャートである。
【図5】応答クライアントによってルーティングホップカウントを取得する、例示的なプロセスのフローチャートである。
【図6】本開示による、クライアント間のデータ伝送の選択的ルーティングのためのシステムの概略図である。
【図7】本開示による、クライアント間のデータ伝送の選択的ルーティングを使用する、例示的なネットワークシステムの概略図である。
【発明を実施するための形態】
【0017】
以下、例示的な実施形態が、図面を参照してさらに詳細に説明される。例示の目的で、既存の手法による方法を最初に説明する。
【0018】
図1は、既存の技術による、クライアント間のデータ伝送のための方法のフローチャートを示している。全般的な原理を示すために、インスタントメッセージングシステムにおけるファイル伝送を一実施例として使用する。一般性を失うことなく、ファイル伝送を開始する側を開始クライアントと称し、一方で、ファイル伝送のために開始クライアントに応答する側を応答クライアントと称する。最初に、開始クライアントおよび応答クライアントは、中央サーバを通して直接通信するためのアドレス情報を交換し、かつ直接P2P伝送チャネルを確立しようとする。直接P2P伝送チャネルが成功裏に確立された場合は、直接P2P伝送チャネルが、データファイル伝送に使用される。直接P2P伝送チャネルを確立することができなかった場合、開始クライアントは、中央サーバを通して指定されたリレーサーバを照会する。中央サーバが、データファイル伝送に使用されるリレーサーバのアドレスを戻した後に、開始クライアントは、中央サーバを通してリレーサーバのアドレスを応答クライアントに送る。次いで、開始クライアントおよび応答クライアントは、リレーサーバのアドレスに基づいて、リレーサーバに接続する。リレー伝送チャネルが確立されると、開始クライアントおよび応答クライアントは、データファイル伝送のためにリレー伝送チャネルを使用することができる。より直観的には、既存のデータ伝送の方法は、以下のプロセスによって実施することができる。
【0019】
ブロック100において、開始クライアントおよび応答クライアントは、中央サーバを通してアドレス情報を交換する。
【0020】
ブロック102において、開始クライアントおよび応答クライアントは、直接P2P伝送チャネルの確立を試み、かつチャネルが成功裏に確立されたかどうかを判定する。直接伝送チャネルが成功裏に設定された場合は、データファイルの伝送が開始される。
【0021】
ブロック104において、直接P2P伝送チャネルを開始クライアントと応答クライアントとの間に確立することができない場合は、開始クライアントは、ファイル伝送のための指定されたリレーサーバを照会する。
【0022】
ブロック106において、中央サーバが、指定されたリレーサーバのアドレスを戻した後に、開始クライアントは、中央サーバを通してアドレスを応答クライアントに送る。
【0023】
ブロック108において、応答クライアントは、中央サーバを通してリレーサーバのアドレスを受け取る。
【0024】
ブロック110において、開始クライアントおよび応答クライアントは、リレーサーバのアドレスに基づいて、指定されたリレーサーバに接続して、リレー伝送チャネルを確立する。
【0025】
ブロック112において、データファイルは、リレー伝送チャネルを通して伝送される。
【0026】
上に図示されているように、既存の技術において、クライアント間でデータを伝送するには、最初に、直接P2P方式を使用して伝送チャネルを確立しようと試みる。直接P2P方式を使用した伝送チャネルの設定に失敗した時にのみ、開始クライアントは、ファイルを伝送するように、指定されたリレーサーバを照会する。これは、上述したように、ファイルの伝送に対する直接P2P方式の使用を最大化することで、通信事業者の運用コストを低減することができるが、直接P2P方式の使用は、種々のネットワーク化された環境下にあるユーザに対して、非常に遅い伝送速度、および乏しいユーザエクスペリエンスをもたらし得るので、不利益なものとなり得る。
【0027】
図2は、本開示による、クライアント間のデータ伝送の選択的ルーティングのための例示的な方法の概略図を示している。開示された方法は、直接P2P方式があると仮定して取得したルーティングホップカウントと、指定されたリレーサーバを使用したリレー方式があると仮定したルーティングホップカウントとを比較した後に、より適したクライアント間のデータ伝送チャネルを選択することによって、クライアント間のデータ伝送の選択的ルーティングを提供する。これは、特定のネットワーク化された環境下で、データ伝送に直接P2P方式を使用することが、最速の伝送速度をもたらし得ないという問題を解決する。
【0028】
図2におけるデータ伝送チャネルを選択するプロセスは、主として中央サーバ201と、開始クライアント202と、応答クライアント204と、リレーサーバ206と、を含むネットワークシステム200を伴う。好ましくは、リレーサーバ206は、開始クライアント202が、リレー伝送チャネルを確立するための指定されたリレーサーバを照会する場合に、開始クライアント202に割り当てられる、指定されたリレーサーバである。中央サーバ201との対話を通して、開始クライアント202は、応答クライアント204のネットワークアドレス(NATアドレス等)およびリレーサーバ206のアドレスを取得して、一方で、応答クライアント204は、リレーサーバ206のアドレスを取得する。次いで、開始クライアント202は、その機能モジュール内の経路検出インターフェース、およびアドレス情報を使用して、ルーティングホップカウントを生成する。具体的には、経路検出インターフェースは、それぞれ、開始クライアント202から応答クライアント204までがカウントされるルーティングホップカウントS0、および開始クライアント202からリレーサーバ206までがカウントされるルーティングホップカウントS1を生成するように送られるアドレスパラメータとして、応答クライアント204のNATアドレスおよびリレーサーバ206のアドレスを使用する。ルーティングホップカウントS0は、開始クライアント202から応答クライアント204までの間のデータの伝送に直接P2P通信が使用される場合の、開始クライアント202から応答クライアント204までのルーティングホップカウントであり、一方で、ルーティングホップカウントS1は、開始クライアント202と応答クライアント204との間のデータの伝送にリレーサーバ204を使用したリレー方式が使用される場合の、開始クライアント202からリレーサーバ204までのルーティングホップカウントである。
【0029】
次いで、応答クライアント204は、その機能モジュール内の経路検出インターフェースを使用して、リレーサーバ206から応答クライアント204までのルーティングホップカウントS2を生成する。これを行うため、経路検出インターフェースは、送られるアドレスパラメータとしてリレーサーバ206のアドレスを使用する。ルーティングホップカウントS1およびルーティングホップカウントS2の合計は、リレーサーバ206を使用したリレー方式がデータの伝送に使用される場合の、開始クライアント202から応答クライアント204までのルーティングホップの総数を表す。
【0030】
この後に、ルーティングホップカウントS0は、ルーティングホップカウントS1およびS2の合計と比較される。直接P2P方式を使用すると仮定して取得されるルーティングホップカウントS0が、リレー方式を使用すると仮定して取得されるルーティングホップカウントS1およびS2の合計よりも大きい場合は、指定されたリレーサーバ206に基づいたリレー方式が良好な選択であると見なされ、したがって、開始クライアント202と応答クライアント204との間のデータ伝送に選択される。直接P2P方式を使用すると仮定して取得されるルーティングホップカウントS0が、リレー方式を使用すると仮定して取得されるルーティングホップカウントS1およびS2の合計よりも小さい場合は、直接P2P方式がより良好な選択であると見なされ、したがって、開始クライアント202と応答クライアント204との間のデータ伝送に選択される(図2に破線矢印で示す)。
【0031】
一実施形態において、直接P2P方式が選択された時に、直接P2P伝送チャネルを確立することができない場合は、リレー伝送チャネルを確立してデータ伝送を完了するように、リレーサーバ206が使用される。
【0032】
その結果、開示されるクライアント間のデータ伝送の選択的ルーティングのための方法では、直接P2P伝送チャネルを確立することができる場合は、好ましくは、直接P2P方式を使用した伝送速度が、リレー方式を使用した伝送速度よりも速くなると思われるネットワーク化された環境下での伝送に、直接P2P方式が使用される。直接P2P伝送チャネルを確立することができるが、そのネットワーク化された環境下で、直接P2P方式を使用した伝送速度がリレー方式を使用した伝送速度よりも遅くなると思われる場合は、好ましくは、リレー方式が伝送に使用される。当業者は、伝送の速度が、主にルーティングホップカウントの大きさによって示されるが、これに限定されないことを容易に理解するべきである。ネットワーク帯域幅の条件が同じであるとすると、伝送チャネルのルーティングホップカウントが多くなるにつれて、概して、伝送速度が低くなり、一方で、伝送チャネルのルーティングホップカウントが少なくなるにつれて、概して、伝送速度が高くなる。
【0033】
クライアント(例えば、応答クライアント204)のネットワークアドレスは、好ましくは、そのNAT(ネットワークアドレス変換)アドレスである。NATアドレスは、1つのアドレスフィールド(イントラネット等)を、別のアドレスフィールド(インターネット等)にマッピングする標準的な方法である。NATは、指定された組織のイントラネット内のホストマシンが、ローカル(内部)ホストマシンのための登録されたインターネットアドレスを必要とせずに、パブリックドメインでホストマシンに透過的に接続することができるようにする。換言すれば、ローカル(またはプライベート)ネットワークは、外界に接続するように、インターネットを通してIP(インターネットプロトコル)アドレスを登録することができる。データパケットを送る前に、内部(プライベートまたはローカル)と外部(パブリック)ネットワークとの間のエージェントとしての役割を果たすNATルータは、ローカルIPアドレスをパブリックIPアドレスに変換する役割を担う。ここで、クライアントのNATアドレスは、クライアントのローカルIPアドレスから変換されるパブリックIPアドレスを指す。サーバ(例えば、リレーサーバ206)は、概して、それ自体のパブリックIPアドレスを有し、いかなるNAT変換も必要としない。しかしながら、必要に応じて、リレーサーバ206のNATアドレスも使用することができる。
【0034】
以下、本開示におけるクライアント間のデータ伝送の選択的ルーティングの方法をより明確に説明するために、例示的なプロセスを説明する。この説明において、プロセスが説明される順序は、限定として見なされるものではなく、任意の数の説明されるプロセスブロックを任意の順序で組み合わせて、本方法または代替方法を実施することができる。
【0035】
図3は、本開示による、クライアント間のデータ伝送の選択的ルーティングのための例示的なプロセスのフローチャートを示している。以下、プロセスを説明する。
【0036】
ブロック300において、開始クライアント202は、応答クライアント204のNATアドレスおよびリレーサーバ206のアドレスを取得する。
【0037】
ブロック302において、開始クライアント202は、機能モジュールの経路検出インターフェースを使用し、かつそのPINGコマンドおよび応答クライアント204のNATアドレスを使用して、開始クライアント202と応答クライアント204との間の直接P2PリンクのためのルーティングホップカウントS0を取得する。
【0038】
ブロック304において、開始クライアント202は、機能モジュールの経路検出インターフェースを使用し、かつそのPINGコマンドおよびリレーサーバ206のアドレスを使用して、開始クライアント202からリレーサーバ206までのルーティングホップカウントS1を取得する。
【0039】
ブロック306において、応答クライアント204は、機能モジュールの経路検出インターフェースを使用し、かつそのPINGコマンドおよびリレーサーバ206のアドレスを使用して、応答クライアント204からリレーサーバ206までのルーティングホップカウントS2を取得する。
【0040】
ブロック308において、ルーティングホップカウントS0が、合計(S1+S2)と比較される。S0が(S1+S2)よりも小さい場合は、直接P2P方式を好適な方法として使用して、データファイル伝送のための伝送チャネルを確立する。S0が(S1+S2)よりも大きい場合は、リレー方式を好適な方法として使用して、データファイル伝送のためのリレー伝送チャネルを確立する。
【0041】
図4は、開始クライアント202が、図3において紹介されたルーティングホップカウントS0およびS1をどのように取得するのかを示す、例示的なプロセスのフローチャートである。図4において、開始クライアント202によってルーティングホップカウントS0およびS1を取得するプロセスの中核となるのは、開始クライアント202が、応答クライアント204のNATアドレスおよびリレーサーバ206のアドレスを取得するプロセスである。本開示の1つ以上の態様によれば、以下の手順を使用することができる。
【0042】
ブロック400において、開始クライアント202は、応答クライアント204のNATアドレスを取得するための要求を中央サーバ201に送る。
【0043】
ブロック402において、開始クライアント202は、指定されたリレーサーバ206のアドレスを取得するための要求を中央サーバ201に送る。
【0044】
ブロック404において、中央サーバ201は、開始クライアント202の要求に応答し、かつ応答クライアント204およびリレーサーバ206の要求したアドレスが抽出または構文解析され得る、関連するアドレス情報を戻す。
【0045】
ブロック406において、開始クライアント202は、受け取ったアドレス情報を構文解析して、応答クライアント204のNATアドレスおよびリレーサーバ206のアドレスを取得する。
【0046】
ブロック408において、開始クライアント202は、アドレスパラメータとして応答クライアント204のNATアドレスを用い、経路検出インターフェースを使用して、ルーティングホップカウントS0を取得する。
【0047】
ブロック410において、開始クライアント202は、アドレスパラメータとしてリレーサーバ206のアドレスを用い、経路検出インターフェースを使用して、ルーティングホップカウントS1を取得する。
【0048】
ブロック412において、開始クライアント202は、中央サーバ201を通して、応答クライアント204から、コマンド(例えば、コマンドREP_ROUTE_ADDR)を受け取る。この時点で、応答クライアント204がルーティングホップカウントS2を取得していると仮定すると、コマンドは、ルーティングホップカウントS2等の情報を含み得る。続いて、応答クライアント204によってルーティングホップカウントS2を取得するプロセスを、図5を参照して説明する。
【0049】
応答クライアント204によって送られるコマンドは、開始クライアント202から受け取られる要求コマンドに応答する、応答コマンドであってもよい。開始クライアント202からの要求コマンドは、明示的または黙示的に、ルーティングホップカウントS2等の経路情報を要求し得る。一実施形態において、要求コマンドは、応答クライアント204がリレーサーバ206のアドレスを構文解析し、かつルーティングホップカウントS2を取得するために使用し得る、アドレス情報とともに送られる。この特定の構成において、開始クライアント202からの要求コマンドを受け取るステップは、ブロック412に先行することが必要となる。
【0050】
ブロック414において、開始クライアント202は、要求コマンドおよび添付された情報を構文解析し、かつルーティングホップカウントS2を取得する。
【0051】
図5は、応答クライアント204が、図3において紹介されたルーティングホップカウントS2をどのように取得するのかを示すフローチャートである。図5において、応答クライアント204によってルーティングホップカウントS2を取得するプロセスの中核となるのは、応答クライアント204が、リレーサーバ206のアドレスを取得するプロセスである。一実施形態において、開始クライアント202は、中央サーバ201を通して、コマンド(要求コマンドREQ_ROUTE_ADDR等)を応答クライアント204に送る。コマンドは、リレーサーバ206のアドレスを含んでいてもよい。中央サーバ201を通してコマンドを受け取ると、応答クライアント204は、リレーサーバ206のアドレスを取得し、かつ機能モジュールの経路検出インターフェースを使用して、ルーティングホップカウントS2を取得する。以下、例示的なプロセスを説明する。
【0052】
ブロック501において、応答クライアント204は、例えばTCP接続を使用して、応答クライアント204のNATアドレスを中央サーバ201に送る。図3〜4に示されているような別個のプロセスでは、次いで、要求に応じて、応答クライアント204のNATアドレスが、開始クライアント202に送られてもよい。
【0053】
ブロック502において、応答クライアント204は、中央サーバ201を通して、開始クライアント202からREQ_ROUTE_ADDRコマンドを受け取る。
【0054】
ブロック504において、応答クライアント204は、受け取ったコマンドからリレーサーバ206のアドレスを構文解析して抽出する。リレーサーバ206は、要求に応じて、開始クライアント202に割り当てられる、指定されたリレーサーバである。
【0055】
ブロック506において、応答クライアント204は、アドレスパラメータとしてリレーサーバ206のアドレスを用い、経路検出インターフェースを使用して、PINGコマンドによってルーティングホップカウントS2を取得する。
【0056】
ブロック508において、応答クライアント204は、中央サーバ201を通して、REP_ROUTE_ADDRコマンドを開始クライアント202に送る。コマンドは、リレーサーバ206から応答クライアント204までがカウントされる、ルーティングホップカウントS2を含んでもよい。このコマンドは、図4を参照して説明された、アドレスおよび経路情報を送り、および/または要求する開始クライアント202から受け取った、以前のコマンドに応答して送られてもよい。
【0057】
上述の図4は、開始クライアント202において、ルーティングホップカウントS0(直接P2P方式を使用して、開始クライアント202から応答クライアント204までがカウントされる)、およびルーティングホップカウントS1(開始クライアント202からリレーサーバ206までがカウントされる)を取得するための例示的な方法を示している。図5は、応答クライアントにおいて、ルーティングホップカウントS2(リレーサーバ206から応答クライアント204までがカウントされる)を取得するための例示的な方法を示している。図4および図5は、組み合わせた時に、クライアント間のデータ伝送の選択的ルーティングのための例示的な方法を示す。本方法は、利用できるデータ伝送チャネルのための経路解析および検出を実行し、かつルーティングホップカウント(S0、S1、およびS2)の比較結果を用いて、データ伝送チャンネルに対して直接P2P伝送方式を使用すべきかどうかを決定する。これは、最初に伝送チャネルを確立するために、常に直接P2P伝送方式の使用を試みる、既存の技術とは異なる。開示された方法は、ユーザが、種々のネットワーク化された環境下で、クライアント間のデータ伝送に対して最適な速度を達成することができるようにする。具体的には、P2P伝送チャネルを確立することができ、かつ直接P2Pを使用したルーティングホップカウント(S0)が、リレーサーバのリレー方式を使用したルーティングホップカウント(S1+S2)よりも小さい場合は、直接P2P伝送がデータ伝送に選択される。P2P伝送チャネルを確立することができるが、直接P2Pを使用したルーティングホップカウントが、リレーサーバのリレー方式を使用したルーティングホップカウントよりも大きい場合は、代わりに、リレーサーバを使用して、リレー方式を通して確立される伝送チャネルがデータ伝送に選択される。この設計は、ユーザエクスペリエンスを大幅に向上させ得る。
【0058】
上述のプロセスの動作は、図2のシステム200等のシステムの種々の部分、および図6〜7を参照して以下に示されるシステムによって実行され得る。
【0059】
図6は、クライアント間のデータ伝送の選択的ルーティングのための方法を実施するためのシステムの概略図である。システム600は、クライアントとサーバとの間で情報を通信するための通信手段620と、通信データから情報を抽出するための構文解析手段622と、利用できるデータ伝送チャネルの経路ホップカウントを決定するための経路解析手段624と、経路ホップカウントを比較し、比較結果を使用して、好適なデータ伝送チャネルを選択する決定モジュール626と、を含む。
【0060】
一実施形態において、通信手段620は、応答クライアントのネットワークアドレスおよびリレーサーバのアドレスを含むアドレス情報を、開始クライアントと中央サーバとの間で、送り、受け取るために使用される、(1つ、あるいは複数の)通信デバイスを表す。通信手段620は、ルーティングコマンド、およびリレーサーバのアドレスを含むアドレス情報を、(中央サーバを通して)応答クライアントと開始クライアントとの間で、送り、受け取るための(1つ、あるいは複数の)通信デバイスも表す。構文解析手段622は、中央サーバから送られるアドレス情報から、応答クライアントのネットワークアドレスおよびリレーサーバのアドレスを構文解析して抽出するために使用される(1つ、または複数の)構文解析デバイスを表す。構文解析手段622は、開始クライアントから送られるアドレス情報から、リレーサーバのアドレスを構文解析して抽出するための(1つ、または複数の)構文解析デバイスも表す。経路解析手段624は、応答クライアントのネットワークアドレスに基づいて、開始クライアントから応答クライアントまでがカウントされる第1のルーティングホップカウントを取得し、かつリレーサーバのアドレスに基づいて、開始クライアントからリレーサーバまでがカウントされる第2のルーティングホップカウントを取得するための(1つ、または複数の)デバイスを表す。経路解析手段624は、リレーサーバのアドレスに基づいて、リレーサーバから応答クライアントまでがカウントされる第3のルーティングホップカウントを取得するための(1つ、または複数の)デバイスも表す。決定モジュール626は、ルーティングホップカウントを比較する、例えば、第2のルーティングホップカウントおよび第3のルーティングホップカウントの合計が、第1のルーティングホップカウントよりも大きいかどうかを確認するためのものである。決定モジュール626は、比較結果に応じて、データ伝送のために直接P2Pリンク方式およびリレー方式から1つを選択する。
【0061】
通信手段620、構文解析手段622、経路解析手段624、および決定モジュール626を展開するために、任意の好適な手段を使用することができる。選択的ルーティングプロセスを実行する手段およびデバイスは、下記にさらに示されるように、選択的ルーティングシステムの種々の構成要素(例えば、開始クライアント202、応答クライアント204、中央サーバ200、およびリレーサーバ206)において具体化することができる。
【0062】
<実施環境>
図7は、本開示に従って、クライアント間のデータ伝送の選択的ルーティングを使用する、例示的なネットワークシステムの概略図を示している。ネットワークシステム700は、図3〜5、ならびに図6の選択的ルーティングシステム600を参照して上述した、クライアント間のデータ伝送の選択的ルーティングのための方法の例示的な実施環境を表している。ネットワークシステム700は、中央サーバ701と、開始クライアント702と、応答クライアント704と、リレーサーバ706と、を含む。
【0063】
図6において説明したように、通信手段620は、通信デバイス720−0、720−2、および720−2において具体化される。図7に示されている例示的な実施形態において、通信デバイス720−0は、中央サーバ701の一部、または中央サーバ710に接続される別個のデバイスのいずれかであり、通信デバイス720−1は、開始クライアント702の一部、またはそれに接続される別個のデバイスのいずれかであり、また、通信デバイス720−2は、応答クライアント704の一部、またはそれに接続される別個のデバイスのいずれかである。
【0064】
通信デバイス720−1は、応答クライアント704のネットワークアドレスおよびリレーサーバ706のアドレスに対する要求を、通信デバイス720−0に送り、次いで通信デバイス720−0は、要求されたアドレス情報を、通信デバイス720−1に戻す。同様に、通信デバイス720−2は、リレーサーバ706のアドレスに対する要求を通信デバイス720−0に送り、次いで通信デバイス720−0は、要求されたアドレス情報を、通信デバイス720−2に戻す。通信デバイス720−0、720−1、および720−2は、中央サーバ701を通して、開始クライアント702と応答クライアント704との間で、ルーティングコマンドおよび(例えば、リレーサーバ706のアドレスを含む)アドレス情報を送り、受け取るために使用される。例えば、通信デバイス720−1は、通信デバイス720−2を通して、経路情報要求コマンドREQ_ROUTE_ADDRを応答クライアント704に送って、リレーサーバ706から応答クライアント704までがカウントされる、ルーティングホップカウントS2の情報を要求することができる。通信デバイス720−1はまた、本明細書に説明されているように、応答クライアント704において、経路アドバイザ724−2によるルーティングホップカウントS0の決定を容易にするために、リレーサーバ706のアドレスを、好ましくは経路情報要求コマンドとともに、通信デバイス720−2に送ることができる。次いで、通信デバイス720−2は、通信デバイス720−1を使用して、(好ましくは中央サーバ701を通して)応答コマンドREP_ROUTE_ADDRを有する決定したルーティングホップカウントS2を開始クライアント702に戻す。
【0065】
図6において説明したように、構文解析手段622は、構文解析デバイス722−1および722−2において具体化される。構文解析デバイス722−1は、開始クライアント702の一部、またはそれに接続される別個のデバイスのいずれかであり、また、構文解析デバイス722−2は、応答クライアント704の一部、またはそれに接続される別個のデバイスのいずれかである。構文解析デバイス722−1は、中央サーバ701において通信デバイス720−0から送られるアドレス情報から、応答クライアント704のネットワークアドレスおよびリレーサーバ706のアドレスを構文解析して抽出する。構文解析デバイス722−2は、開始クライアント702から送られるアドレス情報から、リレーサーバ706のアドレスを構文解析する。
【0066】
図6の経路解析手段624は、経路解析器724−1および724−2において具体化される。経路解析器724−1は、開始クライアント702の一部、またはそれに接続される別個のデバイスのいずれかである。経路解析器724−2は、応答クライアント704、またはそれに接続される別個のデバイスのいずれかである。経路解析器724−1は、応答クライアント704のネットワークアドレスに基づいて、開始クライアント702から応答クライアント704までがカウントされる、第1のルーティングホップカウントS0を取得する。経路解析器724−1は、ネットワークアドレスに基づいて、開始クライアント702からリレーサーバ706までがカウントされる、第2のルーティングホップカウントS1を取得する。経路解析器724−2は、リレーサーバ706のアドレスに基づいて、リレーサーバ706から応答クライアント704までがカウントされる、第3のルーティングホップカウントS2を取得する。
【0067】
図6の決定モジュール626は、決定モジュール726において具体化され、開始クライアント702の一部、またはそれに接続される別個のデバイスのいずれかである。決定モジュール726は、第2のルーティングホップカウントS1および第3のルーティングホップカウントS2の合計と、第1のルーティングホップカウントS0とを比較する。決定モジュール726は、次いで、本明細書に示されているように、比較結果に基づいて、(例えば、直接P2Pリンク方式またはリレー方式から)好適なデータ伝送チャネルまたはモードを選択する。
【0068】
上述の実施形態において、経路解析器724−1および724−2が図示の位置にあるとすると、第1のルーティングホップカウントS0を取得するプロセス、および第2のルーティングホップカウントS1を取得するプロセスは、どちらも、開始クライアント702によって開始され、かつ少なくとも部分的に実行され得、一方で、第3のルーティングホップカウントS2を取得するプロセスは、応答クライアント704によって開始され、かつ少なくとも部分的に実行され得る。しかしながら、図6の経路解析手段624は、開始クライアント702および応答クライアント704にアクセス可能であれば、開始クライアント702および応答クライアント704の外側の、共通の経路解析器において具体化されてもよい。共通の経路解析器は、経路解析器724−1および722−2双方の機能を実行するように構成されてもよい。例えば、共通の解析器は、中央サーバの一部、またはそれに接続されるもののいずれかであってもよい。同様に、決定モジュール726は、図7に示されているように、開始クライアント702の代わりに、中央サーバ701に位置してもよい。この場合、第3のルーティングホップカウントS2は、経路解析器724−2によって決定された後に、開始クライアント702にではなく、決定モジュールが位置する中央サーバ701に送られてもよい。
【0069】
本明細書で論じられる可能な利益および利点は、添付の請求項の範囲に対する限定または制限であると見なされない。
【0070】
主題は構造的特徴および/または方法論的動作に対して具体的な言語で説明されているが、添付の請求項において定義される主題は、説明される特定の特徴または動作に必ずしも限定されない。むしろ、特定の特徴および動作は、請求項を実施する例示的な形態として開示される。

【特許請求の範囲】
【請求項1】
第1のクライアントと、第2のクライアントと、中央サーバと、リレーサーバと、を含む、ネットワークシステム内のクライアント間のデータ伝送の選択的ルーティングのための方法であって、
前記第1のクライアントから前記第2のクライアントまでの第1のルーティングホップカウントを、直接P2Pリンクがそれらの間にあると仮定して、取得するステップと、前記第1のクライアントから前記リレーサーバまでの第2のルーティングホップカウントを、前記リレーサーバを通るリレーチャネルがあると仮定して、取得するステップと、
前記リレーサーバから前記第2のクライアントまでの第3のルーティングホップカウントを、前記リレーサーバを通る前記リレーチャネルがあると仮定して、取得するステップと、
前記第2のルーティングホップカウントおよび前記第3のルーティングホップカウントの合計と、前記第1のルーティングホップカウントとを比較するステップと、
比較結果に基づいて、前記第1のクライアントと前記第2のクライアントとの間のデータ伝送チャネルとして、前記直接P2Pリンクおよび前記リレーチャネルのうちの1つを選択するステップと、
を含む、方法。
【請求項2】
前記データ伝送チャネルを選択するステップは、
前記第2のルーティングホップカウントおよび前記第3のルーティングホップカウントの合計が、前記第1のルーティングホップカウントよりも小さい場合は、前記第1のクライアントと前記第2のクライアントとの間のデータ伝送にリレー方式を選択するステップと、
前記第2のルーティングホップカウントおよび前記第3のルーティングホップカウントの合計が、前記第1のルーティングホップカウントよりも大きい場合は、前記第1のクライアントと前記第2のクライアントとの間のデータ伝送にP2Pリンク方式を選択するステップと、
を含む、請求項1に記載の方法。
【請求項3】
前記データ伝送チャネルを選択するステップは、
最初に前記P2Pリンク方式が選択されるが、直接P2P伝送チャネルを確立することができない場合に、前記第1のクライアントと前記第2のクライアントとの間のデータ伝送に前記リレー方式を選択するステップをさらに含む、請求項2に記載の方法。
【請求項4】
前記第1のルーティングホップカウントを取得するステップ、および前記第2のルーティングホップカウントを取得するステップは、どちらも、前記第1のクライアントによって開始され、かつ少なくとも部分的に実行される、請求項1に記載の方法。
【請求項5】
前記第1のルーティングホップカウントを取得するステップは、
前記第1のクライアントによって、前記第2のクライアントのネットワークアドレスを取得するステップと、
前記第2のクライアントの前記ネットワークアドレスに基づいて、経路検出インターフェースを使用して、前記第1のルーティングホップカウントを取得するステップと、
を含む、請求項1に記載の方法。
【請求項6】
前記経路検出インターフェースを使用して、前記第1のルーティングホップカウントを取得するステップは、
前記第1のルーティングホップカウントを生成するように、前記経路検出インターフェースによって、アドレスパラメータとして前記第2のクライアントの前記ネットワークアドレスを有するPINGコマンドを送るステップを含む、請求項5に記載の方法。
【請求項7】
前記第2のルーティングホップカウントを取得するステップは、
前記第1のクライアントによって、前記リレーサーバのアドレスを取得するステップと、
前記リレーサーバの前記アドレスに基づいて、経路検出インターフェースを使用して、前記第2のルーティングホップカウントを取得するステップと、
を含む、請求項1に記載の方法。
【請求項8】
前記第3のルーティングホップカウントは、前記第2のクライアントによって取得され、前記方法は、
ルーティングホップカウントの比較のために、前記第3のルーティングホップカウントを前記第1のクライアントまたは前記中央サーバに送るステップをさらに含む、請求項1に記載の方法。
【請求項9】
前記第3のルーティングホップカウントは、前記第2のクライアントによって取得され、前記方法は、
第2のクライアントによって、経路情報に対する要求コマンドを第1のクライアントから受け取るステップと、
前記要求コマンドに応答して、ルーティングホップカウントの比較のために、前記第3のルーティングホップカウントを前記第1のクライアントに送るステップと、
をさらに含む、請求項1に記載の方法。
【請求項10】
前記要求コマンドは、前記リレーサーバのアドレスを構文解析することができるアドレス情報とともに送られる、請求項9に記載の方法。
【請求項11】
ネットワーク内のクライアント間のデータ伝送の選択的経路設定のためのルーティングシステムであって、
第1のルーティングホップカウント、第2のルーティングホップカウント、および第3のルーティングホップカウントを取得するための経路解析手段であって、前記第1のルーティングホップカウントは、第1のクライアントから第2のクライアントまでが、直接P2Pリンクがそれらの間にあると仮定してカウントされ、前記第2のルーティングホップは、前記第1のクライアントからリレーサーバまでが、前記リレーサーバを通るリレーチャネルがあると仮定してカウントされ、かつ前記第3のルーティングホップカウントは、前記リレーサーバから前記第2のクライアントまでが、前記リレーサーバを通る前記リレーチャネルがあると仮定してカウントされる、経路解析手段と、
前記第2のルーティングホップカウントおよび前記第3のルーティングホップカウントの合計と、前記第1のルーティングホップカウントとを比較し、かつ比較の結果に基づいて、前記第1のクライアントと前記第2のクライアントとの間のデータ伝送チャネルとして、前記直接P2Pリンクおよび前記リレーチャネルのうちの1つを選択するための決定モジュールと、
を備える、ルーティングシステム。
【請求項12】
前記第1のクライアントから、前記第2のクライアントのネットワークアドレスおよび前記リレーサーバのアドレスに対する要求を受け取り、かつ前記第2のクライアントの前記ネットワークアドレスおよび前記リレーサーバの前記アドレスを、前記第1のクライアントに送るための通信ユニットをさらに備える、請求項11に記載のルーティングシステム。
【請求項13】
前記通信ユニットは、中央サーバ内に存在する、請求項12に記載のルーティングシステム。
【請求項14】
前記リレーサーバのアドレスを前記第2のクライアントに送るための通信ユニットをさらに備え、前記経路解析手段の少なくとも一部は、前記リレーサーバの前記アドレスに基づいて前記第3のルーティングホップカウントを取得するために、前記第2のクライアント内に存在する、請求項11に記載のルーティングシステム。
【請求項15】
前記通信ユニットは、前記第1のクライアント内に存在する、請求項14に記載のルーティングシステム。
【請求項16】
前記通信ユニットは、前記第3のルーティングホップカウントを含む経路情報に対する要求を、前記第2のクライアントに送るためにさらに使用される、請求項14に記載のルーティングシステム。
【請求項17】
前記リレーサーバの前記アドレスは、前記ルーティング情報に対する要求とともに、前記第2のクライアントに送られる、請求項16に記載のルーティングシステム。
【請求項18】
第1のクライアントと、第2のクライアントと、中央サーバと、リレーサーバと、を少なくとも含む、ネットワークシステム内のクライアント間のデータ伝送の選択的ルーティングのためのルーティングシステムであって、
前記第2のクライアントのネットワークアドレスおよび前記リレーサーバのアドレスを前記第1のクライアントに送るための、前記中央サーバに存在する第1の通信デバイスと、
前記第1の通信デバイスによって送られた、前記第2のクライアントの前記ネットワークアドレスおよび前記リレーサーバの前記アドレスを受け取るための、前記第1のクライアントに存在する第2の通信デバイスと、
前記第1の通信デバイスまたは前記第2の通信デバイスから、前記リレーサーバのコマンドおよび/または前記アドレスを受け取るために、前記第2のクライアントに存在する第3の通信デバイスと、
第1のルーティングホップカウントおよび第2のルーティングホップカウントを、それぞれ、前記第2のクライアントの前記ネットワークアドレスおよび前記リレーサーバの前記アドレスに基づいて、取得するための第1の経路解析器であって、前記第1のルーティングホップカウントは、前記第1のクライアントから前記第2のクライアントまでが、直接P2Pリンクがそれらの間にあると仮定してカウントされ、かつ前記第2のルーティングホップは、前記第1のクライアントからリレーサーバまでが、前記リレーサーバを通るリレーチャネルがあると仮定してカウントされる、第1の経路解析器と、
前記リレーサーバの前記アドレスに基づいて、第3のルーティングホップカウントを取得するための第2の経路解析器であって、前記第3のルーティングホップカウントは、前記リレーサーバから前記第2のクライアントまでが、前記リレーサーバを通る前記リレーチャネルがあると仮定してカウントされる、第2の経路解析器と、
前記第2のルーティングホップカウントおよび前記第3のルーティングホップカウントの合計と、前記第1のルーティングホップカウントとを比較し、かつ比較の結果に基づいて、前記第1のクライアントと前記第2のクライアントとの間のデータ伝送チャネルとして、前記直接P2Pリンクおよび前記リレーチャネルのうちの1つを選択するための決定モジュールと、
を備える、ルーティングシステム。
【請求項19】
前記決定モジュールは、最初に前記P2Pリンク方式が選択されるが、直接P2P伝送チャネルを確立することができない場合に、データ伝送に対して前記リレー方式のリレー伝送チャネルを選択するためにさらに使用される、請求項18に記載のルーティングシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2011−503973(P2011−503973A)
【公表日】平成23年1月27日(2011.1.27)
【国際特許分類】
【出願番号】特願2010−532338(P2010−532338)
【出願日】平成20年11月6日(2008.11.6)
【国際出願番号】PCT/US2008/082567
【国際公開番号】WO2009/061876
【国際公開日】平成21年5月14日(2009.5.14)
【出願人】(508248069)アリババ グループ ホールディング リミテッド (105)
【Fターム(参考)】