JP5588481B2 - ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム - Google Patents

ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム Download PDF

Info

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
Application number
JP2012142354A
Other languages
English (en)
Other versions
JP2014007600A (ja
Inventor
大輔 伊藤
雄二 新原
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.)
Honda Motor Co Ltd
Hitachi High Tech Corp
Original Assignee
Honda Motor Co Ltd
Hitachi High Technologies 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 Honda Motor Co Ltd, Hitachi High Technologies Corp filed Critical Honda Motor Co Ltd
Priority to JP2012142354A priority Critical patent/JP5588481B2/ja
Priority to US13/922,559 priority patent/US20130346601A1/en
Publication of JP2014007600A publication Critical patent/JP2014007600A/ja
Application granted granted Critical
Publication of JP5588481B2 publication Critical patent/JP5588481B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/41Flow control; Congestion control by acting on aggregated flows or links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステムに係り、特に、プロクシ装置上でTCPを多重化して通信を高速化するネットワーク装置、ネットワーク装置の制御方法及びネットワークシステムに関する。
複数の情報通信機器の間で相互に通信を行う場合、一般にRFC 793(非特許文献1)で定義されたTCP(Transmission Control Protocol)を用いる。TCPはインターネット上の実質的標準プロトコルであり、多くの情報通信機器に実装されている。TCPを用いることで、情報通信機器の種類を問わず、相互に通信を行うことが可能になる。
[WAN高速化装置]
しかし、広域網(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のフロー制御の制約から実効帯域が得られない課題の別の解決方法として、送信側通信端末の通信制御方式を変更し、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]」参照)。
特開2003−69615号公報「通信制御装置および通信制御方法」 特開2004−260668号公報「動画像伝送システム、動画像送信装置、動画像中継装置、動画像受信装置、プログラム、および記録媒体」 US2005/025150「Accelerationg Network Performance by Striping and Parallelization of TCP Connections」
RFC 793、"TRANSMISSION CONTROL PROTOCOL、 DARPA INTERNET PROGRAM、 PROTOCOL SPECIFICATION"、 http://datatracker.ietf.org/doc/rfc793/
従来のWAN高速化装置では、到達確認応答を代理応答するために、プロクシ装置にクライアントよりも大きなフロー制御用ウインドウを持たせ、多少遅延が長くともウインドウを使い切らないようにする事で実現される。しかし、この方式では、想定以上に遅延が大きい環境ではウインドウを使い切ってしまうため、依然としてTCPのフロー制御の制約から十分な帯域が得られないという課題があった。
従って本発明が解決しようとする第一の課題は、TCPの通信を十分に高速化可能なWAN高速化装置を提供する事である。
また、従来の送信側通信端末の通信制御方式を変更するものでは、サーバクライアント方式で構成された既設の環境にある全てのサーバ端末およびクライアント端末の通信制御方式を変更する必要があり、既設の環境への導入が困難という課題があった。
従って本発明が解決しようとする第二の課題は、既設の環境への導入が容易なプロクシ装置においてTCPを多重化可能なWAN高速化装置を提供する事である。
また、従来のTCP多重化方法をプロクシ装置に応用した例では、クライアントからのコネクション確立要求を受けた時に、適当な分割数に分割し、TCP多重化したコネクションを確立する。しかしコネクション確立要求時の状況に応じて多重化数が静的に決まるため、ネットワークの状況に応じて常に適切な制御を行う事は困難と言う課題があった。
従って本発明が解決しようとする第三の課題は、ネットワークの状況に応じてTCPの多重化数を動的に制御できるTCPを多重化可能なWAN高速化装置を提供する事である。
上述のように、本発明は、TCPの通信を高速化可能なネットワーク装置、ネットワーク装置の制御方法及びネットワークシステムを提供する事を目的とする。また、本発明は、既設の環境への導入が容易なプロクシ装置においてTCPを多重化可能なネットワーク装置、ネットワーク装置の制御方法及びネットワークシステムを提供する事を目的とする。
本願は上記課題を解決する手段を複数含んでいるが、その一例をあげるならばTCPコネクションごとの要求レートと、ネットワークに転送できた出力レートの各移動平均を保持する記憶領域Aとホストが要求したコネクションごとのコネクション分割数および分割した各コネクションの識別情報を保持する記憶領域Bを持ち記憶領域Aの要求レートと出力レートをユーザ定義もしくはシステム定義のルールに従い比較し必要に応じてコネクション分割数を増加または削減し、コネクション分割数を増加させるときには新たなTCPコネクションCを開始し記憶領域Bのコネクション分割数およびコネクションCの識別情報を更新しコネクション分割数を削減させるときには記憶領域Bから任意のTCPコネクションDを取得しTCPコネクションDを終了し記憶領域Bのコネクション分割数およびコネクションCの識別情報を更新し制御する事を特徴とする。
このような構成により、本WAN高速化装置では、既設の環境にあるサーバ端末およびクライアント端末の通信制御方式を変更する事なく、プロクシ装置間のTCP通信のみを多重化し、クライアント−サーバ間のTCPの通信を十分に高速化できる。
本発明の第1の解決手段によると、
ホスト間の第1網と第2網を介したTCP通信を中継するネットワーク装置であって、
ホスト間のTCPコネクション毎に、第1網から入力されたデータ量に基づく要求レートと、第2網へデータを転送した実効帯域を示す出力レートを保持する第1記憶領域と、
ホスト間のTCPコネクション毎に、第1網からのデータを、第2網の対向するネットワーク装置との間で確立された複数のコネクションに分割して転送し、第2網からの複数のコネクションを介したデータを結合して第1網に転送するコネクション分割結合部と、
コネクション分割数を保持する第2記憶領域と、
前記要求レートと前記出力レートに基づき、コネクション分割数を増加又は削減する帯域監視部と
を備えたネットワーク装置が提供される。
本発明の第2の解決手段によると、
ホスト間の第1網と第2網を介したTCP通信を中継するネットワーク装置の制御方法であって、
ホスト間のTCPコネクション毎に、第1網から入力されたデータ量に基づく要求レートと、第2網へデータを転送した実効帯域を示す出力レートを第1記憶領域に記憶し、
ホスト間のTCPコネクション毎に、第1網からのデータを、第2網の対向するネットワーク装置との間で確立された複数のコネクションに分割して転送し、第2網からの複数のコネクションを介したデータを結合して第1網に転送し、
前記要求レートと前記出力レートに基づき、コネクション分割数を増加又は削減する
前記ネットワーク装置の制御方法が提供される。
本発明の第3の解決手段によると、
広域ネットワークを介して第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ホストが、広域ネットワークの実効帯域に基づき分割されるコネクションを介して通信することを特徴とするネットワークシステムが提供される。
本発明によると、TCPの通信を高速化可能なネットワーク装置、ネットワーク装置の制御方法及びネットワークシステムを提供できる。また、本発明によると、既設の環境への導入が容易なプロクシ装置においてTCPを多重化可能なネットワーク装置、ネットワーク装置の制御方法及びネットワークシステムを提供できる。
実施例1の全体構成図である。 実施例1の帯域DBのスキーマとレコード例である。 実施例1のコネクション分割数DBのスキーマとレコード例である。 コネクション開始から終了までのフローチャート。 実施例1の帯域監視部のフローチャートである。 実施例1の帯域監視部の分割転送処理のフローチャートである。 実施例1のコネクション分割結合部のフローチャートである。 実施例1のコネクション分割結合部の分割転送処理のフローチャートである。 実施例1のコネクション分割結合部の分割受信処理のフローチャートである。 実施例1の帯域監視部の帯域調整処理のフローチャートである。 実施例1のコネクション分割結合部の帯域調整処理Aのフローチャートである。 実施例1のコネクション分割結合部の帯域調整処理Bのフローチャートである。 実施例1のコネクション開始シーケンスである。 実施例1の定常状態の通信シーケンスである。 実施例1のコネクション終了シーケンスである。 実施例1の分割コネクション数の見直し処理シーケンスである。 実施例2の帯域DBのスキーマとレコード例である。 実施例3の全体構成図である。 実施例4の全体構成図である。
以下、実施例を図面を用いて説明する。
本実施例では、例えば全ての端末からの通信を平等に高速化するWAN高速化装置1011および1031の例を説明する。
図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)によって動かされる。
実施例1ではプログラムとして帯域監視プログラム1014(および1034)およびコネクション分割結合プログラム1016(および1036)を含む。以下、CPU1018が帯域監視プログラムを実行して実現するブロックを帯域監視部1014(および1034)、CPU1018がコネクション分割結合プログラムを実行して実現するブロックをコネクション分割結合部1016(および1036)として説明する。二つのコネクション分割結合部1016および1036の間には予め制御用のTCPコネクションを張っておく。これは例えば特別なポート番号を使ったり、特別なIPアドレスを使ったりといった方法で、他の接続と区別することができる。
主記憶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分36秒10の時に処理の要求が4KB、出力が3KBであった場合(14003)には、表14001は表14004のように変化する。ここでは行14002に対応する行14005の通り、要求レート配列の最後の一列が0+4すなわち4(KB)、出力レート配列の最後の一列が0+3すなわち3(KB)、最終監視時刻は現在時すなわち2011年3月19日8時45分36秒10に更新される。このように要求レートおよび出力レート両配列の最後の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)を更新し、管理する。
図4に、図1に示した通信システムにおいて、ホスト1(1001)とホスト2(1002)の間のコネクション開始から終了までの流れを示す。
ホスト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等に示す。
また、WAN高速化装置1011および1012においてコネクション分割数の変更要否判断及び変更(17009)を定期的に行う。図ではコネクション開始から終了までの流れの中に記載しているが、これらの処理とは非同期でもよい。本判断は、例えばコネクションを開始したホストに接続されたWAN高速化装置が行う。すなわちホスト1(1001)がコネクションを開始した時にはWAN高速化装置1011が行い、ホスト2(1002)がコネクションを開始した時にはWAN高速化装置1012が判断を行う。判断の結果、変更要であればコネクション分割数変更処理を行う。本処理によって、定常状態通信(17003)におけるコネクション分割数が変更される。
(動作フローチャート)
続いて、帯域監視部及びコネクション分割結合部の実装を、図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を行う。
続いてメッセージ分割結合部1016からのデータ取得6005後、まずデータが取得できたかどうか判断6006する。データがあった場合には、synフラグが立っておりかつackを受信したか6061、finフラグが立っておりかつackを受信したか6065、それ以外かという判断に基づき処理を進める。synフラグが立っておりかつackを受信した場合(6061、6062、6063、6064)は、後述するメッセージ受信2015および2025に対応し、帯域監視DB1015に新たなレコードを登録し、データをLANインターフェース1012へ転送6063し、Synフラグを下げる。finフラグが立っておりかつackを受信した場合(6065、6066、6067、6068)は後述するメッセージ受信4015および4035に対応し、帯域監視DB1015から該当するコネクションのレコードを削除し、データをLANインターフェース1012へ転送6067し、finフラグを下げる。そのいずれでもない場合は、後述するメッセージ受信2005、3011、3022、4004、4024に対応し、データをLANインターフェース1012へ転送6069する。
続いて現在時刻を取得6008し、先のループ中に変数old_timeに保存した時刻と比較して例えば1秒以上経過しているか判断6009する。1秒以上経過していた場合は、図10の帯域調整処理6091を行う。その後、手順6008で取得した時刻を変数old_timeに保存し、手順6002に戻る。帯域調整処理を行う周期は1秒以外にも適宜の周期でもよいし、不定期でもよい。
図6は、帯域監視部の分割転送処理6039のフローチャートである。各処理は、帯域監視部1014が実行する。
帯域監視部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。この操作の結果、該コネクションの出力レートが、例えば、実際の送信データ量(実効帯域)に基づき更新される。
図7はコネクション分割結合部のフローチャートである。コネクション分割結合部1016は処理開始8001後、帯域監視部1014からデータを取得8002してそれに応じた処理(8003〜8042)を行い、続いてWANインターフェースからデータを取得8005してそれに応じた処理(8006〜8076)を行うというループを繰り返す。以下、各処理の詳細を記す。各処理は、コネクション分割結合部1016が実行する。
帯域監視部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を行う。
続いてWANインターフェースからのデータ取得8005後、まずデータが取得できたかどうか判断8006する。データがあった場合には、それが自分宛(自装置宛)のfin8061か、制御メッセージ8063か、synフラグが立っておりかつack8065か、finフラグが立っておりかつack8069か、synもしくはfinもしくはack8074か、それ以外かという判断に基づき処理を進める。自分宛(自装置宛)のfinである場合(8061、8062)は後述するメッセージ受信4016、4036に対応し、ackを返す。制御メッセージである場合(8063、8064)は後述するメッセージ受信5008に対応し、図12の帯域調整処理B8064を行う。synフラグが立っておりかつackである場合(8065、8066、8067、8068)は後述するメッセージ受信2013、2023に対応し、コネクション分割数DB1017に新たなレコードを登録し、帯域監視部1014に転送後Synフラグを下げる。finフラグが立っておりかつackである場合(8069、8070、8071、8072、8073)は後述するメッセージ受信4013、4033に対応し、コネクション分割数DB1017から該当レコードを削除し、帯域監視部1014に転送し、finフラグを下げた後に、対向のコネクション分割結合部1036にfinを返す。synもしくはfinもしくはackである場合(8074、8075)は後述する処理2004、4003、4023に対応し、メッセージを帯域監視部1014に転送する。そのいずれでもない場合はメッセージ受信3008に対応し、図9の分割受信処理8076を行う。
図8はコネクション分割結合部の分割転送処理8042のフローチャートである。各処理は、コネクション分割結合部1016が実行する。
手順9002でコネクション分割数DB1017を探索してレコード取得する。例えばコネクション分割結合部1(1016)はコネクション分割数DB1017をLANホストIP列、LANホストポート列、WANホストIP列、WANホストポート列の4列を組み合わせて検索し、該当コネクション(データを入力したコネクション)に関するレコードを探索する。
次に、一つもしくは複数の関連するTCPコネクションを特定・取得9003する。例えば、対向するWAN高速化装置1031との間で確立された分割コネクションを、探索されたレコードに従い特定する。それらに対してラウンドロビンにデータを分割し転送9004する。例えば、コネクション分割結合部1(1016)は該コネクションに関するレコードのコネクション分割数列に従い、受信したパケット列を分割する。分割方式はラウンドロビンやハッシュといったものを用いることができる。本実施例ではラウンドロビンを採用して説明する。ラウンドロビンでは分割したコネクションに対して順番にパケットを流していく。分割したコネクションの順序は、例えば、コネクション分割数DB1017の自ポート配列および他ポート配列の組み合わせを、数字の小さい順にソートして決める。例えば表15001のレコード15002の場合は、1番目のコネクションはポートの組み合わせが[8013−4759]であり、2番目のコネクションはポートの組み合わせが[10129−4759]である。
その後、コネクション分割結合部1(1016)はackを受信するまで待つ9005。コネクション分割結合部1(1016)は受信したackをTCPのシーケンス番号順にソート9006し、帯域監視部1(1014)へ転送9007し、処理を終える。ここでackはTCPの輻輳制御などの影響から到着順は多少前後するものの、概ねパケットを転送したときの順に返ってくる。そのため、分割した各コネクションからラウンドロビンにデータを取得し、その都度マージソートを行えばソート可能である。
図9はコネクション分割結合部の分割受信処理のフローチャートである。
分割結合部1(1016)は、手順10002でコネクション分割数DB1017を探索してレコード取得後、一つもしくは複数の関連するTCPコネクションを特定・取得10003し、それらからラウンドロビンにデータを受信10004しackを返す10005。その後受信したデータをTCPのシーケンス番号順にソート10006し、帯域監視部1(1014)へ転送10007し、処理を終える。なお、ソート10006も上述のソートと同様の手法でマージソートできる。
図10は帯域監視部の帯域調整処理6091のフローチャートである。
帯域調整処理6091では処理開始11001後、帯域監視部1014は帯域DB1015からあるレコード(任意のレコード)を検索11002する。
次に帯域監視部1014は、現在の時刻を用いてレコード内の要求レート配列と出力レート配列と最終監視時刻を更新し、要求レートの平均を更新11003し、出力レートの平均も更新11004する。例えば、要求レート配列は受信データ量に基づき更新し、出力レート配列は送信データ量に基づき更新する。
続いて帯域監視部1014は、分割数変更の要否を判断11005する。表14001の例では要求レートの移動平均は12.4パケット/秒であり、出力レートの移動平均も7.2パケット/秒である。続いて分割数変更の要否を判断5004する。一例として要求レートが出力レートよりも20%(第1閾値)以上大きい場合は分割数を1増やす必要があり、要求レートが0パケット/秒(第2閾値)である場合は分割数を1減らす必要があり、いずれでもない場合は不要と判断する。なお、本実施例では閾値を20%、0パケット/秒とするが、システム定義もしくはユーザ定義の値としてこれら以外の閾値を用いてもよい。表14001の例では要求レートが出力レートよりも20%以上大きいため、分割数を1増やす必要があると判断する。判断の結果が変更要であれば、コネクション分割結合部1016に分割数のインクリメント指示(分割数を減らす場合はデクリメント指示)を送信11006する。その後、処理を終える11007。
図11はコネクション分割結合部の帯域調整処理A(8032)のフローチャートである。例えば、帯域監視部からインクリメント指示を受信した場合のフローチャートである。
コネクション分割結合部1(1016)は、コネクション分割数DB1017を参照し、データを入力したコネクションに関するレコードを上述と同様にして探索12002する。手順12003は他ポート配列の長さが2以上であるか否かの判断である。コネクション分割結合部1(1016)は、他ポート配列の長さが2以上でなければ12003、レコードを更新12004する。例えば、制御データは、帯域監視部1(1014)からインクリメント指示であり、コネクション分割結合部1(1016)はコネクション分割数DB1017のレコードについてコネクション分割数列の値をインクリメントし、他ポート配列の長さが例えば1であるため、空きポート番号を自ポート配列に追加する。
次にコネクション分割結合部1(1016)は、レコード更新12004で更新したレコードの内容を引数に、インクリメント指示をWANインターフェース1013を介してコネクション分割結合部2(1036)に送信する。ここでの通信は制御用コネクションを用いる。コネクション分割結合部1(1016)は、WANインターフェース1013を介したコネクション分割結合部2(1036)からのackを待つ12006。その後、コネクション分割結合部1(1016)は、コネクション分割結合部2(1036)との間で3ウェイハンドシェイクを行い新たなTCPコネクションを確立12007する。
また手順12009は他ポート配列の長さが2以上であった場合12003の処理であり、コネクション分割結合部1(1016)は、無引数のインクリメント(もしくはデクリメント)指示をWANインターフェース1013を介してコネクション分割結合部2(1036)へ転送する。
図12はコネクション分割結合部の帯域調整処理Bのフローチャートである。例えば、対向するコネクション分割結合部からからインクリメント指示を受信した場合のフローチャートである。
手順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(1001)はsynパケットを、LANインターフェース1012を介して帯域監視部1(1014)に送信2001する。なお、ここでLANインターフェース1012を介す事は自明であるため、図13および本実施例の処理の説明ではLANインターフェース1012(および1032)を省略する。また同様の理由でWANインターフェース1013(および1033)も省略する。帯域監視部1(1014)は受け取ったsynパケットをコネクション分割結合部1(1016)に転送2002し、コネクション分割結合部1(1016)からの応答を待つ。
続いてコネクション分割結合部1(1016)はコネクション分割結合部2(1036)との間に代理通信用のTCPコネクションを接続2003する。ここでもウェイハンドシェイクの処理が行われる。その後、コネクション分割結合部1(1016)は受け取ったsynパケットをコネクション分割結合部2(1036)に手順2003で接続したコネクションを用いて転送2004し、コネクション分割結合部2(1036)からの応答を待つ。
続いてコネクション分割結合部2(1036)は受け取ったsynパケットを帯域監視部2(1034)に転送2005する。続いて帯域監視部2(1034)は受け取ったsynパケットをホスト2(1002)に転送2006する。
次にホスト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)はackパケットを帯域監視部1(1014)に送信2021する。続いて帯域監視部1(1014)は受け取ったackパケットをコネクション分割結合部1(1016)に転送2022する。続いてコネクション分割結合部1(1016)は受け取ったackパケットを、応答を待っているコネクション分割結合部2(1036)に手順2003で接続したコネクションを用いて転送2023する。続いてコネクション分割結合部2(1036)はコネクション分割数DB1037に該コネクションに関するレコードを登録2024し、受け取ったackパケットを、応答を待っている帯域監視部2(1034)に転送2025し、応答待ち状態を解く。続いて帯域監視部2(1034)では帯域DB1035に該コネクションに関するレコードを登録2026し、受け取ったackパケットを、ホスト2に転送2027し、応答待ち状態を解く。
ここまでの処理フローで、ホスト1(1001)とホスト2(1002)の間に入るWAN高速化装置1011および1031は、3ウェイハンドシェイクの通信処理を代行しつつ、該コネクションの代行用コネクションを開始し、かつ該コネクションに関する管理情報をDBに登録できる。
図14は、ホスト1(1001)およびホスト2(1002)の間で、図13で開始したTCP接続を用いてデータ通信する際の処理シーケンス例である。この例ではホスト1(1001)がホスト2(1002)にデータを送信する。逆の方向も同様である。なお、図13の時点ではコネクション分割結合部1(1016)および2(1036)の間のTCPコネクションは1回線しかないが、ここではTCPコネクションがすでに2回線あるとする。コネクション分割結合部1(1016)および2(1036)の間のTCPコネクションの増加減少に関する手順は上述の通りである。
まずホスト1(1001)はパケット列を帯域監視部1(1014)に送信3001する。帯域監視部1(1014)は最長でバッファサイズ分のパケット列を受信する。帯域監視部1(1014)は、図5、図6に示す処理に従い、受信したパケット列をコネクション分割結合部1(1016)に転送3004する。
コネクション分割結合部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する。
続いて帯域監視部2(1034)は、図5に示す処理に従い、受信したパケット列をホスト2(1002)に転送する3023。ホスト2(1002)はTCPの制御に従い帯域監視部2(1034)にackを返し(3024)、そのackは分割結合部2(1036)に伝わり処理を終える。
ここまでの処理フローで、ホスト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パケットを返すという手順で行われる。
まずホスト1(1001)はfinパケットを帯域監視部1(1014)に転送4001する。各モジュールはfinパケットを伝搬(4002、4003、4004、4005)しホスト2(1002)に到達する。なお、この伝搬の過程で、帯域監視部1(1014)と分割結合部1(1016)は、それぞれ分割結合部1(1016)と分割結合部2(1036)からの応答を待つ。
続いてホスト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)。
ここまでの処理フローで、ホスト1(1001)とホスト2(1002)の間に入るWAN高速化装置1011および1031は、fin−ackのやり取りを代行しつつ、コネクション分割結合部1(1016)と2(1036)の間の分割コネクションも4016および4036のfin−ackのやり取りで終了させる事ができる。
図16は、コネクション分割結合部1(1016)および2(1036)の間の分割コネクション数の見直し処理シーケンスの例である。この処理はWAN高速化装置1(1001)および2(1002)が代行する全てのコネクションについて行う処理であり、例えば帯域監視DB1015への登録の古い順に全てのコネクションに対して処理を行う。図16はそのうち、ある1つのコネクションに関する個所である。
まず帯域監視部1(1014)は、コネクション分割結合部1(1016)に分割数のインクリメント指示5005を送信する。
コネクション分割結合部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)の間の通信を高速化可能である。
本実施例では、分割数変更の要否判断を改良し、WAN高速化装置1011と1031の間のコネクション数の不要な増加を避ける機構を有するWAN高速化装置の例を説明する。
図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の更新方法を記す。手順5003(および11004)において出力レートを更新する際に、現在の出力レートを配列長(すなわち現在の分割数)で割った値と列16002の最後尾(即ち現在の分割数における最大値)を比較し、現在の出力レートを配列長で割った値の方が大きい場合は列16002の最後尾を現在の出力レートを配列長で割った値で更新する。すなわち、コネクションあたりの出力レートの最大値が記憶される。また、手順5005(および11006)においてインクリメント指示を出す場合は列16002の配列長を1増やし、デクリメント指示を出す場合は列16002の配列長を1減らす。
また、以下に列16002を用いた分割数変更の要否判断方法を記す。手順5004(および11005)において判断する際に列16002を参照し、配列の最後尾(すなわち現在のコネクションあたり出力レート最大値)の値と最後尾の一つ前(すなわち一つ少ない分割数の時のコネクションあたり出力レート最大値)の値を比較し、配列の最後尾の値が、最後尾の一つ前の値よりも例えば20%以上小さい場合(又はそれらの比が閾値より小さい場合)は分割不要(分割を許容しない)と判断する。例えば、このような場合は、分割数を増やしても実効帯域が大きく改善しないものと想定される。なお、20%以外にも、予め定められた適宜の閾値(第3閾値)を用いても良い。
以上の処理手順を実装したWAN高速化装置を用いて図1の構成を取ることで、WAN高速化装置1011と1031の間のコネクション数の不要な増加を避けつつ、ホスト1(1001)とホスト2(1002)の間の通信を高速化可能である。
本実施例では、実施例1または実施例2のWAN高速化装置1011および1031の動作に必要な帯域監視プログラム1014および1034と、帯域DB1015および1035と、コネクション分割結合プログラム1016および1036と、コネクション分割数DB1017および1037を、システム設置時や起動時などシステム運用前に二次記憶1019および1039に読込ませる事で、汎用サーバ装置を用いた運用を可能にした例である。
図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)の間の通信を高速化可能である。
本実施例では、実施例1または実施例2または実施例3のWAN高速化装置1011の機能とホスト1(1001)の機能、および、もしくはWAN高速化装置1031の機能とホスト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の識別情報を更新して
制御する事を特徴のひとつとする。
[構成例2]
構成例1に記載のネットワークプロクシ装置の制御方法において、
ユーザ定義もしくはシステム定義の閾値Aおよび閾値Bを用いて
要求レートと出力レートを比較するルールが
要求レートが出力レートよりも閾値A以上大きい場合は分割数を1増やし
要求レートが閾値Bよりも小さい場合は分割数を1減らす
である事を特徴のひとつとする。
[構成例3](実効帯域に基づきTCP分割数を決定するWAN高速化)
ネットワークプロクシ装置であって、
TCPコネクションごとの要求レートと、ネットワークに転送できた出力レートの各移動平均を保持する記憶領域Aと
ホストが要求したコネクションごとのコネクション分割数および分割した各コネクションの識別情報を保持する記憶領域Bを持ち
構成例2に記載の方法でコネクション分割数を増加または削減する制御を行う
事を特徴のひとつとする。
[構成例4](実効帯域に基づきTCP分割数を決定する装置を用いたシステム)
広域ネットワークを介してホスト1とホスト2が通信を行うシステムであって
ホスト1とホスト2の間にそれぞれ構成例3に記載のネットワークプロクシ1とネットワークプロクシ2を置き、
ホスト1の物理的な近傍にネットワークプロクシ1を配置し
同じくホスト2の物理的な近傍にネットワークプロクシ2を配置する
事を特徴のひとつとする。
[構成例5](実効帯域とコネクションあたり実効帯域に基づく方法)
構成例2に記載のネットワークプロクシ装置の制御方法において、
ユーザ定義もしくはシステム定義の閾値Cを用いて
記憶領域Aに、さらに分割数ごとの分割コネクション1本あたりの出力レートの最大値を保持し、
分割数を1増やす判断をする際に
現在のコネクションあたり出力レート最大値と一つ少ない分割数の時のコネクションあたり出力レート最大値を比較し、その比が閾値Cよりも小さい場合にのみ分割数を1増やす
制御する事を特徴のひとつとする。
本発明は、例えばTCP通信を用いるシステムに利用可能である。
1001、1002 ホスト
1011、1031 WAN高速化装置
1014、1034 帯域監視プログラム(帯域監視部)
1015、1035 帯域DB
1016、1036 コネクション分割プログラム(分割結合部)
1017 コネクション分割数DB

Claims (9)

  1. ホスト間の第1網と第2網を介したTCP通信を中継するネットワーク装置であって、
    ホスト間の所定のTCPコネクションによる通信において、第1網から入力されたホスト間で通信するデータのデータ量に基づく要求レートと、第2網へホスト間で通信する前記データを転送した実効帯域を示す出力レートを保持する第1記憶領域と、
    ホスト間の前記所定のTCPコネクションによる通信において、第1網からのデータを、第2網の対向するネットワーク装置との間で確立された複数のコネクションに分割して転送し、第2網からの複数のコネクションを介したデータを結合して第1網に転送するコネクション分割結合部と、
    コネクション分割数を保持する第2記憶領域と、
    前記要求レートと前記出力レートに基づき、前記所定のTCPコネクションによる通信においてホスト間で通信する前記データを転送するためのコネクション分割数を増加又は削減する帯域監視部と
    を備え
    前記帯域制御部は、
    前記要求レートと前記出力レートを比較し、前記要求レートが前記出力レートよりも予め定められた第1閾値以上大きい場合はコネクション分割数を増やし、
    前記要求レートが予め定められた第2閾値よりも小さい場合はコネクション分割数を減らすネットワーク装置。
  2. コネクション分割数を増加させるときには、
    第2網を介した前記対向するネットワーク装置との間で新たなコネクションを確立し、
    前記第2記憶領域のコネクション分割数を更新し、及び、確立されたコネクションの識別情報を記憶する請求項1に記載のネットワーク装置。
  3. コネクション分割数を削減させるときには、
    前記第2記憶領域から該当するTCPコネクションに対応するコネクションのうちのひとつを選択し、
    第2網を介した対向するネットワーク装置との間で、選択されたコネクションを終了する処理を行い、
    前記第2記憶領域のコネクション分割数を更新し、及び、選択されたコネクションの識別情報を削除する請求項1に記載のネットワーク装置。
  4. 前記帯域監視部は、
    単位時間内に入力されたデータ量に基づく単位時間あたりの要求レートと、単位時間内に転送したデータ量に基づく単位時間あたりの出力レートとを監視し、それぞれについて複数の単位時間にわたる移動平均を求めて前記要求レート及び前記出力レートとする請求項1に記載のネットワーク装置。
  5. 前記第1記憶領域は、コネクション分割数毎に、過去に該コネクション分割数にコネクションが分割された際に監視されたコネクションあたりの出力レートの最大値をさらに保持し、
    分割数を増加するか否かを判断する際に、現在のコネクション分割数におけるコネクションあたり出力レートの最大値と、ひとつ少ないコネクション分割数におけるコネクションあたり出力レート最大値を比較し、その比が予め定められた第3閾値よりも小さい場合は分割不要と判断する請求項1に記載のネットワーク装置。
  6. ホスト間の第1網と第2網を介したTCP通信を中継するネットワーク装置の制御方法であって、
    ホスト間の所定のTCPコネクションによる通信において、第1網から入力されたホスト間で通信するデータのデータ量に基づく要求レートと、第2網へホスト間で通信する前記データを転送した実効帯域を示す出力レートを第1記憶領域に記憶し、
    ホスト間の前記所定のTCPコネクションによる通信において、第1網からのデータを、第2網の対向するネットワーク装置との間で確立された複数のコネクションに分割して転送し、第2網からの複数のコネクションを介したデータを結合して第1網に転送し、
    前記要求レートと前記出力レートを比較し、要求レートが出力レートよりも予め定められた第1閾値以上大きい場合は前記所定のTCPコネクションによる通信においてホスト間で通信する前記データを転送するためのコネクション分割数を増やし、要求レートが予め定められた第2閾値よりも小さい場合は該コネクションの分割数を減らす前記ネットワーク装置の制御方法。
  7. 広域ネットワークを介して第1ホストと第2ホストが通信を行うネットワークシステムであって、
    請求項1に記載のネットワーク装置であって、前記第1ホスト側に配置される第1のネットワーク装置と、
    請求項1に記載のネットワーク装置であって、前記第2ホスト側に配置される第2のネットワーク装置と
    を備え、
    前記第1のネットワーク装置と前記第2のネットワーク装置は、広域ネットワークを介して配置され、
    前記第1ホストと前記第2ホストが、広域ネットワークの実効帯域に基づき分割されるコネクションを介して通信することを特徴とするネットワークシステム。
  8. 広域ネットワークを介して第1ホストと第2ホストが通信を行うネットワークシステムであって、
    前記第1ホスト側に配置される第1の汎用サーバ装置と
    前記第2のスト側に配置される第2の汎用サーバ装置と
    前記第1の汎用サーバ装置側に配置される請求項に記載の方法を実行するプログラムおよび関連するデータを格納した第1の外部記憶媒体と
    前記第2の汎用サーバ装置側に配置される請求項に記載の方法を実行するプログラムおよび関連するデータを格納した第2の外部記憶媒体と
    を備え、
    前記第1の汎用サーバ装置と前記第2の汎用サーバ装置は、広域ネットワークを介して配置され、
    前記第1の外部記憶媒体から前記第1の汎用サーバ装置にプログラムと関連するデータをコピーし、
    前記第2の外部記憶媒体から前記第2の汎用サーバ装置にプログラムと関連するデータをコピーし、
    前記第1ホストと前記第2ホストが、広域ネットワークの実効帯域に基づき分割されるコネクションを介して通信することを特徴とするネットワークシステム。
  9. 前記第1の汎用サーバ装置は前記第1ホストであり
    前記第2の汎用サーバ装置は前記第2ホストである事を特徴とする請求項に記載のネットワークシステム。
JP2012142354A 2012-06-25 2012-06-25 ネットワーク装置、ネットワーク装置の制御方法及びネットワークシステム Expired - Fee Related JP5588481B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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