(57)【要約】  種々の例示的な実施形態は、方法および関連するネットワークノードに関し、この方法は、以下のうちの１つまたは複数を含む：ネットワークノードのポートがパケットを受信する準備ができたことを、ネットワークノードが判定するステップと、複数のインターフェースを介して受信した複数のパケットの中で最高パケット優先度を有するパケットを特定するステップであって、この特定するステップが、第１の階層レベルにおける複数のコンポーネントのそれぞれについて、そのコンポーネントにとって利用可能な複数のパケットのそれぞれに関連付けられたパケット優先度に基づいて、そのコンポーネントにとって利用可能な複数のパケットの中の第１のレベルの最高優先度パケットを特定するステップと、第１のレベルの最高優先度パケットのパケット優先度を、第２の階層レベルにおける少なくとも１つのコンポーネントと共有するステップとを含む、ステップと、最高優先度を有するパケットをポートに送出するステップ。
2014517571.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータネットワークにおいてパケットを転送するための階層的な組織を有するネットワークノードが実施する方法であって、
ネットワークノードのポート（１６０）がパケットを受信する準備ができたことを、ネットワークノードが判定するステップ（６１０）と、
複数のインターフェースを介して受信した複数のパケットの中で最高パケット優先度を有するパケットを特定するステップ（６２０）であって、この特定するステップが、第１の階層レベルにおける複数のコンポーネントのそれぞれについて、
第１の階層レベルにおけるコンポーネントにとって利用可能な複数のパケットのそれぞれに関連付けられたパケット優先度に基づいて、第１の階層レベルにおけるコンポーネントにとって利用可能な複数のパケットの中の第１のレベルの最高優先度パケットを特定するステップ（７１０）と、
第１のレベルの最高優先度パケットのパケット優先度を、第２の階層レベルにおける少なくとも１つのコンポーネントと共有するステップと
を含む、特定するステップ（６２０）と、
最高優先度を有するパケットをポートに送出するステップ（６３０）と
を含む、方法。
【請求項２】
第３の階層レベルが、第１の階層レベルと第２の階層レベルの間に位置する、請求項１に記載の方法。
【請求項３】
複数のパケットが、少なくとも第１の複数のトラフィックシェーピングコンポーネントによって送信に適格であると識別されたすべてのパケットの群である、請求項１または２のいずれか一項に記載の方法。
【請求項４】
複数のパケットの各パケット優先度が、パケットが搬送する少なくとも１つのフィールドに基づいて決定される、請求項１から３のいずれか一項に記載の方法。
【請求項５】
複数のパケットが、複数の待ち行列（１２０−１２７）の中に格納され、
複数のパケットのうちのパケットを保持する待ち行列のステータスを判定するステップと、
待ち行列のステータスに基づいてパケットのパケット優先度を判定するステップと
をさらに含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
ステータスが、認定情報速度のステータスおよび超過情報速度のステータスの１つである、請求項５に記載の方法。
【請求項７】
パケットを転送するためのネットワークノードであって、ネットワークノードが、
パケットを送信するための送信ポート（１６０）と、
パケットを受信するための複数のインターフェース（１１０−１１６）と、
複数のインターフェースを介して受信したパケットを格納するための複数の待ち行列（１２０−１２７）であって、パケット優先度が各パケットに関連付けられている、複数の待ち行列（１２０−１２７）と、
複数の待ち行列の部分集合とそれぞれ関連付けられた複数の第１のレベルシェーピング部であって、各第１のレベルシェーピング部が、
複数の待ち行列の部分集合からの送信に利用可能なすべてのパケットのうちの第１のレベルの最高パケット優先度を有するパケットを特定し（７１０）、
第１のレベルの最高パケット優先度を少なくとも１つの他のコンポーネントと共有する、複数の第１のレベルシェーピング部と、
第２のレベルシェーピング部であって、
送信ポートがパケットを受信する準備ができたことを示す指示を受信し（６１０）、
複数の第１のレベルシェーピング部のうちの少なくとも１つによって共有される、少なくとも１つの第１のレベルの最高パケット優先度を受信し、
少なくとも１つの第１のレベルの最高パケット優先度に基づいて、最高パケット優先度に関連付けられた利用可能なパケットを特定し（６２０）、
最高パケット優先度を有する利用可能なパケットを送信ポートに送る（６３０）、第２のレベルシェーピング部と
を備える、ネットワークノード。
【請求項８】
複数の第１のレベルシェーピング部と第２のレベルシェーピング部の間に、複数の第３のレベルシェーピング部をさらに備える、請求項７に記載のネットワークノード。
【請求項９】
複数の待ち行列のうちの各待ち行列が、待ち行列の先頭にあるパケットが送信に利用可能であることを示し、
複数の第３のレベルシェーピング部の各第３のレベルシェーピング部が、
第３のレベルシェーピング部の活動レベルを監視し、
活動レベルに基づいて、第３のレベルシェーピング部がパケットを送信するのに適格であるかどうかを判定し、
第３のレベルシェーピング部がパケットを送信するのに不適格である場合、  第２のレベルシェーピング部に、送信に利用可能なパケットがないことを示す、
速度シェーピング部を備える、請求項８に記載のネットワークノード。
【請求項１０】
最高パケット優先度に関連付けられた利用可能なパケットが、少なくとも第１の複数のシェーピング部によって送信に適格であると識別されたパケットの群から選択される、請求項７から９のいずれか一項に記載のネットワークノード。
【請求項１１】
各パケット優先度が、関連付けられたパケットが搬送する少なくとも１つのフィールドに基づいて判定される、請求項７から１０のいずれか一項に記載のネットワークノード。
【請求項１２】
複数の待ち行列のうちの各待ち行列が、観察される活動に基づいて待ち行列のステータスを判定する活動監視部（２３０）を備え、
各パケットについてのパケット優先度が、パケットを格納する待ち行列のステータスに基づく、請求項７から１１のいずれか一項に記載のネットワークノード。
【請求項１３】
ステータスが、認定情報速度のステータスおよび超過情報速度のステータスの１つである、請求項１２に記載のネットワークノード。
【請求項１４】
少なくとも１つの第１のレベルシェーピング部と関連付けられた第３のレベルシェーピング部をさらに備え、
第１のレベルシェーピング部が、第１のレベルの最高パケット優先度を、第３のレベルシェーピング部および第２のレベルシェーピング部の少なくとも１つと共有する、請求項７から１３のいずれか一項に記載のネットワークノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書において開示される種々の例示的な実施形態は、一般にネットワーク上のルーティングに関する。
【背景技術】
【０００２】
インターネットを含む多くの階層型通信ネットワークは、コアネットワークを中心としている。数多くのより小さいネットワークがコアネットワークに接続され、それによって、互いの間の通信を確立している。そのようなサブネットワークとコアネットワークの間の通信を可能にする目的で、コアネットワークを介してそれぞれの対応する宛先に送信するために、各種発信元からの集合的なサブネットワークトラフィック用にバックホール装置が設けられる。トラフィックがコアネットワークを出るとき、類似のバックホール装置が、さらなるルーティングのために、パケットを分類し、適切なサブネットワークに送信する。
【０００３】
そのような通信ネットワーク内の異なるトラフィックは、異なる優先度を含んでいることが多い。たとえば、リアルタイムのテレビ会議トラフィックは、ウェブ閲覧などのベストエフォートのトラフィックよりも高い優先度を含み得る。種々のネットワーク装置が、この関連付けられた優先度に応じてパケットをさまざまに処理することができる。たとえば、リアルタイムパケットの送信かベストエフォートのパケットの送信かを単純に選択する場合、ルータはリアルタイムパケットを転送し、ベストエフォートのパケットを廃棄するかまたは遅延させることができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
種々の例示的な実施形態が、コンピュータネットワークにおいてパケットを転送するための階層的な組織を有するネットワークノードが実施する方法に関し、この方法は、以下のうちの１つまたは複数を含む：ネットワークノードのポートがパケットを受信する準備ができたことを、ネットワークノードが判定するステップと、複数のインターフェースを介して受信した複数のパケットの中で最高パケット優先度を有するパケットを特定するステップであって、この特定するステップが、第１の階層レベルにおける複数のコンポーネントのそれぞれについて、第１の階層レベルにおけるコンポーネントにとって利用可能な複数のパケットのそれぞれに関連付けられたパケット優先度に基づいて、第１の階層レベルにおけるコンポーネントにとって利用可能な複数のパケットの中の第１のレベルの最高優先度パケットを特定するステップと、第１のレベルの最高優先度パケットのパケット優先度を、第２の階層レベルにおける少なくとも１つのコンポーネントと共有するステップとを含む、特定するステップと、最高優先度を有するパケットをポートに送るステップ。
【０００５】
種々の例示的な実施形態が、パケットを転送するためのネットワークノードに関し、このネットワークノードは、以下のうちの１つまたは複数を備える：パケットを送信するための送信ポートと、パケットを受信するための複数のインターフェースと、複数のインターフェースを介して受信したパケットを格納するための複数の待ち行列であって、パケット優先度が各パケットに関連付けられている、待ち行列と、複数の待ち行列の部分集合とそれぞれ関連付けられた複数の第１のレベルシェーピング部であって、各第１のレベルシェーピング部が、複数の待ち行列の部分集合からの送信に利用可能なすべてのパケットのうちの第１のレベルの最高パケット優先度を有するパケットを特定し、第１のレベルの最高パケット優先度を少なくとも１つの他のコンポーネントと共有する、第１のレベルシェーピング部と、第２のレベルシェーピング部であって、送信ポートがパケットを受信する準備ができたことを示す指示を受信し、複数の第１のレベルシェーピング部のうちの少なくとも１つによって共有される、少なくとも１つの第１のレベルの最高パケット優先度を受信し、少なくとも１つの第１のレベルの最高パケット優先度に基づいて、最高パケット優先度に関連付けられた利用可能なパケットを特定し、最高パケット優先度を有する利用可能なパケットを送信ポートに送る、第２のレベルシェーピング部。
【０００６】
種々の例示的な実施形態が、コンピュータネットワークにおいてパケットを転送するための階層的な組織を有するネットワークノードが実行するための命令を符号化した機械可読な記憶媒体に関し、この機械可読な記憶媒体は、以下のうちの１つまたは複数を含む：ネットワークノードのポートがパケットを受信する準備ができたことを、ネットワークノードが判定するための命令と、複数のインターフェースを介して受信した複数のパケットの中で最高パケット優先度を有するパケットを特定するための命令であって、この特定するための命令が、第１の階層レベルにおける複数のコンポーネントのそれぞれについて、第１の階層レベルにおけるコンポーネントにとって利用可能な複数のパケットのそれぞれに関連付けられたパケット優先度に基づいて、第１の階層レベルにおけるコンポーネントにとって利用可能な複数のパケットの中の第１のレベルの最高優先度パケットを特定するための命令と、第１のレベルの最高優先度パケットのパケット優先度を、第２の階層レベルにおける少なくとも１つのコンポーネントと共有するための命令とを含む、命令と、最高優先度を有するパケットをポートを介して送信するための命令。
【０００７】
種々の例示的な実施形態が、コンピュータネットワークにおいてパケットを転送するための階層的な組織を有するパケット処理装置が実施する方法に関し、この方法は、以下のうちの１つまたは複数を含む：パケット処理装置がパケットを送信すべきであることを、パケット処理装置が判定するステップと、複数の発信元から受信した複数のパケットの中で最高パケット優先度を有するパケットを特定するステップであって、この特定するステップが、第１の階層レベルにおける複数のコンポーネントのそれぞれについて、第１の階層レベルにおけるコンポーネントにとって利用可能な複数のパケットのそれぞれに関連付けられたパケット優先度に基づいて、第１の階層レベルにおけるコンポーネントにとって利用可能な複数のパケットの中の第１のレベルの最高優先度パケットを特定するステップと、第１のレベルの最高優先度パケットのパケット優先度を、第２の階層レベルにおける少なくとも１つのコンポーネントと共有するステップとを含む、ステップと、最高優先度を有するパケットを送信するステップ。
【０００８】
種々の例示的な実施形態が、パケットを転送するためのパケット処理装置に関し、ネットワークノードが、以下のうちの１つまたは複数を含む：受信したパケットを格納するための複数の待ち行列であって、パケット優先度が各パケットと関連付けられている、待ち行列と、複数の待ち行列の部分集合とそれぞれ関連付けられた複数の第１のレベルシェーピング部であって、各第１のレベルシェーピング部が、複数の待ち行列の部分集合からの送信に利用可能なすべてのパケットのうちの第１のレベルの最高パケット優先度を有するパケットを特定し、第１のレベルの最高パケット優先度を少なくとも１つの他のコンポーネントと共有する、第１のレベルシェーピング部と、第２のレベルシェーピング部であって、パケット処理装置がパケットを送信すべきであると判定し、複数の第１のレベルシェーピング部のうちの少なくとも１つによって共有される少なくとも１つの第１のレベルの最高パケット優先度を受信し、少なくとも１つの第１のレベルの最高パケット優先度に基づいて、最高パケット優先度に関連付けられた利用可能なパケットを特定し、最高パケット優先度を有する利用可能なパケットを送る、第２のレベルシェーピング。
【０００９】
第３の階層レベルが、第１の階層レベルと第２の階層レベルの間に位置する種々の実施形態を説明する。
【００１０】
複数のパケットが、少なくとも第１の複数のトラフィックシェーピングコンポーネントによって送信に適格であると識別されたすべてのパケットの群である種々の実施形態を説明する。
【００１１】
複数のパケットの各パケット優先度が、パケットが搬送する少なくとも１つのフィールドに基づいて判定される種々の実施形態を説明する。
【００１２】
複数のパケットが複数の待ち行列の中に格納される種々の実施形態を説明する。そのような実施形態は、以下のうちの１つまたは複数をさらに含むことができる：複数のパケットのうちのパケットを保持する待ち行列のステータスを判定するステップと、待ち行列のステータスに基づいてパケットのパケット優先度を判定するステップ。
【００１３】
ステータスが、認定情報速度のステータスおよび超過情報速度のステータスの１つである種々の実施形態を説明する。
【００１４】
種々の実施形態が、少なくとも１つの第１のレベルシェーピング部と関連付けられた第３のレベルシェーピング部の１つまたは複数をさらに含み、第１のレベルシェーピング部は、第１のレベルの最高パケット優先度を、第３のレベルシェーピング部および第２のレベルシェーピング部の少なくとも１つと共有する。
【００１５】
種々の例示的な実施形態をよりよく理解できるように、添付の図面を参照する。
【図面の簡単な説明】
【００１６】
【図１】複数のインターフェースからパケットを転送するための例示的なネットワークノードを示す図である。
【図２】パケットを格納するための例示的な待ち行列を示す図である。
【図３】パケットを送信するための例示的なレベル２シェーピング部を示す図である。
【図４】パケットを送信するための例示的なレベル１シェーピング部を示す図である。
【図５】パケットを送信するための例示的なレベル０シェーピング部を示す図である。
【図６】パケットを送信するための例示的な方法を示す図である。
【図７】最高優先度パケットを判定するための例示的な方法を示す図である。
【発明を実施するための形態】
【００１７】
バックホール装置に凝集が起こることで、関連するパケット優先度の問題が生じる。たとえば、バックホール装置は、利用可能な最高優先度パケットをインターフェースごとのコンポーネントが認識できる階層システムを実装することがある。次に、いくつかのインターフェースを有する物理的なカードごとのコンポーネントが、カード上の最高優先度インターフェースを認識できる。最後に、送出ポートに関連付けられたコンポーネントが、装置内のすべてのカードのうちの最高優先度カードを認識できる。しかしながら、この方法は、すべてのインターフェースにわたる最高優先度パケットが、たとえば、より高い優先度インターフェースまたはカードを介して到着する低優先度パケットなどのより低い優先度パケットを送信するために待ち行列で待機しなければならないという多くの結果を招くことがある。したがって、パケット優先度に基づいてパケットを正確にスケジューリングする階層スケジューリング装置が必要である。
【００１８】
ここで、同様の番号が同様の構成要素またはステップを指す図面を参照すると、種々の例示的な実施形態の幅広い態様が開示されている。
【００１９】
図１は、複数のインターフェースからパケットを転送するための例示的なネットワークノード１００を示す。図に示すように、ノード１００は、３つの階層レベルを有する階層構造を備えていてもよい。ノード１００は、複数のインターフェース１１０、１１２、１１４、１１６と、複数の待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７と、複数のレベル２シェーピング部１３０、１３２、１３４、１３６と、複数のレベル１シェーピング部１４０、１４４と、レベル０シェーピング部１５０と、ポート０  １６０とを備えていてもよい。ノード１００は、いくつかの点で単純化したものであり、さまざまな追加のコンポーネントを備えていてもよいことが理解されよう。たとえば、ノード１００は、数多くの追加のポート（図示せず）を備えていてもよい。別の例として、ノード１００は階層レベルの数を減らしても増やしてもよい。種々のさらなる変更が当業者には明らかであろう。
【００２０】
ノード１００の種々のコンポーネントは、単一のパケット処理装置として実装されてもよいことが理解されるはずである。たとえば、ノード１００はパケット処理装置（詳述せず）を備えていてもよく、次いでパケット処理装置は、単一のチップまたはコンポーネント上に、複数の待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７、複数のレベル２シェーピング部１３０、１３２、１３４、１３６、複数のレベル１シェーピング部１４０、１４４、および／またはレベル０シェーピング部１５０を含む。
【００２１】
インターフェース１１０、１１２、１１４、１１６はそれぞれ、メッセージを他のノードから受信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上に符号化された実行可能な命令を含むインターフェースであってもよい。たとえば、各インターフェース１１０、１１２、１１４、１１６は、異なるネットワークノードに接続するイーサネットポートであってもよい。２つ以上のインターフェースが同じネットワークノードに接続し得ることを理解されたい。各インターフェース１１０、１１２、１１４、１１６は、受信したパケットを類別し、それに従って適切な待ち行列に格納するようにさらに構成されていてもよい。
【００２２】
待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７はそれぞれ、受信と送信の間に各種パケットを格納するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。たとえば、各待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７は、先入れ先出し方式（ｆｉｒｓｔ−ｉｎ−ｆｉｒｓｔ−ｏｕｔ）（ＦＩＦＯ）のバッファを備えていてもよい。さらに、各待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７は、インターフェース１１０、１１２、１１４、１１６および／または事前に構成されたサービス品質（ＱｏＳ）パラメータに関連付けられていてもよい。たとえば、待ち行列１２０は、インターフェース０  １１０を介して受信した保証されたトラフィックに関連付けられていてもよい一方で、待ち行列１２１は、インターフェース０  １１０を介して受信したベストエフォートのトラフィックに関連付けられていてもよい。その代わりにまたはそれに加えて、各待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７は、関連付けられたインターフェース１１０、１１２、１１４、１１６を介して受信した特定のフローまたはフローの群に関連付けられていてもよい。
【００２３】
動作中、各待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７は、異なるステータスで機能していてもよい。たとえば、各待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７は、待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７からパケットが移送される速度を監視し、待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７が現在、認定情報速度（ＣＩＲ）ステータスで機能しているのか、超過情報速度（ＥＩＲ）ステータスで機能しているのかを判定することができる。この例において、待ち行列１２０内のパケットが、近時の時間窓にわたるその設定されたＣＩＲを超える速度で移送される場合、待ち行列１２０は、ＥＩＲステータスに切り替えて、その最小スループット要件を現在満たしており、したがって、より低い優先度として一時的に扱われてもよいことを示すことができる。
【００２４】
レベル２シェーピング部１３０、１３２、１３４、１３６はそれぞれ、関連付けられた待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７の先頭から来るいずれのパケットが最高パケット優先度を有するのかを判定するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。その判定を行う際、レベル２シェーピング部１３０、１３２、１３４、１３６は、待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７の特徴および／または現在のステータスを考慮に入れることができる。たとえば、待ち行列１２０はリアルタイムトラフィックと関連し、現在は認定情報速度のステータスにあるので、レベル２シェーピング部１３０は、待ち行列１２０の先頭のパケットを待ち行列１２０、１２１の中の最高優先度パケットと考えることができる。別の例として、待ち行列１２０が代わりにＥＩＲステータスにあり、待ち行列１２１がＣＩＲステータスにある場合、たとえ待ち行列１２１がベストエフォートのトラフィックを格納していても、レベル２シェーピング部は、待ち行列１２１からのパケットを代わりに最高パケット優先度を有するものと考えることができる。
【００２５】
利用可能な最高優先度パケットを判定した後、レベル２シェーピング部１３０、１３２、１３４、１３６はさらに、他のコンポーネントに、最高優先度パケットのパケット優先度を示すことができる。たとえば、レベル２シェーピング部１３０は、待ち行列１２０の先頭のパケットが、最高パケット優先度、すなわち「１」を有すると判定することができる。次いで、レベル２シェーピング部１３０は、レベル１シェーピング部１４０およびレベル０シェーピング部１５０に、その最高優先度パケットが優先度「１」を有することを示すことができる。その後、今度はレベル１シェーピング部１４０およびレベル０シェーピング部１５０が、この情報を使用して、それらのコンポーネントにとって利用可能な最高優先度パケットを判定することができる。
【００２６】
レベル２シェーピング部１３０、１３２、１３４、１３６は、たとえばパケット送信や速度シェーピングなどのさらなる機能を実施することができる。レベル１シェーピング部１４０、１４４などの別のコンポーネントからの要求を受けると、レベル２シェーピング部１３０、１３２、１３４、１３６は、待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７から最高優先度を有するパケットを送信することができる。２つ以上のパケットが最高優先度パケットに対応する場合、レベル２シェーピング部１３０、１３２、１３４、１３６は、たとえばラウンドロビンアルゴリズムなどの、パケットのうちのいずれを送信するかを決定するための何らかの方法を使用することができる。レベル２シェーピング部１３０、１３２、１３４、１３６は、パケットを送信するとき、パケットが送信されている速度を監視することができる。レベル２シェーピング部１３０、１３２、１３４、１３６が、事前に設定された最高速度を超える速度でパケットを送信していると判定した場合、レベル２シェーピング部１３０、１３２、１３４、１３６は、少なくとも１つの他のコンポーネントに、それがパケットを送信するのは一時的に不適格であると示すことができる。
【００２７】
レベル１シェーピング部１４０、１４４は、それぞれ、関連付けられたレベル２シェーピング部１３０、１３２、１３４、１３６のいずれが、レベル１シェーピング部１４０、１４４にとって利用可能な最高優先度パケットにアクセスできるかを判定するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。上記のように、各レベル２シェーピング部１３０、１３２、１３４、１３６は、利用可能な最高パケット優先度を、関連付けられたレベル１シェーピング部１４０、１４４に示すことができる。レベル１シェーピング部１４０、１４４は、この情報を使用して、そのコンポーネントにとって利用可能な最高パケット優先度を判定することができる。たとえば、レベル２シェーピング部１３０は、レベル１シェーピング部１４０に、優先度「１」のパケットにアクセスできることを示すことができ、レベル２シェーピング部１３２は、優先度「２」のパケットにアクセスできることを示すことができる。したがって、レベル１シェーピング部１４０は、レベル２シェーピング部１３０が最高優先度パケットを現在提供すると判定することができる。
【００２８】
レベル１シェーピング部１４０、１４４は、たとえばパケット送信や速度シェーピングなどのさらなる機能を実施することができる。レベル０シェーピング部１５０などの別のコンポーネントからの要求を受けると、レベル１シェーピング部１４０、１４４は、最高優先度を有するパケットを、レベル２シェーピング部１３０、１３２、１３４、１３６に要求することができる。２つ以上のパケットが最高優先度パケットに対応する場合、レベル１シェーピング部１４０、１４４は、たとえばラウンドロビンアルゴリズムなどの、パケットのうちのいずれを送信するかを決定するための何らかの方法を使用することができる。レベル１シェーピング部１４０、１４４は、パケットを送信するとき、パケットが送信されている速度を監視することができる。レベル１シェーピング部１４０、１４４が、パケットを送信する速度が速すぎると判定した場合、レベル１シェーピング部１４０、１４４は、少なくとも１つの他のコンポーネントに、それがパケットを送信するのは一時的に不適格であると示すことができる。
【００２９】
レベル０シェーピング部１５０は、関連付けられたレベル１シェーピング部１４０、１４４のどちらが、レベル０シェーピング部１５０にとって利用可能な最高優先度パケットにアクセスできるかを判定するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。上記のように、各レベル２シェーピング部１３０、１３２、１３４、１３６は、利用可能な最高パケット優先度を、関連付けられたレベル０シェーピング部１５０に示すことができる。レベル０シェーピング部１５０は、この情報を使用して、そのコンポーネントにとって利用可能な最高パケット優先度を判定することができる。たとえば、レベル２シェーピング部１３０は、レベル０シェーピング部１４０に、優先度「１」のパケットにアクセスできることを示すことができ、レベル２シェーピング部１３２は、優先度「２」のパケットにアクセスできることを示すことができ、レベル２シェーピング部１３４は、優先度「３」のパケットにアクセスできることを示すことができ、レベル２シェーピング部１３６は、優先度「２」のパケットにアクセスできることを示すことができる。したがって、レベル０シェーピング部１５０は、レベル２シェーピング部１３０、結果としてレベル１シェーピング部１４０が、最高優先度パケットを現在提供すると判定することができる。
【００３０】
レベル０シェーピング部１５０は、ポート監視やパケット送信などのさらなる機能を提供することができる。レベル０シェーピング部１５０は、ポート１６０を監視して、ポート０  １６０はいつ次のパケットを送信する準備ができるかを判定することができる。たとえば、ポート０  １６０が、信号をレベル０シェーピング部１５０に送信することができるか、またはレベル０シェーピング部１５０が、ポート０  １６０の送出用待ち行列が一杯になるレベルを監視することができる。使用する方法にかかわらず、レベル０シェーピング部１５０が、ポート０  １６０が次のパケットの準備ができたといったん判定すると、レベル０シェーピング部１５０は、パケットを求める要求を、最高優先度パケットにアクセスできるレベル１シェーピング部１４４に送ることができる。複数のレベル２シェーピング部１４０、１４４が最高優先度のパケットにアクセスできる場合において、レベル０シェーピング部１５０は、たとえばラウンドロビンアルゴリズムなどの、パケットのうちのいずれを送信するかを決定するための何らかの方法を使用することができる。
【００３１】
ポート０  １６０は、メッセージを他のノードに送信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上に符号化された実行可能な命令を含むインターフェースであってもよい。たとえば、ポート０は、たとえばコアネットワーク装置などの異なるネットワークノードに接続するイーサネットポートであってもよい。
【００３２】
ネットワークノード１００の各コンポーネントを説明してきたが、次にネットワークノード１００の動作の簡単な概要を述べる。以下の説明は、ネットワークノード１００の動作を概説することが意図されており、したがって、いくつかの点で単純化したものであることが明白であるはずである。ネットワークノード１００の詳細な動作は、図２−７に関連付けて以下でさらに詳しく説明する。以下の例では、図１に示したコンポーネントのみが存在すると仮定するが、追加のコンポーネントおよび／または同様のコンポーネントがネットワークノードに含まれていてもよいことに留意されたい。
【００３３】
レベル２シェーピング部１３０は、レベル１シェーピング部１４０およびレベル０シェーピング部１５０に、その最高優先度パケットが優先度「１」を有することをすぐに示すことができる。同様に、レベル２シェーピング部１３２、１３４、１３６は、それらの最高優先度パケットがそれぞれ「２」、「３」、「２」の優先度を有することを示すことができる。レベル０シェーピング部１５０が、ポート０  １６０が別のパケットの準備ができたと判定するとき、レベル０シェーピング部１５０は、レベル１シェーピング部１４０が最高優先度パケットを提供するので、パケットをレベル１シェーピング部１４０に要求することができる。次にレベル１シェーピング部１４０は、レベル２シェーピング部１３０が最高優先度パケットを提供するので、パケットをレベル２シェーピング部１３０に要求することができる。レベル２シェーピング部は、待ち行列１２０からパケットを取り出し、そのパケットをレベル１シェーピング部１４０に送信することができ、今度はレベル１シェーピング部１４０が、パケットをレベル０シェーピング部１５０に送信する。次いで、レベル０シェーピング部１５０はパケットをポート０  １６０に送信する。
【００３４】
パケットの送信後、レベル２シェーピング部１３０は、その新たな最高優先度パケットが優先度「２」を有すると判定することができる。レベル２シェーピング部１３０はさらに、それが現在その最高速度を超過していると判定することができ、レベル１シェーピング部１４０および／またはレベル０シェーピング部１５０に、それがパケットを送信するのは現在不適格であると示すことができる。したがって、次のパケットに関して、レベル２シェーピング部１３２が提供するパケットまたはレベル２シェーピング部１３６が提供するパケットは両方とも、利用可能な最高優先度「２」を有するので、レベル０シェーピング部１５０は、ラウンドロビンを使用して、それらのいずれを送信するかを決定することができる。
【００３５】
図２は、パケットを格納するための例示的な待ち行列２００を示す。待ち行列２００は、待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７のうちの１つまたは複数に対応し得る。待ち行列２００は、バッファ２１０、属性報告部２２０、活動監視部２３０、およびステータス報告部２４０を備えていてもよい。
【００３６】
バッファ２１０は、パケットを格納することが可能な任意の機械可読な媒体であり得る。したがって、バッファは、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および／または類似の記憶媒体などの機械可読な記憶媒体を備えていてもよい。バッファ２１０は、入力パケットを格納し、先入れ先出し方式（ＦＩＦＯ）の順序でパケットを送信することができる。そのような入力パケットは、インターフェース１１０、１１２、１１４、１１６のうちの１つまたは複数などのインターフェースを介して到着し得る。
【００３７】
属性報告部２２０は、待ち行列２００に格納されることになるパケットのタイプに関する構成情報を格納するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。属性報告部２２０はさらに、そのような構成情報を、たとえば、インターフェース１１０、１１２、１１４、１１６のうちの１つもしくは複数、および／またはレベル２シェーピング部１３０、１３２、１３４、１３６のうちの１つもしくは複数などの他のコンポーネントに報告するように構成されていてもよい。たとえば、属性報告部２２０は、「６」または「７」のサービスクラス（ｃｌａｓｓ  ｏｆ  ｓｅｒｖｉｃｅ）（ＣｏＳ）タグを有するパケットを待ち行列２００に格納するように指示することができる。いずれのパケットが待ち行列２００に格納されるべきかを判定するために、ＣｏＳ以外の他の属性が使用されてもよいことが明白であるはずである。その代わりにまたはそれに加えて、属性報告部２２０は、待ち行列２００に格納されるべき特定のフローを示すことができる。属性報告部２２０は、事前に構成されてもよく、かつ／または実行時間中に構成されてもよい。
【００３８】
活動監視部２３０は、バッファ２１０を監視し、バッファ２１０からのパケットの現在の出力速度を推定またそうでない場合は判定するように構成されたハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。たとえば、活動監視部２３０は、バッファ２１０からパケットが送出されるごとに増分されるカウンタを維持することができる。このカウンタは待ち行列２００用の現在の伝送速度の推定値として機能するように、周期的に減少またはクリアされてもよい。待ち行列２００用の現在の活動率を推定または判定する他の方法が当業者には明らかであろう。
【００３９】
ステータス報告部２４０は、待ち行列２００の現在のステータスを判定するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。たとえば、種々の実施形態において、待ち行列２００は、ＣＩＲステータスまたはＥＩＲステータスで機能し得る。活動監視部２３０が判定する現在の活動レベルを使用して、ステータス報告部は、待ち行列２００は現在いずれのステータスで機能しているのかを判定することができる。たとえば、現在の活動が所定の閾値より大きい場合、ステータス報告部２４０は、他のコンポーネントに、待ち行列２００が現在ＥＩＲステータスにあることを示すことができる。そうでない場合は、ステータス報告部２４０は、他のコンポーネントに、待ち行列２００が現在ＣＩＲステータスにあることを示すことができる。ステータス報告部２４０は、このステータス情報を、たとえば、レベル２シェーピング部１３０、１３２、１３４、１３６のうちの１つもしくは複数などの１つまたは複数の他のコンポーネントに報告することができる。
【００４０】
図３は、パケットを送信するための例示的なレベル２シェーピング部３００を示す。レベル２シェーピング部３００は、レベル２シェーピング部１３０、１３２、１３４、１３６のうちの１つまたは複数に対応し得る。レベル２シェーピング部３００は、送信信号監視部３１０、パケット送信部３２０、待ち行列インターフェース３３０、３３１、待ち行列ステータス／属性インターフェース３４０、３４１、最高優先度報告部３５０、最高優先度計算部３６０、優先度計算部３７０、速度シェーピング部３８０、および適格性報告部３９０を備えていてもよい。
【００４１】
送信信号監視部３１０は、パケットを送信する要求を示す信号を別のコンポーネントから受信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。たとえば、レベル１シェーピング部１４０、１４４のうちの１つまたは複数は、パケットの送信を要求する信号を送信信号監視部３１０に送ることができる。それに応答して、送信信号監視部３１０は、パケット送信部３２０に、パケットを送信するように命令することができる。送信信号監視部３１０はまた、パケットが送信されたことを速度シェーピング部３８０に報知することができる。
【００４２】
パケット送信部３２０は、待ち行列インターフェース３３０、３３１の１つまたは複数を介してパケットを要求し、受信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。要求したパケットを受信すると、パケット送信部３２０は、たとえばレベル１シェーピング部１４０、１４４のうちの１つまたは複数などの要求するコンポーネントに、そのパケットを転送することができる。パケットを送信せよという指示を送信信号監視部３１０から受信すると、パケット送信部３２０は、いずれの待ち行列が最高優先度パケットを保持しているかを判定することができる。たとえば、最高優先度報告部３５０について以下でさらに詳細に説明するように、最高優先度報告部３５０は、パケット送信部３２０が利用可能な最高優先度を有するパケットを取得できる、待ち行列インターフェース３３０、３３１のうちの１つまたは複数を示すことができる。インターフェース３３０、３３１のうちの２つ以上が最高優先度パケットを提供し得る場合、パケット送信部３２０は、ラウンドロビンなどの何らかの方法を使用して、パケットを要求する待ち行列インターフェース３３０、３３１を選択することができる。
【００４３】
待ち行列インターフェース３３０、３３１はそれぞれ、たとえば、待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７のうちの１つまたは複数などの待ち行列と通信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。したがって、待ち行列インターフェース３３０、３３１は、パケットを求める要求を送信する、および／またはそれに応答してパケットデータを受信するように動作可能であってもよい。
【００４４】
待ち行列ステータス／属性インターフェース３４０、３４１はそれぞれ、たとえば、待ち行列１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７のうちの１つまたは複数などの待ち行列と通信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。したがって、待ち行列インターフェース３３０、３３１は、データを求める要求を送信する、および／またはステータスおよび／もしくは待ち行列属性情報を受信するように動作可能であってもよい。
【００４５】
最高優先度報告部３５０は、シェーピング部３００にとって利用可能なパケットの中の最高優先度を示す信号を１つまたは複数のコンポーネントに送るように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。たとえば、最高優先度報告部は、最高優先度の値を、レベル１シェーピング部１４０、１４４のうちの１つもしくは複数、および／またはレベル０シェーピング部１５０に送ることができる。最高優先度報告部３５０は、最高優先度計算部から利用可能な最高優先度の知識を有していてもよい。最高優先度報告部はさらに、パケット送信部３２０に、いずれのインターフェースおよび／または待ち行列が最高優先度に対応するパケットを現在提供するのかを示すことができる。
【００４６】
最高優先度計算部３６０は、シェーピング部３００に関連付けられた待ち行列から現在利用可能なすべてのパケットの中の最高優先度を判定するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。最高優先度計算部３６０は、各待ち行列についての現在の優先度を優先度計算部３７０から受信し、報告された優先度の最高値を特定することができる。最高優先度計算部３６０はさらに、いずれの待ち行列が、最高優先度を有するパケットを最高優先度報告部３５０および／またはパケット送信部３２０に現在提供するかを示すように構成されていてもよい。
【００４７】
優先度計算部３７０は、シェーピング部３００と関連付けられた待ち行列ごとに、現在提供されているパケットの優先度を判定するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。たとえば、各待ち行列がＣｏＳに対応するように構成され、ＣＩＲおよびＥＩＲステータスの一方を報告する一実施形態において、優先度計算部３７０は、待ち行列ステータス／属性インターフェース３４０、３４１のうちの１つまたは複数を介してこの情報を読み出すことができる。優先度計算部３７０は次いで、ステータスおよび属性情報を使用して、待ち行列についての現在の優先度を判定することができる。さまざまな実施形態において、優先度計算部３７０は、４つの優先度のうちの１つを待ち行列に割り当てることができる。たとえば、優先度計算部３７０は、ＣｏＳ「５」以上に対応し、ＣＩＲステータスで機能する待ち行列が、現在の優先度「１」を有し、ＣｏＳ「４」以下に対応し、ＣＩＲステータスで機能する待ち行列が、現在の優先度「２」を有し、ＣｏＳ「５」以上に対応し、ＥＩＲステータスで機能する待ち行列が、現在の優先度「３」を有し、ＣｏＳ「４」以下に対応し、ＥＩＲステータスで機能する待ち行列が、現在の優先度「４」を有することを判定することができる。優先度を割り当てるためのいくつかの異なる方法が使用され得ることと、追加または代替の情報が優先度の値の判定の際に使用され得ることが明白であるはずである。さらに、４つよりも多いかまたは少ない優先度レベルが割り当てられてもよい。
【００４８】
速度シェーピング部３８０は、シェーピング部３００についての現在の伝送速度を監視および／または推定するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。たとえば、速度シェーピング部３８０は、パケットが送信されていると送信信号監視部３１０が示すごとに増分されるカウンタを備えていてもよい。速度シェーピング部３８０は、伝送速度の現在の推定値を維持するために、このカウンタを周期的に減少させるかまたはリセットすることができる。近時の伝送速度を判定または推定する他の方法が当業者には明らかとなろう。速度シェーピング部３８０はさらに、速度シェーピング用の閾値を備えて構成され得る。たとえば、現在の伝送速度が、設定された閾値（たとえば、１Ｍｂｐｓなど）を超過する場合、速度シェーピング部３８０は、適格性報告部３９０に、パケット送信を一時的に停止するように指示することができる。
【００４９】
適格性報告部３９０は、１つまたは複数の他のコンポーネントに、シェーピング部３００がパケットを送信するのに現在適格であるかどうかを示すように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。たとえば、適格性報告部３９０は、この情報を、レベル１シェーピング部１４０、１４４のうちの１つもしくは複数および／またはレベル０シェーピング部１５０に通信することができる。
【００５０】
さまざまな代替実施形態において、適格性および利用可能な最高優先度は別々に報告されなくてもよい。たとえば、シェーピング部３００が、パケットを送信するのに現在不適格であると判定した場合、シェーピング部３００は、パケット送信の要求を抑制するために、可能な最低優先度を利用可能な最高優先度パケットとして単に示すことができる。そのような実施形態において、最高優先度報告部３５０および適格性報告部３９０は同じコンポーネントであってもよい。さまざまな追加の修正が当業者には明らとなろう。
【００５１】
図４は、パケットを送信するための例示的なレベル１シェーピング部４００を示す。レベル１シェーピング部４００は、レベル１シェーピング部１４０、１４４のうちの１つまたは複数に対応し得る。レベル１シェーピング部４００は、送信信号監視部４１０、パケット送信部４２０、Ｌ２インターフェース４３０、４３２、Ｌ２優先度インターフェース４４０、４４２、Ｌ２適格性インターフェース４５０、４５２、最高適格優先度計算部４６０、速度シェーピング部４８０、および適格性報告部４９０を備えていてもよい。
【００５２】
送信信号監視部４１０は、パケットを送信する要求を示す信号を別のコンポーネントから受信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。たとえば、レベル０シェーピング部１５０は、パケットの送信を要求する信号を送信信号監視部４１０に送ることができる。それに応答して、送信信号監視部４１０は、パケット送信部４２０に、パケットを送信するように命令することができる。送信信号監視部４１０はまた、パケットが送信されたことを速度シェーピング部４８０に報知することができる。
【００５３】
パケット送信部４２０は、Ｌ２インターフェース４３０、４３２の１つまたは複数を介してパケットを要求し、受信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。要求したパケットを受信すると、パケット送信部４２０は、たとえばレベル０シェーピング部１５０などの要求するコンポーネントに、そのパケットを転送することができる。パケットを送信せよという指示を送信信号監視部４１０から受信すると、パケット送信部４２０は、いずれのＬ２シェーピング部が最高優先度パケットを提供するかを判定することができる。たとえば、最高適格優先度計算部４６０について以下でさらに詳細に説明するように、最高適格優先度計算部４６０は、パケット送信部４２０が利用可能な最高優先度を有するパケットを取得できる、Ｌ２インターフェース４３０、４３２のうちの１つまたは複数を示すことができる。Ｌ２インターフェース４３０、４３２のうちの２つ以上が最高優先度パケットを提供し得る場合、パケット送信部４２０は、ラウンドロビンなどの何らかの方法を使用して、パケットを要求するＬ２インターフェース４３０、４３２を選択することができる。
【００５４】
Ｌ２インターフェース４３０、４３２はそれぞれ、たとえば、Ｌ２シェーピング部１３０、１３２、１３４、１３６のうちの１つまたは複数などのＬ２コンポーネントと通信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。したがって、Ｌ２インターフェース４３０、４３２は、パケットを求める要求を送信する、および／またはそれに応答してパケットデータを受信するように動作可能であってもよい。
【００５５】
Ｌ２優先度インターフェース４４０、４４２はそれぞれ、たとえば、Ｌ２シェーピング部１３０、１３２、１３４、１３６のうちの１つまたは複数などのＬ２コンポーネントと通信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。したがって、Ｌ２優先度インターフェース４４０、４４２は、利用可能な最高優先度の値を、そのような各Ｌ２コンポーネントから受信するように動作可能であってもよい。そのような利用可能な最高優先度は、たとえば、シェーピング部３００の最高優先度報告部３５０などのコンポーネントによって送信されてもよい。
【００５６】
Ｌ２適格性インターフェース４５０、４５２はそれぞれ、たとえば、Ｌ２シェーピング部１３０、１３２、１３４、１３６のうちの１つまたは複数などのＬ２コンポーネントと通信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。したがって、Ｌ２適格性インターフェース４５０、４５２は、Ｌ２コンポーネントがパケットを送信するのに現在適格であるかどうかについての指示を、そのような各Ｌ２コンポーネントから受信するように動作可能であってもよい。そのような指示は、たとえば、シェーピング部３００の適格性報告部３９０などのコンポーネントによって送られてもよい。
【００５７】
最高適格優先度計算部４６０は、いずれのＬ２コンポーネントが最高優先度のパケットを現在提供するかを判定するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。したがって、シェーピング部４００と関連付けられた各Ｌ２コンポーネントについて、最高適格優先度計算部４６０は、Ｌ２優先度インターフェース４４０、４４２を介して優先度情報を読み出し、Ｌ２適格性インターフェース４５０、４５２を介して適格性情報を読み出すことができる。次いで、最高適格優先度計算部４６０は、パケットを送信するのに現在適格である関連付けられたそれらのＬ２デバイスのために、利用可能な最高優先度パケットを判定することができる。次いで、最高適格優先度計算部４６０は、パケット送信部４２０に、いずれのＬ２コンポーネントが最高適格優先度を有するパケットを提供するかを示すことができる。適格性が別々に報告されない種々の代替実施形態においては、最高適格優先度計算部４６０は、報告される最高優先度を単に判定するだけでもよく、および、Ｌ２適格性インターフェース４５０、４５２は存在しなくてもよい。
【００５８】
速度シェーピング部４８０は、シェーピング部４００についての現在の伝送速度を監視および／または推定するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。たとえば、速度シェーピング部４８０は、パケットが送信されていると送信信号監視部４１０が示すごとに増分されるカウンタを備えていてもよい。速度シェーピング部４８０は、伝送速度の現在の推定値を維持するために、このカウンタを周期的に減少させるかまたはリセットすることができる。近時の伝送速度を判定または推定する他の方法が当業者には明らかとなろう。速度シェーピング部４８０はさらに、速度シェーピング用の閾値を備えて構成され得る。たとえば、現在の伝送速度が、設定された閾値（たとえば、１Ｍｂｐｓなど）を超過する場合、速度シェーピング部４８０は、適格性報告部４９０に、パケット送信を一時的に停止するように指示することができる。
【００５９】
適格性報告部４９０は、１つまたは複数の他のコンポーネントに、シェーピング部４００がパケットを送信するのに現在適格であるかどうかを示すように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。たとえば、適格性報告部４９０は、この情報をレベル０シェーピング部１５０に通信することができる。
【００６０】
レベル２シェーピング部が、利用可能な最高優先度をレベル１シェーピング部に提供するが、レベル０シェーピング部には提供しない種々の代替実施形態において、レベル１シェーピング部４００は、レベル２シェーピング部３００の最高優先度報告部３５０に類似する最高優先度報告部（図示せず）をさらに備えていてもよい。したがって、各レベル１シェーピング部は、そのコンポーネントにとって利用可能な最高優先度を報告することができる。設けられたＬ０シェーピング部は次いで、より少ない数のそのような利用可能な最高優先度を受信することができる。そのような代替実施形態を実施する際に有用な追加の修正が当業者には明らとなろう。
【００６１】
図５は、パケットを送信するための例示的なレベル０シェーピング部５００を示す。レベル０シェーピング部５００は、レベル０シェーピング部１５０に対応し得る。レベル０シェーピング部５００は、ポート監視部５１０、パケット送信部５２０、Ｌ１インターフェース５３０、５３４、Ｌ２優先度インターフェース５４０、５４６、Ｌ２適格性インターフェース５５０、５５６、Ｌ１適格性インターフェース５６０、５６４、および最高適格優先度計算部５７０を備えていてもよい。
【００６２】
ポート監視部５１０は、ポート０  １６０などのポートを監視する、および／またはポートがパケットを受信する準備ができたことを示す信号をそのようなポートから受信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。それに応答して、ポート監視部５１０は、パケット送信部５２０にパケットを送信するように命令することができる。
【００６３】
パケット送信部５２０は、Ｌ１インターフェース５３０、５３４のうちの１つまたは複数を介してパケットを要求し、受信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を備えていてもよい。要求したパケットを受信すると、パケット送信部５２０は、たとえばポート０  １６０などの準備ができたポートに、そのパケットを転送することができる。パケットを送信せよという指示をポート監視部５１０から受信すると、パケット送信部５２０は、いずれのＬ１コンポーネントが現在最高優先度パケットを提供するかを判定することができる。たとえば、最高適格優先度計算部５７０について以下でさらに詳細に説明するように、最高適格優先度計算部５７０は、パケット送信部５２０が利用可能な最高優先度を有するパケットを取得できる、Ｌ１インターフェース５３０、５３４のうちの１つまたは複数を示すことができる。インターフェース５３０、５３４のうちの２つ以上が最高優先度パケットを提供し得る場合、パケット送信部５２０は、ラウンドロビンなどの何らかの方法を使用して、パケットを要求する待ち行列インターフェース５３０、５３４を選択することができる。
【００６４】
Ｌ１インターフェース５３０、５３４はそれぞれ、たとえば、Ｌ１シェーピング部１４０、１４４のうちの１つまたは複数などのＬ１コンポーネントと通信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。したがって、Ｌ１インターフェース５３０、５３４は、パケットを求める要求を送信する、および／またはそれに応答してパケットデータを受信するように動作可能であってもよい。
【００６５】
Ｌ２優先度インターフェース５４０、５４６はそれぞれ、たとえば、Ｌ２シェーピング部１３０、１３２、１３４、１３６のうちの１つまたは複数などのＬ２コンポーネントと通信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。したがって、Ｌ２優先度インターフェース５４０、５４６は、利用可能な最高優先度の値を、そのような各Ｌ２コンポーネントから受信するように動作可能であってもよい。そのような利用可能な最高優先度は、たとえば、シェーピング部３００の最高優先度報告部３５０などのコンポーネントによって送られてもよい。
【００６６】
レベル２シェーピング部が、利用可能な最高優先度をレベル１シェーピング部に提供するが、レベル０シェーピング部には提供しない種々の代替実施形態において、レベル１シェーピング部は、それらの最高優先度をレベル０シェーピング部に報告することができる。そのような実施形態において、レベル０シェーピング部５００は、代替または追加で、いくつかのＬ１コンポーネントと通信する代わりに、Ｌ２優先度インターフェースと同様に機能するいくつかのＬ１優先度インターフェース（図示せず）を備えていてもよい。そのような代替実施形態を実施する際に有用な追加の修正が当業者には明らとなろう。
【００６７】
Ｌ２適格性インターフェース５５０、５５６はそれぞれ、たとえば、Ｌ２シェーピング部１３０、１３２、１３４、１３６のうちの１つまたは複数などのＬ２コンポーネントと通信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。したがって、Ｌ２適格性インターフェース５５０、５５６は、Ｌ２コンポーネントがパケットを送信するのに現在適格であるかどうかについての指示を、そのような各Ｌ２コンポーネントから受信するように動作可能であってもよい。そのような指示は、たとえば、シェーピング部３００の適格性報告部３９０などのコンポーネントによって送られてもよい。
【００６８】
Ｌ１適格性インターフェース５６０、５６４はそれぞれ、たとえば、Ｌ１シェーピング部１４０、１４４のうちの１つまたは複数などのＬ１コンポーネントと通信するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。したがって、Ｌ１適格性インターフェース５６０、５６４は、Ｌ１コンポーネントがパケットを送信するのに現在適格であるかどうかについての指示を、そのような各Ｌ１コンポーネントから受信するように動作可能であってもよい。そのような指示は、たとえば、シェーピング部４００の適格性報告部４９０などのコンポーネントによって送られてもよい。
【００６９】
最高適格優先度計算部５７０は、いずれのＬ１コンポーネントが最高優先度のパケットを現在提供するかを判定するように構成された、ハードウェアおよび／または機械可読な記憶媒体上の実行可能な命令を含んでいてもよい。したがって、シェーピング部５００と関連付けられた各Ｌ２コンポーネントについて、最高適格優先度計算部５７０は、Ｌ２優先度インターフェース５４０、５４６を介して優先度情報を読み出し、Ｌ２適格性インターフェース５５０、５５６および／またはＬ１適格性インターフェース５６０、５６４を介して適格性情報を読み出すことができる。次いで、最高適格優先度計算部５７０は、パケットを送信するのに現在適格である関連付けられたそれらのＬ１デバイスのために、利用可能な最高優先度パケットを判定することができる。次いで、最高適格優先度計算部５７０は、パケット送信部５２０に、いずれのＬ１コンポーネントが最高適格優先度を有するパケットを提供するかを示すことができる。適格性が別々に報告されない種々の代替実施形態においては、最高適格優先度計算部５７０は、報告される最高優先度を単に判定するだけでもよく、および、Ｌ２適格性インターフェース５５０、５５６および／またはＬ１適格性インターフェース５６０、５６４は存在しなくてもよい。
【００７０】
図６は、パケットを送信するための例示的な方法６００を示す。例示的な方法６００は、たとえば、ネットワークノード１００のコンポーネントによって実施され得る。方法６００は、ステップ６０５から開始し、ステップ６１０に進むことができ、そこでネットワークノード１００が、送出ポートがパケットを受信する準備ができていることを判定することができる。たとえば、ポート０  １６０は、信号をレベル０シェーピング部１５０に送信することができる。
【００７１】
次に、ステップ６２０において、ネットワークノード１００は、すべての入力インターフェースにわたって送信するための利用可能な最高優先度パケットを判定することができる。たとえば、各Ｌ２コンポーネント１３０、１３２、１３４、１３６は、利用可能な最高優先度を計算し、その値をレベル０シェーピング部１５０に送ることができる。次いで、レベル０シェーピング部１５０は、送信用に報告された優先度のうちの最高優先度を選択することができる。種々のコンポーネントが速度シェーピングを実施し、適格性を報告するさまざまな実施形態において、すでに詳述したように、ノード１００は、送信するパケットを、送信に適格であるパケットから選択できるにすぎない。したがって、送信されるパケットは、すべてのインターフェースにわたる適格パケットの組のうちの最高優先度を有するパケットであり得る。
【００７２】
最高優先度パケットが特定されると、ステップ６３０において、ノード１００は、そのパケットを準備ができたポートに送出する。種々の実施形態において、ステップ６３０は、パケットをポートの送出バッファで待ち行列に入れ、および／またはすぐにポートを介してそのパケットを別のネットワークノードに送信することを含んでもよい。次いで、方法６００は、ステップ６３５の終了に進むことができる。
【００７３】
図７は、最高優先度パケットを判定するための例示的な方法７００を示す。方法７００は、方法６００のステップ６２０に対応し得る。方法７００は、ステップ７０５から開始し、ステップ７１０に進むことができ、そこで各Ｌ２コンポーネントが、そのコンポーネントにとって利用可能なパケットの中での最高優先度を判定する。各Ｌ２コンポーネントはまた、この情報をノード１００の適切なＬ１およびＬ０コンポーネントに報告することができる。次に、ステップ７２０において、各Ｌ１コンポーネントは、関連付けられたＬ２コンポーネントが報告した優先度を使用して、いずれのＬ２コンポーネントが、利用可能な最高優先度を搬送するパケットを提供するかを判定することができる。同様に、ステップ７３０において、各Ｌ０コンポーネントは関連付けられたＬ２コンポーネントが報告した優先度を使用して、いずれのＬ１コンポーネントが、利用可能な最高優先度を搬送するパケットを提供するかを判定することができる。次いで、方法７００は、ステップ７３５の終了に進むことができる。
【００７４】
上記によれば、種々の例示的な実施形態で、パケット送信をスケジューリングするときに、パケット優先度をより十分に考慮するネットワークノードが設けられている。具体的には、シェーピングおよび／またはスケジューリング階層のすべてのレベルにおいてパケット優先度を共有することにより、ノード内の各コンポーネントが、送信に最適なパケットを選択する際に役立つ情報にアクセスできる。
【００７５】
本発明の種々の例示的な実施形態は、ハードウェアおよび／またはファームウェアにおいて実施されてもよいことが前述の説明から明白であるはずである。さらに、種々の例示的な実施形態は、機械可読な記憶媒体上に格納された命令として実施されてもよく、この命令は、本明細書において詳細に説明した動作を実施するために少なくとも１つの処理装置が読み取り、実行することができる。機械可読な記憶媒体は、パーソナルコンピュータもしくはラップトップコンピュータ、サーバ、または他のコンピューティングデバイスなどの機械が読み取れる形態で情報を格納するための任意の機構を備えていてもよい。したがって、機械可読な記憶媒体は、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および類似の記憶媒体を備えていてもよい。
【００７６】
本明細書における任意のブロック図は、本発明の原理を具体化する例示の回路構成の概念図を表すことが当業者には理解されるはずである。同様に、フローチャート、流れ図、状態遷移図、擬似コードなどはいずれも、機械可読媒体の中に実質的に表され、したがって、コンピュータまたは処理装置が明示的に示されているかどうかにかかわらず、そのようにコンピュータまたは処理装置よって実行され得る種々の処理を表すことが理解されよう。
【００７７】
種々の例示的な実施形態を、そのある種の例示的な態様を具体的に参照しながら詳細に説明してきたが、本発明は、他の実施形態が可能であり、その細部は、種々の明らかな点について修正することが可能であることを理解されたい。当業者には容易に明らかになるように、本発明の趣旨および範囲内から逸脱することなく変形および改変を行うことができる。したがって、上記の開示内容、説明、および図面は例示目的にすぎず、特許請求の範囲によってのみ規定される本発明を限定するものでは決してない。
【図１】
2014517571.tif 000003
【図２】
2014517571.tif 000004
【図３】
2014517571.tif 000005
【図４】
2014517571.tif 000006
【図５】
2014517571.tif 000007
【図６】
2014517571.tif 000008
【図７】
2014517571.tif 000009
【国際調査報告】
2014517571.tif 000010
2014517571.tif 000011