(57)【要約】  プライベート・ネットワーク（１０６）上の移動体クライアント（１０４）は、インターネット（１０８）のような公衆ネットワーク上のサーバ（１１０、１１２）からストリーミング・メディア受信要求を送る。プライベート・ネットワークは、ファイアウォール（１１８）を有する。プライベート・ネットワークは、プライベート・ネットワーク上のアプリケーション・レイヤ・ゲートウェイ（１２０）に、メディア・ストリーミング要求をルーティングするルータ（１１６）を有する。アプリケーション・レイヤ・ゲートウェイは、ＮＡＴおよびセキュリティの問題を扱う。この構成のために、ストリーミング・メディアを受信するために用いる場合、移動体クライアントの設定をやり直す必要がない。【選択図】      図１
2010512703.tif 000002
【特許請求の範囲】
【請求項１】
ファイアウォール（１１８）を有するプライベート・データ・ネットワーク（１０６）において、移動体クライアント（１０２、１０４）に、該移動体クライアントとサーバ（１１０、１１２、１２２）との間におけるストリーミングを通じてコンテンツを伝達するサービスを提供する方法であって、
前記移動体クライアントからデータを受信するステップ（２０２）と、
前記データが、前記コンテンツのストリーミング要求に関するか否か判断するステップと、
前記データが前記ストリーミング要求に関する場合、
前記移動体クライアントのプライベート・アドレスをパブリック・アドレスに変換するステップと、
前記要求を前記パブリック・アドレスと共に前記サーバに転送するステップ（２１０）と、
前記データのパケットが前記ストリーミング要求に関しない場合、
前記データを前記ファイアウォールに転送するステップと、
を備えている、方法。
【請求項２】
請求項１記載の方法において、前記判断するステップはルータ（１１６）を用いることを含み、前記変換するステップおよび前記要求を転送するステップはアプリケーション・レベル・ゲートウェイ（１２０）を用いることを含む、方法。
【請求項３】
請求項１記載の方法において、前記変換するステップおよび前記要求を転送するステップは、前記プライベート・ネットワークの非武装地帯（１２６）から実行される、方法。
【請求項４】
請求項１記載の方法において、前記ファイアウォールは、Ｌｉｎｕｘファイアウォールを含み、
前記方法は、前記伝達のためにＲＴＳＰを用いるステップ、およびネットフィルタを用いるステップを備えており、該ネットフィルタは、ネットワーク・パケットを処理するためのＬｉｎｕｘカーネル内にあるフックのセットであり、ＲＳＴＰ接続をトラッキングするための専用モジュールであるrtsp_conntrackと組み合わせる、方法。
【請求項５】
ファイアウォールを有するプライベート・データ・ネットワーク（１０６）を備えているデータ処理システム（１００）であって、
前記システムは、移動体クライアント（１０２、１０４）から、該移動体クライアントとサーバ（１１０、１１２、１２２）との間におけるストリーミングを通じてコンテンツを伝達する要求を受信するように動作し、
前記システムは、
前記移動体クライアントのプライベート・アドレスをパブリック・アドレスに変換し、
前記要求を前記パブリック・アドレスと共に前記サーバに転送する、
ように動作するアプリケーション・レイヤ・ゲートウェイ（１２０）を備えている、データ処理システム。
【請求項６】
請求項５記載のシステムであって、データが前記要求に関する場合、前記データを前記移動体クライアントから前記アプリケーション・レイヤ・ゲートウェイにルーティングし、前記データが前記要求に関しない場合、前記データを前記ファイアウォールにルーティングするためのルータ（１１６）を備えている、システム。
【請求項７】
請求項６記載のシステムにおいて、前記アプリケーション・レイヤ・ゲートウェイは、前記プライベート・ネットワークの非武装地帯（１２６）に位置する、システム。
【請求項８】
請求項５記載のシステムにおいて、
前記ファイアウォールはＬｉｎｕｘファイアウォールを含み、
前記アプリケーション・レイヤ・ゲートウェイは、ネットワーク・パケットを処理するためのＬｉｎｕｘカーネル内にあるフックのセットであるネットフィルタを、ＲＳＴＰ接続をトラッキングするための専用モジュールであるrtsp_conntrackと組み合わせて用いる、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、公衆データ・ネットワーク上でストリーミングを通じてコンテンツを伝達するプライベート・データ・ネットワークにおいて、移動体クライアント、例えば、移動体電話機にサービスを提供する方法に関するものである。また、本発明は、移動体クライアントが、例えば、公衆データ・ネットワーク上でストリーミングを通じてコンテンツを伝達することを可能にするプライベート・データ・ネットワークを備えているデータ処理システムに関する。
【従来技術】
【０００２】
通例、コンテンツをストリーミングしたい移動体デバイス（特に、移動体電話機）は、３ＧＰＰ（国際的な協調合意である「第３世代パートナーシップ・プロジェクト」）が採択したプロトコルＲＴＳＰ（「リアル・タイム・ストリーミング・プロトコル」）を用いる。このプロジェクトは、ＵＭＴＳ（「ユニバーサル・モバイル・テレコミュニケーション・システム」）に基づく、世界的規模で適用可能な第３世代移動電話システムに焦点を当てている。
【０００３】
３ＧＰＰによれば、メディア・プレーヤはメディアの移送のために、ＵＤＰ／ＩＰ（ネットワーク・レイヤにおけるトランスポート・レイヤ／インターネット・プロトコルの「ユーザ・データグラム・プロトコル」）上においてＲＴＰ（インターネット・プロトコル・セットのアプリケーション・レイヤにおける「リアル・タイム・プロトコル」をサポートすることとしている。エンコードされたメディアは、メディア特定ＲＴＰペイロード・フォーマットを用いて、ＲＴＰパケットにカプセル化される。ＲＴＰペイロード・フォーマットは、ＩＥＴＦ（「インターネット・エンジニアリング・タスク・フォース」）によって定められている。また、ＲＴＰは、ＲＴＰが提供する送信サービスの品質に関するフィードバックについて、ＲＴＣＰ（リアル・タイム制御プロトコル）と呼ばれるプロトコルも規定する。
【０００４】
ストリーミングをサポートするためには、モバイル・フォンのような移動体デバイスは、連続メディア（例えば、音声、オーディオ、およびビデオ）の移送のためにＲＴＰ／ＵＤＰ／ＩＰプロトコルをサポートする必要がある。
【０００５】
ＲＴＳＰ／ＲＴＰデータ移送をサポートするためには、ファイアウォールのような情報技術デバイスによって、メディア・ストリームの通過を許すようにする必要がある。セッションのセットアップの間、クライアントとサーバとの間で特定のポートが取り決められる。ファイアウォール・デバイスは、この取り決めを検査し、取り決められたポートをオープンする必要がある。ファイアウォール・デバイスがＮＡＴ（「ネットワーク・アドレス変換」）も実行する必要がある場合、余分な複雑さが加わる。ＮＡＴは、ＩＰパケットがファイアウォールを通過するときに、ＩＰパケットのソース・アドレスとポート番号および／または宛先アドレスとポート番号を書き換えるプロセスである。ＮＡＴは、プライベート・ネットワーク上にある多数のホストが１つのパブリックＩＰアドレスを用いてインターネットにアクセスすることを可能にするために、広く一般に用いられている。ＲＴＳＰ／ＲＴＰおよびＮＡＴの組み合わせをサポートするデバイスは、極わずかである。この問題は、ＲＴＳＰ  ＮＡＴ横断問題(traversal problem)と呼ばれることも多い。
【０００６】
ＲＴＳＰ／ＲＴＰストリーミングの代案に、ＨＴＴＰ（［ハイパーテキスト・トランスファー・プロトコル］）ストリーミングがあるが、これは殆どの移動体デバイス上では未だ広くサポートされておらず、特に、モバイル・フォンではサポートされていない。しかしながら、ＰＣ（「パーソナル・コンピュータ」）環境における殆どのプレーヤは、双方の移送メカニズムをサポートしている。
【０００７】
ネットワークは、プライベートＩＰアドレスをそのカスタマに割り当てることができる。これらのプライベートＩＰアドレスは、次に数個のパブリックＩＰアドレスにＮＡＴ変換される。このプロセスはＰＡＴ（「ポート・アドレス変換」、または多数対単一／少数ＮＡＴ）として知られている。これらのネットワークは、移動体デバイスがコンテンツをストリーミングすることを可能にするために、ＮＡＴとの組み合わせでＲＴＳＰ／ＲＴＰストリーミングをサポートできなければならない。
【０００８】
ＮＡＴは、アドレス領域において不連続を生ずる。その結果、ＲＴＳＰのようなプロトコルは、ＮＡＴによって生じた不連続性に対処できることを確保しようとする必要がある。ＲＴＳＰに伴う問題は、１つ以上のメディア・ストリームを管理するメディア制御プロトコルであるため、ＲＴＳＰはそれ自体の内部のネットワーク・アドレスおよびポートに関する情報を搬送することである。このために、ＲＴＳＰ自体が、例えば、ＴＣＰ（「送信制御プロトコル」）上で搬送されるときにＮＡＴによって遮断(block)されなくても、ＮＡＴ−横断をサポートするために特殊な措置(provision)を追加しなければ、そのメディア・ストリームはＮＡＴによって遮断される虞れがある。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＲＴＳＰ  ＮＡＴ横断問題に対しては、いくつかの解決策が存在し、一部のホーム・ルータや、一部の商用ファイアウォールおよびルータ製品に実装されている。これらのシステムは、クライアント・デバイス上で設定値を変更する必要なく、問題を解決することができる。
【００１０】
別の解決策は、ＲＴＳＰ−プロキシを用いることである。通例、クライアント・デバイスがストリーミング・メディア・サーバに接続するためにプロキシを用いる必要があることがわかるように、ユーザはこのプロキシについてクライアント・デバイス上に設定する必要がある。
【００１１】
ＲＴＳＰ  ＮＡＴ横断問題は、特に、モバイル・フォンのような消費者の電子機器分野における移動体デバイスに関連がある。ストリーミング・メディアを受信するために多数の宛先のいずれとの通信においても完璧に動作するように、モバイル・フォンを設定することができるユーザは極少数である。加えて、移動体デバイスは、形状要因(form factor)が小さく、それに合ったユーザ・インターフェース（ＵＩ）がデバイスの動作的使用に最適化されている。その結果、そのＵＩを通じてデバイスを設定することは、煩わしい作業となる可能性がある。
【００１２】
本発明の目的は、消費者が彼／彼女の移動体デバイスを設定しなければならないことから解放することである。
【課題を解決するための手段】
【００１３】
したがって、本発明者は、プライベート・データ・ネットワークにおいて、移動体クライアントに、当該移動体クライアントとサーバとの間におけるストリーミングを通じてコンテンツを伝達するサービスを提供する方法を提案する。この方法は、移動体クライアントから、コンテンツ・ストリーミング要求を受信するステップと、移動体クライアントのプライベート・アドレスをパブリック・アドレスに変換し、前述の要求をパブリック・アドレスと共にサーバに転送するステップとを備えている。アドレス変換およびポート制御は、この場合、サービス・プロバイダ、即ち、プライベート・ネットワークを管理するのと同じ側で実行する。
【００１４】
また、本発明者は、プライベート・データ・ネットワークを有し、移動体クライアントとサーバとの間におけるストリーミングによってコンテンツを伝達可能にするデータ処理システムも提供する。本システムは、アプリケーション・レイヤ・ゲートウェイを備えており、アプリケーション・レイヤ・ゲートウェイは、移動体クライアントからコンテンツ・ストリーミング要求を受信し、移動体クライアントのプライベート・アドレスをパブリック・アドレスに変換し、要求をパブリック・アドレスと共にサーバに転送するように動作する。ここで、アドレス変換およびポート制御は、プライベート・ネットワーク上に備わっているが移動体デバイスの外部にあるＡＬＧに委任される。ＡＬＧは、プライベート・ネットワークのプロバイダによって管理される。この手法では、アドレス変換およびポート制御が移動体デバイスの外部で行われ、その結果、移動体クライアントを設定し直す必要がないので、移動体デバイスのユーザにとって大きな便益がある。
【００１５】
好ましくは、本システムは、移動体クライアントからの要求をＡＬＧにルーティングするルータを備えており、ＡＬＧはプライベート・ネットワークの非武装地帯（１２６）に位置する。ストリーミング・メディアの受信と関連のあるデータ・トラフィック以外のデータ・トラフィックは、ＡＬＧにはルーティングされず、ファイアウォールを通過するか、またはファイアウォールによって保護されているドメイン内部にあるコンテンツ・サーバに伝達する。
【００１６】
本発明の更に別の実施形態については、他の従属請求項において対処する。
本発明について、一例として、そして添付図面を参照しながら更に詳細に説明する。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明におけるシステムの図である。
【図２】図２は、図１におけるシステムの態様を示すプロセス図である。
【発明を実施するための形態】
【００１８】
図面全体を通じて、同様の機構または対応する機構を同じ参照番号で示すこととする。
ＲＴＳＰ接続をセットアップするとき、クライアントは、ストリーミング・メディアを予期して待ちかまえようとするポートに関する情報を送る。サーバはその情報を受信して、その返信に、サーバがストリーミング・データを送ろうとするそのポートに関する情報を送る。クライアントとサーバとの間に、ＮＡＴに対応するファイアウォールがある場合、ＡＬＧが必要となる。何故なら、これは、ＮＡＴ手順を通じてクライアント・ポート情報を変換し、ストリーミング・データを予期する動的接続をオープンするためにそれを格納するからである。ファイアウォールにおいてＮＡＴに対応していない場合、動的トラフィックを予期してオープンするポートを増やす必要がある。尚、ストリーミングに関与するクライアント・ポートおよびサーバ・ポートは動的であることを注記しておく。
【００１９】
図１は、本発明によるシステム１００のブロック図である。システム１００は、移動体クライアント１０２および１０４を備えている。移動体クライアント１０２および１０４は、プライベート・ネットワーク１０６と公衆ネットワーク１０８、例えば、インターネットとを通じて、公衆ストリーミング・サーバ１１０および１１２と通信する。プライベート・ネットワーク１０６の運営者は、プライベート・ネットワーク・アドレスをクライアント１０２および１０４に割り当ててある。これらのプライベート・アドレスおよびプライベート・ポート番号は、公衆ネットワーク１０８上で用いるために、ＮＡＴと先に呼んだプロセスによって、パブリック・ネットワーク・アドレスおよびパブリック・ポート番号に変換される。既に述べたように、ＮＡＴは、アドレス領域において不連続を発生させ、一方ではクライアント１０２および１０４間の通信、他方ではサーバ１１０および１１２間の通信に関与するプロトコルを妨害する虞れがある。サーバ１１０または１１２が送るデータをクライアント１０２および１０４の内適正なものに容易に相関付けることができないと、問題が発生する。
【００２０】
プライベート・ネットワーク１０６は、クライアント１０２および１０４とのワイヤレス通信のためのアクセス・ポイント１１４と、ルータ１１６とを備えている。プライベート・ネットワーク１０６は、更に、ファイアウォール１１８、ストリーミング・プロキシ１２０、および、任意に、内部ストリーミング・サーバ１２２を備えている。
【００２１】
機能的には、ファイアウォール１１８は、ルータ１１６に到達するデータ・パケットをフィルタリングする規則のセットである。パケットが、この規則が指定する判断基準を満たさない場合、欠落(drop)させられる。判断基準を満たす場合、通過することが許される。
【００２２】
ルータ１１６は、データ・パケットをそれらの宛先に転送する役割を果たす。ルータ１１６は、アクセス・ポイント１１４を通じて受信しクライアント１０２または１０４からのストリーミング・コンテンツ要求に関与するデータ・パケットを選択的にストリーミング・プロキシ・サーバ１２０にルーティングする。他のデータ・パケットは、ファイアウォール１１８を通じて、インターネット上のそれらの宛先にルーティングされる。選択的ルーティングは、アクセス制御リスト（ＡＣＬ）１２４を用いて実現することができる。標準的なアクセス制御リスト（ＡＣＬ）は、パケットのソースＩＰアドレスに基づいてパケットをフィルタリングするＩＯＳベースのコマンドである。拡張アクセス制御リストは、ソースおよび宛先ＩＰアドレスに基づいてパケットをフィルタリングすることができる。ＩＯＳ（インターネット作業動作システム;Internetwork Operating System）は、Cisco Systems社のルータのオペレーティング・システムである。これは、マルチタスキング・オペレーティング・システムであり、プロセス・スケジューリングならびにコマンド・ライン・インターフェースおよびルーティング・ソフトウェアのような、カーネル・サービスを提供する。本発明の一実施形態では、ルータ１１６は、ソース・ベースのルータであり、ポート５５４上のデータ全てをプロキシ１２０にルーティングする。
【００２３】
ポート５５４は、ストリーミング・サーバへのＲＳＴＰ通信を確立するためのデフォルト・ポートである。ポート５５４上の通信は、ＲＴＰおよびＲＴＣＰ接続ならびにポートの取り決めに用いられる。ポート５５４上のＲＴＳＰ通信は、コマンド・ベースであり、メディア・ストリームを制御する。原理的には、ルータ１１６は、異なるポート上でストリーミング要求を予期して待ちかまえる(listen)ように構成することができるが、ポート５５４はこの目的のために広く一般に用いられる。ポート番号に基づいて、ルータ１１６は初期セットアップにおいてＲＴＳＰ通信を傍受し、次いでデータ・パケットをプロキシ１２０に転送する。次いで、プロキシ１２０は、クライアント１０２または１０４の代わりに、サーバ１１０または１１２あるいはサーバ１２２との接続をセットアップする。クライアント１０２または１０４が発行する要求の中で指定される宛先から、サーバ１１０、１１２、または１２２の内のどれと接続を行うのかは明らかである。ストリーミング・メディアは、サーバ１１０（または１１２）からクライアント１０２または１０４に、プロキシ１２０を経由するがルータ１１６の介入なしに、一方向に伝達される。
【００２４】
プロキシ１２０は、機能的には、アプリケーション・レベル・ゲートウェイ（ＡＬＧ）であり、アプリケーション・レイヤ・ゲートウェイとも呼ばれる。一般に、ＡＬＧは、データ・ネットワークにおいて用いられるファイアウォールまたはＮＡＴデバイスに対するセキュリティを強化する。ＡＬＧは、正規のアプリケーション・データであれば、ファイアウォールのセキュリティ・チェックを通過させる。ファイアウォールは、そのフィルタリング判断基準を満たさないと、トラフィックを制限する。ＡＬＧによって、クライアント・アプリケーションは、動的で一時的なＴＣＰ／ＵＤＰポート（以下を参照）を用いて、サーバ・アプリケーションが用いる既知のポートと通信することが可能となる。ファイアウォール−設定は、限定された数の既知のポートのみを許可することもできる。ＡＬＧがない場合、いずれかのポートが遮断(block)されるか、またはネットワーク管理運営者が明示的にファイアウォール内の多数のポートをオープンする必要がある。こうすると、ネットワークがこれらのポート上において攻撃を受けやすくなる。一時的なポートは、ＴＣＰ／ＩＰソフトウェア・スタックによって既定の範囲から自動的に割り当てられるＴＣＰまたはＵＤＰのポート番号を有し、通例は、クライアント−サーバ通信のクライアント終端にポートを提供するためにある。この割り当ては、一時的であり、プロトコルを用いるアプリケーションによってオープンされた接続の持続時間中だけ有効である。また、ＡＬＧは、アプリケーション・ペイロードの内側で発見したネットワーク・レイヤのアドレス情報を、ファイアウォール／ＮＡＴのいずれの側のホストであっても受け入れることができるアドレス間で変換する。ＡＬＧは、クライアントのプライベート・アドレスおよび通信ポートを指定することを要求する通信プロトコルを有するファイアウォールの横断を可能にする。ファイアウォールがこのようなプロトコルと関連のあるトラフィックを有し、プロトコルがＡＬＧ上で終端した場合、セッションを許可する責務はファイアウォールからＡＬＧに移る。ＡＬＧは、ＮＡＴ横断を解決することができる。基本的に、ＡＬＧを内蔵したＮＡＴデバイスは、メッセージの中にある情報を書き換えることができ、セッションが終了するまで、アドレス・バインド(bindings)を保持することができる。
【００２５】
好ましくは、プロキシ１２０をＤＭＳ（demilitarized zone:「非武装地帯」）１２６の中に配置する。ＤＭＺ１２６は、インターネット１０８とプライベート・ネットワーク１０６との間のバッファ・ゾーンである。別個の隔離されたネットアーク上に公衆アクセス・サーバとしてプロキシ１２０を配することにより、プライベート・ネットワーク１０６に対して別のセキュリティ尺度を設ける。代替案として、ルータ１１６を不要にすることができるように、アクセス・ポイント１１４とファイアウォール１１８との間のデータ経路にプロキシ１２０を位置させる。この代替構成の欠点は、他の全てのデータ・トラフィック、例えば、ｆｔｐ、ｈｔｔｐ、電子メールなどもプロキシ１２０を通過するのを求められることである。その結果、ＤＭＺを想定した場合よりも、多くの処理容量がプロキシ１２０に必要となる。一方、ＡＣＬ１２４を用いてデータ・トラフィックを導くことはもはや不要となる。
【００２６】
本発明の一実施形態では、通信はＲＴＳＰを用い、ファイアウォール１１８はＬｉｎｕｘファイアウォールを備えており、ＡＬＧ１２０はrtsp_conntrackと組み合わせてネットフィルタを用いる。ネットフィルタは、ネットワーク・パケットを処理するための、Ｌｉｎｕｘカーネル内にあるフック(hook)のセットである。rtsp_conntrackは、ＲＳＴＰ接続をトラッキングするための専用モジュールである。この実施形態は、公に利用可能な構築ブロックを用いた、具体的な実施態様である。Ｌｉｎｕｘファイアウォール・ネットフィルタには、ＲＴＳＰ用の特殊接続トラッキング・モジュール（ＧＰＬライセンスの下で公開された、RealNetworksからのTom Marshallによって書かれたrtsp_cnntrack）で補強する(patch)ことができる。ネットフィルタは、ネットワーク・パケットを傍受し操作するためにＬｉｎｕｘカーネルの中にあるフックのセットである。ネットフィルタの上にある一コンポーネントが、パケットをフィルタリングするファイアウォールである。また、フックは、ネットワーク・アドレス変換を行うコンポーネントによっても用いられる。ＡＬＧはアプリケーション・インテリジェンスをファイアウォール／ＮＡＴに追加する。ＡＬＧは、プロトコル・メッセージ上でアドレス変換の操作を実行し、メディア・ストリームを許容するために、ファイアウォール上で正しいポートを動的に制御する。
【００２７】
また、本発明者が提案する手法は、ＲＴＳＰ以外の、ＮＡＴに感応するプロトコルにも用いることができる。このようなプロトコルの例には、Ｈ．３２３、Kerberos、X-Windows、リモート・シェル、ＳＩＰ（セッション開始プロトコル）がある。
【００２８】
図２は、システム１００における動作を示すプロセス図２００である。ステップ２０２において、ルータ１１６はクライアント１０２からの要求を受信する。ステップ２０４において、ルータ１１６は、その要求がストリーミング・メディアの要求か否か判断する。ストリーミング・メディアの要求でない場合、ルータ１１６は、ステップ２０６において、ファイアウォール１１８が許可したなら要求をその宛先にルーティングし、プロセスはステップ２０２に戻って、次の要求がルータ１１６に到着するのを待つ。ファイアウォール１１６を超えて要求をルーティングすることが許可されない場合、プロセスは同様にステップ２０２に戻り、次の要求を待つ。前述の要求がストリーミング・メディアの要求である場合、ルータ１１６はステップ２０８において要求をプロキシ１２０にルーティングする。ステップ２１０において、プロキシ１２０はクライアントのアドレスおよびポート情報を変換し、要求を変換したアドレスおよびポート情報と共に、インターネット１０８上のサーバ１１０および１１２の内関連があるものに転送する。次いで、プロキシ１２０は、サーバ１１０および１１２の内関連があるものからストリーミング・メディアを受信するために、動的接続を開放する。ステップ２１２において、プロキシ１２０は、サーバ１１０、１１２、および１２２の内関連のあるものからストリーミングされたメディアを受信し、当該ストリーミングされたメディアをクライアント１０２に転送する。
【図１】
2010512703.tif 000003
【図２】
2010512703.tif 000004
【国際調査報告】
2010512703.tif 000005
2010512703.tif 000006
2010512703.tif 000007