(57)【特許請求の範囲】
【請求項１】
ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末とサーバとの間で送受信されるパケットを受信する受信部と、
前記受信部が受信するパケットのうち、前記ユーザ端末から前記サーバへ送信されるＳＹＮパケットをバッファに振り分けるパケット識別部と、
前記サーバが確立しているコネクションの空き状況、または、前記サーバが確立したコネクション数を監視する監視部と、
前記監視部によって監視されたコネクションの空き状況、または、前記コネクション数が所定の条件を満たした場合に、ＳＹＮパケットの受付が可能であるか否かを示す情報を通知する通知部と、
前記通知部によって通知された情報に基づいて、前記バッファに格納されるＳＹＮパケットの前記サーバへの送信を制御する送信部と、
前記受信部が受信したパケットが所定の条件を満たす場合に、前記バッファに格納されるＳＹＮパケットを破棄するバッファ管理部と、
を備えることを特徴とする通信制御システム。
【請求項２】
ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末とサーバとの間で送受信されるパケットを受信する受信部と、
前記受信部が受信するパケットのうち、前記ユーザ端末から前記サーバへ送信されるＳＹＮパケットをバッファに振り分けるパケット識別部と、
前記サーバのコネクションの空き状況を監視し、該空きがあるコネクション数を特定する監視部と、
前記監視部によって特定された空きがあるコネクション数を通知する通知部と、
前記通知部から通知された空きがあるコネクション数が１以上である場合には、前記バッファに格納されるＳＹＮパケットを前記サーバへ送信する送信部と、
前記受信部が受信したパケットが所定の条件を満たす場合に、前記バッファに格納されるＳＹＮパケットを破棄するバッファ管理部と、
を備えることを特徴とする通信制御システム。
【請求項３】
ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末とサーバとの間で送受信されるパケットを受信する受信部と、
前記受信部が受信するパケットのうち、前記ユーザ端末から前記サーバへ送信されるＳＹＮパケットをバッファに振り分けるパケット識別部と、
前記サーバが確立したコネクション数を監視し、該コネクション数が上限に到達しているかを判定する監視部と、
前記監視部によってコネクション数が上限に到達していると判定された場合には、ＳＹＮパケットを受け付けることができないことを示す通知であって、タイマ値が設定された通知を通知する通知部と、
前記通知部からＳＹＮパケットを受け付けることがないことを示す通知を受信すると、該通知に設定されたタイマ値の時間を経過した後に、前記バッファに格納されるＳＹＮパケットを前記サーバへ送信する送信部と、
前記受信部が受信したパケットが所定の条件を満たす場合に、前記バッファに格納されるＳＹＮパケットを破棄するバッファ管理部と、
を備えることを特徴とする通信制御システム。
【請求項４】
前記バッファ管理部は、前記受信部が受信したパケットのうち、前記サーバから前記ユーザ端末に送信されるＳＹＮ／ＡＣＫパケットのシーケンス番号が、前記バッファに格納されるＳＹＮパケットのシーケンス番号と同一である場合、前記バッファに格納されるＳＹＮパケットを破棄することを特徴とする請求項１〜３のいずれか一つに記載の通信制御システム。
【請求項５】
ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末とサーバとの間の通信を制御する通信制御方法であって、
前記ユーザ端末と前記サーバとの間で送受信されるパケットを受信する受信工程と、
前記受信工程が受信するパケットのうち、前記ユーザ端末から前記サーバへ送信されるＳＹＮパケットをバッファに振り分けるパケット識別工程と、
前記サーバが確立しているコネクションの空き状況、または、前記サーバが確立したコネクション数を監視する監視工程と、
前記監視工程によって監視されたコネクションの空き状況、または、前記コネクション数が所定の条件を満たした場合に、ＳＹＮパケットの受付が可能であるか否かを示す情報を前記バッファに通知する通知工程と、
前記通知工程によって通知された情報に基づいて、前記バッファに格納されるＳＹＮパケットの前記サーバへの送信を制御する送信工程と、
前記受信工程が受信したパケットが所定の条件を満たす場合に、前記バッファに格納されるＳＹＮパケットを破棄するバッファ管理工程と、
を含んだことを特徴とする通信制御方法。
【請求項６】
ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末とサーバとの間の通信を制御する通信制御方法であって、
前記ユーザ端末とサーバとの間で送受信されるパケットを受信する受信工程と、
前記受信工程が受信するパケットのうち、前記ユーザ端末から前記サーバへ送信されるＳＹＮパケットをバッファに振り分けるパケット識別工程と、
前記サーバのコネクションの空き状況を監視し、該空きがあるコネクション数を特定する監視工程と、
前記監視工程によって特定された空きがあるコネクション数を通知する通知工程と、
前記通知工程から通知された空きがあるコネクション数が１以上である場合には、前記バッファに格納されるＳＹＮパケットを前記サーバへ送信する送信工程と、
前記受信工程が受信したパケットが所定の条件を満たす場合に、前記バッファに格納されるＳＹＮパケットを破棄するバッファ管理工程と、
を含んだことを特徴とする通信制御方法。
【請求項７】
ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末とサーバとの間の通信を制御する通信制御方法であって、
前記ユーザ端末とサーバとの間で送受信されるパケットを受信する受信工程と、
前記受信工程が受信するパケットのうち、前記ユーザ端末から前記サーバへ送信されるＳＹＮパケットをバッファに振り分けるパケット識別工程と、
前記サーバが確立したコネクション数を監視し、該コネクション数が上限に到達しているかを判定する監視工程と、
前記監視工程によってコネクション数が上限に到達していると判定された場合には、ＳＹＮパケットを受け付けることができないことを示す通知であって、タイマ値が設定された通知を通知する通知工程と、
前記通知工程からＳＹＮパケットを受け付けることがないことを示す通知を受信すると、該通知に設定されたタイマ値の時間を経過した後に、前記バッファに格納されるＳＹＮパケットを前記サーバへ送信する送信工程と、
前記受信工程が受信したパケットが所定の条件を満たす場合に、前記バッファに格納されるＳＹＮパケットを破棄するバッファ管理工程と、
を含んだことを特徴とする通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御システムおよび通信制御方法に関する。
【背景技術】
【０００２】
従来、ＴＣＰ（Transmission  Control  Protocol）を用いた情報通信が広く利用されている。ＴＣＰを利用して、ユーザ端末とアプリケーション（ＡＰＬ）サーバとの間で通信を実行する際には、通常、スリーウェイハンドシェイクと呼ばれる処理が実行される。スリーウェイハンドシェイクにおいては、まず、一方の情報処理装置が他方の情報処理装置に通信接続（コネクション）の確立を要求するＳＹＮ（Synchronization）パケットを送信する。他方の情報処理装置は、ＳＹＮパケットに応じて接続を許可するためＳＹＮ−ＡＣＫ（Acknowledgement）パケットを送信する。ＳＹＮ−ＡＣＫパケットを受信した一方の情報処理装置が接続開始を示すＡＣＫパケットを送信する。これで、ＴＣＰを用いた通信が開始する。また、このようなＴＣＰ通信において、ＳＹＮパケットのみを選択的にバッファリングし、レートリミットをかける方法が提案されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】木村明寛、西山聡史、大坂健、工藤伊知郎、“ＩｏＴサービス提供のためのサーバ数を削減するＮＷ機能の提案”、［online］、［平成２８年２月５日検索］、  インターネット＜http://ci.nii.ac.jp/naid/40020429786＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、ＡＰＬサーバの利用効率を高めるためには、ＡＰＬサーバでコネクションが解放される速度（コネクション解放レート）を考慮し、パケットバッファ機能部の送信レートを適切な値に設定する必要があり、コネクション解放レートを測定するのに手間がかかるという課題があった。
【０００５】
また、ＡＰＬサーバの使用率が低下したり、コネクション確率までに時間が掛かったりする場合があった。例えば、コネクション継続時間にばらつきがあり、コネクション解放レートが変動する場合、送信レートを固定値にするとサーバの利用効率低下やコネクション確立までの所要時間増加につながる。
【０００６】
つまり、コネクション継続時間が短い場合には、コネクション解放レートが送信レートを上回ると、ＡＰＬサーバはコネクションを確立できるにもかかわらずＳＹＮパケットが到着しない状況となり、ＡＰＬサーバの利用効率が低下する。また、コネクション継続時間が長びく場合には、コネクション解放レートが送信レートを下回ると、ＡＰＬサーバでＳＹＮパケットが破棄され、ユーザ端末がコネクションを確立できる機会が次回のパケット再送以降になり、コネクション確立までの所要時間が増加する。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明の通信制御システムは、ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末とサーバとの間で送受信されるパケットを受信する受信部と、前記受信部が受信するパケットのうち、前記ユーザ端末から前記サーバへ送信されるＳＹＮパケットをバッファに振り分けるパケット識別部と、前記バッファに格納されるＳＹＮパケットを前記サーバに所定の時間間隔で繰り返し送信する送信部と、前記受信部が受信したパケットが所定の条件を満たす場合に、前記バッファに格納されるＳＹＮパケットを破棄するバッファ管理部と、を備えることを特徴とする。
【０００８】
また、本発明の通信制御システムは、ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末とサーバとの間で送受信されるパケットを受信する受信部と、前記受信部が受信するパケットのうち、前記ユーザ端末から前記サーバへ送信されるＳＹＮパケットをバッファに振り分けるパケット識別部と、前記サーバが確立しているコネクションの状態を監視する監視部と、前記監視部によって監視されたコネクションの状態が所定の条件を満たした場合に、ＳＹＮパケットの受付が可能であるか否かを示す情報を通知する通知部と、前記通知部によって通知された情報に基づいて、前記バッファに格納されるＳＹＮパケットの前記サーバへの送信を制御する送信部と、前記受信部が受信したパケットが所定の条件を満たす場合に、前記バッファに格納されるＳＹＮパケットを破棄するバッファ管理部と、を備えることを特徴とする。
【０００９】
また、本発明の通信制御方法は、ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末とサーバとの間の通信を制御する通信制御方法であって、前記ユーザ端末と前記サーバとの間で送受信されるパケットを受信する受信工程と、前記受信工程が受信するパケットのうち、前記ユーザ端末から前記サーバへ送信されるＳＹＮパケットをバッファに振り分けるパケット識別工程と、前記バッファに格納されるＳＹＮパケットを前記サーバに所定の時間間隔で繰り返し送信する送信工程と、前記受信工程が受信したパケットが所定の条件を満たす場合に、前記バッファに格納されるＳＹＮパケットを破棄するバッファ管理工程と、を含んだことを特徴とする。
【００１０】
また、本発明の通信制御方法は、ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末とサーバとの間の通信を制御する通信制御方法であって、前記ユーザ端末と前記サーバとの間で送受信されるパケットを受信する受信工程と、前記受信工程が受信するパケットのうち、前記ユーザ端末から前記サーバへ送信されるＳＹＮパケットをバッファに振り分けるパケット識別工程と、前記サーバが確立しているコネクションの状態を監視する監視工程と、前記監視工程によって監視されたコネクションの状態が所定の条件を満たした場合に、ＳＹＮパケットの受付が可能であるか否かを示す情報を前記バッファに通知する通知工程と、前記通知工程によって通知された情報に基づいて、前記バッファに格納されるＳＹＮパケットの前記サーバへの送信を制御する送信工程と、前記受信工程が受信したパケットが所定の条件を満たす場合に、前記バッファに格納されるＳＹＮパケットを破棄するバッファ管理工程と、を含んだことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、コネクション解放レートを用いることなく、ＡＰＬサーバの使用率が低下したり、コネクション確率までに時間が掛かったりすることができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、第１の実施形態に係る通信制御システムの構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る通信制御装置の構成の一例を示す図である。
【図３】図３は、第１の実施形態に係る通信制御システムにおける処理の流れの一例を示すシーケンス図である。
【図４】図４は、第１の実施形態に係る通信制御システムにおける処理の流れの一例を示すシーケンス図である。
【図５】図５は、第２の実施形態に係る通信制御装置の構成の一例を示す図である。
【図６】図６は、第２の実施形態に係るサーバの構成の一例を示す図である。
【図７】図７は、第２の実施形態に係る通信制御システムにおける処理の流れの一例を示すシーケンス図である。
【図８】図８は、第２の実施形態に係る通信制御システムにおける処理の流れの一例を示すシーケンス図である。
【図９】図９は、第３の実施形態に係る通信制御装置の構成の一例を示す図である。
【図１０】図１０は、第３の実施形態に係るサーバの構成の一例を示す図である。
【図１１】図１１は、第３の実施形態に係る通信制御システムにおける処理の流れの一例を示すシーケンス図である。
【図１２】図１２は、第３の実施形態に係る通信制御システムにおける処理の流れの一例を示すシーケンス図である。
【図１３】図１３は、各実施形態に係る通信制御装置の機能を複数の装置上に実装する例を説明するための図である。
【図１４】図１４は、ユーザ端末からＡＰＬサーバにＳＹＮパケットが送信される場合の処理の例を説明するための図である。
【図１５】図１５は、通信制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願に係る通信制御システムおよび通信制御方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態により本願に係る通信制御システムおよび通信制御方法が限定されるものではない。
【００１４】
（既存の手法によるＳＹＮパケット送信処理の一例）
まず、図１４を参照し、実施形態に係る通信制御システム及び通信制御方法の前提として、従来のＴＣＰを用いたコネクションの確立処理について説明する。図１４は、ユーザ端末からＡＰＬサーバにＳＹＮパケットが送信される場合の処理の例を説明するための図である。
【００１５】
図１４の例では、ネットワークＡを介してユーザ端末１〜４が、ＡＰＬサーバ５と接続される。また、ユーザ端末１〜４とＡＰＬサーバ５との間には、転送装置６、バッファ７および送信レート制御装置８が接続されている。
【００１６】
ユーザ端末１〜４は、それぞれネットワークＡを介してＡＰＬサーバ５と通信を開始するに当たり、まずコネクションを確立するためにＳＹＮパケットを送信する。ＡＰＬサーバ５は、ＳＹＮパケットに対する応答確認としてＡＣＫパケットを送り返す。ユーザ端末１〜４は、ＡＣＫパケットを受信すると、コネクションが確立したものとみなし、受信したＡＣＫパケットに対する応答としてＡＣＫパケットをＡＰＬサーバ５に送信する。また、ユーザ端末１〜４は、ＡＰＬサーバ５に対してＡＰＬ層パケットを送信する。図１４中、ユーザ端末ｎが送信するＳＹＮパケットはＳＹＮ（ｎ）と表示する。また、ユーザ端末ｎが送信するＡＣＫパケットはＡＣＫ（ｎ）と表示する。また、ユーザ端末ｎが送信するＡＰＬ層パケットはＡＰＬ（ｎ）と表示する。
【００１７】
送信されるＳＹＮパケットには各々、シーケンス番号が付与される。たとえば、ユーザ端末１が送信するＳＹＮパケットにはシーケンス番号「１」が付与される。シーケンス番号「１」のＳＹＮパケットに応答してＡＰＬサーバ５が送信する確認応答であるＡＣＫパケットのシーケンス番号も「１」となる。
【００１８】
転送装置６は、ユーザ端末１〜４が送信するパケットを受信し、ＳＹＮパケットを抽出してバッファ７に格納する。転送装置６は、ＳＹＮパケット以外のパケットたとえばＡＰＬ層パケットやＡＣＫパケットはバッファ７に格納せずにそのままＡＰＬサーバ５に送信する。
【００１９】
バッファ７は、ＦＩＦＯ（First  In  First  Out）メモリである。バッファ７に格納されたＳＹＮパケットは、送信レート制御装置８によって所定の送信レートでバッファ７からＡＰＬサーバ５に送信される。
【００２０】
ユーザ端末１〜４は、ＳＹＮパケットを送信した後、所定時間が経過してもＳＹＮパケットに応答するＡＣＫパケットを受信しない場合、ＳＹＮパケットを再送する。ＴＣＰにおいてＳＹＮパケットを再送する再送間隔の初期値は、各ユーザ端末の実装に依存して決定される。たとえば、Ｗｉｎｄｏｗｓ（登録商標）系のオペレーションシステム（ＯＳ）であれば３秒、Ｌｉｎｕｘ（登録商標）系のＯＳであれば１秒である。２回目以降の再送間隔はＲＦＣ（Request  for  Comments）に規定されるＴＣＰの再送アルゴリズムに従って設定される。２回目以降の再送間隔はたとえば、前の再送間隔の２倍に設定される。転送装置６は、初回のＳＹＮパケットと再送パケットとを区別せず、すべてバッファ７に振り分ける。
【００２１】
ＡＰＬサーバ５は、ＳＹＮパケットを受信すると、確立済みのコネクション数が予め定めた上限に達していない場合、ＡＰＬ層パケット処理用のリソースを確保して、ＡＣＫパケットを送信する。ＡＰＬサーバ５は、確立済みのコネクション数が予め定めた上限に達している場合、ＳＹＮパケットを破棄し、ＡＣＫパケットは送信しない。
【００２２】
（第１の実施形態）
図１は、第１の実施形態に係る通信制御システムの構成の一例を示す図である。第１の実施形態に係る通信制御システム１Ａにおいては、通信制御装置１０は、ユーザ端末２０Ａ，２０Ｂ，２０Ｃ，２０ＤおよびＡＰ（Access  Point）３０と、ネットワーク４０を介して接続される。ユーザ端末２０Ｂ，２０Ｃ，２０Ｄは、ＡＰ３０およびネットワーク４０を介して通信制御装置１０と接続される。また、通信制御装置１０は、サーバ５０とネットワーク６０を介して接続される。なお、図１に示す構成は一例にすぎず、通信制御装置１０が、ユーザ端末２０Ａ，２０Ｂ，２０Ｃ，２０Ｄとサーバ５０とを接続するネットワーク上に配置されればよく、具体的な構成や各装置の数は特に限定されない。
【００２３】
ユーザ端末２０Ａ，２０Ｂ，２０Ｃ，２０Ｄはネットワーク４０，６０を介してサーバ５０との間で情報の送受信を行う。ユーザ端末２０Ａ，２０Ｂ，２０Ｃ，２０Ｄはたとえば、ＩｏＴ（Internet  of  Things）端末またはＭ２Ｍ（Machine  to  Machine）端末等である。
【００２４】
ＡＰ３０は、ユーザ端末２０Ｂ，２０Ｃ，２０Ｄからの接続要求を受け付け、ネットワーク４０への通信を仲介する機器である。なお、ＡＰ３０は、ＩｏＴゲートウェイやＭ２Ｍゲートウェイ等のゲートウェイであってもよい。
【００２５】
ネットワーク４０，６０はたとえば、インターネット、イントラネット、ローカルエリアネットワーク（ＬＡＮ（Local  Area  Network））、ワイドエリアネットワーク（ＷＡＮ（Wide  Area  Network））等である。また、ネットワーク４０，６０は無線ネットワークであっても有線ネットワークであっても両者の組み合わせであってもよい。
【００２６】
サーバ５０は、ユーザ端末２０Ａ，２０Ｂ，２０Ｃ，２０Ｄとの間でコネクションを確立し、情報の送受信を行う。サーバ５０はたとえばＡＰＬサーバである。
【００２７】
（通信制御装置の構成の一例）
図２は、第１の実施形態に係る通信制御装置の構成の一例を示す図である。通信制御装置１０は、図１に示すように、ユーザ端末２０Ａ，２０Ｂ，２０Ｃ，２０Ｄとサーバ５０との間の通信経路上に配置される。通信制御装置１０は、ユーザ端末２０Ａ，２０Ｂ，２０Ｃ，２０Ｄとサーバ５０との間の通信を制御する。たとえば、通信制御装置１０は、ユーザ端末２０Ａ，２０Ｂ，２０Ｃ，２０Ｄから送信されるＳＹＮパケットをサーバ５０に転送する。また、通信制御装置１０は、ユーザ端末２０Ａ，２０Ｂ，２０Ｃ，２０Ｄから再送されるＳＹＮパケットによる、サーバ５０とユーザ端末２０Ａ，２０Ｂ，２０Ｃ，２０Ｄ間の単位時間当たりのコネクション数の減少を抑制するよう通信を制御する。
【００２８】
図２に示すように通信制御装置１０は、通信部１１０と、制御部１２０と、記憶部１３０と、を備える。通信部１１０は、ネットワーク４０，６０を介して送信される情報を送受信する。
【００２９】
制御部１２０は、通信制御装置１０の各部の処理を制御する。制御部１２０はたとえば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）等で構成することができる。制御部１２０は、受信部１２１、パケット識別部１２２と、送信部１２３、およびバッファ管理部１２４を有する。
【００３０】
受信部１２１は、ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末２０とサーバ５０との間で送受信されるパケットを、通信部１１０を介して受信する。
【００３１】
パケット識別部１２２は、受信部１２１が受信するパケットのうち、ユーザ端末２０からサーバ５０へ送信されるＳＹＮパケットをバッファ１３１に振り分ける。具体的には、パケット識別部１２２は、通信部１１０を介して受信部１２１が受信するパケットのうち、ユーザ端末２０Ａ，２０Ｂ，２０Ｃ，２０Ｄからサーバ５０宛に送信されるＳＹＮパケットを識別する。
【００３２】
そして、パケット識別部１２２は、識別したＳＹＮパケットを後述するバッファ１３１に格納する。また、パケット識別部１２２は、ＳＹＮパケット以外のパケットを、通信部１１０を介して宛先に送信する。パケット識別部１２２は、送信元ＩＰアドレス、送信先ＩＰアドレス等からユーザ端末２０Ａ〜２０Ｄおよびサーバ５０を識別する。また、パケット識別部１２２は、パケットのＴＣＰヘッダのＳＹＮフラグに基づきＳＹＮパケットを識別する。
【００３３】
送信部１２３は、バッファ１３１に格納されるＳＹＮパケットを、通信部１１０を介してサーバ５０に所定の時間間隔で繰り返し送信する。具体的には、送信部１２３は、バッファの先頭パケットをサーバ５０に所定の時間間隔で繰り返し送信する。また、送信部１２３は、予め設定されたウィンドウサイズ分のＳＹＮパケットをサーバ５０に所定の時間間隔で繰り返し送信するようにしてもよい。
【００３４】
バッファ管理部１２４は、パケット識別部１２２が識別したＳＹＮパケットを受信した順番にバッファ１３１に格納する。また、バッファ管理部１２４は、受信部１２１が受信したパケットが所定の条件を満たす場合に、バッファ１３１に格納されるＳＹＮパケットを破棄する。例えば、送信部１２３は、サーバ５０からユーザ端末２０に送信されるＳＹＮ／ＡＣＫ（Acknowledgement）パケットのシーケンス番号が、バッファ１３１に格納されるＳＹＮパケットのシーケンス番号と同一である場合、バッファ１３１に格納されるＳＹＮパケットを破棄する。
【００３５】
記憶部１３０は、通信制御装置１０における各部の処理に使用する情報や処理の結果生成される情報を記憶する。記憶部１３０はたとえば、ハードディスク、光ディスク等の記憶装置でもよい。また、記憶部１３０は、ＲＡＭ（Random  Access  Memory）やフラッシュメモリ等の半導体メモリであってもよい。記憶部１３０はバッファ１３１を有する。
【００３６】
バッファ１３１は、パケット識別部１２２が識別したＳＹＮパケットを格納する。たとえばバッファ１３１は、ＦＩＦＯ（First  In  First  Out）メモリである。バッファ１３１は、パケット識別部１２２が識別したＳＹＮパケットを受信した順番に格納する。格納されたＳＹＮパケットは、先に格納されたパケットから順に所定の送信レートで通信部１１０を介してサーバ５０に送信される。
【００３７】
（第１の実施形態の通信制御処理の流れの一例）
図３は、第１の実施形態に係る通信制御システムにおける処理の流れの一例を示すシーケンス図である。図３に示すように、ユーザ端末＃１がＳＹＮ＃１パケットをパケット識別部１２２を介してバッファ管理部１２４に通知し、ユーザ端末＃２がＳＹＮ＃２パケットをパケット識別部１２２を介してバッファ管理部１２４に通知する(ステップＳ１０１〜Ｓ１０４)。バッファ管理部１２４は、パケット識別部１２２が識別したＳＹＮ＃１パケットおよびＳＹＮ＃２パケットを受け取ると、バッファ１３１に格納する。
【００３８】
そして、送信部１２３（図示せず）は、バッファ１３１に格納されるＳＹＮ＃１パケットを、通信部１１０を介してサーバ５０に所定の時間間隔で繰り返し送信する（ステップＳ１０５）。図３の例に示すように、サーバ５０側においてコネクション数が上限に到達しており、コネクションに空きがない場合には、ＳＹＮ＃１パケットは破棄されるが、コネクションが解放されてコネクションに空きがある場合には、サーバ５０は、ＳＹＮ／ＡＣＫパケット＃１をパケット識別部１２２に送信する（ステップＳ１０６）。
【００３９】
パケット識別部１２２は、ＳＹＮ／ＡＣＫパケット＃１を受信すると、ＳＹＮ／ＡＣＫパケット＃１をコピーして、ユーザ端末＃１にＳＹＮ／ＡＣＫパケット＃１を転送する（ステップＳ１０７）。その後、ユーザ端末＃１は、ＡＣＫ＃１パケットをサーバ５０宛てに送信して（ステップＳ１０８）、コネクションを確立する処理を行う（図示省略）。
【００４０】
また、送信部１２３が、ＳＹＮ＃１パケットを、通信部１１０を介してサーバ５０に所定の時間間隔で繰り返し送信し続けている（ステップＳ１０９）。サーバ５０は、ＳＹＮ＃１パケットを受け付けると、応答済みＳＹＮパケットとシーケンス番号が重複するため、ＳＹＮ＃１パケットを破棄する。また、パケット識別部１２２は、ＳＹＮ／ＡＣＫパケット＃１をバッファ管理部１２４に送信する（ステップＳ１１０）。
【００４１】
パケット管理部１２４は、ＳＹＮ／ＡＣＫパケット＃１とシーケンス番号が一致するＳＹＮ＃１パケットをバッファから削除する。その後、送信部１２３は、ＳＹＮ＃１パケットがバッファから削除されたことにより、バッファの先頭パケットであるＳＹＮ＃２パケットを、通信部１１０を介してサーバ５０に所定の時間間隔で繰り返し送信する（ステップＳ１１１）。
【００４２】
また、通信制御装置１０は、図４に例示するように、予め設定されたウィンドウサイズ分のＳＹＮパケットをサーバ５０に所定の時間間隔で繰り返し送信するようにしてもよい。図４に示すように、ユーザ端末＃１がＳＹＮ＃１パケットをパケット識別部１２２を介してバッファ管理部１２４に通知し、ユーザ端末＃２がＳＹＮ＃２パケットをパケット識別部１２２を介してバッファ管理部１２４に通知する(ステップＳ２０１〜Ｓ２０４)。
【００４３】
そして、送信部１２３（図示せず）は、バッファ１３１からウィンドウサイズ分のＳＹＮパケットをサーバ５０に送信する。図４の例では、ウィンドウサイズが「２」であり、バッファ１３１に格納されるＳＹＮ＃１パケットおよびＳＹＮ＃２パケットを、通信部１１０を介してサーバ５０に所定の時間間隔で繰り返し送信する（ステップＳ２０５）。図４の例に示すように、サーバ５０側においてコネクション数が到達しており、コネクションに空きがない場合には、ＳＹＮ＃１パケットおよびＳＹＮ＃２パケットは破棄されるが、コネクションが解放されてコネクションに空きがある場合には、サーバ５０は、ＳＹＮ＃１パケットおよびＳＹＮ＃２パケットを受信した後（ステップＳ２０６、Ｓ２０７）、ＳＹＮ／ＡＣＫパケット＃１およびＳＹＮ／ＡＣＫパケット＃２をパケット識別部１２２に送信する（ステップＳ２０８、Ｓ２０９）。
【００４４】
パケット識別部１２２は、ＳＹＮ／ＡＣＫパケット＃１およびＳＹＮ／ＡＣＫパケット＃２を受信すると、ＳＹＮ／ＡＣＫパケット＃１およびＳＹＮ／ＡＣＫパケット＃２をコピーして、ユーザ端末＃１にＳＹＮ／ＡＣＫパケット＃１を転送し（ステップＳ２１０）、ユーザ端末＃２にＳＹＮ／ＡＣＫパケット＃２を転送する（ステップＳ２１１）。
【００４５】
その後、ユーザ端末＃１は、ＡＣＫ＃１パケットをサーバ５０宛てに送信し（ステップＳ２１２）、ユーザ端末＃２は、ＡＣＫ＃２パケットをサーバ５０宛てに送信し（ステップＳ２１３）、それぞれコネクションを確立する処理を行う（図示省略）。また、バッファ管理部１２４が、ＳＹＮ＃１パケットおよびＳＹＮ＃２パケットを、通信部１１０を介してサーバ５０に所定の時間間隔で繰り返し送信し続けている（ステップＳ２１４、Ｓ２１５）。サーバ５０は、ＳＹＮ＃１パケットおよびＳＹＮ＃２パケットを受け付けると、応答済みＳＹＮパケットとシーケンス番号が重複するため、ＳＹＮ＃１パケットおよびＳＹＮ＃２パケットを破棄する。
【００４６】
そして、バッファ管理部１２４が、ＳＹＮ／ＡＣＫパケット＃１およびＳＹＮ／ＡＣＫパケット＃２をパケット識別部１２２から受信すると（ステップＳ２１６、Ｓ２１７）、ＳＹＮ／ＡＣＫパケット＃１およびＳＹＮ／ＡＣＫパケット＃２とシーケンス番号が一致するＳＹＮ＃１パケットおよびをＳＹＮ＃２パケットをバッファ１３１から削除する。
【００４７】
このように、ウィンドウサイズを設け、ウィンドウサイズ分のＳＹＮパケットを繰り返し送ることで、ＡＣＫを待たずに異なる複数のユーザ端末からのＳＹＮパケットを送信できるため、コネクションに複数の空きがある場合にサーバ５０の利用効率を向上できる。
【００４８】
（第１の実施形態の効果）
第１の実施形態に係る通信制御システムの通信制御装置１０は、ネットワーク上でＴＣＰを用いてコネクションを確立するユーザ端末とサーバとの間で送受信されるパケットを受信し、受信するパケットのうち、ユーザ端末２０からサーバへ送信されるＳＹＮパケットをバッファ１３１に振り分ける。そして、通信制御装置１０は、バッファ１３１に格納されるＳＹＮパケットをサーバ５０に所定の時間間隔で繰り返し送信する。また、通信制御装置１０は、受信したパケットが所定の条件を満たす場合に、バッファ１３１に格納されるＳＹＮパケットを破棄する。このため、通信制御システムでは、コネクション解放レートを用いることなく、ＡＰＬサーバの使用率が低下したり、コネクション確率までに時間が掛かったりすることができる。
【００４９】
つまり、第１の実施形態に係る通信制御システムの通信制御装置１０は、バッファ１３１のＳＹＮパケットを繰り返し送信する。これにより、コネクション解放後、新たなコネクションをすばやく確立させ、サーバの利用効率を向上できる。
【００５０】
（第２の実施形態）
第１の実施形態においては、通信制御装置１０は、バッファ１３１に格納されるＳＹＮパケットを、通信部１１０を介してサーバ５０に所定の時間間隔で繰り返し送信するものとした。第２の実施形態の通信制御システムは、サーバ５０Ａ側でコネクションの空き状況を監視し、コネクションが空き状況を通信制御装置１０Ａに通知する。以下では、第２の実施形態の通信制御システムについて説明するが、第１の実施形態と同様の構成および処理については説明を省略する。
【００５１】
図５は、第２の実施形態に係る通信制御装置の構成の一例を示す図である。制御部１２０の送信部１２３Ａは、サーバ５０Ａによって通知された情報に基づいて、バッファ１３１に格納されるＳＹＮパケットのサーバ５０Ａへの送信を制御する。具体的には、送信部１２３Ａは、サーバ５０Ａから通知された空きがあるコネクション数が１以上である場合には、バッファ１３１に格納されるＳＹＮパケットをサーバ５０Ａへ送信する。
【００５２】
図６は、第２の実施形態に係るサーバの構成の一例を示す図である。図６に示すように、サーバ５０Ａは、通信部５１０と、制御部５２０と、記憶部５３０と、を備える。通信部５１０は、ネットワーク６０を介して送信される情報を送受信する。
【００５３】
制御部５２０は、サーバ５０Ａの各部の処理を制御する。制御部５２０はたとえば、ＣＰＵ、ＭＰＵや、ＡＳＩＣ等で構成することができる。制御部５２０は、監視部５２１Ａおよび通知部５２２Ａを有する。
【００５４】
監視部５２１Ａは、サーバ５０Ａが確立しているコネクションの状態を監視する。具体的には、監視部５２１Ａは、一定時間経過するごとに、または、コネクション解放を契機に、サーバ５０Ａのコネクションの空き状況を監視し、該空きがあるコネクション数を特定する。なお、以下では、一定時間経過するごとに、サーバ５０Ａのコネクションの空き状況を監視し、該空きがあるコネクション数を特定する場合を例に説明する。
【００５５】
通知部５２２Ａは、監視部５２１Ａによって監視されたコネクションの状態が所定の条件を満たした場合に、ＳＹＮパケットの受付が可能であるか否かを示す情報を通知する。具体的には、通知部５２２Ａは、監視部５２１Ａによって特定された空きがあるコネクション数を通知する。
【００５６】
記憶部５３０は、サーバ５０Ａにおける各部の処理に使用する情報や処理の結果生成される情報を記憶する。記憶部５３０はたとえば、ハードディスク、光ディスク等の記憶装置でもよい。また、記憶部５３０は、ＲＡＭやフラッシュメモリ等の半導体メモリであってもよい。
【００５７】
（第２の実施形態の通信制御処理の流れの一例）
図７は、第２の実施形態に係る通信制御システムにおける処理の流れの一例を示すシーケンス図である。図７に示すように、サーバ５０Ａは、コネクション数が上限に到達しているため、空きが０であることをバッファ管理部１２４に通知する（ステップＳ３０１）。また、ユーザ端末＃１がＳＹＮ＃１パケットをパケット識別部１２２を介してバッファ管理部１２４に通知し、ユーザ端末＃２がＳＹＮ＃２パケットをパケット識別部１２２を介してバッファ管理部１２４に通知し、ユーザ端末＃３がＳＹＮ＃３パケットをパケット識別部１２２を介してバッファ管理部１２４に通知する（ステップＳ３０２〜Ｓ３０７）。バッファ管理部１２４は、パケット識別部１２２が識別したＳＹＮ＃１パケット、ＳＹＮ＃２およびＳＹＮ＃３パケットを受け取ると、バッファ１３１に格納する。
【００５８】
その後、サーバ５０Ａは、コネクションが解放され、空きが１であることを通信制御装置１０Ａのバッファ管理部１２４に通知する（ステップＳ３０８）。通信制御装置１０Ａが空きが１であることを受け付けると、送信部１２３Ａ（図示せず）が、ＳＹＮ＃１パケットを、通信部１１０を介してサーバ５０Ａに送信し（ステップＳ３０９）、バッファ管理部１２４が、ＳＹＮ＃１パケットをバッファ１３１から削除する。
【００５９】
そして、サーバ５０Ａは、ＳＹＮ／ＡＣＫパケット＃１をパケット識別部１２２に送信する（ステップＳ３１０）。パケット識別部１２２は、ＳＹＮ／ＡＣＫパケット＃１を受信すると、ユーザ端末＃１にＳＹＮ／ＡＣＫパケット＃１を転送する（ステップＳ３１１）。その後、ユーザ端末＃１は、ＡＣＫ＃１パケットをサーバ５０Ａ宛てに送信して（ステップＳ３１２）、コネクションを確立する処理を行う（図示省略）。
【００６０】
その後、サーバ５０Ａは、コネクションが一つ解放されると、空きが１であることを通信制御装置１０Ａのバッファ管理部１２４に通知し（ステップＳ３１３）、さらにもう一つコネクションが解放されると、空きが２であることを通信制御装置１０Ａのバッファ管理部１２４に通知する（ステップＳ３１４）。
【００６１】
通信制御装置１０Ａが空きが２であることを受け付けると、送信部１２３Ａが、ＳＹＮ＃２パケットを、通信部１１０を介してサーバ５０Ａに送信し（ステップＳ３１５）、バッファ管理部１２４が、ＳＹＮ＃２パケットをバッファ１３１から削除し、続いて、ＳＹＮ＃３パケットを、サーバ５０Ａに送信し（ステップＳ３１６）、バッファ管理部１２４が、ＳＹＮ＃３パケットをバッファ１３１から削除する。
【００６２】
その後、同様に、サーバ５０Ａは、ＳＹＮ／ＡＣＫパケット＃２およびＳＹＮ／ＡＣＫパケット＃３をパケット識別部１２２に送信し（ステップＳ３１７、Ｓ３１８）、コネクションを確立する処理を行う（図示省略）。
【００６３】
図７の例では、通信制御装置１０ＡがＳＹＮパケットを送信後すぐにバッファ１３１から削除するため、ＡＰＬにＳＹＮパケットをサーバ５０Ａに送信したにもかかわらずパケットロスが発生した場合には再送できなくなる。このため、パケットロスが発生すると、ユーザ端末がコネクションを確立できる機会が次回のパケット再送以降となり、ユーザ端末のコネクション確立までの所要時間が増加する場合がある。このため、図８に示すように、ＳＹＮ／ＡＣＫパケットをもとにコネクションを監視し、コネクションを確立できるとＳＹＮパケットをバッファから削除するようにしてもよい。
【００６４】
図８に例示するように、サーバ５０Ａは、コネクション数が上限に到達しているため、空きが０であることをバッファ管理部１２４に通知する（ステップＳ４０１）。また、ユーザ端末＃１がＳＹＮ＃１パケットをパケット識別部１２２を介してバッファ管理部１２４に通知し、ユーザ端末＃２がＳＹＮ＃２パケットをパケット識別部１２２を介してバッファ管理部１２４に通知する（ステップＳ４０２〜Ｓ４０５）。バッファ管理部１２４は、パケット識別部１２２が識別したＳＹＮ＃１パケットおよびＳＹＮ＃２パケットを受け取ると、バッファ１３１に格納する。
【００６５】
その後、サーバ５０Ａは、コネクションが解放され、空きが１であることを通信制御装置１０Ａのバッファ管理部１２４に通知する（ステップＳ４０６）。通信制御装置１０Ａが空きが１であることを受け付けると、送信部１２３が、ＳＹＮ＃１パケットを、通信部１１０を介してサーバ５０Ａに送信する（ステップＳ４０７）。ここで、図８の例では、ＳＹＮ＃１パケットがパケットロスしたものとする。
【００６６】
このため、サーバ５０Ａは、再度、空きが１であることを通信制御装置１０Ａのバッファ管理部１２４に通知する（ステップＳ４０８）。通信制御装置１０Ａが空きが１であることを受け付けると、送信部１２３が、再びＳＹＮ＃１パケットを、通信部１１０を介してサーバ５０Ａに送信する（ステップＳ４０９）。
【００６７】
そして、サーバ５０Ａは、ＳＹＮ／ＡＣＫパケット＃１をパケット識別部１２２に送信する（ステップＳ４１０）。パケット識別部１２２は、ＳＹＮ／ＡＣＫパケット＃１を受信すると、ＳＹＮ／ＡＣＫパケット＃１をコピーして、ユーザ端末＃１にＳＹＮ／ＡＣＫパケット＃１を転送する（ステップＳ４１１）。その後、ユーザ端末＃１は、ＡＣＫ＃１パケットをサーバ５０Ａ宛てに送信して（ステップＳ４１２）、コネクションを確立する処理を行う（図示省略）。
【００６８】
また、パケット識別部１２２は、ＳＹＮ／ＡＣＫパケット＃１をバッファ管理部１２４に送信する（ステップＳ４１３）。パケット管理部１２４は、ＳＹＮ／ＡＣＫパケット＃１とシーケンス番号が一致するＳＹＮ＃１パケットをバッファから削除する。
【００６９】
（第２の実施形態の効果）
第２の実施形態に係る通信制御システムでは、サーバ５０Ａが、サーバのコネクションの空き状況を監視し、該空きがあるコネクション数を特定し、特定された空きがあるコネクション数を通信制御装置１０Ａに通知し、通知された空きがあるコネクション数が１以上である場合には、バッファ１３１に格納されるＳＹＮパケットのサーバ５０Ａへ送信する。このため、コネクションに空きがない間のＳＹＮパケット送信を防ぎつつ、新たなコネクションをすばやく確立できるため、サーバの利用効率を向上できる。
【００７０】
（第３の実施形態）
第２の実施形態においては、サーバ５０Ａ側でコネクションの空き状況を監視し、コネクションが空き状況を通信制御装置１０Ａに通知するものとした。第３の実施形態の通信制御システでムは、サーバ５０Ｂ側でサーバ５０Ｂが確立したコネクション数を監視し、コネクション数が上限に到達していると判定された場合には、ＳＹＮパケットを受け付けることがないことを示すバックオフ通知を行う。以下では、第３の実施形態の通信制御システムについて説明するが、第１の実施形態、第２の実施形態と同様の構成および処理については説明を省略する。
【００７１】
図９は、第３の実施形態に係る通信制御装置の構成の一例を示す図である。制御部１２０の送信部１２３Ｂは、通知部からＳＹＮパケットを受け付けることがないことを示す通知を受信すると、サーバ５０Ｂから送信されたバックオフ通知に設定されたタイマ値の時間を経過した後に、バッファ１３１に格納されるＳＹＮパケットをサーバ５０Ｂへ送信する。
【００７２】
図１０は、第３の実施形態に係るサーバの構成の一例を示す図である。サーバ５０Ｂの監視部５２１Ｂは、サーバ５０Ｂが確立したコネクション数を監視し、該コネクション数が上限に到達しているかを判定する。
【００７３】
通知部５２２Ｂは、監視部５２１Ｂによってコネクション数が上限に到達していると判定された場合には、ＳＹＮパケットを受け付けることがないことを示す通知であって、タイマ値が設定されたバックオフ通知を通知する。
【００７４】
（第３の実施形態の通信制御処理の流れの一例）
図１１は、第３の実施形態に係る通信制御システムにおける処理の流れの一例を示すシーケンス図である。図１１に示すように、ユーザ端末＃１がＳＹＮ＃１パケットをパケット識別部１２２を介してバッファ管理部１２４に通知し、ユーザ端末＃２がＳＹＮ＃２パケットをパケット識別部１２２を介してバッファ管理部１２４に通知し、ユーザ端末＃３がＳＹＮ＃３パケットをパケット識別部１２２を介してバッファ管理部１２４に通知する（ステップＳ５０１〜Ｓ５０６）。バッファ管理部１２４は、パケット識別部１２２が識別したＳＹＮ＃１パケット、ＳＹＮ＃２パケットおよびＳＹＮ＃３パケットを受け取ると、バッファ１３１に格納する。
【００７５】
その後、送信部１２３Ｂ（図示せず）が、ＳＹＮ＃１パケットを、通信部１１０を介してサーバ５０Ｂに送信し（ステップＳ５０７）、バッファ管理部１２４が、ＳＹＮ＃１パケットをバッファ１３１から削除する。
【００７６】
その後、サーバ５０Ｂは、コネクションが上限に到達し、タイマ値として１ミリ秒が設定されたバックオフ通知を通信制御装置１０Ｂに通知するとともに（ステップＳ５０８）、ＳＹＮ／ＡＣＫパケット＃１をパケット識別部１２２に送信する（ステップＳ５０９）。パケット識別部１２２は、ＳＹＮ／ＡＣＫパケット＃１を受信すると、ユーザ端末＃１にＳＹＮ／ＡＣＫパケット＃１を転送する（ステップＳ５１０）。その後、ユーザ端末＃１は、ＡＣＫ＃１パケットをサーバ５０Ｂ宛てに送信して（ステップ５１１）、コネクションを確立する処理を行う（図示省略）。
【００７７】
その後、通信制御装置１０Ｂがバックオフ通知に設定されたタイマ値の時間（図１１の例では、１ミリ秒）を経過した後、送信部１２３Ｂが、ＳＹＮ＃２パケットを、通信部１１０を介してサーバ５０Ｂに送信し（ステップＳ５１２）、バッファ管理部１２４が、ＳＹＮ＃２パケットをバッファ１３１から削除し、続いて、ＳＹＮ＃３パケットを、サーバ５０Ｂに送信し（ステップＳ５１３）、バッファ管理部１２４が、ＳＹＮ＃３パケットをバッファ１３１から削除する。
【００７８】
その後、同様に、サーバ５０Ｂは、ＳＹＮ／ＡＣＫパケット＃２およびＳＹＮ／ＡＣＫパケット＃３をパケット識別部１２２に送信し（ステップＳ５１４、Ｓ５１５）、コネクションを確立する処理を行う（図示省略）。
【００７９】
図１１の例では、通信制御装置１０ＢがＳＹＮパケットを送信後すぐにバッファ１３１から削除するため、サーバ５０Ｂのコネクションが上限に到達した後であってバックオフ通知前に送信したＳＹＮパケットは、サーバ５０Ｂ側で破棄されてしまう。このためユーザ端末のコネクション確立までの所要時間が増加する場合がある。そこで、図１２に示すように、ＳＹＮ／ＡＣＫパケットをもとにコネクションを監視し、コネクションを確立できるとＳＹＮパケットをバッファから削除するようにしてもよい。バッファ管理部１２４は、バックオフ通知を受けた後、バックオフタイマ値時間経過すると、バッファの先頭パケットのから送信を再開する。
【００８０】
図１２に例示するように、ユーザ端末＃１がＳＹＮ＃１パケットをパケット識別部１２２を介してバッファ管理部１２４に通知し、ユーザ端末＃２がＳＹＮ＃２パケットをパケット識別部１２２を介してバッファ管理部１２４に通知し、ユーザ端末＃３がＳＹＮ＃３パケットをパケット識別部１２２を介してバッファ管理部１２４に通知する（ステップＳ６０１〜Ｓ６０６）。バッファ管理部１２４は、パケット識別部１２２が識別したＳＹＮ＃１パケット、ＳＹＮ＃２パケットおよびＳＹＮ＃３パケットを受け取ると、バッファ１３１に格納する。
【００８１】
その後、送信部１２３が、ＳＹＮ＃１パケットおよびＳＹＮ＃２パケットを、通信部１１０を介してサーバ５０Ｂに送信し（ステップＳ６０７、Ｓ６０８）、バッファ管理部１２４が、ＳＹＮ＃１パケットをバッファ１３１から削除する。
【００８２】
その後、サーバ５０Ｂは、コネクションが上限に到達し、タイマ値として１ミリ秒が設定されたバックオフ通知を通信制御装置１０Ｂに通知するとともに（ステップＳ６０９）、ＳＹＮ／ＡＣＫパケット＃１をパケット識別部１２２に送信する（ステップＳ６１０）。パケット識別部１２２は、ＳＹＮ／ＡＣＫパケット＃１を受信すると、ＳＹＮ／ＡＣＫパケット＃１をコピーして、ユーザ端末＃１にＳＹＮ／ＡＣＫパケット＃１を転送する（ステップＳ６１１）。その後、ユーザ端末＃１は、ＡＣＫ＃１パケットをサーバ５０Ｂ宛てに送信して（ステップ６１２）、コネクションを確立する処理を行う（図示省略）。
【００８３】
また、パケット識別部１２２は、ＳＹＮ／ＡＣＫパケット＃１をバッファ管理部１２４に送信する（ステップＳ６１３）。パケット管理部１２４は、ＳＹＮ／ＡＣＫパケット＃１とシーケンス番号が一致するＳＹＮ＃１パケットをバッファから削除する。
【００８４】
その後、通信制御装置１０Ｂがバックオフ通知に設定されたタイマ値の時間（図１２の例では、１ミリ秒）を経過した後、送信部１２３が、ＳＹＮ＃１パケットおよびＳＹＮ＃２パケットを、通信部１１０を介してサーバ５０Ｂに送信する（ステップＳ６１４、Ｓ６１５）。その後、同様に、サーバ５０Ｂは、ＳＹＮ／ＡＣＫパケット＃２およびＳＹＮ／ＡＣＫパケット＃３をパケット識別部１２２に送信し（ステップＳ６１６、Ｓ６１７）、コネクションを確立する処理を行う（図示省略）。
【００８５】
（第３の実施形態の効果）
第３の実施形態に係る通信制御システムでは、サーバ５０Ｂが、サーバが確立したコネクション数を監視し、該コネクション数が上限に到達しているかを判定し、コネクション数が上限に到達していると判定された場合には、ＳＹＮパケットを受け付けることができないことを示す通知であって、タイマ値が設定されたバックオフ通知を通知する。そして、通信制御装置１０Ｂは、ＳＹＮパケットを受け付けることがないことを示すバックオフ通知を受信すると、該通知に設定されたタイマ値の時間を経過した後に、バッファ１３１に格納されるＳＹＮパケットをサーバ５０Ｂへ送信する。このため、第３の実施形態に係る通信制御システムでは、サーバ３０Ｂが、コネクション数が上限に到達したことを契機にバックオフ通知し、通信制御装置１０Ｂが、バックオフ通知に含まれるバックオフタイマ値だけ待機する。これにより、通信制御装置１０Ｂはサーバ５０Ｂからの通知を待たずにパケットを送信できるため、効率低下を抑制できる。
【００８６】
（変形例）
上記実施形態においては、通信制御システムが備える通信制御装置内に、パケット識別部とバッファ管理部とを設けるものとした。しかし、これに限定されず、パケット識別部とバッファ管理部とをそれぞれ独立の装置としてネットワーク上に配置してもよい。また、パケット識別部とバッファ管理部とをサーバに組み入れてもよい。受信部、送信部も同様に、独立の装置としてもよく、また、パケット識別部およびバッファ管理部とともにサーバに組み入れてもよい。すなわち、通信制御システムにおいて、ＴＣＰを用いてコネクションを確立する情報処理装置とサーバとの通信経路上に通信制御装置が備える各機能部が配置されればよい。
【００８７】
たとえば、図１３は、各実施形態に係る通信制御装置の機能を複数の装置上に実装する例を説明するための図である。図１３に示す通信制御システム１Ｂは、図１に示す通信制御システム１Ａと、通信制御装置が備える機能部の配置が相違する。他の点では、図１３に示す通信制御システム１Ｂは、図１に示す通信制御システム１Ａと同様である。
【００８８】
第１〜第３の実施形態においては、受信部、パケット識別部、送信部、バッファ管理部をそれぞれ一つの通信制御装置内に配置するものとして説明した。しかし、これに限らず、図１３のように各機能部を別の装置上に配置することもできる。
【００８９】
図１３の例では、パケット識別装置１１がネットワーク４０、６０を介してユーザ端末２０Ａ〜２０Ｄとサーバ５０との間に接続される。そして、パケット識別装置１１は、バッファ１２を備えるパケットバッファ装置１３と接続される。
【００９０】
パケット識別装置１１は、第１〜第３の実施形態に係る受信部１２１、パケット識別部１２２、送信部１２３、１２３Ａ、１２３Ｂの機能を実行することができる装置である。パケット識別装置１１はたとえばルータ等で構成することができる。パケット識別装置１１は、ＳＹＮパケットを識別してパケットバッファ装置１３に送信する。また、パケット識別装置１１は、ＡＣＫパケットを識別してミラーリングし、ミラーリングしたＡＣＫパケットをパケットバッファ装置１３に送信する。
【００９１】
バッファ１２は、パケット識別装置１１から転送されるＳＹＮパケットを受信した順に格納する。そして、バッファ１２は、先に受信したＳＹＮパケットから先に所定の送信レートで順次送信する。
【００９２】
パケットバッファ装置１３は、第１〜第３の実施形態に係るバッファ管理部１２４の機能を実行することができる装置である。パケットバッファ装置１３はたとえば、サーバ５０に組み入れることもできるし、サーバと独立の装置としてもよい。
【００９３】
このように、通信制御装置１０〜１０Ｂの各機能は異なる装置上に実装して実現することができる。また、ＡＰＬサーバ等、既存の装置に通信制御装置１０〜１０Ｂの機能の一部を実装してもよい。また、図１３の例では、パケットバッファ装置１３がバッファ１２を備えるものとしたが、バッファ１２をパケットバッファ装置１３とは別の装置上に設けてパケットバッファ装置１３と接続する構成とすることもできる。
【００９４】
（プログラム）
また、上記実施形態において説明した通信制御システムが実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係る通信制御装置が実行する処理をコンピュータが実行可能な言語で記述した通信制御プログラムを作成することもできる。この場合、コンピュータが通信制御プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる通信制御プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された通信制御プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。
【００９５】
図１５は、通信制御プログラムを実行するコンピュータ１０００を示す図である。図１５に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００９６】
メモリ１０１０は、図１５に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１５に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図１５に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０４１に挿入される。シリアルポートインタフェース１０５０は、図１５に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図１５に例示するように、例えばディスプレイ１０６１に接続される。
【００９７】
ここで、図１５に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記の通信制御プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。
【００９８】
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、各種処理手順を実行する。
【００９９】
なお、通信制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、通信制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１００】
なお、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１０１】
上記の実施形態やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１０２】
１０、１０Ａ、１０Ｂ  通信制御装置
２０Ａ、２０Ｂ、２０Ｃ、２０Ｄ  ユーザ端末
３０  ＡＰ
４０、６０  ネットワーク
５０、５０Ａ、５０Ｂ  サーバ
１１０、５１０  通信部
１２０、５２０  制御部
１２１  受信部
１２２  パケット識別部
１２３、１２３Ａ、１２３Ｂ  送信部
１２４  バッファ管理部
１３０、５３０  記憶部
１３１  バッファ
５２１、５２１Ａ、５２１Ｂ  監視部
５２２、５２２Ａ、５２２Ｂ  通知部
【図１】
0006506192.tif 000002
【図２】
0006506192.tif 000003
【図３】
0006506192.tif 000004
【図４】
0006506192.tif 000005
【図５】
0006506192.tif 000006
【図６】
0006506192.tif 000007
【図７】
0006506192.tif 000008
【図８】
0006506192.tif 000009
【図９】
0006506192.tif 000010
【図１０】
0006506192.tif 000011
【図１１】
0006506192.tif 000012
【図１２】
0006506192.tif 000013
【図１３】
0006506192.tif 000014
【図１４】
0006506192.tif 000015
【図１５】
0006506192.tif 000016