(57)【特許請求の範囲】
【請求項１】
複数のスイッチポートを有するネットワークスイッチのネットワークスイッチポート内で入来データパケットを評価する方法であって、
それぞれのデータフォーマットを識別するように構成された複数のテンプレートを記憶するステップを含み、各テンプレートは、対応する所定の値を前記入来データパケットの対応する選択されたバイトと比較するように構成された、少なくとも１つの最小項を有し、前記方法は、
前記選択されたバイトと前記選択されたバイトに対応する前記最小項とを前記選択されたバイトが前記ネットワークスイッチポートにより受信されると同時に比較するステップと、
前記最小項と前記ネットワークスイッチポートにより受信される前記データバイトとの比較に基づいて、前記入来データパケットを識別する比較結果を生成するステップとを含む、方法。
【請求項２】
前記同時に比較するステップは、
前記データバイトの第１のものに対応する前記最小項を最小項発生器にロードするステップと、
前記最小項発生器内にロードされた前記最小項と前記データバイトの前記第１のものとを並行して比較するステップと、
前記最小項発生器内にロードされた前記最小項に対する比較結果を評価コアに出力するステップとを含む、請求項１に記載の方法。
【請求項３】
前記同時に比較するステップは、前記データバイトの前記第１のものの次に続く、前記データバイトの第２のものに対応する前記最小項を前記最小項発生器にロードするステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記比較結果に基づいて、前記対応するフレームタグに基づいて前記入来データパケットを選択的に交換するように構成される切換構造に、フレームタグを出力するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記記憶するステップは、各最小項をメモリ内にテーブルエントリとして記憶するステップを含み、各テーブルエントリは、前記入来データパケット内の前記対応する選択されたバイトの位置に基づいて前記メモリ内に位置を有し、前記テーブルエントリは、前記対応する所定の値および比較オペランドを特定する最小項表現部分と、前記対応する最小項を用いる前記テンプレートを特定するテンプレート識別子フィールドとを含む、請求項１に記載の方法。
【請求項６】
前記生成するステップは、
前記最小項と前記入来データパケットの前記選択されたバイトとの前記比較の結果を一時的に記憶するステップと、
前記最小項の前記比較の前記結果に基づいて前記複数のテンプレートから少なくとも１つの符合するテンプレートを検出するステップと、
前記検出された少なくとも１つの符合するテンプレートに基づいて前記比較結果を生成するステップとを含む、請求項５に記載の方法。
【請求項７】
前記データバイトの前記第１のものは所定のフォーマットを有する或るパケットの前記データバイトの第１のものに対応し、前記同時に比較するステップは前記所定のフォーマットを有する前記パケットの始まりに対し、前記選択されたデータバイトを評価するステップを含む、請求項５に記載の方法。
【請求項８】
前記所定のフォーマットはインターネットプロトコル（ＩＰ）フォーマットである、請求項７に記載の方法。
【請求項９】
前記検出された少なくとも１つの符合するテンプレートに基づいて前記比較結果を生成する前記ステップは、
前記入来データパケットと比較された前記最小項の各々に対し、対応する方程式を識別するステップを含み、各方程式は前記テンプレートの選択された群に対する唯一の結果を特定し、前記ステップはさらに、
前記検出された少なくとも１つの符合するテンプレートを有する前記方程式により、前記比較結果を生成するステップを含む、請求項６に記載の方法。
【請求項１０】
複数のスイッチポートを有するネットワークスイッチのネットワークスイッチポート内で入来データパケットを評価する方法であって、
第１のバイトが前記ネットワークスイッチポートにより受信されると前記入来データパケットのバイトの前記第１のものと複数のテンプレートとを、バイトの前記第１のものと少なくとも１つの前記テンプレートに関連する第１の最小項とを比較することにより、同時に比較するステップを含み、各テンプレートは前記入来データパケット内で所定のフォーマットを識別するように構成され、前記方法は、
バイトの前記第１のものに続き、前記入来データパケットのバイトの第２のものと前記テンプレートとを、バイトの前記第２のものと少なくとも１つの前記テンプレートに関連する少なくとも第２の最小項とを比較することにより同時に比較するステップと、
前記複数のテンプレートに関してバイトの前記第１のものとバイトの前記第２のものとの前記比較から最小項の結果に基づいて比較結果を生成するステップとを含む、方法。
【請求項１１】
前記第１の最小項は前記テンプレートの第１の群と関連し、第３の最小項は、バイトの前記第１のものと比較するように構成され、前記テンプレートの第２の群と関連し、バイトの前記第１のものを同時に比較する前記ステップは、バイトの前記第１のものを前記第１の最小項および第３の最小項と同時に比較するステップを含む、請求項１０に記載の方法。
【請求項１２】
各テンプレートは前記入来データパケットのそれぞれのバイトを比較するために複数の最小項を有し、前記方法は、前記入来データパケットの前記それぞれのバイトの前記関連する位置に基づいて前記テンプレートの前記最小項を引続き比較するステップをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記生成するステップは、前記方程式の結果に割当てられた前記テンプレートに対する前記比較結果に基づいて、ネットワーク切換構造により行われるべき処置を特定する方程式の結果を生成するステップを含む、請求項１２に記載の方法。
【請求項１４】
複数のスイッチポートを有するネットワークスイッチのネットワークスイッチポート内で入来データパケットを評価するように構成されるネットワークスイッチポートフィルタであって、
最小項の値を記録するように構成される最小項メモリを含み、各最小項の値は前記入来データパケットの対応する選択されたバイトの位置に基づいて比較のために記憶され、最小項の値は、対応する比較動作を特定する表現部分と、前記対応する最小項を用いるテンプレートを特定するテンプレート特定子フィールドとを含み、前記スイッチポートフィルタは、
前記入来データパケットの受信されたバイトと前記受信されたバイトに対応する前記最小項とを同時に比較し、それぞれの最小項の比較結果を生成するように構成された最小項発生器と、
前記テンプレートに関して前記最小項の比較結果に基づいて前記入来データパケットを識別するフレームタグを生成するように構成された方程式のコアとを含む、ネットワークスイッチポートフィルタ。
【請求項１５】
第２層パケットのタイプを識別するように構成されたフレーム識別子をさらに含み、前記入来データパケットの前記選択されたバイトは第２層パケットの前記識別されたタイプに基づいて判定される、請求項１４に記載のフィルタ。
【請求項１６】
記憶された最小項の値の各々の前記位置は前記第２層パケット内のＩＰフレームの始まりに関連する、請求項１５に記載のフィルタ。
【請求項１７】
前記入来データパケット内で、前記ＩＰフレームの選択されたバイトに対応する前記最小項メモリから前記最小項をフェッチするために
構成される最小項コントローラをさらに含む、請求項１６に記載のフィルタ。
【請求項１８】
前記方程式のコアは、前記フレームタグを前記入来データパケットのワイヤ速度で、かつ前記入来データパケットの終わりの前に生成する、請求項１５に記載のフィルタ。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明は、サブネットワーク間でデータパケットを交換するように構成される非閉塞網スイッチ内でのデータパケットの第２層および第３層交換（ｓｗｉｔｃｈｉｎｇ）に関する。
【０００２】
【発明の背景】
ローカルエリアネットワークはネットワークケーブルまたは他の媒体を用いてネットワーク上のステーションを接続する。各ローカルエリアネットワークアーキテクチャは、ネットワークインターフェイス装置が各ネットワークノードでネットワーク媒体にアクセスできるようにするメディアアクセス制御（ＭＡＣ）を用いる。
【０００３】
イーサネット（Ｒ）プロトコルＩＥＥＥ８０２．３が発達して、データパケットを伝送するための半２重のメディアアクセスメカニズムおよび全２重のメディアアクセスメカニズムを特定するようになった。全２重のメディアアクセスメカニズムは、２つのネットワーク要素間、たとえばネットワークノードとスイッチされたハブとの間で双方向のポイントツーポイントの通信リンクをもたらす。
【０００４】
スイッチされたローカルエリアネットワークには、より高速の接続性、より柔軟性のあるスイッチング性能、およびより複雑なネットワークアーキテクチャに対処する能力に対する需要が高まっている。たとえば、ＵＳ−Ａ−５  ９５３  ３３５は、異なるネットワークノード間で第２層タイプのイーサネット（Ｒ）（ＩＥＥＥ８０２．３）データパケットを交換するように構成されるネットワークスイッチを開示しており、受取られたデータパケットは、（ルータを介して）別のサブネットワークまたはステーションの所定の群を特定するＩＥＥＥ８０２．１ｑプロトコルに従った、ＶＬＡＮ（仮想ＬＡＮ）タグ付きフレームを含むことがある。スイッチングは第２層レベルで起こるため、サブネットワーク間でデータパケットを転送するのに通常、ルータが必要とされる。
ネットワーク周辺でデータパケットの伝送を容易にする方法は衆知のものである。たとえば、ＵＳ−Ａ−５  ５４６  ３８９は、データパケットに添付されるラベルを用い、経路指定された情報を迅速に判定できることを説明する。ＷＯ−Ａ−９９  ５３６４８はデータパケット内のヘッダの情報をハッシュし、スイッチングの情報を示すこのようなタグが記憶されるメモリに対してインデックスを形成する。ＵＳ  Ａ−５  ８０２  ０５４はマスキングテンプレートを用いてハッシュされるべき入来データパケットからのバイトを選択するよう用いられる、アトミックネットワークスイッチにおいて同様のシステムを用いる。
ＷＯ−Ａ−９８  ３５４８０は、ネットワークノードにより受取られるデータパケットのタイプを判定し、データパケットに関連する情報を含むデータ構造を添付し、ノードでの処理を容易にするためのメディアアクセスコントロールミクロ−ＲＩＳＣストリームプロセッサを説明する。この書類で開示される方法は、添付の請求項１のプリアンブルの特徴を含む。
【０００５】
ネットワークスイッチのスイッチング性能を高め、第３層（たとえばインターネットプロトコル）の処理を含むための努力は、重大な欠点を有することがある。なぜなら、現在の第２層スイッチは好ましくは非閉塞モードにおいて動作するように構成され、データパケットは、データパケットが受取られる速度と同じ速度でスイッチから出力され得るからである。より高速のスイッチが、１００Ｍｂｐｓまたはギガビットのネットワーク等のより高速なネットワークに対し、第２層スイッチングおよび第３層スイッチングのどちらの能力も確実に提供できるよう、新たな設計が必要とされる。
【０００６】
しかし、このような設計要件はネットワークスイッチの非閉塞の特徴を失わせる危険がある。なぜなら、ネットワークスイッチの交換構造にとってワイヤ速度（すなわち、ネットワークデータ速度）で第３層の処理を行なうことが益々難しくなっているからである。
【０００７】
【発明の概要】
ネットワークスイッチが、１００Ｍｂｐｓおよびギガビットのリンクに対し、データパケットを閉塞することなく第２層スイッチングおよび第３層スイッチングの能力を提供できる構成に対するニーズがある。
【０００８】
さらに、ネットワークスイッチが、第２層スイッチングおよび第３層スイッチングの能力を、そうでなければ交換されたデータパケットの待ち時間に影響を及ぼすおそれのある、ネットワークスイッチ内の最小のバッファリングで提供することが可能な構成に対するニーズがある。
【０００９】
さらに、第３層データパケットの異なるタイプの区別をするようネットワークスイッチを容易にプログラム可能として、サービス品質（ＱｏＳ）の達成が可能な構成に対するニーズがある。
【００１０】
さらに、ネットワークスイッチポートが入来データパケットを瞬時に評価し、第３層またはより上位のプロトコルを判定し、関連する切換構造に、検出されたプロトコルに従って入来データパケットを処理するのに充分な時間を提供することができる構成に対するニーズがある。
【００１１】
これらのおよび他のニーズは、ネットワークスイッチポートが入来データパケットを瞬時のベースで評価するように構成されるフィルタを含む、この発明により達成される。このフィルタは、データパケットの入来データストリームとそれぞれのプロトコルを認識するように構成される多数のテンプレートとを同時に比較する。各テンプレートは複数の最小項（ｍｉｎ  ｔｅｒｍ）から成り、各最小項は入来データパケットの選択されたデータバイトとの所定の比較動作を特定する。フィルタはデータバイトの順序に基づいて最小項にアクセスするが、それは第１のデータバイトの比較に用いられる最小項が第１のデータバイトが受取られると第１のデータバイトとの比較のために最初にアクセスされ、第２のデータバイトの比較に用いられる最小項が第２のデータバイトが受取られると第２のデータバイトとの比較のために次にアクセスされるように、行われる。したがって、フィルタは、選択されたバイトがネットワークスイッチポートにより受取られると、入来データパケットの選択されたバイトに対応する最小項を、同時に比較する。最小項と入来データストリームの選択されたデータバイトとの比較結果は、フィルタ内の方程式のコア（ｃｏｒｅ）により評価され、それはテンプレートに対する比較結果を判定し、タグをスイッチングコアに出力し、スイッチングコアに、受取られたデータパケットをどのように処理すべきかについての情報を提供する。したがって、スイッチングコアは高速データネットワークにおいて非閉塞で、受取られたデータパケットの第２層または第３層のスイッチングを行なうのに充分な時間を有する。
【００１２】
この発明の１つの局面は、ネットワークスイッチポートで入来データパケットを評価する方法を提供する。この方法は、それぞれのデータフォーマットを認識するように構成された複数のテンプレートを記憶するステップを含み、各テンプレートは、対応する所定の値と入来データパケットの対応する選択されたバイトとを比較するように構成される、少なくとも１つの最小項を有する。この方法はさらに、選択されたバイトと選択されたバイトに対応する最小項とを、選択されたバイトがネットワークスイッチポートにより受取られると同時に比較するステップと、最小項と、ネットワークスイッチポートにより受取られるデータバイトとの比較に基づいて入来データパケットを識別する比較結果を生成するステップとを含む。それぞれのデータフォーマットを識別するように構成されるテンプレートを記憶することにより、ユーザ定義のデータフォーマットを識別するためにネットワークスイッチポートを容易にプログラムできる。さらに、選択されたバイトがネットワークスイッチポートから受取られると同時に、選択されるバイトに対応する最小項を比較することにより、確実に入来データパケットをリアルタイムで評価できるようになり、データパケットが受取られると、ユーザ定義のデータフォーマットに対して入来データパケットの識別が可能になる。
【００１３】
この発明の別の局面は、ネットワークスイッチポートで入来データパケットを評価する方法を提供する。この方法は、第１のバイトがネットワークスイッチポートにより受取られると同時に、入来データパケットの第１のバイトと複数のテンプレートとを、テンプレートの少なくとも１つと関連する少なくとも第１の最小項と比較することにより、比較するステップを含み、各テンプレートは入来データパケット内の所定のフォーマットを識別するように構成される。この方法はさらに、第１のバイトに続き、入来データパケットの第２のバイトとテンプレートとを、第２のバイトを少なくともテンプレートの１つと関連する少なくとも第２の最小項と比較することにより、同時に比較するステップと、複数のテンプレートに対し第１のバイトと第２のバイトとの比較からの最小項の結果に基づいて比較結果を生成するステップとを含む。第１のバイトと少なくとも第１の最小項とを同時に比較し、さらに第１のバイトに続く第２のバイトと少なくとも第２の最小項とを同時に比較することにより、関連するデータバイトの受取られる順序に基づき、確実に最小項の順次的な処理が行われる。したがって、多数のテンプレートの処理は、入来データストリームに基づき最小項を順序付けることにより、同時におよびリアルタイムに行われ得る。したがって、入来データパケットはネットワークスイッチポートでリアルタイムに評価され、ネットワークスイッチポートでの待ち時間を最小化することができる。
【００１４】
この発明のさらに別の局面は、入来データパケットを評価するように構成されたネットワークスイッチポートフィルタを提供する。ネットワークスイッチポートフィルタは最小項の値を記憶するように構成された最小項メモリを含む。各最小項の値は、入来データパケットの対応する選択されたバイトに基づき、比較のため最小項メモリに記憶される。最小項の値はさらに、対応する比較動作を特定する表現部分と、対応する最小項を用いるテンプレートを特定する識別子フィールドとを含む。ネットワークスイッチポートフィルタはさらに、入来データパケットの受取られたバイトと、受取られたバイトに対応する最小項とを同時に比較し、それぞれの最小項の比較結果を生成させるように構成された最小項発生器と、テンプレートに対する最小項の比較結果に基づいて入来データパケットを識別するフレームタグを生成するように構成された方程式のコアとを含む。各最小項の値は入来データパケットの対応する選択されたバイトに基いた位置に記憶されるので、各最小項は最小項メモリからのアクセスが可能で、ネットワークスイッチポートにより受取られる選択されたバイトの順序に基づいて選択されたバイトと比較することが可能である。したがって、最小項発生器は、入来データパケットの所与の受取られたバイトと、関連するすべての最小項とを同時に比較することができ、入来データパケットをリアルタイムで評価することができる。
【００１５】
この発明のさらなる利点および新規の特徴のある部分は以下の説明に述べられるであろうし、ある部分は以下を考察すると当業者には明らかになるか、またはこの発明の実施により認識されるであろう。この発明の利点は特に添付の請求項に示された手段および組合せにより認識され、達成されるであろう。
【００１６】
添付の図の参照では、同じ参照番号を有する構成要素は、すべて同じ要素または構成要素を示す。
【００１７】
【この発明を実施するための最良の態様】
図１はイーサネット（Ｒ）（ＩＥＥＥ８０２．３）ネットワーク等のパケット交換ネットワーク１０を示すブロック図である。パケット交換ネットワークは、ネットワークステーション１４間でのデータパケットの通信を可能にする、集積化された（すなわちシングルチップの）マルチポートスイッチ１２を含む。各ネットワークステーション１４、たとえばクライアントのワークステーションは通常、ＩＥＥＥ８０２．３プロトコルに従い、１０Ｍｂｐｓまたは１００Ｍｂｐｓでデータパケットの送信および受信をするように構成される。集積マルチポートスイッチ１２の各々はギガビットイーサネット（Ｒ）リンク１６により相互接続され、サブネットワーク１８ａ、１８ｂ、および１８ｃ間でのデータパケットの転送を可能にする。したがって、各サブネットワークはスイッチ１２と、ネットワークステーション１４の関連する群とを含む。
【００１８】
各スイッチ１２は、メディアアクセス制御（ＭＡＣ）モジュール２２とパケット分類モジュール２４とを含むスイッチポート２０を含む。ＭＡＣモジュール２０はＩＥＥＥ８０２．３ｕプロトコル従って１０／１００Ｍｂｐｓ物理層（ＰＨＹ）トランシーバ（図示せず）を介し、データパケットを関連するネットワークステーション１４に送受信する。各スイッチ１２はさらに、受取られるデータパケットに対しフレーム転送決定を行なうように構成された切換構造２５を含む。特に、切換構造２５は送信元アドレス、宛先アドレス、およびイーサネット（Ｒ）（ＩＥＥＥ８０２．３）ヘッダ内のＶＬＡＮ情報に基づき、第２層のスイッチング決定を行なうように構成される。スイッチ構造２５はさらに、イーサネット（Ｒ）パケット内のＩＰデータパケットの評価に基づき、選択的に第３層のスイッチング決定を行なうように構成される。
【００１９】
図１に示されるように、各スイッチ１２は関連するホストＣＰＵ２６と、バッファメモリ２８、たとえばＳＳＲＡＭとを有する。ホストＣＰＵ２６は、切換構造２５のプログラミングを含む、対応するスイッチ１２のすべての動作を制御する。バッファメモリ２８は対応するスイッチ１２によって用いられてデータフレームを記憶し、一方、切換構造２５は受取られたデータパケットに対し転送決定の処理を行なう。
【００２０】
上述のとおり、切換構造２５は第２層スイッチング決定および第３層スイッチング決定を行なうように構成される。第３層スイッチング決定の有用性は、サブネットワーク１８ａ内のエンドステーション１４がサブネットワーク１８ｂ、１８ｃ、またはその両方における選択されたネットワークステーションに、ｅメールのメッセージを送信したいとき、特に有効になるかもしれない。第２層スイッチング決定しか利用できなければ、スイッチ１２ａの切換構造２５は特定の宛先アドレス情報なしにｅメールのメッセージをスイッチ１２ｂおよびスイッチ１２ｃに送り、スイッチ１２ｂおよびスイッチ１２ｃのすべてのポートを溢れさせる結果になるだろう。そうでなければ、スイッチ１２ａの切換構造２５はｅメールのメッセージをルータ（図示せず）に送る必要があり、さらなる遅れを招くだろう。切換構造２５による第３層のスイッチング決定を用いることにより、スイッチ構造２５は先行転送決定を含めてパケットをどのように扱うかについて、さらにビデオまたは音声等の待ち時間に敏感な適用に対し，或るパケットを高いプライオリティのパケットと考えるべきかどうかに至るまで、インテリジェントな決定を行なうことができる。切換構造２５による第３層のスイッチング決定を用いることにより、さらに、スイッチ１２ａのホストＣＰＵ２６は、スイッチ１２ｂのＩＰアドレスに対応するＩＰアドレスを有するメッセージを送ることにより、遠隔で他のスイッチ、たとえばスイッチ１２ｂをプログラミングすることができる。スイッチ１２ｂは、スイッチ１２ｂへのアドレスをつけられたメッセージの検出に応答して、対応するホストＣＰＵ２６にメッセージを転送し、スイッチ１２ｂのプログラミングを行うことができる。
【００２１】
図２は、ＩＰパケット３２をペイロードデータとして搬送するイーサネット（Ｒ）（ＩＥＥＥ８０２．３）パケット３０を示す図である。特に、イーサネット（Ｒ）パケット３０はスタートフレームデリミタ（ＳＦＤ）３４、イーサネット（Ｒ）ヘッダ３６、ＩＰパケット３２、およびサイクリックリダンダンシチェック（ＣＲＣ）またはフレームチェックシーケンス（ＦＣＳ）フィールド３８を含む。したがって、第３層のスイッチング決定のように構成される切換構造２５は、受取られたイーサネット（Ｒ）フレーム３０内でＩＰパケット３２の処理を迅速に行ない、スイッチ内のフレームの閉塞を避けることができなければならない。
【００２２】
図３は、入来データパケットに対して行なわれる可能性のある、第３層の処理のタイプの例を示すフロー図である。図３のフロー図は従来、ソフトウェアで実現され、入来データパケットがハイパテキストトランスポートプロトコル（ＨＴＴＰ）パケットであるのかをステップ５０で、ＳＮＭＰパケットであるのかをステップ５２で、または高いプライオリティのパケットであるのかをステップ５４でチェックすることを含むだろう。その後、ステップ５６、５７、５８、または６０においてパケットを識別する適切なタグが割当てられるだろう。
【００２３】
しかし、図３の構成は、実用上の観点から、１００Ｍｂｐｓまたはギガビットのネットワークに対し非閉塞のスイッチを提供するように、ハードウェアで実現することはできない。特に、図３の決定プロセスの順次的な性質により、入来データパケットに対して過度の待ち時間を生ずる結果になるだろう。
【００２４】
開示された実施例によれば、図１のパケット分類モジュール２４は、入来データストリームと入来データストリームのデータフォーマットを識別するテンプレートとの多数の同時比較を行なうように構成される。特に、ホストプロセッサ２６のユーザは、或るＩＰプロトコルを有するデータパケットが切換構造２５によりいかに扱われるべきかを規定する方針を特定するであろう。このような方針は、切換構造２５内に、各対応するＩＰプロトコルタイプに対するフレーム転送決定の組をローディングすることによって実現される。したがって、切換構造２５は、ＨＴＴＰパケットに対し１組のフレーム転送命令を、ＳＮＭＰパケットに対しフレーム転送命令の別の組を、高いプライオリティのパケット（たとえばビデオ、音声等）に対しフレーム転送命令の別の組を含む可能性がある。
【００２５】
図４は、この発明の実施例に従ったパケット分類モジュール２４を示すブロック図である。図４に示されるように、ネットワークスイッチポート２０はＭＡＣ２２、受信ＦＩＦＯバッファ２７、ヘッダモディファイヤ２９、およびパケット分類モジュール２４を含む。パケット分類モジュール２４はネットワークスイッチポートフィルタとも呼ばれ、ネットワークスイッチポート２０で入来データパケットを識別（すなわち評価）し、さらに受取ったデータパケットのタイプに基づき、データパケット上に行なわれるべき処置を特定するタグを切換構造２５に与えるように構成される。特に、パケット分類モジュール２４は、入来データパケットと、それぞれのデータフォーマットを識別するように構成される複数のテンプレートとを、同時に比較する。パケット分類モジュール２４は、入来データパケットと複数のテンプレートとの比較に基づき、切換構造２５に与えられるべきタグを特定する、実行されるべき方程式を識別する。
【００２６】
特に、パケット分類モジュール２４は、複数のテンプレートから少なくとも１つの符合したテンプレートを検出することにより、入来データパケットを識別する比較結果を生成する。その後、パケット分類モジュール２４は、方程式のうちどれが符合したテンプレートを含むかを識別し、方程式によって特定されたタグを生成する。
【００２７】
図５Ａおよび図５Ｂは、パケット分類モジュール２４による、方程式の２つのテンプレートの同時処理を示す図である。図５Ａは方程式のパケット分類モジュール２４による論理評価を示す。
【００２８】
Ｅｑ１＝Ｍ１*Ｍ２*Ｍ３*Ｍ４*（Ｍ５＋Ｍ６＋Ｍ７＋Ｍ８）
図５Ｂは方程式Ｅｑ１が実際に最小項メモリ７０内にどのように記憶されるかを示す。方程式Ｅｑ１は４つのテンプレートの６２ａ、６２ｂ、６２ｃ、および６２ｄを含む。テンプレート６２ａは最小項Ｍ１、Ｍ２、Ｍ３、Ｍ４、およびＭ５を含む。テンプレート６２ｂは最小項Ｍ１、Ｍ２、Ｍ３、Ｍ４、およびＭ６を含む。テンプレート６２ｃは最小項Ｍ１、Ｍ２、Ｍ３、Ｍ４、およびＭ７を含む。テンプレート６２ｄは最小項Ｍ１、Ｍ２、Ｍ３、Ｍ４、およびＭ８を含む。各テンプレート６２は、ＩＰデータパケット３２のヘッダに基づいて認識可能な特定のＩＰデータフォーマットに対応する。たとえば、テンプレート６２ａおよび６２ｃはＨＴＴＰパケットを識別するように構成されるとよく、テンプレート６２ｂおよび６２ｄはＳＮＭＰパケットを識別するように構成されるとよい。特に、ＨＴＴＰパケットの識別は、それがＩＰｖ４フォーマット内にあり、ＩＰ内の生存時間フィールドが１より大きく、ＩＰヘッダ内のプロトコルフィールドがＴＣＰであり、ヘッダチェックサムが正しく、発信元ＴＣＰポートが８０であるか宛先ＴＣＰポートが８０であると行なわれる。ＳＮＭＰパケットの識別は、それがＩＰｖ４フォーマット内にあり、ＩＰ内の生存時間フィールドが１より大きく、ＩＰヘッダ内のプロトコルフィールドがＴＣＰであり、ヘッダチェックサムが正しく、発信元ＴＣＰポートが２５であるか宛先ＴＣＰポートが２５であると行なわれる。
【００２９】
したがって、以下の最小項は上述の基準のすべてを表わすよう確立され得る。
Ｍ１＝パケットはＩＰｖ４フォーマット内にある
Ｍ２＝ＩＰ内の生存時間フィールドは１より大きい
Ｍ３＝ＩＰヘッダ内のプロトコルフィールドはＴＣＰである
Ｍ４＝ヘッダチェックサムは正しい
Ｍ５＝ソースＴＣＰポートは８０である
Ｍ６＝宛先ＴＣＰポートは８０である
Ｍ７＝ソースＴＣＰポートは２５である
Ｍ８＝宛先ＴＣＰポートは２５である
したがって、テンプレート６２ａおよび６２ｃはＨＴＴＰパケットを識別し、テンプレート６２ｂおよび６２ｄはＳＮＭＰパケットを識別する。したがって、方程式１（Ｅｑ１）は、テンプレート６２ａ、６２ｂ、６２ｃ、または６２ｄのいずれかが真であると、特定の結果（たとえば、特定された値を有するタグ）が切換構造２５に出力されるべきであると特定する。
【００３０】
さらに、最小項Ｍ１からＭ８は、関連するテンプレート６２ａおよび／または６２ｂ内に、入来データストリーム内でデータバイトの関連位置に対応する所定の順序で配置される。図６に示されるように、最小項Ｍ１はＩＰパケット３２の第１のバイト（Ｂ１）と比較されように構成され、最小項Ｍ２はＢ１に続くＩＰパケット３２の後のバイト（Ｂ２）と比較されるように構成され、最小項Ｍ３はＢ２に続く後のバイト（Ｂ３）と比較されるように構成され、以下同様である。したがって、入来データストリーム内のデータバイトの関連位置に基づいた順序で最小項を有するテンプレート６２を用いることにより、入来データストリームと最小項との多数の同時比較を行なうことができる。したがって、入来データパケットは多数のテンプレートと比較され、入来データパケットのデータフォーマットに加え、切換構造２５により、どのような処置をとる必要があるかを判定することができる。
【００３１】
図４は図１のパケット分類器２４の詳細を示すブロック図である。図４に示されるように、パケット分類器２４はネットワークスイッチポートフィルタとも呼ばれ、図７に示され以下で説明されるように、最小項の値（たとえばＭ１、Ｍ２等）を記憶するための最小項メモリ７０を含む。パケット分類器２４はさらに、受取られた第２層のフレームのタイプを識別するように構成されるフレーム識別子７２を含む。特に、受取られた第２層のフレームのタイプ（たとえばイーサネット（Ｒ）、ＩＥＥＥ８０２〜３等）を識別することにより、第２層パケット３０内でＩＰパケット３２の開始位置６４を識別することができる。パケット分類器２４はさらに、最小項コントローラ７４、最小項発生器７６、方程式のコア７８、および評価結果メモリ８０を含む。プロセッサインターフェイスモジュール（ｐｉ＿ｍｏｄ）８２は生成した最小項をホストＣＰＵ２６から最小項メモリ７０へ転送するために用いられる。
【００３２】
最小項コントローラ７４は、最小項をＩＰフレーム３２の選択されたバイトに対応する最小項メモリ７０からフェッチするように構成される。最小項コントローラ７４はさらに、第２層のフレームのタイプを特定するフレーム識別子７２からのフレーム型（ｆｒｍ＿ｔｙｐｅ）信号を受取ることに応答して、開始ポイント６４の実際のバイトの位置（ｂｙｔｅ＿ｌｏｃａｔｉｏｎ）を特定するように構成される位置コンバータを含む。したがって、最小項コントローラ７４は、ＩＰパケットの始まりを検出することに応答し、ＩＰパケット３２の第１のバイト（Ｂ１）と比較されるべきすべての最小項、たとえば、図６の方程式のＥｑ１、Ｅｑ２、およびＥｑ３に対する最小項のＭ１、Ｍ９、およびＭ１４をフェッチする。その後、最小項コントローラ７４は最小項の値（Ｍ＿ＳＴＲＵ  ＩＮＦＯ）を最小項発生器７６および方程式のコア７８に転送する。
【００３３】
最小項発生器７６は最小項コントローラによりフェッチされた最小項と入来データストリームの選択されたバイトとの実際の最小項の比較を行なう。たとえば、最小項発生器７６は、図６において、入来データバイトＢ１と最小項Ｍ１、Ｍ９、およびＭ１４とを同時に比較し、さらに最小項比較結果（ｍｔ＿ｒｅｓｕｌｔ）を方程式のコア７８に与える。次の比較サイクルの間に、最小項発生器７６は入来データバイトＢ２と最小項Ｍ２、Ｍ１０、およびＭ１５とを同時に比較する。開示された実施例によれば、最小項発生器は入来データストリームを最大で８つまでの最小項と同時に比較するように構成される。
【００３４】
方程式のコア７８は関連するテンプレート６２に対し、最小項発生器７６から受取られた最小項比較結果に基づきフレームタグを生成するように構成される。たとえば、方程式のコア７８は、図５Ａおよび図５Ｂで示されるように、結果が最小項発生器から供給されると順次的に最小項の結果を評価することにより、方程式１を評価する。たとえば、最小項のＭ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５、およびＭ６の各々の比較が、図７に関して以下に説明されるように、結果として真の条件になると、終端は方程式１に符合し、方程式のコア７８は方程式１に対し特定される条件に対応するタグを生成する。フレームタグは入来データパケットの性質に加え、切換構造２５により行なわれる必要のある処置を識別する。
【００３５】
図７は最小項メモリ７０内の最小項構造のデータフォーマットを示す図である。開示された実施例によれば、最小項は比較されるべきデータバイトの関連位置に対応する順序で最小項メモリ７０内に記憶される。したがって、第１のデータバイトと比較されるべきすべての最小項は、最小項メモリの第１の部分内にすべて記憶され、その後第２のデータバイトと比較されるべき最小項が続き、以下同様である。
【００３６】
代わりに、最小項はＩＰヘッダ内の関連情報に加え、比較されるべきデータバイトの関連位置に基づく順序で記憶されてもよい。したがって、最小項は発信元ＩＰアドレス、宛先ＩＰアドレス、および発信元を提供するデータバイトのシーケンスを発信元および宛先ポートと比較するための順序で記憶されるとよい。この場合、ＩＰフレームの始まりにある関連性のないデータバイトは、最小項メモリ７０の始まりに記憶される関連最小項を有さず、最小項メモリ７０の有効性をさらに高めるだろう。
【００３７】
各テーブルエントリ９０は最小項部分と評価部分とを含む。最小項部分はマスクフィールド（ＭＡＳＫ）９４と、期待データフィールド（ＥＸＰ＿ＤＡＴＡ）９６と、オペレータフィールド（ＯＰＥＲＡＴＯＲ）９８とを含む。最小項メモリ７０内のテーブルエントリ９０の位置に基づき、最小項コントローラ７４はＩＰパケットの始まり６４に関し、ＩＰパケット３２のどのバイトを対応する最小項と比較する必要があるのかを判定することができる。マスクフィールド９４は比較を行う際に最小項発生器７６により用いられるマスクである。マスクが１にセットされたビットを有すると、値が比較され、マスク値がフィールド内に０を有すると、比較はなされない（ｄｏｎ’ｔ  ｃａｒｅ）。期待データフィールド９６はＩＰパケット３２の関連するデータバイトと比較されるべき期待データを特定する。オペレータフィールド９８は最小項発生器により行われるべき比較のタイプ、たとえば、未満、以下、等しい、より大きい、以上、および等しくない、を特定する。
【００３８】
評価部分はブランチ部分１００、最小項の部分の比較が真である場合に対する応答部分（ＲＩＮＰ１）１０２、最小項の部分の比較が偽である場合に対する第２の応答部分（ＲＩＮＰ０）１０６、および方程式識別子１１０を含む。ブランチ部分１００は方程式内のＯＲ項の順序を特定する。たとえば、最小項Ｍ１は図５Ａおよび図５Ｂならびに図６に示されるように、ブランチの部分が００００１１１１にセットされ、方程式識別子フィールド１１０内で特定される方程式の最初の４つのブランチが対応する最小項を含むべきであることを示すだろう。ブランチの部分に対し８つのビットを用いるのは、いかなる所与の方程式にも最大８つのブランチがあると仮定したものである。
【００３９】
応答部分１０２は、比較されるデータバイトに対し、最小項部分が真であると評価されると行われるべき動作を特定する。特に、終了ビット（ＦＩＮ）は、方程式の結果が判定され、最小項の結果が真であると１にセットされる。初期に戻る（ＢＩＮＩＴ）は、最小項の結果が真であると評価過程が初期状態（init）に戻るべきときに、１にセットされる。たとえば、最小項Ｍ１の場合、ＲＩＮＰ１のＦＩＮビットおよびＢＩＮＩＴビットは０にセットされる。なぜなら、最小項の結果が真ならば、さらに比較しなければならないからである。最小項Ｍ５、Ｍ６、Ｍ７、およびＭ８の場合、ＲＩＮＰ１のＦＩＮビットは１に設定される。なぜなら、「真の」結果の比較結果は図５Ａおよび図５Ｂに示されるように、結果的に評価の終了になるからである。
【００４０】
応答部分１０６は、最小項の部分が比較されるデータバイトに関し偽と評価されると、行われるべき動作を特定する。特に、終了ビット（ＦＩＮ）は方程式の結果が判定され、最小項の結果が偽であると、１にセットされる。初期に戻る（ＢＩＮＩＴ）は、最小項の結果が偽であると評価プロセスが初期状態（init）に戻るべきときに、１にセットされる。たとえば、最小項Ｍ１の場合、図５Ａおよび図５Ｂに示されるように、最小項の結果Ｍ１が偽であると、方程式がＩＮＩＴ状態に戻るように、ＦＩＮビットは０にセットされ、ＲＩＮＰ１のＢＩＮＩＴビットは１にセットされる。
【００４１】
方程式識別子フィールド１１０は最小項が対応する方程式（または、方程式内に１つしかテンプレートがない場合はテンプレート）を識別する。
【００４２】
したがって、方程式のコア７８は特定された方程式の中に、入来データストリームと符合するテンプレート６２を有するものがあるかどうかを判定する。入来データストリームと多数のテンプレート６２との多数の同時比較に基づき、方程式のコア７８は符合する方程式を識別し、符合した方程式に対応する適切なタグを生成して、これを切換構造２５に与えることができる。所望ならばコア７８はさらに、ヘッダモディファイア２９にコマンドを出力することにより、スイッチにデータを転送する前に第２層のヘッダ、第３層のヘッダ、または両方のヘッダを変更する。
【００４３】
開示された実施例によれば、ネットワークスイッチポートは、データパケットの入来データストリームと対応するプロトコルを識別するように構成される多数のテンプレートとの多数の同時比較を行なうことができるフィルタを含む。パケット分類モジュール２４はＩＰフレーム３２のいかなるバイトも処理できるので、パケット分類モジュール２４はＩＰパケット３２内の第３層プロトコルから最大第７層プロトコルまでのすべてのヘッダの情報を解釈することができる。さらに、多数の同時比較により、ネットワークスイッチ１２はネットワークスイッチ内を閉塞することなく１００Ｍｂｐｓおよびギガビットのネットワークに対し第３層のスイッチングを行なうことができる。最後に、データが受取られる順序で多数の同時比較を行うことにより、プログラマブル可能論理アレイ（ＰＬＡ）等の代わりのスキームが処理を開始する前に全部のヘッダの受取りを要求するのとは対照的に、リアルタイムでの比較を行うことが可能になる。
【００４４】
この発明は、現在最も慣用的に好ましい実施例と考えられるものと共に記載されてきたが、この発明が開示された実施例に限定されるものではなく、反対に、添付の請求項の領域内に含まれるさまざまな変更および同等の構成をカバーするよう意図されることが理解されるべきである。
【図面の簡単な説明】
【図１】  この発明の好ましい実施例に従い、それぞれのサブネットワーク間でデータパケットの交換を行うための多数のネットワークスイッチを含む、パケット交換網のブロック図である。
【図２】  第３層インターネットプロトコル（ＩＰ）パケットを搬送する、従来の第２層イーサネット（Ｒ）タイプのデータパケットを示す図である。
【図３】  ＩＰパケットを評価する従来の（先行技術の）方法を示すフロー図である。
【図４】  この発明の実施例に従い、ネットワークスイッチポートフィルタを含む、図１のネットワークスイッチポートを示すブロック図である。
【図５Ａ】  図４の最小項発生器による方程式の４つのテンプレートの同時処理を示す図である。
【図５Ｂ】  図４の最小項発生器による方程式の４つのテンプレートの同時処理を示す図である。
【図６】  図４の最小項発生器による最小項の同時処理をさらに詳細に示す図である。
【図７】  この発明の実施例に従って、図４の最小項メモリ内の最小項のテーブルエントリを示す図である。
【図１】
0004732654.tif 000002
【図２】
0004732654.tif 000003
【図３】
0004732654.tif 000004
【図４】
0004732654.tif 000005
【図５Ａ】
0004732654.tif 000006
【図５Ｂ】
0004732654.tif 000007
【図６】
0004732654.tif 000008
【図７】
0004732654.tif 000009