(57)【要約】【課題】  複数の受信端末に同一のストリーミングデータを転送する場合、ＴＣＰコネクションをエンドツーエンドで確立できない【解決手段】  送信側において、同一のデータ部を有するパケットの少なくとも１つのパケットについてデータ部を削除し、そのデータ部を含むオリジナルデータパケットを特定する情報を付加した縮約パケットを生成して送信し、受信側において、オリジナルデータパケット及び縮約パケットに基づいて、その縮約パケットに対応する縮約前のパケットを再構築し、送信する。【選択図】      図１
2014003569.tif 000002
【特許請求の範囲】
【請求項１】
複数のパケットを受信し、
同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを送信する縮約手段と、
前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する再構築手段と、
を含むデータ転送装置。
【請求項２】
前記縮約手段は、前記パケットの受信時刻の時間差が特定の範囲である前記受信した複数のパケットのいずれかの内から、前記検出パケットを検出する
ことを特徴とする請求項１記載のデータ監視装置。
【請求項３】
前記縮約手段は、前記検出パケットのデータ部のハッシュ値を生成し、前記オリジナルデータパケットを特定する情報として前記ハッシュ値を付加して前記縮約パケットを生成する
ことを特徴とする請求項１または２記載のデータ監視装置。
【請求項４】
前記縮約手段は、前記受信した複数のパケットであって、同一の前記再構築手段に送信する複数の前記パケットの内から、前記検出パケットを検出する
ことを特徴とする請求項１乃至３のいずれか１項に記載のデータ監視装置。
【請求項５】
前記縮約手段は、前記同一のデータ部を有するパケットを送受信するコネクション数を監視し、前記コネクション数が２以上の場合に前記縮約パケットを生成し、前記コネクション数が１以下の場合に前記縮約パケットを生成しない
ことを特徴とする請求項１乃至４のいずれか１項に記載のデータ監視装置。
【請求項６】
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出する手段と、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成する手段と、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する、再構築手段へ送信する手段と、を含む、
データ転送装置。
【請求項７】
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、前記オリジナルデータパケット及び前記縮約パケットを、送信する縮約手段から、前記オリジナルデータパケット及び前記縮約パケットを受信する手段と、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築する手段と、
前記再構築した前記縮約前のパケットを送信する手段と、を含む
データ転送装置。
【請求項８】
複数のパケットを受信し、
同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する、再構築手段
へ送信する
データ転送方法。
【請求項９】
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、前記オリジナルデータパケット及び前記縮約パケットを、送信する縮約手段から、前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する
データ転送方法。
【請求項１０】
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出する処理と、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成する処理と、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する再構築手段へ送信する処理と、をコンピュータに実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送装置、データ転送システム、データ転送方法、及びそのためのプログラムに関し、特にストリーミングデータを転送するデータ転送装置、データ転送システム、データ転送方法、及びそのためのプログラムに関する。
【背景技術】
【０００２】
ストリーミングデータの転送に関し、さまざまな関連技術が知られている。
【０００３】
例えば、特許文献１は、複数のマルチキャストを集約することによって、多数のマルチキャストに対する配信断監視及び配信回復検出を一括して行う放送型マルチキャスト通信サービスシステムを開示する。
【０００４】
また、非特許文献１は、ライブストリーミングシステムの一例を紹介している。
【０００５】
上述の特許文献１及び非特許文献１などで利用される、複数クライアントへ同一データを同時に配信するシステムは、例えば、図２２に示すようなライブストリーミングシステムである。
【０００６】
図２２に示すように、ライブストリーミングシステムは、配信サーバ１０１、マルチキャスト対応手段１０２、マルチキャスト対応手段１０３及び受信端末１０４とから構成されている。尚、配信サーバは、ライブストリーミングサーバとも呼ばれる。また、受信端末は、ライブストリーミング受信端末とも呼ばれる。
【０００７】
図２３は、マルチキャスト対応手段１０２の構成を示すブロック図である。図２３に示すようにマルチキャスト対応手段１０２は、パケットヘッダＤＢ（ＤａｔａＢａｓｅ）２０１、ユニキャスト・マルチキャスト変換手段２０２、解析手段２０３及び送受信インタフェース２０４を含む。尚、マルチキャスト対応手段１０３は、マルチキャスト対応手段１０２と同じ構成である。
【０００８】
上述の構成を有するライブストリーミングシステムの各構成要素は、次のように動作する。
【０００９】
受信端末１０４は、配信要求パケットを、配信サーバ１０１に対して送信する。ここで、配信要求パケットは、ライブストリーミングデータの配信を要求するライブストリーミングデータ配信要求（配信要求とも呼ばれる）を含むパケット（配信要求パケット）である。
【００１０】
配信サーバ１０１は受信端末１０４から配信要求パケットを受信する。次に、配信サーバ１０１は、その受信端末１０４を宛先にして、受信した配信要求に応答して、データパケットをユニキャストパケットで送信する。ここで、データパケットは、ライブストリーミングデータを含むパケットである。
【００１１】
マルチキャスト対応手段１０２の送受信インタフェース２０４は、配信サーバ１０１が送信したパケット（ここでは、データパケット）を受信する。
【００１２】
次に、マルチキャスト対応手段１０２の解析手段２０３は、その送受信インタフェース２０４が受信パケットのヘッダを解析し、その結果を出力する。具体的には、解析手段２０３は、パケットの送信元アドレス、パケットの宛先アドレス、受信ＴＣＰポート番号、送信ＴＣＰポート番号を解析し、その結果（ここでは、「データパケットの受信」という結果）を出力する。
【００１３】
次に、解析手段２０３による解析の結果が「データパケットの受信」である場合、マルチキャスト対応手段１０２のユニキャスト・マルチキャスト変換手段２０２は、その受信したデータパケットであるユニキャストパケットをマルチキャストパケットに変換する。このマルチキャストパケットは、その受信したデータパケットに含まれていた、ライブストリーミングデータを含む。尚、宛先が1つの場合、ユニキャスト・マルチキャスト変換手段２０２は、送信元と宛先とがツリー管理されたユニキャストパケットに変換する。
【００１４】
次に、マルチキャスト対応手段１０２の送受信インタフェース２０４は、ユニキャスト・マルチキャスト変換手段２０２が変換したマルチキャストパケットをマルチキャスト対応手段１０３へ送信する。尚、図２２において、マルチキャストパケットは、始端が黒四角の矢印線で示される。
【００１５】
マルチキャスト対応手段１０３の送受信インタフェース２０４は、マルチキャスト対応手段１０２の送受信インタフェース２０４が送信したマルチキャストパケットを受信する。
【００１６】
次に、マルチキャスト対応手段１０３の解析手段２０３は、受信したマルチキャストパケットを、パケットヘッダＤＢ２０１に保持されている情報を参照し、ユニキャストに変換するべきパケットであるか否かを判定する。
【００１７】
ユニキャストパケットに変換するべきマルチキャストパケットと判定した場合、マルチキャスト対応手段１０３のユニキャスト・マルチキャスト変換手段２０２は、予めマルチキャスト対応手段１０３で管理されている配信先を宛先アドレスとして、そのマルチキャストパケットを各配信先に対する個々のユニキャストパケットに変換する。このユニキャストパケットは、上述の配信サーバ１０１が送信したライブストリーミングデータを含む、データパケットである。
【００１８】
次に、マルチキャスト対応手段１０３の送受信インタフェース２０４は、ユニキャスト・マルチキャスト変換手段２０２が変換したユニキャストパケットを、各受信端末１０４へ送信する。
【００１９】
尚、上述の動作において、マルチキャスト対応手段１０２とマルチキャスト対応手段１０３とは、予め論理的な接続を確立している。ここで、「論理的な接続を確立している」とは、マルチキャスト対応手段１０２が、各受信端末１０４がいずれのマルチキャスト対応手段１０３の配下にいるかを管理していることを示す。即ち、マルチキャスト対応手段１０２において、論理的な配信ツリーが確立されていることを示す。
【００２０】
即ち、マルチキャスト対応手段１０２は、特定のストリーミングデータパケットを、どのマルチキャスト対応手段１０３に送ればよいかを示す情報を、パケットヘッダＤＢ２０１に保持しているものとする。また、パケットヘッダＤＢ２０１は、マルチキャスト対応手段１０３の解析手段２０３が上述の判定をするための情報（例えば、配信要求パケットに含まれる情報）を保持している。
【００２１】
この「予め論理的な接続を確立」する方法としては、マルチキャスト対応手段１０３が最初に受信端末１０４から配信要求を受信したときに、マルチキャスト対応手段１０２とマルチキャスト対応手段１０３との間で、必要な情報をやりとりするようにしてよい。或いは、マルチキャスト対応手段１０２とマルチキャスト対応手段１０３とが、分散的に配信の必要を検出し、配信ツリーに組み込むようにしてもよい。
【００２２】
以上説明したように、図２２に示すマルチキャスト対応手段１０２及びマルチキャスト対応手段１０３は、複数クライアントへ同一データを同時に配信する場合の、回線負荷を軽減する、
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】特開２００６−２４６３３１号公報
【非特許文献】
【００２４】
【非特許文献１】Optimizing Streaming Video Delivery with Citrix Branch Repeater and Qumu VideoEdge (インターネットURL https://support.citrix.com/servlet/KbServlet/download/27331-102-671608/Citrix%20Branch%20Repeater%20and%20Qumu%20VideoEdge.pdf)
【発明の概要】
【発明が解決しようとする課題】
【００２５】
しかしながら、上述した先行技術文献に記載された技術においては、複数の受信端末に同一のストリーミングデータを転送する場合において、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）コネクションをエンドツーエンドで確立できないという問題点がある。
【００２６】
その理由は、上述した先行技術文献に記載された技術においては、通信トラフィックを削減するために、マルチキャストプロトコルを使用しているからである。即ち、配信サーバ１０１と受信端末１０４との通信経路中にあるマルチキャスト対応手段１０２とマルチキャスト対応手段１０３とは、マルチキャスト通信を行う場合にＴＣＰコネクションを一旦終端するからである。
【００２７】
ＴＣＰコネクションをエンドツーエンドで確立できないと、配信サーバ１０１は、各受信端末１０４を、個別の受信端末１０４として認識することができない。従って、配信サーバ１０１は、各受信端末１０４個別に課金処理を行うことができない。また、複数の配信サーバ１０１間の連携によるストリーミングデータの配信において、不具合（配信の中断）が発生する場合がある。
【００２８】
本発明の目的は、上述した問題点を解決するデータ転送装置、データ転送システム、データ転送方法、及びそのためのプログラムを提供することにある。
【課題を解決するための手段】
【００２９】
本発明の第１のデータ転送装置は、
複数のパケットを受信し、
同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを送信する縮約手段と、
前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する再構築手段と、を含む。
【００３０】
本発明の第２のデータ転送装置は、
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出する手段と、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成する手段と、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する、再構築手段へ送信する手段と、を含む。
【００３１】
本発明の第３のデータ転送装置は、
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、前記オリジナルデータパケット及び前記縮約パケットを、送信する縮約手段から、前記オリジナルデータパケット及び前記縮約パケットを受信する手段と、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築する手段と、
前記再構築した前記縮約前のパケットを送信する手段と、を含む。
【００３２】
本発明の第１のデータ転送方法は、
複数のパケットを受信し、
同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する、再構築手段。
【００３３】
本発明の第２のデータ転送方法は、
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、前記オリジナルデータパケット及び前記縮約パケットを、送信する縮約手段から、前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する。
【００３４】
本発明のプログラムは、
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出する処理と、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成する処理と、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する再構築手段へ送信する処理と、をコンピュータに実行させる。
【発明の効果】
【００３５】
本発明は、ストリーミングデータの転送においてＴＣＰコネクションをエンドツーエンドで維持しつつ、通信トラフィックを削減することが可能になるという効果がある。
【図面の簡単な説明】
【００３６】
【図１】図１は、第１の実施形態に係るデータ転送装置の構成を示すブロック図である。
【図２】図２は、第１の実施形態に係るデータ転送装置を含むライブストリーミングシステムの構成と動作との一例を示す模式図である。
【図３】図３は、第１の実施形態に係る縮約部の構成を示すブロック図である。
【図４】図４は、第１の実施形態における配信要求リストの一例を示す図である。
【図５】図５は、第１の実施形態における再構築情報リストの一例を示す図である。
【図６】図６は、第１の実施形態に係る再構築部の機能構成を示すブロック図である。
【図７】図７は、第１の実施形態における縮約と再構築との具体的な例を示す図である。
【図８】図８は、第１の実施形態に係るデータ転送装置を実現するコンピュータのハードウェア構成を示すブロック図である。
【図９】図９は、第１の実施形態に係るデータ転送装置を含むライブストリーミングシステムの構成と動作との一例を示す模式図である。
【図１０】図１０は、第１の実施形態におけるデータ転送装置が再構築情報リストを通知する動作を示すシーケンス図である。
【図１１】図１１は、第１の実施形態におけるデータ転送装置の動作を示すシーケンス図である。
【図１２】図１２は、第１の実施形態におけるデータ転送装置の動作を示すシーケンス図である。
【図１３】図１３は、第１の実施形態における再構築部が配信要求リストを更新する動作を示すフローチャートである。
【図１４】図１４は、第１の実施形態における縮約部がデータパケットを処理する動作を示すフローチャートである。
【図１５】図１５は、第１の実施形態における再構築部が縮約データパケットを処理する動作を示すフローチャートである。
【図１６】図１６は、第１の実施形態における再構築部が縮約データパケットを処理する動作を示すフローチャートである。
【図１７】図１７は、第２の実施形態に係るデータ転送装置を含むライブストリーミングシステムの構成の一例を示すブロック図である。
【図１８】図１８は、第２の実施形態における配信要求リストの一例を示す図である。
【図１９】図１９は、第２の実施形態における配信要求リストの一例を示す図である。
【図２０】図２０は、第２の実施形態における再構築情報リストの一例を示す図である。
【図２１】図２１は、第２の実施形態における再構築情報リストの一例を示す図である。
【図２２】図２２は、関連技術に係るライブストリーミングシステムの例を示すブロック図である。
【図２３】図２３は、関連技術に係るマルチキャスト対応手段の構成を示すブロック図である。
【発明を実施するための形態】
【００３７】
本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の機能を備える構成要素には同様の符号が与えられている。
【００３８】
尚、以下の説明において、ライブストリーミングは、例えば音声や動画などのマルチメディアコンテンツを配信・再生するストリーミング技術を応用した、データ配信方法を示す。このライブストリーミングは、配信側が放送の形態（配信時刻を配信側が決定する形態）でコンテンツ（ストリーミングデータ）を配信（送信）するデータ配信方法を示す。ライブストリーミングで配信されるコンテンツは、例えば、ライブカメラの映像、個人の発信するライブ映像及び既存メディアであるテレビ放送やラジオ放送のコンテンツである。
【００３９】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るデータ転送装置４００の構成を示すブロック図である。
【００４０】
図１を参照すると、本実施形態に係るデータ転送装置４００は、縮約部４０１と、再構築部４０２とを含む。
【００４１】
図２は、本実施形態に係るデータ転送装置４００を含むライブストリーミングシステムの構成と動作との一例を示す模式図である。
【００４２】
まず、図１及び図２を参照して、本実施形態に係るデータ転送装置４００の全体を説明する。
【００４３】
図２を参照すると、本実施形態におけるライブストリーミングシステムは、配信サーバ１０１、第１のデータ転送装置４００Ａ、第２のデータ転送装置４００Ｂ、受信端末１０４、通信経路１０８及び通信経路１０９とを含む。本実施形態において、第１のデータ転送装置４００Ａ、第２のデータ転送装置４００Ｂは、総称してデータ転送装置４００とも呼ばれる。
【００４４】
第１のデータ転送装置４００Ａは、縮約部４０１と、再構築部４０２とを備える。第１のデータ転送装置４００Ａの縮約部４０１は、配信サーバ１０１からのデータパケットを受信する。続けて、第１のデータ転送装置４００Ａの縮約部４０１は、縮約処理されたデータパケットを含むデータパケットを、通信経路１０８を介して再構築部４０２に出力する。第１のデータ転送装置４００Ａの再構築部４０２は、データパケットを通信経路１０８から受信する。続けて、第１のデータ転送装置４００Ａの再構築部４０２は、再構築されたデータパケットを、送信先（宛先）の受信端末１０４または第２のデータ転送装置４００Ｂに出力する。
【００４５】
一方、第２のデータ転送装置４００Ｂは、縮約部４０１と、再構築部４０２とを備える。第２のデータ転送装置４００Ｂの縮約部４０２は、第１のデータ転送装置４００Ａの再構築部４０２からのデータパケットを受信する。続けて、第２のデータ転送装置４００Ｂの縮約部４０２は、縮約処理されたデータパケットを含むデータパケットを、通信経路１０９を介して再構築部４０２に出力する。第２のデータ転送装置４００Ｂの再構築部４０２は、データパケットを通信経路１０９から受信する。続けて、第２のデータ転送装置４００Ｂの再構築部４０２は、再構築されたデータパケットを送信先（宛先）の受信端末１０４に出力する。
【００４６】
尚、配信サーバ１０１及び受信端末１０４の台数は、図２に示す構成に係わらず、任意の数であってよい。また、通信経路とそれに対応するデータ転送装置４００も任意の数であってよい。また、データ転送装置４００は、第１のデータ転送装置４００及び第２のデータ転送装置４００のように多段に接続されてもよい。
【００４７】
また、配信サーバ１０１と縮約部４０１との間の通信経路、再構築部４０２と受信端末１０４との間の通信経路及びネットワーク機器（例えば、スイッチ、ルータ）は、図示しない。同様に、カスケード接続されたデータ転送装置４００間の通信経路も図示しない。ここで、カスケード接続されたデータ転送装置４００間の通信経路は、例えば、図２における第１のデータ転送装置４００の再構築部４０２と第２のデータ転送装置４００の縮約部４０１との間の通信経路である。
【００４８】
受信端末１０４は、ライブストリーミングデータの配信の要求（配信要求）を、配信要求パケット４４０として送信する。その送信された配信要求パケット４４０は、受信端末１０４と配信サーバ１０１の経路上にある再構築部４０２と縮約部４０１とを経由し、配信サーバ１０１に受信される。
【００４９】
配信サーバ１０１は、受信した配信要求に応答して、ライブストリーミングデータを含むデータパケット４５０を送信する。
【００５０】
配信サーバ１０１から送信されたデータパケット４５０に含まれるライブストリーミングデータは、縮約部４０１と再構築部４０２とを経由し、受信端末１０４で受信される。
【００５１】
上述のライブストリーミングシステムにおいて、データ転送装置４００は、以下のように機能する。
【００５２】
第一に、縮約部４０１は、複数のパケットを受信し、所定の時間内に、同一のデータ部を有するデータパケット４５０及び同一データパケット４６０を検出する。尚、データパケット４５０及び同一データパケット４６０は、検出パケットとも呼ばれる。ここで、同一データパケット４６０は、同一宛先（同一の再構築部４０２）に対する、同一のデータ部を有する二つ目以降のデータパケット４５０である。尚、同一宛先（同一の再構築部４０２）に対する、同一データを持つ一つ目のデータパケット４５０は、先行するデータパケット４５０とも呼ばれる。
【００５３】
尚、縮約部４０１は、所定の時間内に受信したパケットについて、検出パケットを検出してよい。
【００５４】
第二に、縮約部４０１は、同一データパケット４６０のデータ部を縮約した、即ちデータ量を削減した、縮約データパケット４６１を、再構築部４０２に送信する。尚、図２において、縮約データパケット４６１は、始端が黒丸の矢印線で示される。
【００５５】
例えば、縮約部４０１は、同一データパケット４６０のデータ部のデータを削除し、先行するデータパケット４５０のパケットヘッダの情報とデータ部のデータのハッシュ値とを付加して、縮約データパケット４６１を生成する。即ち、縮約部４０１は、同一データパケット４６０のデータ部を、そのデータ部のデータよりサイズが小さいデータで置換し、縮約データパケット４６１を生成する。ここで、そのサイズが小さいデータは、先行するデータパケット４５０であるオリジナルデータパケットを特定するための情報を含む。
【００５６】
第三に、再構築部４０２は、受信した縮約データパケット４６１のデータ部（その縮約データパケット４６１に対応する同一データパケット４６０のデータ部）を復元して、再構築した同一データパケット４６２を生成し、送信する。
【００５７】
例えば、再構築部４０２は、縮約データパケット４６１に付加されたパケットヘッダの情報とデータ部のハッシュ値とに基づいて、オリジナルデータパケット４５１を特定する。そして、再構築部４０２は、オリジナルデータパケット４５１のデータ部に基づいて、縮約データパケット４６１に対応する縮約前の同一データパケット４６０（同一データパケット４６２）を再構築する。尚、オリジナルデータパケット４５１は、同一データの同一宛先に対する一つ目のデータパケット４５０に対応し、縮約部４０１がデータ部を縮約することなく送信したデータパケットである。再構築部４０２はこのオリジナルデータパケット４５１をデータパケットバッファ６０７に保持する。
【００５８】
上述したデータ転送装置４００は、ストリーミングデータの転送においてＴＣＰコネクションをエンドツーエンドで確立したままで、通信トラフィックを削減することが可能になる。
【００５９】
その理由は、データ転送装置４００は、マルチキャストプロトコルを使用しないことでＴＣＰコネクションを維持するようにし、データパケットのデータ部分の縮約と再構成を行うことで通信トラフィックを削減するようにしたからである。
【００６０】
以上が、本実施形態に係るデータ転送装置４００の動作の概要である。
【００６１】
次に、図１に示すデータ転送装置４００が備える各構成要素について説明する。尚、図１に示す構成要素は、ハードウェア単位の構成要素ではなく、機能単位の構成要素を示している。ここでは、データ転送装置４００の構成が第１のデータ転送装置４００Ａであることを前提として説明するが、データ転送装置４００の構成は、第２のデータ転送装置４００Ｂでも同様である。
【００６２】
＝＝＝縮約部４０１＝＝＝
図３は、縮約部４０１の構成を示すブロック図である。縮約部４０１は、送受信インタフェース５０４、解析部５０３、パケットヘッダＤＢ５０５、データパケットバッファ５０７及びデータ縮約部５０１を含む。
【００６３】
＝＝＝送受信インタフェース５０４＝＝＝
送受信インタフェース５０４は、受信インタフェース（不図示）と送信インタフェース（不図示）を含む。受信インタフェースは、縮約部４０１の外部から、パケットを受信する。送信インタフェースは、縮約部４０１の外部へ、パケットを送信する。
【００６４】
＝＝＝解析部５０３＝＝＝
解析部５０３は、送受信インタフェース５０４で受信したパケット（受信パケット）が、配信要求パケット４４０及びデータパケット４５０のいずれかであるか否かを判定する。更に、データパケット４５０である場合に、解析部５０３は、そのデータパケット４５０が同一データパケット４６０であるか否かを判定する。
【００６５】
解析部５０３は、受信パケットが配信要求パケット４４０であるか否かを、その受信パケットのヘッダ部及びデータ部に含まれる情報を解析して判断する。具体的には、解析部５０３は、以下のような手段で、受信パケットを解析し、配信要求パケット４４０であるか否かを判定する。尚、後述の他の種別のパケットの判定の手段、及び図６に示す解析部６０３におけるパケットの判定の手段も、以下に示す手段と同様の手段であってよい。
【００６６】
例えば、縮約部４０１は、図示しない記憶手段、パケットの種別とパケットのヘッダ部の情報との対応表であるパケット解析情報テーブルを記憶する。そして、解析部５０３は、パケット解析情報テーブルを利用し、その受信パケットに含まれる送信元ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、宛先ＩＰアドレス、送信元ＴＣＰポート番号、宛先ＴＣＰポート番号に基づいて、配信要求パケット４４０であるか否かを判断する。
【００６７】
また、ＩＰヘッダの特定フィールドは、縮約部４０１と再構築部４０２との間において特定の意味を定義されてもよい。そして、解析部５０３は、その受信パケットに含まれるＩＰヘッダの特定フィールドの情報に基づいて、配信要求パケット４４０であるか否かを判定するようにしてもよい。
【００６８】
また、データ部は、縮約部４０１と再構築部４０２との間において、特殊な文字列を付加されてもよい。そして、解析部５０３は、その文字列に基づいて、配信要求パケット４４０であるか否かを判定するようにしてもよい。
【００６９】
また、解析部５０３は、受信パケットが所定のデータパケット（データパケット４５０、同一データパケット４６０）であるか否かを、その受信パケットのヘッダ部及びデータ部に含まれる情報を解析して判断する。ただし、同一データパケット４０６は、以下の方法で解析される。
【００７０】
即ちまた、解析部５０３は、データパケット（受信パケット）が同一データパケット４６０であるか否かを、例えば、以下の第１から第３の条件を全て満たすか否かに基づいて判定する。尚、解析部５０３は、以下の第３の条件を満たすか否かにのみ基づいて、データパケットが同一データパケット４６０であるか否かを判定するようにしてもよい。また、尚、解析部５０３は、以下の第１及び第３の条件の両方を満たすか否かにのみ基づいて、データパケットが同一データパケット４６０であるか否かを判定するようにしてもよい。また、尚、解析部５０３は、以下の第２及び第３の条件の両方を満たすか否かにのみ基づいて、データパケットが同一データパケット４６０であるか否かを判定するようにしてもよい。また、
第１の条件は、その受信パケットのヘッダ部の情報と、先行するデータパケット４５０のヘッダ部の情報とが整合することである。この整合は、例えば、それらのヘッダ部の情報における、送信元ＩＰアドレス、送信元ＴＣＰポート番号及び宛先ＴＣＰポート番号のそれぞれ同士が一致することである。尚、先行するデータパケット４５０の送信元ＩＰアドレス、送信元ＴＣＰポート番号及び宛先ＴＣＰポート番号は、例えば、パケットヘッダＤＢ５０５に記憶されている。また、解析部５０３は、データパケットバッファ５０７に記憶されている、先行するデータパケット４５０の送信元ＩＰアドレス、送信元ＴＣＰポート番号及び宛先ＴＣＰポート番号を利用するようにしてもよい。
【００７１】
第２の条件は、そのデータパケット（受信パケット）がその先行するデータパケット４５０の受信時刻から範囲時間Ｔ１の時間内に受信したデータパケットであることである。ここで、範囲時間Ｔ１は、例えば、配信サーバ１０１が先行するデータパケット４５０と同一データパケット４６０とを送信するのに要すると想定される時間である。範囲時間Ｔ１は、例えば、図示しない手段により予め与えられているものとする。また、範囲時間Ｔ１は、解析部５０３がデータパケットの受信状況を分析して算出する（例えば、後述の第３の条件を満たすデータパケットの平均受信間隔に、配信対象の受信端末１０４の台数を乗じる）ようにしてもよい。尚、先行するデータパケット４５０の受信時刻は、例えば、パケットヘッダＤＢ５０５に記憶されている。また、先行するデータパケット４５０の受信時刻は、そのデータパケット４５０に関連付けて、データパケットバッファ５０７に記憶されるようにしてもよい。
【００７２】
第３の条件は、そのデータパケット（受信パケット）のデータ部とその先行するデータパケット４５０のデータ部とが一致することである。尚、解析部５０３は、例えば、データパケットバッファ５０７に記憶されている、先行するデータパケット４５０のデータ部を利用する。
【００７３】
一方、解析部５０３は、受信パケットが配信要求パケット４４０であると判断した場合、パケットヘッダＤＢ５０５の配信要求リストを更新する。ここで、配信要求リストは、配信要求パケット４４０に関する情報を保持する手段の一例である。続けて、解析部５０３は、その配信要求パケット４４０を、送受信インタフェース５０４を介して配信サーバ１０１に送信する。
【００７４】
図４は、パケットヘッダＤＢ５０５に記録される配信要求リスト１４００の一例を示す図である。図４に示すように、配信要求リスト１４００は、１以上の配信要求レコード１４０１からなる。
【００７５】
配信要求レコード１４０１は、例えば、送信元ＩＰアドレス：ＴＣＰポート番号、要求ＵＲＬ及びコネクション数を含む。送信元ＩＰアドレス：ＴＣＰポート番号は、その配信要求パケット４４０の宛先である配信サーバ１０１のＩＰアドレス及びＴＣＰポート番号である。つまり、この送信元ＩＰアドレス：ＴＣＰポート番号は、ライブストリーミングデータのコンテンツを配信する配信サーバのＩＰアドレス及びＴＣＰポート番号を示している。要求ＵＲＬは、その配信要求パケット４４０で指定されるライブストリーミングデータのコンテンツの要求ＵＲＬである。コネクション数は、送信元ＩＰアドレス：ＴＣＰポート番号、要求ＵＲＬのそれぞれが全て一致する配信要求パケット４４０の数である。即ち、コネクション数は、同一のライブストリーミングデータを受信する受信端末１０４の数を示す。
【００７６】
上述の配信要求レコード１４０１に含まれる送信元ＩＰアドレス：ＴＣＰポート番号は、配信サーバ１０１を一意に特定する情報である。また、配信要求レコード１４０１に含まれる要求ＵＲＬは、配信サーバ１０１内でのライブストリーミングデータのコンテンツを一意に特定する情報である。配信要求レコード１４０１は、これらに替えて、特定の配信サーバ１０１の特定のライブストリーミングデータのコンテンツを、一意に特定できる識別情報を含むようにしてもよい。
【００７７】
尚、解析部５０３は、その受信した配信要求パケット４４０といずれかの配信要求レコード１４０１とのそれぞれの、送信元ＩＰアドレス：ＴＣＰポート番号及び要求ＵＲＬが共に一致する場合、その配信要求レコード１４０１のコネクション数を「１」増加させる。また、解析部５０３は、その受信した配信要求パケット４４０と、送信元ＩＰアドレス：ＴＣＰポート番号及び要求ＵＲＬが共に一致する配信要求レコード１４０１が存在しない場合、配信要求リスト１４００に、その配信要求パケット４４０に対応する配信要求レコード１４０１を追加する。
【００７８】
解析部５０３は、受信パケットがデータパケット４５０であると判断した場合で、かつ同一データパケット４６０ではないと判断した場合、そのデータパケット４５０に関する情報を、パケット再構築情報としてパケットヘッダＤＢ５０５の再構築情報リストに記録する。
【００７９】
図５は、再構築情報リスト９００の一例を示す図である。図５に示すように、再構築情報リスト９００は、１以上の再構築情報レコード９０１からなる。再構築情報レコード９０１は、例えば、送信時刻、廃棄予定時刻、宛先ＩＰアドレス、送信元ＩＰアドレス：ＴＣＰポート番号、ハッシュ値、データ長、及び同一パケット数を含む。
【００８０】
送信時刻は、送信元である配信サーバ１０１がデータパケット４５０を送信した時刻に対応する時刻である。具体的には、縮約部４０１が、データパケット４５０を受信した時刻であってよい。
【００８１】
廃棄予定時刻は、その廃棄予定時刻を含む再構築情報レコード９０１自身と、その再構築情報レコード９０１に対応するデータパケット４５０及びオリジナルデータパケット４５１とを廃棄する予定の時刻である。尚、そのデータパケット４５０及びそのオリジナルデータパケット４５１のそれぞれは、データパケットバッファ５０７に記憶されている先行するデータパケット４５０及びデータパケットバッファ６０７に記憶されているオリジナルデータパケット４５１のそれぞれである。
【００８２】
廃棄予定時刻は、例えば、送信時刻に対して、所定の時間（たとえば、１０秒）後の、時刻であってよい。
【００８３】
宛先ＩＰアドレスは、そのデータパケット４５０の宛先である受信端末１０４のＩＰアドレスである。
【００８４】
送信元ＩＰアドレスは、そのデータパケット４５０の送信元である配信サーバ１０１のＩＰアドレスである。
【００８５】
送信元ＴＣＰポート番号は、そのデータパケット４５０の送信元である配信サーバ１０１のＴＣＰポート番号である。
【００８６】
ハッシュ値は、オリジナルデータパケット４５１のデータ部のデータのハッシュ値である。
【００８７】
データ長は、データパケット４５０のデータ部の、バイトで示すデータの長さである。
【００８８】
同一パケット数は、同一のデータ部を含むオリジナルデータパケット４５１と縮約データパケット４６１との合計数である。
【００８９】
尚、解析部５０３は、受信パケットが、データパケット４５０であると判断した場合で、かつ同一データパケット４６０ではないと判断した場合に、再構築情報レコード９０１に記録される同一パケット数は、「１」になる。
【００９０】
縮約部４０１は、同一データパケット４６０の縮約処理を実行するために、再構築情報リスト９００を利用する。また、再構築部４０２は、縮約データパケット４６１の再構築処理を実行するために、再構築情報リスト９００を利用する。
【００９１】
また、縮約部４０１及び再構築部４０２は、オリジナルデータパケット４５１、縮約データパケット４６１、データパケット４５２及び同一データパケット４６２の再送処理の際に、その再構築情報リスト９００を利用してもよい。
【００９２】
尚、縮約部４０１は、その再構築情報リスト９００を、再構築部４０２に通知（詳細は後述）する。
【００９３】
更に、解析部５０３は、受信パケットがデータパケット４５０であると判断した場合で、かつ同一データパケット４６０ではないと判断した場合、その受信パケットを先行するデータパケット４５０としてデータパケットバッファ５０７に記録する。尚、解析部５０３は、そのデータパケット４５０の受信時刻を関連付けて、そのデータパケット４５０をデータパケットバッファ５０７に記録する。或いは、解析部５０３は、その先行するデータパケット４５０のデータ部をデータパケットバッファ５０７に記録し、その先行するデータパケット４５０に対応する再構築情報レコード９０１にそのデータ部の索引情報を含めるようにしてもよい。
【００９４】
次に、解析部５０３は、そのデータパケット４５０を送受信インタフェース５０４に出力する。
【００９５】
また、解析部５０３は、受信パケットが同一データパケット４６０であると判断した場合、その同一データパケット４６０に対する先行するデータパケット４５０に対応する、再構築情報レコード９０１の同一パケット数を「１」増加する。
【００９６】
また、解析部５０３は、受信パケットが同一データパケット４６０であると判断した場合、その同一データパケット４６０をデータ縮約部５０１に出力する。
【００９７】
更に、解析部５０３は、先行するデータパケット４５０を受信した時刻から上述の範囲時間Ｔ１が経過した場合に、その先行するデータパケット４５０に対応する、再構築情報レコード９０１を含む再構築情報パケットを再構築部４０２に送信する。尚、解析部５０３は、その再構築情報パケットで送信した再構築情報レコード９０１を再構築情報リスト９００から削除してよい。更に、解析部５０３は、データパケットバッファ５０７に記憶しているその先行するデータパケット４５０を削除するようにしてもよい。
【００９８】
また、解析部５０３は、受信パケットが配信要求パケット４４０及びデータパケット４５０、同一データパケット４６０のいずれか以外のパケットであると判断した場合、そのパケットに対して特別な処理を実行せずに、そのパケットを送受信インタフェース５０４に出力する。
【００９９】
＝＝＝パケットヘッダＤＢ５０５＝＝＝
パケットヘッダＤＢ５０５は、再構築情報リスト９００及び配信要求リスト１４００を記憶する。
【０１００】
＝＝＝データパケットバッファ５０７＝＝＝
データパケットバッファ５０７は、先行するデータパケット４５０とその先行するデータパケット４５０の受信時刻との組を記憶する。
【０１０１】
＝＝＝データ縮約部５０１＝＝＝
データ縮約部５０１は、同一データパケット４６０のデータ部のハッシュ値を算出する。尚、データ縮約部５０１は、その同一データパケット４６０に対して先行するデータパケット４５０である、データパケット４５０に対応する再構築情報レコード９０１に含まれるハッシュ値を利用するようにしてもよい。
【０１０２】
次に、データ縮約部５０１は、同一データパケット４６０に対応する縮約データパケット４６１を生成する。縮約データパケット４６１の生成において、データ縮約部５０１は、まずデータ部のデータを削除する。次に、データ縮約部５０１は、その同一データパケット４６０に対して先行するデータパケット４５０のパケットヘッダの送信元ＩＰアドレス：ＴＣＰポート番号を付加する。更に、データ縮約部５０１は、算出したハッシュ値を付加する。
【０１０３】
次に、データ縮約部５０１は、生成した縮約データパケット４６１を、送受信インタフェース５０４を介して再構築部４０２に送信する。
【０１０４】
＝＝＝時計部５０６＝＝＝
時計部５０６は、現在時刻を計時し、その現在時刻を解析部５０３に出力する。
【０１０５】
＝＝＝再構築部４０２＝＝＝
図６は、再構築部４０２の構成を示すブロック図である。図６に示すように再構築部４０２は、データ再構築部６０１、解析部６０３、送受信インタフェース６０４、パケットヘッダＤＢ６０５及びデータパケットバッファ６０７を含む。
【０１０６】
＝＝＝送受信インタフェース６０４＝＝＝
送受信インタフェース６０４は、図３に示す送受信インタフェース５０４と同じである。
【０１０７】
＝＝＝解析部６０３＝＝＝
解析部６０３は、送受信インタフェース６０４を介して受信したパケットが配信要求パケット４４０、オリジナルデータパケット４５１、縮約データパケット４６１及び再構築情報パケットのいずれかであるか否かを判定する。
【０１０８】
解析部６０３は、その受信パケットが配信要求パケット４４０であるか否かを、その受信パケットのヘッダ部及びデータ部に含まれる情報を解析して判断する。
【０１０９】
また、解析部６０３は、その受信パケットがオリジナルデータパケット４５１及び縮約データパケット４６１のいずれか（データパケットＰＤと呼ぶ）であるか否かを、その受信パケットのヘッダ部及びデータ部に含まれる情報を解析して判断する。また、そのデータパケットＰＤは、オリジナルデータパケット４５１及び縮約データパケット４６１のいずれかである。
【０１１０】
また、解析部６０３は、そのデータパケットＰＤがオリジナルデータパケット４５１または縮約データパケット４６１のいずれであるかを、例えば、パケットの長さ（またはパケットのデータ部の長さ）に基づいて判定する。具体的には、その長さが所定の閾値以上である場合、解析部６０３は、そのデータパケットＰＤを、先行するデータパケット４５０に対応するオリジナルデータパケット４５１であると判定する。また、その長さが閾値未満である場合、解析部６０３は、そのデータパケットＰＤを、同一データパケット４６０に対応する縮約データパケット４６１であると判定する。
【０１１１】
即ち、そのデータパケットＰＤがオリジナルデータパケット４５１または縮約データパケット４６１のいずれであるかを判定することは、そのデータパケットＰＤがデータに替えてデータ部のハッシュ値を含んでいるか否かを判定することである。
【０１１２】
尚、データ転送装置４００は、縮約部４０１と再構築部４０２との間でＩＰヘッダの特定フィールドの利用を定義し、ハッシュ値を含んでいるか否かを判定するようにしてもよい。また、データ転送装置４００は、縮約部４０１と再構築部４０２との間でデータ部に特殊な文字列を付加することを定義し、ハッシュ値を含んでいるか否かを判定するようにしてもよい。
【０１１３】
また、解析部６０３は、再構築情報パケットであるか否かを、その受信パケットのヘッダ部及びデータ部に含まれる情報を解析して判断する。
【０１１４】
解析部６０３は、配信要求パケット４４０であると判断した場合、図３に示す解析部５０３と同様にして、パケットヘッダＤＢ６０５の配信要求リスト１４００を更新する。続けて、解析部６０３は、そのパケットを、送受信インタフェース６０４を介してデータ再構築部６０１に出力する。
【０１１５】
解析部６０３は、オリジナルデータパケット４５１であると判断した場合、そのオリジナルデータパケット４５１及びそのオリジナルデータパケット４５１のデータ部のデータのハッシュ値との組を、データパケットバッファ６０７に記録する。続けて、解析部６０３は、そのオリジナルデータパケット４５１を、送受信インタフェース６０４を介して受信端末１０４に送信する。
【０１１６】
また、解析部６０３は、縮約データパケット４６１であると判断した場合、その縮約データパケット４６１を、データパケットバッファ６０７に記録する。
【０１１７】
また、解析部６０３は、再構築情報パケットであると判断した場合、その再構築情報パケットに含まれる再構築情報レコード９０１を、パケットヘッダＤＢ６０５の再構築情報リスト９００に追加する。但し、解析部６０３は、その再構築情報レコード９０１に含まれる同一パケット数が「１」であった場合は、その再構築情報レコード９０１を再構築情報リスト９００に追加せず、廃棄する。その理由は、同一パケット数が「１」の再構築情報レコード９０１は、それに対応するデータパケットがオリジナルデータパケット４５１のみであり、それに対応する縮約データパケット４６１は存在しないためである。
【０１１８】
また、解析部６０３は、受信パケットが配信要求パケット４４０、オリジナルデータパケット４５１、縮約データパケット４６１及び再構築情報パケットのいずれか以外のパケットであると判断した場合、そのパケットに対して特別な処理を実行せずに、そのパケットを送受信インタフェース６０４に出力する。
【０１１９】
＝＝＝データ再構築部６０１＝＝＝
データ再構築部６０１は、パケットヘッダＤＢ６０５の再構築情報リスト９００に基づいて、縮約部４０１によって縮約されたライブストリーミングデータを再構築する。
【０１２０】
具体的には、データ再構築部６０１は、再構築情報リスト９００の再構築情報レコード９０１それぞれについて、以下の処理を行う。
【０１２１】
まず、データ再構築部６０１は、データパケットバッファ６０７に保持している縮約データパケット４６１のいずれかを取得し、その縮約データパケット４６１に含まれるハッシュ値と同じ値のハッシュ値を含む再構築情報レコード９０１を探索する。
【０１２２】
その同じ値のハッシュ値を含む再構築情報レコード９０１を検出できなかった場合、データ再構築部６０１は、その縮約データパケット４６１について何の処理も行わない。
【０１２３】
同じ値のハッシュ値を含む再構築情報レコード９０１を検出した場合、データ再構築部６０１は、縮約データパケット４６１のデータ部に含まれるヘッダ情報とハッシュ値とに基づいて、データパケットバッファ６０７からオリジナルデータパケット４５１を検索する。そして、データ再構築部６０１は、縮約データパケット４６１のデータ部のヘッダ情報とハッシュ値とを削除し、検索したオリジナルデータパケット４５１のデータ部を付加して、同一データパケット４６２を生成し、出力する。ここで、同一データパケット４６２は、元のデータパケット４５０に含まれるライブストリーミングデータを含むデータパケットである。
【０１２４】
次に、データ再構築部６０１は、その再構築情報レコード９０１の同一パケット数を「１」減算する。そして、同一パケット数が「１」になった場合、その再構築情報レコード９０１を削除する。
【０１２５】
＝＝＝パケットヘッダＤＢ６０５＝＝＝
パケットヘッダＤＢ６０５は、再構築情報リスト９００及び配信要求リスト１４００を記憶する。
【０１２６】
＝＝＝データパケットバッファ６０７＝＝＝
データパケットバッファ６０７は、オリジナルデータパケット４５１及び縮約データパケット４６１を記憶する。
【０１２７】
次に、図７を参照して、縮約部４０１による縮約処理と再構築部４０２による再構築処理との具体的な例を説明する。図７は、配信サーバ１０１が通信経路１０７に送信したデータパケットを、縮約部４０１が縮約して通信経路１０８に送信し、再構築部４０２が再構築して通信経路１０７へ送信する、場合のデータパケットのイメージを示す図である。
【０１２８】
配信サーバ１０１は、３本のＴＣＰコネクション１０６１、ＴＣＰコネクション１０６２及びＴＣＰコネクション１０６３を用いて、データパケット４５０Ａ、同一データパケット４６０Ｂ及び同一データパケット４６０Ｃを通信経路１０７に送信する。
【０１２９】
図７に示すように、それらのデータパケットのそれぞれは、送信元ＩＰアドレス４５０１、宛先ＩＰアドレス４５０２、送信元ＴＣＰポート番号４５０３、宛先ＴＣＰポート番号４５０４、データ部４５０５から構成されている。
【０１３０】
送信元ＩＰアドレス４５０１は、配信サーバ１０１のＩＰアドレス（図７においては、ｓＩＰと表記）である。宛先ＩＰアドレス４５０２は、ライブストリーミングデータの宛先である、各受信端末１０４のＩＰアドレス（図７においては、ｄＩＰ１、ｄＩＰ２及びｄＩＰ３と表記）である。送信元ＴＣＰポート番号４５０３は、配信サーバ１０１がライブストリーミングデータを送信するＴＣＰポートの番号（図７においては、ｓＴＣＰと表記）である。宛先ＴＣＰポート番号４５０４は、受信端末１０４がライブストリーミングデータを受信するＴＣＰポートの番号（図７においては、ｄＴＣＰと表記）である。データ部４５０５は、同一内容のライブストリーミングデータ（図７においては、ＤＡＴＡと表記）である。
【０１３１】
縮約部４０１は、それらの３つのデータパケットを受信し、以下のように処理する。
【０１３２】
縮約部４０１は、一つ目のデータパケットであるデータパケット４５０Ａには特に何も手は加えず、オリジナルデータパケット４５１Ａとして、ＴＣＰコネクション１０８１を用いて通信経路１０８へ送信する。
【０１３３】
縮約部４０１は、二つ目以降のパケットのそれぞれについて、データ部４５０５のライブストリーミングデータを削除する。そして、縮約部４０１は、それらのパケットそれぞれについて、データパケット４５０Ａの送信元ＩＰアドレス４５０１を送信元ＩＰアドレス４５０７として付加する。更に、縮約部４０１は、それらのパケットそれぞれについて、宛先ＩＰアドレス４５０２を宛先ＩＰアドレス４５０８として付加する。更に、縮約部４０１は、それらのパケットそれぞれについて、データ部４５０５のデータのハッシュ値４５０９を付加する。
【０１３４】
こうして、縮約部４０１は、同一データパケット４６０Ｂ及び同一データパケット４６０Ｃのそれぞれを縮約して縮約データパケット４６１Ｂ及び縮約データパケット４６１Ｃを生成する。そして、縮約部４０１は、生成した縮約データパケット４６１Ｂ及び縮約データパケット４６１Ｃのそれぞれを、ＴＣＰコネクション１０８２及びＴＣＰコネクション１０８３を用いて、通信経路１０８へ送信する。
【０１３５】
付加した送信元ＩＰアドレス４５０１、宛先ＩＰアドレス４５０２及びデータ部のデータのハッシュ値を合わせたサイズは、ライブストリーミングデータのサイズに比べて小さい。従って、通信経路１０８における通信トラフィックは、通信経路１０６における通信トラフィックに比べて小さいものとなる。
【０１３６】
再構築部４０２は、オリジナルデータパケット４５１Ａ、同一データパケット４６０Ｂ及び同一データパケット４６０Ｃを受信し、以下のように処理する。
【０１３７】
再構築部４０２は、オリジナルデータパケット４５１Ａをデータパケットバッファ６０７に記録する。そして、再構築部４０２は、オリジナルデータパケット４５１Ａに特に何も手は加えず、データパケット４５２Ａとして、ＴＣＰコネクション１０７１を用いて通信経路１０７へ送信する。
【０１３８】
再構築部４０２は、二つ目以降のパケットのそれぞれについて、送信元ＩＰアドレス４５０７、宛先ＩＰアドレス４５０８及びハッシュ値４５０９に基づいて、データパケットバッファ６０７からオリジナルデータパケット４５１Ａを読み出す。次に、再構築部４０２は、縮約データパケット４６１Ｂ及び縮約データパケット４６１Ｃのそれぞれについて、送信元ＩＰアドレス４５０７、宛先ＩＰアドレス４５０８及びデータ部のデータのハッシュ値４５０９を削除し、オリジナルデータパケット４５１Ａのデータ部４５０５の内容を付加する。こうして、再構築部４０２は、縮約データパケット４６１Ｂ及び縮約データパケット４６１Ｃのそれぞれを再構築して同一データパケット４６２Ｂ、同一データパケット４６２Ｃを生成する。そして、再構築部４０２は、ＴＣＰコネクション１０７２及びＴＣＰコネクション１０７３を用いて、通信経路１０７へ送信する。
【０１３９】
尚、縮約部４０１は、データパケット４５０Ａについても、対応する縮約データパケット４６１を生成し、再構築部４０２に送信するようにしてもよい。この場合、縮約部４０１は、オリジナルのデータ部を含む専用のデータパケットを、再構築部４０２に送信する。その際、縮約部４０１は、オリジナルのデータ部を含む専用のデータパケットに、そのデータ部が、データパケット４５０Ａ、同一データパケット４６０Ｂ及び同一データパケット４６０Ｃのそれぞれのデータ部であることを示す識別情報を含めるようにしてもよい。その識別情報は、例えば、データパケット４５０Ａ、同一データパケット４６０Ｂ及び同一データパケット４６０Ｃのそれぞれの宛先ＩＰアドレスである。また、縮約部４０１は、その識別情報を独自に生成し、オリジナルのデータ部を含む専用のデータパケットと、縮約データパケット４６１のそれぞれに含めるようにしてもよい。
【０１４０】
以上が、データ転送装置４００の機能単位の各構成要素についての説明である。
【０１４１】
次に、データ転送装置４００のハードウェア単位の構成要素について説明する。
【０１４２】
次に、データ転送装置４００のハードウェア単位の構成要素について説明する。まず、データ転送装置４００のハードウェア単位の構成要素について説明する
図８は、本実施形態におけるデータ転送装置４００を実現するコンピュータ７００のハードウェア構成を示す図である。
【０１４３】
図８に示すように、コンピュータ７００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７０１、記憶部７０２、記憶装置７０３、入力部７０４、出力部７０５及び通信部７０６を含む。更に、コンピュータ７００は、外部から供給される記録媒体（または記憶媒体）７０７を含む。記録媒体７０７は、情報を非一時的に記憶する不揮発性記録媒体であってもよい。
【０１４４】
ＣＰＵ７０１は、オペレーティングシステム（不図示）を動作させて、コンピュータ７００の、全体の動作を制御する。また、ＣＰＵ７０１は、例えば記憶装置７０３に装着された記録媒体７０７から、プログラムやデータを読み込み、読み込んだプログラムやデータを記憶部７０２に書き込む。ここで、そのプログラムは、例えば、後述の図１１及び図１２に示すシーケンス図の各部の動作をコンピュータ７００に実行させるプログラムである。また、そのプログラムは、図１３、図１４及び図１５に示すフローチャートの動作をコンピュータ７００に実行させるプログラムであってもよい。
【０１４５】
そして、ＣＰＵ７０１は、読み込んだプログラムに従って、また読み込んだデータに基づいて、図３に示すデータ縮約部５０１及び解析部５０３、図６に示すデータ再構築部６０１及び解析部６０３として各種の処理を実行する。
【０１４６】
尚、ＣＰＵ７０１は、通信網（不図示）に接続されている外部コンピュータ（不図示）から、記憶部７０２にプログラムやデータをダウンロードするようにしてもよい。
【０１４７】
記憶部７０２は、プログラムやデータを記憶する。記憶部７０２は、パケットヘッダＤＢ５０５及びデータパケットバッファ５０７を含んでよい。また、記憶部７０２は、パケットヘッダＤＢ６０５及びデータパケットバッファ６０７を含んでよい。
【０１４８】
記憶装置７０３は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク及び半導体メモリであって、記録媒体７０７を含む。記憶装置７０３は、プログラムをコンピュータ読み取り可能に記録する。また、記憶装置７０３は、データをコンピュータ読み取り可能に記録してもよい。記憶装置７０３は、パケットヘッダＤＢ５０５及びデータパケットバッファ５０７を含んでよい。また、記憶装置７０３は、パケットヘッダＤＢ６０５及びデータパケットバッファ６０７を含んでよい。
【０１４９】
入力部７０４は、例えばマウスやキーボード、内蔵のキーボタンなどで実現され、入力操作に用いられる。入力部７０４は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネル、加速度計、ジャイロセンサ、カメラなどでもよい。
【０１５０】
出力部７０５は、例えばディスプレイで実現され、出力を確認するために用いられる。
【０１５１】
通信部７０６は、配信サーバ１０１及び受信端末１０４とのインタフェースを実現する。また、通信部７０６は、縮約部４０１と再構築部４０２との間のインタフェースを実現する。通信部７０６は、送受信インタフェース５０４及び送受信インタフェース６０４の一部として含まれる。
【０１５２】
以上説明したように、図１に示すデータ転送装置４００の機能単位のブロックは、図８に示すハードウェア構成のコンピュータ７００によって実現される。但し、コンピュータ７００が備える各部の実現部は、上記に限定されない。すなわち、コンピュータ７００は、物理的に結合した１つの装置により実現されてもよいし、物理的に分離した２つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【０１５３】
尚、上述のプログラムのコードを記録した記録媒体７０７が、コンピュータ７００に供給され、ＣＰＵ７０１は、記録媒体７０７に格納されたプログラムのコードを読み出して実行するようにしてもよい。或いは、ＣＰＵ７０１は、記録媒体７０７に格納されたプログラムのコードを、記憶部７０２、記憶装置７０３またはその両方に格納するようにしてもよい。すなわち、本実施形態は、コンピュータ７００（ＣＰＵ７０１）が実行するプログラム（ソフトウェア）を、一時的にまたは非一時的に、記憶する記録媒体７０７の実施形態を含む。
【０１５４】
以上が、本実施形態におけるデータ転送装置４００を実現するコンピュータ７００の、ハードウェア単位の各構成要素についての説明である。
【０１５５】
次に本実施形態の動作について、図面を参照して詳細に説明する。
【０１５６】
まず、図９及び図５を参照して、データ転送装置４００を含むライブストリーミングシステムの全体の動作について説明する。
【０１５７】
図９は、本実施形態に係るデータ転送装置４００を含むライブストリーミングシステムの構成と動作との一例を示す模式図である。図９において、配信サーバ１０１内に括弧で囲んで示す値は、送信元である配信サーバ１０１のＩＰアドレスとＴＣＰポート番号である。図９に示すように、配信サーバ１０１のＩＰアドレスは、「１９２．１６８．０．８０」、ＴＣＰポート番号は、「８０」である。また、図９において、配信サーバ１０１内に括弧で囲んで示す値は、配信サーバ１０１のＩＰアドレス：ＴＣＰポート番号である。そのＩＰパドレスは、「１９２．１６８．１００．８」であり、ＴＣＰポート番号は「８０」である。また、図９において、受信端末１０４内に括弧で囲んで示す値は、受信端末１０４のそれぞれのＩＰアドレスである。そのＩＰアドレスは、左端の受信端末１０４から順に、「１９２．１６８．１．１１」、「１９２．１６８．１．１２」、「１９２．１６８．１．１３」、「１９２．１６８．１．１００」及び「１９２．１６８．１．２００」である。
【０１５８】
配信サーバ１０１は、第１のライブストリーミングデータと第２のライブストリーミングデータとのそれぞれを配信するために、データパケット４５０及び同一データパケット４６０を送信する。尚、第１のライブストリーミングデータと第２のライブストリーミングデータとのそれぞれは、２種類のコンテンツのそれぞれを配信するライブストリーミングのデータである。
【０１５９】
図９において、一点鎖線で示すデータパケット４５０、同一データパケット４６０、オリジナルデータパケット４５１、縮約データパケット４６１、データパケット４５２及び同一データパケット４６２のそれぞれは、第１のライブストリーミングデータを配信するデータパケットである。また、二点鎖線で示すデータパケット４５０、同一データパケット４６０、オリジナルデータパケット４５１、縮約データパケット４６１、データパケット４５２及び同一データパケット４６２のそれぞれは、第２のライブストリーミングデータを配信するデータパケットである。
【０１６０】
第１のライブストリーミングデータは、通信経路１０８を経由して、３台の受信端末１０４に配信される。この３台の受信端末１０４は、ＩＰアドレスが「１９２．１６８．１．１１」、「１９２．１６８．１．１２」及び「１９２．１６８．１．１３」の受信端末１０４である。また第２のライブストリーミングデータは、通信経路１０８及び通信経路１０９を経由して２台の受信端末１０４に配信される。この２台の受信端末１０４は、ＩＰアドレスが「１９２．１６８．１．１００」及び「１９２．１６８．１．２００」の受信端末１０４である。
【０１６１】
通信経路１０８には、５台の受信端末１０４に配信される、２種類のコンテンツのライブストリーミングデータが、計５本のＴＣＰコネクションを用いて配信されている。そのうち、第１のライブストリーミングデータの同一データパケット４６０のそれぞれは、縮約部４０１によって縮約され、再構築部４０２によって再構築される。尚、ここの縮約部４０１及び再構築部４０２は、第１のデータ転送装置４００Ａ（図９に不図示）の縮約部４０１及び再構築部４０２である。同様に、第２のライブストリーミングデータ（二点鎖線）の同一データパケット４６０も、縮約部４０１によって縮約され、再構築部４０２によって再構築される。ここの縮約部４０１及び再構築部４０２も、同様に、第１のデータ転送装置４００Ａの縮約部４０１及び再構築部４０２である。
【０１６２】
また、通信経路１０９には、２台の受信端末１０４に配信されるコンテンツの第２のライブストリーミングデータ（二点鎖線）が、２本のＴＣＰコネクションを用いて配信されている。ここでも同様に、データパケット４５０とデータ部が重複している同一データパケット４６０は、縮約部４０１によって縮約され、再構築部４０２によって再構築される。尚、ここの縮約部４０１及び再構築部４０２は、第２のデータ転送装置４００Ｂ（図９に不図示）の縮約部４０１及び再構築部４０２である。
【０１６３】
例えば、再構築情報レコード９０１（Ａ）は、第１のデータ転送装置４００Ａが図９に示すように動作した場合の、第１のライブストリーミングデータの配信に関連する、データパケット４５０のヘッダ部に関する情報を示す。また、再構築情報レコード９０１（Ｂ）は、第１のデータ転送装置４００Ａが図９に示すように動作した場合の、第２のライブストリーミングデータの配信に関連する、データパケット４５０のヘッダ部に関する情報を示す。
【０１６４】
図５に示す再構築情報レコード９０１は、縮約部４０１を通過するときに元のデータがそのまま送られるオリジナルデータパケット４５１に関する情報のみを、データ転送装置４００が保持し、利用する場合の例を示している。ここで、「オリジナルデータパケット４５１に関する情報」は、「先行するデータパケット４５０に対してデータ部が重複しない、一つ目のデータパケット４５０に関する情報」である。この場合、データ転送装置４００は、「先行するデータパケット４５０に対してデータ部が重複しない、一つ目のトラフィック（ＴＣＰコネクション）」についての再構築情報リスト９００を保持し、利用する。
【０１６５】
尚、データ転送装置４００は、同一データパケット４６０に関する情報（先行するデータパケット４５０に対してデータ部が重複する、二つ目以降のトラフィック）に関する情報を更に保持し、利用するようにしてもよい。
【０１６６】
例えば、図９の第１のライブストリーミングデータを含むデータパケット４５０及び同一データパケット４６０は、３つの受信端末１０４に配信されている。そして、第１のライブストリーミングデータのデータパケット４５０は、縮約部４０１を経由して、オリジナルデータパケット４５１として再構築部４０２に送信される。そのオリジナルデータパケット４５１は、再構築部４０２からデータパケット４５２として宛先ＩＰアドレスが「１９２．１６８．１．１２」の受信端末１０４に送信される。その結果、再構築情報レコード９０１（Ａ）の宛先ＩＰアドレスは、「１９２．１６８．１．１２」を記憶している。
【０１６７】
また、第１のライブストリーミングデータの同一データパケット４６０は、縮約部４０１により縮約され、縮約データパケット４６１として再構築部４０２に送信される。その縮約データパケット４６１は、再構築部４０２により再構築され、同一データパケット４６２として宛先ＩＰアドレスが「１９２．１６８．１．１１」及び「１９２．１６８．１．１１」である受信端末１０４のそれぞれに送信される。
【０１６８】
上述の通り、第１のライブストリーミングデータとして、同一のデータ部を含む１つのデータパケット４５０及び２つの同一データパケット４６０が転送されているため、再構築情報レコード９０１（Ａ）の同一パケット数は「３」を記憶している。
【０１６９】
尚、上述のパケットヘッダＤＢ５０５及びパケットヘッダＤＢ６０５に記憶するデータパケットに関する情報は、一例であり、必ずしもこの通りでなくてもよい。例えば、縮約部４０１及び再構築部４０２は、同一データパケット４６０（或いは、縮約データパケット４６１）に関する情報（例えば、宛先ＩＰアドレス）を更に記憶し、利用するようにしてもよい。
【０１７０】
また、データ転送装置４００は、データパケットバッファ５０７及びデータパケットバッファ６０７に記憶されている各データパケットを、一定期間（例えば、1分間）保持しておくようにしてもよい。そして、データ転送装置４００は、受信端末１０４からの再送要求を検出した場合、配信サーバ１０１に知らせることなく、再送処理を実行するようにしてもよい。
【０１７１】
以上が、データ転送装置４００を含むライブストリーミングシステムの全体の動作についての説明である。
【０１７２】
次に、縮約部４０１が再構築情報リスト９００を再構築部４０２に通知する動作について説明する。
【０１７３】
図１０は、データ転送装置４００が再構築情報リスト９００を通知する動作を示すシーケンス図である。
【０１７４】
図１０に示す動作の開始時の状態は、ライブストリーミングによるコンテンツの配信が既に開始されており、受信端末１０４がライブストリーミングデータの少なくとも１つのデータパケットを受信済みの状態である。
【０１７５】
縮約部４０１は、パケットヘッダＤＢ５０５が記憶している再構築情報リスト９００を、再構築部４０２に送信する（ステップＳ１００１）。縮約部４０１は、例えば、縮約の処理を実行している時間の、任意のタイミングでステップＳ１００１の処理を実行する。
【０１７６】
次に、再構築情報リスト９００を受信した再構築部４０２は、Ａｃｋ応答を縮約部４０１に送信する（ステップＳ１００２）。
【０１７７】
尚、縮約部４０１から再構築部４０２への再構築情報リスト９００の通知は、必須ではない。縮約部４０１から再構築部４０２へ再構築情報リスト９００を通知しない場合、再構築部４０２は、受信した配信要求パケット４４０及びオリジナルデータパケット４５１配信要求を受けその情報を基に再構築情報リスト９００を生成してもよい。但し、この場合、パケットヘッダＤＢ６０５における送信時刻は、再構築部４０２が、データパケット４５２を送信した時刻である。
【０１７８】
また、図１０に示す動作は、既に通信しているライブストリーミングとは別の、アウトバンドで再構築情報リスト９００を通知するようにした。しかし、インバンドでライブストリーミングデータに再構築情報リスト９００を付加して送信（ピギーバック）するようにしてもよい。
【０１７９】
以上が、縮約部４０１が再構築情報リスト９００を再構築部４０２に通知する動作についての説明である。
【０１８０】
次に、ライブストリーミングのコンテンツの受信を、受信端末１０４（Ａ）が開始する場合の、データ転送装置４００の動作について説明する。受信端末１０４（Ａ）は、そのライブストリーミングのコンテンツの受信を最初に開始する、１台目の受信端末１０４である。
【０１８１】
図１１は、受信端末１０４（Ａ）がライブストリーミングのコンテンツの受信を開始する場合の、データ転送装置４００の動作を示すシーケンス図である。尚、このシーケンス図における縮約部４０１及び再構築部４０２の処理は、前述したＣＰＵによるプログラム制御に基づいて、実行されても良い。また、処理のステップ名については、ステップＳ６０１のように、記号で記載する。
【０１８２】
ステップＳ１１０１において、受信端末１０４（Ａ）は、配信サーバ１０１のＩＰアドレスを宛先ＩＰアドレスとした配信要求パケット４４０を、データ転送装置４００に送信する。同時に、再構築部４０２の解析部６０３は、送受信インタフェース６０４を介して、その配信要求パケット４４０を受信する。以後、解析部６０３が送受信インタフェース６０４を介して送信する場合及び受信する場合のそれぞれは、「送受信インタフェース６０４を介して」を省略し、解析部６０３が送信する及び受信すると記載する。また、データ再構築部６０１が送受信インタフェース６０４を介して送信する場合も同様に、「送受信インタフェース６０４を介して」を省略し、データ再構築部６０１が送信すると記載する。
【０１８３】
次に、解析部６０３は、受信したパケットを解析し、そのパケットが配信要求パケット４４０か否かを確認する（ステップＳ１１０２）。例えば、解析部６０３は、ネットワークを流れるパケットの検査技術の１つである、ＤＰＩ（Ｄｅｅｐ  Ｐａｃｋｅｔ  Ｉｎｓｐｅｃｔｉｏｎ）技術を利用して、受信したパケットを解析する。
【０１８４】
配信要求パケット４４０でない場合（ステップＳ１１０２でＮＯ）、処理は、受信したパケットに対応する他のステップ（不図示）へ進む。
【０１８５】
配信要求パケット４４０である場合（ステップＳ１１０２でＹＥＳ）、解析部６０３は、その配信要求パケット４４０に基づいて、パケットヘッダＤＢ６０５の配信要求リスト１４００を更新する（ステップＳ１１０４）。例えば、受信端末１０４（Ａ）から受信した配信要求パケット４４０の場合、解析部６０３は、その配信要求パケット４４０に含まれるライブストリーミングデータの配信要求に関する情報を、新たな配信要求レコード１４０１として、パケットヘッダＤＢ６０５の配信要求リスト１４００に追加する。
【０１８６】
次に、ステップＳ１１０５において、解析部６０３は、受信した配信要求パケット４４０を縮約部４０１に送信する。同時に、縮約部４０１の解析部５０３は、送受信インタフェース５０４を介してその配信要求パケット４４０を受信する。以後、解析部５０３が送受信インタフェース５０４を介して送信する場合及び受信する場合のそれぞれは、「送受信インタフェース５０４を介して」を省略して、解析部５０３が送信する及び受信すると記載する。また、データ縮約部５０１が送受信インタフェース５０４を介して送信する場合も同様に、「送受信インタフェース５０４を介して」を省略して、データ縮約部５０１が送信すると記載する。
【０１８７】
次に、解析部５０３は、受信したパケットを解析し、そのパケットが配信要求パケット４４０か否かを確認する（ステップＳ１１０６）。例えば、解析部５０３は、ネットワーク上のパケット検査技術の１つである、ＤＰＩ技術を利用して、受信したパケットを解析する。
【０１８８】
配信要求パケット４４０でない場合（ステップＳ１１０６でＮＯ）、処理は、受信したパケットに対応する他のステップ（不図示）へ進む。
【０１８９】
配信要求パケット４４０である場合（ステップＳ１１０６でＹＥＳ）、その配信要求パケット４４０に基づいて、パケットヘッダＤＢ５０５の配信要求リスト１４００を更新する（ステップＳ１１０８）。例えば、受信端末１０４（Ａ）から受信した配信要求パケット４４０の場合、解析部５０３は、その配信要求パケット４４０に含まれるライブストリーミングデータの配信要求に関する情報を、新たな配信要求レコード１４０１として、パケットヘッダＤＢ５０５の配信要求リスト１４００に追加する。
【０１９０】
次に、ステップＳ１１０９において、解析部５０３は、配信要求パケット４４０を、配信サーバ１０１に送信する。同時に、配信サーバ１０１は、その配信要求パケット４４０を受信する。
【０１９１】
次に、ステップＳ１１１０において、配信サーバ１０１は、受信した配信要求パケット４４０に応答してデータパケット４５０を送信する。同時に縮約部４０１は、そのデータパケット４５０を受信する。即ち、配信サーバ１０１は、ストリーミング要求に対して、ライブストリーミングデータの配信を開始する。
【０１９２】
次に、ステップＳ１１１１において、縮約部４０１は、受信したデータパケット４５０に基づいて、オリジナルデータパケット４５１を送信する。同時に、再構築部４０２は、そのオリジナルデータパケット４５１を受信する。
【０１９３】
次に、Ｓ１１１２において、再構築部４０２は、受信したオリジナルデータパケット４５１に基づいてデータパケット４５２を送信する。同時に、受信端末１０４（Ａ）は、データパケット４５２を受信する。
【０１９４】
尚、ステップＳ１１１０からステップＳ１１１２の動作は、ライブストリーミングの停止（例えば、ライブストリーミングデータの転送終了、受信端末１０４（Ａ）側での受信停止）まで、繰り返される。
【０１９５】
以上が、ライブストリーミングのコンテンツの受信を、受信端末１０４（Ａ）が開始する場合の、データ転送装置４００の動作についての説明である。
【０１９６】
次に、受信端末１０４（Ｂ）がライブストリーミングのコンテンツの受信を開始する場合の、データ転送装置４００の動作について説明する。
【０１９７】
受信端末１０４（Ｂ）は、受信端末１０４（Ａ）が既に受信を開始しているライブストリーミングのコンテンツと同一のコンテンツを、同一のデータ転送装置４００を経由して受信する、二台目以降の受信端末１０４である。これは、配信サーバ１０１が、図１１に示す受信端末１０４（Ａ）からの配信要求パケット４４０を先に受け取り、次に受信端末１０４（Ｂ）からの配信要求パケット４４０を受け取ることを示している。この場合、配信サーバ１０１は、例えば、受信端末１０４（Ａ）にデータパケット４５０を送信し、連続して受信端末１０４（Ｂ）に同一データパケット４６０を送信する。尚、配信サーバ１０１が、受信端末１０４（Ｂ）にデータパケット４５０を送信し、連続して受信端末１０４（Ａ）に同一データパケット４６０を送信するようにしても、実質的な差はない。
【０１９８】
図１２は、受信端末１０４（Ｂ）がライブストリーミングのコンテンツの受信を開始する場合の、データ転送装置４００の動作を示すシーケンス図である。尚、このシーケンス図における縮約部４０１及び再構築部４０２の処理は、前述したＣＰＵによるプログラム制御に基づいて、実行されても良い。
【０１９９】
ステップＳ１２０１において、受信端末１０４（Ｂ）は、配信サーバ１０１のＩＰアドレスを宛先ＩＰアドレスとした配信要求パケット４４０を、データ転送装置４００に送信する。同時に、再構築部４０２の解析部６０３は、その配信要求パケット４４０を受信する。
【０２００】
次に、解析部６０３は、受信したパケットを解析し、そのパケットが配信要求パケット４４０か否かを確認する（ステップＳ１２０２）。
【０２０１】
配信要求パケット４４０でない場合（ステップＳ１２０２でＮＯ）、処理は、受信したパケットに対応する他のステップ（不図示）へ進む。
【０２０２】
配信要求パケット４４０である場合（Ｓ１２０２でＹＥＳ）、解析部６０３は、その配信要求パケット４４０に基づいて、パケットヘッダＤＢ６０５の配信要求リスト１４００を更新する（ステップＳ１２０４）。例えば、受信端末１０４（Ｂ）から受信した配信要求パケット４４０の場合、解析部６０３は、その配信要求パケット４４０に含まれるライブストリーミングデータの配信要求に対応する、配信要求レコード１４０１のコネクション数を１増加する。その配信要求パケット４４０に含まれるライブストリーミングデータの配信要求に対応する、配信要求レコード１４０１は、受信端末１０４（Ａ）が送信した配信要求パケット４４０に基づいて追加された配信要求レコード１４０１である。
【０２０３】
次に、ステップＳ１１０５において、解析部６０３は、受信した配信要求パケット４４０を縮約部４０１に送信する。同時に、縮約部４０１の解析部５０３は、その配信要求パケット４４０を受信する。
【０２０４】
次に、解析部５０３は、受信したパケットを解析し、そのパケットが配信要求パケット４４０か否かを確認する（ステップＳ１２０７）。
【０２０５】
配信要求パケット４４０でない場合（ステップＳ１１０６でＮＯ）、処理は、受信したパケットに対応する他のステップ（不図示）へ進む。
【０２０６】
配信要求パケット４４０である場合（ステップＳ１２０６でＹＥＳ）、その配信要求パケット４４０に基づいて、パケットヘッダＤＢ５０５の配信要求リスト１４００を更新する（ステップＳ１２０８）。例えば、受信端末１０４（Ｂ）から受信した配信要求パケット４４０の場合、解析部６０３は、その配信要求パケット４４０に含まれるライブストリーミングデータの配信要求に対応する、配信要求レコード１４０１のコネクション数を１増加する。
【０２０７】
次に、ステップＳ１２０９において、解析部５０３は、配信要求パケット４４０を、配信サーバ１０１に送信する。同時に、配信サーバ１０１は、その配信要求パケット４４０を受信する。
【０２０８】
次に、ステップＳ１２１０において、配信サーバ１０１は、受信した配信要求パケット４４０に応答してデータパケット４５０を送信する。同時に縮約部４０１は、そのデータパケット４５０を受信する。
【０２０９】
次に、縮約部４０１は、図１１のステップＳ１１１１において送信したオリジナルデータパケット４５１に対応する、再構築情報レコード９０１を利用して、ストリーミングデータ（データパケット４５０）を縮約する（ステップＳ１２２１）。
【０２１０】
次に、ステップＳ１２１１において、縮約部４０１は、縮約したストリーミングデータ（縮約データパケット４６１）を、再構築部４０２に送信する。同時に、再構築部４０２は、その縮約パケットを受信する（ステップＳ１２１１）。
【０２１１】
次に、再構築部４０２は、図１１のＳ１１１１において受信したオリジナルデータパケット４５１に対応する、再構築情報レコード９０１を利用して、縮約データパケット４６１からストリーミングデータ（同一データパケット４６２）を再構築する（ステップＳ１２２２）。
【０２１２】
次に、Ｓ１２１２において、再構築したストリーミングデータ（同一データパケット４６２）を送信する。同時に、受信端末１０４（Ｂ）は、同一データパケット４６２を受信する。
【０２１３】
以上が、ライブストリーミングのコンテンツの受信を、受信端末１０４（Ｂ）が開始する場合の、データ転送装置４００の動作についての説明である。
【０２１４】
次に、図１１のステップＳ１１０４、ステップＳ１１０８、図１２のステップＳ１２０４及びステップＳ１２０８について、詳細に説明する。
【０２１５】
図１３は、図１１のステップＳ１１０４において、再構築部４０２が配信要求リスト１４００を更新する動作を示すフローチャートである。
【０２１６】
解析部６０３は、受信した配信要求パケット４４０に対応する配信要求レコード１４０１を検出するために、配信要求リスト１４００を探索する（ステップＳ１３０２）。ここで、その受信した配信要求パケット４４０に対応する配信要求レコード１４０１は、その配信要求パケット４４０の宛先ＩＰアドレスに一致する送信元ＩＰアドレスを含む。加えて、その配信要求レコード１４０１は、その配信要求パケット４４０に含まれる、ライブストリーミングデータの配信の要求の情報に含まれる送信元ＴＣＰポート番号に一致する、送信元ＴＣＰポート番号を含む。更に、その配信要求レコード１４０１は、その配信要求パケット４４０に含まれる、ライブストリーミングデータの配信の要求の情報に含まれる要求ＵＲＬに一致する要求ＵＲＬを含む。
【０２１７】
その配信要求レコード１４０１を検出した場合は（ステップＳ１３０３でＹＥＳ）、解析部６０３は、その配信要求レコード１４０１のコネクション数を「１」増加する。（ステップＳ１３０４）。
【０２１８】
その配信要求レコード１４０１を検出しなかった場合（ステップＳ１３０３でＮＯ）、解析部６０３は、その配信要求パケット４４０に基づいて、新たな配信要求レコード１４０１をパケットヘッダＤＢ６０５に記録する。
【０２１９】
次に、図面を参照して、縮約部４０１がデータパケット４５０を処理する動作について説明する。
【０２２０】
図１４は、縮約部４０１がデータパケット４５０を処理する動作を示すフローチャートである。
【０２２１】
縮約部４０１は、配信サーバ１０１から、データパケット４５０を受信したことを契機に、図１４に示す動作を開始する。
【０２２２】
解析部５０３は、時計部５０６から現在時刻を取得し、受信したデータパケット４５０の受信時刻とする（ステップＳ１５０１）。
【０２２３】
次に、解析部５０３は、データパケットバッファ５０７に記憶されている先行するデータパケット４５０の受信時刻から受信したデータパケット４５０の受信時刻までの時間と、範囲時間Ｔ１とを比較する（ステップＳ１５０２）。
【０２２４】
範囲時間Ｔ１のほうが大きい場合（ステップＳ１５０２、ＹＥＳ）、解析部５０３は、そのデータパケットバッファ５０７に記憶されている先行するデータパケット４５０と受信したデータパケット４５０とのそれぞれの送信元ＩＰアドレス及び送信元ＴＣＰポート番号を比較する（ステップＳ１５０３）。
【０２２５】
送信元ＩＰアドレス及び送信元ＴＣＰポート番号の両方が一致した場合（ステップＳ１５０３、ＹＥＳ）、解析部５０３は、データパケットバッファ５０７に記憶されている先行するデータパケット４５０と受信したデータパケット４５０とのデータ部を比較する（ステップＳ１５０４）。
【０２２６】
データ部が一致した場合（ステップＳ１５０４、ＹＥＳ）、データ縮約部５０１は、その受信したデータパケット４５０について縮約処理を行い、縮約データパケット４６１を生成する（ステップＳ１５０６）。
【０２２７】
次に、データ縮約部５０１は、その受信したデータパケット４５０に対応する再構築情報レコード９０１の参照回数を「１」増加する（ステップＳ１５０７）。
【０２２８】
次に、データ縮約部５０１は、生成した縮約データパケット４６１を再構築部４０２に送信する（ステップＳ１５０８）。
【０２２９】
データパケットバッファ５０７に記憶されているいずれの先行するデータパケット４５０についても、ステップＳ１５０２、ステップＳ１５０３及びステップＳ１５０４のいずれかでＮＯになった場合、解析部５０３は、その受信したデータパケット４５０に対応する再構築情報レコード９０１を再構築情報リスト９００に新規に追加する（ステップＳ１５１０）。
【０２３０】
尚、ステップＳ１５０２、ステップＳ１５０３及びステップＳ１５０４は、受信したデータパケット４５０が同一データパケット４６０か否かを、チェックするステップである。即ち、これらのステップは、受信したデータパケット４５０に対応する、先行するデータパケット４５０がデータパケットバッファ５０７に記憶されているか否かをチェックするステップである。解析部５０３は、その受信したデータパケット４５０に対するステップＳ１５０２、ステップＳ１５０３及びステップＳ１５０４の処理を、データパケットバッファ５０７に記憶されている全ての先行するデータパケット４５０について実行する。
【０２３１】
次に、解析部５０３は、その受信したデータパケット４５０をオリジナルデータパケット４５１として、データパケットバッファ５０７に記録する（ステップＳ１５１１）。
【０２３２】
次に、解析部５０３は、その受信したデータパケット４５０をオリジナルデータパケット４５１として、再構築部４０２に送信する（ステップＳ１５１２）。
【０２３３】
尚、解析部５０３は、コネクション数が「１」以下である配信要求レコード１４０１に対応するデータパケット４５０を受信した場合、図１４に示すステップＳ１５１１の動作のみを実行するようにしてよい。この場合、データパケット４５０のデータ部は、例えば要求ＵＲＬを含むようにしてよい。
【０２３４】
即ち、縮約部４０１は、同一のデータ部を有するパケットを送受信するコネクション数を監視し、そのコネクション数が２以上の場合に縮約データパケット４６１を生成し、そのコネクション数が１以下の場合に縮約データパケット４６１を生成しないようにしてよい。
【０２３５】
また、解析部５０３は、受信端末１０４からの配信終了の要求を検出した場合、その受信端末１０４へのオリジナルデータパケット４５１或いは縮約データパケット４６１の送信を停止するようにしてよい。
【０２３６】
即ち、縮約部４０１は、同一のデータ部を有するパケットを送受信するコネクションを監視し、そのコネクションの終了要求を受信した場合、その終了要求に対応するコネクションに係る縮約データパケット４６１の生成を中止するようにしてよい。
【０２３７】
以上が、縮約部４０１がデータパケット４５０を処理する動作についての説明である。
【０２３８】
次に、図面を参照して、再構築部４０２が縮約データパケット４６１を処理する動作について説明する。
【０２３９】
図１５及び図１６は、再構築部４０２が縮約データパケット４６１を処理する動作を示すフローチャートである。
【０２４０】
再構築部４０２は、縮約部４０１からオリジナルデータパケット４５１、縮約データパケット４６１または再構築情報パケットを受信したことを契機に、図１５及び図１６に示す動作を開始する。
【０２４１】
解析部６０３は、オリジナルデータパケット４５１を受信したか否かを判定する（ステップＳ１６０２）。
【０２４２】
オリジナルデータパケット４５１を受信した場合（ステップＳ１６０２、ＹＥＳ）、解析部６０３は、そのオリジナルデータパケット４５１及びそのオリジナルデータパケット４５１のデータ部のデータのハッシュ値との組を、データパケットバッファ６０７に記録する（ステップＳ１６０３）。
【０２４３】
次に、解析部６０３は、そのオリジナルデータパケット４５１を、受信端末１０４に送信する（ステップＳ１６０４）。そして、処理はステップＳ１６３０へ進む。
【０２４４】
オリジナルデータパケット４５１の受信ではない場合（ステップＳ１６０２、ＮＯ）、解析部６０３は、縮約データパケット４６１を受信したか否かを判定する（ステップＳ１６１０）。
【０２４５】
縮約データパケット４６１を受信した場合（ステップＳ１６１０、ＹＥＳ）、解析部６０３は、その縮約データパケット４６１を、データパケットバッファ６０７に記録する（ステップＳ１６１３）。
【０２４６】
縮約データパケット４６１の受信ではない場合（ステップＳ１６１０、ＮＯ）、解析部６０３は、再構築情報パケットを受信したか否かを判定する（ステップＳ１６２０）。
【０２４７】
再構築情報パケットの受信ではない場合（ステップＳ１６２０、ＮＯ）、処理は終了する。
【０２４８】
再構築情報パケットを受信した場合（ステップＳ１６２０、ＹＥＳ）、解析部６０３は、その再構築情報パケットに含まれる再構築情報レコード９０１に含まれる同一パケット数の値が「１」か否かを判定する（ステップＳ１６２１）。
【０２４９】
同一パケット数の値が「１」の場合（ステップＳ１６２１、ＹＥＳ）、解析部６０３は、その再構築情報パケットを廃棄する（ステップＳ１６２２）。次に、処理はステップＳ１６３０へ進む。
【０２５０】
同一パケット数の値が「１」でない（２以上）の場合（ステップＳ１６２１、ＮＯ）、解析部６０３は、その再構築情報レコード９０１をパケットヘッダＤＢ６０５の再構築情報リスト９００に追加する（ステップＳ１６２３）。次に、処理はステップＳ１６３０へ進む。
【０２５１】
ステップＳ１６３０において、データ再構築部６０１は、データパケットバッファ６０７に保持している縮約データパケット４６１のそれぞれについて、順次、その縮約データパケット４６１に含まれるハッシュ値と同じハッシュ値を含む再構築情報レコード９０１を探索する（ステップＳ１６３０）。
【０２５２】
同じハッシュ値を含む再構築情報レコード９０１を検出した場合（ステップＳ１６３１、ＹＥＳ）、データ再構築部６０１は、その縮約データパケット４６１のデータ部に含まれるヘッダ情報とハッシュ値とに基づいて、データパケットバッファ６０７からオリジナルデータパケット４５１を読み出す（ステップＳ１６３２）。
【０２５３】
次に、データ再構築部６０１は、縮約データパケット４６１のデータ部のヘッダ情報とハッシュ値とを削除し、読み出したオリジナルデータパケット４５１のデータ部を付加して、同一データパケット４６２を生成する（ステップＳ１６３３）。
【０２５４】
次に、データ再構築部６０１は、生成した同一データパケット４６２を、受信端末１０４に送信する（ステップＳ１６３４）。
【０２５５】
次に、データ再構築部６０１は、その再構築情報レコード９０１の同一パケット数を「１」減算する（ステップＳ１６３５）。
【０２５６】
次に、データ再構築部６０１は、減算した同一パケット数が「１」になった場合、その再構築情報レコード９０１を削除する（ステップＳ１６３６）。
【０２５７】
同じハッシュ値を含む再構築情報レコード９０１を検出しなかった場合（ステップＳ１６３１、ＮＯ）、その縮約データパケット４６１については、何も処理をしない。
【０２５８】
尚、再構築部４０２は、図１５及び図１６に示す動作に係わらず、一定時間毎にデータパケットを再構築する処理（ステップＳ１６３０からステップＳ１６３６）を実行するようにしてもよい。
【０２５９】
尚、データ転送装置４００は、１つの再構築部４０２に対して、複数の縮約部４０１が接続されるような構成であってもよい。その理由は、上述した再構築部４０２の動作において、再構築部４０２は、複数の縮約部４０１のうちいずれの縮約部４０１を通信相手にしているかを判断する必要がないからである。また、縮約部４０１は、１つの再構築部４０２を通信相手にするだけだからである。
【０２６０】
上述した本実施形態における第１の効果は、ストリーミングデータの転送においてＴＣＰコネクションをエンドツーエンドで維持しつつ、通信トラフィックを削減することが可能になる点である。
【０２６１】
その理由は、以下のような構成を含むからである。即ち、第一に、縮約部４０１が同一データパケット４６０のデータ部を縮減した縮約データパケット４６１を生成して送信する。第２に、再構築部４０２がオリジナルデータパケット４５１と縮約データパケット４６１とから同一データパケット４６２を再構築する。
【０２６２】
上述の第１の効果は、配信サーバ１０１側で個別の受信端末１０４に課金可能で、且つライブストリーミングデータの配信経路上のトラフィックを削減可能な、ライブストリーミングシステムを提供することを可能にする。
【０２６３】
また、上述の第１の効果は、認証配信サーバ１０１と個別の受信端末１０４との間で認証が可能なライブストリーミングシステムを提供することを可能にする。
【０２６４】
これらは、複数の受信端末１０４へのライブストリーミングデータの配信を行う場合でも、マルチキャストプロトコルに変換することなく、ＴＣＰコネクションを維持したまま配信を行うようにしたからである。
【０２６５】
上述した本実施形態における第２の効果は、縮約部４０１と再構築部４０２が管理する情報を単純化することが可能になる点である。
【０２６６】
その理由は、データ転送装置４００をカスケード接続するように、即ちホップバイホップでデータパケットの縮約と再構築とを行うように、したからである。
【０２６７】
上述した本実施形態における第３の効果は、データ転送装置４００の処理を簡略化することが可能になる点である。
【０２６８】
その理由は、解析部５０３が所定の範囲時間内に受信したデータパケット４５０を縮約の対象とするようにしたからである。
【０２６９】
上述した本実施形態における第４の効果は、各データパケットの再送処理に係る負荷を軽減することが可能になる点である。
【０２７０】
その理由は、以下のような構成を含むからである。即ち、第１に、データ転送装置４００がデータパケットバッファ５０７及びデータパケットバッファ６０７に記憶されている各データパケットを、一定期間保持する。第２に、データ転送装置４００が受信端末１０４からの再送要求を検出した場合、配信サーバ１０１に知らせることなく、再送処理を実行する。
【０２７１】
［第２の実施形態］
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０２７２】
図１７は、本発明の第２の実施形態に係るデータ転送装置４２０を含むライブストリーミングシステムの構成を示すブロック図である。
【０２７３】
図１７に示すように、本実施形態におけるライブストリーミングシステムは、配信サーバ１０１、データ転送装置４２０及び受信端末１０４を含む。また、配信サーバ１０１及び受信端末１０４は、図９に示す配信サーバ１０１及び受信端末１０４と同じである  図１７を参照すると、本実施形態に係るデータ転送装置４２０は、縮約部４２１と２つの再構築部４２２とを含む。縮約部４２１の構成は、図３に示す縮約部４０１の構成と同じである。また、再構築部４２２の構成は、図６に示す再構築部４０２の構成と同じである。尚、再構築部４２２の数は、本実施形態の例に係わらず、３以上であってよい。
【０２７４】
図１８及び図１９は、縮約部４２１のパケットヘッダＤＢ５０５に記憶される配信要求リスト１４２０の一例を示す図である。図１８及び図１９に示すように、配信要求リスト１４２０は、１以上の配信要求レコード１４２１からなる。
【０２７５】
配信要求レコード１４２１は、配信要求レコード１４０１に比べて、受信端末ＩＰアドレスを更に含む点が異なる。受信端末ＩＰアドレスは、その配信要求パケット４４０を送信した受信端末１０４のＩＰアドレスである。つまり、この受信端末ＩＰアドレスは、ライブストリーミングデータのコンテンツの宛先を示している。
【０２７６】
図２０及び図２１は、縮約部４２１のパケットヘッダＤＢ５０５に記憶される再構築情報リスト９２０の一例を示す図である。図２０及び図２１に示すように、再構築情報リスト９２０は、１以上の配信要求レコード９２１からなる。
【０２７７】
次に、データ転送装置４２０の動作について説明する。データ転送装置４２０は、以下の点が、データ転送装置４００の動作と異なる。
＝＝＝縮約部４２１の動作＝＝＝
縮約部４２１のパケットヘッダＤＢ５０５は、複数の再構築部４２２のそれぞれに対応する配信要求リスト１４２０を記憶する。図１８は、再構築部４２２（Ａ）に対応する配信要求リスト１４２０である。図１９は、再構築部４２２（Ｂ）に対応する配信要求リスト１４２０である。
【０２７８】
配信要求リスト１４２０は、１以上の配信要求レコード１４２１を含む。配信要求レコード１４２１は、図４に示す配信要求レコード１４０１に比べて、受信端末ＩＰアドレスを更に含む。
【０２７９】
また、縮約部４２１のパケットヘッダＤＢ５０５は、複数の再構築部４２２のそれぞれに対応する再構築情報リスト９２０を記憶する。図２０は、再構築部４２２（Ａ）に対応する再構築情報リスト９２０である。図２１は、再構築部４２２（Ｂ）に対応する再構築情報リスト９２０である。
【０２８０】
再構築情報リスト９２０は、１以上の再構築情報レコード９２１を含む。再構築情報レコード９２１は、図５に示す再構築情報レコード９０１と同等である。
【０２８１】
また、縮約部４２１のデータパケットバッファ５０７は、先行するデータパケット４５０とその先行するデータパケット４５０の受信時刻とその先行するデータパケット４５０の送信先の再構築部４２２を識別する情報との組を記憶する。
【０２８２】
縮約部４２１の解析部５０３は、配信要求パケット４４０を受信した場合、例えば、その配信要求パケット４４０のパケットヘッダに含まれる送信元ＩＰアドレス（受信端末１０４のＩＰアドレス）に基づいて選択した配信要求リスト１４２０を更新する。この場合、縮約部４２１の解析部５０３は、受信端末１０４のＩＰアドレスと再構築部４２２との対応を示す情報を、図示しない記憶手段に予め保持していてよい。或いは、縮約部４２１の解析部５０３は、配信要求パケット４４０を送信した再構築部４２２の識別情報を、縮約部４２１の送受信インタフェース５０４から取得するようにしてもよい。また、縮約部４２１の解析部５０３は、配信要求リスト１４２０のそれぞれと再構築部４２２のそれぞれとの対応を示す情報を、図示しない記憶手段に予め保持していてよい。
【０２８３】
縮約部４２１の解析部５０３は、配信要求リスト１４２０を更新する際に、配信要求パケット４４０のパケットヘッダに含まれる送信元ＩＰアドレスを、配信要求レコード１４２１の受信端末ＩＰアドレスに記憶させる。
【０２８４】
また、縮約部４２１の解析部５０３は、データパケット４５０を受信した場合、例えば、そのデータパケット４５０のパケットヘッダに含まれる宛先ＩＰアドレス（受信端末１０４のＩＰアドレス）に基づいて、その宛先ＩＰアドレスを含む配信要求リスト１４２０を選択する。次に、縮約部４２１の解析部５０３は、選択した配信要求リスト１４２０に対応する再構築情報リスト９２０を選択する。
【０２８５】
次に、縮約部４２１の解析部５０３は、選択した配信要求リスト１４２０及び再構築情報リスト９２０に基づいて、そのデータパケット４５０に対して、図１４に示す処理を実行する。具体的には、その解析部５０３は、先行するデータパケット４５０をデータパケットバッファ５０７に記憶させる際に、その先行するデータパケット４５０の送信先の再構築部４２２を識別する情報を付加して、記憶させる。また、その解析部５０３は、受信したデータパケット４５０に対する図１４のステップＳ１５０２からステップＳ１５０４までの処理を実行する。その解析部５０３は、その処理を、データパケットバッファ５０７に記憶されているデータパケット４５０であって、そのデータパケット４５０の宛先に対応する再構築部４２２を送信先とする、全ての先行するデータパケット４５０について実行する。
＝＝＝再構築部４２２の動作＝＝＝
再構築部４２２の動作は、１つの縮約部４２１を通信相手にするだけなので、図１に示す再構築部４０２の動作と同じであってよい。
【０２８６】
以上が、データ転送装置４２０の動作についての説明である。
【０２８７】
尚、データ転送装置４２０は、複数の再構築部４２２のそれぞれに対して、複数の縮約部４２１が接続されるような構成であってもよい。この場合においても、縮約部４２１及び再構築部４２２の動作は、上述した動作であってよい。その理由は、上述した再構築部４２２の動作において、再構築部４２２は、複数の縮約部４２１のうちいずれの縮約部４２１を通信相手にしているかを判断する必要がないからである。即ち、本実施形態のデータ転送装置４２０は、任意の数の縮約部４２１と任意の数の再構築部４２２とを含むようにしてよい。
【０２８８】
上述した本実施形態における効果は、ライブストリーミングシステムを柔軟に構成することが可能になる点である。
【０２８９】
その理由は、縮約部４２１が複数の再構築部４２２それぞれに対応する再構築情報リスト９２０及び配信要求リスト１４２０に基づいて動作するようにしたからである。
【０２９０】
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が１個のモジュールとして実現されてよい。また、各構成要素は、１つの構成要素が複数のモジュールで実現されてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であるような構成であってよい。また、各構成要素は、ある構成要素の一部と他の構成要素の一部とが重複するような構成であってもよい。
【０２９１】
以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、ハードウェア的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、ハードウェア的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。
【０２９２】
そのプログラムは、例えば、磁気ディスクや半導体メモリなど、不揮発性のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。
【０２９３】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
【０２９４】
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。
【０２９５】
更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作との全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
【０２９６】
以上、各実施形態及び実施例を参照して本発明を説明したが、本発明は上記実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえるさまざまな変更をすることができる。
【０２９７】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
［付記１］
複数のパケットを受信し、
同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを送信する縮約手段と、
前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する再構築手段と、
を含むデータ転送装置。
［付記２］
前記縮約手段は、前記パケットの受信時刻の時間差が特定の範囲である前記受信した複数のパケットのいずれかの内から、前記検出パケットを検出する
ことを特徴とする付記１記載のデータ監視装置。
［付記３］
前記縮約手段は、前記検出パケットのデータ部のハッシュ値を生成し、前記オリジナルデータパケットを特定する情報として前記ハッシュ値を付加して前記縮約パケットを生成する
ことを特徴とする付記１または２記載のデータ監視装置。
［付記４］
前記縮約手段は、前記検出パケットのデータ部のハッシュ値を生成し、前記ハッシュ値と前記データ部を削除した前記パケットのヘッダ部に含まれる情報の少なくとも一部とを前記オリジナルデータパケットを特定する情報として付加して前記縮約パケットを生成する
ことを特徴とする付記１乃至３のいずれか１項に記載のデータ監視装置。
［付記５］
前記縮約手段は、前記受信した複数のパケットであって、同一の前記再構築手段に送信する複数の前記パケットの内から、前記検出パケットを検出する
ことを特徴とする付記１乃至４のいずれか１項に記載のデータ監視装置。
［付記６］
前記縮約手段は、前記受信した複数のパケットそれぞれの前記データ部のハッシュ値を算出し、前記ハッシュ値が同一の前記パケットを、前記検出パケットとして検出する
ことを特徴とする付記１乃至５のいずれか１項に記載のデータ監視装置。
［付記７］
前記縮約手段は、前記受信した複数のパケットであって、前記パケットのヘッダ部に同一の送信元アドレスと送信元ポートとを含む複数の前記パケットの内から、前記検出パケットを検出する
ことを特徴とする付記１乃至６のいずれか１項に記載のデータ監視装置。
［付記８］
前記縮約手段は、前記同一のデータ部を有するパケットを送受信するコネクション数を監視し、前記コネクション数が２以上の場合に前記縮約パケットを生成し、前記コネクション数が１以下の場合に前記縮約パケットを生成しない
ことを特徴とする付記１乃至７のいずれか１項に記載のデータ監視装置。
［付記９］
前記縮約手段は、前記同一のデータ部を有するパケットを送受信するコネクションを監視し、前記コネクションの終了要求を受信した場合、前記終了要求に対応する前記コネクションに係る前記縮約パケットの生成を中止する
ことを特徴とする付記１乃至８のいずれか１項に記載のデータ監視装置。
［付記１０］
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出する手段と、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成する手段と、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する、再構築手段へ送信する手段と、を含む、
データ転送装置。
［付記１１］
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、前記オリジナルデータパケット及び前記縮約パケットを、送信する縮約手段から、前記オリジナルデータパケット及び前記縮約パケットを受信する手段と、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築する手段と、
前記再構築した前記縮約前のパケットを送信する手段と、を含む
データ転送装置。
［付記１２］
複数のパケットを受信し、
同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを送信し、
前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する
データ転送方法。
［付記１３］
複数のパケットを受信し、
同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する、再構築手段
へ送信する
データ転送方法。
［付記１４］
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、前記オリジナルデータパケット及び前記縮約パケットを、送信する縮約手段から、前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する
データ転送方法。
［付記１５］
複数のパケットを受信し、
同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを送信し、
前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する
処理をコンピュータに実行させるプログラム。
［付記１６］
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出する処理と、
少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成する処理と、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する再構築手段へ送信する処理と、をコンピュータに実行させる
プログラム。
［付記１７］
複数のパケットを受信し、同一のデータ部を有する少なくとも２以上の前記パケットを検出パケットとして検出し、少なくとも１つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、前記オリジナルデータパケット及び前記縮約パケットを、送信する縮約手段から、前記オリジナルデータパケット及び前記縮約パケットを受信する処理と、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築する処理と、
前記再構築した前記縮約前のパケットを送信する処理と、をコンピュータに実行させる
プログラム。
【符号の説明】
【０２９８】
１０１    配信サーバ
１０４    受信端末
１０６    通信経路
１０７    通信経路
１０８    通信経路
１０９    通信経路
４００    データ転送装置
４０１    縮約部
４０２    再構築部
４４０    配信要求パケット
４５０    データパケット
４５１    オリジナルデータパケット
４５２    データパケット
４６０    同一データパケット
４６１    縮約データパケット
４６２    同一データパケット
５０１    データ縮約部
５０３    解析部
５０４    送受信インタフェース
５０５    パケットヘッダＤＢ
５０６    時計部
５０７    データパケットバッファ
６０１    データ再構築部
６０３    解析部
６０４    送受信インタフェース
６０５    パケットヘッダＤＢ
６０７    データパケットバッファ
７００    コンピュータ
７０１    ＣＰＵ
７０２    記憶部
７０３    記憶装置
７０４    入力部
７０５    出力部
７０６    通信部
７０７    記録媒体
９００    再構築情報リスト
９０１    再構築情報レコード
１０６１    ＴＣＰコネクション
１０６２    ＴＣＰコネクション
１０６３    ＴＣＰコネクション
１０７１    ＴＣＰコネクション
１０７２    ＴＣＰコネクション
１０７３    ＴＣＰコネクション
１０８１    ＴＣＰコネクション
１０８２    ＴＣＰコネクション
１０８３    ＴＣＰコネクション
１４００    配信要求リスト
１４０１    配信要求レコード
４５０１    送信元ＩＰアドレス
４５０２    宛先ＩＰアドレス
４５０３    送信元ＴＣＰポート番号
４５０４    宛先ＴＣＰポート番号
４５０５    データ部
【図１】
2014003569.tif 000003
【図２】
2014003569.tif 000004
【図３】
2014003569.tif 000005
【図４】
2014003569.tif 000006
【図５】
2014003569.tif 000007
【図６】
2014003569.tif 000008
【図７】
2014003569.tif 000009
【図８】
2014003569.tif 000010
【図９】
2014003569.tif 000011
【図１０】
2014003569.tif 000012
【図１１】
2014003569.tif 000013
【図１２】
2014003569.tif 000014
【図１３】
2014003569.tif 000015
【図１４】
2014003569.tif 000016
【図１５】
2014003569.tif 000017
【図１６】
2014003569.tif 000018
【図１７】
2014003569.tif 000019
【図１８】
2014003569.tif 000020
【図１９】
2014003569.tif 000021
【図２０】
2014003569.tif 000022
【図２１】
2014003569.tif 000023
【図２２】
2014003569.tif 000024
【図２３】
2014003569.tif 000025