説明

パケット送信装置、パケット送信方法及びパケット送信プログラム

【課題】計測パケットに含まれる送信データを送信するタイミングの自由度を向上させたパケット送信装置、パケット送信方法及びパケット送信プログラムを提供すること。
【解決手段】パケット送信装置において、伝送レートに基づき第1パケットの送信間隔が設定される。帯域計測用データを含む第1パケットが作成される(S220)。送信間隔毎の第1タイミングで、第1パケットが受信装置に送信される(S230)。第1パケットのデータサイズとの和が、目標値を含む所定範囲になるように第2パケットが作成される(S250)。第1タイミング後、且つ、第1タイミングから送信間隔の経過時点よりも前の第2タイミングで、第2パケットが受信装置に送信される(S250)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介してデータ通信を行う際の使用可能な帯域を計測するのに用いるパケットを送信するパケット送信装置、パケット送信方法及びパケット送信プログラムに関する。
【背景技術】
【0002】
従来、インターネット等のネットワークを介してデータを送受信する通信装置が知られている。通信装置は、通信装置が使用可能な帯域(帯域幅:Available Bandwidth)に適した伝送レート(伝送速度)でデータを送受信することが好ましい。通信装置が使用可能な帯域は、地域と、プロバイダと、時間帯とを含む条件に応じて変動する。そこで、変動する使用可能な帯域に合わせて伝送レートを制御するために、現在の伝送レートが使用可能な帯域に適しているか否かを判断するパケット通信方法が提案されている(例えば、特許文献1参照)。特許文献1の方法では、通信システムは、上記判断に用いるパケット(以下、「判断用パケット」と言う。)を送受信して、次のように使用可能な帯域と、現在の伝送レートとを比較する。送信側の通信装置は、判断用パケットの送信間隔を取得するための時間情報を送信時刻として判断用パケットに含める。受信側の通信装置は送信側の通信端末から送信された判断用パケットを受信した場合に、受信時刻を取得する。受信側の通信装置は、受信時刻を用いて受信間隔を算出し、送信時刻を用いて送信間隔を算出する。さらに、受信側の通信装置は、受信間隔と、送信間隔との差分と、閾値とを比較して、現在の伝送レートが使用可能な帯域に適しているか否かを判断する。
【0003】
また、変動する使用可能な帯域を計測するため帯域計測方法が提案されている(例えば、非特許文献1参照)。この計測方法では、使用可能な帯域を計測するタイミングで、送信側の通信装置は、送信間隔を変更しながら複数のパケットを連続して送信する。受信側の通信装置は、パケットの受信間隔を記録する。その後、受信側の通信装置は、送信間隔と、受信間隔との差分を算出し、算出された複数の差分の値の変化傾向から、現在の使用可能な帯域を計測する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第3390033号公報
【非特許文献】
【0005】
【非特許文献1】CaoLe Thanh Man、長谷川剛、村田正幸、「サービスオーバーレイネットワークのためのインラインネットワーク計測に関する一検討」、電子情報通信学会技術研究報告、社団法人電子情報通信学会、2003年1月17日、Vol.102、No.565、p.53−58
【発明の概要】
【発明が解決しようとする課題】
【0006】
ストリーミング配信と、テレビ会議とに代表されるデータを生成順に送受信する通信システムでは、送信データを遅延なく送受信することが求められる。送信データとは、受信側の通信装置に送信する予定のデータであり、例えば、映像データと、音声データと、文章データと、テキストデータとが含まれる。しかしながら、上記従来の帯域計測方法では、通信システムは、使用可能な帯域を計測するためのパケット(以下、「計測パケット」という。)を一旦送信すると、次の送信タイミングまで他の計測パケットを送信できないという問題があった。すなわち、通信システムは、任意の時刻で生成されたデータを、任意の時刻に送信できない。このため、計測パケットを利用してデータが送信されると、データの送信が遅延する可能性があった。
【0007】
本発明は上記課題を解決するためになされたものであり、計測パケットに含まれる送信データを送信するタイミングの自由度を向上させたパケット送信装置、パケット送信方法及びパケット送信プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、第1態様のパケット送信装置は、複数の通信装置を備える通信システムで使用可能な帯域を計測するために、受信側の通信装置にパケットを計測帯域に応じた所定の伝送レートで送信するパケット送信装置であって、帯域計測用データを含む第1パケットを作成する第1パケット作成手段と、前記第1パケットのデータサイズと、新たに作成する第2パケットのデータサイズとの和が、前記伝送レートに基づき設定された目標値を含む所定範囲になるように当該第2パケットを作成する第2パケット作成手段と、前記伝送レートに基づき、前記第1パケットの送信間隔を設定する設定手段と、前記設定手段によって設定された前記送信間隔毎の第1タイミングで、前記第1パケット作成手段によって作成された前記第1パケットを前記受信側の通信装置に送信する第1送信手段と、前記第1タイミングよりも後のタイミングであって、前記第1タイミングから前記送信間隔の経過時点よりも前の第2タイミングで、前記第2パケット作成手段によって作成された前記第2パケットを前記受信側の通信装置に送信する第2送信手段とを備えている。
【0009】
第1態様のパケット送信装置は、計測パケットとして、第1パケットと、第2パケットとを作成し、それぞれ異なる所定のタイミングで送信する。このため、パケット送信装置は、送信間隔内に送信されるデータのサイズが目標値を含む所定範囲内になる条件のもと、送信間隔内の任意のタイミングで送信データを送信することができる。すなわち、第1態様のパケット送信装置は、計測パケットに含まれる送信データを送信するタイミングの自由度を向上させることができる。
【0010】
第1態様のパケット送信装置のように、前記受信側の通信装置に送信する予定の送信データを取得する送信データ取得手段を備え、前記第1パケット作成手段は、前記帯域計測用データからなる前記第1パケットを作成し、前記第2パケット作成手段は、前記送信データ取得手段によって取得された前記送信データを含む1以上のパケットを前記第2パケットとして作成してもよい。
【0011】
この場合のパケット送信装置によれば、次のような効果が得られる。パケット送信装置は、第1パケットにデータ識別用のデータを含ませる必要がないので、その分第2パケットに包含可能なデータ量を増やすことができる。またパケット送信装置は、複数種類のデータを計測パケットに含ませる場合であっても、データに適したプロトコルで他のデータを送ることができる。また、帯域計測用データと、他のデータと別々のパケットに分けて送信するので、両者を1つのパケットにまとめて送信する場合に比べ、データ結合処理を軽減することができる。
【0012】
第1態様のパケット送信装置において、前記第2パケット作成手段は、前記送信データ取得手段によって取得された前記送信データを用いて、前記和が前記目標値となるパケットを作成することができない場合に、前記和が前記目標値となるように、パケットのデータサイズを調整するためのデータである調整データを含むパケットを前記第2パケットとして作成してもよい。この場合のパケット送信装置は、計測精度を損なうことなく、計測パケットに含まれる送信データを送信するタイミングの自由度を向上させることができる。計測パケットのデータサイズを一定とすることができるので、計測帯域に応じた所定の伝送レートとなるように送信間隔を決定する処理が容易である。
【0013】
第1態様のパケット送信装置において、前記設定手段は、前記送信データ取得手段によって取得された前記送信データを用いて、前記和が前記目標値となるパケットを作成することができない場合に、前記和と、前記伝送レートとに応じて前記送信間隔を再設定してもよい。この場合のパケット送信装置は、計測精度を損なうことなく、計測パケットに含まれる送信データを送信するタイミングの自由度を向上させることができる。パケット送信装置は、送信時の伝送レートを調整するために、データサイズを調整するための調整データを含ませる場合に比べ、第2パケットを作成する処理を簡単にすることができる。
【0014】
第1態様のパケット送信装置において、前記第1送信手段は、前記第1パケットを、前記受信側の通信装置が備える第1ポート宛てに送信し、前記第2送信手段は、前記第2パケットを、前記受信側の通信装置が備えるポートであって、前記第1ポートとは異なる第2ポート宛てに送信してもよい。この場合、第1パケットと、第2パケットとは、異なるポート宛てに送信されるので、パケットの種類を識別するためのデータを付与されなくても良い。パケット送信装置は、パケットの種類を識別するためのデータを省略した場合には、パケットの種類を識別するためのデータが含まれる場合に比べ、第2パケットに包含可能なデータ量を増やすことができる。また、受信側の通信装置において、受信時刻を監視する対象は第1パケットのみでよいため、受信側の通信装置における処理負荷を低減させることが可能である。
【0015】
第2態様のパケット送信方法は、複数の通信装置を備える通信システムで使用可能な帯域を計測するために、コンピュータが受信側の通信装置にパケットを計測帯域に応じた所定の伝送レートで送信するパケット送信方法であって、帯域計測用データを含む第1パケットを作成する第1パケット作成工程と、前記第1パケットのデータサイズと、新たに作成する第2パケットのデータサイズとの和が、前記伝送レートに基づき設定された目標値を含む所定範囲になるように当該第2パケットを作成する第2パケット作成工程と、前記伝送レートに基づき、前記第1パケットの送信間隔を設定する設定手工程と、前記設定工程において設定された前記送信間隔毎の第1タイミングで、前記第1パケット作成手工程において作成された前記第1パケットを、前記受信側の通信装置に送信する第1送信工程と、前記第1タイミングよりも後のタイミングであって、前記第1タイミングから前記送信間隔の経過時点よりも前の第2タイミングで、前記第2パケット作成工程において作成された前記第2パケットを、前記受信側の通信装置に送信する第2送信工程とを備えている。第2態様のパケット送信方法は、第1態様のパケット送信装置と同様の効果が得られる。
【0016】
第3態様のパケット送信プログラムは、第1態様のパケット送信装置の各種処理手段としてコンピュータを機能させる。第3態様のパケット送信プログラムは、コンピュータに実行させることにより第1態様のパケット送信装置の各種処理手段としての作用効果を奏することができる。
【図面の簡単な説明】
【0017】
【図1】通信装置1の電気的構成と、通信システム100の構成とを示す図である。
【図2】帯域計測方法の説明図である。
【図3】通信装置1がパケット送信装置として動作する場合に実行される送信メイン処理のフローチャートである。
【図4】図4の送信メイン処理で実行される送信間隔設定処理のフローチャートである。
【図5】図4の送信メイン処理で実行されるパケット送信処理のフローチャートである。
【図6】送信メイン処理において、第1パケット211から214と、第2パケット221から226とが送信される、T1からT10タイミングを示す模式図である。
【図7】図5のパケット送信処理で実行される第2パケット送信処理のフローチャートである。
【図8】通信装置1が受信装置として動作する場合に実行される受信メイン処理のフローチャートである。
【図9】受信メイン処理において、第1パケット211から214と、第2パケット221から226とが受信される、T11からT20タイミングを示す模式図である。
【図10】第2の実施形態の第2パケット送信処理のフローチャートである。
【発明を実施するための形態】
【0018】
以下、本発明のパケット送信装置を具現化した第1及び第2の実施形態の通信装置1について、図面を参照して順に説明する。なお、参照する図面は、本発明が採用し得る技術的特徴を説明するために用いられるものである。図面に記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
【0019】
まず、通信システム100について説明する。図1のように、通信システム100は、少なくとも2つの通信装置1を備える。本実施形態の通信システム100は、サーバを介さずに各通信装置が直接的にデータのやり取りを行うピアツーピア型のテレビ会議に用いられる。
【0020】
通信装置1は、ネットワーク8を介して他の通信装置1と接続可能であり、他の通信装置1との間で各種データの送受信を行う機能を備える。通信装置1は、本発明のパケット送信装置としての機能を備えている。通信装置1は、テレビ会議に用いられる場合には、画像データと、音声データと、文章データ(資料データ)と、テキストデータとを含むデータを互いに送受信する。通信装置1は、テレビ会議専用の通信装置であってもよいし、テレビ会議用の通信装置としての機能を含む種々の情報処理を行うパーソナルコンピュータであってもよい。
【0021】
通信システム100では、計測パケットを用いて通信相手の通信装置1との間で使用可能な帯域が計測される。使用可能な帯域を越える伝送レートで計測パケットが送信されると、例えば、パケットロスと、送信遅延といった問題が生じる。一方、使用可能な帯域を下回る伝送レートで計測パケットが送信されると、使用可能な帯域を十分に活用することができず、伝送効率が悪い。従って、各通信装置1は、使用可能な帯域に合わせて送信時の伝送レートを制御する。
【0022】
通信装置1の電気的構成について説明する。図1のように、通信装置1は、CPU10と、ROM11と、RAM12と、ハードディスクドライブ(以下、「HDD」という。)13と、入出力インターフェース19とを備え、それらはバス18を介して接続されている。
【0023】
CPU10は、ROM11に記憶されたプログラムに従って、各種処理を実行させる。ROM11は、通信装置1において実行されるプログラムと、プログラム実行時に参照される初期値を含む各種情報を記憶している。RAM12は、プログラムで使用される各種の情報を一時的に記憶する。HDD13は、通信装置1において実行されるプログラムと、プログラム実行時に参照される初期値を含む各種情報を記憶している。HDD13の代わりに、EEPROMまたはメモリカード等の記憶装置を用いてもよい。
【0024】
入出力インターフェース19には、音声入力処理部21と、音声出力処理部22と、映像入力処理部23と、映像出力処理部24と、操作部25と、ポートX26と、ポートY27とが接続されている。音声入力処理部21は、マイク31によって入力された音声データを処理する。音声出力処理部22は、音声データに基づきスピーカ32に音声を出力させる。映像入力処理部23は、カメラ33からの入力された映像データ(動画像データ)を処理する。映像出力処理部24は、映像データに基づき表示装置34に映像を表示させる。操作部25は、ユーザが通信装置1に各種指示を入力する際に用いられる。ポートX26と、ポートY27とはそれぞれ、通信装置1とネットワーク8とを接続する外部通信I/Fである。
【0025】
次に、図2を参照して、本実施形態の通信システム100で用いられる帯域計測方法の概略を説明する。通信システム100で用いられる帯域計測方法は、上記非特許文献1に記載されている公知の方式を改良した方法である。なお、本発明を適用できる帯域計測方法は、上記文献に記載されている方式を改良した方法に限られない。パケットの送信間隔と受信間隔とを利用して使用可能な帯域を計測する帯域計測方法であれば、本発明の適用は可能である。
【0026】
帯域と、通信装置1間の伝送レートとを比較するため、帯域を伝送路容量(bps)で表わす。送信時の伝送レート(伝送速度)とほぼ等しい伝送レートで受信側通信装置が受信可能な帯域の最大の伝送レートを、使用可能な帯域と呼ぶ。使用可能な帯域は、通信に適した帯域として定義されてもよい。この場合、通信の用途に応じて、データの送受信する際の遅延の程度が許容量となる帯域の最大の伝送レートが、使用可能な帯域とされてもよい。また、送信時の伝送レートとほぼ等しい伝送レートで受信側通信装置が受信可能な帯域の最大の伝送レートよりも小さい所定の伝送レートが使用可能な帯域とされてもよい。
【0027】
計測パケットを送信する通信装置1を、パケット送信装置と言う。計測パケットを受信する通信装置1を、受信装置と言う。送信時の伝送レートAが、使用可能な帯域以下であれば、受信時の伝送レートBは、理論的に送信時の伝送レートAと同一となる。ここで、通信システム100は、送信間隔の期間内に送信される計測パケットのデータサイズが一定のもと、送信間隔を変化させる。この場合には、送信時の伝送レートAが使用可能な帯域以下である場合、送信時の伝送レートAと、受信時の伝送レートBとは同一となる。したがってこの場合、図2のように、送信時の伝送レートAと、受信時の伝送レートBとの対応関係に基づき、傾きが1である近似直線L1が得られる。一方、送信時の伝送レートAが使用可能な帯域よりも高い場合には、受信時の伝送レートBは送信時の伝送レートAよりも小さくなる。この場合図2のように、送信時の伝送レートAと、受信時の伝送レートBとの対応関係に基づき、傾きが1よりも小さい近似直線L2が得られる。通信システム100は、近似直線L1と近似直線L2とが交差する点(境界点)に対応する送信時の伝送レートA1を、使用可能な帯域として特定する。
【0028】
本実施形態の通信装置1は、パケット送信装置として機能する場合、送信間隔内の期間に第1パケットと第2パケットとを作成し、それぞれ別のタイミングで受信装置に送信する。第1パケットは、帯域計測用データのみを含む。帯域計測用データは、少なくとも、第1パケットの送信間隔を算出するための時間データと、第1パケットの送信先のアドレスとを含む。本実施形態の帯域計測用データはさらに、シリアル番号と、第1パケットの送信元のアドレスとを含む。シリアル番号は、個々の第1パケットを識別するために設定される。第1パケットは、送信間隔毎のタイミング(以下、「第1タイミング」と言う。)において送信される。
【0029】
一方、第2パケットは、送信データを含み、帯域計測用データを含まない。第2パケットは、第1パケットのデータサイズと、第2パケットのデータサイズとの和(以下、「合計サイズ」と言う。)が目標値になるように作成される。本実施形態では、計測パケットを利用して送信データを効率的に送信する観点から、目標値に最大パケットサイズ(Maximum Transmission Unit)が設定されている。具体的には、目標値は1500byteである。最大パケットサイズは、1度に送信可能な最大のパケットサイズである。送信データは、パケット送信装置が受信装置へ送信する予定のデータであり、例えば、音声入力処理部21が取得した音声データと、映像入力処理部23が取得した映像データと、操作部25によって入力された文章データと、各種コマンドを含むテキストデータとの少なくともいずれかである。生成された送信データは、随時HDD13のバッファに一時的に記憶される。第2パケットは、第1タイミングから次の第1タイミングとの間のいずれかのタイミング(以下、「第2タイミング」と言う。)で送信される。このようにパケット送信装置は、第1パケットと第2パケットを別のタイミングで送信することで、送信データを送信するタイミングの自由度を高めている。
【0030】
次に、図3から図7を参照して、通信装置1がパケット送信装置として動作する場合に実行される送信メイン処理について説明する。送信メイン処理は、パケット送信装置と、受信装置との間でデータを送受信する指示が入力されると、HDD13に記憶されているプログラムに従って、通信装置1のCPU10によって実行される。なお、公知技術(例えば、上記非特許文献1)と同様の処理については、説明を簡略化する。
【0031】
図3のように、送信メイン処理が開始されると、CPU10は、終了指示を取得したか否かを判断する(S10)。終了指示は、使用可能な帯域を計測する処理を終了させる指示である。終了指示は、ユーザが操作部25を操作して終了指示を通信装置1に入力した場合、又は、他の通信装置1から終了指示が送信された場合に取得される。終了指示があれば(S10:YES)、送信メイン処理は終了する。終了指示がなければ(S10:NO)、CPU10は送信間隔設定処理を行う(S20)。送信間隔設定処理では、CPU10は、計測帯域に基づき、第1パケットを送信する間隔を設定する。計測帯域は、現在の使用可能な帯域が含まれると予想される帯域であって、計測の対象となる帯域である。計測帯域は、公知の方法を用いて設定されればよい。本実施形態では、次のように計測帯域が設定される。計測帯域は、例えば、前回の計測結果がある場合には、CPU10は、前回以前の計測結果と計測帯域との対応関係に基づき、計測帯域を設定する。前回以前の計測結果と計測帯域との対応関係は、予めHDD13に記憶されている。前回の計測結果がない場合には、CPU10は通常の通信に用いられる帯域の下限値から上限値までの範囲(500kbpsから1.5Mbps)を計測帯域に設定する。
【0032】
図4を参照して、送信間隔設定処理の詳細を説明する。まず、CPU10は、通信装置1が起動された後の最初に実行される送信間隔設定処理であるか否かを判断する(S110)。CPU10は、最初に実行される処理であるか否かを、例えば、RAM12に記憶された判定フラグに基づき判断する。判定フラグは、例えば、起動時にFALSEに設定され、起動後S110が実行された後にTRUEに設定される。なお、判定フラグにTRUEが設定された後、所定期間S110が実行されなかった場合、判定フラグにFALSEを設定する処理が実行されてもよい。最初に実行される処理である場合(S110:YES)、CPU10は、各種パラメータにデフォルト値を設定し、設定したパラメータをRAM12に記憶させる(S120)。S120で設定されるパラメータには、例えば、合計サイズの目標値と、計測帯域と、第1パケット数とが挙げられる。第1パケット数は、1回の計測で所定の間隔で送信される第1パケットの数である。S120では、例えば、以下のようにパラメータにデフォルト値が設定される。合計サイズの目標値には、1500byteが設定される。計測帯域には、500kbpsから1.5Mbpsが設定される。第1パケット数には、25が設定される。
【0033】
S110の処理が、最初に実行される処理ではない場合(S110:NO)、CPU10は、前回以前の計測結果と計測帯域との対応関係に基づき、今回の計測帯域を設定し、設定した計測帯域をRAM12に記憶させる(S130)。次に、CPU10は、計測帯域以外のパラメータ(合計サイズの目標値及び第1パケット数)に、前回の値を設定し、設定したパラメータをRAM12に記憶させる(S140)。
【0034】
S120又はS140の次に、CPU10は、計測帯域を第1パケット数で等分割し、等分割してできた分割計測帯域を、RAM12に記憶させる(S150)。S150の計算に使用される計測帯域は、S120又はS130で設定された値であり、第1パケット数は、S120又はS140で設定された値である。計測帯域が、500kbpsから1.5Mbpsである場合、500kbpsから1.5Mbpsの範囲が40kbps毎に分割される。次に、CPU10は、各分割計測帯域について、第1パケットの送信間隔T1を算出し、算出した送信間隔T1をRAM12に記憶させる(S160)。合計サイズの目標値が、1500byteであり、分割計測帯域の代表値が500kbpsである場合、(1500×8)/(500×1000)に基づき、送信間隔T1には24msecが設定される。分割計測帯域の代表値は、例えば、S150で作成された分割計測帯域の下限値である。次に、送信間隔設定処理は終了し、処理は図3の送信メイン処理に戻る。
【0035】
図3の送信メイン処理において、図4に示した送信間隔設定処理(S20)が終了すると、CPU10は、第1パケット数を受信装置に送信する(S30)。S30の処理は、何組の計測パケットを用いて使用可能な帯域を計測するかを、パケット送信装置が受信装置に事前に通知する処理である。1組の計測パケットは、送信間隔T1の期間内に送信され、且つ、合計サイズが目標値となる、1つの第1パケットと、1つ以上の第2パケットとで構成される。図8を参照して後述するが、第1パケット数を受信した受信装置は、S520で受信した数の計測パケットを受信した場合に、計測パケットを全て受信したと判断する。次に、CPU10は、パケット送信処理を実行する(S40)。パケット送信処理では、CPU10は、第1パケットと、第2パケットとを送信間隔T1内の別のタイミングで送信する。CPU10は、分割計測帯域毎に設定された送信間隔T1を順に読み出して送信間隔T1を変える。
【0036】
図5及び図6を参照して、パケット送信処理の詳細を説明する。図5のように、まず、CPU10は、第1パケット数組の計測パケットを送信したか否かを判断する(S210)。CPU10が計測パケットを送信した場合(S210:YES)、パケット送信処理は終了し、処理は図3のメイン処理に戻る。CPU10が計測パケットを送信し終えていない場合(S210:NO)、CPU10は、新たな第1パケットを作成し、作成した第1パケットをRAM12に記憶させる(S220)。S220では、CPU10は、帯域計測用データのみを含む第1パケットを作成する。S220ではさらに、CPU10は、図4のS160で分割計測帯域毎に設定された送信間隔T1を順に読み出して、読み出した送信間隔T1をRAM12に記憶させる。
【0037】
次に、CPU10は、S220で作成した第1パケットを、ポートX26又はポートY27と、ネットワーク8とを介して、受信装置のポートX26に送信する(S230)。繰り返し実行されるS230の処理によって、図6のように、第1タイミング毎に第1パケット211から214が、受信装置に送信される。第1の実施形態では、図6中、T1タイミングと、T3タイミングと、T6タイミングと、T10タイミングとで示される第1タイミング間の長さを表す期間201から203は、図4のS160で設定された送信間隔T1と等しい。
【0038】
次に、CPU10は、現在の時刻を送信実行時刻として取得し、取得した送信実行時刻をRAM12に記憶する(S240)。第1パケットを送信するのに要する時間は無視できる程度に短いため、S240で取得された送信実行時刻は、送信開始時刻とみなすことができる。次に、CPU10は、第2パケット送信処理を実行する(S250)。第2パケット送信処理では、CPU10は、合計サイズが目標値となるように第2パケットを作成する。目標値は、S120又はS140で設定された値である。またCPU10は、作成した第2パケットを、第2タイミングで送信する。第2タイミングは、S230で第1パケットを送信してから、S220で読み出された送信間隔T1が経過する時点よりも前である。
【0039】
図6及び図7を参照して、第2パケット送信処理の詳細を説明する。図7のように、第2パケット送信処理では、まず、CPU10は、合計サイズが目標値となるパケットを受信装置に送信したか否かを判断する(S310)。S310では、CPU10は、RAM12に記憶された現在の合計サイズと、目標値とが等しければ、合計サイズが目標値となるパケットを送信したと判断する。現在の合計サイズの初期値は、図5のS220で作成され、S230で送信された第1パケットのデータサイズである。現在の合計サイズは、第2パケットが送信される毎に更新される。
【0040】
現在の合計サイズが目標値である場合(S310:YES)の処理は後述する。現在の合計サイズが目標値ではない場合(S310:NO)、CPU10は、現在時刻を取得して、取得した現在時刻をRAM12に記憶させる(S340)。次に、CPU10は、送信データを含む新たな第2パケットを送信するのに必要な時間があるか否かを判断する(S350)。S350では、CPU10は、(S220で読み出した送信間隔T1)>{(S340で取得した現在時刻)+(第2パケットを作成及び送信するのに必要な所定時間)−(S240で取得した送信実行時刻)}を満たした場合に、時間があると判断する。第2パケットを作成及び送信するのに必要な所定時間は予め設定され、HDD13に記憶されている。時間がある場合(S350:YES)、CPU10は、送信データを取得し、取得した送信データをRAM12に記憶させる(S360)。送信データは、随時、HDD13のバッファに記憶されるため、CPU10は、バッファから送信データを取得する。
【0041】
次に、CPU10は、S360で所定サイズ以下の送信データを取得したか否かを判断する(S370)。所定サイズは、(目標値)−(現在の合計サイズ)−(所定量)で表される。所定量は、第2パケットに含ませる、送信データ以外のデータ(例えば、識別用のデータ)のサイズを表す。取得しなかった場合(S370:NO)、処理はS310に戻る。CPU10がS360で所定サイズ以下の送信データを取得した場合(S370:YES)、CPU10は、S360で取得した所定サイズ以下送信データを含む新たな第2パケットを作成し、作成した第2パケットをRAM12に記憶させる(S380)。次に、CPU10は、S380で作成した第2パケットをポートX26又はポートY27と、ネットワーク8とを介して、受信装置のポートY27に送信する(S390)。このように、CPU10は、受信装置が第1パケットを受信するポートとは異なるポートに、第2パケットを送信する。次に、処理はS310に戻る。
【0042】
図6の期間201内に送信される第2パケット221のように、送信間隔内で1つの第2パケットが送信されてもよい。また、期間202内に送信される第2パケット222と、第2パケット223とのように、送信期間内に複数の第2パケットが送信されてもよい。ただし、期間201に送信される第1パケット211のデータサイズと、第2パケット221のデータサイズとの和は、目標値と等しい。同様に、期間203に送信される第1パケット212のデータサイズと、第2パケット222及び223のデータサイズとの和は、目標値と等しい。
【0043】
S350で時間がない場合(S350:NO)、CPU10は、調整データを用いて新たな第2パケットを作成し、作成した第2パケットをRAM12に記憶させる(S410)。調整データは、合計サイズが目標値となるように、新たに作成する第2パケットのデータサイズを調整するためのデータである。次に、CPU10は、S410で作成した第2パケットを、ポートX26又はポートY27と、ネットワーク8とを介して、受信装置のポートY27に送信する。例えば、図6の期間203では、第1パケット213をT6タイミングで送信した後、第2パケット224と、第2パケット225とを送信した時点では、合計サイズは目標値に達していない。このような場合に、合計サイズを調整するために、T9タイミングで、調整データを含む第2パケット226が送信される。
【0044】
S310で、現在の合計サイズが目標値である場合(S310:YES)、CPU10は、現在時刻を取得し、取得した現在時刻をRAM12に記憶させる(S320)。次に、CPU10は、所定のタイミングか否かを判断する(S330)。所定のタイミングとは、(S240で取得した送信実行時刻)−(S320で取得した現在時刻)=(S220で読み出した送信間隔T1)となるタイミングである。所定のタイミングでなければ(S330:NO)、処理はS320に戻る。所定のタイミングである場合(S330:YES)、又はS420の次に、第2パケット送信処理は終了し、処理は図5のパケット送信処理に戻る。図5のパケット送信処理において、S250の次に、処理はS210に戻る。
【0045】
図3のメイン処理において、図5に示したパケット送信処理が終了すると(S40)、CPU10は、使用可能な帯域の計測結果を受信し、受信した計測結果をRAM12に記憶させる(S50)。計測結果は、図8を参照して後述する受信メイン処理を実行する受信装置から送信される。S50の次に処理はS10に戻る。以上のように、CPU10は、第1の実施形態の送信メイン処理を実行する。
【0046】
次に、図8及び図9を参照して、受信メイン処理を簡単に説明する。受信メイン処理は、通信装置1が受信装置として機能する場合に実行される。受信イン処理は、受信装置と、パケット送信装置との間でデータを送受信する指示が入力されると、HDD13に記憶されているプログラムに従って、受信装置のCPU10によって実行される。なお、公知技術(例えば、上記非特許文献1)と同様の処理については、説明を簡略化する。
【0047】
図8のように、受信メイン処理ではまず、CPU10は、終了指示を取得したか否かを判断する(S510)。終了指示は、ユーザが操作部25を操作して通信装置1に終了指示を入力した場合、又は、他の通信装置1から終了指示が送信された場合に取得される。終了指示があれば(S510:YES)、受信メイン処理は終了する。終了指示がなければ(S510:NO)、CPU10はパケット送信装置から送信された第1パケット数を受信し、受信した第1パケット数をRAM12に記憶させる(S520)。次にCPU10は、S520で受信した第1パケット数組の第1パケットと、第2パケットとを計測パケットとして受信し、受信した計測パケットをRAM12又はHDD13に記憶させる(S530)。図9のように、パケット送信装置から送信された第1パケット211から214は、受信装置のポートX26を介して受信される。パケット送信装置から送信された第2パケット221から226は、受信装置のポートY27を介して受信される。CPU10は、第1パケットを受信した場合には、受信時刻を取得し、取得した受信時刻をRAM12に記憶させる。図9の例では、第1パケット211から214のそれぞれが受信されたタイミングであるT11タイミングと、T13タイミングと、T16タイミングと、T20タイミングとに対応する現在時刻が、受信時刻として取得される。
【0048】
次に、CPU10は、S530で受信した第1パケットの受信間隔と、送信間隔とに基づき、使用可能な帯域を算出し、算出した使用可能な帯域をRAM12に記憶させる(S540)。第1パケットの受信間隔は、S530において取得した受信時刻に基づき算出される。第1パケットの受信間隔は、図9において、期間301から303の長さで表される。第1パケットの送信間隔は、第1パケットの帯域計測用データに含まれる送信時刻に基づき特定される。第1パケットの送信間隔は、図6において、期間201から203の長さで表される。受信間隔と、送信間隔とに基づき使用可能な帯域を特定する方法は、従来の方法を適宜採用可能である。本実施形態では、前述の計測原理に基づいて、使用可能な帯域が特定される。次に、CPU10は、S540で算出した使用可能な帯域を、パケット送信装置に送信する(S550)。次に処理はS510に戻る。
【0049】
以上のように、CPU10は受信メイン処理を実行する。図5のS220の処理は、本発明の「第1パケット作成工程」に相当し、S220を実行するCPU10は、本発明の「第1パケット作成手段」として機能する。図7のS360の処理を実行するCPU10は、本発明の「送信データ取得手段」として機能する。図7のS410と、S380とは、本発明の「第2パケット作成工程」に相当し、S410と、S380とを実行するCPU10は、本発明の第2パケット作成手段として機能する。図4のS160の処理は、本発明の「設定工程」に相当し、S160を実行するCPU10は、本発明の「設定手段」として機能する。図5のS230の処理は、本発明の「第1送信工程」に相当し、S230の処理を実行するCPU10は、本発明の第1送信手段として機能する。図7のS420と、S390との処理は、本発明の「第2送信工程」に相当し、S420と、S390とを実行するCPU10は、本発明の「第2送信手段」として機能する。
【0050】
通信装置1によれば、送信間隔T1内に送信されるデータのサイズが目標値であるという条件のもと、送信間隔T1内の任意のタイミングで送信データを受信装置に送信することができる。したがって、計測パケットに含まれる送信データを送信するタイミングの自由度を向上させることができる。具体的には、通信装置1では、第1パケットにデータ識別用のデータを含ませる必要がないので、その分第2パケットに包含可能なデータ量を増やすことができる。また、帯域計測用データと、他のデータとが1つのパケットにまとめて送信される場合、他のデータを帯域計測用データのためのプロトコルで送らざるをえないので、従来の装置では、伝送効率及び伝送品質が悪くなる可能性がある。一方、通信装置1では、送信データを計測パケットに含ませる場合であっても、第1パケットと、第2パケットに分けてデータを送信することで、送信データに適したプロトコルで送信データを送信することができる。また通信装置1は、帯域計測用データと、送信データとを同じパケットに含ませる場合に比べ、データ結合処理を軽減することができる。通信装置1は、合計サイズを目標値としているので、計測帯域に応じた所定の伝送レートとなるように送信間隔を決定する処理が容易である。また、通信装置1は、計測精度を損なうことなく、計測パケットに含まれる送信データを送信するタイミングの自由度を向上させることができる。
【0051】
第1パケットは受信装置のポートX26に送信され、第2パケットはポートX26とは別のポートY27に送信されるので、第1パケットか、第2パケットかを識別するためのデータが各パケットに含まれなくてもよい。したがって、通信装置1は、パケットの種類を識別するためのデータを省略することができるので、パケットの種類を識別するためのデータが含まれる場合に比べ、第2パケットに包含可能なデータ量を増やすことができる。また、受信装置において、受信時刻を監視する対象は第1パケットのみでよいため、受信側の通信装置における処理負荷を低減させることが可能である。
【0052】
ところで、第1の実施形態のパケット送信装置(通信装置1)は、合計サイズが目標値となる第2パケットを作成する際に、必要に応じて、調整データを用いて第2パケットのデータサイズを調整していた。これに代えて、第2の実施形態のパケット送信装置のように、合計サイズが所定範囲に入るものの、目標値となる第2パケットを作成することができない場合に、送信間隔を変更することで、所定の伝送レートで計測パケットを作成してもよい。以下、第2の実施形態のパケット送信装置で実行される送信メイン処理について説明する。
【0053】
図示しないが、第2の実施形態の送信メイン処理は、第2パケット送信処理において、第1の実施形態の送信メイン処理と異なる。第1の実施形態の送信メイン処理と同様の処理については説明を省略し、以下、第2の実施形態の第2パケット送信処理について図10を参照して説明する。図10において、図7の第1の実施形態の第2パケット送信処理と同様の処理を行う場合には、同じステップ番号を付与している。図10のように、第2の実施形態の送信メイン処理は、S430とS440とを実行する点において、第1の実施形態の送信メイン処理と異なる。以下、第1の実施形態の送信メイン処理とは異なる処理について説明する。
【0054】
S430では、CPU10は、送信間隔T2を算出し、算出した送信間隔T2をRAM12に記憶させる。送信間隔T2は、(現在の合計サイズSum)/(現在の分割計測帯域の代表値B)に基づき算出される。送信間隔T2は、送信間隔T2を調整することによって、所定の伝送レートで計測パケットを送信するために用いられる。
【0055】
S440では、CPU10は、送信間隔を送信間隔T2に変更することによって、送信時の伝送レートを所定値となるように調整することが可能か否かが判断される。具体的には、CPU10は、(S430で算出した送信間隔T2)>(S350で取得した現在時刻)−(図5のS240の送信実行時刻)を満たす場合を変更可能であると判断する。S440によって、送信間隔を変更可能である場合には(S440:YES)、CPU10は、(S430で算出した送信間隔T2)=(S350で取得した現在時刻)−(図5のS240の送信実行時刻)となるまで待機した後、第2パケット処理を終了させる。送信間隔を変更可能ではない場合には(S440:NO)、処理はS310に戻る。
【0056】
以上のように、第2の実施形態のCPU10は、送信メイン処理を実行する。図10のS430の処理を実行するCPU10は、本発明の設定手段として機能する。第2の実施形態の通信装置1によれば、計測精度を損なうことなく、計測パケットに含まれる送信データを送信するタイミングの自由度を向上させることができる。より具体的には、通信装置1は、合計サイズが目標値となる第2パケットを、送信データを用いて作成することができない場合に、次のような処理を行う。送信間隔を調整することができる場合には(S440:YES)、送信時の伝送レートを調整するために、送信間隔T1を送信間隔T2に変更する。送信間隔を調整することができない場合には(S440:NO)、データサイズを調整するための調整データを含む第2パケット(S410)を、受信装置に送信する(S420)。すなわち、通信装置1は、なるべく調整データを用いないように、伝送レートの調整方法を切り替えることができる。また通信装置1は、送信データを含む第2パケットを送信した(S390)後に送信間隔を調整可能か判断する処理を実行しているので(S430,S440)、送信間隔内に第1パケットのみが送信される事態を確実に回避することができる。
【0057】
なお、本発明は、上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加えられてもよい。例えば、以下の(A)から(D)の変形が適宜加えられてもよい。
【0058】
(A)上記実施形態では、パケット送信装置としての機能を備えた通信装置1を例示したが、これに限定されない。例えば、本発明のパケット送信装置は、計測パケットを送信する専用機に適用されてもよいし、計測パケットを含む複数種類のパケットを送信するパケット送信装置に適用されてもよい。本発明のパケット送信装置が、計測パケットを送信する専用機に適用された場合、計測パケットに含まれる送信データは、パケット送信装置において生成されてもよいし、パケット送信装置とは別の装置において生成されてもよい。送信データがパケット送信装置とは別の装置において生成される場合、送信データはネットワーク等を介して別の装置から取得されればよい。また、通信装置1がテレビ会議に用いられる場合を例示したがこれに限定されず、例えば、ストリーミング配信に利用されてもよい。パケット送信装置の用途に応じて、送信データの種類は変更されてよい。また、パケット送信装置の構成は適宜変更可能である。例えば、上記通信装置1は、ポートX26とポートY27とを備えていたが、1つの外部通信I/Fを備えていてもよい。
【0059】
(B)上記実施形態では、第1パケットは、帯域計測用データのみを含んでいたが、他のデータを含んでもよい。同様に、上記実施形態の第2パケットが、合計サイズが目標値となるように作成されたが、合計サイズが目標値を含む所定範囲となるように作成されてもよい。所定範囲は、使用可能な帯域の計測精度を考慮して適宜定められればよい。
【0060】
(C)上記実施形態の通信装置1は、第1パケットと、第2パケットとを、受信装置の別のポートに送信していたが、同じポートに送信してもよい。また、パケット送信装置が複数の送信ポートを備える場合、第1パケットと、第2パケットとを、別のポートから送信してもよい。
【0061】
(D)計測パケットの送信時の伝送レートは、合計サイズ及び送信間隔の少なくともいずれかによって調整されればよい。
【符号の説明】
【0062】
1 通信装置
8 ネットワーク
10 CPU
12 RAM
13 HDD
26 ポートX
27 ポートY

【特許請求の範囲】
【請求項1】
複数の通信装置を備える通信システムで使用可能な帯域を計測するために、受信側の通信装置にパケットを計測帯域に応じた所定の伝送レートで送信するパケット送信装置であって、
帯域計測用データを含む第1パケットを作成する第1パケット作成手段と、
前記第1パケットのデータサイズと、新たに作成する第2パケットのデータサイズとの和が、前記伝送レートに基づき設定された目標値を含む所定範囲になるように当該第2パケットを作成する第2パケット作成手段と、
前記伝送レートに基づき、前記第1パケットの送信間隔を設定する設定手段と、
前記設定手段によって設定された前記送信間隔毎の第1タイミングで、前記第1パケット作成手段によって作成された前記第1パケットを前記受信側の通信装置に送信する第1送信手段と、
前記第1タイミングよりも後のタイミングであって、前記第1タイミングから前記送信間隔の経過時点よりも前の第2タイミングで、前記第2パケット作成手段によって作成された前記第2パケットを前記受信側の通信装置に送信する第2送信手段と
を備えるパケット送信装置。
【請求項2】
前記受信側の通信装置に送信する予定の送信データを取得する送信データ取得手段を備え、
前記第1パケット作成手段は、前記帯域計測用データからなる前記第1パケットを作成し、
前記第2パケット作成手段は、前記送信データ取得手段によって取得された前記送信データを含む1以上のパケットを前記第2パケットとして作成することを特徴とする請求項1に記載のパケット送信装置。
【請求項3】
前記第2パケット作成手段は、前記送信データ取得手段によって取得された前記送信データを用いて、前記和が前記目標値となるパケットを作成することができない場合に、前記和が前記目標値となるように、パケットのデータサイズを調整するためのデータである調整データを含むパケットを前記第2パケットとして作成することを特徴とする請求項2に記載のパケット送信装置。
【請求項4】
前記設定手段は、前記送信データ取得手段によって取得された前記送信データを用いて、前記和が前記目標値となるパケットを作成することができない場合に、前記和と、前記伝送レートとに応じて前記送信間隔を再設定することを特徴とする請求項2又は3に記載のパケット送信装置。
【請求項5】
前記第1送信手段は、前記第1パケットを、前記受信側の通信装置が備える第1ポート宛てに送信し、
前記第2送信手段は、前記第2パケットを、前記受信側の通信装置が備えるポートであって、前記第1ポートとは異なる第2ポート宛てに送信することを特徴とする請求項1から4のいずれかに記載のパケット送信装置。
【請求項6】
複数の通信装置を備える通信システムで使用可能な帯域を計測するために、コンピュータが受信側の通信装置にパケットを計測帯域に応じた所定の伝送レートで送信するパケット送信方法であって、
帯域計測用データを含む第1パケットを作成する第1パケット作成工程と、
前記第1パケットのデータサイズと、新たに作成する第2パケットのデータサイズとの和が、前記伝送レートに基づき設定された目標値を含む所定範囲になるように当該第2パケットを作成する第2パケット作成工程と、
前記伝送レートに基づき、前記第1パケットの送信間隔を設定する設定手工程と、
前記設定工程において設定された前記送信間隔毎の第1タイミングで、前記第1パケット作成手工程において作成された前記第1パケットを、前記受信側の通信装置に送信する第1送信工程と、
前記第1タイミングよりも後のタイミングであって、前記第1タイミングから前記送信間隔の経過時点よりも前の第2タイミングで、前記第2パケット作成工程において作成された前記第2パケットを、前記受信側の通信装置に送信する第2送信工程と
を備えるパケット送信方法。
【請求項7】
請求項1から5のいずれかに記載のパケット送信装置の各種処理手段としてコンピュータを機能させるためのパケット送信プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−160039(P2011−160039A)
【公開日】平成23年8月18日(2011.8.18)
【国際特許分類】
【出願番号】特願2010−17911(P2010−17911)
【出願日】平成22年1月29日(2010.1.29)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】