JP2017034627A - 通信制御システムおよび通信制御方法 - Google Patents

通信制御システムおよび通信制御方法 Download PDF

Info

Publication number
JP2017034627A
JP2017034627A JP2015156000A JP2015156000A JP2017034627A JP 2017034627 A JP2017034627 A JP 2017034627A JP 2015156000 A JP2015156000 A JP 2015156000A JP 2015156000 A JP2015156000 A JP 2015156000A JP 2017034627 A JP2017034627 A JP 2017034627A
Authority
JP
Japan
Prior art keywords
packet
buffer
unit
syn
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015156000A
Other languages
English (en)
Inventor
明寛 木村
Akihiro Kimura
明寛 木村
太三 山本
Taizo Yamamoto
太三 山本
裕史 山崎
Yasushi Yamazaki
裕史 山崎
亜希 福岡
Aki Fukuoka
亜希 福岡
幸司 杉園
Koji Sugisono
幸司 杉園
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015156000A priority Critical patent/JP2017034627A/ja
Publication of JP2017034627A publication Critical patent/JP2017034627A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】SYNパケットの再送による、単位時間当たりのコネクション数の減少を抑制する。【解決手段】通信制御システムは、受信部と、パケット識別部と、送信部と、バッファ管理部と、を備える。通信制御システムは、ネットワーク上でTCP(Transmission Control Protocol)を用いてコネクションを確立する情報処理装置とサーバとの間の通信を制御する。受信部は、情報処理装置とサーバとの間で送受信されるパケットを受信する。パケット識別部は、受信するパケットのうち、情報処理装置からサーバへ送信されるSYN(Synchronization)パケットをバッファに振り分ける。送信部は、バッファに格納されるSYNパケットを所定の送信レートでサーバに送信する。バッファ管理部は、受信したパケットが所定の条件を満たす場合に、バッファに格納されるSYNパケットまたは受信したパケットを破棄する。【選択図】図2

Description

本発明は、通信制御システムおよび通信制御方法に関する。
TCP(Transmission Control Protocol)を用いた情報通信が広く利用されている。TCPを利用して、ユーザ端末とアプリケーション(APL)サーバとの間で通信を実行する際には、通常、スリーウェイハンドシェイクと呼ばれる処理が実行される。スリーウェイハンドシェイクにおいては、まず、一方の情報処理装置が他方の情報処理装置に通信接続(コネクション)の確立を要求するSYN(Synchronization)パケットを送信する。他方の情報処理装置は、SYNパケットに応じて接続を許可するためSYN−ACK(Acknowledgement)パケットを送信する。SYN−ACKパケットを受信した一方の情報処理装置が接続開始を示すACKパケットを送信する。これで、TCPを用いた通信が開始する。
木村 明寛、西山 聡史、大坂 健、工藤 伊知郎、「IoTサービス提供のためのサーバ数を削減するNW機能の提案」、信学技報、pp. 379-384 V. Paxson, M. Allman, J. Chu & M. Sargent, "Computing TCP’s Retransmission Timer", Internet Engineering Task Force (IETF), 2011
ところで、コネクションの確立を要求するSYNパケットの送信元は、所定期間にわたってSYNパケットに応答するSYN−ACKパケットを受信しない場合、SYNパケットを再送する。送信元は、SYN−ACKパケットを受信するまで、又は、所定の回数再送するまで、所定の間隔で繰り返しSYNパケットを再送する。
複数のユーザ端末との間で通信を実行するAPLサーバに対して、複数のユーザ端末から繰り返しSYNパケットが再送されると、送信されるパケット中に占める再送パケットの割合が高くなる。このような場合、APLサーバがユーザ端末との間で確立できる単位時間当たりのコネクション数が減少する場合がある。
開示の実施形態は、上記に鑑みてなされたものであり、SYNパケットの再送による、単位時間当たりのコネクション数の減少を抑制することができる通信制御システムおよび通信制御方法を提供することを目的とする。
開示する通信制御システムおよび通信制御方法は、ネットワーク上でTCPを用いてコネクションを確立する情報処理装置とサーバとの間の通信を制御する。受信部は、情報処理装置とサーバとの間で送受信されるパケットを受信する。パケット識別部は、受信するパケットのうち、情報処理装置からサーバへ送信されるSYNパケットをバッファに振り分ける。送信部は、バッファに格納されるSYNパケットを所定の送信レートでサーバに送信する。バッファ管理部は、受信したパケットが所定の条件を満たす場合に、バッファに格納されるSYNパケットまたは受信したパケットを破棄する。
開示する通信制御システムおよび通信制御方法は、SYNパケットの再送による、単位時間当たりのコネクション数の減少を抑制することができるという効果を奏する。
図1は、第1の実施形態に係る通信制御システムの構成の一例を示す図である。 図2は、第1の実施形態に係る通信制御装置の構成の一例を示す図である。 図3は、第1の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。 図4は、第2の実施形態に係る通信制御装置の構成の一例を示す図である。 図5は、第2の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。 図6は、第3の実施形態に係る通信制御装置の構成の一例を示す図である。 図7は、第3の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。 図8は、第4の実施形態に係る通信制御装置の構成の一例を示す図である。 図9は、第4の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。 図10は、第5の実施形態に係る通信制御処理の前提となるSYNパケットの再送間隔について説明するための図である。 図11は、第5の実施形態に係る通信制御装置の構成の一例を示す図である。 図12は、第5の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。 図13は、第6の実施形態に係る通信制御装置の構成の一例を示す図である。 図14は、第6の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。 図15は、第6の実施形態に係る通信制御処理において、受信レートが閾値を超えるタイミングを予測する手法について説明するための図である。 図16は、第6の実施形態に係る通信制御処理において、閾値を設定する手法について説明するための図である。 図17は、各実施形態に係る通信制御装置の機能を複数の装置上に実装する例を説明するための図である。 図18は、ユーザ端末からAPLサーバにSYNパケットが送信される場合の処理の例を説明するための図である。 図19は、ユーザ端末からAPLサーバにSYNパケットが再送される場合の処理の例を説明するための図である。 図20は、通信制御プログラムを実行するコンピュータを示す図である。
以下に、開示するシステムおよび方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、各実施形態は適宜組み合わせることができる。
(既存の手法によるSYNパケット再送処理の一例)
まず、図18および図19を参照し、実施形態に係る通信制御システム及び通信制御方法の前提として、従来のTCPを用いたコネクションの確立処理について説明する。図18は、ユーザ端末からAPLサーバにSYNパケットが送信される場合の処理の例を説明するための図である。また、図19は、ユーザ端末からAPLサーバにSYNパケットが再送される場合の処理の例を説明するための図である。
図18の例では、ネットワークAを介してユーザ端末1〜4が、APLサーバ5と接続される。また、ユーザ端末1〜4とAPLサーバ5との間には、転送装置6、バッファ7および送信レート制御装置8が接続されている。
ユーザ端末1〜4は、それぞれネットワークAを介してAPLサーバ5と通信を開始するに当たり、まずコネクションを確立するためにSYNパケットを送信する。APLサーバ5は、SYNパケットに対する応答確認としてACKパケットを送り返す。ユーザ端末1〜4は、ACKパケットを受信すると、コネクションが確立したものとみなし、受信したACKパケットに対する応答としてACKパケットをAPLサーバ5に送信する。また、ユーザ端末1〜4は、APLサーバ5に対してAPL層パケットを送信する。図18中、ユーザ端末nが送信するSYNパケットはSYN(n)と表示する。また、ユーザ端末nが送信するACKパケットはACK(n)と表示する。また、ユーザ端末nが送信するAPL層パケットはAPL(n)と表示する。
送信されるSYNパケットには各々、シーケンス番号が付与される。たとえば、ユーザ端末1が送信するSYNパケットにはシーケンス番号「1」が付与される。シーケンス番号「1」のSYNパケットに応答してAPLサーバ5が送信する確認応答であるACKパケットのシーケンス番号も「1」となる。
転送装置6は、ユーザ端末1〜4が送信するパケットを受信し、SYNパケットを抽出してバッファ7に格納する。転送装置6は、SYNパケット以外のパケットたとえばAPL層パケットやACKパケットはバッファ7に格納せずにそのままAPLサーバ5に送信する。
バッファ7は、FIFO(First In First Out)メモリである。バッファ7に格納されたSYNパケットは、送信レート制御装置8によって所定の送信レートでバッファ7からAPLサーバ5に送信される。
ユーザ端末1〜4は、SYNパケットを送信した後、所定時間が経過してもSYNパケットに応答するACKパケットを受信しない場合、SYNパケットを再送する。TCPにおいてSYNパケットを再送する再送間隔の初期値は、各ユーザ端末の実装に依存して決定される。たとえば、Windows(登録商標)系のオペレーションシステム(OS)であれば3秒、Linux(登録商標)系のOSであれば1秒である。2回目以降の再送間隔はRFC(Request for Comments)に規定されるTCPの再送アルゴリズムに従って設定される。2回目以降の再送間隔はたとえば、前の再送間隔の2倍に設定される。転送装置6は、初回のSYNパケットと再送パケットとを区別せず、すべてバッファ7に振り分ける。
APLサーバ5は、SYNパケットを受信すると、確立済みのコネクション数が予め定めた上限に達していない場合、APL層パケット処理用のリソースを確保して、ACKパケットを送信する。APLサーバ5は、確立済みのコネクション数が予め定めた上限に達している場合、SYNパケットを破棄し、ACKパケットは送信しない。
図19の例では、ユーザ端末2がSYNパケット(SYN(2))を送信しているが、APLサーバ5には到達していない。ユーザ端末2はSYNパケット(SYN(2))に応答するACKパケットを未受信であるため、所定時間が経過すると、SYNパケットを再送する。再送されるSYNパケットは、転送装置6によってバッファ7に振り分けられる。バッファ7に振り分けられたSYNパケットは送信レート制御装置8の制御のもと、所定の送信レートでAPLサーバ5に送信される。このため、ユーザ端末1〜4のそれぞれから同様のタイミングでSYNパケットが送信されると、所定時間内にAPLサーバ5から応答するACKパケットを受信しないユーザ端末がでてくる。バッファ7からの送信レートは一定であるため、ACKパケットを未受信のユーザ端末から再送されるSYNパケットがバッファ7内のSYNパケットに占める割合が増加していく。結果的に、単位時間当たりにAPLサーバ5が受信する初回送信分のSYNパケットの数が減少する。
APLサーバ5は、受信したSYNパケットのシーケンス番号をチェックする。そして、同一のシーケンス番号をもつACKパケットを送信済みである場合、APLサーバ5は、受信したSYNパケットを破棄する。APLサーバ5が受信するSYNパケットに占める再送パケットの割合が増加すると、単位時間当たりに確立されるユーザ端末1〜4とAPLサーバ5間に確立されるコネクション数が減少する。
(第1の実施形態)
図1は、第1の実施形態に係る通信制御システムの構成の一例を示す図である。第1の実施形態に係る通信制御システム1Aにおいては、通信制御装置10は、情報処理装置20A,20B,20C,20Dおよびゲートウェイ30と、ネットワーク40を介して接続される。情報処理装置20B,20C,20Dは、ゲートウェイ30およびネットワーク40を介して通信制御装置10と接続される。また、通信制御装置10は、サーバ50とネットワーク60を介して接続される。なお、図1に示す構成は一例にすぎず、通信制御装置10が、情報処理装置20A,20B,20C,20Dとサーバ50とを接続するネットワーク上に配置されればよく、具体的な構成や各装置の数は特に限定されない。
情報処理装置20A,20B,20C,20Dはネットワーク40,60を介してサーバ50との間で情報の送受信を行う。情報処理装置20A,20B,20C,20Dはたとえば、IoT(Internet of Things)端末またはM2M(Machine to Machine)端末等である。
ゲートウェイ30は、ネットワーク40を他のネットワークに接続する。ゲートウェイ30はたとえば、IoTゲートウェイ、M2Mゲートウェイ等である。
ネットワーク40,60はたとえば、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)等である。また、ネットワーク40,60は無線ネットワークであっても有線ネットワークであっても両者の組み合わせであってもよい。
サーバ50は、情報処理装置20A,20B,20C,20Dとの間でコネクションを確立し、情報の送受信を行う。サーバ50はたとえばAPLサーバである。
(通信制御装置の構成の一例)
図2は、第1の実施形態に係る通信制御装置の構成の一例を示す図である。通信制御装置10は、図1に示すように、情報処理装置20A,20B,20C,20Dとサーバ50との間の通信経路上に配置される。通信制御装置10は、情報処理装置20A,20B,20C,20Dとサーバ50との間の通信を制御する。たとえば、通信制御装置10は、情報処理装置20A,20B,20C,20Dから送信されるSYNパケットをサーバ50に転送する。また、通信制御装置10は、情報処理装置20A,20B,20C,20Dから再送されるSYNパケットによる、サーバ50と情報処理装置20A,20B,20C,20D間の単位時間当たりのコネクション数の減少を抑制するよう通信を制御する。
図2に示すように通信制御装置10は、通信部110と、制御部120と、記憶部130と、を備える。
通信部110は、ネットワーク40,60を介して送信される情報を送受信する。
制御部120は、通信制御装置10の各部の処理を制御する。制御部120はたとえば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)や、ASIC(Application Specific Integrated Circuit)等で構成することができる。制御部120は、パケット識別部121と、バッファ管理部122とを有する。
パケット識別部121は、通信部110を介して受信されるパケットの種類を識別する。パケット識別部121は、情報処理装置20A,20B,20C,20Dからサーバ50宛に送信されるSYNパケットを識別する。そして、パケット識別部121は識別したSYNパケットを後述するバッファ131に格納する。また、パケット識別部121は、SYNパケット以外のパケットを、通信部110を介して宛先に送信する。パケット識別部121は、送信元IPアドレス、送信先IPアドレス等から情報処理装置20A〜20Dおよびサーバ50を識別する。また、パケット識別部121は、パケットのTCPヘッダのSYNフラグに基づきSYNパケットを識別する。
バッファ管理部122は、通信部110を介して受信したパケットが所定の条件を満たす場合に、バッファ131に格納されるSYNパケットの一部もしくは全部または受信したパケットを破棄する。
バッファ管理部122はまた、バッファ131に格納されたSYNパケットを所定の送信レートで通信部110を介してサーバ50に送信する。
記憶部130は、通信制御装置10における各部の処理に使用する情報や処理の結果生成される情報を記憶する。記憶部130はたとえば、ハードディスク、光ディスク等の記憶装置でもよい。また、記憶部130は、RAM(Random Access Memory)やフラッシュメモリ等の半導体メモリであってもよい。記憶部130はバッファ131を有する。
バッファ131は、パケット識別部121が識別したSYNパケットを格納する。たとえばバッファ131は、FIFO(First In First Out)メモリである。バッファ131は、パケット識別部121が識別したSYNパケットを受信した順番に格納する。格納されたSYNパケットは、先に格納されたパケットから順に所定の送信レートで通信部110を介してサーバ50に送信される。
(第1の実施形態の通信制御処理の流れの一例)
図3は、第1の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。図3に示すように、通信制御装置10の通信部110はパケットを受信する(ステップS31)。パケット識別部121は、受信したパケットの中から、情報処理装置20A,20B,20C,20Dからサーバ50宛のSYNパケットを識別する。そして、パケット識別部121は識別したSYNパケットをバッファ131に振り分ける(ステップS32)。バッファ管理部122は、通信部110が受信したパケットが所定の条件を満たすか否かを判定する(ステップS33)。バッファ管理部122は、受信したパケットが所定の条件を満たすと判定した場合(ステップS33、Yes)、バッファ131内のSYNパケットの一部もしくは全部または受信したパケットを破棄する(ステップS34)。他方、受信したパケットが所定の条件を満たさないと判定した場合(ステップS33、No)、バッファ管理部122は、次の処理に進む。そして、バッファ管理部122は、バッファ131内のSYNパケットを所定の送信レートでサーバ50に送信する(ステップS35)。これで、第1の実施形態に係る通信制御処理が終了する。
(第1の実施形態の効果)
第1の実施形態に係る通信制御システムは、ネットワーク上でTCPを用いてコネクションを確立する情報処理装置とサーバとの間の通信を制御する。受信部(通信部)は、情報処理装置とサーバとの間で送受信されるパケットを受信する。パケット識別部は、受信部が受信するパケットのうち、情報処理装置からサーバへ送信されるSYNパケットをバッファに振り分ける。送信部(通信部)は、バッファに格納されるSYNパケットを所定の送信レートでサーバに送信する。バッファ管理部は、受信部が受信したパケットが所定の条件を満たす場合に、バッファに格納されるSYNパケットまたは受信したパケットを破棄する。このため、通信制御システムは所定の条件を満たすパケットを受信した場合には、情報処理装置から送信されるSYNパケットを全てサーバに送信するのではなく、送信するSYNパケットを削減する。したがって、再送パケットすべてがサーバに送信されず、単位時間当たりに確立できるコネクション数の減少を抑制することができる。
(第2の実施形態)
第1の実施形態においては、通信制御装置10は、受信したパケットが所定の条件を満たす場合に、バッファに格納されるSYNパケットまたは受信したパケットを破棄するものとした。第2の実施形態の通信制御システムは、受信したSYNパケットのシーケンス番号と同じシーケンス番号のSYNパケットがすでにバッファに格納されている場合に、受信したSYNパケットを破棄する。
図4は、第2の実施形態に係る通信制御装置の構成の一例を示す図である。第2の実施形態に係る通信制御装置10Aは、通信部110Aと、制御部120Aと、記憶部130Aと、を備える。通信部110Aの機能および構成は、第1の実施形態と同様である。
制御部120Aは、パケット識別部121Aとバッファ管理部122Aとを備える。
記憶部130Aは、バッファ131Aを有する。記憶部130Aおよびバッファ131Aの構成および機能は、第1の実施形態と同様である。ただし、バッファ131Aに格納されるSYNパケットは、バッファ管理部122Aにより管理される。
パケット識別部121Aは、通信部110Aが受信したパケットの中から、情報処理装置20A,20B,20C,20Dからサーバ50にあてたSYNパケットを識別する。そして、パケット識別部121Aは、識別したSYNパケットをバッファ管理部122Aに渡す。
バッファ管理部122Aは、パケット識別部121Aが識別したSYNパケットをバッファ131Aに格納する前に、当該SYNパケットのシーケンス番号を抽出する。そして、バッファ管理部122Aは、同じシーケンス番号のSYNパケットがバッファ131Aに格納されているか否かを判定する。同じシーケンス番号のSYNパケットがバッファ131Aに格納されていると判定した場合、バッファ管理部122Aは、受信したSYNパケットをバッファ131Aに格納せず破棄する。他方、同じシーケンス番号のSYNパケットがバッファ131Aに格納されていないと判定した場合、バッファ管理部122Aは、当該SYNパケットをバッファ131Aに格納する。そして、バッファ管理部122Aはバッファ131Aに格納されたSYNパケットを所定の送信レートで順次サーバ50に送信する。
(第2の実施形態に係る通信制御処理の流れの一例)
図5は、第2の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。まず、通信部110Aは、パケットを受信する(ステップS51)。そして、パケット識別部121Aは、受信したパケットがSYNパケットか否かを判定する(ステップS52)。受信したパケットがSYNパケットであると判定した場合(ステップS52、Yes)、パケット識別部121Aは、SYNパケットをバッファ管理部122Aに渡す。バッファ管理部122Aは、SYNパケットのシーケンス番号を抽出し、同一シーケンス番号のSYNパケットがバッファ131Aに格納されているか否かを判定する(ステップS53)。同一シーケンス番号のSYNパケットがバッファ131Aに格納されていると判定した場合(ステップS53、Yes)、バッファ管理部122Aは、受信したSYNパケットをバッファ131Aに格納せず破棄する(ステップS54)。他方、同一シーケンス番号のSYNパケットがバッファ131Aに格納されていないと判定した場合(ステップS53、No)、バッファ管理部122Aは、受信したSYNパケットをバッファ131Aに格納する(ステップS55)。また、受信したパケットがSYNパケットではないと判定した場合(ステップS52、No)、パケット識別部121Aは、受信したパケットをバッファ131Aに格納せず、通信部110Aを介して宛先に送信する(ステップS56)。そして、バッファ管理部122Aは、所定の送信レートでバッファ131Aに格納されたSYNパケットを順次サーバ50に送信する(ステップS57)。これで、第2の実施形態における通信制御処理が終了する。
(第2の実施形態の効果)
このように、第2の実施形態に係る通信制御システムにおいては、バッファ管理部は、受信部(通信部)が受信したパケットのうち、情報処理装置からサーバへ送信されるSYNパケットのシーケンス番号が、バッファに格納されるSYNパケットのシーケンス番号と同一である場合、受信部が受信したSYNパケットを破棄する。このため、再送パケットがバッファ内に重複して格納されることがなく、サーバが同一のSYNパケットを繰り返し処理することが防止される。このため、サーバと情報処理装置との間で単位時間当たりに確立されるコネクション数の減少が抑制される。
(第3の実施形態)
第2の実施形態においては、通信制御装置10Aは、パケットを受信した時点で、バッファ内のパケットとの重複をチェックし、重複する場合には受信したパケットを破棄した。第3の実施形態では、通信制御システムは、パケットをバッファから送信する時点で、当該パケットと重複するパケットがバッファ内にないかチェックし、バッファ内の重複するパケットを破棄する。
図6は、第3の実施形態に係る通信制御装置の構成の一例を示す図である。第3の実施形態に係る通信制御装置10Bは、通信部110Bと、制御部120Bと、記憶部130Bと、を備える。通信部110Bの機能および構成は第1、第2の実施形態と同様である。
制御部120Bは、パケット識別部121Bとバッファ管理部122Bとを備える。
記憶部130Bは、バッファ131Bを有する。記憶部130Bおよびバッファ131Bの構成および機能は、第1、第2の実施形態と同様である。ただし、バッファ131Bに格納されるSYNパケットは、バッファ管理部122Bにより管理される。
パケット識別部121Bは、通信部110Bが受信したパケットのうち、情報処理装置20A,20B,20C,20Dからサーバ50にあてたSYNパケットを識別する。そして、パケット識別部121Bは、識別したSYNパケットをバッファ131Bに格納する。パケット識別部121Bは、識別したSYNパケット以外のパケットは、通信部110Bを介して宛先に転送する。
バッファ管理部122Bは、所定の送信レートに基づき、バッファ131BからSYNパケットを送信するタイミングで、送信するSYNパケットのシーケンス番号を抽出する。そして、バッファ管理部122Bは、同一のシーケンス番号のSYNパケットがバッファ131Bに格納されているか否かを判定する。同一のシーケンス番号のSYNパケットがバッファ131Bに格納されている場合、バッファ管理部122Bは、バッファ131Bに格納されている同一のシーケンス番号のSYNパケットを破棄する。そして、バッファ管理部122Bは、送信タイミングとなったSYNパケットを通信部110Bを介してサーバ50に送信する。
(第3の実施形態に係る通信制御処理の流れの一例)
図7は、第3の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。まず、通信部110Bがパケットを受信する(ステップS71)。パケット識別部121Bは、受信したパケットから、情報処理装置20A,20B,20C,20Dからサーバ50にあてたSYNパケットを識別する。そして、パケット識別部121Bは、識別したSYNパケットをバッファ131Bに振り分ける(ステップS72)。バッファ管理部122Bは、バッファ131BからSYNパケットを送信する所定のタイミングとなったか否かを判定する(ステップS73)。所定のタイミングではないと判定した場合(ステップS73、No)、バッファ管理部122Bは再びステップS73の判定を繰り返す。所定のタイミングになったと判定した場合(ステップS73、Yes)、バッファ管理部122Bは、送信するSYNパケットと同一のシーケンス番号のSYNパケットがバッファ131Bに格納されているか否かを判定する(ステップS74)。同一のシーケンス番号のSYNパケットが格納されていると判定した場合(ステップS74、Yes)、バッファ管理部122Bは、バッファ131Bに格納されている同一のシーケンス番号のSYNパケットを破棄する(ステップS75)。そして、バッファ管理部122Bは、送信タイミングとなったSYNパケットを通信部110Bを介してサーバ50に送信する(ステップS76)。他方、同一のシーケンス番号のSYNパケットが格納されていないと判定した場合(ステップS74、No)、バッファ管理部122Bは、そのまま送信タイミングとなったSYNパケットを通信部110Bを介してサーバ50に送信する(ステップS76)。これで処理が終了する。
(第3の実施形態の効果)
このように、第3の実施形態に係る通信制御システムにおいては、バッファ管理部は、受信部(通信部)が受信したパケットのうち、バッファに格納され次にバッファからサーバに送信されるSYNパケットのシーケンス番号が、バッファに格納される他のSYNパケットのシーケンス番号と同一である場合、バッファに格納される他のSYNパケットを破棄する。このため、バッファ内には重複するSYNパケットが一時的に格納されるものの、サーバには到達しないため、サーバが同一のSYNパケットを繰り返し処理することで単位時間当たりに確立されるコネクション数が減少することが抑制される。
(第4の実施形態)
第2、第3の実施形態においては、通信制御システムは、受信したSYNパケットをチェックして、受信したSYNパケットまたはバッファ内のパケットを破棄するか否かを判定した。第4の実施形態に係る通信制御システムは、SYNパケットに応答してサーバから送信されるACKパケットをチェックして、バッファ内のパケットを破棄するか否かを判定する。
図8は、第4の実施形態に係る通信制御装置の構成の一例を示す図である。第4の実施形態に係る通信制御装置10Cは、通信部110Cと、制御部120Cと、記憶部130Cと、を備える。通信部110Cの機能および構成は第1〜第3の実施形態と同様である。
制御部120Cは、パケット識別部121Cとバッファ管理部122Cとを備える。
記憶部130Cは、バッファ131Cを有する。記憶部130Cおよびバッファ131Cの構成および機能は、第1〜第3の実施形態と同様である。ただし、バッファ131Cに格納されるSYNパケットはバッファ管理部122Cにより管理される。
第4の実施形態においては、パケット識別部121Cは、情報処理装置20A〜20Dからサーバ50宛に送信されるSYNパケットに加えて、サーバ50からSYNパケットに応答して送信されるACKパケットを識別する。そして、パケット識別部121Cは、識別したSYNパケットをバッファ131Cに格納するとともに、識別したACKパケットをミラーリングしてバッファ管理部122Cに渡す。
バッファ管理部122Cは、パケット識別部121CがミラーリングしたACKパケットのシーケンス番号を抽出する。バッファ管理部122Cは、ACKパケットと同一のシーケンス番号のSYNパケットがバッファ131Cに格納されているか否かを判定する。同一のシーケンス番号のSYNパケットがバッファ131Cに格納されている場合、バッファ管理部122Cは、バッファ131C内の同一シーケンス番号のSYNパケットを破棄する。
このように、第4の実施形態においては、SYNパケットを監視するのではなく、SYNパケットに対応して送信されるACKパケットを監視する。ACKパケットがサーバ50から送信される時点で、当該ACKパケットに基づいて通信が確立されると考えられるため、以後同一シーケンス番号のSYNパケットをサーバ50に送信する必要はなくなる。そこで、第4の実施形態の通信制御装置10Cは、ACKパケットが送信されたことを確認した時点で、同一シーケンス番号のSYNパケットをバッファ131Cから破棄するものとしている。
(第4の実施形態に係る通信制御処理の流れの一例)
図9は、第4の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。まず、通信部110Cはパケットを受信する(ステップS91)。パケット識別部121Cは、受信したパケットが、情報処理装置20A〜20Dからサーバ50にあてたSYNパケットであるか否かを判定する(ステップS92)。SYNパケットと判定した場合(ステップS92、Yes)、パケット識別部121Cは、当該SYNパケットをバッファ131Cに振り分ける(ステップS93)。他方、SYNパケットではないと判定した場合(ステップS92、No)、パケット識別部121Cは、受信したパケットがACKパケットであるか否かを判定する(ステップS94)。受信したパケットがACKパケットではないと判定した場合(ステップS94、No)、パケット識別部121Cは、当該パケットをそのまま通信部110Cを介して宛先に送信する(ステップS95)。受信したパケットがACKパケットであると判定した場合(ステップS94、Yes)、パケット識別部121Cは当該パケットをミラーリングしてバッファ管理部122Cに渡す。そして、バッファ管理部122Cは、ミラーリングされたACKパケットのシーケンス番号を抽出する。バッファ管理部122Cは、ACKパケットと同一のシーケンス番号のSYNパケットがバッファ131Cに格納されているか判定する(ステップS96)。同一のシーケンス番号のSYNパケットがバッファ131Cに格納されていると判定した場合(ステップS96、Yes)、バッファ管理部122Cは、当該同一シーケンス番号のSYNパケットをバッファ131Cから破棄する(ステップS97)。そして、バッファ管理部122Cは、バッファ131Cに格納されているSYNパケットを所定の送信レートでサーバ50に送信する(ステップS98)。他方、同一のシーケンス番号のSYNパケットがバッファ131Cに格納されていないと判定した場合(ステップS96、No)、バッファ管理部122Cは、ミラーリングしたACKパケットを破棄する(ステップS99)。そして、バッファ管理部122Cは、バッファ131Cに格納されているSYNパケットを所定の送信レートでサーバ50に送信する(ステップS98)。これで処理が終了する。
(第4の実施形態の効果)
このように、第4の実施形態に係る通信制御システムにおいては、バッファ管理部は、受信部(通信部)が受信したパケットのうち、サーバから情報処理装置に送信されるACKパケットのシーケンス番号が、バッファに格納されるSYNパケットのシーケンス番号と同一である場合、バッファに格納されるSYNパケットを破棄する。このため、ACKパケットの送信を確認した上で、同一のコネクションの確立を目的として送信されているSYNパケットを破棄することができる。このため、第4の実施形態に係る通信制御システムによれば、より確実にコネクションを確立できるとともに、不要なSYNパケットの再送を減少させ、単位時間当たりに確立されるコネクション数の減少を抑制することができる。
(第5の実施形態)
第2〜第4の実施形態においては、通信制御装置が受信するSYNパケットまたはACKパケットのシーケンス番号に基づき、受信したSYNパケットまたはバッファに格納されるSYNパケットを破棄するか否かの判定を行った。第5の実施形態においては、SYNパケットの再送間隔を考慮して、バッファに格納されるSYNパケットを破棄する。
図10は、第5の実施形態に係る通信制御処理の前提となるSYNパケットの再送間隔について説明するための図である。図10の例では、複数の情報処理装置からサーバ宛にほぼ同じタイミングで多数のSYNパケットが送信されたとする。たとえば、時刻0秒の時点で1000個のSYNパケットがサーバ宛に送信されたとする。この場合に、サーバが同時に処理可能なSYNパケットの数が80個であるとする。とすると、サーバは、時刻0秒の時点で受信したSYNパケットのうち、920個については処理できず破棄する。破棄されたSYNパケットを送信した情報処理装置は、RFCに定められたアルゴリズムに従ってSYNパケットを再送するため、サーバは再びほぼ同時に920個のSYNパケットを受信することになる。たとえば、図10の例では、サーバは時刻1秒の時点で920個の再送パケットを受信する。そして、SYNパケットの再送間隔は再送ごとに2倍に設定されるため、次の再送タイミングである時刻3秒の時点でサーバは840個の再送パケットを受信することになる。再送タイミングごとに同様の処理が繰り返される。
第5の実施形態に係る通信制御システムにおいては、このような前提に基づき、パケットの受信レートを監視する。そして、通信制御システムは、受信レートが所定の閾値を超えた場合、受信レートが所定の閾値を超えてから所定時間経過後にバッファ内のSYNパケットをすべて破棄する。所定時間は、SYNパケットの再送間隔の初期値よりも短い時間に設定する。
(第5の実施形態に係る通信制御装置の構成の一例)
図11は、第5の実施形態に係る通信制御装置の構成の一例を示す図である。第5の実施形態に係る通信制御装置10Dは、通信部110Dと、制御部120Dと、記憶部130Dと、を備える。通信部110Dの構成および機能は、第1〜第4の実施形態と同様である。
制御部120Dは、パケット識別部121Dと、バッファ管理部122Dと、受信レート検出部123Dとを備える。
記憶部130Dは、バッファ131Dを有する。記憶部130Dおよびバッファ131Dの構成および機能は、第1〜第4の実施形態と同様である。ただし、バッファ131Dに格納されるSYNパケットはバッファ管理部122Dにより管理される。
パケット識別部121Dは、通信部110Dが受信したパケットから、情報処理装置20A〜20Dからサーバ50あてのSYNパケットを識別し、バッファ131Dに格納する。
バッファ管理部122Dは、受信レート検出部123DからSYNパケットの受信レートが所定の閾値を超えた場合に通知を受け取る。そして、バッファ管理部122Dは、SYNパケットの受信レートが所定の閾値を超えてから所定時間が経過すると、バッファ131Dに格納されるSYNパケットを全て破棄する。
受信レート検出部123Dは、通信制御装置10Dが受信するSYNパケットの受信レートを検出する。受信レート検出部123Dは、たとえば、パケット識別部121DによるSYNパケットの識別を監視して、受信レートを検出してもよい。また、受信レート検出部123Dは、たとえば、バッファ131DへのSYNパケットの格納を監視して、受信レートを検出してもよい。受信レート検出部123Dは、随時受信レートを検出し、受信レートと所定の閾値とを比較する。そして、受信レート検出部123Dは、検出した受信レートが所定の閾値を超えると、バッファ管理部122Dに通知する。
なお、ここでは、受信レートとは、所定の時刻に通信制御装置10Dが受信した、情報処理装置20A〜20Dからサーバ50あてのSYNパケットの単位時間当たりの数をいうものとする。また、受信レートと比較する所定の閾値はたとえば、通信制御装置10DがSYNパケットの再送間隔の初期値の間にバッファ131Dから送信するSYNパケットの数とする。
(第5の実施形態に係る通信制御処理の流れの一例)
図12は、第5の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。まず、受信レート検出部123DはSYNパケットの受信レートを検出する(ステップS101)。そして、受信レート検出部123Dは、検出した受信レートと所定の閾値とを比較し、検出した受信レートが所定の閾値を超えているか否かを判定する(ステップS102)。検出した受信レートが所定の閾値を超えていないと判定した場合(ステップS102、No)、受信レート検出部123Dは処理を終了する。他方、受信レート検出部123Dは、検出した受信レートが所定の閾値を超えていると判定した場合(ステップS102、Yes)、その旨、バッファ管理部122Dに通知する。通知を受けたバッファ管理部122Dは、受信レートが所定の閾値を超えたことが検出されてから所定時間が経過したか否かを判定する(ステップS103)。所定時間経過していないと判定した場合(ステップS103、No)、バッファ管理部122DはステップS103に戻って判定を繰り返す。所定時間経過したと判定した場合(ステップS103、Yes)、バッファ管理部122Dは、バッファ131D内のSYNパケットを全て破棄する(ステップS104)。これで処理が終了する。
(第5の実施形態の効果)
このように、第5の実施形態においては、通信制御システムは、受信部(通信部)が受信するSYNパケットの受信レートを検出する検出部(受信レート検出部)をさらに備える。そして、バッファ管理部は、検出部が検出した受信レートが第1の閾値(所定の閾値)を超えた場合、第1の閾値を超えてから第1の時間(再送間隔よりも短い所定の時間)後に、バッファに格納されるパケットを破棄する。このため、多数のSYNパケットがほぼ同時にサーバに送信される場合に、再び同じタイミングで多数の再送パケットが受信されてバッファに蓄積されることを防止できる。このため、サーバが同じコネクションのためのSYNパケットおよび再送パケットを繰り返し処理することを防止することができ、単位時間当たりに確立されるコネクション数の減少を抑制できる。
また、第5の実施形態に係る通信制御システムは、バッファ内のSYNパケットのシーケンス番号と、受信パケットのシーケンス番号との一致判定を行わず、SYNパケットの受信レートに基づいてバッファ内のSYNパケットの破棄の要否を判定する。このため、シーケンス番号の一致判定を伴う手法と比較してより高いスケーラビリティを確保することができる。
(第6の実施形態)
第5の実施形態では、サーバに処理可能な数を超えるパケットが同時に送信された場合、処理可能な数を超えた分のパケットに対応する再送パケットが送信されることを前提として、バッファに格納されるSYNパケットを所定のタイミングで破棄するものとした。これに対して、第6の実施形態に係る通信制御システムは、第1の閾値を超える受信レートが検出された場合、次に受信レートが第2の閾値を超えるタイミングを予測する。そして、予測したタイミングで第2の閾値を超える受信レートが検出された場合に、バッファに格納されるSYNパケットを破棄する。
図13は、第6の実施形態に係る通信制御装置の構成の一例を示す図である。第6の実施形態に係る通信制御装置10Eは、通信部110Eと、制御部120Eと、記憶部130Eと、を備える。通信部110Eの構成および機能は、第1〜第5の実施形態と同様である。
制御部120Eは、パケット識別部121Eと、バッファ管理部122Eと、受信レート検出部123Eと、を備える。
記憶部130Eは、バッファ131Eを有する。記憶部130Eおよびバッファ131Eの構成および機能は、第1〜第5の実施形態と同様である。ただし、バッファ131Eに格納されるSYNパケットはバッファ管理部122Eにより管理される。
パケット識別部121Eは、通信部110Eが受信したパケットのうち、情報処理装置20A〜20Dからサーバ50あてのSYNパケットを識別し、バッファ131Eに格納する。
バッファ管理部122Eは、受信レート検出部123EからSYNパケットの受信レートが第1の閾値を超えた場合に通知を受け取る。バッファ管理部122Eは、通知を受け取ると、次に受信レートが第2の閾値を超えるタイミングを予測する。そして、予測したタイミングで受信レートが第2の閾値を超えた旨の通知を受信レート検出部123Eから受け取ると、バッファ管理部122Eは、バッファ131Eに格納されるSYNパケットを破棄する。予測したタイミングで通知を受け取らなかった場合は、バッファ管理部122Eは処理を終了する。また、予測したタイミングで通知を受け取った場合は、バッファ管理部122Eはさらに次に受信レートが第3の閾値を超えるタイミングを予測する。そして、予測したタイミングで受信レートが第3の閾値を超えた旨の通知を受信すれば、バッファ管理部122Eはバッファ131Eに格納されるSYNパケットを破棄する。予測したタイミングで通知を受け取らなくなるまで、バッファ管理部122Eは処理を繰り返す。
受信レート検出部123Eは、通信制御装置10Eが受信するSYNパケットの受信レートを検出する。第5の実施形態の受信レート検出部123Dと同様、受信レート検出部123Eは、パケット識別部121EによるSYNパケットの識別を監視して、受信レート検出してもよい。また、受信レート検出部123Eは,バッファ131EへのSYNパケットの格納を監視して、受信レートを検出してもよい。受信レート検出部123Eは、随時受信レートを検出し、受信レートと第1の閾値とを比較する。そして、受信レート検出部123Eは、検出した受信レートが第1の閾値を超えると、バッファ管理部122Eに通知する。
(受信レートが閾値を超えるタイミングの予測手法の一例)
図15は、第6の実施形態に係る通信制御処理において、受信レートが閾値を超えるタイミングを予測する手法について説明するための図である。先述したように、TCPを用いたSYNパケットの送信については再送間隔がRFCによって規定されている。そこで、第6の実施形態に係る通信制御装置10Eは、RFCの規定に基づき、受信レートが閾値を超えるタイミングを予測する。たとえば、サーバ50がLinux(登録商標)系OSを使用する情報処理装置20A〜20Dとの間で通信している場合、再送間隔の初期値は1秒である。そこで、バッファ管理部122Eは、再送間隔の初期値は1秒であり、再送が実行されるごとに2倍になると予測する。つまり、図15の例では、バッファ管理部122Eは、時刻0秒のタイミングで受信レート検出部123Eから通知を受けた場合、次に受信レートが閾値を超えるタイミングを時刻1秒と予測する。そして、時刻1秒のタイミングで、受信レート検出部123Eから通知を受けた場合、バッファ管理部122Eは、次に受信レートが閾値を超えるタイミングを1秒の2倍が経過した時刻3秒と予測する。同様に、時刻3秒のタイミングで、受信レート検出部123Eから通知を受けた場合、バッファ管理部122Eは、次に受信レートが閾値を超えるタイミングを2秒の2倍である4秒が経過した時刻7秒と予測する。
バッファ管理部122Eが予測していなかったタイミングで受信レート検出部123Eから通知を受けた場合は、バッファ管理部122Eは、その通知の時点を初回SYNパケットの送信時点と仮定して、次に受信レートが閾値を超えるタイミングを予測する。
なお、SYNパケットの送受信処理やネットワーク上の通信遅延によってSYNパケットが通信制御装置10Eに到達する時間には多少のずれが生じることが予想される。このため、予測したタイミングの前後約100ミリ秒(ms)程度の誤差を見込む。そして、予測したタイミングの前後約100ミリ秒の期間中に受信レート検出部123Eから通知があれば、バッファ管理部122Eは検出された受信レートと予測回数に応じた閾値とを比較する。そして、バッファ管理部122Eは、受信レートが閾値を超えていれば、バッファ131Eに格納されるSYNパケットを破棄するものとする。
(受信レートと比較する閾値の設定手法の一例)
図16は、第6の実施形態に係る通信制御処理において、閾値を設定する手法について説明するための図である。たとえば、図16において、SYNパケットの再送間隔の初期値が1秒であるとする。そして、再送ごとに再送間隔は2倍になるとする。ここで、図16に示す時刻0秒の時点で通信制御装置10Eが受信したSYNパケットの数が、1秒の間にバッファ131Eから送信することができるパケットの数を超えているとする。すると、時刻1秒の時点でバッファ131Eには未送信のSYNパケットが残留していることになる。そして、未送信のSYNパケットはサーバ50に到達しておらずACKパケットが送信されていないため、未送信のSYNパケットの再送パケットが送信されることになる。
時刻0秒において通信制御装置10Eが受信しているSYNパケットの数が、1秒の間にバッファ131Eからサーバ50へ送信されるSYNパケットの数以下であれば、時刻1秒において、バッファ131Eに残留しているSYNパケットはない。そこで、第6の実施形態では、第1の閾値を、再送間隔の初期値の間にバッファ131Eからサーバ50へ送信されるSYNパケットの数とする。また、第2の閾値を、再送間隔の初期値の2倍の期間中にバッファ131Eからサーバ50へ送信されるSYNパケットの数とする。さらに、第3の閾値を、再送間隔の初期値の4倍の期間中にバッファ131Eからサーバ50へ送信されるSYNパケットの数とする。以降の閾値も同様に設定する。
たとえば、図16の例では、再送間隔の初期値をt(秒)、バッファ131Eの送信レートをR(個/秒)とする。そして、t秒間にバッファ131Eから送信されるSYNパケットの数をSとする。このとき、受信レート検出部123Eが検出する受信レートと比較する第1の閾値は、R×t=Sとなる。次に受信レート検出部123Eが検出した受信レートと比較する第2の閾値は、R×t×2=2Sとなる。さらに、次に受信レート検出部123Eが受信レートと比較する第3の閾値は、R×t×2×2=4Sとなる。
第6の実施形態では、受信レート検出部123Eは、検出した受信レートと予め設定された第1の閾値とを比較し、バッファ管理部122Eに通知するものとする。そして、通知を受けたバッファ管理部122Eは、通知された時点が、予め受信レートが閾値を超えると予測したタイミングであれば、予測回数に応じて設定される閾値と通知された受信レートとを比較する。たとえば、バッファ管理部122Eは、通知された時点が、最初に受信レートが第1の閾値を超えてから1回目の予測時点である場合、受信レートが第2の閾値(t×2×1×R)を超えるか否かを判定する。また、バッファ管理部122Eは、通知された時点が、最初に受信レートが第1の閾値を超えてから2回目の予測時点である場合、受信レートが第3の閾値(t×2×2×R)を超えるか否かを判定する。また、バッファ管理部122Eは、通知された時点が、最初に受信レートが第1の閾値を超えてから3回目の予測時点である場合、受信レートが第4の閾値(t×2×4×R)を超えるか否かを判定する。また、バッファ管理部122Eは、通知された時点が、予測時点ではない場合、当該時点をSYNパケットの初回送信時点として、次に受信レートが第2の閾値を超える時点を予測する。
なお、予測時点と予測時点に対応する閾値は、RFCに規定される再送間隔の初期値に基づき予め算出して記憶部130Eに記憶しておいてもよい。
(第6の実施形態における通信制御処理の流れの一例)
図14は、第6の実施形態に係る通信制御システムにおける処理の流れの一例を示すフローチャートである。受信レート検出部123Eは、SYNパケットの受信レートを検出する(ステップS1401)。そして、受信レート検出部123Eは、検出した受信レートが第1の閾値を超えるか否かを判定する(ステップS1402)。受信レート検出部123Eは、検出した受信レートが第1の閾値を超えないと判定した場合(ステップS1402、No)、ステップS1401に戻って検出を続ける。他方、受信レート検出部123Eは、検出した受信レートが第1の閾値を超えると判定した場合(ステップS1402、Yes)、バッファ管理部122Eにその旨通知する。バッファ管理部122Eは、通知を受けて次に受信レートが閾値を超える時間を予測する(ステップS1403)。バッファ管理部122Eは、予測した時間に受信レートが対応する閾値を超えたか否かを判定する(ステップS1404)。予測した時間に受信レートが対応する閾値を超えなかったと判定した場合(ステップS1404、No)、バッファ管理部122Eは、処理を終了する。他方、予測した時間に受信レートが閾値を超えたと判定した場合(ステップS1404、Yes)、バッファ管理部122Eは、バッファ131Eに格納されるSYNパケットを破棄する(ステップS1405)。そして、バッファ管理部122Eは、再び次に受信レートが閾値を超える時間を予測して処理を繰り返す(ステップS1403)。バッファ管理部122Eが、予測した時間に受信レートは閾値を超えなかったと判定すれば(ステップS1404、No)処理は終了する。
(第6の実施形態の効果)
このように第6の実施形態に係る通信制御システムは、受信部(通信部)が受信するSYNパケットの受信レートを検出する検出部(受信レート検出部)をさらに備える。バッファ管理部は、検出部が検出した受信レートが第1の閾値を超えた場合、次に受信レートが第2の閾値を超えると予測される第2の時間を算出し、検出部が当該第2の時間に検出した受信レートが第2の閾値を超えた場合、バッファに格納されるパケットを破棄する。このため、第6の実施形態の通信制御システムによれば、多数の再送パケットが送信されると予測されるタイミングになるまで、バッファ内のSYNパケットを所定の送信レートでサーバに送信し続けることができる。このため、第6の実施形態によれば、受信レートが閾値を超えたときすぐにバッファをクリアする処理と比較して、バッファからSYNパケットを送信しない期間を短縮することができる。また、再送されると予測されるSYNパケットをバッファから破棄するため、同じ再送パケットがバッファに蓄積されていくのを防止することができる。このため、サーバが同じ再送パケットを繰り返し処理することを防止でき、単位時間当たりに確立されるコネクション数の減少を抑制することができる。
また、第6の実施形態に係る通信制御システムにおいて、バッファ管理部は、検出部が第2の時間に検出した受信レートが第2の閾値を超えた場合、バッファに格納されるパケットを破棄し、次に受信レートが第3の閾値を超えると予測される第3の時間を算出し、検出部が当該第3の時間に検出した受信レートが第3の閾値を超えた場合、バッファに格納されるパケットを再度破棄する。このように、第6の実施形態の通信制御システムは、SYNパケットの再送が収束するまで、継続的に受信レートを監視してバッファ内のSYNパケットを管理する。このため、第6の実施形態の通信制御システムは、SYNパケットの再送間隔にあわせてバッファに格納されるSYNパケットを制御することができる。このため、サーバが同じ再送パケットを繰り返し処理することを防止でき、単位時間当たりに確立されるコネクション数の減少を抑制することができる。
また、第6の実施形態に係る通信制御システムは、バッファ内のSYNパケットのシーケンス番号と、受信パケットのシーケンス番号との一致判定を行わず、SYNパケットの受信レートに基づいてバッファ内のSYNパケットの破棄の要否を判定する。このため、シーケンス番号の一致判定を伴う手法と比較してより高いスケーラビリティを確保することができる。
上記実施形態の通信制御方法は、ネットワーク管理者がTCPを用いる通信にシェーピングをかける際に利用することができる。
(変形例)
上記実施形態においては、通信制御システムが備える通信制御装置内に、パケット識別部とバッファ管理部とを設けるものとした。しかし、これに限定されず、パケット識別部とバッファ管理部とをそれぞれ独立の装置としてネットワーク上に配置してもよい。また、パケット識別部とバッファ管理部とをサーバに組み入れてもよい。受信レート検出部も同様に、独立の装置としてもよく、また、パケット識別部およびバッファ管理部とともにサーバに組み入れてもよい。すなわち、通信制御システムにおいて、TCPを用いてコネクションを確立する情報処理装置とサーバとの通信経路上に通信制御装置が備える各機能部が配置されればよい。
たとえば、図17は、各実施形態に係る通信制御装置の機能を複数の装置上に実装する例を説明するための図である。図17に示す通信制御システム1Bは、図1に示す通信制御システム1Aと、通信制御装置が備える機能部の配置が相違する。他の点では、図17に示す通信制御システム1Bは、図1に示す通信制御システム1Aと同様である。
第1〜第6の実施形態においては、パケット識別部、バッファ管理部、受信レート検出部をそれぞれ一つの通信制御装置内に配置するものとして説明した。しかし、これに限らず、図17のように各機能部を別の装置上に配置することもできる。
図17の例では、パケット識別装置11がネットワーク40,60を介して情報処理装置20A〜20Dとサーバ50との間に接続される。そして、パケット識別装置11は、バッファ12を備えるバッファ管理装置13と接続される。受信レート監視装置14は、パケット識別装置11およびバッファ管理装置13と接続される。
パケット識別装置11は、第1〜第6の実施形態に係るパケット識別部121〜121Eの機能を実行することができる装置である。パケット識別装置11はたとえばルータ等で構成することができる。パケット識別装置11は、SYNパケットを識別してバッファ管理装置13に送信する。また、パケット識別装置11は、ACKパケットを識別してミラーリングし、ミラーリングしたACKパケットをバッファ管理装置13に送信する。
バッファ12は、パケット識別装置11から転送されるSYNパケットを受信した順に格納する。そして、バッファ12は、先に受信したSYNパケットから先に所定の送信レートで順次送信する。
バッファ管理装置13は、第1〜第6の実施形態に係るバッファ管理部122〜122Eの機能を実行することができる装置である。バッファ管理装置13はたとえば、サーバ50に組み入れることもできるし、サーバと独立の装置としてもよい。
受信レート監視装置14は、第5、第6の実施形態に係る受信レート検出部123D,123Eの機能を実行することができる装置である。図17の例では、受信レート監視装置14は、パケット識別装置11およびバッファ管理装置13の双方に接続されているが、いずれか一方のみに接続される構成としてもよい。
このように、通信制御装置10〜10Eの各機能は異なる装置上に実装して実現することができる。また、APLサーバ等、既存の装置に通信制御装置10〜10Eの機能の一部を実装してもよい。また、図17の例では、バッファ管理装置13がバッファ12を備えるものとしたが、バッファ12をバッファ管理装置13とは別の装置上に設けてバッファ管理装置13と接続する構成とすることもできる。
(プログラム)
また、上記実施形態において説明した通信制御システムが実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係る通信制御装置が実行する処理をコンピュータが実行可能な言語で記述した通信制御プログラムを作成することもできる。この場合、コンピュータが通信制御プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる通信制御プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された通信制御プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。
図20は、通信制御プログラムを実行するコンピュータ1000を示す図である。図20に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
メモリ1010は、図20に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図20に例示するように、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、図20に例示するように、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1041に挿入される。シリアルポートインタフェース1050は、図20に例示するように、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、図20に例示するように、例えばディスプレイ1061に接続される。
ここで、図20に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の通信制御プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、各種処理手順を実行する。
なお、通信制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、通信制御プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
なお、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
上記の実施形態やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1A,1B 通信制御システム
10,10A,10B,10C,10D,10E 通信制御装置
20A,20B,20C,20D 情報処理装置
30 ゲートウェイ
40 ネットワーク
50 サーバ
60 ネットワーク
110,110A,110B,110C,110D,110E 通信部
120,120A,120B,120C,120D,120E 制御部
121,121A,121B,121C,121D,121E パケット識別部
122,122A,122B,122C,122D,122E バッファ管理部
123D,123E 受信レート検出部
130,130A,130B,130C,130D,130E 記憶部
131,131A,131B,131C,131D,131E バッファ

Claims (8)

  1. ネットワーク上でTCP(Transmission Control Protocol)を用いてコネクションを確立する情報処理装置とサーバとの間で送受信されるパケットを受信する受信部と、
    前記受信部が受信するパケットのうち、前記情報処理装置から前記サーバへ送信されるSYN(Synchronization)パケットをバッファに振り分けるパケット識別部と、
    前記バッファに格納されるSYNパケットを所定の送信レートで前記サーバに送信する送信部と、
    前記受信部が受信したパケットが所定の条件を満たす場合に、バッファに格納されるSYNパケットまたは受信したパケットを破棄するバッファ管理部と、
    を備えることを特徴とする通信制御システム。
  2. 前記バッファ管理部は、前記受信部が受信したパケットのうち、前記情報処理装置から前記サーバへ送信されるSYNパケットのシーケンス番号が、前記バッファに格納されるSYNパケットのシーケンス番号と同一である場合、前記受信部が受信したSYNパケットを破棄することを特徴とする請求項1に記載の通信制御システム。
  3. 前記バッファ管理部は、前記受信部が受信したパケットのうち、前記バッファに格納され次に前記バッファから前記サーバに送信されるSYNパケットのシーケンス番号が、前記バッファに格納される他のSYNパケットのシーケンス番号と同一である場合、バッファに格納される当該他のSYNパケットを破棄することを特徴とする請求項1に記載の通信制御システム。
  4. 前記バッファ管理部は、前記受信部が受信したパケットのうち、前記サーバから前記情報処理装置に送信されるACK(Acknowledgement)パケットのシーケンス番号が、前記バッファに格納されるSYNパケットのシーケンス番号と同一である場合、前記バッファに格納されるSYNパケットを破棄することを特徴とする請求項1に記載の通信制御システム。
  5. 前記受信部が受信するSYNパケットの受信レートを検出する検出部をさらに備え、
    前記バッファ管理部は、前記検出部が検出した受信レートが第1の閾値を超えた場合、第1の閾値を超えてから第1の時間後に、前記バッファに格納されるパケットを破棄することを特徴とする請求項1に記載の通信制御システム。
  6. 前記受信部が受信するSYNパケットの受信レートを検出する検出部をさらに備え、
    前記バッファ管理部は、前記検出部が検出した受信レートが第1の閾値を超えた場合、次に受信レートが第2の閾値を超えると予測される第2の時間を算出し、前記検出部が当該第2の時間に検出した受信レートが前記第2の閾値を超えた場合、前記バッファに格納されるパケットを破棄することを特徴とする請求項1に記載の通信制御システム。
  7. 前記バッファ管理部は、前記検出部が前記第2の時間に検出した受信レートが前記第2の閾値を超えた場合、前記バッファに格納されるパケットを破棄し、次に受信レートが第3の閾値を超えると予測される第3の時間を算出し、前記検出部が当該第3の時間に検出した受信レートが前記第3の閾値を超えた場合、前記バッファに格納されるパケットを再度破棄することを特徴とする請求項6に記載の通信制御システム。
  8. ネットワーク上でTCPを用いてコネクションを確立する情報処理装置とサーバとの間の通信を制御する通信制御方法であって、
    前記情報処理装置と前記サーバとの間で送受信されるパケットを受信する受信工程と、
    前記受信工程において受信されたパケットのうち、前記情報処理装置から前記サーバへ送信されるSYNパケットをバッファに振り分けるパケット識別工程と、
    前記バッファに格納されるSYNパケットを所定の送信レートで前記サーバに送信する送信工程と、
    前記受信工程において受信されたパケットが所定の条件を満たす場合に、バッファに格納されるSYNパケットまたは受信したパケットを破棄するバッファ管理工程と、
    をコンピュータが実行することを特徴とする通信制御方法。
JP2015156000A 2015-08-06 2015-08-06 通信制御システムおよび通信制御方法 Pending JP2017034627A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015156000A JP2017034627A (ja) 2015-08-06 2015-08-06 通信制御システムおよび通信制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015156000A JP2017034627A (ja) 2015-08-06 2015-08-06 通信制御システムおよび通信制御方法

Publications (1)

Publication Number Publication Date
JP2017034627A true JP2017034627A (ja) 2017-02-09

Family

ID=57989065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015156000A Pending JP2017034627A (ja) 2015-08-06 2015-08-06 通信制御システムおよび通信制御方法

Country Status (1)

Country Link
JP (1) JP2017034627A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017147576A (ja) * 2016-02-16 2017-08-24 日本電信電話株式会社 通信制御システムおよび通信制御方法
JP2022000987A (ja) * 2018-08-06 2022-01-04 日本電気株式会社 通信装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017147576A (ja) * 2016-02-16 2017-08-24 日本電信電話株式会社 通信制御システムおよび通信制御方法
JP2022000987A (ja) * 2018-08-06 2022-01-04 日本電気株式会社 通信装置
JP7168053B2 (ja) 2018-08-06 2022-11-09 日本電気株式会社 通信装置

Similar Documents

Publication Publication Date Title
US7921215B2 (en) Method and apparatus for optimizing and prioritizing the creation of a large number of VPN tunnels
CN106612284B (zh) 一种流数据的传输方法和装置
JPWO2012066824A1 (ja) 通信装置および通信システム
CN106453356B (zh) 无线网络双边加速传输方法和***
WO2017190467A1 (zh) 终端最大传输单元的调整方法、装置和终端设备
WO2017097201A1 (zh) 一种数据传输方法、发送装置及接收装置
CN108322836A (zh) 一种数据传输的方法及装置
WO2019052264A1 (zh) 传输报文的方法、网络组件和计算机可读存储介质
TWI580226B (zh) 決定最大分段大小値之方法
US10129163B2 (en) Methods and apparatus for preventing head of line blocking for RTP over TCP
JP5476852B2 (ja) 通信装置、通信システムおよび通信方法
JP2017034627A (ja) 通信制御システムおよび通信制御方法
CN110808917A (zh) 多链路聚合数据重传方法及发送设备
JP5723307B2 (ja) パケット監視システム
CN107959554B (zh) 一种数据的重传方法及装置
CN112866133B (zh) 用于获取共用最大分段大小mss的方法及装置
WO2020259040A1 (zh) 数据传输方法、***及设备
JP2004187099A (ja) 通信制御方法、通信システム及び通信装置
WO2021192294A1 (ja) 光伝送装置、光通信システム、及び光通信方法
US20100166011A1 (en) Method, apparatus and system for realizing dynamic correlation of control plane traffic rate
JP2008199431A (ja) 通信装置
NO327367B1 (no) Tildeling av tradlose kanaler i en basestasjonsprosessor
JP6200870B2 (ja) データ転送制御装置、方法及びプログラム
US20140369189A1 (en) Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent
US7680050B1 (en) Distributed admission control