JP2013179502A - 通信制御装置、通信制御方法および通信制御プログラム - Google Patents

通信制御装置、通信制御方法および通信制御プログラム Download PDF

Info

Publication number
JP2013179502A
JP2013179502A JP2012042571A JP2012042571A JP2013179502A JP 2013179502 A JP2013179502 A JP 2013179502A JP 2012042571 A JP2012042571 A JP 2012042571A JP 2012042571 A JP2012042571 A JP 2012042571A JP 2013179502 A JP2013179502 A JP 2013179502A
Authority
JP
Japan
Prior art keywords
protocol
burst
burst data
network
tcp
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.)
Granted
Application number
JP2012042571A
Other languages
English (en)
Other versions
JP5867160B2 (ja
Inventor
Naoki Oguchi
直樹 小口
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012042571A priority Critical patent/JP5867160B2/ja
Priority to US13/779,140 priority patent/US8897166B2/en
Publication of JP2013179502A publication Critical patent/JP2013179502A/ja
Application granted granted Critical
Publication of JP5867160B2 publication Critical patent/JP5867160B2/ja
Active 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/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

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

Abstract

【課題】トランザクションの通信時にレイテンシを改善することを課題とする。
【解決手段】WAN高速化装置は、トランスポート層における所定のプロトコルを用いて、第1装置がバースト送信したバーストデータのサイズを測定する。WAN高速化装置は、トランスポート層に用いられる複数のプロトコルの中から、測定されたバーストデータのサイズと、ネットワークの特性とから推定されるレイテンシが小さいアルゴリズムにしたがって動作するプロトコルを選定する。WAN高速化装置は、第1装置が所定のプロトコルを用いて送信したバーストデータの通信を終端させ、選定されたプロトコルを用いて、当該バーストデータを宛先に転送する。
【選択図】図2

Description

本発明は、通信制御装置、通信制御方法および通信制御プログラムに関する。
従来、データセンタでサーバを動作させて、クライアントからアクセスするクラウドシステムが増えている。クラウドシステムにおけるデータセンタは、地理的に遠方な場所や海外にあることが多い。このため、クラウドシステムでは、クライアント端末とサーバとの間の往復遅延時間(RTT:Round Trip Time)が大きくなる傾向がある。
RTTが大きい環境で、TCP(Transmission Control Protocol)通信を行った場合、データの廃棄が発生し、スループットが向上しにくい。これは、輻輳が発生してスループットが一旦低下してから回復するまで長い時間がかかるTCPの特性が原因である。一般的に、TCPは、輻輳具合に基づいて輻輳ウィンドウ(cwin:Congestion Window)の大きさを変動させることで、スループットを調整する。
TCPにおける輻輳ウィンドウの制御方法には、大きく2つに分類される。1つは、送信先から受信するACKの数に応じて輻輳ウィンドウを拡大する輻輳制御アルゴリズムであり、例えば、Scalableなどが該当する。もう1つは、輻輳発生からの経過時間により輻輳ウィンドウを広げる輻輳制御アルゴリズムであり、例えば、Cubicなどが該当する。
近年、RTTが大きい環境でスループットを改善する策として、WAN(Wide Area Network)高速化装置などの装置が利用されている。WAN高速化装置は、エンドデバイスのTCPを回線利用率のより高いプロトコルに置き換えて通信することで、TCPの平均スループットの低下を改善する装置である。なお、WAN高速化装置は、専用のアプライアンス装置であってもよく、端末などが仮想的に実行するプロトコル変換機能であってもよい。
例えば、クラウドシステムでは、サーバと端末とを接続するWAN回線などのネットワークを挟んで、WAN高速化装置AとWAN高速化装置Bとを配置する。WAN高速化装置Aは、端末から受け付けたTCPセッションを一旦終端させる。そして、WAN高速化装置Aは、TCPセッションで受信したデータを高速化したプロトコル(以下、高速プロトコルと記載する場合がある)に置き換えて、対向するWAN高速化装置Bと通信する。その後、WAN高速化装置Bは、対向するWAN高速化装置Aと高速化プロトコルでやり取りしたデータを通常のTCPに戻してサーバに送信する。
高速化プロトコルとしては、UDP(User Datagram Protocol)を改良して再送制御機能や輻輳制御機能を付加したものや、既存のTCPをより効率的に輻輳制御機能を改善したものが使用される。UDPベースのプロトコルでは、例えばUDT(UDP−based data transfer)が知られている。また、TCPを改良したものとしては、CUBICやScalableなどがある。特に、Scalable TCPは、RTTが大きい近年のWAN回線向けに改良されたプロトコルである。
特開2010−74279号公報
しかしながら、従来技術では、高速なレスポンスが要求されるトランザクションの通信に対してはレイテンシが改善できないという問題がある。
具体的には、従来のWAN高速化装置は、バルク転送のように大量のデータを送信し絶え間なくACKが戻ってくる通信において、平均スループットが最大になるような高速化プロトコルを用いるものである。
例えば、バルク転送においては、Cubicに比べてScalableの方が、輻輳ウィンドウの広がりが大きく平均のウィンドウサイズが大きいことから、期待通りの性能を得ることができる。また、Cubicは、輻輳発生して輻輳ウィンドウを狭くした後、時間経過に応じて輻輳ウィンドウを広げていくので、輻輳ウィンドウが元に戻るまで多くの時間がかかる。つまり、平均スループットが所望の値に到達するまでに、多くの時間がかかる。
これらのことから、従来のWAN高速化装置は、平均スループットが最大になるような高速化プロトコルとして、Scalableを用いることが多い。ところが、トランザクションのようなバースト転送は、パケット数も少なく、それに伴うACKも少ないので、Scalableでは、期待通りの性能を得るのは難しい。つまり、従来のWAN高速化装置は、Scalableを用いることが多いので、高速なレスポンスが要求されるトランザクションの通信に対してレイテンシを改善できるとは言い難い。
開示の技術は、上記に鑑みてなされたものであって、トランザクションの通信時にレイテンシを改善することができる通信制御装置、通信制御方法および通信制御プログラムを提供することを目的とする。
本願の開示する通信制御装置、通信制御方法および通信制御プログラムは、一つの態様において、測定部と選定部と転送部とを有する。測定部は、トランスポート層における所定のプロトコルを用いて、第1装置がバースト送信したバーストデータのサイズを測定する。選定部は、前記トランスポート層に用いられる複数のプロトコルの中から、前記測定部によって測定されたバーストデータのサイズと、ネットワークの特性とから推定されるレイテンシが小さいアルゴリズムにしたがって動作するプロトコルを選定する。転送部は、前記第1装置が前記所定のプロトコルを用いて送信したバーストデータの通信を終端させ、前記選定部によって選定されたプロトコルを用いて、当該バーストデータを宛先に転送する。
本願の開示する通信制御装置、通信制御方法および通信制御プログラムの一つの態様によれば、トランザクションの通信時にレイテンシを改善することができるという効果を奏する。
図1は、実施例1に係る通信システムの全体構成例を示す図である。 図2は、実施例1に係るWAN高速化装置の機能構成を示す機能ブロック図である。 図3は、セッション監視テーブルの例を示す図である。 図4は、アルゴリズム決定テーブルの例を示す図である。 図5は、アルゴリズム決定テーブルを作成する際に使用するシミュレーション結果の例を示す図である。 図6は、アルゴリズム決定テーブルを作成する際に使用するシミュレーション結果の例を示す図である。 図7は、実施例1に係るWAN高速化装置が実行する処理の流れを示すフローチャートである。 図8は、実施例1に係る通信システムのシーケンス図である。 図9は、実施例1に係る通信システムのシーケンス図である。 図10は、実施例2に係るWAN高速化装置の機能構成を示す機能ブロック図である。 図11は、実施例2に係るアルゴリズム決定テーブルの例を示す図である。 図12は、実施例2に係る第2アルゴリズム決定テーブルの例を示す図である。 図13は、第2アルゴリズム決定テーブルを作成する際に使用するシミュレーション結果の例を示す図である。 図14は、実施例2に係るWAN高速化装置が実行する処理の流れを示すフローチャートである。 図15は、高速化プロトコルとしてUDPを用いる場合に使用する廃棄率とレイテンシの関係を示す図である。 図16は、バーストの間隔を固定としてバーストの大きさを変化させた場合のレイテンシの変化例を示す図である。 図17は、ハードウェア構成例を示す図である。
以下に、本願の開示する通信制御装置、通信制御方法および通信制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
[全体構成]
図1は、実施例1に係る通信システムの全体構成例を示す図である。図1に示すように、この通信システムは、無線端末7が、ISP(Internet Services Provider)が提供するWAN(Wide Area Network)回線を利用して、データセンタ1のサーバ3とTCP通信を行う。ここでは、一例として、無線端末7は、サーバ3との間でリモートデスクトップを接続し、サーバ3上のデスクトップ画面を表示しているものとする。
図1では、ISPが提供するWAN回線には、データセンタ1が有するLAN(Local Area Network)と、無線アクセスプロバイダが提供する無線網と、アクセスプロバイダが提供するネットワークとが接続される。
データセンタ1は、ルータ2とサーバ3とWAN高速化装置10とを有する。ルータ2は、ISPとデータセンタ1のLANとを中継する中継装置である。サーバ3は、無線端末7からのリモートデスクトップ接続を受け付けて、各種情報を無線端末7に送信するサーバ装置である。WAN高速化装置10は、エンドデバイスのTCPを回線利用率のより高いプロトコルに置き換えて通信する装置である。
また、無線アクセスプロバイダが提供する無線網は、ルータ5を介してWAN回線と接続される。この無線網は、基地局8を介して無線端末に利用される。ここで、基地局8には、WiMAX(Worldwide Interoperability for Microwave Access)で接続することができることとする。
また、アクセスプロバイダが提供するネットワークは、ルータ4を介してWAN回線と接続される。ルータ4からアクセスポイント6までは、FTTH(Fiber To The Home)で接続される。無線端末7は、Wi−Fi(wireless fidelity)を用いてアクセスポイント6に接続し、アクセスポイント6を介してWAN回線に接続する。この無線端末7は、WAN高速化装置10と同様の機能を実行する仮想的なWAN高速化装置7aを実行する。
このように、図1に示した通信システムは、WAN高速化装置10と仮想的なWAN高速化装置7aとが対向して形成されるシステムである。本実施例では、無線端末7のユーザが通信途中で屋内から屋外に移動したことにより、屋内のWi−Fiから公衆無線アクセス網であるWiMAXにハンドオーバするものとする。一般的には、Wi−Fiは、WiMAXより狭いエリアで利用している場合が多く通信品質がよい場合が多い。そのため、本実施例では、Wi−FiからWiMAXに切り替わることで廃棄率が大きく変化するものとする。また、WiMAXでは、無線レイヤにおける再送メカニズムがあるためWi−Fiに比べ無線端末7からサーバ3間の往復遅延時間(RTT:Round Trip Time)も大きくなる。
このような状態において、WAN高速化装置10は、トランスポート層における所定のプロトコルであるTCPを用いて、サーバ3がバースト送信したバーストデータのサイズを測定する。そして、WAN高速化装置10は、トランスポート層に用いられる複数のプロトコルの中から、測定されたバーストデータのサイズと、ネットワークの特性とから推定されるレイテンシが小さいアルゴリズムにしたがって動作するプロトコルを選定する。その後、WAN高速化装置10は、サーバ3がTCPを用いて送信したバーストデータの通信を終端させ、選定されたプロトコルを用いて、当該バーストデータを宛先に転送する。また、WAN高速化装置10は、無線端末7から送信されたデータを終端させて、TCPを用いてサーバ3に転送する。
このように、WAN高速化装置10は、バーストデータ送信時のデータサイズ、ネットワーク特性からレイテンシが小さいプロトコルを選定し、TCPで受信したバーストデータを選定したプロトコルに載せ換えて転送することができる。この結果、高速なレスポンスが要求されるトランザクションの通信に対してはレイテンシを改善することができる。
[WAN高速化装置の構成]
図2は、実施例1に係るWAN高速化装置の機能構成を示す機能ブロック図である。なお、無線端末7が実行する仮想的なWAN高速化装置7aも図2で説明する処理と同様の処理を実行する。
図2に示すように、WAN高速化装置10は、受信MAC(Media Access Control)部11、送信MAC部12、セッション監視テーブル13、アルゴリズム決定テーブル14、トランスポート処理部15、プロキシ処理部19、選定部21を有する。なお、セッション監視テーブル13とアルゴリズム決定テーブル14は、メモリなどの記憶装置に保持される。また、各処理部は、CPU(Central Processing Unit)などの電子回路が実行する処理部である。
受信MAC部11は、受信するデータに対してMAC処理を実行する処理部である。例えば、受信MAC部11は、無線端末7から送信されたデータを、ルータ2を介して受信してトランスポート処理部15に出力する。また、受信MAC部11は、サーバ3から送信されたデータを、ルータ2を介して受信してトランスポート処理部15に出力する。
送信MAC部12は、送信するデータに対してMAC処理を実行する処理部である。例えば、送信MAC部12は、無線端末7から送信されたデータを、TCPを用いてサーバ3に送信する。また、送信MAC部12は、サーバ3から送信されたデータを、切替部18から指定されたプロトコルを用いて無線端末7に送信する。
セッション監視テーブル13は、サーバ3と無線端末7との間のTCPセッションの情報、言い換えると、WAN高速化装置10とWAN高速化装置7aとの間のネットワークのセッション情報を記憶する。ここで記憶される情報は、後述するRTT測定部16、廃棄率測定部17、バーストサイズ測定部20等によって更新される。図3は、セッション監視テーブルの例を示す図である。図3に示すように、セッション監視テーブル13は、「ID、TCPセッション、平均バースト長(Bytes)、平均RTT(ms)、平均廃棄率(%)」を対応付けて記憶する。
ここで記憶される「ID」は、セッション監視テーブル13のレコードを識別する識別子である。「TCPセッション」は、「SRC IP、SRC Port、DST IP、DST Port」を有する。「SRC IP」は、送信先装置のアドレス情報である。「SRC Port」は、送信先装置がデータを送信する際に使用したポート番号である。「DST IP」は、受信装置のアドレス情報である。「DST Port」は、受信装置がデータを受信した際に使用したポート番号である。「平均バースト長」は、TCPセッションで送受信されたバーストデータの平均サイズである。「平均RTT」は、TCPセッションでデータを送受信した際の遅延時間の平均値である。「平均廃棄率」は、TCPセッションでデータを送受信した際のデータ廃棄率の平均値である。
図3の一例として、「ID=1」のレコードを説明する。このレコードは、アドレスがIP(A)の装置からポート番号3389で送信され、アドレスがIP(B)の装置によってポート番号1801で受信されるセッションの情報である。このセッションでは、平均バースト長が15000バイト、平均RTTが50ms、平均廃棄率が0.001%であることを示す。
アルゴリズム決定テーブル14は、WAN高速化通信間で使用するプロトコルを決定する情報を記憶する。このアルゴリズム決定テーブル14は、バーストサイズごとに、廃棄率とRTTとからプロトコルを決定する情報を記憶する。図4は、アルゴリズム決定テーブルの例を示す図である。図4に示した例は、バーストサイズが15000バイトに対応した情報である。図4に示すように、アルゴリズム決定テーブル14は、廃棄率(p)とRTT(ms)とからプロトコルを一意に決定する情報を記憶する。
図4では、RTTが50ms、100ms、200ms各々について、0.05>p、0.05≦p、0.1>p、0.1≦p、0.2>p、0.2≦pのときに、CUBICかScalableのいずれを選定するのかを示している。例えば、RTTが50かつ廃棄率(p)が0.1≦p<0.2の場合、Scalableが選定されることを示す。また、RTTが100かつ廃棄率(p)がp≦0.05の場合、CUBICが選定されることを示す。
ここで、図4に示したアルゴリズム決定テーブル14の生成について説明する。アルゴリズム決定テーブル14は、バーストデータの送信をシミュレーションした結果から作成することができる。この手法は、ネットワークの特定に不確定要素が多い場合などに有効である。
図5と図6は、アルゴリズム決定テーブルを作成する際に使用するシミュレーション結果の例を示す図である。図5は、バーストサイズが15000バイトかつRTTが50msの状況で、廃棄率とレイテンシとの関係を示した図である。図6は、バーストサイズが15000バイトかつRTTが200msの状況で、廃棄率とレイテンシとを関係を示した図である。
図5の場合、廃棄率が0.05より小さい状況では、ScalableよりもCUBICの方がレイテンシが小さく、廃棄率が0.05以上の状況では、CUBICよりもScalableの方がレイテンシが小さい。この結果、図4に示すように、廃棄率が0.05を境にして、選定されるプロトコルが変わるように、アルゴリズム決定テーブル14が作成される。
図6の場合、廃棄率が0.2より小さい状況では、ScalableよりもCUBICの方がレイテンシが小さく、廃棄率が0.2以上の状況では、CUBICよりもScalableの方がレイテンシが小さい。この結果、図4に示すように、廃棄率が0.2を境にして、選定されるプロトコルが変わるように、アルゴリズム決定テーブル14が作成される。
図2に戻り、トランスポート処理部15は、RTT測定部16と廃棄率測定部17と切替部18とを有し、これらによってアプリケーションが送受信するデータをTCPにのせて送受信する処理部である。また、トランスポート処理部15は、無線端末7からTCPとは異なるプロトコルで送信されたデータが受信MAC部11によって受信された場合に、当該データをTCPに載せ換えてサーバ3に送信するように送信MAC部11に指示する。
RTT測定部16は、データを送信した時刻と、当該データに対する応答が到着した時刻から往復遅延時間を計測する処理部である。このRTT測定部16は、往復遅延時間を計測するごとに平均RTTを算出し、該当するTCPセッションに対応付けられてセッション監視テーブル13に記憶される平均RTTを更新する。
例えば、RTT測定部16は、10個のパケットで構成されるバーストデータが送信された場合に、各パケットについて、送信してから応答到着するまでの時間(RTT)を測定する。そして、RTT測定部16は、10個のパケット各々のRTTを平均し、その値を当該バーストデータにおける平均値とする。その後、RTT測定部16は、今までの平均値と今回算出した平均値とを用いて、新たな平均値を算出して、セッション監視テーブル13に記憶される平均RTTを更新する。
平均値の算出方法については公知の様々な手法を用いることができるが一例として、最近の平均値を優先する手法を用いることができる。例えば、前回算出した平均値をRTT(前回)と、今回算出した平均値をRTT(今回)とを用いて、新たな平均値RTT(A)を算出する例を説明する。この場合、RTT測定部16は、「RTT(A)=(1−α)RTT(前回)+αRTT(今回)」(αは固定値)として算出することができる。
廃棄率測定部17は、送信したデータに対する応答の有無からパケットがロストした率を計測する処理部である。つまり、廃棄率測定部17は、ある期間内に送信されたTCPパケットを送信してからそれに対する確認応答がこない場合の確率を測定する。この廃棄率測定部17は、廃棄率を算出するたびに、該当するTCPセッションに対応付けられてセッション監視テーブル13に記憶される平均廃棄率を更新する。
例えば、ある期間A内に、10個のパケットで構成されるバーストデータ1と5個のパケットで構成されるバーストデータ2が順に送信されたとする。そして、バーストデータ1は、1個のパケットがロストし、続いて、バーストデータ2では2個のパケットがロストしたとする。この場合、廃棄率測定部17は、バーストデータ1とバーストデータ2の合計パケット数「15」を算出し、さらに、バーストデータ1とバーストデータ2におけるロスパケットの合計「3」を算出する。そして、廃棄率測定部17は、期間Aにおけるは廃棄率として「3/15=0.2」と算出する。その後、廃棄率測定部17は、RTT測定部16で説明した手法と同様の手法を用いて、平均廃棄率を算出してセッション監視テーブル13に記憶される平均廃棄率を更新する。
切替部18は、後述する選定部21からの信号を受け付け、使用するプロトコルを切替える処理部である。例えば、切替部18は、選定部21からCUBICを使用することが通知された場合、送信MAC部12に対してCUBICを用いてデータを無線装置7に送信するように指示する。この結果、送信MAC部12は、TCPで受信されたデータをCUBICに載せ換えて送信する。
プロキシ処理部19は、バーストサイズ測定部20を有し、無線端末7とサーバ2との間の通信セッションを終端し、対向するWAN高速化装置7aとWAN高速化装置10との間に新たな通信セッションを生成する処理部である。例えば、プロキシ処理部19は、無線端末7とサーバ2との間に接続されるTCPセッションを終端させる。そして、プロキシ処理部19は、対向するWAN高速化装置7aとWAN高速化装置10との間に新たなセッションを生成する。送信MAC部12は、この新たなセッションを用いて、切替部18から指示されたプロトコルでデータを送信する。
バーストサイズ測定部20は、通信セッションで送信されるバーストの平均バースト長、及びバーストの間隔を測定する処理部である。ここで、バーストの間隔とは、あるバーストを構成する最初のパケットが送信された時刻と、次のバーストを構成する最初のパケットが送信されるまでの時間間隔と定義する。バーストサイズ測定部20は、平均バースト長を算出するごとに、該当するTCPセッションに対応付けられてセッション監視テーブル13に記憶される平均バースト長を更新する。
具体的には、バーストサイズ測定部20は、連続的に送信される複数のTCPパケットを監視してバーストのサイズを測定する。バーストサイズ測定部20は、連続送信されるTCPパケットが、TCPタイムアウト時間(RTO)を経過しないタイミングで送信されるまでを1つのバーストと判断し、それまでのデータ長の和をバーストサイズとする。例えば、RTOを5msとし、バーストデータ1が送信して2ms経過後にバーストデータ2が送信され、バーストデータ2が送信されてから7ms経過後にバーストデータ3が送信されとする。この場合、バーストサイズ測定部20は、バーストデータ1とバーストデータ2とを1つのバーストと判断する。
例えば、バーストデータ1とバーストデータ2とが1つのバーストと判断され、バーストデータ1のサイズが15000バイトであり、バーストデータ2のサイズが10000バイトであったとする。この場合、バーストサイズ測定部20は、平均バースト長として「(15000+10000)/2=12500」を算出する。その後、バーストサイズ測定部20は、RTT測定部16で説明した手法と同様の手法を用いて、平均バースト長を算出してセッション監視テーブル13に記憶される平均バースト長を更新する。
選定部21は、セッション監視テーブル13を監視し、最適なTCP輻輳制御アルゴリズムを選択する処理部である。具体的には、選定部21は、RTT測定部16、廃棄率測定部17、バーストサイズ測定部20から取得する情報を基に、図4を用いて通信途中であっても最適なTCP輻輳制御アルゴリズムを選択し、切替えて通信を行う。
図3と図4を例にして説明する。ここでは一例として、セッション監視テーブル13におけるID=1のセッションについて説明するが、セッション監視テーブル13に記憶される各セッションについて同様の処理が実行される。
選定部21は、所定のタイミングでセッション監視テーブル13を参照する。そして、選定部21は、ID=1の平均バースト長「15000」、平均RTT「50」、平均廃棄率「0.001」を取得する。そして、選定部21は、取得した平均バースト長「15000」に対応するテーブルを、アルゴリズム決定テーブル14から検索する。続いて、選定部21は、検索して得られた図4のテーブルにおいて、平均RTT「50」かつ平均廃棄率「0.001」に対応するプロトコルとして「CUBIC」を特定する。また、選定部21は、ID=1のセッションにおける宛先のアドレス「IP(B)」を特定する。その後、選定部21は、ID=1のセッションにおいてアドレス「IP(B)」を宛先とするデータについては、TCPではなくCUBICを用いるように、切替部18に指示する。つまり、選定部21は、TCPからCUBICに通信プロトコルを切替えるように、切替部18に指示を送信する。
[フローチャート]
図7は、実施例1に係るWAN高速化装置が実行する処理の流れを示すフローチャートである。図7に示すように、WAN高速化装置10の選定部21は、更新タイムアウトになると、すなわち更新時間に到達すると(S101Yes)、該当するセッションについて、セッション監視テーブル13から平均バースト長と平均RTTとを取得する(S102)。この更新時間は、一定周期でネットワークの品質に合わせトランスポートアルゴリズムを見直すためのトリガである。
続いて、選定部21は、アルゴリズム決定テーブル14が有する複数のテーブルの中から、取得した平均バースト長と平均RTTとに対応するアルゴリズム決定テーブルを選定する(S103)。
その後、選定部21は、該当するセッションの平均廃棄率をセッション監視テーブル13から取得し、選定したアルゴリズム決定テーブルから、取得した平均廃棄率に対応するプロトコルを選定する(S104)。つまり、選定部21は、平均バースト長と平均RTTと平均廃棄率からレイテンシが小さいと想定されるプロトコルを選定する。
そして、選定部21は、選定したプロトコルと、現在使用されているプロトコルとを比較し、一致するか否かを判定する(S105)。続いて、選定部21は、選定したプロトコルと現在使用されているプロトコルとが異なる場合に(S105Yes)、選定したプロトコルに切替える指示を切替部18に出力する(S106)。
その後、選定部21は、図7のフローを実行する契機を計測する更新タイマを設定して処理を終了する(S107)。なお、選定部21は、選定したプロトコルと現在使用されているプロトコルとが一致する場合に(S105No)、プロトコルを切替える指示を切替部18に出力し、S107を実行する。
[シーケンス]
図8と図9は、実施例1に係る通信システムのシーケンス図である。ここでは、無線端末7は、移動可能な通信デバイスであり、ユーザが通信しながら屋内から屋外に移動することにより、アクセスポイント(AP)6と基地局8との間でハンドオーバが発生するものとする。
図8に示すように、無線端末7は、電源が投入されると、周辺の電波をスキャンし使用できるネットワークを探索する(S201)。続いて、無線端末7は、WiMAXの基地局8が送信する電波と、Wi−FiのAP6が送信する電波の両方が見つかり、Wi−Fiの電波が強いため、Wi−Fiを利用することに決め、AP6へネットワークを接続する(S202とS203)。このとき、無線端末7は、AP6との初期接続手順を実行してリンク層で接続する。
その後、無線端末7は、通信アプリケーションがサーバ3へ接続を開始すると、サーバ3に対しTCPセットアップメッセージであるSYNパケットを送信する(S204)。これに対し、サーバ3がSYNACKパケットを送信し、無線端末7がSYNACKを受信するとACKを送信することで、サーバ3と無線端末7との間にTCPコネクションが確立される(S205とS206)。
無線端末7は、リモートデスクトップの接続が完了すると、無線端末7にサーバ3のデスクトップ画面が表示され、当該画面に対するマウス操作やキーボード操作のイベントをパケットに含めてサーバに転送する(S207とS208)。このとき、無線端末7のWAN高速化装置7aは、通常のTCPよりもスループットが高いTCPまたはレイテンシが小さいTCP(以下、高速化TCPと記載する場合がある)にイベントパケットを載せ換えて送信する。
WAN高速化装置10の送信MAC部12は、受信されたイベントパケットを通常のTCPに載せ換えてサーバ3に転送する(S209とS210)。すなわち、WAN高速化装置10の受信MAC部11は、無線端末7から送信されたイベントパケットを受信してセッションを終端させる。
サーバ3は、受信されたイベントパケットで特定されるイベントに対するアプリケーションの処理を行って画面を更新し、更新した画面データを無線端末7に送信する(S211)。この際、画面データの大きさによって画面データを含む複数のTCPパケットがサーバ3から無線端末7に送信され、無線端末7からはそれぞれに対しACKが送信される(S212からS217)。なお、無線端末7は、画面データを受信すると、受信したデータで画面を更新する(S218)。
ここで、S212からS217を具体的に説明する。WAN高速化装置10の受信MAC部11は、サーバ3からTCPで送信されたパケットを終端させる。そして、送信MAC部12は、通常のTCPで受信したパケットを、デフォルトで指定された高速化TCPに載せ換えて無線端末7に送信する。無線端末7のWAN高速化装置7aは、高速化TCPで受信したパケットを通常のTCPに載せ換えてアプリケーションに渡す。そして、アプリケーションが画像表示処理を実行する。
その後、無線端末7のWAN高速化装置7aが、アプリケーションから出力されたACKを高速化TCPに載せ換えてサーバ3に送信する。そして、WAN高速化装置10の受信MAC部11は、無線端末7から高速化TCPで送信されたACKを終端させる。そして、送信MAC部12は、受信したACKを通常のTCPに載せ換えてサーバ3に送信する。このように、無線端末7とサーバ3との間で、通常のTCPと高速化TCPとが併用され、データの送受信が実行される。
図8に戻り、WAN高速化装置10のRTT測定部16と廃棄率測定部17は、サーバ3から無線端末7へ送信するデータが含まれるTCPパケットと、当該TCPパケットに対するACKを監視し、RTTと廃棄率とを測定する(S219)。また、WAN高速化装置10のバーストサイズ測定部20は、S212からS217において、連続的に送信される複数のTCPパケットを監視してバーストのサイズを測定する(S220)。ここで同一のバーストに属するTCPパケットであるかどうかは、TCPの送信間隔がTCPタイムアウト以上であるかどうかにより判断する。その後、WAN高速化装置10は、測定したRTTと廃棄率とバーストサイズを用いて、セッション監視テーブル13の平均バースト長、平均RTT、平均廃棄率各々を更新する(S221)。
その後、図9に示すように、無線端末7が屋内から屋外へ移動したものとする(S301)。無線端末7は、AP6の電波を受信できなくなるため再度ネットワークを探索し、WiMAXの基地局8からの電波を検出してWiMAXにハンドオーバする(S302とS303)。ハンドオーバにより無線リンク層の接続は、Wi−FiのAP6からWiMAXの基地局8へ切り替わるが、無線端末7とサーバ3間のTCPセッションは、そのまま維持されるものとする。また、WiMAXに切り替わったことにより無線の通信品質が劣化する。
引き続き、無線端末7による入力デバイス操作が行われると、無線端末7は、サーバ3にイベントパケットを送信する(S304とS305)。このとき、無線端末7のWAN高速化装置7aは、イベントパケットを高速化TCPに載せ換えて送信する。
WAN高速化装置10の送信MAC部12は、受信されたイベントパケットを通常のTCPに載せ換えてサーバ3に転送する(S306とS307)。サーバ3は、受信されたイベントパケットで特定されるイベントに対するアプリケーションの処理を行って画面を更新し、更新した画面データを無線端末7に送信する(S308)。この際、画面データの大きさによって画面データを含む複数のTCPパケットがサーバ3から無線端末7に送信され、無線端末7からはそれぞれに対しACKが送信される(S309からS314)。ここでの処理は、S212からS217と同様なので、詳細な説明を省略する。なお、無線端末7は、画面データを受信すると、受信したデータで画面を更新する(S315)。
WAN高速化装置10のRTT測定部16と廃棄率測定部17は、サーバ3から無線端末7へ送信するデータが含まれるTCPパケットと、当該TCPパケットに対するACKを監視し、RTTと廃棄率とを測定する(S316)。また、WAN高速化装置10のバーストサイズ測定部20は、S309からS314において、連続的に送信される複数のTCPパケットを監視してバーストのサイズを測定する(S317)。その後、WAN高速化装置10は、測定したRTTと廃棄率とバーストサイズを用いて、セッション監視テーブル13の平均バースト長、平均RTT、平均廃棄率各々を更新する(S318)。
そして、WAN高速化装置10の選定部21は、レイテンシの小さい高速TCPとして高速TCP(Z)を選定し、プロトコルを切替える指示を切替部18に出力する(S319)。具体的には、選定部21は、セッション監視テーブル13を参照し、使用されているTCPセッションの平均バースト長、平均RTT、平均廃棄率を取得する。続いて、選定部21は、取得した平均バースト長かつ平均RTTかつ平均廃棄率に対応するプロトコルを、アルゴリズム決定テーブル14から特定する。その後、選定部21は、特定したプロトコルに切替えると決定する。
その後、無線端末7による入力デバイス操作が行われると、無線端末7は、サーバ3にイベントパケットを送信する(S320とS321)。このとき、無線端末7のWAN高速化装置7aは、イベントパケットを通常のTCPから高速化TCPに載せ換えて送信する。
WAN高速化装置10の送信MAC部12は、受信されたイベントパケットを通常のTCPに載せ換えてサーバ3に転送する(S322とS323)。サーバ3は、受信されたイベントパケットで特定されるイベントに対するアプリケーションの処理を行って画面を更新し、更新した画面データを無線端末7に送信する(S324)。この際、画面データの大きさによって画面データを含む複数のTCPパケットがサーバ3から無線端末7に送信され、無線端末7からはそれぞれに対しACKが送信される(S325からS330)。
ここで、S325からS330を具体的に説明する。WAN高速化装置10の受信MAC部11は、サーバ3からTCPで送信されたパケットを終端させる。そして、送信MAC部12は、通常のTCPで受信したパケットを、S319で選定された高速化TCP(Z)に載せ換えて無線端末7に送信する。無線端末7のWAN高速化装置7aは、高速化TCP(Z)で受信したパケットを通常のTCPに載せ換えてアプリケーションに渡す。そして、アプリケーションが画像表示処理を実行する。
その後、無線端末7のWAN高速化装置7aが、アプリケーションから出力されたACKを高速化TCPに載せ換えてサーバ3に送信する。そして、WAN高速化装置10の受信MAC部11は、無線端末7から高速化TCPで送信されたACKを終端させる。そして、送信MAC部12は、受信したACKを通常のTCPに載せ換えてサーバ3に送信する。このように、無線端末7とサーバ3との間では、レイテンシの小さい高速化TCP(Z)を用いてデータの送受信が実行される。なお、セッションが切断されるまで、図9に示したシーケンスが繰り返し実行される。
なお、ここではシミュレーションによりプロトコルの特性を評価しているが、シミュレーションに限ったものではなく、解析解を求めて特性を比較しアルゴリズム決定テーブルを作成してもよい。また、本実施の形態では、アルゴリズム決定テーブルを予め計算し作成しているが、平均バースト長、平均RTT、平均廃棄率を測定した時点でシミュレーションを実施したり解析解から特性比較を行ってもよい。
[効果]
実施例1に係るWAN高速化装置10は、シミュレーションした結果の中から、スループットが高いプロトコルではなく、レイテンシが小さいプロトコルを随時選定して使用する。このため、高速なレスポンスが要求されるトランザクションの通信に対してもレイテンシを改善することができる。また、WAN高速化装置10は、平均バーストサイズ、平均RTT、平均廃棄率を定期的に更新するので、無線端末7とサーバ3との間のネットワークの変化を追従することができる。すなわち、WAN高速化装置10は、一定周期でネットワークの品質に合わせトランスポートアルゴリズムを見直すことができる。このため、WAN高速化装置10は、随時変化するネットワーク、データサイズ等に適したプロトコルを選定することができるので、レイテンシが極端に悪化するなどの状態になることを防止することができる。
ところで、開示するWAN高速化装置は、レイテンシが小さいプロトコルを選定することができない場合に、スループットが高いプロトコルを選定するようにしてもよい。そこで、実施例2では、レイテンシが小さいプロトコルを選定することができない場合に、スループットが高いプロトコルを選定する例について説明する。
[WAN高速化装置の構成]
図10は、実施例2に係るWAN高速化装置の機能構成を示す機能ブロック図である。なお、無線端末7が実行する仮想的なWAN高速化装置7aも図10で説明する処理と同様の処理を実行する。
図10に示すように、WAN高速化装置10は、受信MAC部11、送信MAC部12、セッション監視テーブル13、アルゴリズム決定テーブル14、トランスポート処理部15を有する。また、WAN高速化装置10は、プロキシ処理部19、選定部21、第2アルゴリズム決定テーブル22を有する。なお、各テーブルは、メモリなどの記憶装置に保持される。また、各処理部は、CPUなどの電子回路が実行する。
実施例1とは、アルゴリズム決定テーブル14と、第2アルゴリズム決定テーブル22と、選定部20の処理内容とが異なるであるので、ここでは、これらについて説明する。
アルゴリズム決定テーブル14は、実施例1と同様、WAN高速化通信間で使用するプロトコルとして、レイテンシが小さいプロトコルを決定する情報を記憶する。具体的には、アルゴリズム決定テーブル14は、バーストサイズごとに、廃棄率とRTTとからプロトコルを決定する情報を記憶する。図11は、実施例2に係るアルゴリズム決定テーブルの例を示す図である。
図11に示すように、アルゴリズム決定テーブル14は、実施例1で説明した図4と同様の内容を記憶するが、実施例1と異なる点は、選定対象のプロトコルに「不定」が含まれている点である。例えば、アルゴリズム決定テーブル14は、バーストサイズが15000バイトかつ廃棄率(p)<0.0001かつRTTが50の場合に、選定対象のプロトコルとして「不定」を記憶する。この「不定」は、任意のプロトコルを選定できることを示す。
第2アルゴリズム決定テーブル22は、WAN高速化通信間で使用するプロトコルとして、スループットが高いプロトコルを決定する情報を記憶する。この第2アルゴリズム決定テーブル22は、バーストサイズごとに、廃棄率とRTTとからプロトコルを決定する情報を記憶する。図12は、実施例2に係る第2アルゴリズム決定テーブルの例を示す図である。
図12に示すように、第2アルゴリズム決定テーブル22は、実施例1で説明した図4と同様の内容を記憶するが、実施例1やアルゴリズム決定テーブル14と異なる点は、レイテンシが小さいではなく、スループットが高いプロトコルが決定できる点である。例えば、図12の場合、RTTが50かつ廃棄率(p)が0.1≦p<0.2の場合、CUBICが選定されることを示す。
ここで、図12に示した第2アルゴリズム決定テーブル22の生成について説明する。第2アルゴリズム決定テーブル22は、バーストデータの送信をシミュレーションした結果から作成することができる。この手法は、ネットワークの特定に不確定要素が多い場合などに有効である。図13は、第2アルゴリズム決定テーブルを作成する際に使用するシミュレーション結果の例を示す図である。図13は、RTTが100msの状況で、廃棄率と平均スループットとの関係を示した図である。
図13の場合、廃棄率が0.08より小さい状況では、CUBICよりもScalableの方が平均スループットが高く、廃棄率が0.1以上の状況では、ScalableよりもCUBICの方が平均スループットが高い。この結果、図12に示すように、廃棄率が0.1を境にして、選定されるプロトコルが変わるように、第2アルゴリズム決定テーブル22が作成される。
図10に戻り、選定部21は、セッション監視テーブル13を監視し、最適なTCP輻輳制御アルゴリズムを選択する処理部である。具体的には、選定部21は、RTT測定部16、廃棄率測定部17、バーストサイズ測定部20から取得する情報を基に、図11や図12を用いて通信途中であっても最適なTCP輻輳制御アルゴリズムを選択し、切替えて通信を行う。
例えば、選定部21は、セッション監視テーブル13を監視し、セッションの情報として平均バースト長「15000」、平均RTT「50」、平均廃棄率「0.00007」を取得する。すると、選定部21は、まず、取得した平均バースト長「15000」に対応するテーブルを、アルゴリズム決定テーブル14から検索する。続いて、選定部21は、検索して得られた図11のテーブルにおいて、平均RTTが「50」かつ平均廃棄率が「0.0001」である条件に対応するプロトコルとして「不定」を特定する。
選定部21は、選定した結果が「不定」であった場合、次に、平均バースト長「15000」に対応するテーブルを、第2アルゴリズム決定テーブル22から検索する。続いて、選定部21は、検索して得られた図12のテーブルにおいて、平均RTTが「50」かつ平均廃棄率が「0.0001」である条件に対応するプロトコルとして「Scalable」を特定する。この結果、選定部21は、TCPからScalableに通信プロトコルを切替えるように、切替部18に指示を送信する。
[フローチャート]
図14は、実施例2に係るWAN高速化装置が実行する処理の流れを示すフローチャートである。図14に示すように、WAN高速化装置10の選定部21は、更新タイムアウトになると(S401Yes)、該当するセッションについて、セッション監視テーブル13から平均バースト長と平均RTTとを取得する(S402)。
続いて、選定部21は、アルゴリズム決定テーブル14が有する複数のテーブルの中から、取得した平均バースト長と平均RTTとに対応するアルゴリズム決定テーブルを選定する(S403)。
その後、選定部21は、該当するセッションの平均廃棄率をセッション監視テーブル13から取得し、選定したアルゴリズム決定テーブルから、取得した平均廃棄率に対応するプロトコルを特定する(S404)。つまり、選定部21は、平均バースト長と平均RTTと平均廃棄率からレイテンシが小さいと想定されるプロトコルを選定する。
そして、選定部21は、特定したプロトコルが「不定」である、つまり、レイテンシが小さいプロトコルが一意に決まらない場合(S405No)、S406を実行する。すなわち、選定部21は、第2アルゴリズム決定テーブル22が有する複数のテーブルの中から、S402で取得した平均バースト長と平均RTTとに対応するアルゴリズム決定テーブルを選定する。そして、選定部21は、S404で特定した平均廃棄率に対応するプロトコルを、S402で選定したアルゴリズム決定テーブルから選定する。
そして、選定部21は、S406で選定したプロトコルと、現在使用されているプロトコルとを比較し、一致するか否かを判定する(S407)。続いて、選定部21は、選定したプロトコルと現在使用されているプロトコルとが異なる場合に(S407Yes)、選定したプロトコルに切替える指示を切替部18に出力する(S408)。
その後、選定部21は、図14のフローを実行する契機を計測する更新タイマを設定して処理を終了する(S409)。なお、選定部21は、選定したプロトコルと現在使用されているプロトコルとが一致する場合に(S407No)、プロトコルを切替える指示を切替部18に出力し、S409を実行する。
また、S405において、レイテンシが小さいプロトコルが特定できた場合(S405Yes)、選定部21は、S406を実行することなく、S407以降を実行する。つまり、選定部21は、図7と同様の処理を実行する。なお、ここでは第二アルゴリズムをシミュレーションによりプロトコルの特性を評価しているが、シミュレーションに限ったものではなく、解析解を求めて特性を比較しアルゴリズム決定テーブルを作成してもよい。また、本実施の形態では、アルゴリズム決定テーブルを予め計算し作成しているが、平均RTT、平均廃棄率を測定した時点でシミュレーションを実施したり解析解から特性比較を行ってもよい。
[効果]
このように、実施例2に係るWAN高速化装置10は、いずれのプロトコルを用いてもレイテンシが変わらないと想定される場合には、スループットの高いプロトコルを選定することができる。したがって、トランザクションの通信時にレイテンシを改善することができるとともに、スループットを改善することもできる。
ところで、実施例1や実施例2では、TCPの異なる輻輳制御アルゴリズムの特性に基づいたアルゴリズムを選択する方法について説明したが、同じ考え方をUDP(User Datagram Protocol)にも適用することができる。
UDPは、一般的には信頼性を保証しないプロトコルであり、データを確実に相手に転送する用途には、誤り訂正機能を付加するのが一般的である。UDPに誤り訂正機能を付加したプロトコルとしては大きく2種類ある。1つ目は、誤り訂正機能として、送信側で予め冗長符号化を行い、誤りやロスがあったパケットを受信サイドで受信できたパケットから復元し訂正を行うプロトコル(以下、UDP+FEC(Forward Error Correction)と記載する場合がある)である。2つ目は、誤りやロスのあったパケットを再送により訂正する方法を実現するプロトコル(以下、UDP+再送と記載する場合がある)である。
図15は、高速化プロトコルとしてUDPを用いる場合に使用する廃棄率とレイテンシの関係を示す図である。図15は、バーストサイズが15000バイトかつRTTが200msの状況でシミュレーションした場合の廃棄率とレイテンシとの関係を示した図である。なお、図15には、比較として、同じ状況でCUBICを用いてシミュレーションした場合の廃棄率とレイテンシとの関係も図示している。
UDP+FEC方式は、送信側でデータを送信する際、複数のパケットに冗長データを含めUDPメッセージで相手に送信し、ロスや誤りがあった場合、受信側で正しく受信できたメッセージからロスしたメッセージを復元する方式である。送信時に冗長計算を実行したり、受信側で復元処理を実行したりすることから、送受信の処理に時間がかかるが、廃棄率が高くても送信するデータ量が増えていかない。このため、図15に示すように、廃棄率が低い領域ではレイテンシが低くなるが、廃棄率が高くなってもレイテンシの悪化が少ない。
UDP+再送方式は、データにシーケンス番号を含めたUDPメッセージで、相手に送信し、相手からの確認応答により、ロスや誤りがあったメッセージを再送信する方式である。FEC方式と異なり、冗長計算を実行しないので、送受信の処理が速いが、廃棄率が高くなるにつれ再送が増加する。このため、図15に示すように廃棄率が低い領域ではUDP+FEC方式よりもレイテンシが高い一方、廃棄率が高い領域ではレイテンシは悪化する。
上述したように内容を元に、バーストサイズが15000バイトかつRTTが200msの状況で、選定部21が使用するアルゴリズム決定テーブル14に記憶させる情報を生成する。具体的には、アルゴリズム決定テーブル14は、廃棄率が0.8より小さい場合には、UDP+再送プロトコルが選定され、廃棄率が0.8より大きい場合には、UDP+FECプロトコルが選定されるテーブルを保持する。
また、UDPを用いた場合にも、実施例2と同様、スループットが高いプロトコルを選定するように制御することもできる。例えば、上記図15の例を用いて説明する。図15では、廃棄率が0.8を境に、UDP+再送方式とUDP+FECの選定が切り替わることになる。この場合、廃棄率が0.8である場合には、UDP+再送方式とUDP+FECとでは、レイテンシに大きな差はない。したがって、廃棄率が0.8である場合には、UDP+再送方式とUDP+FECのうち、スループットが高いと想定されるプロトコルを選定するようにしてもよい。
このように、UDPを用いるネットワークであっても、レイテンシが小さいプロトコルを選定してデータ中継を行うことができる。また、TCPであってもUDPであっても、レイテンシが小さいプロトコルを随時選定することができるので、本願が開示する手法が適用できるネットワークやシステムの幅が広がり、快適なサービス形態を実現することができる。
ところで、実施例1、2では、ある時点においてレイテンシが小さいプロトコルを選定する例について説明したが、これに限定されるものではなく、例えばレイテンシの変化等を考慮して、プロトコルを選定することもできる。
図16は、バーストの間隔を固定としてバーストの大きさを変化させた場合のレイテンシの変化例を示す図である。なお、図16では、バースト間隔を10秒とし、ScalableとCUBICのレイテンシの変化を示している。
図16に示すように、バーストサイズが1M〜15Kbytesの場合は、ACKが少ないことによるウィンドウ抑制現象が起きるため、廃棄率によりScalableとCUBICの優位が入れ替わる事象が発生する。なお、ウィンドウ抑制現象とは、バーストデータ送信時に、ACK数に応じて輻輳ウィンドウを拡大していく輻輳制御アルゴリズムが、時間により輻輳ウィンドウを広げる輻輳制御アルゴリズムよりも、ウィンドウの広がり方が小さくなる現象のことを指す。
一方、バーストサイズが10M〜60Mbytesの場合は、バーストが大きくなるにつれてバルク転送に近くなる。このため、どの廃棄率においてもScalableがCUBICよりも平均のウィンドウサイズが大きくなり、結果としてレスポンスもScalableの方が優位になる。
この両状態の切り替わりは、バースト間隔固定では、バーストサイズにより変わるが、実際の通信ではバースト間隔も変化するため、バースト速度がある閾値により両状態が切り替わる。なお、バースト速度は、「平均バーストサイズ/平均バースト間隔」で算出できる。
そこで、バーストサイズ測定部20が測定する平均バーストサイズと平均バースト間隔に基づいて計算されるバースト速度が閾値を超える場合は、実施例2で説明した平均スループットに基づくアルゴリズム決定テーブルを利用し最適なアルゴリズムを選択する。一方、バースト速度が閾値以下の場合は、実施例1等で説明したレイテンシに基づくアルゴリズム決定テーブルを参照しアルゴリズムを選択するようにしてもよい。
このようにすることで、バーストサイズの変化に追従することができるので、ネットワーク状況やバーストサイズの変化に適した、レイテンシの小さいプロトコルやスループットの高いプロトコルを状況に応じて選定することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(プロトコル)
上記実施例で説明したTCPやUDPなどのプロトコルは一例であり、実施例で説明したものに限定するものではない。TCPを改良した様々なプロトコルやUDPを改良した様々なプロトコルを採用することができる。
(ネットワーク特性)
上記実施例では、WAN高速化装置10が、ネットワーク特性として、相手先とのデータ送受信から廃棄率やRTTを測定する例について説明したが、これに限定されるものではない。例えば、WAN高速化装置は、専用線など廃棄率やRTTを予め想定することができる場合には、相手先とのデータ送受信から、廃棄率やRTTを測定しなくてもよい。この場合、廃棄率やRTTが予め想定できているので、想定される廃棄率やRTTに基づいて図4、図11、図12を生成する。
(組み合わせ)
上記実施例は、任意に組み合わせることができる。また、上記実施例では、TCPとUDPとを別々の実施例で説明したが、これらも組み合わせることができる。例えば、図4等のテーブルが、ScalableとUDP+再送とのいずれかを選定させるテーブルであってもよい。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(ハードウェア構成)
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。
図17は、ハードウェア構成例を示す図である。図17に示すように、WAN高速化装置100は、CPU102、入力装置103、出力装置104、通信インタフェース105、媒体読取装置106、HDD(Hard Disk Drive)107、RAM(Random Access Memory)108を有する。また、図17に示した各部は、バス101で相互に接続される。
入力装置103は、マウスやキーボードであり、出力装置104は、ディスプレイなどであり、通信インタフェース105は、NIC(Network Interface Card)などのインタフェースである。HDD107は、図2等に示した機能を実行するプログラムとともに、各実施例で説明した各テーブル等を記憶する。記録媒体の例としてHDD107を例に挙げたが、ROM(Read Only Memory)、RAM、CD−ROM等の他のコンピュータが読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのWAN高速化装置自身の記録媒体に格納して用いてもよい。
CPU102は、図2に示した各処理部と同様の処理を実行するプログラムを読み出してRAM108に展開することで、図2等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、受信MAC部11、送信MAC部12、トランスポート処理部15、プロキシ処理部19、選定部21と同様の機能を実行する。このようにWAN高速化装置100は、プログラムを読み出して実行することでプロトコル選定方法を実行する情報処理装置として動作する。
また、WAN高速化装置100は、媒体読取装置106によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、WAN高速化装置100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
10 WAN高速化装置
11 受信MAC部
12 送信MAC部
13 セッション監視テーブル
14 アルゴリズム決定テーブル
15 トランスポート処理部
16 RTT測定部
17 廃棄率測定部
18 切替部
19 プロキシ処理部
20 バーストサイズ測定部
21 選定部
22 第2アルゴリズム決定テーブル

Claims (8)

  1. トランスポート層における所定のプロトコルを用いて、第1装置がバースト送信したバーストデータのサイズを測定する測定部と、
    前記トランスポート層に用いられる複数のプロトコルの中から、前記測定部によって測定されたバーストデータのサイズと、ネットワークの特性とから推定されるレイテンシが小さいアルゴリズムにしたがって動作するプロトコルを選定する選定部と、
    前記第1装置が前記所定のプロトコルを用いて送信したバーストデータの通信を終端させ、前記選定部によって選定されたプロトコルを用いて、当該バーストデータを宛先に転送する転送部と
    を有することを特徴とする通信制御装置。
  2. 前記バーストデータが前記第1装置から第2装置にバースト送信されて、前記第2装置から前記第1装置に応答が送信される一連の流れから、前記第1装置と前記第2装置とを接続するネットワークの往復遅延時間と、当該ネットワークにおけるデータの廃棄率とを測定する第2測定部をさらに有し、
    前記選定部は、前記ネットワークの特性として前記第2測定部が測定したネットワークの往復遅延時間とデータの廃棄率とを用い、前記バーストデータのサイズと前記ネットワークの往復遅延時間と前記データの廃棄率とから特定されるレイテンシが小さいプロトコルを選定することを特徴とする請求項1に記載の通信制御装置。
  3. 前記選定部は、前記レイテンシが小さいプロトコルが選定できない場合に、前記ネットワークの特性とから特定されるスループットが大きいプロトコルを選定することを特徴とする請求項1に記載の通信制御装置。
  4. 前記選定部は、バルク転送を実施した際の平均スループットを評価した結果の中から、前記ネットワークの特性と用いて、前記スループットが大きいプロトコルを選定することを特徴とする請求項3に記載の通信制御装置。
  5. 前記選定部は、輻輳ウィンドウの広げ方を確認応答の数に応じて広げるアルゴリズムにしたがって動作するプロトコル、または、輻輳が発生してからの時間に応じてウィンドウを広げるアルゴリズムにしたがって動作するプロトコルから、前記測定部によって測定されたバーストデータのサイズと、前記ネットワークの特性とから推定されるレイテンシが小さいプロトコルを選定することを特徴とする請求項1に記載の通信制御装置。
  6. 前記選定部は、再送により誤り訂正を実行するアルゴリズムにしたがって動作するプロトコル、または、冗長符号化により誤り訂正を実行するアルゴリズムにしたがって動作するプロトコルから、前記測定部によって測定されたバーストデータのサイズと、前記ネットワークの特性とから推定されるレイテンシが小さいプロトコルを選定することを特徴とする請求項1に記載の通信制御装置。
  7. コンピュータが、
    第1装置がトランスポート層における所定のプロトコルを用いてバースト送信したバーストデータのサイズを測定し、
    前記トランスポート層に用いられる複数のプロトコルの中から、測定されたバーストデータのサイズと、ネットワークの特性とから推定されるレイテンシが小さいアルゴリズムにしたがって動作するプロトコルを選定し、
    前記第1装置が前記所定のプロトコルを用いて送信したバーストデータの通信を終端させ、選定されたプロトコルを用いて、当該バーストデータを宛先に転送する
    処理を実行することを特徴とする通信制御方法。
  8. コンピュータに、
    第1装置がトランスポート層における所定のプロトコルを用いてバースト送信したバーストデータのサイズを測定し、
    前記トランスポート層に用いられる複数のプロトコルの中から、測定されたバーストデータのサイズと、ネットワークの特性とから推定されるレイテンシが小さいアルゴリズムにしたがって動作するプロトコルを選定し、
    前記第1装置が前記所定のプロトコルを用いて送信したバーストデータの通信を終端させ、選定されたプロトコルを用いて、当該バーストデータを宛先に転送する
    処理を実行させることを特徴とする通信制御プログラム。
JP2012042571A 2012-02-28 2012-02-28 通信制御装置、通信制御方法および通信制御プログラム Active JP5867160B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012042571A JP5867160B2 (ja) 2012-02-28 2012-02-28 通信制御装置、通信制御方法および通信制御プログラム
US13/779,140 US8897166B2 (en) 2012-02-28 2013-02-27 Communication control device, communication control method, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012042571A JP5867160B2 (ja) 2012-02-28 2012-02-28 通信制御装置、通信制御方法および通信制御プログラム

Publications (2)

Publication Number Publication Date
JP2013179502A true JP2013179502A (ja) 2013-09-09
JP5867160B2 JP5867160B2 (ja) 2016-02-24

Family

ID=49002763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012042571A Active JP5867160B2 (ja) 2012-02-28 2012-02-28 通信制御装置、通信制御方法および通信制御プログラム

Country Status (2)

Country Link
US (1) US8897166B2 (ja)
JP (1) JP5867160B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2993867A1 (en) 2014-09-03 2016-03-09 Fujitsu Limited Communication system, control apparatus, and communication method

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146293B2 (en) * 2014-09-22 2018-12-04 Western Digital Technologies, Inc. Performance-aware power capping control of data storage devices
US9826066B2 (en) 2015-02-26 2017-11-21 Citrix Systems, Inc. System for dynamic selection and application of TCP congestion avoidance flavors
US9985898B2 (en) 2015-02-26 2018-05-29 Citrix Systems, Inc. System for bandwidth optimization with traffic priority determination
CN105991462B (zh) * 2015-03-02 2019-05-28 华为技术有限公司 传输控制协议tcp数据包的发送方法、发送装置和***
JP2016208315A (ja) * 2015-04-23 2016-12-08 富士通株式会社 通信装置、通信処理方法、および、通信プログラム
US9965206B2 (en) 2015-10-23 2018-05-08 Western Digital Technologies, Inc. Enhanced queue management for power control of data storage device
US10419968B2 (en) * 2016-03-30 2019-09-17 International Business Machines Corporation Dynamic selection of TCP congestion control for improved performances
JP6988092B2 (ja) * 2017-01-16 2022-01-05 富士通株式会社 並列処理装置およびバーストエラー再現方法
CN107809302B (zh) * 2017-08-23 2020-12-15 银江股份有限公司 一种不可靠链路下的文件元数据冗余传输、接收方法及***
US11496404B2 (en) 2019-06-27 2022-11-08 Google Llc Congestion control for low latency datacenter networks
US11338199B2 (en) * 2020-02-18 2022-05-24 At&T Intellectual Property I, L.P. Interactive latency measurement

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11341072A (ja) * 1998-05-25 1999-12-10 Kdd Corp Tcp通信高速化装置
JP2006069008A (ja) * 2004-09-01 2006-03-16 Canon Inc 無線印刷システム
JP2006325103A (ja) * 2005-05-20 2006-11-30 Nippon Hoso Kyokai <Nhk> コンテンツ送信装置及びそのプログラム、並びに、コンテンツ受信装置及びそのプログラム
JP2007013823A (ja) * 2005-07-04 2007-01-18 Nippon Telegr & Teleph Corp <Ntt> 輻輳制御方法およびその通信端末
US20080144624A1 (en) * 2006-12-14 2008-06-19 Sun Microsystems, Inc. Method and system for time-stamping data packets from a network
JP2009212796A (ja) * 2008-03-04 2009-09-17 Nec Corp 送信装置、データ転送システム、データ転送方法およびデータ転送プログラム
US20100128623A1 (en) * 2008-11-26 2010-05-27 Antoine Dunn End-to-end analysis of transactions in networks with traffic-altering devices
JP2010258512A (ja) * 2009-04-21 2010-11-11 Sharp Corp 映像受信装置
WO2010143910A2 (ko) * 2009-06-11 2010-12-16 주식회사 씨디네트웍스 최적의 전송 프로토콜 선택 방법 및 그 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5384770A (en) * 1992-05-08 1995-01-24 Hayes Microcomputer Products, Inc. Packet assembler
US8135024B2 (en) * 2005-11-14 2012-03-13 Corning Incorporated Method and system to reduce interconnect latency
US20070201497A1 (en) * 2006-02-27 2007-08-30 International Business Machines Corporation Method and system for high-concurrency and reduced latency queue processing in networks
JP2010074279A (ja) 2008-09-16 2010-04-02 Toshiba Corp 通信装置、方法及びプログラム
EP2580930A4 (en) * 2010-06-09 2015-12-02 Entropic Communications Inc METHOD AND APPARATUS FOR PREAMBLE REDUCTION

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11341072A (ja) * 1998-05-25 1999-12-10 Kdd Corp Tcp通信高速化装置
JP2006069008A (ja) * 2004-09-01 2006-03-16 Canon Inc 無線印刷システム
JP2006325103A (ja) * 2005-05-20 2006-11-30 Nippon Hoso Kyokai <Nhk> コンテンツ送信装置及びそのプログラム、並びに、コンテンツ受信装置及びそのプログラム
JP2007013823A (ja) * 2005-07-04 2007-01-18 Nippon Telegr & Teleph Corp <Ntt> 輻輳制御方法およびその通信端末
US20080144624A1 (en) * 2006-12-14 2008-06-19 Sun Microsystems, Inc. Method and system for time-stamping data packets from a network
JP2009212796A (ja) * 2008-03-04 2009-09-17 Nec Corp 送信装置、データ転送システム、データ転送方法およびデータ転送プログラム
US20100128623A1 (en) * 2008-11-26 2010-05-27 Antoine Dunn End-to-end analysis of transactions in networks with traffic-altering devices
JP2010258512A (ja) * 2009-04-21 2010-11-11 Sharp Corp 映像受信装置
WO2010143910A2 (ko) * 2009-06-11 2010-12-16 주식회사 씨디네트웍스 최적의 전송 프로토콜 선택 방법 및 그 장치
JP2012529840A (ja) * 2009-06-11 2012-11-22 シーディーネットワークス カンパニー リミテッド 最適の送信プロトコル選択方法およびその装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2993867A1 (en) 2014-09-03 2016-03-09 Fujitsu Limited Communication system, control apparatus, and communication method

Also Published As

Publication number Publication date
JP5867160B2 (ja) 2016-02-24
US8897166B2 (en) 2014-11-25
US20130223254A1 (en) 2013-08-29

Similar Documents

Publication Publication Date Title
JP5867160B2 (ja) 通信制御装置、通信制御方法および通信制御プログラム
US10009259B2 (en) Multi-path data transfer using network coding
US11611498B2 (en) Round-trip time evaluation system, method, and apparatus
EP3694160B1 (en) Date transmission method, apparatus and device
EP4072080A1 (en) Data flow control method and device
EP3780542B1 (en) Data transmission method and device
US11477106B2 (en) Data packet sending method and apparatus in IPV6 network
JP5867188B2 (ja) 情報処理装置、輻輳制御方法および輻輳制御プログラム
CN108322401B (zh) 网络传输拥塞的控制方法及装置
WO2010108144A1 (en) Systems and methods for improved wireless interface aggregation
JP2018531552A (ja) ネットワークを介するレートベースパケット伝送のためのシステムおよび方法
WO2017088815A1 (zh) 一种状态检测的方法及无线网络节点
JP2018531552A6 (ja) ネットワークを介するレートベースパケット伝送のためのシステムおよび方法
CN112436924B (zh) 一种数据传输方法及电子设备
Betzler et al. Congestion control for CoAP cloud services
EP3890261A1 (en) Connection establishment method and related device
Kim et al. Improvement of MPTCP Performance in heterogeneous network using packet scheduling mechanism
Aydin et al. Evaluating TCP-friendliness in light of concurrent multipath transfer
Kurosaka et al. Multipath TCP with multiple ACKs for heterogeneous communication links
CN111314961A (zh) Tcp传输方法、装置和***
JP5662779B2 (ja) 通信システム及びノード装置
KR102131427B1 (ko) Sctp에서의 혼잡 제어 방법 및 장치
Bhat et al. MPTCP combining congestion window adaptation and packet scheduling for multi-homed device
KR101328030B1 (ko) 이기종 네트워크 기반 데이터 동시 전송 장치 및 방법
Boutier et al. User-space Multipath UDP in MOSH

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151026

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: 20151208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151221

R150 Certificate of patent or registration of utility model

Ref document number: 5867160

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150