JP2018006964A - Data compression method, gateway, and data transmission system - Google Patents

Data compression method, gateway, and data transmission system Download PDF

Info

Publication number
JP2018006964A
JP2018006964A JP2016130302A JP2016130302A JP2018006964A JP 2018006964 A JP2018006964 A JP 2018006964A JP 2016130302 A JP2016130302 A JP 2016130302A JP 2016130302 A JP2016130302 A JP 2016130302A JP 2018006964 A JP2018006964 A JP 2018006964A
Authority
JP
Japan
Prior art keywords
dictionary
session
data
permanent
token
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.)
Pending
Application number
JP2016130302A
Other languages
Japanese (ja)
Inventor
イェンス デーンホフ
Doenhoff Jens
イェンス デーンホフ
隆史 磯部
Takashi Isobe
隆史 磯部
直輝 谷田
Naoki Tanida
直輝 谷田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2016130302A priority Critical patent/JP2018006964A/en
Publication of JP2018006964A publication Critical patent/JP2018006964A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Multi Processors (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a data compression method capable of solving conventional problems in a resource limitation IoT gateway and a common compression method, which are ineffective for a short packet transmission because the transmitted IoT data amount has to be reduced for limiting usable bandwidth; i.e., inefficient compression of a dictionary which does not reflect any optimum content; token size which does not reflect actual use of the dictionary; a temporal dictionary which is insufficiently used etc.SOLUTION: The data compression method temporarily reduces the token size when encoding the token by temporarily using a virtual dictionary for approximating continuous parts only in a used original dictionary while considering dictionary efficiency when storing/updating the dictionary to thereby efficiently transmit information required for a decoder to decode the token of the reduced size.SELECTED DRAWING: Figure 1

Description

本発明はデータ送信システム、特にデータ圧縮を用いるセンサデータ送信システムに関する。より詳細には、本発明は、送信されるモノのインターネット(IoT)/センサデータの量が利用可能な帯域幅の制約を理由に削減されなければならず、データ量を削減するために共通データ圧縮方法が使用される、制限された計算リソース及びメモリリソースを有するIoT/センサデータ送信ゲートウェイに関する。   The present invention relates to a data transmission system, and more particularly to a sensor data transmission system using data compression. More particularly, the present invention requires that the amount of Internet of Things (IoT) / sensor data transmitted must be reduced due to available bandwidth constraints, and common data to reduce the amount of data. The present invention relates to an IoT / sensor data transmission gateway having limited computational resources and memory resources in which a compression method is used.

安価で相互接続されたセンサ及びモノのインターネット(IoT)における増加するマシン対マシン(M2M)通信を組み合わせると、多くの場合すべてが単一又はいくつかのリモートサイトにデータを送信するデータソースがきわめて集中した量となるIoTアダプタに対する通信ニーズの変化、及び、センサデータの送信に関するリアルタイム又は疑似リアルタイムの制約に起因するかかるIoT配備に対する通信ニーズの変化、の両方が生じる。   Combining inexpensive and interconnected sensors and increased machine-to-machine (M2M) communications in the Internet of Things (IoT), many of the data sources that often send data to a single or several remote sites Both a change in communication needs for a concentrated amount of IoT adapters and a change in communication needs for such IoT deployments due to real-time or pseudo real-time constraints on the transmission of sensor data occur.

遠隔地域でのIoT配備の場合、多くの場合、次善のインターネット接続性しか利用できず、少なくともかかる配備の有効性を制限する。初期費用及び維持費の総額を低く抑えるためだけではなく、リモートアップリンクへの高額な投資を回避するためにも、利用できるネットワークリンクの活用は最適化しなければならない。   For IoT deployments in remote areas, often only suboptimal Internet connectivity is available, at least limiting the effectiveness of such deployments. The utilization of available network links must be optimized not only to keep the initial and maintenance costs low, but also to avoid expensive investments in remote uplinks.

IoT/センサデータは概して固定されたデータ構造及び変化する値を含み、単一のセンサは多くの場合異なるデータ構造の制限された量のみを含んだデータを生じさせる。データ送信は1つの単一センサのデータを含むか、複数のセンサのデータを結合する。したがって、単一センサのデータストリームは多くの場合、大量の反復及び複数のセンサからのデータを結合するIoT/センサデータストリームを含む。したがって、冗長性を削減する重複排除機構は、送信中のデータの量を削減する上で効果的である。   IoT / sensor data generally includes a fixed data structure and changing values, and a single sensor often produces data that includes only a limited amount of different data structures. The data transmission includes the data of one single sensor or combines the data of multiple sensors. Thus, a single sensor data stream often includes an IoT / sensor data stream that combines a large number of iterations and data from multiple sensors. Therefore, a deduplication mechanism that reduces redundancy is effective in reducing the amount of data being transmitted.

辞書圧縮は、反復パターンが辞書状のデータ構造に記憶され、辞書に対するポインタのみがネットワークを介して送信される1つの重複排除機構である。辞書に対するポインタが、該ポインタが指すパターンよりも小さい場合、送信されるデータ量を削減できる。   Dictionary compression is a deduplication mechanism in which repetitive patterns are stored in a dictionary-like data structure and only a pointer to the dictionary is transmitted over the network. When the pointer to the dictionary is smaller than the pattern pointed to by the pointer, the amount of data to be transmitted can be reduced.

類似する辞書は、送信機側と受信機側の両方で使用されなければならない。これは概して両側で類似する辞書作成アルゴリズムを実行することで達成される。複数の辞書が存在する場合、使用のためにある辞書が選択されなければならず、選択は同期して実行されなければならない。選択は、IPアドレス又はポート番号等のネットワークヘッダ情報、又はデータ自体の任意の統計的な属性のどちらかを使用し、その情報を選択元の辞書とともに記憶された情報と比較することで行われる。同期選択は両側で同じ選択機構を適用することで、又は最初に送信側で選択し、任意の形のマーカー若しくは識別子を送信することで該選択の決定を受信側に信号で知らせることによって実行される。   Similar dictionaries must be used on both the transmitter and receiver sides. This is generally accomplished by running a similar dictionary creation algorithm on both sides. If there are multiple dictionaries, one must be selected for use and the selection must be performed synchronously. Selection is done by using either network header information, such as IP address or port number, or any statistical attribute of the data itself, and comparing that information with the information stored with the selection source dictionary. . Synchronous selection is performed by applying the same selection mechanism on both sides, or by first selecting at the sender and signaling the selection decision to the receiver by sending any form of marker or identifier. The

送信されるデータが大体既知である場合、固定辞書が送信機側と受信機側の両方で準備でき、これらの準備された辞書に存在するデータストリームのパターンのみが圧縮される。静的なコンテンツに対しては高圧縮効率に達することができる一方、動的なコンテンツは全体的な圧縮効率の減少を引き起こす。動的なコンテンツは、入力データに適応する動的辞書を使用することで対処できる。   If the data to be transmitted is largely known, fixed dictionaries can be prepared on both the transmitter and receiver sides, and only the data stream patterns present in these prepared dictionaries are compressed. While high compression efficiency can be reached for static content, dynamic content causes a decrease in overall compression efficiency. Dynamic content can be dealt with by using a dynamic dictionary adapted to the input data.

単純な変形は、空の辞書から開始し、辞書の有限サイズに達するまで新しいパターンを連続して挿入することである。新規に追加されるパターンは受信機側に非ポインタとして送信されなければならない。これにより概して、辞書が十分な数の反復入力パターンを含むまでデータ圧縮の効率は削減される。この辞書生成段階の間の効率を改善するために、辞書は事前に初期設定可能である。   A simple variant is to start with an empty dictionary and insert new patterns continuously until a finite size of the dictionary is reached. The newly added pattern must be transmitted as a non-pointer to the receiver side. This generally reduces the efficiency of data compression until the dictionary contains a sufficient number of repetitive input patterns. To improve efficiency during this dictionary generation phase, the dictionary can be pre-initialized.

例えば非特許文献1で参照されるLempel−Ziv−Welch(LZW)圧縮アルゴリズムでは、辞書は入力英字のすべての単一文字で事前に初期化される。また、辞書が予想されるパターンで事前に圧縮されるが、動的にも更新されるハイブリッド機構も存在する。参照された特許参考文献1は、所定の辞書及び識別子並びに動的に作成された辞書及び識別子の両方とも使用されるが、一度作成された辞書は更新されず、したがって例えば変更された入力データに関して辞書の最適化を可能にしない機構を説明している。参照される特許文献2は、所定の通信ノードに/から送信される/受信されるデータの圧縮/拡張情報を決定する通信装置を説明している。所定の通信ノードからデータを受信すると、装置は所定の通信ノードに/から送信される/受信されるデータのために使用される複数の圧縮/拡張情報に基づいて受信されたデータの圧縮率を計算し、計算したデータ圧縮率に基づいて圧縮/拡張情報を決定する。   For example, in the Lempel-Ziv-Welch (LZW) compression algorithm referenced in Non-Patent Document 1, the dictionary is pre-initialized with every single character of the input alphabet. There is also a hybrid mechanism where the dictionary is pre-compressed with the expected pattern, but also updated dynamically. The referenced patent reference 1 uses both a predetermined dictionary and identifier as well as a dynamically created dictionary and identifier, but the dictionary once created is not updated, so for example with respect to changed input data Describes a mechanism that does not allow dictionary optimization. Referenced Patent Document 2 describes a communication apparatus that determines compression / extension information of data transmitted / received to / from a predetermined communication node. Upon receiving data from a given communication node, the device determines the compression rate of the received data based on a plurality of compression / expansion information used for data sent to / received from the given communication node. Calculate compression / extension information based on the calculated data compression rate.

米国第7,953,881号「Network characteristic−based compression of network traffic“、Jupiter Networks、2011年US 7,953,881 "Network characteristic-based compression of network traffic", Jupiter Networks, 2011 日本公開特許第2015−043502号Japanese Published Patent No. 2015-043502

「Technique for High−Performance Data Compression」、Welch,T.A,IEEE Computer、1984年“Technique for High-Performance Data Compression”, Welch, T .; A, IEEE Computer, 1984

辞書のサイズは有限であり、任意の一回に含まれるエントリの数を制限する。ネットワークを介して送信される辞書ポインタのサイズ、いわゆるトークンも辞書の最大サイズによって制限される。一般的に、トークンサイズは、辞書の最大サイズまで辞書に含まれるアイテムの数とともに継続して大きくなる。例えば大量の辞書を活用し、大量のデータを符号化するとき等、辞書エントリの活用が辞書全体を通して均等に分散される場合、大きいトークンサイズのオーバヘッドは、辞書ポインタで符号化できる大量のパターンによってバランスを保たれる。   The size of the dictionary is finite and limits the number of entries included at any one time. The size of a dictionary pointer, i.e., a token, transmitted via the network is also limited by the maximum size of the dictionary. In general, the token size continues to increase with the number of items included in the dictionary up to the maximum size of the dictionary. If the use of dictionary entries is evenly distributed throughout the dictionary, for example when using a large number of dictionaries and encoding a large amount of data, the large token size overhead is due to the large number of patterns that can be encoded with the dictionary pointer. Balanced.

しかしながら、IoT/センサデータ送信では、多くの場合、全体的な辞書のうち非常に少量のみを活用して非常に少量のデータ、いわゆるショートパケットが送信されなければならない。これにより、辞書ポインタのオーバヘッドは圧縮率にマイナス影響を及ぼし、圧縮効率の削減を引き起こす。解決策は辞書の最大サイズを削減することであるが、これは辞書の適用性を非常に狭くさせ、最新の送信のデータのみ又は複数のセンサからの送信の場合には、共通パターンの圧縮のみのどちらかに集中し、圧縮の全体的な効率を削減する。   However, in IoT / sensor data transmission, in many cases, a very small amount of data, so-called short packets, must be transmitted using only a very small amount of the entire dictionary. As a result, the overhead of the dictionary pointer has a negative effect on the compression rate and causes a reduction in compression efficiency. The solution is to reduce the maximum size of the dictionary, but this makes the applicability of the dictionary very narrow, only the most recent transmission data or, in the case of transmissions from multiple sensors, only compression of the common pattern. Focus on either and reduce the overall efficiency of compression.

複数の動的辞書を使用する辞書圧縮機構の再利用可能な動的辞書は、最初に作成された後は更新されないか、又は経時的な圧縮効率を考慮せずに無条件で更新され、事実上非効率で静的な辞書又はきわめて時間に特有な辞書になる。これにより、特に入力データのさまざまなパターンが経時的に変化するときに圧縮の効率が削減される。   Reusable dynamic dictionaries with a dictionary compression mechanism that uses multiple dynamic dictionaries are not updated after they are first created, or are updated unconditionally without considering the compression efficiency over time. It becomes an inefficient and static dictionary or a very time-specific dictionary. This reduces the efficiency of compression, especially when various patterns of input data change over time.

本発明はIoT/センサデータ送信の圧縮効率を改善することを目的とする。   The present invention aims to improve the compression efficiency of IoT / sensor data transmission.

本発明の一つの態様は、セッション辞書を使用することで転送データ圧縮を用いるデータ送信システムのためのデータ圧縮方法である。この方法は、
永久辞書ストアに複数の永久辞書を準備するための第1のステップと、
複数の永久辞書のうち1つの辞書を選択し、一時セッションメモリでセッション辞書を準備するために選択した永久辞書を複製するための第2のステップと、
セッション辞書を使用することで転送されるデータを圧縮するための第3のステップと、
セッション辞書の効率を評価するための第4のステップと、
セッション辞書が永久辞書として永久辞書ストアに記憶されるべきかどうかを、効率に基づいて識別するための第5のステップとを含む。より好ましくは、第2のステップはセッションをセットアップするときに実施され、第3のステップはセッション中に実施され、一時セッションメモリでセッション辞書を修正するためのステップを含む。そして、第4のステップ及び第5のステップはセッション中に繰り返し実施される。
One aspect of the present invention is a data compression method for a data transmission system that uses transfer data compression by using a session dictionary. This method
A first step for preparing a plurality of permanent dictionaries in a permanent dictionary store;
A second step for selecting one of the plurality of permanent dictionaries and duplicating the selected permanent dictionary to prepare the session dictionary in a temporary session memory;
A third step for compressing data transferred using the session dictionary;
A fourth step to evaluate the efficiency of the session dictionary;
And a fifth step for identifying based on efficiency whether the session dictionary is to be stored in the permanent dictionary store as a permanent dictionary. More preferably, the second step is performed when setting up the session, and the third step is performed during the session and includes a step for modifying the session dictionary in the temporary session memory. Then, the fourth step and the fifth step are repeatedly performed during the session.

本発明の別の態様は、プロセッサ、メモリ、及びネットワークに結合されたインタフェースを含むデータ転送のためのゲートウェイである。セッションセットアップ時、プロセッサが、セッションに関するネットワークパラメータに基づいて、メモリの永久辞書ストアの多数の圧縮辞書の中から1つを選択する。プロセッサは、選択した圧縮辞書をセッション辞書としてメモリのセッションストアにコピーする。プロセッサは、セッション辞書及びセッション辞書に対応する使用カウンタを更新しつつ、セッション辞書でセッションのデータトラフィックを圧縮する。プロセッサは、セッション辞書の使用カウンタに基づいて、永久辞書ストアにセッション辞書を記憶するかどうか決定を下す。   Another aspect of the present invention is a gateway for data transfer including an interface coupled to a processor, memory, and a network. During session setup, the processor selects one of a number of compressed dictionaries in a permanent dictionary store in memory based on network parameters for the session. The processor copies the selected compression dictionary to the session store of the memory as a session dictionary. The processor compresses session data traffic in the session dictionary while updating the session dictionary and usage counters corresponding to the session dictionary. The processor makes a decision whether to store the session dictionary in a permanent dictionary store based on the session dictionary usage counter.

本発明の別の態様は、セッション辞書を使用し、データを圧縮することで送信機装置から受信機装置へデータを転送するためのデータ送信システムである。送信機装置はプロセッサ及びメモリを含む。メモリは、第1のデータベース及び第2のデータベースを含み、第1のデータベースは、永久辞書及び永久辞書の効率パラメータの複数の組合せを記憶する。プロセッサは、データに基づいて第1のデータベースで1つの永久辞書を選択し、セッション辞書として第2のデータベースで選択した永久辞書のコピーを作成する。プロセッサは、セッション辞書を使用することでデータを圧縮し、プロセッサはセッション辞書を修正し、セッション辞書の効率パラメータを監視し、更新する。プロセッサは、永久辞書及びセッション辞書の効率パラメータに基づいて、永久辞書がセッション辞書によって上書きされるべきかどうかを判断する。   Another aspect of the present invention is a data transmission system for transferring data from a transmitter device to a receiver device by using a session dictionary and compressing the data. The transmitter device includes a processor and a memory. The memory includes a first database and a second database, wherein the first database stores a plurality of combinations of permanent dictionary and permanent dictionary efficiency parameters. The processor selects one permanent dictionary in the first database based on the data and creates a copy of the selected permanent dictionary in the second database as the session dictionary. The processor compresses the data by using the session dictionary, and the processor modifies the session dictionary and monitors and updates session dictionary efficiency parameters. The processor determines whether the permanent dictionary should be overwritten by the session dictionary based on the efficiency parameters of the permanent dictionary and the session dictionary.

本発明は、IoT/センサデータの送信のための圧縮効率を改善できる。   The present invention can improve compression efficiency for transmission of IoT / sensor data.

本実施例に関係する環境及びその相互に作用する構成要素の概要を示す構成要素ブロック図である。It is a component block diagram which shows the outline | summary of the environment relevant to a present Example, and the component which interacts with it. 本実施例に関係する機能構成要素を示すブロック図である。It is a block diagram which shows the functional component relevant to a present Example. 本実施例の辞書再利用動作に関する構成要素及びその相互作用の概要を示す図である。It is a figure which shows the outline | summary of the component regarding the dictionary reuse operation | movement of a present Example, and its interaction. 本実施例のトークンサイズ短縮動作に関する構成要素及びその相互作用の概要を示す図である。It is a figure which shows the outline | summary of the component regarding the token size shortening operation | movement of a present Example, and its interaction. 本実施例のハードウェア構成要素を示すブロック図である。It is a block diagram which shows the hardware component of a present Example. 本実施例の辞書再利用動作を示すシーケンス図である。It is a sequence diagram which shows the dictionary reuse operation | movement of a present Example. 本実施例の辞書再利用動作のプログラムフローを示す図である。It is a figure which shows the program flow of the dictionary reuse operation | movement of a present Example. 一時セッションメモリを示すスキーマである。Schema showing temporary session memory. 一時セッションメモリスキーマのための関係図である。FIG. 4 is a relationship diagram for a temporary session memory schema. セッション識別子を示すスキーマである。A schema indicating a session identifier. セッション辞書を示すスキーマである。A schema indicating a session dictionary. セッション使用カウンタを示すスキーマである。It is a schema which shows a session use counter. 辞書ID TCPオプションを示すスキーマである。Dictionary ID A schema indicating TCP options. 永久辞書ストアを示すスキーマである。It is a schema which shows a permanent dictionary store. 永久辞書ストアスキーマの関係図である。It is a relationship diagram of a permanent dictionary store schema. 記憶済みセッション識別子を示すスキーマである。It is a schema which shows the stored session identifier. 記憶済み辞書を示すスキーマである。This is a schema indicating a stored dictionary. 記憶済み使用カウンタ使用カウンタを示すスキーマである。It is a schema which shows a stored usage counter usage counter. 基準として一般辞書エンコーダを示すプログラムフローを示す図である。It is a figure which shows the program flow which shows a general dictionary encoder as a reference | standard. 基準として一般辞書デコーダを示すプログラムフローを示す図である。It is a figure which shows the program flow which shows a general dictionary decoder as a reference | standard. 本実施例の辞書再利用動作に関して連続辞書性能評価を実行する使用カウンタマネージャを示すプログラムフローを示す図である。It is a figure which shows the program flow which shows the use counter manager which performs continuous dictionary performance evaluation regarding the dictionary reuse operation | movement of a present Example. 本実施例の辞書再利用動作に関してデータ多様性及び辞書パターンに関する辞書の効率の異なる段階を示す辞書効率グラフである。It is a dictionary efficiency graph which shows the step which differs in the efficiency of the dictionary regarding data diversity and a dictionary pattern regarding the dictionary reuse operation | movement of a present Example. 本実施例の辞書再利用動作に関して記憶する又は更新する前の辞書使用検討のプログラムフローを示す図である。It is a figure which shows the program flow of the dictionary use examination before memorize | store or update regarding the dictionary reuse operation | movement of a present Example. 本実施例の辞書再利用動作に関して新規辞書を記憶する前の辞書性能検討のプログラムフローを示す図である。It is a figure which shows the program flow of the dictionary performance examination before memorize | storing a new dictionary regarding the dictionary reuse operation | movement of a present Example. 本実施例の辞書再利用動作に関して既存の辞書の更新の前の辞書性能比較のプログラムフローを示す図である。It is a figure which shows the program flow of the dictionary performance comparison before the update of the existing dictionary regarding the dictionary reuse operation | movement of a present Example. 本実施例のトークン短縮動作を示すシーケンス図である。It is a sequence diagram which shows the token shortening operation | movement of a present Example. 本実施例のトークンサイズ短縮動作に関して送信機側のIoTゲートウェイでの符号化を示すプログラムフローを示す図である。It is a figure which shows the program flow which shows the encoding in the IoT gateway by the side of a transmitter regarding the token size shortening operation | movement of a present Example. 本実施例のトークンサイズ短縮動作に関して制限辞書トークンサイズの計算を示すプログラムフローを示す図である。It is a figure which shows the program flow which shows calculation of a restriction | limiting dictionary token size regarding the token size shortening operation | movement of a present Example. 辞書エントリIDリストを示すスキーマである。It is a schema which shows a dictionary entry ID list. 制限辞書トークンを示すスキーマである。This is a schema indicating a restricted dictionary token. 本実施例のトークンサイズ短縮動作に関して受信機側のIoTゲートウェイでの復号を示すプログラムフローを示す図である。It is a figure which shows the program flow which shows the decoding in the receiver side IoT gateway regarding the token size shortening operation | movement of a present Example.

実施例は、2つの動作、つまり辞書再利用に関する第1の最適化動作及びトークンサイズに関する第2の最適化動作から成る。両方の動作は同時に利用されるが、該動作は理解を容易にするために別々に説明される。短い概要の後、より詳細な説明が続く。   The embodiment consists of two operations: a first optimization operation for dictionary reuse and a second optimization operation for token size. Both operations are used simultaneously, but the operations are described separately for ease of understanding. A short summary is followed by a more detailed explanation.

第1の最適化動作では、辞書圧縮効率測定が実行され、一時的なセッション辞書の記憶は辞書の圧縮効率に関する条件に結びつけられ、記憶済み辞書及び再利用可能な辞書の連続的な最適化を可能にする。   In the first optimization operation, a dictionary compression efficiency measurement is performed, and the temporary session dictionary storage is tied to a condition relating to the dictionary compression efficiency, and the stored dictionary and reusable dictionary are continuously optimized. to enable.

圧縮効率は概して使用される辞書で利用可能な反復パターンの量に関係する。辞書の再利用は圧縮が効率的になるまでの時間を短縮するが、辞書は概して圧縮されている入力データとともに発展し、したがって辞書の効率も変化している。本実施例を用いると、再利用に利用可能な辞書の効率が最適化され、一般辞書再利用の効率をさらに改善する。   Compression efficiency is generally related to the amount of repetitive patterns available in the dictionary used. While dictionary reuse reduces the time it takes for compression to be efficient, the dictionary generally evolves with the input data being compressed, and so the efficiency of the dictionary has also changed. When this embodiment is used, the efficiency of the dictionary that can be used for reuse is optimized, and the efficiency of reuse of the general dictionary is further improved.

第2の最適化動作では、符号化されたトークンの長さは、入力データの有限ブロックを符号化するときに実際に使用される辞書エントリの範囲のみを表すために削減される。概して、トークンは、使用されている辞書エントリの部分集合が小さくなるほど、より非効率になる辞書の任意のエントリを表すことがある。特に、センサデータ送信はデータの小さいバーストから成り、したがってトークンの範囲を制限するときに圧縮効率改善を可能にする。   In a second optimization operation, the length of the encoded token is reduced to represent only the range of dictionary entries that are actually used when encoding a finite block of input data. In general, a token may represent any entry in the dictionary that becomes less efficient as the subset of dictionary entries used is smaller. In particular, sensor data transmission consists of small bursts of data, thus allowing improved compression efficiency when limiting the range of tokens.

本実施例では、符号化は3つのステップで実行され、第1に使用されている辞書エントリのリストが生成され、第2のステップで、リストは制限範囲及び制限トークンサイズを計算するために使用され、第3のステップで、制限トークンサイズを有するトークンが、以前に生成されたリストを使用して生成される。   In this example, encoding is performed in three steps, generating a list of dictionary entries that are used first, and in the second step, the list is used to calculate the limit range and limit token size. In a third step, a token having a restricted token size is generated using the previously generated list.

本実施態様のより詳細な開示が続く。第1に、本実施態様の環境が図1を使用し、説明される。続いて、本実施例に関係する機能ブロックの構成要素が、図2を使用し、説明される。続いて、本実施例の一般的な動作のモードが説明される。この説明は、図3を使用する辞書再利用に関係する動作のモードの第1の説明、及び図4を使用するトークン短縮に関係する第2の説明に分けられる。   More detailed disclosure of this embodiment follows. First, the environment of this embodiment is described using FIG. Subsequently, components of the functional blocks related to the present embodiment will be described using FIG. Subsequently, a general mode of operation of the present embodiment will be described. This description is divided into a first description of the mode of operation related to dictionary reuse using FIG. 3 and a second description related to token shortening using FIG.

図1は、本実施例の環境を示している。IoT装置#1 100a、#2 100b等は送信機側のローカルエリアネットワーク(LAN)300aを介して送信機側のIoTゲートウェイ500aに接続される。送信機側のIoTゲートウェイ500aは、おそらくデータを変換し、接続されたIoT装置から1つ又は複数の遠隔受信機側のIoTゲートウェイ500bにデータを効率的に転送し、該1つ又は複数の遠隔受信機側のIoTゲートウェイ500bは入信データをおそらく再変換し、受信機側のLAN300bを介して以下の受信機♯1 200a、#2 200b等に入信データを転送する。   FIG. 1 shows the environment of this embodiment. The IoT devices # 1 100a, # 2 100b, and the like are connected to the transmitter-side IoT gateway 500a via the transmitter-side local area network (LAN) 300a. The transmitter-side IoT gateway 500a probably converts the data and efficiently transfers the data from the connected IoT device to one or more remote receiver-side IoT gateways 500b. The IoT gateway 500b on the receiver side probably converts the incoming data again, and transfers the incoming data to the following receivers # 1 200a, # 2 200b, etc. via the LAN 300b on the receiver side.

IoTゲートウェイ500a、500bは、本実施例に関して、それぞれ機能ブロック600a及び600bをそれぞれ利用する。例示的に、IoT装置#1 100と送信機側のIoTゲートウェイ500aとの間のメッセージ送信150a、及びIoT装置#2 100bと送信機側のIoTゲートウェイ500aとの間のメッセージ送信150bが示される。IoT装置#1 100aはヘッダ402a及びペイロード404aを有するメッセージ#1 400aを送信し、IoT装置#2 100bはヘッダ402b及びペイロード404bを有するメッセージ#2 400bを送信する。2つのIoTゲートウェイ500a、500bの間のメッセージは広域ネットワーク(WAN)320を介して送信される。   The IoT gateways 500a and 500b use function blocks 600a and 600b, respectively, in this embodiment. Illustratively, a message transmission 150a between the IoT device # 1 100 and the transmitter-side IoT gateway 500a, and a message transmission 150b between the IoT device # 2 100b and the transmitter-side IoT gateway 500a are shown. The IoT device # 1 100a transmits a message # 1 400a having a header 402a and a payload 404a, and the IoT device # 2 100b transmits a message # 2 400b having a header 402b and a payload 404b. Messages between the two IoT gateways 500a, 500b are transmitted over the wide area network (WAN) 320.

図2は、異なる構成要素間の関係するデータフロー、制御データフロー、及び情報アクセスフローだけではなく本実施例の機能ブロック600の構成要素も示す。   FIG. 2 shows the components of the functional block 600 of this embodiment, as well as the related data flow, control data flow, and information access flow between the different components.

以下の機能構成要素、つまりおそらくは永久辞書ストアの記憶されているデータを再利用し、異なるTCPセッションの入力データに関して既存の一時セッションメモリブロックを選択又は新規一時セッションメモリブロックを作成し、(図24及び図25に示されるサブフローを含んだ)図7、図23、及び図26に示される関係するプログラムフローで、一時セッションメモリから永久辞書ストアにデータを記憶することを検討し、おそらく実行するセッションハンドラ1600と、(図28に示されるサブフローを含んだ)図19及び図20に示される関係するプログラムフローで、未処理の入力データを圧縮し、トークンを放出するトークンエンコーダ1700と、図20及び図32に示される関係するプログラムフローで、トークン入力データを解凍し、解凍された未処理出力データを放出するトークンデコーダ1710と、図21に示される関係するプログラムフローで、辞書効率を周期的に計算する使用カウンタ(Ctr.)マネージャ1500とは、機能ブロックの一部である。   Reuse the following functional components, possibly stored data in the permanent dictionary store, select an existing temporary session memory block or create a new temporary session memory block for input data for a different TCP session (FIG. 24): And the relevant program flow shown in FIGS. 7, 23 and 26, considering storing data from the temporary session memory into the permanent dictionary store and possibly executing the session (including the subflow shown in FIG. 25) A handler 1600 and a token encoder 1700 that compresses raw input data and releases tokens in the related program flow shown in FIGS. 19 and 20 (including the subflow shown in FIG. 28), and FIGS. In the related program flow shown in FIG. A token decoder 1710 that decompresses input data and releases the decompressed raw output data, and a usage counter (Ctr.) Manager 1500 that periodically calculates dictionary efficiency in the related program flow shown in FIG. Is part of the functional block.

以下のデータ構造、つまりそれぞれがセッションID1110a、使用カウンタ1130a、及び辞書1120aを含むおそらく1つ又は複数の永久辞書ストアブロック1105aを含む永久辞書ストア1100と、それぞれがセッションID1010a、使用カウンタ1030a、辞書1020a、及び辞書エントリIDリスト1040aを含むおそらく1つ又は複数の一時セッションメモリブロック1005aを含む一時セッションメモリ1000は、機能ブロックの一部である。   Permanent dictionary store 1100, possibly including one or more permanent dictionary store blocks 1105a, each including session ID 1110a, usage counter 1130a, and dictionary 1120a, and session ID 1010a, usage counter 1030a, dictionary 1020a, respectively. And possibly one or more temporary session memory blocks 1005a including dictionary entry ID list 1040a are part of the functional block.

データフロー、制御データフロー、及び情報アクセスフローは、セッションハンドラ1600によって受信される入力ネットワークデータ400cを使用して説明され、セッションハンドラ1600はその後一時セッションメモリ1000にアクセスして、受信されたネットワークデータのヘッダ情報に関係する既存の一時セッションメモリブロックをおそらく選択する。一時セッションメモリブロックが見つからない場合、永久辞書ストアがアクセスされて、新規一時セッションメモリブロックを作成するときに再利用するために以前に記憶された永久辞書ストアブロックをおそらく選択する。記憶済み辞書が見つからない場合、一時セッションメモリが再びアクセスされて、新規一時セッションメモリブロックを作成する。   The data flow, control data flow, and information access flow are described using the input network data 400c received by the session handler 1600, which then accesses the temporary session memory 1000 to receive the received network data. Probably select an existing temporary session memory block related to the header information. If the temporary session memory block is not found, the permanent dictionary store is accessed and probably selects the previously stored permanent dictionary store block for reuse when creating a new temporary session memory block. If the stored dictionary is not found, the temporary session memory is accessed again to create a new temporary session memory block.

次いで、受信されたネットワークデータは、送信機側である場合はトークンエンコーダ1700、又は受信機側である場合はトークンデコーダ1710のどちらかに転送される。例えば、現在のセッションのセッションID等の関係する制御情報は、同様の方法で転送される。トークンエンコーダ1700は一時セッションメモリにアクセスして、セッション辞書及び辞書エントリIDリストを活用し、受信されたデータをトークンに符号化する。トークンはその後放出され、出力ネットワークデータ450aとして送信され、関係する使用制御情報は使用カウンタマネージャ1500に転送される。トークンデコーダ1710は一時セッションメモリにアクセスして、セッション辞書を活用しながら、受信されたデータのトークンをその元のデータに復号する。元のデータはその後放出され、出力ネットワークデータ450aとして送信され、関係する使用制御情報は使用カウンタマネージャ1500に転送される。   The received network data is then transferred to either the token encoder 1700 if it is on the transmitter side or the token decoder 1710 if it is on the receiver side. For example, related control information such as the session ID of the current session is transferred in the same manner. The token encoder 1700 accesses the temporary session memory and uses the session dictionary and dictionary entry ID list to encode the received data into a token. The token is then released and transmitted as output network data 450a and the relevant usage control information is forwarded to usage counter manager 1500. The token decoder 1710 accesses the temporary session memory and decodes the received data token into its original data while utilizing the session dictionary. The original data is then released and transmitted as output network data 450a and the relevant usage control information is forwarded to usage counter manager 1500.

使用カウンタマネージャ1500は、関係する一時セッションメモリブロックで使用カウンタにアクセスして、関係するカウンタを更新する。結果的に生じる情報はセッションハンドラ1600に制御データとして転送され、セッションハンドラ1600はその後、一時セッションメモリブロックの使用カウンタ1030aを、永久辞書ストアブロックの使用カウンタ1130とおそらく比較して、関係する一時セッションメモリブロックが永久辞書ストアに記憶されるべきかどうかを検討できる。   The usage counter manager 1500 accesses the usage counter in the relevant temporary session memory block and updates the relevant counter. The resulting information is transferred as control data to the session handler 1600, which then compares the temporary session memory block usage counter 1030a with the permanent dictionary store block usage counter 1130, possibly related temporary sessions. One can consider whether the memory block should be stored in a permanent dictionary store.

図3及び図4は、送信機側と受信機側両方の構成要素、並びにデータフロー、制御データフロー、及び情報アクセスフローを示す特定の実施例に関係する図2のブロック図の変形例である。図3は実施例1に関係する辞書再利用動作を示し、図4は実施例3に関係するトークンサイズ最適化動作を示している。どちらの図もそのそれぞれの実施例でより詳細に説明される。   3 and 4 are variations of the block diagram of FIG. 2 relating to specific embodiments showing both transmitter and receiver side components and data flow, control data flow, and information access flow. . FIG. 3 shows a dictionary reuse operation related to the first embodiment, and FIG. 4 shows a token size optimization operation related to the third embodiment. Both figures are described in more detail in their respective examples.

実施例1の説明のために、以下の図、つまり図3及び図5〜図25が使用される。   For the description of the first embodiment, the following figures, that is, FIGS. 3 and 5 to 25 are used.

図3は、データが送信機側ゲートウェイで受信され、符号化され、WANを介して送信され、受信機側ゲートウェイによって受信され、復号されるときの構成要素及び構成要素間のデータフローを説明する、本実施例の辞書再利用動作のブロックチャートである。   FIG. 3 illustrates the components and the data flow between the components when data is received at the transmitter gateway, encoded, transmitted over the WAN, received by the receiver gateway, and decoded. It is a block chart of the dictionary reuse operation | movement of a present Example.

図5は、ハードウェア構成要素ブロック及び本実施例を実現するための該ハードウェア構成要素ブロックの相互接続を示す。   FIG. 5 shows the hardware component blocks and the interconnection of the hardware component blocks to implement this embodiment.

図6は、本実施例の一般的な動作を示すシーケンス図である。   FIG. 6 is a sequence diagram showing a general operation of this embodiment.

図7は、ネットワークからの新規セッション要求が届くたびにセッションハンドラ1600で実行される、本実施例の辞書再利用動作に関係する動作の開始のプログラムフローを示すプログラムフロー図である。   FIG. 7 is a program flow diagram showing a program flow for starting an operation related to the dictionary reusing operation of this embodiment, which is executed by the session handler 1600 every time a new session request from the network arrives.

図8は、本実施例に関係する現在継続中の動作に関係するデータを記憶するために使用される、一時セッションメモリ1000のデータフィールドを示すデータスキーマである。   FIG. 8 is a data schema showing the data fields of the temporary session memory 1000 used to store data related to currently ongoing operations related to this embodiment.

図9は、他のスキーマのどのデータフィールドが図8の一時セッションメモリスキーマ1000によって参照されるのかを示すデータ関係図である。   FIG. 9 is a data relationship diagram showing which data fields of other schemas are referenced by the temporary session memory schema 1000 of FIG.

図10は、受信されたデータパケットのネットワークヘッダからの情報を比較することで、図8の一時セッションメモリのセッションを選択するときに使用される、セッション識別子のデータフィールドを示すデータスキーマである。   FIG. 10 is a data schema showing the data field of the session identifier used when selecting the session of the temporary session memory of FIG. 8 by comparing information from the network header of the received data packet.

図11は、データの圧縮及び解凍のために使用される、セッション辞書のデータフィールドを示すデータスキーマである。   FIG. 11 is a data schema showing the data fields of the session dictionary used for data compression and decompression.

図12は、図8の各一時セッションメモリに関係するセッション使用カウンタ情報を示すデータスキーマである。   FIG. 12 is a data schema showing session use counter information related to each temporary session memory of FIG.

図13は、例えば永久辞書ストアからの記憶済み辞書が選択された後に、両方のゲートウェイでの選択された辞書の存在を検証するためにゲートウェイ間で辞書IDを送信するときに使用される辞書ID TCPオプションのデータフィールドを示すデータスキーマである。   FIG. 13 shows the dictionary ID used when sending a dictionary ID between gateways to verify the existence of the selected dictionary at both gateways, for example after a stored dictionary from a permanent dictionary store is selected. It is a data schema which shows the data field of a TCP option.

図14は、後の再利用のために記憶される辞書に関係するデータを記憶するために使用される、データフィールド永久辞書ストア1100を示すデータスキーマである。   FIG. 14 is a data schema illustrating a data field permanent dictionary store 1100 that is used to store data related to a dictionary that is stored for later reuse.

図15は、他のスキーマのどのデータフィールドが図14の永久辞書ストアによって参照されるのかを示す、データ関係図である。   FIG. 15 is a data relationship diagram showing which data fields of other schemas are referenced by the permanent dictionary store of FIG.

図16は、例えば図7のプログラムフローに示されるように、辞書再利用動作に関係する動作の開始中に図14の永久辞書ストアから記憶済み辞書を検索するときに使用される、記憶済みセッション識別子のデータフィールドを示すデータスキーマである。   FIG. 16 illustrates a stored session used when retrieving a stored dictionary from the permanent dictionary store of FIG. 14 during the start of operations related to dictionary reuse operations, for example as shown in the program flow of FIG. It is a data schema which shows the data field of an identifier.

図17は、新規セッションの始まりで記憶済み辞書を再利用するときに使用される、記憶済み辞書のデータフィールドを示す、データスキーマである。   FIG. 17 is a data schema showing the stored dictionary data fields used when reusing a stored dictionary at the beginning of a new session.

図18は、図14の各永久辞書に関係する使用情報を含む、記憶済み使用カウンタのデータフィールドを示すデータスキーマである。   FIG. 18 is a data schema showing data fields of stored usage counters including usage information relating to each permanent dictionary of FIG.

図19は、WANを介する追加の送信のために入力センサデータを圧縮するために、送信機側トークンエンコーダ1700で実行される、簡略化された符号化動作のプログラムフローを示すプログラムフロー図である。   FIG. 19 is a program flow diagram illustrating a simplified encoding operation program flow performed by the transmitter token encoder 1700 to compress input sensor data for additional transmission over the WAN. .

図20は、WANからの圧縮データを解凍するために、受信機側トークンデコーダ1710で実行される、簡略化された復号動作のプログラムフローを示すプログラムフロー図である。   FIG. 20 is a program flow diagram showing a simplified program flow of the decoding operation executed by the receiver-side token decoder 1710 to decompress the compressed data from the WAN.

図21は、送信機側ゲートウェイ及び受信機側ゲートウェイ両方のカウンタマネージャ1500で実行される使用カウンタ管理動作のプログラムフローを示す、プログラムフロー図である。   FIG. 21 is a program flow diagram showing a program flow of a usage counter management operation executed by the counter manager 1500 of both the transmitter-side gateway and the receiver-side gateway.

図22は、図12の関係するセッション使用カウンタとともに経時的に説明される、セッション辞書の例示的な辞書効率グラフを示す折れ線グラフである。   FIG. 22 is a line graph illustrating an exemplary dictionary efficiency graph for a session dictionary, described over time with the related session usage counter of FIG.

図23は、一時セッションメモリ1000から永久辞書ストア1100の中へのセッション辞書の記憶を検討し、おそらく実行するために、送信機側と受信機側の両方のセッションハンドラ1700で実行される、辞書再利用チェック動作のプログラムフローを示す、プログラムフロー図である。   FIG. 23 illustrates a dictionary that is executed in both the transmitter and receiver session handlers 1700 to review and possibly perform storage of the session dictionary from the temporary session memory 1000 into the permanent dictionary store 1100. It is a program flow figure which shows the program flow of a reuse check operation | movement.

図24は、セッション辞書を評価して記憶することを検討するために、図23のプログラムフローのサブフローとして実行される、辞書チェック動作のプログラムフローを示すプログラムフロー図である。   FIG. 24 is a program flow diagram showing a program flow of a dictionary check operation that is executed as a subflow of the program flow of FIG. 23 in order to consider evaluating and storing a session dictionary.

図25は、記憶するために検討される一時セッションメモリ1000のセッション辞書、及び永久辞書ストア1100の以前に記憶された辞書を比較して、以前に記憶された辞書が上書きされるべきか、それともセッション辞書が削除されるべきかを決定するために、図23のプログラムフローのサブフローとして実行される辞書比較動作のプログラムフローを示す、プログラムフロー図である。   FIG. 25 compares the session dictionary in the temporary session memory 1000 considered for storage and the previously stored dictionary in the permanent dictionary store 1100 to see if the previously stored dictionary should be overwritten, or FIG. 24 is a program flow diagram showing a program flow of a dictionary comparison operation executed as a subflow of the program flow of FIG. 23 to determine whether a session dictionary should be deleted.

図3は、本実施例の機能構成要素及びデータフローを示す。この図では、入力データが送信機側ゲートウェイによって受信され、符号化され、WANを介して受信機側ゲートウェイに送信され、再び復号されるときの本実施例の構成要素及びデータフローが示される。   FIG. 3 shows functional components and data flow of this embodiment. In this figure, the components and data flow of this embodiment are shown when input data is received, encoded, transmitted to the receiver gateway via the WAN and decoded again.

図3は図2の機能ブロック図に類似しているが、送信機側と受信機側の両方が示され、辞書エントリIDリスト1040aは、本実施例に関連していないために省略される。ヘッダ402c及びペイロード404cを含むネットワークメッセージ400dは送信機側のセッションハンドラ1600aによって受信され、セッションハンドラ1600aは永久辞書ストア1100a及び一時セッションメモリ1000aの情報にアクセスして、ヘッダ402cからの情報を活用し、おそらく永久辞書ストア1100aからの以前に記憶されたデータを使用し、次いでデータと関係制御情報の両方をペイロード404dの実際の符号化が起こるトークンエンコーダ1700aに送信し、一時セッションメモリストア1000aの関係する一時セッションメモリ1005bからの情報にアクセスし、トークンを放出しながら、既存の一時セッションを選択するか新規の一時セッションを作成する。   FIG. 3 is similar to the functional block diagram of FIG. 2, but shows both the transmitter side and the receiver side, and the dictionary entry ID list 1040a is omitted because it is not relevant to this embodiment. The network message 400d including the header 402c and the payload 404c is received by the session handler 1600a on the transmitter side, and the session handler 1600a accesses the information in the permanent dictionary store 1100a and the temporary session memory 1000a and uses the information from the header 402c. , Perhaps using previously stored data from permanent dictionary store 1100a, and then sending both data and relationship control information to token encoder 1700a where the actual encoding of payload 404d occurs and relationship of temporary session memory store 1000a The information from the temporary session memory 1005b to be accessed is accessed, and an existing temporary session is selected or a new temporary session is created while releasing the token.

トークンは次いで、トークンメッセージ450bのペイロード454aとして放出及び送信され、関係する制御情報は、関係する一時セッションメモリ1005bのセッション使用カウンタ1030bにアクセスする使用カウンタマネージャ1500aに送信される。使用カウンタの結果は次いでセッションハンドラ1600aに制御情報として返送されて、一時セッションメモリの記憶の検討を可能にする。   The token is then released and transmitted as the payload 454a of the token message 450b, and the relevant control information is sent to the usage counter manager 1500a that accesses the session usage counter 1030b of the relevant temporary session memory 1005b. The usage counter result is then returned as control information to the session handler 1600a to allow consideration of the storage of temporary session memory.

トークンメッセージ450bはWAN320aを介して送信され、受信機側セッションハンドラ1600bによって受信され、受信機側セッションハンドラ1600bは永久辞書ストア1100b及び一時セッションメモリ1000bからの情報にアクセスして、送信機側と同様の方法で既存の一時セッションを選択する、又は新規一時セッションを作成する。   The token message 450b is transmitted via the WAN 320a and received by the receiver-side session handler 1600b. The receiver-side session handler 1600b accesses the information from the permanent dictionary store 1100b and the temporary session memory 1000b, and is similar to the transmitter side. An existing temporary session is selected by this method, or a new temporary session is created.

データ及び関係する制御情報は次いでトークンデコーダ1710aに転送され、トークンデコーダ1710aは、一時セッションメモリ1005cからの関係する情報にアクセスしつつ、トークンメッセージ450bのペイロード454aを復号する。結果的に生じる復号されたデータは、次いで受信機側の発信メッセージ470aで送信され、関係する制御情報は使用カウンタマネージャ1500bに送信され、使用カウンタマネージャ1500bは関係する一時セッションメモリ1005cの情報にアクセスし、セッションハンドラ1600bに制御情報を送り返し、セッションハンドラ1600bはその後一時セッションメモリの記憶を検討する。   The data and related control information are then transferred to the token decoder 1710a, which decodes the payload 454a of the token message 450b while accessing the related information from the temporary session memory 1005c. The resulting decoded data is then sent in the outgoing message 470a on the receiver side, the relevant control information is sent to the usage counter manager 1500b, and the usage counter manager 1500b accesses the information in the relevant temporary session memory 1005c. Then, control information is sent back to the session handler 1600b, and the session handler 1600b then considers storage of the temporary session memory.

図3に示される異なる構成要素間の協調及びデータ送信の効果は、永久辞書ストアへの一時セッション辞書の記憶と、2つのゲートウェイ間でデータのきわめて効率的な辞書の圧縮を可能にするための送信機側ゲートウェイ及び受信機側ゲートウェイの両方でのかかる記憶済み辞書の以後の同期された再利用とにある。   The effect of cooperation and data transmission between the different components shown in FIG. 3 is to enable the storage of a temporary session dictionary in a permanent dictionary store and a highly efficient dictionary compression of data between the two gateways. The subsequent synchronized reuse of such stored dictionaries at both the transmitter-side gateway and the receiver-side gateway.

図5は、ハードウェア構成要素ブロック及び本実施例を実現するための該ハードウェア構成要素ブロックの相互接続を示す。実施例1の展開は図1に示される展開と類似することがある。IoTゲートウェイ500は、図5に示される構成要素1800、つまりいずれもメッセージングバス1810に接続される中央演算処理装置(CPU)1820、一次メモリ1830、二次メモリ1840、第1のネットワークインタフェースカード(NIC)1850a及び第2のNIC1850bを含んでよい。   FIG. 5 shows the hardware component blocks and the interconnection of the hardware component blocks to implement this embodiment. The development of Example 1 may be similar to the development shown in FIG. The IoT gateway 500 includes a component 1800 shown in FIG. 5, that is, a central processing unit (CPU) 1820, a primary memory 1830, a secondary memory 1840, and a first network interface card (NIC), all connected to the messaging bus 1810. ) 1850a and a second NIC 1850b.

本実施例の機能ブロック600は、二次メモリ1840のプログラム命令の形で記憶され、初期化時に一次メモリ1830にコピーされ、CPU1820によって処理される。IoT装置とIoTゲートウェイとの間のネットワーク通信は第1のNIC1850aを使用して実行されてよく、該IoTゲートウェイと別のIoTゲートウェイとの間のネットワーク通信は、第2のNIC1850bを使用して実行されてよい。構成要素1800は、実施例の適用性を制限せずに変更することがある最小の構成を示す。1つの標準的な実施例によると、CPU1820は、本実施例に説明される機能を実施するためにメモリ1830又は1840に記憶されたプログラムを実行する。CPUの代わりにFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)を使用することも可能である。   The functional block 600 of this embodiment is stored in the form of program instructions in the secondary memory 1840, copied to the primary memory 1830 at initialization, and processed by the CPU 1820. Network communication between the IoT device and the IoT gateway may be performed using the first NIC 1850a, and network communication between the IoT gateway and another IoT gateway is performed using the second NIC 1850b. May be. The component 1800 represents the minimum configuration that may change without limiting the applicability of the embodiment. According to one standard embodiment, CPU 1820 executes a program stored in memory 1830 or 1840 to perform the functions described in this embodiment. It is also possible to use an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit) instead of the CPU.

図6は、実施例1に関するイベントの一般的なシーケンスを示す。IoT装置100cはセッション初期化要求7010を送信機IoTゲートウェイ500gに送信する。IoT装置100c自体は本実施例の一部ではない。送信機IoTゲートウェイ500gは初期化要求7010のネットワークヘッダ情報に基づいて、任意のセッション処理ブロック7020aを作成し、4500aでセッションIDを生成する。   FIG. 6 shows the general sequence of events for Example 1. The IoT device 100c transmits a session initialization request 7010 to the transmitter IoT gateway 500g. The IoT device 100c itself is not a part of this embodiment. The transmitter IoT gateway 500g creates an arbitrary session processing block 7020a based on the network header information of the initialization request 7010, and generates a session ID at 4500a.

その後、送信機IoTゲートウェイ500gは、以前に作成されたセッションIDにとって適切な辞書を用いて、4600aでセッション中の使用のために恒久的に記憶された辞書を検索し、選択する。送信機IoTゲートウェイ500gは次いで4110aで受信機IoTゲートウェイ500hに、以前に選択されたセッション辞書の辞書IDを含む初期化要求を送信する。   The transmitter IoT gateway 500g then searches and selects a permanently stored dictionary for use during the session at 4600a using a dictionary appropriate for the previously created session ID. The transmitter IoT gateway 500g then transmits an initialization request including the dictionary ID of the previously selected session dictionary to the receiver IoT gateway 500h at 4110a.

受信機IoTゲートウェイ500は、初期化要求4110aのネットワークヘッダ情報に基づいて任意のセッション処理ブロック7020bを作成し、4500bでセッションIDを生成する。続いて、受信機IoTゲートウェイ500は、4110bで受信された辞書IDを有し、4500bで計算されたセッションIDにとって適切な辞書で、4600bでセッション中に使用するための恒久的に記憶された辞書を検索し、その後選択する。かかる辞書が見つかると、セッション辞書として使用される。   The receiver IoT gateway 500 creates an arbitrary session processing block 7020b based on the network header information of the initialization request 4110a, and generates a session ID at 4500b. Subsequently, the receiver IoT gateway 500 has a dictionary ID received at 4110b and is a dictionary suitable for the session ID calculated at 4500b and a permanently stored dictionary for use during the session at 4600b. Search for and then select. If such a dictionary is found, it is used as a session dictionary.

受信機IoTゲートウェイ500hは次いで、7014で要求を肯定応答する受信機200cにセッション初期化要求7012を送信する。7030で、受信機IoTゲートウェイ500hは送信機IoTゲートウェイ500gにセッション辞書の辞書IDを含む肯定応答を返し、送信機IoTゲートウェイ500gは同様に7040でIoT装置100cにセッション初期化要求を肯定応答する。このとき、送信機IoTゲートウェイ500gと受信機IoTゲートウェイ500hのどちらも、データを符号化及び復号時にさらに使用するために同じセッション辞書を選択していた。7050で、IoT装置100cは、4300aで送信機IoTゲートウェイ500gで以前に選択されたセッション辞書を使用して符号化されるセンサデータを送信し、符号化されたデータを含むトークンメッセージが7060で転送される。   The receiver IoT gateway 500h then sends a session initialization request 7012 to the receiver 200c that acknowledges the request at 7014. At 7030, the receiver IoT gateway 500h returns an acknowledgment including the dictionary ID of the session dictionary to the transmitter IoT gateway 500g, and the transmitter IoT gateway 500g similarly acknowledges the session initialization request to the IoT device 100c at 7040. At this time, both the transmitter IoT gateway 500g and the receiver IoT gateway 500h have selected the same session dictionary for further use when encoding and decoding data. At 7050, the IoT device 100c transmits sensor data encoded using the session dictionary previously selected by the transmitter IoT gateway 500g at 4300a, and a token message including the encoded data is transferred at 7060. Is done.

受信機IoTゲートウェイ500hは、4400aで以前に選択されたセッション辞書を使用して受信されたデータを復号し、7070で受信機200cに復号されたデータを転送する。   Receiver IoT gateway 500h decodes the data received using the session dictionary previously selected at 4400a and forwards the decoded data to receiver 200c at 7070.

送信機IoTゲートウェイ500gは、符号化されたデータを転送後、6000aでそのセッション使用カウンタを更新する。続いて、送信機IoTゲートウェイ500gは4800aでそのセッション辞書の圧縮効率をチェックし始め、セッション辞書を恒久的に記憶するのに十分な圧縮効率を見つけた後に、4500aで生成された現在のセッションIDに適切な恒久的に記憶された辞書を検索し、恒久的に記憶された辞書を見つけた後に4900aでセッション辞書と見つかった辞書の圧縮効率を比較する。セッション辞書の圧縮効率が優れていることが判明し、その後セッション辞書の辞書IDが5500a及び恒久的に記憶されたセッション辞書で生成され、以前に見つかった永久辞書を上書きする。   After transmitting the encoded data, the transmitter IoT gateway 500g updates its session usage counter at 6000a. Subsequently, the transmitter IoT gateway 500g starts checking the compression efficiency of the session dictionary at 4800a, and after finding a compression efficiency sufficient to permanently store the session dictionary, the current session ID generated at 4500a. After searching for a permanently stored dictionary suitable for the search, the compression efficiency of the found dictionary is compared with the session dictionary in 4900a after finding the permanently stored dictionary. It turns out that the compression efficiency of the session dictionary is excellent, and then the dictionary ID of the session dictionary is generated with the session dictionary stored 5500a and permanently, overwriting the previously found permanent dictionary.

受信機IoTゲートウェイ500hは、復号されたデータを転送後、6000bでそのセッション使用カウンタを更新する。このとき、送信機IoTゲートウェイ500gでのセッション辞書と受信機IoTゲートウェイ500hでのセッション辞書のどちらも、同じ辞書圧縮機構を使用した結果、同じ内容を含む。さらに、送信機IoTゲートウェイ500gと受信機IoTゲートウェイ500h両方の使用カウンタは、非圧縮データ量及び圧縮データ量が同じであるため、同様の内容を含む。続いて、受信機IoTゲートウェイ500hは4800bでそのセッション辞書の圧縮効率のチェックを開始し、セッション辞書を恒久的に記憶するのに十分な圧縮効率を見つけた後に、4500bで生成された現在のセッションIDに適切な恒久的に記憶された辞書を検索し、恒久的に記憶された辞書を見つけた後に4900bでセッション辞書と見つかった辞書の圧縮効率を比較する。セッション辞書の圧縮効率が優れていることが判明し、その後セッション辞書の辞書IDが5500b及び恒久的に記憶されたセッション辞書で生成され、以前に見つかった永久辞書を上書きする。   The receiver IoT gateway 500h updates the session use counter at 6000b after transferring the decrypted data. At this time, both the session dictionary at the transmitter IoT gateway 500g and the session dictionary at the receiver IoT gateway 500h include the same contents as a result of using the same dictionary compression mechanism. Further, the usage counters of both the transmitter IoT gateway 500g and the receiver IoT gateway 500h include the same contents because the uncompressed data amount and the compressed data amount are the same. Subsequently, the receiver IoT gateway 500h starts checking the compression efficiency of the session dictionary at 4800b and after finding a compression efficiency sufficient to permanently store the session dictionary, the current session generated at 4500b. After searching the permanently stored dictionary appropriate for the ID and finding the permanently stored dictionary, the compression efficiency of the found dictionary and the session dictionary is compared in 4900b. It turns out that the compression efficiency of the session dictionary is excellent, and then the session dictionary dictionary ID is generated with 5500b and the permanently stored session dictionary, overwriting the previously found permanent dictionary.

使用カウンタが同様であるため、受信機IoTゲートウェイ500hで実行されたブロック4800b、4900b、及び5500bの結果は、送信機IoTゲートウェイ500gで実行されたブロック4800a、4900a、及び5500aの結果と同様である。したがって、ここでは送信機IoTゲートウェイ500gと受信機IoTゲートウェイ500hのどちらも、現在のセッション辞書で以前に記憶された永久辞書を更新した。   Because the usage counter is similar, the results of blocks 4800b, 4900b, and 5500b performed at receiver IoT gateway 500h are similar to the results of blocks 4800a, 4900a, and 5500a performed at transmitter IoT gateway 500g. . Thus, here both the transmitter IoT gateway 500g and the receiver IoT gateway 500h updated the permanent dictionary previously stored with the current session dictionary.

7050でIoT装置からのデータ送信で開始するシーケンスステップは、セッション辞書の辞書IDの作成、並びに5500aでは送信機IoTゲートウェイ500gの及び5500bでは受信機IoTゲートウェイ500hの永久辞書ストアでのセッション辞書の記憶まで、例えばIoT装置100cによってすべてのデータが送信されるまで、概して何回も繰り返される。   The sequence steps that start with data transmission from the IoT device at 7050 are the creation of the dictionary ID of the session dictionary and the storage of the session dictionary in the permanent dictionary store of the transmitter IoT gateway 500g in 5500a and in the receiver IoT gateway 500h in 5500b. Until, for example, all data is transmitted by the IoT device 100c, and is generally repeated many times.

図7は、ブロック4010で開始し、新規セッション要求が4030でネットワークから受信された後、セッションハンドラ1600で実行される、セッション初期化時の辞書選択に関する実施例1のプログラムフロー4000を示す。   FIG. 7 shows the program flow 4000 of Example 1 relating to dictionary selection at session initialization, which is executed by the session handler 1600 after a new session request is received from the network at 4030, starting at block 4010.

続いて、セッション識別子は、例えばIP目的地アドレス及びTCP目的地ポートといった、セッション要求を含む受信されたネットワークパケットのネットワークパケット情報に基づいて4040で生成される。4050で、現在のプログラムフローが送信機側ゲートウェイで実行されるかどうかがチェックされる。   Subsequently, a session identifier is generated 4040 based on the network packet information of the received network packet including the session request, eg, IP destination address and TCP destination port. At 4050, it is checked whether the current program flow is executed at the transmitter gateway.

肯定の場合、生成されたセッション識別子は、4054で、永久辞書ストアの一致するセッション識別子を含む永久辞書ストアブロックを検索するために使用される。4056で一致する記憶済み辞書が見つかった場合、以前に見つかった辞書の辞書IDを使用して、辞書ID TCPオプションが4100で作成される。   If so, the generated session identifier is used at 4054 to search for a permanent dictionary store block that contains a matching session identifier for the permanent dictionary store. If a matching stored dictionary is found at 4056, a dictionary ID TCP option is created at 4100 using the dictionary ID of the previously found dictionary.

その後、以前に作成された辞書ID TCPオプションを含む新規セッション要求が4110でWANに送信される。肯定応答が4120で受信され、4130で肯定応答は辞書ID TCPオプションについてチェックされる。4140で、かかるTCPオプションが見つかったかどうかがチェックされる。かかるTCPオプションが見つかった場合、辞書ID TCPオプションの辞書IDと以前に見つかった記憶済み辞書の辞書IDの両方が4150で比較される。4160で、以前の比較の結果がチェックされる。両方の辞書IDが等しい場合、プログラムフローは4164の発信ラベルSOから4166の入信ラベルSOがジャンプする。4170で、セッション辞書が以前に見つかった記憶済み辞書から作成される。   Thereafter, a new session request including the previously created dictionary ID TCP option is sent to the WAN at 4110. An acknowledgment is received at 4120 and at 4130 the acknowledgment is checked for dictionary ID TCP options. At 4140, it is checked whether such a TCP option has been found. If such a TCP option is found, both the dictionary ID TCP option dictionary ID and the previously found dictionary ID of the stored dictionary are compared 4150. At 4160, the result of the previous comparison is checked. If both dictionary IDs are equal, the program flow jumps from 4164 outgoing label SO to 4166 incoming label SO. At 4170, a session dictionary is created from previously stored stored dictionaries.

その後、4180で、新規セッション使用カウンタが作成される。続いて、4190で、プログラムフローが送信機側ゲートウェイで実行されるかどうかが再びチェックされる。肯定の場合、プログラムフローは4290で終わる。4056で一致する辞書が見つからなかった場合、4060で新規セッション辞書が作成され、4070で新規セッション使用カウンタが作成される。続いて、4075で、プログラムフローが送信機側ゲートウェイで実行されるかどうかが再びチェックされる。   Thereafter, at 4180, a new session usage counter is created. Subsequently, at 4190, it is checked again whether the program flow is executed at the transmitter gateway. If yes, the program flow ends at 4290. If no matching dictionary is found at 4056, a new session dictionary is created at 4060 and a new session usage counter is created at 4070. Subsequently, at 4075, it is checked again whether the program flow is executed at the transmitter gateway.

肯定の場合、追加のセッションセットアップが記憶済み辞書を使用することなく4080で実行され、4290でフローは終了する。否定の場合、フローは4290で直ちに終了する。4140で辞書ID TCPオプションが見つからなかった場合、プログラムフローは4244の発信ラベルSNから4246の入信ラベルSNにジャンプし、40060で新規セッションの作成、及び上記の通り以後のステップで続行する。   If yes, additional session setup is performed at 4080 without using a stored dictionary and the flow ends at 4290. If not, the flow ends immediately at 4290. If the dictionary ID TCP option is not found at 4140, the program flow jumps from the outgoing label SN at 4244 to the incoming label SN at 4246, continues at 40060 to create a new session, and the subsequent steps as described above.

比較された辞書IDが4160のチェックで異なる場合、プログラムフローは4244の発信ラベルSNから4246の入信ラベルSNにジャンプし、上記のように続行する。現在のプログラムフローがチェック4050で受信機側ゲートウェイで実行されると、その後受信されたパケットは4230で辞書ID TCPオプションについてチェックされる。4240で、かかるTCPオプションが見つかったかどうかがチェックされる。肯定の場合、見つかった辞書ID及び生成されたセッション識別子は、4250で、一致する辞書IDを有する辞書と一致するセッション識別子の両方を含む永久辞書ストアの永久辞書ストアブロックを検索するために使用される。   If the compared dictionary IDs are different in the 4160 check, the program flow jumps from the 4244 outgoing label SN to the 4246 incoming label SN and continues as described above. If the current program flow is executed at the receiver gateway at check 4050, then the received packet is checked at 4230 for the Dictionary ID TCP option. At 4240, it is checked whether such a TCP option is found. If yes, the found dictionary ID and generated session identifier are used at 4250 to search the permanent dictionary store block of the permanent dictionary store that includes both a dictionary with a matching dictionary ID and a matching session identifier. The

4260で、かかる永久辞書ストアブロックが見つかったかどうかがチェックされる。肯定の場合、プログラムフローは上述されたようにブロック4170で続行する。否定の場合、4280で、セッションセットアップ肯定応答は辞書IDなしに送信機側ゲートウェイに送信される。   At 4260, it is checked whether such a permanent dictionary store block has been found. If yes, program flow continues at block 4170 as described above. If not, at 4280, a session setup acknowledgment is sent to the transmitter gateway without a dictionary ID.

その後、プログラムフローは4244の発信ラベルSNから4246の入信ラベルSNにジャンプし、上述されたように続行する。辞書ID TCPオプションが4240の検査で見つからなかった場合、プログラムフローは4244の発信ラベルSNから4246の入信ラベルSNにジャンプし、上述されたように続行する。現在のプログラムフローが受信機側ゲートウェイで実行されることが4190の検査で明らかになった場合、4270で、辞書を含む辞書ID TCPオプションが生成され、生成された辞書ID TCPオプションを含むセッションセットアップ肯定応答が送信機側ゲートウェイに送信される。   The program flow then jumps from the outgoing label SN 4244 to the incoming label SN 4246 and continues as described above. If the dictionary ID TCP option is not found in the 4240 check, the program flow jumps from the outgoing label SN of 4244 to the incoming label SN of 4246 and continues as described above. If inspection of 4190 reveals that the current program flow is to be executed at the receiver-side gateway, at 4270, a dictionary ID TCP option including a dictionary is generated, and a session setup including the generated dictionary ID TCP option. An acknowledgment is sent to the transmitter gateway.

図7のプログラムフローの効果は、ネットワークパラメータによって識別された任意のアプリケーションデータの効率的な圧縮をターゲットとしたパターンを含む以前に記憶されたきわめて効率的な辞書の再利用にあり、これにより、送信機側と受信機側の両方が利用可能な選択された辞書を有するわけではない場合に、未使用の、つまり空の辞書が使用される可能性を含め、両方が同じ辞書を使用する。   The effect of the program flow of FIG. 7 is in the reuse of a previously stored highly efficient dictionary containing patterns targeted to efficient compression of any application data identified by network parameters, thereby If both the transmitter side and the receiver side do not have an available selected dictionary, both use the same dictionary, including the possibility of using an unused or empty dictionary.

図8は、例えば図5の一次メモリ1830に一時セッションメモリを記憶するために可能なデータ構造を説明する、実施例1の一時セッションメモリ1000eのスキーマを示す。   FIG. 8 shows a schema of the temporary session memory 1000e according to the first embodiment, explaining a data structure possible for storing the temporary session memory in the primary memory 1830 of FIG. 5, for example.

セッションIDフィールド1002は、IoTゲートウェイ500にとって内部のTCPセッションを参照し、このセッションとそのそれぞれの一時セッションメモリブロックとの間のマッピングを可能にする。セッション識別子IDフィールド1004はセッション識別子スキーマ2200bのIDフィールド2202bを参照する。セッション辞書IDフィールド1006は、セッション辞書ストア2300bのセッション辞書IDフィールド2360aを参照する。使用カウンタIDフィールド1008は、セッション使用カウンタテーブル2100bのIDフィールド2102bを参照する。使用済みリストIDフィールド1009は、辞書エントリIDリストストア2700のリストIDフィールド2710を参照する。   The session ID field 1002 refers to an internal TCP session for the IoT gateway 500 and allows mapping between this session and its respective temporary session memory block. The session identifier ID field 1004 refers to the ID field 2202b of the session identifier schema 2200b. The session dictionary ID field 1006 refers to the session dictionary ID field 2360a of the session dictionary store 2300b. The usage counter ID field 1008 refers to the ID field 2102b of the session usage counter table 2100b. The used list ID field 1009 refers to the list ID field 2710 of the dictionary entry ID list store 2700.

例示的な一時セッションメモリエントリ1005hは、セッションID6で使用され、セッション識別子ID23によって参照されるセッション識別子、セッション辞書ID223によって参照されるセッション辞書、使用カウンタID65によって参照されるセッション辞書、及び使用済みリストID233によって参照される辞書エントリIDリストを使用する。   An exemplary temporary session memory entry 1005h is used with session ID 6 and is referenced by session identifier ID 23, session identifier referenced by session dictionary ID 223, session dictionary referenced by usage counter ID 65, and used list. The dictionary entry ID list referenced by the ID 233 is used.

図8のスキーマの効果は、辞書の符号化及び復号に関係するデータ構造、並びにその関係する辞書使用、並びにメモリの複数の同時セッションの効率計算を管理し、効率的なアクセス及び比較を可能にする可能性にある。   The effect of the schema of FIG. 8 is to manage the data structure related to dictionary encoding and decoding, as well as its related dictionary usage, and the efficiency calculation of multiple simultaneous sessions in memory, enabling efficient access and comparison. There is a possibility to do.

図9は、図8の上述された一時セッションメモリスキーマがどのようにして図10、図11、図12、及び図30の異なる関係するスキーマを参照しているのかを示している。関係するスキーマは後述される。一時セッションメモリのセッションIDフィールド1002は、各一時セッションの一意の識別子である。   FIG. 9 shows how the above-described temporary session memory schema of FIG. 8 refers to the different related schemas of FIGS. 10, 11, 12, and 30. The related schema will be described later. The session ID field 1002 of the temporary session memory is a unique identifier of each temporary session.

セッション識別子フィールド1004は、図10のセッション識別子スキーマのIDフィールド2202bを参照する。セッション識別子IDフィールド1006は、図11のセッション辞書スキーマのセッション辞書IDフィールド2160bを参照する。使用カウンタIDフィールド1008は、図12のセッション使用カウンタスキーマのIDフィールド2102bを参照する。使用済みリストIDフィールド1009は、図29の辞書エントリIDリストスキーマのリストIDフィールド2710を参照する。このフィールドは本実施例に関係していないが、実施例3及び続く実施例に関係し、そこでより詳細に説明される。   The session identifier field 1004 refers to the ID field 2202b of the session identifier schema in FIG. The session identifier ID field 1006 refers to the session dictionary ID field 2160b of the session dictionary schema of FIG. The usage counter ID field 1008 refers to the ID field 2102b of the session usage counter schema in FIG. The used list ID field 1009 refers to the list ID field 2710 of the dictionary entry ID list schema of FIG. This field is not relevant to this example, but is relevant to Example 3 and subsequent examples, where it will be described in more detail.

図10は、例えば図5の一次メモリ1830にセッション識別子を記憶するために可能なデータ構造を説明する、実施例1のセッション識別子テーブル2200bを示している。セッション識別子テーブル2200bは、セッション識別子テーブル2200bのセッション識別子エントリごとに一意の識別子を含むIDフィールド2202b、WANの遠隔受信機200のIPアドレスを含む目的地IPアドレスフィールド2204b、及びWANの遠隔受信機200での目的地TCPポート番号を含む目的地TCPポートフィールド2206bから成る。   FIG. 10 shows a session identifier table 2200b according to the first embodiment, which explains a possible data structure for storing the session identifier in the primary memory 1830 of FIG. 5, for example. The session identifier table 2200b includes an ID field 2202b including a unique identifier for each session identifier entry of the session identifier table 2200b, a destination IP address field 2204b including the IP address of the WAN remote receiver 200, and the WAN remote receiver 200. In the destination TCP port field 2206b including the destination TCP port number.

例示的なセッション識別子1010gはID23、目的地IPアドレス10.10.0.1、及び目的地TCPポート番号1883を含む。図10のスキーマの効果は、ネットワークパケット受信時に関係する辞書の迅速な選択を可能にするために、現在使用中の辞書を伴う、関係するネットワークヘッダデータ識別子の記憶にある。   Exemplary session identifier 1010g includes ID 23, destination IP address 10.100.1, and destination TCP port number 1883. The effect of the schema of FIG. 10 resides in the storage of relevant network header data identifiers with the dictionary currently in use to allow quick selection of the relevant dictionary upon receipt of network packets.

図11は、例えば図5の一次メモリ1830にセッション辞書を記憶するために可能なデータ構造を説明する、実施例1のセッション辞書ストア2300bを示している。セッション辞書ストア2300bの中には、それぞれがセッション辞書ID2360aによって明確に識別される、ゼロ又は1つの又は複数のセッション辞書1020を記憶できる。   FIG. 11 shows the session dictionary store 2300b of the first embodiment, describing a possible data structure for storing the session dictionary in the primary memory 1830 of FIG. 5, for example. Zero or one or more session dictionaries 1020 can be stored in the session dictionary store 2300b, each clearly identified by a session dictionary ID 2360a.

セッション辞書は各セッション辞書1020に一意のエントリID2320b、文字列又はバイトパターンを含むパターン2330b、及び符号化又は復号中の辞書エントリの使用の数を含む使用カウンタ2340bによって明確に識別されるゼロ、1つ、又は複数のエントリを含む。使用カウンタ2340bは、使用別の辞書エントリの順序付けを作成するために使用できる。別の実施例では、使用カウンタ2340bはセッション辞書1020から放出される。   The session dictionary is uniquely identified by each session dictionary 1020 with a unique entry ID 2320b, a pattern 2330b containing a string or byte pattern, and a usage counter 2340b containing the number of usages of the dictionary entry being encoded or decoded. One or more entries. The usage counter 2340b can be used to create an ordering of dictionary entries by usage. In another embodiment, usage counter 2340b is released from session dictionary 1020.

別の実施例では、セッション辞書1020はより多くのフィールド又は他のフィールドを含み、他の情報による辞書エントリの順序付けを可能にする。例示的なセッション辞書1020jは、セッション辞書IDフィールド2360bのセッション辞書ID223によって識別され、ID27を有し、文字列パターン“Timestamp>”を含み、12511回使用された第1のエントリ2350cを有する少なくとも2つの辞書エントリを含む。   In another embodiment, the session dictionary 1020 includes more or other fields, allowing the ordering of dictionary entries by other information. An exemplary session dictionary 1020j is identified by session dictionary ID 223 in session dictionary ID field 2360b, has ID 27, includes the string pattern “Timestamp>”, and has at least two first entries 2350c used 12511 times. Contains one dictionary entry.

図12は、例えば図5の一次メモリ1830にセッション使用カウンタを記憶するために可能なデータ構造を説明する、実施例1のセッション使用カウンタテーブル2100bを示している。   FIG. 12 shows a session usage counter table 2100b according to the first embodiment for explaining a possible data structure for storing the session usage counter in the primary memory 1830 of FIG. 5, for example.

セッション使用カウンタテーブル2100bはセッション使用カウンタエントリ1030を含み、以下のフィールドを含む:セッション使用カウンタテーブル2100bの各セッション使用カウンタエントリを一意に識別するID2102b、送信機側のIoTゲートウェイ500aの未処理入力データの量又は受信機側のIoTゲートウェイ500bの処理済み出力データの量を含む非圧縮バイトフィールド2104b、送信機側のIoTゲートウェイ500aの処理済み出力データの量又は受信機側のIoTゲートウェイ500bの未処理入力データの量を含む圧縮バイトフィールド2106b、前回の圧縮バイト対非圧縮バイトの比率の浮動小数点数を含むRation‐1フィールド2108b、及び前回の圧縮バイト対非圧縮バイトの比率に対する、前回のもう1つ前の圧縮バイト対非圧縮バイトの比率の割合の浮動小数点数を含むRatio changen‐1フィールド2109b。 The session usage counter table 2100b includes a session usage counter entry 1030 and includes the following fields: an ID 2102b that uniquely identifies each session usage counter entry in the session usage counter table 2100b, and raw input data of the transmitter-side IoT gateway 500a. Or the uncompressed byte field 2104b containing the amount of processed output data of the IoT gateway 500b on the receiver side, the amount of processed output data of the IoT gateway 500a on the transmitter side, or the unprocessed of the IoT gateway 500b on the receiver side A compressed byte field 2106b containing the amount of input data, a Ratio n-1 field 2108b containing a floating point number in the ratio of the previous compressed byte to the uncompressed byte, and the previous compressed byte to the uncompressed byte. Ratio change n-1 field 2109b containing a floating point number that is the ratio of the ratio of the previous previous compressed byte to the uncompressed byte to the ratio of the first .

セッション使用カウンタ1030hの第1の例は、ID65を含み、4223372バイトの非圧縮入力データを受信し、3406483バイトの圧縮バイト、0.768838の以前の圧縮率、及び0.719096の以前の圧縮率の変化を生じさせた。これは、関係するセッションの圧縮効率が前回改善し、現在は悪化しているが、全体的な傾向は識別できないことを意味する。   The first example of the session usage counter 1030h includes ID 65, receives 4223372 bytes of uncompressed input data, receives 3406483 compressed bytes, a previous compression rate of 0.76888, and a previous compression rate of 0.719096 Caused changes. This means that the compression efficiency of the sessions involved has improved last time and is now worse, but the overall trend cannot be identified.

図12のスキーマの効果は、少数の使用パラメータ、並びに符号化動作及び復号動作の関係効率計算、並びに実質的にはメモリでのその関係辞書の効率計算の管理にあり、これによってアクセスは効率的であり、関係する計算は迅速に且つ効率的に実行できる。   The effect of the schema of FIG. 12 lies in the management of a small number of usage parameters and the relational efficiency calculation of the encoding and decoding operations, and in effect the efficiency calculation of its relational dictionary in memory, thereby making access efficient. And related calculations can be performed quickly and efficiently.

図13は、同じ辞書が送信側と受信側の両方で利用できることを検証するために、辞書IDを送信するために使用されるTCPオプションの可能な実施例を説明する、実施例1の辞書ID TCPオプション2500を示している。辞書ID TCPオプション2500は、TCPオプションIDフィールド2150、TCPオプション長フィールド2520、及び辞書IDフィールド2530を含む。TCPオプションIDフィールド2510とTCPオプション長フィールド2520のどちらも送信制御プロトコル(TCP)規格に関係する明細書文書によって説明される意味をもつ。   FIG. 13 illustrates the dictionary ID of Example 1 that illustrates a possible embodiment of the TCP option used to send the dictionary ID to verify that the same dictionary is available on both the sender and the receiver. TCP option 2500 is shown. The dictionary ID TCP option 2500 includes a TCP option ID field 2150, a TCP option length field 2520, and a dictionary ID field 2530. Both the TCP option ID field 2510 and the TCP option length field 2520 have the meaning described by the specification document relating to the Transmission Control Protocol (TCP) standard.

辞書IDフィールド2530は、永久辞書ストアの記憶済み辞書の16バイト辞書IDを含む。別の実施例では、辞書IDフィールド2530は記憶済み辞書の切り捨てられた辞書IDを含む。切り捨てられた辞書IDの使用により遠隔で辞書を参照するときの不明瞭さのリスクが高まるが、セッション識別子と組み合わせて使用することによりこのリスクは軽減する。   The dictionary ID field 2530 contains the 16-byte dictionary ID of the stored dictionary of the permanent dictionary store. In another embodiment, dictionary ID field 2530 contains the truncated dictionary ID of the stored dictionary. The use of a truncated dictionary ID increases the risk of ambiguity when referring to the dictionary remotely, but this risk is mitigated when used in combination with a session identifier.

図13の辞書ID TCPオプションの効果は、送信機と受信機の両方が同じ辞書を選択するように辞書選択の効率的な同期を可能にし、それにより受信機側が送信機側から送信される圧縮データのストリームから元のデータを取り出すことができることにある。   The effect of the dictionary ID TCP option of FIG. 13 enables efficient synchronization of dictionary selection so that both the transmitter and receiver select the same dictionary, thereby compressing the receiver side transmitted from the transmitter side. The original data can be extracted from the data stream.

図14は、例えば図5の一次メモリ1830に永久辞書ストアを記憶するために可能なデータ構造を説明する、実施例1の永久辞書ストア1100eのスキーマを示している。   FIG. 14 shows the schema of the permanent dictionary store 1100e of the first embodiment, describing a possible data structure for storing the permanent dictionary store in the primary memory 1830 of FIG. 5, for example.

IDフィールドはストア1100eの一意の番号であり、単一エントリに明確を参照することを可能にする。セッション識別子フィールド1104は、記憶済みセッション識別子テーブル2200aのIDフィールド2202aを参照する。辞書IDフィールド1106は、記憶済み辞書ストア2300の記憶済み辞書1120の辞書IDフィールド2310を参照する。使用カウンタIDフィールドは、記憶済み使用カウンタテーブル2100aのIDフィールド2102aを参照する。   The ID field is a unique number for the store 1100e that allows a clear reference to a single entry. The session identifier field 1104 refers to the ID field 2202a of the stored session identifier table 2200a. The dictionary ID field 1106 refers to the dictionary ID field 2310 of the stored dictionary 1120 of the stored dictionary store 2300. The usage counter ID field refers to the ID field 2102a of the stored usage counter table 2100a.

永久辞書ストア1100eの例示的な永久辞書ブロック1105kは、一意のID1によって識別され、ID19を有する記憶済みセッション識別子、ID cc7aabc37e1c7d2fe98be9185bdfe43bを有する記憶済み辞書、及び使用カウンタID151を有する記憶済み使用カウンタを参照する。   The example permanent dictionary block 1105k of the permanent dictionary store 1100e refers to a stored session identifier identified by a unique ID1 and having an ID of 19, a stored dictionary having an ID of cc7aabc37e1c7d2fe98be9185bdfe43b, and a stored usage counter having a usage counter ID of 151. .

図14の永久辞書ストアスキーマの効果は、辞書記憶及びメモリ内の辞書のその後の再利用に関するデータの効率的な管理にあり、これによりアクセスは効率的となり、上書きのための辞書選択及び可能な評価は、特に図8の関係する一時セッションメモリデータと連携して効率的且つ効果的となることができる。   The effect of the permanent dictionary store schema of FIG. 14 is in the efficient management of data relating to dictionary storage and subsequent reuse of the dictionary in memory, which makes access more efficient and allows dictionary selection and possible for overwriting. The evaluation can be efficient and effective, particularly in conjunction with the relevant temporary session memory data of FIG.

図15は、図14の上述された永久辞書ストアがどのようにして図16、図17、及び図18の異なる関係するスキーマを参照しているのかを示している。関係するスキーマは後述される。   FIG. 15 illustrates how the above-described permanent dictionary store of FIG. 14 refers to the different related schemas of FIGS. 16, 17 and 18. The related schema will be described later.

永久辞書ストアのセッションIDフィールド1102は、各記憶済みセッションの一意の識別子である。セッション識別子IDフィールド1104は、図16の記憶済みセッション識別子スキーマのIDフィールド2202aを参照する。辞書IDフィールド1106は、図17の記憶済み辞書スキーマの辞書IDフィールド2310aを参照する。使用カウンタIDフィールド1108は、図18の記憶済みセッション使用カウンタスキーマのIDフィールド2102aを参照する。   The session ID field 1102 of the permanent dictionary store is a unique identifier for each stored session. The session identifier ID field 1104 refers to the ID field 2202a of the stored session identifier schema in FIG. The dictionary ID field 1106 refers to the dictionary ID field 2310a of the stored dictionary schema in FIG. The usage counter ID field 1108 refers to the ID field 2102a of the stored session usage counter schema of FIG.

図16は、例えば図5の一次メモリ1830に、記憶済みセッション識別子を記憶するために可能なデータ構造を説明する、実施例1の記憶済みセッション識別子テーブル2200aを示している。概して、記憶済みセッション識別子テーブル2200aは、セッション識別子テーブル2200bに類似するフィールドを含む。セッション識別子テーブル2200bは一時セッションメモリに記憶されるが、記憶済みセッション識別子テーブル2200aは永久辞書ストアに記憶される。   FIG. 16 shows a stored session identifier table 2200a according to the first embodiment for explaining a possible data structure for storing the stored session identifier in the primary memory 1830 of FIG. 5, for example. In general, stored session identifier table 2200a includes fields similar to session identifier table 2200b. The session identifier table 2200b is stored in the temporary session memory, while the stored session identifier table 2200a is stored in the permanent dictionary store.

記憶済みセッション識別子は、記憶済みセッション識別子テーブル2200aの記憶済みセッション識別子エントリごとに一意の識別子を含むIDフィールド2202a、WANの遠隔受信機200のIPアドレスを含む目的地IPアドレスフィールド2204a、及びWANの遠隔受信機200での目的地TCPポート番号を含む目的地TCPポートフィールド2206aを含む。例示的な記憶済みセッション識別子1110dはID19、目的地IPアドレス10.0.0.1、及び目的地TCPポート番号1883を含む。   The stored session identifier includes an ID field 2202a that includes a unique identifier for each stored session identifier entry in the stored session identifier table 2200a, a destination IP address field 2204a that includes the IP address of the remote receiver 200 of the WAN, and a WAN A destination TCP port field 2206a including the destination TCP port number at the remote receiver 200 is included. Exemplary stored session identifier 1110d includes ID 19, destination IP address 10.0.0.1, and destination TCP port number 1883.

図17は、例えば図5の一次メモリ1830に、記憶済み辞書を記憶するために可能なデータ構造を説明する、実施例1の記憶済み辞書ストア2300aを示している。一般的に、セッション辞書1020は、記憶済み辞書ストア2300aに記憶済み辞書1120として記憶でき、したがってセッション辞書1020と記憶済み辞書1120の両方とも非常に類似している。辞書を記憶するときは、その辞書IDが計算され、記憶済み辞書1120の辞書IDフィールド2310aに記憶される。この数字は、辞書の内容を明確に識別する16バイトMD5ハッシュであり、セッション辞書1020のセッション辞書IDフィールド2360aとは異なる。   FIG. 17 shows the stored dictionary store 2300a of the first embodiment for explaining a possible data structure for storing the stored dictionary, for example, in the primary memory 1830 of FIG. In general, the session dictionary 1020 can be stored as a stored dictionary 1120 in the stored dictionary store 2300a, and thus both the session dictionary 1020 and the stored dictionary 1120 are very similar. When storing a dictionary, the dictionary ID is calculated and stored in the dictionary ID field 2310a of the stored dictionary 1120. This number is a 16-byte MD5 hash that clearly identifies the contents of the dictionary and is different from the session dictionary ID field 2360a of the session dictionary 1020.

記憶済み辞書ストア2300aでは、ゼロ又は1つの又は複数の記憶済み辞書1120を記憶できる。記憶済み辞書は、各記憶済み辞書1120に一意のエントリID2320a、文字列又はバイトパターンを含むパターン2330a、及び符号化又は復号中の辞書エントリの使用数を含む使用カウンタ2340aによって明確に識別されるゼロ、1つの、又は複数のエントリを含む。使用カウンタ2340aは、使用別の辞書エントリの順序付けを作成するために使用できる。   In the stored dictionary store 2300a, zero or one or a plurality of stored dictionaries 1120 can be stored. Stored dictionaries are clearly identified by a usage counter 2340a that includes a unique entry ID 2320a for each stored dictionary 1120, a pattern 2330a that includes a string or byte pattern, and the number of used dictionary entries being encoded or decoded. Contains one or more entries. The usage counter 2340a can be used to create an ordering of dictionary entries by usage.

他の実施例では、記憶済み辞書1120はセッション辞書1020に類似するフィールドを含む。例示的な記憶済み辞書1120dは、辞書ID cc7aabc37e1c7d2fe98be9185bdfe43bによって識別され、ID27を有し、文字列パターン“SetEquipmentStatus>”を含み、51216回使用された第1のエントリ2350aを有する、少なくとも2つの辞書エントリを含む。   In other embodiments, stored dictionary 1120 includes fields similar to session dictionary 1020. The example stored dictionary 1120d has at least two dictionary entries identified by the dictionary ID cc7aabc37e1c7d2fe98be9185bdfe43b, has ID27, includes the string pattern “SetEquipmentStatus>”, and has a first entry 2350a used 51216 times. Including.

図18は、例えば図5の一次メモリ1830に、記憶済み使用カウンタを記憶するために可能なデータ構造を説明する、実施例1の記憶済み使用カウンタテーブル2100aを示している。一般的に、セッション使用カウンタ1030は記憶済み使用カウンタテーブル2100aに記憶済み使用カウンタ1130として記憶でき、したがってセッション使用カウンタ1030と記憶済み使用カウンタ1130の両方のフィールドは類似している。   FIG. 18 shows a stored usage counter table 2100a according to the first embodiment for explaining a possible data structure for storing the stored usage counter, for example, in the primary memory 1830 of FIG. In general, the session usage counter 1030 can be stored in the stored usage counter table 2100a as a stored usage counter 1130, so that both fields of the session usage counter 1030 and the stored usage counter 1130 are similar.

記憶済み使用カウンタテーブル2100aは記憶済み使用カウンタエントリ1130を含み、以下のフィールドを含む:記憶済み使用カウンタテーブル2100aで各記憶済み使用カウンタエントリを一意に識別するID2102a、送信機側のIoTゲートウェイ500aの未処理入力データの量又は受信機側のIoTゲートウェイ500bの処理済み出力データの量のどちらかを含む非圧縮バイトフィールド2104a、送信機側のIoTゲートウェイ500aの処理済み出力データの量又は受信機側のIoTゲートウェイ500bの未処理入力データの量のどちらかを含む圧縮バイトフィールド2106a、前回の圧縮バイト対非圧縮バイトの比率の浮動小数点数を含むRation‐1フィールド2108a、及び前回の圧縮バイト対非圧縮バイトの比率に対する、前回のもう1つ前の圧縮バイト対非圧縮バイトの比率の割合の浮動小数点数を含むRatio changen‐1フィールド2109a。 The stored usage counter table 2100a includes a stored usage counter entry 1130 and includes the following fields: an ID 2102a that uniquely identifies each stored usage counter entry in the stored usage counter table 2100a, and the IoT gateway 500a on the transmitter side. Uncompressed byte field 2104a containing either the amount of unprocessed input data or the amount of processed output data of the IoT gateway 500b on the receiver side, the amount of processed output data of the IoT gateway 500a on the transmitter side or the receiver side A compressed byte field 2106a containing either the amount of raw input data of the IoT gateway 500b, a Ratio n-1 field 2108a containing a floating point number of the ratio of the previous compressed byte to the uncompressed byte, and the previous compressed byte A Ratio change n-1 field 2109a containing a floating point number that is the ratio of the ratio of the previous previous compressed byte to uncompressed byte to the ratio of uncompressed byte.

記憶済み使用カウンタ1130dの第1の例はID46を含み、2103636バイトの非圧縮入力データを受信し、1185188バイトの圧縮バイト、0.644605の以前の圧縮率、及び0.883436の以前の圧縮率の変化を生じさせた。良好な圧縮効率はわずかに劣化したが、再び回復した。   A first example of stored usage counter 1130d includes ID 46, receives 2103636 bytes of uncompressed input data, 1185188 bytes of compressed bytes, a previous compression ratio of 0.644605, and a previous compression ratio of 0.883436. Caused changes. Good compression efficiency was slightly degraded but recovered again.

図19は、使用量のカウントに必要な情報がどのようにして生成されるのかをよりよく理解するために、実施例1のエンコーダ4300bの簡略化されたプログラムフローを示している。このフローは、参照をサポートするために含まれる。辞書圧縮又は符号化機構の詳細は、該詳細が本実施例の一部ではないため省略されている。   FIG. 19 shows a simplified program flow of the encoder 4300b of the first embodiment in order to better understand how the information necessary for counting the usage amount is generated. This flow is included to support references. Details of the dictionary compression or encoding mechanism are omitted because the details are not part of this embodiment.

フローはステップ4310で開始し、ステップ4315で送信機側のIoTゲートウェイ500aのトークンエンコーダ1700で実行される。第1に、データブロックは4320で読み取られる。このデータブロックは通常、ネットワークインタフェースから受信された新規データで充填された任意の受信バッファである。ステップ4330で、辞書符号化は、現在の一時セッション辞書を使用し、読み取られたブロックに対して実行され、トークン化された出力データが放出される。   The flow starts at step 4310, and is executed by the token encoder 1700 of the transmitter-side IoT gateway 500a at step 4315. First, the data block is read at 4320. This data block is usually any receive buffer filled with new data received from the network interface. At step 4330, dictionary encoding is performed on the read block using the current temporary session dictionary, and tokenized output data is emitted.

その後、ステップ4340で、読み取られたデータのサイズが、現在の一時セッションメモリブロックの使用カウンタIDフィールドによって参照されているセッション使用カウンタ1030の非圧縮バイトフィールド2104bに追加され、ステップ4350で、放出された符号化データのサイズが、現在の一時セッションメモリブロックの使用カウンタIDフィールドによって参照されているセッション使用カウンタの圧縮バイトフィールド2106bに追加される。次のステップ4315で、プログラムは終了する。   Thereafter, at step 4340, the size of the read data is added to the uncompressed byte field 2104b of the session usage counter 1030 referenced by the usage counter ID field of the current temporary session memory block, and released at step 4350. The size of the encoded data is added to the compressed byte field 2106b of the session usage counter referenced by the usage counter ID field of the current temporary session memory block. In the next step 4315, the program ends.

図20は、図19のエンコーダプログラムに類似するデコーダ4400bの簡略化されたプログラムフローを示している。このフローはステップ4410で開始し、ステップ4415に説明されるように、受信機側のIoTゲートウェイ500bのトークンデコーダ1710で実行される。まず、符号化されたデータのブロックは4420で読み取られる。   FIG. 20 shows a simplified program flow for a decoder 4400b similar to the encoder program of FIG. This flow starts at step 4410 and is executed by the token decoder 1710 of the IoT gateway 500b on the receiver side as described in step 4415. First, the encoded block of data is read at 4420.

その後、辞書復号が、現在の一時セッション辞書を使用し、ステップ4430で実行され、復号されたデータが放出される。概して、入力データは受信バッファから読み取られ、出力データは送信バッファに書き込まれる。一実施例では、受信バッファと送信バッファの両方とも、図5の一次メモリ1830の一部である。   Thereafter, dictionary decryption is performed at step 4430 using the current temporary session dictionary and the decrypted data is released. In general, input data is read from the receive buffer and output data is written to the transmit buffer. In one embodiment, both the receive buffer and the transmit buffer are part of the primary memory 1830 of FIG.

以後のステップ4400で、入力データのサイズは、現在の一時セッションメモリブロックの使用カウンタIDフィールドによって参照されているセッション使用カウンタ1030の圧縮バイトフィールド2104bに追加され、その後、出力データのサイズは、現在の一時セッションメモリブロックの使用カウンタIDフィールドによって参照されているセッション使用カウンタの非圧縮バイトフィールド2106bに追加される。最後に、プログラムはステップ4415で終了する。   In subsequent step 4400, the size of the input data is added to the compressed byte field 2104b of the session usage counter 1030 referenced by the current temporary session memory block usage counter ID field, after which the size of the output data is Is added to the uncompressed byte field 2106b of the session usage counter referenced by the usage counter ID field of the temporary session memory block. Finally, the program ends at step 4415.

図21は、例えば使用される辞書の効率を評価するために、データの符号化又は復号の間又は後にセッション使用カウンタにアクセスし、更新することに関係する動作を説明する、使用カウンタマネージャ1500で実行される、実施例1の使用カウンタマネージャフロー6000cを示している。   FIG. 21 illustrates a usage counter manager 1500 that illustrates operations related to accessing and updating the session usage counter during or after data encoding or decoding, for example, to evaluate the efficiency of the dictionary used. Fig. 7 illustrates a usage counter manager flow 6000c of Example 1 that is executed.

使用カウンタマネージャフロー6000cは、ステップ6010で開始され、ステップ6015に説明されるように、受信機側のIoTゲートウェイ500bの使用カウンタマネージャ1500bだけではなく、送信機側のIoTゲートウェイ500aの使用カウンタマネージャ1500aで実行される。ステップ6020では、前回の辞書効率が、現在時刻tnow及び以前のタイムスタンプtprevを使用して計算されて以降、時間が経過している。ステップ6030で、経過した時間が任意の定義された限度εを超えるかどうかがチェックされる。検査が肯定的である場合、現在の一時セッションメモリブロックの使用カウンタIDフィールド1008によって参照される図12のセッション使用カウンタのRation‐1フィールドの内容は、ステップ6040でRation‐2に書き込まれる。 The usage counter manager flow 6000c starts at step 6010 and, as described in step 6015, not only the usage counter manager 1500b of the IoT gateway 500b on the receiver side, but also the usage counter manager 1500a of the IoT gateway 500a on the transmitter side. Is executed. In step 6020, time has elapsed since the previous dictionary efficiency was calculated using the current time tnow and the previous time stamp tprev . In step 6030, it is checked whether the elapsed time exceeds any defined limit ε. If the check is positive, the contents of the Ratio n-1 field of the session usage counter of FIG. 12 referenced by the current temporary session memory block usage counter ID field 1008 is written to Ratio n-2 in step 6040. .

その後、ステップ6050で、現在の圧縮率Ration‐1は、現在の一時セッションメモリブロックの使用カウンタIDフィールド1008によって参照されるセッション使用カウンタの圧縮バイトフィールドの内容及び現在の一時セッションメモリブロックの使用カウンタIDフィールド1008によって参照されるセッション使用カウンタの非圧縮バイトフィールドの内容を使用して計算され、結果は、現在の一時セッションメモリブロックの使用カウンタIDフィールド1008によって参照されるセッション使用カウンタのRation‐1フィールドに書き込まれる。 Thereafter, in step 6050, the current compression ratio Ratio n-1 is determined by the contents of the compressed byte field of the session usage counter referenced by the current temporary session memory block usage counter ID field 1008 and the current temporary session memory block usage. is calculated using the contents of the uncompressed byte field session usage counter referenced by the counter ID field 1008, the result is, Ratio n session usage counter referenced by the usage counter ID field 1008 of the current temporary session memory block -Written in the 1 field.

続いて、ステップ6060で、比率の変化が、以前に計算されたRation‐1フィールド及び以前に計算されたRation‐2を使用して計算され、結果は、現在の一時セッションメモリブロックの使用カウンタIDフィールド1008によって参照されるセッション使用カウンタのRatio changen‐1に書き込まれる。続くステップ6070で、以前のタイムスタンプtprevは現在時刻tnowに更新され、プログラムフローはステップ6099で終わる。ステップ6030の検査が否定的であった場合、プログラムフローは終了ステップ6099で直接的に続行する。別の実施例では、プログラムフロー6000cのステップ6020及び6030のチェック及び関係する条件文は、経過時間の代わりに処理済みデータ量に左右される。図21のフローの効果は、以前に記憶され、更新された辞書使用パラメータに基づいた辞書効率の効率的な計算にある。 Subsequently, at step 6060, the ratio change is calculated using the previously calculated Ratio n-1 field and the previously calculated Ratio n-2 , and the result is the current temporary session memory block usage. It is written to the ratio change n-1 of the session use counter referenced by the counter ID field 1008. In the following step 6070, the previous time stamp t prev is updated to the current time t now and the program flow ends in step 6099. If the test at step 6030 is negative, program flow continues directly at end step 6099. In another embodiment, the checking of steps 6020 and 6030 and related conditional statements in program flow 6000c depend on the amount of processed data instead of the elapsed time. The effect of the flow of FIG. 21 lies in an efficient calculation of dictionary efficiency based on previously stored and updated dictionary usage parameters.

図22は、実施例1の以下の辞書再利用ストアチェックフローで検査される使用カウンタ測定値及び条件の背後にある論法を説明する目的で、一時セッション辞書の辞書効率の3つのグラフを示している。グラフは、以下の段落で説明されるように、辞書効率の3つの標準的な変化を示す。   FIG. 22 shows three graphs of the dictionary efficiency of the temporary session dictionary for the purpose of explaining the reasoning behind usage counter measurements and conditions examined in the following dictionary reuse store check flow of Example 1. Yes. The graph shows three standard changes in dictionary efficiency, as described in the following paragraphs.

グラフは、圧縮率の変化、つまり経時的な圧縮効率を示す。圧縮率が低いほど、圧縮利得は高くなる。別の実施例では、時間との関係の代わりに、処理済みデータ量との関係を使用できる。一番上のグラフA9510は、ほとんど変化しないデータが処理されるときの標準的な段階を示し、辞書は当初ほとんど適切なエントリなしに開始したが、圧縮率が経時的によくなっていくように、迅速に適切なパターンを追加している。現在の比率、現在の比率変化、及び以前の比率変化のすべてが効率の改善を示している。   The graph shows the change in compression rate, that is, the compression efficiency over time. The lower the compression ratio, the higher the compression gain. In another embodiment, a relationship with the amount of processed data can be used instead of a relationship with time. The top graph A9510 shows the standard stage when data that hardly changes is processed, the dictionary initially started with almost no appropriate entries, so that the compression ratio improves over time. You are quickly adding the appropriate pattern. The current ratio, current ratio change, and previous ratio change all indicate an improvement in efficiency.

第2のブラフB9520で、辞書エントリは処理されているデータとよく一致し、圧縮率のわずかな変化が発生するが、全体的に圧縮率は同じままである。現在の比率が効率を示す、又は以前の比率変化が効率の改善を示す、又は以前の変化及び最後から2番目の比率変化の比較が改善傾向を示す。   In the second bluff B9520, the dictionary entry matches well with the data being processed and a slight change in the compression ratio occurs, but the overall compression ratio remains the same. The current ratio indicates efficiency, or the previous ratio change indicates an improvement in efficiency, or a comparison of the previous change and the penultimate ratio change indicates an improvement trend.

グラフC9530で、辞書は、入信データと一致せず、十分に迅速に調整することができず、瞬間的な非効率を生じさせるだけではなく、劣化傾向を示している。   In graph C9530, the dictionary does not match incoming data and cannot be adjusted quickly enough, not only causing momentary inefficiency, but also showing a tendency to degrade.

図23は、セッション辞書の永久辞書ストアへの記憶を検討するために、送信機側と受信機側両方のセッションハンドラ1700で実行される辞書再利用チェックのプログラムフロー4700を示す、プログラムフロー図である。   FIG. 23 is a program flow diagram showing a program flow 4700 of a dictionary reuse check that is performed by both the transmitter and receiver session handlers 1700 to consider storing a session dictionary in a permanent dictionary store. is there.

プログラムフローはステップ4710aで開始し、4710aでセッションハンドラ1700によって周期的に実行される。続いて、辞書効率は4800dで図24のチェック使用サブフローを呼び出すことによってチェックされる。結果が4720aで「十分」であるかどうかのチェックが肯定的である場合、4722aで、一致するセッション識別子を有する辞書が永久辞書ストアで検索される。   The program flow begins at step 4710a and is periodically executed by the session handler 1700 at 4710a. Subsequently, the dictionary efficiency is checked at 4800d by calling the check usage subflow of FIG. If the check is positive if the result is “sufficient” at 4720a, then at 4722a, a dictionary with a matching session identifier is searched in the permanent dictionary store.

類似する辞書が4725aで見つかった場合、現在のセッション使用カウンタと見つかった記憶済み使用カウンタの両方が、4900で図25の使用比較サブフローを呼び出すことによって比較される。結果が「記憶済み使用カウンタの方が悪い」であるかどうかの4730aのチェックが肯定的である場合、プログラムフローはステップ4735aで続行し、すべての辞書エントリID及び辞書のパターンに対するMD5ハッシュを生成することで、現在使用されている一時セッション辞書の辞書IDを生成する。4740aで、以前に見つかった永久辞書ストアブロックの辞書が次いで現在の一時セッション辞書で上書きされ、辞書IDが追加される。4745aで、以前に見つかった永久辞書ストアブロックの記憶済み使用カウンタが次いで現在のセッション使用カウンタで上書きされる。   If a similar dictionary is found at 4725a, both the current session usage counter and the found stored usage counter are compared at 4900 by invoking the usage comparison subflow of FIG. If the result of 4730a is positive if the result is “Better Stored Usage Counter”, program flow continues at step 4735a to generate MD5 hashes for all dictionary entry IDs and dictionary patterns. By doing so, the dictionary ID of the temporary session dictionary currently used is generated. At 4740a, the previously found permanent dictionary store block dictionary is then overwritten with the current temporary session dictionary and the dictionary ID is added. At 4745a, the previously used permanent dictionary store block stored usage counter is then overwritten with the current session usage counter.

続くステップ4799aで、プログラムフローは終了する。4730aの検査が否定的である、つまり4900の呼び出されたサブフローの放出された結果が「記憶済み使用カウンタの方が良い」である場合、プログラムフローはステップ4799aで直ちに終了する。   In the following step 4799a, the program flow ends. If the test at 4730a is negative, that is, the released result of the 4900 called subflows is "Better Stored Usage Counter", then the program flow ends immediately at step 4799a.

4725aの検査が否定的である、つまりステップ4722aの位置する記憶済み辞書に対する検索で一致する辞書が見つからなかった場合、現在使用されている一時セッション辞書の辞書IDは、上述されたステップ4735aと同様に、辞書のすべての辞書エントリID及びパターンに対するMD5ハッシュを生成することで、4750aで生成される。   If the check at 4725a is negative, that is, if no matching dictionary is found in the search for the stored dictionary located at step 4722a, the dictionary ID of the currently used temporary session dictionary is the same as step 4735a described above. In addition, an MD5 hash is generated for all dictionary entry IDs and patterns in the dictionary, which is generated at 4750a.

続いて、4755aで、新規の記憶済み辞書が、現在の一時セッション辞書の内容及び以前に生成された辞書IDで生成される。続いてステップ4760aで、新規の記憶済みセッション識別子が現在の一時セッション識別子の内容で生成される。その後、ステップ4765aで、新規の記憶済み使用カウンタは現在の一時セッション使用カウンタの内容で生成される。   Subsequently, at 4755a, a new stored dictionary is generated with the contents of the current temporary session dictionary and the previously generated dictionary ID. Subsequently, at step 4760a, a new stored session identifier is generated with the contents of the current temporary session identifier. Thereafter, at step 4765a, a new stored usage counter is generated with the contents of the current temporary session usage counter.

以前の3つのステップ4755a、4760a、及び4765aで生成されるデータ構造は、永久辞書ストアの新規の永久辞書ストアブロックに恒久的に記憶される。プログラムフローは次いでステップ4799aで終了する。4720aの検査が否定的であった、つまり以前のステップ4800dで呼び出されたサブフローの放出された結果が「不十分」だった場合、プログラムフローはステップ4799aで直ちに終了する。   The data structure generated in the previous three steps 4755a, 4760a, and 4765a is permanently stored in a new permanent dictionary store block of the permanent dictionary store. The program flow then ends at step 4799a. If the test at 4720a is negative, that is, the released result of the subflow called at the previous step 4800d is “insufficient”, then the program flow ends immediately at step 4799a.

図23のプログラムフローの効果は、辞書効率の、例えば連続的な等繰り返される評価及び検討であり、これにより辞書は、その効率が、実際のセッション状態又は状態の変化とは関係なく極大に達すると記憶できる。これは、例えば、データパケットが受信され、圧縮されるたびに辞書効率変化の評価を可能にする。   The effect of the program flow of FIG. 23 is the repeated evaluation and review of dictionary efficiency, eg continuous, so that the dictionary reaches its maximum regardless of the actual session state or state changes. Then you can remember. This allows, for example, evaluation of dictionary efficiency changes each time a data packet is received and compressed.

圧縮効率の計算及び関係する評価が、セッション使用カウンタが更新されるたびに実行される場合、評価は連続的と呼ばれる。それ以外の場合、各評価間の固定距離 − データの量又は期間のどちらかに関する − が使用される場合、評価は周期的である。1つのかかる例は、固定数の非圧縮バイトの後、例えば100Kbytesごとの周期的な評価である。別の例は、固定時間の後、例えば1時間おきの周期的な評価である。   If the compression efficiency calculation and the associated evaluation are performed each time the session usage counter is updated, the evaluation is called continuous. Otherwise, the assessment is periodic if a fixed distance between each assessment-either in terms of amount of data or duration-is used. One such example is a periodic evaluation, for example every 100 Kbytes, after a fixed number of uncompressed bytes. Another example is a periodic evaluation after a fixed time, for example every hour.

かかる繰り返される評価は、それが辞書効率の評価及びセッション辞書の記憶の関係する検討に使用されるまで、セッションで収集され結合される関係する情報の量と、実際にかかる効率評価の結果の詳細のより細かいレベルとの微調整を可能にする。   Such repeated evaluations will detail the amount of relevant information collected and combined in the session, and the actual results of such efficiency evaluations, until it is used for related considerations of dictionary efficiency evaluation and session dictionary storage. Allows fine-tuning with finer levels.

図24は、現在使用されている一時セッション辞書の効率が永久辞書ストアに恒久的に記憶されるのに十分であるかどうかをチェックするための動作を説明する、実施例1の辞書使用チェックプログラムフロー4800を示している。   FIG. 24 is a dictionary usage check program of embodiment 1 illustrating the operation for checking whether the efficiency of the currently used temporary session dictionary is sufficient to be permanently stored in the permanent dictionary store. A flow 4800 is shown.

プログラムフローは、ステップ4810で辞書再利用ストアチェックフロー4700から開始される。次のステップ4820で、現在の一時セッションメモリブロックの使用カウンタフィールド1008によって参照されるセッション使用カウンタの非圧縮バイトフィールドの未処理入力バイトの数が評価される。次のステップ4825で、非圧縮バイトの数が任意の限度σを超えるかどうかがチェックされる。別の実施例では、処理済みバイトの数が使用される。結果が肯定的である場合、プログラムフローは4830で続行し、現在の圧縮率Ratioが、同じセッション使用カウンタの以前に読み取られた非圧縮バイトフィールド及び圧縮バイトフィールドの値を使用して計算される。 The program flow begins with dictionary reuse store check flow 4700 at step 4810. In the next step 4820, the number of raw input bytes in the uncompressed byte field of the session usage counter referenced by the current temporary session memory block usage counter field 1008 is evaluated. In the next step 4825, it is checked whether the number of uncompressed bytes exceeds an arbitrary limit σ. In another embodiment, the number of processed bytes is used. If the result is positive, the program flow continues at 4830 and the current compression ratio Ratio n is calculated using the previously read uncompressed and compressed byte field values of the same session usage counter. The

その後、ステップ4835で、計算された圧縮率Ratioが任意の閾値β以下であるかどうかが検査される。検査が肯定的である場合、プログラムフローはステップ4870で続行し、信号「十分」を放出し、辞書効率が記憶するのに十分であることを呼出し者に通知する。最後に、ステップ4899で、プログラムが終了する。 Thereafter, in step 4835, it is checked whether the calculated compression ratio Ratio n is equal to or less than an arbitrary threshold value β. If the test is positive, program flow continues at step 4870, emitting a signal “sufficient” to inform the caller that dictionary efficiency is sufficient to store. Finally, at step 4899, the program ends.

ステップ4835の検査が否定的である場合、プログラムフローはステップ4840で続行し、以前に計算された圧縮率Ration‐1と現在の圧縮率Ratioとの間の比率変化Ratio changeは、ステップ4830で計算された現在の比率Ratio及び現在の一時セッションメモリブロックの使用カウンタフィールド1008によって参照されるセッション使用カウンタのRation‐1フィールドに記憶された以前に計算されたRation‐1を使用して計算される。次のステップ4845で、計算された比率変化Ratio changeが任意の閾値γ以下であるかどうかが検査される。 If the check at step 4835 is negative, program flow continues at step 4840, where the ratio change Ratio change n between the previously calculated compression ratio Ratio n-1 and the current compression ratio Ratio n is equal to step 4830 using the ratio n-1 previously computed stored in calculated ratio n-1 field in the current ratio ratio n and session usage counter referenced by using counter field 1008 of the current temporary session memory block Is calculated. In the next step 4845, it is checked whether the calculated ratio change Ratio change n is below an arbitrary threshold γ.

検査が肯定的である場合、プログラムフローは上述のようにステップ4870で続行する。検査が否定的である場合、プログラムフローはステップ4850で続行し、比率変化の変化は、現在の一時セッションメモリブロックの使用カウンタフィールド1008によって参照されるセッション使用カウンタの以前に計算された比率変化Ratio change及びRatio changen‐1フィールドの内容を使用して計算される。続くステップ4855で、上記計算の結果が任意の閾値δ以下であるかどうかがチェックされる。 If the test is positive, program flow continues at step 4870 as described above. If the check is negative, program flow continues at step 4850, where the change in ratio change is the previously calculated ratio change ratio of the session usage counter referenced by the usage counter field 1008 of the current temporary session memory block. Calculated using the contents of the change n and Ratio change n-1 fields. In the following step 4855, it is checked whether the result of the calculation is below an arbitrary threshold value δ.

結果が肯定的である場合、上述のようにプログラムフローは4870で続行する。結果が否定的である場合、プログラムフローはステップ4860で続行し、信号「不十分」を放出し、辞書効率が記憶のためには効率的ではないことを呼出し者に通知し、最終的にステップ4899で終了する。ステップ4825の検査が否定的である場合、プログラムフローは上述のようにステップ4860で続行する。   If the result is positive, the program flow continues at 4870 as described above. If the result is negative, the program flow continues at step 4860, emitting the signal “insufficient”, notifying the caller that the dictionary efficiency is not efficient for storage, and finally stepping. It ends at 4899. If the test at step 4825 is negative, program flow continues at step 4860 as described above.

図24のプログラムフローの効果は、既存のセッション辞書が記憶されるべきか否かのきわめて効率的な評価であり、これにより記憶済み辞書はすべて高い効率を有する。   The effect of the program flow of FIG. 24 is a very efficient evaluation of whether an existing session dictionary should be stored, so that all stored dictionaries have high efficiency.

図25は、一時セッション辞書が以前に記憶された辞書を上書きすべきかどうかを評価するために、現在使用されている一時セッション辞書及び永久辞書ストアブロックの記憶済み辞書の比較に関係する、実施例1の使用比較プログラムフロー4900を示している。   FIG. 25 shows an embodiment involving a comparison of the currently used temporary session dictionary and the stored dictionary of the permanent dictionary store block to evaluate whether the temporary session dictionary should overwrite a previously stored dictionary. 1 shows a usage comparison program flow 4900.

プログラムフローはステップ4910で開始され、ステップ4915に示されるように辞書再利用ストアチェックフロー4700によってサブフローとして実行される。現在のプログラムフロー開始時、記憶済み辞書はすでに選択されている。第1のプログラムステップ4920で、現在のセッションの現在の圧縮率Rが、現在の一時セッションメモリブロックの使用カウンタフィールド1008、及び同じセッション使用カウンタの圧縮バイトフィールドによって参照されるセッション使用カウンタの非圧縮バイトフィールドの内容を使用して計算される。 The program flow begins at step 4910 and is executed as a subflow by the dictionary reuse store check flow 4700 as shown in step 4915. At the start of the current program flow, the stored dictionary is already selected. In the first program step 4920, the current compression ratio R 1 of the current session, the session usage counter not the referenced by using counter field 1008, and compressed byte field of the same session usage counter for the current temporary session memory block Calculated using the contents of the compressed byte field.

続くステップ4930で、選択された記憶済み辞書の現在の圧縮率Rは、永久辞書ストアブロックの使用カウンタフィールド1108によって参照される記憶済み使用カウンタの非圧縮バイトフィールド、及び同じ記憶済み使用カウンタの圧縮バイトフィールドを使用して計算される。次のステップ4940で、現在のセッション辞書比率R1と選択された記憶済み辞書比率Rのどちらも、比率Rを計算するために使用される。ステップ4950で、比率Rが任意の閾値λ以下であるかどうかがチェックされる。 In step 4930, the current compression ratio R 2 of the selected memory already dictionary uncompressed byte fields to the stored usage counter referenced by using counter field 1108 of the permanent dictionary store block, and the same the stored usage counter Calculated using compressed byte field. In the next step 4940, both the current session dictionary ratio R 1 and the selected stored dictionary ratio R 2 are used to calculate the ratio R. In step 4950, it is checked whether the ratio R is below an arbitrary threshold λ.

肯定の場合、プログラムフローは信号「記憶済み辞書の方が良い」を放出し、ステップ4960で記憶済み辞書の効率がより優れていることを呼出し者に通知し、その後ステップ4999で終了する。否定の場合、プログラムフローは、信号「記憶済み辞書の方が悪い」を放出し、ステップ4970で記憶済み辞書の効率がより悪いことを呼出し者に通知し、次のステップ4999で終了する。   If yes, the program flow emits a signal “stored dictionary is better”, notifies the caller that the stored dictionary is more efficient at step 4960, and then ends at step 4999. If not, the program flow emits the signal “stored dictionary is worse”, notifies the caller that the stored dictionary is less efficient at step 4970 and ends at the next step 4999.

図25のプログラムフローの効果は、以前に記憶された辞書及び現在記憶のために検討されているセッション辞書の効率を効率的に評価することで、再利用に利用可能な恒久的に記憶された辞書の辞書効率の連続的な改善にある。   The effect of the program flow of FIG. 25 was permanently stored for reuse by efficiently evaluating the efficiency of previously stored dictionaries and session dictionaries currently being considered for storage. It is in the continuous improvement of the dictionary efficiency of the dictionary.

実施例2の説明は以下の図、つまり図4及び図26〜図31を使用している。辞書があまり活用されない非常に小さいデータブロックの圧縮は、大きいトークンサイズに起因するきわめて非効率的な圧縮を引き起こす。実施例2はこの問題を検討する。   The description of the second embodiment uses the following drawings, that is, FIGS. 4 and 26 to 31. Compression of very small data blocks where the dictionary is not well utilized causes very inefficient compression due to the large token size. Example 2 examines this problem.

図4は、データが送信機側ゲートウェイで受信・符号化され、WANを介して送信され、受信機側ゲートウェイで受信・復号されるときの構成要素及び構成要素間のデータフローを説明する、本実施例のトークンサイズ最適化動作のブロックチャートである。   FIG. 4 illustrates the components and the data flow between the components when data is received and encoded at the transmitter gateway, transmitted over the WAN, and received and decoded at the receiver gateway. It is a block chart of the token size optimization operation | movement of an Example.

図26は、メッセージのシーケンス及び本実施例のトークン短縮動作中に実行される動作を示すシーケンス図である。   FIG. 26 is a sequence diagram showing a sequence of messages and an operation executed during the token shortening operation of the present embodiment.

図27は、例えばショートパケットセンサデータ等の入力データを最適化されたサイズのトークンに圧縮するための、送信側トークンエンコーダ1700で実行されるトークン短縮動作のプログラムフローを示すプログラムフロー図である。   FIG. 27 is a program flow diagram showing a program flow of a token shortening operation executed by the transmission side token encoder 1700 for compressing input data such as short packet sensor data into a token of an optimized size.

図28は、図27の送信機側のトークン短縮プログラムフローのサブフローとして実行された制限辞書トークンサイズ計算動作のプログラムフローを示すプログラムフロー図である。   FIG. 28 is a program flow diagram showing a program flow of a restricted dictionary token size calculation operation executed as a subflow of the token shortening program flow on the transmitter side of FIG.

図29は、図27のトークン短縮動作中に使用される辞書エントリIDの順序付けされたリストを含むために使用される、辞書エントリIDリストのデータフィールドを示すデータスキーマである。   FIG. 29 is a data schema showing the data fields of the dictionary entry ID list used to contain an ordered list of dictionary entry IDs used during the token shortening operation of FIG.

図30は、図31の受信機側のトークン短縮動作に示される受信機側トークンデコーダ1710と必要なパラメータを同期させるために、図27のトークン短縮動作中に送信機側トークンエンコーダ1700から放出される、制限辞書トークンのデータフィールドを示すデータスキーマである。   FIG. 30 is emitted from the transmitter side token encoder 1700 during the token shortening operation of FIG. 27 to synchronize the necessary parameters with the receiver side token decoder 1710 shown in the token shortening operation of the receiver side of FIG. The data schema indicating the data field of the restricted dictionary token.

図31は、図27の送信機側のトークン短縮動作で圧縮されたデータを解凍するために、受信機側トークンデコーダ1710で実行される受信機側のトークン短縮動作のプログラムフローを示す、プログラムフロー図である。   FIG. 31 is a program flow showing a program flow of the token shortening operation on the receiver side executed by the receiver side token decoder 1710 in order to decompress the data compressed by the token shortening operation on the transmitter side in FIG. FIG.

実施例2は、上述されたように、放出されたトークンサイズが最適化されるようにトークン短縮動作によって一般的な辞書符号化機構が拡張される実施例1の変形例である。   As described above, the second embodiment is a modification of the first embodiment in which a general dictionary coding mechanism is expanded by a token shortening operation so that the released token size is optimized.

図4は、入力データが送信機側ゲートウェイによって受信され、符号化され、WANを介して受信機側ゲートウェイに送信され、再び復号されるときの構成要素及びデータフローを説明する、実施例2のブロック図を示している。   FIG. 4 illustrates the components and data flow of Example 2 when input data is received by the transmitter gateway, encoded, transmitted to the receiver gateway via the WAN, and decoded again. A block diagram is shown.

図4は、図2の機能ブロック図に類似しているが、送信機側と受信機側両方の機能及び構成要素が示され、制限辞書トークン460a、460bだけではなく送信機側の仮想セッション辞書1025a、1025b、及び受信機側の1025c、1025dも追加される。2つのネットワークメッセージ400e、400fは送信機側セッションハンドラ1600cによって受信され、各メッセージは順々に別々に処理される。   FIG. 4 is similar to the functional block diagram of FIG. 2, but shows the functions and components on both the transmitter and receiver sides, not only the restricted dictionary tokens 460a, 460b, but also the virtual session dictionary on the transmitter side. 1025a and 1025b, and 1025c and 1025d on the receiver side are also added. Two network messages 400e, 400f are received by the transmitter session handler 1600c, and each message is processed separately in turn.

ヘッダ402d及びペイロード404dを含むネットワークメッセージ400eは送信機側セッションハンドラ1600cによって受信され、送信機側セッションハンドラ1600cはヘッダ402dからの情報を活用し、おそらく永久辞書ストア1100cから以前に記憶されたデータを使用し、既存の一時セッションを選択する又は新規一時セッションを作成するために、永久辞書ストア1100c及び一時セッションメモリ1000cの情報にアクセスし、次いでトークンエンコーダ1700bにデータと関係する制御情報の両方を送信し、トークンエンコーダ1700bでデータの実際の符号化が発生し、一時セッションメモリストア1000cの関係する一時セッションメモリ1005dからの情報にアクセスしている。符号化は最初に辞書エントリIDを新たに初期化された辞書エントリIDリスト1040bに放出し、特定のパラメータによって定義される実際のセッション辞書1020d上での連続的なスライドウィンドウである仮想セッション辞書1025aの作成を可能にする。   A network message 400e including a header 402d and a payload 404d is received by the transmitter session handler 1600c, which utilizes information from the header 402d and possibly retrieves previously stored data from the permanent dictionary store 1100c. Use to access information in permanent dictionary store 1100c and temporary session memory 1000c to select an existing temporary session or create a new temporary session, then send both data and related control information to token encoder 1700b Then, actual encoding of data occurs in the token encoder 1700b, and information from the temporary session memory 1005d related to the temporary session memory store 1000c is accessed. The encoding first releases the dictionary entry ID to the newly initialized dictionary entry ID list 1040b, and the virtual session dictionary 1025a, which is a continuous sliding window on the actual session dictionary 1020d defined by the specific parameters. Allows creation of.

これらのパラメータは符号化され、制限辞書トークン460bに放出される。続いて、ネットワークデータのペイロード404dは、トークンを放出する仮想セッション辞書1025aを使用し、トークンに符号化され、トークンとして放出される。制限辞書トークン406dと符号化されたトークンの両方とも次いでペイロード404fとしてトークンメッセージ450cで送信され、関係する制御情報は、関係する一時セッションメモリ1005dのセッション使用カウンタ1030dにアクセスし、おそらく関係するセッション使用カウンタを更新する使用カウンタマネージャ1500cに送信される。結果は次いで一時セッションメモリの記憶を検討することを可能にするために、制御情報としてセッションハンドラ1600cに送り返される。   These parameters are encoded and released into the restricted dictionary token 460b. Subsequently, the network data payload 404d is encoded into a token using the virtual session dictionary 1025a that emits the token, and is released as a token. Both the restricted dictionary token 406d and the encoded token are then transmitted in the token message 450c as the payload 404f, and the relevant control information accesses the session usage counter 1030d of the relevant temporary session memory 1005d and possibly the relevant session usage. Sent to usage counter manager 1500c to update the counter. The result is then sent back to the session handler 1600c as control information to allow the storage of temporary session memory to be considered.

トークンメッセージ450cは、送信機側と同様に、既存の一時セッションを選択する又は新規一時セッションを作成するために、WAN320bを介して送信され、永久辞書ストア1100d及び一時セッションメモリ1000dからの情報にアクセスしている受信機側セッションハンドラ1600dによって受信される。データ及び関係する制御情報は、次いで、一時セッションメモリ1005cからの関係する情報にアクセスしつつ、トークンメッセージ450bのペイロード454aを復号する、トークンデコーダ1710bに転送される。   Token message 450c is sent via WAN 320b to access information from permanent dictionary store 1100d and temporary session memory 1000d to select an existing temporary session or create a new temporary session, similar to the transmitter side. Receiver-side session handler 1600d. The data and related control information are then transferred to a token decoder 1710b that decodes the payload 454a of the token message 450b while accessing the related information from the temporary session memory 1005c.

第1に、制限辞書トークン460aが復号され、送信機側仮想セッション辞書1025aと同様に、含まれている特定のパラメータ及び実際のセッション辞書1020dを使用し、仮想セッション辞書1025cの作成を可能にする。次いで、ペイロード454bの残りは、仮想セッション辞書1025cを使用して復号される。結果的に生じる復号されたデータは次いで受信機側発信メッセージ470bで送信され、関係する制御情報は、関係する一時セッションメモリ1005cの情報にアクセスし、一時セッションメモリの記憶を同様に検討するセッションハンドラ1600dに制御情報を送り返す使用カウンタマネージャ1500dに送信される。ネットワークメッセージ400fは同様に処理される。   First, the restricted dictionary token 460a is decrypted, allowing the creation of a virtual session dictionary 1025c using the specific parameters and actual session dictionary 1020d that are included, similar to the transmitter-side virtual session dictionary 1025a. . The remainder of payload 454b is then decrypted using virtual session dictionary 1025c. The resulting decoded data is then transmitted in a receiver-side outgoing message 470b, and the relevant control information accesses the relevant temporary session memory 1005c information and similarly considers the storage of the temporary session memory. The control information is sent back to the use counter manager 1500d back to 1600d. Network message 400f is processed similarly.

図26は、トークンサイズ最適化機構に関係する実施例2に関するイベントの一般的なシーケンスを示している。IoT装置100dは、7310aで適切な辞書エントリIDを辞書エントリIDリストに放出するために、任意の辞書符号化機構を使用する、送信機側のIoTゲートウェイ500iにIoT/センサデータ7300aを送信する。7320aで、送信機側のIoTゲートウェイ500iは、トークン符号化のために使用するためのオフセット及び制限トークンサイズを計算し、7330aで、以前に計算されたオフセット及び制限トークンサイズを使用して制限辞書トークンを符号化する。   FIG. 26 shows the general sequence of events for Example 2 related to the token size optimization mechanism. The IoT device 100d transmits IoT / sensor data 7300a to the IoT gateway 500i on the transmitter side using an arbitrary dictionary encoding mechanism in order to release an appropriate dictionary entry ID to the dictionary entry ID list at 7310a. At 7320a, the transmitter-side IoT gateway 500i calculates the offset and limit token size for use for token encoding, and at 7330a, the limit dictionary using the previously calculated offset and limit token size. Encode the token.

7340aで、送信機側のIoTゲートウェイ500iは、受信機側のIoTゲートウェイ500jに標準トークンサイズで符号化された制限辞書トークンを送信し、トークンは復号され、含まれているオフセット及び制限トークンサイズの情報が以後の復号のためのパラメータを更新するために使用される。7360aで、送信機側のIoTゲートウェイは、以前に計算されたオフセットを適用後、辞書エントリIDリストのすべてのエントリを以前に計算されたトークンサイズのトークンに符号化し、7310aで受信機側のIoTゲートウェイ500jに制限トークンサイズを有する符号化されたトークンを送信する。7420aで、受信機側のIoTゲートウェイ500jは、以前に更新された復号パラメータを使用し、受信されたトークンを復号し、7390aで、セッション辞書からの復号されたエントリIDによって参照されるパターンを選択し、受信機200dに復号されたデータを送信するために、任意の辞書復号機構を使用する。   At 7340a, the IoT gateway 500i on the transmitter side sends the restricted dictionary token encoded with the standard token size to the IoT gateway 500j on the receiver side, the token is decoded, and the offset and restricted token size included are Information is used to update parameters for subsequent decoding. At 7360a, the transmitter-side IoT gateway applies the previously calculated offset and then encodes all entries in the dictionary entry ID list into tokens of the previously calculated token size, and at 7310a, the receiver-side IoT gateway. The encoded token having the limited token size is transmitted to the gateway 500j. At 7420a, the receiver-side IoT gateway 500j uses the previously updated decryption parameters to decrypt the received token, and at 7390a select the pattern referenced by the decrypted entry ID from the session dictionary. In order to transmit the decoded data to the receiver 200d, an arbitrary dictionary decoding mechanism is used.

その後、7400aで、送信機側のIoTゲートウェイ500iはリセットされた制限辞書トークンを符号化し、7310aで制限トークンサイズを有するトークンを受信機側のIoTゲートウェイ500jに送信し、受信機側のIoTゲートウェイ500jは上述されたように同様にトークンを復号し、予約されたエントリIDとしてトークンを識別し、復号のためにその後使用されるパラメータをリセットする。最後に、7430aで、送信機側のIoTゲートウェイ500iはそのセッション使用カウンタを更新し、7440aで、受信機側のIoTゲートウェイ500jはそのセッション使用カウンタを更新する。   Thereafter, at 7400a, the transmitter-side IoT gateway 500i encodes the reset restricted dictionary token, and at 7310a, transmits the token having the restricted token size to the receiver-side IoT gateway 500j, and the receiver-side IoT gateway 500j. Decrypts the token in the same manner as described above, identifies the token as a reserved entry ID, and resets the parameters subsequently used for decryption. Finally, at 7430a, the transmitter-side IoT gateway 500i updates its session usage counter, and at 7440a, the receiver-side IoT gateway 500j updates its session usage counter.

図27は、放出されたトークンサイズを最適化するためにトークン短縮動作を使用するときの送信機側の辞書符号化フローを説明する、実施例2のプログラムフロー5000を示している。プログラムフロー5000は5010で開始され、一般的な辞書符号化フローの代わりに、ステップ5015で説明されるように、送信機側のIoTゲートウェイ500aのトークンエンコーダ1700で実行される。ステップ5020で、データのブロックが受信される。一般的に、このデータは受信バッファ内にあり、その次の目的地又はその最終的な目的地に転送されるための準備が完了している。   FIG. 27 shows a program flow 5000 of Example 2 illustrating the transmitter side dictionary encoding flow when using token shortening operations to optimize the emitted token size. The program flow 5000 starts at 5010 and is executed at the token encoder 1700 of the transmitter-side IoT gateway 500a, as described in step 5015, instead of the general dictionary encoding flow. At step 5020, a block of data is received. Generally, this data is in the receive buffer and is ready to be transferred to its next destination or its final destination.

続くステップ5030及び5035はステップ5025で開始し、5035での条件ステップを通してループを離れることによって、5020で受信されたすべてのデータが完全に消費されるまでループで実行される。このループはループ最終ステップ5040で区切られる。ループの内側では、ステップ5030で、辞書符号化は受信されたデータブロックに対して実行されるが、符号化された辞書エントリIDトークンを放出する代わりに、辞書エントリIDは辞書エントリIDリストに付け加えられる。   Subsequent steps 5030 and 5035 begin at step 5025 and are executed in a loop until all data received at 5020 is completely consumed by leaving the loop through the conditional step at 5035. This loop is delimited by a loop final step 5040. Inside the loop, at step 5030, dictionary encoding is performed on the received data block, but instead of releasing the encoded dictionary entry ID token, the dictionary entry ID is added to the dictionary entry ID list. It is done.

ステップ5035で、ブロック5020で受信されたすべてのデータが完全に消費されたかどうかがチェックされる。否定の場合、ループは、ステップ5025でループの始まりにジャンプすることでステップ5040で続行する。それ以外の場合、プログラムフローは、辞書エントリIDリストで最小のエントリIDiを見つけることによってステップ5045で続行する。その後、辞書エントリIDリストの最大エントリIDiがステップ5050で見つけられる。 In step 5035, it is checked whether all the data received in block 5020 has been completely consumed. If not, the loop continues at step 5040 by jumping to the beginning of the loop at step 5025. Otherwise, program flow continues at step 5045 by finding the smallest entry IDi 1 in the dictionary entry ID list. After that, the maximum entry IDi n of dictionary entry ID list is found in step 5050.

続くステップ5400aで、図28の制限辞書トークンサイズ計算サブフローが呼び出され、制限トークンサイズtである放出された結果を用いて制限辞書トークンサイズを計算する。その後、ステップ5060で、制限トークンサイズtが標準トークンサイズtと比較される。ステップ5065で、制限トークンサイズtが標準トークンサイズtよりも小さいかどうかが検査される。結果が肯定的である場合、ステップ5070で、オフセットが、最小のエントリIDiから最大のエントリIDを差し引き、予約されたエントリIDの数を加算することで計算される。言い換えると、予約されたエントリ、並びに最小の索引及び最大の索引によって区切られたそれらのエントリを除くすべての辞書エントリを辞書から削除し、次いで最小の索引及び最大の索引で区切られたエントリIDブロックにオフセットを逆適用する(つまり、差し引く)とき、結果的に生じる仮想辞書は、直接的に及び切れ目なく、通常は元の辞書よりも著しく小さいサイズの、オフセットで調整されたエントリIDのブロックが後に続く予約されたエントリIDのブロックのみを含む。 In step 5400a, is called restriction dictionary token size calculation subflow of FIG. 28, calculates the limit dictionaries token size using the result of the restricted token is the size t 1 release. Thereafter, in step 5060, it limits token size t 1 is compared to a standard token size t. In step 5065 it is checked whether the restricted token size t 1 is smaller than the standard token size t. If the result is positive, at step 5070, the offset is calculated by subtracting the maximum entry ID i from the minimum entry ID i 1 and adding the number of reserved entry IDs. In other words, remove all dictionary entries from the dictionary except those reserved entries and those entries delimited by the minimum and maximum indexes, and then the entry ID block delimited by the minimum and maximum indexes When the offset is back-applied (ie, subtracted), the resulting virtual dictionary has a block of entry IDs adjusted for the offset, directly and seamlessly, usually significantly smaller in size than the original dictionary. It contains only the reserved entry ID block that follows.

次のステップ5075で、制限辞書トークンは、最小の索引から最大の索引を差し引くことによって計算される、予約されていない辞書エントリのブロックのサイズ、及びステップ5070で計算されたオフセットを使用し、標準辞書トークンサイズとともに放出される。   In the next step 5075, the restricted dictionary token uses the size of the block of unreserved dictionary entries, calculated by subtracting the maximum index from the minimum index, and the offset calculated in step 5070. Released along with dictionary token size.

次のステップ5080で、符号化のためのトークンサイズが、ステップ5400aで呼び出されたサブフローで以前に計算された制限トークンサイズtに設定される。続いて、続くステップ5090、5095、及び5100はステップ5085で開始し、ループで呼び出され、ステップ5025で開始する以前のループのステップ5030で充填された辞書エントリIDリストのすべてのエントリで反復する。ループの内側では、ステップ5090で、オフセットは現在のエントリIDから差し引かれる。 In the next step 5080, the token size for encoding is set to the limited token size t 1 previously calculated in the subflow called in step 5400a. Subsequently, subsequent steps 5090, 5095, and 5100 begin at step 5085, are called in a loop, and iterate over all entries in the dictionary entry ID list filled in step 5030 of the previous loop starting at step 5025. Inside the loop, at step 5090, the offset is subtracted from the current entry ID.

次いで、ステップ5095で、オフセットで調整されたエントリIDは、符号化のための現在のトークンサイズのトークンを符号化するために使用される。その後、ステップ5100で、現在のエントリIDが辞書エントリIDリストの最後のアイテムであるかどうかがチェックされる。否定の場合、ループは、ステップ5085でループの始まりにジャンプして戻り、現在のエントリIDとして次のエントリIDを選択することでステップ5105で続行する。それ以外の場合、ループは、5110の発信ラベルSEから5115の入信ラベルSEにジャンプし、ステップ5120で辞書エントリIDリストをクリアすることで終了される。続いて、トークンサイズをリセットするための予約されたエントリIDはステップ5125で符号化される。一般的に、これは制限サイズから標準サイズへの符号化のためのトークンサイズのリセットを生じさせる。   Then, at step 5095, the offset adjusted entry ID is used to encode a token of the current token size for encoding. Thereafter, in step 5100, it is checked whether the current entry ID is the last item in the dictionary entry ID list. If not, the loop jumps back to the beginning of the loop at step 5085 and continues at step 5105 by selecting the next entry ID as the current entry ID. Otherwise, the loop is terminated by jumping from the outgoing label SE at 5110 to the incoming label SE at 5115 and clearing the dictionary entry ID list at step 5120. Subsequently, the reserved entry ID for resetting the token size is encoded in step 5125. In general, this causes a reset of the token size for encoding from the limit size to the standard size.

別の実施例では、ステップ5125は、異なるトークンサイズがステップ5140で設定された場合にのみ実行される。さらに別の実施例では、制限辞書トークンが、オフセットがゼロに設定され、サイズが予約されたエントリIDなしで完全な辞書に設定された状態で送信され、したがってオフセット及びサイズ情報を適用するときに作成される仮想辞書を元の辞書と等しくさせる。   In another embodiment, step 5125 is performed only if a different token size is set in step 5140. In yet another embodiment, the restricted dictionary token is sent with the offset set to zero and the size set to the full dictionary without a reserved entry ID, so when applying offset and size information Make the created virtual dictionary equal to the original dictionary.

次のステップ5130で、ステップ5020で受信されたデータブロックのサイズは現在の一時セッションメモリブロックのセッション使用カウンタの非圧縮バイトフィールドに追加され、ステップ5135で、ステップ5075及び5095で放出されたすべてのトークンの累積されたサイズは現在の一時セッションメモリブロックのセッション使用カウンタの圧縮バイトフィールドに追加される。最後に、フローはステップ5199で終了する。ステップ5065の検査が否定的であった、つまり制限辞書トークンサイズtが標準トークンサイズtよりも大きい場合、プログラムフローは、元の辞書の標準トークンサイズtに符号化のためのトークンサイズを設定することでステップ5140で続行する。プログラムフローは、上述されたようにステップ5085で続行する。別の実施例では、ステップ5140が省略される。図27のプログラムフローの効果は、パターン局所性を活用し、辞書をベースの圧縮でショートパケットデータを符号化するときに使用されるトークンサイズの効率的な最適化である。 In the next step 5130, the size of the data block received in step 5020 is added to the uncompressed byte field of the session usage counter of the current temporary session memory block, and in step 5135 all of the data released in steps 5075 and 5095 are released. The accumulated size of the token is added to the compressed byte field of the session usage counter of the current temporary session memory block. Finally, the flow ends at step 5199. If the test in step 5065 is negative, ie, the restricted dictionary token size t 1 is larger than the standard token size t, the program flow sets the token size for encoding to the standard token size t of the original dictionary. To continue at step 5140. Program flow continues at step 5085 as described above. In another embodiment, step 5140 is omitted. The effect of the program flow of FIG. 27 is efficient optimization of the token size used when encoding short packet data with dictionary-based compression utilizing pattern locality.

図28は、制限トークンサイズを計算することによるトークンサイズ最適化動作に関係する実施例2のプログラムフロー5400を示している。プログラムフローはステップ5410で開始され、ステップ5415で説明されるように、送信機側のIoTゲートウェイ500aのトークンエンコーダ1700で図27の送信機側短縮フロー5000によってサブフローとして実行される。呼出しフロー5000は、最小のエントリIDi及び最大のエントリIDiを提供する。第1のステップ5420で、制限辞書サイズは、最大のエントリIDiから最小のエントリIDiを差し引くことによって計算される。次のステップ5430で、制限辞書サイズは予約されたエントリIDのブロックのサイズを加算することで調整される。 FIG. 28 shows a program flow 5400 of the second embodiment related to a token size optimization operation by calculating a restricted token size. The program flow starts at step 5410 and is executed as a sub-flow by the transmitter-side shortened flow 5000 of FIG. 27 at the token encoder 1700 of the transmitter-side IoT gateway 500a as described in step 5415. Call flow 5000 provides a minimum entry IDi 1 and the maximum entry IDi n. In a first step 5420, limit dictionary size is calculated by subtracting the minimum entry IDi 1 from the maximum entry IDi n. In the next step 5430, the limit dictionary size is adjusted by adding the size of the reserved entry ID block.

次のステップ5440で、制限辞書のための最適なトークンサイズは、以前に計算され、調整された制限辞書サイズの2を底とする対数を使用して計算される。最後に、フローはステップ5499で終了する。図28のプログラムフローの効果は、送信機と受信機両方の側でのトークンサイズ最適化の実際の適用だけではなく、トークンサイズ最適化の評価も可能にするために、最適化されたトークンサイズの効率的な計算である。   In the next step 5440, the optimal token size for the limit dictionary is calculated using the logarithm of base 2 of the adjusted limit dictionary size previously calculated. Finally, the flow ends at step 5499. The effect of the program flow of FIG. 28 is that the optimized token size not only allows for the actual application of token size optimization on both the transmitter and receiver sides, but also allows evaluation of token size optimization. Is an efficient calculation.

図29は、例えば図5の一次メモリ1830に辞書エントリIDリストを記憶するために可能なデータ構造を説明する辞書エントリIDリストスキーマを示している。辞書エントリIDリストスキーマは、図27のプログラムフローのブロック5030で放出されるように、図11の現在使用されているセッション辞書のエントリIDを参照する、辞書エントリIDのリストを含む。複数の辞書エントリIDリストは、同時に存在し、リストIDフィールド2710によって一意に識別される。辞書エントリIDリストはおそらく図5の一次メモリ1830に記憶される。辞書エントリIDリストのエントリID2710は、図8の一時セッションメモリスキーマの使用済みリストIDフィールド1009によって参照される。図29の辞書エントリIDリストの各エントリID2720は、図8の同じ一時セッションメモリスキーマのセッション辞書IDフィールド1006によって参照されるように、セッション辞書IDによって参照されるセッション辞書の、図11のエントリID2320bを有する辞書エントリを参照している。   FIG. 29 shows a dictionary entry ID list schema that describes a possible data structure for storing the dictionary entry ID list in the primary memory 1830 of FIG. 5, for example. The dictionary entry ID list schema includes a list of dictionary entry IDs that refer to the entry ID of the currently used session dictionary of FIG. 11, as emitted at block 5030 of the program flow of FIG. Multiple dictionary entry ID lists exist simultaneously and are uniquely identified by a list ID field 2710. The dictionary entry ID list is probably stored in the primary memory 1830 of FIG. The entry ID 2710 of the dictionary entry ID list is referred to by the used list ID field 1009 of the temporary session memory schema of FIG. Each entry ID 2720 in the dictionary entry ID list of FIG. 29 is referred to by the session dictionary ID field 1006 of the same temporary session memory schema of FIG. 8, and the entry ID 2320b of FIG. 11 of the session dictionary referenced by the session dictionary ID. Refers to a dictionary entry with

図27のプログラムフローの放出された各エントリIDは、エントリID2720のリストに付け加えられる。2710aの「233」のリストID並びに2つのエントリID2720aの「27」及び2720bの「15」を有する例示的な辞書エントリIDリストが、辞書エントリIDリスト1040dとして示される。   Each released entry ID in the program flow of FIG. 27 is added to the list of entry IDs 2720. An exemplary dictionary entry ID list having a list ID of “233” of 2710a and “27” of two entry IDs 2720a and “15” of 2720b is shown as a dictionary entry ID list 1040d.

図30は、トークンサイズ最適化動作に関係する特殊制限辞書トークンのために可能な符号化を説明する、本実施例の実施例2の制限辞書トークンスキーマ2800を示している。制限辞書トークンは、制限辞書トークンのために予約された予約済みのエントリIDを含むエントリIDフィールド2810aを含む。さらに、制限辞書トークン2800は、仮想制限辞書のために使用されるオフセットを含むオフセットフィールド2820a、及びサイズが制限された以後のトークンのサイズを含むトークンサイズフィールド2830aを含む。例示的な制限辞書トークンは、予約されたエントリID1を含むエントリIDフィールド2810b、オフセット1423を含むオフセットフィールド2820b、及びトークンサイズ11を含むトークンサイズフィールド2830bを含む。つまり、仮想辞書は、予約されたエントリIDを含む最大2048エントリを含むことがあり、復号された予約されていないエントリIDのいずれも、セッション辞書の参照されたパターンを検索する1423エントリによってシフトされなければならない。   FIG. 30 shows a restricted dictionary token schema 2800 of Example 2 of this example that illustrates possible encodings for special restricted dictionary tokens related to token size optimization operations. The restricted dictionary token includes an entry ID field 2810a that includes a reserved entry ID reserved for the restricted dictionary token. In addition, the restriction dictionary token 2800 includes an offset field 2820a that contains the offset used for the virtual restriction dictionary, and a token size field 2830a that contains the size of the subsequent tokens whose size has been restricted. An exemplary restricted dictionary token includes an entry ID field 2810b that includes reserved entry ID1, an offset field 2820b that includes offset 1423, and a token size field 2830b that includes token size 11. That is, the virtual dictionary may contain up to 2048 entries, including reserved entry IDs, and any of the decoded non-reserved entry IDs are shifted by 1423 entries that search for referenced patterns in the session dictionary. There must be.

図31は、放出されたトークンサイズを最適化するためにトークン短縮動作を使用するときの受信機側の辞書符号化フローを説明する、実施例2のプログラムフロー5200を示している。プログラムフロー5200はステップ5210で開始され、例えば図20の簡略化された復号フロー等、一般的な辞書復号フローの代わりに、ステップ5215で説明されるように、受信機側のIoTゲートウェイ500bのトークンエンコーダ1700で実行される。ステップ5220で、オフセットはゼロに初期化される。続いて、ステップ5225でデータブロックが受信される。概してこのことは、受信バッファが、読み取られる又は使用される入信データで準備されていることを意味する。次のステップ5230で、復号のためのトークンサイズtは、現在の一時セッション辞書によって定義されるように、標準トークンサイズtに設定される。 FIG. 31 shows a program flow 5200 of Example 2 that illustrates the receiver side dictionary encoding flow when using a token shortening operation to optimize the emitted token size. Program flow 5200 begins at step 5210, and instead of a general dictionary decoding flow, such as the simplified decoding flow of FIG. 20, the token of the IoT gateway 500b on the receiver side as described in step 5215. It is executed by the encoder 1700. In step 5220, the offset is initialized to zero. Subsequently, a data block is received at step 5225. In general, this means that the receive buffer is prepared with incoming data to be read or used. In the next step 5230, the token size t for decoding, as defined by the current of the temporary session dictionary, is set to a standard token size t d.

その後、ループはステップ5235で開始され、ステップ5265でループ終了条件のためのチェックまですべての続くプログラムフローブロックを呼び出す。ループでは、ステップ5225で以前に受信されたデータブロックは、すべてのデータが消費されるまで処理される。ループの内側の第1のステップは5240であり、トークンは、例えば上述されたステップ5230、又は後述されるステップ5255又は5305の1つで以前に設定されたトークンサイズtを使用して復号される。その後、トークンが制限辞書トークンであるかどうかが5245で検査される。検査が肯定的である場合、フローはステップ5250で続行し、制限辞書トークンのトークンサイズフィールドのオフセット及び制限トークンサイズが読み取られる。続くステップ5255で、復号のためのトークンサイズtは以前のステップ5250で読み取られるトークンサイズに設定される。続いて、ステップ5260で、オフセットは、ステップ5250で読み取られる制限辞書トークンからの値に設定される。   The loop is then started at step 5235 and all subsequent program flow blocks are called at step 5265 until a check for a loop termination condition. In the loop, the data block previously received in step 5225 is processed until all the data is consumed. The first step inside the loop is 5240 and the token is decrypted using the token size t previously set, eg, in step 5230 described above, or one of steps 5255 or 5305 described below. . Thereafter, it is checked at 5245 whether the token is a restricted dictionary token. If the check is positive, flow continues at step 5250, where the token size field offset of the restricted dictionary token and the restricted token size are read. In the following step 5255, the token size t for decryption is set to the token size read in the previous step 5250. Subsequently, at step 5260, the offset is set to the value from the restricted dictionary token read at step 5250.

その後、すべてのデータが完全に消費されたかどうか、ループ終了条件がステップ5265で検査される。否定の場合、ループはステップ5290のループの終わりからステップ5235のループの始まりにジャンプすることで続行し、その後のプログラムフローは上述された通りである。復号されたトークンが制限辞書トークンであったかどうか5245の検査の結果が否定的である場合、プログラムフローはステップ5300で続行し、復号されたトークンが特別なリセット制限辞書トークンであるかどうかがチェックされる。結果が肯定的である場合、プログラムフローはステップ5305で続行し、トークンサイズtの設定値は、現在使用されている一時セッション辞書によって定義されるように、トークンを復号するために使用されるトークンサイズを標準トークンサイズtに設定する。プログラムフローは、先述されたように、ステップ5265のループ終了条件検査で続行する。復号されたトークンが制限辞書トークンであるかどうかステップ5300の検査が否定的である場合、現在のオフセットが0より大きいかどうかを検査することでステップ5310で続行する。肯定の場合、現在のオフセットをトークンの復号されたエントリID番号に加算することでステップ5315で続行する。その後、ステップ5330で、一時セッション辞書を活用し、標準辞書復号を実行し、復号されたデータdに復号されたパターンを付け加え、放出する。このデータは図5の一次メモリ1830の一時送信バッファであってよい。プログラムフローは、先述されたように、ステップ5265のループ終了条件検査で続行する。ステップ5310の検査が否定的である場合、すなわち現在のオフセットが0以下である場合、プログラムフローは上述されたように、直ちにステップ5330で続行する。 Thereafter, the loop termination condition is checked at step 5265 to see if all the data has been completely consumed. If not, the loop continues by jumping from the end of the loop at step 5290 to the beginning of the loop at step 5235, and the program flow thereafter is as described above. If the result of the 5245 check is negative if the decrypted token was a restricted dictionary token, the program flow continues at step 5300 to check if the decrypted token is a special reset restricted dictionary token. The If the result is positive, program flow continues at step 5305 and the token size t setting is the token used to decrypt the token as defined by the currently used temporary session dictionary. to set the size to a standard token size t d. Program flow continues with the loop end condition check in step 5265 as previously described. If the check at step 5300 is negative if the decrypted token is a restricted dictionary token, then continue at step 5310 by checking if the current offset is greater than zero. If yes, continue at step 5315 by adding the current offset to the token's decoded entry ID number. Thereafter, in step 5330, the temporary dictionary is used to execute standard dictionary decoding, and the decoded pattern is added to the decoded data d and released. This data may be a temporary transmission buffer of the primary memory 1830 of FIG. Program flow continues with the loop end condition check in step 5265 as previously described. If the check at step 5310 is negative, i.e., the current offset is less than or equal to zero, program flow immediately continues at step 5330 as described above.

ステップ5265のループ終了条件検査が肯定的である場合、プログラムフローはステップ5270の発信ラベルSDからステップ5275の入信ラベルSDにジャンプすることで続行する。次のステップ5280で、ステップ5225で受信されるデータのサイズが現在の一時セッションメモリブロックのセッション使用カウンタの圧縮バイトフィールドに追加される。   If the loop end condition check at step 5265 is positive, the program flow continues by jumping from the outgoing label SD at step 5270 to the incoming label SD at step 5275. At the next step 5280, the size of the data received at step 5225 is added to the compressed byte field of the session usage counter of the current temporary session memory block.

次のステップ5285で、例えばステップ5330で充填されるように、送信バッファのサイズ全体等のすべての放出されたパターンの累積されたサイズは、現在の一時セッションメモリのセッション使用カウンタの非圧縮バイトフィールドに追加される。最後に、ステップ5399で、プログラムフローは終了する。   In the next step 5285, as filled in step 5330, for example, the accumulated size of all emitted patterns, such as the entire size of the transmit buffer, is the uncompressed byte field of the session usage counter of the current temporary session memory. To be added. Finally, at step 5399, the program flow ends.

図31のプログラムフローの効果は、受信機側での図27のプログラムフローで最適化されたトークンを復号する能力にある。   The effect of the program flow in FIG. 31 is the ability to decrypt the token optimized in the program flow in FIG. 27 on the receiver side.

実施例3は上記の実施例の変形例であり、説明のために個々の図を使用していない。
実施例3では、実施例3の上述されたトークンサイズ最適化動作が、実施例1の辞書再利用動作が使用されないIoTゲートウェイで使用される。
The third embodiment is a modification of the above-described embodiment and does not use individual drawings for description.
In the third embodiment, the token size optimization operation described above in the third embodiment is used in the IoT gateway where the dictionary reuse operation in the first embodiment is not used.

実施例3の一実施例では、各セッションは、空の辞書を用いて又は辞書の符号化及び復号機構が実行できるように初期化された辞書を用いて辞書の符号化及び復号を始める。実施例3の別の実施例では、事前に初期化された辞書が使用されるが、辞書は記憶又は更新されない。したがって、実施例3は、実施例2で説明されるトークンサイズ最適化動作のみを使用する辞書の符号化及び復号機構に焦点を当てる。   In one embodiment of Example 3, each session begins encoding and decoding a dictionary with an empty dictionary or with a dictionary that has been initialized so that the dictionary encoding and decoding mechanism can execute. In another embodiment of Example 3, a preinitialized dictionary is used, but the dictionary is not stored or updated. Therefore, Example 3 focuses on a dictionary encoding and decoding mechanism that uses only the token size optimization operation described in Example 2.

上述されたように、本実施例の標準的なシステムは使用中の辞書の圧縮効率を連続的に監視し、記憶する辞書の圧縮効率の評価、並びにおそらく使用中の辞書の圧縮効率と更新する辞書の圧縮効率との比較に基づいて新規辞書の記憶又は既存の辞書の更新を決定する。   As described above, the standard system of this embodiment continuously monitors the compression efficiency of the dictionary in use, evaluates the compression efficiency of the stored dictionary, and possibly updates with the compression efficiency of the dictionary in use. Based on the comparison with the compression efficiency of the dictionary, storage of a new dictionary or update of an existing dictionary is determined.

本実施例の別の標準的なシステムは、符号化を第1の辞書エントリ放出段階及び第2のトークン符号化段階に分割し、第2のトークン符号化段階の前に、第1のエントリ放出段階の間に活用されるエントリの概算を含む、元の辞書に基づいた小さい仮想辞書を作成する。これにより同じ仮想辞書はオフセットを使用するだけで元の辞書から作成でき、小さい仮想辞書のサイズのみを反映するためにトークンサイズを一時的に削減し、オフセット及び削減されたトークンサイズの効率的な通信を可能にして、一時的に削減されたトークンサイズで符号化されたトークンの復号を可能にする。   Another standard system of this embodiment divides the encoding into a first dictionary entry emission stage and a second token encoding stage, and before the second token encoding stage, the first entry emission. Create a small virtual dictionary based on the original dictionary that contains an estimate of the entries utilized during the stage. This allows the same virtual dictionary to be created from the original dictionary simply by using an offset, temporarily reducing the token size to reflect only the size of the small virtual dictionary, and effectively reducing the offset and reduced token size. Enables communication to allow decoding of tokens encoded with a temporarily reduced token size.

本実施例は、データ圧縮方法に関する本発明の態様を含む。この方法では、送信機ゲートウェイはセッション辞書に基づいて受信機ゲートウェイにトークンを送信する。そして、この方法はさらに、転送データを圧縮するためにセッション辞書の必要な部分を指定すること、トークンの置換に使用される制限トークンのサイズを計算すること、制限トークンとトークンのサイズを比較すること、及び制限トークンのサイズがトークンのサイズよりも小さい場合、送信機ゲートウェイによって制限トークンを受信機ゲートウェイに送信することを含む。   This embodiment includes an aspect of the present invention relating to a data compression method. In this method, the transmitter gateway sends a token to the receiver gateway based on the session dictionary. This method then further specifies the required part of the session dictionary to compress the transferred data, calculates the size of the restricted token used for token replacement, and compares the restricted token and token size And, if the size of the restricted token is smaller than the size of the token, sending the restricted token to the receiver gateway by the transmitter gateway.

すなわち、このネットワークトラフィック転送方法は、送信されたデータを圧縮するために辞書圧縮機構を使用し、データの有限ブロックを圧縮するときに辞書圧縮機構の辞書の活用に関して放出されたトークンを圧縮する。より詳細には、トークン圧縮機構を使用するこの方法は、データの有限ブロックを圧縮するために使用されるすべての辞書エントリIDがサブセットに組み込まれ、サブセットはオフセット及びサイズのみを使用し、辞書から作成でき、サブセットが辞書よりも少ないエントリを含むように辞書のすべての辞書エントリIDの連続サブセットを活用する。   That is, this network traffic forwarding method uses a dictionary compression mechanism to compress the transmitted data, and compresses the tokens released in relation to the dictionary utilization of the dictionary compression mechanism when compressing a finite block of data. More specifically, this method of using the token compression mechanism incorporates all dictionary entry IDs used to compress a finite block of data into the subset, which uses only the offset and size, and from the dictionary Take advantage of a contiguous subset of all dictionary entry IDs in the dictionary so that the subset contains fewer entries than the dictionary.

上記方法では、連続サブセットは、辞書圧縮機構がまずリストの終わりに辞書エントリIDを放出し、その後リストの最小辞書エントリID及び最大辞書エントリIDを計算することで計算される。そして、辞書圧縮機構は、連続サブセットの長さを使用することで一時トークンサイズを計算し、リスト順序で放出された辞書エントリIDのリストの辞書エントリIDごとに、オフセット及び連続サブセットの長さだけではなく、元の辞書のコピーのみを保持する受信機によって復号できる、一時トークンサイズのトークンを放出する。   In the above method, the continuous subset is calculated by the dictionary compression mechanism first releasing the dictionary entry ID at the end of the list and then calculating the minimum dictionary entry ID and the maximum dictionary entry ID of the list. The dictionary compression mechanism then calculates the temporary token size by using the length of the continuous subset, and for each dictionary entry ID in the list of dictionary entry IDs released in list order, only the offset and the length of the continuous subset Rather, it emits a token of temporary token size that can be decrypted by a receiver that holds only a copy of the original dictionary.

上述の実施例に従って、再利用される辞書の辞書効率は連続的に改善され、ショートパケットを符号化するときの活用が不十分な大きい辞書に起因するトークンサイズオーバヘッドは大幅に削減され、圧縮効率を大幅に改善する。   According to the above embodiment, the dictionary efficiency of the reused dictionary is continuously improved, and the token size overhead due to large dictionaries that are underutilized when encoding short packets is greatly reduced, and the compression efficiency Greatly improved.

100a:IoT装置#1
150a:IoT装置#1のネットワークデータ
400a:メッセージ#1
402a:メッセージ#1ヘッダ
404a:メッセージ#1ペイロード
100b:IoT装置#2
150b:IoT装置#2のネットワークデータ
400b:メッセージ#2
402b:メッセージ#2ヘッダ
404b:メッセージ#2ペイロード
300a:送信機側LAN
500a:送信機側のIoTゲートウェイ
600a:送信機側のIoTゲートウェイの機能ブロック
320:WAN
500b:受信機側のIoTゲートウェイ
600b:受信機側のIoTゲートウェイの機能ブロック
300b:受信機側LAN
200a:受信機#1
200b:受信機#2
100a: IoT device # 1
150a: IoT device # 1 network data 400a: message # 1
402a: Message # 1 header 404a: Message # 1 payload 100b: IoT device # 2
150b: IoT device # 2 network data 400b: message # 2
402b: Message # 2 header 404b: Message # 2 payload 300a: Transmitter side LAN
500a: IoT gateway 600a on the transmitter side: Function block 320 of the IoT gateway on the transmitter side: WAN
500b: Receiver-side IoT gateway 600b: Receiver-side IoT gateway functional block 300b: Receiver-side LAN
200a: Receiver # 1
200b: Receiver # 2

Claims (16)

セッション辞書を活用する転送データ圧縮を備えるデータ送信システムのためのデータ圧縮方法であって、
永久辞書ストアに複数の永久辞書を準備するための第1のステップと、
前記複数の永久辞書のうち1つの辞書を選択し、一時セッションメモリで前記セッション辞書を準備するために前記選択された永久辞書を複製するための第2のステップと、
前記セッション辞書を使用することで転送データを圧縮するための第3のステップと、
前記セッション辞書の効率を評価するための第4のステップと、
前記セッション辞書が、前記永久辞書として前記永久辞書ストアに記憶されるべきかどうかを、前記効率の評価に基づいて識別するための第5のステップと、
を含み、
前記第2のステップがセッションをセットアップするときに実施され、
前記第3のステップが前記セッション中に実施され、前記一時セッションメモリの前記セッション辞書を修正するためのステップを含み、
前記第4のステップ及び前記第5のステップが前記セッション中に繰り返し実施される、
データ圧縮方法。
A data compression method for a data transmission system with transfer data compression utilizing a session dictionary, comprising:
A first step for preparing a plurality of permanent dictionaries in a permanent dictionary store;
A second step for selecting one of the plurality of permanent dictionaries and duplicating the selected permanent dictionary to prepare the session dictionary in a temporary session memory;
A third step for compressing the transfer data by using the session dictionary;
A fourth step for evaluating the efficiency of the session dictionary;
A fifth step for identifying whether the session dictionary is to be stored in the permanent dictionary store as the permanent dictionary based on the evaluation of the efficiency;
Including
The second step is performed when setting up a session;
The third step is performed during the session, comprising modifying the session dictionary in the temporary session memory;
The fourth step and the fifth step are repeatedly performed during the session;
Data compression method.
前記第4のステップ及び前記第5のステップが、前記セッション停止時に実施される、
請求項1に記載のデータ圧縮方法。
The fourth step and the fifth step are performed when the session is stopped.
The data compression method according to claim 1.
前記永久辞書、第1のセッションID、及び第1の使用カウンタを含む第1のデータブロックが前記永久辞書ストアに記憶され、
前記セッション辞書、第2のセッションID、及び第2の使用カウンタを含む第2のデータブロックが前記一時セッションメモリに記憶され、
新規セッション要求が受信されると、第3のセッションIDが前記新規セッション要求に基づいて生成され、前記永久辞書ストアで永久辞書が検索され、前記第1のセッションIDが前記第3のセッションIDと同一であり、
第1のステップが、
前記第3のセッションIDと同一の前記第1のセッションIDを有する永久辞書が見つからなかったときに、次いで前記第3のセッションIDを前記第1のセッションIDとして含む新規第1のデータブロックを作成すること
を含み、
第2のステップが、
前記第3のセッションIDと同一の前記第1のセッションIDを有する前記永久辞書が見つかったときに、次いで前記第3のセッションIDを前記第2のセッションIDとして含む前記第2のデータブロックを準備するために前記見つかった永久辞書を複製すること
を含み、
第4のステップが、
前記第2の使用カウンタに基づいて効率パラメータを入手すること
を含み、
第5のステップが、
前記効率パラメータを評価することで、前記セッション辞書が前記永久辞書ストアに記憶されるべきかを識別すること
を含む、
請求項1に記載のデータ圧縮方法。
A first data block including the permanent dictionary, a first session ID, and a first usage counter is stored in the permanent dictionary store;
A second data block including the session dictionary, a second session ID, and a second usage counter is stored in the temporary session memory;
When a new session request is received, a third session ID is generated based on the new session request, a permanent dictionary is searched in the permanent dictionary store, and the first session ID is combined with the third session ID. Are the same,
The first step is
When a permanent dictionary having the first session ID that is the same as the third session ID is not found, a new first data block including the third session ID as the first session ID is then created. Including
The second step is
When the permanent dictionary having the same first session ID as the third session ID is found, the second data block including the third session ID as the second session ID is prepared. Duplicating the found permanent dictionary to
The fourth step is
Obtaining an efficiency parameter based on the second usage counter;
The fifth step is
Identifying whether the session dictionary is to be stored in the permanent dictionary store by evaluating the efficiency parameter;
The data compression method according to claim 1.
前記第4のステップ及び前記第5のステップが、前記第2の使用カウンタが変更されるたびに前記セッション中に連続的に実施される、
請求項3に記載のデータ圧縮方法。
The fourth step and the fifth step are performed continuously during the session each time the second usage counter is changed.
The data compression method according to claim 3.
前記第4のステップ及び前記第5のステップが、前記第2の使用カウンタが変更されるたびに、及び前記セッションを停止するときにも、前記セッション中に連続的に実施される、
請求項3に記載のデータ圧縮方法。
The fourth step and the fifth step are performed continuously during the session whenever the second usage counter is changed and also when the session is stopped.
The data compression method according to claim 3.
前記第2の使用カウンタが、非圧縮バイトの数のためのカウンタ、及び圧縮バイトの数のためのカウンタを含み、
前記第4のステップが、
前記非圧縮バイト及び前記圧縮バイトを入手すること
を含み、
前記第5のステップが、
非圧縮バイトの数が第1の所定の条件σを満たすのか、それとも圧縮バイトの数が第1の所定の条件σを満たすのかをチェックすることと、
を含み、
結果が否定的である場合、
前記セッション辞書は前記永久辞書ストアに記憶されない、
請求項3に記載のデータ圧縮方法。
The second usage counter includes a counter for the number of uncompressed bytes and a counter for the number of compressed bytes;
The fourth step includes
Obtaining the uncompressed bytes and the compressed bytes;
The fifth step comprises
Checking whether the number of uncompressed bytes satisfies a first predetermined condition σ or whether the number of compressed bytes satisfies a first predetermined condition σ;
Including
If the result is negative,
The session dictionary is not stored in the permanent dictionary store;
The data compression method according to claim 3.
前記第2の使用カウンタが非圧縮バイトの数のためのカウンタ及び圧縮バイトの数のためのカウンタを含み、
前記第4のステップが、
前記効率パラメータを得るために前記圧縮バイトと前記非圧縮バイトとの比率を示す圧縮率を計算すること
を含み、
前記第5のステップが、
前記圧縮率が第2の所定の条件βを満たすかどうかをチェックすることと、
を含み、
結果が肯定的である場合、
前記セッション辞書は前記永久辞書ストアに記憶される、
請求項5に記載のデータ圧縮方法。
The second usage counter includes a counter for the number of uncompressed bytes and a counter for the number of compressed bytes;
The fourth step includes
Calculating a compression ratio indicative of a ratio of the compressed bytes to the uncompressed bytes to obtain the efficiency parameter;
The fifth step comprises
Checking whether the compression ratio satisfies a second predetermined condition β;
Including
If the result is positive,
The session dictionary is stored in the permanent dictionary store;
The data compression method according to claim 5.
前記第4のステップが、
前記効率パラメータを得るために以前に計算された圧縮率と現在の圧縮率との間の比率変化を計算すること
を含み、
前記第5のステップが、
前記比率変化が第3の所定の条件γを満たすかどうかをチェックすることと、
を含み、
結果が肯定的である場合、
前記セッション辞書は前記永久辞書ストアに記憶される、
請求項7に記載のデータ圧縮方法。
The fourth step includes
Calculating a ratio change between a previously calculated compression ratio and a current compression ratio to obtain the efficiency parameter;
The fifth step comprises
Checking whether the ratio change satisfies a third predetermined condition γ;
Including
If the result is positive,
The session dictionary is stored in the permanent dictionary store;
The data compression method according to claim 7.
前記第4のステップが、
前記効率パラメータを得るために、以前に計算された比率変化と現在の比率変化の間の比率変化の程度を計算すること
を含み、
前記第5のステップが、
前記比率変化の程度が第4の所定の条件δを満たすかどうかをチェックすること、
を含み、
結果が肯定的である場合、
前記セッション辞書は前記永久辞書ストアに記憶される、
請求項8に記載のデータ圧縮方法。
The fourth step includes
Calculating a ratio change ratio between a previously calculated ratio change and a current ratio change to obtain the efficiency parameter;
The fifth step comprises
Checking whether the degree of the ratio change satisfies a fourth predetermined condition δ,
Including
If the result is positive,
The session dictionary is stored in the permanent dictionary store;
The data compression method according to claim 8.
前記第5のステップが、
前記第1の使用カウンタに基づいた計算、並びに第1のセッションID及び第2のセッションIDが同一である前記第1のデータブロック及び前記第2のデータブロックに属する前記第2の使用カウンタに基づいた計算の結果を比較すること
を含む、
請求項3に記載のデータ圧縮方法。
The fifth step comprises
Based on the calculation based on the first usage counter and the second usage counter belonging to the first data block and the second data block having the same first session ID and second session ID. Including comparing the results of different calculations
The data compression method according to claim 3.
送信機ゲートウェイ、受信機ゲートウェイ、及び前記受信機ゲートウェイと前記受信機ゲートウェイとの間のネットワーク
を備えるシステムによって実施されるデータ圧縮方法であって、
前記第1、第2、第3、第4、及び第5のステップが前記送信機ゲートウェイによって実行され、前記送信機ゲートウェイが前記選択された永久辞書の識別子を前記受信機ゲートウェイに送信し、
前記受信機ゲートウェイが、
前記選択された永久辞書の前記識別子の受信するための第6のステップと、
前記識別子に基づいて受信機永久辞書ストアに記憶される複数の受信機永久辞書のうち1つの辞書を選択し、受信機一時セッションメモリで受信機セッション辞書を準備するために前記選択された受信機永久辞書を複製するための第7のステップと、
前記受信機セッション辞書を使用することで受信されたデータを解凍するための第8のステップと、
前記受信機セッション辞書の効率を評価するための第9のステップと、
前記受信機セッション辞書が前記受信機永久辞書として前記受信機永久辞書ストアに記憶されるべきかどうかを、前記効率に基づいて識別するための第10のステップと、
を含む、請求項1に記載のデータ圧縮方法。
A data compression method implemented by a system comprising a transmitter gateway, a receiver gateway, and a network between the receiver gateway and the receiver gateway,
The first, second, third, fourth and fifth steps are performed by the transmitter gateway, wherein the transmitter gateway transmits the identifier of the selected permanent dictionary to the receiver gateway;
The receiver gateway is
A sixth step for receiving the identifier of the selected permanent dictionary;
The selected receiver for selecting one of a plurality of receiver permanent dictionaries stored in a receiver permanent dictionary store based on the identifier and preparing a receiver session dictionary in a receiver temporary session memory. A seventh step for replicating the permanent dictionary;
An eighth step for decompressing data received using the receiver session dictionary;
A ninth step for evaluating the efficiency of the receiver session dictionary;
A tenth step for identifying, based on the efficiency, whether the receiver session dictionary is to be stored in the receiver permanent dictionary store as the receiver permanent dictionary;
The data compression method according to claim 1, comprising:
前記第3のステップで、前記セッション辞書に基づいたトークンが送信され、前記方法がさらに、
前記転送データを圧縮するために前記セッション辞書の必要な部分を指定することと、
前記トークンの置換で使用される制限トークンのサイズを計算することと、
前記制限トークン及び前記トークンのサイズを比較することと、
前記制限トークンのサイズが前記トークンのサイズよりも小さい場合、前記送信機ゲートウェイが前記受信機ゲートウェイに前記制限トークンを送信する、
請求項11に記載のデータ圧縮方法。
In the third step, a token based on the session dictionary is transmitted, and the method further comprises:
Specifying the necessary part of the session dictionary to compress the transfer data;
Calculating the size of the restricted token used in the token replacement;
Comparing the restricted token and the token size;
If the size of the restricted token is smaller than the size of the token, the transmitter gateway sends the restricted token to the receiver gateway;
The data compression method according to claim 11.
プロセッサ、メモリ、及びネットワークに結合されたインタフェースを備えるデータ転送のためのゲートウェイであって、
セッションのセットアップ時、前記プロセッサが前記セッションに関するネットワークパラメータに基づいて、前記メモリの永久ストアで多数の圧縮辞書の中から1つを選択し、
前記プロセッサは、セッション辞書として前記メモリのセッションストアに前記選択された圧縮辞書をコピーし、
前記プロセッサは、前記セッション辞書及び前記セッション辞書に相当する使用カウンタを更新しつつ、前記セッション辞書で前記セッションのトラフィックを圧縮し、
前記プロセッサは、前記セッション辞書の前記使用カウンタに基づいて、前記永久ストアに前記セッション辞書を記憶するかどうかの決定を下す、
ゲートウェイ。
A gateway for data transfer comprising an interface coupled to a processor, memory, and a network comprising:
During session setup, the processor selects one of a number of compression dictionaries in the permanent store of the memory based on network parameters for the session;
The processor copies the selected compression dictionary to the session store of the memory as a session dictionary;
The processor compresses the session traffic in the session dictionary while updating the session dictionary and a usage counter corresponding to the session dictionary;
The processor makes a decision whether to store the session dictionary in the permanent store based on the usage counter of the session dictionary;
gateway.
前記使用カウンタが前記トラフィックの非圧縮バイトの数及び圧縮バイトの数を示し、
前記プロセッサが非圧縮バイトの数及び圧縮バイトの数の少なくとも1つに基づいて前記決定を下す、
請求項13に記載のゲートウェイ。
The usage counter indicates the number of uncompressed and compressed bytes of the traffic;
The processor makes the determination based on at least one of a number of uncompressed bytes and a number of compressed bytes;
The gateway according to claim 13.
前記プロセッサが、前記使用カウンタに基づいて圧縮率を計算し、前記圧縮率に基づいて前記決定を下す、
請求項14に記載のゲートウェイ。
The processor calculates a compression rate based on the usage counter and makes the determination based on the compression rate;
The gateway according to claim 14.
送信機装置から受信機装置にデータを転送し、セッション辞書を使用することで前記データを圧縮するためのデータ送信システムであって、
プロセッサ及びメモリを備える前記送信機装置であって、
前記メモリは、第1のデータベース及び第2のデータベースを含み、前記第1のデータベースは、永久辞書及び前記永久辞書の効率パラメータの複数の組合せを記憶し、
前記プロセッサは、前記データに基づいて前記第1のデータベースの1つの永久辞書を選択し、前記セッション辞書として前記第2のデータベースに前記選択された永久辞書のコピーを作成し、
前記プロセッサは、前記セッション辞書を使用することで前記データを圧縮し、
前記プロセッサは、前記セッション辞書を修正し、前記セッション辞書の前記効率パラメータを監視し、
前記プロセッサは、前記永久辞書及び前記セッション辞書の前記効率パラメータに基づいて、前記永久辞書が前記セッション辞書によって上書きされるべきかどうかを判断する、
前記送信機装置
を備える、データ送信システム。
A data transmission system for transferring data from a transmitter device to a receiver device and compressing the data by using a session dictionary,
A transmitter device comprising a processor and a memory, comprising:
The memory includes a first database and a second database, the first database storing a plurality of combinations of a permanent dictionary and efficiency parameters of the permanent dictionary;
The processor selects one permanent dictionary of the first database based on the data and creates a copy of the selected permanent dictionary in the second database as the session dictionary;
The processor compresses the data by using the session dictionary;
The processor modifies the session dictionary and monitors the efficiency parameters of the session dictionary;
The processor determines whether the permanent dictionary should be overwritten by the session dictionary based on the efficiency parameters of the permanent dictionary and the session dictionary;
A data transmission system comprising the transmitter device.
JP2016130302A 2016-06-30 2016-06-30 Data compression method, gateway, and data transmission system Pending JP2018006964A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016130302A JP2018006964A (en) 2016-06-30 2016-06-30 Data compression method, gateway, and data transmission system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016130302A JP2018006964A (en) 2016-06-30 2016-06-30 Data compression method, gateway, and data transmission system

Publications (1)

Publication Number Publication Date
JP2018006964A true JP2018006964A (en) 2018-01-11

Family

ID=60946547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016130302A Pending JP2018006964A (en) 2016-06-30 2016-06-30 Data compression method, gateway, and data transmission system

Country Status (1)

Country Link
JP (1) JP2018006964A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019220104A (en) * 2018-06-22 2019-12-26 日本電信電話株式会社 Device functioning as sensor node and data center, sensor network, communication method, and program
US20200204638A1 (en) * 2018-12-19 2020-06-25 Cisco Technology, Inc. In-flight building and maintaining dictionaries for efficient compression for iot data
CN113608669A (en) * 2020-05-05 2021-11-05 辉达公司 Techniques for scaling dictionary-based compression
CN117081602A (en) * 2023-10-13 2023-11-17 青岛场外市场清算中心有限公司 Capital settlement data optimization processing method based on blockchain

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019220104A (en) * 2018-06-22 2019-12-26 日本電信電話株式会社 Device functioning as sensor node and data center, sensor network, communication method, and program
WO2019244513A1 (en) * 2018-06-22 2019-12-26 日本電信電話株式会社 Device functioning as sensor node and data center, sensor network, communication method, and program
JP7056406B2 (en) 2018-06-22 2022-04-19 日本電信電話株式会社 Devices, sensor networks, communication methods and programs that function as sensor nodes and data centers
US11822579B2 (en) 2018-06-22 2023-11-21 Nippon Telegraph And Telephone Corporation Apparatus for functioning as sensor node and data center, sensor network, communication method and program
US20200204638A1 (en) * 2018-12-19 2020-06-25 Cisco Technology, Inc. In-flight building and maintaining dictionaries for efficient compression for iot data
US11012525B2 (en) * 2018-12-19 2021-05-18 Cisco Technology, Inc. In-flight building and maintaining dictionaries for efficient compression for IoT data
CN113608669A (en) * 2020-05-05 2021-11-05 辉达公司 Techniques for scaling dictionary-based compression
CN117081602A (en) * 2023-10-13 2023-11-17 青岛场外市场清算中心有限公司 Capital settlement data optimization processing method based on blockchain
CN117081602B (en) * 2023-10-13 2024-01-26 青岛场外市场清算中心有限公司 Capital settlement data optimization processing method based on blockchain

Similar Documents

Publication Publication Date Title
US9158806B2 (en) Integrity checking and selective deduplication based on network parameters
US7865585B2 (en) Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US8255570B2 (en) Systems and methods of compression history expiration and synchronization
US8244852B2 (en) Systems and methods for identifying long matches of data in a compression history
US8786473B2 (en) Systems and methods for sharing compression histories between multiple devices
US7619545B2 (en) Systems and methods of using application and protocol specific parsing for compression
US7460038B2 (en) Systems and methods of clustered sharing of compression histories
US7453379B2 (en) Systems and methods for identifying long matches of data in a compression history
JP2018006964A (en) Data compression method, gateway, and data transmission system
AU2008225158B2 (en) Systems and methods for using compression histories to improve network performance
US8560552B2 (en) Method for lossless data reduction of redundant patterns
EP3166277A1 (en) Bit-aligned header compression for ccn messages using dictionary
Göttel et al. Hermes: Enabling energy-efficient iot networks with generalized deduplication
Yazdani et al. Age of information analysis for instantly decompressible IoT protocols
US9356645B2 (en) Saving bandwidth in transmission of compressed data
Dorward et al. Robust data compression of network packets
Kho et al. Application of Data Compression Technique in Congested Networks
Kho et al. Joint LZW and Lightweight Dictionary-based compression techniques for congested network
Tsao et al. Adaptive source and channel coding for distributed applications
CN103686864A (en) Bilateral optimization method for mobile network