(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0006】
ユニキャストクライアント要求をマルチキャストクライアント要求の中で送信することについての現状の必要性を考慮して、様々な例示的実施形態の簡潔な概要が提示される。様々な例示的実施形態のいくつかの態様を強調および紹介することを意図しているが、本発明の範囲を限定するものではない、ある種の単純化および省略が、以下の概要の中でなされる可能性がある。当業者が本発明の概念をなし使用できるようにすることに適した、好ましい例示的実施形態の詳細な説明は、後述される。
【課題を解決するための手段】
【0007】
第1の例示的実施形態によれば、ユニキャストクライアント要求をマルチキャストクライアント要求に変換する方法であって、ユニキャストクライアント要求を受信するステップと、ユニキャストクライアント要求宛先IPアドレスおよびユニキャストクライアント要求宛先ポートに対応するマルチキャスト宛先インターネットプロトコル(IP)アドレスを含むマルチキャストレコードに、ユニキャストクライアント要求宛先IPアドレスおよびユニキャスト要求宛先ポートをマッピングするステップと、ユニキャストクライアント要求宛先IPアドレスおよびユニキャストクライアント要求宛先ポートに対応するマルチキャスト宛先IPアドレスを使用して、受信したユニキャストクライアント要求を複数の宛先サーバに反映させるマルチキャストクライアント要求を送信するステップと、を含む方法が、提供される。
【0008】
第1の例示的実施形態によれば、ユニキャストクライアント要求宛先IPアドレスおよびユニキャストクライアント要求宛先ポートに対応する、対応するマルチキャスト宛先IPアドレスは、ユニキャストクライアント要求宛先IPアドレスおよびユニキャストクライアント要求宛先ポートに基づいて選択される。
【0009】
第1の例示的実施形態によれば、送信するステップは、マルチキャストレコードにアクセスすることにより、複数の宛先サーバに対応し、複数の宛先サーバの宛先IPアドレスに対応する、複数の送信インターフェースを決定するステップと、マルチキャストクライアント要求を複数の送信インターフェースを介して送るステップと、を含む。第1の例示的実施形態によれば、方法は、新しい宛先サーバに対応する送信インターフェースが、マルチキャストレコードに追加されるように、参加要求を新しい宛先サーバから受信するステップをさらに含む。
【0010】
第1の例示的実施形態によれば、方法は、マルチキャストクライアント要求の受信に先立って決定される負荷分散手順に基づいて所定数の複数の宛先サーバによりマルチキャストクライアント要求に応答するステップをさらに含む。
【0011】
第1の例示的実施形態によれば、方法は、マルチキャストクライアント要求の受信に続いて決定される負荷分散手順に基づいて所定数の複数の宛先サーバによりマルチキャストクライアント要求に応答するステップをさらに含む。
【0012】
第2の例示的実施形態によれば、ユニキャストクライアント要求をマルチキャストクライアント要求に変換するためのシステムであって、複数の宛先サーバと、ユニキャストクライアント要求を受信するように構成され、ユニキャストクライアント要求宛先IPアドレスおよびユニキャストクライアント要求宛先ポートを、マルチキャスト宛先IPアドレスを含むマルチキャストレコードにマッピングするようにさらに構成され、さらに、ユニキャストクライアント要求宛先IPアドレスおよびユニキャストクライアント要求宛先ポートに対応するマルチキャスト宛先IPアドレスを使用して、受信したユニキャストクライアント要求を複数の宛先サーバに反映させるマルチキャストクライアント要求を送信するようにさらに構成されたルータと、を含むシステムが提供される。
【0013】
第2の例示的実施形態によれば、ユニキャストクライアント要求宛先IPアドレスおよびユニキャストクライアント要求宛先ポートに対応する対応するマルチキャスト宛先IPアドレスは、ユニキャストクライアント要求宛先IPアドレスおよびユニキャストクライアント要求宛先ポートに基づいて選択される。
【0014】
第2の例示的実施形態によれば、ルータは、マルチキャストレコードにアクセスすることにより、複数の宛先サーバに対応し、複数の宛先サーバの宛先IPアドレスに対応する、複数の送信インターフェースを決定するようにさらに構成され、かつ、複数の送信インターフェースを介してマルチキャストクライアント要求を送るようにさらに構成される。
【0015】
第2の例示的実施形態によれば、ルータは、新しい宛先サーバに対応する送信インターフェースが、マルチキャストレコードに追加されるように、新しい宛先サーバからの参加要求を受信するようにさらに構成される。
【0016】
第2の例示的実施形態によれば、複数の宛先サーバは、マルチキャストクライアント要求の受信に先立って決定される負荷分散手順に基づいて、所定数の複数の宛先サーバによりマルチキャストクライアント要求に応答するように構成される。
【0017】
またさらに、第2の例示的実施形態によれば、複数の宛先サーバは、マルチキャストクライアント要求の受信に続いて決定される負荷分散手順に基づいて、所定数の複数の宛先サーバによりマルチキャストクライアント要求に応答するように構成される。
【0018】
第2の例示的実施形態によれば、システムは、インターネットプロトコルテレビシステムを含み、さらにテレビジョン、ビデオおよびオーディオコンテンツを配信するように構成される。
【0019】
第3の例示的実施形態によれば、ユニキャストクライアント要求をマルチキャストクライアント要求に変換するためのシステムであって、ユニキャストクライアント要求を受信するように構成され、複数の宛先サーバを含み、ユニキャストクライアント要求宛先IPアドレスおよびユニキャストクライアント要求宛先ポートを、マルチキャスト宛先IPアドレスを含み、かつ1つまたは複数のマルチキャスト宛先IPアドレスの少なくとも1つが、ユニキャストクライアント要求宛先IPアドレスおよびユニキャストクライアント要求宛先ポートに対応する、マルチキャストレコードにマッピングするようにさらに構成され、さらに、ユニキャストクライアント要求宛先IPアドレスおよびユニキャストクライアント要求宛先ポートに対応するマルチキャスト宛先IPアドレスを使用して、受信したユニキャストクライアント要求を複数の宛先サーバに反映させるマルチキャストクライアント要求を送信するようにさらに構成されたルータを含む、システムが提供される。
【0020】
第3の例示的実施形態によれば、複数の宛先サーバは、マルチキャストクライアント要求の受信に先立って決定される負荷分散手順に基づいて、所定数の複数の宛先サーバによりマルチキャストクライアント要求に応答するように構成される。
【0021】
第3の例示的実施形態によれば、複数の宛先サーバは、マルチキャストクライアント要求の受信に続いて決定される負荷分散手順に基づいて、所定数の複数の宛先サーバによりマルチキャストクライアント要求に応答するように構成される。
【0022】
またさらに、第3の例示的実施形態によれば、システムは:インターネットプロトコルテレビシステムを含み、さらに、テレビジョン、ビデオおよびオーディオコンテンツをブロードキャストするように構成される。
【0023】
第3の例示的実施形態によれば、ルータは、マルチキャストレコードにアクセスすることにより、複数の宛先サーバに対応し、複数の宛先サーバの宛先IPアドレスに対応する複数の送信インターフェースを決定するようにさらに構成され、かつ、マルチキャストクライアント要求を複数の送信インターフェースを介して送るようにさらに構成される。
【0024】
第3の例示的実施形態によれば、ルータは、新しい宛先サーバに対応する送信インターフェースが、マルチキャストレコードに追加されるように、参加要求を新しい宛先サーバから受信するようにさらに構成される。
【0025】
本発明の新規の特徴および利点は、添付の図面と関連付けて読むことにより、後述の好ましい実施形態の詳細な説明を参照することにより最もよく理解されるであろう。
【発明を実施するための形態】
【0027】
好ましい実施形態の様々な特徴がここで、同一の部品が同様の参照文字で識別される、図を参照して説明される。現時点で想到される本発明の最良の実施形態についての以下の説明は、限定する意味でなされるものではなく、単に本発明の一般的原理を説明する目的で提供される。
【0028】
当業者に知られているように、ネットワーク内のクライアントおよび宛先サーバは、ユニキャスト送信モードとして知られているモード中で通信することが多い。ユニキャスト送信モードでは、クライアントは、1対1で宛先サーバにメッセージを送る、すなわち、クライアントサーバAは、宛先サーバBに要求を送り、宛先サーバBは、(クライアントAに)応答するが、通信リンクは、複雑ではあるかも知れないが、ポイントツウポイントである。「複雑性」は、クライアント要求が伝搬することができるが、ポイントAからポイントBへ(およびポイントBからポイントAへ)のみ依然として進む、異なる経路が存在する可能性があることから生起することになる。
【0029】
ここで、
図1を参照すると、
ユニキャストクライアント要求(クライアント要求)2を単一の宛先サーバに送信するためのユニキャスト通信ネットワーク(ユニキャストネットワーク)50を説明するブロック図が示される。ユニキャストネットワーク50は、クライアント1、ルータ3および宛先サーバ8を含む。ルータ3は、ルータ入口4、スイッチファブリック6、およびルータ出口7をさらに含む。当業者には理解できるように、通信システム50は、2つ以上のクライアントサーバ1、スイッチファブリック6、ルータ入口4および宛先サーバ8をさらに含むことができる。
【0030】
ユニキャストネットワーク50内で通信する場合、
ユニキャストクライアントRTCP要求(クライアント要求)2は、ユニキャストパケットとして宛先サーバ8へルータ入口4およびスイッチファブリック6を通じて送られる。当業者には理解できるように、
図1は、通常、多くの他の通信装置が含まれている、ユニキャストネットワーク50の単純化された概念図である。クライアント要求2は、ホップバイホップで宛先サーバ8に転送される。次いで、宛先サーバ8は、クライアント要求2を処理し、クライアント1に応答を返す。上記に説明したように、この単純なクライアント−サーバアーキテクチャに関連する問題は、全てのクライアント要求が、単一の宛先サーバ8で終結することである。
【0031】
当業者には理解できるように、ある種のアプリケーションは、クライアント要求が複数の宛先サーバに送られることを要求する。クライアント要求を複数のサーバに転送する1つの理由は、負荷分散である。負荷分散は、資源利用率を最大化し、スループットを高め、かつ応答時間を減少させる(できれば最小化する)ために、2つ以上のコンピュータ、ネットワークリンク、CPU、ハード装置、または他の資源間に仕事を分散させるための技術である。単一の構成要素ではなく、複数の構成要素を負荷分散と共に使用することはまた、(各構成要素が、複数の構成要素の平均で、そうでない場合より使われることが少ないので)信頼性を高めることができる。
【0032】
複数のサーバにクライアント要求を転送する良い理由の別の例は、冗長性である。クライアント要求が冗長な宛先サーバ8に送られる場合、クライアント1は、本質的に2倍の応答の確率を有する。当業者に知られているように、クライアント要求2を複数の宛先サーバ8に転送するのには別の理由がある。しかし、当業者にはさらに理解できるように、典型的なユニキャスト転送では、要求を複数の宛先サーバ8に送ることはできない。したがって、例示的実施形態によれば、ユニキャストクライアント要求を複数の宛先サーバ8に送ることを容易にするシステムおよび方法が、本明細書において提示される。
【0033】
図2では、例示的実施形態によるユニキャストクライアント要求2をマルチキャストクライアント要求として2つ以上の宛先サーバ8に送信するための通信ネットワークを例示する。
図2に示すように、ネットワーク100は、クライアント1a−n、マルチキャストルータ11および宛先サーバ8a−nを含む。マルチキャストルータ11は、ルータ入口4、スイッチファブリック10、
マルチキャストレコード12(スイッチファブリック10の一部)、およびルータ出口7を含む。クライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7または宛先サーバ8のうちの任意の1つまたは複数はまた、好ましくは、例えば、いくつかの異なる製造業者のいずれか1つによって製造されたコンピュータなどの、1つまたは複数のハードウェア構成要素を使用して実装され、あるいは特化された通信機器として実装され得る。クライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7または宛先サーバ8のうちの任意の1つまたは複数は、マイクロプロセッサを含むことができる。マイクロプロセッサは、例えば、任意の形式のマイクロプロセッサまたはマイクロコントローラ、ディジタル信号処理(DSP)プロセッサ、特定用途向け集積回路(ASIC)、プログラマブルリードオンリーメモリ(PROM)、あるいはこれらの任意の組合せなど、任意の形式のプロセッサであり得る。さらに、クライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7または宛先サーバ8のうちの任意の1つまたは複数は、さらに後述のように、スイッチファブリック10の機能の1つまたは複数を実行するための命令を含むソフトウェアを含んだコンピュータ読み取り可能な媒体を読むために個々のマイクロプロセッサを使用することができる。
【0034】
クライアント1、ルータ入口4、ルータ出口7、スイッチファブリック10、または宛先サーバ8の各々はまた、任意の形式のコンピュータメモリあるいは、例えば、リードオンリーメモリ(ROM)、コンパクトディスクリードオンリーメモリ(CDROM)、電気光メモリ、磁気光メモリ、消去可能プログラマブルリードオンリーメモリ(EPROM)、電気的に消去可能なプログラマブルリードオンリーメモリ(EEPROM)、などといった、クライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7または宛先サーバ8の各々に内部的にまたは外付けのいずれかに置かれた任意の他の形式の電子的記憶媒体を含むことができる。例示的実施形態によれば、それぞれのメモリは、例えば、任意の1つまたは複数のクライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7、または宛先サーバ8のうちの任意の1つまたは複数用の動作プログラムを含むことができる。後述の説明からわかるように、メモリは、例えば、コンピュータプログラミングについての当業者に知られている従来技術を使用してプログラムすることができる。例えば、コンピュータプログラムのステップを実行するための実際のソースコードまたはオブジェクトコードは、メモリ内に記憶することができる。クライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7、または宛先サーバ8の各々はまた、1つまたは複数のデータベースを含むことができる。データベースは、その中に記憶された電子的情報を記憶、維持管理およびアクセスできるようにするための任意の形式のコンピュータデータベースであり得る。
【0035】
例示的実施形態によれば、スイッチファブリック10は、単一のユニキャスト送信からマルチキャスト送信を容易にするまたは生成する
マルチキャストレコード12を含むように構成される。スイッチファブリック10は、上記に説明したように、コンピュータ読み取り可能媒体、コンピュータメモリ、電気的記憶媒体、光記憶媒体、磁気記憶媒体、生物学的記憶媒体中、またはコンピュータ、マイクロプロセッサ内、などに
マルチキャストレコード12を記憶することができる。
図3により詳細に示された
マルチキャストレコード12は、
ユニキャストクライアント要求2の宛先ユニキャストIPアドレス/宛先UDPまたはTCPポートを、同様に様々なIPアドレスおよびポートを含むマルチキャストレコードにマッピングする。スイッチファブリック10は次いで、マルチキャストレコードに合わすそれぞれに1つずつ、1つまたは複数の新しい要求を生成し、かつ元の要求をクライアントサーバ1からルータ出口7を通じて適切なマルチキャスト宛先サーバ8a−8nに再送信する。
【0036】
例示的実施形態によれば、スイッチファブリック10は、クライアントのユニキャスト要求2をルータ入口4を通じて受信し、次いで、これを
マルチキャストクライアント要求14に変換する。スイッチファブリック10は、好ましくはスイッチファブリック10のメモリ内に記憶された、宛先ユニキャストIPアドレスおよび/または宛先UDPもしくはTCPポートをマルチキャストレコードにマッピングする(または合わせる)ことができる、
マルチキャストレコード12を含む。
マルチキャストレコード12は、クライアント要求2を
マルチキャストクライアント要求14として受信する能力がある関心の宛先サーバ8a−8nの一覧を含む。さらなる例示的実施形態によれば、宛先サーバ8は、1つまたは複数の他の宛先サーバ8に参加するためにインターネットグループマルチキャストプロトコル(IGMP)参加を利用して、
マルチキャストクライアント要求14を受信する能力のあるグループを形成することができる。
【0037】
マルチキャストレコード12の生成は、ネットワーク100の所有者/事業者によって達成することができ、または別なパーティによって生成され、スイッチファブリック10内に記憶することができる。クライアント要求2の宛先サーバ8a−8nへのマッピングは、複数の異なる方法のいずれか1つにより達成され得る。例示的実施形態によれば、例えば、第1のグループの例えば、クライアント1a、1bおよび1cからの任意のクライアント要求2は、第1のグループの宛先サーバ8に送られ得る。これと同一の規則に従って、第2のグループのクライアント1d、1eおよび1fからのクライアント要求2は、第2のグループのマルチキャスト宛先サーバ8に送られ得る。第1および第2のグループのマルチキャスト宛先サーバ8は、重ね合わせる、または完全に区分することができる
したがって、この例示的実施形態によれば、クライアント1a、1b、または1cからの任意のクライアント要求2は、宛先サーバ8a、8b、および8cに
マルチキャストクライアント要求14a、14b、および14cとしてマルチキャストされ得る。さらに、クライアント1d、1e、または1fからの任意のクライアント要求2は、宛先サーバ8d、8e、および8fに
マルチキャストクライアント要求14d、14e、および14fとしてマルチキャストされ得る。この例示的実施形態に対応する別の例によれば、クライアント1gおよび1hからのクライアント要求2は、宛先サーバ8b、8d、および8jを含む宛先サーバグループにマルチキャストされ得る。
【0038】
さらなる例示的実施形態によれば、システム100のルータ11は、マルチキャストレコード12にアクセスすることによって、複数の宛先サーバ8a−nに対応する複数の送信インターフェースを決定するようにさらに構成され得る。送信インターフェースは、複数の宛先サーバ8a−nの宛先IPアドレスに対応する。上記決定に引き続いて、ルータ11は、例示的実施形態によれば、複数の送信インターフェースを介してマルチキャストクライアント要求を送るようにまたさらに構成される。
【0039】
別の例示的実施形態によれば、ルータ11は、新しい宛先サーバ8に対応する送信インターフェースが、マルチキャストレコード12に追加されるように、参加要求を新しい宛先サーバ8から受信するようにさらに構成される。
【0040】
図4は、例示的実施形態によるユニキャストクライアント要求2を宛先サーバグループ8a−8nにマッピングする方法を示す。
【0041】
例示的実施形態によれば、方法400は、ステップ402での、スイッチファブリック10によるユニキャストクライアント要求2の受信と共に始まる。クライアント要求2の受信に続いて、判断ステップ404において、スイッチファブリック10は、適当なマルチキャストレコードが存在するかどうかを決定するために
マルチキャストレコード12を調べる。適当なマルチキャストレコードが存在しない場合(判断ステップ404からの「No」の経路)、方法400は、ステップ406に進み、ユニキャストの形でクライアント要求2を適当な宛先サーバ8への再送信に向かう。
【0042】
しかしながら、適当なマルチキャストレコードが存在する場合、方法400は、スイッチファブリック10に、新しい
マルチキャストクライアント要求14を
マルチキャストレコード12中に掲載された指定宛先サーバ8に送信させる(ステップ408)。一例として、また
図3を参照して、第1のクライアント要求2aが宛先アドレス3.3.3.3を含むことを仮定してみよう。
図3に示されるように
マルチキャストレコード12中にこのクライアント要求2aに対するマルチキャスト宛先レコードがないことから、スイッチファブリック10は、単純に、宛先アドレス3.3.3.3を持つ宛先サーバ8に第1のクライアント要求2aを再送信する。第2の例では、第2のクライアント要求2bは、宛先アドレス1.1.1.1、宛先ポート1234を含む。スイッチファブリック10は、
マルチキャストレコード12を調べ、この特定のクライアント要求2bに対するマルチキャストレコードがあると決定し、かつ、クライアント要求2bを新しいマルチキャストクライアント要求14として、
図3に示される234.1.1.1の宛先アドレスに対応する宛先サーバ8に転送する。
【0043】
さらなる例示的実施形態によれば、方法400中の送信ステップ408は、マルチキャストレコード12にアクセスすることにより、複数の宛先サーバ8a−nに対応し、複数の宛先サーバの宛先IPアドレスに対応する、複数の送信インターフェースを決定するステップを含む。決定ステップに引き続き、方法400は、マルチキャストクライアント要求14を複数の送信インターフェースを介して送る。
【0044】
別の例示的実施形態によれば、方法400は、新しい宛先サーバ8に対応する送信インターフェースが、マルチキャストレコード12に追加されるように、参加要求を新しい宛先サーバ8から受信するステップをさらに含む。
【0045】
したがって、例示的実施形態によれば、クライアント1がクライアント要求2を送信すると、これはスイッチファブリック10に到着することになる。そこで、クライアント要求2の宛先アドレスおよび宛先ポートに基づく検索を実行する。この検索に成功すると、当該実体は、マルチキャストレコードを有することになる。そこで、クライアントのユニキャスト要求を複製するためにマルチキャストレコードを使用することになる。この複製は、マルチキャストレコード中の全てのサーバが、
マルチキャストクライアント要求14としてクライアント要求2を受信する結果をもたらす。
【0046】
上記に簡潔に説明したように、例示的実施形態によれば、マルチキャストルータ11およびシステム100(同様にマルチキャストルータ13およびシステム200、以下で詳細に説明される)は、クライアント要求の負荷分散を提供しかつ十分に損失のない冗長性を提供するために使用され得る。負荷分散は、
マルチキャストクライアント要求14が、各宛先サーバ8a−nにより受信されたとき、宛先サーバ8a−nの1つのみが、
マルチキャストクライアント要求14に応答するように、相互に通信する能力を宛先サーバ8a−nに提供することにより達成され得る。このように、データ送信作業を分割することにより、クライアント要求が実行される確率が、高まり、かつクライアント要求損失の確率が、減少する。ネットワークの全体的な有効性が、高まることになる。
【0047】
ここで、
図5を参照し、かつ、さらなる例示的実施形態によれば、マルチキャストルータ13は、その中に内蔵された複数のサーバ8a−nを有することができる。
図5に示されるように、マルチキャストルータ13は、クライアント要求2中の宛先アドレスおよび宛先ポートをマルチキャストレコード12にマッピングする
マルチキャストレコード12を用いて事前にプログラムされ得るスイッチファブリック10を含む。マルチキャストレコード12自体は、内蔵されたサーバ8a−nをもたらす送信インターフェースの一覧を使ってプログラムされる。例示的実施形態によれば、宛先サーバ8a−nは、マルチキャストルータ13内のラインカードの形を取ることができる。
【0048】
図5は、例示的実施形態による、クライアント要求2をマルチキャストクライアント要求14として2つ以上の宛先サーバ8a−nに送信するための通信ネットワーク200を例示する。
図5に示されるように、ネットワーク200は、クライアント1a−nおよびマルチキャストルータ13を含む。マルチキャストルータ13は、宛先サーバ8a−n、ルータ入口4、スイッチファブリック10、
マルチキャストレコード12(スイッチファブリック10の一部)、およびルータ出口7を含む。
図2に関して上記に説明したように、クライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7、または宛先サーバ8のうちの任意の1つまたは複数はまた、好ましくは、例えば、複数の異なる製造業者のいずれか1つにより製造されたコンピュータなどの、1つまたは複数のコンピュータの使用により実装され得る、あるいは特化された通信装置として実装され得る。
図2に関して上記に説明したように、クライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7、または宛先サーバ8のうちの任意の1つまたは複数は、マイクロプロセッサを含むことができる。マイクロプロセッサは、例えば、任意の形式のマイクロプロセッサまたはマイクロコントローラ、ディジタル信号処理(DSP)プロセッサ、特定用途向け集積回路(ASIC)、プログラマブルリードオンリーメモリ(PROM)、あるいはこれらの任意の組合せなど、任意の形式のプロセッサであり得る。さらに、
図2に関連して上記に説明したように、クライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7、または宛先サーバ8のうちの任意の1つまたは複数は、さらに以下に説明するように、スイッチファブリック10の機能の1つまたは複数を実行するための命令を含むソフトウェアを含んだコンピュータ読み取り可能な媒体を読むために個々のマイクロプロセッサを使用することができる。
【0049】
図5の構成要素に関して、クライアント1、ルータ入口4、ルータ出口7、スイッチファブリック10、または宛先サーバ8の各々はまた、任意の形式のコンピュータメモリまたは、例えばリードオンリーメモリ(ROM)、コンパクトディスクリードオンリーメモリ(CDROM)、電気光メモリ、磁気光メモリ、消去可能プログラマブルリードオンリーメモリ(EPROM)、電気的に消去可能なプログラマブルリードオンリーメモリ(EEPROM)、などといった、クライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7、または宛先サーバ8の各々に内部的にまたは外付けのいずれかに置かれた任意の形式の電子的記憶媒体を含むことができる。例示的実施形態によれば、それぞれのメモリは、
図5に示すように、例えば、クライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7、または宛先サーバ8のうちの任意の1つまたは複数用の動作プログラムを含むことができる。後述の説明からわかるように、メモリは、例えば、コンピュータプログラミングについての当業者に知られている従来技術を使用してプログラムすることができる。例えば、コンピュータプログラムのステップを実行するための実際のソースコードまたはオブジェクトコードは、メモリ内に記憶され得る。
図5のクライアント1、ルータ入口4、スイッチファブリック10、ルータ出口7、または宛先サーバ8の各々はまた、1つまたは複数のデータベースを含むことができる。データベースは、その中に記憶された電子的情報を記憶、維持管理およびアクセスできるようにするための任意の形式のコンピュータデータベースであり得る。
【0050】
例示的実施形態によれば、マルチキャストスイッチファブリック10は、単一のユニキャスト送信からマルチキャスト送信を容易にする
マルチキャストレコード12を含むように構成される。マルチキャストスイッチファブリック10は、上記に説明したように、コンピュータ読み取り可能媒体、コンピュータメモリ、電気的記憶媒体、光記憶媒体、磁気記憶媒体、生物学的記憶媒体中、またはコンピュータ、マイクロプロセッサ内、などに
マルチキャストレコード12を記憶することができる。
図3により詳細に示された
マルチキャストレコード12は、
ユニキャストクライアント要求2の宛先ユニキャストIPアドレス/宛先UDPまたはTCPポートを、同様に様々なIPアドレスおよびポートを含むマルチキャストレコードにマッピングする。マルチキャストスイッチファブリック10は次いで、新しい要求(
マルチキャストクライアント要求14)を生成し、元のクライアント要求2を
マルチキャストクライアント要求14としてクライアント1からルータ出口7を通じて適切なマルチキャスト宛先サーバ8a−nに送信する。
【0051】
例示的実施形態によれば、マルチキャストスイッチファブリック10は、ルータ入口4を通じてクライアント要求2を受信し、次いでこれを
マルチキャストクライアント要求14に変換する。マルチキャストスイッチファブリック10は、宛先ユニキャストIPアドレスおよび/または宛先UDPもしくはTCPポートをマルチキャストレコードにマッピングする(または合わせる)ことができる、好ましくはスイッチファブリック10のメモリ内に記憶された、
マルチキャストレコード12を含む。
マルチキャストレコード12は、クライアント要求2を
マルチキャストクライアント要求14として受信する能力がある関心の宛先サーバ8a−8nの一覧を含む。
【0052】
マルチキャストレコード12の生成は、ネットワーク200の所有者/事業者によって達成することができ、または別なパーティによって生成され、スイッチファブリック10内に記憶され得る。クライアント要求2の宛先サーバ8a−8nへのマッピングは、
図2に関して上記に説明したように、複数の異なる方法のいずれか1つにより達成され得る。
【0053】
好ましい実施形態によれば、マルチキャストルータ11またはマルチキャストルータ13、および
マルチキャストレコード12を持つスイッチファブリック10を伴う、システム100またはシステム200の一使用例は、IPTVネットワークである。当業者に知られているように、インターネットプロトコルテレビ(IPTV)は、ディジタルテレビサービスが、インターネットプロトコル(IP)を使用してネットワーク基盤を介して配信されるシステムである。通常、IPTVコンテンツの配信は、一般にTVが、広帯域接続以外では獲得することが非常に困難である、大量のデータを要求することから、広帯域接続により実行される。
【0054】
コンテンツがどのように配信されるかにかかわらず、複数の視聴者が同一のチャンネルを見たいと望み、チャンネル輻輳を招く、または単一の利用者が必要以上に素早くチャンネル間を「サーフィンする」または動きまわることができる状況がしばしば見られる。前者の状況では、1つの宛先サーバ8は、複数の利用者が同一のIPTVコンテンツを要求する場合過負荷となり、それによって過度の使用によるシステムの「崩壊」を招く可能性がある。後者の状況では、クライアント1は、第1のチャンネルに対する第1のクライアント要求2aを送り;次いで、第1のクライアント要求2aが送られた直後に、第2のチャンネルからコンテンツを要求する第2のクライアント要求2bが送られ;次いで、第3の、さらに第4のクライアント要求2c、2dが送られる、などである。複数のクライアント要求2a−nが、第1の宛先サーバ8aに次々に到着し、(要求に応じてIPTVコンテンツを記憶しかつ配信する)宛先サーバ8aは、(複数のクライアント要求2a−dで)利用者が要求したのと同じほど早く所望のチャネルコンテンツ情報を送信することが難しくなる恐れがある。
【0055】
例示的実施形態によれば、内蔵された宛先サーバ8a−nを持つマルチキャストルータ13の使用は、チャネル変更によるコンテンツ配信遅延および複数利用者による宛先サーバの過負荷を実質的に取り除きまたは削減することができる。例示的実施形態によれば、複数の宛先サーバ8a−nには、システム200内のマルチキャストルータ13内に同一のIPTVコンテンツがロードされる。クライアントが、チャネルを急速に変更する場合、宛先サーバ8a−nは、最も利用可能でかつ準備ができている宛先サーバ8が最新のチャネル要求に応答できるようにして、それらの間で新しいチャネル要求を引き渡す。異なる宛先サーバ8a−n間で負荷を分散させることにより、チャネル変更(またはサーフィンすること)に対してのより迅速な応答時間が達成され得る。さらに、もし、マルチキャストルータ13(または11)が使用されており、かつ複数の利用者が同一のチャンネルを要求し、チャンネル変更またはサーフィンが僅かであるまたはないとしても、本明細書で説明される例示的実施形態によれば、ユニキャスト要求が、複製され、かつ複数の宛先サーバが、要求を受信し、かつ異なるサーバが、所望のコンテンツを配信するように選択される(または「自発的に提供される」)ことができることから、宛先サーバ8a−nは、負荷をそれらの間に分散させることができる。当業者には理解できるように、スイッチファブリック10および
マルチキャストレコード12を持つマルチキャストルータ11および13の使用についての本明細書で説明される例示的実施形態は、ITPVサーバまたはその形式のコンテンツに限定されるものではない。実質的に、宛先サーバ上に記憶することができる任意のコンテンツ(すなわち、データ、ビデオ、オーディオ、またはこれらの任意の組合せ)は、応答時間を高めるために本明細書で説明した説明した実施形態を活用し、コンテンツを配信するためのシステムのさらなるロバスト性を提供することができる。
【0056】
本発明は、本発明の特定の例示的実施形態を参照して説明されてきた。しかしながら、上記に説明した例示的実施形態以外の特定の形態で本発明を具現化する事が可能であることは、当業者には容易に明らかになろう。このことは、本発明の精神および範囲を逸脱することなく行うことができる。例示的実施形態は、単に説明のためのものであり、決して制限するものと考えられるべきではない。本発明の範囲は、これまでの説明によってではなく、添付の特許請求の範囲およびこれらの均等物によって定義される。
【0057】
全ての米国特許および出願、外国特許、および上記説明の文献は、その全体が参照により本明細書に組み込まれている。