(57)【要約】【課題】  より適切に輻輳制御を行う。【解決手段】  中継機１０は、送信機２０から送信されたデータパケットを中継する機能を有し、処理の負荷を監視する負荷監視部１２と、負荷の値が閾値以下か否かを判断する判断部１３と、閾値以下と判断された場合に送信機２０に対する指示送信速度を算出する送信速度算出部１４と、データパケットに含まれる情報から特定される送信速度と、算出された指示送信速度とを比較する比較部１６と、データパケットの送信速度に関する情報を更新する送信速度更新部１７と、を備える。送信機２０は、データパケットを送信する機能を有し、ネットワークの輻輳状態を測定する輻輳状態測定部２３と、輻輳状態及びＡｃｋに含まれる指示送信速度情報等に基づいて送信速度を決定する送信速度決定部２４と、を備える。【選択図】  図２
2005303745.tif 000002
【特許請求の範囲】
【請求項１】
送信機からネットワークを介して送信されたデータパケットを中継する中継機であって、
前記データパケットを受信するデータパケット受信手段と、
前記中継機における処理の負荷を監視する負荷監視手段と、
前記負荷監視手段により監視された負荷の値が予め設定された閾値以下か否かを判断する判断手段と、
前記判断手段により閾値以下と判断された場合に、所定の基準に基づいて、前記送信機に対する指示送信速度を算出する送信速度算出手段と、
前記データパケット受信手段により受信されたデータパケットに含まれる送信速度に関する情報を取得する送信速度取得手段と、
前記送信速度取得手段により取得された情報から特定される取得送信速度と、前記送信速度算出手段により算出された指示送信速度とを比較する比較手段と、
前記比較手段により、当該算出された指示送信速度が前記取得送信速度よりも小さいとされた場合に、当該算出された指示送信速度の情報をもって前記データパケットの送信速度に関する情報を更新する送信速度更新手段と、
前記データパケットを所定の送信先に送信するデータパケット送信手段と、
を備える中継機。
【請求項２】
ネットワークを介してデータパケットを送信する送信機であって、
Ａｃｋを受信するＡｃｋ受信手段と、
前記Ａｃｋ受信手段により受信されたＡｃｋに含まれる指示送信速度に関する情報を取得する送信速度取得手段と、
前記Ａｃｋ受信手段による受信の状況に基づいて前記ネットワークの輻輳状態を測定する輻輳状態測定手段と、
前記輻輳状態測定手段により測定された前記ネットワークの輻輳状態、前記送信速度取得手段により取得された指示送信速度に関する情報、及び所定の基準に基づいて前記データパケットの送信速度を決定する送信速度決定手段と、
前記送信速度決定手段により決定された送信速度で、前記送信速度書込手段により所定の送信速度が書き込まれたデータパケットを送信するデータパケット送信手段と、
を備える送信機。
【請求項３】
送信機からネットワークを介して送信されたデータパケットを中継する中継機における輻輳制御方法であって、
前記中継機における処理の負荷を監視する負荷監視ステップと、
前記負荷監視ステップにおいて監視された負荷の値が予め設定された閾値以下か否かを判断する判断ステップと、
前記判断ステップにおいて閾値以下と判断された場合に、所定の基準に基づいて、前記送信機に対する指示送信速度を算出する送信速度算出ステップと、
中継すべきデータパケットに含まれる送信速度に関する情報を取得する送信速度取得ステップと、
前記送信速度取得ステップにおいて取得された情報から特定される取得送信速度と、前記送信速度算出ステップにおいて算出された指示送信速度とを比較する比較ステップと、
前記比較ステップにおいて、当該算出された指示送信速度が前記取得送信速度よりも小さいとされた場合に、当該算出された指示送信速度の情報をもって前記中継すべきデータパケットの送信速度に関する情報を更新する送信速度更新ステップと、
を備える輻輳制御方法。
【請求項４】
ネットワークを介してデータパケットを送信する送信機における輻輳制御方法であって、
Ａｃｋを受信するＡｃｋ受信ステップと、
前記Ａｃｋ受信ステップにおいて受信されたＡｃｋに含まれる指示送信速度に関する情報を取得する送信速度取得ステップと、
前記Ａｃｋ受信ステップにおける受信の状況に基づいて前記ネットワークの輻輳状態を測定する輻輳状態測定ステップと、
前記輻輳状態測定ステップにおいて測定された前記ネットワークの輻輳状態、前記送信速度取得ステップにおいて取得された指示送信速度に関する情報、及び所定の基準に基づいて前記データパケットの送信速度を決定する送信速度決定ステップと、
前記送信速度決定ステップにおいて決定された送信速度で、前記送信速度書込手ステップにおいて所定の送信速度が書き込まれたデータパケットを送信するデータパケット送信ステップと、
を備える輻輳制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してデータパケットを送信する送信機、当該データパケットを中継する中継機、並びに当該送信機及び当該中継機における輻輳制御方法に関する。
【背景技術】
【０００２】
従来から、ネットワークの帯域を有効に利用し、またネットワークの輻輳を回避するための輻輳制御技術として、エンド制御型の輻輳制御とネットワーク型の輻輳制御とが提案されている。
【０００３】
エンド制御型の輻輳制御技術であるＴＣＰ（Transmission Control Protocol）に基づいた輻輳制御では、データパケットを送信した送信機（エンドノード）がデータパケットの到達確認やパケット伝搬時間の変動監視等を行っている。送信機は送信開始時には遅い送信速度でデータパケットを送信し、データパケット伝搬時間が小さい間は送信速度を徐々に増加させる。ネットワークに輻輳が発生すると、輻輳に伴うパケットロスや伝搬遅延が発生する。このような場合、送信機は上記の監視により輻輳を検知し、データパケットの送信速度を低下させることにより輻輳制御を行う（例えば、下記の非特許文献１参照）。
【０００４】
一方、ネットワーク制御型の輻輳制御技術である、ＡＴＭ（Asynchronous Transfer mode）におけるＡＢＲ（Available Bit Rate）に基づいた輻輳制御や、ＸＣＰ（Explicit Control Protocol）に基づいた輻輳制御では、ネットワーク中の中継機（例えばルータやＡＴＭスイッチ等）が当該中継機自身の負荷を監視している。そして当該中継機自身の負荷が低すぎる場合又は高すぎる場合に、送信機にデータ送信速度の変更を指示することで輻輳制御を行う。送信機への指示方法としては、送信機が送信したデータパケットを中継する際に、データパケットに適切な送信速度に関する情報を書き加え、受信機がその速度情報を送信機に返信する方法が一般的である（例えば、下記非特許文献２及び３参照）。
【非特許文献１】Ｗ．リチャード・スティーヴンス，“詳解ＴＣＰ／ＩＰ  Ｖｏｌ．１”，ピアソン・エデュエーション，２００２
【非特許文献２】川原亮一，小沢利久，“ＡＢＲの重み付け帯域割当てを用いたＩＰスループット最低保証のためのトラヒック制御方式”，電子情報通信学会誌，１９９９年５月
【非特許文献３】Dina Katabi,Mark Handly,and Chalrie Rohrs，“Congestion Control for High Bandwidth-Delay Product Networks”proceedings on ACM Sogcomm 2002．
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、エンド制御型の輻輳制御では、ネットワークに輻輳が発生していない場合には輻輳に伴うパケットロスや伝搬遅延は発生せず、送信機は「ネットワークは輻輳しつつあるのか」、「どの程度送信速度を増加させると輻輳が発生するか」といった情報を得ることができない。従って、適切なデータ送信速度に達するまでに非常に長い時間を要する場合や、急激にデータ送信速度を増加させネットワークに大きな輻輳を生じさせる場合がある。
【０００６】
また、ネットワーク制御型の輻輳制御では、中継機はデータパケットの送信に加え、送信機の適切な送信速度の決定、及び送信機への送信速度指示等の輻輳制御に関する処理を行うこととなる。従って、輻輳時には中継機は当該輻輳制御処理によりデータ中継能力が圧迫され、輻輳を更に悪化させる危険性がある。
【０００７】
本発明は上記課題を解決するためになされたものであり、より適切に輻輳制御を行うことができる中継機、送信機及び輻輳制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係る中継機は、送信機からネットワークを介して送信されたデータパケットを中継する中継機であって、データパケットを受信するデータパケット受信手段と、中継機における処理の負荷を監視する負荷監視手段と、負荷監視手段により監視された負荷の値が予め設定された閾値以下か否かを判断する判断手段と、判断手段により閾値以下と判断された場合に、所定の基準に基づいて、送信機に対する指示送信速度を算出する送信速度算出手段と、データパケット受信手段により受信されたデータパケットに含まれる送信速度に関する情報を取得する送信速度取得手段と、送信速度取得手段により取得された情報から特定される取得送信速度と、送信速度算出手段により算出された指示送信速度とを比較する比較手段と、比較手段により、当該算出された指示送信速度が取得送信速度よりも小さいとされた場合に、当該算出された指示送信速度の情報をもって前記データパケットの送信速度に関する情報を更新する送信速度更新手段と、データパケットを所定の送信先に送信するデータパケット送信手段と、を備えることを特徴とする。
【０００９】
本発明に係る中継機は、負荷監視手段手段により監視された中継機における処理の負荷に基づいて輻輳制御を行う。従って、輻輳により中継機の負荷が高い場合等には、中継機はデータパケットの中継に専念することができ、より速い輻輳状態の解消が可能となる。
【００１０】
また、輻輳状態になく中継機の処理能力に余裕がある場合等は、中継機で、送信速度を算出し、その速度がデータパケット受信手段により受信したデータパケットに含まれる情報に係る送信速度より小さい場合、当該算出された送信速度をもってデータパケットの送信速度に関する情報を更新する。送信機は当該送信速度に関する情報を参照し、送信速度を決定することができるので、適切なデータ送信速度に速やかに達することができる。
【００１１】
このように本発明の中継機によれば、より適切に輻輳制御を行うことができる。
【００１２】
上記目的を達成するために、本発明に係る送信機は、ネットワークを介してデータパケットを送信する送信機であって、Ａｃｋ（Acknowledgement）を受信するＡｃｋ受信手段と、Ａｃｋ受信手段により受信されたＡｃｋに含まれる指示送信速度に関する情報を取得する送信速度取得手段と、Ａｃｋ受信手段による受信の状況に基づいて前記ネットワークの輻輳状態を測定する輻輳状態測定手段と、輻輳状態測定手段により測定された前記ネットワークの輻輳状態、前記送信速度取得手段により取得された指示送信速度に関する情報、及び所定の基準に基づいてデータパケットの送信速度を決定する送信速度決定手段と、送信速度決定手段により決定された送信速度で、送信速度書込手段により所定の送信速度が書き込まれたデータパケットを送信するデータパケット送信手段と、を備えることを特徴とする。
【００１３】
ここで、Ａｃｋとは、情報処理装置間の通信において、送信先の装置から送信元の装置へ送信される肯定的な返事のことである。データ送信が正常に終了したとき等に送信される。
【００１４】
本発明に係る送信機は、Ａｃｋの受信の状況に基づいてネットワークの輻輳状態を測定し、当該輻輳状態に関する情報とＡｃｋに含まれる指示送信速度に関する情報とに基づいて、輻輳を回避し且つ適切な送信速度でデータパケットを送信することが可能となる。
【００１５】
このように本発明の送信機によれば、より適切に輻輳制御を行うことができる。
【００１６】
ところで、本発明は、上記のように装置の発明として記述できる他に、以下のように輻輳制御方法の発明としても記述することができる。これはカテゴリーが異なるだけで、実質的に同一の発明であり、同様の作用・効果を奏する。
【００１７】
本発明に係る輻輳制御方法は、送信機からネットワークを介して送信されたデータパケットを中継する中継機における輻輳制御方法であって、中継機における処理の負荷を監視する負荷監視ステップと、負荷監視ステップにおいて監視された負荷の値が予め設定された閾値以下か否かを判断する判断ステップと、判断ステップにおいて閾値以下と判断された場合に、所定の基準に基づいて、送信機に対する指示送信速度を算出する送信速度算出ステップと、中継すべきデータパケットに含まれる送信速度に関する情報を取得する送信速度取得ステップと、送信速度取得ステップにおいて取得された情報から特定される取得送信速度と、送信速度算出ステップにおいて算出された指示送信速度とを比較する比較ステップと、比較ステップにおいて、当該算出された指示送信速度が取得送信速度より小さいとされた場合に、当該算出された指示送信速度の情報をもって中継すべきデータパケットの送信速度に関する情報を更新する送信速度更新ステップと、を備えることを特徴とする。
【００１８】
また、輻輳制御方法は、ネットワークを介してデータパケットを送信する送信機における輻輳制御方法であって、Ａｃｋを受信するＡｃｋ受信ステップと、Ａｃｋ受信ステップにおいて受信されたＡｃｋに含まれる指示送信速度に関する情報を取得する送信速度取得ステップと、Ａｃｋ受信ステップにおける受信の状況に基づいて前記ネットワークの輻輳状態を測定する輻輳状態測定ステップと、輻輳状態測定ステップにおいて測定されたネットワークの輻輳状態、送信速度取得ステップにおいて取得された指示送信速度に関する情報、及び所定の基準に基づいてデータパケットの送信速度を決定する送信速度決定ステップと、送信速度決定ステップにおいて決定された送信速度で、送信速度書込手ステップにおいて所定の送信速度が書き込まれたデータパケットを送信するデータパケット送信ステップと、を備えることを特徴とする。
【発明の効果】
【００１９】
上記のように、本発明によれば、中継機における処理の負荷に基づいて、より適切に輻輳制御を行うことができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照しながら本発明の実施形態について説明する。
【００２１】
図１に本実施形態におけるシステムの構成図を示す。中継機１０ａ，１０ｂは、相互に接続することにより、送信機２０から送信されたデータパケットを所定のルートに従い中継する。送信機２０は、中継機１０ａ，１０ｂを経由して、受信機３０にデータパケットを送信する。受信機３０は、送信機２０から送信されたデータパケットを正常に受信したとき、送信機２０にＡｃｋを送信する。なお、通常、中継機、送信機及び受信機の何れも複数存在しているが、説明をわかり易くするため、中継機２台、送信機及び受信機各１台の例で説明する。また、多数の中継機は相互に接続することにより、例えばインターネット網等のネットワークを形成している。
【００２２】
図２に本実施形態における中継機１０（中継機１０ａ，１０ｂの総称）の機能構成図を示す。中継機１０は、データパケット受信部１１と、負荷監視部１２と、判断部１３と、送信速度算出部１４と、送信速度取得部１５と、比較部１６と、送信速度更新部１７と、データパケット送信部１８とを備える。中継機１０は、具体的には例えば、ＣＰＵ、メモリ、及び入出力インターフェース等から構成され、通信機能を有するルータ装置やＡＴＭスイッチ装置等が該当する。以下、中継機１０の各機能について説明する。
【００２３】
データパケット受信部１１は、送信機２０あるいは別の中継機１０により送信されたデータパケットを受信する。
【００２４】
負荷監視部１２は、中継機１０における処理の負荷を監視する。処理の負荷とは、中継機１０がデータパケットの中継を行うために必要な処理能力に対する負荷であり、具体的にはＣＰＵの負荷、及び出力インターフェースを経由するトラフィック量等を当該負荷として用いることが好ましい。監視された負荷の値は、中継機１０に負荷情報データベースを保持させておき、当該データベースのテーブルに格納することが好ましい。データベースのテーブルは具体的には例えば図３に示すように、監視された時刻、並びに負荷の値としてＣＰＵ負荷及びトラフィック量をそれぞれ記憶する。ここで、ＣＰＵ負荷はＣＰＵにおける最大処理能力のうちの使用率（単位は％）で表され、トラフィック量は単位時間あたりに入出力インターフェースを通過したデータ量（単位はＭｂｐｓ）で表されることが好ましい。
【００２５】
判断部１３は、予め設定された閾値を保持しており、負荷監視部１２により監視された負荷の値を読出し、当該負荷の値が当該閾値以下か否かを判断する。ここで閾値は、中継機１０における処理能力の適切に輻輳制御が行える最大の値、即ち中継機１０で輻輳制御を行っても輻輳を悪化させることがない最大の値を設定するのが好ましい。具体的には、例えばＣＰＵ負荷においては、ＣＰＵの最大処理可能量、トラフィック量においては、入出力インターフェースの最大通過量に設定するのが好ましい。上記２つの値を同時に用いる場合は、両方が閾値以下であるか否かを判断することが好ましい。閾値が適切な値に設定されていると、判断部１３により負荷の値が閾値以下であると判断される場合というのは、中継機１０において遅延等がなく適切に中継処理及び輻輳制御が行うことができる場合となる。
【００２６】
送信速度算出部１４は、判断部１３により負荷の値が閾値以下であると判断された場合に、所定の基準に基づいて、送信機２０に対する指示送信速度を算出する。指示送信速度は、送信機２０のデータパケットの送信における適切な送信速度を指示する値である。従って、当該所定の基準は負荷の値や中継機１０の処理能力から輻輳が発生しないレベルでなるべく大きい指示送信速度の値が算出される基準とするのが好ましく、具体的には後述する。ここで算出する指示送信速度は、具体的には例えば単位時間あたりに送信機２０から送信されるデータ量（単位はＭｂｐｓ）とすることが好ましい。
【００２７】
送信速度取得部１５は、データパケット受信部１１により受信されたデータパケットを読出し、データパケットに含まれる送信速度に関する情報を取得する。ここでデータパケットに含まれる送信速度は、具体的には例えば単位時間あたりに送信機２０から送信されるデータ量（単位はＭｂｐｓ）であることが好ましい。
【００２８】
比較部１６は、送信速度取得部１５により取得された送信速度に関する情報と、送信速度算出部１４により算出された指示送信速度に関する情報とをそれぞれ読み出し、両者を比較する。比較部１６は、比較により指示送信速度の方が小さいと判断すると、その旨の情報及び算出された指示送信速度を送信速度更新部１７に送信する。
【００２９】
送信速度更新部１７は、算出された指示送信速度の方が小さい旨の情報を受信すると、データパケット受信部１１により受信されたデータパケットを読出し、上記の情報と共に受信した算出された指示送信速度をもってデータパケットの送信速度に関する情報を更新する。
【００３０】
データパケット送信部１８は、送信速度更新部１７により更新された場合は、更新されたデータパケットを、更新されなかった場合は、データパケット受信部１１により受信されたそのままのデータパケットを所定のルートに従い送信する。
【００３１】
図４に本実施形態における送信機２０の機能構成図を示す。送信機２０は、Ａｃｋ受信部２１と、送信速度取得部２２と、輻輳状態測定部２３と、送信速度決定部２４と、送信速度書込部２５と、データパケット送信部２６とを備える。送信機２０は、具体的には例えば、ＣＰＵ、メモリ、及び入出力インターフェース等から構成され、通信機能を有するパソコン等が該当する。以下、送信機２０の各機能について説明する。
【００３２】
Ａｃｋ受信部２１は、データパケットを受信機３０に送信したことにより、受信機３０から送られるＡｃｋを受信する。
【００３３】
送信速度取得部２２は、Ａｃｋ受信部２１により受信されたＡｃｋを読出し、当該Ａｃｋに含まれる指示送信速度に関する情報を取得する。Ａｃｋ受信部２１による受信状況、及び送信速度取得部２２により取得された指示送信速度に関する情報は、送信機２０にＡｃｋデータベースを保持させておき、当該データベースのテーブルに格納することが好ましい。当該テーブルは具体的には例えば図５に示すように、データパケット及びＡｃｋを特定するためのデータシーケンス番号、Ａｃｋ受信状況、データ伝搬時間、並びに指示送信速度をそれぞれ記憶する。データ伝搬時間は、データパケットを送信してから当該データパケットに対応するＡｃｋを受信するまでの時間のことであり、ネットワークの輻輳状態を測定するための一つのデータとして用いられうる。データ伝搬時間は、ミリ秒の単位のデータとして記憶することが好ましい。
【００３４】
輻輳状態測定部２３は、上記のＡｃｋデータベース等に記憶されているデータ等を参照してネットワークの輻輳状態を測定する。具体的には例えば、データパケットを送信してから一定時間Ａｃｋの受信がないこと（パケットロスが発生したこと）及びデータ伝搬時間等を測定することが好ましい。
【００３５】
送信速度決定部２４は、輻輳状態測定部２３により測定された輻輳状態の情報及び送信速度取得部２２により取得された指示送信速度に関する情報を読出し、これらの情報から所定の基準に基づいて、次に送信するデータパケットの送信速度を決定する。当該所定の基準は、輻輳が発生しないような送信速度にする基準であり、具体的には後述する。
【００３６】
送信速度書込部２５は、送信するデータパケットに所定の送信速度に関する情報を書き込む。ここで、所定の送信速度に関する情報は、中継機１０等において送信速度を制御する際に用いられる情報であり、係る送信速度は送信機２０が快適な通信を行うのに十分な送信速度、例えば送信機２０の送信能力の限界値とするのがよい。なお、ここでデータパケットに書き込まれる情報に係る送信速度と実際に送信される送信速度とは、直接は関係していない。
【００３７】
データパケット送信部２６は、送信速度決定部２４により決定された送信速度に関する情報を読出し、当該送信速度でデータパケットを送信する。
【００３８】
図６に本実施形態における受信機３０の機能構成図を示す。受信機３０は、データパケット受信部３１と、指示送信速度コピー部３２と、Ａｃｋ送信部３３とを備える。受信機３０は、具体的には例えば、ＣＰＵ、メモリ、及び入出力インターフェース等から構成され、通信機能を有するパソコン等が該当する。なお、機能の説明上、送信機２０と受信機３０とを別々の装置として記載しているが、通常、１つの装置で送信機２０、受信機３０双方の機能を果たす。以下、受信機３０の各機能について説明する。
【００３９】
データパケット受信部３１は、送信機２０により送信されたデータパケットを中継機１０経由で受信する。
【００４０】
指示送信速度コピー部３２は、受信したデータパケットに含まれる送信速度に関する情報を読出し、当該情報を送信機２０に対する指示送信速度としてＡｃｋにコピーする。
【００４１】
Ａｃｋ送信部３３は、指示送信速度に関する情報を含んだＡｃｋを送信機２０に送信する。
【００４２】
次に、図７〜９のフローチャートを用いて、本実施形態において中継機１０、送信機２０及び受信機３０により実行される処理、及び効果について説明する。本実施形態における処理は、送信機２０によるデータパケットの送信、中継機１０によるデータパケットの中継、受信機３０によるデータパケットの受信、及びＡｃｋの送信、並びに送信機２０によるＡｃｋの受信、及び送信速度の決定という流れで行われる。上記の各処理について、装置毎に分けて説明を行う。以下、中継機１０によるデータパケットの中継について図７を用いて、受信機３０によるデータパケットの受信、及びＡｃｋの送信について図８を用いて、送信機２０によるＡｃｋの受信、及び送信速度の決定について図９を用いて、それぞれ説明する。
【００４３】
まず、送信機２０によりデータパケットが送信された中継機１０における処理の説明を図７のフローチャートを用いて行う。なお、ここで送信されるデータパケットには、予め送信機２０によって、送信速度に関する情報が含められているものとする。
【００４４】
ところで、中継機１０では、負荷監視部１２が中継機１０における処理の負荷を監視している。負荷の監視は、具体的には上述したように、ＣＰＵの処理能力や入出力インターフェースを通過するデータ量を監視することにより行われる。監視された負荷の値は、図３に示すような負荷情報データベースのテーブルに格納されるのが好ましい。なお、負荷監視部１２による負荷の監視は、一定時間毎など適当なタイミングで行われるのが好ましいが、データパケットを中継するタイミング等で行われてもよい。
【００４５】
送信機２０によりデータパケットが送信された中継機１０では、データパケット受信部１１が当該データパケットを受信する（Ｓ０１）。
【００４６】
続いて、判断部１３が、負荷監視部１２により監視された負荷の値を読出し、当該負荷の値が閾値以下か否かを判断する（Ｓ０２）。ここで負荷が閾値以下か否かを判断するのは、中継機１０の処理能力に輻輳制御を行える余裕があるか否かで異なる処理をするためである。ここで、負荷の値が閾値をこえるものであった場合、データパケット受信部１１により受信されたデータパケットは、そのまま所定のルートに従いデータパケット送信部１８により送信される（Ｓ０７）。
【００４７】
負荷の値が閾値以下であった場合、送信速度算出部１４が負荷の値及び所定の基準に基づいて送信機２０に対する指示送信速度を算出する（Ｓ０３）。上述したように、指示送信速度は、送信機２０でのデータパケットの送信における適切な送信速度である。従って、上記所定の基準は、具体的には例えば自身を経由してデータパケットの中継を行う送信機２０の数を記憶しておき、最大処理量をその数で割ることにより指示送信速度を決定する基準（例えば入出力インターフェースの最大通過量が１００Ｍｂｐｓで、送信機の数が１０のとき、最大通過量／送信機の数（１００／１０）で１０Ｍｂｐｓを指示送信速度とする）等が好ましい。また、送信機２０から送信されたときの送信速度を基準として、そこから一定値を増減させるという基準でもよい。また、最大処理量が十分に大きい中継機１０の場合、一定値（例えば１０Ｍｂｐｓ）にする基準でもよい。また、中継機１０の負荷の値を考慮して指示送信速度を決定する基準としてもよい。
【００４８】
続いて、送信速度取得部１５が、データパケット受信部１１により受信されたデータパケットを読出し、データパケットに含まれる送信速度に関する情報を取得する（Ｓ０４）。
【００４９】
続いて、比較部１６が、送信速度取得部１５により取得された送信速度に関する情報と、送信速度算出部１４により算出された指示送信速度に関する情報とをそれぞれ読み出し、両者を比較する（Ｓ０５）。ここで、算出された指示送信速度の方が大きかった場合又は同一の速度であった場合、データパケット受信部１１により受信されたデータパケットは、そのまま所定のルートに従いデータパケット送信部１８により送信される（Ｓ０７）。
【００５０】
算出された指示送信速度の方が小さかった場合、送信速度更新部１７が、データパケット受信部１１により受信されたデータパケットを読出し、算出された指示送信速度をもってデータパケットの送信速度に関する情報を更新する（Ｓ０６）。上記の処理により、データパケットに含まれる情報に係る送信速度の値は、大きく算出された指示送信速度の値となる。ここで、算出された指示送信速度は中継機１０にとり理想的な送信速度であるといえるので、受信時にデータパケットに含まれていた情報に係る送信速度が、送信機２０にとり理想的な送信速度であるとすると、中継機１０から送信される時点では、データパケットに含まれる情報に係る送信速度は、中継機１０にとって理想的な送信速度及び送信機２０にとって理想的な送信速度の何れかとなっている。
【００５１】
続いて、データパケット送信部１８が上記のように情報が更新されたデータパケットを所定のルートに従い送信する（Ｓ０７）。
【００５２】
次に、中継機１０によりデータパケットが送信された受信機３０における処理の説明を図８のフローチャートを用いて行う。
【００５３】
中継機１０によりデータパケットが送信された受信機３０では、まず、データパケット受信部３１が当該データパケットを受信する（Ｓ１１）。
【００５４】
続いて、指示送信速度コピー部３２が、受信したデータパケットに含まれる送信速度に関する情報を、送信機２０に対する指示送信速度として、送信機２０に送信するＡｃｋにコピーする（Ｓ１２）。
【００５５】
続いて、Ａｃｋ送信部３３は、指示送信速度に関する情報を含んだＡｃｋを送信機２０に送信する（Ｓ１３）。
【００５６】
次に、受信機３０によりＡｃｋが送信され、別のデータパケットを送信する送信機２０における処理の説明を図９のフローチャートを用いて行う。
【００５７】
受信機３０によりＡｃｋが送信された送信機２０では、まず、Ａｃｋ受信部２１が当該Ａｃｋを受信する（Ｓ２１）。
【００５８】
続いて、送信速度取得部２２が、Ａｃｋ受信部２１により受信されたＡｃｋを読出し、当該Ａｃｋに含まれる指示送信速度に関する情報を取得する（Ｓ２２）。読み出された情報は、上述のようにＡｃｋデータベースに格納されるのが好ましい。
【００５９】
続いて、輻輳状態測定部２３が、ネットワークの輻輳状態を測定する（Ｓ２３）。具体的には例えば、データパケットを送信してから一定時間Ａｃｋの受信がないこと、即ちパケットロスが発生したこと、あるいはデータ伝搬時間等を測定することが好ましい。
【００６０】
続いて、送信速度決定部２４が、測定された輻輳状態の情報及び指示送信速度に関する情報に基づいて、次に送信するデータパケットの送信速度を決定する（Ｓ２４）。具体的には、次のように決定するのが望ましい。まず、送信速度決定部２４が、輻輳状態の情報からネットワークが輻輳状態か否かを判断する。具体的には例えば、パケットロスが発生している場合、あるいはデータ伝搬時間が所定の値を超えている、即ちデータ伝搬遅延が発生している場合等は、輻輳状態であると判断することができる。
【００６１】
ネットワークが輻輳状態でないと判断した場合は、指示送信速度を送信速度として決定するのが好ましい。輻輳状態にない場合は、中継機１０により更新された情報に係る指示送信速度は適切な送信速度だからである。
【００６２】
ネットワークが輻輳状態であると判断した場合は、送信速度を増加させると更に輻輳状態を悪化させるおそれがあるので、送信速度を一定値低下させる等するのが好ましい。このようにして決定された送信速度は、次のパケットデータの送信時における送信速度とされる。
【００６３】
次のパケットデータの送信時、送信機２０では、送信速度書込部２５が、送信するデータパケットに所定の送信速度に関する情報を書き込む（Ｓ２５）。上述したように、ここで書き込まれる送信速度に関する情報は、送信速度の制御に用いられるものであり、送信機２０の理想的な送信速度とするのが好ましい。
【００６４】
続いて、データパケット送信部２６が、決定された送信速度でデータパケットを送信する。
【００６５】
本実施形態によれば、中継機１０における処理の負荷に基づいたより適切な輻輳制御をすることが可能となる。即ち、輻輳により中継機１０の負荷が高い場合等には、中継機１０はデータパケットの中継に専念し、より速い輻輳状態の解消が可能となる。
【００６６】
また、輻輳状態になく中継機１０の処理能力に余裕がある場合等には、中継機１０では、Ａｃｋに含まれる指示送信速度に関する情報を参照し、送信速度を決定することができるので、適切なデータ送信速度に速やかに達することができる。当該指示送信速度の値は、中継機１０の処理能力に基づいて算出されているものであるので、大量のデータが中継機１０に急激に送信されることもなく、安全に適切なデータ送信速度に達することが可能である。
【００６７】
なお、本実施形態における送信機２０の輻輳制御機能を、送信機２０から直接データが送信されうる中継機１０に備えることとしてもよい。その場合は、輻輳制御機能をもたない既存の送信機２０を含むシステムにおいても、上記と同様の効果を奏することができる。
【００６８】
また、各中継機１０における負荷の値等を、別のサーバ等で集中管理しておき、指示送信速度の算出等を当該サーバ等で行わせることとしてもよい。このようにすれば、各中継機１０で行われるデータパケットに含まれる送信速度に関する情報の更新の回数を減らすことが出来る等の効果がある。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施形態におけるシステムの構成図である。
【図２】実施形態における中継機の機能構成図である。
【図３】負荷情報データベースのテーブルの例である。
【図４】実施形態における送信機の機能構成図である。
【図５】Ａｃｋデータベースのテーブルの例である。
【図６】実施形態における受信機の機能構成図である。
【図７】実施形態における中継機の処理のフローチャートである。
【図８】実施形態における受信機の処理のフローチャートである。
【図９】実施形態における送信機の処理のフローチャートである。
【符号の説明】
【００７０】
１０…中継機、１１…データパケット受信部、１２…負荷監視部、１３…判断部、１４…送信速度算出部、１５…送信速度取得部、１６…比較部、１７…送信速度更新部、１８…データパケット送信部、２０…送信機、２１…Ａｃｋ受信部、２２…送信速度取得部、２３…輻輳状態測定部、２４…送信速度決定部、２５…送信速度書込部、２６…データパケット送信部、３０…受信機、３１…データパケット受信部、３２…指示送信速度コピー部、３３…Ａｃｋ送信部。
【図１】
2005303745.tif 000003
【図２】
2005303745.tif 000004
【図３】
2005303745.tif 000005
【図４】
2005303745.tif 000006
【図５】
2005303745.tif 000007
【図６】
2005303745.tif 000008
【図７】
2005303745.tif 000009
【図８】
2005303745.tif 000010
【図９】
2005303745.tif 000011