(57)【要約】【課題】  受信側装置へ既に渡されたパケットの重複再送を防止できるようにする。【解決手段】  受信確認パケット５が受信確認パケット検出手段１ａで検出されると、受信パケット管理手段１ｂによって、受信確認情報５ａが受信確認情報記憶手段１ｃに格納される。その後、送信側装置から再送されたデータパケット４ｄ，４ｅが輻輳制御ネットワーク中継装置１に入力されると、受信済パケット判断手段１ｄによって、データパケット４ｄは未受信であり、データパケット４ｅは受信済みであることが判断される。すると、パケット転送手段１ｅは、データパケット４ｄを受信側装置へ転送し、データパケット４ｅを廃棄する。【選択図】  図１
2006287331.tif 000002
【特許請求の範囲】
【請求項１】
複数の伝送路間のデータを中継する輻輳制御ネットワーク中継装置において、
前記複数の伝送路を経由して送受信されるパケットのうち、受信側装置が受信したデータパケットの識別番号を送信側装置に対して応答する受信確認パケットを検出する受信確認パケット検出手段と、
前記受信確認パケット検出手段で検出された前記受信確認パケットに基づいて、前記受信側装置で受信が確認されたデータパケットの識別番号を受信確認情報記憶手段に登録する受信パケット管理手段と、
前記送信側装置から送信されたデータパケットの識別番号と前記受信確認情報記憶手段に格納された識別番号とを比較し、前記送信側装置から送信されたデータパケットが前記受信側装置で受信済みのデータパケットか否かを判断する受信済パケット判断手段と、
前記受信済パケット判断手段で受信済みと判断された場合、前記送信側装置から送られたデータパケットを廃棄し、前記受信済パケット判断手段で未受信と判断された場合、前記送信側装置から送られたデータパケットを前記受信側装置に転送するパケット転送手段と、
を有することを特徴とする輻輳制御ネットワーク中継装置。
【請求項２】
前記送信側装置から送られたデータパケット内のデータをデータキャッシュにキャッシュするキャッシュ手段と、
前記受信確認パケット検出手段で前記受信確認パケットが検出されると、前記受信確認パケットに基づいて前記受信側装置に到達していないパケットを前記データキャッシュから取得し、前記受信側装置に対して送信する代理再送手段と、
をさらに有することを特徴とする請求項１記載の輻輳制御ネットワーク中継装置。
【請求項３】
前記キャッシュ手段は、前記受信確認パケット検出手段で検出された前記受信確認パケットに基づいて前記受信側装置までの伝送路の品質を判定し、品質が所定値以下を判断した場合に前記データパケット内のデータのキャッシュを開始することを特徴とする請求項２記載の輻輳制御ネットワーク中継装置。
【請求項４】
前記受信確認パケット検出手段で検出された前記受信確認パケットに基づいて前記受信側装置までの伝送路の品質を判定し、品質が所定値以下を判断した場合、前記送信側装置に対して再送要求を送信する再送要求手段をさらに有することを特徴とする請求項１記載の輻輳制御ネットワーク中継装置。
【請求項５】
複数の伝送路間のデータを中継するための輻輳制御ネットワーク中継方法において、
受信確認パケット検出手段が、前記複数の伝送路を経由して送受信されるパケットのうち、受信側装置が受信したデータパケットの識別番号を送信側装置に対して応答する受信確認パケットを検出し、
受信パケット管理手段が、前記受信確認パケット検出手段で検出された前記受信確認パケットに基づいて、前記受信側装置で受信が確認されたデータパケットの識別番号を受信確認情報記憶手段に登録し、
受信済パケット判断手段が、前記送信側装置から送信されたデータパケットの識別番号と前記受信確認情報記憶手段に格納された識別番号とを比較し、前記送信側装置から送信されたデータパケットが前記受信側装置で受信済みのデータパケットか否かを判断し、
パケット転送手段が、前記受信済パケット判断手段で受信済みと判断された場合、前記送信側装置から送られたデータパケットを廃棄し、前記受信済パケット判断手段で未受信と判断された場合、前記送信側装置から送られたデータパケットを前記受信側装置に転送する、
ことを特徴とする輻輳制御ネットワーク中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークの輻輳を制御するための輻輳制御ネットワーク中継装置、および輻輳制御ネットワーク中継方法に関し、特に輻輳発生時のデータ再送を制御する輻輳制御ネットワーク中継装置、および輻輳制御ネットワーク中継方法に関する。
【背景技術】
【０００２】
大規模なネットワークは、広帯域の伝送路と低帯域の伝送路とが混在することがある。例えば、光ファイバによる高速の伝送路と、無線通信による低速の伝送路とを含むネットワークも存在する。
【０００３】
広帯域の伝送路と低帯域の伝送路とが混在する場合、広帯域の伝送路を介して伝送されたデータが低帯域の伝送路を通るとき輻輳が発生する場合がある。輻輳とは、ネットワークのトラフィックが増加して、有効な通信が困難になる状況である。
【０００４】
ここで、通信されるパケットに優劣があれば、輻輳が発生した場合、優先度の高いパケットを優先的に伝送させ、優先度の低いパケットを廃棄する方式（帯域制御方式）を採ることができる。ただし、優先度の高いパケットが、そのパケットに割り当てられた帯域幅よりも多く送信された場合、優先度の高いパケットにおいても輻輳が発生することは避けられない。
【０００５】
図２３は、従来の輻輳制御例を示す図である。図２３では、伝送されるパケットを、丸形の図形で示している。網掛けの丸が優先的に伝送すべきパケット（以下、優先パケットという）であり、白抜きの丸がその他のパケットである。
【０００６】
第１の状態［ＳＴ１］は、輻輳発生状態を示す図である。帯域幅の太い伝送路９０１から帯域幅の細い伝送路９０２に大量のパケットが流されて、輻輳が発生している状態を示している。第１の状態では、輻輳制御を行っておらず、パケットの優先度に関わらず、伝送できないパケット（廃棄されるパケット）が発生する。
【０００７】
第２の状態［ＳＴ２］は、帯域制御によって輻輳を回避した状態である。帯域制御を行うことで、優先パケットに対して所定の帯域幅を確保することができる。これにより、優先パケットは廃棄されずにすむ。
【０００８】
なお、帯域制御以外にも輻輳を制御する技術は存在する。例えば、受信側のノードの受信バッファに受信する余地が無いことでデータの転送に失敗した場合、受信側のノードが行っている他の通信が完了するのを待ってからデータの再送を行う技術がある（特許文献１参照）。
【０００９】
また、データを中継するルータにおいて、輻輳によってバッファに保持できず廃棄されたパケットがある場合、廃棄されたパケットに続いて受信したパケットを順次廃棄する技術がある（特許文献２参照）。
【００１０】
このように、輻輳が発生した場合、送信側ノードあるいはパケットを中継するノードにおいて、輻輳が発生したノードやネットワークへのデータ送信を停止し、輻輳状態を緩和させることができる。
【特許文献１】特開平２−９０７５１号公報
【特許文献２】特開２００３−２３４４３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、特許文献１，２のように、輻輳状態が解消するまでパケットを廃棄すると、未受信の最初のパケット以降のすべてのパケットの再送処理等、余計なパケットが発生し、ネットワーク経路のリソース有効利用が阻害されてしまう。その結果として輻輳の悪化を促進したり、通信品質が悪化したりすることがある。この問題は、優先度に応じた帯域制御を行った場合にも同様に発生する。
【００１２】
図２４は、輻輳発生時の通信状況を示す図である。図２４には、帯域制御によって確保された通信帯域よりも多くの優先パケットが伝送された場合を示している。
帯域制御によって優先パケット用に帯域を確保したとしても、確保された帯域幅を超える優先パケットが送られてきた場合には輻輳が発生し、一部の優先パケットが廃棄される。輻輳が発生しデータが廃棄されると、受信側の装置からは、廃棄されたデータの前までのデータの受信確認（ＡＣＫ）パケットが繰り返し送信される。送信側の装置は、同じ内容のＡＣＫパケットを三回受け取ると、廃棄されたデータパケット以降のすべてのパケットを再送する。すると、実際のデータパケットよりも多くのパケットが伝送路９０１を流れることとなり、データ転送の実効値で見た場合の帯域幅は、輻輳によって狭められてしまう。
【００１３】
なお、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）通信では、信頼性のある通信を行う為にパケットの受信確認を行っている。受信確認は、受信側が受信したパケットの受信確認パケットを送信側に送り返すことにより実現されている。この受信確認は、通常のＡＣＫを用いる方法の他に、Ｓ（Selective）ＡＣＫ（RFC2018）を用いることがある。
【００１４】
ＡＣＫは、ＴＣＰヘッダフォーマットのフラグに含まれる情報であり、ＡＣＫフラグに「１」が立っていればヘッダ中の受信確認番号が有効となる。受信確認番号は、受信側で正しく受信した連続のパケットの最終パケットのシーケンス番号である。
【００１５】
ＳＡＣＫは、ＴＣＰのヘッダに追加されたオプションフィールドに設定される情報である。ＳＡＣＫは、ＡＣＫで受信確認されたパケットの後で届かない（ロストした）パケットがあり、それ以降のパケットを受信した場合、どのパケットを受信したのかを個別に通知するために利用される。
【００１６】
ＳＡＣＫを用いれば、通信速度などの低下やパケットの無駄な重複再送を伴わずに、失われたパケットの再送が可能である。ただし、輻輳状態が酷くなるとＳＡＣＫの特徴であるそれらのメリットが有効に機能せず、逆にＴＣＰ輻輳回避動作を遅らせて無駄な再送パケットが流れる結果となる。
【００１７】
図２５は、ＳＡＣＫを用いたデータ転送例を示す図である。ここで、送信側装置から１００番〜１０２番のパケット９１０〜９１２が受信側装置に送られた際に、１０１番のパケット９１１が届かなかった（ロストした）ものとする。すると、受信側装置は、１００番まで受信したことを示すＡＣＫパケット９１３に、ＳＡＣＫにより１０２番のパケット９１２を受信したことを示す情報を付加する。
【００１８】
送信側装置は、高速のデータ通信を前提としている場合、ＡＣＫパケット９１３を待つことなく、後続のパケットを順次送信する。従って、１０３番と１０４番のパケット９１４，９１５が順次送信される。すると、受信側装置は、１０１番のパケット９１１を受信していないため、１００番まで受信したことを示すＡＣＫパケット９１６に、ＳＡＣＫにより１０２〜１０４番のパケットを受信したことを示す情報を付加する。
【００１９】
その後、同様に、送信側装置から１０５番と１０６番のパケット９１７，９１８が順次送信されると、受信側装置から、１０２〜１０６番のパケットを受信したことを示す情報が付加された、１００番まで受信したことを示すＡＣＫパケット９１９が送信される。
【００２０】
送信側装置は、ＡＣＫパケット９１３，９１６，９１９を受信することで１０１番のパケット９１１が届いていないことを認識すると、１０１番のパケット９２０を再送する。その後、送信側装置から１０７番のパケット９２１が送られると、受信側装置から１０７番まで受信したことを示すＡＣＫの応答パケット９２２が返される。以後、送信側装置からは、１０８番のパケット９２３、１０９番のパケット９２４が順次送信される。
【００２１】
このようにして、パケットのロストが発生しても、ロストしたパケットのみを再送することができ、無駄なパケットの再送を抑制することができる。
しかしながら、ＳＡＣＫは最大４つの情報しか１パケットで送ることはできないため、輻輳が発生し、ロストするパケットが頻発すると、とびとびで受信したすべてのパケットの情報を受信確認パケットに付加することができない。しかも、ＳＡＣＫは、ＡＣＫの代わりにはならない（ＳＡＣＫをもって受信確認としてはいけないと定義されている）。そのため、ＳＡＣＫによって受信側装置に届いていることが認識できたパケットであっても、そのパケットのＡＣＫパケットを受け取ることができなければ、いずれ再送する必要がある。
【００２２】
このように、データパケットロストが多発する状況では、ＳＡＣＫを用いたとしても、ロストしたパケットのみの再送ではなく、既に渡されたパケットの重複再送が発生してしまう。
【００２３】
本発明はこのような点に鑑みてなされたものであり、受信側装置へ既に渡されたパケットの重複再送を防止することができる輻輳制御ネットワーク中継装置、および輻輳制御ネットワーク中継方法を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明では上記課題を解決するために、図１に示すような複数の伝送路間のデータを中継する輻輳制御ネットワーク中継装置１が提供される。
受信確認パケット検出手段１ａは、複数の伝送路２，３を経由して送受信されるパケットのうち、受信側装置が受信したデータパケット４ａ，４ｃの識別番号を送信側装置に対して応答する受信確認パケット５を検出する。受信パケット管理手段１ｂは、受信確認パケット検出手段１ａで検出された受信確認パケット５に基づいて、受信側装置で受信が確認されたデータパケットの識別番号を受信確認情報記憶手段１ｃに登録する。受信済パケット判断手段１ｄは、送信側装置から送信されたデータパケットの識別番号と受信確認情報記憶手段１ｃに格納された識別番号とを比較し、送信側装置から送信されたデータパケット４ｄ，４ｅが受信側装置で受信済みのデータパケットか否かを判断する。パケット転送手段１ｅは、受信済パケット判断手段１ｄで受信済みと判断された場合、送信側装置から送られたデータパケット４ｅを廃棄し、受信済パケット判断手段１ｄで未受信と判断された場合、送信側装置から送られたデータパケット４ｄを受信側装置に転送する。
【００２５】
このような輻輳制御ネットワーク中継装置１によれば、受信確認パケット検出手段１ａにより、複数の伝送路２，３を経由して送受信されるパケットのうち、受信側装置が受信したデータパケット４ａ，４ｃの識別番号を送信側装置に対して応答する受信確認パケット５が検出される。すると、受信パケット管理手段１ｂにより、受信確認パケット検出手段１ａで検出された受信確認パケット５に基づいて、受信側装置で受信が確認されたデータパケットの識別番号が受信確認情報記憶手段１ｃに登録される。その後、受信済パケット判断手段１ｄにより、送信側装置から送信されたデータパケット４ｄ，４ｅの識別番号と受信確認情報記憶手段１ｃに格納された識別番号とが比較され、送信側装置から送信されたデータパケット４ｄ，４ｅが受信側装置で受信済みのデータパケットか否かが判断される。そして、パケット転送手段１ｅにより、受信済パケット判断手段１ｄで受信済みと判断された場合、送信側装置から送られたデータパケット４ｅが廃棄され、受信済パケット判断手段１ｄで未受信と判断された場合、送信側装置から送られたデータパケット４ｄが受信側装置に転送される。
【００２６】
また、上記課題を解決するために、複数の伝送路間のデータを中継するための輻輳制御ネットワーク中継方法において、受信確認パケット検出手段が、前記複数の伝送路を経由して送受信されるパケットのうち、受信側装置が受信したデータパケットの識別番号を送信側装置に対して応答する受信確認パケットを検出し、受信パケット管理手段が、前記受信確認パケット検出手段で検出された前記受信確認パケットに基づいて、前記受信側装置で受信が確認されたデータパケットの識別番号を受信確認情報記憶手段に登録し、受信済パケット判断手段が、前記送信側装置から送信されたデータパケットの識別番号と前記受信確認情報記憶手段に格納された識別番号とを比較し、前記送信側装置から送信されたデータパケットが前記受信側装置で受信済みのデータパケットか否かを判断し、パケット転送手段が、前記受信済パケット判断手段で受信済みと判断された場合、前記送信側装置から送られたデータパケットを廃棄し、前記受信済パケット判断手段で未受信と判断された場合、前記送信側装置から送られたデータパケットを前記受信側装置に転送する、ことを特徴とする輻輳制御ネットワーク中継方法が提供される。
【発明の効果】
【００２７】
本発明では、既に受信側装置で受信済のデータパケットが再送された場合、そのデータパケットを廃棄するようにした。これにより、受信側装置との間の伝送路で輻輳が発生した場合に、受信側装置へ既に渡されたパケットが、受信側装置への伝送路に重複再送されることを防止できる。その結果、輻輳が発生した場合の通信効率を向上させることができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本実施の形態の概略を示す図である。輻輳制御ネットワーク中継装置１は、複数の伝送路２，３間のデータを中継する装置である。なお、図１の例では、伝送路３は、伝送路２よりも通信速度が遅いものとする。また、伝送路２を介して送信側装置が接続されており、伝送路３を介して受信側装置が接続されているものとする。この輻輳制御ネットワーク中継装置１は、受信確認パケット検出手段１ａと、受信パケット管理手段１ｂ、受信確認情報記憶手段１ｃ、受信済パケット判断手段１ｄ、およびパケット転送手段１ｅを有している。
【００２９】
受信確認パケット検出手段１ａは、複数の伝送路２，３を経由して送受信されるパケットのうち、受信側装置が受信したデータパケット４ａ，４ｂの識別番号を送信側装置に対して応答するための受信確認パケット５を検出する。例えば、図１の例では、送信側装置が送信したデータパケット４ａ，４ｂ，４ｃのうち、データパケット４ａ，４ｃが受信側装置で受信されている。すると、受信側装置からは、データパケット４ａの識別番号（１００）までの受信を確認する情報（ＡＣＫ：１００）と、データパケット４ｃの識別番号（１０２）が受信されたことを示す情報（ＳＡＣＫ：１０２）とが含まれた受信確認パケット５が送信される。
【００３０】
受信パケット管理手段１ｂは、受信確認パケット検出手段１ａで検出された受信確認パケット５に基づいて、受信側装置で受信が確認されたデータパケットの識別番号を受信確認情報記憶手段１ｃに登録する。図１の例では、受信パケット管理手段１ｂは、識別番号（１００）までの受信が確認されたことを示す情報（ＡＣＫ：１００）と、識別番号（１０２）のデータパケット４ｃが受信されたことを示す情報（ＳＡＣＫ：１０２）とを、受信確認情報５ａとして受信確認情報記憶手段１ｃに格納する。
【００３１】
受信済パケット判断手段１ｄは、送信側装置から送信されたデータパケットの識別番号と受信確認情報記憶手段１ｃに格納された識別番号とを比較する。そして、受信済パケット判断手段１ｄは、送信側装置から送信されたデータパケット４ｄ，４ｅが受信側装置で受信済みのデータパケットか否かを判断する。図１の例では、データパケット４ｄの識別番号が１０１であり、データパケット４ｅの識別番号は１０２である。すると、受信済パケット判断手段１ｃは、データパケット４ｅに関して受信済みと判断し、データパケット４ｄに関して、未受信と判断する。
【００３２】
パケット転送手段１ｅは、受信済パケット判断手段１ｄで受信済みと判断された場合、送信側装置から送られたデータパケット４ｅを廃棄する。また、パケット転送手段１ｅは、受信済パケット判断手段１ｄで未受信と判断された場合、送信側装置から送られたデータパケット４ｄを受信側装置に転送する。
【００３３】
このような輻輳制御ネットワーク中継装置１によれば、例えば、送信側装置から送信されたデータパケット４ａ，４ｂ，４ｃ（再送パケットでは無いものとする）が伝送路２を介して入力されると、パケット転送手段１ｅにより、それらのデータパケット４ａ，４ｂ，４ｃが伝送路３へ転送される。このとき、伝送路３で輻輳が発生し、データパケット４ｂが失われると、受信側装置からは、データパケット４ａ，４ｃの受信を示す受信確認パケット５が送信される。
【００３４】
すると、受信確認パケット５が受信確認パケット検出手段１ａで検出され、受信パケット管理手段１ｂによって、受信確認情報５ａが受信確認情報記憶手段１ｃに格納される。なお、受信確認パケット５は、通常通りパケット転送手段１ｅによって送信側装置へ転送される。
【００３５】
その後、送信側装置では、データパケット４ｂのロストを認識し、データパケット４ｂ以降の各データパケット４ｄ，４ｅを再送する。再送されたデータパケット４ｄ，４ｅが輻輳制御ネットワーク中継装置１に入力されると、受信済パケット判断手段１ｄによって、データパケット４ｄは未受信であり、データパケット４ｅは受信済みであることが判断される。すると、パケット転送手段１ｅは、データパケット４ｄを受信側装置へ転送し、データパケット４ｅを廃棄する。
【００３６】
これにより、受信側装置との間の伝送路で輻輳が発生した場合に、受信側装置へ既に渡されたパケットが、受信側装置への伝送路に重複再送されることを防止できる。その結果、輻輳が発生した場合の通信効率を向上させることができる。すなわち、輻輳発生や輻輳の度合いを抑制し、輻輳によって発生する品質劣化を抑え、ネットワークリソースの有効利用を促進することができる。
【００３７】
ところで、図１に示した機能は、ネットワークを介して情報通信を行う分野全般に適用可能である。例えば、ＴＣＰ／ＩＰ通信に、図１に示したような機能を適用できる。すなわち、現在のＴＣＰ／ＩＰ技術は、ブロードバンド環境をはじめとする高速・広帯域ネットワーク環境において、その能力を有効に利用する為に改良されている。しかし、無線経路などの帯域幅の狭い伝送路が存在する場合もある。例えば、有線のネットワークに、無線ＬＡＮ（Local Area Network）が接続される場合もある。
【００３８】
広帯域向けのチューニングでは、データパケットをできるだけ連続して送信することが主眼となるため、輻輳の発生を送信側が認識したときには、輻輳でロストしたパケット以降のパケットも送信されている場合が多い。すると、輻輳の発生によりパケットの再送が生じると、輻輳状態が悪化し、結果的に帯域幅の狭い伝送路の有効利用が妨げられることとなる。そこで、本実施の形態に示す技術を適用し、大容量高速回線と低速回線の接続場所での輻輳制御を行うことで、輻輳の発生を抑制したり、輻輳状態を抑えたりする働きを行うことができる。
【００３９】
以下、本実施の形態の詳細を説明する。
図２は、本実施の形態のシステム構成例を示す図である。輻輳制御ネットワーク中継装置１００は、サーバ２１とクライアント２２とに対して、伝送路２３，２４を介して接続されている。サーバ２１から送信されるパケット３１は伝送路２３を介して輻輳制御ネットワーク中継装置１００に送られる。そして、パケット３１は、輻輳制御ネットワーク中継装置１００で中継され、伝送路２４を介してクライアント２２に送られる。
【００４０】
伝送路２４は、伝送路２３よりもデータの伝送速度が遅いものとする。例えば、伝送路２３が高速のＬＡＮであり、伝送路２４がＬＡＮよりも通信速度が低いＷＡＮ（Wide Area Network）である。
【００４１】
このようなネットワークでは、サーバ２１から伝送路２３経由で送信されたパケット３１が、伝送路２４上で輻輳を生じさせる場合がある。このように、輻輳制御ネットワーク中継装置１００は、輻輳によるパケットロストが発生する可能性がある伝送路の入り口（パケット送信側）に設置される。
【００４２】
図３は、本実施の形態に用いる輻輳制御ネットワーク中継装置のハードウェア構成例を示す図である。輻輳制御ネットワーク中継装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０６を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、および通信インタフェース１０４，１０５が接続されている。
【００４３】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００４４】
通信インタフェース１０４は、伝送路２３に接続されている。通信インタフェース１０４は、伝送路２３を介して、他のサーバ２１との間でデータの送受信を行う。
通信インタフェース１０５は、伝送路２４に接続されている。通信インタフェース１０５は、伝送路２４を介して、他のクライアント２２との間でデータの送受信を行う。
【００４５】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図４は、輻輳制御ネットワーク中継装置の機能を示すブロック図である。輻輳制御ネットワーク中継装置１００には、管理テーブル記憶部１１０，パケット解析エンジン１２０、ＡＣＫ／ＳＡＣＫ生成エンジン１３０、キャッシュコントロールエンジン１４０、およびデータキャッシュ１５０を有している。
【００４６】
管理テーブル記憶部１１０には、セッション管理テーブル１１１とデータ管理テーブル１１２とが格納されている。セッション管理テーブル１１１には、サーバ２１とクライアント２２間で確立されるセッションを管理するためのデータが登録される。データ管理テーブル１１２には、サーバ２１とクライアント２２間で送受信されるデータを管理するためのデータが登録される。
【００４７】
パケット解析エンジン１２０は、中継するパケットの内容を解析する。そして、パケット解析エンジン１２０は、セッション関連のパケット（SYN,FIN,RSETなど）を受信した場合、セッション管理テーブル１１１への追加・削除・変更を行う。
【００４８】
また、パケット解析エンジン１２０は、データパケットを受信した場合、セッション管理テーブル１１１とデータ管理テーブル１１２とを参照し、以下の処理を行う。パケット解析エンジン１２０は、データパケットを受信すると、まず、廃棄の可否チェック、キャッシュ要・不要のチェック、セッションテーブルの更新などを行う。その後、パケット解析エンジン１２０は、チェック結果に応じて、パケットの送出、キャッシュへの収納、キャッシュからデータパケットを出すようにキャッシュコントロールエンジン１４０への指示などの処理を行う。
【００４９】
さらに、パケット解析エンジン１２０は、ＡＣＫ／ＳＡＣＫパケットを受信した場合、管理テーブル記憶部１１０で確認し、ＡＣＫ／ＳＡＣＫ変換の要否を判断する。変換の必要があれば、パケット解析エンジン１２０は、ＡＣＫ／ＳＡＣＫ生成エンジン１３０に依頼を行う。
【００５０】
ＡＣＫ／ＳＡＣＫ生成エンジン１３０は、ＡＣＫからＳＡＣＫへの変換や、その逆の変換を行う。また、ＡＣＫ／ＳＡＣＫ生成エンジン１３０は、再送依頼などの処理を行う。
キャッシュコントロールエンジン１４０は、データパケットのキャッシュ関連処理を行う。具体的には、キャッシュコントロールエンジン１４０は、データキャッシュ１５０へのデータの保存、取り出し、ガベージコレクションなどの処理を行う。
【００５１】
図５は、セッション管理テーブルのデータ構造例を示す図である。セッション管理テーブル１１１には、セッション毎のセッション管理情報１１１ａ，１１１ｂ，１１１ｃ，・・・が登録されている。セッション管理情報１１１ａ，１１１ｂ，１１１ｃ，・・・は、セッションの識別情報とセッション情報とに大別される。
【００５２】
セッション管理情報１１１ａ，１１１ｂ，１１１ｃ，・・・には、セッションＩＤ（SessID）、送信元アドレス（ScrAddr）、送信元ポート（ScrPort）、宛先アドレス（DstAddr）、宛先ポート（DstPort）が含まれている。
【００５３】
セッションＩＤは、セッションの管理番号である。送信元アドレスは、セッションを用いてデータを送信する送信元装置（例えばサーバ２１）のＩＰアドレスである。送信元ポートは、送信元装置においてセッションで関連づけられたアプリケーションのポート番号である。宛先元アドレスは、セッションを用いてデータを受信する宛先装置（例えばクライアント２２）のＩＰアドレスである。宛先元ポートは、宛先装置においてセッションで関連づけられたアプリケーションのポート番号である。
【００５４】
セッション情報には、ＳＡＣＫ利用フラグ（ＳＡＣＫ）、データパケットの最終到着時刻（DataRcvTime）、ＡＣＫ，ＳＡＣＫパケットの最終到着時刻（AckRcvTime）、シーケンス番号（SqNo）、ＡＣＫ番号（ＡＣＫ）、ＳＡＣＫ状況（ＳＡＣＫ）、現在の状況（Active, CloseWaitなど）（Status）、再送状態、キャッシュ状態、処理内容、セッション作成情報（SessInfo）、および再送管理情報が含まれている。
【００５５】
データパケットの最終到着時刻は、下り方向に流されるデータパケット（例えば、サーバ２１からクライアント２２へのデータパケット）が最後に到着した時刻である。
ＡＣＫ，ＳＡＣＫパケットの最終到着時刻は、上り方向に流されるＡＣＫパケットやＳＡＣＫパケットが最後に到着した時刻である。
【００５６】
シーケンス番号は、上り方向と下り方向とのそれぞれのパケットのシーケンス番号である。
ＡＣＫ番号は、上り方向と下り方向とのそれぞれのＡＣＫ番号（ＡＣＫによって確認応答がされたシーケンス番号）である。
【００５７】
ＳＡＣＫ状況は、上り方向と下り方向とのそれぞれの、ＳＡＣＫによって通知されたシーケンス番号である。
現在の状況は、上り方向と下り方向との通信状況を表す状態情報である。状態情報としては、例えば、Active（通信中であることを示す）、CloseWait（通信を終了させる時の通信相手からの応答待ちであることを示す）などの情報が記録される。
【００５８】
再送状態は、上り方向と下り方向との、パケット再送の発生状況を示す情報である。例えば、再送状態として、パケットの再送が行われたか否かに関する情報が格納される。また、再送状態として、単位時間当たりに送信されたデータパケットの総数と、再送されたデータパケット数とを示す情報を格納することもできる。
【００５９】
キャッシュ状態は、上り方向と下り方向とのそれぞれのパケットに関し、キャッシュすべきか否かを示す情報である。
処理内容は、上り方向と下り方向とのそれぞれのパケットに関し、転送するパケットに対して実施する処理の内容が定義されている。例えば、キャッシュの開始条件、キャッシュされたパケットの廃棄条件等が定義されている。
【００６０】
セッション作成情報は、上り方向と下り方向とに関し、セッションを開始時点から管理しているのか、途中から管理しているのかを示す情報である。すなわち、原則的にはセッションの開始時点から輻輳制御ネットワーク中継装置１００でセッションが管理されるが、輻輳制御ネットワーク中継装置１００の起動時に既に確立されているセッションがある場合、そのセッションの途中の状態からセッション管理が行われる。
【００６１】
再送管理情報は、上り方向と下り方向とのパケットに関して、再送すべきか否かに関する情報である。
図６は、データ管理テーブルのデータ構造例を示す図である。データ管理テーブル１１２には、中継した個々のデータを管理するためのデータ管理情報１１２ａ，１１２ｂ，１１２ｃ，・・・が格納されている。具体的には、データ管理１１２ａ，１１２ｂ，１１２ｃ，・・・には、データ毎に、セッションＩＤ（SessID）、キャッシュでの位置情報、前のパケット、次のパケット、保存日時、及び状況の各情報が格納されている。
【００６２】
セッションＩＤは、セッションの管理番号である。キャッシュでの位置情報は、データキャッシュ１５０に格納された管理対象データの格納場所を特定する情報である。前のパケットは、同一セッションにおいて管理対象データの前に転送されたパケットに関する情報である。次のパケットは、同一セッションにおいて管理対象データの次に転送される予定のパケットに関する情報である。保存日時は、管理対象データがデータキャッシュ１５０に格納された日時を示す情報である。状況は、データを格納した際の状況に関する情報である。
【００６３】
次に、以上のような構成の輻輳制御ネットワーク中継装置１００における輻輳制御処理を具体的に説明する。なお、本実施の形態における輻輳制御処理は、重複再送制御処理、データキャッシュを用いた再送応答処理、部分データキャッシュ処理、および受信確認パケットの再送要求への変換処理からなる。
【００６４】
まず、重複再送制御処理について説明する。
図７は、重複再送制御処理を示す図である。図７の例では、サーバ２１から送られるデータパケット４１〜４７が、輻輳制御ネットワーク中継装置１００で中継され、クライアント２２に送信される場合を想定している。
【００６５】
パケット解析エンジン１２０は、通過するトラフィックの受信確認パケット４９ａ（ＡＣＫやＳＡＣＫ）の受信確認番号や受信範囲を記憶し、重複再送パケットの廃棄を行う。具体的には、パケット解析エンジン１２０は、通過するパケット４１〜４７に対する受信確認パケット４９（ＡＣＫやＳＡＣＫ）に記述されている受信確認番号や受信済み範囲の情報を読み出し、セッション管理テーブル１１１に、セッション管理情報として格納する。同時に、パケット解析エンジン１２０は、クライアント２２側から受信した受信確認パケット４９をサーバ２１側に転送する。
【００６６】
ここで、サーバ２１側で輻輳の発生を認識するとパケットの再送が行われる。図７の例では、パケット４２の再送パケット４２ａ、パケット４３の再送パケット４３ａ、パケット４６の再送パケット４６ａがサーバ２１から送信されている。なお、一般に、パケットの再送を行う場合、サーバ２１は、単位時間当たりのデータ量を少なくして、再度の輻輳の発生を防止する。
【００６７】
パケット解析エンジン１２０は、セッション管理テーブル１１１に格納されたセッション管理情報をもとに、重複送信されるデータパケットを検出する。重複送信されるデータパケットは、パケット解析エンジン１２０において廃棄される。図７の例では、受信確認パケット４９によって、パケット４３がクライアント２２で受信されていることが判明しているものとする。この場合、パケット解析エンジン１２０は、パケット４３の再送パケット４３ａを廃棄し、その他の再送パケット４２ａ，４６ａは、クライアント２２側の伝送路２４に転送する。
【００６８】
その後、後続のパケット４８がサーバ２１側から送られると、パケット解析エンジン１２０は、そのパケット４８をクライアント２２側の伝送路２４に転送する。
以下、重複再送制御のためにパケット解析エンジン１２０で実行する処理の手順を詳細に説明する。
【００６９】
図８は、重複再送制御処理の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］パケット解析エンジン１２０は、サーバ２１側の伝送路２３を介してデータパケットを受信する。
【００７０】
［ステップＳ１２］パケット解析エンジン１２０は、クライアント２２が受信済みのパケットか否かを判定する。具体的には、パケット解析エンジン１２０は、セッション管理テーブル１１１を参照し、受信したデータパケットに対応するセッションのセッション情報から、ＡＣＫ番号やＳＡＣＫ状況に関する情報を抽出し、既にクライアント２２で受信しているパケットのシーケンス番号を判断する。そして、パケット解析エンジン１２０は、受信したデータパケットのシーケンス番号に相当するパケットが、既にクライアント２２で受信されているか否かを判断する。
【００７１】
クライアント２２で受信済みのパケットの場合、処理がステップＳ１３に進められる。クライアント２２で未受信のパケットの場合、処理がステップＳ１４に進められる。
［ステップＳ１３］パケット解析エンジン１２０は、受信したデータパケットが、クライアント２２で受信済みのパケットの場合、データパケットを廃棄する。その後、処理が終了する。
【００７２】
［ステップＳ１４］パケット解析エンジン１２０は、受信したデータパケットが、クライアント２２で未受信のパケットの場合、そのパケット内のデータをデータキャッシュ１５０へ格納する。
【００７３】
［ステップＳ１５］パケット解析エンジン１２０は、クライアント２２へデータを送信し、処理を終了する。
このように、パケット解析エンジン１２０は、クライアント２２からの受信応答パケット（ＡＣＫやＳＡＣＫ）を受信すると、ＡＣＫで示される受信済みパケットのシーケンス番号や、ＳＡＣＫで示されるシーケンス番号の範囲をセッション管理テーブル１１１に記録するようにした。そして、パケット解析エンジン１２０は、セッション管理テーブル１１１を用いてクライアント２２で受信したパケットのシーケンス番号を管理することで、既にクライアント２２で受信済みのパケット（既に受信応答が返されているパケット）を輻輳制御ネットワーク中継装置１００で廃棄することができる。
【００７４】
なお、パケット解析エンジン１２０は、ＡＣＫ／ＳＡＣＫ生成エンジン１３０に対して、クライアント２２の代わりにＡＣＫやＳＡＣＫの受信確認パケットの送信を依頼することができる。例えば、クライアント２２からの受信確認パケットをパケット解析エンジン１２０では受信しているが、その受信確認パケットがサーバ２１に到達する前にロストする場合もある。そこで、パケット解析エンジン１２０は、クライアント２２から受信確認パケットで受信が確認されたパケットがサーバ２１から再送された場合、そのパケットに応じたＡＣＫまたはＳＡＣＫの送信をＡＣＫ／ＳＡＣＫ生成エンジン１３０に依頼する。すると、ＡＣＫ／ＳＡＣＫ生成エンジン１３０がＡＣＫまたはＳＡＣＫの受信確認パケットを生成し、サーバ２１に送信する。
【００７５】
なお、ＡＣＫ／ＳＡＣＫ生成エンジン１３０は、セッション管理テーブル１１１のセッション情報内のＳＡＣＫフラグを参照することで、そのセッションでＳＡＣＫが利用できるか否かを判断することができる。ＳＡＣＫが利用できない場合、ＡＣＫ／ＳＡＣＫ生成エンジン１３０は、ＡＣＫの受信確認パケットを生成する。
【００７６】
また、ＳＡＣＫが利用できる場合、ＡＣＫ／ＳＡＣＫ生成エンジン１３０は、ＳＡＣＫを利用すべきか否かを判断する。ＳＡＣＫを利用すべき場合とは、ロストしたパケットの後続のパケットがクライアント２２で受信されている場合である。ＡＣＫ／ＳＡＣＫ生成エンジン１３０は、ＳＡＣＫを利用すべき場合は、ＳＡＣＫの情報を含むＡＣＫの受信確認パケットを生成する。ＳＡＣＫを利用する必要が無い場合は、ＡＣＫの受信確認パケットを生成する。
【００７７】
なお、パケット解析エンジン１２０は、受信側からのＡＣＫやＳＡＣＫで確認できている以上のＡＣＫやＳＡＣＫの送信を、ＡＣＫ／ＳＡＣＫ生成エンジン１３０に依頼することはない。
【００７８】
次に、輻輳制御ネットワーク中継装置１００によるデータキャッシュ処理について説明する。輻輳制御ネットワーク中継装置１００は、通過するパケットをキャッシュすることで、送信元に代わって再送応答を行うことができる。
【００７９】
図９は、データキャッシュを用いた再送応答処理を示す図である。輻輳制御ネットワーク中継装置１００内のパケット解析エンジン１２０は、サーバ２１からパケット５１〜５４を受信すると、そのパケット５１〜５４をクライアント２２側に転送する。このとき、パケット解析エンジン１２０は、セッション管理テーブル１１１を参照し、受信済みのパケットか否かを判定する。受信済みのパケットであれば、パケット解析エンジン１２０は、受信したパケットを廃棄する。未受信のパケットであれば、パケット解析エンジン１２０は、キャッシュコントロールエンジン１４０を介して、そのパケット内のデータをデータキャッシュ１５０に格納し、受信したパケットをクライアント２２に送信する。
【００８０】
ここで、パケット５２がロストした場合を想定する。この場合、クライアント２２からは、パケット５１までのＡＣＫに、パケット５３、５４の受信を示すＳＡＣＫを付加した受信確認パケット５５が送信される。
【００８１】
この受信確認パケット５５を受信したパケット解析エンジン１２０は、キャッシュコントロールエンジン１４０を介して、パケット５２のデータをデータキャッシュ１５０から取得する。そして、パケット解析エンジン１２０は、取得したデータを有するパケットをクライアント２２に再送する。
【００８２】
その後、パケット解析エンジン１２０は、サーバ２１からパケット５２の再送があった場合は、その再送パケットを廃棄する。
なお、パケット解析エンジン１２０は、クライアント２２側からのＡＣＫやＳＡＣＫで確認できている以上のＡＣＫやＳＡＣＫは、サーバ２１に送信しない。すなわち、パケット解析エンジン１２０においてクライアント２２に再送を行った場合でも、パケット解析エンジン１２０は、クライアント２２からの再送されたパケットに応じた受信確認パケットの受信前に、再送されたパケットの受信確認パケットをサーバ２１に出力することはない。
【００８３】
なお、輻輳制御ネットワーク中継装置１００がサーバ２１からデータパケットを受信した際の処理は、図８に示したとおりである。以下、クライアント２２からＳＡＣＫの受信確認パケットを受信したときのパケット解析エンジン１２０のパケット再送処理の手順を説明する。
【００８４】
図１０は、パケット再送処理の手順を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］パケット解析エンジン１２０は、クライアント２２からのＡＣＫまたはＳＡＣＫの受信確認パケットを受信する。
【００８５】
［ステップＳ２２］パケット解析エンジン１２０は、再送対象のパケットがデータキャッシュ１５０に格納されているか否かを判断する。具体的には、パケット解析エンジン１２０は、セッション管理テーブル１１１を参照し、受信確認パケットで未受信としていながら、既にクライアント２２に対して送信しているパケットを再送対象とする。そして、パケット解析エンジン１２０は、再送対象のパケットがデータキャッシュ１５０に格納されているか否かをキャッシュコントロールエンジン１４０に問い合わせる。すると、キャッシュコントロールエンジン１４０は、再送対象のパケットのデータがデータキャッシュ１５０に格納されている場合、そのデータをパケット解析エンジン１２０に渡す。また、キャッシュコントロールエンジン１４０は、再送対象のパケットのデータがデータキャッシュ１５０に格納されていない場合、その旨をパケット解析エンジン１２０に通知する。
【００８６】
再送対象がデータキャッシュ１５０にある場合、処理がステップＳ２３に進められる。再送対象がデータキャッシュ１５０に無い場合、処理がステップＳ２４に進められる。
［ステップＳ２３］パケット解析エンジン１２０は、キャッシュコントロールエンジン１４０から受け取ったデータから再送パケットを生成し、その再送パケットをクライアント２２に対して送信する。その後、処理が終了する。
【００８７】
［ステップＳ２４］パケット解析エンジン１２０は、ステップＳ２１で受信した受信確認パケットを、サーバ２１へ送信する。その後、処理が終了する。
このようにして、輻輳制御ネットワーク中継装置１００によって、サーバ２１に代わって、パケットの再送を行うことができる。
【００８８】
なお、図９、図１０に示した例は、常時データキャッシュを行うものであるが、必要に応じてキャッシュ処理の実施の有無を切り替えることができる。例えば、輻輳制御ネットワーク中継装置１００は、ＳＡＣＫ状況から、伝送路の品質を判断し、抜けが多くなってきたらデータキャッシュを開始する。
【００８９】
図１１は、部分データキャッシュ処理を示す図である。輻輳制御ネットワーク中継装置１００内のパケット解析エンジン１２０は、サーバ２１からパケット６１〜６４を受信すると、そのパケット６１〜６４をクライアント２２側に転送する。
【００９０】
このとき、パケット解析エンジン１２０は、セッション管理テーブル１１１のキャッシュ状態を参照し、キャッシュの要否を判断する。クライアント２２側の伝送路２４で輻輳が発生していなければ、キャッシュ状態においてキャッシュ停止と設定されている。
【００９１】
図１１の例では、パケット６１〜６４を輻輳制御ネットワーク中継装置１００が受信した時点では、輻輳が発生していないものとする。この場合、パケット６１〜６４のキャッシュは行われない。その後、パケット６１〜６４がクライアント２２側の伝送路２４を伝送中に輻輳が発生し、例えば、パケット６２がロストしたものとする。
【００９２】
この場合、クライアント２２からは、パケット６１までの受信を確認するＡＣＫの受信確認パケット６５と、パケット６１まで及びパケット６３〜６５の受信を確認するＳＡＣＫの受信確認パケット６６とが出力される。受信確認パケット６５，６６は、パケット解析エンジン１２０によってサーバ２１へ転送される。
【００９３】
このときパケット解析エンジン１２０は、受信確認パケット６５，６６を解析し、伝送路２４での輻輳の発生を認識する。輻輳の発生を認識したパケット解析エンジン１２０は、セッション管理テーブル１１１にアクセスし、キャッシュ状態をキャッシュ開始に変更する。
【００９４】
その後、サーバ２１から再送パケット６２ａ，６３ａ，６４ａが送信されると、パケット解析エンジン１２０は、クライアント２２で受信できていないパケット６２に対する再送パケット６２ａを、クライアント２２側に再送する。なお、パケット解析エンジン１２０は、既に受信確認が行われている再送パケット６３ａ，６４ａは廃棄する。また、パケット解析エンジン１２０は、キャッシュコントロールエンジン１４０を介して、再送パケット６２ａ，６３ａ，６４ａに含まれるデータをデータキャッシュ１５０に格納する。
【００９５】
このように、輻輳制御ネットワーク中継装置１００は、ＳＡＣＫ状況から伝送路の品質を判断し、抜けが多くなってきたら、データキャッシュ生成を開始することができる。また、輻輳制御ネットワーク中継装置１００は、早めの再送要求をサーバ２１に対して行い、キャッシュ構築を早めることもできる。
【００９６】
これにより、通信品質の良い状態（輻輳が発生していない状態）でのキャッシュの必要がなくなる。
図１２は、伝送品質判断処理の手順を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
【００９７】
［ステップＳ３１］パケット解析エンジン１２０は、クライアント２２からＡＣＫまたはＳＡＣＫの受信確認パケットを受信する。
［ステップＳ３２］パケット解析エンジン１２０は、クライアント２２側の伝送路２４の通信品質を判断する。例えば、パケット解析エンジン１２０は、再送発生頻度が予め設定された閾値を超えているか否かにより通信品質を判断できる。
【００９８】
［ステップＳ３３］パケット解析エンジン１２０は、通信の品質が悪いと判断された場合、処理をステップＳ３４に進め、通信の品質が良好と判断された場合、処理をステップＳ３６に進める。
【００９９】
［ステップＳ３４］パケット解析エンジン１２０は、通信品質が悪化している場合、サーバ２１からのパケットのキャッシュ処理を実行中か否かを判断する。キャッシュ処理を実行中であれば、処理がステップＳ３８に進められる。キャッシュ処理を実行中でなければ、処理がステップＳ３５に進められる。
【０１００】
［ステップＳ３５］パケット解析エンジン１２０は、セッション管理テーブル１１１のキャッシュ状態をキャッシュ開始に設定する。その後、処理がステップＳ３８に進められる。
【０１０１】
［ステップＳ３６］パケット解析エンジン１２０は、通信品質が良好な場合、サーバ２１からのパケットのキャッシュ処理を実行中か否かを判断する。キャッシュ処理を実行中であれば、処理がステップＳ３７に進められる。キャッシュ処理を実行中でなければ、処理がステップＳ３８に進められる。
【０１０２】
［ステップＳ３７］パケット解析エンジン１２０は、セッション管理テーブル１１１のキャッシュ状態をキャッシュ停止に設定する。
［ステップＳ３８］パケット解析エンジン１２０は、再送対象のパケットがデータキャッシュ１５０に格納されているか否かを判断する。再送対象がデータキャッシュ１５０にある場合、処理がステップＳ３９に進められる。再送対象がデータキャッシュ１５０に無い場合、処理がステップＳ４０に進められる。
【０１０３】
［ステップＳ３９］パケット解析エンジン１２０は、キャッシュコントロールエンジン１４０から受け取ったデータから再送パケットを生成し、その再送パケットをクライアント２２に対して送信する。その後、処理が終了する。
【０１０４】
［ステップＳ４０］パケット解析エンジン１２０は、ステップＳ３１で受信した受信確認パケットを、サーバ２１へ送信する。その後、処理が終了する。
このようにして、通信品質に応じて、データキャッシュの有無を切り替えることができる。
【０１０５】
図１３は、部分データキャッシュの処理手順を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
［ステップＳ５１］パケット解析エンジン１２０は、サーバ２１側の伝送路２３を介してデータパケットを受信する。
【０１０６】
［ステップＳ５２］パケット解析エンジン１２０は、クライアント２２が受信済みのパケットか否かを判定する。クライアント２２で受信済みのパケットの場合、処理がステップＳ５３に進められる。クライアント２２で未受信のパケットの場合、処理がステップＳ５４に進められる。
【０１０７】
［ステップＳ５３］パケット解析エンジン１２０は、受信したデータパケットが、クライアント２２で受信済みのパケットの場合、データパケットを廃棄する。その後、処理が終了する。
【０１０８】
［ステップＳ５４］パケット解析エンジン１２０は、セッション管理テーブル１１１のキャッシュ状態を参照し、キャッシュ開始と設定されているか否かを判定する。キャッシュ開始と設定されていれば、処理がステップＳ５５に進められる。キャッシュ停止と設定されていれば、処理がステップＳ５６に進められる。
【０１０９】
［ステップＳ５５］パケット解析エンジン１２０は、受信したデータパケットが、クライアント２２で未受信のパケットの場合、そのパケット内のデータをデータキャッシュ１５０へ格納する。
【０１１０】
［ステップＳ５６］パケット解析エンジン１２０は、クライアント２２へデータを送信し、処理を終了する。
このように、輻輳が発生した場合にのみキャッシュ処理を行うようにすることができる。これにより、無駄なデータのキャッシュを行わずに済み、輻輳制御ネットワーク中継装置１００のＨＤＤ等の記憶媒体を有効利用できると共に、輻輳制御ネットワーク中継装置１００の処理付加を軽減できる。
【０１１１】
次に、クライアント２２から送られたＳＡＣＫの受信確認パケットを再送要求（受信確認パケット×３）に変換する処理について説明する。輻輳制御ネットワーク中継装置１００は、ＳＡＣＫを含む受信確認パケットを通常のＡＣＫの受信核にパケットに変換し、送信元に対して通常再送を要求することができる。例えば、輻輳制御ネットワーク中継装置１００は、経路の通信状態を考慮して、ＳＡＣＫによる部分再送よりも、ＴＣＰ輻輳制御を伴うＡＣＫによる再送が適していると判断した場合、受信側から送信されるＳＡＣＫパケットを、再送を示すＡＣＫパケット（ＡＣＫ×３）に変換して、サーバ２１へ送信する。
【０１１２】
図１４は、受信確認パケットから再送要求への変換処理を示す図である。輻輳制御ネットワーク中継装置１００にサーバ２１側からパケット７１〜７８が送られると、パケット解析エンジン１２０を介して、そのパケット７１〜７８がクライアント２２側に転送される。このとき、とびとびの複数のパケットがロストすると、クライアント２２からは、ＳＡＣＫの情報を含む複数の受信確認パケット７９，８０が出力される。
【０１１３】
パケット解析エンジン１２０は、受信確認パケット７９，８０を解析し、クライアント２２側の伝送路２４での通信状態を判断する。そして、パケット解析エンジン１２０は、伝送路２４でのパケットロストが多量であり、ＳＡＣＫによる部分再送よりも、ＴＣＰ輻輳制御を伴うＡＣＫによる再送が適していると判断した場合、ＡＣＫ／ＳＡＣＫ生成エンジン１３０に再送要求の送信を依頼する。すると、ＡＣＫ／ＳＡＣＫ生成エンジン１３０は、サーバ２１側に同じ内容の３つの受信確認パケット８１，８２，８３を連続して送信する。
【０１１４】
３つの受信確認パケット８１，８２，８３がサーバ２１に到達すると、サーバ２１は、輻輳の発生を認識し、ＡＣＫによって受信が確認されたパケット以降のすべてのパケットを、単位時間当たりのデータ量を減らして再送する。
【０１１５】
図１５は、受信確認パケット変換処理の手順を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
［ステップＳ６１］パケット解析エンジン１２０は、ＳＡＣＫを含む受信確認パケットを受信する。
【０１１６】
［ステップＳ６２］パケット解析エンジン１２０は、クライアント２２側の伝送路２４の通信品質を判断する。例えば、パケット解析エンジン１２０は、再送発生頻度が予め設定された閾値を超えているか否かにより通信品質を判断できる。
【０１１７】
［ステップＳ６３］パケット解析エンジン１２０は、通信の品質が悪いと判断された場合、処理をステップＳ６４に進め、通信の品質が良好と判断された場合、処理をステップＳ６６に進める。
【０１１８】
［ステップＳ６４］パケット解析エンジン１２０は、通信品質が悪い場合、ステップＳ６１で受信した受信確認パケットを廃棄する。
［ステップＳ６５］パケット解析エンジン１２０は、ＡＣＫ／ＳＡＣＫ生成エンジン１３０に対して、ＡＣＫパケット×３の生成を依頼する。すると、ＡＣＫ／ＳＡＣＫ生成エンジン１３０は、ＡＣＫの受信確認パケットを３つ生成し、サーバ２１に対して送信する。その後、処理が終了する。
【０１１９】
［ステップＳ６６］パケット解析エンジン１２０は、通信品質が良好な場合、ステップＳ６１で受信した受信確認パケットをサーバ２１に送信する。その後、処理が終了する。
このようにして、ＳＡＣＫの受信確認パケットを、パケットの再送信を要求するパケット（ＡＣＫの受信確認パケット×３）に変換して、転送することができる。その結果、通信品質が劣悪であり、パケットのロストが頻発する場合には、サーバ２１に対してパケットの再送信を促すことができる。このようなパケットの再送信を示すパケットを受け取ったサーバ２１では、クライアント２２までに劣悪な通信品質の伝送路が存在することを認識できる。その場合、サーバ２１は、送信するパケットの単位時間当たりのデータ量を減らして、パケットの再送信を行うことができる。単位時間当たりのデータ量を減らすことで、劣悪な通信品質の伝送路でもパケットをロストすることなく、クライアント２２に伝送させることができる。
【０１２０】
なお、受信確認パケットの変換処理は、部分データキャッシュ処理と同時に行うこともできる。その場合、輻輳制御ネットワーク中継装置１００は、ＳＡＣＫ情報に基づいて、ロストパケットが多くなったと判断すると、それ以降のデータをキャッシュすると共に、報告されたＳＡＣＫ範囲が多くあり、キャッシュに存在しないものも多い場合は、再送要求（ＡＣＫパケット×３）を行って輻輳状態を解消させ、データキャッシュを早めに完了させる。
【０１２１】
図１６は、受信確認パケット変換処理と部分データキャッシュ処理とを組み合わせた例を示す図である。輻輳制御ネットワーク中継装置１００にサーバ２１側からパケット９１〜９４が送られると、パケット解析エンジン１２０を介して、そのパケット９１〜９４がクライアント２２側に転送される。このとき、その中のあるパケットがロストすると、クライアント２２からは、ＳＡＣＫの情報を含む複数の受信確認パケット９５が出力される。
【０１２２】
パケット解析エンジン１２０は、受信確認パケット９５を解析し、クライアント２２側の伝送路２４での通信状態を判断する。そして、パケット解析エンジン１２０は、伝送路２４でのパケットロストが多量であり、ＳＡＣＫによる部分再送よりも、ＴＣＰ輻輳制御を伴うＡＣＫによる再送が適していると判断した場合、ＡＣＫ／ＳＡＣＫ生成エンジン１３０に再送要求の送信を依頼する。すると、ＡＣＫ／ＳＡＣＫ生成エンジン１３０は、サーバ２１側に同じ内容の３つの受信確認パケット９５ａ，９５ｂ，９５ｃを連続して送信する。
【０１２３】
３つの受信確認パケット９５ａ，９５ｂ，９５ｃがサーバ２１に到達すると、サーバ２１は、輻輳の発生を認識する。そして、サーバ２１は、ＡＣＫによって受信が確認されたパケット以降のすべてのパケットの内容を、単位時間当たりのデータ量を減らした再送パケット９２ａ，９３ａ，９４ａを送信する。
【０１２４】
パケット解析エンジン１２０は、再送パケット９２ａ，９３ａ，９４ａを受け取ると、クライアント２２で受信できていないパケット９２に対する再送パケット９２ａを、クライアント２２側に再送する。なお、パケット解析エンジン１２０は、既に受信確認が行われている再送パケット９３ａ，９４ａは廃棄する。また、パケット解析エンジン１２０は、キャッシュコントロールエンジン１４０を介して、再送パケット９２ａ，９３ａ，９４ａに含まれるデータをデータキャッシュ１５０に格納する。クライアント２２で受信が確認されていないパケット９２に対する再送パケット９２ａのみをクライアント２２に送信する。
【０１２５】
そのとき、パケット解析エンジン１２０は、ＡＣＫ／ＳＡＣＫ生成エンジン１３０を介して、受信側からのＡＣＫやＳＡＣＫで確認できているパケットの受信確認パケット９６，９７をサーバ２１に対して送信することもできる。
【０１２６】
［輻輳状態に応じた輻輳制御処理の組み合わせ例］
なお、図１６に示したような処理の組み合わせ以外にも、以上説明した各処理（輻輳制御処理は、重複再送制御処理、データキャッシュを用いた再送応答処理、部分データキャッシュ処理、および受信確認パケットの変換処理）を組み合わせて実行することができる。例えば、目的（品質重視、速度重視など）輻輳状態や受信側状況、ネットワーク環境を判断して、各処理を組み合わせて輻輳制御を行う。そのような処理を実行するのかは、ユーザが輻輳制御ネットワーク中継装置１００に対して予め設定する。
【０１２７】
具体的には、輻輳状態に応じて輻輳制御の内容を切り替える場合、初期状態（輻輳が発生していない）では、輻輳制御は行わない。中期（輻輳の発生が確認された後）は、重複再送制御処理を開始する。末期（パケットロストが多発した場合）は、データキャッシュを用いた再送応答処理と、受信確認パケットの変換処理（早めの再送要求）とを組み合わせて実行する。
【０１２８】
また、ＳＡＣＫ状況に応じて輻輳制御の内容を切り替える場合、ＳＡＣＫを含む受信確認パケットがまばら（単位時間当たりの発生数が閾値未満）の場合、輻輳制御は行わない。ＳＡＣＫを含む受信確認パケットが多発（単位時間当たりの発生数が閾値以上）した場合、データキャッシュを用いた再送応答処理と、受信確認パケットの変換処理（早めの再送要求）とを組み合わせて実行する。
【０１２９】
［輻輳状態の判定方式の例］
輻輳状態の判定方式としては、次のような方法が考えられる。例えば、ＲＴＴ（ラウンドトリップタイム）を用いる方法がある。ＲＴＴは、あるデータを送ってから、相手の確認応答が戻ってくるまでにかかる時間である。ＲＴＴを用いる方法では、送信したデータパケットに対するＡＣＫの応答時間（ＲＴＴ）の閾値をユーザが予め設定し、パケット解析エンジン１２０は、ＲＴＴが閾値を超えた場合、輻輳状態にあると判断する。
【０１３０】
また、再送率で輻輳状態を判定することもできる。再送率は、単位時間当たりのデータパケットに対する再送要求数の比率である。再送率の閾値をユーザが予め設定し、パケット解析エンジン１２０は、再送率が閾値を超えた場合、輻輳状態にあると判断する。
【０１３１】
［ＳＡＣＫ状況の判定例］
通過パケットに対する抜け（クライアント２２で受信確認がされていないパケット）の比率の閾値をユーザが設定する。パケット解析エンジン１２０は、ＳＡＣＫ情報に基づいて、通過パケットに対するロストしたパケットの比率を計算し、予め設定された閾値よりもパケットの抜けが多ければ、パケットのロストが多発していると判定する。
【０１３２】
なお、輻輳制御ネットワーク中継装置１００は、セッション管理テーブル１１１のガベージコレクション機能を有している。また、キャッシュコントロールエンジン１４０は、データキャッシュ１５０からの再送確認済みのデータの削除機能を有している。
【０１３３】
さらに、キャッシュコントロールエンジン１４０は、データキャッシュ１５０から、途中で終了したセッションのデータを廃棄する機能も有している。例えば、キャッシュコントロールエンジン１４０は、データ通信が途絶えてから一定時間経過した場合、セッションが終了したものと判断する。また、キャッシュコントロールエンジン１４０は、同じクライアントから新たなセッションが開始された場合に、もとのセッションが終了したものと判断してもよい。
【０１３４】
［実施の形態の効果］
上記実施の形態に示すように、輻輳が発生した場合に無駄な再送パケットを輻輳制御ネットワーク中継装置１００で廃棄することにより、クライアント２２側の伝送路２４の有効通信率を向上させることができる。ここで、有効通信率とは、送信されたパケットのうちの有効通信パケットの占める割合である。有効通信パケットとは、アプリケーションで有効に利用されたパケットである。再送などによる重複パケットや通信が最後まで完了せずに、やり取りされたにも関わらずアプリケーションで利用されなかったパケットは、無効通信パケットである。
【０１３５】
例えば、１セッションに１０パケットのデータをやり取りする通信の場合、１０パケットのみで通信が完了した場合には、有効利用率＝１００％＝１０（アプリで利用したパケット）／１０（全パケット）となる。
【０１３６】
５パケットの再送が発生し、合計１５パケットやり取りした場合には、有効利用率＝66.7％＝１０（アプリで利用したパケット）／１５（全パケット）となる。
５パケット目でエラーなどにより通信が終了した場合には、有効利用率＝０％＝０（アプリで利用したパケット）／５（全パケット）となる。
【０１３７】
図１７は、過負荷状態におけるリンクの有効利用率を示すグラフである。このグラフは、帯域幅１００Ｍｂｐｓの伝送路にその帯域幅を上回るパケットを印加した時に、その伝送路を流れるパケットの全通信パケット中の有効通信パケットの比率をグラフ化したものである。このグラフでは、横軸に印可付加（Ｍｂｐｓ）を取り、縦軸に有効通信率（％）を取っている。
【０１３８】
このグラフには、本実施の形態による輻輳制御をおこなった場合と、輻輳制御を行わなかった場合とについて、単位時間あたりの総パケット数と、成功セッション数×１セッションでやり取りされるパケット数から計算をして作成している。グラフ中、丸印で示されているのが輻輳制御を行った場合の計算値であり、ばつ印で示されているのが輻輳制御を行わなかった場合の計算値である。
【０１３９】
なお、本実施の形態を適用した場合のシミュレーションは、輻輳制御ネットワーク中継装置１００において廃棄されるパケットを求め、有効通信比率を計算したものである。
このように、図１７のグラフで示されるように、本実施の形態によれば重複パケットの通過を防ぐことができることにより、伝送路の有効利用が可能となる。しかも、伝送路が有効に利用されることで、輻輳発生頻度及び輻輳の度合いも低下する。
【０１４０】
［輻輳制御ネットワーク中継装置を利用したネットワークシステム例］
以下、本実施の形態に係る輻輳制御ネットワーク中継装置を適用したネットワークシステムの構成例を説明する。なお、輻輳制御ネットワーク中継装置は基本的に、通信を行うサーバとクライアント間であればどこにでも設置できる。ただし、効果的な輻輳制御を行う場合は、輻輳によるパケットロストが発生する伝送路の入り口側に、輻輳制御ネットワーク中継装置を設置するのが望ましい。
【０１４１】
図１８は、輻輳制御ネットワーク中継装置の第１の設置例を示す図である。この例では、パケットの伝送方向毎に個別の伝送路が設けられ、復路（＝クライアントからのＡＣＫが帰る経路）に輻輳制御ネットワーク中継装置１００ａが設置されている。
【０１４２】
サーバ２１ａからクライアント２２ａへ伝送させるデータパケット２０１は、伝送路２３ａ，２４ａを介して送られる。ここで、伝送路２４ａは、伝送路２３ａよりも通信速度が遅い伝送路である。
【０１４３】
クライアント２２ａからサーバ２１ａへ伝送させる受信確認パケット２０２は、伝送路２４ｂ，２３ｂを介してサーバ２１ａに送られる。伝送路２４ｂと伝送路２３ｂとの間には、輻輳制御ネットワーク中継装置１００ａが配置されている。輻輳制御ネットワーク中継装置１００ａは、通常のパケット中継機能に加え、少なくとも、受信確認パケットの変換処理（早めの再送要求）の実施機能を備えている。
【０１４４】
このようなネットワークシステムでは、サーバ２１ａから送信されたデータパケット２０１は、伝送路２３ａに出力され、伝送路２４ａに送られる。ここで、サーバ２１ａから送信したデータパケット２０１の量が過大であれば、伝送路２４ａで輻輳が発生する。
【０１４５】
クライアント２２ａから受信確認パケット２０２が送信されると、その受信確認パケット２０２は、伝送路２４ｂを介して輻輳制御ネットワーク中継装置１００ａに送られる。輻輳制御ネットワーク中継装置１００ａは、受信確認パケット２０２にも基づいて、伝送路２４ａでの通信品質を判断する。そして、輻輳制御ネットワーク中継装置１００ａは、伝送路２４ａの通信品質が所定値より悪ければ、サーバ２１ａに対して再送要求（ＡＣＫ×３）を送信する。
【０１４６】
このようにして、サーバとクライアント間の通信において、往路と復路の経路が異なる場合、復路に輻輳制御ネットワーク中継装置１００ａを設置することで、早めの再送要求を行うことができる。
【０１４７】
図１９は、輻輳制御ネットワーク中継装置の第２の設置例を示す図である。この例では、パケットの伝送方向毎に個別の伝送路が設けられ、それぞれの伝送路に輻輳制御ネットワーク中継装置１００ｂ，１００ｃが設置されている。
【０１４８】
サーバ２１ｂからクライアント２２ｂへ伝送させるデータパケット２０３は、伝送路２３ｃ，２４ｃを介して送られる。伝送路２３ｃと伝送路２４ｃとの間には、輻輳制御ネットワーク中継装置１００ｂが配置されている。ここで、伝送路２４ｃは、伝送路２３ｃよりも通信速度が遅い伝送路である。輻輳制御ネットワーク中継装置１００ｂは、通常のパケット中継機能に加え、重複再送制御処理、データキャッシュを用いた再送応答処理（データキャッシュ処理部分）、および部分データキャッシュ処理（データキャッシュ処理部分）の各機能を有している。
【０１４９】
クライアント２２ｂからサーバ２１ｂへ伝送させる受信確認パケット２０４は、伝送路２４ｄ，２３ｄを介してサーバ２１ｂに送られる。伝送路２４ｄと伝送路２３ｄとの間には、輻輳制御ネットワーク中継装置１００ｃが配置されている。また、輻輳制御ネットワーク中継装置１００ｃは、輻輳制御ネットワーク中継装置１００ｂに対して管理用ネットワークで接続されている。
【０１５０】
輻輳制御ネットワーク中継装置１００ｃは、通常のパケット中継機能に加え、データキャッシュを用いた再送応答処理（受信確認パケットに応じた再送処理部分）、部分データキャッシュ処理（通信品質判定部分）、および受信確認パケットの変換処理（早めの再送要求）の各機能を有している。
【０１５１】
このようなネットワークシステムでは、輻輳制御ネットワーク中継装置１００ｂ，１００ｃ間で情報交換し連携して動作することで、各種輻輳制御が行われる。これにより、サーバ２１ｂとクライアント２２ｂとの間の通信で往路と復路の経路が異なる場合にも、任意の輻輳制御を実施することが可能となる。
【０１５２】
図２０は、輻輳制御ネットワーク中継装置の第３の設置例を示す図である。この例では、輻輳制御ネットワーク中継装置１００ｆには、ＬＡＮのような高速の伝送路２３ｇを介してクライアント２２ｄが接続されている。同様に、輻輳制御ネットワーク中継装置１００ｅには、ＬＡＮのような高速の伝送路２３ｆを介してサーバ２１ｄが接続されている。そして、２つの輻輳制御ネットワーク中継装置１００ｆ，１００ｅ間は、伝送路２３ｇ，２３ｆよりも通信速度が遅い伝送路２４ｆ（例えばＷＡＮ）で接続されている。
【０１５３】
このように、通信経路上に伝送速度が遅い伝送路２４ｆがある場合、その伝送路２４ｆの両端に輻輳制御ネットワーク中継装置１００ｆ，１００ｅを配置することで、両方向のデータ通信を効率よく行うことができる。
【０１５４】
図２１は、輻輳制御ネットワーク中継装置の第４の設置例を示す図である。この例では、サーバ２１ｅと輻輳制御ネットワーク中継装置１００ｇとの間が、高速の伝送路２３ｈで接続されている。また、輻輳制御ネットワーク中継装置１００ｇと複数のクライアント２２ｅ〜２２ｈの間が、伝送路２３ｈより低速の伝送路２４ｇ〜２４ｊで接続されている。なお、輻輳制御ネットワーク中継装置１００ｇには、伝送路２３ｈ，２４ｇ〜２４ｊの数に応じた通信インタフェースを備えている。
【０１５５】
このようなネットワークであれば、複数のクライアント２２ｅ〜２２ｈとサーバ２１ｅとの間の通信を効率よく行うことができる。
図２２は、輻輳制御ネットワーク中継装置の第５の設置例を示す図である。この例では、３つの輻輳制御ネットワーク中継装置１００ｈ，１００ｉ，１００ｊが互いに高速の伝送路２３ｉ，２３ｊ，２３ｋで接続されている。また、輻輳制御ネットワーク中継装置１００ｈ，１００ｉ，１００ｊには、それぞれ伝送路２３ｉ，２３ｊ，２３ｋより低速でデータ通信が行われるネットワーク２４ｋ，２４ｌ，２４ｍが接続されている。
【０１５６】
このように、ネットワーク２４ｋ，２４ｌ，２４ｍと高速の伝送路２３ｉ，２３ｊ，２３ｋとの接続部分に輻輳制御ネットワーク中継装置１００ｈ，１００ｉ，１００ｊを設置することで、多種多様なネットワーク２４ｋ，２４ｌ，２４ｍ間の通信を、効率よく行うことができる。
【０１５７】
［プログラムによる機能の実現］
上記の処理機能は、コンピュータによって実現することができる。その場合、輻輳制御ネットワーク中継装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１５８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１６０】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
［実施の形態における技術的特徴のまとめ］
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【０１６１】
（付記１）  複数の伝送路間のデータを中継する輻輳制御ネットワーク中継装置において、
前記複数の伝送路を経由して送受信されるパケットのうち、受信側装置が受信したデータパケットの識別番号を送信側装置に対して応答する受信確認パケットを検出する受信確認パケット検出手段と、
前記受信確認パケット検出手段で検出された前記受信確認パケットに基づいて、前記受信側装置で受信が確認されたデータパケットの識別番号を受信確認情報記憶手段に登録する受信パケット管理手段と、
前記送信側装置から送信されたデータパケットの識別番号と前記受信確認情報記憶手段に格納された識別番号とを比較し、前記送信側装置から送信されたデータパケットが前記受信側装置で受信済みのデータパケットか否かを判断する受信済パケット判断手段と、
前記受信済パケット判断手段で受信済みと判断された場合、前記送信側装置から送られたデータパケットを廃棄し、前記受信済パケット判断手段で未受信と判断された場合、前記送信側装置から送られたデータパケットを前記受信側装置に転送するパケット転送手段と、
を有することを特徴とする輻輳制御ネットワーク中継装置。
【０１６２】
（付記２）  前記送信側装置から送られたデータパケット内のデータをデータキャッシュにキャッシュするキャッシュ手段と、
前記受信確認パケット検出手段で前記受信確認パケットが検出されると、前記受信確認パケットに基づいて前記受信側装置に到達していないパケットを前記データキャッシュから取得し、前記受信側装置に対して送信する代理再送手段と、
をさらに有することを特徴とする付記１記載の輻輳制御ネットワーク中継装置。
【０１６３】
（付記３）  前記キャッシュ手段は、前記受信確認パケット検出手段で検出された前記受信確認パケットに基づいて前記受信側装置までの伝送路の品質を判定し、品質が所定値以下を判断した場合に前記データパケット内のデータのキャッシュを開始することを特徴とする付記２記載の輻輳制御ネットワーク中継装置。
【０１６４】
（付記４）  前記受信確認パケット検出手段で検出された前記受信確認パケットに基づいて前記受信側装置までの伝送路の品質を判定し、品質が所定値以下を判断した場合、前記送信側装置に対して再送要求を送信する再送要求手段をさらに有することを特徴とする付記１記載の輻輳制御ネットワーク中継装置。
【０１６５】
（付記５）  複数の伝送路間のデータを中継するための輻輳制御ネットワーク中継プログラムにおいて、
コンピュータを、
前記複数の伝送路を経由して送受信されるパケットのうち、受信側装置が受信したデータパケットの識別番号を送信側装置に対して応答する受信確認パケットを検出する受信確認パケット検出手段、
前記受信確認パケット検出手段で検出された前記受信確認パケットに基づいて、前記受信側装置で受信が確認されたデータパケットの識別番号を受信確認情報記憶手段に登録する受信パケット管理手段、
前記送信側装置から送信されたデータパケットの識別番号と前記受信確認情報記憶手段に格納された識別番号とを比較し、前記送信側装置から送信されたデータパケットが前記受信側装置で受信済みのデータパケットか否かを判断する受信済パケット判断手段、
前記受信済パケット判断手段で受信済みと判断された場合、前記送信側装置から送られたデータパケットを廃棄し、前記受信済パケット判断手段で未受信と判断された場合、前記送信側装置から送られたデータパケットを前記受信側装置に転送するパケット転送手段、
として機能させることを特徴とする輻輳制御ネットワーク中継プログラム。
【０１６６】
（付記６）  複数の伝送路間のデータを中継するための輻輳制御ネットワーク中継方法において、
受信確認パケット検出手段が、前記複数の伝送路を経由して送受信されるパケットのうち、受信側装置が受信したデータパケットの識別番号を送信側装置に対して応答する受信確認パケットを検出し、
受信パケット管理手段が、前記受信確認パケット検出手段で検出された前記受信確認パケットに基づいて、前記受信側装置で受信が確認されたデータパケットの識別番号を受信確認情報記憶手段に登録し、
受信済パケット判断手段が、前記送信側装置から送信されたデータパケットの識別番号と前記受信確認情報記憶手段に格納された識別番号とを比較し、前記送信側装置から送信されたデータパケットが前記受信側装置で受信済みのデータパケットか否かを判断し、
パケット転送手段が、前記受信済パケット判断手段で受信済みと判断された場合、前記送信側装置から送られたデータパケットを廃棄し、前記受信済パケット判断手段で未受信と判断された場合、前記送信側装置から送られたデータパケットを前記受信側装置に転送する、
ことを特徴とする輻輳制御ネットワーク中継方法。
【図面の簡単な説明】
【０１６７】
【図１】本実施の形態の概略を示す図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】本実施の形態に用いる輻輳制御ネットワーク中継装置のハードウェア構成例を示す図である。
【図４】輻輳制御ネットワーク中継装置の機能を示すブロック図である。
【図５】セッション管理テーブルのデータ構造例を示す図である。
【図６】データ管理テーブルのデータ構造例を示す図である。
【図７】重複再送制御処理を示す図である。
【図８】重複再送制御処理の手順を示すフローチャートである。
【図９】データキャッシュを用いた再送応答処理を示す図である。
【図１０】パケット再送処理の手順を示すフローチャートである。
【図１１】部分データキャッシュ処理を示す図である。
【図１２】伝送品質判断処理の手順を示すフローチャートである。
【図１３】部分データキャッシュの処理手順を示すフローチャートである。
【図１４】受信確認パケットの変換処理を示す図である。
【図１５】受信確認パケット変換処理の手順を示すフローチャートである。
【図１６】受信確認パケット変換処理と部分データキャッシュ処理とを組み合わせた例を示す図である。
【図１７】過負荷状態におけるリンクの有効利用率を示すグラフである。
【図１８】輻輳制御ネットワーク中継装置の第１の設置例を示す図である。
【図１９】輻輳制御ネットワーク中継装置の第２の設置例を示す図である。
【図２０】輻輳制御ネットワーク中継装置の第３の設置例を示す図である。
【図２１】輻輳制御ネットワーク中継装置の第４の設置例を示す図である。
【図２２】輻輳制御ネットワーク中継装置の第５の設置例を示す図である。
【図２３】従来の輻輳制御例を示す図である。
【図２４】輻輳発生時の通信状況を示す図である。
【図２５】ＳＡＣＫを用いたデータ転送例を示す図である。
【符号の説明】
【０１６８】
１  輻輳制御ネットワーク中継装置
１ａ  受信確認パケット検出手段
１ｂ  受信パケット管理手段
１ｃ  受信確認情報記憶手段
１ｄ  受信済パケット判断手段
１ｅ  パケット転送手段
２，３  伝送路
４ａ〜４ｅ  データパケット
５  受信確認パケット
５ａ  受信確認情報
【図１】
2006287331.tif 000003
【図２】
2006287331.tif 000004
【図３】
2006287331.tif 000005
【図４】
2006287331.tif 000006
【図５】
2006287331.tif 000007
【図６】
2006287331.tif 000008
【図７】
2006287331.tif 000009
【図８】
2006287331.tif 000010
【図９】
2006287331.tif 000011
【図１０】
2006287331.tif 000012
【図１１】
2006287331.tif 000013
【図１２】
2006287331.tif 000014
【図１３】
2006287331.tif 000015
【図１４】
2006287331.tif 000016
【図１５】
2006287331.tif 000017
【図１６】
2006287331.tif 000018
【図１７】
2006287331.tif 000019
【図１８】
2006287331.tif 000020
【図１９】
2006287331.tif 000021
【図２０】
2006287331.tif 000022
【図２１】
2006287331.tif 000023
【図２２】
2006287331.tif 000024
【図２３】
2006287331.tif 000025
【図２４】
2006287331.tif 000026
【図２５】
2006287331.tif 000027
【手続補正書】
【提出日】平成17年4月21日(2005.4.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
図２４は、輻輳制御時の通信状況を示す図である。図２４では輻輳が発生したことにより、重複した再送パケットなどが発生し、結果的に帯域制御が確保した帯域を有効に利用できない状況になっている状態を示している。
帯域制御によって優先パケット用に帯域を確保したとしても、確保された帯域幅を超える優先パケットが送られてきた場合には輻輳が発生し、一部の優先パケットが廃棄される。輻輳が発生しデータが廃棄されると、受信側の装置からは、廃棄されたデータの前までのデータの受信確認（ＡＣＫ）パケットが繰り返し送信される。送信側の装置は、同じ内容のＡＣＫパケットを三回受け取ると、廃棄されたデータパケット以降のすべてのパケットを再送する。すると、実際のデータパケットよりも多くのパケットが伝送路９０１を流れることとなり、データ転送の実効値で見た場合の帯域幅は、輻輳によって狭められてしまう。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
伝送路２４は、その内部に伝送路２３よりもデータの伝送速度が遅い伝送路を含んでいるものとする。例えば、伝送路２３が高速のＬＡＮであり、伝送路２４の内部はＬＡＮよりも通信速度が低いＷＡＮ（Wide Area Network）である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１４０
【補正方法】変更
【補正の内容】
【０１４０】
［輻輳制御ネットワーク中継装置を利用したネットワークシステム例］
図２に示した輻輳制御ネットワーク中継装置の設置例を第１の設置例とし、以下、本実施の形態に係る輻輳制御ネットワーク中継装置の他の設置例を説明する。なお、輻輳制御ネットワーク中継装置は基本的に、通信を行うサーバとクライアント間であればどこにでも設置できる。ただし、効果的な輻輳制御を行う場合は、輻輳によるパケットロストが発生する伝送路の入り口側に、輻輳制御ネットワーク中継装置を設置するのが望ましい。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１４１
【補正方法】変更
【補正の内容】
【０１４１】
図１８は、輻輳制御ネットワーク中継装置の第２の設置例を示す図である。この例では、パケットの伝送方向毎に個別の伝送路が設けられ、復路（＝クライアントからのＡＣＫが帰る経路）に輻輳制御ネットワーク中継装置１００ａが設置されている。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１４７
【補正方法】変更
【補正の内容】
【０１４７】
図１９は、輻輳制御ネットワーク中継装置の第３の設置例を示す図である。この例では、パケットの伝送方向毎に個別の伝送路が設けられ、それぞれの伝送路に輻輳制御ネットワーク中継装置１００ｂ，１００ｃが設置されている。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１５２
【補正方法】変更
【補正の内容】
【０１５２】
図２０は、輻輳制御ネットワーク中継装置の第４の設置例を示す図である。この例では、輻輳制御ネットワーク中継装置１００ｆには、ＬＡＮのような高速の伝送路２３ｇを介してクライアント２２ｄが接続されている。同様に、輻輳制御ネットワーク中継装置１００ｅには、ＬＡＮのような高速の伝送路２３ｆを介してサーバ２１ｄが接続されている。そして、２つの輻輳制御ネットワーク中継装置１００ｆ，１００ｅ間は、伝送路２３ｇ，２３ｆよりも通信速度が遅い伝送路２４ｆ（例えばＷＡＮ）で接続されている。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１５４
【補正方法】変更
【補正の内容】
【０１５４】
図２１は、輻輳制御ネットワーク中継装置の第５の設置例を示す図である。この例では、サーバ２１ｅと輻輳制御ネットワーク中継装置１００ｇとの間が、高速の伝送路２３ｈで接続されている。また、輻輳制御ネットワーク中継装置１００ｇと複数のクライアント２２ｅ〜２２ｈの間が、伝送路２３ｈより低速の伝送路２４ｇ〜２４ｊで接続されている。なお、輻輳制御ネットワーク中継装置１００ｇには、伝送路２３ｈ，２４ｇ〜２４ｊの数に応じた通信インタフェースを備えている。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１５５
【補正方法】変更
【補正の内容】
【０１５５】
このようなネットワークであれば、複数のクライアント２２ｅ〜２２ｈとサーバ２１ｅとの間の通信を効率よく行うことができる。
図２２は、輻輳制御ネットワーク中継装置の第６の設置例を示す図である。この例では、３つの輻輳制御ネットワーク中継装置１００ｈ，１００ｉ，１００ｊが互いに高速の伝送路２３ｉ，２３ｊ，２３ｋで接続されている。また、輻輳制御ネットワーク中継装置１００ｈ，１００ｉ，１００ｊには、それぞれ伝送路２３ｉ，２３ｊ，２３ｋより低速でデータ通信が行われるネットワーク２４ｋ，２４ｌ，２４ｍが接続されている。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１６７
【補正方法】変更
【補正の内容】
【０１６７】
【図１】本実施の形態の概略を示す図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】本実施の形態に用いる輻輳制御ネットワーク中継装置のハードウェア構成例を示す図である。
【図４】輻輳制御ネットワーク中継装置の機能を示すブロック図である。
【図５】セッション管理テーブルのデータ構造例を示す図である。
【図６】データ管理テーブルのデータ構造例を示す図である。
【図７】重複再送制御処理を示す図である。
【図８】重複再送制御処理の手順を示すフローチャートである。
【図９】データキャッシュを用いた再送応答処理を示す図である。
【図１０】パケット再送処理の手順を示すフローチャートである。
【図１１】部分データキャッシュ処理を示す図である。
【図１２】伝送品質判断処理の手順を示すフローチャートである。
【図１３】部分データキャッシュの処理手順を示すフローチャートである。
【図１４】受信確認パケットの変換処理を示す図である。
【図１５】受信確認パケット変換処理の手順を示すフローチャートである。
【図１６】受信確認パケット変換処理と部分データキャッシュ処理とを組み合わせた例を示す図である。
【図１７】過負荷状態におけるリンクの有効利用率を示すグラフである。
【図１８】輻輳制御ネットワーク中継装置の第２の設置例を示す図である。
【図１９】輻輳制御ネットワーク中継装置の第３の設置例を示す図である。
【図２０】輻輳制御ネットワーク中継装置の第４の設置例を示す図である。
【図２１】輻輳制御ネットワーク中継装置の第５の設置例を示す図である。
【図２２】輻輳制御ネットワーク中継装置の第６の設置例を示す図である。
【図２３】従来の輻輳制御例を示す図である。
【図２４】輻輳制御時の通信状況を示す図である。
【図２５】ＳＡＣＫを用いたデータ転送例を示す図である。