(57)【特許請求の範囲】
【請求項１】
ストリームサーバの送信する１または複数のストリーム放送のパケットを受信し、該パケットをコピー後、１または複数のクライアントへ放送配信するストリーム配信装置において、
ストリーム放送の配信に先立って作成され、ストリームサーバから受信するパケットのデスティネーションポート番号とソースＩＰアドレスとコンテンツ識別子から構成されるコンテンツ識別子検索テーブルと、
受信したパケットのヘッダ情報のデスティネーションポート番号とソースＩＰアドレスから前記コンテンツ識別子検索テーブルを参照して当該パケットが運ぶコンテンツを識別する手段と、
受信したパケットヘッダのチェックサム値およびチェックサム値の計算に必要な当該ヘッダ内のプロトコルデータを一時退避させる手段と、
コンテンツ毎に配信すべきクライアント宛の配信情報を登録したコピー配布表と、
前記コピー配布表を参照して、送信宛先のクライアント毎に定められた配信情報を求め、該配信情報を元に前記受信パケットの複製と、ＩＰアドレスとポート番号の付け替えに特定したヘッダ書き換えを行い、一時退避した前記チェックサム値と書き換え後のヘッダ情報部分の差分を元に再計算した結果を新たなチェックサム値として送信パケットに設定し、当該クライアントへ送信する処理を前記コピー配布表に登録された全クライアント分の処理が終了するまで繰り返す制御手段を有することを特徴とするストリーム配信装置。
【請求項２】
受信パケットのヘッダ情報と前記コピー配布表に記載された配信情報からチェックサム値の差分値を事前に計算しておき、前記制御手段は受信パケットのチェックサム値と前記差分値の演算により、送信パケットのチェックサム値を計算する、請求項１記載のストリーム配信装置。
【請求項３】
コンテンツ毎に配信すべきクライアントの配信情報が、コピー数、ポート番号、ＩＰアドレス、チェックサム差分値により構成される、請求項１または２記載のストリーム配信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ストリームサーバの送信する１または複数のストリーム放送のパケットを受信し、該パケットをコピー後、１または複数のクライアントへ放送配信するストリーム配信装置に関する。
【０００２】
【従来の技術】
従来、インターネット上に設置されたストリーム配信装置としては、Ｒｅａｌ  Ｎｅｔｗｏｒｋｓ社などのスプリッタ製品が代表的である。これは、汎用パソコンや汎用ワークステーションなどの汎用プロセッサ上で動作し、ストリームサーバから受信した１本のストリームデータを１または複数のクライアントに対してコピー配信するものである。
【０００３】
従来のストリーム放送の制御を行うストリーミングプロトコルでは、放送コンテンツ毎に、UDPポート番号に対応させてストリーム配信が行われていた。UDPポート番号は、クライアント、スプリッタ、サーバなどの配信機器の接続構成により、下流の機器が受信ポート番号を決定する方式となっているため、サーバ→スプリッタ→クライアントという構成でストリーム配信を行う場合は、スプリッタ側でUDPポート番号を変換する機能を持っていた。
【０００４】
【発明が解決しようとする課題】
上述した従来のスプリッタは、汎用プロセッサの通信機能をベースとした技術であった。一般的に、ストリームデータはIPパケット上にUDPパケットのペイロードにストリーム転送プロトコル（例えばIETF  RFC１８８９で規定されたRTPプロトコル）を載せ、その上に音声や映像データをエンコードした符号データを載せて転送していた。したがって、汎用プロセッサのOSが提供する、IPパケットプロトコル解析機能、UDPパケットプロトコル解析機能を利用して処理されていた。
各プロトコル解析機能は、レイヤ毎に処理内容が規定されている。よって、レイヤ毎にヘッダ上のプロトコル情報を読み出し、プロトコルデータ正常性チェック処理、状態変数の遷移処理、加算／減算処理など、全ての規定処理を実行後、次のレイヤに係る処理を順次進める形で行われていた。このため、レイヤ毎にプロトコル解析処理をするためのメモリオペレーションがオーバヘッドとなり高速化処理に向いていなかった。
【０００５】
一方、ストリームパケットの転送に特化した処理を想定すると、主な処理はサーバからの受信ＵＤＰポート番号、受信ＩＰアドレスをクライアント宛の送信ＵＤＰポート番号、送信ＩＰアドレスに書き換え後、ＵＤＰパケットとＩＰヘッダのチェックサム再計算を行っていた。この場合、ＩＰアドレスやＵＤＰポート番号の読み出し、書き込み以外に他プロトコルパラメタ分析処理も併せて実行させてしまう分だけオーバヘッドが大きくなった。さらに、チェックサム計算処理は、ＵＤＰペイロードデータ全体に対して１６ビットづつメモリ読出し／演算処理を繰り返すために、長いパケットほど計算時間が長くなってしまった。しかしながら、チェックサムの再計算は、受信時点でのパケットのチェックサム計算値から、ＩＰアドレス、ＵＤＰポート番号を書き換えた部分の差分だけを計算すればよい。
【０００６】
以上述べたように、従来のストリーム配信装置は、汎用プロセッサが提供する通信機能がレイヤ毎に動作するためのオーバヘッド、処理機能が汎用化されているために必要以上の処理を実行しなければならない。このため、ストリーム配信を高速・大容量化するためには、最適な機能構成とはなっていない。
【０００７】
本発明の目的は、プロトコルレイヤ毎の処理オーバヘッド削減、チェックサムのフル計算の排除により処理を最小限とし、高速・大容量なストリーム配信装置を提供することである。
【０００８】
【課題を解決するための手段】
本発明においては、まずストリームパケットを受信すると、１つのパケットの先頭部に位置するヘッダ情報から、ストリーム配信に必要最低限なヘッダ情報をプロトコルレイヤを区別せずに抽出する。その情報からコンテンツを識別する。また、コンテンツ毎に配付先の宛先情報（配信情報）をテーブル（コピー配布表）に登録しておき、受信したパケットのヘッダ情報から、送信すべきパケットのヘッダ情報へ変換する手段を持つ。
【０００９】
すなわち、コピー配布表を参照して、送信宛先のクライアント毎に定められた配信情報を求め、該配信情報を元に受信パケットの複製とヘッダ書き換えを行い、一時退避したチェックサム値と書き換え後のヘッダ情報部分の差分を元に再計算した結果を新たなチェックサム値として送信パケットに設定し、当該クライアントへ送信する処理をコピー配布表に登録された全クライアント分の処理が終了するまで繰り返す。
【００１０】
この場合、抽出するプロトコル情報は受信パケットのＩＰアドレスおよびＵＤＰ
ポート番号、コピー配布表のデータ内容はコンテンツに対するコピー数、送信ＩＰアドレス、送信ポート番号、チェックサム差分値でもよい。
【００１１】
本発明におけるチェックサム値の計算は、受信パケットと送信パケットのヘッダ情報が既知であるため、パケット受信の都度再計算するのではなく、受信ヘッダ情報と配布すべき送信ヘッダ情報からあらかじめ計算しておく。
【００１２】
本発明によれば、まず、ストリームデータを転送するパケットのプロトコルレイヤ毎に処理を分けるのではなく、パケットの受信処理、送信処理を実行する。また、全プロトコルデータを処理するのではなく、特定のプロトコルデータに限定した処理（ヘッダ書き換え）を実行するため、１パケット当たりの処理量を削減することができる。
【００１３】
さらに、送信パケットのチェックサム値の再計算は、コピー配布表により変換すべき送り先のアドレス、ポート番号が既知であるため、事前に差分情報を計算しておき、パケット受信および送信の際に、その差分情報により残りの演算のみを実行することにより、さらに１パケット当たりの処理量を削減することができる。
【００１４】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【００１５】
図１に示すように、本発明のストリーム配信装置１はストリームサーバ２から受信回線３を介してストリームコンテンツを受信し、またコピー後のストリームコンテンツを送信回線４１、４２、・・・、４ｎを介してクライアント５１、５２、・・・、５ｎに配信する。
【００１６】
この場合、受信したパケットのIPソースアドレスはストリームサーバ２、IPデスティネーションアドレスはストリーム配信装置１、送信するパケットのIPソースアドレスはストリーム配信装置１、IPデスティネーションアドレスはクライアント（５1〜５nのうちの一つ）をそれぞれ指して転送する。また、ポート番号は、デスティネーションポート番号のみをストリーム配信装置１にて付け替え、ソースポート番号はそのまま転送することとする。以上により、ストリーム配信装置１がパケットを受け渡す際には、チェックサム以外にIPソースアドレス、IPデスティネーションアドレス、デスティネーションポート番号の付け替え処理が発生する。
【００１７】
ストリーム配信装置１は、図２に示すように、受信回路１１と書込処理部１２とパケットバッファ１３とコピー制御部１４とコンテンツ識別子検索テーブル１５と要求バッファ１６とデータ設定部１７とコピー配信制御テーブル１８（コピー配布表）とコピー処理部１９とコピー処理バッファ２０と読出処理部２１と送信回路２２を有している。
【００１８】
受信回路１１は、パケットのＭＡＣレイヤ以下を終端し、パケット受信を後段の書込処理部１２へ通知する。
【００１９】
書込処理部１２は、パケット受信通知後、受信回路１１で受信したパケットをパケットバッファ１３へ転送するとともに、書き込んだバッファの先頭番地とバッファ長をコピー制御部１４へ通知する。
【００２０】
パケットバッファ１３は、受信パケットを格納しておくバッファである。
【００２１】
コピー制御部１４は、書込処理部１２から通知されたバッファ番地、バッファ長を元にパケットバッファ１３へアクセスし、当該パケットのＩＰアドレスとＵＤＰポート番号を取り出すとともに、該情報をキーとしてコンテンツ識別子検索テーブル１５にアクセスし、受信パケットの運ぶストリームのコンテンツ識別子を求める。このコンテンツ識別子とバッファ番地、バッファ長を要求バッファ１６に入力することにより、後段のコピー処理を依頼する。
【００２２】
コンテンツ識別子検索テーブル１５は、表１に示すように、受信ＵＤＰデスティネーションポート番号、受信ＩＰソースアドレス、コンテンツ識別子を構成要素に持ち、受信情報からコンテンツ識別子を割り出すために使用される。
【００２３】
【表１】
0003579335.tif 000002
【００２４】
要求バッファ１６は、コピー処理要求をコンテンツ識別子、バッファ番地、バッファ長としてエントリーし、コピー処理部１９により読み出されるバッファである。
【００２５】
データ設定部１７は、配信に先立ち、表１および表２のテーブルを事前に作成、維持、管理する。コピー配信制御テーブル１８（表２）には、コンテンツ識別子、コピー数、送信デスティネーションポート番号、送信ＩＰデスティネーションアドレス、チェックサム差分計算値がそれぞれ設定される。
【００２６】
【表２】
0003579335.tif 000003
【００２７】
なお、ここでコピー数とは、コンテンツ毎に配信するクライアントの数を示す。
【００２８】
また、チェックサム差分計算値とは、受信パケットのＩＰアドレス、ＵＤＰポート番号、配信するパケットのＩＰアドレス、ＵＤＰポート番号から、チェックサム再計算時の一部の計算値であり、ＩＰヘッダチェックサムとＵＤＰチェックサムを計算するための差分計算値を持つ。
【００２９】
本実施形態においては、チェックサム差分計算値は、以下のように求める。計算に用いる変数を以下のように定義する。
【００３０】
受信パケットのIPソースアドレスSA1
受信パケットのIPデスティネーションアドレスをDA1
受信パケットのソースポート番号をSP1
受信パケットのデスティネーションポート番号をDP1
受信パケットのプロトコル識別子をPROT1
受信パケットのUDPデータグラム長をLEN1
送信パケットのIPソースアドレスSA2
送信パケットのIPデスティネーションアドレスをDA2
送信パケットのソースポート番号をSP2
送信パケットのデスティネーションポート番号をDP2
送信パケットのプロトコル識別子をPROT2
送信パケットのUDPデータグラム長をLEN2
よって、チェックサム差分情報は、受信パケットの変数の和を引いて、送信パケットの変数の和を加えればよい。よって、式（１）のようになる。
【００３１】
ＳＡ２＋ＤＡ２＋ＳＰ２＋ＤＰ２＋ＰＲＯＴ２＋ＬＥＮ２  −（ＳＡ１＋ＤＡ１＋ＳＰ１＋ＤＰ１＋ＰＲＯＴ１＋ＬＥＮ１）・・・・・・（１）
ここで、ＩＰヘッダのプロトコル識別子、ＵＤＰデータグラムのＬｅｎｇｔｈ、ＵＤＰソースポート番号は変化がないものとすると、式（１）は式（２）のように簡略化できる。
【００３２】
ＳＡ２＋ＤＡ２＋ＤＰ２−（ＳＡ１＋ＤＡ１＋ＤＰ１）・・・・・（２）
さらに、本実施形態では、ＤＡ１とＳＡ２が同じＩＰアドレスを指すため、両変数は相殺される。したがって、
ＤＡ２＋ＤＰ２−（ＳＡ１＋  ＤＰ１）・・・・・（３）
をチェックサム差分計算値として用いる。この計算結果は、表２に示した。
【００３３】
本実施形態においては、式（３）を使った例により説明したが、ストリームサーバやクライアントの条件により、ＵＤＰソースポート番号や、ＩＰアドレスをストリーム配信装置１で書き換える場合もある。その場合には、式（１）により計算することができる。
【００３４】
コピー処理部１９は、要求バッファ１６を検索し、要求が存在する場合に、当該要求を取り出す。まず、コンテンツ識別子をキーとしてコピー配信制御テーブル１８から送信デスティネーションポート番号、送信デスティネーションＩＰアドレス、コピー数、チェックサム差分計算値を引く。また、バッファ番地とバッファ長により、受信済みのパケットをパケットバッファ１３からコピー処理バッファ２０に読み出す。
【００３５】
次に、コピー処理部１９は、ＩＰヘッダチェックサム値を、ＩＰヘッダのＩＰアドレス受信値、ＩＰアドレス送信値とＩＰヘッダのチェックサム差分計算値から演算する。また、ＵＤＰチェックサム値は、ＩＰアドレスの受信値、送信値、ＵＤＰポート番号の送信値、受信値とＵＤＰチェックサム差分計算値から演算する。
【００３６】
さらに、コピー処理部１９は、ＩＰアドレス、ＵＤＰポート番号に関し、送信値を設定するとともに、計算済みのＩＰヘッダチェックサム値、ＵＤＰパケットチェックサム値を設定する。これにより、送信すべき１パケット分のＩＰヘッダおよびＵＤＰヘッダがクライアント用に設定され、当該パケットは、読出処理部２１により受信回路２２へ送られ、最終的にクライアントへ到着する。
【００３７】
コピー処理部１９は、これらの一連の処理をクライアント毎に実行し、全クライアント分の処理が完了した時点で、要求バッファ１６を確認することを繰り返す。
【００３８】
【発明の効果】
以上説明したように本発明によれば、受信パケットから送信パケットへの変換処理において、特定の処理（ヘッダ書き換え）に限定すること、さらには計算負荷が大きなチェックサム値の再計算においても、通信前に差分計算値を持っており、これと正味の変更点により演算するため、計算量を大幅に削減でき、したがって、汎用プロセッサベースの従来技術に比べ、高速化・大容量化が図れる。これにより、従来よりも多くのクライアントに対して同時にストリーム放送を提供し、さらには従来よりもより広帯域のストリーム放送をクライアントに対して提供することができる。両方の場合は、通信プロセッサはハード価格は同じで処理容量を増加し、映像品質を向上させることが可能なため、経済的でかつ高品質な映像ストリーム放送サービスを大規模に提供することが可能となる。
【図面の簡単な説明】
【図１】本発明のストリーム配信装置の接続図である。
【図２】ストリーム配信装置の構成図である。
【符号の説明】
１    ストリーム配信装置
２    ストリームサーバ
３    受信回線
４１〜４ｎ    送信回線
５１〜５ｎ    クライアント
１１    受信回路
１２    書込処理部
１３    パケットバッファ
１４    コピー制御部
１５    コンテンツ識別子検索テーブル
１６    要求バッファ
１７    データ設定部
１８    コピー配信制御テーブル
１９    コピー処理部
２０    コピー処理バッファ
２１    読出処理部
２２    送信回路
【図１】
0003579335.tif 000004
【図２】
0003579335.tif 000005