説明

バイナリ識別子の圧縮方法、ハッシャ、及び、コンピュータ・プログラム

【課題】バイナリ識別子の圧縮を提供する。
【解決手段】1度に4バイトの累積XORベースのプリハッシュに基づき、ハッシュ・キーに必要な特性を保ちながら、大きな(16バイト)IPv6アドレスを通例の(4バイト)アドレス・フィールドに圧縮することについて記載する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バイナリ識別子、特にIPv6アドレスの圧縮に関する。
【背景技術】
【0002】
インターネット・プロトコル・バージョン4(IPv4:Internet Protocol,Version4)は、その原型の32ビットでインターネットのアドレス指定の機能を定義し、合計232、すなわち43億の可能なアドレスを与えている。ネットワークの爆発的な成長および世界的な増設は、IPv4のもとで利用可能なアドレスがすべて、2012年までに枯渇することを意味した。
【0003】
そこで、IPv4に代わるIPv6プロトコルが定義されており、3.4×1038のアドレスという理論上の容量の128ビット・アドレスを規定することによって、特にIPv4の特定の欠点に対処する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
それにもかかわらず、実際のところ、既存のハードウェアおよびソフトウェアの大部分は、IPv4技術に基づいている。新たなハードウェアおよびソフトウェアがIPv6と互換性を持つように設計されている場合であっても、できる限り既存のライブラリおよびルーチンを再利用することが望ましい。
【課題を解決するための手段】
【0005】
本発明によれば、添付の独立請求項1に記載の、圧縮されたバイナリ識別子(compacted binary identifier)を生成する方法と、添付の請求項10に記載の圧縮器(compactor)と、添付の請求項11に記載のハッシャ(hasher)と、添付の請求項12に記載のコンピュータ・プログラムとが提供される。
【0006】
好適な実施形態が、添付の従属請求項において定義される。
【0007】
1度に4バイトの累積XORベースのプリハッシュ(prehashing)に基づき、ハッシュ・キーに必要な特性を保ちながら、大きい(16バイト)IPv6アドレスを通例の(4バイト)アドレス・フィールドに圧縮することについて記載する。
【0008】
これは、例えば、「5タプル」のようなキーを典型的には受け入れるハッシャにおいてIPv6アドレスをサポートするために使用されるロジックおよびシリコン面積を最小化することによる利点を提供する。このようなキーは、パケット・ヘッダから抽出される5つのフィールドを用いてアセンブル(assemble)され、これらは共に、そのパケットが属するパケット・フローを非常によく表す。TCP接続を識別するために使用される5タプルの典型的な例は、次のアセンブリである。
【0009】
−IPソース・アドレス
−IP宛先アドレス
−プロトコル・バイト
−TCPソース・ポート
−TCP宛先ポート
【0010】
パケットが、IPv6レイヤ3ヘッダを有する場合、実装問題が生じる。4バイトIPアドレスを運ぶIPv4ヘッダと対照的に、IPv6ヘッダは、16バイトIPアドレスを運ぶ。これは、5タプル・キーが、IPv4レイヤ3ヘッダよりもIPv6に関してずっと大きくなるということを意味する。
【0011】
−IPv4=IP SA(4B)+IP DA(4B)+プロトコル(1B)+TCP SP(2B)+TCP DP(2B)=13バイト
−IPv6=IP SA(16B)+IP DA(16B)+プロトコル(1B)+TCP SP(2B)+TCP DP(2B)=37バイト
【0012】
37バイトの入力レジスタを備えるハッシャの実装は、シリコン面積の点ではるかに高価である。これは、より大きなIPv6アドレスを保持するのに必要な、24×8=192の追加のラッチだけではなく、13×8=104に対し37×8=296の入力から始まるはるかに大きな組み合わせロジック・コーン(combinatorial cone of logic)が原因でもある。
【0013】
ハッシャを構成するロジック・コーンのサイズは、その入力の数と線形でないため、2つのソリューション間の面積比は、少なくとも4倍である。
【0014】
本開示で提案されるソリューションは、もとのキー入力レジスタおよびロジック・コーンを維持するために、IPv6アドレスをIPv4サイズに縮小するようIPv6アドレスの予備処理を実行することである。
【0015】
図面および詳細な説明を検討すれば、本発明のさらなる利点が当業者には明白となる。任意のさらなる利点が、本願明細書に包含されるものとする。
【図面の簡単な説明】
【0016】
【図1】第1の実施形態によるネットワーク・プロセッサのハッシャを示す。
【図2】標準のハッシャ入力構造を示す。
【図3】実施形態による圧縮器アレイのコンポーネントの詳細を示す。
【図4】本発明による方法のステップを示す。
【図5】イーサネット(R)パケットにカプセル化されたIPv6パケットの一部を表す。
【図6】第1の実施形態による、データの処理のサポートにおいて、パーサ制御モジュールにてとられるとよいステップを表すフロー図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について、添付の図面を参照して例として記載する。図面では、同じ参照符号は同様の構成要素を示す。
【0018】
上記に鑑み、圧縮されたバイナリ識別子を使用できるように、IPv6アドレスなどの圧縮されたバイナリ識別子を生成することを提案する。
【0019】
提案される圧縮プロセスは、非決定性であり、すなわち、いくつかの異なるバイナリ識別子が同じ圧縮された識別子をもたらすことがあり得、バイナリ識別子の圧縮された識別子からもとのバイナリ識別子を再構成することは不可能であるということが、この提案される圧縮プロセスの特徴である。この特性により、特定の用途では、本発明による圧縮された識別子の使用が不可能となるかもしれないが、それでも、特許請求される手法が十分である用途は多数ある。特に、特許請求される手法は、アイデンティティ情報に基づくパケットまたは他のデータの特徴付けであって、一意のアイデンティティのレベルまでは粒度が細かくない、該特徴付けが望まれる多数の用途に適する。そのような用途の例には、以下により詳しく説明する、パケット識別子およびIPフィルタがある。
【0020】
上記のように、本発明が有用な例の1つは、ネットワーク・プロセッサにおいてパケット・フローを識別するハッシュ関数などのハッシュ関数においてである。ハッシュ関数の柔軟性は、典型的には、2つのパラメータによって定義される。
【0021】
−ハッシュ・キーがアセンブルされる方法
−ハッシュ関数自体の特性
【0022】
これら2つの特性の変化を利用して柔軟性のあるハッシャを実装するには、いくつかのトレード・オフがあることが多い。
【0023】
従来、ハッシャのソフトウェア実装においてキー・アセンブリ(key assembly)の柔軟性が好まれてきたが、柔軟性のあるハッシュ関数には、通常、ハッシャの何らかの形の構成可能なハードウェア実装が必要である。
【0024】
ハッシャの柔軟性の各側面には、通常、以下の限界がある。
【0025】
−ハッシュ・キーの構築に複雑なパターンが必要な場合、特に、キー・アセンブリがビットレベルの粒度で行われる場合、ソフトウェア・キー・アセンブリに性能限界がある。
−典型的には単純なXORゲートを用いて実装される基本のハッシング構成要素を補完する構成ロジックが原因で、構成可能なハードウェア・ハッシュ関数にはシリコン面積の制約がある。
【0026】
これらの限界は、非常に高速なインターフェース(10Gbps以上)上のパケット・フローを識別するためにハッシャが使用される場合、非常に短いパケット周期性(67.2ns以下)が主な理由となって、特に顕著となるようである。
【0027】
以下、ハッシャの柔軟性の特徴の、中間のトレード・オフに基づき、実施形態を例として記載する。
【0028】
図1は、第1の実施形態によるネットワーク・プロセッサのハッシャを示す。
【0029】
ネットワーク・プロセッサのハッシャの役割は、特定の受信または送信キューにパケットを割り当てることを可能にする程度の粒度までパケットの識別が可能な値をもたらし、その結果、類似のパケットが同じキューに割り当てられるようにすることである。
【0030】
図のように、ハッシャは、パーサ110、分配バス(distribution bus)120、リセット・ライン(reset line)130、圧縮アレイ(compaction array)140、およびハッシャ組み合わせコーン(hasher combinatorial cone)150を含む。パーサは、パケットを受け取り、パケットは、レジスタ111にロードされる。パーサは、レジスタ111のコンテンツを調べて、考えられるパケット・フォーマットに関する知識と、パケット内、特にパケットのヘッダ部の特定の位置にある値とに基づき、特定の重要な情報部分の位置を識別して、これらを必要に応じて抽出することができる。現在の例では、この対象となる情報は、そのパケットが属するネットワーク通信を一意的に識別するのに役立つ情報である。
【0031】
キー・アセンブリに関する柔軟性は、分配バス120によって実現される。分配バス120は、パケット・パーサからバイト単位で圧縮アレイの任意の入力に入れることができ、パケット・パーサは、ピココードFSM(pico−coded FSM)として実装されることが好ましい。これは、パーサによってパケットから抽出されたバイトの任意の組み合わせを用いてロー・キー(raw key)をアセンブルすることを可能にする。
【0032】
圧縮アレイ、および同様にハッシャ・コーンの入力段階は、16バイト幅のレジスタのセットから成り、これらは、パケット・ヘッダもしくはペイロードまたはその両方からバイトを抽出できる任意のパケット・パーサによってロードされるように個々にアドレス指定可能である。様々なバイトがロードされる順序は、特に、フローの識別に貢献できる、抽出された各バイトに含まれる情報量によって決定される。
【0033】
ハッシャ・コーンによって実装されるハッシュ関数は、XORゲートに基づく標準的な組み合わせロジック・コーンであり、ハッシュ・キーの128ビットすべてを組み合わせて、結果として生じる32ビットのハッシュ値をもたらす。
【0034】
圧縮アレイ140が実装する圧縮機能は、長いキー構成要素をより小さなフィールドに縮小することによって、キー・アセンブリ面積のサイズの最小化を可能にし、その結果キーを受け取るハードウェア・ハッシュ関数のシリコン面積のサイズの最小化を可能にする。この機能の典型的な用途は、IPv6ヘッダの16バイト・アドレス・フィールドを4バイトの構成要素に縮小することであり、4バイト構成要素は、IPv4ヘッダから抽出される4バイト・アドレスと同じ入力レジスタを使用できる。圧縮アレイの動作については、以下にさらに詳しく記載する。
【0035】
上記のように、キーの構築に利用可能であり、ハッシャ結合(hasher comb)への入力として使用するのに望ましいと考えられる特定の情報部分は、状況により変化するが、一般的なシナリオには以下が含まれる。
【0036】
【表1】

【0037】
状況に応じて、パーサ制御モジュール112は、データセットの完成に必要な、レジスタ111内のパケットの様々なコンポーネントを抽出し、各コンポーネントを圧縮アレイ140の個別の入力に送る。
【0038】
好適な実施形態によれば、パーサ制御モジュール112は、パケットから抽出された情報を、例えば上記で列挙されたシナリオに従って、標準の入力構造へとマップする。
【0039】
図2は、標準のハッシャ入力構造を示す。図2に示すように、標準のハッシャ入力構造は、16バイトを含む。4バイトを含む第1のセクション210は、ソース・アドレスに使用される。2バイトを含む第2のセクション220は、ソース・ポート値に使用される。2バイトを含む第3のセクション230は、MPLSラベル値に使用される。4バイトを含む第4のセクション240は、宛先アドレスに使用される。2バイトを含む第5のセクション250は、宛先ポート値に使用される。4ビットを含む第6のセクション260は、第3のセクション230の続きとしてMPLSラベル値に使用される。4ビットを含む第7のセクション270は、予約される。1バイトを含む第8のセクション280は、プロトコル値に使用される。
【0040】
当然のことながら、他の実施形態では、別の同様の構造が使用されてもよく、または、このような構造は実際には定義されなくてもよい。その場合、パーサ制御モジュールは、データが連続するフィールドのセットに再アセンブルされさえすれば、単にパケットから抽出された順序にデータを保ってもよいであろう。
【0041】
なお、図2に基づいて、IPv6アドレスを扱う必要があるバイトは第1〜第4および第9〜第12のバイトのみであるため、実際には圧縮アレイがインターセプトする必要があるのは、第1〜第4および第9〜第12のバイトの値のみである。それでも圧縮アレイは、好適には、種々の入力にデータを割り当てる完全な柔軟性を実現するように、ハッシャ・コーンのあらゆる入力に対して圧縮モジュールを提供するべきである。
【0042】
圧縮アレイは、ハッシャ組み合わせコーン150の入力の数に等しい数のデータ入力、およびさらに出力を有する。図のように、入力は、オクテットにグループ化され、8つの入力の各グループが、分配バス120を介してアドレス指定可能である。この方法により、パーサ制御モジュールは、パケットから抽出されるデータのバイトを、圧縮アレイ140の入力のオクテット・グループのいずれかに送ることができる。図のように、圧縮アレイは、16のオクテット入力グループを含み、したがって、16バイトをパーサ110から受け取って同じ数をハッシャ組み合わせコーン150に伝えることができる。図2に関して上記で説明したように、一般に、ハッシャ結合の入力において利用可能な合計16バイトのうち、ソース(第1のセクション、210)または宛先(第4のセクション、240)の所与のIPアドレス用に、4バイトが予約される。上記のように16バイトを必要とするIPv6アドレスの場合、これでは明らかに不十分であり、ここで圧縮アレイが重要となる。以下により詳しく記載するように、IPv6アドレスの複数部分を圧縮アレイの入力の同じセットに連続して供給する(feed)ことによって、圧縮された識別子が圧縮アレイの対応する出力にて蓄積され、その結果、IPv6アドレス全体が圧縮された形式でハッシャ結合に供給されることが可能となる。
【0043】
図1は、圧縮アレイ140における、分配バス120を介したデータ121のバイトの到着を示す。図のように、バイト1〜4および9〜12は4バイトを順に受け取るが、バイト5〜8および13〜16は、同じ期間にそれぞれ1バイトしか受け取らない。種々の圧縮モジュールに任意の順序で提供され得るが、好適には、一定の期間中、圧縮機能を実行する任意のモジュールが、そのバイトのそれぞれを次々と途切れずに受け取るべきである。
【0044】
図3は、実施形態による圧縮器アレイのコンポーネントの詳細を示す。特定の実施形態によれば、圧縮器アレイは、新たなビットが受け取られなくなるまで、先行する排他的OR関数の結果の各ビットに、新たなビットをそれぞれ用いて排他的OR関数を適用することによって、バイナリ識別子の各部分を連続して受け取ることができる。したがって、圧縮アレイは、排他的ORゲート1411、1421、1431をそれぞれ含むアレイ圧縮器モジュールを包含し、そのそれぞれが、1つの入力において分配バス120からの入力、および個別のラッチ1413、1423、1433に格納されている先行する計算の結果を受け取る。新たな入力が受け取られるたびに、前の計算の結果とのXORがとられるなどである。圧縮アレイにある圧縮モジュールの数は、ハッシャ結合が入力として受け取ることができるビットの数と等しい。なお、示されている構造は、所与の圧縮モジュールに関して一連の入力値の圧縮を可能にするが、1つのみの入力値が受け取られる場合、ラッチからの初期値が0であれば、ラッチに書き込まれる排他的OR関数の結果は、入力値と等しくなる。この機能は、リセット・ライン130を介して制御される。リセット・ライン130は、各圧縮モジュール内に位置している個別のANDゲート1412、1422、1432の1つの入力に接続されており、リセット・ライン130上の値と、個別のXORゲートの出力とのANDをとって、ラッチへの入力としての結果が提供される。これにより、リセット・ライン130の値を0にセットすることによって、各ANDゲート1412、1422、1432の出力も0となるはずであり、その結果ラッチ値も0にセットされ、その結果、任意の圧縮モジュールの入力で受け取られる次の値は、その出力に、さらにハッシャ・コーンに、変更されずに正しく伝送される。
【0045】
例として、上記のメカニズムが、次のバイナリ識別子に適用されてもよいであろう。
【0046】
【表2】

【0047】
このバイナリ識別子は、16オクテットを含み、よって標準のIPv6アドレスに対応するが、実際の値はランダムであり、有効なアドレスには対応しないかもしれない。前述の事項によれば、この16オクテットは、4つの部分に分割され、表2の第1行に対応する第1の部分が、開始値のゼロとビット単位XORをとられる。この第1のサイクルの後にラッチ1413、1423、1433などに格納される結果が、次の表3に示されている。
【0048】
【表3】

【0049】
次に、下記の表4に示されているように、表2の第2行に対応する第2の部分が、ラッチ1413、1423、1433などに格納されている先行する(第1の)サイクルの結果とビット単位XORをとられる。
【0050】
【表4】

【0051】
次に、下記の表5に示されているように、表2の第3行に対応する第3の部分が、ラッチ1413、1423、1433などに格納されている先行する(第2の)サイクルの結果とビット単位XORをとられる。
【0052】
【表5】

【0053】
最後に、下記の表6に示されているように、表2の第4行に対応する第4の部分が、ラッチ1413、1423、1433などに格納されている先行する(第3の)サイクルの結果とビット単位XORをとられる。
【0054】
【表6】

【0055】
続いて、最終結果は、上記のように、他の関連情報とともにハッシャ・コーンによって処理される。
【0056】
図4は、本発明による方法のステップを示す。
【0057】
図4に示されているように、方法は、ステップ405に進む前のステップ400にて開始し、ステップ405にて、IPv6アドレスなどのバイナリ識別子が、所定数Pの等価な部分に分けられる。図1および2に関して記載された実施形態では、16バイトのIPv6アドレスは、それぞれ4バイトの4つの部分に分けられる。方法は、続いてステップ410に進み、そこで、第1の部分(n=1)の各ビットに、個別の開始値(図3の例では、開始値はすべてのビットに関して0であった)を用いて排他的OR関数が適用される。次に、方法は、ステップ415に進み、そこで、次の部分が選択される。すなわち、nの値がインクリメントされる。続いて、方法はステップ420に進み、そこで、先行する排他的OR関数の結果の各ビットに、現在の部分の各ビットをそれぞれ用いて排他的OR関数が適用される。次に、方法はステップ425に進み、そこで、任意の部分が残っているか、すなわちn=Pであるかが判断される。最後の部分のXORがとられた場合、方法は、ステップ430にて終了し、それによって、最後の排他的OR関数の結果が、前記圧縮されたバイナリ識別子を形成する。その他の場合は、方法はステップ415へ戻る。
【0058】
各部分は、もとのバイナリ識別子からの、ビットの連続的なシーケンスの順序を保っている、ビットの個別のシーケンスを含むことが好ましい。
【0059】
図4の圧縮プロセスが完了した後、図1の実施形態によれば、圧縮されたバイナリ識別子は、ハッシャに供給される。より具体的には、図2を参照して説明したように、圧縮されたバイナリ識別子は、他のパケット固有データとともにハッシャに供給される。
【0060】
そのような場合には、バイナリ識別子は、ソースIPアドレスであってもよく、他のパケット固有データは、図4のプロセスによって同じく圧縮された宛先IPアドレスを包含してもよい。
【0061】
本発明の実施形態は、典型的には、イーサネットを介して、すなわちイーサネット・パケットにカプセル化されて移送されるIPv6パケットのストリームを処理するのに有用である。
【0062】
図5は、イーサネット・パケットにカプセル化されたIPv6パケットの一部を表す。図のように、イーサネット(レイヤ2)パケット520は、特に、EtherTypeフィールド521およびペイロード522を含む。その一方で、ペイロード522は、IPv6(レイヤ3)パケット530を包含し、これ自体は、ソース・アドレス・フィールド531および宛先アドレス・フィールド532を含む。EtherTypeフィールドの86DD16という値は、イーサネット・パケットが、IPv6パケットをカプセル化していることを示し、その結果このパケットは、上記のように、適宜処理されることが可能である。
【0063】
図6は、第1の実施形態による、データの処理のサポートにおいて、パーサ制御モジュールにてとられるとよいステップを表すフロー図である。図のように、方法は、ステップ610に進む前のステップ605にて開始し、ステップ610にてパーサ制御モジュール112は、図5に関して説明されたEtherTypeフィールドを探す。ステップ615にて、EtherTypeフィールドの値が、86DD16であるか否かが判断される。EtherTypeフィールドの値が86DD16でない場合、方法は、ステップ665にて終了する。その他の場合、方法は、ステップ620に進み、そこで、圧縮アレイのリセット・ライン130の値がゼロにセットされ、その結果、図3に関して記載したように、圧縮アレイの各ラッチの値がゼロにセットされる。その後、ステップ625にて、値Mが9にセットされ、ステップ630にて、IPv6パケットの第Mバイトが、レジスタ111のパケットから抽出される。ステップ635にて、Mの値が8より大きく13より小さいかどうかが判断され、そうである場合、抽出されたバイトは、ステップ640にて、ソース・アドレス用に予約されている圧縮アレイのセクション210に送られる。ステップ635にて、Mの値が8より大きく13より小さい値ではないと判断されると、ステップ645にて、Mの値が12より大きく17より小さいかどうかが判断され、そうである場合、抽出されたバイトは、ステップ650にて、宛先アドレス用に予約されている圧縮アレイのセクション240に送られる。ステップ635にて、Mの値が12より大きく17より小さい値ではないと判断されると、方法はステップ665にて終了する。ステップ640または650の後、方法は、ステップ660に進み、そこでMが1インクリメントされてから、ステップ630に戻る。
【0064】
当然のことながら、これらのステップは、IPv6パケットの存在を識別し、アドレス・フィールドを抽出し、これらを圧縮アレイの適切な部分へ送る全般的な効果を変更することなく、異なる順序で実行されることが可能である。
【0065】
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアおよびソフトウェア両方の構成要素を含む実施形態の形態をとることができる。好適な実施形態では、本発明はソフトウェアにおいて実装され、これは、限定はされないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含む。
【0066】
さらに、本発明は、コンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形態をとり、コンピュータまたは任意の命令実行システムにより、またはそれに関連して使用されるプログラム・コードを提供することができる。本記載では、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムを含むこと、格納すること、伝達すること、伝播させること、または移送することができる任意の装置とすることができる。特に、この意味で、上記のパーサ制御モジュールは、命令実行システム、または「コンピュータ」を構成する。
【0067】
媒体は、電子、磁気、光学、電磁気、赤外線、または半導体システム、(もしくは装置もしくはデバイス)、または伝播媒体とすることができる。コンピュータ可読媒体の例には、半導体または固体メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、剛体磁気ディスク、および光ディスクが含まれる。光ディスクの現在の例には、コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disk−read only memory)、コンパクト・ディスク読み取り/書き込み(CD−R/W:compact disk−read/write)、およびDVDが含まれる。
【0068】
プログラム・コードの格納もしくは実行またはその両方に適したデータ処理システムは、システム・バスを介してメモリ要素に直接または間接的に連結された少なくとも1つのプロセッサを含み得る。メモリ要素は、プログラム・コードを実際に実行する間に用いられるローカル・メモリ、大容量ストレージ、および、実行中にコードが大容量ストレージから読み出されなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的なストレージとなるキャッシュ・メモリを含むことができる。
【0069】
入出力、すなわちI/O(input/output)デバイス(限定はされないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む)は、直接、または介在するI/Oコントローラを介して、システムに連結されることが可能である。
【0070】
ネットワーク・アダプタもシステムに連結されて、データ処理システムが、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに、介在するプライベートまたはパブリック・ネットワークを介して連結された状態となることを可能にしてもよい。モデム、ケーブル・モデム、およびイーサネット・カードが、現在利用可能なタイプのネットワーク・アダプタのごく一部である。
【符号の説明】
【0071】
110 パーサ
111 レジスタ
112 パーサ制御モジュール
120 分配バス
121 データ
130 リセット・ライン
140 圧縮アレイ
150 ハッシャ組み合わせコーン

【特許請求の範囲】
【請求項1】
圧縮されたバイナリ識別子を生成する方法であって、バイナリ識別子を、所定数の等価な部分に分けるステップと、
前記部分のうちの第1の部分の各ビットに、個別の開始値を用いて排他的OR関数を適用するステップと、
先行する前記排他的OR関数の結果の各ビットに、さらなる前記部分の各ビットをそれぞれ用いて排他的OR関数を適用するステップと、
前記先行する排他的OR関数の前記結果の各ビットに排他的OR関数を適用する前記ステップを、残りの各部分に関して繰り返すステップと、
を含む、前記方法であって、
それによって、最後の前記排他的OR関数の結果が、前記圧縮されたバイナリ識別子を形成する、方法。
【請求項2】
前記バイナリ識別子は、IPアドレスである、請求項1に記載の方法。
【請求項3】
前記バイナリ識別子は、IPパケットから抽出される、請求項2に記載の方法。
【請求項4】
前記バイナリ識別子は、128ビットのIPv6アドレスであり、前記バイナリ識別子は、それぞれ32ビットの4つの部分に分割され、前記圧縮されたバイナリ識別子は、32ビットのIPv4アドレスに対応する、請求項2または3に記載の方法。
【請求項5】
前記部分のうちの第1の部分の各ビットに対する個別の開始値を用いた前記排他的OR関数が適用される前記ビットそれぞれに関して、前記開始値は0である、請求項1〜4のいずれかに記載の方法。
【請求項6】
ビットの個別のシーケンスを含む前記部分はそれぞれ、もとの前記バイナリ識別子からのビットの連続的なシーケンスの順序を保っている、請求項1〜5のいずれかに記載の方法。
【請求項7】
前記圧縮されたバイナリ識別子をハッシャに供給するさらなるステップを含む、請求項1〜6のいずれかに記載の方法。
【請求項8】
前記圧縮されたバイナリ識別子は、他のパケット固有データとともに前記ハッシャに供給される、請求項7に記載の方法。
【請求項9】
前記バイナリ識別子は、ソースIPアドレスであり、前記他のパケット固有データは、請求項1〜6のいずれかに従って圧縮された宛先IPアドレスを包含する、請求項8に記載の方法。
【請求項10】
請求項1〜9のいずれかに記載の方法を実装するようになっている圧縮器。
【請求項11】
請求項10に記載の圧縮器を包含するハッシャ。
【請求項12】
請求項1〜9のうちのいずれか1項に記載の方法の前記ステップをコンピュータに実行させるコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−129994(P2012−129994A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2011−263577(P2011−263577)
【出願日】平成23年12月1日(2011.12.1)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】