(57)【要約】複数のステーション（１１０）間でのデータフレームの通信を制御するネットワークデバイス（１８０）が受付制御手順を実行し、ネットワークデバイス（１８０）上の輻輳を低減する。ネットワークデバイス（１８０）はその受信ポート（２０５）でデータフレームを受信する。ネットワークデバイス（１８０）が輻輳を検出すると、ネットワークデバイス（１８０）は受付制御を使用可能にし、データフレームの一部を読み出してデータフレームに含まれるデータの性質を判断する。次に、ネットワークデバイス（１８０）は、データフレームに含まれるデータの性質に基づいて、受信したデータフレームを間引くか否かを判断する。また、ネットワークデバイス（１８０）は、データフレームに関連する優先度を判断し、データフレームに含まれるデータの性質と優先度とに基づいてデータフレームを選択的に間引くこともできる。
2004530343.tif 000002
【特許請求の範囲】
【請求項１】
複数のステーション（１１０）間でのデータフレームの通信を制御するように構成され、前記ステーション（１１０）からのデータフレームを受信するように構成された複数の受信ポート（２０５）とデータフレーム処理ロジック（３００）とを含むネットワークデバイス（１８０）であって、
データフレーム処理ロジック（３００）が、
受付制御が使用可能であるか否かを判断し、
受付制御が使用可能であるか否かと受信したデータフレームに含まれる情報とに基づいて受信したデータフレームのうちのひとつを間引くか否かを判断するように構成されていることを特徴とするネットワークデバイス（１８０）。
【請求項２】
受信したデータフレームのうちのひとつを間引くか否かを判断する際に、データフレーム処理ロジック（３００）が、
ひとつのデータフレームが第１のデバイスと第２のデバイスとの間に接続を確立することに関連しているか否かを特定し、
このひとつのデータフレームが第１のデバイスと第２のデバイスとの間に接続を確立することに関連している場合に、該当するひとつのデータフレームを間引くように構成されている、請求項１に記載のネットワークデバイス（１８０）。
【請求項３】
ひとつのデータフレームが第１のデバイスと第２のデバイスとの間に接続を確立することに関連しているか否かを特定する際に、データフレーム処理ロジック（３００）が、
ひとつのデータフレームの少なくとも一部を読み出してこのひとつのデータフレームにシーケンス番号情報を含む送信制御プロトコルメッセージが含まれているか否かを判断するように構成されている、請求項２に記載のネットワークデバイス（１８０）。
【請求項４】
データフレーム処理ロジック（３００）がさらに、
ひとつのデータフレームに関連する優先度を判断するように構成され、受信したデータフレームのうちのひとつを間引くか否かを判断する際に、データフレーム処理ロジック（３００）がさらに、
ひとつのデータフレームの優先度に基づいて該当するひとつのデータフレームを間引くか否かを判断するように構成されている、請求項１に記載のネットワークデバイス（１８０）。
【請求項５】
外部メモリ（１７０）内でのデータフレームの格納できる位置に対応するアドレスポインタを格納するように構成されたバッファ（３３０）と、
バッファ制御ロジック（３２０）であって、
バッファ（３３０）内のアドレスポインタの数が第１の閾値に達する時点を検出し、
第１の閾値を検出したことに応答して、第１の優先度に対応するデータフレームに受付制御を使用可能であることを示す信号をデータフレーム処理ロジック（３００）に送信するように構成されたバッファ制御ロジック（３２０）と、をさらに含み、
データフレーム処理ロジック（３００）がさらに、
２つのデバイス間に接続を確立することに関連する第１の優先度に対応する、受信したデータフレームのうちの１つまたはそれ以上を間引くように構成された、請求項１に記載のネットワークデバイス（１８０）。
【請求項６】
受信したデータフレームのうちのひとつを間引くか否かを判断する際に、データフレーム処理ロジック（３００）が、
同期フラグがセットされた送信制御プロトコルヘッダがひとつのデータフレームに含まれるか否かを検出し、
同期フラグがセットされている場合に該当するひとつのデータフレームを受信バッファから除去するように構成されている、請求項１に記載のネットワークデバイス（１８０）。
【請求項７】
複数のステーション（１１０）間でのデータフレームの通信を制御するネットワークデバイス（１８０）において、
ステーション（１１０）からデータフレームを受信し、
第１のデータフレームが第１のデバイスと第２のデバイスとの間に接続を確立することと関連しているか否かを判断し、
第１のデータフレームが接続を確立することと関連している場合に第１のデータフレームを間引くことを含む、方法。
【請求項８】
判断することが、
同期フラグがセットされた送信制御プロトコルメッセージが第１のデータフレームに含まれるか否かを検出することを含む、請求項７に記載の方法。
【請求項９】
第１のデータフレームに関連する優先度を判断し、
第１のデータフレームが接続を確立することに関連している場合に、第１のデータフレームの優先度に基づいて第１のデータフレームを間引くか否かを判断することをさらに含む、請求項７に記載の方法。
【請求項１０】
データフレームを処理することに関連する資源が第１の閾値未満であるか否かを判断し、
第１のデータフレームが接続を確立することに関連している場合に、資源が第１の閾値未満であるか否かに基づいて第１のデータフレームを間引くか否かを判断することをさらに含む、請求項７に記載の方法。
【請求項１１】
外部メモリ（１７０）内での受信したデータフレームを格納するための位置に対応するアドレスポインタの数が第１の閾値に達する時点を検出し、
第１の閾値が検出されたら第１の優先度のデータフレームについて受付制御を開始し、
第１のデータフレームに関連する優先度を判断し、
第１のデータフレームが接続の確立に関連している場合に、第１のデータフレームの優先度が第１の優先度に対応しているか否かに基づいて第１のデータフレームを間引くか否かを判断することをさらに含む、請求項７に記載の方法。
【請求項１２】
ネットワーク（１００）におけるデータフレームの通信を制御するように構成されたネットワークデバイス（１８０）であって、
データフレームを受信するように構成された複数の受信ポート（２０５）と、
処理ロジック（３００）であって、
データフレームを処理することに関連する輻輳状態を検出し、
データフレームが２つのデバイス間に接続を確立することと関連しているか否かを判断し、
データフレームが２つのデバイス間に接続を確立することと関連しているか否かに少なくとも部分的に基づいて、データフレームを間引くか否かを判断するように構成された処理ロジック（３００）と、を含む、ネットワークデバイス（１８０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広義にはネットワーク通信に関し、特に、ネットワークデバイスにおける受付制御に関する。
【背景技術】
【０００２】
コンピュータネットワークでは、多数のネットワークステーションが通信媒体を介して相互に接続されているのが一般的である。たとえば、広く用いられているローカルエリアネットワーク（ＬＡＮ）スキームのひとつに、複数のステーションを共有または専用のシリアルデータパスに接続するイーサネット８０２．３がある。これらのステーションは、データパスとこのパスに接続されたステーションとの間にあるスイッチまたは他の何らかのネットワークデバイスと通信を行うことが多い。このスイッチは一般にデータの通信を制御し、データフレームを受信してそれぞれ適切な宛先に転送するためのロジックを含む。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ネットワークに接続されたすべてのステーションが同時に動作して高速にデータを送信すると、スイッチでのデータトラフィックが大きくなりかねない。したがって、スイッチによっては輻輳状態の検出後にデータフレームを間引くことがある。この場合、間引かれたデータフレームは本来の宛先には転送されない。データフレームを間引く従来のスイッチに伴うひとつの欠点に、それぞれのデータフレームにおけるデータの性質を判断することなくスイッチがデータフレームを無作為に間引いてしまう点があげられる。
【課題を解決するための手段】
【０００４】
輻輳状態が起こった場合にデータフレームを選択的に間引く、ネットワークデバイス内の機構には需要がある。この需要や他の需要は、マルチポートデバイスがデータフレームを受信してデータフレームに含まれるデータのタイプを特定する本発明によって満たされる。その後、マルチポートデバイスは、マルチポートデバイスでの資源の可用性とデータフレームに含まれるデータのタイプとに基づいて、受信したデータフレームについて受付制御を行うか否かを判断する。
【０００５】
本発明の一形態によれば、ステーション間でのデータフレームの通信を制御するネットワークデバイスが得られる。このネットワークデバイスは、ステーションからのデータフレームを受信するように構成された複数の受信ポートを含む。さらに、このネットワークデバイスは、受付制御が使用可能か否かを判断するデータフレーム処理ロジックも含む。データフレーム処理ロジックは、受付制御が使用可能か否かという点と受信したデータフレームに含まれる情報とに基づいて、受信したデータフレームのうちのひとつを間引くか否かも判断する。
【０００６】
本発明のもうひとつの形態は、ステーション間でのデータフレームの通信を制御する、ネットワークデバイス内での方法を提供するものである。この方法は、ステーションからのデータフレームを受信し、第１の受信したデータフレームが第１のデバイスと第２のデバイスとの間での接続の確立と関連しているか否かを判断することを含む。さらに、この方法は、第１のデータフレームが接続の確立と関連している場合に第１のデータフレームを間引くことも含む。
【０００７】
以下の詳細な説明から、本発明の他の利点および特徴が当業者にとって容易に理解できるものとなろう。図示して説明する実施形態は、本発明を実施するために企図されるベストモードを例示するためのものである。本発明は、自明のさまざまな点で本発明から逸脱することなく改変可能である。したがって、図面は事実上例示的なものとみなされ、限定的なものとみなされるものではない。
【発明を実施するための最良の形態】
【０００８】
以下、イーサネット（ＩＥＥＥ  ８０２．３）ネットワークなどのパケット交換網におけるスイッチを例をあげて本発明について説明する。しかしながら、下記において詳細に説明するように、本発明は他のパケット交換システムならびに他のタイプのシステム全般にも適用可能なものであることが明らかになろう。
【０００９】
スイッチアーキテクチャの概要
図１は、本発明に整合するシステムおよび方法を実施できる代表的なシステムのブロック図である。この代表的なシステムはイーサネット（ＩＥＥＥ  ８０２．３）ネットワークなどのパケット交換網１００を含み得る。パケット交換網１００は、ネットワークステーション１１０と、トランスフォーマ１２０、トランシーバ１３０および１４０と、ネットワークノード１５０と、ホスト１６０と、外部メモリ１７０と、マルチポートスイッチ１８０とを含み得る。ネットワークステーション１１０は、構成の異なるコンピュータなどの従来の通信装置を含み得る。たとえば、このデバイスは、ネットワークデータ転送速度１０メガビット／秒（Ｍｂ／ｓ）または１００Ｍｂ／ｓでデータを送受信することができる。
【００１０】
１０／１００Ｍｂ／ｓのネットワークステーション１１０は各々、半二重イーサネットまたは全二重イーサネットのプロトコルに従って、マルチポートスイッチ１８０との間でデータを送受信することができる。イーサネットプロトコルＩＳＯ／ＩＥＣ  ８８０２−３（ＡＮＳＩ／ＩＥＥＥ規格８０２．３、１９９３年版）では、すべてのステーション１１０に等しくネットワークチャネルへのアクセスを許可する半二重の媒体アクセス機構を規定している。半二重環境でのトラフィックを送信媒体上で区別することはできない場合がある。むしろ、各半二重ステーション１１０に、衝突検出型搬送波検知多重アクセス（ＣＳＭＡ／ＣＤ）を使って送信媒体上のトラフィックに聞き耳を立てるイーサネットインタフェースカードを持たせることができる。ネットワークトラフィックがないことを検出するには、送信媒体上の受信キャリアが非アクティブな状態になったことを検知する。
【００１１】
送信すべきデータのあるステーション１１０はいずれも、送信媒体上の受信キャリアが非アクティブになった後にパケット間隔（ＩＰＧ）インターバルとして知られるあらかじめ定められた長さの時間だけ待機すれば、チャネルへのアクセスを試みることができる。複数のステーション１１０が同一のリンクに接続されている場合、受信キャリアが非アクティブになったことを検知してＩＰＧインターバルが経過するとそれぞれのステーション１１０がデータを送信しようとしかねないため、衝突が発生する可能性がある。よって、送信側ステーション１１０で送信媒体を監視し、別のステーション１１０が同じリンクで同時にデータを送信したことが原因で衝突が発生していないかどうかを判断することができる。衝突が検出されると、どちらのステーション１１０も送信を中断し、それぞれランダムな待ち時間で待機し、再び送信を試みる。
【００１２】
全二重モードで動作する１０／１００Ｍｂ／ｓのネットワークステーション１１０は、イーサネット規格ＩＥＥＥ  ８０２．３ｕに従ってデータパケットの送受信を行うことができる。全二重環境では、各リンクパートナー（すなわち、１０／１００Ｍｂ／ｓのネットワークステーション１１０と対応するマルチポートスイッチ１８０）間でデータパケットを同時送受信を可能にする双方向の二地点間通信リンクが得られる。
【００１３】
トランスフォーマ１２０は、ネットワークステーション１１０とトランシーバ１３０との間をＡＣカップリングする磁気トランスを含み得る。一方、トランシーバ１３０は、それぞれのシリアル媒体独立インタフェース（Ｓｅｒｉａｌ  Ｍｅｄｉａ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｉｎｔｅｒｆａｃｅ；ＳＭＩＩ）または節約型媒体独立インタフェース（Ｒｅｄｕｃｅｄ  Ｍｅｄｉａ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｉｎｔｅｒｆａｃｅ；ＲＭＩＩ）を介してマルチポートスイッチ１８０と通信する１０／１００Ｍｂ／ｓの物理層トランシーバを含み得る。各トランシーバ１３０についてはマルチポートスイッチ１８０と最大４ヶ所のネットワークステーション１１０との間でＳＭＩＩ／ＲＭＩＩを介してデータパケットを送受信するように構成できる。ＳＭＩＩ／ＲＭＩＩは、各ネットワークステーション１１０と対応するトランシーバ１３０とによるデータパケットの同時送受信を可能にできるだけの十分なデータ転送速度で動作し得るものである。
【００１４】
トランシーバ１４０は、たとえば高速ネットワーク送信媒体を介してネットワークノード１５０などのノードとの通信を達成する１０００Ｍｂ／ｓ（すなわち１Ｇｂ／ｓ）の物理層トランシーバを１つまたはそれ以上含み得る。ネットワークノード１５０は、ネットワーク速度１Ｇｂ／ｓでデータパケットを送受信する１Ｇｂ／ｓのネットワークノードを１つまたはそれ以上含み得る。また、ネットワークノード１５０は、たとえば、サーバまたは高速バックボーンネットワークへのゲートウェイを含み得る。
【００１５】
ホスト１６０は、マルチポートスイッチ１８０の全体としての動作を制御するための外部管理機能を提供するコンピュータデバイスを含み得る。外部メモリ１７０は、マルチポートスイッチ１８０用の外部記憶装置となる同期型スタティックランダムアクセスメモリ（ＳＳＲＡＭ）を含み得る。外部メモリ１７０はそれぞれ、６４ビット幅のデータパスと１７ビット幅のアドレスパスとを有する電子デバイス技術合同協議会（ＪＥＤＥＣ）のパイプラインバーストＳＳＲＡＭまたはゼロ・バス・ターンアラウンド（ＺＢＴ）ＳＳＲＡＭを含み得る。外部メモリ１７０は、ワード長６４ビットで１２８Ｋ単位の上位バンクおよび下位バンクとしてアドレス可能なものであってもよい。外部メモリ１７０のサイズは、パイプラインによって１クロックサイクルごとにデータの転送が可能な状態で少なくとも１メガバイトであると好ましい。
【００１６】
マルチポートスイッチ１８０は、ネットワークステーション１１０またはネットワークノード１５０から受信したデータパケットを、イーサネットプロトコルなどの適切な送信プロトコルに従ってしかるべき宛先に向けて選択的に転送する。マルチポートスイッチ１８０を複数（ライン１９０を介して）まとめてカスケード接続し、マルチポートスイッチ１８０の機能性を拡張するようにしてもよい。
【００１７】
図２は、本発明に整合する実施例によるマルチポートスイッチ１８０の詳細図である。マルチポートスイッチ１８０は、受信機２０５と、送信機２１０と、データバス２１５と、スケジューラ２２０と、フロー制御ロジック２２５と、バッファ管理ロジック２３０と、ポートベクトルキュー（ＰＶＱ）２３５と、出力制御キュー２４０と、内部ルールチェッカー（ＩＲＣ）２４５と、レジスタ２５０と、管理情報ベース（ＭＩＢ）カウンタ２５５と、ホストインタフェース２６０と、外部メモリインタフェース２６５と、ＥＥＰＲＯＭインタフェース２７０と、ＬＥＤインタフェース２７５と、ジョイントテストアクショングループ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ；ＪＴＡＧ）インタフェース２８０とを含み得る。
【００１８】
受信機２０５は、媒体アクセス制御（ＭＡＣ）モジュールと、先入れ先出し（ＦＩＦＯ）バッファなどの受信バッファとを含み得る。受信モジュールは、ＳＭＩＩ、ＲＭＩＩ、ギガビット媒体独立インタフェース（ＧＭＩＩ）、１０ビットインタフェース（ＴＢＩ）、他のマルチポートスイッチ１８０（図１）を用いた拡張用の独自インタフェースをサポートする入力ポートを含み得る。拡張ポート（ＥＰ）を利用し、所定のプロトコルに従って他のマルチポートスイッチ１８０との間でデータを転送するようにしてもよい。拡張ポートを用いることで、マルチポートスイッチ１８０を複数まとめてカスケード接続し、バックボーンネットワークを構成することができる。受信モジュールはそれぞれ、ネットワークステーション１１０および／またはネットワークノード１５０からデータパケットを受信し、このパケットを対応する受信ＦＩＦＯに格納するキューイングロジックを含み得る。キューイングロジックは、外部メモリインタフェース２６５を介して、パケットのうち処理すべき部分をＩＲＣ２４５に送信したり、格納すべき部分を外部メモリ１７０に送信したりすることができる。
【００１９】
送信機２１０は、ＭＡＣモジュールとＦＩＦＯバッファなどの送信バッファとを含み得る。送信モジュールは、ＳＭＩＩ、ＧＭＩＩ、ＴＢＩ、他のマルチポートスイッチ１８０を用いた拡張用の独自インタフェースをサポートする出力ポートを含み得る。送信モジュールはそれぞれ、外部メモリ１７０からパケットを取得し、これらのパケットを対応する送信ＦＩＦＯに格納するデキューイングロジックを含み得る。送信モジュールは、対応する送信ＦＩＦＯからデータパケットを読み出したり、これらのパケットをネットワークステーション１１０および／またはネットワークノード１５０に送信したりすることができる。本発明に整合する別の実施例では、受信機２０５および送信機２１０の機能を、データパケットの受信と送信の両方を管理するトランシーバによって行うようにしてもよい。
【００２０】
データバス２１５は、受信機２０５、送信機２１０、ＩＲＣ２４５、外部メモリインタフェース２６５を接続する導体を１本またはそれ以上含み得る。スケジューラ２２０は、受信機２０５のキューイングロジックと送信機２１０のデキューイングロジックとによって外部メモリ１７０へのアクセスを制御するロジックを含み得る。マルチポートスイッチ１８０はノンブロッキングスイッチとして動作するように構成されており、ネットワークデータはスイッチポートからそれぞれのワイヤレート１０Ｍｂ／ｓ、１００Ｍｂ／ｓまたは１０００Ｍｂ／ｓで送受信される。よって、スケジューラ２２０は、各ポートごとにアクセスを制御し、外部メモリ１７０の帯域利用を最適化することができる。
【００２１】
フロー制御ロジック２２５は、バッファ管理ロジック２３０、ＰＶＱ２３５、出力制御キュー２４０と連携動作して送信機２１０によるパケットの送信を制御するロジックを含み得る。フロー制御ロジック２２５は、データのトラフィック量に応じて効率のよい方法で送信機２１０からパケットが出力されるように送信機２１０を制御することができる。バッファ管理ロジック２３０は、マルチポートスイッチ１８０内でのメモリの利用状況を監視するロジックを含み得る。たとえば、データパケットがその宛先となる出力ポート（単数または複数）に向けて送信されていれば、バッファ管理ロジック２３０はフレームポインタの利用状況とフレームポインタの再利用とを管理することができる。フレームポインタは、外部メモリ１７０に格納された、送信を必要とするデータフレームの位置を特定する。
【００２２】
ＰＶＱ２３５は、データフレームの送信を受信するための出力ポートに対応した出力制御キュー２４０に含まれる適切な出力キュー（単数または複数）へのフレームポインタを入手するロジックを含み得る。マルチコピーフレームでは、ＰＶＱ２３５は同じフレームポインタのいくつかのコピーを２つ以上の出力キューに供給することができる。出力制御キュー２４０は、送信機２１０の各送信モジュールに対応するＦＩＦＯ型の出力キューを含み得る。各出力キューは、フレームに対する優先度の異なる複数の順位キューを含み得る。たとえば、必要なアクセスレイテンシーが低いフレーム（マルチメディア用途用のフレームや管理フレームなど）に高い順位キューを用いるようにすればよい。ＦＩＦＯ型の出力キューに格納されたフレームポインタを、それぞれの送信モジュールについてのデキューイングロジックで処理することができる。デキューイングロジックは、フレームポインタを利用して外部メモリ１７０にアクセスし、フレームポインタによって指定されたメモリ位置でデータフレームを読み出す。
【００２３】
ＩＲＣ２４５は、受信機２０５から受信したデータパケットについてフレーム転送決定を行う内部意志決定エンジンを含み得る。ＩＲＣ２４５はデータバス２１５を監視し（すなわち「覗き」）、送信元、宛先、仮想ローカルエリアネットワーク（ＶＬＡＮ）アドレス情報をはじめとする受信パケットのヘッダ情報など、データフレームの一部と、フレームポインタ値とを判断する。ＩＲＣ２４５は、ヘッダ情報を利用して、フレームポインタで指定された位置に格納されたデータフレームがどの出力ポートから出力されるかを判断することができる。よって、ＩＲＣ２４５は、特定のデータフレームをひとつのポートで出力すべき（すなわちユニキャスト）であるか、複数のポートで出力すべき（すなわちマルチキャスト）であるか、すべてのポートで出力すべき（すなわちブロードキャスト）であるか、どのポートでも出力すべきではない（すなわち破棄）かを判断することができる。
【００２４】
たとえば、各データフレームは送信元アドレスと宛先アドレスとを特定するヘッダを含み得る。ＩＲＣ２４５は、宛先アドレスを利用してデータフレームを出力するのに適切な出力ポートを特定することができる。また、フレームヘッダは、フレームをネットワークステーション１１０のグループの１ヶ所またはそれ以上のメンバ宛の情報として特定するＶＬＡＮアドレス情報も含み得る。あるいは、ＩＲＣ２４５は、拡張ポートを介して別のマルチポートスイッチ１８０にデータフレームを転送すべきであることを判断できる。したがって、ＩＲＣ２４５は、外部メモリ１７０に一時的に格納されたフレームを、１つの出力ポートに出力すべきか、複数の出力ポートに出力すべきか、どの出力ポートにも出力すべきではないか、あるいは別のマルチポートスイッチ１８０に出力すべきかを判断する。
【００２５】
ＩＲＣ２４５は、その転送決定を転送記述子の形でＰＶＱ２３５に出力することができる。転送記述子は、たとえば、データフレームの優先度が高いか低いかを特定する優先度クラス、フレームを送信すべき各出力ポートを特定するポートベクトル、入力ポート番号またはＶＬＡＮ情報を含み得る。ＰＶＱ２３５は、転送記述子をデコードしてフレームポインタを得ることができる。フレームポインタを入手したら、ＰＶＱ２３５はこれを出力制御キュー２４０内の適切な出力キューに供給することができる。
【００２６】
また、ＩＲＣ２４５はレイヤ３フィルタリングを行うこともできる。たとえば、ＩＲＣ２４５は、各受信データパケットを最大１２８のプログラム可能なパターンについて検討し、その結果に基づいてパケットを処理することができる。ここでの結果を用いて、ＩＲＣ２４５によるパケットの間引き、パケットのホスト１６０への転送あるいはユーザ優先度または差別化サービスコードポイント（ＤＳＣＰ）のパケットへの割り当てを指示することができる。ユーザの優先度とＤＳＣＰとは独立して出力優先度クラスにマッピングが可能なものである。
【００２７】
レジスタ２５０は、ホストインタフェース２６０が利用するコンフィギュレーションレジスタおよびステータスレジスタを含み得る。ＭＩＢカウンタ２５５は、統計的なネットワーク情報をホスト１６０が利用するＭＩＢオブジェクトの形で提供することができる。ホストインタフェース２６０は、マルチポートスイッチ１８０の全体としての動作をホスト１６０などの外部管理エントリによって制御できるようにする標準インタフェースを含み得る。ホストインタフェース２６０は、指定のレジスタ空間内のホストアクセスをデコードし、レジスタ２５０に対してコンフィギュレーション情報およびステータス情報を読み書きすることができる。
【００２８】
外部メモリインタフェース２６５は、外部メモリ１７０へのアクセスを可能にする標準インタフェースを含み得る。外部メモリインタフェース２６５は、スケジューラ２２０が決定した、割り当てられたタイムスロットの間、ダイレクトメモリアクセス（ＤＭＡ）トランザクションにおける外部メモリ１７０でのパケットデータの外部記憶を可能にする。本発明に整合する実施例では、外部メモリインタフェース２６５は少なくとも６６ＭＨｚのクロック周波数で動作し、好ましくは１００ＭＨｚまたはそれ以上の周波数で動作する。
【００２９】
ＥＥＰＲＯＭインタフェース２７０は、ＥＥＰＲＯＭなどの別の外部メモリに対する標準インタフェースを含み得る。ＬＥＤインタフェース２７５は、外部ＬＥＤロジックに対する標準インタフェースを含み得る。ＬＥＤインタフェース２７５は、入力ポートと出力ポートの状態を外部ＬＥＤロジックに送信することができる。ＬＥＤロジックは、人間が読み取り可能なＬＥＤディスプレイ素子を駆動することができる。ＪＴＡＧインタフェース２８０は、たとえばマルチポートスイッチ１８０でバウンダリスキャンテストを行うことができるようにするための外部試験機器に対する標準インタフェースを含み得る。
【００３０】
スイッチアーキテクチャについての上記の説明は、パケット交換網におけるスイッチの動作についての概要を提供するものである。たとえばマルチポートスイッチ１８０で実現できるような本発明の特徴のさらに詳細な説明については後述する。
【００３１】
ネットワークデバイスにおける選択的受付制御
本発明は、マルチポートスイッチ１８０などのネットワークデバイスにおける受付制御機構を対象とするものである。本発明に整合するマルチポートスイッチ１８０は、受信したデータフレームに含まれる情報とマルチポートスイッチ１８０での資源の可用性とに基づいて、受付制御手順をいつ実行すべきかを判断する。
【００３２】
図３は、選択的受付制御を実施できる、本発明の代表的な実施例に整合するマルチポートスイッチ１８０の一部を示している。図３を参照すると、マルチポートスイッチ１８０は、受信機２０５と、バッファ管理ロジック２３０と、外部メモリインタフェース２６５と、ポートフィルタロジック３００とを含む。
【００３３】
受信機２０５は、入力ポート１乃至Ｎにそれぞれ対応する、３１０、３１２、３１４を付したＭＡＣモジュールを含む。ＭＡＣモジュールはそれぞれ、受信ＦＩＦＯバッファとキューイングロジックとを含み得る。たとえば、図３を参照すると、ＭＡＣモジュール３１０は、３１０Ａを付した受信ＦＩＦＯバッファと、キューイングロジック３１０Ｂとを含む。他のＭＡＣモジュールも同様に、受信ＦＩＦＯバッファとキューイングロジックとを含み得る。
【００３４】
バッファ管理ロジック２３０は、空きバッファキュー（ＦＢＱ）制御ロジック３２０と空きバッファキュー３３０とを含む。ＦＢＱ３３０は、外部メモリ１７０内のデータフレームの格納に利用できる位置を特定するフレームポインタを格納する。本発明に整合するＦＢＱ制御ロジック３２０は、ＦＢＱ３３０で利用できるフレームポインタの数があらかじめ定められた閾値未満になったらマルチポートスイッチ１８０で受付制御を開始する。ＦＢＱ制御ロジック３２０が受付制御を開始する前にＦＢＱ３３０にいくつのフレームポインタを残すかをユーザの要件に基づいて設定することができ、ユーザーがプログラム可能にすることができる。すなわち、ユーザは、ネットワークの状態などに応じて、ホストインタフェース２６０（図２）を介して、受付制御を使用可能にする前にＦＢＱ３３０に残るフレームポインタの数をプログラムすることができる。
【００３５】
本発明に整合する代表的な実施例では、ＦＢＱ３３０は２種類の「水位線」（すなわち閾値）を含む。各水位線がＦＢＱ３３０に残るフレームポインタのあらかじめ定められた数に対応する。詳細については後述するように、ＦＢＱ制御ロジック３２０はＦＢＱ３３０がそれぞれの水位線のうちの一方にいつ達したかを検出し、受付制御信号をポートフィルタロジック３００に送信する。
【００３６】
詳細については後述するように、本発明の代表的な実施例に整合するポートフィルタロジック３００は、受信したデータフレームに関連する優先度を判断し、受信したデータフレームに含まれるデータのタイプも判断する。受付制御が使用可能になり、あるデータフレームが特定の優先度とタイプのものであることがポートフィルタロジック３００によって特定されたら、ポートフィルタロジック３００はそのデータフレームを間引くための適切なＭＡＣモジュールを示すことができる。
【００３７】
ポートフィルタロジック３００は、受信機２０５とは別のコンポーネントとして図示されている。本発明の別の実施例では、ポートフィルタロジック３００が受信機２０５の一部であってもよいことは理解されたい。さらに別の形では、ポートフィルタロジック３００が実行している機能を、ＭＡＣモジュールのそれぞれのキューイングロジックなどのもうひとつのロジックコンポーネントで実行してもよい。
【００３８】
本発明の代表的な実施例では、ポートフィルタロジック３００は、データフレームを優先度の高いデータフレームまたは優先度の低いデータフレームのいずれかとして分類する。優先度の高いフレームは、管理デバイス用のフレームやマルチメディア用途向けのフレームなど、必要なアクセスレイテンシーが低いフレームを含み得る。優先度の低いフレームは、他のあらゆるフレームを含み得る。
【００３９】
本発明の別の実施例では、データフレームに関連する優先度の数を２よりも大きくすることができる。たとえば、ポートフィルタロジック３００は、低、中、高などの３つの優先度レベルのうちの１つを持つものとしてフレームを特定することができる。もうひとつの実施例では、ポートフィルタロジック３００は、低、低−中、中−高、高などの４つの優先度レベルのうちの１つを持つものとしてフレームを特定することができる。これらの場合、ＦＢＱ３３０における水位線の数を優先度のレベルに対応させるようにしてもよい。たとえば、マルチポートスイッチ１８０が４つのレベルの優先度をサポートする状況では、ＦＢＱ３３０における水位線の数を４にすることができる。
【００４０】
また、本発明のいくつかの実施例では、優先度表示のあるデータフレームをマルチポートスイッチ１８０で受信することができる。たとえば、イーサネットフレームは、８つのレベルの優先度のうちの１つを表す３ビットフィールドを含み得る。この場合、ポートフィルタロジック３００は、受信した優先度情報を、マルチポートスイッチ１８０がサポートする、対応の優先度レベルにマッピングすることができる。たとえば、ポートフィルタロジック３００は、８つのレベルの優先度をマルチポートスイッチ１８０の８つの高い優先度または低い優先度にマッピングすることができる。あるいは、受信したデータフレームに関連する８つのレベルの優先度を、マルチポートスイッチ１８０がサポートする優先度のレベルに応じてマルチポートスイッチ１８０の３つまたはそれ以上のレベルの優先度にマッピングすることができる。
【００４１】
ポートフィルタロジック３００は、データフレームのデータ部分に含まれるデータのタイプも特定する。たとえば、図４は本発明に整合する実施例においてネットワークステーション１１０およびネットワークノード１５０で利用できる通信プロトコル４００を示す代表的な図である。通信プロトコル４００は、アプリケーションレイヤ４１０と、トランスポートレイヤ４２０と、ネットワークレイヤ４３０と、データリンクレイヤ４４０とを含む。アプリケーションレイヤ４１０は、通信を開始するアプリケーションまたはプログラムを含み得る。アプリケーションレイヤ４１０は、メール、ファイル転送、リモートアクセス、認証、名前解決のためのプロトコルなど、いくつかのアプリケーションレイヤプロトコルを含み得る。アプリケーションレイヤ４１０は、データパケットをパケットの宛先と一緒にトランスポートレイヤ４２０に渡すことで、データ４１２をネットワーク１００に配信することができる。
【００４２】
トランスポートレイヤ４２０は、パケットの送信元と宛先との間に仮想回路、接続またはソケットを確立することができる。トランスポートレイヤ４２０は、関連の転送プロトコルの仕様に従って、ヘッダ４２２と後書き４２４とをパケットに付すことができる。トランスポートレイヤ４２０は、パケットを宛先のインターネットプロトコル（ＩＰ）アドレスと一緒にネットワークレイヤ４３０に渡す。
【００４３】
ネットワークレイヤ４３０は、トランスポートレイヤ４２０からのパケットを受け取り、ＩＰアドレスをＭＡＣアドレスなどの物理アドレスに変換し、必要に応じてパケットを所望のサイズに分割することでデータリンクレイヤ４４０用のパケットを作成することができる。ネットワークレイヤ４３０は、関連のプロトコルの仕様に従ってトランスポートレイヤ４２０からのパケットにＩＰヘッダ４３２と後書き４３４とを付すことで、データグラムと呼ばれるパケットを生成することができる。ネットワークレイヤ４３０はこのデータグラムをデータリンクレイヤ４４０に渡す。
【００４４】
データリンクレイヤ４４０は、ネットワーク１００上での高信頼度でのデータ移動を担うイーサネットなどのデータリンクプロトコルを含み得る。データリンクレイヤ４４０は、データグラムをその独自のフォーマットに変換する。この変換には、送信元アドレスおよび宛先ＭＡＣアドレスを含むヘッダ４４２と、後書き４４４（チェックサムデータを含む）とを加えることを含み得る。
【００４５】
図５〜図７はそれぞれ本発明に整合する実施例におけるヘッダ４２２〜４４２の詳細図である。図５に示すように、ヘッダ４２２には、送信元ポートフィールドと、宛先ポートフィールドと、シーケンス番号フィールドと、確認応答番号フィールドと、データオフセット（ｏｆｆｅｓｔ）フィールドと、予約フィールドと、フラグフィールドと、ウィンドウフィールドと、チェックサムフィールドと、緊急ポインタフィールドと、が含まれる。送信元ポートフィールドおよび宛先ポートフィールドにはデータパケットの送信元および宛先を特定するデータが含まれる。シーケンス番号フィールドには宛先でのパケットの配信と順番とを確認するのに使われるデータが含まれる。確認応答番号フィールドには、送信元が宛先から受信するつもりでいるデータの次のバイトを特定するデータが含まれる。
【００４６】
データオフセットフィールドには、ヘッダ４２２の長さを特定するデータが含まれる。予約フィールドは将来的な拡張に利用できるものである。フラグフィールドは、緊急フラグ、確認応答フラグ、プッシュフラグ、リセットフラグ、同期フラグ、送信終了フラグなどのいくつかのフラグを含み得る。緊急フラグは緊急ポインタフィールドに含まれるデータが有効か否かを示す。確認応答フラグは確認応答番号フィールドに含まれるデータが有効か否かを示す。プッシュフラグは、付随するデータをすぐに宛先のアプリケーションに渡すべきか否かを示す。リセットフラグは接続をリセットすべきか否かを示す。同期（ＳＹＮ）フラグはシーケンス番号について最初に合意を得るのに用いられる。送信終了（ＦＩＮ）フラグは送信元がデータの送信を終了したか否かを示す。
【００４７】
ウィンドウフィールドには、確認されていないデータの格納に宛先側で利用できる空間の量を示すデータが含まれる。チェックサムフィールドには、ヘッダ４２２とデータ４１２の両方を対象にできるチェックサム値が含まれる。緊急ポインタフィールドには、このパケットを通常のデータストリームよりも優先させるべきか否かを示すデータが含まれる。
【００４８】
図６を参照すると、ヘッダ４３２には、バージョンフィールドと、ヘッダ長フィールドと、サービスタイプフィールドと、全長フィールドと、識別フィールドと、フラグフィールドと、フラグメントオフセットフィールドと、有効期間フィールドと、プロトコルフィールドと、ヘッダチェックサムフィールドと、送信元アドレスと、宛先アドレスとが含まれる。バージョンフィールドには使用するプロトコルのバージョンを特定するデータが含まれる。ヘッダ長フィールドにはヘッダ４３２の長さを特定するデータが含まれる。サービスタイプフィールドにはネットワーク１００によってデータグラムに与えられるサービスの品質を特定するデータが含まれる。
【００４９】
全長フィールドにはデータグラム（すなわちヘッダ４２２および４３２とデータ４１２）の長さを特定するデータが含まれる。識別フィールドには分割されたデータグラムを宛先で再構成するのに使われるデータが含まれる。フラグフィールドは、たとえば、データグラムを分割できるか否かを特定するフラグを１つまたはそれ以上含み得る。フラグメントオフセットフィールドには、元の送信パケットの先頭からどの位置が開始点になるかを特定するデータが含まれる。
【００５０】
有効期間フィールドには、パケットが経由できるホップ／リンクの数を特定するカウント値が含まれる。プロトコルフィールドには、宛先のデータグラムで用いられる転送プロトコルのタイプ（インターネットコントロールメッセージプロトコル（ＩＣＭＰ）、インターネットグループマネジメントプロトコル（ＩＧＭＰ）、送信制御プロトコルまたはユーザデータグラムプロトコル（ＵＤＰ）など）を特定するデータが含まれる。ヘッダチェックサムフィールドには、ヘッダ４３２を対象とするチェックサム値が含まれる。送信元アドレスフィールドおよび宛先アドレスフィールドにはそれぞれ送信元と宛先のインターネットアドレスなどのアドレスが含まれる。
【００５１】
図７を参照すると、ヘッダ４４２には、宛先アドレスフィールドと、送信元アドレスフィールドと、タイプ／長さコードフィールドとが含まれる。本発明の代表的な実施例では、送信元アドレスフィールドおよび宛先アドレスフィールドにはそれぞれ送信元および宛先のイーサネットアドレスが含まれる。タイプ／長さコードフィールドには、送信元と宛先とを接続するのに用いられるデータリンクプロトコルを特定するデータが含まれ、また、データフレーム長を特定するデータが含まれる。上述したように、ヘッダ４４２は、データフレームに関連する優先度を示す優先度フィールドを含むものであってもよい。さらに、ヘッダ４４２は、仮想ローカルエリアネットワーク（ＶＬＡＮ）情報を含み得る。
【００５２】
ポートフィルタロジック３００は、受信したデータフレームのペイロード部分に含まれる情報に基づいて、データフレームのタイプを特定することができる。データフレームのペイロード部分にはヘッダ４２２および４３２と、データ４１２と、後書き４２４および４３４（図４）とが含まれることは理解されたい。たとえば、データフレームのペイロード部分は、送信制御プロトコル（ＴＣＰ）セッションに関連する情報を含み得る。代表的なＴＣＰセッションでは、２つのネットワークステーション１１０間またはネットワークステーション１１０とネットワークノード１５０との間などの２つのデバイス間でのデータのやり取りを、１）セットアップパケット、２）データパケット、３）切断パケットの３種類のパケットに分けることができる。セットアップパケットはＴＣＰヘッダのＳＹＮフラグがセットされているときに特定できるものである。言い換えると、ヘッダ４２２のフラグフィールドのＳＹＮフラグ（図４）が立っていれば、パケットのペイロード部分が２つのデバイス間での接続の確立に関連していることになる。一般的な流れでは、ネットワークステーション１１０などの送信元デバイスがまずは初期シーケンス番号（ＩＳＮ＿ＣＬＩＥＮＴ）を含むセットアップパケットを送信する。このシーケンス番号は、データストリームの中にある個々のデータを特定するものである。ネットワークノード１５０などの宛先デバイスは一般に、クライアントのシーケンス番号を確認してサーバの初期シーケンス番号（ＩＳＮ＿ＳＥＲＶＥＲ）を含む確認応答パケットを送信元に送り返す。これに対して送信元デバイスはサーバのシーケンス番号を確認するパケットで応答してもよい。
【００５３】
これらのセットアップパケットによって接続が確立されると、２つのデバイス間で実際にデータのやり取りをするデータパケットを１つまたはそれ以上送り出すことができる。データパケット（単数または複数）の後にくるのは切断パケットである。この切断パケットはＴＣＰヘッダのＦＩＮフラグがセットされているときに確認される。言い換えると、ヘッダ４２２のフラグフィールドのＦＩＮフラグが立っていれば、送信元からのデータの送信が終了しており、ＴＣＰセッションが効率よく終了することになる。
【００５４】
本発明に整合するポートフィルタロジック３００は、ヘッダ４２２のフラグフィールドにあるＳＹＮフラグの値に基づいてセットアップパケットを特定することができる。詳細については後述するように、ポートフィルタロジック３００は輻輳状態が発生した場合にセットアップパケットを選択的に間引くことができる。
【００５５】
図８は、本発明に整合する実施例におけるマルチポートスイッチ１８０による代表的な処理を示している。処理についてはネットワーク１００（図１）の起動時に開始することができる。ここでは、ネットワークステーション１１０がデータフレームを送信し、マルチポートスイッチ１８０がデータフレームを受信すると仮定する［ステップ８１０］。たとえば、ＭＡＣモジュール３１０がデータフレームを受信すると仮定する。この場合、受信ＦＩＦＯバッファ３１０Ａがデータフレームを格納する［ステップ８２０］。
【００５６】
ポートフィルタロジック３００は受信したデータフレームの一部を調べ、受信したデータフレームに関連する優先度を判断する［ステップ８３０］。本発明の代表的な実施例では、ポートフィルタロジック３００は、データフレームが受信ＦＩＦＯバッファ３１０Ａに格納されている間に受信したデータフレームのヘッダ（すなわち図４のヘッダ４４２）を調べる。
【００５７】
上述したように、ポートフィルタロジック３００は、フレームのタイプまたはフレームの宛先に基づいて優先度を特定することができる。たとえば、マルチメディア用途向けのデータフレームまたは管理デバイス用のデータフレームを優先度の高いフレームとして指定することができる。他のすべてのデータフレームについては優先度が低いフレームまたは通常の優先度のフレームとして指定すればよい。あるいは、ポートフィルタロジック３００は、個々のユーザの要件などの他の基準に基づいて優先度を特定するものであってもよい。もうひとつの実施例では、ポートフィルタロジック３００は、上述したようにデータフレームと一緒に送信される優先度情報に基づいて優先度を特定するものであってもよい。この状況では、ポートフィルタロジック３００は、受信した優先度情報をマルチポートスイッチ１８０がサポートする、対応の優先度レベルにマッピングすることができる。
【００５８】
いずれの場合も、データフレームに関連する優先度を特定することに加え、ポートフィルタロジック３００はデータフレームのペイロード部分に含まれるデータの性質を判断する［ステップ８４０］。たとえば、ポートフィルタロジック３００は、データフレームがもうひとつのデバイスとの新たな接続の確立と関連しているか否かを判断することができる。上述したように、イーサネットフレームは、そのペイロード部分に、対応のデータ（すなわち図４のデータ４１２）を、シーケンス番号を同期させるなどのＴＣＰセッションのセットアップに関与するセットアップパケットとして特定するＴＣＰパケット用ヘッダ（すなわち図５のヘッダ４２２）を含み得る。この場合、ヘッダ４２２のフラグフィールドにあるＳＹＮフラグを設定してもよい。また、パケットがデバイス間でのシーケンス番号の確認応答に関連している場合にヘッダ４２２のフラグフィールドにある確認応答フラグを設定してもよいことに注意されたい。
【００５９】
ポートフィルタロジック３００がデータをセットアップパケットとして特定する（ＳＹＮフラグを立てるなど）と仮定する。この場合、ポートフィルタロジック３００は受付制御が使用可能であるか否かを判断することができる［ステップ８５０］。代表的な実施例では、ポートフィルタロジック３００はＦＢＱ制御ロジック３２０からの信号がアサートされているか否かに基づいて、受付制御が使用可能であるか否かを判断する。たとえば、ＦＢＱ３３０で利用できるフレームポインタの数が第１の水位線未満であることをＦＢＱ制御ロジック３２０によって判断すると仮定する。この場合、ＦＢＱ制御ロジック３２０は、ＡＤＭＩＳＳＩＯＮ＿ＣＯＮＴＲＯＬ＿ＬＯＷなどのイネーブル受付制御信号をポートフィルタロジック３００に送信する。これによって、ポートフィルタロジック３００が選択した優先度の低いデータフレームについて受付制御手順を実行すべきであることを示すことができる。
【００６０】
受付制御が使用可能ではない場合、マルチポートスイッチ１８０でデータフレームを処理する［ステップ８６０］。すなわち、上記の例では、キューイングロジック３１０ＢがＦＢＱ３３０にアクセスして外部メモリ１７０における位置を特定するフレームポインタを取得し、受信ＦＩＦＯバッファ３１０Ａに格納されたデータフレームとフレームポインタとを外部メモリインタフェース２６５に転送する。次に、外部メモリインタフェース２６５は、このデータフレームを外部メモリ１７０内のフレームポインタによって特定された位置に転送する。次にマルチポートスイッチ１８０がデータフレームを処理してフレーム転送情報を生成し、外部メモリ１７０からデータフレームを検索、このデータフレームを意図した宛先（単数または複数）に転送する。
【００６１】
受付制御が使用可能であることがポートフィルタロジック３００によって判断されると、ポートフィルタロジック３００はデータフレームを間引くか否かを判断する［ステップ８７０］。本発明の代表的な実施例では、ポートフィルタロジック３００は、データフレームの優先度と、データフレームのペイロードに含まれる特定されたデータのタイプとに基づいて、データフレームを間引くか否かを判断する。たとえば、ポートフィルタロジック３００によってデータフレームが優先度の低いものとして特定され、優先度の低いフレームに対する受付制御が使用可能な場合、ポートフィルタロジック３００はセットアップパケットを含むフレームを間引くことができる。セットアップパケットを間引くことで、マルチポートスイッチ１８０は、「先行する」ＴＣＰセッションに関連するデータ送信（すなわちＴＣＰセッションのセットアップ部分がすでに完了しているセッション）を、これらのデータのやり取りを間引くことなく完了させることができる。
【００６２】
あらかじめ定められた時間にわたって輻輳状態のまま（すなわちＦＢＱ３３０が第１の水位線未満）である場合、マルチポートスイッチ１８０は優先度の低いデータフレームをすべて間引いてもよい。しかしながら、セットアップパケットを最初に間引けるようにすることで、マルチポートスイッチ１８０は先行するＴＣＰセッションに対して完了の機会を選択的に与えることができる。また、セットアップパケットが間引かれるため、宛先デバイスがマルチポートスイッチ１８０を介して確認応答セットアップパケットを送信元に送り返すことはなく、送信元デバイスが確認応答セットアップパケットを宛先デバイスに送り返すこともない。これはマルチポートスイッチ１８０での輻輳を低減する上でさらに助けとなり得るものである。
【００６３】
別の実施例では、ポートフィルタロジック３００は、受付制御が使用可能なときにユーザの要件に基づいて他の優先度のデータフレームを間引くことを判断してもよい。たとえば、ＦＢＱ３３０で利用できるフレームポインタの数が第２の水位線未満であることをＦＢＱ制御ロジック３２０によって判断すると仮定する。この場合、ＦＢＱ制御ロジック３２０は、ＡＤＭＩＳＳＩＯＮ＿ＣＯＮＴＲＯＬ＿ＨＩＧＨなどのイネーブル受付制御信号をポートフィルタロジック３００に送信することができる。これによって、ポートフィルタロジック３００が優先度の低いフレームをすべて間引き、選択した優先度の高いフレームを間引くことを示すことができる。すなわち、ポートフィルタロジック３００はデータフレームのペイロード部分に含まれるデータの性質を特定［ステップ８４０］した後、優先度の高いデータフレームを間引くか否かを判断する［ステップ８７０］。たとえば、優先度の高いデータフレームがセットアップパケットに含まれるものとして特定されると、マルチポートスイッチ１８０はこのデータフレームを間引くことができる。しかしながら、マルチポートスイッチ１８０はセットアップパケット以外のデータパケットを処理し、既存のＴＣＰセッションを完了させることができる。上述したように、確認応答パケットおよびＴＣＰセッションの確立に関連する他のパケットが送信されないため、セットアップパケットを間引くとマルチポートスイッチ１８０でネットワーク上のデータトラフィックをさらに低減できることがある。繰り返すが、輻輳状態が長引く場合は優先度の高いデータフレームを含む全受信データフレームをポートフィルタロジック３００で間引くようにしてもよい。
【００６４】
要するに、ポートフィルタロジック３００はＦＢＱ３３０の状態とデータフレームに含まれるデータの性質とに基づいてデータフレームを間引く決断をし得る。このポートフィルタロジック３００は、データパケットの性質を判断する上でデータフレームの一部または全部を調べるように構成できるものである。すなわち、上記の例では、ヘッダ４２２に含まれる１つまたはそれ以上のフラグの状態を特定し、データパケットの性質を特定するようにポートフィルタロジック３００を構成することができる。
【００６５】
ポートフィルタロジック３００がデータフレームを間引く決断をした場合、ポートフィルタロジック３００はデータフレームを受信した対応のＭＡＣモジュールに信号を送信する［ステップ８８０］。上記の例では、ポートフィルタロジック３００は、データフレームが間引かれることを示す信号をＭＡＣモジュール３１０に送信する。代表的な実施例では、ポートフィルタロジック３００はデータフレームが「クズ」（すなわち不完全なデータフレームまたはエラーを含むデータフレーム）であることを示す信号をＭＡＣモジュールに送信することができる。実際にはデータフレームがクズではないとしても、である。この状態で、クズのフレームが間引かれることを認識するようにＭＡＣモジュールを構成してもよい。こうすることで、ＭＡＣモジュールをクズとして特定されたフレームを間引くように構成し得るようになったため、ＭＡＣモジュールのロジックを都合よく簡略化できる。あるいは、ポートフィルタロジック３００はデータフレームが間引かれることを示す他の何らかの信号（ＤＲＯＰ＿ＦＲＡＭＥなど）を送信するものであってもよい。
【００６６】
いずれの場合も、ＭＡＣモジュール３１０は、ポートフィルタロジック３００からの信号を受信し、データフレームを間引く［ステップ８９０］。この場合、キューイングロジック３１０Ｂが受信ＦＩＦＯバッファ３１０Ａからデータフレームを削除する。都合のよいことに、データフレームは、マルチポートスイッチ１８０の資源を相当な量で使うことなくマルチポートスイッチ１８０の「フロントエンド」（すなわち処理の早い段階）で間引かれる。たとえば、キューイングロジック３１０ＢはＦＢＱ３３０からフレームポインタを取得せず、データフレームを外部メモリインタフェース２６５に転送しない。これによって、フレームポインタを取得し、続いてフレームポインタをＦＢＱ３３０に返すことに関わるかなりの処理時間が節約される。言い換えると、マルチポートスイッチ１８０は特定のデータフレームを本来の宛先に転送することに関するすべての処理を停止する。
【００６７】
以上、ネットワークデバイスにおいて選択的受付制御を行うための装置および方法について説明した。本発明のひとつの利点に、受付制御が使用可能なときにマルチポートスイッチ１８０でデータフレームを選択的に間引くことができる点がある。本発明のもうひとつの利点は、２つのデバイス間に接続を確立することに関連するフレームをマルチポートスイッチ１８０で間引くことができるため、先行するセッションに完了する機会が与えられる点がある。本発明のさらに別の利点はデータフレームの処理の比較的速い段階で受信したデータフレームを間引くか否かをマルチポートスイッチ１８０で判断できる点である。これによって後で間引かれるデータフレームのためにマルチポートスイッチが資源を使ってしまうのを回避できるため、全体としてのデータスループットが向上する。
【００６８】
本願開示においては、本発明の好ましい実施形態ならびにその汎用性を示すいくつかの例についてのみ図示して説明したが、本発明はさまざまな他の組み合わせおよび環境における使用が可能であり、本願明細書にて明示した発明概念の範囲内でいくつかの改変が可能なものであることは理解できよう。
【００６９】
たとえば、ここでは２つのデバイス間でのＴＣＰセッションに関連するセットアップパケットがデータフレームに含まれるか否かに基づいてデータフレームを間引くことを中心に本発明を説明したが、本発明はデータフレームを間引くか否かの判断に他の規準を用いることのできる状況にも利用できるものである。すなわち、ポートフィルタロジック３００を、データフレームのペイロード部分に関連する他の何らかの条件を検出し、ユーザの要件に応じてデータフレームを間引くように構成し得る。
【００７０】
また、データフレームに関連する優先度を判断し、データフレームの優先度とデータフレームにセットアップパケットが含まれるか否かとに基づいてデータフレームを間引くか否かを決定することについて本発明を説明してきたが、本発明はデータフレームを間引くか否かを判断するのにデータフレームの優先度を使わない状況にも利用できるものである。すなわち、ポートフィルタロジック３００は、データフレームに関連する優先度とは無関係にデータフレームにセットアップパケットが含まれるか否かとＦＢＱ３３０でのフレームポインタの可用性とに基づいてデータフレームを間引くか否かを判断するものであってもよい。
【００７１】
最後に、ここでは優先度の低い受付制御閾値と優先度の高い受付制御閾値とに対応するＦＢＱ３３０での第１の水位線と第２の水位線とを中心に本発明について説明した。しかしながら、本発明は上述したようにＦＢＱ３３０に任意の数の水位線が含まれる状況にも利用できるものであることは理解されたい。この場合、マルチポートスイッチ１８０は、ＦＢＱ３３０で達したレベルに優先度が対応するデータフレームのセットアップパケットを最初に間引く。言い換えると、ＦＢＱに４つの水位線が含まれ、優先度が低−中のデータフレームに第２の水位線が対応している場合、マルチポートスイッチ１８０はセットアップパケット情報を含む優先度が低−中のデータフレームを間引くことになる。
【図面の簡単な説明】
【００７２】
添付の図面を参照するが、図中、同一の参照符号を付した要素は全体を通して同様の要素を表すものとする。
【図１】本発明に整合する方法およびシステムを実施できる、代表的なシステムのブロック図である。
【図２】図１に示すマルチポートスイッチの代表的な詳細ブロック図である。
【図３】本発明の実施例に整合する、図２に示すマルチポートスイッチの一部の代表的な詳細ブロック図である。
【図４】本発明に整合する実施例において用いられる通信プロトコルの代表的な図である。
【図５】本発明の実施例に整合する、図４に示すヘッダの代表的な詳細図である。
【図６】本発明の実施例に整合する、図４に示すヘッダの代表的な詳細図である。
【図７】本発明の実施例に整合する、図４に示すヘッダの代表的な詳細図である。
【図８】本発明に整合する代表的な実施例による、図２に示すマルチポートスイッチによって実行される処理を示す流れ図である。
【図１】
2004530343.tif 000003
【図２】
2004530343.tif 000004
【図３】
2004530343.tif 000005
【図４】
2004530343.tif 000006
【図５】
2004530343.tif 000007
【図６】
2004530343.tif 000008
【図７】
2004530343.tif 000009
【図８】
2004530343.tif 000010
【国際公開パンフレット】
2004530343.tif 000011
2004530343.tif 000012
2004530343.tif 000013
2004530343.tif 000014
2004530343.tif 000015
2004530343.tif 000016
2004530343.tif 000017
2004530343.tif 000018
2004530343.tif 000019
2004530343.tif 000020
2004530343.tif 000021
2004530343.tif 000022
2004530343.tif 000023
2004530343.tif 000024
2004530343.tif 000025
2004530343.tif 000026
2004530343.tif 000027
2004530343.tif 000028
2004530343.tif 000029
2004530343.tif 000030
2004530343.tif 000031
2004530343.tif 000032
2004530343.tif 000033
2004530343.tif 000034
2004530343.tif 000035
2004530343.tif 000036
2004530343.tif 000037
【国際調査報告】
2004530343.tif 000038
2004530343.tif 000039
2004530343.tif 000040