(57)【要約】【課題】未知のアプリケーション層プロトコルであってもアプリケーション層の挙動にあわせた高速化の要否を判定する。【解決手段】情報処理装置間の通信を制御する通信制御装置であって、トランスポート層のコネクションを、コネクション毎に監視する監視部と、監視部によって監視されるコネクションの一方の終端となる情報処理装置からのＩＰパケット送信から次のＩＰパケット送信までの間における他の情報処理装置からのＩＰパケット受信量と、情報処理装置からのＩＰパケット送信から次のＩＰパケット受信までの時間とに基づいて、コネクションを通信の高速化対象から除外する判定部と、を備える。【選択図】  図１
2015032985.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置間の通信を制御する通信制御装置であって、
トランスポート層のコネクションを、コネクション毎に監視する監視部と、
前記監視部によって監視されるコネクションの一方の終端となる情報処理装置からのＩＰパケット送信から次のＩＰパケット送信までの間における他の情報処理装置からのＩＰパケット受信量と、前記情報処理装置からのＩＰパケット送信から次のＩＰパケット受信までの時間とに基づいて、該コネクションを通信の高速化対象から除外する判定部と、
を備えることを特徴とする通信制御装置。
【請求項２】
前記判定部は、前記情報処理装置からのＩＰパケット送信から次のＩＰパケット送信までの間における前記他の情報処理装置のＩＰパケット受信量が所定量以内であるという第１の条件と、前記情報処理装置からのＩＰパケット送信から次の受信までの時間が所定時間以内であるという第２の条件とを評価し、前記第１の条件と前記第２の条件とのどちらか一方もしくは両方が成立しなくなった場合に、該コネクションを高速化対象から除外する、
ことを特徴とする請求項１に記載の通信装置の通信制御装置。
【請求項３】
前記判定部は、前記第１の条件または／および前記第２の条件が所定回数成立したか否かを判定し、前記第１の条件または／および前記第２の条件が所定回数成立しなくなったと判定した場合に、該コネクションを高速化対象から除外する、
ことを特徴とする請求項２に記載の通信装置の通信制御装置。
【請求項４】
前記判定部は、前記ＩＰパケットをトンネリングモジュールによって生成し、生成した該ＩＰパケットを前記情報処理装置または前記他の情報処理装置に送信し、または前記情報処理装置または前記他の情報処理装置から受信した該ＩＰパケットを前記トンネリングモジュールによって前記ＩＰパケットに復元する、
ことを特徴とする請求項１〜３のいずれか１項に記載の通信制御装置。
【請求項５】
情報処理装置間の通信を制御する通信制御方法であって、
トランスポート層のコネクションを、コネクション毎に監視する監視ステップと、
前記監視ステップにおいて監視されるコネクションの一方の終端となる情報処理装置からのＩＰパケット送信から次のＩＰパケット送信までの間における他の情報処理装置からのＩＰパケット受信量と、前記情報処理装置からのＩＰパケット送信から次のＩＰパケット受信までの時間とに基づいて、該コネクションを通信の高速化対象から除外する判定ステップと、
を含むことを特徴とする通信制御方法。
【請求項６】
前記判定ステップにおいて、前記情報処理装置からのＩＰパケット送信から次のＩＰパケット送信までの間における前記他の情報処理装置のＩＰパケット受信量が所定量以内であるという第１の条件と、前記情報処理装置からのＩＰパケット送信から次の受信までの時間が所定時間以内であるという第２の条件とを評価し、前記第１の条件と前記第２の条件とのどちらか一方もしくは両方が成立しなくなった場合に、該コネクションを高速化対象から除外する、
ことを特徴とする請求項５に記載の通信装置の通信制御方法。
【請求項７】
前記判定ステップにおいて、前記第１の条件または／および前記第２の条件が所定回数成立したか否かを判定し、前記第１の条件または／および前記第２の条件が所定回数成立しなくなったと判定した場合に、該コネクションを高速化対象から除外する、
ことを特徴とする請求項６に記載の通信装置の通信制御方法。
【請求項８】
前記判定ステップにおいて、前記ＩＰパケットをトンネリングモジュールによって生成し、生成した該ＩＰパケットを前記情報処理装置または前記他の情報処理装置に送信し、または前記情報処理装置または前記他の情報処理装置から受信した該ＩＰパケットを前記トンネリングモジュールによって前記ＩＰパケットに復元する、
ことを特徴とする請求項５〜７のいずれか１項に記載の通信制御方法。
【請求項９】
情報処理装置間の通信を制御する通信制御装置と、前記情報処理装置と、前記情報処理装置間の通信を高速化する高速化装置とがネットワークを介して接続された通信制御システムであって、
前記通信制御装置は、
トランスポート層のコネクションを、コネクション毎に監視する監視部と、
前記監視部によって監視されるコネクションの一方の終端となる情報処理装置からのＩＰパケット送信から次のＩＰパケット送信までの間における他の情報処理装置からのＩＰパケット受信量と、前記情報処理装置からのＩＰパケット送信から次のＩＰパケット受信までの時間とに基づいて、該コネクションを通信の高速化対象から除外する判定部と、を備え、
前記情報処理装置または前記他の情報処理装置は、
前記ＩＰパケットを、前記高速化通信装置または前記通信制御装置との間で送受信する通信部と、を備え、
前記高速化装置は、
前記通信制御装置が該コネクションを通信の高速化対象から除外していないＩＰパケットを、前記情報処理装置または前記他の情報処理装置との間で送受信する高速化通信部と、
を備えることを特徴とする通信制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信高層化装置を用いたコンピュータシステムに関する。
【背景技術】
【０００２】
広域ネットワークを介した通信の発達に伴い、通信高速化装置が使われるようになってきた。特に広域ネットワーク上の通信で一般に用いられるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）コネクション上の通信を高速化する通信高速化装置が広く使われており、その代表的な構成方法に特許文献１（ＵＳ２００４／０１７４２７６，Ｃｏｎｔｅｎｔ−ｂａｓｅｄ  ｓｅｇｍｅｎｔａｔｉｏｎ  ｓｃｈｅｍｅ  ｆｏｒ  ｄａｔａ  ｃｏｍｐｒｅｓｓｉｏｎ  ｉｎ  ｓｔｏｒａｇｅ  ａｎｄ  ｔｒａｎｓｍｉｓｓｉｏｎ  ｉｎｃｌｕｄｉｎｇ  ｈｉｅｒａｒｃｈｉｃａｌ  ｓｅｇｍｅｎｔ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）の方法や特許文献２（特開２０１２−１２４６４７、通信システム及びノード装置）の方法がある。
【０００３】
しかし通信高速化装置は全ての通信に効果があるわけではなく、効果のある通信と効果のない通信に分かれる。効果があるのはアプリケーション層（すなわちＯＳＩ参照モデルにおける第７層）の通信が一括転送（バルクデータ転送）である通信であり、効果がないのはアプリケーション層の通信において、要求に対して応答を細かく返すような通信である。なお、本明細書では、要求に対して応答を細かく返すことをピンポンと呼ぶ。
【０００４】
一方で通信高速化装置には、主に主記憶容量の制限から高速化可能な通信セッション数に上限がある。そこで通信高速化装置の効果が高いアプリケーション層のバルクデータ転送のみを高速化し、通信高速化装置を有効に利用できるよう工夫がなされてきた。ただし、どの通信セッションにおいてアプリケーション層のバルクデータ転送が行われているかは一般にわからない。また、ネットワーク層、すなわちＯＳＩ参照モデルにおける第３層の識別子であるＩＰアドレスによって識別可能な同一の装置対で効果的な通信セッションと効果のない通信セッションが混在するケースもあり、ＩＰアドレスを用いた一般的なルールでは分類できないことがある。そこで通信セッションの特性を監視し分類する従来手法が用いられている。
【０００５】
例えば、特許文献３（ＵＳ２００６／０２１２５２４，Ｒｕｌｅｓ−ｂａｓｅｄ  ｔｒａｎｓａｃｔｉｏｎ  ｐｒｅｆｅｔｃｈｉｎｇ  ｕｓｉｎｇ  ｃｏｎｎｅｃｔｉｏｎ  ｅｎｄ−ｐｏｉｎｔ  ｐｒｏｘｉｅｓ，  Ｒｉｖｅｒｂｅｄ）には、ＯＳＩ参照モデルにおけるトランスポート層（すなわち第４層）であるＴＣＰコネクションの特性を自動識別し特定のコネクションのみ高速化を行う技術が開示されている。また、特許文献４（ＵＳ７８２７２７２，  Ｃｏｎｎｅｃｔｉｏｎ  ｔａｂｌｅ  ｆｏｒ  ｉｎｔｒｕｓｉｏｎ  ｄｅｔｅｃｔｉｏｎ，  Ｒｉｖｅｒｂｅｄ）には、ＴＣＰコネクションの特性を自動識別する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許ＵＳ２００４／０１７４２７６
【特許文献２】特開２０１２−１２４６４７
【特許文献３】米国特許ＵＳ２００６／０２１２５２４
【特許文献４】米国特許ＵＳ７８２７２７２
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＴＣＰコネクションの特性を自動識別し特定のコネクションのみ高速化を行う従来手法では既知のアプリケーション層メッセージ交換を監視し、ルールにマッチした場合に、後続のコマンドを予測しプリフェッチする。しかし、アプリケーション層プロトコルの詳細がわからないとルールを記述できない。そのためプロトコル非公開な通信や、アプリケーション層メッセージの内容を見ることができない暗号化通信などには適用できない。
【０００８】
また、ＴＣＰコネクションの特性を自動識別し特定のコネクションのみ高速化を行う従来手法にＴＣＰコネクションの特性を自動識別する方法の従来手法を組み合わせることで、アプリケーション層プロトコルの詳細がわからない通信に関しても、高速化すべきではないトラフィックを検出できるようになる。しかし、単位時間当たりのＴＣＰで検出可能な通信量の異常値の検出しかできないため、ルールの記述能力が十分ではない。
【０００９】
すなわちトランスポート層以下の挙動をもってコネクションを自動識別し特定のコネクションのみ高速化を行う従来手法の課題は、未知のアプリケーション層プロトコルであってもアプリケーション層の挙動にあわせた高速化の要否を判定することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、情報処理装置間の通信を制御する通信制御装置であって、トランスポート層のコネクションを、コネクション毎に監視する監視部と、前記監視部によって監視されるコネクションの一方の終端となる情報処理装置からのＩＰパケット送信から次のＩＰパケット送信までの間における他の情報処理装置からのＩＰパケット受信量と、前記情報処理装置からのＩＰパケット送信から次のＩＰパケット受信までの時間とに基づいて、該コネクションを通信の高速化対象から除外する判定部と、を備えることを特徴とする通信制御装置として構成される。
【００１１】
また、本発明は、上記通信制御装置で行われる通信制御方法、または上記通信制御装置を有した通信制御システムとしても把握される。
【発明の効果】
【００１２】
本発明を用いることで、トランスポート層以下の挙動をもってコネクションを自動識別し特定のコネクションのみ高速化を行う従来手法の課題は、未知のアプリケーション層プロトコルであってもアプリケーション層の挙動にあわせた高速化の要否を判定することができる。
【図面の簡単な説明】
【００１３】
【図１】実施例１の通信高速化システムの構成
【図２】ピンポンの説明図
【図３】状態遷移図
【図４】状態遷移表
【図５】判定装置の構成
【図６】判定モジュールの基本動作のフローチャート
【図７】新規コネクション追加処理のフローチャート
【図８】転送処理のフローチャート
【図９】状態遷移処理１のフローチャート
【図１０】状態遷移処理２のフローチャート
【図１１】実施例２の通信高速化システムの構成
【図１２】判定装置の構成
【図１３】判定モジュールの基本動作のフローチャート
【図１４】転送処理Ａのフローチャート
【図１５】新規コネクション追加処理Ａのフローチャート
【図１６】状態遷移処理Ａ１のフローチャート
【図１７】状態遷移処理Ａ２のフローチャート
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、本発明にかかる通信制御装置、通信制御方法、および通信制御システムの実施の形態を詳細に説明する。
【実施例１】
【００１５】
本実施例では、代表的なトランスポート層プロトコルであるＴＣＰもしくはＵＤＰを用いたコネクション毎に監視してアプリケーション層でショートメッセージがピンポンする通信を検出し、それを高速化対象から除外する方法を開示する。図１に全体構成を示す。
【００１６】
図１はクライアント１０１とサーバ１０２の間の通信遅延が長いため通信高速化装置１０３および１０４を使っており、さらにクライアント１０１とクライアント側通信高速化装置１０３の間に判定装置１０５を設置したものである。クライアント１０１は一般的なＰＣや携帯端末といった装置であり、ＴＣＰもしくはＵＤＰを用いたデータ送受信機能を持つ。また、サーバ１０２は一般的なＰＣやサーバ装置といった装置であり、ＴＣＰもしくはＵＤＰを用いたデータ送受信機能を持つ。通信高速化装置１０３および１０４はＴＣＰもしくはＵＤＰコネクションを高速化する機能を持った既存の通信高速化装置である。
【００１７】
本実施例ではクライアント１０１とサーバ１０２がトランスポート層のコネクションを確立すると、まず判定装置１０５において通信高速化装置１０３および１０４を通して通信するように通信経路を制御する。その後、判定装置１０５はクライアント１０１とサーバ１０２の間のコネクションを監視し続け、コネクション内を流れるアプリケーション層プロトコルにおいてショートメッセージがピンポンしていることを検出すると、通信高速化装置１０３および１０４を通さないで通信するように通信経路を制御する。また、コネクション内を流れるアプリケーション層プロトコルにおいてショートメッセージのピンポンが解消したことを検出すると、通信高速化装置１０３および１０４を通して通信するように通信経路を制御する。判定装置１０５の構成方法およびトランスポート層のコネクション内を流れるアプリケーション層プロトコルにおいてショートメッセージがピンポンしていることの検出方法は後述する。
【００１８】
続いて図２から図４を用いて、ＴＣＰもしくはＵＤＰコネクションの監視によってアプリケーション層のショートメッセージを検出する方法について説明する。図２にＴＣＰコネクションの監視によって、トランスポート層においてアプリケーション層のショートメッセージのピンポンを検出する条件を示す。図２はクライアント１０１とサーバ１０２の間のあるＴＣＰコネクションの通信シーケンスを表した図であり、図の右に向かって時間の進行を表す。またクライアント１０１とサーバ１０２の間の矢印２１１等は、矢印１本がＩＰパケット１つを表す。
【００１９】
判定装置１０５は未知のＬ７アプリケーションプロトコルに対しても「アプリケーション層でショートメッセージがピンポンする」事をトランスポート層の監視により検出できるよう、あるコネクションにおいて以下２つの条件がＡＮＤで成立し続けているか否かを監視する。なお、成立し続けているか否かの判定基準は後述する。
条件１．          クライアントからのＩＰパケット送信から次のＩＰパケット送信までの間のサーバからのＩＰパケット受信がｍ  Ｂｙｔｅ以内
条件２．          クライアントからのＩＰパケット送信から次の受信までがＲＴＴ以上ｄ秒以内
このうち、条件１は、たとえばクライアント１０１からのＩＰパケット送信２１１から次のＩＰパケット送信２２１までの間に受信したＩＰパケット２１２、２１３、２１４の合計がｍ  Ｂｙｔｅに収まっているか否か２０１という判断である。収まっていないということは、すなわちアプリケーション層において、クライアント１０１からの要求に対して、サーバ１０２は一度に大量の返信をしていると推測できる。なお、ｍはユーザ定義またはシステム定義の任意の値である。また、システム定義の初期値として５００ＫＢｙｔｅ程度を想定している。
【００２０】
また、条件２は、たとえばクライアント１０１からのＩＰパケット送信２２１から次の受信２２２までがＲＴＴ以上ｄ（ＲＴＴの２倍程度）秒以内２０２であるか否かという判断である。ＲＴＴ以下もしくはｄ秒以上であるということは、すなわちアプリケーション層において、クライアント１０１とサーバ１０２がピンポンではなくお互い任意のタイミングでメッセージをやりとしていると推測できる。なお、ｒはユーザ定義またはシステム定義の任意の値である。また、システム定義の初期値としてＲＴＴの２倍程度を想定している。
【００２１】
図３に、図２を用いて示した２条件に関して、それらが成立し続けているか否かを判断する方法を示す。ここでは成立し続けている事を判断するために、不成立である事象がｎ回連続で起こったら事を検出したら、成立し続けていないと判断する。たとえば、ｎ＝３の場合は、３回続けてクライアントがＩＰパケットを送信してからｄ秒以内にサーバからＩＰパケットを受信したら、成立し続けていないと判断する。なお、ｎ＝１の場合は厳密に成立し続けているか否かを判断することになるが、ネットワークの混雑や揺らぎといった外乱があるためｎを用いたほうが良い結果が得られる。図３はｎ＝３の場合の状態遷移である。ｎ＝３の場合はバルク状態（Ｂ）３０１、ピンポン状態（Ｐ）３０２と、その間であるグレー状態（Ｇ１  ３１１〜Ｇ４  ３２２）の計６状態の間を遷移し、Ｂ  ３０１、Ｇ１  ３１１、Ｇ２  ３１２なら高速化する（高速化ｏｎ）３１０、Ｐ  ３０２、Ｇ３  ３２１、Ｇ４  ３２２なら高速化しない（高速化ｏｆｆ）３２０。上述した２条件が所定回数成立し続けているか否かを判断することによって、ネットワークの混雑や揺らぎといった外乱の影響がある場合であっても、その影響を考慮して適切に成立の可否を判断することができる。
【００２２】
なお、本実施例ではＢ  ３０１→Ｐ  ３０２とＰ  ３０２→Ｂ  ３０１のグレー状態数が等しい、すなわち同じｎの値を用いた。しかし、Ｂ  ３０１→Ｐ  ３０２とＰ  ３０２→Ｂ  ３０１で異なるグレー状態数を用いるバリエーションも考えられる。その場合はＢ  ３０１→Ｐ  ３０２の間のグレー状態数より１大きいｎＢＰと、Ｐ  ３０２→Ｂ  ３０１の間のグレー状態数より１大きいｎＰＢを用いて管理する。
【００２３】
図４に、ｎを一般化した場合の状態遷移表を示す。ここでは入力ｉは上記２条件のどちらかが成立４３１したか否４３２かである。なお、ｉは図３の遷移を表す矢印に相当する。一方、状態を表す内部パラメータは、高速化するしないを表すパラメータａ  ４０１と、何回連続してイベントが発生したかを表すパラメータｃ  ４０２である。なお、ａ  ４０１とｃ  ４０２の組み合わせは図３の各状態に相当する。たとえばａ＝＝ｏｎかつｃ＝＝１の場合４１１は図３の状態Ｂ  ３０１であり、ａ＝＝ｏｎかつｃ＝＝３の場合４１２は図２の状態Ｇ２  ３１２である。また、図３で説明したＢ  ３０１→Ｐ  ３０２とＰ  ３０２→Ｂ  ３０１で異なるグレー状態数を用いるバリエーションの場合は、状態４１１および４１２ではｃとｎＢＰを比較し、状態４２１および４２２ではｃとｎＰＢを比較する。
【００２４】
続いて図５から図１０を用いて判定装置１０５を説明する。図５に判定装置１０５の構成を示す。判定装置１０５はＣＰＵ５０１と主記憶５０２と二次記憶５０３と３つのネットワークインターフェース（ＮＩＣ）５０４〜５０６を持つ。ＣＰＵ５０１は判定モジュール５２２を実行する。主記憶５０２上には判定装置１０５の動作中にコネクション管理表５２１と判定モジュール５２２が展開される。二次記憶５０３には判定モジュールプログラム５３１を保存する。判定モジュールプログラム５３１は判定装置１０５の起動時に主記憶５０２上に判定モジュール５２２として展開され、その後判定モジュール５２２によってコネクション管理表５２１が展開される。また、ＮＩＣ１  ５０４はクライアント１０１と接続され、ＮＩＣ２  ５０６は通信高速化装置１０３と接続され、ＮＩＣ３  ５０５はＴＣＰ高速化装置を介さずサーバに直結される。
【００２５】
コネクション管理表５２１は識別情報列５４２と図４で説明したａおよびｃであるａ列５４３とｃ列５４４、パケット受信時刻であるｔ列５４５、受信したデータ量であるｖ列５４６、および判定に用いるフラグであるｆ列５４７を持つ。識別情報列５４２はＴＣＰコネクションのＮＩＣ１  ５０４側エンドポイントに関する情報であるＬＡＮ側ＩＰ（ＬＡＮ＿ＩＰ）とＬＡＮ側ポート番号（ＬＡＮ＿Ｐｏｒｔ）、ＮＩＣ２  ５０６側エンドポイントに関する情報であるＷＡＮ側ＩＰ（ＷＡＮ＿ＩＰ）とＷＡＮ側ポート番号（ＷＡＮ＿Ｐｏｒｔ）とトランスポート層プロトコル種別（Ｌ４Ｐｒｏｔｏｃｏｌ）の五つ組であり、これらを用いてトランスポート層のコネクションを一意に識別可能である。なお、ＬＡＮ側ポート番号（ＬＡＮ＿Ｐｏｒｔ）とＷＡＮ側ポート番号（ＷＡＮ＿Ｐｏｒｔ）はトランスポート層プロトコルがＴＣＰもしくはＵＤＰの場合のみ値をもち、ＩＣＭＰなど他のプロトコルの場合は値無しとして便宜上０とする。ａ、ｃ、ｔ、ｖ、ｆ列が持つ値の詳細は後述する。
【００２６】
図６に判定モジュール１０５の基本動作のフローチャートを示す。判定モジュール１０５は処理開始６０１後、３つのＮＩＣからのＩＰパケットを受信したか否か判断し、受信があればそれぞれ適切な処理を行う（６０２〜６０４）。
【００２７】
ＮＩＣ１からＩＰパケットを受信したか否か判断６０２の結果、受信した場合は、続いてコネクション管理表５２１からコネクション情報を取得６２１する。ここではＩＰパケットを解析してトランスポート層のプロトコルヘッダを参照し、ＬＡＮ側ＩＰ（ＬＡＮ＿ＩＰ）、ＬＡＮ側ポート番号（ＬＡＮ＿Ｐｏｒｔ）、ＷＡＮ側ＩＰ（ＷＡＮ＿ＩＰ）、ＷＡＮ側ポート番号（ＷＡＮ＿Ｐｏｒｔ）、トランスポート層プロトコル種別（Ｌ４Ｐｒｏｔｏｃｏｌ）の五つ組を取得し、それを用いてコネクション管理表５２１を検索する。なお、ＩＣＭＰなどポート番号を持たないトランスポート層プロトコルの場合は、ＬＡＮ側ポート番号（ＬＡＮ＿Ｐｏｒｔ）とＷＡＮ側ポート番号（ＷＡＮ＿Ｐｏｒｔ）を便宜上０とする。取得６２１の結果、コネクション情報が見つかった６２２場合には受信したＩＰパケットの転送処理６２４を行い、続いて状態遷移処理１  ６２５を行い、コネクション管理表５２１の手順６２１で見つけた行を（ｔ，ｖ，ｆ）＝（現在時刻，０，ｆａｌｓｅ）とする６２６。判断６２２において見つからなかったと判断した場合は、新規コネクション追加処理６２３を行ってから転送処理６２４以降の処理を行う。
【００２８】
ＮＩＣ２からＩＰパケットを受信したか否か判断６０３の結果、受信した場合は、続いてコネクション管理表５２１からコネクション情報を取得６３１する。ここでもＩＰパケットを解析してトランスポート層のプロトコルヘッダを参照し、ＬＡＮ側ＩＰ（ＬＡＮ＿ＩＰ）、ＬＡＮ側ポート番号（ＬＡＮ＿Ｐｏｒｔ）、ＷＡＮ側ＩＰ（ＷＡＮ＿ＩＰ）、ＷＡＮ側ポート番号（ＷＡＮ＿Ｐｏｒｔ）、トランスポート層プロトコル種別（Ｌ４Ｐｒｏｔｏｃｏｌ）の五つ組を取得し、それを用いてコネクション管理表５２１を検索する。なお、ＩＣＭＰなどポート番号を持たないトランスポート層プロトコルの場合は、ＬＡＮ側ポート番号（ＬＡＮ＿Ｐｏｒｔ）とＷＡＮ側ポート番号（ＷＡＮ＿Ｐｏｒｔ）を便宜上０とする。取得６３１の結果、コネクション情報が見つかった６３２場合には受信したＩＰパケットをＮＩＣ１に転送６３４し、状態遷移処理２をａ＝ｏｎの条件下で行い６３５、コネクション管理表５２１の手順６３１で見つけた行を（ｖ）＝（ｖ＋受信パケットサイズ）とする６３６。判断６３２において見つからなかったと判断した場合は、新規コネクション追加処理６３３を行ってから転送処理６３４以降の処理を行う。
【００２９】
ＮＩＣ３からＩＰパケットを受信したか否か判断６０４の結果、受信した場合は、続いてコネクション管理表５２１からコネクション情報を取得６４１する。ここでもＩＰパケットを解析してトランスポート層のプロトコルヘッダを参照し、ＬＡＮ側ＩＰ（ＬＡＮ＿ＩＰ）、ＬＡＮ側ポート番号（ＬＡＮ＿Ｐｏｒｔ）、ＷＡＮ側ＩＰ（ＷＡＮ＿ＩＰ）、ＷＡＮ側ポート番号（ＷＡＮ＿Ｐｏｒｔ）、トランスポート層プロトコル種別（Ｌ４Ｐｒｏｔｏｃｏｌ）の五つ組を取得し、それを用いてコネクション管理表５２１を検索する。なお、ＩＣＭＰなどポート番号を持たないトランスポート層プロトコルの場合は、ＬＡＮ側ポート番号（ＬＡＮ＿Ｐｏｒｔ）とＷＡＮ側ポート番号（ＷＡＮ＿Ｐｏｒｔ）を便宜上０とする。取得６４１の結果、コネクション情報が見つかった６４２場合には受信したＩＰパケットをＮＩＣ１に転送６４４し、状態遷移処理２をａ＝ｏｆｆの条件下で行い６４５、コネクション管理表５２１の手順６４１で見つけた行を（ｖ）＝（ｖ＋受信パケットサイズ）とする６４６。判断６４２において見つからなかったと判断した場合は、新規コネクション追加処理６４３を行ってから転送処理６４４以降の処理を行う。
【００３０】
図７に、図６で説明した判定モジュール１０５の動作のうち、手順６２３、６３３、６４３の新規コネクション追加処理の詳細を示す。新規コネクション追加処理７０１開始後、受信したＩＰパケットを解析してトランスポート層のプロトコルヘッダを参照し、ＬＡＮ側ＩＰ（ＬＡＮ＿ＩＰ）、ＬＡＮ側ポート番号（ＬＡＮ＿Ｐｏｒｔ）、ＷＡＮ側ＩＰ（ＷＡＮ＿ＩＰ）、ＷＡＮ側ポート番号（ＷＡＮ＿Ｐｏｒｔ）、トランスポート層プロトコル種別（Ｌ４Ｐｒｏｔｏｃｏｌ）の五つ組を取得し、識別情報列の値を作成７０２する。続いて（ａ，ｃ，ｔ，ｖ，ｆ）＝（ｏｎ，１，現在時刻，０，ｆａｌｓｅ）として識別情報列と合わせてコネクション管理表５２１に挿入（ＩＮＳＥＲＴ）７０３し、処理を終える７０４。
【００３１】
図８に、図６で説明した判定モジュール１０５の動作のうち、手順６２４の転送処理の詳細を示す。転送処理開始８０１後、パラメータａがｏｎか否か判断８０２する。ａは高速化するしないを表すパラメータである。ａがｏｎであると判断した場合はＮＩＣ２  ８０３に転送８０３し、ａがｏｆｆであると判断した場合はＮＩＣ３  ５０５に転送８０４し、（ｔ，ｆ）＝（現在時刻，ｆａｌｓｅ）として手順６２１で取得したコネクション情報を更新（ＵＰＤＡＴＥ）８０５し、処理を終える８０６。
【００３２】
図９に、図６で説明した判定モジュール１０５の動作のうち、手順６２５の状態遷移処理１の詳細を示す。状態遷移処理１は図２のクライアントのＩＰパケット送信（２１１や２２１）のタイミングにおいて、図４で説明した状態遷移表を用いて、条件１が成立し続けているか否かを判断し、判断結果を踏まえて適切な動作を行う処理である。
【００３３】
状態遷移処理１開始９０１後、ａ＝＝ｏｎか否か判断９０２し、続いてｃ＝＝ｎか否か判断９１１、９１２する。ここでａは高速かするしないを表すパラメータであり、ｃは何回連続してイベントが発生したかを表すパラメータである。この２段階の判断によって、図４で説明した状態遷移表の４０１および４０２で表されるいずれの内部状態にあるかを判定する。その後、ｖ＜ｍか否か判断９２１、９２２、９２３、９２４する。ｖ＜ｍか否かの判断によって、条件１が成立しているか否かを判定する。その後、処理９３１から処理９３８までのいずれかの処理を行い、処理を終える９４０。処理９３１から９３８の８つの処理は、それぞれ図４の８つの処理に対応する。
【００３４】
図１０に、図６で説明した判定モジュール１０５の動作のうち、手順６３５および６４５の状態遷移処理２の詳細を示す。状態遷移処理２は図２のサーバのＩＰパケット送信（２１２、２１３、２１４、２３２）のタイミングにおいて、図４で説明した状態遷移表を用いて、条件２が成立し続けているか否かを判断し、判断結果を踏まえて適切な処理を行う処理である。
【００３５】
状態遷移処理２開始後１００１、ｆ＝＝ｆａｌｓｅであるか否か判断１００２する。ｆはフラグである。具体的には条件２が成立しているか否かの判断が済んだかどうかを表すフラグであり、ｆ＝＝ｆａｌｓｅである場合は条件２が成立しているか否か判断が済んでいない、すなわちこれから判断が必要である事を表す。ｆ＝＝ｆａｌｓｅが成立していない、すなわち条件２が成立しているか否か判断が済んでいる場合は処理を終える１０４０。
【００３６】
判断１００２においてｆ＝＝ｆａｌｓｅである、すなわち条件２が成立しているか否か判断が済んでいない場合には、つづいて変数ｔ１に現在時刻からｔを引いた値を代入１００４、すなわち変数ｔ１には、直前のクライアントのＩＰパケット送信から、サーバからのＩＰパケット受信までの時間が入る。続いてａ＝＝ｏｎか否か判断１００５し、続いてｃ＝＝ｎか否か判断１０１１、１０１２する。ここでａは高速かするしないを表すパラメータであり、ｃは何回連続してイベントが発生したかを表すパラメータである。この２段階の判断によって、図４で説明した状態遷移表の４０１および４０２で表されるいずれの内部状態にあるかを判定する。その後、ＲＴＴ＜ｔ１＜ｄか否か判断１０２１、１０２２、１０２３、１０２４する。ＲＴＴ＜ｔ１＜ｄか否かの判断によって、条件２が成立しているか否かを判定する。その後、処理１０３１から処理１０３８までのいずれかの処理を行い、処理を終える１０４０。処理１０３１から１０３８の８つの処理は、それぞれ図４の８つの処理に対応する。
【００３７】
図５から図１０で説明した判定装置１０５を用いてクライアント１０１とサーバ１０２の間のコネクションを監視し続け、コネクション内を流れるアプリケーション層プロトコルにおいてショートメッセージがピンポンしていることを検出すると、通信高速化装置１０３および１０４を通さないで通信するように通信経路を制御し、また、コネクション内を流れるアプリケーション層プロトコルにおいてショートメッセージのピンポンが解消したことを検出すると、通信高速化装置１０３および１０４を通して通信するように通信経路を制御することで、トランスポート層以下の挙動をもってコネクションを自動識別し特定のコネクションのみ高速化を行うよう制御することが可能になる。
【実施例２】
【００３８】
本実施例では、通信高速化装置が既に確立されたＴＣＰやＵＤＰコネクションを高速化できない場合においても、ＴＣＰもしくはＵＤＰを用いたコネクション毎に監視してアプリケーション層でショートメッセージがピンポンする通信を検出し、それを高速化対象から除外する方法を開示する。
【００３９】
図１１に全体構成を示す。図１１はクライアント１０１とサーバ１０２の間の通信遅延が長いため通信高速化装置１０３および１０４を使っており、さらにクライアント１０１とクライアント側通信高速化装置１０３の間に判定装置１１０１を設置し、またサーバ１０２とサーバ側通信高速化装置１０４の間に判定装置１１０２を設置したものである。判定装置１１０１および１１０２はＰＰＴＰなどのＴＣＰ上のトンネル１１０３を用いて通信する機能を有する。また、判定装置１１０１と判定装置１１０２は同一の機能を有する同一の構成の装置である。判定装置１１０１の詳細は後述する。クライアント１０１は一般的なＰＣや携帯端末といった装置であり、ＴＣＰもしくはＵＤＰを用いたデータ送受信機能を持つ。また、サーバ１０２は一般的なＰＣやサーバ装置といった装置であり、ＴＣＰもしくはＵＤＰを用いたデータ送受信機能を持つ。通信高速化装置１０３および１０４はＴＣＰもしくはＵＤＰコネクションを高速化する機能を持った既存の通信高速化装置である。
【００４０】
図１２から図１７を用いて判定装置１１０１を説明する。なお、判定装置１１０１は、実施例１の判定装置１０５に対して、先に記したトンネル１１０３に関する機能を追加したものである。そのため、実施例１の判定装置１０５との差分に注力して説明する。
【００４１】
図１２に判定装置１１０１の構成を示す。判定装置１１０１は実施例１の判定装置１０５と同じくＣＰＵ５０１と主記憶５０２と二次記憶５０３と３つのネットワークインターフェース（ＮＩＣ）５０４〜５０６を持ち、また主記憶５０２上にコネクション管理表５２１を持つが、主記憶５０２上の判定モジュール１２２２と二次記憶５０３上の判定モジュールプログラム１２３２は実施例１とは異なる。また主記憶５０２上にトンネリングモジュール１２２１および二次記憶５０３上にトンネリングモジュールプログラム１２３１を持つ。また、コネクション管理表５２１にはトンネル情報列１２４１を追加する。
【００４２】
トンネリングモジュール１２２１はＴＣＰコネクションやＵＤＰコネクションの上に、カプセル化によって別のＴＣＰコネクションやＵＤＰコネクションを通す機能を有するモジュールである。このような機能としてＰＰＴＰ（Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔ  Ｔｕｎｎｅｌｉｎｇ  Ｐｒｏｔｏｃｏｌ，ｒｆｃ２６３７）などが知られており、ここで扱うトンネリングモジュール１２２１もＰＰＴＰを用いるものとする。トンネリングモジュール１２２１にトンネル識別番号とＩＰパケットを渡すと、適切にカプセル化されたＩＰパケットを返す。このとき、必要に応じて複数のＩＰパケットに分割される。また、トンネリングモジュール１２２１にカプセル化されたＩＰパケットを渡すと、カプセル内のＩＰパケットを返す。また、ＴＣＰコネクション上にトンネルを作成する機能を持つ。このとき、トンネル識別番号を返す。また、トンネル識別番号を渡して、トンネルを切断する機能を持つ。
【００４３】
図１３に判定モジュール１２２２の基本動作のフローチャートを示す。図６に示した実施例１の判定装置１０５の基本動作のフローチャートと多くの部分が等しいため、差分のみを説明する。本実施例の判定モジュール１２２２は判断６２２において見つかった場合、転送処理Ａ１３０１を行い、状態遷移処理Ａ１  １３０２を行う。また判断６２２において見つからなかった場合は新規コネクション追加処理Ａ１３０３を行い、その後転送処理Ａ１３０１から処理を続ける。転送処理Ａ１３０１、状態遷移処理Ａ１  １３０２、新規コネクション追加処理Ａ１３０３の詳細は後述する。
【００４４】
また、本実施例の判定モジュール１２２２は判断６０３において受信したと判断した場合、受信したＩＰパケットをトンネリングモジュールに通して元のＩＰパケットを復元１３１１してから手順６３１以降の処理を行う。また判断６３２において見つからなかった場合は新規コネクション追加処理Ａ１３１２を行い、その後手順６３４から処理を続ける。また手順６３４に続いて、状態遷移処理Ａ２をａ＝ｏｎの条件下で行う１３１３。状態遷移処理Ａ２  １３１３の詳細は後述する。
【００４５】
また、本実施例の判定モジュール１２２２は判断６０４において受信したと判断した場合、受信したＩＰパケットをトンネリングモジュールに通して元のＩＰパケットを復元１３２１してから手順６４１以降の処理を行う。また判断６４２において見つからなかった場合は新規コネクション追加処理Ａ１３２２を行い、その後手順６４４から処理を続ける。また手順６４４に続いて、状態遷移処理Ａ２をａ＝ｏｆｆの条件下で行う１３２３。
【００４６】
図１４に、図１３で説明した判定モジュール１２２２の動作のうち手順１３０１の転送処理Ａの詳細を示す。図８に示した実施例１の転送処理のフローチャートと多くの部分が等しいため、差分のみを説明する。転送処理Ａ開始１４０１後、トンネリングモジュールにオリジナルのＩＰパケットを通して転送用ＩＰパケットを作成１４０２する。このとき、トンネル識別番号として、手順６２１でコネクション管理表５２１から取得したコネクション情報、もしくは手順１３１２でコネクション管理表５２１に挿入したコネクション情報のトンネル情報列１２４１の値を用いる。威光の処理は図８の手順８０２から８０６に順ずる。
【００４７】
図１５に、図１３で説明した判定モジュール１２２２の動作のうち、手順１３０３、１３１２、１３２２の新規コネクション追加処理Ａの詳細を示す。図７に示した実施例１の新規コネクション追加処理と多くの部分が等しいため、差分のみを説明する。新規コネクション追加処理Ａ開始１５０１後、識別情報列の値を作成７０２し、（ａ，ｃ，ｔ，ｖ，ｆ，識別情報）＝（ｏｎ，１，現在時刻，０，ｆａｌｓｅ，トンネリングモジュールから取得した値）として識別情報列と合わせてコネクション管理表１２２１に挿入（ＩＮＳＥＲＴ）１５０３し、処理を終える７０４。
【００４８】
図１６に、図１３で説明した判定モジュール１２２２の動作のうち手順１３０２の状態遷移処理Ａ１の詳細を示す。図９に示した実施例１の状態遷移処理１と多くの部分が等しいため、差分のみを説明する。本実施例の判定モジュール１２２２は手順９３３に続いて対向の判定モジュールとの間にＴＣＰコネクションを確立し、さらにそのコネクションの上にトンネルを作成する１６３１。続いて１６３１で得たトンネル識別番号を用いてコネクション管理表１２２２の該当レコードのトンネル情報列１２４１を更新１６３２する。また、手順９３８に続いて対向の判定モジュールとの間のトンネルを切断し、さらにＴＣＰコネクションを切断する１６８１。続いてコネクション管理表１２２２の該当レコードのトンネル情報列１２４１を値なしに更新１６８２する。
【００４９】
図１７に、図１３で説明した判定モジュール１２２２の動作のうち、手順１３１３、１３２３の状態遷移処理Ａ２の詳細を示す。図１０に示した実施例１の状態遷移処理２と多くの部分が等しいため、差分のみを説明する。本実施例の判定モジュール１２２２は手順１０３３に続いて対向の判定モジュールとの間にＴＣＰコネクションを確立し、さらにそのコネクションの上にトンネルを作成する１７３１。続いて１７３１で得たトンネル識別番号を用いてコネクション管理表１２２２の該当レコードのトンネル情報列１２４１を更新１７３２する。また、手順１０３８に続いて対向の判定モジュールとの間のトンネルを切断し、さらにＴＣＰコネクションを切断する１７８１。続いてコネクション管理表１２２２の該当レコードのトンネル情報列１２４１を値なしに更新１７８２する。
【００５０】
図１２から図１７で説明した判定装置１１０１および１１０２を用いることで、通信高速化装置が既に確立されたＴＣＰやＵＤＰコネクションを高速化できない場合においても、ＴＣＰもしくはＵＤＰを用いたコネクション毎に監視してアプリケーション層でショートメッセージがピンポンする通信を検出し、それを高速化対象から除外することが可能になる。
【符号の説明】
【００５１】
１０１  クライアント装置
１０２  サーバ装置
１０３  通信高速化装置
１０４  通信高速化装置
１０５  判定装置。
【図１】
2015032985.tif 000003
【図２】
2015032985.tif 000004
【図３】
2015032985.tif 000005
【図４】
2015032985.tif 000006
【図５】
2015032985.tif 000007
【図６】
2015032985.tif 000008
【図７】
2015032985.tif 000009
【図８】
2015032985.tif 000010
【図９】
2015032985.tif 000011
【図１０】
2015032985.tif 000012
【図１１】
2015032985.tif 000013
【図１２】
2015032985.tif 000014
【図１３】
2015032985.tif 000015
【図１４】
2015032985.tif 000016
【図１５】
2015032985.tif 000017
【図１６】
2015032985.tif 000018
【図１７】
2015032985.tif 000019