Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4740828B2 - Information processing apparatus and information processing system - Google Patents
[go: Go Back, main page]

JP4740828B2 - Information processing apparatus and information processing system - Google Patents

Information processing apparatus and information processing system Download PDF

Info

Publication number
JP4740828B2
JP4740828B2 JP2006317427A JP2006317427A JP4740828B2 JP 4740828 B2 JP4740828 B2 JP 4740828B2 JP 2006317427 A JP2006317427 A JP 2006317427A JP 2006317427 A JP2006317427 A JP 2006317427A JP 4740828 B2 JP4740828 B2 JP 4740828B2
Authority
JP
Japan
Prior art keywords
communication state
packet
matrix
unit
changed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006317427A
Other languages
Japanese (ja)
Other versions
JP2008131584A (en
JP2008131584A5 (en
Inventor
隆史 磯部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2006317427A priority Critical patent/JP4740828B2/en
Publication of JP2008131584A publication Critical patent/JP2008131584A/en
Publication of JP2008131584A5 publication Critical patent/JP2008131584A5/ja
Application granted granted Critical
Publication of JP4740828B2 publication Critical patent/JP4740828B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワークに接続され、前記ネットワークで転送されるパケットを処理する情報処理装置に関する。より具体的には、パケットを受信し、前記パケットを送受信している各ホスト間の通信状態に応じて異なる処理を実行し、装置内部に蓄積したデータの変更や、新たなパケットを生成し外部に送信することによって、データベース等のサーバサービスを提供する情報処理装置及び情報処理システムに関する。   The present invention relates to an information processing apparatus that is connected to a network and processes packets transferred through the network. More specifically, a packet is received, a different process is executed according to the communication state between the hosts that are transmitting and receiving the packet, data stored inside the apparatus is changed, a new packet is generated, and the external The present invention relates to an information processing apparatus and an information processing system that provide a server service such as a database.

放送通信融合とユビキタスコンピューティングの並行進展により、バックエンド/アクセス双方から求められる演算性能が急拡大しつつある。そのため、ユビキタスデバイス(例えば、Radio Frequency Identification(RFID)、センサ、カメラ等)を用いたサーバサービス(データベース(Data Base: DB)トランザクション、対異常通信防御等)を、エッジネットワークに分散配置したアプライアンスで実現し、サーバサービスの演算性能と応答速度を向上する必要がある。   With the parallel development of broadcasting / communication fusion and ubiquitous computing, the computing performance required from both the backend and access is rapidly expanding. Therefore, appliances that distribute server services (database (Data Base: DB) transactions, anti-abnormal communication protection, etc.) using ubiquitous devices (for example, Radio Frequency Identification (RFID), sensors, cameras, etc.) to the edge network are distributed. It is necessary to realize and improve the computing performance and response speed of the server service.

ここで言うアプライアンスは、対異常通信防御とデータベースの機能を実現する。   The appliance mentioned here realizes anti-abnormal communication protection and database functions.

対異常通信防御は、攻撃者からの異常パケットを探知・排除する。   Anti-abnormal communication defense detects and eliminates abnormal packets from attackers.

データベースは、分散配置された多数のRFID/据置センサ/映像センサ等のネットワーク端末から、大量に受信したデータ更新パケットをSQL解析し、キャッシュにデータを集約し、データをアップロードし、キャッシュデータをサーバに自動アップロードする。また、携帯端末等のクライアントからのデータ要求パケットのSQL解析と、キャッシュからのデータをXML翻訳してデータをダウンロードし、サーバデータのキャッシュを自動ダウンロードする。   The database analyzes a large amount of data update packets received from a large number of distributed network terminals such as RFID / stationary sensors / video sensors, aggregates the data in the cache, uploads the data, and stores the cache data in the server Automatically upload to. Also, SQL analysis of a data request packet from a client such as a mobile terminal, XML translation of the data from the cache, download of the data, and automatic download of the server data cache.

センサ/RFIDの利用方法は、ユーザ毎に異なる。また、通信パケットの内容は、センサ/RFIDの種類、使用アプリケーション、設置場所や、昼夜等の時間に応じて異なる。さらに、パケットを送受信する各端末間の通信状態は、TCPの輻輳/遷移状態、使用中のL7プロトコル、実行中のコマンド、コマンドの実行状態に応じて異なる。   The usage method of the sensor / RFID differs for each user. The contents of the communication packet differ depending on the type of sensor / RFID, the application used, the installation location, and the time such as day and night. Furthermore, the communication state between the terminals that transmit and receive packets varies depending on the TCP congestion / transition state, the L7 protocol in use, the command being executed, and the command execution state.

従って、本アプライアンスに求められる機能は、ユーザ/アプリケーション/場所/時間/実行状態毎に異なる。また、上記機能を搭載したアプライアンスは、小型サーバ又は通信装置内蔵ボードとして、演算処理の効率化のため、エッジネットワークに分散配置する必要がある。そのため、本アプライアンス向けのプロセッサには、小型省電力にてパケットを高速演算する性能とともに、各端末間の通信状態に基づいて、パケット毎に多彩な処理を実行できる柔軟性が要求される。   Therefore, the functions required for the appliance differ for each user / application / location / time / execution state. In addition, appliances equipped with the above functions need to be distributed and arranged in an edge network as a small server or a board with a built-in communication device in order to improve the efficiency of arithmetic processing. For this reason, a processor for the appliance is required to have a capability of performing various processing for each packet based on the communication state between the terminals in addition to the performance of high-speed packet calculation with small power saving.

従来、ネットワークに接続され、データベース等のサーバサービスを実現する装置に関しては、複数の汎用プロセッサをクラスタ接続した装置(例えば、非特許文献1、2参照。)が知られている。この装置では、処理要求を複数のプロセッサ間で分散させて、処理能力を高める手法が用いられている。   Conventionally, as a device connected to a network and realizing a server service such as a database, a device in which a plurality of general-purpose processors are connected in a cluster (for example, see Non-Patent Documents 1 and 2) is known. In this apparatus, a method of increasing processing capability by distributing processing requests among a plurality of processors is used.

また、FPGA等の再構成プロセッサを用いて、ネットワーク上でプロトコル処理を実現する装置が知られている。本装置は、処理内容を、低い頻度であれば変更することができる(例えば、非特許文献3参照。)。
Haran Boral、David J. DeWitt、「Processor allocation strategies for multiprocessor database machines」、ACM Transactions on Database Systems、1981年6月、Volume 6、Issue 2、p.227−254 Domenico Sacca、Gio Wiederhold、「Database partitioning in a cluster of processors」、ACM Transactions on Database Systems、Volume 10、Issue 1、p.29−56、1985年3月 Ilija Hadzic、J. M. Smith、「Balancing performance and flexibility with hardware support for network architectures」、ACM Transaction on Computer Systems、2003年11月、Volume 21、Issue 4、p.375−411
An apparatus that realizes protocol processing on a network using a reconfigurable processor such as an FPGA is known. This apparatus can change the processing content if the frequency is low (see, for example, Non-Patent Document 3).
Haran Boral, David J. DeWitt, “Processor allocation strategies for multiprocessor database machines”, ACM Transactions on Database Systems, June 1981, Volume 6, Issue 2, p. 227-254 Domenico Sacca, Gio Wiederhold, “Database partitioning in a cluster of processors”, ACM Transactions on Database Systems, Volume 10, Issue 1, p. 29-56, March 1985 Ilija Hadzic, JM Smith, “Balancing performance and flexibility with hardware support for network architectures”, ACM Transaction on Computer Systems, November 2003, Volume 21, Issue 4, p. 375-411

まず、従来の汎用プロセッサを使用して、データベース等のサーバサービスを実現する装置を、図18と図19を用いて説明する。   First, an apparatus for realizing a server service such as a database using a conventional general-purpose processor will be described with reference to FIGS.

従来の汎用プロセッサを用いた装置では、プロセッサ内部のキャッシュメモリにロードしたプログラムの命令1801の種類毎に、プロセッサ内部の演算器1802の機能が切り替わる(図18参照)。   In a conventional apparatus using a general-purpose processor, the function of the arithmetic unit 1802 in the processor is switched for each type of program instruction 1801 loaded in the cache memory in the processor (see FIG. 18).

演算器は、非常に多機能に造られており、複雑で多様な命令をこなすことができる反面、命令実行中に、回路搭載トランジスタの多くが未使用となるなど、回路利用率は低い。特に、データベーストランザクションでは、大容量データの入出力を伴って、メモリからロードしたデータに対して前後関係の制約がある比較処理を繰り返すため、分岐によるパイプライン初期化1803のペナルティにより演算器の利用率が低下しやすく、パフォーマンス向上が困難である。   The arithmetic unit is very multifunctional and can handle complicated and diverse instructions, but the circuit utilization rate is low, such as many of the circuit-mounted transistors are unused during instruction execution. In particular, in database transactions, comparison processing with constraints on the context of data loaded from memory is repeated with large-volume data input / output. The rate is likely to drop and it is difficult to improve performance.

また、従来の汎用プロセッサと通信回線の間の通信データは、図19に示すように、メモリ1905を経由して入出力される。通信回線1907からネットワークI/F(インターフェース)1906が受信したパケットは、PCIバス1904及びPCIブリッジ1903及び外部コントローラ1902を経由して、メモリ1905内のネットワークI/F用バッファ領域1909に蓄積される。   Further, communication data between a conventional general-purpose processor and a communication line is input / output via a memory 1905 as shown in FIG. Packets received by the network I / F (interface) 1906 from the communication line 1907 are accumulated in the network I / F buffer area 1909 in the memory 1905 via the PCI bus 1904, the PCI bridge 1903, and the external controller 1902. .

CPU1901は、この蓄積されたデータを逐一読み取って、必要な処理を実行し、新たに生成したパケットを、再びネットワークI/F用バッファ領域1909に蓄積する。ネットワークI/F1906は、新たな生成パケットを、ネットワークI/F用バッファ領域1909から読み出して通信回線1907に送信する。   The CPU 1901 reads the accumulated data one by one, executes necessary processing, and accumulates newly generated packets in the network I / F buffer area 1909 again. The network I / F 1906 reads a newly generated packet from the network I / F buffer area 1909 and transmits it to the communication line 1907.

従って、回線帯域の4倍に相当するメモリ帯域を消費することになる(1908)。   Therefore, a memory bandwidth corresponding to four times the line bandwidth is consumed (1908).

CPUとメモリ間では、通信データの入出力以外に、様々な演算データが入出力される。そのため、本方式では、メモリ帯域の空時間を待つためのCPUアイドル時間が増大し、演算性能が低下するという問題があった。   In addition to the input / output of communication data, various calculation data are input / output between the CPU and the memory. For this reason, in this method, there is a problem that the CPU idle time for waiting for a free time in the memory band increases and the calculation performance is lowered.

以上のような問題から、従来では、複数の汎用プロセッサをクラスタ接続して、処理要求を複数のプロセッサ間で分散させて、処理能力を高める手法が用いられている。その一方で、汎用プロセッサは、高い周波数で演算性能を稼ぐために消費電力が高くない、アプライアンスの省電力化が困難となる。また、膨大な量の発熱を廃熱するためのファンが必要となるため、装置の小型化が難しい、という問題があった。   Due to the above problems, conventionally, a technique is used in which a plurality of general-purpose processors are connected in a cluster, and processing requests are distributed among the plurality of processors to increase the processing capability. On the other hand, the general-purpose processor does not consume high power in order to obtain calculation performance at a high frequency, and it is difficult to save power in the appliance. Moreover, since a fan for waste heat generation of a huge amount of heat is required, there is a problem that it is difficult to downsize the apparatus.

さらに、従来のFPGA等の再構成プロセッサは、省電力で高い演算性能を実現するが、搭載論理の変更に必要な時間が長く、搭載論理を頻繁に変更することができない。そのため、従来では、処理内容の変更が少ない通信レイヤのプロトコル処理等、低レイヤの比較的簡単な処理を実行する装置に用いられていた。   Furthermore, a conventional reconfigurable processor such as an FPGA realizes high calculation performance with low power consumption, but it takes a long time to change the mounting logic, and the mounting logic cannot be changed frequently. Therefore, conventionally, it has been used for an apparatus that executes a relatively simple process in a low layer such as a protocol process in a communication layer with little change in processing content.

その一方で、従来の再構成プロセッサを、データベース等のアプリケーションレイヤのサーバサービスを提供するアプライアンスに使用する場合は、パケットを送受信している各ホスト間の通信状態(トランスポートレイヤの遷移/輻輳状態、使用しているアプリケーションレイヤプロトコルの種類、実行中のコマンドの種類、コマンドの実行状態(ファイルをどこまで送受信したか、等))に応じて、パケット毎に異なる処理を実行するために、搭載論理を頻繁に変更する必要がある。しかし、従来の再構成プロセッサでは、搭載論理を頻繁に変更することができないため、結局は、処理に必要な全ての論理を予め搭載することになる。   On the other hand, when using a conventional reconfigurable processor for an appliance that provides server services for application layers such as databases, the communication state between hosts that are sending and receiving packets (transition layer transition / congestion state) In order to execute different processing for each packet depending on the type of application layer protocol used, the type of command being executed, the execution status of the command (how far the file has been sent / received, etc.) Need to change frequently. However, in the conventional reconfigurable processor, the mounting logic cannot be changed frequently, and eventually all the logic necessary for the processing is mounted in advance.

そのため、回路規模や必要なチップ数が増大し、装置規模や消費電力が増加する、という問題があった。   Therefore, there is a problem that the circuit scale and the number of necessary chips increase, and the apparatus scale and power consumption increase.

一方、動的再構成プロセッサ(Dynamic Reconfigurable Processor: DRP)は、多数の小型演算器(Execution Element: EXE)をセレクタにより接続した演算マトリックスを備え、パイプライン処理によりASIC並みの高い演算性能を実現すると共に、EXEの演算方式や接続方法を最短1クロックで変更することで搭載論理を短時間で変更できる高い柔軟性を実現する。   On the other hand, the Dynamic Reconfigurable Processor (DRP) is equipped with an arithmetic matrix in which a large number of small execution units (Execution Elements: EXE) are connected by selectors, and realizes high arithmetic performance equivalent to ASIC by pipeline processing. At the same time, by changing the execution method and connection method of EXE with a minimum of one clock, a high flexibility that can change the mounting logic in a short time is realized.

DRPは、動作周波数を上昇させなくても、複数の演算器で単純な命令を一括して実行したり、複数の演算器を組み合わせて複雑な命令を実行したりするなど、演算マトリックスコアの演算並列度を高めることで、省電力にて高い演算性能を実現する。このため、DRPは、パケットを小型省電力にて高速演算する性能と、アルゴリズムを更新する柔軟性と、が同時に要求されるアプライアンス向けのプロセッサとして有望と考えられる。その一方で、ソフトウェア設計、回路の再構成の方法や、装置構成次第で、得られるプロセッサ性能が大きく異なる、という特徴を持つ。   DRP is a calculation matrix core operation that does not increase the operating frequency, such as executing simple instructions at once with multiple arithmetic units, or executing complex instructions by combining multiple arithmetic units. By increasing the degree of parallelism, high computing performance is achieved with low power consumption. For this reason, DRP is considered promising as a processor for appliances that simultaneously requires the performance of high-speed packet computation with small power savings and the flexibility to update algorithms. On the other hand, it has a feature that the obtained processor performance varies greatly depending on the software design, circuit reconfiguration method, and device configuration.

本動的再構成プロセッサを、データベース等のアプリケーションレイヤのサーバサービス向けの装置に使用する場合は、パケットを送受信している各ホスト間の通信状態(トランスポートレイヤプロトコルの遷移/輻輳状態、使用しているアプリケーションレイヤプロトコルの種類、実行中のコマンドの種類、コマンドの実行の進捗状態(ファイルをどこまで送受信したか、等))に応じて搭載論理を変更し、パケット毎に異なる処理を実行する必要がある。   When this dynamic reconfiguration processor is used in a device for application layer server services such as a database, the communication state (transition layer congestion / congestion state of the transport layer protocol) It is necessary to change the installed logic according to the type of application layer protocol being used, the type of command being executed, the progress of command execution (how far the file has been sent and received, etc.), and execute different processing for each packet. There is.

搭載論理の変更は、演算マトリックス内部の演算器群が生成する再構成トリガによって開始される。従って、再構成トリガの生成に必要な情報(受信したパケットを送受信している各ホスト間の通信状態)を、演算マトリックス外部にて予め生成しておき、演算マトリックスに直接入力することで、搭載論理の迅速な変更が可能になると考えられる。   The change of the mounting logic is started by a reconfiguration trigger generated by the arithmetic unit group inside the arithmetic matrix. Therefore, the information necessary for generating the reconfiguration trigger (communication status between each host transmitting and receiving received packets) is generated in advance outside the calculation matrix and directly input to the calculation matrix. It is thought that the logic can be changed quickly.

本発明は、従来の汎用プロセッサやFPGAを用いた装置の問題点(大型化・消費電力増大)を解決するために、メモリを経由しない通信データの直接入出力を用いた動的再構成プロセッサ搭載装置において、演算マトリックス外部にて予め生成したホスト間の通信状態に基づいて、動的再構成プロセッサ内の演算マトリックスの搭載論理を変更することで、高速演算性能と搭載論理の高速変更を両立し、データベース等のアプリケーションレイヤのサーバサービスを高性能で実現する小型で省電力な情報処理装置を提供することを目的とする。   The present invention is equipped with a dynamic reconfigurable processor that uses direct input / output of communication data not via a memory in order to solve the problems (upsizing and power consumption increase) of conventional general-purpose processors and devices using FPGA. In the device, both the high-speed calculation performance and the high-speed change of the mounted logic can be achieved by changing the mounting logic of the operating matrix in the dynamic reconfigurable processor based on the communication state between the hosts generated beforehand outside the operating matrix. An object of the present invention is to provide a small and power-saving information processing apparatus that realizes application layer server services such as databases with high performance.

本発明による一実施形態によると、ネットワークに接続され、前記ネットワークで転送されるパケットを受信し、前記パケットを送受信するホスト間の通信状態に応じた処理を実行する情報処理装置であって、前記パケットを送受信するインタフェースと、前記ホスト間のトランスポートレイヤプロトコルの遷移/輻輳状態と、アプリケーションレイヤプロトコルの種類と、前記アプリケーションレイヤプロトコルが実行中のコマンド及び前記コマンドの引数の種類と、前記コマンドの実行の進捗状態と、を含む通信状態を通信状態テーブルとして格納する通信状態格納部と、前記インタフェースと前記通信状態格納部とに接続され、前記通信状態格納部から前記通信状態を読み出し、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込み、前記変更された通信状態を出力する通信状態変更部と、前記通信状態変更部に接続され、複数の機能を備える演算器を備え、前記演算器群の互いの配線を可変することで搭載論理を変更し、前記通信状態変更部によって出力された通信状態に基づいて前記受信されたパケットを処理する演算マトリックスと、前記演算マトリックスに接続され、前記演算器の機能と互いの配線とを特定する構成情報を格納する回路構成蓄積バッファと、を備え、前記通信状態変更部は、前記インタフェースによって受信されたパケットに含まれる情報に基づいて、当該パケットを送受信する前記ホスト間の通信状態を前記通信状態格納部から読み出し、前記受信されたパケットに含まれる情報と前記読み出された通信状態の内容とに基づいて、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込むとともに、前記変更された通信状態を前記演算マトリックスに出力し、前記演算マトリックスは、前記通信状態変更部から出力された通信状態に基づいて、前記回路構成蓄積バッファから構成情報を一つ取得し、前記取得された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更して、前記受信されたパケットに前記通信状態に対応する処理を実行することを特徴とする。  According to an embodiment of the present invention, there is provided an information processing apparatus that is connected to a network, receives a packet transferred through the network, and executes processing according to a communication state between hosts that transmit and receive the packet, An interface for transmitting and receiving packets, a transition / congestion state of a transport layer protocol between the hosts, a type of an application layer protocol, a type of command being executed by the application layer protocol and a type of an argument of the command, A communication state storage unit that stores a communication state including a progress state of execution as a communication state table, and is connected to the interface and the communication state storage unit, reads the communication state from the communication state storage unit, and Change the communication status issued, and A communication state changing unit that writes a state in the communication state storage unit and outputs the changed communication state; and a computing unit that is connected to the communication state changing unit and has a plurality of functions. The wiring logic is changed to change the mounting logic, and an arithmetic matrix that processes the received packet based on the communication state output by the communication state changing unit, and is connected to the arithmetic matrix, A circuit configuration accumulation buffer for storing configuration information for specifying a function and mutual wiring, and the communication state changing unit transmits and receives the packet based on information included in the packet received by the interface The communication state between the hosts is read from the communication state storage unit, and the information included in the received packet and the read communication And changing the read communication state based on the contents of the state, writing the changed communication state to the communication state storage unit, and outputting the changed communication state to the arithmetic matrix, The calculation matrix acquires one piece of configuration information from the circuit configuration accumulation buffer based on the communication state output from the communication state change unit, and based on the acquired configuration information, the function of the arithmetic unit group The wiring is reconfigured, the mounting logic inside the operation matrix is changed, and the process corresponding to the communication state is executed on the received packet.

本発明によると、データベース等のアプリケーションレイヤのサーバサービスを、小型かつ省電力で高性能にて実現するために必要な、演算マトリックス搭載論理の高速再構成を実現する情報処理装置を提供できる。   According to the present invention, it is possible to provide an information processing apparatus that realizes a high-speed reconfiguration of an operation matrix-mounted logic, which is necessary for realizing a server service of an application layer such as a database with a small size, power saving, and high performance.

以下に、本発明の実施の形態について図面を参照して説明する。   Embodiments of the present invention will be described below with reference to the drawings.

図1は、本発明の実施の形態の装置200の構成ブロック図である。   FIG. 1 is a configuration block diagram of an apparatus 200 according to an embodiment of the present invention.

装置(情報処理装置)200は、動的再構成プロセッサ201と、外部コントローラ202と、メモリ205と、ネットワークI/F−i(i=1〜N)203(203−1〜203−N)と、通信回線接続部204(204−1〜204−N)と、スイッチ211とを含んで構成される。   The apparatus (information processing apparatus) 200 includes a dynamic reconfiguration processor 201, an external controller 202, a memory 205, a network I / F-i (i = 1 to N) 203 (203-1 to 203-N), and The communication line connection unit 204 (204-1 to 204-N) and the switch 211 are configured.

装置200はネットワークに接続されている。ネットワークI/F203は、ネットワークからパケット210(210−1〜210−N)を受信する。スイッチ211は、受信したパケットを、そのパケットの宛先等に基づいて、外部コントローラ202又は他のネットワークI/F203に転送する。また、スイッチ211は、外部コントローラ202からネットワークI/F203へと転送されたパケット209(209−1〜209−N)を、ネットワークI/F203を経由してネットワークに送信する。   The device 200 is connected to the network. The network I / F 203 receives the packet 210 (210-1 to 210-N) from the network. The switch 211 transfers the received packet to the external controller 202 or another network I / F 203 based on the destination of the packet. Further, the switch 211 transmits the packet 209 (209-1 to 209-N) transferred from the external controller 202 to the network I / F 203 to the network via the network I / F 203.

外部コントローラ202は、スイッチ211から送信されたパケットの内容に基づいて、装置200の通信状態を変更する。   The external controller 202 changes the communication state of the device 200 based on the content of the packet transmitted from the switch 211.

動的再構成プロセッサ201は、プロセッサ206と演算マトリックス207と内部コントローラ208とを含んで構成される。また、動的再構成プロセッサ201は、メモリ205に接続されている。動的再構成プロセッサ201は、外部コントローラ202の通信状態に基づいて演算マトリックス207の構成を変更し、変更された演算マトリックス207が、外部コントローラ202から送信されたパケットを処理する。   The dynamic reconfiguration processor 201 includes a processor 206, an operation matrix 207, and an internal controller 208. The dynamic reconfiguration processor 201 is connected to the memory 205. The dynamic reconfiguration processor 201 changes the configuration of the calculation matrix 207 based on the communication state of the external controller 202, and the changed calculation matrix 207 processes the packet transmitted from the external controller 202.

メモリ205は、動的再構成プロセッサ201が演算マトリックス207の構成を変更するために用いるデータを記憶する。また、メモリ205は、外部コントローラ202及び動的再構成プロセッサ201によって処理されるデータを格納することもできる。   The memory 205 stores data used by the dynamic reconfiguration processor 201 to change the configuration of the operation matrix 207. The memory 205 can also store data processed by the external controller 202 and the dynamic reconfiguration processor 201.

なお、図5で後述するように、装置200をサーバの前段に配置する場合又はサーバに内蔵する場合は、スイッチ211に直接サーバ504が接続される。このサーバ504を宛先とするパケットは、スイッチ211によって直接サーバ504に送信される。   As will be described later with reference to FIG. 5, when the apparatus 200 is arranged in the front stage of the server or built in the server, the server 504 is directly connected to the switch 211. A packet destined for the server 504 is directly transmitted to the server 504 by the switch 211.

図2は、装置200が備える動的再構成プロセッサ201の詳細な構成ブロック図である。   FIG. 2 is a detailed configuration block diagram of the dynamic reconfiguration processor 201 included in the apparatus 200.

動的再構成プロセッサ201は、回路構成蓄積バッファ101と、自律再構成機構109と、プロセッサ206と、演算マトリックス207と、内部コントローラ208とを含んで構成される。   The dynamic reconfiguration processor 201 includes a circuit configuration accumulation buffer 101, an autonomous reconfiguration mechanism 109, a processor 206, a calculation matrix 207, and an internal controller 208.

プロセッサ206は従来の汎用的なプロセッサであり、装置200で実行されるべき処理を実行するほか、演算マトリックス207の再構成に関わる処理も実行する。   The processor 206 is a conventional general-purpose processor that executes processing to be executed by the apparatus 200 and also executes processing related to reconfiguration of the operation matrix 207.

演算マトリクス207は、機能と互いの配線が可変である小型演算器を複数搭載しており、回路構成蓄積バッファ101に予め記憶されている回路構成を読み込むことによって、演算マトリクス内部の回路構成が変更できる。自律再構成機構109は、演算マトリクス207からの要求に基づいて、回路構成蓄積バッファ207に記憶されている回路構成を取得して演算マトリクス207に送る。   The arithmetic matrix 207 is equipped with a plurality of small arithmetic units whose functions and wirings are variable, and the circuit configuration inside the arithmetic matrix is changed by reading the circuit configuration stored in the circuit configuration storage buffer 101 in advance. it can. The autonomous reconfiguration mechanism 109 acquires the circuit configuration stored in the circuit configuration storage buffer 207 based on the request from the calculation matrix 207 and sends it to the calculation matrix 207.

内部コントローラ208は、プロセッサ206又は演算マトリクス207と各インターフェースとを接続するバススイッチ301を備える。バススイッチ301には、PCIバス接続用のPCI I/F302と、外部メモリアクセス用のDRAM I/F303と、DMA転送用のDMAコントローラ304と、その他インターフェースと接続するためのその他I/F305とを含んで構成される。   The internal controller 208 includes a bus switch 301 that connects the processor 206 or the operation matrix 207 to each interface. The bus switch 301 includes a PCI I / F 302 for PCI bus connection, a DRAM I / F 303 for external memory access, a DMA controller 304 for DMA transfer, and another I / F 305 for connecting to other interfaces. Consists of including.

図3は、動的再構成プロセッサ201の演算マトリックス207の搭載論理の変更を示す説明図である。   FIG. 3 is an explanatory diagram showing a change in the mounting logic of the operation matrix 207 of the dynamic reconfiguration processor 201.

演算マトリックス207は、機能と互いの配線が可変である小型演算器を多数搭載しており、回路構成蓄積バッファ101に記憶されている回路構成を読み込むことによって、その小型演算機毎の機能と配線とを再構成することにより、搭載論理を変更する。   The arithmetic matrix 207 is equipped with a large number of small arithmetic units whose functions and wirings are variable, and by reading the circuit configuration stored in the circuit configuration storage buffer 101, the function and wiring for each small arithmetic unit are read. And the mounting logic is changed.

図3の例では、処理内容(401〜403)が時間の推移と共に変更し、この処理内容の変更に伴って、演算マトリックス207の搭載論理(404〜406)が変更される。   In the example of FIG. 3, the processing contents (401 to 403) change with time, and the mounting logic (404 to 406) of the calculation matrix 207 is changed with the change of the processing contents.

例えば、処理内容がTCP制御401である場合は、演算マトリックス207は、小型演算器の機能を加算器や乗算器等に変更し、これらの演算器の配線を再構成して、TCP制御の処理に適した搭載論理404に変更する。処理内容がTCP制御401からデータ返信402に変更された場合は、同様に、データ返信の処理に適した搭載論理405に変更する。以降も同様に、処理内容に適した搭載論理に変更する、
このように、演算マトリックス207は、処理内容に適した搭載論理に変更することによって、並列演算による高速演算性能と、搭載論理を短時間で変更できる高い柔軟性を実現する。
For example, when the processing content is TCP control 401, the arithmetic matrix 207 changes the function of the small arithmetic unit to an adder, a multiplier, etc., reconfigures the wiring of these arithmetic units, and performs the TCP control processing. It changes to the mounting logic 404 suitable for. When the processing content is changed from the TCP control 401 to the data reply 402, the processing logic is similarly changed to the mounting logic 405 suitable for the data reply process. In the same way, change to the mounting logic suitable for the processing contents.
In this way, the operation matrix 207 realizes high-speed operation performance by parallel operation and high flexibility that can change the mounted logic in a short time by changing to the mounted logic suitable for the processing content.

図4は、装置200を備える情報処理システムの一例の説明図である。   FIG. 4 is an explanatory diagram of an example of an information processing system including the device 200.

装置200は、アクセスネットワーク501とバックエンドシステム503との間のエッジネットワーク502に配置される。   Device 200 is located in edge network 502 between access network 501 and backend system 503.

バックエンドシステム503は、サーバ504及びストレージシステム505が配置されている。ストレージシステム505は、サーバ504が処理するデータを蓄積する(522)。   In the back-end system 503, a server 504 and a storage system 505 are arranged. The storage system 505 stores data to be processed by the server 504 (522).

アクセスネットワーク501は、RFID、据置センサ、映像センサ、携帯端末等を含む。また、サーバ504が想定していない不正なアクセスを送信する攻撃者が含まれる場合がある。   The access network 501 includes an RFID, a stationary sensor, a video sensor, a mobile terminal, and the like. In addition, an attacker who transmits unauthorized access that the server 504 does not expect may be included.

装置200は、アクセスネットワーク501のRFID、据置センサ又は映像センサからデータ更新パケット(508、509、510)を受信すると、受信したパケットに含まれているSQLコマンド等に基づいて装置200内部に蓄積されているデータを更新する。また、受信したパケットに含まれているHTTP/XML等の形式に基づいて、更新結果の通知及びアクション指示パケット(511、512、513)を返信する。   Upon receiving the data update packet (508, 509, 510) from the RFID, stationary sensor, or video sensor of the access network 501, the apparatus 200 stores the data update packet (508, 509, 510) in the apparatus 200 based on the SQL command included in the received packet. Update data. Further, based on the format such as HTTP / XML included in the received packet, an update result notification and an action instruction packet (511, 512, 513) are returned.

また、アクセスネットワーク501の携帯端末からデータ要求パケット514を受信すると、受信したパケットに含まれるコマンド(SQLコマンド等)に基づいて装置内部に蓄積したデータを検索し、受信したパケットに含まれるHTTP/XML等の形式に基づいて、検索されたデータを要求データ返信パケット515として返信する。   In addition, when the data request packet 514 is received from the mobile terminal of the access network 501, the data stored in the apparatus is searched based on a command (SQL command or the like) included in the received packet, and the HTTP / The retrieved data is returned as a request data reply packet 515 based on a format such as XML.

また、攻撃者による異常パケット516を受信すると、異常通信と判定して、サーバ504に送信することなく(517)、異常パケットを廃棄する(507)。   When the abnormal packet 516 by the attacker is received, it is determined that the communication is abnormal, and the abnormal packet is discarded (507) without being transmitted to the server 504 (517).

また、装置200内部に蓄積されたデータは、サーバへのアップロード(518、520)又はサーバからのダウンロード(519、521)を実行し、装置200内部の蓄積データを常に最新の状態に保つ。   The data stored in the apparatus 200 is uploaded to the server (518, 520) or downloaded from the server (519, 521), and the stored data in the apparatus 200 is always kept up-to-date.

図5は、装置200を備える情報処理システムの他の例の説明図である。   FIG. 5 is an explanatory diagram of another example of the information processing system including the apparatus 200.

前述の図4では、装置200は、エッジネットワーク502に配置されていたが、本例では、装置200は、バックエンドシステム603内のサーバ504の前段に配置される。なお、サーバ504に装置200を内蔵してもよい。サーバ504に装置200を内蔵する場合は、装置200のスイッチ211にサーバ212が直接接続される。   In FIG. 4 described above, the device 200 is arranged in the edge network 502. However, in this example, the device 200 is arranged in front of the server 504 in the back-end system 603. Note that the apparatus 200 may be built in the server 504. When the device 200 is built in the server 504, the server 212 is directly connected to the switch 211 of the device 200.

なお、図5のように構成しても、装置200の処理は図4で説明した処理と同じである。   Even when configured as shown in FIG. 5, the processing of the apparatus 200 is the same as the processing described in FIG.

次に、装置200の動的再構成プロセッサ201と外部コントローラ202とメモリ205の動作について説明する。   Next, operations of the dynamic reconfiguration processor 201, the external controller 202, and the memory 205 of the apparatus 200 will be described.

図6は、動的再構成プロセッサ201と外部コントローラ202とメモリ205の詳細な構成ブロック図である。   FIG. 6 is a detailed block diagram of the dynamic reconfiguration processor 201, the external controller 202, and the memory 205.

外部コントローラ202は、処理パケット判定部106と、通信状態制御部104と、タイマ160と、フィルタ部124と、タイミング調整部105と、通信状態分類部103と、遅延調整部118と、集約部128とを含んで構成される。   The external controller 202 includes a processing packet determination unit 106, a communication state control unit 104, a timer 160, a filter unit 124, a timing adjustment unit 105, a communication state classification unit 103, a delay adjustment unit 118, and an aggregation unit 128. It is comprised including.

処理パケット判定部106は、受信パケットが処理すべきパケットか否かを判定する。通信状態制御部104は、ネットワーク間で送受信されるパケットによって現在の通信状態を蓄積又は更新する。タイマ160は、現在時刻を生成する。フィルタ部124は、異常パケットと判定されたパケットを廃棄する。タイミング調整部105は、更新された通信状態とパケットとを動的再構成プロセッサ207に送るタイミングを調整する。通信状態分類部103は、通信状態を分類する。遅延調整部118は、通信状態の分類結果や演算マトリックス207からの再構成終了通知に基づいて通信状態とパケットとに発生させる遅延を調整する。集約部128は、パケットを集約して出力する。   The processing packet determination unit 106 determines whether the received packet is a packet to be processed. The communication state control unit 104 accumulates or updates the current communication state with packets transmitted and received between networks. The timer 160 generates the current time. The filter unit 124 discards the packet determined to be an abnormal packet. The timing adjustment unit 105 adjusts the timing for sending the updated communication state and packet to the dynamic reconfiguration processor 207. The communication state classification unit 103 classifies the communication state. The delay adjustment unit 118 adjusts the delay generated in the communication state and the packet based on the communication state classification result and the reconfiguration completion notification from the operation matrix 207. The aggregation unit 128 aggregates and outputs the packets.

通信状態制御部104は、通信状態を格納する通信状態格納部に格納された通信状態テーブル126と、通信状態を読み出し又は変更する通信状態変更部125とを含んで構成される。   The communication state control unit 104 includes a communication state table 126 stored in a communication state storage unit that stores a communication state, and a communication state change unit 125 that reads or changes the communication state.

タイミング調整部105は、変更済の通信状態を一時的に蓄積しておく通信状態バッファ121と、パケットを一時的に蓄積しておくパケットバッファ122と、パケット毎に処理が不要なパケットか否かを判定し、処理が必要と判定したときに通信状態を読み出す通信状態読み出し判定部123とを含んで構成される。   The timing adjustment unit 105 includes a communication state buffer 121 that temporarily stores a changed communication state, a packet buffer 122 that temporarily stores a packet, and whether or not a packet does not require processing for each packet. And a communication state reading determination unit 123 that reads the communication state when it is determined that processing is necessary.

通信状態分類部103は、通信状態を分類する通信状態判定部119と、パケットを分類するパケット判定部120とを含んで構成される。   The communication state classification unit 103 includes a communication state determination unit 119 that classifies communication states and a packet determination unit 120 that classifies packets.

動的再構成プロセッサ201は、プロセッサ206と、演算マトリックス207と、内部コントローラ208と、回路構成蓄積バッファ101と、自律再構成機構109とを含んで構成される。   The dynamic reconfiguration processor 201 includes a processor 206, an operation matrix 207, an internal controller 208, a circuit configuration accumulation buffer 101, and an autonomous reconfiguration mechanism 109.

回路構成蓄積バッファ101は、演算マトリクス207を再構成するための複数の構成情報108(108−1〜108−3)を蓄積する。自律再構成機構109は、演算マトリックス207によって生成された再構成トリガに基づいて、回路構成蓄積バッファ101から構成情報108(108−1〜108−3)を選択し、選択された構成情報108を演算マトリックス207に転送する。   The circuit configuration storage buffer 101 stores a plurality of pieces of configuration information 108 (108-1 to 108-3) for reconfiguring the calculation matrix 207. The autonomous reconfiguration mechanism 109 selects the configuration information 108 (108-1 to 108-3) from the circuit configuration accumulation buffer 101 based on the reconfiguration trigger generated by the arithmetic matrix 207, and the selected configuration information 108 is stored in the selected configuration information 108. Transfer to the operation matrix 207.

メモリ205は、回路構成蓄積領域117と、ポインタ領域157とを記憶する。   The memory 205 stores a circuit configuration accumulation area 117 and a pointer area 157.

回路構成蓄積領域117は、回路構成蓄積バッファ101に蓄積しきれない構成情報を記録する。ポインタ領域157は、回路構成蓄積領域117内の構成情報へのアドレスポインタを記録する。   The circuit configuration storage area 117 records configuration information that cannot be stored in the circuit configuration storage buffer 101. The pointer area 157 records an address pointer to the configuration information in the circuit configuration storage area 117.

プロセッサ206は、回路構成変更モジュール116を実行している。回路構成変更モジュール116は、演算マトリックス207によって生成された再構成トリガに基づいて回路構成蓄積領域117から構成情報を読み出して、読み出した構成情報を回路構成蓄積バッファ101に書き込む。そして、当該構成情報を演算マトリックス207に転送する。   The processor 206 executes the circuit configuration change module 116. The circuit configuration change module 116 reads the configuration information from the circuit configuration storage area 117 based on the reconfiguration trigger generated by the calculation matrix 207 and writes the read configuration information in the circuit configuration storage buffer 101. Then, the configuration information is transferred to the calculation matrix 207.

演算マトリックス207は、自律再構成トリガ生成用演算器群111と、外部再構成トリガ生成用演算器群112と、サーバサービス提供用演算器群113と、バッファ読み出し判定用演算器群114とを含んで構成される。ただし、再構成によって含まれる演算器群の構成を、所定の条件(例えば、時間)によって変更してもよい。例えば、自律再構成トリガ生成用演算器群111と、外部再構成トリガ生成用演算器群112とを含んで構成される時間帯と、サーバサービス提供用演算器群113と、バッファ読み出し判定用演算器群114とを含んで構成される時間帯とを分でもよい。   The arithmetic matrix 207 includes an autonomous reconfiguration trigger generating arithmetic unit group 111, an external reconfiguration trigger generating arithmetic unit group 112, a server service providing arithmetic unit group 113, and a buffer read determining arithmetic unit group 114. Consists of. However, the configuration of the computing unit group included by the reconfiguration may be changed according to a predetermined condition (for example, time). For example, a time zone configured to include an autonomous reconfiguration trigger generation computing unit 111 and an external reconstruction trigger generation computing unit 112, a server service providing computing unit 113, and a buffer read determination calculation The time zone including the instrument group 114 may be minutes.

自律再構成トリガ生成用演算器群111は、通信状態の分類結果に基づいて、自律再構成機構109に再構成トリガ142を出力する。外部再構成トリガ生成用演算器群112は、通信状態の分類結果に基づいて、回路構成変更モジュール116に再構成トリガ141を出力する。サーバサービス提供用演算器群113は、通信状態とパケットとに基づいて、メモリ205に蓄積したデータの変更や、新たなパケットの生成、外部送信を実行する。バッファ読み出し判定用演算器群114は、サーバサービス提供用演算器群113が新たに生成したパケットを全て送信したか否かを判定して、全て送信済みと判定した場合に、バッファ読み出し命令139をタイミング調整部105に出力する。   The autonomous reconfiguration trigger generation computing unit 111 outputs a reconfiguration trigger 142 to the autonomous reconfiguration mechanism 109 based on the communication state classification result. The external reconfiguration trigger generation computing unit group 112 outputs the reconfiguration trigger 141 to the circuit configuration change module 116 based on the communication state classification result. Based on the communication state and the packet, the server service providing computing unit group 113 changes the data stored in the memory 205, generates a new packet, and externally transmits the packet. The buffer read determination computing unit group 114 determines whether or not all the packets newly generated by the server service providing computing unit group 113 have been transmitted. The data is output to the timing adjustment unit 105.

なお、回路構成蓄積バッファ101は、演算マトリックス207によって使用される頻度が高い構成情報108を優先して蓄積する。一方、使用される頻度が低い構成情報108は、メモリ205の回路構成蓄積領域117に記憶される。自律再構成トリガ生成用演算器群111及び外部再構成トリガ生成用演算器群112は、再構成トリガを生成する回路構成が回路構成蓄積バッファ101に蓄積されているかメモリ202に記憶されているかを予め知っており、該当する再構成トリガ生成のタイミングで、自律再構成トリガ生成用演算器群111又は外部再構成トリガ生成用演算器群112のいずれかが再構成トリガを生成する。   The circuit configuration storage buffer 101 preferentially stores configuration information 108 that is frequently used by the operation matrix 207. On the other hand, the configuration information 108 that is used less frequently is stored in the circuit configuration storage area 117 of the memory 205. The autonomous reconfiguration trigger generating arithmetic unit group 111 and the external reconfiguration trigger generating arithmetic unit group 112 indicate whether the circuit configuration for generating the reconfiguration trigger is stored in the circuit configuration storage buffer 101 or stored in the memory 202. Either the autonomous reconfiguration trigger generation computing unit 111 or the external reconfiguration trigger generation computing unit 112 knows in advance and generates a reconfiguration trigger at the corresponding reconstruction trigger generation timing.

以下、各部の動作を詳細に説明する。   Hereinafter, the operation of each unit will be described in detail.

処理パケット判定部106は、外部からパケットを受信すると(130)、パケットヘッダ(P.H.716、図7参照)を参照して、処理すべきパケットか否かを判定する。処理すべきパケットであると判定した場合は、受信パケットを通信状態変更部125及びフィルタ部124に出力する(131)。処理が不要なパケットである場合は、集約部128に出力する(148)。   When receiving a packet from the outside (130), the processing packet determination unit 106 refers to the packet header (P.H. 716, see FIG. 7) and determines whether the packet is to be processed. If it is determined that the packet is to be processed, the received packet is output to the communication state changing unit 125 and the filter unit 124 (131). If the packet does not need to be processed, it is output to the aggregation unit 128 (148).

図7は、処理パケット判定部106が外部から受信するパケットのフォーマットの一例の説明図である。   FIG. 7 is an explanatory diagram showing an example of a format of a packet received by the processing packet determination unit 106 from the outside.

パケット130は、InLine701と、OutLine702と、SMAC703と、DMAC704と、Proto705と、SIP706と、DIP707と、Sport708と、Dport709と、TCP Flag710と、PSEQ711と、PACK712と、OtherHeader713と、各種コマンド714と、Payload715とを含んで構成される。なお、本実施形態では、SIP706と、DIP707と、Sport708と、Dport709とを、P.H.(Packet Header)716と表現する。   The packet 130 includes an InLine 701, an OutLine 702, an SMAC 703, a DMAC 704, a Proto 705, a SIP 706, a DIP 707, a Sport 708, a Dport 709, a TCP Flag 710, a PSEQ 711, a PACK 712, a Various Header 713, an Other Header 714, It is comprised including. In this embodiment, SIP 706, DIP 707, Sport 708, and Dport 709 are designated as P.P. H. (Packet Header) 716.

InLine701は、パケットが入力された回線(ネットワークI/F)の識別番号である入力回線番号を格納する。OutLine702は、パケットを出力する回線(ネットワークI/F)の識別番号である出力回線番号を格納する。SMAC703は、データリンク層の送信元アドレスである送信元MACアドレスを格納する。DMAC704は、宛先アドレスである宛先MACアドレスを格納する。Proto705は、ネットワーク層のプロトコルを格納する。SIP706は、送信元アドレス、すなわち、送信側のホストのアドレスである送信元IPアドレスを格納する。DIP707は、宛先アドレス、すなわち、受信側のホストのアドレスである宛先IPアドレスを格納する。SPORT708は、TCPの送信元ポートを格納する。DPORT709は、TCPの宛先ポートを格納する。TCP Flag710はTCPフラグを格納する。PSEQ711は、送信シーケンス番号(SEQ番号)を格納する。PACK712は、受信シーケンス番号(ACK番号)を格納する。OtherHeader713は、その他のIP/TCPヘッダデータを格納する。各種コマンド714は、アプリケーションレイヤ(アプリケーション層)のコマンドを格納する。Payload715は、パケットヘッダや各種コマンド以外のデータを格納する。   InLine 701 stores an input line number that is an identification number of a line (network I / F) to which a packet is input. OutLine 702 stores an output line number that is an identification number of a line (network I / F) that outputs a packet. The SMAC 703 stores a source MAC address that is a source address of the data link layer. The DMAC 704 stores a destination MAC address that is a destination address. The Proto 705 stores a network layer protocol. The SIP 706 stores a transmission source address, that is, a transmission source IP address that is the address of the host on the transmission side. The DIP 707 stores a destination address, that is, a destination IP address that is an address of a host on the receiving side. The SPORT 708 stores a TCP transmission source port. The DPORT 709 stores a TCP destination port. The TCP Flag 710 stores a TCP flag. The PSEQ 711 stores a transmission sequence number (SEQ number). The PACK 712 stores a reception sequence number (ACK number). The OtherHeader 713 stores other IP / TCP header data. Various commands 714 store application layer (application layer) commands. The Payload 715 stores data other than the packet header and various commands.

通信状態変更部125は、処理パケット判定部106からパケットを入力されると、受信パケットのP.H.716に基づいて、通信状態テーブル126を参照して、対応する通信状態が存在するか否かを判定する。対応する通信状態があれば、これを読み出して変更を行う。対応する通信状態がなければ、通信状態テーブルに新たなエントリを作成する。   When the packet is input from the processing packet determining unit 106, the communication state changing unit 125 receives the P.P. H. Based on 716, the communication status table 126 is referenced to determine whether a corresponding communication status exists. If there is a corresponding communication state, it is read and changed. If there is no corresponding communication state, a new entry is created in the communication state table.

図8Aは、通信状態テーブル126の一例の説明図である。   FIG. 8A is an explanatory diagram of an example of the communication state table 126.

通信状態テーブル126は、n個のエントリ801(801−1〜801−n)を含む。   The communication state table 126 includes n entries 801 (801-1 to 801-n).

エントリ801は、SIP802と、DIP803と、SPORT804と、DPORT805と、TSEQ806と、TACK807と、WIN808と、SWIN809と、TIME810と、STATE811と、ID812と、ADD813と、を含む。   The entry 801 includes SIP 802, DIP 803, SPORT 804, DPORT 805, TSEQ 806, TACK 807, WIN 808, SWIN 809, TIME 810, STATE 811, ID 812, and ADD 813.

SIP802は、送信元アドレス、すなわち、送信側のホストのアドレスである送信元IPアドレスを記録する。DIP803は、宛先アドレス、すなわち、受信側のホストのアドレスである宛先IPアドレスを記録する。SPORT804は、TCPの送信元ポートを記録する。DPORT805は、TCPの宛先ポートを記録する。TSEQ806は、受信側ホストのシーケンス番号を記録する。TACK807は、送信側ホストのシーケンス番号を記録する。WIN808は、TCPコネクションの輻輳ウィンドウサイズを記録する。SWIN809は、送信済みデータサイズを表す送信済みウィンドウサイズを記録する。TIME810は、エントリに係るパケットを受信した最新の時刻を記録する。STATE811は、TCPコネクションの状態や、アプリケーションレイヤプロトコルの有無とその種類、コマンド及び引数等を格納する。ID812は、送信済みパケットのID番号を記録する。ADD813は、ACK受信済みデータの最後尾が格納されているメモリ205のアドレスポインタを記録する。なお、本実施形態では、SIP802と、DIP803と、SPORT804と、DPORT805とをまとめて、T.H.(Table Header)814と表現する。   The SIP 802 records a transmission source address, that is, a transmission source IP address that is an address of a transmission-side host. The DIP 803 records a destination address, that is, a destination IP address that is the address of the host on the receiving side. The SPORT 804 records the TCP transmission source port. The DPORT 805 records the TCP destination port. TSEQ 806 records the sequence number of the receiving host. TACK 807 records the sequence number of the sending host. WIN 808 records the congestion window size of the TCP connection. The SWIN 809 records a transmitted window size representing the transmitted data size. The TIME 810 records the latest time when the packet related to the entry is received. The STATE 811 stores the state of the TCP connection, the presence / absence and type of an application layer protocol, a command, an argument, and the like. ID812 records the ID number of the transmitted packet. The ADD 813 records the address pointer of the memory 205 in which the end of the ACK received data is stored. In this embodiment, SIP 802, DIP 803, SPORT 804, and DPORT 805 are collectively referred to as T.264. H. (Table Header) 814.

図8Bは、STATE811に格納される内容の一例を示す説明図である。   FIG. 8B is an explanatory diagram illustrating an example of contents stored in the STATE 811.

STATE811は、TCPレイヤの状態を示す情報及びアプリケーションレイヤの情報を格納する。   The STATE 811 stores information indicating the state of the TCP layer and application layer information.

具体的には、TCPレイヤの状態を示す情報として、TCPコネクションの開始又は停止を示す情報(OPEN/CLOSE)820と、TCPコネクションの確立又は未確立を示す情報(FULL/HALF)821と、TCPコネクションの輻輳状態を示す情報(Slow Start/Congestion Avoidance(以降、Cong. Avoid.と表記する)/Fast Recovery)822と、を格納する。   Specifically, as information indicating the state of the TCP layer, information (OPEN / CLOSE) 820 indicating the start or stop of the TCP connection, information (FULL / HALF) 821 indicating the establishment or non-establishment of the TCP connection, and TCP Information indicating the congestion state of the connection (Slow Start / Congestion Avidance (hereinafter referred to as Cong. Avoid.) / Fast Recovery) 822 is stored.

また、アプリケーションレイヤの情報として、アプリケーションレイヤプロトコルの有無と種類(無/HTTP/TELNET/FTP等)823と、アプリケーションレイヤプロトコルが実行中のコマンド及びその引数と種類(GET/POST、SELECT/INSERT/DELETE等)824と、前記コマンドにより実行中のファイル送受信の状態(開始(Start)、未完了(Active)、完了(Passive)等)825と、を記録する。   Also, as application layer information, the presence / absence and type of application layer protocol (nothing / HTTP / TELNET / FTP, etc.) 823, the command being executed by the application layer protocol and its arguments and types (GET / POST, SELECT / INSERT / DELETE, etc.) 824 and the file transmission / reception status (start, start, active, passive, etc.) 825 being executed by the command are recorded.

図9は、通信状態変更部125の処理のフローチャートである。   FIG. 9 is a flowchart of processing of the communication state changing unit 125.

本フローチャートは、通信状態変更部125が、パケットを受信したことを契機として開始される(ステップ901)。   This flowchart is started when the communication state changing unit 125 receives a packet (step 901).

通信状態変更部125は、処理パケット判定部106からパケット131を入力されると、受信パケットのTCP Flag710がSYNか否かを判定する(ステップ902)。   When the packet 131 is input from the processing packet determining unit 106, the communication state changing unit 125 determines whether the TCP Flag 710 of the received packet is SYN (step 902).

ステップ902にて、TCP Flag710がSYNである場合は(ステップ903)、通信状態変更部125は、通信状態テーブル126から、受信したパケットのP.H.716と一致するT.H.814を含むエントリ801を検索する(ステップ904)。   If the TCP Flag 710 is SYN in step 902 (step 903), the communication state changing unit 125 reads the P.P. H. T. 716 in accord with 716. H. An entry 801 including 814 is searched (step 904).

一致するエントリがない場合は(ステップ905)、タイマ160によって出力された現在時刻161を取得して、パケットを受信した最新時刻810と現在時刻161との差を比較する。比較の結果、差が予め定めた閾値Thr以上であるエントリ801を検索する(ステップ974)。差が予め定めた閾値Thr以上であるエントリ801が検索された場合は(ステップ907)、検索されたエントリ801を初期化する。そして、このエントリ801のT.H.814を受信したパケットのP.H.716に変更する。また、このエントリ801のSTATE811を「HALF」及び「OPEN」状態に変更する。また、このエントリ801のTSEQ806をランダムな値に変更する。また、このエントリ801のTACK807をPSEQ711に1を加算した値に変更する(ステップ975)。   If there is no matching entry (step 905), the current time 161 output by the timer 160 is acquired, and the difference between the latest time 810 at which the packet is received and the current time 161 is compared. As a result of the comparison, an entry 801 whose difference is equal to or larger than a predetermined threshold Thr is searched (step 974). When an entry 801 having a difference equal to or larger than a predetermined threshold Thr is searched (step 907), the searched entry 801 is initialized. The T. of the entry 801 H. 814 of the packet that received 814. H. Change to 716. Further, STATE 811 of this entry 801 is changed to the “HALF” and “OPEN” states. Further, the TSEQ 806 of the entry 801 is changed to a random value. Further, the TACK 807 of the entry 801 is changed to a value obtained by adding 1 to the PSEQ 711 (step 975).

すなわち、セッションの開始要求であるSYNパケットを受信した場合は、通信状態テーブル126のエントリ801を初期化して新たに作成する。   That is, when a SYN packet that is a session start request is received, the entry 801 of the communication state table 126 is initialized and newly created.

ステップ904において、受信したパケットのP.H.716と一致するT.H.814を含むエントリがある場合は(ステップ906)、通信状態変更部125は、タイマ160によって出力される現在時刻161を取得して、パケットを受信した最新時刻810と現在時刻161との差を比較し、差が予め定めた閾値Thr以上であるか否かを判定する(ステップ908)。   In step 904, the P.P. H. T. 716 consistent with H. If there is an entry including 814 (step 906), the communication state changing unit 125 obtains the current time 161 output by the timer 160 and compares the difference between the latest time 810 when the packet is received and the current time 161. Then, it is determined whether or not the difference is greater than or equal to a predetermined threshold value Thr (step 908).

差が閾値Thr以上である場合は(ステップ909)、通信状態変更部125は、ステップ975の処理を実行する。差が閾値Thr以上ではない場合は(ステップ910)、読み出したエントリ801の通信状態は変更せずに、フィルタ部124に受信したパケットを廃棄するように命令する(ステップ976)。   If the difference is greater than or equal to the threshold value Thr (step 909), the communication state changing unit 125 executes the process of step 975. If the difference is not greater than or equal to the threshold Thr (step 910), the communication state of the read entry 801 is not changed, and the filter unit 124 is instructed to discard the received packet (step 976).

すなわち、同一のP.H.714を有するSYNパケットが閾値Thrよりも短い間隔で再送された場合は、通信状態変更部125は、そのパケットを異常パケットと判断し、パケットを廃棄する。   That is, the same P.I. H. When the SYN packet having 714 is retransmitted at an interval shorter than the threshold value Thr, the communication state changing unit 125 determines that the packet is an abnormal packet and discards the packet.

ステップ902において、TCP Flag710がSYNではない場合は(ステップ911)、通信状態変更部125は、通信状態テーブル126から、受信したパケットのP.H.716と一致するT.H.814を含むエントリ801を検索する(ステップ912)。受信したパケットのP.H.716と一致するT.H.814を含むエントリ801がない場合は(ステップ913)、通信状態変更部125は、通信状態を読み出すことなく、フィルタ部124に受信したパケットを廃棄するように命令する(ステップ976)。   In step 902, when the TCP Flag 710 is not SYN (step 911), the communication state changing unit 125 reads the P.P of the received packet from the communication state table 126. H. T. 716 consistent with H. An entry 801 including 814 is searched (step 912). P. of received packet. H. T. 716 in accord with 716. H. If there is no entry 801 including 814 (step 913), the communication state changing unit 125 instructs the filter unit 124 to discard the received packet without reading the communication state (step 976).

すなわち、SYNパケットを一度も受信していない状態(セッションの開始が要求されていない状態)でTCP Flag710がSYN以外のパケットを受信した場合は、通信状態変更部125は、そのパケットを異常パケットと判断し、パケットを廃棄する。   That is, when the TCP Flag 710 receives a packet other than SYN in a state where the SYN packet has never been received (a state where the start of the session is not requested), the communication state changing unit 125 regards the packet as an abnormal packet. Judge and discard the packet.

ステップ912において、受信したパケットのP.H.716と一致するT.H.814を含むエントリがある場合は(ステップ914)、パケットのTCP Flag710がFIN−ACKであるか否かを判定する(ステップ915)。   In step 912, the P.P. H. T. 716 in accord with 716. H. If there is an entry including 814 (step 914), it is determined whether the TCP Flag 710 of the packet is FIN-ACK (step 915).

ステップ915にてTCP Flag710がFIN−ACKである場合は(ステップ916)、通信状態変更部125は、受信したパケットのPACK712の値とTSEQ806の値との差が0であるエントリ801、すなわち、受信したパケットのPACK712の値と一致するTSEQ806を含むエントリ801があるか否かを判定する(ステップ917)。   If the TCP Flag 710 is FIN-ACK in Step 915 (Step 916), the communication state changing unit 125 receives the entry 801 in which the difference between the PACK 712 value and the TSEQ 806 value of the received packet is 0, that is, reception. It is determined whether or not there is an entry 801 including TSEQ 806 that matches the value of PACK 712 of the received packet (step 917).

一致するエントリ801がある場合は(ステップ918)、通信状態変更部125は、このエントリ801のSTATE811をCLOSE状態に変更する。また、このエントリ801のTSEQ806をPACK712に変更する。また、このエントリ801のTACK807をPSEQ711に1を加算した値に変更する(ステップ977)。   If there is a matching entry 801 (step 918), the communication state changing unit 125 changes the STATE 811 of the entry 801 to the CLOSE state. Also, the TSEQ 806 of this entry 801 is changed to PACK 712. Further, the TACK 807 of the entry 801 is changed to a value obtained by adding 1 to the PSEQ 711 (step 977).

ステップ918において、一致するエントリ801がない場合は(ステップ919)、エントリ801の通信状態を読み出すことなく、フィルタ部124にパケットを廃棄するように命令する(ステップ978)。   If there is no matching entry 801 in step 918 (step 919), the filter unit 124 is instructed to discard the packet without reading the communication state of the entry 801 (step 978).

すなわち、一度SYNパケットを受信した後にさらに受信したSYN−ACKパケットに含まれるPACK712の値が、既に通信状態テーブル126に格納されているエントリのTSEQ806の値と異なる場合は、通信状態変更部125は、そのパケットを異常パケットと判断し、パケットを廃棄する。   That is, when the value of PACK 712 included in the received SYN-ACK packet after receiving the SYN packet once is different from the value of TSEQ 806 of the entry already stored in the communication state table 126, the communication state changing unit 125 The packet is determined as an abnormal packet, and the packet is discarded.

ステップ915において、TCP Flag710がFIN−ACKではない場合は(ステップ920)、受信したパケットのTCP Flag710がRST−ACKであるか否かを判定する(ステップ921)。   If the TCP Flag 710 is not FIN-ACK in Step 915 (Step 920), it is determined whether or not the TCP Flag 710 of the received packet is RST-ACK (Step 921).

TCP Flag710がRST−ACKである場合は(ステップ922)、受信したパケットのPACK712の値とTSEQ806の値との差が0であるエントリ801、すなわち、受信したパケットのPACK712の値と一致するTSEQ806を含むエントリ801があるか否かを判定する(ステップ923)。一致するエントリ801がある場合は(ステップ924)、通信状態変更部125は、このエントリ801のSTATE811をCLOSE状態に変更する(ステップ979)。一致するエントリ801がない場合は(ステップ925)、読み出したエントリ801記載の通信状態を変更することなく、フィルタ部124にパケットを廃棄するように命令する(ステップ980)。   When the TCP Flag 710 is RST-ACK (step 922), the entry 801 in which the difference between the PACK712 value of the received packet and the TSEQ806 value is 0, that is, the TSEQ806 that matches the PACK712 value of the received packet is set. It is determined whether there is an entry 801 to be included (step 923). If there is a matching entry 801 (step 924), the communication state changing unit 125 changes the STATE 811 of this entry 801 to the CLOSE state (step 979). If there is no matching entry 801 (step 925), the filter unit 124 is instructed to discard the packet without changing the communication state described in the read entry 801 (step 980).

すなわち、一度SYNパケットを受信した後にさらに受信したFIN−ACKパケットに含まれるPACK712の値が、既に通信状態テーブル126に格納されているエントリのTSEQ806の値と異なる場合は、通信状態変更部125は、そのパケットを異常パケットと判断し、パケットを廃棄する。   That is, when the value of PACK 712 included in the FIN-ACK packet received after receiving the SYN packet once is different from the value of TSEQ 806 of the entry already stored in the communication state table 126, the communication state changing unit 125 The packet is determined as an abnormal packet, and the packet is discarded.

ステップ921において、TCP Flag710がRST−ACKではない場合は(ステップ926)、通信状態変更部125は、受信したパケットのTCP Flag710がACKか否か、かつ、一致するエントリ801のSTATE811がHALF OPEN状態であるか否かを判定する(ステップ927)。   If the TCP Flag 710 is not RST-ACK in Step 921 (Step 926), the communication state changing unit 125 determines whether or not the TCP Flag 710 of the received packet is ACK and the STATE 811 of the matching entry 801 is in the HALF OPEN state. It is determined whether or not (step 927).

TCP Flag710がACKであり、かつ、STATE811がHALF OPEN状態である場合は(ステップ928)、通信状態変更部125は、受信したパケットのPACK712からエントリ801のTSEQ806を減算した値が1であるか、すなわち、PACK712とTSEQ806との差が1であるか否かを判定する(ステップ929)。PACK712とTSEQ806との差が1である場合は(ステップ930)、通信状態変更部125は、エントリ801のSTATE811をFULL OPEN状態に変更する。また、このエントリ801のTSEQ806をPACK712に変更する(ステップ981)。   If the TCP Flag 710 is ACK and the STATE 811 is in the HALF OPEN state (step 928), the communication state changing unit 125 determines whether the value obtained by subtracting the TSEQ 806 of the entry 801 from the PACK 712 of the received packet is 1. That is, it is determined whether or not the difference between PACK 712 and TSEQ 806 is 1 (step 929). When the difference between PACK 712 and TSEQ 806 is 1 (step 930), the communication state changing unit 125 changes STATE 811 of the entry 801 to the FULL OPEN state. Also, the TSEQ 806 of this entry 801 is changed to PACK 712 (step 981).

ステップ929において、PACK712とTSEQ806との差が1ではない場合は(ステップ931)、通信状態変更部125は、読み出したエントリ801の通信状態を変更せずに、フィルタ部124にパケットを廃棄するように命令する(ステップ982)。   If the difference between PACK 712 and TSEQ 806 is not 1 in step 929 (step 931), the communication state changing unit 125 discards the packet to the filter unit 124 without changing the communication state of the read entry 801. (Step 982).

すなわち、一度SYNパケットを受信した後にさらに受信したACKパケットに含まれるPACK712の値が、既に通信状態テーブル126に格納されているエントリのTSEQ806の値と異なる場合は、通信状態変更部125は、そのパケットを異常パケットと判断し、パケットを廃棄する。   That is, when the value of PACK 712 included in the received ACK packet after receiving the SYN packet once is different from the value of TSEQ 806 of the entry already stored in the communication state table 126, the communication state changing unit 125 The packet is determined as an abnormal packet, and the packet is discarded.

ステップ927において、TCP Flag710がACKではない、又は、STATE811がHALF OPEN状態ではない場合は(ステップ932)、通信状態変更部125は、受信したパケットのTCP Flag710がSYN−ACKか否か、かつ、エントリ801のSTATE811がHALF OPEN状態か否かを判定する(ステップ933)。   If the TCP Flag 710 is not ACK or the STATE 811 is not in the HALF OPEN state in Step 927 (Step 932), the communication state changing unit 125 determines whether the TCP Flag 710 of the received packet is SYN-ACK, and It is determined whether STATE 811 of entry 801 is in the HALF OPEN state (step 933).

ステップ933において、TCP Flag710がSYN−ACKであり、かつ、STATE811がHALF OPEN状態である場合は(ステップ934)、通信状態変更部125は、受信したパケットのPACK712とエントリ801のTSEQ806との差が1であるか否かを判定する(ステップ935)。   In step 933, when the TCP Flag 710 is SYN-ACK and the STATE 811 is in the HALF OPEN state (step 934), the communication state changing unit 125 determines that the difference between the PACK 712 of the received packet and the TSEQ 806 of the entry 801 is the difference. It is determined whether or not 1 (step 935).

PACK712とTSEQ806との差が1である場合は(ステップ936)、通信状態変更部125は、エントリ801のSTATE811をFULL OPEN状態に変更し、このエントリ801のTSEQ806をPACK712に変更する(ステップ983)。PACK712とTSEQ806との差が1でない場合は(ステップ937)、通信状態変更部125は、読み出したエントリ801の通信状態を変更せずに、フィルタ部124にパケットを廃棄するように命令する(ステップ984)。   If the difference between the PACK 712 and the TSEQ 806 is 1 (step 936), the communication state changing unit 125 changes the STATE 811 of the entry 801 to the FULL OPEN state, and changes the TSEQ 806 of the entry 801 to the PACK 712 (step 983). . If the difference between PACK 712 and TSEQ 806 is not 1 (step 937), the communication state changing unit 125 instructs the filter unit 124 to discard the packet without changing the communication state of the read entry 801 (step 937). 984).

ステップ933において、TCP Flag710がSYN−ACKではない、又は、STATE811がHALF OPEN状態ではない場合は(ステップ938)、通信状態変更部125は、パケットのTCP Flag710がPSH−ACKか否か、かつ、エントリ801のSTATE811がFULL OPEN状態か否かを判定する(ステップ939)。   If the TCP Flag 710 is not SYN-ACK or the STATE 811 is not in the HALF OPEN state in Step 933 (Step 938), the communication state changing unit 125 determines whether the TCP Flag 710 of the packet is PSH-ACK, and It is determined whether STATE 811 of entry 801 is in the FULL OPEN state (step 939).

TCP Flag710がPSH−ACKであり、かつ、STATE811がFULL OPEN状態である場合は(ステップ940)、通信状態変更部125は、受信したパケットのPACK712の値とエントリ801のTSEQ806の値とが一致するか否かを判定する(ステップ941)。PACK712とTSEQ806とが一致しない場合は(ステップ942)、通信状態変更部125は、読み出したエントリ801の通信状態を変更せずに、フィルタ部124にパケットを廃棄するように命令する(ステップ985)。   When the TCP Flag 710 is PSH-ACK and the STATE 811 is in the FULL OPEN state (step 940), the communication state changing unit 125 matches the value of the PACK 712 of the received packet with the value of the TSEQ 806 in the entry 801. Whether or not (step 941). If the PACK 712 and the TSEQ 806 do not match (step 942), the communication state changing unit 125 instructs the filter unit 124 to discard the packet without changing the communication state of the read entry 801 (step 985). .

ステップ941において、PACK712とTSEQ806とが一致する場合は(ステップ943)、通信状態変更部125は、パケットの各種コマンド714の内容を参照する。そして、各種コマンド714の内容が、アプリケーションレイヤプロトコルがHTTPであり、このHTTPによるGETコマンドであるか否かを判定する(ステップ944)。   In step 941, when PACK712 and TSEQ806 match (step 943), the communication state changing unit 125 refers to the contents of various commands 714 in the packet. Then, it is determined whether or not the contents of the various commands 714 indicate that the application layer protocol is HTTP and this is a GET command based on HTTP (step 944).

HTTPによるGETコマンドである場合は(ステップ945)、通信状態変更部125は、エントリ801のSTATE811をHTTP GET Start、すなわちファイル送受信開始状態に変更する。またこのエントリ801のTACK807の値を、PSEQ711の値と各種コマンド714のバイトサイズとPayload715のバイトサイズとの和に変更する。また、このエントリ801のTSEQ806の値をPACK712の値に変更する(ステップ986)。   If the GET command is based on HTTP (step 945), the communication state changing unit 125 changes STATE 811 of the entry 801 to HTTP GET Start, that is, a file transmission / reception start state. Also, the value of TACK 807 in this entry 801 is changed to the sum of the value of PSEQ 711, the byte size of various commands 714, and the byte size of Payload 715. Further, the value of TSEQ 806 of this entry 801 is changed to the value of PACK 712 (step 986).

ステップ944において、各種コマンド714の内容がHTTPによるGETコマンドではない場合は(ステップ946)、各種コマンド714の内容が、アプリケーションレイヤプロトコルがHTTPであり、HTTPによるPOSTコマンドであるか否かを判定する(ステップ947)。HTTPによるPOSTコマンドである場合は(ステップ948)、通信状態変更部125は、受信したパケットの各種コマンド714に含まれるコマンド引数がSELECTであるか否かを判定する(ステップ949)。   In step 944, if the contents of the various commands 714 are not HTTP GET commands (step 946), it is determined whether or not the contents of the various commands 714 are the HTTP application layer protocol and the HTTP POST command. (Step 947). If the command is an HTTP POST command (step 948), the communication state changing unit 125 determines whether the command argument included in the various commands 714 of the received packet is SELECT (step 949).

コマンド引数がSELECTである場合は(ステップ950)、通信状態変更部125は、エントリ801のSTATE811をHTTP POST SELECT Start、すなわち、ファイル送受信開始状態に変更する。また、エントリ801のTACK807をPSEQ711の値と各種コマンド714のバイトサイズとPayload715のバイトサイズとの和に変更する。また、このエントリ801のTSEQ806の値をPACK712の値に変更する(ステップ987)。   If the command argument is SELECT (step 950), the communication state changing unit 125 changes STATE 811 of the entry 801 to HTTP POST SELECT Start, that is, a file transmission / reception start state. Further, the TACK 807 of the entry 801 is changed to the sum of the value of the PSE 711, the byte size of various commands 714, and the byte size of the Payload 715. Further, the value of TSEQ 806 of this entry 801 is changed to the value of PACK 712 (step 987).

コマンド引数がSELECTではない場合は(ステップ951)、通信状態変更部125は、受信したパケットの各種コマンド714に含まれるコマンド引数がDELETEであるか否かを判定する(ステップ952)。   When the command argument is not SELECT (step 951), the communication state changing unit 125 determines whether or not the command argument included in the various commands 714 of the received packet is DELETE (step 952).

コマンド引数がDELETEである場合は(ステップ953)、通信状態変更部125は、エントリ801のSTATE811をHTTP POST DELETE Start、すなわち、ファイル送受信開始状態に変更する。また、エントリ801のTACK807の値をPSEQ711の値と各種コマンド714のバイトサイズとPayload715のバイトサイズとの和に変更する。また、エントリ801のTSEQ806の値をPACK712の値に変更する(ステップ988)。   When the command argument is DELETE (step 953), the communication state changing unit 125 changes STATE 811 of the entry 801 to HTTP POST DELETE Start, that is, a file transmission / reception start state. Also, the value of TACK 807 of entry 801 is changed to the sum of the value of PSEQ 711, the byte size of various commands 714, and the byte size of Payload 715. Also, the value of TSEQ 806 of entry 801 is changed to the value of PACK 712 (step 988).

コマンド引数がDELETEではない場合は(ステップ954)、通信状態変更部125は、パケットの各種コマンド714に含まれるコマンド引数がINSERTであるか否かを判定する(ステップ955)。   If the command argument is not DELETE (step 954), the communication state changing unit 125 determines whether or not the command argument included in the various commands 714 of the packet is INSERT (step 955).

コマンド引数がINSERTである場合は(ステップ956)、通信状態変更部125は、エントリ801のSTATE811をHTTP POST INSERT Start、すなわち、ファイル送受信開始状態に変更する。また、エントリ801のTACK807の値をPSEQ711の値と各種コマンド714のバイトサイズとPayload715のバイトサイズとの和に変更する。また、エントリ801のTSEQ806の値をPACK712の値に変更する(ステップ989)。   If the command argument is INSERT (step 956), the communication state changing unit 125 changes STATE 811 of the entry 801 to HTTP POST INSERT Start, that is, a file transmission / reception start state. Also, the value of TACK 807 of entry 801 is changed to the sum of the value of PSEQ 711, the byte size of various commands 714, and the byte size of Payload 715. Further, the value of TSEQ 806 of entry 801 is changed to the value of PACK 712 (step 989).

コマンド引数がINSERTではない場合は、処理を終了する。又は、別のコマンド引数であるかを判定して、判定された引数に適した処理を実行する。   If the command argument is not INSERT, the process ends. Alternatively, it is determined whether it is another command argument, and processing suitable for the determined argument is executed.

ステップ947において、HTTPによるPOSTコマンドではない場合は、処理を終了する。又は、別のアプリケーションレイヤプロトコルであるかを判定して、判定されたプロトコルに適した処理を実行する。   If it is determined in step 947 that the command is not an HTTP POST command, the process ends. Alternatively, it is determined whether it is another application layer protocol, and processing suitable for the determined protocol is executed.

ステップ939において、TCP Flag710がPSH−ACKではない、又は、STATE811がFULL OPEN状態ではない場合は(ステップ957)、通信状態変更部125は、TCP Flag710がACKであり、かつ、STATE811がActive状態であるか否かを判定する(ステップ958)。   In step 939, if the TCP Flag 710 is not PSH-ACK or the STATE 811 is not in the FULL OPEN state (Step 957), the communication state changing unit 125 indicates that the TCP Flag 710 is ACK and the STATE 811 is in the Active state. It is determined whether or not there is (step 958).

TCP Flag710がACKではない、又は、STATE811がActive状態ではない場合は(ステップ960)、通信状態変更部125は、読み出したエントリ801の通信状態を変更せずに、フィルタ部124にパケットを廃棄するように命令する(ステップ973)。   When the TCP Flag 710 is not ACK or the STATE 811 is not in the Active state (Step 960), the communication state changing unit 125 discards the packet to the filter unit 124 without changing the communication state of the read entry 801. (Step 973).

TCP Flag710がACKであり、かつ、STATE811がActive状態である場合は(ステップ959)、通信状態変更部125は、エントリ801のPACK712の値とTSEQ806の値とが一致するか否かを判定する(ステップ961)。   When the TCP Flag 710 is ACK and the STATE 811 is in the Active state (Step 959), the communication state changing unit 125 determines whether or not the value of the PACK 712 in the entry 801 matches the value of the TSEQ 806 ( Step 961).

PACK712の値とTSEQ806の値とが一致する場合は(ステップ963)、通信状態変更部125は、エントリ801のSTATE811をFast Recovery状態に変更する。また、エントリ801のTACK807の値をPSEQ711の値と各種コマンド714のバイトサイズとPayload715のバイトサイズとの和に変更する。また、エントリ801のTSEQ806の値をPACK712の値に変更する(ステップ970)。   If the value of PACK 712 matches the value of TSEQ 806 (step 963), the communication state changing unit 125 changes the STATE 811 of the entry 801 to the Fast Recovery state. Also, the value of TACK 807 of entry 801 is changed to the sum of the value of PSEQ 711, the byte size of various commands 714, and the byte size of Payload 715. Also, the value of TSEQ 806 of entry 801 is changed to the value of PACK 712 (step 970).

ステップ961において、受信したパケットのPACK712の値とエントリ801のTSEQ806の値が一致しない場合は(ステップ962)、受信したパケットのPACK712の値とTSEQ806の値との差が0より大きく、かつ、輻輳ウィンドウサイズWIN808より小さいか否かを判定する(ステップ964)。   In step 961, if the value of PACK712 in the received packet does not match the value of TSEQ806 in entry 801 (step 962), the difference between the value of PACK712 in the received packet and the value of TSEQ806 is greater than 0, and congestion occurs. It is determined whether or not the window size is smaller than WIN 808 (step 964).

PACK712の値とTSEQ806の値との差が0以下、又は、輻輳ウィンドウサイズWIN808以上である場合は(ステップ966)、読み出したエントリ801の通信状態を変更せずに、フィルタ部124にパケットを廃棄するように命令する(ステップ973)。   If the difference between the value of PACK 712 and the value of TSEQ 806 is 0 or less or the congestion window size WIN 808 or more (step 966), the packet is discarded to the filter unit 124 without changing the communication state of the read entry 801. (Step 973).

PACK712の値とTSEQ806の値との差が0より大きく、かつ、輻輳ウィンドウサイズWIN808よりも小さい場合は(ステップ965)、輻輳ウィンドウサイズWIN808が、予め定められた最大ウィンドウサイズ、すなわち、そのネットワークで許容される最大の容量の1/2の値であるssthよりも大きいか否かを判定する(ステップ967)。   If the difference between the value of PACK 712 and the value of TSEQ 806 is greater than 0 and smaller than the congestion window size WIN 808 (step 965), the congestion window size WIN 808 is set to a predetermined maximum window size, that is, in the network. It is determined whether or not it is larger than ssth, which is a half value of the maximum allowable capacity (step 967).

輻輳ウィンドウサイズWIN808がssthよりも大きい場合は(ステップ968)、通信状態変更部125は、エントリ801のSTATE811をCongestion Avoidance状態に変更する。また、エントリ801のTACK807の値をPSEQ711の値と各種コマンド714のバイトサイズとPayload715のバイトサイズとの和に変更する。また、エントリ801のTSEQ806の値をPACK712の値に変更する(ステップ972)。   When the congestion window size WIN 808 is larger than ssth (step 968), the communication state changing unit 125 changes the STATE 811 of the entry 801 to the Congestion Avidance state. Also, the value of TACK 807 of entry 801 is changed to the sum of the value of PSEQ 711, the byte size of various commands 714, and the byte size of Payload 715. Also, the value of TSEQ 806 of entry 801 is changed to the value of PACK 712 (step 972).

輻輳ウィンドウサイズWIN808がssthよりも小さい場合は(ステップ969)、通信状態変更部125は、エントリ801のSTATE811をSlow Start状態に変更する。また、エントリ801のTACK807の値をPSEQ711の値と各種コマンド714のバイトサイズとPayload715のバイトサイズとの和に変更する。また、エントリ801のTSEQ806の値をPACK712の値に変更する(ステップ971)。   If the congestion window size WIN 808 is smaller than ssth (step 969), the communication state changing unit 125 changes the STATE 811 of the entry 801 to the Slow Start state. Also, the value of TACK 807 of entry 801 is changed to the sum of the value of PSEQ 711, the byte size of various commands 714, and the byte size of Payload 715. Further, the value of TSEQ 806 of entry 801 is changed to the value of PACK 712 (step 971).

以上、図9に示した処理によって、通信状態変更部125は、読み出した通信状態801に含まれる情報と受信したパケット130に含まれる情報とに基づいて、読み出した通信状態801を変更し、変更済みの通信状態134を、通信状態バッファ121に出力する(図6の処理132)。これによって、演算マトリックス207の搭載論理の変更に必要な通信状態を、パケットの転送に伴う通信状態の変更に応じて変更することができる。また、通信状態801の情報と、パケット131の情報と、タイマ160によって生成された現在時刻161との組合せに異常がある場合は、当該パケットを廃棄することによって、不正なアクセスを排除できる。   As described above, the communication state changing unit 125 changes and changes the read communication state 801 based on the information included in the read communication state 801 and the information included in the received packet 130 by the processing illustrated in FIG. The completed communication state 134 is output to the communication state buffer 121 (process 132 in FIG. 6). As a result, the communication state necessary for changing the mounting logic of the operation matrix 207 can be changed according to the change of the communication state accompanying the packet transfer. If there is an abnormality in the combination of the communication state 801 information, the packet 131 information, and the current time 161 generated by the timer 160, the unauthorized access can be eliminated by discarding the packet.

なお、通信状態変更部125が出力する通信状態134のSTATE811は、図8Bに示した組合せのいずれかを示した一意の値となる。   Note that STATE 811 of the communication state 134 output by the communication state changing unit 125 is a unique value indicating one of the combinations shown in FIG. 8B.

図6に戻り、フィルタ部124は、通信状態変更部125から図9のステップ976、978、980、982、984、985又は973によって出力されたパケット廃棄命令133を入力されると、処理パケット判定部106から入力された受信パケット131を廃棄する。廃棄されなかったパケット135は、パケットバッファ122に送られる。   Returning to FIG. 6, when the filter unit 124 receives the packet discard instruction 133 output in Steps 976, 978, 980, 982, 984, 985, or 973 of FIG. The received packet 131 input from the unit 106 is discarded. The packet 135 that has not been discarded is sent to the packet buffer 122.

パケットバッファ122に蓄積されたパケット135は、演算マトリックス207内のバッファ読み出し判定用演算器群114から出力されるバッファ読み出し命令139を受信したタイミングで、1つのパケット136を読み出して出力する。パケットバッファ122が空の場合は、何もしない。   The packet 135 stored in the packet buffer 122 reads and outputs one packet 136 at the timing when the buffer read command 139 output from the buffer read determination arithmetic unit group 114 in the arithmetic matrix 207 is received. If the packet buffer 122 is empty, nothing is done.

パケットバッファ122から読み出されたパケット136は、通信状態読出し判定部123へ出力される。通信状態読み出し判定部123は、取得したパケットのP.H.716を参照して、処理すべきパケットか否かを判定する。   The packet 136 read from the packet buffer 122 is output to the communication state read determination unit 123. The communication state read determining unit 123 determines the P.P. H. Referring to 716, it is determined whether or not the packet is to be processed.

処理すべきパケットである場合は、通信状態バッファ121から通信状態138を読み出して(処理137)、処理すべきパケット107を、パケット判定部120と遅延調整部118に出力する。処理すべきでないパケットであると判定した場合は、処理が不要なパケット147を、集約部128に出力する。そして、パケットバッファ122に、次のパケットの読み出し命令139を出力する。   If the packet is to be processed, the communication state 138 is read from the communication state buffer 121 (step 137), and the packet 107 to be processed is output to the packet determination unit 120 and the delay adjustment unit 118. If it is determined that the packet is not to be processed, the packet 147 that does not need to be processed is output to the aggregation unit 128. Then, the next packet read command 139 is output to the packet buffer 122.

通信状態判定部119は、通信状態読み出し部123から出力された通信状態の内容を参照して、通信状態を分類する。   The communication state determination unit 119 classifies the communication state with reference to the content of the communication state output from the communication state reading unit 123.

通信状態の分類は、通信状態に含まれるTCPコネクションの開始又は停止を示す値を参照して、TCPコネクションの開始又は停止を判定することによって通信状態を分類し、TCPコネクションが開始している場合は、通信状態に含まれるTCPコネクションの確立又は未確立示す値を参照して、TCPコネクションの確立又は未確立を判定することによって前記通信状態を分類し、TCPコネクションが確立している場合は、通信状態に含まれるTCPコネクションの輻輳状態を示す値を参照して、TCPコネクションの輻輳状態を判定することによって前記通信状態を分類し、通信状態に含まれるアプリケーションレイヤプロトコルの有無を判定することによって通信状態を分類し、アプリケーションレイヤプロトコルがある場合は、通信状態に含まれるアプリケーションレイヤプロトコルの種類と、プロトコルが実行中のコマンド及びコマンドの引数の有無を判定することによって通信状態を分類し、コマンド及びコマンドの引数がある場合は、コマンド及びコマンドの引数の種類の判定し、コマンドによって実行中のファイル送受信の進捗状態が開始、未完了又は完了の何れであるかを判定することによって、通信状態を分類する。   The communication status is classified by referring to a value indicating the start or stop of the TCP connection included in the communication status, and determining the start or stop of the TCP connection, and the TCP connection is started. Classifies the communication state by determining the establishment or non-establishment of the TCP connection with reference to the value indicating the establishment or non-establishment of the TCP connection included in the communication state, and when the TCP connection is established, By referring to the value indicating the congestion state of the TCP connection included in the communication state, classifying the communication state by determining the congestion state of the TCP connection, and determining the presence or absence of the application layer protocol included in the communication state If there is an application layer protocol that classifies the communication state The communication status is classified by determining the type of application layer protocol included in the communication status and the presence of commands and command arguments being executed by the protocol. If there are commands and command arguments, the command and command arguments The communication state is classified by determining whether the progress state of the file transmission / reception being executed is started, incomplete, or completed by the command.

これらの値によって分類された通信状態の分類結果は、演算マトリックス207の自律再構成トリガ生成用演算器群111及び外部再構成トリガ生成用演算器群112に出力される。   The classification result of the communication state classified by these values is output to the autonomous reconfiguration trigger generation operation unit group 111 and the external reconfiguration trigger generation operation unit group 112 of the operation matrix 207.

図10は、通信状態判定部119の通信状態分類結果150及びパケット判定部120のパケット分類結果151に基づいて、演算マトリックス207内の自律再構成トリガ生成用演算器群111、及び、外部再構成トリガ生成用演算器群112が、自律再構成トリガ141又は外部再構成トリガ142を生成する処理のフローチャートである。   FIG. 10 shows a group 111 of autonomous reconfiguration trigger generation units in the operation matrix 207 based on the communication state classification result 150 of the communication state determination unit 119 and the packet classification result 151 of the packet determination unit 120, and the external reconfiguration. 6 is a flowchart of processing in which the trigger generation computing unit 112 generates an autonomous reconfiguration trigger 141 or an external reconfiguration trigger 142.

なお、本処理は、自律再構成トリガ生成用演算器群111と外部再構成トリガ生成用演算器群112とが同時に実行する。そして、再構成に必要な情報が、回路構成蓄積バッファ101に蓄積された構成情報である場合は、自律再構成トリガ生成用演算器群111が、自律再構成機構109に自律再構成トリガを出力する。一方、再構成に必要な情報が、外部メモリ205に格納されている構成情報である場合は、外部再構成トリガ生成用演算器群112が、プロセッサ206の回路構成変更モジュール116に外部再構成トリガを出力する。   This processing is executed simultaneously by the autonomous reconfiguration trigger generation computing unit 111 and the external reconstruction trigger generation computing unit 112. If the information necessary for reconfiguration is configuration information stored in the circuit configuration storage buffer 101, the autonomous reconfiguration trigger generation computing unit 111 outputs an autonomous reconfiguration trigger to the autonomous reconfiguration mechanism 109. To do. On the other hand, when the information necessary for reconfiguration is the configuration information stored in the external memory 205, the external reconfiguration trigger generation computing unit 112 sends an external reconfiguration trigger to the circuit configuration change module 116 of the processor 206. Is output.

自律再構成トリガ生成用演算器群111と外部再構成トリガ生成用演算器群112とは、通信状態分類結果150とパケット分類結果151を入力されると(ステップ1001)、通信状態の分類結果が、通信状態のSTATE811がHALF OPENであり、かつ、パケットのTCP Flag710がSYNであるか否かを判定する(ステップ1002)。   When the communication state classification result 150 and the packet classification result 151 are input to the autonomous reconfiguration trigger generation arithmetic unit group 111 and the external reconfiguration trigger generation arithmetic unit group 112 (step 1001), the communication state classification result is obtained. Then, it is determined whether STATE 811 in the communication state is HALF OPEN and the TCP Flag 710 of the packet is SYN (step 1002).

ステップ1002にて、通信状態の分類結果が、通信状態の通信状態のSTATE811がHALF OPENであり、かつ、パケットのTCP Flag710がSYNである場合は(ステップ1003)、受信パケットに対して、TCP Flag710をSYN−ACKに変更したパケットを返信するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1040)。   In step 1002, if the communication state STATE 811 of the communication state is HALF OPEN and the TCP Flag 710 of the packet is SYN (step 1003), the TCP Flag 710 is received for the received packet. A reconfiguration trigger is generated that requests transfer of the configuration information describing the logic for returning the packet changed to SYN-ACK to the operation matrix 207 (step 1040).

ステップ1002において、通信状態の分類結果が、通信状態の通信状態のSTATE811がHALF OPENであり、かつ、パケットのTCP Flag710がSYNでない場合は(ステップ1004)、通信状態の分類結果が、通信状態の通信状態のSTATE811がCLOSEであり、かつ、パケットのTCP Flag710がFIN−ACKであるか否かを判定する(ステップ1005)。   In step 1002, if the communication state STATE 811 of the communication state is HALF OPEN and the TCP Flag 710 of the packet is not SYN (step 1004), the communication state classification result is the communication state of the communication state. It is determined whether STATE 811 in the communication state is CLOSE and TCP Flag 710 of the packet is FIN-ACK (step 1005).

ステップ1005において、通信状態の分類結果が、通信状態の通信状態のSTATE811がCLOSEであり、かつ、パケットのTCP Flag710がFIN−ACKである場合は(ステップ1006)、受信パケットに対して、TCP Flag710をFIN−ACKに変更したパケットを返信するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1041)。   In step 1005, when the communication state STATE 811 of the communication state is CLOSE and the TCP Flag 710 of the packet is FIN-ACK (step 1006), the TCP flag 710 is received for the received packet. A reconfiguration trigger is generated to request that the configuration information describing the logic for returning the packet changed to FIN-ACK be transferred to the operation matrix 207 (step 1041).

ステップ1005において、通信状態の分類結果が、通信状態の通信状態のSTATE811がCLOSEであり、かつ、パケットのTCP Flag710がFIN−ACKでない場合は(ステップ1007)、次に、通信状態の分類結果が、通信状態の通信状態のSTATE811がCLOSEであり、かつ、パケットのTCP Flag710がRST−ACKであるか否かを判定する(ステップ1008)。   In step 1005, if the communication state STATE 811 of the communication state is CLOSE and the TCP Flag 710 of the packet is not FIN-ACK in step 1005 (step 1007), then the communication state classification result is Whether the communication state STATE 811 is CLOSE and the packet TCP Flag 710 is RST-ACK is determined (step 1008).

ステップ1008において、通信状態の分類結果が、通信状態のSTATE811がCLOSEであり、かつ、パケットのTCP Flag710がRST−ACKである場合は(ステップ1009)、受信パケットに対して、TCP Flag710をRST−ACKに変更したパケットを返信するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1042)。   In step 1008, if the communication state STATE 811 is CLOSE and the TCP Flag 710 of the packet is RST-ACK (step 1009), the TCP flag 710 is set to RST- for the received packet. A reconfiguration trigger is generated that requests that the configuration information describing the logic for returning the packet changed to ACK be transferred to the operation matrix 207 (step 1042).

ステップ1008において、通信状態の分類結果が、通信状態のSTATE811がCLOSEであり、かつ、パケットのTCP Flag710がRST−ACKでない場合は(ステップ1010)、通信状態の分類結果が、通信状態のSTATE811がFULL OPENであり、かつ、パケットのTCP Flag710がSYN−ACKであるか否かを判定する(ステップ1011)。   In step 1008, when the communication state STATE 811 is CLOSE and the TCP Flag 710 of the packet is not RST-ACK (step 1010), the communication state classification result is that the communication state STATE 811 is the communication state STATE 811. It is determined whether the packet is FULL OPEN and the TCP Flag 710 of the packet is SYN-ACK (step 1011).

ステップ1011において、通信状態の分類結果が、通信状態のSTATE811がFULL OPENであり、かつ、パケットのTCP Flag710がSYN−ACKである場合は(ステップ1012)、受信パケットに対して、当該パケットの各種コマンド714を、通信状態のSTATE811が示すアプリケーションレイヤプロトコルのコマンドに変更したパケットを返信するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1043)。   In step 1011, when the communication state STATE 811 is FULL OPEN and the packet TCP Flag 710 is SYN-ACK (step 1012), the communication state classification result indicates that for the received packet, A reconfiguration trigger is generated that requests that the configuration information describing the logic for returning the packet in which the command 714 is changed to the command of the application layer protocol indicated by the STATE 811 in the communication state is transferred to the operation matrix 207 ( Step 1043).

ステップ1011において、通信状態の分類結果が、通信状態のSTATE811がFULL OPENであり、かつ、パケットのTCP Flag710がSYN−ACKでない場合は(ステップ1013)、通信状態の分類結果が、通信状態のSTATE811がGET/POST Active(ファイル送受信中)であり、かつ、パケットのTCP Flag710がACKであるか否かを判定する(ステップ1014)。   In step 1011, if the communication state STATE 811 is FULL OPEN and the packet TCP Flag 710 is not SYN-ACK (step 1013), the communication state classification result is the communication state STATE 811. Is GET / POST Active (during file transmission / reception), and it is determined whether the TCP Flag 710 of the packet is ACK (step 1014).

ステップ1014にて、通信状態の分類結果が、通信状態のSTATE811がGET/POST Active(ファイル送受信中)であり、かつ、パケットのTCP Flag710がACKである場合は(ステップ1016)、通信状態の分類結果が、通信状態のSTATE811がSlow Startと分類されているか否かを判定する(ステップ1017)。   If the communication state STATE 811 is GET / POST Active (during file transmission / reception) and the packet TCP Flag 710 is ACK in step 1014 (step 1016), the communication state classification is performed. As a result, it is determined whether or not the STATE 811 in the communication state is classified as Slow Start (step 1017).

ステップ1017において、通信状態の分類結果が、通信状態のSTATE811がSlow Startである場合は(ステップ1018)、Slow Start時のTCPの輻輳ウィンドウ制御に従ってパケットを送受信するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1044)。   In step 1017, when the communication state STATE 811 is Slow Start in step 1017 (step 1018), the configuration information describing the logic for transmitting and receiving packets according to TCP congestion window control at the time of slow start Is generated in the operation matrix 207 (step 1044).

ステップ1017において、通信状態の分類結果が、通信状態のSTATE811がSlow Startではない場合は(ステップ1019)、通信状態の分類結果が、通信状態のSTATE811がCongestion Avoidanceであるか否かを判定する(ステップ1020)。   If the communication state STATE 811 is not the slow start in step 1017 (step 1019), it is determined whether or not the communication state STATE 811 is the Congestion Avidance (step 1019). Step 1020).

ステップ1020において、通信状態の分類結果が、通信状態のSTATE811がCongestion Avoidanceである場合は(ステップ1021)、Congestion Avoidance時のTCPの輻輳ウィンドウ制御に従ってパケットを送受信するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1045)。   In step 1020, when the communication state STATE 811 is “Consultation Avidance” (step 1021), the configuration information describing the logic for transmitting and receiving packets according to the TCP congestion window control during congestion aviation Is generated in the operation matrix 207 (step 1045).

ステップ1020において、通信状態の分類結果が、通信状態のSTATE811がCongestion Avoidanceでない場合は(ステップ1022)、通信状態の分類結果が、通信状態のSTATE811がFast Recoveryであるか否かを判定する(ステップ1055)。   In step 1020, when the communication state STATE 811 is not Congestion Avidance (step 1022), the communication state classification result determines whether the communication state STATE 811 is Fast Recovery (step 1022). 1055).

ステップ1055において、通信状態の分類結果が、通信状態のSTATE811がFast Recoveryである場合は(ステップ1023)、Fast Recovery時のTCPの輻輳ウィンドウ制御に従ってパケットを送受信するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1046)。   In step 1055, when the communication state STATE 811 is Fast Recovery (step 1023), the configuration information describing the logic for transmitting and receiving packets according to the TCP congestion window control at the time of Fast Recovery is described. Is generated to request the transfer to the operation matrix 207 (step 1046).

ステップ1014において、通信状態の分類結果が、通信状態のSTATE811がGET/POST Active、すなわち、ファイル送受信中であり、かつ、パケットのTCP Flag710がACKでない場合は(ステップ1015)、通信状態の分類結果が、通信状態のSTATE811がGET Start、すなわち、ファイル送受信開始であり、かつ、パケットのTCP Flag710がPSH−ACKであると分類されているか否かを判定する(ステップ1024)。   In step 1014, if the communication state STATE 811 is GET / POST Active, that is, file transmission / reception is performed, and the packet TCP Flag 710 is not ACK (step 1015), the communication state classification result is step 1015. However, it is determined whether or not STATE 811 in the communication state is GET Start, that is, file transmission / reception is started, and the TCP Flag 710 of the packet is classified as PSH-ACK (step 1024).

ステップ1024において、通信状態の分類結果が、通信状態のSTATE811がHTTP GET Start、すなわち、ファイル送受信開始であり、かつ、パケットのTCP Flag710がPSH−ACKである場合は(ステップ1025)、GETコマンドにより要求されたファイルを検索して当該検索結果をパケットにより返信するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1047)。   In step 1024, when the communication state STATE 811 is HTTP GET Start, that is, file transmission / reception start and the packet TCP Flag 710 is PSH-ACK in step 1024 (step 1025), A reconfiguration trigger is generated to request that the configuration information describing the logic for searching the requested file and returning the search result as a packet is transferred to the operation matrix 207 (step 1047).

ステップ1024において、通信状態の分類結果が、通信状態のSTATE811がHTTP GET Start、すなわち、ファイル送受信開始であり、かつ、パケットのTCP Flag710がPSH−ACKでない場合は(ステップ1026)、通信状態の分類結果が、通信状態のSTATE811がHTTP POST Start、すなわち、ファイル送受信開始であり、かつ、パケットのTCP Flag710がPSH−ACKであるか否かを判定する(ステップ1027)。   In step 1024, if the communication state STATE 811 is HTTP GET Start, that is, file transmission / reception start and the packet TCP Flag 710 is not PSH-ACK in step 1024 (step 1026), the communication state classification As a result, it is determined whether STATE 811 in the communication state is HTTP POST Start, that is, file transmission / reception start, and the TCP Flag 710 of the packet is PSH-ACK (step 1027).

ステップ1027において、通信状態の分類結果が、通信状態のSTATE811がHTTP POST Start、すなわち、ファイル送受信開始であり、かつ、パケットのTCP Flag710がPSH−ACKでない場合は(ステップ1029)、パケットを廃棄するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1048)。   In step 1027, when the communication state STATE 811 is HTTP POST Start, that is, file transmission / reception start and the packet TCP Flag 710 is not PSH-ACK (step 1029), the packet is discarded. A reconfiguration trigger is generated that requests to transfer the configuration information describing the logic for the operation matrix 207 (step 1048).

ステップ1027において、通信状態の分類結果が、通信状態のSTATE811がHTTP POST Start(ファイル送受信開始)であり、かつ、パケットのTCP Flag710がPSH−ACKである場合は(ステップ1028)、通信状態の分類結果が、通信状態のSTATE811がSELECTであるか否かを判定する(ステップ1052)。   If the communication state STATE 811 is HTTP POST Start (file transmission / reception start) and the packet TCP Flag 710 is PSH-ACK in step 1027 (step 1028), the communication state classification result is as follows. It is determined whether the result STATE 811 in the communication state is SELECT (step 1052).

ステップ1052において、通信状態の分類結果が、通信状態のSTATE811がSELECTである場合は(ステップ1031)、SELECTコマンドにより要求されたデータを検索して当該検索結果をパケットにより返信するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1049)。   In step 1052, if the communication status STATE 811 is SELECT (step 1031), the logic for searching the data requested by the SELECT command and returning the search result in a packet is described. A reconstruction trigger is generated that requests transfer of the configured information to the operation matrix 207 (step 1049).

ステップ1052において、通信状態の分類結果が、通信状態のSTATE811がSELECTでない場合は(ステップ1030)、通信状態の分類結果が、通信状態のSTATE811がDELETEであるか否かを判定する(ステップ1053)。   If the communication state STATE 811 is not SELECT in step 1052 (step 1030), the communication state classification result determines whether the communication state STATE 811 is DELETE (step 1053). .

ステップ1053において、通信状態の分類結果が、通信状態のSTATE811がDELETEである場合は(ステップ1033)、DELETEコマンドにより削除を要求されたデータを検索し、検索されたデータを削除して、削除結果を示すパケットを返信するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1050)。   If the communication state STATE 811 is DELETE in step 1053 (step 1033), the data requested to be deleted by the DELETE command is searched, the searched data is deleted, and the deletion result A reconfiguration trigger is generated that requests transfer of the configuration information describing the logic for returning the packet indicating to the operation matrix 207 (step 1050).

ステップ1053において、通信状態の分類結果が、通信状態のSTATE811がDELETEでない場合は(ステップ1032)、通信状態の分類結果が、通信状態のSTATE811がINSERTであるか否かを判定する(ステップ1054)。   If the communication state STATE 811 is not DELETE in step 1053 (step 1032), the communication state classification result determines whether the communication state STATE 811 is INSERT (step 1054). .

ステップ1054において、通信状態の分類結果が、通信状態のSTATE811がINSERTである場合は(ステップ1034)、INSERTコマンドによって挿入を要求されたデータを書き込み、書込によって挿入された結果を示すパケットを返信するための論理が記載された構成情報を、演算マトリックス207に転送することを要求する再構成トリガを生成する(ステップ1051)。   If the communication state STATE 811 is INSERT in step 1054 (step 1034), the data requested to be inserted by the INSERT command is written, and a packet indicating the result of insertion by writing is returned. A reconfiguration trigger is generated that requests transfer of the configuration information describing the logic to be performed to the operation matrix 207 (step 1051).

演算マトリックス207内の自律再構成トリガ生成用演算器群111と外部再構成トリガ生成用演算器群112は、以上に述べた処理により、通信状態判定部119の通信状態分類結果150及びパケット判定部120のパケット分類結果151に基づいて、自律再構成トリガ142又は外部再構成トリガ141を生成する。外部再構成トリガ生成用演算器群112は、外部再構成トリガ141を生成すると同時に、メモリ205内のポインタ領域157に、要求する構成情報が記載されたアドレスポインタの値を書き込む(処理158)。   The autonomous reconfiguration trigger generation operation unit group 111 and the external reconfiguration trigger generation operation unit group 112 in the operation matrix 207 perform the communication state classification result 150 and the packet determination unit of the communication state determination unit 119 by the processing described above. Based on the 120 packet classification results 151, the autonomous reconfiguration trigger 142 or the external reconfiguration trigger 141 is generated. The external reconfiguration trigger generation computing unit 112 generates the external reconfiguration trigger 141 and simultaneously writes the value of the address pointer in which the requested configuration information is written in the pointer area 157 in the memory 205 (process 158).

なお、本実施形態では、ステップ1014にて、通信状態の分類結果が、通信状態のSTATE811がGET/POST Activeであるか否かを判定したが、GETとPOSTを別々に分類して、コマンド毎に異なる再構成トリガを生成してもよい。また、本実施形態では、通信状態の分類結果150とパケット分類結果151の両方を使用して再構成トリガを生成する例を示したが、通信状態分類結果150のみを使用して再構成トリガを生成してもよい。   In this embodiment, it is determined in step 1014 whether or not the communication state categorization result STATE 811 is GET / POST Active. However, GET and POST are classified separately for each command. Different reconfiguration triggers may be generated. In the present embodiment, an example in which a reconfiguration trigger is generated using both the communication state classification result 150 and the packet classification result 151 has been shown. However, only the communication state classification result 150 is used to generate a reconfiguration trigger. It may be generated.

自律再構成機構109は、自律再構成トリガ142を入力されると、自律再構成トリガ142の種類に基づいて、回路構成蓄積バッファ108が格納する構成情報108−1〜108−3のいずれかを選択し(処理145)、選択した構成情報108−k(k=1〜3)を演算マトリックス207に転送する(処理143)。演算マトリックス207は、転送された構成情報108−kに従って、内部の演算器群の機能と配線を再構成し、搭載論理を変更する。このとき、主に、サーバサービス提供用演算器群113の搭載論理が変更される。搭載論理が変更されたサーバサービル提供用演算器群113が、この搭載論理に基づいて、受信パケットを処理し、装置200内部に蓄積したデータの変更、新たなパケットの生成、及び、生成されたパケットの外部送信を実行する。   When an autonomous reconfiguration trigger 142 is input, the autonomous reconfiguration mechanism 109 receives any of the configuration information 108-1 to 108-3 stored in the circuit configuration accumulation buffer 108 based on the type of the autonomous reconfiguration trigger 142. The selected configuration information 108-k (k = 1 to 3) is transferred to the operation matrix 207 (processing 143). The arithmetic matrix 207 reconfigures the functions and wiring of the internal arithmetic unit group in accordance with the transferred configuration information 108-k, and changes the mounting logic. At this time, the mounting logic of the server service providing computing unit group 113 is mainly changed. The server service providing computing unit group 113 whose mounting logic is changed processes the received packet based on the mounting logic, changes the data accumulated in the apparatus 200, generates a new packet, and is generated Perform external packet transmission.

プロセッサ206が実行する回路構成変更モジュール116は、外部再構成トリガ141を入力されると、メモリ205内のポインタ領域157から構成情報が記載されたアドレスポインタの値を読み出す(処理159)。   When the external reconfiguration trigger 141 is input, the circuit configuration change module 116 executed by the processor 206 reads the value of the address pointer describing the configuration information from the pointer area 157 in the memory 205 (process 159).

さらに、読み出したアドレスポインタの値を用いて、メモリ205内の回路構成蓄積領域117から構成情報を読み出す(処理149)。読み出した構成情報は、回路構成蓄積バッファ108に格納された構成情報108−k(k=1〜3)のうち一つと置き換わると共に(処理144)、演算マトリックス207に転送される(処理143)。演算マトリックス207は、転送された構成情報108−kに従って、内部の演算器群の機能と配線を再構成し、搭載論理を変更する。   Further, the configuration information is read from the circuit configuration storage area 117 in the memory 205 using the read value of the address pointer (process 149). The read configuration information replaces one of the configuration information 108-k (k = 1 to 3) stored in the circuit configuration accumulation buffer 108 (process 144) and is transferred to the operation matrix 207 (process 143). The arithmetic matrix 207 reconfigures the functions and wiring of the internal arithmetic unit group in accordance with the transferred configuration information 108-k, and changes the mounting logic.

なお、回路構成蓄積バッファ101から構成情報108を読み出すことによって、高速な回路再構成が可能となる。一方で、回路構成蓄積領域117の記憶容量は、回路構成蓄積バッファ108の記憶容量よりも大幅に大きいため、外部メモリ205に構成情報を格納することによって、変更可能な搭載論理数が大幅に増加する。   Note that by reading the configuration information 108 from the circuit configuration accumulation buffer 101, high-speed circuit reconfiguration is possible. On the other hand, since the storage capacity of the circuit configuration storage area 117 is significantly larger than the storage capacity of the circuit configuration storage buffer 108, storing the configuration information in the external memory 205 greatly increases the number of mounted logics that can be changed. To do.

以上、図10に示す処理によって、演算マトリックス207が、通信状態判定部119が予め生成したホスト間の通信状態の分類結果150に基づいて、パケット毎に搭載論理を変更する。また、自律再構成機構109によって出力される自律再構成トリガ142によって、自律再構成機構109が搭載論理を自律再構成する。また、外部再構成トリガ生成用演算器群112によって出力される外部再構成トリガ141によって、メモリ205に格納された搭載論理を変更する。変更可能な搭載論理数の大幅な増加を実現する。   As described above, according to the processing shown in FIG. 10, the operation matrix 207 changes the mounting logic for each packet based on the classification result 150 of the communication state between hosts generated in advance by the communication state determination unit 119. Further, the autonomous reconfiguration mechanism 109 autonomously reconfigures the mounted logic by the autonomous reconfiguration trigger 142 output by the autonomous reconfiguration mechanism 109. Further, the mounting logic stored in the memory 205 is changed by the external reconfiguration trigger 141 output by the external reconfiguration trigger generation computing unit group 112. Realizes a large increase in the number of mountable logic.

遅延調整部118は、通信状態判定部119の通信状態分類結果150及びパケット判定部120のパケット分類結果151に基づいて、演算マトリックス207の再構成が終了するタイミングを予測する。   The delay adjustment unit 118 predicts the timing at which the reconfiguration of the operation matrix 207 ends based on the communication state classification result 150 of the communication state determination unit 119 and the packet classification result 151 of the packet determination unit 120.

なお、演算マトリックス207が、自身の再構成の処理の終了を検出して、再構成終了の通知162を遅延調整部118に出力してもよい。   Note that the operation matrix 207 may detect the end of its own reconfiguration process and output a reconfiguration end notification 162 to the delay adjustment unit 118.

遅延調整部118は、予測したタイミング、または、演算マトリックス207から出力された再構成終了の通知162、に基づいて、パケット107と通信状態138とに発生させる遅延を調整する。   The delay adjustment unit 118 adjusts the delay generated in the packet 107 and the communication state 138 based on the predicted timing or the reconfiguration end notification 162 output from the calculation matrix 207.

すなわち、遅延調整部118は、演算マトリックス207の搭載論理の変更が完了してから、サーバサービス提供用演算器群113に通信状態138とパケット107とが入力されるように、この遅延を調整する。   That is, the delay adjustment unit 118 adjusts this delay so that the communication state 138 and the packet 107 are input to the server service providing arithmetic unit group 113 after the change of the mounting logic of the arithmetic matrix 207 is completed. .

遅延調整部118は、発生させる遅延を、通信状態判定部119の通信状態分類結果150及びパケット判定部120のパケット分類結果151に基づいて調整する。遅延発生済みの通信状態152とパケット153は、サーバサービス提供用演算器群113に出力する。これにより、演算マトリックス207の再構成が終了したタイミングで、パケット107と通信状態138とが、演算マトリックス207に入力される。   The delay adjustment unit 118 adjusts the delay to be generated based on the communication state classification result 150 of the communication state determination unit 119 and the packet classification result 151 of the packet determination unit 120. The delayed communication state 152 and packet 153 are output to the server service providing computing unit 113. Thereby, the packet 107 and the communication state 138 are input to the calculation matrix 207 at the timing when the reconfiguration of the calculation matrix 207 is completed.

サーバサービス提供用演算器群113は、メモリ205に蓄積したデータの変更(処理156)や、新たなパケット146を生成し、外部に送信することによって、データベース等のサーバサービスを実現する。処理の終了間際には、処理終了通知140を、バッファ読み出し判定用演算器群114に出力する。また、サーバ504との間でメモリ205に蓄積したデータのアップロード/ダウンロードを開始した場合に新たに生成される通信状態155を、通信状態変更部125に出力する。   The server service providing computing unit 113 implements a server service such as a database by changing the data stored in the memory 205 (processing 156) or generating a new packet 146 and transmitting it to the outside. Near the end of processing, a processing end notification 140 is output to the buffer read determination computing unit group 114. In addition, a communication state 155 newly generated when upload / download of data accumulated in the memory 205 is started with the server 504 is output to the communication state change unit 125.

さらに、サーバサービス提供用演算器群113は、入力された通信状態152のSTATE811がFULL OPEN、すなわち、TCPコネクションが確立の場合に、受信したパケット153記載の送信/受信シーケンス番号PSEQ711/PACK712と、受信した通信状態152に記載の送信/受信シーケンス番号TSEQ806/TACK807と、輻輳ウィンドウサイズWIN808と、送信済みウィンドウサイズSWIN809と、に基づいて、STATE811をSlow Start/Congestion Avoidance/Fast Recovery、すなわち、TCPコネクションの輻輳状態が、スロースタート状態/輻輳回避状態/ファーストリカバリー状態、のいずれかに変更した通信状態155を、通信状態変更部125に出力する。   Further, the server service providing arithmetic unit group 113 includes the transmission / reception sequence number PSEQ711 / PACK712 described in the received packet 153 when the STATE 811 of the input communication state 152 is FULL OPEN, that is, when the TCP connection is established. Based on the transmission / reception sequence number TSEQ 806 / TACK 807 described in the received communication state 152, the congestion window size WIN 808, and the transmitted window size SWIN 809, the STATE 811 is set to Slow Start / Consistency Aviation / Fast Recovery, that is, TCP connection. The communication state 155 in which the congestion state is changed to one of the slow start state / congestion avoidance state / fast recovery state, And it outputs the signal state changing section 125.

さらに、サーバサービス提供用演算器群113は、受信した通信状態152のSTATE811がFULL OPEN、すなわち、TCPコネクションが確立の場合、及び、Slow Start/Congestion Avoidance、すなわち、輻輳状態がスロースタート状態/輻輳回避状態の場合は、新たに生成したパケットの送信サイズに基づいて、一度に送信可能なデータサイズを表す輻輳ウィンドウサイズWIN808と、送信済みデータサイズを表す送信済みウィンドウサイズSWIN809の値を変更して、新たに生成したパケットの送信数に基づいて、送信済みパケットのID番号ID812を変更した通信状態155を、通信状態変更部125に出力する。   Further, the server service providing arithmetic unit group 113 receives the STATE 811 in the received communication state 152 as FULL OPEN, that is, when the TCP connection is established, and the Slow Start / Congestion Avidance, that is, the congestion state is the slow start state / congestion state. In the avoidance state, based on the transmission size of the newly generated packet, change the values of the congestion window size WIN 808 representing the data size that can be transmitted at one time and the transmitted window size SWIN 809 representing the transmitted data size. Based on the number of newly transmitted packets, the communication state 155 in which the ID number ID 812 of the transmitted packet is changed is output to the communication state changing unit 125.

さらに、サーバサービス提供用演算器群113は、受信した通信状態152のSTATE811がHALF OPEN、すなわち、TCPコネクションが未確立の場合は、送信済みパケットのID番号を示すID812を初期化した通信状態155を、通信状態変更部125に出力する。   Further, the server service providing arithmetic unit group 113, when the received STATE 811 of the communication state 152 is HALF OPEN, that is, when the TCP connection is not established, the communication state 155 in which the ID 812 indicating the ID number of the transmitted packet is initialized Is output to the communication state changing unit 125.

さらに、サーバサービス提供用演算器群113は、受信した通信状態152のSTATE811がStart、すなわち、アプリケーションレイヤのプロトコルが実行中のコマンドがあり、前記プロトコルのコマンドにより実行中のファイル送受信が開始状態の場合は、新たに生成したパケットを送信した後に、STATE811をActive、すなわち、ファイル送受信の状態が未完了の状態に変更した通信状態155を、通信状態変更部125に出力する。   Further, in the server service providing arithmetic unit group 113, the received STATE 811 in the communication state 152 is Start, that is, the application layer protocol is being executed, and the file transmission / reception being executed by the protocol command is in the start state. In this case, after transmitting the newly generated packet, STATE 811 is changed to Active, that is, the communication state 155 in which the state of file transmission / reception is changed to an incomplete state is output to the communication state change unit 125.

さらに、サーバサービス提供用演算器群113は、受信した通信状態152のSTATE811がStart/Active、すなわち、アプリケーションレイヤのプロトコルが実行中のコマンドがあり、前記プロトコルのコマンドにより実行中のファイル送受信が開始状態又は未完了状態の場合は、新たに生成したパケットの送信サイズに基づいて、ACK受信済みデータの最後尾が格納されているメモリ205のアドレスポインタADD813を初期化した通信状態155を、通信状態変更部125に出力する。   Further, in the server service providing computing unit 113, STATE 811 in the received communication state 152 is Start / Active, that is, there is a command in which the application layer protocol is being executed, and file transmission / reception being executed by the protocol command is started. In the case of the state or the incomplete state, the communication state 155 in which the address pointer ADD813 of the memory 205 storing the end of the ACK received data is initialized is based on the transmission size of the newly generated packet. Output to the changing unit 125.

さらに、サーバサービス提供用演算器群113は、受信した通信状態152のSTATE811がStart/Active、すなわち、アプリケーションレイヤのプロトコルが実行中のコマンドがあり、前記プロトコルのコマンドにより実行中のファイル送受信が開始状態/未完了状態の場合は、新たに生成して送信するパケットがない場合に、STATE811をPassive、すなわち、ファイル送受信の状態が完了に変更した通信状態155を、通信状態変更部125に出力する。   Further, in the server service providing computing unit 113, STATE 811 in the received communication state 152 is Start / Active, that is, there is a command in which the application layer protocol is being executed, and file transmission / reception being executed by the protocol command is started In the state / incomplete state, when there is no packet to be newly generated and transmitted, STATE 811 is Passive, that is, the communication state 155 in which the state of file transmission / reception is changed to complete is output to the communication state change unit 125. .

以上に述べた処理により、サーバサービス提供用演算器群113の処理内容に応じて通信状態を変更できる。   Through the processing described above, the communication state can be changed according to the processing content of the server service providing computing unit group 113.

通信状態変更部125は、サーバサービス提供用演算器群113から入力された通信状態155を、通信状態テーブル126に追加する。   The communication state changing unit 125 adds the communication state 155 input from the server service providing computing unit group 113 to the communication state table 126.

バッファ読み出し判定用演算器群114は、サーバサービス提供用演算器群113が新たに生成したパケットを全て送信したか否かを、サーバサービス提供用演算器群113が処理終了間際に出力する処理終了通知140に基づいて判定する。全て送信済みと判定した場合は、バッファ読み出し命令139をタイミング調整部105内のパケットバッファ122に出力する。このようにすることによって、前記演算マトリックス207において、あるパケットの処理終了後に、別のパケットの処理が直ちに実行されるようになる。これによって、前記演算マトリックス207の利用効率が向上する。   The buffer read determination computing unit group 114 outputs whether or not the server service providing computing unit group 113 has transmitted all newly generated packets by the server service providing computing unit group 113 at the end of processing. A determination is made based on the notification 140. When it is determined that all have been transmitted, a buffer read command 139 is output to the packet buffer 122 in the timing adjustment unit 105. By doing so, in the arithmetic matrix 207, after the processing of a certain packet is completed, the processing of another packet is immediately executed. Thereby, the utilization efficiency of the calculation matrix 207 is improved.

集約部128は、サーバサービス提供用演算器群113からのパケット146と、通信状態読出し判定部123からの処理不要パケット147又は処理パケット判定部106からの処理不要パケットを集約して、外部に集約パケット154を送信する。このようにすることによって、処理が必要なパケットのみを演算マトリックス207に入力することによって、処理が不要なパケットの演算マトリックス207への入力を防ぐことができる。   The aggregating unit 128 aggregates the packet 146 from the server service providing arithmetic unit group 113 and the processing unnecessary packet 147 from the communication state read determining unit 123 or the processing unnecessary packet from the processed packet determining unit 106 and aggregates them outside. Packet 154 is transmitted. In this way, by inputting only the packets that need processing to the calculation matrix 207, it is possible to prevent the packets that do not need to be input to the calculation matrix 207.

以上述べた処理によって、動的再構成プロセッサと、外部メモリを経由しない通信データの直接入出力を用いた装置において、プロセッサ外部にて予め生成したホスト間の通信状態に基づいて、動的再構成プロセッサ内の演算マトリックスの搭載論理を変更することが可能となる。   Through the processing described above, the dynamic reconfiguration processor and the apparatus using the direct input / output of communication data that does not pass through the external memory are used to perform dynamic reconfiguration based on the communication state between hosts generated in advance outside the processor. It is possible to change the mounting logic of the operation matrix in the processor.

図11〜17は、装置200が実現するサーバサービスのシーケンス図を示す。   11 to 17 are sequence diagrams of server services realized by the apparatus 200. FIG.

図11は、攻撃者の異常パケットを装置200が排除するシーケンス図を示す。   FIG. 11 is a sequence diagram in which the apparatus 200 excludes an attacker's abnormal packet.

攻撃者1100は、サーバ504に向けて、送信元IPアドレス706を偽装して、送信シーケンス番号PSEQ711がX、受信シーケンス番号PACK712が0、TCP Flag710がSYNであるパケット1101を送信する。装置200は、図9のステップ902、ステップ904及びステップ974を経由して、ステップ975の処理を実行する。   The attacker 1100 spoofs the transmission source IP address 706 toward the server 504, and transmits a packet 1101 in which the transmission sequence number PSEQ711 is X, the reception sequence number PACK712 is 0, and the TCP Flag 710 is SYN. The apparatus 200 performs the process of step 975 via step 902, step 904, and step 974 of FIG.

ステップ975の処理によって、T.H.814をP.H.716に変更し、通信状態を変更、すなわち、STATE811をHalf Openに変更し、TACK807をPSEQ711+1に変更し、ランダムな値Yを受信側ホストのシーケンス番号TSEQ806に埋め込む(処理1102)。さらに、図10のステップ1040の処理によって。TCP Flag710をSYN−ACKとしたパケットを返信する論理に変更された演算マトリックス207が、PSEQ711を、TSEQ806の値YとしたSYN−ACKパケット1103を返信する。   By the processing in step 975, T.P. H. 814. H. Then, the communication state is changed, that is, STATE 811 is changed to Half Open, TACK 807 is changed to PSEQ 711 + 1, and a random value Y is embedded in the sequence number TSEQ 806 of the receiving host (processing 1102). Furthermore, by the processing of step 1040 in FIG. The operation matrix 207 changed to the logic of returning a packet in which the TCP Flag 710 is set to SYN-ACK returns a SYN-ACK packet 1103 in which the PSEQ 711 is set to the value Y of the TSEQ 806.

攻撃者1100は、送信元IPアドレス706を偽装していたため、SYN−ACKパケット1103を受信することができない(処理1104)。そのため、適当な値Z+1をPACK712として、TCP Flag710がACKであるパケット1105を送信する。装置200は、受信パケットについて、図9のステップ927を経由して、ステップ929においてPACK712の値がTSEQ806(Y)+1の値と異なると判定して、ステップ982の処理によって、パケットを廃棄する(処理1106)。   Since the attacker 1100 has disguised the source IP address 706, the attacker 1100 cannot receive the SYN-ACK packet 1103 (processing 1104). Therefore, an appropriate value Z + 1 is set as PACK 712, and a packet 1105 in which TCP Flag 710 is ACK is transmitted. The apparatus 200 determines that the value of PACK 712 is different from the value of TSEQ 806 (Y) +1 in step 929 for the received packet via step 927 in FIG. 9, and discards the packet by the process of step 982 ( Process 1106).

また、攻撃者1100が、SYNパケット1101と同一の送信元IPアドレス706を用いて再びSYNパケット1107を送信した場合、装置200は、ステップ902及びステップ904を経由して、ステップ910の処理によって、タイマ160の生成する最新時刻133と通信状態のパケット受信の最新時刻TIME810との差が、予め定めた閾値Thrよりも小さいと判定した場合は、ステップ976の処理によって、パケットを廃棄する(処理1108)。   When the attacker 1100 transmits the SYN packet 1107 again using the same source IP address 706 as that of the SYN packet 1101, the apparatus 200 performs the process of step 910 via step 902 and step 904. When it is determined that the difference between the latest time 133 generated by the timer 160 and the latest time TIME 810 of packet reception in the communication state is smaller than a predetermined threshold Thr, the packet is discarded by the process of step 976 (process 1108). ).

以上、図11を用いて説明した処理により、本実施形態の装置200は、SYN flood型のDDoS/DoS攻撃による異常パケットを排除することができる。   As described above, the apparatus 200 according to the present embodiment can eliminate abnormal packets due to a SYN flood type DDoS / DoS attack by the process described with reference to FIG.

図12は、RFID/センサ/カメラ等のアクセス端末1200からの正常パケットを装置200が保護するシーケンス図を示す。   FIG. 12 shows a sequence diagram in which the apparatus 200 protects normal packets from the access terminal 1200 such as an RFID / sensor / camera.

アクセス端末1200は、サーバ504に向けて、送信シーケンス番号PSEQ711がX、受信シーケンス番号PACK712が0、TCP Flag710がSYNであるパケット1201を送信する。装置200は、図9のステップ902及びステップ904及びステップ974を経由して、ステップ975に示す処理を実行する。ステップ975の処理では、T.H.814をP.H.716に変更し、通信状態を変更、すなわち、STATE811をHALF OPENに変更し、TACK807をPSEQ711+1に変更し、ランダムな値Yを受信側ホストのシーケンス番号TSEQ806に埋め込む(処理1202)。さらに、図10のステップ1040の処理によって、TCP Flag710をSYN−ACKとしたパケットを返信する論理に変更された演算マトリックス207が、PSEQ711をTSEQ806の値YとしたSYN−ACKパケット1203を返信する。   The access terminal 1200 transmits to the server 504 a packet 1201 in which the transmission sequence number PSEQ 711 is X, the reception sequence number PACK 712 is 0, and the TCP Flag 710 is SYN. The apparatus 200 executes the process shown in Step 975 via Step 902, Step 904, and Step 974 in FIG. In the process of step 975, T.P. H. 814. H. Then, the communication state is changed, that is, STATE 811 is changed to HALF OPEN, TACK 807 is changed to PSEQ 711 + 1, and a random value Y is embedded in the sequence number TSEQ 806 of the receiving host (processing 1202). Further, the processing matrix 207 changed to the logic of returning a packet in which the TCP Flag 710 is set to SYN-ACK by the processing of Step 1040 in FIG. 10 returns a SYN-ACK packet 1203 in which the PSEQ 711 is set to the value Y of the TSEQ 806.

アクセス端末1200は、SYN−ACKパケット1203を受信すると、SYN−ACKパケット1203に記載のPSEQ711(Y)の値を用いて、PACK712をY+1として、TCP Flag710がACKであるパケット1204を送信する。装置200は、ステップ927を経由して、ステップ929の処理によってACK712の値がTSEQ806(Y)+1の値と一致すると判定して(処理1205)、ステップ981の処理を実行する。ステップ981の処理では、TSEQ806をPACK712に変更し、通信状態を変更、すなわち、STATE811をFULL OPENに変更する。これにより、通信の続行が可能となる。   When receiving the SYN-ACK packet 1203, the access terminal 1200 uses the value of the PSEQ 711 (Y) described in the SYN-ACK packet 1203, sets the PACK 712 to Y + 1, and transmits the packet 1204 in which the TCP Flag 710 is ACK. The apparatus 200 determines that the value of ACK 712 matches the value of TSEQ 806 (Y) +1 by the process of step 929 via step 927 (process 1205), and executes the process of step 981. In the process of Step 981, TSEQ806 is changed to PACK712, and the communication state is changed, that is, STATE 811 is changed to FULL OPEN. Thereby, communication can be continued.

以上、図12を用いて説明した処理により、装置200がアクセス端末1200からの正常パケットを保護することができる。   As described above, the apparatus 200 can protect the normal packet from the access terminal 1200 by the processing described with reference to FIG.

図13は、アクセス端末1200から送信された、アプリケーションレイヤプロトコルHTTPを利用した「ファイルA」を要求するGETコマンドを受け取った装置200が、装置内部に蓄積したデータを更新するシーケンス図を示す。なお、ここでは、外部メモリ205は、内部にポインタテーブル1312とファイルテーブル1314とを予め備える。   FIG. 13 shows a sequence diagram in which the device 200 that has received the GET command requesting “file A” using the application layer protocol HTTP transmitted from the access terminal 1200 updates the data accumulated in the device. Here, the external memory 205 includes a pointer table 1312 and a file table 1314 in advance.

装置200が、アプリケーションレイヤプロトコルHTTPを利用して、ファイルAを要求するGETコマンドを記載したパケット1301を受信すると、ステップ939及び941及び944を経由して、ステップ986の処理を実行する。ステップ986の処理では、TSEQ806をPACK712に変更し、TACK807をPSEQ711と各種コマンド714とPayload715との和に変更し、通信状態を変更、すなわち、STATE811をHTTP GET Startに変更する。さらに、図10のステップ1047の処理によって搭載論理が変更された演算マトリックス207が、ポインタテーブル1312を検索して、メモリ205にファイルAが蓄積されているか否かを判定する(処理1313)。ファイルAが蓄積されていない場合は、演算マトリックス207は、TCP Flag710をSYNにしたパケット1302を生成して、サーバ504に送信する。さらに、このときの、装置200とサーバ504との間の新たな通信状態155を、通信状態変更部104に出力する。   When the device 200 receives the packet 1301 describing the GET command requesting the file A using the application layer protocol HTTP, the device 200 executes the processing of step 986 via steps 939, 941 and 944. In step 986, TSEQ806 is changed to PACK712, TACK807 is changed to the sum of PSE711, various commands 714 and Payload 715, and the communication state is changed, that is, STATE 811 is changed to HTTP GET Start. Furthermore, the operation matrix 207 whose mounting logic has been changed by the processing of step 1047 in FIG. 10 searches the pointer table 1312 and determines whether or not the file A is stored in the memory 205 (processing 1313). When the file A is not accumulated, the operation matrix 207 generates a packet 1302 in which the TCP Flag 710 is set to SYN and transmits the packet 1302 to the server 504. Further, the new communication state 155 between the apparatus 200 and the server 504 at this time is output to the communication state changing unit 104.

装置200が、サーバ504からTCP Flag710がSYN−ACKであるSYN−ACKパケット1303を受信すると、ステップ933及び935を経由して、ステップ983の処理を実行する。ステップ983の処理では、TSEQ806をPACK712に変更し、通信状態を変更、すなわち、STATE811をFULL OPENに変更する。さらに、図10のステップ1043の処理によって搭載論理が変更された演算マトリックス207が、TCP Flag710がACKであるACKパケット1304と、アプリケーションレイヤプロトコルHTTPを利用してファイルAを要求するGETコマンドを含むパケット1305と、を送信する。さらに、演算マトリックス207は、変更された輻輳ウィンドウサイズ808と、送信済みウィンドウサイズ809と、送信済みパケットのID番号ID812と、ファイル送受信状態がActiveに変更されたSTATE811と、を含む通信状態155を、通信状態変更部104に出力する。   When the apparatus 200 receives the SYN-ACK packet 1303 in which the TCP Flag 710 is SYN-ACK from the server 504, the process of step 983 is executed via steps 933 and 935. In the process of step 983, TSEQ806 is changed to PACK712, and the communication state is changed, that is, STATE 811 is changed to FULL OPEN. Further, the operation matrix 207 whose mounting logic has been changed by the processing of Step 1043 in FIG. 10 includes an ACK packet 1304 in which the TCP Flag 710 is ACK, and a packet including a GET command for requesting the file A using the application layer protocol HTTP. 1305 is transmitted. Further, the operation matrix 207 includes a communication state 155 including the changed congestion window size 808, the transmitted window size 809, the ID number ID 812 of the transmitted packet, and the STATE 811 in which the file transmission / reception state is changed to Active. And output to the communication state changing unit 104.

装置200が、サーバ504からTCP Flag710がACKであり、ファイルAの分割データ1315を含むACKパケット1306/1308を受信すると、ステップ958、961、964又は967を経由して、ステップ970、971又は972の処理を実行する。ステップ970、971又は972の処理では、TSEQ806をPACK712に変更し、TACK807をPSEQ711と各種コマンド714とPayload715との和に変更し、通信状態を変更、すなわち、STATE811をSlow Start/Congestion Avoidance/Fast Recoveryのいずれかに変更する。   When the apparatus 200 receives the ACK packet 1306/1308 including the divided data 1315 of the file A from the server 504, the apparatus 200 receives the ACK packet 1306/1308 including the divided data 1315 of the file A, and then goes to steps 970, 971, or 972 via the steps 958, 961, 964, or 967. Execute the process. In the process of step 970, 971 or 972, TSEQ806 is changed to PACK712, TACK807 is changed to the sum of PSEQ711, various commands 714, and Payload715, and the communication state is changed, that is, STATE811 is set to Slow Start / ConsistencyAvailance / FasterRevance Change to one of the following.

さらに、図10のステップ1044、1045又は1046の処理によって搭載論理が変更された演算マトリックス207が、受け取ったファイルAの分割データ1315を、ファイルテーブル1314に蓄積する(処理1316)。このとき、TCP Flag710がACKであるACKパケット1307/1309を返信する。さらに、変更された輻輳ウィンドウサイズ808と、送信済みウィンドウサイズ809と、送信済みパケットのID番号ID812と、ファイル送受信状態とTCPコネクションの輻輳状態の変わったSTATE811と、を含む通信状態155を、通信状態変更部104に送信する。   Furthermore, the operation matrix 207 whose mounting logic has been changed by the processing of step 1044, 1045 or 1046 of FIG. 10 accumulates the received divided data 1315 of file A in the file table 1314 (processing 1316). At this time, the TCP Flag 710 returns an ACK packet 1307/1309 which is ACK. Further, the communication state 155 including the changed congestion window size 808, the transmitted window size 809, the ID number ID 812 of the transmitted packet, and the STATE 811 in which the file transmission / reception state and the congestion state of the TCP connection are changed is communicated. It transmits to the state change part 104.

装置200が、サーバ504からTCP Flag710がRST−ACKであるRST−ACKパケット1310を受信すると、ステップ921と923を経由して、ステップ979の処理を実行する。ステップ979の処理では、通信状態を変更、すなわち、STATE811をCloseに変更する。さらに、ステップ1042の処理によって搭載論理が変更された演算マトリックス207が、TCP Flag710がRST−ACKであるRST−ACKパケット1311を返信する。   When the apparatus 200 receives the RST-ACK packet 1310 in which the TCP Flag 710 is RST-ACK from the server 504, the process of Step 979 is executed via Steps 921 and 923. In the process of step 979, the communication state is changed, that is, STATE 811 is changed to Close. Further, the operation matrix 207 whose mounting logic has been changed by the processing of step 1042 returns an RST-ACK packet 1311 in which the TCP Flag 710 is RST-ACK.

以上、図13を用いて説明した処理により、装置200がアクセス端末1200からのファイル要求パケットをトリガにして、サーバからのファイルのダウンロードを行うことができる。   As described above, the processing described with reference to FIG. 13 allows the apparatus 200 to download a file from the server using the file request packet from the access terminal 1200 as a trigger.

図14は、アクセス端末1200から送信された、アプリケーションレイヤプロトコルHTTPを利用する、ファイルAを要求するGETコマンドを受け取った装置200が、装置内部に蓄積されたファイルAを、分割して返信するシーケンス図を示す。なお、ここでは、外部メモリ205は、ポインタテーブル1409とファイルテーブル1410を予め備える。   FIG. 14 shows a sequence in which the device 200 receiving the GET command for requesting the file A using the application layer protocol HTTP transmitted from the access terminal 1200 divides and returns the file A stored in the device. The figure is shown. Here, the external memory 205 includes a pointer table 1409 and a file table 1410 in advance.

装置200が、アプリケーションレイヤプロトコルHTTPを利用して、ファイルAを要求するGETコマンドを記載したパケット1301を受信すると、図9のステップ939、941及び944を経由して、ステップ986の処理を実行する。ステップ986の処理では、TSEQ806をPACK712に変更し、TACK807をPSEQ711と各種コマンド714とPayload715との和に変更し、通信状態を変更、すなわち、STATE811をHTTP GET Startに変更する。さらに、図10のステップ1047の処理によって搭載論理が変更された演算マトリックス207が、ポインタテーブル1312を検索して、外部メモリ205にファイルAが蓄積されているか否かを判定する(処理1408)。ファイルAが蓄積されている場合は、TCP Flag710がACKであり、ファイルAの分割データ1411を含むACKパケット1401を返信する。さらに、変更された輻輳ウィンドウサイズ808と、送信済みウィンドウサイズSWIN809と、送信済みパケットのID812と、ファイル送受信状態がActiveに変わったSTATE811と、ACK受信済みデータの最後尾が格納されているメモリ205のアドレスポインタADD813とを含む通信状態155を、通信状態変更部104に出力する。   When the device 200 receives the packet 1301 describing the GET command requesting the file A using the application layer protocol HTTP, the device 200 executes the processing of step 986 via steps 939, 941 and 944 of FIG. . In step 986, TSEQ806 is changed to PACK712, TACK807 is changed to the sum of PSE711, various commands 714 and Payload 715, and the communication state is changed, that is, STATE 811 is changed to HTTP GET Start. Further, the operation matrix 207 whose mounting logic has been changed by the processing of step 1047 in FIG. 10 searches the pointer table 1312 and determines whether or not the file A is stored in the external memory 205 (processing 1408). When the file A is accumulated, the TCP Flag 710 is ACK, and an ACK packet 1401 including the divided data 1411 of the file A is returned. Further, a memory 205 storing the changed congestion window size 808, transmitted window size SWIN 809, transmitted packet ID 812, STATE 811 in which the file transmission / reception state is changed to Active, and the end of the ACK received data are stored. The communication state 155 including the address pointer ADD813 is output to the communication state changing unit 104.

装置200が、アクセス端末1200からTCP Flag710がACKであるACKパケット1402/1404を受信すると、ステップ958、961、964又は967を経由して、ステップ970、971又は972の処理を実行する。ステップ970、971又は972の処理では、TSEQ806をPACK712に変更し、TACK807をPSEQ711と各種コマンド714とPayload715との和に変更し、通信状態を変更、すなわち、STATE811をSlow Start/Congestion Avoidance/Fast Recoveryのいずれかに変更する。   When the apparatus 200 receives an ACK packet 1402/1404 whose TCP Flag 710 is ACK from the access terminal 1200, the apparatus 200 performs the process of Step 970, 971 or 972 via Step 958, 961, 964 or 967. In the process of step 970, 971 or 972, TSEQ806 is changed to PACK712, TACK807 is changed to the sum of PSEQ711, various commands 714, and Payload715, and the communication state is changed, that is, STATE811 is set to Slow Start / ConsistencyAvailance / FasterRevance Change to one of the following.

さらに、図10のステップ1044、1045又は1046の処理によって搭載論理が変更された演算マトリックス207が、TCP Flag710がACKであり、ファイルAの分割データ1411を含むACKパケット1403を返信する。さらに、変更された輻輳ウィンドウサイズ808と、送信済みウィンドウサイズSWIN809と、送信済みパケットのID812と、ファイル送受信状態とTCPコネクションの輻輳状態が変わったSTATE811と、ACK受信済みデータの最後尾が格納されているメモリ205のアドレスポインタADD813を含む通信状態155とを、通信状態変更部104に送信する。また、ACKパケット1404を受信したときは、ファイルAが全て送信済みであることを示すので、通信状態152のSTATE811をファイル送受信状態完了を示すPassiveに変更し、パケットは返信しない。   Further, in the operation matrix 207 in which the mounting logic is changed by the processing of Steps 1044, 1045, or 1046 in FIG. 10, the TCP Flag 710 is ACK, and an ACK packet 1403 including the divided data 1411 of the file A is returned. Furthermore, the changed congestion window size 808, transmitted window size SWIN 809, transmitted packet ID 812, STATE 811 in which the file transmission / reception state and the TCP connection congestion state are changed, and the end of the ACK received data are stored. The communication state 155 including the address pointer ADD813 of the memory 205 is transmitted to the communication state changing unit 104. When the ACK packet 1404 is received, it indicates that the file A has already been transmitted. Therefore, the STATE 811 in the communication state 152 is changed to Passive indicating completion of the file transmission / reception state, and the packet is not returned.

装置200が、アクセス端末1200からTCP Flag710がFIN−ACKであるFIN−ACKパケット1405を受信すると、ステップ915と917を経由して、ステップ977の処理を実行する。ステップ977の処理では、通信状態を変更、すなわち、STATE811をCLOSEに変更し、TACK807をPSEQ711+1に変更し、TSEQ806をPACK712に変更する。さらに、ステップ1041の処理によって搭載論理が変更された演算マトリックス207が、TCP Flag710がFIN−ACKであるFIN−ACKパケット1406を返信する。このとき、出力された通信状態155のSTATE811がCLOSEであるので、装置200は、この後で受け取るACKパケット1407は、ステップ973の処理によって廃棄される。   When apparatus 200 receives FIN-ACK packet 1405 in which TCP Flag 710 is FIN-ACK from access terminal 1200, the process of step 977 is executed via steps 915 and 917. In the process of step 977, the communication state is changed, that is, STATE 811 is changed to CLOSE, TACK 807 is changed to PSEQ 711 + 1, and TSEQ 806 is changed to PACK 712. Further, the operation matrix 207 whose mounting logic has been changed by the processing of Step 1041 returns a FIN-ACK packet 1406 in which the TCP Flag 710 is FIN-ACK. At this time, since the output STATE 811 in the communication state 155 is CLOSE, the apparatus 200 discards the ACK packet 1407 received thereafter by the process of step 973.

以上、図14を用いて説明した処理により、装置200がアクセス端末1200からのファイル要求パケットに対して、要求ファイルを返信することができる。   As described above, the process described with reference to FIG. 14 allows the apparatus 200 to return a request file in response to the file request packet from the access terminal 1200.

図15は、アクセス端末1200によって送信された、アプリケーションレイヤプロトコルHTTPを利用した、「TABLE1 1510からI1=A」を満たすデータの抽出を要求するSELECTコマンドを引数に持つPOSTコマンドを受け取った装置200が、抽出結果を返信するシーケンス図を示す。メモリ205は、内部にデータベース用テーブルTABLE1 1510を用意しているものとする。   FIG. 15 shows a case where an apparatus 200 that has received a POST command transmitted by an access terminal 1200 and that has a SELECT command as an argument for requesting extraction of data that satisfies “TABLE1 1510 to I1 = A” using the application layer protocol HTTP. The sequence diagram which returns an extraction result is shown. It is assumed that the memory 205 has a database table TABLE1 1510 prepared therein.

装置200が、アプリケーションレイヤプロトコルHTTPを利用して、TABLE1 1510からI1=Aを満たすデータの抽出を要求するSELECTコマンドを引数に持つPOSTコマンドを記載したパケット1501を受信すると、図9のステップ947及び949を経由して、ステップ987の処理を実行する。ステップ987の処理では、TSEQ806をPACK712に変更し、TACK807をPSEQ711と各種コマンド714とPayload715との和に変更し、通信状態を変更、すなわち、STATE811をHTTP POST Select Startに変更する。   When the apparatus 200 receives a packet 1501 that describes a POST command having an argument of a SELECT command that requests extraction of data satisfying I1 = A from TABLE1 1510 using the application layer protocol HTTP, step 947 in FIG. The process of step 987 is executed via 949. In the process of step 987, TSEQ 806 is changed to PACK 712, TACK 807 is changed to the sum of PSE 711, various commands 714, and Pay load 715, and the communication state is changed, that is, STATE 811 is changed to HTTP POST Select Start.

さらに、図10のステップ1049の処理によって搭載論理が変更された演算マトリックス207が、TABLE1 1510からI1=Aを満たすデータ1511を検索し、これを抽出して(処理1509)、TCP Flag710がACKであり、抽出データ1511の分割データを含むACKパケット1502を返信する。さらに、変更された輻輳ウィンドウサイズ808と、送信済みウィンドウサイズSWIN809と、送信済みパケットのID812と、ファイル送受信状態がActiveに変わったSTATE811と、ACK受信済みデータの最後尾が格納されているメモリ205のアドレスポインタADD813を含む通信状態155を、通信状態変更部104に出力する。   Further, the operation matrix 207 whose mounting logic has been changed by the processing of step 1049 in FIG. 10 searches the data 1511 satisfying I1 = A from TABLE1 1510, extracts this (processing 1509), and TCP Flag 710 is ACK. Yes, an ACK packet 1502 including the divided data of the extracted data 1511 is returned. Further, a memory 205 storing the changed congestion window size 808, transmitted window size SWIN 809, transmitted packet ID 812, STATE 811 in which the file transmission / reception state is changed to Active, and the end of the ACK received data are stored. The communication state 155 including the address pointer ADD813 is output to the communication state changing unit 104.

装置200が、アクセス端末1200からTCP Flag710がACKであるACKパケット1503/1505を受信すると、ステップ958、961、964又は967を経由して、ステップ970、971又は972の処理を実行する。ステップ970、971又は972の処理では、TSEQ806をPACK712に変更し、TACK807をPSEQ711と各種コマンド714とPayload715との和に変更し、通信状態を変更、すなわち、STATE811をSlow Start/Congestion Avoidance/Fast Recoveryのいずれかに変更する。   When the device 200 receives an ACK packet 1503/1505 in which the TCP Flag 710 is ACK from the access terminal 1200, the device 200 performs the processing of Step 970, 971, or 972 via Step 958, 961, 964, or 967. In the process of step 970, 971 or 972, TSEQ806 is changed to PACK712, TACK807 is changed to the sum of PSEQ711, various commands 714, and Payload715, and the communication state is changed, that is, STATE811 is set to Slow Start / ConsistencyAvailance / FasterRevance Change to one of the following.

さらに、図10のステップ1044、1045又は1046の処理によって搭載論理が変更された演算マトリックス207が、TCP Flag710がACKであり、抽出データ1511の分割データを含むACKパケット1504を返信する。さらに、変更された輻輳ウィンドウサイズ808と、送信済みウィンドウサイズSWIN809と、送信済みパケットのID番号ID812と、ファイル送受信状態とTCPコネクションの輻輳状態の変わったSTATE811と、ACK受信済みデータの最後尾が格納されているメモリ205のアドレスポインタADD813を含む通信状態155を、通信状態変更部104に出力する。また、ACKパケット1505を受信したときは、抽出データ1511は全て送信済みであるため、通信状態152のSTATE811を、ファイル送受信状態完了を示すPassiveに変更し、パケットは返信されない。   Further, in the operation matrix 207 in which the mounting logic is changed by the processing of Steps 1044, 1045, or 1046 in FIG. 10, the TCP Flag 710 is ACK, and an ACK packet 1504 including the divided data of the extracted data 1511 is returned. Furthermore, the changed congestion window size 808, the transmitted window size SWIN 809, the ID number ID 812 of the transmitted packet, the STATE 811 in which the file transmission / reception state and the TCP connection congestion state are changed, and the end of the ACK received data are The communication state 155 including the stored address pointer ADD 813 of the memory 205 is output to the communication state changing unit 104. When the ACK packet 1505 is received, since all the extracted data 1511 has been transmitted, STATE 811 in the communication state 152 is changed to Passive indicating completion of the file transmission / reception state, and no packet is returned.

装置200が、アクセス端末1200からTCP Flag710がFIN−ACKであるFIN−ACKパケット1506を受信すると、ステップ915と917を経由して、ステップ977の処理を実行する。ステップ977では、通信状態を変更、すなわち、STATE811をCLOSEに変更し、TACK807をPSEQ711+1に変更し、TSEQ806をPACK712に変更する。さらに、ステップ1041の処理によって搭載論理が変更された演算マトリックス207が、TCP Flag710がFIN−ACKであるFIN−ACKパケット1507を返信する。さらに、出力した通信状態155のSTATE811がCLOSEであるため、装置200がこの後で受け取るACKパケット1508は、ステップ973の処理によって廃棄される。   When apparatus 200 receives FIN-ACK packet 1506 in which TCP Flag 710 is FIN-ACK from access terminal 1200, the process of step 977 is executed via steps 915 and 917. In step 977, the communication state is changed, that is, STATE 811 is changed to CLOSE, TACK 807 is changed to PSEQ 711 + 1, and TSEQ 806 is changed to PACK 712. Further, the operation matrix 207 whose mounting logic has been changed by the processing of Step 1041 returns a FIN-ACK packet 1507 in which the TCP Flag 710 is FIN-ACK. Further, since the STATE 811 of the communication state 155 that has been output is CLOSE, the ACK packet 1508 that the apparatus 200 receives thereafter is discarded by the process of step 973.

以上、図15を用いて説明した処理により、装置200がアクセス端末1200からのデータ選択要求パケットに対して、選択結果を返信することができる。   As described above, the processing described with reference to FIG. 15 allows the apparatus 200 to return the selection result in response to the data selection request packet from the access terminal 1200.

図16は、アクセス端末1200から送信された、アプリケーションレイヤプロトコルHTTPを利用する、TABLE1 1612に対して新たなデータ(I1,I2,I3)=(A3,B3,C3)の挿入を要求するINSERTコマンドを引数に持つPOSTコマンドを受け取った装置200が、新たなデータをTABLE1 1612に挿入すると共に、挿入結果をサーバ504にアップロードするシーケンス図を示す。なお、この例では、外部メモリ205は、内部にTABLE1 1612と、アップロードすべきデータへのポインタを複数記載したポインタテーブル1613とを予め備える。   FIG. 16 shows an INSERT command that is transmitted from the access terminal 1200 and requests insertion of new data (I1, I2, I3) = (A3, B3, C3) to TABLE1 1612 using the application layer protocol HTTP. FIG. 10 shows a sequence diagram in which the apparatus 200 that receives the POST command having “” as an argument inserts new data into TABLE 1 1612 and uploads the insertion result to the server 504. In this example, the external memory 205 includes a TABLE1 1612 therein and a pointer table 1613 in which a plurality of pointers to data to be uploaded are described in advance.

装置200が、アプリケーションレイヤプロトコルHTTPを利用して、TABLE1 1612に対して新たなデータ(I1,I2,I3)=(A3,B3,C3)の挿入を要求するINSERTコマンドを引数に持つPOSTコマンドを記載したパケット1601を受信すると、図9のステップ947、949、952及び955を経由して、ステップ989の処理が実行される。ステップ989の処理では、TSEQ806をPACK712に変更し、TACK807をPSEQ711と各種コマンド714とPayload715との和に変更し、通信状態を変更、すなわち、STATE811をHTTP POST Insert Startに変更する。   The apparatus 200 uses the application layer protocol HTTP to send a POST command having an INSERT command as an argument for requesting insertion of new data (I1, I2, I3) = (A3, B3, C3) to the TABLE1 1612. When the described packet 1601 is received, the process of step 989 is executed via steps 947, 949, 952 and 955 of FIG. In the process of Step 989, TSEQ 806 is changed to PACK 712, TACK 807 is changed to the sum of PSE 711, various commands 714, and Pay load 715, and the communication state is changed, that is, STATE 811 is changed to HTTP POST Insert Start.

さらに、図10のステップ1051の処理によって搭載論理が変更された演算マトリックス207が、TABLE1 1612に対して新たなデータ(I1,I2,I3)=(A3,B3,C3)を挿入すると共に、ポインタテーブル1613にデータ(I1,I2,I3)=(A3,B3,C3)へのポインタを記録する(処理1611)。さらに、演算マトリックス207は、ポインタテーブル1613に一定量のポインタが蓄積され、アップロードすべきデータが一定量を超えていると判断すると、当該データのサーバへのアップロードを開始する。このとき、TCP Flag710をSYNにしたパケット1602を生成してサーバ504に送信する。さらに、装置200とサーバ504との間の新たな通信状態155を、通信状態変更部104に出力する。   Furthermore, the operation matrix 207 whose mounting logic has been changed by the processing of step 1051 in FIG. 10 inserts new data (I1, I2, I3) = (A3, B3, C3) into TABLE1 1612 and pointers A pointer to data (I1, I2, I3) = (A3, B3, C3) is recorded in the table 1613 (process 1611). Further, when the operation matrix 207 determines that a certain amount of pointers are accumulated in the pointer table 1613 and the data to be uploaded exceeds a certain amount, the operation matrix 207 starts uploading the data to the server. At this time, a packet 1602 in which the TCP Flag 710 is set to SYN is generated and transmitted to the server 504. Further, a new communication state 155 between the apparatus 200 and the server 504 is output to the communication state changing unit 104.

装置200が、サーバ504からTCP Flag710がSYN−ACKであるSYN−ACKパケット1603を受信すると、ステップ933及び935を経由して、ステップ983の処理を行う。ステップ983の処理では、TSEQ806をPACK712に変更し、通信状態を変更、すなわち、STATE811をFULL OPENに変更する。さらに、図10のステップ1043の処理によって搭載論理が変更された演算マトリックス207が、TCP Flag710がACKであるACKパケット1604と、アプリケーションレイヤプロトコルHTTPを利用して新たなデータ(I1,I2,I3)=(A1,B1,C1)〜(A3,B3,C3)の挿入を要求するINSERTコマンドを引数に持つPOSTコマンドを記載したパケット1605を送信する。挿入すべきデータ1614は、ポインタテーブル1613とTABLE1 1612を用いて作成される。さらに、変更された輻輳ウィンドウサイズ808と、送信済みパケットのID812と、ファイル送受信状態がActiveに変わったSTATE811と、ACK受信済みデータの最後尾が格納されているメモリ205のアドレスポインタADD813を含む通信状態155を、通信状態変更部104に出力する。   When the apparatus 200 receives the SYN-ACK packet 1603 in which the TCP Flag 710 is SYN-ACK from the server 504, the process of step 983 is performed via steps 933 and 935. In the process of step 983, TSEQ806 is changed to PACK712, and the communication state is changed, that is, STATE 811 is changed to FULL OPEN. Further, the operation matrix 207 whose mounting logic has been changed by the processing of step 1043 in FIG. 10 is the new data (I1, I2, I3) using the ACK packet 1604 in which the TCP Flag 710 is ACK and the application layer protocol HTTP. = A packet 1605 describing a POST command having an INSERT command as an argument for requesting insertion of (A1, B1, C1) to (A3, B3, C3) is transmitted. Data 1614 to be inserted is created using the pointer table 1613 and TABLE1 1612. Further, communication including the changed congestion window size 808, the ID 812 of the transmitted packet, the STATE 811 in which the file transmission / reception state is changed to Active, and the address pointer ADD813 of the memory 205 in which the end of the ACK received data is stored The state 155 is output to the communication state changing unit 104.

装置200が、サーバ504からTCP Flag710がACKであるACKパケット1606/1608を受信すると、ステップ958、961、964又は967を経由して、ステップ970、971又は972の処理を実行する。ステップ970、971又は972の処理では、TSEQ806をPACK712に変更し、TACK807をPSEQ711と各種コマンド714とPayload715との和に変更し、通信状態を変更、すなわち、STATE811をSlow Start/Congestion Avoidance/Fast Recoveryのいずれかに変更する。   When the device 200 receives the ACK packet 1606/1608 in which the TCP Flag 710 is ACK from the server 504, the device 200 executes the processing of Step 970, 971, or 972 via Step 958, 961, 964, or 967. In the process of step 970, 971 or 972, TSEQ806 is changed to PACK712, TACK807 is changed to the sum of PSEQ711, various commands 714, and Payload715, and the communication state is changed, that is, STATE811 is set to Slow Start / ConsistencyAvailance / FasterRevance Change to one of the following.

さらに、図10のステップ1044、1045又は1046の処理によって搭載論理が変更された演算マトリックス207が、TCP Flag710がACKであり、パケット1605の続きが記載されたACKパケット1607を返信する。さらに、変更された輻輳ウィンドウサイズ808と、送信済みウィンドウサイズ809と、送信済みパケットのID番号ID812と、ファイル送受信状態とTCPコネクションの輻輳状態の変わったSTATE811と、を含む通信状態155を、通信状態変更部104に出力する。   Further, in the operation matrix 207 in which the mounting logic is changed by the processing of Steps 1044, 1045 or 1046 in FIG. 10, the TCP Flag 710 is ACK, and an ACK packet 1607 in which the continuation of the packet 1605 is described is returned. Further, the communication state 155 including the changed congestion window size 808, the transmitted window size 809, the ID number ID 812 of the transmitted packet, and the STATE 811 in which the file transmission / reception state and the congestion state of the TCP connection are changed is communicated. The data is output to the state change unit 104.

なお、演算マトリックス207は、ACKパケット1608を受信したときは、パケット1605に記載しきれなかったPOSTコマンドの続きが全て送信済みとなるため、STATE811は、ファイル送受信状態完了を示すPassiveに変更され、パケットは返信されない。さらに、ポインタテーブル1613の内容は、全て消去される。   In addition, when the operation matrix 207 receives the ACK packet 1608, since all the continuation of the POST command that could not be described in the packet 1605 has been transmitted, STATE 811 is changed to Passive indicating completion of the file transmission / reception state, Packets are not returned. Further, all the contents of the pointer table 1613 are erased.

装置200が、サーバ504からTCP Flag710がRST−ACKであるRST−ACKパケット1609を受信すると、ステップ921と923を経由して、ステップ979の処理を実行する。ステップ979の処理では、通信状態を変更、すなわち、STATE811をCloseに変更)する。さらに、ステップ1042の処理によって搭載論理が変更された演算マトリックス207が、TCP Flag710がRST−ACKであるRST−ACKパケット1610を返信する。   When the apparatus 200 receives the RST-ACK packet 1609 in which the TCP Flag 710 is RST-ACK from the server 504, the process of step 979 is executed via steps 921 and 923. In the process of step 979, the communication state is changed, that is, STATE 811 is changed to Close). Further, the operation matrix 207 whose mounting logic has been changed by the processing of step 1042 returns an RST-ACK packet 1610 in which the TCP Flag 710 is RST-ACK.

以上、図16を用いて説明した処理により、装置200がアクセス端末1200からのデータ挿入要求パケットに対して、データベーステーブルを更新し、サーバにファイルをアップロードすることができる。   As described above, the processing described with reference to FIG. 16 allows the apparatus 200 to update the database table in response to the data insertion request packet from the access terminal 1200 and upload the file to the server.

図17は、アクセス端末1200から送信された、アプリケーションレイヤプロトコルHTTPを利用した、TABLE1 1710からI1=Aを満たすデータの削除を要求するDELETEコマンドを引数に持つPOSTコマンドを受け取った装置200が、削除結果を返信するシーケンス図を示す。メモリ205は、内部にデータベース用テーブルTABLE1 1710を用意しているものとする。   FIG. 17 shows a case where the apparatus 200 that has received a POST command having an argument of a DELETE command that requests deletion of data satisfying I1 = A from TABLE1 1710 using the application layer protocol HTTP transmitted from the access terminal 1200 is deleted. The sequence diagram which returns a result is shown. It is assumed that the memory 205 has a database table TABLE1 1710 prepared therein.

装置200が、アプリケーションレイヤプロトコルHTTPを利用して、TABLE1 1710からI1=Aを満たすデータの削除を要求するDELETEコマンドを引数に持つPOSTコマンドを記載したパケット1701を受信すると、図9のステップ947、949及び952を経由して、ステップ988の処理を実行する。ステップ988の処理では、TSEQ806をPACK712に変更し、TACK807をPSEQ711と各種コマンド714とPayload715との和に変更し、通信状態を変更、すなわち、STATE811をHTTP POST Delete Startに変更する。   When the apparatus 200 receives a packet 1701 describing a POST command having a DELETE command as an argument for requesting deletion of data satisfying I1 = A from TABLE1 1710 using the application layer protocol HTTP, step 947 in FIG. The process of step 988 is executed via 949 and 952. In the process of step 988, TSEQ 806 is changed to PACK 712, TACK 807 is changed to the sum of PSE 711, various commands 714, and Pay load 715, and the communication state is changed, that is, STATE 811 is changed to HTTP POST Delete Start.

さらに、図10のステップ1050の処理によって搭載論理が変更された演算マトリックス207が、TABLE1 1710からI1=Aを満たすデータを削除して(処理1709)、TCP Flag710がACKであり、削除結果1711の分割データを含むACKパケット1702を返信する。さらに、変更した輻輳ウィンドウサイズ808と、送信済みウィンドウサイズSWIN809と、送信済みパケットのID812と、ファイル送受信状態がActiveに変わったSTATE811と、ACK受信済みデータの最後尾が格納されているメモリ205のアドレスポインタADD813を含む通信状態155を、通信状態変更部104に出力する。   Further, the operation matrix 207 whose mounting logic has been changed by the processing of step 1050 in FIG. 10 deletes data satisfying I1 = A from TABLE1 1710 (processing 1709), TCP Flag 710 is ACK, and the deletion result 1711 An ACK packet 1702 including the divided data is returned. Furthermore, the changed congestion window size 808, transmitted window size SWIN 809, transmitted packet ID 812, STATE 811 in which the file transmission / reception state has changed to Active, and the end of the ACK received data are stored in the memory 205. The communication state 155 including the address pointer ADD813 is output to the communication state changing unit 104.

装置200が、アクセス端末1200からTCP Flag710がACKであるACKパケット1703/1705を受信すると、ステップ958、961、964又は967を経由して、ステップ970、971又は972の処理を実行する。ステップ970、971又は972の処理では、TSEQ806をPACK712に変更し、TACK807をPSEQ711と各種コマンド714とPayload715との和に変更し、通信状態を変更、すなわち、STATE811をSlow Start/Congestion Avoidance/Fast Recoveryに変更する。さらに、ステップ1044、1045又は1046の処理によって搭載論理が変更された演算マトリックス207が、TCP Flag710がACKであり、削除結果1711の分割データを含むACKパケット1704を返信する。さらに、変更された輻輳ウィンドウサイズ808と、送信済みウィンドウサイズSWIN809と、送信済みパケットのID番号ID812と、ファイル送受信状態とTCPコネクションの輻輳状態との変わったSTATE811と、ACK受信済みデータの最後尾が格納されているメモリ205のアドレスポインタADD813を含む通信状態155を、通信状態変更部104に出力する。ACKパケット1705を受信したときは、削除結果1711を全て送信済みのため、通信状態152のSTATE811は、ファイル送受信状態完了を示すPassiveとなっており、パケットは返信されない。   When the apparatus 200 receives an ACK packet 1703/1705 in which the TCP Flag 710 is ACK from the access terminal 1200, the apparatus 200 performs the process of Step 970, 971, or 972 via Step 958, 961, 964, or 967. In the process of step 970, 971 or 972, TSEQ806 is changed to PACK712, TACK807 is changed to the sum of PSEQ711, various commands 714, and Payload715, and the communication state is changed, that is, STATE811 is set to Slow Start / ConsistencyAvailance / FasterRevance Change to Further, in the operation matrix 207 in which the mounting logic is changed by the processing of Steps 1044, 1045, or 1046, the TCP Flag 710 is ACK, and an ACK packet 1704 including the divided data of the deletion result 1711 is returned. Furthermore, the changed congestion window size 808, the transmitted window size SWIN 809, the ID number ID 812 of the transmitted packet, the STATE 811 in which the file transmission / reception state and the TCP connection congestion state have changed, and the end of the ACK received data The communication state 155 including the address pointer ADD813 of the memory 205 in which is stored is output to the communication state changing unit 104. When the ACK packet 1705 is received, the deletion result 1711 has already been transmitted, so the STATE 811 in the communication state 152 is Passive indicating completion of the file transmission / reception state, and the packet is not returned.

装置200が、アクセス端末1200からTCP Flag710がFIN−ACKであるFIN−ACKパケット1706を受信すると、ステップ915と917を経由して、ステップ977の処理を実行する。ステップ977の処理では、通信状態を変更、すなわち、STATE811をCLOSEに変更し、TACK807をPSEQ711+1に変更し、TSEQ806をPACK712に変更する。さらに、ステップ1041の処理によって搭載論理が変更された演算マトリックス207が、TCP Flag710がFIN−ACKであるFIN−ACKパケット1707を返信する。このとき、出力された通信状態155のSTATE811はCLOSEであるため、装置200が、この後で受け取るACKパケット1708は、ステップ973の処理によって廃棄される。   When the apparatus 200 receives the FIN-ACK packet 1706 in which the TCP Flag 710 is FIN-ACK from the access terminal 1200, the process of step 977 is executed via steps 915 and 917. In the process of step 977, the communication state is changed, that is, STATE 811 is changed to CLOSE, TACK 807 is changed to PSEQ 711 + 1, and TSEQ 806 is changed to PACK 712. Further, the operation matrix 207 whose mounting logic has been changed by the processing of Step 1041 returns a FIN-ACK packet 1707 in which the TCP Flag 710 is FIN-ACK. At this time, since the output STATE 811 in the communication state 155 is CLOSE, the ACK packet 1708 received by the apparatus 200 thereafter is discarded by the process of step 973.

以上、図17を用いて説明した処理により、装置200がアクセス端末1200からのデータ削除要求パケットに対して、データベーステーブルからのデータを削除し、削除結果を返信できる。   As described above, the apparatus 200 can delete the data from the database table and return the deletion result in response to the data deletion request packet from the access terminal 1200 by the processing described with reference to FIG.

以上、図11〜17を用いて説明した処理により、本発明の実施の形態の装置200は、アクセス端末等からの要求に基づいて、データベース等のアプリケーションレイヤのサーバサービスを実行することが可能になる。   As described above, the processing described with reference to FIGS. 11 to 17 enables the apparatus 200 according to the embodiment of the present invention to execute a server service of an application layer such as a database based on a request from an access terminal or the like. Become.

本発明の実施の形態の装置の構成ブロック図である。1 is a configuration block diagram of an apparatus according to an embodiment of the present invention. 本発明の実施の形態の動的再構成プロセッサの構成ブロック図である。It is a block diagram of the configuration of the dynamic reconfiguration processor of the embodiment of the present invention. 本発明の実施の形態の動的再構成プロセッサの動作の説明図である。It is explanatory drawing of operation | movement of the dynamic reconfiguration processor of embodiment of this invention. 本発明の実施の形態のシステムの説明図である。It is explanatory drawing of the system of embodiment of this invention. 本発明の実施の形態のシステムの説明図である。It is explanatory drawing of the system of embodiment of this invention. 本発明の実施の形態の外部コントローラ及び動的再構成プロセッサ及びメモリの構成ブロック図である。FIG. 2 is a configuration block diagram of an external controller, a dynamic reconfiguration processor, and a memory according to the embodiment of this invention. 本発明の実施の形態のパケットデータの説明図である。It is explanatory drawing of the packet data of embodiment of this invention. 本発明の実施の形態の通信状態テーブルの一例の説明図である。It is explanatory drawing of an example of the communication status table of embodiment of this invention. 本発明の実施の形態の通信状態の組合せの一例の説明図である。It is explanatory drawing of an example of the combination of the communication state of embodiment of this invention. 本発明の実施の形態の通信状態変更部の処理のフローチャートである。It is a flowchart of a process of the communication state change part of embodiment of this invention. 本発明の実施の形態の通信状態分類部と再構成トリガ生成用演算器群の処理のフローチャートである。It is a flowchart of a process of the communication status classification | category part of embodiment of this invention, and the arithmetic unit for a reconstruction trigger production | generation. 本発明の実施の形態の異常通信を排除する場合を示すシーケンス図である。It is a sequence diagram which shows the case where the abnormal communication of embodiment of this invention is excluded. 本発明の実施の形態の正常通信を保護する場合を示すシーケンス図である。It is a sequence diagram which shows the case where normal communication of embodiment of this invention is protected. 本発明の実施の形態のサーバからのファイルをダウンロードする処理のシーケンス図である。It is a sequence diagram of the process which downloads the file from the server of embodiment of this invention. 本発明の実施の形態のファイル要求パケットに対して要求ファイルを返信するシーケンス図である。It is a sequence diagram which returns a request file with respect to the file request packet of embodiment of this invention. 本発明の実施の形態のデータ選択要求パケットに対して選択結果を返信する処理のシーケンス図である。It is a sequence diagram of the process which returns a selection result with respect to the data selection request packet of embodiment of this invention. 本発明の実施の形態のデータ挿入要求パケットに対してデータベーステーブルを更新し、サーバへのファイルをアップロードする処理のシーケンス図である。It is a sequence diagram of the process which updates a database table with respect to the data insertion request packet of embodiment of this invention, and uploads the file to a server. 本発明の実施の形態のデータ削除要求パケットに対してデータベーステーブルからデータを削除し、削除結果を返信する処理のシーケンス図である。It is a sequence diagram of the process which deletes data from a database table with respect to the data deletion request packet of embodiment of this invention, and returns a deletion result. 従来の、汎用プロセッサの動作の説明図である。It is explanatory drawing of operation | movement of the conventional general purpose processor. 従来の、プロセッサの通信データ入出力の動作の説明図である。It is explanatory drawing of the operation | movement of the conventional communication data input / output of a processor.

符号の説明Explanation of symbols

200 装置
202 外部コントローラ
201 動的再構成プロセッサ
205 メモリ
501 アクセスネットワーク
502 エッジネットワーク
503 バックエンドシステム
200 Device 202 External Controller 201 Dynamic Reconfiguration Processor 205 Memory 501 Access Network 502 Edge Network 503 Back-end System

Claims (9)

ネットワークに接続され、前記ネットワークで転送されるパケットを受信し、前記パケットを送受信するホスト間の通信状態に応じた処理を実行する情報処理装置であって、  An information processing apparatus that is connected to a network, receives a packet transferred through the network, and executes processing according to a communication state between hosts that transmit and receive the packet,
前記パケットを送受信するインタフェースと、  An interface for transmitting and receiving the packet;
前記ホスト間のトランスポートレイヤプロトコルの遷移/輻輳状態と、アプリケーションレイヤプロトコルの種類と、前記アプリケーションレイヤプロトコルが実行中のコマンド及び前記コマンドの引数の種類と、前記コマンドの実行の進捗状態と、を含む通信状態を通信状態テーブルとして格納する通信状態格納部と、  A transition / congestion state of a transport layer protocol between the hosts, a type of an application layer protocol, a command being executed by the application layer protocol and a type of an argument of the command, and a progress state of execution of the command, A communication state storage unit that stores a communication state including a communication state table;
前記インタフェースと前記通信状態格納部とに接続され、前記通信状態格納部から前記通信状態を読み出し、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込み、前記変更された通信状態を出力する通信状態変更部と、  Connected to the interface and the communication state storage unit, reads the communication state from the communication state storage unit, changes the read communication state, and writes the changed communication state to the communication state storage unit , A communication state changing unit that outputs the changed communication state;
前記通信状態変更部に接続され、複数の機能を備える演算器を備え、前記演算器群の互いの配線を可変することで搭載論理を変更し、前記通信状態変更部によって出力された通信状態に基づいて前記受信されたパケットを処理する演算マトリックスと、  An arithmetic unit having a plurality of functions connected to the communication state changing unit is provided, the mounted logic is changed by changing the wiring of the arithmetic unit group, and the communication state is output by the communication state changing unit. An arithmetic matrix for processing the received packet based on:
前記演算マトリックスに接続され、前記演算器の機能と互いの配線とを特定する構成情報を格納する回路構成蓄積バッファと、を備え、  A circuit configuration accumulation buffer that is connected to the arithmetic matrix and stores configuration information for specifying the function of the arithmetic unit and mutual wiring;
前記通信状態変更部は、  The communication state changing unit
前記インタフェースによって受信されたパケットに含まれる情報に基づいて、当該パケットを送受信する前記ホスト間の通信状態を前記通信状態格納部から読み出し、  Based on the information included in the packet received by the interface, the communication state between the hosts that transmit and receive the packet is read from the communication state storage unit,
前記受信されたパケットに含まれる情報と前記読み出された通信状態の内容とに基づいて、前記読み出された通信状態を変更し、前記変更された通信状態を前記通信状態格納部に書き込むとともに、前記変更された通信状態を前記演算マトリックスに出力し、  Based on the information included in the received packet and the content of the read communication state, the read communication state is changed, and the changed communication state is written in the communication state storage unit. , Outputting the changed communication state to the operation matrix,
前記演算マトリックスは、  The arithmetic matrix is
前記通信状態変更部から出力された通信状態に基づいて、前記回路構成蓄積バッファから構成情報を一つ取得し、  Based on the communication state output from the communication state change unit, to obtain one configuration information from the circuit configuration accumulation buffer,
前記取得された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更して、前記受信されたパケットに前記通信状態に対応する処理を実行することを特徴とする情報処理装置。  Based on the acquired configuration information, the function of the arithmetic unit group and the mutual wiring are reconfigured, the mounting logic in the arithmetic matrix is changed, and the received packet corresponds to the communication state. An information processing apparatus that executes processing.
前記通信状態格納部は、  The communication state storage unit
前記ホスト間の通信状態を、送信元IPアドレスと、宛先IPアドレスと、TCPの送信元ポート番号と、TCPの宛先ポート番号と、の組毎に一つのエントリとして格納し、  The communication state between the hosts is stored as one entry for each set of a source IP address, a destination IP address, a TCP source port number, and a TCP destination port number,
前記エントリに、TCPコネクションの開始又は停止を示す値と、TCPコネクションの確立又は未確立を示す値と、TCPコネクションの輻輳状態を示す値と、TCPコネクションの送信側ホストのシーケンス番号と、TCPコネクションの受信側ホストのシーケンス番号と、一度に送信可能なデータサイズを表す輻輳ウィンドウサイズと、送信済みデータサイズを示す送信済みウィンドウサイズと、パケットを受信した最新時刻と、送信済みパケットのID番号と、ACK受信済みデータの最後尾が格納されているメモリのアドレスポインタと、アプリケーションレイヤが使用しているプロトコルの有無及びプロトコルの種類を示す値と、前記プロトコルが実行中のコマンド及びコマンド引数の有無並びに種類を示す値と、前記プロトコルのコマンドによって実行中のファイルの送受信が開始、未完了又は完了を示す値と、を格納し、  The entry includes a value indicating the start or stop of the TCP connection, a value indicating the establishment or non-establishment of the TCP connection, a value indicating the congestion state of the TCP connection, the sequence number of the sending host of the TCP connection, and the TCP connection. The receiving host's sequence number, the congestion window size indicating the data size that can be transmitted at one time, the transmitted window size indicating the transmitted data size, the latest time when the packet was received, and the ID number of the transmitted packet , The address pointer of the memory storing the end of the ACK received data, the value indicating the presence / absence of the protocol used by the application layer and the type of the protocol, the presence / absence of the command being executed by the protocol and the command argument A value indicating the type and the protocol Start to send and receive files running the command, stores a value indicating the incomplete or complete, and
前記通信状態変更部は、  The communication state changing unit
前記インタフェースによって受信されたパケットのヘッダに含まれる送信元IPアドレスと、宛先IPアドレスと、TCPの送信元ポート番号と、TCPの宛先ポート番号と、に基づいて、当該パケットを送受信する前記ホスト間の通信状態のエントリを、前記通信状態格納部から読み出すことを特徴とする請求項1に記載の情報処理装置。  Based on the source IP address, destination IP address, TCP source port number, and TCP destination port number included in the header of the packet received by the interface, between the hosts that transmit and receive the packet The information processing apparatus according to claim 1, wherein the communication state entry is read from the communication state storage unit.
前記インタフェースと前記演算マトリックスとに接続され、前記受信したパケットを一時的に蓄積してから前記演算マトリックスに出力するパケットバッファと、  A packet buffer connected to the interface and the operation matrix, temporarily storing the received packets and then outputting the packet to the operation matrix;
前記通信状態変更部と前記演算マトリックスとに接続され、前記通信状態変更部によって出力された通信状態を一時的に蓄積してから演算マトリックスに出力する通信状態蓄積バッファと、を備え、  A communication state storage buffer connected to the communication state changing unit and the calculation matrix, and temporarily storing the communication state output by the communication state changing unit and then outputting to the calculation matrix;
前記演算マトリックスは、  The arithmetic matrix is
前記取得されたパケット毎に、  For each acquired packet,
前記パケットバッファから出力されたパケットと、前記通信状態蓄積バッファから出力された通信状態とを取得し、  Obtaining a packet output from the packet buffer and a communication state output from the communication state storage buffer;
前記取得された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更して、前記受信されたパケットに前記通信状態に対応する処理を実行することを特徴とする請求項1に記載の情報処理装置。  Based on the acquired configuration information, the function of the arithmetic unit group and the mutual wiring are reconfigured, the mounting logic in the arithmetic matrix is changed, and the received packet corresponds to the communication state. The information processing apparatus according to claim 1, wherein processing is executed.
前記演算マトリックスに接続され、前記パケットに含まれる情報に基づいて前記パケットを分類し、前記分類されたパケットの分類結果を前記演算マトリックスに出力するパケット判定部と、  A packet determination unit connected to the calculation matrix, classifying the packet based on information included in the packet, and outputting a classification result of the classified packet to the calculation matrix;
前記通信状態判定部と前記パケット判定部と前記通信状態変更部と前記演算マトリックスとに接続され、前記通信状態判定部によって出力された分類結果と、前記パケット判定部によって出力された分類結果とに基づいて、前記パケットと前記通信状態に発生させる遅延を調整し、前記パケットと前記通信状態とを前記調整された遅延によって前記演算マトリックスに出力する遅延調整部と、を備え、  The communication state determination unit, the packet determination unit, the communication state change unit, and the calculation matrix are connected to the classification result output by the communication state determination unit and the classification result output by the packet determination unit. A delay adjusting unit that adjusts a delay generated in the communication state with the packet, and outputs the packet and the communication state to the operation matrix according to the adjusted delay,
前記演算マトリックスは、  The arithmetic matrix is
前記通信状態判定部によって出力された通信状態の分類結果と、前記パケット判定部によって出力されたパケットの分類結果と、に対応する一の構成情報を前記回路構成蓄積バッファから取得し、前記取得された構成情報に基づいて前記演算器群の機能と互いの配線とを再構成して、演算マトリックスの搭載論理を変更し、  One configuration information corresponding to the classification result of the communication state output by the communication state determination unit and the classification result of the packet output by the packet determination unit is acquired from the circuit configuration accumulation buffer, and the acquired Reconfigure the functions of the computing unit group and the mutual wiring based on the configuration information, and change the mounting logic of the computation matrix,
前記遅延調整部は、  The delay adjustment unit
前記通信状態判定部によって出力された通信状態の分類結果と、前記パケット判定部によって出力されたパケットの分類結果とに基づいて、前記演算マトリックスの再構成が終了するタイミングを予測し、又は、前記演算マトリックスから出力された再構成終了の通知を受け、  Based on the classification result of the communication state output by the communication state determination unit and the classification result of the packet output by the packet determination unit, predict the timing at which the reconstruction of the operation matrix ends, or Received the notification of the completion of reconstruction from the calculation matrix,
前記予測されたタイミング、又は、前記再構成終了の通知に基づいて、前記パケットと前記通信状態とに発生させる遅延を変更することを特徴とする請求項1に記載の情報処理装置。  The information processing apparatus according to claim 1, wherein a delay to be generated between the packet and the communication state is changed based on the predicted timing or the notification of completion of the reconfiguration.
前記通信状態変更部は、前記受信されたパケットのTCPヘッダに含まれるTCPフラグ番号と前記通信状態に含まれるTCPコネクションの確立又は未確立を示す値との組合せ、前記受信したパケットのTCPヘッダに含まれる送信又は受信シーケンス番号と前記通信状態に含まれる送信又は受信シーケンス番号との組合せ、及び、前記受信したパケットのTCPヘッダに含まれるTCPフラグ番号と前記通信状態に含まれるアプリケーションレイヤプロトコルのコマンドが実行中のファイル送受信の完了又は未完了を示す値との組合せ、の少なくとも一つの組み合わせに基づいて、前記通信状態を変更することを特徴とする請求項1に記載の情報処理装置。  The communication state changing unit includes a combination of a TCP flag number included in a TCP header of the received packet and a value indicating establishment or non-establishment of a TCP connection included in the communication state, and a TCP header of the received packet. A combination of a transmission or reception sequence number included in the communication state and a transmission or reception sequence number included in the communication state, and a TCP flag number included in a TCP header of the received packet and an application layer protocol command included in the communication state The information processing apparatus according to claim 1, wherein the communication state is changed based on at least one combination of a value indicating completion or incompleteness of file transmission / reception being executed. 前記通信状態変更部と前記演算マトリックスとに接続され、前記通信状態変更部によって出力された通信状態を分類し、前記分類された通信状態の分類結果を出力する通信状態判定部と、  A communication state determination unit that is connected to the communication state change unit and the calculation matrix, classifies the communication state output by the communication state change unit, and outputs a classification result of the classified communication state;
前記通信状態判定部と前記通信状態変更部と前記演算マトリックスとに接続され、前記通信状態判定部によって出力された分類結果に基づいて、前記パケットと前記通信状態とに発生させる遅延を調整し、前記パケットと前記通信状態とを前記調整された遅延によって前記演算マトリックスに出力する遅延調整部と、を備え、  Connected to the communication state determination unit, the communication state change unit, and the calculation matrix, and based on the classification result output by the communication state determination unit, adjust the delay generated in the packet and the communication state, A delay adjustment unit that outputs the packet and the communication state to the arithmetic matrix by the adjusted delay, and
前記演算マトリックスは、  The arithmetic matrix is
前記通信状態判定部によって出力された通信状態の分類結果に対応する一の構成情報を前記回路構成蓄積バッファから取得し、前記取得された構成情報に基づいて前記演算器群の機能と互いの配線とを再構成して、演算マトリックスの搭載論理を変更し、  One configuration information corresponding to the communication status classification result output by the communication status determination unit is acquired from the circuit configuration storage buffer, and the function of the computing unit group and the mutual wiring based on the acquired configuration information And change the mounting logic of the operation matrix,
前記遅延調整部は、  The delay adjustment unit
前記通信状態判定部によって出力された通信状態の分類結果に基づいて、演算マトリックスの再構成が終了するタイミングを予測し、又は、前記演算マトリックスから出力された再構成終了の通知を受け、  Based on the classification result of the communication state output by the communication state determination unit, predict the timing when the reconstruction of the operation matrix ends, or receive the notification of the completion of the reconstruction output from the operation matrix,
前記予測されたタイミング、又は、前記再構成終了の通知に基づいて、前記パケットと前記通信状態とに発生させる遅延を変更することを特徴とする請求項1に記載の情報処理装置。  The information processing apparatus according to claim 1, wherein a delay to be generated between the packet and the communication state is changed based on the predicted timing or the notification of completion of the reconfiguration.
前記演算マトリックスは、前記通信状態判定部によって出力された分類結果に基づいて、前記回路構成蓄積バッファに蓄積された構成情報の取得及び再構成を要求するための自律再構成トリガを生成する自律再構成トリガ生成用演算器群を備え、  The calculation matrix generates an autonomous reconfiguration trigger for requesting acquisition and reconfiguration of configuration information stored in the circuit configuration storage buffer based on the classification result output by the communication state determination unit. Computation group for generating configuration triggers
前記演算マトリックスと前記回路構成蓄積バッファとに接続され、前記自律再構成トリガ生成用演算器群によって生成された自律再構成トリガに基づいて、前記回路構成蓄積バッファから構成情報を選択し、前記選択された構成情報を前記演算マトリックスに出力する自律再構成機構を備え、  The configuration information is selected from the circuit configuration accumulation buffer based on the autonomous reconfiguration trigger generated by the autonomous reconfiguration trigger generation computing unit connected to the operation matrix and the circuit configuration accumulation buffer, and the selection An autonomous reconfiguration mechanism that outputs the configured information to the calculation matrix,
前記演算マトリックスは、  The arithmetic matrix is
前記自律再構成機構によって出力された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更して、前記受信されたパケットに前記通信状態に対応する処理を実行することを特徴とする請求項6に記載の情報処理装置。  Based on the configuration information output by the autonomous reconfiguration mechanism, reconfigure the functions of the arithmetic unit group and the mutual wiring, change the mounting logic inside the arithmetic matrix, and change the received packet to the received packet. The information processing apparatus according to claim 6, wherein a process corresponding to a communication state is executed.
前記演算マトリックスに接続され、前記構成情報を複数格納する回路構成蓄積領域と、前記構成情報毎のポインタを格納するポインタ領域とを備える外部メモリを備え、  An external memory that is connected to the arithmetic matrix and includes a circuit configuration storage area that stores a plurality of the configuration information, and a pointer area that stores a pointer for each configuration information;
前記演算マトリックスは、前記通信状態判定部によって出力された分類結果に基づいて、前記外部メモリに格納された構成情報の取得及び再構成を要求するための外部再構成トリガを生成し、前記外部メモリのポインタ領域に格納されたポインタを更新する外部再構成トリガ生成用演算器群を備え、  The calculation matrix generates an external reconfiguration trigger for requesting acquisition and reconfiguration of configuration information stored in the external memory based on the classification result output by the communication state determination unit, and the external memory Comprising an arithmetic unit group for generating an external reconfiguration trigger for updating a pointer stored in the pointer area of
前記外部メモリと前記演算マトリックスと前記回路構成蓄積バッファとに接続され、前記外部再構成トリガ生成用演算器群によって生成された外部再構成トリガに基づいて前記外部メモリのポインタ領域からポインタを取得し、前記ポインタに基づいて前記外部メモリの回路構成蓄積領域から構成情報を一つ取得し、前記取得された構成情報を前記回路構成蓄積バッファに書き込み、前記書き込まれた構成情報を前記演算マトリックスに出力する回路構成変更モジュールを実行するプロセッサを備え、  A pointer is connected to the external memory, the arithmetic matrix, and the circuit configuration accumulation buffer, and a pointer is acquired from a pointer area of the external memory based on an external reconfiguration trigger generated by the external reconfiguration trigger generation arithmetic unit group. One configuration information is acquired from the circuit configuration storage area of the external memory based on the pointer, the acquired configuration information is written to the circuit configuration storage buffer, and the written configuration information is output to the arithmetic matrix. A processor for executing the circuit configuration change module
前記演算マトリックスは、  The arithmetic matrix is
前記回路構成変更モジュールによって出力された構成情報に基づいて、前記演算器群の機能と互いの配線とを再構成して、演算マトリクス内部の搭載論理を変更して、前記受信されたパケットに前記通信状態に対応する処理を実行することを特徴とする請求項6に記載の情報処理装置。  Based on the configuration information output by the circuit configuration change module, the function of the arithmetic unit group and the mutual wiring are reconfigured, the mounted logic inside the arithmetic matrix is changed, and the received packet is changed to the received packet. The information processing apparatus according to claim 6, wherein a process corresponding to a communication state is executed.
前記通信状態判定部は、  The communication state determination unit
前記通信状態変更部によって出力された通信状態に含まれるTCPコネクションの開始又は停止を示す値を参照して、TCPコネクションの開始又は停止を判定することによって前記通信状態を分類し、  Classifying the communication state by determining the start or stop of the TCP connection with reference to a value indicating the start or stop of the TCP connection included in the communication state output by the communication state change unit;
TCPコネクションが開始している場合は、前記通信状態に含まれるTCPコネクションの確立又は未確立示す値を参照して、TCPコネクションの確立又は未確立を判定することによって前記通信状態を分類し、  If the TCP connection is started, refer to the value indicating the establishment or non-establishment of the TCP connection included in the communication state, classify the communication state by determining the establishment or non-establishment of the TCP connection,
TCPコネクションが確立している場合は、前記通信状態に含まれるTCPコネクションの輻輳状態を示す値を参照して、TCPコネクションの輻輳状態を判定することによって前記通信状態を分類し、  If a TCP connection is established, refer to a value indicating the congestion state of the TCP connection included in the communication state, classify the communication state by determining the congestion state of the TCP connection,
前記通信状態に含まれるアプリケーションレイヤプロトコルの有無を判定することによって前記通信状態を分類し、  Classifying the communication state by determining the presence or absence of an application layer protocol included in the communication state;
アプリケーションレイヤプロトコルがある場合は、前記通信状態に含まれるアプリケーションレイヤプロトコルの種類と、前記プロトコルが実行中のコマンド及び前記コマンドの引数の有無を判定することによって前記通信状態を分類し、  If there is an application layer protocol, classify the communication state by determining the type of application layer protocol included in the communication state, the command being executed by the protocol, and the presence of arguments of the command,
前記コマンド及び前記コマンドの引数がある場合は、前記コマンド及び前記コマンドの引数の種類を判定し、前記コマンドによって実行中のファイル送受信の進捗状態が開始、未完了又は完了の何れであるかを判定することによって前記通信状態を分類することを特徴とする請求項6に記載の情報処理装置。  If there is an argument of the command and the command, determine the type of the command and the argument of the command, and determine whether the progress status of the file transmission / reception being executed by the command is started, incomplete or completed The information processing apparatus according to claim 6, wherein the communication state is classified by doing so.
JP2006317427A 2006-11-24 2006-11-24 Information processing apparatus and information processing system Expired - Fee Related JP4740828B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006317427A JP4740828B2 (en) 2006-11-24 2006-11-24 Information processing apparatus and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006317427A JP4740828B2 (en) 2006-11-24 2006-11-24 Information processing apparatus and information processing system

Publications (3)

Publication Number Publication Date
JP2008131584A JP2008131584A (en) 2008-06-05
JP2008131584A5 JP2008131584A5 (en) 2009-10-08
JP4740828B2 true JP4740828B2 (en) 2011-08-03

Family

ID=39556956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006317427A Expired - Fee Related JP4740828B2 (en) 2006-11-24 2006-11-24 Information processing apparatus and information processing system

Country Status (1)

Country Link
JP (1) JP4740828B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5088830B2 (en) * 2008-10-30 2012-12-05 岩崎通信機株式会社 Packet passing control method
JP5470828B2 (en) * 2008-12-10 2014-04-16 株式会社日立製作所 COMMUNICATION DEVICE FOR DATA DISTRIBUTION AND DATA DISTRIBUTION SYSTEM
WO2011096307A1 (en) * 2010-02-03 2011-08-11 日本電気株式会社 Proxy device and operation method thereof
CN113272793B (en) * 2018-11-05 2025-08-19 赛灵思公司 Network interface device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3660494B2 (en) * 1998-02-03 2005-06-15 株式会社日立製作所 Communication protocol processing method and communication protocol processing apparatus

Also Published As

Publication number Publication date
JP2008131584A (en) 2008-06-05

Similar Documents

Publication Publication Date Title
US20240259322A1 (en) Systems, devices and methods with offload processing devices
CN101345701B (en) Information processing apparatus and information processing system
US20200218678A1 (en) Enabling use of non-volatile media - express (nvme) over a network
CN114201421B (en) A data stream processing method, storage control node and readable storage medium
US7773630B2 (en) High performance memory based communications interface
JP2009093348A (en) Information processing apparatus and information processing system
US20230127722A1 (en) Programmable transport protocol architecture
US8176300B2 (en) Method and apparatus for content based searching
US20160132541A1 (en) Efficient implementations for mapreduce systems
CN107179878B (en) Data storage method and device based on application optimization
US20020108059A1 (en) Network security accelerator
US20020161848A1 (en) Systems and methods for facilitating memory access in information management environments
US20020107903A1 (en) Methods and systems for the order serialization of information in a network processing environment
US20130132503A1 (en) Computer system and network interface supporting class of service queues
WO2019014237A1 (en) Access node for data centers
EP3744066B1 (en) Method and device for improving bandwidth utilization in a communication network
US12314178B2 (en) Management of distributed shared memory
JP2004172917A (en) Packet search apparatus, packet processing search method used therefor, and program therefor
CN112953967A (en) Network protocol unloading device and data transmission system
WO2020106626A1 (en) History-based compression pipeline for data compression accelerator of a data processing unit
Qiu et al. Full-kv: Flexible and ultra-low-latency in-memory key-value store system design on cpu-fpga
CN120029856A (en) Data interaction system and method, electronic device and storage medium
US9172744B2 (en) Scalable storage with programmable networks
US20150254191A1 (en) Software Enabled Network Storage Accelerator (SENSA) - Embedded Buffer for Internal Data Transactions
US10154079B2 (en) Pre-boot file transfer system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090811

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110307

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110502

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees