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