JP2019057846A - Packet aggregation device, packet division device, packet communication system, program, packet generation device, packet generation method, and communication method - Google Patents

Packet aggregation device, packet division device, packet communication system, program, packet generation device, packet generation method, and communication method Download PDF

Info

Publication number
JP2019057846A
JP2019057846A JP2017181740A JP2017181740A JP2019057846A JP 2019057846 A JP2019057846 A JP 2019057846A JP 2017181740 A JP2017181740 A JP 2017181740A JP 2017181740 A JP2017181740 A JP 2017181740A JP 2019057846 A JP2019057846 A JP 2019057846A
Authority
JP
Japan
Prior art keywords
packet
individual
aggregate
processor
packets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017181740A
Other languages
Japanese (ja)
Other versions
JP7000090B2 (en
Inventor
遵 金井
Jun Kanai
遵 金井
直哉 大西
Naoya Onishi
直哉 大西
拓紀 松山
Hiroki Matsuyama
拓紀 松山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Infrastructure Systems and Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Infrastructure Systems and Solutions Corp
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 Toshiba Corp, Toshiba Infrastructure Systems and Solutions Corp filed Critical Toshiba Corp
Priority to JP2017181740A priority Critical patent/JP7000090B2/en
Publication of JP2019057846A publication Critical patent/JP2019057846A/en
Application granted granted Critical
Publication of JP7000090B2 publication Critical patent/JP7000090B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

To provide a packet aggregation device, a packet division device, a packet communication system, a program, a packet generation device, a packet generation method, and a communication method that reduce processing load and suppress deterioration of real-time performance.SOLUTION: The packet processing device includes: a receiver, a processor, and a transmitter. The receiver receives an individual packet. The processor generates an aggregated packet in which a plurality of individual packets received by the receiver is aggregated; and encrypts a range determined unencrypted among the generated aggregated packets. The transmitter transmits the aggregated packet encrypted by the processor.SELECTED DRAWING: Figure 9

Description

本発明の実施形態は、パケット集約装置、パケット分割装置、パケット通信システム、プログラム、パケット生成装置、パケット生成方法及び通信方法に関する。   Embodiments described herein relate generally to a packet aggregation device, a packet division device, a packet communication system, a program, a packet generation device, a packet generation method, and a communication method.

クライアントサーバーモデルのシステムなどにおいて、クライアントからサーバーに対して多数のアクサスが発生する場合がある。このような場合、ネットワーク又はサーバーなどに対する負荷が増大する。特に、小さいサイズのパケットを大量に処理する場合には、サーバーのネットワークインターフェースなどに対する処理負荷が増大する。   In a client server model system or the like, a large number of accessions may occur from a client to a server. In such a case, the load on the network or server increases. In particular, when processing a large amount of small-sized packets, the processing load on the network interface of the server increases.

特開2003−169092号公報JP 2003-169092 A

本発明の実施形態が解決しようとする課題は、処理負荷を低減し、リアルタイム性の低下を抑える、パケット集約装置、パケット分割装置、パケット通信システム、プログラム、パケット生成装置、パケット生成方法及び通信方法を提供することである。   A problem to be solved by an embodiment of the present invention is a packet aggregation device, a packet division device, a packet communication system, a program, a packet generation device, a packet generation method, and a communication method, which reduce processing load and suppress deterioration in real time. Is to provide.

実施形態のパケット処理装置は、受信部、処理部及び送信部を含む。受信部は、個別パケットを受信する。処理部は、前記受信部によって受信された複数の個別パケットを集約した集約パケットを生成し、生成した前記集約パケットのうちの暗号化済みでないと判定した範囲を暗号化する。送信部は、前記処理部によって暗号化された集約パケットを送信する。   The packet processing apparatus according to the embodiment includes a reception unit, a processing unit, and a transmission unit. The receiving unit receives individual packets. The processing unit generates an aggregate packet obtained by aggregating a plurality of individual packets received by the reception unit, and encrypts a range determined to be not encrypted among the generated aggregate packet. The transmission unit transmits the aggregated packet encrypted by the processing unit.

第1実施形態及び第2実施形態に係る通信システム及び当該通信システムに含まれる装置の要部回路構成を示すブロック図。The block diagram which shows the principal part circuit structure of the communication system which concerns on 1st Embodiment and 2nd Embodiment, and the apparatus contained in the said communication system. 図1中のパケット集約装置の第1実施形態に係る機能構成を示すブロック図。The block diagram which shows the function structure which concerns on 1st Embodiment of the packet aggregation apparatus in FIG. 図1中のパケット集約装置が備えるプロセッサーによる第1実施形態〜第3実施形態に係る処理の一例を示すフローチャート。The flowchart which shows an example of the process which concerns on 1st Embodiment-3rd Embodiment by the processor with which the packet aggregation apparatus in FIG. 1 is provided. 図1中のパケット集約装置が備えるプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。The flowchart which shows an example of the process which concerns on 1st Embodiment and 2nd Embodiment by the processor with which the packet aggregation apparatus in FIG. 1 is provided. 図1中のパケット集約装置が備えるプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。The flowchart which shows an example of the process which concerns on 1st Embodiment and 2nd Embodiment by the processor with which the packet aggregation apparatus in FIG. 1 is provided. 図1中のサーバー装置が備えるプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。The flowchart which shows an example of the process which concerns on 1st Embodiment and 2nd Embodiment by the processor with which the server apparatus in FIG. 1 is provided. 図1中のサーバー装置が備えるプロセッサーによる第1実施形態及び第2実施形態に係る処理の一例を示すフローチャート。The flowchart which shows an example of the process which concerns on 1st Embodiment and 2nd Embodiment by the processor with which the server apparatus in FIG. 1 is provided. 図1中のサーバー装置が備えるプロセッサーによる第1実施形態〜第3実施形態に係る処理の一例を示すフローチャート。The flowchart which shows an example of the process which concerns on 1st Embodiment-3rd Embodiment by the processor with which the server apparatus in FIG. 1 is provided. 第1実施形態に係る集約パケットの一例を説明するための図。The figure for demonstrating an example of the aggregation packet which concerns on 1st Embodiment. 第2実施形態に係る集約パケットの一例を説明するための図。The figure for demonstrating an example of the aggregation packet which concerns on 2nd Embodiment. 図1中のパケット集約装置の第3実施形態に係る機能構成を示すブロック図。The block diagram which shows the function structure which concerns on 3rd Embodiment of the packet aggregation apparatus in FIG. 図1中のパケット集約装置が備えるプロセッサーによる第3実施形態に係る処理の一例を示すフローチャート。The flowchart which shows an example of the process which concerns on 3rd Embodiment by the processor with which the packet aggregation apparatus in FIG. 1 is provided. 図1中のパケット集約装置が備えるプロセッサーによる第3実施形態に係る処理の一例を示すフローチャート。The flowchart which shows an example of the process which concerns on 3rd Embodiment by the processor with which the packet aggregation apparatus in FIG. 1 is provided. 第3実施形態に係る集約パケットの一例を説明するための図。The figure for demonstrating an example of the aggregation packet which concerns on 3rd Embodiment. 第3実施形態に係る通信システムの情報の流れの一例を示すシーケンス図。The sequence diagram which shows an example of the information flow of the communication system which concerns on 3rd Embodiment.

以下、いくつかの実施形態に係る通信システムについて図面を用いて説明する。
〔第1実施形態〕
図1は、第1実施形態に係る通信システム1及び通信システム1に含まれる構成要素の要部回路構成の一例を示すブロック図である。通信システム1は、パケット処理装置10、サーバー装置20及びクライアント装置30を含む。通信システム1は、一例として、サーバー装置20とクライアント装置30との間で通信を行う、サーバークライアントモデルのシステムである。なお、図1にはパケット処理装置10を1台、サーバー装置20を1台、クライアント装置30を3台示しているが、これらの台数に限定するものではない。
Hereinafter, communication systems according to some embodiments will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a block diagram illustrating an example of a main circuit configuration of components included in the communication system 1 and the communication system 1 according to the first embodiment. The communication system 1 includes a packet processing device 10, a server device 20, and a client device 30. As an example, the communication system 1 is a server client model system that performs communication between the server device 20 and the client device 30. Although FIG. 1 shows one packet processing device 10, one server device 20, and three client devices 30, the number is not limited to these numbers.

パケット処理装置10及びクライアント装置30は、ネットワークNW1に接続されている。ネットワークNW1は、典型的にはLAN(local area network)を含む通信網である。ネットワークNW1は、典型的にはイントラネットなどのプライベートネットワークを含む通信網である。ネットワークNW1は、インターネットを含む通信網であっても良い。ネットワークNW1は、WAN(wide area network)を含む通信網であっても良い。
パケット処理装置10及びサーバー装置20は、ネットワークNW2に接続されている。ネットワークNW2は、典型的には、インターネットを含む通信網である。ネットワークNWは1、典型的には、WANを含む通信網である。ネットワークNW2は、イントラネットなどのプライベートネットワークを含む通信網であっても良い。ネットワークNW2は、LANを含む通信網であっても良い。
ネットワークNW1及びネットワークNW2のそれぞれは、携帯電話回線網、専用線、又はその他の通信網を含む通信網であっても良い。
ネットワークNW1及びネットワークNW2上の通信は、パケット通信によって行われる。
The packet processing device 10 and the client device 30 are connected to the network NW1. The network NW1 is typically a communication network including a LAN (local area network). The network NW1 is typically a communication network including a private network such as an intranet. The network NW1 may be a communication network including the Internet. The network NW1 may be a communication network including a WAN (wide area network).
The packet processing device 10 and the server device 20 are connected to the network NW2. The network NW2 is typically a communication network including the Internet. The network NW is 1, typically a communication network including a WAN. The network NW2 may be a communication network including a private network such as an intranet. The network NW2 may be a communication network including a LAN.
Each of the network NW1 and the network NW2 may be a communication network including a mobile phone network, a dedicated line, or another communication network.
Communication on the network NW1 and the network NW2 is performed by packet communication.

パケット処理装置10は、例えばゲートウェイ又はルーターなどである。パケット処理装置10は、サーバー装置20とクライアント装置30との間の通信を中継する。パケット処理装置10は、クライアント装置30などから送信された複数のパケットを1つのパケットに集約する機能を有する。なお、複数のパケットが集約されたパケットを、以下「集約パケット」という。また、集約パケットでないパケットを、以下「個別パケット」という。また、パケット処理装置10は、サーバー装置20などから送信された集約パケットを個々の個別パケットに分割する機能を有する。さらに、パケット処理装置10は、集約パケットを暗号化する機能、及び暗号化された集約パケットを復号する機能を有する。パケット処理装置10は、プロセッサー11、ROM(read-only memory)12、RAM(random-access memory)13、補助記憶デバイス14、第1の通信I/F(interface)15及び第2の通信I/F16を含む。パケット処理装置10は、パケット集約装置の一例である。パケット処理装置10は、パケット分割装置の一例である。パケット処理装置10は、パケット生成装置の一例である。   The packet processing device 10 is, for example, a gateway or a router. The packet processing device 10 relays communication between the server device 20 and the client device 30. The packet processing device 10 has a function of aggregating a plurality of packets transmitted from the client device 30 or the like into one packet. A packet in which a plurality of packets are aggregated is hereinafter referred to as “aggregated packet”. Further, packets that are not aggregate packets are hereinafter referred to as “individual packets”. The packet processing device 10 has a function of dividing the aggregate packet transmitted from the server device 20 or the like into individual packets. Further, the packet processing device 10 has a function of encrypting the aggregated packet and a function of decrypting the encrypted aggregated packet. The packet processing device 10 includes a processor 11, a read-only memory (ROM) 12, a random-access memory (RAM) 13, an auxiliary storage device 14, a first communication interface (I / F) 15, and a second communication I / F. Includes F16. The packet processing device 10 is an example of a packet aggregation device. The packet processing device 10 is an example of a packet dividing device. The packet processing device 10 is an example of a packet generation device.

プロセッサー11は、パケット処理装置10の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー11は、ROM12又は補助記憶デバイス14などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、パケット処理装置10の各種の機能を実現するべく各部を制御する。プロセッサー11は、例えば、CPU(central processing unit)、MPU(micro processing unit)、SoC(system on a chip)、DSP(digital signal processor)、GPU(graphics processing unit)、ASIC(application specific integrated circuit)、PLD(programmable logic device)又はFPGA(field-programmable gate array)などである。あるいは、プロセッサー11は、これらの組み合わせである。プロセッサー11は、処理部の一例である。プロセッサー11は、第1の処理部の一例である。プロセッサー11は、第2の処理部の一例である。プロセッサー11は、生成部の一例である。プロセッサー11を中枢とするコンピューターは、処理部の値例である。プロセッサー11を中枢とするコンピューターは、第1の処理部の一例である。プロセッサー11を中枢とするコンピューターは、第2の処理部の一例である。プロセッサー11を中枢とするコンピューターは、生成部の一例である。   The processor 11 corresponds to a central part of a computer that performs processing such as calculation and control necessary for the operation of the packet processing apparatus 10. The processor 11 controls each unit to implement various functions of the packet processing apparatus 10 based on a program such as system software, application software, or firmware stored in the ROM 12 or the auxiliary storage device 14. The processor 11 includes, for example, a central processing unit (CPU), a micro processing unit (MPU), a system on a chip (SoC), a digital signal processor (DSP), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), PLD (programmable logic device) or FPGA (field-programmable gate array). Alternatively, the processor 11 is a combination of these. The processor 11 is an example of a processing unit. The processor 11 is an example of a first processing unit. The processor 11 is an example of a second processing unit. The processor 11 is an example of a generation unit. A computer having the processor 11 as a center is an example of the value of the processing unit. A computer having the processor 11 as a center is an example of a first processing unit. A computer having the processor 11 as a center is an example of a second processing unit. A computer having the processor 11 as a center is an example of a generation unit.

ROM12は、プロセッサー11を中枢とするコンピューターの主記憶装置に相当する。ROM12は、専らデータの読み出しに用いられる不揮発性メモリである。ROM12は、上記のプログラムを記憶する。また、ROM12は、プロセッサー11が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。   The ROM 12 corresponds to a main storage device of a computer having the processor 11 as a center. The ROM 12 is a non-volatile memory used exclusively for reading data. The ROM 12 stores the above program. The ROM 12 stores data used for the processor 11 to perform various processes, various setting values, and the like.

RAM13は、プロセッサー11を中枢とするコンピューターの主記憶装置に相当する。RAM13は、データの読み書きに用いられるメモリである。RAM13は、プロセッサー11が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。   The RAM 13 corresponds to a main storage device of a computer having the processor 11 as a center. The RAM 13 is a memory used for reading and writing data. The RAM 13 is used as a so-called work area that stores data temporarily used when the processor 11 performs various processes.

補助記憶デバイス14は、プロセッサー11を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス14は、例えばEEPROM(electric erasable programmable read-only memory)、HDD(hard disk drive)又はSSD(solid state drive)などである。補助記憶デバイス14は、上記のプログラムを記憶する場合がある。また、補助記憶デバイス14は、プロセッサー11が各種の処理を行う上で使用するデータ、プロセッサー11での処理によって生成されたデータ又は各種の設定値などを保存する。   The auxiliary storage device 14 corresponds to an auxiliary storage device of a computer having the processor 11 as a center. The auxiliary storage device 14 is, for example, an EEPROM (electrically erasable programmable read-only memory), an HDD (hard disk drive), or an SSD (solid state drive). The auxiliary storage device 14 may store the above program. In addition, the auxiliary storage device 14 stores data used when the processor 11 performs various processes, data generated by the processes in the processor 11, various setting values, and the like.

ROM12又は補助記憶デバイス14に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、パケット処理装置10は、当該プログラムがROM12又は補助記憶デバイス14に記憶された状態でパケット処理装置10の管理者などへと譲渡される。しかしながら、パケット処理装置10は、当該プログラムがROM12又は補助記憶デバイス14に記憶されない状態で当該管理者などに譲渡されても良い。また、パケット処理装置10は、当該プログラムとは別のプログラムがROM12又は補助記憶デバイス14に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にROM12又は補助記憶デバイス14へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークを介したダウンロードにより実現できる。   The program stored in the ROM 12 or the auxiliary storage device 14 includes a program for executing processing to be described later. As an example, the packet processing apparatus 10 is transferred to an administrator of the packet processing apparatus 10 or the like with the program stored in the ROM 12 or the auxiliary storage device 14. However, the packet processing apparatus 10 may be transferred to the administrator or the like in a state where the program is not stored in the ROM 12 or the auxiliary storage device 14. The packet processing apparatus 10 may be transferred to the administrator or the like in a state where a program different from the program is stored in the ROM 12 or the auxiliary storage device 14. A program for executing processing to be described later may be separately transferred to the administrator or the like, and written to the ROM 12 or the auxiliary storage device 14 under the operation of the administrator or a serviceman. Transfer of the program at this time can be realized, for example, by recording on a removable storage medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory, or by downloading via a network.

第1の通信I/F15は、パケット処理装置10がネットワークNW1などを介して通信するためのインターフェースである。第1の通信I/F15は、個別パケットを受信する受信部の一例である。第1の通信I/F15は、個別パケットを受信する第4の通信部の一例である。   The first communication I / F 15 is an interface for the packet processing apparatus 10 to communicate via the network NW1 or the like. The first communication I / F 15 is an example of a receiving unit that receives individual packets. The first communication I / F 15 is an example of a fourth communication unit that receives individual packets.

第2の通信I/F16は、パケット処理装置10がネットワークNW2などを介して通信するためのインターフェースである。第2の通信I/F16は、集約パケットを送信する送信部の一例である。第2の通信I/F16は、集約パケットをパケット分割装置に送信する第1の通信部の一例である。第2の通信I/F16は、集約パケットを受信する第2の通信部の一例である。   The second communication I / F 16 is an interface for the packet processing apparatus 10 to communicate via the network NW2 or the like. The second communication I / F 16 is an example of a transmission unit that transmits aggregated packets. The second communication I / F 16 is an example of a first communication unit that transmits the aggregated packet to the packet dividing device. The second communication I / F 16 is an example of a second communication unit that receives the aggregated packet.

サーバー装置20は、複数のクライアント装置30と通信を行う。サーバー装置20は、例えば、クライアント装置30から送信された要求に応じて各種処理などを行う。サーバー装置20は、プロセッサー21、ROM22、RAM23、補助記憶デバイス24及び通信I/F25を含む。サーバー装置20は、パケット集約装置の一例である。サーバー装置20は、パケット分割装置の一例である。サーバー装置20は、パケット生成装置の一例である。   The server device 20 communicates with a plurality of client devices 30. For example, the server device 20 performs various processes in response to a request transmitted from the client device 30. The server device 20 includes a processor 21, a ROM 22, a RAM 23, an auxiliary storage device 24, and a communication I / F 25. The server device 20 is an example of a packet aggregation device. The server device 20 is an example of a packet dividing device. The server device 20 is an example of a packet generation device.

プロセッサー21は、サーバー装置20の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー21は、ROM22又は補助記憶デバイス24などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、サーバー装置20の各種の機能を実現するべく各部を制御する。プロセッサー21は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー21は、これらの組み合わせである。プロセッサー21は、処理部の一例である。プロセッサー21は、第1の処理部の一例である。プロセッサー21は、第2の処理部の一例である。プロセッサー21は、生成部の一例である。プロセッサー21を中枢とするコンピューターは、処理部の値例である。プロセッサー21を中枢とするコンピューターは、第1の処理部の一例である。プロセッサー21を中枢とするコンピューターは、第2の処理部の一例である。プロセッサー21を中枢とするコンピューターは、生成部の一例である。   The processor 21 corresponds to a central part of a computer that performs processing such as computation and control necessary for the operation of the server device 20. The processor 21 controls each unit to realize various functions of the server device 20 based on a program such as system software, application software, or firmware stored in the ROM 22 or the auxiliary storage device 24. The processor 21 is, for example, a CPU, MPU, SoC, DSP, GPU, ASIC, PLD, or FPGA. Alternatively, the processor 21 is a combination of these. The processor 21 is an example of a processing unit. The processor 21 is an example of a first processing unit. The processor 21 is an example of a second processing unit. The processor 21 is an example of a generation unit. A computer having the processor 21 as a center is an example of the value of the processing unit. A computer having the processor 21 as a center is an example of a first processing unit. A computer having the processor 21 as a center is an example of a second processing unit. A computer having the processor 21 as a center is an example of a generation unit.

ROM22は、プロセッサー21を中枢とするコンピューターの主記憶装置に相当する。ROM22は、専らデータの読み出しに用いられる不揮発性メモリである。ROM22は、上記のプログラムを記憶する。また、ROM22は、プロセッサー21が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。   The ROM 22 corresponds to a main storage device of a computer having the processor 21 as a center. The ROM 22 is a non-volatile memory used exclusively for reading data. The ROM 22 stores the above program. The ROM 22 stores data used for the processor 21 to perform various processes, various setting values, and the like.

RAM23は、プロセッサー21を中枢とするコンピューターの主記憶装置に相当する。RAM23は、データの読み書きに用いられるメモリである。RAM23は、プロセッサー21が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。   The RAM 23 corresponds to a main storage device of a computer having the processor 21 as a center. The RAM 23 is a memory used for reading and writing data. The RAM 23 is used as a so-called work area that stores data temporarily used when the processor 21 performs various processes.

補助記憶デバイス24は、プロセッサー21を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス24は、例えばEEPROM、HDD又はSSDなどである。補助記憶デバイス24は、上記のプログラムを記憶する場合がある。また、補助記憶デバイス24は、プロセッサー21が各種の処理を行う上で使用するデータ、プロセッサー21での処理によって生成されたデータ又は各種の設定値などを保存する。   The auxiliary storage device 24 corresponds to an auxiliary storage device of a computer having the processor 21 as a center. The auxiliary storage device 24 is, for example, an EEPROM, HDD, or SSD. The auxiliary storage device 24 may store the above program. Further, the auxiliary storage device 24 stores data used when the processor 21 performs various processes, data generated by the process in the processor 21, various setting values, and the like.

RAM23又は補助記憶デバイス24は、処理バッファー及びサーバー集約バッファーを含む。処理バッファーは、未処理のパケットを記憶する。サーバー集約バッファーは、未集約未送信のパケットを記憶する。   The RAM 23 or the auxiliary storage device 24 includes a processing buffer and a server aggregation buffer. The processing buffer stores unprocessed packets. The server aggregation buffer stores unaggregated and untransmitted packets.

ROM22又は補助記憶デバイス24に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、サーバー装置20は、当該プログラムがROM22又は補助記憶デバイス24に記憶された状態でサーバー装置20の管理者などへと譲渡される。しかしながら、サーバー装置20は、当該プログラムがROM22又は補助記憶デバイス24に記憶されない状態で当該管理者などに譲渡されても良い。また、サーバー装置20は、当該プログラムとは別のプログラムがROM22又は補助記憶デバイス24に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にROM22又は補助記憶デバイス24へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークを介したダウンロードにより実現できる。   The program stored in the ROM 22 or the auxiliary storage device 24 includes a program for executing processing to be described later. As an example, the server apparatus 20 is transferred to an administrator of the server apparatus 20 in a state where the program is stored in the ROM 22 or the auxiliary storage device 24. However, the server device 20 may be transferred to the administrator or the like in a state where the program is not stored in the ROM 22 or the auxiliary storage device 24. The server device 20 may be transferred to the administrator or the like in a state where a program different from the program is stored in the ROM 22 or the auxiliary storage device 24. A program for executing processing to be described later may be separately transferred to the administrator or the like, and written into the ROM 22 or the auxiliary storage device 24 under the operation of the administrator or a serviceman. Transfer of the program at this time can be realized, for example, by recording on a removable storage medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory, or by downloading via a network.

通信I/F25は、サーバー装置20がネットワークNW2などを介して通信するためのインターフェースである。通信I/F25は、集約パケットをパケット分割装置に送信する第1の通信部の一例である。通信I/F25は、集約パケットを受信する第2の通信部の一例である。   The communication I / F 25 is an interface for the server apparatus 20 to communicate via the network NW2 or the like. The communication I / F 25 is an example of a first communication unit that transmits the aggregated packet to the packet dividing device. The communication I / F 25 is an example of a second communication unit that receives an aggregate packet.

クライアント装置30は、例えば、自動券売機、自動精算機若しくは自動改札機などの駅務装置、PC(personal computer)、サーバー若しくはスマートホンなどの情報機器、又は各種IoT(internet of things)機器などである。クライアント装置30は、プロセッサー31、ROM32、RAM33、補助記憶デバイス34及び通信I/F35を含む。   The client device 30 is, for example, a station service device such as an automatic ticket vending machine, an automatic checkout machine or an automatic ticket gate, an information device such as a PC (personal computer), a server or a smart phone, or various IoT (internet of things) devices. is there. The client device 30 includes a processor 31, a ROM 32, a RAM 33, an auxiliary storage device 34, and a communication I / F 35.

プロセッサー31は、クライアント装置30の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー31は、ROM32又は補助記憶デバイス34などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、クライアント装置30の各種の機能を実現するべく各部を制御する。プロセッサー31は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー31は、これらの組み合わせである。   The processor 31 corresponds to a central part of a computer that performs processing such as calculation and control necessary for the operation of the client device 30. The processor 31 controls each unit to realize various functions of the client device 30 based on a program such as system software, application software, or firmware stored in the ROM 32 or the auxiliary storage device 34. The processor 31 is, for example, a CPU, MPU, SoC, DSP, GPU, ASIC, PLD, or FPGA. Alternatively, the processor 31 is a combination of these.

ROM32は、プロセッサー31を中枢とするコンピューターの主記憶装置に相当する。ROM32は、専らデータの読み出しに用いられる不揮発性メモリである。ROM32は、上記のプログラムを記憶する。また、ROM32は、プロセッサー31が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。   The ROM 32 corresponds to a main storage device of a computer having the processor 31 as a center. The ROM 32 is a non-volatile memory used exclusively for reading data. The ROM 32 stores the above program. The ROM 32 stores data used for the processor 31 to perform various processes, various setting values, and the like.

RAM33は、プロセッサー31を中枢とするコンピューターの主記憶装置に相当する。RAM33は、データの読み書きに用いられるメモリである。RAM33は、プロセッサー31が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。   The RAM 33 corresponds to a main storage device of a computer having the processor 31 as a center. The RAM 33 is a memory used for reading and writing data. The RAM 33 is used as a so-called work area that stores data temporarily used when the processor 31 performs various processes.

補助記憶デバイス34は、プロセッサー31を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス34は、例えばEEPROM、HDD又はSSDなどである。補助記憶デバイス34は、上記のプログラムを記憶する場合がある。また、補助記憶デバイス34は、プロセッサー31が各種の処理を行う上で使用するデータ、プロセッサー31での処理によって生成されたデータ又は各種の設定値などを保存する。   The auxiliary storage device 34 corresponds to an auxiliary storage device of a computer having the processor 31 as a center. The auxiliary storage device 34 is, for example, an EEPROM, HDD, or SSD. The auxiliary storage device 34 may store the above program. In addition, the auxiliary storage device 34 stores data used when the processor 31 performs various processes, data generated by the process in the processor 31, various setting values, and the like.

通信I/F35は、クライアント装置30がネットワークNW1などを介して通信するためのインターフェースである。通信I/F35は、個別パケットを前記パケット集約装置に送信する第3の通信部の一例である。   The communication I / F 35 is an interface for the client device 30 to communicate via the network NW1 or the like. The communication I / F 35 is an example of a third communication unit that transmits individual packets to the packet aggregation device.

パケット処理装置10について、図2を用いてさらに説明する。図2は、パケット処理装置10の機能構成を示すブロック図である。なお、図2おける図1と同様の要素については同一の符号を付している。パケット処理装置10は、第1受信部101、集約バッファー102、周期管理部103、結合部104、範囲選択部105、暗号化部106、第1送信部107、第2受信部108、復号部109、分割部110及び第2送信部111を含む。   The packet processing apparatus 10 will be further described with reference to FIG. FIG. 2 is a block diagram illustrating a functional configuration of the packet processing device 10. 2 that are the same as those in FIG. 1 are denoted by the same reference numerals. The packet processing device 10 includes a first receiving unit 101, an aggregation buffer 102, a cycle management unit 103, a combining unit 104, a range selecting unit 105, an encrypting unit 106, a first transmitting unit 107, a second receiving unit 108, and a decrypting unit 109. The dividing unit 110 and the second transmitting unit 111 are included.

第1受信部101は、クライアント装置30などから送信された個別パケットを受信する。例えば、第1の通信I/F15が、第1受信部101として機能する。   The first receiving unit 101 receives an individual packet transmitted from the client device 30 or the like. For example, the first communication I / F 15 functions as the first reception unit 101.

集約バッファー102は、第1受信部101によって受信された個別パケットを記憶する。例えば、RAM13又は補助記憶デバイス14が集約バッファー102として機能する。   The aggregation buffer 102 stores the individual packets received by the first reception unit 101. For example, the RAM 13 or the auxiliary storage device 14 functions as the aggregation buffer 102.

周期管理部103は、一定周期ごとに集約バッファー102から個別パケットを取り出す。例えば、プロセッサー11が周期管理部103として機能する。   The cycle management unit 103 extracts individual packets from the aggregation buffer 102 at regular intervals. For example, the processor 11 functions as the cycle management unit 103.

結合部104は、周期管理部103によって取り出された複数の個別パケットを結合して集約する。結合部104は、集約パケットを生成する。例えば、プロセッサー11が結合部104として機能する。   The combining unit 104 combines and aggregates a plurality of individual packets extracted by the cycle management unit 103. The combining unit 104 generates an aggregate packet. For example, the processor 11 functions as the coupling unit 104.

範囲選択部105は、集約パケットのうちの暗号化する範囲を決定して選択する。例えば、プロセッサー11が範囲選択部105として機能する。   The range selection unit 105 determines and selects a range to be encrypted in the aggregated packet. For example, the processor 11 functions as the range selection unit 105.

暗号化部106は、集約パケットを暗号化する。また、暗号化部106は、集約パケットの暗号化と共に、当該集約パケットのMAC(message authentication code)値を生成する。MAC値は、集約パケットの改竄検出など、集約パケットのデータの完全性の検証に用いられる。例えば、プロセッサー11が暗号化部106として機能する。MAC値は、データの完全性を保証するための符号の一例である。   The encryption unit 106 encrypts the aggregated packet. The encryption unit 106 generates a MAC (message authentication code) value of the aggregate packet together with the encryption of the aggregate packet. The MAC value is used for verifying the integrity of the data of the aggregate packet such as falsification detection of the aggregate packet. For example, the processor 11 functions as the encryption unit 106. The MAC value is an example of a code for guaranteeing data integrity.

第1送信部107は、周期管理部103、範囲選択部105、結合部104及び暗号化部106によって生成された集約パケットをサーバー装置20などに送信する。例えば、第2の通信I/F16が、第1送信部107として機能する。   The first transmission unit 107 transmits the aggregate packet generated by the cycle management unit 103, the range selection unit 105, the combining unit 104, and the encryption unit 106 to the server device 20 or the like. For example, the second communication I / F 16 functions as the first transmission unit 107.

第2受信部108は、サーバー装置20などから集約パケットを受信する。例えば、第2の通信I/F16が、第2受信部108として機能する。   The second receiving unit 108 receives the aggregate packet from the server device 20 or the like. For example, the second communication I / F 16 functions as the second reception unit 108.

復号部109は、第2受信部によって受信された集約パケットの暗号化された部分を復号する。また、復号部109は、当該集約パケットに含まれるMAC値を用いてデータの完全性の検証を行う。さらに、復号部109は、集約パケットが改竄されたことなどによりデータの完全性の保証が得られなかった場合には、当該集約パケットを破棄する。例えば、プロセッサー11が復号部109として機能する。   The decrypting unit 109 decrypts the encrypted part of the aggregate packet received by the second receiving unit. Further, the decoding unit 109 verifies the integrity of the data using the MAC value included in the aggregated packet. Furthermore, the decoding unit 109 discards the aggregate packet when the integrity of the data cannot be guaranteed because the aggregate packet has been tampered with. For example, the processor 11 functions as the decoding unit 109.

分割部110は、第2受信部によって受信された集約パケットを個々の個別パケットに分割する。例えば、プロセッサー11が分割部110として機能する。   The dividing unit 110 divides the aggregated packet received by the second receiving unit into individual individual packets. For example, the processor 11 functions as the dividing unit 110.

第2送信部111は、分割部110によって分割された個々の個別パケットのそれぞれを、それぞれの個別パケットの宛先であるクライアント装置30などに送信する。例えば、第1の通信I/F15が、第2送信部111として機能する。   The second transmitting unit 111 transmits each individual packet divided by the dividing unit 110 to the client device 30 that is the destination of each individual packet. For example, the first communication I / F 15 functions as the second transmission unit 111.

以下、第1実施形態に係る通信システム1の動作を図3〜図8に基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図3〜図5は、パケット処理装置10のプロセッサー11による処理のフローチャートである。プロセッサー11は、ROM12又は補助記憶デバイス14などに記憶されたプログラムに基づいてこの処理を実行する。なお、プロセッサー11は、図3〜図5に示す処理を並行又は並列して処理する。図6〜8は、サーバー装置20のプロセッサー21による処理のフローチャートである。プロセッサー21は、ROM22又は補助記憶デバイス24などに記憶されたプログラムに基づいてこの処理を実行する。なお、プロセッサー21は、図6〜図8に示す処理を並行又は並列して処理する。また、特に説明が無い限り、プロセッサー11及びプロセッサー21は、ステップS(m)(mは、自然数。)の処理の後、ステップS(m+1)へと進むものとする。   Hereinafter, operation | movement of the communication system 1 which concerns on 1st Embodiment is demonstrated based on FIGS. Note that the content of the processing in the following description of the operation is an example, and various processing that can obtain the same result can be used as appropriate. 3 to 5 are flowcharts of processing by the processor 11 of the packet processing apparatus 10. The processor 11 executes this processing based on a program stored in the ROM 12 or the auxiliary storage device 14. The processor 11 performs the processes shown in FIGS. 3 to 5 in parallel or in parallel. 6 to 8 are flowcharts of processing by the processor 21 of the server device 20. The processor 21 executes this processing based on a program stored in the ROM 22 or the auxiliary storage device 24. The processor 21 processes the processes shown in FIGS. 6 to 8 in parallel or in parallel. Unless otherwise specified, the processor 11 and the processor 21 proceed to step S (m + 1) after the process of step S (m) (m is a natural number).

複数のクライアント装置30のそれぞれは、サーバー装置20を宛先とするデータを送信する。当該データは、個別パケットとして送信される。当該個別パケットは、ネットワークNW1を介してパケット処理装置10によって受信される。
図3のステップS1においてプロセッサー11は、第1の通信I/F15(第1受信部101)によって、クライアント装置30から送信された個別パケットが受信されるのを待ち受けている。プロセッサー11は、個別パケットが受信されたならば、ステップS1においてYesと判定してステップS2へと進む。
Each of the plurality of client devices 30 transmits data destined for the server device 20. The data is transmitted as an individual packet. The individual packet is received by the packet processing apparatus 10 via the network NW1.
In step S <b> 1 of FIG. 3, the processor 11 waits for an individual packet transmitted from the client device 30 to be received by the first communication I / F 15 (first receiving unit 101). If the individual packet is received, the processor 11 determines Yes in step S1, and proceeds to step S2.

ステップS2においてプロセッサー11は、ステップS1で受信された個別パケットを集約バッファー102に記憶させる。プロセッサー11は、ステップS2の後、ステップS1へと戻る。
以上のようにして、第1の通信I/F15によって受信された個別パケットが次々と集約バッファー102に蓄積記憶されていく。
In step S <b> 2, the processor 11 stores the individual packet received in step S <b> 1 in the aggregation buffer 102. The processor 11 returns to step S1 after step S2.
As described above, individual packets received by the first communication I / F 15 are accumulated and stored in the aggregation buffer 102 one after another.

一方、図4のステップS11においてパケット処理装置10のプロセッサー11(周期管理部103)は、第1のタイマーをリセットする。第1のタイマーは、パケット処理装置10が前回集約パケットを送信してからの経過時間を計測するためのタイマーである。なお、集約パケットについては、後述する。   On the other hand, in step S11 of FIG. 4, the processor 11 (period management unit 103) of the packet processing device 10 resets the first timer. The first timer is a timer for measuring an elapsed time since the packet processing apparatus 10 transmitted the previous aggregated packet. The aggregated packet will be described later.

ステップS12においてプロセッサー11(周期管理部103)は、第1のタイマーをリセットしてから時間T1以上経過したか否かを判定する。なお、時間T1は、例えば、パケット処理装置10の管理者などによって予め設定される。あるいは、時間T1は、パケット処理装置10の設計者などによって予め定められていてもよい。プロセッサー11は、第1のタイマーをリセットしてから時間T1が経過していないならば、ステップS12においてNoと判定してステップS13へと進む。   In step S12, the processor 11 (cycle management unit 103) determines whether or not the time T1 has elapsed since the first timer was reset. Note that the time T1 is set in advance by, for example, an administrator of the packet processing apparatus 10 or the like. Alternatively, the time T1 may be determined in advance by the designer of the packet processing device 10 or the like. If the time T1 has not elapsed since the reset of the first timer, the processor 11 determines No in step S12 and proceeds to step S13.

ステップS13においてプロセッサー11は、集約バッファー102に記憶された未送信の個別パケットのデータ容量の合計が容量D1以上であるか否かを判定する。なお、容量D1は、例えば、パケット処理装置10の管理者などによって予め設定される。あるいは、容量D1は、パケット処理装置10の設計者などによって予め定められていてもよい。容量D1は、例えば、パケット処理装置10が生成する集約パケットのMTU(maximum transmission unit)である。プロセッサー11は、集約バッファー102に記憶された未送信の個別パケットのデータ容量の合計が容量D1以上でないならば、ステップS13においてNoと判定してステップS12へと戻る。かくして、プロセッサー11は、第1のタイマーをリセットしてから時間T1が経過したか、集約バッファー102に記憶された未送信の個別パケットのデータ容量の合計が容量D1以上となるまでステップS12及びステップS13を繰り返す。すなわち、ステップS12の処理により、一定周期ごとにステップS14〜ステップS22の処理が繰り返される。   In step S <b> 13, the processor 11 determines whether or not the total data capacity of unsent individual packets stored in the aggregation buffer 102 is greater than or equal to the capacity D <b> 1. The capacity D1 is set in advance by, for example, an administrator of the packet processing apparatus 10 or the like. Alternatively, the capacity D1 may be determined in advance by a designer of the packet processing apparatus 10 or the like. The capacity D1 is, for example, an aggregate packet MTU (maximum transmission unit) generated by the packet processing device 10. If the total data capacity of the unsent individual packets stored in the aggregation buffer 102 is not equal to or larger than the capacity D1, the processor 11 determines No in step S13 and returns to step S12. Thus, the processor 11 continues to step S12 and step S1 until the time T1 has elapsed since the first timer was reset or the total data capacity of unsent individual packets stored in the aggregation buffer 102 is equal to or greater than the capacity D1. Repeat S13. That is, the process of step S14-step S22 is repeated for every fixed period by the process of step S12.

プロセッサー11は、ステップS12及びステップS13の待受状態にあるときに、第1のタイマーをリセットしてから時間T1が経過したならば、ステップS12においてYesと判定してステップS14へと進む。   If the time T1 has elapsed since the first timer was reset when the processor 11 is in the standby state of step S12 and step S13, the processor 11 determines Yes in step S12 and proceeds to step S14.

ステップS14においてプロセッサー11(周期管理部103)は、集約バッファー102に未送信の個別パケットが記憶されているか否かを判定する。プロセッサー11は、集約バッファー102に未送信の個別パケットが記憶されていないならば、ステップS14においてNoと判定してステップS11へと戻る。すなわち、プロセッサー11は、前回集約パケットを送信してから時間T1が経過しても未送信の個別パケットが集約バッファー102に記憶されなかったならば、第1のタイマーをリセットする。対して、プロセッサー11は、集約バッファー102に未送信の個別パケットが記憶されているならば、ステップS14においてYesと判定してステップS15へと進む。
また、プロセッサー11は、ステップS12及びステップS13の待受状態にあるときに集約バッファー102に記憶された未送信の個別パケットのデータ容量の合計が容量D1以上であるならば、ステップS13においてYesと判定してステップS15へと進む。
In step S <b> 14, the processor 11 (cycle management unit 103) determines whether an untransmitted individual packet is stored in the aggregation buffer 102. If an untransmitted individual packet is not stored in the aggregation buffer 102, the processor 11 determines No in step S14 and returns to step S11. That is, the processor 11 resets the first timer if an untransmitted individual packet is not stored in the aggregation buffer 102 even after the time T1 has elapsed since the previous aggregation packet was transmitted. On the other hand, if an untransmitted individual packet is stored in the aggregation buffer 102, the processor 11 determines Yes in step S14 and proceeds to step S15.
On the other hand, if the total data capacity of the unsent individual packets stored in the aggregation buffer 102 when the processor 11 is in the standby state in steps S12 and S13 is greater than or equal to the capacity D1, the processor 11 determines Yes in step S13. Determine and proceed to step S15.

ステップS15においてプロセッサー11(周期管理部103)は、集約バッファー102に記憶された未送信の個別パケット1個を取り出す。ここで、プロセッサー11は、個別パケットを取り出すとき、集約バッファー102に記憶された当該個別パケットが送信済みであることが分かるようにする。あるいは、プロセッサー11は、当該個別パケットを集約バッファーから削除する。当該個別パケットは、例えば、集約バッファー102に記憶されている未送信の個別パケットの中で最初に記憶された個別パケットである。そして、ステップS15においてプロセッサー11(結合部104)は、取り出したパケットを含む集約パケットを生成する。ここで生成される集約パケットの一例について、図9を用いて説明する。図9は、第1実施形態に係る集約パケットの一例を説明するための図である。なお、図9には、n個の個別パケットが集約された集約パケットが示されているが、ステップS15で生成される集約パケットに含まれる個別パケットは1つである。すなわち、n=1である。n=1の集約パケットには複数の個別パケットが含まれているわけではないが、便宜上集約パケットと称するものとする。なお、nは、1以上の自然数である。   In step S <b> 15, the processor 11 (cycle management unit 103) extracts one untransmitted individual packet stored in the aggregation buffer 102. Here, when the processor 11 takes out the individual packet, the processor 11 knows that the individual packet stored in the aggregation buffer 102 has been transmitted. Alternatively, the processor 11 deletes the individual packet from the aggregation buffer. The individual packet is, for example, an individual packet stored first among unsent individual packets stored in the aggregation buffer 102. In step S15, the processor 11 (combining unit 104) generates an aggregate packet including the extracted packets. An example of the aggregate packet generated here will be described with reference to FIG. FIG. 9 is a diagram for explaining an example of the aggregate packet according to the first embodiment. FIG. 9 shows an aggregate packet in which n individual packets are aggregated, but only one individual packet is included in the aggregate packet generated in step S15. That is, n = 1. The aggregate packet with n = 1 does not include a plurality of individual packets, but is referred to as an aggregate packet for convenience. Note that n is a natural number of 1 or more.

図9に示すように、プロセッサー11は、複数の個別パケット(a1)の集約、及び複数の個別パケット(a1)に対するヘッダーの付与を行うことで、集約パケット(b1)を生成する。なお、個別パケット(a1)のそれぞれは、例えば、ペイロードである。n個の個別パケットが集約された集約パケットは、集約ヘッダー、n個の個別ヘッダー及びn個の個別パケットを含む。n個の個別ヘッダー及びn個の個別パケットは、集約ヘッダーの後に続く。
集約ヘッダーは、集約パケットに含まれる個別パケットの数などの、集約パケット全体に関する情報を含む。
n個の個別ヘッダーのそれぞれは、n個の個別パケットのそれぞれに対して1対1で関連付けられる。すなわち、例えば、個別ヘッダーkと個別パケットkとが関連付けられる。ただし、kはn以下の自然数である。それぞれの個別ヘッダーは、集約パケットを個々の個別パケットに分割できるように、関連付けられた個別パケットのサイズなどの、関連付けられた個別パケットについての情報を含む。また、集約パケット(b1)は、個別ヘッダーk、個別パケットk、個別ヘッダーk+1、個別パケットk+1、…のような順で、並んでいる。関連付けられた個別ヘッダーと個別パケットの組が隣り合うように並んでいる。
ステップS15では、n=1であるため、ステップS15で生成される集約パケットには、集約ヘッダー、個別ヘッダー1及び個別パケット1が含まれる。
As illustrated in FIG. 9, the processor 11 generates an aggregate packet (b1) by aggregating a plurality of individual packets (a1) and assigning headers to the plurality of individual packets (a1). Each individual packet (a1) is, for example, a payload. The aggregate packet in which n individual packets are aggregated includes an aggregate header, n individual headers, and n individual packets. n individual headers and n individual packets follow the aggregate header.
The aggregation header includes information regarding the entire aggregate packet, such as the number of individual packets included in the aggregate packet.
Each of the n individual headers is associated with each of the n individual packets on a one-to-one basis. That is, for example, the individual header k and the individual packet k are associated with each other. However, k is a natural number of n or less. Each individual header includes information about the associated individual packet, such as the size of the associated individual packet, so that the aggregated packet can be divided into individual individual packets. The aggregate packet (b1) is arranged in the order of individual header k, individual packet k, individual header k + 1, individual packet k + 1,. A set of associated individual headers and individual packets are arranged next to each other.
In step S15, since n = 1, the aggregate packet generated in step S15 includes the aggregate header, the individual header 1, and the individual packet 1.

ステップS16においてプロセッサー11(結合部104)は、集約バッファー102に未送信の個別パケットが記憶されているか否かを判定する。プロセッサー11は、集約バッファー102に未送信の個別パケットが記憶されているならば、ステップS16においてYesと判定してステップS17へと進む。   In step S <b> 16, the processor 11 (combining unit 104) determines whether or not unsent individual packets are stored in the aggregation buffer 102. If an untransmitted individual packet is stored in the aggregation buffer 102, the processor 11 determines Yes in step S16 and proceeds to step S17.

ステップS17においてプロセッサー11(結合部104)は、集約パケットに次の個別パケットを結合した場合の集約パケットのデータ容量が、パケット処理装置10が生成する集約パケットの最大データ容量以下となるか否かを判定する。なお、次の個別パケットとは、次に集約の対象となる個別パケットである。例えば、次の個別パケットは、集約バッファー102に記憶されている未送信の個別パケットの中で最初に記憶された個別パケットである。また、パケット処理装置10が生成する集約パケットの最大データ容量は、例えば、パケット処理装置10の管理者又は設計者などによって予め定められる。あるいは、パケット処理装置10が生成する集約パケットの最大データ容量は、パケット処理装置10が自動的に決定する。パケット処理装置10が生成する集約パケットの最大データ容量は、パケット処理装置10などのMTUであっても良い。プロセッサー11は、次の個別パケットを結合した場合の集約パケットのデータ容量が、当該集約パケットの最大データ容量以下となるならば、ステップS17においてYesと判定してステップS18へと進む。   In step S <b> 17, the processor 11 (combining unit 104) determines whether or not the data capacity of the aggregate packet when the next individual packet is combined with the aggregate packet is less than or equal to the maximum data capacity of the aggregate packet generated by the packet processing device 10. Determine. The next individual packet is an individual packet to be aggregated next. For example, the next individual packet is an individual packet stored first among unsent individual packets stored in the aggregation buffer 102. The maximum data capacity of the aggregate packet generated by the packet processing device 10 is determined in advance by, for example, an administrator or a designer of the packet processing device 10. Alternatively, the packet processing device 10 automatically determines the maximum data capacity of the aggregate packet generated by the packet processing device 10. The maximum data capacity of the aggregate packet generated by the packet processing device 10 may be an MTU such as the packet processing device 10. If the data capacity of the aggregate packet when the next individual packet is combined is equal to or less than the maximum data capacity of the aggregate packet, the processor 11 determines Yes in step S17 and proceeds to step S18.

ステップS18においてプロセッサー11(結合部104)は、集約バッファー102から次のパケットを取り出して、当該次のパケットを集約パケットに結合する。これにより、集約パケットに含まれる個別パケットの数が1つ増える。ここで、プロセッサー11は、個別パケットを取り出すとき、集約バッファー102に記憶された当該個別パケットが送信済みであることが分かるようにする。あるいは、プロセッサー11は、当該個別パケットを集約バッファーから削除する。   In step S18, the processor 11 (combining unit 104) extracts the next packet from the aggregation buffer 102, and combines the next packet with the aggregated packet. As a result, the number of individual packets included in the aggregated packet increases by one. Here, when the processor 11 takes out the individual packet, the processor 11 knows that the individual packet stored in the aggregation buffer 102 has been transmitted. Alternatively, the processor 11 deletes the individual packet from the aggregation buffer.

プロセッサー11は、集約バッファー102に未送信の個別パケットが記憶されていないならば、ステップS16においてNoと判定してステップS19へと進む。また、プロセッサー11は、次の個別パケットを結合した場合の集約パケットのデータ容量がパケット処理装置10のMTUを超えるならば、ステップS17においてNoと判定してステップS19へと進む。
かくして、プロセッサー11は、集約バッファー102に未送信の個別パケットが記憶されていない状態になるか、次の個別パケットを結合した場合の集約パケットのデータ容量がパケット処理装置10のMTUを超えるまで、ステップS16〜ステップS18を繰り返す。これにより、(ステップS18の処理を行った回数+1)個の個別パケットが集約された集約パケットが生成される。
If an untransmitted individual packet is not stored in the aggregation buffer 102, the processor 11 determines No in step S16 and proceeds to step S19. On the other hand, if the data capacity of the aggregate packet when the next individual packet is combined exceeds the MTU of the packet processing device 10, the processor 11 determines No in step S17 and proceeds to step S19.
Thus, the processor 11 is in a state where unsent individual packets are not stored in the aggregation buffer 102 or until the data capacity of the aggregate packet when the next individual packet is combined exceeds the MTU of the packet processing device 10. Steps S16 to S18 are repeated. As a result, an aggregated packet in which (the number of times the process of step S18 has been performed + 1) individual packets is aggregated is generated.

ステップS19においてプロセッサー11(範囲選択部105)は、ステップS15〜ステップS18の処理によって生成された集約パケットについて、暗号化する範囲を決定する。暗号化する範囲は、集約パケットのうちの暗号化されていない部分である。ステップS19の処理は、範囲選択部105によって行われる。
ここで、個別パケットは、暗号化済みの場合と、平文の場合がある。したがって、暗号化済みの個別パケットに対してさらに暗号化すると、二重に暗号化されることとなってしまう。二重に暗号化した場合、二重に暗号化しなかった場合と比べて暗号化にかかる時間と復号にかかる時間が長くなり、また、処理負荷も大きくなる。このため、プロセッサー11は、個別パケットについては、平文のもののみを暗号化することが好ましい。また、集約ヘッダー及び個別ヘッダーについては、ステップS15又はステップS18で付与したものであり、暗号化されていない。したがって、集約ヘッダー及び個別ヘッダーについては、暗号化することが好ましい。なお、プロセッサー11は、それぞれの個別パケットが暗号化済みであるか否かについて、例えば、当該個別パケットの送信元であるクライアント装置30から送信される情報により知ることができる。プロセッサー11は、暗号化済みであるか否かが分からない個別パケットがある場合には、当該パケットを暗号化されているものとみなして暗号化しない。あるいは、プロセッサー11は、暗号化済みであるか否かが分からない個別パケットがある場合には、当該パケットは暗号化されていないものとみなして暗号化する。あるいは、プロセッサー11は、個別パケットが暗号化済みであるか否かの判定を行わずに、集約ヘッダー及び個別ヘッダーを含み、個別パケットを含まない範囲を暗号化の範囲として決定しても良い。これは、例えば、全ての個別パケットがクライアント装置30などで暗号化されているような通信システム1において有用である。また、プロセッサー11は、集約パケットに含まれる個別パケットのうちの暗号化済みのパケットが占める割合が予め定められた割合以下の場合には、暗号化済みの個別パケットを含めて集約パケット全体を暗号化しても良い。集約パケットに占める暗号化済みの個別パケットの割合が小さい場合には、集約パケット全体を暗号化した方が、集約パケットのうちの暗号化済みでない部分だけを暗号化するより負荷が小さくなる可能性がある。
以上より、プロセッサー11は、暗号化前の集約パケットについて、集約ヘッダー、個別ヘッダー、及び平文の個別パケットを暗号化範囲として決定する。なお、図9には、暗号化済みである個別パケット1と、平文である個別パケット2を含む場合について例示している。したがって、図9に示す集約パケット(b1)を暗号化する範囲は、集約ヘッダー、個別ヘッダー、及び個別パケット2を含む。
In step S <b> 19, the processor 11 (range selection unit 105) determines a range to be encrypted for the aggregate packet generated by the processing in steps S <b> 15 to S <b> 18. The range to be encrypted is an unencrypted portion of the aggregate packet. The processing in step S19 is performed by the range selection unit 105.
Here, the individual packet may be encrypted or plain text. Therefore, if the encrypted individual packet is further encrypted, it is double-encrypted. When double encryption is performed, the time required for encryption and the time required for decryption become longer and the processing load becomes larger than when double encryption is not performed. For this reason, it is preferable that the processor 11 encrypts only the plain text of the individual packets. Further, the aggregate header and the individual header are given in step S15 or step S18 and are not encrypted. Therefore, it is preferable to encrypt the aggregate header and the individual header. The processor 11 can know whether or not each individual packet has been encrypted from, for example, information transmitted from the client device 30 that is a transmission source of the individual packet. If there is an individual packet for which it is not known whether or not it has been encrypted, the processor 11 regards the packet as being encrypted and does not encrypt it. Alternatively, if there is an individual packet for which it is not known whether or not the packet has been encrypted, the processor 11 regards the packet as not being encrypted and encrypts the packet. Alternatively, the processor 11 may determine a range including the aggregation header and the individual header and not including the individual packet as the encryption range without determining whether or not the individual packet has been encrypted. This is useful, for example, in the communication system 1 in which all individual packets are encrypted by the client device 30 or the like. Further, the processor 11 encrypts the entire aggregated packet including the encrypted individual packet when the ratio of the encrypted packet among the individual packets included in the aggregated packet is equal to or less than a predetermined ratio. May be used. If the percentage of encrypted individual packets in the aggregated packet is small, encrypting the entire aggregated packet may reduce the load compared to encrypting only the unencrypted part of the aggregated packet There is.
As described above, the processor 11 determines the aggregate header, the individual header, and the plaintext individual packet as the encryption range for the aggregate packet before encryption. FIG. 9 illustrates the case where the encrypted individual packet 1 and the plaintext individual packet 2 are included. Therefore, the range for encrypting the aggregate packet (b1) shown in FIG. 9 includes the aggregate header, the individual header, and the individual packet 2.

ステップS20においてプロセッサー11(暗号化部106)は、ステップS19で決定した範囲を暗号化する。なお、プロセッサー11は、暗号化する範囲以外については、暗号化の必要がないので、図9に示すようにコピーする。また、プロセッサー11は、暗号化とともに、MAC値の計算を行う。MAC値の計算範囲は、例えば、暗号化の範囲であっても良いし、集約パケット全体であっても良い。また、プロセッサー11は、集約前の個別パケットの一部又は全部にMAC値が付与されている場合には、暗号化の場合と同様に、MAC値が付与されていない個別パケット、集約ヘッダー及び個別ヘッダーに対してMAC値の計算を行っても良い。
プロセッサー11は、暗号化に、例えばAES(Advanced Encryption Standard)又はその他の暗号を用いる。また、プロセッサー11は、MAC値の計算に、例えばHMAC(hash-based message authentication code)、GMAC(Galois Message Authentication Code)又はその他のMAC値計算方法を用いる。また、プロセッサー11は、暗号化の範囲とMAC値の計算範囲が同一の場合には、CCM(Counter with CBC-MAC)、GCM(Galois/Counter Mode)又はその他の認証付き暗号モードを用いることができる。認証付き暗号モードを用いることで、セキュリティ性の向上と、暗号化及びMAC値の計算の効率化とが期待できる。
なお、暗号化に利用する共通鍵又はMAC値の計算に利用する共通鍵は、例えば、通信セッションの確立時に鍵交換を行って共有しても良いし、予め各ノードの記憶装置に共通鍵を保存しておき、その鍵を利用しても良い。鍵交換を行う場合には、ディフィー・ヘルマン鍵交換又はその他の鍵交換方法を利用する。
なお、プロセッサー11は、1つの集約パケット内における、パケット処理装置10において暗号化する部分については、全て同一の暗号鍵を用いて良い。
ステップS19及びステップS20の処理が行われることで、集約パケットのうちの暗号化済みでないと判定された範囲が暗号化される。
In step S20, the processor 11 (encryption unit 106) encrypts the range determined in step S19. It should be noted that the processor 11 does not need encryption except for the range to be encrypted, and copies it as shown in FIG. Further, the processor 11 calculates the MAC value together with encryption. The MAC value calculation range may be, for example, an encryption range or the entire aggregate packet. In addition, when the MAC value is assigned to some or all of the individual packets before aggregation, the processor 11 does not assign the MAC value to the individual packet, the aggregation header, and the individual as in the case of encryption. The MAC value may be calculated for the header.
The processor 11 uses, for example, AES (Advanced Encryption Standard) or other encryption for encryption. Further, the processor 11 uses, for example, a hash-based message authentication code (HMAC), a Galois Message Authentication Code (GMAC), or other MAC value calculation methods for calculating the MAC value. Further, when the encryption range and the MAC value calculation range are the same, the processor 11 may use CCM (Counter with CBC-MAC), GCM (Galois / Counter Mode), or other encryption modes with authentication. it can. By using the encryption mode with authentication, it can be expected that the security is improved and that the encryption and the calculation of the MAC value are efficient.
The common key used for encryption or the common key used for calculating the MAC value may be shared by exchanging keys at the time of establishing a communication session, for example, or may be shared in advance in the storage device of each node. You may save it and use that key. When performing key exchange, Diffie-Hellman key exchange or other key exchange methods are used.
It should be noted that the processor 11 may use the same encryption key for all the parts to be encrypted in the packet processing device 10 in one aggregated packet.
By performing the processing of step S19 and step S20, the range determined not to be encrypted among the aggregated packets is encrypted.

以上より、集約される個別パケットに暗号化済みの個別パケットが含まれる場合、当該暗号化に使われた暗号鍵とパケット処理装置10において暗号化された部分に使われた暗号鍵は異なることとなる。   From the above, when the encrypted individual packets are included in the aggregated individual packets, the encryption key used for the encryption and the encryption key used for the encrypted part in the packet processing device 10 are different. Become.

ステップS21においてプロセッサー11(暗号化部106)は、暗号化情報を生成する。そして、プロセッサー11は、生成した当該暗号化情報を集約パケットに付与する。
暗号化情報は、IV(initialization vector)、TAG及びSIZEを含む。IVは、ステップS19の暗号化に用いられた初期化ベクトルである。TAGは、ステップS19において求められたMAC値である。SIZEは、暗号化情報の後に続くデータ範囲Rのデータサイズを示す。ただし、IVを認証などの別の方法で交換する場合には、プロセッサー11は、必ずしも毎回暗号化情報にIVを含める必要は無い。
ステップS19〜ステップS21の処理によって、図9に示すように、暗号化前の集約パケット(b1)に基づいて暗号化後の集約パケット(c1)が生成される。
In step S21, the processor 11 (encryption unit 106) generates encryption information. Then, the processor 11 adds the generated encryption information to the aggregate packet.
The encryption information includes IV (initialization vector), TAG, and SIZE. IV is an initialization vector used for the encryption in step S19. TAG is the MAC value obtained in step S19. SIZE indicates the data size of the data range R that follows the encryption information. However, when the IV is exchanged by another method such as authentication, the processor 11 does not necessarily need to include the IV in the encryption information every time.
Through the processing in steps S19 to S21, as shown in FIG. 9, the encrypted aggregate packet (c1) is generated based on the aggregate packet (b1) before encryption.

ステップS22においてプロセッサー11は、ステップS15〜ステップS21の処理によって生成された暗号化後の集約パケットをサーバー装置20に送信するように、第2の通信I/F16(第1送信部107)に対して指示する。この指示を受けて第2の通信I/F16は、当該集約パケットをサーバー装置20に送信する。送信された当該集約パケットは、サーバー装置20の通信I/F25によって受信される。プロセッサー11は、ステップS22の処理の後、ステップS11へと戻る。   In step S22, the processor 11 sends the second communication I / F 16 (first transmission unit 107) to transmit the encrypted aggregated packet generated by the processing in steps S15 to S21 to the server device 20. Instruct. In response to this instruction, the second communication I / F 16 transmits the aggregated packet to the server device 20. The transmitted aggregated packet is received by the communication I / F 25 of the server device 20. The processor 11 returns to step S11 after the process of step S22.

一方、図6のステップS101においてサーバー装置20のプロセッサー21は、通信I/F25によって集約パケットが受信されるのを待ち受けている。プロセッサー21は、集約パケットが受信されたならば、ステップS101においてYesと判定してステップS102へと進む。   On the other hand, in step S101 of FIG. 6, the processor 21 of the server device 20 waits for an aggregate packet to be received by the communication I / F 25. If the aggregated packet is received, the processor 21 determines Yes in step S101 and proceeds to step S102.

ステップS102においてプロセッサー21は、ステップS101で受信された集約パケットを復号する。
ステップS103においてプロセッサー21は、ステップS101で受信された集約パケットのMAC値を検証する。すなわち、プロセッサー21は、集約パケットのMAC値を計算し、集約パケットに含まれるMAC値と一致するか否かを検証する。
なお、集約パケットが認証付き暗号モードで暗号化されている場合、プロセッサー21は、ステップS102とステップS103を同時に行うこととなる。
In step S102, the processor 21 decodes the aggregate packet received in step S101.
In step S103, the processor 21 verifies the MAC value of the aggregate packet received in step S101. That is, the processor 21 calculates the MAC value of the aggregate packet and verifies whether or not it matches the MAC value included in the aggregate packet.
When the aggregate packet is encrypted in the encryption mode with authentication, the processor 21 performs step S102 and step S103 at the same time.

ステップS104においてプロセッサー21は、集約パケットのデータの完全性が保証されているか否かを判定する。プロセッサー21は、ステップS103のMAC値の検証においてMAC値が一致したならば、ステップS104においてNoと判定してステップS105へと進む。   In step S104, the processor 21 determines whether the integrity of the data of the aggregated packet is guaranteed. If the MAC values match in the verification of the MAC value in step S103, the processor 21 determines No in step S104 and proceeds to step S105.

ステップS105においてプロセッサー21は、集約パケットの各ヘッダーに含まれる情報などに基づき、集約パケットを個々の個別パケットに分割する。   In step S105, the processor 21 divides the aggregated packet into individual packets based on information included in each header of the aggregated packet.

ステップS106においてプロセッサー21は、ステップS105において分割された個別パケットのそれぞれを処理バッファーに登録する。プロセッサー21は、ステップS106の処理の後、ステップS101へと戻る。   In step S106, the processor 21 registers each individual packet divided in step S105 in the processing buffer. The processor 21 returns to step S101 after the process of step S106.

対して、プロセッサー21は、ステップS103のMAC値の検証においてMAC値が一致しなかったならば、ステップS104においてYesと判定してステップS107へと進む。例えば、集約パケットが改竄されていた場合など、データが書き換わっていた場合に、MAC値が一致しなくなる。
ステップS107においてプロセッサー21は、ステップS101で受信された集約パケットを破棄する。
On the other hand, if the MAC values do not match in the verification of the MAC value in step S103, the processor 21 determines Yes in step S104 and proceeds to step S107. For example, the MAC values do not match when the data has been rewritten, such as when the aggregate packet has been tampered with.
In step S107, the processor 21 discards the aggregate packet received in step S101.

ステップS108においてプロセッサー21は、集約パケット全体の再送をパケット処理装置10に要求する。プロセッサー21は、ステップS108の処理の後、ステップS101へと戻る。   In step S108, the processor 21 requests the packet processing device 10 to retransmit the entire aggregated packet. The processor 21 returns to step S101 after the process of step S108.

また、図7のステップS111においてプロセッサー21は、処理バッファーに未処理パケットが記憶されているか否かを判定する。プロセッサー21は、処理バッファーに未処理パケットが記憶されているならば、ステップS111においてYesと判定してステップS112へと進む。対して、プロセッサー21は、処理バッファーに未処理パケットが記憶されていないならば、ステップS111においてNoと判定してステップS111を繰り返す。   In step S111 in FIG. 7, the processor 21 determines whether or not an unprocessed packet is stored in the processing buffer. If an unprocessed packet is stored in the processing buffer, the processor 21 determines Yes in step S111 and proceeds to step S112. On the other hand, if an unprocessed packet is not stored in the processing buffer, the processor 21 determines No in step S111 and repeats step S111.

ステップS112においてプロセッサー21は、処理バッファーから未処理パケット1個を取り出し、当該未処理パケットに基づく処理を行う。プロセッサー21は、未処理パケットを取り出すとき、処理バッファーに記憶された当該未処理パケットが処理済みであることが分かるようにする。あるいは、プロセッサー21は、当該未処理パケットを処理バッファーから削除する。当該未処理パケットは、例えば、処理バッファーに記憶されている未処理パケットの中で最初に記憶された未処理パケットである。ここでの処理は、従来のサーバー装置が、クライアント装置30から送信された、集約されていない状態の個別パケットを受信して、当該個別パケットに基づいて行う処理と同様である。   In step S112, the processor 21 extracts one unprocessed packet from the processing buffer, and performs processing based on the unprocessed packet. When the processor 21 takes out the unprocessed packet, the processor 21 knows that the unprocessed packet stored in the processing buffer has been processed. Alternatively, the processor 21 deletes the unprocessed packet from the processing buffer. The unprocessed packet is, for example, an unprocessed packet stored first among the unprocessed packets stored in the processing buffer. The process here is the same as the process that the conventional server apparatus receives from the client apparatus 30 the individual packets that are not aggregated and performs the process based on the individual packets.

ステップS113においてプロセッサー21は、ステップS112の処理内容に基づき、必要に応じて、ステップS112で取り出した個別パケットの送信元であるクライアント装置30に対して返信する応答を生成する。   In step S113, the processor 21 generates a response to be sent back to the client device 30 that is the transmission source of the individual packet extracted in step S112, as necessary, based on the processing content of step S112.

ステップS114においてプロセッサー21は、ステップS113において応答を生成した場合には、当該応答をパケットとしてサーバー集約バッファーに登録する。プロセッサー21は、ステップS114の処理の後、ステップS111へと戻る。   In step S114, when the processor 21 generates a response in step S113, the processor 21 registers the response as a packet in the server aggregation buffer. The processor 21 returns to step S111 after the process of step S114.

また、図8のステップS121においてプロセッサー21は、第2のタイマーをリセットする。第2のタイマーは、サーバー装置20が前回集約パケットを送信してからの経過時間を計測するためのタイマーである。   In step S121 of FIG. 8, the processor 21 resets the second timer. The second timer is a timer for measuring an elapsed time since the server device 20 transmitted the aggregate packet last time.

ステップS122においてプロセッサー21は、第2のタイマーをリセットしてから時間T2以上経過したか否かを判定する。なお、時間T2は、例えば、サーバー装置20の管理者などによって予め設定される。あるいは、時間T2は、サーバー装置20の設計者などによって予め定められていてもよい。プロセッサー21は、第2のタイマーをリセットしてから時間T2が経過していないならば、ステップS122においてNoと判定してステップS123へと進む。   In step S122, the processor 21 determines whether or not the time T2 or more has elapsed since the second timer was reset. The time T2 is set in advance by, for example, an administrator of the server device 20 or the like. Alternatively, the time T2 may be determined in advance by the designer of the server device 20 or the like. If the time T2 has not elapsed since the reset of the second timer, the processor 21 determines No in step S122 and proceeds to step S123.

ステップS123においてプロセッサー21は、サーバー集約バッファーに記憶された未送信の個別パケットのデータ容量の合計が容量D2以上であるか否かを判定する。なお、容量D2は、例えば、サーバー装置20の管理者などによって予め設定される。あるいは、容量D2は、サーバー装置20の設計者などによって予め定められていてもよい。容量D2は、例えば、サーバー装置20が生成する集約パケットのMTUである。プロセッサー21は、サーバー集約バッファーに記憶された未送信の個別パケットのデータ容量の合計が容量D2以上でないならば、ステップS123においてNoと判定してステップS122へと戻る。かくして、プロセッサー21は、第2のタイマーをリセットしてから時間T2が経過したか、サーバー集約バッファーに記憶された未送信の個別パケットのデータ容量の合計が容量D2以上となるまでステップS122及びステップS123を繰り返す。   In step S123, the processor 21 determines whether or not the total data capacity of unsent individual packets stored in the server aggregation buffer is equal to or larger than the capacity D2. The capacity D2 is set in advance by, for example, an administrator of the server device 20 or the like. Alternatively, the capacity D2 may be determined in advance by the designer of the server device 20 or the like. The capacity D2 is, for example, the MTU of the aggregate packet generated by the server device 20. If the total data capacity of the unsent individual packets stored in the server aggregation buffer is not equal to or greater than the capacity D2, the processor 21 determines No in step S123 and returns to step S122. Thus, the processor 21 performs steps S122 and S122 until the time T2 has elapsed since the second timer was reset or the total data capacity of unsent individual packets stored in the server aggregation buffer becomes equal to or greater than the capacity D2. Repeat S123.

プロセッサー21は、ステップS122及びステップS123の待受状態にあるときに、第2のタイマーをリセットしてから時間T2が経過したならば、ステップS122においてYesと判定してステップS124へと進む。   When the time T2 has elapsed since the second timer was reset when the processor 21 is in the standby state of steps S122 and S123, the processor 21 determines Yes in step S122 and proceeds to step S124.

ステップS124においてプロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されているか否かを判定する。プロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されていないならば、ステップS124においてNoと判定してステップS121へと戻る。すなわち、プロセッサー21は、前回集約パケットを送信してから時間T2が経過しても未送信の個別パケットがサーバー集約バッファーに記憶されなかったならば、第2のタイマーをリセットする。対して、プロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されているならば、ステップS124においてYesと判定してステップS125へと進む。
また、プロセッサー21は、ステップS122及びステップS123の待受状態にあるときにサーバー集約バッファーに記憶された未送信の個別パケットのデータ容量の合計が容量D2以上であるならば、ステップS123においてYesと判定してステップS125へと進む。
In step S124, the processor 21 determines whether or not an unsent individual packet is stored in the server aggregation buffer. If an unsent individual packet is not stored in the server aggregation buffer, the processor 21 determines No in step S124 and returns to step S121. That is, the processor 21 resets the second timer if an untransmitted individual packet is not stored in the server aggregation buffer even after time T2 has elapsed since the previous aggregation packet was transmitted. On the other hand, if an unsent individual packet is stored in the server aggregation buffer, the processor 21 determines Yes in step S124 and proceeds to step S125.
On the other hand, if the total data capacity of the unsent individual packets stored in the server aggregation buffer when the processor 21 is in the standby state in steps S122 and S123 is greater than or equal to the capacity D2, the processor 21 determines Yes in step S123. Determine and proceed to step S125.

ステップS125においてプロセッサー21は、サーバー集約バッファーに記憶された未送信の個別パケット1個を取り出す。ここで、プロセッサー21は、個別パケットを取り出すとき、サーバー集約バッファーに記憶された当該個別パケットが送信済みであることが分かるようにする。あるいは、プロセッサー21は、当該個別パケットをサーバー集約バッファーから削除する。当該個別パケットは、例えば、サーバー集約バッファーに記憶されている未送信の個別パケットの中で最初に記憶された個別パケットである。ここで生成される集約パケットは、パケット処理装置10が図4のステップS15で生成するものと同様のものである。   In step S125, the processor 21 extracts one unsent individual packet stored in the server aggregation buffer. Here, when the processor 21 takes out the individual packet, the processor 21 knows that the individual packet stored in the server aggregation buffer has been transmitted. Alternatively, the processor 21 deletes the individual packet from the server aggregation buffer. The individual packet is, for example, an individual packet stored first among unsent individual packets stored in the server aggregation buffer. The aggregated packet generated here is the same as that generated by the packet processing apparatus 10 in step S15 in FIG.

図8のステップS126においてプロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されているか否かを判定する。プロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されているならば、ステップS126においてYesと判定してステップS127へと進む。   In step S126 of FIG. 8, the processor 21 determines whether or not an unsent individual packet is stored in the server aggregation buffer. If an unsent individual packet is stored in the server aggregation buffer, the processor 21 determines Yes in step S126 and proceeds to step S127.

ステップS127においてプロセッサー21は、集約パケットに次の個別パケットを結合した場合の集約パケットのデータ容量が、サーバー装置20が生成する集約パケットの最大データ容量以下となるか否かを判定する。なお、次の個別パケットとは、次に集約の対象となる個別パケットである。例えば、次の個別パケットは、サーバー集約バッファーに記憶されている未送信の個別パケットの中で最初に記憶された個別パケットである。また、サーバー装置20が生成する集約パケットの最大データ容量は、例えば、サーバー装置20の管理者又は設計者などによって予め定められる。あるいは、サーバー装置20が生成する集約パケットの最大データ容量は、サーバー装置20が自動的に決定する。サーバー装置20が生成する集約パケットの最大データ容量は、サーバー装置20のMTUであっても良い。プロセッサー21は、次の個別パケットを結合した場合の集約パケットのデータ容量が、サーバー装置20が生成する集約パケットの最大データ容量以下となるならば、ステップS127においてYesと判定してステップS128へと進む。   In step S127, the processor 21 determines whether or not the data capacity of the aggregate packet when the next individual packet is combined with the aggregate packet is equal to or less than the maximum data capacity of the aggregate packet generated by the server device 20. The next individual packet is an individual packet to be aggregated next. For example, the next individual packet is an individual packet stored first among unsent individual packets stored in the server aggregation buffer. The maximum data capacity of the aggregate packet generated by the server device 20 is determined in advance by, for example, an administrator or a designer of the server device 20. Alternatively, the server device 20 automatically determines the maximum data capacity of the aggregate packet generated by the server device 20. The maximum data capacity of the aggregate packet generated by the server device 20 may be the MTU of the server device 20. If the data capacity of the aggregate packet when the next individual packet is combined is equal to or less than the maximum data capacity of the aggregate packet generated by the server device 20, the processor 21 determines Yes in step S127 and proceeds to step S128. move on.

ステップS128においてプロセッサー21は、サーバー集約バッファーから次のパケットを取り出して、当該次のパケットを集約パケットに結合する。これにより、集約パケットに含まれる個別パケットの数が1つ増える。ここで、プロセッサー21は、個別パケットを取り出すとき、サーバー集約バッファーに記憶された当該個別パケットが送信済みであることが分かるようにする。あるいは、プロセッサー21は、当該個別パケットを集約バッファーから削除する。   In step S128, the processor 21 extracts the next packet from the server aggregation buffer, and combines the next packet with the aggregation packet. As a result, the number of individual packets included in the aggregated packet increases by one. Here, when the processor 21 takes out the individual packet, the processor 21 knows that the individual packet stored in the server aggregation buffer has been transmitted. Alternatively, the processor 21 deletes the individual packet from the aggregation buffer.

プロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されていないならば、ステップS126においてNoと判定してステップS129へと進む。また、プロセッサー21は、次の個別パケットを結合した場合の集約パケットのデータ容量がサーバー装置20のMTUを超えるならば、ステップS127においてNoと判定してステップS129へと進む。
かくして、プロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されていない状態になるか、次の個別パケットを結合した場合の集約パケットのデータ容量がサーバー装置20のMTUを超えるまで、ステップS126〜ステップS128を繰り返す。これにより、(ステップS128の処理を行った回数+1)個の個別パケットが集約された集約パケットが生成される。
If an untransmitted individual packet is not stored in the server aggregation buffer, the processor 21 determines No in step S126 and proceeds to step S129. On the other hand, if the data capacity of the aggregate packet when the next individual packet is combined exceeds the MTU of the server device 20, the processor 21 determines No in step S127 and proceeds to step S129.
Thus, the processor 21 continues until the unsent individual packet is not stored in the server aggregation buffer or the data capacity of the aggregate packet when the next individual packet is combined exceeds the MTU of the server device 20. S126 to step S128 are repeated. As a result, an aggregated packet in which (the number of times the process of step S128 has been performed + 1) individual packets is aggregated is generated.

ステップS129においてプロセッサー21は、ステップS125〜ステップS128の処理によって作成された集約パケットについて、暗号化する範囲を決定する。プロセッサー21は、暗号化範囲の決定を、パケット処理装置10のプロセッサー11が図4のステップS19で行うものと同様にして行う。   In step S129, the processor 21 determines a range to be encrypted for the aggregate packet created by the processing in steps S125 to S128. The processor 21 determines the encryption range in the same manner as the processor 11 of the packet processing apparatus 10 performs in step S19 of FIG.

図8のステップS130においてプロセッサー21は、ステップS129で決定した範囲を暗号化する。プロセッサー21は、暗号化を、パケット処理装置10のプロセッサー11が図4のステップS20で行うものと同様にして行う。
ステップS129及びステップS130の処理が行われることで、集約パケットのうちの暗号化済みでないと判定された範囲が暗号化される。
In step S130 of FIG. 8, the processor 21 encrypts the range determined in step S129. The processor 21 performs encryption in the same manner as that performed by the processor 11 of the packet processing apparatus 10 in step S20 of FIG.
By performing the processing of step S129 and step S130, the range determined not to be encrypted among the aggregated packets is encrypted.

図8のステップS131においてプロセッサー21は、暗号化情報を生成する。そして、プロセッサー21は、生成した当該暗号化情報を集約パケットに付与する。プロセッサー21は、暗号化情報の生成を、パケット処理装置10のプロセッサー11が図4のステップS21で行うものと同様にして行う。   In step S131 of FIG. 8, the processor 21 generates encryption information. Then, the processor 21 adds the generated encryption information to the aggregate packet. The processor 21 generates encryption information in the same manner as the processor 11 of the packet processing apparatus 10 performs in step S21 of FIG.

図8のステップS132においてプロセッサー21は、ステップS125〜ステップS131の処理によって作成された集約パケットをパケット処理装置10に送信するように、通信I/F25に対して指示する。この指示を受けて通信I/F25は、当該集約パケットをパケット処理装置10に送信する。送信された当該集約パケットは、パケット処理装置10の第2の通信I/F16によって受信される。プロセッサー21は、ステップS132の処理の後、ステップS121へと戻る。   In step S132 of FIG. 8, the processor 21 instructs the communication I / F 25 to transmit the aggregate packet created by the processing of steps S125 to S131 to the packet processing device 10. Upon receiving this instruction, the communication I / F 25 transmits the aggregated packet to the packet processing device 10. The transmitted aggregated packet is received by the second communication I / F 16 of the packet processing device 10. The processor 21 returns to step S121 after the process of step S132.

一方、図5のステップS31においてパケット処理装置10のプロセッサー11は、通信I/F25(第2受信部108)によって集約パケットが受信されるのを待ち受けている。プロセッサー11は、集約パケットが受信されたならば、ステップS31においてYesと判定してステップS32へと進む。   On the other hand, in step S31 of FIG. 5, the processor 11 of the packet processing apparatus 10 waits for the aggregated packet to be received by the communication I / F 25 (second receiving unit 108). If the aggregate packet is received, the processor 11 determines Yes in step S31 and proceeds to step S32.

ステップS32においてプロセッサー11(復号部109)は、ステップS31で受信された集約パケットを復号する。
ステップS33においてプロセッサー11(復号部109)は、ステップS31で受信された集約パケットのMAC値を検証する。すなわち、プロセッサー11は、集約パケットのMAC値を計算し、集約パケットに含まれるMAC値と一致するか否かを検証する。
なお、集約パケットが認証付き暗号モードで暗号化されている場合、プロセッサー11は、ステップS32とステップS33を同時に行うこととなる。
In step S32, the processor 11 (decoding unit 109) decodes the aggregated packet received in step S31.
In step S33, the processor 11 (decoding unit 109) verifies the MAC value of the aggregated packet received in step S31. That is, the processor 11 calculates the MAC value of the aggregate packet and verifies whether or not it matches the MAC value included in the aggregate packet.
When the aggregate packet is encrypted in the encryption mode with authentication, the processor 11 performs step S32 and step S33 at the same time.

ステップS34においてプロセッサー11(復号部109)は、集約パケットのデータの完全性が保証されているか否かを判定する。プロセッサー11は、ステップS33のMAC値の検証においてMAC値が一致したならば、ステップS34においてNoと判定してステップS35へと進む。   In step S34, the processor 11 (decoding unit 109) determines whether or not the integrity of the data of the aggregated packet is guaranteed. If the MAC values match in the verification of the MAC value in step S33, the processor 11 determines No in step S34 and proceeds to step S35.

ステップS35においてプロセッサー11(分割部110)は、集約パケットの各ヘッダーに含まれる情報などに基づき、集約パケットを個々の個別パケットに分割する。   In step S35, the processor 11 (dividing unit 110) divides the aggregate packet into individual packets based on information included in each header of the aggregate packet.

ステップS36においてプロセッサー11は、ステップS35において分割された個別パケットのそれぞれを、それぞれの個別パケットの宛先であるクライアント装置30に送信するように第1の通信I/F15(第2送信部111)に対して指示する。この指示を受けて第1の通信I/F15は、当該個別パケットをそれぞれの個別パケットの宛先であるクライアント装置30に送信する。プロセッサー11は、ステップS36の処理の後、ステップS31へと戻る。   In step S36, the processor 11 sends the individual packets divided in step S35 to the first communication I / F 15 (second transmission unit 111) so as to transmit the individual packets to the client device 30 that is the destination of each individual packet. Instruct. In response to this instruction, the first communication I / F 15 transmits the individual packet to the client device 30 that is the destination of each individual packet. The processor 11 returns to step S31 after the process of step S36.

対して、プロセッサー11は、ステップS33のMAC値の検証においてMAC値が一致しなかったならば、ステップS34においてYesと判定してステップS37へと進む。例えば、集約パケットが改竄されていた場合など、データが書き換わっていた場合に、MAC値が一致しなくなる。
ステップS37においてプロセッサー11は、ステップS31で受信された集約パケットを破棄する。
On the other hand, if the MAC values do not match in the verification of the MAC value in step S33, the processor 11 determines Yes in step S34 and proceeds to step S37. For example, the MAC values do not match when the data has been rewritten, such as when the aggregate packet has been tampered with.
In step S37, the processor 11 discards the aggregate packet received in step S31.

ステップS38においてプロセッサー11は、集約パケットの再送をサーバー装置20に要求する。プロセッサー11は、ステップS38の処理の後、ステップS31へと戻る。   In step S38, the processor 11 requests the server device 20 to retransmit the aggregated packet. The processor 11 returns to step S31 after the process of step S38.

第1実施形態の通信システム1によれば、パケット通信装置10及びサーバー装置20は、複数の個別パケットを集約する。これにより、パケット通信装置10の第2の通信I/F16とサーバー装置20の通信I/F25にかかる負荷が低減される。
また、第1実施形態の通信システム1によれば、パケット通信装置10及びサーバー装置20は、集約パケットを暗号化する。これにより、集約プロトコルに付与されるヘッダー情報などの盗聴を防止することができる。また、第1実施形態の通信システム1によれば、パケット通信装置10及びサーバー装置20は、集約パケットにMAC値を付与する。これにより、集約パケットのデータの完全性の検証が可能となる。
さらに、第1実施形態の通信システム1によれば、パケット通信装置10及びサーバー装置20は、暗号化済みの部分を除いて集約パケットを暗号化する。このため、パケット通信装置10及びサーバー装置20は、全体を暗号化する場合に比べて暗号化にかかる時間と復号に係る時間とを低減することができる。これにより、クライアント装置30とサーバー装置20との間のやり取りのリアルタイム性が向上する。
以上より、第1実施形態の通信システム1は、図9の(c1)に示すような集約パケットを用いることで、最低限の負荷で情報の漏洩防止やデータの改竄の検出を行うことが可能となる。また、暗号化及び復号にかかる時間を最小限にすることで、通信のリアルタイム性低下を防ぐことができる。
According to the communication system 1 of the first embodiment, the packet communication device 10 and the server device 20 aggregate a plurality of individual packets. As a result, the load on the second communication I / F 16 of the packet communication device 10 and the communication I / F 25 of the server device 20 is reduced.
Further, according to the communication system 1 of the first embodiment, the packet communication device 10 and the server device 20 encrypt the aggregated packet. Thereby, eavesdropping of header information or the like given to the aggregation protocol can be prevented. Moreover, according to the communication system 1 of 1st Embodiment, the packet communication apparatus 10 and the server apparatus 20 provide a MAC value to an aggregation packet. As a result, the integrity of the data of the aggregate packet can be verified.
Furthermore, according to the communication system 1 of the first embodiment, the packet communication device 10 and the server device 20 encrypt the aggregate packet except for the encrypted portion. For this reason, the packet communication device 10 and the server device 20 can reduce the time required for encryption and the time required for decryption compared to the case where the entire device is encrypted. Thereby, the real-time property of the exchange between the client device 30 and the server device 20 is improved.
As described above, the communication system 1 according to the first embodiment can prevent information leakage and detect data falsification with a minimum load by using an aggregate packet as shown in (c1) of FIG. It becomes. Also, by minimizing the time required for encryption and decryption, it is possible to prevent a decrease in real-time communication performance.

クライアント装置30が駅務装置である場合、クライアント装置30から送信されるリクエストとサーバー装置20から送信されるレスポンスは、データ量が小さく、データの送受信回数も多い。また、自動改札機などでは、特にリアルタイム性が要求される。さらに、クライアント装置30として駅務装置を含む通信システム1では、通信内容に、金銭に関する情報及び個人情報なども含まれるため、送信されるデータの改竄及び盗聴を防ぐ必要がある。以上より、クライアント装置30が駅務装置を含む場合、実施形態の通信システム1は特に有用である。なお、自動改札機が送信する情報は、一例として、入場駅情報、出場駅情報、入場時間、出場時間、ICカードの認証情報、金額情報又はこれらのうちの複数などを含む。   When the client apparatus 30 is a station service apparatus, the request transmitted from the client apparatus 30 and the response transmitted from the server apparatus 20 have a small data amount and a large number of data transmission / reception times. In addition, in an automatic ticket gate or the like, a real-time property is particularly required. Furthermore, in the communication system 1 including the station service device as the client device 30, the communication content includes information related to money, personal information, and the like, and thus it is necessary to prevent tampering and wiretapping of transmitted data. From the above, when the client device 30 includes a station service device, the communication system 1 of the embodiment is particularly useful. The information transmitted by the automatic ticket gate includes, as an example, entrance station information, entry station information, entry time, entry time, IC card authentication information, amount information, or a plurality of these.

〔第2実施形態〕
第2実施形態の通信システム1の構成は、第1実施形態と同様であるので説明を省略する。また、第2実施形態の通信システム1のパケット通信装置10及びサーバー装置20の動作は、第1実施形態と同様であるので説明を省略する。ただし、第2実施形態では、生成される集約パケットが第1実施形態とは異なる。以下、第2実施形態において生成される集約パケットについて図10に基づいて説明する。図10は、第2実施形態に係る集約パケットの一例を説明するための図である。なお、図10において第1実施形態の図2と同様の要素については同一の符号を付している。図10における図2と同様の要素については説明を省略する場合がある。
[Second Embodiment]
Since the configuration of the communication system 1 of the second embodiment is the same as that of the first embodiment, description thereof is omitted. In addition, the operations of the packet communication device 10 and the server device 20 of the communication system 1 of the second embodiment are the same as those of the first embodiment, and thus description thereof is omitted. However, in the second embodiment, the generated aggregate packet is different from that in the first embodiment. Hereinafter, the aggregate packet generated in the second embodiment will be described with reference to FIG. FIG. 10 is a diagram for explaining an example of the aggregated packet according to the second embodiment. In FIG. 10, the same elements as those in FIG. 2 of the first embodiment are denoted by the same reference numerals. Description of elements similar to those in FIG. 2 in FIG. 10 may be omitted.

図10には、暗号化済みである個別パケット1及び個別パケット3と、平文である個別パケット2及び個別パケット4とを含むn個の個別パケットを集約する場合について例示している。第2実施形態の集約パケットは、(b2)に示すように、集約ヘッダー、n個の個別ヘッダー、平文の個別パケット、暗号化済みの個別パケットの順でデータが並んでいる。すなわち、集約パケット(b2)は、暗号化済みでない部分が連続した後に、暗号化済みである部分が連続するような並びである。このように、暗号化済みでないデータが連続して並んでいることで、プロセッサー11及びプロセッサー21は、集約ヘッダー、n個の個別ヘッダー及び平文の個別パケットを一度に暗号化することができる。さらに、暗号化済みであるデータが連続して並んでいることで、プロセッサー11及びプロセッサー21は、暗号化済みの個別パケットを一度にコピーすることができる。   FIG. 10 illustrates a case where n individual packets including individual packets 1 and 3 that have been encrypted and individual packets 2 and 4 that are plaintext are aggregated. In the aggregate packet of the second embodiment, as shown in (b2), data is arranged in the order of an aggregate header, n individual headers, plaintext individual packets, and encrypted individual packets. That is, the aggregated packet (b2) is arranged such that after the non-encrypted parts are continued, the encrypted parts are continued. As described above, the unencrypted data is continuously arranged, so that the processor 11 and the processor 21 can encrypt the aggregate header, the n individual headers, and the plaintext individual packets at a time. Furthermore, since the encrypted data is continuously arranged, the processor 11 and the processor 21 can copy the encrypted individual packets at a time.

第2実施形態の通信システム1によれば、第1実施形態と同様の効果が得られる。
また、第2実施形態の通信システム1によれば、またCBCなど、暗号の利用モードによっては暗号化されるデータが分散すると、ブロック長に満たない部分をパディングで埋める必要があり、実装方法によっては個別ヘッダーごとにパディングが発生する可能性がある。特に、個々の個別パケットサイズが小さい場合、集約パケット全体にパディングが占める割合が大きくなり、集約パケットのデータサイズが大きくなってしまう。そこで、第2実施形態のように暗号化対象のデータを集約パケット中の一か所にまとめて集約パケットを構成することで、集約パケットのデータサイズの増大を防ぐことができる。また、一度に暗号化及び復号を行うことができるので、処理速度の向上が見込める。したがって、第2実施形態の通信システム1は、図10に(b2)及び(c2)に示すような集約パケットを用いることで、リアルタイム性を向上させることができる。
According to the communication system 1 of the second embodiment, the same effect as that of the first embodiment can be obtained.
Also, according to the communication system 1 of the second embodiment, when data to be encrypted is distributed depending on the encryption usage mode, such as CBC, it is necessary to pad a portion that is less than the block length with padding. May cause padding for each individual header. In particular, when the individual packet size is small, the ratio of padding to the entire aggregate packet increases, and the data size of the aggregate packet increases. Therefore, by increasing the data size of the aggregate packet by configuring the aggregate packet by collecting the data to be encrypted in one place in the aggregate packet as in the second embodiment. In addition, since encryption and decryption can be performed at once, an improvement in processing speed can be expected. Therefore, the communication system 1 of the second embodiment can improve the real-time property by using the aggregate packet as shown in (b2) and (c2) in FIG.

〔第3実施形態〕
第2実施形態の通信システム1の構成は、第1実施形態と同様であるので説明を省略する。ただし、第2実施形態のRAM13又は補助記憶デバイス14は、再送リスト及び受信済みリストを記憶する。再送リストは、パケット処理装置10が再送を要求する個別パケットのリストである。再送リストは、例えば、再送を要求する個別パケットのそれぞれに関連付けられたシーケンス番号を記憶することで、当該個別パケットを登録する。受信済みリストは、パケット処理装置10に正常に到着した個別パケットのリストである。受信済みリストは、例えば、正常に到着した個別パケットのそれぞれに関連付けられたシーケンス番号を記憶することで、当該個別パケットを登録する。シーケンス番号は、個別パケットごとにユニークに付与される識別子の一例である。
また、第3実施形態のパケット集約装置は、図2に代えて図11に示すような機能構成である。図11は、第3実施形態に係るパケット処理装置10の機能構成を示すブロック図である。第3実施形態に係るパケット処理装置10は、第1受信部101、集約バッファー102、周期管理部103、結合部104、範囲選択部105、第1送信部107、第2受信部108、分割部110、第2送信部111、冗長化部121、到着管理部122、再送要求部123、暗号化部124及び復号部125を含む。
[Third Embodiment]
Since the configuration of the communication system 1 of the second embodiment is the same as that of the first embodiment, description thereof is omitted. However, the RAM 13 or the auxiliary storage device 14 of the second embodiment stores the retransmission list and the received list. The retransmission list is a list of individual packets for which the packet processing apparatus 10 requests retransmission. The retransmission list registers the individual packet by storing, for example, a sequence number associated with each individual packet that requests retransmission. The received list is a list of individual packets that have normally arrived at the packet processing apparatus 10. The received list registers the individual packet by storing, for example, a sequence number associated with each normally arrived individual packet. The sequence number is an example of an identifier uniquely assigned to each individual packet.
Further, the packet aggregation device of the third embodiment has a functional configuration as shown in FIG. 11 instead of FIG. FIG. 11 is a block diagram illustrating a functional configuration of the packet processing apparatus 10 according to the third embodiment. The packet processing apparatus 10 according to the third embodiment includes a first receiving unit 101, an aggregation buffer 102, a cycle management unit 103, a combining unit 104, a range selecting unit 105, a first transmitting unit 107, a second receiving unit 108, and a dividing unit. 110, a second transmission unit 111, a redundancy unit 121, an arrival management unit 122, a retransmission request unit 123, an encryption unit 124, and a decryption unit 125.

冗長化部121は、暗号化された集約パケットを複数回送信するために、結合部104から渡された集約パケットを複製する機能を有する。そして、冗長化部121は、第1送信部107に集約パケットを複数回渡して、複数回送信を依頼する機能を有する。例えば、プロセッサー11が冗長化部121として機能する。   The redundancy unit 121 has a function of replicating the aggregate packet passed from the combining unit 104 in order to transmit the encrypted aggregate packet a plurality of times. The redundancy unit 121 has a function of passing the aggregate packet to the first transmission unit 107 a plurality of times and requesting the transmission a plurality of times. For example, the processor 11 functions as the redundancy unit 121.

到着管理部122は、パケットの到着回数を管理する機能を有し、クライアント装置30に個別パケットを送信するか判断する機能を有する。到着管理部122は、復号部125から渡された個別パケットのシーケンス番号などの識別子を用いて個別パケットの到着回数を管理する。そして、到着管理部122は、個別パケットが初めて到着した際には第2送信部111を呼び出してクライアント装置30に当該個別パケットを送信する。一方で、到着管理部122は、2度目以降の個別パケットの到着では、当該個別パケットを破棄する。これにより、複数回送信された集約パケットに含まれる個別パケットのうち、最初に到着した個別パケットのみをクライアント装置30に送信することができる。また、到着管理部122は、個別パケットの識別子から個別パケットの消失を検出する機能も有する。すなわち、例えば、到着管理部122は、個別パケットの識別子としてシーケンス番号を利用する場合には、シーケンス番号の数字が飛んだ場合には、飛んだ数字に対応する個別パケットが消失したと判定する。例えば、到着管理部122は、到着した個別パケットのシーケンス番号が1,2,4である場合には、飛んでいるシーケンス番号3の個別パケットが消失したと判定する。そして、到着管理部122は、例えば、再送要求部123に、飛んでいるシーケンス番号を再送リストへ登録するように要求する。そして、到着管理部122は、飛んでいるシーケンス番号の個別パケットが後から到着した際には、当該飛んでいるシーケンス番号を再送リストから削除するように再送要求部123に要求する。例えば、プロセッサー11が到着管理部122として機能する。   The arrival management unit 122 has a function of managing the number of arrivals of a packet, and a function of determining whether to transmit an individual packet to the client device 30. The arrival management unit 122 manages the number of arrivals of the individual packet using an identifier such as a sequence number of the individual packet passed from the decoding unit 125. Then, when the individual packet arrives for the first time, the arrival management unit 122 calls the second transmission unit 111 and transmits the individual packet to the client device 30. On the other hand, the arrival management unit 122 discards the individual packet when the individual packet arrives for the second time or later. As a result, among the individual packets included in the aggregate packet transmitted a plurality of times, only the individual packet that arrives first can be transmitted to the client device 30. The arrival management unit 122 also has a function of detecting the loss of the individual packet from the identifier of the individual packet. That is, for example, when the sequence number is used as the identifier of the individual packet, the arrival management unit 122 determines that the individual packet corresponding to the skipped number is lost when the number of the sequence number is skipped. For example, if the sequence number of the arrived individual packet is 1, 2, or 4, the arrival management unit 122 determines that the individual packet with the sequence number 3 that has been lost has been lost. Then, for example, the arrival management unit 122 requests the retransmission request unit 123 to register the flying sequence number in the retransmission list. Then, when an individual packet having a flying sequence number arrives later, the arrival management unit 122 requests the retransmission request unit 123 to delete the flying sequence number from the retransmission list. For example, the processor 11 functions as the arrival management unit 122.

再送要求部123は、集約バッファー102に再送要求用のパケットを登録する機能を有する。例えば、再送要求部302は、再送リストで指定されている個別パケットを一定間隔ごとに全て再送要求する。あるいは、再送要求部123は、再送リストに登録されている個別パケットごとに、再送要求を送信させた回数に応じて再送要求する間隔を変化させても良い。例えば、再送要求部123は、再送要求のパケットが送信された回数が0回の個別パケットについては、到着した個別パケットの番号が飛んでいることが検出されたらすぐに再送要求を送信させる。そして、再送要求部123は、再送要求を送信させた回数が多いほど、次に再送要求を送信させるまでの時間を長くする。また、再送要求部123は、再送リストが溢れることを防ぐため、一定回数再送要求を送っても到着しない個別パケットについては、再送リストから登録解除しても良い。あるいは、再送要求部123は、再送リストが溢れそうになるたびに、再送リストに登録された個別パケットを、登録が古い順から登録解除しても良い。あるいは、再送要求部123は、再送リストが溢れそうになるたびに、登録されている中でシーケンス番号が最も若い個別パケットを、登録解除しても良い。例えば、プロセッサー11が再送要求部123として機能する。   The retransmission request unit 123 has a function of registering a retransmission request packet in the aggregation buffer 102. For example, the retransmission request unit 302 requests retransmission of all individual packets specified in the retransmission list at regular intervals. Alternatively, the retransmission request unit 123 may change the retransmission request interval for each individual packet registered in the retransmission list according to the number of times the retransmission request is transmitted. For example, the retransmission request unit 123 causes the retransmission request to be transmitted as soon as it is detected that the number of the arrived individual packet is skipped for the individual packet whose number of retransmission request packets is 0. Then, the retransmission request unit 123 increases the time until the next retransmission request is transmitted as the number of times the retransmission request is transmitted increases. Further, the retransmission request unit 123 may deregister the individual packet that does not arrive even if the retransmission request is sent a predetermined number of times in order to prevent the retransmission list from overflowing. Alternatively, every time the retransmission list is about to overflow, the retransmission request unit 123 may deregister individual packets registered in the retransmission list from the oldest registration. Alternatively, every time the retransmission list is about to overflow, the retransmission request unit 123 may deregister the individual packet with the lowest sequence number among the registered ones. For example, the processor 11 functions as the retransmission request unit 123.

また、最新のシーケンス番号のパケットが消失した場合にも再送要求を送信するため、到着管理部122は、定期的に、サーバー装置20から、送信済みの個別パケットの最大のシーケンス番号を取得する。そして、到着管理部122は、取得したシーケンス番号が、到着済みの個別パケットのうちの最大のシーケンス番号よりも大きいか否かを判定する。そして、到着管理部122は、サーバー装置20から取得したシーケンス番号の方が大きい場合には、到着済みの個別パケットのうちの最大のシーケンス番号+1〜取得したシーケンス番号を再送リストに登録させるように再送要求部123に要求する。   In addition, since the retransmission request is transmitted even when the packet with the latest sequence number is lost, the arrival management unit 122 periodically obtains the maximum sequence number of the transmitted individual packet from the server device 20. Then, the arrival management unit 122 determines whether or not the acquired sequence number is larger than the maximum sequence number of the individual packets that have arrived. Then, when the sequence number acquired from the server device 20 is larger, the arrival management unit 122 causes the maximum sequence number of the individual packets that have arrived + 1 to register the acquired sequence number in the retransmission list. Requests to the retransmission request unit 123.

また、再送要求部123は、サーバー装置20から明示的に再送要求のパケットを受け付ける機能を持っていても良い。再送要求部123は、当該再送要求のパケットを受け付けた場合、集約バッファー102に含まれる送信済みのパケットを再度送信するようにフラグ設定する。これにより、周期管理部103は、集約バッファー102からサーバー装置20に送信するパケットを取り出す際に、当該フラグが設定されたパケットを取り出すようになる。したがって、周期管理部103は、サーバー装置20の要求に応じたパケットの再送が可能となる。   The retransmission request unit 123 may have a function of explicitly receiving a retransmission request packet from the server device 20. When receiving the retransmission request packet, the retransmission request unit 123 sets a flag so that the transmitted packet included in the aggregation buffer 102 is transmitted again. As a result, when the cycle management unit 103 extracts a packet to be transmitted from the aggregation buffer 102 to the server device 20, the cycle management unit 103 extracts a packet in which the flag is set. Therefore, the cycle management unit 103 can retransmit a packet in response to a request from the server device 20.

暗号化部124は、第1実施形態とは異なる後述するような方法で集約パケットの暗号化及び複数のMAC値の付与などを行う機能を有する。   The encryption unit 124 has a function of performing encryption of aggregated packets, assignment of a plurality of MAC values, and the like by a method described later, which is different from the first embodiment.

復号部125は、集約パケットに含まれる複数のMAC値ごとにデータの完全性を検証する機能を有する。また、復号部125は、集約パケットの暗号化された部分を復号する。そして、復号部125は、集約ヘッダーに改竄が検出された場合には、集約パケット全体を破棄する機能を有する。また、復号部125は、集約パケットに含まれる個別パケットのうちの改竄が検出された個別パケットを破棄する。そして、復号部125は、改竄が検出されなかった個別パケットについては、到着管理部122に渡す。   The decoding unit 125 has a function of verifying data integrity for each of a plurality of MAC values included in the aggregate packet. In addition, the decryption unit 125 decrypts the encrypted part of the aggregate packet. The decoding unit 125 has a function of discarding the entire aggregate packet when tampering is detected in the aggregate header. Also, the decoding unit 125 discards the individual packet in which tampering is detected among the individual packets included in the aggregated packet. Then, the decoding unit 125 passes the individual packet for which tampering has not been detected to the arrival management unit 122.

以下、第3実施形態に係る通信システム1の動作を図12及び図13に基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図12及び図13は、パケット処理装置10のプロセッサー11による処理のフローチャートである。   Hereinafter, the operation of the communication system 1 according to the third embodiment will be described with reference to FIGS. 12 and 13. Note that the content of the processing in the following description of the operation is an example, and various processing that can obtain the same result can be used as appropriate. 12 and 13 are flowcharts of processing by the processor 11 of the packet processing apparatus 10.

第3実施形態では、パケット処理装置10は、第1実施形態と同様に図3及び図4に示す処理と同様の処理により、集約パケットの生成及び送信などを行う。また、サーバー装置20は、第1実施形態と同様に図7及び図8に示す処理と同様の処理により、集約パケットの生成及び送信などを行う。ただし、第3実施形態では、生成される集約パケットが、第1実施形態及び第2実施形態とは異なる。第3実施形態において生成される集約パケットについて図14に基づいて説明する。図14は、第3実施形態に係る集約パケットの一例を説明するための図である。   In the third embodiment, the packet processing apparatus 10 generates and transmits an aggregate packet by the same processing as the processing shown in FIGS. 3 and 4 as in the first embodiment. Further, the server device 20 generates and transmits an aggregate packet by the same processing as the processing shown in FIGS. 7 and 8 as in the first embodiment. However, in the third embodiment, the generated aggregate packet is different from that in the first embodiment and the second embodiment. An aggregate packet generated in the third embodiment will be described with reference to FIG. FIG. 14 is a diagram for explaining an example of the aggregated packet according to the third embodiment.

図14には、暗号化済みである個別パケット1と、平文である個別パケット2とを含むn個の個別パケットを集約する場合について例示している。第3実施形態の集約パケットの集約ヘッダー、個別ヘッダー及び個別パケットの順序は、例えば、(b3)及び(c3)に示すように第1実施形態と同様である。すなわち、個別パケットそれぞれに対して、個別パケット単位で暗号化が行われる。
ただし、第3実施形態の暗号化後の集約パケットは(c3)は、暗号化情報として、複数のMAC値を含む。プロセッサー11又はプロセッサー21は、これら複数のMAC値を、集約パケットのうちの改竄検出を行いたい単位でそれぞれ計算及び付与を行う。例えば、第3実施形態の暗号化後の集約パケット(c3)は、暗号化情報として、例えば、IV、TAGA、TAG0、TAG1、TAG2、…TAGn及びSIZEを含む。
TAGAは、集約パケット全体に対するMAC値である。
TAG0は、集約ヘッダーに対するMAC値である。
TAGk(kは、n以下の自然数)は、個別ヘッダーkと個別パケットkとの組のMAC値である。なお、個別パケットkに既にMAC値が付与されている場合には、TAGkは、個別ヘッダーkのMAC値であっても良い。すなわち、TAG1〜nは、個別パケット単位で付与されるMAC値である。
単位でMAC値の付与が行われている。
なお、プロセッサー11(暗号化部124)又はプロセッサー21は、集約パケットに含まれる一部の個別パケットが改竄された場合に、別の個別パケットの復号を可能とするため、MAC値の計算と暗号化を同じ単位で行う事が好ましい。あるいは、プロセッサー11(暗号化部124)又はプロセッサー21は、集約パケットに含まれる一部の個別パケットが改竄された場合に、別の個別パケットの復号を可能とするため、CTR(Counter)モードなどの、ブロックごとに独立で復号でき、他のブロックの改ざんが復号結果に影響しない暗号利用モードを用いる。これは、集約パケット全体をCBCモードなど、暗号化がチェインするモードで復号すると、前ブロックの改竄が後ろのブロックの復号結果に影響するためである。また、プロセッサー11(暗号化部124)又はプロセッサー21は、集約パケット内に含まれる個別パケットを識別し、個々の個別パケット毎に再送などの処理を行えるようにするため、個別ヘッダーにシーケンス番号などの識別子を含めることが好ましい。このシーケンス番号は、集約パケット毎にリセットせず、インクリメントする。例えば、1番目の集約パケットにシーケンス番号1,2,3の個別パケットが含まれた場合には、次の集約パケットである2番目の集約パケットに含まれるパケットのシーケンス番号は、4から開始することとなる。
FIG. 14 illustrates a case where n individual packets including the individual packet 1 that has been encrypted and the individual packet 2 that is plaintext are aggregated. The order of the aggregate header, individual header, and individual packet of the aggregate packet of the third embodiment is the same as that of the first embodiment as shown in (b3) and (c3), for example. That is, encryption is performed for each individual packet in units of individual packets.
However, the encrypted aggregate packet of the third embodiment (c3) includes a plurality of MAC values as encryption information. The processor 11 or the processor 21 calculates and assigns the plurality of MAC values in units in which it is desired to detect falsification in the aggregated packet. For example, the encrypted aggregate packet (c3) of the third embodiment includes, for example, IV, TAG, TAG0, TAG1, TAG2,... TAGn and SIZE as the encryption information.
TAGA is a MAC value for the entire aggregated packet.
TAG0 is the MAC value for the aggregate header.
TAGk (k is a natural number equal to or less than n) is a MAC value of a set of an individual header k and an individual packet k. Note that if the MAC value is already assigned to the individual packet k, TAGk may be the MAC value of the individual header k. That is, TAG1 to n are MAC values given in units of individual packets.
The MAC value is assigned in units.
Note that the processor 11 (encryption unit 124) or the processor 21 calculates and encrypts the MAC value in order to enable decryption of another individual packet when some of the individual packets included in the aggregate packet are tampered. It is preferable to perform the conversion in the same unit. Alternatively, the processor 11 (encryption unit 124) or the processor 21 can decrypt another individual packet when a part of the individual packet included in the aggregated packet is tampered. The cipher usage mode is used in which each block can be decrypted independently, and alteration of other blocks does not affect the decryption result. This is because if the entire aggregate packet is decrypted in a mode in which encryption is chained, such as the CBC mode, the alteration of the previous block affects the decryption result of the subsequent block. Further, the processor 11 (encryption unit 124) or the processor 21 identifies individual packets included in the aggregated packet, and in order to perform processing such as retransmission for each individual packet, a sequence number or the like is included in the individual header. Is preferably included. This sequence number is incremented without being reset for each aggregated packet. For example, if the first aggregated packet includes individual packets with sequence numbers 1, 2, and 3, the sequence number of the packet included in the second aggregated packet that is the next aggregated packet starts from 4. It will be.

また、第3実施形態では、パケット処理装置10及びサーバー装置20は、図4のステップS22又は図8のステップS132において、同一の集約パケットを複数回送信する。送信回数は、例えば2回である。なお、パケット処理装置10及びサーバー装置20は、集約パケットの送信元から送信先までの経路が複数ある場合には、送信ごとに異なる経路を通じて同一の集約パケットを送信しても良い。   In the third embodiment, the packet processing device 10 and the server device 20 transmit the same aggregated packet a plurality of times in step S22 of FIG. 4 or step S132 of FIG. The number of transmissions is, for example, twice. Note that the packet processing device 10 and the server device 20 may transmit the same aggregate packet through different routes for each transmission when there are a plurality of routes from the transmission source to the transmission destination of the aggregate packet.

図12のステップS41においてパケット処理装置10のプロセッサー11は、第2の通信I/F16(第2受信部108)によって集約パケットが受信されるのを待ち受けている。プロセッサー11は、集約パケットが受信されたならば、ステップS41においてYesと判定してステップS42へと進む。   In step S41 of FIG. 12, the processor 11 of the packet processing apparatus 10 waits for the aggregated packet to be received by the second communication I / F 16 (second reception unit 108). If the aggregate packet is received, the processor 11 determines Yes in step S41, and proceeds to step S42.

ステップS42においてプロセッサー11(復号部125)は、集約パケット全体のMAC値であるTAGAを検証する。すなわち、プロセッサー11は、ステップS41で受信された集約パケット全体のMAC値を計算し、当該集約パケットに含まれるTAGAと一致するか否かを検証する。   In step S42, the processor 11 (decoding unit 125) verifies the TAGA that is the MAC value of the entire aggregated packet. That is, the processor 11 calculates the MAC value of the entire aggregate packet received in step S41, and verifies whether or not it matches the TAGA included in the aggregate packet.

ステップS43においてプロセッサー11(復号部125)は、ステップS41で受信された集約パケット全体のデータの完全性が保証されているか否かを判定する。プロセッサー11は、ステップS43のMAC値の検証においてMAC値が一致したならば、ステップS43においてNoと判定してステップS44へと進む。   In step S43, the processor 11 (decoding unit 125) determines whether the integrity of the data of the entire aggregate packet received in step S41 is guaranteed. If the MAC values match in the verification of the MAC value in step S43, the processor 11 determines No in step S43 and proceeds to step S44.

ステップS44においてプロセッサー11(分割部110)は、ステップS41で受信された集約パケットを個々の個別ヘッダーと個別パケットとの組に分割する。ここで、個別ヘッダーと個別パケットとの組とは、例えば、個別ヘッダー1と個別パケット1との組、個別ヘッダー2と個別パケット2との組、又は個別ヘッダーnと個別パケットnとの組などである。   In step S44, the processor 11 (dividing unit 110) divides the aggregated packet received in step S41 into a set of individual headers and individual packets. Here, the group of the individual header and the individual packet is, for example, a group of the individual header 1 and the individual packet 1, a group of the individual header 2 and the individual packet 2, or a group of the individual header n and the individual packet n. It is.

ステップS45においてプロセッサー11(復号部125)は、ステップS44で分割された個別ヘッダーと個別パケットとの組それぞれを復号する。   In step S45, the processor 11 (decoding unit 125) decodes each pair of the individual header and the individual packet divided in step S44.

対して、プロセッサー11は、ステップS43のMAC値の検証においてMAC値が一致しなかったならば、ステップS43においてYesと判定してステップS46へと進む。例えば、ステップS41で受信された集約パケットが改竄されていた場合など、データが書き換わっていた場合に、MAC値(TAGA)が一致しなくなる。
ステップS46においてプロセッサー11(復号部125)は、集約ヘッダーを復号する。
On the other hand, if the MAC values do not match in the verification of the MAC value in step S43, the processor 11 determines Yes in step S43 and proceeds to step S46. For example, when the data has been rewritten, such as when the aggregate packet received in step S41 has been tampered with, the MAC values (TAGA) do not match.
In step S46, the processor 11 (decoding unit 125) decodes the aggregate header.

ステップS47においてプロセッサー11(復号部125)は、集約ヘッダーのMAC値を検証する。すなわち、プロセッサー11は、集約ヘッダーのMAC値を計算し、ステップS41で受信された集約パケットに含まれるTAG0と一致するか否かを検証する。   In step S47, the processor 11 (decoding unit 125) verifies the MAC value of the aggregate header. That is, the processor 11 calculates the MAC value of the aggregate header, and verifies whether or not it matches TAG0 included in the aggregate packet received in step S41.

ステップS48においてプロセッサー11(復号部125)は、集約ヘッダーのデータの完全性が保証されているか否かを判定する。プロセッサー11は、ステップS47のMAC値の検証においてMAC値が一致したならば、ステップS48においてNoと判定してステップS49へと進む。   In step S48, the processor 11 (decoding unit 125) determines whether or not the integrity of the data of the aggregate header is guaranteed. If the MAC values match in the verification of the MAC value in step S47, the processor 11 determines No in step S48 and proceeds to step S49.

ステップS49においてプロセッサー11(分割部110)は、ステップS41で受信された集約パケットを個々の個別ヘッダーと個別パケットとの組に分割する。   In step S49, the processor 11 (dividing unit 110) divides the aggregate packet received in step S41 into a set of individual headers and individual packets.

ステップS50においてプロセッサー11(復号部125)は、ステップS49で分割された個別ヘッダーと個別パケットとの組それぞれを復号する。   In step S50, the processor 11 (decoding unit 125) decodes each pair of the individual header and the individual packet divided in step S49.

ステップS51においてプロセッサー11(復号部125)は、個別ヘッダーと個別パケットとの組それぞれについて、MAC値を検証する。すなわち、プロセッサー11は、個別ヘッダーと個別パケットとの組それぞれについてMAC値を計算し、対応するそれぞれの個別ヘッダーと個別パケットとの組についてのTAGと一致するか否かを検証する。   In step S51, the processor 11 (decoding unit 125) verifies the MAC value for each pair of the individual header and the individual packet. That is, the processor 11 calculates the MAC value for each pair of individual header and individual packet, and verifies whether or not the TAG for each corresponding pair of individual header and individual packet matches.

ステップS52においてプロセッサー11(復号部125)は、集約ヘッダーのデータの完全性が保証されていない個別ヘッダーと個別パケットとの組を破棄する。すなわち、プロセッサー11は、ステップS51においてMAC値が一致しなかった個別ヘッダーと個別パケットとの組を破棄する。例えば、個別ヘッダー又は個別パケットが改竄されていた場合など、データが書き換わっていた場合に、対応するMAC値(TAG1〜TAGn)が一致しなくなる。   In step S52, the processor 11 (decoding unit 125) discards the set of the individual header and the individual packet whose integrity of the aggregate header data is not guaranteed. That is, the processor 11 discards the pair of the individual header and the individual packet whose MAC values did not match in step S51. For example, when data is rewritten, such as when an individual header or an individual packet is falsified, the corresponding MAC values (TAG1 to TAGn) do not match.

プロセッサー11は、ステップS45又はステップS52の処理の後、ステップS53へと進む。
ステップS53においてプロセッサー11(到着管理部122)は、ステップS45又はステップS50で復号した個別パケットのうち、受信済みの個別パケットを破棄する。
The processor 11 proceeds to step S53 after the process of step S45 or step S52.
In step S53, the processor 11 (arrival management unit 122) discards the received individual packet among the individual packets decoded in step S45 or step S50.

ステップS54においてプロセッサー11(再送要求部123及び到着管理部122)は、再送リスト及び受信済みリストを更新する。すなわち、プロセッサー11は、ステップS45又はステップS50で復号した個別パケットのうち、ステップS52及びステップS53のいずれにおいても破棄されなかった個別パケットのシーケンス番号を受信済みリストに登録する。また、プロセッサー11は、受信済みリストに登録したシーケンス番号と同一のシーケンス番号が再送リストに登録されている場合には、当該シーケンス番号を再送リストから削除する。さらに、プロセッサー11は、ステップS50で復号した個別パケットのうち、ステップS52で破棄した個別パケットのシーケンス番号が、受信済みリストに登録されていない場合には、当該シーケンス番号を再送リストに登録する。また、プロセッサー11は、受信済みリストに登録された最大のシーケンス番号未満のシーケンス番号のうち、再送リストにも受信済みリストにも登録されていないシーケンス番号がある場合には、当該シーケンス番号を再送リストに登録する。加えて、プロセッサー11は、サーバー装置20から、送信済みの個別パケットの最大シーケンス番号を取得しても良い。そして、プロセッサー11は、サーバー装置20から取得した最大シーケンス番号以下のシーケンス番号のうち、再送リストにも受信済みリストにも登録されていないシーケンス番号がある場合には、当該シーケンス番号を再送リストに登録する。   In step S54, the processor 11 (the retransmission request unit 123 and the arrival management unit 122) updates the retransmission list and the received list. That is, the processor 11 registers, in the received list, the sequence numbers of the individual packets that were not discarded in either step S52 or step S53 among the individual packets decoded in step S45 or step S50. In addition, when the same sequence number as the sequence number registered in the received list is registered in the retransmission list, the processor 11 deletes the sequence number from the retransmission list. Further, when the sequence number of the individual packet discarded in step S52 among the individual packets decoded in step S50 is not registered in the received list, the processor 11 registers the sequence number in the retransmission list. In addition, when there is a sequence number that is not registered in the retransmission list or the received list among the sequence numbers less than the maximum sequence number registered in the received list, the processor 11 retransmits the sequence number. Register to the list. In addition, the processor 11 may obtain the maximum sequence number of the transmitted individual packet from the server device 20. Then, when there is a sequence number that is not registered in the retransmission list or the received list among the sequence numbers equal to or less than the maximum sequence number acquired from the server device 20, the processor 11 stores the sequence number in the retransmission list. sign up.

ステップS55においてプロセッサー11(再送要求部123)は、ステップS45又はステップS50で復号した個別パケットのうち、ステップS52及びステップS53のいずれにおいても破棄されなかった個別パケットのそれぞれを、それぞれの個別パケットの宛先であるクライアント装置30に送信するように第1の通信I/F15(第2送信部111)に対して指示する。この指示を受けて第1の通信I/F15は、当該個別パケットのそれぞれを、それぞれの個別パケットの宛先であるクライアント装置30に送信する。送信された当該個別パケットは、それぞれ宛先であるクライアント装置30の通信I/F35によって受信される。プロセッサー11は、ステップS55の処理の後、ステップS41へと戻る。   In step S55, the processor 11 (retransmission request unit 123) replaces the individual packets that were not discarded in either step S52 or step S53 among the individual packets decoded in step S45 or step S50 with the respective individual packets. The first communication I / F 15 (second transmission unit 111) is instructed to transmit to the destination client device 30. In response to this instruction, the first communication I / F 15 transmits each individual packet to the client device 30 that is the destination of each individual packet. The transmitted individual packets are received by the communication I / F 35 of the client device 30 that is the destination. The processor 11 returns to step S41 after the process of step S55.

対して、プロセッサー11は、ステップS43のMAC値の検証においてMAC値が一致しなかったならば、ステップS48においてYesと判定してステップS56へと進む。例えば、集約ヘッダーが改竄されていた場合など、データが書き換わっていた場合に、MAC値(TAG0)が一致しなくなる。
ステップS56においてプロセッサー11(復号部125)は、ステップS41で受信された集約パケットを破棄する。
On the other hand, if the MAC values do not match in the verification of the MAC value in step S43, the processor 11 determines Yes in step S48 and proceeds to step S56. For example, when the data is rewritten, for example, when the aggregation header is falsified, the MAC value (TAG0) does not match.
In step S56, the processor 11 (decoding unit 125) discards the aggregated packet received in step S41.

ステップS57においてプロセッサー11(再送要求部123及び到着管理部122)は、再送リストを更新する。すなわち、プロセッサー11は、ステップS56で破棄した集約パケットに含まれる個別パケットのシーケンス番号が、受信済みリストに登録されていない場合には、当該シーケンス番号を再送リストに登録する。また、プロセッサー11は、サーバー装置20から、送信済みの個別パケットの最大シーケンス番号を取得しても良い。そして、プロセッサー11は、サーバー装置20から取得した最大シーケンス番号以下のシーケンス番号のうち、再送リストにも受信済みリストにも登録されていないシーケンス番号がある場合には、当該シーケンス番号を再送リストに登録する。プロセッサー11は、ステップS57の処理の後、ステップS41へと戻る。   In step S57, the processor 11 (the retransmission request unit 123 and the arrival management unit 122) updates the retransmission list. In other words, when the sequence number of the individual packet included in the aggregate packet discarded in step S56 is not registered in the received list, the processor 11 registers the sequence number in the retransmission list. Further, the processor 11 may acquire the maximum sequence number of the transmitted individual packet from the server device 20. Then, when there is a sequence number that is not registered in the retransmission list or the received list among the sequence numbers equal to or less than the maximum sequence number acquired from the server device 20, the processor 11 stores the sequence number in the retransmission list. sign up. The processor 11 returns to step S41 after the process of step S57.

また、図13のステップS61においてプロセッサー11は、第3のタイマーをリセットする。第3のタイマーは、パケット処理装置10が前回再送要求パケットを集約バッファー102に登録してからの経過時間を計測するためのタイマーである。   In step S61 of FIG. 13, the processor 11 resets the third timer. The third timer is a timer for measuring an elapsed time since the packet processing apparatus 10 registered the previous retransmission request packet in the aggregation buffer 102.

ステップS62においてプロセッサー11は、第3のタイマーをリセットしてから時間T3以上経過するのを待ち受ける。なお、時間T3は、例えば、パケット処理装置10の管理者などによって予め設定される。あるいは、時間T3は、パケット処理装置10の設計者などによって予め定められていてもよい。プロセッサー11は、第3のタイマーをリセットしてから時間T3以上経過したならば、ステップS62においてYesと判定してステップS63へと進む。   In step S62, the processor 11 waits for the elapse of time T3 or more after resetting the third timer. Note that the time T3 is set in advance by, for example, an administrator of the packet processing apparatus 10 or the like. Alternatively, the time T3 may be determined in advance by the designer of the packet processing device 10 or the like. If the time T3 or more has elapsed after resetting the third timer, the processor 11 determines Yes in step S62 and proceeds to step S63.

ステップS63においてプロセッサー11は、サーバー装置20を宛先とする再送要求パケットを集約バッファー102に登録する。再送要求パケットには、例えば、再送リストに登録されたシーケンス番号が含まれる。なお、プロセッサー11は、例えば、再送要求パケットを個別パケットとして集約バッファー10に登録する。したがって、再送要求パケットは、集約バッファー10に登録された他の個別パケットとともに集約されて、集約パケットに含まれる。そして、当該再送要求パケットは、集約パケットに含まれた状態でサーバー装置20に送信される。プロセッサー11は、ステップS63の処理の後、ステップS61へと戻る。
一方、再送要求パケットは、サーバー装置20のプロセッサー21によって処理バッファーに登録される。そして、プロセッサー21は、図7のステップS112において処理バッファーに登録された再送要求パケットに基づき、当該再送要求パケットに含まれるシーケンス番号で特定される個別パケットをサーバー集約バッファーに登録する。例えば、プロセッサー21は、サーバー集約バッファーに当該個別パケットが送信済み状態として記憶されている場合には、当該個別パケットを未送信状態に戻す。あるいは、プロセッサー21は、サーバー集約バッファーに当該個別パケットが記憶されていない場合には、当該個別パケットをサーバー集約バッファーに記憶させる。なお、プロセッサー21は、次の個別パケットとして、サーバー集約バッファーに記憶されている未送信の個別パケットの中で最もシーケンス番号が若いものを選択しても良い。
In step S <b> 63, the processor 11 registers a retransmission request packet destined for the server device 20 in the aggregation buffer 102. The retransmission request packet includes, for example, a sequence number registered in the retransmission list. The processor 11 registers, for example, the retransmission request packet as an individual packet in the aggregation buffer 10. Therefore, the retransmission request packets are aggregated together with other individual packets registered in the aggregation buffer 10 and are included in the aggregate packet. Then, the retransmission request packet is transmitted to the server device 20 in a state of being included in the aggregate packet. The processor 11 returns to step S61 after the process of step S63.
On the other hand, the retransmission request packet is registered in the processing buffer by the processor 21 of the server device 20. Then, based on the retransmission request packet registered in the processing buffer in step S112 in FIG. 7, the processor 21 registers the individual packet specified by the sequence number included in the retransmission request packet in the server aggregation buffer. For example, when the individual packet is stored in the server aggregation buffer as a transmitted state, the processor 21 returns the individual packet to an untransmitted state. Alternatively, when the individual packet is not stored in the server aggregation buffer, the processor 21 stores the individual packet in the server aggregation buffer. Note that the processor 21 may select, as the next individual packet, the one with the smallest sequence number among the untransmitted individual packets stored in the server aggregation buffer.

また、サーバー装置20についても、プロセッサー21は、図12及び図13に示す処理と同様の処理により、集約パケットの復号、分割、MAC検証及び再送要求などを行う。また、パケット処理装置10についても、サーバー装置20と同様に、サーバー装置20から再送要求パケットを受け取った場合には、当該再送要求パケットに含まれるシーケンス番号で特定される個別パケットを、サーバー装置20が再送要求パケットを受け取った場合の処理と同様の処理を行うことで、サーバー装置20に再送する。   Also for the server apparatus 20, the processor 21 performs decoding, division, MAC verification, retransmission request, and the like of the aggregated packet by the same processing as the processing shown in FIGS. 12 and 13. Similarly to the server device 20, when the packet processing device 10 receives a retransmission request packet from the server device 20, the individual packet specified by the sequence number included in the retransmission request packet is transmitted to the server device 20. By performing the same processing as when the retransmission request packet is received, the packet is retransmitted to the server device 20.

以上説明したようなパケット処理装置10及びサーバー装置20の処理により行われる通信を、一例を挙げて図15を用いて説明する。図15は、第3実施形態に係る通信システム1の情報の流れの一例を示すシーケンス図である。   Communication performed by the processes of the packet processing apparatus 10 and the server apparatus 20 as described above will be described with reference to FIG. FIG. 15 is a sequence diagram illustrating an example of information flow of the communication system 1 according to the third embodiment.

ステップST1においてサーバー装置20は、集約パケットをパケット処理装置10に送信する。なお、当該集約パケットには、一例として、シーケンス番号1〜6の6つの個別パケットが含まれるものとする。また、サーバー装置20は、一例として、当該集約パケットを2回、パケット処理装置10に送信するものとする。   In step ST1, the server device 20 transmits the aggregated packet to the packet processing device 10. Note that the aggregated packet includes six individual packets with sequence numbers 1 to 6 as an example. Moreover, the server apparatus 20 shall transmit the said aggregation packet to the packet processing apparatus 10 twice as an example.

パケット処理装置10は、サーバー装置20がステップST1で2回送信した集約パケットを受信する。ここで、ステップST1の1回目に送信された集約パケットのうち、シーケンス番号4番と5番の個別パケットが改竄されていたものとする。パケット処理装置10は、MAC値の検証により、この改竄を検出することができる。したがって、パケット処理装置10は、ステップST1の1回目に送信された集約パケットのうち、シーケンス番号4番と5番の個別パケットを破棄する。また、ステップST1の2回目に送信された集約パケットのうち、シーケンス番号が3番と5番の個別パケットが改竄されていたものとする。パケット処理装置10は、MAC値の検証により、この改竄を検出することができる。したがって、パケット処理装置10は、ステップST1の2回目に送信された集約パケットのうち、シーケンス番号3番と5番の個別パケットを破棄する。
シーケンス番号1、2及び6番の個別パケットは、2回送信された集約パケットのいずれにおいても改竄されていないので、パケット処理装置10に正常に到着している。シーケンス番号3番及び4番の個別パケットは、2回送信された集約パケットのうちの片方のみが改竄されていたので、もう片方については、パケット処理装置10に正常に到着している。しかしながら、シーケンス番号5番の個別パケットは、2回送信された集約パケットのいずれにおいて改竄されているので、いずれにおいても破棄されている。
The packet processing device 10 receives the aggregate packet transmitted twice by the server device 20 in step ST1. Here, it is assumed that individual packets with sequence numbers 4 and 5 have been tampered with among the aggregated packets transmitted for the first time in step ST1. The packet processing apparatus 10 can detect this falsification by verifying the MAC value. Therefore, the packet processing apparatus 10 discards the individual packets with the sequence numbers 4 and 5 among the aggregated packets transmitted at the first time in step ST1. Further, it is assumed that the individual packets having the sequence numbers 3 and 5 have been tampered among the aggregated packets transmitted for the second time in step ST1. The packet processing apparatus 10 can detect this falsification by verifying the MAC value. Therefore, the packet processing apparatus 10 discards the individual packets having the sequence numbers 3 and 5 among the aggregated packets transmitted at the second time in step ST1.
The individual packets with the sequence numbers 1, 2 and 6 have not been falsified in any of the aggregate packets transmitted twice, and thus have arrived normally at the packet processing device 10. Since only one of the aggregated packets transmitted twice has been tampered with the individual packets with sequence numbers 3 and 4, the other has arrived normally at the packet processing device 10. However, the individual packet with the sequence number 5 is discarded in any one of the aggregated packets transmitted twice.

ステップST2においてパケット処理装置10は、正常に到着しているシーケンス番号1〜4及び6番の個別パケットを、それぞれの宛先であるクライアント装置30に送信する。なお、図15に示すクライアント装置30には、1又は複数のクライアント装置30が含まれるものとする。   In step ST <b> 2, the packet processing device 10 transmits the individual packets having the sequence numbers 1 to 4 and 6 that have arrived normally to the client device 30 that is the respective destination. Note that the client device 30 illustrated in FIG. 15 includes one or more client devices 30.

ステップST3においてパケット処理装置10は、シーケンス番号5番の個別パケットを再送するようにサーバー装置20に要求するため、再送要求をサーバー装置20に送信する。   In step ST <b> 3, the packet processing device 10 transmits a retransmission request to the server device 20 in order to request the server device 20 to retransmit the individual packet having the sequence number 5.

再送要求を受け取ったサーバー装置20は、シーケンス番号5番の個別パケットを含む集約パケットを生成する。このとき、サーバー集約バッファーには、シーケンス番号7番の個別パケットが登録されているものとする。したがって、サーバー装置20は、シーケンス番号5番の個別パケットに加えてシーケンス番号7番の個別パケットをも含む集約パケットを生成する。
そして、ステップST4においてサーバー装置20は、生成した集約パケットをパケット処理装置10に送信する。なお、サーバー装置20は、一例として、生成した当該集約パケットを2回、パケット処理装置10に送信するものとする。
Receiving the retransmission request, the server device 20 generates an aggregate packet including the individual packet with the sequence number 5. At this time, it is assumed that an individual packet of sequence number 7 is registered in the server aggregation buffer. Accordingly, the server device 20 generates an aggregate packet including an individual packet with a sequence number of 7 in addition to an individual packet with a sequence number of 5.
In step ST4, the server device 20 transmits the generated aggregate packet to the packet processing device 10. In addition, the server apparatus 20 shall transmit the produced | generated said aggregation packet to the packet processing apparatus 10 twice as an example.

パケット処理装置10は、サーバー装置20がステップST4で2回送信した集約パケットを受信する。ここで、ステップST4の1回目に送信された集約パケットのうち、集約ヘッダーが改竄されていたものとする。パケット処理装置10は、MAC値の検証により、この改竄を検出することができる。したがって、パケット処理装置10は、ステップST1の1回目に送信された集約パケットを破棄する。また、ステップST4の2回目に送信された集約パケットは改竄されていないものとする。したがって、シーケンス番号5番と7番の個別ヘッダーは、パケット処理装置10に正常に到着している。   The packet processing device 10 receives the aggregate packet transmitted twice by the server device 20 in step ST4. Here, it is assumed that the aggregate header of the aggregate packet transmitted for the first time in step ST4 has been falsified. The packet processing apparatus 10 can detect this falsification by verifying the MAC value. Therefore, the packet processing device 10 discards the aggregate packet transmitted for the first time in step ST1. Also, it is assumed that the aggregate packet transmitted for the second time in step ST4 has not been tampered with. Therefore, the individual headers with sequence numbers 5 and 7 have arrived normally at the packet processing device 10.

ステップST5においてパケット処理装置10は、正常に到着しているシーケンス番号5及び7番の個別パケットを、それぞれの宛先であるクライアント装置30に送信する。   In step ST5, the packet processing apparatus 10 transmits the individual packets with the sequence numbers 5 and 7 that have arrived normally to the client apparatus 30 that is the destination.

第3実施形態の通信システム1によれば、パケット処理装置10及びサーバー装置20は、受信した集約パケットに含まれる個別パケットが、改竄されているなどしてデータの完全性の保証が得られなかった場合には、集約パケットのうちの改竄されている個別パケットだけを再送要求する。このため、集約パケットに含まれる個別パケットのうちの一部だけが改竄されている場合には、当該集約パケット全体を再送することが不要である。対して、従来では、改竄などが一部に対するものであっても当該集約パケット全体の再送が必要となる。したがって、第3実施形態の通信システム1では、再送されるデータの量が従来よりも少ない。また、再送の頻度も減少するので、従来よりもリアルタイム性が向上する。   According to the communication system 1 of the third embodiment, the packet processing device 10 and the server device 20 cannot guarantee data integrity because the individual packets included in the received aggregate packet have been tampered with. In such a case, only the individual packet that has been tampered with in the aggregated packet is requested to be retransmitted. For this reason, when only a part of the individual packets included in the aggregate packet is falsified, it is not necessary to retransmit the entire aggregate packet. On the other hand, conventionally, it is necessary to retransmit the entire aggregated packet even if falsification or the like is for a part. Therefore, in the communication system 1 of the third embodiment, the amount of data to be retransmitted is smaller than in the past. In addition, since the frequency of retransmission is also reduced, the real-time performance is improved as compared with the prior art.

また、第3実施形態の通信システム1によれば、パケット処理装置10及びサーバー装置20は、集約パケットを一度に複数回送信する。これにより、集約パケットを受信したパケット処理装置10又はサーバー装置20は、一度目に受信した集約パケットに含まれる個別パケットを破棄した場合でも、すぐに次の集約パケットを受信する。したがって、当該パケット処理装置10又はサーバー装置20は、再送を要求したことによって再送される個別パケットを受信するよりもすぐに、破棄した個別パケットを受け取ることができる。これにより、リアルタイム性が向上する。   Further, according to the communication system 1 of the third embodiment, the packet processing device 10 and the server device 20 transmit the aggregated packet a plurality of times at a time. Thus, the packet processing device 10 or the server device 20 that has received the aggregate packet immediately receives the next aggregate packet even when the individual packet included in the aggregate packet received for the first time is discarded. Therefore, the packet processing apparatus 10 or the server apparatus 20 can receive the discarded individual packet immediately after receiving the individual packet retransmitted due to the request for retransmission. Thereby, real-time property improves.

第1実施形態〜第3実施形態は以下のような変形も可能である。
パケット処理装置10は、ネットワークNW1、ネットワークNW2又はその両方に接続する機能を備えていなくても良い。そして、パケット処理装置10に接続される装置がネットワークNW1、ネットワークNW2又はその両方に接続して、サーバー装置20又はクライアント装置30などと通信を行っても良い。
パケット処理装置10は、ネットワークNW2を介さずにUSB(universal serial bus)などのバスによってサーバー装置20と接続されていても良い。また、サーバー装置20がパケット処理装置10を内蔵していても良い。
The first to third embodiments can be modified as follows.
The packet processing apparatus 10 may not have a function of connecting to the network NW1, the network NW2, or both. A device connected to the packet processing device 10 may connect to the network NW1, the network NW2, or both to communicate with the server device 20 or the client device 30.
The packet processing device 10 may be connected to the server device 20 via a bus such as a USB (universal serial bus) without going through the network NW2. Further, the server device 20 may incorporate the packet processing device 10.

プロセッサー11は、ステップS13において、容量D1に代えて、集約バッファー102に記憶されている未送信の個別パケットの数が予め定められた数以上になったか否かを判定しても良い。また、プロセッサー21は、ステップS123において、容量D2に代えて、サーバー集約バッファーに記憶されている未送信の個別パケットの数が予め定められた数以上になったか否かを判定しても良い。上記の態様は、個別パケットのデータサイズがほとんど一定であるような場合などに用いることができる。   In step S13, the processor 11 may determine whether or not the number of untransmitted individual packets stored in the aggregation buffer 102 has reached a predetermined number or more instead of the capacity D1. In step S123, the processor 21 may determine whether or not the number of unsent individual packets stored in the server aggregation buffer is equal to or greater than a predetermined number, instead of the capacity D2. The above aspect can be used when the data size of the individual packet is almost constant.

プロセッサー11又はプロセッサー21は、集約するパケットを全て集約バッファー102又はサーバー集約バッファーから取り出し、その後に集約を行っても良い。   The processor 11 or the processor 21 may extract all the packets to be aggregated from the aggregation buffer 102 or the server aggregation buffer, and then perform aggregation.

パケット処理装置10又はサーバー装置20は、送信する個別パケットが1個のみ場合には集約パケットの形にせずにそのまま送信しても良い。   When only one individual packet is transmitted, the packet processing device 10 or the server device 20 may transmit the packet as it is without forming an aggregate packet.

第1実施形態の通信システム1は、破棄したパケットの再送を要求しない態様であっても良い。すなわち、プロセッサー11は、ステップS38をスキップしてステップS31へと進む。また、プロセッサー21は、ステップS108をスキップしてステップS101へと進む。   The communication system 1 according to the first embodiment may be in a mode that does not request retransmission of a discarded packet. That is, the processor 11 skips step S38 and proceeds to step S31. Further, the processor 21 skips step S108 and proceeds to step S101.

第1実施形態〜第3実施形態では、サーバー装置20が1台である例について示した。しかしながら、複数のサーバー装置20がネットワークNWに接続されていても良い。この場合、パケット処理装置10は、受信した個別パケットを、例えば、宛先となるサーバー装置20が同じものだけを対象として集約を行う。すなわち、パケット処理装置10は、宛先別に集約パケットを生成及び送信する。   In the first to third embodiments, an example in which there is one server device 20 has been described. However, a plurality of server devices 20 may be connected to the network NW. In this case, the packet processing device 10 aggregates the received individual packets, for example, only for the same destination server device 20. That is, the packet processing device 10 generates and transmits an aggregate packet for each destination.

複数のパケット処理装置10を用いて、例えば、2地点間の通信を効率化することができる。例えば、第1のパケット処理装置10及び第1のパケット処理装置10と通信可能な複数の装置(以下「装置a」という。)がA地点に、第2のパケット処理装置10及び第2のパケット処理装置10と通信可能な複数の装置(以下「装置b」という。)がB地点に設置されているとする。この場合、第1のパケット処理装置10は、複数の装置aから送信された、装置bを宛先とする個別パケットを集約した集約パケットを第2のパケット処理装置10に送信する。そして、第2のパケット処理装置10は、受信した当該集約パケットを個々の個別パケットに分割し、それぞれの個別パケットをそれぞれの宛先である装置bに送信する。また、第2のパケット処理装置10は、複数の装置bから送信された、装置aを宛先とする個別パケットを集約した集約パケットを第1のパケット処理装置10に送信する。そして、第1のパケット処理装置10は、受信した当該集約パケットを個々の個別パケットに分割し、それぞれの個別パケットをそれぞれの宛先である装置aに送信する。   Using a plurality of packet processing devices 10, for example, communication between two points can be made efficient. For example, the first packet processing device 10 and a plurality of devices that can communicate with the first packet processing device 10 (hereinafter referred to as “device a”) are located at the point A, and the second packet processing device 10 and the second packet. It is assumed that a plurality of devices (hereinafter referred to as “device b”) capable of communicating with the processing device 10 are installed at the B point. In this case, the first packet processing device 10 transmits to the second packet processing device 10 an aggregate packet obtained by aggregating individual packets destined for the device b and transmitted from the plurality of devices a. Then, the second packet processing device 10 divides the received aggregated packet into individual packets, and transmits each individual packet to the device b that is each destination. In addition, the second packet processing device 10 transmits to the first packet processing device 10 an aggregate packet obtained by aggregating individual packets destined for the device a and transmitted from the plurality of devices b. Then, the first packet processing device 10 divides the received aggregated packet into individual packets, and transmits each individual packet to each destination device a.

第1実施形態〜第3実施形態に示す通信システム1は、サーバークライアントモデルであるが、サーバークライアントモデルには限らない。   The communication system 1 shown in the first to third embodiments is a server client model, but is not limited to the server client model.

通信システム1は、MAC以外を用いてデータの完全性の保証及び検証を行っても良い。例えば、通信システム1は、MIC(message integrity code)を用いる。MICは、データの完全性を保証するための符号の一例である。   The communication system 1 may guarantee and verify the integrity of data using other than the MAC. For example, the communication system 1 uses a message integrity code (MIC). The MIC is an example of a code for guaranteeing data integrity.

パケット処理装置10及びサーバー装置20は、集約パケットに誤り訂正符号を付与しても良い。   The packet processing device 10 and the server device 20 may add an error correction code to the aggregated packet.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.

1……通信システム、10……パケット集約装置、11,21,31……プロセッサー、12,22,32……ROM、13,23,33……RAM、14,24,34……補助記憶デバイス、15……第1の通信I/F、16……第2の通信I/F、20……サーバー装置、25,35……通信I/F、30……クライアント装置、101……第1受信部、102……集約バッファー、103……周期管理部、104……結合部、105……範囲選択部、106,124……暗号化部、107……第1送信部、108……第2受信部、109,125……復号部、110……分割部、111……第2送信部、121……冗長化部、122……再送要求部、123……到着管理部 DESCRIPTION OF SYMBOLS 1 ... Communication system, 10 ... Packet aggregation apparatus, 11, 21, 31 ... Processor, 12, 22, 32 ... ROM, 13, 23, 33 ... RAM, 14, 24, 34 ... Auxiliary storage device , 15... First communication I / F, 16... Second communication I / F, 20... Server device, 25 and 35 .. Communication I / F, 30. Receiving unit 102 ... Aggregation buffer 103 ... Period management unit 104 ... Combining unit 105 ... Range selection unit 106, 124 ... Encryption unit 107 ... First transmission unit 108 ... First 2 receiving unit 109 109 125 decoding unit 110 dividing unit 111 second transmission unit 121 redundancy unit 122 retransmission request unit 123 arrival management unit

Claims (20)

個別パケットを受信する受信部と、
前記受信部によって受信された複数の個別パケットを集約した集約パケットを生成し、生成した前記集約パケットのうちの暗号化済みでないと判定した範囲を暗号化する、処理部と、
前記処理部によって暗号化された集約パケットを送信する送信部と、を備えた、パケット集約装置。
A receiver for receiving individual packets;
A processing unit that generates an aggregate packet that aggregates a plurality of individual packets received by the reception unit, and that encrypts a range that is determined not to be encrypted among the generated aggregate packet;
And a transmission unit that transmits the aggregated packet encrypted by the processing unit.
前記処理部は、生成した前記集約パケットのうちの、データの完全性を保証するための符号が付与されていないと判定した範囲に、データの完全性を保証するための符号を付与する、請求項1に記載のパケット集約装置。   The processing unit assigns a code for guaranteeing data integrity to a range determined to have no code for guaranteeing data integrity in the generated aggregate packet. Item 4. The packet aggregation device according to Item 1. 前記処理部は、暗号化済みでないと判定した部分が連続するように集約パケットを生成する、請求項1又は請求項2に記載のパケット集約装置。   The packet aggregation device according to claim 1 or 2, wherein the processing unit generates an aggregation packet so that portions determined to be not encrypted are continuous. 前記処理部は、
前記集約パケットを、前記集約パケットに含まれる個別パケット単位で暗号化し、
前記集約パケットに対して、前記集約パケットに含まれる個別パケット単位でデータの完全性を保証するための符号を付与する、請求項1又は請求項2に記載のパケット集約装置。
The processor is
The aggregate packet is encrypted in units of individual packets included in the aggregate packet,
The packet aggregation device according to claim 1 or 2, wherein a code for guaranteeing data integrity is assigned to the aggregated packet in units of individual packets included in the aggregated packet.
前記処理部は、前記集約パケットを複数回送信させるように前記送信部を制御する、請求項1乃至請求項4のいずれか1項に記載のパケット集約装置。   5. The packet aggregation device according to claim 1, wherein the processing unit controls the transmission unit to cause the aggregation packet to be transmitted a plurality of times. 前記処理部は、前記集約パケットを少なくとも2種類の経路で送信させるように前記送信部を制御する、請求項5に記載のパケット集約装置。   The packet aggregation device according to claim 5, wherein the processing unit controls the transmission unit to transmit the aggregated packet through at least two types of routes. 複数の個別パケットを集約した集約パケットを生成し、生成した前記集約パケットのうちの暗号化済みでないと判定した範囲を暗号化する、パケット集約装置によって生成され送信された集約パケットから、前記集約パケットに含まれる前記個別パケットを分割する、処理部を備えた、パケット分割装置。   From the aggregate packet generated and transmitted by the packet aggregator that generates an aggregate packet in which a plurality of individual packets are aggregated and encrypts a range determined to be not encrypted among the generated aggregate packets, the aggregate packet A packet dividing apparatus comprising a processing unit for dividing the individual packets included in the packet. 前記集約パケットに、データの完全性が保証されない個別パケットが含まれる場合、データの完全性が保証されない個別パケットを破棄する、請求項7に記載のパケット分割装置。   The packet division device according to claim 7, wherein when the aggregate packet includes an individual packet whose data integrity is not guaranteed, the packet division apparatus according to claim 7, wherein the individual packet whose data integrity is not guaranteed is discarded. 前記集約パケットに含まれる集約ヘッダーのデータの完全性が保証されない場合、前記集約パケット全体を破棄する、請求項7又は請求項8に記載のパケット分割装置。   The packet division device according to claim 7 or 8, wherein when the integrity of the data of the aggregate header included in the aggregate packet is not guaranteed, the entire aggregate packet is discarded. 前記集約パケットに含まれる個別パケットのうち、データの完全性が保証される個別パケットを到着済みとして記録し、
前記集約パケットに含まれる個別パケットのうち、到着済みとして記録されている個別パケットを破棄する、請求項7乃至請求項9のいずれか1項に記載のパケット分割装置。
Of the individual packets included in the aggregated packet, record an individual packet that guarantees data integrity as having arrived,
The packet division device according to claim 7, wherein among the individual packets included in the aggregated packet, the individual packet recorded as having arrived is discarded.
前記集約パケットは、前記パケット集約装置によって、前記集約パケットに含まれる個別パケットのそれぞれに識別子を付与され、
前記処理部は、送信済みで且つ未到着の個別パケットを前記識別子によって判定し、未到着の個別パケットの再送を前記パケット集約装置に要求する、請求項7乃至請求項10のいずれか1項に記載のパケット分割装置。
The aggregate packet is given an identifier to each individual packet included in the aggregate packet by the packet aggregation device,
11. The method according to claim 7, wherein the processing unit determines a transmitted and unarrived individual packet based on the identifier, and requests the packet aggregation device to retransmit the unarrived individual packet. The packet dividing apparatus as described.
パケット集約装置とパケット分割装置とを含み、
前記パケット集約装置は、
複数の個別パケットを集約した集約パケットを生成し、生成した前記集約パケットのうちの暗号化済みでないと判定した範囲を暗号化する、第1の処理部と、
複数の個別パケットが集約された集約パケットをパケット分割装置に送信する第1の通信部と、を備え、
前記パケット分割装置は、
前記パケット集約装置から送信された前記集約パケットを受信する第2の通信部と、
前記第2の通信部によって受信された集約パケットから、前記集約パケットに含まれる前記個別パケットを分割する第2の処理部と、を備える
パケット通信システム。
Including a packet aggregator and a packet divider,
The packet aggregation device includes:
A first processing unit that generates an aggregate packet by aggregating a plurality of individual packets, and encrypts a range determined to be not encrypted among the generated aggregate packets;
A first communication unit that transmits an aggregated packet in which a plurality of individual packets are aggregated to a packet division device,
The packet dividing device includes:
A second communication unit that receives the aggregate packet transmitted from the packet aggregation device;
A packet communication system comprising: a second processing unit that divides the individual packet included in the aggregated packet from the aggregated packet received by the second communication unit.
パケット集約装置が備えるコンピューターを、
複数の個別パケットを集約して、複数の個別パケットを含む集約パケットを生成し、生成した前記集約パケットのうちの暗号化済みでないと判定した範囲を暗号化する、処理部として機能させる、プログラム。
A computer with a packet aggregator
A program that functions as a processing unit that aggregates a plurality of individual packets, generates an aggregate packet including the plurality of individual packets, and encrypts a range determined to be not encrypted among the generated aggregate packets.
パケット分割装置が備えるコンピューターを、
複数の個別パケットを集約した集約パケットを生成し、生成した前記集約パケットのうちの暗号化済みでないと判定した範囲を暗号化する、パケット集約装置によって生成され送信された集約パケットから、前記集約パケットに含まれる前記個別パケットを分割する、処理部として機能させる、プログラム。
A computer provided in the packet splitting device,
The aggregated packet is generated from the aggregated packet generated and transmitted by the packet aggregating apparatus that generates an aggregated packet by aggregating a plurality of individual packets, and encrypts a range determined to be not encrypted among the generated aggregated packets. A program for dividing the individual packet included in the program to function as a processing unit.
複数のパケットが集約された集約パケットデータを生成する生成部を備え、
前記集約パケットデータは、前記複数のパケットのそれぞれがヘッダー部とペイロード部とを含み、前記集約パケットデータに含まれる複数のペイロード部が複数の鍵で暗号化され、前記集約パケットデータに含まれる複数のヘッダー部が同一の鍵で暗号化されている、パケット生成装置。
A generation unit that generates aggregate packet data in which a plurality of packets are aggregated,
In the aggregate packet data, each of the plurality of packets includes a header portion and a payload portion, and a plurality of payload portions included in the aggregate packet data are encrypted with a plurality of keys, and a plurality of packets included in the aggregate packet data are included. The packet generator is encrypted with the same key.
前記集約パケットデータは、複数の前記ヘッダー部が連続している、請求項15に記載のパケット生成装置。   The packet generation device according to claim 15, wherein the aggregated packet data includes a plurality of the header portions continuous. 前記集約パケットデータは、前記パケットのそれぞれに対してデータの完全性を保証するための符号と識別子とが付与されている、請求項15に記載のパケット生成装置。   The packet generation device according to claim 15, wherein the aggregated packet data is provided with a code and an identifier for guaranteeing data integrity for each of the packets. 複数のパケットが集約された集約パケットデータを生成するパケット生成方法であって、
前記集約パケットデータは、前記複数のパケットのそれぞれがヘッダー部とペイロード部とを含み、前記集約パケットデータに含まれる複数のペイロード部が複数の鍵で暗号化され、前記集約パケットデータに含まれる複数のヘッダー部が同一の鍵で暗号化されている、パケット生成方法。
A packet generation method for generating aggregate packet data in which a plurality of packets are aggregated,
In the aggregate packet data, each of the plurality of packets includes a header portion and a payload portion, and a plurality of payload portions included in the aggregate packet data are encrypted with a plurality of keys, and a plurality of packets included in the aggregate packet data are included. A packet generation method in which the header part is encrypted with the same key.
パケット生成装置が備えるコンピューターを、
複数のパケットが集約された集約パケットデータを生成する生成部として機能させ、
前記集約パケットデータは、前記複数のパケットのそれぞれがヘッダー部とペイロード部とを含み、前記集約パケットデータに含まれる複数のペイロード部が複数の鍵で暗号化され、前記集約パケットデータに含まれる複数のヘッダー部が同一の鍵で暗号化されている、プログラム。
A computer included in the packet generator
Let it function as a generator that generates aggregate packet data in which multiple packets are aggregated,
In the aggregate packet data, each of the plurality of packets includes a header portion and a payload portion, and a plurality of payload portions included in the aggregate packet data are encrypted with a plurality of keys, and a plurality of packets included in the aggregate packet data are included. A program whose header part is encrypted with the same key.
複数の個別パケットが集約され、前記個別パケットが個別パケット単位でデータの完全性を保証するための符号を付与された集約パケットを受信し、
受信した前記集約パケットに、データの完全性が保証されない前記個別パケットが含まれる場合、データの完全性が保証されない前記個別パケットの再送を要求する、通信方法。
A plurality of individual packets are aggregated, and the individual packets receive an aggregate packet to which a code for guaranteeing data integrity is provided in units of individual packets;
A communication method of requesting retransmission of the individual packet whose data integrity is not guaranteed when the received aggregate packet includes the individual packet whose data integrity is not guaranteed.
JP2017181740A 2017-09-21 2017-09-21 Packet aggregation device, packet division device, packet communication system, program, packet generation device, packet generation method and communication method Active JP7000090B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017181740A JP7000090B2 (en) 2017-09-21 2017-09-21 Packet aggregation device, packet division device, packet communication system, program, packet generation device, packet generation method and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017181740A JP7000090B2 (en) 2017-09-21 2017-09-21 Packet aggregation device, packet division device, packet communication system, program, packet generation device, packet generation method and communication method

Publications (2)

Publication Number Publication Date
JP2019057846A true JP2019057846A (en) 2019-04-11
JP7000090B2 JP7000090B2 (en) 2022-01-19

Family

ID=66106319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017181740A Active JP7000090B2 (en) 2017-09-21 2017-09-21 Packet aggregation device, packet division device, packet communication system, program, packet generation device, packet generation method and communication method

Country Status (1)

Country Link
JP (1) JP7000090B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3579022B2 (en) 2001-11-29 2004-10-20 松下電器産業株式会社 Encryption device and decryption device
JP2007036834A (en) 2005-07-28 2007-02-08 Canon Inc Encryption apparatus, program, recording medium, and method
JP2014039111A (en) 2012-08-13 2014-02-27 Nec Commun Syst Ltd Transmission system, transmission device and transmission method

Also Published As

Publication number Publication date
JP7000090B2 (en) 2022-01-19

Similar Documents

Publication Publication Date Title
US11229023B2 (en) Secure communication in network access points
US11316677B2 (en) Quantum key distribution node apparatus and method for quantum key distribution thereof
US11909870B2 (en) ECDHE key exchange for mutual authentication using a key server
CN104160674B (en) Content center network
US7349396B2 (en) Content distribution system
WO2019128753A1 (en) Quantum key mobile service method with low delay
US20170149748A1 (en) Secure Group Messaging and Data Steaming
EP3633949A1 (en) Method and system for performing ssl handshake
US20140013101A1 (en) Communication device, key generating device, and computer readable medium
CN110690961B (en) Quantum network function virtualization method and device
CN110677241B (en) Quantum network virtualization architecture method and device
US10699031B2 (en) Secure transactions in a memory fabric
JP6592851B2 (en) Anonymous broadcast method, key exchange method, anonymous broadcast system, key exchange system, communication device, program
US20210306308A1 (en) Communication method between mesh network and cloud server, mesh network system and node device thereof
US20200092302A1 (en) Data Packet Sending Method, Network Device, Control Device, and Network System
KR20150135032A (en) System and method for updating secret key using physical unclonable function
US9049140B2 (en) Backbone network with policy driven routing
Tennekoon et al. Prototype implementation of fast and secure traceability service over public networks
JP2010004390A (en) Communication apparatus, key server and data
JP7000090B2 (en) Packet aggregation device, packet division device, packet communication system, program, packet generation device, packet generation method and communication method
CN113595964A (en) Connection tracking synchronization method, device, medium and equipment
KR101880999B1 (en) End to end data encrypting system in internet of things network and method of encrypting data using the same
JP6211818B2 (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, PROGRAM, AND COMMUNICATION SYSTEM
JP5361970B2 (en) Communication system, first communication device, second communication device, encrypted communication method, and program
JP5448700B2 (en) Communication system, collection device, and key update method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210623

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211223

R150 Certificate of patent or registration of utility model

Ref document number: 7000090

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150