(57)【要約】  送信端末２Ａ及び受信端末４Ｂがネットワーク１０を介して通信を行うときに、通信の帯域を制御する通信装置１において、受信帯域測定部２３は、送信端末２Ａから受信端末４Ｂ、及び受信端末４Ｂから送信端末２Ａの２方向の通信のうち、少なくとも１方向の通信について帯域を測定する。セッションテーブル１３は、通信に必要な帯域を示す目標帯域を含む帯域調整に係わる情報を記憶する。帯域調整部２４は、セッションテーブル１３から帯域を測定した方向の目標帯域を読み出し、受信帯域測定部２３において測定した帯域と読み出した目標帯域との比較に基づきパケットの送出間隔を調整することにより、帯域の抑制または促進を行う。
2011151884.tif 000002
【特許請求の範囲】
【請求項１】
送信装置及び受信装置がネットワークを介して通信を行うときに、通信の帯域を制御する通信装置であって、
前記送信装置から前記受信装置、及び前記受信装置から送信装置の２方向の通信のうち、少なくとも１方向の通信について帯域を測定する測定部と、
通信に必要な帯域を示す目標帯域を含む帯域調整に係わる情報を記憶する記憶部と、
前記記憶部から前記帯域を測定した方向の目標帯域を読み出し、前記測定部において測定した帯域と該読み出した目標帯域との比較に基づきパケットの送出間隔を調整することにより、帯域の抑制または促進を行う調整部と
を備えることを特徴とする通信装置。
【請求項２】
前記調整部は、前記送信装置及び受信装置の間で送受されるパケットには変更を加えずに、パケットの破棄、パケットの中継または送信、複数の複写パケットの中継または送信、及び、パケットの送出間隔の制御を行うパケット処理を行うことで、帯域を調整する
ことを特徴とする請求項１記載の通信装置。
【請求項３】
前記測定部は、前記送信装置から第１のパケットを受信した前記受信装置が該送信装置宛に返送する第２のパケットを観測して、該第２のパケットの送信方向の通信についての帯域を測定し、
前記調整部は、前記第２のパケットの送出間隔を制御して、該第２のパケットの送出間隔を空け、または詰めることにより、帯域の抑制、または促進を行う
ことを特徴とする請求項１記載の通信装置。
【請求項４】
前記測定部は、前記第２のパケットに含まれる、前記送信装置が次に送信すべき前記第１のパケットを示す情報に基づき、該第２のパケットの送信方向の帯域を測定する
前記調整部は、前記送信装置が次に送信すべき前記第１のパケットを示す情報の増分が前記目標帯域に近づくよう前記第２のパケットの送出間隔を制御して、前記帯域の抑制または促進を行う
ことを特徴とする請求項３記載の通信装置。
【請求項５】
前記送信装置が送信する第１のパケット及び前記受信装置が該第１のパケットに対して返送する第２のパケットを、該第１及び第２のパケットに含まれるパケットの順序を示す情報にしたがって格納するパケット格納部と、
を更に備え、
前記調整部は、
前記ネットワークを介してパケットを受信すると、該受信したパケット、及び前記パケット格納部に格納しているパケットの前記パケットの順序を示す情報を比較し、
前記パケットの順序を示す情報が互いに一致する場合には、前記パケット格納部に格納しているパケットまたは前記受信したパケットのいずれか一方を破棄し、他方のパケットについては該パケット格納部に保存させる
ことを特徴とする請求項１記載の通信装置。
【請求項６】
前記調整部は、前記第１または第２のパケットの送信方向の帯域が、該通信方向の前記目標帯域を下回る場合には、前記パケット格納部に格納したパケットを複写し、該複写パケットを、該目標帯域に応じた送出間隔で少なくとも１回送出する
ことを特徴とする請求項５記載の通信装置。
【請求項７】
前記調整部は、所定の期間以上に渡って前記第２のパケットを認識しない場合には、第１のパケットの順序を示す番号が、第２のパケットの順序を示す番号のうち最大の番号と対応する第１のパケットを前記パケット格納部から取得し、該取得した第１のパケットの複写パケットを、前記受信装置に向けて送出させる
ことを特徴とする請求項６記載の通信装置。
【請求項８】
前記調整部は、所定の期間以上に渡って前記第１のパケットを認識しない場合には、第２のパケットの順序を示す番号が最大の番号をとる第２のパケットを前記パケット格納部から取得し、該取得した第２のパケットの複写パケットを、前記送信装置に向けて送出させる
ことを特徴とする請求項６記載の通信装置。
【請求項９】
前記調整部は、前記パケットの順序を示す番号が同一の第２のパケットについての複写パケットを、所定の回数以上連続して送出して、前記送信装置における送信帯域を向上させる
ことを特徴とする請求項６記載の通信装置。
【請求項１０】
前記測定部及び調整部は、前記送信装置及び受信装置間の二方向の通信のうち、一方の通信についての帯域測定及び帯域調整をそれぞれ行う第１の測定部及び第１の調整部、並びに他方の通信についての帯域測定及び帯域調整をそれぞれ行う第２の測定部及び第２の調整部を有し、
前記２方向のうちパケットを認識している通信方向の測定部及び調整部を動作させて、該認識している通信方向について帯域調整を行う
ことを特徴とする請求項１記載の通信装置。
【請求項１１】
前記調整部は、前記受信装置から受信した第２のパケットのうち、前記送信装置において破棄されるパケットについては、該送信装置に送出させず、自装置において破棄する
ことを特徴とする請求項５記載の通信装置。
【請求項１２】
前記送信装置または受信装置からパケットを受信したことを契機として前記記憶部に情報の登録を行い、該送信装置と受信装置との間のセッションの管理を開始する管理部と
を更に備え、
前記記憶部は、前記送信装置と前記受信装置との間のセッションを識別する情報と対応付けて、該セッションについての帯域調整に係わる情報を記憶する
ことを特徴とする請求項１記載の通信装置。
【請求項１３】
前記セッション管理部は、前記パケットに含まれる、通信の状態遷移を表す情報を参照し、該状態遷移を表す情報に該送信装置及び受信装置の間のセッションを終了する旨の値が格納されている場合には、該セッションを識別する情報及びこれと対応付けられた帯域調整に係わる情報を前記記憶部から削除するとともに、該パケットの送信先である前記送信装置または受信装置に対して、通信の終了を通知する通知パケットを生成し、送出する
ことを特徴とする請求項１２記載の通信装置。
【請求項１４】
前記セッション管理部は、管理中のセッションに関するパケットを所定の期間に渡って認識しない場合には、該セッションを識別する情報及びこれと対応付けられた帯域調整に係わる情報を前記記憶部から削除するとともに、前記送信装置及び受信装置に対して、通信の終了を通知するパケットを生成し、送出する
ことを特徴とする請求項１４記載の通信装置。
【請求項１５】
前記調整部は、帯域調整を行った前記パケットに、帯域調整処理が実施済であることを示す情報を設定し、受信したパケットに該情報が設定されているか否かに基づき、該受信したパケットが帯域調整の対象であるか否かを判定する
ことを特徴とする請求項１記載の通信装置。
【請求項１６】
前記調整部は、前記パケットのＴＣＰ（Transmission Control Protocol）ヘッダのＵＲＧＥＮＴビットには０を設定し、ＵＲＧＥＮＴポインタフィールドには、帯域調整処理が実施済であることを示す情報を設定し、該パケットのチェックサムフィールドには、該設定した情報の値を含める値を設定する
ことを特徴とする請求項１５記載の通信装置。
【請求項１７】
前記測定部は、前記測定した帯域と前記目標帯域とを比較し、該測定した帯域が該目標帯域を上回る場合には、予め設定されている目標帯域の許容範囲内で目標帯域を増やし、該測定した帯域が該目標帯域を下回る場合には、該許容範囲内で目標帯域を減らして、該変更した目標帯域を前記記憶部に記憶させる
ことを特徴とする請求項１記載の通信装置。
【請求項１８】
前記管理部は、管理するセッションについての目標帯域を、パケットのネットワークアドレスの範囲、通信プロトコルの種類、通信の継続時間、時間帯、測定帯域あるいは送出したデータ量に応じて変更し、該変更した目標帯域を前記記憶部に記憶させる
ことを特徴とする請求項１２記載の通信装置。
【請求項１９】
送信装置及び受信装置がネットワークを介して通信を行うときに、通信の帯域を制御する通信方法であって、
前記送信装置から前記受信装置、及び前記受信装置から送信装置の２方向の通信のうち、少なくとも１方向の通信について帯域を測定し、
通信に必要な帯域を示す目標帯域を含む帯域調整に係わる情報を記憶する記憶部から前記帯域を測定した方向の目標帯域を読み出し、前記測定した帯域と該読み出した目標帯域との比較に基づきパケットの送出間隔を調整することにより、帯域の抑制または促進を行う
ことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置と受信装置との間でネットワークを介して行われる通信において、通信帯域を制御する技術に関する。
【背景技術】
【０００２】
近年のネットワーク技術の進展により、インターネット等のネットワークを伝わるトラフィックは増加の一途を辿っている。インターネット等で使用されるＩＰ（Internet Protocol）は、パケットを相手の装置に送信する役割を担う。ＩＰにより実現される通信は、「信頼性のない通信」である。すなわち、ＩＰは、データの到達や到達順序については保証していない。【０００３】
ＴＣＰ（Transmission Control Protocol）は、「信頼性のある通信」を実現するために用いられる。以下において、「信頼性のある通信」とは、送信データが、送信した順序どおりに過不足なく転送される通信を言うものとする。【０００４】
ＴＣＰは、現在、トラフィックの大きい部分を占めているものの、その性能は、不安定で、ばらつきがあるのが実情である。動画等の映像配信サービス等を安定して供給するためには、ＴＣＰ性能を安定させる必要がある。【０００５】
ＴＣＰ性能に係わる公知の技術の１つとして、ＴＣＰ帯域制御技術が挙げられる。ＴＣＰ帯域制御技術は、トラフィックを所定量以下に制限するものであり、基本的に、トラフィックの種類に応じて優先順位を付け、優先度の低いトラフィックを破棄することによりネットワークの輻輳を回避する技術である。
【発明の開示】
【０００６】
従来技術によれば、ＴＣＰは、輻輳時にはフロー制御によりデータ送信速度を調整する機能を有する。この機能は、輻輳がある場合に動作し、送信データがパケット破棄されずに受信側の端末装置に届いている限り、性能を向上させようとする。すなわち、通信の状態に応じて性能を向上させることはできるが、性能を適切な範囲に低く抑制する、といった制御をすることはできない。
【０００７】
ある通信が必要とする通信性能には、まず、アプリケーションやシステム管理者により決定される性能Ａがある。そして、この性能Ａを目標として実際の通信情況により動的に決定される性能Ｂがある。近年のトラフィック増加の傾向を鑑みると、例えば実際の通信情況が良好であり、性能Ｂが性能Ａを上回る場合には、性能Ｂを下げ、また、性能Ｂを上げる必要のある場合には、性能Ｂを上げるように帯域を制御する必要がある。
【０００８】
本発明は、帯域調整と高速化のバランスを考慮して、必要な性能が得られるよう帯域調整を行うことのできる技術を提供することを目的とする。
【０００９】
上記課題を解決するために、開示の通信装置は、送信装置及び受信装置がネットワークを介して通信を行うときに、通信の帯域を制御する通信装置であって、前記送信装置から前記受信装置、及び前記受信装置から送信装置の２方向の通信のうち、少なくとも１方向の通信について帯域を測定する測定部と、通信に必要な帯域を示す目標帯域を含む帯域調整に係わる情報を記憶する記憶部と、前記記憶部から前記帯域を測定した方向の目標帯域を読み出し、前記測定部において測定した帯域と該読み出した目標帯域との比較に基づきパケットの送出間隔を調整することにより、帯域の抑制または促進を行う調整部とを備える構成とする。
【００１０】
開示の通信装置によれば、通信が安定化し、パケットの再送を効果的に抑えることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る帯域調整装置を有する通信システムを示す全体図である。
【図２】本実施形態に係る帯域調整装置の構成図である。
【図３】帯域調整中継部の構成図である。
【図４】本実施形態に係る帯域調整装置の帯域調整中継部がデータパケットの帯域を測定する方法を説明する図である。
【図５】本実施形態に係る帯域調整装置の帯域調整中継部がＡＣＫパケットの帯域を測定する方法を説明する図である。
【図６】データパケット送信方向についての帯域抑制方法を説明する図である。
【図７】ＡＣＫパケット送信方向についての帯域抑制方法を説明する図である。
【図８】データパケット送信方向についての帯域の促進方法を説明する図である。
【図９】ＡＣＫパケット送信方向についての帯域の促進方法を説明する図である。
【図１０】受信したパケットの判別処理を示したフローチャートである。
【図１１】帯域測定処理を示したフローチャートである。
【図１２】帯域調整処理の割り込み処理を示したフローチャートである。
【図１３】帯域調整処理を示したフローチャートである。
【図１４】データパケットをバッファリングする方法を説明する図である。
【図１５】バッファリングしたＡＣＫパケットを利用する方法を説明する図である。
【図１６】データパケットのバッファリング処理を示したフローチャートである。
【図１７】ＡＣＫパケットのバッファリング処理を示したフローチャートである。
【図１８】バッファデータを破棄する処理を説明する図である。
【図１９】データパケットの代理再送処理を示したフローチャートである。
【図２０】ＡＣＫパケットの代理再送処理を示したフローチャートである。
【図２１】データパケットの自動代理再送方法を説明する図である。
【図２２】データパケットの自動代理再送処理を示したフローチャートである。
【図２３】サービス通知情報の利用により帯域調整処理を分散させる方法を説明する図である。
【図２４】サービス通知情報の設定方法の一例を示す図である。
【図２５】サービス通知情報の設定方法の他の例を示す図である。
【図２６】セッション管理処理を示したフローチャートである。
【図２７】サービス通知情報を用いたセッション管理処理を示したフローチャートである。
【図２８】サービス通知フラグ処理を示したフローチャートである。
【図２９】セッションテーブルの構造例を示す図である。
【図３０】セッションテーブルデータの構造例を示す図である。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
〔構成〕
図１は、本実施形態に係る帯域調整装置を有する通信システムを示す全体図である。図１（ａ）に示す通信システムは、２台の端末装置２Ａ及び端末装置（以下端末）４Ｂが、互いにネットワーク１０を介して接続され、例えばＴＣＰ通信を用いた映像配信（動画配信）等の通信を行う。ネットワーク１０の例としては、例えば、ＡＤＳＬ（Asymmetric Digital Subscriber Line）、ＦＴＴｘ（Fiber To The x）等の有線アクセスネットワークや、ＨＳＰＡ（High Speed Packet Access）、ＷｉＭＡＸ（Worldwide Interoperability for Microwave Access）等の無線アクセスネットワークが挙げられる。端末２Ａ、４Ｂは、例えば、ネットワーク１０に接続された家庭用あるいは小規模オフィス用ネットワーク機器、パーソナルコンピュータ、携帯端末、ネットワーク接続用アダプタ等からなる。【００１３】
各端末２Ａ、４Ｂは、それぞれ帯域調整装置１Ａ、１Ｂを有し、帯域調整装置１Ａ、１Ｂは、自装置が送受するパケットの帯域を、通信に応じた適切な値に調整する。以下の説明においては、データの送信側の装置には、符号に「Ａ」を、受信側の装置には、符合に「Ｂ」を付すこととする。【００１４】
帯域調整装置１Ａ、１Ｂは、ＴＣＰ／ＩＰパケットを観測可能な位置であれば、どのような場所であっても配置が可能である。図１（ａ）においては、送信端末及び受信端末内に帯域調整装置１Ａ、１Ｂを備える構成を示す。【００１５】
図１（ｂ）は、本実施形態に係る帯域調整装置１を端末以外の装置に組み込んだ場合のシステム構成図である。図１（ｂ）に示す例では、帯域調整装置１Ｃは、中継装置３内に組み込まれ、端末２Ａと端末４Ｂとの間で送受されるパケットの帯域を、通信に応じた適切な値に調整する。【００１６】
ここで、中継装置３とは、部分的あるいは完全にＴＣＰを認識し、ＴＣＰに係わる機能を提供するネットワーク機器をいい、ルータやブリッジ等だけでなく、例えば、プロキシサーバ、ロードバランサ、トラフィックシェーパー及びＷＡＮ（Wide Area Network）最適化装置等も、中継装置に含まれる。【００１７】
また、図１（ａ）及び図１（ｂ）においては、本実施形態に係る帯域調整装置１の設置位置を説明するために、通信システムの構成を簡略化して帯域端末２Ａ、４Ｂ及び中継装置３のみを示している。【００１８】
以下においては、図１（ｂ）の構成、すなわち、送信端末２Ａと受信端末４Ｂとの間のネットワーク１０上に配置される中継装置３に本実施形態に係る帯域調整装置１が搭載されている場合を例に、帯域調整装置１が送信端末２Ａ−受信端末４Ｂ間の通信帯域を調整する方法について、具体的に説明する。【００１９】
図２は、本実施形態に係る帯域調整装置１の構成図である。図２に示す帯域調整装置１は、２つの帯域調整中継部１１、１２と、セッションテーブル１３とを有し、帯域調整中継部１１、１２は、それぞれ「他のモジュール３０、３２」からパケットを受け取り、「他のモジュール３１、３３」へとパケットを渡す。【００２０】
図２に示す「他のモジュール３０〜３３」は、中継装置３内に備えられるネットワークデバイスドライバや他のプロトコルスタックであり、それぞれがＴＣＰ／ＩＰパケットを含むパケットを処理する。【００２１】
帯域調整装置１の帯域調整中継部１１、１２は、他のモジュール３０〜３３との間でパケットの受け渡しを行う。帯域調整中継部１１、１２は、受け取ったパケットがＴＣＰパケットである場合には、それぞれ送信端末２Ａから受信端末４Ｂ及び受信端末４Ｂから送信端末２Ａへと向かう方向の通信についての帯域調整を実施する。なお、図２や次に説明する図３においては、各通信方向を「Ａ→Ｂ方向」及び「Ｂ→Ａ方向」と記載している。【００２２】
セッションテーブル１３は、帯域調整中継部１１、１２が帯域調整の実施するときに必要な情報を格納する。セッションテーブル１３の詳細については、後に図２９及び図３０を参照して詳しく説明する。【００２３】
送信端末２Ａから受信端末４Ｂ、及び受信端末４Ｂから送信端末２Ａへと向かう両方向のパケットが帯域調整装置１を通過する場合には、帯域調整装置１は、両方向の通信について帯域調整を行う。一方向のパケットのみが帯域調整装置１を通過する場合には、帯域調整装置１は、帯域調整中継部１１、１２のうち、パケットが通過している方の帯域調整中継部において帯域調整を行い、セッションテーブル１３に必要な情報を格納する。他方の帯域調整中継部は、セッションテーブル１３を参照して、帯域調整を行うことも可能である。【００２４】
図３は、帯域調整中継部の構成図である。図３に示す帯域調整中継部１１は、パケット判別部２１、セッション管理部２２、受信帯域測定部２３、帯域調整部２４及び送信帯域測定部２５を有する。【００２５】
なお、図３においては、Ａ→Ｂ方向の帯域調整中継部１１の構成のみを示しているが、Ｂ→Ａ方向の帯域調整中継部１２の構成は、図３に示す帯域調整中継部１１の構成と同様であり、帯域調整中継部１１、１２は、セッションテーブル１３及びバッファ部１４を共有する。【００２６】
パケット判別部２１は、他のモジュール３０から受け取ったパケットが、帯域調整の対象となるパケットであるか否かを判別する。具体的には、ＴＣＰパケットであるか否かを判別する。【００２７】
セッション管理部２２は、パケット判別部２１において帯域調整の対象となるパケットであると判別した場合に、ＴＣＰセッションの管理を行う。セッション管理部２２は、ＴＣＰセッションの管理に必要な情報をセッションテーブル１３に格納し、また、必要な情報をセッションテーブル１３から取り出す等の処理を実行する。【００２８】
受信帯域測定部２３は、セッション管理部２２が管理対象とするパケットの受信帯域を測定する。受信帯域測定部２３は、測定した受信帯域をセッションテーブル１３に格納するとともに、必要な場合には、受信したパケットをバッファ部１４に格納する。【００２９】
帯域調整部２４は、セッションテーブル１３に格納されている測定帯域等の情報に基づき、帯域の調整を行う。具体的には、通信に必要な帯域を示す目標帯域と、実際に測定した帯域との大小関係に応じて、パケットの送出間隔を長く、あるいは短くして、帯域調整を行う。パケットの送出間隔の調整方法については、後に図面を参照して詳しく説明する。【００３０】
送信帯域測定部２５は、帯域調整部２４からの指示にしたがって他のモジュール３１へと転送されるパケットや、パケット判別部２１から他のモジュール３１へと転送されるパケットの帯域を測定し、測定結果をセッションテーブル１３に格納する。【００３１】
なお、通信システム内の動作の説明中の「送信」「受信」の表記と異なり、図３の受信帯域測定部２３、送信帯域測定部２５の説明においては、「受信」及び「送信」の表記は、帯域調整装置１を主体としている。すなわち、受信帯域測定部２３は、帯域調整装置１が他のモジュール３０から「受信」したパケットを処理し、送信帯域測定部２５は、帯域調整装置１が他のモジュール３１に「送信」するパケットを処理しているため、このように表記している。【００３２】
帯域調整部２４は、反対方向の帯域調整中継部１２の帯域調整部との間で、帯域調整に係わる情報を送受する。上記のとおり、一方の帯域調整中継部においてはＴＣＰパケットを送受しておらず、帯域測定を行っていない場合であっても、他方の帯域調整中継部がセッションテーブル１３に格納した情報や、他方の帯域調整部から受信した制御情報に基づいて、帯域調整を行う。【００３３】
図１〜図３に示すとおり、帯域調整装置１は、ＴＣＰ通信を監視して、帯域調整を行う。例えばApache HTTP Server、Lighttpd、Squid cache、BitTorrent等の一般的なサーバアプリケーションの多くは、ＴＣＰ通信ごとに送信帯域を調整する機能（Bandwidth Throttling）を有している。しかし、このような公知のアプリケーションによる帯域調整技術では、高精度での帯域調整を期待できない。【００３４】
すなわち、アプリケーションにより帯域調整を行ったとしても、オペレーティングシステムのスケジューリングに依存してトランスポート層（ＴＣＰ等）、ネットワーク層（ＩＰ等）、デバイスドライバ等でバーストトラフィックになる可能性がある。また、アプリケーションにて帯域調整を行うと、ＴＣＰ層からネットワーク層にかけての状況が正確に把握できず、アプリケーションは、アプリケーションが期待する通信性能と、実際の通信性能の乖離を認識できず、実際の通信に応じた帯域調整をすることができない。例えば、帯域調整の対象とするデータであっても、どれだけのデータを実際に送信したか／受信したか／再送したか等の状況を実時間的に認識できない。このため、アプリケーションは、あくまでも「論理的に通信が必要とする通信性能」になるよう帯域調整を行うのみであり、実体に即した帯域調整は行えない。【００３５】
これに対して、本実施形態に係る帯域調整装置１は、図１〜図３に示すとおり、実際のＴＣＰ通信を監視して、これに即した帯域調整を行うことができる。アプリケーションによる帯域調整と比較しても、より高精度の帯域調整が可能である。
〔通信の方向〕
送信端末２Ａ及び受信端末４Ｂは、それぞれ相手の端末宛にデータパケット及びＡＣＫパケットを送信する。図２及び図３に示す構成の帯域調整装置１は、帯域調整中継部１１、１２は、それぞれＡ→Ｂ方向及びＢ→Ａ方向の通信を監視する。このため、通信経路上に設けられる帯域調整装置１は、データパケット及びＡＣＫパケットの両方のパケットを転送する場合だけでなく、データパケットまたはＡＣＫパケットのいずれか一方を転送する場合であっても帯域調整を行うことが可能である。例えば、帯域調整装置１を備える中継装置３がＡ→Ｂ方向のデータパケットのみを中継し、ＡＣＫパケットについては他の経路を経由する場合であっても、帯域調整装置１の帯域調整中継部１１のみがデータパケットを監視して、帯域調整を行う。
〔帯域測定〕
本実施形態に係る帯域調整装置１がデータパケットやＡＣＫパケットを監視して通信帯域を測定する方法について、それぞれ図４及び図５を参照して説明する。【００３６】
図４は、本実施形態に係る帯域調整装置１の帯域調整中継部１１がデータパケットの帯域を測定する方法を説明する図であり、図５は、帯域調整装置１の帯域調整中継部１２がＡＣＫパケットの帯域を測定する方法を説明する図である。図４や図５の上段はデータパケットＤＰの流れ、下段はＡＣＫパケットＡＰの流れを示しており、以下においても同様である。【００３７】
図４及び図５に示す例では、帯域調整装置１は、中継装置３に組み込まれている場合を示し、以下の説明においても同様とする。以降においては、ネットワーク機器としての中継装置３を例に説明をするが、これに限定されるものではない。例えば、オペレーティングシステムの内部でＴＣＰ／ＩＰを受け渡す部分でも、同様の機能を果たすことができ、以下に説明する各種処理は、ソフトウェア及びハードウェアとして組み込むことが可能である。【００３８】
中継装置３の帯域調整装置１内の受信帯域測定部２３は、送信端末２Ａが受信端末４Ｂに対して送信するデータパケットＤＰや、データパケットＤＰを受信した受信端末４Ｂが送信端末２Ａに返すＡＣＫパケットＡＰを監視して、通信帯域を測定する。【００３９】
データパケットにより通信帯域を測定する場合は、図４に示すように、データパケットに含まれるシーケンス番号（図４のＳＥＱ）とパケットのデータ長とを観測して、データ長の積算値を求めることにより、通信システムのうち、中継装置３の設置位置における送信帯域を測定する。【００４０】
ＡＣＫパケットにより通信帯域を測定する場合は、図５に示すように、ＡＣＫパケットに含まれるＡＣＫ番号（図５のＡＣＫ）に基づきＡＣＫの増分を計測することにより、通信システムのうち、中継装置３の設置位置における受信帯域を測定する。【００４１】
ＡＣＫパケットは、データパケットと比べてデータ長が小さく、また、データパケットのように、パケットごとにデータ長が大きく異なることがない。このため、ＡＣＫ番号のみを観測し、所定の期間内に中継装置３が中継するＡＣＫパケットの増分を積算することにより、受信帯域を測定している。
〔帯域調整〕
図４や図５に示す方法で測定した通信帯域を利用して、帯域調整装置１の帯域調整部２４は、中継装置３からパケット（データパケットＤＰやＡＣＫパケットＡＰ）を送出する時間間隔を調整することにより、帯域調整を行う。図３の説明においても述べたとおり、帯域調整部２４は、測定した通信帯域に応じて、パケット送出の時間間隔を空ける（時間間隔を長くする）処理、あるいはパケット送出の時間間隔を詰める（時間間隔を短くする）処理のいずれを実行すべきかを決定する。【００４２】
以下においては、パケット送出の時間間隔を長くするよう帯域調整を行うことを「帯域の抑制」、パケット送出の時間間隔を短くするよう帯域調整を行うことを「帯域の促進」と定義する。まず、本実施形態に係る帯域調整装置１による帯域の抑制方法について説明する。【００４３】
図６は、データパケット送信方向についての帯域抑制方法を説明する図であり、図７は、ＡＣＫパケット送信方向についての帯域抑制方法を説明する図である。【００４４】
中継装置３の帯域調整装置１内の帯域調整部２４は、受信帯域測定部２３において測定した通信帯域が通信に必要な帯域を示す目標帯域を上回る場合には、通信を制御して、帯域を抑制する。帯域の抑制方法には、データパケットの送信間隔を制御する方法と、ＡＣＫパケットの送信間隔を制御する方法とがある。【００４５】
例えばデータパケットの送信間隔の制御に関しては、図６に示すように、帯域調整装置１の帯域調整部２４は、送信端末２Ａが送信したデータパケットの帯域を抑制する制御を行う。具体的には、目標帯域に対して、シーケンス番号の単位時間当たりの増分が所定の範囲内に抑制されるよう、データパケットの転送間隔を制御する。これにより、送信端末２Ａがバーストトラフィックを出すことがあっても、所定の帯域で受信端末４Ｂにデータパケットを届けることができる。【００４６】
一方、ＡＣＫパケットの送信間隔の制御については、図７に示すように、帯域調整部２４が、受信端末４Ｂが送信したＡＣＫパケットの帯域を抑制する制御を行う。具体的には、目標帯域に対して、ＡＣＫ番号の単位時間当たりの増分が所定の範囲内になるよう、ＡＣＫパケットの転送間隔を制御する。【００４７】
一般に、送信端末２Ａは、ＴＣＰ通信の初めのうちは、ウィンドウサイズ分のデータパケットをバーストトラフィックとして送信するが、後続のデータパケット送信については、送信端末２Ａは、ＡＣＫパケットの受信帯域に応じた帯域で受信端末４Ｂ宛のデータパケットを送出する。このため、上記のとおりにＡＣＫパケットの送出間隔を制御することにより、送信端末２Ａは、受信したＡＣＫパケットの増分に応じてデータパケットを送信することとなり、これにより、データパケット送信方向についての帯域を調整することができる。【００４８】
次に、本実施形態に係る帯域調整装置１による帯域の促進方法について説明する。【００４９】
図８は、データパケット送信方向についての帯域の促進方法を説明する図であり、図９は、ＡＣＫパケット送信方向についての帯域の促進方法を説明する図である。【００５０】
中継装置３の帯域調整装置１内の帯域調整部２４は、受信帯域測定部２３において測定した通信帯域が上記目標帯域を下回る場合には、帯域を促進するように制御を行う。上記の帯域の抑制方法と同様に、帯域の促進方法には、データパケットの送信間隔を制御する方法と、ＡＣＫパケットの送信間隔を制御する方法とがある。【００５１】
データパケットの送信間隔の制御に関しては、図８に示すように、帯域調整装置１の帯域調整部２４が、バッファ部１４に送信端末２Ａから受信したデータパケットをバッファリングしておき、バッファリングしておいたデータパケットを少なくとも１回受信端末４Ｂに送信する。バッファリングしておいたデータパケットの再送は、目標帯域に応じて、複数回行うこともある。【００５２】
以下においては、帯域調整装置１がバッファリングしておいたデータパケットを受信端末４Ｂに送信することを、「データパケットの代理再送」とする。以下の説明においては、送信端末２ＡがＴＣＰの再送機能によりデータパケットを再送することに対して、帯域調整装置１がデータパケットを再送することを、このように表すこととする。【００５３】
代理再送されたデータパケットを受信した受信端末４Ｂは、データパケットに含まれるシーケンス番号を参照し、未受信のデータパケットと認識した場合には、代理再送されたデータパケットに対するＡＣＫパケットを返送する。このように、帯域の促進処理、すなわち、データパケットの代理再送により、中継装置３と受信端末４Ｂとの間で破棄されていたデータパケットに対するＡＣＫパケットが受信端末２Ａから返送される。【００５４】
更に、Ａ→Ｂ方向の測定帯域（実際のデータパケットについての送信帯域）が目標帯域を下回る理由の１つとして、ＡＣＫパケットが送信端末２Ａに十分に届いていないため、送信端末２Ａからのデータパケットの送信が滞っていることが考えられる。上記の帯域の促進処理によれば、送信端末２Ａは、代理再送されたデータパケットに対するＡＣＫパケットを受信すると、次に送信すべきデータパケットを送信するので、送信端末２Ａによるデータパケットの送信を促すこととなる。【００５５】
このように、測定帯域が目標帯域を下回る場合にデータパケットの代理再送を行うことにより、受信端末４ＢからのＡＣＫの返送や送信端末２Ａのデータパケットの送信が促され、滞っていた通信を促進させる効果が得られる。【００５６】
なお、代理再送されたデータパケットが受信端末４Ｂにおいて既に受信済であった場合には、受信端末４Ｂは、代理再送されたデータパケットを破棄するため、代理再送処理が、ＴＣＰ通信に悪影響を及ぼすことはない。【００５７】
また、従来のＴＣＰ改善方式によれば、送信端末に次のシーケンス番号のデータパケットの送信を促すために、中継装置が代理ＡＣＫパケットを送信することにより、送信帯域を増強している。これは、「Splitting TCP」や「TCP Spoofing」として公知のＴＣＰ中継技術である。これらの従来のＴＣＰ中継技術では、ＡＬＧ（Application Level Gateway）方式のＴＣＰ中継装置がスケーラビリティに乏しいこと、TCP Splicingでは複雑な処理の実行が困難であること等の問題を解決している。【００５８】
しかし、公知技術であるので詳細な説明は割愛するが、Splitting TCPやTCP Spoofingでは、中継装置は、送信端末からのＴＣＰ通信を一度終了し、受信端末に対しては、新たなＴＣＰ通信を行う。これによれば、仮に、中継装置が代理で送信したＡＣＫパケットに対応するデータパケット（例えば、「ＡＣＫ番号＝１０」のＡＣＫパケットに対して送信端末が送信する「シーケンス番号＝１０＋１＝１１」のデータパケット）を受信端末が未受信であったとすると、この代理ＡＣＫパケット（ＡＣＫ番号＝１０）は偽となる。偽の代理ＡＣＫパケットを受信した送信端末は、それ以前のデータ（シーケンス番号＝１０までのデータ）を破棄するので、中継装置が停止した場合やネットワークから除去された場合には、破棄されたデータを二度と回復することができない、という問題がある。【００５９】
これに対して、本実施形態に係る帯域調整装置１によれば、データパケットを代理再送した場合であっても、送信端末２Ａが代理再送されたデータパケットを破棄することがなく、中継装置３がネットワークから除去された場合であっても、データが失われることがない、という利点を有する。【００６０】
ＡＣＫパケットの送信間隔の制御に関しては、図９に示すように、帯域調整装置１の帯域調整部２４が、バッファ部１４にＡＣＫパケットをバッファリングしておき、目標帯域に応じて、バッファリングしておいたＡＣＫパケットを送信端末２Ａに送信する。バッファリングしておいたＡＣＫパケットの再送は、目標帯域に応じて、複数回行うこともある。【００６１】
以下においては、帯域調整装置１がバッファリングしておいたＡＣＫパケットを送信端末２Ａに送信することを、「ＡＣＫパケットの代理再送」とする。以下の説明においては、受信端末４ＢがＡＣＫパケットを再送することに対して、帯域調整装置１がＡＣＫパケットを再送することを、このように表すこととする。【００６２】
代理再送されたＡＣＫパケットを受信した送信端末２Ａは、ＡＣＫパケットに対応するデータパケットを送信する可能性がある。このように、測定帯域が目標帯域を下回る場合にＡＣＫパケットの代理再送を行うことにより、送信端末２Ａによるデータパケットの送信が促され、滞っていた通信を促進させる効果が得られる。【００６３】
ところで、ＴＣＰの輻輳制御技術の１つに、「Fast Recovery」がある。この技術によれば、送信端末２Ａが連続して３個の同じＡＣＫパケットを受信した場合には、送信端末２Ａは、パケット破棄は一時的なものであるとして、輻輳ウィンドウ（congestion window）サイズを縮小させることなく、データパケットを再送する。上記のＡＣＫパケットの代理再送処理によれば、「Fast Recovery」によるデータパケットの再送機能が促され、これにより、送信端末２Ａの帯域を増強する効果が得られる。【００６４】
なお、代理再送されたＡＣＫパケットが送信端末２Ａにおいて既に受信済であったとしても、送信端末２Ａは、従来と同様に重複して受信したＡＣＫパケットを処理するため、ＡＣＫパケットの代理再送がＴＣＰ通信に悪影響を及ぼすことはない。【００６５】
図８及び図９を参照して説明したとおり、帯域の促進では、帯域調整装置１（を備える中継装置３）が、送信端末２Ａや受信端末４Ｂの代理でパケットを再送する。帯域調整装置１による代理再送の方が、ＴＣＰの再送機能によるパケット再送よりも早く実行されるため、経路上でパケット破棄が発生し、これにより通信が滞っているような場合には、かかる代理再送によって、より迅速に通常の通信の状態へと復帰することが可能となる。【００６６】
図１０〜図１３を参照して、本実施形態に係る帯域調整装置１が、送信端末２Ａと受信端末４Ｂとの間で送受されるパケットを監視し、帯域の抑制または促進の帯域調整を行う方法について、フローチャートを参照して説明する。【００６７】
図１０は、図３のパケット判別部２１による受信したパケットの判別処理を示したフローチャートである。帯域調整装置１は、他のモジュール３０、３２からパケットを受信したことを契機として、図１０に示す処理を開始する。【００６８】
まず、ステップＳ１で、受信したパケットがＴＣＰパケットであるか否かを判定し、ＴＣＰパケットである場合（ステップＳ１でｙｅｓの場合）には、ステップＳ２で、図３のセッション管理部２２に受信したパケットを渡し、処理を終了する。ステップＳ１の判定において、受信したパケットがＴＣＰパケットでないと判定した場合（ステップＳ１でｎｏの場合）には、ステップＳ３に進み、帯域調整装置１においては特に処理を行わず、パケットを中継し、処理を終了する。【００６９】
ステップＳ１におけるパケットの判別は、実施例では、ＩＰヘッダの所定のフィールドを参照することにより行っている。例えば、ＩＰｖ４においては、プロトコル（Protocol）フィールドの値を参照し、ＩＰｖ６においては、ネクストヘッダ（Next Header）フィールドの値を参照することにより、ＴＣＰパケットであるか否かを判別する。ＩＰヘッダのフォーマットについては公知の技術であるので、詳細な説明は省略する。【００７０】
図１０に示すとおり、実施例では、ＴＣＰパケットであるか否かを判定し、ＴＣＰパケットについては全て帯域調整の対象として処理を行っているが、これに限定されるものではない。例えば、ステップＳ１において、ＩＰヘッダやＴＣＰヘッダに含まれるＩＰアドレスやポート番号を参照し、ＩＰアドレスやポート番号が所定の範囲に属する場合には、ステップＳ２に進み、帯域調整の対象パケットとする等の変形が可能である。所定の範囲のＩＰアドレスやポート番号を帯域調整の対象と判断することにより、特定の端末間の通信に対して積極的に帯域調整を行っていくことが可能となる。本発明は、セッションを識別する指標として使用可能な値及びセッションにおけるパケットの順序を示す値をパケット内に格納する通信プロトコルに対して一般に適用可能である。このような通信プロトコルとして、例えばＩＰｓｅｃ（Security Architecture for Internet Protocol）ＥＳＰ（Encapsulating Security Payload）、ＲＴＰ（Real-time Transport Protocol）等が挙げられる。【００７１】
図１１は、受信帯域測定部２３による帯域測定処理を示したフローチャートである。図１０のパケットの判別処理により帯域調整の対象とされたパケットは、図３のセッション管理部２２に渡される。セッション管理部２２は、必要な情報をセッションテーブル１３に登録すると、パケットを受信帯域測定部２３に渡す。帯域調整装置１の受信帯域測定部２３は、セッション管理部２２からパケットを受け付けると、図１１に示す処理を開始する。【００７２】
まず、ステップＳ１１で、パケットがデータパケットであるか否かを判定する。セッション管理部２２から受け取ったパケットがデータパケットである場合（ステップＳ１１でｙｅｓの場合）には、ステップＳ１２に進み、データパケットのシーケンス番号が過去に受信したパケットと重複するか否かによらずに、単位時間当たりに中継したデータ量を更新し、ステップＳ１５に進む。セッション管理部２２から受け取ったパケットがＡＣＫパケットである場合（ステップＳ１１でｎｏの場合）には、ステップＳ１１からステップＳ１３に進む。【００７３】
ステップＳ１３で、受信パケットのＡＣＫ番号が、最大ＡＣＫ番号であるか否かを判定する。詳しくは後述するが、最大ＡＣＫ番号とは、帯域調整装置１が受信したＡＣＫパケットに含まれるＡＣＫ番号のうち、値が最大のものをいい、ステップＳ１３の判定は、セッションテーブル１３に保持されている最大ＡＣＫ番号と受信パケットのＡＣＫ番号とを比較することにより行う。受信したパケットのＡＣＫ番号が最大である場合（ステップＳ１３でｙｅｓの場合）には、ステップＳ１４に進み、単位時間当たりのＡＣＫ量を更新すると、ステップＳ１５に進む。受信したパケットのＡＣＫ番号が最大でない場合（ステップＳ１３でｎｏの場合）には、そのＡＣＫ番号のＡＣＫパケットについては中継済であるとして、特に処理を行わず、ステップＳ１５に進む。【００７４】
ステップＳ１５では、単位測定時間が経過したか否かを判定し、未だ単位測定時間が経過していない場合（ステップＳ１５でｎｏの場合）は、特に処理を行わず、処理を終了する。単位測定時間とは、データパケットのデータ量やＡＣＫパケットのＡＣＫ量の測定を行うために予め定めておいた時間をいい、セッションテーブル１３に値が格納されている。詳しくは、図３０を参照して説明する。【００７５】
ステップＳ１５において、単位測定時間が経過したと判定した場合（ステップＳ１５でｙｅｓの場合）には、ステップＳ１６で、単位時間当たりのデータ量・ＡＣＫ量の最大値及び最小値を更新する。これとともに、それぞれステップＳ１２及びステップＳ１４で更新した単位時間当たりのデータ量・ＡＣＫ量の値をクリアし、処理を終了する。【００７６】
帯域調整部２４は、目標帯域と、図１１に示す帯域測定処理により求まる測定帯域との比較に基づき、帯域調整処理を実行する。帯域調整処理を実行する契機としては、例えば、帯域調整装置１が中継パケットを受信するタイミングや、定期的な割り込み処理のタイミングが挙げられる。実施例では、定期的な割り込み処理のタイミングで帯域調整を行うこととし、この場合の帯域調整処理について、図１２を参照して説明する。【００７７】
図１２は、帯域調整部２４による帯域調整処理の割り込み処理を示したフローチャートである。上記のとおり、実施例では、帯域調整装置１は、所定の時間間隔で、定期的に図１２に示す処理を開始する。【００７８】
まず、ステップＳ２１で、割り込み処理を実行する割り込み周期の単位時間を経過したか否かを判定する。未だ割り込み処理の周期を経過していない場合（ステップＳ２１でｎｏの場合）は、特に処理を行わず、処理を終了する。【００７９】
一方、割り込み処理の周期を経過している場合（ステップＳ２１でｙｅｓの場合）には、ステップＳ２２に進み、帯域調整処理と、必要と判断した場合には、目標帯域を調整する処理を実行する。帯域調整処理及び目標帯域を調整する処理の詳細については、後述する。また、帯域調整処理の実行に際して必要な場合には、バッファ部１４にバッファリングしておいたパケットを利用する。バッファリング処理については、後述する。帯域調整処理を実行すると、処理を終了する。【００８０】
図１３は、帯域調整部２４による帯域調整処理を示したフローチャートである。上記のとおり、定期的な割り込み処理や、中継パケットの受信を契機として、図１３に示す処理を開始する。【００８１】
まず、ステップＳ３１で、単位調整時間が経過したか否かを判定する。「単位調整時間」とは、中継装置３のデータ転送量を計測する時間をいう。未だ単位調整時間が経過していない場合（ステップＳ３１でｎｏの場合）は、ステップＳ３２に進み、保持している単位転送量をクリアすると、ステップＳ３３に進む。既に単位調整時間が経過している場合（ステップＳ３１でｙｅｓの場合）は、特に処理を行わず、ステップＳ３３に進む。【００８２】
ステップＳ３３で、図３のバッファ部１４にデータパケットがバッファリングされているか否かを判定する。バッファ部１４にデータパケットがバッファリングされている場合（ステップＳ３３でｙｅｓの場合）には、ステップＳ３４に進み、更に、データパケットについての帯域と目標帯域とを比較する。具体的には、データパケットの単位転送量が、セッションテーブル１３から読み出した目標転送量を下回るか否かを判定する。ここで、「パケットの単位転送量」とは、受信帯域測定部２３が測定する、上記単位調整時間内に帯域調整装置１が転送したデータ量であって、図１１の帯域測定処理において測定した方向についての転送データ量をいう。【００８３】
ステップＳ３３で、バッファ部１４にデータパケットがバッファリングされていない場合（ステップＳ３３でｎｏの場合）は、ステップＳ３６に進む。【００８４】
ステップＳ３４で、データパケットの単位転送量が目標転送量を下回る場合（ステップＳ３４でｎｏ／抑制の場合）には、帯域の抑制を行い、ステップＳ３６に進む。上記のとおり、帯域の抑制処理では、目標転送量に対してデータパケットの単位転送量が所定の範囲内になるようにデータパケットの送出間隔を制御している。【００８５】
ステップＳ３４の判定において、データパケットの単位転送量が目標転送量を上回る場合（ステップＳ３４でｙｅｓ／促進の場合）には、ステップＳ３５に進み、帯域の促進を行う。上記のとおり、帯域の促進処理では、バッファ部１４にバッファリングしておいたデータパケットを、目標転送量に応じて転送する。【００８６】
送信方向についての帯域制御処理を実行すると、ステップＳ３６以降の受信方向についての帯域制御処理を行う。ステップＳ３６〜ステップＳ３８の処理については、バッファ部１４にＡＣＫパケットがバッファリングされている場合には、ＡＣＫパケットの単位転送量と目標転送量との大小関係に応じて帯域の抑制や促進を行う処理であり、それぞれステップＳ３３〜ステップＳ３５のデータパケットに対する処理と対応するものである。【００８７】
なお、図１２のステップＳ２１の割り込み周期は、図１３のステップＳ３１の単位調整時間よりも短い時間を設定する。これは、割り込み周期を単位調整時間よりも短く設定することで、帯域調整処理がなされない空白の期間を作らないためである。【００８８】
以上説明したように、本実施形態に係る帯域調整装置１によれば、帯域調整装置１を通過するＴＣＰパケットの転送量を監視して帯域を求め、通信に必要な目標帯域を上回る場合には、パケット送出を制御して帯域を抑制する。求めた帯域が目標帯域を下回る場合には、バッファリングしておいたパケットを送信端末２Ａや受信端末４Ｂに代わり再送（代理再送）して帯域の促進を行う。【００８９】
従来のＴＣＰ通信の問題点の１つに、バーストトラフィック、すなわち、一時的にピークの高いトラフィックが発生することが挙げられる。バーストトラフィックが発生する原因は、例えば、セッション開始後は初期値で転送を開始し、「とりあえず」バーストトラフィックを送信してしまうためである。サービスを提供するサーバとユーザ間の通信では、サーバ側のネットワークに対して、ユーザ側のネットワークの方が低速なアクセスネットワークで接続されていることも多い。このような構成の下でサーバがバーストトラフィックを送信すると、ユーザ側では、バーストトラフィックを受けきれない可能性が高い。ユーザ側で受けきれないバーストトラフィックは、ユーザ側のアクセスネットワークの接続点でパケット破棄される可能性が高い。【００９０】
また、ＴＣＰ通信では、アプリケーションプログラムがデータを送信し、オペレーティングシステムの機構を使ってＴＣＰやＩＰのプロトコルスタックが処理し、最後にネットワークドライバがデータを送信する。通常の計算機システムでは、アプリケーションプログラムやオペレーティングシステムは、時分割的なスケジューリングによって動作している。このため、送信データが各種プログラムを経由するごとにスケジューリングが入ることとなり、バースト的に処理されることとなる。負荷の高いサーバでは、この処理のバースト性が大きくなる傾向が強く、バーストトラフィックにつながることがある。【００９１】
バーストトラフィックは、ネットワーク経路で輻輳の原因となり得る。特に、多くのＴＣＰセッションを集約するルータ等では、常に輻輳が発生する危険がある。しかし、本実施形態に係る帯域調整装置１によれば、実際の帯域が目標帯域を上回る場合には、帯域の抑制を行う。これにより、バーストトラフィックを効果的に抑止することが可能となる。【００９２】
更には、帯域調整装置１は、自装置を通過するパケットの帯域を測定し、自装置を通過するパケットを制御している。従来のＴＦＲＣ（TCP-Friendly Rate Control）等のように、受信端末４Ｂがパケット破棄情報を通知したり、送信端末２Ａが遅延をパケットごとに測定したりする必要がない。また、経路上に帯域調整装置１が配置されていれば、上記の帯域調整処理を実施することが可能であるので、送信端末２Ａや受信端末４Ｂは、必ずしも帯域調整装置１を備えている必要もない。【００９３】
また、仮に、帯域調整のために、パケットに変更を加えてパケット長を変更するとすれば、帯域調整を行う装置においてパケットを作り直す必要があり、処理負荷の増大や、他のネットワーク機器への影響が懸念される。しかし、本実施形態に係る帯域調整方法では、パケットの転送間隔を制御しているのみであるため、このような問題も発生しない。【００９４】
そして、本実施形態に係る帯域調整方法では、測定帯域が目標帯域を上回る場合・下回る通信について、帯域調整が必要と判断し、それぞれ帯域の抑制・促進を行う。帯域調整を実施する必要のない通信については、パケットを転送するのみである。このような方法で帯域調整を行っているため、中継装置３において帯域調整の必要な通信と帯域調整不要な通信とが競合することがあっても、帯域調整不要の通信の速度に悪影響を与えることもない。
〔バッファリング〕
上記の帯域調整処理の説明においても述べたとおり、本実施形態に係る帯域調整装置１は、バッファ部１４にパケットをバッファリングしておくことにより、帯域の抑制や促進を行っている。次に、バッファリングしたパケットを利用する方法について説明する。【００９５】
図１４は、データパケットをバッファリングする方法を説明する図である。【００９６】
図１４に示すとおり、中継装置３に備えられる帯域調整装置１は、データパケットを図３のバッファ部１４にバッファリングしておく。そして、バッファ部１４にバッファリングしているデータパケットを複写し、複写したデータパケットを受信端末４Ｂに送信する等の処理を実行する。【００９７】
帯域調整装置１がバッファ部１４の空きを監視して、帯域調整装置１や中継装置３のメモリが枯渇したことを認識すると、データパケットをバッファリングせず破棄することとしてもよい。これは、破棄したデータパケットが受信端末４Ｂまで届いていないような場合であっても、いずれ送信端末２ＡがＴＣＰの機能によりデータパケットの再送を行うため、通信上の問題は生じない。【００９８】
ＡＣＫパケットについても同様のバッファリングを行う。データパケットのバッファリングと同様に、メモリの容量を超える場合にはＡＣＫパケットを破棄するとしても、受信端末４ＢがＴＣＰの機能によりＡＣＫパケットの再送を行うため、通信上の問題は生じない。【００９９】
更に、帯域調整装置１が、バッファ部１４へのパケットのバッファリング機能を利用して以下の処理を実行する構成とすることもできる。【０１００】
例えば、バッファリングするデータパケットやＡＣＫパケットを、シーケンス番号やＡＣＫ番号順に並べてバッファリングすることもできる。例えばネットワークの経路により、受信端末４Ｂに到着する順序が入れ替わることがある。このような場合であっても、シーケンス番号やＡＣＫ番号順にパケットを並べておくことで、帯域調整装置１を備えるネットワーク機器（実施例では中継装置３）において順序を修正することができる。【０１０１】
また、受信したパケットのシーケンス番号やＡＣＫ番号等をバッファ部１４に既にバッファリングしているパケットのそれと比較して、重複するパケットはバッファリングせずに破棄することもできる。パケットを受信する端末装置（受信端末４Ｂや送信端末２Ａ）においては、重複するパケットを破棄する処理が不要となる。【０１０２】
図１５は、バッファリングしたＡＣＫパケットを利用する方法を説明する図である。【０１０３】
ＡＣＫパケットに関しては、更に、バッファリングしておくパケット数を１つに限定する構成とすることも可能である。帯域調整装置１が受信したＡＣＫパケットのＡＣＫ番号のうち、最大のＡＣＫ番号をとるＡＣＫパケットをバッファリングしておく。ＴＣＰにおいては、最大のＡＣＫ番号が分かれば、次に送信すべきデータパケットのシーケンス番号を判断可能であるためである。図１５の例では、中継装置３の帯域調整装置１は、ＡＣＫ番号が「５」のＡＣＫパケットＡＰ（５）を受信端末４Ｂから受信すると、それまでバッファ部１４に保持していたＡＣＫ番号「４」のＡＣＫパケットＡＰ（４）を破棄し、最大のＡＣＫ番号を持つＡＣＫパケット（５）をバッファリングする。そして、このＡＣＫパケットＡＰ（５）を用いて、先述の帯域の促進処理を実行する。【０１０４】
パケットロス等により受信端末４Ｂにおいてデータパケットを受信していないような場合であっても、先述のとおり、帯域の促進処理を実行することで、安定した通信を供給することが可能となる。そこで、帯域調整装置１は、バッファリングするＡＣＫパケット数が１のみであっても、実施例では、バッファリングしたＡＣＫパケット（図１５においてはＡＣＫパケットＡＰ（５））を複写して送信することにより、帯域調整を実行している。【０１０５】
ところで、ＡＣＫパケットは、受信端末４Ｂがデータパケットを受信していない期間についても、ある頻度（例えば目標帯域）で送信端末２Ａに返しておくことが望ましい。そこで、帯域調整装置１は、所定の頻度で送信端末２ＡにＡＣＫパケットが返るように、バッファ部１４にバッファリングしているＡＣＫパケットを複写し、送信する。バッファ部１４から複写・送信がなされたＡＣＫパケットは、受信端末４Ｂからも送信され、送信端末２Ａにおいては重複して受信することになるが、送信端末２Ａは、公知のＩＰネットワークの仕様の範囲内で処理を行う。このため、このようなＡＣＫパケットの再送により通信に問題が発生することはない。【０１０６】
次に、図１６及び図１７を参照しつつ、上記のバッファリング処理に関して、バッファ部１４を構成するバッファメモリを管理する方法について説明する。バッファ部１４は、セッションテーブル１３により管理され、セッションの一の方向ごと、すなわち、図２のＡ→Ｂ方向及びＢ→Ａ方向のそれぞれについて用意したキュー（待ち行列）である。キューは、リンクトリスト等のデータ構造により実現される。リンクトリストについては、公知の技術であるので、説明は省略する。【０１０７】
図１６は、データパケットのバッファリング処理を示したフローチャートである。図３の帯域調整装置１の受信帯域測定部２３は、データパケットをセッション管理部２２から受け取ると、図１６に示す処理を開始する。【０１０８】
まず、ステップＳ４１で、受け取ったデータパケットのシーケンス番号と同一のシーケンス番号を有するデータパケットがキュー（バッファ部１４）に存在するか否かを判定する。同一のシーケンス番号を有するデータパケットが存在する場合（ステップＳ４１でｙｅｓの場合）には、ステップＳ４２に進み、受け取ったデータパケットについては破棄し、処理を終了する。【０１０９】
ステップＳ４１の判定において、同一のシーケンス番号を有するデータパケットがない場合（ステップＳ４１でｎｏの場合）には、ステップＳ４３に進み、シーケンス番号が示す順序にしたがってデータパケットをキューに追加し、処理を終了する。【０１１０】
図１７は、ＡＣＫパケットのバッファリング処理を示したフローチャートである。図３の帯域調整装置１の受信帯域測定部２３は、ＡＣＫパケットをセッション管理部２２から受け取ると、図１７に示す処理を開始する。図１７においては、最大ＡＣＫ番号をとるＡＣＫパケットをバッファリングする処理を示す。【０１１１】
まず、ステップＳ５１で、受け取ったＡＣＫパケットのＡＣＫ番号が、最大値をとるか否かを判定する。受け取ったＡＣＫパケットのＡＣＫ番号が、これまでに受信したＡＣＫパケットの中で最大値ではない場合（ステップＳ５１でｎｏの場合）には、ステップＳ５２に進み、受け取ったＡＣＫパケットについては破棄し、処理を終了する。【０１１２】
ステップＳ５１の判定において、受け取ったＡＣＫパケットのＡＣＫ番号が最大値をとる場合（ステップＳ５１でｙｅｓの場合）には、ステップＳ５３に進む。そして、帯域調整装置１が複数のＡＣＫパケットを保持する構成をとる場合には、ＡＣＫ番号が示す順序にしたがってＡＣＫパケットをキューに追加する。キューの長さが１であり、１つのＡＣＫパケットしか保持しない構成をとる場合には、キューに保持されているＡＣＫパケットを破棄するとともに、受け取った新しいＡＣＫパケットをキューに記憶し、処理を終了する。【０１１３】
図１６や図１７に示すバッファリング処理は、上記の帯域調整を行う際に実行される処理であるので、従来技術と異なり、送信端末２Ａが継続的に過度のパケットを送出し続けることがない。これにより、バッファリングするパケット数が増え続けることや、定常的に大きな値になることがない。【０１１４】
上記のとおり、実施例では、パケット用のバッファメモリは、あるセッションの通信方向ごと、すなわち、データパケットのバッファ用とＡＣＫパケットのバッファ用とで、少なくとも２個を用意する。それぞれのバッファメモリにバッファリングするパケット数は、目標帯域と、測定した帯域との差に依存する。例えばデータパケットのバッファリングするパケット数については、例えば、ＴＣＰ通信の初期転送時のＴＣＰウィンドウサイズのパケット数程度を設定する。バッファメモリのパケットデータを格納する領域を６４キロバイト、初期転送時のＴＣＰウィンドウサイズを１４５０バイトとすると、パケット数は、６４ＫＢ／１４５０Ｂ＝４５パケット程度である。【０１１５】
パケット用のバッファメモリには、パケットのデータだけでなく、バッファ部１４の管理を行うための管理情報を含むため、メモリ量は、パケット長より大きい。ここで、パケット当たり２キロバイト、１セッション当たり最大５０パケットをバッファリングすると仮定すると、セッション当たり必要なメモリ量は１００キロバイト、１万セッションでは、１ギガバイトとなる。【０１１６】
帯域調整処理により、目標帯域に応じて送信端末２Ａからの送信帯域を制御しているため、実際には、１セッション当たりの平均バッファ量は、１０パケット以下となる。１ギガバイトのバッファメモリを用意すれば、１０万セッションの同時中継であっても処理が可能である。【０１１７】
複数のセッションを同時に中継する場合に備えてバッファメモリの容量を確保しておいた場合であっても、バッファメモリが枯渇するケースも発生し得る。このような場合には、パケットのバッファリングは行わずに、帯域調整処理を継続する。先述のとおり、送信端末２Ａや受信端末４Ｂは、ＴＣＰの機能によりパケットの再送を行うため、メモリが枯渇した場合にはバッファリングを行わないこととしても、通信上の問題は発生しない。バッファメモリに一時的に過負荷がかかる可能性はあるものの、通信に悪影響を与えることなく、帯域調整処理を行うことができる。【０１１８】
更には、実施例のように、帯域調整装置１を備えるネットワーク機器が中継装置３である場合には、バッファ部１４に格納されているパケットのうち、バッファリングの不要なデータパケットを判断して破棄する構成とすることもできる。図１８を参照して、バッファリングの不要なデータパケットを破棄する方法について具体的に説明する。【０１１９】
図１８は、バッファデータを破棄する処理を説明する図である。【０１２０】
受信端末４Ｂは、データパケットを受信すると、次に送信装置２Ａが送信すべきデータパケットのシーケンス番号をＡＣＫ番号に含めて、ＡＣＫパケットを返送する。本実施形態に係る帯域調整装置１を備える中継装置３は、ＡＣＫパケットを受信すると、バッファ部１４のデータパケットのシーケンス番号を参照する。そして、受け取ったＡＣＫ番号と一致するシーケンス番号のデータパケットがバッファリングされている場合には、ＡＣＫパケットを中継せずに破棄するとともに、不要なデータパケットがバッファリングされていると判断する。そして、ＡＣＫ番号よりも古いデータパケットを破棄する。すなわち、次に送信端末２Ａが送信すべきパケットのシーケンス番号よりも小さいシーケンス番号をとるデータパケットを破棄する。【０１２１】
更には、中継装置３は、以降に送信端末２Ａ側から到着したデータパケットのうち、ＡＣＫ番号よりも値の小さいシーケンス番号のデータパケットについては、バッファリング及び転送は不要と判断し、破棄する。【０１２２】
図１８に示す例では、帯域調整装置１を備える中継装置３は、ＡＣＫ番号「５」のＡＣＫパケットＡＰ（５）を受信する。これは、受信装置４Ｂにおいてはシーケンス番号「４」のデータパケットＤＰ（４）を受信済であることを表す。したがって、中継装置３は、シーケンス番号が５−１＝４以下のデータパケットＤＰ（４）、ＤＰ（３）についてはバッファリング・転送は不要と判断し、破棄する。【０１２３】
このように、帯域調整装置１を備える中継装置３において、ＡＣＫパケットのＡＣＫ番号を参照して古いデータパケットを破棄することにより、中継装置３から受信端末４Ｂまでの無駄なトラフィックを削減するとともに、必要なバッファ量の節約に資する。【０１２４】
なお、先述のとおり、本実施形態に係る帯域調整装置１は、Ａ→Ｂ方向及びＢ→Ａ方向の２方向のうち、１方向のパケットのみを中継する場合であっても帯域調整が可能である。しかし、図１８に示すパケットを破棄する処理に関しては、ＡＣＫパケットすなわちＢ→Ａ方向の通信の状況に基づき、データパケットすなわちＡ→Ｂ方向の通信を制御している。したがって、図１８のパケット破棄の処理は、両方向の通信を監視している場合に適用可能である。
〔代理再送〕
帯域の促進処理の説明において、帯域調整装置１が送信端末２Ａや受信端末４Ｂに代わりパケットを送信（代理再送）することについて述べた。ここでは、代理再送の具体的な方法及びその応用例について、詳しく説明する。【０１２５】
図１９は、データパケットの代理再送処理を示したフローチャートである。図３の帯域調整装置１の帯域調整部２４は、例えば、図１３に示す帯域調整処理を実行するとともに、図１９に示すデータパケットの代理再送処理を実行する。【０１２６】
まず、ステップＳ６１で、測定帯域が目標帯域を下回っているか否かを判定する。測定帯域が目標帯域を下回る場合（ステップＳ６１でｙｅｓの場合）には、特に処理を行わず、処理を終了する。【０１２７】
一方、測定帯域が目標帯域以上である場合（ステップＳ６１でｎｏの場合）には、ステップＳ６２に進む。そして、セッションテーブル１３で管理しているＡＣＫ番号の最大値または最大値よりも大きい値のシーケンス番号を有するデータパケットをバッファ部１４から複写し、受信端末４Ｂに送信し、処理を終了する。【０１２８】
図２０は、ＡＣＫパケットの代理再送処理を示したフローチャートである。図１９に示す処理と同様に、帯域調整部２４は、図１３に示す帯域調整処理を実行するときに、図２０に示すＡＣＫパケットの代理再送処理を併せて実行することもできる。【０１２９】
まず、ステップＳ７１で、測定帯域が目標帯域を下回っているか否かを判定し、測定帯域が目標帯域を下回る場合（ステップＳ７１でｙｅｓの場合）には特に処理を行わずに処理を終了する。これは、図１９のステップＳ６１でｙｅｓの場合と同様である。【０１３０】
一方、測定帯域が目標帯域以上である場合（ステップＳ７１でｎｏの場合）には、ステップＳ７２に進む。そして、セッションテーブル１３で管理しているＡＣＫ番号の最大値を有するＡＣＫパケットをバッファ部１４から複写し、送信端末２Ａに送信し、処理を終了する。【０１３１】
帯域調整処理において、データパケットやＡＣＫパケットの代理再送を行うことによる効果については、帯域調整処理の説明において述べたとおりである。【０１３２】
更には、図１９や図２０に示すパケットの代理再送処理を利用して、帯域調整装置１においてデータパケットの再送の要否を判断し、必要と判断した場合にデータパケットを自動再送することも可能である。【０１３３】
図２１は、データパケットの自動代理再送方法を説明する図である。【０１３４】
受信端末４Ｂから送信されたＡＣＫパケットを受信した（中継装置３の）帯域調整装置１は、受信したＡＣＫパケットに対応するデータパケットをバッファ部１４に保持している場合には、ＡＣＫパケットを送信端末２Ａに転送することなく破棄するとともに、バッファリングしているデータパケットを受信端末４Ｂ宛に送信する。送信端末２ＡがＡＣＫパケットに含まれるＡＣＫ番号にしたがって対応するデータパケットを送信する場合と比較すると、中継装置３（の帯域調整装置１）がＡＣＫパケットに対応するデータパケットを送信しているので、ここでは、データパケットの「自動代理再送」と表現している。【０１３５】
図２１に示す例では、帯域調整装置１を備える中継装置３は、ＡＣＫ番号「５」のＡＣＫパケットＡＰ（５）を受信する。帯域調整装置１は、バッファ部１４にシーケンス番号「５」のデータパケットＤＰ（５）をバッファリングしている場合には、ＡＣＫパケットを送信端末２Ａに転送せず、バッファ部１４のシーケンス番号「５」のデータパケットＤＰ（５）を複写して、受信端末４Ｂに再送する。ＡＣＫ番号「６」のＡＣＫパケットＡＰ（６）を受信すると、シーケンス番号「６」のデータパケットＤＰ（６）についても同様に自動再送する。【０１３６】
なお、先述のとおり、本実施形態に係る帯域調整装置１は、Ａ→Ｂ方向及びＢ→Ａ方向の２方向のうち、１方向のパケットのみを中継する場合であっても帯域調整が可能である。しかし、図２１に示す自動代理再送処理に関しては、ＡＣＫパケットすなわちＢ→Ａ方向の通信の状況に基づき、データパケットすなわちＡ→Ｂ方向の通信を制御している。したがって、自動代理再送処理は、両方向の通信を監視している場合に適用可能である。【０１３７】
図２２は、データパケットの自動代理再送処理を示したフローチャートである。図３の帯域調整部２４は、反対方向の帯域調整部からＡＣＫパケットのＡＣＫ番号を通知されたことを契機として、図２２に示す処理を実行する。【０１３８】
まず、ステップＳ８１で、反対方向の帯域調整部において受信したＡＣＫパケットのＡＣＫ番号に対応する（すなわちＡＣＫ番号と一致する）シーケンス番号のデータパケットがバッファ部１４のキューに格納されているか否かを判定する。該当するデータパケットがキューにない場合（ステップＳ８１でｎｏの場合）には、特に処理を行わず、処理を終了する。【０１３９】
ステップＳ８１の判定において、該当するデータパケットがキューに格納されている場合（ステップＳ８１でｙｅｓの場合）には、ステップＳ８２に進む。そして、該当するデータパケットをバッファ部１４から複写して、受信端末４Ｂに再送し、処理を終了する。【０１４０】
帯域調整装置１を備える中継装置３において図２１及び図２２に示すデータパケットの自動代理再送を行うことで、中継装置３から送信端末２Ａまでの往復遅延時間、及び、トラフィックの節約が可能となる。
〔データパケットの自動冗送〕
帯域調整装置１のバッファリング機能を利用して、データパケットの冗送処理を実行することも可能である。すなわち、帯域調整装置１を備える中継装置３から受信端末４Ｂまでの経路上において、パケット破棄の確率が高い場合には、中継装置３が、データパケットを所定の頻度で複写して重複送信（冗送）する。中継装置３は、パケット破棄の確率を、ＡＣＫパケットの受信状況により判断する。【０１４１】
中継装置３は、冗送を含めた中継帯域（データパケット送信方向の帯域）と、受信帯域（ＡＣＫパケットの送信方向の帯域）とを観測した結果に応じて、冗送割合を調整することも可能である。例えば、冗送を含めた中継帯域に対して受信帯域が小さい場合には、中継装置３から送信されたデータパケットの破棄の確率が高いと判断して、冗送するデータパケットの割合を上げる等の処理を実行する。【０１４２】
このようなデータパケットの冗送処理により、パケット破棄の確率を低下させ、ＴＣＰ通信の性能を向上させることも可能である。【０１４３】
なお、先述のとおり、本実施形態に係る帯域調整装置１は、Ａ→Ｂ方向及びＢ→Ａ方向の２方向のうち、１方向のパケットのみを中継する場合であっても帯域調整が可能である。しかし、上記のデータパケットの自動冗送処理に関しては、ＡＣＫパケットすなわちＢ→Ａ方向の通信の状況に基づき、データパケットすなわちＡ→Ｂ方向の通信を制御している。したがって、自動冗送処理は、両方向の通信を監視している場合に適用可能である。
〔多重使用〕
上記の帯域調整機能を備えるネットワーク機器については、通信経路上に複数設置することも可能である。帯域調整装置１は、パケットの変更等は行っておらず、パケットの伝送間隔を目標帯域に応じて調整しているだけである。このため、通信経路上に帯域調整装置を複数配置し、各帯域調整装置１において帯域調整処理を実行する構成をとることが可能である。このように、帯域調整装置１を多重使用する構成としても、パケットの変更は行っていないため、帯域調整装置１間で相互に悪影響を与えることがない。また、各帯域調整装置１が帯域調整処理を実行することで、各経路において通信が安定化することとなるため、１台の帯域調整装置１のみで帯域調整を行う場合と比べて、更に高い効果が期待できる。【０１４４】
なお、帯域調整装置１を多重使用し、各帯域調整装置１において上記バッファリング処理を行う場合には、目標帯域は、低目に設定しておくことが望ましい。経路上の複数箇所でバッファリングを行うことによる中継遅延の増加が予測されるためである。目標帯域を比較的低目に設定しておくことで、帯域の促進のためにバッファリングを行う頻度を低くすることができ、これにより、中継遅延の増加を効果的に抑制することができると見込まれる。
〔サービス通知〕
多くのセッションを管理することにより、帯域調整装置１のセッションテーブル１３が一杯になると、帯域調整装置１（を備える中継装置３）は、あふれたＴＣＰセッションに対しては、単にパケットの中継のみを行う。このため、あふれたＴＣＰセッションについては帯域調整が実施されないこととなる。上述の帯域調整装置１の多重使用により、経路上に複数の帯域調整装置１が設けられているとしても、基本的には、先に伝送されたＴＣＰセッションに対して帯域調整処理を実施していくことになるため、最初の帯域調整装置１であふれたＴＣＰセッションは、以降の帯域調整装置１においても帯域調整がなされない場合も考えられる。【０１４５】
そこで、多重使用のシステム構成において、いずれかの帯域調整装置１において帯域調整処理がなされたパケットであるか否かを示す情報を、ＴＣＰパケットに含めることとすることができる。帯域調整装置１は、帯域調整処理が未実施のパケットに対して優先的に帯域調整処理を行っていく。経路上を伝送されるパケットが帯域調整処理済であるか否かを示す情報を、「サービス通知情報」とし、以下に、多重使用の構成において、サービス通知情報を参照して帯域調整処理を実施する方法について、具体的に説明することとする。【０１４６】
図２３は、サービス通知情報の利用により帯域調整処理を分散させる方法を説明する図である。図２３は、送信端末２Ａ及び受信端末４Ｂが、２台の中継装置３Ａ、３Ｂを介して通信を行う場合を例示する。説明のため、送信端末２Ａ−中継装置３Ａ間、中継装置３Ａ−中継装置３Ｂ間及び中継装置３Ｂ−受信端末４Ｂ間の経路をそれぞれ経路（ａ）、（ｂ）及び（ｃ）とする。【０１４７】
２つのパケットＰ１、Ｐ２が経路（ａ）〜（ｃ）を経由して受信端末４Ｂにおいて受信されるまでの間に、帯域調整装置１を備える中継装置３Ａ、３Ｂが、パケットＰ１、Ｐ２を中継する。各中継装置３Ａ、３Ｂの帯域調整装置１Ａ、１Ｂは、パケットＰ１、Ｐ２のサービス通知情報を参照し、帯域調整処理が未実施のパケットに対して優先的に帯域調整を実施することにより、通信システム内で帯域調整処理の分散を行う。【０１４８】
経路（ａ）を経由して中継装置３Ａに到達したパケットには、いずれもサービス通知情報には帯域調整処理が「未実施」であることを示す値が格納されている。中継装置３Ａの帯域調整装置１Ａは、中継するパケットＰ１、Ｐ２のうち、一部のパケットＰ１について帯域調整を行う。パケットＰ２についてはそのまま中継する。【０１４９】
経路（ｂ）を経由して中継装置３Ｂに到達したパケットのうち、パケットＰ１のサービス通知情報には、帯域調整処理が「済」であることを示す値が設定されているが、パケットＰ２のそれには、帯域調整処理が未実施であることを示す値が格納されている。そこで、中継装置３Ｂの帯域調整装置１Ｂは、パケットＰ１、Ｐ２のサービス通知情報を参照して、帯域調整処理が未だなされていないパケットＰ２に対して優先的に帯域調整を行う。経路（ｃ）では、帯域調整されたパケットＰ１、Ｐ２が伝送される。【０１５０】
上記のとおり、経路上に複数の帯域調整装置１が設置されており、サービス通知情報を参照して、帯域調整処理が未実施のパケットを判断して優先的に帯域調整を行っていくことにより、帯域調整処理を分散させることができる。これにより、経路上を伝送されるパケットがいずれかの帯域調整装置１において帯域調整される可能性を高めることができる。【０１５１】
次に、図２４及び図２５を参照して、サービス通知情報の設定例について説明する。【０１５２】
図２４は、サービス通知情報の設定方法の一例を示す図である。図２４に示す例では、サービス通知情報をＴＣＰヘッダの予約ビットである１ビットを利用して、サービス通知フラグｆ１をＴＣＰパケットに付加する。サービス通知フラグｆ１に、例えば「１」が格納されている場合にはそのパケットは帯域調整処理が済であり、「０」が格納されている場合には、未だ帯域調整処理がなされていなことを表すこととする。ＴＣＰヘッダの他のフィールドについては、公知の技術であるので、説明を省略する。【０１５３】
ＴＣＰオプションの追加等は行わずに、図２４に示すような方法でサービス通知フラグｆ１を設定することで、パケットの変更を最小限に留めている。【０１５４】
図２５は、サービス通知情報の設定方法の他の例を示す図である。図２５に示す例では、ＴＣＰヘッダのＵｒｇｅｎｔ（ＵＲＧ）フラグｆ２に「０」が設定されているパケットに関しては、緊急ポインタ（Urgent Pointer）ｐのフィールドにサービス通知情報を設定している。ここでは、他のフィールドの説明については、図２４の場合と同様に省略する。【０１５５】
ＴＣＰの仕様では、緊急ポインタｐは、ＵＲＧフラグｆ２に「１」が設定されている場合にのみ有効と定義されている。このため、上記のように、ＵＲＧフラグｆ２に０が設定されている場合、緊急ポインタｐは無視されることとなり、通常のＴＣＰ通信に影響を与えることがない。【０１５６】
帯域調整装置１を備える中継装置３は、他の装置から受信したＴＣＰパケットに対して帯域調整を行った場合には、図２４や図２５に例示するようなＴＣＰヘッダの所定のフィールドのサービス通知フラグ（ｆ１やｆ２）に、帯域調整処理実施済であることを示す値、ここでは「１」を設定してから、ＴＣＰパケットを転送する。帯域調整処理が未実施であるパケットには「０」が設定されているので、この所定のフィールドの値を参照することにより、各帯域調整装置１が、帯域調整処理の要否を判断する。【０１５７】
なお、サービス通知フラグは、経路上に設けられた複数の帯域調整装置１のうち、少なくとも１台の帯域調整装置１により帯域調整がなされたことを表す。すなわち、サービス通知フラグに実施済であることを示す「１」が格納されているパケットに対して、更に他の帯域調整装置１において帯域調整を実施し、上記の多重使用としてもよい。帯域調整装置１は、サービス通知フラグの値に係わらず、例えばセッションテーブル１３の空きがある場合には、帯域調整の対象としてもよい。【０１５８】
また、上記のフラグの値は、一例であり、帯域調整実施済であることを表す値が「０」であり、未実施であることを表す値が「１」である等でもよい。【０１５９】
以上説明したように、上記のサービス通知を行うことで、帯域調整装置１を多重使用する場合であっても、サービス通知フラグ等のサービス通知情報を参照して、帯域調整処理が未実施であることを示す情報が格納されているパケットに対して優先的に帯域調整を行う。結果として、通信システムに設けられた複数の帯域調整装置１のそれぞれに帯域調整処理が分散されることとなり、より多くのセッションに対して帯域調整処理を実施することが可能となる。
〔セッション管理〕
先に図１０のパケット判別処理の説明においても述べたとおり、実施形態に係る帯域調整装置１は、ＴＣＰパケットであると判別したパケットを帯域の抑制及び促進の対象とする。帯域調整装置１は、「Per Flow Queuing」により、フロー単位でＴＣＰ通信を識別し、ＴＣＰセッションごとにセッションを管理して、帯域調整等の処理を行う。図３を参照して説明したとおり、帯域調整装置１は、セッションテーブル１３を用いて、ＴＣＰセッションを管理する。以下に、セッションの管理方法について具体的に説明する。【０１６０】
図２６は、図３のセッション管理部２２によるセッション管理処理を示したフローチャートである。セッション管理部２２は、受け付けたパケットがＴＣＰパケットであると判断したパケット判別部２１からパケットを受け取ったことを契機として、図２６に示す処理を開始する。【０１６１】
まず、ステップＳ９１で、セッション識別コードを計算する。セッション識別コードは、ＴＣＰパケットがいずれのセッションのものであるかを識別するための情報である。セッション識別コードの具体的な求め方については、後述する。【０１６２】
ステップＳ９２で、ステップＳ９１において求めたセッション識別コードが、セッションテーブル１３に登録されているか否かを判定する。セッション識別コードが既にセッションテーブル１３に登録されている場合（ステップＳ９２においてｙｅｓの場合）は、帯域調整装置１において帯域測定・帯域調整を行ったことのあるセッションであるので、新たな登録は不要であるので、ステップＳ１００に進む。ステップＳ１００では、パケットを受信帯域測定部２３に転送し、処理を終了する。【０１６３】
ステップＳ９２の判定において、ステップＳ９１で求めたセッション識別コードがセッションテーブル１３に未登録の場合（ステップＳ９２においてｎｏの場合）は、セッションテーブル１３への登録が必要であるので、ステップＳ９３に進み、セッションテーブル１３に空きがあるか否かを判定する。空きがある場合（ステップＳ９３においてｙｅｓの場合）は、ステップＳ９９に進み、セッション登録処理を実行する。具体的には、セッション識別コードやセッションに応じた目標帯域、その他必要な情報をセッションテーブル１３に登録し、ステップＳ１００に進む。ステップＳ１００の処理については上記のとおりである。【０１６４】
なお、ステップＳ９９のセッション登録処理において、セッションテーブル１３にセッションを登録するときに、目標帯域の初期値の設定を行う。初期値は、ＩＰアドレスやＴＣＰポート番号の範囲等の条件に基づき、予め定義されている複数の値の中から所定の初期値を選択する構成としてもよい。【０１６５】
セッションテーブル１３に空きがない場合（ステップＳ９３においてｎｏの場合）には、ステップＳ９３からステップＳ９４に進み、既存のセッション、すなわち、セッションテーブル１３に登録されているセッションが有効であるか否かを判定する。有効でないセッションが含まれる場合（ステップＳ９４においてｎｏの場合）は、ステップＳ９４からステップＳ９８に進み、セッション終了処理を実行し、ステップＳ９９に進む。具体的には、パケットの送信先である端末に終了通知を送信するとともに、有効でないセッションをセッションテーブル１３から削除して、ステップＳ９９に進む。ステップＳ９９以降の処理については、上記のとおりである。【０１６６】
セッションテーブル１３に登録されているセッションが全て有効な場合（ステップＳ９４においてｙｅｓの場合）は、ステップＳ９４からステップＳ９５に進む。そして、ステップＳ９５で、ステップＳ９１においてセッション識別コードを求めたパケットがＦＩＮパケットまたはＲＳＴパケットであるか否かを判定する。ステップＳ９５においては、ＴＣＰヘッダのコードビットを参照することにより判定を行う。【０１６７】
ステップＳ９５の判定において、パケットがＦＩＮパケットまたはＲＳＴパケットである場合（ステップＳ９５においてｙｅｓの場合）は、ステップＳ９５からステップＳ９７に進み、セッション終了処理を実行する。具体的には、パケットの送信先である端末に終了通知を送信するとともに、ステップＳ９１で求めたセッション識別コードを利用して、該当するセッションを取得し、セッションテーブル１３から、該当するセッションに係わる情報を削除し、処理を終了する。【０１６８】
パケットがＦＩＮパケットでもＲＳＴパケットでもない場合（ステップＳ９５においてｎｏの場合）は、ステップＳ９５からステップＳ９６に進み、帯域測定・帯域調整は行わずにそのままパケットを中継し、処理を終了する。【０１６９】
なお、ステップＳ９１で求めるセッション識別コードは、例えば、ＩＰアドレス及びＴＣＰポート番号の対を用いて算出する。ＩＰアドレス及びＴＣＰポートの対の長さは、Ｉｐｖ４で１０バイト、ＩＰｖ６で３４バイトであり、ここから４バイト程度のセッション識別コードを生成する。図２６のフローチャートの説明においても述べたとおり、セッションテーブル１３の検索は、セッション識別コードを用いて行う。【０１７０】
実施例では、セッションテーブル１３の検索を効率よく行うため、公知のハッシュテーブルを利用している。この場合、セッション識別コードは、ハッシュ値である。【０１７１】
具体的には、ＩＰアドレスとＴＣＰポート番号とからハッシュ値を求め、求めた値をセッション識別コードとする。ハッシュ値として適切なセッション識別コードを生成するために、例えば、チェックサム、ＣＲＣ（Cyclic Redundancy Check）コード等を用いることで、生成されるコードの値を適度にばらつかせることができる。【０１７２】
あるいは、ＩＰアドレス・ＴＣＰポート番号対の情報を、整数加算することにより得られる値をセッション識別コードとしてもよい。このようなコードの生成方法であっても、実用上は十分にコード値をばらつかせることができ、この場合、コード生成処理に要する時間は、１ギガヘルツで動作するマイクロプロセッサで処理した場合には、機械語命令が１０命令程度で、１０ナノ秒程度である。【０１７３】
以上説明したように、本実施形態に係るセッション管理方法によれば、帯域調整装置１は、パケットを受信するごとに、セッション識別コードを求め、求めたセッション識別コードがセッションテーブル１３に登録されているか否かの判定を行う。求めたセッション識別コードがセッションテーブル１３に未登録である場合には、新たにセッションテーブル１３への登録を行い、既に登録されている場合には、登録されている情報を利用して、帯域の測定や帯域調整を行う。このように、実施形態に係る帯域調整装置１は、ＴＣＰセッションが継続中であることを認識できれば、シーケンス番号やＡＣＫ番号を追跡して帯域の測定・調整処理が可能であって、ＴＣＰ通信の状態遷移を監視・追跡する必要がない。したがって、上記のセッションの管理方法を採ることで、帯域調整装置１にかかる負荷を軽減することができる。
〔セッションの監視・セッションの削除〕
ＴＣＰ通信は、通常は、ＦＩＮパケットやＲＳＴパケットにより終了する。これは、図２６のステップ９５〜ステップＳ９７のとおりである。しかし、これ以外にも、端末（送信端末２Ａや受信端末４Ｂ）の異常終了や、ネットワークの切断等の要因により、通信が正常に終了しないまま放置されることがある。通信が正常に終了せず、放置されている場合であっても、最終的には、端末のタイムアウトにより終了することもある。【０１７４】
そこで、図２６のステップＳ９４〜ステップＳ９８の処理のように、新たにセッションの登録を行うタイミングで、所定の期間以上に渡ってパケットが到着していないセッションについては、セッションテーブル１３から情報を削除する。あるいは、所定の時間おきにセッションテーブル１３を調べ、登録されているセッションの中で、所定の期間以上に渡ってパケットが到着していないものがある場合にはその情報を削除する。【０１７５】
このように、正常に終了できなかった通信が放置されていることを認識して、セッションテーブル１３から登録されている情報を削除することで、セッションテーブル１３の領域の無駄な使用を排除し、より多くのセッションについて帯域調整を行うことが可能となる。【０１７６】
また、帯域調整装置１は、新たにセッションの登録を行うタイミングや所定の期間以上に渡って監視をした結果、パケットが到着していないセッションを認識した場合は、セッションテーブル１３から情報の削除を行うとともに、端末に対して通信を終了する旨の通知をし、通信終結処理を実行する。通信終結処理を実行するために、予めＴＣＰセッションの監視時間をタイマで設定しておく。設定した時間を経過したセッションがあれば、そのセッションに係わる情報のセッションテーブル１３からの削除、及び端末への終了通知を行う。例えば、ＴＣＰコマンドの１つである「ＲＳＴ」を含むＲＳＴパケットを端末に送信することにより、終了通知を行う。ＲＳＴパケットを受信した端末は、ＴＣＰセッションの強制終了を実行する。【０１７７】
以上のとおり、通信障害や端末における障害によりＴＣＰセッションが回復不能となった場合には、サーバやクライアントの端末は、帯域調整装置１から受信した終了通知にしたがって、回復不能となったＴＣＰセッションを強制終了させる。ウェブサーバを例に挙げると、１０万セッションを管理する必要がある。このため、障害からの回復が不能となったセッションについては強制終了させることで、大量のアクセスを抱えるサーバにかかる処理負荷を大きく軽減させることが可能となる。
〔サービス通知を行う場合のセッション管理〕
サービス通知情報を用いて、複数の帯域調整装置１の間で帯域調整処理を分散させることについては先に説明したとおりである。ここでは、セッションを管理するときにサービス通知情報を利用する方法について説明する。【０１７８】
図２７は、サービス通知情報を用いたセッション管理処理を示したフローチャートである。ここでは、サービス通知情報として、図２４や図２５に示すサービス通知フラグを用いる場合を示す。【０１７９】
図２７に示す一連の処理のうち、ステップＳ９１〜ステップＳ１００の処理については、それぞれ図２６のステップＳ９１〜ステップＳ１００と同様であるため、ここでは説明を省略し、図２６と異なる処理について説明する。【０１８０】
ステップＳ９０で、パケット判別部２１から受け取ったパケットのＴＣＰヘッダを参照して、サービス通知フラグに帯域調整が未実施であることを示す値が格納されている場合に、ステップＳ９１に進み、上述のステップＳ９１以降のセッション管理処理を実行する。サービス通知フラグに帯域調整処理済であることを示す値が格納されている場合には、セッション管理部２２におけるセッション管理対象外のパケットであるとして、特に処理を行わず、処理を終了する。【０１８１】
ステップＳ１００で、パケットを受信帯域測定部２３に転送し、セッションの管理に関して実行すべき処理が完了すると、ステップＳ１０１で、サービス通知フラグに、帯域調整処理済であることを示す値を設定し、処理を終了する。【０１８２】
図２８は、サービス通知フラグ処理を示したフローチャートである。図２８は、図２７のセッション管理処理のうち、ステップＳ９０のサービス通知フラグチェック処理の詳細フローである。【０１８３】
まず、ステップＳ１１１で、ＴＣＰヘッダのサービス通知フラグがオン、すなわち、サービス通知フラグに帯域調整処理が実施済であることを示す値が格納されているか否かを判定する。サービス通知フラグがオフ、すなわち、サービス通知フラグには帯域調整処理が未実施であることを示す値が格納されている場合（ステップＳ１１１においてｎｏの場合）は、図２７のステップＳ９１以降のセッション管理処理に進む。【０１８４】
一方、サービス通知フラグがオンである場合（ステップＳ１１１においてｙｅｓの場合）は、ステップＳ１１２に進み、セッションテーブル１３に空きがあるか否かを更に判定する。セッションテーブル１３に空きがある場合（ステップＳ１１２においてｙｅｓの場合）は、図２７のステップＳ９１以降のセッション管理処理に進む。【０１８５】
セッションテーブル１３に空きがない場合（ステップＳ１１２においてｎｏの場合）は、ステップＳ１１３に進み、帯域測定・帯域調整は行わずにそのままパケットを中継し、処理を終了する。【０１８６】
なお、ステップＳ１１２のセッションテーブル１３の空きの有無を判定する処理については、既に帯域調整処理がなされたパケットであっても（ステップＳ１１１でｙｅｓの場合であっても）、セッションテーブル１３に空きがあれば、帯域調整の実施が可能と判断し、図２７のステップＳ９１以降のセッション管理処理を実行するためである。【０１８７】
また、ステップＳ１１２では、セッションテーブル１３に新たに１セッション分の情報を登録するだけの空きがあるか否かを判定しているが、これに限定されるものではない。例えば、所定の割合やしきい値を設定しておき、セッションテーブル１３の空きが所定の割合やしきい値を下回るか否かを判定する構成としてもよい。【０１８８】
このように、サービス通知フラグを参照し、予め処理対象のパケットであると判断した場合にステップＳ９１以降のセッション管理処理を実行する。言い換えると、帯域調整装置１にとっては非処理対象のパケットについてはステップ９１以降のセッション管理処理を不要と判断し、処理を行わない。これにより、帯域調整装置１にかかる負荷を軽減する効果が得られる。
〔活性挿入・活性除去〕
先に図２６等の説明においても述べたとおり、帯域調整装置１は、ＴＣＰパケットを受信したことを契機として、セッションテーブル１３に情報を登録し、帯域の測定・帯域調整を開始する。すなわち、帯域調整装置１は、帯域調整のためにＴＣＰ通信の「ＳＹＮ」から「ＦＩＮ／ＲＳＴ」までの状態遷移を監視することが不要である。【０１８９】
このため、あるセッションの最中に帯域調整装置１を備える中継装置３をネットワークに挿入した場合であっても、受信したＴＣＰパケットから帯域調整を行うことが可能となる。また、中継装置３が通信を中継中に帯域調整装置１を備える中継装置３をネットワークから除去した場合や中継装置３が障害等により停止した場合であっても、上記バッファリング処理を行っているため、ＴＣＰ通信に悪影響を与えずに済む。【０１９０】
ここでは、セッションの最中に帯域調整装置１を通信システムに設置することを「活性挿入」、セッションの最中に帯域調整装置１を通信システムから除去することを「活性除去」とする。【０１９１】
本実施形態に係る帯域調整装置１が活性挿入及び活性除去可能なことにより、通信システムを運用する観点からも、効果を有する。
〔セッションテーブル〕
上記のＴＣＰセッション管理方法においても述べたとおり、帯域調整装置１は、受信したパケットについて帯域調整を行うに当たり、セッションテーブル１３にセッションに係わる情報を登録する。ここでは、図２９及び図３０を参照して、セッションテーブル１３のデータ構造等について説明する。【０１９２】
図２９は、セッションテーブル１３の構造例を示す図である。図２９に示すセッションテーブル１３は、送信端末２Ａから受信端末４Ｂの方向及び逆方向の双方向のセッション情報を格納したハッシュテーブル（一次元配列）であり、インデックスと対応付けてセッションテーブルデータを格納する。【０１９３】
実施例では、ハッシュキーコードをテーブルの大きさで剰余をとった値をハッシュテーブルのインデックスとすることにより、セッション情報の識別を可能としている。かかるインデックスの求め方については、公知の技術を用いている。ハッシュキーコードは、上述のとおり、ＩＰアドレス及びＴＣＰポート番号の対から求める。【０１９４】
図３０は、セッションテーブルデータの構造例を示す図である。ハッシュテーブルのインデックスと対応付けられるセッションテーブルデータは、セッションごとに設けられ、管理情報Ｄ１、反対方向のセッション情報の場所を指示するデータＤ２、パケットの送信元及び送信先のＩＰアドレスやＴＣＰポート番号に係わるデータＤ３、時刻データＤ４（Ｄ４−１とＤ４−２）、単位時間Ｄ５、測定帯域データＤ６、目標帯域データＤ７、中継帯域データＤ８、シーケンス番号に係わるデータＤ９、ＡＣＫ番号に係わるデータＤ１０及びパケットのバッファデータＤ１１を含む。【０１９５】
管理情報Ｄ１は、帯域調整装置１のセッション管理部２２がセッションテーブル１３の管理に用いる情報である。【０１９６】
反対方向のセッション情報の場所を指示するデータＤ２は、図３０に示すセッション情報と対をなすセッション情報のセッションテーブル１３上の場所、すなわち図２９の「インデックス」を格納する。帯域調整装置１のセッション管理部２２等の各部は、データＤ２を用いて、セッションテーブル１３上の反対方向のセッション情報にアクセスする。データＤ２は、反対方向のトラフィックを中継しない場合には、無効である。【０１９７】
パケットの送信元及び送信先のＩＰアドレスやＴＣＰポート番号に係わるデータＤ３は、ハッシュキーコード（セッション識別コード）、送信ＩＰアドレス、受信ＩＰアドレス、送信ポート番号及び受信ポート番号を含む。【０１９８】
なお、データＤ３には、送信元及び送信先のＩＰアドレスやＴＣＰポート番号が格納されており、実施例では、ＩＰアドレス及びＴＣＰポート番号の対を利用して、ハッシュ子キーコードであるセッション識別コードを求めている。このため、反対方向のセッション情報の場所を指示するデータＤ２については、データＤ３を用いて、ＩＰアドレスとＴＣＰポート番号の送信／受信を入れ替えて算出することも可能である。ただし、データＤ２の領域に予め求めた値を格納しておくことで、ハッシュコード生成に要する時間を節約できる。【０１９９】
時刻データＤ４は、セッション開始時刻、データパケット中継時刻及びＡＣＫパケット中継時刻等の、帯域調整に係わる各種の時刻情報を含む。例えば、マイクロ秒単位の時刻数値や、Ｊｉｆｆｙ等のオペレーティングシステムの最小タイマ割り込みで計時する時刻値等の一般的な時刻値を使用する。例えば、現在時刻とセッション開始時刻との差からセッション継続時間が得られ、得られたセッション継続時間を用いて、上記セッションの削除処理等を行う。【０２００】
単位時間Ｄ５は、帯域調整装置１を備えるネットワーク機器（上記の例では中継装置３）や端末等における内部時刻の単位時間の長さを表す数値である。単位時間は、セッションごとに異なる場合があるので、実施例では、セッションごとに設定している。【０２０１】
測定帯域データＤ６は、受信帯域測定部２３において測定した帯域を格納し、それぞれ単位時間当たりの測定データ量、最大測定データ量、最小測定データ量、ＡＣＫ量、最大ＡＣＫ量及び最小ＡＣＫ量を含む。単位時間当たりの測定データ量及びＡＣＫ量は、単位時間Ｄ５の期間内に受信帯域測定部２３が計測したトラフィック量であり、それぞれの最大値及び最小値には、過去の最大値及び最小値を記録する。【０２０２】
目標帯域データＤ７には、単位時間に中継すべきデータパケットやＡＣＫパケットの増分の総量を表す情報、すなわち、目標帯域が格納される。目標帯域データＤ７の各項目の値は、セッション管理部２２が、新たにセッションテーブル１３に情報を登録するときに、所定の初期値を格納し、例えば反対方向の通信帯域の測定結果等に応じて、値を変更する。帯域の測定方法において説明したとおり、単位時間当たりの転送可能データ量は、データ量の積算である。これに対し、単位時間当たりの転送可能ＡＣＫ量は、ＡＣＫパケット長の増分ではなく、ＡＣＫの増分である。【０２０３】
中継帯域データＤ８は、帯域調整部２４の帯域調整により中継されるパケットの帯域を格納し、単位時間当たりの中継データ量、最大中継データ量、最小中継データ量、中継ＡＣＫ量、最大中継ＡＣＫ量及び最小中継ＡＣＫ量を含む。データ量及びＡＣＫ量は、測定帯域や目標帯域と同様に、それぞれデータ量の積算及びＡＣＫの増分からなる。なお、ＡＣＫが増えない場合には、中継ＡＣＫ量は「０」となる。また、ＡＣＫパケットの順序が入れ替わることにより、ＡＣＫ量が減少する場合には、該当するＡＣＫパケットについては無視してＡＣＫ量を計測する。【０２０４】
シーケンス番号に係わるデータＤ９は、バッファ部１４にバッファリングしているデータパケットのシーケンス番号を格納し、図３０に示す例では、バッファリングしているデータパケットのシーケンス番号のうち、最大シーケンス番号と最小シーケンス番号とを格納する。データＤ９により、バッファ部１４にバッファリングしているパケットの解析を不要とし、帯域調整装置１の処理が軽減される。【０２０５】
ＡＣＫ番号に係わるデータＤ１０は、バッファ部１４にバッファリングしているＡＣＫパケットのＡＣＫ番号を格納し、図３０に示す例では、バッファリングしているＡＣＫパケットのＡＣＫ番号のうち、最大ＡＣＫ番号を格納する。【０２０６】
バッファデータＤ１１は、データパケットや１個のＡＣＫパケットをキューに格納している。【０２０７】
図３０に示すとおり、セッションテーブルデータは、一方向の通信につき１２８バイトであるので、二方向については、２５６バイトとなる。メモリが1メガバイトとすると、４０９６セッションを登録可能である。現在の技術水準では、１０万セッションには２５メガバイト、１００万セッションには２５６メガバイトあれば、セッションテーブル１３を容易に実現できる。
〔目標帯域の設定〕
帯域調整処理において使用する目標帯域は、図３０に示すとおり、セッションテーブル１３に格納される。目標帯域の初期値は、例えば、ＩＰアドレスやポート番号の値の範囲に応じて、予め定義されている値の中から選択させる構成とすることができる。ＩＰアドレスやポート番号により目標帯域を決定することで、通信ごとに応じた目標帯域を設定可能となる。かかる処理は、例えばセッション管理部２２等が実行する。【０２０８】
帯域調整装置１が、ＴＣＰパケットの受信を認識し、帯域調整処理を開始すると、その後、目標帯域を動的に変更することも可能である。変更のタイミングとしては、例えば、何らかのパケット処理でセッションテーブル１３を参照したとき、図１２に示す定期的な割り込み処理を行ったとき、帯域調整装置１の管理者が意図的に変更するとき等がある。いずれの場合においても、その時点のセッションテーブルデータ（図３０）を参照して、データＤ７の単位時間転送可能データ量や単位時間転送可能ＡＣＫ量を適宜設定する。かかる処理は、例えば受信帯域測定部２３等が実行する。【０２０９】
動的に目標帯域を設定することで、実際の通信に応じたより適切な目標帯域を用いて帯域調整することが可能となる。【０２１０】
以上説明したように、本実施形態に係る帯域調整装置１によれば、帯域調整装置１を通過するパケットを監視して、通信に必要な帯域を示す目標帯域と、測定した実際の帯域とを比較し、比較に応じて、帯域の抑制や促進を行う。測定帯域が目標帯域を上回る場合には、パケットの送信タイミングを制御して一定の間隔、すなわち、目標帯域でパケットが送信されるよう、帯域を「抑制」する。一方、測定帯域が目標帯域を下回る場合には、予めバッファリングしておいたパケットを送信端末２Ａや受信端末４Ｂに代理で再送することにより、帯域を「促進」する。帯域の抑制により、通信性能が所定の範囲内に抑えられるので、バーストトラフィック等の発生を効果的に抑制することとなり、端末間での通信性能のばらつきを抑える。これにより、従来は１Ｍｂｐｓほどであった通信性能を、数Ｍｂｐｓ程度まで改善することができる。また、帯域の促進により、端末によるパケット送信が促されることで、パケット再送及び再送に伴うトラフィックの増加を効果的に抑制する。このように、実際の帯域を目標帯域に近付けるよう帯域の抑制または促進を行うことで、帯域調整装置１を経由する通信については、セッション単位で通信性能を所定の範囲に抑えるとともに、パケットの再送を効果的に抑えることができるため、通信の安定化に効果を奏する。【０２１１】
インターネット等のＩＰネットワークは、「信頼性のない通信」を提供するネットワーク基盤であるが、このネットワークの下で、ＴＣＰのような「信頼性のある通信」を提供する通信に対して上記帯域調整を行う。従来においては、端末ごとにネットワーク速度が大きく異なる場合には、端末間に提供される通信品質に不均衡が生じていた。例えば、サービスを提供するサーバは高速なネットワークに接続されているのに対し、ユーザ側端末は比較的低速なアクセスネットワークに接続されているのが一般的である。このような不均衡な環境において、上記の帯域の促進及び抑制を行うことで、「信頼性のある通信」を行う端末間の通信を改善する。【０２１２】
また、本実施形態に係る帯域調整装置１によれば、２方向の通信のうち１方向のパケットのみを監視して他の方向の帯域調整に利用することも可能であるので、対向する装置を設ける必要がない。また、経路上の任意の場所に設置してもよいため、ネットワーク設計コストを削減させることが可能である。更には、経路上に複数の帯域調整装置１設置しても、各装置が、自装置内を流れるパケットを監視して帯域調整を行うため、装置間で相互に干渉することもない。寧ろ、複数の帯域調整装置１のそれぞれで帯域調整を行うことにより、経路上の複数箇所で帯域調整がなされ、ＴＣＰ通信を更に安定化させることができる。【０２１３】
更には、ＴＣＰ／ＩＰパケットに対して通信に影響するような変更を加えるわけではなく、ＩＰ層の「信頼性のない通信」で許容されたパケット操作のみを用い、また、少なくともＴＣＰ通信の１方向のみの中継等で帯域調整処理を実施することが可能である。このような帯域調整処理は、比較的単純なソフトウェアによっても実現でき、これにより、ルータ、ブリッジ、ネットワークアプライアンス機器、端末等の通信機能を備えるネットワーク接続機器であれば、帯域調整装置１を組み込むことが可能となる。【０２１４】
なお、実施例では、帯域調整装置１を中継装置３に組み込む場合を例に説明しているため、パケットをどのように「中継」して帯域調整を行うかについて記載している。帯域調整装置１を端末に組み込む場合には、帯域調整装置１は、自装置が送出するパケットや自装置が受信するパケットを、帯域測定・帯域調整等の対象とし、上記の方法でパケットを「送信」することにより、実現できる。セッションの監視・削除処理については、端末が自装置内の帯域調整装置からＴＣＰ層に終了通知をすることで、回復不能なセッションを終了させている。【０２１５】
更には、帯域調整装置１による帯域調整処理では、帯域調整装置１を中継装置３に設けた場合であっても、従来のＴＣＰ技術のように、中継ＴＣＰを終端することがない。また、帯域調整処理は、既存のＴＣＰ／ＩＰ処理機能に依存していない。帯域調整装置１は、受信したＴＣＰ／ＩＰパケットの制御情報を参照することで、帯域調整処理を行うことができ、複雑な処理を不要とする。このため、中継装置３に帯域調整装置１を組み込む場合であっても、当該中継装置３に高速なTCP Splicingを実装させることが容易となる。したがって、処理性能のスケーラビリティを向上させる効果がある。また、処理性能のスケーラビリティの向上により、多くのトラフィックが集約される基幹ネットワークにおいても、セッションごとに管理して帯域調整を行うことが可能となる。【０２１６】
そして、帯域調整装置１は、受信したパケットがＴＣＰパケットであるか否かに基づいて、セッションを認識し、セッション単位で帯域調整を行うので、ＴＣＰヘッダを参照して、ＴＣＰ通信の状態を判断する必要がない。これにより、送信端末２Ａと受信端末４Ｂとの間で通信が継続しているときであっても、通信を切断させることなく、帯域調整装置１を通信システムに追加で設置すること、通信システムから除去することが可能となる。したがって、帯域調整装置１の追加や除去によってネットワークの信頼性を低下させることなく、ＴＣＰ通信の安定化を実現することが可能となる。【０２１７】
なお、上記においては、送信端末２Ａ−受信端末４Ｂ間の通信には、ＴＣＰを用いる場合の帯域調整を実施する方法を例に説明しているが、これには限らない。例えばＳＣＴＰ（Stream Control Transmission Protocol）やＸＴＰ（Xpress Transport Protocol）等を用いて通信を行う場合についても同様に、上記の帯域調整方法を適用することが可能である。
【図１】
2011151884.tif 000003
【図２】
2011151884.tif 000004
【図３】
2011151884.tif 000005
【図４】
2011151884.tif 000006
【図５】
2011151884.tif 000007
【図６】
2011151884.tif 000008
【図７】
2011151884.tif 000009
【図８】
2011151884.tif 000010
【図９】
2011151884.tif 000011
【図１０】
2011151884.tif 000012
【図１１】
2011151884.tif 000013
【図１２】
2011151884.tif 000014
【図１３】
2011151884.tif 000015
【図１４】
2011151884.tif 000016
【図１５】
2011151884.tif 000017
【図１６】
2011151884.tif 000018
【図１７】
2011151884.tif 000019
【図１８】
2011151884.tif 000020
【図１９】
2011151884.tif 000021
【図２０】
2011151884.tif 000022
【図２１】
2011151884.tif 000023
【図２２】
2011151884.tif 000024
【図２３】
2011151884.tif 000025
【図２４】
2011151884.tif 000026
【図２５】
2011151884.tif 000027
【図２６】
2011151884.tif 000028
【図２７】
2011151884.tif 000029
【図２８】
2011151884.tif 000030
【図２９】
2011151884.tif 000031
【図３０】
2011151884.tif 000032
【手続補正書】
【提出日】平成24年2月27日(2012.2.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
送信装置及び受信装置がネットワークを介して通信を行うときに、通信の帯域を制御する通信装置であって、
前記送信装置から前記受信装置、及び前記受信装置から送信装置の２方向の通信のうち、少なくとも１方向の通信について帯域を測定する測定部と、
通信に必要な帯域を示す目標帯域を含む帯域調整に係わる情報を記憶する記憶部と、
前記記憶部から前記帯域を測定した方向の目標帯域を読み出し、前記測定部において測定した帯域と該読み出した目標帯域との比較に基づき前記送信装置及び受信装置の間で送受されるパケットには変更を加えずに、パケットの破棄、パケットの中継または送信、複数の複写パケットの中継または送信、及び、パケットの送出間隔の制御を行うパケット処理を行いパケットの送出間隔を調整することにより、帯域の抑制または促進を行う調整部と
を備えることを特徴とする通信装置。
【請求項２】
前記測定部は、前記送信装置から第１のパケットを受信した前記受信装置が該送信装置宛に返送する第２のパケットを観測して、該第２のパケットの送信方向の通信についての帯域を測定し、
前記調整部は、前記第２のパケットの送出間隔を制御して、該第２のパケットの送出間隔を空け、または詰めることにより、帯域の抑制、または促進を行う
ことを特徴とする請求項１記載の通信装置。
【請求項３】
前記測定部は、前記第２のパケットに含まれる、前記送信装置が次に送信すべき前記第１のパケットを示す情報に基づき、該第２のパケットの送信方向の帯域を測定し、
前記調整部は、前記送信装置が次に送信すべき前記第１のパケットを示す情報の増分が前記目標帯域に近づくよう前記第２のパケットの送出間隔を制御して、前記帯域の抑制または促進を行う
ことを特徴とする請求項２記載の通信装置。
【請求項４】
前記送信装置が送信する第１のパケット及び前記受信装置が該第１のパケットに対して返送する第２のパケットを、該第１及び第２のパケットに含まれるパケットの順序を示す情報にしたがって格納するパケット格納部と、
を更に備え、
前記調整部は、
前記ネットワークを介してパケットを受信すると、該受信したパケット、及び前記パケット格納部に格納しているパケットの前記パケットの順序を示す情報を比較し、
前記パケットの順序を示す情報が互いに一致する場合には、前記パケット格納部に格納しているパケットまたは前記受信したパケットのいずれか一方を破棄し、他方のパケットについては該パケット格納部に保存させる
ことを特徴とする請求項１記載の通信装置。
【請求項５】
前記調整部は、前記第１または第２のパケットの送信方向の帯域が、該通信方向の前記目標帯域を下回る場合には、前記パケット格納部に格納したパケットを複写し、該複写パケットを、該目標帯域に応じた送出間隔で少なくとも１回送出する
ことを特徴とする請求項４記載の通信装置。
【請求項６】
前記調整部は、所定の期間以上に渡って前記第２のパケットを認識しない場合には、第１のパケットの順序を示す番号が、第２のパケットの順序を示す番号のうち最大の番号と対応する第１のパケットを前記パケット格納部から取得し、該取得した第１のパケットの複写パケットを、前記受信装置に向けて送出させる
ことを特徴とする請求項５記載の通信装置。
【請求項７】
前記調整部は、所定の期間以上に渡って前記第１のパケットを認識しない場合には、第２のパケットの順序を示す番号が最大の番号をとる第２のパケットを前記パケット格納部から取得し、該取得した第２のパケットの複写パケットを、前記送信装置に向けて送出させる
ことを特徴とする請求項５記載の通信装置。
【請求項８】
前記調整部は、前記パケットの順序を示す番号が同一の第２のパケットについての複写パケットを、所定の回数以上連続して送出して、前記送信装置における送信帯域を向上させる
ことを特徴とする請求項５記載の通信装置。
【請求項９】
前記測定部及び調整部は、前記送信装置及び受信装置間の二方向の通信のうち、一方の通信についての帯域測定及び帯域調整をそれぞれ行う第１の測定部及び第１の調整部、並びに他方の通信についての帯域測定及び帯域調整をそれぞれ行う第２の測定部及び第２の調整部を有し、
前記２方向のうちパケットを認識している通信方向の測定部及び調整部を動作させて、該認識している通信方向について帯域調整を行う
ことを特徴とする請求項１記載の通信装置。
【請求項１０】
前記調整部は、前記受信装置から受信した第２のパケットのうち、前記送信装置において破棄されるパケットについては、該送信装置に送出させず、自装置において破棄する
ことを特徴とする請求項４記載の通信装置。
【請求項１１】
前記送信装置または受信装置からパケットを受信したことを契機として前記記憶部に情報の登録を行い、該送信装置と受信装置との間のセッションの管理を開始する管理部と
を更に備え、
前記記憶部は、前記送信装置と前記受信装置との間のセッションを識別する情報と対応付けて、該セッションについての帯域調整に係わる情報を記憶する
ことを特徴とする請求項１記載の通信装置。
【請求項１２】
前記セッション管理部は、前記パケットに含まれる、通信の状態遷移を表す情報を参照し、該状態遷移を表す情報に該送信装置及び受信装置の間のセッションを終了する旨の値が格納されている場合には、該セッションを識別する情報及びこれと対応付けられた帯域調整に係わる情報を前記記憶部から削除するとともに、該パケットの送信先である前記送信装置または受信装置に対して、通信の終了を通知する通知パケットを生成し、送出する
ことを特徴とする請求項１１記載の通信装置。
【請求項１３】
前記セッション管理部は、管理中のセッションに関するパケットを所定の期間に渡って認識しない場合には、該セッションを識別する情報及びこれと対応付けられた帯域調整に係わる情報を前記記憶部から削除するとともに、前記送信装置及び受信装置に対して、通信の終了を通知するパケットを生成し、送出する
ことを特徴とする請求項１１記載の通信装置。
【請求項１４】
前記調整部は、帯域調整を行った前記パケットに、帯域調整処理が実施済であることを示す情報を設定し、受信したパケットに該情報が設定されているか否かに基づき、該受信したパケットが帯域調整の対象であるか否かを判定する
ことを特徴とする請求項１記載の通信装置。
【請求項１５】
前記調整部は、前記パケットのＴＣＰ（Transmission Control Protocol）ヘッダのＵＲＧＥＮＴビットには０を設定し、ＵＲＧＥＮＴポインタフィールドには、帯域調整処理が実施済であることを示す情報を設定し、該パケットのチェックサムフィールドには、該設定した情報の値を含める値を設定する
ことを特徴とする請求項１４記載の通信装置。
【請求項１６】
前記測定部は、前記測定した帯域と前記目標帯域とを比較し、該測定した帯域が該目標帯域を上回る場合には、予め設定されている目標帯域の許容範囲内で目標帯域を増やし、該測定した帯域が該目標帯域を下回る場合には、該許容範囲内で目標帯域を減らして、該変更した目標帯域を前記記憶部に記憶させる
ことを特徴とする請求項１記載の通信装置。
【請求項１７】
前記管理部は、管理するセッションについての目標帯域を、パケットのネットワークアドレスの範囲、通信プロトコルの種類、通信の継続時間、時間帯、測定帯域あるいは送出したデータ量に応じて変更し、該変更した目標帯域を前記記憶部に記憶させる
ことを特徴とする請求項１１記載の通信装置。
【請求項１８】
送信装置及び受信装置がネットワークを介して通信を行うときに、通信の帯域を制御する通信方法であって、
前記送信装置から前記受信装置、及び前記受信装置から送信装置の２方向の通信のうち、少なくとも１方向の通信について帯域を測定し、
通信に必要な帯域を示す目標帯域を含む帯域調整に係わる情報を記憶する記憶部から前記帯域を測定した方向の目標帯域を読み出し、前記測定した帯域と該読み出した目標帯域との比較に基づき前記送信装置及び受信装置の間で送受されるパケットには変更を加えずに、パケットの破棄、パケットの中継または送信、複数の複写パケットの中継または送信、及び、パケットの送出間隔の制御を行うパケット処理を行いパケットの送出間隔を調整することにより、帯域の抑制または促進を行う
ことを特徴とする通信方法。
【手続補正書】
【提出日】平成24年6月8日(2012.6.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
送信装置及び受信装置がネットワークを介して通信を行うときに、通信の帯域を制御する通信装置であって、
前記送信装置から前記受信装置、及び前記受信装置から送信装置の２方向の通信のうち、少なくとも１方向の通信について帯域を測定する測定部と、
通信に必要な帯域を示す目標帯域を含む帯域調整に係わる情報を記憶する記憶部と、
前記記憶部から前記帯域を測定した方向の目標帯域を読み出し、前記測定部において測定した帯域と該読み出した目標帯域との比較に基づき前記送信装置及び受信装置の間で送受されるパケットのヘッダを変更せずに、パケットの中継または送信、複数の複写パケットの中継または送信、及び、パケットの送出間隔の制御を行うパケット処理により、帯域の抑制または促進を行う調整部と
を備えることを特徴とする通信装置。
【請求項２】
前記測定部は、前記送信装置から第１のパケットを受信した前記受信装置が該送信装置宛に返送する第２のパケットを観測して、該第２のパケットの送信方向の通信についての帯域を測定し、
前記調整部は、前記第２のパケットの送出間隔を制御して、該第２のパケットの送出間隔を空け、または詰めることにより、帯域の抑制、または促進を行う
ことを特徴とする請求項１記載の通信装置。
【請求項３】
前記測定部は、前記第２のパケットに含まれる、前記送信装置が次に送信すべき前記第１のパケットを示す情報に基づき、該第２のパケットの送信方向の帯域を測定し、
前記調整部は、前記送信装置が次に送信すべき前記第１のパケットを示す情報の増分が前記目標帯域に近づくよう前記第２のパケットの送出間隔を制御して、前記帯域の抑制または促進を行う
ことを特徴とする請求項２記載の通信装置。
【請求項４】
前記送信装置が送信する第１のパケット及び前記受信装置が該第１のパケットに対して返送する第２のパケットを、該第１及び第２のパケットに含まれるパケットの順序を示す情報にしたがって格納するパケット格納部と、
を更に備え、
前記調整部は、
前記ネットワークを介してパケットを受信すると、該受信したパケット、及び前記パケット格納部に格納しているパケットの前記パケットの順序を示す情報を比較し、
前記パケットの順序を示す情報が互いに一致する場合には、前記パケット格納部に格納しているパケットまたは前記受信したパケットのいずれか一方を破棄し、他方のパケットについては該パケット格納部に保存させる
ことを特徴とする請求項１記載の通信装置。
【請求項５】
前記調整部は、前記第１または第２のパケットの送信方向の帯域が、該通信方向の前記目標帯域を下回る場合には、前記パケット格納部に格納したパケットを複写し、該複写パケットを、該目標帯域に応じた送出間隔で少なくとも１回送出する
ことを特徴とする請求項４記載の通信装置。
【請求項６】
前記調整部は、所定の期間以上に渡って前記第２のパケットを認識しない場合には、第１のパケットの順序を示す番号が、第２のパケットの順序を示す番号のうち最大の番号と対応する第１のパケットを前記パケット格納部から取得し、該取得した第１のパケットの複写パケットを、前記受信装置に向けて送出させる
ことを特徴とする請求項５記載の通信装置。
【請求項７】
前記調整部は、所定の期間以上に渡って前記第１のパケットを認識しない場合には、第２のパケットの順序を示す番号が最大の番号をとる第２のパケットを前記パケット格納部から取得し、該取得した第２のパケットの複写パケットを、前記送信装置に向けて送出させる
ことを特徴とする請求項５記載の通信装置。
【請求項８】
前記調整部は、前記パケットの順序を示す番号が同一の第２のパケットについての複写パケットを、所定の回数以上連続して送出して、前記送信装置における送信帯域を向上させる
ことを特徴とする請求項５記載の通信装置。
【請求項９】
前記測定部及び調整部は、前記送信装置及び受信装置間の二方向の通信のうち、一方の通信についての帯域測定及び帯域調整をそれぞれ行う第１の測定部及び第１の調整部、並びに他方の通信についての帯域測定及び帯域調整をそれぞれ行う第２の測定部及び第２の調整部を有し、
前記２方向のうちパケットを認識している通信方向の測定部及び調整部を動作させて、該認識している通信方向について帯域調整を行う
ことを特徴とする請求項１記載の通信装置。
【請求項１０】
前記調整部は、前記受信装置から受信した第２のパケットのうち、前記送信装置において破棄されるパケットについては、該送信装置に送出させず、自装置において破棄する
ことを特徴とする請求項４記載の通信装置。
【請求項１１】
前記送信装置または受信装置からパケットを受信したことを契機として前記記憶部に情報の登録を行い、該送信装置と受信装置との間のセッションの管理を開始する管理部と
を更に備え、
前記記憶部は、前記送信装置と前記受信装置との間のセッションを識別する情報と対応付けて、該セッションについての帯域調整に係わる情報を記憶する
ことを特徴とする請求項１記載の通信装置。
【請求項１２】
前記セッション管理部は、前記パケットに含まれる、通信の状態遷移を表す情報を参照し、該状態遷移を表す情報に該送信装置及び受信装置の間のセッションを終了する旨の値が格納されている場合には、該セッションを識別する情報及びこれと対応付けられた帯域調整に係わる情報を前記記憶部から削除するとともに、該パケットの送信先である前記送信装置または受信装置に対して、通信の終了を通知する通知パケットを生成し、送出する
ことを特徴とする請求項１１記載の通信装置。
【請求項１３】
前記セッション管理部は、管理中のセッションに関するパケットを所定の期間に渡って認識しない場合には、該セッションを識別する情報及びこれと対応付けられた帯域調整に係わる情報を前記記憶部から削除するとともに、前記送信装置及び受信装置に対して、通信の終了を通知するパケットを生成し、送出する
ことを特徴とする請求項１１記載の通信装置。
【請求項１４】
前記測定部は、前記測定した帯域と前記目標帯域とを比較し、該測定した帯域が該目標帯域を上回る場合には、予め設定されている目標帯域の許容範囲内で目標帯域を増やし、該測定した帯域が該目標帯域を下回る場合には、該許容範囲内で目標帯域を減らして、該変更した目標帯域を前記記憶部に記憶させる
ことを特徴とする請求項１記載の通信装置。
【請求項１５】
前記管理部は、管理するセッションについての目標帯域を、パケットのネットワークアドレスの範囲、通信プロトコルの種類、通信の継続時間、時間帯、測定帯域あるいは送出したデータ量に応じて変更し、該変更した目標帯域を前記記憶部に記憶させる
ことを特徴とする請求項１１記載の通信装置。
【請求項１６】
送信装置及び受信装置がネットワークを介して通信を行うときに、通信の帯域を制御する通信装置であって、
前記送信装置から前記受信装置、及び前記受信装置から送信装置の２方向の通信のうち、少なくとも１方向の通信について帯域を測定する測定部と、
通信に必要な帯域を示す目標帯域を含む帯域調整に係わる情報を記憶する記憶部と、
前記記憶部から前記帯域を測定した方向の目標帯域を読み出し、前記測定部において測定した帯域と該読み出した目標帯域との比較に基づき前記送信装置及び受信装置の間で送受されるパケットのパケット長を変更せずに、パケットの中継または送信、複数の複写パケットの中継または送信、及び、パケットの送出間隔の制御を行うパケット処理により、帯域の抑制または促進を行う調整部と
を備え、
前記調整部は、帯域調整を行った前記パケットに、帯域調整処理が実施済であることを示す情報を設定し、受信したパケットに該情報が設定されているか否かに基づき、該受信したパケットが帯域調整の対象であるか否かを判定する
ことを特徴とする通信装置。
【請求項１７】
前記調整部は、前記パケットのＴＣＰ（Transmission Control Protocol）ヘッダのＵＲＧＥＮＴビットには０を設定し、ＵＲＧＥＮＴポインタフィールドには、帯域調整処理が実施済であることを示す情報を設定し、該パケットのチェックサムフィールドには、該設定した情報の値を含める値を設定する
ことを特徴とする請求項１６記載の通信装置。
【請求項１８】
送信装置及び受信装置がネットワークを介して通信を行うときに、通信の帯域を制御する通信方法であって、
前記送信装置から前記受信装置、及び前記受信装置から送信装置の２方向の通信のうち、少なくとも１方向の通信について帯域を測定し、
通信に必要な帯域を示す目標帯域を含む帯域調整に係わる情報を記憶する記憶部から前記帯域を測定した方向の目標帯域を読み出し、前記測定した帯域と該読み出した目標帯域との比較に基づき前記送信装置及び受信装置の間で送受されるパケットのヘッダを変更せずに、パケットの中継または送信、複数の複写パケットの中継または送信、及び、パケットの送出間隔の制御を行うパケット処理により、帯域の抑制または促進を行う
ことを特徴とする通信方法。
【請求項１９】
送信装置及び受信装置がネットワークを介して通信を行うときに、通信の帯域を制御する通信方法であって、
前記送信装置から前記受信装置、及び前記受信装置から送信装置の２方向の通信のうち、少なくとも１方向の通信について帯域を測定し、
通信に必要な帯域を示す目標帯域を含む帯域調整に係わる情報を記憶する記憶部から前記帯域を測定した方向の目標帯域を読み出し、前記測定した帯域と該読み出した目標帯域との比較に基づき前記送信装置及び受信装置の間で送受されるパケットのパケット長を変更せずに、パケットの中継または送信、複数の複写パケットの中継または送信、及び、パケットの送出間隔の制御を行うパケット処理により、帯域の抑制または促進を行い、
帯域調整を行った前記パケットに、帯域調整処理が実施済であることを示す情報を設定し、受信したパケットに該情報が設定されているか否かに基づき、該受信したパケットが帯域調整の対象であるか否かを判定する
ことを特徴とする通信方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８４
【補正方法】変更
【補正の内容】
【００８４】
ステップＳ３４で、データパケットの単位転送量が目標転送量を上回る場合（ステップＳ３４でｎｏ／抑制の場合）には、帯域の抑制を行い、ステップＳ３６に進む。上記のとおり、帯域の抑制処理では、目標転送量に対してデータパケットの単位転送量が所定の範囲内になるようにデータパケットの送出間隔を制御している。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
ステップＳ３４の判定において、データパケットの単位転送量が目標転送量を下回る場合（ステップＳ３４でｙｅｓ／促進の場合）には、ステップＳ３５に進み、帯域の促進を行う。上記のとおり、帯域の促進処理では、バッファ部１４にバッファリングしておいたデータパケットを、目標転送量に応じて転送する。
【国際調査報告】
2011151884.tif 000033
2011151884.tif 000034
2011151884.tif 000035