JP2018006964A - Data compression method, gateway, and data transmission system - Google Patents
Data compression method, gateway, and data transmission system Download PDFInfo
- 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
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Multi Processors (AREA)
Abstract
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
辞書のサイズは有限であり、任意の一回に含まれるエントリの数を制限する。ネットワークを介して送信される辞書ポインタのサイズ、いわゆるトークンも辞書の最大サイズによって制限される。一般的に、トークンサイズは、辞書の最大サイズまで辞書に含まれるアイテムの数とともに継続して大きくなる。例えば大量の辞書を活用し、大量のデータを符号化するとき等、辞書エントリの活用が辞書全体を通して均等に分散される場合、大きいトークンサイズのオーバヘッドは、辞書ポインタで符号化できる大量のパターンによってバランスを保たれる。 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.
実施例は、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ゲートウェイ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
図2は、異なる構成要素間の関係するデータフロー、制御データフロー、及び情報アクセスフローだけではなく本実施例の機能ブロック600の構成要素も示す。
FIG. 2 shows the components of the
以下の機能構成要素、つまりおそらくは永久辞書ストアの記憶されているデータを再利用し、異なる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
以下のデータ構造、つまりそれぞれがセッションID1110a、使用カウンタ1130a、及び辞書1120aを含むおそらく1つ又は複数の永久辞書ストアブロック1105aを含む永久辞書ストア1100と、それぞれがセッションID1010a、使用カウンタ1030a、辞書1020a、及び辞書エントリIDリスト1040aを含むおそらく1つ又は複数の一時セッションメモリブロック1005aを含む一時セッションメモリ1000は、機能ブロックの一部である。
データフロー、制御データフロー、及び情報アクセスフローは、セッションハンドラ1600によって受信される入力ネットワークデータ400cを使用して説明され、セッションハンドラ1600はその後一時セッションメモリ1000にアクセスして、受信されたネットワークデータのヘッダ情報に関係する既存の一時セッションメモリブロックをおそらく選択する。一時セッションメモリブロックが見つからない場合、永久辞書ストアがアクセスされて、新規一時セッションメモリブロックを作成するときに再利用するために以前に記憶された永久辞書ストアブロックをおそらく選択する。記憶済み辞書が見つからない場合、一時セッションメモリが再びアクセスされて、新規一時セッションメモリブロックを作成する。
The data flow, control data flow, and information access flow are described using the
次いで、受信されたネットワークデータは、送信機側である場合はトークンエンコーダ1700、又は受信機側である場合はトークンデコーダ1710のどちらかに転送される。例えば、現在のセッションのセッションID等の関係する制御情報は、同様の方法で転送される。トークンエンコーダ1700は一時セッションメモリにアクセスして、セッション辞書及び辞書エントリIDリストを活用し、受信されたデータをトークンに符号化する。トークンはその後放出され、出力ネットワークデータ450aとして送信され、関係する使用制御情報は使用カウンタマネージャ1500に転送される。トークンデコーダ1710は一時セッションメモリにアクセスして、セッション辞書を活用しながら、受信されたデータのトークンをその元のデータに復号する。元のデータはその後放出され、出力ネットワークデータ450aとして送信され、関係する使用制御情報は使用カウンタマネージャ1500に転送される。
The received network data is then transferred to either the
使用カウンタマネージャ1500は、関係する一時セッションメモリブロックで使用カウンタにアクセスして、関係するカウンタを更新する。結果的に生じる情報はセッションハンドラ1600に制御データとして転送され、セッションハンドラ1600はその後、一時セッションメモリブロックの使用カウンタ1030aを、永久辞書ストアブロックの使用カウンタ1130とおそらく比較して、関係する一時セッションメモリブロックが永久辞書ストアに記憶されるべきかどうかを検討できる。
The
図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
図8は、本実施例に関係する現在継続中の動作に関係するデータを記憶するために使用される、一時セッションメモリ1000のデータフィールドを示すデータスキーマである。
FIG. 8 is a data schema showing the data fields of the
図9は、他のスキーマのどのデータフィールドが図8の一時セッションメモリスキーマ1000によって参照されるのかを示すデータ関係図である。
FIG. 9 is a data relationship diagram showing which data fields of other schemas are referenced by the temporary
図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
図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
図20は、WANからの圧縮データを解凍するために、受信機側トークンデコーダ1710で実行される、簡略化された復号動作のプログラムフローを示すプログラムフロー図である。
FIG. 20 is a program flow diagram showing a simplified program flow of the decoding operation executed by the receiver-
図21は、送信機側ゲートウェイ及び受信機側ゲートウェイ両方のカウンタマネージャ1500で実行される使用カウンタ管理動作のプログラムフローを示す、プログラムフロー図である。
FIG. 21 is a program flow diagram showing a program flow of a usage counter management operation executed by the
図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
図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
図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
トークンは次いで、トークンメッセージ450bのペイロード454aとして放出及び送信され、関係する制御情報は、関係する一時セッションメモリ1005bのセッション使用カウンタ1030bにアクセスする使用カウンタマネージャ1500aに送信される。使用カウンタの結果は次いでセッションハンドラ1600aに制御情報として返送されて、一時セッションメモリの記憶の検討を可能にする。
The token is then released and transmitted as the
トークンメッセージ450bはWAN320aを介して送信され、受信機側セッションハンドラ1600bによって受信され、受信機側セッションハンドラ1600bは永久辞書ストア1100b及び一時セッションメモリ1000bからの情報にアクセスして、送信機側と同様の方法で既存の一時セッションを選択する、又は新規一時セッションを作成する。
The token message 450b is transmitted via the
データ及び関係する制御情報は次いでトークンデコーダ1710aに転送され、トークンデコーダ1710aは、一時セッションメモリ1005cからの関係する情報にアクセスしつつ、トークンメッセージ450bのペイロード454aを復号する。結果的に生じる復号されたデータは、次いで受信機側の発信メッセージ470aで送信され、関係する制御情報は使用カウンタマネージャ1500bに送信され、使用カウンタマネージャ1500bは関係する一時セッションメモリ1005cの情報にアクセスし、セッションハンドラ1600bに制御情報を送り返し、セッションハンドラ1600bはその後一時セッションメモリの記憶を検討する。
The data and related control information are then transferred to the
図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
本実施例の機能ブロック600は、二次メモリ1840のプログラム命令の形で記憶され、初期化時に一次メモリ1830にコピーされ、CPU1820によって処理される。IoT装置とIoTゲートウェイとの間のネットワーク通信は第1のNIC1850aを使用して実行されてよく、該IoTゲートウェイと別のIoTゲートウェイとの間のネットワーク通信は、第2のNIC1850bを使用して実行されてよい。構成要素1800は、実施例の適用性を制限せずに変更することがある最小の構成を示す。1つの標準的な実施例によると、CPU1820は、本実施例に説明される機能を実施するためにメモリ1830又は1840に記憶されたプログラムを実行する。CPUの代わりにFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)を使用することも可能である。
The
図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ゲートウェイ500gは、以前に作成されたセッションIDにとって適切な辞書を用いて、4600aでセッション中の使用のために恒久的に記憶された辞書を検索し、選択する。送信機IoTゲートウェイ500gは次いで4110aで受信機IoTゲートウェイ500hに、以前に選択されたセッション辞書の辞書IDを含む初期化要求を送信する。
The
受信機IoTゲートウェイ500は、初期化要求4110aのネットワークヘッダ情報に基づいて任意のセッション処理ブロック7020bを作成し、4500bでセッションIDを生成する。続いて、受信機IoTゲートウェイ500は、4110bで受信された辞書IDを有し、4500bで計算されたセッションIDにとって適切な辞書で、4600bでセッション中に使用するための恒久的に記憶された辞書を検索し、その後選択する。かかる辞書が見つかると、セッション辞書として使用される。
The
受信機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
受信機IoTゲートウェイ500hは、4400aで以前に選択されたセッション辞書を使用して受信されたデータを復号し、7070で受信機200cに復号されたデータを転送する。
送信機IoTゲートウェイ500gは、符号化されたデータを転送後、6000aでそのセッション使用カウンタを更新する。続いて、送信機IoTゲートウェイ500gは4800aでそのセッション辞書の圧縮効率をチェックし始め、セッション辞書を恒久的に記憶するのに十分な圧縮効率を見つけた後に、4500aで生成された現在のセッションIDに適切な恒久的に記憶された辞書を検索し、恒久的に記憶された辞書を見つけた後に4900aでセッション辞書と見つかった辞書の圧縮効率を比較する。セッション辞書の圧縮効率が優れていることが判明し、その後セッション辞書の辞書IDが5500a及び恒久的に記憶されたセッション辞書で生成され、以前に見つかった永久辞書を上書きする。
After transmitting the encoded data, the
受信機IoTゲートウェイ500hは、復号されたデータを転送後、6000bでそのセッション使用カウンタを更新する。このとき、送信機IoTゲートウェイ500gでのセッション辞書と受信機IoTゲートウェイ500hでのセッション辞書のどちらも、同じ辞書圧縮機構を使用した結果、同じ内容を含む。さらに、送信機IoTゲートウェイ500gと受信機IoTゲートウェイ500h両方の使用カウンタは、非圧縮データ量及び圧縮データ量が同じであるため、同様の内容を含む。続いて、受信機IoTゲートウェイ500hは4800bでそのセッション辞書の圧縮効率のチェックを開始し、セッション辞書を恒久的に記憶するのに十分な圧縮効率を見つけた後に、4500bで生成された現在のセッションIDに適切な恒久的に記憶された辞書を検索し、恒久的に記憶された辞書を見つけた後に4900bでセッション辞書と見つかった辞書の圧縮効率を比較する。セッション辞書の圧縮効率が優れていることが判明し、その後セッション辞書の辞書IDが5500b及び恒久的に記憶されたセッション辞書で生成され、以前に見つかった永久辞書を上書きする。
The
使用カウンタが同様であるため、受信機IoTゲートウェイ500hで実行されたブロック4800b、4900b、及び5500bの結果は、送信機IoTゲートウェイ500gで実行されたブロック4800a、4900a、及び5500aの結果と同様である。したがって、ここでは送信機IoTゲートウェイ500gと受信機IoTゲートウェイ500hのどちらも、現在のセッション辞書で以前に記憶された永久辞書を更新した。
Because the usage counter is similar, the results of
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
図7は、ブロック4010で開始し、新規セッション要求が4030でネットワークから受信された後、セッションハンドラ1600で実行される、セッション初期化時の辞書選択に関する実施例1のプログラムフロー4000を示す。
FIG. 7 shows the
続いて、セッション識別子は、例えば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
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
その後、プログラムフローは4244の発信ラベルSNから4246の入信ラベルSNにジャンプし、上述されたように続行する。辞書ID TCPオプションが4240の検査で見つからなかった場合、プログラムフローは4244の発信ラベルSNから4246の入信ラベルSNにジャンプし、上述されたように続行する。現在のプログラムフローが受信機側ゲートウェイで実行されることが4190の検査で明らかになった場合、4270で、辞書を含む辞書ID TCPオプションが生成され、生成された辞書ID TCPオプションを含むセッションセットアップ肯定応答が送信機側ゲートウェイに送信される。
The program flow then jumps from the
図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
セッション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
例示的な一時セッションメモリエントリ1005hは、セッションID6で使用され、セッション識別子ID23によって参照されるセッション識別子、セッション辞書ID223によって参照されるセッション辞書、使用カウンタID65によって参照されるセッション辞書、及び使用済みリストID233によって参照される辞書エントリIDリストを使用する。
An exemplary temporary
図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
セッション識別子フィールド1004は、図10のセッション識別子スキーマのIDフィールド2202bを参照する。セッション識別子IDフィールド1006は、図11のセッション辞書スキーマのセッション辞書IDフィールド2160bを参照する。使用カウンタIDフィールド1008は、図12のセッション使用カウンタスキーマのIDフィールド2102bを参照する。使用済みリストIDフィールド1009は、図29の辞書エントリIDリストスキーマのリストIDフィールド2710を参照する。このフィールドは本実施例に関係していないが、実施例3及び続く実施例に関係し、そこでより詳細に説明される。
The
図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
例示的なセッション識別子1010gはID23、目的地IPアドレス10.10.0.1、及び目的地TCPポート番号1883を含む。図10のスキーマの効果は、ネットワークパケット受信時に関係する辞書の迅速な選択を可能にするために、現在使用中の辞書を伴う、関係するネットワークヘッダデータ識別子の記憶にある。
図11は、例えば図5の一次メモリ1830にセッション辞書を記憶するために可能なデータ構造を説明する、実施例1のセッション辞書ストア2300bを示している。セッション辞書ストア2300bの中には、それぞれがセッション辞書ID2360aによって明確に識別される、ゼロ又は1つの又は複数のセッション辞書1020を記憶できる。
FIG. 11 shows the
セッション辞書は各セッション辞書1020に一意のエントリID2320b、文字列又はバイトパターンを含むパターン2330b、及び符号化又は復号中の辞書エントリの使用の数を含む使用カウンタ2340bによって明確に識別されるゼロ、1つ、又は複数のエントリを含む。使用カウンタ2340bは、使用別の辞書エントリの順序付けを作成するために使用できる。別の実施例では、使用カウンタ2340bはセッション辞書1020から放出される。
The session dictionary is uniquely identified by each
別の実施例では、セッション辞書1020はより多くのフィールド又は他のフィールドを含み、他の情報による辞書エントリの順序付けを可能にする。例示的なセッション辞書1020jは、セッション辞書IDフィールド2360bのセッション辞書ID223によって識別され、ID27を有し、文字列パターン“Timestamp>”を含み、12511回使用された第1のエントリ2350cを有する少なくとも2つの辞書エントリを含む。
In another embodiment, the
図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
セッション使用カウンタテーブル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
セッション使用カウンタ1030hの第1の例は、ID65を含み、4223372バイトの非圧縮入力データを受信し、3406483バイトの圧縮バイト、0.768838の以前の圧縮率、及び0.719096の以前の圧縮率の変化を生じさせた。これは、関係するセッションの圧縮効率が前回改善し、現在は悪化しているが、全体的な傾向は識別できないことを意味する。
The first example of the
図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.
辞書IDフィールド2530は、永久辞書ストアの記憶済み辞書の16バイト辞書IDを含む。別の実施例では、辞書IDフィールド2530は記憶済み辞書の切り捨てられた辞書IDを含む。切り捨てられた辞書IDの使用により遠隔で辞書を参照するときの不明瞭さのリスクが高まるが、セッション識別子と組み合わせて使用することによりこのリスクは軽減する。
The
図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
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
永久辞書ストア1100eの例示的な永久辞書ブロック1105kは、一意のID1によって識別され、ID19を有する記憶済みセッション識別子、ID cc7aabc37e1c7d2fe98be9185bdfe43bを有する記憶済み辞書、及び使用カウンタID151を有する記憶済み使用カウンタを参照する。
The example
図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
図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
記憶済みセッション識別子は、記憶済みセッション識別子テーブル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
図17は、例えば図5の一次メモリ1830に、記憶済み辞書を記憶するために可能なデータ構造を説明する、実施例1の記憶済み辞書ストア2300aを示している。一般的に、セッション辞書1020は、記憶済み辞書ストア2300aに記憶済み辞書1120として記憶でき、したがってセッション辞書1020と記憶済み辞書1120の両方とも非常に類似している。辞書を記憶するときは、その辞書IDが計算され、記憶済み辞書1120の辞書IDフィールド2310aに記憶される。この数字は、辞書の内容を明確に識別する16バイトMD5ハッシュであり、セッション辞書1020のセッション辞書IDフィールド2360aとは異なる。
FIG. 17 shows the stored
記憶済み辞書ストア2300aでは、ゼロ又は1つの又は複数の記憶済み辞書1120を記憶できる。記憶済み辞書は、各記憶済み辞書1120に一意のエントリID2320a、文字列又はバイトパターンを含むパターン2330a、及び符号化又は復号中の辞書エントリの使用数を含む使用カウンタ2340aによって明確に識別されるゼロ、1つの、又は複数のエントリを含む。使用カウンタ2340aは、使用別の辞書エントリの順序付けを作成するために使用できる。
In the stored
他の実施例では、記憶済み辞書1120はセッション辞書1020に類似するフィールドを含む。例示的な記憶済み辞書1120dは、辞書ID cc7aabc37e1c7d2fe98be9185bdfe43bによって識別され、ID27を有し、文字列パターン“SetEquipmentStatus>”を含み、51216回使用された第1のエントリ2350aを有する、少なくとも2つの辞書エントリを含む。
In other embodiments, stored dictionary 1120 includes fields similar to
図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
記憶済み使用カウンタテーブル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
記憶済み使用カウンタ1130dの第1の例はID46を含み、2103636バイトの非圧縮入力データを受信し、1185188バイトの圧縮バイト、0.644605の以前の圧縮率、及び0.883436の以前の圧縮率の変化を生じさせた。良好な圧縮効率はわずかに劣化したが、再び回復した。
A first example of stored
図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
その後、ステップ4340で、読み取られたデータのサイズが、現在の一時セッションメモリブロックの使用カウンタIDフィールドによって参照されているセッション使用カウンタ1030の非圧縮バイトフィールド2104bに追加され、ステップ4350で、放出された符号化データのサイズが、現在の一時セッションメモリブロックの使用カウンタIDフィールドによって参照されているセッション使用カウンタの圧縮バイトフィールド2106bに追加される。次のステップ4315で、プログラムは終了する。
Thereafter, at
図20は、図19のエンコーダプログラムに類似するデコーダ4400bの簡略化されたプログラムフローを示している。このフローはステップ4410で開始し、ステップ4415に説明されるように、受信機側のIoTゲートウェイ500bのトークンデコーダ1710で実行される。まず、符号化されたデータのブロックは4420で読み取られる。
FIG. 20 shows a simplified program flow for a
その後、辞書復号が、現在の一時セッション辞書を使用し、ステップ4430で実行され、復号されたデータが放出される。概して、入力データは受信バッファから読み取られ、出力データは送信バッファに書き込まれる。一実施例では、受信バッファと送信バッファの両方とも、図5の一次メモリ1830の一部である。
Thereafter, dictionary decryption is performed at
以後のステップ4400で、入力データのサイズは、現在の一時セッションメモリブロックの使用カウンタIDフィールドによって参照されているセッション使用カウンタ1030の圧縮バイトフィールド2104bに追加され、その後、出力データのサイズは、現在の一時セッションメモリブロックの使用カウンタIDフィールドによって参照されているセッション使用カウンタの非圧縮バイトフィールド2106bに追加される。最後に、プログラムはステップ4415で終了する。
In subsequent step 4400, the size of the input data is added to the
図21は、例えば使用される辞書の効率を評価するために、データの符号化又は復号の間又は後にセッション使用カウンタにアクセスし、更新することに関係する動作を説明する、使用カウンタマネージャ1500で実行される、実施例1の使用カウンタマネージャフロー6000cを示している。
FIG. 21 illustrates a
使用カウンタマネージャフロー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
その後、ステップ6050で、現在の圧縮率Ration‐1は、現在の一時セッションメモリブロックの使用カウンタIDフィールド1008によって参照されるセッション使用カウンタの圧縮バイトフィールドの内容及び現在の一時セッションメモリブロックの使用カウンタIDフィールド1008によって参照されるセッション使用カウンタの非圧縮バイトフィールドの内容を使用して計算され、結果は、現在の一時セッションメモリブロックの使用カウンタIDフィールド1008によって参照されるセッション使用カウンタのRation‐1フィールドに書き込まれる。
Thereafter, in
続いて、ステップ6060で、比率の変化が、以前に計算されたRation‐1フィールド及び以前に計算されたRation‐2を使用して計算され、結果は、現在の一時セッションメモリブロックの使用カウンタIDフィールド1008によって参照されるセッション使用カウンタのRatio changen‐1に書き込まれる。続くステップ6070で、以前のタイムスタンプtprevは現在時刻tnowに更新され、プログラムフローはステップ6099で終わる。ステップ6030の検査が否定的であった場合、プログラムフローは終了ステップ6099で直接的に続行する。別の実施例では、プログラムフロー6000cのステップ6020及び6030のチェック及び関係する条件文は、経過時間の代わりに処理済みデータ量に左右される。図21のフローの効果は、以前に記憶され、更新された辞書使用パラメータに基づいた辞書効率の効率的な計算にある。
Subsequently, at
図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
プログラムフローはステップ4710aで開始し、4710aでセッションハンドラ1700によって周期的に実行される。続いて、辞書効率は4800dで図24のチェック使用サブフローを呼び出すことによってチェックされる。結果が4720aで「十分」であるかどうかのチェックが肯定的である場合、4722aで、一致するセッション識別子を有する辞書が永久辞書ストアで検索される。
The program flow begins at
類似する辞書が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
続くステップ4799aで、プログラムフローは終了する。4730aの検査が否定的である、つまり4900の呼び出されたサブフローの放出された結果が「記憶済み使用カウンタの方が良い」である場合、プログラムフローはステップ4799aで直ちに終了する。
In the following
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
続いて、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
以前の3つのステップ4755a、4760a、及び4765aで生成されるデータ構造は、永久辞書ストアの新規の永久辞書ストアブロックに恒久的に記憶される。プログラムフローは次いでステップ4799aで終了する。4720aの検査が否定的であった、つまり以前のステップ4800dで呼び出されたサブフローの放出された結果が「不十分」だった場合、プログラムフローはステップ4799aで直ちに終了する。
The data structure generated in the previous three
図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
プログラムフローは、ステップ4810で辞書再利用ストアチェックフロー4700から開始される。次のステップ4820で、現在の一時セッションメモリブロックの使用カウンタフィールド1008によって参照されるセッション使用カウンタの非圧縮バイトフィールドの未処理入力バイトの数が評価される。次のステップ4825で、非圧縮バイトの数が任意の限度σを超えるかどうかがチェックされる。別の実施例では、処理済みバイトの数が使用される。結果が肯定的である場合、プログラムフローは4830で続行し、現在の圧縮率Rationが、同じセッション使用カウンタの以前に読み取られた非圧縮バイトフィールド及び圧縮バイトフィールドの値を使用して計算される。
The program flow begins with dictionary reuse
その後、ステップ4835で、計算された圧縮率Rationが任意の閾値β以下であるかどうかが検査される。検査が肯定的である場合、プログラムフローはステップ4870で続行し、信号「十分」を放出し、辞書効率が記憶するのに十分であることを呼出し者に通知する。最後に、ステップ4899で、プログラムが終了する。
Thereafter, in
ステップ4835の検査が否定的である場合、プログラムフローはステップ4840で続行し、以前に計算された圧縮率Ration‐1と現在の圧縮率Rationとの間の比率変化Ratio changenは、ステップ4830で計算された現在の比率Ration及び現在の一時セッションメモリブロックの使用カウンタフィールド1008によって参照されるセッション使用カウンタのRation‐1フィールドに記憶された以前に計算されたRation‐1を使用して計算される。次のステップ4845で、計算された比率変化Ratio changenが任意の閾値γ以下であるかどうかが検査される。
If the check at
検査が肯定的である場合、プログラムフローは上述のようにステップ4870で続行する。検査が否定的である場合、プログラムフローはステップ4850で続行し、比率変化の変化は、現在の一時セッションメモリブロックの使用カウンタフィールド1008によって参照されるセッション使用カウンタの以前に計算された比率変化Ratio changen及びRatio changen‐1フィールドの内容を使用して計算される。続くステップ4855で、上記計算の結果が任意の閾値δ以下であるかどうかがチェックされる。
If the test is positive, program flow continues at
結果が肯定的である場合、上述のようにプログラムフローは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
図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
プログラムフローはステップ4910で開始され、ステップ4915に示されるように辞書再利用ストアチェックフロー4700によってサブフローとして実行される。現在のプログラムフロー開始時、記憶済み辞書はすでに選択されている。第1のプログラムステップ4920で、現在のセッションの現在の圧縮率R1が、現在の一時セッションメモリブロックの使用カウンタフィールド1008、及び同じセッション使用カウンタの圧縮バイトフィールドによって参照されるセッション使用カウンタの非圧縮バイトフィールドの内容を使用して計算される。
The program flow begins at
続くステップ4930で、選択された記憶済み辞書の現在の圧縮率R2は、永久辞書ストアブロックの使用カウンタフィールド1108によって参照される記憶済み使用カウンタの非圧縮バイトフィールド、及び同じ記憶済み使用カウンタの圧縮バイトフィールドを使用して計算される。次のステップ4940で、現在のセッション辞書比率R1と選択された記憶済み辞書比率R2のどちらも、比率Rを計算するために使用される。ステップ4950で、比率Rが任意の閾値λ以下であるかどうかがチェックされる。
In
肯定の場合、プログラムフローは信号「記憶済み辞書の方が良い」を放出し、ステップ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
図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
図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
図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
実施例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
ヘッダ402d及びペイロード404dを含むネットワークメッセージ400eは送信機側セッションハンドラ1600cによって受信され、送信機側セッションハンドラ1600cはヘッダ402dからの情報を活用し、おそらく永久辞書ストア1100cから以前に記憶されたデータを使用し、既存の一時セッションを選択する又は新規一時セッションを作成するために、永久辞書ストア1100c及び一時セッションメモリ1000cの情報にアクセスし、次いでトークンエンコーダ1700bにデータと関係する制御情報の両方を送信し、トークンエンコーダ1700bでデータの実際の符号化が発生し、一時セッションメモリストア1000cの関係する一時セッションメモリ1005dからの情報にアクセスしている。符号化は最初に辞書エントリIDを新たに初期化された辞書エントリIDリスト1040bに放出し、特定のパラメータによって定義される実際のセッション辞書1020d上での連続的なスライドウィンドウである仮想セッション辞書1025aの作成を可能にする。
A
これらのパラメータは符号化され、制限辞書トークン460bに放出される。続いて、ネットワークデータのペイロード404dは、トークンを放出する仮想セッション辞書1025aを使用し、トークンに符号化され、トークンとして放出される。制限辞書トークン406dと符号化されたトークンの両方とも次いでペイロード404fとしてトークンメッセージ450cで送信され、関係する制御情報は、関係する一時セッションメモリ1005dのセッション使用カウンタ1030dにアクセスし、おそらく関係するセッション使用カウンタを更新する使用カウンタマネージャ1500cに送信される。結果は次いで一時セッションメモリの記憶を検討することを可能にするために、制御情報としてセッションハンドラ1600cに送り返される。
These parameters are encoded and released into the restricted dictionary token 460b. Subsequently, the
トークンメッセージ450cは、送信機側と同様に、既存の一時セッションを選択する又は新規一時セッションを作成するために、WAN320bを介して送信され、永久辞書ストア1100d及び一時セッションメモリ1000dからの情報にアクセスしている受信機側セッションハンドラ1600dによって受信される。データ及び関係する制御情報は、次いで、一時セッションメモリ1005cからの関係する情報にアクセスしつつ、トークンメッセージ450bのペイロード454aを復号する、トークンデコーダ1710bに転送される。
第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
図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
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
その後、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
続くステップ5030及び5035はステップ5025で開始し、5035での条件ステップを通してループを離れることによって、5020で受信されたすべてのデータが完全に消費されるまでループで実行される。このループはループ最終ステップ5040で区切られる。ループの内側では、ステップ5030で、辞書符号化は受信されたデータブロックに対して実行されるが、符号化された辞書エントリIDトークンを放出する代わりに、辞書エントリIDは辞書エントリIDリストに付け加えられる。
ステップ5035で、ブロック5020で受信されたすべてのデータが完全に消費されたかどうかがチェックされる。否定の場合、ループは、ステップ5025でループの始まりにジャンプすることでステップ5040で続行する。それ以外の場合、プログラムフローは、辞書エントリIDリストで最小のエントリIDi1を見つけることによってステップ5045で続行する。その後、辞書エントリIDリストの最大エントリIDinがステップ5050で見つけられる。
In
続くステップ5400aで、図28の制限辞書トークンサイズ計算サブフローが呼び出され、制限トークンサイズt1である放出された結果を用いて制限辞書トークンサイズを計算する。その後、ステップ5060で、制限トークンサイズt1が標準トークンサイズtと比較される。ステップ5065で、制限トークンサイズt1が標準トークンサイズtよりも小さいかどうかが検査される。結果が肯定的である場合、ステップ5070で、オフセットが、最小のエントリIDi1から最大のエントリIDiを差し引き、予約されたエントリ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
次のステップ5075で、制限辞書トークンは、最小の索引から最大の索引を差し引くことによって計算される、予約されていない辞書エントリのブロックのサイズ、及びステップ5070で計算されたオフセットを使用し、標準辞書トークンサイズとともに放出される。
In the
次のステップ5080で、符号化のためのトークンサイズが、ステップ5400aで呼び出されたサブフローで以前に計算された制限トークンサイズt1に設定される。続いて、続くステップ5090、5095、及び5100はステップ5085で開始し、ループで呼び出され、ステップ5025で開始する以前のループのステップ5030で充填された辞書エントリIDリストのすべてのエントリで反復する。ループの内側では、ステップ5090で、オフセットは現在のエントリIDから差し引かれる。
In the
次いで、ステップ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
別の実施例では、ステップ5125は、異なるトークンサイズがステップ5140で設定された場合にのみ実行される。さらに別の実施例では、制限辞書トークンが、オフセットがゼロに設定され、サイズが予約されたエントリIDなしで完全な辞書に設定された状態で送信され、したがってオフセット及びサイズ情報を適用するときに作成される仮想辞書を元の辞書と等しくさせる。
In another embodiment, step 5125 is performed only if a different token size is set in
次のステップ5130で、ステップ5020で受信されたデータブロックのサイズは現在の一時セッションメモリブロックのセッション使用カウンタの非圧縮バイトフィールドに追加され、ステップ5135で、ステップ5075及び5095で放出されたすべてのトークンの累積されたサイズは現在の一時セッションメモリブロックのセッション使用カウンタの圧縮バイトフィールドに追加される。最後に、フローはステップ5199で終了する。ステップ5065の検査が否定的であった、つまり制限辞書トークンサイズt1が標準トークンサイズtよりも大きい場合、プログラムフローは、元の辞書の標準トークンサイズtに符号化のためのトークンサイズを設定することでステップ5140で続行する。プログラムフローは、上述されたようにステップ5085で続行する。別の実施例では、ステップ5140が省略される。図27のプログラムフローの効果は、パターン局所性を活用し、辞書をベースの圧縮でショートパケットデータを符号化するときに使用されるトークンサイズの効率的な最適化である。
In the next step 5130, the size of the data block received in
図28は、制限トークンサイズを計算することによるトークンサイズ最適化動作に関係する実施例2のプログラムフロー5400を示している。プログラムフローはステップ5410で開始され、ステップ5415で説明されるように、送信機側のIoTゲートウェイ500aのトークンエンコーダ1700で図27の送信機側短縮フロー5000によってサブフローとして実行される。呼出しフロー5000は、最小のエントリIDi1及び最大のエントリIDinを提供する。第1のステップ5420で、制限辞書サイズは、最大のエントリIDinから最小のエントリIDi1を差し引くことによって計算される。次のステップ5430で、制限辞書サイズは予約されたエントリIDのブロックのサイズを加算することで調整される。
FIG. 28 shows a
次のステップ5440で、制限辞書のための最適なトークンサイズは、以前に計算され、調整された制限辞書サイズの2を底とする対数を使用して計算される。最後に、フローはステップ5499で終了する。図28のプログラムフローの効果は、送信機と受信機両方の側でのトークンサイズ最適化の実際の適用だけではなく、トークンサイズ最適化の評価も可能にするために、最適化されたトークンサイズの効率的な計算である。
In the
図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
図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
図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
図31は、放出されたトークンサイズを最適化するためにトークン短縮動作を使用するときの受信機側の辞書符号化フローを説明する、実施例2のプログラムフロー5200を示している。プログラムフロー5200はステップ5210で開始され、例えば図20の簡略化された復号フロー等、一般的な辞書復号フローの代わりに、ステップ5215で説明されるように、受信機側のIoTゲートウェイ500bのトークンエンコーダ1700で実行される。ステップ5220で、オフセットはゼロに初期化される。続いて、ステップ5225でデータブロックが受信される。概してこのことは、受信バッファが、読み取られる又は使用される入信データで準備されていることを意味する。次のステップ5230で、復号のためのトークンサイズtは、現在の一時セッション辞書によって定義されるように、標準トークンサイズtdに設定される。
FIG. 31 shows a
その後、ループはステップ5235で開始され、ステップ5265でループ終了条件のためのチェックまですべての続くプログラムフローブロックを呼び出す。ループでは、ステップ5225で以前に受信されたデータブロックは、すべてのデータが消費されるまで処理される。ループの内側の第1のステップは5240であり、トークンは、例えば上述されたステップ5230、又は後述されるステップ5255又は5305の1つで以前に設定されたトークンサイズtを使用して復号される。その後、トークンが制限辞書トークンであるかどうかが5245で検査される。検査が肯定的である場合、フローはステップ5250で続行し、制限辞書トークンのトークンサイズフィールドのオフセット及び制限トークンサイズが読み取られる。続くステップ5255で、復号のためのトークンサイズtは以前のステップ5250で読み取られるトークンサイズに設定される。続いて、ステップ5260で、オフセットは、ステップ5250で読み取られる制限辞書トークンからの値に設定される。
The loop is then started at
その後、すべてのデータが完全に消費されたかどうか、ループ終了条件がステップ5265で検査される。否定の場合、ループはステップ5290のループの終わりからステップ5235のループの始まりにジャンプすることで続行し、その後のプログラムフローは上述された通りである。復号されたトークンが制限辞書トークンであったかどうか5245の検査の結果が否定的である場合、プログラムフローはステップ5300で続行し、復号されたトークンが特別なリセット制限辞書トークンであるかどうかがチェックされる。結果が肯定的である場合、プログラムフローはステップ5305で続行し、トークンサイズtの設定値は、現在使用されている一時セッション辞書によって定義されるように、トークンを復号するために使用されるトークンサイズを標準トークンサイズtdに設定する。プログラムフローは、先述されたように、ステップ5265のループ終了条件検査で続行する。復号されたトークンが制限辞書トークンであるかどうかステップ5300の検査が否定的である場合、現在のオフセットが0より大きいかどうかを検査することでステップ5310で続行する。肯定の場合、現在のオフセットをトークンの復号されたエントリID番号に加算することでステップ5315で続行する。その後、ステップ5330で、一時セッション辞書を活用し、標準辞書復号を実行し、復号されたデータdに復号されたパターンを付け加え、放出する。このデータは図5の一次メモリ1830の一時送信バッファであってよい。プログラムフローは、先述されたように、ステップ5265のループ終了条件検査で続行する。ステップ5310の検査が否定的である場合、すなわち現在のオフセットが0以下である場合、プログラムフローは上述されたように、直ちにステップ5330で続行する。
Thereafter, the loop termination condition is checked at
ステップ5265のループ終了条件検査が肯定的である場合、プログラムフローはステップ5270の発信ラベルSDからステップ5275の入信ラベルSDにジャンプすることで続行する。次のステップ5280で、ステップ5225で受信されるデータのサイズが現在の一時セッションメモリブロックのセッション使用カウンタの圧縮バイトフィールドに追加される。
If the loop end condition check at
次のステップ5285で、例えばステップ5330で充填されるように、送信バッファのサイズ全体等のすべての放出されたパターンの累積されたサイズは、現在の一時セッションメモリのセッション使用カウンタの非圧縮バイトフィールドに追加される。最後に、ステップ5399で、プログラムフローは終了する。
In the
図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:
150a:
402a:
150b:
402b:
500a:
500b: Receiver-
200a:
200b:
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.
請求項1に記載のデータ圧縮方法。 The fourth step and the fifth step are performed when the session is stopped.
The data compression method according to claim 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.
請求項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.
請求項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.
前記第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.
前記第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.
前記効率パラメータを得るために以前に計算された圧縮率と現在の圧縮率との間の比率変化を計算すること
を含み、
前記第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.
前記効率パラメータを得るために、以前に計算された比率変化と現在の比率変化の間の比率変化の程度を計算すること
を含み、
前記第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.
前記第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:
前記転送データを圧縮するために前記セッション辞書の必要な部分を指定することと、
前記トークンの置換で使用される制限トークンのサイズを計算することと、
前記制限トークン及び前記トークンのサイズを比較することと、
前記制限トークンのサイズが前記トークンのサイズよりも小さい場合、前記送信機ゲートウェイが前記受信機ゲートウェイに前記制限トークンを送信する、
請求項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.
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)
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 |
-
2016
- 2016-06-30 JP JP2016130302A patent/JP2018006964A/en active Pending
Cited By (9)
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 |