(57)【特許請求の範囲】
【請求項１】
内部リンクによって結合された独立の第１のサブシステムと第２のサブシステムを備え、ノード間でパケットを受信し、中継するための多層分散ネットワーク要素であって、第１のサブシステムと第２のサブシステムがそれぞれ第１の中継メモリと第２の中継メモリを備える、多層分散ネットワーク要素において、パケットを中継するための方法であって、
宛先アドレスを含む第１のヘッダ部分を有するパケットを第１のサブシステムによって受信するステップと、
第１のヘッダ部分の宛先アドレスと一致する第１のエントリを第１の中継メモリ内で検索するステップと、第１のヘッダ部分の宛先アドレスと第１のエントリとが一致したことに応答して、そしてパケットの宛先アドレスを変更しないで、内部リンクを介して第２のサブシステムにパケットを送信するステップと、
第１のヘッダ部分が第２の中継メモリの第２のエントリに一致する宛先アドレスを含むのに応答して、第１のヘッダ部分で指定された宛先アドレスにパケットを中継するステップと
を含むことを特徴とする方法。
【請求項２】
第１のヘッダ部分に第２層宛先アドレスが含まれることを特徴とする、請求項１に記載の方法。
【請求項３】
第１のエントリが第１のサブシステムでパケットを受信する前に第２のサブシステムによって学習され、そして第１の中継メモリにコピーされた第２層アドレスを含むことを特徴とする、請求項１に記載の方法。
【請求項４】
第２のエントリが第１のサブシステムでパケットを受信する前に第２のサブシステムによって学習された第２層アドレスを含むことを特徴とする、請求項１に記載の方法。
【請求項５】
内部リンクで結合された第１のサブシステムと第２のサブシステムを備え、ノード間でパケットを受信し、中継するための多層分散ネットワーク要素であって、第１のサブシステムと第２のサブシステムがそれぞれ第１の中継メモリと第２の中継メモリを備える、多層分散ネットワーク要素において、パケットを中継するための方法であって、
第１のサブシステムによってパケットを受信するステップであって、パケットに第２のヘッダ部分があり、第２のヘッダ部分にネットワーク層の宛先アドレスが含まれるステップと、
第２のヘッダ部分と一致するタイプ２のエントリを第１の中継メモリ内で検索するステップと、
タイプ２のエントリが第１のヘッダ部分と一致したことに応答して内部リンクを介して第２のサブシステムにパケットを制御信号を送信するステップであって、制御信号がタイプ２のエントリと関連してキューイング優先順位を設定する、ステップと、
制御信号によってセットされたキューイング優先順位にしたがって、前記第２のヘッダ部分で指定された宛先アドレスに第２のサブシステムからパケットを中継するステップと
を含むことを特徴とする方法。
【請求項６】
さらに、パケットと制御信号を送信するステップが、第２のサブシステムに第２の制御信号を送信し、さらに第２の制御信号を受信したことに応答して第２のヘッダ部分と一致するタイプ２のエントリを第２の中継メモリ内で検索するステップを含むことを特徴とする請求項５に記載の方法。
【請求項７】
ノードを相互接続する多層分散ネットワーク要素であって、
第１の中継メモリを備える第１のサブシステムであって、パケットの第１のヘッダ部分と一致する第１のエントリを第１の中継メモリ内で検索するように設定されている第１のサブシステムと、
第２の中継メモリを備える第２のサブシステムと、
第１のサブシステムから第２のサブシステムにパケットおよび制御情報を受け渡すための第１のサブシステムと第２のサブシステムを結合する内部リンクとを備える多層分散ネットワーク要素において、
第１のサブシステムは、第１のエントリが宛先アドレスを含んでいる第１のヘッダ部分と一致したことに応答して、パケットの第２層宛先アドレスを変更しないでパケットを第２のサブシステムに内部リンクを介して送信するように設定され、そして
第２のサブシステムは、第２の中継メモリの第２のエントリがパケットの第１のヘッダ部分の宛先アドレスと一致したことに応答して、第１のヘッダ部分で指定された宛先アドレスにパケットを中継するように設定されている、
ことを特徴とする多層分散ネットワーク要素。
【請求項８】
第１のヘッダ部分が第２層宛先アドレスを含むことを特徴とする、請求項７に記載の多層分散ネットワーク要素。
【請求項９】
第２のサブシステムによって学習され、第１のサブシステムによってパケットが受信される前に第１のエントリにコピーされる、第２層アドレスを第１のエントリが含むことを特徴とする請求項７に記載の多層分散ネットワーク要素。
【請求項１０】
第１のサブシステムによってパケットが受信される前に第２のサブシステムによって学習されている第２層アドレスを第２のエントリが含むことを特徴とする、請求項９に記載の多層分散ネットワーク要素。
【請求項１１】
さらに中央メモリ（ＣＭ）を含む中央処理システム（ＣＰＳ）を備え、ＣＰＳはそれぞれのサブシステムに結合され、中央メモリ内で発信元アドレスのコピーを発見したことに応答して第１の中継メモリのエントリに、第２のサブシステムによって学習されている発信元アドレスを格納するように設定されていることを特徴とする、請求項７に記載の多層分散ネットワーク要素。
【請求項１２】
第１のサブシステムが第１の連想メモリおよび内部リンクを結合する内部ポートを備え、第１の連想メモリは第１の内部ポートを識別するポート値を格納し、第１のサブシステムは中継メモリ内の第１のエントリとポート値とを関連付けるように設定されていることを特徴とする、請求項７に記載の多層分散ネットワーク要素。
【請求項１３】
第１のサブシステムがさらに、第１のヘッダ部分の宛先アドレスと一致するエントリが第１の中継メモリ内になかったことに応答して予め定義されているサブネットにパケットを溢れさせるように設定されていることを特徴とする、請求項７に記載の多層分散ネットワーク要素。
【請求項１４】
第１のサブシステムがさらに、第１の中継メモリ内の第３のエントリがパケットの第２のヘッダ部分と一致したことに応答して第２のサブシステムにパケットを送信するように構成され、
第２のヘッダ部分が第１のヘッダ部分の宛先アドレスから分離されるネットワーク層宛先アドレスを含み、
第２のサブシステムがさらに、第２のヘッダ部分で指定された宛先アドレスにパケットを中継するように構成されている、
ことを特徴とする、請求項７に記載の多層分散ネットワーク要素。
【請求項１５】
第２のサブシステムがさらに、第２の中継メモリ内の第４のエントリとパケットの第２のヘッダ部分とが一致したことに応答して第２のヘッダ部分で指定されている宛先にパケットを中継するように設定されていることを特徴とする、請求項１４に記載の多層分散ネットワーク要素。
【請求項１６】
第２のサブシステムがさらに、パケットと第１の制御信号を第１のサブシステムから受信したことに応答して、パケットの第２のヘッダ部分と一致するエントリについて第２の中継メモリ内で検索を実行するように設定されていることを特徴とする、請求項１４に記載の多層分散ネットワーク要素。
【請求項１７】
第２のサブシステムが、第１のサブシステムから受信したサービス品質（ＱＯＳ）情報に従ってパケットを中継するように設定され、ＱＯＳ情報は第１のサブシステム内の第３のエントリと関連付けられていることを特徴とする、請求項１４に記載の多層分散ネットワーク要素。
【請求項１８】
第２のサブシステムがさらに、第２のＱＯＳ情報を第４のエントリと関連付けるように設定され、この第２のＱＯＳ情報によって第１のサブシステムから受信したＱＯＳ情報がオーバーライドされることを特徴とする、請求項１５に記載の多層分散ネットワーク要素。
【請求項１９】
中央メモリ（ＣＭ）を有する中央処理システム（ＣＰＳ）であって、
中央処理システム（ＣＰＳ）が各サブシステムに結合され、そして第１及び第２のサブシステムによって学習された全てのソース・アドレスで構成され、そして
パケットの宛先アドレスが第１の中継メモリのどのエントリにも一致しないが第２のソース・アドレスに一致する、という第１のサブシステムからの通知に応答して、第２のサブシステムによって学習されたソース・アドレスを第１の中継メモリのエントリに記憶させるように構成されている、
中央処理システム（ＣＰＳ）
をさらに含むことを特徴とする請求項７に記載の多層分散ネットワーク要素。
【請求項２０】
中央メモリ（ＣＭ）を有する中央処理システム（ＣＰＳ）であって、
中央処理システム（ＣＰＳ）が、各サブシステムに結合され、そして第１及び第２のサブシステムによって学習された全てのソース・アドレスで構成され、そして
パケットの宛先アドレスが第１の中継メモリのどのエントリにも一致しないが第２のソース・アドレスに一致する、という第１のサブシステムからの通知に応答して、第２のサブシステムによって学習されたソース・アドレスを第１の中継メモリのエントリに記憶させるように構成されている、
中央処理システム（ＣＰＳ）
をさらに含むことを特徴とする請求項５に記載の方法。
【請求項２１】
フロー優先順位が第２のサブシステムのタイプ２のエントリと関連しており、そして第２のサブシステムからパケットを中継するステップが、第２のヘッダ部分に一致するタイプ２のエントリに応答して、キューイング優先順位よりもむしろフロー優先順位にしたがって、パケットが第２のサブシステムから中継されるステップである、
ことを特徴とする請求項６に記載の方法。
【請求項２２】
各サブシステムが複数の外部ポート及び少なくとも１つの内部ポートを有し、内部ポートは内部リンクに接続しており、そして外部ポートは他のノードに接続しており、そして
第１のサブシステムの外部ポートの１つに到着するパケットであって、第１のヘッダ部分の宛先アドレスが第１の中継メモリのどのエントリとも一致しない、パケットが、到着ポートを除いて、外部ポート全て及び少なくとも１つの内部ポートににあふれている、
ことを特徴とする請求項７に記載の多層分散ネットワーク要素。
【請求項２３】
各サブシステムが分離したＩＣの部分として実装される、
ことを特徴とする請求項７に記載の多層分散ネットワーク要素。
【発明の詳細な説明】
背景
１．発明の分野
本発明は、一般に、階層型アーキテクチャを使用するコンピュータ間の通信に関するものであり、詳細には、多層情報を使用してパケットを中継するシステムと方法に関するものである。
２．関連技術の説明
コンピュータ間の通信は、プライベート環境でもビジネス環境でも毎日の生活に欠かせないものとなった。コンピュータは、メッセージのやり取りのための物理媒体と、そのコンピュータに接続されている電子ハードウェアおよびそのコンピュータ上で実行されるプログラムによって実装される一組の規則に基づいて相互に交信する。これらの規則は、しばしばプロトコルと呼ばれるが、接続されているコンピュータのネットワーク内でのメッセージの順序正しい送受信を定義するものである。
ローカル・エリア・ネットワーク（ＬＡＮ）は、発信元コンピュータと宛先コンピュータとの間の通信を可能にするもっとも基本的、かつ単純なネットワークである。ＬＡＮを雲の形で表すと、互いに通信を希望するコンピュータ（端局または終端ノードともいう）がこの雲に接続されているわけである。少なくとも１つのネットワーク要素がＬＡＮ内のすべての端局と接続する。単純なネットワーク要素の例として、ビットを中継する物理層中継媒体であるリピータがある。リピータは、多数のポートを持ち、各端局は１つのポートに接続している。リピータは、発信元端局からのメッセージを含むデータのパケットを構成するであろうビット群を受信し、そのパケットを１ビットずつそのまま中継する。これらのビット群は、宛先を含むＬＡＮ内の他のすべての端局によって受信される。
しかしながら、単一のＬＡＮでは、単一のリピータで利用できる物理接続数もメッセージの処理能力も限られるため、端局を多数抱える組織の要求条件を満たすのには充分でない場合がある。したがって、このような物理的制限のために、リピータ・ベースの方法では限られた地理的な領域で限られた数の端局しかサポートできない。
しかし、コンピュータ・ネットワークの能力は、異なるサブネットワーク同士を接続して数千台もの端局が互いに交信する大規模なネットワークを構成することにより高められている。そこで、これらのＬＡＮを相互接続すれば、ワイド・エリア・ネットワーク（ＷＡＮ）リンクなどのさらに大規模なエンタープライズ・ネットワークを構築できる。
大規模なネットワーク内のサブネット間の通信を行いやすくするため、複雑な電子ハードウェアおよびソフトウェアが提案され、現在、従来型のネットワーク内で使用されている。さらに、適当なネットワーク要素によって相互接続されている端局がネットワーク階層を定義し、同じサブネット内の端局は共通の分類を持つという原理に基づくさまざまな規格によって、これらの端局間で信頼性のある、順序正しい通信を行うための新しい規則セットが定義されている。したがって、ネットワークは、ネットワーク内のノードと端局の機能と階層上の位置を定義するトポロジを持つといわれる。
パケット交換ネットワークを介する端局の相互接続は、従来、ピア・ツー・ピア階層型アーキテクチャ思考に従っていた。このようなモデルでは、発信元コンピュータの定められた層は、ネットワーク上のピア端局（通常は、宛先）の同じ層と通信する。上位層から受信したデータ・ユニットにヘッダを付加することで、層はそれよりも上位の層の動作を可能にするサービスを提供する。受信したパケットは、通常、発信元で動作している異なる層によって元のペイロードに追加されたいくつかのヘッダを持つ。
従来技術には、アーパネット（Ａｒｐａｎｅｔ）や開放型システム間相互接続（ＯＳＩ）モデルなど、層に分割する方式がいくつかある。本発明を説明するためにここで使用する７層ＯＳＩモデルは、他のモデルの機能と詳細な実装をマッピングするための便利なモデルである。ただし、Ａｒｐａｎｅｔの見地（現在はＩｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ、略してＩＥＴＦによって再定義されている）も、以下に説明する本発明の具体的実装において使用される。
ここで背景に使用する関連する層は、第１層（物理）、第２層（データ・リンク）、および第３層（ネットワーク）、および限られているが、第４層（トランスポート）である。これらの層と関連する機能について以下に簡単に説明する。
物理層は、通信リンク上で構造化されていない情報のビットを送信する。リピータは、この層で動作するネットワーク要素の一例である。物理層自体は、コネクタのサイズおよび形状、ビットの電気信号への変換、ビット・レベルの同期などの事項と関係している。
第２層は、データのフレームの送信および誤り検出を取り扱う。さらに重要なのは、本発明で引用しているようなデータ・リンク層は通常、「ブリッジ」となるように、すなわち単一のホップ上で情報のパケットを伝送するように設計されている。ここで、ホップは１つのノードから他のノードへ行くパケットの行程である。パケットを次の宛先へ送信する前に受信パケットを処理する時間を最短に抑えることにより、データ・リンク層はその上位層よりもかなり高速にパケットを中継できるが、これについて以下の段で説明する。データ・リンク層は、データ・リンク層で又はそれよりも下の層で相互接続されているコンピュータ間の発信元と宛先とを識別するためのアドレス指定機能を提供する。第２層のブリッジ・プロトコルの例としては、ＣＳＭＡ／ＣＤ、トークン・バス、トークン・リング（ファイバ分散データ・インタフェース（ＦＤＤＩ）を含む）などのＩＥＥＥ８０２で定義されているプロトコルがある。
第２層と同様に、第３層も、相互に通信するコンピュータのアドレスを規定することができる。ただし、ネットワーク層は、ネットワーク階層に関するトポロジ情報とも連携する。さらにネットワーク層の構成は、最短のパスを使用して発信元から宛先へパケットの「経路設定」を行うように決定することもできる。最後に、ネットワーク層は、選択されたパケットを単に削除するだけで輻輳を制御することができ、これを発信元はパケット速度を下げる要求であると認識することができる。
最後に、第４層であるトランスポート層は、アプリケーション側で第３層とインタフェースするために使用できる「ポート・アドレス」を持つ電子メール・プログラムなどのアプリケーション・プログラムを規定している。トランスポート層とそれよりも下位の層との大きな違いは、発信元コンピュータ上のプログラムは宛先コンピュータ上の類似のプログラムと交信するが、下位層では、プロトコルがそれぞれのコンピュータとネットワーク内の隣接するコンピュータとの間に入り、最終的な発信元と宛先の端局とを多数の中間ノードで分離することができるという点である。第４層と第３層のプロトコルの例として、ＴＣＰ（伝送制御プロトコル）とＩＰ（インターネット・プロトコル）などのインターネット・プロトコル・スイートがある。
端局はパケットの最終的な発信元および宛先であるが、ノードは端局間の中間点である。ノードは、通常、メッセージをパケットごとに受信、中継する機能を持つネットワーク要素を含む。
一般に、大規模で複雑なネットワークほど、上位の層（第３層および第４層）の機能を持つノードに依存する。小規模なサブネットワークで構成される非常に大規模なネットワークは、通常、サブネットワークのトポロジを認識するルータと呼ばれる第３層ネットワーク要素を使用しなければならない。
ルータは、隣接要素との情報交換に基づいてその周辺のネットワークのトポロジ・マップを作成し格納することができる。ＬＡＮが第３層のアドレッシング機能を持つように設計されている場合、端局から利用できる階層経路設定情報を活用することで、ルータを使用してＬＡＮ間でパケットを中継することができる。ひとたびルータによって端局のアドレスと経路の表が作成されると、パケットの第３層宛先アドレスとメモリ内の既存の一致するエントリとを比較した後、ルータが受信したパケットを中継することができる。
ブリッジは、ルータとは対照的に、第３層ではなくデータ・リンク層（第２層）で動作するネットワーク要素である。通常、媒体アクセス制御（ＭＡＣ）アドレスと呼ばれるパケットの宛先の第２層アドレスにのみ基づいてパケットを中継する機能を持つ。一般に、ブリッジがパケットを修正することはない。ブリッジは、端局による連携がなく階層化されていないフラットなネットワーク内でパケットを中継する。
ブルータやスイッチなど、混成形式のネットワークも存在する。ブルータは、ブリッジとしても動作可能なルータである。スイッチという用語は、命令を実行する汎用プロセッサとは反対にハード配線されたロジック回路で実装された機能によりパケットを高速に中継できるネットワーク要素を意味する。スイッチは、第２層と第３層の両方で動作する様々な種類のものがある。
現在のネットワーキング技術の概要について説明してきたが、このような従来の技術の限界についても説明することにする。現在のインターネット上でマルチメディア・アプリケーションを実行するユーザが増えた結果、既存のネットワークの帯域幅を広げなければならなくなっており、現在のネットワーク、そして将来のネットワークは非常に広い帯域幅と増大するユーザに対応できなければならない。さらに、このようなネットワークでは、通常異なる帯域幅を必要とするダイヤル・ボイスおよびビデオなどの複数のトラフィック・タイプをサポートできる必要がある。統計調査から、将来的に、ネットワーク・ドメイン、すなわち相互接続されたＬＡＮのグループは、各ＬＡＮに接続された個別端局とともに、ますます増えていくことがわかっている。したがって、こうした要求条件に対応するために、ネットワーク帯域幅の拡大と資源の利用の効率化が不可欠である。
ブリッジなどの第２層要素を使用してネットワークを構築すると、ＬＡＮ間でパケットを高速に中継できるようになるが、トラフィック分離、冗長トポロジ、およびキューイングとアクセス制御のためのエンド・ツー・エンド・ポリシーに関しての自由度はなくなる。たとえば、サブネット内の端局は第３層または第２層のいずれかのアドレス指定方法に基づいて交信が可能であるが、ブリッジでは上位層の機能をサポートしていない。ブリッジは第２層の構文解析にのみ基づいてパケットを中継するので、中継サービスは単純でしかも高速なものとなる。しかし、ブリッジは、同じサブネット内の端局間のキューイング、優先度、および中継制約などの上位層の処理指令の使用をサポートしていない。
サブネット内のブリッジ風の交信を機能強化することに対する従来技術による解決方法は、第２層および上位の層のヘッダの組み合わせを使用するネットワーク要素に依存している。そのシステムでは、第３層および第４層の初期パケットの情報を調べ、一定のサービス品質（ＱＯＳ）で中継メモリ内の新しい第２層エントリを使用してパケットの「流れ」を予測し、識別する。そして、それ以降、中継メモリ内の第２層エントリとの第２層ヘッダの一致に基づき第２層の速度（一定のＱＯＳ）でパケットを中継する。したがって、流れを識別するために、第３層と第４層のヘッダを持つエントリが中継メモリ内に置かれることはない。
しかし、電子メール・プログラムやビデオ会議セッションなどの端局の同じペアの間で２つ以上のプログラムが交信しているという状況を考えてみよう。これらのプログラムのＱＯＳ要件が異なっている場合、ここで提示した従来技術による方式では、中継時に第３層と第４層内の情報を考慮しないため、同じ端局のペアの間でＱＯＳ特性が異なる場合については対応できない。したがって、同じサブネットに接続されている端局上で実行中のアプリケーションからの独立した優先要求に充分対応できる自由度の高いネットワーク要素が必要である。
後者の属性は、ルータなどの第３層の要素を使用することで対応することができる。しかし、ルータが備えるインテリジェンス機能や意志決定機能の強化と引き替えにパケット中継速度を犠牲にすることになる。したがって、第２層および第３層の要素を組み合わせてネットワークを構築することが多い。
サーバの役割は、ブラウザ・ベースのアプリケーションによるインターネットの利用が増えるにつれ高まり、その結果、トラフィック分布の変動が増大している。たとえば、サーバの役割がファイル・サーバという狭い範囲に限定されている場合には、ルータのボトルネックを回避するためにクライアントとファイル・サーバを同一サブネット内に配置するという形でネットワークが設計された。しかし、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂのような専用サーバやビデオ・サーバの多くはクライアントのサブネット上に置かれないのが普通であり、ルータを経由することは避けがたい。したがって、パケットをルータに次々に受け渡していく速度を高める必要がある。ブリッジとルータの選択にはトレード・オフの関係がつきまとうのが普通であり、ブリッジを使用すれば機能が低下し、ルータを使用すれば速度が低下する。さらに、トラフィック・パターンにルータが含まれているとサーバの性能は場所に依存することになり、ネットワーク内のサービス特性が均一でなくなる。
したがって、トポロジやメッセージ・トラフィックなどの変化するネットワーク条件に対応することができ、それでいながら第２層、第３層、および第４層のヘッダに基づいてパケットを交換するための高性能ハードウェアを効率よく使用できるネットワーク要素が必要である。ネットワーク要素は、ブリッジ同様の速度で動作でき、さらに異なるサブネットワークにわたってパケットの伝送経路を制御することができ、サービス品質などの上位層の機能を提供できなければならない。
概要
本発明は、ネットワークの場所と役割に関係なく優れたパケット中継性能を発揮する多層分散ネットワーク要素（ＭＬＤＮＥ）システムに関するものである。より具体的に述べると、本発明では、分散アーキテクチャを使用して、隣接するネットワーク要素および端局に透過的な小規模な同一のネットワーク要素サブシステムで構成される大規模なネットワーク要素システムを構築する。多層分散ネットワーク要素（ＭＬＤＮＥ）は、サブネットワーク内およびサブネットワーク間で第２層のワイヤ・スピード性能を実現し、キューイング決定を第３層プロトコルおよびトポロジ情報、端局情報、および第２層トポロジ情報に基づいて行うことができる。
本発明のＭＬＤＮＥは、内部リンクにより完全にメッシュ化され相互接続されている複数のネットワーク要素サブシステムを含む。それぞれのネットワーク要素サブシステムは、中継メモリおよび連想データ・メモリに結合されたスイッチング要素に含まれるハードウェア検索エンジンを備える。スイッチング要素は多数の内部ポートおよび外部ポートを備え、内部ポートは内部リンクを結合し、外部ポートはＭＬＤＮＥの外部にある多数の接続を結合する。パケットは、この外部の接続を介してＭＬＤＮＥによって隣接ノードおよび端局から受信され、また隣接ノードおよび端局に中継される。
中継メモリおよび連想メモリには、パケットを中継するために必要なエントリが格納される。中継メモリには、受信パケットの第２層ヘッダから取得したヘッダ・データを持つエントリが格納される。中継メモリはさらに、ＭＬＤＮＥのＣＰＳによって受信パケットのヘッダと一致するように構成された第３層および第４層の情報も格納される。連想メモリは、サービス品質（ＱＯＳ）情報とともに中継メモリ内のエントリと関連付けられているスイッチング要素の内部ポートと外部ポートを識別する。中継時に、受信パケットのヘッダを中継メモリ内のエントリと比較し、一致しているエントリを見つけだし、一致するエントリの関連データを使用して、パケットを宛先へ受け渡す。
中継メモリには、次の３つのグループで与えられるエントリ（第３層エントリ）のみが格納される：サブシステムの外部接続に直接接続されているＭＡＣアドレス、サブシステムの外部ポートと内部リンクとの間の第２層ブリッジ「交信」、およびＭＬＤＮＥによって第３層／第４層エンド・ツー・エンド交信として定義されたフローと呼ばれるパケット列（第３層エントリ）。ただし、主に関係するのは、外部接続と接続するＭＡＣアドレスである。したがって、ＭＬＤＮＥアーキテクチャでは、中継メモリの必要な深さは、サブシステムの数とともには増えない。
中継メモリおよび連想メモリの設計では、複数のネットワーク要素サブシステム上に複製されている中継メモリ・エントリの数を最小限に抑えようとしている。こうすることで、メモリ・リソースを効率よく使用することができ、また中継決定を下す場所の数を最小限に抑えることでパケット中継を高速化することができる。さらに、分散アーキテクチャを採用することで、一方のネットワーク要素サブシステムが各スイッチング要素内の外部ポートと内部ポートの数や、ＭＬＤＮＥの外部でパケットを中継する際に使用する他のスイッチング要素の特定の外部ポートなど、他方のネットワーク要素サブシステムの詳細を知っている必要がなくなる。
ＭＬＤＮＥ内のネットワーク要素サブシステムは各サブシステム内の内部ポートを結合する内部リンクにより完全に相互接続されメッシュ化されている。換言するならば、各サブシステムは少なくとも１つの内部リンクを介して他のサブシステムに直接接続される。このようにして、ＭＬＤＮＥによって中継されるパケットが遅延するのは高々２回、すなわち受入側ネットワーク要素サブシステムで１回目、そして送出側ネットワーク要素サブシステムで高々２回目の遅延である。
より中央に集中させた方法では、外部接続数を増やすと、中央の高性能中継メモリに必要な記憶容量も増えると予想される。しかし、本発明では、パケットを中継するためのヘッダ分類は主に、受入側サブシステムで行われるので、サブシステムを追加することで生じる必要メモリ領域の増大は各サブシステム自体の中継メモリにおいて吸収され、他のサブシステム内の他の中継メモリの深さを著しく増す必要がない。
さらに、外部接続を追加すると、中央中継メモリを備えるシステムの一致サイクル検索時間が長くなる。しかし、ＭＬＤＮＥによれば、追加された一致サイクル検索は、新規のサブシステム自体によって実行されるのみである。
ＭＬＤＮＥはさらに、中央メモリ（ＣＭ）を中央処理サブシステム（ＣＰＳ）の一部として備える。ＣＭは、中央処理装置によって制御され、保持され、個々の中継メモリのコピーを格納する。ＣＰＳとさまざまなネットワーク要素サブシステムの間の交信にはバスが使用される。各種のネットワーク要素サブシステム内の内部リンクとハードウェア検索エンジンのトポロジはＣＰＳに認識されており、ＣＰＳはデータ・パケットが辿る内部リンク経由のパスを最適に定義し、２つのネットワーク要素サブシステムを結合する複数の内部リンクの間の望ましい静的負荷バランスをとることができる。
２つのサブシステムを経由してパケットを中継する場合、キューイング優先順位、タグ形式、経路制御とブリッジ、経路およびＶＬＡＮヘッダ交換など、送出側サブシステムのポートを除くすべての中継属性は受入側サブシステムのヘッダ一致サイクルで決定される。上述のように中継メモリに関して記憶領域が効率的になる他に、このような方式は、キューイング、経路制御、およびポリシー決定に第３層および第４層の情報を使用し、その一方でトポロジ決定に第２層を使用するという有用なモデルを提供することもできる。
本発明の他の実施例では、フローをサポートしており、送出側サブシステムは、比較的堅牢な第２層の中継方式ではなく、第３層のキューイング、経路制御、およびポリシー情報に基づいてパケットを中継することができる。サブシステムのサービス品質マッピングを含む第３層機能は、各サブシステム内でハード配線によるロジック回路として実装されるので、第３層の一致サイクルに基づく中継は第２層一致サイクルを使用して中継する方法に速度の点で匹敵すると思われる。このような機能強化を行う代わりに、送出側サブシステムの中継メモリでは第３層追加エントリを使用することになる。
【図面の簡単な説明】
本発明の前記の側面と他の特長は、図、詳細な説明、および請求項を読むとよく理解することができる。
第１図は、本発明の多層分散ネットワーク要素（ＭＬＤＮＥ）のネットワーク応用例の高レベルの図である。
第２図は、本発明の実施例によるＭＬＤＮＥシステムのブロック図である。
第３図は、本発明の他の実施例によるＭＬＤＮＥサブシステムの中継および連想メモリにおけるエントリの形式の例である。
第４図は、２つのサブシステムのみを備えるＭＬＤＮＥの実施例のブロック図である。
第８Ａ図は、本発明の一実施例で使用しているパケット構造の単純化されたブロック図である。
第８Ｂ図は、本発明によるパケットのヘッダ・フィールド交換の構造の図である。
発明の詳細な説明
図面に図示されているように、本発明を用いると、多数のノードと端局を様々な形で相互接続するために使用できるデバイスを定義することができる。たとえば、ＭＬＤＮＥの一応用例として、Ｅｔｈｅｒｎｅｔリンクとも呼ばれる、ＩＥＥＥ８０２．３規格などの均質なデータ・リンク層でのパケットの交換がある。第１図は、ＭＬＤＮＥシステムが、外部接続を介してサーバおよびデスクトップ・ユニットとして表されているルータおよび多数の異なる端局を結合しているネットワーク内での本発明の使用法を示している。ＭＬＤＮＥシステムは、サーバとデスクトップ・ユニットの間の高性能通信とともに、従来のルータやブリッジを介する通信を実現することができる。したがって、本発明のＭＬＤＮＥは多目的ネットワーク要素である。
好ましい実施例において、本発明の分散アーキテクチャは、Ｅｔｈｅｒｎｅｔ  ＬＡＮ規格およびＭＡＣデータ・リンク層でインターネット・プロトコル・スイート、具体的にはＴＣＰおよびＩＰ（それぞれ第４層および第３層）によりメッセージ・トラフィックを処理するように設計されている。ただし、当業者であれば、本発明のアーキテクチャを実装する他の特定の構造および方法も他のプロトコルを使えば実現できることを理解するであろう。
本発明のＭＬＤＮＥは、分散されているネットワーク要素機能を持つ、すなわち、１つの機能の異なる部分が異なるＭＬＤＮＥサブシステムによって実行される。これらのネットワーク要素の機能には、中継、学習、キューイング、およびバッファリングが含まれる。以下の説明と第２図からわかるように、ＭＬＤＮＥはそのアーキテクチャがスケーラブルであって、外部接続数を増やす方法でサブシステム２１０の数を簡単に増やすことができるため、周辺のネットワーク環境を自在に定義することが可能である。
ＭＬＤＮＥ２０１の実施例は、図２でブロック図形式により示されている。多数のＭＬＤＮＥサブシステム２１０が多数の内部リンク２４１を使用して完全にメッシュ化され相互接続されて、１つの大きなネットワーク要素を構成する。それぞれのＭＬＤＮＥサブシステム２１０は、好ましくは現代的な集積回路製造技術で生産するうえで費用効果のある最大の非ブロッキング・スイッチング・ユニットとして定義される。
それぞれのＭＬＤＮＥサブシステム２１０には、第３図に示されているように、サブシステム２１０が受信するパケットのヘッダ部分との一致を調べるために使用されるタイプ２およびタイプ１のエントリとして配列されている選択されたヘッダ・データを格納する中継メモリ２１３が備えられている。第３図に示されている好ましい実施例において、タイプ２のエントリ３２１は第３層および第４層の情報を含み、タイプ１のエントリ３０１は第２層の情報を含む。中継メモリ２１３は、ランダム・アクセス・メモリ（ＲＡＭ）である連想メモリにインデックスを付けるコンテント・アドレッサブル・メモリ（ＣＡＭ）として実装するのが好ましい。もちろん、異なるサブシステム内の中継メモリ２１３および／または連想メモリは、単一のハードウェア構造として実装することができる。外部接続２１７をインタフェースする多数の外部ポート（図示せず）を使用して、第１図に示されているようなＭＬＤＮＥの外部にあるノードと端局、すなわちデスクトップ、サーバ、およびブリッジやルータなどのパケット交換要素と接続する。ＭＬＤＮＥサブシステム内の内部ポートは、内部リンクを結合し、どの２つのサブシステムも少なくとも１つの内部リンクを共有する。
好ましい実施例において、外部ポートと内部ポートはスイッチング要素２１１内にある。ＭＬＤＮＥ２０１はさらに、周辺要素相互接続（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ：ＰＣＩ）バスなどの通信バス２５１を介して個々のサブシステム２１０に結合されている中央処理システム（ＣＰＳ）２６０を備える。ＣＰＳと個々のサブシステムとの交信は、以下に述べるように、ＭＬＤＮＥを介してトラフィックの大部分を中継するために通常ＣＰＳに依存していないため、サブシステム間の内部リンクほど高速性や信頼性を必要としない。むしろ、ＣＰＳはエントリおよび関連データをそれぞれ中継メモリと連想メモリに追加するのに使用されるのが普通である。
ＣＰＳ２６０は、ＣＭ２６３および他のメモリ（図示せず）に結合されている中央処理装置（ＣＰＵ）２６１を備える。ＣＭ２６３は、さまざまなサブシステムの個別中継メモリ２１３に格納されているエントリのコピーを格納する。ＣＰＳは、各ＭＬＤＮＥサブシステム２１０への直接制御と通信インタフェースを有する。しかし、パケット処理でのＣＰＳ２６０の役割には、各サブシステム内のパケット・バッファなどのデータ・パス・リソースをセットアップする作業、中継メモリ内のタイプ２のエントリを入力し、管理する作業、サブシステムによって、またサブシステム間で定期的に処理することができないオプションを持つ経路制御などの他の特別の場合が含まれる。
ＣＭ２６３は個々の中継メモリ内のデータのコピーを格納するが、ＣＰＳとＣＭは各サブシステム内のハード配線されたスイッチング・ロジックで実現できる速度でパケットを中継するように設計される必要はないため、ＣＭの性能に関する要件は個々の中継メモリの場合に比べてそれほど厳格ではない。
内部リンク２４１は、外部接続２１７よりも高速に動作するように構成することができるが、たとえば、サーバと接続したい場合に高速なリンクとしても構成できる外部接続もある。個々のサブシステムを相互接続するために使用される内部リンク２４１は、中継するパケットのコピーや、個々のサブシステムが中継動作を完了する、経路を使用可能にする、出力キュー内の優先順位を設定する、第３層処理指令でサブネット内の第２層交信を機能強化するといった作業を行うのを支援する通知信号を伝送するように設計されている。
処理速度を上げるため、それぞれのスイッチング要素２１１は、以下に説明するサブシステムの機能の大半を実行する特定用途向け集積回路（ＡＳＩＣ）で実装するのが好ましい。多層機能は、外部接続２１７に接続されているスイッチング要素の外部ポートまたは内部リンク２４１に接続されている内部ポートを介してサブシステム２１０が受信するパケットに対して動作する。
以下の説明に照らし合わせると理解されるように、それぞれのネットワーク要素サブシステム２１０はスイッチング要素の１つ以上の内部ポートまたは外部ポートに直接着信パケットを振り向けるように構成されている。パケットが中継メモリ内のエントリに一致し、中継できる場合、すなわち異なるサブシステムを通過することなくＭＬＤＮＥ２０１上を伝送できる（パケットのヘッダと一致し、連想メモリ内でデータが関連付けられている中継メモリ内のエントリに基づいて）場合、パケットは内部リンク２４１のいずれにも送信されない。そのような状況では、連想メモリ２１４により、パケットを中継するための外部ポートのみが識別される。
他方、内部ポートを介してパケットの宛先に到達することが一致するエントリの関連データによって示される場合、パケットは識別された入力ポートと接続する内部リンク２４１で他のサブシステムに送信される。パケット・ヘッダが中継メモリ内のエントリと一致しないと、受入側サブシステムのすべての内部および外部ポート上でパケットが「溢れる」。ＣＰＳはある意味で、中継メモリと連想メモリ内の多層ヘッダ情報に基づいてサブシステム自身のハードウェアでそのような中継の決定を下すようそれぞれのサブシステムに教示し、中継速度を上げる。ネットワーク要素サブシステム間に完全メッシュ化された相互接続を行うと、少なくとも１つの独立した内部リンクが２つのサブシステムを直接接続する場合、高々２つのサブシステムを横切ることでＭＬＤＮＥ２０１を介してパケットが受信され、中継される可能性のあることがわかる。
学習
ブリッジなどのネットワーク要素の従来の発信元アドレス学習機能は、ＭＬＤＮＥ２０１のさまざまなサブシステム間に分散されている。ＭＬＤＮＥ２０１内の分散トポロジはＣＰＳ２６０に知られているので、従来の第２層学習機能はそれぞれのサブシステム２１０に制限される。すなわち、受信パケットの発信元アドレスは受入側サブシステムのみが学習する。
この一意的な学習機能は、内部ポートに関して外部ポートと異なる動作を示すようにサブシステム２１０を定義することによって促進もされる。個々のサブシステムは、内部リンクにより到着したパケットと外部ポートにより到着したパケットとを別々に処理しなければならないことを認識するように構成される。たとえば、パケットの発信元アドレスがすでに他のサブシステム（受入側サブシステム）によって学習済みであることから、内部ポートによって着信するパケットの第２層発信元アドレスの学習はない。さらに、内部ポートはスパニング・ツリー・プロトコルに参加しない。
サブシステムによって新しい発信元アドレスが学習されている場合、新しい発信元と通知側サブシステムの素性についてどれがＣＭを更新するかということをＣＰＳに知らせる。これにより、通知側サブシステムを介してその第２層アドレスに割り当てられている端局またはノードに到達できることをＣＰＳに通知する。
ＭＬＤＮＥは、さらに第２層トポロジの変更を検出するように構成することもできる。アドレスがＭＬＤＮＥによって学習されている固定された第２層アドレスを持つ端局が論理的または物理的にＭＬＤＮＥの一方の外部接続から他の外部接続に移動された場合、どうにかして古いほうの学習済みエントリを識別し、中継メモリから除去する必要がある。ＭＡＣアドレス（外部接続に接続されている）を論理的または物理的に一方のサブシステムから他方のサブシステムに移動した場合、ＣＰＳは新しい場所を通知された後、旧エントリを削除する。
中継
サブシステム２１０の内部ポートと外部ポートに関する上述の学習動作では、内部ポートによって到着したパケットは外部ポートを通してしか中継されず、同じサブシステムの他の内部ポートへもＣＰＳへも中継されないので、各サブシステムを介してループのない中継が可能になる。さらに、ＣＰＳ２６０はＣＭ２６３で組み合わされている個々の中継メモリ２１３についての大域的ビューを使用してサブシステム間のパケットの転送を制御するように構成されるため、サブシステムは内部ポートから発信元アドレスを学習しないという要求条件は中継動作に悪影響を及ぼさない。
タイプ１のエントリ（本発明の実施例についてはパケットのＭＡＣ宛先アドレスを含む）またはタイプ２のエントリの検索に基づいて中継する場合、各サブシステム２１０は中継メモリ２１３および連想メモリ２１４を使用してパケットを中継するのに必要な情報を識別しようとする。しかし、パケットがサブシステムに到着すると、タイプ１とタイプ２の両方の一致サイクルが開始されるのが普通であり、一般にこの２つの動作は独立して行われる。スイッチング要素２１１のヘッダ一致ハードウェアは、パケットをどのように中継するかを示す結果を返す（一致するタイプ１のエントリまたは一致するタイプ２のエントリを使用する）。その結果は、受信ヘッダ、到着ポート、中継メモリ内のエントリ、ＣＰＳによってプログラムされた優先順位および中継制約など、追加の第３層および第４層フロー固有の属性のうちの１つ以上の関数となる。
中継メモリおよび連想メモリ
ＭＬＤＮＥ２０１の分散アーキテクチャにおける中継と学習について概要を説明してきたが、第３図に示されているエントリの例とともに、中継メモリと連想メモリの役割をさらに詳しく見てみることにする。中継メモリおよび連想メモリは、連想メモリ内の中継情報を中継メモリ内のエントリの第２層、第３層、および第４層のフィールドの組み合わせと関連付けるように構成されている。タイプ２のエントリ３２１は通常、ヘッダ・クラス・フィールド３２３および、たとえばインターネット・プロトコル（ＩＰ）宛先と発信元アドレス３２５および３２７、伝送制御プロトコル（ＴＣＰ）発信元と宛先ポート３３３および３３５をはじめとするアドレス依存部分を含む。ヘッダ・クラスは、エントリのタイプを識別し、パケットの受信に応答して各サブシステム・スイッチング要素内のプログラム可能でアドレス独立なクラス・フィルタによって生成される。ヘッダ・クラスを使用することで、同じ中継メモリ・フィールドを別々に使用しているクラス同士が誤って一致することがなくなり、アドレス独立パラメータに基づいてエントリを識別することができる。
各サブシステム２１０の中継メモリ２１３には、次のエントリが含まれる。
・  タイプ１のエントリ３０１によって示されている、外部接続２１７を介してＭＬＤＮＥ２０１に到着したパケットの学習済みのすべての第２層発信元アドレス。
・  第２層のエントリ３０１によっても示されている、外部接続２１７の１つを通してＭＬＤＮＥ２０１に到着し、他のサブシステムの外部ポートを通して中継されるパケットの宛先アドレスと突き合わせるための第２層「宛先」アドレス。学習済みの第２層エントリとは対照的に、これらはＣＰＳからのコマンドとＣＰＳによる決定に応答して入力される。これらの第２層「宛先」アドレス・エントリは、ＣＰＳによる設定に従いユニキャストか、またはマルチキャストのいずれかである。
・  第３層エントリ３２１によって示されている、外部接続１１７の１つを通してＭＬＤＮＥ２０１に到着したフローに対するヘッダ・クラスおよびアドレス依存の第３層および第４層のヘッダ位置。パケットのフローにおけるメンバ関係は、後述のように、ＣＰＳによって決定される。
中継メモリ２１３の各エントリは、連想メモリ２１４のエントリと関連付けられている。中継メモリ内のエントリとの一致がある場合、連想メモリ２１４内のエントリへのポインタにより、スイッチング要素はパケットを中継するための外部または内部ポートなどの中継情報を取得することができる。連想メモリのエントリには、次のフィールドのうち１つ以上が含まれる。
・  サブシステム・ポート・フィールド−受信パケットを中継する際に使用しなければならないサブシステムのポートを含むフィールド。学習済みタイプ１のエントリ３０１については、フィールド３４７は到着外部ポートを識別するが、ＣＰＳによって作成されるタイプ１のエントリについては、フィールド３４７は１つ以上の内部ポートおよび外部ポートを識別する。同様に、サブシステム・ポート・フィールド３４７はタイプ２のエントリ３２１の関連データとして使用するときに内部ポートおよび外部ポートの両方を含むことができる。
・  優先順位フィールド３４５−パケットの優先順位タグ付けおよび優先順位キューイングに使用するフィールド。内部リンク２４１を介してサブシステム間で受け渡される情報には、送信された各パケットとともにそのような一組の優先順位ビットを入れることができる。分散フローでは、この優先順位情報はパケットのキューイングのため送出側サブシステムの連想メモリから直接取り出すことができる。
・  古くなった発信元フィールド３４４−ＣＰＳでは１ビットを使用して、エントリが古くなったという理由で対応するエントリを削除すべきかどうかを判別する。学習済みタイプ１のエントリ３０１で使用した場合、一般に、このビットを使用してＩＥＥＥ８０２．１ｄアドレス・エージングを実装する。
・  古くなった宛先フィールド３４３−ＣＰＳでは１ビットを使用して、アドレス表内で最近アクティブであったタイプ１またはタイプ２のエントリ（フローを含む）と古くなっており、削除しなければならないものとを判別する。さらに、２つのサブシステムが複数の内部リンクによって結合されている場合、このビットを使用して負荷のバランスをとることができる。ＣＰＳがエントリのエージングを行うのを支援するためにフロー・エントリが一致するごとにフロー・エントリの経過期間フィールド（連想メモリ２１４内の古くなった宛先フィールド３４３）を更新するためにサブシステムを使用する。
・  分散フロー・フィールド３４９−内部リンク２４１によりこのビット１つを受入側サブシステム２１０から送出側サブシステムへ受け渡し、送出側サブシステムで使用している一致サイクルのタイプ（タイプ１またはタイプ２）を制御する。通常の使用では、タイプ１のサイクルを送出側サブシステムで使用するように、ビットが設定される。
中継メモリおよび連想メモリ２１３および２１４内のタイプ１のエントリおよび関連データは次のように処理される。
タイプ１のエントリ３０１とその関連するデータの一部は、通常サブシステム２１０によって自動的に学習され、ＣＰＳ２６０の介入を必要としない。しかし、ＭＬＤＮＥは、オプションで、ＣＰＳが中継メモリおよび連想メモリへのそのような変更を許可できるように設定することができる。
学習済みタイプ１のエントリ３０１では、サブシステム・ポート・フィールド３４７および経過期間フィールド３４４が、パケットの到着の外部ポートを指定し、最近受信したパケットのヘッダとエントリ３０１が一致しているかどうかを示す連想メモリ２１４内にある。
同様に、ＣＰＳによって作成されたタイプ１「宛先」エントリ３０１およびその関連データは、学習済みエントリ３０１と同じ形式である。受入側サブシステム２１０から「ミス」通知を受け取ったことに対する応答によりＣＰＳ２６０はＣＭ２６３からタイプ１「宛先」アドレス・フィールド３１３に書き込む。受信したパケット（外部ポートに到着）の第２層宛先アドレスを含む、ヘッダ部分が中継メモリ内のタイプ１のエントリと一致しなかったせいでミス通知が発生している。
宛先がサブシステム２１０によって知られていない受信パケット、すなわち中継メモリ２１３内でタイプ１のエントリ３０１とのヘッダの不一致になっている受信パケットは、すべての内部ポートと、到着のポート以外のすべての外部ポートと、ＣＰＳ２６０に対して溢れる。サブシステムによるこのような溢れ動作は、未知の第２層宛先アドレスを持つパケットが受信されるごとに、ＣＰＳ２６０が中継メモリ２１３内の一致する「宛先」エントリ３０１をプログラムするか、または宛先アドレスがサブシステムによって外部ポートでのパケットの受信に応答して発信元アドレス３０３として学習されるまで継続する。
分散中継方式の例
次に第４図に示されているようにサブシステム４１０および４２０の２つしかないＭＬＤＮＥ２０１に関して本発明の第２層分散中継の側面を例を用いて詳述する。
第１のパケットを受入側サブシステム４１０が外部ポートＥ1を通してノードまたは端局Ａから受信すると、パケットの第２層発信元アドレスが不明な場合、あるいは発信元アドレスが到着のポート以外のポートを発信元アドレスに関連付けているエントリ内に存在している場合に、学習動作が発生する。第２層アドレスおよびパケットがＭＬＤＮＥに到着する際に通る対応するサブシステムとしてＣＭ内に複製されているこの新たに学習されたヘッダ・エントリをＣＰＳ４６０に通知する。
宛先アドレスを含む第１のパケットのヘッダとタイプ１のエントリ３０１との間に一致がある場合、そのパケットは連想メモリ４１４で識別されているポートを通じて中継される。識別されているポートが到着のポート（Ｅ1）であれば、第１のパケットは単に破棄されるか、あるいは無視されるだけである。
他方、パケットの宛先アドレスとタイプ１のエントリ３０１との間に一致がなければ、パケットはＣＰＳ、Ｅ2、Ｅ3（Ｅ1ではなく）、およびＩ1またはＩ2を含むサブシステム４１０のすべてのポートで溢れる。ＣＰＳには、このミスが通知され、第１のパケットのヘッダを受信する。さらに、別のバス４５１を使用してＣＰＳ４６０と通信していることから通知されるＣＰＳとは無関係にハードウェアでの溢れが生じる。
ＣＰＳ４６０はサブシステム４１０における第１のパケットのミスの通知を受信したときにその応答として第１のパケットの第２層宛先アドレスと一致する第２層アドレスについてＣＭをチェックする。ＣＭは、それぞれの中継メモリを格納する特定のサブシステムを識別する情報とともに、中継メモリ４１３および４２３のそれぞれでタイプ１のエントリ３０１のアドレス３１３を含む第２層ヘッダ・データのコピーを保持する。したがって、ＣＰＳはサブシステムが学習したすべての第２層発信元アドレスを知っていることになる。
ＣＭの第２層アドレスが第１のパケットの第２層宛先アドレスと一致する場合、ＣＰＳは一致している第２層アドレスをＣＭから中継メモリ４１３に新しいタイプ１「宛先」エントリ３０１としてコピーする。さらに、ポートでサブシステム４２０がリンクされるので、ＣＰＳは新しいエントリのサブシステム・ポート・フィールド３１７をＩ1またはＩ2として識別する。この２つのサブシステムの例では、ＣＭ内の一致する第２層アドレスは、受入側サブシステム４１０の中継メモリ４１３内に見つからなかったため、すでにサブシステム４２０によって学習されていなければならない。第１のパケットの宛先がＢだと仮定すると、サブシステム４１０を介してＭＬＤＮＥに到着し、Ｂを宛先とするその後のパケットは、内部リンク４４１または４４２上でハードウェア内に中継されることになる。
そこで、第２のパケットがサブシステム４１０に到着したが、このときには内部リンク４４１または４４２を使用していると仮定する。第２のパケットは他のサブシステム、この例では、サブシステム４２０によって送信されている。第２のパケットは内部リンクを通じて到着したため、サブシステム４１０では学習は行われない。中継メモリ４１３内で第２のパケットのヘッダ（第２層宛先アドレスを含む）とタイプ１のエントリ３０１とのタイプ１の一致があった場合、第２のパケットは連想メモリ４１４で識別されている外部ポートを介して中継される。パケットは内部リンクによって到着するので、第２のパケットは、外部ポートのみで中継されることに注意されたい。
タイプ１のエントリ３０１との一致がない場合、第２のパケットはサブシステム４１０のすべての外部ポートに溢れ、内部ポートには溢れない。パケットは内部リンクによって到着したので、ＣＰＳはこの「ミス」の通知を受けない。
したがって本発明の上の説明では、タイプ１のエントリ３０１および関連するデータを中継メモリおよび連想メモリに書き込む方法を説明している。
フロー
上の説明では、タイプ１（第２層）フレームワークでＭＬＤＮＥ２０１の中継機能に注目した。しかし、本発明の分散アーキテクチャは、この実施例において、第３層と第４層の情報を含む第２のタイプのエントリに基づく中継もサポートしている。特に、本発明の他の実施例では、ネットワーク要素が第３層および第４層のヘッダ内のエンド・ツー・エンド情報に基づいて一連の関係するパケットを中継することができる。
フローは、ＭＬＤＮＥ２０１および稼働している端局内にプログラムされ、サポートされている第３層および第４層の機能を利用できる同じサブネット内の端局同士の間の交信として定義される。したがって、フローは一様な適切に定義されたサービス要件を持つ固定された第３層端局の間で伝送されるパケットの列である。ＭＬＤＮＥ２０１の目的の１つは、ハードウェア内のこのようなパケット列を（ブリッジ同様の速度で）交換する一方で、サービス制御のパス（経路制御）とクラスを使用できるようにすることである。
フローがサブネット（論理的または物理的に定義されている）に制限されている場合、フロー・パケットを宛先に中継するのに、経路制御プロトコルは不要である。もちろん、サブネットは、外部接続のグループが単一のサブネットとして定義されていると認識するようにＭＬＤＮＥ２０１の関連するサブシステムを構成することにより、予め定義済みである。サブネットはさらに複数のサブシステムを横断する形で、仮想ＬＡＮ（ＶＬＡＮ）を論理的に定義することもできる。ＭＬＤＮＥに対するＶＬＡＮ機能の付加については、以下の節で説明する。
各スイッチング要素で実装されているクラス・フィルタなどのハードウェア・メカニズムは、トラフィックの簡単な観察（アプリケーションも端局も変更なし）に基づくか、または従来技術で知られている手法によるＲＳＶＰタイプの信号送受信方式を使用して、潜在的パケットをフローのメンバとして識別するようにプログラムすることができる。フローのターゲットとなるパケット・クラスの例として、ＴＣＰおよびＵＤＰの非フラグメンテーション、パケットがある。それぞれのサブシステム内のクラス・フィルタは、そのようなパケットを受信した後タイプ２の一致サイクル検索を開始するようにプログラムされている。
クラス・フィルタによって潜在的フロー候補として識別されると、中継メモリ２１３のタイプ２の検索が実行され、一致するタイプ２のエントリ３２１を探すことになる。そのような一致するエントリがない場合、パケットまたはそのヘッダのみがＣＰＳ２６０に送信され、ＣＰＳはそれに応答して中継メモリ２１３内にタイプ２のエントリをインストールするかどうかを決定する。ネットワーク要素の予め設定されているポリシーにより、クラス・フィルタおよびＣＰＳ意志決定において、ＣＰＳに送信するのがヘッダなのか、パケット全体なのか、それとも何も送信しないのかが決定される。これは、中継メモリ内のエントリごとに、またクラス・フィルタ内のクラスごとに、設定可能である。
受入側サブシステムにおいてＣＰＳによって作成されたタイプ２のエントリ３２１は、たとえばＩＰ発信元アドレス・フィールド３２５およびＩＰ宛先アドレス・フィールド３２７を含む、フロー内に将来のパケットを取り込むために希望する粒度レベルを定義するエントリをフローの一種として識別するヘッダ・クラス・フィールド３２１をヘッダ・データの他に持つ。
フロー・エントリのクラスと一致し、タイプ２のエントリ自体とも一致する（Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ、Ｐｒｏｔｏｃｏｌ、Ｎｅｔｗｏｒｋ  Ｌａｙｅｒ  Ｓｏｕｒｃｅ、Ｎｅｔｗｏｒｋ  Ｌａｙｅｒ  Ｄｅｓｔｉｎａｔｉｏｎ、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｏｕｒｃｅ  Ｐｏｒｔ、およびＡｐｐｌｉｃａｔｉｏｎ  Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔなどの、ヘッダ内の情報に基づいて）後から受信したパケットは、一般に、中継されるが、一致するタイプ２のエントリの関連データで指定されているとおりのＱＯＳ処理も受ける。ＱＯＳ情報は、送出側サブシステムが受入側サブシステムと異なる場合に内部リンクで受け渡される。たとえば、受信パケットのヘッダ内のＴＣＰ発信元および宛先ポート情報を使用して、異なる優先順位レベルでの通信を望む２つのトランスポート・プロトコル・クライアントを区別することができる。ＭＬＤＮＥでは、各パケットの上位層（第３層および第４層）ヘッダ内に見つかったＱＯＳ情報をもとにそのようなパケットを処理し、さらに複数のタイプ２のエントリを同じ端局の間でパケット列に割り当てることができる。
タイプ２一致サイクルの後に、一致するタイプ２のエントリが受入側サブシステムの中継メモリ内に存在していない場合、パケットはサービス品質のマッピングなしで第２層においてブリッジするか、またはそのクラスの既定値として指定されているサービス品質で第２層においてブリッジするか、またはＣＰＳ２６０のソフトウェアに基づいて中継のためＣＰＳに送るかのいずれかが可能である。このような既定の動作は、ＭＬＤＮＥ２０１のすべてのパケット・クラスに対しプログラム可能である。
分散フロー
本発明のＭＬＤＮＥにおけるフローの取り扱いは、後述のように分散方式で行うことができる。新しいパケットがクラス・フィルタによって潜在的フロー候補と識別されると、ＣＰＳに、フロー・エントリをセットアップするかどうかを決定するパケットのヘッダが送られる。ＣＰＳによる決定に従い、フロー・エントリが作成されていればそのフロー・エントリのサブシステム・ポート・フィールド３４７は、第３層の宛先に導かれる、サブシステムの適切な内部または外部中継ポートを反映する。
受入側サブシステム以外のサブシステムを通じて第３層の宛先に到達する場合、タイプ２のエントリを宛先の異なる環境に対応できる別の送出側サブシステム内に（受入側サブシステムのタイプ２のエントリに加えて）作成するようにＣＰＳに指示することができる。このシナリオでは、ＣＰＳは受入側サブシステムのタイプ２のエントリと関連して分散フロー（ＤＦ）ビット３４９を設定する。新しいパケットが受入側サブシステムのタイプ２のエントリと一致したときに、内部リンクでＤＦビットが送出側サブシステムに受け渡される。ＤＦビットがセットされると、タイプ２の検索が別の送出側サブシステムによって強制的に実行される。送出側サブシステム内の一致するタイプ２のエントリに対する関連するデータは通常、パケットとともに内部リンクで受信したＱＯＳをオーバーライドする、キューイング優先順位フィールド３４５などのフローに対するサービスの品質を反映する。
受入側サブシステムでフローと一致する後続のパケットを受信すると、パケットは、フロー・エントリの関連データで指定されているポートを介して中継される。ポートが内部ポートであれば、パケットに加えてＤＦビットも内部リンク２４１で送信される。送出側サブシステムはパケットを受信し、内部リンク上でセットされているＤＦビットを認識し、応答として、自分の中継メモリ内のタイプ２のエントリとパケットとを一致させようとするが、そのエントリはすでに上記のようにＣＰＳによって作成されている。このタイプ２の検索に使用するクラスは、送出側サブシステムのヘッダ一致機能によって決定される。送出側サブシステム２２０内の一致するタイプ２のエントリが存在しており、タイプ１の結果に依存するべきではない、すなわちタイプ２の一致サイクル・ミスがあってはならない。その後、パケットは一致するタイプ２のエントリの関連データで識別されている送出側サブシステムの外部ポートを通じてパケットの第３層宛先に中継される。
ＭＬＤＮＥはさらに、送出側サブシステム内のタイプ２のエントリによって、パケットのコピーを中継するために使用する連想メモリで識別されている１つ以上の外部ポートと関連するマルチキャスト宛先アドレスが指定されるマルチキャスト宛先アドレスを持つパケットに対応するように構成することも可能である。さらに、本発明の分散フロー構造を使用すると、宛先の異なる環境についてもマルチキャスト・パケットに対応できる。タイプ２のエントリは、それぞれの外部ポートのｆｏｒｃｅ＿ｂｅビットを含む関連データを指している。このビットを使用すると、他の外部ポートのサービス特性に影響を及ぼすことなく、対応する外部ポートにおいてパケットを最低優先順位でキューに入れることができる。これらのビットは、各タイプ２のエントリ３２１に対応して、別の送出側サブシステムの連想メモリ内でＣＰＳによってセットされる。
それとは別に、受入側サブシステムで行った決定に基づき同質の受信者優先順位をサポートするようにＭＬＤＮＥエントリを構成することもできる。送出側サブシステムの外部ポートでフロー・パケットをキューに入れるための優先順位フィールド３４５などの、ＱＯＳ情報は、通常、受入側サブシステムから内部リンクを介して送出側サブシステムに受け渡される。しかし、上記のように、ＤＦ構造により、ＣＰＳはパケットとともに内部リンクで送出された優先順位をオーバーライドするように送出側サブシステム内のタイプ２のエントリを設定することができる。
ＶＬＡＮ
ＭＬＤＮＥの他の実施例では、たとえば、ＩＥＥＥ８０２．１Ｑ  ｆｏｒ  ８０２．３およびＥｔｈｅｒｎｅｔパケットで定義されている仮想ＬＡＮの概念を使用して、位置と無関係な方法により端局へのＬＡＮブリッジ機能をサポートしている。このようなＶＬＡＮをサポートする端局が送信するパケットは、ＶＬＡＮ識別子（ＶＩＤ）フィールドで「タグ付け」された第２層ヘッダを持つ。
ＭＬＤＮＥは、そのように設定されている場合には、内部リンクと適切な外部接続とで通信する際にそのようなＶＬＡＮタグも使用する。それぞれの外部ポートに対し、受信したタグなしパケットにタグを付けるために使用されるＶＩＤを割り当てることができる。パケットのＶＩＤにより、パケットのブロードキャスト・ドメインが識別される。ＶＬＡＮ使用可能なＭＬＤＮＥに対し、ブロードキャストである、あるいはＶＬＡＮごとに不明な第２層宛先アドレスを持つパケットを中継する方法を指示する。マスク・パー・ビット・コンテント・アドレッサブル・メモリ（ＣＡＭ）を使用してＶＬＡＮ使用可能なＭＬＤＮＥの中継メモリを実装する場合、与えられたＶＬＡＮについてすべてのブロードキャスト・パケットおよび不明なユニキャスト・パケットと一致する１つのエントリをサポートされているＶＬＡＮごとに中継メモリに追加しなければならない。エントリ３０１の第２層アドレス・フィールド３１３がワイルドカードが使用できる場合にこのような一致が発生する。一致するエントリはＶＩＤを指定するが、関連データはＶＬＡＮを定義するポートを識別し、不明な第２層宛先を持つパケットはブロードキャスト・ドメイン、すなわちパケットで指定されたＶＬＡＮにのみ溢れる。
ＭＬＤＮＥでＶＬＡＮ機能を無効にするには、中継メモリ内のすべてのタイプ１のエントリ３０１でＶＩＤフィールド３０３にワイルドカードを使用するか、またはすべてのエントリでＶＩＤフィールド３０３に対し一定で同一の値を設定して、一定の値を持つすべての着信パケットにタグを付けるようにすべての外部ポートを設定する。
以上をまとめると、ＭＬＤＮＥ２０１の分散方式は、サブシステムを追加していくことで外部接続数を簡単に増やせるスケーラブルなアーキテクチャを実現するということである。さらに重要なのは、外部接続数の増加に合わせてエントリを追加していくのに、それぞれのサブシステム内の高性能ではあるが、高価なハード配線ロジック回路である中継メモリ２１３を大々的に増設する必要がないという点である。それぞれのサブシステムは、自分の外部接続と内部接続に関係する情報を格納するためだけに中継メモリを使用するため、中継メモリの容量をＭＬＤＮＥサブシステムの製造時に予め設定することができる。中継メモリ２１３の深さを定義する際の支配的要因は接続２１７の外部リンクに直接接続されているＭＡＣアドレスの数なので、ＭＬＤＮＥ２０１で使用するサブシステムの数を増やしても、それぞれの個別中継メモリに必要な記憶容量はわずかの影響しか受けない。
例として上で説明したＭＬＤＮＥの実施例には、もちろん、当業者の能力の範囲内で構造および実装にさまざまなバリエーションのあることがわかる。したがって、以上の述べた詳細は、説明を目的とするものと解釈すべきであって、制限することを目的とするものと解釈すべきではない。
【図１】
0004060378.tif 000002
【図２】
0004060378.tif 000003
【図３】
0004060378.tif 000004
【図４】
0004060378.tif 000005