JP7000090B2 - 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 PDFInfo
- Publication number
- JP7000090B2 JP7000090B2 JP2017181740A JP2017181740A JP7000090B2 JP 7000090 B2 JP7000090 B2 JP 7000090B2 JP 2017181740 A JP2017181740 A JP 2017181740A JP 2017181740 A JP2017181740 A JP 2017181740A JP 7000090 B2 JP7000090 B2 JP 7000090B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- aggregated
- individual
- packets
- processor
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明の実施形態は、パケット集約装置、パケット分割装置、パケット通信システム、プログラム、パケット生成装置、パケット生成方法及び通信方法に関する。 An embodiment of the present invention relates 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, a large number of axes may occur from the client to the server. In such a case, the load on the network or the server increases. In particular, when processing a large number of small-sized packets, the processing load on the network interface of the server increases.
本発明の実施形態が解決しようとする課題は、処理負荷を低減し、リアルタイム性の低下を抑える、パケット集約装置、パケット分割装置、パケット通信システム、プログラム、パケット生成装置、パケット生成方法及び通信方法を提供することである。 The problem to be solved by the 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 the processing load and suppress the deterioration of real-time performance. Is to provide.
実施形態のパケット処理装置は、受信部、処理部及び送信部を含む。受信部は、個別パケットを受信する。処理部は、前記受信部によって受信された複数の個別パケットを集約した集約パケットを生成し、生成した前記集約パケットのうちの暗号化済みでないと判定した範囲を暗号化する。送信部は、前記処理部によって暗号化された集約パケットを送信する。 The packet processing device of the embodiment includes a receiving unit, a processing unit, and a transmitting unit. The receiving unit receives individual packets. The processing unit generates an aggregated packet that aggregates a plurality of individual packets received by the receiving unit, and encrypts a range of the generated aggregated packets that is determined not to be encrypted. The transmitting unit transmits the aggregated packet encrypted by the processing unit.
以下、いくつかの実施形態に係る通信システムについて図面を用いて説明する。
〔第1実施形態〕
図1は、第1実施形態に係る通信システム1及び通信システム1に含まれる構成要素の要部回路構成の一例を示すブロック図である。通信システム1は、パケット処理装置10、サーバー装置20及びクライアント装置30を含む。通信システム1は、一例として、サーバー装置20とクライアント装置30との間で通信を行う、サーバークライアントモデルのシステムである。なお、図1にはパケット処理装置10を1台、サーバー装置20を1台、クライアント装置30を3台示しているが、これらの台数に限定するものではない。
Hereinafter, the communication system according to some embodiments will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a block diagram showing an example of a main circuit configuration of components included in the
パケット処理装置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
The
Each of the network NW1 and the network NW2 may be a communication network including a mobile phone line network, a dedicated line, or another communication network.
Communication on network NW1 and 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
プロセッサー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
ROM12は、プロセッサー11を中枢とするコンピューターの主記憶装置に相当する。ROM12は、専らデータの読み出しに用いられる不揮発性メモリである。ROM12は、上記のプログラムを記憶する。また、ROM12は、プロセッサー11が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
The
RAM13は、プロセッサー11を中枢とするコンピューターの主記憶装置に相当する。RAM13は、データの読み書きに用いられるメモリである。RAM13は、プロセッサー11が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。
The
補助記憶デバイス14は、プロセッサー11を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス14は、例えばEEPROM(electric erasable programmable read-only memory)、HDD(hard disk drive)又はSSD(solid state drive)などである。補助記憶デバイス14は、上記のプログラムを記憶する場合がある。また、補助記憶デバイス14は、プロセッサー11が各種の処理を行う上で使用するデータ、プロセッサー11での処理によって生成されたデータ又は各種の設定値などを保存する。
The
ROM12又は補助記憶デバイス14に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、パケット処理装置10は、当該プログラムがROM12又は補助記憶デバイス14に記憶された状態でパケット処理装置10の管理者などへと譲渡される。しかしながら、パケット処理装置10は、当該プログラムがROM12又は補助記憶デバイス14に記憶されない状態で当該管理者などに譲渡されても良い。また、パケット処理装置10は、当該プログラムとは別のプログラムがROM12又は補助記憶デバイス14に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にROM12又は補助記憶デバイス14へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークを介したダウンロードにより実現できる。
The program stored in the
第1の通信I/F15は、パケット処理装置10がネットワークNW1などを介して通信するためのインターフェースである。第1の通信I/F15は、個別パケットを受信する受信部の一例である。第1の通信I/F15は、個別パケットを受信する第4の通信部の一例である。
The first communication I / F 15 is an interface for the
第2の通信I/F16は、パケット処理装置10がネットワークNW2などを介して通信するためのインターフェースである。第2の通信I/F16は、集約パケットを送信する送信部の一例である。第2の通信I/F16は、集約パケットをパケット分割装置に送信する第1の通信部の一例である。第2の通信I/F16は、集約パケットを受信する第2の通信部の一例である。
The second communication I /
サーバー装置20は、複数のクライアント装置30と通信を行う。サーバー装置20は、例えば、クライアント装置30から送信された要求に応じて各種処理などを行う。サーバー装置20は、プロセッサー21、ROM22、RAM23、補助記憶デバイス24及び通信I/F25を含む。サーバー装置20は、パケット集約装置の一例である。サーバー装置20は、パケット分割装置の一例である。サーバー装置20は、パケット生成装置の一例である。
The
プロセッサー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
ROM22は、プロセッサー21を中枢とするコンピューターの主記憶装置に相当する。ROM22は、専らデータの読み出しに用いられる不揮発性メモリである。ROM22は、上記のプログラムを記憶する。また、ROM22は、プロセッサー21が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
The
RAM23は、プロセッサー21を中枢とするコンピューターの主記憶装置に相当する。RAM23は、データの読み書きに用いられるメモリである。RAM23は、プロセッサー21が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。
The
補助記憶デバイス24は、プロセッサー21を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス24は、例えばEEPROM、HDD又はSSDなどである。補助記憶デバイス24は、上記のプログラムを記憶する場合がある。また、補助記憶デバイス24は、プロセッサー21が各種の処理を行う上で使用するデータ、プロセッサー21での処理によって生成されたデータ又は各種の設定値などを保存する。
The
RAM23又は補助記憶デバイス24は、処理バッファー及びサーバー集約バッファーを含む。処理バッファーは、未処理のパケットを記憶する。サーバー集約バッファーは、未集約未送信のパケットを記憶する。
The
ROM22又は補助記憶デバイス24に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、サーバー装置20は、当該プログラムがROM22又は補助記憶デバイス24に記憶された状態でサーバー装置20の管理者などへと譲渡される。しかしながら、サーバー装置20は、当該プログラムがROM22又は補助記憶デバイス24に記憶されない状態で当該管理者などに譲渡されても良い。また、サーバー装置20は、当該プログラムとは別のプログラムがROM22又は補助記憶デバイス24に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にROM22又は補助記憶デバイス24へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークを介したダウンロードにより実現できる。
The program stored in the
通信I/F25は、サーバー装置20がネットワークNW2などを介して通信するためのインターフェースである。通信I/F25は、集約パケットをパケット分割装置に送信する第1の通信部の一例である。通信I/F25は、集約パケットを受信する第2の通信部の一例である。
The communication I /
クライアント装置30は、例えば、自動券売機、自動精算機若しくは自動改札機などの駅務装置、PC(personal computer)、サーバー若しくはスマートホンなどの情報機器、又は各種IoT(internet of things)機器などである。クライアント装置30は、プロセッサー31、ROM32、RAM33、補助記憶デバイス34及び通信I/F35を含む。
The
プロセッサー31は、クライアント装置30の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー31は、ROM32又は補助記憶デバイス34などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、クライアント装置30の各種の機能を実現するべく各部を制御する。プロセッサー31は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー31は、これらの組み合わせである。
The
ROM32は、プロセッサー31を中枢とするコンピューターの主記憶装置に相当する。ROM32は、専らデータの読み出しに用いられる不揮発性メモリである。ROM32は、上記のプログラムを記憶する。また、ROM32は、プロセッサー31が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
The
RAM33は、プロセッサー31を中枢とするコンピューターの主記憶装置に相当する。RAM33は、データの読み書きに用いられるメモリである。RAM33は、プロセッサー31が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。
The
補助記憶デバイス34は、プロセッサー31を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス34は、例えばEEPROM、HDD又はSSDなどである。補助記憶デバイス34は、上記のプログラムを記憶する場合がある。また、補助記憶デバイス34は、プロセッサー31が各種の処理を行う上で使用するデータ、プロセッサー31での処理によって生成されたデータ又は各種の設定値などを保存する。
The
通信I/F35は、クライアント装置30がネットワークNW1などを介して通信するためのインターフェースである。通信I/F35は、個別パケットを前記パケット集約装置に送信する第3の通信部の一例である。
The communication I /
パケット処理装置10について、図2を用いてさらに説明する。図2は、パケット処理装置10の機能構成を示すブロック図である。なお、図2おける図1と同様の要素については同一の符号を付している。パケット処理装置10は、第1受信部101、集約バッファー102、周期管理部103、結合部104、範囲選択部105、暗号化部106、第1送信部107、第2受信部108、復号部109、分割部110及び第2送信部111を含む。
The
第1受信部101は、クライアント装置30などから送信された個別パケットを受信する。例えば、第1の通信I/F15が、第1受信部101として機能する。
The
集約バッファー102は、第1受信部101によって受信された個別パケットを記憶する。例えば、RAM13又は補助記憶デバイス14が集約バッファー102として機能する。
The
周期管理部103は、一定周期ごとに集約バッファー102から個別パケットを取り出す。例えば、プロセッサー11が周期管理部103として機能する。
The
結合部104は、周期管理部103によって取り出された複数の個別パケットを結合して集約する。結合部104は、集約パケットを生成する。例えば、プロセッサー11が結合部104として機能する。
The
範囲選択部105は、集約パケットのうちの暗号化する範囲を決定して選択する。例えば、プロセッサー11が範囲選択部105として機能する。
The
暗号化部106は、集約パケットを暗号化する。また、暗号化部106は、集約パケットの暗号化と共に、当該集約パケットのMAC(message authentication code)値を生成する。MAC値は、集約パケットの改竄検出など、集約パケットのデータの完全性の検証に用いられる。例えば、プロセッサー11が暗号化部106として機能する。MAC値は、データの完全性を保証するための符号の一例である。
The
第1送信部107は、周期管理部103、範囲選択部105、結合部104及び暗号化部106によって生成された集約パケットをサーバー装置20などに送信する。例えば、第2の通信I/F16が、第1送信部107として機能する。
The
第2受信部108は、サーバー装置20などから集約パケットを受信する。例えば、第2の通信I/F16が、第2受信部108として機能する。
The
復号部109は、第2受信部によって受信された集約パケットの暗号化された部分を復号する。また、復号部109は、当該集約パケットに含まれるMAC値を用いてデータの完全性の検証を行う。さらに、復号部109は、集約パケットが改竄されたことなどによりデータの完全性の保証が得られなかった場合には、当該集約パケットを破棄する。例えば、プロセッサー11が復号部109として機能する。
The
分割部110は、第2受信部によって受信された集約パケットを個々の個別パケットに分割する。例えば、プロセッサー11が分割部110として機能する。
The dividing
第2送信部111は、分割部110によって分割された個々の個別パケットのそれぞれを、それぞれの個別パケットの宛先であるクライアント装置30などに送信する。例えば、第1の通信I/F15が、第2送信部111として機能する。
The
以下、第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, the operation of the
複数のクライアント装置30のそれぞれは、サーバー装置20を宛先とするデータを送信する。当該データは、個別パケットとして送信される。当該個別パケットは、ネットワークNW1を介してパケット処理装置10によって受信される。
図3のステップS1においてプロセッサー11は、第1の通信I/F15(第1受信部101)によって、クライアント装置30から送信された個別パケットが受信されるのを待ち受けている。プロセッサー11は、個別パケットが受信されたならば、ステップS1においてYesと判定してステップS2へと進む。
Each of the plurality of
In step S1 of FIG. 3, the
ステップS2においてプロセッサー11は、ステップS1で受信された個別パケットを集約バッファー102に記憶させる。プロセッサー11は、ステップS2の後、ステップS1へと戻る。
以上のようにして、第1の通信I/F15によって受信された個別パケットが次々と集約バッファー102に蓄積記憶されていく。
In step S2, the
As described above, the individual packets received by the first communication I / F 15 are accumulated and stored in the
一方、図4のステップS11においてパケット処理装置10のプロセッサー11(周期管理部103)は、第1のタイマーをリセットする。第1のタイマーは、パケット処理装置10が前回集約パケットを送信してからの経過時間を計測するためのタイマーである。なお、集約パケットについては、後述する。
On the other hand, in step S11 of FIG. 4, the processor 11 (cycle management unit 103) of the
ステップ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 or more has elapsed since the first timer was reset. The time T1 is set in advance by, for example, the administrator of the
ステップ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 S13, the
プロセッサー11は、ステップS12及びステップS13の待受状態にあるときに、第1のタイマーをリセットしてから時間T1が経過したならば、ステップS12においてYesと判定してステップS14へと進む。
If the time T1 has elapsed since the first timer was reset while the
ステップ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 S14, the processor 11 (cycle management unit 103) determines whether or not an untransmitted individual packet is stored in the
Further, if the total data capacity of the untransmitted individual packets stored in the
ステップ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 S15, the processor 11 (cycle management unit 103) takes out one untransmitted individual packet stored in the
図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 shown in FIG. 9, the
The aggregate header contains information about the entire aggregate packet, such as the number of individual packets contained in the aggregate packet.
Each of the n individual headers is associated one-to-one with each of the n individual packets. 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 contains information about the associated individual packet, such as the size of the associated individual packet, so that the aggregated packet can be split into individual individual packets. Further, the aggregated packets (b1) are arranged in the order of individual header k, individual packet k, individual header k + 1, individual packet k + 1, .... Pairs of associated individual headers and individual packets are lined up next to each other.
Since n = 1 in step S15, the aggregated packet generated in step S15 includes the aggregated header, the
ステップS16においてプロセッサー11(結合部104)は、集約バッファー102に未送信の個別パケットが記憶されているか否かを判定する。プロセッサー11は、集約バッファー102に未送信の個別パケットが記憶されているならば、ステップS16においてYesと判定してステップS17へと進む。
In step S16, the processor 11 (coupling unit 104) determines whether or not an untransmitted individual packet is stored in the
ステップS17においてプロセッサー11(結合部104)は、集約パケットに次の個別パケットを結合した場合の集約パケットのデータ容量が、パケット処理装置10が生成する集約パケットの最大データ容量以下となるか否かを判定する。なお、次の個別パケットとは、次に集約の対象となる個別パケットである。例えば、次の個別パケットは、集約バッファー102に記憶されている未送信の個別パケットの中で最初に記憶された個別パケットである。また、パケット処理装置10が生成する集約パケットの最大データ容量は、例えば、パケット処理装置10の管理者又は設計者などによって予め定められる。あるいは、パケット処理装置10が生成する集約パケットの最大データ容量は、パケット処理装置10が自動的に決定する。パケット処理装置10が生成する集約パケットの最大データ容量は、パケット処理装置10などのMTUであっても良い。プロセッサー11は、次の個別パケットを結合した場合の集約パケットのデータ容量が、当該集約パケットの最大データ容量以下となるならば、ステップS17においてYesと判定してステップS18へと進む。
In step S17, the processor 11 (coupling unit 104) determines whether or not the data capacity of the aggregated packet when the next individual packet is combined with the aggregated packet is equal to or less than the maximum data capacity of the aggregated packet generated by the
ステップS18においてプロセッサー11(結合部104)は、集約バッファー102から次のパケットを取り出して、当該次のパケットを集約パケットに結合する。これにより、集約パケットに含まれる個別パケットの数が1つ増える。ここで、プロセッサー11は、個別パケットを取り出すとき、集約バッファー102に記憶された当該個別パケットが送信済みであることが分かるようにする。あるいは、プロセッサー11は、当該個別パケットを集約バッファーから削除する。
In step S18, the processor 11 (coupling unit 104) extracts the next packet from the
プロセッサー11は、集約バッファー102に未送信の個別パケットが記憶されていないならば、ステップS16においてNoと判定してステップS19へと進む。また、プロセッサー11は、次の個別パケットを結合した場合の集約パケットのデータ容量がパケット処理装置10のMTUを超えるならば、ステップS17においてNoと判定してステップS19へと進む。
かくして、プロセッサー11は、集約バッファー102に未送信の個別パケットが記憶されていない状態になるか、次の個別パケットを結合した場合の集約パケットのデータ容量がパケット処理装置10のMTUを超えるまで、ステップS16~ステップS18を繰り返す。これにより、(ステップS18の処理を行った回数+1)個の個別パケットが集約された集約パケットが生成される。
If the
Thus, the
ステップ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 S19, the processor 11 (range selection unit 105) determines the range to be encrypted for the aggregated packet generated by the processes of steps S15 to S18. The scope to be encrypted is the unencrypted part of the aggregated packet. The process of step S19 is performed by the
Here, the individual packet may be encrypted or may be in plain text. Therefore, if the individual packet that has been encrypted is further encrypted, it will be doubly encrypted. In the case of double encryption, the time required for encryption and the time required for decryption become longer than in the case of not performing double encryption, and the processing load also increases. Therefore, it is preferable that the
From the above, the
ステップ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. Since the
The
The common key used for encryption or the common key used for calculating the MAC value may be shared by exchanging keys when establishing a communication session, or the common key may be stored in the storage device of each node in advance. You may save it and use the key. When exchanging keys, use Diffie-Hellmann key exchange or other key exchange methods.
The
By performing the processes of steps S19 and S20, the range of the aggregated packets determined to be unencrypted is encrypted.
以上より、集約される個別パケットに暗号化済みの個別パケットが含まれる場合、当該暗号化に使われた暗号鍵とパケット処理装置10において暗号化された部分に使われた暗号鍵は異なることとなる。
From the above, when the individual packets to be aggregated include encrypted individual packets, the encryption key used for the encryption and the encryption key used for the encrypted part in the
ステップ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
The encrypted information includes IV (initialization vector), TAG and SIZE. IV is the 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 following the encrypted information. However, when exchanging the IV by another method such as authentication, the
By the processing of steps S19 to S21, as shown in FIG. 9, the aggregated packet (c1) after encryption is generated based on the aggregated 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
一方、図6のステップS101においてサーバー装置20のプロセッサー21は、通信I/F25によって集約パケットが受信されるのを待ち受けている。プロセッサー21は、集約パケットが受信されたならば、ステップS101においてYesと判定してステップS102へと進む。
On the other hand, in step S101 of FIG. 6, the
ステップS102においてプロセッサー21は、ステップS101で受信された集約パケットを復号する。
ステップS103においてプロセッサー21は、ステップS101で受信された集約パケットのMAC値を検証する。すなわち、プロセッサー21は、集約パケットのMAC値を計算し、集約パケットに含まれるMAC値と一致するか否かを検証する。
なお、集約パケットが認証付き暗号モードで暗号化されている場合、プロセッサー21は、ステップS102とステップS103を同時に行うこととなる。
In step S102, the
In step S103, the
When the aggregated packet is encrypted in the authenticated encryption mode, the
ステップS104においてプロセッサー21は、集約パケットのデータの完全性が保証されているか否かを判定する。プロセッサー21は、ステップS103のMAC値の検証においてMAC値が一致したならば、ステップS104においてNoと判定してステップS105へと進む。
In step S104, the
ステップS105においてプロセッサー21は、集約パケットの各ヘッダーに含まれる情報などに基づき、集約パケットを個々の個別パケットに分割する。
In step S105, the
ステップS106においてプロセッサー21は、ステップS105において分割された個別パケットのそれぞれを処理バッファーに登録する。プロセッサー21は、ステップS106の処理の後、ステップS101へと戻る。
In step S106, the
対して、プロセッサー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
In step S107, the
ステップS108においてプロセッサー21は、集約パケット全体の再送をパケット処理装置10に要求する。プロセッサー21は、ステップS108の処理の後、ステップS101へと戻る。
In step S108, the
また、図7のステップS111においてプロセッサー21は、処理バッファーに未処理パケットが記憶されているか否かを判定する。プロセッサー21は、処理バッファーに未処理パケットが記憶されているならば、ステップS111においてYesと判定してステップS112へと進む。対して、プロセッサー21は、処理バッファーに未処理パケットが記憶されていないならば、ステップS111においてNoと判定してステップS111を繰り返す。
Further, in step S111 of FIG. 7, the
ステップS112においてプロセッサー21は、処理バッファーから未処理パケット1個を取り出し、当該未処理パケットに基づく処理を行う。プロセッサー21は、未処理パケットを取り出すとき、処理バッファーに記憶された当該未処理パケットが処理済みであることが分かるようにする。あるいは、プロセッサー21は、当該未処理パケットを処理バッファーから削除する。当該未処理パケットは、例えば、処理バッファーに記憶されている未処理パケットの中で最初に記憶された未処理パケットである。ここでの処理は、従来のサーバー装置が、クライアント装置30から送信された、集約されていない状態の個別パケットを受信して、当該個別パケットに基づいて行う処理と同様である。
In step S112, the
ステップS113においてプロセッサー21は、ステップS112の処理内容に基づき、必要に応じて、ステップS112で取り出した個別パケットの送信元であるクライアント装置30に対して返信する応答を生成する。
In step S113, the
ステップS114においてプロセッサー21は、ステップS113において応答を生成した場合には、当該応答をパケットとしてサーバー集約バッファーに登録する。プロセッサー21は、ステップS114の処理の後、ステップS111へと戻る。
When the
また、図8のステップS121においてプロセッサー21は、第2のタイマーをリセットする。第2のタイマーは、サーバー装置20が前回集約パケットを送信してからの経過時間を計測するためのタイマーである。
Further, in step S121 of FIG. 8, the
ステップS122においてプロセッサー21は、第2のタイマーをリセットしてから時間T2以上経過したか否かを判定する。なお、時間T2は、例えば、サーバー装置20の管理者などによって予め設定される。あるいは、時間T2は、サーバー装置20の設計者などによって予め定められていてもよい。プロセッサー21は、第2のタイマーをリセットしてから時間T2が経過していないならば、ステップS122においてNoと判定してステップS123へと進む。
In step S122, the
ステップ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
プロセッサー21は、ステップS122及びステップS123の待受状態にあるときに、第2のタイマーをリセットしてから時間T2が経過したならば、ステップS122においてYesと判定してステップS124へと進む。
If the time T2 has elapsed since the second timer was reset while the
ステップS124においてプロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されているか否かを判定する。プロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されていないならば、ステップS124においてNoと判定してステップS121へと戻る。すなわち、プロセッサー21は、前回集約パケットを送信してから時間T2が経過しても未送信の個別パケットがサーバー集約バッファーに記憶されなかったならば、第2のタイマーをリセットする。対して、プロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されているならば、ステップS124においてYesと判定してステップS125へと進む。
また、プロセッサー21は、ステップS122及びステップS123の待受状態にあるときにサーバー集約バッファーに記憶された未送信の個別パケットのデータ容量の合計が容量D2以上であるならば、ステップS123においてYesと判定してステップS125へと進む。
In step S124, the
Further, if the total data capacity of the untransmitted individual packets stored in the server aggregation buffer in the standby state of step S122 and step S123 is equal to or larger than the capacity D2, the
ステップS125においてプロセッサー21は、サーバー集約バッファーに記憶された未送信の個別パケット1個を取り出す。ここで、プロセッサー21は、個別パケットを取り出すとき、サーバー集約バッファーに記憶された当該個別パケットが送信済みであることが分かるようにする。あるいは、プロセッサー21は、当該個別パケットをサーバー集約バッファーから削除する。当該個別パケットは、例えば、サーバー集約バッファーに記憶されている未送信の個別パケットの中で最初に記憶された個別パケットである。ここで生成される集約パケットは、パケット処理装置10が図4のステップS15で生成するものと同様のものである。
In step S125, the
図8のステップS126においてプロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されているか否かを判定する。プロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されているならば、ステップS126においてYesと判定してステップS127へと進む。
In step S126 of FIG. 8, the
ステップS127においてプロセッサー21は、集約パケットに次の個別パケットを結合した場合の集約パケットのデータ容量が、サーバー装置20が生成する集約パケットの最大データ容量以下となるか否かを判定する。なお、次の個別パケットとは、次に集約の対象となる個別パケットである。例えば、次の個別パケットは、サーバー集約バッファーに記憶されている未送信の個別パケットの中で最初に記憶された個別パケットである。また、サーバー装置20が生成する集約パケットの最大データ容量は、例えば、サーバー装置20の管理者又は設計者などによって予め定められる。あるいは、サーバー装置20が生成する集約パケットの最大データ容量は、サーバー装置20が自動的に決定する。サーバー装置20が生成する集約パケットの最大データ容量は、サーバー装置20のMTUであっても良い。プロセッサー21は、次の個別パケットを結合した場合の集約パケットのデータ容量が、サーバー装置20が生成する集約パケットの最大データ容量以下となるならば、ステップS127においてYesと判定してステップS128へと進む。
In step S127, the
ステップS128においてプロセッサー21は、サーバー集約バッファーから次のパケットを取り出して、当該次のパケットを集約パケットに結合する。これにより、集約パケットに含まれる個別パケットの数が1つ増える。ここで、プロセッサー21は、個別パケットを取り出すとき、サーバー集約バッファーに記憶された当該個別パケットが送信済みであることが分かるようにする。あるいは、プロセッサー21は、当該個別パケットを集約バッファーから削除する。
In step S128, the
プロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されていないならば、ステップS126においてNoと判定してステップS129へと進む。また、プロセッサー21は、次の個別パケットを結合した場合の集約パケットのデータ容量がサーバー装置20のMTUを超えるならば、ステップS127においてNoと判定してステップS129へと進む。
かくして、プロセッサー21は、サーバー集約バッファーに未送信の個別パケットが記憶されていない状態になるか、次の個別パケットを結合した場合の集約パケットのデータ容量がサーバー装置20のMTUを超えるまで、ステップS126~ステップS128を繰り返す。これにより、(ステップS128の処理を行った回数+1)個の個別パケットが集約された集約パケットが生成される。
If the untransmitted individual packet is not stored in the server aggregation buffer, the
Thus, the
ステップS129においてプロセッサー21は、ステップS125~ステップS128の処理によって作成された集約パケットについて、暗号化する範囲を決定する。プロセッサー21は、暗号化範囲の決定を、パケット処理装置10のプロセッサー11が図4のステップS19で行うものと同様にして行う。
In step S129, the
図8のステップS130においてプロセッサー21は、ステップS129で決定した範囲を暗号化する。プロセッサー21は、暗号化を、パケット処理装置10のプロセッサー11が図4のステップS20で行うものと同様にして行う。
ステップS129及びステップS130の処理が行われることで、集約パケットのうちの暗号化済みでないと判定された範囲が暗号化される。
In step S130 of FIG. 8, the
By performing the processes of steps S129 and S130, the range of the aggregated packets determined to be unencrypted is encrypted.
図8のステップS131においてプロセッサー21は、暗号化情報を生成する。そして、プロセッサー21は、生成した当該暗号化情報を集約パケットに付与する。プロセッサー21は、暗号化情報の生成を、パケット処理装置10のプロセッサー11が図4のステップS21で行うものと同様にして行う。
In step S131 of FIG. 8, the
図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
一方、図5のステップS31においてパケット処理装置10のプロセッサー11は、通信I/F25(第2受信部108)によって集約パケットが受信されるのを待ち受けている。プロセッサー11は、集約パケットが受信されたならば、ステップS31においてYesと判定してステップS32へと進む。
On the other hand, in step S31 of FIG. 5, the
ステップ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
When the aggregated packet is encrypted in the authenticated encryption mode, the
ステップS34においてプロセッサー11(復号部109)は、集約パケットのデータの完全性が保証されているか否かを判定する。プロセッサー11は、ステップS33のMAC値の検証においてMAC値が一致したならば、ステップS34においてNoと判定してステップS35へと進む。
In step S34, the processor 11 (decoding unit 109) determines whether or not the data integrity of the aggregated packet is guaranteed. If the MAC values match in the verification of the MAC value in step S33, the
ステップS35においてプロセッサー11(分割部110)は、集約パケットの各ヘッダーに含まれる情報などに基づき、集約パケットを個々の個別パケットに分割する。 In step S35, the processor 11 (division unit 110) divides the aggregated packet into individual individual packets based on the information included in each header of the aggregated packet.
ステップS36においてプロセッサー11は、ステップS35において分割された個別パケットのそれぞれを、それぞれの個別パケットの宛先であるクライアント装置30に送信するように第1の通信I/F15(第2送信部111)に対して指示する。この指示を受けて第1の通信I/F15は、当該個別パケットをそれぞれの個別パケットの宛先であるクライアント装置30に送信する。プロセッサー11は、ステップS36の処理の後、ステップS31へと戻る。
In step S36, the
対して、プロセッサー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
In step S37, the
ステップS38においてプロセッサー11は、集約パケットの再送をサーバー装置20に要求する。プロセッサー11は、ステップS38の処理の後、ステップS31へと戻る。
In step S38, the
第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
Further, according to the
Further, according to the
From the above, the
クライアント装置30が駅務装置である場合、クライアント装置30から送信されるリクエストとサーバー装置20から送信されるレスポンスは、データ量が小さく、データの送受信回数も多い。また、自動改札機などでは、特にリアルタイム性が要求される。さらに、クライアント装置30として駅務装置を含む通信システム1では、通信内容に、金銭に関する情報及び個人情報なども含まれるため、送信されるデータの改竄及び盗聴を防ぐ必要がある。以上より、クライアント装置30が駅務装置を含む場合、実施形態の通信システム1は特に有用である。なお、自動改札機が送信する情報は、一例として、入場駅情報、出場駅情報、入場時間、出場時間、ICカードの認証情報、金額情報又はこれらのうちの複数などを含む。
When the
〔第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
図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 the encrypted
第2実施形態の通信システム1によれば、第1実施形態と同様の効果が得られる。
また、第2実施形態の通信システム1によれば、またCBCなど、暗号の利用モードによっては暗号化されるデータが分散すると、ブロック長に満たない部分をパディングで埋める必要があり、実装方法によっては個別ヘッダーごとにパディングが発生する可能性がある。特に、個々の個別パケットサイズが小さい場合、集約パケット全体にパディングが占める割合が大きくなり、集約パケットのデータサイズが大きくなってしまう。そこで、第2実施形態のように暗号化対象のデータを集約パケット中の一か所にまとめて集約パケットを構成することで、集約パケットのデータサイズの増大を防ぐことができる。また、一度に暗号化及び復号を行うことができるので、処理速度の向上が見込める。したがって、第2実施形態の通信システム1は、図10に(b2)及び(c2)に示すような集約パケットを用いることで、リアルタイム性を向上させることができる。
According to the
Further, according to the
〔第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
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 showing a functional configuration of the
冗長化部121は、暗号化された集約パケットを複数回送信するために、結合部104から渡された集約パケットを複製する機能を有する。そして、冗長化部121は、第1送信部107に集約パケットを複数回渡して、複数回送信を依頼する機能を有する。例えば、プロセッサー11が冗長化部121として機能する。
The
到着管理部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
再送要求部123は、集約バッファー102に再送要求用のパケットを登録する機能を有する。例えば、再送要求部302は、再送リストで指定されている個別パケットを一定間隔ごとに全て再送要求する。あるいは、再送要求部123は、再送リストに登録されている個別パケットごとに、再送要求を送信させた回数に応じて再送要求する間隔を変化させても良い。例えば、再送要求部123は、再送要求のパケットが送信された回数が0回の個別パケットについては、到着した個別パケットの番号が飛んでいることが検出されたらすぐに再送要求を送信させる。そして、再送要求部123は、再送要求を送信させた回数が多いほど、次に再送要求を送信させるまでの時間を長くする。また、再送要求部123は、再送リストが溢れることを防ぐため、一定回数再送要求を送っても到着しない個別パケットについては、再送リストから登録解除しても良い。あるいは、再送要求部123は、再送リストが溢れそうになるたびに、再送リストに登録された個別パケットを、登録が古い順から登録解除しても良い。あるいは、再送要求部123は、再送リストが溢れそうになるたびに、登録されている中でシーケンス番号が最も若い個別パケットを、登録解除しても良い。例えば、プロセッサー11が再送要求部123として機能する。
The
また、最新のシーケンス番号のパケットが消失した場合にも再送要求を送信するため、到着管理部122は、定期的に、サーバー装置20から、送信済みの個別パケットの最大のシーケンス番号を取得する。そして、到着管理部122は、取得したシーケンス番号が、到着済みの個別パケットのうちの最大のシーケンス番号よりも大きいか否かを判定する。そして、到着管理部122は、サーバー装置20から取得したシーケンス番号の方が大きい場合には、到着済みの個別パケットのうちの最大のシーケンス番号+1~取得したシーケンス番号を再送リストに登録させるように再送要求部123に要求する。
Further, in order to transmit the retransmission request even when the packet having the latest sequence number is lost, the
また、再送要求部123は、サーバー装置20から明示的に再送要求のパケットを受け付ける機能を持っていても良い。再送要求部123は、当該再送要求のパケットを受け付けた場合、集約バッファー102に含まれる送信済みのパケットを再度送信するようにフラグ設定する。これにより、周期管理部103は、集約バッファー102からサーバー装置20に送信するパケットを取り出す際に、当該フラグが設定されたパケットを取り出すようになる。したがって、周期管理部103は、サーバー装置20の要求に応じたパケットの再送が可能となる。
Further, the
暗号化部124は、第1実施形態とは異なる後述するような方法で集約パケットの暗号化及び複数のMAC値の付与などを行う機能を有する。
The
復号部125は、集約パケットに含まれる複数のMAC値ごとにデータの完全性を検証する機能を有する。また、復号部125は、集約パケットの暗号化された部分を復号する。そして、復号部125は、集約ヘッダーに改竄が検出された場合には、集約パケット全体を破棄する機能を有する。また、復号部125は、集約パケットに含まれる個別パケットのうちの改竄が検出された個別パケットを破棄する。そして、復号部125は、改竄が検出されなかった個別パケットについては、到着管理部122に渡す。
The
以下、第3実施形態に係る通信システム1の動作を図12及び図13に基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図12及び図13は、パケット処理装置10のプロセッサー11による処理のフローチャートである。
Hereinafter, the operation of the
第3実施形態では、パケット処理装置10は、第1実施形態と同様に図3及び図4に示す処理と同様の処理により、集約パケットの生成及び送信などを行う。また、サーバー装置20は、第1実施形態と同様に図7及び図8に示す処理と同様の処理により、集約パケットの生成及び送信などを行う。ただし、第3実施形態では、生成される集約パケットが、第1実施形態及び第2実施形態とは異なる。第3実施形態において生成される集約パケットについて図14に基づいて説明する。図14は、第3実施形態に係る集約パケットの一例を説明するための図である。
In the third embodiment, the
図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 encrypted
However, the aggregated packet after encryption according to the third embodiment (c3) contains a plurality of MAC values as encrypted information. The
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 of n or less) is a MAC value of a set of an individual header k and an individual packet k. When the MAC value is already given to the individual packet k, the TAG k may be the MAC value of the individual header k. That is, TAG1 to n are MAC values given in individual packet units.
The MAC value is assigned in units.
The processor 11 (encryption unit 124) or the
また、第3実施形態では、パケット処理装置10及びサーバー装置20は、図4のステップS22又は図8のステップS132において、同一の集約パケットを複数回送信する。送信回数は、例えば2回である。なお、パケット処理装置10及びサーバー装置20は、集約パケットの送信元から送信先までの経路が複数ある場合には、送信ごとに異なる経路を通じて同一の集約パケットを送信しても良い。
Further, in the third embodiment, the
図12のステップS41においてパケット処理装置10のプロセッサー11は、第2の通信I/F16(第2受信部108)によって集約パケットが受信されるのを待ち受けている。プロセッサー11は、集約パケットが受信されたならば、ステップS41においてYesと判定してステップS42へと進む。
In step S41 of FIG. 12, the
ステップS42においてプロセッサー11(復号部125)は、集約パケット全体のMAC値であるTAGAを検証する。すなわち、プロセッサー11は、ステップS41で受信された集約パケット全体のMAC値を計算し、当該集約パケットに含まれるTAGAと一致するか否かを検証する。
In step S42, the processor 11 (decoding unit 125) verifies TAGA, which is the MAC value of the entire aggregated packet. That is, the
ステップS43においてプロセッサー11(復号部125)は、ステップS41で受信された集約パケット全体のデータの完全性が保証されているか否かを判定する。プロセッサー11は、ステップS43のMAC値の検証においてMAC値が一致したならば、ステップS43においてNoと判定してステップS44へと進む。
In step S43, the processor 11 (decoding unit 125) determines whether or not 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
ステップ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 individual headers and individual packets. Here, the pair of the individual header and the individual packet is, for example, a pair of the
ステップ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
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
ステップ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 in the aggregate header is guaranteed. If the MAC values match in the verification of the MAC value in step S47, the
ステップS49においてプロセッサー11(分割部110)は、ステップS41で受信された集約パケットを個々の個別ヘッダーと個別パケットとの組に分割する。 In step S49, the processor 11 (dividing unit 110) divides the aggregated packet received in step S41 into a set of individual 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
ステップS52においてプロセッサー11(復号部125)は、集約ヘッダーのデータの完全性が保証されていない個別ヘッダーと個別パケットとの組を破棄する。すなわち、プロセッサー11は、ステップS51においてMAC値が一致しなかった個別ヘッダーと個別パケットとの組を破棄する。例えば、個別ヘッダー又は個別パケットが改竄されていた場合など、データが書き換わっていた場合に、対応するMAC値(TAG1~TAGn)が一致しなくなる。
In step S52, the processor 11 (decoding unit 125) discards the pair of the individual header and the individual packet whose data integrity of the aggregate header is not guaranteed. That is, the
プロセッサー11は、ステップS45又はステップS52の処理の後、ステップS53へと進む。
ステップS53においてプロセッサー11(到着管理部122)は、ステップS45又はステップS50で復号した個別パケットのうち、受信済みの個別パケットを破棄する。
The
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 (
ステップ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) sets each of the individual packets decoded in step S45 or step S50, which were not discarded in either step S52 or step S53, into the individual packets. The first communication I / F 15 (second transmission unit 111) is instructed to transmit to the
対して、プロセッサー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
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 (
また、図13のステップS61においてプロセッサー11は、第3のタイマーをリセットする。第3のタイマーは、パケット処理装置10が前回再送要求パケットを集約バッファー102に登録してからの経過時間を計測するためのタイマーである。
Further, in step S61 of FIG. 13, the
ステップS62においてプロセッサー11は、第3のタイマーをリセットしてから時間T3以上経過するのを待ち受ける。なお、時間T3は、例えば、パケット処理装置10の管理者などによって予め設定される。あるいは、時間T3は、パケット処理装置10の設計者などによって予め定められていてもよい。プロセッサー11は、第3のタイマーをリセットしてから時間T3以上経過したならば、ステップS62においてYesと判定してステップS63へと進む。
In step S62, the
ステップS63においてプロセッサー11は、サーバー装置20を宛先とする再送要求パケットを集約バッファー102に登録する。再送要求パケットには、例えば、再送リストに登録されたシーケンス番号が含まれる。なお、プロセッサー11は、例えば、再送要求パケットを個別パケットとして集約バッファー10に登録する。したがって、再送要求パケットは、集約バッファー10に登録された他の個別パケットとともに集約されて、集約パケットに含まれる。そして、当該再送要求パケットは、集約パケットに含まれた状態でサーバー装置20に送信される。プロセッサー11は、ステップS63の処理の後、ステップS61へと戻る。
一方、再送要求パケットは、サーバー装置20のプロセッサー21によって処理バッファーに登録される。そして、プロセッサー21は、図7のステップS112において処理バッファーに登録された再送要求パケットに基づき、当該再送要求パケットに含まれるシーケンス番号で特定される個別パケットをサーバー集約バッファーに登録する。例えば、プロセッサー21は、サーバー集約バッファーに当該個別パケットが送信済み状態として記憶されている場合には、当該個別パケットを未送信状態に戻す。あるいは、プロセッサー21は、サーバー集約バッファーに当該個別パケットが記憶されていない場合には、当該個別パケットをサーバー集約バッファーに記憶させる。なお、プロセッサー21は、次の個別パケットとして、サーバー集約バッファーに記憶されている未送信の個別パケットの中で最もシーケンス番号が若いものを選択しても良い。
In step S63, the
On the other hand, the retransmission request packet is registered in the processing buffer by the
また、サーバー装置20についても、プロセッサー21は、図12及び図13に示す処理と同様の処理により、集約パケットの復号、分割、MAC検証及び再送要求などを行う。また、パケット処理装置10についても、サーバー装置20と同様に、サーバー装置20から再送要求パケットを受け取った場合には、当該再送要求パケットに含まれるシーケンス番号で特定される個別パケットを、サーバー装置20が再送要求パケットを受け取った場合の処理と同様の処理を行うことで、サーバー装置20に再送する。
Further, regarding the
以上説明したようなパケット処理装置10及びサーバー装置20の処理により行われる通信を、一例を挙げて図15を用いて説明する。図15は、第3実施形態に係る通信システム1の情報の流れの一例を示すシーケンス図である。
The communication performed by the processing of the
ステップST1においてサーバー装置20は、集約パケットをパケット処理装置10に送信する。なお、当該集約パケットには、一例として、シーケンス番号1~6の6つの個別パケットが含まれるものとする。また、サーバー装置20は、一例として、当該集約パケットを2回、パケット処理装置10に送信するものとする。
In step ST1, the
パケット処理装置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
Since the individual packets of
ステップST2においてパケット処理装置10は、正常に到着しているシーケンス番号1~4及び6番の個別パケットを、それぞれの宛先であるクライアント装置30に送信する。なお、図15に示すクライアント装置30には、1又は複数のクライアント装置30が含まれるものとする。
In step ST2, the
ステップST3においてパケット処理装置10は、シーケンス番号5番の個別パケットを再送するようにサーバー装置20に要求するため、再送要求をサーバー装置20に送信する。
In step ST3, the
再送要求を受け取ったサーバー装置20は、シーケンス番号5番の個別パケットを含む集約パケットを生成する。このとき、サーバー集約バッファーには、シーケンス番号7番の個別パケットが登録されているものとする。したがって、サーバー装置20は、シーケンス番号5番の個別パケットに加えてシーケンス番号7番の個別パケットをも含む集約パケットを生成する。
そして、ステップST4においてサーバー装置20は、生成した集約パケットをパケット処理装置10に送信する。なお、サーバー装置20は、一例として、生成した当該集約パケットを2回、パケット処理装置10に送信するものとする。
Upon receiving the retransmission request, the
Then, in step ST4, the
パケット処理装置10は、サーバー装置20がステップST4で2回送信した集約パケットを受信する。ここで、ステップST4の1回目に送信された集約パケットのうち、集約ヘッダーが改竄されていたものとする。パケット処理装置10は、MAC値の検証により、この改竄を検出することができる。したがって、パケット処理装置10は、ステップST1の1回目に送信された集約パケットを破棄する。また、ステップST4の2回目に送信された集約パケットは改竄されていないものとする。したがって、シーケンス番号5番と7番の個別ヘッダーは、パケット処理装置10に正常に到着している。
The
ステップST5においてパケット処理装置10は、正常に到着しているシーケンス番号5及び7番の個別パケットを、それぞれの宛先であるクライアント装置30に送信する。
In step ST5, the
第3実施形態の通信システム1によれば、パケット処理装置10及びサーバー装置20は、受信した集約パケットに含まれる個別パケットが、改竄されているなどしてデータの完全性の保証が得られなかった場合には、集約パケットのうちの改竄されている個別パケットだけを再送要求する。このため、集約パケットに含まれる個別パケットのうちの一部だけが改竄されている場合には、当該集約パケット全体を再送することが不要である。対して、従来では、改竄などが一部に対するものであっても当該集約パケット全体の再送が必要となる。したがって、第3実施形態の通信システム1では、再送されるデータの量が従来よりも少ない。また、再送の頻度も減少するので、従来よりもリアルタイム性が向上する。
According to the
また、第3実施形態の通信システム1によれば、パケット処理装置10及びサーバー装置20は、集約パケットを一度に複数回送信する。これにより、集約パケットを受信したパケット処理装置10又はサーバー装置20は、一度目に受信した集約パケットに含まれる個別パケットを破棄した場合でも、すぐに次の集約パケットを受信する。したがって、当該パケット処理装置10又はサーバー装置20は、再送を要求したことによって再送される個別パケットを受信するよりもすぐに、破棄した個別パケットを受け取ることができる。これにより、リアルタイム性が向上する。
Further, according to the
第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
The
プロセッサー11は、ステップS13において、容量D1に代えて、集約バッファー102に記憶されている未送信の個別パケットの数が予め定められた数以上になったか否かを判定しても良い。また、プロセッサー21は、ステップS123において、容量D2に代えて、サーバー集約バッファーに記憶されている未送信の個別パケットの数が予め定められた数以上になったか否かを判定しても良い。上記の態様は、個別パケットのデータサイズがほとんど一定であるような場合などに用いることができる。
In step S13, the
プロセッサー11又はプロセッサー21は、集約するパケットを全て集約バッファー102又はサーバー集約バッファーから取り出し、その後に集約を行っても良い。
The
パケット処理装置10又はサーバー装置20は、送信する個別パケットが1個のみ場合には集約パケットの形にせずにそのまま送信しても良い。
When the
第1実施形態の通信システム1は、破棄したパケットの再送を要求しない態様であっても良い。すなわち、プロセッサー11は、ステップS38をスキップしてステップS31へと進む。また、プロセッサー21は、ステップS108をスキップしてステップS101へと進む。
The
第1実施形態~第3実施形態では、サーバー装置20が1台である例について示した。しかしながら、複数のサーバー装置20がネットワークNWに接続されていても良い。この場合、パケット処理装置10は、受信した個別パケットを、例えば、宛先となるサーバー装置20が同じものだけを対象として集約を行う。すなわち、パケット処理装置10は、宛先別に集約パケットを生成及び送信する。
In the first to third embodiments, an example in which the
複数のパケット処理装置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に送信する。
By using a plurality of
第1実施形態~第3実施形態に示す通信システム1は、サーバークライアントモデルであるが、サーバークライアントモデルには限らない。
The
通信システム1は、MAC以外を用いてデータの完全性の保証及び検証を行っても良い。例えば、通信システム1は、MIC(message integrity code)を用いる。MICは、データの完全性を保証するための符号の一例である。
パケット処理装置10及びサーバー装置20は、集約パケットに誤り訂正符号を付与しても良い。
The
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although some embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other embodiments, and various omissions, replacements, and changes can be made without departing from the gist of the invention. These embodiments and variations thereof are included in the scope and gist of the invention, and are also included in the scope of the invention described in the claims and the equivalent scope 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……到着管理部 1 ... Communication system, 10 ... Packet aggregator, 11,21,31 ... Processor, 12,22,32 ... ROM, 13,23,33 ... RAM, 14,24,34 ... Auxiliary storage device , 15 ... 1st communication I / F, 16 ... 2nd communication I / F, 20 ... server device, 25, 35 ... communication I / F, 30 ... client device, 101 ... 1st Receiving unit, 102 ... Aggregation buffer, 103 ... Periodic management unit, 104 ... Joining unit, 105 ... Range selection unit, 106, 124 ... Encryption unit, 107 ... First transmitting unit, 108 ... 2 Receiver unit, 109, 125 ... Decryption unit, 110 ... Division unit, 111 ... Second transmission unit, 121 ... Redundancy unit, 122 ... Retransmission request unit, 123 ... Arrival management unit
Claims (19)
前記受信部によって受信された複数の個別パケットを、暗号化済みでない部分が連続するように集約した集約パケットを生成し、生成した前記集約パケットのうちの暗号化済みでないと判定した範囲を暗号化する、処理部と、
前記処理部によって暗号化された前記集約パケットを送信する送信部と、を備えた、パケット集約装置。 A receiver that receives individual packets and
An aggregated packet is generated by aggregating a plurality of individual packets received by the receiving unit so that the unencrypted portion is continuous, and the range of the generated aggregated packets determined to be unencrypted is encrypted. With the processing unit
A packet aggregation device including a transmission unit that transmits the aggregated packet encrypted by the processing unit.
前記集約パケットを、前記集約パケットに含まれる個別パケット単位で暗号化し、 前記集約パケットに対して、前記集約パケットに含まれる個別パケット単位でデータの完全性を保証するための符号を付与する、請求項1又は請求項2に記載のパケット集約装置。 The processing unit
The aggregated packet is encrypted for each individual packet included in the aggregated packet, and the aggregated packet is given a code for guaranteeing data integrity for each individual packet included in the aggregated packet. The packet aggregating device according to claim 1 or 2.
前記集約パケットに含まれる個別パケットのうち、到着済みとして記録されている個別パケットを破棄する、請求項6乃至請求項8のいずれか1項に記載のパケット分割装置。 Of the individual packets included in the aggregated packet, the individual packet whose data integrity is guaranteed is recorded as arrived.
The packet dividing device according to any one of claims 6 to 8 , which discards the individual packets recorded as arrived among the individual packets included in the aggregated packets.
前記処理部は、送信済みで且つ未到着の個別パケットを前記識別子によって判定し、未到着の個別パケットの再送を前記パケット集約装置に要求する、請求項6乃至請求項9のいずれか1項に記載のパケット分割装置。 The aggregated packet is given an identifier to each of the individual packets included in the aggregated packet by the packet aggregation device.
The processing unit determines an individual packet that has been transmitted and has not arrived by the identifier, and requests the packet aggregation device to retransmit the individual packet that has not arrived, according to any one of claims 6 to 9 . The packet segmentation device described.
前記パケット集約装置は、
複数の個別パケットを、暗号化済みでない部分が連続するように集約した集約パケットを生成し、生成した前記集約パケットのうちの暗号化済みでないと判定した範囲を暗号化する、第1の処理部と、
複数の個別パケットが集約された集約パケットをパケット分割装置に送信する第1の通信部と、を備え、
前記パケット分割装置は、
前記パケット集約装置から送信された前記集約パケットを受信する第2の通信部と、
前記第2の通信部によって受信された集約パケットから、前記集約パケットに含まれる前記個別パケットを分割する第2の処理部と、を備える
パケット通信システム。 Including packet aggregator and packet divider
The packet aggregator is
A first processing unit that generates an aggregated packet in which a plurality of individual packets are aggregated so that an unencrypted portion is continuous, and encrypts a range of the generated aggregated packets determined to be unencrypted. When,
A first communication unit that transmits an aggregated packet in which a plurality of individual packets are aggregated to a packet dividing device is provided.
The packet splitting device is
A second communication unit that receives the aggregated packet transmitted from the packet aggregater, and
A packet communication system including a second processing unit that divides the individual packet included in the aggregated packet from the aggregated packet received by the second communication unit.
複数の個別パケットを、暗号化済みでない部分が連続するように集約して、複数の個別パケットを含む集約パケットを生成し、生成した前記集約パケットのうちの暗号化済みでないと判定した範囲を暗号化し、処理部として機能させる、プログラム。 The computer that the packet aggregator has
A plurality of individual packets are aggregated so that the unencrypted part is continuous to generate an aggregated packet including a plurality of individual packets, and the range determined to be unencrypted among the generated aggregated packets is encrypted. A program that can be encrypted and function as a processing unit.
複数の個別パケットを、暗号化済みでない部分が連続するように集約した集約パケットを生成し、生成した前記集約パケットのうちの暗号化済みでないと判定した範囲を暗号化する、パケット集約装置によって生成され送信された前記集約パケットから、前記集約パケットに含まれる前記個別パケットを分割する、処理部として機能させる、プログラム。 The computer that the packet divider has
Generated by a packet aggregator that generates an aggregated packet that aggregates a plurality of individual packets so that the unencrypted parts are continuous, and encrypts the range of the generated aggregated packets that is determined to be unencrypted. A program that functions as a processing unit that divides the individual packet included in the aggregated packet from the aggregated packet that has been transmitted.
前記集約パケットデータは、前記複数のパケットのそれぞれがヘッダー部とペイロード部とを含み、前記集約パケットデータに含まれる複数のペイロード部が複数の鍵で暗号化され、前記集約パケットデータに含まれる複数のヘッダー部が同一の鍵で暗号化されている、パケット生成装置。 An aggregated packet data is generated by aggregating a receiving unit that receives a packet and a plurality of packets received by the receiving unit so that an unencrypted portion is continuous, and encryption of the generated aggregated packet data is performed. It has a generator that encrypts the range determined to be unfinished.
In the aggregated packet data, each of the plurality of packets includes a header unit and a payload unit, and a plurality of payload units included in the aggregated packet data are encrypted with a plurality of keys and are included in the aggregated packet data. A packet generator whose header is encrypted with the same key.
前記集約パケットデータは、前記複数のパケットのそれぞれがヘッダー部とペイロード部とを含み、前記集約パケットデータに含まれる複数のペイロード部が複数の鍵で暗号化され、前記集約パケットデータに含まれる複数のヘッダー部が同一の鍵で暗号化されている、パケット生成方法。 A range of the aggregated packet data that is determined to be unencrypted is generated by generating aggregated packet data in which packets are received and a plurality of received packets are aggregated so that the unencrypted portion is continuous. It is a packet generation method that encrypts
In the aggregated packet data, each of the plurality of packets includes a header unit and a payload unit, and a plurality of payload units included in the aggregated packet data are encrypted with a plurality of keys and are included in the aggregated packet data. Packet generation method in which the header part of is encrypted with the same key.
パケットを受信する受信部と、前記受信部によって受信された複数のパケットを、暗号化済みでない部分が連続するように集約した集約パケットデータを生成し、生成した前記集約パケットデータのうちの暗号化済みでないと判定した範囲を暗号化する、生成部として機能させ、
前記集約パケットデータは、前記複数のパケットのそれぞれがヘッダー部とペイロード部とを含み、前記集約パケットデータに含まれる複数のペイロード部が複数の鍵で暗号化され、前記集約パケットデータに含まれる複数のヘッダー部が同一の鍵で暗号化されている、プログラム。 The computer that the packet generator has
An aggregated packet data is generated by aggregating a receiving unit that receives a packet and a plurality of packets received by the receiving unit so that an unencrypted portion is continuous, and encryption of the generated aggregated packet data is performed. Encrypts the range determined to be unfinished, makes it function as a generator, and
In the aggregated packet data, each of the plurality of packets includes a header part and a payload part, and a plurality of payload parts included in the aggregated packet data are encrypted with a plurality of keys, and a plurality of the aggregated packet data included in the aggregated packet data. A program whose header part is encrypted with the same key.
受信した前記集約パケットに、データの完全性が保証されない前記個別パケットが含まれる場合、データの完全性が保証されない前記個別パケットの再送を要求する、通信方法。 An aggregated packet is generated in which a plurality of individual packets are aggregated so that the unencrypted portion is continuous, and the range of the aggregated packets determined to be unencrypted is encrypted, and the individual packet is individualized. Receives the aggregated packet coded to guarantee data integrity on a packet-by-packet basis.
A communication method for 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.
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 JP2019057846A (en) | 2019-04-11 |
JP7000090B2 true 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) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003169092A (en) | 2001-11-29 | 2003-06-13 | Matsushita Electric Ind Co Ltd | 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 |
-
2017
- 2017-09-21 JP JP2017181740A patent/JP7000090B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003169092A (en) | 2001-11-29 | 2003-06-13 | Matsushita Electric Ind Co Ltd | 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 |
---|---|
JP2019057846A (en) | 2019-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104160674B (en) | Content center network | |
US20220006627A1 (en) | Quantum key distribution node apparatus and method for quantum key distribution thereof | |
Kim et al. | Lightweight source authentication and path validation | |
US8300822B2 (en) | System for secure packet communication | |
US20070165638A1 (en) | System and method for routing data over an internet protocol security network | |
US20040174824A1 (en) | Content distribution system | |
US20040193881A1 (en) | Data use management system, transmitting apparatus having management function, and data use management method | |
JP2016181814A (en) | Quantum key delivery device, quantum key delivery system and quantum key delivery method | |
US20170149748A1 (en) | Secure Group Messaging and Data Steaming | |
CN110690961B (en) | Quantum network function virtualization method and device | |
CN110677241B (en) | Quantum network virtualization architecture method and device | |
US11405407B2 (en) | Data packet sending method, network device, control device, and network system | |
US20210184852A1 (en) | System and method for securely transmitting non-pki encrypted messages | |
KR20150135032A (en) | System and method for updating secret key using physical unclonable function | |
CN112367163A (en) | Quantum network virtualization method and device | |
US9049140B2 (en) | Backbone network with policy driven routing | |
Tennekoon et al. | Prototype implementation of fast and secure traceability service over public networks | |
JP7000090B2 (en) | Packet aggregation device, packet division device, packet communication system, program, packet generation device, packet generation method and communication method | |
CN113595964B (en) | Connection tracking synchronization method, device, system, equipment and medium | |
US20140334383A1 (en) | Network system, node device, and method of controlling network system | |
US20230113138A1 (en) | Application Information Verification Method, Packet Processing Method, And Apparatuses Thereof | |
CN111385278B (en) | Message forwarding method and device | |
JP2013115570A (en) | Multi-hop communication system, communication device, and communication program | |
JP5448700B2 (en) | Communication system, collection device, and key update method | |
JP2023042903A (en) | Communication apparatus, communication method and communication system |
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 |