(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した本発明に関連する伝送方式では、パケットロスが実際に受信したパケット数と、受信したパケットの中で最大のシーケンス番号と、受信したストリームで初めに受け取ったシーケンス番号とから、単純な計算によって算出されている(上記の非特許文献1参照)
【0006】
本来のパケットロスは、ネットワークの経路上でパケットが損失した場合のみをパケットロスとして扱うべきであるが、ストリームや接続が切り替わった際にシーケンス番号の不連続が発生すると、本発明に関連するパケットロスの算出方法では、パケットロスとして計上すべきではないシーケンス番号の不連続までパケットロスとして計上されてしまうという問題がある。
【0007】
そこで、本発明の目的は上記の問題点を解消し、本来、パケットロスとして計上するべきではないシーケンス番号の不連続を判定することができるパケット受信装置、パケット受信システム及びそれらに用いるパケット受信方法並びにそのプログラムを提供することにある。
【課題を解決するための手段】
【0008】
本発明によるパケット受信装置は、シーケンス番号が付加されたパケットを受信して処理するパケット受信装置であって、
前記パケットが前記シーケンス番号が連続して到着しているか否かを検出する検出手段と、
前記検出手段にて前記シーケンス番号が不連続であることを検出した場合、前記シーケンス番号が不連続となってから経過した時間について確認する確認手段と、
前記確認手段の確認結果を基に実際にパケットロスが発生したかどうかを判断する判断手段とを備えている。
【0009】
本発明によるパケット受信システムは、上記のパケット受信装置を含むことを特徴とする。
【0010】
本発明によるパケット受信方法は、シーケンス番号が付加されたパケットを受信して処理するパケット受信装置に用いるパケット受信方法であって、
前記パケット受信装置が、前記パケットが前記シーケンス番号が連続して到着しているか否かを検出する検出処理と、前記検出処理にて前記シーケンス番号が不連続であることを検出した場合、前記シーケンス番号が不連続となってから経過した時間について確認する確認処理と、前記確認処理の確認結果を基に実際にパケットロスが発生したかどうかを判断する判断処理とを実行している。
【0011】
本発明によるプログラムは、シーケンス番号が付加されたパケットを受信して処理するパケット受信装置内の中央処理装置に実行させるプログラムであって、
前記パケットが前記シーケンス番号が連続して到着しているか否かを検出する検出処理と、前記検出処理にて前記シーケンス番号が不連続であることを検出した場合、前記シーケンス番号が不連続となってから経過した時間について確認する確認処理と、前記確認処理の確認結果を基に実際にパケットロスが発生したかどうかを判断する判断処理とを含むことを特徴とする。
【発明の効果】
【0012】
本発明は、上記のような構成及び動作とすることで、本来、パケットロスとして計上するべきではないシーケンス番号の不連続を判定することができるという効果が得られる。
【発明を実施するための形態】
【0014】
次に、本発明の実施の形態について図面を参照して説明する。まず、本発明によるパケット受信方法の概要について説明する。
【0015】
IP(Internet Protocol)ネットワークを利用した通信においては、音声等のデータを伝送する場合、データの伝送プロトコルとしてRTP(Real−time Transport Protocol)を用い、シーケンス番号やタイムスタンプに応じた通信が行われる。
【0016】
RTPでは、パケット受信装置においてシーケンス番号を監視し、シーケンス番号に基づいてパケットロスを検出する。
【0017】
本来、パケットロスは、IPネットワーク上のパケットが損失した時のみ計上されるべきだが、ストリームや接続が切り替わった時にもシーケンス番号の不連続が発生し、パケットロスとして計上するべきではないシーケンス番号の不連続もパケットロスとして計上されてしまう。
【0018】
本発明では、シーケンス番号の不連続に対して、シーケンス番号が不連続となってから経過した時間についても確認を行うことにより、実際にパケットロスが発生したのか、ストリームや接続の切り替わり等の動作によりシーケンス番号の不連続が発生したのかを判断し、本発明に関連するパケットロスの算出方法より柔軟なパケットロス判定を行うことを特徴としている。
【0019】
図1は本発明の実施の形態によるパケット受信装置の構成例を示すブロック図であり、
図2は本発明の実施の形態において受信したパケットの一例を示す図である。
【0020】
図1において、本発明の実施の形態によるパケット受信装置1は、パケット処理部11と、時間算出部12と、シーケンス番号算出部13と、パケットロス判定部14とを備えて構成されている。尚、パケット受信装置1のインタフェース等の他の構成要素については公知であるので、図示及びその説明を省略する。
【0021】
次に、
図2を参照して、本発明の実施の形態において受信したパケットの例について説明する。
【0022】
本発明の実施の形態では、シーケンス番号が不連続になった時に、シーケンス番号が不連続になった時のシーケンス番号(以下、シーケンス番号が不連続になった時のシーケンス番号をSN_stopとする)がパケット処理部11に到着した時間(以下、SN_stopがパケット処理部11に到着した時間をT_stopとする)と、SN_stopの次に、パケット処理部11に実際に到着したシーケンス番号(以下、SN_stopの次にパケット処理部11に実際に到着したシーケンス番号をSN_recvとする)がパケット処理部11に到着した時間(以下、SN_recvがパケット処理部11に到着した時間をT_recvとする)の差分から、シーケンス番号が不連続になってから経過した時間(以下、シーケンス番号が不連続になってから経過した時間をT_pastとする)を算出する。
【0023】
T_pastと、受信したパケットのパケット周期とから算出する、SN_stopからT_past経過した後に到着するべきシーケンス番号(以下、SN_stopからT_past経過した後に到着するべきシーケンス番号をSN_calとする)を算出し、SN_calとSN_recvとを比較して、シーケンス番号が同じ(SN_cal=SN_recv)であれば、T_past経過するまでに受信したパケットは、パケットロスとして計上する。
【0024】
比較したシーケンス番号が異なる時(SN_cal≠SN_recv)は、予め設定しておいたロス判定時間(以下、ロス判定時間をT_lossとする)とT_pastとを比較する。その結果、T_past>T_lossの時、T_past経過するまでに受信したパケットは損失したと判断し、パケットロスとして計上する。
【0025】
また、T_past<T_lossの時、シーケンス番号が不連続になったのは、ストリームや接続の切り替わりによるものであると考え、T_past経過するまでに受信したパケットは損失していないと判断し、パケットロスを計上しない。
【0026】
T_lossは、使用しているシステムや端末の処理速度や負荷量に応じて任意に設定可能な時間であり、T_pastと比較することで、本発明の実施の形態によるパケットロス判定に使用する。
【0027】
本発明の実施の形態では、T_pastとT_lossとの比較を行い、T_pastがT_lossより短い時は、T_past経過する間に受信したパケットを損失として計上しないことにより、本来、パケットロスとして計上するべきでないシーケンス番号の不連続によるパケットロスを防ぎ、より柔軟なパケットロス判定を行うことができる。
【0028】
続いて、
図1を参照して本発明の実施の形態によるパケット受信装置1の各部の処理について説明する。
【0029】
パケット処理部11は、受信したパケットAからシーケンス番号を検出し、パケットAから検出したシーケンス番号(以下、パケットAから検出したシーケンス番号をSN_aとする)を保持するとともに、パケットAを受信した時間(以下、パケットAを受信した時間をT_aとする)を保持する。
【0030】
パケット処理部11は、パケットAの次に受信したパケットBから検出したシーケンス番号(以下、パケットBから検出したシーケンス番号をSN_bとする)と、保持しているシーケンス番号SN_aとを比較する。
【0031】
パケット処理部11は、シーケンス番号の差分が1ならば(SN_b−SN_a=1)、シーケンス番号が連続で到着していると判断し、シーケンス番号の差分が1でなければ(SN_b−SN_a≠1)、シーケンス番号が不連続になったと判断する。
【0032】
パケット処理部11は、シーケンス番号が連続で到着しているならば、シーケンス番号SN_bを保持するとともに、パケットBを受信した時間(以下、パケットBを受信した時間をT_bとする)を保持する。
【0033】
パケット処理部11は、シーケンス番号が不連続になった時、保持しているシーケンス番号SN_aをSN_stopとしてシーケンス番号算出部13に渡した後、シーケンス番号SN_bを保持するとともに、保持している時間T_aをT_stopとして時間算出部12に渡した後、時間T_bを保持する。
【0034】
また、パケット処理部11は、シーケンス番号SN_bと時間T_bとを保持するとともに、保持しているシーケンス番号SN_bをSN_recvとしてパケットロス判定部14に渡す機能と、保持している時間T_bをT_recvとして時間算出部12に渡す機能とを備える。
【0035】
時間算出部12は、パケット処理部11から受け取ったT_stopとT_recvとの時間の差分からT_pastを、
T_past=T_recv−T_stop
という式にて算出する。
【0036】
時間算出部12は、算出したT_pastをシーケンス番号算出部13とパケットロス判定部14とに渡す機能を備える。
【0037】
シーケンス番号算出部13は、パケット処理部11から受け取ったSN_stopと、時間算出部12から受け取ったT_pastと、受信したパケットのパケット周期から算出したSN_calとをパケットロス判定部14に渡す機能を備える。
【0038】
パケットロス判定部14は、シーケンス番号算出部13から受け取ったSN_calとパケット処理部11から受け取ったSN_recvとを比較し、パケットロスの判定を行う機能を備える。
【0039】
また、パケットロス判定部14は、予め設定していたT_lossと時間算出部12から受け取ったT_pastとを比較し、パケットロスの判定を行う機能を備える。
【0040】
図3は本発明の実施の形態によるパケット受信装置1の動作を示すフローチャートである。これら
図1〜
図3を参照して本発明の実施の形態によるパケット受信装置1の動作について説明する。尚、
図3に示す処理は、パケット受信装置1のCPU(中央処理装置)(図示せず)が予めメモリ等(図示せず)に格納されたプログラムを実行することでも実現可能である。
【0041】
パケット受信装置1は、予め、T_lossを設定し、その設定値をパケットロス判定部14に保持しておく。パケット受信装置1は、受信したパケットのシーケンス番号が連続かどうかをパケット処理部11にて確認する(
図3ステップS1)。
【0042】
パケット受信装置1は、パケット処理部11で保持しているシーケンス番号SN_aと、シーケンス番号SN_aの次に到着したシーケンス番号SN_bとを比較し、シーケンス番号の差分が1だけインクリメント(増加)しているパケットを受け取れば、シーケンス番号が連続で到着していると判断する。
【0043】
パケット受信装置1は、シーケンス番号の差分が1だけインクリメントされていなければ、シーケンス番号が不連続になったと判断し(
図3ステップS2)、パケット処理部11で保持しているシーケンス番号SN_aをSN_stopとしてシーケンス番号算出部13に渡すとともに、保持している時間T_aをT_stopとして時間算出部12に渡す。
【0044】
パケット受信装置1は、パケット処理部11でパケットBを受信した時にシーケンス番号SN_bと時間T_bとを保持するとともに、保持しているシーケンス番号SN_bをSN_recvとしてパケットロス判定部14に渡し、保持している時間T_bをT_recvとして時間算出部12に渡す。
【0045】
パケット受信装置1は、上記のステップS2の動作で、時間算出部12がパケット処理部11からT_stopとT_recvとを受け取った後、T_stopとT_recvとの時間の差分からT_pastを算出し、算出したT_pastをシーケンス番号算出部13とパケットロス判定部14とに渡す(
図3ステップS3)。
【0046】
パケット受信装置1は、ステップS3の動作後、シーケンス番号算出部13で、パケット処理部11から受け取ったSN_stopと、時間算出部12から受け取ったT_pastと、受信したパケットのパケット周期とからSN_calを算出し、パケットロス判定部14に渡す(
図3ステップS4)。
【0047】
パケット受信装置1は、パケットロス判定部14で、ステップS2の動作でパケット処理部11から受け取ったSN_recvと、ステップS4の動作でシーケンス番号算出部13から受け取ったSN_calとを比較する(
図3ステップS5)。
【0048】
パケットロス判定部14は、SN_recv=SN_calであれば、T_past経過するまでに、パケット周期通りにパケットを受信した場合のパケットの個数分のパケットロスが発生したと判断し、その旨を判定結果として出力する(
図3ステップS8)。
【0049】
パケットロス判定部14は、SN_recv≠SN_calであれば、T_pastとT_lossとを比較する(
図3ステップS6)。パケットロス判定部14は、T_past<T_lossであれば、ストリームや接続の切り替わりによってシーケンス番号が不連続になったと判定し、パケットロスではなかった旨を判定結果として出力する(
図3ステップS7)。
【0050】
パケットロス判定部14は、T_past>T_lossであれば、ストリームや接続の切り替わり以外の理由によってシーケンス番号が不連続になり、パケットが損失したと判定し、パケットロスである旨を判定結果として出力する(
図3ステップS8)。
【0051】
このように、本実施の形態では、シーケンス番号が不連続になった時に、時間軸方向の確認を行っているので、ストリームや接続の切り替わりのような、本来、パケットロスとして計上するべきではないシーケンス番号の不連続を判定することが可能となり、上述した本発明に関連する方法より柔軟なパケットロス判定を行うことができる。
【0052】
また、本実施の形態では、ロス判定時間を任意に設定することができるので、使用しているシステムや端末の処理の速さや負荷の多さに応じて、パケットロスとして判断するための時間を設定することができる。
【0053】
これによって、本実施の形態では、上記の2つの効果から、効率的な設備投資(増設や減設)を行うことが可能になるという効果を奏する。