(57)【特許請求の範囲】
【請求項１】
統合ネットワークスイッチにおける方法であって、
受信したレイヤ２データパケットから予め規定されたネットワークアプリケーションに対するアプリケーション状態を判断するステップと、
判断したアプリケーション状態に基づいて、受信したレイヤ２データパケットのソースまたはレイヤ２データパケットのデスティネーションの少なくとも１つを指定するネットワークスイッチアドレステーブルからアドレスエントリを選択的に削除するステップと、
予め規定されたネットワークアプリケーションのそれぞれの利用可能なアプリケーション状態からアプリケーション状態を識別するよう構成された複数のテンプレートを、受信レイヤ２データパケットを受信したネットワークスイッチポート内にストアするステップとを含み、各テンプレートは、前記複数の利用可能なアプリケーション状態のうちの対応する１つの識別を可能にする、予め規定された１つ以上の一連のデータパターンを有しており、
前記ストアするステップは、前記ネットワークスイッチポートが、受信したレイヤ２データパケットからの前記複数の利用可能なアプリケーション状態のうちの最初の１つを識別することに応答して、前記複数のテンプレートをストアするステップを含み、
前記方法は、
利用可能なアプリケーション状態の１つの検出によって判断されかつこれに応答して開始されるアプリケーション特有エイジング間隔の後に、アプリケーション特有エイジング間隔の間の判断されたアドレスエントリのインアクティビティに基づいて、アドレスエントリをネットワークスイッチアドレステーブルから削除するステップをさらに含む、方法。
【請求項２】
前記判断するステップは、前記受信したレイヤ２データパケットを受信したネットワークスイッチポートが、受信したレイヤ２データパケットの少なくとも一部と、それぞれの利用可能な予め規定されたネットワークアプリケーションを識別するために用いられるフレームデータを指定する複数のテンプレートとを同時に比較することに基づいて、前記受信したレイヤ２データパケットを受信したネットワークスイッチポートが、複数の利用可能な予め規定されたネットワークアプリケーションから、予め規定されたネットワークアプリケーションに対するアプリケーション状態を判断するステップを含む、請求項１に記載の方法。
【請求項３】
複数のネットワークポートスイッチを含む統合ネットワークスイッチにおける方法であって、
受信したレイヤ２データパケットから予め規定されたネットワークアプリケーションに対するアプリケーション状態を判断するステップと、
判断したアプリケーション状態に基づいて、受信したレイヤ２データパケットのソースまたはレイヤ２データパケットのデスティネーションの少なくとも１つを指定するネットワークスイッチアドレステーブルからアドレスエントリを選択的に削除するステップとを含み、
前記判断するステップは、前記受信したレイヤ２データパケットを受信したネットワークスイッチポートが、受信レイヤ２データパケットの少なくとも一部と、それぞれの利用可能な予め規定されたネットワークアプリケーションを識別するために用いられるフレームデータを指定する複数のテンプレートとを同時に比較することに基づいて、前記受信したレイヤ２データパケットを受信したネットワークスイッチポートが、複数の利用可能な予め規定されたネットワークアプリケーションから、予め規定されたネットワークアプリケーションに対するアプリケーション状態を判断するステップを含む、方法。
【請求項４】
予め規定されたネットワークアプリケーションのそれぞれの利用可能なアプリケーション状態からアプリケーション状態を識別するよう構成された複数のテンプレートを、受信レイヤ２データパケットを受信したネットワークスイッチポート内にストアするステップをさらに含み、各テンプレートは、前記複数の利用可能なアプリケーション状態のうちの対応する１つの識別を可能にする、予め規定された１つ以上の一連のデータパターンを有する、請求項３に記載の方法。
【請求項５】
前記ストアするステップは、前記ネットワークスイッチポートが、受信したレイヤ２データパケットからの前記複数の利用可能なアプリケーション状態のうちの最初の１つを識別することに応答して、前記複数のテンプレートをストアするステップを含む、請求項４に記載の方法。
【請求項６】
選択的に削除するステップは、予め規定されたネットワークアプリケーションに対するセッションの終了を指定する判断されたアプリケーション状態に基づいて、アドレスエントリを削除するステップを含む、請求項１または３に記載の方法。
【請求項７】
検出するステップは、受信レイヤ２データパケットの受信の間に、予め規定されたネットワークアプリケーションに対するセッションの終了を識別するために用いられるフレームデータを指定する、受信レイヤ２データパケットの選択された部分を複数の極小項と比較するステップと、
受信レイヤ２データパケットの選択された部分がそれぞれの極小項と整合するかどうかを判断するステップと、
判断するステップに基づいて、比較結果を生成するステップとを含む、請求項６に記載の方法。
【請求項８】
アプリケーション状態を判断するステップに応答して、アドレスエントリに対するアプリケーション特有エイジング間隔をカウントするよう構成されるアプリケーション特有エイジングタイマを開始させるステップと、
アプリケーション特有エイジング間隔の満了の際に、アドレスエントリがアクセスされていなければアドレスエントリを削除するステップとをさらに含む、請求項１または３に記載の方法。
【請求項９】
アプリケーション特有エイジング間隔の間のアドレスエントリのアクセスの検出に応答して、アプリケーション特有エイジングタイマをリセットするステップをさらに含む、請求項８に記載の方法。
【請求項１０】
ネットワークスイッチであって、
ネットワークスイッチポートを含み、各ネットワークスイッチポートは、受信レイヤ２データパケットから複数の予め規定されたネットワークアプリケーションのうちの検出された１つに対するアプリケーション状態を判断するよう構成されるパケットクラシファイアを含み、前記アプリケーション状態の判断は、前記パケットクラシファイアが、受信レイヤ２データパケットの少なくとも一部と、それぞれの利用可能な予め規定されたネットワークアプリケーションを識別するために用いられるフレームデータを指定する複数のテンプレートとを同時に比較することに基づいており、
さらに
スイッチング論理を含み、スイッチング論理は、判断されたアプリケーション状態と、検出された１つの予め規定されたネットワークアプリケーションに基づくアプリケーション特有エイジング間隔の間の、判断されたアドレスエントリのインアクティビティとに基づいて、受信レイヤ２データパケットのソースおよびレイヤ２データパケットのデスティネーションの少なくとも１つを指定するアドレスエントリを選択的に削除するよう構成される、ネットワークスイッチ。
【請求項１１】
スイッチング論理は、
受信レイヤ２データパケットからのアプリケーション状態の検出に応答して、アドレスエントリに対するアプリケーション特有エイジング間隔のカウントを開始するよう構成されるプログラム可能タイマを含む、請求項１０に記載のスイッチ。
【請求項１２】
スイッチング論理は、
第２のアドレスエントリに対する第２のアプリケーション特有エイジング間隔をカウントするよう構成される、第２のプログラム可能タイマを含む、請求項１０に記載のスイッチ。
【請求項１３】
受信レイヤ２データパケットに対するアドレスエントリおよび第２のアドレスエントリをストアするよう構成される、ネットワークスイッチアドレステーブルをさらに含む、請求項１２に記載のスイッチ。
【発明の詳細な説明】
【０００１】
【発明の背景】
発明の分野
この発明は、サブネットワーク間でデータパケットを交換するよう構成されたノンブロッキングネットワークスイッチにおけるデータパケットの交換に関する。
【０００２】
背景技術
米国特許第５，９１４，９５６号は、非同期転送モード（ＡＴＭ）スイッチの接続能力を向上させるための、キャッシュ装置および方法を開示する。スイッチを通るデータセルのフローがモニタされ、未使用のまたは十分に用いられていないコネクションが検出されて、再生エイジャー（reclaim ager）によってコネクションテーブルにマークされるが、これは定期的にコネクションのアクティビティを評価する。
ＩＥＥＥコンピュータ協会のＬＡＮ  ＭＡＮ標準委員会（LAN MAN Standards Committee of the IEEE Computer Society）の、「システム間の情報技術電気通信および情報交換−ローカルおよびメトロポリタンエリアネットワーク−一般仕様−第３部：メディアアクセス制御（ＭＡＣ）ブリッジ（Information technology - Telecommunications and information exchange between systems - Local and metropolitan area networks - Common specifications - Part 3: Media Access Control (MAC) Bridges）」、ＩＳＯ／ＩＥＣ１５８０２−３：１９９８  ＡＮＳＩ／ＩＥＥＥ標準８０２．１Ｄ、１９９８年版、４２−２６頁は、ＩＥＥＥ８０３．２プロトコルにしたがったＭＡＣブリッジを開示する。この規格に従った古くなったアドレスの扱いを、以下に説明する。
ローカルエリアネットワークは、ネットワークケーブルまたは他の媒体を用いてネットワーク上のステーションをリンクする。各ローカルエリアネットワークアーキテクチャは、メディアアクセス制御（ＭＡＣ）を用いて各ネットワークノードでネットワークインターフェイス装置をイネーブルし、ネットワーク媒体にアクセスする。
【０００３】
イーサネット（Ｒ）プロトコルＩＥＥＥ８０２．３は、データパケット送信のための半二重メディアアクセス機構および全二重メディアアクセス機構を指定するために開発された。全二重メディアアクセス機構は、２つのネットワーク要素間の、たとえばネットワークノードと交換ハブ（switched hub）間の、２方向のポイント・ツー・ポイント通信リンクを提供する。
【０００４】
交換ローカルエリアネットワークに対して、さらなる高速接続性、より柔軟な交換性能、およびより複雑なネットワークアーキテクチャへの対処能力への要求が高まっている。たとえば、本発明の譲受人に譲渡された米国特許第５，９５３，３３５号は、レイヤ２タイプのイーサネット（Ｒ）（ＩＥＥＥ８０２．３）データパケットを異なったネットワークノード間で交換するよう構成されたネットワークスイッチを開示する；受信されたデータパケットは、別のサブネットワーク（ルータを介する）または予め規定されたステーションのグループを指定するＩＥＥＥ８０２．１ｑプロトコルにしたがったＶＬＡＮ（バーチャルＬＡＮ）タグ付きフレームを含み得る。スイッチングはレイヤ２レベルで行なわれるので、典型的にはルータがサブネットワーク間でデータパケットを転送するために必要である。
【０００５】
既存のレイヤ２タイプネットワークスイッチの１つの問題は、ユーザによって設定される固定されたエイジング間隔を有するエイジング機能を用いて、古くなった（aged）アドレスエントリをネットワークスイッチアドレステーブルから削除することに関わる。特に、ネットワークスイッチは、受信したデータパケットが、たとえば未知のＭＡＣソースまたはデスティネーションアドレスのような未知のアドレスを有することを検出すると、新しいアドレスエントリをネットワークスイッチアドレステーブルに加えることにより、新しいネットワークアドレスを「学習」する。ネットワークスイッチはまた、古くなったアドレスエントリを削除してネットワークスイッチアドレステーブルがオーバーフローすることを防ぐためのエイジング機能をも含む。たとえば、ネットワークスイッチのスイッチファブリックは、受信したデータパケットを交換するためにアドレスエントリがアクセスされるごとに、アドレスエントリ内に「ヒットビット」を設定し得る。エイジング機能は、設定された「ヒットビット」の検出に応答して、ビットをゼロにリセットし、アドレスエントリをネットワークスイッチアドレステーブル内に維持する。もしエイジング機能が、アドレスエントリが少なくとも固定アドレス間隔の間アクセスされていないことを示して「ヒットビット」がすでにゼロ値にリセットされていることを検出すると、エイジング機能は古くなったアドレスエントリをネットワークスイッチアドレステーブルから削除する。
【０００６】
しかしながら上述のエイジング機能を用いると、ネットワークスイッチからのアドレスエントリの早過ぎる削除をまねくおそれがあり、ネットワークスイッチはネットワークアドレスを再学習することが必要になる。たとえば、２つのネットワークアプリケーションの間でより高いプロトコルの通信（すなわち、フロー）が生じていることを認識していないレイヤ２スイッチは、ユーザ定義エイジング間隔が短すぎる値に設定されていれば、２つのネットワークアプリケーションの間でのフローに関連するデータパケットに対するアドレスエントリを削除および再学習を繰り返し、ネットワークスイッチリソースを無駄にするおそれがある。しかしながら、ユーザ定義エイジング間隔を増大する試みは、ネットワークスイッチアドレステーブルをオーバーフローさせかねない。
【０００７】
【発明の要約】
ネットワークスイッチが、そのネットワークスイッチアドレステーブルからアドレスエントリを選択的に削除する一方で、削除されたアドレスエントリの再学習を最小化することを可能にする構成に対する必要性がある。
【０００８】
また、ネットワークスイッチが、２つのネットワークアプリケーションの間のネットワークスイッチによって転送されるデータフローの状態に基づいて、そのネットワークスイッチアドレステーブルからアドレスエントリを選択的に削除することを可能にする構成に対する必要性がある。
【０００９】
これらおよび他の必要性はこの発明によって満たされるが、この発明においてはネットワークスイッチは、受信したデータパケットからのデータフローの判断されたアプリケーション状態に基づいて、ネットワークスイッチアドレステーブルからアドレスエントリを選択的に削除する。
【００１０】
この発明の一局面は、統合ネットワークスイッチにおける方法を提供し、方法は、受信したレイヤ２データパケットから予め規定されたネットワークアプリケーションに対するアプリケーション状態を判断するステップと、判断したアプリケーション状態に基づいて、受信したレイヤ２データパケットのソースおよびレイヤ２データパケットのデスティネーションの少なくとも１つを指定するネットワークスイッチアドレステーブルからアドレスエントリを選択的に削除するステップとを含む。統合ネットワークスイッチによるアプリケーション状態の判断により、統合ネットワークスイッチが、予め規定されたネットワークアプリケーションにしたがってネットワークノード間のデータフローの存在を識別することが可能になり、統合ネットワークスイッチが予め規定されたネットワークアプリケーションパラメータにしたがってエイジングタイマを調節することが可能になる。さらに、判断されたアプリケーション状態に基づくアドレスエントリの選択的削除により、統合ネットワークスイッチが、アプリケーション状態からネットワークノード間のデータフローがたとえば２つのノード間のセッションの最後で終了したと判断した際に、アドレスエントリを削除することが可能になる。
【００１１】
この発明の別の局面は、ネットワークスイッチポートとスイッチング論理とを含むネットワークスイッチを提供する。ネットワークスイッチポートは各々、受信したレイヤ２データパケットから複数の予め規定されたネットワークアプリケーションのうちの検出された１つに対するアプリケーション状態を判断するよう構成されるパケットクラシファイアを含む。スイッチング論理は、判断されたアプリケーション状態および、アプリケーション特有エイジング間隔の間に判断されたアドレスエントリのインアクティビティに基づいて、受信レイヤ２データパケットのソースおよび受信レイヤ２データパケットのデスティネーションの少なくとも１つを指定するアドレスエントリを選択的に削除するよう構成され、ここでアプリケーション特有エイジング間隔は、検出された１つの予め規定されたネットワークアプリケーションに基づく。よって、スイッチング論理は、受信レイヤ２データパケットから検出された１つの予め規定されたネットワークアプリケーションに基づくインアクティビティの間隔に基づいて、アドレスエントリを選択的に削除し、統合ネットワークスイッチによってサポートされるネットワークアプリケーションに基づくより正確なエイジング間隔の使用を可能にする。これに代えて、スイッチング論理は、判断したアプリケーション状態に基づいてアドレスエントリを選択的に削除して、検出された１つの予め規定されたネットワークアプリケーションにしたがった２つのネットワークノードの間のセッションの完了の際に、スイッチング論理がアドレスエントリを削除することを可能にする。
【００１２】
この発明のさらなる利点と新規な特徴とは、一部は以下の説明により明らかとなり、一部は当業者においては以下を検討すれば明らかであるか、またはこの発明を実施することにより学習されるであろう。この発明の利点は、前掲の特許請求の範囲に特に指摘される手段および組み合わせにより、実現され達成されるであろう。
【００１３】
添付の図面を参照すると、同様の参照番号を有する要素は図面を通して同様の要素を示す。
【００１４】
【発明を実行するためのベストモード】
開示される実施例は、ネットワークスイッチアドレステーブルエントリに対するアプリケーションに基づくエイジング間隔を生成するための統合ネットワークスイッチにおける構成、および受信レイヤ２データパケットから予め規定されたネットワークアプリケーションに対して判断されたアプリケーション状態に基づいてアドレスエントリを選択的に削除することに向けられる。受信レイヤ２データパケットから予め定められたネットワークアプリケーションを検出すること、および予め定められたネットワークアプリケーションに対するアプリケーション状態を検出することは、レイヤ２データパケットを受信したネットワークスイッチポート内のパケットクラシファイアモジュールによって行なわれる。第１にエトスアーキテクチャおよびパケットクラシファイアについての説明を提供し、次いでネットワークスイッチアドレスエントリのアプリケーションに基づくエイジングの説明を行なう。
【００１５】
図１は、イーサネット（Ｒ）（ＩＥＥＥ８０２．３）ネットワークのようなパケット交換ネットワーク１０を示すブロック図である。パケット交換ネットワークはネットワークステーション１４間でのデータパケット通信を可能にする統合（すなわち単一チップ）マルチポートスイッチを含む。各ネットワークステーション１４、たとえば顧客ワークステーションは典型的には、ＩＥＥＥ８０２．３プロトコルにしたがってデータパケットを１０Ｍｂｐｓまたは１００Ｍｂｐｓで送受信するよう構成される。各統合マルチポートスイッチ１２は、ギガビットイーサネット（Ｒ）リンク１６で相互接続されており、サブネットワーク１８ａ、１８ｂ、１８ｃの間のデータパケット転送を可能にする。よって、各サブネットワークはスイッチ１２と、関連のネットワークステーション１４のグループとを含む。
【００１６】
各スイッチ１２は、メディアアクセス制御（ＭＡＣ）モジュール２２とパケットクラシファイアモジュール２４とを含むスイッチポート２０を含む。ＭＡＣモジュール２０は、ＩＥＥＥ８０２．３ｕプロトコルにしたがって、１０／１００Ｍｂｐｓ物理層（ＰＨＹ）トランシーバ（図示せず）をわたって関連のネットワークステーション１４とデータパケットを送受信する。各スイッチ１２はまた、受信データパケットに対するフレーム転送判断を行なうよう構成されたスイッチファブリック２５をも含む。特に、スイッチファブリック２５は、イーサネット（Ｒ）（ＩＥＥＥ８０２．３）ヘッダ内のソースアドレス、デスティネーションアドレス、およびＶＬＡＮ情報に基づいたレイヤ２スイッチング判断に対して構成されている；スイッチファブリック２５はまた、イーサネット（Ｒ）パケット内のＩＰデータパケットの評価に基づいた選択的なレイヤ３スイッチング判断に対しても構成されている。
【００１７】
図１に示されるように、各スイッチ１２は、関連のホストＣＰＵ２６とたとえばＳＳＲＡＭであるバッファメモリ２８とを有する。ホストＣＰＵ２６は、以下に説明するスイッチファブリック２５およびパケットクラシファイアのプログラミングを含む、対応のスイッチ１２の全体的な動作を制御する。バッファメモリ２８は対応のスイッチ１２によって用いられて、スイッチファブリック２５が受信したデータパケットに対する転送判断を処理している一方で、データフレームをストアする。
【００１８】
上述のように、スイッチファブリック２５はレイヤ２スイッチング判断とレイヤ３スイッチング判断とを行なうよう構成されている。スイッチファブリック２５によるレイヤ３スイッチング判断を用いると、スイッチファブリック２５が先取り（advanced）転送判断を含めてどのようにパケットを扱うか、およびパケットをビデオまたは音声などのレイテンシ感応アプリケーションに対する高優先性パケットとみなすべきか、についてまで知的な判断が行なえるようになる。
【００１９】
開示される実施例にしたがうと、図１のパケットクラシファイアモジュール２４は、入ってくるデータストリームと、入ってくるデータストリームのデータ形式を識別するテンプレートとの間の多数同時比較に対して構成される。特定的には、ホストプロセッサ２６のユーザは、受信データパケットの選択部分におけるある予め規定されたデータ値を有するデータパケットがどのようにスイッチファブリック２５によって扱われるべきかを定義するポリシーを指定する。これらのポリシーは対応のポリシーごとに、スイッチファブリック２５に１組のフレーム転送判断またはエイジング機能パラメータをローディングすることにより実現される。受信データパケットの選択部分におけるある予め規定されたデータ値は、レイヤ２データパケットのどの部分に場所決めされていてもよいことに留意されたい。よって、パケットクラシファイアモジュール２４は、たとえばハイパーテキスト転送プロトコル、ＳＮＭＰ，ＦＴＰ，Telnetのような異なったネットワークアプリケーションにしたがったデータフローの存在を検出できる。
【００２０】
よって、スイッチファブリック２５はＨＴＴＰパケットについて１組のフレーム転送命令およびエイジングパラメータと、ＳＮＭＰパケットに対する別の組のフレーム転送命令およびおよびエイジングパラメータと、高優先性パケット（たとえばビデオ、音声）に対する別の組のフレーム転送命令およびおよびエイジングパラメータとを含み得る。
【００２１】
図２は、この発明の実施例にしたがったパケットクラシファイアモジュール２４を示すブロック図である。図２に示すように、ネットワークスイッチポート２０は、ＭＡＣ２２と、受信ＦＩＦＯバッファ２７と、ヘッダモディファイア２９と、パケットクラシファイアモジュール２４とを含む。ネットワークスイッチポートフィルタとも称するパケットクラシファイアモジュール２４は、ネットワークスイッチポート２０で入ってくるデータパケットを識別し（すなわち、評価し）、かつスイッチファブリック２５に受信されたデータパケットのタイプに基づくデータパケットに対して行なわれるべきアクションを指定するタグを与える。特定的には、パケットクラシファイアモジュール２４は、入ってくるデータパケットを、それぞれの受信データ形式を識別するよう構成された複数のテンプレートと同時に比較する。入ってくるデータパケットと複数のテンプレートとの比較に基づいて、パケットクラシファイアモジュール２４は、スイッチファブリック２５に与えられるべきタグを指定する、実行されるべき方程式を識別する。
【００２２】
特定的には、パケットクラシファイアモジュール２４は複数のテンプレートから少なくとも１つの整合するテンプレートを検出することにより入ってくるデータパケットを識別する比較結果を生成する。パケットクラシファイアモジュール２４は次いで、どの方程式が整合したテンプレートを含むかを識別し、その方程式によって指定されるタグを生成する。
【００２３】
図３Ａおよび図３Ｂは、パケットクラシファイアモジュール２４による方程式の２つのテンプレートの同時処理を示す図である。図３Ａは、方程式Ｅｑ１＝Ｍ１＊Ｍ２＊Ｍ３＊Ｍ４＊（Ｍ５＋Ｍ６＋Ｍ７＋Ｍ８）のパケットクラシファイアモジュール２４による論理評価を示す。
【００２４】
図３Ｂは、どのように方程式Ｅｑ１が実際に極小項（min term）メモリ７０にストアされるかを示す。方程式Ｅｑ１は４つのテンプレート６２ａ、６２ｂ、６２ｃ、および６２ｄを含む。テンプレート６２ａは、極小項Ｍ１、Ｍ２、Ｍ３、Ｍ４およびＭ５を含む。テンプレート６２ｂは、極小項Ｍ１、Ｍ２、Ｍ３、Ｍ４およびＭ６を含む。テンプレート６２ｃは、極小項Ｍ１、Ｍ２、Ｍ３、Ｍ４およびＭ７を含む。テンプレート６２ｄは、極小項Ｍ１、Ｍ２、Ｍ３、Ｍ４およびＭ８を含む。各テンプレート６２は、ＩＰデータパケット３２のヘッダに基づいて認識可能である特定のＩＰデータ形式に対応する。たとえば、テンプレート６２ａおよび６２ｃは、ＨＴＴＰパケットを識別するよう構成され、テンプレート６２ｂおよび６２ｄは、ＳＮＭＰパケットを識別するよう構成され得る。特定的には、ＨＴＴＰパケットは、ＩＰｖ４形式であるか、ＩＰのtime to live フィールドは１よりも大きいか、ＩＰヘッダのプロトコルフィールドはＴＣＰであるか、ヘッダチェックサムは正しいか、ソースＴＣＰポートは８０であるか、またはデスティネーションＴＣＰポートは８０であるか、が識別される。ＳＮＭＰパケットは、ＩＰｖ４形式であるか、ＩＰのtime to live フィールドは１よりも大きいか、ＩＰヘッダのプロトコルフィールドはＴＣＰであるか、ヘッダチェックサムは正しいか、ソースＴＣＰポートは２５であるか、またはデスティネーションＴＣＰポートは２５であるか、が識別される。
【００２５】
よって、以下の極小項が上述の基準のすべてを表すために確立され得る：
Ｍ１＝パケットはＩＰｖ４形式である
Ｍ２＝ＩＰのtime to live フィールドは１よりも大きい
Ｍ３＝ＩＰヘッダのプロトコルフィールドはＴＣＰである
Ｍ４＝ヘッダチェックサムは正しい
Ｍ５＝ソースＴＣＰポートは８０である
Ｍ６＝デスティネーションＴＣＰポートは８０である
Ｍ７＝ソースＴＣＰポートは２５である
Ｍ８＝デスティネーションＴＣＰポートは２５である
よって、テンプレート６２ａと６２ｃとはＨＴＴＰパケットを識別し、テンプレート６２ｂと６２ｄとはＳＮＭＰパケットを識別する。こうして、方程式１（Ｅｑ１）は、テンプレート６２ａ、６２ｂ、６３ｃ、６２ｄのいずれかが真であれば、特定の結果（たとえば指定された値を有するタグ）がスイッチファブリック２５に出力されるべきことを指定する。
【００２６】
さらに、極小項Ｍ１…Ｍ８は、入来データストリーム内のデータバイトの相対的な位置に対応する予め規定された順序で関連のテンプレート６２ａおよび／または６２ｂ内に配置される。極小項Ｍ１は、ＩＰパケットの第１のバイト（Ｂ１）との比較のために構成され、極小項Ｍ２はＢ１の後に続くＩＰパケットの後のバイト（Ｂ２）との比較のために構成され、極小項Ｍ３はＢ２の後に続くＩＰパケットの後のバイト（Ｂ３）との比較のために構成され、以下同様である。よって、入来データストリーム内のデータバイトの相対的な位置に基づく順序での極小項を有するテンプレート６２を用いると、入来データストリームと極小項との間の多数同時比較が可能になる。よって、入来データパケットは多数のテンプレートと比較されて、入来データパケットの形式だけでなく、スイッチファブリック２５によってどのアクションが行なわれなければならないかをも判断する。
【００２７】
図２に示されるように、ネットワークスイッチポートフィルタとも称するパケットクラシファイア２４は、極小項値（たとえばＭ１、Ｍ２など）をストアするための極小項メモリ７０と、受信されるレイヤ２フレームのタイプを識別するよう構成されるフレームアイデンティファイア７２とを含む。特に、受信されているレイヤ２フレームのタイプを識別することは（たとえばイーサネット（Ｒ）ＩＥＥＥ８０２から３など）、レイヤ２パケット３０内のＩＰパケット３２の開始位置６４の識別を可能にする。パケットクラシファイア２４はまた、極小項コントローラ７４、極小項ジェネレータ７６、方程式コア７８、および評価結果メモリ８０を含む。プロセッサインターフェイスモジュール（pi mod）８２は、ホストＣＰＵ２６から極小項メモリ７０に、生成された極小項を転送するために用いられる。
【００２８】
極小項コントローラ７４は、受信ＩＰフレームの選択されたバイトに対応する極小項メモリ７０から極小項をフェッチするよう構成される。極小項コントローラ７４はまた、レイヤ２フレームのタイプを指定するフレームアイデンティファイア７２からのフレームタイプ（frm type）信号の受信に応答して開始ポイントの実際のバイト位置（byte location）を指定するよう構成される位置コンバータをも含む。極小項コントローラ７４は次いで、極小項値（M STRU INFO）を極小項ジェネレータ７６と方程式コア７８とに転送する。
【００２９】
極小項ジェネレータ７６は、極小項コントローラによってフェッチされた極小項と入来データストリームの選択されたバイトとの間の、実際極小項比較を行ない、実際極小項比較の結果（mt result）を方程式コア７８に送る。開示される実施例に従うと、極小項ジェネレータは入来データストリームの最大８極小項までの同時比較に対して構成される。方程式コア７８は、関連のテンプレート６２に対する、極小項ジェネレータ７６から受信した極小項比較結果に基づいて、フレームタグを生成するよう構成される。
【００３０】
上述のように、パケットクラシファイアモジュール２４は、受信レイヤ２データパケットがたとえばＨＴＴＰ、ＳＮＭＰ、ＦＴＰ、Telnetのような予め規定されたネットワークアプリケーションに対するフレームデータを担持するかどうかを、各ネットワークスイッチポート２０が識別することを可能にする。さらに、パケットクラシファイアモジュール２４は、受信レイヤ２データパケットから、アプリケーション状態を特定的に識別するよう、付加的なテンプレートでプログラム可能である。特定的には、ネットワークノードは予め規定されたネットワークアプリケーションにしたがって通信し、２つのネットワークノード間の予め規定されたデータフローをもたらす。よって、ネットワークノード間で転送されるレイヤ２データパケットは、たとえばセッション開始要求、肯定応答、セッションの間の通信、セッション終了要求、およびセッション終了の肯定応答のような、予め規定されたネットワークアプリケーション状態を指定するペイロード情報を含み得る。パケットクラシファイアモジュール２４は、レイヤ２データパケットのペイロードデータを評価することにより、データフローの状態をモニタするための適切なテンプレートでプログラムされ得る。よって、パケットクラシファイアモジュール２４は、２つのネットワークノード間で動作するネットワークアプリケーションに対するアプリケーション状態をモニタでき、スイッチファブリック２５のスイッチング論理がアプリケーションに基づくエイジング動作を行なうことを可能にする。
【００３１】
図４は、この発明の実施例にしたがった図１のスイッチファブリック２５を詳細に示す図である。図４に示されるように、スイッチファブリック２５はスイッチング論理８０と、ネットワークスイッチアドレステーブル８２とを含む。ネットワークスイッチアドレステーブル８２は、外部アドレステーブルとしてネットワークスイッチ１２の外部に実現されてもよいことに留意されたい。スイッチング論理８０は、ネットワークスイッチアドレステーブル８２内のアドレステーブルエントリ８４の学習（すなわちストア）を制御する。
【００３２】
各アドレステーブルエントリ８４は、ＭＡＣアドレスフィールド８４ｃ、ＩＰアドレスフィールド８４ｄ、および、対応のＭＡＣおよび／またはＩＰアドレスを有するネットワークノードに対する対応のレイヤ２および／またはレイヤ３スイッチング情報を提供するスイッチング情報フィールド８４ｅを含む。各アドレステーブルエントリ８４はまた、エイジングタイマのための開始時間をストアするよう構成されるエイジングタイマ開始フィールド８４ａと、判断されたデータフローによってサポートされるネットワークアプリケーションに基づいて、アプリケーション特有エイジング時間間隔をストアするよう構成されるエイジング間隔フィールド８４ｂとを有する。
【００３３】
図５は、この発明の実施例にしたがった、ネットワークスイッチアドレステーブル８２のアプリケーションに基づくエイジングを行なう方法を示すフロー図である。フロー図として示されるが、実際の実現化は状態に基づくものであって、スイッチング論理８０内の新しい状態がパケットクラシファイアモジュール２４からの予め規定されたアクションタグに応答して実行される。
【００３４】
方法はステップ９０において開始し、ここでホストＣＰＵは、受信レイヤ２データパケットに基づく各ネットワークアプリケーションを識別するよう構成される、アプリケーションテンプレートの少なくとも最初の組を、パケットクラシファイアモジュール２４の極小項メモリ７０にローディングする。特に、ネットワークノードは予め規定されたネットワークアプリケーションにしたがってセッション開始要求を最初に送信する。ネットワークノードからの最初の要求の検出に応答して、パケットクラシファイアモジュール２４は、新しいネットワークノードおよび対応の識別されたネットワークアプリケーションを指定するタグをスイッチファブリック２５に送る。スイッチング論理８０は、次いでステップ９２においてネットワークスイッチアドレステーブル８２に別のエントリ８４を加えることにより、エントリを学習する。ホストＣＰＵもまた新しいデータフローを通知され、ステップ９４においてホストＣＰＵはその時点で検出されたアプリケーションに対する付加的なテンプレートを極小項メモリ７０にストアし、パケットクラシファイアモジュール２４が検出されたデータフローに対する各アプリケーション状態を識別することを可能にする。これに代えて、一度にすべてのテンプレートが極小項メモリ７０にローディングされてもよい。
【００３５】
ネットワークアプリケーションが対応の受信レイヤ２データパケットによってサポートされていることを検出すると、ホストＣＰＵ２６は応答してアプリケーション特有エイジング間隔（たとえばＴ１）をエイジング間隔フィールド８４ｂにローディングし、タイマに対する開始時間をエイジングタイマ開始フィールド８４ａにステップ９６において記録する。
【００３６】
レイヤ２データパケットを受信したネットワークスイッチポート２０のパケットクラシファイアモジュール２４は、ネットワークアプリケーションの識別されたデータフローに対するペイロードデータを有するさらなるレイヤ２データパケットについてモニタを続ける。ステップ９８においてパケットクラシファイアモジュール２４が既存のデータフローに対して新しい状態を検出し、かつステップ１００において新しい状態が識別されたネットワークアプリケーションにしたがったデータフローに対するセッションの終了を示すと、パケットクラシファイアモジュール２４はセッションの終了を指定するアクションタグをスイッチング論理８０に出力し、スイッチング論理８０にステップ１０２において対応のアドレステーブルエントリ８４を削除させる。しかしながら、ステップ１００において新しい状態がパケットクラシファイア２４によって中間アプリケーション状態であると判断されると、パケットクラシファイア２４はスイッチング論理８０に適切なタグを送り、フィールド８４ａにおける開始時間を更新された値でオーバーライドすることにより、ステップ１０４でスイッチング論理８０にタイマをリセットさせる。
【００３７】
スイッチング論理８０は、アプリケーション特有エイジング間隔を、その内部クロックを開始時間エントリ８４ｂに対して開始時間エントリ８４ａと比較することにより、連続的にモニタする。スイッチング論理８０が、エイジング間隔フィールド８４ｂに指定されるアプリケーション特有エイジング間隔の間、対応のアドレステーブルエントリがアクセスされていないことを示して、アプリケーション特有タイマがステップ１０６において期限が切れていると判断するれば、スイッチング論理８０はステップ１０２においてエントリ８０を削除する。
【００３８】
開示される実施例にしたがうと、アプリケーション特有エイジング間隔が、判断されたアプリケーション状態と組合せて用いられて、アドレスエントリがいつネットワークスイッチアドレステーブルから削除されるべきかを正確に判断する。よって、アドレステーブルは、ネットワークスイッチによって生じるデータフローに基づくネットワークスイッチによって正確に維持され得る。
【００３９】
この発明を最も実際的な実施例であるとここで考えられるものによって説明してきたが、この発明は開示される実施例に限定されるものではなく、その反対に、さまざまな変形と等価な構成とを、前掲の特許請求の範囲に含むことが意図されることを理解されたい。
【図面の簡単な説明】
【図１】  この発明の実施例にしたがったそれぞれのサブネットワークの間のデータパケットを交換するための、多数のネットワークスイッチを含む、パケット交換ネットワークのブロック図である。
【図２】  この発明の実施例にしたがったパケットクラシファイアモジュールを含む、図１のネットワークスイッチポートを示すブロック図である。
【図３Ａ】  図２の極小項ジェネレータによる方程式の４つのテンプレートの同時処理を示す図である。
【図３Ｂ】  図２の極小項ジェネレータによる方程式の４つのテンプレートの同時処理を示す図である。
【図４】  図１のスイッチング論理を詳細に示す図である。
【図５】  この発明の実施例にしたがった、判断されたアプリケーション状態およびアプリケーション特有エイジング間隔に基づいてアドレスエントリを選択的に削除する方法を示す図である。
【図１】
0004767471.tif 000002
【図２】
0004767471.tif 000003
【図３Ａ】
0004767471.tif 000004
【図３Ｂ】
0004767471.tif 000005
【図４】
0004767471.tif 000006
【図５】
0004767471.tif 000007