WO2016121078A1 - Communication system and communication method - Google Patents

Communication system and communication method Download PDF

Info

Publication number
WO2016121078A1
WO2016121078A1 PCT/JP2015/052612 JP2015052612W WO2016121078A1 WO 2016121078 A1 WO2016121078 A1 WO 2016121078A1 JP 2015052612 W JP2015052612 W JP 2015052612W WO 2016121078 A1 WO2016121078 A1 WO 2016121078A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
communication
server system
server
pseudo
Prior art date
Application number
PCT/JP2015/052612
Other languages
French (fr)
Japanese (ja)
Inventor
松本 典剛
山田 勉
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2015/052612 priority Critical patent/WO2016121078A1/en
Publication of WO2016121078A1 publication Critical patent/WO2016121078A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Definitions

  • the present invention relates to a communication system and a communication method.
  • Patent Document 1 a method for realizing server-client communication using the TCP / IP protocol on the application side by tunneling using a virtual network interface is shown on the application side.
  • the present invention provides a communication system or a communication method that can prevent problems of some OSs from spreading to other OSs when data communication is performed between a plurality of applications or OSs. Objective.
  • one of the representative communication apparatuses and methods of the present invention is configured such that when request data that is a request to the server system is issued by an application executed on the OS of the client system, The communication dedicated data corresponding to the content of the request data is generated, and the generated communication dedicated data is transmitted to the server system via the first communication path, and the server system receives the communication dedicated data from the client system.
  • the pseudo data corresponding to the communication-dedicated data is selected from a plurality of pseudo data stored in advance, and the processing of the application executed on the server side OS is performed using the selected pseudo data It is.
  • the present embodiment particularly relates to a data processing apparatus in which a plurality of arithmetic devices perform data processing using a storage device, and a secure communication method via a storage device between the plurality of arithmetic devices.
  • the data processing apparatus 1 in the first embodiment includes a calculation unit 2, a storage unit 3, a virtual network interface 4 (hereinafter abbreviated as a virtual network IF 4), a one-way communication path 5, and a dedicated path 6.
  • An OS 7, a protocol stack 8, an application 9, and a setting input unit 10 are configured.
  • the calculation unit 2 has a function of performing reading and writing of data with the storage unit 3 and performing calculation processing in accordance with instructions stored in the storage unit 3.
  • an integrated circuit such as a processor, a core of the processor, or an LSI (Large Scale Integration).
  • a plurality of calculation units 2 may be installed for each function or OS 7, or a plurality of functions or OS 7 may be processed by only one calculation device as shown in FIG.
  • the storage unit 33 has a function of holding data such as programs.
  • a processor built-in register a volatile memory, a nonvolatile memory, a hard disk, and the like.
  • the protocol stack 8 is software for executing communication using a predetermined communication protocol such as the TCP / IP protocol stack 8.
  • the OS 7 and the protocol stack 8 may be mounted separately as shown in FIG. 1, or the functions of the OS 7 and the protocol stack 8 may be integrated as shown in FIG. Further, software corresponding to an application may directly perform data communication using the virtual network IF 4 without installing the OS 7 or the protocol stack 8.
  • the application 9 is software for performing data communication with another OS 7, and is, for example, a server application 9 (hereinafter abbreviated as a server application 9) or a client application 9 (hereinafter abbreviated as a client application 9).
  • a server application 9 hereinafter abbreviated as a server application 9
  • a client application 9 hereinafter abbreviated as a client application 9
  • the server application 9 is installed on the computing unit 2A side and the client application 9 is installed on the computing unit 2B side.
  • both the server application 9 and the client application 9 functions are installed on one side. May be.
  • the virtual net IF 4 includes a pseudo data setting / selection unit 11, a pseudo data list 12, a protocol determination unit 13, and a detoxification unit 14.
  • the virtual network IF 4 is an interface for performing data communication between the server application 9 and the client application 9 via the one-way communication path 5 and the dedicated path 6, and has a data format that can be processed by the general-purpose OS 7 and the protocol stack 8. It has a function to enable virtual communication.
  • the virtual IF 4 needs the above-described configuration, but when only the server application 9 is installed, The virtual net IF 4 only needs to have only the pseudo data setting / selection unit 11 and the pseudo data list 12. Similarly, when only the client application 9 is installed, the virtual network IF 4 may have only the protocol determination unit 13 and the harmless unit 14.
  • the data processing apparatus having the configuration shown in FIG. 1 is taken as an example, but the maximum number of computing units 2, virtual net IFs 4, OS7, etc. is not limited to two. .
  • a plurality of arithmetic units 2 may be connected to virtual nets IF 4 of other plural arithmetic units 2 via a one-way communication path 5 and a dedicated path 6, respectively.
  • the virtual network IF may have only a function for the server application 9, may have only a function for the client application 9, or may have both functions.
  • the protocol determination unit 13 has a function of determining a protocol type and a data format of data received from the client application 9 or the server application 9 and determining how to process the data.
  • the detoxification unit 14 has a function of detoxifying (sanitizing) the transmission data from the client application 9 and transmitting it as the detoxification data 16 via the dedicated path 6. Details of the detoxification will be described later.
  • the pseudo data setting / selection unit 11 has a function of receiving the detoxified data 16, selecting the pseudo data 17 corresponding to the detoxified data 16 from the pseudo data list 12, and transmitting it to the server application 9 side. Further, according to an instruction from the setting input unit 10, it has a function of setting an association between the detoxification data 16 and the pseudo data 17 to be selected. Further, it may have a function of adding, deleting, changing, etc., the pseudo data 17 registered in the pseudo data list 12.
  • the pseudo data list 12 is a set of data having the same type of data format as the request data 15 transmitted from the client application 9 to the server application 9, for example.
  • the setting input unit 10 is an interface for setting the association between the detoxification data 16 and the pseudo data 17, and is, for example, an application interface (API) or a human machine interface (HMI). Note that the setting input unit 10 may not be mounted if the processing method of the pseudo data setting / selection unit 11 and the contents of the pseudo data list 12 are not changed.
  • the one-way communication path 5 is a communication path for directly sending actual data such as response data 18 transmitted from the server application 9 to the client application 9 side.
  • it may be a network such as Ethernet, or may be an internal bus such as a memory bus, or a peripheral interface such as PCI or PCI-Express.
  • the dedicated path 6 is a means for transmitting the harmless data 16 from the client application 9 side to the server application 9 side.
  • the dedicated path 6 may be a network, an internal bus, or a peripheral interface as with the one-way communication path 5, or may be a simple signal line, a serial communication path, or a parallel communication path. For example, an I / O signal or an interrupt signal.
  • the dedicated path 6 and the one-way communication path 5 do not share data.
  • the client application 9 transmits request data 15 to the server application 9 (processing S401).
  • the request data 15 is, for example, a SYN packet for requesting connection establishment in TCP communication, an HTTP request used in Web server / client communication, or the like.
  • the protocol determination unit 13 determines the data type or the like of the request data 15 and determines how to process it (processing S402). For example, when the request data 15 is transmitted from the client application 9 to the server application 9, the request data is transferred to the detoxification unit 14 and the process is entrusted (process S403).
  • the detoxification unit 14 detoxifies the request data 15 and converts it into the detoxification data 16 (process S404).
  • the detailed processing flow of the protocol determination unit 13 and the detoxification unit 14 will be described later.
  • the detoxification data 16 is transmitted to the server application 9 side via the dedicated path 6 (processing S405).
  • the pseudo data setting / selection unit 11 on the server application 9 side receives the harmless data 16 and selects the pseudo data 17 corresponding to the harmless data 16 from the pseudo data list 12 (processing S406).
  • the pseudo data list 12 transmits the selected pseudo data 17 to the server application 9 side directly or via the pseudo data setting / selection unit 11 (process S407).
  • response data 18 is generated according to the received pseudo data 17 as a server process (process S408), and is transmitted to the client application 9 via the one-way communication path 5 (process S409).
  • the response data 18 is, for example, a SYN / ACK packet used for establishing a connection in TCP communication, an HTTP response used in Web server / client communication, or the like.
  • the protocol determination unit 13 receives the response data 18 from the server, and performs the determination process in the same manner as the process S402 (process S410). If response data is received from the server application 9 side to the client application 9 side, the received data is transmitted to the client application side (step S411). Here, the processing S410 is omitted, and the response data 18 from the server application 9 side may be directly transmitted to the client application 9 side.
  • the protocol determination unit 13 determines whether or not the received data has a valid data format (processing S501). For example, the header or footer information of the data packet is analyzed to determine whether or not the protocol type can be processed. A CRC check or the like may be executed to determine the presence or absence of data errors.
  • processing S502 when it is determined that the received data is normal, it is determined whether the address information of the data transmission source or the transmission destination is valid (processing S502). For example, when the transmission source is the address of the client application 9 side and the transmission destination is the address of the server application 9 side, the request data 15 is determined and the data is transmitted to the harmless unit 14.
  • the address information there is a method of determining based on information such as a port number in the case of TCP protocol or UDP protocol.
  • processing S503 when data is transmitted to the detoxification unit 14, it is determined whether or not the data is to be detoxified (processing S503). If the data is to be detoxified, the detoxification process is executed, and the detoxification data 16 is transmitted to the server application 9 side via the dedicated path 6 (process S504). If negative determinations are made in steps S501, S503, and S505, error processing such as abnormality / warning notification to the application 9 may be executed and the processing may be terminated (step S507).
  • the detoxification unit assigns an identification number or the like corresponding to the format of the request data 15 transmitted by the client application 9 as the detoxification data 16.
  • the detoxification data 16 corresponding to the ACK packet in TCP communication is set to “0”.
  • identification numbers such as “1” and “2” are assigned to SYN packets and SYN / ACK packets, respectively.
  • an identification number “3” is assigned when the data format is a specific pattern A (data A), and an identification number “4” is assigned when the data format is data B or data C. If the data format is not specified, it may be discarded as invalid data and notified to the client application 9 as an error.
  • the association between the request data 15 and the detoxification data 16 may be a method other than this example, or the setting input unit 10 may be provided to set the association from the outside.
  • all or part of the header or footer information of the request data 15 may be left, and data combined with the above-described identification number may be made harmless data. Further, a hash value calculated using a known compression technique or encryption technique may be used as the harmless data 16.
  • step S701 it is determined whether or not the detoxification data 16 has been received from the dedicated path 6 (processing S701).
  • the detoxification data 16 is received, it is determined whether or not the detoxification data 16 is set in advance by the setting input unit 10 (step S702). If the invalid sanitization data 16 is not set, error processing such as abnormality / warning notification to the application 9 side may be executed and the processing may be terminated (processing S707). If the detoxified data 16 has been set, the corresponding pseudo data 17 is selected from the pseudo data list 12 (step S703).
  • processing S704 it is determined whether or not the content of the selected pseudo data 17 needs to be changed. If it is not necessary to change the data, the pseudo data 17 is transmitted as it is to the server application 9 side (step S706). If the data needs to be changed, a part of the data is changed in the pseudo data setting / selection unit 11 and then transmitted to the server application 9 (processing S7056 and processing S706).
  • a selection method of the pseudo data 17 in the processing process S703 for example, there is a method of executing a process reverse to the conversion process from the request data 15 to the detoxification data 16 shown in FIG. For example, when the identification number “0” is received as the detoxification data 16, an ACK packet may be selected as the pseudo data 17.
  • the SYN packet, the SYN / ACK packet, and the data A are selected as the pseudo data 17, respectively.
  • both data B and data C are selected as the pseudo data 17.
  • the change of the pseudo data in the process S705 is, for example, changing the data header or footer information from a preset value.
  • the harmless data 16 includes header information
  • variable information such as a sequence number is individually managed on the server application 9 side and the client application 9 side so that they can be consistent with each other. There are methods such as setting values. A detailed example will be described in the second embodiment.
  • processing method in processing S702, processing S703, processing S704, and processing S705 and the contents of the pseudo data list 12 may be set or changed by the setting input unit 10.
  • the data request from the client application 9 side is not transmitted directly to the server application 9 side, but is harmless, so that harmful data is transferred from the client application 9 side to the server application 9 side. Can be prevented from being sent to.
  • the pseudo data 17 on the application side it is possible to use a communication protocol corresponding to bidirectional communication while restricting actual data communication in one direction.
  • a data processing device 21 in the second embodiment will be described with reference to FIG.
  • the calculation unit 2, the storage unit 3, the virtual net IF 22, the one-way communication path 5, the dedicated path 6, the OS 7, the protocol stack 8, the application 9, and the setting input unit 10 are configured. Note that the functions of the calculation unit 2, the storage unit 3, the one-way communication path 5, the dedicated path 6, the OS 7, the protocol stack 8, the application 9, and the setting input unit 10 are the same as those in the first embodiment, and therefore will not be described or illustrated. Omitted.
  • the virtual network IF 22 includes a pseudo data setting / selection unit 23, a pseudo data list 24, a protocol determination unit 25, a detoxification unit 26, a sequence management unit 27, and a flow control unit 28.
  • the virtual network IF 22 has functions of performing sequence management and flow control in data transmission / reception between the server application 9 and the client application 9 in addition to the same functions as in the first embodiment.
  • the sequence management unit 27 has a function of managing sequence information of data transmitted and received between the applications 9.
  • the flow control unit 28 has a function of performing flow control of data transmitted and received between the applications 9.
  • FIG. 8 shows a processing flow of the sequence management unit 27 on the client application 9 side.
  • the protocol determination unit 25 identifies the protocol type from data header information and the like, and determines whether the protocol requires sequence management, such as the TCP protocol. If the sequence management is unnecessary, the process is terminated. If necessary, it is determined whether the sequence information of the received data is valid (process S902). For example, it is determined whether or not a sequence number that has been recorded in the past is consistent, and if a mismatch has occurred, an error process or the like is executed (processing S906).
  • step S903 when the sequence information is valid, it is determined whether the data transmission direction is from the client application 9 to the server application 9 or from the server application 9 to the client application 9 (step S903).
  • the sequence information of the data is stored (process S904).
  • the sequence information of the data to be transmitted to the client application 9 side is restored based on the stored sequence information.
  • FIG. 10 shows a processing flow of the sequence management unit 27 on the server application 9 side.
  • processing S1001 it is determined whether or not the sequence management of the data selected by the pseudo data setting / selection unit 23 is necessary (processing S1001). For example, there is a method of identifying the protocol type from the header information of the data as in the above-described processing S901. If it is determined that sequence management is necessary, it is determined whether the target data is a connection newly created between the server application 9 and the client application 9 (step S1002). For example, there is a method of determining whether or not it is the first data transmission / reception in a series of data transmission / reception generated by communication between a specific server and client, and holding the flag information as to whether or not the communication is the first communication. .
  • pseudo sequence information to be given to the pseudo data 17 is issued and stored together with the above flag information (processing S1003). If it is not a new connection, the stored pseudo sequence information is updated and reflected in the sequence information of the pseudo data 17 (step S1004).
  • sequence management unit 27 on the server application 9 side and the client application 9 side has been described as operating in different processing flows, but the functions of both the server application 9 and the client application In the case of having both, the processing flow can be executed also for the sequence management unit.
  • step S1101 An example of a processing sequence of the data processing apparatus in the present embodiment will be described with reference to FIG. This sequence is an example in the case of performing the same processing as the three-way handshake when establishing a connection in TCP communication.
  • the client application 9 sends a SYN packet for establishing a TCP connection with the server application 9 (step S1101).
  • the X number is assigned to the SYN packet as a sequence (SEQ) number by processing on the client application side.
  • the protocol determination unit 25 receives the SYN packet as the request data 15, and the sequence management unit 27 stores the sequence number X of the SYN packet (processing S1102).
  • the detoxifying unit 26 detoxifies the SYN packet according to the same processing flow as in the first embodiment (processing S1103).
  • the identification number “1” is transmitted as the harmless data 16 to the pseudo data setting / selecting unit 23 on the server application 9 side via the dedicated path 6 (processing S1104).
  • the pseudo data setting / selection unit 23 selects a SYN packet from the pseudo data list 24 as the pseudo data 17 corresponding to the detoxified data 16 according to the same processing flow as in the first embodiment (processing S1105).
  • the sequence management unit 27 on the server application 9 side generates a pseudo sequence number Y and assigns it to the pseudo data as a new sequence number (processing S1106).
  • the SYN packet with the sequence number Y is sent to the server application 9 side (processing S1107).
  • the server application 9 executes a server process corresponding to the reception of the SYN packet (process S1108).
  • a SYN / ACK packet in which Z is newly added as the sequence number and Y + 1 is set in the ACK number is sent to the client application 9 side (processing S1109).
  • the sequence management unit 27 transmits it to the client application side based on the sequence number stored in step S1102
  • the sequence information of the data to be restored is restored (processing S9). That is, the ACK number of the SYN / ACK packet is changed to X + 1. Therefore, the SYN / ACK packet having the sequence number Z and the ACK number X + 1 is sent to the client application 9 side (processing S1111).
  • the client application 9 transmits an ACK packet (process S1112). That is, an ACK packet in which X + 1 is set as the sequence number and Z + 1 is set as the ACK number is transmitted (processing S1113). Similar to the processing S1102, the protocol determination unit 25 receives the ACK packet as the request data 15, and the sequence management unit 27 stores the sequence number X + 1 of the ACK packet (processing S1114). Next, the ACK packet is rendered harmless in the same manner as in the processing 1103 (processing S1115), and the identification number “0” is transmitted as the harmless data 16 to the server application 9 side via the dedicated path 6 (processing S1116).
  • the pseudo data setting / selection unit 23 selects an ACK packet from the pseudo data list 24 as the pseudo data 17 corresponding to the detoxified data 16 as in the process 1105 (process S1117).
  • the sequence management unit 27 assigns Y + 1 as the pseudo sequence number (process S1118).
  • Z + 1 is assigned as the ACK number based on the sequence number Z assigned by the server application 9 side.
  • an ACK packet in which the sequence number Y + 1 and the ACK number Z + 1 are set is sent to the server application 9 side (processing S1119).
  • the server application 9 side executes server processing corresponding to reception of the SYN packet (processing S1120). That is, since the server application 9 side can determine that a normal ACK packet has been received as a reply to the SYN / ACK packet transmitted to the client application 9 side, a 3-way handshake in the TCP protocol is established, and the connection between the server and the client is established. It will be established.
  • a sequence for transmitting and receiving data packets using the TCP connection established using FIG. 12 will be described.
  • An example in which a data packet is transmitted from the server application 9 side to the client application 9 side is shown.
  • the server application 9 transmits a data packet in which Z + ⁇ is set as a sequence number and Y + ⁇ is set as an ACK number to the client application 9 side (processing S1201).
  • the sequence management unit 27 uses the sequence number stored in the above-described processing S1114 to The ACK number of the packet is changed to X + ⁇ (processing S1202).
  • the data packet with the sequence number Z + ⁇ and the ACK number X + ⁇ is sent to the client application 9 side (processing S1203).
  • an ACK packet corresponding to the received data packet is issued (processing S1204). That is, an ACK packet set to sequence number X + ⁇ and ACK number Z + ⁇ ′ is transmitted (processing S1205).
  • the protocol determination unit 25 receives the ACK packet as transmission data from the client application 9 side, and the sequence management unit 27 stores the sequence number X + ⁇ of the ACK packet (processing S1206).
  • the detoxification section 26 detoxifies the ACK packet in the same manner as described above (process S1207), and then transmits the identification number “0” as the detoxification data 16 to the server application 9 side via the dedicated path 6 ( Process S1208).
  • the pseudo data setting / selection unit 23 on the server application 9 side selects an ACK packet from the pseudo data list 24 as the pseudo data 17 corresponding to the harmless data 16 (processing S1209).
  • processing S1209 In the case of normal server / client communication, it is necessary to set the sequence number X + ⁇ and the ACK number Z + ⁇ ′ assigned by the client application 9 side to the data to the server application 9 side. The sequence number is not communicated. Therefore, similarly to the above-described processing S1118, the sequence management unit 27 on the server application 9 side assigns the pseudo sequence number Y + ⁇ and the ACK number Z + ⁇ ′ (processing S1210).
  • an ACK packet in which sequence number Y + ⁇ and ACK number Z + ⁇ ′ are set is sent to the server application 9 (step S1211).
  • the server application 9 side executes server processing corresponding to reception of the ACK packet (processing S1212).
  • the sequence number Z + ⁇ ′ and the ACK number Y + ⁇ ′ are set as the next data packet and sent to the client application 9 side (step S1213).
  • the sequence management unit on the client application 9 side returns the sequence information of the data to be transmitted to the client application 9 side from the stored sequence information (processing S1214).
  • the data packet set with the sequence number Z + ⁇ ′ and the ACK number X + ⁇ ′ is sent to the client application 9 side (processing S1215).
  • the process S1212 on the server application 9 side for example, there is a method of executing a data packet retransmission process when an ACK packet from the client side cannot be received within a predetermined time, that is, when a timeout occurs. Further, when inconsistency is detected in the sequence number or ACK number, retransmission processing or error processing may be executed.
  • FIG. 13 An example of a processing sequence using the flow control unit 28 will be described with reference to FIG.
  • the flow control unit 28 temporarily stores the received data in an internal buffer or the like, via the one-way communication path 5, The data are sequentially transmitted to the client application 9 side (processing S1302).
  • the data storage in the buffer or the like may be executed on the flow control unit 28 side on the server application 9 side or may be executed on the flow control unit 28 side on the client application 9 side.
  • the flow control unit 28 on the client application 9 side sequentially transmits the data packets received by the protocol determination unit 25 to the client application 9 side (processing S1303).
  • the flow control unit 28 generates a pseudo ACK packet to notify the server application 9 that the data packet has been normally received, and transmits the ACK packet to the harmless unit 26 (processing S1304).
  • the detoxification unit 26 detoxifies the ACK packet and transmits, for example, the identification number “0” as the detoxification data 16 to the server application 9 side via the dedicated path 6 (processing S1305).
  • the flow control unit 28 directly instructs the detoxification unit 26 to transmit a predetermined identification number “0”, instead of generating a pseudo ACK packet and transmitting it to the detoxification unit 26. May be.
  • the flow control unit 28 When the pseudo data setting / selection unit 23 on the server application 9 side receives the identification number “0” corresponding to ACK as the harmless data 16, the flow control unit 28 normally transmits the first data packet. It determines with having been completed (process S1306), and a data packet is continued to the client application 9 side (process S1307).
  • the harmless data 16 with the identification number “0” corresponding to the ACK from the client side cannot be received within a predetermined time, that is, when a timeout occurs, the data packet retransmission process may be executed. Alternatively, transmission of the data packet may be interrupted and notified to the server application side.
  • the processes of the sequence management unit 27 and the flow control unit 28 described above may be performed separately or in parallel.
  • the data request from the client application 9 side is not transmitted directly to the server application 9 side, but is harmless, so that harmful data is transferred from the client application 9 side to the server application 9 side. Can be prevented from being sent to. Furthermore, in data communication between applications, it is possible to execute sequence management and flow control, which are difficult without bidirectional communication, while restricting actual data communication in one direction.
  • FIG. 10 A data processing apparatus according to the third embodiment will be described with reference to FIG.
  • the calculation unit 2, the storage unit 3, the virtual network IF 32, the one-way communication path 5, the dedicated path 6, the OS 7, the protocol stack 8, the application 9, and the setting input unit 10 Composed.
  • the functions of the calculation unit 2, the storage unit 3, the one-way communication path 5, the dedicated path 6, the OS 7, the protocol stack 8, the application 9, and the setting input unit 10 are the same as those in the first embodiment or the second embodiment. Therefore, explanation or illustration is omitted.
  • the virtual network IF 32 includes a pseudo data setting / selection unit 33, a pseudo data list 34, a protocol determination unit 35, a detoxification unit 36, and a priority control unit 37.
  • the virtual network IF 32 has a function of performing priority control of data transmitted and received between the server application 9 and the client application 9 in addition to the same functions as in the first embodiment.
  • the priority control unit 37 has a function of performing priority control of data transmitted and received between the applications 9.
  • the priority control unit 37 sets the priority of the data (process S1502).
  • the priority setting may be specified on the application 9 side, or the protocol determination unit 35 may identify the protocol type of the data and automatically assign a predetermined priority.
  • the detoxification unit 36 transmits the detoxification data 16 to the server application 9 side by a method according to the priority setting (processing S1503).
  • a method for setting the priority for example, there is a method in which a plurality of dedicated paths 6 are prepared for each priority and transmitted to the dedicated path 6 according to the priority. Further, a method of giving priority information to the detoxification data 16 and transmitting it may be used.
  • the pseudo data setting / selection unit 33 on the server application 9 side selects the pseudo data 17 corresponding to the detoxified data when the detoxified data 16 is received (processing S1504).
  • the priority control unit 37 executes the priority process according to the priority of the received harmless data (process S1505). That is, it transmits to a server application side in an order with a high priority. For example, when the harmless data 16 with higher priority is received (process S1506), the pseudo data 17 with higher priority is sent to the server application 9 side first (process S1507).
  • the server application 9 side executes server processing according to the acquired pseudo data 17 (step S1508), and transmits data to the client application 9 side (step S1509).
  • the protocol determination unit 35 on the client application 9 side When receiving data from the server application 9 side, the protocol determination unit 35 on the client application 9 side similarly performs priority control, and transmits the data from the higher priority data to the client application 9 side in order (processing S1510).
  • the priority control in step S1505 when the low-priority data transmission processing (processing S1511 and S1512) is processed before the high-priority data transmission processing (processing S1507 and S1509).
  • data with high priority may be transmitted to the client application 9 side first.
  • the data processing of the priority control unit 37 in the present embodiment may be performed in parallel with the data processing of the sequence management unit 27 and the data processing of the flow control unit 28 in the second embodiment.
  • the data request from the client application 9 side is not transmitted directly to the server application 9 side, but is harmless, so that harmful data is transferred from the client application 9 side to the server application 9 side. Can be prevented from being sent to. Further, by performing data priority control, highly real-time data communication processing can be executed securely.
  • a general-purpose bidirectional communication method such as TCP / IP can be used securely. Furthermore, even if a general-purpose processor or an old processor that does not have a security function mounted by default is used, a strong security function can be realized.
  • this invention is not limited to an above-described Example, Various modifications are included.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
  • a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
  • Each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files for realizing each function can be stored in a recording device such as a memory, a hard disk, or an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

The present invention addresses the problem of preventing, in performing data communication among a plurality of applications or OSs, a problem of some OSs or the like from spreading to other OSs or the like. As a solution, the present invention provides a communication system, wherein: when request data as a request to a server system is issued by an application executed on an OS of a client system, communication-only data corresponding to the content of the request data is generated, and the generated communication-only data is transmitted to the server system via a first communication path; and when receiving the communication-only data from the client system, the server system selects pseudo data corresponding to the communication-only data from among a plurality of pieces of pseudo data stored in advance, and performs processing for an application executed on an OS on the server side by using the selected pseudo data.

Description

通信システム、および、通信方法Communication system and communication method
 本発明は、通信システム、および、通信方法に関する。 The present invention relates to a communication system and a communication method.
 近年、プロセッサを高性能化するために、動作周波数を高めるのではなく、消費電力を抑えるために複数のコアを搭載することで処理能力を向上させる方法が主流となりつつある。また、一つのプロセッサ上で複数のOS(オペレーティングシステム)を搭載し、各OSを独立に動作させる技術も確立されている。このように、プロセッサやOSの実装技術の高度化により、単一もしくは複数のプロセッサ上に、様々なアプリケーションを同時に搭載して並列的に実行させることが可能となっている。例えば、制御システム等で利用される組込み機器において、リアルタイム処理用の軽量OSとネットワーク処理用のOSとを同時にプロセッサに搭載して並列的に実行することにより、リアルタイム制御に影響を与えることなく、豊富なネットワーク機能を利用できる環境を実現できる。 In recent years, in order to improve the performance of a processor, a method of improving processing performance by mounting a plurality of cores to suppress power consumption, rather than increasing the operating frequency, is becoming mainstream. In addition, a technique has been established in which a plurality of OSs (operating systems) are mounted on one processor and each OS is operated independently. As described above, with the advancement of processor and OS mounting techniques, various applications can be simultaneously mounted and executed in parallel on a single or a plurality of processors. For example, in an embedded device used in a control system or the like, a lightweight OS for real-time processing and an OS for network processing are simultaneously installed in a processor and executed in parallel without affecting real-time control. An environment that can use abundant network functions can be realized.
 このように複数のOSをプロセッサに搭載する際には、共有メモリを利用してOS間の通信を行うのが一般的である。また、OS間の通信にはアプリケーション側のデータ処理を容易とするため、TCP/IPプロトコルによるサーバ・クライアント通信などが用いられる。しかしながら、プロセッサ間やコア間通信のように、OS間のデータ通信経路がIPネットワークでない場合には、そのままTCP/IPプロトコルを使用することはできない。 In this way, when a plurality of OSs are installed in a processor, communication between the OSs is generally performed using a shared memory. In addition, in order to facilitate data processing on the application side, communication between OSs uses server / client communication using the TCP / IP protocol. However, when the data communication path between OSs is not an IP network, such as communication between processors or between cores, the TCP / IP protocol cannot be used as it is.
 そこで、例えば、特許文献1のように、仮想ネットワークインタフェースを用いたトネリングにより、中間のネットワーク種類によらずアプリケーション側ではTCP/IPプロトコルによるサーバ・クライアント通信を実現する方法が示されている。 Therefore, for example, as shown in Patent Document 1, a method for realizing server-client communication using the TCP / IP protocol on the application side by tunneling using a virtual network interface is shown on the application side.
特開2011-239343号公報JP 2011-239343 A
 複数のOS間でTCP/IPなどの情報系システムの技術を用いてデータ通信を行う場合、一部のOSの障害等が他のOSの処理に影響を与えないようにする必要がある。例えば、ネットワークに接続しているOSやアプリケーションがサイバー攻撃やウィルス感染などにより正常に動作できなくなった場合に、他のOSやアプリケーションへ被害が拡大することを防止しなければならない。前述の公知技術では、仮想ネットワークインタフェースを利用した場合の、セキュリティ対策等については特に記載されていない。 When performing data communication between a plurality of OSs using information system technology such as TCP / IP, it is necessary to prevent some OS failures from affecting other OS processes. For example, when an OS or application connected to a network becomes unable to operate normally due to a cyber attack or virus infection, it is necessary to prevent damage from spreading to other OSs and applications. In the above-described known technology, there is no particular description about security measures when a virtual network interface is used.
 そこで本発明は、複数のアプリケーションもしくはOS間でデータ通信を行う際に、一部のOS等の問題が他のOS等へ波及することを防止できる通信システム、または、通信方法を提供することを目的とする。 Therefore, the present invention provides a communication system or a communication method that can prevent problems of some OSs from spreading to other OSs when data communication is performed between a plurality of applications or OSs. Objective.
 上記課題を解決するために、代表的な本発明の通信装置及び方法の一つは、クライアントシステムのOS上で実行されるアプリケーションによってサーバシステムへの要求であるリクエストデータが発行されると、当該リクエストデータの内容に対応した通信専用データを生成し、生成した前記通信専用データを第1の通信路を介して前記サーバシステムへ送信し、前記サーバシステムは、前記クライアントシステムから前記通信専用データを受信すると、当該通信専用データに対応する疑似データを予め記憶する複数の疑似データの中から選択し、選択した前記擬似データを用いて前記サーバ側のOS上で実行されるアプリケーションの処理を行うものである。 In order to solve the above-described problem, one of the representative communication apparatuses and methods of the present invention is configured such that when request data that is a request to the server system is issued by an application executed on the OS of the client system, The communication dedicated data corresponding to the content of the request data is generated, and the generated communication dedicated data is transmitted to the server system via the first communication path, and the server system receives the communication dedicated data from the client system. Upon receipt, the pseudo data corresponding to the communication-dedicated data is selected from a plurality of pseudo data stored in advance, and the processing of the application executed on the server side OS is performed using the selected pseudo data It is.
 本発明によれば、複数のアプリケーションもしくはOS間でデータ通信を行う際に、一部のOS等の問題が他のOS等へ波及することを防止できる。
According to the present invention, when data communication is performed between a plurality of applications or OSs, it is possible to prevent problems of some OSs from spreading to other OSs.
第1実施形態におけるデータ処理装置の構成の一例を示した図である。It is the figure which showed an example of the structure of the data processor in 1st Embodiment. 第1実施形態におけるデータ処理装置の構成の一例を示した図である。It is the figure which showed an example of the structure of the data processor in 1st Embodiment. 第1実施形態におけるデータ処理装置の構成の一例を示した図である。It is the figure which showed an example of the structure of the data processor in 1st Embodiment. 第1実施形態におけるデータ処理装置の処理シーケンスの一例を示した図である。It is the figure which showed an example of the processing sequence of the data processor in 1st Embodiment. 第1実施形態におけるプロトコル判定部および無害化部の処理フローの一例を示した図である。It is the figure which showed an example of the processing flow of the protocol determination part and detoxification part in 1st Embodiment. 第1実施形態における無害化部の無害化処理の一例を示した図である。It is the figure which showed an example of the detoxification process of the detoxification part in 1st Embodiment. 第1実施形態における疑似データ設定/選択部の処理フローの一例を示した図である。It is the figure which showed an example of the processing flow of the pseudo data setting / selection part in 1st Embodiment. 第2実施形態におけるデータ処理装置の構成の一例を示した図である。It is the figure which showed an example of the structure of the data processor in 2nd Embodiment. 第2実施形態におけるシーケンス管理部の処理フローの一例を示した図である。It is the figure which showed an example of the processing flow of the sequence management part in 2nd Embodiment. 第2実施形態におけるシーケンス管理部の処理フローの一例を示した図である。It is the figure which showed an example of the processing flow of the sequence management part in 2nd Embodiment. 第2実施形態におけるデータ処理装置の処理シーケンスの一例を示した図である。It is the figure which showed an example of the processing sequence of the data processor in 2nd Embodiment. 第2実施形態におけるデータ処理装置の処理シーケンスの一例を示した図である。It is the figure which showed an example of the processing sequence of the data processor in 2nd Embodiment. 第2実施形態におけるデータ処理装置の処理シーケンスの一例を示した図である。It is the figure which showed an example of the processing sequence of the data processor in 2nd Embodiment. 第3実施形態におけるデータ処理装置の構成の一例を示した図である。It is the figure which showed an example of the structure of the data processor in 3rd Embodiment. 第3実施形態におけるデータ処理装置の処理シーケンスの一例を示した図である。It is the figure which showed an example of the processing sequence of the data processor in 3rd Embodiment.
 次に、本発明を実施するための形態(以降、「本実施形態」と称す)について、適宜図面を参照しながら詳細に説明する。 Next, a mode for carrying out the present invention (hereinafter referred to as “the present embodiment”) will be described in detail with reference to the drawings as appropriate.
 (第1実施形態)
 本実施例は、特に複数の演算装置が記憶装置を利用してデータ処理を行うデータ処理装置、及び、複数の演算装置の間での記憶装置を介したセキュア通信方法に関するものである。 第1実施形態におけるデータ処理装置1は、図1に示すように、演算部2と記憶部3と仮想ネットワークインタフェース4(以降、仮想ネットIF4と略す)と片方向通信路5と専用路6とOS7とプロトコルスタック8とアプリケーション9と設定入力部10とから構成される。
(First embodiment)
The present embodiment particularly relates to a data processing apparatus in which a plurality of arithmetic devices perform data processing using a storage device, and a secure communication method via a storage device between the plurality of arithmetic devices. As shown in FIG. 1, the data processing apparatus 1 in the first embodiment includes a calculation unit 2, a storage unit 3, a virtual network interface 4 (hereinafter abbreviated as a virtual network IF 4), a one-way communication path 5, and a dedicated path 6. An OS 7, a protocol stack 8, an application 9, and a setting input unit 10 are configured.
 演算部2は、記憶部3とデータの読み書きを実行し、記憶部3に格納された命令に従って演算処理を行う機能を有する。例えば、プロセッサやプロセッサのコア、LSI(Large Scale Integration)などの集積回路である。演算部2は図1に示すように、機能やOS7ごとに複数搭載されていても良いし、図2に示すように複数の機能やOS7を1つの演算装置のみで処理しても良い。 The calculation unit 2 has a function of performing reading and writing of data with the storage unit 3 and performing calculation processing in accordance with instructions stored in the storage unit 3. For example, an integrated circuit such as a processor, a core of the processor, or an LSI (Large Scale Integration). As shown in FIG. 1, a plurality of calculation units 2 may be installed for each function or OS 7, or a plurality of functions or OS 7 may be processed by only one calculation device as shown in FIG.
 記憶部33はプログラムなどのデータを保持する機能を有する。例えば、プロセッサの内蔵レジスタ、揮発性メモリ、不揮発性メモリ、ハードディスクなどである。プロトコルスタック8は例えばTCP/IPプロトコルスタック8などのように所定の通信プロトコルによって通信を実行するためのソフトウェアである。OS7やプロトコルスタック8は図1に示すように別個に搭載していても良いし、図2に示すように、OS7やプロトコルスタック8の機能を一体化していても良い。また、OS7やプロトコルスタック8を搭載せずに、アプリケーションに相当するソフトウェアが直接仮想ネットIF4を利用してデータ通信を行っても良い。 The storage unit 33 has a function of holding data such as programs. For example, a processor built-in register, a volatile memory, a nonvolatile memory, a hard disk, and the like. The protocol stack 8 is software for executing communication using a predetermined communication protocol such as the TCP / IP protocol stack 8. The OS 7 and the protocol stack 8 may be mounted separately as shown in FIG. 1, or the functions of the OS 7 and the protocol stack 8 may be integrated as shown in FIG. Further, software corresponding to an application may directly perform data communication using the virtual network IF 4 without installing the OS 7 or the protocol stack 8.
 アプリケーション9は、他のOS7とデータ通信を行うためのソフトウェアであり、例えばサーバ用アプリケーション9(以降、サーバアプリ9と略す)やクライアント用アプリケーション9(以降、クライアントアプリ9と略す)である。本例では、演算部2A側にサーバアプリ9を搭載し、演算部2B側にクライアントアプリ9を搭載しているものとして説明するが、片方にサーバアプリ9およびクライアントアプリ9両方の機能を搭載していても良い。 The application 9 is software for performing data communication with another OS 7, and is, for example, a server application 9 (hereinafter abbreviated as a server application 9) or a client application 9 (hereinafter abbreviated as a client application 9). In this example, the server application 9 is installed on the computing unit 2A side and the client application 9 is installed on the computing unit 2B side. However, both the server application 9 and the client application 9 functions are installed on one side. May be.
 仮想ネットIF4は疑似データ設定/選択部11と疑似データリスト12とプロトコル判定部13と無害化部14とから構成される。仮想ネットIF4は、片方向通信路5および専用路6を介して、サーバアプリ9とクライアントアプリ9間のデータ通信を行うためのインタフェースであり、汎用のOS7やプロトコルスタック8が処理できるデータ形式で仮想的に通信できるようにする機能を有する。 The virtual net IF 4 includes a pseudo data setting / selection unit 11, a pseudo data list 12, a protocol determination unit 13, and a detoxification unit 14. The virtual network IF 4 is an interface for performing data communication between the server application 9 and the client application 9 via the one-way communication path 5 and the dedicated path 6, and has a data format that can be processed by the general-purpose OS 7 and the protocol stack 8. It has a function to enable virtual communication.
 ここで、演算部2の処理するOS7がサーバアプリ9およびクライアントアプリ9の両方を搭載する場合には、仮想IF4は前述の構成が必要があるが、サーバアプリ9のみを搭載する場合には、仮想ネットIF4は疑似データ設定/選択部11と疑似データリスト12のみを有していれば良い。同様に、クライアントアプリ9のみを搭載する場合には、仮想ネットIF4はプロトコル判定部13と無害化部14のみを有していれば良い。 Here, when the OS 7 processed by the calculation unit 2 is equipped with both the server application 9 and the client application 9, the virtual IF 4 needs the above-described configuration, but when only the server application 9 is installed, The virtual net IF 4 only needs to have only the pseudo data setting / selection unit 11 and the pseudo data list 12. Similarly, when only the client application 9 is installed, the virtual network IF 4 may have only the protocol determination unit 13 and the harmless unit 14.
 また、以降の本実施形態に関する詳細説明では、図1に示す構成のデータ処理装置を例とするが、演算部2、仮想ネットIF4、OS7などの最大数は2つに限定されるものではない。例えば、図3に示すように、複数の演算部2がそれぞれ片方向通信路5、専用路6を介して他の複数の演算部2の仮想ネットIF4と接続されていても良い。その場合、仮想ネットIFはサーバアプリ9用の機能のみを有していても良いし、クライアントアプリ9用の機能のみを有しても良いし、両方の機能を有していても良い。 Further, in the following detailed description of the present embodiment, the data processing apparatus having the configuration shown in FIG. 1 is taken as an example, but the maximum number of computing units 2, virtual net IFs 4, OS7, etc. is not limited to two. . For example, as shown in FIG. 3, a plurality of arithmetic units 2 may be connected to virtual nets IF 4 of other plural arithmetic units 2 via a one-way communication path 5 and a dedicated path 6, respectively. In this case, the virtual network IF may have only a function for the server application 9, may have only a function for the client application 9, or may have both functions.
 プロトコル判定部13は、クライアントアプリ9もしくはサーバアプリ9から受信したデータのプロトコル種別やデータ形式を判定し、どのように処理するかを決定する機能を有する。無害化部14は、クライアントアプリ9からの送信データを無害化(サニタイズ)したうえで、専用路6を介して無害化データ16として送信する機能を有する。無害化の詳細については後述する。 The protocol determination unit 13 has a function of determining a protocol type and a data format of data received from the client application 9 or the server application 9 and determining how to process the data. The detoxification unit 14 has a function of detoxifying (sanitizing) the transmission data from the client application 9 and transmitting it as the detoxification data 16 via the dedicated path 6. Details of the detoxification will be described later.
 疑似データ設定/選択部11は、無害化データ16を受信し、無害化データ16に対応した疑似データ17を疑似データリスト12から選択し、サーバアプリ9側へ送信する機能を有する。また、設定入力部10からの指示に従って、無害化データ16と選択する疑似データ17との関連付けを設定する機能を有する。さらに、疑似データリスト12に登録する疑似データ17の追加、削除、変更などを実行する機能を有していても良い。 The pseudo data setting / selection unit 11 has a function of receiving the detoxified data 16, selecting the pseudo data 17 corresponding to the detoxified data 16 from the pseudo data list 12, and transmitting it to the server application 9 side. Further, according to an instruction from the setting input unit 10, it has a function of setting an association between the detoxification data 16 and the pseudo data 17 to be selected. Further, it may have a function of adding, deleting, changing, etc., the pseudo data 17 registered in the pseudo data list 12.
 疑似データリスト12は、例えば、クライアントアプリ9がサーバアプリ9に対して送信するリクエストデータ15と同じ種類のデータ形式をもつデータの集合である。設定入力部10は、無害化データ16と疑似データ17の関連を設定するためのインタフェースであり、例えば、アプリケーションインタフェース(API)や、ヒューマンマシンインタフェース(HMI)などである。なお、設定入力部10は疑似データ設定/選択部11の処理方法や、疑似データリスト12の内容を変更しない場合には実装されていなくても良い。 The pseudo data list 12 is a set of data having the same type of data format as the request data 15 transmitted from the client application 9 to the server application 9, for example. The setting input unit 10 is an interface for setting the association between the detoxification data 16 and the pseudo data 17, and is, for example, an application interface (API) or a human machine interface (HMI). Note that the setting input unit 10 may not be mounted if the processing method of the pseudo data setting / selection unit 11 and the contents of the pseudo data list 12 are not changed.
 片方向通信路5は、サーバアプリ9から送信されるレスポンスデータ18などの実データを、クライアントアプリ9側に直接送付するための通信路である。例えば、Ethernetなどのネットワークであっても良いし、メモリバスなどの内部バスや、PCI、PCI Expressなどのペリフェラルインタフェースであっても良い。専用路6はクライアントアプリ9側からサーバアプリ9側へ無害化データ16を送信するための手段である。専用路6は、片方向通信路5と同様にネットワーク、内部バス、ペリフェラルインタフェースであっても良いし、単純な信号線やシリアル通信路、パラレル通信路であっても良い。例えば、I/O信号や割込み信号などである。ただし、専用路6と片方向通信路5とはデータを共有しないものとする。 The one-way communication path 5 is a communication path for directly sending actual data such as response data 18 transmitted from the server application 9 to the client application 9 side. For example, it may be a network such as Ethernet, or may be an internal bus such as a memory bus, or a peripheral interface such as PCI or PCI-Express. The dedicated path 6 is a means for transmitting the harmless data 16 from the client application 9 side to the server application 9 side. The dedicated path 6 may be a network, an internal bus, or a peripheral interface as with the one-way communication path 5, or may be a simple signal line, a serial communication path, or a parallel communication path. For example, an I / O signal or an interrupt signal. However, the dedicated path 6 and the one-way communication path 5 do not share data.
 データ処理装置1において、クライアントアプリ9からサーバアプリ9に対してリクエストデータ15を送信し、サーバアプリ9がクライアントにレスポンスデータ18を返信する場合の処理シーケンスの例について、図4を用いて説明する。 An example of a processing sequence in the data processing apparatus 1 when the client application 9 transmits request data 15 to the server application 9 and the server application 9 returns response data 18 to the client will be described with reference to FIG. .
 はじめに、クライアントアプリ9はサーバアプリ9に対してリクエストデータ15を送信する(処理S401)。リクエストデータ15とは例えば、TCP通信においてコネクション確立を要求するためのSYNパケットや、Webサーバ・クライアント通信で利用されるHTTPリクエストなどである。次に、プロトコル判定部13はリクエストデータ15のデータ種別などを判定し、どのように処理するかを決定する(処理S402)。例えば、クライアントアプリ9からサーバアプリ9へのリクエストデータ15送信の場合には、無害化部14へリクエストデータを渡し処理を委ねる(処理S403)。 First, the client application 9 transmits request data 15 to the server application 9 (processing S401). The request data 15 is, for example, a SYN packet for requesting connection establishment in TCP communication, an HTTP request used in Web server / client communication, or the like. Next, the protocol determination unit 13 determines the data type or the like of the request data 15 and determines how to process it (processing S402). For example, when the request data 15 is transmitted from the client application 9 to the server application 9, the request data is transferred to the detoxification unit 14 and the process is entrusted (process S403).
 次に、無害化部14ではリクエストデータ15を無害化処理し無害化データ16に変換する(処理S404)。プロトコル判定部13および無害化部14の詳細な処理フローについては後述する。無害化データ16は専用路6を介してサーバアプリ9側に送信される(処理S405)。次に、サーバアプリ9側の疑似データ設定/選択部11は無害化データ16を受信し、無害化データ16に対応する疑似データ17を疑似データリスト12から選択する(処理S406)。疑似データリスト12は、直接もしくは疑似データ設定/選択部11を介して、選択された疑似データ17をサーバアプリ9側へ送信する(処理S407)。 Next, the detoxification unit 14 detoxifies the request data 15 and converts it into the detoxification data 16 (process S404). The detailed processing flow of the protocol determination unit 13 and the detoxification unit 14 will be described later. The detoxification data 16 is transmitted to the server application 9 side via the dedicated path 6 (processing S405). Next, the pseudo data setting / selection unit 11 on the server application 9 side receives the harmless data 16 and selects the pseudo data 17 corresponding to the harmless data 16 from the pseudo data list 12 (processing S406). The pseudo data list 12 transmits the selected pseudo data 17 to the server application 9 side directly or via the pseudo data setting / selection unit 11 (process S407).
 サーバアプリ9ではサーバ処理として例えば、受信した疑似データ17に応じてレスポンスデータ18を生成し(処理S408)、片方向通信路5を介してクライアントアプリ9側に送信する(処理S409)。レスポンスデータ18とは、例えばTCP通信においてコネクション確立に使用されるSYN/ACKパケットや、Webサーバ・クライアント通信で利用されるHTTPレスポンスなどである。 In the server application 9, for example, response data 18 is generated according to the received pseudo data 17 as a server process (process S408), and is transmitted to the client application 9 via the one-way communication path 5 (process S409). The response data 18 is, for example, a SYN / ACK packet used for establishing a connection in TCP communication, an HTTP response used in Web server / client communication, or the like.
 最後に、サーバからのレスポンスデータ18をプロトコル判定部13が受信し、処理S402と同様に判定処理行う(処理S410)。サーバアプリ9側からクライアントアプリ9側へのレスポンスデータ受信であれば、クライアントアプリ側へ受信データを送信する(処理S411)。ここで、処理S410は省略し、サーバアプリ9側からのレスポンスデータ18は直接クライアントアプリ9側へ送信されても良い。 Finally, the protocol determination unit 13 receives the response data 18 from the server, and performs the determination process in the same manner as the process S402 (process S410). If response data is received from the server application 9 side to the client application 9 side, the received data is transmitted to the client application side (step S411). Here, the processing S410 is omitted, and the response data 18 from the server application 9 side may be directly transmitted to the client application 9 side.
 図5を用いて、プロトコル判定部13および無害化部14の詳細な処理フローについて説明する。はじめに、プロトコル判定部13は受信したデータが有効なデータ形式であるか否かを判定する(処理S501)。例えば、データパケットのヘッダやフッタ情報などを解析し、処理可能なプロトコル種別か否かを判定する。CRCチェックなどを実行しデータのエラー有無などを判定しても良い。 The detailed processing flow of the protocol determination unit 13 and the detoxification unit 14 will be described with reference to FIG. First, the protocol determination unit 13 determines whether or not the received data has a valid data format (processing S501). For example, the header or footer information of the data packet is analyzed to determine whether or not the protocol type can be processed. A CRC check or the like may be executed to determine the presence or absence of data errors.
 次に、受信データが正常と判定された場合には、データの送信元もしくは送信先のアドレス情報が有効か否かを判定する(処理S502)。例えば、送信元が自身(クライアントアプリ9側)のアドレスであり送信先がサーバアプリ9側のアドレスである場合には、リクエストデータ15であると判定し、データを無害化部14へ送信する。ここで、アドレス情報以外にも、TCPプロトコルやUDPプロトコルなどであればポート番号などの情報をもとに判定する方法もある。また、無害化部へ送信するデータでない場合には、サーバアプリ9側からのレスポンスデータ18であるか否かを判定しても良い(処理S505)。例えば、データの送信元アドレスがサーバアプリ9側のアドレスであり、送信先が自身のアドレスであればレスポンスデータ18であると判定し、クライアントアプリ9側へデータを送信しても良い(処理S506)。 Next, when it is determined that the received data is normal, it is determined whether the address information of the data transmission source or the transmission destination is valid (processing S502). For example, when the transmission source is the address of the client application 9 side and the transmission destination is the address of the server application 9 side, the request data 15 is determined and the data is transmitted to the harmless unit 14. Here, in addition to the address information, there is a method of determining based on information such as a port number in the case of TCP protocol or UDP protocol. Moreover, when it is not the data transmitted to the detoxification part, you may determine whether it is the response data 18 from the server application 9 side (process S505). For example, if the data transmission source address is the address on the server application 9 side and the transmission destination is its own address, it is determined that the data is the response data 18 and the data may be transmitted to the client application 9 side (processing S506). ).
 次に、無害化部14へデータが送信された場合には、無害化対象のデータか否かを判定する(処理S503)。無害化対象のデータであれば無害化処理を実行し、専用路6を介して無害化データ16をサーバアプリ9側へ送信する(処理S504)。処理S501、処理S503および処理S505において、それぞれ否定判定となった場合には、アプリケーション9側への異常・警告通知などのエラー処理を実行したうえで処理を終了しても良い(処理S507)。 Next, when data is transmitted to the detoxification unit 14, it is determined whether or not the data is to be detoxified (processing S503). If the data is to be detoxified, the detoxification process is executed, and the detoxification data 16 is transmitted to the server application 9 side via the dedicated path 6 (process S504). If negative determinations are made in steps S501, S503, and S505, error processing such as abnormality / warning notification to the application 9 may be executed and the processing may be terminated (step S507).
 無害化部14における無害化処理の一例を、図7を用いて説明する。無害化部は、クライアントアプリ9が送信するリクエストデータ15の形式に対応した識別番号などを無害化データ16として付与する。例えば、TCP通信におけるACKパケットに対応する無害化データ16は“0”とする。同様にSYNパケット、SYN/ACKパケットについてはそれぞれ“1”、“2”のように識別番号を割り当てる。この他、データ形式が特定のパターンA(データA)の場合は識別番号“3”、データBまたはデータCの場合は識別番号“4”を割り当てる。また、データ形式が規定外の場合には無効データとして廃棄し、クライアントアプリ9側にエラーとして通知しても良い。ここで、リクエストデータ15と無害化データ16との関連付けについては本例以外の方法でも良く、設定入力部10を設けて外部から関連付けの設定を実施しても良い。 An example of the detoxification process in the detoxification unit 14 will be described with reference to FIG. The detoxification unit assigns an identification number or the like corresponding to the format of the request data 15 transmitted by the client application 9 as the detoxification data 16. For example, the detoxification data 16 corresponding to the ACK packet in TCP communication is set to “0”. Similarly, identification numbers such as “1” and “2” are assigned to SYN packets and SYN / ACK packets, respectively. In addition, an identification number “3” is assigned when the data format is a specific pattern A (data A), and an identification number “4” is assigned when the data format is data B or data C. If the data format is not specified, it may be discarded as invalid data and notified to the client application 9 as an error. Here, the association between the request data 15 and the detoxification data 16 may be a method other than this example, or the setting input unit 10 may be provided to set the association from the outside.
 例えば、リクエストデータ15のヘッダやフッタ情報の全部または一部を残し、前述の識別番号と組合せたデータを無害化データとしても良い。また、公知の圧縮技術や暗号化技術を用いて算出したハッシュ値などを無害化データ16として用いても良い。 For example, all or part of the header or footer information of the request data 15 may be left, and data combined with the above-described identification number may be made harmless data. Further, a hash value calculated using a known compression technique or encryption technique may be used as the harmless data 16.
 疑似データ設定/選択部11の処理フローの一例を図7により説明する。はじめに、専用路6からの無害化データ16受信の有無を判定する(処理S701)。無害化データ16を受信した場合には、予め設定入力部10により設定された無害化データ16であるか否かを判定する(処理S702)。設定されていない無効な無害化データ16であった場合にはアプリケーション9側への異常・警告通知などエラー処理を実行して処理を終了しても良い(処理S707)。設定済みの無害化データ16であった場合には、疑似データリスト12の中から、対応する疑似データ17を選択する(処理S703)。 An example of the processing flow of the pseudo data setting / selection unit 11 will be described with reference to FIG. First, it is determined whether or not the detoxification data 16 has been received from the dedicated path 6 (processing S701). When the detoxification data 16 is received, it is determined whether or not the detoxification data 16 is set in advance by the setting input unit 10 (step S702). If the invalid sanitization data 16 is not set, error processing such as abnormality / warning notification to the application 9 side may be executed and the processing may be terminated (processing S707). If the detoxified data 16 has been set, the corresponding pseudo data 17 is selected from the pseudo data list 12 (step S703).
 次に、選択した疑似データ17の内容を変更する必要があるか否かを判定する(処理S704)。データの変更が不要な場合には疑似データ17をそのままサーバアプリ9側に送信する(処理S706)。データの変更が必要な場合には、疑似データ設定/選択部11においてデータの一部を変更した後にサーバアプリ9側に送信する(処理S7056、および、処理S706)。処理処理S703における疑似データ17の選択方法として、例えば、図6に示すリクエストデータ15から無害化データ16への変換処理と逆の処理を実行する方法などがある。例えば、無害化データ16として識別番号“0”を受信した場合には、疑似データ17としてACKパケットを選択すれば良い。同様に、無害化データ16として識別番号“1”、“2”、“3”を受信した場合には、疑似データ17として、それぞれSYNパケット、SYN/ACKパケット、データAを選択する。また、識別番号“4”を受信した場合には、疑似データ17としてデータBおよびデータCの両方を選択する。 Next, it is determined whether or not the content of the selected pseudo data 17 needs to be changed (processing S704). If it is not necessary to change the data, the pseudo data 17 is transmitted as it is to the server application 9 side (step S706). If the data needs to be changed, a part of the data is changed in the pseudo data setting / selection unit 11 and then transmitted to the server application 9 (processing S7056 and processing S706). As a selection method of the pseudo data 17 in the processing process S703, for example, there is a method of executing a process reverse to the conversion process from the request data 15 to the detoxification data 16 shown in FIG. For example, when the identification number “0” is received as the detoxification data 16, an ACK packet may be selected as the pseudo data 17. Similarly, when the identification numbers “1”, “2”, and “3” are received as the detoxification data 16, the SYN packet, the SYN / ACK packet, and the data A are selected as the pseudo data 17, respectively. When the identification number “4” is received, both data B and data C are selected as the pseudo data 17.
 処理S705における疑似データの変更とは、例えば、データのヘッダやフッタ情報を予め設定してある値から変更することである。例えば、無害化データ16にヘッダ情報を含んでいる場合には、差分を疑似データ17側のヘッダ情報に反映させるなどの方法がある。また、無害化データ16が単純な識別番号のみで構成される場合には、シーケンス番号などの可変情報については、サーバアプリ9側とクライアントアプリ9側とで個別管理しておき、互いに整合が取れる値を設定する等の方法がある。詳細な例については第2実施形態において説明する。 The change of the pseudo data in the process S705 is, for example, changing the data header or footer information from a preset value. For example, when the harmless data 16 includes header information, there is a method of reflecting the difference in the header information on the pseudo data 17 side. Further, when the detoxification data 16 is composed of only a simple identification number, variable information such as a sequence number is individually managed on the server application 9 side and the client application 9 side so that they can be consistent with each other. There are methods such as setting values. A detailed example will be described in the second embodiment.
 また、処理S702、処理S703、処理S704、処理S705における処理方法や、疑似データリスト12の内容については設定入力部10により設定または変更しても良い。 Further, the processing method in processing S702, processing S703, processing S704, and processing S705 and the contents of the pseudo data list 12 may be set or changed by the setting input unit 10.
 以上のように、本実施形態によれば、クライアントアプリ9側からのデータリクエストを直接サーバアプリ9側に送信せず、無害化することにより、クライアントアプリ9側から有害なデータがサーバアプリ9側に送信される事を防止できる。一方、アプリ側では疑似データ17を使用することにより、実際のデータ通信を片方向に制限しながら、双方向通信に対応した通信プロトコルを使用可能である。
(第2実施形態)
 第2実施形態におけるデータ処理装置21について、図8を用いて説明する。第1実施形態と同様に、演算部2と記憶部3と仮想ネットIF22と片方向通信路5と専用路6とOS7とプロトコルスタック8とアプリケーション9と設定入力部10とから構成される。なお、演算部2、記憶部3、片方向通信路5、専用路6、OS7、プロトコルスタック8、アプリケーション9、設定入力部10の機能については第1実施形態と同様であるため説明または図示を省略する。
As described above, according to the present embodiment, the data request from the client application 9 side is not transmitted directly to the server application 9 side, but is harmless, so that harmful data is transferred from the client application 9 side to the server application 9 side. Can be prevented from being sent to. On the other hand, by using the pseudo data 17 on the application side, it is possible to use a communication protocol corresponding to bidirectional communication while restricting actual data communication in one direction.
(Second Embodiment)
A data processing device 21 in the second embodiment will be described with reference to FIG. As in the first embodiment, the calculation unit 2, the storage unit 3, the virtual net IF 22, the one-way communication path 5, the dedicated path 6, the OS 7, the protocol stack 8, the application 9, and the setting input unit 10 are configured. Note that the functions of the calculation unit 2, the storage unit 3, the one-way communication path 5, the dedicated path 6, the OS 7, the protocol stack 8, the application 9, and the setting input unit 10 are the same as those in the first embodiment, and therefore will not be described or illustrated. Omitted.
 仮想ネットIF22は疑似データ設定/選択部23と疑似データリスト24とプロトコル判定部25と無害化部26とシーケンス管理部27とフロー制御部28とから構成される。仮想ネットIF22は、第1実施形態と同様の機能に加えて、サーバアプリ9とクライアントアプリ9間のデータ送受信におけるシーケンス管理とフロー制御を行う機能を有する。シーケンス管理部27は、アプリケーション9間で送受信されるデータのシーケンス情報を管理する機能を有する。フロー制御部28はアプリケーション9間で送受信されるデータのフロー制御を行う機能を有する。 The virtual network IF 22 includes a pseudo data setting / selection unit 23, a pseudo data list 24, a protocol determination unit 25, a detoxification unit 26, a sequence management unit 27, and a flow control unit 28. The virtual network IF 22 has functions of performing sequence management and flow control in data transmission / reception between the server application 9 and the client application 9 in addition to the same functions as in the first embodiment. The sequence management unit 27 has a function of managing sequence information of data transmitted and received between the applications 9. The flow control unit 28 has a function of performing flow control of data transmitted and received between the applications 9.
 図8にクライアントアプリ9側のシーケンス管理部27の処理フローを示す。はじめに、プロトコル判定部25が受信したデータのシーケンス管理が必要か否かを判定する(処理S901)。例えば、プロトコル判定部25においてデータのヘッダ情報などからプロトコル種類を識別し、TCPプロトコルのようにシーケンス管理が必要なプロトコルであるか否かを判定する。シーケンス管理が不要であれば処理を終了し、必要な場合には受信したデータのシーケンス情報が有効であるか否かを判定する(処理S902)。例えば、過去に記録済みのシーケンス番号と整合が取れているか否かを判定し、不整合が発生していればエラー処理などを実行する(処理S906)。 FIG. 8 shows a processing flow of the sequence management unit 27 on the client application 9 side. First, it is determined whether or not sequence management of data received by the protocol determination unit 25 is necessary (processing S901). For example, the protocol determination unit 25 identifies the protocol type from data header information and the like, and determines whether the protocol requires sequence management, such as the TCP protocol. If the sequence management is unnecessary, the process is terminated. If necessary, it is determined whether the sequence information of the received data is valid (process S902). For example, it is determined whether or not a sequence number that has been recorded in the past is consistent, and if a mismatch has occurred, an error process or the like is executed (processing S906).
 次に、シーケンス情報が有効である場合には、データの送信方向が、クライアントアプリ9側からサーバアプリ9側か、サーバアプリ9側からクライアントアプリ9側であるかを判定する(処理S903)。クライアントアプリ9側からサーバアプリ9側へのデータ送信である場合、すなわち、無害化部26において無害化処理を実行する必要がある場合には、データのシーケンス情報を保存する(処理S904)。逆に、サーバアプリ9側からクライアントアプリ9側へのデータ送信である場合には、保存してあるシーケンス情報を元にしてクライアントアプリ9側へ送信するデータのシーケンス情報を復帰する。 Next, when the sequence information is valid, it is determined whether the data transmission direction is from the client application 9 to the server application 9 or from the server application 9 to the client application 9 (step S903). In the case of data transmission from the client application 9 side to the server application 9 side, that is, when it is necessary to execute the detoxification process in the detoxification unit 26, the sequence information of the data is stored (process S904). Conversely, in the case of data transmission from the server application 9 side to the client application 9 side, the sequence information of the data to be transmitted to the client application 9 side is restored based on the stored sequence information.
 図10にサーバアプリ9側のシーケンス管理部27の処理フローを示す。はじめに、疑似データ設定/選択部23が選択したデータのシーケンス管理が必要か否かを判定する(処理S1001)。例えば、前述の処理S901と同様に、データのヘッダ情報などからプロトコル種類を識別する方法がある。シーケンス管理が必要と判定された場合には、対象のデータがサーバアプリ9とクライアントアプリ9間で新規に作成されたコネクションであるか否かを判定する(処理S1002)。例えば、特定のサーバ・クライアント間の通信で発生する一連のデータ送受信において初回のデータ送受信か否かを判定することであり、初回の通信か否かをフラグ情報として保持しておく方法などがある。新規のコネクションである場合には、疑似データ17に付与するための疑似シーケンス情報を発行し、前述のフラグ情報とともに保存する(処理S1003)。新規のコネクションでない場合には、保存済みの疑似シーケンス情報を更新して、疑似データ17のシーケンス情報に反映する(処理S1004)。 FIG. 10 shows a processing flow of the sequence management unit 27 on the server application 9 side. First, it is determined whether or not the sequence management of the data selected by the pseudo data setting / selection unit 23 is necessary (processing S1001). For example, there is a method of identifying the protocol type from the header information of the data as in the above-described processing S901. If it is determined that sequence management is necessary, it is determined whether the target data is a connection newly created between the server application 9 and the client application 9 (step S1002). For example, there is a method of determining whether or not it is the first data transmission / reception in a series of data transmission / reception generated by communication between a specific server and client, and holding the flag information as to whether or not the communication is the first communication. . In the case of a new connection, pseudo sequence information to be given to the pseudo data 17 is issued and stored together with the above flag information (processing S1003). If it is not a new connection, the stored pseudo sequence information is updated and reflected in the sequence information of the pseudo data 17 (step S1004).
 ここで、図9および図10において、サーバアプリ9側とクライアントアプリ9側のシーケンス管理部27は、それぞれ別の処理フローで動作するものとして説明したが、サーバアプリ9およびクライアントアプリの両方の機能を有する場合には、シーケンス管理部についても両方の処理フローを実行可能とする。 Here, in FIG. 9 and FIG. 10, the sequence management unit 27 on the server application 9 side and the client application 9 side has been described as operating in different processing flows, but the functions of both the server application 9 and the client application In the case of having both, the processing flow can be executed also for the sequence management unit.
 本実施形態におけるデータ処理装置の処理シーケンスの一例を図11用いて説明する。本シーケンスはTCP通信において、コネクションを確立する際の3ウェイハンドシェイクと同様の処理を実行した場合の例である。はじめに、クライアントアプリ9側はサーバアプリ9側とTCPコネクションを確立するためのSYNパケットを送付する(処理S1101)。ここで、クライアントアプリ側の処理により、SYNパケットにはシーケンス(SEQ)番号としてX番が付与されているものとする。次に、プロトコル判定部25はリクエストデータ15としてSYNパケットを受信し、シーケンス管理部27はSYNパケットのシーケンス番号Xを保存する(処理S1102)。 An example of a processing sequence of the data processing apparatus in the present embodiment will be described with reference to FIG. This sequence is an example in the case of performing the same processing as the three-way handshake when establishing a connection in TCP communication. First, the client application 9 sends a SYN packet for establishing a TCP connection with the server application 9 (step S1101). Here, it is assumed that the X number is assigned to the SYN packet as a sequence (SEQ) number by processing on the client application side. Next, the protocol determination unit 25 receives the SYN packet as the request data 15, and the sequence management unit 27 stores the sequence number X of the SYN packet (processing S1102).
 次に、無害化部26は第1実施形態と同様の処理フローに従って、SYNパケットを無害化する(処理S1103)。ここでは、識別番号“1”を無害化データ16として専用路6を介し、サーバアプリ9側の疑似データ設定/選択部23に送信するものとする(処理S1104)。疑似データ設定/選択部23は、第1実施形態と同様の処理フローに従って、無害化データ16に対応した疑似データ17として、SYNパケットを疑似データリスト24から選択する(処理S1105)。ここで、通常のサーバ・クライアント通信であれば、クライアントアプリ9側が付与したシーケンス番号Xが付与されたデータをサーバアプリ9側に送信する必要があるが、無害化によってシーケンス番号が伝達されていない。そこで、サーバアプリ9側のシーケンス管理部27において疑似シーケンス番号Yを生成し、疑似データに新たなシーケンス番号として付与する(処理S1106)。 Next, the detoxifying unit 26 detoxifies the SYN packet according to the same processing flow as in the first embodiment (processing S1103). Here, it is assumed that the identification number “1” is transmitted as the harmless data 16 to the pseudo data setting / selecting unit 23 on the server application 9 side via the dedicated path 6 (processing S1104). The pseudo data setting / selection unit 23 selects a SYN packet from the pseudo data list 24 as the pseudo data 17 corresponding to the detoxified data 16 according to the same processing flow as in the first embodiment (processing S1105). Here, in the case of normal server / client communication, it is necessary to transmit the data to which the sequence number X given by the client application 9 is given to the server application 9 side, but the sequence number is not transmitted by detoxification. . Accordingly, the sequence management unit 27 on the server application 9 side generates a pseudo sequence number Y and assigns it to the pseudo data as a new sequence number (processing S1106).
 したがって、サーバアプリ9側へはシーケンス番号YのSYNパケットが送付される(処理S1107)。サーバアプリ9はSYNパケットの受信に対応するサーバ処理を実行する(処理S1108)。ここでは、シーケンス番号として新たにZを付与し、ACK番号にはY+1を設定したSYN/ACKパケットをクライアントアプリ9側に送付する(処理S1109)。 Therefore, the SYN packet with the sequence number Y is sent to the server application 9 side (processing S1107). The server application 9 executes a server process corresponding to the reception of the SYN packet (process S1108). Here, a SYN / ACK packet in which Z is newly added as the sequence number and Y + 1 is set in the ACK number is sent to the client application 9 side (processing S1109).
 クライアントアプリ9側のプロトコル判定部25では、サーバアプリ9側から送付されたSYN/ACKパケットを受信した場合に、シーケンス管理部27は処理S1102において保存したシーケンス番号を元に、クライアントアプリ側へ送信するデータのシーケンス情報を復帰させる(処理S9)。すなわち、SYN/ACKパケットのACK番号をX+1に変更する。したがって、シーケンス番号Z、ACK番号X+1のSYN/ACKパケットがクライアントアプリ9側へ送付される(処理S1111)。 When the protocol determination unit 25 on the client application 9 side receives the SYN / ACK packet sent from the server application 9 side, the sequence management unit 27 transmits it to the client application side based on the sequence number stored in step S1102 The sequence information of the data to be restored is restored (processing S9). That is, the ACK number of the SYN / ACK packet is changed to X + 1. Therefore, the SYN / ACK packet having the sequence number Z and the ACK number X + 1 is sent to the client application 9 side (processing S1111).
 次に、クライアントアプリ9側では、処理S1101において送信したSYNパケットに対応するSYN/ACKパケットを正常に受信できたと判定できるため、ACKパケットを送信する(処理S1112)。すなわち、シーケンス番号としてX+1、ACK番号としてZ+1が設定されたACKパケットを送信する(処理S1113)。処理S1102と同様に、プロトコル判定部25は、リクエストデータ15としてACKパケットを受信し、シーケンス管理部27はACKパケットのシーケンス番号X+1を保存する(処理S1114)。次に、処理1103と同様にACKパケットを無害化し(処理S1115)、識別番号“0”を無害化データ16として専用路6を介してサーバアプリ9側へ送信する(処理S1116)。 Next, since the client application 9 can determine that the SYN / ACK packet corresponding to the SYN packet transmitted in the process S1101 has been normally received, the client application 9 transmits an ACK packet (process S1112). That is, an ACK packet in which X + 1 is set as the sequence number and Z + 1 is set as the ACK number is transmitted (processing S1113). Similar to the processing S1102, the protocol determination unit 25 receives the ACK packet as the request data 15, and the sequence management unit 27 stores the sequence number X + 1 of the ACK packet (processing S1114). Next, the ACK packet is rendered harmless in the same manner as in the processing 1103 (processing S1115), and the identification number “0” is transmitted as the harmless data 16 to the server application 9 side via the dedicated path 6 (processing S1116).
 疑似データ設定/選択部23では、処理1105と同様に無害化データ16に対応した疑似データ17としてACKパケットを疑似データリスト24から選択する(処理S1117)。ここで、通常のサーバ・クライアント通信であれば、クライアントアプリ9側が付与したシーケンス番号X+1およびACK番号Z+1をサーバアプリ9側に送付する必要があるが、無害化によってシーケンス情報が伝達されていない。そこで、処理S1106において生成した疑似シーケンスをもとに、シーケンス管理部27は疑似シーケンス番号としてY+1を付与する(処理S1118)。同時に、処理S1108および処理S1109において、サーバアプリ9側が付与したシーケンス番号Zをもとに、ACK番号としてZ+1を付与する。 The pseudo data setting / selection unit 23 selects an ACK packet from the pseudo data list 24 as the pseudo data 17 corresponding to the detoxified data 16 as in the process 1105 (process S1117). Here, in normal server / client communication, it is necessary to send the sequence number X + 1 and the ACK number Z + 1 assigned by the client application 9 to the server application 9, but the sequence information is transmitted by detoxification. It has not been. Therefore, based on the pseudo sequence generated in process S1106, the sequence management unit 27 assigns Y + 1 as the pseudo sequence number (process S1118). At the same time, in process S1108 and process S1109, Z + 1 is assigned as the ACK number based on the sequence number Z assigned by the server application 9 side.
 したがって、サーバアプリ9側へはシーケンス番号Y+1およびACK番号Z+1が設定されたACKパケットが送付される(処理S1119)。最後に、サーバアプリ9側はSYNパケットの受信に対応するサーバ処理を実行する(処理S1120)。すなわち、サーバアプリ9側はクライアントアプリ9側へ送信したSYN/ACKパケットの返信として正常なACKパケットが受信できたと判定できるので、TCPプロトコルにおける3ウェイハンドシェイクが成立しサーバ・クライアント間のコネクションが確立されたことになる。 Therefore, an ACK packet in which the sequence number Y + 1 and the ACK number Z + 1 are set is sent to the server application 9 side (processing S1119). Finally, the server application 9 side executes server processing corresponding to reception of the SYN packet (processing S1120). That is, since the server application 9 side can determine that a normal ACK packet has been received as a reply to the SYN / ACK packet transmitted to the client application 9 side, a 3-way handshake in the TCP protocol is established, and the connection between the server and the client is established. It will be established.
 図12を用いて確立したTCPコネクションを用いて、データパケットを送受信するためのシーケンスを説明する。サーバアプリ9側からデータパケットをクライアントアプリ9側に送信する場合の例を示す。はじめに、サーバアプリ9はシーケンス番号としてZ+α、ACK番号としてY+βを設定したデータパケットをクライアントアプリ9側に送信する(処理S1201)。次に、クライアントアプリ9側のプロトコル判定部25が、サーバアプリ9側から送付されたデータパケットを受信した場合に、シーケンス管理部27は前述の処理S1114において保存したシーケンス番号をもとに、データパケットのACK番号をX+βに変更する(処理S1202)。したがって、シーケンス番号Z+α、ACK番号X+βのデータパケットがクライアントアプリ9側へ送付される(処理S1203)。クライアントアプリ9側では、受信したデータパケットに対応するACKパケットを発行する(処理S1204)。すなわち、シーケンス番号X+β、ACK番号Z+α´に設定したACKパケットを送信する(処理S1205)。プロトコル判定部25はクライアントアプリ9側からの送信データとしてACKパケットを受信し、シーケンス管理部27はACKパケットのシーケンス番号X+βを保存する(処理S1206)。無害化部26は前述の処理と同様にして、ACKパケットを無害化した後(処理S1207)、識別番号“0”を無害化データ16として専用路6を介してサーバアプリ9側へ送信する(処理S1208)。 A sequence for transmitting and receiving data packets using the TCP connection established using FIG. 12 will be described. An example in which a data packet is transmitted from the server application 9 side to the client application 9 side is shown. First, the server application 9 transmits a data packet in which Z + α is set as a sequence number and Y + β is set as an ACK number to the client application 9 side (processing S1201). Next, when the protocol determination unit 25 on the client application 9 side receives the data packet sent from the server application 9 side, the sequence management unit 27 uses the sequence number stored in the above-described processing S1114 to The ACK number of the packet is changed to X + β (processing S1202). Therefore, the data packet with the sequence number Z + α and the ACK number X + β is sent to the client application 9 side (processing S1203). On the client application 9 side, an ACK packet corresponding to the received data packet is issued (processing S1204). That is, an ACK packet set to sequence number X + β and ACK number Z + α ′ is transmitted (processing S1205). The protocol determination unit 25 receives the ACK packet as transmission data from the client application 9 side, and the sequence management unit 27 stores the sequence number X + β of the ACK packet (processing S1206). The detoxification section 26 detoxifies the ACK packet in the same manner as described above (process S1207), and then transmits the identification number “0” as the detoxification data 16 to the server application 9 side via the dedicated path 6 ( Process S1208).
 サーバアプリ9側の疑似データ設定/選択部23は、無害化データ16に対応した疑似データ17としてACKパケットを疑似データリスト24から選択する(処理S1209)。ここで、通常のサーバ・クライアント通信であれば、クライアントアプリ9側が付与したシーケンス番号X+βおよびACK番号Z+α´をサーバアプリ9側へのデータに設定する必要があるが、無害化によってシーケンス番号が伝達されていない。そこで、前述の処理S1118と同様にして、サーバアプリ9側のシーケンス管理部27は、疑似シーケンス番号Y+βおよびACK番号Z+α´を付与する(処理S1210)。したがって、サーバアプリ9側へはシーケンス番号Y+β、ACK番号Z+α´が設定されたACKパケットが送付される(処理S1211)。サーバアプリ9側はACKパケットの受信に対応するサーバ処理を実行する(処理S1212)。例えば、次のデータパケットとしてシーケンス番号Z+α´、ACK番号Y+β´を設定してクライアントアプリ9側に送付する(処理S1213)。以降、同様にしてクライアントアプリ9側のシーケンス管理部は保存したシーケンス情報から、クライアントアプリ9側へ送信するデータのシーケンス情報を復帰する(処理S1214)。最後に、シーケンス番号Z+α´、ACK番号X+β´に設定されたデータパケットがクライアントアプリ9側へ送付される(処理S1215)。 The pseudo data setting / selection unit 23 on the server application 9 side selects an ACK packet from the pseudo data list 24 as the pseudo data 17 corresponding to the harmless data 16 (processing S1209). Here, in the case of normal server / client communication, it is necessary to set the sequence number X + β and the ACK number Z + α ′ assigned by the client application 9 side to the data to the server application 9 side. The sequence number is not communicated. Therefore, similarly to the above-described processing S1118, the sequence management unit 27 on the server application 9 side assigns the pseudo sequence number Y + β and the ACK number Z + α ′ (processing S1210). Therefore, an ACK packet in which sequence number Y + β and ACK number Z + α ′ are set is sent to the server application 9 (step S1211). The server application 9 side executes server processing corresponding to reception of the ACK packet (processing S1212). For example, the sequence number Z + α ′ and the ACK number Y + β ′ are set as the next data packet and sent to the client application 9 side (step S1213). Thereafter, similarly, the sequence management unit on the client application 9 side returns the sequence information of the data to be transmitted to the client application 9 side from the stored sequence information (processing S1214). Finally, the data packet set with the sequence number Z + α ′ and the ACK number X + β ′ is sent to the client application 9 side (processing S1215).
 ここで、サーバアプリ9側の処理S1212において、例えば所定時間内にクライアント側からのACKパケットを受信できなかった場合、すなわちタイムアウト発生時にはデータパケットの再送処理を実行するなどの方法もある。また、シーケンス番号やACK番号に不整合を検出した場合には、再送処理やエラー処理を実行しても良い。 Here, in the process S1212 on the server application 9 side, for example, there is a method of executing a data packet retransmission process when an ACK packet from the client side cannot be received within a predetermined time, that is, when a timeout occurs. Further, when inconsistency is detected in the sequence number or ACK number, retransmission processing or error processing may be executed.
 図13を用いてフロー制御部28を用いた処理シーケンスの一例を説明する。ここでは、サーバアプリ9側からUDPなどの複数のデータパケットを連続送信する場合の処理例を示す。はじめに、サーバアプリ9側からのデータ送信が発生した場合に(処理S1301)、フロー制御部28は受信したデータを内部バッファ等に一時的に格納しておき、片方向通信路5を介して、順番にクライアントアプリ9側に送信する(処理S1302)。ここで、バッファ等へのデータ格納は、サーバアプリ9側のフロー制御部28側で実行しても良いし、クライアントアプリ9側のフロー制御部28で実行しても良い。 An example of a processing sequence using the flow control unit 28 will be described with reference to FIG. Here, a processing example in the case where a plurality of data packets such as UDP are continuously transmitted from the server application 9 side is shown. First, when data transmission from the server application 9 occurs (processing S1301), the flow control unit 28 temporarily stores the received data in an internal buffer or the like, via the one-way communication path 5, The data are sequentially transmitted to the client application 9 side (processing S1302). Here, the data storage in the buffer or the like may be executed on the flow control unit 28 side on the server application 9 side or may be executed on the flow control unit 28 side on the client application 9 side.
 次に、クライアントアプリ9側のフロー制御部28はプロトコル判定部25において受信したデータパケットを順次クライアントアプリ9側に送信する(処理S1303)。同時に、フロー制御部28はサーバアプリ9側に正常にデータパケットを受信した事を通知するため疑似的にACKパケットを生成し、無害化部26に送信する(処理S1304)。無害化部26はACKパケットを無害化し、例えば識別番号“0”を無害化データ16として、専用路6を介してサーバアプリ9側に送信する(処理S1305)。ここで、フロー制御部28は疑似的にACKパケットを生成して無害化部26に送信する代わりに、直接、無害化部26に対して所定の認識番号“0”を送信するように指示しても良い。 Next, the flow control unit 28 on the client application 9 side sequentially transmits the data packets received by the protocol determination unit 25 to the client application 9 side (processing S1303). At the same time, the flow control unit 28 generates a pseudo ACK packet to notify the server application 9 that the data packet has been normally received, and transmits the ACK packet to the harmless unit 26 (processing S1304). The detoxification unit 26 detoxifies the ACK packet and transmits, for example, the identification number “0” as the detoxification data 16 to the server application 9 side via the dedicated path 6 (processing S1305). Here, the flow control unit 28 directly instructs the detoxification unit 26 to transmit a predetermined identification number “0”, instead of generating a pseudo ACK packet and transmitting it to the detoxification unit 26. May be.
 サーバアプリ9側の疑似データ設定/選択部23において、無害化データ16としてACKに相当する識別番号“0”を受信した場合には、フロー制御部28は一つ目のデータパケットが正常に送信できたと判定し(処理S1306)、クライアントアプリ9側へおデータパケットを継続する(処理S1307)。ここで、例えば所定時間内にクライアント側からのACKに相当する識別番号“0”の無害化データ16を受信できなかった場合、すなわちタイムアウト発生時にはデータパケットの再送処理を実行しても良い。または、データパケットの送信を中断してサーバアプリ側に通知しても良い。 When the pseudo data setting / selection unit 23 on the server application 9 side receives the identification number “0” corresponding to ACK as the harmless data 16, the flow control unit 28 normally transmits the first data packet. It determines with having been completed (process S1306), and a data packet is continued to the client application 9 side (process S1307). Here, for example, when the harmless data 16 with the identification number “0” corresponding to the ACK from the client side cannot be received within a predetermined time, that is, when a timeout occurs, the data packet retransmission process may be executed. Alternatively, transmission of the data packet may be interrupted and notified to the server application side.
 なお、第2実施形態におけるデータ処理装置21において、前述のシーケンス管理部27およびフロー制御部28の各処理は、別個に実施しても良いし、並行して実施しても良い。 In the data processing device 21 in the second embodiment, the processes of the sequence management unit 27 and the flow control unit 28 described above may be performed separately or in parallel.
 以上のように、本実施形態によれば、クライアントアプリ9側からのデータリクエストを直接サーバアプリ9側に送信せず、無害化することにより、クライアントアプリ9側から有害なデータがサーバアプリ9側に送信される事を防止できる。さらに、アプリケーション間のデータ通信において、双方向通信でないと困難なシーケンス管理やフロー制御を、実際のデータ通信を片方向に制限しながら実行可能である。 As described above, according to the present embodiment, the data request from the client application 9 side is not transmitted directly to the server application 9 side, but is harmless, so that harmful data is transferred from the client application 9 side to the server application 9 side. Can be prevented from being sent to. Furthermore, in data communication between applications, it is possible to execute sequence management and flow control, which are difficult without bidirectional communication, while restricting actual data communication in one direction.
 (第3実施形態)
 第3実施形態におけるデータ処理装置について、図14を用いて説明する。第1実施形態もしくは第2実施形態と同様に、演算部2と記憶部3と仮想ネットIF32と片方向通信路5と専用路6とOS7とプロトコルスタック8とアプリケーション9と設定入力部10とから構成される。なお、演算部2、記憶部3、片方向通信路5、専用路6、OS7、プロトコルスタック8、アプリケーション9、設定入力部10の機能については第1実施形態もしくは第2実施形態と同様であるため説明または図示を省略する。
(Third embodiment)
A data processing apparatus according to the third embodiment will be described with reference to FIG. As in the first embodiment or the second embodiment, the calculation unit 2, the storage unit 3, the virtual network IF 32, the one-way communication path 5, the dedicated path 6, the OS 7, the protocol stack 8, the application 9, and the setting input unit 10 Composed. The functions of the calculation unit 2, the storage unit 3, the one-way communication path 5, the dedicated path 6, the OS 7, the protocol stack 8, the application 9, and the setting input unit 10 are the same as those in the first embodiment or the second embodiment. Therefore, explanation or illustration is omitted.
 仮想ネットIF32は疑似データ設定/選択部33と疑似データリスト34とプロトコル判定部35と無害化部36と優先制御部37とから構成される。仮想ネットIF32は、第1実施形態と同様の機能に加えて、サーバアプリ9とクライアントアプリ9間で送受信されるデータの優先制御を行う機能を有する。優先制御部37は、アプリケーション9間で送受信されるデータの優先制御を行う機能を有する。 The virtual network IF 32 includes a pseudo data setting / selection unit 33, a pseudo data list 34, a protocol determination unit 35, a detoxification unit 36, and a priority control unit 37. The virtual network IF 32 has a function of performing priority control of data transmitted and received between the server application 9 and the client application 9 in addition to the same functions as in the first embodiment. The priority control unit 37 has a function of performing priority control of data transmitted and received between the applications 9.
 本実施形態におけるデータ処理シーケンスの例を図15用いて説明する。はじめに、クライアントアプリ9側からデータが送信された場合に(処理S1501)、優先制御部37はデータの優先度を設定する(処理S1502)。優先度の設定はアプリケーション9側で指定しても良いし、プロトコル判定部35がデータのプロトコル種別などを識別し、予め決められた優先度を自動的に付与しても良い。次に、無害化部36は優先度設定に応じた方法で無害化データ16をサーバアプリ9側に送信する(処理S1503)。ここでは、優先度の低い無害化データ16が送信されたものとする。優先度の設定方法として、例えば、優先度別に複数の専用路6を用意し、優先度に応じた専用路6に送信するなどの方法がある。また、無害化データ16に優先度情報を付与して送信するという方法でも良い。 An example of a data processing sequence in this embodiment will be described with reference to FIG. First, when data is transmitted from the client application 9 (process S1501), the priority control unit 37 sets the priority of the data (process S1502). The priority setting may be specified on the application 9 side, or the protocol determination unit 35 may identify the protocol type of the data and automatically assign a predetermined priority. Next, the detoxification unit 36 transmits the detoxification data 16 to the server application 9 side by a method according to the priority setting (processing S1503). Here, it is assumed that the detoxification data 16 having a low priority is transmitted. As a method for setting the priority, for example, there is a method in which a plurality of dedicated paths 6 are prepared for each priority and transmitted to the dedicated path 6 according to the priority. Further, a method of giving priority information to the detoxification data 16 and transmitting it may be used.
 サーバアプリ9側の疑似データ設定/選択部33は、無害化データ16を受信した場合に、無害化データに対応した疑似データ17を選択する(処理S1504)。ここで、優先制御部37は、受信した無害化データの優先度に応じて、優先処理を実行する(処理S1505)。すなわち、優先度の高いものから順番にサーバアプリ側へ送信する。例えば、より優先度の高い無害化データ16を受信した場合(処理S1506)には、先に優先度の高い疑似データ17をサーバアプリ9側へ送付する(処理S1507)。サーバアプリ9側は取得した疑似データ17に応じてサーバ処理を実行し(処理S1508)、クライアントアプリ9側へデータを送信する(処理S1509)。クライアントアプリ9側のプロトコル判定部35は、サーバアプリ9側からデータを受信した際に、同様に優先度制御を実行し優先度の高いデータから順番にクライアントアプリ9側に送信する(処理S1510)。ここで、仮に処理S1505における優先制御において、優先度の低いデータの送信処理(処理S1511およびS1512)が、優先度の高いデータの送信処理(処理S1507およびS1509)より先に処理されてしまった場合には、処理1510における優先制御処理において、優先度の高いデータを先にクライアントアプリ9側へ送信しても良い。 The pseudo data setting / selection unit 33 on the server application 9 side selects the pseudo data 17 corresponding to the detoxified data when the detoxified data 16 is received (processing S1504). Here, the priority control unit 37 executes the priority process according to the priority of the received harmless data (process S1505). That is, it transmits to a server application side in an order with a high priority. For example, when the harmless data 16 with higher priority is received (process S1506), the pseudo data 17 with higher priority is sent to the server application 9 side first (process S1507). The server application 9 side executes server processing according to the acquired pseudo data 17 (step S1508), and transmits data to the client application 9 side (step S1509). When receiving data from the server application 9 side, the protocol determination unit 35 on the client application 9 side similarly performs priority control, and transmits the data from the higher priority data to the client application 9 side in order (processing S1510). . Here, in the priority control in step S1505, when the low-priority data transmission processing (processing S1511 and S1512) is processed before the high-priority data transmission processing (processing S1507 and S1509). In the priority control process in the process 1510, data with high priority may be transmitted to the client application 9 side first.
 なお、本実施形態における優先制御部37のデータ処理は第2実施形態におけるシーケンス管理部27のデータ処理およびフロー制御部28のデータ処理と並行して実施しても良い。 Note that the data processing of the priority control unit 37 in the present embodiment may be performed in parallel with the data processing of the sequence management unit 27 and the data processing of the flow control unit 28 in the second embodiment.
 以上のように、本実施形態によれば、クライアントアプリ9側からのデータリクエストを直接サーバアプリ9側に送信せず、無害化することにより、クライアントアプリ9側から有害なデータがサーバアプリ9側に送信される事を防止できる。さらに、データの優先制御を行うことによって、リアルタイム性の高いデータ通信処理をセキュアに実行可能である。 As described above, according to the present embodiment, the data request from the client application 9 side is not transmitted directly to the server application 9 side, but is harmless, so that harmful data is transferred from the client application 9 side to the server application 9 side. Can be prevented from being sent to. Further, by performing data priority control, highly real-time data communication processing can be executed securely.
 以上の実施例1~3で説明したように、複数のアプリケーションもしくはOS間でデータを共有する際に、データの通信方向を片方向に制限することにより、一部のデータ処理に問題が発生しても、他のデータ処理へ影響することを防止できる。 As described in the first to third embodiments, when data is shared among a plurality of applications or OSs, a problem occurs in some data processing by limiting the data communication direction to one direction. However, it is possible to prevent other data processing from being affected.
 また、アプリケーション側ではTCP/IPなどの汎用の双方向通信方式をセキュアに使用することが可能となる。さらに、デフォルトでセキュリティ機能が実装されていない汎用のプロセッサや旧型のプロセッサを利用しても、強固なセキュリティ機能を実現することが可能である。 Also, on the application side, a general-purpose bidirectional communication method such as TCP / IP can be used securely. Furthermore, even if a general-purpose processor or an old processor that does not have a security function mounted by default is used, a strong security function can be realized.
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
In addition, this invention is not limited to an above-described Example, Various modifications are included. For example, the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment. Each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor. Information such as programs, tables, and files for realizing each function can be stored in a recording device such as a memory, a hard disk, or an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
 1、21、31 データ処理装置
 2 演算部2
 3 記憶部3
 4、22、32 仮想ネットワークインタフェース
 5 片方向通信路
 6 専用路 
 7 OS
 8 プロトコルスタック
 9 アプリケーション
 10 設定入力部
 11、23、33 疑似データ設定/選択部
 12、24、34 疑似データリスト
 13、24、35 プロトコル判定部
 14、26、36 無害化部
 15 リクエストデータ
 16 無害化データ
 17 疑似データ
 18 レスポンスデータ
 27 シーケンス管理部
 28 フロー制御部
 37 優先制御部
1, 21, 31 Data processor 2 Arithmetic unit 2
3 Storage unit 3
4, 22, 32 Virtual network interface 5 One-way communication path 6 Dedicated path
7 OS
8 Protocol stack 9 Application 10 Setting input unit 11, 23, 33 Pseudo data setting / selection unit 12, 24, 34 Pseudo data list 13, 24, 35 Protocol judgment unit 14, 26, 36 Detoxification unit 15 Request data 16 Detoxification Data 17 Pseudo data 18 Response data 27 Sequence management unit 28 Flow control unit 37 Priority control unit

Claims (11)

  1.  サーバ側のOSが実行されるサーバシステムと、
     クライアント側のOSが実行されるクライアントシステムと、
     前記クライアントシステムから前記サーバシステムへの通信に用いられる第1の通信路と、を備え、
     前記クライアントシステムは、前記クライアント側のOS上で実行されるアプリケーションによって前記サーバシステムへの要求であるリクエストデータが発行されると、当該リクエストデータの内容に対応した通信専用データを生成し、生成した前記通信専用データを前記第1の通信路を介して前記サーバシステムへ送信し、
     前記サーバシステムは、前記クライアントシステムから前記通信専用データを受信すると、当該通信専用データに対応する疑似データを予め記憶する複数の疑似データの中から選択し、選択した前記擬似データを用いて前記サーバ側のOS上で実行されるアプリケーションの処理を行う通信システム。
    A server system on which the server-side OS is executed;
    A client system on which the client-side OS is executed;
    A first communication path used for communication from the client system to the server system,
    When request data, which is a request to the server system, is issued by an application executed on the client-side OS, the client system generates communication-specific data corresponding to the content of the request data, and generates the request data Transmitting the communication-dedicated data to the server system via the first communication path;
    When the server system receives the communication-dedicated data from the client system, the server system selects from among a plurality of pseudo-data that pre-stores pseudo data corresponding to the communication-dedicated data, and uses the selected pseudo data to select the server Communication system that performs processing of applications executed on the OS on the side.
  2.  請求項1において、
     前記サーバシステムから前記クライアントシステムへの一方向にのみ通信可能な第2の通信路を備え、
     前記クライアントシステムから前記サーバシステムへの通信は、所定の書式に単純化された前記通信専用データによって、前記第1の通信路を介して行われ、
     前記サーバシステムから前記クライアントシステムへの通信は、前記第2の通信路を介して行われることを特徴とする通信システム。
    In claim 1,
    A second communication path capable of communicating only in one direction from the server system to the client system;
    Communication from the client system to the server system is performed via the first communication path by the communication dedicated data simplified in a predetermined format,
    Communication from the server system to the client system is performed via the second communication path.
  3.  請求項1において、
     前記クライアントシステムは、前記リクエストデータの種類に対応した符号を選択して前記通信専用データを生成し、
     前記サーバシステムは、受信した前記通信専用データ内の前記符号から対応する擬似データを選択するものであり、当該選択された擬似データは、受信した前記通信データの元となる前記リクエストデータに相当する内容であることを特徴とする通信システム。
    In claim 1,
    The client system selects the code corresponding to the type of the request data to generate the communication dedicated data,
    The server system selects corresponding pseudo data from the code in the received communication-dedicated data, and the selected pseudo data corresponds to the request data that is the basis of the received communication data. A communication system characterized by content.
  4.  請求項2において、
     前記サーバシステムが前記クライアントシステムへの通信データをデータ処理する際、および、前記クライアントシステムが前記サーバシステムへの前記通信専用データをデータ処理する際に、前記サーバシステムおよび前記クライアントシステムは相互にシーケンス情報を管理する事を特徴とする通信システム。
    In claim 2,
    When the server system processes communication data to the client system, and when the client system processes data dedicated to communication to the server system, the server system and the client system sequence with each other. A communication system characterized by managing information.
  5.  請求項4において、
     前記サーバシステムは、前記クライアントシステムから前記通信専用データを受信すると、当該通信専用データに擬似シーケンス情報を設定し、前記クライアントシステムへ送る通信データに前記擬似シーケンス情報に対応するシーケンス情報を付与して送信し、
     前記クライアントシステムは、受信した前記通信データに付与されたシーケンス情報を用いて当該通信に付与されるシーケンス情報を更新することを特徴とする通信システム。
    In claim 4,
    When the server system receives the communication-dedicated data from the client system, the server system sets pseudo-sequence information in the communication-dedicated data, and adds sequence information corresponding to the pseudo-sequence information to communication data to be sent to the client system. Send
    The said client system updates the sequence information provided to the said communication using the sequence information provided to the received said communication data, The communication system characterized by the above-mentioned.
  6.  請求項4において、
     前記クライアントシステムが生成する複数種類の前記通信専用データのうち少なくとも1つは、前記サーバシステムが送信した前記通信データが前記クライアントシステムで正常に受信されたことを示すことを特徴とする通信システム。
    In claim 4,
    A communication system, wherein at least one of the plurality of types of communication-dedicated data generated by the client system indicates that the communication data transmitted by the server system has been normally received by the client system.
  7.  請求項6において、
     前記サーバシステムは、前記クライアントシステムへ前記通信データを送信した後、所定の時間内に前記正常に受信されたことを示す通信専用データを受信しなかった場合には、タイムアウト処理を実行することを特徴とする通信システム。
    In claim 6,
    The server system, after transmitting the communication data to the client system, executes a time-out process when not receiving communication-dedicated data indicating that the data has been normally received within a predetermined time. A featured communication system.
  8.  請求項1において、
     前記クライアントシステムから前記サーバシステムへ送られる前記通信専用データには優先度が設定されており、
     前記サーバシステムは、複数の前記通信専用データを受信すると、受信した前記通信専用データの優先度に応じて、データ処理順番を変更することを特徴とする通信システム。
    In claim 1,
    A priority is set for the communication-only data sent from the client system to the server system,
    When the server system receives a plurality of the communication dedicated data, the server system changes the data processing order according to the priority of the received communication dedicated data.
  9.  クライアントシステムのOS上で実行されるアプリケーションによってサーバシステムへの要求であるリクエストデータが発行されると、当該リクエストデータの内容に対応した通信専用データを生成し、生成した前記通信専用データを第1の通信路を介して前記サーバシステムへ送信し、
     前記サーバシステムは、前記クライアントシステムから前記通信専用データを受信すると、当該通信専用データに対応する疑似データを予め記憶する複数の疑似データの中から選択し、選択した前記擬似データを用いて前記サーバ側のOS上で実行されるアプリケーションの処理を行う通信方法。
    When request data, which is a request to the server system, is issued by an application executed on the OS of the client system, communication dedicated data corresponding to the content of the request data is generated, and the generated communication dedicated data is the first To the server system via the communication path of
    When the server system receives the communication-dedicated data from the client system, the server system selects from among a plurality of pseudo-data that pre-stores pseudo data corresponding to the communication-dedicated data, and uses the selected pseudo data to select the server Communication method for processing an application executed on the OS on the side.
  10.  請求項9において、
     前記クライアントシステムから前記サーバシステムへの通信は、所定の書式に単純化された前記通信専用データによって、前記第1の通信路を介して行われ、
     前記サーバシステムから前記クライアントシステムへの通信は、前記サーバシステムから前記クライアントシステムへの一方向にのみ通信可能な第2の通信路を介して行われることを特徴とする通信方法。
    In claim 9,
    Communication from the client system to the server system is performed via the first communication path by the communication dedicated data simplified in a predetermined format,
    The communication from the server system to the client system is performed via a second communication path capable of communication in only one direction from the server system to the client system.
  11.  請求項10において、
     前記クライアントシステムは、前記リクエストデータの種類に対応した符号を含む前記通信専用データを生成し、
     前記サーバシステムは、受信した前記通信専用データ内の前記符号を用いて対応する擬似データを選択するものであり、当該選択された擬似データは、受信した前記通信データの元となる前記リクエストデータに相当する内容であることを特徴とする通信方法。
    In claim 10,
    The client system generates the communication dedicated data including a code corresponding to the type of the request data,
    The server system selects corresponding pseudo data using the code in the received communication dedicated data, and the selected pseudo data is added to the request data that is the source of the received communication data. A communication method characterized by corresponding contents.
PCT/JP2015/052612 2015-01-30 2015-01-30 Communication system and communication method WO2016121078A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/052612 WO2016121078A1 (en) 2015-01-30 2015-01-30 Communication system and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/052612 WO2016121078A1 (en) 2015-01-30 2015-01-30 Communication system and communication method

Publications (1)

Publication Number Publication Date
WO2016121078A1 true WO2016121078A1 (en) 2016-08-04

Family

ID=56542729

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/052612 WO2016121078A1 (en) 2015-01-30 2015-01-30 Communication system and communication method

Country Status (1)

Country Link
WO (1) WO2016121078A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113141777A (en) * 2019-09-25 2021-07-20 株式会社日立制作所 Computer system, data control method, and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127461A (en) * 2004-09-29 2006-05-18 Sony Corp Information processing device, communication processing method, and computer program
JP2012128581A (en) * 2010-12-14 2012-07-05 Mitsubishi Electric Corp Communication code generation apparatus, function utilization computer, function disclosure computer, computer system, communication code generation method and program
JP2014119486A (en) * 2012-12-13 2014-06-30 Hitachi Solutions Ltd Secret retrieval processing system, secret retrieval processing method, and secret retrieval processing program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127461A (en) * 2004-09-29 2006-05-18 Sony Corp Information processing device, communication processing method, and computer program
JP2012128581A (en) * 2010-12-14 2012-07-05 Mitsubishi Electric Corp Communication code generation apparatus, function utilization computer, function disclosure computer, computer system, communication code generation method and program
JP2014119486A (en) * 2012-12-13 2014-06-30 Hitachi Solutions Ltd Secret retrieval processing system, secret retrieval processing method, and secret retrieval processing program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113141777A (en) * 2019-09-25 2021-07-20 株式会社日立制作所 Computer system, data control method, and storage medium

Similar Documents

Publication Publication Date Title
EP3491799B1 (en) Channel data encapsulation system and method for use with client-server data channels
EP3425870B1 (en) Method for optimization of the connection setup of an ssl proxy
Yasukata et al. {StackMap}:{Low-Latency} networking with the {OS} stack and dedicated {NICs}
Anderson et al. xOMB: Extensible open middleboxes with commodity servers
EP2158546B1 (en) Providing enhanced data retrieval from remote locations
WO2019195003A1 (en) Virtual rdma switching for containerized applications
AU2018330053B2 (en) RDP proxy support in presence of RDP server farm with session directory or broker
US20070098010A1 (en) Offloading processing tasks to a peripheral device
WO2011096307A1 (en) Proxy device and operation method thereof
US20070101023A1 (en) Multiple task offload to a peripheral device
CA3125144A1 (en) System and method to operate devices with dns caches
US20130174218A1 (en) Security policy enforcement system and security policy enforcement method
US10536560B2 (en) System and method for implementing augmented object members for remote procedure call
Harchol et al. FTvNF: Fault tolerant virtual network functions
CN105099952B (en) A kind of resource allocation methods and device
Tian et al. Accelerating distributed deep learning using multi-path RDMA in data center networks
WO2017210103A1 (en) Federated scheme for coordinating throttled network data transfer in a multi-host scenario
CN107249038A (en) Business datum retransmission method and system
WO2016121078A1 (en) Communication system and communication method
JP2009123202A (en) Processor-server hybrid system for processing data
US10938960B2 (en) System and method for implementing augmented object members for remote procedure call
US20160261719A1 (en) Information processing system, control program, and control method
KR20140122025A (en) Method for logical network separation and apparatus therefor
Xu et al. A mathematical model and dynamic programming based scheme for service function chain placement in NFV
JP5212021B2 (en) Monitoring program, monitoring method and monitoring apparatus

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15879975

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15879975

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP