(57)【要約】【課題】ストリームパケット転送装置におけるストリームパケットのシェーピングにおいて、読出すべき平均パケット間隔よりも長いタイマ機構を用いても、パケットの瞬間的なストリーム速度上昇を抑える。【解決手段】パラメータ決定部２０１ａは、接続要求シーケンスから取得したストリーム速度とパケット長から算出した平均パケット間隔が待ち合わせタイマ２０１ｂの最小タイマ周期以上の場合は平均パケット間隔をストリームパケットの読出し周期として待ち合わせタイマ２０１ｂに設定するとともに、一度に読出すパケット数を１に設定する。一方、平均パケット間隔が最小タイマ周期未満の場合は該最小タイマ周期を読出し周期として待ち合わせタイマ２０１ｂに設定するとともに、一度に読出すパケット数を最小タイマ周期を平均パケット間隔で除算した結果から求める。【選択図】　　図２
2004023131.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからの、コンテンツへの接続要求シーケンスメッセージを受信してサーバへ該メッセージを送信し、ストリームパケットを前記サーバから受信し、前記ストリームパケットをコピーして前記接続要求シーケンスメッセージを送信した全てのクライアントへ配信するストリームパケット転送装置において、
前記サーバから配信されたストリームパケットをバッファリングし、前記接続要求シーケンスから取得したストリーム速度とパケット長から平均パケット間隔を算出し、該平均パケット間隔が、バッファリングされたストリームパケットの読出し命令を出力するタイマの最小タイマ周期以上の場合は前記平均パケット間隔を前記ストリームパケットの読出し周期に設定するとともに、一度に読出すパケット数を１に設定し、一方前記平均パケット間隔が前記最小タイマ周期未満の場合は該最小タイマ周期を前記読出し周期に設定するとともに、一度に読出すパケット数を前記最小タイマ周期を前記平均パケット間隔で除算した結果から求め、前記ストリームパケットを読出すストリームパケットシェーピング方法。
【請求項２】
前記平均パケット間隔が前記最小タイマ周期未満の場合の一度に読出すパケット数は、前記最小タイマ周期を前記平均パケット間隔で除算した値よりも大きい最小の整数である、請求項１に記載のシェーピング方法。
【請求項３】
算出された平均パケット間隔に１未満の係数を乗じた値を平均パケット間隔とする、請求項１または２に記載のシェーピング方法。
【請求項４】
一度に読出すパケット数に１よりも大きい係数を乗じた値を、一度に読出すパケット数とする、請求項１または２に記載のシェーピング方法。
【請求項５】
クライアントからの、コンテンツへの接続要求シーケンスメッセージを受信し、該接続要求シーケンスメッセージからストリーム速度とパケット長の情報を抽出して該接続要求シーケンスメッセージとともに出力し、またシェーピングされたストリームパケットの流れを入力して、前記接続要求シーケンスメッセージを送信した全てのクライアントに該ストリームパケットを配信するストリームパケット転送部と、
前記サーバから配信されたストリームパケットを蓄積するストリームパケットバッファと、設定された読出し周期の時間待ち合わせた後、読出し命令を出力する待ち合わせタイマと、前記ストリームパケット転送部から出力されたストリーム速度とパケット長から平均パケット間隔を算出し、該平均パケット間隔が前記待ち合わせタイマの最小タイマ周期以上の場合は前記平均パケット間隔を前記ストリームパケットの読出し周期として前記待ち合わせタイマに設定するとともに、一度に読出すパケット数を１に設定し、一方平均パケット間隔が前記最小タイマ周期未満の場合は該最小タイマ周期を前記読出し周期として前記待ち合わせタイマに設定するとともに、一度に読出すパケット数を前記最小タイマ周期を前記平均パケット間隔で除算した結果から求めるパラメータ決定手段と、前記読出し命令を受信すると、前記パラメータ決定手段で求められた、一度に読出すパケット数のストリームパケットを前記ストリームパケットバッファから読出し、前記ストリームパケット転送部に伝達する読出し手段を含むシェーピング部を有するストリームパケット転送装置。
【請求項６】
請求項１から４のいずれか１項に記載の方法をコンピュータに実行させるためのストリームパケットシェーピングプログラム。
【請求項７】
請求項１から４のいずれか１項に記載の方法をコンピュータに実行させるためのストリームパケットシェーピングプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クライアントからの、コンテンツへの接続要求シーケンスメッセージを受信してサーバへ該メッセージを送信し、ストリームパケットをサーバから受信し、ストリームパケットをコピーして接続要求シーケンスメッセージを送信した全てのクライアントへ配信するストリームパケット転送装置に関し、特にストリームパケットのシェーピング方法に関する。
【０００２】
【従来の技術】
従来、ストリーム配信サービスでは、ＲｅａｌＮｅｔｗｏｒｋｓ社ＲｅａｌサーバおよびＭｉｃｒｏｓｏｆｔ社ＷＭＴサーバがユーザの要求に従ったストリーム速度でサービスが提供されていた。
【０００３】
【発明が解決しようとする課題】
上述した従来の方法では、ネットワークやサーバの送出タイミングの都合で、上流サーバからストリームパケット転送装置へのパケット到着間隔が揺らぐことがあった。上流サーバから代表ストリームを受信し、それをクライアントにコピー配信するストリームパケット転送装置は、パケットを受信してただちにクライアントにコピー転送するため、当該パケット到着間隔の揺らぎをそのまま保持したままになる。ここで、上流サーバからのパケット到着間隔に揺らぎが発生してパケット間隔が短くなる場合、瞬間的にストリーム速度が上昇し、クライアントが受信できない結果、視聴品質が劣化するという問題を招いていた。この問題を解決することを考え、パケット間隔を一定に維持する（シェーピング）ためには、パケットを一旦バッファリングした後、平均パケット間隔でバッファからパケットを読出せばよい。しかしながら、コンテンツが広帯域化すると、パケット間隔が短くなり、システム的な実現が困難となる。例えば、ある汎用ＯＳ上で実現する場合は、最小タイマ周期が１０ｍｓ単位であるにも関わらず、平均パケット間隔が５ｍｓ（コンテンツ帯域が２．４Ｍｂｐｓ、パケット長が１５００バイト）の場合は、タイマ周期で一つずつパケットを読出しても２．４Ｍｂｐｓの帯域で読出すことはできない。しかしながら、汎用ＯＳの制約で１０ｍｓより小さくすることはできない。よって、汎用ＯＳ上で利用できるタイマ機構を用いてでも、パケット間隔を平均レートに近づけることができれば、経済的にストリーム品質を改善することができる。
【０００４】
本発明の目的は、最小タイマ周期が読出すべき平均パケット間隔よりも長いタイマ機構を用いても、パケットの瞬間的なストリーム速度上昇を抑えることを可能とするストリームパケットシェーピング方法およびストリームパケット転送装置を提供することにある。
【０００５】
【課題を解決するための手段】
本発明は上記目的を達成するために、接続要求シーケンスから取得したストリーム速度とパケット長から算出した平均パケット間隔が、バッファリングされたストリームパケットの読出し命令を出力するタイマの最小タイマ周期以上の場合は平均パケット間隔をストリームパケットの読出し周期に設定するとともに、一度に読出すパケット数を１に設定し、一方平均パケット間隔が最小タイマ周期未満の場合は該最小タイマ周期を読出し周期に設定するとともに、一度に読出すパケット数を、最小タイマ周期を平均パケット間隔で除算した結果から求める。
【０００６】
汎用ＯＳ上でストリームパケット転送とシェーピングを同時に実現する場合は、汎用ＯＳの持つタイマ時間単位（周期）を下回ってシェーピングすべきパケット間隔であっても、１回につき複数個のパケットを読出すことで、瞬間的なストリーム速度上昇を抑えることができる。
【０００７】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【０００８】
図１を参照すると、本発明の一実施形態のストリームパケット転送装置２は、上流サーバ１から転送されてきた１つのストリーム放送のストリームパケットのシェーピングを行うシェーピング部２０１と、シェーピングされたストリームパケットをクライアント３１〜３ｍに転送するストリームパケット転送部２０２を有する。
【０００９】
ここで、３０１１〜３０１ｍはストリームパケット転送装置２とクライアント３１〜３ｍとの間でやりとりされる接続要求シーケンスメッセージが授受されるチャネルである。３０２１〜３０２ｍはストリームパケット転送装置２からクライアント３１〜３ｍにストリームパケットが配信されるチャネルである。１０１は、クライアント３１〜３ｍの要求に従って上流サーバ１とストリームパケット転送装置２との間でやりとりされる接続要求シーケンスメッセージが授受されるチャネルである。１０２は上流サーバ１からストリームパケット転送装置２にストリームパケットが配信されるチャネルである。２０３は、ストリームパケット転送部２０２が上流サーバ１とストリームパケット転送装置２との間でやりとりされる接続要求シーケンスから抽出したストリーム速度とパケット長の情報をシェーピング部２０１に通知するための信号線である。２０４は、シェーピング部２０１でシェーピングされたストリームパケットの流れをストリームパケット転送部２０２に伝達するための信号線である。
【００１０】
ストリームパケット転送装置２のシェーピング部２０１は、図２に示すように、パラメータ決定部２０１ａと待ち合わせタイマ２０１ｂと読出し部２０１ｃとストリームパケットバッファ２０１ｄで構成されている。
【００１１】
ストリームパケットバッファ２０１ｄは上流サーバ１から信号線１０２で伝達されてきたストリームパケットを蓄積する。パラメータ決定部２０１ａはストリームパケット転送部２０２から信号線２０３で通知されたストリーム速度とパケット長から、読出し部２０１ｃがストリームパケットバッファ２０１ｄから読出すパケットの平均パケット間隔ｔと一回当たり読出すパケット数ｐ（＝ストリーム速度／パケット長で、小数部を切り上げた最小の整数値）を決定する。待ち合わせタイマ２０１ｂはＯＳのクロック信号２０１ｅを基準に、パラメータ決定部２０１ａで決定された待ち合わせ間隔分だけ待ち合わせた後、読出し部２０１ｃに読出し命令を伝達する。読出し部２０１ｃは待ち合わせタイマ２０１ｂから読出し命令を受信すると、パラメータ決定部２０１ａで決定された、１回当たり読出すパケット数ｐのパケットをストリームパケットバッファ２０１ｄから読出して信号線２０４を通じてストリームパケット転送部２０２を伝達する。もし、読出し命令を受信したときストリームパケットバッファ２０１ｄにパケットが蓄積されていない場合、および蓄積されているパケット数が１回当たり読出すパケット数に満たない場合、読出し部２０１ｃは読出し動作を行なわない。
【００１２】
ここで、ストリームパケットの送出間隔を図３、図４により詳しく説明する。通常、ストリーム放送ではストリームパケットはいくつかかたまって配信される。この、一度にかたまって到着するパケット群をストリームパケットブロックと呼ぶことにする。図３（１）は上流サーバ１から到着するストリームパケットブロックの例を示している。この例では、ストリームパケットブロック到着間隔Ｔごとに、５個のストリームパケットを含むストリームパケットブロックが到着している。ここで、５個という個数はパケット到着数を実測値から決定するものではない。なぜならば、到着間隔Ｔや一度に到着するパケット数ｐはネットワークの状態により揺らぐからである。図３（２）はパラメータ決定部２０１ａで決定されたパケット数ｐの値を元にシェーピングを行なっている様子を示したものである。つまり、読出し部２０１ｃはｔ＝Ｔ／ｐで算出される平均パケット間隔ｔの間隔をおいてストリームパケットバッファ２０１ｄからパケットを１つずつ読出す。図３（３）は上流サーバ１から到着するストリームパケットブロックの他の例を示したものである。この例では、ストリームパケットブロック到着間隔Ｔごとに、１５個のストリームパケットを含むストリームパケットブロックが到着している。この例でも、パラメータ決定部２０１ａはストリーム速度とパケット長から、一度に到着するパケット数ｐを決定する。図３（４）は決定されたパケット数ｐを元にシェーピングを行なっている様子を示したものである。ここで、平均パケット間隔ｔ´＝Ｔ／ｐは最小タイマ周期ｔｍｉｎを下回るため、ｔ´をシェーピング部２０１の平均パケット間隔に設定できない。そこで、この場合、ｔ＝ｔｍｉｎとし、一回に読出すパケット数ｎを
ｎ＝ＣＥＩＬＩＮＧ（（ｔｍｉｎ／（Ｔ／ｐ））　　　　　　　　（１）
ただし、ＣＥＩＬＩＮＧ（Ａ）はＡより大きい最小の整数
と設定する。
【００１３】
図４はシェーピング部２０１の処理の流れを示すフローチャートである。まず、ステップ４０１に、パラメータ決定部２０１ａはストリーム速度とパケット長から１回に読出す、ストリームパケットバッファ２０１ｄ内のストリームパケット内のパケット数ｐを算出する。次のステップ４０２に、パラメータ決定部２０１ａはストリームパケットブロック到着間隔Ｔとパケット数ｐから理想的なパケット間隔ｔ’を算出する。ステップ４０３に、ｔ’を最小タイマ周期ｔｍｉｎと比較する。ｔ’が最小タイマ周期よりも小さければ、ステップ４０６にパケット間隔ｔをｔｍｉｎに設定し、ステップ４０７に、読出し部２０１ｃが１回に読出すパケット数ｎを式（１）で求まる値に設定する。ステップ４０３でｔ’が最小タイマ周期ｔｍｉｎ以上であれば、ステップ４０４にパケット間隔ｔをｔ’に設定し、ステップ４０５に、読出し部２０１ｃが一回に読出すパケット数ｎを１に設定する。以後、読出し部２０１ｃはステップ４０９にパケット間隔ｔ待ち合わせ、ステップ４１０にｎ個のパケットを読出す動作をステップ４０８で放送終了となるまで繰り返す。
【００１４】
ストリームパケットバッファ２０１ｄからのパケットの読出しが理想的な読出し間隔で続けられ、かつ上流サーバ１からも理想的な到着速度でパケットを受信するならばストリームパケットバッファ２０１ｄのキュー長は一定のままになる。ここで、上流サーバ１からパケットが一時的に集中して到着すると、ストリームパケットバッファ２０１ｄにパケットを収容しきれなくなるおそれがある。これを解決するために、本発明の他の実施形態では、理想的な読出し間隔ｔに係数α（例えば０．９）を乗じた値を設定読出し間隔とし、読出し間隔を上流サーバ１からの到着速度より若干速くすることで、キュー長を短くし、パケット集中への耐性を高める。あるいは、読出しパケット数ｎに係数β（例えば１．１）を乗じた値を設定読出し個数とし、１回当たりの読出しパケット数を増やすことで、同じくキュー長を短くする。
【００１５】
なお、シェーピング部２０１は専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。
【００１６】
【発明の効果】
以上説明したように、本発明によれば、汎用ＯＳの持つ長いタイマ周期を下回る間隔でシェーピングする場合であっても、同時読出し数を決定しそれに基づいてストリームパケットを送出することで、別途何らシェーピング装置を必要とすることなくパケット転送とシェーピングが行われるため、経済的にストリーム放送品質を向上させることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態のストリームパケット転送装置のブロック図である。
【図２】図１中のシェーピング部２０１の構成図である。
【図３】ストリームパケットの送出間隔を説明する図である。
【図４】シェーピング部２０１の処理を示すフローチャートである。
【符号の説明】
１　　上流サーバ
２　　ストリームパケット転送装置
３１〜３ｍ　　クライアント
１０１　　チャネル（接続要求シーケンスメッセージ）
１０２　　チャネル（ストリームパケット）
２０１　　シェーピング部
２０１ａ　　パラメータ決定部
２０１ｂ　　待ち合わせタイマ
２０１ｃ　　読出し部
２０１ｄ　　ストリームパケットバッファ
２０１ｅ　　ＯＳのクロック信号
２０２　　ストリームパケット転送部
２０３　　信号線（ストリーム速度とパケット長）
２０４　　信号線（ストリームパケット）
３０１１〜３０１ｍ　　チャネル（接続要求シーケンスメッセージ）
３０２１〜３０２ｍ　　チャネル（ストリームパケット）
４０１〜４１０　　ステップ
【図１】
2004023131.tif 000003
【図２】
2004023131.tif 000004
【図３】
2004023131.tif 000005
【図４】
2004023131.tif 000006