(57)【特許請求の範囲】
【請求項１】
クライアント装置が接続する第１のネットワークと、サーバ装置が接続する第２のネットワークとに接続し、前記クライアント装置と前記サーバ装置との間で行われるＴＣＰ通信を中継するＴＣＰ中継装置であって、
前記第１のネットワークにおいて、前記クライアント装置と第１のＴＣＰ接続を行い、前記第２のネットワークにおいて、前記サーバ装置と第２のＴＣＰ接続を行い、前記第１のＴＣＰ接続と前記第２のＴＣＰ接続との間でＴＣＰ通信を終端して中継する、ＴＣＰ中継処理部と、
ＴＣＰの接続およびデータの送受信制御を行い、並びに、前記第１のＴＣＰ接続に係る第１のＴＣＰ制御情報と前記第２のＴＣＰ接続に係る第２のＴＣＰ制御情報とを、それぞれ、ＴＣＰ情報管理領域を用いて保持するＴＣＰ処理部と、
ネットワークに対してデータの送受信を行うネットワークインタフェースデバイスを制御するネットワークインタフェース処理部と、
ＩＰ層の処理と、内部に出力キューを備え、前記ネットワークインタフェース処理部に対してＩＰパケットを送信する際に、送信が完了するまでＩＰパケットのキューイングを行うＩＰ処理部と、を備え、
前記ＴＣＰ情報管理領域は、
前記第１と第２のネットワークにおけるＴＣＰ接続の、デフォルトの設定情報を記憶するデフォルトＴＣＰ設定と、
カスタム対象のＴＣＰ接続のネットワーク種別と当該ネットワーク種別に対する設定情報であるカスタム情報とを対応付けて記憶するカスタムＴＣＰ設定と、
前記デフォルトＴＣＰ設定と前記カスタムＴＣＰ設定とに基づく、ＴＣＰ通信ごとの前記第１のＴＣＰ制御情報と前記第２のＴＣＰ制御情報とをソケット設定情報として、前記ＴＣＰ通信を識別するソケット記述子に対応付けて記憶するソケットパラメータ管理表と、を備え、
前記ＴＣＰ中継処理部は、
前記クライアント装置と第１のＴＣＰ接続を行う際に、当該第１のＴＣＰ接続がカスタム対象であるかを判定するステップと、
当該第１のＴＣＰ接続がカスタム対象である場合に、前記第１のネットワークの種別を示す情報を検索キーとして前記カスタムＴＣＰ設定を検索するステップと、
前記ソケットパラメータ管理表の当該第１のＴＣＰ接続に係る前記ソケット設定情報として、ネットワーク種別、および前記カスタムＴＣＰ設定の前記検索においてマッチした前記カスタム情報を登録するステップと、
前記サーバ装置と第２のＴＣＰ接続を行う際に、当該第２のＴＣＰ接続がカスタム対象であるかを判定するステップと、
当該第２のＴＣＰ接続がカスタム対象である場合に、前記第２のネットワークの種別を示す情報を検索キーとして前記カスタムＴＣＰ設定を検索するステップと、
前記ソケットパラメータ管理表の当該第２のＴＣＰ接続に係る前記ソケット設定情報として、ネットワーク種別、および前記カスタムＴＣＰ設定の前記検索においてマッチした前記カスタム情報を登録するステップと、を実行する
ことを特徴とするＴＣＰ中継装置。
【請求項２】
請求項１に記載のＴＣＰ中継装置であって、
前記ＴＣＰ中継処理部に対して、コネクション確立および／またはデータを送受信するためのアプリケーションプログラミングインタフェース（ＡＰＩ）を提供するソケットＡＰＩ処理部と、を備え、
前記ソケットＡＰＩ処理部は、ＯＳ上で動作するアプリケーションが指示する、前記クライアント装置および／またはサーバ装置が接続するネットワーク種別に応じた第１および／または第２のＴＣＰ制御情報の設定を、ＴＣＰ中継処理部から受け付け、前記ソケットパラメータ管理表に登録する
ことを特徴とするＴＣＰ中継装置。
【請求項３】
請求項２に記載のＴＣＰ中継装置であって、
前記ソケットＡＰＩ処理部は、前記カスタムＴＣＰ設定に対して登録や参照、変更、削除を行うための、前記クライアント装置および前記サーバ装置のそれぞれが接続するネットワーク種別に応じたＴＣＰ制御情報の設定を受け付けるカスタム設定ＡＰＩを備え、
前記ＴＣＰ中継処理部は、
待ち受けポートで前記クライアント装置からのＴＣＰ接続を受け付ける際に、当該ＴＣＰ接続がカスタム対象であった場合に、前記カスタム設定ＡＰＩを呼び出し、前記ソケット記述子とネットワークの種別を示す情報とをＡＰＩの引数として渡すステップと、
前記サーバ装置にＴＣＰ接続を行う際に、当該ＴＣＰ接続がカスタム対象であった場合に、前記カスタム設定ＡＰＩを呼び出し、前記ソケット記述子とネットワークの種別を示す情報とをＡＰＩの引数として渡すステップと、を実行する
ことを特徴とするＴＣＰ中継装置。
【請求項４】
請求項１に記載のＴＣＰ中継装置であって、
前記カスタム情報は、ＴＣＰ再送タイムアウト時間の最小値を含み、
前記ＴＣＰ処理部は、前記送受信制御において、ネットワーク輻輳によるパケット廃棄の場合は、前記ソケットパラメータ管理表が記憶する前記ＴＣＰ再送タイムアウト時間の最小値を、前記ＩＰ処理部によるパケット廃棄の場合は、前記デフォルトＴＣＰ設定に記憶されたＴＣＰ再送タイムアウト時間の最小値を、用いる
ことを特徴とするＴＣＰ中継装置。
【請求項５】
請求項４に記載のＴＣＰ中継装置であって、
前記ＴＣＰ処理部は、
前記送受信制御における再送タイマの登録理由をチェックするステップと、
再送タイマの登録理由がＩＰ処理部中の出力キューでのパケット廃棄であれば、前記デフォルトＴＣＰ設定を参照し、デフォルトの再送タイムアウト時間の最小値を取得するステップと、
当該ＴＣＰのＲＴＴ（ラウンドトリップタイム）から算出された再送タイムアウト時間値が、前記デフォルトの再送タイムアウト時間の最小値以下であるか、否かをチェックするステップと、
ＹＥＳであれば、前記デフォルトの再送タイムアウト時間の最小値を再送タイムアウト時間値として再送タイマに登録するステップと、
ＮＯであれば、処理を終了するステップと、
再送タイマの登録理由がネットワークでのパケット廃棄であれば、前記ソケット記述子を検索キーとし、前記ソケットパラメータ管理表から前記ソケット設定情報を参照するステップと、
当該ＴＣＰのＲＴＴから算出された再送タイムアウト時間値が、当該ソケット設定情報から得られた再送タイムアウト時間の最小値以下であるか、否かをチェックするステップと、
ＹＥＳであれば、当該ソケット設定情報から得られた再送タイムアウト時間の最小値を再送タイムアウト時間値として再送タイマに登録するステップと、
ＮＯであれば、処理を終了するステップと、を実行する
ことを特徴とするＴＣＰ中継装置。
【請求項６】
請求項１に記載のＴＣＰ中継装置であって、
前記カスタム情報は、再送タイムアウト時間の最大値を含み、
前記ＴＣＰ処理部は、前記送受信制御において、ネットワーク輻輳によるパケット廃棄の場合は、前記ソケットパラメータ管理表が記憶する前記ＴＣＰ再送タイムアウト時間の最大値を、前記ＩＰ処理部によるパケット廃棄の場合は、前記デフォルトＴＣＰ設定に記憶されたＴＣＰ再送タイムアウト時間の最大値を、用いる
ことを特徴とするＴＣＰ中継装置。
【請求項７】
請求項６に記載のＴＣＰ中継装置であって、
前記ＴＣＰ処理部は、
前記送受信制御における再送タイマの登録理由をチェックするステップと、
前記再送タイマの登録理由が前記ＩＰ処理部によるパケット廃棄であれば、前記デフォルトＴＣＰ設定を参照し、デフォルトの再送タイムアウト時間の最大値を取得するステップと、
当該ＴＣＰのＲＴＴ（ラウンドトリップタイム）から算出された再送タイムアウト時間値が、前記デフォルトの再送タイムアウト時間の最大値以上であるか、否かをチェックするステップと、
ＹＥＳであれば、前記デフォルトの再送タイムアウト時間の最大値を再送タイムアウト時間値として再送タイマに登録するステップと、
ＮＯであれば、処理を終了するステップと、
前記再送タイマの登録理由がネットワーク輻輳によるパケット廃棄であれば、前記ソケット記述子を検索キーとし、前記ソケットパラメータ管理表から前記ソケット設定情報を参照するステップと、
当該ＴＣＰのＲＴＴから算出された再送タイムアウト時間値が、前記ソケット設定情報から得られた再送タイムアウト時間の最大値以上であるか、否かをチェックするステップと、
ＹＥＳであれば、前記ソケット設定情報から得られた再送タイムアウト時間の最大値を再送タイムアウト時間値として再送タイマに登録するステップと、
ＮＯであれば、処理を終了するステップと、を実行する
ことを特徴とするＴＣＰ中継装置。
【請求項８】
請求項１に記載のＴＣＰ中継装置であって、
前記ＴＣＰ中継処理部は、
前記第１のＴＣＰ接続がカスタム対象であるかを判定するステップにおいて、当該第１のＴＣＰ接続が、前記クライアント装置から前記ＴＣＰ中継装置での特定の待ち受けポート番号への接続か否かで、前記クライアント装置が接続するネットワーク種別を判定するステップを実行し、
前記第２のＴＣＰ接続がカスタム対象であるかを判定するステップにおいて、当該第２のＴＣＰ接続が、前記ＴＣＰ中継装置から前記サーバ装置への特定のポート番号への接続か否かで、前記サーバ装置が接続するネットワーク種別を判定するステップを実行する
ことを特徴とするＴＣＰ中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、異なる特性を持つ複数のネットワークのそれぞれに接続している通信装置間で行われるＴＣＰ通信を中継する、ＴＣＰ中継装置に関する。
【背景技術】
【０００２】
近年、ＬＴＥ（Long Term Evolution）等の高速無線技術の発展やスマートフォンの台頭、ＳＮＳ（Social Networking Service）等の人気サービスの登場といった要因により、移動体通信システムに流れるインターネット向けトラフィックが年々急増している。移動体通信システムにおいて、無線網を利用した通信特性は、有線網とは異なり広帯域である反面伝送遅延が大きく、また基地局間のハンドオーバによる通信の瞬断が発生することが挙げられる。このような特性のネットワークでは、デフォルトのＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）を利用した各種アプリケーションが十分なスループットを得られないなど性能低下を生じることが明らかになっている。
【０００３】
このようなネットワーク環境下でＴＣＰを快適に利用するための性能改善手法として、携帯電話とサーバ間にＴＣＰを終端および中継する中継装置を設置して、中継装置とサーバとの間はデフォルトのＴＣＰ送信制御を、中継装置と携帯電話との間は無線に適したＴＣＰ送信制御を行うという方法がある。
【０００４】
特許文献１には、受信側端末との間で確立するＴＣＰコネクションで用いられるＴＣＰ送信制御情報を、受信側端末の属するネットワークに応じて設定する手段を備える、ＴＣＰ送信制御装置が記載されている。特許文献１に記載のＴＣＰ送信制御装置は、通信のサービス種別や、受信端末のＩＰアドレスのルーティング情報を基に、ＴＣＰ送信制御情報を設定する。
【０００５】
これにより、送信側装置が、通信相手端末が属するパケット網に応じて適切なＴＣＰ送信制御情報を設定することで、効率的なＴＣＰ通信を行うことができ、パケットロスト時の再送時間を大幅に改善することが可能となる。また、ＴＣＰスタック・プロトコルに変更を加えることなく、既存の仕組みでＴＣＰコネクション毎に適切なＴＣＰパラメータを設定することが可能となる。ＴＣＰ中継装置に、特許文献１に記載のＴＣＰ送信制御方法を備えることで、携帯電話とサーバ間のＴＣＰ通信の効率化を図ることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２０１１／０１２５９１５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１が開示する技術は、ＴＣＰ送信制御情報の設定は、サービス毎に一意に決まることとしている。しかしながら、ＴＣＰ接続単位などで細かく制御する技術については開示されていない。
【０００８】
また、受信側端末の属するネットワークの判定には、受信側端末のＩＰアドレスのルーティング情報を基にしている。しかし、一般的な移動体通信システムでは、受信側端末の取り得るＩＰアドレス領域が多岐に渡る。そのため、送信側端末に大量のＩＰアドレスを設定することとなり、運用面において不便な点が生じる。
【０００９】
さらに、ＴＣＰ送信制御情報の一つとして、ＴＣＰの再送タイムアウト時間の最小値が開示されている。しかし、ＴＣＰの再送の原因であるパケットロストは、必ずしもネットワークの輻輳が原因で発生するとは限らない。例えば、ＯＳ（Operating System）のＩＰ層にある出力キューにパケットを投入する際に、キュー溢れのためパケットを廃棄する場合がある。このとき、再送タイムアウト時間の最小値を大きく設定した場合は、ＴＣＰ層からの再送間隔が長くなる。そのため、ネットワークが輻輳していないにも関わらず、パケットがなかなか再送されず、ＴＣＰ接続が滞留してしまうという問題が発生する。
【課題を解決するための手段】
【００１０】
本明細書では、上記課題を解決するために、通信先装置が接続するネットワークの特性に応じたＴＣＰ制御情報を、ＴＣＰ接続単位で設定できる手段を備えることを、第一の特徴とするＴＣＰ中継装置が開示される。
【００１１】
さらに、開示されるＴＣＰ中継装置は、通信先装置が接続するネットワーク種別に応じたＴＣＰ制御情報の設定を、ＯＳの判断ではなく、ＯＳ上で動作するアプリケーション側から指示できる手段を備えることを、第二の特徴とする。
【００１２】
さらに、開示されるＴＣＰ中継装置は、通信先装置が接続するネットワーク種別を、待ち受けポートへのパッシブ接続かサーバ装置へのＴＣＰ接続かで判断する手段を備えることを、第三の特徴とする。
【００１３】
さらに、開示されるＴＣＰ中継装置は、ネットワーク輻輳によるパケット廃棄と、ＯＳ内部の送信キュー溢れによるパケット廃棄とを区別し、前者の場合はネットワーク種別に応じたＴＣＰ再送タイムアウトの最小値を、後者の場合はデフォルトのＴＣＰ再送タイムアウトの最小値を設定する手段を備えることを、第四の特徴とする。
【００１４】
上記特徴によれば、携帯電話とサーバ間にＴＣＰを終端および中継する中継装置を設置して、サーバとはデフォルトのＴＣＰ送信制御を、携帯電話とは無線に適したＴＣＰ送信制御を行う際に、ＴＣＰ接続単位などで細かく制御することができる、という効果を有する。
【００１５】
また、受信側端末の属するネットワークの判定が容易になる、という効果を有する。
【００１６】
さらに、ＴＣＰ再送タイムアウトの最小値を大きく設定した場合に、ネットワークが輻輳していない場合でも、パケットがなかなか再送されず、ＴＣＰ接続が滞留してしまうという現象を抑制できる。
【発明の効果】
【００１７】
開示によれば、接続するネットワーク種類によらず、高い通信品質を確保可能になる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１のＴＣＰ中継装置の構成例を示す図である。
【図２】実施の形態１のＴＣＰ中継装置のソケットパラメータ管理票の構成例を示す図である。
【図３】実施の形態１のカスタムＴＣＰ設定の構成例を示す図である。
【図４】実施の形態１のＴＣＰ中継装置のＴＣＰ中継処理を例示するフローチャートである。
【図５】実施の形態１のＴＣＰ中継装置のカスタム設定ＡＰＩ処理を例示するフローチャートである。
【図６】実施の形態１のＴＣＰ中継装置のカスタムＴＣＰ制御処理を例示するフローチャートである。
【図７】実施の形態２のＴＣＰ中継装置のＴＣＰ中継処理を例示するシーケンス図である。
【図８】各装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１９】
以下、実施の形態について、図面を用いて説明する。  
【００２０】
（実施の形態１）
図１は、ＴＣＰ中継装置２０の構成例を示すブロック図である。
【００２１】
ＴＣＰ中継装置２０は、異なる特性を持つ複数のネットワークがあり、それぞれのネットワークに接続している通信装置間で行われるＴＣＰ通信を中継する装置である。
【００２２】
ＴＣＰ中継装置２０は、ＬＡＮ（Local Area Network）４０及び無線網Ａ５０を経由して、クライアント装置１０と通信が可能な状態にある。
【００２３】
クライアント装置１０は、ＨＴＴＰ（HyperText Transfer Protocol）などのＴＣＰ／ＩＰ上のプロトコルを用いてサーバ装置３０に接続し、サービス要求を行う装置である。
【００２４】
また、ＴＣＰ中継装置２０は、ＬＡＮ４０及び有線網Ａ６０を経由して、サーバ装置３０と通信が可能な状態にある。
【００２５】
サーバ装置３０は、クライアント装置１０に対し、Ｗｅｂサービス等を提供するサーバプロセスが稼働する装置である。
【００２６】
クライアント装置１０、ＴＣＰ中継装置２０、サーバ装置３０などの各サーバ装置のハードウェア構成の例を図８に示す。
【００２７】
これらの装置は、ＣＰＵ１００１、主記憶装置１００２、ＨＤＤ等の外部記憶装置１００５、ＣＤ-ＲＯＭやＤＶＤ-ＲＯＭ等の可搬性を有する記憶媒体１００８から情報を読み出す読取装置１００３、ディスプレイ、キーボードやマウスなどの入出力装置１００６、ネットワーク１０１０に接続するためのＮＩＣ（Network Interface Card）等の通信装置１００４、及びそれらの装置間を接続するバスなどの内部通信線１００７を備えた一般的なコンピュータ１０００により実現できる。
【００２８】
例えば、後述のＴＣＰ情報管理領域２７は、主記憶装置１００２の一部の領域を用いて実現する。また、各装置は、それぞれの外部記憶装置１００５に記憶されている各種プログラムを主記憶装置１００２にロードしてＣＰＵ１００１で実行し、通信装置１００４を用いてネットワーク１０１０に接続してクライアント装置１０やサーバ装置３０とのネットワーク通信を行うことで、本実施例における各種処理部と、それらによる各種処理を実現する。
【００２９】
ＴＣＰ中継装置２０は、ＴＣＰ中継処理部２１と、その他の通信処理部２２と、ソケットＡＰＩ処理部２３と、ＴＣＰ処理部２４と、ＩＰ処理部２５と、ネットワークインタフェース処理部２６と、ＴＣＰ情報管理領域２７と、を備える。
【００３０】
ＴＣＰ中継処理部２１は、クライアント装置１０及びサーバ装置３０との間のＴＣＰ通信の終端及び中継のメイン処理を行う。その他の通信処理部２２は、ＴＣＰ中継以外の処理、例えばＴＣＰ中継装置２０の稼働状態監視などのミドルウェア処理を行う。また、その他の通信処理部２２は、クライアント装置１０及びサーバ装置３０とは直接通信を行わない。
【００３１】
ソケットＡＰＩ処理部２３は、ＴＣＰ中継処理部２１及びその他の通信処理部２２に対して、ＴＣＰ通信を抽象化した概念である「ソケット」における、コネクションの確立やデータを送受信するためのアプリケーションプログラミングインタフェース（API）を提供する。
【００３２】
また、ソケットＡＰＩ処理部２３は、カスタム設定ＡＰＩ２３１を備える。カスタム設定ＡＰＩ２３１は、後述のカスタムＴＣＰ設定２７２の登録や参照、変更、削除を行う。  ＴＣＰ中継処理部２１は、ソケットＡＰＩ処理部２３のＡＰＩを呼び出すことで、クライアント装置１０及びサーバ装置３０との通信（データの送受信）を行う。
【００３３】
ＴＣＰ処理部２４は、ＴＣＰの接続やデータの送受信制御を行う。ＩＰ処理部２５は、ＩＰ層の処理を行う処理部である。
【００３４】
ＩＰ処理部２５は内部に出力キュー２５１を備え、後述するネットワークインタフェース処理部２６に対してＩＰパケットを送信する際に、送信が完了するまでＩＰパケットのキューイングを行う。
【００３５】
ネットワークインタフェース処理部２６は、ＬＡＮ４０に対してデータの送受信を行うネットワークインタフェースデバイスを制御するための処理部である。
【００３６】
ＴＣＰ情報管理領域２７は、ＴＣＰの管理や制御に用いる情報を記憶するための領域であり、内部にＴＣＰのデフォルト設定情報を記憶するデフォルトＴＣＰ設定２７３を備える。
【００３７】
ＴＣＰ情報管理領域２７は、ソケットパラメータ管理表２７１と、カスタムＴＣＰ設定２７２と、を備える。
【００３８】
ここで、図２を用いて、ソケットパラメータ管理表２７１の詳細について説明する。
【００３９】
ソケットパラメータ管理表２７１は、ソケット設定情報として、ソケット記述子フィールド２７１１と、種別フィールド２７１２と、ＲＴＯ最小値フィールド２７１３と、ＲＴＯ最大値フィールド２７１４と、初期ウィンドウサイズフィールド２７１５と、を備える。
【００４０】
ソケット記述子フィールド２７１１は、ＴＣＰ中継処理部２１が作成したソケットの識別子を記憶する領域である。
【００４１】
種別フィールド２７１２は、「無線網」や「有線網」といったネットワーク種別を記憶する領域である。
【００４２】
ＲＴＯ最小値フィールド２７１３は、再送タイムアウト（RTO）時間の最小値（下限値と同義）を記憶する領域である。
【００４３】
ＲＴＯ最大値フィールド２７１４は、ＲＴＯ時間の最大値（上限値と同義）を記憶する領域である。
【００４４】
初期ウィンドウサイズフィールド２７１５は、初期ウィンドウサイズの値を記憶する領域である。
【００４５】
ソケットパラメータ管理表２７１の情報については、ソケットＡＰＩ処理部２３及びＴＣＰ処理部２４により、登録や参照、変更、削除を行う。
【００４６】
次に、図３を用いて、カスタムＴＣＰ設定２７２の詳細について説明する。
【００４７】
カスタムＴＣＰ設定２７２は、種別フィールド２７２１と、ＲＴＯ最小値フィールド２７２２と、ＲＴＯ最大値フィールド２７２３と、初期ウィンドウサイズフィールド２７２４と、を備える。
【００４８】
種別フィールド２７２１は、「無線網」や「有線網」といったネットワーク種別を記憶する領域である。
【００４９】
ＲＴＯ最小値フィールド２７２２は、再送タイムアウト（RTO）時間の最小値（下限値と同義）を記憶する領域である。  
【００５０】
ＲＴＯ最大値フィールド２７２３は、ＲＴＯ時間の最大値（上限値と同義）を記憶する領域である。  
【００５１】
初期ウィンドウサイズフィールド２７２４は、初期ウィンドウサイズの値を記憶する領域である。  
【００５２】
カスタムＴＣＰ設定２７２については、カスタム設定ＡＰＩ２３１、及びカスタムＴＣＰ制御部２４１により、登録や参照、変更、削除を行う。
【００５３】
以下、図４から図７を用いて、実施の形態１でのＴＣＰ中継装置２０におけるＴＣＰ中継方法について説明する。
【００５４】
図４は、ＴＣＰ中継処理部２１で行うＴＣＰ中継処理を例示するフローチャートである。
【００５５】
ＴＣＰ中継処理部２１は、まず、待ち受けポートでクライアント装置１０からのＴＣＰ接続を待つ（ステップＳ１０１）。  
【００５６】
ＴＣＰ接続があったならば、当該ＴＣＰ接続を受け付ける（ステップＳ１０２）。  
【００５７】
当該ＴＣＰ接続がカスタム対象であるかを判定し（ステップＳ１０３）、ＹＥＳであれば、カスタム設定ＡＰＩ２３１を呼び出し、ソケット記述子と種別情報を渡す（ステップＳ１０４）。  
【００５８】
カスタム対象であるかの判定方法は、例えば、クライアント装置１０からＴＣＰ中継装置２０での特定の待ち受けポート番号への接続か、もしくは、ＴＣＰ中継装置２０からサーバ装置３０への特定のポート番号への接続か、で判定する。具体的な例としては、システム管理者が、ＴＣＰ中継装置２０の設定ファイルに予め「ＴＣＰ待ち受けポートの８０８０番は無線網Ａ、および８０８１番は有線網Ａ」という設定を記述しておくことで、ＴＣＰ中継装置２０は、起動時に当該設定ファイルを読み込み、「待ち受けポートの８０８０番へのＴＣＰ接続は無線網Ａ」、「待ち受けポートの８０８１番へのＴＣＰ接続は有線網Ａ」という判定条件として動作する。  
【００５９】
ＮＯであれば、ステップＳ１０５に進み、クライアント装置１０からデータを受信する（ステップＳ１０５）。  
【００６０】
受信したデータの内容に従い、サーバ装置３０にＴＣＰ接続を行う（ステップＳ１０６）。  
【００６１】
当該ＴＣＰ接続がカスタム対象であるかを判定し（ステップＳ１０７）、ＹＥＳであれば、カスタム設定ＡＰＩ２３１を呼び出し、ソケット記述子と種別情報を渡す（ステップＳ１０８）。カスタム対象の判定方法は、ステップＳ１０４と同様である。  
【００６２】
ＮＯであれば、ステップＳ１０９に進み、クライアント装置１０及びサーバ装置３０とのＴＣＰデータを中継する（ステップＳ１０９）。  
【００６３】
中継が終了すると、クライアント装置１０及びサーバ装置３０とのＴＣＰ接続を切断し（ステップＳ１１０）、ＴＣＰ中継処理を終了する。
【００６４】
図５は、カスタム設定ＡＰＩ２３１で行うカスタム設定ＡＰＩ処理を例示するフローチャートである。
【００６５】
カスタム設定ＡＰＩ２３１はＴＣＰ中継処理部２１から呼び出されると、まず、渡されたソケット記述子が有効なソケット記述子かを確認する（ステップＳ２０１）。  
【００６６】
ＹＥＳであれば、種別を検索キーとして、カスタムＴＣＰ設定２７２を検索し、検索されたエントリよりＲＴＯ最小値２７２２の情報を取得する（ステップＳ２０２）。  
【００６７】
更に、ソケットパラメータ管理表２７１の該当ソケット記述子のエントリに、種別情報およびＲＴＯ最小値２７２２の値を登録する。  
【００６８】
ＮＯであれば、そのまま処理を終了する。
【００６９】
なお、別の実施形態の例として、ステップＳ２０２において、種別を検索キーとして、カスタムＴＣＰ設定２７２を検索し、検索されたエントリよりＲＴＯ最大値２７２３の情報を取得し、ソケットパラメータ管理表２７１の該当ソケット記述子のエントリに、種別情報およびＲＴＯ最大値２７２３の値を登録する、としても良い。
【００７０】
また、別の実施形態の例として、ステップＳ２０２において、種別を検索キーとして、カスタムＴＣＰ設定２７２を検索し、検索されたエントリより初期ウィンドウサイズ２７２４の情報を取得し、ソケットパラメータ管理表２７１の該当ソケット記述子のエントリに、種別情報および初期ウィンドウサイズ２７２４の値を登録する、としても良い。
【００７１】
また、別の実施形態の例として、ステップＳ２０２において、カスタムＴＣＰ設定２７２から取得する情報、および、ソケットパラメータ管理表２７１の該当ソケット記述子のエントリに登録する情報は、ＲＴＯ最小値２７２２と、ＲＴＯ最大値２７２３と、初期ウィンドウサイズ２７２４の、組み合わせ、もしくは全て、としても良い。
【００７２】
図６は、カスタムＴＣＰ制御部２４１で行うカスタムＴＣＰ制御処理のうち、再送タイマ登録処理を例示するフローチャートである。
【００７３】
カスタムＴＣＰ制御部２４１は、まず再送タイマの登録理由をチェックする（ステップＳ３０１）。  
【００７４】
登録理由がＩＰ処理部２５中の出力キューでのパケット廃棄であれば、従来通りの処理として、まずデフォルトＴＣＰ設定２７３を参照し、デフォルトのＲＴＯ最小値を取得する（ステップＳ３０２）。  
【００７５】
当該ＴＣＰのＲＴＴ（ラウンドトリップタイム）から算出されたＲＴＯ値が、デフォルトのＲＴＯ最小値と同じもしくは小さいか、否かをチェックする（ステップＳ３０３）。なお、ＲＦＣ（Request for Comments）２９８８では、ＲＴＴからＲＴＯ値の算出方法の一例が示されている。  
【００７６】
ＹＥＳであれば、デフォルトのＲＴＯ最小値をＲＴＯ値として再送タイマに登録し（ステップＳ３０４）、ＮＯであれば、そのまま処理を終了する。  
【００７７】
Ｓ３０１で、ネットワークでのパケット廃棄であれば、当該ソケット記述子を検索キーとし、ソケットパラメータ管理表２７１よりソケット設定情報を参照する（ステップＳ３０５）。  
【００７８】
当該ＴＣＰのＲＴＴ（ラウンドトリップタイム）から算出されたＲＴＯ値が、ソケット設定情報より得られたＲＴＯ最小値と同じもしくは小さいか、否かをチェックする（ステップＳ３０６）。  
【００７９】
ＹＥＳであれば、ソケット設定情報のＲＴＯ最小値をＲＴＯ値として再送タイマに登録し（ステップＳ３０７）、ＮＯであれば、そのまま処理を終了する。
【００８０】
なお、別の実施形態の例として、ステップＳ３０２ないしＳ３０４、及びＳ３０６ないしＳ３０７において、ＲＴＯ最小値ではなくＲＴＯ最大値を用いても良い。もしくは、ＲＴＯ最小値およびＲＴＯ最大値の両方を用いても良い。
【００８１】
例えば、ＲＴＯ最大値を用いる場合は、ステップＳ３０２では、デフォルトＴＣＰ設定２７３を参照し、デフォルトのＲＴＯ最大値を取得しても良い。
【００８２】
また、ステップＳ３０３では、当該ＴＣＰのＲＴＴから算出されたＲＴＯ値が、デフォルトのＲＴＯ最大値と同じもしくは大きいか、否かをチェックし、ＹＥＳであれば、デフォルトのＲＴＯ最大値をＲＴＯ値として再送タイマに登録し（ステップＳ３０４）、ＮＯであれば、そのまま処理を終了する、としても良い。
【００８３】
また、ステップＳ３０６では、当該ＴＣＰのＲＴＴから算出されたＲＴＯ値が、ソケット設定情報より得られたＲＴＯ最大値と同じもしくは大きいか、否かをチェックし、ＹＥＳであれば、ソケット設定情報のＲＴＯ最大値をＲＴＯ値として再送タイマに登録し（ステップＳ３０７）、ＮＯであれば、そのまま処理を終了する、としても良い。
【００８４】
図７は、ＴＣＰ中継処理の一例を例示するシーケンス図である。ここでは、Ｓ１０３の処理において、待ち受けポートへのＴＣＰ接続はカスタム対象であるとした場合のシーケンスとしている。ステップＳ１０１〜Ｓ１０２は図４と同じである。  
【００８５】
待ち受けポートへのＴＣＰ接続はカスタム対象としたため、カスタム設定ＡＰＩ呼び出しを行う（ステップＳ４０１）。  
【００８６】
クライアント装置１０からデータを受信する（ステップＳ１０５）。  
【００８７】
受信したデータの内容に従い、サーバ装置３０にＴＣＰ接続を行う（ステップＳ１０６）。  
【００８８】
クライアント装置１０及びサーバ装置３０とのＴＣＰデータを中継する（ステップＳ１０９）。  
【００８９】
中継が終了すると、クライアント装置１０及びサーバ装置３０とのＴＣＰ接続を切断し（ステップＳ１１０）、ＴＣＰ中継処理を終了する。
【００９０】
以上のように、本実施の形態では、携帯電話とサーバ間にＴＣＰを終端および中継する中継装置を設置して、サーバとはデフォルトのＴＣＰ送信制御を、携帯電話とは無線に適したＴＣＰ送信制御を行う際に、ＴＣＰ接続単位などで細かく制御することができる、という効果を有する。また、受信側端末の属するネットワークの判定が容易になる、という効果を有する。さらに、ＴＣＰ再送タイムアウトの最小値を大きく設定した場合に、ネットワークが輻輳していない場合でも、パケットがなかなか再送されず、ＴＣＰ接続が滞留してしまうという現象を抑制できる。
【００９１】
なお、上記実施形態は一例であり、開示に限定されず、種々の変形や応用が可能である。
【符号の説明】
【００９２】
１０：クライアント端末、２０：ＴＣＰ中継装置、２１：ＴＣＰ中継処理部、２２：その他の通信処理部、２３：ソケットＡＰＩ処理部、２４：ＴＣＰ処理部、２５：ＩＰ処理部、２６：ネットワークインタフェース処理部、２７：ＴＣＰ情報管理領域、３０：サーバ装置、４０：ローカルエリアネットワーク（LAN）、５０：無線網Ａ、６０：有線網Ａ、２３１：カスタム設定ＡＰＩ、２４１：カスタムＴＣＰ制御部、２５１：出力キュー、２７１：ソケットパラメータ管理表、２７２：カスタムＴＣＰ設定、２７３：デフォルトＴＣＰ設定、１０００：コンピュータ、１００１：ＣＰＵ、１００２：主記憶装置、１００３：読取装置、１００４：通信装置、１００５：外部記憶装置、１００６：入出力装置、１００７：内部バス、１００８：可搬記憶媒体、１０１０：ローカルエリアネットワーク（LAN）
【図１】
0005923376.tif 000002
【図２】
0005923376.tif 000003
【図３】
0005923376.tif 000004
【図４】
0005923376.tif 000005
【図５】
0005923376.tif 000006
【図６】
0005923376.tif 000007
【図７】
0005923376.tif 000008
【図８】
0005923376.tif 000009