(57)【要約】【課題】  複数の送信先へ同一のデータを効率的にかつ安全に配信する。【解決手段】  端末装置からのリクエストを受信した際に、その端末装置がパケットを待ち受けるためのポート番号を決定する。決定したポート番号を、端末装置へ通知する。中継装置を介して端末装置へパケットを送信する場合に、中継装置が受信するパケットの処理方法を定義するフローエントリを、該中継装置へ設定する。【選択図】  図４
2015095730.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されている中継装置を介して、端末装置へのパケットの配信を制御する情報処理装置であって、
前記端末装置からのリクエストを受信した際に、その端末装置がパケットを待ち受けるためのポート番号を決定する決定手段と、
前記決定手段で決定したポート番号を、前記端末装置へ通知する通知手段と、
前記中継装置を介して前記端末装置へパケットを送信する場合に、前記中継装置が受信するパケットの処理方法を定義するフローエントリを、該中継装置へ設定する設定手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記フローエントリは、前記中継装置が受信するパケットを条件とマッチングするルールと、前記ルールにマッチするパケットに対して前記中継装置が行うアクションを定義している
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
同一のパケットの配信先の前記端末装置に関する端末情報として、前記端末装置のＩＰアドレス、前記端末装置が前記パケットを待ち受けるポート番号、及び前記端末装置の状態を含む端末情報のリストを記憶する記憶手段と、
前記記憶手段に記憶されるリストを参照して、前記リストで管理されている端末情報が示す端末装置へのパケットの送信を制御する制御手段とを有し、
前記状態には、
当該情報処理装置に最初に接続した端末装置であり、かつ当該情報処理装置からパケットを受信している第１の状態と、
当該情報処理装置に最初に接続した端末装置であり、かつ当該情報処理装置からパケットを受信していない第２の状態と、
当該情報処理装置からパケットを受信している第３の状態と
を含んでいる
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記制御手段は、
前記第１の状態にある端末装置が、パケットの受信を中止した場合、前記第２の状態へ遷移し、
前記第３の状態にある端末装置がパケットの受信を中止した場合、対応する端末情報を前記リストから削除し、
前記リストに、前記第２の状態にある端末装置のみが管理されている場合、該リストの内容を空にして、当該情報処理装置からのパケットの送信を中止する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記制御手段は、
前記リストに、前記第２の状態にある端末装置の端末情報が管理されている状態で、更に、前記第３の状態にある端末装置が管理されている場合には、前記パケットの送信を継続する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記中継装置が複数台で構成されるネットワークである場合には、そのネットワーク構成、及び前記中継装置それぞれに設定されている前記フローエントリの内容に関するネットワーク情報を管理する管理手段を更に有し、
前記設定手段は、処理対象の中継装置の前記フローエントリの設定を変更した場合には、前記ネットワーク情報を参照して、前記処理対象の中継装置のフローエントリの設定の変更によって影響を受ける他の中継装置に対するフローエントリを更に修正する
ことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記設定手段は、前記中継装置を制御してネットワークの経路制御を行う経路制御装置を介して、前記フローエントリを前記中継装置へ設定する
ことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記経路制御装置は、当該情報処理装置とは異なる
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
当該情報処理装置、及び前記中継装置はそれぞれ、ＯｐｅｎＦｌｏｗ仕様に従う装置である
ことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
中継装置と、前記中継装置を介して端末装置へのパケットの配信を制御する配信サーバと、前記端末装置と、前記中継装置を制御する制御装置とがネットワークを介して相互に接続されて構成される配信システムであって、
前記配信サーバは、
前記端末装置からのリクエストを受信した際に、その端末装置がパケットを待ち受けるためのポート番号を決定する決定手段と、
前記決定手段で決定したポート番号を、前記端末装置へ通知する通知手段と、
前記中継装置を介して前記端末装置へパケットを送信する場合に、前記中継装置が受信するパケットの処理方法を定義するフローエントリを該中継装置へ設定する設定リクエストを、前記制御装置へ送信する送信手段を有し、
前記制御装置は、
前記設定リクエストを受信することに応じて、前記フローエントリを前記中継装置へ設定する設定手段を有し
前記中継装置は、
前記制御装置によって設定されたフローエントリに従って、受信するパケットのデータ転送を実行する実行手段を有する
ことを特徴とする配信システム。
【請求項１１】
ネットワークに接続されている中継装置を介して、端末装置へのパケットの配信を制御する情報処理装置の制御方法であって、
前記端末装置からのリクエストを受信した際に、その端末装置がパケットを待ち受けるためのポート番号を決定する決定工程と、
前記決定工程で決定したポート番号を、前記端末装置へ通知する通知工程と、
前記中継装置を介して前記端末装置へパケットを送信する場合に、前記中継装置が受信するパケットの処理方法を定義するフローエントリを、該中継装置へ設定する設定工程と
を有することを特徴とする情報処理装置の制御方法。
【請求項１２】
請求項１から９のいずれか１項に記載の情報処理装置における各手段をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されている中継装置を介して、端末装置へのパケットの配信を制御する情報処理技術に関するものである。
【背景技術】
【０００２】
近年、ＩＰネットワークの高速広帯域化により、ＩＰネットワーク上で、映像コンテンツのライブ配信等のストリーミング配信が広く行われている。ストリーミング配信は、一般的には、配信サーバと受信端末間でのユニキャスト通信により行われるが、同時受信端末数が増大すると、配信サーバの必要スペックや必要帯域等も増大するため、スケーラビリティに課題がある。
【０００３】
上記課題を解決するため、Ｐ２Ｐ技術を利用して、一つの受信端末が受信したライブストリーミングを他の受信端末へ中継する、オーバレイマルチキャストあるいはアプリケーションレベルマルチキャストと呼ばれる技術も登場している。本技術を利用すれば、配信サーバの負荷を削減できるため、同時受信端末数に関するスケーラビリティの課題を解決できると期待されている。しかし、オーバレイマルチキャストでは受信端末が同時に送信端末にもなり得るため、受信端末が受信を中止した場合、その受信端末のストリーミング中継先の端末への配信も停止される。従って、オーバレイマルチキャスト配信を安定的に実現するためには、受信端末の離脱を適切に管理する必要がある。
【０００４】
この問題を解決するため、特許文献１では、各受信端末の過去の利用時間の平均値から、コンテンツ配信サービスに参加している受信端末が離脱するまでの時間（余命）を算出し、その算出結果に基づいて、末端の受信端末は上流の端末の余命が短くなったら、より余命が長い別の端末に切り替えることで、安定的なオーバレイマルチキャスト配信を実現する技術が開示されている。
【０００５】
また、上記スケーラビリティの課題の解決手段の一つとして、ＩＰマルチキャスト技術を利用することもできる。ＩＰマルチキャスト技術自体は十数年前から利用されている技術であるが、ネットワーク内のルータをＩＰマルチキャストに対応させる必要があり、一般的に普及するには至っていない。
【０００６】
これまでのＩＰネットワークでは、通常、１台のネットワーク機器（ルータやスイッチ）がネットワークの経路制御機能（コントロールプレーン）とデータ転送機能（データプレーン）を持っている。これに対して、近年では、コントロールプレーンとデータプレーンを分離し、それぞれ別の機器で動作させるネットワークシステムが提案されている。その一例として、コントローラからスイッチを制御してネットワークの経路制御を行うＯｐｅｎＦｌｏｗ（オープンフロー）と呼ばれる技術が登場している（非特許文献１）。また、非特許文献２、３では、ＯｐｅｎＦｌｏｗ技術を利用してＩＰマルチキャストと同方式のマルチキャスト配信を実現する技術が開示されている。
【０００７】
以下、図１を用いてＯｐｅｎＦｌｏｗの仕組みを簡単に説明する。図１はＯｐｅｎＦｌｏｗが動作する最小構成例を示している。
【０００８】
ＯｐｅｎＦｌｏｗスイッチ１０２は、ＯｐｅｎＦｌｏｗコントローラ１０１から投入されるフローテーブル１０２ａを保持しており、ＯｐｅｎＦｌｏｗスイッチ１０２はこのフローテーブル１０２ａに従ってパケットを転送する。フローテーブル１０２ａには、入力されたパケットをマッチングするルールと、ルールにマッチするパケットに対してＯｐｅｎＦｌｏｗスイッチ１０２が行う動作（アクション）を定義したフローエントリが登録されている。ルールで使用できる条件には、送信元／宛先ＭＡＣアドレス、ＩＰアドレス、ポート番号、プロトコル種別等がある。また、アクションとして、特定のポートから出力する、パケットのヘッダフィールドを書き換える、破棄する等の動作を指定できる。
【０００９】
図１の例で、例えば、端末装置２（１０４）が、宛先ＩＰアドレスが１９２．１６８．０．１０、ポート番号が８０であるパケットを送信し、そのパケットがＯｐｅｎＦｌｏｗスイッチ１０２に到着したとする。ＯｐｅｎＦｌｏｗスイッチ１０２は、フローテーブル１０２ａを参照して、到着したパケットとマッチするフローエントリを検索する。図１では、宛先アドレス＝１９２．１６８．０．１０、宛先ポート番号＝８０のパケットは１番ポートから出力する、というフローエントリが存在するので、ＯｐｅｎＦｌｏｗスイッチ１０２はそのフローエントリに従って到着したパケットを１番ポートから出力する。
【００１０】
尚、ＯｐｅｎＦｌｏｗコントローラ１０１は、ネットワーク構成を把握していると仮定する。また、図１には、１台のＯｐｅｎＦｌｏｗコントローラ１０１に対して１台のＯｐｅｎＦｌｏｗスイッチ１０２が接続されている構成となっているが、実際には１台のＯｐｅｎＦｌｏｗコントローラが複数台のＯｐｅｎＦｌｏｗスイッチそれぞれに対してフローテーブルを投入することができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１２−１７５４６４号公報
【非特許文献】
【００１２】
【非特許文献１】OpenFlow Switch Specification https://www.opennetworking.org/sdn-resources/onf-specifications/openflow
【非特許文献２】吉田、宮本、関谷、ＯｐｅｎＦｌｏｗを用いたエリア限定マルチキャスト、電子情報通信学会  技術報告  ２０１２年７月
【非特許文献３】こんな夜中にＯｐｅｎＦｌｏｗでネットワークをプログラミング！第１２回  動画放送局をＩＰマルチキャストで作ってみよう  http://gihyo.jp/dev/serial/01/openflow_sd/0012
【非特許文献４】あきみち、宮永、岩田、マスタリングTCP/IP ＯｐｅｎＦｌｏｗ編  オーム社、ISBN 978-4-274-06920-8
【発明の概要】
【発明が解決しようとする課題】
【００１３】
前述の特許文献１に記載されるオーバレイマルチキャスト配信方式を実現する場合、余命はあくまで過去の利用実績から類推されるものであるため、確実な配信は保証されないという課題がある。
【００１４】
また、ＩＰマルチキャスト技術を利用する場合、同一のストリーミングを受信する端末は全て同一のＩＰアドレス／ポート番号で待ち受けするため、サービス妨害（ＤｏＳ）攻撃を受けやすいという問題がある。
【００１５】
例えば、ある特定の配信サーバから配信されるストリーミングが、あるＩＰマルチキャストアドレス宛に送信される場合、適切なアクセス制御が実施されなければ、別のサーバが送信元ＩＰアドレスを詐称してそのＩＰマルチキャストアドレス宛に不正なパケットを送信することができてしまう。この場合、そのストリーミングを受信する受信端末は、その別のサーバからの不正なパケットも受信してしまい、ストリーミングが正常に再生されない可能性がある。
【００１６】
また、そのＩＰマルチキャストアドレス宛に不正なパケットを送信した場合、そのパケットを受信した受信端末は、その不正なパケットの送信元アドレスにＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）エラーパケットを送信する場合がある。ここで、受信端末が多数存在した場合、本来、その送信元アドレスが付与されたサーバに対して、多数のＩＣＭＰエラーパケットが送信されることになり、結果的に、そのサーバに対するＤｏＳ攻撃となりうる。このことは、ＯｐｅｎＦｌｏｗ技術を利用してＩＰマルチキャストと同方式のマルチキャスト配信を実現する場合にも起こりうる。また、ＩＰマルチキャストアドレスを別途割り当てる必要があるため、その管理負荷がかかる。
【００１７】
本発明は上記の課題を鑑みてなされたものであり、複数の送信先へ同一のデータを効率的にかつ安全に配信することできる情報処理技術を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
ネットワークに接続されている中継装置を介して、端末装置へのパケットの配信を制御する情報処理装置であって、
前記端末装置からのリクエストを受信した際に、その端末装置がパケットを待ち受けるためのポート番号を決定する決定手段と、
前記決定手段で決定したポート番号を、前記端末装置へ通知する通知手段と、
前記中継装置を介して前記端末装置へパケットを送信する場合に、前記中継装置が受信するパケットの処理方法を定義するフローエントリを、該中継装置へ設定する設定手段と
を有する。
【発明の効果】
【００１９】
本発明によれば、複数の送信先へ同一のデータを効率的にかつ安全に配信することできる。
【図面の簡単な説明】
【００２０】
【図１】ＯｐｅｎＦｌｏｗの仕組みを説明するための図である。
【図２】配信システムの最小構成を示す図である。
【図３】図１の配信システムを構成する各種機器のハードウェア構成を示す図である。
【図４】配信システムの処理シーケンスを示す図である。
【図５】フローテーブルに設定するフローエントリの一例を示す図である。
【図６】フローテーブルに設定するフローエントリの一例を示す図である。
【図７】フローテーブルに設定するフローエントリの一例を示す図である。
【図８】配信リストの一例を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００２２】
図２は配信システムの最小構成を示す図である。
【００２３】
尚、図２において、図１と同一の構成要素については、同一の参照番号を付加している。
【００２４】
情報処理装置である配信サーバ１０６は、映像等のデータを所定の配信方式でパケットを配信するサーバ装置である。この所定の配信方式には、例えば、ストリーミング、ダウンロード、プログレッシブダウンロード等がある。ここでは、所定の配信方式が、ストリーミングである場合を例に挙げて説明する。
【００２５】
端末装置１〜ｎ（１０３〜１０５）は、配信サーバ１０６から送信されるパケットを受信する端末装置である。配信サーバ１０６、及び端末装置１〜ｎ（１０３〜１０５）は、ＯｐｅｎＦｌｏｗ機能（非特許文献１に従うＯｐｅｎＦｌｏｗ仕様）を具備するＯｐｅｎＦｌｏｗスイッチ１０２とネットワークを介して接続している。中継装置であるＯｐｅｎＦｌｏｗスイッチ１０２は、ネットワークを介して各種機器と接続するための１つ以上の物理的なポートを有している。ここでは、端末装置１（１０３）は、ＯｐｅｎＦｌｏｗスイッチ１０２の１番ポート、端末装置２はＯｐｅｎＦｌｏｗスイッチ１０２の２番ポート、端末装置ｎ（１０５）はＯｐｅｎＦｌｏｗスイッチ１０２のｎ番ポートに接続しているとする。
【００２６】
また、図１で説明したように、ＯｐｅｎＦｌｏｗスイッチ１０２は、ＯｐｅｎＦｌｏｗコントローラ１０１（中継装置（ＯｐｅｎＦｌｏｗスイッチ１０２）を制御してネットワークの経路制御を行う経路制御装置）により制御され、ＯｐｅｎＦｌｏｗコントローラ１０１により設定されるフローテーブル１０２ａ（図１）を記憶している。このフローテーブル１０２ａは、上述のように、ルールとアクションからなるフローエントリで構成され、ネットワークを介して受信するパケットの条件毎の、ＯｐｅｎＦｌｏｗスイッチ１０２によるパケットの処理方法（データ転送方法）を定義している。
【００２７】
尚、図１のシステムを構成する各種機器を相互に接続するネットワークは、有線ネットワーク、無線ネットワーク、及びそれらの任意の組み合わせで構成することができる。
【００２８】
図３は図１の配信システムを構成する各種機器のハードウェア構成を示す図である。
【００２９】
ＯｐｅｎＦｌｏｗコントローラ１０１、ＯｐｅｎＦｌｏｗスイッチ１０２、端末装置１〜ｎ（１０３〜１０５）、及び配信サーバ１０６は、それぞれ情報処理装置によって実現される。この情報処理装置のハードウェア構成としては、例えば、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、外部記憶装置３０４、及び通信装置３０５を有する。
【００３０】
各種機器を実現する情報処理装置では、ＲＯＭ３０２、ＲＡＭ３０３及び外部記憶装置３０４のいずれかに記憶された、以下で説明する各種機器の機能及び動作、処理を実現するプログラムがＣＰＵ３０１により実行される。そして、各種種機器は、通信装置３０５を用いて、各種機器間の通信を行う。
【００３１】
尚、図３では、各種機器を実現する情報処理装置は、１つの通信装置３０５を有するとしているが、例えば、接続する機器の数に応じて、複数の通信装置を有してもよい。また、各種機器は、以下に説明する各機能を実行する専用のハードウェアを備えてもよいし、一部をハードウェアで実行し、プログラムを動作させるコンピュータでその他の部分を実行してもよい。また、以下の全機能をコンピュータとプログラムにより実行させてもよい。
【００３２】
次に、図４を利用して、端末装置が配信サーバからストリーミングによってパケットを受信するまでの処理シーケンスを説明する。尚、図４は、図２に示すシステム構成における処理シーケンスを示している。また、図４に示される各種機器は、自身のＣＰＵ３０１が、ＲＯＭ３０２に記憶されているプログラムを読み出し、実行することで、図４を用いて説明する、各種機器が実行する動作を実現する。
【００３３】
まず、端末装置１（１０３）が配信サーバ１０６からのストリーミングによってパケットの受信を希望すると、端末装置１（１０３）は配信サーバ１０６に対して視聴リクエストを送信する（Ｓ４０１）。ここで、端末装置１（１０３）が配信サーバ１０６に接続するための、配信サーバ１０６のＩＰアドレスとポート番号は既知とする。また、ＯｐｅｎＦｌｏｗスイッチ１０２のフローテーブル１０２ａには、「宛先ＩＰアドレスが配信サーバ１０６のものであるパケットを配信サーバ１０６が接続されているポートから出力する」フローエントリが、ＯｐｅｎＦｌｏｗコントローラ１０１によって予め設定されているものとする。
【００３４】
端末装置１（１０３）からの視聴リクエストが、ＯｐｅｎＦｌｏｗスイッチ１０２を経由して配信サーバ１０６に到着すると、配信サーバ１０６は端末装置１（１０３）がパケットを受信するための待ち受けポート番号を決定し、その待ち受けポート番号を端末装置１（１０３）に通知する（Ｓ４０３）。以降、端末装置１（１０３）はそのポート番号で配信サーバ１０６からのパケットの到着を待ち受けることになる。また、配信サーバ１０６は、ＯｐｅｎＦｌｏｗコントローラ１０１に対して、ＯｐｅｎＦｌｏｗスイッチ１０２へのフローエントリ設定リクエストを送信する（Ｓ４０２）。フロー設定リクエストには、端末装置１（１０３）のＩＰアドレス、待ち受けポート番号、配信サーバ１０６のＩＰアドレス、及びフラグを含めるとする。フラグには、端末の追加または削除を表すフラグが設定され、前記の場合は追加フラグが設定される。
【００３５】
尚、端末装置に対して、配信サーバ１０６が決定する待ち受けポート番号は、例えば、その端末装置に、未使用のポート番号を問い合わせて、その未使用のポート番号と、別途、配信サーバ１０６で管理している使用済の待ち受けポート番号とを比較して、重複しないポート番号を待ち受けポート番号に決定する。
【００３６】
配信サーバ１０６からのフローエントリ設定リクエストを受信したＯｐｅｎＦｌｏｗコントローラ１０１は、そのフローエントリ設定リクエストに従ってフローエントリを作成し、ＯｐｅｎＦｌｏｗスイッチ１０２のフローテーブル１０２ａに設定する（Ｓ４０４）。この時のフローエントリの一例を、図５に示す。
【００３７】
図５では、配信サーバ１０６のＩＰアドレス（送信元アドレス）を１９２．１６８．１００．１００、端末装置１（１０３）のＩＰアドレス（宛先アドレス）を１９２．１６８．０．１、ＩＰプロトコル種別をＵＤＰ、宛先ポート番号（配信サーバ１０６が端末装置１（１０３）向けに指定した待ち受けポート番号）を６１６１６とした、「ルール」が設定されている。また、このルールで設定される条件にマッチするパケットは、端末装置１（１０３）が接続しているＯｐｅｎＦｌｏｗスイッチ１０２の１番ポートから出力することを示す「アクション（１）」が設定されている。
【００３８】
そして、ＯｐｅｎＦｌｏｗコントローラ１０１は、ＯｐｅｎＦｌｏｗスイッチ１０２のフローテーブル１０２ａへのフローエントリの設定が完了すると、配信サーバ１０６に対して、フロー設定完了通知を送信する（Ｓ４０５）。これを受けて、配信サーバ１０６は、端末装置１（１０３）へのストリーム配信を実行する（Ｓ４０６）。
【００３９】
次に、端末装置２（１０４）が配信サーバ１０６に視聴リクエストを送信したとする（Ｓ４０７）。端末装置２（１０４）からの視聴リクエストがＯｐｅｎＦｌｏｗスイッチ１０２を経由して配信サーバ１０６に到着すると、配信サーバ１０６は端末装置２（１０４）の待ち受けポート番号を決定し、その待ち受けポート番号を端末装置２（１０４）に通知する（Ｓ４０９）。以降、端末装置２（１０４）はそのポート番号で配信サーバ１０６からのパケットの到着を待ち受けることになる。また、配信サーバ１０６は、ＯｐｅｎＦｌｏｗコントローラ１０１に対して、ＯｐｅｎＦｌｏｗスイッチ１０２へのフローエントリ設定リクエストを送信する（Ｓ４０８）。フロー設定リクエストには、端末装置２（１０４）のＩＰアドレス、待ち受けポート番号、配信サーバ１０６のＩＰアドレス、追加フラグを含めるとする。
【００４０】
配信サーバ１０６からのフローエントリ設定リクエストを受信したＯｐｅｎＦｌｏｗコントローラ１０１は、そのフローエントリ設定リクエストに従ってフローエントリを作成し、ＯｐｅｎＦｌｏｗスイッチ１０２のフローテーブル１０２ａに設定する（Ｓ４１０）。この時のフローエントリの一例を、図６に示す。
【００４１】
図６では、端末装置２（１０４）のＩＰアドレス（宛先アドレス）を１９２．１６８．０．２、端末装置２（１０４）の待ち受けポート番号（宛先ポート番号）を５５１３２に書き換え、端末装置２（１０４）が接続しているＯｐｅｎＦｌｏｗスイッチ１０２の２番ポートからパケットを出力することを示す「アクション（２）」が設定されている。図６のフローエントリにより、ＯｐｅｎＦｌｏｗスイッチ１０２では、配信サーバ１０６から端末装置１（１０３）へのストリーミング配信を継続（アクション（１））しつつ、ルールにマッチするパケットに対して宛先アドレスとポート番号を書き換えたパケットを端末装置２（１０４）が接続しているＯｐｅｎＦｌｏｗスイッチ１０２の２番ポートからも出力（アクション（２））する。これにより、配信サーバ１０６からのパケットはＯｐｅｎＦｌｏｗスイッチ１０２で分岐されて端末装置１（１０３）と端末装置２（１０４）に到着するようになる。
【００４２】
そして、ＯｐｅｎＦｌｏｗコントローラ１０１は、ＯｐｅｎＦｌｏｗスイッチ１０２のフローテーブル１０２ａへのフローエントリの設定が完了すると、配信サーバ１０６に対して、フロー設定完了通知を送信する（Ｓ４１２）。これを受けて、配信サーバ１０６は、端末装置１（１０３）へのストリーム配信を実行する（Ｓ４１１）。
【００４３】
図７は、端末装置１（１０３）が配信サーバ１０６からのストリーム視聴を中止した後のフローエントリを示す。端末装置１（１０３）が配信サーバ１０６に中止リクエストを送信する（Ｓ４１３）。配信サーバ１０６がその中止リクエストを受信すると、配信サーバ１０６は、ＯｐｅｎＦｌｏｗコントローラ１０１にフローエントリ設定リクエストを送信する（Ｓ４１４）。フロー設定リクエストには、端末装置１（１０３）のＩＰアドレス、待ち受けポート番号、配信サーバ１０６のＩＰアドレス、及び削除フラグを含めるとする。
【００４４】
配信サーバ１０６からのフローエントリ設定リクエストを受信したＯｐｅｎＦｌｏｗコントローラ１０１は、そのフローエントリ設定リクエストに従ってフローエントリを作成し、ＯｐｅｎＦｌｏｗスイッチ１０２のフローテーブル１０２ａに設定する（Ｓ４１５）。この場合、端末装置１（１０３）へのパケット送信を中止するフローエントリが設定される。具体的には、図７に示すように、フローテーブル１０２ａから、１番ポートからパケットを出力するアクション（１）が削除され、図６におけるアクション（２）がアクション（１）に繰り上がることになる。
【００４５】
そして、ＯｐｅｎＦｌｏｗコントローラ１０１は、ＯｐｅｎＦｌｏｗスイッチ１０２のフローテーブル１０２ａへのフローエントリの設定が完了すると、配信サーバ１０６に対して、フロー設定完了通知を送信する（Ｓ４１６）。
【００４６】
尚、上記実施形態では、ＯｐｅｎＦｌｏｗスイッチ１０２が１台だけの簡単な構成での動作例を説明しているが、これに限定されない。ＯｐｅｎＦｌｏｗスイッチ１０２が複数台で構成されるネットワークにおいても、ＯｐｅｎＦｌｏｗコントローラ１０１がネットワーク構成（トポロジー）を適切に把握していれば、同様の手順によりＯｐｅｎＦｌｏｗコントローラ１０１が適切なＯｐｅｎＦｌｏｗスイッチ１０２にフローエントリを設定することができる。ＯｐｅｎＦｌｏｗコントローラ１０１は、例えば、非特許文献４にあるように、ＬＬＤＰ（Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）を利用することで、複数台のＯｐｅｎＦｌｏｗスイッチ１０２で構成されたネットワークのトポロジーを把握することができる。
【００４７】
また、ＯｐｅｎＦｌｏｗスイッチ１０２が複数台で構成されるネットワークとしては、ＯｐｅｎＦｌｏｗスイッチ１０２が、カスケード接続されている場合には、そのネットワーク構成（トポロジー）、及び各ＯｐｅｎＦｌｏｗスイッチ１０２のフローテーブル１０２ａで設定されているフローエントリの内容に関するネットワーク情報を、メモリ等の記憶媒体（ＲＡＭ３０３あるいは外部記憶装置３０４）に記憶しておく。そして、あるＯｐｅｎＦｌｏｗスイッチ１０２に対して、フローエントリの設定の変更が発生した場合には、配信サーバ１０６は、そのネットワーク情報を参照して、処理対象のＯｐｅｎＦｌｏｗスイッチ１０２のフローエントリの設定の変更に加えて、そのフローエントリの設定の変更によって影響を受ける他のＯｐｅｎＦｌｏｗスイッチ１０２に対するフローエントリを修正するようにしても良い。
【００４８】
また、上記実施形態では、配信サーバ１０６とＯｐｅｎＦｌｏｗコントローラ１０１は物理的に別体の装置として説明しているが、これに限定されない。配信サーバ１０６がＯｐｅｎＦｌｏｗコントローラ１０１の機能も併せて持ち、配信サーバ１０６がＯｐｅｎＦｌｏｗスイッチ１０２にフローエントリ設定を行うようにしてもよい。
【００４９】
配信サーバ１０６は、ストリーミングの配信先を管理するために、図８に示す配信リストを保持する。この配信リストは、例えば、配信サーバ１０６のＲＡＭ３０３あるいは外部記憶装置３０４に記憶される。この配信リストは、配信先となる端末装置に関する情報（端末情報）として、宛先ＩＰアドレス、宛先ポート番号、及び状態から構成される。宛先ＩＰアドレスは、配信サーバ１０６からパケットを受信する端末装置のＩＰアドレス、宛先ポート番号は、端末装置がパケットを待ち受けるポート番号である。状態は、端末装置の状態を表しており、以下の３つの状態を持つものとする。
【００５０】
●  ｍａｓｔｅｒ−ｃｏｎｎｅｃｔ
●  ｍａｓｔｅｒ−ｄｉｓｃｏｎｎｅｃｔ
●  ｃｏｎｎｅｃｔ
【００５１】
「ｍａｓｔｅｒ−ｃｏｎｎｅｃｔ」（第１の状態）は、配信サーバ１０６から送信されるパケットの宛先ＩＰアドレス／宛先ポート番号を有する端末装置であり、かつその端末装置が配信サーバ１０６からのストリーミングによるパケットを受信している状態を表している。「ｍａｓｔｅｒ−ｄｉｓｃｏｎｎｅｃｔ」（第２の状態）は、配信サーバ１０６から送信されるパケットの宛先ＩＰアドレス／宛先ポート番号を有する端末装置であるが、その端末装置は配信サーバ１０６からのストリーミングによるパケットを受信していない状態を表している。「ｃｏｎｎｅｃｔ」（第３の状態）は、端末装置が配信サーバ１０６からのストリーミングによるパケットを受信している状態を表している。
【００５２】
最初に、配信サーバ１０６に接続した端末装置が「ｍａｓｔｅｒ−ｃｏｎｎｅｃｔ」となり、以降に接続した端末装置は「ｃｏｎｎｅｃｔ」となる。「ｃｏｎｎｅｃｔ」状態の端末装置がストリーミングによるパケットの受信を中止した場合、その端末装置に対応する端末情報は配信リストから削除される。
【００５３】
一方、「ｍａｓｔｅｒ−ｃｏｎｎｅｃｔ」状態の端末装置がストリーミング受信を中止した場合は、その端末装置の状態を「ｍａｓｔｅｒ−ｄｉｓｃｏｎｎｅｃｔ」へ遷移する。配信リストが「ｍａｓｔｅｒ−ｄｉｓｃｏｎｎｅｃｔ」状態の端末装置のみを管理している場合、その配信リストを空（クリア）とし、配信サーバ１０６からのストリーミングによるパケットの送信を中止する。
【００５４】
また、配信リストが「ｍａｓｔｅｒ−ｄｉｓｃｏｎｎｅｃｔ」状態の端末装置を管理している状態で、更に、「ｃｏｎｎｅｃｔ」状態の端末装置を管理している場合には、配信サーバ１０６からのストリーミングによるパケットの送信を継続する。
【００５５】
以上説明したように、本実施形態によれば、配信サーバ１０６はそれぞれ異なるＩＰアドレス、ポート番号で待ち受ける端末装置に対して同一のデータを配信することができる。これにより、ＩＰマルチキャストアドレスを利用せず、通常、端末装置に付与されるユニキャストＩＰアドレスのみで、安定したマルチキャスト配信を実現できる。また、端末装置は、それぞれ異なるＩＰアドレス、ポート番号でパケットを受信するので、ストリーミングに対するサービス妨害攻撃を抑制することができる。
【図１】
2015095730.tif 000003
【図２】
2015095730.tif 000004
【図３】
2015095730.tif 000005
【図４】
2015095730.tif 000006
【図５】
2015095730.tif 000007
【図６】
2015095730.tif 000008
【図７】
2015095730.tif 000009
【図８】
2015095730.tif 000010