(57)【要約】【課題】  中継器のトークンの蓄積量によっては、ネットワークの可用帯域を超えたスループットでパケットがバースト転送される。このスループットに従って計測された帯域に従ってパケットを送信すると、可用帯域を超えたパケットが送信されてしまうため、ネットワークにおいてパケットのロスが発生することがある。【解決手段】  送信器から送信されたパケットに中継器で帯域制限を施し、受信器へ送信する通信システムであって、前記送信器は、前記受信器によって受信される受信パケットの受信間隔が前記中継器に入力されるパケットの送信間隔よりも長くなる場合に、前記受信間隔に応じて送信パケットの送信レートを設定する設定手段を有する。【選択図】  図４
2014165552.tif 000002
【特許請求の範囲】
【請求項１】
送信器から送信されたパケットに中継器で帯域制限を施し、受信器へ送信する通信システムであって、
前記送信器は、前記受信器によって受信される受信パケットの受信間隔が前記中継器に入力されるパケットの送信間隔よりも長くなる場合に、前記受信間隔に応じて送信パケットの送信レートを設定する設定手段
を有することを特徴とする通信システム。
【請求項２】
前記受信パケットを含むパケット列のうち、前記送信間隔よりも長い間隔をあけて受信される受信パケットの受信後の受信レートに基づいて、前記受信間隔に応じて設定される前記送信レートを算出する第１算出手段
を有することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記受信パケットを含むパケット列のうち、前記送信間隔よりも長い間隔をあけて受信される受信パケットの受信よりも前の受信レートに基づいて、前記送信器から送信されたパケットが入力されてから前記帯域制限を施されるまでに前記中継器が転送したパケットの転送サイズを算出する第２算出手段
を有することを特徴とする請求項１又は２に記載の通信システム。
【請求項４】
前記設定手段は、前記送信レートに前記転送サイズを乗じて算出された期間毎に、前記転送サイズに応じたパケットの連続転送させる
ことを特徴とする請求項３に記載の通信システム。
【請求項５】
前記受信間隔が前記送信間隔よりも長くならない場合に、前記設定手段は、前記受信器によって受信される受信パケットの受信間隔が前記中継器に入力されるパケットの送信間隔よりも短くなるまで、前記送信パケットの送信レートを大きく設定する
ことを特徴とする請求項１〜４の何れか１項に記載の通信システム。
【請求項６】
前記受信パケットを含むパケット列のうち、前記中継器においてバースト転送された受信パケットと、前記中継器において前記帯域制限に従って転送された受信パケットとの境界を判定することで、前記受信間隔が前記送信間隔よりも長くなることを判定する判定手段
を有することを特徴とする請求項１〜５の何れか１項に記載の通信システム。
【請求項７】
前記受信パケットを含むパケット列のうち、所定の受信時刻以降に順に受信する所定数の受信パケットに応じた受信レートを、前記所定の受信時刻をずらしながら算出し、算出された複数の受信レートにおいて受信レートが変化する受信時刻に応じて前記受信期間が前記送信期間よりも長くなることを判定する判定手段
を有することを特徴とする請求項１〜５の何れか１項に記載の通信システム。
【請求項８】
前記受信パケットを含むパケット列のうち、隣り合う受信時刻毎の受信パケットの間隔を受信時刻をずらしながら算出していくことで、前記受信期間が前記送信期間よりも長くなることを判定する判定手段
を有することを特徴とする請求項１〜５の何れか１項に記載の通信システム。
【請求項９】
送信器から送信されたパケットに中継器で帯域制限を施し、受信器へ送信する通信システムにおける送信器であって、
前記送信器は、前記受信器によって受信される受信パケットの受信間隔が前記中継器に入力されるパケットの送信間隔よりも長くなる場合に、前記受信間隔に応じて送信パケットの送信レートを設定する設定手段
を有することを特徴とする送信器。
【請求項１０】
送信器から送信されたパケットに中継器で帯域制限を施し、受信器へ送信する通信システムの通信制御方法であって、
前記受信器によって受信される受信パケットの受信間隔が前記中継器に入力されるパケットの送信間隔よりも長くなる場合に、前記受信間隔に応じて送信パケットの送信レートを設定する
ことを特徴とする通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、送信器、及び通信制御方法に関する。
【背景技術】
【０００２】
世界中で日々膨大な量のデータが蓄積されビッグデータ化が進み、ビックデータを処理するためのシステムが、長距離通信を伴う複数の海外拠点に跨って構築されることがある。そして、各拠点間のネットワークを介したデータの移動にかかる時間が無視できなくなっている。
【０００３】
例えば、通信の信頼性を担保するために、各拠点間の通信がトランスポート層プロトコル（ＴＣＰ：Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）に従って実行される場合、送信器から送信されるパケットに対して、受信確認のためのＡＣＫパケットが受信器から送信される。そして、ＡＣＫパケットがタイムアウト時間内に送信器に到達しない場合には、パケットロスや輻輳を抑制させるために、タイムアウト時間を長く設定し、かつパケットの送信レートを下げる通信制御が実行される。すなわち、通信のスループットを低下させるような制御が実行される。ネットワークにおける遅延は、送信器から送信されるパケットだけでなくＡＣＫパケットにも影響を与えるため、長距離通信を伴うシステムではＡＣＫパケットがタイムアウト時間内に送信器に到達しない可能性が高まる。従って、長距離通信を伴うシステムでは、上記の通信制御が実行される可能性が高まり、通信の信頼性は保たれたとしても、通信効率が悪くなってしまうことがある。
【０００４】
そこで、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ)高速化装置により通信を高速化することがある。ＷＡＮ高速化装置は、例えば、遅延が大きく廃棄率の高い通信となってしまう拠点間のＷＡＮを挟んで対になるように配置され、拠点間の通信をＴＣＰ通信とは異なる独自のプロトコルを用いることで高速化することがある。この場合、送信器は、ＡＣＫパケットによらない送信レートでパケットを送信できるが、ＷＡＮ高速化装置間のネットワークに輻輳を起こさせないために、ネットワークの可用帯域に従った送信レートでパケットを送信するように制御される。仮に、送信器がネットワークの可用帯域を考慮せずにパケットを送信し続けると、他の通信にも共有使用されているネットワークに許容量を超えたパケット通信が発生してしまう場合があるため、ネットワークに輻輳が生じ、各通信にパケットロスを発生させてしまう。
【０００５】
そこで、高効率で安定な通信を実現するために、ネットワークで利用可能な可用帯域を測定する回線計測が実行され、送信レートの制御が行われる。
【０００６】
例えば、計測用パケットの受信間隔が送信間隔と等しくなった場合に、その送信間隔に対応する送信レートをネットワークの可用帯域と判定する技術が知られている。また、データ送信部からバースト送信された複数のパケットのうちの一部のパケットが廃棄された場合、最大出力レートを保持するためにデータバーストの出力周期を低減させる技術が知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１８２０１５号公報
【特許文献２】特開２００６−７４７７３号公報
【特許文献３】特開２０１２−５０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
中継器のトークンの蓄積量によっては、ネットワークの可用帯域を超えたスループットでパケットがバースト転送される。このスループットに従って見積もられた帯域に従ってパケットを送信すると、可用帯域を超えたパケットが送信されることになるため、ネットワークにおいてパケットのロスが発生する。
【０００９】
本願は、パケットをバースト転送させる中継器を含む通信システムにおいてパケットのロスを減少させる通信システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
開示の通信システムによれば、送信器から送信されたパケットに中継器で帯域制限を施し、受信器へ送信する通信システムであって、前記送信器は、前記受信器によって受信される受信パケットの受信間隔が前記中継器に入力されるパケットの送信間隔よりも長くなる場合に、前記受信間隔に応じて送信パケットの送信レートを設定する設定手段を有する。
【発明の効果】
【００１１】
本開示の一側面によれば、パケットをバースト転送させる中継器を含む通信システムにおいてパケットのロスが減少する。
【図面の簡単な説明】
【００１２】
【図１】実施例の通信システムの例。
【図２】実施例の中継器における通信の例。
【図３】実施例の送信器及び受信器のハードウェア構成の例。
【図４】実施例の送信器及び受信器に適用される機能ブロックの例。
【図５】実施例の機能ブロックの適用例。
【図６】実施例の機能ブロックの他の適用例。
【図７】実施例の送信器から送信され中継器に入力される計測用パケットの例。
【図８】実施例の受信器で受信される計測用パケットの受信例。
【図９】実施例の通信制御方法において実行される処理の例。
【図１０】実施例の通信制御方法において実行される処理の他の例。
【図１１】実施例の送信器から送信されるパケットの送信例。
【図１２】実施例の受信器で受信される計測用パケットとバーストサイズ及び可用帯域との関係。
【発明を実施するための形態】
【００１３】
図１に、実施例の通信システムの例が示される。図１に示される通信システムは、端末装置１１及びＷＡＮ高速化装置１２を含むコンピュータネットワーク１０、及び、ＷＡＮ高速化装置２１及び端末装置２２を含むコンピュータネットワーク２０を含む。端末装置１１は例えばアプリケーションサーバであり、例えばクライアントとなる端末装置２２からの要求に応じた情報を、例えばＷＡＮであるネットワーク３０を介して端末装置２２に提供する。なお、ネットワーク３０には他のネットワーク４０が接続されていてもよい。端末装置１１、ＷＡＮ高速化装置１２、端末装置２２、及びＷＡＮ高速化装置２１が、実施例の通信制御方法が実行される際の通信方向に従って、実施例の送信器、又は受信器に対応することとなる。
【００１４】
ＷＡＮ高速化装置１２及びＷＡＮ高速化装置２１は、端末装置１１及び端末装置２２の間で行われる通信を高速化させるために、ネットワーク３０を挟んで互いに対になるように配置される。ＷＡＮ高速化装置１２及びＷＡＮ高速化装置２１は、例えば、ＴＣＰ通信とは異なる独自のプロトコルを用いることで、ＡＣＫパケットによらない送信レートでパケットを送信できるプロキシ装置として動作可能である。この場合、ＷＡＮ高速化装置１２及びＷＡＮ高速化装置２１の通信は、ネットワーク３０に輻輳を起こさせないために、後述されるように、ネットワーク３０の可用帯域に従った送信レートでパケットを送信させる制御を実行する。
【００１５】
ところで、ネットワーク３０は、一般的には、コンピュータネットワーク１０及び２０を運用する事業者とは異なる通信事業者によって運用される。そして、ネットワーク３０は、図示されない他のコンピュータネットワークを運用する事業者によっても使用される。コンピュータネットワーク１０及び２０を運用する事業者は、通信事業者との個別の契約に従って、ネットワーク３０内にＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）といった専用通信回線を構築することにより、契約によって定められる帯域が確保された上でコンピュータネットワーク１０及び２０間の通信を実行することができる。
【００１６】
図２に、実施例の中継器における通信の例が示される。図２に示される中継器５０は、図１のネットワーク３０に含まれる例えばルータなどの中継器であり、パケット処理機能を有する。中継器５０は、パケット処理機能として、トークンバケット５１に蓄積されたトークンの蓄積量に基づいて、入力されたパケットをバースト転送する機能を有する。なお、トークンバケット５１に蓄積されるトークンは、帯域制限に応じて一定速度でインクリメントされる。
【００１７】
例えば、図２に示されるように、時間的に連続するパケットの間隔が互いに等しい４個のパケット“１”、“２”、“３”、及び“４”を含むパケット列が中継部５０に入力されたとする。また、トークンバケット５１の最大値までトークンが蓄積されているとし、トークンバケット５１の最大値までトークンが蓄積されている場合には中継器５０はパケット“１”及び“２”を転送させることができるとする。この場合、中継器５０はトークンバケット５１に蓄積されたトークンを全て消費して、パケット“１”及び“２”をバースト転送させる。従って、中継器５０から出力されるパケット“１”及び“２”のパケット間隔は、中継器５０に入力された際のパケット間隔と等しい。
【００１８】
ところで、パケット“１”及び“２”に続くパケット“３”及び“４”は、中継器５０に入力されてもトークンバケット５１にトークンがないため、その時点では中継器５０から出力されない。
【００１９】
例えば、中継器５０がポリサ機能を有する場合、パケット“３”及び“４”は廃棄される。なお、パケット“３”が廃棄された後、パケット“４”が中継器５０に入力されるまでにトークンがインクリメントされ、そのトークンがパケット４を転送させることが可能な量であれば、パケット“４”は廃棄されずに中継器５０から出力される。図２に示される例は中継器５０がポリサ機能を有する場合の例であり、パケット“３”及び“４”が廃棄された場合のパケットの出力例が示される。
【００２０】
他方で、例えば、中継器５０がシェイパ機能を有する場合、パケット“３”及び“４”を転送できるトークンがトークンバケット５１に蓄積されるまで、パケット“３”及び“４”は中継器５０内にバッファリングされる。すなわち、少なくとも、パケット“２”及び“３”のパケット間隔は、中継器５０に入力される際のパケット間隔よりも広がる。
【００２１】
ここで、図２に示されるパケット“１”、“２”、“３”、及び“４”が帯域制限を超えるレートで中継器５０に入力されているとし、中継器５０では帯域制限に従った速度でトークンがインクリメントされているとする。
【００２２】
パケット“１”、“２”、“３”、及び“４”が入力される前の通信状況によっては、中継器５０のトークンが消費されずにトークンバケット５１に蓄積されているため、上述したように、帯域制限を超えるレートで入力されるパケット“１”及び“２”であってもパケット間隔を変えずにバースト転送されて中継器５０から出力される。つまり、パケット“３”、及び“４”が廃棄されることで時間平均としては帯域制限を満たすスループットでパケットが転送されるものの、パケット“１”及び“２”が転送される局所的な期間では帯域制限を超えたスループットでパケットが出力されている。
【００２３】
ネットワーク３０を利用する事業者の契約数の変化等によっては、通信事業者はネットワーク３０の既存の事業者に対して、契約で定められる帯域の保障内ではあるものの、各事業者の通信傾向から、トークンバケットの最大値や、トークンサイズ、インクリメント速度を変更することで、ネットワーク３０が安定するよう管理することがある。この場合、契約で定められる帯域が保障されていることもあり、このような個別の設定情報までは通信事業者から各事業者には通知されない。すなわち、各事業者には、通信事業者によって管理される中継器のバーストサイズの許容量までは通知されない。
【００２４】
ところで、アプリケーションサーバに処理の要求をした場合に、各事業者は、アプリケーションサーバから送信されるデータ量を事前に正確に知ることはできない。
【００２５】
そのため、各事業者は、ネットワーク３０に専用通信回線を備えていたとしても、ネットワーク３０に許容されるバーストサイズを知らない状況で、局所的な通信によりパケットロスが生じないよう、バーストサイズや帯域制限の設定状態に応じた通信傾向になるような送信制御を実行して通信を安定させることが好ましい。
【００２６】
上述のような通信システムについて発明者が検討した結果、中継器がパケットをバースト転送させる場合、帯域制限に従う可用帯域を測定するための計測用パケットの送信量がその時点で許容されるバーストサイズよりも小さいと、計測用パケット全てがバースト転送されてしまう。この場合、受信器で受信される計測用パケットの間隔は、中継器に入力されるパケットの間隔と等しくなり、その間隔は広がらない。つまり、可用帯域を超えた送信レートで計測用パケットが送信されていたとしても、送信時のパケット間隔のまま受信器にパケットが到達してしまうことがある。このため、受信器で受信される計測用パケットの間隔に従って可用帯域を見積もると、ネットワークで許容される帯域よりも大きい帯域を可用帯域として誤って見積もってしまう。
【００２７】
実際の通信においては、計測用パケットの送信量よりも大きい送信量のパケットが連続して送信されることがある。この場合に、誤って見積もられた可用帯域に応じた送信レートでパケットを連続送信してしまうと、許容されるバーストサイズを超えるパケットが送信器から連続送信されてしまい、ネットワークに輻輳が発生してしまう。
【００２８】
なお、以上に述べたことは、バーストサイズは中継器のトークンバケットのその時点での蓄積量や最大値で定められる量であり、一方で可用帯域はトークンバケットに蓄えられるトークンのインクリメントの速度とその単位量とに依存する時間平均的な帯域であるため、過去の通信状況に依存するトークンの蓄積量に対して局所的な通信だけでは可用帯域を正確に計測できない場合があるということである。
【００２９】
また、計測用パケットの送信量がその時点で許容されるバーストサイズよりも大きい場合であっても、受信された計測用パケットの一部がバースト転送のために受信間隔がたまたま広がっていないにもかかわらず、受信された計測用パケット全ての受信間隔の平均値等により可用帯域を見積もってしまうと、ネットワークで許容される帯域よりも大きい帯域を可用帯域として見積もってしまう。
【００３０】
トークンの蓄積量はネットワークの通信履歴に応じた量となるため、上述のように見積もられた可用帯域に従って送信レートでパケットを送信すると、ネットワークで許容される帯域を超えるパケットが送信されることになる。つまり、中継器がバーストサイズを超えるパケットを受信することでパケットの廃棄処理が実行され、パケットの再送制御が発生し、通信効率が悪くなる。また、中継器に可用帯域を超えたパケットが入力されるため、同じ中継器を経由する他の通信にパケットロスを発生させる可能性も高まる。
【００３１】
上述したように、ネットワークの通信履歴に応じて変化するトークンの蓄積量によっては、ネットワークの可用帯域を超えたスループットでパケットがバースト転送されている期間がある。このような期間に転送されたパケットのスループットに従って回線計測が行われると、ネットワークの可用帯域を超えた帯域を可用帯域として誤って見積もってしまうことになる。誤って見積もられた可用帯域に従ってパケットが送信されると、ネットワークの可用帯域を超えた分のパケットに、パケットロスが生じることがある。
【００３２】
実施例によれば、受信されたパケット列において送信間隔よりもパケット間隔が広がった後の受信レートが中継器によってバースト転送されきった後の帯域制限に従っていることに着目し、バースト転送されたパケットと帯域制限に従って転送されたパケットとの境界を、受信パケットの受信レートやパケット間隔の変化により判定し、帯域制限に従って転送されたパケットの受信レートに応じてパケットを送信することで、バースト転送の許容量が変化してもパケットロスが抑制される。
【００３３】
図３に、実施例の送信器及び受信器のハードウェア構成の例が示される。上述したように、実施例の通信制御方法が実行される際の通信方向に従って実施例の送信器又は受信器に対応する端末装置１１、ＷＡＮ高速化装置１２、端末装置２２、及び、ＷＡＮ高速化装置２１の各々は、ＣＰＵ１、メモリコントローラ２、メモリ３、メモリバス４、ＩＯバスコントローラ５、ＮＩＣ６、及びＩＯバス７を含み、ＩＯバス７には記憶装置８が接続される。
【００３４】
メモリバス４に接続されたメモリ３には、実施例の送信器又は受信器の各種処理を実行するためのプログラムが格納されている。ＣＰＵ１は、メモリコントローラ２を介して、メモリ３からプログラムを読み出し、各種処理を実行する。ＣＰＵ１によって実行される各種処理の実行に伴い、メモリ３に対するデータの書き込み及び読み出しがメモリコントローラ２を介して実行される。
【００３５】
ＣＰＵ１は、ＩＯバスコントローラ５を介して、ＩＯバス７に接続されたＮＩＣ６にデータを転送し、また、ＮＩＣ６からデータやパケットを受け取る。ＣＰＵ１は、ＩＯバスコントローラ５を介して、ＩＯバス７に接続された記憶装置８からデータを読み出し、また記憶装置８にデータを書き込む。
【００３６】
ＣＰＵ１は、各種処理を実行するための１以上のＣＰＵコアを含んでいてもよい。また、各ＣＰＵコアは１以上のプロセッサを含んでいてもよい。メモリ３は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのＲＡＭである。記憶装置８は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリなどの不揮発性メモリ、又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気ディスク装置である。
【００３７】
なお、ＣＰＵ１、メモリコントローラ２、メモリ３、ＮＩＣ６、及び、記憶装置８が同じバスに接続された構成を実施例の送信器及び受信器に適用してもよい。図３に示されるハードウェア構成によって、図４〜６に示される機能ブロックが実現され、図９及び図１０に示される処理が実行される。
【００３８】
図４に、実施例の送信器及び受信器に適用される機能ブロックの例が示される。実施例の送信器及び受信器では、記憶装置８に格納されたプログラムが、ワーキングメモリとして使用されるメモリ３にロードされる。メモリ３にロードされたプログラムがＣＰＵ１によって実行されることにより、計測部１００、送信部２００及び受信部３００として機能する。計測部１００は送信部２００及び受信部３００と接続可能であり、送信部２００及び受信部３００はネットワーク３０を介して互いに接続可能である。なお、送信部２００は送信器に含まれ、受信部３００は受信器に含まれるが、計測部１００は送信器及び受信器の何れかに備えられてもよく、送信器及び受信器を制御する他の装置により実現されてもよい。
【００３９】
計測部１００は、計測制御部１１０、データベース１２０、可用帯域算出部１４１及びバーストサイズ算出部１４２を含む算出部１４０、及び判定部１３０の機能ブロックを有する。また、送信部２００は、送信制御部２１０及び送信処理部２２０の機能ブロックを有する。また、受信部３００や受信処理部３１０及び受信制御部３２０の機能ブロックを有する。
【００４０】
送信制御部２１０や、計測部１００に含まれる計測制御部１１０が設定手段の一例である。可用帯域算出部１４１が第１算出部の一例である。バーストサイズ算出部１４２が第２算出部の一例である。計測部１００に含まれる判定部１３０が判定手段の一例である。
【００４１】
なお、図４に示される各機能ブロックを図１に示される通信システムに適用した場合の適用例が図５及び図６に示される。また、各機能ブロックにより実行される処理が、図９及び図１０に示される処理と対応させて後述される。
【００４２】
図５に、実施例の機能ブロックの適用例が示される。図５に示されるように、送信部２００が例えばアプリケーションサーバに接続されたＷＡＮ高速化装置１２により実現される。加えて、計測部１００及び受信部３００が例えばクライアント端末に接続されたＷＡＮ高速化装置２１により実現される。例えば、ＷＡＮ高速化装置１２が送信器であり、ＷＡＮ高速化装置２１が受信器に相当する。なお、計測部１００がＷＡＮ高速化装置１２により実現されてもよく、また計測部１００がＷＡＮ高速化装置１２及び２１を制御する別の装置により実現されてもよい。
【００４３】
図６に、実施例の機能ブロックの他の適用例が示される。図６に示されるように、送信部２００が例えばアプリケーションサーバである端末装置１１により実現される。加えて、計測部１００及び受信部３００が例えばクライアント端末である端末装置２２により実現される。例えば、端末装置１１が送信器であり、端末装置２２が受信器に相当する。なお、計測部１００が端末装置２２により実現されてもよく、また計測部１００が端末装置１１及び２２を制御する別の装置により実現されてもよい。
【００４４】
図７に、実施例の送信器から送信され中継器に入力される計測用パケットの送信例が示される。実施例は図７の例示に限定されないが、例えば、一定のパケットサイズの計測用パケットが一定のパケット間隔をあけて送信部２００から送信され、中継器５０に入力される。この際に、送信部２００では、計測用パケットにシーケンス番号［ｋ］を付与する。このように送信された計測用パケットを含むパケット列が中継器５０に入力される。なお計測用パケットの送信期間、計測用パケットのパケットサイズ、及び計測用パケットの送信レートに従うパケット間隔等が、計測用パラメータとして、後述される処理９０１によりデータベース１２０に登録される。
【００４５】
なお、パケット列内の計測用パケットのパケット間隔が互いに等しくなくてもよい。中継器５０によりバースト転送された計測用パケットと帯域制限に従って転送された計測用パケットとの境界を判定できればよいため、送信時刻毎の互いに異なった送信間隔を記録して、記録された送信間隔を基準にその送信間隔とは異なる受信間隔となった受信時刻を境界であると判定してもよいからである。例えば、設定された送信レートを満たすのであれば、計測用パケットの送信間隔を周期的に変えるようにしてもよい。また、実際に送信される計測用パケットは送信処理上のジッタ等を含んでいる場合もあり、このジッタ等を上述の境界を判定する際の測定条件に加味してもよい。
【００４６】
図８に、実施例の受信器で受信される計測用パケットの受信例が示される。受信される計測用パケットである受信パケットには、受信された時刻順にタイムスタンプ［ｉ］が付与される。また、実施例では、受信順序だけでなく受信時刻自体の情報もタイムスタンプにより付与される。そのため、以下の記載において、［ｉ］によって受信順序ではなく受信時刻を示すことがある。なお、受信されるパケット列は、送信されたパケット列に含まれる計測用パケットの全てを含んでいる場合もあれば、ネットワーク内の中継器５０等におけるパケットロスにより送信された計測用パケットの全てを含んでいない場合もあるため、タイムスタンプ［ｉ］はシーケンス番号［ｋ］に必ずしも一致しない。
【００４７】
図８に示されるように、受信パケット［１］から受信パケット［ｌａｓｔ］までの計測用パケットを含むパケット列を受信するまでにかかる期間が受信期間であり、この受信期間に受信されるパケット数に応じて全体受信レートが定められる。なお、受信期間は、後述されるバースト期間及び帯域制限期間を含み、受信時刻［ｉ―１］と受信時刻［ｉ］との間が、バースト転送された計測用パケットとネットワークの帯域制限に従って転送された計測用パケットとの境界である。
【００４８】
受信パケット［１］から受信パケット［ｉ―１］までの計測用パケットを受信する期間がバースト期間であり、このバースト期間に受信されるパケット数に応じてバーストサイズが算出される。このバースト期間内に受信されるパケットの間隔は、中継器５０でバースト転送されているため、送信部２００から送信され中継器５０に入力される際の間隔と基本的に等しく、パケット間隔が広がっていない期間である。
【００４９】
受信パケット［ｉ］から受信パケット［ｌａｓｔ］までの計測用パケットを受信する期間が帯域制限期間であり、この帯域制限期間に受信されるパケット数に応じて可用帯域が算出される。帯域制限期間に受信される計測用パケットは、中継器５０におけるトークンに従ってパケット処理を施された計測用パケットであるため、パケットのドロップ、又はパケットのバッファリング遅延等により、受信間隔が送信間隔よりも広がっている場合がある。そして、この帯域制限期間に受信された計測用パケット自体がネットワークを介して到達できたパケットであるため、帯域制限期間における制限受信レートが可用帯域を表している。そして、送信部２００には、この制限受信レートに従った送信レートが設定されることとなる。
【００５０】
図９に、実施例の通信制御方法において実行される処理の例が示される。図９に示される処理は、送信器や受信器に含まれるメモリ３に読み込まれたプログラムに従って、ＣＰＵ１によって実行される。図９に示される処理は、処理９００により開始される。
【００５１】
計測用パラメータを登録する処理９０１が、計測制御部１１０によって実行される。処理９０１では、計測用の送信レートの初期値、計測用の送信期間、及び計測用パケットのサイズ等がデータベース１２０に登録される。なお、計測用の送信レートの初期値はネットワーク回線の最大帯域を下回るような条件で登録されることが好ましい。
【００５２】
登録されたパラメータに基づき、計測用の送信レートを設定する処理９０２が、計測制御部１１０によって実行される。処理９０２では、データベース１２０に登録された計測用の送信レートの初期値が設定される。
【００５３】
設定された計測用の送信レートがネットワーク回線の最大帯域を超えるか否かを判定する処理９０２が、計測制御部１１０によって実行される、処理９０２では、例えば、ネットワーク内の装置に含まれる中継器等に含まれる通信回路のＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）の許容帯域（例えば、１Ｇｂｐｓ、１０Ｇｂｐｓ等）がネットワーク回線の最大帯域として設定され、設定された最大帯域と処理９０２や処理９１４により設定された計測用の送信レートとが比較されることで、設定された計測用の送信レートがネットワーク回線の最大帯域を超えるか否かが判定される。処理９０２において、設定された計測用の送信レートがネットワーク回線の最大帯域を超えると判定された場合には処理９０４に移り、最大帯域を超えないと判定された場合には処理９０５に移る。
【００５４】
ネットワーク回線の最大帯域に応じた可用帯域及び許容バーストサイズがデータベース１２０に登録される処理９０４が、計測制御部１１０により実行される。処理９０４は、処理９０３によって、ネットワークの可用帯域としてネットワークの最大帯域を使用することができ、この最大帯域に従ってパケットを送信してもパケットロスが生じないと判定された上で実行される処理である。従って、例えば、ネットワーク回線の最大帯域が１０Ｇｂｐｓだと設定されていた場合、可用帯域が１０Ｇｂｐｓとして設定される。また、この場合、バースト転送が許容される時間が１秒であれば、許容バーストサイズは１０Ｇビットとして設定される。処理９０４が終了すると処理９２５に移る。
【００５５】
計測用パケットの数を算出する処理９０５が、送信制御部２１０によって実行される。処理９０５では、例えば、設定された計測用の送信レートと登録された送信期間との乗算により、登録された送信期間内に送信されるデータ量が算出される。算出されたデータ量が登録された計測パケットのサイズで除算されることにより、登録された送信期間内で送信レートが満たされるようなパケット数が算出される。
【００５６】
計測用パケットの送信数が最小のパケット数を超えるか否かを判定する処理９０６が、送信制御部２１０により実行される。処理９０６では、処理９０５で算出された計測用パケットの送信数が、例えば設定された最小のパケット数である１００と比較される。この場合、１００パケットを超えない場合に処理９０７に移り、計測用パケットの送信数が１００パケットを超える場合には処理９０８に移る。なお、実施例は１００パケットに限定されず、計測対象となるネットワーク構成や回線計測に応じた最小のパケット数が設定されればよい。
【００５７】
最小のパケット数を計測用パケットの送信数に設定する処理９０７が、送信制御部２１０によって実行される。処理９０７では、上述の例示の場合には、計測用パケットの送信数が例えば１００パケットに設定される。
【００５８】
計測用パケットの送信間隔を算出する処理９０８が、送信制御部２１０によって実行される。処理９０８では、例えば、登録された送信期間が計測用パケットの送信数によって除算されることにより、計測用パケットの送信間隔が算出される。また、登録された送信期間内において、設定された送信レートを満たす送信数の計測用パケットが送信されるのであれば、計測用パケットの送信間隔が等間隔でなくてもよい。例えば、計測用パケットの送信間隔を周期的に変化させてもよく、またはランダムな変化が伴っていてもよい。どのような送信間隔で計測用パケットが送信されているかに関する情報は、計測用パケットのシーケンス番号［ｋ］と共に、計測用パケットのうちバースト転送された計測用パケットとバースト転送されなかった計測用パケットとの境界を判定するための計測部１００に通知される。
【００５９】
実施例では、中継器でバースト転送された計測用パケットのパケット間隔が変化せず、バースト転送されきった直後に中継器から出力される計測用パケットがパケット間隔を変えて出力されることに着目し、バースト転送された計測用パケットとバースト転送されなかった計測用パケットの境界を判定する。この境界を判定するにあたって、計測用パケットの送信間隔と受信間隔との変化点が判定できればよいため、送信される計測用パケットの送信間隔が必ずしも等しい間隔である必要はない。なお、後述されるように、受信された計測用パケットの所定数毎の受信レートの変化点をバースト転送の境界と判定してもよく、この場合は等しい間隔で計測用パケットが送信される。
【００６０】
計測用パケットを含むパケット列を送信する処理９０９が、送信処理部２２０によって実行される。処理９０９では、登録されたパケットサイズの計測用パケットが、登録された送信期間において、処理９０８で算出された送信期間毎に送信される。送信される計測用パケット数は、処理９０５で算出された送信数または処理９０７で設定された最小のパケット数である。このパケット数の計測用パケットがパケット列に含まれる。なお、送信処理部２２０では、計測用パケットにシーケンス番号［ｋ］を付与し、パケット列の終わりを示すデリミタパケットをパケット列の最後に送信する。
【００６１】
パケット列を受信する処理９１０が、受信処理部３１０によって実行される。
【００６２】
受信されたパケット列に含まれる計測用パケットにタイムスタンプ［ｉ］を付与する処理９１１が、受信制御部３２０によって実行される。処理９１１では、受信した時刻順にタイムスタンプ［ｉ］を付与する。また、実施例では受信順序だけでなく受信時刻もタイムスタンプを付与する際に情報として付加する。そのため、以降の記載において受信時刻［ｉ］として受信順序ではなく受信時刻を示すことがある。なお、受信されるパケット列は、処理９０９により送信されたパケット列に含まれる計測用パケットの全てを含んでいる場合もあれば、ネットワーク内の中継器５０等におけるパケットロスにより計測用パケットの全てを含んでいない場合もあるため、タイムスタンプ［ｉ］はシーケンス番号［ｋ］に必ずしも一致しない。
【００６３】
受信されたパケット列の全体受信レートを算出する処理９１２が、算出部１４０によって実行される。処理９１２では、タイムスタンプ［ｉ］に基づいて全体の受信期間を算出し、算出された受信期間に受信した計測用パケットの数とパケットサイズに基づいて、図８にも示される全体受信レートが算出される。
【００６４】
図１０に、実施例の通信制御方法において実行される処理の他の例が示される。図１０に示される処理の例は、上述された図９に示される処理に続いて実行される処理である。
【００６５】
全体受信レートが設定された送信レートより小さいか否かを判定する処理９１３が、判定部１３０によって実行される。処理９１３では、処理９１２により算出された全体受信レートと送信制御部２１０により設定された送信レートとが比較されることで判定が実行される。処理９１３において、全体受信レートが設定された送信レートよりも小さくないと判定されると処理９１４に移り、全体受信レートが送信レートよりも小さいと判定されると処理９１５に移る。実施例では、バースト転送された計測用パケットと帯域制限に従って転送された計測用パケットの境界を判定するが、全体受信レートが設定された送信レートよりも小さくない場合は、帯域制限が施されずにパケットが転送された場合であるため、帯域制限が施されるよう送信レートを大きくして再計測を実行し、上記の境界を判定することとなる。
【００６６】
送信レートを大きくして再設定する処理９１４が、計測制御部１１０によって実行される。処理９１４では、例えば、設定された送信レートが所定倍されたり所定値が加算されたりすることによって設定値が大きくされる。処理９１４が終了すると処理９０３に移る。
【００６７】
判定用受信レートを算出する処理９１５が、算出部１４０によって実行される。処理９１５では、例えば、処理９１２により算出された全体受信レートと送信制御部２１０により設定された送信レートの平均値が判定用受信レートとして算出される。
【００６８】
ところで、バースト転送された計測用パケットはパケット間隔が広がらないため、送信間隔と同じ間隔の計測用パケットを受信することとなる。すなわち、送信レートと同じレートで計測用パケットを受信する。他方、処理９１２により算出された全体受信レートは、受信パケットのうち帯域制限を受けた期間の計測用パケットだけでなくバースト転送された期間の計測用パケットにより定まる受信レートのため、受信期間やパケットサイズにも依存するが、帯域制限に従う受信レートよりも大きい。実施例は判定用受信レートに限定されないが、送信間隔よりも間隔をあけて受信される計測用パケットの受信時刻を判定するために、すなわち、バースト転送された計測用パケットと帯域制限に従って転送された計測用パケットの境界を判定するために、上述の判定用受信レートが使用される。
【００６９】
タイムスタンプ［ｉ］を１に設定する処理９１６が、算出部１４０によって実行される。
【００７０】
部分受信レートを算出する処理９１７が、算出部１４０によって実行される。処理９１７では、部分受信レートの対象期間を定める“ｊ”が設定される。計測用パケットのうち、受信時刻［ｉ＋ｊ］から受信時刻［ｉ］までの期間と、この期間に受信した計測用パケットの数“Ｊ＋１”と、設定されたパケットサイズに基づいて、部分受信レートが算出される。
【００７１】
部分受信レートが判定用受信レートよりも小さいか否かを判定する処理９１８が判定部１３０によって実行される。処理９１８では、処理９１７により算出された部分受信レートと処理９１５により算出された判定用受信レートとが比較される。部分受信レートが判定用受信レートよりも小さくなる場合に、送信間隔よりも間隔をあけて受信される計測用パケットが特定されたこととなる。すなわち、バースト転送された計測用パケットと帯域制限に従って転送された計測用パケットの境界が特定されることになる。そして、この条件が満たされる場合の受信時刻［ｉ］が境界時刻とする。処理９１８において部分受信レートが判定用受信レートよりも小さくないと判定された場合には処理９１９に移り、部分受信レートが判定用受信レートよりも小さいと判定され場合には処理９２０に移る。
【００７２】
タイムススタンプ［ｉ］の値を大きくする処理９１９が、算出部１４０によって実行される。処理９１９では、例えば、タイムスタンプ［ｉ］の値を１だけ増加させる。
【００７３】
受信されたパケット列において、バースト転送された計測用パケットと帯域制限に従って転送された計測用パケットとの境界をタイムスタンプ［ｉ］に設定する処理９２０が、算出部１４０によって実行される。なお、この境界の設定については、処理９１８の判定に限定されず、受信したパケット列において、受信された計測用パケットのパケット間隔を測定し、測定されたパケット間隔と送信間隔とを比較することでパケット間隔が広がる受信時刻を特定し、これを境界として設定してもよい。また、受信された計測用パケットのパケット間隔を測定し、このうち基準となるパケット間隔よりもパケット間隔が所定量（例えば２倍など）大きく広がる受信時刻を特定し、これを境界として設定してもよい。
【００７４】
境界となるタイムスタンプ［ｉ］に基づいて、ネットワークの可用帯域を算出する処理９２１が、可用帯域算出部１４１によって実行される。処理９２１では、受信時刻［ｉ］からパケット列の最後の計測用パケットを受信した時刻までの受信期間と、その受信期間内の計測用パケット数と、登録されたパケットサイズに基づいて、その受信期間に対応する制限受信レートが算出される。受信時刻［ｉ］以降に受信した計測用パケットは、バースト転送されきった後の帯域制限に従って転送されることができたパケットであるため、この制限受信レートに従ってパケットを送信すれば、バースト転送の許容量が変化してもパケットロスのない通信が可能となる。すなわち、この制限受信レートをネットワークの可用帯域と設定してよい。
【００７５】
算出された可用帯域をデータベースに登録する処理９２２が、算出部１４０によって実行される。処理１４０により、データベース１２０に可用帯域が登録される。
【００７６】
境界となるタイムスタンプ［ｉ］に基づいて、許容バーストサイズを算出する処理９２３が、バーストサイズ算出部１４２によって実行される。処理９２３では、パケット列において受信時刻［１］から受信時刻［ｉ―１］までの期間と、その期間に受信したパケット数“ｉ―１”と、登録されたパケットサイズとに基づいて、バースト受信レートが算出される。そして、バースト受信レートから制限受信レートを減算した場合の差分に、受信時刻［１］から受信時刻［ｉ―１］までの受信時間を乗算することで、許容バーストサイズが算出される。なお、この許容バーストサイズは、後述される図１２の一点鎖線で囲まれた部分の面積に相当する。
【００７７】
算出された許容バーストサイズをデータベースに登録する処理９２４が、算出部１４０によって実行される。処理９２４により、データベース１２０に許容バーストサイズが登録される。
【００７８】
データベースに登録された情報に基づき送信条件を設定する処理９２５が、送信制御部２１０によって実行される。処理９２５では、処理９２１で算出された可用帯域や、処理９２３で算出された許容バーストサイズが計測制御部１１０から送信制御部２１０に通知され、設定手段としての送信制御部２１０により設定される。これにより、送信部２００は、ネットワークの可用帯域を満たす送信レートでパケットを送信することとなり、通信が高効率かつ安定して実行される。
【００７９】
なお、図１１に示される許容バーストサイズに従ったパケットの送信例のように、処理９２５により設定された送信条件に従い、例えば、可用帯域で定まる期間毎に許容バーストサイズに従うパケットを連続転送してもよい。これは、許容バーストサイズに従ったパケットを連続送信した後、可用帯域で定まる期間待機し、再び許容バーストサイズに従ったパケットを連続転送する送信制御である。この送信制御に従ってパケットが送信されても、時間平均として可用帯域を超えたパケットは送信されないため、ネットワークが許容する範囲内の通信が実行されることとなる。
【００８０】
図１２に、受信された計測用パケットとバーストサイズ及び可用帯域との関係が示される。図１２には、図８に示されるパケット列の各受信期間での受信レートとなるスループットの時間変化が示される。
【００８１】
受信時刻［１］から受信時刻［ｉ―１］までのバースト期間のスループットが、スループットの時間変化が示されるグラフの縦軸のＡで示される値に対応し、この値が上述されたバースト受信レートである。そして、バーストサイズは、一点鎖線で囲まれた部分の面積となり、この面積が図１０の処理９２３により算出される。
【００８２】
図１２の一点鎖線で示されるバーストサイズ分のパケットがバースト転送しきった後は、中継器による帯域制限内でパケットが転送される。すなわち、送信されるパケットが中継器の帯域制限以上の送信レートで送信されたとしても、帯域制限が施されたスループットで受信される。従って、帯域制限内で転送されることができたスループットである値Ｂが可用帯域に対応する。そして、Ｂで示される値は、図１０の処理９２１における制限受信レートにより算出される。なお、図１０の処理９１５で算出され判定用受信レートは、スループットの時間変化が示されるグラフの縦軸のＣで示される値に対応する。
【００８３】
実施例によれば、受信されたパケット列において送信間隔よりもパケット間隔が広がった後の受信レートが中継器によりバースト転送されきった後の帯域制限に従っていることに着目し、バースト転送されたパケットと帯域制限に従って転送されたパケットとの境界を受信パケットの受信レートやパケット間隔の変化により判定し、帯域制限に従って転送されたパケットの受信レートに応じてパケットを送信することで、バースト転送の許容量が変化してもパケットロスが抑制される。
【符号の説明】
【００８４】
１            ＣＰＵ
２            メモリコントローラ
３            メモリ
４            メモリバス
５            ＩＯバスコントローラ
６            ＮＩＣ
７            ＩＯバス
８            記憶装置
１０、２０    コンピュータネットワーク
１１、２２    端末装置
１２、２１    ＷＡＮ高速化装置
３０、４０    ネットワーク
５０          中継器
５１          トークンバケット
１００        計測部
１１０        計測制御部
１２０        データベース
１３０        判定部
１４０        算出部
１４１        可用帯域算出部
１４２        バーストサイズ算出部
２００        送信部
２１０        送信制御部
２２０        送信処理部
３００        受信部
３１０        受信処理部
３２０        受信制御部
【図１】
2014165552.tif 000003
【図２】
2014165552.tif 000004
【図３】
2014165552.tif 000005
【図４】
2014165552.tif 000006
【図５】
2014165552.tif 000007
【図６】
2014165552.tif 000008
【図７】
2014165552.tif 000009
【図８】
2014165552.tif 000010
【図９】
2014165552.tif 000011
【図１０】
2014165552.tif 000012
【図１１】
2014165552.tif 000013
【図１２】
2014165552.tif 000014