(57)【要約】【課題】本発明の目的は、エンド端末の設定変更なしに、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による性能劣化を抑制する。【解決手段】本発明は、トンネルの入り口となるトンネリング手段２０１の前段に帯域制限器２０６を設けてトンネルに流入するトラフィックの量を抑制し、ＴＣＰ２０２とＴＣＰ２０３の間の区間における欠落の発生や遅延の増大を抑制することで、ＴＣＰ２０２およびＴＣＰ２０３のＴＣＰの輻輳制御を実質的に無効にさせ、ＴＣＰ２１２およびＴＣＰ３１２におけるレート抑制制御が過剰に行われるのを防ぐ。【選択図】図１
2008078966.tif 000002
【特許請求の範囲】
【請求項１】
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムであって、
送信側のＬＡＮから到着したフレームの流量を監視し、この流量がＴＣＰトンネルのボトルネック帯域以上である場合に前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
を有することを特徴とする通信システム。
【請求項２】
前記制御手段は、前記フレームの流量が前記ＴＣＰトンネルのボトルネック帯域以下になるようにフレームを欠落させることを特徴とする請求項１に記載の通信システム。
【請求項３】
前記制御手段は、前記フレームの流量が前記ＴＣＰトンネルのボトルネック帯域以下になるように、前記フレームの伝送を遅延させることを特徴とする請求項１に記載の通信システム。
【請求項４】
前記制御手段は、前記ＴＣＰトンネルにフレームを流入するトンネリング手段に割り当てる資源を削減することによって制御することを特徴とする請求項１から請求項３のいずれかに記載の通信システム。
【請求項５】
測定用データを用いて前記ＴＣＰトンネルのボトルネック帯域を測定する測定手段を有し、
前記制御手段は、前記測定したボトルネック帯域に基づいて制御することを特徴とする請求項１から請求項４のいずれかに記載の通信システム。
【請求項６】
ＷＡＮ接続に用いられるノードのリンク速度を調査して前記ＴＣＰトンネルのボトルネック帯域を測定する測定手段を有し、
前記制御手段は、前記測定したボトルネック帯域に基づいて制御することを特徴とする請求項１から請求項４のいずれかに記載の通信システム。
【請求項７】
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムであって、
前記ＴＣＰトンネルから流出される確認応答フレームを監視し、この確認応答フレーム内に記載されている受信ウインドウサイズが前記ＴＣＰトンネルのボトルネック帯域と、ＴＣＰセッションを確立している端末間の往復遅延時間との積以上になる場合に、前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
を有することを特徴とする通信システム。
【請求項８】
前記制御手段は、
前記受信ウインドウサイズを前記積以下に書き換えることによって、前記フレームの量を制御することを特徴とする請求項７に記載の通信システム。
【請求項９】
前記制御手段は、前記確認応答フレームをコピーして重複確認応答を生成することによって、前記フレームの量を制御することを特徴とする請求項７又は請求項８に記載の通信システム。
【請求項１０】
測定用データを用いて前記ＴＣＰトンネルのボトルネック帯域および往復遅延時間を測定する測定手段を有し、
前記制御手段は、前記測定したボトルネック帯域及び往復遅延時間に基づいて制御することを特徴とする請求項７から請求項９のいずれかに記載の通信システム。
【請求項１１】
前記ＴＣＰトンネルを通じて到着する帯域計算用情報に基づいて前記ＴＣＰトンネルのボトルネックを推定する推定手段を有し、
前記制御手段は、前記推定したボトルネック帯域に基づいて制御することを特徴とする請求項１から請求項４及び請求項７から請求項９のいずれかに記載の通信システム。
【請求項１２】
前記推定手段は、前記ＴＣＰトンネルのボトルネック帯域を、前記トンネルを流れる任意の複数フレームの大きさの差と、これらのフレームの片道遅延時間の差とに基づいて推定することを特徴とする請求項１１に記載の通信システム。
【請求項１３】
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムのトンネリング装置であって、
送信側のＬＡＮから到着したフレームの流量を監視し、この流量がＴＣＰトンネルのボトルネック帯域以上である場合に前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
を有することを特徴とするトンネリング装置。
【請求項１４】
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムのトンネリング装置であって、
前記ＴＣＰトンネルから流出される確認応答フレームを監視し、この確認応答フレーム内に記載されている受信ウインドウサイズが前記ＴＣＰトンネルのボトルネック帯域と、ＴＣＰセッションを確立している端末間の往復遅延時間との積以上になる場合に、前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
を有することを特徴とするトンネリング装置。
【請求項１５】
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムの通信方法であって、
送信側のＬＡＮから到着したフレームの流量を監視する監視ステップと、
前記流量が前記ＴＣＰトンネルのボトルネック帯域以上である場合に前記ＴＣＰトンネルに流入するフレームの量を制御する制御ステップと
を有することを特徴とする通信方法。
【請求項１６】
前記制御ステップは、前記流量が前記ＴＣＰトンネルのボトルネック帯域以下になるようにフレームを欠落させることを特徴とする請求項１５に記載の通信方法。
【請求項１７】
前記制御ステップは、前記流量が前記ＴＣＰトンネルのボトルネック帯域以下になるように、前記フレームの伝送を遅延させることを特徴とする請求項１５に記載の通信方法。
【請求項１８】
前記制御ステップは、前記ＴＣＰトンネルにフレームを流入するトンネリング手段に割り当てる資源を削減することを特徴とする請求項１５から請求項１７のいずれかに記載の通信方法。
【請求項１９】
測定用データを用いて前記ＴＣＰトンネルのボトルネック帯域を測定する測定ステップを有し、
前記制御ステップは、前記測定したボトルネック帯域に基づいて制御することを特徴とする請求項１５から請求項１８のいずれかに記載の通信方法。
【請求項２０】
ＷＡＮ接続に用いられるノードのリンク速度を調査して前記ＴＣＰトンネルのボトルネック帯域を測定する測定ステップを有し、
前記制御ステップは、前記測定したボトルネック帯域に基づいて制御することを特徴とする請求項１５から請求項１８のいずれかに記載の通信方法。
【請求項２１】
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムの通信方法であって、
前記ＴＣＰトンネルから流出される確認応答フレームを監視する監視ステップと、
前記確認応答フレーム内に記載されている受信ウインドウサイズが、前記ＴＣＰトンネルのボトルネック帯域と、ＴＣＰセッションを確立している端末間の往復遅延時間との積以上になる場合に、前記ＴＣＰトンネルに流入するフレームの量を制御する制御ステップと
を有することを特徴とする通信方法。
【請求項２２】
前記制御ステップは、
前記受信ウインドウサイズを前記積以下に書き換えることを特徴とする請求項２１に記載の通信方法。
【請求項２３】
前記制御ステップは、前記確認応答フレームをコピーして重複確認応答を生成することを特徴とする請求項２１又は請求項２２に記載の通信方法。
【請求項２４】
測定用データを用いて前記ＴＣＰトンネルのボトルネック帯域および往復遅延時間を測定する測定ステップを有し、
前記制御ステップは、前記測定したボトルネック帯域及び往復遅延時間に基づいて制御することを特徴とする請求項２１から請求項２３のいずれかに記載の通信方法。
【請求項２５】
前記ＴＣＰトンネルを通じて到着する帯域計算用情報に基づいて前記ＴＣＰトンネルのボトルネックを推定する推定ステップを有し、
前記制御ステップは、前記推定したボトルネック帯域に基づいて制御することを特徴とする請求項１５から請求項１８及び請求項２１から請求項２３のいずれかに記載の通信方法。
【請求項２６】
前記推定ステップは、前記ＴＣＰトンネルのボトルネック帯域を、前記トンネルを流れる任意の複数フレームの大きさの差と、これらのフレームの片道遅延時間の差とに基づいて推定することを特徴とする請求項２５に記載の通信方法。
【請求項２７】
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムのプログラムであって、前記プログラムは前記通信システムを、
送信側のＬＡＮから到着したフレームの流量を監視し、この流量がＴＣＰトンネルのボトルネック帯域以上である場合に前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
として機能させることを特徴とするプログラム。
【請求項２８】
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムのプログラムであって、前記プログラムは前記通信システムを、
前記ＴＣＰトンネルから流出される確認応答フレームを監視し、この確認応答フレーム内に記載されている受信ウインドウサイズが前記ＴＣＰトンネルのボトルネック帯域と、ＴＣＰセッションを確立している端末間の往復遅延時間との積以上になる場合に、前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
として機能させることを特徴とするプログラム。
【請求項２９】
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムであって、
前記ＴＣＰトンネルに流入するトラフィックの量を制限する制限手段をＴＣＰトンネルの前段に設けることにより、前記ＴＣＰトンネルを構築しているＴＣＰセッションにおける輻輳制御を無効にすることを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＡＮ（Local Area Network）同士を、ＴＣＰトンネルを介してイーサネット（登録商標）レベルで接続する場合の通信技術に関し、特にトンネル上にボトルネックリンクが存在し、かつエンドエンドの端末同士がＴＣＰを用いて通信する場合に、２つのＴＣＰによる２重の輻輳制御と２重の再送制御とによる性能劣化を抑制する通信技術に関する。
【背景技術】
【０００２】
（従来技術１）
従来、ＬＡＮ（Local Area Network）同士をＷＡＮ（Wide Area Network）上のＴＣＰトンネルを介してイーサネットレベルで接続する、レイヤ２トンネリング装置が提案されている（特許文献１）。
【０００３】
レイヤ２トンネリング装置を用いると、離れた場所にあるＬＡＮ同士を、ＷＡＮを介して同一のＬＡＮとして利用できる。
（従来技術２）
また従来、ＴＣＰ通信において、隘路におけるデータの破棄を防止する方法として、通信路制御装置が提案されている（特許文献２）。
【０００４】
ここで、従来技術２について図１２を用いて説明する。図１２は、従来技術２の構成である。
【０００５】
ボトルネックリンク１１は、端末２１と端末３１とが通信する際に、経路上で最も通信帯域が細くなっている（隘路となっており、伝送速度が低速である）部分のリンクである。
【０００６】
端末２１は、アプリケーション２１１、ＴＣＰ２１２、ＩＰ２１３、およびＮＩＣ２１４で構成される。
【０００７】
通信路制御装置２２は、帯域制御回路２２１、及びバッファ回路２２２で構成され、ボトルネックリンクの入口でトラフィックの平滑化を行う。一方、帯域制限は、端末２１（従来技術ではデータ転送装置や計算機と呼んでいる）においてＴＣＰ輻輳ウインドウサイズの最大値を手動で設定変更することにより別途行っている。このため、通信路制御装置２２は、従来技術２の明細書中では帯域制限を行っていると記載されているが、実質的には帯域制限は行われず、平滑化のみが行われる。
【０００８】
端末３１は、端末２１と同様の構成を有し、同様の動作を行う。
【０００９】
通信路制御装置３２は、通信路制御装置２２と同様の構成を有し、同様の動作を行う。
【００１０】
ＴＣＰ２１２は、一般的なＴＣＰプログラムである。
【００１１】
帯域制御回路２２１は、精密に帯域を制御する回路であり、通信量を制限するとともに、送信量レートが細かく変動することがないよう平滑化するものである。
【００１２】
バッファ回路２２２は、通信量を平滑化するのに充分なバッファ容量を有するバッファ回路である。
【００１３】
この技術を用いると、隘路よりも送信側に近い箇所で、隘路において利用可能な帯域を越えることがないようにトラフィックの平滑化を行うことで、データの破棄を防止できる。
【００１４】
なお従来技術２においては、平滑化のために充分な大きさが確保された通信路制御装置のバッファ回路を用いており、通信路制御装置においてはデータが破棄されないようになっている。また通信量の制限は、データ送信装置（端末）のＴＣＰ輻輳ウインドウサイズの最大値を手動で設定変更することにより行っている。したがって従来技術２の通信量制御装置内の帯域制御回路およびバッファ回路は、通信量の制限を行わず平滑化のみを行っている。
【特許文献１】特開2003-069642号
【特許文献２】特開2005-151202号
【発明の開示】
【発明が解決しようとする課題】
【００１５】
従来技術１においては、特にトンネル上にボトルネックリンクが存在し、かつエンドエンドの端末同士がＴＣＰを用いて通信する場合に、２つのＴＣＰによる２重の輻輳制御と２重の再送制御とにより性能劣化が発生し、通信速度が低下するという問題（ＴＣＰ  ｏｖｅｒ  ＴＣＰ問題）があった。
【００１６】
一方、従来技術２では、端末のＴＣＰパラメータ（最大輻輳ウインドウサイズ）を個々に調整して通信量を制限する必要があるが、一般的に端末の数は通信路制御装置の数に比べて膨大であるため、端末の設定にかかる工数が膨大になるという問題があった。
【００１７】
さらに従来技術２では、隘路の帯域と宛先端末への往復遅延時間を勘案のうえ、手計算で最大輻輳ウインドウサイズを決定しなければならないという問題もあった。
【００１８】
そこで、本発明が解決しようとする課題は、エンド端末の設定変更なしに、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による性能劣化を抑制することを可能とする通信技術を提供することにある。
【課題を解決するための手段】
【００１９】
上記課題を解決するための第１の発明は、
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムであって、
送信側のＬＡＮから到着したフレームの流量を監視し、この流量がＴＣＰトンネルのボトルネック帯域以上である場合に前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
を有することを特徴とする。
【００２０】
上記課題を解決するための第２の発明は、上記第1の発明において、
前記制御手段は、前記フレームの流量が前記ＴＣＰトンネルのボトルネック帯域以下になるようにフレームを欠落させることを特徴とする。
【００２１】
上記課題を解決するための第３の発明は、上記第1の発明において、
前記制御手段は、前記フレームの流量が前記ＴＣＰトンネルのボトルネック帯域以下になるように、前記フレームの伝送を遅延させることを特徴とする。
【００２２】
上記課題を解決するための第４の発明は、上記第1から第３のいずれかの発明において、
前記制御手段は、前記ＴＣＰトンネルにフレームを流入するトンネリング手段に割り当てる資源を削減することによって制御することを特徴とする。
【００２３】
上記課題を解決するための第５の発明は、上記第1から第４のいずれかの発明において、
測定用データを用いて前記ＴＣＰトンネルのボトルネック帯域を測定する測定手段を有し、
前記制御手段は、前記測定したボトルネック帯域に基づいて制御することを特徴とする。
【００２４】
上記課題を解決するための第６の発明は、上記第1から第４のいずれかの発明において、
ＷＡＮ接続に用いられるノードのリンク速度を調査して前記ＴＣＰトンネルのボトルネック帯域を測定する測定手段を有し、
前記制御手段は、前記測定したボトルネック帯域に基づいて制御することを特徴とする。
【００２５】
上記課題を解決するための第７の発明は、
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムであって、
前記ＴＣＰトンネルから流出される確認応答フレームを監視し、この確認応答フレーム内に記載されている受信ウインドウサイズが前記ＴＣＰトンネルのボトルネック帯域と、ＴＣＰセッションを確立している端末間の往復遅延時間との積以上になる場合に、前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
を有することを特徴とする。
【００２６】
上記課題を解決するための第８の発明は、上記第７の発明において、
前記制御手段は、
前記受信ウインドウサイズを前記積以下に書き換えることによって、前記フレームの量を制御することを特徴とする。
【００２７】
上記課題を解決するための第９の発明は、上記第７又は第８の発明において、
前記制御手段は、前記確認応答フレームをコピーして重複確認応答を生成することによって、前記フレームの量を制御することを特徴とする。
【００２８】
上記課題を解決するための第１０の発明は、上記第７から第９のいずれかの発明において、
測定用データを用いて前記ＴＣＰトンネルのボトルネック帯域および往復遅延時間を測定する測定手段を有し、
前記制御手段は、前記測定したボトルネック帯域及び往復遅延時間に基づいて制御することを特徴とする。
【００２９】
上記課題を解決するための第１１の発明は、上記第１から第４及び第７から第９のいずれかの発明において、
前記ＴＣＰトンネルを通じて到着する帯域計算用情報に基づいて前記ＴＣＰトンネルのボトルネックを推定する推定手段を有し、
前記制御手段は、前記推定したボトルネック帯域に基づいて制御することを特徴とする。
【００３０】
上記課題を解決するための第１２の発明は、上記第１１の発明において、
前記推定手段は、前記ＴＣＰトンネルのボトルネック帯域を、前記トンネルを流れる任意の複数フレームの大きさの差と、これらのフレームの片道遅延時間の差とに基づいて推定することを特徴とする。
【００３１】
上記課題を解決するための第１３の発明は、
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムのトンネリング装置であって、
送信側のＬＡＮから到着したフレームの流量を監視し、この流量がＴＣＰトンネルのボトルネック帯域以上である場合に前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
を有することを特徴とする。
【００３２】
上記課題を解決するための第１４の発明は、
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムのトンネリング装置であって、
前記ＴＣＰトンネルから流出される確認応答フレームを監視し、この確認応答フレーム中に記載されている受信ウインドウサイズが前記ＴＣＰトンネルのボトルネック帯域と、ＴＣＰセッションを確立している端末間の往復遅延時間との積以上になる場合に、前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
を有することを特徴とする。
【００３３】
上記課題を解決するための第１５の発明は、
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムの通信方法であって、
送信側のＬＡＮから到着したフレームの流量を監視する監視ステップと、
前記流量が前記ＴＣＰトンネルのボトルネック帯域以上である場合に前記ＴＣＰトンネルに流入するフレームの量を制御する制御ステップと
を有することを特徴とする。
【００３４】
上記課題を解決するための第１６の発明は、上記第１５の発明において、
前記制御ステップは、前記流量が前記ＴＣＰトンネルのボトルネック帯域以下になるようにフレームを欠落させることを特徴とする。
【００３５】
上記課題を解決するための第１７の発明は、上記第１５の発明において、
前記制御ステップは、前記流量が前記ＴＣＰトンネルのボトルネック帯域以下になるように、前記フレームの伝送を遅延させることを特徴とする。
【００３６】
上記課題を解決するための第１８の発明は、上記第１５から第１７のいずれかの発明において、
前記制御ステップは、前記ＴＣＰトンネルにフレームを流入するトンネリング手段に割り当てる資源を削減することを特徴とする。
【００３７】
上記課題を解決するための第１９の発明は、上記第１５から第１８のいずれかの発明において、
測定用データを用いて前記ＴＣＰトンネルのボトルネック帯域を測定する測定ステップを有し、
前記制御ステップは、前記測定したボトルネック帯域に基づいて制御することを特徴とする。
【００３８】
上記課題を解決するための第２０の発明は、上記第１５から第１８のいずれかの発明において、
ＷＡＮ接続に用いられるノードのリンク速度を調査して前記ＴＣＰトンネルのボトルネック帯域を測定する測定ステップを有し、
前記制御ステップは、前記測定したボトルネック帯域に基づいて制御することを特徴とする。
【００３９】
上記課題を解決するための第２１の発明は、
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムの通信方法であって、
前記ＴＣＰトンネルから流出される確認応答フレームを監視する監視ステップと、
前記確認応答フレーム内に記載されている受信ウインドウサイズが、前記ＴＣＰトンネルのボトルネック帯域と、ＴＣＰセッションを確立している端末間の往復遅延時間との積以上になる場合に、前記ＴＣＰトンネルに流入するフレームの量を制御する制御ステップと
を有することを特徴とする。
【００４０】
上記課題を解決するための第２２の発明は、上記第２１の発明において、
前記制御ステップは、
前記受信ウインドウサイズを前記積以下に書き換えることを特徴とする。
【００４１】
上記課題を解決するための第２３の発明は、上記第２１又は第２３の発明において、
前記制御ステップは、前記確認応答フレームをコピーして重複確認応答を生成することを特徴とする。
【００４２】
上記課題を解決するための第２４の発明は、上記第２１から第２３のいずれかの発明において、
測定用データを用いて前記ＴＣＰトンネルのボトルネック帯域および往復遅延時間を測定する測定ステップを有し、
前記制御ステップは、前記測定したボトルネック帯域及び往復遅延時間に基づいて制御することを特徴とする。
【００４３】
上記課題を解決するための第２５の発明は、上記第１５から第１８及び第２１から第２３のいずれかの発明において、
前記ＴＣＰトンネルを通じて到着する帯域計算用情報に基づいて前記ＴＣＰトンネルのボトルネックを推定する推定ステップを有し、
前記制御ステップは、前記推定したボトルネック帯域に基づいて制御することを特徴とする。
【００４４】
上記課題を解決するための第２６の発明は、上記第２５の発明において、
前記推定ステップは、前記ＴＣＰトンネルのボトルネック帯域を、前記トンネルを流れる任意の複数フレームの大きさの差と、これらのフレームの片道遅延時間の差とに基づいて推定することを特徴とする。
【００４５】
上記課題を解決するための第２７の発明は、
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムのプログラムであって、前記プログラムは前記通信システムを、
送信側のＬＡＮから到着したフレームの流量を監視し、この流量がＴＣＰトンネルのボトルネック帯域以上である場合に前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
として機能させることを特徴とする。
【００４６】
上記課題を解決するための第２８の発明は、
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムのプログラムであって、前記プログラムは前記通信システムを、
前記ＴＣＰトンネルから流出される確認応答フレームを監視し、この確認応答フレーム中に記載されている受信ウインドウサイズが前記ＴＣＰトンネルのボトルネック帯域と、ＴＣＰセッションを確立している端末間の往復遅延時間との積以上になる場合に、前記ＴＣＰトンネルに流入するフレームの量を制御する制御手段
として機能させることを特徴とする。
【００４７】
上記課題を解決するための第２９の発明は、
ＬＡＮ同士がＴＣＰトンネルを介して接続されている通信システムであって、
前記ＴＣＰトンネルに流入するトラフィックの量を制限する制限手段をＴＣＰトンネルの前段に設けることにより、前記ＴＣＰトンネルを構築しているＴＣＰセッションにおける輻輳制御を無効にすることを特徴とする。
【００４８】
本発明のトンネリング装置は、フレームの流量監視および制限を行う帯域制限器と、測定用データを送受信して帯域測定を行う帯域測定手段とを備える。このような構成を採用し、トンネリング装置がトンネルに流入するトラフィックの量を抑制し、トンネル区間におけるフレームの欠落の発生や遅延の増大を抑制することで、トンネル区間のＴＣＰの輻輳制御を実質的に無効にさせ、エンド端末のＴＣＰにおけるレート抑制制御が過剰に行われるのを防ぐことにより、本発明の目的を達成することができる。
【００４９】
本発明のトンネリング装置は、確認応答（ＡＣＫ）に含まれる受信ウインドウサイズ値を書き換えるウインドウ書換器と、測定用データを送受信して帯域と遅延の測定を行う遅延・帯域測定手段とを備える。このような構成を採用し、
トンネリング装置がトンネルに流入するトラフィックの量を抑制し、トンネル区間における欠落の発生や遅延の増大を抑制することで、トンネル区間のＴＣＰの輻輳制御を実質的に無効にさせ、エンド端末のＴＣＰにおけるレート抑制制御が過剰に行われるのを防ぐことにより、本発明の目的を達成することができる。
【００５０】
本発明のトンネリング装置は、割り当てるＣＰＵ資源を調整して転送処理能力を調整するリソースマネージャと、フレームの流量を監視する流量監視器と測定用データを送受信して帯域測定を行う帯域測定手段と、測定用データを送受信して帯域と遅延の測定を行う遅延・帯域測定手段とを備える。このような構成を採用し、トンネリング装置がトンネルに流入するトラフィックの量を抑制し、トンネル区間における欠落の発生や遅延の増大を抑制することで、トンネル区間のＴＣＰの輻輳制御を実質的に無効にさせ、エンド端末のＴＣＰにおけるレート抑制制御が過剰に行われるのを防ぐことにより、本発明の目的を達成することができる。
【００５１】
本発明のトンネリング装置は、フレームの流量監視および制限を行う帯域制限器と、確認応答（ＡＣＫ）に含まれる受信ウインドウサイズ値を書き換えるウインドウ書換器と、割り当てるＣＰＵ資源を調整して転送処理能力を調整するリソースマネージャと、フレームの流量を監視する流量監視器と、測定用データを送受信して帯域測定を行う帯域測定手段と、測定用データを送受信して帯域と遅延の測定を行う遅延・帯域測定手段と、モデム等のリンク速度を調査する帯域調査手段と、帯域調査手段の依頼を受けてモデムの調査を行うダイヤルアップＮＩＣドライバと、ＡＤＳＬ等のリンク速度を調査するＵＰｎＰ−ＣＰと、トンネルを流れる実データを用いて帯域推定を行うインバンド型帯域測定手段とを備える。このような構成を採用し、トンネリング装置がトンネルに流入するトラフィックの量を抑制し、トンネル区間における欠落の発生や遅延の増大を抑制することで、トンネル区間のＴＣＰの輻輳制御を実質的に無効にさせ、エンド端末のＴＣＰにおけるレート抑制制御が過剰に行われるのを防ぐことにより、本発明の目的を達成することができる。
【発明の効果】
【００５２】
次に、本発明の効果について説明する。
【００５３】
第１の効果は、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による通信速度の低下（性能劣化）を抑制できることである。これは、トンネルの入り口の前段に帯域制限器を設けることにより、トンネルに流入するトラフィックの量を抑制し、トンネル区間における欠落の発生や遅延の増大を抑制することで、トンネル区間のＴＣＰの輻輳制御を実質的に無効にさせ、エンド端末のＴＣＰにおけるレート抑制制御が過剰に行われるのを防ぐためである。またこれは、ウインドウ書換器を設けて確認応答（ＡＣＫ）内に含まれる受信ウインドウサイズを小さい値に書き換え、エンド端末のＴＣＰから送信されるトラフィックの送信レートを抑制することにより、トンネルに流入するトラフィックの量を抑制し、トンネル区間における欠落の発生や遅延の増大を抑制することで、トンネル区間のＴＣＰの輻輳制御を実質的に無効にさせ、エンド端末のＴＣＰにおけるレート抑制制御が過剰に行われるのを防ぐためである。またこれは、トンネルの入り口となるトンネリング手段に割り当てるＣＰＵパワーを抑制することにより、トンネルに流入するトラフィックの量を抑制し、トンネル区間における欠落の発生や遅延の増大を抑制することで、トンネル区間のＴＣＰの輻輳制御を実質的に無効にさせ、エンド端末のＴＣＰにおけるレート抑制制御が過剰に行われるのを防ぐためである。
【００５４】
第２の効果は、エンド端末の設定変更なしに、エンド端末間の通信レート（通信帯域）を制限できることである。これは、トンネリング装置内に帯域制限器を設けてエンド端末間で交換されるフレームを強制的に欠落させることにより、エンド端末間のＴＣＰ通信の帯域制限をトンネリング装置内で行うからである。またこれは、トンネリング装置内にウインドウ書換器を設けてエンド端末のＴＣＰ相互間で交換される確認応答（ＡＣＫ）内に含まれる受信ウインドウサイズを小さい値に書き換えることにより、エンド端末間のＴＣＰ通信の帯域制限をトンネリング装置内で行うからである。またこれは、トンネリング装置内にリソースマネージャを設けてＣＰＵパワーを抑制し、トンネルに流入するトラフィックの量を抑制し、エンド端末間で交換されるフレームの取りこぼしによる欠落や遅延時間の増大を発生させることにより、エンド端末間のＴＣＰ通信の帯域制限をトンネリング装置内で行うからである。
【００５５】
第３の効果は、端末やトンネリング装置の設定を自動化できることである。これは、トンネル区間のＴＣＰの接続後に、帯域測定手段がボトルネックリンクの最大帯域を測定し、この結果より帯域制限器の閾値を自動的に決定するからである。またこれは、トンネル区間のＴＣＰの接続後に、帯域・遅延測定手段がボトルネックリンクの最大帯域および遅延時間を測定し、この結果よりウインドウ書換器の閾値を自動的に決定するからである。またこれは、トンネル区間のＴＣＰの接続後に、帯域測定手段がボトルネックリンクの最大帯域を測定し、この結果よりリソースマネージャの閾値を自動的に決定するからである。またこれは、帯域調査手段がモデム・携帯電話等に対してボトルネックリンクの最大帯域を問い合わせ、この結果より帯域制限器等の閾値を自動的に決定するからである。またこれは、ＵＰｎＰ−ＣＰがＲｏｕｔｅｒに対してＡＤＳＬリンク速度、つまりボトルネックリンクの最大帯域を問い合わせ、この結果より帯域制限器等の閾値を自動的に決定するからである。またこれは、インバンド型帯域測定手段が、トンネルを流れるデータフレームの大きさのばらつきと、大きさのばらつきによる片道遅延時間のばらつきにより、ボトルネックリンクの最大帯域を推定し、この結果より帯域制限器の閾値を自動的に決定するからである。
【発明を実施するための最良の形態】
【００５６】
本発明の特徴を説明するために、以下において、図面を参照して具体的に述べる。
【００５７】
（第１の実施の形態）
本発明を実施するための第１の実施の形態について図面を参照して詳細に説明する。
【００５８】
本発明の第１の実施の形態は、ＴＣＰ接続によりトンネルを構成するトンネリング装置によってＬＡＮ同士がＷＡＮを介して接続されたネットワークにおいて、トンネル上にボトルネックリンクが存在し、かつエンドエンドの端末同士がＴＣＰを用いて通信する場合に、トンネルの入り口に帯域制限器を設けてトンネルに流入するトラフィックの量を抑制することで、トンネルのＴＣＰの輻輳制御（レートコントロール）を無効にさせ、さらにトンネルのＴＣＰにおける再送発生の可能性を減らし、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による性能劣化を抑えられる。
【００５９】
（構成の説明）
図１を参照して、本実施の形態における構成について説明する。
【００６０】
ＷＡＮ１は、ボトルネックリンク１１、トンネリング装置２０、およびトンネリング装置３０と、その他の機器とで構成され、これら機器の相互間で通信を行うワイドエリアネットワーク（ＷＡＮ）である。具体的にはインターネット等がＷＡＮに該当する。
【００６１】
ＬＡＮ２は、トンネリング装置２０、および端末２１で構成され、これら機器の相互間で通信するローカルエリアネットワーク（ＬＡＮ）である。また、本実施の形態においては、ゲートウェイ装置であるトンネリング装置２０、およびトンネリング装置３０により、ＬＡＮ２とＬＡＮ３とは同一のＬＡＮとして動作するよう相互に接続されているため、ＬＡＮ２内の各端末とＬＡＮ３内の各端末との間は自由に通信できる。
【００６２】
ＬＡＮ３は、ＬＡＮ２と同様の構成を有し、同様の動作を行う。
【００６３】
ボトルネックリンク１１は、端末２１と端末３１とが通信する際に、経路上で最も通信帯域が細くなっている箇所、即ち、隘路となっており、伝送速度が低速である箇所のリンクである。
【００６４】
トンネリング装置２０は、トンネリング手段２０１、ＴＣＰ２０２、ＩＰ２０３、ＮＩＣ２０４、ＮＩＣ２０５、及び帯域制限器２０６で構成される。
【００６５】
トンネリング装置２０は、ＷＡＮ１上のトンネリング装置３０との間でＴＣＰ接続してトンネルを構築している。そしてトンネリング装置２０は、このトンネル中にＬＡＮ２からのイーサネットフレーム（エンド端末が出力したフレーム）をカプセル化して流し込み、また逆に、トンネリング装置３０からトンネルを通して送られてきたイーサネットフレームのカプセル化を解除してＬＡＮ２内に転送することで、離れたＬＡＮ同士をＷＡＮを介して接続させている。
【００６６】
端末２１は、アプリケーション２１１、ＴＣＰ２１２、ＩＰ２１３、およびＮＩＣ２１４で構成される。
【００６７】
端末２１は、ＬＡＮの利用者が通常利用するコンピュータであり、ＬＡＮ内の各機器、例えば端末３１との間で通信を行う為のアプリケーション（例えばＷＥＢブラウザや、メーラー等）が動作する。
【００６８】
トンネリング装置３０は、トンネリング装置２０と同様の構成を有し、同様の動作を行う。
【００６９】
端末３１は、端末２１と同様の構成を有し、同様の動作を行う。
【００７０】
トンネリング手段２０１は、トンネリング手段３０１との間でトンネルを構築するために、ＴＣＰ２０２に対してＴＣＰ３０２に接続するよう指示し、さらに帯域制限器２０６から受信したイーサネットフレームをデータとしてＴＣＰ２０２に渡し、また逆に、ＴＣＰ２０２からデータとして受信したイーサネットフレームを帯域制限器２０６に渡す。
【００７１】
ＴＣＰ２０２は、主に以下に挙げる動作を行う。
（１）トンネリング手段２０１の要求に応じてＴＣＰ３０２と接続（コネクション設定）を行う。
（２）トンネリング手段２０１からのデータをＴＣＰ３０２に転送する。この際、送信するデータの送出速度を制御する輻輳制御（レートコントロール）と、ＴＣＰ２０２からのデータに対する応答としてＴＣＰ３０２から送信される確認応答（ＡＣＫ）の到着確認と、確認応答未着時等のデータの再送信も行う。大きなデータの場合は分割（フラグメントとも言う）処理も行う。
（３）ＴＣＰ３０２から送信されたデータを受信して、順序逆転、フレーム欠落、さらに分割を元に戻し、トンネリング手段２０１に転送する。この際、受信データに対する確認応答（ＡＣＫ）をＴＣＰ３０２に向けて送信する。なお確認応答には、ＴＣＰ２０２が受信可能なデータ量（受信ウインドウサイズ）やシーケンスナンバーが記載される。
【００７２】
ＴＣＰ２０２の輻輳制御は、転送初期は小さなレートでデータを送信し、ＡＣＫの未着や、重複ＡＣＫの到着が発生しない限り、ＡＣＫを受領していないデータ量が、ＴＣＰ３０２から確認応答によって伝達された受信ウインドウサイズと、ＴＣＰ２０２自身が管理する輻輳ウインドウサイズとのうち、どちらか小さいほうに達するまで、輻輳ウインドウサイズを大きくしながら、次第に大きな送信レートでデータを送信する。
【００７３】
ＩＰ２０３は、ＴＣＰ２０２からデータを受信し、ＩＰヘッダおよびＭＡＣヘッダ等のＷＡＮ通信に必要なヘッダを付加してフレームを構成し、ＮＩＣ２０４に転送する。またＮＩＣ２０４から受信したフレームのＭＡＣヘッダおよびＩＰヘッダを外し、ＴＣＰ２０２に転送する。さらにＡＲＰ（Address Resolution Protocol）、ＤＨＣＰ（Dynamic Host Configuration Protocol）等、ＷＡＮ通信に必要な各種プロトコル処理を行う。
【００７４】
ＮＩＣ２０４は、ネットワークインタフェースカード（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）と呼ばれ、イーサネット等のネットワーク用ケーブルの接続口となる部分である。ネットワーク（イーサネットケーブル等のケーブル）からフレーム（データ）を受信してＩＰ２０３に送るほか、逆にＩＰ２０３フレーム（データ）を受け取りネットワークに適した形に変換してネットワーク（イーサネットケーブル等のケーブル）に送出する。
【００７５】
ＮＩＣ２０５は、ＮＩＣ２０４と同様の構成を有し、同様の動作を行う。
【００７６】
帯域制限器２０６は、ＮＩＣ２０５から受信するイーサネットフレームの流量を監視し、設定された帯域（閾値）以下の流量であればトンネリング手段２０１に転送し、もし設定された帯域（閾値）以上又は設定された帯域（閾値）を超えた入力があった場合には、設定された帯域（閾値）以下又は設定された帯域より小さくなるように過剰入力されたフレームを欠落させる。また、トンネリング手段２０１から受信するイーサネットフレームを、帯域制限なしに、そのままＮＩＣ２０５に転送する。なお、帯域制限器２０６のＮＩＣ２０５側には、流量を監視するために若干のバッファ（キュー）を設けても良い。このとき、閾値以上の入力があった場合にどのフレームを欠落させるかは、ＦＩＦＯ（First-In First-Out）、ＷＲＲ（Weighted Round Robin）、ＳＦＱ（Stochastic Fair Queuing）、ＲＥＤ（Random Early Detection）など、どの欠落アルゴリズムを用いて決定しても良い。また、帯域制限器（シェーパ）は、一般的には公平性の確保や輻輳防止のために用いられるが、本願では下位レイヤＴＣＰ（ＴＣＰ２０２）の再送制御発生の可能性を低くし、さらに下位レイヤのＴＣＰ（ＴＣＰ２０２）トラフィック制御を実質的に無効化するために、帯域制限器を用いている。
【００７７】
アプリケーション２１１は、端末３１内のアプリケーション３１１と双方向の通信を行うアプリケーションである。アプリケーション２１１は、代表的にはＷＥＢブラウザが適用されるが、この場合端末３１内のアプリケーション３１１は、ＷＥＢサーバが適用される。アプリケーション２１１は、ＷＥＢブラウザ／サーバの他、ＴＥＬＮＥＴクライアント／サーバ、ＦＴＰクライアント／サーバ、ファイル共有クライアント／サーバ等、各種のアプリケーションが適用可能である。
【００７８】
ＴＣＰ２１２は、ＴＣＰ２０２と同様の構成、および動作を行う。
【００７９】
ＩＰ２１３は、ＩＰ２０３と同様の構成、および動作を行う。
【００８０】
ＮＩＣ２１４は、ＮＩＣ２０４と同様の構成、および動作を行う。
【００８１】
トンネリング手段３０１は、トンネリング手段２０１と同様の構成を有し、同様の動作を行う。
【００８２】
ＴＣＰ３０２は、ＴＣＰ２０２と同様の構成を有し、同様の動作を行う。
【００８３】
ＩＰ３０３は、ＩＰ２０３と同様の構成を有し、同様の動作を行う。
【００８４】
ＮＩＣ３０４は、ＮＩＣ２０４と同様の構成を有し、同様の動作を行う。
【００８５】
ＮＩＣ３０５は、ＮＩＣ２０５と同様の構成を有し、同様の動作を行う。
【００８６】
帯域制限器３０６は、帯域制限器２０６と同様の構成を有し、同様の動作を行う。
【００８７】
アプリケーション３１１は、アプリケーション２１１と同様の構成を有し、同様の動作を行う。
【００８８】
ＴＣＰ３１２は、ＴＣＰ２１２と同様の構成を有し、同様の動作を行う。
【００８９】
ＩＰ３１３は、ＩＰ２１３と同様の構成を有し、同様の動作を行う。
【００９０】
ＮＩＣ３１４は、ＮＩＣ２１４と同様の構成を有し、同様の動作を行う。
【００９１】
図２は、図１に示すネットワークにおいて、ＬＡＮ２内（例えば端末２１とトンネリング装置２０の間）、および、ＬＡＮ３内（例えば端末３１とトンネリング装置３０の間）で送受信される、イーサネットフレーム２６のフレームフォーマットを示すブロック図である。
【００９２】
ＬＡＮ  ＭＡＣ  ２６１は、ＬＡＮ２もしくはＬＡＮ３上で、レイヤ２（イーサネット）での通信を行うために必要なヘッダ（ＭＡＣ  ＤＡ、ＭＡＣ  ＳＡ、Ｅｔｈｅｒｎｅｔ（登録商標）  ＴＹＰＥ他ＩＥＥＥ８０２に規定のヘッダ）を示している。
【００９３】
ＬＡＮ  ＩＰ  ２６２は、ＬＡＮ２もしくはＬＡＮ３上で、レイヤ３（ＩＰ）での通信を行うために必要なヘッダ（ＩＰ  ＤＡ、ＩＰ  ＳＡ、ＩＰ  ＴＹＰＥ、他ＩＥＴＦに規定のヘッダ）を示している。
【００９４】
ＬＡＮ  ＴＣＰ  ２６３は、ＬＡＮ２もしくはＬＡＮ３内に存在する各機器の間で、ＴＣＰによる通信を行うために必要なヘッダ（ポート番号やシーケンスナンバー等のＴＣＰヘッダ）を示している。
【００９５】
ＬＡＮ  ＤＡＴＡ  ２６４は、ＬＡＮ２もしくはＬＡＮ３内に存在する各機器で動作するソフトウェアの間（アプリケーション２１１とアプリケーション３１１の間等）で交換されるデータである。
【００９６】
図３は、図１に示すネットワークにおいて、トンネリング装置２０とトンネリング装置３０との間で送受信される、イーサネットｏｖｅｒＴＣＰフレーム１２のフレームフォーマットを示すブロック図である。
【００９７】
ＷＡＮ  ＭＡＣ  １２１は、ＷＡＮ１上で、レイヤ２（イーサネット）での通信を行うために必要なヘッダ（ＭＡＣ  ＤＡ、ＭＡＣ  ＳＡ、Ｅｔｈｅｒｎｅｔ  ＴＹＰＥ他ＩＥＥＥ８０２に規定のヘッダ）を示している。
【００９８】
ＷＡＮ  ＩＰ  １２２は、ＷＡＮ１３上で、レイヤ３（ＩＰ）での通信を行うために必要なヘッダ（ＩＰ  ＤＡ、ＩＰ  ＳＡ、ＩＰ  ＴＹＰＥ、他ＩＥＴＦに規定のヘッダ）を示している。
【００９９】
ＷＡＮ  ＴＣＰ  １２３は、ＷＡＮ１内に存在する各機器の間で、ＴＣＰによる通信を行うために必要なヘッダ（ポート番号やシーケンスナンバー等のＴＣＰヘッダ）を示している。
【０１００】
ＷＡＮ  ＤＡＴＡ  １２４は、ＷＡＮ１内に存在する各機器で動作するアプリケーション間（トンネリング手段２０１とトンネリング手段３０１の間等）で交換されるデータである。本実施の形態においては、ＷＡＮ  ＤＡＴＡ  １２４には、ＬＡＮ２やＬＡＮ３上を流れるイーサネットフレーム２６が格納される。なおＷＡＮ  ＤＡＴＡ  １２４は、ＳＳＬ（セキュアソケットレイヤ）やＩＰｓｅｃ等を用いて暗号化しても良い。
【０１０１】
（動作の説明）
以下、図１を参照して、本実施の形態における動作を、端末２１のアプリケーション２１１から端末３１のアプリケーション３１１に大きなデータを送信する場合を例に説明する。
【０１０２】
ＴＣＰ２０２およびＴＣＰ３０２は、相互の間で既にＴＣＰ接続が完了しているものとする。また、Ｎｏｄｅｌａｙオプションにより、送信結合用のＮａｇｌｅアルゴリズムを無効設定しているものとする。
【０１０３】
ＴＣＰ２１２およびＴＣＰ３１２は、ＴＣＰ２０２とＴＣＰ３０２との間でＴＣＰ接続が完了した後に相互の間で接続動作を行い、既に接続が完了しているものとする。また、ＴＣＰ２１２およびＴＣＰ３１２における最大セグメントサイズ（ＭＳＳ）は、イーサネットフレーム２６がＴＣＰ２０２およびＴＣＰ３０２で分割（フラグメント）されない程度に、小さめに設定されているものとする。さらに、ＴＣＰ２１２およびＴＣＰ３１２の最大受信ウインドウサイズは、充分に大きく設定されているものとする。
【０１０４】
ボトルネックリンク１１は、端末２１と端末３１との間の経路上で最も通信帯域が細くなっている（隘路となっており、伝送速度が低速である）部分のリンクであり、帯域幅が判明しているとする。
【０１０５】
また、帯域制限器２０６は、閾値がボトルネックリンク１１の帯域以下の値に設定されているとする。
【０１０６】
（転送初期）
端末２１内のアプリケーション２１１が、サーバ３１内のアプリケーション３１１宛の大きなデータを作成し、ＴＣＰ２１２に渡す。
【０１０７】
ＴＣＰ２１２は、アプリケーション２１１から大きなデータを受け取ると、これを送信バッファに格納し、ネットワーク上で転送可能なサイズ（ＭＳＳ）にデータを分割（フラグメント処理）し、ＴＣＰ３１２から通知される受信ウインドウサイズおよび、ＴＣＰ２１２内の輻輳ウインドウサイズの双方をもとに送信レート（データ送出速度）を決定し、ＩＰ２１３およびＮＩＣ２１４を経由して、端末３１内のＴＣＰ３１２に向けて送信する。このとき、ＬＡＮ２を流れるフレームのフォーマットは、図２に示すイーサネットフレーム２６の形式となる。
【０１０８】
ＴＣＰは、転送初期は輻輳ウインドウサイズが小さく設定されているために小さな送信レートでデータを送信し、ＡＣＫの未着や、重複ＡＣＫの到着が発生しない限り、ＡＣＫを受領していないデータ量が、相手方が通知してくる受信ウインドウサイズと、自身の管理する輻輳ウインドウサイズのどちらか小さいほうに達するまで、次第に輻輳ウインドウサイズを大きくして、次第に大きな送信レートでデータを送信する。このため、転送初期は低めの送信レートでデータが送信される。
【０１０９】
トンネリング装置２０内のＮＩＣ２０５は、ＬＡＮ２からイーサネットフレームを受信し、帯域制限器２０６に転送する。
【０１１０】
帯域制限器２０６は、ＮＩＣ２０５から単位時間あたりに受信するイーサネットフレームの流量を監視し、あらかじめ設定された帯域（閾値）以下の流量であればトンネリング手段２０１に転送する。転送初期においては、ＴＣＰ２１２から送信されるデータの流量は、帯域制限器２０６に設定された閾値よりも低く抑えられるため、全てのフレームがそのままトンネリング手段２０１に転送される。
【０１１１】
トンネリング手段２０１は、帯域制限器２０６から受信したフレームをＴＣＰ２０２にデータとして受け渡す。
【０１１２】
ＴＣＰ２０２は、トンネリング手段２０１からデータ（イーサネットフレーム２６）を受け取ると、これを送信バッファに格納し、ＴＣＰ３０２から通知される受信ウインドウサイズおよび、ＴＣＰ２０２内の輻輳ウインドウサイズの双方をもとに送信レート（データ送出速度）を決定し、ＩＰ２０３およびＮＩＣ２０４を経由して、トンネリング装置３０内のＴＣＰ３０２に向けて送信する。このとき、ＷＡＮ１を流れるフレームのフォーマットは、図３に示すイーサｏｖｅｒＴＣＰフレーム１２の形式となる。
【０１１３】
トンネリング装置３０内のＴＣＰ３０２は、ＴＣＰ２０２から送信されたデータを、ＮＩＣ３０４、ＩＰ３０２を経由して受信し、トンネリング手段３０１に転送する。このときＴＣＰ３０２は、ＴＣＰ２０２に対して確認応答を送信し、この確認応答を受信したＴＣＰ２０２は、輻輳ウインドウのサイズを拡げ、送信レートを高くする。
【０１１４】
トンネリング手段３０１は、ＴＣＰ３０２からデータ（イーサネットフレーム２６）を受信し、帯域制限器３０６に転送する。
【０１１５】
帯域制限器３０６は、トンネリング手段３０１から受信したフレームを、帯域制限や流量の監視などを行わず、そのままＮＩＣ３０５を経由して、端末３１に送信する。このとき、ＬＡＮ３を流れるフレームのフォーマットは、図２に示すイーサネットフレーム２６の形式となる。
【０１１６】
端末３１内のＴＣＰ３１２は、トンネリング装置３０から送信されたイーサネットフレームを、ＮＩＣ３１４、ＩＰ３１２を経由して受信し、バッファに格納する。
【０１１７】
このときＴＣＰ３１２は、ＴＣＰ２１２に対して確認応答を送信し、この確認応答を受信したＴＣＰ２１２は、輻輳ウインドウのサイズを拡げ、送信レートを高くする。
【０１１８】
以上の動作例（転送初期）に従い、ＴＣＰ２１２からＴＣＰ３１２へのデータ転送を継続すると、ＴＣＰ３１２からＴＣＰ２１２へ送信される確認応答によりＴＣＰ２１２の輻輳ウインドウサイズが大きくなり、また、ＴＣＰ３０２からＴＣＰ２０２へ送信される確認応答によりＴＣＰ２０２の輻輳ウインドウサイズも大きくなる。そして、ＴＣＰ２１２の送信レートが帯域制限器２０６に設定された閾値を上回るようになる。
【０１１９】
（ＴＣＰ２１２の送信レートが帯域制限器２０６に設定された閾値を上回った場合）
端末２１内のＴＣＰ２１２は、帯域制限器２０６に設定された閾値を上回るレートで、ＴＣＰ３１２に向けてデータを送信する。このデータは、ＩＰ２１３、ＮＩＣ２１４、ＮＩＣ２０５を経由して、トンネリング装置２０内の帯域制限器２０６に到達する。
【０１２０】
帯域制限器２０６は、ＮＩＣ２０５から単位時間あたりに受信するイーサネットフレームの流量が、あらかじめ設定された帯域（閾値）以上になったと判断すると、過剰入力された分のフレームを欠落させる。このとき、閾値以下の量のフレームは、通常どおりトンネリング手段２０１に転送される。
【０１２１】
トンネリング手段２０１は、帯域制限器２０６から受信した閾値を超えない量のフレームを、ＴＣＰ２０２にデータとして受け渡す。
【０１２２】
ＴＣＰ２０２は、トンネリング手段２０１からデータ（イーサネットフレーム２６）を受け取ると、トンネリング装置３０内のＴＣＰ３０２に向けて送信する。
【０１２３】
ＴＣＰ３０２は、ＴＣＰ２０２より受信したデータを、トンネリング手段３０１を経由して、帯域制限器３０６に転送する。これと同時にＴＣＰ３０２はＴＣＰ２０２に対して確認応答を送信し、ＴＣＰ２０２はこの確認応答を受信して輻輳ウインドウのサイズを拡げ、送信可能なレートを高くする。
【０１２４】
このときＴＣＰ２０２は、これまでのデータ転送で輻輳ウインドウサイズが大きくなっており、本来であればボトルネックリンク１１の帯域よりも高いレートでデータを送信できる筈だが、本実施の形態では、トンネリング手段２０１から流入するデータのレートが、帯域制限器２０６によってボトルネックリンク１１の帯域以下に抑えられている（つまり、ボトルネックを強制的に帯域制限器上に移動させている）。このためＴＣＰ２０２は、帯域制限器２０６に設定された閾値を越えるレートではデータを送信しない。
【０１２５】
この結果、本実施の形態では、ボトルネックリンク１１における欠落の発生や遅延の増大を抑制できるため、ＴＣＰ２０２およびＴＣＰ３０２の輻輳ウインドウサイズは限りなく増大する。つまり、ＴＣＰ２０２およびＴＣＰ３０２の輻輳制御を、実質的に無効にできる。
【０１２６】
帯域制限器３０６は、トンネリング手段３０１から受信したフレームを、帯域制限や流量の監視などを行わずにそのまま送信し、このフレームは、ＮＩＣ３０５、ＮＩＣ３１４、ＩＰ３１３を経由して、端末３１内のＴＣＰ３１２に到達する。
【０１２７】
ＴＣＰ３１２は、受信したデータをバッファに格納する。このときＴＣＰ３１２は、データの欠落を検知し、ＴＣＰ２１２に対して重複ＡＣＫを送信して、データの再送を要求する。なお、帯域制限器が欠落させたフレームによっては、ＴＣＰ３１２が欠落を検知でないが、この場合ＴＣＰ２１２は、重複ＡＣＫの到着ではなくＡＣＫの未着により欠落を検知する。
【０１２８】
ＴＣＰ２１２は、ＴＣＰ３１２からの重複ＡＣＫの到着もしくはＡＣＫ未着によるタイムアウト発生により、送信データの欠落を検知して再送信を行う。この際ＴＣＰ２１２は、送信データの欠落を検出したことにより、輻輳ウインドウサイズを小さくし、送信レートを抑制する。
【０１２９】
なお、アプリケーション２１１とアプリケーション３１１の間のデータ伝送は、ＴＣＰ２１２とＴＣＰ３１２の間の欠落検出および再送制御により、帯域制限器２０６による欠落発生にもかかわらず保証される。
【０１３０】
以上に説明した構成および動作では、トンネル入口側の帯域制限器２０６において流量を監視し、さらに設定された閾値以上の入力があった場合にフレームを欠落させていたが、入口側で帯域制限する場合よりも閾値を低く設定することにより、トンネル出口側の帯域制限器２０６において流量を監視し、さらに設定された閾値以上の入力があった場合にフレームを欠落させてもよい。
【０１３１】
また、以上に説明した構成および動作では、帯域制限器２０６に設定された閾値以上の入力があった場合にフレームを欠落させていたが、帯域制限器２０６のＮＩＣ２０５側に大きめのバッファ配置し、閾値以上の入力があった場合に、フレームを欠落させる代わりに遅延を増大させても良い。遅延の増大によっても、ＴＣＰ２１２におけるタイムアウト発生もしくは輻輳制御によりＴＣＰ２１２の送信レートを抑制できるため、フレームを欠落させた場合と同様の効果が得られる。
【０１３２】
さらに、以上に説明した構成および動作は、エンド端末同士がＴＣＰを用いる場合について述べたが、端末同士がＵＤＰを用いて通信する場合においても、本実施の形態におけるトンネリング装置ならびに帯域制限器等を用いることにより、ＴＣＰトンネルでのパケット欠落を防止し、ＴＣＰトンネルの安定化を図ることもできる。
【０１３３】
また、上記では、帯域制限器２０６は、フレームを欠落させることにより帯域を制限する場合を用いて説明したが、フレームがＴＣＰ２１２からＴＣＰ３１２に到着するまでの遅延時間を長くさせるように制御しても良い。
【０１３４】
（発明の効果）
次に、本実施の形態の効果について説明する。
本実施の形態に挙げた発明を利用すると、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による通信速度の低下（性能劣化）を抑制できる。これは、トンネルの入り口となるトンネリング手段２０１の前段に帯域制限器２０６を設けることにより、トンネルに過剰に流入するトラフィックを抑制し、ＴＣＰ２０２とＴＣＰ２０３の間の区間における欠落の発生や遅延の増大を抑制することで、ＴＣＰ２０２およびＴＣＰ２０３のＴＣＰの輻輳制御を実質的に無効にさせ、ＴＣＰ２１２およびＴＣＰ３１２におけるレート抑制制御が過剰に行われるのを防ぐためである。
【０１３５】
また、本実施の形態に挙げた発明を利用すると、エンド端末の設定変更（ＴＣＰ２１２やＴＣＰ３１２の最大受信ウインドウサイズの設定変更）なしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、トンネリング装置内に帯域制限器２０６を設けてＴＣＰ２１２とＴＣＰ３１２の間で交換されるフレームを強制的に欠落させることにより、ＴＣＰ２１２とＴＣＰ３１２間の通信の帯域制限をトンネリング装置内で行うからである。
【０１３６】
（第２の実施の形態）
本発明の第２の実施の形態は、第１の実施の形態において帯域制限器２０６によりフレーム欠落を発生させてＴＣＰ２１２およびＴＣＰ３１２のレートを制限するのに対して、ウインドウ書換器２０６ＡによりＴＣＰ２１２とＴＣＰ３１２との間で交換される受信ウインドウサイズ情報を書き換えることで、ＴＣＰ２１２およびＴＣＰ３１２のレートを制限する点において異なる。尚、以下の説明において、上記実施の形態と同様の構成については同一番号を付し、その詳細な説明は省略する。
【０１３７】
（構成の説明）
図４を参照して、本実施の形態における構成について説明する。
本発明の第２の実施の形態では、第１の実施の形態における帯域制限器２０６および帯域制限器３０６の代わりに、ウインドウ書換器２０６Ａおよびウインドウ書換器３０６Ａを設置する。
【０１３８】
ウインドウ書換器２０６Ａは、トンネリング手段２０１から受信するイーサネットフレームのＴＣＰヘッダを監視し、ＴＣＰ３１２からＴＣＰ２１２に送信される確認応答（ＡＣＫ）を含むフレームを検出した場合は、あらかじめウインドウ書換器２０６Ａに設定された閾値と、検出した確認応答（ＡＣＫ）フレーム内に含まれる受信ウインドウサイズを比較し、もし閾値が検出した確認応答（ＡＣＫ）フレームに含まれる受信ウインドウサイズ以下の場合は、検出したフレームに含まれる受信ウインドウサイズを閾値のサイズに書き換えて、ＮＩＣ２０５に転送する。
【０１３９】
上記以外の場合は、トンネリング手段２０１から受信するイーサネットフレームを、そのままＮＩＣ２０５に転送する。また、ＮＩＣ２０５から受信したイーサネットフレームは、全てそのままトンネリング手段２０１に転送する。
【０１４０】
なお、ウインドウ書換器２０６Ａに設定する閾値は、「ボトルネックリンク１１の帯域」と「ＴＣＰ２１２とＴＣＰ３１２との間の往復遅延時間（ＲＴＴ）」との積以下の値に設定するが、好ましくは「ボトルネックリンク１１の帯域」と「ＴＣＰ２１２とＴＣＰ３１２との間の往復遅延時間（ＲＴＴ）」との積より小さい値に設定したほうが良い。
【０１４１】
ウインドウ書換器３０６Ａは、ウインドウ書換器２０６Ａと同様の構成を有し、同様の動作を行う。
【０１４２】
（動作の説明）
以下、図４を参照して、本実施の形態における動作を、アプリケーション２１１からアプリケーション３１１に大きなデータを送信する場合を例に説明する。
【０１４３】
ＴＣＰ２０２およびＴＣＰ３０２は、相互の間で既に接続が完了しているものとする。また、Ｎｏｄｅｌａｙオプションにより、送信結合用のＮａｇｌｅアルゴリズムを無効設定しているものとする。
【０１４４】
ＴＣＰ２１２およびＴＣＰ３１２は、ＴＣＰ２０２とＴＣＰ３０２との間の接続完了後に、相互の間で接続動作を行い、既に接続が完了しているものとする。また、ＴＣＰ２１２およびＴＣＰ３１２における最大セグメントサイズ（ＭＳＳ）は、イーサネットフレーム２６がＴＣＰ２０２およびＴＣＰ３０２で分割（フラグメント）されない程度に、小さめに設定されているものとする。さらに、ＴＣＰ２１２およびＴＣＰ３１２の最大受信ウインドウサイズは、充分に大きく設定されているものとする。
【０１４５】
ボトルネックリンク１１は、端末２１と端末３１の間の経路上で最も通信帯域が細くなっている（隘路となっており、伝送速度が低速である）部分のリンクであり、帯域幅が判明しているとする。
【０１４６】
ウインドウ書換器２０６Ａの閾値は、「ボトルネックリンク１１の帯域」と「ＴＣＰ２１２とＴＣＰ３１２との間の往復遅延時間（ＲＴＴ）」との積よりも小さく、かつＴＣＰ２１２およびＴＣＰ３１２の最大受信ウインドウサイズよりも充分に小さい値に設定されているとする。
【０１４７】
（転送初期）
端末２１内のアプリケーション２１１が、サーバ３１内のアプリケーション３１１宛の大きなデータを作成し、ＴＣＰ２１２に渡す。
【０１４８】
ＴＣＰ２１２は、アプリケーション２１１から大きなデータを受け取ると、これを送信バッファに格納し、ネットワーク上で転送可能なサイズ（ＭＳＳ）にデータを分割（フラグメント処理）し、ＴＣＰ３１２から通知される受信ウインドウサイズおよび、ＴＣＰ２１２内の輻輳ウインドウサイズの双方をもとに送信レート（データ送出速度）を決定し、ＩＰ２１３およびＮＩＣ２１４を経由して、端末３１内のＴＣＰ３１２に向けて送信する。このとき、ＬＡＮ２を流れるフレームのフォーマットは、図２に示すイーサネットフレーム２６の形式となる。
【０１４９】
ＴＣＰは、転送初期は輻輳ウインドウサイズが小さく設定されているために小さな送信レートでデータを送信し、ＡＣＫの未着や、重複ＡＣＫの到着が発生しない限り、ＡＣＫを受領していないデータ量が受信ウインドウサイズと輻輳ウインドウサイズのどちらか小さいほうに達するまで、次第に輻輳ウインドウサイズを大きくして、次第に大きな送信レートでデータを送信する。このため、転送初期は低めの送信レートでデータが送信される。
【０１５０】
トンネリング装置２０内のＮＩＣ２０５は、ＬＡＮ２からイーサネットフレームを受信し、ウインドウ書換器２０６Ａに転送する。
【０１５１】
ウインドウ書換器２０６Ａは、ＮＩＣ２０５から受信したフレームを、そのままトンネリング手段２０１に転送する。
【０１５２】
トンネリング手段２０１は、帯域制限器２０６から受信したフレームをＴＣＰ２０２にデータとして受け渡す。
【０１５３】
ＴＣＰ２０２は、トンネリング手段２０１からデータ（イーサネットフレーム２６）を受け取ると、これを送信バッファに格納し、ＴＣＰ３０２から通知される受信ウインドウサイズおよび、ＴＣＰ２０２内の輻輳ウインドウサイズの双方をもとに送信レート（データ送出速度）を決定し、ＩＰ２０３およびＮＩＣ２０４を経由して、トンネリング装置３０内のＴＣＰ３０２に向けて送信する。このとき、ＷＡＮ１を流れるフレームのフォーマットは、図３に示すイーサｏｖｅｒＴＣＰフレーム１２の形式となる。
【０１５４】
トンネリング装置３０内のＴＣＰ３０２は、ＴＣＰ２０２から送信されたデータを、ＮＩＣ３０４、ＩＰ３０２を経由して受信し、トンネリング手段３０１に転送する。このときＴＣＰ３０２は、ＴＣＰ２０２に対して確認応答を送信し、この確認応答を受信したＴＣＰ２０２は、輻輳ウインドウのサイズを拡げ、送信レートを高くする。
【０１５５】
トンネリング手段３０１は、ＴＣＰ３０２からデータ（イーサネットフレーム２６）を受信し、ウインドウ書換器３０６Ａに転送する。
【０１５６】
ウインドウ書換器３０６Ａは、トンネリング手段３０１から受信したフレームを、そのままＮＩＣ３０５を経由して、端末３１に送信する。このとき、ＬＡＮ３を流れるフレームのフォーマットは、図２に示すイーサネットフレーム２６の形式となる。
【０１５７】
端末３１内のＴＣＰ３１２は、トンネリング装置３０から送信されたイーサネットフレームを、ＮＩＣ３１４、ＩＰ３１２を経由して受信し、バッファに格納する。このときＴＣＰ３１２は、ＴＣＰ２１２に対して確認応答を送信する。この確認応答（ＡＣＫ）には、ＴＣＰ３１２が受信可能なデータの量を表す受信ウインドウサイズの情報が含まれている。この受信ウインドウサイズは、通常はウインドウ書換器２０６Ａに設定された閾値よりも大きい値となる。
【０１５８】
（ＡＣＫ返信）
ＴＣＰ３１２からＴＣＰ２１２に向けて送信された確認応答（ＡＣＫ）は、ＩＰ３１３、ＮＩＣ３１４、ＮＩＣ３０５を通じて、ウインドウ書換器３０６Ａに到達する。
【０１５９】
ウインドウ書換器は、ＮＩＣ３０５からＡＣＫを含むイーサネットフレームを受信するが、ＮＩＣ３０５側から到着したＡＣＫのため、何もせずそのままトンネリング手段３０１に転送する。
【０１６０】
トンネリング手段３０１は、ウインドウ書換器３０６Ａから受信した確認応答（ＡＣＫ）フレームを、ＴＣＰ３０２、ＩＰ３０３、ＮＩＣ３０４、ＮＩＣ２０４、ＩＰ２０３、ＴＣＰ２０２、トンネリング手段２０１を経由して、ウインドウ書換器２０６Ａに転送する。
【０１６１】
ウインドウ書換器２０６Ａは、トンネリング手段２０１から受信したイーサネットフレームを調べ、確認応答（ＡＣＫ）フレームであることから、記載されている受信ウインドウサイズを確認する。この結果、記載されている受信ウインドウサイズが閾値よりも大きな値であることから、この受信ウインドウサイズを閾値の値に書換え、ＮＩＣ２０５に転送する。
【０１６２】
ウインドウ書換器２０６Ａで受信ウインドウサイズを書き換えられた確認応答（ＡＣＫ）フレームは、ＮＩＣ２０５、ＮＩＣ２１４、ＩＰ２１３を経由して、ＴＣＰ２１２に到達する。
【０１６３】
（ＡＣＫ到着後のデータ送信）
ＴＣＰ２１２は、受信した確認応答（ＡＣＫ）に含まれる受信ウインドウサイズ情報と、ＴＣＰ２１２内の輻輳ウインドウサイズの双方をもとに送信レート（データ送出速度）を決定し、残りのデータをＴＣＰ３１２に向けて送信する。
【０１６４】
この際ＴＣＰは、ＡＣＫを受領していない送信済データの量が、受信ウインドウサイズと輻輳ウインドウサイズのどちらか小さいほうに達するまで、次第に輻輳ウインドウサイズを大きくしながら、次第に大きな送信レートでデータを送信する。
【０１６５】
しかしながら、本実施の形態では、ＴＣＰ３１２からＴＣＰ２１２へ送信される受信ウインドウサイズが、ウインドウ書換器２０６Ａによって小さい値（閾値）に書き換えられるため、ＴＣＰ２１２から送信されるデータの最大送信レートは、閾値（受信ウインドウサイズ）÷往復遅延時間（ＲＴＴ）より求められるレートを上限として制限される。
【０１６６】
この結果、ＴＣＰ２１２の送信レートが、ボトルネックリンク１１の帯域以上にならないよう、適切にウインドウ書換器２０６Ａの閾値を設定すれば、実施の形態１において帯域制限器２０６を設置した場合と同様の効果が得られる。
【０１６７】
つまり、ＴＣＰ２１２からＴＣＰ３１２へのデータ転送を継続すると、ＴＣＰ３１２からＴＣＰ２１２へ送信される確認応答によりＴＣＰ２１２の輻輳ウインドウサイズが大きくなり、また、ＴＣＰ３０２からＴＣＰ２０２へ送信される確認応答によりＴＣＰ２０２の輻輳ウインドウサイズも大きくなるが、ＴＣＰ２１２の送信レートは受信ウインドウサイズにより制限されるため、ボトルネックリンク１１の帯域を上回ることがない。
【０１６８】
この結果、本実施の形態では、ボトルネックリンク１１における欠落の発生や遅延の増大を抑制できるため、ＴＣＰ２０２およびＴＣＰ３０２の輻輳ウインドウサイズは限りなく増大する。つまり、ＴＣＰ２０２およびＴＣＰ３０２の輻輳制御を、実質的に無効にできる。
【０１６９】
以上に説明した構成および動作では、トンネル出口側のウインドウ書換器においてトンネルから到着する確認応答を監視し、設定された閾値以上の受信ウインドウサイズが確認応答フレーム内に記載されていた場合に受信ウインドウサイズを書き換えていたが、これとは逆に、トンネル入口側のウインドウ書換器においてトンネルに向かう確認応答を監視し、設定された閾値以上の受信ウインドウサイズが確認応答フレーム内に記載されていた場合に受信ウインドウサイズを書き換えても良い。
【０１７０】
また、以上に説明した構成および動作では、ウインドウ書換器において確認応答を監視し、設定された閾値以上の受信ウインドウサイズが確認応答フレーム内に記載されていた場合に受信ウインドウサイズを書き換えていたが、受信ウインドウサイズの書き換えをせず、確認応答（ＡＣＫ）フレームをコピーして３個追加で送信し、エンド端末のＴＣＰ（ＴＣＰ２１２）で重複確認応答受信による輻輳ウインドウサイズの低下を発生させても、ウインドウサイズの書換えと同様の効果が得られる。
【０１７１】
さらに、以上に説明した構成および動作では、ウインドウ書換器において確認応答を監視し、設定された閾値以上の受信ウインドウサイズが確認応答フレーム内に記載されていた場合に受信ウインドウサイズを書き換えていたが、ウインドウ書換器を用いず、ＴＣＰ２０２およびＴＣＰ２０３の最大輻輳ウインドウサイズを、これまでの説明でウインドウ書換器に設定していた閾値と同じ値に設定することにより、ＴＣＰトンネル過剰に流入するトラフィックを抑制し、ＴＣＰ２０２とＴＣＰ２０３の間の区間における欠落の発生や遅延の増大を抑制することで、ＴＣＰ２０２およびＴＣＰ２０３のＴＣＰの輻輳制御を実質的に無効にさせ、ＴＣＰ２１２およびＴＣＰ３１２におけるレート抑制制御が過剰に行われるのを防ぐことができる。
【０１７２】
（発明の効果）
次に、本実施の形態の効果について説明する。
本実施の形態に挙げた発明を利用すると、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による性能劣化を抑制できる。これは、ウインドウ書換器２０６Ａを設けてＴＣＰ３１２からＴＣＰ２１２に向けて送信される確認応答（ＡＣＫ）内に含まれる受信ウインドウサイズを小さい値に書き換え、ＴＣＰ２１２から送信されるトラフィックの送信レートを抑制することにより、トンネルに過剰に流入するトラフィックを抑制し、ＴＣＰ２０２とＴＣＰ２０３の間の区間における欠落の発生や遅延の増大を抑制することで、ＴＣＰ２０２およびＴＣＰ２０３のＴＣＰの輻輳制御を実質的に無効にさせ、ＴＣＰ２１２およびＴＣＰ３１２におけるレート抑制制御が過剰に行われるのを防ぐためである。
【０１７３】
また、本実施の形態に挙げた発明を利用すると、エンド端末の設定変更（ＴＣＰ２１２やＴＣＰ３１２の最大受信ウインドウサイズの設定変更）なしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、トンネリング装置内にウインドウ書換器２０６Ａを設けてＴＣＰ３１２からＴＣＰ２１２に向けて送信される確認応答（ＡＣＫ）内に含まれる受信ウインドウウサイズを小さい値に書き換えることにより、ＴＣＰ３１２とＴＣＰ２１２間の通信の帯域制限をトンネリング装置内で行うからである。
【０１７４】
（第３の実施の形態）
本発明の第３の実施の形態は、第１の実施の形態において帯域制限器２０６によりフレーム欠落を発生させてＴＣＰ２１２およびＴＣＰ３１２のレートを制限するのに対して、リソースマネージャ２０７によりトンネリング手段２０１へのＣＰＵリソースの割当を制限し、トンネリング手段２０１の転送処理能力を低下させることで、ＴＣＰ２１２およびＴＣＰ３１２のレートを制限する点において異なる。尚、以下の説明において、上記実施の形態と同様の構成については同一番号を付し、その詳細な説明は省略する。
【０１７５】
（構成の説明）
図５を参照して、本実施の形態における構成について説明する。
本発明の第２の実施の形態では、第１の実施の形態における帯域制限器２０６および帯域制限器３０６の代わりに、流量監視器２０６Ｂ、リソースマネージャ２０７、流量監視器３０６Ｂ、およびリソースマネージャ３０７を設置する。
【０１７６】
流量監視器２０６Ｂは、ＮＩＣ２０５から流量監視器２０６Ｂを通過してトンネリング手段２０１に流れるフレームのデータ量を監視し、一定時間ごとにリソースマネージャ２０７に伝える。なお流量監視器２０６Ｂは、トンネリング手段２０１から流量監視器２０６Ｂを通過してＮＩＣ２０５に向かうフレームについては、監視を行わない。
【０１７７】
リソースマネージャ２０７は、流量監視器２０６Ｂから一定時間にＮＩＣ２０５からトンネリング手段２０１に向かって流れるフレームの流量の報告を受け、流量があらかじめ設定された閾値を超えた場合又閾値以上になった場合は、トンネリング手段２０１に割り当てるＣＰＵ等の資源を減らし、トンネリング手段２０１の転送処理能力を低下させて、ボトルネックリンクに流れるフレームの流量を設定された帯域（閾値）以下又は設定された帯域（閾値）より小さくなるようにする。
【０１７８】
リソースマネージャ２０７がトンネリング手段２０１に割り当てるリソースを減らす方法としては、トンネリング手段のタスク優先度（Ｐｒｉｏｒｉｔｙ）を下げる方法、ＣＰＵにダミーの処理を行わせてＣＰＵ負荷を高める方法、クロックを落としてシステム全体の処理能力を低下させる方法などが挙げられる。このうちクロックを落とす方法は、トンネリング手段２０１の処理がＣＰＵによるソフトウェア処理ではなく、ハードウェア処理である場合にも適用できる。
【０１７９】
流量監視器３０６Ｂは、流量監視器２０６Ｂと同様の構成を有し、同様の動作を行う。
【０１８０】
リソースマネージャ３０７は、リソースマネージャ２０７と同様の構成を有し、同様の動作を行う。
【０１８１】
（動作の説明）
以下、図５を参照して、本実施の形態における動作を、アプリケーション２１１からアプリケーション３１１に大きなデータを送信する場合を例に説明する。
【０１８２】
ＴＣＰ２０２およびＴＣＰ３０２は、相互の間で既に接続が完了しているものとする。また、Ｎｏｄｅｌａｙオプションにより、送信結合用のＮａｇｌｅアルゴリズムを無効設定しているものとする。
【０１８３】
ＴＣＰ２１２およびＴＣＰ３１２は、ＴＣＰ２０２とＴＣＰ３０２との間の接続完了後に、相互の間で接続動作を行い、既に接続が完了しているものとする。また、ＴＣＰ２１２およびＴＣＰ３１２における最大セグメントサイズ（ＭＳＳ）は、イーサネットフレーム２６がＴＣＰ２０２およびＴＣＰ３０２で分割（フラグメント）されない程度に、小さめに設定されているものとする。さらに、ＴＣＰ２１２およびＴＣＰ３１２の最大受信ウインドウサイズは、充分に大きなものであるとする。
【０１８４】
ボトルネックリンク１１は、端末２１と端末３１の間の経路上で最も通信帯域が細くなっている（隘路となっており、伝送速度が低速である）部分のリンクであり、帯域幅が判明しているとする。
【０１８５】
リソースマネージャ２０７は、閾値がボトルネックリンク１１の帯域以下の値に設定されているとする。
【０１８６】
（転送初期）
端末２１内のアプリケーション２１１が、サーバ３１内のアプリケーション３１１宛の大きなデータを作成し、ＴＣＰ２１２に渡す。
【０１８７】
ＴＣＰ２１２は、アプリケーション２１１から大きなデータを受け取ると、これを送信バッファに格納し、ネットワーク上で転送可能なサイズ（ＭＳＳ）にデータを分割（フラグメント処理）し、ＴＣＰ３１２から通知される受信ウインドウサイズおよび、ＴＣＰ２１２内の輻輳ウインドウサイズの双方をもとに送信レート（データ送出速度）を決定し、ＩＰ２１３およびＮＩＣ２１４を経由して、端末３１内のＴＣＰ３１２に向けて送信する。このとき、ＬＡＮ２を流れるフレームのフォーマットは、図２に示すイーサネットフレーム２６の形式となる。
【０１８８】
ＴＣＰは、転送初期は輻輳ウインドウサイズが小さく設定されているために小さな送信レートでデータを送信し、ＡＣＫの未着や、重複ＡＣＫの到着が発生しない限り、ＡＣＫを受領していないデータ量が受信ウインドウサイズと輻輳ウインドウサイズのどちらか小さいほうに達するまで、次第に輻輳ウインドウサイズを大きくして、次第に大きな送信レートでデータを送信する。このため、転送初期は低めの送信レートでデータが送信される。
【０１８９】
トンネリング装置２０内のＮＩＣ２０５は、ＬＡＮ２からイーサネットフレームを受信し、帯域制限器２０６に転送する。
【０１９０】
流量監視器２０６Ｂは、ＮＩＣ２０５から単位時間あたりに受信するイーサネットフレームの流量を監視し、リソースマネージャ２０７に通知する。
【０１９１】
リソースマネージャ２０７は、転送初期においては、流量監視器２０６Ｂから通知されるデータの流量は、リソースマネージャ２０７に設定された閾値よりも低く抑えられるため、トンネリング手段２０１に割り当てるＣＰＵリソースを制限しない。
【０１９２】
トンネリング手段２０１は、流量監視器２０６Ｂから受信したフレームをＴＣＰ２０２にデータとして受け渡す。
【０１９３】
ＴＣＰ２０２は、トンネリング手段２０１からデータ（イーサネットフレーム２６）を受け取ると、これを送信バッファに格納し、ＴＣＰ３０２から通知される受信ウインドウサイズおよび、ＴＣＰ２０２内の輻輳ウインドウサイズの双方をもとに送信レート（データ送出速度）を決定し、ＩＰ２０３およびＮＩＣ２０４を経由して、トンネリング装置３０内のＴＣＰ３０２に向けて送信する。このとき、ＷＡＮ１を流れるフレームのフォーマットは、図３に示すイーサｏｖｅｒＴＣＰフレーム１２の形式となる。
【０１９４】
トンネリング装置３０内のＴＣＰ３０２は、ＴＣＰ２０２から送信されたデータを、ＮＩＣ３０４、ＩＰ３０２を経由して受信し、トンネリング手段３０１に転送する。このときＴＣＰ３０２は、ＴＣＰ２０２に対して確認応答を送信し、この確認応答を受信したＴＣＰ２０２は、輻輳ウインドウのサイズを拡げ、送信レートを高くする。
【０１９５】
トンネリング手段３０１は、ＴＣＰ３０２からデータ（イーサネットフレーム２６）を受信し、流量監視器３０６Ｂに転送する。
【０１９６】
流量監視器３０６Ｂは、トンネリング手段３０１から受信したフレームを、流量の監視を行わず、そのままＮＩＣ３０５を経由して、端末３１に送信する。このとき、ＬＡＮ３を流れるフレームのフォーマットは、図２に示すイーサネットフレーム２６の形式となる。
【０１９７】
端末３１内のＴＣＰ３１２は、トンネリング装置３０から送信されたイーサネットフレームを、ＮＩＣ３１４、ＩＰ３１２を経由して受信し、バッファに格納する。このときＴＣＰ３１２は、ＴＣＰ２１２に対して確認応答を送信し、この確認応答を受信したＴＣＰ２１２は、輻輳ウインドウのサイズを拡げ、送信レートを高くする。
【０１９８】
以上の動作例（転送初期）に従い、ＴＣＰ２１２からＴＣＰ３１２へのデータ転送を継続すると、ＴＣＰ３１２からＴＣＰ２１２へ送信される確認応答によりＴＣＰ２１２の輻輳ウインドウサイズが大きくなり、また、ＴＣＰ３０２からＴＣＰ２０２へ送信される確認応答によりＴＣＰ２０２の輻輳ウインドウサイズも大きくなる。そして、ＴＣＰ２１２の送信レートがリソースマネージャ２０７に設定された閾値を上回るようになる。
【０１９９】
（ＴＣＰ２１２の送信レートがリソースマネージャ２０７に設定された閾値を上回った場合）
端末２１内のＴＣＰ２１２は、リソースマネージャ２０７に設定された閾値を上回るレートで、ＴＣＰ３１２に向けてデータを送信する。このデータは、ＩＰ２１３、ＮＩＣ２１４、ＮＩＣ２０５を経由して、トンネリング装置２０内の流量監視器２０６Ｂに到達する。
【０２００】
流量監視器２０６Ｂは、ＮＩＣ２０５からトンネリング手段２０１にフレームを転送すると同時に、ＮＩＣ２０５から単位時間あたりに受信するイーサネットフレームの流量を、リソースマネージャ２０７に伝達する。
【０２０１】
リソースマネージャ２０７は、流量監視器２０６Ｂから、単位時間あたりに受信するイーサネットフレームの流量の伝達を受け、流量があらかじめ設定された帯域（閾値）以上になったと判断し、トンネリング手段２０１に割り当てるＣＰＵリソースを減らし、トンネリング手段２０１の転送処理能力を低下させる。
【０２０２】
トンネリング手段２０１は、流量監視器２０６Ｂからフレームを受信するが、処理能力を落とされているため、いくつかのフレームを取りこぼして欠落させたり、転送に時間がかかり、ＴＣＰ２１２で送信されてからＴＣＰ３１２に到着するまでの遅延時間を長くしたりする。この結果、ＴＣＰ２０２には、ボトルネックリンク１１の帯域を越えないレートで、トンネリング手段２０１からフレームが転送される。
【０２０３】
ＴＣＰ２０２は、トンネリング手段２０１からデータ（イーサネットフレーム２６）を受け取ると、トンネリング装置３０内のＴＣＰ３０２に向けて送信する。
【０２０４】
ＴＣＰ３０２は、ＴＣＰ２０２より受信したデータを、トンネリング手段３０１を経由して、流量監視器３０６Ｂに転送する。これと同時にＴＣＰ３０２はＴＣＰ２０２に対して確認応答を送信し、ＴＣＰ２０２はこの確認応答を受信して輻輳ウインドウのサイズを拡げ、送信可能なレートを高くする。
【０２０５】
このときＴＣＰ２０２は、これまでのデータ転送で輻輳ウインドウサイズが大きくなっており、本来であればボトルネックリンク１１の帯域よりも高いレートでデータを送信できる筈だが、本実施の形態では、トンネリング手段２０１から流入するデータのレートが、リソースマネージャ２０７による制限によってボトルネックリンク１１の帯域よりも低く抑えられている（つまり、ボトルネックを強制的にトンネリング手段２０１上に移動させている）。このためＴＣＰ２０２は、リソースマネージャ２０７に設定された閾値を越えるレートではデータを送信しない。
【０２０６】
この結果、本実施の形態では、ボトルネックリンク１１における欠落の発生や遅延の増大を抑制できるため、ＴＣＰ２０２およびＴＣＰ３０２の輻輳ウインドウサイズは限りなく増大する。つまり、ＴＣＰ２０２およびＴＣＰ３０２の輻輳制御を、実質的に無効にできる。
【０２０７】
流量監視器３０６Ｂは、トンネリング手段３０１から受信したフレームを、流量の監視などを行わずにそのまま送信し、このフレームは、ＮＩＣ３０５、ＮＩＣ３１４、ＩＰ３１３を経由して、端末３１内のＴＣＰ３１２に到達する。
【０２０８】
ＴＣＰ３１２は、受信したデータをバッファに格納する。このときＴＣＰ３１２は、データの欠落を検知し、ＴＣＰ２１２に対して重複ＡＣＫを送信して、データの再送を要求する（もしくは遅延情報をＴＣＰ２１２に伝達する）。なお、トンネリング手段２０１が取りこぼしたフレームによっては、ＴＣＰ３１２が欠落を検知でないが、この場合ＴＣＰ２１２は、重複ＡＣＫの到着ではなくＡＣＫの未着により欠落を検知する。
【０２０９】
ＴＣＰ２１２は、ＴＣＰ３１２からの重複ＡＣＫの到着、もしくはＡＣＫ未着や遅延の増大によるタイムアウト発生により、送信データの欠落を検知して再送信を行う。この際ＴＣＰ２１２は、送信データの欠落を検出したことにより、輻輳ウインドウサイズを小さくし、送信レートを抑制する。
【０２１０】
なお、アプリケーション２１１とアプリケーション３１１の間のデータ伝送は、ＴＣＰ２１２とＴＣＰ３１２の間の欠落検出および再送制御により、トンネリング手段２０１における欠落発生にかかわらず保証される。
【０２１１】
さらに、以上に説明した構成および動作は、端末同士がＴＣＰを用いる場合について述べたが、端末同士がＵＤＰを用いて通信する場合においても、本実施の形態におけるトンネリング装置ならびに帯域制限器等を用いることにより、ＴＣＰトンネルでのパケット欠落を防止し、ＴＣＰトンネルの安定化を図ることもできる。
【０２１２】
（発明の効果）
次に、本実施の形態の効果について説明する。
本実施の形態に挙げた発明を利用すると、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による性能劣化を抑制できる。これは、トンネルの入り口となるトンネリング手段２０１に割り当てるＣＰＵパワーを抑制してトンネルに過剰に流入するトラフィックを抑制し、ＴＣＰ２０２とＴＣＰ２０３の間の区間における欠落の発生や遅延の増大を抑制することで、ＴＣＰ２０２およびＴＣＰ２０３のＴＣＰの輻輳制御を実質的に無効にさせ、ＴＣＰ２１２およびＴＣＰ３１２におけるレート抑制制御が過剰に行われるのを防ぐためである。
【０２１３】
また、本実施の形態に挙げた発明を利用すると、エンド端末の設定変更（ＴＣＰ２１２やＴＣＰ３１２の最大受信ウインドウサイズの設定変更）なしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、トンネリング装置内にリソースマネージャ２０７を設け、トンネリング手段２０１に割り当てるＣＰＵパワーを抑制してトンネルに流入するトラフィックの量を抑制し、この結果取りこぼしによるフレーム欠落や遅延時間の増大を発生させることにより、ＴＣＰ２１２とＴＣＰ３１２間の通信の帯域制限をトンネリング装置内で行うからである。
【０２１４】
（第４の実施の形態）
本発明の第４の実施の形態は、第１の実施の形態における帯域制限器２０６の閾値設定を、帯域測定手段２０８により自動的に行う点において異なる。尚、以下の説明において、上記実施の形態と同様の構成については同一番号を付し、その詳細な説明は省略する。
【０２１５】
（構成の説明）
図６を参照して、本実施の形態における構成について説明する。
本発明の第４の実施の形態では、図１に示す第１の実施の形態に対して、帯域測定手段２０８、および帯域測定手段３０８を追加している。
【０２１６】
帯域測定手段２０８は、以下に挙げる機能を有する。
（１）ＴＣＰ２０２とＴＣＰ３０２の接続完了直後に、帯域測定用データを作成してＴＣＰ２０２に渡す。
（２）帯域測定用データの送出完了後に、帯域測定手段３０８から送信される測定結果を受信し、帯域制限器２０６の閾値を設定する。
（３）帯域測定手段３０８から送信される帯域測定用データを受信し、ボトルネックリンク１１の帯域を計算して、ＴＣＰ２０２を用いて帯域・遅延測定手段３０８Ａに測定結果を伝達する。
【０２１７】
帯域測定手段３０８は、帯域測定手段２０８と同様の構成を有し、同様の動作を行う。
【０２１８】
（動作の説明）
以下、図６を参照して、本実施の形態における動作を、アプリケーション２１１からアプリケーション３１１に大きなデータを送信する場合を例に説明する。
【０２１９】
ボトルネックリンク１１は、端末２１と端末３１の間の経路上で最も通信帯域が細くなっている（隘路となっており、伝送速度が低速である）部分のリンクであるとする。
【０２２０】
ＴＣＰ２０２およびＴＣＰ３０２は、Ｎｏｄｅｌａｙオプションにより、送信結合用のＮａｇｌｅアルゴリズムを無効設定しているものとする。
【０２２１】
ＴＣＰ２１２およびＴＣＰ３１２における最大セグメントサイズ（ＭＳＳ）は、イーサネットフレーム２６がＴＣＰ２０２およびＴＣＰ３０２で分割（フラグメント）されない程度に、小さめに設定されているものとする。さらに、ＴＣＰ２１２およびＴＣＰ３１２の最大受信ウインドウサイズは、充分に大きなものであるとする。
【０２２２】
（接続動作）
ＴＣＰ２０２は、トンネリング手段２０１からの指示により、ＴＣＰ３０２に対して接続処理を行う。
【０２２３】
トンネリング手段２０１は、ＴＣＰ２０２からの接続完了通知を受けると、帯域測定手段２０８に対して、帯域測定指示を出す。
【０２２４】
帯域測定手段２０８は、帯域測定用データ（ＭＳＳを越える巨大データ、もしくはＭＳＳより充分に小さなデータ）を作成し、このデータをＴＣＰ２０２に渡す。なお帯域測定用データの最後には、データの終了を示す符号が付加されている。
【０２２５】
ＴＣＰ２０２は、帯域測定手段２０８から帯域測定用データを受け取ると、これを送信バッファに格納し、必要であればネットワーク上で転送可能なサイズ（ＭＳＳ）にデータを分割（フラグメント処理）し、ＴＣＰ３０２から通知される受信ウインドウサイズおよび、ＴＣＰ２０２内の輻輳ウインドウサイズの双方をもとに送信レート（データ送出速度）を決定し、ＩＰ２０３、ＮＩＣ２０４、ＮＩＣ３０４、ＩＰ３０３を経由して、トンネリング装置３０内のＴＣＰ３０２に向けて送信する。
【０２２６】
ＴＣＰ３０２は、帯域測定手段２０８から受信した帯域測定用データを、帯域測定手段３０８に渡す。
【０２２７】
帯域測定手段３０８は、ＴＣＰ３０２から渡される帯域測定用データの受信開始時からグッドプットの計算を開始し、測定用データの終了を示す符号を受信すると計算を終了し、ＴＣＰ３０２を用いて帯域測定手段２０８にグッドプット測定結果を送信する。
【０２２８】
帯域測定手段２０８は、帯域測定手段３０８からのグッドプット計算結果を受信し、通知されたグッドプットより小さな値を、帯域制限器２０６の閾値として設定する。
【０２２９】
以上の動作により、帯域制限器２０６は、閾値がボトルネックリンク１１の帯域以下の値に、自動的に設定される。
【０２３０】
この後、ＴＣＰ２１２とＴＣＰ３１２の間で接続を行うと、以降の動作は実施の形態１における「転送初期」以降の動作と同様になる。
【０２３１】
（発明の効果）
次に、本実施の形態の効果について説明する。
本実施の形態に挙げた発明を利用すると、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による通信速度の低下（性能劣化）を抑制できる。これは、トンネルの入り口となるトンネリング手段２０１の前段に帯域制限器２０６を設けることにより、トンネルに過剰に流入するトラフィックを抑制し、ＴＣＰ２０２とＴＣＰ２０３の間の区間における欠落の発生や遅延の増大を抑制することで、ＴＣＰ２０２およびＴＣＰ２０３のＴＣＰの輻輳制御を実質的に無効にさせ、ＴＣＰ２１２およびＴＣＰ３１２におけるレート抑制制御が過剰に行われるのを防ぐためである。
【０２３２】
また、本実施の形態に挙げた発明を利用すると、エンド端末の設定変更（ＴＣＰ２１２やＴＣＰ３１２の最大受信ウインドウサイズの設定変更）なしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、トンネリング装置内に帯域制限器２０６を設けてＴＣＰ２１２とＴＣＰ３１２の間で交換されるフレームを強制的に欠落させることにより、ＴＣＰ２１２とＴＣＰ３１２間の通信の帯域制限をトンネリング装置内で行うからである。
【０２３３】
また、本実施の形態に挙げた発明を利用すると、端末やトンネリング装置のいずれの設定もなしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、ＴＣＰ２０２とＴＣＰ３０２の接続後に、帯域測定手段２０８がボトルネックリンク１１の最大帯域を測定し、この結果より帯域制限器２０６の閾値を自動的に決定するからである。
【０２３４】
（第５の実施の形態）
本発明の第５の実施の形態は、第２の実施の形態におけるウインドウ書換器２０６Ａの閾値設定を、帯域・遅延測定手段２０８Ａにより自動的に行う点において異なる。尚、以下の説明において、上記実施の形態と同様の構成については同一番号を付し、その詳細な説明は省略する。
【０２３５】
（構成の説明）
図７を参照して、本実施の形態における構成について説明する。
本発明の第５の実施の形態では、図４に示す第２の実施の形態に対して、帯域・遅延測定手段２０８Ａ、および帯域・遅延測定手段３０８Ａを追加している。
【０２３６】
帯域・遅延測定手段２０８Ａは、以下に挙げる機能を有する。
（１）ＴＣＰ２０２とＴＣＰ３０２の接続完了直後に、帯域測定用データを作成してＴＣＰ２０２に渡す。帯域測定用データには、タイムスタンプやシーケンスナンバーなど、ボトルネックリンク１１の帯域のほか、片道遅延を測定するための情報が含まれる。
（２）トンネリング装置２０とトンネリング装置３０の時刻同期が行われている場合は、帯域・遅延測定手段３０８Ａから送信される帯域測定用データを全て受信した後、帯域・遅延測定手段３０８Ａから帯域・遅延測定手段２０８Ａへの帯域と片道遅延を計算して、ＴＣＰ２０２を用いて帯域・遅延測定手段３０８Ａに測定結果を伝達する。
（３）トンネリング装置２０とトンネリング装置３０の時刻同期が行われている場合は、帯域測定用データの送出完了後に、帯域・遅延測定手段３０８Ａから送信される帯域（グッドプット）と片道遅延の測定結果を受信する。そして、通知された片道遅延時間を２倍して往復遅延として用い、これら帯域と往復遅延時間の積よりも小さい値になるよう、ウインドウ書換器２０６Ａの閾値を設定する。
（４）トンネリング装置２０とトンネリング装置３０の時刻同期が行われていない場合は、帯域・遅延測定手段３０８Ａから送信される帯域測定用データをＴＣＰ２０２から個々に受信後直ちに、データをそのまま（帯域・遅延測定手段３０８Ａが挿入したタイムスタンプを残したまま）帯域・遅延測定手段３０８Ａに送り返し、帯域・遅延測定手段３０８Ａに往復遅延時間を計算させる。さらに、帯域・遅延測定手段３０８Ａから送信される帯域測定用データを全て受信した後、帯域を計算し、ＴＣＰ２０２を用いて帯域・遅延測定手段３０８Ａに測定結果を伝達する。
（５）トンネリング装置２０とトンネリング装置３０の時刻同期が行われていない場合は、帯域・遅延測定手段３０８Ａより折り返される測定用データのタイムスタンプに記された時刻と、折り返された測定用データを受信した時刻の差より、往復遅延時間を計算する。そして、帯域測定用データの送出完了後に、帯域・遅延測定手段３０８Ａから送信される帯域（グッドプット）と、自身が計算した往復遅延時間の積よりも小さい値になるよう、ウインドウ書換器２０６Ａの閾値を設定する。
【０２３７】
帯域・遅延測定手段３０８Ａは、帯域・遅延測定手段２０８Ａと同様の構成を有し、同様の動作を行う。
【０２３８】
（動作の説明）
以下、図７を参照して、本実施の形態における動作を、アプリケーション２１１からアプリケーション３１１に大きなデータを送信する場合を例に説明する。
【０２３９】
ボトルネックリンク１１は、端末２１と端末３１の間の経路上で最も通信帯域が細くなっている（隘路となっており、伝送速度が低速である）部分のリンクであるとする。
【０２４０】
ＴＣＰ２０２およびＴＣＰ３０２は、Ｎｏｄｅｌａｙオプションにより、送信結合用のＮａｇｌｅアルゴリズムを無効設定しているものとする。
【０２４１】
ＴＣＰ２１２およびＴＣＰ３１２における最大セグメントサイズ（ＭＳＳ）は、イーサネットフレーム２６がＴＣＰ２０２およびＴＣＰ３０２で分割（フラグメント）されない程度に、小さめに設定されているものとする。さらに、ＴＣＰ２１２およびＴＣＰ３１２の最大受信ウインドウサイズは、充分に大きく設定されているものとする。
【０２４２】
トンネリング装置２０とトンネリング装置３０の間では、時刻同期が行われていないとする。
【０２４３】
（接続動作）
ＴＣＰ２０２は、トンネリング手段２０１からの指示により、ＴＣＰ３０２に対して接続処理を行う。
【０２４４】
トンネリング手段２０１は、ＴＣＰ２０２からの接続完了通知を受けると、帯域・遅延測定手段２０８Ａに対して、帯域測定指示を出す。
【０２４５】
帯域・遅延測定手段２０８Ａは、帯域測定用データ（ＭＳＳより小さなデータ）を作成し、このデータを繰り返してＴＣＰ２０２に渡す。なお最後に送信する帯域測定用データには、データの終了を示す符号を付加する。
【０２４６】
ＴＣＰ２０２は、帯域測定手段２０８から帯域測定用データを受け取ると、これを送信バッファに格納し、ＴＣＰ３０２から通知される受信ウインドウサイズおよび、ＴＣＰ２０２内の輻輳ウインドウサイズの双方をもとに送信レート（データ送出速度）を決定し、ＩＰ２０３、ＮＩＣ２０４、ＮＩＣ３０４、ＩＰ３０３を経由して、トンネリング装置３０内のＴＣＰ３０２に向けて送信する。ＴＣＰ２０２は、Ｎｏｄｅｌａｙオプションが設定され、さらにデータはＭＳＳより小さいため、１データにつき１フレームが送信される。
【０２４７】
ＴＣＰ３０２は、帯域測定手段２０８から帯域測定用データを受信し始めると、このフレームは分割されていないため、ただちに帯域・遅延測定手段３０８Ａに渡す。
【０２４８】
帯域・遅延測定手段３０８Ａは、ＴＣＰ３０２から個々の帯域測定用データの受信後直ちに、データをそのまま（帯域・遅延測定手段３０８Ａが挿入したタイムスタンプを残したまま）ＴＣＰ３０２を通じて帯域・遅延測定手段２０８Ａに送り返し、帯域・遅延測定手段２０８Ａに往復遅延時間を計算させる。さらに、データ終了を示す符号により、帯域・遅延測定手段２０８Ａから送信される帯域測定用データの受信完了を検出すると、帯域を計算し、ＴＣＰ３０２を用いて帯域・遅延測定手段２０８Ａに帯域（グッドプット）測定結果を伝達する。
【０２４９】
帯域・遅延測定手段２０８Ａは、帯域・遅延測定手段３０８Ａより折り返される測定用データを受信する毎に、タイムスタンプに記された時刻と、折り返された測定用データを受信した時刻の差より、往復遅延時間を計算する。
【０２５０】
帯域・遅延測定手段２０８Ａは、自身からの帯域測定用データの送出完了後に帯域・遅延測定手段３０８Ａから送信される、帯域測定結果（グッドプット測定結果）を受信すると、この帯域測定結果と自身が計算した往復遅延時間の積よりも小さい値になるよう、ウインドウ書換器２０６Ａの閾値を設定する。
【０２５１】
以上の動作により、ウインドウサイズ書換器２０６Ａは、閾値が「ボトルネックリンク１１の帯域」と「ＴＣＰ２１２とＴＣＰ３１２との間の往復遅延時間（ＲＴＴ）」との積よりも小さい値に、自動的に設定される。
【０２５２】
この後、ＴＣＰ２１２とＴＣＰ３１２の間で接続を行うと、以降の動作は実施の形態２における「転送初期」以降の動作と同様になる。
【０２５３】
（発明の効果）
次に、本実施の形態の効果について説明する。
本実施の形態に挙げた発明を利用すると、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による性能劣化を抑制できる。これは、ウインドウ書換器２０６Ａを設けてＴＣＰ３１２からＴＣＰ２１２に向けて送信される確認応答（ＡＣＫ）内に含まれる受信ウインドウサイズを小さい値に書き換え、ＴＣＰ２１２から送信されるトラフィックの送信レートを抑制することにより、トンネルに過剰に流入するトラフィックを抑制し、ＴＣＰ２０２とＴＣＰ２０３の間の区間における欠落の発生や遅延の増大を抑制することで、ＴＣＰ２０２およびＴＣＰ２０３のＴＣＰの輻輳制御を実質的に無効にさせ、ＴＣＰ２１２およびＴＣＰ３１２におけるレート抑制制御が過剰に行われるのを防ぐためである。
【０２５４】
また、本実施の形態に挙げた発明を利用すると、エンド端末の設定変更（ＴＣＰ２１２やＴＣＰ３１２の最大受信ウインドウサイズの設定変更）なしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、トンネリング装置内にウインドウ書換器２０６Ａを設けてＴＣＰ３１２からＴＣＰ２１２に向けて送信される確認応答（ＡＣＫ）内に含まれる受信ウインドウサイズを小さい値に書き換えることにより、ＴＣＰ３１２とＴＣＰ２１２間の通信の帯域制限をトンネリング装置内で行うからである。
【０２５５】
また、本実施の形態に挙げた発明を利用すると、端末やトンネリング装置のいずれの設定もなしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、ＴＣＰ２０２とＴＣＰ３０２の接続後に、帯域・遅延測定手段２０８Ａによりボトルネックリンク１１の最大帯域を測定し、この結果よりウインドウ書換器２０６Ａの閾値を自動的に決定するからである。
【０２５６】
（第６の実施の形態）
本発明の第６の実施の形態は、第３の実施の形態におけるリソースマネージャ２０７の閾値設定を、帯域測定手段２０８により自動的に行う点において異なる。尚、以下の説明において、上記実施の形態と同様の構成については同一番号を付し、その詳細な説明は省略する。
【０２５７】
（構成の説明）
図８を参照して、本実施の形態における構成について説明する。
本発明の第６の実施の形態では、図５に示す第３の実施の形態に対して、帯域測定手段２０８、および帯域測定手段３０８を追加している。
【０２５８】
帯域測定手段２０８は、第４の実施の形態における帯域測定手段２０８と同様の構成を有し、同様の動作を行う。ただし本実施の形態においては、測定完了後に帯域制限器２０６の閾値を設定するのではなく、リソースマネージャ２０７の閾値を設定する。
【０２５９】
帯域測定手段３０８は、帯域測定手段２０８と同様の構成を有し、同様の動作を行う。
【０２６０】
（動作の説明）
接続動作に関しては、第４の実施の形態と同様である。ただし第４の実施の形態において、帯域測定手段２０８は帯域制限器２０６の閾値を設定していたが、本実施の形態においては、リソースマネージャ２０７の閾値を設定する。
【０２６１】
接続動作完了後の動作は、第３の実施の形態における転送初期以降の動作と同様になる。
【０２６２】
（発明の効果）
次に、本実施の形態の効果について説明する。
本実施の形態に挙げた発明を利用すると、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による性能劣化を抑制できる。これは、トンネルの入り口となるトンネリング手段２０１に割り当てるＣＰＵパワーを抑制してトンネルに過剰に流入するトラフィックを抑制し、ＴＣＰ２０２とＴＣＰ２０３の間の区間における欠落の発生や遅延の増大を抑制することで、ＴＣＰ２０２およびＴＣＰ２０３のＴＣＰの輻輳制御を実質的に無効にさせ、ＴＣＰ２１２およびＴＣＰ３１２におけるレート抑制制御が過剰に行われるのを防ぐためである。
【０２６３】
また、本実施の形態に挙げた発明を利用すると、エンド端末の設定変更（ＴＣＰ２１２やＴＣＰ３１２の最大受信ウインドウサイズの設定変更）なしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、トンネリング装置内にリソースマネージャ２０７を設け、トンネリング手段２０１に割り当てるＣＰＵパワーを抑制してトンネルに流入するトラフィックの量を抑制し、この結果取りこぼしによるフレーム欠落や遅延時間の増大を発生させることにより、ＴＣＰ２１２とＴＣＰ３１２間の通信の帯域制限をトンネリング装置内で行うからである。
【０２６４】
また、本実施の形態に挙げた発明を利用すると、端末やトンネリング装置のいずれの設定もなしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、ＴＣＰ２０２とＴＣＰ３０２の接続後に、帯域測定手段２０８によりボトルネックリンク１１の最大帯域を測定し、この結果よりリソースマネージャ２０７の閾値を自動的に決定するからである。
【０２６５】
（第７の実施の形態）
本発明の第７の実施の形態は、第１の実施の形態における帯域制限器２０６の閾値設定を、帯域調査手段２０８Ｃにより自動的に行う点において異なる。尚、以下の説明において、上記実施の形態と同様の構成については同一番号を付し、その詳細な説明は省略する。
【０２６６】
（構成の説明）
図９を参照して、本実施の形態における構成について説明する。
本発明の第７の実施の形態では、図１に示す第１の実施の形態に対して、ダイヤルアップＮＩＣドライバ２０４Ａ、モデム・携帯電話等２０４Ｂ、帯域調査手段２０８Ｃ、ダイヤルアップＮＩＣドライバ３０４Ａ、モデム・携帯電話等３０４Ｂ、および帯域調査手段３０８Ｃを追加している。
【０２６７】
ダイヤルアップＮＩＣドライバ２０４Ａは、ＩＰ２０３からイーサネットフレームを受信し、これをＰＰＰプロトコル等に載せてモデムで転送可能なビット列等に変換し、モデム・携帯電話２０４Ｂに渡す。また逆に、モデム・携帯電話等２０４Ｂからビット列等を受信し、ＰＰＰプロトコル等を終端し、イーサネットフレームをＩＰ２０３に転送する。また、ＡＴコマンドなど、モデム・携帯電話の制御の為のコマンドをやり取りする機能を有し、帯域調査手段２０８Ｃからの要求に応じて、モデム・携帯電話等２０４Ｂに、ＰＰＰリンクの帯域（もしくはＲＳ２３２Ｃリンク、無線リンク等モデムから取得できる帯域情報）を問い合わせる。
【０２６８】
モデム・携帯電話等２０４Ｂは、ダイヤルアップＮＩＣドライバ２０４ＡからのＡＴコマンド等による指示に従い、電話番号やＡＰＮ等により指定された宛先（図の例ではモデム・携帯電話等３０４Ｂ）に接続し、ダイヤルアップＮＩＣドライバから送られるビット列等を電話回線等を通じて接続した宛先に転送し、また逆に、接続した宛先から送信されるビット列等をＮＩＣダイヤルアップＮＩＣドライバ２０４Ａに転送する。また、ＲＳ２３２Ｃリンク、無線リンク等の帯域情報を、ＡＴコマンド等による要求に応じてダイヤルアップＮＩＣドライバ２０４Ａに通知する。
【０２６９】
帯域調査手段２０８Ｃは、ＴＣＰ２０２とＴＣＰ３０２の接続完了後、および必要な場合は一定間隔ごとに、ダイヤルアップＮＩＣドライバ２０４ＡにＰＰＰリンクの帯域（もしくはＲＳ２３２Ｃリンク、無線リンク等モデムから取得できる帯域情報）を問い合わせ、この帯域を帯域制限器２０６の閾値として設定する。
【０２７０】
ダイヤルアップＮＩＣドライバ３０４Ａは、ダイヤルアップＮＩＣドライバ２０４Ａと同様の構成を有し、同様の動作を行う。
【０２７１】
モデム・携帯電話等３０４Ｂは、モデム・携帯電話等２０４Ｂと同様の構成を有し、同様の動作を行う。
【０２７２】
帯域調査手段３０８Ｃは、帯域調査手段２０８Ｃと同様の構成を有し、同様の動作を行う。
【０２７３】
（動作の説明）
以下、図６を参照して、本実施の形態における動作を、アプリケーション２１１からアプリケーション３１１に大きなデータを送信する場合を例に説明する。
【０２７４】
ボトルネックリンク１１は、端末２１と端末３１の間の経路上で最も通信帯域が細くなっている（隘路となっており、伝送速度が低速である）部分のリンクであるとする。またこの帯域幅は、ＰＰＰリンク速度等として、モデム・形態電話等２０４Ｂおよびモデム・携帯電話等３０４Ｂにて認識可能であるとする。
【０２７５】
ＴＣＰ２０２およびＴＣＰ３０２は、Ｎｏｄｅｌａｙオプションにより、送信結合用のＮａｇｌｅアルゴリズムを無効設定しているものとする。
【０２７６】
ＴＣＰ２１２およびＴＣＰ３１２における最大セグメントサイズ（ＭＳＳ）は、イーサネットフレーム２６がＴＣＰ２０２およびＴＣＰ３０２で分割（フラグメント）されない程度に、小さめに設定されているものとする。さらに、ＴＣＰ２１２およびＴＣＰ３１２の最大受信ウインドウサイズは、充分に大きく設定されているものとする。
【０２７７】
（接続動作）
モデム・携帯電話等２０４Ｂは、モデム・携帯電話等３０４Ｂに電話回線等を通じて接続を行う。接続が完了すると、接続完了通知と共に、リンク速度をダイヤルアップＮＩＣドライバ２０４Ａに通知する。
【０２７８】
ダイヤルアップＮＩＣドライバ２０４Ａは、モデム・携帯電話等２０４Ｂから通知を受けたリンク帯域を保存しておく。
【０２７９】
ＴＣＰ２０２は、トンネリング手段２０１からの指示により、ＴＣＰ３０２に対して接続処理を行う。
【０２８０】
帯域調査手段２０８Ｃは、ＴＣＰ２０２からの接続完了通知を受けると、ダイヤルアップＮＩＣドライバ２０４Ａに対して、帯域の問い合わせを行う。
【０２８１】
ダイヤルアップＮＩＣドライバ２０４Ａは、帯域調査手段２０８Ｃからの要求に応じて、可能であればモデム・携帯電話等２０４Ｂにリンク帯域の問い合わせを行い、結果を帯域調査手段２０８Ｃに返答する。もしモデム・携帯電話等２０４Ｂへの問い合わせが出来ない場合は、モデム・携帯電話等２０４Ｂがモデム・携帯電話等３０４Ｂと接続完了した際に保存した帯域情報を、帯域調査手段２０８Ｃに返答する。
【０２８２】
帯域調査手段２０８Ｃは、ダイヤルアップＮＩＣアダプタ２０４Ａより通知された帯域、もしくは若干低い帯域を、帯域制限器２０６の閾値として設定する。
【０２８３】
以上の動作により、帯域制限器２０６は、閾値がボトルネックリンク１１の帯域以下の値に、自動的に設定される。
【０２８４】
この後、ＴＣＰ２１２とＴＣＰ３１２の間で接続を行うと、以降の動作は実施の形態１における「転送初期」以降の動作と同様になる。
【０２８５】
以上においては、帯域調査手段２０８Ｃ等を実施の形態１における構成に適用して説明を行ったが、実施の形態２や実施の形態３における構成にも同様に帯域調査手段２０８Ｃ等を適用して、ウインドウ書換器２０６Ａやリソースマネージャ２０７の閾値を自動設定できる。
【０２８６】
（発明の効果）
次に、本実施の形態の効果について説明する。
本実施の形態に挙げた発明を利用すると、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による通信速度の低下（性能劣化）を抑制できる。これは、トンネルの入り口となるトンネリング手段２０１の前段に帯域制限器２０６を設けることにより、トンネルに過剰に流入するトラフィックを抑制し、ＴＣＰ２０２とＴＣＰ２０３の間の区間における欠落の発生や遅延の増大を抑制することで、ＴＣＰ２０２およびＴＣＰ２０３のＴＣＰの輻輳制御を実質的に無効にさせ、ＴＣＰ２１２およびＴＣＰ３１２におけるレート抑制制御が過剰に行われるのを防ぐためである。
【０２８７】
また、本実施の形態に挙げた発明を利用すると、エンド端末の設定変更（ＴＣＰ２１２やＴＣＰ３１２の最大受信ウインドウサイズの設定変更）なしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、トンネリング装置内に帯域制限器２０６を設けてＴＣＰ２１２とＴＣＰ３１２の間で交換されるフレームを強制的に欠落させることにより、ＴＣＰ２１２とＴＣＰ３１２間の通信の帯域制限をトンネリング装置内で行うからである。
【０２８８】
また、本実施の形態に挙げた発明を利用すると、端末やトンネリング装置への最大帯域の設定なしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、帯域調査手段２０８Ｃがモデム・携帯電話等２０４Ｂに対してボトルネックリンク１１の最大帯域を問い合わせ、この結果より帯域制限器２０６の閾値を自動的に決定するからである。
【０２８９】
（第８の実施の形態）
本発明の第８の実施の形態は、第１の実施の形態における帯域制限器２０６の閾値設定を、ＵＰｎＰ−ＣＰ２０８Ｂにより自動的に行う点において異なる。尚、以下の説明において、上記実施の形態と同様の構成については同一番号を付し、その詳細な説明は省略する。
【０２９０】
（構成の説明）
図１０を参照して、本実施の形態における構成について説明する。
本発明の第８の実施の形態では、図１に示す第１の実施の形態に対して、Ｒｏｕｔｅｒ２３、ＨＵＢ２４、ブリッジ２００、ＴＣＰ２０２Ａ、仮想ＮＩＣ２０５Ａ、ＵＰｎＰ−ＣＰ２０８Ｂ、Ｒｏｕｔｅｒ３３、ＨＵＢ３４、ブリッジ３００、ＴＣＰ３０２Ａ、仮想ＮＩＣ３０５Ａ、およびＵＰｎＰ−ＣＰ３０８Ｂを追加している。また、トンネリング装置２０，端末２１、Ｒｏｕｔｅｒ２３は、それぞれＨＵＢ２４を介して接続され、トンネリング装置３０，端末３１、Ｒｏｕｔｅｒ３３は、それぞれＨＵＢ３４を介して接続されている。
【０２９１】
Ｒｏｕｔｅｒ２３は、ＬＡＮ２とＷＡＮ１の双方に接続し、ＩＰアドレスを基に、必要であればＬＡＮ２側からイーサネットフレームを受信し、ＭＡＣアドレスを付け替えた上でＷＡＮ１側に転送する。またＷＡＮ１側から届いたイーサネットフレームのＩＰアドレスを調べ、必要であれば受信し、ＭＡＣアドレスを付け替えた上で、ＬＡＮ１側に転送する。
【０２９２】
Ｒｏｕｔｅｒ２３はさらに、ＬＡＮ２側の機器（端末２１やトンネリング装置２０）からの設定を受け付け、また設定情報の開示を行うために、ＵＰｎＰゲートウェイデバイス機能を搭載している。Ｒｏｕｔｅｒ２３はＷＡＮ１側にはＡＤＳＬモデム等を搭載しても良く、この場合はＡＤＳＬモデムのリンク速度を、ＵＰｎＰを経由してＬＡＮ２側の機器が取得出来るものとする。またＮＡＴ機能を搭載しても良いが、この場合はＴＣＰ２０２とＴＣＰ３０２の間で接続ができるよう、ポートフォワーディングの設定等をあらかじめ行っておくものとする。
【０２９３】
ＨＵＢ２４は、端末２１、トンネリング装置２０、Ｒｏｕｔｅｒ２４を結び、イーサネットフレームのＭＡＣアドレスにより宛先ポートを決定してフレームを転送する、一般的なハブである。
【０２９４】
ブリッジ２００は、ＮＩＣ２０４、仮想ＮＩＣ２０５Ａ、ＩＰ２０３のそれぞれからイーサネットフレームを受信し、ＨＵＢ２４と同様に、イーサネットフレームのＭＡＣアドレスにより宛先を決定してフレームを転送する。
【０２９５】
ＴＣＰ２０２Ａは、ＴＣＰ２０２と同様の動作を行うＴＣＰである。本実施の形態において、ＴＣＰ２０２Ａは、Ｒｏｕｔｅｒ２３内のＴＣＰとコネクションを行う。
【０２９６】
仮想ＮＩＣ２０５Ａは、ブリッジ２００からフレームを受信して帯域制限器２０６に渡し、もしくは帯域制限器２０６からフレームを受信してブリッジ２００に渡す。
【０２９７】
ＵＰｎＰ−ＣＰ２０８Ｂは、ＵＰｎＰゲートウェイデバイス等のＵＰｎＰデバイスの制御や状況取得を行う。本実施の形態においては、Ｒｏｕｔｅｒ２３のＡＤＳＬリンク速度を取得し、帯域制限器２０６に設定する動作を行う。
【０２９８】
Ｒｏｕｔｅｒ３３は、Ｒｏｕｔｅｒ２３と同様の構成を有し、同様の動作を行う。
【０２９９】
ＨＵＢ３４は、ＨＵＢ２４と同様の構成を有し、同様の動作を行う。
【０３００】
ブリッジ３００は、ブリッジ２００と同様の構成を有し、同様の動作を行う。
【０３０１】
ＴＣＰ３０２Ａは、ＴＣＰ２０２Ａと同様の構成を有し、同様の動作を行う。
【０３０２】
仮想ＮＩＣ３０５Ａは、仮想ＮＩＣ２０５Ａと同様の構成を有し、同様の動作を行う。
【０３０３】
およびＵＰｎＰ−ＣＰ３０８Ｂは、ＵＰｎＰ−ＣＰ２０８Ｂと同様の構成を有し、同様の動作を行う。
【０３０４】
（動作の説明）
以下、図１０を参照して、本実施の形態における動作を、アプリケーション２１１からアプリケーション３１１に大きなデータを送信する場合を例に説明する。
【０３０５】
ボトルネックリンク１１は、端末２１と端末３１の間の経路上で最も通信帯域が細くなっている（隘路となっており、伝送速度が低速である）部分のリンクであるとする。またこの帯域幅は、ＡＤＳＬリンク速度として、Ｒｏｕｔｅｒ２３およびＲｏｕｔｅｒ３３にて認識可能であるとする。
【０３０６】
ＴＣＰ２０２およびＴＣＰ３０２は、Ｎｏｄｅｌａｙオプションにより、送信結合用のＮａｇｌｅアルゴリズムを無効設定しているものとする。
【０３０７】
ＴＣＰ２１２およびＴＣＰ３１２における最大セグメントサイズ（ＭＳＳ）は、イーサネットフレーム２６がＴＣＰ２０２およびＴＣＰ３０２で分割（フラグメント）されない程度に、小さめに設定されているものとする。さらに、ＴＣＰ２１２およびＴＣＰ３１２の最大受信ウインドウサイズは、充分に大きく設定されているものとする。
【０３０８】
（接続動作）
Ｒｏｕｔｅｒ２３は、内蔵のＡＤＳＬモデムによりＷＡＮ１と接続を行い、ＷＡＮ１と接続出来たことを、ＵＰｎＰを用いてＬＡＮ２内のＵＰｎＰ−ＣＰに伝える。
【０３０９】
トンネリング装置内のＵＰｎＰ−ＣＰは、Ｒｏｕｔｅｒ２３からの接続完了通知を受け、ＴＣＰ２０２Ａの接続を通じて、Ｒｏｕｔｅｒ２３に対してＡＤＳＬリンク速度の問い合わせを行う。そして、問い合わせで返答された速度よりも充分に低い値を、帯域制限器２０６の閾値に設定する。
【０３１０】
以上の動作により、帯域制限器２０６は、閾値がボトルネックリンク１１の帯域以下の値に、自動的に設定される。
【０３１１】
この後、ＴＣＰ２０２とＴＣＰ３０２の間で接続を行い、さらにＴＣＰ２１２とＴＣＰ３１２の間で接続を行うと、以降の動作は実施の形態１における「転送初期」以降の動作と同様になる。
【０３１２】
以上においては、ＵＰｎＰ−ＣＰ２０８Ｂ等を実施の形態１における構成に適用して説明を行ったが、実施の形態２や実施の形態３における構成にも同様にＵＰｎＰ−ＣＰ２０８Ｂ等を適用して、ウインドウ書換器２０６Ａやリソースマネージャ２０７の閾値を自動設定できる。
【０３１３】
（発明の効果）
次に、本実施の形態の効果について説明する。
本実施の形態に挙げた発明を利用すると、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による通信速度の低下（性能劣化）を抑制できる。これは、トンネルの入り口となるトンネリング手段２０１の前段に帯域制限器２０６を設けることにより、トンネルに過剰に流入するトラフィックを抑制し、ＴＣＰ２０２とＴＣＰ２０３の間の区間における欠落の発生や遅延の増大を抑制することで、ＴＣＰ２０２およびＴＣＰ２０３のＴＣＰの輻輳制御を実質的に無効にさせ、ＴＣＰ２１２およびＴＣＰ３１２におけるレート抑制制御が過剰に行われるのを防ぐためである。
【０３１４】
また、本実施の形態に挙げた発明を利用すると、エンド端末の設定変更（ＴＣＰ２１２やＴＣＰ３１２の最大受信ウインドウサイズの設定変更）なしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、トンネリング装置内に帯域制限器２０６を設けてＴＣＰ２１２とＴＣＰ３１２の間で交換されるフレームを強制的に欠落させることにより、ＴＣＰ２１２とＴＣＰ３１２間の通信の帯域制限をトンネリング装置内で行うからである。
【０３１５】
また、本実施の形態に挙げた発明を利用すると、端末やトンネリング装置への最大帯域の設定なしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、ＵＰｎＰ−ＣＰ２０８がＲｏｕｔｅｒ２３に対してＡＤＳＬリンク速度、つまりボトルネックリンク１１の最大帯域を問い合わせ、この結果より帯域制限器２０６の閾値を自動的に設定するからである。
【０３１６】
（第９の実施の形態）
本発明の第９の実施の形態は、第１の実施の形態における帯域制限器２０６の閾値設定を、インバンド型帯域測定手段２０８Ｄにより自動的に行う点において異なる。尚、以下の説明において、上記実施の形態と同様の構成については同一番号を付し、その詳細な説明は省略する。
【０３１７】
（構成の説明）
図１１を参照して、本実施の形態における構成について説明する。
本発明の第９の実施の形態では、図１に示す第１の実施の形態に対して、インバンド型帯域測定手段２０８Ｄ、およびインバンド型帯域測定手段３０８Ｄを追加している。
【０３１８】
インバンド型帯域測定手段２０８Ｄは、以下に挙げる機能を有する。
（１）トンネリング手段２０１からデータを受け取り、送信時刻情報を付加して、ＴＣＰ２０２に渡す。
（２）ＴＣＰ２０２からデータを受け取り、送信時刻情報を分離して、トンネリング手段２０１に渡す。この際、データに付加されていた送信時刻と自装置の現在時刻との差分から片道遅延を計算し、さらに到着したデータの送信時刻情報分込みサイズを記し、結果をＴＣＰ２０２を通じてインバンド型帯域測定手段３０８Ｄに通知する。なお、本実施の形態においては、データサイズごとの片道遅延時間の差分を用いてボトルネック帯域の推定を行うため、トンネリング装置２０とトンネリング装置３０の時刻同期は不要である。
（３）ＴＣＰ２０２からデータを受け取り、これがインバンド型帯域測定手段３０８Ｄから通知された片道遅延およびデータサイズであった場合には、この情報を保存する。また、これまでに保存した片道遅延およびデータサイズから、ボトルネックリンク１１の帯域を推定し、この結果より帯域制限器２０６の閾値を設定する。ここで閾値は推定した最大帯域より若干低い値に設定する。ここで、ボトルネックリンク１１の帯域は、（データサイズＳ２−データサイズＳ１）÷（サイズＳ２のフレーム転送に要する片道遅延時間Ｔ２−サイズＳ１のフレーム転送に要する片道遅延時間Ｔ１）により求められる。
【０３１９】
インバンド型帯域測定手段３０８Ｄは、インバンド型帯域測定手段２０８Ｄと同様の構成を有し、同様の動作を行う。
【０３２０】
（動作の説明）
以下、図１１を参照して、本実施の形態における動作を、アプリケーション２１１からアプリケーション３１１に大きなデータを送信する場合を例に説明する。
【０３２１】
ボトルネックリンク１１は、端末２１と端末３１の間の経路上で最も通信帯域が細くなっている（隘路となっており、伝送速度が低速である）部分のリンクであるとする。
【０３２２】
ＴＣＰ２０２およびＴＣＰ３０２は、Ｎｏｄｅｌａｙオプションにより、送信結合用のＮａｇｌｅアルゴリズムを無効設定しているものとする。
【０３２３】
ＴＣＰ２１２およびＴＣＰ３１２における最大セグメントサイズ（ＭＳＳ）は、イーサネットフレーム２６に送信時刻情報を付加したものがＴＣＰ２０２およびＴＣＰ３０２で分割（フラグメント）されない程度に、小さめに設定されているものとする。さらに、ＴＣＰ２１２およびＴＣＰ３１２の最大受信ウインドウサイズは、充分に大きなものであるとする。
【０３２４】
ＴＣＰ２０２およびＴＣＰ３０２は、相互の間で既に接続が完了しているものとする。
【０３２５】
ＴＣＰ２１２およびＴＣＰ３１２は、ＴＣＰ２０２とＴＣＰ３０２との間の接続完了後に、相互の間で接続動作を行い、既に接続が完了しているものとする。
【０３２６】
（転送初期）
端末２１内のアプリケーション２１１が、サーバ３１内のアプリケーション３１１宛の大きなデータを作成し、ＴＣＰ２１２に渡す。
【０３２７】
ＴＣＰ２１２は、アプリケーション２１１から大きなデータを受け取ると、これを送信バッファに格納し、ネットワーク上で転送可能なサイズ（ＭＳＳ）にデータを分割（フラグメント処理）し、ＴＣＰ３１２から通知される受信ウインドウサイズおよび、ＴＣＰ２１２内の輻輳ウインドウサイズの双方をもとに送信レート（データ送出速度）を決定し、ＩＰ２１３およびＮＩＣ２１４を経由して、端末３１内のＴＣＰ３１２に向けて送信する。このとき、ＬＡＮ２を流れるフレームのフォーマットは、図２に示すイーサネットフレーム２６の形式となる。
【０３２８】
ＴＣＰは、転送初期は輻輳ウインドウサイズが小さく設定されているために小さな送信レートでデータを送信し、ＡＣＫの未着や、重複ＡＣＫの到着が発生しない限り、ＡＣＫを受領していないデータ量が、相手方が通知してくる受信ウインドウサイズと、自身の管理する輻輳ウインドウサイズのどちらか小さいほうに達するまで、次第に輻輳ウインドウサイズを大きくして、次第に大きな送信レートでデータを送信する。このため、転送初期は低めの送信レートでデータが送信される。
【０３２９】
トンネリング装置２０内のＮＩＣ２０５は、ＬＡＮ２からイーサネットフレームを受信し、帯域制限器２０６に転送する。
【０３３０】
帯域制限器２０６は、ＮＩＣ２０５から単位時間あたりに受信するイーサネットフレームの流量を監視し、あらかじめ設定された帯域（閾値）以下の流量であればトンネリング手段２０１に転送する。転送初期においては、ＴＣＰ２１２から送信されるデータの流量は、帯域制限器２０６に設定された閾値よりも低く抑えられるため、全てのフレームがそのままトンネリング手段２０１に転送される。
【０３３１】
トンネリング手段２０１は、帯域制限器２０６から受信したフレームをインバンド型帯域測定手段２０８Ｄにデータとして受け渡す。
【０３３２】
インバンド型帯域測定手段２０８Ｄは、トンネリング手段２０１から受信したデータに送信時刻情報（タイムスタンプ）を付加して、ＴＣＰ２０２に渡す。
【０３３３】
ＴＣＰ２０２は、インバンド型帯域測定手段２０８Ｄからデータ（イーサネットフレーム２６）を受け取ると、これを送信バッファに格納し、ＴＣＰ３０２から通知される受信ウインドウサイズおよび、ＴＣＰ２０２内の輻輳ウインドウサイズの双方をもとに送信レート（データ送出速度）を決定し、ＩＰ２０３およびＮＩＣ２０４を経由して、トンネリング装置３０内のＴＣＰ３０２に向けて送信する。このとき、ＷＡＮ１を流れるフレームのフォーマットは、図３に示すイーサｏｖｅｒＴＣＰフレーム１２の形式となる。
【０３３４】
トンネリング装置３０内のＴＣＰ３０２は、ＴＣＰ２０２から送信されたデータを、ＮＩＣ３０４、ＩＰ３０２を経由して受信し、インバンド型帯域測定手段３０８Ｄに転送する。このときＴＣＰ３０２は、ＴＣＰ２０２に対して確認応答を送信し、この確認応答を受信したＴＣＰ２０２は、輻輳ウインドウのサイズを拡げ、送信レートを高くする。
【０３３５】
インバンド型帯域測定手段３０８Ｄは、ＴＣＰ３０２からデータを受け取り、送信時刻情報を分離して、トンネリング手段３０１に渡す。この際、データに付加されていた送信時刻と自装置の現在時刻との差分から片道遅延を計算し、さらに到着したデータの送信時刻情報分込みサイズを記し、結果をＴＣＰ３０２を通じてインバンド型帯域測定手段２０８Ｄに通知する。
【０３３６】
インバンド型帯域測定手段２０８Ｄは、ＴＣＰ２０２からデータを受け取り、これがインバンド型帯域測定手段３０８Ｄから通知された片道遅延（Ｔ２）およびデータサイズ（Ｓ２）であるので、この情報を保存する。また、これまでに保存した片道遅延（Ｔ１）およびデータサイズ（Ｓ１）から、|データサイズＳ２−データサイズＳ１|÷|サイズＳ２のフレーム転送に要する片道遅延時間Ｔ２−サイズＳ１のフレーム転送に要する片道遅延時間Ｔ１|により、ボトルネックリンク１１の帯域を推定し、この結果より帯域制限器２０６の閾値を設定する。ここで閾値は推定した最大帯域より若干低い値に設定する。
【０３３７】
トンネリング手段３０１は、インバンド型帯域測定手段３０８Ｄからデータ（イーサネットフレーム２６）を受信し、帯域制限器３０６に転送する。
【０３３８】
帯域制限器３０６は、トンネリング手段３０１から受信したフレームを、帯域制限や流量の監視などを行わず、そのままＮＩＣ３０５を経由して、端末３１に送信する。このとき、ＬＡＮ３を流れるフレームのフォーマットは、図２に示すイーサネットフレーム２６の形式となる。
【０３３９】
端末３１内のＴＣＰ３１２は、トンネリング装置３０から送信されたイーサネットフレームを、ＮＩＣ３１４、ＩＰ３１２を経由して受信し、バッファに格納する。このときＴＣＰ３１２は、ＴＣＰ２１２に対して確認応答を送信し、この確認応答を受信したＴＣＰ２１２は、輻輳ウインドウのサイズを拡げ、送信レートを高くする。
【０３４０】
以上の動作例（転送初期）に従い、ＴＣＰ２１２からＴＣＰ３１２へのデータ転送を継続すると、インバンド型帯域測定手段２０８Ｄによりボトルネックリンク１１の帯域が動的に推定され、帯域制限器２０６のレートも動的に設定される。
【０３４１】
以上においては、インバンド型帯域調査手段２０８Ｄを実施の形態１における構成に適用して説明を行ったが、実施の形態２および実施の形態３における構成にも同様にインバンド型帯域調査手段２０８Ｄを適用して、ウインドウ書換器２０６Ａやリソースマネージャ２０７の閾値を自動設定しても良い。
【０３４２】
さらに、実施の形態に４〜８における帯域測定手段や帯域・遅延測定手段と、インバンド型帯域測定手段を併用しても良い。この場合は、帯域測定手段や帯域・遅延測定手段と、インバンド型帯域測定手段の双方のうち、何れか低いほうの帯域を用いて、帯域制限器の閾値を設定する。
【０３４３】
（発明の効果）
次に、本実施の形態の効果について説明する。
本実施の形態に挙げた発明を利用すると、２つのＴＣＰによる２重の輻輳制御と２重の再送制御による通信速度の低下（性能劣化）を抑制できる。これは、トンネルの入り口となるトンネリング手段２０１の前段に帯域制限器２０６を設けることにより、トンネルに過剰に流入するトラフィックを抑制し、ＴＣＰ２０２とＴＣＰ２０３の間の区間における欠落の発生や遅延の増大を抑制することで、ＴＣＰ２０２およびＴＣＰ２０３のＴＣＰの輻輳制御を実質的に無効にさせ、ＴＣＰ２１２およびＴＣＰ３１２におけるレート抑制制御が過剰に行われるのを防ぐためである。
【０３４４】
また、本実施の形態に挙げた発明を利用すると、エンド端末の設定変更（ＴＣＰ２１２やＴＣＰ３１２の最大受信ウインドウサイズの設定変更）なしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、トンネリング装置内に帯域制限器２０６を設けてＴＣＰ２１２とＴＣＰ３１２の間で交換されるフレームを強制的に欠落させることにより、ＴＣＰ２１２とＴＣＰ３１２間の通信の帯域制限をトンネリング装置内で行うからである。
【０３４５】
また、本実施の形態に挙げた発明を利用すると、端末やトンネリング装置のいずれの設定もなしに、エンド端末間の通信レート（通信帯域）を制限できる。これは、トンネルを流れるデータフレームの大きさのばらつきと、大きさのばらつきによる片道遅延時間のばらつきにより、インバンド型帯域測定手段２０８Ｄがボトルネックリンク１１の最大帯域を推定し、この結果より帯域制限器２０６の閾値を自動的に決定するからである。
【０３４６】
以上の実施の形態及び実施例では、フレームという用語を用いたが、フレームはイーサネットフレームと同義である。また、パケットはフレームの一部分（フレームのうち、レイヤ３以上のデータ列）であり、フレームに含まれる。
【０３４７】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【０３４８】
尚、上述した本発明の各構成部は、上記説明からも明らかなように、ハードウェアで構成することも可能であるが、コンピュータプログラムにより実現することも可能である。
【０３４９】
この場合、プログラムメモリに格納されているプログラムで動作するプロセッサによって、上述した実施の形態と同様の機能、動作を実現させる。
【０３５０】
本発明によれば、離れたＬＡＮ同士をＷＡＮを介して接続するためのインターネットＶＰＮ装置やインターネットＶＰＮシステム、また、外出先ネットワークから社内イントラネットに接続するためのリモートアクセス装置やリモートアクセスシステムに適用できる。また、外出先から家庭内の機器を操作制御する、ホームネットワークシステムや、ホームネットワーク機器にも適用できる。
【図面の簡単な説明】
【０３５１】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】イーサネットフレーム２６の構成を示すブロック図である。
【図３】イーサｏｖｅｒＴＣＰフレーム１２の構成を示すブロック図である。
【図４】本発明の第２の実施の形態の構成を示すブロック図である。
【図５】本発明の第３の実施の形態の構成を示すブロック図である。
【図６】本発明の第４の実施の形態の構成を示すブロック図である。
【図７】本発明の第５の実施の形態の構成を示すブロック図である。
【図８】本発明の第６の実施の形態の構成を示すブロック図である。
【図９】本発明の第７の実施の形態の構成を示すブロック図である。
【図１０】本発明の第８の実施の形態の構成を示すブロック図である。
【図１１】本発明の第９の実施の形態の構成を示すブロック図である。
【図１２】従来技術２の構成を示すブロック図である。
【符号の説明】
【０３５２】
１ ＷＡＮ
２ ＬＡＮ
３ ＬＡＮ
１１ ボトルネックリンク
１２ イーサｏｖｅｒＴＣＰフレーム
２０ トンネリング装置
２１ 端末
２２ 通信路制御装置
２３ Ｒｏｕｔｅｒ
２４ ＨＵＢ
２６ イーサネットフレーム
３０ トンネリング装置
３１ 端末
３２ 通信路制御装置
３３ Ｒｏｕｔｅｒ
３４ ＨＵＢ
１２１ ＷＡＮ ＭＡＣ
１２２ ＷＡＮ ＩＰ
１２３ ＷＡＮ ＴＣＰ
１２４ ＷＡＮ ＤＡＴＡ
２００ ブリッジ
２０１ トンネリング手段
２０２ ＴＣＰ
２０３ ＩＰ
２０４ ＮＩＣ
２０４Ａ ダイヤルアップＮＩＣドライバ
２０４Ｂ モデム・携帯電話等
２０５ ＮＩＣ
２０５Ａ 仮想ＮＩＣ
２０６ 帯域制限器
２０６Ａ ウインドウ書換器
２０６Ｂ 流量監視器
２０７ リソースマネージャ
２０８ 帯域測定手段
２０８Ａ 帯域・遅延測定手段
２０８Ｂ ＵＰｎＰ−ＣＰ
２０８Ｃ 帯域調査手段
２０８Ｄ インバンド型帯域測定手段
２１１ アプリケーション
２１２ ＴＣＰ
２１３ ＩＰ
２１４ ＮＩＣ
２２１ ゆらぎ平滑器
２６１ ＬＡＮ ＭＡＣ
２６２ ＬＡＮ ＩＰ
２６３ ＬＡＮ ＴＣＰ
２６４ ＬＡＮ ＤＡＴＡ
３００ ブリッジ
３０１ トンネリング手段
３０２ ＴＣＰ
３０３ ＩＰ
３０４ ＮＩＣ
３０４Ａ ダイヤルアップＮＩＣドライバ
３０４Ｂ モデム・携帯電話等
３０５ ＮＩＣ
３０５Ａ 仮想ＮＩＣ
３０６ 帯域制限器
３０６Ａ ウインドウ書換器
３０６Ｂ 流量監視器
３０７ リソースマネージャ
３０８ 帯域測定手段
３０８Ａ 帯域・遅延測定手段
３０８Ｂ ＵＰｎＰ−ＣＰ
３０８Ｃ 帯域調査手段
３０８Ｄ インバンド型帯域測定手段
３１１ アプリケーション
３１２ ＴＣＰ
３１３ ＩＰ
３１４ ＮＩＣ
３２１ ゆらぎ平滑器
【図１】
2008078966.tif 000003
【図２】
2008078966.tif 000004
【図３】
2008078966.tif 000005
【図４】
2008078966.tif 000006
【図５】
2008078966.tif 000007
【図６】
2008078966.tif 000008
【図７】
2008078966.tif 000009
【図８】
2008078966.tif 000010
【図９】
2008078966.tif 000011
【図１０】
2008078966.tif 000012
【図１１】
2008078966.tif 000013
【図１２】
2008078966.tif 000014