(57)【特許請求の範囲】
【請求項１】
少なくとも第１のフィールドおよび第２のフィールドを含む複数のフィールドを有するヘッダを含む第１のパケットを受信するステップと、
所定のフィールド検査階層に従って前記複数のフィールドの前記第１のフィールドを用いて、前記第１のパケットが重複パケットであるかどうかを判断するステップと、を含み、
前記所定のフィールド検査階層は、前記複数のフィールドの前記第１のフィールドが前記複数のフィールドの前記第２のフィールドの前に検査されることを規定し、前記複数のフィールドの前記第１のフィールドは前記複数のフィールドの前記第２のフィールドよりも統計的に高い変化率を有し、
前記第１のパケットの前に受信される第２のパケットにおける複数のフィールドのそれぞれのフィールドに前記複数のフィールドの前記第１のフィールドが一致する場合、および、前記第２のパケットが受信されてから規定された期間内に前記第１のパケットが受信される場合、前記第１のパケットは前記重複パケットであると判断される、パケット処理の方法。
【請求項２】
前記複数のフィールドの前記フィールドは、前記第１のパケットを識別するための識別フィールドを含む、請求項１に記載の方法。
【請求項３】
前記第１のパケットが前記重複パケットであるかどうかを判断するために、前記ヘッダにおける規定された数のビットを使用するステップをさらに含む、請求項１に記載の方法。
【請求項４】
宛先ＩＰアドレスを判断するステップと、
前記第１のパケットが前記重複パケットであるかどうかを判断するために前記宛先ＩＰアドレスを使用するステップと、
をさらに含む、請求項１に記載の方法。
【請求項５】
ソースＩＰアドレスを判断するステップと、
前記第１のパケットが前記重複パケットであるかどうかを判断するために前記ソースＩＰアドレスを使用するステップと、
をさらに含む、請求項１に記載の方法。
【請求項６】
前記第１のパケットと関連付けられたフラグメントオフセットを判断するステップと、
前記第１のパケットが前記重複パケットであるかどうかを判断するために前記フラグメントオフセットを使用するステップと、
をさらに含む、請求項１に記載の方法。
【請求項７】
機器における作業量を判断するステップをさらに含み、前記第１のパケットが前記重複パケットであるかどうかを判断するステップは、前記作業量が規定の閾値を下回る場合に実行される、請求項１に記載の方法。
【請求項８】
前記規定された期間は１００ミリ秒以下である、請求項１に記載の方法。
【請求項９】
前記第１のパケットの前記ヘッダは、Ｌ３  ＩＰｖ４またはＬ３  ＩＰｖ６ヘッダを含む、請求項１に記載の方法。
【請求項１０】
少なくとも第１のフィールドおよび第２のフィールドを含む複数のフィールドを有するヘッダを含む第１のパケットを受信するように構成された第１のポートと、
所定のフィールド検査階層に従って前記複数のフィールドの前記第１のフィールドを用いて、前記第１のパケットが重複パケットであるかどうかを判断するように構成された集積回路と、
を備え、
前記所定のフィールド検査階層は、前記複数のフィールドの前記第１のフィールドが前記複数のフィールドの前記第２のフィールドの前に検査されることを規定し、前記複数のフィールドの前記第１のフィールドは、前記複数のフィールドの前記第２のフィールドよりも統計的に高い変化率を有し、
前記集積回路は、前記第１のパケットの前に受信される第２のパケットにおける複数のフィールドのそれぞれのフィールドに前記複数のフィールドの前記第１のフィールドが一致する場合、および、前記第２のパケットが受信されてから規定された期間内に前記第１のパケットが受信される場合、前記第１のパケットを前記重複パケットと判断するように構成される、
パケットスイッチシステム。
【請求項１１】
前記複数のフィールドの前記フィールドは、前記第１のパケットを識別するための識別フィールドを含む、請求項１０に記載のシステム。
【請求項１２】
前記集積回路は、前記第１のパケットが前記重複パケットであるかどうかを判断するために、前記ヘッダにおける規定された数のビットを使用するようにさらに構成される、請求項１０に記載のシステム。
【請求項１３】
前記集積回路は、
宛先ＩＰアドレスを判断し、
前記第１のパケットが前記重複パケットであるかどうかを判断するために前記宛先ＩＰアドレスを使用する
ようにさらに構成される、請求項１０に記載のシステム。
【請求項１４】
前記集積回路は、
ソースＩＰアドレスを判断し、
前記第１のパケットが前記重複パケットであるかどうかを判断するために前記ソースＩＰアドレスを使用する
ようにさらに構成される、請求項１０に記載のシステム。
【請求項１５】
前記集積回路は、
前記第１のパケットと関連付けられたフラグメントオフセットを判断し、
前記第１のパケットが前記重複パケットであるかどうかを判断するために前記フラグメントオフセットを使用する
ようにさらに構成される、請求項１０に記載のシステム。
【請求項１６】
前記集積回路は、機器における作業量を判断するようにさらに構成され、前記集積回路は、前記作業量が規定の閾値を下回る場合、前記第１のパケットが前記重複パケットであるかどうかを判断するように構成される、請求項１０に記載のシステム。
【請求項１７】
前記規定された期間は１００ミリ秒以下である、請求項１０に記載のシステム。
【請求項１８】
前記第１のパケットの前記ヘッダは、Ｌ３  ＩＰｖ４またはＬ３  ＩＰｖ６ヘッダを含む、請求項１０に記載のシステム。
【請求項１９】
１組の命令を格納するコンピュータプログラムであって、その命令の実行はパケット処理の方法を実行させ、前記方法は、
少なくとも第１のフィールドおよび第２のフィールドを含む複数のフィールドを有するヘッダを含む第１のパケットを受信するステップと、
所定のフィールド検査階層に従って前記複数のフィールドの前記第１のフィールドを用いて前記第１のパケットが重複パケットであるかどうかを判断するステップと、を含み、
前記所定のフィールド検査階層は、前記複数のフィールドの前記第１のフィールドが前記複数のフィールドの前記第２のフィールドの前に検査されることを規定し、前記複数のフィールドの前記第１のフィールドは、前記複数のフィールドの前記第２のフィールドよりも統計的に高い変化率を有し、
前記第１のパケットの前に受信される第２のパケットにおける複数のフィールドのそれぞれのフィールドに前記複数のフィールドの前記第１のフィールドが一致する場合、および、前記第２のパケットが受信されてから規定された期間内に前記第１のパケットが受信される場合に、前記第１のパケットが前記重複パケットであると判断される、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願のデータ
本出願は、２０１０年２月２４日に出願された米国特許出願第１２／７１２，０９３号に関し、その開示全体は引用により本明細書に明確に組み込まれる。
【０００２】
本出願は、一般に、ネットワークスイッチデバイスに関するものである。
【背景技術】
【０００３】
ネットワークスイッチは、パケットを１つのノードから別のノードまで転送するために使用されている。そのようなネットワークスイッチデバイスは、第１のノードからパケットを受信するための第１のネットワークポートと、パケットを第２のノードに渡すための第２のネットワークポートとを含む。
【０００４】
パケットスイッチングネットワークでは、パケットスイッチングネットワーク内の端末間のメッセージの伝送、経路指定、転送などは、１つ以上のパケットに分割される。典型的には、パケットスイッチングネットワークを通して伝送されるかまたは経路指定されるデータパケットは、３つの要素、すなわち、ヘッダ、ペイロード、およびトレーラを含む。ヘッダは、いくつかの識別子、例えばソースおよび宛先端末アドレス、ＶＬＡＮタグ、パケットサイズ、パケットプロトコルなどを含み得る。ペイロードは、伝送されている、ヘッダまたはトレーラ以外の、送付用のコアデータである。トレーラは、典型的には、パケットの終わりを識別し、誤り検査情報（例えば、ＣＲＣ情報）を含み得る。データパケットは、多数のパケットフォーマット、例えばＩＥＥＥ８０２．１Ｄまたは８０２．３などに準拠し得る。
【０００５】
パケットスイッチングネットワークにおける各端末と関連付けられるものは固有端末アドレスである。メッセージの各パケットは、ソース端末アドレスと、宛先端末アドレスと、メッセージの少なくとも一部を含むペイロードとを有する。ソース端末アドレスは、パケットのソース端末の端末アドレスである。宛先端末アドレスは、パケットの宛先端末の端末アドレスである。さらに、メッセージの各パケットは、通信チャネルの利用可能性に応じて、宛先端末まで異なる経路を通ることができ、異なる時間に届き得る。完全なメッセージは、宛先端末でメッセージのパケットから再び組み立てられる。当業者は、通常、ソース端末アドレスおよび宛先端末アドレスをソースアドレスおよび宛先アドレスとそれぞれ呼ぶ。
【０００６】
本願の出願人は、パケットスイッチデバイス（機器）がパケットスイッチングネットワークにおいて（スイッチまたはルータのＳＰＡＮ（スパン）ポートを通して、あるいはそのスパンポートの内蔵タップモジュールにより各パケットのコピーを作ることによって得られる）パケットのコピーをそれによる解析のためのネットワーク監視またはセキュリティツールに転送するために使用されることができると判断した。そのようなパケットスイッチ機器は、パケットスイッチングネットワークへの接続用の１つまたは複数のネットワークポートと、パケットトラフィックを監視するための１つまたは複数のネットワーク器具、例えばパケットスニッファ、侵入検知システム、アプリケーションモニタ、またはフォレンジックレコーダなどに接続される１つまたは複数の器具ポートとを有することができる。
【０００７】
時には、ユーザは、パケットトラフィックを監視するための種々のネットワーク器具をデプロイすることを望むであろう。スイッチを通過する全てのパケットを監視するために、スパンポートは、通常、全てのパケットが入口または出口ポートを通過するときに全てのパケットのコピーが作られるようにセットアップされる。従って、スイッチの１つのポートに入り、次いで同じスイッチの別のポートから出るパケットについて、このパケットの少なくとも２つのコピーがスパンポートから送出される。このパケットがマルチキャストパケットである場合には、スイッチは複数のポートを通してこのパケットの複数のコピーを送出することになり、それ故に、スパンポートはこのパケットのさらに多くのコピーを送出することになる。この種の状況では、通常、スパンポートから出るパケットのコピーは同一である。
【０００８】
他の状況において、スイッチは、このパケットのコピー内でそのコピーのうちのいくつかが異なるＶＬＡＮタグを有し得るように、パケットのＶＬＡＮタグを変えてもよい。また、パケットはルータを通過することができる。その場合、ＩＰヘッダ情報における宛先ＭＡＣアドレスまたはいくつかのフィールド、例えばＴＴＬフィールドなども変更されているかもしれないが、ペイロードは同じままである。
【０００９】
パケットのコピーが他のネットワークデバイスで作られ、同じ解析ツールに転送される場合、解析ツールは、わずかに異なる時間に同じペイロードを有するパケットを受信している可能性がある。重複パケットの生成はまた、解析ツールに転送されるパケットをタップ（ｔａｐ）するために使用されるセグメント内のタッピング（ｔａｐｐｉｎｇ）点の位置に応じて、冗長ネットワークセグメントにおいても生じ得る。つまり、タップが冗長ネットワークセグメントにおいて位置する場所に応じて、同じパケットの複数のコピーまたは同じペイロードを有する複数のパケットのコピー（すなわち、異なる宛先および／またはソースアドレスだけを有するパケット）が生成され得る。そのような重複パケットの存在により、正確な解析の実施が妨げられ、ネットワーク内の利用可能な帯域幅に悪影響が及ぼされ、または、重複した情報を運ぶこれらのパケット全てを取り扱う能力がないツールに過負荷が与えられるおそれがある。従って、本願の出願人は、パケットの何れの解析または監視の前に重複パケットを排除するための新規のシステムおよび方法を得ることが望ましいであろうと判断した。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
幾つかの実施形態によれば、パケット処理の方法が、複数のフィールドを有するヘッダを含む第１のパケットを受信するステップと、所定のフィールド検査階層に従って複数のフィールドの第１のフィールドを用いて第１のパケットが重複パケットであるかどうかを判断するステップとを含み、所定のフィールド検査階層は、複数のフィールドの第１のフィールドが複数のフィールドの第２のフィールドの前に検査されることを規定し、複数のフィールドの第１のフィールドは複数のフィールドの第２のフィールドよりも統計的に比較的高い変化率を有し、第１のパケットの前に受信される第２のパケットにおける複数のフィールドのそれぞれのフィールドに複数のフィールドの第１のフィールドが一致する場合、および、第２のパケットが受信されてから規定された期間内に第１のパケットが受信される場合、第１のパケットは重複パケットであると判断される。
【００１１】
他の実施形態によれば、パケットスイッチシステムは、複数のフィールドを有するヘッダを含む第１のパケットを受信するように構成された第１のポートと、所定のフィールド検査階層に従って複数のフィールドの第１のフィールドを用いて第１のパケットが重複パケットであるかどうかを判断するように構成された集積回路とを備え、所定のフィールド検査階層は、複数のフィールドの第１のフィールドが複数のフィールドの第２のフィールドの前に検査されることを規定し、複数のフィールドの第１のフィールドは、複数のフィールドの第２のフィールドよりも統計的に比較的高い変化率を有し、集積回路は、第１のパケットの前に受信される第２のパケットにおける複数のフィールドのそれぞれのフィールドに複数のフィールドの第１のフィールドが一致する場合、および、第２のパケットが受信されてから規定された期間内に第１のパケットが受信される場合、第１のパケットを重複パケットと判断するように構成される。
【００１２】
他の実施形態によれば、コンピュータプログラム製品は、１組の命令を格納する非一時的媒体を含み、その命令の実行はパケット処理の方法を実行させ、その方法は、複数のフィールドを有するヘッダを含む第１のパケットを受信するステップと、所定のフィールド検査階層に従って複数のフィールドの第１のフィールドを用いて第１のパケットが重複パケットであるかどうかを判断するステップと、を含み、所定のフィールド検査階層は、複数のフィールドの第１のフィールドが複数のフィールドの第２のフィールドの前に検査されることを規定し、複数のフィールドの第１のフィールドは、複数のフィールドの第２のフィールドよりも統計的に比較的高い変化率を有し、第１のパケットの前に受信される第２のパケットにおける複数のフィールドのそれぞれのフィールドに複数のフィールドの第１のフィールドが一致する場合、および、第２のパケットが受信されてから規定された期間内に第１のパケットが受信される場合、第１のパケットは重複パケットであると判断される。
【００１３】
他の実施形態によれば、パケット処理の方法は、複数のフィールドを有するヘッダを含む第１のパケットであって、複数のフィールドのフィールドが識別フィールドである、第１のパケットを受信するステップと、第１のパケットのヘッダにおける識別フィールドについての識別値を判断するステップと、第１のパケットの識別値が第２のパケットのヘッダにおける識別値に一致するかどうかを判断するステップと、第１のパケットの識別値が第２のパケットの識別値に一致する場合、第１のパケットが重複パケットであるかどうかを判断するために第１のパケットのヘッダにおける複数のフィールドの別のフィールドを使用するステップと、を含む。
【００１４】
他の実施形態によれば、パケットスイッチ機器は、複数のフィールドを有するヘッダを含む第１のパケットであって、複数のフィールドのフィールドが識別フィールドである第１のパケットを受信するように構成された第１のポートと、集積回路であって、第１のパケットのヘッダにおける識別フィールドについての識別値を判断するために、第１のパケットの識別値が第２のパケットのヘッダにおける識別値に一致するかどうかを判断し、第１のパケットの識別値が第２のパケットの識別値に一致する場合、第１のパケットが重複パケットであるかどうかを判断するように複数のフィールドの別のフィールドを使用するように構成された集積回路と、を備える。
【００１５】
他の実施形態によれば、コンピュータプログラム製品は１組の命令を格納する非一時的媒体を有し、その命令の実行はパケット処理の方法を実行させ、その方法は、複数のフィールドを有するヘッダを含む第１のパケットであって、複数のフィールドのフィールドが識別フィールドである、第１のパケットを受信するステップと、第１のパケットのヘッダにおける識別フィールドについての識別値を判断するステップと、第１のパケットの識別値が第２のパケットのヘッダにおける識別値に一致するかどうかを判断するステップと、第１のパケットの識別値が第２のパケットの識別値に一致する場合、第１のパケットが重複パケットであるかどうかを判断するために、複数のフィールドの別のフィールドを使用するステップと、を含む。
【００１６】
他のおよび更なる態様や特徴は、以下の実施形態の詳細な説明を読むことから明らかになる。当該実施形態は、発明を例示することを意図したものであって発明を限定するものではない。
【００１７】
図面は、諸実施形態の設計および効用を例示する。実施形態においては、類似の要素は共通の参照番号により示される。これらの図面は、必ずしも正しい縮尺で描かれていない。どのように上記のおよび他の利点および対象が得られるかをより良く理解するために、実施形態のより詳細な説明を示し、添付図面で例示する。これらの図面は、典型的な実施形態のみを描写するものであって、実施形態の範囲を限定するものとはみなされない。
【図面の簡単な説明】
【００１８】
【図１】どのように重複パケットが生成され得るかの例を例示する図である。
【図２】どのように重複パケットが生成され得るかの別の例を例示する図である。
【図３】幾つかの実施形態に係るパケットスイッチデバイスを例示する図である。
【図４】幾つかの実施形態に係る図３のパケットスイッチデバイスによって実行される方法を例示する図である。
【図５】幾つかの実施形態に係る図３のパケットスイッチデバイスによって受信され得るＩＰｖ４ヘッダを有するパケットを例示する図である。
【図６Ａ】幾つかの実施形態に係る図３のパケットスイッチデバイスによって受信され得るＵＤＰヘッダを有するパケットを例示する図である。
【図６Ｂ】幾つかの実施形態に係る図３のパケットスイッチデバイスによって受信され得るＴＣＰヘッダを有するパケットを例示する図である。
【図７】幾つかの実施形態に係る図３のパケットスイッチデバイスを用いて実行され得る別の方法を例示する図である。
【図８】幾つかの実施形態に係る図３のパケットスイッチの実装の例を例示する図である。
【図９】幾つかの実施形態に係る図８のパケットスイッチデバイスによる例示的なパケット取り扱いプロセスを例示する図である。
【図１０】幾つかの実施形態に係るネットワーク環境における図３のネットワークスイッチデバイスのデプロイメントの例を示す図である。
【発明を実施するための形態】
【００１９】
図面を参照して、種々の実施形態を以下で説明する。図面は正しい縮尺で描かれていないこと、類似構造または機能の要素は図面全体にわたり同じ参照番号によって表わされていることに留意されたい。また、図面は実施形態の説明を容易にするためのものにすぎないことにも留意されたい。それらの図面は、発明の網羅的な説明としてまたは発明の範囲を限定するものとして意図されない。さらに、例示された実施形態は、示された態様または利点の全てを有する必要はない。特定の実施形態と関連して記載された態様または利点は、その実施形態に必ずしも限定されず、そのように例示されない場合においても任意の他の実施形態において実現され得る。
【００２０】
ネットワークにおいて、重複パケットは、様々な状況において生成され得る。パケットは、それらのパケットが、ネットワーククラウド内の２つのエンドポイント間の特定の会話におけるパケットそのものである場合、別のパケットの重複であると考えられる。重複パケットは、先頭から末尾まで別のパケットと同じ情報を有する必要はないが、重複パケットは別のパケットと少なくとも同じペイロードを有する。それ故に、本明細書において使用される際、用語「重複パケット」または類似の用語（例えば「重複したパケット」、「重複」、「コピー」等）は、別のパケットのペイロードと少なくとも同じペイロードを有するパケットのことを指す。場合によっては、重複パケットはまた、別のパケットのヘッダにおける（複数の）対応するものと同じであるヘッダにおける１つまたは複数のフィールド内の情報も有し得る。
【００２１】
図１は、どのように重複パケットが生成され得るかの例を例示する。図１の例示された例において、ポートＡ、Ｂ、およびＣからのパケットはＷＡＮポートに送信される。ＳＰＡＮポートは、ポートＡをタップするように、またＷＡＮポートからの全てのトラフィックの出入りをミラーリングするように構成される。この場合においてポートＡからＷＡＮポートに送信されたパケットは、スパンポートに２回コピーされることになる。
【００２２】
図２は、（複数の）重複パケットが生成され得る別の例を例示する。多数のスイッチおよびルータを含むネットワークを監視するために、これらのネットワーキングデバイスの全てをタップする必要があり得る。このことは、２つのエンドポイント間のトラフィックが異なる経路を通って移動し得るためと、全てのトラフィックが単一ノードを通過することになる保証はないためである。例示された例では、コンピュータＸに送信されているインターネットからのトラフィックが３つの異なるルータＲ１〜Ｒ３を通過し得る。３つのルータをタッピングするネットワークスイッチ機器は、コンピュータＸに送信されている同じ情報の３つのインスタンスを見ることになる。
【００２３】
重複パケットはまた、ネットワークが誤って構成された場合にも生じ得る。例えば、ネットワークスイッチ機器のユーザは、スパニングツリープロトコルを適切に構成せずに、同じまたは異なるスイッチの２つのイーサネット（登録商標）ポートを接続することによって物理的ループを生成し得る。ユーザはまた、ＶＬＡＮドメインを誤って構成する可能性があり、それにより、パケット漏洩が生ずる。さらに、ネットワークデバイスは、誤作動し、パケットコピーを無作為に生成し得る。重複パケットがネットワーク監視ツールに送信される場合にネットワーク監視ツールが既に実行された重複パケットについて不必要な解析を実行するので、重複パケットは望ましくない。
【００２４】
図３は、幾つかの実施形態に係る重複パケット識別およびパケット重複排除を実行するように構成されるネットワークスイッチデバイス３００を示す。ネットワークスイッチデバイス３００は、第１のネットワークポート３１２、第２のネットワークポート３１４、第１の器具ポート３２８、および第２の器具ポート３２９を含む。デバイス３００はまた、パケットスイッチ３４０、およびパケットスイッチ３４０を収容するためのネットワークスイッチ筺体３４２も含む。例示された実施形態では、デバイス３００はまた、他の構成要素、例えばそれぞれのポート３１２、３１４の各々に接続されるネットワークＰＨＹ（図示しない）なども含み、ネットワークＰＨＹは、パケットスイッチ３４０の一部であると考えられ得る。あるいは、ネットワークＰＨＹは、集積回路３４０から分離された構成要素であると考えられ得る。ＰＨＹは、リンク層デバイスを物理媒体、例えば光ファイバー、銅ケーブル等に接続するように構成される。他の実施形態では、ＰＨＹの代わりに、デバイス３００は光トランシーバ、またはＳＥＲＤＥＳ等を含んでもよい。筺体３４２は、デバイス３００が単一ユニットとして運ばれ、移送され、販売され、および／または動作されることを可能にする。ポート３１２、３１４、３２８、３２９は、筺体３４２の周縁部に位置付けられる。他の実施形態では、ポート３１２、３１４、３２８、３２９は、筺体３４２に関する他の場所に位置してもよい。２つのネットワークポート３１２、３１４を図示したが、他の実施形態では、デバイス３００は、３つ以上のネットワークポートを含んでもよい。また、２つの器具ポート３２８、３２９が図示されたが、他の実施形態では、デバイス３００は、１つの器具ポートだけ、または３つ以上の器具ポートを含んでもよい。
【００２５】
使用中は、デバイス３００の第１のネットワークポート３１２は第１のノード３６０に通信可能に結合され、第２のポート３１４は第２のノード３６２に通信可能に結合される。デバイス３００は、ネットワークポート３１２、３１４経由で第１のノード３６０と第２の３６２との間でパケットを通信するように構成される。また、使用中は、デバイス３００の器具ポート３２８、３２９は、それぞれの器具３７０、３７２に通信可能に結合される。器具３７０、３７２は、デバイス３００に直接結合され得るか、あるいはネットワーク（例えば、インターネット）を通してデバイス３００に通信可能に結合され得る。場合によっては、デバイス３００は、２つのノード３６０および３６２のスパンポート経由で重複するパケットを受信し得る。そのような場合では、デバイス３００は、パケットを器具３７０および／または器具３７２に転送する前に（複数の）重複を排除するために、パケット重複排除を実行するように構成される。場合によっては、デバイス３００は、デバイス３００が通信経路に沿う単一ポイントでデプロイされることを可能にする単一ユニットとして提供される。例示された実施形態では、パケットスイッチ３４０は、ネットワークポート３１２、３１４経由でノード３６０、３６２からパケットを受信し、既定の方式に従ってパケットを処理するように構成される。例えば、パケットスイッチ３４０は、１つまたは複数のノードから受信したパケットをそれぞれの（複数の）器具ポート３２８、３２９に接続された１つまたは複数の器具に渡すことができる。
【００２６】
何れの実施形態においても、パケットスイッチ３４０は、所定の伝送方式に従ってパケット伝送を提供する任意のスイッチモジュールであり得る。幾つかの実施形態では、パケットスイッチ３４０は、パケットが一対一の構成で（すなわち、１つのネットワークポートから１つの器具ポートまで）伝送され得るように、ユーザが構成可能なものであり得る。本明細書で使用する際、「器具ポート」という用語は、パケットを器具に伝送するよう構成された任意のポートのことを指し、当該器具は、例えばスニッファ、ネットワーク監視システム、アプリケーション監視システム、侵入検知システム、フォレンジック記憶システム、アプリケーションセキュリティシステム等の非通過型デバイスであってもよく（すなわち、当該器具は、２つのノード間で通信されることを意図されたパケットしか受信できず、かかるパケットを下流に伝送できない）、または、当該器具は、例えば侵入防止システムなどの通過型デバイスであってもよい（すなわち、当該器具は、パケットを受信し、パケットの処理後にパケットをデバイス３００に伝送し戻すことができる）。他の実施形態では、パケットスイッチ３４０は、パケットが一対多の構成で（すなわち、１つのネットワークポートから複数の器具ポートまで）伝送され得るように構成されてもよい。他の実施形態では、パケットスイッチ３４０は、パケットが多対多の構成で（すなわち、複数のネットワークポートから複数の器具ポートまで）伝送され得るように構成されてもよい。更なる実施形態では、パケットスイッチ３４０は、パケットが多対一の構成で（すなわち、複数のネットワークポートから１つの器具ポートまで）伝送され得るように構成されてもよい。幾つかの実施形態では、一対一、一対多、多対多、および多対一の構成は全て利用可能であり、パケット（または一定の種類のパケット）がこれらの構成のいずれか１つに従って経路指定されるようにユーザがデバイス３００を選択的に構成することができる。幾つかの実施形態では、デバイス３００がパケットを受信すると、デバイス３００が、パケットを解析する必要なしに（例えば、ヘッダを調べること、パケットの種類を判断することなどの必要なしに）予め決定されたパケット移動構成（例えば、一対一、一対多、多対多、および多対一）に基づいて自動的にパケットをポートに転送することとなるように、パケット移動構成が予め決定される。
【００２７】
本明細書に記載される特徴を実施するために使用され得るパケットスイッチ３４０の例は、商業上利用可能なネットワークスイッチデバイスのいずれか、例えばＧｉｇａｍｏｎ  ＬＬＣから利用可能なＧｉｇａＶＵＥ（商標）などを含む。本明細書に記載される特徴を実施するために使用され得るパケットスイッチ３４０の他の例は、米国特許出願第１２／１４８，４８１号、第１２／２５５，５６１号、第１１／１２３，２７３号、第１１／１２３，４６５号、および第１１／１２３，３７７号に記載されており、それらの出願の全ての開示全体は、参照によって本明細書に明確に組み込まれる。
【００２８】
幾つかの実施形態によれば、パケットスイッチ３４０は、そのパケットスイッチがネットワークの種々の部分に対する可視性を提供することを除いては、従来のパケットスイッチの機能を有してもよい。そのため、パケットスイッチ３４０の実施形態は、従来のマネージド（ｍａｎａｇｅｄ）パケットスイッチのように動作し得るが、パケット監視機能を提供する。このことは、特定の状況下でパケットスイッチ３４０を回路スイッチとして動作するように構成することによって実現される。幾つかの実施形態では、マネージドパケットスイッチを構成することは、所望の動作を可能にするためにスイッチ内の適切なレジスタを修正するようにスイッチのＣＰＵインターフェースを利用することによって実現され得る。
【００２９】
デバイス３００とともに使用され得るパケットスイッチ３４０が上記例に限定されないこと、異なる構成を有する他のパケットスイッチ３４０を使用してもよいことに留意されたい。また、本明細書に記載された何れの実施形態においても、パケットスイッチ３４０を、集積回路、例えばプロセッサ（例えば、汎用プロセッサ、ネットワークプロセッサ、ＡＳＩＣプロセッサ、ＦＰＧＡプロセッサ等）を用いて実装してもよい。
【００３０】
例示された実施形態では、ネットワークスイッチデバイス３００はまた、幾つかの実施形態に従って、ネットワークスイッチデバイス３００で受信されたパケットが重複パケットであるかどうかを判断するための、および、パケット重複排除を実行するための、集積回路３８０も含む。例示された実施形態では、集積回路３８０はパケットスイッチ３４０の構成要素として例示される。他の実施形態では、集積回路３８０はパケットスイッチ３４０とは別個の構成要素であってもよい。集積回路３８０は、プロセッサ、例えば一般的なプロセッサ、ネットワークプロセッサ、ＡＳＩＣプロセッサ、ＦＰＧＡプロセッサ等を用いて実装され得る。また、幾つかの実施形態では、パケットスイッチ３４０を実装するために使用された同じプロセッサはまた、集積回路３８０の機能を実装するためにも使用され得る。使用中は、第１のネットワークポート３１２は、第１のネットワークポート３１２で第１のノード３６０からパケットを受信し、そのパケットが重複パケットであるかどうかを判断するためにパケットを処理し、下流のツール３７０／３７２への伝送のために器具ポート３２８／３２９にパケットを渡す。デバイス３００（例えば、構成要素３８０）が、パケットが重複パケットであると判断した場合、デバイス３００は、パケットが器具ポート３２８、３２９および／または第２のネットワークポート３１４に伝送されることを防ぐことになる。例えば、デバイス３００は、重複パケットを削除するように構成され得る。
【００３１】
図４は、幾つかの実施形態に係るパケット重複排除を実行するための方法４００を例示する。まず、パケットが受信される（ステップ４０２）。これは、第１のネットワークポート３１２を通してパケットを受信する図３のネットワークスイッチデバイス３００によって実現され得る。
【００３２】
受信されたパケットは、ヘッダおよびペイロードを含み、ヘッダは複数のフィールドを含む。図５は、幾つかの実施形態に係るパケット５００の構造の例を例示する。パケット５００はヘッダ５０２およびペイロードデータ５０４を含む。ヘッダ５０２は複数のフィールド５１０〜５３６を含む。特に、ヘッダ５０２は、バージョンフィールド５１０、ＩＨＬフィールド５１２、サービス種別フィールド５１４、全長フィールド５１６、識別フィールド５１８、フラグフィールド５２０、フラグメントオフセットフィールド５２２、生存時間（ｔｉｍｅ  ｔｏ  ｌｉｖｅ）フィールド５２４、プロトコルフィールド５２６、ヘッダチェックサムフィールド５２８、ソースＩＰアドレス５３０、宛先ＩＰアドレス５３２、ＩＰオプションフィールド５３４、およびパディングフィールド５３６を含む。
【００３３】
バージョンフィールド５１０：ＩＰパケットにおける第１のヘッダフィールドは４ビットバージョンフィールドである。ＩＰｖ４の場合、この値は４である。
【００３４】
インターネットヘッダ長（ＩＨＬ）フィールド５１２：第２のフィールド（４ビット）は、ヘッダにおいて３２ビットワードの数を示すインターネットヘッダ長（ＩＨＬ）である。ＩＰｖ４ヘッダは可変数のオプションを含み得るので、このフィールドはヘッダのサイズを指定する（このヘッダのサイズはまた、データに対するオフセットと合致する）。このフィールドについての最小値は５（ＲＦＣ７９１）であり、その値は５×３２＝１６０ビット＝２０バイトの長さである。４ビット値であれば、最大長は１５ワード（１５×３２ビット）または４８０ビット＝６０バイトである。
【００３５】
サービス種別フィールド５１４：このフィールドは、差別化サービス（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  ｓｅｒｖｉｃｅｓ）のためのＲＦＣ２４７４によって規定される差別化サービスコードポイント（Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ：ＤＳＣＰ）としても知られている。いくつかの伝送は、リアルタイムのデータストリーミングを必要とし得るので、ＤＳＣＰフィールドを使用し得る。一例は、対話型データ音声交換に使用されるボイスオーバーＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  ＩＰ：ＶｏＩＰ）である。
【００３６】
全長フィールド５１６：この１６ビットフィールドは、全データグラムサイズを規定し、バイト単位での、ヘッダおよびデータを含む。最小長データグラムは２０バイト（２０バイトヘッダ＋０バイトデータ）であり、最大は、１６ビットワードの最大値である６５，５３５である。
【００３７】
識別フィールド５１８：このフィールドは、識別フィールドであり、主に元のＩＰデータグラムのフラグメントを一意的に識別するために使用される。
【００３８】
フラグフィールド５２０：３ビットフィールドが続き、フラグメントを制御するかまたは識別するために使用される。それらのフィールドは（上位から下位への順位通りに）、
ビット０：予約済み。ゼロでなくてはならない
ビット１：フラグメントしない（ＤＦ）
ビット２：さらにフラグメントする（ＭＦ）
である。ＤＦフラグが設定され、フラグメンテーションがパケットを経路指定するために必要とされる場合には、パケットは削除されることになる。これは、フラグメンテーションを取り扱うために十分なリソースを有していないホストにパケットを送信するときに使用され得る。
【００３９】
フラグメントオフセットフィールド５２２：８バイトブロックの単位で測定されるフラグメントオフセットフィールドは、１３ビットの長さであり、フラグメントされていない元のＩＰデータグラムの先頭に対する特定のフラグメントのオフセットを指定する。第１のフラグメントはゼロのオフセットを有する。これは、ヘッダ長を含めて（６５，５２８＋２０＝６５，５４８バイト）６５，５３５バイトの最大ＩＰパケット長を超えることになる（２１３‐１）×８＝６５，５２８バイトの最大のオフセットを与える。
【００４０】
生存時間（ＴＴＬ）フィールド５２４：８ビット生存時間フィールドは、インターネット上でデータグラムが持続すること（例えば堂々巡りすること）を防ぐことに役立つ。このフィールドはデータグラムの存続時間を制限する。その時間は、秒単位で指定されるが、１秒より少ない時間間隔は１に切り上げられる。通例の典型的な待ち時間において、そのフィールドはホップカウントフィールドになっている。データグラムが横切る各ルータは、ＴＴＬフィールドを１だけ減らす。ＴＴＬフィールドがゼロに達すると、パケットは、もはやパケットスイッチによって転送されず、破棄される。
【００４１】
プロトコルフィールド５２６：このフィールドは、ＩＰデータグラムのデータ部分において使用されるプロトコルを規定する。
【００４２】
ヘッダチェックサムフィールド５２８：１６ビットチェックサムフィールド５２８は、ヘッダの誤り検査のために使用される。各ホップでは、ヘッダのチェックサムはこのフィールドの値と比較されなければならない。ヘッダチェックサムが不一致であると判断された場合には、パケットは破棄される。データフィールドにおける誤りは、取り扱うためのカプセル化されたプロトコル次第であることに留意する。
【００４３】
ソースアドレス５３０：ＩＰｖ４アドレスは全３２ビットについての４オクテットの群である。このフィールドについての値は、各オクテットの２進値を取ることによって、さらに、単一の３２ビット値を作るようにそれらをともに連結することによって判断される。例えば、アドレス１０．９．８．７は、００００１０１０００００１００１００００１００００００００１１１となる。このアドレスは、パケットの送信元のアドレスである。このアドレスは、ネットワークアドレス変換に起因してパケットの「真の」送信元であり得ないことに留意する。代わりに、ソースアドレスは、ネットワークアドレス変換する（ＮＡＴｉｎｇ）マシンによってそれ自体のアドレスに変換されることになる。それ故に、受信側から送信された応答パケットは、ネットワークアドレス変換するマシンまで経路指定され、そのマシンは宛先アドレスを元の送信元のアドレスに変換する。
【００４４】
宛先アドレス５３２：ソースアドレスフィールドと同様であるが、パケットの受信側を示す。
【００４５】
オプションフィールド５３４：これは、宛先アドレスフィールドの後に続く１つまたは複数の追加的なヘッダフィールドであり得る。時には、オプションフィールド５３４は使用されない。
【００４６】
パディングフィールド５３６：これは、ヘッダを３２ビット境界に整列させるためのものである。オプションがＩＰヘッダに追加される場合には、このフィールドは必要であり得る。
【００４７】
図６Ａは、幾つかの実施形態に係るパケット６００の別の例を例示する。例示された例では、パケット６００は、最小限のメッセージ指向型トランスポート層プロトコルであるＵＤＰパケットである。図示したように、ＵＤＰヘッダは、４つのフィールドを含み、それらのフィールドの全ては２バイト（１６ビット）である。ソースポート番号フィールド６０２は送信元のポートを識別する。そのフィールドが使用されない場合には、そのフィールドはゼロの値を有する。ソースホストがクライアントである場合、ポート番号は、エフェメラルポート番号である可能性が高い。宛先ポート番号フィールド６０４は受信側のポートを識別する。クライアントが宛先ホストである場合には、そのポート番号はエフェメラルポート番号である可能性が高いことになる。宛先ホストがサーバである場合には、そのポート番号は周知のポート番号である可能性が高い。長さフィールド６０６は、全データグラム、すなわちヘッダおよびデータのバイト単位での長さを指定する。最小限の長さは８バイトであり、その長さはヘッダの長さであるからである。フィールドサイズは、ＵＤＰデータグラムについて６５，５３５バイト（８バイトヘッダに６５，５２７バイトのデータを足したもの）の理論的限界を設定する。チェックサムフィールド６０８はヘッダおよびデータの誤り検査のために使用される。チェックサムがＩＰｖ４において省略される場合、フィールドは全てゼロの値を使用する。
【００４８】
図６Ｂは、幾つかの実施形態に係るネットワークスイッチデバイス３００によって受信され得るパケット６５０の別の例を例示する。例示された例では、パケット６５０は伝送制御プロトコル（ＴＣＰ）パケットである。ＴＣＰヘッダは、ソースポートフィールド６５２、宛先ポートフィールド６５４、シーケンス番号フィールド６５６、確認応答番号フィールド６５８、データオフセットフィールド６６０、予約済みフィールド６６２、フラグフィールド６６４、ウィンドウフィールド６６６、チェックサムフィールド６６８、緊急ポインタフィールド６７０、およびオプションフィールド６７２を含む。ソースポートフィールド６５２は送信側ポートを識別する。宛先ポートフィールド６５４は受信側ポートを識別する。シーケンス番号フィールド６５６は、ＳＹＮフラグが設定される場合に初期シーケンス番号を識別し、ＳＹＮフラグがクリアされる場合に現在のセッションについてのパケットの第１のデータバイトの累積シーケンス番号を識別する。確認応答番号フィールド６５８は、前のバイト（もしあれば）の受信に確認応答するためのものである。データオフセットフィールド６６０は、３２ビットワードにおけるＴＣＰヘッダのサイズを指定する。予約済みフィールド６６２は、任意の規定された使用のためのものであり、ゼロに設定され得る。フラグフィールド６６４は、種々のフラグ（ＣＷＲ、ＥＣＥ、ＵＲＧ、ＡＣＫ、ＰＳＨ、ＲＳＴ、ＳＹＮ、ＦＩＮフラグ）が設定されることを可能にする。ウィンドウフィールド６６６は、受信ウィンドウのサイズを識別し、そのサイズは、受信側が現在受信するつもりである確認応答フィールドにおけるシーケンス番号を超えるバイトの数である。チェックサムフィールド６６８は、ヘッダおよびデータの誤りを検査するための１６ビットチェックサムフィールドである。緊急ポインタフィールド６７０は１６ビットフィールドである。ＵＲＧフラグが設定される場合には、このフィールドは、最後の緊急データバイトを示すシーケンス番号からのオフセットである。オプションフィールド６７２は種々のオプションが設定されることを可能にする。
【００４９】
デバイス３００により受信され得るパケットの種類は前に記載された例に限定されるものではないこと、デバイス３００は、異なるヘッダ構成を有する他の種類のパケットを受信し得ることに留意されたい。
【００５０】
図４の方法４００に戻ると、次に、ネットワークスイッチデバイス３００は、所定のフィールド検査階層に従って、パケットのヘッダにおける複数のフィールドのうちの１つまたは複数を用いて、受信されたパケットが重複パケットであるかどうかを判断する（ステップ４０４）。例示された実施形態では、所定のフィールド検査階層は、統計的に比較的高い変化率を有するヘッダ内の複数のフィールドの（複数の）特定のフィールドが、統計的に比較的低い変化率を有する他のものよりも前に検査されることを規定する。
【００５１】
幾つかの実施形態では、デバイス３００は、ヘッダにおけるＩＰＩＤフィールド（例えば、フィールド５１８）を他のフィールドの前により早く受信されたパケットの別のヘッダにおける別のＩＰＩＤフィールドに照らして、まず検査するように構成される。ＩＰＩＤフィールドの値は、他のフィールドと比較してパケット間で統計的に最も高い変化率を有する（すなわち、その値はより頻繁に変化する）ので、この特徴は、有利である。それ故に、２つのパケットが同じＩＰＩＤフィールド値を有する場合には、２つのパケットのうちの１つが重複パケットである可能性が高い。幾つかの実施形態では、デバイス３００は、受信されたパケットのヘッダにおける識別フィールドのための識別値を判断することによって、また、パケットの識別値がより早く受信された別のパケットのヘッダにおける識別値に一致するかどうかを判断することによって、ＩＰＩＤフィールドを検査するように構成される。
【００５２】
幾つかの実施形態では、デバイス３００はまた、パケットが重複パケットであるかどうかを判断するために、ヘッダにおける最初の６４ビットを、より早く受信されたパケットの別のヘッダにおける最初の６４ビットに照らして検査するように構成される。ＴＣＰヘッダの場合、最初の６４ビットは、ソースポート、宛先ポート、およびシーケンス番号を含む。ＵＤＰヘッダの場合、最初の６４ビットは、ソースポート、宛先ポート、長さ、およびチェックサムを含む。他の実施形態では、ヘッダにおける最初の６４ビットの代わりに、デバイス３００は、パケットが重複パケットであるかどうかを判断するために、ヘッダにおける他の規定された数（Ｎ）のビット（そのビットは、例えば、６４ビットより大きいまたは６４ビットより小さいものであり得る）を検査するように構成されてもよい。規定された数Ｎは、ゼロよりも大きな任意の数とすることができる。
【００５３】
また、幾つかの実施形態では、デバイス３００は、パケットが重複パケットであるかどうかを判断するために、ヘッダにおける宛先ＩＰアドレスおよび／またはソースＩＰアドレスを、より早く受信されたパケットのヘッダにおける対応する宛先／ソースＩＰアドレスに照らして検査するように構成される。
【００５４】
更なる実施形態では、デバイス３００は、ヘッダにおけるフラグメントオフセットを、より早く受信されたパケットの別のヘッダにおけるフラグメントオフセットに照らして検査するように構成される。このことには、ＩＰＩＤ値を繰り返す（ｒｏｌｌ  ｏｖｅｒ）（ＩＰＩＤ値を再利用する）場合に、重複検知の確実性が高まるという利点がある。
【００５５】
１実施形態では、デバイス３００は、所定のフィールド検査階層に従って、ヘッダにおける異なるフィールドを、より早く受信されたパケットの別のヘッダにおける対応するフィールドに照らして検査するように構成され、その検査階層は、ヘッダにおけるフィールドを検査するための以下の順番、すなわち、ＩＰＩＤ、ヘッダにおける最初の６４ビット（または他の数のビット）、ソースＩＰアドレス、宛先ＩＰアドレス、およびフラグメントオフセットを規定する。別の実施態様では、所定のフィールド検査階層は、ヘッダにおけるフィールドを検査するための以下の順番、すなわち、ＩＰＩＤ、ソースＩＰアドレス、およびフラグメントオフセットを規定してもよい。他の実施形態では、デバイス３００は、ヘッダから追加的なフィールドを検査するように構成され得る。また、他の実施形態では、上記項目を検査する順番は、複数のフィールドのうちより高い変化率を有するフィールドが、複数のフィールドのうちより低い変化率を有する別のフィールドの前に検査される限り異なってもよい。例えば、他の実施形態では、検査の順番は以下の通り、すなわち、ヘッダにおける最初の６４ビット（または他の数のビット）、ＩＰＩＤ、ソースＩＰアドレス、宛先ＩＰアドレス、およびフラグメントオフセットであってもよい。また、更なる実施形態では、上記項目の任意の組み合わせが同時に検査され得る。さらに、本明細書に記載された何れの実施形態においても、フラグメントオフセットは、重複パケットを識別するために検査される必要はなくてもよく、それ故に、フラグメントオフセットを検査する動作は、実行される必要はなくてもよい。
【００５６】
本明細書に記載された何れの実施形態においても、ネットワークスイッチデバイス３００は、規定された時間ウィンドウ（期間）内に受信されたより早いパケットに照らして、パケットを検査するように構成される。そのような場合では、パケットのヘッダにおける（複数の）ある一定のフィールドが別のパケット（より早く受信されたパケット）のヘッダにおける対応する（複数の）フィールドと一致する場合、ならびにパケットおよびより早いパケットが規定された期間内に受信される場合、そのパケットが重複パケットであるとデバイス３００によって判断される。ノードは、時には、２つの異なるそれぞれの時間に２つの同一パケットを意図的に伝送し得るので、重複パケットを識別するために２つのパケットが規定された期間内に受信されるかどうかを判断することは有利である。ノードから２つの同一パケットを意図的に伝送することは、パケットがネットワーク伝送または監視プロセスの間に非意図的にコピーされる状況とは異なる。特に、ネットワーク伝送プロセスにおいて非意図的に生成される重複パケットは、（比較的さらに離れたそれぞれの時間に発生する２つの同一パケットを意図的に伝送するノードとは対照的に）元のパケット時間から非常に近い時間に発生するので、２つのパケットの受信の間に経過する時間は、２つの異なるシナリオを区別するために使用され得る。特に、デバイス３００は、（ある一定のヘッダフィールドにおいて同じ値を有する）２つのパケットが規定された期間内に受信される場合に、パケットの１つが、ネットワーク伝送プロセスの間に生成される重複パケットである（また、そのことは、同じパケットを２回送信するノードによるものではない）という想定で動作する。規定された期間は、デバイス３００のユーザによって設定された任意の値であり得る。例えば、幾つかの実施形態では、規定された期間は、１００ミリ秒以下であり得るし、より好適には、８０ミリ秒以下であり得る。規定された期間は、他の実施形態では他の値であってもよい。
【００５７】
幾つかの実施形態では、ヘッダにおけるフィールドの検査は、ハッシング技術を用いて実行され得る。そのような場合では、パケット間の比較は、関数（例えば、ハッシュ関数）をパケットのある一定の規定された（複数の）部分に適用することにより生成される関数値（例えば、ハッシュ）に基づく。比較の結果、一致した場合には、パケットスイッチデバイス３００は、パケットを重複パケットとして宣言し、重複パケットを破棄する。１実施形態では、デバイス３００は、ユーザが比較を開始することを望むある一定のオフセット（例えば、パケットの先頭から数えたバイトの数）に基づいてハッシュ値をパケット毎に計算する。新しいハッシュ値（または値）を伴う第１のパケットは、下流への伝送のためにパケットスイッチデバイス３００により転送される。時間ウィンドウ（すなわち、（複数の）新しいハッシュ値を伴う第１のパケットの受信以後の規定された期間）内の（複数の）同じハッシュ値を有する次の何れのパケットも破棄される。
【００５８】
幾つかの実施形態では、ハッシングは、検査されることが望まれるヘッダにおけるフィールドのそれぞれに対し個々に実行される。例えば、異なるハッシュ値は、ＩＰＩＤ値、ヘッダにおける最初の６４ビット、ソースＩＰアドレス、宛先ＩＰアドレス、およびフラグメントオフセットについて、それぞれ判断され得る。そのような場合では、パケットが重複パケットであるかどうかを判断するためにパケットを検査するときに、ネットワークスイッチデバイス３００は、（複数の）フィールドのハッシュ値を、より早く受信されたパケットの（複数の）フィールドの対応するハッシュ値に照らして比較するように構成される。例えば、規定された検査順番が、ＩＰＩＤを最初に検査することを含む場合には、デバイス３００は、前に受信されたパケットの対応するＩＰＩＤハッシュ値でＩＰＩＤハッシュ値を検査することになる。
【００５９】
他の実施形態では、複数のフィールドが検査されることを望まれる場合には、ヘッダにおける複数のフィールドは、ハッシュ値を計算するために使用され得る。例えば、ＩＰＩＤ値、ヘッダにおける最初の６４ビット、および宛先／ソースＩＰアドレスが最初に検査されることを望まれると想定すると、ネットワークスイッチデバイス３００は、ＩＰＩＤ値、ヘッダにおける最初の６４ビット（またはそのビットのサブセット）、および宛先／ソースＩＰアドレス（または宛先／ソースＩＰアドレスにおけるビットのサブセット）を用いてハッシュ値を計算することになる。次いで、デバイス３００は、前に受信されたパケットにおける同じフィールドを用いて判断された対応するハッシュ値に照らして、そのようなハッシュ値を比較する。他の実施形態では、最初に検査されることを望まれるフィールドは、ＩＰＩＤ値、ソースＩＰアドレス、およびフラグメントオフセットであってもよい。
【００６０】
更なる実施形態では、ヘッダにおける複数のフィールドのためのハッシングを最初に実行してもよく、ハッシュ値は一致候補（ｐｏｓｓｉｂｌｅ  ｍａｔｃｈ）のリストを取得するために使用される。次いで、一致候補のリストから、線形探索が、パケットが重複パケットであるかどうかを判断するために前に記述したように所定のフィールド検査階層を用いて実行される。そのような技術は、ハッシュ値が一致候補の数を狭めるので、探索がより速く実行されることを可能にする。この技術では、ハッシュ式の場合、入力は、１つまたは複数のフィールドからのバイトのサブセットを含み得る。完全一致はいずれにせよ後で実行されることになるので、すべてのフィールドにおけるバイトの全てを含む必要はない。例えば、幾つかの実施形態では、最も頻繁に変化するフィールド、例えば、ＩＰＩＤ値、フラグメントオフセット、ソースＩＰアドレスの下位２バイト、および宛先ＩＰアドレスの下位２バイトを用いてハッシュ値を生成してもよい。次いで、パケットのハッシュ値は、ルックアップ表内に前に格納された（同様に計算された）ハッシュ値を比較するために使用される。規定されたフィールドの全てにおけるバイトの全てがハッシュ値の計算に使用されるわけではないので、一致候補のリストがあり得る。そのような場合では、デバイス３００は、次いで、所定のフィールド検査階層を用いて、一致候補のリスト内のパケットのヘッダにおける対応するフィールドに照らしてヘッダにおける異なるフィールド検査する。一致が見つかった場合には、パケットは重複パケットであると判断される。幾つかの実施形態では、ＴＣＰパケットについて、デバイス３００は、ソースポートを含み、ハッシュ値の生成においてチェックサムするように構成される。このことには、ハッシュ衝突（同じハッシュ値を有するパケット）の数を減らすという利点がある。
【００６１】
幾つかの実施形態では、デバイス３００における（またはデバイス３００に通信可能に結合された）メモリは、前に受信されたパケットであって、比較のために使用されるパケットの部分のコピーを含む表を格納し得る。他の実施形態では、その表は、比較されることになるパケットであって、前に受信されたパケットのそれらの部分に関数（例えば、ハッシュ関数）を適用することによって生成される値を格納し得る。場合によっては、新しいハッシュ値を生成する第１のパケットは、デバイス３００から外に自動的に転送される。時間ウィンドウ内において、同じハッシュ値を有する次の何れのパケットも破棄される。時間ウィンドウが満了すると、パケットのこのシーケンスのハッシュ値は消去され、プロセスが再び開始する。そのような技術には、表が大きくなり過ぎることが防止され、重複パケット識別プロセスにもはや必要でない情報が破棄されるという利点がある。幾つかの実施形態では、パケットがデバイス３００により受信される時を記録するために、各パケットについて１行と、２列、すなわちタイムスタンプ用の１列およびパケットのハッシュ署名を有する第２の列とを有する表が、使用される。
【００６２】
図４の方法４００に戻ると、デバイス３００（例えば、構成要素３８０）が重複パケットを識別すると、デバイス３００はその重複パケットを破棄する（ステップ４０８）。そうでない場合には、デバイス３００は、非重複パケットがパケットストリームの一部であり続けることを可能にする。そのような場合、デバイス３００は、次いでパケット（またはデバイス３００により生成されたそのパケットのコピー）を器具ポートに結合された解析ツールに送信する（ステップ４１０）。他の実施形態では、器具ポートを通してパケットを解析ツールに送信することに加えて、あるいはその代わりに、デバイス３００を、パケットを経路指定し、パケットをフィルタリングし、パケットをスライシングし、パケットを修正し、パケットをコピーし、および／またはパケットをフローコントロールするように構成してもよい。
【００６３】
幾つかの実施形態では、パケット重複排除を実行するとき、デバイス３００は、タップされたトラフィックのすべてが同じＬ３ネットワークのものであるという想定上で動作するように構成される。これは、ＩＰアドレス空間が同じであり、ＩＰアドレスが単一ノードに結合されることを意味する。この想定は、デバイス３００が全ＩＰパケットについてのＬ２ヘッダ（ＶＬＡＮ）およびＬ２．５ヘッダ（ＭＰＬＳ）動作を無視することを可能にする。それ故に、幾つかの実施形態では、ＶＬＡＮ／ＭＰＬＳタグ動作がパケット上で実行されるときでも、デバイス３００は重複パケットを依然として検知することができる。他の実施形態では、デバイス３００は、上記想定に基づいて動作する必要はない。
【００６４】
また、幾つかの実施形態では、デバイス３００は、Ｌ２（レイヤ２、データリンク層）ヘッダではなく、Ｌ３（レイヤ３、ネットワーク層）ヘッダおよびＬ４（レイヤ４、トランスポート層）ヘッダから、フィールドを調べるように構成される。パケットがネットワークを通して（例えば、種々のネットワークデバイスを通して）移動する際にＬ２ヘッダは変更されることがあるので、このことは有利である。一方で、パケット重複を検査するためにデバイス３００により使用されるＬ３およびＬ４ヘッダにおけるフィールドは変化せず、それによって、デバイス３００がパケット重複を確実に判断することが可能になる。幾つかの実施形態では、重複排除プロセスにおいてデバイス３００により処理されるパケットはＬ３  ＩＰｖ４ヘッダまたはＬ３  ＩＰｖ６ヘッダを含む。
【００６５】
本明細書に記載された何れの実施形態においても、重複パケットを識別するプロセスは、デバイス３００における作業量を条件としてもよい。特に、幾つかの実施形態では、デバイス３００は、デバイス３００における作業量を監視するように構成され得る。そのような場合では、デバイス３００が、実行される作業量が規定の閾値を超えると判断すると、デバイス３００は重複パケット識別プロセスを停止し、その結果、デバイスリソースは、優先度の高い他のタスクを実行するために使用され得る。図７は、幾つかの実施形態に係るデバイス３００により（例えば、集積回路３８０、パケットスイッチ３４０、または例えば別のプロセッサなどの別の構成要素などにより）実行され得る方法７００を例示する。まず、デバイス３００はデバイス３００についての作業量を判断する（ステップ７０２）。これは、デバイス３００が作業量を判断するためにデバイス３００と関連付けられたキューにアクセスすることにより実現され得る。あるいは、これは、デバイス３００が（作業量と相互に関連する）リソース利用量を判断することにより実現され得る。それ故に、本明細書で使用する際、「作業量」という用語は、作業の量に限定されず、リソース利用、または作業量と相互に関連する他の（複数の）変数のことを意味し得る。次に、デバイス３００は作業量を規定の閾値と比較する（ステップ７０４）。規定の閾値は、幾つかの実施形態ではユーザにより設定された任意の値であり得る。判断された作業量が規定の閾値を超える場合には、デバイス３００は、重複パケット識別プロセスを実行することを停止する（ステップ７０６）。一方で、判断された作業量が規定の閾値を下回る場合、デバイス３００は、重複パケット識別プロセスを実行し続ける（ステップ７０８）。そのような特徴は、デバイス３００が、重複パケット識別よりも高い優先度にあり得るタスクに焦点を当てることを可能にする。例えば、より高い優先度にあり得るタスクはパケットを器具ポートまたはネットワークポートに渡す動作である可能性がある。そのような場合では、パケットを器具ポートに渡す動作、および／またはパケットをネットワークポートに渡す動作は、重複排除タスクがデバイス３００により実行されるか否かにかかわらず実行され得る。それ故に、デバイス３００における器具ポートおよび／またはネットワークポートにパケットを渡す機能は、（複数の）２次的タスクの停止により影響を及ぼされない。
【００６６】
本明細書に記載された何れの実施形態においても、タスクを停止する特徴は２つの閾値を利用してもよく、第１の閾値は重複排除プロセスを停止するために使用され、第２の閾値は重複排除プロセスを再開するために使用される。１実施形態では、第１の閾値は重複排除タスクを停止するためのものであってもよく、作業量がそのような第１の閾値を超える場合、デバイス３００は重複排除プロセスを停止することになる。第２の閾値は、第１の閾値よりも低い値を有し、重複排除プロセスを再開するためのものである。作業量が第２の閾値を下回るような場合では、デバイスは重複排除プロセスを始めることになる。そのような特徴は、１つの閾値だけが使用される場合に生じることもあるバウンス効果（ｂｏｕｎｃｙ  ｅｆｆｅｃｔ）を防ぐか少なくとも減らすことになるので、有利である。
【００６７】
本明細書に記載された何れの実施形態においても、重複パケットを識別するプロセスは、デバイス３００におけるリソース（例えば、メモリ）の量を条件とし得る。特に、幾つかの実施形態では、デバイス３００は、デバイス３００におけるリソースを監視するように構成され得る。そのような場合では、デバイス３００が、リソースの残りの量が規定の閾値を下回ると判断すると、デバイス３００は重複パケット識別プロセスを停止し、その結果、デバイスリソースは、優先度の高い他のタスクを実行するために使用され得る。１実施形態では、デバイス３００（例えば、集積回路３８０、パケットスイッチ３４０、または例えば別のプロセッサなどの別の構成要素、など）は、幾つかの実施形態に係る以下の方法を実行するように構成され得る。まず、デバイス３００は、デバイス３００についてのリソースの量を判断する。これは、デバイス３００が、利用可能なリソースの量を判断するためにデバイス３００と関連付けられた１つまたは複数の構成要素（例えば、メモリ）にアクセスすることにより実現され得る。次に、デバイス３００はリソースを規定の閾値と比較する。当該規定の閾値は、幾つかの実施形態ではユーザにより設定された任意の値であり得る。判断されたリソースが規定の閾値を下回る場合には、デバイス３００は重複パケット識別プロセスを実行することを停止する。そのような特徴は、デバイス３００が、重複パケット識別よりも高い優先度にあり得るタスクに焦点を当てることを可能にする。例えば、高い優先度にあり得るタスクは、パケットを器具ポートにまたはネットワークポートに渡す動作である可能性がある。そのような場合では、パケットを器具ポートに渡す動作、および／またはパケットをネットワークポートに渡す動作は、重複排除タスクがデバイス３００により実行されるか否かにかかわらず実行され得る。それ故に、パケットをデバイス３００における器具ポートにおよび／またはネットワークポートに渡す機能は、（複数の）２次的タスクの停止によって影響を及ぼされない。
【００６８】
本明細書に記載された何れの実施形態においても、タスクを停止する特徴は２つの閾値を利用することができ、第１の閾値は重複排除プロセスを停止するために使用され、第２の閾値は重複排除プロセスを再開するために使用される。１実施形態では、第１の閾値は重複排除タスクを停止するためのものとすることができ、残りのリソースがそのような第１の閾値を下回る場合、デバイス３００は重複排除プロセスを停止することになる。第２の閾値は、第１の閾値よりも高い値を有し、重複排除プロセスを再開するためのものである。そのような場合では、残りのリソースが第２の閾値よりも高いときに、デバイスは重複排除プロセスを始めることになる。そのような特徴は、１つの閾値だけが使用される場合に生じることもあるバウンス効果を防ぐか少なくとも減らすことになるので、有利である。
【００６９】
更なる実施形態では、デバイス３００を、パケット重複排除プロセスを実行するかどうかを判断するために作業量と残りのリソースとの両方を調べるように構成してもよい。幾つかの実施形態では、作業量が規定された作業量閾値を超える場合、および残りのリソースが規定されたリソース閾値を下回る場合には、デバイス３００はパケット重複排除プロセスを停止する。また、幾つかの実施形態では、作業量が規定された作業量閾値を下回る場合、および残りのリソースが規定されたリソース閾値を上回るときには、デバイス３００はパケット重複排除プロセスを再開する。他の実施形態では、２つの閾値が作業量およびリソースのそれぞれのために使用される場合に、作業量が、（重複排除プロセスを停止するための）第１の規定された作業量閾値よりも低い第２の規定された作業量閾値を下回るとき、およびリソースが（重複排除プロセスを停止するための）第１の規定されたリソース閾値よりも高い第２の規定されたリソース閾値を上回るとき、デバイスはパケット重複排除プロセスを再開する。
【００７０】
作業量（またはリソース利用）が大きくなるときにおよび／またはデバイスの残りのリソースが少なくなるときに、タスクを停止する特徴は、パケット重複を判断するタスクに限定されないことに留意されたい。他の実施形態では、そのような特徴は、他よりも比較的低い優先度を有する他のタスクを停止するために使用され得る。例えば、幾つかの実施形態では、パケットを１つのネットワークポートから別のネットワークポートに渡すタスクは、他のタスク（例えば、パケットをネットワークポートに渡す動作を実行するために不必要なタスク）よりも高い優先度を付けられ得る。その場合において、そのようなタスクのいずれもデバイス３００の使用中に停止され得る。他の実施形態では、パケットを１つのネットワークポートから器具ポートに渡すタスクは、他のタスク（例えば、パケットを器具ポートに渡す動作を実行するために不必要なタスク）よりも高い優先度を付けられ得る。その場合において、そのようなタスクのいずれもデバイス３００の使用中に停止され得る。非限定例により、停止され得る（複数の）タスクは、１つまたは複数のパケットのフィルタリング、パケットのスライシング、パケットの修正（例えば、パケットの１つまたは複数の部分の排除、追加、または変換）、およびパケットのフローコントロールを含む。
【００７１】
図８は、幾つかの実施形態に係る図３のネットワークスイッチデバイス３００の実施態様の例を例示する。例示された実施形態では、ネットワークスイッチデバイス３００は、ネットワークスイッチデバイス３００用の中央または主要回路基板であるマザーボード８０２を含む。マザーボード８０２は、システムＣＰＵ（中央処理装置）８０４、ネットワークスイッチチップ８０６、およびコネクタ８０８を含む。ＣＰＵ８０４は、他の機能間で、プログラミング命令を解釈し、データを処理するように構成される。ネットワークスイッチチップ８０６はまた、「イーサネット（登録商標）スイッチチップ」または「スイッチ・オン・チップ（ｓｗｉｔｃｈ  ｏｎ‐ａ‐ｃｈｉｐ）」として呼ばれ、集積回路チップまたはマイクロチップ設計においてパケットスイッチングおよびフィルタリング機能を提供する。コネクタ８０８は、マザーボード８０２に周辺デバイスまたは追加的な基板またはカードを取外し可能に受け入れる能力を与える。幾つかの実施形態では、コネクタ８０８は、デバイス、例えばドーターボードまたは拡張ボードなどが、マザーボード８０２の回路に直接接続することを可能にする。マザーボード８０２はまた、多数の他の構成要素、例えば、限定されるものではないが、揮発性コンピュータ可読記憶媒体および／または不揮発性コンピュータ可読記憶媒体（それらの媒体の両方とも非一時的な媒体の例と考えられ得る）、ディスプレイプロセッサ、および／または追加的な周辺コネクタを含み得る。パケットスイッチデバイス３００はまた、サーバ、端末、ＩＰ電話、ネットワーク器具、または他のデバイスをパケットスイッチデバイス３００に接続するための１つまたは複数のハードウェアポートまたはコネクタで構成され得る。
【００７２】
ネットワークスイッチチップ８０６は、複数のポートを備えており、また、１つまたは複数のフィルタも備え得る。ポートは、それぞれ、半二重または全二重方式であり得る。各ポートは、ネットワークポート、器具ポート、トランスポートポート、またはループバックポートとして別個にあるいは組み合わせて構成され得る。ネットワークポートは、ネットワークへのおよび／またはネットワークから接続されるように構成される。器具ポートは、例えばパケットスニッファ、侵入検知システム、または同様のものなどのネットワーク器具へのおよび／または当該器具からの接続されるように構成される。トランスポートポートは、別のネットワークスイッチチップ、別のスイッチデバイス（機器）、または処理装置へのおよび／またはそれらからの接続されるように構成される。
【００７３】
幾つかの実施形態では、ネットワークスイッチデバイス３００は、シングルまたはデュアルポートループバックポートを構成するためにコンピュータ可読媒体上に格納された命令を含み得る。命令はＣＰＵ８０４上で実行され得る。各ループバックポートは、少なくとも１つずつ、ネットワーク、器具、またはトランスポートポートとして構成されるために利用可能なポートの数を減らす。
【００７４】
また、幾つかの実施形態では、ネットワークスイッチチップ８０６の各ポートは、基準に基づいてパケットを削除するかまたは転送する１つまたは複数のパケットフィルタと関連付けられ得る。
【００７５】
図８の例示された実施形態に示されるように、パケットスイッチデバイス３００は、マザーボード８０２にコネクタ８０８経由で取外し可能に接続されるよう構成されたドーターボード８１０を含み得る。ドーターボード８１０は、マザーボード８０２に並列して接続されるか、あるいは、図示したように、マザーボード８０２と同じ平面において接続され得る。並列構成では、ドーターボード８１０はまた、メザニンボードと呼ばれ得る。あるいは、ドーターボード８１０は、マザーボード８０２の平面に垂直に方向づけられてもよいし、あるいは、異なる方向付けで接続されてもよい。ドーターボード８１０は、パケット配信機能に加えて、他のパケット処理機能を提供する。ドーターボード８１０は、処理装置８１４およびメモリ８１６を有する。マザーボード８０２のように、ドーターボード８１０もまた、（マザーボード８０２に関して記述されたもののような）多数の他の構成要素も含み得る。処理装置８１４は、パケットを経路指定し処理すること、例えば本明細書に記載される重複パケット識別およびパケット重複排除をすることが可能な任意の集積回路であり得る。幾つかの実施形態では、ドーターボード８１０は、パケット重複排除を実行するための集積回路３８０を実装するために使用され得る。他の実施形態では、マザーボード８０２は、パケット重複排除を実行するための集積回路３８０を実装するために使用され得る。更なる実施形態では、マザーボード８０２とドーターボード８１０との両方が、パケット重複排除を実行するための集積回路３８０を実装するために使用され得る。
【００７６】
他の実施形態では、処理装置８１４およびメモリ８１６は、ブレードサーバの一部、マザーボード８０２の一部、またはネットワークスイッチチップにおけるモジュールの一部である。
【００７７】
図９は、幾つかの実施形態に係る図８のネットワークスイッチデバイス３００におけるパケットフローの例を論理的に例示する。場合によっては、パケットは、ネットワークスイッチチップ８０６上にいずれも位置する入口ポートから出口ポートまで経路指定され得る。ポート９０２ａがネットワークスイッチチップ８０６上のネットワークポートであり、ポート９０２ｂがネットワークスイッチチップ８０６上の器具ポートであり、ポート９０４ａおよび９０４ｂがネットワークスイッチチップ８０６上のトランスポートポートであり、ならびに、接続９１２ａおよび９１２ｂがネットワークスイッチチップ８０６と処理装置８１４との間の接続であることを想定する。さらに、パケットスイッチデバイス３００が、全パケットをネットワークポート９０２ａから器具ポート９０２ｂまで経路指定するように構成されることを想定する。ネットワークポート９０２ａで受信され入ってくるパケットは、ネットワークスイッチチップ８０６により出ていくためのトランスポートポート９０４ａまで経路指定される。パケットは接続９１２ａを通して処理装置８１４により受信される。他の実施形態では、入ってくるパケットは、トランスポートポート９０４ｂ経由で経路指定され、接続９１２ｂで受信される。パケットは、器具ポート９０２ｂから出ていくために接続９１２ａおよびトランスポートポート９０４ａを通してネットワークスイッチチップ８０６に戻すよう経路指定される。本明細書に記載されたパケット重複排除特徴は、ドーターボード８１０における（複数の）構成要素、マザーボード８０２における（複数の）構成要素、あるいはマザーボード８０２とドーターボード８１０との両方における構成要素により実行され得る。
【００７８】
パケットスイッチデバイス３００は前に記載された構成に限定されないことと、パケットスイッチデバイス３００は他の実施形態における異なる構成を有し得ることとは、留意されたい。例えば、他の実施形態では、デバイス３００はドーターボードを有さなくてもよい。そのような場合では、本明細書に記載されたパケット重複排除の特徴は、マザーボード８０２上に位置付けられたプロセッサまたは別の集積回路によって実行され得る。
【００７９】
図１０は、幾つかの実施形態に係るネットワーク環境１０００におけるネットワークスイッチデバイス３００のデプロイメントを図示する。インターネット１００４はルータ１００６ａ〜ｂおよびファイアウォール１０６８ａ〜ｂ経由で２つのスイッチ１０１０ａおよび１０１０ｂに結合される。スイッチ１０１０ａはサーバ１０１２ａ〜ｂおよびＩＰ電話１０１４ａ〜ｃに結合される。スイッチ１０１０ｂはサーバ１０１２ｃ〜ｅに結合される。スニッファ１０１６、ＩＤＳ１０１８およびフォレンジックレコーダ１０２０（集合的に、「非通過型器具」）はデバイス３００に結合される。図１０に示されるように、同じ非通過型器具は、今やデバイス３００を通してネットワーク環境１０００におけるどこででも情報にアクセスできるので、従来の構成（その構成では、ルータ１０６６ａとファイアウォール１０６８ａとの間に１つまたは複数の非通過型器具、ファイアウォール１０６８ａとスイッチ１０１０ａとの間に１つまたは複数の非通過型器具、ルータ１０６６ｂとファイアウォール１０６８ｂとの間、およびファイアウォール１０６８ｂとスイッチ１０１０ｂとの間に１つまたは複数の非通過型器具があり得る）と比較して、このデプロイメントでは、非通過型器具の数の減少がある。ユーザは、本明細書に記載された異なる実施形態に従うシステムの不定対不定（ａｎｙ‐ｔｏ‐ａｎｙ）、不定対多（ａｎｙ‐ｔｏ‐ｍａｎｙ）および多対一機能を用いて、いかなるトラフィックもいかなる器具または非通過型器具のグループまでにも経路を通す完全な柔軟性を有する。例えば、ＩＰ電話１０１４ａ〜ｃの全会話は、ＩＤＳ１０１８に送信されるように容易に構成され得る。また、特定のＩＰ電話１０１４ａ〜ｃ接続内のトラフィックは、一対多機能によりスニッファ１０１６、および侵入検知システム１０１８やフォレンジックレコーダ１０２０に同時に送信され得ることも可能である。本明細書に記載されたデバイス３００のパケット重複排除特徴は、デバイス３００が、任意のソースからデバイス３００に伝送された重複パケットを検知することを可能し、デバイス３００が重複パケットを削除することを可能にし、その結果、それらの重複パケットはデバイス３００から下流に伝送されない。
【００８０】
幾つかの実施形態では、デバイス３００を使用する場合、１つまたは複数の非通過型器具（例えばＩＤＳ、スニッファ、フォレンジックレコーダ等）は（複数の）器具ポートに接続されてもよく、また、１つまたは複数の通過型器具１４０ａ、１４０ｂ（例えば、ＩＰＳ）は他の（複数の）器具ポート（例えば、（複数の）インラインポート）に接続されてもよい。そのような構成は、（複数の）非通過型器具および（複数の）通過型器具がネットワークトラフィックを同時に監視することを可能にする。各非通過型器具はリスニングモードにあり（すなわち、当該器具は、２つのノード間で通信されることを意図されたパケットを受信し）、各通過型器具は通過モードにある（すなわち、当該器具は、２つのノード間で通信されることを意図されたパケットを受信し、それらのパケットを処理し、次いで、パケットを意図された受信ノードの方の下流へ渡す）。場合によっては、デバイス３００に接続されたＩＤＳおよびＩＰＳの両方を有することにより、デバイス３００は、ＩＤＳまたはＩＰＳが更なる脅威に気付くかどうかを比較することができ、および／または、ＩＰＳが何らかの脅威を見落とした場合に、ＩＤＳがその脅威を拾うことができるように、冗長保護がなされ得る。
【００８１】
「パケット」は本出願に記載される場合において、ノードから伝送された元のパケット、またはそのパケットのコピーのことを指し得ることが理解されるべきであることに留意されたい。
【００８２】
（例えば「第１のパケット」におけるような）用語「第１の」、および（例えば「第２のパケット」におけるような）用語「第２の」は、異なるものを指すために使用され、必ずしもそのものの順番を指すわけではないことに留意されたい。それ故に、用語「第１のパケット」は、「第１に」受信されたパケットのことを必ずしも指すわけではなく、「第２の」パケットとは異なる任意のパケットのことを指し得る。同様に、用語「第２のパケット」は、「第２の」順番で受信されるパケットのことを必ずしも指さすわけではなく、「第１の」パケットとは異なる任意のパケットのことを指し得る。
【００８３】
特定の実施形態が図示され記載されたが、それらの実施形態は、本発明を限定することを意図されないことが理解されるであろうし、種々の変更や修正が本発明の趣旨および範囲から逸脱することなくなされ得ることは当業者に明らかであろう。従って、明細書および図面は、限定的な意味ではなく例示的な意味にみなされる。本発明は、代案、修正、および同等物を包含することを意図され、それらの代案、修正、および同等物は、特許請求の範囲によって定義されるような本発明の趣旨および範囲内に含まれ得る。
【符号の説明】
【００８４】
３１２、３１４  ネットワークポート
３２８、３２９  器具ポート
３４２  筐体
３６０  第１のノード
３６２  第２のノード
３７０、３７２  下流のツール
３８０  集積回路
【図１】
0005883920.tif 000002
【図２】
0005883920.tif 000003
【図３】
0005883920.tif 000004
【図４】
0005883920.tif 000005
【図５】
0005883920.tif 000006
【図６Ａ】
0005883920.tif 000007
【図６Ｂ】
0005883920.tif 000008
【図７】
0005883920.tif 000009
【図８】
0005883920.tif 000010
【図９】
0005883920.tif 000011
【図１０】
0005883920.tif 000012