本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の機能を備える構成要素には同様の符号が与えられている。
尚、以下の説明において、ライブストリーミングは、例えば音声や動画などのマルチメディアコンテンツを配信・再生するストリーミング技術を応用した、データ配信方法を示す。このライブストリーミングは、配信側が放送の形態(配信時刻を配信側が決定する形態)でコンテンツ(ストリーミングデータ)を配信(送信)するデータ配信方法を示す。ライブストリーミングで配信されるコンテンツは、例えば、ライブカメラの映像、個人の発信するライブ映像及び既存メディアであるテレビ放送やラジオ放送のコンテンツである。
[第1の実施形態]
図1は、本発明の第1の実施形態に係るデータ転送装置400の構成を示すブロック図である。
図1を参照すると、本実施形態に係るデータ転送装置400は、縮約部401と、再構築部402とを含む。
図2は、本実施形態に係るデータ転送装置400を含むライブストリーミングシステムの構成と動作との一例を示す模式図である。
まず、図1及び図2を参照して、本実施形態に係るデータ転送装置400の全体を説明する。
図2を参照すると、本実施形態におけるライブストリーミングシステムは、配信サーバ101、第1のデータ転送装置400A、第2のデータ転送装置400B、受信端末104、通信経路108及び通信経路109とを含む。本実施形態において、第1のデータ転送装置400A、第2のデータ転送装置400Bは、総称してデータ転送装置400とも呼ばれる。
第1のデータ転送装置400Aは、縮約部401と、再構築部402とを備える。第1のデータ転送装置400Aの縮約部401は、配信サーバ101からのデータパケットを受信する。続けて、第1のデータ転送装置400Aの縮約部401は、縮約処理されたデータパケットを含むデータパケットを、通信経路108を介して再構築部402に出力する。第1のデータ転送装置400Aの再構築部402は、データパケットを通信経路108から受信する。続けて、第1のデータ転送装置400Aの再構築部402は、再構築されたデータパケットを、送信先(宛先)の受信端末104または第2のデータ転送装置400Bに出力する。
一方、第2のデータ転送装置400Bは、縮約部401と、再構築部402とを備える。第2のデータ転送装置400Bの縮約部402は、第1のデータ転送装置400Aの再構築部402からのデータパケットを受信する。続けて、第2のデータ転送装置400Bの縮約部402は、縮約処理されたデータパケットを含むデータパケットを、通信経路109を介して再構築部402に出力する。第2のデータ転送装置400Bの再構築部402は、データパケットを通信経路109から受信する。続けて、第2のデータ転送装置400Bの再構築部402は、再構築されたデータパケットを送信先(宛先)の受信端末104に出力する。
尚、配信サーバ101及び受信端末104の台数は、図2に示す構成に係わらず、任意の数であってよい。また、通信経路とそれに対応するデータ転送装置400も任意の数であってよい。また、データ転送装置400は、第1のデータ転送装置400及び第2のデータ転送装置400のように多段に接続されてもよい。
また、配信サーバ101と縮約部401との間の通信経路、再構築部402と受信端末104との間の通信経路及びネットワーク機器(例えば、スイッチ、ルータ)は、図示しない。同様に、カスケード接続されたデータ転送装置400間の通信経路も図示しない。ここで、カスケード接続されたデータ転送装置400間の通信経路は、例えば、図2における第1のデータ転送装置400の再構築部402と第2のデータ転送装置400の縮約部401との間の通信経路である。
受信端末104は、ライブストリーミングデータの配信の要求(配信要求)を、配信要求パケット440として送信する。その送信された配信要求パケット440は、受信端末104と配信サーバ101の経路上にある再構築部402と縮約部401とを経由し、配信サーバ101に受信される。
配信サーバ101は、受信した配信要求に応答して、ライブストリーミングデータを含むデータパケット450を送信する。
配信サーバ101から送信されたデータパケット450に含まれるライブストリーミングデータは、縮約部401と再構築部402とを経由し、受信端末104で受信される。
上述のライブストリーミングシステムにおいて、データ転送装置400は、以下のように機能する。
第一に、縮約部401は、複数のパケットを受信し、所定の時間内に、同一のデータ部を有するデータパケット450及び同一データパケット460を検出する。尚、データパケット450及び同一データパケット460は、検出パケットとも呼ばれる。ここで、同一データパケット460は、同一宛先(同一の再構築部402)に対する、同一のデータ部を有する二つ目以降のデータパケット450である。尚、同一宛先(同一の再構築部402)に対する、同一データを持つ一つ目のデータパケット450は、先行するデータパケット450とも呼ばれる。
尚、縮約部401は、所定の時間内に受信したパケットについて、検出パケットを検出してよい。
第二に、縮約部401は、同一データパケット460のデータ部を縮約した、即ちデータ量を削減した、縮約データパケット461を、再構築部402に送信する。尚、図2において、縮約データパケット461は、始端が黒丸の矢印線で示される。
例えば、縮約部401は、同一データパケット460のデータ部のデータを削除し、先行するデータパケット450のパケットヘッダの情報とデータ部のデータのハッシュ値とを付加して、縮約データパケット461を生成する。即ち、縮約部401は、同一データパケット460のデータ部を、そのデータ部のデータよりサイズが小さいデータで置換し、縮約データパケット461を生成する。ここで、そのサイズが小さいデータは、先行するデータパケット450であるオリジナルデータパケットを特定するための情報を含む。
第三に、再構築部402は、受信した縮約データパケット461のデータ部(その縮約データパケット461に対応する同一データパケット460のデータ部)を復元して、再構築した同一データパケット462を生成し、送信する。
例えば、再構築部402は、縮約データパケット461に付加されたパケットヘッダの情報とデータ部のハッシュ値とに基づいて、オリジナルデータパケット451を特定する。そして、再構築部402は、オリジナルデータパケット451のデータ部に基づいて、縮約データパケット461に対応する縮約前の同一データパケット460(同一データパケット462)を再構築する。尚、オリジナルデータパケット451は、同一データの同一宛先に対する一つ目のデータパケット450に対応し、縮約部401がデータ部を縮約することなく送信したデータパケットである。再構築部402はこのオリジナルデータパケット451をデータパケットバッファ607に保持する。
上述したデータ転送装置400は、ストリーミングデータの転送においてTCPコネクションをエンドツーエンドで確立したままで、通信トラフィックを削減することが可能になる。
その理由は、データ転送装置400は、マルチキャストプロトコルを使用しないことでTCPコネクションを維持するようにし、データパケットのデータ部分の縮約と再構成を行うことで通信トラフィックを削減するようにしたからである。
以上が、本実施形態に係るデータ転送装置400の動作の概要である。
次に、図1に示すデータ転送装置400が備える各構成要素について説明する。尚、図1に示す構成要素は、ハードウェア単位の構成要素ではなく、機能単位の構成要素を示している。ここでは、データ転送装置400の構成が第1のデータ転送装置400Aであることを前提として説明するが、データ転送装置400の構成は、第2のデータ転送装置400Bでも同様である。
===縮約部401===
図3は、縮約部401の構成を示すブロック図である。縮約部401は、送受信インタフェース504、解析部503、パケットヘッダDB505、データパケットバッファ507及びデータ縮約部501を含む。
===送受信インタフェース504===
送受信インタフェース504は、受信インタフェース(不図示)と送信インタフェース(不図示)を含む。受信インタフェースは、縮約部401の外部から、パケットを受信する。送信インタフェースは、縮約部401の外部へ、パケットを送信する。
===解析部503===
解析部503は、送受信インタフェース504で受信したパケット(受信パケット)が、配信要求パケット440及びデータパケット450のいずれかであるか否かを判定する。更に、データパケット450である場合に、解析部503は、そのデータパケット450が同一データパケット460であるか否かを判定する。
解析部503は、受信パケットが配信要求パケット440であるか否かを、その受信パケットのヘッダ部及びデータ部に含まれる情報を解析して判断する。具体的には、解析部503は、以下のような手段で、受信パケットを解析し、配信要求パケット440であるか否かを判定する。尚、後述の他の種別のパケットの判定の手段、及び図6に示す解析部603におけるパケットの判定の手段も、以下に示す手段と同様の手段であってよい。
例えば、縮約部401は、図示しない記憶手段、パケットの種別とパケットのヘッダ部の情報との対応表であるパケット解析情報テーブルを記憶する。そして、解析部503は、パケット解析情報テーブルを利用し、その受信パケットに含まれる送信元IP(Internet Protocol)アドレス、宛先IPアドレス、送信元TCPポート番号、宛先TCPポート番号に基づいて、配信要求パケット440であるか否かを判断する。
また、IPヘッダの特定フィールドは、縮約部401と再構築部402との間において特定の意味を定義されてもよい。そして、解析部503は、その受信パケットに含まれるIPヘッダの特定フィールドの情報に基づいて、配信要求パケット440であるか否かを判定するようにしてもよい。
また、データ部は、縮約部401と再構築部402との間において、特殊な文字列を付加されてもよい。そして、解析部503は、その文字列に基づいて、配信要求パケット440であるか否かを判定するようにしてもよい。
また、解析部503は、受信パケットが所定のデータパケット(データパケット450、同一データパケット460)であるか否かを、その受信パケットのヘッダ部及びデータ部に含まれる情報を解析して判断する。ただし、同一データパケット406は、以下の方法で解析される。
即ちまた、解析部503は、データパケット(受信パケット)が同一データパケット460であるか否かを、例えば、以下の第1から第3の条件を全て満たすか否かに基づいて判定する。尚、解析部503は、以下の第3の条件を満たすか否かにのみ基づいて、データパケットが同一データパケット460であるか否かを判定するようにしてもよい。また、尚、解析部503は、以下の第1及び第3の条件の両方を満たすか否かにのみ基づいて、データパケットが同一データパケット460であるか否かを判定するようにしてもよい。また、尚、解析部503は、以下の第2及び第3の条件の両方を満たすか否かにのみ基づいて、データパケットが同一データパケット460であるか否かを判定するようにしてもよい。また、
第1の条件は、その受信パケットのヘッダ部の情報と、先行するデータパケット450のヘッダ部の情報とが整合することである。この整合は、例えば、それらのヘッダ部の情報における、送信元IPアドレス、送信元TCPポート番号及び宛先TCPポート番号のそれぞれ同士が一致することである。尚、先行するデータパケット450の送信元IPアドレス、送信元TCPポート番号及び宛先TCPポート番号は、例えば、パケットヘッダDB505に記憶されている。また、解析部503は、データパケットバッファ507に記憶されている、先行するデータパケット450の送信元IPアドレス、送信元TCPポート番号及び宛先TCPポート番号を利用するようにしてもよい。
第2の条件は、そのデータパケット(受信パケット)がその先行するデータパケット450の受信時刻から範囲時間T1の時間内に受信したデータパケットであることである。ここで、範囲時間T1は、例えば、配信サーバ101が先行するデータパケット450と同一データパケット460とを送信するのに要すると想定される時間である。範囲時間T1は、例えば、図示しない手段により予め与えられているものとする。また、範囲時間T1は、解析部503がデータパケットの受信状況を分析して算出する(例えば、後述の第3の条件を満たすデータパケットの平均受信間隔に、配信対象の受信端末104の台数を乗じる)ようにしてもよい。尚、先行するデータパケット450の受信時刻は、例えば、パケットヘッダDB505に記憶されている。また、先行するデータパケット450の受信時刻は、そのデータパケット450に関連付けて、データパケットバッファ507に記憶されるようにしてもよい。
第3の条件は、そのデータパケット(受信パケット)のデータ部とその先行するデータパケット450のデータ部とが一致することである。尚、解析部503は、例えば、データパケットバッファ507に記憶されている、先行するデータパケット450のデータ部を利用する。
一方、解析部503は、受信パケットが配信要求パケット440であると判断した場合、パケットヘッダDB505の配信要求リストを更新する。ここで、配信要求リストは、配信要求パケット440に関する情報を保持する手段の一例である。続けて、解析部503は、その配信要求パケット440を、送受信インタフェース504を介して配信サーバ101に送信する。
図4は、パケットヘッダDB505に記録される配信要求リスト1400の一例を示す図である。図4に示すように、配信要求リスト1400は、1以上の配信要求レコード1401からなる。
配信要求レコード1401は、例えば、送信元IPアドレス:TCPポート番号、要求URL及びコネクション数を含む。送信元IPアドレス:TCPポート番号は、その配信要求パケット440の宛先である配信サーバ101のIPアドレス及びTCPポート番号である。つまり、この送信元IPアドレス:TCPポート番号は、ライブストリーミングデータのコンテンツを配信する配信サーバのIPアドレス及びTCPポート番号を示している。要求URLは、その配信要求パケット440で指定されるライブストリーミングデータのコンテンツの要求URLである。コネクション数は、送信元IPアドレス:TCPポート番号、要求URLのそれぞれが全て一致する配信要求パケット440の数である。即ち、コネクション数は、同一のライブストリーミングデータを受信する受信端末104の数を示す。
上述の配信要求レコード1401に含まれる送信元IPアドレス:TCPポート番号は、配信サーバ101を一意に特定する情報である。また、配信要求レコード1401に含まれる要求URLは、配信サーバ101内でのライブストリーミングデータのコンテンツを一意に特定する情報である。配信要求レコード1401は、これらに替えて、特定の配信サーバ101の特定のライブストリーミングデータのコンテンツを、一意に特定できる識別情報を含むようにしてもよい。
尚、解析部503は、その受信した配信要求パケット440といずれかの配信要求レコード1401とのそれぞれの、送信元IPアドレス:TCPポート番号及び要求URLが共に一致する場合、その配信要求レコード1401のコネクション数を「1」増加させる。また、解析部503は、その受信した配信要求パケット440と、送信元IPアドレス:TCPポート番号及び要求URLが共に一致する配信要求レコード1401が存在しない場合、配信要求リスト1400に、その配信要求パケット440に対応する配信要求レコード1401を追加する。
解析部503は、受信パケットがデータパケット450であると判断した場合で、かつ同一データパケット460ではないと判断した場合、そのデータパケット450に関する情報を、パケット再構築情報としてパケットヘッダDB505の再構築情報リストに記録する。
図5は、再構築情報リスト900の一例を示す図である。図5に示すように、再構築情報リスト900は、1以上の再構築情報レコード901からなる。再構築情報レコード901は、例えば、送信時刻、廃棄予定時刻、宛先IPアドレス、送信元IPアドレス:TCPポート番号、ハッシュ値、データ長、及び同一パケット数を含む。
送信時刻は、送信元である配信サーバ101がデータパケット450を送信した時刻に対応する時刻である。具体的には、縮約部401が、データパケット450を受信した時刻であってよい。
廃棄予定時刻は、その廃棄予定時刻を含む再構築情報レコード901自身と、その再構築情報レコード901に対応するデータパケット450及びオリジナルデータパケット451とを廃棄する予定の時刻である。尚、そのデータパケット450及びそのオリジナルデータパケット451のそれぞれは、データパケットバッファ507に記憶されている先行するデータパケット450及びデータパケットバッファ607に記憶されているオリジナルデータパケット451のそれぞれである。
廃棄予定時刻は、例えば、送信時刻に対して、所定の時間(たとえば、10秒)後の、時刻であってよい。
宛先IPアドレスは、そのデータパケット450の宛先である受信端末104のIPアドレスである。
送信元IPアドレスは、そのデータパケット450の送信元である配信サーバ101のIPアドレスである。
送信元TCPポート番号は、そのデータパケット450の送信元である配信サーバ101のTCPポート番号である。
ハッシュ値は、オリジナルデータパケット451のデータ部のデータのハッシュ値である。
データ長は、データパケット450のデータ部の、バイトで示すデータの長さである。
同一パケット数は、同一のデータ部を含むオリジナルデータパケット451と縮約データパケット461との合計数である。
尚、解析部503は、受信パケットが、データパケット450であると判断した場合で、かつ同一データパケット460ではないと判断した場合に、再構築情報レコード901に記録される同一パケット数は、「1」になる。
縮約部401は、同一データパケット460の縮約処理を実行するために、再構築情報リスト900を利用する。また、再構築部402は、縮約データパケット461の再構築処理を実行するために、再構築情報リスト900を利用する。
また、縮約部401及び再構築部402は、オリジナルデータパケット451、縮約データパケット461、データパケット452及び同一データパケット462の再送処理の際に、その再構築情報リスト900を利用してもよい。
尚、縮約部401は、その再構築情報リスト900を、再構築部402に通知(詳細は後述)する。
更に、解析部503は、受信パケットがデータパケット450であると判断した場合で、かつ同一データパケット460ではないと判断した場合、その受信パケットを先行するデータパケット450としてデータパケットバッファ507に記録する。尚、解析部503は、そのデータパケット450の受信時刻を関連付けて、そのデータパケット450をデータパケットバッファ507に記録する。或いは、解析部503は、その先行するデータパケット450のデータ部をデータパケットバッファ507に記録し、その先行するデータパケット450に対応する再構築情報レコード901にそのデータ部の索引情報を含めるようにしてもよい。
次に、解析部503は、そのデータパケット450を送受信インタフェース504に出力する。
また、解析部503は、受信パケットが同一データパケット460であると判断した場合、その同一データパケット460に対する先行するデータパケット450に対応する、再構築情報レコード901の同一パケット数を「1」増加する。
また、解析部503は、受信パケットが同一データパケット460であると判断した場合、その同一データパケット460をデータ縮約部501に出力する。
更に、解析部503は、先行するデータパケット450を受信した時刻から上述の範囲時間T1が経過した場合に、その先行するデータパケット450に対応する、再構築情報レコード901を含む再構築情報パケットを再構築部402に送信する。尚、解析部503は、その再構築情報パケットで送信した再構築情報レコード901を再構築情報リスト900から削除してよい。更に、解析部503は、データパケットバッファ507に記憶しているその先行するデータパケット450を削除するようにしてもよい。
また、解析部503は、受信パケットが配信要求パケット440及びデータパケット450、同一データパケット460のいずれか以外のパケットであると判断した場合、そのパケットに対して特別な処理を実行せずに、そのパケットを送受信インタフェース504に出力する。
===パケットヘッダDB505===
パケットヘッダDB505は、再構築情報リスト900及び配信要求リスト1400を記憶する。
===データパケットバッファ507===
データパケットバッファ507は、先行するデータパケット450とその先行するデータパケット450の受信時刻との組を記憶する。
===データ縮約部501===
データ縮約部501は、同一データパケット460のデータ部のハッシュ値を算出する。尚、データ縮約部501は、その同一データパケット460に対して先行するデータパケット450である、データパケット450に対応する再構築情報レコード901に含まれるハッシュ値を利用するようにしてもよい。
次に、データ縮約部501は、同一データパケット460に対応する縮約データパケット461を生成する。縮約データパケット461の生成において、データ縮約部501は、まずデータ部のデータを削除する。次に、データ縮約部501は、その同一データパケット460に対して先行するデータパケット450のパケットヘッダの送信元IPアドレス:TCPポート番号を付加する。更に、データ縮約部501は、算出したハッシュ値を付加する。
次に、データ縮約部501は、生成した縮約データパケット461を、送受信インタフェース504を介して再構築部402に送信する。
===時計部506===
時計部506は、現在時刻を計時し、その現在時刻を解析部503に出力する。
===再構築部402===
図6は、再構築部402の構成を示すブロック図である。図6に示すように再構築部402は、データ再構築部601、解析部603、送受信インタフェース604、パケットヘッダDB605及びデータパケットバッファ607を含む。
===送受信インタフェース604===
送受信インタフェース604は、図3に示す送受信インタフェース504と同じである。
===解析部603===
解析部603は、送受信インタフェース604を介して受信したパケットが配信要求パケット440、オリジナルデータパケット451、縮約データパケット461及び再構築情報パケットのいずれかであるか否かを判定する。
解析部603は、その受信パケットが配信要求パケット440であるか否かを、その受信パケットのヘッダ部及びデータ部に含まれる情報を解析して判断する。
また、解析部603は、その受信パケットがオリジナルデータパケット451及び縮約データパケット461のいずれか(データパケットPDと呼ぶ)であるか否かを、その受信パケットのヘッダ部及びデータ部に含まれる情報を解析して判断する。また、そのデータパケットPDは、オリジナルデータパケット451及び縮約データパケット461のいずれかである。
また、解析部603は、そのデータパケットPDがオリジナルデータパケット451または縮約データパケット461のいずれであるかを、例えば、パケットの長さ(またはパケットのデータ部の長さ)に基づいて判定する。具体的には、その長さが所定の閾値以上である場合、解析部603は、そのデータパケットPDを、先行するデータパケット450に対応するオリジナルデータパケット451であると判定する。また、その長さが閾値未満である場合、解析部603は、そのデータパケットPDを、同一データパケット460に対応する縮約データパケット461であると判定する。
即ち、そのデータパケットPDがオリジナルデータパケット451または縮約データパケット461のいずれであるかを判定することは、そのデータパケットPDがデータに替えてデータ部のハッシュ値を含んでいるか否かを判定することである。
尚、データ転送装置400は、縮約部401と再構築部402との間でIPヘッダの特定フィールドの利用を定義し、ハッシュ値を含んでいるか否かを判定するようにしてもよい。また、データ転送装置400は、縮約部401と再構築部402との間でデータ部に特殊な文字列を付加することを定義し、ハッシュ値を含んでいるか否かを判定するようにしてもよい。
また、解析部603は、再構築情報パケットであるか否かを、その受信パケットのヘッダ部及びデータ部に含まれる情報を解析して判断する。
解析部603は、配信要求パケット440であると判断した場合、図3に示す解析部503と同様にして、パケットヘッダDB605の配信要求リスト1400を更新する。続けて、解析部603は、そのパケットを、送受信インタフェース604を介してデータ再構築部601に出力する。
解析部603は、オリジナルデータパケット451であると判断した場合、そのオリジナルデータパケット451及びそのオリジナルデータパケット451のデータ部のデータのハッシュ値との組を、データパケットバッファ607に記録する。続けて、解析部603は、そのオリジナルデータパケット451を、送受信インタフェース604を介して受信端末104に送信する。
また、解析部603は、縮約データパケット461であると判断した場合、その縮約データパケット461を、データパケットバッファ607に記録する。
また、解析部603は、再構築情報パケットであると判断した場合、その再構築情報パケットに含まれる再構築情報レコード901を、パケットヘッダDB605の再構築情報リスト900に追加する。但し、解析部603は、その再構築情報レコード901に含まれる同一パケット数が「1」であった場合は、その再構築情報レコード901を再構築情報リスト900に追加せず、廃棄する。その理由は、同一パケット数が「1」の再構築情報レコード901は、それに対応するデータパケットがオリジナルデータパケット451のみであり、それに対応する縮約データパケット461は存在しないためである。
また、解析部603は、受信パケットが配信要求パケット440、オリジナルデータパケット451、縮約データパケット461及び再構築情報パケットのいずれか以外のパケットであると判断した場合、そのパケットに対して特別な処理を実行せずに、そのパケットを送受信インタフェース604に出力する。
===データ再構築部601===
データ再構築部601は、パケットヘッダDB605の再構築情報リスト900に基づいて、縮約部401によって縮約されたライブストリーミングデータを再構築する。
具体的には、データ再構築部601は、再構築情報リスト900の再構築情報レコード901それぞれについて、以下の処理を行う。
まず、データ再構築部601は、データパケットバッファ607に保持している縮約データパケット461のいずれかを取得し、その縮約データパケット461に含まれるハッシュ値と同じ値のハッシュ値を含む再構築情報レコード901を探索する。
その同じ値のハッシュ値を含む再構築情報レコード901を検出できなかった場合、データ再構築部601は、その縮約データパケット461について何の処理も行わない。
同じ値のハッシュ値を含む再構築情報レコード901を検出した場合、データ再構築部601は、縮約データパケット461のデータ部に含まれるヘッダ情報とハッシュ値とに基づいて、データパケットバッファ607からオリジナルデータパケット451を検索する。そして、データ再構築部601は、縮約データパケット461のデータ部のヘッダ情報とハッシュ値とを削除し、検索したオリジナルデータパケット451のデータ部を付加して、同一データパケット462を生成し、出力する。ここで、同一データパケット462は、元のデータパケット450に含まれるライブストリーミングデータを含むデータパケットである。
次に、データ再構築部601は、その再構築情報レコード901の同一パケット数を「1」減算する。そして、同一パケット数が「1」になった場合、その再構築情報レコード901を削除する。
===パケットヘッダDB605===
パケットヘッダDB605は、再構築情報リスト900及び配信要求リスト1400を記憶する。
===データパケットバッファ607===
データパケットバッファ607は、オリジナルデータパケット451及び縮約データパケット461を記憶する。
次に、図7を参照して、縮約部401による縮約処理と再構築部402による再構築処理との具体的な例を説明する。図7は、配信サーバ101が通信経路107に送信したデータパケットを、縮約部401が縮約して通信経路108に送信し、再構築部402が再構築して通信経路107へ送信する、場合のデータパケットのイメージを示す図である。
配信サーバ101は、3本のTCPコネクション1061、TCPコネクション1062及びTCPコネクション1063を用いて、データパケット450A、同一データパケット460B及び同一データパケット460Cを通信経路107に送信する。
図7に示すように、それらのデータパケットのそれぞれは、送信元IPアドレス4501、宛先IPアドレス4502、送信元TCPポート番号4503、宛先TCPポート番号4504、データ部4505から構成されている。
送信元IPアドレス4501は、配信サーバ101のIPアドレス(図7においては、sIPと表記)である。宛先IPアドレス4502は、ライブストリーミングデータの宛先である、各受信端末104のIPアドレス(図7においては、dIP1、dIP2及びdIP3と表記)である。送信元TCPポート番号4503は、配信サーバ101がライブストリーミングデータを送信するTCPポートの番号(図7においては、sTCPと表記)である。宛先TCPポート番号4504は、受信端末104がライブストリーミングデータを受信するTCPポートの番号(図7においては、dTCPと表記)である。データ部4505は、同一内容のライブストリーミングデータ(図7においては、DATAと表記)である。
縮約部401は、それらの3つのデータパケットを受信し、以下のように処理する。
縮約部401は、一つ目のデータパケットであるデータパケット450Aには特に何も手は加えず、オリジナルデータパケット451Aとして、TCPコネクション1081を用いて通信経路108へ送信する。
縮約部401は、二つ目以降のパケットのそれぞれについて、データ部4505のライブストリーミングデータを削除する。そして、縮約部401は、それらのパケットそれぞれについて、データパケット450Aの送信元IPアドレス4501を送信元IPアドレス4507として付加する。更に、縮約部401は、それらのパケットそれぞれについて、宛先IPアドレス4502を宛先IPアドレス4508として付加する。更に、縮約部401は、それらのパケットそれぞれについて、データ部4505のデータのハッシュ値4509を付加する。
こうして、縮約部401は、同一データパケット460B及び同一データパケット460Cのそれぞれを縮約して縮約データパケット461B及び縮約データパケット461Cを生成する。そして、縮約部401は、生成した縮約データパケット461B及び縮約データパケット461Cのそれぞれを、TCPコネクション1082及びTCPコネクション1083を用いて、通信経路108へ送信する。
付加した送信元IPアドレス4501、宛先IPアドレス4502及びデータ部のデータのハッシュ値を合わせたサイズは、ライブストリーミングデータのサイズに比べて小さい。従って、通信経路108における通信トラフィックは、通信経路106における通信トラフィックに比べて小さいものとなる。
再構築部402は、オリジナルデータパケット451A、同一データパケット460B及び同一データパケット460Cを受信し、以下のように処理する。
再構築部402は、オリジナルデータパケット451Aをデータパケットバッファ607に記録する。そして、再構築部402は、オリジナルデータパケット451Aに特に何も手は加えず、データパケット452Aとして、TCPコネクション1071を用いて通信経路107へ送信する。
再構築部402は、二つ目以降のパケットのそれぞれについて、送信元IPアドレス4507、宛先IPアドレス4508及びハッシュ値4509に基づいて、データパケットバッファ607からオリジナルデータパケット451Aを読み出す。次に、再構築部402は、縮約データパケット461B及び縮約データパケット461Cのそれぞれについて、送信元IPアドレス4507、宛先IPアドレス4508及びデータ部のデータのハッシュ値4509を削除し、オリジナルデータパケット451Aのデータ部4505の内容を付加する。こうして、再構築部402は、縮約データパケット461B及び縮約データパケット461Cのそれぞれを再構築して同一データパケット462B、同一データパケット462Cを生成する。そして、再構築部402は、TCPコネクション1072及びTCPコネクション1073を用いて、通信経路107へ送信する。
尚、縮約部401は、データパケット450Aについても、対応する縮約データパケット461を生成し、再構築部402に送信するようにしてもよい。この場合、縮約部401は、オリジナルのデータ部を含む専用のデータパケットを、再構築部402に送信する。その際、縮約部401は、オリジナルのデータ部を含む専用のデータパケットに、そのデータ部が、データパケット450A、同一データパケット460B及び同一データパケット460Cのそれぞれのデータ部であることを示す識別情報を含めるようにしてもよい。その識別情報は、例えば、データパケット450A、同一データパケット460B及び同一データパケット460Cのそれぞれの宛先IPアドレスである。また、縮約部401は、その識別情報を独自に生成し、オリジナルのデータ部を含む専用のデータパケットと、縮約データパケット461のそれぞれに含めるようにしてもよい。
以上が、データ転送装置400の機能単位の各構成要素についての説明である。
次に、データ転送装置400のハードウェア単位の構成要素について説明する。
次に、データ転送装置400のハードウェア単位の構成要素について説明する。まず、データ転送装置400のハードウェア単位の構成要素について説明する
図8は、本実施形態におけるデータ転送装置400を実現するコンピュータ700のハードウェア構成を示す図である。
図8に示すように、コンピュータ700は、CPU(Central Processing Unit)701、記憶部702、記憶装置703、入力部704、出力部705及び通信部706を含む。更に、コンピュータ700は、外部から供給される記録媒体(または記憶媒体)707を含む。記録媒体707は、情報を非一時的に記憶する不揮発性記録媒体であってもよい。
CPU701は、オペレーティングシステム(不図示)を動作させて、コンピュータ700の、全体の動作を制御する。また、CPU701は、例えば記憶装置703に装着された記録媒体707から、プログラムやデータを読み込み、読み込んだプログラムやデータを記憶部702に書き込む。ここで、そのプログラムは、例えば、後述の図11及び図12に示すシーケンス図の各部の動作をコンピュータ700に実行させるプログラムである。また、そのプログラムは、図13、図14及び図15に示すフローチャートの動作をコンピュータ700に実行させるプログラムであってもよい。
そして、CPU701は、読み込んだプログラムに従って、また読み込んだデータに基づいて、図3に示すデータ縮約部501及び解析部503、図6に示すデータ再構築部601及び解析部603として各種の処理を実行する。
尚、CPU701は、通信網(不図示)に接続されている外部コンピュータ(不図示)から、記憶部702にプログラムやデータをダウンロードするようにしてもよい。
記憶部702は、プログラムやデータを記憶する。記憶部702は、パケットヘッダDB505及びデータパケットバッファ507を含んでよい。また、記憶部702は、パケットヘッダDB605及びデータパケットバッファ607を含んでよい。
記憶装置703は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク及び半導体メモリであって、記録媒体707を含む。記憶装置703は、プログラムをコンピュータ読み取り可能に記録する。また、記憶装置703は、データをコンピュータ読み取り可能に記録してもよい。記憶装置703は、パケットヘッダDB505及びデータパケットバッファ507を含んでよい。また、記憶装置703は、パケットヘッダDB605及びデータパケットバッファ607を含んでよい。
入力部704は、例えばマウスやキーボード、内蔵のキーボタンなどで実現され、入力操作に用いられる。入力部704は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネル、加速度計、ジャイロセンサ、カメラなどでもよい。
出力部705は、例えばディスプレイで実現され、出力を確認するために用いられる。
通信部706は、配信サーバ101及び受信端末104とのインタフェースを実現する。また、通信部706は、縮約部401と再構築部402との間のインタフェースを実現する。通信部706は、送受信インタフェース504及び送受信インタフェース604の一部として含まれる。
以上説明したように、図1に示すデータ転送装置400の機能単位のブロックは、図8に示すハードウェア構成のコンピュータ700によって実現される。但し、コンピュータ700が備える各部の実現部は、上記に限定されない。すなわち、コンピュータ700は、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
尚、上述のプログラムのコードを記録した記録媒体707が、コンピュータ700に供給され、CPU701は、記録媒体707に格納されたプログラムのコードを読み出して実行するようにしてもよい。或いは、CPU701は、記録媒体707に格納されたプログラムのコードを、記憶部702、記憶装置703またはその両方に格納するようにしてもよい。すなわち、本実施形態は、コンピュータ700(CPU701)が実行するプログラム(ソフトウェア)を、一時的にまたは非一時的に、記憶する記録媒体707の実施形態を含む。
以上が、本実施形態におけるデータ転送装置400を実現するコンピュータ700の、ハードウェア単位の各構成要素についての説明である。
次に本実施形態の動作について、図面を参照して詳細に説明する。
まず、図9及び図5を参照して、データ転送装置400を含むライブストリーミングシステムの全体の動作について説明する。
図9は、本実施形態に係るデータ転送装置400を含むライブストリーミングシステムの構成と動作との一例を示す模式図である。図9において、配信サーバ101内に括弧で囲んで示す値は、送信元である配信サーバ101のIPアドレスとTCPポート番号である。図9に示すように、配信サーバ101のIPアドレスは、「192.168.0.80」、TCPポート番号は、「80」である。また、図9において、配信サーバ101内に括弧で囲んで示す値は、配信サーバ101のIPアドレス:TCPポート番号である。そのIPパドレスは、「192.168.100.8」であり、TCPポート番号は「80」である。また、図9において、受信端末104内に括弧で囲んで示す値は、受信端末104のそれぞれのIPアドレスである。そのIPアドレスは、左端の受信端末104から順に、「192.168.1.11」、「192.168.1.12」、「192.168.1.13」、「192.168.1.100」及び「192.168.1.200」である。
配信サーバ101は、第1のライブストリーミングデータと第2のライブストリーミングデータとのそれぞれを配信するために、データパケット450及び同一データパケット460を送信する。尚、第1のライブストリーミングデータと第2のライブストリーミングデータとのそれぞれは、2種類のコンテンツのそれぞれを配信するライブストリーミングのデータである。
図9において、一点鎖線で示すデータパケット450、同一データパケット460、オリジナルデータパケット451、縮約データパケット461、データパケット452及び同一データパケット462のそれぞれは、第1のライブストリーミングデータを配信するデータパケットである。また、二点鎖線で示すデータパケット450、同一データパケット460、オリジナルデータパケット451、縮約データパケット461、データパケット452及び同一データパケット462のそれぞれは、第2のライブストリーミングデータを配信するデータパケットである。
第1のライブストリーミングデータは、通信経路108を経由して、3台の受信端末104に配信される。この3台の受信端末104は、IPアドレスが「192.168.1.11」、「192.168.1.12」及び「192.168.1.13」の受信端末104である。また第2のライブストリーミングデータは、通信経路108及び通信経路109を経由して2台の受信端末104に配信される。この2台の受信端末104は、IPアドレスが「192.168.1.100」及び「192.168.1.200」の受信端末104である。
通信経路108には、5台の受信端末104に配信される、2種類のコンテンツのライブストリーミングデータが、計5本のTCPコネクションを用いて配信されている。そのうち、第1のライブストリーミングデータの同一データパケット460のそれぞれは、縮約部401によって縮約され、再構築部402によって再構築される。尚、ここの縮約部401及び再構築部402は、第1のデータ転送装置400A(図9に不図示)の縮約部401及び再構築部402である。同様に、第2のライブストリーミングデータ(二点鎖線)の同一データパケット460も、縮約部401によって縮約され、再構築部402によって再構築される。ここの縮約部401及び再構築部402も、同様に、第1のデータ転送装置400Aの縮約部401及び再構築部402である。
また、通信経路109には、2台の受信端末104に配信されるコンテンツの第2のライブストリーミングデータ(二点鎖線)が、2本のTCPコネクションを用いて配信されている。ここでも同様に、データパケット450とデータ部が重複している同一データパケット460は、縮約部401によって縮約され、再構築部402によって再構築される。尚、ここの縮約部401及び再構築部402は、第2のデータ転送装置400B(図9に不図示)の縮約部401及び再構築部402である。
例えば、再構築情報レコード901(A)は、第1のデータ転送装置400Aが図9に示すように動作した場合の、第1のライブストリーミングデータの配信に関連する、データパケット450のヘッダ部に関する情報を示す。また、再構築情報レコード901(B)は、第1のデータ転送装置400Aが図9に示すように動作した場合の、第2のライブストリーミングデータの配信に関連する、データパケット450のヘッダ部に関する情報を示す。
図5に示す再構築情報レコード901は、縮約部401を通過するときに元のデータがそのまま送られるオリジナルデータパケット451に関する情報のみを、データ転送装置400が保持し、利用する場合の例を示している。ここで、「オリジナルデータパケット451に関する情報」は、「先行するデータパケット450に対してデータ部が重複しない、一つ目のデータパケット450に関する情報」である。この場合、データ転送装置400は、「先行するデータパケット450に対してデータ部が重複しない、一つ目のトラフィック(TCPコネクション)」についての再構築情報リスト900を保持し、利用する。
尚、データ転送装置400は、同一データパケット460に関する情報(先行するデータパケット450に対してデータ部が重複する、二つ目以降のトラフィック)に関する情報を更に保持し、利用するようにしてもよい。
例えば、図9の第1のライブストリーミングデータを含むデータパケット450及び同一データパケット460は、3つの受信端末104に配信されている。そして、第1のライブストリーミングデータのデータパケット450は、縮約部401を経由して、オリジナルデータパケット451として再構築部402に送信される。そのオリジナルデータパケット451は、再構築部402からデータパケット452として宛先IPアドレスが「192.168.1.12」の受信端末104に送信される。その結果、再構築情報レコード901(A)の宛先IPアドレスは、「192.168.1.12」を記憶している。
また、第1のライブストリーミングデータの同一データパケット460は、縮約部401により縮約され、縮約データパケット461として再構築部402に送信される。その縮約データパケット461は、再構築部402により再構築され、同一データパケット462として宛先IPアドレスが「192.168.1.11」及び「192.168.1.11」である受信端末104のそれぞれに送信される。
上述の通り、第1のライブストリーミングデータとして、同一のデータ部を含む1つのデータパケット450及び2つの同一データパケット460が転送されているため、再構築情報レコード901(A)の同一パケット数は「3」を記憶している。
尚、上述のパケットヘッダDB505及びパケットヘッダDB605に記憶するデータパケットに関する情報は、一例であり、必ずしもこの通りでなくてもよい。例えば、縮約部401及び再構築部402は、同一データパケット460(或いは、縮約データパケット461)に関する情報(例えば、宛先IPアドレス)を更に記憶し、利用するようにしてもよい。
また、データ転送装置400は、データパケットバッファ507及びデータパケットバッファ607に記憶されている各データパケットを、一定期間(例えば、1分間)保持しておくようにしてもよい。そして、データ転送装置400は、受信端末104からの再送要求を検出した場合、配信サーバ101に知らせることなく、再送処理を実行するようにしてもよい。
以上が、データ転送装置400を含むライブストリーミングシステムの全体の動作についての説明である。
次に、縮約部401が再構築情報リスト900を再構築部402に通知する動作について説明する。
図10は、データ転送装置400が再構築情報リスト900を通知する動作を示すシーケンス図である。
図10に示す動作の開始時の状態は、ライブストリーミングによるコンテンツの配信が既に開始されており、受信端末104がライブストリーミングデータの少なくとも1つのデータパケットを受信済みの状態である。
縮約部401は、パケットヘッダDB505が記憶している再構築情報リスト900を、再構築部402に送信する(ステップS1001)。縮約部401は、例えば、縮約の処理を実行している時間の、任意のタイミングでステップS1001の処理を実行する。
次に、再構築情報リスト900を受信した再構築部402は、Ack応答を縮約部401に送信する(ステップS1002)。
尚、縮約部401から再構築部402への再構築情報リスト900の通知は、必須ではない。縮約部401から再構築部402へ再構築情報リスト900を通知しない場合、再構築部402は、受信した配信要求パケット440及びオリジナルデータパケット451配信要求を受けその情報を基に再構築情報リスト900を生成してもよい。但し、この場合、パケットヘッダDB605における送信時刻は、再構築部402が、データパケット452を送信した時刻である。
また、図10に示す動作は、既に通信しているライブストリーミングとは別の、アウトバンドで再構築情報リスト900を通知するようにした。しかし、インバンドでライブストリーミングデータに再構築情報リスト900を付加して送信(ピギーバック)するようにしてもよい。
以上が、縮約部401が再構築情報リスト900を再構築部402に通知する動作についての説明である。
次に、ライブストリーミングのコンテンツの受信を、受信端末104(A)が開始する場合の、データ転送装置400の動作について説明する。受信端末104(A)は、そのライブストリーミングのコンテンツの受信を最初に開始する、1台目の受信端末104である。
図11は、受信端末104(A)がライブストリーミングのコンテンツの受信を開始する場合の、データ転送装置400の動作を示すシーケンス図である。尚、このシーケンス図における縮約部401及び再構築部402の処理は、前述したCPUによるプログラム制御に基づいて、実行されても良い。また、処理のステップ名については、ステップS601のように、記号で記載する。
ステップS1101において、受信端末104(A)は、配信サーバ101のIPアドレスを宛先IPアドレスとした配信要求パケット440を、データ転送装置400に送信する。同時に、再構築部402の解析部603は、送受信インタフェース604を介して、その配信要求パケット440を受信する。以後、解析部603が送受信インタフェース604を介して送信する場合及び受信する場合のそれぞれは、「送受信インタフェース604を介して」を省略し、解析部603が送信する及び受信すると記載する。また、データ再構築部601が送受信インタフェース604を介して送信する場合も同様に、「送受信インタフェース604を介して」を省略し、データ再構築部601が送信すると記載する。
次に、解析部603は、受信したパケットを解析し、そのパケットが配信要求パケット440か否かを確認する(ステップS1102)。例えば、解析部603は、ネットワークを流れるパケットの検査技術の1つである、DPI(Deep Packet Inspection)技術を利用して、受信したパケットを解析する。
配信要求パケット440でない場合(ステップS1102でNO)、処理は、受信したパケットに対応する他のステップ(不図示)へ進む。
配信要求パケット440である場合(ステップS1102でYES)、解析部603は、その配信要求パケット440に基づいて、パケットヘッダDB605の配信要求リスト1400を更新する(ステップS1104)。例えば、受信端末104(A)から受信した配信要求パケット440の場合、解析部603は、その配信要求パケット440に含まれるライブストリーミングデータの配信要求に関する情報を、新たな配信要求レコード1401として、パケットヘッダDB605の配信要求リスト1400に追加する。
次に、ステップS1105において、解析部603は、受信した配信要求パケット440を縮約部401に送信する。同時に、縮約部401の解析部503は、送受信インタフェース504を介してその配信要求パケット440を受信する。以後、解析部503が送受信インタフェース504を介して送信する場合及び受信する場合のそれぞれは、「送受信インタフェース504を介して」を省略して、解析部503が送信する及び受信すると記載する。また、データ縮約部501が送受信インタフェース504を介して送信する場合も同様に、「送受信インタフェース504を介して」を省略して、データ縮約部501が送信すると記載する。
次に、解析部503は、受信したパケットを解析し、そのパケットが配信要求パケット440か否かを確認する(ステップS1106)。例えば、解析部503は、ネットワーク上のパケット検査技術の1つである、DPI技術を利用して、受信したパケットを解析する。
配信要求パケット440でない場合(ステップS1106でNO)、処理は、受信したパケットに対応する他のステップ(不図示)へ進む。
配信要求パケット440である場合(ステップS1106でYES)、その配信要求パケット440に基づいて、パケットヘッダDB505の配信要求リスト1400を更新する(ステップS1108)。例えば、受信端末104(A)から受信した配信要求パケット440の場合、解析部503は、その配信要求パケット440に含まれるライブストリーミングデータの配信要求に関する情報を、新たな配信要求レコード1401として、パケットヘッダDB505の配信要求リスト1400に追加する。
次に、ステップS1109において、解析部503は、配信要求パケット440を、配信サーバ101に送信する。同時に、配信サーバ101は、その配信要求パケット440を受信する。
次に、ステップS1110において、配信サーバ101は、受信した配信要求パケット440に応答してデータパケット450を送信する。同時に縮約部401は、そのデータパケット450を受信する。即ち、配信サーバ101は、ストリーミング要求に対して、ライブストリーミングデータの配信を開始する。
次に、ステップS1111において、縮約部401は、受信したデータパケット450に基づいて、オリジナルデータパケット451を送信する。同時に、再構築部402は、そのオリジナルデータパケット451を受信する。
次に、S1112において、再構築部402は、受信したオリジナルデータパケット451に基づいてデータパケット452を送信する。同時に、受信端末104(A)は、データパケット452を受信する。
尚、ステップS1110からステップS1112の動作は、ライブストリーミングの停止(例えば、ライブストリーミングデータの転送終了、受信端末104(A)側での受信停止)まで、繰り返される。
以上が、ライブストリーミングのコンテンツの受信を、受信端末104(A)が開始する場合の、データ転送装置400の動作についての説明である。
次に、受信端末104(B)がライブストリーミングのコンテンツの受信を開始する場合の、データ転送装置400の動作について説明する。
受信端末104(B)は、受信端末104(A)が既に受信を開始しているライブストリーミングのコンテンツと同一のコンテンツを、同一のデータ転送装置400を経由して受信する、二台目以降の受信端末104である。これは、配信サーバ101が、図11に示す受信端末104(A)からの配信要求パケット440を先に受け取り、次に受信端末104(B)からの配信要求パケット440を受け取ることを示している。この場合、配信サーバ101は、例えば、受信端末104(A)にデータパケット450を送信し、連続して受信端末104(B)に同一データパケット460を送信する。尚、配信サーバ101が、受信端末104(B)にデータパケット450を送信し、連続して受信端末104(A)に同一データパケット460を送信するようにしても、実質的な差はない。
図12は、受信端末104(B)がライブストリーミングのコンテンツの受信を開始する場合の、データ転送装置400の動作を示すシーケンス図である。尚、このシーケンス図における縮約部401及び再構築部402の処理は、前述したCPUによるプログラム制御に基づいて、実行されても良い。
ステップS1201において、受信端末104(B)は、配信サーバ101のIPアドレスを宛先IPアドレスとした配信要求パケット440を、データ転送装置400に送信する。同時に、再構築部402の解析部603は、その配信要求パケット440を受信する。
次に、解析部603は、受信したパケットを解析し、そのパケットが配信要求パケット440か否かを確認する(ステップS1202)。
配信要求パケット440でない場合(ステップS1202でNO)、処理は、受信したパケットに対応する他のステップ(不図示)へ進む。
配信要求パケット440である場合(S1202でYES)、解析部603は、その配信要求パケット440に基づいて、パケットヘッダDB605の配信要求リスト1400を更新する(ステップS1204)。例えば、受信端末104(B)から受信した配信要求パケット440の場合、解析部603は、その配信要求パケット440に含まれるライブストリーミングデータの配信要求に対応する、配信要求レコード1401のコネクション数を1増加する。その配信要求パケット440に含まれるライブストリーミングデータの配信要求に対応する、配信要求レコード1401は、受信端末104(A)が送信した配信要求パケット440に基づいて追加された配信要求レコード1401である。
次に、ステップS1105において、解析部603は、受信した配信要求パケット440を縮約部401に送信する。同時に、縮約部401の解析部503は、その配信要求パケット440を受信する。
次に、解析部503は、受信したパケットを解析し、そのパケットが配信要求パケット440か否かを確認する(ステップS1207)。
配信要求パケット440でない場合(ステップS1106でNO)、処理は、受信したパケットに対応する他のステップ(不図示)へ進む。
配信要求パケット440である場合(ステップS1206でYES)、その配信要求パケット440に基づいて、パケットヘッダDB505の配信要求リスト1400を更新する(ステップS1208)。例えば、受信端末104(B)から受信した配信要求パケット440の場合、解析部603は、その配信要求パケット440に含まれるライブストリーミングデータの配信要求に対応する、配信要求レコード1401のコネクション数を1増加する。
次に、ステップS1209において、解析部503は、配信要求パケット440を、配信サーバ101に送信する。同時に、配信サーバ101は、その配信要求パケット440を受信する。
次に、ステップS1210において、配信サーバ101は、受信した配信要求パケット440に応答してデータパケット450を送信する。同時に縮約部401は、そのデータパケット450を受信する。
次に、縮約部401は、図11のステップS1111において送信したオリジナルデータパケット451に対応する、再構築情報レコード901を利用して、ストリーミングデータ(データパケット450)を縮約する(ステップS1221)。
次に、ステップS1211において、縮約部401は、縮約したストリーミングデータ(縮約データパケット461)を、再構築部402に送信する。同時に、再構築部402は、その縮約パケットを受信する(ステップS1211)。
次に、再構築部402は、図11のS1111において受信したオリジナルデータパケット451に対応する、再構築情報レコード901を利用して、縮約データパケット461からストリーミングデータ(同一データパケット462)を再構築する(ステップS1222)。
次に、S1212において、再構築したストリーミングデータ(同一データパケット462)を送信する。同時に、受信端末104(B)は、同一データパケット462を受信する。
以上が、ライブストリーミングのコンテンツの受信を、受信端末104(B)が開始する場合の、データ転送装置400の動作についての説明である。
次に、図11のステップS1104、ステップS1108、図12のステップS1204及びステップS1208について、詳細に説明する。
図13は、図11のステップS1104において、再構築部402が配信要求リスト1400を更新する動作を示すフローチャートである。
解析部603は、受信した配信要求パケット440に対応する配信要求レコード1401を検出するために、配信要求リスト1400を探索する(ステップS1302)。ここで、その受信した配信要求パケット440に対応する配信要求レコード1401は、その配信要求パケット440の宛先IPアドレスに一致する送信元IPアドレスを含む。加えて、その配信要求レコード1401は、その配信要求パケット440に含まれる、ライブストリーミングデータの配信の要求の情報に含まれる送信元TCPポート番号に一致する、送信元TCPポート番号を含む。更に、その配信要求レコード1401は、その配信要求パケット440に含まれる、ライブストリーミングデータの配信の要求の情報に含まれる要求URLに一致する要求URLを含む。
その配信要求レコード1401を検出した場合は(ステップS1303でYES)、解析部603は、その配信要求レコード1401のコネクション数を「1」増加する。(ステップS1304)。
その配信要求レコード1401を検出しなかった場合(ステップS1303でNO)、解析部603は、その配信要求パケット440に基づいて、新たな配信要求レコード1401をパケットヘッダDB605に記録する。
次に、図面を参照して、縮約部401がデータパケット450を処理する動作について説明する。
図14は、縮約部401がデータパケット450を処理する動作を示すフローチャートである。
縮約部401は、配信サーバ101から、データパケット450を受信したことを契機に、図14に示す動作を開始する。
解析部503は、時計部506から現在時刻を取得し、受信したデータパケット450の受信時刻とする(ステップS1501)。
次に、解析部503は、データパケットバッファ507に記憶されている先行するデータパケット450の受信時刻から受信したデータパケット450の受信時刻までの時間と、範囲時間T1とを比較する(ステップS1502)。
範囲時間T1のほうが大きい場合(ステップS1502、YES)、解析部503は、そのデータパケットバッファ507に記憶されている先行するデータパケット450と受信したデータパケット450とのそれぞれの送信元IPアドレス及び送信元TCPポート番号を比較する(ステップS1503)。
送信元IPアドレス及び送信元TCPポート番号の両方が一致した場合(ステップS1503、YES)、解析部503は、データパケットバッファ507に記憶されている先行するデータパケット450と受信したデータパケット450とのデータ部を比較する(ステップS1504)。
データ部が一致した場合(ステップS1504、YES)、データ縮約部501は、その受信したデータパケット450について縮約処理を行い、縮約データパケット461を生成する(ステップS1506)。
次に、データ縮約部501は、その受信したデータパケット450に対応する再構築情報レコード901の参照回数を「1」増加する(ステップS1507)。
次に、データ縮約部501は、生成した縮約データパケット461を再構築部402に送信する(ステップS1508)。
データパケットバッファ507に記憶されているいずれの先行するデータパケット450についても、ステップS1502、ステップS1503及びステップS1504のいずれかでNOになった場合、解析部503は、その受信したデータパケット450に対応する再構築情報レコード901を再構築情報リスト900に新規に追加する(ステップS1510)。
尚、ステップS1502、ステップS1503及びステップS1504は、受信したデータパケット450が同一データパケット460か否かを、チェックするステップである。即ち、これらのステップは、受信したデータパケット450に対応する、先行するデータパケット450がデータパケットバッファ507に記憶されているか否かをチェックするステップである。解析部503は、その受信したデータパケット450に対するステップS1502、ステップS1503及びステップS1504の処理を、データパケットバッファ507に記憶されている全ての先行するデータパケット450について実行する。
次に、解析部503は、その受信したデータパケット450をオリジナルデータパケット451として、データパケットバッファ507に記録する(ステップS1511)。
次に、解析部503は、その受信したデータパケット450をオリジナルデータパケット451として、再構築部402に送信する(ステップS1512)。
尚、解析部503は、コネクション数が「1」以下である配信要求レコード1401に対応するデータパケット450を受信した場合、図14に示すステップS1511の動作のみを実行するようにしてよい。この場合、データパケット450のデータ部は、例えば要求URLを含むようにしてよい。
即ち、縮約部401は、同一のデータ部を有するパケットを送受信するコネクション数を監視し、そのコネクション数が2以上の場合に縮約データパケット461を生成し、そのコネクション数が1以下の場合に縮約データパケット461を生成しないようにしてよい。
また、解析部503は、受信端末104からの配信終了の要求を検出した場合、その受信端末104へのオリジナルデータパケット451或いは縮約データパケット461の送信を停止するようにしてよい。
即ち、縮約部401は、同一のデータ部を有するパケットを送受信するコネクションを監視し、そのコネクションの終了要求を受信した場合、その終了要求に対応するコネクションに係る縮約データパケット461の生成を中止するようにしてよい。
以上が、縮約部401がデータパケット450を処理する動作についての説明である。
次に、図面を参照して、再構築部402が縮約データパケット461を処理する動作について説明する。
図15及び図16は、再構築部402が縮約データパケット461を処理する動作を示すフローチャートである。
再構築部402は、縮約部401からオリジナルデータパケット451、縮約データパケット461または再構築情報パケットを受信したことを契機に、図15及び図16に示す動作を開始する。
解析部603は、オリジナルデータパケット451を受信したか否かを判定する(ステップS1602)。
オリジナルデータパケット451を受信した場合(ステップS1602、YES)、解析部603は、そのオリジナルデータパケット451及びそのオリジナルデータパケット451のデータ部のデータのハッシュ値との組を、データパケットバッファ607に記録する(ステップS1603)。
次に、解析部603は、そのオリジナルデータパケット451を、受信端末104に送信する(ステップS1604)。そして、処理はステップS1630へ進む。
オリジナルデータパケット451の受信ではない場合(ステップS1602、NO)、解析部603は、縮約データパケット461を受信したか否かを判定する(ステップS1610)。
縮約データパケット461を受信した場合(ステップS1610、YES)、解析部603は、その縮約データパケット461を、データパケットバッファ607に記録する(ステップS1613)。
縮約データパケット461の受信ではない場合(ステップS1610、NO)、解析部603は、再構築情報パケットを受信したか否かを判定する(ステップS1620)。
再構築情報パケットの受信ではない場合(ステップS1620、NO)、処理は終了する。
再構築情報パケットを受信した場合(ステップS1620、YES)、解析部603は、その再構築情報パケットに含まれる再構築情報レコード901に含まれる同一パケット数の値が「1」か否かを判定する(ステップS1621)。
同一パケット数の値が「1」の場合(ステップS1621、YES)、解析部603は、その再構築情報パケットを廃棄する(ステップS1622)。次に、処理はステップS1630へ進む。
同一パケット数の値が「1」でない(2以上)の場合(ステップS1621、NO)、解析部603は、その再構築情報レコード901をパケットヘッダDB605の再構築情報リスト900に追加する(ステップS1623)。次に、処理はステップS1630へ進む。
ステップS1630において、データ再構築部601は、データパケットバッファ607に保持している縮約データパケット461のそれぞれについて、順次、その縮約データパケット461に含まれるハッシュ値と同じハッシュ値を含む再構築情報レコード901を探索する(ステップS1630)。
同じハッシュ値を含む再構築情報レコード901を検出した場合(ステップS1631、YES)、データ再構築部601は、その縮約データパケット461のデータ部に含まれるヘッダ情報とハッシュ値とに基づいて、データパケットバッファ607からオリジナルデータパケット451を読み出す(ステップS1632)。
次に、データ再構築部601は、縮約データパケット461のデータ部のヘッダ情報とハッシュ値とを削除し、読み出したオリジナルデータパケット451のデータ部を付加して、同一データパケット462を生成する(ステップS1633)。
次に、データ再構築部601は、生成した同一データパケット462を、受信端末104に送信する(ステップS1634)。
次に、データ再構築部601は、その再構築情報レコード901の同一パケット数を「1」減算する(ステップS1635)。
次に、データ再構築部601は、減算した同一パケット数が「1」になった場合、その再構築情報レコード901を削除する(ステップS1636)。
同じハッシュ値を含む再構築情報レコード901を検出しなかった場合(ステップS1631、NO)、その縮約データパケット461については、何も処理をしない。
尚、再構築部402は、図15及び図16に示す動作に係わらず、一定時間毎にデータパケットを再構築する処理(ステップS1630からステップS1636)を実行するようにしてもよい。
尚、データ転送装置400は、1つの再構築部402に対して、複数の縮約部401が接続されるような構成であってもよい。その理由は、上述した再構築部402の動作において、再構築部402は、複数の縮約部401のうちいずれの縮約部401を通信相手にしているかを判断する必要がないからである。また、縮約部401は、1つの再構築部402を通信相手にするだけだからである。
上述した本実施形態における第1の効果は、ストリーミングデータの転送においてTCPコネクションをエンドツーエンドで維持しつつ、通信トラフィックを削減することが可能になる点である。
その理由は、以下のような構成を含むからである。即ち、第一に、縮約部401が同一データパケット460のデータ部を縮減した縮約データパケット461を生成して送信する。第2に、再構築部402がオリジナルデータパケット451と縮約データパケット461とから同一データパケット462を再構築する。
上述の第1の効果は、配信サーバ101側で個別の受信端末104に課金可能で、且つライブストリーミングデータの配信経路上のトラフィックを削減可能な、ライブストリーミングシステムを提供することを可能にする。
また、上述の第1の効果は、認証配信サーバ101と個別の受信端末104との間で認証が可能なライブストリーミングシステムを提供することを可能にする。
これらは、複数の受信端末104へのライブストリーミングデータの配信を行う場合でも、マルチキャストプロトコルに変換することなく、TCPコネクションを維持したまま配信を行うようにしたからである。
上述した本実施形態における第2の効果は、縮約部401と再構築部402が管理する情報を単純化することが可能になる点である。
その理由は、データ転送装置400をカスケード接続するように、即ちホップバイホップでデータパケットの縮約と再構築とを行うように、したからである。
上述した本実施形態における第3の効果は、データ転送装置400の処理を簡略化することが可能になる点である。
その理由は、解析部503が所定の範囲時間内に受信したデータパケット450を縮約の対象とするようにしたからである。
上述した本実施形態における第4の効果は、各データパケットの再送処理に係る負荷を軽減することが可能になる点である。
その理由は、以下のような構成を含むからである。即ち、第1に、データ転送装置400がデータパケットバッファ507及びデータパケットバッファ607に記憶されている各データパケットを、一定期間保持する。第2に、データ転送装置400が受信端末104からの再送要求を検出した場合、配信サーバ101に知らせることなく、再送処理を実行する。
[第2の実施形態]
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
図17は、本発明の第2の実施形態に係るデータ転送装置420を含むライブストリーミングシステムの構成を示すブロック図である。
図17に示すように、本実施形態におけるライブストリーミングシステムは、配信サーバ101、データ転送装置420及び受信端末104を含む。また、配信サーバ101及び受信端末104は、図9に示す配信サーバ101及び受信端末104と同じである 図17を参照すると、本実施形態に係るデータ転送装置420は、縮約部421と2つの再構築部422とを含む。縮約部421の構成は、図3に示す縮約部401の構成と同じである。また、再構築部422の構成は、図6に示す再構築部402の構成と同じである。尚、再構築部422の数は、本実施形態の例に係わらず、3以上であってよい。
図18及び図19は、縮約部421のパケットヘッダDB505に記憶される配信要求リスト1420の一例を示す図である。図18及び図19に示すように、配信要求リスト1420は、1以上の配信要求レコード1421からなる。
配信要求レコード1421は、配信要求レコード1401に比べて、受信端末IPアドレスを更に含む点が異なる。受信端末IPアドレスは、その配信要求パケット440を送信した受信端末104のIPアドレスである。つまり、この受信端末IPアドレスは、ライブストリーミングデータのコンテンツの宛先を示している。
図20及び図21は、縮約部421のパケットヘッダDB505に記憶される再構築情報リスト920の一例を示す図である。図20及び図21に示すように、再構築情報リスト920は、1以上の配信要求レコード921からなる。
次に、データ転送装置420の動作について説明する。データ転送装置420は、以下の点が、データ転送装置400の動作と異なる。
===縮約部421の動作===
縮約部421のパケットヘッダDB505は、複数の再構築部422のそれぞれに対応する配信要求リスト1420を記憶する。図18は、再構築部422(A)に対応する配信要求リスト1420である。図19は、再構築部422(B)に対応する配信要求リスト1420である。
配信要求リスト1420は、1以上の配信要求レコード1421を含む。配信要求レコード1421は、図4に示す配信要求レコード1401に比べて、受信端末IPアドレスを更に含む。
また、縮約部421のパケットヘッダDB505は、複数の再構築部422のそれぞれに対応する再構築情報リスト920を記憶する。図20は、再構築部422(A)に対応する再構築情報リスト920である。図21は、再構築部422(B)に対応する再構築情報リスト920である。
再構築情報リスト920は、1以上の再構築情報レコード921を含む。再構築情報レコード921は、図5に示す再構築情報レコード901と同等である。
また、縮約部421のデータパケットバッファ507は、先行するデータパケット450とその先行するデータパケット450の受信時刻とその先行するデータパケット450の送信先の再構築部422を識別する情報との組を記憶する。
縮約部421の解析部503は、配信要求パケット440を受信した場合、例えば、その配信要求パケット440のパケットヘッダに含まれる送信元IPアドレス(受信端末104のIPアドレス)に基づいて選択した配信要求リスト1420を更新する。この場合、縮約部421の解析部503は、受信端末104のIPアドレスと再構築部422との対応を示す情報を、図示しない記憶手段に予め保持していてよい。或いは、縮約部421の解析部503は、配信要求パケット440を送信した再構築部422の識別情報を、縮約部421の送受信インタフェース504から取得するようにしてもよい。また、縮約部421の解析部503は、配信要求リスト1420のそれぞれと再構築部422のそれぞれとの対応を示す情報を、図示しない記憶手段に予め保持していてよい。
縮約部421の解析部503は、配信要求リスト1420を更新する際に、配信要求パケット440のパケットヘッダに含まれる送信元IPアドレスを、配信要求レコード1421の受信端末IPアドレスに記憶させる。
また、縮約部421の解析部503は、データパケット450を受信した場合、例えば、そのデータパケット450のパケットヘッダに含まれる宛先IPアドレス(受信端末104のIPアドレス)に基づいて、その宛先IPアドレスを含む配信要求リスト1420を選択する。次に、縮約部421の解析部503は、選択した配信要求リスト1420に対応する再構築情報リスト920を選択する。
次に、縮約部421の解析部503は、選択した配信要求リスト1420及び再構築情報リスト920に基づいて、そのデータパケット450に対して、図14に示す処理を実行する。具体的には、その解析部503は、先行するデータパケット450をデータパケットバッファ507に記憶させる際に、その先行するデータパケット450の送信先の再構築部422を識別する情報を付加して、記憶させる。また、その解析部503は、受信したデータパケット450に対する図14のステップS1502からステップS1504までの処理を実行する。その解析部503は、その処理を、データパケットバッファ507に記憶されているデータパケット450であって、そのデータパケット450の宛先に対応する再構築部422を送信先とする、全ての先行するデータパケット450について実行する。
===再構築部422の動作===
再構築部422の動作は、1つの縮約部421を通信相手にするだけなので、図1に示す再構築部402の動作と同じであってよい。
以上が、データ転送装置420の動作についての説明である。
尚、データ転送装置420は、複数の再構築部422のそれぞれに対して、複数の縮約部421が接続されるような構成であってもよい。この場合においても、縮約部421及び再構築部422の動作は、上述した動作であってよい。その理由は、上述した再構築部422の動作において、再構築部422は、複数の縮約部421のうちいずれの縮約部421を通信相手にしているかを判断する必要がないからである。即ち、本実施形態のデータ転送装置420は、任意の数の縮約部421と任意の数の再構築部422とを含むようにしてよい。
上述した本実施形態における効果は、ライブストリーミングシステムを柔軟に構成することが可能になる点である。
その理由は、縮約部421が複数の再構築部422それぞれに対応する再構築情報リスト920及び配信要求リスト1420に基づいて動作するようにしたからである。
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が1個のモジュールとして実現されてよい。また、各構成要素は、1つの構成要素が複数のモジュールで実現されてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であるような構成であってよい。また、各構成要素は、ある構成要素の一部と他の構成要素の一部とが重複するような構成であってもよい。
以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、ハードウェア的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、ハードウェア的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。
そのプログラムは、例えば、磁気ディスクや半導体メモリなど、不揮発性のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。
更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作との全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
以上、各実施形態及び実施例を参照して本発明を説明したが、本発明は上記実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえるさまざまな変更をすることができる。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
[付記1]
複数のパケットを受信し、
同一のデータ部を有する少なくとも2以上の前記パケットを検出パケットとして検出し、
少なくとも1つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを送信する縮約手段と、
前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する再構築手段と、
を含むデータ転送装置。
[付記2]
前記縮約手段は、前記パケットの受信時刻の時間差が特定の範囲である前記受信した複数のパケットのいずれかの内から、前記検出パケットを検出する
ことを特徴とする付記1記載のデータ監視装置。
[付記3]
前記縮約手段は、前記検出パケットのデータ部のハッシュ値を生成し、前記オリジナルデータパケットを特定する情報として前記ハッシュ値を付加して前記縮約パケットを生成する
ことを特徴とする付記1または2記載のデータ監視装置。
[付記4]
前記縮約手段は、前記検出パケットのデータ部のハッシュ値を生成し、前記ハッシュ値と前記データ部を削除した前記パケットのヘッダ部に含まれる情報の少なくとも一部とを前記オリジナルデータパケットを特定する情報として付加して前記縮約パケットを生成する
ことを特徴とする付記1乃至3のいずれか1項に記載のデータ監視装置。
[付記5]
前記縮約手段は、前記受信した複数のパケットであって、同一の前記再構築手段に送信する複数の前記パケットの内から、前記検出パケットを検出する
ことを特徴とする付記1乃至4のいずれか1項に記載のデータ監視装置。
[付記6]
前記縮約手段は、前記受信した複数のパケットそれぞれの前記データ部のハッシュ値を算出し、前記ハッシュ値が同一の前記パケットを、前記検出パケットとして検出する
ことを特徴とする付記1乃至5のいずれか1項に記載のデータ監視装置。
[付記7]
前記縮約手段は、前記受信した複数のパケットであって、前記パケットのヘッダ部に同一の送信元アドレスと送信元ポートとを含む複数の前記パケットの内から、前記検出パケットを検出する
ことを特徴とする付記1乃至6のいずれか1項に記載のデータ監視装置。
[付記8]
前記縮約手段は、前記同一のデータ部を有するパケットを送受信するコネクション数を監視し、前記コネクション数が2以上の場合に前記縮約パケットを生成し、前記コネクション数が1以下の場合に前記縮約パケットを生成しない
ことを特徴とする付記1乃至7のいずれか1項に記載のデータ監視装置。
[付記9]
前記縮約手段は、前記同一のデータ部を有するパケットを送受信するコネクションを監視し、前記コネクションの終了要求を受信した場合、前記終了要求に対応する前記コネクションに係る前記縮約パケットの生成を中止する
ことを特徴とする付記1乃至8のいずれか1項に記載のデータ監視装置。
[付記10]
複数のパケットを受信し、同一のデータ部を有する少なくとも2以上の前記パケットを検出パケットとして検出する手段と、
少なくとも1つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成する手段と、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する、再構築手段へ送信する手段と、を含む、
データ転送装置。
[付記11]
複数のパケットを受信し、同一のデータ部を有する少なくとも2以上の前記パケットを検出パケットとして検出し、少なくとも1つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、前記オリジナルデータパケット及び前記縮約パケットを、送信する縮約手段から、前記オリジナルデータパケット及び前記縮約パケットを受信する手段と、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築する手段と、
前記再構築した前記縮約前のパケットを送信する手段と、を含む
データ転送装置。
[付記12]
複数のパケットを受信し、
同一のデータ部を有する少なくとも2以上の前記パケットを検出パケットとして検出し、
少なくとも1つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを送信し、
前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する
データ転送方法。
[付記13]
複数のパケットを受信し、
同一のデータ部を有する少なくとも2以上の前記パケットを検出パケットとして検出し、
少なくとも1つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する、再構築手段
へ送信する
データ転送方法。
[付記14]
複数のパケットを受信し、同一のデータ部を有する少なくとも2以上の前記パケットを検出パケットとして検出し、少なくとも1つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、前記オリジナルデータパケット及び前記縮約パケットを、送信する縮約手段から、前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する
データ転送方法。
[付記15]
複数のパケットを受信し、
同一のデータ部を有する少なくとも2以上の前記パケットを検出パケットとして検出し、
少なくとも1つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、
前記オリジナルデータパケット及び前記縮約パケットを送信し、
前記オリジナルデータパケット及び前記縮約パケットを受信し、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、
前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、
前記再構築した前記縮約前のパケットを送信する
処理をコンピュータに実行させるプログラム。
[付記16]
複数のパケットを受信し、同一のデータ部を有する少なくとも2以上の前記パケットを検出パケットとして検出する処理と、
少なくとも1つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成する処理と、
前記オリジナルデータパケット及び前記縮約パケットを、前記オリジナルデータパケット及び前記縮約パケットを受信し、前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築し、前記再構築した前記縮約前のパケットを送信する再構築手段へ送信する処理と、をコンピュータに実行させる
プログラム。
[付記17]
複数のパケットを受信し、同一のデータ部を有する少なくとも2以上の前記パケットを検出パケットとして検出し、少なくとも1つの前記検出パケットについてデータ部を削除して前記データ部を含むパケットであるオリジナルデータパケットを特定する情報を付加した縮約パケットを生成し、前記オリジナルデータパケット及び前記縮約パケットを、送信する縮約手段から、前記オリジナルデータパケット及び前記縮約パケットを受信する処理と、
前記縮約パケットに含まれる前記オリジナルデータパケットを特定する前記情報に基づいて前記オリジナルデータパケットを特定し、前記特定した前記オリジナルデータパケットに含まれる前記データ部を利用して前記縮約パケットに対応する縮約前のパケットを再構築する処理と、
前記再構築した前記縮約前のパケットを送信する処理と、をコンピュータに実行させる
プログラム。