(57)【特許請求の範囲】
【請求項１】
少なくとも１つの入力ポートと少なくとも１つの出力ポートとを有するネットワーク要素において、入力ポートに入ったパケットを中継する方法であって、
（ａ）ヘッダを有するパケットをネットワークから入力ポートで受け取るステップと、
（ｂ）第１のプロトコル層に関連するヘッダの第１の部分から第１のサーチキーを判定するステップと、
（ｃ）第２のプロトコル層に関連するヘッダの第２の部分から第２のサーチキーを判定するステップと、
（ｄ）第１のサーチキーと一致するエントリについてメモリ内のエントリを同時にサーチするステップと、
（ｅ）ステップ（ｄ）で見つかった少なくとも１つのエントリがあれば、そのエントリを使用して、第１のポート結果を決定するステップと、
（ｆ）第２のサーチキーに関連するエントリについてメモリ内のエントリを同時にサーチするステップと、
（ｇ）第２のサーチキーに関連するエントリから１つのエントリを選択するステップと、
（ｈ）ステップ（ｇ）の結果を使用して、中継情報を決定するステップと、
（ｉ）ステップ（ｅ）およびステップ（ｈ）の結果に基づいて、適切な出力ポートがもしあれば、その出力ポートを決定するステップと、
（ｊ）パケットを適切な出力ポートへ中継するステップと
を含み、
メモリは連想メモリ及び中継メモリを備え、
連想メモリはその内容の少なくとも一部が同時にサーチされ、そして
連想メモリの少なくとも１つのエントリが中継メモリ内の対応するエントリを指し示すようになされる、
方法。
【請求項２】
ステップ（ｇ）が、最も適切であると判定された所定の重要性基準に基づく層３情報に基づいてメモリ内のエントリを選択することを含む請求項１に記載の方法。
【請求項３】
ステップ（ｇ）で一致するエントリがない場合、ステップ（ｉ）が適切な出力ポートを第１のポート結果として指定することを含む請求項２に記載の方法。
【請求項４】
ステップ（ｉ）が、ステップ（ｅ）の結果を適切な出力ポートとして選択するステップを含む請求項１に記載の方法。
【請求項５】
ステップ（ｊ）が、ステップ（ｈ）の結果の一部を使用するステップを含む請求項１に記載の方法。
【請求項６】
ステップ（ｊ）が、ステップ（ｈ）の結果に従ってパケット・ヘッダを修正することを含む請求項１に記載の方法。
【請求項７】
ネットワーク上でパケットを中継するネットワーク要素であって、
（ａ）パケットを受け取る少なくとも１つの入力ポートと、
（ｂ）パケットを調べ、第１のプロトコル層および第２のプロトコル層のそれぞれに関連する第１のサーチキーおよび第２のサーチキーを判定する処理論理と、
（ｃ）内容の少なくとも一部が同時にサーチされ、サーチに基づく結果を出力するメモリと、
（ｄ）第１のサーチキーを使用してメモリをサーチし、メモリに第１のサーチ結果を出力させるように構成された第１のサーチ回路と、
（ｄ）第２のサーチキーを使用してメモリをサーチし、メモリに第２のサーチ結果を出力させるように構成された第２のサーチ回路と、
（ｅ）少なくとも１つの出力ポートと、
（ｆ）第１のサーチ結果および第２のサーチ結果に基づく少なくとも１つの出力ポートがもしあれば、そのうちの適切な出力ポートへパケットを中継するように構成されたマージ回路と
を備え、
メモリは連想メモリ及び中継メモリを備え、
連想メモリはその内容の少なくとも一部が同時にサーチされ、そして
連想メモリの少なくとも１つのエントリが中継メモリ内の対応するエントリを指し示すようになされる、
ネットワーク要素。
【発明の詳細な説明】
発明の分野
本発明は、全般的にはネットワーク内でのパケット中継に関し、詳細には、マルチレイヤ情報を使用してパケットを中継するシステムおよび方法に関する。
発明の背景
コンピュータ同士の間の通信は、私的な環境と仕事上の環境の両方で日常生活の重要な要素になっている。ネットワークは、このような通信用の媒体、さらに、ネットワークに接続された様々な種類の要素の間の通信用の媒体を形成する。それらの要素には、サーバや、パーソナル・コンピュータや、ワークステーションや、メモリ記憶システムや、ネットワークへデータを送信するか、あるいはネットワークからデータを受け取ることのできる他の構成要素などが含まれる。これらの要素は、情報の規則正しい送信と受信を決めている定義されたプロトコルを使用して互いに通信する。一般に、これらの要素は、ネットワークを、各要素が接続された雲とみなし、ネットワークがどのように動作するかや、ネットワークがどのように実現されるかなどネットワーク・アーキテクチャの詳細をこれらの要素が知る必要はない。理想的には、ネットワーク・アーキテクチャは、広範囲のアプリケーションをサポートし、広範囲の基礎技術を許容すべきである。ネットワーク・アーキテクチャはまた、非常に大規模なネットワークに対してうまく働き、小規模なネットワークに対して効率的であるべきであり、かつ変化するネットワーク条件に適合すべきである。
ネットワークは一般に、その規模に基づいて区別することができる。小規模なネットワークとして、ローカル・エリア・ネットワーク（ＬＡＮ）は、共用媒体に接続された複数のシステム、高い総帯域幅、短い遅延、低い誤り率、ブロードキャスト機能、限られた地理的範囲、限られた局数を含む特性を有するネットワークを表わし、一般に、郵便、テレグラフ、および電話に関する規制を受けない。大規模なネットワークとして、企業ネットワークは、地理的に離散した企業内の離散したビジネス単位を接続するワイド・エリア・ネットワークおよびＬＡＮを接続したネットワークを表わす。
大規模なネットワーク内の通信を容易にするために、ネットワークは通常、たとえば地理的位置や機能目的などある種の共通の特性を共有するサブネットワークに区画される。この区画は、ネットワーク全体をいくつかの管理可能な部分に分割することと、ネットワークのユーザを論理的に（あるいは物理的に）グループ分けすることの２つの主要な目的を果たす。ネットワーク・アドレス指定方式ではこのような区画を考慮に入れることができ、したがって、アドレスは、ネットワークがどのように区画されているかと、このアドレスがネットワーク層のどこに適合するかに関する情報を含むであろう。
説明および実施形態の都合上、ネットワークは、複数の層を有し、端末装置が接続され、ピア・ツー・ピア・プロトコルを使用して互いに通信するものとして説明することができる。よく知られている開放型システム間相互接続（ＯＳＩ）参照モデルは、７つの層を使用してネットワークを考えるための一般化された方法を構成するモデルであり、他のモデルおよび実際の実施態様の機能をマッピングする場合の好都合な基準である。所与のモデル内の層同士の間の違いは明確であるが、所与のモデルの実施態様や、様々なモデルの間の層のマッピングは明確ではない。たとえば、米国電気電子技術者協会（ＩＥＥＥ）によってその８０２プロトコルで発表された標準は、ＬＡＮの標準を定義しており、その定義はＯＳＩモデルの１番下の層および下から２番目の層と重複している。
このようなモデルでは、所与の層は、ネットワークを横切る同じ層のピア端末局と通信するか、あるいはネットワーク自体内の同じ層のネットワーク要素と通信する。層は、通常は論理的に関係付けられ１つ上の層の動作を可能にする１組の機能を実施する。
本発明を説明するための関連する層には、ＯＳＩ層１ないし４が含まれる。層１、すなわち物理層は、非構造化ビット・パターンを物理リンクを介して送受信する機能を実現する。物理層は、コネクタの寸法および形状、ビットの電気信号への変換、ビット・レベル同期などの問題に関する。ネットワーク内には複数の種類の物理層が存在することができる。ＩＥＥＥ標準８０２．３およびＦＤＤＩ（光ファイバ配信データ・インタフェース）内には、共通する２種類の層１が存在する。
層２、すなわちデータ・リンク層は、フレーミング、誤り検出、トランスポート媒体へのアクセス、層２またはそれよりも下の層で相互接続された端末局同士の間のアドレス指定をサポートする。データ・リンク層は通常、単一のホップを横切って、すなわち同じサブネットまたはＬＡＮ内の１つの端末局から他の端末局へ情報パケットを搬送するように設計される。
層３、すなわちネットワーク層は、端末間アドレス指定、ネットワーク・トポロジ情報、経路指定、パケット分割などの機能をサポートする。この層は、送信元から最終的な宛先までの最良の「経路」に沿ってパケットを送信するように構成することができる。この層の他の特徴として、条件が満たされている場合に、ネットワークの輻輳に関する情報を送信元から宛先に伝える機能がある。
層４、すなわちトランスポート層は、アプリケーションがデータ・リンク層とのインタフェースをとるために使用することのできる「ポート・アドレス」を有する電子メール・プログラムなどのアプリケーション・プログラムを実現する。トランスポート層とそれよりも下の層との間の主要な違いは、送信元端末局のアプリケーションが、ネットワーク内の任意の場所にある宛先端末局の同様なアプリケーションと対話を行うことができ、それに対して、トランスポート層よりも下の層は、ネットワーク内の、アプリケーションのすぐ近くの端末局と通信することである。層４プロトコルは、確実接続指向サービスもサポートし、このようなサービスを実現する層４プロトコルの例にはトランスポート制御プロトコル（ＴＣＰ）がある。
これらの層で動作するネットワークを実現するための様々な構成単位が存在する。端末局は、ネットワークの終点であり、送信元、宛先、送信元から受信したデータを宛先へ中継するためのネットワーク要素または他の中間点として機能することができる。
最も簡単なレベルには、リピータ、すなわち、層１で単にビットを中継する物理層リレーがある。
ブリッジは、リピータの１つ上のレベルを表わし、参照テーブルを使用して単一のＬＡＮ内でパケットを中継するデータ・リンク層エンティティである。ブリッジは、パケットを修正せず、宛先に基づいてパケットを中継するに過ぎない。大部分のブリッジは学習ブリッジである。このようなブリッジは、すでに送信元を学習している場合、このパケットをどのポートに中継すべきかがすでにわかっている。ブリッジは、まだ宛先へパケットを中継していない場合、宛先のポート位置がわからず、着信ポートを除くブロックされていないすべての出力ポートへパケットを中継する。ブリッジは、送信元がパケットをどのポートへ送信するかについての知識を得ることを除いて、ネットワーク・トポロジの知識を有しない。多くのＬＡＮは、ブリッジのみを使用して実装することができる。
ルータは、ＬＡＮ同士の間でパケットを中継することのできるネットワーク層エンティティである。ルータは、ルータがネットワークのトポロジについての知識を有する、他のルータと交換される情報に基づいて、送信元と宛先の間に存在する最良のパスを使用することができる。「最良の」パスに寄与する因子には、コスト、速度、トラフィック、帯域幅などを含めることができる。
ブルータ（brouter）は、ブリッジとして実行することのできるルータである。ブルータが知っている層３プロトコルの場合、ブルータはそのソフトウェアを使用して、そのパケットを中継するにはどうすべきかを判定する。他のすべてのパケットの場合、ブルータはブリッジとして働く。
スイッチは、パケットを中継するための一般化されたネットワーク要素であり、スイッチの構成と、スイッチが層２を実現するか、それとも層３を実現するかとは本発明と無関係である。
通常、ＬＡＮがトポロジ層を含むので、ブリッジは、端末局による協力なしにフラット・ネットワークでパケットを中継する。ＬＡＮがたとえば、層３機能をサポートするように設計されている場合、ルータはパケットをＬＡＮ内で相互接続し中継するために使用される。
ブリッジは、トポロジに関する意味を含まない媒体アクセス制御（ＭＡＣ）アドレスに基づいて宛先を判定するので、層経路指定アドレスを使用することができない。通常、ＭＡＣアドレスは製造時にデバイスに割り当てられる。端末局の数が増加するにつれて、トラフィック分離、帯域幅、障害検出、および管理が極めて困難または厄介になるので、ブリッジを介して相互接続できる局の数は限られる。
学習ブリッジは自己構成して、セットアップのための人間の対話をほとんど必要としない「プラグ・アンド・プレイ」エンティティになることができる。しかし、ルータは大規模な構成を必要とし、場合によっては端末ノードでの構成活動を必要とする。たとえば、ネットワークが伝送制御プロトコル／インタネット・プロトコル（ＴＣＰ／ＩＰ）を使用する際、各端末ノードはそのアドレスおよびサブネット・マスクをオペレータから手動で受信しなければならず、このような情報はルータに入力しなければならない。
一般に、ネットワークの規模および複雑さが増大するにつれて、ネットワークはより高い層でのより多くの機能を必要とする。たとえば、比較的小規模のＬＡＮは、リピータやブリッジなどの層１要素を使用することによって実施することができ、それに対して、非常に大規模なネットワークはルータなど層３までの要素を使用する。
（１）物理層セグメントに接続できる端末局の数、（２）物理層セグメント・サイズ、および（３）接続されたすべての端末局の間でセグメントの帯域幅を共用しなければならないために制限されるトラフィック量に関する固有の各制限のために、企業の要件を満たすには通常、単一のＬＡＮでは不十分である。これらの制約を解消するには、他のネットワーク構成単位が必要である。
上記で簡単に説明したように、ネットワーク内の端末局の数が増加するときはネットワークをサブネットワークに区画することができる。区画されたネットワーク内の典型的なアドレスには２つの部分、すなわち、サブネットワークを示す第１の部分と、サブネットワーク内のアドレスを示す第２の部分とが含まれる。アドレスの第１の部分がネットワークの地理的部分または論理的部分を定義し、第２の部分がサブネットワーク部分内の端末局を定義するので、これらの種類のアドレスはトポロジ情報を伝達する。層アドレス指定を用いた経路指定では、第１のパケットを宛先のサブネットワークに経路指定するステップと、第２のパケットをサブネットワーク内の宛先に中継するステップの２つのステップが使用される。
端末局は、製造時に固有のデータ・リンク・アドレス、すなわちＭＡＣアドレスを受け取り、それによって、アドレスの重複を懸念することなしにブリッジ・ネットワーク内の任意のＬＡＮに接続することができる。したがって、データ・リンク・アドレスはトポロジ情報を伝達することができない。ブリッジは、ルータとは異なり、データ・リンク・アドレスに基づいてパケットを中継し、したがって、層アドレスを解釈することができない。
現行のインタネットは、ユーザ数の増加およびマルチメディア・アプリケーションの需要の増大に対処しなければならない。将来のネットワークは、現在よりもずっと高い帯域幅、より多くのユーザ、およびネットワークごとのトラフィック分類要件をサポートする必要がある。統計研究は、ネットワーク・ドメインと、ネットワークに接続されたワークステーションの数が将来、現在よりも高速に成長することを示している。様々な特性を有する複数のトラフィック・タイプを同じ物理リンク上でサポートする傾向もある。このため、より大きなネットワーク帯域幅と、より効率的な資源利用が必要である。帯域幅要件を満たすために、ネットワーク上の速度は上昇傾向にあり、ギガビット速度に達している。
インタネットが普及しており、インタネットを使用した製品およびネットワークの数が増加しているので、ネットワーク設計者はしばしば、ＩＳＯ層２および層３のある特定の組合せを使用する。具体的には、典型的なインタネット関連ネットワークで、設計者は、（ＩＳＯの層１および層２と重複する）ＩＥＥＥ８０２標準による実施態様と、インタネット・プロトコル（ＩＰ）を組み合わせている。この組合せは、イントラネットなどの企業ネットワーク内でも普及しつつある。
層２ネットワーク要素でネットワークを構築することによってこの組合せをサポートすると、パケットが高速に中継されるが、トラフィック分離、冗長トポロジ、ならびに待機および管理に関する端末間方式（アクセス制御）に関する融通性はほとんどなくなる。層３要素のみでこのようなネットワークを構築すると性能が犠牲になり、したがって、この方法は、層３ヘッダを解析し、必要に応じてパケットを修正する必要に伴うオーバヘッドのために層上の観点から実際的ではない。さらに、層３要素のみを使用すると、サブネット当たり１つの端末局を有し、端末局同士の間の層２接続性のないアドレス指定モデルを使用せざるを得なくなる。
現在、層２デバイスと層３デバイスの組合せで構築されたネットワークが使用されているが、このようなネットワークには性能および融通性に関する欠点がある。具体的には、トラフィック分布の変動が増大しているので（ブラウザ・ベースのアプリケーションによって「サーバ」の役割が増大している）、ルータを高速に横切ることが重要である。
ブリッジを選択するか、それともルータを選択するかによって、通常、顕著な兼合い（ブリッジを使用する際には機能、ルータを使用する際には速度）がとられる。さらに、トラフィック・パターンにルータが含まれるかどうかにかかわらず、ネットワーク内の優先順位などのサービス特性は一般に、もはや均質ではない。このようなネットワークには、様々なトラフィック・タイプが存在し、帯域幅、遅延など様々なサービス特性を必要とする。
アプリケーションのトラフィック要件を満たすために、ブリッジング・デバイスは、回線速度で動作し、すなわち、パケットがデバイスに着信する速度以上の速度で動作すべきであるが、ドメイン／サブネットワークを横切ってパケットを中継することもできなければならない。現行の混成ブリッジ／ルータ設計は、正しいネットワーク供給機能を実現することができるが、現在の増大する速度要件を満たすことはできない。
層２パケットと層３パケットの両方を、あるサブネットワーク内で高速にかつ効率的に中継し、かつ他のネットワークへ高速にかつ効率的に中継するスイッチまたはネットワーク要素が必要である。さらに、層３パケットをワイヤ速度、すなわち、パケットがネットワーク要素に入るときと同じ速度で中継できるネットワーク要素が必要である。また、サブネットワーク内の層２中継が、層３経路指定で利用できる追加の機能を有し、優先順位や帯域幅予約など、ある種のアプリケーション用サービス特性をサブネットワーク内で実現することを可能にするネットワーク要素が必要である。
発明の概要
本発明は、受け取ったパケットを１つまたは複数の適切な出力ポートへ中継するマルチレイヤ・ネットワーク要素用のシステムおよび方法を提供することによって、上記の問題をほぼ解消することを可能にする。
本発明の実施態様には、各層についての連想メモリの１回のサーチに基づいて、入力ポートから入力されたパケットを１つまたは複数の適切な出力ポートへ中継する方法が含まれる。
パケットは入力ポートで受け、このパケットから第１のパケット情報と第２のパケット情報の両方が判定される。第１のパケット情報に対して連想メモリ参照が行われ、その結果、２つの可能な中継決定が下される。第１のパケット情報中の宛先アドレスが既知のアドレスである場合、すなわち、連想メモリ内で一致するエントリが見つかった場合、可能な出力ポートは連想メモリ内で見つかった宛先アドレスに関連するポートである。宛先アドレスが連想メモリ内のどのエントリとも一致しない場合、着信ポートを除くすべてのポートが可能な出力ポートの候補になる。
第２の情報についても連想メモリ参照が行われる。サービス特性問題を含め、第２の情報の結果として様々な処置がとられる。第１のサーチの結果と第２のサーチの結果が組み合わされ、２回のサーチによって示された可能な出力ポートのうちのどれがこのパケットにより適切であるかが判定される。次いで、パケットが適切な出力ポートへ中継される。
本発明によるマルチレイヤ・ネットワーク要素は、層２パケットと層３パケットの両方をサブネットワーク内で高速にかつ効率的に中継し、かつ他のネットワークへ高速にかつ効率的に中継する。このネットワーク要素は、層２と層３の両方でパケットを認識し、この両方について中継決定を下す。いくつかの例では、マルチレイヤ・ネットワーク要素は層４からの情報も使用する。
連想メモリは、層２と層３の両方での中継決定をハードウェア・レベルで下すことができる。層３中継決定をハードウェア・レベルで下すことによって、ワイヤ速度、すなわち、パケットがネットワーク要素に入るときと同じ速度での層３の中継が可能になる。新しい層３フローまたは経路を学習する際には、通常は層３中継に関連するソフトウェアが使用される。
本発明は、層２トラフィック用のデフォルト処置を定義する機構も含む。このデフォルト処置は特に、ネットワーク要素が層２で中継を行う際にＱｏＳを与えるようにＱｏＳを定義することができる。ＱｏＳの例には優先順位および帯域幅予約が含まれる。
当業者には、以下の詳細な説明から、本発明の他の実施形態が容易に明白になろう。この説明では、本発明を実施するために企図された最良の態様を例示することによって本発明の実施形態のみを示し説明する。当然のことながら、本発明では、その趣旨および範囲から逸脱せずに、他の異なる実施形態が可能であり、本発明の詳細のうちのいくつかは様々な自明の点で修正することができる。したがって、図面および詳細な説明は、例示的なものとみなすべきであり、制限的なものとみなすべきではない。
【図面の簡単な説明】
第１図は、本発明によるマルチレイヤ・ネットワーク要素を組み込んだシステムを示す図である。
第２図は、第１図のマルチレイヤ・ネットワーキング要素を示す図である。
第３図は、マルチレイヤ・ネットワーク要素の切換え要素を詳しく示す図である。
第４図は、切換え要素の中継論理を詳しく示す図である。
第５図は、第４図のクラス論理を詳しく示す図である。
第６図は、マルチレイヤ・ネットワーク要素を通るパケットのパスをどの情報が指示しているかを判定する際に使用されるプロセスを示す図である。
第７図は、ネットワーク要素からパケットをどのように中継すべきかを判定する際の情報依存性を示す図である。
詳細な説明
第１図は、本発明によるマルチレイヤ・ネットワーク要素を組み込んだシステムを示す。このシステムは、マルチレイヤ・ネットワーク要素、様々なネットワーク、端末局、ルータ、およびブリッジを含む。一例を挙げると、本明細書で広義に実施し、説明するように、本明細書によるマルチレイヤ・ネットワーク要素１２を組み込んだシステム１０は、ネットワーク１４および１６、端末局１８、ルータ２４、ブリッジ２６、およびローカル・エリア・ネットワーク（ＬＡＮ）２８を含む。
ブリッジ２６は、いくつかのＬＡＮ２８および端末局１８をネットワーク１４に接続すると共に互いに接続し合う。ブリッジ２６は従来型の学習ブリッジでよい。ブリッジ２６は、ブリッジ２６の１つのポート３０上に現れるパケットを送信する端末局１８のアドレスを追跡する。端末局１８は、情報パケットを送受信することのできる任意のデバイスでよい。通常、端末局１８はパーソナル・コンピュータ、ワークステーション、プリンタ、サーバ、および／またはネットワークに接続できる他のデバイスである。
ブリッジ２６は最初、パケット宛先がそのポートのどれであるかを知らず、パケットを適切に中継するために着信パケットをすべてのポートへ送らなければならない。ブリッジ２６は、ブリッジ２６がすでに認識しているアドレス宛てのパケットを受け取ると、宛先がどのポート上にあるかを知り、したがって、すべてのポートにパケットを送る必要がなくなる。ついには、ブリッジ２６は、十分なアドレスを学習し、すでに学習したアドレスのポートへの不要な送りをなくすことができる。もちろん、端末局１８がブリッジ２６上のポートを変更すると、ブリッジ２６は端末局１８のポートを再学習しなければならない。
ブリッジ２６は通常、パケットを修正せず、ネットワーク１４のトポロジに関する情報を含まず、パケット・ヘッダのほとんどの部分を調べない。ブリッジ２６は、パケットを修正せず、かつ送信元について学習し宛先へ中継することにしか関与しないので、高速に動作する。通常、ブリッジ２６は参照テーブルを使用して送信元および宛先をサーチする。
ルータ２４はネットワーク１４をネットワーク１６に接続する。一例として１つのルータ２４しか図示されていないが、他のネットワークまたは端末局１８を接続する多数のルータが存在してよい。ルータ２４は、ネットワーク１４とネットワーク１６の間で必要な通信を行う従来型のルータでよい。このようなルータは、経路計算、パケット分割、および輻輳制御を含め、パケットを適切な宛先へ中継するための層３機能を含む。この種のルータは、たとえば、「Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎｓ：Ｂｒｉｄｇｅｓ  ａｎｄ  Ｒｏｕｔｅｒｓ」（Ｒａｄｉａ  Ｐｅｒｌｍａｎ、Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ発行）に記載されている。ルータ２４は、パケット用の最適な経路を判定するためにネットワークのトポロジについての知識を有さなければならない。ルータ２４のネットワークについての知識は、ネットワーク１４に接続された複数のこのようなルータ２４の間で渡されるトポロジ情報を介して得られる。
ルータ２４で実行されるソフトウェアは、着信パケットを解析し、使用されるプロトコルの種類や、送信元および宛先を含め、パケットに関する様々な特性を判定する。優先順位因子や、帯域幅予約などのサービス特性（ＱｏＳ）因子など、パケットの調査に基づく他の判定が必要になることもある。この場合、ルータ２４は、抽出された情報を使用して、ルータ２４のメモリに記憶されているトポロジ情報および経路情報に基づいてパケットの次の宛先を算出する。ルータ２４はまた、ＱｏＳ規則およびＱｏＳ処置を適用する。
次の宛先を算出するルータ２４のプロセスは、メモリへの多数のアクセスと、この情報からの経路の算出が必要になることがある。さらに、パケットは通常、処理が行われている間に受信され記憶される。ルータ２４がパケットに対してどんな処置が必要であるかを判定した後、メモリに記憶されている状態のパケットを修正するか、あるいはルータ２４から出力される途中のパケットを修正する。ルータ２４は通常、パケットの層２送信元および宛先を置き換え、パケットのチェックサムを更新し、かつパケットの寿命に関する問題を処理することが要求される。
従来型のルータ２４が実行する機能を実施するために、ソフトウェアは、メモリ位置を調べ、パケットを修正し、いくつかのフィールド用の新しい値を算出する。このような処置は、パケットの最良の経路を判定することや、ＱｏＳ機能を実現することなど、ブリッジ２６で見られるような簡単なパケット中継以外の拡張された機能を実現する。しかし、従来型のルータ２４では、このような処置は貴重な時間を費やす。
ネットワーク１４は、それに接続されたすべての要素の通信経路を形成する。第１図の例では、これらの要素には、マルチレイヤ・ネットワーク要素１２、ルータ２４、およびブリッジ２６が含まれる。任意の数の要素を多数の方法でネットワーク１４に接続することができる。第１図は、１つの可能な組合せのみを示している。ネットワーク１４に接続される要素は、ネットワーク１４が特定のサイズや構成のネットワークであることを必要としない。端末局１８およびブリッジ２６の場合、ネットワーク１４についての詳細なトポロジ知識は必要とされない。
本発明によるマルチレイヤ・ネットワーク要素１２は、様々な要素をネットワーク１４に接続すると共に互いに接続し合う。一例として示すように、マルチレイヤ・ネットワーク要素１２はＬＡＮ２８、端末局１８、およびネットワーク１４を接続する。マルチレイヤ・ネットワーク要素１２はブリッジの機能とルータの機能を組み合わせる。マルチレイヤ・ネットワーク要素１２は、ルータとして機能する場合、ネットワーク１４に関するトポロジ情報を含み、パケットをその宛先にインテリジェントに経路指定し、同時に、通常はルータ２４で行われる機能を、関連する層３で実現する。マルチレイヤ・ネットワーク要素１２は、ブリッジとして機能する場合、送信元／ポートの組合せを学習し、層２パケットを中継する。マルチレイヤ・ネットワーク要素１２は、ある種の層３処理が、ブリッジ２６で行われる層２切換えと同程度に高速に動作するという点で、従来型のブリッジ／ルータの組合せと異なる。
第２図は、第１図のマルチレイヤ・ネットワーク要素１２を詳しく示す図である。本発明の一実施形態によるマルチレイヤ・ネットワーク要素１２は、プロセッサ３２、プロセッサ・メモリ３４、切換え要素３６、複数のネットワーク要素ポート３８、中継メモリ４０、連想メモリ４２、およびパケット・バッファ・メモリ４４を含む。端末局１８、ＬＡＮ２８、およびネットワーク１４は、複数のネットワーク要素ポート３８を使用してマルチレイヤ・ネットワーク要素１２に接続される。他のマルチレイヤ・ネットワーク要素１２をマルチレイヤ・ネットワーク要素１２に接続することもできる。
切換え要素３６は、プロセッサ３２、中継メモリ４０、連想メモリ４２、およびパケット・バッファ・メモリ４４にも接続される。プロセッサ３２はメモリ３４にも接続される。中継メモリ４０と連想メモリ４２は、互いに接続されると共に、切換え要素３６にも接続される。
切換え要素３６は、経路を算出するか、あるいはあらゆるパケットに対する適切な処置を決定するためにプロセッサ３２に依存する必要なしに、層２情報と層３情報の両方を使用し、場合によっては中継メモリ４０および連想メモリ４２に記憶されたある種の層４情報も使用して大部分のパケット中継機能を実行する。
プロセッサ３２は、切換え要素３６が処理できないタスクを実行する。たとえば、新しい層３経路を算出しなければならないとき、プロセッサ３２は、マルチレイヤ・ネットワーク要素１２からアクセスできるネットワークのトポロジに関する詳細な情報を含むプロセッサ・メモリ３４を使用する。プロセッサ３２は、主としてソフトウェア・プログラミング・ユニットをメモリ３４へのアクセスと共に使用して計算を行う。切換え要素３６は、中継メモリ４０および連想メモリ４２を使用して、主としてハードウェアで決定を下す。中継メモリ４０および連想メモリ４２は、メモリ３４に含まれる情報の一部のみを含み、高速のアクセスおよび検索ができるように構成される。
第３図は、切換え要素３６および切換え要素３６のプロセッサ３２との接続、複数のネットワーク要素ポート３８ａないし３８ｎ、中継メモリ４０、連想メモリ４２、パケット・バッファ・メモリ４４を詳しく示す図である。切換え要素３６は、入力ポート５０ａないし５０ｎ、中継論理５２、パケット・メモリ・マネージャ５４、および出力ポート５６ａないし５６ｎを含む。各入力ポート５０ｉおよび出力ポート５６ｉはネットワーク要素ポート３８ｉに対応する。各入力ポート５０は、中継論理５２およびパケット・メモリ・マネージャ５４の両方にも接続される。
所与のｉの場合、入力ポート５０ｉは、それぞれのマルチレイヤ・ネットワーク要素ポート３８ｉからパケットを受け取り、パケットが正しいかどうかを試験する。パケットは、不適切に形成されている場合は破棄される。この初期スクリーニングを通過したパケットは、入力ポート５０ｉによって一時的にバッファされる。入力ポート５０ｉは、受け取ったパケットの少なくとも最初の６４バイトをバッファした後、ヘッダを中継論理５２に渡す。
中継論理５２は、プロセッサ３２、中継メモリ４０、および連想メモリ４２に接続されている。中継論理５２はいくつかの機能を実行する。中継論理５２は最初、パケットをスクリーニングし、このパケットがたとえばサブネットワーク・アクセス・プロトコル（ＳＮＡＰ）によってカプセル化されているかどうか、あるいはたとえば仮想ＬＡＮ（ＶＬＡＮ）識別子によってタグ付けされているかどうかを判定する。パケットがこの２種類のうちのどちらかである場合、中継論理５２はオフセット情報を使用して、次の処理に必要な適切な層ヘッダ情報を見つける。
中継論理５２はまた、中継メモリ４０をサーチし層２および／または層３での一致を見つける。このサーチには、層４でのある種の情報を含めることもできる。好ましい実施形態では、中継メモリ４０は、層２切換えと層３切換えの両方に関する情報を記憶する内容アドレス可能メモリ（ＣＡＭ）であり、ある種の層４情報を含むことができる。一致が見つかった場合、連想メモリ４２に記憶されており中継メモリ４０内の一致するエントリが指し示すデータは、パケットを適切な宛先へ中継するために切換え要素３６が行わなければならない処置を定義する働きをする。
他の実施形態では、順次アクセス・ランダム・アクセス・メモリを使用して中継メモリ４０を実装することができる。この実施形態では、特定のキーに対してハッシュ関数が実行される。結果として得られるハッシュ値は、事前にハッシュされたキーに関連するメモリ４２へのアドレスである。
他の実施形態では、中継メモリ４０および連想メモリ４２を単一のランダム・アクセス・メモリに含めることができる。この単一ランダム・アクセス・メモリのある実施形態では、エントリに順次アクセスすることができ、ハッシュ・フロント・エンドが必要である。この単一ランダム・アクセス・メモリの他の実施形態はＣＡＭでよい。
パケット・メモリ・マネージャ５４は、パケット・バッファ・メモリ４４、入力ポート５０ｉ、および出力ポート５６ｉに接続される。上記で指摘したように、各出力ポート５６ｉは複数のマルチレイヤ・ネットワーク要素ポート３８ｉのうちの１つに対応する。特定のマルチレイヤ・ネットワーク要素ポート３８ｉに対応する入力ポート５０ｉと出力ポート５６ｉは、別々のユニットとして示されているが、情報はネットワーク要素ポート３８を介して両方向に流れるので密に結合される。
中継論理５２は、パケットをどのように処理するかを判定した後、この情報を入力ポート５０ｉに渡す。入力ポート５０ｉは、パケットをフィルタしない場合、パケット・バッファ・メモリ４４内のメモリ位置をパケット・メモリ・マネージャ５４から解放することをポインタに要求する。パケット・メモリ・マネージャ５４は、パケット・バッファ・メモリ４４内の空きメモリ空間の位置アドレスを示すことによって応答する。次いで、入力ポート５０ｉは、パケット・メモリ・マネージャ５４による書込みアクセスを要求し、ポインタおよびデータをパケット・メモリ・マネージャ５４へ送信する。
いくつかの例では、入力ポート５０ｉは、中継論理５２からの指示に応じてパケットを修正しなければならない。入力ポート５０ｉは、パケットがパケット・バッファ・メモリ４４に記憶される前にこのような修正を施す。パケット・メモリ・マネージャ５４は、入力ポート５０ｉから要求を受けると、入力ポート５０ｉによって指定された適切なアドレス位置にパケットを配置する。次いで、入力ポート５０ｉは、中継論理５２から入力ポートで受け取った情報による判定に応じて、パケットがどこに記憶されるかに関する情報を適切な出力ポート５６に渡す。
好ましい実施形態では、適切な出力ポートに出力ポートをまったく含めなくてもよく、あるいは１つまたは複数の出力ポートを含めることもできる。出力ポート５６ｉは、パケット・マネージャ５４にパケットを要求してそれを受け取り、送信条件が満たされたときに、関連するネットワーク要素３８ｉへ送信する。いくつかの例では、出力ポート５６ｉはそのＭＡＣアドレスを送り出すパケットの送信元アドレスとして置かなければならない。入力ポート５０ｉに渡される中継論理５２からの結果によってこの状況が示された場合、入力ポート５０ｉはこのような表示をパケット・バッファ・メモリ４４内に配置する。出力ポート５６ｉは、この表示を検出し、パケットが出力ポート５６ｉから離れる際にそのアドレスを置き換える。したがって、切換え要素３６の出力側で必要になるパケットに対する修正はささいなものに過ぎない。
上記の実施形態によれば、中継メモリ４０が層２切換えまたは層３経路指定に関する一致するエントリを含むとき、マルチレイヤ・ネットワーク要素１２はワイヤ速度で動作する。ワイヤ速度は、層１と層２の所与の組合せがパケットを中継できる最大パケット・レートでの速度によって定義される。ネットワークに接続された要素が、パケットがこの要素に入るときの速度以上の速度でこのパケットを処理できる場合、この要素はワイヤ速度で動作する。
好ましい実施形態では、ネットワーク要素１２は、６４バイト・パケットの定常ストリームがすべての入力ポート５０に同時に入る最悪ケース・シナリオでパケットを処理する。層３情報が中継メモリ４０に含まれていない場合、パケットは、層２情報を使用して中継され、次いでプロセッサ３２内のソフトウェアによって従来型の層３処理に従って処理される。
従来型の層３処理とは異なり、プロセッサ３２は、学習され作成された新しい層３エンティティを配置することによって中継メモリ４０を更新することができる。新しいエンティティと一致するパケットはワイヤ速度で中継され、すなわち、パケットに関する中継決定は、次のパケットが着信する前に下される。
第４図は、中継論理５２を詳しく示す図である。中継論理５２は、クラス論理６０、層２（Ｌ２）論理６２、層３（Ｌ３）論理６４、およびマージ論理６６を含む。入力ポート５０ｉは、クラス論理６０、Ｌ２論理６２、Ｌ３論理６４、およびマージ論理６６に接続されている。図を簡単にするために１つの入力ポート５０ｉしか示されていないが、すべての入力ポート５０が同様に接続されている。中継論理５２は各入力ポート５０ｉごとに重複されないことが好ましい。その代わりに、すべての入力ポート５０が中継論理５２へのアクセスに関して調停する。
Ｌ２論理６２は、中継メモリ４０に接続され、層２中継決定のために、中継メモリ４０に記憶されているエントリと突き合わされるキーを作成する責任を負う。中継メモリ４０の構成に応じて、中継メモリ４０のすべてのエントリまたはいくつかのエントリにこのキーを適用することができる。
Ｌ３論理６４は、中継メモリ４０に接続され、層３中継決定のために、中継メモリ４０に記憶されているエントリと突き合わされるキーを作成する責任を負う。Ｌ２サーチキーの場合と同様に、中継メモリ４０のすべてのエントリまたはいくつかのエントリにＬ３キーを適用することができる。
本発明の議論は、層２と、層３と層４の組合せとを使用して行われているが、当業者には、中継メモリ４０におけるパケットの任意の部分またはそのヘッダ、あるいはそれらの組合せのサーチと、中継メモリ４０のエントリの作成とが、上記の説明から容易に導かれることが認識されよう。したがって、本発明はＩＳＯ標準による層の特定の実施形態に限らない。
Ｌ３論理６４は、キーを作成するとき、パケット・ヘッダおよび入力ポート５０ｉ識別子を含む入力ポート５０ｉからの情報と、クラス論理６０からの情報を使用する。マージ論理６６は、クラス論理６０、連想メモリ４２、パケット・メモリ・マネージャ５４、およびプロセッサ３２に接続される。マージ論理６６は、クラス論理６０からの情報と、連想メモリ４２から出力された情報とを使用して、パケットをその適切な宛先へ中継するにはどうすればよいかを入力ポート５０ｉに指示する。いくつかの例では、適切な宛先がなく、パケットは破棄される。他の例では、マージ論理６６が、プロセッサ３２に、受け取ったパケットに応答してある種のタスクを実行しなければならないことを示す。
動作中に、入力ポート５０ｉは、マルチレイヤ・ネットワーク要素ポート３８ｉからパケットを受け取り、ヘッダおよび入力ポート５０ｉ識別子を中継論理５２へ送信する。中継論理５２はまず、中継メモリ４０をサーチし、パケットを送信する層２送信元に関するエントリが中継メモリ４０に含まれているかどうかを判定する。マルチレイヤ・ネットワーク要素１２がすでに同じ層２送信元からパケットを受け取っており、そのパケットがどのポートに接続されるかを学習している場合、一致するエントリが存在する。一致するエントリが存在しない場合、中継論理５２は、送信元アドレスを含むエントリを中継メモリ４０内に配置することによって学習機能を実行する。中継論理５２は、新しい送信元アドレスを学習したことをプロセッサ３２に示す。いくつかの例では、層２送信元は、中継メモリ４０に存在するが、着信パケットの入力ポート５０ｉとは異なる入力ポート５０ｉに関連付けられる。この例では、一致が層２送信元と入力ポート５０ｉの両方に依存するので、中継メモリ４０には一致するエントリが存在しない。
中継論理５２はまた、中継メモリ４０で宛先アドレスのポートを示すエントリをサーチする。一致が見つからない場合、中継論理５２は、すべてのアクティブ出力ポート５６へパケットを中継するよう入力ポート５０ｉに指示する。
上記の好ましい実施形態で説明した層２情報の場合、中継メモリ４０は、送信元のＭＡＣアドレスの値と、連想メモリ４２内の対応するエントリを指し示すポインタとを含む。タグ付きパケットを使用する場合、中継メモリ４０には、ＶＬＡＮ識別子など追加の層２情報を含めることもできる。連想メモリ４２は、中継メモリ４０内の対応するエントリに関する他の情報を含む。中継メモリ４０内の層２情報は好ましくは、層２サーチを行うのに必要な最小量の情報に限られる。層２サーチでは、この情報は好ましくはＭＡＣアドレスおよび入力ポート５０ｉのみであるが、ＣＡＭには、タグ付きアドレス指定に関する情報を含めることもできる。
好ましい実施形態では、中継メモリ４０は層２サーチに関する複数の一致を可能にする。プロセッサ３２は、エントリの順序が、中継メモリにアドレス／ポートの組合せが存在する場合にこのエントリが選択されるような順序になるようにする。この特定の送信元／ポートの組合せが見つからない場合、層２宛先サーチにより、共にそれぞれのエントリにおいてパケットが中継される出力ポート５６を定義する既知のＶＬＡＮエントリまたは未知のＶＬＡＮエントリが少なくとも一致するように、ＶＬＡＮ情報を含む突合せを行うことができる。
層３切換えは、より複雑であるが、層２切換えに類似している。中継論理５２は、中継メモリ４０で、Ｌ３論理６４によって作成された層３サーチキーと一致するエントリをサーチする。一致が存在する場合、連想メモリ４２内のこの情報は、このパケットをどのように処理すべきかを入力ポート５０ｉに指示するためにマージ論理６６によって使用される。サーチにおいて一致が見つからなかった場合、切換え要素３６は、ブリッジとしてパケットを中継し、パケットのすべてまたは一部を、さらに処理するためにプロセッサ３２に渡すことができる。Ｌ３論理６４は、パケット・ヘッダ、入力ポート５０ｉ、およびクラス論理６０から得た情報を使用してサーチキーを作成する。
クラス論理６０はパケット・ヘッダ中の情報を調べ、カプセル化情報を判定し、かつ層３情報に関するクラスを判定する。クラス論理６０は第５図に詳しく示されている。クラス論理６０はカプセル化論理セット６８およびクラス処置論理７０を含む。各入力ポート５０ｉはカプセル化論理６８とクラス処置論理７０の両方に接続される。クラス処置論理７０はカプセル化論理６８、Ｌ３論理６４、およびマージ論理６６に接続される。
カプセル化論理セット６８は、パケット・ヘッダを調べ、必要に応じて、層３情報と層４情報用のヘッダへのオフセットを判定することに責任を負う。
クラス論理６０の出力は、クラスだけでなく、層３キーを作成する際にＬ３キー論理によってパケット・ヘッダのどのフィールドを使用すべきかと、優先順位情報と、このクラスのパケットに関して中継メモリ４０内に一致が存在しない場合にマージ論理がどうすべきかとを識別する。クラスは、少なくともフロー、優先順位、トラフィック分類、およびハードウェア経路指定を識別するのを助ける。
好ましい実施形態では、一致が起こらないとき、４つの可能な結果がある。第１に、ヘッダをプロセッサ３２へ送信することができる。これは、層３フローを識別する可能性が存在するときに企図される。第２に、パケット全体をプロセッサ３２にコピーすることができる。これは、最初にユニキャスト経路を設定するとき、あるいは最初にある経路またはフローを調べることによってファイアウォール保護を形成するとき、あるいはサーチキーを作成するのに必要な情報がパケット内のどこに存在するのか不明なときに企図される。第３に、層２結果を中継することができる。第４に、パケットを破棄することができる。ネットワークの構成または使用中の特定のプロトコルに応じて他の処置も可能であり、このような処置は、当業者には容易に明らかになろう。
クラスが考慮する基準には、クラスをアドレスに依存するクラスとみなすか、それともアドレスに依存しないクラスとみなすかがある。クラス識別子を追加することによって、切換え要素３６は、様々なネットワーク状況に応答することができ、中継メモリ４０内の情報の構成および記憶が簡略化される。
クラス論理６０によって識別することのできるアドレス独立クラスの代表的な例には、アドレス・レゾリューション・プロトコル（ＡＲＰ）、インタネット・グループ管理プロトコル（ＩＧＭＰ）、逆ＡＲＰ（ＲＡＲＰ）、グループ・アドレス登録プロトコル（ＧＡＲＰ）、プロトコル独立プロトコル（ＰＩＭ）、および予約プロトコル（ＲＳＶＰ）が含まれる。アドレス依存クラスの代表的な例には、ＴＣＰフロー、非分割ＵＤＰフロー、分割ＵＤＰフロー、ハードウェア経路指定可能ＩＰ、およびＩＰバージョン６が含まれる。もちろん、他のプロトコルを同様に認識することができる。
クラス論理６０は、あらゆる着信パケットに関して明確なクラス結果を生成する。認識されていないプロトコルの場合、クラス論理６０は依然としてクラス結果を生成するが、このクラス結果は、認識されていないプロトコルと、この種のクラスのパケットに対してどんな処置をとるべきかとを示す。
一般に、層３フローは、アドレスに依存し、単なるトラフィック・クラス以上の情報を含む。プロセッサ３２によって中継メモリ４０内に追加の情報が配置されている例では、特定のクラスに関する複数のエントリが中継メモリ４０内にある可能性がある。プロセッサ３２は、一致するエントリのうちで、使用されるエントリが最も適切なエントリであるようにする。様々なクラスは、特定のクラス内で実現されるパケットの種類に応じて、最も適切な一致エントリはどんなエントリかに関するそれぞれの基準を有することができる。中継メモリ４０内に一致する複数のエントリを有することによって得られる融通性は、特定のフローについて最良の一致が実現されるようにすることによってさらに高められ、この特徴のために、同じ種類のクラス内のパケットに対して様々な処置が可能である。
好ましい実施形態では、プロセッサ３２は、新しい層３を配置するとき、特定のサーチ基準に関する最良の一致がメモリ内で最も早く見つかるように、層３エンティティを再順序付けする。当業者には、同じ結果を実現する多数の異なる実施形態が認識されよう。好ましい一実施形態では、プロセッサ３２は、特定のクラス内の一致する可能性のある最も長いキーを有するエントリがメモリ内の１番上の位置または最も早い位置に来るようにする。しかし、プロセッサ３２は、特定のトラフィック・パターンについて、最も重要な一致が多数のキーと一致する一致になるように、一致する最も長いエントリの上にエントリを配置することもできる。たとえば、特定のクラスについて、「ｈｔｔｐ」などのアプリケーション・ポートに関する情報のみに基づいて一致するエントリが、層４アプリケーション以外のアプリケーションにも一致する可能性のあるエントリよりも優先される。他の例では、クラス・タイプ内で特定の送信元に一致を強いることがある。これは、オペレータが、宛先や層４アプリケーションに関わらずに、特定のサーバから来るパケットに高い優先順位を与える必要があるときに行うことができる。
好ましい実施形態では、マージ論理６６は、パケットの除去、パケットの層２での中継、パケットの層３フローとしての中継、パケットの層３経路としての処理、およびパケットのマルチキャスト経路としての中継の、パケットに対する各処置のうちの１つを講じるよう入力ポート５０ｉに命令する。マージ論理６６が入力ポート５０ｉに除去するよう命令するパケットは、サポートされない情報として判定されるある種のヘッダ情報を含むパケットである。パケットが層２で中継されるクラスの例には、分割ＵＤＰフローと、ヘッダ情報が未知の情報であることを示すクラスが含まれる。第１のパケットの後に続く分割パケットは、たとえばＵＤＰポートなど層４ヘッダ情報のすべての関連情報を含むわけではないので、分割ＵＤＰは層２情報を使用して動作する。層２中継は、特定のクラスに依存するアドレス独立クラスに対して任意選択である。
マージ論理６６は、入力ポート５０ｉに、ＴＣＰフローまたは非分割ＵＤＰフローに層３フロー情報を使用するよう指示する。フローは、マルチレイヤ・ネットワーク要素１２が接続されたサブネット内で中継されるパケットであり、中継時にヘッダの修正を必要としない。一方、経路は、ヘッダ情報をマルチレイヤ・ネットワーク要素１２によって中継する前に修正しておかなければならないように、サブネットの外部の供給源から来るか、あるいはサブネットを超えたアドレスへ送られるパケットである。好ましい実施形態では、パケットを層３経路として中継する命令は、このパケットがハードウェア経路指定可能ＩＰクラスのパケットであることをクラスが示すときにマージ論理６６から来る。言いかえれば、着信パケットの宛先がマルチレイヤ・ネットワーク要素１２のクラス論理６０によって認識され、次いで、マルチレイヤ・ネットワーク要素１２がパケットを次のホップ宛先へ中継する。このホップ宛先は経路指定プロトコルによって決定される。当業者には、このような種類の結果が必要とされる他の状況が本発明から容易に認識されよう。
本発明の１つの特徴は、フローをブリッジし、すなわち、中継メモリを使用し、ネットワーク要素１２を介して層３機能を使用して層２パケットを高速に中継する能力である。ある種のフローはこの種の活動に特に適しており、このようなフローには静的フロー、自己検出フロー、ＲＳＶＰなどの予約プロトコルによってセットアップされるフローが含まれる。静的フローとは、ネットワーク要素１２のオペレータによって事前にセットアップされるフローであり、選択された層２ネットワーク・トラフィック用の層３機能を定義し、エージングを受けない。自己検出フローは、アプリケーションの種類の関数である。
最初、どの層３エントリも一致しないので、これらのフローは層３機能なしでブリッジされる。パケット・ヘッダはプロセッサ３２へ送信され調べられる。プロセッサ３２は、パケットを分析し、プログラムされたヒューリスティクスに基づいて、このパケット・タイプに関して中継メモリ４２内に層３エントリを作成するかどうかと、どのように作成するかを判定する。たとえば、「ｐｉｎｇ」パケットは、せいぜい過渡パケットであるので、層３フロー・エントリを保証しない。
ＲＳＶＰなどのプロトコルは、ネットワークと信号のある種のサービス機能を予約し、いくつかのパケットがこの同じパスに従うことを示す働きをする。この場合、このことは、予約プロトコルを使用して層２での中継を行うが、優先順位など層３以上の機能を追加してマルチレイヤ・ネットワーク要素１２を介した必要なサービス・クラスを確保するアプリケーションに有用である。
第６図は、クラス論理６０および連想メモリ４２から得た情報を使用してマージ論理６６によって生成された好ましい結果を示す。現在好ましい結果は、（１）層２中継結果を使用すること、（２）層３中継結果を使用すること、および（３）層３結果を使用し、同時に層２トポロジを使用することの３つである。いくつかの例では、識別されたクラスがあるが、中継メモリ４０内に一致するエントリがなく、この例では、このクラス用のデフォルト処置が使用される。層３デフォルト結果の使用を層３中継結果の使用のサブセットとみることができることに留意されたい。
ファイアウォール技術によって実現されるような保護を実現するために、あるクラス・タイプのパケット用にデフォルト結果を設定することができる。ファイアウォール・アプリケーションでは、マルチレイヤ・ネットワーク要素１２は、定義されたクラスのパケットを、後で処理するためにプロセッサ３２に送るようにプログラムされる。
第６図を参照するとわかるように、パケットを、認識されていないクラスのパケットであるとクラス論理６０が判定した場合（ステップ１１２）、このパケットは、層２結果を使用して処理される（ステップ１１４）。パケットのクラスが認識されており（ステップ１１２）、層２結果を強制すべきであることを連想メモリ４２またはクラス論理６０が示す場合（ステップ１１６）、他の情報に関わらず、層２結果が使用される（ステップ１１８）。
層２サーチの結果として層２結果が強制されることがなく（ステップ１１６）、かつ層３キーが一致する場合（ステップ１２０）、層３情報が検査され、層３情報が層２ポート決定を強制するかどうかが判定される（ステップ１２２）。層３情報が層２中継結果を強制する場合、層２サーチの結果によって出力ポートが決定されるが、ＱｏＳ因子など、層３サーチの結果に含まれる他の情報が適用される（ステップ１２４）。層３結果が層２中継結果の強制を要求しない場合、層３結果は入力ポート５０ｉに渡される（ステップ１２６）。ステップ１２０で層３の一致がない場合、クラス論理６６によって生成されたこのクラス用のデフォルト処置が入力ポート５０ｉに渡される（ステップ１２８）。Ｌ３クラス・デフォルト処置を使用する際に、パケットを入力ポート５０ｉによって出力ポート５６に中継せずにプロセッサ３２に送信することも企図される。
したがって、クラスが認識されており、層３サーチであるエントリが一致した場合、層２出力ポート結果を使用することを意味するかどうかにかかわらず、層３サーチによって定義された処置が、入力ポート５０ｉへの指示を支配する。層３サーチでどのエントリも一致しない場合は、層２結果を使用してパケットが処理され、必要に応じて、パケットまたはパケットのヘッダをプロセッサ３２へ送信し、後で層３情報を処理することができる。
層３の一致に関して連想メモリ４２から得られた情報が、層２結果の強制を示す場合、層２結果を使用してパケット中継が行われるが、サービス特性に関する情報は依然として層２中継決定時に実現することができる。このように、マルチレイヤ・ネットワーク要素１２は、同じサブネットまたはＶＬＡＮ内の層２ブリッジングまたは経路指定にサービス特性因子を適用することができることによって、通常の層２ブリッジの上または下に追加の機能を追加することができる。
したがって、入力ポート５０ｉは、受け取ったパケットのヘッダおよびそのポート指定を中継論理５２に与える。中継論理５２の出力は、ヘッダ情報と着信ポートの関数であり、入力ポート５０ｉがパケット・メモリ・マネージャ５４と協働してパケット・バッファ・メモリ４４にパケットを記憶すべきかどうかと、特定の出力ポート５６ｉ上でパケットに優先順位を関連付けるべきかどうかと、入力ポート５０ｉが、パケットをパケット・バッファ・メモリ４４に渡す前にヘッダ置換などの修正をパケットに加えるべきかどうかを示す。したがって、たとえば、ユニキャスト・パケットやマルチキャスト・アドレスを経路指定する際にＭＡＣアドレスを挿入し新しいパケット・チェックサムを算出することを除いて、出力ポート５６ｉがヘッダを修正する必要はない。
中継メモリ４０内の層２情報および層３情報は、サーチに利用される際に互いに独立して利用される。ただし、層２エントリに含まれるある種の情報は層３エントリで重複することができる。また、層３エントリは、ＵＤＰポートやＴＣＰポートなどある種の層４情報を含むこともできる。当業者には、他のヘッダ層またはパケット本体から得られる他の情報を含めることによって追加することのできる他の機能が容易に認識されよう。このようなことは、本発明の範囲内であるものとみなされる。層２サーチと層３サーチの両方が完了した後、マージ論理６６は、入力ポート５０ｉがこのパケットにどんな処置を講じるべきかを判定する。
層２で学習された送信元アドレス、またはトポロジ変更の結果として生じる可能性のある変化は、層２送信元サーチ結果の一部としてプロセッサ３２に伝達される。前述のように、層２情報には、仮想ＬＡＮ（ＶＬＡＮ）情報をサポートするために使用されるようなタグ付き情報を含めることができる。ＶＬＡＮ情報を使用すると、層２中継を、特定のＶＬＡＮまたは特定のタグ付けに関連するポートのみに制限する助けとなる。
連想メモリ４２内の各エントリは、以下の結果に関する情報を含むことができる。エントリは、パケットのすべてをプロセッサ３２へ送信すべきか、それともパケットの一部をプロセッサ３２へ送信すべきかを含む、このパケットの出力ポート５６の表示を含む。エントリは、必要に応じて、たとえばマルチキャスト・アドレス指定をサポートするために、複数のポート５６ｉを指定することができる。エントリは、出力ポート５６上に存在する可能性のある出力待ち行列の数にマップされるパケットの優先順位も含む。エントリは、パケットを送信する際にどの出力ポート５６にＢｅｓｔ  Ｅｆｆｏｒｔを使用すべきかのインディケータも含む。Ｂｅｓｔ  Ｅｆｆｏｒｔとは、パケットの送信やＱｏＳが保証されないことを意味する。当業者には、本発明が他のＱｏＳにも同様に適用されることが容易に認識されよう。
エントリは、発信パケットに新しいタグを付与すべきかどうかと、ＶＬＡＮ同士の間の経路指定において着信タグと異なる発信タグが必要とされるかどうかも示し、必要に応じて、このタグがどんなタグであるべきかを示す。
エントリは、送信元および宛先のエージングに関する情報も含む。送信元エージング情報は、送信元がアクティブであるか否かを示す。好ましい実施形態では、層２送信元アドレスが一致するたびに中継論理５２によってこの情報が更新される。この情報は、ＩＥＥＥ標準８０２．１ｄ型アドレス・エージングに従って実施される。ネットワーク要素１２における宛先エージングは、どの層２エントリおよび層３エントリがアクティブであるかを示す。エントリに関するこの情報は、エントリが一致するたびに、このエントリに関する層２宛先サーチまたは層３一致サイクルによって更新される。
エントリは、層２結果を入力ポート５０ｉによる中継に使用すべきかどうかも示す。前述のように、層２情報を層３エントリに対して強制することができるが、層２中継情報と共に、層３機能を層２中継に付加することができる。
エントリは静的エントリを定義することもできる。静的エントリは、層２学習を受けず、エージングも受けない。
層３に関するエントリは追加の情報を含むことができる。このエントリは、パケットの最初の６４バイトのみを後で処理するためにプロセッサ３２へ送信すべきであることを示すことができる。このエントリは、パケットがマルチキャスト経路指定の一部であるかどうかを示すことができる。パケットがマルチキャスト経路指定の一部である場合、出力ポート５０ｉは、ヘッダ・チェックサムを減分し、指示された出力ポート５６へパケットを中継し、出力ポート５６ｉがパケットの層２送信元アドレスを出力ポート５６ｉのＭＡＣアドレスで置き換える必要があることを示す必要がある。当業者には、適切な経路指定を実現するための他の種類のヘッダ修正が容易に明らかになろう。
連想メモリ４２内のエントリは、ユニキャスト経路指定で着信宛先を置き換えるために使用される次のホップ宛先アドレスを含むこともできる。ユニキャスト経路では、着信パケットは、その層２宛先アドレスをマルチレイヤ・ネットワーク要素１２として有する。
マージ論理６６は、Ｌ２論理６２およびＬ３論理６４によって行われる中継メモリ４０のサーチの結果を待たなければならない。好ましい実施形態では、層２情報および層３情報は同じ中継メモリ４０に記憶されるが、別々のメモリに記憶することができる。前述のように、好ましい実施形態では、中継メモリ４０は、そのサイズを縮小するために、キーのフィールドと一致するＬ２論理およびＬ３論理によって使用される情報の記憶に制限される。このため、連想メモリ４２はエントリに関する追加の情報を記憶する。中継メモリ４０内の各エントリは、連想メモリ４２内の対応するエントリを指し示し、連想メモリ４２は、このエントリの内容をマージ論理６６に与え、中継決定を下す。
第７図は、中継論理５２で実行されるステップを示す。第７図は、中継論理５２の動作の好ましい実施形態を示しているが、当業者には、同じタスクを実現する他の同様な方法がただちに認識されよう。情報は入力ポート５０から中継論理５２で受け取られる（ステップ２００）。一方の経路では、Ｌ２論理６２が、層２に必要な情報を判定し、中継メモリ４０に対してそのサーチを実行する（ステップ２０２）。Ｌ２論理６２および中継メモリ４０は、ステップ２０４で、パケットの送信元に関する一致するエントリがあったかどうかを判定する（ステップ２０４）。送信元アドレスが中継メモリ４０内にない場合、送信元アドレスが学習される（ステップ２０６）。送信元アドレスを学習するために、Ｌ２論理６２および中継メモリ４０は、中継メモリ内にエントリが配置されるようにする。プロセッサ３２に信号が送信され、この新しい情報が調べられる。
送信元アドレスがすでに中継メモリ４０内にあり、着信した入力ポート５０と一致している場合、Ｌ２論理６２は宛先アドレスと中継メモリ４０との突合せを試みる（ステップ２０８）。送信元アドレスが中継メモリ４０内にないか、あるいは送信元アドレスがメモリ内にあるが、異なるポートにある場合、ステップ２０８で宛先サーチを試みる前に、ステップ２０６で送信元アドレスとポートの組合せが学習される。
ステップ２００からの他方の経路では、ステップ２１０でクラス論理６０がクラスを判定する。クラス論理６０がクラスを判定しこれをＬ３論理６２に渡した後、Ｌ３論理は層３エントリについて中継メモリとの突合せを試みる（ステップ２１２）。
ステップ２１４で、マージ論理６６は、ステップ２０８のＬ２サーチで得られた情報を使用し、一致が存在する場合は、ステップ２１０で得られたクラス論理結果、およびステップ２１２で得られた層３サーチ結果を使用し、第６図の基準に基づいて適切な中継決定を下す。マージ論理６６がステップ２１４で適切な中継決定を下した後、結果が出力ポート５０ｉに渡される（ステップ２１６）。
第７図は、２つの経路に沿って進むフローを示す。層２サーチと層３サーチは互いに独立しているので、メモリサーチを除くあらゆる処理をパイプライン式にするか、あるいは並列に実行することができる。好ましい実施態様では、従属性によって妨げられないかぎり、クラス論理６０による処理、Ｌ２論理６２による処理、およびＬ３論理６４による処理は、並列にあるいはパイプライン式に進行することができる。たとえば、Ｌ３論理６４が層３用のサーチキーを作成するときにはクラス論理６０の出力が必要であり、マージ論理６６が第６図による結果をマージするときには層２サーチおよび層３サーチを終了しておく必要がある。
しかし、他の実施形態では、Ｌ２情報とＬ３情報を別々のメモリに格納することができる。この場合、Ｌ２サーチとＬ３サーチを同時に行うことができる。
マージ論理６６がパケットに対する処置を決定した後、入力ポート５０ｉは、パケットを除去または破棄しない場合、パケット・マネージャ５４に書込み要求を出す。入力ポート５０ｉがパケット・マネージャ５４に書込み要求を出す前にパケット全体を受け取る必要はない。入力ポート５０ｉは、パケットの着信部分が記憶されるアドレスと、パケットが出力される出力ポート５６の数と、パケットの優先順位とをパケット・マネージャ５４に渡し、次いでこれらのポインタを適切な出力ポート５６に供給する。入力ポート５０ｉは、パケットを配置することのできるパケット・バッファ・メモリ４４内の空きメモリ位置を指し示すポインタを受け取る。好ましくは、入力ポート５０ｉは、書込み要求を出す前にパケット・バッファ・マネージャ５４からポインタを得ている。
出力ポート５６ｉは、パケット送信用の出力待ち行列にポインタを記憶する。待ち行列が送信用のポインタを有する場合、出力ポート５６ｉは、ポインタ・アドレスに記憶されている内容をパケット・マネージャ５４に要求し、対応するネットワーク要素ポート３８上のマルチレイヤ・ネットワーク要素１２から内容を送信する。パケット・マネージャ５４は、特定のポインタを使用するすべての出力ポート５６が、このポインタに関連する内容を送信したかどうかを追跡し、そうである場合、メモリ空間が、将来使用出来るように解放される。
高速の層２ブリッジ型中継の各機能を組み合わせ、得られた機能を層３経路指定およびＱｏＳサポートの追加の機能と組み合わせて、次のパケットを受け取る前に層２中継決定と大部分の層３中継決定を下しておく装置およびそのような装置が使用する方法を実現するマルチレイヤ・ネットワーク要素について説明した。
マルチレイヤ・ネットワーク要素の好ましい実施形態の上記の説明は、例示および説明のために与えられている。この説明は、網羅的なものでも、あるいは開示された厳密な形態に本発明を制限することを所期したものでもなく、上記の教示に照らして修正例および変形例が可能であり、あるいは開示された本発明の実施形態から修正例および変形例を得ることができる。実施形態は、当業者が本発明を様々な実施形態で使用し、かつ企図される特定の用途に適した修正と共に使用することを可能にするように、本発明の原則を説明するために選択され記載されている。本発明の範囲は、本明細書に添付の請求の範囲とその均等物によって定義される。
【図１】
0004076586.tif 000002
【図２】
0004076586.tif 000003
【図３】
0004076586.tif 000004
【図４】
0004076586.tif 000005
【図５】
0004076586.tif 000006
【図６】
0004076586.tif 000007
【図７】
0004076586.tif 000008