JP2018011207A - Communication device, communication control method, and network system - Google Patents

Communication device, communication control method, and network system Download PDF

Info

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
Application number
JP2016139065A
Other languages
Japanese (ja)
Inventor
浩行 三喜田
Hiroyuki Mikita
浩行 三喜田
直輝 谷田
Naoki Tanida
直輝 谷田
松木 譲介
Josuke Matsuki
譲介 松木
昇太 中村
Shota Nakamura
昇太 中村
恵理 川井
Eri Kawai
恵理 川井
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 JP2016139065A priority Critical patent/JP2018011207A/en
Publication of JP2018011207A publication Critical patent/JP2018011207A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a network system that does not consume many resources in order to change communication control.SOLUTION: A communication device for transmitting and receiving data includes a computation device, a storage device, and a network interface. The communication device also includes: a communication function unit for transmitting and receiving data via the network interface; a communication processing unit for processing the data obtained from the communication function unit and outputting the processed data; a proxy communication function unit for carrying out any communication control for data; and a hook processing unit for changing a call-out to the communication function unit from the communication processing unit to a call-out to the proxy communication function unit.SELECTED DRAWING: Figure 3

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.

特開2015−133669号公報JP2015-133669A

特許文献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.

実施例1のネットワークシステムの構成例を示す図である。1 is a diagram illustrating a configuration example of a network system according to a first embodiment. 実施例1の計算機のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。2 is a block diagram illustrating an example of a hardware configuration and a software configuration of a computer according to Embodiment 1. FIG. 実施例1の計算機のソフトウェア構成の詳細を示すブロック図である。FIG. 3 is a block diagram illustrating details of a software configuration of the computer according to the first embodiment. 実施例1の計算機が送受信するTCPパケットデータのフォーマットの一例を示す図である。It is a figure which shows an example of the format of the TCP packet data which the computer of Example 1 transmits / receives. 実施例1の設定情報記憶部に格納される設定情報のデータ構造の一例を示す図である。FIG. 3 is a diagram illustrating an example of a data structure of setting information stored in a setting information storage unit according to the first embodiment. 実施例1のフロー情報記憶部に格納されるフロー情報のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the flow information stored in the flow information storage part of Example 1. 実施例1のフロー情報処理部が実行する処理の一例を説明するフローチャートである。6 is a flowchart illustrating an example of processing executed by a flow information processing unit according to the first embodiment. 実施例1の送信制御アルゴリズム選択部が実行する処理を説明するフローチャートである。6 is a flowchart illustrating processing executed by a transmission control algorithm selection unit according to the first embodiment. 実施例2の計算機が送受信するUDPパケットデータのフォーマットの一例を示す図である。It is a figure which shows an example of the format of the UDP packet data which the computer of Example 2 transmits / receives. 実施例2の計算機のソフトウェア構成の詳細を示すブロック図である。FIG. 11 is a block diagram illustrating details of a software configuration of a computer according to a second embodiment. 実施例2の設定情報記憶部に格納される設定情報のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the setting information stored in the setting information storage part of Example 2. 実施例2のフロー情報記憶部に格納されるフロー情報のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the flow information stored in the flow information storage part of Example 2. 実施例2のフロー情報処理部が実行する処理を説明するフローチャートである。10 is a flowchart illustrating processing executed by a flow information processing unit according to the second embodiment. 実施例2のフロー情報処理部が実行する処理を説明するフローチャートである。10 is a flowchart illustrating processing executed by a flow information processing unit according to the second embodiment. 実施例2の送信制御アルゴリズム選択部が実行する処理を説明するフローチャートである。12 is a flowchart illustrating processing executed by a transmission control algorithm selection unit according to the second embodiment. 実施例2の送信制御アルゴリズム選択部が実行する処理を説明するフローチャートである。12 is a flowchart illustrating processing executed by a transmission control algorithm selection unit according to the second embodiment. 実施例2の送信制御アルゴリズム選択部が実行する処理を説明するフローチャートである。12 is a flowchart illustrating processing executed by a transmission control algorithm selection unit according to the second embodiment.

以下、添付図面を参照して本発明の実施例を説明する。本実施例は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。   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 more networks 101 including one or more relay apparatuses 102 and a plurality of computers 100. The computer 100 communicates with other computers 100 via the network 101. The number of computers 100, networks 101, and relay apparatuses 102 is not limited to the numbers shown in FIG.

図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 computer 100 may be a physical server, a proxy device, an information processing device, a terminal, or the like. The computer 100 may be a virtual server on a physical server.

ネットワーク101は、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット等が考えられる。また、ネットワーク101は、帯域保障されるネットワークでもよいし、帯域保障されないネットワークでもよい。   The network 101 may be a LAN (Local Area Network), a WAN (Wide Area Network), the Internet, or the like. The network 101 may be a network whose bandwidth is guaranteed or a network whose bandwidth is not guaranteed.

各ネットワーク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 computer 100 according to the first embodiment. FIG. 3 is a block diagram illustrating details of the software configuration of the computer 100 according to the first embodiment.

計算機100は、演算装置200、主記憶装置201、二次記憶装置202、及びNIF(ネットワークインタフェース)203を有する。計算機100が有する各ハードウェアは、システムバス204を介して互いに接続され、また、システムバス204を介して互いにデータを転送する。   The computer 100 includes an arithmetic device 200, a main storage device 201, a secondary storage device 202, and a network interface (NIF) 203. The hardware included in the computer 100 is connected to each other via the system bus 204 and transfers data to each other via the system bus 204.

図2では、演算装置200、主記憶装置201、二次記憶装置202、及びNIF203が一つのシステムバス204を介して接続されている例を示す。なお、各ハードウェアは、複数のシステムバスを介して接続されてもよいし、システムバスを介さずに直接接続されてもよい。   FIG. 2 shows an example in which the arithmetic device 200, the main storage device 201, the secondary storage device 202, and the NIF 203 are connected via one system bus 204. Each hardware may be connected through a plurality of system buses, or may be directly connected without going through the system bus.

また、計算機100は、演算装置200、主記憶装置201、二次記憶装置202、及びNIF203を複数有してもよい。   The computer 100 may include a plurality of arithmetic devices 200, a main storage device 201, a secondary storage device 202, and an NIF 203.

演算装置200は、主記憶装置201に格納されるプログラムを実行し、また、主記憶装置201に対するデータの読み出し及び書込を行う。演算装置200は、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)等が考えられる。演算装置200がプログラムを実行することによって、計算機100の各種機能が実現される。以下の説明では、機能部を主語に処理を説明する場合、演算装置200が当該機能部を実現するプログラムを実行していることを表す。   The arithmetic device 200 executes a program stored in the main storage device 201 and reads / writes data from / to the main storage device 201. The arithmetic device 200 may be a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or the like. Various functions of the computer 100 are realized by the arithmetic device 200 executing the program. In the following description, when a process is described with a functional unit as a subject, it represents that the arithmetic device 200 is executing a program that realizes the functional unit.

主記憶装置201は、演算装置200が実行するプログラム及び当該プログラムに必要なデータを格納する。主記憶装置201は、例えば、メモリ等が考えられる。主記憶装置201に格納されるプログラムについては後述する。二次記憶装置202は、プログラム及びデータを永続的に格納する。二次記憶装置202は、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等が考えられる。   The main storage device 201 stores a program executed by the arithmetic device 200 and data necessary for the program. The main storage device 201 may be a memory, for example. The program stored in the main storage device 201 will be described later. The secondary storage device 202 permanently stores programs and data. As the secondary storage device 202, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), or the like can be considered.

本実施例では、二次記憶装置202にプログラム及びデータが格納される。演算装置200は、必要に応じて、二次記憶装置202からプログラム及びデータを読み出し、主記憶装置201にプログラム及びデータをロードする。   In this embodiment, programs and data are stored in the secondary storage device 202. The arithmetic device 200 reads a program and data from the secondary storage device 202 as needed, and loads the program and data into the main storage device 201.

NIF203は、ネットワーク101と接続するためのインタフェースである。NIF203は、物理的なNIF上の論理的なNIFでもよい。   The NIF 203 is an interface for connecting to the network 101. The NIF 203 may be a logical NIF on a physical NIF.

主記憶装置201は、通信処理部210、フック処理部220、代理通信機能部230、通信機能部240、及び設定情報入力処理部250を実現するプログラムを格納する。なお、主記憶装置201は、図示しない機能部を実現するプログラムを格納してもよい。また、主記憶装置201は、設定情報記憶部260及びフロー情報記憶部270を含む。   The main storage device 201 stores programs for realizing the communication processing unit 210, the hook processing unit 220, the proxy communication function unit 230, the communication function unit 240, and the setting information input processing unit 250. The main storage device 201 may store a program for realizing a functional unit (not shown). The main storage device 201 includes a setting information storage unit 260 and a flow information storage unit 270.

設定情報記憶部260は、代理通信機能部230が使用する設定情報を格納する。設定情報は、設定情報入力処理部250によって書き込まれる。設定情報の詳細は、図5を用いて説明する。   The setting information storage unit 260 stores setting information used by the proxy communication function unit 230. The setting information is written by the setting information input processing unit 250. Details of the setting information will be described with reference to FIG.

フロー情報記憶部270は、通信フローの管理情報であるフロー情報を格納する。フロー情報は、通信フローごとに通信状態を示す情報を含み、代理通信機能部230及び設定情報入力処理部250によって書き込まれる。フロー情報の詳細は、図6を用いて説明する。   The flow information storage unit 270 stores flow information, which is communication flow management information. The flow information includes information indicating a communication state for each communication flow, and is written by the proxy communication function unit 230 and the setting information input processing unit 250. Details of the flow information will be described with reference to FIG.

通信処理部210は、通信機能部240と連携して、NIF203を介してネットワーク101と通信を行う第三者のアプリケーションである。なお、通信処理部210は、必要に応じて、受信パケットデータに対して任意の処理を実行してもよい。   The communication processing unit 210 is a third party application that communicates with the network 101 via the NIF 203 in cooperation with the communication function unit 240. Note that the communication processing unit 210 may perform arbitrary processing on the received packet data as necessary.

通信処理部210は、計算機100が受信したパケットデータを受信するために通信機能部240を呼び出す。このとき、フック処理部220によって、当該呼び出しが代理通信機能部230への呼び出しに置き換えられる。この場合、通信処理部210は、フック処理部220を介して、代理通信機能部230からパケットデータを取得する。また、通信処理部210は、計算機100からパケットデータを送信するために通信機能部240を呼び出す。このとき、フック処理部220によって、当該呼び出しが代理通信機能部230への呼び出しに置き換えられる。この場合、通信処理部210は、フック処理部220を介して、代理通信機能部230にパケットデータを出力する。   The communication processing unit 210 calls the communication function unit 240 to receive the packet data received by the computer 100. At this time, the hook processing unit 220 replaces the call with a call to the proxy communication function unit 230. In this case, the communication processing unit 210 acquires packet data from the proxy communication function unit 230 via the hook processing unit 220. In addition, the communication processing unit 210 calls the communication function unit 240 to transmit packet data from the computer 100. At this time, the hook processing unit 220 replaces the call with a call to the proxy communication function unit 230. In this case, the communication processing unit 210 outputs packet data to the proxy communication function unit 230 via the hook processing unit 220.

通信機能部240は、OS(オペレーティングシステム)が提供する通信機能である。通信機能部240は、NIF203を管理し、アプリケーションに対して、通信を行うためのAPI(Application Programming Interface)を提供する。動作の詳細については後述する。   The communication function unit 240 is a communication function provided by an OS (Operating System). The communication function unit 240 manages the NIF 203 and provides an application programming interface (API) for performing communication with an application. Details of the operation will be described later.

フック処理部220は、通信処理部210の起動時に通信機能部240が提供するAPIの処理を代理通信機能部230の処理に置き換える。これによって、フック処理部220は、通信処理部210と通信機能部240との間の処理に代理通信機能部230を割り込ませることができる。処理の置き換えは、通信処理部210が停止するまで有効である。フック処理部220を有することによって、計算機100は、帯域制御処理を行うために通信処理部210が送受信するパケットデータをバッファする必要がない。したがって、第三者のアプリケーションである通信処理部210を改変することなく、リソースの消費量を抑えた通信制御の動的な変更を実現できる。   The hook processing unit 220 replaces the API processing provided by the communication function unit 240 with the processing of the proxy communication function unit 230 when the communication processing unit 210 is activated. Accordingly, the hook processing unit 220 can cause the proxy communication function unit 230 to interrupt the processing between the communication processing unit 210 and the communication function unit 240. The replacement of the process is effective until the communication processing unit 210 stops. By including the hook processing unit 220, the computer 100 does not need to buffer packet data transmitted and received by the communication processing unit 210 in order to perform the bandwidth control processing. Therefore, it is possible to realize a dynamic change of communication control with reduced resource consumption without modifying the communication processing unit 210 that is a third party application.

通信処理部210及び代理通信機能部230は、フック処理部220を介して、直接、パケットデータを入出力するように振る舞う。すなわち、通信処理部210とフック処理部220との間のパケットデータの入出力、及び、フック処理部220と代理通信機能部230との間のパケットデータの入出力は、通信処理部210と代理通信機能部230との間のパケットデータの入出力と同義である。   The communication processing unit 210 and the proxy communication function unit 230 behave so as to directly input / output packet data via the hook processing unit 220. That is, packet data input / output between the communication processing unit 210 and the hook processing unit 220 and packet data input / output between the hook processing unit 220 and the proxy communication function unit 230 are This is synonymous with packet data input / output with the communication function unit 230.

例えば、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 communication processing unit 210 is activated, the hook processing unit 220 and the proxy communication function unit 230 implemented as a shared library are specified in the environment variable LD_PRELOAD. The hook processing unit 220 defines a function for calling the API of the proxy communication function unit 230 having the same name as the function name existing in the communication function unit 240, so that the communication processing unit 210 calls the API of the communication function unit 240. The proxy communication function unit 230 is replaced with a call. As a result, the calling of the communication function unit 240 for receiving packet data and the calling of the communication function unit 240 for transmitting packet data are changed to calling of the proxy communication function unit 230.

代理通信機能部230は、設定情報記憶部260から読み出した設定情報及びフロー情報記憶部270から読み出したフロー情報を用いて、パケットデータに対する通信制御を行い、通信機能部240と連携してNIF203を介してネットワーク101と通信する。また、代理通信機能部230は、通信制御を行う過程で、フロー情報の生成及び更新を行う。動作の詳細については後述する。   The proxy communication function unit 230 performs communication control on the packet data using the setting information read from the setting information storage unit 260 and the flow information read from the flow information storage unit 270, and links the NIF 203 in cooperation with the communication function unit 240. Communicate with the network 101 via The proxy communication function unit 230 generates and updates flow information in the process of performing communication control. Details of the operation will be described later.

設定情報入力処理部250は、通信処理部210の管理者からの設定情報の入力を受け付け、設定情報記憶部260に設定情報を書き込む処理、及びフロー情報記憶部270に格納されたフロー情報を削除する処理を実行する。通信処理部210の管理者は、CUI(Character User Interface)及びGUI(Graphical User Interface)を用いて各種値を入力する。なお、通信処理部210の管理者は、計算機100が入力装置を有する場合には入力装置を用いて値を入力し、計算機100が入力装置を有しない場合にはネットワークを介して外部から値を入力する。   The setting information input processing unit 250 receives the input of setting information from the administrator of the communication processing unit 210, deletes the flow information stored in the flow information storage unit 270, and the process of writing the setting information in the setting information storage unit 260 Execute the process. The administrator of the communication processing unit 210 inputs various values using a CUI (Character User Interface) and a GUI (Graphical User Interface). The administrator of the communication processing unit 210 inputs a value using an input device when the computer 100 has an input device, and inputs a value from the outside via a network when the computer 100 does not have an input device. input.

ここで、各機能部の詳細を説明する。   Here, details of each functional unit will be described.

代理通信機能部230は、送信制御アルゴリズム選択部231、フロー情報処理部232及び独自TCP送信制御部233を含む。   The proxy communication function unit 230 includes a transmission control algorithm selection unit 231, a flow information processing unit 232, and a unique TCP transmission control unit 233.

通信機能部240は、受信部241、送信部242、ロスベースTCP送信制御部243及び遅延ベースTCP送信制御部244を含む。   The communication function unit 240 includes a receiving unit 241, a transmitting unit 242, a loss-based TCP transmission control unit 243, and a delay-based TCP transmission control unit 244.

受信部241は、NIF203から受信パケットデータを取得する。これによって、計算機100がネットワーク101からパケットデータを受信できる。受信部241は、受信パケットデータをフロー情報処理部232に転送する。   The receiving unit 241 acquires received packet data from the NIF 203. As a result, the computer 100 can receive packet data from the network 101. The receiving unit 241 transfers the received packet data to the flow information processing unit 232.

送信部242は、独自TCP送信制御部233、ロスベースTCP送信制御部243及び遅延ベースTCP送信制御部244のいずれかから送信パケットデータを取得する。送信部242は、送信パケットデータをNIF203に転送する。これによって、計算機100がネットワーク101にパケットデータを送信できる。   The transmission unit 242 acquires transmission packet data from any of the unique TCP transmission control unit 233, the loss-based TCP transmission control unit 243, and the delay-based TCP transmission control unit 244. The transmission unit 242 transfers the transmission packet data to the NIF 203. As a result, the computer 100 can transmit packet data to the network 101.

独自TCP送信制御部233は、特許文献1に記載されたアルゴリズムに基づいてTCP送信制御を行い、送信制御アルゴリズム選択部231から受け取った送信パケットデータを送信部242に転送する。当該TCP送信制御は、RTT(Round Trip Time)及びパケット廃棄率が大きい場合に、効率的な送信制御方法である。   The unique TCP transmission control unit 233 performs TCP transmission control based on the algorithm described in Patent Document 1, and transfers the transmission packet data received from the transmission control algorithm selection unit 231 to the transmission unit 242. The TCP transmission control is an efficient transmission control method when the RTT (Round Trip Time) and the packet discard rate are large.

ロスベースTCP送信制御部243は、TCP Renoとして知られるアルゴリズムに基づいてTCP送信制御を行い、送信制御アルゴリズム選択部231から受け取った送信パケットデータを送信部242に転送する。パケット廃棄に基づいてTCP送信制御処理が行われる。TCP Renoは、標準的に使用されるTCP送信制御方法である。   The loss-based TCP transmission control unit 243 performs TCP transmission control based on an algorithm known as TCP Reno, and transfers the transmission packet data received from the transmission control algorithm selection unit 231 to the transmission unit 242. A TCP transmission control process is performed based on the packet discard. TCP Reno is a TCP transmission control method used as a standard.

遅延ベースTCP送信制御部244は、TCP Vegasとして知られるアルゴリズムに基づいてTCP送信制御を行い、送信制御アルゴリズム選択部231から受け取った送信パケットデータを送信部242に転送する。TCP Vegasは、RTTに基づいてパケット廃棄が起こらないようにTCP送信制御が行われる。これによって、閉じたネットワーク内で遅延ベースTCP送信制御部244同士がパケットデータの送受信を行う場合に、効率的な送信制御方法である。   The delay-based TCP transmission control unit 244 performs TCP transmission control based on an algorithm known as TCP Vegas, and transfers transmission packet data received from the transmission control algorithm selection unit 231 to the transmission unit 242. In TCP Vegas, TCP transmission control is performed based on RTT so that packet discard does not occur. This is an efficient transmission control method when the delay-based TCP transmission control units 244 perform transmission / reception of packet data in a closed network.

送信制御アルゴリズム選択部231は、設定情報記憶部260から読み出した設定情報及びフロー情報記憶部270から読み出したフロー情報を用いて効率的なTCP送信制御を選択する。送信制御アルゴリズム選択部234は、選択された送信制御を行う機能部にフック処理部220から受け取ったパケットデータを転送する。すなわち、送信制御アルゴリズム選択部231は、独自TCP送信制御部233、ロスベースTCP送信制御部243及び遅延ベースTCP送信制御部244のいずれかに、フック処理部220から受け取った送信パケットデータを転送する。また、送信制御アルゴリズム選択部231は、処理の過程で、フロー情報の生成及び更新を行う。処理の詳細は、図8を用いて説明する。   The transmission control algorithm selection unit 231 selects efficient TCP transmission control using the setting information read from the setting information storage unit 260 and the flow information read from the flow information storage unit 270. The transmission control algorithm selection unit 234 transfers the packet data received from the hook processing unit 220 to the selected function unit that performs transmission control. In other words, the transmission control algorithm selection unit 231 transfers the transmission packet data received from the hook processing unit 220 to any one of the unique TCP transmission control unit 233, the loss-based TCP transmission control unit 243, and the delay-based TCP transmission control unit 244. In addition, the transmission control algorithm selection unit 231 generates and updates flow information in the process. Details of the processing will be described with reference to FIG.

なお、計算機100は、独自TCP送信制御部233、ロスベースTCP送信制御部243及び遅延ベースTCP送信制御部244が行うTCP送信制御以外のアルゴリズムを用いてもよい。また、各TCP送信制御部は、代理通信機能部230及び通信機能部240のどちらに含まれていてもよい。TCP送信制御部の数は、図3に示す数に限定されず任意である。   The computer 100 may use an algorithm other than the TCP transmission control performed by the unique TCP transmission control unit 233, the loss-based TCP transmission control unit 243, and the delay-based TCP transmission control unit 244. Each TCP transmission control unit may be included in either the proxy communication function unit 230 or the communication function unit 240. The number of TCP transmission control units is not limited to the number shown in FIG. 3 and is arbitrary.

フロー情報処理部232は、受信部241から受け取った受信パケットデータのヘッダ情報を用いて、フロー情報の生成及び更新を行い、フロー情報記憶部270にフロー情報を書き込む。また、フロー情報処理部232は、受信パケットデータをフック処理部220に転送する。処理の詳細は、図7を用いて説明する。   The flow information processing unit 232 generates and updates the flow information using the header information of the received packet data received from the receiving unit 241 and writes the flow information in the flow information storage unit 270. In addition, the flow information processing unit 232 transfers the received packet data to the hook processing unit 220. Details of the processing will be described with reference to FIG.

なお、通信処理部210、フック処理部220、代理通信機能部230、通信機能部240、設定情報入力処理部250、設定情報記憶部260、及びフロー情報記憶部270は、ソフトウェアとして実現されているが、こられの機能の一部又は全てを演算装置200及びNIF203等のハードウェアを用いて実現されてもよい。   The communication processing unit 210, the hook processing unit 220, the proxy communication function unit 230, the communication function unit 240, the setting information input processing unit 250, the setting information storage unit 260, and the flow information storage unit 270 are realized as software. However, part or all of these functions may be realized using hardware such as the arithmetic device 200 and the NIF 203.

図4は、実施例1の計算機100が送受信するTCPパケットデータのフォーマットの一例を示す図である。   FIG. 4 is a diagram illustrating an example of a format of TCP packet data transmitted and received by the computer 100 according to the first embodiment.

パケットデータは、MACヘッダ310、IPヘッダ320、TCPヘッダ330、TCPオプションヘッダ340、及びTCPペイロード350を含む。   The packet data includes a MAC header 310, an IP header 320, a TCP header 330, a TCP option header 340, and a TCP payload 350.

MACヘッダ310は、DMAC311、SMAC312、TPID313、TCI314、及びType315を含む。   The MAC header 310 includes a DMAC 311, an SMAC 312, a TPID 313, a TCI 314, and a Type 315.

DMAC311は、宛先MACアドレスを表す。SMAC312は、送信元MACアドレスを表す。TPID313は、タグ付きフレームであること及びタグの種類を表す。TCI314は、タグの情報を表す。Type315は、MACフレームタイプを表す。   The DMAC 311 represents a destination MAC address. SMAC 312 represents a source MAC address. The TPID 313 represents a tagged frame and a tag type. The TCI 314 represents tag information. Type 315 represents a MAC frame type.

TCI314は、さらに、PCP316、CFI317、及びVID318を含む。PCP316は優先度を表す。CFI317は、MACアドレスが正規フォーマットであるかを表す。VID318は、VLANのIDを表す。なお、VLANが使用されていないネットワークの場合、TPID313及びTCI314は存在しない。この場合、計算機100は、VID318が「0」であるものとして処理を行う。   The TCI 314 further includes a PCP 316, a CFI 317, and a VID 318. PCP 316 represents priority. CFI 317 indicates whether the MAC address is in a regular format. The VID 318 represents the VLAN ID. Note that the TPID 313 and the TCI 314 do not exist in a network that does not use a VLAN. In this case, the computer 100 performs processing assuming that the VID 318 is “0”.

IPヘッダ320は、IP length321、protocol322、SIP323、及びDIP324を含む。   The IP header 320 includes an IP length 321, a protocol 322, a SIP 323, and a DIP 324.

IP length321は、MACヘッダ310を除くパケット長を表す。protocol322は、プロトコル番号を表す。SIP323は、送信元IPアドレスを表す。DIP324は、宛先IPアドレスを表す。   IP length 321 represents a packet length excluding the MAC header 310. The protocol 322 represents a protocol number. SIP 323 represents a source IP address. DIP 324 represents a destination IP address.

TCPヘッダは、src.port331、dst.port332、SEQ333、ACK334、flag335、tcp hlen336、及びwin_size337を含む。   The TCP header is src. port 331, dst. port 332, SEQ 333, ACK 334, flag 335, tcp hlen 336, and win_size 337.

src.port331は、送信元ポート番号を表す。dst.port332は、宛先ポート番号を表す。SEQ333は、送信シーケンス番号を表す。ACK334は、受信シーケンス番号を表す。flag335は、TCPフラグ番号を表す。tcp hlen336は、TCPのヘッダ長を表す。win_size337は、対向装置へ通知する広告ウィンドウサイズを表す。   src. The port 331 represents a transmission source port number. dst. The port 332 represents a destination port number. SEQ333 represents a transmission sequence number. ACK 334 represents a reception sequence number. A flag 335 represents a TCP flag number. tcp hlen 336 represents the header length of TCP. win_size 337 represents the advertisement window size notified to the opposing device.

TCPオプションヘッダ340は、0又は複数のオプションを含む。例えば、option kind341、option length342、及びオプション情報343等のオプションが含まれる。option kind341は、オプションの種別を表す。option length342は、オプション長を表す。オプション情報343は、オプションの種類に応じた情報を表す。   The TCP option header 340 includes zero or a plurality of options. For example, options such as an option kind 341, an option length 342, and option information 343 are included. An option kind 341 represents an option type. The option length 342 represents an option length. The option information 343 represents information corresponding to the type of option.

例えば、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 win_size 337. As described above, the TCP option is used to transmit a function and information that can be supported by the own apparatus to the opposite apparatus at the start of communication and during communication.

図5は、実施例1の設定情報記憶部260に格納される設定情報のデータ構造の一例を示す図である。   FIG. 5 is a diagram illustrating an example of a data structure of setting information stored in the setting information storage unit 260 according to the first embodiment.

設定情報は、network_location401、rtt_coe402、loss_coe403、及びthreshold404を含む。   The setting information includes network_location 401, rtt_coe 402, loss_coe 403, and threshold 404.

network_location401は、自装置が位置するネットワーク構成情報を表す。例えば、インターネット、ロスベースTCP送信制御が行われた閉じたネットワーク、遅延ベースTCP送信制御が行われた閉じたネットワーク等の情報を表す。   The network_location 401 represents network configuration information where the own device is located. For example, it represents information such as the Internet, a closed network in which loss-based TCP transmission control is performed, and a closed network in which delay-based TCP transmission control is performed.

rtt_coe402は、送信制御アルゴリズム選択部231が送信制御を選択するときに使用するRTTの重みづけを表す任意の数値である。   The rtt_coe 402 is an arbitrary numerical value representing the weight of the RTT used when the transmission control algorithm selection unit 231 selects transmission control.

loss_coe403は、送信制御アルゴリズム選択部231が送信制御を選択するときに使用するパケット廃棄率の重みづけを表す任意の数値である。   The loss_coe 403 is an arbitrary numerical value representing the weight of the packet discard rate used when the transmission control algorithm selection unit 231 selects transmission control.

threshold404は、送信制御アルゴリズム選択部231が送信制御を選択するときに使用する閾値を表す任意の数値である。   The threshold 404 is an arbitrary numerical value representing a threshold used when the transmission control algorithm selection unit 231 selects transmission control.

図6は、実施例1のフロー情報記憶部270に格納されるフロー情報のデータ構造の一例を示す図である。   FIG. 6 is a diagram illustrating an example of a data structure of flow information stored in the flow information storage unit 270 according to the first embodiment.

フロー情報記憶部270は、通信フローごとにフロー情報500を格納する。フロー情報500は、フロー管理情報510及びフロー通信状態情報520を含む。   The flow information storage unit 270 stores the flow information 500 for each communication flow. The flow information 500 includes flow management information 510 and flow communication state information 520.

フロー管理情報510は、通信フローを一意に識別するための識別情報であり、src_ip511、dest_ip512、src_port513、dest_port514、及びvlan515を含む。   The flow management information 510 is identification information for uniquely identifying a communication flow, and includes src_ip 511, dest_ip 512, src_port 513, dest_port 514, and vlan 515.

src_ip511は、自装置のIPアドレスを表す。dest_ip512は、対向装置のIPアドレスを表す。src_port513は、自装置のTCPポート番号を表す。dest_port514は、対向装置のTCPポート番号を表す。vlan515は、VLANのIDを表す。   src_ip 511 represents the IP address of the own device. dest_ip 512 represents the IP address of the opposite device. src_port 513 represents the TCP port number of the own apparatus. dest_port 514 represents the TCP port number of the opposite device. vlan 515 represents the VLAN ID.

フロー通信状態情報520は、通信フローの状態を表す情報であり、rtt521、loss522、seq523、ack_bytes524、及びtx_bytes525を含む。   The flow communication state information 520 is information indicating the state of the communication flow, and includes rtt 521, loss 522, seq 523, ack_bytes 524, and tx_bytes 525.

rtt521は、RTTを表す。loss522は、パケット廃棄率を表す。seq523は、応答済みシーケンス番号を表す。ack_bytes524は、応答済みバイト数を表す。tx_bytes525は、送信済みバイト数を表す。   rtt521 represents the RTT. Loss 522 represents a packet discard rate. seq 523 represents a responded sequence number. ack_bytes 524 represents the number of bytes that have been answered. tx_bytes 525 represents the number of transmitted bytes.

図7は、実施例1のフロー情報処理部232が実行する処理の一例を説明するフローチャートである。   FIG. 7 is a flowchart illustrating an example of processing executed by the flow information processing unit 232 according to the first embodiment.

フロー情報処理部232は、受信部241からの受信パケットデータの受信を契機に、処理を開始する(ステップS100)。   The flow information processing unit 232 starts processing upon reception of received packet data from the receiving unit 241 (step S100).

フロー情報処理部232は、受信パケットデータを受信した後(ステップS101)、フロー情報500を取得するために、受信パケットデータのヘッダ情報を主記憶装置201にコピーする(ステップS102)。その後、フロー情報処理部232は、受信パケットデータをフック処理部220へ転送する(ステップS103)。   After receiving the received packet data (step S101), the flow information processing unit 232 copies the header information of the received packet data to the main storage device 201 to acquire the flow information 500 (step S102). Thereafter, the flow information processing unit 232 transfers the received packet data to the hook processing unit 220 (step S103).

次に、フロー情報処理部232は、受信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されているか否かを判定する(ステップS104)。具体的には、以下の処理が実行される。   Next, the flow information processing unit 232 determines whether or not the flow information 500 of the communication flow to which the received packet data belongs is stored in the flow information storage unit 270 (step S104). Specifically, the following processing is executed.

フロー情報処理部232は、src_ip511がDIP324に一致し、dest_ip512がSIP323に一致し、src_port513がdst.port332に一致し、dest_port514がsrc.port331に一致し、かつ、vlan515がVID318に一致するフロー情報500が存在するか否かを判定する。   In the flow information processing unit 232, src_ip 511 matches DIP 324, dest_ip 512 matches SIP 323, and src_port 513 matches dst. match port 332 and dest_port 514 is src. It is determined whether or not there is flow information 500 that matches port 331 and vlan 515 matches VID 318.

前述した条件を満たすフロー情報500が存在する場合、フロー情報処理部232は、受信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されていると判定する。以上がステップS104の処理の説明である。   When the flow information 500 that satisfies the above-described condition exists, the flow information processing unit 232 determines that the flow information 500 of the communication flow to which the received packet data belongs is stored in the flow information storage unit 270. The above is the description of the processing in step S104.

ステップ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 flow information 500 of the communication flow to which the received packet data belongs is stored in the flow information storage unit 270 (step S104: Yes), the flow information processing unit 232 displays the flow information storage unit 270. The flow information 500 retrieved from is read out (step S105). Thereafter, the flow information processing unit 232 acquires the current time and calculates the RTT (step S106). The RTT is calculated, for example, as the difference between the time information included in the time stamp option of the TCP option header 340 and the current time. Note that the RTT calculation method may be another calculation method.

次に、フロー情報処理部232は、フロー情報500を更新する(ステップS107)。   Next, the flow information processing unit 232 updates the flow information 500 (step S107).

具体的には、フロー情報処理部232は、算出されたRTTをrtt521に設定し、seq523とACK334との差をack_bytes524に加算し、ACK334をseq523に設定する。   Specifically, the flow information processing unit 232 sets the calculated RTT to rtt 521, adds the difference between seq 523 and ACK 334 to ack_bytes 524, and sets ACK 334 to seq 523.

次に、フロー情報処理部232は、更新されたフロー情報500をフロー情報記憶部270に格納し(ステップS108)、処理を終了する(ステップS111)。   Next, the flow information processing unit 232 stores the updated flow information 500 in the flow information storage unit 270 (step S108), and ends the process (step S111).

ステップS104において、受信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されていないと判定された場合(ステップS104:No)、フロー情報処理部232は、フロー情報500を新たに生成し(ステップS109)、ヘッダ情報に基づいて新たに生成されたフロー情報500に値を設定する(ステップS110)。   When it is determined in step S104 that the flow information 500 of the communication flow to which the received packet data belongs is not stored in the flow information storage unit 270 (step S104: No), the flow information processing unit 232 newly sets the flow information 500. (Step S109), and a value is set to the newly generated flow information 500 based on the header information (step S110).

具体的には、フロー情報処理部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 information processing unit 232 sets the DIP 324 to src_ip 511, sets the SIP 323 to dest_ip 512, and sets the dst. port 332 is set to src_port 513, and src. Port 331 is set to dest_port 514, VID 318 is set to vlan 515, and ACK 334 is set to seq 523. The flow information processing unit 232 sets “0” in each of the rtt 521, the loss 522, the ack_bytes 524, and the tx_bytes 525.

次に、フロー情報処理部232は、生成されたフロー情報500をフロー情報記憶部270に格納し(ステップS108)、処理を終了する(ステップS111)。   Next, the flow information processing unit 232 stores the generated flow information 500 in the flow information storage unit 270 (step S108), and ends the process (step S111).

図8は、実施例1の送信制御アルゴリズム選択部231が実行する処理を説明するフローチャートである。   FIG. 8 is a flowchart illustrating processing executed by the transmission control algorithm selection unit 231 according to the first embodiment.

送信制御アルゴリズム選択部231は、フック処理部220からの送信パケットデータの受信を契機に、処理を開始する(ステップS200)。   The transmission control algorithm selection unit 231 starts processing upon reception of transmission packet data from the hook processing unit 220 (step S200).

送信制御アルゴリズム選択部231は、送信パケットデータを受信した後(ステップS201)、設定情報記憶部260から設定情報を読み出す(ステップS202)。   After receiving the transmission packet data (step S201), the transmission control algorithm selection unit 231 reads the setting information from the setting information storage unit 260 (step S202).

次に、送信制御アルゴリズム選択部231は、読み出された設定情報のnetwork_location401が遅延ベースTCP送信制御が行われた閉じたネットワークであるか否か判定する(ステップS203)。   Next, the transmission control algorithm selection unit 231 determines whether the network_location 401 of the read setting information is a closed network in which delay-based TCP transmission control is performed (step S203).

ステップS203において、network_location401が遅延ベースTCP送信制御が行われた閉じたネットワークであると判定された場合(ステップS203:Yes)、送信制御アルゴリズム選択部231は、送信パケットデータを遅延ベースTCP送信制御部244に転送し(ステップS204)、処理を終了する(ステップS215)。   When it is determined in step S203 that the network_location 401 is a closed network in which delay-based TCP transmission control is performed (step S203: Yes), the transmission control algorithm selection unit 231 transmits transmission packet data to the delay-based TCP transmission control unit. The process is transferred to 244 (step S204), and the process ends (step S215).

ステップS203において、network_location401が遅延ベースTCP送信制御が行われた閉じたネットワークではないと判定された場合(ステップS203:No)、送信制御アルゴリズム選択部231は、送信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されているか否かを判定する(ステップS205)。具体的には、以下の処理が実行される。   When it is determined in step S203 that the network_location 401 is not a closed network in which delay-based TCP transmission control is performed (step S203: No), the transmission control algorithm selection unit 231 determines the flow information of the communication flow to which the transmission packet data belongs. It is determined whether 500 is stored in the flow information storage unit 270 (step S205). Specifically, the following processing is executed.

送信制御アルゴリズム選択部231は、src_ip511がSIP323に一致し、dest_ip512がDIP324に一致し、src_port513がsrc.port331に一致し、dest_port514がdst.port332に一致し、かつ、vlan515がVID318に一致するフロー情報500が存在するか否かを判定する。   The transmission control algorithm selection unit 231 determines that src_ip 511 matches SIP 323, dest_ip 512 matches DIP 324, and src_port 513 matches src. port 331, and dest_port 514 is dst. It is determined whether or not there is flow information 500 that matches port 332 and vlan 515 matches VID 318.

前述した条件を満たすフロー情報500が存在する場合、送信制御アルゴリズム選択部231は、送信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されていると判定する。以上がステップS205の処理の説明である。   When the flow information 500 that satisfies the above-described condition exists, the transmission control algorithm selection unit 231 determines that the flow information 500 of the communication flow to which the transmission packet data belongs is stored in the flow information storage unit 270. The above is the description of the process in step S205.

ステップS205において、送信パケットデータが属する通信フローのフロー情報500がフロー情報記憶部270に格納されていないと判定された場合(ステップS205:No)、送信制御アルゴリズム選択部231は、フロー情報500を新たに生成し(ステップS206)、ヘッダ情報に基づいて新たに生成されたフロー情報500に値を設定する(ステップS207)。   When it is determined in step S205 that the flow information 500 of the communication flow to which the transmission packet data belongs is not stored in the flow information storage unit 270 (step S205: No), the transmission control algorithm selection unit 231 stores the flow information 500. A new value is generated (step S206), and a value is set in the newly generated flow information 500 based on the header information (step S207).

具体的には、送信制御アルゴリズム選択部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 algorithm selection unit 231 sets SIP 323 to src_ip 511, sets DIP 324 to dest_ip 512, and sets src. port 331 is set to src_port 513, and dst. Port 332 is set to dest_port 514, VID 318 is set to vlan 515, and SEQ 333 is set to seq 523. The transmission control algorithm selection unit 231 sets a value obtained by subtracting the sum of the IP header length (20 bytes) and the tcp hell 336 from the IP length 321 in the tx_bytes 525. Also, the transmission control algorithm selection unit 231 sets “0” to each of the rtt 521, the loss 522, the ack_bytes 524, and the tx_bytes 525.

次に、送信制御アルゴリズム選択部231は、送信パケットデータをロスベースTCP送信制御部243に転送する(ステップS208)。   Next, the transmission control algorithm selection unit 231 transfers the transmission packet data to the loss-based TCP transmission control unit 243 (step S208).

次に、送信制御アルゴリズム選択部231は、生成されたフロー情報500をフロー情報記憶部270に格納し(ステップS209)、処理を終了する(ステップS215)。   Next, the transmission control algorithm selection unit 231 stores the generated flow information 500 in the flow information storage unit 270 (step S209), and ends the process (step S215).

ステップ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 flow information 500 of the communication flow to which the transmission packet data belongs is stored in the flow information storage unit 270 (step S205: Yes), the transmission control algorithm selection unit 231 displays the flow information storage unit. The flow information 500 retrieved from 270 is read (step S210). Next, the transmission control algorithm selection unit 231 calculates a packet discard rate (step S211). For example, the packet discard rate is calculated by dividing the difference between tx_bytes 525 and ack_bytes 524 by tx_bytes 525. Other calculation methods may be used as the packet discard rate calculation method.

次に、送信制御アルゴリズム選択部231は、フロー情報500を更新する(ステップS212)。   Next, the transmission control algorithm selection unit 231 updates the flow information 500 (step S212).

具体的には、送信制御アルゴリズム選択部231は、算出されたパケット廃棄率をloss522に設定し、IP length321から、IPヘッダ長(20バイト)とtcp hlen336との和を減算した値をtx_bytes525に加算し、SEQ333をseq523に設定する。   Specifically, the transmission control algorithm selection unit 231 sets the calculated packet discard rate to loss 522, and adds a value obtained by subtracting the sum of the IP header length (20 bytes) and tcp length 336 from IP length 321 to tx_bytes 525. Then, SEQ 333 is set to seq 523.

次に、送信制御アルゴリズム選択部231は、式(1)を満たすか否かを判定する(ステップS213)。   Next, the transmission control algorithm selection unit 231 determines whether or not Expression (1) is satisfied (step S213).

Figure 2018011207
Figure 2018011207

ステップ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 algorithm selection unit 231 transfers the transmission packet data to the unique TCP transmission control unit 233 (step S214).

次に、送信制御アルゴリズム選択部231は、更新されたフロー情報500をフロー情報記憶部270に格納し(ステップS209)、処理を終了する(ステップS215)。   Next, the transmission control algorithm selection unit 231 stores the updated flow information 500 in the flow information storage unit 270 (step S209), and ends the process (step S215).

ステップ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 algorithm selection unit 231 transfers the transmission packet data to the loss-based TCP transmission control unit 243 (step S208).

次に、送信制御アルゴリズム選択部231は、更新されたフロー情報500をフロー情報記憶部270に格納し(ステップS209)、処理を終了する(ステップS215)。   Next, the transmission control algorithm selection unit 231 stores the updated flow information 500 in the flow information storage unit 270 (step S209), and ends the process (step S215).

実施例1によれば、フック処理部220が、通信処理部210と通信機能部240との間の処理に代理通信機能部230を割り込ませることによって、パケットデータをバッファすることなく、帯域制御処理を適用することができる。これによって、リソースの消費量を抑えた動的な通信制御の変更を実現できる。また、実施例1では、通信処理部210を変更する必要がないため、開発コストの低減及び通信処理部210の管理者の負担等を低減することができる。   According to the first embodiment, the hook processing unit 220 causes the proxy communication function unit 230 to interrupt the processing between the communication processing unit 210 and the communication function unit 240, thereby buffering the packet data without buffering the packet data. Can be applied. Thus, dynamic communication control change with reduced resource consumption can be realized. In the first embodiment, since it is not necessary to change the communication processing unit 210, it is possible to reduce the development cost and the burden on the administrator of the communication processing unit 210.

実施例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 computer 100 is different from that of the first embodiment, it will be described later.

図9は、実施例2の計算機100が送受信するUDPパケットデータのフォーマットの一例を示す図である。   FIG. 9 is a diagram illustrating an example of a format of UDP packet data transmitted and received by the computer 100 according to the second embodiment.

UDPパケットデータは、MACヘッダ310、IPヘッダ320、UDPヘッダ360、及びUDPペイロード370を含む。   The UDP packet data includes a MAC header 310, an IP header 320, a UDP header 360, and a UDP payload 370.

MACヘッダ310及びIPヘッダ320は、実施例1のTCPパケットデータに含まれるヘッダと同様であるため説明を省略する。   Since the MAC header 310 and the IP header 320 are the same as the headers included in the TCP packet data of the first embodiment, description thereof is omitted.

UDPヘッダ360は、src.port361、dst.port362、及びUDP length363を含む。   The UDP header 360 is src. port 361, dst. port 362, and UDP length 363.

src.port361は、送信元ポート番号を表す。dst.port362は、宛先ポート番号を表す。UDP length363は、UDPヘッダ360及びUDPペイロード370を合わせたデータ長を表す。   src. The port 361 represents a transmission source port number. dst. The port 362 represents a destination port number. UDP length 363 represents the data length of the combined UDP header 360 and UDP payload 370.

UDPペイロード370は、packet_type371及びavailable_func372を含む。   The UDP payload 370 includes a packet_type 371 and an available_func 372.

packet_type371は、パケット種別を表す。available_func372は、利用可能なデータ加工処理の種別を表す。packet_type371及びavailable_func372は、実施例2の代理通信機能部230によって使用される。なお、packet_type371及びavailable_func372は、存在しない場合もある。   The packet_type 371 represents a packet type. The available_func 372 indicates the type of data processing that can be used. The packet_type 371 and the available_func 372 are used by the proxy communication function unit 230 of the second embodiment. Note that the packet_type 371 and the available_func 372 may not exist.

実施例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_type 371 and “110” is set in the available_func 372 in binary, as one of the control information packet data described later. In this example, the first bit from the available_func 372 is the differential transfer function, the second bit is the data compression function, the third bit is the encryption function, “1” is available, and “0” is unavailable. . When available_func 372 is “110”, it means that the available data processing is a data compression function and an encryption function.

パケットデータがデータ圧縮パケットデータである場合、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 packet_type 371. The packet data does not have an available_func 372, and compressed data is set in a portion other than the packet_type 371.

図10は、実施例2の計算機100のソフトウェア構成の詳細を示すブロック図である。   FIG. 10 is a block diagram illustrating details of the software configuration of the computer 100 according to the second embodiment.

計算機100の主記憶装置201は、通信処理部210、フック処理部220、代理通信機能部230、通信機能部240、及び設定情報入力処理部250を実現するプログラムを含む。また、計算機100の主記憶装置201は、設定情報記憶部260及びフロー情報記憶部270を含む。   The main storage device 201 of the computer 100 includes programs for realizing the communication processing unit 210, the hook processing unit 220, the proxy communication function unit 230, the communication function unit 240, and the setting information input processing unit 250. The main storage device 201 of the computer 100 includes a setting information storage unit 260 and a flow information storage unit 270.

実施例2では、計算機100は、自装置及び対向装置の利用可能なデータ加工処理の種別を表す制御情報を含む制御情報パケットデータを送受信することによって互いに制御情報を通知する。   In the second embodiment, the computers 100 notify each other of control information by transmitting and receiving control information packet data including control information indicating the types of data processing that can be used by the own device and the opposite device.

代理通信機能部230は、送信制御アルゴリズム選択部234、フロー情報処理部235、差分転送処理部236、及びデータ圧縮処理部237を含む。通信機能部240は、受信部245、送信部246及び暗号化処理部247を含む。   The proxy communication function unit 230 includes a transmission control algorithm selection unit 234, a flow information processing unit 235, a differential transfer processing unit 236, and a data compression processing unit 237. The communication function unit 240 includes a reception unit 245, a transmission unit 246, and an encryption processing unit 247.

通信処理部210、フック処理部220、設定情報入力処理部250、設定情報記憶部260、フロー情報記憶部270は、実施例1と同様であるため説明を省略する。   Since the communication processing unit 210, the hook processing unit 220, the setting information input processing unit 250, the setting information storage unit 260, and the flow information storage unit 270 are the same as those in the first embodiment, description thereof is omitted.

なお、設定情報記憶部260及びフロー情報記憶部270が格納される情報は実施例1と異なる。設定情報記憶部260及びフロー情報記憶部270が格納される情報は、図12及び図13を用いて説明する。   The information stored in the setting information storage unit 260 and the flow information storage unit 270 is different from that in the first embodiment. Information stored in the setting information storage unit 260 and the flow information storage unit 270 will be described with reference to FIGS.

受信部245は、NIF203から受信パケットデータを取得する。これによって、計算機100は、ネットワーク101から計算機100がパケットデータを受信できる。受信部245は、受信パケットデータを暗号化処理部247に転送する。   The receiving unit 245 acquires received packet data from the NIF 203. As a result, the computer 100 can receive packet data from the network 101. The receiving unit 245 transfers the received packet data to the encryption processing unit 247.

送信部246は、送信制御アルゴリズム選択部234、差分転送処理部236、データ圧縮処理部237、及び暗号化処理部247のいずれかから送信パケットデータを取得する。送信部246は、送信パケットデータをNIF203に転送する。これによって、計算機100がネットワーク101にパケットデータを送信できる。   The transmission unit 246 acquires transmission packet data from any one of the transmission control algorithm selection unit 234, the differential transfer processing unit 236, the data compression processing unit 237, and the encryption processing unit 247. The transmission unit 246 transfers transmission packet data to the NIF 203. As a result, the computer 100 can transmit packet data to the network 101.

差分転送処理部236は、送信制御アルゴリズム選択部234から受け取った送信パケットデータに対して差分符号化を行い、符号化された送信パケットデータを送信部246に転送する。差分符号処理では、差分転送処理部236は、IETF RFC3284に記載のアルゴリズムに基づいて、UDPペイロード370に対して差分符号化を行い、差分転送パケットデータを表す情報を設定したpacket_type371のデータを付加する。   The differential transfer processing unit 236 performs differential encoding on the transmission packet data received from the transmission control algorithm selection unit 234, and transfers the encoded transmission packet data to the transmission unit 246. In the differential encoding process, the differential transfer processing unit 236 performs differential encoding on the UDP payload 370 based on the algorithm described in IETF RFC3284, and adds the packet_type 371 data in which information indicating the differential transfer packet data is set. .

データ圧縮処理部237は、送信制御アルゴリズム選択部234から受け取った送信パケットデータを圧縮し、圧縮された送信パケットデータを送信部246に転送する。データ圧縮処理では、データ圧縮処理部237は、IETF RFC1951に記載のアルゴリズムに基づいて、UDPペイロード370を圧縮し、データ圧縮パケットデータを表す情報を設定したpacket_type371のデータを付加する。   The data compression processing unit 237 compresses the transmission packet data received from the transmission control algorithm selection unit 234 and transfers the compressed transmission packet data to the transmission unit 246. In the data compression processing, the data compression processing unit 237 compresses the UDP payload 370 based on the algorithm described in IETF RFC1951, and adds the packet_type 371 data in which information indicating the data compression packet data is set.

フロー情報処理部235は、暗号化処理部247から受け取った受信パケットデータの内容に応じて、差分転送パケットデータの差分復号処理、データ圧縮パケットデータの解凍処理、フロー情報記憶部270へのフロー情報700の書込処理等を実行する。フロー情報処理部235は、受信パケットデータをフック処理部220に転送する。   The flow information processing unit 235 performs differential decryption processing of differential transfer packet data, decompression processing of data compressed packet data, and flow information to the flow information storage unit 270 according to the contents of the received packet data received from the encryption processing unit 247. 700 writing processing or the like is executed. The flow information processing unit 235 transfers the received packet data to the hook processing unit 220.

受信パケットデータが制御情報パケットデータの場合、フロー情報処理部235は、受信パケットデータに含まれる制御情報をフロー情報700に設定することによって、対向装置が利用可能なデータ加工処理の種別をフロー情報記憶部270に記憶する点が実施例1と異なる。処理の詳細は、図13を用いて説明する。   When the received packet data is control information packet data, the flow information processing unit 235 sets the control information included in the received packet data in the flow information 700, thereby specifying the type of data processing that can be used by the opposite apparatus as flow information. The point of storing in the storage unit 270 is different from the first embodiment. Details of the processing will be described with reference to FIG.

暗号化処理部247は、IETF RFC4301に記載された暗号化及び復号化処理を実行する。暗号化処理部247は、送信制御アルゴリズム選択部234から受け取った送信パケットデータを暗号化し、送信部246に転送する。受信部245から受け取った受信パケットデータが暗号化パケットデータの場合、暗号化処理部247は、暗号化パケットデータを復号化した後、復号化された受信パケットデータをフロー情報処理部235に転送する。受信部245から受け取る受信パケットデータが暗号化パケットデータでない場合、暗号化処理部247は、受信パケットデータを変更せずにフロー情報処理部235に転送する。   The encryption processing unit 247 executes encryption and decryption processing described in IETF RFC4301. The encryption processing unit 247 encrypts the transmission packet data received from the transmission control algorithm selection unit 234 and transfers it to the transmission unit 246. When the received packet data received from the receiving unit 245 is encrypted packet data, the encryption processing unit 247 decrypts the encrypted packet data, and then transfers the decrypted received packet data to the flow information processing unit 235. . If the received packet data received from the receiving unit 245 is not encrypted packet data, the encryption processing unit 247 transfers the received packet data to the flow information processing unit 235 without changing the received packet data.

なお、受信パケットデータのprotocol322がESP(Encapsulating Security Payload)を表す「50」又はAH(Authentication Header)を表す「51」であるか否かを判定することによって、受信パケットデータが暗号化パケットデータであるか否かを判定できる。   By determining whether the protocol 322 of the received packet data is “50” indicating ESP (Encapsulating Security Payload) or “51” indicating AH (Authentication Header), the received packet data is encrypted packet data. It can be determined whether or not there is.

送信制御アルゴリズム選択部234は、設定情報記憶部260から読み出した設定情報及びフロー情報記憶部270から読み出したフロー情報700を用いて、データ加工処理を選択し、差分転送処理部236、データ圧縮処理部237、暗号化処理部247又は送信部246のいずれかに、フック処理部220から受け取った送信パケットデータを転送する。送信制御アルゴリズム選択部234は、処理の過程で、フロー情報700の生成及び更新を行い、フロー情報記憶部270にフロー情報700を書き込む。送信制御アルゴリズム選択部234は、制御情報を含む制御情報パケットデータを生成し、送信部246に転送することによって対向装置に自装置が利用可能なデータ加工処理の種別を通知する点が実施例1と異なる。処理の詳細は、図14を用いて説明する。   The transmission control algorithm selection unit 234 uses the setting information read from the setting information storage unit 260 and the flow information 700 read from the flow information storage unit 270 to select a data processing process, and performs a difference transfer processing unit 236 and a data compression process. The transmission packet data received from the hook processing unit 220 is transferred to any of the unit 237, the encryption processing unit 247, or the transmission unit 246. The transmission control algorithm selection unit 234 generates and updates the flow information 700 in the course of processing, and writes the flow information 700 in the flow information storage unit 270. The transmission control algorithm selection unit 234 generates control information packet data including control information, and forwards it to the transmission unit 246 to notify the opposite device of the type of data processing that can be used by the own device. And different. Details of the processing will be described with reference to FIG.

なお、差分転送処理部236、データ圧縮処理部237、及び暗号化処理部247が行うデータ加工処理以外のデータ加工処理を用いてもよい。また、送信制御アルゴリズム選択部234は、一つのパケットデータに対して二つ以上のデータ加工処理を適用してもよい。また、各データ加工処理部は、代理通信機能部230及び通信機能部240のどちらに含まれていてもよい。データ加工処理部の数は、図10に示す数に限定されず任意である。   Note that data processing other than the data processing performed by the differential transfer processing unit 236, the data compression processing unit 237, and the encryption processing unit 247 may be used. Also, the transmission control algorithm selection unit 234 may apply two or more data processing processes to one packet data. Each data processing unit may be included in either the proxy communication function unit 230 or the communication function unit 240. The number of data processing units is not limited to the number shown in FIG.

図11は、実施例2の設定情報記憶部260に格納される設定情報のデータ構造の一例を示す図である。   FIG. 11 is a diagram illustrating an example of a data structure of setting information stored in the setting information storage unit 260 according to the second embodiment.

設定情報は、自装置設定情報600及び複数の対向装置設定情報610を含む。   The setting information includes own device setting information 600 and a plurality of counter device setting information 610.

自装置設定情報600は、自装置が利用可能なデータ加工処理の種別を表し、enable_delta_encoding601、enable_compression602、及びenable_crypto603を含む。   The own device setting information 600 represents the type of data processing that can be used by the own device, and includes enable_delta_encoding 601, enable_compression 602, and enable_crypto 603.

enable_delta_encoding601は、自装置が差分転送機能を利用できるか否かを表す。enable_compression602は、自装置がデータ圧縮機能を利用できるか否かを表す。enable_crypto603は、自装置が暗号化機能を利用できるか否かを表す。   enable_delta_encoding 601 indicates whether or not the own apparatus can use the differential transfer function. enable_compression 602 indicates whether or not the device itself can use the data compression function. enable_cryptto 603 indicates whether or not the own apparatus can use the encryption function.

実施例2では、enable_delta_encoding601、enable_compression602、及びenable_crypto603には、それぞれ、利用可能であることを表す「1」、又は、利用不可であることを表す「0」のいずれかが設定される。   In the second embodiment, each of enable_delta_encoding 601, enable_compression 602, and enable_cryptto 603 is set to either “1” indicating that it can be used or “0” indicating that it cannot be used.

対向装置設定情報610は、ip_address611、prefix_length612、port613、vlan614、use_delta_encoding615、use_compression616、及びuse_crypto617を含む。   The opposing device setting information 610 includes ip_address 611, prefix_length 612, port 613, vlan 614, use_delta_encoding 615, use_compression 616, and use_crypto 617.

ip_address611、prefix_length612、port613及びvlan614の四つの情報は、通信フローが属する対向装置のネットワーク情報を表す。   The four pieces of information of ip_address 611, prefix_length 612, port 613, and vlan 614 represent network information of the opposite device to which the communication flow belongs.

例えば、ネットワークが「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 ip_address 611 has “192.168.255.0”, and the prefix_length 612 has “ 24, port 613 is set to “69”, and vlan 614 is set to “100”. To represent all networks, all ports, and no VLAN, set ip_address 611 to “0.0.0.0”, prefix_length 612 to “0”, port 613 to “any”, and vlan 614 to “0”. Is done.

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 information storage unit 270 according to the second embodiment.

フロー情報記憶部270は、通信フローごとにフロー情報700を格納する。フロー情報700は、フロー管理情報710及びフロー通信状態情報720を含む。   The flow information storage unit 270 stores flow information 700 for each communication flow. The flow information 700 includes flow management information 710 and flow communication state information 720.

フロー管理情報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_ip 711, dest_ip 712, src_port 713, dest_port 714, and vlan 715.

src_ip711、dest_ip712、及びvlan715は、src_ip511、dest_ip512、及びvlan515と同様のものである。src_port713は、自装置のUDPポート番号を表す。dest_port714は、対向装置のUDPポート番号を表す。   src_ip 711, dest_ip 712, and vlan 715 are the same as src_ip 511, dest_ip 512, and vlan 515. src_port 713 represents the UDP port number of the local apparatus. dest_port 714 represents the UDP port number of the opposite apparatus.

フロー通信状態情報720は、通信フローの状態を表す情報であり、already_sent721、available_delta_encoding722、available_compression723、available_crypto724、及びdata_cache725を含む。   The flow communication state information 720 is information indicating the state of the communication flow, and includes ready_sent 721, available_delta_encoding 722, available_compression 723, available_crypto 724, and data_cache 725.

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 available_delta_encoding 722 indicates whether or not the differential transfer function can be used. The available_compression 723 indicates whether or not the data compression function can be used. The available_crypto 724 indicates whether or not the encryption function can be used. data_cache 725 represents a data cache of a communication flow used in the differential transfer function.

実施例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 ready_sent 721. Each of available_delta_encoding 722, available_compression 723, and available_cryptto 724 is set to either “1” indicating availability or “0” indicating unusable. Further, when data_cache 725 is “0”, it indicates that the data cache is empty.

図13A及び図13Bは、実施例2のフロー情報処理部235が実行する処理を説明するフローチャートである。   13A and 13B are flowcharts for explaining processing executed by the flow information processing unit 235 according to the second embodiment.

フロー情報処理部235は、暗号化処理部247からの受信パケットデータの受信を契機に、処理を開始する(ステップS300)。フロー情報処理部235は、受信パケットデータを受信した後(ステップS301)、受信パケットデータのpacket_type371を参照して、パケット種別を特定する(ステップS302)。   The flow information processing unit 235 starts processing upon reception of the received packet data from the encryption processing unit 247 (step S300). After receiving the received packet data (step S301), the flow information processing unit 235 refers to the packet_type 371 of the received packet data and identifies the packet type (step S302).

ステップ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 information processing unit 235 transmits the flow information of the communication flow to which the received packet data belongs from the flow information storage unit 270. 700 is read (step S303).

具体的には、フロー情報処理部235は、src_ip711がDIP324に一致し、dest_ip712がSIP323に一致し、src_port713がdst.port332に一致し、dest_port714がsrc.port331に一致し、かつ、vlan715がVID318に一致するフロー情報700を読み出す。   Specifically, the flow information processing unit 235 determines that src_ip 711 matches DIP 324, dest_ip 712 matches SIP 323, and src_port 713 matches dst. match port 332 and dest_port 714 is src. The flow information 700 that matches the port 331 and the vlan 715 matches the VID 318 is read.

次に、フロー情報処理部235は、読み出したフロー情報700のdata_cache725を用いて、受信パケットデータのUDPペイロード370に対して差分復号処理を実行する(ステップS304)。また、フロー情報処理部235は、復号化された受信パケットデータをdata_cache725に追加することによってフロー情報700を更新する(ステップS305)。   Next, the flow information processing unit 235 performs differential decoding processing on the UDP payload 370 of the received packet data using the data_cache 725 of the read flow information 700 (step S304). Further, the flow information processing unit 235 updates the flow information 700 by adding the decrypted received packet data to the data_cache 725 (step S305).

次に、フロー情報処理部235は、更新されたフロー情報700をフロー情報記憶部270に格納し(ステップS306)、その後、受信パケットデータをフック処理部220に転送し(ステップS307)、処理を終了する(ステップS315)。   Next, the flow information processing unit 235 stores the updated flow information 700 in the flow information storage unit 270 (step S306), and then transfers the received packet data to the hook processing unit 220 (step S307). The process ends (step S315).

ステップ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 information processing unit 235 decompresses the UDP payload 370 of the received packet data to decompress the data before compression. Is restored (step S308).

次に、フロー情報処理部235は、受信パケットデータをフック処理部220に転送し(ステップS307)、処理を終了する(ステップS315)。   Next, the flow information processing unit 235 transfers the received packet data to the hook processing unit 220 (step S307) and ends the processing (step S315).

ステップ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 information processing unit 235 determines that the flow information 700 of the communication flow to which the received packet data belongs is a flow information storage unit. It is determined whether it is stored in 270 (step S309). Specifically, the following processing is executed.

フロー情報処理部235は、src_ip711がDIP324に一致し、dest_ip712がSIP323に一致し、src_port713がdst.port332に一致し、dest_port714がsrc.port331に一致し、かつ、vlan715がVID318に一致するフロー情報700が存在するか否かを判定する。   In the flow information processing unit 235, src_ip 711 matches DIP 324, dest_ip 712 matches SIP 323, and src_port 713 matches dst. match port 332 and dest_port 714 is src. It is determined whether or not there is flow information 700 that matches port 331 and vlan 715 matches VID 318.

前述した条件を満たすフロー情報700が存在する場合、フロー情報処理部235は、受信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていると判定する。以上がステップS309の処理の説明である。   When the flow information 700 that satisfies the above-described condition exists, the flow information processing unit 235 determines that the flow information 700 of the communication flow to which the received packet data belongs is stored in the flow information storage unit 270. The above is the description of the process in step S309.

ステップS309において、受信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていないと判定された場合(ステップS309:No)、フロー情報処理部235は、フロー情報700を新たに生成し(ステップS310)、ヘッダ情報に基づいて新たに生成されたフロー情報700に値を設定する(ステップS311)。   If it is determined in step S309 that the flow information 700 of the communication flow to which the received packet data belongs is not stored in the flow information storage unit 270 (step S309: No), the flow information processing unit 235 updates the flow information 700. (Step S310), and a value is set in the flow information 700 newly generated based on the header information (step S311).

具体的には、フロー情報処理部235は、DIP324をsrc_ip711に設定し、SIP323をdest_ip712に設定し、dst.port332をsrc_port713に設定し、src.port331をdest_port714に設定し、VID318をvlan715に設定する。   Specifically, the flow information processing unit 235 sets the DIP 324 to src_ip 711, sets the SIP 323 to dest_ip 712, and sets the dst. port 332 is set to src_port 713, and src. Port 331 is set to dest_port 714 and VID 318 is set to vlan 715.

次に、フロー情報処理部235は、生成したフロー情報700に制御情報を設定する(ステップS313)。   Next, the flow information processing unit 235 sets control information in the generated flow information 700 (step S313).

具体的には、フロー情報処理部235は、available_func372の下位から1ビット目をavailable_delta_encoding722に設定し、2ビット目をavailable_compression723に設定し、3ビット目をavailable_crypto724に設定する。なお、available_func372の下位から1ビット目が差分転送機能、2ビット目がデータ圧縮機能、3ビット目が暗号化機能を意味する。   Specifically, the flow information processing unit 235 sets the first bit from the lower order of the available_func 372 to the available_delta_encoding 722, sets the second bit to the available_compression 723, and sets the third bit to the available_crypto 724. The first bit from the available_func 372 means the differential transfer function, the second bit means the data compression function, and the third bit means the encryption function.

次に、フロー情報処理部235は、生成されたフロー情報700をフロー情報記憶部270に格納し(ステップS314)、処理を終了する(ステップS315)。   Next, the flow information processing unit 235 stores the generated flow information 700 in the flow information storage unit 270 (step S314), and ends the process (step S315).

ステップS309において、受信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていると判定された場合(ステップS309:Yes)、フロー情報処理部235は、フロー情報記憶部270から検索されたフロー情報700を読み出す(ステップS312)。その後、フロー情報処理部235は、読み出したフロー情報700に制御情報を設定する(ステップS313)。   When it is determined in step S309 that the flow information 700 of the communication flow to which the received packet data belongs is stored in the flow information storage unit 270 (step S309: Yes), the flow information processing unit 235 displays the flow information storage unit 270. The flow information 700 retrieved from is read out (step S312). Thereafter, the flow information processing unit 235 sets control information in the read flow information 700 (step S313).

次に、フロー情報処理部235は、更新されたフロー情報700をフロー情報記憶部270に格納し(ステップS314)、処理を終了する(ステップS315)。   Next, the flow information processing unit 235 stores the updated flow information 700 in the flow information storage unit 270 (step S314), and ends the process (step S315).

ステップ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 information processing unit 235 The data is transferred without change to the hook processing unit 220 (step S307), and the process is terminated (step S315).

図14A、図14B、及び図14Cは、実施例2の送信制御アルゴリズム選択部234が実行する処理を説明するフローチャートである。   14A, 14B, and 14C are flowcharts illustrating processing executed by the transmission control algorithm selection unit 234 according to the second embodiment.

送信制御アルゴリズム選択部234は、フック処理部220からの送信パケットデータの受信を契機に処理を開始する(ステップS400)。   The transmission control algorithm selection unit 234 starts processing upon reception of transmission packet data from the hook processing unit 220 (step S400).

送信制御アルゴリズム選択部234は、送信パケットデータを受信した後(ステップS401)、設定情報記憶部260から設定情報を読み出す(ステップS402)。   After receiving the transmission packet data (step S401), the transmission control algorithm selection unit 234 reads the setting information from the setting information storage unit 260 (step S402).

次に、送信制御アルゴリズム選択部234は、送信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されているか否かを判定する(ステップS403)。具体的には、以下の処理が実行される。   Next, the transmission control algorithm selection unit 234 determines whether or not the flow information 700 of the communication flow to which the transmission packet data belongs is stored in the flow information storage unit 270 (step S403). Specifically, the following processing is executed.

送信制御アルゴリズム選択部234は、src_ip711がSIP323に一致し、dest_ip712がDIP324に一致し、src_port713がsrc.port331に一致し、dest_port714がdst.port332に一致し、かつ、vlan715がVID318に一致するフロー情報700が存在するか否かを判定する。   The transmission control algorithm selection unit 234 determines that src_ip 711 matches SIP 323, dest_ip 712 matches DIP 324, and src_port 713 matches src. port 331, and dest_port 714 is dst. It is determined whether or not there is flow information 700 that matches port 332 and vlan 715 matches VID 318.

前述した条件を満たすフロー情報700が存在する場合は、送信制御アルゴリズム選択部234は、送信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていると判定する。以上がステップS403の処理の説明である。   When the flow information 700 that satisfies the above-described condition exists, the transmission control algorithm selection unit 234 determines that the flow information 700 of the communication flow to which the transmission packet data belongs is stored in the flow information storage unit 270. The above is the description of the process in step S403.

ステップS403において、送信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていないと判定された場合(ステップS403:No)、送信制御アルゴリズム選択部234は、フロー情報700を新たに生成し(ステップS404)、ヘッダ情報に基づいて新たに生成されたフロー情報700に値を設定する(ステップS405)。   If it is determined in step S403 that the flow information 700 of the communication flow to which the transmission packet data belongs is not stored in the flow information storage unit 270 (step S403: No), the transmission control algorithm selection unit 234 stores the flow information 700. A new value is generated (step S404), and a value is set in the newly generated flow information 700 based on the header information (step S405).

具体的には、送信制御アルゴリズム選択部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 algorithm selection unit 234 sets SIP 323 to src_ip 711, sets DIP 324 to dest_ip 712, and sets src. port 331 is set to src_port 713, and dst. port 332 is set to dest_port 714 and VID 318 is set to vlan 715. Also, “0” is set to each of available_delta_encoding 722, available_compression 723, available_crypto 724, and data_cache 725.

次に、送信制御アルゴリズム選択部234は、生成されたフロー情報700に制御情報パケットデータが送信されたことを示す情報を設定する(ステップS406)。具体的には、ステップS406において、送信制御アルゴリズム選択部234は、生成されたフロー情報700のalready_sent721を「1」に設定する。その後、送信制御アルゴリズム選択部234は、生成されたフロー情報700をフロー情報記憶部270に格納する(ステップS407)。   Next, the transmission control algorithm selection unit 234 sets information indicating that control information packet data has been transmitted to the generated flow information 700 (step S406). Specifically, in step S406, the transmission control algorithm selection unit 234 sets “already_sent” 721 of the generated flow information 700 to “1”. Thereafter, the transmission control algorithm selection unit 234 stores the generated flow information 700 in the flow information storage unit 270 (step S407).

次に、送信制御アルゴリズム選択部234は、制御情報パケットデータを生成する(ステップS408)。   Next, the transmission control algorithm selection unit 234 generates control information packet data (step S408).

具体的には、送信制御アルゴリズム選択部234は、packet_type371に制御情報パケットデータを表す「0」を設定し、available_func372の下位から1ビット目にenable_delta_encoding601を設定し、2ビット目にenable_compression602を設定し、3ビット目にenable_crypto603を設定することによって、制御情報パケットデータを生成する。   Specifically, the transmission control algorithm selection unit 234 sets “0” representing control information packet data in the packet_type 371, sets enable_delta_encoding 601 in the first bit from the lower bit of the available_func 372, and sets enable_compression 602 in the second bit. By setting enable_crypt 603 to the third bit, control information packet data is generated.

次に、送信制御アルゴリズム選択部234は、送信パケットデータ及び生成された制御情報パケットデータを送信部246に転送し(ステップS409)、処理を終了する(ステップS421)。   Next, the transmission control algorithm selection unit 234 transfers the transmission packet data and the generated control information packet data to the transmission unit 246 (step S409), and ends the process (step S421).

ステップS403において、送信パケットデータが属する通信フローのフロー情報700がフロー情報記憶部270に格納されていると判定された場合(ステップS403:Yes)、送信制御アルゴリズム選択部234は、フロー情報記憶部270から検索されたフロー情報700を読み出す(ステップS410)。   If it is determined in step S403 that the flow information 700 of the communication flow to which the transmission packet data belongs is stored in the flow information storage unit 270 (step S403: Yes), the transmission control algorithm selection unit 234 displays the flow information storage unit. The flow information 700 retrieved from 270 is read (step S410).

次に、送信制御アルゴリズム選択部234は、送信パケットデータが属する通信フローにおいて、制御情報パケットデータが送信済みであるか否かを判定する(ステップS411)。   Next, the transmission control algorithm selection unit 234 determines whether or not the control information packet data has been transmitted in the communication flow to which the transmission packet data belongs (step S411).

具体的には、送信制御アルゴリズム選択部234は、読み出したフロー情報700のalready_sent721が「1」であるか否かを判定する。already_sent721が「1」である場合は、送信制御アルゴリズム選択部234は、制御情報パケットデータが送信済みであると判定する。   Specifically, the transmission control algorithm selection unit 234 determines whether the ready_sent 721 of the read flow information 700 is “1”. When the ready_sent 721 is “1”, the transmission control algorithm selection unit 234 determines that the control information packet data has been transmitted.

ステップ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 algorithm selection unit 234 sets the ready_sent 721 of the read flow information 700 to “ By setting “1”, the flow information 700 is updated (step S406).

次に、送信制御アルゴリズム選択部234は、更新したフロー情報700をフロー情報記憶部270に格納する(ステップS407)。   Next, the transmission control algorithm selection unit 234 stores the updated flow information 700 in the flow information storage unit 270 (step S407).

次に、送信制御アルゴリズム選択部234は、制御情報パケットデータを生成する(ステップS408)。   Next, the transmission control algorithm selection unit 234 generates control information packet data (step S408).

次に、送信制御アルゴリズム選択部234は、送信パケットデータ及び生成された制御情報パケットデータを送信部246に転送し(ステップS409)、処理を終了する(ステップS421)。   Next, the transmission control algorithm selection unit 234 transfers the transmission packet data and the generated control information packet data to the transmission unit 246 (step S409), and ends the process (step S421).

ステップ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 algorithm selection unit 234 determines each of the flow information 700 and the setting information. It is determined whether or not differential transfer is enabled for (step S412). That is, it is determined whether or not the own device and the opposite device can use the differential transfer function. Specifically, the following processing is executed.

送信制御アルゴリズム選択部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 algorithm selection unit 234, the available_delta_encoding 722 of the read flow information 700 is “1”, and the value represented by the prefix_length 612 from the upper bits of the setting information matches between the DIP 324 and the ip_address 611, and dst. When port 332 matches port 613 and VID 318 matches vlan 614, use_delta_encoding 615 of opposite device setting information 610 is “1”, and it is determined that differential transfer is enabled for each of flow information 700 and setting information .

ただし、前述の条件を満たす対向装置設定情報610が存在しないときは、use_delta_encoding615は「0」として扱われる。以上がステップS412の処理の説明である。   However, when there is no opposing device setting information 610 that satisfies the above-described conditions, use_delta_encoding 615 is treated as “0”. The above is the description of the process in step S412.

ステップ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 flow information 700 and the setting information (step S412: Yes), the transmission control algorithm selection unit 234 transmits the transmission packet data and the read flow information 700. The data_cache 725 is transferred to the difference transfer processing unit 236 (step S413).

次に、送信制御アルゴリズム選択部234は、送信パケットデータのUDPペイロード370をdata_cache725に追加することによって、フロー情報700を更新する(ステップS414)。   Next, the transmission control algorithm selection unit 234 updates the flow information 700 by adding the UDP payload 370 of the transmission packet data to the data_cache 725 (step S414).

次に、送信制御アルゴリズム選択部234は、更新されたフロー情報700をフロー情報記憶部270に格納し(ステップS415)、処理を終了する(ステップS421)。   Next, the transmission control algorithm selection unit 234 stores the updated flow information 700 in the flow information storage unit 270 (step S415), and ends the process (step S421).

ステップS412において、フロー情報700及び設定情報のいずれかが差分転送が有効化されていないと判定された場合(ステップS412:No)、送信制御アルゴリズム選択部234は、フロー情報700及び設定情報のそれぞれについてデータ圧縮が有効化されているか否か判定する(ステップS416)。すなわち、自装置及び対向装置が、それぞれ、データ圧縮の機能を使用できるか否かが判定される。具体的には、以下の処理が実行される。   If it is determined in step S412, that either the flow information 700 or the setting information does not enable differential transfer (step S412: No), the transmission control algorithm selection unit 234 determines each of the flow information 700 and the setting information. It is determined whether or not data compression is enabled for (step S416). That is, it is determined whether or not the own device and the opposite device can use the data compression function. Specifically, the following processing is executed.

送信制御アルゴリズム選択部234は、読み出したフロー情報700のavailable_compression723が「1」であり、また、設定情報の上位ビットからprefix_length612が表す値分がDIP324とip_address611とで一致し、dst.port332がport613に一致し、かつ、VID318がvlan614に一致する対向装置設定情報610のuse_compression616が「1」であるとき、フロー情報700及び設定情報のそれぞれについてデータ圧縮が有効化されていると判定する。   In the transmission control algorithm selection unit 234, the available_compression 723 of the read flow information 700 is “1”, and the value represented by the prefix_length 612 from the upper bits of the setting information matches between the DIP 324 and the ip_address 611, and dst. When port 332 matches port 613 and VID 318 matches vlan 614, use_compression 616 of opposite device setting information 610 is “1”, and it is determined that data compression is enabled for each of flow information 700 and setting information. .

ただし、前述の条件を満たす対向装置設定情報610が存在しないときは、use_compression616は「0」として扱われる。以上がステップS416の処理の説明である。   However, when there is no opposing device setting information 610 that satisfies the above-described condition, the use_compression 616 is treated as “0”. The above is the description of the process in step S416.

ステップS416において、フロー情報700及び設定情報のそれぞれについてデータ圧縮が有効化されていると判定された場合(ステップS416:Yes)、送信制御アルゴリズム選択部234は、送信パケットデータをデータ圧縮処理部237に転送し(ステップS417)、処理を終了する(ステップS421)。   When it is determined in step S416 that data compression is enabled for each of the flow information 700 and the setting information (step S416: Yes), the transmission control algorithm selection unit 234 converts the transmission packet data into the data compression processing unit 237. (Step S417), and the process ends (step S421).

ステップS416において、フロー情報700及び設定情報のそれぞれについてデータ圧縮が有効化されていないと判定された場合(ステップS416:No)、送信制御アルゴリズム選択部234は、フロー情報700及び設定情報のそれぞれについて暗号化が有効化されているか否か判定する(ステップS418)。すなわち、自装置及び対向装置が、それぞれ、暗号化の機能を使用できるか否かが判定される。具体的には、以下の処理が実行される。   When it is determined in step S416 that data compression is not enabled for each of the flow information 700 and the setting information (step S416: No), the transmission control algorithm selection unit 234 determines each of the flow information 700 and the setting information. It is determined whether or not encryption is enabled (step S418). That is, it is determined whether the own device and the opposite device can use the encryption function. Specifically, the following processing is executed.

送信制御アルゴリズム選択部234は、読み出したフロー情報700のavailable_crypto724が「1」であり、また、設定情報の上位ビットからprefix_length612が表す値分がDIP324とip_address611とで一致し、dst.port332がport613に一致し、かつ、VID318がvlan614に一致する対向装置設定情報610のuse_crypto617が「1」であるとき、フロー情報700及び設定情報のそれぞれについて暗号化が有効化されていると判定する。   In the transmission control algorithm selection unit 234, the available_cryptto 724 of the read flow information 700 is “1”, and the value represented by the prefix_length 612 from the upper bits of the setting information matches between the DIP 324 and the ip_address 611, and dst. When port 332 matches port 613 and VID 318 matches vlan 614 and use_cryptto 617 of opposite device setting information 610 is “1”, it is determined that encryption is enabled for each of flow information 700 and setting information. .

ただし、前述の条件を満たす対向装置設定情報610が存在しないときは、use_crypto617は「0」として扱われる。以上がステップS418の処理の説明である。   However, when there is no opposing device setting information 610 that satisfies the above-described condition, use_crypto 617 is treated as “0”. The above is the description of the process in step S418.

ステップS418において、フロー情報700及び設定情報のそれぞれについて暗号化が有効化されていると判定された場合(ステップS418:Yes)、送信制御アルゴリズム選択部234は、送信パケットデータを暗号化処理部247に転送し(ステップS419)、処理を終了する(ステップS421)。   When it is determined in step S418 that encryption is enabled for each of the flow information 700 and the setting information (step S418: Yes), the transmission control algorithm selection unit 234 converts the transmission packet data into the encryption processing unit 247. (Step S419), and the process ends (step S421).

ステップS418において、フロー情報700及び設定情報のそれぞれについて暗号化が有効化されていないと判定された場合(ステップS418:No)、送信制御アルゴリズム選択部234は、送信パケットデータを送信部246に転送し(ステップS420)、処理を終了する(ステップS421)。   In step S418, when it is determined that encryption is not enabled for each of the flow information 700 and the setting information (step S418: No), the transmission control algorithm selection unit 234 transfers the transmission packet data to the transmission unit 246. (Step S420), and the process ends (Step S421).

実施例2によれば、フック処理部220が、通信処理部210と通信機能部240との間の処理に代理通信機能部230を割り込ませることによって、パケットデータをバッファすることなく、通信データの加工処理を適用することができる。これによって、リソースの消費量を抑えた動的な通信制御の変更を実現できる。また、実施例2では、通信処理部210を変更する必要がないため、開発コストの低減及び通信処理部210の管理者の負担等を低減することができる。   According to the second embodiment, the hook processing unit 220 interrupts the proxy communication function unit 230 in the processing between the communication processing unit 210 and the communication function unit 240, thereby buffering the packet data without buffering the packet data. Processing can be applied. Thus, dynamic communication control change with reduced resource consumption can be realized. In the second embodiment, since it is not necessary to change the communication processing unit 210, it is possible to reduce the development cost and the burden on the administrator of the communication processing unit 210.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。   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 Computer 101 Network 102 Relay Device 200 Arithmetic Device 201 Main Storage Device 202 Secondary Storage Device 203 NIF
204 System Bus 210 Communication Processing Unit 220 Hook Processing Unit 230 Proxy Communication Function Unit 231 Transmission Control Algorithm Selection Unit 232 Flow Information Processing Unit 233 Unique TCP Transmission Control Unit 234 Transmission Control Algorithm Selection Unit 235 Flow Information Processing Unit 236 Difference Transfer Processing Unit 237 Data compression processing unit 240 Communication function unit 241, 245 Reception unit 242, 246 Transmission unit 243 Loss-based TCP transmission control unit 244 Delay-based TCP transmission control unit 247 Encryption processing unit 250 Setting information input processing unit 260 Setting information storage unit 270 Flow information Storage unit 500, 700 Flow information 510, 710 Flow management information 520, 720 Flow communication state information 600 Self-device setting information 610 Counter-device setting information

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.
請求項1に記載の通信装置であって、
前記通信処理部及び前記代理通信機能部は、それぞれ、送信データに対して任意の通信制御を行う通信制御部を少なくとも一つ含み、
前記代理通信機能部は、前記送信データに適用する少なくとも一つ通信制御を選択するアルゴリズム選択部を含むことを特徴とする通信装置。
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.
請求項2に記載の通信装置であって、
前記通信処理部は、前記送信データに対して第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.
請求項3に記載の通信装置であって、
前記代理通信機能部は、
通信フローを管理するためのフロー情報を管理するフロー情報処理部を含み、
前記送信データに適用する通信制御部を選択する場合に使用する設定情報を管理し、
前記フック処理部は、
前記通信処理部が受信データを受信するための前記通信機能部の呼び出しを前記代理通信機能部の呼び出しに変更し、
前記代理通信機能部は、
前記通信機能部を呼び出して、前記通信機能部から前記受信データを取得し、
前記受信データを解析することによって、前記フロー情報を生成し、又は前記フロー情報を更新し、
前記アルゴリズム選択部は、前記フロー情報及び前記設定情報に基づいて、前記送信データに適用する通信制御部を選択することを特徴とする通信装置。
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.
請求項5に記載の通信制御方法であって、
前記通信処理部及び前記代理通信機能部は、それぞれ、前記送信データに対して任意の通信制御を行う通信制御部を少なくとも一つ含み、
前記第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.
請求項6に記載の通信制御方法であって、
前記通信処理部は、前記送信データに対して第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.
請求項7に記載の通信制御方法であって、
前記代理通信機能部は、
通信フローを管理するためのフロー情報を管理するフロー情報処理部を含み、
前記送信データに適用する通信制御部を選択する場合に使用する設定情報を管理し、
前記第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.
請求項9に記載のネットワークシステムであって、
前記通信処理部及び前記代理通信機能部は、それぞれ、送信データに対して任意の通信制御を行う通信制御部を少なくとも一つ含み、
前記代理通信機能部は、前記送信データに適用する少なくとも一つの通信制御を選択するアルゴリズム選択部を含むことを特徴とするネットワークシステム。
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.
請求項10に記載のネットワークシステムであって、
前記通信処理部は、前記送信データに対して第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.
請求項11に記載のネットワークシステムであって、
前記代理通信機能部は、
通信フローを管理するためのフロー情報を管理するフロー情報処理部を含み、
前記送信データに適用する通信制御部を選択する場合に使用する設定情報を管理し、
前記フック処理部は、
前記通信処理部が受信データを受信するための前記通信機能部の呼び出しを前記代理通信機能部の呼び出しに変更し、
前記代理通信機能部は、
前記通信機能部を呼び出して、前記通信機能部から前記受信データを取得し、
前記受信データを解析することによって、前記フロー情報を生成し、又は前記フロー情報を更新し、
前記アルゴリズム選択部は、前記フロー情報及び前記設定情報に基づいて、前記送信データに適用する通信制御部を選択することを特徴とするネットワークシステム。
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.
JP2016139065A 2016-07-14 2016-07-14 Communication device, communication control method, and network system Pending JP2018011207A (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021234936A1 (en) * 2020-05-22 2021-11-25 株式会社Tvt Data transmission device, program, and system

Cited By (1)

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