圧縮されたバイナリ識別子を生成する方法であって、バイナリ識別子を、所定数の等価な部分に分けるステップと、前記部分のうちの第1の部分の各ビットに、個別の開始値を用いて排他的OR関数を適用するステップと、先行する前記排他的OR関数の結果の各ビットに、さらなる前記部分の各ビットをそれぞれ用いて排他的OR関数を適用するステップと、前記先行する排他的OR関数の前記結果の各ビットに排他的OR関数を適用する前記ステップを、残りの各部分に関して繰り返すステップと、を含む、前記方法であって、それによって、最後の前記排他的OR関数の結果が、前記圧縮されたバイナリ識別子を形成する、方法。前記バイナリ識別子は、IPアドレスである、請求項1に記載の方法。前記バイナリ識別子は、IPパケットから抽出される、請求項2に記載の方法。前記バイナリ識別子は、128ビットのIPv6アドレスであり、前記バイナリ識別子は、それぞれ32ビットの4つの部分に分割され、前記圧縮されたバイナリ識別子は、32ビットのIPv4アドレスに対応する、請求項2または3に記載の方法。前記部分のうちの第1の部分の各ビットに対する個別の開始値を用いた前記排他的OR関数が適用される前記ビットそれぞれに関して、前記開始値は0である、請求項1~4のいずれかに記載の方法。ビットの個別のシーケンスを含む前記部分はそれぞれ、もとの前記バイナリ識別子からのビットの連続的なシーケンスの順序を保っている、請求項1~5のいずれかに記載の方法。前記圧縮されたバイナリ識別子をハッシャに供給するさらなるステップを含む、請求項1~6のいずれかに記載の方法。前記圧縮されたバイナリ識別子は、他のパケット固有データとともに前記ハッシャに供給される、請求項7に記載の方法。前記バイナリ識別子は、ソースIPアドレスであり、前記他のパケット固有データは、請求項1~6のいずれかに従って圧縮された宛先IPアドレスを包含する、請求項8に記載の方法。請求項1~9のいずれかに記載の方法を実装するようになっている圧縮器。請求項10に記載の圧縮器を包含するハッシャ。請求項1~9のうちのいずれか1項に記載の方法の前記ステップをコンピュータに実行させるコンピュータプログラム。それにもかかわらず、実際のところ、既存のハードウェアおよびソフトウェアの大部分は、IPv4技術に基づいている。新たなハードウェアおよびソフトウェアがIPv6と互換性を持つように設計されている場合であっても、できる限り既存のライブラリおよびルーチンを再利用することが望ましい。本発明によれば、添付の独立請求項1に記載の、圧縮されたバイナリ識別子compactedbinaryidentifierを生成する方法と、添付の請求項10に記載の圧縮器compactorと、添付の請求項11に記載のハッシャhasherと、添付の請求項12に記載のコンピュータプログラムとが提供される。好適な実施形態が、添付の従属請求項において定義される。1度に4バイトの累積XORベースのプリハッシュprehashingに基づき、ハッシュキーに必要な特性を保ちながら、大きい16バイトIPv6アドレスを通例の4バイトアドレスフィールドに圧縮することについて記載する。これは、例えば、5タプルのようなキーを典型的には受け入れるハッシャにおいてIPv6アドレスをサポートするために使用されるロジックおよびシリコン面積を最小化することによる利点を提供する。このようなキーは、パケットヘッダから抽出される5つのフィールドを用いてアセンブルassembleされ、これらは共に、そのパケットが属するパケットフローを非常によく表す。TCP接続を識別するために使用される5タプルの典型的な例は、次のアセンブリである。-IPソースアドレス-IP宛先アドレス-プロトコルバイト-TCPソースポート-TCP宛先ポートパケットが、IPv6レイヤ3ヘッダを有する場合、実装問題が生じる。4バイトIPアドレスを運ぶIPv4ヘッダと対照的に、IPv6ヘッダは、16バイトIPアドレスを運ぶ。これは、5タプルキーが、IPv4レイヤ3ヘッダよりもIPv6に関してずっと大きくなるということを意味する。-IPv4=IPSA4BIPDA4Bプロトコル1BTCPSP2BTCPDP2B=13バイト-IPv6=IPSA16BIPDA16Bプロトコル1BTCPSP2BTCPDP2B=37バイト37バイトの入力レジスタを備えるハッシャの実装は、シリコン面積の点ではるかに高価である。これは、より大きなIPv6アドレスを保持するのに必要な、24×8=192の追加のラッチだけではなく、13×8=104に対し37×8=296の入力から始まるはるかに大きな組み合わせロジックコーンcombinatorialconeoflogicが原因でもある。ハッシャを構成するロジックコーンのサイズは、その入力の数と線形でないため、2つのソリューション間の面積比は、少なくとも4倍である。本開示で提案されるソリューションは、もとのキー入力レジスタおよびロジックコーンを維持するために、IPv6アドレスをIPv4サイズに縮小するようIPv6アドレスの予備処理を実行することである。図面および詳細な説明を検討すれば、本発明のさらなる利点が当業者には明白となる。任意のさらなる利点が、本願明細書に包含されるものとする。以下、本発明の実施形態について、添付の図面を参照して例として記載する。図面では、同じ参照符号は同様の構成要素を示す。上記に鑑み、圧縮されたバイナリ識別子を使用できるように、IPv6アドレスなどの圧縮されたバイナリ識別子を生成することを提案する。提案される圧縮プロセスは、非決定性であり、すなわち、いくつかの異なるバイナリ識別子が同じ圧縮された識別子をもたらすことがあり得、バイナリ識別子の圧縮された識別子からもとのバイナリ識別子を再構成することは不可能であるということが、この提案される圧縮プロセスの特徴である。この特性により、特定の用途では、本発明による圧縮された識別子の使用が不可能となるかもしれないが、それでも、特許請求される手法が十分である用途は多数ある。特に、特許請求される手法は、アイデンティティ情報に基づくパケットまたは他のデータの特徴付けであって、一意のアイデンティティのレベルまでは粒度が細かくない、該特徴付けが望まれる多数の用途に適する。そのような用途の例には、以下により詳しく説明する、パケット識別子およびIPフィルタがある。上記のように、本発明が有用な例の1つは、ネットワークプロセッサにおいてパケットフローを識別するハッシュ関数などのハッシュ関数においてである。ハッシュ関数の柔軟性は、典型的には、2つのパラメータによって定義される。-ハッシュキーがアセンブルされる方法-ハッシュ関数自体の特性これら2つの特性の変化を利用して柔軟性のあるハッシャを実装するには、いくつかのトレードオフがあることが多い。従来、ハッシャのソフトウェア実装においてキーアセンブリkeyassemblyの柔軟性が好まれてきたが、柔軟性のあるハッシュ関数には、通常、ハッシャの何らかの形の構成可能なハードウェア実装が必要である。ハッシャの柔軟性の各側面には、通常、以下の限界がある。-ハッシュキーの構築に複雑なパターンが必要な場合、特に、キーアセンブリがビットレベルの粒度で行われる場合、ソフトウェアキーアセンブリに性能限界がある。-典型的には単純なXORゲートを用いて実装される基本のハッシング構成要素を補完する構成ロジックが原因で、構成可能なハードウェアハッシュ関数にはシリコン面積の制約がある。これらの限界は、非常に高速なインターフェース10Gbps以上上のパケットフローを識別するためにハッシャが使用される場合、非常に短いパケット周期性67.2ns以下が主な理由となって、特に顕著となるようである。以下、ハッシャの柔軟性の特徴の、中間のトレードオフに基づき、実施形態を例として記載する。図1は、第1の実施形態によるネットワークプロセッサのハッシャを示す。ネットワークプロセッサのハッシャの役割は、特定の受信または送信キューにパケットを割り当てることを可能にする程度の粒度までパケットの識別が可能な値をもたらし、その結果、類似のパケットが同じキューに割り当てられるようにすることである。図のように、ハッシャは、パーサ110、分配バスdistributionbus120、リセットラインresetline130、圧縮アレイcompactionarray140、およびハッシャ組み合わせコーンhashercombinatorialcone150を含む。パーサは、パケットを受け取り、パケットは、レジスタ111にロードされる。パーサは、レジスタ111のコンテンツを調べて、考えられるパケットフォーマットに関する知識と、パケット内、特にパケットのヘッダ部の特定の位置にある値とに基づき、特定の重要な情報部分の位置を識別して、これらを必要に応じて抽出することができる。現在の例では、この対象となる情報は、そのパケットが属するネットワーク通信を一意的に識別するのに役立つ情報である。キーアセンブリに関する柔軟性は、分配バス120によって実現される。分配バス120は、パケットパーサからバイト単位で圧縮アレイの任意の入力に入れることができ、パケットパーサは、ピココードFSMpico-codedFSMとして実装されることが好ましい。これは、パーサによってパケットから抽出されたバイトの任意の組み合わせを用いてローキーrawkeyをアセンブルすることを可能にする。圧縮アレイ、および同様にハッシャコーンの入力段階は、16バイト幅のレジスタのセットから成り、これらは、パケットヘッダもしくはペイロードまたはその両方からバイトを抽出できる任意のパケットパーサによってロードされるように個々にアドレス指定可能である。様々なバイトがロードされる順序は、特に、フローの識別に貢献できる、抽出された各バイトに含まれる情報量によって決定される。ハッシャコーンによって実装されるハッシュ関数は、XORゲートに基づく標準的な組み合わせロジックコーンであり、ハッシュキーの128ビットすべてを組み合わせて、結果として生じる32ビットのハッシュ値をもたらす。圧縮アレイ140が実装する圧縮機能は、長いキー構成要素をより小さなフィールドに縮小することによって、キーアセンブリ面積のサイズの最小化を可能にし、その結果キーを受け取るハードウェアハッシュ関数のシリコン面積のサイズの最小化を可能にする。この機能の典型的な用途は、IPv6ヘッダの16バイトアドレスフィールドを4バイトの構成要素に縮小することであり、4バイト構成要素は、IPv4ヘッダから抽出される4バイトアドレスと同じ入力レジスタを使用できる。圧縮アレイの動作については、以下にさらに詳しく記載する。上記のように、キーの構築に利用可能であり、ハッシャ結合hashercombへの入力として使用するのに望ましいと考えられる特定の情報部分は、状況により変化するが、一般的なシナリオには以下が含まれる。状況に応じて、パーサ制御モジュール112は、データセットの完成に必要な、レジスタ111内のパケットの様々なコンポーネントを抽出し、各コンポーネントを圧縮アレイ140の個別の入力に送る。好適な実施形態によれば、パーサ制御モジュール112は、パケットから抽出された情報を、例えば上記で列挙されたシナリオに従って、標準の入力構造へとマップする。図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は、プロトコル値に使用される。当然のことながら、他の実施形態では、別の同様の構造が使用されてもよく、または、このような構造は実際には定義されなくてもよい。その場合、パーサ制御モジュールは、データが連続するフィールドのセットに再アセンブルされさえすれば、単にパケットから抽出された順序にデータを保ってもよいであろう。なお、図2に基づいて、IPv6アドレスを扱う必要があるバイトは第1~第4および第9~第12のバイトのみであるため、実際には圧縮アレイがインターセプトする必要があるのは、第1~第4および第9~第12のバイトの値のみである。それでも圧縮アレイは、好適には、種々の入力にデータを割り当てる完全な柔軟性を実現するように、ハッシャコーンのあらゆる入力に対して圧縮モジュールを提供するべきである。圧縮アレイは、ハッシャ組み合わせコーン150の入力の数に等しい数のデータ入力、およびさらに出力を有する。図のように、入力は、オクテットにグループ化され、8つの入力の各グループが、分配バス120を介してアドレス指定可能である。この方法により、パーサ制御モジュールは、パケットから抽出されるデータのバイトを、圧縮アレイ140の入力のオクテットグループのいずれかに送ることができる。図のように、圧縮アレイは、16のオクテット入力グループを含み、したがって、16バイトをパーサ110から受け取って同じ数をハッシャ組み合わせコーン150に伝えることができる。図2に関して上記で説明したように、一般に、ハッシャ結合の入力において利用可能な合計16バイトのうち、ソース第1のセクション、210または宛先第4のセクション、240の所与のIPアドレス用に、4バイトが予約される。上記のように16バイトを必要とするIPv6アドレスの場合、これでは明らかに不十分であり、ここで圧縮アレイが重要となる。以下により詳しく記載するように、IPv6アドレスの複数部分を圧縮アレイの入力の同じセットに連続して供給するfeedことによって、圧縮された識別子が圧縮アレイの対応する出力にて蓄積され、その結果、IPv6アドレス全体が圧縮された形式でハッシャ結合に供給されることが可能となる。図1は、圧縮アレイ140における、分配バス120を介したデータ121のバイトの到着を示す。図のように、バイト1~4および9~12は4バイトを順に受け取るが、バイト5~8および13~16は、同じ期間にそれぞれ1バイトしか受け取らない。種々の圧縮モジュールに任意の順序で提供され得るが、好適には、一定の期間中、圧縮機能を実行する任意のモジュールが、そのバイトのそれぞれを次々と途切れずに受け取るべきである。図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にセットされ、その結果、任意の圧縮モジュールの入力で受け取られる次の値は、その出力に、さらにハッシャコーンに、変更されずに正しく伝送される。例として、上記のメカニズムが、次のバイナリ識別子に適用されてもよいであろう。このバイナリ識別子は、16オクテットを含み、よって標準のIPv6アドレスに対応するが、実際の値はランダムであり、有効なアドレスには対応しないかもしれない。前述の事項によれば、この16オクテットは、4つの部分に分割され、表2の第1行に対応する第1の部分が、開始値のゼロとビット単位XORをとられる。この第1のサイクルの後にラッチ1413、1423、1433などに格納される結果が、次の表3に示されている。次に、下記の表4に示されているように、表2の第2行に対応する第2の部分が、ラッチ1413、1423、1433などに格納されている先行する第1のサイクルの結果とビット単位XORをとられる。次に、下記の表5に示されているように、表2の第3行に対応する第3の部分が、ラッチ1413、1423、1433などに格納されている先行する第2のサイクルの結果とビット単位XORをとられる。最後に、下記の表6に示されているように、表2の第4行に対応する第4の部分が、ラッチ1413、1423、1433などに格納されている先行する第3のサイクルの結果とビット単位XORをとられる。続いて、最終結果は、上記のように、他の関連情報とともにハッシャコーンによって処理される。図4は、本発明による方法のステップを示す。図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へ戻る。各部分は、もとのバイナリ識別子からの、ビットの連続的なシーケンスの順序を保っている、ビットの個別のシーケンスを含むことが好ましい。図4の圧縮プロセスが完了した後、図1の実施形態によれば、圧縮されたバイナリ識別子は、ハッシャに供給される。より具体的には、図2を参照して説明したように、圧縮されたバイナリ識別子は、他のパケット固有データとともにハッシャに供給される。そのような場合には、バイナリ識別子は、ソースIPアドレスであってもよく、他のパケット固有データは、図4のプロセスによって同じく圧縮された宛先IPアドレスを包含してもよい。本発明の実施形態は、典型的には、イーサネットを介して、すなわちイーサネットパケットにカプセル化されて移送されるIPv6パケットのストリームを処理するのに有用である。図5は、イーサネットパケットにカプセル化されたIPv6パケットの一部を表す。図のように、イーサネットレイヤ2パケット520は、特に、EtherTypeフィールド521およびペイロード522を含む。その一方で、ペイロード522は、IPv6レイヤ3パケット530を包含し、これ自体は、ソースアドレスフィールド531および宛先アドレスフィールド532を含む。EtherTypeフィールドの86DD16という値は、イーサネットパケットが、IPv6パケットをカプセル化していることを示し、その結果このパケットは、上記のように、適宜処理されることが可能である。図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に戻る。当然のことながら、これらのステップは、IPv6パケットの存在を識別し、アドレスフィールドを抽出し、これらを圧縮アレイの適切な部分へ送る全般的な効果を変更することなく、異なる順序で実行されることが可能である。本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアおよびソフトウェア両方の構成要素を含む実施形態の形態をとることができる。好適な実施形態では、本発明はソフトウェアにおいて実装され、これは、限定はされないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含む。さらに、本発明は、コンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態をとり、コンピュータまたは任意の命令実行システムにより、またはそれに関連して使用されるプログラムコードを提供することができる。本記載では、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムを含むこと、格納すること、伝達すること、伝播させること、または移送することができる任意の装置とすることができる。特に、この意味で、上記のパーサ制御モジュールは、命令実行システム、またはコンピュータを構成する。媒体は、電子、磁気、光学、電磁気、赤外線、または半導体システム、もしくは装置もしくはデバイス、または伝播媒体とすることができる。コンピュータ可読媒体の例には、半導体または固体メモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリRAM:randomaccessmemory、読み取り専用メモリROM:read-onlymemory、剛体磁気ディスク、および光ディスクが含まれる。光ディスクの現在の例には、コンパクトディスク読み取り専用メモリCD-ROM:compactdisk-readonlymemory、コンパクトディスク読み取り/書き込みCD-R/W:compactdisk-read/write、およびDVDが含まれる。プログラムコードの格納もしくは実行またはその両方に適したデータ処理システムは、システムバスを介してメモリ要素に直接または間接的に連結された少なくとも1つのプロセッサを含み得る。メモリ要素は、プログラムコードを実際に実行する間に用いられるローカルメモリ、大容量ストレージ、および、実行中にコードが大容量ストレージから読み出されなければならない回数を減らすために少なくとも一部のプログラムコードの一時的なストレージとなるキャッシュメモリを含むことができる。入出力、すなわちI/Oinput/outputデバイス限定はされないが、キーボード、ディスプレイ、ポインティングデバイスなどを含むは、直接、または介在するI/Oコントローラを介して、システムに連結されることが可能である。ネットワークアダプタもシステムに連結されて、データ処理システムが、他のデータ処理システムまたはリモートプリンタまたはストレージデバイスに、介在するプライベートまたはパブリックネットワークを介して連結された状態となることを可能にしてもよい。モデム、ケーブルモデム、およびイーサネットカードが、現在利用可能なタイプのネットワークアダプタのごく一部である。