(57)【特許請求の範囲】
【請求項１】
ネットワークデバイス間でデータパケットを輸送するためのリングネットワークにおいて、
−  少なくとも１つのリングポート、少なくとも１つのローカルポート及びリングスイッチにより処理されたパケットからの選択された発信元識別子に基づいてどのネットワークデバイスがリングスイッチの各ポートと結びつけられているかを自己学習する少なくとも１つテーブルを有する一定数のリングスイッチ、を含んで成り、
−  各リングスイッチの少なくとも１つのリングポートがリングネットワーク内のもう１つのリングスイッチのリングポートに結合されており、
−  リングスイッチは、リングネットワーク内のリングスイッチの少なくとも１つのローカルポートと結びつけられた特定されたネットワークデバイスにデータパケットを導くためそのリングポートとローカルポートの間でデータパケットを切換え、
−  各リングスイッチは、少なくとも１つのリングポート及び少なくとも１つのローカルポートで受信されたデータパケットがリングスイッチの少なくとも１つのローカルポートと結びつけられた１つのネットワークデバイスを宛先としていないときに、少なくとも１つのテーブルに基づいて前記データパケットをリングネットワーク上の別のリングスイッチへ切換えるように、構成されており、
−  １つのリングスイッチから別のリングスイッチへのデータパケット転送において、データパケットが前記１つのリングスイッチのローカルポートと結びつけられたネットワークデバイスを宛先としていないときは、前記１つのリングスイッチのローカルポートを通して転送されるデータパケットに前記別のリングスイッチのローカルポート又はそのローカルポート上のデバイスを識別する共通識別子が付加される、
リングネットワーク。
【請求項２】
発信元識別子がメディアアクセス制御（ＭＡＣ）アドレスを含んで成る、請求項１に記載のリングネットワーク。
【請求項３】
発信元識別子が、インターネットプロトコル（ＩＰ）アドレスを含んで成る、請求項１に記載のリングネットワーク。
【請求項４】
発信元識別子が階層アドレスの少なくとも一部分を含んで成る、請求項１に記載のリングネットワーク。
【請求項５】
発信元識別子が、ユニバーサルデータグラムプロトコルのポート番号を含んで成る、請求項１に記載のリングネットワーク。
【請求項６】
発信元識別子が、データパケットのための同じ又は異なるプロトコロルレベルで２つ以上の識別子の組合せを含んで成る、請求項１に記載のリングネットワーク。
【請求項７】
共通識別子が、パケット内で前置、後置又は内含されている、請求項１に記載のリングネットワーク。
【請求項８】
パケットをローカルポートから送出する前にリングスイッチが共通識別子を除去する、請求項７に記載のリングネットワーク。
【請求項９】
リングスイッチが、一定数のネットワークデバイスにマルチキャストすべきパケットに対して共通識別子を前置、後置又は内含させる、請求項１に記載のリングネットワーク。
【請求項１０】
リングネットワークのリングスイッチ内にあるデータパケットを処理するための方法において、
−  リングスイッチのリングポートにおいてデータパケットを受信すること、
−  該データパケットから宛先識別子を読取ること、
−  該データパケットのための宛先識別子がリングスイッチのためのテーブル内にあるとき、その宛先識別子と結びつけられたリングスイッチのポートへと該データパケットを切換えること、及び
−  宛先識別子を読取った後にローカルポート又はそのローカルポート上のデバイスを識別する共通識別子を読取ること、
を含んで成る方法。
【請求項１１】
共通識別子を読取ることには、前置、後置又は内含される共通識別子を読取ることが含まれる、請求項１０に記載の方法。
【請求項１２】
宛先識別子を読取ることには、イーサネットパケットからのメディアアクセス制御（ＭＡＣ）アドレスを読取ることが含まれる、請求項１０に記載の方法。
【請求項１３】
宛先識別子を読取ることには、インターネットプロトコル（ＩＰ）アドレスを読取ることが含まれる、請求項１０に記載の方法。
【請求項１４】
宛先識別子を読取ることには、階層アドレスの少なくとも一部分を読取ることが含まれる、請求項１０に記載の方法。
【請求項１５】
宛先識別子を読取ることには、ユニバーサルデータグラムプロトコルのポート番号を読取ることが含まれる、請求項１０に記載の方法。
【請求項１６】
宛先識別子を読取ることには、データパケットのための異なるプロトコルレベルで２つ以上の共通識別子の組合せを読取ることが含まれる、請求項１０に記載の方法。
【請求項１７】
データパケットのための宛先識別子がリングスイッチのためのテーブル内にない場合又はデータパケットが同報通信データパケットである場合、共通識別子と結びつけられているリングスイッチの又は共通識別子と結びつけられたネットワークデバイスを内含するリングスイッチの全てのポートに対し該データパケットを同報通信する、請求項１１に記載の方法。
【請求項１８】
データパケットのための宛先識別子がマルチキャスト識別子である場合、共通識別子と結びつけられているか又は共通識別子と結びつけられたネットワークデバイスを内含するリングスイッチの全てのポートに対してデータパケットを同報通信する、請求項１１に記載の方法。
【発明の詳細な説明】
【０００１】
関連ケースに対するクロスリファレンス
本出願は、１９９７年８月２１日に提出された「リングネットワークのための回路と方法」という題の共通譲渡された同時係属出願第０８／９１５，９１９号の一部係属出願である。
【０００２】
本出願は、以下の共通譲渡された付加的な同時係属出願に関連するものである：
−  １９９７年１１月２１日付で提出された、「通信システムにおける修正用システム及び方法ならびに情報信号」という題の出願第０８／９７５／７３５号、
−  １９９８年８月２１日付けで提出された「リングネットワーク上でのデジタル化された信号の輸送」という題の出願第０９／１３８，３３２号、
−  １９９８年８月２１日付けで提出された「リングネットワーク上の制御データ」という題の出願第０９／１３７，７２２号、
−  １９９８年８月２１日付けで提出された「リングネットワーク上のインターネットアクセス」という題の出願第０９／１３７，７２１号
これらの付加的な出願の各々は、参考として内含されるものである。
【０００３】
発明の技術的分野
本発明は一般に通信の分野特に、トークン又はカプセル化を使用することなく可変アドレスを学習、切換え、リングネットワーク上で経路指定することを伴う通信ネットワーク向けの回路及び方法に関する。
【０００４】
発明の背景
コンピュータネットワークは、大規模及び小規模事業、大学及びその他の機関において一般的なものになってきた。かかるネットワークは、多数のユーザーがデータ記憶システム、ファイルサーバー、スイッチ、ルータ、プリンタ、モデム及びその他の周辺装置といったような資源及びデータを共有することを可能にする。これらのネットワーク内でデータを伝送するためのプロトコルには、イーサネット、トークンリング又は光ファイバ配信データインタフェース（ＦＤＤＩ）及びカプセル化により例示される３つの基本的タイプが存在する。これらのネットワークプロトコルの各々には利点と欠点があり、これらについては本発明の教示をより良く理解するべく、発明の背景の第Ｉ節において簡単に紹介される。さらに、従来のイーサネットプロトコルについて第ＩＩ節で記述する。最後に、リングネットワークの形に構成されるこのようなスイッチの能力を制限する従来のイーサネットスイッチの側面について、第ＩＩＩ部で記述する。
【０００５】
Ｉ．ネットワークプロトコル
以下でさらに詳細に記述するイーサネットは、基本的に同報通信プロトコルである。その主たる長所はその単純さにある。これによってイーサネットは、さほどコストの高くないハードウェア及びソフトウェアでの実施が可能となる。従来のイーサネットの主たる欠点は、ネットワークが網羅できる物理的距離に関して多大な制限が存在するということにある。さらに、従来、イーサネットネットワークの帯域幅は、ネットワークの中心に近くなるほど大きくなる。
【０００６】
コンピュータ産業規格ＩＥＥＥ−８０２．５及びＡＮＳＩ ＸＴ３．９の中に記述されているようなトークンリング及びＦＤＤＩはそれぞれ、従来のイーサネットに比べてはるかに長い距離にわたりデータを伝送することができるという明確に区別される利点を提供する。さらにトークンリング及びＦＤＤＩは、ネットワーク全体を通してほぼ等しい帯域幅を提供する。トークンリング及びＦＤＤＩの主たる欠点は、機器をイーサネット機器に比べはるかにコスト高のものにするその複雑なプロトコルにある。これらの複雑なプロトコルは、トークンリング及びＦＤＤＩネットワーク内でのパケットの伝送法により必要とされるものである。プロトコルは、「トークン」の使用に依存している。このトークンは、それを所有する単数又は複数のネットワークエンティティのみがネットワーク上でデータを伝送できるような形で、ネットワークを順に移動させられている。トークンが破損した時点で、ネットワーク要素は、ネットワーク上でパケットを伝送できなくなる。一部のケースでは、これが数秒間持続することもある。この問題を補償するため、トークンが失なわれた時点を見極め新しいトークンを新規作成できるようにするため複雑なプロトコルが開発された。これらのプロトコルを実施するのに必要とされる莫大な量の論理回路のため、イーサネットネットワークに比べトークンリング及びＦＤＤＩ ネットワークは実施及び維持が高くつくものとなっている。
【０００７】
最後に、イーサネットパケットがより長い距離にわたり伝送され得るようにするため、カプセル化プロトコルが開発された。かかるプロトコルにおいては、イーサネットパケット全体は、付加的なアドレス指定情報、プロトコル情報などを含むその独自のヘッダーと共に、もう１つのタイプのパケット内に置かれる。これらのプロトコルは同様に、ネットワーク内でルータを導く目的でイーサネットパケットのデータフィールド内に特殊なより高レベルのプロトコル情報を内含することを必要とし、かくして取扱えるデータパケットのタイプが制限され、パケットを生成するデバイス及びさまざまなイーサネットネットワーク間でパケットを送受信するのに使用されるルータの両方に多大な処理負担が課せられることになる可能性があるという問題に苦しんでいる。これらの付加的なプロトコル要素及び制限は標準的に、そうでなければ廉価であるイーサネットネットワークに高価なハードウェア及びソフトウェアを付加する必要性をもたらすことになる。さらに、かかるプロトコルは標準的に、ルータのために手動で新規作成されたアドレステーブルを使用することを必要とする。
【０００８】
ＩＩ．イーサネット
イーサネットは、ローカルエリアネットワークのための一般的プロトコルになっており、以上で記述した利点のため広く使用されている。本明細書においては、「イーサネット」という語は、ＩＥＥＥ−８０２，３及びＩＳ０８８０２／３として多様な形で知られているコンピュータ産業の一群の規格によって網羅されたキャリヤ検知多重アクセス／衝突検出（ＣＳＭＡ／ＣＤ）プロトコルのクラス全体を内含している。これには、「ＳｔａｒＬＡＮ」として知られる１メガビットのイーサネット、１０メガビットのイーサネット、「Ｆａｓｔ Ｅｔｈｅｒｎｅｔ 」として知られている１００−メガビットのイーサネット、「Ｇｉｇａｂｉｔ Ｅｔｈｅｒｎｅｔ」として知られている１ギガビットのイーサネット及びその他の任意のデータ転送速度での将来のあらゆるＣＳＭＡ／ＣＤプロトコルが内含されるが、これらに限られるわけではない。
【０００９】
当初、イーサネットは、端末へ及び端末から毎秒約１０メガビットの転送速度でデータパケットを搬送するデータバスを伴う半２重同報通信システムとして設計された。イーサネットに接続された各端末は、ネットワーク上のその他全ての端末に対し送信すること又はこれらから受信することのいずれかが可能であるが（「多重アクセス」、ＣＳＭＡ／ＣＤ内の「ＭＡ」）、元来のイーサネットでは、送信及び受信を同時に行なうことはできない。さらに、イーサネットは、一定の与えられた時点でデータバスに対しどの端末がアクセスできるかについての中央制御を伴わないネットワークとして設計された。イーサネットは、２つの端末が同時に伝送することはまれであることそして各端末がまず最初に、もう１つの端末がすでに送信しているか否かをみるためバスに「耳を傾ける」ことという確率的原則に基づいていた（「キャリヤ検知」、ＣＳＭＡ／ＣＤ内の「ＣＳ」）。このことは、決定論的制御がトークン及びＡＴＭ（非同期式転送モード）ネットワークにより管理されているトークンリング及びＦＤＤＩシステムや、中央決定論的制御がＡＴＭスイッチ又はルータのいずれかにより特殊なインタールータープロトコルを通して取扱われるルーターとは対照的である。
【００１０】
２つの端末が同時に伝送を行なおうとした場合に衝突が発生する。関与する端末は、伝送後のバス上の衝突信号又は破損データパケットについてデータバスを監視することにより、衝突を検出する（「衝突検出」、ＣＳＭＡ／ＣＤ内の「ＣＤ」）。伝送を行なった全ての端末が衝突発生を認識するためには、全ての端末が関与する全てのパケット及び衝突信号を受信しなければならない。従って、ネットワークは最小パケットが開始から終了まで網羅することになる距離の半分より大きくなり得ない。毎秒１０メガビットとして、イーサネットの最小パケットである６４バイトのパケットは、開始から終了まで５１．２マイクロセカンドを要する。従って、ローカルエリアネットワークは、ネットワーク内の機器からのあらゆる伝播遅延を含め、２５．６マイクロセカンドでパケットが走行する距離より大きくなり得ない。毎秒１００メガビットであれば、６４バイトのパケットは、開始から終了まで５．１２マイクロセカンドを要する。従って、ローカルエリアネットワークは、あらゆる伝播遅延を含め、パケットが２．５６マイクロセカンドで走行する距離より大きくなり得ない。衝突が検出された時点で、端末の各々は、ネットワーク上でのさらなる衝突を回避するためそのパケットの再伝送を試みる前に、無作為の量の時間だけ待つことになる。このことは、トークン及び付加的なプロトコルの使用を通して集中型決定論的制御が管理されることから衝突を許さず従ってはるかに長い距離にわたりテータを伝送できるトークンリング、ＦＤＤ１、ＡＴＭ及びルータと対照的である。
【００１１】
イーサネットは、その他全てのネットワークプロトコルと同様、パケットの形で伝送を行なう。これらのデータパケットは、発信元アドレス、宛先アドレス、伝送中のデータ及び巡回冗長検査又はＣＲＣと一般に呼ばれている一連のデータ完全性ビットを内含する。発信元アドレスは、パケットを発信したデバイスを識別し、宛先アドレスは、ネットワーク上でそのパケットが伝送されるべきデバイスを識別する。
【００１２】
全２重イーサネットは、２つの端末間に別々の送信及び受信チャンネルを有することにより半２重イーサネットのタイミング上の制約を無くするため、より最近になって開発されたものである。この要領で、送信チャンネルは、その他のいずれかの送信機からの送信を決して受信しない単一受信機に対してのみ伝送していることから、衝突は絶対にあり得ない。全２重イーサネットは、各イーサネットデバイスが送信パケット及び受信パケットを同時に記憶するための付加的なバッファメモリ及び論理を有することを必要とする。その他のスイッチ又は端末へ及びそこからパケットを伝送できる多重ポートを伴う古典的なイーサネットハブは、全２重イーサネットを扱うことができない。元来のイーサネットスイッチは同じく、全２重イーサネットを取扱うことができないものの、市場にある最新のイーサネットスイッチは、そのイーサネットポートのうちの単数又は複数のものが全２重モードで動作できるようにするためこれらのポートのうちの単数又は複数のものにおいて利用可能である付加的なバッファメモリ及び論理を有する。
【００１３】
入ポートから特定された端末までデータパケットを切換えるため、イーサネットスイッチは、スイッチ上のどのポートが端末への経路に接続されているかを知る必要がある。イーサネットスイッチは、スイッチの各ポートにアタッチされた又は結びつけられた端末のアイデンティティを「自己学習」する。各々のスイッチポートは、パケットを受信するにつれて全てのパケットの発信元アドレスをそのポートのためのメモリテーブル内に記録する。
【００１４】
さらに、スイッチのポートにおいてパケットが受信された時点で、パケットの宛先アドレスは、スイッチのその他のポートのためのメモリテーブルに比較される。１つのポートのためのテーブル内に宛先アドレスについて整合が発見された時点で、パケットは、そのポートに切換えられ、そのポートから外に送られる。しかしながらパケットが「同報通信パケット」であるすなわち、ＦＦＦＦＦＦの１６進宛先アドレスをもつパケットである場合、パケットはそのスイッチ上のその他のポートに同報通信されるものの、本来の受信ポートに戻ることは決してない。その上、非同報通信又はユニキャスト宛先アドレスについて全く整合が存在しない場合、スイッチはこれがこのスイッチを通して新しい端末まで進む最初のパケットであると仮定することができる。端末の場所は未知であることから、パケットをスイッチ上のその他のポートまで同報通信することができるが、これが本来の受信ポートに戻されることは決してない。同様にして特別に予約された宛先アドレスを用いて、「マルチキャスト」パケットを得ることもできる。このようなパケットは、選択されたデバイスグループに同報通信することになる。
【００１５】
イーサネットプロトコルの一部ではなく、一般に使用されるより高いレベルのプロトコル（例えばＴＣＰ／ＩＰ）の一部を成すものであるが、同報通信又はユニキャストパケットがその意図した宛先に到着した場合、宛先デバイスは通常、パケットを同報通信するスイッチに戻るように肯定応答パケットで応答する。肯定応答パケットがスイッチに到着した時点で、スイッチは、その中のポートと宛先端末のアソシエーションを記録するべくそのポートのためのメモリテーブル内に宛先端子からの肯定応答パケットの発信元アドレスを入れる。このようにして、そのステーションに送られた後続パケットはスイッチの正しいポートへと切換えられることになる。
【００１６】
ＩＩＩ．  従来のイーサネットスイッチの単方向リングに付随する問題点
従来のイーサネットスイッチは、その他全てのイーサネットデバイスと同様、単方向リングネットワーク内で構成され得ない。各スイッチがリングからパケットを受信するための１つのポート（「リングインポケット」）、リング上にパケットを置くための１つのポート（「リングアウトポート」）、そしてローカルエリアネットワークに接続された単数又は複数のローカルポートを使用するような考えられる１つの構成を想定することができる。この構成は、従来のイーサネットスイッチが使用されるとき少なくとも２つの問題を導くことになる。
【００１７】
まず第１に、例えばリングネットワークと結びつけられていない端末のための同報通信アドレス、マルチキャストアドレス又は無効アドレスを伴うイーサネットパケットは、イーサネットスイッチが未知の宛先アドレスを伴うパケットを処理する方法に起因してリングネットワークを周回して無期限に走行することになる。上述のように、従来のイーサネットスイッチがそのポートのためのテーブル中にパケットの宛先アドレスを発見しない場合、パケットは、リングアウトポートを含め、スイッチの各ポートから外に同報通信される。アドレスは無効であることから、リングネットワーク内の各スイッチは今度はそのリングアウトポートから外にパケットを同報通信することになる。かくして、パケットはリングネットワークを周回して無期限に走行することになる。
【００１８】
さらに、このような単方向リングネットワークにおいては、スイッチはそのリングインポートから外へといくつかのパケットを伝送しようと試みる。上述のとおり、従来のイーサネットスイッチは、１つのポートのためのテーブルを構築するためにそのポートにおいて受信されたパケットの発信元アドレスを使用する。このテーブルはスイッチに対し、そのポートを通って到達可能な端末を指示する。単方向リングネットワークにおいては、パケットがリングインポートを通ってスイッチに入った時点で、スイッチはパケットを送った端末すなわち、デバイスＡをリングインポートと結びつける。かくしてスイッチがデバイスＡを宛先とする１つのローカルポートからの１つのパケットを受信した時点で、スイッチは、リングアウトポートから外にパケットを送り出すのではなくむしろ受信専用のリングインポートからパケットを伝送することを試みる。
【００１９】
代替的には、スイッチ１つあたり１つのポートを用いて単方向リング内のスイッチを接続する試みを行なうことができる。このような構成においては、全２重イーサネットポートの受信回路はリングからのパケットを受信するように接続されることになり、又同じ全２重イーサネットポートの送信回路は、リングを周回して次のスイッチまでパケットを送るように接続されることになる。しかしながらこのことは、１つのポートで受信されたパケットの宛先アドレスがそのポートのためのテーブル内の発信元アドレスと同じである場合にはパケットはドロップされる、という基本的なイーサネット規則の１つと矛盾する。これは「宛先アドレス濾過」規則と呼ばれる。上述したばかりの従来のイーサネットスイッチのリングにおける宛先アドレス濾過規則の適用はすなわち、スイッチのポートがひとたびリング上のその他の端末の全ての発信元アドレスを学習した時点で、リング上の先行スイッチから発信されそのリング上の後続スイッチを宛先とするいかなるパケットも、それが次のスイッチまでリングを周回して転送され得るような形で、スイッチ内に入ることを許されない、ということを意味する。その上、いかなるパケットもそれが由来したポート上で外へ伝送されることはないというイーサネットの第２の基本的規則は、すなわち、先行スイッチからのパケットが受信回路の中に入ることができたとしても、それがそのポートから外にリング上へ伝送し戻され後続スイッチまで進むことは決してないということを意味している。ここで、従来のイーサネットハブについてこれらのアプローチのいずれかを試みてもハブ設計がつねに全てのパケットを同報通信することから同じ又はそれ以上のあらゆる問題がもたらされるということを指摘することができる。
【００２０】
企業の中には、異なる特注のプロトコルを用いた伝送のためにイーサネットパケットをカプセル化することによってこれらの問題を回避しようとしたところもあった。しかしながら、これらの技術は、機器に対し実質的な複雑性をつけ加え、基本的にトークンリング又はＦＤＤＩ ネットワークをエミュレートし、かくして実質的なコストを付加する。その上、これらの技術は、イーサネットシステムの利点の多くを喪失させる。１つのリング内でイーサネット ＬＡＮを接続するためのさらに一般的な技術は、イーサネットパケットをトークンリング、ＦＤＤＩ又はその他のリング指向性パケットに変換するルータを使用することである。この技術には、もう１つのタイプのパケット内でイーサネットパケットをカプセル化することと共に、ルータを方向付ける目的でイーサネットパケットのデータフィールド内に特殊なさらに高レベルのプロトコル情報を内含させる必要が生じるということの両方が関与し、かつかかる機器のユーザーが経路指定アドレステーブルを手動式にプログラミングすることが必要となる可能性がある。
【００２１】
上述の理由で、かつ本明細書を読み理解した時点で当業者には明らかになる以下に記すその他の理由から、当該技術分野においては、データパケットの中に収納されたデータ及びプロトコルに対し透明で、手動式介入無く全てのデバイスの場所を自己学習し、実現が単純で低コストであるようなリングネットワークに対するニーズが存在する。
【００２２】
発明の要約
リングネットワークに伴う上述の問題点及びその他の問題点は本発明によって対処され、以下の明細書を読み研究することにより理解されることだろう。リングネットワークと共に使用されるシステム及び方法が記述されている。有利には、リングネットワークは、システムデザイナが、リングネットワーク内での切換えのための基礎として使用すべきネットワーク内の各デバイスと結びつけられた識別子を選択できるようにする。この識別子は同様に、パケットがネットワークを周回して無期限に走行するのを防ぐのにも使用される。識別子は同様に、ネットワーク内のデバイスの場所を自己学習するためにリングスイッチによっても使用される。識別子のためには数多くの異なる信号を使用することができる。例えば、イーサネット パケットからのメディアアクセス制御（ＭＡＣ）アドレス、インターネットプロトコル（ＩＰ）アドレス、階層アドレスの少なくとも一部分、ユニバーサルデータグラムプロトコルのポート番号、そのデータパケットのための同じ又は異なるプロトコルレベルでの２つ以上の識別子の組合せ又はその他の適切な識別子がある。
【００２３】
特に、一実施形態においては、ネットワークデバイスの間でデータパケットを輸送するためのリングネットワークが提供されている。このリングネットワークは、一定数のリングスイッチを内含している。各リングスイッチは少なくとも１つのリングポート、少なくとも１つのローカルポート及びリングスイッチにより処理されたパケットからの選択された発信元識別子に基づいてどのネットワークデバイスがリングスイッチの各ポートと結びつけられているかを自己学習する少なくとも１つテーブルを有する。選択された発信元識別子は例えばイーサネットパケットからのメディアアクセス制御（ＭＡＣ）アドレス、インターネットプロトコル（ＩＰ）アドレス、階層アドレスの少なくとも一部分、ユニバーサルデータグラムプロトコルのポート番号、そのデータパケットのための同じ又は異なるプロトコルレベルでの２つ以上の識別子の組合せ又はその他の適切な識別子である。各リングスイッチの少なくとも１つのリングポートは、リングネットワーク内でもう１つのリングスイッチのリングポートに結合される。リングスイッチは、リングネットワーク内のリングスイッチの少なくとも１つのローカルポートと結びつけられた特定されたネットワークデバイスにデータパケットを導くためそのリングポートとローカルポートの間でデータパケットを切換える。リングスイッチのポートは、リングスイッチの少なくとも１つのローカルポートと結びつけられた１つのネットワークデバイスを宛先としていない少なくとも１つのリングポート及び少なくとも１つのローカルポートで受信されたデータパケットが、トークンの使用又はパケットのカプセル化なく少なくとも１つのテーブルに基づいてリングネットワーク上のもう１つのリングスイッチへと切換えられるような形で構成されている。
【００２４】
もう一つの実施形態においては、リングネットワークのためのリングスイッチが提供されている。このリングスイッチは、リングネットワーク内でデータパケットを輸送するために結合可能な少なくとも１つのリングポートを内含する。リングスイッチは同様に、少なくとも１つのローカルエリアネットワーク又はデバイスに結合可能である少なくとも１つのローカルポートをも内含している。リングスイッチはさらに、リングスイッチのポートにおいて受信されたデータパケットの選択された発信元識別子に基づきリングスイッチの各ポートに結びつけられたネットワークデバイスの識別子を追跡する少なくとも１つのテーブルを内含する。リングスイッチの少なくとも１つのローカルポートのうちのいずれかと結びつけられた１つのネットワークデバイスを宛先としていない少なくとも１つのリングポートで受信されたデータパケットは、トークンの使用及びパケットのカプセル化無く少なくとも１つのテーブルに基づいて少なくとも１つのリングポートに結合されたもう１つのリングスイッチへと切換えられる。
【００２５】
もう一つの実施形態においては、リングネットワークのための１つのリングスイッチが提供されている。このリングスイッチは、リングスイッチの１つのリングからデータパケットを受信しこのリング上でデータパケットを送信するように結合可能である双方向リングポートを内含する。リングスイッチは少なくとも１つのローカルエリアネットワークに結合可能な少なくとも１つのローカルポートを内含する。リングスイッチは同様に、リングスイッチにより処理されたデータパケットからの選択された発信元識別子に基づき少なくとも１つの双方向リングポート及び少なくとも１つのローカルポートと結びつけられたネットワークデバイスの識別子を自己学習し記憶する少なくとも１つのテーブルをも内含している。リングスイッチは、トークンの使用又はパケットのカプセル化無く少なくとも１つのテーブル及び宛先識別子に基づきリングネットワーク内のこの又はその他のリングスイッチ上のデバイスまでデータパケットを転送できるような形で、スイッチのリングポート及び／又はローカルポートから外に、リングポートで受信されたデータパケットが再伝送されることを可能にする。リングスイッチは同様に、スイッチの少なくとも１つのローカルポートと結びつけられたネットワークデバイスに対応する発信元識別子をもつ入データパケットを除去する双方向リングポートに結びつけられた１つの回路をも内含する。
【００２６】
もう一つの実施形態では、リングネットワークのための１つのリングスイッチが提供されている。このリングスイッチは、リングネットワークからデータパケットを受信するように結合可能であるリングインポートを内含する。リングスイッチはさらに、リングネットワークにデータパケットを提供するように結合可能であるリングアウトポートを内含している。少なくとも１つのローカルポートも具備される。少なくとも１つのローカルポートはローカルエリアネットワークに結合可能である。リングスイッチはさらに、リングスイッチのポートと結びつけられたネットワークデバイスの選択された識別子を追跡するための少なくとも１つのテーブルを内含する。このテーブルは、データパケットがリングインポートで受信された時点でネットワークデバイスの選択された識別子をリングアウトポートと結びつける。
【００２７】
もう一つの実施形態においては、リングネットワーク内のリングスイッチの１つのポートのためのテーブルの構築方法が提供されている。この方法には、リングスイッチの第１のポートにおいてデータパケットを受信することが内含されている。この方法はさらに、データパケットから選択された発信元識別子を読取ることも内含している。この方法は、リングネットワーク上での単方向伝送を可能にするべくスイッチの第２の異なるポートと結びつけられたネットワークデバイスからデータパケットが発信されたことを表示するそのリングスイッチのためのテーブル内に発信元識別子を記憶する。
【００２８】
もう一つの実施形態では、リングネットワークからデータパケットを除去するための方法が提供されている。この方法は、リングネットワークのリングスイッチのリングポートにおいてデータパケットを受信することを内含している。この方法は、データパケットから、選択された発信元識別子を読取り、この発信元識別子をリングスイッチの少なくとも１つのテーブルと比較する。少なくとも１つのテーブルは、どの識別子がスイッチの各ポートと結びつけられているかを表示する。発信元識別子がそのスイッチのローカルポートと結びつけられたネットワークデバイスに対応する場合、データパケットは破棄される。
【００２９】
もう一つの実施形態では、リングネットワークのリングスイッチ内でデータパケットを処理するための方法が提供されている。この方法には、リングスイッチの双方向リングポートにおいてデータパケットを受信することが内含されている。この方法はさらに、データパケットの選択された発信元識別子を読取ることも内含している。リングスイッチの１つのポートのためのテーブル内にその発信元識別子が無い場合、その発信元識別子は、それがリングポートと結びつけられたネットワークデバイスのためのものであることの表示と共に少なくとも１つテーブル内に記憶される。この方法は、データパケットから、選択された宛先識別子を読取る。そのデータパケットのための宛先識別子がそのリングスイッチのためのテーブル内にある場合、データパケットは、たとえそれがリングポートで受信されたものでありトークンを使用したりデータパケットをカプセル化することなく宛先識別子がリングポートと結びつけられているとしても、宛先識別子と結びつけられたリングスイッチのポートへと切換えられる。データパケットのための宛先識別子がリングスイッチのためのテーブル内に無いか又はデータパケットが同報通信データパケットである場合、データパケットはリングスイッチの全てのポートに対し同報通信される。データパケットのための宛先識別子がマルチキャスト識別子である場合、データパケットは、リングスイッチの全ての適切なポートに同報通信される。
【００３０】
もう一つの実施形態においては、リングネットワークのリングスイッチ内でデータパケットを処理するための方法が提供されている。この方法は、リングスイッチのリングインポートにおいてデータパケットを受信することを内含する。リングパケットの選択された発信元識別子が読取られる。この発信元識別子がリングスイッチのポートのためのテーブル内に無い場合、発信元識別子は、その識別子がリングスイッチのリングアウトポートと結びつけられたネットワークデバイスのためのものであることの表示と共にテーブル内に記憶される。この方法はさらに、データパケットから、選択された宛先識別子を読取ることを内含する。データパケットのための宛先識別子がリングスイッチのためのテーブル内にある場合、そのデータパケットは、宛先識別子と結びつけられているリングスイッチのポートに切換えられる。データパケットのための宛先識別子がリングスイッチのためのテーブル内にないか又はデータパケットが同報通信データパケットである場合、そのデータパケットは同報通信される。データパケットのための宛先識別子がマルチキャスト識別子である場合そのデータパケットは、リングスイッチの適切なポート全てに対し同報通信される。
【００３１】
詳細な説明
図１は、単方向リングネットワーク内でデータパケットを伝送するための、全体として１００という番号で示されたシステムの一実施形態のブロック図である。本明細書では、データパケットという語は、イーサネット、トークンリング、ＦＤＤＩ、非同期転送モード（「ＡＴＭ」）及び、少なくとも発信元アドレス、宛先アドレス、ペイロードデータそして任意には巡回冗長検査といったようなエラー訂正コードを含むフォーマットを伴うその他のデータパケットを内含している。
【００３２】
本明細書では、「発信元アドレス」及び「宛先アドレス」という語は、例えばイーサネット ＭＡＣアドレスといったようなネットワークデバイス内にプログラミングされた標準的には４８ビットのハードウェアアドレスであるメディアアクセス制御（ＭＡＣ）アドレスを内含するが、これらに制限されるわけではない。代替的には、ＭＡＣアドレスの代りにその他のアドレス又は信号を使用することが可能である。例えば、パケットを切換える上で発信元アドレス及び宛先アドレスのためにインターネットプロトコル（ＩＰ）アドレスを使用することができる。ＩＰパケットは標準的には、ＭＡＣアドレスとは全く異なるものでありうる発信元アドレス及び宛先アドレスを内含している。各々のＩＰアドレスは、ＩＰパケットのヘッダー内の３２ビットの数字である。さらに、ユニバーサルデータグラムプロトコル（ＵＤＰ）ヘッダー内のポート番号を使用して、ネットワーク要素内のどこでパケットを切換えるべきかを見極めることもできる。
【００３３】
インターネットのようなネットワーク内のサブネットワークの階層構造も同様に、パケット切換えのための根拠を提供する。例えば、インターネットアドレスは、サブネットの形で定義される。このようなアドレスは、Ｘが標準的にクラスＡのネットワークを識別し、Ｘ、Ｙが標準的にクラスＢのサブネットを識別し、Ｘ、Ｙ、Ｚが標準的にクラスＣのサブネットを識別し、Ｗが標準的にサブネット上のデバイスのアドレスを識別するものとして、Ｘ、Ｙ、Ｚ、Ｗの形をしている。この構造のアドレスの場合、切換えデバイスのための発信元識別子及び宛先識別子は、階層アドレスの一部分だけを内含する可能性がある。例えば、切換え決定を最初の３、８、１０又は１６ビットのみについて又は、階層アドレスの任意の他の部分について下すことができる。
【００３４】
さらに、「発信元アドレス」及び「宛先アドレス」という語は、上述のさまざまなアドレス又は識別子の任意の組合せも内含するということがさらに理解される。例えば、１つのネットワークの要素は、ＭＡＣアドレス及びＩＰアドレスの両方及びアドレスの一部に基づいて切換え決定を下すことができる。さまざまな識別子のその他の組合せも同様に使用可能である。
【００３５】
基本的に、発信元アドレス及び宛先アドレスという語は、リングネットワーク上で伝送されたパケットの発信元又は宛先を識別するのに使用可能なあらゆるデータ又は信号を内含する。かくして「アドレス」及び「識別子」という語は本書では、データパケットの発信元又は宛先を識別するあらゆるデータ、信号又はその他の指示を内含するものとして互換性ある形で使用される。さらに、発信元及び宛先は、最終的又は中間的発信元又は宛先にも適用されうる。
【００３６】
さらに「イーサネット」という語は、ＩＥＥＥ−８０２，３及びＩＳ０８８０２／３として多様な方で知られているコンピュータ産業の一群の規格によって網羅されたキャリヤ検知多重アクセス／衝突検出（ＣＳＭＡ／ＣＤ）プロトコルのクラス全体を内含している。これには、「ＳｔａｒＬＡＮ」として知られる１メガビットのイーサネット、１０メガビットのイーサネット、「Ｆａｓｔ Ｅｔｈｅｒｎｅｔ」として知られている１００−メガビットのイーサネット、「Ｇｉｇａｂｉｔ Ｅｔｈｅｒｎｅｔ」として知られている１ギガビットのイーサネット及びその他の任意のデータ転送速度での将来のあらゆるＣＳＭＡ／ＣＤプロトコルが内含されるが、これらに限られるわけではない。有利には、システム１００は、従来のリングネットワーク内で使用されるカプセル化及びトークンプロトコルの場合に関与する実質的な複雑性無く単方向リングネットワーク内で従来のデータパケットを伝送できるようにする。システム１００は、使用されるデータ転送速度及び特定のデータパケットプロトコルとは無関係にデータパケット上で動作する。システム１００は同様に、リングネットワーク内で従来のイーサネットスイッチ、ハブ又はその他のデバイスを使用しようと試みることに関する上述の問題をも克服する。
【００３７】
システム１００は、どのネットワークデバイスがリングスイッチのさまざまなポートと結びつけられているかを各々が自己学習する一定数のリングスイッチ１０４−１から１０４−Ｎを内含している。各リングスイッチは、ローカルネットワークに結合された単数又は複数のローカルポートを内含する、ローカルポートは、イーサネット，トークンリング、ＡＴＭ、ＦＤＤＩ又はその他の適切なネットワークプロトコルと共に使用するために構成されたポートを内含することができる。例えば、リングスイッチ１０４−１は、ローカルエリアネットワーク（ＬＡＮ）１０６−１に結合された少なくとも１つのローカルポートを内含する。ローカルエリアネットワーク１０６−１は、共通バス１０８−１に結合されたネットワークデバイスＡ，Ｂ及びＣを含む。本明細書中で使用する「ネットワークデバイス」という語は、従来ネットワーク内に結合されるハブ、コンピュータ端末及びワークステーション、ルータ、スイッチ、ゲートウェイ及びその他のデバイスを内含するが、これらに制限されるわけではない。
【００３８】
リングスイッチ１０４−２が、そのローカルポートに結合された２つのローカルエリアネットワーク１０６−２ａ及び１０６−２ｂを有することがわかる。このことは、リングスイッチが、実質的に２つ以上の多数のローカルエリアネットワークを支持できることを示している。
【００３９】
リングスイッチ１０４−１から１０４−Ｎまでは、システム１００のリングを形成するべくリングスイッチのリングインタフェースを相互接続する伝送媒体により合わせて結合されている。図１の実施形態に示されているように、リングスイッチ１０４−１から１０４−Ｎまでは、ワイヤ１０２−１から１０２−Ｎによって１つのリングの形に結合されている。ワイヤ１０２−１から１０２−Ｎまでは、例えば、ツイストペア線、同軸ケーブル、プリント回路板上の導線、単一の集積回路のサブセクション間の内部接続、光ファイバケーブル、無線接続又はシステム１００内のリングスイッチ間でデータパケットを伝送するためのその他の適切な媒体を含むことができる。このようにして、システム１００は、従来のイーサネットスイッチの利用可能なローカルポートの数を増加させるための低コストな方法として使用することができる。
【００４０】
図１１に示されている一変形形態においては、リングトランシーバ１１０２−１から１１０２−Ｎまでが、システム１１００のリングスイッチ間でイーサネットパケットを伝送するための単方向リングを形成するべく結合されている。リングスイッチ１１０４−１から１１０４−Ｎまでは、それぞれリングトランシーバ１１０２−１から１１０２−Ｎまでと結びつけられている。リングトランシーバ１１０２−１から１１０２−Ｎは例えば、ＡＤＣ Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ ｏｆ Ｍｉｎｎｅｔｏｎｋａ， Ｍｉｎｎｅｓｏｔａ から入手可能な一定数のＤＶ６０００ファイバ輸送システムを含むことができる。ＤＶ６０００は、データを輸送するための容量をもつ１６本のチャンネルを提供する。この実施形態においては、ＤＶ６０００の１本のチャンネルのみがシステム１１００内でイーサネットパケットを伝送するために使用されている。その他のチャンネルは、付加的なリングスイッチネットワーク又は例えばビデオ、音声、又はその他のデータ伝送といったその他の目的のために使用され得る。代替的には、リングトランシーバ１１０２−１〜１１０２−Ｎは、例えば無線トランシーバ、光ファイバトランシーバといったようなその他の従来の輸送機構と共に実施可能である。
【００４１】
有利には、システム１００のリングスイッチ１０４−１〜１０４−Ｎは、パケットがリングネットワークを周回して無期限に伝送されるのを防ぐ１つの方法を使用する。一実施形態に従うと、リングスイッチは、このリングスイッチのためのリングインタフェースの中にパケットの発信元アドレスが入るにつれてそれを読取る。リングインターフェイスで受信したパケットの発信元アドレスがリングスイッチのローカルポートと結びつけられたネットワークデバイスのアドレスに対応する場合、当該方法は、リングからそのパケットを除去し、それを破棄する。このことはすなわち、ローカルポートと結びつけられたネットワークデバイス（例えばリングスイッチ１０４−１のためのネットワークデバイスＡ、Ｂ又はＣ）から発信されたパケットがシステム１００のリングを周回して完全に通過し、発信リングスイッチのリングインポートに戻ったことを意味している。この方法は、そのローカルポートのうちの１つと結びつけられたネットワークデバイスから発信されたパケットのための宛先アドレスがシステム１００内で発見されなかったことを理由として、リングスイッチがパケットを除去できるようにする。
【００４２】
もう一つの実施形態においては、パケットがリングネットワークを無期限に回ることを妨げるために各スイッチのための識別番号が使用される。１つのパケットがローカルポートからリングスイッチに入った時点で、そのリングスイッチのための識別番号がそのパケットに追加、前置又は付加される。１つのリングスイッチのリングインターフェイスでパケットが受理された時点で、リングスイッチはそのパケットのための識別番号を見る。そのパケットがこのリングスイッチから発信されたということをその識別番号が表わしている場合には、そのパケットはシステムから除去される。もう１つの実施形態においては、パケットに対しその発信リングスイッチにおいて１つのカウンタが追加されている。そのパケットを処理するネットワーク内の各々の後続リングスイッチは、そのパケットについてカウンタを増分する。さらに、パケットを処理する各リングスイッチは、カウンタの値を検査する。カウンタの値が割当てられた閾値を超える場合には、そのパケットは除去される。カウンタのための最大値は、パケットがネットワークを少なくとも一回周回した時点でリングから除去されるような形で選択される。
【００４３】
リングスイッチ１０４−１〜１０４−Ｎは同様に、データの損失無くパケットの適切な処理を可能にする、リングインターフェイスにおいてデータパケットを処理するための改良型の方法をも使用する。一つの実施形態においては、各リングスイッチのためのリングインターフェイスは２つのポートすなわちリングインポートとリングアウトポートを内含する。基本的に、リングスイッチは、リングインポートで受信したパケットのための発信元アドレスに基づいて、リングアウトポートのためのアドレステーブルを構築する。これは、システム１００内のその他のリングスイッチのローカルポートと結びつけられたネットワークデバイスを宛先とするパケットがリングアウトポートから外に出てリングを周回して走行し、適切なリングスイッチのローカルポートへと切換えられることになることを目的としている。この要領で、リングスイッチは、スイッチのローカルポートと結びつけられていないシステム１００内の全てのネットワークデバイスにはリングインポートを通してではなくリングアウトポートを通してしか到達し得ないということを学習する。ここでこれらの実施形態の各々において、リングスイッチは、そのリングスイッチの全てのポートのための多数のアドレステーブル又は単一のアドレステーブル又は各ポートのための別々のテーブルのいずれかを維持することができるということがわかる。単一アドレステーブルの場合、そして場合によっては多重アドレステーブルの場合、リングスイッチはアドレスと結びつけられたポートを表示するためテーブル内の各アドレスに結びつけられた一定数のビットを使用する。
【００４４】
もう一つの実施形態では、各リングスイッチのリングインターフェイスは、図３に示されているような単一双方向リングポートを内含している。データ喪失の問題を無くするため、この実施形態では、この方法は、正規のアドレステーブル及びアドレス学習技術を使用するが、１つのパケットはそれを発出したポート上では外に切換えされ得ないというイーサネットスイッチの従来の規則に反して、リングポートで受理されたパケットがリングポートから外にも伝送され得るようにする。この実施形態では、宛先アドレス濾過の規則も又、リング上の先行リングスイッチから発信されリング上の後続リングスイッチを宛先とするパケットが中間スイッチにより受理され得るように停止される。
【００４５】
ネットワーク１００上で、そのネットワークにより輸送されているパケットに対し、識別子又は「タグ」を前置、内含又は後置させることによって、さまざまなサービスを提供することができる。例えば、仮想ローカルエリアネットワーク（ＶＬＡＮ），サービス品質（ＱＯＳ）その他のサービスといったようなサービスを、かかるタグの使用を通して実現することができる。
【００４６】
ネットワーク１００は、以下のようにタグを使用してＶＬＡＮを実現することができる。例えば図１のリングスイッチ１０４−２及び１０４−３において示されているようにリングスイッチのローカルポートに多重ローカルエリアネットワーク（ＬＡＮ）を結合することができる。リングからローカルポートまでオフ切換えされる同報通信又はマルチキャストパケットといったような或る種のタイプのパケットは、リングからトラヒックをドロップさせるリングスイッチの全てのローカルポート上で伝送され得る。こうして、１つの組織又はデバイスがその他の組織又はデバイスを宛先とするデータを受理できることから、セキュリティの問題が生まれる。一部の状況下では、例えば１つの組織がもう１つの組織からのリングスイッチに対するアクセスをリースするといったように、異なる組織に属する２つ以上のＬＡＮを同じスイッチのローカルポートに結合することができる。有利には、一つの実施形態において、ネットワーク１００は、同じ又は異なるスイッチのローカルポート上にあるＬＡＮのためのパケットを区別するためパケット内に前置、後置又は内含された仮想ＬＡＮ識別子（ＶＬＡＮ）を内含する。例えば、ＬＡＮ１０６−２ａ及び１０６−３ａが、結びつけられたＬＡＮである。ネットワークデバイスＧ又はＨからリングスイッチ１０４−２のローカルポートにおいて１つのパケットが受信された時点で、ＶＬＡＮ識別子が、そのパケットを受信したローカルポートに基づいてパケット内に前置、後置又は内含される。パケットがそのリングからオフ切換えされた時点で、リングスイッチ１０４−３は、どのローカルポート（単複）がそのパケットのために許容されるかを見極めるため、前置されたＶＬＡＮの識別子を見る。この例では、リングスイッチは、ＬＡＮ１０６−３ａのためのローカルポートから外に、適切なＶＬＡＮ識別子を伴う任意の全てのパケットを伝送することになる。
【００４７】
ＶＬＡＮ識別子は、ＶＬＡＮを実現するためにスイッチが使用する信号送りにユーザーがアクセスできることを防ぐため、ローカルポートからの伝送の前にパケットから削除される。こうして、ＶＬＡＮのユーザーに対し付加的なセキュリティ層が提供される。かくして、たとえパケットが同報通信又はマルチキャストパケットであろうと、それが全てのポートから出ていくことはない。むしろ、パケットは、ＶＬＡＮの成員として指定されているポートから外に切換えられるだけとなる。
【００４８】
もう一つの実施形態においては、ＶＬＡＮの一部を成すネットワークデバイスのための例えばＭＡＣアドレス、ＩＰアドレス又はその他の適切な識別子といった識別子のテーブルに基づいて、仮想ローカルエリアネットワークを作り出すことができる。例えば、仮想ＬＡＮ上には、ネットワークデバイスＨ、Ｉ及びＫが結びつけられる。ネットワークデバイスＫを宛先とするパケットがネットワークデバイスＨからのリングスイッチ１０４−２のローカルポートにおいて受理された時点で、ＶＬＡＮ識別子は、そのＶＬＡＮの成員であるデバイスを識別する識別子のテーブルに基づいてパケット内に前置、後置又は内含される。パケットがリングからオフ切換えされた時点で、リングスイッチ１０４−３は、前置、後置又は内含されたＶＬＡＮ識別子及び識別子テーブルを見て、ＶＬＡＮ識別子により識別される通りにどのローカルデバイスがＶＬＡＮの成員であるかを見極める。この例では、リングスイッチは、ＬＡＮ１０６−３ｂのためのローカルポートから外にデバイスＫまで適切なＶＬＡＮ識別子を伴うネットワークデバイスＨからの任意の及び全てのパケットを伝送することになる。
【００４９】
ＶＬＡＮ識別子は、ＶＬＡＮを実現するためにスイッチが使用する信号送りにユーザーがアクセスできることを防ぐため、ローカルポートから外への伝送の前にパケットから削除される。こうして、ＶＬＡＮのユーザーに対し付加的なセキュリティ層が提供される。かくして、たとえパケットが同報通信又はマルチキャストパケットであろうと、それが全てのポートから出ていくことはない。むしろ、パケットは、ＶＬＡＮの成員として指定されているネットワークデバイスを伴うポートから、外に切換えられるだけとなる。
【００５０】
その他の実施形態では、仮想ローカルエリアネットワークを樹立するために、ネットワークデバイスとローカルポートの組合せを識別することができる。
【００５１】
ＶＬＡＮは同様に、ネットワーク１００内のマルチキャスト機能を実現するためにも使用可能である。図１では、リングスイッチのリングにより相互接続される一定数のＬＡＮが例示されているが、この代りに、ビデオプログラム又はビデオ会議の加入者に対して例えばビテオデータといった信号を提供するケーブルネットワークにローカルポートを結合することも可能である。この実施形態では、ＶＬＡＮ識別子は、特定されたユーザーグループに対しパケットを導くために使用される。例えば、ネットワークデバイスＧ，Ｈ，Ｊ，Ｃ及びＢは、例えば識別されたデバイスに対しペイパービューサービスを提供しつつあるケーブルシステムのヘッドエンドといったリングスイッチ１０４−Ｎと結びつけられた発信元からのパケットを受信しているグループの中にある。パケットがリングスイッチ１０４−Ｎで受信された時点で、リングスイッチは、例えばパケットのＭＡＣ又はＩＰアドレスと結びつけられたＶＬＡＮ識別子を表示する１つのテーブルをルックインする。このアドレスは、例えば、イーサネットマルチキャストアドレス、ＩＰマルチキャストアドレス又はその他の適切なマルチキャストアドレスである。ＶＬＡＮ識別子は、パケット内に前置、後置又は内含され、それらは、リングを周回して伝送させられる。
【００５２】
各リングスイッチにおいて、マルチキャストアドレスは、リングスイッチが前置、後置又は内含されたＶＬＡＮ識別子を探すようにそのパケットがＶＬＡＮパケットであることを表示する。例えば、リングスイッチ１０４−２は、そのテーブルをルックインし、ＶＬＡＮ識別子が、例えばそのＶＬＡＮ識別子と結びつけられたテーブル内のＭＡＣアドレス又はＩＰアドレスに基づいて、ネットワークデバイスＧ及びＨと結びつけられていることを見極める。かくしてリングスイッチ１０４−２は、ネットワークデバイスＧ及びＨを内含するローカルポート上でパケットを送り出す。パケットは、ネットワークデバイスにより復号されたマルチキャストアドレスを内含する。代替的には、リングスイッチ１０４−２は、パケットのコピーを生成し、パケットを受信する予定のネットワークデバイスの各々のイーサネット及び／又はＩＰアドレスを挿入することもできる。
【００５３】
以下の図面の説明は、ＶＬＡＮ識別子といったようなタグの使用に特定的な言及を行なうことなく、パケットの処理に関して記述している。しかしながら本書で記述する処理及びシステムは、タグ付けシステム内で発生する処理を記述することによって、タグ付けコンテキストにおいても応用されるものと理解される。特に例えば「同報通信パケット」又は１つのパケットの「同報通信」に対する言及は全て、そのパケットが同じＶＬＡＮ識別子と結びつけられたデバイスのみに同報通信されることになるということを意味している。同様にして、例えば、特定のデバイスに対しリングから１つのパケットをオフ切換えするという言及は全て、パケットがデバイス識別子に基づいてリングからオフ切換えされるものの、（発信元識別子により決定されるような）パケットを送ったデバイス及び（宛先識別子により決定されるような）意図された受信者が同じＶＬＡＮの成員でないかぎり、リングスイッチのローカルポート上で伝送されることはない、ということを意味している。
【００５４】
図２は、本発明の教示に従ってリングネットワーク内でデータパケットを処理するための方法の第１の実施形態を例示する流れ図である。この方法は、リングインポートで受信されたデータパケットの発信元アドレスに基づいてリングスイッチのリングアウトポートのためのアドレステーブルを新規作成する技術を実現している。この方法は同様に、リングネットワークを周回して走行したローカルポートから発信されたパケットを除去するべくイーサネットスイッチの単数又は複数のローカルポートのためのアドレステーブルに照らして入パケットの発信元アドレスを検査する。以下の表は、図２及び４で使用される略号の定義を示す：
【００５５】
【表１】
0003621646.tif 000002
【００５６】
この方法は、ブロック２００で入データパケットの処理を開始する。該方法により使用される第１のファクターは、どの種のポートがデータパケットを受信したかを見極めることにある。この方法は、入データパケットがリングインポートで受信されたか又はローカルポートで受信されたかに基づいて異なる形でデータパケットを処理する。かくして、ブロック２０２において、該方法は、スイッチがリングインポートで入データパケットを受信したか否かを見極める。データパケットがローカルポートで受理された場合、該方法はブロック２０６まで進み、データパケットを処理するべく従来の切換え技術を使用する。次に、該方法はブロック２０８でデータパケットの処理を終える。
【００５７】
データパケットがリングインポートで受信された場合、該方法は、ブロック２０２からブロック２１２まで進み、リングネットワーク内でのデータパケットに関して以上で識別した問題に対処するため改良型技術を使用する。該方法はまず第１に、スイッチがこのネットワークデバイスのためのデータパケットを以前に取扱ったことがあるか否かを見極める。該方法は、リングスイッチのポートのための少なくとも１つのアドレステーブル内で入データパケットの発信元アドレスを探すことによって、これを行なう。発信元アドレスがアドレステーブルの１つの中にない場合、該方法はブロック２１４まで進み、たとえデータパケットがリングインポートで受理されていなくてもリングアウトポートのためのテーブルの中に入データパケットのための発信元アドレスを入れる。こうして、データパケットから発信されたネットワークデバイスを宛先とするリングスイッチにより処理された将来のデータパケットが、そのリングスイッチのローカルポートでネットワークデバイスへと外へ切換えられるべくリングアウトポートにおいてリングネットワーク上へと外へ伝送されることになる。
【００５８】
該方法は次に、このデータパケットをどこで切換えるべきかを見極める方に向かう。ブロック２１６では、該方法は、入データパケットの宛先アドレスがリングスイッチの任意のポートのためのアドレステーブル内にあるか否かを見極める。宛先アドレスが少なくとも１つのアドレステーブルのうちの１つの中にある場合、該方法は、データパケットをリングインポートからアドレステーブル内に示されたポートへと切換える。次に、該方法は、ブロック２０８でこのデータパケットの処理を終了する。
【００５９】
ブロック２１６で、データパケットのための宛先アドレスがリングスイッチのポートのうちの１つのためのアドレステーブル内にない場合、該方法は、リングインポート以外の全てのポート上でデータパケットを同報通信する。該方法は、ブロック２０８でこのデータパケットの処理を終了する。
【００６０】
ブロック２１２で発信元アドレスがリングスイッチにとって既知のものであることを見極めた場合該方法は、ブロック２２４まで進む。ブロック２２４では、該方法は、入データパケットのための発信元アドレスがリングアウトポートのためのアドレステーブル内にあるか否かを見極める。ある場合、該方法はブロック２２６まで進み、リングアウトポートのためのアドレステーブル内の発信元アドレスについてのエージングカウントを更新する。該方法はブロック２１６まで進んで、上述のとおり、データパケットの処理を終了する。
【００６１】
ブロック２２４で、該方法が、入データパケットがリングアウトポートと結びつけられたネットワークデバイスからのものでないことを見極めたならば、該方法はブロック２２８まで進み、そのデータパケットを濾過するか、打切るか又はその他の形で除去する。この場合、発信元アドレスが１つのローカルポートのためのアドレステーブルであることが見極められる。このことはすなわち、そのデータパケットがこのリングスイッチのローカルポートと結びつけられているネットワークデバイスと共に発信され、入データパケットの宛先アドレスにより指定されたネットワークデバイスまで外へ切換えられることなくリングネットワークを周回して走行してきたことを意味している。かくして、入データパケットは、不適切にアドレス指定されたか、同報通信パケットであるか又はマルチキャストパケットであり、ネットワークから除去されるべきである。
【００６２】
図４は、本発明の教示に従ってリングネットワーク内のデータパケットを処理するための方法のもう１つの実施形態を例示する流れ図である。この方法は、従来のイーサネットスイッチ内で使用された自己学習タイプといったような従来の自己学習機能を用いるもののデータ損失を防ぐためリングポートにおいてデータパケットが受信された時でさえリングポートから外にデータパケットが伝送されうるようにする技術を実施している。従って、この方法は、その他のあらゆる既知のタイプのイーサネットデバイスにおいて使用されるイーサネットパケットの従来の規則、特にイーサネット切換えにおいて使用される規則に違反している。
【００６３】
この方法は同様に、リングネットワークを周回して走行したローカルポートから発信されたデータパケットを除去するべく、リングスイッチの単数又は複数のローカルポートのためのアドレステーブルに照らして、入データパケットの発信元アドレスを検査する。該方法は、ブロック４００で入データパケットの処理を開始する。該方法によって使用される第１のファクタは、どの種のポートが入データパケットを受信したかを見極めることにある。この方法は、入データパケットがリングポートで受信されたか又はローカルポートで受信されたかに基づいて異なる形でデータパケットを処理する。かくして、ブロック４０２において、該方法は、スイッチがリングポートで入データパケットを受信したか否かを見極める。データパケットがローカルポートで受理された場合、該方法はブロック４０６まで進み、データパケットを処理するべく従来の切換え技術を使用する。次に、該方法はブロック４０８でデータパケットの処理を終える。
【００６４】
データパケットがリングポートで受信された場合、該方法は、ブロック４０２からブロック４１２まで進み、リングネットワーク内でのデータパケットに関して以上で識別した問題に対処するため改良型技術を使用する。該方法はまず第１に、リングスイッチがこのネットワークデバイスのためのデータパケットを以前に取扱ったことがあるか否かを見極める。該方法は、リングスイッチのポートのためのアドレステーブル内で入データパケットの発信元アドレスを探すことによって、これを行なう。発信元アドレスが１つのポートと結びつけられたアドレステーブル中にない場合、該方法はブロック４１４まで進み、従来のイーサネット実践法において行なわれる通りリングポートのためのテーブルの中に入データパケットのための発信元アドレスを入れる。
【００６５】
該方法は次に、このデータパケットをどこで切換えるべきかを見極める方に向かう。ブロック４１６では、該方法は、入データパケットの宛先アドレスがリングスイッチの１つのポートのためのアドレステーブル内にあるか否かを見極める。宛先アドレスが１つのポートのためのテーブルの中にある場合、該方法は、ブロック４１８でたとえその宛先アドレスがそのリングポートのためのテーブルの中にあってもその宛先アドレスをも含むアドレステーブルを伴うポートまでそのリングポートからデータパケットを切換える。これは従来のイーサネット規則には違反するがこの場合、有利にも、リングネットワーク内でリングスイッチを構成できるようにする。次に該方法は、ブロック４０８でこのデータパケットの処理を終了する。
【００６６】
ブロック４１６で、データパケットのための宛先アドレスがリングスイッチのポートのうちの１つのためのアドレステーブル内にない場合、該方法は、ブロック４２０でリングポートを含む全てのポート上でデータパケットを同報通信する。該方法は、ブロック４０８でこのデータパケットの処理を終了する。
【００６７】
ブロック４１２で、発信元アドレスがリングスイッチにとって既知のものであることを見極めた場合、該方法は、ブロック４２４まで進む。ブロック４２４では、該方法は、入データパケットのための発信元アドレスがリングポートのためのアドレステーブル内にあるか否かを見極める。ある場合、該方法はブロック４２６まで進み、リングポートのためのアドレステーブル内の発信元アドレスについてのエージングカウントを更新する。該方法はブロック４１６まで進んで、上述のとおり、データパケットの処理を終了する。
【００６８】
ブロック４２４で、該方法が、入データパケットがリングポートと結びつけられたネットワークデバイスからのものでないことを見極めたならば、該方法はブロック４２８まで進み、そのデータパケットを濾過するか、打切るか又はその他の形で除去する。この場合、発信元アドレスが１つのローカルポートのためのアドレステーブルであることが見極められる。このことはすなわち、そのデータパケットがこのリングスイッチのローカルポートと結びつけられているネットワークデバイスと共に発信され、入データパケットの宛先アドレスにより指定されたネットワークデバイスまで外へ切換えられることなくリングネットワークを周回して走行してきたことを意味している。かくして、入データパケットは、不適切にアドレス指定されたか、同報通信パケットであるか又はマルチキャストパケットであり、ネットワークから除去されるべきである。
【００６９】
図５は、本発明の教示に従ったリングネットワークのための全体として５００という番号で表わされたリングスイッチの一変形実施形態のブロック図である。この実施形態では、ネットワークから不注意によりデータパケットがドロップされるのを防止し、１つのリングスイッチのローカルポートに外へ切換えされることなくリングネットワークを周回して走行したデータパケットを濾過してしまうように該方法を実施するため従来のイーサネットスイッチ５０２と共に外部回路が使用される。この実施形態では、スイッチ５０２は、Ｔｅｘａｓ Ｉｎｓｔｒｕｍｅｎｔｓ ｏｆ Ｒｉｃｈａｒｄｓｏｎ（テキサス）製のＴｈｕｎｄｅｒｓｗｉｔｃｈ， 部品番号ＴＮＥＴＸ３１５０又はＧａｌｉｌｅｏ Ｔｅｃｈｎｏｌｏｇｙ ｏｆ Ｋａｒｎｉｅｌ（イスラエル）製のＧＦ４８００２又はＧＴ−４８００２Ａ Ｆａｓｔ Ｅｔｈｅｒｎｅｔ Ｓｗｉｔｃｈ Ｃｏｎｔｒｏｌｌｅｒである。Ｔｈｕｎｄｅｒｓｗｉｔｃｈ 及び Ｇａｌｉｌｅｏスイッチは、その従来の自動アドレステーブル自己学習アルゴリズムを中止し外部プロセッサがアドレステーブル内にアドレスを入れることができるようにするため外部プロセッサを介してこれらの切換えチップを強制又は操作され得るようにするインタフェースポートをもつイーサネットスイッチの例である。この実施形態においては、外部プロセッサは、リングから来る発信元アドレスを読取り、ポート識別ビットが外部プロセッサによりリングアウトポートのためのポート識別ビットにセットされた状態で、アドレステーブル内にこれらのアドレスを書込む。代替的には、スイッチ５０２は、ＰＭＣ−Ｓｉｅｒｒａ Ｉｎｃ．（Ｂｕｒｎａｌｙ， ＢＣ， Ｃａｎａｄａ）製のＰＭ３３３５１ Ｆａｓｔ Ｅｔｈｅｒ Ｄｉｒｅｃｔｏｒ Ｅｔｈｅｒｎｅｔスイッチを含むこともできる。この実施形態によると、ＰＭ３３５１スイッチは、データパケットが来たのと同じポートから外にそのデータパケットを伝送できるようにするため１つのポートのための宛先アドレス濾過機能を無効化するべくプログラミングし直すことができる。この実施形態では、スイッチ５０２は図３に示されているような単一のリングポートを有することになる。再プログラミング可能なその他の従来のイーサネットスイッチを、Ｔｈｕｎｄｅｒｓｗｉｔｃｈ， Ｇａｌｉｌｅｏ及びＰＭＣ−Ｓｉｅｒｒａスイッチの代りに使用することもできる。再プログラミングされたＴｈｕｎｄｅｒｓｗｉｔｃｈ， Ｇａｌｉｌｅｏ， ＰＭＣ−Ｓｉｅｒｒａスイッチ又はそれらと同等のものを使用することにより、リングネットワーク内の従来のリングスイッチに付随する問題の１つすなわちネットワークのリング性に起因するデータパケットの損失という問題が解決される。図５に示されている付加的な回路は、データパケットがネットワークを周回して無期限に伝送されるのを防ぐ発信元アドレス濾過機能を実現するために使用される。図５中のこの回路は、リングイン及びリングアウトポートをもつスイッチ５０２を伴って示されている。外部回路が、双方向リングポートを伴うスイッチとでも同等にうまく作動することが理解される。
【００７０】
基本的に、リングスイッチ５００の外部回路は、リングインポート内に入りリングアウトポートから出るデータパケットのストリームに基づいて、スイッチ５０２のローカルポートと結びつけられたネットワークデバイスに対応する入データパケットからアドレスを演繹するのに使用される。これらのアドレスは、リングスイッチ５００の外部アドレステーブル（ＥＡＴ）５０４内に入れられる。どのデータパケットがリングの全周を周回して走行し終りドロップされる必要があるかを見極めるためこのアドレステーブルに対し入データパケットが比較される。
【００７１】
リングスイッチ５００により処理されるデータパケットのための基本的筋書きとしては以下の４つがある：
１．データパケットがリングネットワークからリングインポート内に入り、リングアウトポートから出ない。このデータパケットのための宛先アドレスは、ローカルポート上のネットワークデバイスに対応し、外部アドレステーブル５０４内に入れられることになる。
２．データパケットが１つのローカルポートから来て、リングネットワーク上に置かれるべくスイッチ５０２のリングアウトポートから外に切換えられる。このデータパケットは出データパケットストリーム内にのみ存在することになり、かくしてその発信元アドレスを外部アドレステーブル５０４に付加することが可能である。
【００７２】
３．データパケットがリングから来て、リングインポートにおいてスイッチ５０２内に入り、リングアウトポートでリングネットワーク上へと外に伝送し戻される。このデータパケットのアドレスはローカルポートと結びつけられていない。
４．データパケットがリングから来て、その発信元アドレスは、ローカルポートのための発信元アドレスと同じであり、それはリングネットワークの全周を周回して走行してしまっていることから、濾過される必要がある。
【００７３】
スイッチ５００は、外部アドレステーブル５０４を生成しそれをルックインすることによりこれらの筋書きの各々を区別できる、スイッチ５０２のリングインポート及びリングアウトポートからデータを受理する２つの状態マシンを内含する。第１の状態マシン５０６は、リングからデータパケットを受理するように結合されている。第１の状態マシン５０６は、先入れ先出し（ＦＩＦＯ）バッファに入データパケットからの発信元アドレスを提供している。第２の状態マシン５１２は、どのアドレスがローカルポートに対応するかを見極めるため、ＦＩＦＯ ５１０内のデータ及びリングアウトポートから外に伝送されたデータパケットを使用する。第２の状態マシン５１２は、これらのアドレスを外部アドレステーブル５０４内に入れ、これを維持する。
【００７４】
図７は、図５の第２の状態マシン５１２のための方法の一実施形態を例示する流れ図である。この状態マシンは、スイッチ５０２のローカルポートと結びつけられたネットワークデバイスのための外部アドレステーブルを構築し維持するのに使用される。該方法はブロック７００で始まる。ブロック７０２で、該方法は、スイッチ５０２のリングアウトポートからリング上にデータパケットを伝送し始める。ブロック７０４で、該方法はデータパケットから発信元アドレスを抽出する。ブロック７０６で該方法は、データパケットのための発信元アドレスがＥＡＴ５０４内にあるか否かを見極める。発信元アドレスがＥＡＴ５０４内にある場合、該方法はブロック７０８まで進み、ＥＡＴ５０４内のエージングカウンタを更新し、データパケットが中断なく完全に伝送され得るようにする。次に該方法はブロック７１０まで進み、リングアウトポートからやってきたデータパケットの処理を終わる。
【００７５】
ブロック７０６では、リングアウトポートからやってきたデータパケットの発信元アドレスがＥＡＴ５０４内に無いことを見極めた場合、該方法はブロック７１２まで進む。ブロック７１２で、該方法は、リングアウトポートでデータパケットから取られた発信元アドレスがＦＩＦＯ５１０内にあるか否かを見極める。無い場合、該方法はブロック７１４まで進み、ＥＡＴ５０４に対しリングアウトポートでデータパケットから取られた発信元アドレスを付加する。これは、スイッチ５０２のローカルポートと結びつけられたネットワークデバイスで発信されたデータパケット，すなわちリングインポートに入ることなくリングアウトポートから来たデータパケットの場合に対応する。該方法は、ブロック７１０まで進む。
【００７６】
ブロック７１２において、データパケットのための発信元アドレスがＦＩＦＯ５１０内にあることを見極めた場合、該方法はブロック７１６まで進む。ブロック７１６において、該方法は、発信元アドレスがＦＩＦＯ５１０から取り出されるべき次の発信元アドレスであるか否か見極める。その発信元アドレスがＦＩＦＯ５１０内の次のアドレスでない場合には、少なくとも１つのデータパケットがローカルアドレスで終結したことがわかる。かくして、該方法はブロック７１８まで進み、次のアドレスをＦＩＦＯ５１０から削除し、ブロック７１６まで戻る。
【００７７】
ブロック７１６において、発信元アドレスがＦＩＦＯ５１０内の次のアドレスであることが見極められた場合には、該方法はブロック７２０まで進み、ＦＩＦＯ５１０から次のアドレスを削除する。これは、データパケットがリングインポートからリングアウトポートまでスイッチ５０を通って移行させられた場合に対応する。
【００７８】
かくして、この方法に従うと、スイッチ５０２のローカルポートのためのアドレステーブルに対応するアドレステーブルがスイッチ５０２の外部に維持され、かくしてリングネットワークを周回して走行したデータパケットが識別され濾過され得るようになっている。
【００７９】
スイッチ識別番号及びホップカウンタについても同じ技術を使用することができる。この場合、処理は同じである。しかしながらＦＩＦＯは、発信元アドレス，スイッチ識別番号及びホップカウンタのうちの１つ又は全てを収納する一連のビットを各論理場所の中に収容するためより幅が広くなる。ホップカウンタが内含される場合、それは、いくつかの箇所で１だけ増分され、リングから受理された時点で第１段階としてテストされる。
【００８０】
図６は、本発明の教示に従った、図５の第１の状態マシン５０６のための方法の実施例の流れ図である。この状態マシンは、スイッチ５０２のリングインポートにおけるデータパケットの発信元アドレスがスイッチ５０２のローカルポートと結びつけられたネットワークデバイスに対応するとき、これを見極めるために使用される。該方法はブロック６００で開始する。ブロック６０２では、該方法は、データパケットをスイッチ５０２のリングインポートに移行させ始める。ブロック６０４で、該方法は、データパケットから発信元アドレスを抽出する。ブロック６０６で、該方法は、ＥＡＴ５０４内のアドレスと入データパケットの発信元アドレスを比較する。そのデータパケットの発信元アドレスについてＥＡＴ５０４内に全く整合が存在しない場合、該方法は、ブロック６０８まで進み、発信元アドレスをＦＩＦＯ５１０に入れ、データパケット全体は中断なくスイッチ５０２内に伝送される。その後、該方法は、ブロック６１２でデータパケットの処理を終了し、ブロック６００に戻って次のデータパケットを処理する。
【００８１】
ブロック６０６では、データパケットの発信元アドレスがＥＡＴ５０４内にある場合、該方法はブロック６１０まで進み、スイッチ５０２のリングインポート内に進むデータパケットを打切る（アボートする）。こうして１つのスイッチのローカルポートから発信されたデータパケットがリングネットワークを周回して無期限に走行することが防がれる。
【００８２】
図８は、全体として８００という番号で表示され、本発明の教示に従って構築されたリングスイッチの一変形形態のブロック図である。この実施形態は、この方法の一次的目的が、ローカルポートで発信されリングネットワークの全周を周回して同じリングスイッチのリングインポートに到着したデータパケットを捕捉することにある、という事実を利用している。これは又、リングアウトポートから来るデータパケットが、２つの発信元つまりローカルポート又はリングインポートのうちの１つからしか来る可能性がないという事実をも利用している。リングアウトポートを退出するデータパケットについてのアドレスと、単数又は複数の連想記憶装置ＥＡＣＡＭ８０４の形で最も容易に実現可能な外部アドレステーブル内のリングインポートに入るデータパケットのアドレスを追跡し比較することによって、リングスイッチ８００は、それらのアドレスが１つのローカルポートに対応するか否かを見極めることができる。この目的で、リングスイッチ８００は、例えば、図５に関して上述した変形形態で Ｔｅｘａｓ Ｉｎｓｔｒｕｍｅｎｔｓ製の Ｔｈｕｎｄｅｒｓｗｉｔｃｈチップ、Ｇａｌｉｌｅｏチップ又はＰＭＣ−Ｓｉｅｒｒａチップスイッチといったような再プログラミングされたイーサネットスイッチを含み得るスイッチ８０２を内含している。リングスイッチ８００は、スイッチ８０２のリングインポートを宛先とするデータパケットを受理するべく結合されている第１の状態マシン８０６を内含する。さらに、リングスイッチ８００は、スイッチ８０２のリングアウトポートからのデータパケットに対する応答性をもつ第２の状態マシン８０８を内含する。第１及び第２の状態マシン８０６及び８０８は、第１の状態マシン８０６が、スイッチ８０２のローカルポートを用いて発信されリングネットワークの全周を周回して走行したリングネットワークからのデータパケットを除去できるような形でどのポートがローカルポートであるかを表示するテーブルをＥＡＣＡＭ８０４内で構築し維持する。第１及び第２の状態マシン８０６及び８０８の動作については以下でそれぞれ図９及び１０に関連して記述されている。
【００８３】
図１０は、本発明の教示に従って図８の第２の状態マシン８０８のための方法の１つの実施形態を例示する流れ図である。該方法はブロック１０００でデータパケットの処理を開始する。該方法はブロック１００２まで進み、リングネットワーク上でデータパケットを伝送し始める。ブロック１００４で、該方法はデータパケットから発信元アドレスを抽出する。
【００８４】
ブロック１００６で、該方法は、スイッチ８０２のリングアウトポートからのデータパケットの発信元アドレスがＥＡＣＡＭ８０４のテーブル内にあるか否かを見極める。アドレスがすでにＥＡＣＡＭ８０４内に記憶されたならば、該方法はブロック１００８まで進み、そのアドレスのためのＥＡＣＡＭ８０４内のエージングカウンタを更新し、データパケットを中断なく完全に伝送できるようにする。該方法はブロック１０１０でデータパケットの処理を終結する。
【００８５】
ブロック１００６で、データパケットのための発信元アドレスがＥＡＣＡＭ８０４内にない場合、該方法はブロック１０１２まで進む。この場合、該方法は、データパケットが１つのローカルポートから発信されたにちがいないことを見極め、かくして発信元アドレスは、ローカルビットインジケータが「１」にセットされた状態でＥＡＣＡＭ８０４内のテーブルの中に入れられる。「１」は、そのアドレスがスイッチ８０２のローカルポートと結びつけられているネットワークデバイスのためのアドレスに対応することを表わす。次に該方法はブロック１０１０まで進み終結する。
【００８６】
図９は、本発明の教示に従った図８の第１の状態マシン８０６のための方法の一実施形態を例示する流れ図である。該方法は、ブロック９００でデータパケットの処理を開始する。該方法はブロック９０２まで進み、スイッチ８０２のリングインポート上でデータパケットを提供する。ブロック９０４で、該方法はデータパケットから発信元アドレスを抽出する。
【００８７】
ブロック９０６で、該方法は、スイッチ８０２のリングインポートに提供されたデータパケットの発信元アドレスがＥＡＣＡＭ８０４のテーブル内にあるか否かを見極める。アドレスがすでにＥＡＣＡＭ８０４内に記憶されたならば、該方法はブロック９０８まで進み、ローカルビットインジケータが「０」にセットされている状態でＥＡＣＡＭ８０４内にアドレスを置き、データパケット全体は中断なくスイッチ８０２内に伝送される。「０」は、そのアドレスがスイッチ８０２のローカルポートのためのものでないことを表わす。該方法はブロック９１０でデータパケットの処理を終了する。
【００８８】
ブロック９０６で、データパケットのための発信元アドレスがＥＡＣＡＭ８０４内にある場合、該方法はブロック９１２まで進む。該方法は、ローカルビットインジケータが「１」に等しいか否か、例えばそのアドレスがローカルポートと結びつけられているか否かを見極める。ローカルビットインジケータが「０」である場合には、該方法はブロック９１０で終結する。一方、ブロック９１２で、ローカルビットインジケータが「１」であることを見極めた場合には、該方法はブロック９１４まで進み、スイッチ８０２のリングインポート内に進むデータパケットを打ち切る（アボートする）。該方法はブロック９１０で終了する。
【００８９】
一変形実施形態では、リング対ローカルポートアドレスを表示するべくビットが「０」又は「１」にセットされた状態で、１つのＣＡＭではなく２つの別々のＣＡＭメモリーを使用することができる。このような実施形態は、図１２内の以下の例によって使用される。さらにローカル及びリングアドレスの区別をするため「０」及び「１」以外の値を使用することが可能である。
【００９０】
図１２は、本発明の教示に従ってリングスイッチ内のパケットを処理するための方法のブロック図である。この実施形態においては、リングスイッチは、パケットがリングネットワークを周回して一周走行したか否かを見極めるためにデータパケットに追加される識別番号又はカウンタを使用する。
【００９１】
ブロック１２００では、リングスイッチのリングインポートにおいてパケットが受信される。ブロック１２０２では、該方法は、データパケットに追加された識別番号がリングスイッチのための識別番号と同じであるか否かを見極める。データパケットがリングスイッチのローカルポートで受信されるにつれて、このデータパケットに識別番号が追加される。現行のパケットの識別番号が現行リングスイッチの識別番号と同じである場合には、該方法は、そのデータパケットがリングネットワークの全周を周回して走行してしまったことを理由に、ブロック１２０４でそのデータパケットを打切るか、アボートするか又はその他の形でキルする。
【００９２】
ブロック１２０６では、該方法は、データパケットに追加されたホップカウンタがゼロに等しいか否かを見極める。ホップカウンタは、そのデータパケットを発信したリングスイッチにおいてデータパケットに追加される番号である。ホップカウンタは、データパケットを処理し次のリングスイッチまで伝送するためそれをリングネットワーク上へと戻すように外に置く各々の後続リングスイッチにおいて増分される。ホップカウンタは例えば、データパケットが少なくとも２５６のリングスイッチを通過した時点でカウンタがゼロにリセットするような形で８ビットの数を含むことができる。代替的には、ホップカウンタのために、任意のその他の適当な数のビットを使用することもできる。さらに、ホップカウンタ及び識別番号を一緒に又は別々に使用することができるということも理解される。該方法はホップカウンタがゼロにセットされていることを見極めた場合、そのパケットがリングネットワークを周回して少なくとも全周走行したことを理由として、ブロック１２０４まで進む。
【００９３】
ブロック１２０６で、リングインポートに到着したパケットがリングを周回して走行していないことを該方法が見極めた場合、パケットはローカルポートから外へ又はリングアウトポートから外に伝送されるべくスイッチにより処理される。データパケットは、ブロック１２０８で先入れ先出し（ＦＩＦＯ）バッファの中に記憶される。データパケットの発信元アドレスは、メモリ内、最も容易にはリングアドレスのための連想記憶装置（ＣＡＭ）（リングＣＡＭ）の中に記憶され、そうでなければ、そのアドレスのためのエージングはブロック１２１０においてリングＣＡＭ内で更新される。ブロック１２１２では、該方法は、リングＣＡＭが満杯であるか否かを見極め、満杯である場合、エージング情報により判断されるようなリングＣＡＭ内の最も古いアドレスは、ブロック１２１４でリングＣＡＭから削除される。代替的には、リングＣＡＭは、全てのアドレスを消去しリングＣＡＭが最新のアドレスを再学習することができるようにするため、ブロック１２１４で単純にリセットされ得る。
【００９４】
データパケットがＦＩＦＯ内でバッファリングされている間、そのデータパケットの宛先アドレスは、それぞれブロック１２１６及び１２１８でリングスイッチのローカルポートに結びつけられたアドレスを含むＣＡＭ（ローカルＣＡＭ）及びリングＣＡＭ内でルックアップされる。ブロック１２１６及び１２１８において、リング及びローカルＣＡＭ内のルックアップに基づき、論理信号が生成される。ブロック１２１６からの論理信号は論理ゲート１２２０及び１２２２に提供される。さらに、ブロック１２１８からの論理信号は、論理ゲート１２２０及び１２２４に提供される。論理ゲート１２２０は、ブロック１２０８において使用されたＦＩＦＯからスイッチ１２２８を通してローカルポート１２２６の１つまでデータパケットを移行させるのに用いられる。この実施形態において、スイッチ１２２８が、全２重モードでのＭｉｃｒｏｌｉｎｅａｒ からのＭＬ６６９２スイッチといったような標準的なイーサネット物理インタフェースチップを含んでいるということが指摘される。リング及びローカルＣＡＭの両方でアドレスが発見されたときブロック１２３０でそのアドレスを消去するために論理ゲート１２２２が使用される。このことは、ネットワークデバイスがリング上の１つのスイッチからリング上のもう１つのスイッチまで移動させられた時に起こる。アドレスを消去することにより、システムはデバイスの新しい場所を再学習できるようになる。最後に、ブロック１２０８で用いられたＦＩＦＯからブロック１２３８のもう１つのＦＩＦＯ，「Ｆｒｏｍ−Ｒｉｎｇ ＦＩＦＯ」を通してリングアウトポートまでデータパケットを移行させるために、論理ゲート１２２４が使用される。
【００９５】
図１２の方法は同様に、ローカルポート１２２６において受理されたデータパケットの処理をも説明する。かかるデータパケットはスイッチ１２２８を通してブロック１２３２で「Ｆｒｏｍ−Ｌｏｃａｌ」ＦＩＦＯまで移行させられる。ブロック１２３４では、データパケットの発信元アドレスは、メモリー、最も容易には１つのＣＡＭ，つまりローカルＣＡＭ内に記憶されるか、そうでなければアドレスのためのエージングがローカルＣＡＭ内で更新される。ブロック１２３６において、該方法は、ローカルＣＡＭが満杯であるか否かを見極め、満杯である場合、エージング情報に基づいて最も古いアドレスがブロック１２３８でＣＡＭから削除される。代替的には、ローカルＣＡＭは、全てのアドレスを消去し ローカルＣＡＭが最新のアドレスを再学習できるようにするため、単純にブロック１２３８でリセットされてもよい。ローカルＣＡＭとリングＣＡＭの両方について、５分間又はもう１つの適切な時間中使用されていないアドレスを削去することといったような、その他の形のエージングも使用可能である。本明細書に記述されているその他の全ての実施形態のエージング必要条件についても同じことが言える。
【００９６】
該方法は、Ｆｒｏｍ−Ｌｏｃａｌ及びＦｒｏｍ−Ｒｉｎｇ ＦＩＦＯから外へリングアウトポートを通してリング上にデータパケットを置く。決定ブロック１２４０が、Ｆｒｏｍ−Ｌｏｃａｌ及びＦｒｏｍ−Ｒｉｎｇ ＦＩＦＯからのデータパケットのためリングアウトポートへのアクセスを制御する論理信号を生成する。Ｆｒｏｍ−Ｒｉｎｇ ＦＩＦＯが満杯である場合、論理ゲート１２４４は有効化され、論理ゲート１２４６は無効化される。かくして、ホップカウントがブロック１２５０で増分された後、Ｆｒｏｍ−Ｒｉｎｇ ＦＩＦＯからのデータパケットがブロック１２４８でリングアウトポートから外に提供される。Ｆｒｏｍ−Ｒｉｎｇ ＦＩＦＯが満杯でない場合、論理ゲート１２４６が有効化され、論理ゲート１２４４は無効化される。かくして、ホップカウントがブロック１２５０で増分された後、Ｆｒｏｍ−ＬｏｃａｌＦＩＦＯからのデータパケットが、ブロック１２４８においてリングアウトポートから外に提供される。
【００９７】
ブロック１２５２において、Ｆｒｏｍ−Ｌｏｃａｌバッファ及び Ｆｒｏｍ−Ｒｉｎｇバッファの両方が満杯であるとき、これらのバッファからリングアウトポート上へのパケットの配置をアービトレーションするために１つの状態マシンが使用されるということがわかる。１つの実施形態においては、Ｆｒｏｍ−Ｌｏｃａｌバッファが１つの閾値例えば半−全を超えた場合に、Ｆｒｏｍ−ＬｏｃａｌＦＩＦＯがその閾値より低く下方に移動するまで、Ｆｒｏｍ−ＬｏｃａｌＦＩＦＯへとより多くのパケットを伝送することからバックオフするべく、１つの信号がローカルポートに送られる。
【００９８】
リングインポートにて受信したパケットのアドレスが、ローカルＣＡＭ又はリングＣＡＭのいずれにもない場合、決定ブロック１２１６及び１２１８の出力に基づいてゲート１２２０もゲート１２２４も無効化されないことから、そのパケットは、ローカルポート及びリングアウトポートの両方に「同報通信」されるということもわかる。
【００９９】
図１３は、本発明の教示に従った、リングスイッチ内でパケットを処理するための方法のブロック図である。この実施形態においては、リングスイッチは、パケットがリングネットワークの全周を周回して走行したか否かを見極めるため、データパケットに追加される識別番号又はカウンタを使用する。
【０１００】
ブロック１３００では、リングスイッチのリングインポートにおいて、パケットが受信される。ブロック１３０２では、該方法は、データパケットに追加される識別番号がリングスイッチのための識別番号と同じであるか否かを見極める。データパケットがリングスイッチのローカルポートで受信されるにつれて、このデータパケットに識別番号が追加される。現行のパケットの識別番号が現行リングスイッチの識別番号と同じである場合には、該方法は、そのデータパケットがリングネットワークの全周を周回して走行してしまったことを理由に、ブロック１３０４でそのデータパケットをキルする。
【０１０１】
ブロック１３０６では、該方法は、データパケットに追加されたホップカウンタがゼロに等しいか否かを見極める。ホップカウンタは、そのデータパケットを発信したリングスイッチにおいてデータパケットに追加される番号である。ホップカウンタは、データパケットを処理し次のリングスイッチまで伝送するためそれをリングネットワーク上へと戻すように外に置く各々の後続リングスイッチにおいて増分される。ホップカウンタは例えば、データパケットが少なくとも２５６のリングスイッチを通過した時点でカウンタがゼロにリセットするような形で８ビットの数を含むことができる。代替的には、ホップカウンタのために、任意のその他の適当な数のビットを使用することもできる。さらに、ホップカウンタ及び識別番号を一緒に又は別々に使用することができるということも理解される。該方法はホップカウンタがゼロにセットされていることを見極めた場合、そのパケットがリングネットワークを全周を少なくとも一回走行したことを理由として、ブロック１３０４まで進む。
【０１０２】
ブロック１３０６で、リングインポートに到着したパケットがリングを周回して走行していないことを該方法が見極めた場合、パケットはローカルポートから外へ又はリングアウトポートから外に伝送されるべくスイッチにより処理される。データパケットは、ブロック１３０８で先入れ先出し（ＦＩＦＯ）バッファの中に記憶される。データパケットの発信元アドレスは、メモリ内、最も容易にはリングアドレスのための連想記憶装置（ＣＡＭ）（リングＣＡＭ）の中に記憶され、そうでなければ、そのアドレスのためのエージングはブロック１３１０においてそのメモリ内で更新される。ブロック１３１２では、該方法は、リングＣＡＭが満杯であるか否かを見極め、満杯である場合、リングＣＡＭは、ブロック１３１４でメモリ内のエージング情報により決定されるような最も古いアドレスを削除することによりエージングされる。代替的には、リングＣＡＭは、ブロック１３１４で単純にリセットされ得る。こうしてメモリ内の全てのアドレスが消去され、メモリが最も現行アドレスを再学習することができるようになる。
【０１０３】
データパケットがＦＩＦＯ内でバッファリングされている間、そのデータパケットの宛先アドレスは、それぞれブロック１３１６及び１３１８でリングスイッチのローカルポートに結びつけられたアドレスを含むＣＡＭ（ローカルＣＡＭ）及びリングＣＡＭ内でルックアップされる。ブロック１３１６及び１３１８において、リング及びローカルＣＡＭ内のルックアップに基づき、論理信号が生成される。ブロック１３１６からの論理信号は論理ゲート１３２０及び１３２２に提供される。さらに、ブロック１３１８からの論理信号は、論理ゲート１３２０及び１３２４に提供される。論理ゲート１３２０は、ブロック１３０８において使用されたＦＩＦＯからスイッチ１３２８を通してローカルポート１３２６の１つまでデータパケットを移行させるのに用いられる。この実施形態において、スイッチ１３２８が、半２重モードでのＭｉｃｒｏｌｉｎｅａｒ からのＭＬ６６９２スイッチといったような標準的なイーサネット物理インタフェースチップを含んでいるということが指摘される。リング及びローカルＣＡＭの両方でアドレスが発見されたときブロック１３３０でそのアドレスを消去するために論理ゲート１３２２が使用される。最後に、ブロック１３０８で用いられたＦＩＦＯからブロック１３３８のもう１つのＦＩＦＯ，「Ｆｒｏｍ−Ｒｉｎｇ ＦＩＦＯ」を通してリングアウトポートまでデータパケットを移行させるために、論理ゲート１３２４が使用される。
【０１０４】
図１３の方法は同様に、ローカルポート１３２６において受理されたデータパケットの処理をも説明する。かかるデータパケットはスイッチ１３２８を通してブロック１３３２で「Ｆｒｏｍ−Ｌｏｃａｌ」ＦＩＦＯまで移行させられる。ブロック１３３４では、データパケットの発信元アドレスは、ローカルＣＡＭ内に記憶されるか、そうでなければアドレスのためのエージングがローカルＣＡＭ内で更新される。ブロック１３３６において、該方法は、ローカルＣＡＭが満杯であるか否かを見極め、満杯である場合、ローカルＣＡＭは、ブロック１３３８でエージングされる。これはメモリ内に記憶されたエージング情報に基づいて決定されるような最も古いアドレスを削除することによって行なわれてもよく、そうでなければ代替的には、ブロック１３３８でメモリを単純にリセットしてもより。こうして全てのアドレスが消去されローカルＣＡＭは最新のアドレスを再学習できるようになる。
【０１０５】
５分以上前又はその他の適切な時間より古いアドレスを周期的に消去するといったようなさまざまなその他のエージングスキームをリングＣＡＭ及びローカルＣＡＭの両方が使用できる。その上、図１２の方法及び図１３の方法の両方共が、リングおよびローカルアドレスの両方について単一メモリ又はＣＡＭ内で実施することができる。単一メモリを使用することで製造コストが低下することになるものの、２つのメモリを使用すると、論理内のタイミングは単純化され、回路はより設計しやすくなる。
【０１０６】
該方法は、Ｆｒｏｍ−Ｌｏｃａｌ及びＦｒｏｍ−Ｒｉｎｇ ＦＩＦＯから外へリングアウトポートを通してリング上にデータパケットを置く。決定ブロック１３４０が、Ｆｒｏｍ−Ｌｏｃａｌ及びＦｒｏｍ−Ｒｉｎｇ ＦＩＦＯからのデータパケットのためリングアウトポートへのアクセスを制御する論理信号を生成する。Ｆｒｏｍ−Ｒｉｎｇ ＦＩＦＯが満杯である場合、論理ゲート１３４４は有効化され、論理ゲート１３４６は無効化される。かくして、ホップカウントがブロック１３５０で増分された後、Ｆｒｏｍ−Ｒｉｎｇ ＦＩＦＯからのデータパケットがブロック１３４８でリングアウトポートから外に提供される。Ｆｒｏｍ−Ｒｉｎｇ ＦＩＦＯが満杯でない場合、論理ゲート１３４６が有効化され、論理ゲート１３４４は無効化される。かくして、ホップカウントがブロック１３５０で増分された後、Ｆｒｏｍ−ＬｏｃａｌＦＩＦＯからのデータパケットが、ブロック１３４８におりてリングアウトポートから外に提供される。
【０１０７】
ブロック１３５２において、Ｆｒｏｍ−Ｌｏｃａｌバッファが満杯であるとき、伝送からスイッチ１３２８を強制的にバックオフさせるために衝突が作り出されるということがわかる。
【０１０８】
リングインポートにて受信したパケットのアドレスが、ローカルＣＡＭ又はリングＣＡＭのいずれにもない場合、決定ブロック１３１６及び１３１８の出力に基づいてゲート１３２０もゲート１３２４も無効化されないことから、そのパケットは、ローカルポート及びリングアウトポートの両方に「同報通信」されるということもわかる。
【０１０９】
結論
本書では特定の実施形態が例示され記述されてきたが、当業者であれば、同じ目的を達成するために計算されるあらゆる配置を、ここで示された特定の実施形態に置き換えることも可能であるということがわかるだろう。本出願は、本発明のあらゆる適合化又は変形形態を網羅することが意図されている。例えば、本書に記述されているタイプのリングスイッチを相互接続して、スイッチ間でデータを伝送するために任意の適切な方法を使用する１つのリングを形成することが可能である。これには、制限的な意味なく、無線、有線、プリント配線、半導体ヴァイア、光ファイバ及びその他の伝送技術が含まれる。さらに、本書で記述した方法のさまざまな段階が、ソフトウェア、ファームウェア又はハードウェアの形で実現可能である。さらに、本発明の実施形態は、上述のさまざまな機能を実施するように設計された単一の集積回路を内含する。代替的には、例えば図５，８，１２，及び１３で示されているように付加的な回路と共に改良型の従来のスイッチを使用することもできる。さらに、１つの双方向リングポート又はリングイン及びリングアウトポートのいずれかを使用するリングスイッチと共に、リングネットワークを周回して走行したパケットを識別するためのさまざまな技術を使用することができる。さらに、ローカルポートは、それらが発信元アドレス，宛先アドレス及びデータペイロードを含むかぎり、イーサネットポート以外のものであってよい。同様に、ＣＡＭ以外のさまざまなメモリーデバイスが、本発明の教示に従ったアドレステーブルを実施するべく使用可能である。明細書全体を通して記述されたさまざまなエージング方法は、どの実施形態についても使用可能である。さらに、本発明の精神及び範囲から逸脱することなく、記述された方法の代りに、その他の周知のエージング方法を使用することも可能である。さらに、各々の実施形態は、１つのリングスイッチのための単一のアドレステーブルか又は多数のアドレステーブルのいずれとでも作動する。さらに上述の各々の実施形態の各々において、ホップカウンタ、スイッチ識別信号又は１つのローカルポートのためのアドレステーブル内の発信元アドレス探索のうちのいずれか１つ又は複数のものを用いて、リングの全周を周回して走行したパケットを除去することができる、ということもわかる。ＦＩＦＯ，ＣＡＭ又はその他の記憶デバイスが以上で規定されている全ての場合において、個々のバッファ又は場所に対するポインタと共にランダムアクセスメモリを使用することができる、ということに留意されたい。さらに、ネットワークにより輸送されるパケットに対し識別子又は「タグ」を前置、後置又は内含又は後置することによって、リングネットワーク全体にわたりさまざまなサービスを提供することかできる。例えば、かかるタグの使用を通して、仮想ローカルエリアネットワーク（ＶＬＡＮ），サービス品質（ＱＯＳ）その他のサービスといったサービスを実現することが可能である。
【図面の簡単な説明】
【図１】図１は、本発明の教示に従った、リングネットワークの一実施形態のブロック図である。
【図２】図２は、本発明の教示に従った、リングネットワーク内データパケットの処理方法の一実施形態についての流れ図である。
【図３】図３は、本発明の教示に従った、リングスイッチのブロック図である。
【図４】図４は、本発明の教示に従った、リングネットワーク内でデータパケットを処理するための方法のもう一つの実施形態を例示する流れ図である。
【図５】図５は、本発明の教示に従った、改良型イーサネットスイッチの一実施形態のブロック図である。
【図６】図６は、本発明の教示に従った、無効な宛先アドレスをもつパケットを識別するための方法の一実施形態を例示する流れ図である。
【図７】図７は、本発明の教示に従った、イーサネットスイッチのローカルポートと結びつけられた端末のアドレスを学習するための方法の一実施形態を例示する流れ図である。
【図８】図８は、本発明の教示に従った、改良型イーサネットスイッチのもう一つの実施形態のブロック図である。
【図９】図９は、本発明の教示に従った、無効な宛先アドレスをもつパケットを識別するための方法のもう一つの実施形態を例示する流れ図である。
【図１０】図１０は、本発明の教示に従った、イーサネットスイッチのローカルポートと結びつけられたネットワークデバイスのアドレスを学習するための方法のもう一つの実施形態を例示する流れ図である。
【図１１】図１１は、本発明の教示に従った、リングネットワークのもう一つの実施形態のブロック図である。
【図１２】図１２は、本発明の教示に従った、リングスイッチによりデータパケットを処理するための方法のブロック図である。
【図１３】図１３は、本発明の教示に従った、リングスイッチによりデータパケットを処理するためのもう一つの方法のブロック図である。
【図１】
0003621646.tif 000003
【図２】
0003621646.tif 000004
【図３】
0003621646.tif 000005
【図４】
0003621646.tif 000006
【図５】
0003621646.tif 000007
【図６】
0003621646.tif 000008
【図７】
0003621646.tif 000009
【図８】
0003621646.tif 000010
【図９】
0003621646.tif 000011
【図１０】
0003621646.tif 000012
【図１１】
0003621646.tif 000013
【図１２】
0003621646.tif 000014
【図１３】
0003621646.tif 000015