説明

マルチキャスト・ネットワークにおけるSCTPのためのプロトコル・ブースタ

トラフィック・オプティマイザは、マルチキャスト・ネットワークを介したサーバと複数のクライアントのうちの少なくとも1つのクライアントとの間のユニキャスト・プロトコルを使用するデータ・パケットの通信を容易にする。トラフィック・オプティマイザは、通信プロセッサとパケット・プロセッサとを含む。通信プロセッサは、アソシエーション・データを含むデータとデータ・パケットとの両方をサーバからユニキャスト・プロトコルを使用して受信する。アソシエーション・データは、サーバのIPアドレスと通信のために利用可能な複数のクライアントのうちの少なくとも1つのIPアドレスとを含む。パケット・プロセッサは、データ・パケットの分析に応じてデータ転送を最適化するためにデータ・パケットを処理し、処理されたデータ・パケットを、受信されたIPアドレスの各々で複数のクライアントのうちの少なくとも1つに、ユニキャスト・プロトコルを使用してマルチキャスト・ネットワークを介して転送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の構成は、標準的なプロトコルではないコンポーネントを使用したマルチリンク/マルチパス・ネットワーキング環境においてストリーム制御送信プロトコル(Stream Control Transmission Protocol(SCTP))およびストリーム制御送信プロトコル−部分信頼性(Stream Control Transmission Protocol−Partial Reliability(SCTP−PR))を用いたシステムのためのマルチキャスト・サポートを提供する。
【背景技術】
【0002】
SCTPは、インターネット・エンジニアリング・タスク・フォース(Internet Engineering Task Force(IETF))によって標準化された信頼性のあるトランスポート・プロトコルである。SCTPは、IETF RFC4960「ストリーム制御送信プロトコル」、さらに、S.Fu氏やおよびM.Atiquzzaman氏による「SCTP:研究、製品および技術課題における最先端技術」と題された文献(IEEE通信マガジン、2004年、4月)において記載されているようなマルチストリーミングやマルチホーミングなどの各機能をサポートしている。SCTP−PRは、SCTPの拡張であり、上位レイヤー・プロトコルに対する部分信頼性を有するデータ送信サービスを提供するようにSCTPの実施を可能にする。
【0003】
F.Yong氏、W.Chee氏、およびS.Ramadass氏による「M−SCTP: トランスポート層マルチキャスティング・プロトコル」と題された文献(NaCSPC(National Computer Science Postgraduate Colloquium)、2005年)においては、マルチキャストSCTP(M−SCTP)を利用するスキームについて記載されている。このスキームは、SCTPサーバとそのSCTPクライアントとの間にM−SCTPサーバ・スタックを追加する。サーバ・スタックは、マルチキャスト・サービスの各リソースを管理し、マルチキャスト・メンバーシップを制御する。しかしながら、このスキームは、繰り返してユニキャスト・プロトコル・メッセージの送信を使用することによってマルチキャスト機能を達成する。換言すれば、データ・パケットを複製し、複数回のユニキャスト・プロトコル・メッセージ送信を使用して、複製したデータ・パケットを各クライアントに対して個別に送信することで、サーバ・スタックによってマルチキャストが実現される。従って、このスキームは、帯域幅の効率が低いことやシステムのスケーラビリティが良好でないことから派生する問題を解決するものではない。
【0004】
マルチキャスト・サポートをSCTPに追加するスキームが存在する。このスキームにおいては、複数のアソシエーションからなる1対多のスタイルのSCTPソケットがサーバ側で開いている。各アソシエーションは、2つのエンド・ポイントを有し、ユニキャスト機能を有するマルチキャスト・ネットワークにおいて、これらのエンド・ポイントのうちの一方は、サーバ側にあり、他方は、各クライアント側にある。さらに、各アソシエーションは、マルチキャスト・ネットワーク・リンクに対応するパスと、ユニキャスト・ネットワーク・リンクに対応する他のパスを含む。SCTPソケットの複数のアソシエーションにおけるマルチキャスト・パスは、同一のマルチキャストIPアドレス、さらに、トランスポート・ポート・アドレスを共有する。従って、サーバは、データ・パケットの1つのコピーを送信することが可能であるが、マルチキャストを介してクライアントの全てに到達することができる。結果として、高い帯域幅効率を達成することができ、このスキームを用いるシステムは、マルチキャスト・ネットワークにおいて、クライアントの数が増加していても、良好に対応することができるであろう。
【0005】
しかしながら、上述したスキームは、プロトコルに対して特定の変更がなされることを必要とする。例えば、サーバ側で、ソケット内の複数のアソシエーションに亘って、データ・パケットの1つのコピーのみが共有されたマルチキャスト・パス上に送信されるように、SCTPプロトコルが変更されなければならない。プロトコルに対する変更が制限されているアプリケーションにおいては、これによりスキームの動作が妨げられることがある。さらに、マルチキャスト・パスが共有されていることから、全てのクライアントがデータ・パケットの同一のセットを受信するため、全てのクライアントが同一のSCTPポート・アドレスを有することが必要となる。ポート・アドレスを占有するクライアントは、マルチキャスト・データ・パケットを受信するために同一のポート・アドレスを使用できないことがある。本発明の構成は、上述したスキームがSCTPプロトコルまたはSCTP−PRプロトコルへの明示的な変更なしに動作することを可能にする。
【発明の概要】
【0006】
トラフィック・オプティマイザは、マルチキャスト・ネットワークを介した、サーバと複数のクライアントのうちの少なくとも1つとの間のユニキャスト・プロトコルを使用したデータ・パケットの通信を容易にする。トラフィック・オプティマイザは、通信プロセッサとパケット・プロセッサとを含む。通信プロセッサは、アソシエーション・データを含むデータおよびデータ・パケットの両方をサーバからユニキャスト・プロトコルを使用して受信する。アソシエーション・データは、サーバのIPアドレスと通信のために利用可能な複数のクライアントのうちの少なくとも1つのIPアドレスとを含む。パケット・プロセッサは、データ・パケットの分析に応じてデータ転送を最適化するためにデータ・パケットを処理し、処理されたデータ・パケットを、受信されたIPアドレスの各々で複数のクライアントのうちの少なくとも1つに、ユニキャスト・プロトコルを使用してマルチキャスト・ネットワークを介して転送する。
【0007】
ユニキャスト・プロトコルは、SCTPおよびSCTP−PRのうちの一方とすることができる。本装置は、処理されたデータ・パケットを転送するために、パケット・プロセッサがアクセスするアソシエーション・データを格納するIPアドレス・リポジトリをさらに含んでもよい。
【0008】
本装置は、データ・パケットが処理される前に、予期された数のデータ・パケットが受信されるまで、受信されたデータ・パケットをバッファリングするパケット・バッファをさらに含んでもよい。本装置は、バッファリングされたデータ・パケットを分析して必要な処理のタイプを判定するパケット分析器をさらに含んでいてもよい。
【0009】
どのデータ・パケットが余分であるかを判定することによってバッファリングされたデータ・パケットが分析され、パケット・プロセッサは、余分であるデータ・パケットを除去することによってデータ・パケットを処理してもよい。
【0010】
どのデータ・パケットがデータの最も完全なセットを保持するかを判定することによって、バッファリングされたデータ・パケットがさらに分析されてもよく、パケット・プロセッサは、データ・パケットの実質的に完全なセットをコンパイルすることによって、データ・パケットを処理してもよい。
【0011】
クライアントは、サーバに対し、マルチキャスト・ネットワークからデータ・パケットが適切に受信されていることを示す受領確認、さらに、パケットが遅延しているかどうかを含む情報を送信してもよい。
【0012】
トラフィック・オプティマイザは、マルチキャスト・ネットワークを介してクライアントがデータ・パケットを受信した後、パケットが遅延していることを示すインジケーションに基づいて、サーバからアソシエーションの特定のIPアドレスへの或るデータ・パケットの送信をスキップするインストラクションを受信してもよい。
【0013】
さらに、マルチキャスト・ネットワークを介してクライアントがデータ・パケットを受信した後、特定のIPアドレスに大幅なパケット遅延が生じていると判定された場合に、トラフィック・オプティマイザは、アソシエーションからIPアドレスを除去するというサーバからのインストラクションを受信してもよい。
【0014】
方法は、トラフィック・オプティマイザにより、マルチキャスト・ネットワークを介したサーバと複数のクライアントのうちの少なくとも1つとの間のユニキャスト・プロトコルを使用した、データ・パケットの通信を容易にする。アソシエーション・データを含むデータとデータ・パケットとの両方がサーバからユニキャスト・プロトコルを使用して受信される。アソシエーション・データは、サーバのIPアドレスと通信のために利用可能な複数のクライアントのうちの少なくとも1つのIPアドレスとを含む。データ・パケットの分析に応じてデータ転送を最適化するために分析されたデータ・パケットが処理される。処理されたデータ・パケットは、受信されたIPアドレスの各々で複数のクライアントのうちの少なくとも1つに、ユニキャスト・プロトコルを使用してマルチキャスト・ネットワークを介して転送される。
【0015】
本方法は、予期された数のデータ・パケットが受信されるまで、受信されたデータ・パケットをバッファリングするステップと、バッファリングされたデータ・パケットを分析して必要な処理のタイプを判定するステップとをさらに含むようにしてもよい。
【0016】
どのデータ・パケットが余分であるかを判定することによって分析を行ってもよく、さらに、余分であるデータ・パケットを除去することによって処理を行ってもよい。
【0017】
どのデータ・パケットがデータの最も完全なセットを保持するかを判定することによって分析を行ってもよく、さらに、データ・パケットの概ね完全なセットをコンパイルすることによって処理を行ってもよい。
【0018】
本方法は、クライアントにより、サーバに対し、マルチキャスト・ネットワークからデータ・パケットが適切に受信されていることを示す受領確認、さらに、パケットが遅延しているかどうかを含む情報を送信するステップをさらに含むようにしてもよい。
【0019】
本方法は、マルチキャスト・ネットワークを介してクライアントがデータ・パケットを受信した後、パケットが遅延していることを示すインジケーションに基づいて、サーバからアソシエーションの特定のIPアドレスに対する或るデータ・パケットの送信をスキップするステップをさらに含むようにしてもよい。
【0020】
本方法は、さらに、マルチキャスト・ネットワークを介してクライアントがデータ・パケットを受信した後、特定のIPアドレスに大幅なパケット遅延が生じていると判定された場合に、アソシエーションからIPアドレスを除去するステップをさらに含むようにしてもよい。
【0021】
本方法のユニキャスト・プロトコルは、SCTPおよびSCTP−PRのうちの一方とすることができる。
【0022】
本構成の追加的な特徴事項および利点は、添付図面を参照して、以下の例示的な各実施の形態の詳細な説明を読むことによって明らかになるであろう。
【図面の簡単な説明】
【0023】
【図1】本発明の構成に従ったユニキャスト・ネットワークおよびマルチキャスト・ネットワークの双方に亘る同時マルチパス送信のためのSCTPをサポートするシステムの例を示す図である。
【図2】本発明の構成に従って、トラフィック・オプティマイザと、どのようにデータが処理、送信されるかを示す図である。
【図3】本発明の構成に従って、データ送信における効率を改良するためにトラフィック・オプティマイザによって使用される処理を説明するフロー図を示す。
【図4】本発明の構成に従って、データ送信における効率化を改良するためにトラフィック・オプティマイザによって使用される別の処理を説明するフロー図を示す。
【発明を実施するための形態】
【0024】
本明細書において開示される本発明の構成は、マルチキャスト・ブロードキャストをSCTP、SCTP−PR、または、TCPをサポート可能なシステムに適用できるようにするスキームを提供する。図1は、マルチキャスト・ネットワークを使用してSCTPおよびSCTP−PRに適用することができるプロトコル・ブースティング・スキームの実施態様を示している。図1において、サーバ10は、リクエストを行っているクライアントに対して選択的に配信可能な記憶媒体に格納されたコンテンツを含む。このコンテンツは、後述するような、サーバ10とクライアントとの間のアソシエーションを表すデータと、対応するアソシエーションに基づいて特定のクライアントに送信されるデータ・パケットを含むことがある。図1において、ユニキャスト・リンクは、一対のリンクを使用した双方向通信を表す間隔の狭い一対の実線のリンクとして示されている。破線の一方向リンクは、マルチキャスト・リンクを示している。図1における各三角および四角は、SCTPアソシエーションを示している。具体的には、各三角は、SCTPのアソシエーションAを表し、各四角は、SCTPのアソシエーションBを表す。図1の特定の例において、アソシエーションA24は、サーバ10とクライアントA装置12との間のアソシエーションに関する。アソシエーションB26は、サーバ10とクライアントB装置14との間のアソシエーションに関する。
【0025】
図1において、例示的なクライアントが、クライアント12、14、16として示されている。これらは、それぞれ、クライアントA、B、Cを表す。図1は、3つのクライアントを描いているが、システムは、3つのクライアントとの動作に限定されるものではなく、1つでも、複数でも、どのような数のクライアントもサポートできる。個々のクライアント12、14、16は、サーバ10とのデータ・パケットを交換するために使用される幾つかのIPアドレスを含むことがある。個々のクライアントのIPアドレスは、サーバ10のIPアドレスとの通信パスを作成するために使用されて、個々のクライアントとサーバ10との間でデータ・パケットを容易に交換できるようにする。サーバ10は、複数のアクセス・ネットワークを介して個々のクライアントとの通信パスを形成することもある。例えば、図1に示すように、サーバ10は、ユニキャスト・アクセス・ネットワーク18、マルチキャスト・アクセス・ネットワーク20および22との通信パスを形成することができる。これらのユニキャスト・アクセス・ネットワーク18、マルチキャスト・アクセス・ネットワーク20および22は、それぞれ、3世代パートナーシップ・プロジェクト(3rd generation partnership project(3GPP))・ユニキャスト・ネットワーク、3GPPマルチメディア・ブロードキャストおよびマルチキャスト・サービス(Multimedia Broadcast and Multicast Services(MBMS)・ネットワークおよびディジタル・ビデオ放送−ハンドヘルド(Digital Video Broadcasting − Handheld(DVB−H))・ネットワークに対応する。図1は、3つのアクセス・ネットワークを示しているが、システムは、3つのアクセス・ネットワークとの動作に限定されるものではなく、サーバ10と、ユニキャストおよびマルチキャストのいずれかのデータ送信をサポートする1つ或いは複数のアクセス・ネットワークとの間の接続パスをサポートすることがある。ユニキャスト・アクセス・ネットワーク18は、サーバ10と各クライアントとの間の双方向のアップリンクおよびダウンリンクを用いたユニキャスト通信サポート機能を提供する。マルチキャスト・アクセス・ネットワーク20およびマルチキャスト・アクセス・ネットワーク22は、双方とも、マルチキャスト・ネットワークであり、一方向のダウンリンクのみをサポートする。結果として、マルチキャスト・アクセス・ネットワーク20および22を介した各クライアント12、14、または、16からサーバ10へのフィードバック・チャンネルは利用可能ではない。クライアント12、14、および16もまた、複数のネットワーク・インターフェースを備えていてもよく、複数の異なるタイプの通信ネットワークを介して遠隔システムと接続可能であってもよい。具体的には、クライアント12および14は、上述したアクセス・ネットワークのうちの3つ全てを介して遠隔システムに接続可能であり、ユニキャスト双方向のリンクおよびマルチキャスト一方向のリンクの両方を有することが可能である。その一方で、クライアント16は、マルチキャスト・アクセス・ネットワーク20および22を介して遠隔システムに接続するのみ可能である。結果として、クライアント16は、マルチキャスト一方向リンクのみをサポートする。
【0026】
クライアントは、例えば、データ・ファイルを処理し、アプリケーションを実行し、データの送受信やデータの処理のインストラクションのためにサーバと通信する機能を有するコンピュータまたはモバイル装置を含むハードウエア装置である。
【0027】
クライアントは、特定の機能を行えるように、サーバからのデータ・コンテンツまたはその他のコンテンツを必要とすることがある。例えば、クライアントは、ユーザのためにデータを適切に処理および表示できるように、サーバから特定のデータを受信しなければならないオーディオ/ビデオ装置である。従って、データ送信を容易にするために、クライアントとサーバとの間のアソシエーションが必要である。
【0028】
以下の各段落において、SCTPのアソシエーション作成の例を説明する。上述したクライアント12は、サーバ10に対するユニキャスト・アップリンクを有する。このユニキャスト・アップリングは、サーバ10に対してSCTP接続リクエストを行うために使用される。この接続リクエストは、潜在的に、標準的な4ウェイハンドシェイク手順を使用してSCTPのアソシエーションを作成することにつながり、さらに、これを以下において詳細に説明する。
【0029】
アソシエーションは、2つのエンド・ポイント間の接続として規定することができる。例えば、クライアント12とサーバ10との間のアソシエーションは、クライアント12に対応する様々なIPアドレスとサーバ10に対応する様々なIPアドレスとの間の通信パスを表す。従って、アソシエーションは、様々なIPアドレスに位置する各システム間の通信パスを表す。アソシエーションは、さらに、マルチキャスト・ネットワーク内の特定のマルチキャスト・パスに配信される特定のデータ・パケットを表すデータを含む。さらに、アソシエーションは、データの送信のためにサーバに関連付けられていないクライアントのIPアドレスを示すために使用されるデータを含む。このデータは、どのようにデータ・パケットが送信されるかを判定する際にアクセス・ネットワークによって使用される。
【0030】
サーバ10と通信するリクエストを開始するために、クライアント12は、サーバ10に対するユニキャスト・アップリンクを介してSCTPにおいて規定されているようなINITチャンクを表すデータを送信する。INITチャンクは、クライアント12が接続されている通信パスに対応する全てのIPアドレスを含み、並びに、クライアント12でのマルチキャスト受信の確認を表すデータを含む。サーバ10は、識別されたパスのうちのいずれが通信のためにサーバ10にとって利用可能であるかを、対応するIPアドレスをINIT ACKチャンクを表すデータに含めることによって確認する。SCTPにおいて規定されているような、INIT ACKを表すデータ、チャンクは、サーバ10によって、ユニキャスト通信を用いるアクセス・ネットワーク、例えば、ユニキャスト・アクセス・ネットワーク18を介してクライアン12に送信される。INIT ACKチャンクを表すデータがクライアント12によって受信されると、クライアント12は、クライアント側のSCTPアソシエーションのために送信制御ブロック(Transmission Control Block(TCB))を表すデータを生成する。TCBは、アソシエーションを識別するために、SCTPによって使用されるバッファ・サイズ、最大送信単位(maximum transmission unit(MTU))データ、およびシーケンス番号などの情報を含む。次に、クライアント12は、SCTPにおいて規定されるCOOKIE ECHOチャンクを表すデータを用いてサーバ10に応答する。サーバ10がCOOKIE ECHOチャンクを表すデータを受信すると、サーバ10は、サーバ側のSCTPアソシエーションのために自己のTCBを表すデータを生成し、クライアント12に送信される、SCTPにおいて規定されているような、COOKIE ACKチャンクを表すデータを用いて応答する。これにより、4ウェイハンドシェイク手順が完了し、図1におけるアソシエーションA24で示される、サーバ10とクライアント12との間のSCTPアソシエーションが確立する。
【0031】
SCTPアソシエーション・セットアップの別の例は、クライアント12の代わりにサーバ10が通信を開始することを除き、上述した4ウェイハンドシェイク手順と同じものを含む。サーバ10は、マルチキャスト・ネットワーク・パスを介してINITチャンクを表すデータを周期的にクライアント12(または追加的なクライアント)に送信する。INITチャンクは、サーバ10が接続されたネットワーク・パスに対応する全てのIPアドレスを含む。サーバ10とのSCTP接続を有することに関心を有する、ユニキャスト・アップリンクをサポートするクライアントとして、例えば、クライアント12として、INIT ACK チャンクを表すデータを含む応答がサーバ10に送信される。クライアント12は、マルチキャスト通信のための対応するIPアドレス、さらに、クライアント12によって使用されるユニキャスト通信のためのIPアドレスをINIT ACKチャンクを表すデータに含めることによって、マルチキャスト受信機能を確認する。サーバ10がINIT ACKチャンクを表すデータを受信すると、サーバ10は、クライアント12に送信されるCOOKIE ECHOチャンクを表すデータを用いて応答する。サーバ10は、さらに、クライアント12とのSTCPアソシエーションのためにサーバ側でTCBを表すデータを生成する。クライアント12がCOOKIE ECHOチャンクを表すデータを受信すると、クライアント12は、サーバ10にCOOKIE ACKチャンクを表すデータを送信し、クライアント側のSCTPアソシエーションのためにTCBを表すデータを生成する。このタイプのアソシエーションは、さらに、図1において、アソシエーションA24として表されよう。
【0032】
サーバ10が後続するSCTPアソシエーション・リクエストを別のクライアント、例えば、クライアント14から受信すると、追加的なSCTP、例えば、図1に示されたアソシエーションB26をセットアップするために、上記に概略説明したものと同じ手順を行うことができる。複数のアソシエーションがセットアップされることがあり、これらのアソシエーションは、1対多のSCTPソケットに属してもよく、複数の1対1のSCTPソケットに属してもよい。具体的には、複数のSCTPアソシエーションは、1つのSCTPトランスポート・ポート・アドレスを共有してもよく、その代わりに、各アソシエーションは、自己のポート・アドレスを有してもよい。
【0033】
ユニキャスト・フィードバック機能が無く、マルチキャスト受信機能のみをサポートするクライアント、例えばクライアント16など、については、SCTPアソシエーションをクライアントとサーバ10との間でセットアップすることができない。しかしながら、サーバ10とクライアント12および14などのクライアントとの間でデータ・パケットがSCTPアソシエーションを用いて配信されると、これらのクライアントは、特定のデータ・パケットがマルチキャスト・アクセス・ネットワークを介してクライアント16に送信されることを指定することがある。この本発明の構成においては、クライアント16は、マルチキャスト・ネットワークからの情報を受信できるだけの受動的な受信機として表すことができる。具体的には、クライアント12および/または14は、特定のリクエストをサーバ10に送信することにより、特定のデータ・パケットを、データのリクエストおよび受信のためにクライアント12、14、および16がサービスの利用契約をしているマルチキャスト・アクセス・ネットワーク20および22に送信することがある。クライアント16は、マルチキャスト・アクセス・ネットワーク20、22からデータを受信可能である。アソシエーション・データに応答して、サーバ10は、各データ・パケットが送信される送信先ネットワークを決定する。
【0034】
SCTPアソシエーションがサーバ10と各々のクライアント12、14、16との間で確立されると、データ交換をサーバ10とクライアントとの間で開始できる。図1に示されるように、サーバ10は、複数のクライアントとの複数のSCTPアソシエーションを設定できる。各アソシエーションは、サーバ10とクライアント12、14、および16との通信リンクを表すマルチキャスト・パスを含む。SCTPアソシエーションが設定されると、サーバ10は、SCTPを使用して、対応するアソシエーションを使用する各クライアントに対し、データ・パケットを送信することができる。サーバ10は、SCTPを用いてクライアント12および14と通信するため、サーバ10は、リクエストされたデータ・パケットの複数のコピーをマルチキャスト・アクセス・ネットワーク20および22に送信する。しかしながら、この結果、帯域幅の効率が低下する。この問題を取り扱うために、本発明の構成は、SCTPに関わる非効率を最小限にし、マルチキャスト・アクセス・ネットワーク20および22の効率性を活用する、SCTPの領域外のトラフィック・オプティマイザ・モジュール28および30を追加することにより、マルチキャスト・ネットワーク・パスのマルチキャスト機能を向上させる。図1は、サーバ10に結合された2つのトラフィック・オプティマイザ28および30を示している。サーバ10と、クライアントによってアクセス可能な各々のマルチキャスト・アクセス・ネットワーク20および22との間にMBSのためのトラフィック・オプティマイザ28、または、DVB−Hのためのトラフィック・オプティマイザ30が接続されている。
【0035】
図1に示されたトラフィック・オプティマイザ・モジュール28および30は、ネットワークのトラフィックを軽減するために存在する。本発明の構成においては、トラフィック・オプティマイザは、さらに、マルチキャスト・ネットワークを介して、データ・アソシエーションを使用して、サーバからクライアントにデータ・パケットを容易に送信できるようにする機能を有する。さらに、トラフィック・オプティマイザは、サーバから受信したデータを処理して、ネットワークのリソースが最も効率的となる方法で、確実に正しいデータが適切なクライアントに送信されるようにする。例えば、特定のクライアントが大きな帯域幅を使用するヘビー・ユーザである場合、または、一般的に、ネットワーク内でトラフィックの混雑が存在する場合には、確実に帯域幅が相応に使用され、割り当てられるようにするため、トラフィック・オプティマイザは、受信したデータ・パケットを処理し、さらに、ネットワークの状況を監視することがある。
【0036】
図2は、例示的なトラフィック・オプティマイザ28内部の各コンポーネントを示すブロック図である。通信プロセッサ208は、クライアントのために意図されたアソシエーション・データおよびデータ・パケットをサーバ10から受信する。通信プロセッサ208は、IPアドレス・リポジトリ210に結合される。このIPアドレス・リポジトリ210は、通信パスを確立するために使用されるサーバ10およびクライアント12、14、16のIPアドレスを含むアソシエーション情報を受信し、格納するコンピュータ化された記憶媒体を含むことがある。トラフィック・オプティマイザ28が正確なクライアントIPアドレスに対してデータを適切にルーティングできるようにするために、IPアドレスを表すアソシエーション・データが格納される。IPアドレス・リポジトリ210は、トラフィック・オプティマイザ28に対し、データ・パケットの発信元および送信先についての情報を提供する。さらに、パケット・バッファ220は、通信プロセッサ208に結合され、サーバ10からのデータ・パケットを受信し、分析されるデータ・パケットの量が十分になるまで、データ・パケットを格納する。受信され、格納されたデータ・パケットは、クライアント12および14のいずれかによってリクエストされたコンテンツに対応する。必要な数のデータ・パケットが受信されると、パケット・バッファ220に結合されたパケット分析器230は、パケット・バッファ220からの記憶されたデータ・パケットを構文解析し(parse)、そのパケットを分析してデータ・パケットの最も完全なセットを特定するか、同一のデータの余分なコピーを見つける。パケット分析器230は、記憶されたデータ・パケットのシーケンス番号と比較するために、データ・パケットのシーケンス番号のリスト、またはデータ・パケットに関連付けられたポインタのリストを使用することによって分析および識別を行う。これらのデータ・パケットは、クライアント12および/または14によってサーバ10からリクエストされたデータを表す。
【0037】
パケット・プロセッサ240は、パケット分析器230に結合されており、パケット分析器230からの分析されたデータ・パケットとその分析結果を受信する。これにより、パケット・プロセッサ240は、クライアントに対してデータ・パケットの最も完全なセットを送信するか、同一のデータの余分なコピーを除去してデータの1つのコピーのみを送信することができる。余分なコピーの全ては、ドロップされて破棄され、その一方で、データの1つのコピーがマルチキャスト・アクセス・ネットワークへの送信のために保持される。結果として、複数のクライアントのために複数のデータ・パケットの代わりにデータ・パケットの1つのコピーのみが送信されるため、使用される帯域幅が少なくなる。さらに、ネットワーク混雑や接続障害が生じたりしている場合では、データ・パケットの最も完全なセットが、送信におけるデータや効率の損失がより確実に最小であるように送信される。パケット・プロセッサ240によって送信されるデータ・パケットが、確実に正しいクライアントに送信されるように、パケット・プロセッサ240は、クライアントとサーバ10間の様々なアソシエーションのIPアドレスを含むIPアドレス・リポジトリ210にも結合されている。
【0038】
具体的には、パケット・プロセッサ240は、IPアドレス・リポジトリ210にクエリーを行って、どの特定のクライアントまたはアクセス・ネットワークのIPアドレスが特定のデータ・パケットを受信することになるかを表すデータを用いて応答する。以下の各段落は、図1に描かれたクライアント12、14、16、サーバ10、および、ネットワーク18、20、および22とのトラフィック・オプティマイザ28の相互接続に関連したトラフィック・オプティマイザ28の機能に関する更なる詳細な説明を提供するものである。
【0039】
図3は、サーバ10から各々のクライアントへのデータ・パケットの送信効率を向上させるためにトラフィック・オプティマイザ28によって行われる各ステップのフローチャートを示す。この処理は、ステップ310で開始し、このステップ310で、トラフィック・オプティマイザ28は、データ・パケットが送信される場所および方法を識別する特定のクライアント/サーバのアソシエーションからIPアドレスを取得する。ステップ320において、トラフィック・オプティマイザ28は、サーバ10からデータ・パケットを受信する。受信されたデータ・パケットは、全て、クライアントの特定の送信先IPアドレスと、データ・パケットの送信先を示す対応するアソシエーション情報にリンクされている。ステップ330において、トラフィック・オプティマイザ28は、サーバ10によって送信された受信パケットのバッファリングを行う。サーバ10は、マルチキャスト・ネットワークにおいて、全てのクライアントに同一のデータ・パケットを送信しなければならないため、個々のアソシエーションに対応するトラフィック・オプティマイザ28がサーバ10から受信するデータ・パケットは同一となる。結果として、ステップ340において、トラフィック・オプティマイザ28は、データ・パケットを分析して同一のデータの余分なコピーを特定することができる。次に、ステップ350において、トラフィック・オプティマイザ28は、同一のデータの余分なコピーを除去するために、分析されたデータを処理し、データ・パケットの1つのコピーのみが送信先ネットワークに転送されるようにする。ステップ360は、送信先クライアントのIPアドレスを含むアソシエーション・データと共にデータ・パケットの1つのコピーを含む処理されたデータを配信するトラフィック・オプティマイザ28に関わる。このデータは送信先ネットワークに転送され、この送信先ネットワークは1つのネットワーク、全てのネットワークまたは、ネットワーク18、20、および22を含むことがある。最終的には、送信先ネットワークは、クライアントの送信先IPアドレスを含むアソシエーション・データに基づいて特定のクライアントにデータ・パケットを送信する役目を担う。
【0040】
トラフィック・オプティマイザ28の各ステップは、代替的には、サーバ10の内部、例えば、ネットワーク層での処理として実行される。具体的には、トラフィック・オプティマイザ28の各機能は、スタンドアロンなモジュールとしてではなく、代わりに、サーバ10内で実施されることがある。トラフィック・オプティマイザ30は図1に示されている追加のトラフィック・オプティマイザであり、DVB−Hネットワーク22を通じた通信の役目を担うトラフィック・オプティマイザ30は、上述したトラフィック・オプティマイザ28と同様に動作する。
【0041】
クライアント12および14は、マルチキャスト・ネットワーク・パスを通じて配信された共通のデータ・パケットを受信してもよい。図1に示されているような追加的なユニキャスト・パスを有するクライアント、具体的には、クライアント12および14は、図1に示されたユニキャスト・ダウンリンクを介してサーバ10からの追加のデータ・パケットを受信できることがある。ユニキャスト・パスを有する各クライアントは、複数の異なるデータ・パケットがマルチキャストを介して送信される代わりに、自己のユニキャスト・ダウンリンクを介して送信されるようにするために、特定のリクエストをサーバ10に対して行うことができる。追加のデータ・パケットは、様々な理由でユニキャスト・ダウンリンクを介して送信されることがある。特定のデータは、特定のクライアントに特化していることもあれば、マルチキャスト・ネットワークの状態が良好でない場合には、特定のデータがユニキャストを介して送信されることが必要となることがある。
【0042】
さらに、クライアント12および14は、ユニキャスト・アップリンクを介してサーバ10に対し、マルチキャスト・パスを含み、アソシエーションにおける全てのパスために、選択的な受領確認(Selective Acknowledgement(SACK))を送信できる。SACKは、パケットが受信された旨の受領確認である。クライアントがSACKを送信すると、クライアントは、受領確認により、特定のアソシエーションに対応するIPアドレスに対するサービスを提供可能であり、データの送受信に参加可能であることを確認する。
【0043】
マルチキャスト・ネットワークにおいて、各クライアントの受信状態が異なることがあるため、さらに、データ・パケット損失の量がSACK内で報告される。従って、SACKは、さらに、複数のSCTPアソシエーションからのフィードバックとしての役目を果たす。パケット損失の量は、各アソシエーションの受ける受信障害のレベルが異なるため、複数の異なるアソシエーションについての複数の異なるIPアドレス間で異なる。受信障害は、特に、良好でないデータ受信状態によってデータの破損が起こることの多い無線通信ネットワークにおいて発生する。結果として、サーバ10は、マルチキャスト・リンクを介して送信に失敗したデータ・パケットの再送信を、ユニキャストをサポートする個々のクライアントに対してユニキャスト・ダウンリンクを介して行い、接続およびデータ・パケットの復元を容易にできるようにする。これにより、マルチキャスト・リンクに遅延が生じている場合や、マルチキャスト・リンクが実行可能な選択肢ではない場合にも、クライアントが意図したデータを受信できるようにする安全機構を有するシステムを提供する。マルチキャスト・リンク内でデータの損失が生じたことをクライアントが検出すると、クライアントは、自己のユニキャスト・リンクを使用してサーバ10にフィードバックを送信してユニキャスト・リンクを介してサーバに消失したデータを再送信するようにリクエストすることができる。
【0044】
しかしながら、SCTPトラフィックの混雑を制御する機構により、サーバ10は、複数の特定の時点で、複数の異なるアソシエーションのための複数の異なるデータ・レートで、データ・パケットを送信することがある。図4は、複数の異なるアソシエーションに対応する複数の異なるIPアドレスに対して複数の異なるレートでサーバによってデータ・パケットが送信される場合にデータ・パケット送信を最適化するためにトラフィック・オプティマイザによって行われる各ステップのフローチャートを示す。結果として、複数のアソシエーションのための複数の異なるデータ・パケットは、複数の異なる時点にトラフィック・オプティマイザ28に到達することがある。従って、トラフィック・オプティマイザ28は、データ・パケットを分類して、確実に特定のデータ・パケットが正しいクライアントに到達し、これらのデータ・パケットが可能な限り完全となるようにする。この処理は、ステップ410で開始し、このステップ410で、トラフィック・オプティマイザ28は、アクセス・ネットワークを介して送信されるデータ・パケットのための対応するアソシエーションから送信先IPアドレスを取得する。ステップ420において、トラフィック・オプティマイザ28は、様々なクライアントに対する意図した送信先を有するサーバ10からデータ・パケットを、各々の対応するアソシエーションからのIPアドレスに基づいて受信する。ステップ430において、トラフィック・オプティマイザ28は、受信したデータ・パケットをキャッシュする。次に、ステップ440において、キャッシュされたデータ・パケットが分析されて各クライアントによってリクエストされたコンテンツに対応するパケットの最も完全なセットを見つける。データ・パケットの不完全なセットは分析され、その後、ステップ450において、データ・パケットの実質的に完全な、または、完全なセットを形成するように、コンパイルされる。データ・パケットのシーケンス番号は、格納されたデータ・パケットのシーケンス番号と比較して、データ・パケットのセットが完全であるか、特定の部分を消失しているかを判定するために分析がなされる。ステップ460において、特定のクライアントに対する送信のために、実質的に完全な、または、完全なパケットのセットが送信先のマルチキャスト・ネットワークに転送される。
【0045】
本発明の構成について記載した上述の各段落の内容は、SCTP−PRを使用したシステムにも適用可能である。さらに、SCTP−PRを使用したシステムにおいては、サーバ10は、アソシエーションの特定のIPアドレスに、同一のアソシエーションの他のIPアドレスと比較して大量の遅延が発生する場合には、マルチキャスト・リンクを介した特定のデータ・パケットの送信をスキップすることができる。これにより、アソシエーションの特定のIPアドレスについて遅延の生じているマルチキャスト・リンクは、他のIPアドレスに既に送信済みのデータ・パケットに追いつくことができるようになる。特定のリンクが他のリンクと比較して損失が大きい場合には、良好な接続を有するリンクを介して送信されるデータ・パケットにデータ送信の遅延が生ずる。全てのデータ・パケットが、クライアントによって完全に受信されることが必要ではないため、サーバ10は、どのデータ・パケットが遅延の生じているリンクを介して送信されているかを判定することができ、このようなデータ・パケットの送信を適切にスキップすることができる。この処理は、クライアントに対して透過性である。クライアントは、さらに、特定のマルチキャスト・リンクにおける過剰なパケット損失を報告することができる。過剰なパケット損失を表すデータを受信すると、サーバ10は、特定のマルチキャスト・リンクを使用するIPアドレスをその対応するアソシエーションから除去してクライアントの他のIPアドレスに対するデータ送信の遅延を防止することができる。
【0046】
例示的な実施形態の観点から構成を説明したが、このような例示的な実施形態に限定されるものではない。むしろ、付随する請求項は、本構成に均等な範囲および領域を逸脱することなく、本構成の他の変形例および実施形態を含むように解釈されるべきである。本開示内容は、本明細書に記載された各実施形態の適用例、改変例を全て包含するように意図されている。

【特許請求の範囲】
【請求項1】
マルチキャスト・ネットワークを介したサーバと複数のクライアントのうちの少なくとも1つのクライアントとの間のユニキャスト・プロトコルを使用するデータ・パケットの通信を容易にするトラフィック・オプティマイザであって、
アソシエーション・データを含むデータと前記データ・パケットとの両方を前記サーバから前記ユニキャスト・プロトコルを使用して受信する通信プロセッサであって、該アソシエーション・データが、該サーバのIPアドレスと通信のために利用可能な複数のクライアントのうちの少なくとも1つのクライアントのIPアドレスとを含む、前記通信プロセッサと、
前記データ・パケットの分析に応じてデータ転送を最適化するために前記データ・パケットを処理し、処理されたデータ・パケットを、前記受信したIPアドレスの各々における複数のクライアントのうちの少なくとも1つのクライアントに、ユニキャスト・プロトコルを使用してマルチキャスト・ネットワークを介して転送するパケット・プロセッサと、
を備える、前記トラフィック・オプティマイザ。
【請求項2】
前記ユニキャスト・プロトコルは、SCTPおよびSCTP−PRのうちの一方である、請求項1に記載の装置。
【請求項3】
前記処理されたデータ・パケットを転送するために、前記パケット・プロセッサによるアクセスのための前記アソシエーション・データを格納するIPアドレス・リポジトリをさらに備える、請求項1に記載の装置。
【請求項4】
前記データ・パケットが処理される前に、予期された数のデータ・パケットが受信されるまで、前記受信したデータ・パケットをバッファリングするパケット・バッファをさらに備える、請求項1に記載の装置。
【請求項5】
必要な処理のタイプを判定するために、前記バッファリングされたデータ・パケットを分析するパケット分析器をさらに備える、請求項4に記載の装置。
【請求項6】
どのデータ・パケットが余分であるかを判定することによって前記バッファリングされたデータ・パケットが分析され、前記パケット・プロセッサは、余分であるデータ・パケットを除去することによって前記データ・パケットを処理する、請求項5に記載の装置。
【請求項7】
どのデータ・パケットがデータの最も完全なセットを保持するかを判定することによって前記バッファリングされたデータ・パケットが分析され、前記パケット・プロセッサは、データ・パケットの実質的に完全なセットをコンパイルすることによって前記データ・パケットを処理する、請求項5に記載の装置。
【請求項8】
クライアントは、前記サーバに対して、マルチキャスト・ネットワークからデータ・パケットが適切に受信されていることを示す受領確認と、パケットが遅延しているかどうかを含む情報とを送信する、請求項1に記載の装置。
【請求項9】
前記トラフィック・オプティマイザは、クライアントが前記マルチキャスト・ネットワークを介して前記データ・パケットを受信した後、パケットが遅延していることを示すインジケーションに基づいて、前記サーバからアソシエーションの特定のIPアドレスへの或るデータ・パケットの送信をスキップするインストラクションを受信する、請求項8に記載の装置。
【請求項10】
前記トラフィック・オプティマイザは、クライアントが前記マルチキャスト・ネットワークを介して前記データ・パケットを受信した後、特定のIPアドレスに大幅なパケット遅延が生じていると判定された場合に、前記サーバからインストラクションを受信してアソシエーションからIPアドレスを除去する、請求項8に記載の装置。
【請求項11】
トラフィック・オプティマイザにより、マルチキャスト・ネットワークを介したサーバと複数のクライアントのうちの少なくとも1つのクライアントとの間のユニキャスト・プロトコルを使用するデータ・パケットの通信を容易にする方法であって、
アソシエーション・データを含むデータと前記データ・パケットとの両方を前記サーバから前記ユニキャスト・プロトコルを使用して受信するステップであって、該アソシエーション・データが、該サーバのIPアドレスと通信のために利用可能な複数のクライアントのうちの少なくとも1つのクライアントのIPアドレスとを含む、前記受信するステップと、
前記データ・パケットの分析に応じてデータ転送を最適化するために前記分析されたデータ・パケットを処理するステップと、
前記処理されたデータ・パケットを、受信したIPアドレスの各々における複数のクライアントのうちの少なくとも1つのクライアントに、ユニキャスト・プロトコルを使用してマルチキャスト・ネットワークを介して転送するステップと、
を含む、前記方法。
【請求項12】
予期された数のデータ・パケットが受信されるまで、前記受信したデータ・パケットをバッファリングするステップをさらに含む、請求項11に記載の方法。
【請求項13】
必要な処理のタイプを判定するために、前記バッファリングされたデータ・パケットを分析するステップをさらに含む、請求項12に記載の方法。
【請求項14】
どのデータ・パケットが余分であるかを判定することによって分析が行われ、余分であるデータ・パケットを除去することによって処理が行われる、請求項13に記載の方法。
【請求項15】
どのデータ・パケットがデータの最も完全なセットを保持するかを判定することによって分析が行われ、データ・パケットの実質的に完全なセットをコンパイルすることによって処理が行われる、請求項13に記載の方法。
【請求項16】
クライアントにより、前記サーバに対して、マルチキャスト・ネットワークからデータ・パケットが適切に受信されていることを示す受領確認と、パケットが遅延しているかどうかを含む情報とを送信するステップをさらに含む、請求項11に記載の方法。
【請求項17】
クライアントが前記マルチキャスト・ネットワークを介して前記データ・パケットを受信した後、パケットが遅延していることを示すインジケーションに基づいて、前記サーバからアソシエーションの特定のIPアドレスへの或るデータ・パケットの送信をスキップするステップをさらに含む、請求項16に記載の方法。
【請求項18】
クライアントが前記マルチキャスト・ネットワークを介して前記データ・パケットを受信した後、特定のIPアドレスに大幅なパケット遅延が生じていると判定された場合に、アソシエーションからIPアドレスを除去するステップをさらに含む、請求項16に記載の方法。
【請求項19】
前記ユニキャスト・プロトコルは、SCTPおよびSCTP−PRのうちの一方である、請求項11に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2013−513996(P2013−513996A)
【公表日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2012−543056(P2012−543056)
【出願日】平成21年12月10日(2009.12.10)
【国際出願番号】PCT/US2009/006490
【国際公開番号】WO2011/071474
【国際公開日】平成23年6月16日(2011.6.16)
【出願人】(501263810)トムソン ライセンシング (2,848)
【氏名又は名称原語表記】Thomson Licensing 
【住所又は居所原語表記】1−5, rue Jeanne d’Arc, 92130 ISSY LES MOULINEAUX, France
【Fターム(参考)】