JP2018011207A - Communication device, communication control method, and network system - Google Patents
Communication device, communication control method, and network system Download PDFInfo
- Publication number
- JP2018011207A JP2018011207A JP2016139065A JP2016139065A JP2018011207A JP 2018011207 A JP2018011207 A JP 2018011207A JP 2016139065 A JP2016139065 A JP 2016139065A JP 2016139065 A JP2016139065 A JP 2016139065A JP 2018011207 A JP2018011207 A JP 2018011207A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- unit
- function unit
- communication function
- processing unit
- 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
Links
Images
Abstract
Description
本発明は、通信制御に関する。 The present invention relates to communication control.
インターネット等のネットワーク回線の高速化等に伴い、クラウドコンピューティングが普及している。クラウドコンピューティングでは、インターネット等のネットワークを介して、ハードウェア及びソフトウェアがサービスとして提供される。クラウドコンピューティングの普及によるネットワーク回線の利用の増加に伴い、ネットワーク回線の品質の悪さ及び情報漏洩の問題がある。 Cloud computing has become widespread along with the speeding up of network lines such as the Internet. In cloud computing, hardware and software are provided as services via a network such as the Internet. As the use of network lines increases due to the spread of cloud computing, there are problems of poor quality of network lines and information leakage.
これらの問題を解決するために、回線の利用効率を向上させる装置、及びセキュリティの観点から通信データを暗号化する等の通信制御を変更する装置が導入されている。 In order to solve these problems, devices that improve line utilization efficiency and devices that change communication control such as encrypting communication data from the viewpoint of security have been introduced.
本技術分野の背景技術として、例えば、回線の利用効率を向上させる装置として、特開2015−133669号公報(特許文献1)では、「ネットワークに接続される送信装置の制御方法であって、前記ネットワークを介して受信装置にデータを送信し、前記受信装置から前記ネットワークを介して受信確認及び受信ウィンドウサイズの情報を含む確認応答データを受信し、前記送信装置から送信されるデータに関する帯域を制御し、前記送信されるデータのうち前記受信装置から確認応答を受信していないデータのデータサイズが、前記受信ウィンドウサイズから決まる上限値以下になるように、前記制御されている帯域を抑制し、前記データサイズと前記受信ウィンドウサイズとに基づいて、前記帯域の抑制の有/無を切り替える、送信装置の制御方法。」が開示されている。 As background art of this technical field, for example, as a device for improving the utilization efficiency of a line, Japanese Patent Laying-Open No. 2015-133669 (Patent Document 1) describes “a method for controlling a transmission device connected to a network, Transmits data to a receiving device via a network, receives acknowledgment data including reception confirmation and reception window size information from the receiving device via the network, and controls a bandwidth related to data transmitted from the transmitting device Then, the controlled bandwidth is suppressed so that the data size of the data that has not received an acknowledgment from the receiving device among the transmitted data is less than or equal to the upper limit value determined from the reception window size, Based on the data size and the reception window size, transmission / reception is switched to enable / disable the suppression of the bandwidth. Control method of the apparatus. "Is disclosed.
特許文献1の方式は、サーバとクライアントとの間に設置された通信装置が、サーバが送信したパケットを受信し、パケットをバッファする。その後、通信装置は、帯域制御処理を行い、バッファしたパケットを送信する。これによって、回線帯域が効率的に利用されるように、サーバとクライアントとの間の通信制御が変更される。 In the method of Patent Document 1, a communication device installed between a server and a client receives a packet transmitted by the server and buffers the packet. Thereafter, the communication device performs bandwidth control processing and transmits the buffered packet. As a result, communication control between the server and the client is changed so that the line bandwidth is efficiently used.
前述の方式では、通信装置が帯域制御処理を行う前にパケットの送受信を行うために、サーバ、クライアント及び通信装置のシステム全体としてパケット送受信処理の回数が増加し、また、パケットをバッファするために大量のメモリを使用する。そのため、リソースの消費量が大きい。 In the above-described method, since the communication device performs transmission / reception of packets before performing bandwidth control processing, the number of times of packet transmission / reception processing increases as the entire system of the server, client, and communication device, and also for buffering packets Use a lot of memory. Therefore, resource consumption is large.
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、データを送受信する通信装置であって、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるネットワークインタフェースを備え、前記ネットワークインタフェースを介してデータを送受信する通信機能部と、前記通信機能部から取得した前記データを処理し、処理された前記データを出力する通信処理部と、前記データに対して任意の通信制御を行う代理通信機能部と、前記通信処理部からの前記通信機能部の呼び出しを前記代理通信機能部の呼び出しに変更するフック処理部と、を有することを特徴とする。 A typical example of the invention disclosed in the present application is as follows. That is, a communication device that transmits and receives data, and includes a calculation device, a storage device connected to the calculation device, and a network interface connected to the calculation device, and a communication function that transmits and receives data via the network interface A communication processing unit that processes the data acquired from the communication function unit and outputs the processed data, a proxy communication function unit that performs arbitrary communication control on the data, and the communication processing unit And a hook processing unit that changes the call of the communication function unit from the call to the proxy communication function unit.
本発明の一態様によれば、リソースの消費量を抑えて、動的に通信制御を変更できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。 According to one aspect of the present invention, it is possible to dynamically change communication control while suppressing resource consumption. Problems, configurations, and effects other than those described above will become apparent from the description of the following examples.
以下、添付図面を参照して本発明の実施例を説明する。本実施例は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。 Embodiments of the present invention will be described below with reference to the accompanying drawings. It should be noted that the present embodiment is merely an example for realizing the present invention and does not limit the technical scope of the present invention. In each figure, the same reference numerals are given to common configurations.
実施例1では、本発明の基本的な一例を説明する。具体的には、実施例1では、OSI参照モデルのトランスポート層の伝送制御プロトコルであるTCP(Transmission Control Protocol)に基づくリソースの消費量を抑えたデータの送信制御を実現するシステムを示す。 In Example 1, a basic example of the present invention will be described. Specifically, the first embodiment shows a system that realizes data transmission control with reduced resource consumption based on TCP (Transmission Control Protocol), which is a transport control protocol of the transport layer of the OSI reference model.
図1は、実施例1のネットワークシステムの構成例を示す図である。 FIG. 1 is a diagram illustrating a configuration example of a network system according to the first embodiment.
ネットワークシステムは、一つ以上の中継装置102を含む一つ以上のネットワーク101、及び複数の計算機100から構成される。計算機100は、ネットワーク101を介して他の計算機100と通信する。なお、計算機100、ネットワーク101及び中継装置102の数は、図1に示す数に限定されず任意である。
The network system includes one or
図1に示す例では、計算機100−1及び計算機100−2は、ネットワーク101−1を介して互いに通信する。また、計算機100−1及び計算機100−2は、ネットワーク101−1及びネットワーク101−2を介して計算機100−3と通信する。 In the example illustrated in FIG. 1, the computer 100-1 and the computer 100-2 communicate with each other via the network 101-1. Further, the computer 100-1 and the computer 100-2 communicate with the computer 100-3 via the network 101-1 and the network 101-2.
計算機100は、物理サーバ、プロキシ装置、情報処理装置、端末等が考えられる。なお、計算機100は、物理サーバ上の仮想サーバでもよい。
The
ネットワーク101は、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット等が考えられる。また、ネットワーク101は、帯域保障されるネットワークでもよいし、帯域保障されないネットワークでもよい。
The
各ネットワーク101−1、101−2には、中継装置102−1、102−2が含まれる。中継装置102は、例えば、スイッチ及びゲートウェイ装置等が考えられる。 Each of the networks 101-1 and 101-2 includes relay apparatuses 102-1 and 102-2. As the relay device 102, for example, a switch and a gateway device can be considered.
図2は、実施例1の計算機100のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。図3は、実施例1の計算機100のソフトウェア構成の詳細を示すブロック図である。
FIG. 2 is a block diagram illustrating an example of a hardware configuration and a software configuration of the
計算機100は、演算装置200、主記憶装置201、二次記憶装置202、及びNIF(ネットワークインタフェース)203を有する。計算機100が有する各ハードウェアは、システムバス204を介して互いに接続され、また、システムバス204を介して互いにデータを転送する。
The
図2では、演算装置200、主記憶装置201、二次記憶装置202、及びNIF203が一つのシステムバス204を介して接続されている例を示す。なお、各ハードウェアは、複数のシステムバスを介して接続されてもよいし、システムバスを介さずに直接接続されてもよい。
FIG. 2 shows an example in which the
また、計算機100は、演算装置200、主記憶装置201、二次記憶装置202、及びNIF203を複数有してもよい。
The
演算装置200は、主記憶装置201に格納されるプログラムを実行し、また、主記憶装置201に対するデータの読み出し及び書込を行う。演算装置200は、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)等が考えられる。演算装置200がプログラムを実行することによって、計算機100の各種機能が実現される。以下の説明では、機能部を主語に処理を説明する場合、演算装置200が当該機能部を実現するプログラムを実行していることを表す。
The
主記憶装置201は、演算装置200が実行するプログラム及び当該プログラムに必要なデータを格納する。主記憶装置201は、例えば、メモリ等が考えられる。主記憶装置201に格納されるプログラムについては後述する。二次記憶装置202は、プログラム及びデータを永続的に格納する。二次記憶装置202は、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等が考えられる。
The
本実施例では、二次記憶装置202にプログラム及びデータが格納される。演算装置200は、必要に応じて、二次記憶装置202からプログラム及びデータを読み出し、主記憶装置201にプログラム及びデータをロードする。
In this embodiment, programs and data are stored in the
NIF203は、ネットワーク101と接続するためのインタフェースである。NIF203は、物理的なNIF上の論理的なNIFでもよい。
The
主記憶装置201は、通信処理部210、フック処理部220、代理通信機能部230、通信機能部240、及び設定情報入力処理部250を実現するプログラムを格納する。なお、主記憶装置201は、図示しない機能部を実現するプログラムを格納してもよい。また、主記憶装置201は、設定情報記憶部260及びフロー情報記憶部270を含む。
The
設定情報記憶部260は、代理通信機能部230が使用する設定情報を格納する。設定情報は、設定情報入力処理部250によって書き込まれる。設定情報の詳細は、図5を用いて説明する。
The setting
フロー情報記憶部270は、通信フローの管理情報であるフロー情報を格納する。フロー情報は、通信フローごとに通信状態を示す情報を含み、代理通信機能部230及び設定情報入力処理部250によって書き込まれる。フロー情報の詳細は、図6を用いて説明する。
The flow
通信処理部210は、通信機能部240と連携して、NIF203を介してネットワーク101と通信を行う第三者のアプリケーションである。なお、通信処理部210は、必要に応じて、受信パケットデータに対して任意の処理を実行してもよい。
The
通信処理部210は、計算機100が受信したパケットデータを受信するために通信機能部240を呼び出す。このとき、フック処理部220によって、当該呼び出しが代理通信機能部230への呼び出しに置き換えられる。この場合、通信処理部210は、フック処理部220を介して、代理通信機能部230からパケットデータを取得する。また、通信処理部210は、計算機100からパケットデータを送信するために通信機能部240を呼び出す。このとき、フック処理部220によって、当該呼び出しが代理通信機能部230への呼び出しに置き換えられる。この場合、通信処理部210は、フック処理部220を介して、代理通信機能部230にパケットデータを出力する。
The
通信機能部240は、OS(オペレーティングシステム)が提供する通信機能である。通信機能部240は、NIF203を管理し、アプリケーションに対して、通信を行うためのAPI(Application Programming Interface)を提供する。動作の詳細については後述する。
The
フック処理部220は、通信処理部210の起動時に通信機能部240が提供するAPIの処理を代理通信機能部230の処理に置き換える。これによって、フック処理部220は、通信処理部210と通信機能部240との間の処理に代理通信機能部230を割り込ませることができる。処理の置き換えは、通信処理部210が停止するまで有効である。フック処理部220を有することによって、計算機100は、帯域制御処理を行うために通信処理部210が送受信するパケットデータをバッファする必要がない。したがって、第三者のアプリケーションである通信処理部210を改変することなく、リソースの消費量を抑えた通信制御の動的な変更を実現できる。
The
通信処理部210及び代理通信機能部230は、フック処理部220を介して、直接、パケットデータを入出力するように振る舞う。すなわち、通信処理部210とフック処理部220との間のパケットデータの入出力、及び、フック処理部220と代理通信機能部230との間のパケットデータの入出力は、通信処理部210と代理通信機能部230との間のパケットデータの入出力と同義である。
The
例えば、LINUX(登録商標)系のOSの場合、通信処理部210の起動時に、共有ライブラリとして実装されたフック処理部220及び代理通信機能部230を環境変数LD_PRELOADに指定する。フック処理部220は、通信機能部240に存在する関数名と同名の代理通信機能部230のAPIを呼び出す関数を定義しておくことによって、通信処理部210による通信機能部240のAPIの呼び出しを、代理通信機能部230の呼び出しに置き換える。これによって、パケットデータの受信するための通信機能部240の呼び出し、及びパケットデータを送信するための通信機能部240の呼び出しが、代理通信機能部230の呼び出しに変更される。
For example, in the case of a LINUX (registered trademark) OS, when the
代理通信機能部230は、設定情報記憶部260から読み出した設定情報及びフロー情報記憶部270から読み出したフロー情報を用いて、パケットデータに対する通信制御を行い、通信機能部240と連携してNIF203を介してネットワーク101と通信する。また、代理通信機能部230は、通信制御を行う過程で、フロー情報の生成及び更新を行う。動作の詳細については後述する。
The proxy
設定情報入力処理部250は、通信処理部210の管理者からの設定情報の入力を受け付け、設定情報記憶部260に設定情報を書き込む処理、及びフロー情報記憶部270に格納されたフロー情報を削除する処理を実行する。通信処理部210の管理者は、CUI(Character User Interface)及びGUI(Graphical User Interface)を用いて各種値を入力する。なお、通信処理部210の管理者は、計算機100が入力装置を有する場合には入力装置を用いて値を入力し、計算機100が入力装置を有しない場合にはネットワークを介して外部から値を入力する。
The setting information
ここで、各機能部の詳細を説明する。 Here, details of each functional unit will be described.
代理通信機能部230は、送信制御アルゴリズム選択部231、フロー情報処理部232及び独自TCP送信制御部233を含む。
The proxy
通信機能部240は、受信部241、送信部242、ロスベースTCP送信制御部243及び遅延ベースTCP送信制御部244を含む。
The
受信部241は、NIF203から受信パケットデータを取得する。これによって、計算機100がネットワーク101からパケットデータを受信できる。受信部241は、受信パケットデータをフロー情報処理部232に転送する。
The receiving
送信部242は、独自TCP送信制御部233、ロスベースTCP送信制御部243及び遅延ベースTCP送信制御部244のいずれかから送信パケットデータを取得する。送信部242は、送信パケットデータをNIF203に転送する。これによって、計算機100がネットワーク101にパケットデータを送信できる。
The
独自TCP送信制御部233は、特許文献1に記載されたアルゴリズムに基づいてTCP送信制御を行い、送信制御アルゴリズム選択部231から受け取った送信パケットデータを送信部242に転送する。当該TCP送信制御は、RTT(Round Trip Time)及びパケット廃棄率が大きい場合に、効率的な送信制御方法である。
The unique TCP
ロスベースTCP送信制御部243は、TCP Renoとして知られるアルゴリズムに基づいてTCP送信制御を行い、送信制御アルゴリズム選択部231から受け取った送信パケットデータを送信部242に転送する。パケット廃棄に基づいてTCP送信制御処理が行われる。TCP Renoは、標準的に使用されるTCP送信制御方法である。
The loss-based TCP
遅延ベースTCP送信制御部244は、TCP Vegasとして知られるアルゴリズムに基づいてTCP送信制御を行い、送信制御アルゴリズム選択部231から受け取った送信パケットデータを送信部242に転送する。TCP Vegasは、RTTに基づいてパケット廃棄が起こらないようにTCP送信制御が行われる。これによって、閉じたネットワーク内で遅延ベースTCP送信制御部244同士がパケットデータの送受信を行う場合に、効率的な送信制御方法である。
The delay-based TCP
送信制御アルゴリズム選択部231は、設定情報記憶部260から読み出した設定情報及びフロー情報記憶部270から読み出したフロー情報を用いて効率的なTCP送信制御を選択する。送信制御アルゴリズム選択部234は、選択された送信制御を行う機能部にフック処理部220から受け取ったパケットデータを転送する。すなわち、送信制御アルゴリズム選択部231は、独自TCP送信制御部233、ロスベースTCP送信制御部243及び遅延ベースTCP送信制御部244のいずれかに、フック処理部220から受け取った送信パケットデータを転送する。また、送信制御アルゴリズム選択部231は、処理の過程で、フロー情報の生成及び更新を行う。処理の詳細は、図8を用いて説明する。
The transmission control
なお、計算機100は、独自TCP送信制御部233、ロスベースTCP送信制御部243及び遅延ベースTCP送信制御部244が行うTCP送信制御以外のアルゴリズムを用いてもよい。また、各TCP送信制御部は、代理通信機能部230及び通信機能部240のどちらに含まれていてもよい。TCP送信制御部の数は、図3に示す数に限定されず任意である。
The
フロー情報処理部232は、受信部241から受け取った受信パケットデータのヘッダ情報を用いて、フロー情報の生成及び更新を行い、フロー情報記憶部270にフロー情報を書き込む。また、フロー情報処理部232は、受信パケットデータをフック処理部220に転送する。処理の詳細は、図7を用いて説明する。
The flow
なお、通信処理部210、フック処理部220、代理通信機能部230、通信機能部240、設定情報入力処理部250、設定情報記憶部260、及びフロー情報記憶部270は、ソフトウェアとして実現されているが、こられの機能の一部又は全てを演算装置200及びNIF203等のハードウェアを用いて実現されてもよい。
The
図4は、実施例1の計算機100が送受信するTCPパケットデータのフォーマットの一例を示す図である。
FIG. 4 is a diagram illustrating an example of a format of TCP packet data transmitted and received by the
パケットデータは、MACヘッダ310、IPヘッダ320、TCPヘッダ330、TCPオプションヘッダ340、及びTCPペイロード350を含む。
The packet data includes a
MACヘッダ310は、DMAC311、SMAC312、TPID313、TCI314、及びType315を含む。
The
DMAC311は、宛先MACアドレスを表す。SMAC312は、送信元MACアドレスを表す。TPID313は、タグ付きフレームであること及びタグの種類を表す。TCI314は、タグの情報を表す。Type315は、MACフレームタイプを表す。
The
TCI314は、さらに、PCP316、CFI317、及びVID318を含む。PCP316は優先度を表す。CFI317は、MACアドレスが正規フォーマットであるかを表す。VID318は、VLANのIDを表す。なお、VLANが使用されていないネットワークの場合、TPID313及びTCI314は存在しない。この場合、計算機100は、VID318が「0」であるものとして処理を行う。
The
IPヘッダ320は、IP length321、protocol322、SIP323、及びDIP324を含む。
The
IP length321は、MACヘッダ310を除くパケット長を表す。protocol322は、プロトコル番号を表す。SIP323は、送信元IPアドレスを表す。DIP324は、宛先IPアドレスを表す。
TCPヘッダは、src.port331、dst.port332、SEQ333、ACK334、flag335、tcp hlen336、及びwin_size337を含む。
The TCP header is src.
src.port331は、送信元ポート番号を表す。dst.port332は、宛先ポート番号を表す。SEQ333は、送信シーケンス番号を表す。ACK334は、受信シーケンス番号を表す。flag335は、TCPフラグ番号を表す。tcp hlen336は、TCPのヘッダ長を表す。win_size337は、対向装置へ通知する広告ウィンドウサイズを表す。
src. The
TCPオプションヘッダ340は、0又は複数のオプションを含む。例えば、option kind341、option length342、及びオプション情報343等のオプションが含まれる。option kind341は、オプションの種別を表す。option length342は、オプション長を表す。オプション情報343は、オプションの種類に応じた情報を表す。
The
例えば、MSS(Maximum Segment Size)オプションは、TCP通信を開始するときに自装置の受信可能なMSSサイズを対向装置に通知するために用いられる。SACK(Selective ACKnowledgement)オプションは、TCP通信を開始するときに、自装置がSACKオプションに対応可能であることを対向装置に通知するために用いられる。SACKオプションは、さらに、通信中にパケットデータの廃棄が検出されたときに部分的に受信できたデータの箇所を対向装置に通知するために用いられる。タイムスタンプオプションは、通信中の自装置の受信時刻を対向装置に通知するために用いられる。ウィンドウスケールオプションは、win_size337によって通知される値をシフトするビット数を対向装置に通知することによって、対向装置に通知可能な広告ウィンドウサイズの最大値を大きくするために用いられる。このように、TCPオプションは、通信開始時及び通信中に自装置の対応可能な機能及び情報を対向装置に伝えるために用いられる。
For example, the MSS (Maximum Segment Size) option is used to notify the opposite device of the MSS size that can be received by the own device when TCP communication is started. A SACK (Selective Acknowledgment) option is used to notify the opposite device that the device is compatible with the SACK option when starting TCP communication. The SACK option is further used to notify the opposite device of the location of data that could be partially received when packet data discarding was detected during communication. The time stamp option is used to notify the opposite device of the reception time of its own device during communication. The window scale option is used to increase the maximum value of the advertisement window size that can be notified to the opposite device by notifying the opposite device of the number of bits for shifting the value notified by
図5は、実施例1の設定情報記憶部260に格納される設定情報のデータ構造の一例を示す図である。
FIG. 5 is a diagram illustrating an example of a data structure of setting information stored in the setting
設定情報は、network_location401、rtt_coe402、loss_coe403、及びthreshold404を含む。
The setting information includes
network_location401は、自装置が位置するネットワーク構成情報を表す。例えば、インターネット、ロスベースTCP送信制御が行われた閉じたネットワーク、遅延ベースTCP送信制御が行われた閉じたネットワーク等の情報を表す。
The
rtt_coe402は、送信制御アルゴリズム選択部231が送信制御を選択するときに使用するRTTの重みづけを表す任意の数値である。
The rtt_coe 402 is an arbitrary numerical value representing the weight of the RTT used when the transmission control
loss_coe403は、送信制御アルゴリズム選択部231が送信制御を選択するときに使用するパケット廃棄率の重みづけを表す任意の数値である。
The
threshold404は、送信制御アルゴリズム選択部231が送信制御を選択するときに使用する閾値を表す任意の数値である。
The
図6は、実施例1のフロー情報記憶部270に格納されるフロー情報のデータ構造の一例を示す図である。
FIG. 6 is a diagram illustrating an example of a data structure of flow information stored in the flow
フロー情報記憶部270は、通信フローごとにフロー情報500を格納する。フロー情報500は、フロー管理情報510及びフロー通信状態情報520を含む。
The flow
フロー管理情報510は、通信フローを一意に識別するための識別情報であり、src_ip511、dest_ip512、src_port513、dest_port514、及びvlan515を含む。
The
src_ip511は、自装置のIPアドレスを表す。dest_ip512は、対向装置のIPアドレスを表す。src_port513は、自装置のTCPポート番号を表す。dest_port514は、対向装置のTCPポート番号を表す。vlan515は、VLANのIDを表す。
フロー通信状態情報520は、通信フローの状態を表す情報であり、rtt521、loss522、seq523、ack_bytes524、及びtx_bytes525を含む。
The flow
rtt521は、RTTを表す。loss522は、パケット廃棄率を表す。seq523は、応答済みシーケンス番号を表す。ack_bytes524は、応答済みバイト数を表す。tx_bytes525は、送信済みバイト数を表す。
rtt521 represents the RTT.
図7は、実施例1のフロー情報処理部232が実行する処理の一例を説明するフローチャートである。
FIG. 7 is a flowchart illustrating an example of processing executed by the flow
フロー情報処理部232は、受信部241からの受信パケットデータの受信を契機に、処理を開始する(ステップS100)。
The flow
フロー情報処理部232は、受信パケットデータを受信した後(ステップS101)、フロー情報500を取得するために、受信パケットデータのヘッダ情報を主記憶装置201にコピーする(ステップS102)。その後、フロー情報処理部232は、受信パケットデータをフック処理部220へ転送する(ステップS103)。
After receiving the received packet data (step S101), the flow
次に、フロー情報処理部232は、受信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されているか否かを判定する(ステップS104)。具体的には、以下の処理が実行される。
Next, the flow
フロー情報処理部232は、src_ip511がDIP324に一致し、dest_ip512がSIP323に一致し、src_port513がdst.port332に一致し、dest_port514がsrc.port331に一致し、かつ、vlan515がVID318に一致するフロー情報500が存在するか否かを判定する。
In the flow
前述した条件を満たすフロー情報500が存在する場合、フロー情報処理部232は、受信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されていると判定する。以上がステップS104の処理の説明である。
When the
ステップS104において、受信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されていると判定された場合(ステップS104:Yes)、フロー情報処理部232は、フロー情報記憶部270から検索されたフロー情報500を読み出す(ステップS105)。その後、フロー情報処理部232は、現在時刻を取得して、RTTを算出する(ステップS106)。RTTは、例えば、TCPオプションヘッダ340のタイムスタンプオプションに含まれる時刻情報と現在時刻との差として算出される。なお、RTTの算出方法は、他の算出方法でもよい。
When it is determined in step S104 that the
次に、フロー情報処理部232は、フロー情報500を更新する(ステップS107)。
Next, the flow
具体的には、フロー情報処理部232は、算出されたRTTをrtt521に設定し、seq523とACK334との差をack_bytes524に加算し、ACK334をseq523に設定する。
Specifically, the flow
次に、フロー情報処理部232は、更新されたフロー情報500をフロー情報記憶部270に格納し(ステップS108)、処理を終了する(ステップS111)。
Next, the flow
ステップS104において、受信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されていないと判定された場合(ステップS104:No)、フロー情報処理部232は、フロー情報500を新たに生成し(ステップS109)、ヘッダ情報に基づいて新たに生成されたフロー情報500に値を設定する(ステップS110)。
When it is determined in step S104 that the
具体的には、フロー情報処理部232は、DIP324をsrc_ip511に設定し、SIP323をdest_ip512に設定し、dst.port332をsrc_port513に設定し、src.port331をdest_port514に設定し、VID318をvlan515に設定し、また、ACK334をseq523に設定する。また、フロー情報処理部232は、rtt521、loss522、ack_bytes524及びtx_bytes525のそれぞれに、「0」を設定する。
Specifically, the flow
次に、フロー情報処理部232は、生成されたフロー情報500をフロー情報記憶部270に格納し(ステップS108)、処理を終了する(ステップS111)。
Next, the flow
図8は、実施例1の送信制御アルゴリズム選択部231が実行する処理を説明するフローチャートである。
FIG. 8 is a flowchart illustrating processing executed by the transmission control
送信制御アルゴリズム選択部231は、フック処理部220からの送信パケットデータの受信を契機に、処理を開始する(ステップS200)。
The transmission control
送信制御アルゴリズム選択部231は、送信パケットデータを受信した後(ステップS201)、設定情報記憶部260から設定情報を読み出す(ステップS202)。
After receiving the transmission packet data (step S201), the transmission control
次に、送信制御アルゴリズム選択部231は、読み出された設定情報のnetwork_location401が遅延ベースTCP送信制御が行われた閉じたネットワークであるか否か判定する(ステップS203)。
Next, the transmission control
ステップS203において、network_location401が遅延ベースTCP送信制御が行われた閉じたネットワークであると判定された場合(ステップS203:Yes)、送信制御アルゴリズム選択部231は、送信パケットデータを遅延ベースTCP送信制御部244に転送し(ステップS204)、処理を終了する(ステップS215)。
When it is determined in step S203 that the
ステップS203において、network_location401が遅延ベースTCP送信制御が行われた閉じたネットワークではないと判定された場合(ステップS203:No)、送信制御アルゴリズム選択部231は、送信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されているか否かを判定する(ステップS205)。具体的には、以下の処理が実行される。
When it is determined in step S203 that the
送信制御アルゴリズム選択部231は、src_ip511がSIP323に一致し、dest_ip512がDIP324に一致し、src_port513がsrc.port331に一致し、dest_port514がdst.port332に一致し、かつ、vlan515がVID318に一致するフロー情報500が存在するか否かを判定する。
The transmission control
前述した条件を満たすフロー情報500が存在する場合、送信制御アルゴリズム選択部231は、送信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されていると判定する。以上がステップS205の処理の説明である。
When the
ステップS205において、送信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されていないと判定された場合(ステップS205:No)、送信制御アルゴリズム選択部231は、フロー情報500を新たに生成し(ステップS206)、ヘッダ情報に基づいて新たに生成されたフロー情報500に値を設定する(ステップS207)。
When it is determined in step S205 that the
具体的には、送信制御アルゴリズム選択部231は、SIP323をsrc_ip511に設定し、DIP324をdest_ip512に設定し、src.port331をsrc_port513に設定し、dst.port332をdest_port514に設定し、VID318をvlan515に設定し、SEQ333をseq523に設定する。送信制御アルゴリズム選択部231は、IP length321から、IPヘッダ長(20バイト)とtcp hlen336との和を減算した値をtx_bytes525に設定する。また、送信制御アルゴリズム選択部231は、rtt521、loss522、ack_bytes524、及びtx_bytes525のそれぞれに、「0」を設定する。
Specifically, the transmission control
次に、送信制御アルゴリズム選択部231は、送信パケットデータをロスベースTCP送信制御部243に転送する(ステップS208)。
Next, the transmission control
次に、送信制御アルゴリズム選択部231は、生成されたフロー情報500をフロー情報記憶部270に格納し(ステップS209)、処理を終了する(ステップS215)。
Next, the transmission control
ステップS205において、送信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されていると判定された場合(ステップS205:Yes)、送信制御アルゴリズム選択部231は、フロー情報記憶部270から検索されたフロー情報500を読み出す(ステップS210)。次に、送信制御アルゴリズム選択部231は、パケット廃棄率を算出する(ステップS211)。パケット廃棄率は、例えば、tx_bytes525とack_bytes524との差をtx_bytes525で除することによって算出される。パケット廃棄率の計算方法は、他の計算方法でもよい。
When it is determined in step S205 that the
次に、送信制御アルゴリズム選択部231は、フロー情報500を更新する(ステップS212)。
Next, the transmission control
具体的には、送信制御アルゴリズム選択部231は、算出されたパケット廃棄率をloss522に設定し、IP length321から、IPヘッダ長(20バイト)とtcp hlen336との和を減算した値をtx_bytes525に加算し、SEQ333をseq523に設定する。
Specifically, the transmission control
次に、送信制御アルゴリズム選択部231は、式(1)を満たすか否かを判定する(ステップS213)。
Next, the transmission control
ステップS213において、式(1)を満たすと判定された場合(ステップS213:Yes)、送信制御アルゴリズム選択部231は、送信パケットデータを独自TCP送信制御部233に転送する(ステップS214)。
In step S213, when it is determined that the expression (1) is satisfied (step S213: Yes), the transmission control
次に、送信制御アルゴリズム選択部231は、更新されたフロー情報500をフロー情報記憶部270に格納し(ステップS209)、処理を終了する(ステップS215)。
Next, the transmission control
ステップS213において、式(1)を満たさないと判定された場合(ステップS213:No)、送信制御アルゴリズム選択部231は、送信パケットデータをロスベースTCP送信制御部243に転送する(ステップS208)。
In step S213, when it is determined that Expression (1) is not satisfied (step S213: No), the transmission control
次に、送信制御アルゴリズム選択部231は、更新されたフロー情報500をフロー情報記憶部270に格納し(ステップS209)、処理を終了する(ステップS215)。
Next, the transmission control
実施例1によれば、フック処理部220が、通信処理部210と通信機能部240との間の処理に代理通信機能部230を割り込ませることによって、パケットデータをバッファすることなく、帯域制御処理を適用することができる。これによって、リソースの消費量を抑えた動的な通信制御の変更を実現できる。また、実施例1では、通信処理部210を変更する必要がないため、開発コストの低減及び通信処理部210の管理者の負担等を低減することができる。
According to the first embodiment, the
実施例2では、UDP(User Datagram Protocol)通信に暗号化等の通信データの加工処理をリソースの消費量を抑えて付加するシステムを示す。なお、UDP通信を例に説明するが、UDP通信に特有の情報を使用しないので、TCP通信及びSCTP(Stream Control Transmission Protocol)通信等でも同様のシステムを実現できる。 The second embodiment shows a system that adds communication data processing such as encryption to UDP (User Datagram Protocol) communication while suppressing resource consumption. Although UDP communication will be described as an example, since information unique to UDP communication is not used, a similar system can be realized by TCP communication, SCTP (Stream Control Transmission Protocol) communication, and the like.
以下、実施例1との差異を中心に実施例2について説明する。なお、実施例1と同一の構成、同一の処理については同一の符号を付し、説明を省略する。 Hereinafter, the second embodiment will be described focusing on differences from the first embodiment. In addition, the same code | symbol is attached | subjected about the structure same as Example 1, and the same process, and description is abbreviate | omitted.
ネットワークシステムの構成(図1)及び計算機100のハードウェア構成(図2)は、実施例1と同様であるため説明を省略する。計算機100のソフトウェア構成は、実施例1と異なるため後述する。
Since the configuration of the network system (FIG. 1) and the hardware configuration of the computer 100 (FIG. 2) are the same as those in the first embodiment, description thereof is omitted. Since the software configuration of the
図9は、実施例2の計算機100が送受信するUDPパケットデータのフォーマットの一例を示す図である。
FIG. 9 is a diagram illustrating an example of a format of UDP packet data transmitted and received by the
UDPパケットデータは、MACヘッダ310、IPヘッダ320、UDPヘッダ360、及びUDPペイロード370を含む。
The UDP packet data includes a
MACヘッダ310及びIPヘッダ320は、実施例1のTCPパケットデータに含まれるヘッダと同様であるため説明を省略する。
Since the
UDPヘッダ360は、src.port361、dst.port362、及びUDP length363を含む。
The
src.port361は、送信元ポート番号を表す。dst.port362は、宛先ポート番号を表す。UDP length363は、UDPヘッダ360及びUDPペイロード370を合わせたデータ長を表す。
src. The
UDPペイロード370は、packet_type371及びavailable_func372を含む。
The
packet_type371は、パケット種別を表す。available_func372は、利用可能なデータ加工処理の種別を表す。packet_type371及びavailable_func372は、実施例2の代理通信機能部230によって使用される。なお、packet_type371及びavailable_func372は、存在しない場合もある。
The
実施例2では、後述する制御情報パケットデータのうちの一つは、packet_type371に制御情報パケットデータを表す「0」、available_func372に二進数で「110」が設定される。この例では、available_func372の下位から1ビット目が差分転送機能、2ビット目がデータ圧縮機能、3ビット目が暗号化機能を意味し、「1」が利用可能、「0」が利用不可を表す。available_func372が「110」の場合、利用可能なデータ加工処理がデータ圧縮機能及び暗号化機能であることを意味する。
In the second embodiment, “0” representing control information packet data is set in the
パケットデータがデータ圧縮パケットデータである場合、packet_type371にはデータ圧縮パケットデータを表す「2」が設定される。当該パケットデータには、available_func372が存在せず、packet_type371以外の部分は、圧縮されたデータが設定される。
When the packet data is data compressed packet data, “2” representing the data compressed packet data is set in the
図10は、実施例2の計算機100のソフトウェア構成の詳細を示すブロック図である。
FIG. 10 is a block diagram illustrating details of the software configuration of the
計算機100の主記憶装置201は、通信処理部210、フック処理部220、代理通信機能部230、通信機能部240、及び設定情報入力処理部250を実現するプログラムを含む。また、計算機100の主記憶装置201は、設定情報記憶部260及びフロー情報記憶部270を含む。
The
実施例2では、計算機100は、自装置及び対向装置の利用可能なデータ加工処理の種別を表す制御情報を含む制御情報パケットデータを送受信することによって互いに制御情報を通知する。
In the second embodiment, the
代理通信機能部230は、送信制御アルゴリズム選択部234、フロー情報処理部235、差分転送処理部236、及びデータ圧縮処理部237を含む。通信機能部240は、受信部245、送信部246及び暗号化処理部247を含む。
The proxy
通信処理部210、フック処理部220、設定情報入力処理部250、設定情報記憶部260、フロー情報記憶部270は、実施例1と同様であるため説明を省略する。
Since the
なお、設定情報記憶部260及びフロー情報記憶部270が格納される情報は実施例1と異なる。設定情報記憶部260及びフロー情報記憶部270が格納される情報は、図12及び図13を用いて説明する。
The information stored in the setting
受信部245は、NIF203から受信パケットデータを取得する。これによって、計算機100は、ネットワーク101から計算機100がパケットデータを受信できる。受信部245は、受信パケットデータを暗号化処理部247に転送する。
The receiving
送信部246は、送信制御アルゴリズム選択部234、差分転送処理部236、データ圧縮処理部237、及び暗号化処理部247のいずれかから送信パケットデータを取得する。送信部246は、送信パケットデータをNIF203に転送する。これによって、計算機100がネットワーク101にパケットデータを送信できる。
The
差分転送処理部236は、送信制御アルゴリズム選択部234から受け取った送信パケットデータに対して差分符号化を行い、符号化された送信パケットデータを送信部246に転送する。差分符号処理では、差分転送処理部236は、IETF RFC3284に記載のアルゴリズムに基づいて、UDPペイロード370に対して差分符号化を行い、差分転送パケットデータを表す情報を設定したpacket_type371のデータを付加する。
The differential
データ圧縮処理部237は、送信制御アルゴリズム選択部234から受け取った送信パケットデータを圧縮し、圧縮された送信パケットデータを送信部246に転送する。データ圧縮処理では、データ圧縮処理部237は、IETF RFC1951に記載のアルゴリズムに基づいて、UDPペイロード370を圧縮し、データ圧縮パケットデータを表す情報を設定したpacket_type371のデータを付加する。
The data
フロー情報処理部235は、暗号化処理部247から受け取った受信パケットデータの内容に応じて、差分転送パケットデータの差分復号処理、データ圧縮パケットデータの解凍処理、フロー情報記憶部270へのフロー情報700の書込処理等を実行する。フロー情報処理部235は、受信パケットデータをフック処理部220に転送する。
The flow
受信パケットデータが制御情報パケットデータの場合、フロー情報処理部235は、受信パケットデータに含まれる制御情報をフロー情報700に設定することによって、対向装置が利用可能なデータ加工処理の種別をフロー情報記憶部270に記憶する点が実施例1と異なる。処理の詳細は、図13を用いて説明する。
When the received packet data is control information packet data, the flow
暗号化処理部247は、IETF RFC4301に記載された暗号化及び復号化処理を実行する。暗号化処理部247は、送信制御アルゴリズム選択部234から受け取った送信パケットデータを暗号化し、送信部246に転送する。受信部245から受け取った受信パケットデータが暗号化パケットデータの場合、暗号化処理部247は、暗号化パケットデータを復号化した後、復号化された受信パケットデータをフロー情報処理部235に転送する。受信部245から受け取る受信パケットデータが暗号化パケットデータでない場合、暗号化処理部247は、受信パケットデータを変更せずにフロー情報処理部235に転送する。
The
なお、受信パケットデータのprotocol322がESP(Encapsulating Security Payload)を表す「50」又はAH(Authentication Header)を表す「51」であるか否かを判定することによって、受信パケットデータが暗号化パケットデータであるか否かを判定できる。
By determining whether the
送信制御アルゴリズム選択部234は、設定情報記憶部260から読み出した設定情報及びフロー情報記憶部270から読み出したフロー情報700を用いて、データ加工処理を選択し、差分転送処理部236、データ圧縮処理部237、暗号化処理部247又は送信部246のいずれかに、フック処理部220から受け取った送信パケットデータを転送する。送信制御アルゴリズム選択部234は、処理の過程で、フロー情報700の生成及び更新を行い、フロー情報記憶部270にフロー情報700を書き込む。送信制御アルゴリズム選択部234は、制御情報を含む制御情報パケットデータを生成し、送信部246に転送することによって対向装置に自装置が利用可能なデータ加工処理の種別を通知する点が実施例1と異なる。処理の詳細は、図14を用いて説明する。
The transmission control
なお、差分転送処理部236、データ圧縮処理部237、及び暗号化処理部247が行うデータ加工処理以外のデータ加工処理を用いてもよい。また、送信制御アルゴリズム選択部234は、一つのパケットデータに対して二つ以上のデータ加工処理を適用してもよい。また、各データ加工処理部は、代理通信機能部230及び通信機能部240のどちらに含まれていてもよい。データ加工処理部の数は、図10に示す数に限定されず任意である。
Note that data processing other than the data processing performed by the differential
図11は、実施例2の設定情報記憶部260に格納される設定情報のデータ構造の一例を示す図である。
FIG. 11 is a diagram illustrating an example of a data structure of setting information stored in the setting
設定情報は、自装置設定情報600及び複数の対向装置設定情報610を含む。
The setting information includes own
自装置設定情報600は、自装置が利用可能なデータ加工処理の種別を表し、enable_delta_encoding601、enable_compression602、及びenable_crypto603を含む。
The own
enable_delta_encoding601は、自装置が差分転送機能を利用できるか否かを表す。enable_compression602は、自装置がデータ圧縮機能を利用できるか否かを表す。enable_crypto603は、自装置が暗号化機能を利用できるか否かを表す。
実施例2では、enable_delta_encoding601、enable_compression602、及びenable_crypto603には、それぞれ、利用可能であることを表す「1」、又は、利用不可であることを表す「0」のいずれかが設定される。
In the second embodiment, each of
対向装置設定情報610は、ip_address611、prefix_length612、port613、vlan614、use_delta_encoding615、use_compression616、及びuse_crypto617を含む。
The opposing
ip_address611、prefix_length612、port613及びvlan614の四つの情報は、通信フローが属する対向装置のネットワーク情報を表す。
The four pieces of information of
例えば、ネットワークが「192.168.255.0/24」、ポート番号が「69」かつVLANのIDが「100」の場合、ip_address611には「192.168.255.0」、prefix_length612には「24」、port613には「69」、vlan614には「100」が設定される。全てのネットワーク、全てのポート、及びVLANなしを表す場合、ip_address611には「0.0.0.0」、prefix_length612には「0」、port613には「any」、vlan614には「0」が設定される。
For example, when the network is “192.168.255.0/24”, the port number is “69”, and the VLAN ID is “100”, the
use_delta_encoding615は、対向装置に対して差分転送機能を使用するか否かを表す。use_compression616は、対向装置に対してデータ圧縮機能を使用するか否かを表す。use_crypto617は、対向装置に対して暗号化機能を使用するか否かを表す。 use_delta_encoding 615 indicates whether or not to use the differential transfer function for the opposite device. Use_compression 616 represents whether to use the data compression function for the opposite device. Use_cryptto 617 indicates whether or not to use the encryption function for the opposite device.
実施例2では、use_delta_encoding615、use_compression616、及びuse_crypto617には、それぞれ、使用することを表す「1」、又は、使用しないことを表す「0」のいずれかが設定される。 In the second embodiment, in use_delta_encoding 615, use_compression 616, and use_cryptto 617, either “1” indicating use or “0” indicating not use is set.
図12は、実施例2のフロー情報記憶部270に格納されるフロー情報のデータ構造の一例を示す図である。
FIG. 12 is a diagram illustrating an example of a data structure of flow information stored in the flow
フロー情報記憶部270は、通信フローごとにフロー情報700を格納する。フロー情報700は、フロー管理情報710及びフロー通信状態情報720を含む。
The flow
フロー管理情報710は、通信フローを一意に識別するための識別情報であり、src_ip711、dest_ip712、src_port713、dest_port714、及びvlan715を含む。
The flow management information 710 is identification information for uniquely identifying a communication flow, and includes
src_ip711、dest_ip712、及びvlan715は、src_ip511、dest_ip512、及びvlan515と同様のものである。src_port713は、自装置のUDPポート番号を表す。dest_port714は、対向装置のUDPポート番号を表す。
フロー通信状態情報720は、通信フローの状態を表す情報であり、already_sent721、available_delta_encoding722、available_compression723、available_crypto724、及びdata_cache725を含む。
The flow
already_sent721は、通信フローにおいて制御情報パケットデータが送信済みであるか否かを表す。available_delta_encoding722は、差分転送機能が利用可能か否かを表す。available_compression723は、データ圧縮機能が利用可能か否かを表す。available_crypto724は、暗号化機能が利用可能か否かを表す。data_cache725は、差分転送機能で使用される通信フローのデータキャッシュを表す。
“already_sent” 721 indicates whether or not the control information packet data has been transmitted in the communication flow. The
実施例2では、already_sent721には、制御情報パケットデータが送信済みであることを表す「1」、又は、制御情報パケットデータが送信済みでないことを表す「0」のいずれかが設定される。また、available_delta_encoding722、available_compression723、available_crypto724のそれぞれには、利用可能であることを表す「1」、又は、利用不可であることを表す「0」のいずれかが設定される。また、data_cache725が「0」の場合、データキャッシュが空であることを表す。
In the second embodiment, either “1” indicating that the control information packet data has been transmitted or “0” indicating that the control information packet data has not been transmitted is set in
図13A及び図13Bは、実施例2のフロー情報処理部235が実行する処理を説明するフローチャートである。
13A and 13B are flowcharts for explaining processing executed by the flow
フロー情報処理部235は、暗号化処理部247からの受信パケットデータの受信を契機に、処理を開始する(ステップS300)。フロー情報処理部235は、受信パケットデータを受信した後(ステップS301)、受信パケットデータのpacket_type371を参照して、パケット種別を特定する(ステップS302)。
The flow
ステップS302において、パケット種別が差分転送パケットデータであると判定された場合(ステップS302:差分転送パケット)、フロー情報処理部235は、フロー情報記憶部270から受信パケットデータが属する通信フローのフロー情報700を読み出す(ステップS303)。
If it is determined in step S302 that the packet type is differential transfer packet data (step S302: differential transfer packet), the flow
具体的には、フロー情報処理部235は、src_ip711がDIP324に一致し、dest_ip712がSIP323に一致し、src_port713がdst.port332に一致し、dest_port714がsrc.port331に一致し、かつ、vlan715がVID318に一致するフロー情報700を読み出す。
Specifically, the flow
次に、フロー情報処理部235は、読み出したフロー情報700のdata_cache725を用いて、受信パケットデータのUDPペイロード370に対して差分復号処理を実行する(ステップS304)。また、フロー情報処理部235は、復号化された受信パケットデータをdata_cache725に追加することによってフロー情報700を更新する(ステップS305)。
Next, the flow
次に、フロー情報処理部235は、更新されたフロー情報700をフロー情報記憶部270に格納し(ステップS306)、その後、受信パケットデータをフック処理部220に転送し(ステップS307)、処理を終了する(ステップS315)。
Next, the flow
ステップS302において、パケット種別がデータ圧縮パケットデータであると判定された場合(ステップS302:データ圧縮パケット)、フロー情報処理部235は、受信パケットデータのUDPペイロード370を解凍することによって圧縮前のデータを復元する(ステップS308)。
When it is determined in step S302 that the packet type is data compressed packet data (step S302: data compressed packet), the flow
次に、フロー情報処理部235は、受信パケットデータをフック処理部220に転送し(ステップS307)、処理を終了する(ステップS315)。
Next, the flow
ステップS302において、パケット種別が制御情報パケットデータであると判定された場合(ステップS302:制御情報パケット)、フロー情報処理部235は、受信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されているか否かを判定する(ステップS309)。具体的には、以下のような処理が実行される。
When it is determined in step S302 that the packet type is control information packet data (step S302: control information packet), the flow
フロー情報処理部235は、src_ip711がDIP324に一致し、dest_ip712がSIP323に一致し、src_port713がdst.port332に一致し、dest_port714がsrc.port331に一致し、かつ、vlan715がVID318に一致するフロー情報700が存在するか否かを判定する。
In the flow
前述した条件を満たすフロー情報700が存在する場合、フロー情報処理部235は、受信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていると判定する。以上がステップS309の処理の説明である。
When the
ステップS309において、受信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていないと判定された場合(ステップS309:No)、フロー情報処理部235は、フロー情報700を新たに生成し(ステップS310)、ヘッダ情報に基づいて新たに生成されたフロー情報700に値を設定する(ステップS311)。
If it is determined in step S309 that the
具体的には、フロー情報処理部235は、DIP324をsrc_ip711に設定し、SIP323をdest_ip712に設定し、dst.port332をsrc_port713に設定し、src.port331をdest_port714に設定し、VID318をvlan715に設定する。
Specifically, the flow
次に、フロー情報処理部235は、生成したフロー情報700に制御情報を設定する(ステップS313)。
Next, the flow
具体的には、フロー情報処理部235は、available_func372の下位から1ビット目をavailable_delta_encoding722に設定し、2ビット目をavailable_compression723に設定し、3ビット目をavailable_crypto724に設定する。なお、available_func372の下位から1ビット目が差分転送機能、2ビット目がデータ圧縮機能、3ビット目が暗号化機能を意味する。
Specifically, the flow
次に、フロー情報処理部235は、生成されたフロー情報700をフロー情報記憶部270に格納し(ステップS314)、処理を終了する(ステップS315)。
Next, the flow
ステップS309において、受信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていると判定された場合(ステップS309:Yes)、フロー情報処理部235は、フロー情報記憶部270から検索されたフロー情報700を読み出す(ステップS312)。その後、フロー情報処理部235は、読み出したフロー情報700に制御情報を設定する(ステップS313)。
When it is determined in step S309 that the
次に、フロー情報処理部235は、更新されたフロー情報700をフロー情報記憶部270に格納し(ステップS314)、処理を終了する(ステップS315)。
Next, the flow
ステップS302において、パケット種別が差分転送パケットデータ、データ圧縮パケットデータ、制御情報パケットデータのいずれにも該当しないと判定された場合(ステップS302:他のパケット)、フロー情報処理部235は、受信パケットデータを変更せずにフック処理部220に転送し(ステップS307)、処理を終了する(ステップS315)。
When it is determined in step S302 that the packet type does not correspond to any of the differential transfer packet data, the data compression packet data, and the control information packet data (step S302: other packet), the flow
図14A、図14B、及び図14Cは、実施例2の送信制御アルゴリズム選択部234が実行する処理を説明するフローチャートである。
14A, 14B, and 14C are flowcharts illustrating processing executed by the transmission control
送信制御アルゴリズム選択部234は、フック処理部220からの送信パケットデータの受信を契機に処理を開始する(ステップS400)。
The transmission control
送信制御アルゴリズム選択部234は、送信パケットデータを受信した後(ステップS401)、設定情報記憶部260から設定情報を読み出す(ステップS402)。
After receiving the transmission packet data (step S401), the transmission control
次に、送信制御アルゴリズム選択部234は、送信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されているか否かを判定する(ステップS403)。具体的には、以下の処理が実行される。
Next, the transmission control
送信制御アルゴリズム選択部234は、src_ip711がSIP323に一致し、dest_ip712がDIP324に一致し、src_port713がsrc.port331に一致し、dest_port714がdst.port332に一致し、かつ、vlan715がVID318に一致するフロー情報700が存在するか否かを判定する。
The transmission control
前述した条件を満たすフロー情報700が存在する場合は、送信制御アルゴリズム選択部234は、送信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていると判定する。以上がステップS403の処理の説明である。
When the
ステップS403において、送信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていないと判定された場合(ステップS403:No)、送信制御アルゴリズム選択部234は、フロー情報700を新たに生成し(ステップS404)、ヘッダ情報に基づいて新たに生成されたフロー情報700に値を設定する(ステップS405)。
If it is determined in step S403 that the
具体的には、送信制御アルゴリズム選択部234は、SIP323をsrc_ip711に設定し、DIP324をdest_ip712に設定し、src.port331をsrc_port713に設定し、dst.port332をdest_port714に設定し、かつ、VID318をvlan715に設定する。また、available_delta_encoding722、available_compression723、available_crypto724、及びdata_cache725のそれぞれに「0」を設定する。
Specifically, the transmission control
次に、送信制御アルゴリズム選択部234は、生成されたフロー情報700に制御情報パケットデータが送信されたことを示す情報を設定する(ステップS406)。具体的には、ステップS406において、送信制御アルゴリズム選択部234は、生成されたフロー情報700のalready_sent721を「1」に設定する。その後、送信制御アルゴリズム選択部234は、生成されたフロー情報700をフロー情報記憶部270に格納する(ステップS407)。
Next, the transmission control
次に、送信制御アルゴリズム選択部234は、制御情報パケットデータを生成する(ステップS408)。
Next, the transmission control
具体的には、送信制御アルゴリズム選択部234は、packet_type371に制御情報パケットデータを表す「0」を設定し、available_func372の下位から1ビット目にenable_delta_encoding601を設定し、2ビット目にenable_compression602を設定し、3ビット目にenable_crypto603を設定することによって、制御情報パケットデータを生成する。
Specifically, the transmission control
次に、送信制御アルゴリズム選択部234は、送信パケットデータ及び生成された制御情報パケットデータを送信部246に転送し(ステップS409)、処理を終了する(ステップS421)。
Next, the transmission control
ステップS403において、送信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていると判定された場合(ステップS403:Yes)、送信制御アルゴリズム選択部234は、フロー情報記憶部270から検索されたフロー情報700を読み出す(ステップS410)。
If it is determined in step S403 that the
次に、送信制御アルゴリズム選択部234は、送信パケットデータが属する通信フローにおいて、制御情報パケットデータが送信済みであるか否かを判定する(ステップS411)。
Next, the transmission control
具体的には、送信制御アルゴリズム選択部234は、読み出したフロー情報700のalready_sent721が「1」であるか否かを判定する。already_sent721が「1」である場合は、送信制御アルゴリズム選択部234は、制御情報パケットデータが送信済みであると判定する。
Specifically, the transmission control
ステップS411において、送信パケットデータが属する通信フローにおいて、制御情報パケットデータが送信済みでないと判定された場合(ステップS411:No)、送信制御アルゴリズム選択部234は、読み出したフロー情報700のalready_sent721を「1」に設定することによって、フロー情報700を更新する(ステップS406)。
If it is determined in step S411 that the control information packet data has not been transmitted in the communication flow to which the transmission packet data belongs (step S411: No), the transmission control
次に、送信制御アルゴリズム選択部234は、更新したフロー情報700をフロー情報記憶部270に格納する(ステップS407)。
Next, the transmission control
次に、送信制御アルゴリズム選択部234は、制御情報パケットデータを生成する(ステップS408)。
Next, the transmission control
次に、送信制御アルゴリズム選択部234は、送信パケットデータ及び生成された制御情報パケットデータを送信部246に転送し(ステップS409)、処理を終了する(ステップS421)。
Next, the transmission control
ステップS411において、送信パケットデータが属する通信フローにおいて、制御情報パケットデータが送信済みであると判定された場合(ステップS411:Yes)、送信制御アルゴリズム選択部234は、フロー情報700及び設定情報のそれぞれについて差分転送が有効化されているか否か判定する(ステップS412)。すなわち、自装置及び対向装置が、それぞれ、差分転送の機能を使用できるか否かが判定される。具体的には、以下の処理が実行される。
If it is determined in step S411 that the control information packet data has been transmitted in the communication flow to which the transmission packet data belongs (step S411: Yes), the transmission control
送信制御アルゴリズム選択部234は、読み出したフロー情報700のavailable_delta_encoding722が「1」であり、また、設定情報の上位ビットからprefix_length612が表す値分がDIP324とip_address611とで一致し、dst.port332がport613に一致し、かつ、VID318がvlan614に一致する対向装置設定情報610のuse_delta_encoding615が「1」であるとき、フロー情報700及び設定情報のそれぞれについて差分転送が有効化されていると判定する。
In the transmission control
ただし、前述の条件を満たす対向装置設定情報610が存在しないときは、use_delta_encoding615は「0」として扱われる。以上がステップS412の処理の説明である。
However, when there is no opposing
ステップS412において、フロー情報700及び設定情報のそれぞれについて差分転送が有効化されていると判定された場合(ステップS412:Yes)、送信制御アルゴリズム選択部234は、送信パケットデータ及び読み出したフロー情報700のdata_cache725を差分転送処理部236に転送する(ステップS413)。
In step S412, when it is determined that differential transfer is enabled for each of the
次に、送信制御アルゴリズム選択部234は、送信パケットデータのUDPペイロード370をdata_cache725に追加することによって、フロー情報700を更新する(ステップS414)。
Next, the transmission control
次に、送信制御アルゴリズム選択部234は、更新されたフロー情報700をフロー情報記憶部270に格納し(ステップS415)、処理を終了する(ステップS421)。
Next, the transmission control
ステップS412において、フロー情報700及び設定情報のいずれかが差分転送が有効化されていないと判定された場合(ステップS412:No)、送信制御アルゴリズム選択部234は、フロー情報700及び設定情報のそれぞれについてデータ圧縮が有効化されているか否か判定する(ステップS416)。すなわち、自装置及び対向装置が、それぞれ、データ圧縮の機能を使用できるか否かが判定される。具体的には、以下の処理が実行される。
If it is determined in step S412, that either the
送信制御アルゴリズム選択部234は、読み出したフロー情報700のavailable_compression723が「1」であり、また、設定情報の上位ビットからprefix_length612が表す値分がDIP324とip_address611とで一致し、dst.port332がport613に一致し、かつ、VID318がvlan614に一致する対向装置設定情報610のuse_compression616が「1」であるとき、フロー情報700及び設定情報のそれぞれについてデータ圧縮が有効化されていると判定する。
In the transmission control
ただし、前述の条件を満たす対向装置設定情報610が存在しないときは、use_compression616は「0」として扱われる。以上がステップS416の処理の説明である。
However, when there is no opposing
ステップS416において、フロー情報700及び設定情報のそれぞれについてデータ圧縮が有効化されていると判定された場合(ステップS416:Yes)、送信制御アルゴリズム選択部234は、送信パケットデータをデータ圧縮処理部237に転送し(ステップS417)、処理を終了する(ステップS421)。
When it is determined in step S416 that data compression is enabled for each of the
ステップS416において、フロー情報700及び設定情報のそれぞれについてデータ圧縮が有効化されていないと判定された場合(ステップS416:No)、送信制御アルゴリズム選択部234は、フロー情報700及び設定情報のそれぞれについて暗号化が有効化されているか否か判定する(ステップS418)。すなわち、自装置及び対向装置が、それぞれ、暗号化の機能を使用できるか否かが判定される。具体的には、以下の処理が実行される。
When it is determined in step S416 that data compression is not enabled for each of the
送信制御アルゴリズム選択部234は、読み出したフロー情報700のavailable_crypto724が「1」であり、また、設定情報の上位ビットからprefix_length612が表す値分がDIP324とip_address611とで一致し、dst.port332がport613に一致し、かつ、VID318がvlan614に一致する対向装置設定情報610のuse_crypto617が「1」であるとき、フロー情報700及び設定情報のそれぞれについて暗号化が有効化されていると判定する。
In the transmission control
ただし、前述の条件を満たす対向装置設定情報610が存在しないときは、use_crypto617は「0」として扱われる。以上がステップS418の処理の説明である。
However, when there is no opposing
ステップS418において、フロー情報700及び設定情報のそれぞれについて暗号化が有効化されていると判定された場合(ステップS418:Yes)、送信制御アルゴリズム選択部234は、送信パケットデータを暗号化処理部247に転送し(ステップS419)、処理を終了する(ステップS421)。
When it is determined in step S418 that encryption is enabled for each of the
ステップS418において、フロー情報700及び設定情報のそれぞれについて暗号化が有効化されていないと判定された場合(ステップS418:No)、送信制御アルゴリズム選択部234は、送信パケットデータを送信部246に転送し(ステップS420)、処理を終了する(ステップS421)。
In step S418, when it is determined that encryption is not enabled for each of the
実施例2によれば、フック処理部220が、通信処理部210と通信機能部240との間の処理に代理通信機能部230を割り込ませることによって、パケットデータをバッファすることなく、通信データの加工処理を適用することができる。これによって、リソースの消費量を抑えた動的な通信制御の変更を実現できる。また、実施例2では、通信処理部210を変更する必要がないため、開発コストの低減及び通信処理部210の管理者の負担等を低減することができる。
According to the second embodiment, the
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。 In addition, this invention is not limited to an above-described Example, Various modifications are included. Further, for example, the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those provided with all the described configurations. Further, a part of the configuration of each embodiment can be added to, deleted from, or replaced with another configuration.
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。 Each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. The present invention can also be realized by software program codes that implement the functions of the embodiments. In this case, a storage medium in which the program code is recorded is provided to the computer, and a processor included in the computer reads the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing it constitute the present invention. As a storage medium for supplying such a program code, for example, a flexible disk, a CD-ROM, a DVD-ROM, a hard disk, an SSD (Solid State Drive), an optical disk, a magneto-optical disk, a CD-R, a magnetic tape, A non-volatile memory card, ROM, or the like is used.
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。 The program code for realizing the functions described in the present embodiment can be implemented by a wide range of programs or script languages such as assembler, C / C ++, perl, Shell, PHP, Java (registered trademark).
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。 Furthermore, by distributing the program code of the software that implements the functions of the embodiments via a network, the program code is stored in a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or CD-R. A processor included in the computer may read and execute the program code stored in the storage unit or the storage medium.
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。 In the above-described embodiments, the control lines and information lines indicate what is considered necessary for the explanation, and not all control lines and information lines on the product are necessarily shown. All the components may be connected to each other.
100 計算機
101 ネットワーク
102 中継装置
200 演算装置
201 主記憶装置
202 二次記憶装置
203 NIF
204 システムバス
210 通信処理部
220 フック処理部
230 代理通信機能部
231 送信制御アルゴリズム選択部
232 フロー情報処理部
233 独自TCP送信制御部
234 送信制御アルゴリズム選択部
235 フロー情報処理部
236 差分転送処理部
237 データ圧縮処理部
240 通信機能部
241、245 受信部
242、246 送信部
243 ロスベースTCP送信制御部
244 遅延ベースTCP送信制御部
247 暗号化処理部
250 設定情報入力処理部
260 設定情報記憶部
270 フロー情報記憶部
500、700 フロー情報
510、710 フロー管理情報
520、720 フロー通信状態情報
600 自装置設定情報
610 対向装置設定情報
100
204
Claims (12)
演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるネットワークインタフェースを備え、
前記ネットワークインタフェースを介してデータを送受信する通信機能部と、
前記通信機能部から取得した前記データを処理し、処理された前記データを出力する通信処理部と、
前記データに対して任意の通信制御を行う代理通信機能部と、
前記通信処理部からの前記通信機能部の呼び出しを前記代理通信機能部の呼び出しに変更するフック処理部と、を有することを特徴とする通信装置。 A communication device for transmitting and receiving data,
An arithmetic device, a storage device connected to the arithmetic device, and a network interface connected to the arithmetic device,
A communication function unit for transmitting and receiving data via the network interface;
Processing the data acquired from the communication function unit, and outputting the processed data;
A proxy communication function unit for performing arbitrary communication control on the data;
A hook processing unit that changes a call of the communication function unit from the communication processing unit to a call of the proxy communication function unit.
前記通信処理部及び前記代理通信機能部は、それぞれ、送信データに対して任意の通信制御を行う通信制御部を少なくとも一つ含み、
前記代理通信機能部は、前記送信データに適用する少なくとも一つ通信制御を選択するアルゴリズム選択部を含むことを特徴とする通信装置。 The communication device according to claim 1,
Each of the communication processing unit and the proxy communication function unit includes at least one communication control unit that performs arbitrary communication control on transmission data,
The proxy communication function unit includes an algorithm selection unit that selects at least one communication control to be applied to the transmission data.
前記通信処理部は、前記送信データに対して第1の通信制御を行う第1の通信制御部を含み、
前記代理通信機能部は、前記データに対して第2の通信制御を行う第2の通信制御部を含み、
前記フック処理部は、前記通信処理部が前記送信データを送信するための前記通信機能部の呼び出しを、前記代理通信機能部の呼び出しに変更して、前記送信データを前記代理通信機能部に転送し、
前記アルゴリズム選択部は、
前記フック処理部から前記送信データを受け付けた場合、前記第1の通信制御部又は前記第2の通信制御部のいずれかを選択し、
選択された通信制御部に前記送信データを出力することを特徴とする通信装置。 The communication device according to claim 2,
The communication processing unit includes a first communication control unit that performs first communication control on the transmission data,
The proxy communication function unit includes a second communication control unit that performs second communication control on the data,
The hook processing unit changes a call of the communication function unit for the communication processing unit to transmit the transmission data to a call of the proxy communication function unit, and transfers the transmission data to the proxy communication function unit And
The algorithm selection unit includes:
When receiving the transmission data from the hook processing unit, select either the first communication control unit or the second communication control unit,
A communication apparatus that outputs the transmission data to a selected communication control unit.
前記代理通信機能部は、
通信フローを管理するためのフロー情報を管理するフロー情報処理部を含み、
前記送信データに適用する通信制御部を選択する場合に使用する設定情報を管理し、
前記フック処理部は、
前記通信処理部が受信データを受信するための前記通信機能部の呼び出しを前記代理通信機能部の呼び出しに変更し、
前記代理通信機能部は、
前記通信機能部を呼び出して、前記通信機能部から前記受信データを取得し、
前記受信データを解析することによって、前記フロー情報を生成し、又は前記フロー情報を更新し、
前記アルゴリズム選択部は、前記フロー情報及び前記設定情報に基づいて、前記送信データに適用する通信制御部を選択することを特徴とする通信装置。 The communication device according to claim 3,
The proxy communication function unit
Including a flow information processing unit for managing flow information for managing a communication flow;
Managing setting information used when selecting a communication control unit to be applied to the transmission data;
The hook processing unit
Change the call of the communication function unit for the communication processing unit to receive received data to call the proxy communication function unit,
The proxy communication function unit
Call the communication function unit, obtain the received data from the communication function unit,
By analyzing the received data, generating the flow information, or updating the flow information,
The algorithm selection unit selects a communication control unit to be applied to the transmission data based on the flow information and the setting information.
演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるネットワークインタフェースを備え、
前記ネットワークインタフェースを介してデータを送受信する通信機能部と、
前記通信機能部から取得した前記データを処理し、処理された前記データを出力する通信処理部と、
前記データに対して任意の通信制御を行う代理通信機能部と、
フック処理部と、を有し、
前記通信制御方法は、
前記通信機能部が、前記ネットワークインタフェースを介して受信データを受信する第1のステップと、
前記フック処理部が、前記通信処理部が前記受信データを受信するための前記通信機能部の呼び出しを前記代理通信機能部の呼び出しに変更する第2のステップと、
前記代理通信機能部が、前記受信データを受信するための前記通信処理部からの呼び出しを受信した場合、前記通信機能部を呼び出して前記受信データを取得する第3のステップと、
前記代理通信機能部が、前記受信データを前記通信処理部に出力する第4のステップと、
前記フック処理部が、前記通信処理部が送信データを送信するための前記通信機能部の呼び出しを前記代理通信機能部の呼び出しに変更し、前記送信データを前記代理通信機能部に転送する第5のステップと、
前記代理通信機能部が、前記送信データを受け付けた場合、前記送信データに適用する通信制御を選択する第6のステップと、
前記通信機能部が、前記ネットワークインタフェースを介して前記選択された通信制御が行われた送信データを送信する第7のステップと、を含むことを特徴とする通信制御方法。 A communication control method for a communication device for transmitting and receiving data,
An arithmetic device, a storage device connected to the arithmetic device, and a network interface connected to the arithmetic device,
A communication function unit for transmitting and receiving data via the network interface;
Processing the data acquired from the communication function unit, and outputting the processed data;
A proxy communication function unit for performing arbitrary communication control on the data;
A hook processing unit,
The communication control method includes:
A first step in which the communication function unit receives received data via the network interface;
A second step in which the hook processing unit changes a call of the communication function unit for the communication processing unit to receive the received data to a call of the proxy communication function unit;
When the proxy communication function unit receives a call from the communication processing unit for receiving the received data, a third step of calling the communication function unit and acquiring the received data;
A fourth step in which the proxy communication function unit outputs the received data to the communication processing unit;
The hook processing unit changes a call of the communication function unit for the communication processing unit to transmit transmission data to a call of the proxy communication function unit, and transfers the transmission data to the proxy communication function unit. And the steps
A sixth step of selecting communication control to be applied to the transmission data when the proxy communication function unit receives the transmission data;
A communication control method comprising: a seventh step in which the communication function unit transmits the transmission data subjected to the selected communication control via the network interface.
前記通信処理部及び前記代理通信機能部は、それぞれ、前記送信データに対して任意の通信制御を行う通信制御部を少なくとも一つ含み、
前記第6のステップは、前記代理通信機能部が、複数の通信制御部の中から少なくとも一つの通信制御部を選択するステップを含むことを特徴とする通信制御方法。 The communication control method according to claim 5,
Each of the communication processing unit and the proxy communication function unit includes at least one communication control unit that performs arbitrary communication control on the transmission data,
The sixth step includes a step in which the proxy communication function unit selects at least one communication control unit from among a plurality of communication control units.
前記通信処理部は、前記送信データに対して第1の通信制御を行う第1の通信制御部を含み、
前記代理通信機能部は、前記データに対して第2の通信制御を行う第2の通信制御部を含み、
前記第6のステップは、
前記代理通信機能部が、前記フック処理部から前記送信データを受け付けた場合、前記第1の通信制御部又は前記第2の通信制御部のいずれかを選択するステップと、
前記代理通信機能部が、選択された通信制御部に前記送信データを出力するステップと、を含むことを特徴とする通信制御方法。 The communication control method according to claim 6, comprising:
The communication processing unit includes a first communication control unit that performs first communication control on the transmission data,
The proxy communication function unit includes a second communication control unit that performs second communication control on the data,
The sixth step includes
When the proxy communication function unit receives the transmission data from the hook processing unit, selecting either the first communication control unit or the second communication control unit;
The proxy communication function unit includes a step of outputting the transmission data to a selected communication control unit.
前記代理通信機能部は、
通信フローを管理するためのフロー情報を管理するフロー情報処理部を含み、
前記送信データに適用する通信制御部を選択する場合に使用する設定情報を管理し、
前記第3のステップは、前記代理通信機能部が、前記受信データを解析することによって、前記フロー情報を生成し、又は前記フロー情報を更新するステップを含み、
前記第6のステップは、前記代理通信機能部が、前記フロー情報及び前記設定情報に基づいて、前記送信データに適用する通信制御部を選択するステップを含むことを特徴とする通信制御方法。 The communication control method according to claim 7,
The proxy communication function unit
Including a flow information processing unit for managing flow information for managing a communication flow;
Managing setting information used when selecting a communication control unit to be applied to the transmission data;
The third step includes a step in which the proxy communication function unit generates the flow information or updates the flow information by analyzing the received data,
The communication control method according to claim 6, wherein the sixth step includes a step in which the proxy communication function unit selects a communication control unit to be applied to the transmission data based on the flow information and the setting information.
前記複数の通信装置の各々は、
演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるネットワークインタフェースを備え、
前記ネットワークインタフェースを介してデータを送受信する通信機能部と、
前記通信機能部から取得した前記データを処理し、処理された前記データを出力する通信処理部と、
前記データに対して任意の通信制御を行う代理通信機能部と、
前記通信処理部からの前記通信機能部の呼び出しを前記代理通信機能部の呼び出しに変更するフック処理部と、を有することを特徴とするネットワークシステム。 A network system comprising a plurality of communication devices for transmitting and receiving data,
Each of the plurality of communication devices is
An arithmetic device, a storage device connected to the arithmetic device, and a network interface connected to the arithmetic device,
A communication function unit for transmitting and receiving data via the network interface;
Processing the data acquired from the communication function unit, and outputting the processed data;
A proxy communication function unit for performing arbitrary communication control on the data;
And a hook processing unit that changes a call of the communication function unit from the communication processing unit to a call of the proxy communication function unit.
前記通信処理部及び前記代理通信機能部は、それぞれ、送信データに対して任意の通信制御を行う通信制御部を少なくとも一つ含み、
前記代理通信機能部は、前記送信データに適用する少なくとも一つの通信制御を選択するアルゴリズム選択部を含むことを特徴とするネットワークシステム。 The network system according to claim 9, wherein
Each of the communication processing unit and the proxy communication function unit includes at least one communication control unit that performs arbitrary communication control on transmission data,
The network system according to claim 1, wherein the proxy communication function unit includes an algorithm selection unit that selects at least one communication control to be applied to the transmission data.
前記通信処理部は、前記送信データに対して第1の通信制御を行う第1の通信制御部を含み、
前記代理通信機能部は、前記データに対して第2の通信制御を行う第2の通信制御部を含み、
前記フック処理部は、前記通信処理部が前記送信データを送信するための前記通信機能部の呼び出しを、前記代理通信機能部の呼び出しに変更して、前記送信データを前記代理通信機能部に転送し、
前記アルゴリズム選択部は、
前記フック処理部から前記送信データを受け付けた場合、前記第1の通信制御部又は前記第2の通信制御部のいずれかを選択し、
選択された通信制御部に前記送信データを出力することを特徴とするネットワークシステム。 The network system according to claim 10, wherein
The communication processing unit includes a first communication control unit that performs first communication control on the transmission data,
The proxy communication function unit includes a second communication control unit that performs second communication control on the data,
The hook processing unit changes a call of the communication function unit for the communication processing unit to transmit the transmission data to a call of the proxy communication function unit, and transfers the transmission data to the proxy communication function unit And
The algorithm selection unit includes:
When receiving the transmission data from the hook processing unit, select either the first communication control unit or the second communication control unit,
A network system, wherein the transmission data is output to a selected communication control unit.
前記代理通信機能部は、
通信フローを管理するためのフロー情報を管理するフロー情報処理部を含み、
前記送信データに適用する通信制御部を選択する場合に使用する設定情報を管理し、
前記フック処理部は、
前記通信処理部が受信データを受信するための前記通信機能部の呼び出しを前記代理通信機能部の呼び出しに変更し、
前記代理通信機能部は、
前記通信機能部を呼び出して、前記通信機能部から前記受信データを取得し、
前記受信データを解析することによって、前記フロー情報を生成し、又は前記フロー情報を更新し、
前記アルゴリズム選択部は、前記フロー情報及び前記設定情報に基づいて、前記送信データに適用する通信制御部を選択することを特徴とするネットワークシステム。 The network system according to claim 11, wherein
The proxy communication function unit
Including a flow information processing unit for managing flow information for managing a communication flow;
Managing setting information used when selecting a communication control unit to be applied to the transmission data;
The hook processing unit
Change the call of the communication function unit for the communication processing unit to receive received data to call the proxy communication function unit,
The proxy communication function unit
Call the communication function unit, obtain the received data from the communication function unit,
By analyzing the received data, generating the flow information, or updating the flow information,
The network selection system, wherein the algorithm selection unit selects a communication control unit to be applied to the transmission data based on the flow information and the setting information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016139065A JP2018011207A (en) | 2016-07-14 | 2016-07-14 | Communication device, communication control method, and network system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016139065A JP2018011207A (en) | 2016-07-14 | 2016-07-14 | Communication device, communication control method, and network system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018011207A true JP2018011207A (en) | 2018-01-18 |
Family
ID=60995888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016139065A Pending JP2018011207A (en) | 2016-07-14 | 2016-07-14 | Communication device, communication control method, and network system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018011207A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021234936A1 (en) * | 2020-05-22 | 2021-11-25 | 株式会社Tvt | Data transmission device, program, and system |
-
2016
- 2016-07-14 JP JP2016139065A patent/JP2018011207A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021234936A1 (en) * | 2020-05-22 | 2021-11-25 | 株式会社Tvt | Data transmission device, program, and system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11792046B2 (en) | Method for generating forwarding information, controller, and service forwarding entity | |
US11218537B2 (en) | Load balancing in distributed computing systems | |
CN109450852B (en) | Network communication encryption and decryption method and electronic equipment | |
TWI312626B (en) | Method and apparatus for integrating encapsulation and encryption with packet routing | |
US10404838B2 (en) | Systems and methods for selecting microservices to process protocol data streams | |
JP2014017595A (en) | Communication device, key generating device, communication method, program, and communication system | |
US9992223B2 (en) | Flow-based anti-replay checking | |
US10225232B2 (en) | Method and system for idle mode transfer for load balancing across distributed data plane processing entities for mobile core network | |
US11637771B2 (en) | Technologies for managing network traffic through heterogeneous networks | |
CN106233775B (en) | Insertion and use of application or radio information in network data packet headers | |
WO2017148419A1 (en) | Data transmission method and server | |
CN110417632B (en) | Network communication method, system and server | |
EP3541007A1 (en) | Cryptographic communication apparatus, cryptographic communication system, cryptographic communication method and computer-readable medium | |
JP2017191965A (en) | Communication device and packet transmission/reception program | |
US9049140B2 (en) | Backbone network with policy driven routing | |
CN112042158A (en) | Method and system for transmitting packets through multiple tunnels | |
JP2018011207A (en) | Communication device, communication control method, and network system | |
US20130339727A1 (en) | WAN Optimization Without Required User Configuration for WAN Secured VDI Traffic | |
WO2019165855A1 (en) | Message transmission method and device | |
CN108605012A (en) | Communication device and computer readable storage medium | |
CN117397232A (en) | Agent-less protocol | |
JP2023042903A (en) | Communication apparatus, communication method and communication system | |
CN111356178B (en) | Transmission method, transmitting side PDCP entity and receiving side PDCP entity | |
US11483394B2 (en) | Delayed proxy-less network address translation decision based on application payload | |
JP5504940B2 (en) | Virtual private network system, communication method and computer program |