WO2006087832A1 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
WO2006087832A1
WO2006087832A1 PCT/JP2005/012605 JP2005012605W WO2006087832A1 WO 2006087832 A1 WO2006087832 A1 WO 2006087832A1 JP 2005012605 W JP2005012605 W JP 2005012605W WO 2006087832 A1 WO2006087832 A1 WO 2006087832A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
processing
comparison
circuit
search
Prior art date
Application number
PCT/JP2005/012605
Other languages
English (en)
French (fr)
Inventor
Mitsugu Nagoya
Original Assignee
Duaxes Corporation
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 Duaxes Corporation filed Critical Duaxes Corporation
Priority to EP20050765488 priority Critical patent/EP1850558A1/en
Priority to JP2007503569A priority patent/JP4027416B2/ja
Priority to US11/793,565 priority patent/US20080270360A1/en
Priority to CN2005800493262A priority patent/CN101147381B/zh
Priority to CA 2577283 priority patent/CA2577283A1/en
Priority to US11/884,526 priority patent/US8336092B2/en
Priority to CA002596948A priority patent/CA2596948A1/en
Priority to PCT/JP2005/015480 priority patent/WO2006087837A1/ja
Priority to KR20077021091A priority patent/KR20070103774A/ko
Priority to JP2007503571A priority patent/JP4546998B2/ja
Priority to CN2005800493258A priority patent/CN101147138B/zh
Priority to EP05774657A priority patent/EP1850234A1/en
Publication of WO2006087832A1 publication Critical patent/WO2006087832A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation

Definitions

  • the present invention relates to a data processing technique, and more particularly, to a data processing apparatus that processes communication data.
  • FIG. 1 shows a configuration of a conventional communication control device 1.
  • the conventional communication control apparatus 1 includes a communication control unit 2 on the reception side, a packet processing unit 3, and a communication control unit 4 on the transmission side.
  • Each of the communication control units 2 and 4 includes PHY processing units 5a and 5b that perform processing on the physical layer of the packet, and MAC processing units 6a and 6b that perform processing on the MAC layer of the packet.
  • the packet processing unit 3 includes a protocol processing unit that performs processing according to a protocol, such as an IP processing unit 7 that performs IP (Internet Protocol) protocol processing and a TCP processing unit 8 that performs TCP (Transport Control Protocol) protocol processing.
  • an AP processing unit 9 that performs application layer processing.
  • the AP processing unit 9 executes processing such as filtering according to data included in the packet.
  • Patent Document 1 Japanese Patent Laid-Open No. 4-180425
  • the packet processing unit 3 is realized by software using a CPU that is a general-purpose processor and an OS that runs on a CPU.
  • the performance of the communication control device 1 depends on the CPU performance, Even trying to implement a communication control device that can process large-capacity packets quickly has its own limitations. For example, with a 64-bit CPU, the maximum amount of data that can be processed simultaneously at one time is 64 bits, and there was no communication control device with higher performance.
  • maintenance work such as OS version upgrades that would never have the possibility of security holes was required.
  • the present invention has been made in view of such circumstances, and an object thereof is to provide a technique for realizing a high-speed data processing device.
  • the data processing apparatus includes a first storage unit that stores reference data that serves as a reference for determining the content of processing to be performed on acquired data, and whether or not the reference data is included in the data.
  • a search unit that searches the data by comparing the data with the reference data, a second storage unit that stores the search result by the search unit and the contents of the processing in association with each other, and the search result
  • a processing unit that executes, on the data, processing contents associated with the search result based on the results, and the search unit is configured by a wired logic circuit.
  • the search unit or the processing unit may be realized using an FPGA (Field Programmable Gate Array) or the like.
  • FPGA Field Programmable Gate Array
  • the wired logic circuit may include a plurality of first comparison circuits that compare the data and the reference data in bit units. By providing 64 or more first comparison circuits in parallel, for example, it is possible to realize a circuit that can compare more bits than the CPU at a time.
  • the search unit may include a position detection circuit that detects a position of comparison target data to be compared with the reference data from the communication data.
  • the position detection circuit compares position specifying data for specifying the position of the comparison target data and the communication data.
  • a plurality of second comparison circuits to be compared, and the communication data may be input to the plurality of second comparison circuits by shifting a position by a predetermined data length and compared in parallel with the position specifying data. .
  • the search unit may include a binary search circuit for searching whether or not the reference data is included in the communication data by binary search.
  • the reference data is stored in descending order from the last data position of the first storage unit, and 0 is set to the remaining data. It may be stored. If the reference data is 0, the next binary search can be performed without performing the comparison, so that the binary search can be executed at a higher speed.
  • the search unit divides the plurality of reference data stored in the first storage unit into three or more ranges
  • the comparison target data to be compared with the reference data is any of those ranges.
  • a determination circuit for determining whether the image belongs may be included.
  • the determination circuit includes a plurality of third comparison circuits for comparing the reference data at the boundary of the range and the comparison target data, and the comparison target data is any one of the three or more ranges by the plurality of third comparison circuits. It may be determined in parallel whether or not they belong.
  • the search speed can be improved by specifying the range prior to the research.
  • the reference data stored at a predetermined position in the first storage unit may be input to the third comparison circuit as the reference data for the boundary. By making it possible to automatically set the reference data for the boundary, processing can be started immediately even if the contents of the first storage unit are changed.
  • the range may be set according to a distribution of appearance frequencies of the reference data in the communication data. Thereby, the search efficiency can be further improved, and a higher-speed search can be realized.
  • the first storage unit further stores information indicating a position of comparison target data in the communication data, and the search unit extracts the comparison target data based on the information indicating the position. Also good. As a result, comparison target data can be set more flexibly, and search efficiency can be improved.
  • the first storage unit or the second storage unit may be provided to be rewritable from the outside. . This makes it possible to variably set reference data and processing contents, and to use the data processing apparatus for various data processing.
  • the search unit may start comparing the reference data with the data when the data to be compared with the reference data is acquired without waiting for the acquisition of all data of the communication packet. Thereby, the time required for processing can be shortened. Not only the comparison process in the search unit but also other processes should be started without waiting for the acquisition of all data.
  • This data processing device includes a plurality of any of the data processing devices described above, and each of the data processing devices includes two interfaces for inputting / outputting data to / from a communication line.
  • the direction of processing the data is variably controlled by switching the input and output of the interface.
  • another data processing device can be operated as an alternative, and fault tolerance can be improved.
  • the other data processing device can be operated as an alternative, and maintenance can be performed without stopping the operation.
  • by changing the direction of the flow of data processed by each data processing device according to traffic conditions, etc. it is possible to appropriately cope with traffic increase and decrease.
  • FIG. 1 is a diagram showing a configuration of a conventional communication control device.
  • FIG. 2 is a diagram showing a configuration of a communication control apparatus according to the embodiment.
  • FIG. 3 is a diagram showing a configuration of a packet processing circuit.
  • FIG. 4 is a diagram showing a configuration of a position detection circuit.
  • FIG. 5 is a diagram showing an example of internal data of a first database.
  • FIG. 6 is a diagram showing another example of internal data of the first database.
  • FIG. 7 is a diagram showing still another example of internal data in the first database.
  • FIG. 8 is a diagram showing a configuration of a comparison circuit included in a Neuner research circuit.
  • FIG. 9 is a diagram showing an example of internal data of a second database.
  • FIG. 10 is a diagram showing another example of internal data of the second database.
  • FIG. 11 is a diagram showing another configuration example of the communication control apparatus according to the embodiment.
  • 10 communication control device 12 communication control unit, 14 switching control unit, 20 packet processing circuit, 30 search circuit, 32 position detection circuit, 33 comparison circuit, 34 index circuit, 35 comparison circuit, 36 binary search circuit, 40 processing execution circuit, 50 first database, 6 0 second database.
  • FIG. 2 shows a configuration of a communication control apparatus that is an example of the data processing apparatus of the present invention.
  • the communication control device 10 according to the present embodiment is a dedicated communication circuit using a wired logic circuit instead of the packet processing unit 3 realized by software including the CPU and OS in the conventional communication control device 1 shown in FIG.
  • a packet processing circuit 20 composed of hardware.
  • the CPU which is a general-purpose processing circuit, is equipped with a dedicated hardware circuit for processing communication data rather than processing the communication data by the operating OS and software. It is possible to overcome this limitation and realize a communication control device with high processing capability.
  • the communication data and the reference are used using the CPU.
  • the CPU needs to repeat the process of reading 64 bits from the communication data into the memory, comparing it with the reference data, and then reading the next 64 bits into the memory. Reading time is limited, processing speed is limited There is.
  • a dedicated hardware circuit configured by a yard logic circuit is provided in order to compare communication data and reference data.
  • the communication control device 1 In order to enable comparison of data lengths longer than 64 bits, for example, data lengths of 1024 bits, it includes a plurality of comparators provided in parallel. In this way, by setting up dedicated hardware, a large number of bit matching can be executed in parallel at the same time.
  • the communication control device 1 using a conventional CPU can process 1024 bits at a time instead of processing only 64 bits at a time, and the processing speed can be dramatically improved.
  • Increasing the number of comparators improves processing performance, but also increases cost and size, so it is only necessary to design an optimal hardware circuit in consideration of desired processing performance, cost, size, etc. .
  • the communication control device 10 of the present embodiment is configured by dedicated hardware using a wired logic circuit, and therefore does not require an OS (Operating System). For this reason, it is possible to reduce costs and man-hours for management and maintenance that require operations such as OS installation, bug handling, and version upgrade.
  • OS Operating System
  • CPUs that require general-purpose functions they do not include unnecessary functions, so you can reduce costs without using extra resources, reduce circuit area, and increase processing speed.
  • OS Operating System
  • the conventional communication control device 1 processes a packet by software premised on the CPU and the OS, receives all the data of the packet, performs a powerful protocol process, and passes the data to the application. .
  • processing since processing is performed by a dedicated hardware circuit, it is not necessary to start processing after receiving all the data of the packet. If received, processing can be started at an arbitrary time without waiting for reception of subsequent data. For example, position detection processing in a position detection circuit described later can be started when position specifying data for specifying the position of comparison target data is received. In this way, receiving all data Since various processes can be executed in a floating manner without waiting, the time required to process packet data can be shortened.
  • FIG. 3 shows an internal configuration of the packet processing circuit.
  • the packet processing circuit 20 includes a first database 50 that stores reference data serving as a reference for determining the contents of processing to be performed on communication data, and the received communication data includes reference data! Whether or not the search circuit 30 for searching by comparing the communication data with the reference data, and the search result by the search circuit 30 and the contents of the processing to be executed for the communication data are stored in association with each other.
  • the second database 60 includes a processing execution circuit 40 that processes communication data based on the search result by the search circuit 30 and the conditions stored in the second database 60.
  • the search circuit 30 divides the reference data stored in the first database 50 into three or more ranges, the position detection circuit 32 for detecting the position of the comparison target data to be compared with the reference data from the communication data Index circuit 34, which is an example of a determination circuit that determines to which of the ranges the comparison target data belongs, and a binary search that searches for reference data that matches the comparison target data within the determined range Circuit 36.
  • the binary search method is used in the present embodiment.
  • FIG. 4 shows the internal configuration of the position detection circuit.
  • the position detection circuit 32 includes a plurality of comparison circuits 33a to 33f for comparing the position specifying data for specifying the position of the comparison target data with the communication data.
  • six comparison circuits 33a to 33f are provided, but as will be described later, the number of comparison circuits may be arbitrary.
  • Communication data is input to each of the comparison circuits 33a to 33f with a predetermined data length, for example, shifted by 1 byte.
  • the plurality of comparison circuits 33a to 33f the position specifying data to be detected and the communication data are compared in parallel at the same time.
  • a character string “No. # # #” included in communication data is detected, and the character string is detected.
  • the number “# # #” included is compared with the reference data. If it matches the reference data, the packet is allowed to pass, and if it does not match, the packet is discarded.
  • the communication data in order to detect the position specifying data “No.” for specifying the position of the number “# # #” from the communication data, the communication data “01 No. 361. "Is shifted by one character and input to the comparison circuits 33a to 33f.
  • the position detection circuit 32 may be used as a circuit for detecting a character string for general purposes, not only for detecting position specifying data. It may also be configured to detect position specific data in bit units, not just character strings.
  • FIG. 5 shows an example of internal data of the first database.
  • the first database 50 stores the data sorted according to some sort condition, which is a reference data force used as a reference for determining the contents of processing such as knot filtering, routing, switching, and replacement.
  • some sort condition which is a reference data force used as a reference for determining the contents of processing such as knot filtering, routing, switching, and replacement.
  • 1000 pieces of reference data are stored.
  • an offset 51 indicating the position of the comparison target data in the communication data is stored.
  • the data structure in the knot is defined in bits, so the processing contents of the packet are determined. If the position of the flag information or the like for this purpose is set as the offset 51, the processing contents can be determined by comparing only the necessary bits, so that the processing efficiency can be improved. Even if the data structure of the packet is changed, it can be dealt with by changing the offset 51.
  • the first database 50 may store the data length of the comparison target data. As a result, comparison can be performed by operating only the necessary comparators, so that search efficiency can be improved.
  • the index circuit 34 determines to which of these ranges the comparison target data belongs.
  • 1000 pieces of reference data are divided into four ranges 52a to 52d, each having 250 pieces.
  • the index circuit 34 includes a plurality of comparison circuits 35a to 35c that compare the reference data at the boundary of the range with the comparison target data. By comparing the comparison target data and the boundary reference data simultaneously in parallel by the comparison circuits 35a to 35c, it is possible to determine which range the comparison target data belongs to by one comparison process.
  • the boundary reference data input to the comparison circuits 35a to 35c of the index circuit 34 may be set by a device provided outside the communication control device 10, or may be set in advance in the first database 50.
  • the reference data for the position may be entered automatically! In the latter case, even if the first database 50 is updated, the reference data at a predetermined position in the first database 50 is automatically input to the comparison circuits 35a to 35c. Processing can be executed.
  • the binary search circuit 36 executes a search by the binary search method.
  • the binary search circuit 36 further divides the range determined by the index circuit 34 into two, and compares the reference data at the boundary position with the comparison target data to determine which range it belongs to.
  • Binary search circuit 3 6 includes a plurality of comparison circuits for comparing the reference data and the comparison target data in bit units, for example, 1024 in this embodiment, and simultaneously performs 1024-bit bit matching. If it is determined which of the two divided ranges, the reference data at the boundary position is read by dividing the range into two and compared with the comparison target data. Thereafter, the range is further limited by repeating this process, and finally the reference data that matches the comparison target data is searched.
  • the comparison target data following the position specifying data “No.” is the number “361”. Since there is a space for one character between the position identification data “No.” and the comparison target data “361”, offset 51 is set to “8” to remove this space from the comparison target data. Is set.
  • the Neua research circuit 36 skips “8” bits, that is, one byte from the communication data following the position specifying data “No.”, and reads “361” as the comparison target data.
  • comparison circuits 35a to 35c of the index circuit 34 "361" is input as comparison target data, and the reference data “reference data” at the boundary between the ranges 52a and 52b is input to the comparison circuit 35a as reference data.
  • Reference data “704” at the boundary between the ranges 52b and 52c is input to the comparison circuit 35b.
  • Reference data “937” at the boundary between the ranges 52c and 52d is input to the comparison circuit 35c. Comparisons are made simultaneously by the comparison circuits 35a to 35c, and it is determined that the comparison target data “361” belongs to the range 52a. Thereafter, the binary search circuit 36 searches whether or not the comparison target data “361” exists in the reference data.
  • FIG. 6 shows another example of internal data of the first database.
  • the number of reference data is less than the number of data that can be held in the first database 50, here 1000.
  • the first database 50 stores the reference data in descending order from the last data position.
  • 0 is stored in the remaining data.
  • the database is always full by allocating from the back of the loading area without allocating the leading force data, and if there is a vacancy at the beginning of the loading area, all the vacancy is zero-suppressed.
  • the maximum time for binary search can be made constant.
  • the binary search circuit 36 also performs reference data during the search. When “0” is read as the data, the comparison result is self-explanatory, so the range can be specified without comparison and the next comparison can be made. This can improve the search speed.
  • the reference data when the reference data is stored in the first database 50, the reference data is stored in the first data position ascending order.
  • the comparison process as described above cannot be omitted in the remaining data.
  • the comparison technique described above is realized by configuring the search circuit 30 with a dedicated hardware circuit.
  • FIG. 7 shows still another example of the internal data of the first database.
  • the number of reference data belonging to the range is uneven, such as 500 for the range 52a and 100 for the range 52b, which do not divide the reference data evenly into three or more ranges. ing.
  • These ranges may be set according to the distribution of the appearance frequency of the reference data in the communication data. That is, the ranges may be set so that the sum of the appearance frequencies of the reference data belonging to the respective ranges is substantially the same. This can improve the search efficiency.
  • the reference data input to the comparison circuits 35a to 35c of the index circuit 34 may be capable of changing an external force. As a result, the range can be set dynamically and the search efficiency can be optimized.
  • FIG. 8 shows a configuration of a comparison circuit included in the binary search circuit.
  • the bin research circuit 36 includes 1024 comparison circuits 36a, 36b,. Each comparison circuit 36a, 36b,... Receives reference data 54 and comparison target data 56 one bit at a time, and compares them.
  • the internal configurations of the comparison circuits 35a to 35c of the index circuit 34 are also the same. In this way, by executing the comparison process with a dedicated hardware circuit, a large number of comparison circuits can be operated in parallel and a large number of bits can be compared at the same time. be able to.
  • FIG. 9 shows an example of internal data of the second database.
  • the second database 60 includes a search result field 62 for storing the search result by the search circuit 30 and a process content field 64 for storing the content of the process to be executed on the communication data, and corresponds the search result to the process content Hold it.
  • a condition is set that allows the packet to pass through and discards the packet if it is not included.
  • the processing execution circuit 40 searches the second database 60 for processing contents based on the search result, and executes processing on the communication data.
  • the processing execution circuit 40 may also be realized by a wired logic circuit.
  • FIG. 10 shows another example of internal data of the second database.
  • the processing content is set for each reference data.
  • information about the route may be stored in the second database 60.
  • the process execution circuit 40 executes processes such as filtering, routing, switching, and replacement stored in the second database 60 according to the search result by the search circuit 30.
  • the first database 50 and the second database 60 may be integrated.
  • the first database and the second database are provided to be rewritable by an external force. By exchanging these databases, various data processing and communication control can be realized using the same communication control device 10. It is also possible to set up two or more databases that store the reference data to be searched and perform multi-step search processing! At this time, more complicated conditional branches may be realized by providing two or more databases that store search results and processing contents in association with each other. In this way, if multiple databases are used to perform multi-stage searches, multiple position detection circuits 32, index circuits 34, binary search circuits 36, etc. may be provided.
  • the data used for the comparison described above may be compressed by the same compression logic.
  • the same comparison as usual is possible.
  • the amount of data to be loaded at the time of comparison can be reduced. If the amount of data to be loaded is reduced, the time required to read data from the memory is shortened, so the overall processing time can be shortened.
  • the amount of the comparator can be reduced, it is possible to contribute to the downsizing, weight saving, and cost reduction of the apparatus.
  • the data used for the comparison may be stored in a compressed format, or may be compressed after being read from the memory and before the comparison.
  • FIG. 11 shows another configuration example of the communication control apparatus according to the present embodiment.
  • the communication control device 10 shown in this figure has two communication control units 12 having the same configuration as the communication control device 10 shown in FIG. Further, a switching control unit 14 for controlling the operation of each communication control unit 12 is provided.
  • Each communication control unit 12 has two input / output interfaces 16 and is connected to two networks on the upstream side and the downstream side via the respective input / output interfaces 16.
  • the communication control unit 12 inputs communication data in either network power and outputs the processed data to the other network.
  • the switching control unit 14 switches the direction of the flow of communication data in the communication control unit 12 by switching the input / output of the input / output interface 16 provided in each communication control unit 12. This enables bi-directional communication control that goes beyond just one direction.
  • the switching control unit 14 may control so that one of the communication control units 12 processes an inbound packet and the other processes an outbound packet, or controls both to process an inbound packet. However, both parties may control to process outbound packets. As a result, for example, the direction of communication to be controlled can be made variable according to the traffic status and purpose.
  • the switching control unit 14 may acquire the operation status of each communication control unit 12, and may switch the direction of communication control according to the operation status. For example, when one communication control unit 12 is in a standby state and the other communication control unit 12 is operating, when it is detected that the communication control unit 12 has stopped due to a failure or the like, it is on standby as an alternative. The communication control unit 12 may be operated. As a result, the fault tolerance of the communication control device 10 can be improved. Further, when maintenance such as database update is performed on one communication control unit 12, the other communication control unit 12 may be operated as an alternative. Thereby, it is possible to appropriately perform maintenance without stopping the operation of the communication control device 10.
  • Three or more communication control units 12 may be provided in the communication control device 10.
  • the switching control unit 14 acquires the traffic status, and assigns more communication control units 12 to the communication control process in the direction with a large amount of communication.
  • the direction may be controlled. As a result, even if the amount of communication in a certain direction increases, the decrease in communication speed can be minimized.
  • a part of the communication control unit 2 or 4 may be shared between the plurality of communication control units 12.
  • a part of the packet processing circuit 20 may be shared.
  • the present invention can be used for a data processing apparatus that processes communication data and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 高速なデータ処理装置を実現する技術を提供する。  通信制御装置10は、受信側の通信制御部2と、パケット処理回路20と、送出側の通信制御部4とを備える。通信制御部2及び4は、それぞれ、パケットの物理層の処理を行うPHY処理部5a及び5bと、パケットのMAC層の処理を行うMAC処理部6a及び6bとを備える。パケット処理回路20は、ワイヤードロジック回路により構成され、パケットに含まれるデータに応じて、フィルタリングなどの処理を実行する。CPUやOSを必要とせず、専用のハードウェア回路により処理が実行される。

Description

明 細 書
データ処理装置
技術分野
[0001] 本発明は、データ処理技術に関し、特に、通信データを処理するデータ処理装置 に関する。
背景技術
[0002] インターネットのインフラが整備され、携帯電話端末、パーソナルコンピュータ、 Vol P (Voice over Internet Protocol)電話端末などの通信端末が広く普及した現在、イン ターネットの利用者は爆発的に増加している。このような状況下、コンピュータウィル ス、ノ、ッキング、スパムメールなど、セキュリティに関する問題が顕在化しており、通信 を適切に制御する技術が求められて 、る。通信環境の向上に伴つて通信量も膨大に なっており、大容量のデータを高速に処理する通信制御装置の必要性が増している
[0003] 図 1は、従来の通信制御装置 1の構成を示す。従来の通信制御装置 1は、受信側 の通信制御部 2と、パケット処理部 3と、送出側の通信制御部 4とを備える。通信制御 部 2及び 4は、それぞれ、パケットの物理層の処理を行う PHY処理部 5a及び 5bと、パ ケットの MAC層の処理を行う MAC処理部 6a及び 6bとを備える。パケット処理部 3は 、 IP (Internet Protocol)のプロトコル処理を行う IP処理部 7、 TCP (Transport Control Protocol)のプロトコル処理を行う TCP処理部 8など、プロトコルに応じた処理を行う プロトコル処理部と、アプリケーション層の処理を行う AP処理部 9とを備える。 AP処 理部 9は、パケットに含まれるデータに応じて、フィルタリングなどの処理を実行する。 特許文献 1:特開平 4— 180425号公報
発明の開示
発明が解決しょうとする課題
[0004] 従来の通信制御装置 1では、パケット処理部 3は、汎用プロセッサである CPUと、 C PU上で動作する OSとを利用して、ソフトウェアにより実現されていた。し力しながら、 このような構成では、通信制御装置 1の性能は CPUの性能に依存することになり、高 速に大容量のパケットを処理可能な通信制御装置を実現しょうとしても、自ずと限界 がある。例えば、 64ビットの CPUであれば、一度に同時に処理可能なデータ量は最 大で 64ビットであり、それ以上の性能を有する通信制御装置は存在しなかった。また 、汎用的な機能を有する OSの存在を前提としていたので、セキュリティホールなどが 存在する可能性が絶無ではなぐ OSのバージョンアップなどのメンテナンス作業を必 要としていた。
[0005] 本発明はこうした状況に鑑みてなされたものであり、その目的は、高速なデータ処 理装置を実現する技術の提供にある。
課題を解決するための手段
[0006] 本発明のある態様は、データ処理装置に関する。このデータ処理装置は、取得した データに対して実行する処理の内容を決定するための基準となる基準データを記憶 する第 1記憶部と、前記データの中に前記基準データが含まれているか否かを、前 記データと前記基準データとを比較することにより検索する検索部と、前記検索部に よる検索結果と前記処理の内容とを対応づけて記憶する第 2記憶部と、前記検索結 果に基づいて、前記検索結果に対応づけられた処理の内容を前記データに対して 実行する処理部と、を含み、前記検索部は、ワイヤードロジック回路により構成される ことを特徴とする。
[0007] 検索部又は処理部は、 FPGA (Field Programmable Gate Array)などを用いて実現 されてもよい。専用のハードウェア回路により検索部を構成することにより、 CPUの性 能の制約にとらわれず、所望の性能を有するデータ処理装置を実現することができる
[0008] 前記ワイヤードロジック回路は、前記データと前記基準データとをビット単位で比較 する第 1比較回路を複数含んでもよい。第 1比較回路を、例えば 64個以上並列に設 けることにより、 CPUよりも多いビット数を一度に比較可能な回路を実現することがで きる。
[0009] 前記検索部は、前記通信データの中から前記基準データと比較すべき比較対象 データの位置を検出する位置検出回路を含んでもよい。前記位置検出回路は、前記 比較対象データの位置を特定するための位置特定データと前記通信データとを比 較する第 2比較回路を複数含み、前記複数の第 2比較回路に前記通信データを所 定のデータ長ずつ位置をずらして入力し、前記位置特定データと同時に並列して比 較してもよい。第 2比較回路を複数設けることにより、一度に複数の位置を判定するこ とができるので、より高速に比較対象データの位置を検出することができる。
[0010] 前記検索部は、バイナリサーチにより前記通信データの中に前記基準データが含 まれているか否かを検索するバイナリサーチ回路を含んでもよい。前記第 1記憶部に 保持可能なデータ数よりも前記基準データのデータ数の方が少ない場合、前記第 1 記憶部の最終データ位置から降順に前記基準データを格納し、残りのデータに 0を 格納してもよい。基準データが 0である場合には比較を実行することなく次のバイナリ サーチにうつることができるので、バイナリサーチをより高速に実行することができる。
[0011] 前記検索部は、前記第 1記憶部に記憶された複数の基準データを 3以上の範囲に 分割したとき、前記基準データと比較すべき比較対象データがそれらの範囲のうちい ずれに属するかを判定する判定回路を含んでもよい。前記判定回路は、前記範囲の 境界の基準データと前記比較対象データとを比較する第 3比較回路を複数含み、前 記複数の第 3比較回路により前記比較対象データが前記 3以上の範囲のいずれに 属するかを同時に並列して判定してもよい。ノイナリサーチに先立って範囲を特定し ておくことにより、検索速度を向上させることができる。前記第 1記憶部の所定位置に 記憶された前記基準データが、前記境界の基準データとして前記第 3の比較回路に 入力されてもよい。境界の基準データを自動的に設定可能とすることにより、第 1記憶 部の内容を変更しても、直ちに処理を開始させることができる。
[0012] 前記範囲は、前記通信データ中における前記基準データの出現頻度の分布に応 じて設定されてもよい。これにより、検索効率をより向上させることができ、より高速な 検索を実現することができる。
[0013] 前記第 1記憶部は、前記通信データ中の比較対象データの位置を示す情報を更 に記憶し、前記検索部は、前記位置を示す情報に基づいて前記比較対象データを 抽出してもよい。これにより、比較対象データをより柔軟に設定することができ、検索 効率を向上させることができる。
[0014] 前記第 1記憶部又は前記第 2記憶部は、外部から書き換え可能に設けられてもよい 。これにより、基準データや処理内容などを可変に設定し、データ処理装置をさまざ まなデータ処理に利用することができる。
[0015] 前記検索部は、通信パケットの全てのデータの取得を待たずに、前記基準データと 比較すべきデータを取得した時点で、そのデータと前記基準データの比較を開始し てもよい。これにより、処理に要する時間を短縮することができる。検索部における比 較処理に限らず、その他の処理についても同様に、全てのデータの取得を待たずに 開始してちょい。
[0016] 本発明の別の態様は、データ処理装置に関する。このデータ処理装置は、上述し たいずれかのデータ処理装置を複数備え、それぞれの前記データ処理装置は、通 信回線との間でデータを入出力するインタフェースを 2つ備えており、それぞれの前 記インタフェースの入力と出力を切り替えることにより、前記データを処理する方向を 可変に制御されることを特徴とする。これにより、いずれかのデータ処理装置が動作 できない状態になったときに、他のデータ処理装置を代替として動作させることがで き、耐障害性を向上させることができる。また、いずれかのデータ処理装置をメンテナ ンスなどにより停止させるときにも、他のデータ処理装置を代替として動作させること ができ、運用を停止せずにメンテナンスを行うことができる。さらに、トラフィックの状況 などに応じて、それぞれのデータ処理装置が処理するデータの流れの方向を可変と することにより、トラフィックの増減などに適切に対応することができる。
[0017] なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、 記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様とし て有効である。
発明の効果
[0018] 本発明によれば、高速なデータ処理装置を実現する技術を提供することができる。
図面の簡単な説明
[0019] [図 1]従来の通信制御装置の構成を示す図である。
[図 2]実施の形態に係る通信制御装置の構成を示す図である。
[図 3]パケット処理回路の構成を示す図である。
[図 4]位置検出回路の構成を示す図である。 [図 5]第 1のデータベースの内部データを例を示す図である。
[図 6]第 1のデータベースの内部データを別の例を示す図である。
[図 7]第 1のデータベースの内部データを更に別の例を示す図である。
[図 8]ノイナリサーチ回路に含まれる比較回路の構成を示す図である。
[図 9]第 2のデータベースの内部データの例を示す図である。
[図 10]第 2のデータベースの内部データの別の例を示す図である。
[図 11]実施の形態に係る通信制御装置の別の構成例を示す図である。
符号の説明
[0020] 10 通信制御装置、 12 通信制御ユニット、 14 切替制御部、 20 パケット処理回 路、 30 検索回路、 32 位置検出回路、 33 比較回路、 34 インデックス回路、 35 比較回路、 36 バイナリサーチ回路、 40 処理実行回路、 50 第 1データベース、 6 0 第 2データベース。
発明を実施するための最良の形態
[0021] 図 2は、本発明のデータ処理装置の一例である通信制御装置の構成を示す。本実 施の形態の通信制御装置 10は、図 1に示した従来の通信制御装置 1においては CP U及び OSを含むソフトウェアにより実現されていたパケット処理部 3に代えて、ワイヤ ードロジック回路による専用のハードウェアにより構成されたパケット処理回路 20を備 える。汎用処理回路である CPUにお 、て動作する OSとソフトウェアにより通信データ を処理するのではなぐ通信データを処理するための専用のハードウェア回路を設け ることにより、 CPUや OSなどに起因する性能の限界を克服し、処理能力の高い通信 制御装置を実現することが可能となる。
[0022] 例えば、パケットフィルタリングなどを実行するために、パケットに含まれるデータに 、フィルタリングの判断基準となる基準データが含まれるか否かを検索する場合に、 C PUを用いて通信データと基準データを比較すると、一度に高々 64ビットしか比較す ることができず、処理速度を向上させようとしても CPUの性能で頭打ちになるという問 題があった。 CPUでは、通信データから 64ビットをメモリへ読み上げ、基準データと の比較を行い、つづいて、次の 64ビットをメモリへ読み上げる、という処理を何度も繰 り返し行う必要があるので、メモリへの読み上げ時間が律速となり、処理速度に限界 がある。
[0023] それに対し、本実施の形態では、通信データと基準データとを比較するために、ヮ ィヤードロジック回路により構成された専用のハードウェア回路を設ける。この回路は
、 64ビットよりも長いデータ長、例えば、 1024ビットのデータ長の比較を可能とするた めに、並列に設けられた複数の比較器を含む。このように、専用のハードウェアを設 けることにより、同時に並列して多数のビットマッチングを実行することができる。従来 の CPUを用いた通信制御装置 1では一度に 64ビットしか処理できなかったところを、 一度に 1024ビットの処理を可能にすることで、飛躍的に処理速度を向上させること ができる。比較器の数を多くすれば処理能力も向上するが、コストやサイズも増大す るので、所望の処理性能と、コスト、サイズ、などを考慮して、最適なハードウェア回路 を設計すればよい。
[0024] また、本実施の形態の通信制御装置 10は、ワイヤードロジック回路による専用のハ 一ドウエアにより構成されるので、 OS (Operating System)を必要としない。このため、 OSのインストール、バグ対応、バージョンアップなどの作業が必要なぐ管理やメンテ ナンスのためのコストや工数を低減させることができる。また、汎用的な機能が求めら れる CPUとは異なり、不必要な機能を包含していないので、余計なリソースを用いる ことがなぐ低コスト化、回路面積の低減、処理速度の向上などが望める。さらに、 OS を利用していた従来の通信制御装置とは異なり、余分な機能を有しないので、セキュ リティホールなどが発生する可能性が低く、ネットワークを介した悪意ある第三者から の攻撃に対する耐性に優れている。
[0025] 従来の通信制御装置 1は、 CPUと OSを前提としたソフトウェアによりパケットを処理 しており、パケットの全てのデータを受信して力 プロトコル処理を行い、データがァ プリケーシヨンに渡される。それに対して、本実施の形態の通信制御装置 10では、専 用のハードウェア回路により処理を行うので、パケットの全てのデータを受信してから 処理を開始する必要はなぐ処理に必要なデータを受信すれば、後続のデータの受 信を待たずに、任意の時点で処理を開始することができる。例えば、後述する位置検 出回路における位置検出処理は、比較対象データの位置を特定するための位置特 定データを受信した時点で開始することができる。このように、全てのデータの受信を 待たずに様々な処理をフローティングで実行することができるので、パケットのデータ を処理するのに要する時間を短縮することができる。
[0026] 図 3は、パケット処理回路の内部構成を示す。パケット処理回路 20は、通信データ に対して実行する処理の内容を決定するための基準となる基準データを記憶する第 1データベース 50と、受信された通信データの中に基準データが含まれて!/、るか否 かを、通信データと基準データとを比較することにより検索する検索回路 30と、検索 回路 30による検索結果と通信データに対して実行する処理の内容とを対応づけて 記憶する第 2データベース 60と、検索回路 30による検索結果と第 2データベース 60 に記憶された条件とに基づいて通信データを処理する処理実行回路 40とを含む。
[0027] 検索回路 30は、通信データの中から基準データと比較すべき比較対象データの 位置を検出する位置検出回路 32と、第 1データベース 50に記憶された基準データを 3以上の範囲に分割したとき、比較対象データがそれらの範囲のうちいずれに属する かを判定する判定回路の一例であるインデックス回路 34と、判定された範囲の中で 比較対象データと合致する基準データを検索するバイナリサーチ回路 36とを含む。 比較対象データを基準データの中から検索する方法としては、任意の検索技術を利 用可能であるが、本実施の形態ではバイナリサーチ法を用いる。
[0028] 図 4は、位置検出回路の内部構成を示す。位置検出回路 32は、比較対象データ の位置を特定するための位置特定データと通信データとを比較するための複数の比 較回路 33a〜33fを含む。ここでは、 6個の比較回路 33a〜33fが設けられているが、 後述するように、比較回路の個数は任意でよい。それぞれの比較回路 33a〜33fに は、通信データが、所定のデータ長、例えば、 1バイトずつずらして入力される。そし て、これら複数の比較回路 33a〜33fにおいて、同時に並列して、検出すべき位置 特定データと通信データとの比較がなされる。
[0029] 本実施の形態においては、通信制御装置 10の動作を説明するための例として、通 信データ中に含まれる「No. # # #」という文字列を検出し、その文字列中に含ま れる数字「# # #」を基準データと比較して、基準データに合致した場合はパケット の通過を許可し、合致しなカゝつた場合はパケットを破棄する処理を行う場合にっ ヽて 説明する。 [0030] 図 4の例では、通信データの中から、数字「# # #」の位置を特定するための位置 特定データ「No.」を検出するために、通信データ「01No. 361 · · ·」を、 1文字ず つずらして比較回路 33a〜33fに入力している。すなわち、比較回路 33aには「01N 」力 比較回路 33bには「1Νο」力 比較回路 33cには「No.」が、比較回路 33dには 「o. 」が、比較回路 33eには「. 3」が、比較回路 33fには「 36」力 それぞれ入力 される。ここで、比較回路 33a〜33fが同時に位置特定データ「No.」との比較を実 行する。これにより、比較回路 33cがマッチし、通信データの先頭から 3文字目に「No .」という文字列が存在することが検出される。こうして、位置検出回路 32により検出さ れた位置特定データ「No.」の次に、比較対象データである数字のデータが存在す ることが検出される。
[0031] CPUにより同様の処理を行うならば、まず、文字列「0 ^」を「?^0.」と比較し、続い て、文字列「1Νο」を「No.」と比較する、というように、先頭力 順に 1つずつ比較処 理を実行する必要があるため、検出速度の向上は望めない。これに対し、本実施の 形態の通信制御装置 10では、複数の比較回路 33a〜33fを並列に設けることにより 、 CPUではなしえな力つた同時並列的な比較処理が可能となり、処理速度を格段に 向上させることができる。比較回路は多ければ多いほど同時に比較可能な位置が多 くなるので、検出速度も向上するが、コスト、サイズ、などを考慮の上、所望の検出速 度を得られるのに十分な数の比較回路を設ければよい。
[0032] 位置検出回路 32は、位置特定データを検出するためだけでなぐ汎用的に文字列 を検出する回路として利用されてもよい。また、文字列だけでなぐビット単位で位置 特定データを検出するように構成されてもょ ヽ。
[0033] 図 5は、第 1データベースの内部データの例を示す。第 1データベース 50には、ノ ケットのフィルタリング、ルーティング、スイッチング、置換などの処理の内容を決定す るための基準となる基準データ力 何らかのソート条件にしたがってソートされて格納 されている。図 5の例では、 1000個の基準データが記憶されている。
[0034] 第 1データベース 50の先頭のレコードには、通信データ中の比較対象データの位 置を示すオフセット 51が格納されている。例えば、 TCPパケットにおいては、ノケット 内のデータ構成がビット単位で定められているため、パケットの処理内容を決定する ためのフラグ情報などの位置をオフセット 51として設定しておけば、必要なビットのみ を比較して処理内容を決定することができるので、処理効率を向上させることができ る。また、パケットのデータ構成が変更された場合であっても、オフセット 51を変更す ることで対応することができる。第 1データベース 50には、比較対象データのデータ 長を格納しておいてもよい。これにより、必要な比較器のみを動作させて比較を行うこ とができるので、検索効率を向上させることができる。
[0035] インデックス回路 34は、第 1データベース 50に格納されている基準データを 3以上 の範囲 52a〜52dに分割したとき、比較対象データがそれらの範囲のうちいずれに 属するかを判定する。図 5の例では、 1000個の基準データは、 250個ずつ 4つの範 囲 52a〜52dに分割されている。インデックス回路 34は、範囲の境界の基準データと 比較対象データとを比較する複数の比較回路 35a〜35cを含む。比較回路 35a〜3 5cにより比較対象データと境界の基準データとを同時に並列して比較することにより 、比較対象データがいずれの範囲に属するかを 1度の比較処理で判定することがで きる。
[0036] インデックス回路 34の比較回路 35a〜35cに入力される境界の基準データは、通 信制御装置 10の外部に設けられた装置により設定されてもよいし、予め第 1データ ベース 50の所定位置の基準データが自動的に入力されるようにしてもよ!、。後者の 場合、第 1データベース 50を更新しても、自動的に第 1データベース 50の所定位置 の基準データが比較回路 35a〜35cに入力されるので、初期設定などを必要とせず 、直ちに通信制御処理を実行させることができる。
[0037] 前述したように、 CPUによりバイナリサーチを実行する場合は、同時に複数の比較 を実行することができないが、本実施の形態の通信制御装置 10では、複数の比較回 路 35a〜35cを並列に設けることにより、同時並列的な比較処理を可能とし、検索速 度を格段に向上させることができる。
[0038] インデックス回路 34により範囲が判定されると、バイナリサーチ回路 36がバイナリサ ーチ法により検索を実行する。バイナリサーチ回路 36は、インデックス回路 34により 判定された範囲をさらに 2分割し、その境界位置にある基準データと比較対象データ とを比較することにより、いずれの範囲に属するかを判定する。バイナリサーチ回路 3 6は、基準データと比較対象データとをビット単位で比較する比較回路を複数個、例 えば本実施の形態では 1024個含んでおり、 1024ビットのビットマッチングを同時に 実行する。 2分割された範囲のいずれに属するかが判定されると、さらに、その範囲 を 2分割して境界位置にある基準データを読み出し、比較対象データと比較する。以 降、この処理を繰り返すことにより範囲をさらに限定し、最終的に比較対象データと合 致する基準データを検索する。
[0039] 前述した例を用いてさらに詳細に動作を説明する。図 4に示した通信データにおい て、位置特定データ「No.」につづく比較対象データは「361」という数字である。位 置特定データ「No.」と比較対象データ「361」との間には 1文字分のスペースが存在 しているので、このスペースを比較対象データから除くために、オフセット 51が「8」ビ ットに設定されている。ノイナリサーチ回路 36は、位置特定データ「No.」につづく通 信データから、「8」ビット、すなわち 1バイト分をスキップし、さらにつづく「361」を比較 対象データとして読み込む。
[0040] インデックス回路 34の比較回路 35a〜35cには、比較対象データとして「361」が入 力され、基準データとして、比較回路 35aには、範囲 52aと 52bの境界にある基準デ ータ「378」が、比較回路 35bには、範囲 52bと 52cの境界にある基準データ「704」 力 比較回路 35cには、範囲 52cと 52dの境界にある基準データ「937」が、それぞれ 入力される。比較回路 35a〜35cにより同時に比較が行われ、比較対象データ「361 」が範囲 52aに属することが判定される。以降、バイナリサーチ回路 36が基準データ の中に比較対象データ「361」が存在するか否かを検索する。
[0041] 図 6は、第 1データベースの内部データの別の例を示す。図 6に示した例では、基 準データのデータ数が、第 1データベース 50に保持可能なデータ数、ここでは 1000 個よりも少ない。このとき、第 1データベース 50には、最終データ位置から降順に基 準データが格納される。そして、残りのデータには 0が格納される。データベースの口 ーデイング方法として、先頭力 データを配置せずにローデイングエリアの後方から 配置し、ローデイングエリア先頭に空きが生じた場合は全ての空きをゼロサプレスす ることで、データーベースは常にフルの状態になり、バイナリー検索する場合の最大 時間を一定にすることができる。また、バイナリサーチ回路 36は、検索中に基準デー タとして「0」を読み込んだときには、比較結果が自明であるから、比較を行わずに範 囲を特定して、次の比較にうつることができる。これにより、検索速度を向上させること ができる。
[0042] CPUによるソフトウェア処理においては、第 1データベース 50に基準データを格納 する際に、最初のデータ位置力 昇順に基準データが格納される。残りのデータに は、例えば最大値が格納されることになる力 この場合、バイナリサーチにおいて、上 述したような比較処理の省略はできない。上述した比較技術は、専用のハードウェア 回路により検索回路 30を構成したことにより実現される。
[0043] 図 7は、第 1データベースの内部データのさらに別の例を示す。図 7に示した例では 、基準データを均等に 3以上の範囲に分割するのではなぐ範囲 52aは 500個、範囲 52bは 100個というように、範囲に属する基準データの数が不均一になっている。こ れらの範囲は、通信データ中における基準データの出現頻度の分布に応じて設定さ れてもよい。すなわち、それぞれの範囲に属する基準データの出現頻度の和がほぼ 同じになるように範囲が設定されてもよい。これにより、検索効率を向上させることが できる。インデックス回路 34の比較回路 35a〜35cに入力される基準データは、外部 力も変更可能になっていてもよい。これにより、範囲を動的に設定することができ、検 索効率を最適化することができる。
[0044] 図 8は、バイナリサーチ回路に含まれる比較回路の構成を示す。前述したように、バ イナリサーチ回路 36は、 1024個の比較回路 36a、 36b、 · · ·、を含む。それぞれの 比較回路 36a、 36b、 · · ·、には、基準データ 54と比較対象データ 56が 1ビットずつ 入力され、それらの大小が比較される。インデックス回路 34の各比較回路 35a〜35c の内部構成も同様である。このように、専用のハードウェア回路で比較処理を実行す ることにより、多数の比較回路を並列して動作させ、多数のビットを同時に比較するこ とができるので、比較処理を高速ィ匕することができる。
[0045] 図 9は、第 2データベースの内部データの例を示す。第 2データベース 60は、検索 回路 30による検索結果を格納する検索結果欄 62と、通信データに対して実行する 処理の内容を格納する処理内容欄 64とを含み、検索結果と処理内容とを対応づけ て保持する。図 9の例では、通信データに基準データが含まれている場合は、そのパ ケットの通過を許可し、含まれていない場合は、そのパケットを破棄するという条件が 設定されている。処理実行回路 40は、検索結果に基づいて第 2データベース 60から 処理内容を検索し、通信データに対して処理を実行する。処理実行回路 40も、ワイ ヤードロジック回路により実現されてもよい。
[0046] 図 10は、第 2データベースの内部データの別の例を示す。図 10の例では、基準デ ータごとに、処理内容が設定されている。パケットの置換を行う場合、置換先のデー タを第 2データベース 60に格納してお!、てもよ!/、。パケットのルーティングやスィッチ ングを行う場合、経路に関する情報を第 2データベース 60に格納しておいてもよい。 処理実行回路 40は、検索回路 30による検索結果に応じて、第 2データベース 60に 格納された、フィルタリング、ルーティング、スイッチング、置換などの処理を実行する 。図 10のように、基準データごとに処理内容を設定する場合、第 1データベース 50と 第 2データベース 60とを統合してもよ 、。
[0047] 第 1のデータベース及び第 2のデータベースは、外部力 書き換え可能に設けられ る。これらのデータベースを入れ替えることにより、同じ通信制御装置 10を用いて、さ まざまなデータ処理や通信制御を実現することができる。また、検索対象となる基準 データを格納したデータベースを 2以上設けて、多段階の検索処理を行ってもよ!、。 このとき、検索結果と処理内容とを対応づけて格納したデータベースを 2以上設けて 、より複雑な条件分岐を実現してもよい。このように、データベースを複数設けて多段 階の検索を行う場合に、位置検出回路 32、インデックス回路 34、バイナリサーチ回 路 36などを複数設けてもょ 、。
[0048] 上述した比較に用いられるデータは、同じ圧縮ロジックにより圧縮されてもよい。比 較に際して、比較元のデータと比較先のデータが同じ方式で圧縮されていれば、通 常と同様の比較が可能である。これにより、比較の際にローデイングするデータ量を 低減することができる。ローデイングするデータ量が少なくなれば、メモリからデータを 読み出すのに要する時間が短縮されるので、全体の処理時間も短縮することができ る。また、比較器の量を削減することができるので、装置の小型化、軽量化、低コスト 化に寄与することができる。比較に用いられるデータは、圧縮された形式で格納され ていてもよいし、メモリから読み出した後、比較の前に圧縮されてもよい。 [0049] 図 11は、本実施の形態の通信制御装置の別の構成例を示す。本図に示した通信 制御装置 10は、図 2に示した通信制御装置 10と同様の構成を備える通信制御ュニ ット 12を 2つ有している。また、それぞれの通信制御ユニット 12の動作を制御する切 替制御部 14が設けられている。それぞれの通信制御ユニット 12は、 2つの入出力ィ ンタフェース 16を有しており、それぞれの入出力インタフェース 16を介して、上流側 、下流側の 2つのネットワークに接続されている。通信制御ユニット 12は、いずれか一 方のネットワーク力も通信データを入力し、処理したデータを他方のネットワークに出 力する。切替制御部 14は、それぞれの通信制御ユニット 12に設けられた入出力イン タフエース 16の入出力を切り替えることにより、通信制御ユニット 12における通信デ ータの流れの方向を切り替える。これにより、一方向だけではなぐ双方向の通信制 御が可能となる。
[0050] 切替制御部 14は、通信制御ユニット 12の一方がインバウンド、他方がアウトバウン ドのパケットを処理するように制御してもよ 、し、双方がインバウンドのパケットを処理 するように制御してもよ 、し、双方がアウトバウンドのパケットを処理するように制御し てもよい。これにより、例えばトラフィックの状況や目的などに応じて、制御する通信の 方向を可変とすることができる。
[0051] 切替制御部 14は、各通信制御ユニット 12の動作状況を取得し、その動作状況に 応じて通信制御の方向を切り替えてもよい。例えば、一方の通信制御ユニット 12を待 機状態として、他方の通信制御ユニット 12を動作させている場合に、その通信制御 ユニット 12が故障などにより停止したことを検知したときに、代替として待機中の通信 制御ユニット 12を動作させてもよい。これにより、通信制御装置 10のフォールトトレラ ンスを向上させることができる。また、一方の通信制御ユニット 12に対して、データべ ースの更新などのメンテナンスを行うときに、他方の通信制御ユニット 12を代替として 動作させてもよい。これにより、通信制御装置 10の運用を停止させずに、適切にメン テナンスを行うことができる。
[0052] 通信制御装置 10に 3以上の通信制御ユニット 12が設けられてもよい。切替制御部 14は、例えば、トラフィックの状況を取得して、通信量の多い方向の通信制御処理に 、より多くの通信制御ユニット 12を割り当てるように、各通信制御ユニット 12の通信の 方向を制御してもよい。これにより、ある方向の通信量が増加しても、通信速度の低 下を最小限に抑えることができる。
[0053] なお、複数の通信制御ユニット 12の間で、通信制御部 2又は 4の一部が共用されて もよい。また、パケット処理回路 20の一部が共用されてもよい。
[0054] 以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それ らの各構成要素や各処理プロセスの組合せに 、ろ 、ろな変形例が可能なこと、また そうした変形例も本発明の範囲にあることは当業者に理解されるところである。
産業上の利用可能性
[0055] 本発明は、通信データなどを処理するデータ処理装置に利用することができる。

Claims

請求の範囲
[1] 取得したデータに対して実行する処理の内容を決定するための基準となる基準デ ータを記憶する第 1記憶部と、
前記データの中に前記基準データが含まれて!/、るか否かを、前記データと前記基 準データとを比較することにより検索する検索部と、
前記検索部による検索結果と前記処理の内容とを対応づけて記憶する第 2記憶部 と、
前記検索結果に基づ 、て、前記検索結果に対応づけられた処理を前記データに 対して実行する処理部と、を含み、
前記検索部は、ワイヤードロジック回路により構成される
ことを特徴とするデータ処理装置。
[2] 前記ワイヤードロジック回路は、前記データと前記基準データとをビット単位で比較 する第 1比較回路を複数含むことを特徴とする請求項 1に記載のデータ処理装置。
[3] 前記検索部は、前記データの中から前記基準データと比較すべき比較対象データ の位置を検出する位置検出回路を含むことを特徴とする請求項 1に記載のデータ処 理装置。
[4] 前記位置検出回路は、前記比較対象データの位置を特定するための位置特定デ ータと前記データとを比較する第 2比較回路を複数含み、前記複数の第 2比較回路 に前記データを所定のデータ長ずつ位置をずらして入力し、前記位置特定データと 同時に並列して比較することを特徴とする請求項 3に記載のデータ処理装置。
[5] 前記検索部は、バイナリサーチにより前記データの中に前記基準データが含まれ ている力否かを検索するバイナリサーチ回路を含むことを特徴とする請求項 1から 4 の!、ずれかに記載のデータ処理装置。
[6] 前記第 1記憶部に保持可能なデータ数よりも前記基準データのデータ数の方が少 な ヽ場合、前記第 1記憶部の最終データ位置から降順に前記基準データを格納し、 残りのデータに 0を格納することを特徴とする請求項 5に記載のデータ処理装置。
[7] 前記検索部は、前記第 1記憶部に記憶された複数の基準データを 3以上の範囲に 分割したとき、前記基準データと比較すべき比較対象データがそれらの範囲のうちい ずれに属するかを判定する判定回路を含むことを特徴とする請求項 1から 6のいずれ かに記載のデータ処理装置。
[8] 前記判定回路は、前記範囲の境界の基準データと前記比較対象データとを比較 する第 3比較回路を複数含み、前記複数の第 3比較回路により前記比較対象データ が前記 3以上の範囲のいずれに属するかを同時に並列して判定することを特徴とす る請求項 7に記載のデータ処理装置。
[9] 前記第 1記憶部の所定位置に記憶された前記基準データが、前記境界の基準デ ータとして前記第 3の比較回路に入力されることを特徴とする請求項 8に記載のデー タ処理装置。
[10] 前記範囲は、前記データ中における前記基準データの出現頻度の分布に応じて 設定されることを特徴とする請求項 7又は 8に記載のデータ処理装置。
[11] 前記第 1記憶部は、前記データ中の比較対象データの位置を示す情報を更に記 憶し、前記検索部は、前記位置を示す情報に基づいて前記比較対象データを抽出 することを特徴とする請求項 1から 10のいずれかに記載のデータ処理装置。
[12] 前記第 1記憶部又は前記第 2記憶部は、外部から書き換え可能に設けられることを 特徴とする請求項 1から 11のいずれかに記載のデータ処理装置。
[13] 前記検索部は、通信パケットの全てのデータの取得を待たずに、前記基準データと 比較すべきデータを取得した時点で、そのデータと前記基準データの比較を開始す ることを特徴とする請求項 1から 12のいずれかに記載のデータ処理装置。
[14] 請求項 1から 13のいずれかに記載のデータ処理装置を複数備え、
それぞれの前記データ処理装置は、通信回線との間でデータを入出力するインタ フェースを 2つ備えており、それぞれの前記インタフェースの入力と出力を切り替える ことにより、前記データを処理する方向を可変に制御されることを特徴とするデータ処 理装置。
PCT/JP2005/012605 2005-02-18 2005-07-07 データ処理装置 WO2006087832A1 (ja)

Priority Applications (12)

Application Number Priority Date Filing Date Title
EP20050765488 EP1850558A1 (en) 2005-02-18 2005-07-07 Data processing device
JP2007503569A JP4027416B2 (ja) 2005-02-18 2005-07-07 データ処理装置
US11/793,565 US20080270360A1 (en) 2005-02-18 2005-07-07 Data Processing Device
CN2005800493262A CN101147381B (zh) 2005-02-18 2005-07-07 数据处理装置
CA 2577283 CA2577283A1 (en) 2005-02-18 2005-07-07 Data processing device
US11/884,526 US8336092B2 (en) 2005-02-18 2005-08-25 Communication control device and communication control system
CA002596948A CA2596948A1 (en) 2005-02-18 2005-08-25 Communication control device and communication control system
PCT/JP2005/015480 WO2006087837A1 (ja) 2005-02-18 2005-08-25 通信制御装置及び通信制御システム
KR20077021091A KR20070103774A (ko) 2005-02-18 2005-08-25 통신 제어 장치 및 통신 제어 시스템
JP2007503571A JP4546998B2 (ja) 2005-02-18 2005-08-25 通信制御システム
CN2005800493258A CN101147138B (zh) 2005-02-18 2005-08-25 通信控制系统
EP05774657A EP1850234A1 (en) 2005-02-18 2005-08-25 Communication control device and communication control system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005042755 2005-02-18
JP2005-042755 2005-02-18

Publications (1)

Publication Number Publication Date
WO2006087832A1 true WO2006087832A1 (ja) 2006-08-24

Family

ID=36916246

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/012605 WO2006087832A1 (ja) 2005-02-18 2005-07-07 データ処理装置

Country Status (7)

Country Link
US (1) US20080270360A1 (ja)
EP (1) EP1850558A1 (ja)
JP (1) JP4027416B2 (ja)
KR (2) KR20070068377A (ja)
CN (4) CN101147381B (ja)
CA (1) CA2577283A1 (ja)
WO (1) WO2006087832A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008065721A1 (fr) * 2006-11-29 2008-06-05 Duaxes Corporation Dispositif de test
WO2008075426A1 (ja) * 2006-12-20 2008-06-26 Duaxes Corporation 通信制御装置及び通信制御方法
WO2009066339A1 (ja) * 2007-11-19 2009-05-28 Duaxes Corporation 通信制御装置
US8019776B2 (en) 2007-11-19 2011-09-13 Duaxes Corporation Determining device and determining method for determining processing to be performed based on acquired data
CN103780659A (zh) * 2012-10-25 2014-05-07 中国电信股份有限公司 处理移动用户所输入网页地址的方法与无线应用协议网关
US9525739B2 (en) 2013-05-09 2016-12-20 Mitsubishi Electric Corporation FA network LSI and communication device
KR20170034401A (ko) * 2014-09-22 2017-03-28 인텔 코포레이션 메모리 데이터에 기초하여 비교 정보를 결정하기 위한 장치, 시스템 및 방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101325495B (zh) * 2008-07-10 2012-02-01 成都市华为赛门铁克科技有限公司 一种应用于检测黑客服务器的检测方法、装置及系统
US20100082357A1 (en) * 2008-09-30 2010-04-01 Nokia Corporation Methods, apparatuses, and computer program products for providing activity coordination services
US8826379B2 (en) 2008-09-30 2014-09-02 Nec Corporation Access control system, access control method, and communication terminal
CN101510887B (zh) * 2009-03-27 2012-01-25 腾讯科技(深圳)有限公司 鉴别网站的方法及装置
CN101552674B (zh) * 2009-05-19 2011-09-07 中国民生银行股份有限公司 伪网站的识别方法和系统
CN102025492B (zh) * 2009-09-10 2013-01-16 联想(北京)有限公司 一种web服务器及其数据保护方法
CN102123163B (zh) * 2009-12-25 2014-10-08 佳能It解决方案株式会社 信息处理装置、信息处理方法以及计算机程序
CN103577449B (zh) * 2012-07-30 2017-05-10 珠海市君天电子科技有限公司 钓鱼网站特性自学习挖掘方法及系统
CN103929407B (zh) * 2013-01-15 2015-03-11 腾讯科技(深圳)有限公司 一种木马拦截方法、装置和系统
KR102072133B1 (ko) * 2013-07-03 2020-01-31 주식회사 카카오 광고 시스템 및 광고 방법
CN106533989B (zh) * 2016-12-01 2019-08-20 携程旅游网络技术(上海)有限公司 用于企业跨地域访问网络的优化方法及优化系统
CN110875754B (zh) * 2018-08-29 2021-08-27 瑞昱新加坡有限公司 可提升数据传输效能的无线通信电路
CN111629038B (zh) * 2020-05-19 2023-08-08 北京达佳互联信息技术有限公司 虚拟资源分享处理方法、装置、服务器及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001168911A (ja) * 1999-12-09 2001-06-22 Hitachi Cable Ltd パケットフィルタ装置
WO2002082750A1 (fr) * 2001-04-02 2002-10-17 Dcl Inc. Dispositif de recherche de chaines binaires et procede associe
JP2004140618A (ja) * 2002-10-18 2004-05-13 Yokogawa Electric Corp パケットフィルタ装置および不正アクセス検知装置
JP2004172917A (ja) * 2002-11-20 2004-06-17 Nec Corp パケット検索装置及びそれに用いるパケット処理検索方法並びにそのプログラム
JP2004187201A (ja) * 2002-12-06 2004-07-02 Nippon Telegr & Teleph Corp <Ntt> データ列検索用ノード,これを用いるデータ列検索方法並びにデータ列検索処理装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4475237A (en) * 1981-11-27 1984-10-02 Tektronix, Inc. Programmable range recognizer for a logic analyzer
US5341479A (en) * 1989-01-31 1994-08-23 Storage Technology Corporation Address mark triggered read/write head buffer
KR0140506B1 (ko) * 1993-12-29 1998-06-15 김주용 완전 디지탈 방식의 고화질 텔레비젼에서의 분배기 설계
JP3234573B2 (ja) * 1998-08-31 2001-12-04 松下電器産業株式会社 パケットフィルタリング装置
US6236678B1 (en) * 1998-10-30 2001-05-22 Broadcom Corporation Method and apparatus for converting between byte lengths and burdened burst lengths in a high speed cable modem
JP3605343B2 (ja) * 2000-03-31 2004-12-22 デジタルア−ツ株式会社 インターネット閲覧制御方法、その方法を実施するプログラムを記録した媒体およびインターネット閲覧制御装置
KR100418445B1 (ko) * 2001-04-11 2004-02-14 (주) 세이프아이 인터넷 망을 통한 접근 통제 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001168911A (ja) * 1999-12-09 2001-06-22 Hitachi Cable Ltd パケットフィルタ装置
WO2002082750A1 (fr) * 2001-04-02 2002-10-17 Dcl Inc. Dispositif de recherche de chaines binaires et procede associe
JP2004140618A (ja) * 2002-10-18 2004-05-13 Yokogawa Electric Corp パケットフィルタ装置および不正アクセス検知装置
JP2004172917A (ja) * 2002-11-20 2004-06-17 Nec Corp パケット検索装置及びそれに用いるパケット処理検索方法並びにそのプログラム
JP2004187201A (ja) * 2002-12-06 2004-07-02 Nippon Telegr & Teleph Corp <Ntt> データ列検索用ノード,これを用いるデータ列検索方法並びにデータ列検索処理装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008065721A1 (fr) * 2006-11-29 2008-06-05 Duaxes Corporation Dispositif de test
WO2008075426A1 (ja) * 2006-12-20 2008-06-26 Duaxes Corporation 通信制御装置及び通信制御方法
JPWO2008075426A1 (ja) * 2006-12-20 2010-04-02 デュアキシズ株式会社 通信制御装置及び通信制御方法
WO2009066339A1 (ja) * 2007-11-19 2009-05-28 Duaxes Corporation 通信制御装置
US8019776B2 (en) 2007-11-19 2011-09-13 Duaxes Corporation Determining device and determining method for determining processing to be performed based on acquired data
JP5380710B2 (ja) * 2007-11-19 2014-01-08 デュアキシズ株式会社 通信制御装置
CN103780659A (zh) * 2012-10-25 2014-05-07 中国电信股份有限公司 处理移动用户所输入网页地址的方法与无线应用协议网关
US9525739B2 (en) 2013-05-09 2016-12-20 Mitsubishi Electric Corporation FA network LSI and communication device
KR20170034401A (ko) * 2014-09-22 2017-03-28 인텔 코포레이션 메모리 데이터에 기초하여 비교 정보를 결정하기 위한 장치, 시스템 및 방법
KR20210100758A (ko) * 2014-09-22 2021-08-17 인텔 코포레이션 메모리 데이터에 기초하여 비교 정보를 결정하기 위한 장치, 시스템 및 방법
KR102289787B1 (ko) * 2014-09-22 2021-08-17 인텔 코포레이션 메모리 데이터에 기초하여 비교 정보를 결정하기 위한 장치, 시스템 및 방법
KR102443078B1 (ko) * 2014-09-22 2022-09-14 인텔 코포레이션 메모리 데이터에 기초하여 비교 정보를 결정하기 위한 장치, 시스템 및 방법

Also Published As

Publication number Publication date
KR20070103774A (ko) 2007-10-24
CN101176080A (zh) 2008-05-07
CN101151602A (zh) 2008-03-26
EP1850558A1 (en) 2007-10-31
CA2577283A1 (en) 2006-08-24
KR20070068377A (ko) 2007-06-29
CN101147381B (zh) 2011-07-27
CN101147138A (zh) 2008-03-19
CN100476771C (zh) 2009-04-08
US20080270360A1 (en) 2008-10-30
CN101147381A (zh) 2008-03-19
JPWO2006087832A1 (ja) 2008-07-03
JP4027416B2 (ja) 2007-12-26
CN101147138B (zh) 2010-05-12

Similar Documents

Publication Publication Date Title
WO2006087832A1 (ja) データ処理装置
JP4554675B2 (ja) 通信制御装置及び通信制御システム
JP4087427B2 (ja) データ処理システム
JP4571184B2 (ja) 通信管理システム
JP4574675B2 (ja) 通信管理システム
JP4201822B2 (ja) データ処理装置
JP3993885B1 (ja) バイナリサーチ回路及び方法
JP4060348B2 (ja) データ処理装置
JPWO2009066340A1 (ja) 判定装置及び判定方法
JP4319246B2 (ja) 通信制御装置及び通信制御方法
WO2008065721A1 (fr) Dispositif de test
WO2008075426A1 (ja) 通信制御装置及び通信制御方法
JP4104649B1 (ja) バイナリサーチ回路及び方法
KR20080017046A (ko) 데이터 프로세싱 시스템
JP4638513B2 (ja) 通信制御装置及び通信制御方法
JP5380710B2 (ja) 通信制御装置
JPWO2009066341A1 (ja) 検知回路及び検知方法
KR20080045761A (ko) 이진 탐색 회로 및 방법
KR20080057284A (ko) 통신 관리 시스템, 통신 관리 방법, 및 통신 제어 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007503569

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2577283

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 1020077008755

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2005765488

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 200580049326.2

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2005765488

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11793565

Country of ref document: US