(57)【要約】階層マルチキャスティング・システム（１００）が、経路指定プロセス（３００）を通じてツリー構造（１０２）で結合され１つにまとめられている複数のクライアントを含む。データは、データ・ソース（１０１）からツリー構造（１０２）のルート・ノード（１１２）に伝送される。ルート・ノード（１１２）は、アップリンク容量を使用して、その子（１２２、１２４）にデータを反射させる。経路指定プロセス（３００）は、様々なフィルタ処理ステップを通じて、効率と信頼性が高まるようにツリー構造（１０２）を最適化する。さらに、異なるファイヤウォール（６１０、６２０）の背後にあるユーザ（６１２、６２２）は、互いに通信することができる。したがって、同じ階層マルチキャスティング・ツリー構造（６００）内で接続することができる。
2005508121.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク経由でデータを伝送するプロセスであって、
要求しているクライアントから接続要求を受信するステップと、
コンテンツ・プロバイダをルートとして持つ階層構造のノード分布を評価するステップと、
ノード分布が範囲を超えると、要求しているクライアントをコンテンツ・プロバイダに接続するステップと、
ノード分布が範囲内にあれば、コンテンツ・プロバイダの第１の子をルート・ノードとして持つ第１のツリーに、要求しているクライアントを導くステップと、
要求しているクライアントをコンテンツ・プロバイダに接続すると、コンテンツ・プロバイダから要求しているクライアントにデータを伝送するステップと、
要求しているクライアントを第１のツリーに導くと、第１のツリーのルート・ノードを通じてデータを要求しているクライアントに中継するステップと
を含むプロセス。
【請求項２】
プロセスであって、
要求しているクライアントを接続するステップは、コンテンツ・プロバイダが要求しているクライアントのための容量を持つと、要求しているクライアントをコンテンツ・プロバイダに接続することを含み、
要求しているクライアントを導くステップは、さらに第１のツリーが要求しているクライアントのための容量を持つと、要求しているクライアントを第１のツリーに導くことを含む請求項１に記載のプロセス。
【請求項３】
要求しているクライアントを第１のツリーに導くステップは、
第１のツリーのノード分布を評価するステップと、
ノード分布が標準値を越えると、要求クライアントを第１のツリーのルート・ノードに接続するステップと、
ノード分布が標準値を越えないと、要求しているクライアントを第１のツリーのルート・ノードの子孫に再帰的に導くステップを含む請求項１に記載のプロセス。
【請求項４】
さらに要求しているクライアントのアップリンク品質が所定の標準を満たさないと、要求しているクライアントを第１のツリーのルート・ノードの子孫に導くステップを含む請求項３に記載のプロセス。
【請求項５】
要求しているクライアントを第１のツリーのルート・ノードの子孫に再帰的に導くステップは、
第１のツリーのルート・ノードの子孫を現在ノードとして選択するステップと、
現在ノードをそのルート・ノードとして持つサブツリーのノード分布を評価するステップと、
ノード分布が標準値を越えると、要求クライアントを現在ノードに接続するステップと、
ノード分布が標準値を越えないと、要求しているクライアントを現在ノードの子孫に再帰的に導くステップとを含む請求項３に記載のプロセス。
【請求項６】
さらに、現在ノードもその子孫も要求しているクライアントのための容量を持たないと、要求しているクライアントをコンテンツ・プロバイダにリダイレクトするステップを含む請求項５に記載のプロセス。
【請求項７】
要求しているクライアントをリダイレクトするステップは、さらに、
要求しているクライアントに関連するリダイレクト回数を増やすステップと、
リダイレクト回数が第１の限界値を越えると、要求クライアントをコンテンツ・プロバイダに接続するステップと、
リダイレクト回数が第１の限界値よりも小さいと、階層構造内の要求しているクライアントのスポットをサーチするステップとを含む請求項６に記載のプロセス。
【請求項８】
階層構造内の要求しているクライアントのスポットをサーチするステップは、さらに、
階層構造内のノードを再帰的に訪れ、要求しているクライアントのスポットをサーチするステップと、
リダイレクト回数が第２の限界値を超えたことおよびノードに容量があれば、要求しているクライアントをノードに接続するステップを含む請求項７に記載のプロセス。
【請求項９】
さらに複数のノードの複数の品質を反映する複数のスコアに従って階層構造内の複数のノードから選択されたノードに向けて要求しているクライアントを導くステップを含む請求項３に記載のプロセス。
【請求項１０】
さらに要求しているクライアントが外部にある場合、
ノードがファイアウォールの背後にあると、第１のスコアをノードに割り当てるステップと、
ノードが外部にあると、第１のスコアよりも高い第２のスコアをノードに割り当てるステップとを含む請求項９に記載のプロセス。
【請求項１１】
さらに要求しているクライアントがファイヤウォールの背後にある場合、
ノードがファイアウォールの背後にあると、第１のスコアを階層構造内のノードに割り当てるステップと、
ノードが外部にあると、第１のスコアよりも低い第２のスコアをノードに割り当てるステップと、
ノードが前記のファイヤウォールと異なる第２のファイヤウォールの背後にあることと、ノードが前記のファイヤウォールや第２のファイヤウォールを通じて要求しているクライアントと通信できれば、第２のスコアよりも低い第３のスコアをノードに割り当てるステップと、
ノードが第２のファイヤウォールの背後にあることと、ノードが前記のファイヤウォールや第２のファイヤウォールを通じて要求しているクライアントと通信することができないと、第３のスコアよりも低い第４のスコアをノードに割り当てるステップを含む請求項９に記載のプロセス。
【請求項１２】
さらに、ノードと要求しているクライアントとの間の時経帯オフセットに従ってスコアを階層構造内のノードに割り当てるステップを含む請求項９に記載のプロセス。
【請求項１３】
さらに、ノードのアドレスと要求しているクライアントのアドレスとの一致に従ってスコアを階層構造内のノードに割り当てるステップを含む請求項９に記載のプロセス。
【請求項１４】
さらに、
要求しているクライアントが外部にあると、ノードの容量に基づき第１のスコアを階層構造内のノードに割り当てるステップと、
要求しているクライアントがファイヤウォールの背後にあることおよびノードがファイヤウォールの背後にあると、第１のスコアをノードに割り当てるステップと、
要求しているクライアントがファイヤウォールの背後にあることおよびノードがファイヤウォールの背後になければ、１未満の係数を第１のスコアに掛けた値に等しい第２のスコアをノードに割り当てるステップを含む請求項９に記載のプロセス。
【請求項１５】
さらに、
ノードが要求しているクライアントの番号に等しい自律システム番号を持っていれば、第１のスコアを階層構造内のノードに割り当てるステップと、
ノードが要求しているクライアントの番号と異なる自律システム番号を持っていれば、第１のスコアよりも低い第２のスコアをノードに割り当てるステップを含む請求項９に記載のプロセス。
【請求項１６】
さらに、ノードを訪れた履歴に従ってスコアを階層構造内のノードに割り当てるステップを含む請求項９に記載のプロセス。
【請求項１７】
さらに、
クライアントに伝送されたデータの品質を監視するステップと、
クライアントに伝送されたデータの品質が標準以下であれば、クライアントを再配置するステップを含む請求項１に記載のプロセス。
【請求項１８】
クライアントを再配置するステップは、さらに、
クライアントの親をマークされたノードとして識別するステップと、
クライアントを親から切断するステップと、
クライアントの新しいスポットをサーチするステップを含み、新しいスポットはマークされたノードの子でない請求項１７に記載のプロセス。
【請求項１９】
クライアントを再配置するステップは、さらに、
クライアントの兄弟の容量を評価するステップと、
兄弟がクライアントのための容量を持っていれば、クライアントを兄弟の子として接続するステップと、
兄弟がクライアントのための容量を持たないと、再接続要求を生成するステップを含む請求項１８に記載のプロセス。
【請求項２０】
クライアントを再配置するステップは、さらに、
クライアント接続マネージャでクライアントから再接続要求を受信するステップと、
クライアントの新しいスポットを再帰的にサーチするステップを含む請求項１９に記載のプロセス。
【請求項２１】
データ・ストリーミング・ネットワーク管理プログラムが格納されている記憶媒体であって、前記データ・ストリーミング・ネットワーク管理プログラムは、デジタル信号処理ユニットにより実行された場合に、
クライアントから接続要求を受信するステップと、
少なくとも１つのツリーのルート・ノードがデータ・ストリーム発信源に接続されている階層構造があるかどうかを検証するステップと、
階層構造がなければ、クライアントをルート・ノードとして持つツリーを形成し、クライアントをデータ・ストリーム発信源に接続するステップと、
階層があれば、階層構造のノード分布を評価するステップと、
ノード分布が範囲内であれば、階層構造外の少なくとも１つのツリーにおいてクライアントをツリーに導くステップを含むネットワーク管理プロセスを実行する記憶媒体。
【請求項２２】
前記ネットワーク管理プロセスは、さらに、ノード分布が範囲を超えれば、クライアントをデータ・ストリーム発信源に接続するステップを含む請求項２１に記載の記憶媒体。
【請求項２３】
前記ネットワーク管理プロセスは、さらに、クライアントが標準を超えるアップリンク能力を持っていれば、クライアントをデータ・ストリーム発信源に接続するステップを含む請求項２１に記載の記憶媒体。
【請求項２４】
前記ネットワーク管理プロセスで階層構造の少なくとも１つのツリーにおいてクライアントをツリーに導くステップは、さらに、階層構造内でクライアントのスポットを再帰的にサーチするステップを含む請求項２１に記載の記憶媒体。
【請求項２５】
前記ネットワーク管理プロセスで階層構造の少なくとも１つのツリーにおいてクライアントをツリーに導くステップは、さらに、ツリーがクライアントのための容量を持たないと、クライアントをデータ・ストリーム発信源に導くステップを含む請求項２４に記載の記憶媒体。
【請求項２６】
前記ネットワーク管理プロセスで階層構造内のクライアントのスポットを再帰的にサーチするステップは、さらに、
階層構造内のノードを現在ノードとして選択するステップと、
現在ノードの構造パラメータを評価するステップと、
構造パラメータがある値を超えると、クライアントを現在ノードに接続するステップと、
構造パラメータが前記値よりも小さいと、現在ノードの子を新しい現在ノードとして選択するステップを含む請求項２４に記載の記憶媒体。
【請求項２７】
前記ネットワーク管理プロセスで現在ノードの子を新しい現在ノードとして選択するステップは、さらに、
新しい現在ノードの構造パラメータを評価するステップと、
構造パラメータが前記値を超えると、クライアントを新しい現在ノードに接続するステップと、
構造パラメータが前記値よりも小さいと、クライアントを、新しい現在ノードの子をルート・ノードとして持つサブツリーに導くステップを含む請求項２６に記載の記憶媒体。
【請求項２８】
前記ネットワーク管理プロセスで階層構造内のノードを現在ノードとして選択するステップは、さらに、ノードに割り当てられたプリファレンス係数に従ってノードを選択するステップを含む請求項２６に記載の記憶媒体。
【請求項２９】
前記ネットワーク管理プロセスは、さらに、ノードへの接続を求める、要求しているクライアントが訪れたノードの履歴から計算して求めたプリファレンス係数をノードに割り当てるステップを含む請求項２８に記載の記憶媒体。
【請求項３０】
前記ネットワーク管理プロセスは、さらに、ノードとクライアントとの間の時経帯オフセットから計算して求めたプリファレンス係数をノードに割り当てるステップを含む請求項２８に記載の記憶媒体。
【請求項３１】
前記ネットワーク管理プロセスは、さらに、クライアントが外部にある場合、
ノードが外部にあると、第１のプリファレンス係数をノードに割り当てるステップと、
ノードがファイヤウォールの背後にあると、第１のプリファレンス係数よりも小さい第２のプリファレンス係数をノードに割り当てるステップを含む請求項２８に記載の記憶媒体。
【請求項３２】
前記ネットワーク管理プロセスは、さらに、クライアントがファイヤウォールの背後にある場合、
ノードがファイヤウォールの背後にあると、第１のプリファレンス係数をノードに割り当てるステップと、
ノードが外部にある場合、第１のプリファレンス係数よりも小さい第２のプリファレンス係数をノードに割り当てるステップと、
ノードが前記ファイヤウォールと異なる第２のファイヤウォールの背後にあることと、ノードが前記ファイヤウォールや第２のファイヤウォールを通じて要求しているクライアントと通信できれば、第２のプリファレンス係数よりも小さい第３のプリファレンス係数をノードに割り当てるステップと、
ノードが第２のファイヤウォールの背後にあることと、ノードが前記ファイヤウォールや第２のファイヤウォールを通じて要求しているクライアントと通信することができないと、第３のプリファレンス係数よりも小さい第４のプリファレンス係数をノードに割り当てるステップを含む請求項２８に記載の記憶媒体。
【請求項３３】
前記ネットワーク管理プロセスは、さらに、ノードのアドレスと要求しているクライアントのアドレスとの間のミスマッチから計算して求めたプリファレンス係数をノードに割り当てるステップを含む請求項２８に記載の記憶媒体。
【請求項３４】
前記ネットワーク管理プロセスは、さらに、
クライアントが外部にある場合、ノードの容量から計算して求めた第１のプリファレンス係数をノードに割り当てるステップと、
クライアントがファイヤウォールの背後にあることと、ノードがファイヤウォールの背後にあると、第１のプリファレンス係数をノードに割り当てるステップと、
クライアントがファイヤウォールの背後にあることと、ノードがファイヤウォールの背後になければ、１未満の係数を掛けた第１のプリファレンス係数の値に等しい第２のプリファレンス係数をノードに割り当てるステップを含む請求項２８に記載の記憶媒体。
【請求項３５】
前記ネットワーク管理プロセスは、さらに、ノードの自律システム番号とクライアントの自律システム番号との間のミスマッチから計算して求めたプリファレンス係数を、ノードへ応答して、ノードに割り当てるステップを含む請求項２８に記載の記憶媒体。
【請求項３６】
前記ネットワーク管理プロセスは、さらに、クライアントに伝送されるデータの品質が標準よりも低ければ、クライアントを再配置するステップを含む請求項２１に記載の記憶媒体。
【請求項３７】
前記ネットワーク管理プロセスにおいてクライアントを再配置するステップは、さらに、
クライアントの親をマークされたノードとして識別するステップと、
マークされたノードの子でないクライアントの新しいスポットをサーチするステップとを含む請求項３６に記載の記憶媒体。
【請求項３８】
前記ネットワーク管理プロセスにおいてクライアントを再配置するステップは、さらに、
クライアントの兄弟がクライアントのための容量を持っていれば、クライアントを兄弟の子として接続するステップと、
兄弟がクライアントのための容量を持たないと、クライアントをデータ・ストリーム発信源に導くステップを含む請求項３７に記載の記憶媒体。
【請求項３９】
前記ネットワーク管理プロセスでクライアントを再配置するステップは、さらに、階層構造内でクライアントの新しいスポットを再帰的にサーチするステップを含む請求項３８に記載の記憶媒体。
【請求項４０】
前記ネットワーク管理プロセスは、さらに、クライアントに伝送されるデータ・ストリームのジッタを監視するステップを含む請求項３６に記載のプロセス。
【請求項４１】
ネットワーク・データ伝送システム（１００）であって、
コンテンツ・プロバイダ（１０１）、
前記コンテンツ・プロバイダ（１０１）にデータを求める複数のクライアントと、
クライアント接続マネージャ（１０５）であって、前記クライアント接続マネージャ（１０５）は前記複数のクライアントを階層ツリー構造（１０２）で配列し、前記階層ツリー構造において前記複数のクライアントの第１のクライアント（１１２）は前記コンテンツ・プロバイダ（１０１）に前記階層ツリー構造（１０２）の第１層内のノードとして結合され、前記複数のクライアントのうち残りのクライアントの少なくとも一部は第１のクライアント（１１２）の子孫として結合されるクライアント接続マネージャを備えるネットワーク・データ伝送システム（１００）。
【請求項４２】
第１のクライアント（１１２）は前記コンテンツ・プロバイダ（１０１）からデータを受信し、その子孫にデータを中継する請求項４１に記載のネットワーク・データ伝送システム（１００）。
【請求項４３】
前記複数のクライアントは、さらに、第２のクライアント（１２２）を含み、第２のクライアント（１２２）は階層ツリー構造（１０２）内の第１のクライアント（１１２）の子であり、第１のクライアント（１１２）からデータを受信する請求項４２に記載のネットワーク・データ伝送システム（１００）。
【請求項４４】
前記複数のクライアントは、さらに、第３のクライアント（１３２）を含み、第３のクライアント（１３２）は階層ツリー構造（１０２）内の第２のクライアント（１２２）の子であり、第２のクライアント（１２２）からデータを受信する請求項４３に記載のネットワーク・データ伝送システム（１００）。
【請求項４５】
前記複数のクライアントは、さらに、第３のクライアント（１２４）を含み、第３のクライアント（１２４）は階層ツリー構造（１０２）内の第１のクライアント（１１２）の子および第２のクライアント（１２２）の兄弟であり、第１のクライアント（１１２）からデータを受信する請求項４３に記載のネットワーク・データ伝送システム（１００）。
【請求項４６】
前記複数のクライアントは、さらに、第２の階層ツリー構造（１０６）の第１層内のノードとして前記コンテンツ・プロバイダ（１０１）に結合された第２のクライアント（１１６）を含み、その第２のクライアント（１１６）が前記コンテンツ・プロバイダ（１０１）からデータを受信する請求項４１に記載のネットワーク・データ伝送システム（１００）。
【請求項４７】
前記複数のクライアントは、さらに、第３のクライアント（１２６）を含み、その第３のクライアント（１２６）は第２の階層ツリー構造（１０６）内の第２のクライアント（１１６）の子であり、第２のクライアント（１１６）からデータを受信する請求項４６に記載のネットワーク・データ伝送システム（１００）。
【請求項４８】
前記複数のクライアントは、さらに、第４のクライアント（１３６）を含み、その第４のクライアント（１３６）は第２の階層ツリー構造（１０６）内の第３のクライアント（１２６）の子であり、第３のクライアント（１２６）からデータを受信する請求項４７に記載のネットワーク・データ伝送システム（１００）。
【請求項４９】
前記複数のクライアントは、さらに、第４のクライアント（１２８）を含み、その第４のクライアント（１２８）は第２の階層ツリー構造（１０６）内の第２のクライアント（１１６）の子と第３のクライアント（１２６）の兄弟であり、第２のクライアント（１１６）からデータを受信する請求項４７に記載のネットワーク・データ伝送システム（１００）。
【請求項５０】
ネットワーク・データ伝送システム（１００）であって、
前記クライアント接続マネージャ（１０５）は、前記コンテンツ・プロバイダ（１０１）と前記複数のクライアントのデータ伝送容量に対する応答して、前記複数のクライアントを階層ツリー構造（１０２）に配列し、
前記クライアント接続マネージャ（１０５）は、階層ツリー構造（１０２）内のデータ伝送品質に対する応答して、階層ツリー構造（１０２）を動的に調整する請求項４１に記載のネットワーク・データ伝送システム（１００）。
【請求項５１】
第１のファイヤウォールの背後にある第１のサイトと第２のファイヤウォールの背後にある第２のサイトとの間で通信を行う方法であって、
第２サイトに第１のファイヤウォール上のポートに関する情報を伝達することと、
第２のファイヤウォール上のポートを通じて第２のサイトから第１のファイヤウォール上のポートを宛先として第１のデータ・パケットを伝送することと、
第１のファイヤウォールがｐｒｏｍｉｓｃｕｏｕｓ型であれば、第１のデータ・パケットを第１のサイトに中継することと、
第１のファイヤウォール上のポートを通じて第１のサイトから第２のファイヤウォール上のポートを宛先として第２のデータ・パケットを伝送することと、
第２のデータ・パケットを第２のサイトに中継することを含む方法。
【請求項５２】
第２サイトに第１のファイヤウォール上のポートに関する情報を伝達することは、さらに、
第１のファイヤウォール上のポートを通じて第１のサイトと外部サイトとの間の第１のリンクを確立することと、
第２のファイヤウォールを通じて第２のサイトと外部サイトとの間の第２のリンクを確立することと、
外部発信源から第２のサイトに第１のファイヤウォール上のポートを識別するメッセージを伝送することを含む請求項５１に記載の方法。
【請求項５３】
第１のファイヤウォール上のポートを通じて第１のサイトと外部サイトとの間の第１のリンクを確立することおよび第２のファイヤウォールを通じて第２のサイトと外部サイトとの間の第２のリンクを確立することは、さらに、
第１のファイヤウォール上のポートを通じて第１のサイトから外部サイトに第１の初期化データ・パケットを伝送することと、
第２のファイヤウォールを通じて第２のサイトから外部サイトに第２の初期化データ・パケットを伝送することを含む請求項５２に記載の方法。
【請求項５４】
さらに、第１のファイヤウォールをｐｒｏｍｉｓｃｕｏｕｓ型と識別することを含む請求項５１に記載の方法。
【請求項５５】
第１のファイヤウォールを識別することは、
第１のファイヤウォール上のポートを通じて第１のサイトから外部サイトに出力データ・パケットを伝送することと、
第１のファイヤウォールのポートに関する情報を、第１の外部サイトと異なるネットワーク・アドレスを持つ第２の外部サイトに伝達することと、
第２の外部サイトから第１のファイヤウォール上のポートを宛先として着信データ・パケットを伝送することと、
第１のサイトが着信データ・パケットを受信すると、第１のファイヤウォールをｐｒｏｍｉｓｃｕｏｕｓ型であると認識することを含む請求項５４に記載の方法。
【請求項５６】
第１のファイヤウォールの背後にある第１のサイトと第２のファイヤウォールの背後にある第２のサイトとの間で通信を行う方法であって、
第１サイトに第２のファイヤウォールに関する情報を伝達することと、
第２サイトに第１のファイヤウォール上のポートに関する情報を伝達することと、
第１のファイヤウォール上のポートを通じて第２のファイヤウォールを宛先として第１のデータ・パケットを伝送することと、
第２のファイヤウォール上のポートを通じて第２のサイトから第１のファイヤウォール上のポートを宛先として第２のデータ・パケットを伝送することと、
第１のファイヤウォールが厳格でなければ、第２のデータ・パケットを第１のサイトに中継することと、
第１のファイヤウォール上のポートを通じて第１のサイトから第２のファイヤウォール上のポートを宛先として第３のデータ・パケットを伝送することと、
第３のデータ・パケットを第２のサイトに中継することを含む方法。
【請求項５７】
第１サイトに第２のファイヤウォールに関する情報を伝達し、第２のサイトに第１のファイヤウォール上でのポートに関する情報を伝達することは、さらに、
第１のファイヤウォール上のポートを通じて第１のサイトと外部サイトとの間の第１のリンクを確立することおよび第２のファイヤウォールを通じて第２のサイトと外部サイトとの間の第２のリンクを確立することと、
外部発信源から第１のサイトに第２のファイヤウォールを識別する第１のメッセージを伝送することと、
外部発信源から第２のサイトに第１のファイヤウォール上のポートを識別する第２のメッセージを伝送することを含む請求項５６に記載の方法。
【請求項５８】
第１のファイヤウォール上のポートを通じて第１のサイトと外部サイトとの間の第１のリンクおよび第２のファイヤウォールを通じて第２のサイトと外部サイトとの間の第２のリンクを確立することは、さらに、
第１のファイヤウォール上のポートを通じて第１のサイトから外部サイトに第１の初期化データ・パケットを伝送することと、
第２のファイヤウォールを通じて第２のサイトから外部サイトに第２の初期化データ・パケットを伝送することを含む請求項５７に記載の方法。
【請求項５９】
さらに、第１のファイヤウォールを厳格でないと識別することを含む請求項５６に記載の方法。
【請求項６０】
第１のファイヤウォールを識別することは、
第１のファイヤウォール上のポートを通じて第１のサイトから外部サイトの第１のポートに出力データ・パケットを伝送することと、
第１のポートと異なる外部ソースの第２のポートから第１のファイヤウォールのポートを宛先として着信データ・パケットを伝送することと、
第１のサイトが着信データ・パケットを受信すると、第１のファイヤウォールを厳格でないと認識することを含む請求項５９に記載の方法。
【発明の詳細な説明】
【関連出願】
【０００１】
（先行出願の引用）
本特許出願は、２００１年１０月３１日に出願された「Ｌｉｖｅ  Ｓｔｒｅａｍｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｉｎｔｅｒｎｅｔ  Ｂｒｏａｄｃａｓｔ  Ｓｙｓｔｅｍ」という表題の米国仮特許出願第６０／３３５１７４号の出願日の利益を主張するものである。
【技術分野】
【０００２】
本発明は、一般に、ネットワーク内のデータ伝送に関するものであり、具体的には、分散ネットワーク内のデータのブロードキャストに関するものである。
【背景技術】
【０００３】
コンピューティング技術およびネットワーク・インフラの進歩とともに、様々な形態のデジタル媒体の伝送が高速化されてきた。企業と消費者は、ネットワーク経由で日常的に大量の情報を受信するようになった。このような情報は、ビジネス指向の情報、例えば、市況報告、製品情報など、あるいは個人使用または娯楽指向の情報、例えば、映画、デジタル・ビデオまたはオーディオ番組などである。情報提供者つまりコンテンツ・プロバイダは、多くの場合、ネットワーク経由でこのような情報を多数のクライアントに同時に伝送する必要がある。
【０００４】
ネットワーク経由で複数のクライアントに情報を伝送すると、コンテンツ・プロバイダ・サイトの資源、例えば、帯域幅が消費される。データ伝送量がコンテンツ・プロバイダ・サイトの最大処理能力に近づくと、クライアントの追加の要求を拒絶するようになる。さらに、データ伝送の速度と全体的な品質も、要求されたデータがコンテンツ・プロバイダの帯域幅を消費するにつれ低下することが多い。このような問題は、デジタル・ビデオまたはオーディオ番組のブロードキャストの場合に特に深刻である。
【０００５】
この問題を解決するために、コンテンツ・プロバイダ・サイトは、１つまたは複数のサーバ・サイトにコンテンツをミラーする場合があり、このようなサイトをミラー・サイトとも呼ぶ。そこで、ミラー・サイトはデータをクライアントに伝送し、中央のコンテンツ・プロバイダの負荷を緩和する。しかし、ミラー・サイトを設立して維持することは、コンテンツ・プロバイダにとって経済的な負担となる。
【０００６】
２０００年８月２２日に発行された「Ｇｌｏｂａｌ  Ｈｏｓｔｉｎｇ  Ｓｙｓｔｅｍ」という表題の米国特許第６１０８７０３号では、通常中央コンテンツ・プロバイダ・サーバによってホスティングされるＷｅｂページが埋め込まれたオブジェクトの少なくとも一部をホスティングする一組のコンテンツ・サーバを備える分散ホスティング・フレームワークを開示している。分散コンテンツ・サーバの位置は、コンテンツ・プロバイダ・サーバよりもクライアントに近く、コンテンツ・プロバイダ・サーバの負荷が緩和される。しかし、ミラー・サイトと同様、コンテンツ・サーバは、設立と運用に関して経済的に不効率である。
【０００７】
１９９９年３月１６日に発行された「Ｍｅｔｈｏｄ  ｆｏｒ  Ｃｏｎｎｅｃｔｉｎｇ  Ｃｌｉｅｎｔ  Ｓｙｓｔｅｍｓ  ｉｎｔｏ  ａ  Ｂｒｏａｄｃａｓｔ  Ｎｅｔｗｏｒｋ」という表題の米国特許第５８８４０３１号では、クライアント・システムを民間ブロードキャストネットワークに接続するプロセスを開示している。この民間ブロードキャストネットワークはコンテンツ・プロバイダ・サーバを最上位とするピラミッド型構造で、クライアント・サーバは他のクライアント・サーバを通じて直接的にまたは間接的にコンテンツ・プロバイダ・サーバに結合されている。このピラミッド型構造により、コンテンツ・プロバイダ・サーバはサーバ・ポートよりも多いクライアントにデータを伝送することができる。しかし、特許第５８４４０３１号によるピラミッド型構造の民間ブロードキャストネットワークは、ネットワーク容量、例えば帯域幅を十分に利用しようとした場合不効率である。
【０００８】
２００１年６月１９日に発行された「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｉｍｐｌｅｍｅｎｔｉｎｇ  ａｎｄ  Ｉｎｔｅｒｎｅｔ  Ｒａｄｉｏ  Ｄｅｖｉｃｅ  ｆｏｒ  Ｒｅｃｅｉｖｉｎｇ  ａｎｄ／ｏｒ  Ｔｒａｎｓｍｉｔｔｉｎｇ  Ｍｅｄｉａ  Ｉｎｆｏｒｍａｔｉｏｎ」という表題の米国特許第６２４９８１０号では、コンテンツ・プロバイダ・サーバがごく少数のクライアントに情報を伝送し、その後、他のクライアントにその情報を再送するようにそれらのクライアントに指令するチェイン・キャスティング・システムを開示している。特許第６２４９８１０号では、さらに、チェイン・キャスティング・システム内の負荷分散も開示している。しかし、特許第６２４９８１０号では、ネットワーク容量の効率的利用とデータ伝送品質の向上のためにチェイン・キャスティング・システムを構築し、調整することを教示していない。
【０００９】
つまり、これらのデータ伝送プロセスやその他の従来のデータ伝送プロセスは、経済的効率とデータ伝送能力が不十分であるということである。また、システム内で高いデータ伝送品質を維持することもできない。さらに、従来技術のプロセスでは、データをファイヤウォールの背後にある一方のノードから他方のファイヤウォールの背後にある他のノードに伝送するデータ伝送システムを確立できない。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、ネットワーク上で効率よくデータを複数のクライアントに伝送するためのデータ伝送プロセスおよびシステムがあれば有利である。安定していて、システムの最大容量を１００％活用できるデータ伝送システムを確立するプロセスがあるのが望ましい。さらに、高品質のデータ伝送を維持するためにデータ伝送システムを動的に調整することも望ましい。さらに、データ伝送システムではデータを伝送する際にクライアントの最大容量を効率よく利用することも利点となる。さらに、異なるファイヤウォールの背後にあるクライアント同士のデータ伝送リンクを確立するプロセスを用意し、それにより、異なるファイヤウォールの背後にあるクライアントをデータ伝送システムに結合し、データ伝送システムの柔軟性と適用性をさらに高めることができるようにすると都合がよいであろう。
【発明を実施するための最良の形態】
【００１１】
以下では、本発明の様々な実施形態について図を参照しながら説明する。図は本発明の特定の実施形態の説明をわかりやすくすることを目的としているに過ぎないことに注意されたい。また、本発明の完全な説明であること、または本発明の範囲を制限することを目的としてもいない。さらに、本発明の特定の実施形態に関連して説明されている態様は、必ずしもその実施形態に制限されるわけではなく、本発明の他の実施形態に関連して実施することができる。
【００１２】
図１は、本発明によるデータ伝送システム１００の概略を示している。システム１００は、インターネット、ローカル・エリア・ネットワーク（ＬＡＮ）、イントラネット、Ｅｔｈｅｒｎｅｔ（登録商標）、無線通信ネットワークなどのネットワーク経由でコンテンツ配信サーバまたはコンテンツ・プロバイダ１０１から複数のクライアントにデータをブロードキャストする。システム１００でコンテンツ・プロバイダ１０１から複数のクライアントに伝送されるデータには、デジタル・ビデオ信号、デジタル・オーディオ信号、グラフィック信号、テキスト信号、ＷｅｂＰａｇｅ信号などがある。システム１００の応用事例としては、デジタル・ビデオやデジタル・オーディオのブロードキャスト、市場データのブロードキャスト、ニュースのブロードキャスト、ビジネス情報のブロードキャスト、娯楽またはスポーツ情報のブロードキャスト、構成のアナウンスなどがある。
【００１３】
本発明の一実施形態では、コンテンツ・プロバイダ１０１からデータ・ストリームを受信する複数のクライアントは階層構造として配列されている。例えば、図１は、システム１００内のクライアントが、第１層のクライアント１１２をルートとする第１のツリー１０２、第１層のクライアント１１６をルートとする第２のツリー１０６の状態として配列されていることを示している。
【００１４】
ツリー１０２は、第２層のクライアント１２２、１２４を第１層のクライアント１１２の子として含む。第２層のクライアント１２２は第３層のクライアント１３１、１３２を子として持つ。第２層のクライアント１２４は第３層のクライアント１３３、１３４、１３５を子として持つ。ツリー１０６では、第２層のクライアント１２６、１２８は第１層のクライアント１１６の２つの子である。第２層のクライアント１２６は、第３層のクライアント１３６、１３７の２つの子を持つ。第２層のクライアント１２８は、第３層のクライアント１３８を子として持つ。
【００１５】
システム１００はさらに、複数のクライアントを階層構造に配列させ、図１に示されているツリー１０２、１０６を確定するクライアント接続マネージャ１０５を含む。新規クライアントがデータ伝送を要求すると、ネットワーク・サーバ１０７はその要求しているクライアントをクライアント接続マネージャ１０５に導き、クライアント接続マネージャはその要求しているクライアントを、コンテンツ・プロバイダ１０１からブロードキャストされているデータを受信できるように階層構造内に置く。
【００１６】
クライアント接続マネージャ１０５は、図１の波線で示されているように、ツリー１０２内の第１層のクライアント１１２とツリー１０６内の第１層のクライアント１１６との制御信号接続を維持する。本発明の一実施形態では、クライアント接続マネージャ１０５は第１層のクライアントとのみの制御信号接続を維持する。低位層のクライアント、例えば、第２層のクライアント１２２または第３層のクライアント１３４などは、その親との制御信号接続を維持する。低位層のクライアントやツリー構造のステータスに関するデータは、低位層のクライアントからツリー内のそれぞれの親に伝播する。本発明の他の実施形態では、クライアント接続マネージャ１０５は複数の層すなわちレイヤのクライアントとの制御信号接続を維持する。一実施形態では、クライアント接続マネージャ１０５は、ファイヤウォールの背後にないすべてのクライアントとの制御信号接続を維持する。他の実施形態では、クライアント接続マネージャ１０５は、第１、第２層のクライアントとの制御信号接続を維持する。さらに他の実施形態では、クライアント接続マネージャ１０５は、クライアントの性格とクライアント接続マネージャ１０５の最大容量に応じていくつかの低位層のクライアントとの制御信号接続を選択的に維持する。
【００１７】
クライアント接続マネージャ１０５と最上位層のクライアントの間だけの制御信号接続を維持することで、クライアント接続マネージャ１０５の負荷が軽減され、そのため、クライアント接続マネージャ１０５は同時に、システム１００内の、またはシステム１００のような複数のデータ伝送システム内の複数のツリー構造を構築し、管理することができる。他方で、複数のレイヤ内のクライアントとの制御信号接続を維持することにより、クライアント接続マネージャ１０５はシステム１００内の階層構造を効率よく制御することができる。また、これにより、クライアント接続マネージャ１０５は階層構造内のクライアントをより効率よりに見つけることができる。
【００１８】
本発明では、コンテンツ・プロバイダ１０１は、システム１００内の複数のクライアントのそれぞれにデータを直接伝送しない。その代わりに、コンテンツ・プロバイダ１０１はデータを第１層のクライアント１１２、１１６に伝送する。ツリー１０２内の第１層のクライアント１１２は、第２層のクライアント１２２、１２４であるその子にデータを伝送するか反射させる。第２層のクライアント１２２は、第３層のクライアント１３１、１３２にデータを中継する。同様に、第２層のクライアント１２４は、その子、つまり第３層のクライアント１３３、１３４、１３５にデータを伝送する。第１層のクライアント１１６は、第１層のクライアント１１２に関して本明細書で説明しているのと類似のプロセスでツリー１０６内のその子孫にデータを伝送するか反射させる。
【００１９】
図１に示されているように階層構造にクライアントを配列することにより、データを下位層の他のクライアントに伝送するために、システム１００は、上位層のいくつかのクライアントのアップリンク・データ伝送の容量を利用できる。システム１００内のクライアント、例えば、第１層のクライアント１１２は、その子孫、例えば第２層のクライアント１２２、１２４や第３層のクライアント１３１、１３２、１３３、１３４、１３５にデータを再ブロードキャストするか、反射させる。したがって、各クライアントは、他のクライアントのピアと呼ばれ、システム１００は、ピアツーピア・データ伝送システムまたはピアツーピア・ブロードキャスト・システムとも呼ばれる。コンテンツ・プロバイダ１０１から下位層のクライアント、例えば、第３層のクライアント１３７へのデータ伝送には、データの受信および再送の複数のステップがかかわる。そこで、システム１００は、マルチキャスティング・システム、またはカスケード・ブロードキャスト・システムとも呼ばれる。システム１００は、マルチキャスティングまたはカスケード・ブロードキャストを使用することにより、コンテンツ・プロバイダ１０１への負荷を著しく低減することができ、そのため、コンテンツ・プロバイダ１０１によるデータのブロードキャスト先のクライアントの数を増やすことができる。
【００２０】
クライアント接続マネージャ１０５は、例えば、マイクロプロセッサ（μＰ）、中央演算処理装置（ＣＰＵ）、デジタル・シグナル・プロセッサ（ＤＳＰ）、スーパーコンピュータ、コンピュータのクラスタなどのデジタル信号処理ユニットを含む。例えば、クライアント接続マネージャ１０５は、クライアント接続プロセスを実行し、システム１００内のクライアント接続を管理するための汎用コンピュータを含む。
【００２１】
データ伝送システム１００は、本明細書で説明した、図１に示されている構造を持つことに限定されないことは理解されるであろう。例えば、システム１００は、各ツリーが深さ３である２つのツリーを備えることに制限されない。コンテンツ・プロバイダ１０１とそこからデータを受け取るクライアントのデータ伝送容量、例えば、帯域幅に応じて、システム１００はコンテンツ・プロバイダ１０１に接続されるツリーをいくつでも含むことができ、各ツリーの深さも制限されない。さらに、システム１００は、図１に示されているように設定されているコンテンツ・プロバイダは１つだけに限られない。本発明の一実施形態によれば、クライアント接続マネージャ１０５はクライアントによって要求されたコンテンツおよび／または特定のコンテンツ・プロバイダの利用可能な容量に基づいて要求しているクライアントを異なるコンテンツ・プロバイダに導くこと（direct：ダイレクトすること）ができる。さらに、図１に示されているように、クライアント接続マネージャ１０５は、接続に対するクライアントの要求を、単一のネットワーク・サーバ１０７を介して受け取ることに制限されない。クライアントは、クライアント接続マネージャ１０５が結合されている、任意のネットワーク内の任意の個数のネットワーク・サーバを通じて接続を要求することができる。
【００２２】
また、システム１００は、既存のネットワーク・インフラを使用して実現できることも理解されるであろう。例えば、ツリー内のノード、例えば図１に示されているツリー１０２のルートまたはツリー１０６のルートは、コンテンツ配信ネットワーク（ＣＤＮ）のエッジ・サーバとすることができる。ＣＤＮエッジ・サーバは、通常、コンテンツ・プロバイダ１０１にデータを要求しているクライアント、例えば、ツリー１０２内の第１層のクライアント１１２よりもデータ伝送容量が大きい。したがって、ＣＤＮエッジ・サーバをデータ伝送システム１００の階層構造内のノードに配置すると、そのノードに結合するクライアントの数を増やすことができ、またそこから受け取るデータ伝送量も増やすことができる。
【００２３】
図２は、本発明による階層型データ伝送システムを確立するプロセス２００を例示するブロック図である。例えば、図２は、図１に示されているシステム１００にクライアント１３２を接続するためのプロセス２００を例示している。しかし、これは本発明に対する制限であることを意図していない。プロセス２００は、本発明によりデータ伝送を受信するために、任意のクライアントを階層構造に接続するのに適用可能である。
【００２４】
クライアント、例えば、クライアント１３２がブロードキャスト源からデータを受信することを要求するとき、まず、ネットワーク・サーバ１０７にアクセスする。ネットワーク・サーバ１０７のブロードキャスト源のＷｅｂアイコンをクリックすることにより、クライアント１３２はブロードキャスト源からデータを受信することを要求できる。ネットワーク・サーバ１０７は、次に、クライアント接続マネージャ１０５の電子署名を、その要求しているクライアント１３２に割り当て、それをクライアント接続マネージャ１０５に導く。例えば、ネットワーク・サーバ１０７は、クライアント接続マネージャ１０５のＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ（ＵＲＬ）をクライアント１３２に送信することにより、要求しているクライアント１３２をクライアント接続マネージャ１０５に導く。クライアント接続マネージャ１０５は、ステップ２０１で要求しているクライアント１３２の電子署名を確認する。署名が無効な場合、ステップ２０２のようにクライアント接続マネージャ１０５は接続を拒絶し、プロセス２００を終了する。
【００２５】
要求しているクライアント１３２がクライアント接続マネージャ１０５の有効な電子署名を持っていれば、クライアント接続マネージャ１０５は、ステップ２０４で、その要求しているクライアント１３２へのローカル接続管理プログラムを生成する。その後、ステップ２０６で、クライアント接続マネージャ１０５は、クライアント１３２によって要求されたデータをブロードキャストするコンテンツ・プロバイダ、例えば図１に示されているコンテンツ・プロバイダ１０１に接続されているツリー、例えば図１に示されているツリー１０２のルートに要求しているクライアント１３２を導く。コンテンツ・プロバイダ１０１からデータ伝送を受信するように確立されたツリーがない場合、クライアント接続マネージャ１０５は要求しているクライアント１３２を新しいツリーのルートとして指定する。ステップ２０８で、ツリー１０２内のルート・ノードに関するローカル接続管理プログラムが、クライアント１３２に割り当てられたデータ伝送容量、例えば帯域幅に基づいて、ツリー１０２内のあるスポットへクライアント１３２を経路指定する。ツリー１０２に接続された後、クライアント１３２はその親、第２層のクライアント１２２からデータ伝送を受け取る。一実施形態によれば、クライアント１３２はさらに、その親、クライアント１２２との制御信号接続を確立する。多重レイヤ制御接続と呼ばれる他の実施形態により、クライアントはクライアント接続マネージャ１０５との制御信号接続を確立する。
【００２６】
図３は、本発明による、階層構造型マルチキャスティング・ネットワーク・システム、例えば図１に示されているシステム１００を確立する経路指定プロセス３００を例示する流れ図である。例えば、経路指定プロセス３００は、図１に示されているデータ伝送システム１００を確立するため図２に示されているプロセス２００の経路選択ステップ２０８として使用される。経路指定プロセス３００は、システム１００内のノードのポートへ接続を要求するクライアントをシステム１００内の利用可能なデータ伝送容量に応じて経路指定する再帰的プロセスである。要求しているクライアントを十分な容量を備えるノードに導く経路を設定することにより、プロセス３００はネットワークのデータ伝送容量を安定かつ効率よく利用できるシステム１００を確立する。経路指定プロセス３００を説明するため、経路指定プロセス３００が現在実行されているノードを現在ノードと呼ぶことにする。
【００２７】
プロセス３００は、データ伝送システム、例えば図１に示されているデータ伝送システム１００のノードに接続するクライアント要求を受け取るステップ３０２で開始する。ステップ３１１で、プロセス３００は、要求しているクライアントがリダイレクト(redirect)中かどうかをチェックする。要求しているクライアントがリダイレクト中ということは、クライアントがシステム内のノードへの接続試行を少なくとも１回失敗していることを意味する。
【００２８】
要求クライアントがリダイレクト中でない場合、プロセス３００は、ステップ３１３で、現在ノードをルートとして持つサブツリー、つまり現在ノードの下のサブツリーのノード分布を調べる。要求クライアントがリダイレクト中である場合、プロセス３００は、ステップ３１５で、現在ノードがヘッド・サーバ、例えば図１に示されているシステム１００内のクライアント接続マネージャ１０５であるかチェックする。現在ノードがヘッド・サーバでない場合、プロセス３００は現在ノードの下のサブツリー構造を調べるステップ３１３に進む。
【００２９】
本発明の一実施形態によれば、現在ノードの下のサブツリー構造内のノード分布を調査または評価するステップ３１３で、ノード分布パラメータを評価する。特定の実施形態では、ノード分布パラメータは、現在ノードの子の数に対する子孫の総数の比として定義される。大きい比は、現在ノードの下のサブツリーが、現在ノードの下の少なくとも２層に多数の子孫を持つという点で底重（下が重い）であることを示す。他方、小さい比は、現在ノードの下のサブツリーが、現在ノードの下の少なくとも２層に子孫がほとんどないという点で頂重（上が重い）であることを示す。サブツリー構造を評価するステップ３１３は、データ伝送に対するバランスがとれ安定したツリー構造を形成するプロセス３００の役に立つ。
【００３０】
現在ノードの下が底重サブツリー、例えば、ある範囲を超える、または所定の標準値５よりも大きいノード分布比のサブツリーであると、プロセス３００はステップ３１４に進む。他方で、現在ノードの下のサブツリーが頂重、例えば、ある範囲内または所定の標準値５を超えないノード分布比の場合、プロセス３００は、ステップ３１７で、要求しているクライアントのアップリンクの特性を評価する。要求しているクライアントが上位、または例外的によいアップリンク特性、例えば大きい容量、信頼できる伝送などを持つ場合、プロセス３００はステップ３１４に進む。上位アップリンク特性の標準は、システムで伝送されるデータの型に応じてあらかじめ設定することができる。ステップ３１７は、階層ツリー構造内の上位の層の上位アップリンク特性を持つクライアントを見つけようとし、それにより、その上位アップリンク特性をツリー構造内の下位層のノードにデータを中継する際に利用する。これは、データ伝送システム内のツリー構造を最適化するプロセス３００の様々なステップのうちの１つである。
【００３１】
ツリー構造が頂重か、底重かを判別するある範囲または標準値は、データ伝送システムにおけるノードが異なれば異なる値になりうることに注意されたい。例えば、ノードが比較的上位の層にある、例えば図１に示されているシステム１００内のコンテンツ・プロバイダ１０１に比較的近い場合、標準値または範囲は、例えば２０など比較的大きな値になるであろう。他方で、ノードが比較的下位の層にある、つまり図１に示されているシステム１００内のコンテンツ・プロバイダ１０１から比較的遠い場合、標準値または範囲は、例えば４など比較的小さな値になるであろう。
【００３２】
現在ノードがヘッド・サーバである場合（ステップ３１５）、プロセス３００は、ステップ３１９で、第１層のノード、例えば図１に示されているシステム１００内のクライアント１１２または１１６が要求しているクライアントと同じファイヤウォールの背後にあるかどうかをチェックする。このようなノードが存在し、特定された場合、プロセス３００はステップ３１４に進む。
【００３３】
ステップ３１４で、現在ノードが要求しているクライアントのための容量を持つ場合、プロセス３００は要求しているクライアントを現在ノードの子として接続する。要求しているクライアントがファイヤウォールの背後にある場合、ステップ３１４で、要求しているクライアントを、要求しているクライアントと同じファイヤウォールの背後にある現在ノードの下のサブツリー内のノードの子として接続しようとする。要求しているクライアントと同じファイヤウォールの背後のサブツリーにノードがない場合、ステップ３１４では、要求しているクライアントを現在ノードに接続し、要求しているクライアントのファイヤウォール・アドレスを含むようにファイヤウォール・リストを更新する。一実施形態により、ステップ３１４では、要求しているクライアントのネットワーク・ファイヤウォール・アドレスを含むように現在ノードに関するメモリを更新する。他の実施形態によれば、ステップ３１４では、ヘッド・サーバ、例えば図１に示されているクライアント接続マネージャ１０５に関するメモリを更新し、要求しているクライアントのネットワーク・ファイヤウォール・アドレスを含むようにする。
【００３４】
サブツリー内に要求しているクライアントを収容できる使用可能なノードがないと（ステップ３１４）、要求しているクライアントが上位アップリングを持たない（ステップ３１７）かまたは要求しているクライアントと同じファイヤウォールの背後にある第１層のノードを持たない（ステップ３１９）と、プロセス３００はステップ３２２に進む。ステップ３２２で、プロセス３００は、ブラックリストに載っているノードまたはマーク付きのノードを削除し、要求しているクライアントをブラックリストに載っているノードに接続するのを回避する。本明細書で図４を参照しながら説明しているように、データ伝送システムのクライアントはデータ伝送システム内の再配置を求める。同じスポットに向かうのを避けるために、再配置を求める前に、クライアントは、その親ノードをブラックリストに載せるか、またはその親ノードをマークが付けられたノードとして識別する。ブラックリストによるフィルタ処理のステップ３２２により、クライアントは必ず、再配置元の同じスポットへ経路を指定されないようになっている。一実施形態では、ブラックリストによるフィルタ処理のステップ３２２により、ブラックリストに載っているノードにスコアまたはプリファレンス係数０が割り当てられる。
【００３５】
ステップ３２４で、プロセス３００は、要求しているクライアントのリダイレクト・ステータスを評価する。特に、プロセス３００は要求しているクライアントがリダイレクトされた回数をチェックする。リダイレクト回数が多いということは、システム内のノードに正常に接続されずに、要求しているクライアントがデータ伝送システム内で多くのスポットへ導かれたということを示している。ステップ３２３で、リダイレクト回数を第１の所定の閾値と比較する。この閾値は、ハード限界値とも呼ばれる。本発明では、ハード限界値を例えば５、８、１５など任意の正の整数とする。ハード限界値は無限大でもよく、その場合、リダイレクト回数は常にハード限界値よりも小さい。したがって、実は、プロセス３００はリダイレクト・ステータスに対するハード限界値を持たないということになる。
【００３６】
ハード限界値を超えるリダイレクトの数、例えば、リダイレクト回数に応じて、プロセス３００は経路選択作業を終了し、ステップ３２６で、要求しているクライアントを直接コンテンツ・プロバイダ１０１に接続し、クライアント接続マネージャ１０５と要求しているクライアントとの制御信号接続を確立する。コンテンツ・プロバイダ１０１が要求しているクライアントのための容量を持たない場合、プロセス３００は要求しているクライアントの接続要求を拒絶する。
【００３７】
ハード限界値を超えないリダイレクトの数の場合、プロセス３００は、ステップ３２５で、リダイレクト回数を第２の所定の閾値と比較する。この閾値は、ソフト限界値とも呼ばれる。本発明の一実施形態では、ソフト限界値は、例えば５、１０、２０など、ハード限界値よりも小さい任意の正の整数である。ソフト限界値がハード限界値以上の場合、ソフト限界値検証のステップ３２５は、要求しているクライアントの経路選択に影響せず、プロセス３００では、リダイレクト回数に対するハード限界値のみが使用される。
【００３８】
ソフト限界値を超えるリダイレクト回数に対して、プロセス３００は、ステップ３２７で、現在ノードに要求しているクライアントのための容量があるかどうかをチェックする。現在ノードに要求しているクライアントのための容量がある場合、プロセス３００は、ステップ３２８で、要求しているクライアントを現在ノードに接続する。
【００３９】
リダイレクト回数がソフト限界値を超えない場合（ステップ３２５）、または現在ノードが要求しているクライアントのための容量を持たないに場合（ステップ３２７）、プロセス３００は、ステップ３３２で、ファイヤウォール・フィルタをアクティブ化する。ファイヤウォール・フィルタは、要求しているクライアントと現在ノードとのファイヤウォール互換性に応じて、現在ノードにスコアまたはプリファレンス係数を割り当てる。これは、要求しているクライアントと互換性のあるファイヤウォール特性を持つノードに高いスコアを割り当て、そうすることで、要求しているクライアントを互換性のあるファイヤウォール特性を持つノードに導き、要求しているクライアントを、互換性のないファイヤウォール特性を持つノードに接続することを回避する。ステップ３３３で、プロセス３００は、要求しているクライアントがファイヤウォールの背後にあるかどうかをチェックする。
【００４０】
要求しているクライアントがファイヤウォールの背後にない場合、プロセス３００はステップ３３４に進む。ステップ３３４では、現在ノードがファイヤウォールの背後にない場合、高いスコア、例えば０．８を現在ノードに割り当て、現在ノードがファイヤウォールの背後にあると、低いスコア、例えば０．２を現在ノードに割り当てる。
【００４１】
他方で、要求しているクライアントがファイヤウォールの背後にある場合、プロセス３００は、ステップ３３６で、ファイヤウォールの特性に応じて異なるスコアを現在ノードに割り当てる。本発明の一実施形態では、要求しているノードと同じファイヤウォールの背後にある場合に、高スコア、例えば１を現在ノードに割り当て、どこのファイヤウォールの背後にもない場合に、中高スコア、例えば０．６を現在ノードに割り当て、要求しているクライアントと異なるファイヤウォールの背後にあるが、ファイヤウォールを通じて要求しているクライアントと現在ノードとの間で実現可能なデータ伝送を確立できる場合に、中低スコア、例えば０．４を現在ノードに割り当て、要求しているクライアントと異なるファイヤウォールの背後にあり、ファイヤウォールを通じて要求しているクライアントと現在ノードとの間で実現可能なデータ伝送を確立できない場合に、低スコア、例えば０を現在ノードに割り当てる。
【００４２】
本発明の一実施形態によれば、プロセス３００は、利用可能な容量に応じてスコアを現在に割り当てる容量フィルタ処理ステップ３４２を含む。ステップ３４３で、プロセス３００は、まず、要求しているクライアントがファイヤウォールの背後にあるかどうかをチェックする。本発明の一実施形態では、要求しているクライアントがファイヤウォールの背後にない場合、ステップ３４４で、現在ノードに対しその利用可能な容量に等しいスコアが割り当てられる。要求しているクライアントがファイヤウォールの背後にある場合、ステップ３４６で、要求しているクライアントと同じファイヤウォールの背後にある現在ノードに応じてその利用可能な容量に等しいスコアを現在ノードに割り当てる。そうでなければ、ステップ３４６で、１よりも小さい係数、例えば０．６を掛けた利用可能な容量に等しいスコアを現在ノードに割り当てる。容量フィルタは、大容量を持ち、要求しているクライアントと互換性のあるファイヤウォール特性を持つノードに高いプリファレンスを与える。
【００４３】
本発明の一実施形態では、プロセス３００は、さらに、自律システム番号（ＡＳＮ）フィルタ処理ステップ３５２も含む。ステップ３５３で、プロセス３００は、現在ノードが、要求しているクライアントと同じＡＳＮを持つかどうかをチェックする。現在ノードが要求しているクライアントと同じＡＳＮ番号を持つ場合、プロセス３００は、ステップ３５４で、高いスコア、例えば０．９を現在ノードに割り当てる。そうでない場合、ステップ３５６で、プロセス３００は低いスコア、例えば０．４を現在ノードに割り当てる。要求しているクライアントと同じＡＳＮを持つノードに高いスコアを割り当てることにより、プロセス３００は、要求しているクライアントと同じ自律システム内にあるノードに要求しているクライアントを導く。要求しているクライアントを同じ自律システム内のノードに接続するのは、ノードと要求しているクライアントとの間のデータ伝送の効率と信頼性が向上するため有益である。
【００４４】
本発明の一実施形態では、プロセス３００は、さらに、サブネット・フィルタ処理ステップ３６２を含む。ステップ３６４で、プロセス３００は要求しているクライアントと現在ノードとのサブネット関係に応じてスコアを現在ノードに割り当てる。４つのカルテットのすべてが要求しているクライアントのカルテットと一致しているネットワーク・アドレスの場合に、高いスコア、例えば１を現在ノードに割り当てる。ネットワーク・アドレス内の一致するカルテットの数が減るのに対応して、現在ノードに割り当てるスコアを下げてゆく。要求しているクライアントと一致するネットワーク・アドレスを持つノードに高いスコアを割り当てることにより、プロセス３００は、要求しているクライアントと同じサブネット内にあるノードに要求しているクライアントを導く。要求しているクライアントを同じサブネット内のノードに接続するのは、ノードと要求しているクライアントとの間のデータ伝送の効率と信頼性が向上するため有益である。
【００４５】
さらに、本発明の一実施形態では、プロセス３００は、時間フィルタ処理ステップ３７２を含む。時間フィルタ処理ステップ３７２は、クライアントがデータ伝送システム内のノードを訪れてノードへの接続を求める時期とその頻度を追跡する。ステップ３７４で、プロセス３００は、クライアントがノードを訪れる時期と頻度に基づいてスコアを現在ノードに割り当てる。好ましい実施形態において、ステップ３７４では、所定の期間、例えば３分間クライアントが現在ノードを訪れていないと、高いスコア、例えば１を現在ノードに割り当て、別の所定期間、例えば３０秒以内に、現在ノードを訪れていると、低いスコア、例えば０．２を現在ノードに割り当てる。本発明の様々な実施形態により、クライアントが訪れた履歴に応じて現在ノードに他のスコアを割り当てることができる。
【００４６】
時間フィルタ処理ステップ３７２では、階層データ伝送システム内のノードを過剰に訪れないようにする。これは、階層ツリー構造をバランスのとれた状態にし、安定させるのに有益である。これは、また、システム全体にデータ伝送負荷を分散させ、システム内のデータ転送機能を効率よく使用するためにも有益である。
【００４７】
さらに、本発明の一実施形態では、プロセス３００は、時経帯フィルタ処理ステップ３８２を含む。特にステップ３８４で、プロセス３００は要求しているクライアントと現在ノードとの時経帯関係に応じてスコアを現在ノードに割り当てる。要求しているクライアントと同じ時経帯の場合に、高いスコア、例えば１を現在ノードに割り当てる。現在ノードと要求しているクライアントとの時経帯オフセットが大きい場合にはそれに対して、現在ノードに低いスコアを割り当てる。要求しているクライアントからの時経帯オフセットが小さいノードに高いスコアを割り当てることにより、プロセス３００は、要求しているクライアントに地理的に近いところにあるノードに要求しているクライアントを導く。要求しているクライアントを地理的に近いノードに接続するのは、ノードと要求しているクライアントとの間のデータ伝送の効率と信頼性が向上するため有益である。
【００４８】
ステップ３９１で、プロセス３００は、現在ノードの下のサブツリーに、様々なフィルタ処理ステップの後も存続可能な状態にあるノードがあるかチェックする。一実施形態により、存続可能なノードは、マークされているかまたはブラックリストに載っているということのない、またスコアが所定の最小値以上であるノードである。他の実施形態によれば、存続可能なノードは、スコアがゼロ以外であるノードである。存続可能なノードがある場合、プロセス３００は、ステップ３９２で、高いスコアを持つ存続可能な一組のノード、例えば最高スコアの１０個のノードを選び、要求しているクライアントのリダイレクト回数を１だけ増やす。次に、プロセス３００は、ステップ３０２に進み、ステップ３９２で存続可能なノードの１つを現在ノードとして選択して再帰的経路指定プロセスの反復をもう１回開始する。存続可能なノードが残されていなければ、現在ノードが要求しているクライアントのための容量を持つ場合に、プロセス３００は、ステップ３９４で、要求しているクライアントを現在ノードの子として接続する。現在ノードに要求しているクライアントのための容量がない場合、ステップ３９４で、要求しているクライアントのリダイレクト回数を増やし、要求しているクライアントをヘッド・サーバにリダイレクトし、さらにもう１回データ伝送システムへの接続を試みる。
【００４９】
経路指定プロセス３００は、階層構造マルチキャスティングまたはカスケード・ブロードキャスト・システムをデータ伝送を受信するクライアント用に確立する。マルチキャスティング・システムでは、階層構造内のノードのアップリンク容量を使用して、データ伝送負荷をシステム全体に分散させる。これにより、コンテンツ・プロバイダ上の負荷が著しく低減され、コンテンツ・プロバイダに過剰な負荷をかけずにデータを受信するクライアントを増やすことができる。
【００５０】
本発明の一実施形態では、プロセス３００は、要求しているクライアントを接続するためノードを再帰的にサーチする。現在ノードが底重サブツリー構造のルート・ノードの場合、プロセス３００は要求しているクライアントを現在ノードの子として接続することを優先する。現在ノードが頂重サブツリー構造のルート・ノードの場合、プロセス３００は現在ノードを現在ノードの子孫に接続することを優先する。つまり、プロセス３００は、バランスのとれた階層ツリー構造を構築しようとする。したがって、プロセス３００は、ネットワーク・データ伝送容量と資源の利用に関して効率的であり、かつ安定な階層ツリー構造を確立する。
【００５１】
プロセス３００は、ファイヤウォールの背後にある要求しているクライアントを、同じファイヤウォールの背後にあるノードの下に置くことを優先する。要求しているクライアントと同じファイヤウォールの背後のツリーにノードがない場合、プロセス３００は、要求しているクライアントのファイヤウォール・アドレスを含むようにファイヤウォール・アドレス・リストのキャッシュを更新し、要求しているクライアントをツリーに接続する。接続を要求している次のクライアントが同じファイヤウォールの背後にある場合、プロセス３００は、次のクライアントを接続された要求したクライアントの下のノードに接続する。同じファイヤウォールの背後にあるクライアントを１つにまとめることにより、プロセス３００は、ファイヤウォールの完全性を維持し、ネットワーク・データ伝送容量を効率よく使用する。
【００５２】
様々なフィルタ処理ステップを通じて、プロセス３００は、要求しているクライアントに、効率良くまたは高い信頼性を保ってデータを送信することができるノードに高いスコアを割り当てる。例えば、高スコアは、要求しているクライアントに対するデータ伝送容量が高いノード、要求しているクライアントと同じＡＳＮを持つノード、要求しているクライアントと同じサブネット内のノード、クライアントに地理的に近いノードなどに割り当てられる。これらのフィルタ処理ステップは、システムのデータ伝送効率と信頼性を改善するのに有益である。
【００５３】
本発明による経路指定プロセス３００は図３を参照して本明細書で説明したものに限られないことは理解されるであろう。本発明の精神から逸脱することなく説明したプロセスに様々な修正を加えることができる。例えば、衛星利用測位システム（ＧＰＳ）データに基づいて、時経帯フィルタ処理を地理的位置フィルタ処理で置き換えることができる。時経帯フィルタ処理は、本発明により任意選択でもある。プロセス３００を使用して、比較的狭い地理的領域内のクライアントを対象とするデータ伝送システムを構築する場合、時経帯フィルタ処理の利点は比較的小さくなる。同様に、すべてのクライアントが同じ自律システム内にあるか、同じサブネット内にある場合、ＡＳＮフィルタ処理またはサブネット・フィルタ処理ステップをプロセス３００から削除しても、データ伝送システムの効率や信頼性に悪影響を及ぼすことはない。
【００５４】
要求しているクライアントは、ツリー内のノードのポートに接続された後、そのノードの子になる。例えば、第３層のクライアント１３２は、図１に示されているように、第２層のクライアント１２２のポートに接続されると、ツリー１０２のノードになり、かつ第２層のクライアント１２２の子になる。ツリー内のクライアント、例えば、ツリー１０２内の第３層のクライアント１３２は、その親、その兄弟、クライアント接続マネージャ１０５のアドレスを含むノード・アドレスのリストを持つ。親は、例えば、第２層のクライアント１２２である。ノード・アドレスのリストはＵＲＬのリストでもよい。クライアント、例えば、第３層のクライアント１３２は、その親、例えば第２層のクライアント１２２からデータ・ストリームを受信すると、データ・ストリームの品質を監視する。その親からのデータ・ストリームの品質が所定の標準値を下回った場合、クライアントは、図１に示されているように、階層構造、例えばツリー１０２またはツリー１０６内の他のノードに自動的に再接続しようとする。
【００５５】
図４は、本発明による、データ伝送システム、例えば図１に示されているデータ伝送システム１００のデータ伝送品質を維持するプロセス４００を例示するブロック図である。データ伝送システム１００では、クライアント１３２は、その親クライアント１２２からデータ・ストリームを受信する。ステップ４０２で、クライアント１３２はデータ・ストリームを処理する。データ・ストリームの処理には、データの表示、データの格納、他のデータとのマージ、データの符号化、データの復号化、ビデオまたはオーディオ番組再生のためのデータの復号化などが含まれる場合がある。
【００５６】
ステップ４０３で、クライアント１３２は、親クライアント１２２から受信したデータ・ストリームの品質を調べる。つまり、クライアント１３２は、親クライアント１２２から受け取ったサービスの品質（ＱｏＳ）を調べる。例えば、データ・パケット損失は、データ・ストリーム品質の一般に使用される計測である。さらに例えば、ジッタは、データ・ストリーム品質のもう１つの計測である。ジッタでは、予想されるタイムスタンプとデータ・パケット上の実際のタイムスタンプとの差を計測する。伝送制御プロトコル（ＴＣＰ）を採用するネットワークでは、データ・パケットの完全な配信は再送により保証され、データ・パケット損失は常にゼロである。いくつかのアプリケーションでは、データ・パケットの適時性がデータ・パケットの完全性よりも重要である。例えば、クライアント１３２のビデオ番組ストリームは、データ・パケットの大半がタイミングよく届けば、データの欠損があり、表示の異常や欠陥が少々あっても継続することができるが、クライアント１３２がデータ・パケットの一連の送信や再送を待つ場合には突然止まる。これらのアプリケーションでは、ジッタはデータ・パケット損失よりも適切な、データ・ストリーム品質の計測である。
【００５７】
データ・ストリームの品質が所定の標準を満たしているか、または他の何らかの形で満足している場合、クライアント１３２は、ステップ４０４で、制御信号接続を通じて信号をその親クライアント１２２に送り返し、データ・ストリームの品質が満足なものであることを示す。任意選択により、クライアント１３２はさらに、クライアント１３２とその親との間の接続状態が良好であることをローカル接続管理プログラムに通知することができる。クライアント１３２は、その親からデータ・ストリームを受信し続け、十分な容量がある場合に新しいクライアントをその子として受け入れられる状態にある。
【００５８】
データ・ストリームの品質つまりＱｏＳが所定の標準を満たしていない、または他の何らかの形で不満足である場合、クライアント１３２は、ステップ４０６で、その親クライアント１２２をマーク付けされたノードとして識別するか、またはその親クライアント１２２をブラックリストに載せる。クライアント１３２はさらに、その親との接続状態が良好でないことに関してローカル接続管理プログラムに通知する。ステップ４０８で、クライアント１３２のローカル接続管理プログラムは、図１に示されているシステム１００内の階層構造内の他のノードにクライアント１３２を再接続しようとする。
【００５９】
本発明の一実施形態では、クライアント１３２はまず、その兄弟の１つ、例えば、図１に示されているツリー１０２内のクライアント１３１に接続されようとする。クライアント１３２をその兄弟の１つにリダイレクトしても、図１に示されているシステム１００内の階層構造全体にわずかな影響しか及ぼさない。また、経路指定プロセス、例えば図３を参照して本明細書で上述している経路指定プロセス３００は、その現在ノードから離れている他のノードにクライアント１３２をリダイレクトするのに比較して反復回数が少なくて済むため、効率がよい。さらに、クライアント１３２やその兄弟は、おそらく、同じファイヤウォールの背後、同じ自律システム内、同じサブネット内、同じ時経帯内などにあると考えられる。したがって、クライアントをその兄弟にリダイレクトしようとするのは、ネットワーク全体のトラフィックを増やさずに、データ伝送ネットワークをバランスのとれた状態に保持するうえで有益である。また、不要なネットワーク・チャタリングなしで、必要なネットワーク再構成を行ううえで有益でもある。さらに、ネットワーク内のファイヤウォールの完全性を維持するのにも有益である。
【００６０】
クライアント１３２に兄弟がないか、またはその兄弟に、そのクライアントに割り当てるべき容量がない場合、クライアント１３２は、図１に示されているシステム１００内のクライアント接続マネージャ１０５への再接続を要求する。クライアント接続マネージャ１０５は、経路指定プロセス、例えば、それぞれの図３を参照して上述した経路指定プロセス３００を実行して、クライアント１３２を、図１に示されているデータ伝送システム１００内の新規ノードに接続する。本発明では、経路指定プロセスは、クライアント１３２が再接続を求める前に、クライアント１３２からマークされているノード、つまり、クライアント１３２のブラックリストに載っている親への経路を選択しない。
【００６１】
図５Ａ、５Ｂ、５Ｃは、本発明によるクライアント再接続プロセスを例示するツリー５００の概略図である。ツリー５００は、クライアント接続マネージャ１０５をルート・サーバまたはヘッド・サーバとして持つ。クライアント５０２は、クライアント接続マネージャ１０５に結合されている。クライアント接続マネージャ１０５とクライアント５０２の間のブロック５０１は、クライアント接続マネージャ１０５とクライアント５０２の間の不特定の階層構造を表す。ブロック５０１は、様々な種類の階層構造で配列された任意の個数のクライアントを含むことができ、クライアント５０２はブロック５０１内の階層構造内のノードの子である。その一方で、ブロック５０１は空であってもよく、またクライアント５０２の親であるノードを含まなくてもよい。これらの状況のいずれかにおいては、クライアント５０２はクライアント接続マネージャ１０５に直接接続される。クライアント接続マネージャ１０５は、制御信号をツリー５００内のノードに送信する。データ・ストリーム発信源（図５Ａ〜５Ｃには示されていない）は、ツリー５００内のノードにデータ・ストリームをブロードキャストする。例えば、図１に示されているシステム１００内のコンテンツ・プロバイダ１０１が、ツリー５００内のデータ転送のデータ・ストリーム発信源として動作することができる。
【００６２】
図５Ａに示されているように、クライアント５０２はツリー５００の一部のルートまたは枝５１０である。枝５１０は、クライアント５０４と５０６をクライアント５０２の子として含む。クライアント５０６は、２つの子を持ち、それぞれクライアント５０８と５１２である。枝５１０は、さらに、クライアント５１２の子であるクライアント５１４を含む。各クライアントは、ノード・アドレスのリストを持ち、これには、クライアント接続マネージャは１０５、クライアントの親、クライアントの兄弟のアドレスが含まれる。
【００６３】
ブロードキャスト中またはデータ伝送プロセスの実行中に、クライアント５０４、５０６は、クライアント５０２からデータ・ストリームを受信する。クライアント５０６は、クライアント５０８と５１２にデータ・ストリームを再送し、中継し、または反射させる。クライアント５１２は、データ・ストリームをクライアント５１４に中継する。図４を参照して上述したように、各クライアントはその親からのデータ・ストリームの品質またはＱｏＳを調べる。例えば、クライアント５０６でＱｏＳが良好でない場合がある。図４を参照して上述したように、クライアント５０６は、その親クライアント５０２をマークされたノードとして識別するか、またはその親クライアント５０２をブラックリストに載せて、ツリー５００内の他のノードへのリダイレクトを求める。
【００６４】
クライアント５０６は、まず、その兄弟の１つへの接続を求める。図５Ａに示されているように、クライアント５０６は兄弟クライアント５０４を持つ。クライアント５０４が割り当てられる容量を持てば、図５Ｂに示されているように、クライアント５０６はクライアント５０４の子としてツリー５００に再接続される。そこで、クライアント５０６は、クライアント５０４からデータ・ストリームを受信し、そのデータ・ストリームをクライアント５０８、５１２に反射させ、次々に、データ・ストリームをその子クライアント５１４に中継してゆく。
【００６５】
本発明の一実施形態では、クライアント５０６は、図５Ｂに示されているように、枝５１０内の不平衡構造を識別する。ツリー構造のバランスをとるために、クライアント５０６は、クライアント５１２をクライアント５０６から切断するよう指令し、クライアント５１２をクライアント５０４にリダイレクトする。クライアント５１２は、図５Ｃに示されているように、クライアント５０４の子すなわちクライアント５０６の兄弟として枝５１０に再接続される。ツリー５００の枝５１０はバランスがとれた。
【００６６】
クライアント５０４に、クライアント５０６に割り当てる容量がない場合、クライアント５０６は再接続要求を生成する。再接続要求に対する応答として、クライアント接続マネージャ１０５は、経路指定プロセス、例えば、図３を参照して上述している経路指定プロセス３００を通じて、ツリー５００にクライアント５０６のためのスポットがないかサーチを行う。クライアント５０６の親、クライアント５０２はマークされているか、またはブラックリストに載っているため、経路指定プロセスは、その以前の親、クライアント５０２の子となるようにクライアント５０６を再配置することはない。
【００６７】
図４および５Ａ〜５Ｃを参照しながら上述したように、クライアントが再接続を求めたときに最初にその兄弟への接続を試みることは本発明では任意選択であることは理解されるであろう。本発明の他の実施形態によれば、再接続を求めるクライアントは、最初にその兄弟の子として接続を試みずに、ヘッド・サーバ、例えばクライアント接続マネージャ１０５への再接続要求を生成する。本発明の他の実施形態によれば、ヘッド・サーバへの再接続要求を生成する前にその兄弟への接続を求めることは、再接続を求めるクライアントやその親が同じファイヤウォールの背後にある場合に適用可能である。その親と同じファイヤウォールの背後にないクライアントの場合、クライアントが再接続を求めると、再接続の要求が生成されて、ヘッド・サーバに伝播される。このアプローチは、同じファイヤウォールの背後にあるクライアントを１つにまとめて、データ伝送効率を高め、ファイヤウォールの安全性を維持するうえで有益である。
【００６８】
図６は、本発明の一実施形態によるネットワーク・ブロードキャスト・システム６００を例示する概略図である。システム６００は、ヘッド・サーバとしてのクライアント接続マネージャ１０５と、データをシステム６００内のノードにブロードキャストするためのデータ・ストリーム発信源１０１を備える。クライアント６１２は、クライアント接続マネージャ１０５に結合されている。クライアント接続マネージャ１０５とクライアント６１２の間のブロック６０５は、クライアント接続マネージャ１０５とクライアント６１２の間の不特定の制御信号接続を表す。ブロック６０５は、さらに、データ・ストリーム発信源１０１とクライアント６１２の間の不特定のデータ転送経路を表している。ブロック６０５は、様々な種類の階層構造に配列されたクライアントをいくつでも含むことができる。クライアント６１２は、ブロック６０５内の階層構造によるノードの子である。一方、ブロック６０５は空であってもよく、またクライアント６１２の親であるノードを含まなくてもよい。それらの状況のいずれかでは、クライアント６１２は、制御信号に対してはクライアント接続マネージャ１０５に直接接続され、データ・ストリームに対してはデータ・ストリーム発信源１０１に直接接続される。クライアント６１２は、クライアント６２２をその子として含む。クライアント６２４はクライアント６２２の子である。図６に示されているように、クライアント６１２は、ファイヤウォール６１０の背後にあり、クライアント６２２、６２４は、ファイヤウォール６１０と異なるファイヤウォール６２０の背後にある。
【００６９】
クライアント６１２をクライアント接続マネージャ１０５とデータ・ストリーム発信源１０１に結合するには、外部サイト、例えばブロック６０５内のノード、クライアント接続マネージャ１０５、またはデータ・ストリーム発信源１０１からファイヤウォール６１０の背後にある内部サイトにデータを伝送する必要がある。さらに、クライアント６２２をシステム６００内のクライアント６１２の子として接続するには、一方のファイヤウォールの背後にあるサイト、つまり、ファイヤウォール６１０の背後にあるクライアント６１２と、別のファイヤウォールの背後にある別のサイト、つまり、ファイヤウォール６２０の背後にあるクライアント６２２との間のデータ伝送が必要である。
【００７０】
ファイヤウォールは、入ってきたデータ・パケットをフィルタ処理してから、ファイヤウォールの背後にあるクライアントに中継する機能を持つ。通常、ファイヤウォールは、ファイヤウォールの背後にある内部サイトからファイヤウォールの外にある外部サイトにアクセスできるが、外部サイトからは内部サイトに接続できないように構成されている。ファイヤウォールの機能は、多くのユーザが１つのネットワーク・アドレスを共有できるようにするゲートウェイ・デバイスであるネットワーク・アドレス変換器（ＮＡＴ）により実行することができる。ＮＡＴを使用すると、データ・パケットがファイヤウォールの背後すなわち内側にあるクライアントにより開始された接続の一部でない限り、外部発信源からのデータ・パケットはファイヤウォールの背後すなわち内側にあるクライアントに到達できない。
【００７１】
ファイヤウォールまたはＮＡＴは、どの内部マシンがマスカレード・テーブル(masquerading table)内のどの外部サイトと信号伝送または会話を開始したかを追跡する。ファイヤウォールは、内部サイトとの既存の会話の一部として認識されている外部サイトから届いたデータ・パケットを会話を開始した内部サイトに中継する。ファイヤウォールは、他のすべてのデータ・パケットをブロックし、破棄する。したがって、ファイヤウォールを使用すると、外部サイトから内部サイトとの対話を開始することはできない。
【００７２】
一般に、３種類のファイヤウォールまたはＮＡＴゲートウェイがある。厳格なファイヤウォールでは、ファイヤウォール・ポートを宛先とする着信データ・パケットは、発信源サイト・アドレスと発信源ポートが両方ともマスカレード・テーブル内のエントリに一致しない限り、ブロックされる。ｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型のファイヤウォールは、厳格ではなく、発信源サイト・アドレスがマスカレード・テーブル内のエントリと一致している場合にファイヤウォール・ポートを宛先とする着信データ・パケットを許可し、そのデータ・パケットをファイヤウォール・ボートを開いた内部サイトに中継する。ｐｒｏｍｉｓｃｕｏｕｓ型のファイヤウォールは、これもまた厳格ではなく、ファイヤウォール・ポートを宛先とする着信データ・パケットを許可し、そのデータ・パケットをファイヤウォール・ボートを開いた内部サイトに中継する。
【００７３】
図７は、本発明によりファイヤウォールの内側にある内部サイトと外部サイトとの間のデータ伝送リンクまたは接続を確立するためのプロセス７００を例示する流れ図である。例えば、ファイヤウォールの背後にある内部サイトは、図６に示されているシステム６００内のファイヤウォール６１０の背後にあるクライアント６１２とする。また、例えば、外部サイトは、図６に示されているように、ブロック６０５内のクライアント６１２の親ノード、データ・ストリーム発信源１０１、またはシステム６００内のクライアント接続マネージャ１０５とする。
【００７４】
ファイヤウォールでは、内部サイトは外部サイトへ接続要求を開始することができるが、外部サイトから内部サイトへの接続要求を開始することはできない。プロセス７００により、外部サイトはファイヤウォールの外側にある、ファイヤウォール接続ブローカまたは単にブローカとも呼ばれる中間サイトの助けを借りて内部サイトへの接続要求を開始することができる。初期化ステップ７０２で、内部サイトは、ゲートウェイの背後から、出力（外へ出てゆく）信号をブローカに送信する。ステップ７０３で、プロセス７００は、内部サイトがファイヤウォールの背後にあるかどうか、つまりゲートウェイが本当にファイヤウォールであるかどうか、さらにそのファイヤウォールの性質を検証する。内部サイトがファイヤウォールの背後にない場合、サイトと他の外部サイトとの間のデータ伝送は直接実行することが可能である。したがって、プロセス７００は、終了ステップ７０４に進む。
【００７５】
それに対して、内部サイト、例えばクライアント６１２がファイヤウォールの背後にあるとする。クライアント６１２は、ステップ７１２で、ファイヤウォール６１０のブローカへ開いているポート接続を維持する。外部サイトからクライアント６１２との接続が求められた場合、ステップ７２２でブローカに接続要求が送信される。ステップ７２４で、ブローカは外部サイトに対し、待機中のポートを開いたままにするよう指令する。ステップ７１６で、ブローカはブローカとのファイヤウォール６１０の開いているポート接続を通じて信号をクライアント６１２に伝送し、そのクライアント６１２に出力データ・パケットを外部クライアントの待機中ポートに送信するよう指令する。出力データ・パケットは、ファイヤウォール６１０のポートを開き、ファイヤウォール６１０のマスカレード・テーブルに外部サイトの待機中ポートのエントリを生成する。ステップ７２６で、外部サイトはファイヤウォール６１０で開いているポートを宛先として待機中ポートから着信したデータ・パケットを送信する。ファイヤウォール６１０は、ステップ７１８で、着信データ・パケットの発信源アドレスと発信源ポートとをマスカレード・テーブルのエントリに照合して、データ・パケットをクライアント６１２に中継する。これにより、データ伝送リンクは、外部サイトとファイヤウォール６１０の背後にあるクライアント６１２との間で確立される。
【００７６】
図８Ａは、本発明により２つの異なるファイヤウォールの背後にある２つの内部サイトの間のデータ伝送リンクまたは接続を確立するためのプロセス８００を例示する流れ図である。例えば、ファイヤウォールの背後にある内部サイトは、図６に示されているシステム６００内のファイヤウォール６１０の背後にあるクライアント６１２とする。また、例えば、ファイヤウォールの背後にある他方の内部サイトは、図６に示されているシステム６００内のファイヤウォール６２０の背後にあるクライアント６２２とする。プロセス８００により、異なるファイヤウォールの背後にある２つの内部サイトは、ファイヤウォール接続ブローカまたは単にブローカとも呼ばれるファイヤウォールの外側にある中間サイトの助けを借りて信号伝送接続またはリンクを確立することができる。
【００７７】
そこで、図８Ａを参照すると、初期化ステップ８０２で、ゲートウェイ６１０の背後にあるクライアント６１２は、出力信号をブローカに送信する。同様に、ゲートウェイ６２０の背後にあるクライアント６２２は、ステップ８０４で、出力信号をブローカに送信する。ステップ８０５で、ブローカは、ゲートウェイ６１０と６２０が本当にファイヤウォールであるかどうかを検証し、ファイヤウォールの性質を識別する。次に、プロセス８００はクライアント６１２とクライアント６２２との間のデータ伝送リンクを確立するステップ８０８に進む。ゲートウェイ６１０もゲートウェイ６２０もファイヤウォールでない場合、クライアント６１２、６２２は、データ・パケットを直接お互い宛てに送信し、そこでデータ伝送リンクを確立することができる。ゲートウェイ６１０、ゲートウェイ６２０の双方ではなく、いずれか一方がファイヤウォールの場合、クライアント６１２、６２２は、図７に関して上述したのと類似のプロセスでそれらの間のデータ伝送リンクを確立することができる。
【００７８】
図８Ｂは、本発明により２つのファイヤウォールのうち少なくとも１つがｐｒｏｍｉｓｃｕｏｕｓ型である２つの異なるファイヤウォールの背後にある２つのサイトの間でデータ伝送リンクを確立するプロセス８２０を例示している。このプロセス８２０は、図８Ａに示されているプロセス８００でステップ８０８として使用できる。例えば、プロセス８２０は、図６に示されているように、ファイヤウォール６１０の背後にあるクライアント６１２とファイヤウォール６２０の背後にあるクライアント６２２との間でデータ伝送リンクを確立するという状況において説明される。また、例えば、ファイヤウォール６１０は、ｐｒｏｍｉｓｃｕｏｕｓ型ファイヤウォールである。
【００７９】
ステップ８２１で、クライアント６１２はファイヤウォール６１０のポートを通じて出力データ・パケットをブローカに送信する。ブローカは、ステップ８２２で、ファイヤウォール６１０のアドレスと開いているポートを観察する。ステップ８２３で、クライアント６２２は出力データ・パケットを、クライアント６１２との接続を要求するブローカに送信する。ブローカは、ステップ８２４で、ファイヤウォール６２０のアドレスと開いているポートを観察する。ステップ８２５で、ブローカはファイヤウォール６２０の開いているポートを通じてメッセージをクライアント６２２に送信する。メッセージには、ファイヤウォール６１０のネットワーク・アドレスと開いているポートが含まれる。ステップ８２６で、クライアント６２２はファイヤウォール６２０の新規ポートを開き、ファイヤウォール６１０で開いているポートを宛先として出力メッセージを送信する。ファイヤウォール６１０はｐｒｏｍｉｓｃｕｏｕｓ型なので、開いているポートを宛先とする着信データ・パケットを許可し、データ・パケットをクライアント６１２に中継する。ステップ８２７で、クライアント６１２はファイヤウォール６２０の新規ポートに応答メッセージを送信する。ファイヤウォール６２０は、応答メッセージの発信元アドレスと発信元ポートをマスカレード・テーブル内のエントリとして識別するため、ステップ８２８で、応答メッセージをクライアント６２２に中継し、それにより、ｐｒｏｍｉｓｃｕｏｕｓ型ファイヤウォール６１０の背後にあるクライアント６１２とファイヤウォール６２０の背後にあるクライアント６２２との間のデータ伝送リンクを確立する。
【００８０】
図８Ｂを参照して上述しているプロセス８２０は、ファイヤウォール６１０がｐｒｏｍｉｓｃｕｏｕｓ型である状況において、ファイヤウォール６２０が厳格であるか、ｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型であるか、ｐｒｏｍｉｓｃｕｏｕｓ型であるかに関係なく適用可能である。したがって、ファイヤウォール６１０が厳格であるか、またはｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型であること、およびファイヤウォール６２０がｐｒｏｍｉｓｃｕｏｕｓ型であれば、プロセス８２０へのプロセス反転を使用し、クライアント６１２とクライアント６２２との間でデータ伝送リンクを確立することができる。
【００８１】
図８Ｃは、本発明により２つのファイヤウォールのうち１つがｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型であり、他方のファイヤウォールがｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型かまたは厳格である２つの異なるファイヤウォールの背後にある２つのサイトの間でデータ伝送リンクを確立するプロセス８４０を例示している。プロセス８４０は、図８Ａに示されているプロセス８００でステップ８０８として使用される。例えば、プロセス８４０は、図６に示されているように、ファイヤウォール６１０の背後にあるクライアント６１２とファイヤウォール６２０の背後にあるクライアント６２２との間でデータ伝送リンクを確立するという状況において説明される。また、例えば、ファイヤウォール６１０は、ｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型ファイヤウォールである。
【００８２】
ステップ８４１で、クライアント６１２はファイヤウォール６１０のポートを通じて出力データ・パケットをブローカに送信する。ブローカは、ステップ８４２で、ファイヤウォール６１０のアドレスと開いているポートを観察する。ステップ８４３で、クライアント６２２はクライアント６１２との接続を要求するブローカに出力データ・パケットを送信する。ブローカは、ステップ８４４で、ファイヤウォール６２０のアドレスと開いているポートを観察する。ステップ８４５で、ブローカはファイヤウォール６１０の開いているポートを通じてメッセージをクライアント６１２に送信する。このメッセージは指令となり、クライアント６１２はファイヤウォール６１０の開いているポートを通じて、ファイヤウォール６２０のポートにプライミング・パケットとも呼ばれる出力データ・パケットを送信する。ステップ８４６で、クライアント６１２は、ファイヤウォール６２０のポートを宛先とするプライミング・データ・パケットを送信し、ファイヤウォール６１０により、ファイヤウォール６２０のネットワーク・アドレスがマスカレード・テーブルに登録される。プライミング・データ・パケットはファイヤウォールによりブロックされ、破棄される。ステップ８４７で、クライアント６２２は、ファイヤウォール６１０上で開いているポートを宛先としてファイヤウォール６２０の新規ポートを通じて出力データ・パケットを送信する。ファイヤウォール６１０はｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型であり、ファイヤウォール６２０を開いているポートでのマスカレード・テーブル内のエントリとして識別するため、ファイヤウォール６１０はデータ・パケットをクライアント６１２に中継する。ステップ８４８で、クライアント６１２はファイヤウォール６２０の新規ポートに応答メッセージを送信する。ファイヤウォール６２０は、応答メッセージの発信元アドレスと発信元ポートをマスカレード・テーブル内のエントリとして識別するため、応答メッセージをクライアント６２２に中継し、それにより、ｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型ファイヤウォール６１０の背後にあるクライアント６１２とファイヤウォール６２０の背後にあるクライアント６２２との間のデータ伝送リンクを確立する。
【００８３】
図８Ｃを参照して上述しているプロセス８４０は、ファイヤウォール６１０がｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型である状況において、ファイヤウォール６２０が厳格であるか、ｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型であるか、ｐｒｏｍｉｓｃｕｏｕｓ型であるかに関係なく適用可能である。したがって、ファイヤウォール６１０が厳格であり、ファイヤウォール６２０がｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型であれば、プロセス８４０へのプロセス反転を使用し、クライアント６１２とクライアント６２２との間でデータ伝送リンクを確立することができる。
【００８４】
図８Ｃを参照して上述したプロセス８４０は、さらに、ファイヤウォール６１０がｐｒｏｍｉｓｃｕｏｕｓ型ファイヤウォールの場合にも適用可能であることに注意されたい。手短に言うと、プロセス８４０は、２つのファイヤウォールのうち少なくとも１つが厳格でない、つまり、ｐｒｏｍｉｓｃｕｏｕｓまたはｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型である、２つの異なるファイヤウォールの背後にある２つの内部サイトの間にデータ伝送リンクを確立することができるということである。その一方で、図８Ｂを参照して上述したプロセス８２０は、２つのファイヤウォールのうち少なくとも１つはｐｒｏｍｉｓｃｕｏｕｓ型である、２つの異なるファイヤウォールの背後にある２つの内部サイトの間にデータ伝送リンクを確立することができる。
【００８５】
図９は、本発明によりゲートウェイの性質を識別するプロセス９００を例示している。特に、プロセス９００は、ゲートウェイ、例えばＮＡＴゲートウェイがファイヤウォールであるかどうかを検証し、それがファイヤウォールであるとすればどのような種類のファイヤウォールであるかを識別する。例えば、プロセス９００は、クライアント６１２が図７を参照して上述したプロセス７００のファイヤウォールの背後にあるかどうかを検証するステップ７０３として機能することができる。また、例えば、プロセス９００は、図８Ａを参照して上述したプロセス８００の、ゲートウェイ６１０、６２０が本当にファイヤウォールであるかどうか、およびファイヤウォールの性質を検証するステップ８０５として使用することができる。しかし、これらのアプリケーションは、本発明の範囲において制限する意図はない。本発明によるプロセス９００は、ゲートウェイ、ＮＡＴデバイス、またはファイヤウォールの性質を識別するあらゆるアプリケーションに適用可能である。プロセス９００は、プロセス９００の説明時に識別を目的としてブローカＡとブローカＢと呼ぶ２つの外部ホストの助けを借りて実現される。ブローカＡ、Ｂはそれぞれ、ネットワーク・アドレスを持ち、複数のポートを備える。
【００８６】
ゲートウェイの性質を識別するプロセス９００は、ステップ９０２から始まり、そこでゲートウェイの背後にある内部サイトがブローカＡの第１のポートに出力データ・パケットを送信する。データ・パケットには、内部サイトのポートに関する情報が含まれる。出力データ・パケットがゲートウェイのポートを開く。ゲートウェイがファイヤウォールであれば、ブローカＡの第１のポートとブローカＡのネットワーク・アドレスを２つのエントリとして含むマスカレード・テーブルが生成される。ステップ９０４で、ブローカＡは、内部サイトのポートを直接宛先として応答パケットを送信する。ステップ９０５で、プロセス９００は、内部サイトのポートを直接宛先としてブローカＡから応答パケットを受信するかどうかをチェックする。内部サイトが応答パケットを受信した場合、プロセス９００は、ステップ９０６で、ゲートウェイをファイヤウォールではないと識別する。内部サイトがそのポートを直接宛先とする応答パケットを受信した場合、プロセス９００は、ステップ９０８で、ゲートウェイをファイヤウォールであると識別する。
【００８７】
ステップ９１２で、ブローカＡは、ブローカＡの第１のポートからゲートウェイのポートに第１のデータ・パケットを送信する。ゲートウェイのポートでは、ブローカＡの第１のポートをそのマスカレード・テーブル内のエントリとして識別しなければならない。ステップ９１５で、プロセス９００は、内部サイトがブローカＡの第１のポートから第１のデータ・パケットを受信するかどうかをチェックする。内部サイトが第１のデータ・パケットを受信しない場合、プロセス９００は、ゲートウェイを、ステップ９０８ですべてのユーザ・データグラム・プロトコル（ＵＤＰ）データ伝送をブロックするものと識別する。このようなゲートウェイの背後にあるサイトは、本発明により、データ伝送システム、例えば図１または６に示されているシステム１００または６００のノードとしてふさわしくない。
【００８８】
内部サイトがブローカＡの第１のポートから第１のデータ・パケットを受信すると、プロセス９００は、ステップ９２２で、ブローカＡの第２のポートから第２のデータ・パケットをゲートウェイのポートに送信する。ステップ９２５で、プロセス９００は、内部サイトが第２のデータ・パケットを受信するかどうかをチェックする。内部サイトが第２のデータ・パケットを受信しない場合、プロセス９００は、ステップ９２６で、ゲートウェイを厳格なファイヤウォールであると識別する。
【００８９】
内部サイトがブローカＡの第２のポートから第２のデータ・パケットを受信すると、プロセス９００は、ステップ９３２で、ブローカＡに指令し、メッセージをブローカＢに送信させる。ブローカＢへのメッセージは、ゲートウェイのネットワーク・アドレスやゲートウェイのポート・アドレスを含む。ステップ９３４で、ブローカＢは、ブローカＢのポートから第３のデータ・パケットをゲートウェイのポートに送信する。ステップ９３５で、プロセス９００は、内部サイトが第３のデータ・パケットを受信するかどうかをチェックする。内部サイトが第２のデータ・パケットを受信しない場合、プロセス９００は、ステップ９３６で、ゲートウェイをｓｅｍｉ−ｐｒｏｍｉｓｃｕｏｕｓ型ファイヤウォールであると識別する。内部サイトが第３のデータ・パケットを受信した場合、プロセス９００は、ステップ９３８で、ゲートウェイをｐｒｏｍｉｓｃｕｏｕｓ型ファイヤウォールであると識別する。
【００９０】
本発明によるゲートウェイの性質を識別するプロセス９００は、図９を参照して上述したものに限られないことは理解されるであろう。上述したプロセス９００にはゲートウェイの性質を識別する結果を得られる様々な修正を加えることができる。例えば、内部サイトのポートを直接宛先として応答パケットを送信するステップ９０４、ブローカＡの第１のポートから第１のデータ・パケットを送信するステップ９１２、ブローカＡの第２のポートから第２のデータ・パケットを送信するステップ９２２、およびブローカＢのポートから第３のパケットを送信するステップ９３４は、図９を参照して上述した順序で実行するように制限されているわけではない。これら４つのデータ・パケットは、任意の順序で送信することができ、しかもプロセス９００は、内部サイトがもしあれば４つのデータ・パケットのうちのどれかを受信すると、ゲートウェイの性質を識別することができる。さらに、内部サイトのポートを直接宛先とする応答パケットは、ブローカＡからの送信に限られない。ゲートウェイがファイヤウォールであるかどうかを識別するため内部サイトのポートを直接宛先とする応答パケットは、ブローカＢまたは他の外部サイトから送信することもできる。さらに、ブローカＡとブローカＢの両方を使用する必要があるのは、ゲートウェイがｐｒｏｍｉｓｃｕｏｕｓ型ファイヤウォールであるかどうかを識別することが求められる場合に限られる。ゲートウェイが厳格なファイヤウォールであるか厳格でないファイヤウォールであるかを識別するアプリケーションでは、１つのブローカで十分である。
【００９１】
これまでのことで、マルチキャスティングまたはカスケード・ブロードキャストを実行するデータ伝送システムが実現されたことは理解されるであろう。本発明によるデータ伝送システムは、データ・ストリーム発信源に結合された階層ツリー構造を含む。ツリー構造のルート・ノードは、データ・ストリーム発信源からデータ・ストリームを受信して、データ・ストリームをその子に反射させ、次々に、データ・ストリームをそれぞれの子に中継してゆく。データ伝送システムでは、ツリー構造内のノードのアップリンク伝送容量を利用してデータ・ストリームをブロードキャストすることにより、データ・ストリーム発信源の負荷を低減し、従来技術のデータ伝送システムと比べてデータ・ストリーム発信源からデータ・ストリームをより多くのクライアントに供給することができる。
【００９２】
このようなデータ伝送システムを構築し管理するプロセスが実現されていることも理解されるであろう。本発明によりクライアントを階層構造データ伝送システムに接続するプロセスは、データ伝送容量、ファイヤウォール互換性、地理的位置、ネットワーク互換性などの基準に基づいて、データ伝送システムへの接続を要求するクライアントをシステム内のある位置に導くことも含む。このプロセスにより、安定しかつ効率的なデータ伝送またはブロードキャスト・システムが形成される。また、このプロセスは、システム内のクライアントにより受信されたデータ・ストリームの品質をも監視し、システム構造を動的に調整してデータ伝送の品質を高水準に保つ。
【００９３】
さらに、ファイヤウォールの背後にあるネットワーク・サイトにデータを伝送し、また異なるファイヤウォールの背後にある２つのネットワーク・サイトの間でデータの伝送を行うプロセスが実現されていることも理解されるであろう。本発明によるプロセスでは、外部サイトを使用して、ファイヤウォールの背後にいるユーザ向けにデータ伝送リンクを確立する際の初期接続要求を中継する。また、このプロセスでは、外部サイトを使用して、データ・パケットを内部サイトに送信し、ファイヤウォールの性質を識別する。
【００９４】
図面を参照しながら本発明の様々な実施形態について説明したが、これらは、本発明の範囲を制限することを意図せず、付属の請求項で規定される。当業者であれば、主題の出願の明細書を閲覧することで、上述した実施形態の様々な修正を実施することができる。これらの修正は、本発明の範囲および精神の範囲内にある。
【図面の簡単な説明】
【００９５】
【図１】本発明によるデータ伝送システムを例示する概略図である。
【図２】本発明による階層型データ伝送システムを確立するプロセスを例示するブロック図である。
【図３】本発明による階層構造型マルチキャスティング・ネットワーク・システムを確立する経路指定プロセスを例示する流れ図である。
【図４】本発明によるデータ伝送システムのデータ伝送品質を維持するプロセスを例示するブロック図である。
【図５】本発明によるクライアント再接続プロセスを例示する概略図である。
【図６】本発明によるブロードキャスト・システムを示す概略図である。
【図７】本発明によるファイヤウォールの背後にある内部ノードと外部ノードとの間のデータ伝送リンクを確立するプロセスを例示するブロック図である。
【図８Ａ】本発明による２つの異なるファイヤウォールの背後にある２つのノードの間のデータ伝送リンクを確立するプロセスを例示するブロック図である。
【図８Ｂ】本発明による２つの異なるファイヤウォールの背後にある２つのノードの間のデータ伝送リンクを確立するプロセスを例示するブロック図である。
【図８Ｃ】本発明による２つの異なるファイヤウォールの背後にある２つのノードの間のデータ伝送リンクを確立するプロセスを例示するブロック図である。
【図９】本発明によるファイヤウォールとその性質を識別するプロセスを例示するブロック図である。
【図１】
2005508121.tif 000003
【図２】
2005508121.tif 000004
【図３】
2005508121.tif 000005
【図４】
2005508121.tif 000006
【図５】
2005508121.tif 000007
【図６】
2005508121.tif 000008
【図７】
2005508121.tif 000009
【図８Ａ】
2005508121.tif 000010
【図８Ｂ】
2005508121.tif 000011
【図８Ｃ】
2005508121.tif 000012
【図９】
2005508121.tif 000013
【国際公開パンフレット】
2005508121.tif 000014
2005508121.tif 000015
2005508121.tif 000016
2005508121.tif 000017
2005508121.tif 000018
2005508121.tif 000019
2005508121.tif 000020
2005508121.tif 000021
2005508121.tif 000022
2005508121.tif 000023
2005508121.tif 000024
2005508121.tif 000025
2005508121.tif 000026
2005508121.tif 000027
2005508121.tif 000028
2005508121.tif 000029
2005508121.tif 000030
2005508121.tif 000031
2005508121.tif 000032
2005508121.tif 000033
2005508121.tif 000034
2005508121.tif 000035
2005508121.tif 000036
2005508121.tif 000037
2005508121.tif 000038
2005508121.tif 000039
2005508121.tif 000040
2005508121.tif 000041
2005508121.tif 000042
2005508121.tif 000043
2005508121.tif 000044
2005508121.tif 000045
2005508121.tif 000046
2005508121.tif 000047
2005508121.tif 000048
2005508121.tif 000049
2005508121.tif 000050
2005508121.tif 000051
2005508121.tif 000052
2005508121.tif 000053
2005508121.tif 000054
2005508121.tif 000055
2005508121.tif 000056
2005508121.tif 000057
2005508121.tif 000058
2005508121.tif 000059
2005508121.tif 000060
2005508121.tif 000061
2005508121.tif 000062
2005508121.tif 000063
2005508121.tif 000064
2005508121.tif 000065
2005508121.tif 000066
2005508121.tif 000067
2005508121.tif 000068
2005508121.tif 000069
2005508121.tif 000070
2005508121.tif 000071
2005508121.tif 000072
2005508121.tif 000073
2005508121.tif 000074
2005508121.tif 000075
2005508121.tif 000076
2005508121.tif 000077
2005508121.tif 000078
2005508121.tif 000079
2005508121.tif 000080
2005508121.tif 000081
2005508121.tif 000082
2005508121.tif 000083
2005508121.tif 000084
2005508121.tif 000085
2005508121.tif 000086
【国際公開パンフレット（コレクトバージョン）】
2005508121.tif 000087
2005508121.tif 000088
【国際公開パンフレット（コレクトバージョン）】
2005508121.tif 000089
2005508121.tif 000090
【国際調査報告】
2005508121.tif 000091
2005508121.tif 000092