JP2016174268A - ネットワークシステム、ネットワークシステムの制御方法、通信装置、及びプログラム - Google Patents

ネットワークシステム、ネットワークシステムの制御方法、通信装置、及びプログラム Download PDF

Info

Publication number
JP2016174268A
JP2016174268A JP2015053093A JP2015053093A JP2016174268A JP 2016174268 A JP2016174268 A JP 2016174268A JP 2015053093 A JP2015053093 A JP 2015053093A JP 2015053093 A JP2015053093 A JP 2015053093A JP 2016174268 A JP2016174268 A JP 2016174268A
Authority
JP
Japan
Prior art keywords
communication
packet
data packet
optimization
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015053093A
Other languages
English (en)
Inventor
隆史 磯部
Takashi Isobe
隆史 磯部
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2015053093A priority Critical patent/JP2016174268A/ja
Priority to US14/976,472 priority patent/US20160277943A1/en
Publication of JP2016174268A publication Critical patent/JP2016174268A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】複数の通信が存在するネットワークにおいて、通信装置の最適化機能を有効に活用させる。
【解決手段】ネットワークを介して接続される端末間の通信を制御する複数の通信装置、及びネットワークを流れるパケットを解析する解析装置を備えるネットワークシステムであって、解析装置は、ネットワークを流れるパケットを解析し、解析の結果に基づいて通信装置が有する通信最適化機能の要否を通信毎に判定する解析部と、判定の結果に基づいて通信装置の制御命令を生成し、通信装置に制御命令を送信する制御部と、を有し、通信装置は、通信最適化機能が必要と判定された通信に対する最適処理を実行する最適化部と、パケットの送受信処理を制御し、制御命令に基づいて通信最適化機能を適用する通信を変更する接続管理部と、を有する。
【選択図】図2

Description

本発明は、端末間の通信を制御する通信装置に関する。
クラウド等に用いられる拠点間の通信網として、IP−VPN(Internet Protocol− Virtual Private Network)技術等を用いたWAN(Wide Area Network)を用いることが一般的になっている。
ある拠点に存在する端末と別の拠点に存在する端末との間で通信を行う場合、自拠点LAN及びWANを接続する回線と、WAN及び別拠点LANを接続する回線とを経由して通信が行われる。これらの回線は、契約帯域に基づいて使用可能な帯域幅が定められている。
端末間の通信では、TCPを用いるのが一般的である。TCP通信では、送信側の端末が送信したデータに対して、受信側の端末が受信済みデータの位置を送信端末にフィードバック通知する。送信側の端末は、フィードバック通知される受信済みデータの位置が変化しなくなった場合、廃棄検出と判定する。
さらに、送信側の端末は、輻輳ウィンドウサイズ(受信したことを受信端末から通知されなくても送信可能なデータサイズ)と呼ばれるパラメータを管理し、RTT(Round Trip Time)及び廃棄検出の有無に応じて、輻輳ウィンドウサイズを変化させる。
例えば、送信側の端末は、廃棄検出時又はRTT増加時にネットワークが混雑していると判定し、ウィンドウサイズを減少させる。これによって、送信帯域を間接的に減少させて、ネットワークの混雑を回避できる。また、送信側の端末は、廃棄が無い時やRTT減少時にネットワークが空いていると判定して、ウィンドウサイズを増加させる。これによって、送信帯域を間接的に増加させて、ネットワークの回線帯域を有効に利用できる。
RTTが大きく、かつ、廃棄率の高いWANのような回線では、TCPのウィンドウサイズが増加しにくくなり、通信帯域が低下することにより、契約回線の利用効率が低下する問題がある。また、WAN及び無線のような長距離回線のコストは高いため、契約帯域によって使用可能な帯域幅が制限され、データの転送が目標時間以内に完了しない問題があった。
上記の問題を解決するために、2つのネットワークの中継地点に、セッションを介した通信を最適化する機能を備えた通信装置を設置して、帯域を有効に活用する手法が一般的になっている。前述した方法は、無線端末及びセンサ端末向けにも用いられるようになっている。
セッションを介した通信を最適化する技術として、WANのTCP通信の帯域を向上させる技術(例えば、特許文献1)、及び端末間の通信データを削減する技術(例えば、特許文献2)などが知られている。
特許文献1には、「ネットワークに接続される第一の通信装置であって、前記第一の通信装置から前記ネットワークを介して第二の通信装置に送信されるパケットに関する帯域をインターバル毎に管理し、前記管理される現在のインターバルの再送帯域又は廃棄帯域及び過去のインターバルにおける制御帯域に基づいて、パケットを送出するための制御帯域を変更する帯域制御部と、前記制御帯域に従って、パケットを前記ネットワークに送出する送信部と、を有する」ことが記載されている。また、特許文献2には、「コンピュータ上で制限のないサイズのウインドウ内の可変長の繰り返されたフレーズを検出し、取り除くことのできるデータ圧縮システム及び方法」が記載されている。
特許第5175982号公報 米国特許出願公開第2002/0037035号明細書
通信セッションを最適化する機能を備えた通信装置を設置することで、通信回線帯域を有効に活用する手法は、無線キャリア向けの多数の無線端末の通信最適化のニーズと、社会インフラ向けの多数のセンサ端末の情報収集効率化のニーズを満たすためにも用いられる。
無線キャリアや社会インフラ向けのニーズを満たすためには、多セッションを効率的に最適化せねばならないという課題があった。この課題を解決するために、本発明は、少ないリソース量で実際に通信中の最適化効果が高い通信セッションのみを効率的に最適化する方法、装置及びシステムを提供する。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークを介して接続される端末間の通信を制御する複数の通信装置、及び前記ネットワークを流れるパケットを解析する解析装置を備えるネットワークシステムであって、前記解析装置は、前記ネットワークを流れるパケットを解析し、前記解析の結果に基づいて前記通信装置が有する通信最適化機能の要否を前記通信毎に判定する解析部と、前記判定の結果に基づいて前記通信装置の制御命令を生成し、前記通信装置に前記制御命令を送信する制御部と、を有し、前記通信装置は、前記通信最適化機能が必要と判定された前記通信に対する最適処理を実行する最適化部と、パケットの送受信処理を制御し、前記制御命令に基づいて前記通信最適化機能を適用する前記通信を変更する接続管理部と、を有することを特徴とする。
本発明によれば、複数の通信が存在するネットワークにおいて、通信装置の最適化機能を有効に活用できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1のネットワークシステムの構成例を示す説明図である。 実施例1の通信装置のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。 実施例1の解析装置のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。 実施例1の通信装置が送受信するパケットのフォーマットを示す説明図である。 実施例1の通信装置が保持するセッション管理テーブルの一例を示す説明図である。 実施例1の通信装置、転送装置、及び解析装置の各機能部の関係を示すブロック図である。各装置の機能部の処理について説明する。 実施例1の通信情報保存部が保持する各セッションのセッションデータのデータ構造を示す説明図である。 実施例1の通信情報保存部が保持するキャプチャデータのデータ構造を示す説明図である。 実施例1の通信情報保存部が保持するアナライズデータのデータ構造である。 実施例1の解析装置の受信処理部が実行する処理を説明するフローチャートである。 実施例1の解析装置の通信情報巡回部が実行する処理を説明するフローチャートである。 実施例1の解析装置の通信情報巡回部が実行する処理を説明するフローチャートである。 実施例1の通信装置の接続管理部が解析装置から制御命令を受信した場合に実行する処理を説明するフローチャートである。 実施例1の通信装置の接続管理部が実行する処理を説明するフローチャートである。 実施例1の通信装置の接続管理部が実行する処理を説明するフローチャートである。 実施例1の通信装置が最適化処理を開始するまでの状態遷移を示す説明図である。 実施例1の通信装置が最適化処理を終了するまでの状態遷移を示す説明図である。 実施例1の通信回線におけるセッションの状態を示す説明図である。 従来のセッションに対する最適化機能の適用方法の流れを示すシーケンス図である。 従来の通信装置における最適化機能の適用状態の一例を示す説明図である。
以下、添付図面を参照して本発明の実施例について説明する。各図において共通の構成については同一の参照符号を付している。
図1は、実施例1のネットワークシステムの構成例を示す説明図である。
実施例1のネットワークシステムは、通信装置100、解析装置110、転送装置120、及び複数の端末130から構成される。図1では、通信装置100、解析装置110、及び転送装置120は一つずつであるが二つ以上あってもよい。
複数の端末130−1、130−2、130−3と転送装置120とは、ネットワーク140−1を介して互いに接続される。また、複数の端末130−4、130−5、130−6と通信装置100とはネットワーク140−2を介して接続される。ネットワーク140は、WAN(Wide Area Network)及びLAN(Local Area Network)等が考えられる。なお、ネットワーク140の種別に限定されない。
端末130は、ネットワーク140、通信装置100、及び転送装置120を介して、他の端末130と通信する。
通信装置100は、端末130間の通信を制御する。本実施例では通信装置100は、セッション単位で通信を管理するものとする。また、本実施例では、セッションはTCPセッションであるものとする。
通信装置100は、パケットの受信処理及びパケットの送信処理を実行する。また、通信装置100は、最適化機能を用いて特定のセッションを流れるパケットに対して最適化処理を実行する。通信装置100は、解析装置110からの指示にしたがって、セッションに対する最適化機能の有効化又は無効化する。本実施例の通信装置100は、解析装置110からの制御命令に基づいて、セッションを介した通信中に、最適化機能を適用するセッションを動的に変更する。
転送装置120は、端末130から送信されるパケットをネットワーク140−1又は通信装置100に転送する。また、本実施例の転送装置120は、通信装置100と転送装置120との間を通過するパケットのミラーパケットを、解析装置110に転送する。
解析装置110は、転送装置120から受信したミラーパケットを解析し、解析結果に基づいて通信装置100の特定機能の要否をセッション毎に判定する。
解析装置110は、最適化機能を要と判定したセッションに対して最適化機能の有効化を指示する制御命令を通信装置100に送信する。解析装置110は、TCPセッション毎に通信を管理し、また通信を制御することによって、効率的かつ効果的に通信装置100の最適化機能を制御できる。
解析装置110は、最適化機能を不要と判定したセッションに対して最適化機能の無効化を指示する制御命令を通信装置100に送信する。これによって、通信装置100は、特定のセッションを流れるパケットに対してのみ最適化機能を適用し、他のセッションを流れるパケットはそのまま送信する。
ここで、図18及び図19を用いて、従来のセッションに対する最適化機能の適用方法について説明する。
図18は、従来のセッションに対する最適化機能の適用方法の流れを示すシーケンス図である。図19は、従来の通信装置における最適化機能の適用状態の一例を示す説明図である。
従来では、セッションを確立時に、セッションに対して最適化機能が適用される。具体的には、通信装置1900は、3−Way Handshakeにおいて、端末1910−1と端末1910−2との間でSYNパケット1801、SYNACKパケット1802、及びACKパケット1803が送受信され、セッションが確立された後、当該セッションに対して最適化機能を有効化する。すなわち、当該セッションにおける最適化処理が開始される(ステップS1804)。
また、従来では、セッションの切断時に、セッションに対する最適化機能の適用が終了する。具体的には、通信装置1900は、端末1910−1と端末1910−2との間でFIN1805、FINACKパケット1806、及びACKパケット1807が送受信され、セッションが切断された後、当該セッションに対する最適化機能を無効化する。すなわち、最適化処理が終了する(ステップS1808)。
従来技術では、セッションの確立時に最適化機能の適用が可能な上限数を超えた場合、当該セッションに対して最適化機能が適用されない。
図19は、従来の通信装置1900におけるセッションの状態を示す。図19に示すように、通信装置1900の最適化機能の適用が可能な上限数が「4」であり、最適化機能が適用されたセッションの数が「4」、最適化機能が適用されていないセッションの数が「2」である。このとき、最適化機能が適用された二つのセッションが切断された場合、従来技術では、セッションを介した通信中に、最適化機能が適用されていないセッションに対して新たに最適化機能を適用できない。したがって、最適化機能を最大限利用した通信の最適化ができないため、通信装置1900の通信リソースの無駄が発生する。
本実施例では、前述したような課題を解決するために、解析装置110が、最適化機能の効果が高いセッションを動的に選択することによって、通信装置100が有する通信リソースを最大限に利用した通信が可能となる。また、通信装置100は、最適化機能の有効化の指示を受け付けた後、通信の信頼性を確保可能なタイミングで最適化機能を有効化する。
図2は、実施例1の通信装置100のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
通信装置100は、ハードウェア構成として、演算装置200、主記憶装置210、及び複数のNIC220を有する。演算装置200、主記憶装置210、及び複数のNIC220はシステムバス230を介して互いに接続される。
演算装置200は、主記憶装置210に格納されるプログラムを実行する。演算装置200は、例えば、CPU、GPU等が考えられる。演算装置200がプログラムを実行することによって通信装置100が有する機能を実現する。以下では、機能部を主語に処理を説明する場合、演算装置200が当該機能部を実現するプログラムを実行していることを示す。
主記憶装置210は、演算装置200が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。また、主記憶装置210は、各プログラムが使用するワークエリア、及びバッファ214等の記憶領域を有する。
本実施例の主記憶装置210には、通信最適化部211及び接続管理部212を実現するプログラムが格納される。また、主記憶装置210にはセッション管理テーブル213が格納される。
通信最適化部211は、最適化機能を提供するモジュールであり、特定のセッションに対する最適化処理を実行する。最適化処理には、TCP高速化処理、圧縮処理、アプリケーション高速化処理、差分転送処理、暗号高速化処理、及びキャッシュ処理などが含まれる。本実施例では、TCP高速化処理を実現するTCP高速化機能を最適化機能の一例として説明する。
接続管理部212は、パケットの転送処理(送信処理及び受信処理)を制御する。また、接続管理部212は、解析装置110から送信される制御命令に基づいて、最適化機能を適用するセッションを動的に変更する。
セッション管理テーブル213は、通信装置100上のセッションに関する情報を格納する。セッション管理テーブル213の詳細は図5を用いて後述する。
バッファ214は、通信装置100が受信したパケットを一時的に格納する記憶領域である。バッファ214のサイズ及び数は適宜変更できる。
NIC220は、他の装置と接続するためのインタフェースである。本実施例の通信装置100は、解析装置110、転送装置120、及びネットワーク140−2のそれぞれに接続する三つのNIC220−1、220−2、220−3を備える。
なお、転送装置120は、通信装置100と同様のハードウェア構成であるものとする。
図3は、実施例1の解析装置110のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
解析装置110は、ハードウェア構成として、演算装置300、主記憶装置310、及び複数のNIC320を有する。演算装置300、主記憶装置310、及び複数のNIC320はシステムバス330を介して互いに接続される。
演算装置300、主記憶装置310、及びNIC320は、演算装置200、主記憶装置210、及びNIC220と同一のものである。
主記憶装置310には、受信処理部311、通信装置制御部312、通信情報巡回部313、及び通信情報保存部314を実現するプログラムを格納する。
受信処理部311は、転送装置120から受信したミラーパケットのヘッダ情報に基づいて、ミラーパケットが転送されるセッションに対応するセッション情報が通信情報保存部314に格納されているか否かを判定する。
通信情報保存部314に上記情報が格納されている場合、受信処理部311は、通信情報保存部314に格納されるセッション情報とミラーパケットのヘッダ情報に含まれるセッション情報とを解析し、通信情報保存部314に格納されるセッション情報を更新する。ミラーパケットが通過するセッションのセッション情報が通信情報保存部314に格納されていない場合、受信処理部311は、当該セッションのセッション情報を、通信情報保存部314に格納する。
通信装置制御部312は、通信情報保存部314に格納される各セッションのセッション情報に基づいて通信装置100に各種制御命令を送信する。
具体的には、任意のセッションに対して最適化機能が必要であると判定されている場合、通信装置制御部312は、セッションに対して最適化機能の有効化を指示する制御命令を通信装置100に送信する。一方、任意のセッションに対して最適化機能が不要であると判定されている場合、通信装置制御部312は、セッションに対する最適化機能の無効化を指示する制御命令を通信装置100に送信する。
通信情報巡回部313は、通信情報保存部314に格納される各セッションのセッション情報を確認し、各セッションに対して最適化機能の要否を判定し、判定結果を含むセッション情報を更新する。
通信情報保存部314は、各セッションのセッション情報を管理し、受信処理部311、通信装置制御部312、及び通信情報巡回部313から並列にセッション情報の更新操作を受け付ける。
図4は、実施例1の通信装置100が送受信するパケットのフォーマットを示す説明図である。
パケットは、MACヘッダ400、IPヘッダ410、TCPヘッダ420、TCPオプションヘッダ430、及びペイロード450を含む。
MACヘッダ400は、DMAC401、SMAC402、TPID403、PCP404、CFI405、VID406、及びType407を含む。
DMAC401は、宛先MACアドレスを表す。SMAC402は、送信元MACアドレスを表す。Type407は、MACフレームタイプを表す。
TPID403は、フレームタイプがVLANであることを示す。PCP404は、VLANの優先度を表す。CFI405は、MACアドレスが正規フォーマットであるかを表す。VID406はVLANのID番号を表す。なお、VLANを用いた通信でない場合、TPID403は存在しない。
IPヘッダ410は、IP length411、protocol412、SIP413、及びDIP414を含む。
IP length411は、MACヘッダを除くパケット長を表す。protocol412は、プロトコル番号を表す。SIP413は、送信元IPアドレスを表す。DIP414は、宛先IPアドレスを現す。
TCPヘッダ420は、src.port421、dst.port422、SEQ423、ACK424、flag425、及びtcp hlen426を含む。
src.port421は、送信元ポート番号を表す。dst.port422は、宛先ポート番号を表す。SEQ423は、送信シーケンス番号を表す。ACK424は、受信シーケンス番号を表す。flag425は、TCPフラグ番号を表す。tcp hlen426は、TCPのヘッダ長を表す。
TCPオプションヘッダ430は、option kind 1(431)、option length 1(432)、left_edge_1〜4(433、435、437、439)、及びright_edge_1〜4(434、436、438、440)を含む。
option kind 1(431)は、オプション種別を表す。option length 1(432)は、オプション長を表す。left_edge_1〜4(433、435、437、439)、及びright_edge_1〜4(434、436、438、440)は、一つのデータのうち、部分的に受信したデータ箇所の位置を送信先の端末130に通知するために用いられる。
なお、left_edge_1〜4(433、435、437、439)、right_edge_1〜4(434、436、438、440)は、部分的に受信できなかったデータ箇所の位置を通知するために用いられる場合もある。
TCPオプションヘッダ430は、TCP通信を開始するときに、装置間の情報交換などに使用する場合もある。
例えば、MSSオプションは、TCP通信を開始するときに、自装置の受信可能なMSSのサイズを対向装置に通知するために用いられる。SACKオプションは、TCP通信を開始するときに、自装置がSACKオプションに対応可能であることを対向装置に通知するために用いられるだけでなく、通信中にパケットの廃棄が検出されたときに部分的に受信したデータ箇所を対向装置に通知するためにも用いられる。タイムスタンプオプションは、通信中の自装置の受信時刻を対向装置に通知するために用いられる。このように、TCPオプションヘッダ430は、通信開始時及び通信中に、自装置の対応可能な機能及び情報を対向装置に伝えるために用いられる。
図5は、実施例1の通信装置100が保持するセッション管理テーブル213の一例を示す説明図である。
セッション管理テーブル213は、一つのセッション毎に一つのエントリを含む。セッション管理テーブル213のエントリは、送信元IPアドレス501、送信元ポート番号502、送信先IPアドレス503、送信先ポート番号504、先頭シーケンス番号505、末尾シーケンス番号506、ONフラグ507、OFFフラグ508、及び種類509を含む。
送信元IPアドレス501及び送信元ポート番号502は、送信元の装置(端末130)のIPアドレス及びポート番号を表す。送信先IPアドレス503及び送信先ポート番号504は、送信先の装置(端末130)のIPアドレス及びポート番号を表す。
先頭シーケンス番号505は、バッファ214に蓄積された複数のパケットの先頭となるシーケンス番号を表す。末尾シーケンス番号506は、バッファ214に蓄積された複数のパケットの末尾となるシーケンス番号である。
ONフラグ507は、最適化機能の有効化を指示するフラグである。ONフラグ507には「0」又は「1」が格納される。ONフラグ507には初期値として「0」が設定される。解析装置110によって最適化機能を有効化する制御命令を受信した場合、ONフラグ507に「1」が設定される。これによって最適化機能を有効化するための処理が開始される。最適化機能が有効化された後、すなわち、セッションに対する最適化処理が開始した後、ONフラグ507には再び「0」が設定される。
OFFフラグ508は、最適化機能の無効化を指示するフラグである。OFFフラグ508には「0」又は「1」が格納される。OFFフラグ508には初期値として「0」が設定される。解析装置110によって最適化機能を無効化する制御命令を受信した場合、OFFフラグ508に「1」が設定される。これによって最適化機能を無効化するための処理が開始される。最適化機能が無効化された後、すなわち、セッションに対する最適化処理が終了した後、OFFフラグ508には再び「0」が設定される。
種類509は、セッションに対して適用される最適化機能の種類を表す。
図6は、実施例1の通信装置100、転送装置120、及び解析装置110の各機能部の関係を示すブロック図である。各装置の機能部の処理について説明する。
(転送装置120)
転送装置120は、四つのNIC600を有し、また、ポートミラーリング機能部610を備える。ポートミラーリング機能部610は、NIC600−1から受信したパケットをNIC600−2に出力し、また、受信したパケットと同一のミラーパケットをNIC600−3から解析装置110に送信する。また、ポートミラーリング機能部610は、NIC600−2から受信したパケットをNIC600−1に出力し、また、受信したパケットと同一のミラーパケットをNIC600−4から解析装置110に送信する。
以下の説明では、ネットワーク140−1からネットワーク140−2へ流れるパケットを右方向のパケットと記載し、当該右方向のパケットのミラーパケットを右方向のミラーパケットと記載する。また、ネットワーク140−2からネットワーク140−1へ流れるパケットを左方向のパケットと記載し、当該左方向のパケットのミラーパケットを左方向のミラーパケットと記載する。なお、右方向のミラーパケット及び左方向のミラーパケットを特に区別しない場合、単にミラーパケットと記載する。
(解析装置110)
解析装置110の受信処理部311は、転送装置120から、NIC320−1を介して右方向のミラーパケットを受信し、また、NIC320−2を介して左方向のミラーパケットを受信する。受信処理部311は、受信したミラーパケットのヘッダ情報に基づいて、ミラーパケットが属するセッションのセッション情報が通信情報保存部314に格納されているか検索する。
上記情報が通信情報保存部314に格納されている場合、受信処理部311は、通信情報保存部314に格納されるセッション情報とミラーパケットのヘッダ情報におけるセッション情報とを解析し、通信情報保存部314に格納されるセッション情報を更新する。 上記情報が通信情報保存部314に格納されていない場合、受信処理部311は、当該セッションのセッション情報を、通信情報保存部314に格納する。
通信情報巡回部313は、通信情報保存部314に格納される各セッションのセッション情報を確認し、各セッションに対して通信装置100の最適化機能の要否を判定し、判定結果を含むセッション情報を更新する。
通信装置制御部312は、通信情報保存部314に格納される各セッションのセッション情報を確認する。任意のセッションに対して最適化機能が要と判定されている場合、通信装置制御部312は、当該セッションに対して最適化機能の有効化を指示する制御命令を生成し、NIC320−3を介して当該制御命令を通信装置100に送信する。任意のセッションに対して最適化機能が不要と判定されている場合、通信装置制御部312は、当該セッションに対して最適化機能の無効化を指示する制御命令を生成し、NIC320−3を介して当該制御命令を通信装置100に送信する。
通信情報保存部314は、受信処理部311、通信装置制御部312、及び通信情報巡回部313から並列にセッション情報の更新操作を受け付ける。
ここで、図7、図8、図9を用いて通信情報保存部314に格納されるセッション情報について説明する。セッション情報は、セッションデータ700、キャプチャデータ800、及びアナライズデータ900の三種類のデータ構造から構成される。
セッションデータ700は、セッションを管理するための情報を格納する。キャプチャデータ800は、セッションを流れるパケットのミラーパケットに関する情報を格納する。本実施例では、右方向のミラーパケットのキャプチャデータ800と左方向のミラーパケットのキャプチャデータ800が存在する。アナライズデータ900は、ミラーパケットの解析結果を格納する。
一つのセッションデータ700に対して、二つのキャプチャデータ800と、一つのアナライズデータ900とが対応付けられて管理される。
図7は、実施例1の通信情報保存部314が保持する各セッションのセッションデータ700のデータ構造を示す説明図である。図8は、実施例1の通信情報保存部314が保持するキャプチャデータ800のデータ構造を示す説明図である。図9は、実施例1の通信情報保存部314が保持するアナライズデータ900のデータ構造である。
セッションデータ700は、受信処理部311によって生成される情報であり、src_ip701、dest_ip702、src_port703、dest_port704、vlan705、prev706、next707、cd[0]708、cd[1]709、及びad710から構成される。
src_ip701及びsrc_port703は、送信元の装置のIPアドレス及びポート番号である。dest_ip702及びdest_port704は、送信先の装置のIPアドレス及びポート番号である。vlan705は、vlan番号である。
prev706及びnext707はセッションデータ700に対するポインタ変数である。cd[0]608及びcd[1]609は、キャプチャデータ800に対するポインタ変数である。ad710はアナライズデータ900に対するポインタ変数である。
キャプチャデータ800は、受信処理部311によって生成及び更新される情報である。キャプチャデータ800は、転送装置120を流れるパケットの方向毎に存在する。すなわち、右方向のミラーパケットのキャプチャデータ800と、左方向のミラーパケットのキャプチャデータ800とが存在する。
キャプチャデータ800は、seq801、ack802、tx_pkts803、retr_pkts804、tx_bytes805、ack_bytes806、timestamp_tv32[0]807、timestamp_tv32[1]808、milestone_seq809、及びmilestone_ack810から構成される。
seq801は、これまで受信したミラーパケットのシーケンス番号のうちの最後尾の番号である。ack802は、これまで受信したミラーパケットのACK番号の最後尾の番号である。
tx_pkts803は、これまで受信したミラーパケットの数である。retr_pkts804は、これまでミラーパケットのうちTCPによる再送パケットの数である。
tx_bytes805は、これまで受信したミラーパケットのペイロードサイズの合計値である。ack_bytes806は、これまで受信したミラーパケットのACK済のバイト数の合計値である。
milestone_seq809は、装置間の往復遅延時間を計測する場合に用いられる目印シーケンス番号である。milestone_ack810は、装置間の往復遅延時間を計測する場合に用いられる目印ACK番号である。目印シーケンス番号及び目印ACK番号を同一に刷ることによって、目印シーケンス番号を送信したパケットに対するACKパケットを識別することができる。
timestamp_tv32[0]807は、seq801がmilestone_seq809より大きくなった場合における、最初のミラーパケットのタイムスタンプである。timestamp_tv32[1]808は、ack802がmilestone_ack810より大きくなった場合における、最初のミラーパケットのタイムスタンプである。
アナライズデータ900は、受信処理部311によって生成され、また、通信情報巡回部313によって更新されるセッション情報である。アナライズデータ900は、init_tv901、last_update_tv902、last_tx_byte[0]903、last_tx_byte[1]904、last_ack_bytes[0]905、last_ack_bytes[1]906、average_bw[0]907、average_bw[1]908、current_bw[0]909、current_bw[1]910、current_tx_rate[0]911、current_tx_rate[1]912、current_loss_rate[0]913、current_loss_rate[1]914、current_rtt_us[0]915、current_rtt_us[1]916、finish_count917、及びscore918から構成される。
init_tv901は、セッション内で最初に受信したミラーパケットのタイムスタンプである。last_update_tv902は、前回通信情報巡回部313がセッション情報を更新したときの時刻である。
last_tx_byte[0]903は、前回通信情報巡回部313がセッション情報を更新したときまでに受信した右方向のミラーパケットのペイロードサイズの合計値である。last_tx_byte[1]904は、前回通信情報巡回部313がセッション情報を更新したときまでに受信した左方向のミラーパケットのペイロードサイズの合計値である。
last_ack_bytes[0]905は、前回通信情報巡回部313がセッション情報を更新したときまでに受信した右方向のミラーパケットによってACK済みのバイト数の合計値である。last_ack_bytes[1]906は、前回通信情報巡回部313がセッション情報を更新したときまでに受信した左方向のミラーパケットによってACK済みのバイト数の合計値である。
average_bw[0]907は、init_tv901以降現在までの右方向のパケットの通信速度の平均値である。average_bw[1]908は、init_tv901以降現在までの左方向のパケットの通信速度の平均値である。
current_bw[0]909は、前回通信情報巡回部313がセッション情報を更新して以降現在までの右方向のパケットの通信速度の平均値である。current_bw[1]910は、前回通信情報巡回部313がセッション情報を更新して以降現在までの左方向のパケットの通信速度の平均値である。
current_tx_rate[0]911は、前回通信情報巡回部313がセッション情報を更新して以降現在までの再送パケットを含む右方向のパケットの速度である。current_tx_rate[1]912は、前回通信情報巡回部313がセッション情報を更新して以降現在までの再送パケットを含む左方向のパケットの速度である。
current_loss_rate[0]913は、右方向のパケットの再送率である。current_loss_rate[1]914は、ひらり方向のパケットの再送率である。
current_rtt_us[0]915は、ネットワーク140−2側の端末130と通信装置100との間のマイクロ秒単位の往復遅延時間である。current_rtt_us[1]916は、ネットワーク140−1側の端末130と通信装置100との間のマイクロ秒単位の往復遅延時間である。
finish_count917は、セッションが終了したか否かの判定に用いるフラグ変数である。FINパケットが受信された場合、finish_count817の値が変更される。終了したセッションのセッション情報は、通信情報巡回部313によって削除される。また、通信情報巡回部313は、所定時間更新されていないセッション情報を削除する。
score918は、通信装置100の最適化機能の要否の判定に用いる点数である。なお、アナライズデータ900には、最適化機能の種別毎にscore918が存在する。本実施例では、最適化機能としてTCP高速化を中心に説明するため、アナライズデータ900には、TCP高速化の要否を判定するscore918が含まれるものとする。
以上が、通信情報保存部314に格納される情報の説明である。図6の説明に戻る。
(通信装置100)
接続管理部212は、NIC220−1を介してパケットを受信した場合、セッション管理テーブル213を参照して、最適化機能が適用されるセッションか否かを判定する。例えば、接続管理部212は、最適化機能が適用されるセッションの情報を保持する方法が考えられる。この場合、接続管理部212は、パケットのヘッダ情報に基づいてセッションを特定し、当該セッションに対して最適化機能が適用されているか否かを検索する。
受信したパケットが最適化機能が適用されるセッションのパケットである場合、接続管理部212は、当該パケットを通信最適化部211に出力する。受信したパケットが最適化機能が適用されるセッションのパケットでない場合、接続管理部212は、NIC220−2を介して転送装置120にパケットを送信する。
NIC220−2を介してパケットを受信した場合にも同様の処理が実行される。
接続管理部212は、NIC220−3を介して、任意のセッションに対する最適化機能の有効化を指示する制御命令又は任意のセッションに対する最適化機能の無効化を指示する制御命令を受信した場合、セッション管理テーブル213を更新する。
通信最適化部211は、任意のセッションに適用された最適化機能に対応する最適化処理を実行する。例えば、TCP高速化処理を実行する通信最適化部211は、NIC220−2から受信したパケットが入力された場合、受信したパケットのTCP通信を終端し、より高速な輻輳制御アルゴリズムを実行するTCP通信に基づいてNIC220−1へパケットを出力するプロキシ機能を提供する。また、TCP高速化処理を実行する通信最適化部211は、NIC220−1から受信したパケットが入力された場合、受信したパケットのTCP通信を終端し、RENOとして知られるアルゴリズムを実行するTCP通信に基づいてパケットをNIC220−2へ出力する。
本実施例では、接続管理部212がフィルタとしての機能を有するが、別途フィルタを設けてもよい。この場合、接続管理部212がフィルタに対して設定を行う。
次に、解析装置110及び通信装置100が実行する処理の詳細について説明する。まず、図10、図11及び図12を用いて解析装置110が実行する処理について説明する。
図10は、実施例1の解析装置110の受信処理部311が実行する処理を説明するフローチャートである。
受信処理部311は、ミラーパケットを受信した場合(ステップS1001)処理を開始する。まず、受信処理部311は、受信したミラーパケットのヘッダ情報を主記憶装置310に格納する(ステップS1002)。ミラーパケットのヘッダ情報のみを主記憶装置310に格納することによって、主記憶装置310の記憶領域の使用量を節約し、かつ、処理性能を高めることができる。
次に、受信処理部311は、通信情報保存部314が受信したミラーパケットが属するセッションのセッション情報を保持しているか否かを判定する(ステップS1003)。具体的には、受信処理部311は、通信情報保存部314に格納されるセッション情報の中から、受信したミラーパケットが属するセッションのセッション情報を検索する。
NIC320−1から受信したミラーパケットの場合、受信処理部311は、SIP413がsrc_ip701、DIP414がdest_ip702、src.port421がsrc_port703、dst.port422がdest_port704、VID406がvlan705と一致するエントリを検索する。NIC320−2から受信したミラーパケットの場合、受信処理部311は、SIP413がdest_ip702、DIP414がsrc_ip701、src.port421がdest_port704、dst.port422がsrc_port703、VID406がvlan705と一致するエントリを検索する。
通信情報保存部314が受信したミラーパケットが属するセッションのセッション情報を保持していると判定された場合、受信処理部311は、当該セッション情報を読み出し(ステップS1004)、受信したミラーパケットに基づいてセッション情報を更新する(ステップS1005)。その後、受信処理部311は、ステップS1001に戻り同様の処理を実行する。ステップS1005では、例えば、以下のような処理が実行される。
受信処理部311は、キャプチャデータ800のtx_pkts803に「1」を加算する。SEQ423がseq801より大きい場合、受信処理部311は、SEQ423とseq801との差分をtx_bytes805に追加し、seq801及びtimestamp_tv32[0]807を更新する。
ACK424がack802より大きい場合、受信処理部311は、ACK424とack802との差分をack_bytes806に追加し、ack802及びtimestamp_tv32[1]808を更新する。
SEQ423がseq801より小さい場合、又はSEQ423がseq801と等しく、かつ、ペイロード長が「0」の場合、受信処理部311は、retr_pkts804に「1」を加算する。
通信情報保存部314が受信したミラーパケットが属するセッションのセッション情報を保持していないと判定された場合、受信処理部311は、新たにセッション情報を生成し、通信情報保存部314に生成されたセッション情報を格納する(ステップS1006)。ここでは、一つのセッションデータ700、二つのキャプチャデータ800、及び一つのアナライズデータ900を含むセッション情報が生成される。その後、受信処理部311は、ステップS1001に戻り同様の処理を実行する。ステップS1006では、例えば、以下のような処理が実行される。
受信処理部311は、timestamp_tv32[0]807及びtimestamp_tv32[1]808に、受信したミラーパケットのタイムスタンプを設定する。受信処理部311は、tx_pkts803に「1」を設定する。受信処理部311は、tx_bytes805にペイロード長を設定し、seq801にSEQ423の値を設定し、また、ack802にACK424の値を設定する。
図11及び図12は、実施例1の解析装置110の通信情報巡回部313が実行する処理を説明するフローチャートである。
通信情報巡回部313は、周期的に又オペレータ等からの指示を受け付けた場合に、以下で説明する処理を開始する。以下の説明では、図11に示す処理を実行することをセッション情報の巡回とも記載する。
通信情報巡回部313は、通信情報保存部314に格納されるセッション情報の中から対象のセッション情報を選択する(ステップS1101)。本実施例はセッション情報の選択順番に依存しない。
なお、全てのセッション情報について処理が完了した場合、通信情報巡回部313は、処理を終了する。また、通信情報保存部314に一つもセッション情報が格納されていない場合、通信情報巡回部313は、処理を終了する。この場合、セッション情報が格納された後、以下で説明する処理が実行される。
通信情報巡回部313は、対象のセッション情報に基づいてパケットの再送率を算出する(ステップS1102)。
具体的には、通信情報巡回部313は、右向きのパケットに対応するキャプチャデータ800のtx_pkts803及びretr_pkts804を下式(1)に代入して右向きパケットの再送率を算出する。通信情報巡回部313は、同様に、左向きパケットに対応するキャプチャデータ800のtx_pkts803及びretr_pkts804を式(1)に代入して左向きパケットの再送率を算出する。通信情報巡回部313は、アナライズデータ900のcurrent_loss_rate[0]913に算出された右向きのパケットの再送率を設定する。また、通信情報巡回部313は、current_loss_rate[1]914に算出された左向きのパケットの再送率を設定する。
Figure 2016174268
次に、通信情報巡回部313は、対象のセッション情報に基づいて、通信の開始から現在までの平均帯域を算出する(ステップS1103)。
具体的には、通信情報巡回部313は、右向きのパケットに対応するキャプチャデータ800のack_bytes806及びアナライズデータ900のinit_tv901を下式(2)に代入して、右向きの平均帯域を算出する。通信情報巡回部313は、同様に、左向きのパケットに対応するキャプチャデータ800のack_bytes806及びアナライズデータ900のinit_tv901を式(2)に代入して、左向きの平均帯域を算出する。通信情報巡回部313は、average_bw[0]907に算出された右向きの平均帯域を設定する。また、通信情報巡回部313は、average_bw[1]908に算出された左向きの平均帯域を設定する。
Figure 2016174268
次に、通信情報巡回部313は、対象のセッション情報に基づいて、現在の帯域を算出する(ステップS1104)。
具体的には、通信情報巡回部313は、右向きのパケットに対応するキャプチャデータ800のack_bytes806及びアナライズデータ900のlast_update_tv902を下式(3)に代入して、現在の右向きの帯域を算出する。通信情報巡回部313は、左向きのパケットに対応するキャプチャデータ800のack_bytes806及びアナライズデータ900のlast_update_tv902を式(3)に代入して、現在の左向きの帯域を算出する。通信情報巡回部313は、アナライズデータ900のcurrent_bw[0]909に算出された現在の右向きの帯域を設定し、current_bw[1]910に算出された現在の左向きの帯域を設定する。
Figure 2016174268
次に、通信情報巡回部313は、対象のセッション情報に基づいて、前回のセッション情報の巡回後から現在までの送信速度を算出する(ステップS1105)。
具体的には、通信情報巡回部313は、右向きのパケットに対応するキャプチャデータ800のtx_bytes805及びアナライズデータ900のlast_update_tv902を下式(4)に代入して、現在の右向きの送信速度を算出する。通信情報巡回部313は、左向きのパケットに対応するキャプチャデータ800のtx_bytes805及びアナライズデータ900のlast_update_tv902を式(4)に代入して、現在の左向きの送信速度を算出する。通信情報巡回部313は、アナライズデータ900のcurrrent_tx_rate[0]911に算出された現在の右向きの送信速度を設定し、currrent_tx_rate[1]912に算出された現在の左向きの送信速度を設定する。
Figure 2016174268
次に、通信情報巡回部313は、送信済バイト数及びACK済バイト数をセッション情報に保存する(ステップS1106、ステップS1107)。
具体的には、通信情報巡回部313は、右向きのパケットに対応するキャプチャデータ800のtx_bytes805をアナライズデータ900のlast_tx_bytes[0]903に保存し、また、当該キャプチャデータ800のack_bytes806をアナライズデータ900のlast_ack_bytes[0]905に保存する。また、通信情報巡回部313は、左向きのパケットに対応するキャプチャデータ800のtx_bytes805をアナライズデータ900のlast_tx_bytes[1]904に保存し、また、当該キャプチャデータ800のack_bytes806をアナライズデータ900のlast_ack_bytes[1]906に保存する。
次に、通信情報巡回部313は、現在の時刻をセッション情報の巡回の時刻として保存する(ステップS1108)。
具体的には、通信情報巡回部313は、現在の時刻をアナライズデータ900のlast_update_tv902に設定する。
次に、通信情報巡回部313は、対象のセッション情報を用いて、RTT(Round Trip Time)を算出する(ステップS1109)。
具体的には、通信情報巡回部313は、右向きのパケットに対応するキャプチャデータ800のtimestamp_tv32[1]808と、左向きのパケットに対応するキャプチャデータ800のtimestamp_tv32[0]807とを下式(5)に代入して右向きの通信のRTTを算出する。また、通信情報巡回部313は、左向きのパケットに対応するキャプチャデータ800のtimestamp_tv32[1]808と、右向きのパケットに対応するキャプチャデータ800のtimestamp_tv32[0]807とを式(5)に代入して左向きの通信のRTTを算出する。通信情報巡回部313は、アナライズデータ900のcurrent_rtt_us[0]915に算出された右向きの通信のRTTを設定し、current_rtt_us[1]916に算出された左向きの通信のRTTを設定する。
Figure 2016174268
次に、通信情報巡回部313は、対象のセッション情報に対応するセッションに対する最適化機能の要否を判定するスコアを算出する(ステップS1110)。スコアの算出処理は図12を用いて後述する。通信情報巡回部313は、アナライズデータ900のscore918に算出されたスコアを設定する。その後、通信情報巡回部313は、ステップS1101に戻り、同様の処理を全てのセッション情報に対して繰り返し実行する。
図12を用いてスコアの算出処理ついて説明する。
通信情報巡回部313は、再送率及びRTTを用いてスコアを算出する(ステップS1201)。本実施例では、通信情報巡回部313は、右方向の通信及び左方向の通信のそれぞれについて、ステップS1201からステップS1204までの処理を実行する。
通信情報巡回部313は、アナライズデータ900のcurrent_loss_rate[0]913、current_rtt_us[0]915、current_rtt_us[1]916を下式(6)に代入してスコアを算出する。通信情報巡回部313は、アナライズデータ900のscore918に算出されたスコアを設定する。
Figure 2016174268
ここで、式(6)のa及びbは変更可能なパラメータであり、例えば、aが「0.001」、bが「1」に設定される。式(6)を用いてスコアを算出した場合、通信遅延及びネットワークにおけるパケット破棄率が大きいセッションのスコアの値は大きくなる。そのため、スコアの値が大きいセッションに対して最適化機能が優先的に適用される。
次に、通信情報巡回部313は、ACK済バイト数(last_ack_bytes[0]905)がc以下であるか否かを判定する(ステップS1202)。ここでcは変更可能なパラメータである。ステップS1202の処理は、通信開始後からの通信量が多いか否かを判定する処理である。
ACK済バイト数がc以下であると判定された場合、通信情報巡回部313は、score918を「0」に変更し(ステップS1204)、その後、ステップS1205に進む。通信開始後から通信量が少ないセッションの場合、最適化機能を適用する必要がないため、スコアによる判定が行われない。
ACK済バイト数がcより大きいと判定された場合、通信情報巡回部313は、現在の帯域(current_bw[0]909)がd以下であるか否かを判定する(ステップS1203)。ステップS1203の処理は、現在の通信量が多いか否かを判定する処理である。
現在の帯域がd以下であると判定された場合、通信情報巡回部313は、score918を「0」に変更し(ステップS1204)、その後、ステップS1205に進む。現在の通信量が少ないセッションの場合、最適化機能を適用する必要がないため、スコアによる判定が行われない。
現在の帯域がdより大きいと判定された場合、通信情報巡回部313は、左方向の通信についてスコアを算出する。
ステップS1201では、式(6)のcurrent_loss_rate[0]913の代わりに、current_loss_rate[1]914を用いる式を用いてスコアが算出される。通信情報巡回部313は、score918に算出されたスコアを加算する。
ステップS1202では、last_ack_bytes[1]906がc以下であるか否かが判定される。また、ステップS1203では、current_bw[1]910がd以下であるか否かが判定される。
右方向の通信及び左方向の通信をセットとして処理する通信装置100を制御する場合、双方向の通信を考慮したスコアを用いることによって、効果的なセッションの制御を実現できる。
双方向の通信についてスコアが算出された後、通信情報巡回部313は、全てのセッションについてスコアが算出されたか否かを判定する(ステップS1205)。
全てのセッションについてスコアが算出されていないと判定された場合、通信情報巡回部313は、ステップS1201に戻り、同様の処理を実行する。
全てのセッションについてスコアが算出されたと判定された場合、通信情報巡回部313は、算出されたスコアに基づいて、セッションに対する最適化機能の適用の要否を判定する(ステップS1206)。その後、通信情報巡回部313は、処理を終了する。
例えば、スコアが閾値未満である場合、通信情報巡回部313は、当該セッションに対する最適化機能の適用は不要であると判定する。他の判定方法としては、通信情報巡回部313は、スコアが高い順に、予め規定された数だけセッションを選択し、選択されたセッションが最適化機能を適用するセッションであると判定する。
なお、通信装置制御部312が、スコアに基づくセッションの最適化機能の適用の要否を判定してもよい。
本実施例はスコアの算出方法に限定されない。例えば、パケットの廃棄率又は通信の遅延時間のいずれか一方のみを用いてスコアを算出してもよい。また、パケット廃棄率及び通信の遅延時間以外に、通信量、ポート番号、パケット長、データのエントロピー等に基づいて算出されたスコアを算出してもよい。
通信情報巡回部313は、最適化機能を要と判定したセッションの情報を通信装置制御部312に通知する。
通信装置制御部312は、通信情報巡回部313から通知された情報に基づいて、通信情報保存部314に格納されるセッション情報を参照して、最適化機能を要と判定したセッションに対して最適化機能を有効化するための制御命令を生成する。当該制御命令にはIPアドレス、ポート番号等のセッションを特定するための情報、及び最適化機能の有効化を指示する制御種別が含まれる。
また、通信装置制御部312は、その他のセッションに対して最適化機能を無効化するための制御命令を生成する。当該制御命令には、最適化機能を要と判定したセッションを特定するための情報、及び最適化機能の無効化を指示する制御種別が含まれる。なお、特定のセッションに対する最適化機能の無効化を指示する場合には、制御命令には最適化機能を不要と判定したセッションを特定するための情報が含まれる。
なお、最適化機能毎のスコアを用いる場合、制御命令には、最適化機能の種別を特定するための情報が含まれる。
通信装置制御部312は、通信装置100に二つの制御命令を送信する。
次に、図13、図14A及び図14Bを用いて、通信装置100が実行する処理について説明する。
図13は、実施例1の通信装置100の接続管理部212が解析装置110から制御命令を受信した場合に実行する処理を説明するフローチャートである。
接続管理部212は、解析装置110から制御命令を受信した場合(ステップS1301)、以下で説明する処理を開始する。
接続管理部212は、制御命令に含まれる制御種別が最適化機能の有効化を指示する制御種別か否かを判定する(ステップS1302)。
制御命令に含まれる制御種別が最適化機能の有効化を指示する制御種別であると判定された場合、接続管理部212は、制御命令に含まれるセッションを特定するための情報に基づいてセッション管理テーブル213を参照して、セッションを特定する(ステップS1303)。
具体的には、接続管理部212は、送信元IPアドレス501、送信元ポート番号502、送信先IPアドレス503、及び送信先ポート番号504が制御命令に含まれる情報と一致するエントリを検索する。
接続管理部212は、特定されたセッションのONフラグ507に「1」を設定し、また、種類509にTCP高速化を設定する(ステップS1304)。その後、接続管理部212は、処理を終了する。接続管理部212は、ONフラグ507が「0」に変更されるまで、ACKパケットの監視を開始する。
ステップS1302において、制御命令に含まれる制御種別が最適化機能の無効化を指示する制御種別であると判定された場合、接続管理部212は、現在最適化機能が有効化されているセッションの中から、最適化機能を無効化するセッションを特定する(ステップS1305)。
例えば、接続管理部212は、セッション管理テーブル213の種類509にTCP高速化が設定されているセッションを検索する。接続管理部212は、制御命令に含まれるセッションを特定するための情報と、特定されたセッションの情報とを比較することによって、最適化機能を無効化するセッションを特定する。
接続管理部212は、特定されたセッションのOFFフラグ508に「1」を設定し、また、種類509を空欄に変更する(ステップS1306)。その後、接続管理部212は、処理を終了する。
図14A及び図14Bは、実施例1の通信装置100の接続管理部212が実行する処理を説明するフローチャートである。
接続管理部212は、パケットを受信すると以下で説明する処理を開始する。接続管理部212は、受信したパケットを解析し、解析結果に基づいてセッション管理テーブル213して当該パケットが流れるセッションを特定する(ステップS1401)。
具体的には、接続管理部212は、SIP413、src.port421、DIP414、及びdst.port422が送信元IPアドレス501、送信元ポート番号502、送信先IPアドレス503、及び送信先ポート番号504と一致するエントリを検索する。
接続管理部212は、特定されたセッションに対応するエントリのONフラグ507が「1」であるか否かを判定する(ステップS1402)。
ONフラグ507が「1」であると判定された場合、接続管理部212は、受信したパケットがACKパケットであるか否かを判定する(ステップS1403)。
受信したパケットがACKパケットであると判定された場合、接続管理部212は、ACKパケットに含まれるACK424が特定されたセッションに対応するエントリの先頭シーケンス番号505以上であるか否かを判定する(ステップS1404)。
ACKパケットに含まれるACK424が特定されたセッションに対応するエントリの先頭シーケンス番号505より小さいと判定された場合、接続管理部212は、受信したACKパケットを転送する(ステップS1405)。すなわち、通常の転送処理が実行される。この場合、接続管理部212は、受信したパケットを通信最適化部211に出力することなく、送信側のNIC220からパケットを転送する。その後、接続管理部212は、処理を終了する。
ACKパケットに含まれるACK424が特定されたセッションに対応するエントリの先頭シーケンス番号505より以上であると判定された場合、接続管理部212は、最適化処理の開始と判定して、受信したパケットを通信最適化部211に出力し、また、当該エントリのONフラグ507を「0」に変更する(ステップS1406)。その後、接続管理部212は、処理を終了する。これによって、接続管理部212は、通信最適化部211に最適化処理を開始させることができる。
ステップS1403において、受信したパケットがACKパケットではなくデータパケットであると判定された場合、接続管理部212は、バッファ214に受信したパケットを格納し、また当該パケットを転送する(ステップS1407)。この場合、接続管理部212は、受信したパケットを通信最適化部211に出力することなく、送信側のNIC220からパケットを転送する。
ONフラグ507が「1」である場合にデータパケットを受信した場合、通信最適化部211による最適化処理はまだ開始されていない。所定のシーケンス番号を含むACKパケットの受信後にセッションに対して最適化機能が適用されるため、接続管理部212が受信したパケットをバッファ214に格納する。これによって、通信最適化部211による最適化処理が開始される前であっても、当該最適化処理に必要なパケットをバッファ214に蓄積できる。
次に、接続管理部212は、受信したデータパケットのペイロード長及び当該パケットに含まれるSEQ423に基づいて、特定されたセッションに対応するエントリの先頭シーケンス番号505及び末尾シーケンス番号506を更新する(ステップS1408)。なお、先頭シーケンス番号505は、ONフラグ507が「1」になってから初めて受信したデータパケットの場合のみ、SEQ423の値へと更新される。また、末尾シーケンス番号506は、SEQ423とペイロード長とを加算した値に更新される。その後、接続管理部212は、処理を終了する。
ステップS1402において、特定されたセッションに対応するエントリのONフラグ507が「0」であると判定された場合、接続管理部212は、当該エントリのOFFフラグ508が「1」であるか否かを判定する(ステップS1411)。
特定されたセッションに対応するエントリのOFFフラグ508が「1」であると判定された場合、接続管理部212は、受信したパケットがACKパケットであるか否かを判定する(ステップS1412)。
受信したパケットがACKパケットであると判定された場合、接続管理部212は、ACKパケットのACK424が特定されたエントリの末尾シーケンス番号506以上であるか否かを判定する(ステップS1413)。
ACKパケットのACK424が特定されたエントリの末尾シーケンス番号506より小さいと判定された場合、接続管理部212は、バッファ214に格納されるパケットのうち、パケットのACK424が受信したパケットのACK424に対応するパケット、又は当該ACK424以下であるパケットをバッファ214から削除する(ステップS1414)。その後、接続管理部212は、処理を終了する。
ACKパケットのACK424が特定されたエントリの末尾シーケンス番号506以上であると判定された場合、接続管理部212は、特定されたセッションに対する最適化処理の終了と判定して、受信したパケットを転送し、また、当該エントリのOFFフラグ508を「0」に変更する(ステップS1415)。この場合、接続管理部212は、受信したパケットを通信最適化部211に出力することなく、送信側のNIC220からパケットを転送する。その後、接続管理部212は、処理を終了する。これによって、接続管理部212は、通信最適化部211に最適化処理を終了させることができる。
ステップS1412において、受信したパケットがデータパケットであると判定された場合、接続管理部212は、受信したパケットを転送する(ステップS1417)。この場合、接続管理部212は、受信したパケットを通信最適化部211に出力することなく、送信側のNIC220からパケットを転送する。その後、接続管理部212は、処理を終了する。
ステップS1411において、特定されたセッションに対応するエントリのOFFフラグ508が「0」であると判定された場合、接続管理部212は、当該セッションに対して最適化機能が適用されているか否かを判定する(ステップS1416)。
具体的には、接続管理部212は、セッションに対応するエントリの種類509が空欄であるか否かを判定する。種類509が空欄である場合、接続管理部212は、セッションに対して最適化機能が適用されていないと判定する。
特定されたセッションに対して最適化機能が適用されていないと判定された場合、接続管理部212は、受信したパケットを転送する(ステップS1417)。その後、接続管理部212は、処理を終了する。
特定されたセッションに対して最適化機能が適用されていると判定された場合、接続管理部212は、通信最適化部211に受信したパケットを出力する(ステップS1418)。その後、接続管理部212は、処理を終了する。
次に、具体例を用いて通信装置100の制御内容について説明する。図15は、実施例1の通信装置100が最適化処理を開始するまでの状態遷移を示す説明図である。図16は、実施例1の通信装置100が最適化処理を終了するまでの状態遷移を示す説明図である。以下の説明では、端末130−1と端末130−4との間でセッションが確立されているものとする。
状態1では、通信装置100が端末130−1から受信したデータパケットD0〜D3を端末130−4に転送した後、ONフラグ507に「1」が設定されたものとする。このとき、当該セッションに対する最適化処理は開始していない。
なお、通信装置100がデータパケットD0〜D3を受信した時点では、ONフラグ507及びOFFフラグ508が「0」であり、かつ、セッションに対して最適化機能が適用されていないため、データパケットD0〜D3を送信先の端末130−4に転送する(ステップS1417)。
状態1では、ONフラグ507に「1」が設定された後、通信装置100は、端末130−1から端末130−4宛てのデータパケットD4〜D7を受信するものとする。
状態2では、通信装置100は、データパケットD4〜D7を受信した場合、ONフラグ507が「1」であると判定し(ステップS1402がYES)、また、受信したパケットがデータパケットであると判定する(ステップS1403がNO)。したがって、通信装置100は、受信したデータパケットD4〜D7をバッファ214に格納し、端末130−4に当該データパケットD4〜D7を転送する(ステップS1407)。また、通信装置100は、先頭シーケンス番号505にデータパケットD4のSEQ423を設定し、末尾シーケンス番号506にデータパケットD7のSEQ423を設定する(ステップS1408)。
また、状態2では、端末130−1が端末130−4宛てのデータパケットD8〜D11を送信し、端末130−4が端末130−1宛てのACKパケットA0〜A3を送信する。
通信装置100は、データパケットD8〜D11を受信した場合、ONフラグ507が「1」であると判定し(ステップS1402がYES)、また、受信したパケットがデータパケットであると判定する(ステップS1403がNO)。したがって、通信装置100は、受信したデータパケットD8〜D11をバッファ214に格納し、端末130−4に当該データパケットD8〜D11を転送する(ステップS1407)。また、通信装置100は、末尾シーケンス番号506にデータパケットD11のSEQ423を設定する(ステップS1408)。
状態3では、通信装置100は、端末130−1から受信したデータパケットD9〜D12を端末130−4に転送し、端末130−1は、端末130−4宛てのデータパケットD13〜D16を送信し、端末130−4は、端末130−1宛てのACKパケットA4〜A8を送信しているものとする。
通信装置100は、ACKパケットA0〜A3を受信した場合、ONフラグ507が「1」であると判定し(ステップS1402がYES)、また、受信したパケットがACKパケットであると判定する(ステップS1403がYES)。さらに、通信装置100は、ACKパケットA3のACK424が先頭シーケンス番号505より小さいと判定する(ステップS1404がNO)。したがって、通信装置100は、受信したACKパケットA0〜A3を端末130−1に転送する(ステップS1405)。
通信装置100は、ACKパケットA4を受信した場合、ACKパケットA3のACK424が先頭シーケンス番号505以上であると判定する(ステップS1404がYES)。したがって、通信装置100は、ONフラグ507を「0」を変更し、最適化処理を開始する。
状態4では、通信装置100が端末130−1から受信したデータパケットD0〜D7をバッファ214に格納し、端末130−4に転送した後、OFFフラグ508に「1」が設定されたものとする。このとき、当該セッションに対する最適化処理は終了していない。また、セッションに対応するエントリの先頭シーケンス番号505にはデータパケットD0のSEQ423が格納され、末尾シーケンス番号506にはデータパケットD7のSEQ423が格納される。
状態4では、端末130−4が、端末130−1宛てのACKパケットA0〜A3を送信する。また、端末130−1が、端末130−4宛てのデータパケットD8〜D11を送信する。
状態5では、通信装置100は、データパケットD8〜D11を受信した場合、OFFフラグ508が「1」であると判定し(ステップS1411がYES)、また、受信したパケットがデータパケットであると判定する(ステップS1412がNO)。したがって、通信装置100は、受信したデータパケットD8〜D11をバッファ214に格納することなく、端末130−4に転送する(ステップS1417)。
状態5では、通信装置100は、ACKパケットA0〜A3を受信した場合、OFFフラグ508が「1」であると判定し(ステップS1411がYES)、また、受信したパケットがACKパケットであると判定する(ステップS1412がYES)。さらに、通信装置100は、ACKパケットA3のACK424が末尾シーケンス番号506より小さいと判定する(ステップS1413がNO)。したがって、通信装置100は、バッファ214に格納されるデータパケットA0〜A4を削除する(ステップS1414)。
状態5では、端末130−1は、端末130−4宛てのデータパケットD12〜D15を送信する。また、端末130−4は、端末130−1宛てのACKパケットA4〜A7を送信する。
状態6では、通信装置100は、データパケットD12〜D15を受信した場合、OFFフラグ508が「1」であると判定し(ステップS1411がYES)、また、受信したパケットがデータパケットであると判定する(ステップS1412がNO)。したがって、通信装置100は、受信したデータパケットD8〜D11をバッファ214に格納することなく、端末130−4に転送する(ステップS1417)。
状態6では、通信装置100は、ACKパケットA7を受信した場合、ACKパケットA3のACK424が末尾シーケンス番号506以上であると判定する(ステップS1413がYES)。したがって、通信装置100は、OFFフラグ508を「0」を変更し、最適化処理を終了する。以後、通信装置100は通常の転送処理を実行する。
図17は、実施例1の通信回線におけるセッションの状態を示す説明図である。通信装置100が最適化機能を適用できるセッションの数は「4」であるものとする。
図17に示す例では、通信装置100は、四つのセッションに対して最適化機能を適用している。解析装置110は、二つのセッションについて最適化機能が不要であると判定し、また、最適化機能を適用するセッションを新たに二つ選択する。
通信装置100は、解析装置から最適化機能を有効化する制御命令及び最適化機能を無効化する制御命令を受信した場合、最適化機能を適用するセッションを図17に示すように変更する。これによって、通信装置100が備える最適化機能を有効に活用できる。また、動的に最適化機能を適用するセッションを変更できるため、高品質の通信を提供することができる。
また、通信装置100は、TCP通信においてデータパケットの再送等が可能となるように、最適化処理の開始又は終了タイミングを適切に管理できる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるCPUが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるCPUが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
100 通信装置
110 解析装置
120 転送装置
130 端末
140 ネットワーク
200 演算装置
210 主記憶装置
211 通信最適化部
212 接続管理部
213 セッション管理テーブル
214 バッファ
220 NIC
230 システムバス
300 演算装置
310 主記憶装置
311 受信処理部
312 通信装置制御部
313 通信情報巡回部
314 通信情報保存部
320 NIC
330 システムバス
600 NIC
610 ポートミラーリング機能部
700 セッションデータ
800 キャプチャデータ
900 アナライズデータ
1801 SYNパケット
1802 SYNACKパケット
1803 ACKパケット
1805 FINパケット
1806 FINACKパケット
1807 ACKパケット
1900 通信装置
1910 端末

Claims (16)

  1. ネットワークを介して接続される端末間の通信を制御する複数の通信装置、及び前記ネットワークを流れるパケットを解析する解析装置を備えるネットワークシステムであって、
    前記解析装置は、
    前記ネットワークを流れるパケットを解析し、前記解析の結果に基づいて前記通信装置が有する通信最適化機能の要否を前記通信毎に判定する解析部と、
    前記判定の結果に基づいて前記通信装置の制御命令を生成し、前記通信装置に前記制御命令を送信する制御部と、
    を有し、
    前記通信装置は、
    前記通信最適化機能が必要と判定された前記通信に対する最適処理を実行する最適化部と、
    パケットの送受信処理を制御し、前記制御命令に基づいて前記通信最適化機能を適用する前記通信を変更する接続管理部と、
    を有することを特徴とするネットワークシステム。
  2. 請求項1に記載のネットワークシステムであって、
    前記通信装置は、前記通信によって送信されたデータパケットを一時的に格納するバッファを有し、
    前記接続管理部は、
    第1の通信に対して前記通信最適化機能の有効化を指示する前記制御命令を受信した後、前記第1の通信によって送信されたデータパケットを受信した場合、当該データパケットを前記バッファに格納し、
    前記バッファに格納されたデータパケットに対応する応答パケットを受信した場合、前記第1の通信に対する最適化処理を前記最適化部に開始させることを特徴とするネットワークシステム。
  3. 請求項2に記載のネットワークシステムであって、
    前記接続管理部は、
    第2の通信に適用された前記通信最適化機能の無効化を指示する前記制御命令を受信した後、前記第2の通信によって送信されたデータパケットを受信した場合、当該データパケットを送信先の端末に対して送信し、
    前記バッファに格納された前記第2の通信によって送信されたデータパケットに対応する応答パケットを受信した場合、前記第2の通信に対する最適化処理を前記最適化部に終了させることを特徴とするネットワークシステム。
  4. 請求項3に記載のネットワークシステムであって、
    前記接続管理部は、前記バッファに格納されたデータパケットの識別番号を管理し、
    前記バッファに格納されたデータパケットの識別番号と、前記応答パケットに含まれる識別番号とを比較することによって、前記バッファに格納されたデータパケットに対する応答パケットであるか否かを判定することを特徴とするネットワークシステム。
  5. 請求項3に記載のネットワークシステムであって、
    前記接続管理部は、前記第2の通信に適用された前記通信最適化機能の無効化を指示する前記制御命令を受信した後、応答パケットを受信した場合、前記バッファに格納されるデータパケットから、前記受信した応答パケットに対応するデータパケットを削除することを特徴とするネットワークシステム。
  6. ネットワークを介して接続される端末間の通信を制御する複数の通信装置、及び前記ネットワークを流れるパケットを解析する解析装置を備えるネットワークシステムの制御方法であって、
    前記ネットワークシステムの制御方法は、
    前記解析装置が、前記ネットワークを流れるパケットを解析し、前記解析の結果に基づいて前記通信装置が有する通信最適化機能の要否を前記通信毎に判定する第1のステップと、
    前記解析装置が、前記判定の結果に基づいて前記通信装置の制御命令を生成し、前記通信装置に前記制御命令を送信する第2のステップと、
    前記通信装置が、パケットの送受信処理を制御する第3のステップと、
    前記通信装置が、前記通信最適化機能が必要と判定された前記通信に対する最適処理を実行する第4のステップと、
    前記通信装置が、前記制御命令に基づいて前記通信最適化機能を適用する前記通信を変更する第5のステップと、
    を含むことを特徴とするネットワークシステムの制御方法。
  7. 請求項6に記載のネットワークシステムの制御方法であって、
    前記通信装置は、前記通信によって送信されたデータパケットを一時的に格納するバッファを有し、
    前記第5のステップは、
    第1の通信に対して前記通信最適化機能の有効化を指示する前記制御命令を受信した後、前記第1の通信によって送信されたデータパケットを受信した場合、当該データパケットを前記バッファに格納する第6のステップと、
    前記バッファに格納されたデータパケットに対する応答パケットを受信した場合、前記第1の通信に対する最適化処理を開始する第7のステップと、を含むことを特徴とするネットワークシステムの制御方法。
  8. 請求項7に記載のネットワークシステムの制御方法であって、
    前記第5のステップは、
    第2の通信に適用された前記通信最適化機能の無効化を指示する前記制御命令を受信した後、前記第2の通信によって送信されたデータパケットを受信した場合、当該データパケットを送信先の端末に対して送信する第8ステップと、
    前記バッファに格納された前記第2の通信によって送信されたデータパケットに対する応答パケットを受信した場合、前記第2の通信に対する最適化処理を終了する第9のステップと、を含むことを特徴とするネットワークシステムの制御方法。
  9. 請求項8に記載のネットワークシステムの制御方法であって、
    前記通信装置は、前記バッファに格納されたデータパケットの識別番号を管理し、
    前記第7のステップ及び前記第9のステップは、前記バッファに格納されたデータパケットの識別番号と、前記応答パケットに含まれる識別番号とを比較することによって、前記バッファに格納されたデータパケットに対応する応答パケットであるか否かを判定するステップを含むことを特徴とするネットワークシステムの制御方法。
  10. 請求項8に記載のネットワークシステムの制御方法であって、
    前記第9のステップは、応答パケットを受信した場合、前記バッファに格納されるデータパケットから、前記バッファに格納されるデータパケットから、前記受信した応答パケットに対応するデータパケットを削除するステップを含むことを特徴とするネットワークシステムの制御方法。
  11. ネットワークを介して接続される端末間の通信を制御する通信装置であって、
    特定の通信に対して通信最適化機能に基づく最適化処理を実行する最適化部と、
    パケットの送受信処理を制御する接続管理部と、を備え、
    前記接続管理部は、
    前記通信最適化機能を適用する通信を変更する制御命令を受信した場合、対象となる通信を特定し、
    前記特定された通信に対する前記通信最適化機能の適用を変更することを特徴とする通信装置。
  12. 請求項11に記載の通信装置であって、
    前記通信によって送信されたデータパケットを一時的に格納するバッファを有し、
    前記接続管理部は、
    第1の通信に対して前記通信最適化機能の有効化を指示する前記制御命令を受信した後、前記第1の通信によって送信されたデータパケットを受信した場合、当該データパケットを前記バッファに格納し、
    前記バッファに格納されたデータパケットに対する応答パケットを受信した場合、前記第1の通信に対する最適化処理を前記最適化部に開始させることを特徴とする通信装置。
  13. 請求項12に記載の通信装置であって、
    前記接続管理部は、
    第2の通信に適用された前記通信最適化機能の無効化を指示する前記制御命令を受信した後、前記第2の通信によって送信されたデータパケットを受信した場合、当該データパケットを送信先の端末に対して送信し、
    前記バッファに格納された前記第2の通信によって送信されたデータパケットに対する応答パケットを受信した場合、前記第2の通信に対する最適化処理を前記最適化部に終了させることを特徴とする通信装置。
  14. 請求項13に記載の通信装置であって、
    前記接続管理部は、前記バッファに格納されたデータパケットの識別番号を管理し、
    前記バッファに格納されたデータパケットの識別番号と、前記応答パケットに含まれる識別番号とを比較することによって、前記バッファに格納されたデータパケットに対応する応答パケットであるか否かを判定することを特徴とする通信装置。
  15. 請求項13に記載の通信装置であって、
    前記最適化部は、
    前記第2の通信に適用された前記通信最適化機能の無効化を指示する前記制御命令を受信した後、応答パケットを受信した場合、前記バッファに格納されるデータパケットから、前記受信した応答パケットに対応するデータパケットを削除することを特徴とする通信装置。
  16. ネットワークを介して接続される端末間の通信を制御する通信装置に実行させるプログラムであって、
    通信最適化機能を適用する通信を変更する制御命令を受信した場合、対象となる通信を特定する手順と、
    前記特定された通信に対する前記通信最適化機能の適用を変更する手順と、
    特定の通信に対して前記通信最適化機能に基づく最適化処理を実行する手順と、を前記通信装置に実行させることを特徴とするプログラム。
JP2015053093A 2015-03-17 2015-03-17 ネットワークシステム、ネットワークシステムの制御方法、通信装置、及びプログラム Pending JP2016174268A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015053093A JP2016174268A (ja) 2015-03-17 2015-03-17 ネットワークシステム、ネットワークシステムの制御方法、通信装置、及びプログラム
US14/976,472 US20160277943A1 (en) 2015-03-17 2015-12-21 Network system, control method of network system, communication device, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015053093A JP2016174268A (ja) 2015-03-17 2015-03-17 ネットワークシステム、ネットワークシステムの制御方法、通信装置、及びプログラム

Publications (1)

Publication Number Publication Date
JP2016174268A true JP2016174268A (ja) 2016-09-29

Family

ID=56925833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015053093A Pending JP2016174268A (ja) 2015-03-17 2015-03-17 ネットワークシステム、ネットワークシステムの制御方法、通信装置、及びプログラム

Country Status (2)

Country Link
US (1) US20160277943A1 (ja)
JP (1) JP2016174268A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018096609A1 (ja) * 2016-11-24 2018-05-31 株式会社日立製作所 計算機、通信制御方法、及びプログラム
KR20200078577A (ko) * 2017-10-31 2020-07-01 아브 이니티오 테크놀로지 엘엘시 중복 작업 결과를 사용하는 컴퓨팅 클러스터 관리

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112740730B (zh) * 2018-09-29 2023-04-04 Oppo广东移动通信有限公司 无线通信方法、终端设备和接入网设备
US11438272B2 (en) * 2019-12-31 2022-09-06 Opanga Networks, Inc. System and method for mobility tracking

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018096609A1 (ja) * 2016-11-24 2018-05-31 株式会社日立製作所 計算機、通信制御方法、及びプログラム
KR20200078577A (ko) * 2017-10-31 2020-07-01 아브 이니티오 테크놀로지 엘엘시 중복 작업 결과를 사용하는 컴퓨팅 클러스터 관리
JP2021503640A (ja) * 2017-10-31 2021-02-12 アビニシオ テクノロジー エルエルシー 複製されたタスク結果を使用してコンピュータクラスタを管理すること
US11269918B2 (en) 2017-10-31 2022-03-08 Ab Initio Technology Llc Managing a computing cluster
US11288284B2 (en) 2017-10-31 2022-03-29 Ab Initio Technology Llc Managing a computing cluster using durability level indicators
KR102444421B1 (ko) 2017-10-31 2022-09-16 아브 이니티오 테크놀로지 엘엘시 중복 작업 결과를 사용하는 컴퓨팅 클러스터 관리

Also Published As

Publication number Publication date
US20160277943A1 (en) 2016-09-22

Similar Documents

Publication Publication Date Title
US10367718B2 (en) Method for acquiring, by SDN switch, exact flow entry, and SDN switch, controller, and system
EP3761591B1 (en) Tcp link configuration method, apparatus, and computer program product
CN109792621A (zh) 用于评估聚合的连接的网络性能的方法和系统
EP2741463B1 (en) Data packet transmission method
EP3331205B1 (en) Data packet transmission method utilized in ipv6 network and device utilizing same
WO2018103675A1 (zh) 数据流重映射方法及装置和用户设备、ran设备
JP2014509483A (ja) ワイヤレスネットワークにおけるトランスミッション・コントロール・プロトコルの性能を改善する機構
US9515926B2 (en) Communication system, upper layer switch, control apparatus, switch control method, and program
CN110022264A (zh) 控制网络拥塞的方法、接入设备和计算机可读存储介质
EP2753030A1 (en) Flow identification method, device, and system
RU2013103496A (ru) Способ, устройство и система для перенаправления данных в системе связи
US10033619B2 (en) Data processing method and apparatus for OpenFlow network
JP2016174268A (ja) ネットワークシステム、ネットワークシステムの制御方法、通信装置、及びプログラム
KR102383782B1 (ko) 데이터 통신에서의 터널 데이터 업데이트 처리방법
CN109600318A (zh) 一种监控sdn中应用程序的方法及sdn控制器
CN106302213A (zh) 一种数据传输的方法及装置
JP2016100721A (ja) 制御装置
KR102087735B1 (ko) 중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템
CN103368841A (zh) 报文转发方法和装置
KR101841080B1 (ko) 데이터 패킷 우회 전송 방법 및 시스템
WO2024001820A1 (zh) 一种数据传输方法及网关设备
CN114424599B (zh) 用于传输基于会话的包的方法和系统
CN113726635B (zh) 一种报文处理方法、装置及电子设备
JP5339537B2 (ja) 不安定な無線リンクにおける切断耐性を高める無線端末、プロキシサーバ及びプログラム
JP4828555B2 (ja) ノード装置および帯域制御方法