JP5588481B2 - ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム - Google Patents
ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム Download PDFInfo
- Publication number
- JP5588481B2 JP5588481B2 JP2012142354A JP2012142354A JP5588481B2 JP 5588481 B2 JP5588481 B2 JP 5588481B2 JP 2012142354 A JP2012142354 A JP 2012142354A JP 2012142354 A JP2012142354 A JP 2012142354A JP 5588481 B2 JP5588481 B2 JP 5588481B2
- Authority
- JP
- Japan
- Prior art keywords
- connection
- network
- host
- data
- network device
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 90
- 230000008878 coupling Effects 0.000 claims description 108
- 238000010168 coupling process Methods 0.000 claims description 103
- 238000005859 coupling reaction Methods 0.000 claims description 103
- 238000012544 monitoring process Methods 0.000 claims description 76
- 230000006854 communication Effects 0.000 claims description 54
- 238000004891 communication Methods 0.000 claims description 53
- 238000003860 storage Methods 0.000 claims description 43
- 238000012546 transfer Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 38
- 238000012545 processing Methods 0.000 description 70
- 230000001133 acceleration Effects 0.000 description 40
- 230000004044 response Effects 0.000 description 25
- 230000005540 biological transmission Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 241001522296 Erithacus rubecula Species 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000009616 inductively coupled plasma Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 235000010384 tocopherol Nutrition 0.000 description 2
- 235000019731 tricalcium phosphate Nutrition 0.000 description 2
- 241000408659 Darpa Species 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/41—Flow control; Congestion control by acting on aggregated flows or links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
しかし、広域網(Wide Area Network、WAN)を介してデータセンタと拠点の間で通信を行う場合、TCPのフロー制御の制約から実効帯域がWANの遅延に律束され、WANの契約帯域を太くしても効果が得られない場合がある。そこで、ネットワークプロクシ装置(通信を代行する装置)においてTCPのフロー制御を改善するなどのTCP高速化手法が提案されている。また、このような高速化をもたらす装置をWAN高速化装置と呼ぶ。
例えば、TCPのフロー制御改善に関する特開2003−69615号公報では「送信元ホスト50と送信先ホスト60との間に、1つまたはそれ以上のルータ70a、70bが配置される。ルータ70aは、送信元ホスト50から送られてくるパケットに対して、確認応答パケットを生成して送信し、送信元ホスト50と送信先ホスト60との間のコネクションを終端、分割する。確認応答パケットの始点アドレスには、送信先ホストのアドレスが用いられる。また、送信先ホスト60には、始点アドレスが送信元ホストのアドレスであるパケットが届けられる。これにより、両ホストに対して仮想的な1つのコネクションを認識させる。」と記載されている(「解決手段」参照)。
また、広域網を介してデータセンタと拠点の間で通信を行う場合にTCPのフロー制御の制約から実効帯域が得られない課題の別の解決方法として、送信側通信端末の通信制御方式を変更し、TCPを多重化する方法が提案されている。
例えば、特開2004−260668号公報では「実時間再生を要求される動画像データをTCP/IPにより送信する送信装置と、送信装置から送信されるデータを受信する受信装置を含む動画像伝送システムである。送信装置は、動画像データを画像データ1フレーム分または複数フレーム分を単位として、個々の単位画像データをさらに分割した分割画像データを、複数のTCPコネクションにより送信し、受信装置は、複数のTCPコネクションにより受信した分割画像データから元の単位画像データに戻す処理と、動画像データ複数フレーム分の蓄積を行うバッファ部を有し、単位画像データの分割数およびTCPコネクションの数を、1TCPコネクションあたりのスループットおよび動画像データの平均ビットレートに基づいて決定する。」と記載されている(「解決手段」参照)。
さらに、TCP多重化をプロクシに応用する方法も提案されている。例えば、US2005/025150号公報では「The Proxy application runnning on network accelerator 14−1 then assigns one or more of the persistent connections it has with the network accelerator 14−2 to handle the connection requested by Machine A.」と記載されている(「Detailed Description of the Invention [0031]」参照)。
従って本発明が解決しようとする第一の課題は、TCPの通信を十分に高速化可能なWAN高速化装置を提供する事である。
また、従来の送信側通信端末の通信制御方式を変更するものでは、サーバクライアント方式で構成された既設の環境にある全てのサーバ端末およびクライアント端末の通信制御方式を変更する必要があり、既設の環境への導入が困難という課題があった。
従って本発明が解決しようとする第二の課題は、既設の環境への導入が容易なプロクシ装置においてTCPを多重化可能なWAN高速化装置を提供する事である。
従って本発明が解決しようとする第三の課題は、ネットワークの状況に応じてTCPの多重化数を動的に制御できるTCPを多重化可能なWAN高速化装置を提供する事である。
上述のように、本発明は、TCPの通信を高速化可能なネットワーク装置、ネットワーク装置の制御方法及びネットワークシステムを提供する事を目的とする。また、本発明は、既設の環境への導入が容易なプロクシ装置においてTCPを多重化可能なネットワーク装置、ネットワーク装置の制御方法及びネットワークシステムを提供する事を目的とする。
このような構成により、本WAN高速化装置では、既設の環境にあるサーバ端末およびクライアント端末の通信制御方式を変更する事なく、プロクシ装置間のTCP通信のみを多重化し、クライアント−サーバ間のTCPの通信を十分に高速化できる。
ホスト間の第1網と第2網を介したTCP通信を中継するネットワーク装置であって、
ホスト間のTCPコネクション毎に、第1網から入力されたデータ量に基づく要求レートと、第2網へデータを転送した実効帯域を示す出力レートを保持する第1記憶領域と、
ホスト間のTCPコネクション毎に、第1網からのデータを、第2網の対向するネットワーク装置との間で確立された複数のコネクションに分割して転送し、第2網からの複数のコネクションを介したデータを結合して第1網に転送するコネクション分割結合部と、
コネクション分割数を保持する第2記憶領域と、
前記要求レートと前記出力レートに基づき、コネクション分割数を増加又は削減する帯域監視部と
を備えたネットワーク装置が提供される。
ホスト間の第1網と第2網を介したTCP通信を中継するネットワーク装置の制御方法であって、
ホスト間のTCPコネクション毎に、第1網から入力されたデータ量に基づく要求レートと、第2網へデータを転送した実効帯域を示す出力レートを第1記憶領域に記憶し、
ホスト間のTCPコネクション毎に、第1網からのデータを、第2網の対向するネットワーク装置との間で確立された複数のコネクションに分割して転送し、第2網からの複数のコネクションを介したデータを結合して第1網に転送し、
前記要求レートと前記出力レートに基づき、コネクション分割数を増加又は削減する
前記ネットワーク装置の制御方法が提供される。
広域ネットワークを介して第1ホストと第2ホストが通信を行うネットワークシステムであって、
請求項1に記載のネットワーク装置であって、前記第1ホスト側に配置される第1のネットワーク装置と、
請求項1に記載のネットワーク装置であって、前記第2ホスト側に配置される第2のネットワーク装置と
を備え、
前記第1のネットワーク装置と前記第2のネットワーク装置は、広域ネットワークを介して配置され、
前記第1ホストと前記第2ホストが、広域ネットワークの実効帯域に基づき分割されるコネクションを介して通信することを特徴とするネットワークシステムが提供される。
本発明の第4の解決手段によると
広域ネットワークを介して第1ホストと第2ホストが通信を行うネットワークシステムであって、
前記第1ホスト側に配置される第1の汎用サーバ装置と
前記第2のスト側に配置される第2の汎用サーバ装置と
前記第1の汎用サーバ装置側に配置される請求項8に記載の方法を実行するプログラムおよび関連するデータを格納した第1の外部記憶媒体と
前記第2の汎用サーバ装置側に配置される請求項8に記載の方法を実行するプログラムおよび関連するデータを格納した第2の外部記憶媒体と
を備え、
前記第1の汎用サーバ装置と前記第2の汎用サーバ装置は、広域ネットワークを介して配置され、
前記第1の外部記憶媒体から前記第1の汎用サーバ装置にプログラムと関連するデータをコピーし、
前記第2の外部記憶媒体から前記第2の汎用サーバ装置にプログラムと関連するデータをコピーし、
前記第1ホストと前記第2ホストが、広域ネットワークの実効帯域に基づき分割されるコネクションを介して通信することを特徴とするネットワークシステムが提供される。
図1は、本実施例のWAN高速化装置を用いた通信システムの構成図の例である。図1ではホスト1(1001)およびホスト2(1002)の2台のホスト(通信装置、端末)がLAN(第1網)及びWAN(第2網)(1003)を介して通信する。その経路上で、WAN高速化装置(ネットワーク装置)1011および1031はプロクシ装置として動作する。例えばホスト1(1001)とWAN高速化装置1011、およびホスト2(1002)とWAN高速化装置1031はそれぞれ物理的な近傍に置き、ネットワーク遅延を小さくする。
WAN高速化装置1011(および1031)は外部入出力としてLANインターフェース1012(および1032)およびWANインターフェース1013(および1033)を有する。またプログラムを動作させるために、CPU1018(および1038)、主記憶(メインメモリ、主記憶部)1020(および1040)、および、二次記憶(セカンダリメモリ、二次記憶部)1019(および1039)を有する。LANインターフェース1012(および1032)およびWANインターフェース1013(および1033)は数KBから数MB程度のFIFO(First In First Out、先に入ったデータが先に出ていく)方式のバッファを有する。そのため、LANインターフェース1012(および1032)およびWANインターフェース1013(および1033)から主記憶1020(および1040)へ、最大でバッファサイズ分のデータを読み込むことができる。
二次記憶1019(1039)にはプログラムとデータベース(DB)が保存され、WAN高速化装置1011(および1031)の起動後にプログラムおよびDBが主記憶1020(および1040)に読み込まれ、CPU1018(および1038)によって動かされる。
主記憶1020は帯域DB(第1記憶領域)1015(および1035)とコネクション分割数DB(第2記憶領域)1017(および1037)を有する。帯域DB1015(および1035)はTCPコネクションごとの要求レートと、ネットワークに転送できた出力レートの各移動平均を保持する。
図2において、帯域DB1015(および1035)のスキーマとレコード例を表14001に示す。表14001のスキーマはLANホストIP列、LANホストポート列、WANホストIP列、WANホストポート列の4列を組み合わせることでTCPコネクションを区別できる。すなわち特定のTCPコネクションに対応する行(エントリ)を検索できる。また、例えば要求レートおよび出力レートの直近5秒の移動平均を取るために、要求レートと出力レートの直近5つの値を保持する配列構造を持ち、さらに最終監視時刻を保持する。なお、本実施例では移動平均の取得期間は5秒とするが、システム定義もしくはユーザ定義の値として5秒以外の取得期間を用いてもよい。また、求められる移動平均をさらに記憶してもよい。
帯域DB1015(および1035)の要求レート配列および出力レート配列の更新方法を、図2を用いて説明する。ここでは行14002に保持したコネクションの要求レートと出力レートを更新する場合の例を用いる。行14002は最終監視時刻が2011年3月19日8時45分36秒であり、要求レート配列は、4秒前すなわち2011年3月19日8時45分32秒からの1秒間(単位時間)の要求レートが29、3秒前すなわち2011年3月19日8時45分33秒からの1秒間の要求レートが20、同様に2秒前の1秒間の要求レートが13、1秒前の1秒間の要求レートが0、現在すなわち2011年3月19日8時45分36秒からの1秒間の出力レートが0である事を表している。また、同様に出力レート配列は、4秒前の1秒間の出力レートが12、3秒前の1秒間の出力レートが12、2秒前の1秒間の出力レートが12、1秒前の1秒間の出力レートが0、現在の1秒間の出力レートが0であることを表している。ここでレートの単位としてはいくつか考えられる。本実施例ではKB/秒を用いるがパケット数/秒など、他の単位でも構わない。なお、要求レートおよび出力レート両配列の最後の1列、すなわちここでは2011年3月19日8時45分36秒からの1秒間の出力レートは厳密には1秒経っていないため1秒間のレートを表していないが、ここでは便宜的に1秒間のレートと呼ぶ。
続いて2011年3月19日8時45分37秒05の時に処理の要求が1KB、出力が2KBであった場合(14006)には、表14004は表14006のように変化する。ここでは時刻の秒の単位が36秒から37秒に変化したため、要求レートおよび出力レートの両配列をシフトされる。具体的には、行14005に対応する行14008の通り、全ての値を左に一つシフトさせ、最後の1列すなわち現在の1秒を表す列に今回の要求である1(KB)および出力である2(KB)が入る。帯域DB1015(および1035)の要求レート配列および出力レート配列は、例えば帯域監視部1014(1034)が以上のように更新し管理する。
コネクション分割数DB1017(および1037)はホストが要求したコネクションごとのコネクション分割数および分割した各コネクションの識別情報を保持する。
図3において、コネクション分割数DB1017(および1037)のスキーマとレコード例を表15001に示す。表15001のスキーマはLANホストIP列、LANホストポート列、WANホストIP列、WANホストポート列の4列を組み合わせることでTCPコネクションを区別できる。また、WAN高速化装置1011および1031の間のコネクション分割数をコネクション分割数列に、分割した各コネクションの両端ポート番号を自ポートと他ポート配列に保持する。本実施例ではWAN高速化装置1011および1031の間のコネクションを分割するときに、常に片方のWAN高速化装置で使うポートを1つにするように制御する。このレコードでは他ポート側のポートを1つにしている。例えば、コネクション分割結合部1016(および1036)がコネクション分割数DB1017(および1037)を更新し、管理する。
ホスト1(1001)もしくはホスト2(1002)が通信を開始(17001)する際、まずコネクション開始処理(17002)を行い、WAN高速化装置1011および1031を介してホスト1(1001)とホスト2(1002)の間でコネクションを確立する。本処理の詳細は図13等で説明する。続いてホスト1(1001)とホスト2(1002)の間で定常状態通信処理(17003)を行い、データのやり取りを行う。本処理は双方向に通信可能である。すなわち手順17002においてどちらのホストがコネクションを開始したかに因らず、ホスト1(1001)からホスト2(1001)への通信も、ホスト2(1002)からホスト1(1001)への通信も行える。本処理の詳細は図14等で説明する。その後、ホスト1(1001)もしくはホスト2(1002)において通信を継続するか判断(17004)する。継続する場合は定常状態通信(17003)に戻り、切断する場合はコネクション切断処理(17005)し、コネクションを終了(17006)する。この判断(17004)およびコネクション切断処理(17005)は、手順17002においてどちらのホストがコネクションを開始したかに因らず、ホスト1(1001)およびホスト2(1002)のどちらが判断(17004)し切断処理(17005)して良い。なお、コネクション切断処理の詳細(17005)は図15等に示す。
続いて、帯域監視部及びコネクション分割結合部の実装を、図5から図12のフローチャートを用いて説明する。なお、以下、フローチャートの説明は、主にWAN高速化装置1011の帯域監視部1014とコネクション分割結合部1016等の各ブロックについて説明するが、WAN高速化装置1011の帯域監視部1034とコネクション分割結合部1036等についても同様である。
図5は帯域監視部のフローチャートである。帯域監視部1014は処理開始6001後、現在時刻を変数old_timeに保存6010し、その後はLANインターフェースからデータを取得6002してそれに応じた処理(6003〜6039)を行い、続いてコネクション分割結合部1016からデータを取得6005してそれに応じた処理(6006〜6069)を行い、時刻を取得6008して帯域調整処理(6009、6091)を行うというループを繰り返す。以下、各処理の詳細を記す。各処理は、帯域監視部1014が実行する。
LANインターフェースからのデータ取得6002後、まずデータが取得できたかどうか判断6003する。例えば、LANインターフェースのバッファにデータが溜まっていない場合には、データが取得できず、先に進むと判断される。データがあった場合には、データがsynか6031、finか6034、ackか6037、それ以外かという判断に基づき処理を進める。synである場合(6031、6032、6033)の処理は、後述するメッセージ受信2001および2011に対応する処理であり、受け取ったメッセージをコネクション分割結合部1016へ転送後、コネクション分割結合部1016からの応答を待てるよう、フラグ(Synフラグ)を立てる。finである場合(6034、6035、6036)の処理は、後述するメッセージ受信4001に対応する処理であり、受け取ったメッセージをコネクション分割結合部1016へ転送後、コネクション分割結合部1016からの応答を待てるよう、フラグ(finフラグ)を立てる。ackである場合(6037、6038)の処理は、後述するメッセージ受信2021、3024、4011、4031に対応する処理であり、受け取ったメッセージを転送する。そのいずれでもない場合は後述するメッセージ受信3001に対応し、この場合は図6の分割転送6039を行う。
続いて現在時刻を取得6008し、先のループ中に変数old_timeに保存した時刻と比較して例えば1秒以上経過しているか判断6009する。1秒以上経過していた場合は、図10の帯域調整処理6091を行う。その後、手順6008で取得した時刻を変数old_timeに保存し、手順6002に戻る。帯域調整処理を行う周期は1秒以外にも適宜の周期でもよいし、不定期でもよい。
帯域監視部1(1014)は、分割転送処理では処理開始7001後、帯域DB1015を検索し、データを受信したコネクションに関するレコードを探索7002する。例えば、帯域監視部1(1014)は、LANホストIP列、LANホストポート列、WANホストIP列、WANホストポート列の4列を組み合わせて、データを受信したコネクションの各対応するデータに基づき、帯域DB1015を検索し、該コネクションに関するレコードを探索3002する。
続いて帯域監視部1(1014)は該コネクションに関するレコードの要求レート配列と最終監視時刻を更新7003する。例えば、最終監視時刻を現在時刻にし、要求レート配列は例えば直近1秒間の受信データに基づき定められる。
続いて帯域監視部1(1014)は受信したパケット列をコネクション分割結合部1016に転送7004する。この転送操作はWANインターフェース1013および1033やWAN1003の影響をうけ、所要時間が変わる。続いて帯域監視部1(1014)は上記の所要時間を観測し、所要時間と送信データ量に基づき該コネクションに関するレコードの出力レート配列を更新7005し、処理を終える7006。この操作の結果、該コネクションの出力レートが、例えば、実際の送信データ量(実効帯域)に基づき更新される。
帯域監視部1014からのデータ取得8002後、まずデータが取得できたかどうか判断8003する。データがあった場合には、データが制御メッセージか8031、syn+ackか8043、synか8033、finか8037、ackか8040、それ以外かという判断に基づき処理を進める。制御メッセージである場合(8031、8032)は後述するメッセージ受信5005に対応し、図11の帯域調整処理A8032を行う。syn+ackである場合(8043、8044、8045)は後述するメッセージ受信2012に対応する処理であり、WANインターフェース1013にメッセージ転送後、対向のコネクション分割結合部1036からの応答を待てるよう、フラグ(Synフラグ)を立てる。synである場合(8033、8034、8035、8036)は後述するメッセージ受信2002に対応する処理であり、コネクションを開始した後にメッセージをWANインターフェース1013に転送し、対向のコネクション分割結合部1036からの応答を待てるよう、フラグ(Synフラグ)を立てる。finである場合(8037、8038、8039)は後述するメッセージ受信4003、4023に対応する処理であり、WANインターフェース1013にメッセージ転送後、対向のコネクション分割結合部1036からの応答を待てるよう、フラグ(finフラグ)を立てる。ackである場合は後述するメッセージ受信2022、4012、4032に対応する処理であり、WANインターフェース1013にメッセージを転送する。そのいずれでもない場合は後述するメッセージ受信3004に対応し、図8の分割転送処理8042を行う。
手順9002でコネクション分割数DB1017を探索してレコード取得する。例えばコネクション分割結合部1(1016)はコネクション分割数DB1017をLANホストIP列、LANホストポート列、WANホストIP列、WANホストポート列の4列を組み合わせて検索し、該当コネクション(データを入力したコネクション)に関するレコードを探索する。
分割結合部1(1016)は、手順10002でコネクション分割数DB1017を探索してレコード取得後、一つもしくは複数の関連するTCPコネクションを特定・取得10003し、それらからラウンドロビンにデータを受信10004しackを返す10005。その後受信したデータをTCPのシーケンス番号順にソート10006し、帯域監視部1(1014)へ転送10007し、処理を終える。なお、ソート10006も上述のソートと同様の手法でマージソートできる。
帯域調整処理6091では処理開始11001後、帯域監視部1014は帯域DB1015からあるレコード(任意のレコード)を検索11002する。
次に帯域監視部1014は、現在の時刻を用いてレコード内の要求レート配列と出力レート配列と最終監視時刻を更新し、要求レートの平均を更新11003し、出力レートの平均も更新11004する。例えば、要求レート配列は受信データ量に基づき更新し、出力レート配列は送信データ量に基づき更新する。
コネクション分割結合部1(1016)は、コネクション分割数DB1017を参照し、データを入力したコネクションに関するレコードを上述と同様にして探索12002する。手順12003は他ポート配列の長さが2以上であるか否かの判断である。コネクション分割結合部1(1016)は、他ポート配列の長さが2以上でなければ12003、レコードを更新12004する。例えば、制御データは、帯域監視部1(1014)からインクリメント指示であり、コネクション分割結合部1(1016)はコネクション分割数DB1017のレコードについてコネクション分割数列の値をインクリメントし、他ポート配列の長さが例えば1であるため、空きポート番号を自ポート配列に追加する。
また手順12009は他ポート配列の長さが2以上であった場合12003の処理であり、コネクション分割結合部1(1016)は、無引数のインクリメント(もしくはデクリメント)指示をWANインターフェース1013を介してコネクション分割結合部2(1036)へ転送する。
手順13002は受信データ(例えばインクリメント指示)に引数があるか否かの判断であり、引数がなかった場合は13006から13010の手順に従う。この手順は、上述の手順12002、12004〜12007と同様の手順である。すなわちインクリメント(もしくはデクリメント)処理が逆向きに行われる事になる。
一方、引数があった場合13002は、13003から13005の手順に従う。手順13003では、分割結合部1(1016)は該コネクションに関連するレコードを検索し、インクリメント指示に従いレコードを更新13004する。例えば、コネクション分割数列の値をインクリメントする。また、分割結合部1(1016)はコネクション分割結合部1にackを返す13005。
以下、図4に示した各処理の詳細を図13から図16のシーケンス図を用いて説明する。なお、二つの帯域監視部を区別するために、帯域監視部1014を帯域監視部1と記し、帯域監視部1034を帯域監視部2と記す。また、同じく二つのコネクション分割結合部を区別するために、コネクション分割結合部1016をコネクション分割結合部1と記し、コネクション分割結合部1036をコネクション分割結合部2と記す。さらに、図面ではコネクション分割結合部を分割結合部と省略している。さらに、ホスト1およびホスト2のTCPコネクション管理方法は既存のものを使うため詳細には触れず、ホスト1およびホスト2の間に入るWAN高速化装置1011および1031およびそれらの内部の動作モジュールの動作に限定して説明を記す。
図13はホスト1(1001)およびホスト2(1002)の間で新たなTCP接続を開始する際の処理シーケンス例である。この例ではホスト1(1001)が接続処理を開始する。TCPの接続開始にはホスト1からホスト2にsynパケットを送信し、それに対してホスト2がホスト1にsyn+ackパケットを返し、さらにホスト1がホスト2にackパケットを返す3ウェイハンドシェイクという手法が用いられる。
続いてコネクション分割結合部1(1016)はコネクション分割結合部2(1036)との間に代理通信用のTCPコネクションを接続2003する。ここでもウェイハンドシェイクの処理が行われる。その後、コネクション分割結合部1(1016)は受け取ったsynパケットをコネクション分割結合部2(1036)に手順2003で接続したコネクションを用いて転送2004し、コネクション分割結合部2(1036)からの応答を待つ。
次にホスト2(1002)はsyn+ackパケットを帯域監視部2(1034)に送信2011する。帯域監視部2(1034)は受け取ったsyn+ackパケットをコネクション分割結合部2(1036)に転送2012し、コネクション分割結合部2(1036)からの応答を待つ。続いてコネクション分割結合部2(1036)は受け取ったsyn+ackパケットを、応答を待っているコネクション分割結合部1(1016)に手順2003で接続したコネクションを用いて転送2013し、コネクション分割結合部1(1016)からの応答を待つ。続いてコネクション分割結合部1(1016)はコネクション分割数DB1017に該コネクションに関するレコードを登録2014し、受け取ったsyn+ackパケットを、応答を待っている帯域監視部1(1014)に転送(2015)し、応答待ち状態を解く。続いて帯域監視部1(1014)は帯域DB1015に該コネクションに関するレコードを登録2016し、受け取ったsyn+ackパケットをホスト1(1001)に転送2017し、応答待ち状態を解く。
ここまでの処理フローで、ホスト1(1001)とホスト2(1002)の間に入るWAN高速化装置1011および1031は、3ウェイハンドシェイクの通信処理を代行しつつ、該コネクションの代行用コネクションを開始し、かつ該コネクションに関する管理情報をDBに登録できる。
コネクション分割結合部1(1016)は、図7、図8に示す処理に従い、受信したパケット列を分割し、分割したパケット列を適切なコネクションを用いて転送3008し、ackを受信3009するまで待つ。続いてコネクション分割結合部1(1016)は受信したackをTCPのシーケンス番号順にソートし、帯域監視部1(1014)に転送3011する。その後、帯域監視部1(1014)はホスト1(1001)に転送3012する。
一方、複数コネクションを用いてパケット列を転送3008された分割結合部2(1036)はackを返信3009した後に、図7、図9に示す処理に従い、受信したパケット列をTCPのシーケンス番号順にソートし、帯域監視部2(1034)に転送3022する。
ここまでの処理フローで、ホスト1(1001)とホスト2(1002)の間に入るWAN高速化装置1011および1031は、ホスト1(1001)とホスト2(1002)のデータ通信を、複数のTCPコネクションを用いることで高速化できる。
図15は、ホスト1(1001)およびホスト2(1002)の間でTCPコネクションを終了する際の処理シーケンス例である。ここではホスト1(1001)が接続終了処理を開始する。TCPの接続終了処理はホスト1からホスト2にfinパケットを送信し、それに対してホスト2がackパケットを返し、さらにホスト2からホスト1に送るデータがなくなった後にホスト2からホスト1にfinパケットを送信し、それに対してホスト1がackパケットを返すという手順で行われる。
続いてホスト2(1002)はackパケットを帯域監視部2(1034)に転送4011する。ackパケットは先と同じくコネクション分割結合部1(1016)まで伝搬(4012、4013)される。コネクション分割結合部1(1016)はコネクション分割数DB1017から該当するコネクションに関するレコードを削除4014し、帯域監視部1(1014)に転送4015し、コネクション分割結合部2(1036)との間の分割したコネクションそれぞれについてfin−ackのやり取りをして4016、コネクション切断準備をし、応答待ち状態を解く。帯域監視部1(1014)も同じく帯域DB1015から該コネクションに関するレコードを削除4017し、ホスト1(1001)に転送4018し、応答待ち状態を解く。
その後、ホスト2を起点として、同様にfinパケットとackパケットのやり取りを行う(4021〜4038)。
図16は、コネクション分割結合部1(1016)および2(1036)の間の分割コネクション数の見直し処理シーケンスの例である。この処理はWAN高速化装置1(1001)および2(1002)が代行する全てのコネクションについて行う処理であり、例えば帯域監視DB1015への登録の古い順に全てのコネクションに対して処理を行う。図16はそのうち、ある1つのコネクションに関する個所である。
コネクション分割結合部1(1016)は、図11に示す処理に従い、更新したレコードの内容を引数にインクリメント指示を送信する5008。ここでの通信は制御用コネクションを用いる。続いて分割結合部2は、図11に示す処理に従い、コネクション分割結合部(1016)1にackを返す5011。その後、コネクション分割結合部1(1016)と2(1036)の間で3ウェイハンドシェイクを行い新たなTCPコネクションを確立5012する。
なお、レコード更新5007の際に他ポート配列の長さが2以上であれば、レコードの更新5007を行わず、インクリメント指示5008のみをコネクション分割結合部2(1036)に送る。その後、コネクション分割結合部2(1036)が自らの空きポートを探索し、自ポート配列に追加してレコード更新処理を行う。その後、インクリメント指示をコネクション分割結合部1(1016)に返す。すなわちインクリメント処理は図16とは逆向きに行われる。
ここまでの処理フローで、コネクション分割結合部1(1016)および2(1036)の間の分割コネクション数を見直し、分割コネクションをインクリメントすることができる。また、最後のコネクション開始処理5012をコネクション終了処理に変えることで、デクリメントすることもできる。
以上の処理手順を実装したWAN高速化装置を用いて図1の構成を取ることで、ホスト1(1001)とホスト2(1002)の間の通信を高速化可能である。
図17は実施例2におけるWAN高速化装置1011(および1031)の帯域DB1015(および1035)のスキーマおよびレコードの例である。帯域DBのスキーマ16001は、実施例1の帯域DBのスキーマに「コネクションあたり出力レート配列」列16002を追加したものである。列16002の配列のn番目の値は、コネクションをn分割した場合における、コネクション1本あたりの出力レートの最大値であるとし、現在の分割数を配列長とする。図示の例では、1番左の配列が分割数1の場合に対応し、順に分割数2・・・nの場合に対応する。例えば、分割数がさらに増えた場合は配列数を増やし、分割数を減らす場合は配列数も減らす。このようにすると、図中の1番右の配列が現在の分割数における値になる。図1のWAN高速化装置1011(および1031)のうち、既に説明した図1に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
また、以下に列16002を用いた分割数変更の要否判断方法を記す。手順5004(および11005)において判断する際に列16002を参照し、配列の最後尾(すなわち現在のコネクションあたり出力レート最大値)の値と最後尾の一つ前(すなわち一つ少ない分割数の時のコネクションあたり出力レート最大値)の値を比較し、配列の最後尾の値が、最後尾の一つ前の値よりも例えば20%以上小さい場合(又はそれらの比が閾値より小さい場合)は分割不要(分割を許容しない)と判断する。例えば、このような場合は、分割数を増やしても実効帯域が大きく改善しないものと想定される。なお、20%以外にも、予め定められた適宜の閾値(第3閾値)を用いても良い。
以上の処理手順を実装したWAN高速化装置を用いて図1の構成を取ることで、WAN高速化装置1011と1031の間のコネクション数の不要な増加を避けつつ、ホスト1(1001)とホスト2(1002)の間の通信を高速化可能である。
図18は実施例3の汎用サーバ装置を用いた通信システムの構成図の例である。実施例3では汎用サーバ装置18011(および18031)の設置後に、CD−ROMのような外部記憶媒体18051(および18061)を用いて、汎用サーバ装置18011(および18031)の二次記憶1019(および1039)に帯域監視プログラム1014(および1034)と、帯域DB1015(および1035)と、コネクション分割結合プログラム1016(および1036)と、コネクション分割数DB1017(および1037)の読込み処理を行う手順を取る。なお、実施例3では各プログラムおよびDBを汎用サーバ装置18011(および18031)に読み込ませるために外部記憶媒体を用いたが、他にもネットワーク1033上の他のサーバ装置やファイルサーバなどからダウンロードしても同様の効果が得られる。
以上の処理手順を実行し汎用サーバを用いて図18の構成を取ることで、ホスト1(1001)とホスト2(1002)の間の通信を高速化可能である。
図19は実施例4のWAN高速化の機能とホストの機能が同一の装置内で動作する汎用サーバ装置を用いた通信システムの構成図の例である。実施例4では汎用サーバ装置19011(および19031)にて、実施例1のホスト1(1001)(およびホスト2(1002))の動作に必要なホストプログラム19012(および19032)と、WAN高速化装置の動作に必要な帯域監視プログラム1014(および1034)とコネクション分割結合プログラム1016(および1036)が動作する、また、主記憶1020(および1040)は帯域監視プログラム1014(および1034)とコネクション分割結合プログラム1016(および1036)の動作に必要な帯域DB1015(および1035)とコネクション分割数DB1017(および1037)も有する。また、実施例3では実施例1のLAN IF1012(および1032)の代わりに、多くの汎用サーバ装置で利用可能なループバックデバイスを用いて、ホストプログラム19012(および19032)と帯域監視プログラム1014(および1034)が通信する。なお、実施例4では各プログラムおよびDBは二次記憶1019(および1039)に保存され、汎用サーバ装置19011(および19031)の起動後に主記憶1020(および1040)に読み込まれるが、実施例3と同じく外部記憶媒体からの読込みや、ネットワーク上の他のサーバ装置やファイルサーバなどからダウンロードしても同様の効果が得られる。
以上の処理手順を実行しWAN高速化装置とホストが同一の装置内で動作する汎用サーバ装置を用いて図19の構成を取る事で、ホストプログラム19012とホストプログラム19032の間の通信を高速化可能である。
[構成例1](実効帯域に基づきTCP分割数を決定する装置の制御方法)
ネットワークプロクシ装置の制御方法であって、
TCPコネクションごとの要求レートと、ネットワークに転送できた出力レートの各移動平均を保持する記憶領域Aと
ホストが要求したコネクションごとのコネクション分割数および分割した各コネクションの識別情報を保持する記憶領域Bを持ち
記憶領域Aの要求レートと出力レートをユーザ定義もしくはシステム定義のルールに従い比較し、
必要に応じてコネクション分割数を増加または削減し、
コネクション分割数を増加させるときには、新たなTCPコネクションCを開始し、記憶領域Bのコネクション分割数およびコネクションCの識別情報を更新し、
コネクション分割数を削減させるときには、記憶領域Bのから任意のTCPコネクションDを取得し、TCPコネクションDを終了し、記憶領域Bのコネクション分割数およびコネクションCの識別情報を更新して
制御する事を特徴のひとつとする。
構成例1に記載のネットワークプロクシ装置の制御方法において、
ユーザ定義もしくはシステム定義の閾値Aおよび閾値Bを用いて
要求レートと出力レートを比較するルールが
要求レートが出力レートよりも閾値A以上大きい場合は分割数を1増やし
要求レートが閾値Bよりも小さい場合は分割数を1減らす
である事を特徴のひとつとする。
[構成例3](実効帯域に基づきTCP分割数を決定するWAN高速化)
ネットワークプロクシ装置であって、
TCPコネクションごとの要求レートと、ネットワークに転送できた出力レートの各移動平均を保持する記憶領域Aと
ホストが要求したコネクションごとのコネクション分割数および分割した各コネクションの識別情報を保持する記憶領域Bを持ち
構成例2に記載の方法でコネクション分割数を増加または削減する制御を行う
事を特徴のひとつとする。
広域ネットワークを介してホスト1とホスト2が通信を行うシステムであって
ホスト1とホスト2の間にそれぞれ構成例3に記載のネットワークプロクシ1とネットワークプロクシ2を置き、
ホスト1の物理的な近傍にネットワークプロクシ1を配置し
同じくホスト2の物理的な近傍にネットワークプロクシ2を配置する
事を特徴のひとつとする。
[構成例5](実効帯域とコネクションあたり実効帯域に基づく方法)
構成例2に記載のネットワークプロクシ装置の制御方法において、
ユーザ定義もしくはシステム定義の閾値Cを用いて
記憶領域Aに、さらに分割数ごとの分割コネクション1本あたりの出力レートの最大値を保持し、
分割数を1増やす判断をする際に
現在のコネクションあたり出力レート最大値と一つ少ない分割数の時のコネクションあたり出力レート最大値を比較し、その比が閾値Cよりも小さい場合にのみ分割数を1増やす
制御する事を特徴のひとつとする。
1011、1031 WAN高速化装置
1014、1034 帯域監視プログラム(帯域監視部)
1015、1035 帯域DB
1016、1036 コネクション分割プログラム(分割結合部)
1017 コネクション分割数DB
Claims (9)
- ホスト間の第1網と第2網を介したTCP通信を中継するネットワーク装置であって、
ホスト間の所定のTCPコネクションによる通信において、第1網から入力されたホスト間で通信するデータのデータ量に基づく要求レートと、第2網へホスト間で通信する前記データを転送した実効帯域を示す出力レートを保持する第1記憶領域と、
ホスト間の前記所定のTCPコネクションによる通信において、第1網からのデータを、第2網の対向するネットワーク装置との間で確立された複数のコネクションに分割して転送し、第2網からの複数のコネクションを介したデータを結合して第1網に転送するコネクション分割結合部と、
コネクション分割数を保持する第2記憶領域と、
前記要求レートと前記出力レートに基づき、前記所定のTCPコネクションによる通信においてホスト間で通信する前記データを転送するためのコネクションの分割数を増加又は削減する帯域監視部と
を備え、
前記帯域制御部は、
前記要求レートと前記出力レートを比較し、前記要求レートが前記出力レートよりも予め定められた第1閾値以上大きい場合はコネクション分割数を増やし、
前記要求レートが予め定められた第2閾値よりも小さい場合はコネクション分割数を減らすネットワーク装置。 - コネクション分割数を増加させるときには、
第2網を介した前記対向するネットワーク装置との間で新たなコネクションを確立し、
前記第2記憶領域のコネクション分割数を更新し、及び、確立されたコネクションの識別情報を記憶する請求項1に記載のネットワーク装置。 - コネクション分割数を削減させるときには、
前記第2記憶領域から該当するTCPコネクションに対応するコネクションのうちのひとつを選択し、
第2網を介した対向するネットワーク装置との間で、選択されたコネクションを終了する処理を行い、
前記第2記憶領域のコネクション分割数を更新し、及び、選択されたコネクションの識別情報を削除する請求項1に記載のネットワーク装置。 - 前記帯域監視部は、
単位時間内に入力されたデータ量に基づく単位時間あたりの要求レートと、単位時間内に転送したデータ量に基づく単位時間あたりの出力レートとを監視し、それぞれについて複数の単位時間にわたる移動平均を求めて前記要求レート及び前記出力レートとする請求項1に記載のネットワーク装置。 - 前記第1記憶領域は、コネクション分割数毎に、過去に該コネクション分割数にコネクションが分割された際に監視されたコネクションあたりの出力レートの最大値をさらに保持し、
分割数を増加するか否かを判断する際に、現在のコネクション分割数におけるコネクションあたり出力レートの最大値と、ひとつ少ないコネクション分割数におけるコネクションあたり出力レート最大値を比較し、その比が予め定められた第3閾値よりも小さい場合は分割不要と判断する請求項1に記載のネットワーク装置。 - ホスト間の第1網と第2網を介したTCP通信を中継するネットワーク装置の制御方法であって、
ホスト間の所定のTCPコネクションによる通信において、第1網から入力されたホスト間で通信するデータのデータ量に基づく要求レートと、第2網へホスト間で通信する前記データを転送した実効帯域を示す出力レートを第1記憶領域に記憶し、
ホスト間の前記所定のTCPコネクションによる通信において、第1網からのデータを、第2網の対向するネットワーク装置との間で確立された複数のコネクションに分割して転送し、第2網からの複数のコネクションを介したデータを結合して第1網に転送し、
前記要求レートと前記出力レートを比較し、要求レートが出力レートよりも予め定められた第1閾値以上大きい場合は前記所定のTCPコネクションによる通信においてホスト間で通信する前記データを転送するためのコネクションの分割数を増やし、要求レートが予め定められた第2閾値よりも小さい場合は該コネクションの分割数を減らす前記ネットワーク装置の制御方法。 - 広域ネットワークを介して第1ホストと第2ホストが通信を行うネットワークシステムであって、
請求項1に記載のネットワーク装置であって、前記第1ホスト側に配置される第1のネットワーク装置と、
請求項1に記載のネットワーク装置であって、前記第2ホスト側に配置される第2のネットワーク装置と
を備え、
前記第1のネットワーク装置と前記第2のネットワーク装置は、広域ネットワークを介して配置され、
前記第1ホストと前記第2ホストが、広域ネットワークの実効帯域に基づき分割されるコネクションを介して通信することを特徴とするネットワークシステム。 - 広域ネットワークを介して第1ホストと第2ホストが通信を行うネットワークシステムであって、
前記第1ホスト側に配置される第1の汎用サーバ装置と
前記第2のスト側に配置される第2の汎用サーバ装置と
前記第1の汎用サーバ装置側に配置される請求項6に記載の方法を実行するプログラムおよび関連するデータを格納した第1の外部記憶媒体と
前記第2の汎用サーバ装置側に配置される請求項6に記載の方法を実行するプログラムおよび関連するデータを格納した第2の外部記憶媒体と
を備え、
前記第1の汎用サーバ装置と前記第2の汎用サーバ装置は、広域ネットワークを介して配置され、
前記第1の外部記憶媒体から前記第1の汎用サーバ装置にプログラムと関連するデータをコピーし、
前記第2の外部記憶媒体から前記第2の汎用サーバ装置にプログラムと関連するデータをコピーし、
前記第1ホストと前記第2ホストが、広域ネットワークの実効帯域に基づき分割されるコネクションを介して通信することを特徴とするネットワークシステム。 - 前記第1の汎用サーバ装置は前記第1ホストであり
前記第2の汎用サーバ装置は前記第2ホストである事を特徴とする請求項8に記載のネットワークシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012142354A JP5588481B2 (ja) | 2012-06-25 | 2012-06-25 | ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム |
US13/922,559 US20130346601A1 (en) | 2012-06-25 | 2013-06-20 | Network device, method of controlling the network device, and network system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012142354A JP5588481B2 (ja) | 2012-06-25 | 2012-06-25 | ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014007600A JP2014007600A (ja) | 2014-01-16 |
JP5588481B2 true JP5588481B2 (ja) | 2014-09-10 |
Family
ID=49775381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012142354A Expired - Fee Related JP5588481B2 (ja) | 2012-06-25 | 2012-06-25 | ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130346601A1 (ja) |
JP (1) | JP5588481B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7169162B2 (ja) * | 2018-10-29 | 2022-11-10 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 制御システム、制御方法、及びプログラム |
CN110839020A (zh) * | 2019-10-25 | 2020-02-25 | 网联清算有限公司 | 安全服务调用方法和安全服务调用系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW576045B (en) * | 2002-09-20 | 2004-02-11 | Ind Tech Res Inst | System for controlling network flow by monitoring download bandwidth |
JP3964806B2 (ja) * | 2003-02-27 | 2007-08-22 | 日本電信電話株式会社 | 動画像伝送システム、動画像送信装置、動画像中継装置、動画像受信装置、プログラム、および記録媒体 |
US7286476B2 (en) * | 2003-08-01 | 2007-10-23 | F5 Networks, Inc. | Accelerating network performance by striping and parallelization of TCP connections |
-
2012
- 2012-06-25 JP JP2012142354A patent/JP5588481B2/ja not_active Expired - Fee Related
-
2013
- 2013-06-20 US US13/922,559 patent/US20130346601A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20130346601A1 (en) | 2013-12-26 |
JP2014007600A (ja) | 2014-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6697556B2 (ja) | マルチパス転送設計 | |
US7519048B2 (en) | Communication system and packet switching method thereof | |
US8090866B1 (en) | TCP proxy connection management in a gigabit environment | |
US9185033B2 (en) | Communication path selection | |
US20140181140A1 (en) | Terminal device based on content name, and method for routing based on content name | |
US20160080529A1 (en) | Method and device for sending requests | |
WO2021047515A1 (zh) | 一种服务路由方法及装置 | |
JP4398354B2 (ja) | 中継システム | |
US9794354B1 (en) | System and method for communication between networked applications | |
US20160241482A1 (en) | Packet communication apparatus and packet communication method | |
US8838782B2 (en) | Network protocol processing system and network protocol processing method | |
WO2019001484A1 (zh) | 一种实现发送端调速的方法、装置和系统 | |
Davern et al. | HTTPEP: A HTTP performance enhancing proxy for satellite systems | |
US20070291782A1 (en) | Acknowledgement filtering | |
CA2769722A1 (en) | System and method for identifying multiple paths between network nodes | |
EP2798507B1 (en) | Enhanced acknowledgement handling in communication packet transfer | |
JP2009239444A (ja) | パケット順序制御方法、受信装置、送信装置および通信システム | |
JP5588481B2 (ja) | ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム | |
US20160277943A1 (en) | Network system, control method of network system, communication device, and program | |
US20040267960A1 (en) | Force master capability during multicast transfers | |
EP3012742B1 (en) | Data distribution system, data communication device and program for data distribution | |
JP4394710B2 (ja) | 負荷制御装置及び方法及びプログラム | |
US11223567B2 (en) | Transmission control protocol session mobility | |
CN1182680C (zh) | 在数据交换环境中路由选择信息的定步同步方法和设备 | |
US9143458B2 (en) | Network device, method for controlling the network device, and network system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140311 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140509 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140708 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140725 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5588481 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |