JP5932020B2 - パケットスケジューリング方法及び装置 - Google Patents

パケットスケジューリング方法及び装置 Download PDF

Info

Publication number
JP5932020B2
JP5932020B2 JP2014503255A JP2014503255A JP5932020B2 JP 5932020 B2 JP5932020 B2 JP 5932020B2 JP 2014503255 A JP2014503255 A JP 2014503255A JP 2014503255 A JP2014503255 A JP 2014503255A JP 5932020 B2 JP5932020 B2 JP 5932020B2
Authority
JP
Japan
Prior art keywords
packet
scheduling
queues
queue
engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014503255A
Other languages
English (en)
Other versions
JP2014513466A (ja
Inventor
リンチ、ティモシー
ラム、ピーター
Original Assignee
テレフオンアクチーボラゲット エルエム エリクソン(パブル)
テレフオンアクチーボラゲット エルエム エリクソン(パブル)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テレフオンアクチーボラゲット エルエム エリクソン(パブル), テレフオンアクチーボラゲット エルエム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エルエム エリクソン(パブル)
Publication of JP2014513466A publication Critical patent/JP2014513466A/ja
Application granted granted Critical
Publication of JP5932020B2 publication Critical patent/JP5932020B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/60Queue scheduling implementing hierarchical scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal

Description

本発明は、パケットスケジューリングに関する。本明細書において、「パケット(packet)」という用語は、例えば、OSIモデルの任意の層(例えば、ネットワーク層、トランスポート層、データ物理通信リンク層、アプリケーション層等)における任意の単位のデータを包含するように広く用いられる。
パケットスケジューリングは、複数のパケットが共通のアウトゴーイング通信リンク(例えば、物理通信リンク又は疑似ワイヤ)について競合する場合に必要である。このシナリオは、一般にルータ(及び他のネットワークエレメント)において発生する。最も単純な場合、ルータは、第1のネットワークを第2のネットワークに接続する。つまり、ルータの第1のネットワークインタフェースを第1のネットワークに接続する第1の物理通信リンク、及び当該ルータの第2のネットワークインタフェースを第2のネットワークに接続する第2の物理通信リンクが存在し、それによって、当該ルータが2つのネットワーク間でパケットをルーティングすることを可能にする。ルータは、第2のネットワーク内のノードを宛先とするパケットを第1のネットワークから第1の物理通信リンクを介して受信し得る。ある時点において、これらのパケットがルータに到来するレートは、当該ルータが第2の物理通信リンクへパケットを送信することができるレートを超過し得る(例えば、第2の物理通信リンクは、第1の物理通信リンクよりも低い帯域幅を有し得る)。従って、ルータは、パケットキューを採用して、受信されるパケットを一時的に格納し得る。従って、任意の所与の時点で、ルータはそのパケットキュー中に第1のネットワークから受信され且つ第2のネットワークを宛先とする複数のパケットを格納している可能性がある。ルータを第2のネットワークに接続するのは単一の物理通信リンクであり得るため、キューに入れられたパケットは全て、この共通のアウトゴーイング物理通信リンクについて「競合する(compete)」。そのため、ルータは、何らかのパケットスケジューリングの方法を必要とする。つまり、ルータは、キューに入れられたパケットのうちのいずれがアウトゴーイング送信について次の番になるかを選択するための何らかの手法を必要とする。
1つのパケットスケジューリング技法は、(a)ルートスケジューリングノードと、各リーフスケジューリングノードがパケットキューに関連付けられるリーフスケジューリングノードのセットと、ゼロ以上のアグリゲートスケジューリングノードと、を有するスケジューリングツリーを生成することと、(b)リーフスケジューリングノードに到達するようにスケジューリングツリーを継続的に走査し(traverse)、及び当該リーフスケジューリングノードから送信キューへパケットを移動させるためのスケジューリングエンジンを採用することと、を含む。この技法の問題は、特に、メモリ帯域幅の制限及び各スケジューリングノードの共有状態情報にアクセスし及び更新するためのコンテンションオーバーヘッドに起因して、スケジューリングエンジンの性能が制限され得ることである。
それ故に、望ましいのは、改良されたパケットスケジューリング処理である。
ルータ(又は他のネットワークエレメント)のネットワークインタフェースにおけるパケットスケジューリングを改良するための方法及び装置が、本明細書において説明される。1つの方法は、ネットワークインタフェースにおいて送信のために(例えば、物理通信リンク又はポート疑似ワイヤ又はリンクアグリゲーショングループ(LAG)上での送信のために)バッファリングされるパケットを各々がスケジューリングツリーによって表される複数のスケジューリングドメインに分割し、各スケジューリングツリーを別個のバーチャルポートスケジューリングエンジンに割り当て、及び最上位のスケジューリングエンジンを採用して、バーチャルポートスケジューリングエンジンの出力間でスケジューリングして、バッファリングされたパケットのいずれを送信すべきかの最終的な選択を行う(例えば、ネットワークインタフェースの送信キューへ移動させる)ことである。
バーチャルポートスケジューリングエンジンを並行して且つ互いに独立して動作させることは、個々のスケジューリング決定ごとに考慮されなければならない共有状態の量を大きく低減する。結果として、この技法により、パケットが送信キューに移動されることができるレートは大幅に増加し得る。従って、ネットワークインタフェースが高速通信リンク(例えば、100ギガビット/秒(Gbps)の物理通信リンク)に接続される場合、当該通信リンクの全帯域幅を利用するのに充分なくらい高速に動作するためのスケジューリングシステムの能力は強化される。
従って、1つの態様において、パケットスケジューリング装置が提供される。幾つかの実施形態において、パケットスケジューリング装置は、以下を備える:第1のスケジューリングエンジン(例えば、第1のバーチャルポートスケジューリングエンジン);第2のスケジューリングエンジン(例えば、第2のバーチャルポートスケジューリングエンジン);及び第3のスケジューリングエンジン(例えば、最上位のスケジューリングエンジン)。第1のスケジューリングエンジンは、(a)パケットキューの第1のセットからパケットキューを選択し、及び(b)選択される当該パケットキューから中間パケットキューの第1のセットに含まれる中間パケットキューへパケットを移動させるように動作可能である。第1のスケジューリングエンジンは、スケジューリングノードの第1のセット(例えば、スケジューリングツリーを形成する、階層的に配列されるスケジューリングノードのセット)に対応する情報を用いてパケットキューの上記選択を実行するように構成され得る。
第1のスケジューリングエンジンのように、第2のスケジューリングエンジンは、(a)パケットキューの第2のセットからパケットキューを選択し、及び(b)選択される当該パケットキューから中間パケットキューの第2のセットに含まれる中間パケットキューへパケットを移動させるように動作可能である。第2のスケジューリングエンジンは、スケジューリングノードの第2のセットに対応する情報を用いてパケットキューの上記選択を実行するように構成され得る。幾つかの実施形態において、第1のスケジューリングエンジン及び第2のスケジューリングエンジンは、当該第1のスケジューリングエンジンと当該第2のスケジューリングエンジンとの間で状態情報が共有される必要がないように互いに独立してパケットキューを選択するように構成される。第3のスケジューリングエンジンは、(a)中間パケットキューの第1のセット及び中間パケットキューの第2のセットを含むパケットキューのセットからパケットキューを選択し、及び(b)選択される当該パケットキューから送信キューへパケットを移動させるように動作可能である。
幾つかの実施形態において、パケットスケジューリング装置は、ネットワークインタフェースにおいて実装されてもよく、送信キューからのパケットを通信リンク上へ送信するように構成されるパケット送信器も備える。
幾つかの実施形態において、第1のスケジューリングエンジン及び第2のスケジューリングエンジンは、プロセッサにロードされ及びプロセッサによって実行されるコンピュータコードを記憶したコンピュータ読取可能な媒体を含むソフトウェアベースのスケジューリングエンジンであり、第3のスケジューリングエンジンは、特定用途向け集積回路(ASIC:application specific integrated circuit)を用いて実装される純粋なハードウェアベースのスケジューリングエンジンである。
幾つかの実施形態において、パケットキューの第1のセットに含まれるパケットキューのセットは、第1のパケットフローに関連付けられ、パケットキューの第2のセットに含まれるパケットキューのセットは、第2のパケットフローに関連付けられ、パケットスケジューリング装置は、(a)パケットを受信し、(b)当該パケットが属するパケットフローを判定し、及び(c)当該パケットフローに関連付けられる出口パケットキューに当該パケットを格納するように構成されるパケット受信及び処理ユニット(PRPU:packet receiving and processing unit)をさらに備える。PRPUは、ソフトウェアベース(例えば、PRPUは、プロセッサにロードされ及びプロセッサによって実行されるコンピュータコードを記憶したコンピュータ読取可能な媒体を含み得る)、又はハードウェアベース(例えば、PRPUは、特定用途向け集積回路(ASIC)を用いて実装され得る)であり得る。
幾つかの実施形態において、第3のスケジューリングエンジンは、中間パケットキューの第1のセット、中間パケットキューの第2のセット、及びパケットキューの第3のセットを含むパケットキューのセットからパケットキューを選択するように動作可能であり、当該パケットキューの第3のセットに含まれるパケットキューのセットは、第3のパケットフローに関連付けられる。そのような実施形態において、PRPUは、以下のように構成される:(a)PRPUがパケットを受信し及び当該パケットは第1のパケットフローに属すると判定する場合、PRPUは、第1のパケットフローに関連付けられるパケットキューのセットに含まれるパケットキューのうちの1つに当該パケットを格納し、(b)PRPUがパケットを受信し及び当該パケットは第2のパケットフローに属すると判定する場合、PRPUは第2のパケットフローに関連付けられるパケットキューのセットに含まれるパケットキューのうちの1つに当該パケットを格納し、並びに、(c)PRPUがパケットを受信し及び当該パケットは第3のパケットフローに属すると判定する場合、PRPUは第3のパケットフローに関連付けられるパケットキューのセットに含まれるパケットキューのうちの1つに当該パケットを格納する。
幾つかの実施形態において、スケジューリングノードの第1のセットは、スケジューリングツリーの第1のサブツリーからのスケジューリングノードを含み、スケジューリングノードの第2のセットは、当該スケジューリングツリーの第2の異なるサブツリーからのスケジューリングノードを含む。そのような実施形態において、構成モジュールは、スケジューリングツリーを定義する情報を検査し、第1のスケジューリングエンジンにスケジューリングツリーの第1のサブツリーを割り当て、及び第2のスケジューリングエンジンに当該スケジューリングツリーの第2の異なるサブツリーを割り当てるように構成され得る。
幾つかの実施形態において、スケジューリングノードの第1のセットは、スケジューリングノードの第2のセットにも含まれるスケジューリングノードのセットを含む。
幾つかの実施形態において、スケジューリングノードの第1のセットに対応する情報は、(a)スケジューリングノードの第1のセットに含まれるスケジューリングノードのうちの1つに関連付けられる第1の最大データレート情報と、(b)第1のスケジューリングアルゴリズムを識別する情報と、を含み、スケジューリングノードの第2のセットに対応する情報は、(a)スケジューリングノードの第2のセットに含まれるスケジューリングノードのうちの1つに関連付けられる第2の最大データレート情報と、(b)第2のスケジューリングアルゴリズムを識別する情報と、を含む。
幾つかの実施形態において、第1のスケジューリングエンジンは、第1の最大データレート情報及び第1のスケジューリングアルゴリズムを用いてパケットが除去されるべきパケットキューを選択するように構成され、第2のスケジューリングエンジンは、第2の最大データレート情報及び第2のスケジューリングアルゴリズムを用いてパケットが除去されるべきパケットキューを選択するように構成される。
幾つかの実施形態において、第1のスケジューリングエンジンは、データ処理システムと、当該データ処理システムがアクセス可能なコンピュータ読取可能な媒体と、を備える。コンピュータ読取可能な媒体は、データ処理システムによって実行される場合、当該データ処理システムに(a)パケットキューの第1のセットからパケットキューを選択させ、及び(b)選択される当該パケットキューから中間パケットキューの第1のセットに含まれる中間パケットキューへパケットを移動させるコンピュータ読取可能なプログラムコードを記憶し得る。
別の態様において、パケットスケジューリング方法が提供される。幾つかの実施形態において、パケットスケジューリング方法は、以下のステップを含む:パケットキューの第1のセットを第1のスケジューリングエンジンに割り当てることと;パケットキューの第2のセットを第2のスケジューリングエンジンに割り当てることと;第1のパケットフローをパケットキューの第1のセットに含まれるパケットキューのセットに割り当てることと;第2のパケットフローをパケットキューの第2のセットに含まれるパケットキューのセットに割り当てることと;ネットワークエレメントのネットワークインタフェースにおいてパケットを受信することと;当該パケットが属するパケットフローを判定することと;受信されるパケットが第1のパケットフローに属する場合、受信される当該パケットが第1のパケットフローに属すると判定することに応じて、第1のパケットフローが割り当てられるパケットキューのセットに含まれるパケットキューのうちの1つに受信される当該パケットを格納することと;受信される当該パケットが第2のパケットフローに属する場合、受信される当該パケットが第2のパケットフローに属すると判定することに応じて、第2のパケットフローが割り当てられるパケットキューのセットに含まれるパケットキューのうちの1つに受信される当該パケットを格納すること。
幾つかの実施形態において、第1のスケジューリングエンジンは、(a)パケットキューの第1のセットからパケットキューを選択し、及び(b)選択されるパケットキューから中間パケットキューの第1のセットに含まれる中間パケットキューへパケットを移動させる、第2のスケジューリングエンジンは、(a)パケットキューの第2のセットからパケットキューを選択し、及び(b)選択されるパケットキューから中間パケットキューの第2のセットに含まれる中間パケットキューへパケットを移動させ、第3のスケジューリングエンジンは、(a)中間パケットキューの第1のセット及び中間パケットキューの第2のセットを含むパケットキューのセットからパケットキューを選択し、及び(b)選択されるパケットキューから送信キューへパケットを移動させる。ネットワークインタフェースのパケット送信器は、送信キューからのパケットを通信リンク上へ送信するように構成される。
上記及び他の態様及び実施形態は、添付の図面を参照しつつ以下に説明される。
本明細書に包含され且つ本明細書の一部を構成する添付の図面は、本発明の種々の実施形態を例示し、説明と共に、本発明の原理を説明し及び関連する技術分野における当業者が本発明を実施し及び使用することを可能にする役割をさらに果たす。図面において、同様の参照番号は、同一の要素又は帰納的に同様の要素を示す。
エッジルータを含む通信システムを例示する。 エッジルータのネットワークインタフェースの機能図である。 例示的なスケジューリングツリーを例示する。 スケジューリングツリーが複数のサブツリーに分割されることができる1つの取り得る手法を例示する。 一実施形態に係るスケジューリングシステムの機能図である。 スケジューリングツリーが複数のサブツリーに分割されることができる別の取り得る手法を例示する。 別の実施形態に係るスケジューリングシステムの機能図である。 特定の実施形態に係る種々の処理を例示するフローチャートである。 通信システムを例示する 階層的に配列されるスケジューリングノードのセットを例示する。 変形されたスケジューリングツリーを例示する。 2つの変形されたスケジューリングツリーを例示する。 幾つかの実施形態に係るスケジューリングエンジンのブロック図である。 スケジューリングエンジンの例示的なソフトウェアコンポーネントを例示するブロック図である。
本明細書において、不定冠詞「a」及び「an」は、「1つ以上」を意味する。
図1は、本発明の実施形態が採用され得る通信システム100の例を例示する。ただし、本発明は、任意の特定のタイプの通信システムに限定されない。例示される例において、通信システム100は、ネットワーク110(例えば、インターネット)にパケットを送信し及び当該ネットワーク110からパケットを受信する複数のエンドユーザデバイス101を含む。図1に示されるように、ユーザデバイス101は、アクセスネットワーク103と当該アクセスネットワーク103をネットワーク110に接続するように機能するネットワークエレメント108(例えば、エッジルータ108)とを介してネットワーク110(例えば、ネットワーク110内のサーバ)と通信する。
示される例において、アクセスネットワーク103はデジタル加入者線(DSL:digital subscriber line)アクセスネットワーク103であるが、任意のタイプのアクセスネットワーク103が用いられ得る。例示的なDSLアクセスネットワーク103は、物理通信リンク122を介してスイッチ106に接続されるDSLアクセスマルチプレクサ(DSLAM)104に接続されるDSLモデム102を含む。例えば、DSLモデム102は、物理通信リンク121を介してDSLAM104と接続され、当該DSLAM104は、物理通信リンク122を介してスイッチ106と接続される。スイッチ106は、(有線又は無線であり得る)物理通信リンク123を介してネットワークエレメント108のネットワークインタフェース191に接続される。同様に、ネットワーク110は、物理通信リンク124を介してエッジルータ108のネットワークインタフェース192に接続される。ネットワークインタフェース191及び192は、ネットワークエレメント108のバックプレーンコンポーネント(例示せず)によって接続され得る。スイッチ106には、別のネットワーク112も接続され得る。
図2は、ネットワークエレメント108のネットワークインタフェース191のパケット出口部分の機能図である。図2に例示されるように、ネットワークインタフェース191は、パケット受信及び処理ユニット(PRPU)202を含む。図1に示される実施形態において、PRPU202は、ネットワークインタフェース192から例えばネットワークエレメント108のバックプレーンを介してパケットを受信する。ネットワークインタフェース192から受信されるパケットは、ネットワークインタフェース192がネットワーク110から受信するパケットを含む。PRPU202にパケットを提供することに加えて、ネットワークインタフェース192は、当該ネットワークインタフェース192がPRPU202に提供するパケットごとに当該パケットについてのメタデータも提供する。
一実施形態において、PRPU202によって受信される各パケットは、単一のパケットフローに属する。この実施形態において、PRPU202によって受信される各パケットについて、PRPU202は、受信パケットが属するパケットフローを判定するように機能する。幾つかの実施形態において、PRPU202は、受信パケットが属するパケットフローを、当該パケットに含まれるパケットヘッダに含まれるデータを調べることによって又はもしあれば当該パケットについてのメタデータを調べることによって判定する。例えば、パケットヘッダ(又はメタデータ)は、1つ以上のバーチャルLAN(VLAN:virtual local area network)タグ(例えば、アウターVLANタグ及びインナーVLANタグ)を含んでもよく、当該パケットが搬送しているペイロードデータのタイプ(例えば、ボイスオーバーIPデータなどのリアルタイムデータ、又はHTTPメッセージなどの非リアルタイムデータ)を識別する情報も含んでもよい。具体的な例として、あるアウターVLANタグ、インナーVLANタグ、及びペイロードタイプに関連付けられる全てのパケットは同じフローに属すると判定される一方で、異なるアウターVALNタグ、インナーVLANタグ、又はペイロードタイプに関連付けられる全てのパケットは異なるパケットフローに属すると判定される。
PRPU202は、受信パケットを、当該パケットが属する判定されたパケットフローに基づいてパケットキューに追加するようにも機能する。つまり、幾つかの実施形態において、各パケットフローは、パケットキューに関連付けられる。例えば、ネットワークインタフェース191は、パケットフロー対パケットキューデータベース(DB)を含み得る。当該データベースは、例えば、定義されるパケットフローのセットのうちの各々をパケットキューにマッピングする情報を格納する、データが書き込まれ及び読み出されるコンピュータ読取可能な媒体において実装され得る。図2に示されるように、ネットワークインタフェース191は、パケットキューのセット206(例えば、例示のようなパケットキューq1〜q8)を含む。
例えば、PRPU202によって受信され且つネットワーク112を宛先とする全てのパケットが同じパケットフローに属すると仮定される場合、このパケットフローは、例えば、q8に関連付けられ得る。従って、この例において、PRPU202がネットワークインタフェース192からネットワーク112を宛先とするパケット(又は当該パケットについてのメタデータ−例えば、パケット識別子、当該パケットが格納されるメモリロケーションを識別するメモリロケーション識別子、宛先アドレス情報)を受信すると、PRPU202は、当該パケットをq8に「追加する(add)」であろう。パケットキューのセット206内のパケットキューは、パケットキュー内の全てのパケットが同じストレージデバイスにおいて順番に格納されるという意味において、物理的なパケットキューである必要はない。むしろ、本明細書において説明されるパケットキューは、論理的なFIFO(first-in-first-out)パケットキューなどの論理的なパケットキューであり得る。パケット自体は、どこに格納されてもよい。従って、パケットをパケットキューに「追加すること(adding)」は、当該パケットに関連付けられる識別子(例えば、当該パケットが格納されるメモリロケーションを識別する識別子)を、パケットキューを実装するデータ構造(例えば、連結リストデータ構造)に単に追加することから成り得る。
PRPU202がパケットを処理している(例えば、パケットキュー206のうちの1つにパケットを追加している)間、スケジューリングシステム212は、パケットキュー206のうちの1つを選択し、及び選択されるパケットキューから送信キュー214へパケットを移動させ続ける。並行して、パケット送信器216は、送信キュー214からPケットを除去し、及びそれらのパケットを物理通信リンク123へ送信し続ける。幾つかの実施形態において、パケット送信器216は、パケットの送信に先立って、当該パケットにヘッダを追加し、それによって、プロトコルデータユニットを生成する。このようにして、パケットは、ネットワークインタフェース191の出口部分へ流れ込み及び当該出口部分から流れ出る。
幾つかの実施形態において、スケジューリングシステム212がパケットキューを選択するタイミングになると、スケジューリングシステム212は、スケジューリングツリーを走査して、当該スケジューリングシステム212が選択すべき、パケットキューのセット206からのパケットキューを判定する。従って、ネットワークインタフェース191は、スケジューリングツリーデータベース210を含み得る。スケジューリングツリーデータベース210は、スケジューリングツリーを定義する情報を格納するための、データが書き込まれ及び読み出されるコンピュータ読取可能な媒体において実装され得る。
図3は、スケジューリングシステム300によって用いられ得る例示的なスケジューリングツリー300を例示する。スケジューリングツリー300は、デシジョンツリーの形式で論理的に体系化されるスケジューリングノードのセット(例えば、スケジューリングノード301〜304)を含み、その各々は、コンピュータ読取可能な媒体に格納されるデータ構造(例えば、互いにグループ化されるデータエレメントのセット)として実装され得る。つまり、リーフスケジューリングノードを除く各スケジューリングノードは、1つ以上の子スケジューリングノードを有し、ルートスケジューリングノードを除く各スケジューリングノードは、親を有する。より具体的には、スケジューリングツリー300は、ルートスケジューリングノード301、アグリゲートスケジューリングノード(例えば、スケジューリングノード302、304、305、307及び308)、及びリーフスケジューリングノード(例えば、スケジューリングノード303、306及び309〜314)を含む。
示される例において、各リーフスケジューリングノード及び各アグリゲートスケジューリングノードは、物理通信リンク123へ送信され得る、PRPU202によって受信されるパケットフローのサブセットを表し、ルートスケジューリングノード301は、物理通信リンク123へ送信され得る、PRPU202によって受信される全てのパケットフローを表す。また、各リーフスケジューリングノードは、一意のパケットキューに関連付けられる。従って、スケジューリングツリー300は、上述したようにデータベース204に格納され及びPRPU202によって用いられるパケットフロー対パケットキューマッピングを例示する。
具体的な例として、リーフスケジューリングノード303は、ネットワーク112へのパケットのフローを表し、リーフスケジューリングノード309は、VLAN1.1を宛先とする音声パケット(ボイスオーバーIPデータなどの音声データを含むパケット)のフローを表し、リーフスケジューリングノード310は、VLAN1.1を宛先とする非音声パケットのフローを表し、アグリゲートスケジューリングノード305は、VLAN1.1を宛先とする全て(即ち、音声及び非音声)のパケットのフローを表し、及びリーフスケジューリングノード306は、VLAN1.2を宛先とする全てのパケットのフローを表す。この例において、VLAN1は、VLAN1を宛先とする全てのトラフィックがスイッチ106によって物理通信リンク122上で送信されるようにDSLAM104に関連付けられ、VLAN1.1は、VLAN1.1を宛先とする全てのトラフィックがDSLAM104によって物理通信リンク121上へ送信されるようにDSLデバイス102に関連付けられると仮定される。
図3に例示されるように、各リーフスケジューリングノードは、ルートスケジューリングノード301に直接接続され、又はルートスケジューリングノード301に1つ以上のアグリゲートスケジューリングノードを介して間接的に接続される。例えば、リーフスケジューリングノード303は、ルートスケジューリングノード301に直接接続される一方で、リーフスケジューリングノード311は、ルートスケジューリングノード301にアグリゲートスケジューリングノード304及び307を介して接続される。同様に、各アグリゲートスケジューリングノードは、ルートスケジューリングノード301に直接接続され、又はルートスケジューリングノード301に1つ以上の他のアグリゲートスケジューリングノードを介して間接的に接続される。
議論したように、各スケジューリングノードは、コンピュータ読取可能な媒体に格納されるデータ構造として実装され得る。従って、幾つかの実施形態において、スケジューリングノードを実装する各データ構造は、(i)別のスケジューリングノード(即ち、スケジューリングノードの親)を実装する別のデータ構造をポインティングする親スケジューリングノードポインタを格納する親ポインタデータエレメントと、(ii)各子ポインタデータエレメントが、別のスケジューリングノード(即ち、スケジューリングノードの子のうちの1つ)を実装する別のデータ構造をポインティングする子スケジューリングノードポインタを格納する、子ポインタデータエレメントのセットと、を含み得る。従って、各スケジューリングノードは、別のスケジューリングノードに対して、当該別のスケジューリングノードの親又は子であり得る。ルートノードを実装するデータ構造の場合において、当該データ構造の親スケジューリングノードポインタは、NULLをポインティングし得る。幾つかの実施形態において、定義によって、ルートノードは親スケジューリングノードを有しないことがあり得るためである。同様に、リーフノードを実装するデータ構造の場合において、当該データ構造の各子スケジューリングノードポインタは、NULLをポインティングし得る。幾つかの実施形態において、定義によって、リーフノードは如何なる子スケジューリングノードも有しないことがあり得るためである。
上記で議論したように、スケジューリングシステム212は、送信キュー214への配信のためのパケットを取得するパケットキューをスケジューリングツリー300を走査することによって選択するように構成され得る。幾つかの実施形態において、スケジューリングシステム212は、ルートスケジューリングノード301から開始し及び子スケジューリングノードを選択する(例えば、ルートノード301を実装するデータ構造から子ポインタデータエレメントを選択する)ことによってスケジューリングツリー300をトップダウン方式で走査する(ただし、他の実施形態において、スケジューリングシステムは、スケジューリングツリー300をボトムアップ走査(traversal)アルゴリズムを用いて走査し得る)。幾つかの実施形態において、ルートスケジューリングノード301は、スケジューリングアルゴリズム(例えば、ラウンドロビン)に関連付けられ得る。また、各スケジューリングノードは、最大データレート(及び、最小ターゲットデータレートなどの他のパラメータ)に関連付けられてもよい。例えば、上記で議論したように、データ構造はスケジューリングノードを実装してもよく、それ故に、スケジューリングノードは、当該スケジューリングノードを実装するデータ構造のデータエレメントに最大データレートを格納することによって最大データレートに関連付けられてもよい。
そのような実施形態において、スケジューリングエンジン212は、ルートスケジューリングノード301の子スケジューリングノードを、ルートスケジューリングノード301に関連付けられるスケジューリングアルゴリズム及び最大データレートを用いて選択する。例えば、(a)スケジューリングノード302に関連付けられる最大データレートは7Gbpsであり、且つ(b)ルートスケジューリングノード301に関連付けられるスケジューリングアルゴリズムはスケジューリングシステム212がアグリゲートスケジューリングノード302を選択すべきであることを示す、と仮定される場合、最後の瞬間(又は他の期間)において、スケジューリングシステム212がスケジューリングノード302に関連付けられるパケットキュー(即ち、パケットキューq1、q2及びq3)から10Gbを超えるデータを既に選択している場合を除いて、スケジューリングシステム212は、アグリゲートスケジューリングノード302を選択するであろう。さもなければ、スケジューリングシステム212は、ルートスケジューリングノード301に直接接続されるその他のスケジューリングノード(即ち、この例において、スケジューリングノード303及び304)のうちの1つを選択するであろう。
選択される子スケジューリングノードがリーフスケジューリングノードである場合、スケジューリングシステム212は、選択されるリーフスケジューリングノードに関連付けられるパケットキューを選択し、及び選択されるパケットキューから送信キュー214へパケットを移動させる。選択される子スケジューリングノードがリーフスケジューリングノードではない(即ち、アグリゲートスケジューリングノードである)場合、スケジューリングシステム212は、選択されるアグリゲートスケジューリングノードの子スケジューリングノードを選択する。この処理は、スケジューリングシステム212がリーフスケジューリングノードを選択するまで繰り返される。このようにして、スケジューリングシステム212は、最大レート又は他のスケジューリングルールを各レベル及び当該ツリーのノードにおいて考慮し及び実施しつつ、スケジューリングツリー300を走査する。
ルートスケジューリングノード301と同様に、選択されるアグリゲートスケジューリングノードは、スケジューリングアルゴリズムに関連付けられ、当該選択されるアグリゲートスケジューリングノードの各子スケジューリングノードは、最大データレート(及び/又は他のパラメータ)に関連付けられ得る。従って、スケジューリングシステム212は、スケジューリングアルゴリズム及び最大データレートを用いて、いずれの子スケジューリングノードが選択されることとなるかを判定する。上記で議論したように、この処理は、スケジューリングシステム212がリーフスケジューリングノードであるスケジューリングノード(即ち、如何なる子スケジューリングノードも有しないスケジューリングノード)を選択するまで繰り返される。リーフスケジューリングノードを選択し、及び選択されるリーフスケジューリングノードに関連付けられるパケットキューから送信キュー214へパケットを移動させた後、スケジューリングシステム212は、ルートスケジューリングノード300から開始して再度スケジューリングツリー300を走査するであろう。従って、スケジューリングシステム212は、スケジューリングツリー300を走査し続け、それによって、パケットを送信キュー214へ移動させるパケットキューを選択し続ける。このようにして、パケットは、物理通信リンク123上での送信のためにキューイングされる。
上記の説明から明らかなように、スケジューリングシステム212は、スケジューリングノードのうちの少なくとも幾つかについて状態情報を維持する。例えば、スケジューリングノードが当該スケジューリングノードに関連付けられる最大データレートを有する場合、スケジューリングシステム212は、当該スケジューリングノードに(直接的に又は間接的に)関連付けられるパケットキューから送信のためにどのくらいのデータが選択されたかを追跡するであろう。別の例として、スケジューリングノードがスケジューリングアルゴリズムに関連付けられる場合、スケジューリングシステム212は、当該スケジューリングアルゴリズムを実装するために必要とされる状態情報を維持し得る(例えば、スケジューリングノードのスケジューリングアルゴリズムがラウンドロビンスケジューリングアルゴリズムである場合、スケジューリングシステム212は、スケジューリングノードのいずれの子が最後の「番(turn)」を有したかを追跡し得る)。幾つかの実施形態において、スケジューリングシステム212は、スケジューリングノードについての状態情報を、当該スケジューリングノードを実装するデータ構造の1つ以上のデータエレメントに格納し得る。
物理通信リンク123の伝送容量が大きい(例えば、100Gbps)状況において、スケジューリングシステム212によって用いられるスケジューリングツリーがあまりに多くのデシジョンポイントを有することに起因して、スケジューリングシステム212が100Gbpsの容量の全てが利用されるほど迅速にパケットを送信キュー214へ移動させることが可能ではない状況があり得る。そのような状況において、複数の新たなスケジューリングツリーが、既存のスケジューリングツリーから形成されることができる。例えば、図4は、どのようにスケジューリングツリー300が3つのスケジューリングツリー(即ち、ツリー401、402及び403)に分割されることができるかを例示する。示される実施形態において、ツリー401〜403の各々は、スケジューリングツリー300のサブツリーである。さらに示されるように、ツリー401のルートスケジューリングノードは、ツリー300のルートスケジューリングノードと同じである一方で、スケジューリングノード302は、ツリー402のルートスケジューリングノードであり、スケジューリングノード304は、ツリー403のルートスケジューリングノードである。
図5は、図4に示されるスケジューリングツリー401〜403と共に用いられることができるスケジューリングシステム212の一実施形態の機能図を例示する。示される実施形態において、スケジューリングシステム212は、3つのスケジューリングエンジン521〜523、即ち、各スケジューリングツリー401〜403について1つのスケジューリングエンジンンを含む。スケジューリングエンジン521は、パケットを送信キュー214へ移動させるように機能するため、最上位のスケジューリングエンジンとして分類され得る。スケジューリングエンジン522及び523は、これらのスケジューリングエンジンの各々がパケットを送信キュー214ではなく中間パケットキュー(例えば、iq1、又はiq2)へ移動させるため、バーチャルポートスケジューリングエンジンとして分類され得る。
示される例において、ツリー401は、iq1、iq2及びq8から成るパケットキューのセットからパケットキューを選択するためにスケジューリングエンジン521によって用いられる;ツリー402は、q1〜q3から成るパケットキューのセットからパケットキューを選択するためにバーチャルポートスケジューリングエンジン522によって用いられる;ツリー403は、q4〜q7から成るパケットキューのセットからパケットキューを選択するためにバーチャルポートスケジューリングエンジン523によって用いられる。各スケジューリングエンジン521〜523は、ツリー300に関連して上述されたスケジューリングシステム212と同じように動作する。つまり、各スケジューリングエンジン521〜523は、その対応するスケジューリングツリーを絶えず走査する;従って、各スケジューリングエンジン521〜523は、対応するツリーに基づいて選択されるパケットキューから送信キュー214へ又は中間パケットキューへパケットを絶えず移動させる。
より具体的には、スケジューリングエンジン521は、選択されるパケットキューから送信キュー214へパケットを移動させるように構成される一方で、スケジューリングエンジン522及び523は、選択されるパケットキューから中間パケットキュー(例えば、それぞれiq1及びiq2)へパケットを移動させるように各々構成される。スケジューリングエンジン521、522及び523は、並行して動作するように構成されてもよい。つまり、スケジューリングエンジン522及び523が中間パケットキュー(iq1及びiq2)へパケットを移動させている間、スケジューリングエンジン521は、これらのパケットキューから送信キュー214へパケットを移動させていてもよい。また、スケジューリングエンジン521、522、及び523は、スケジューリングエンジンのうちのいずれも別のスケジューリングエンジンによって維持される如何なる状態情報も必要としないように、互いに独立して動作するように構成されてもよい。このようにして、パケットが送信キュー214へ移動されるレートは、大きく増加されることができる。例えば、中間パケットキューのうちの少なくとも1つが常に少なくとも1つのパケットを含むと仮定すると、パケットが送信キュー214へ移動されるレートは、スケジューリングエンジン521の「帯域幅(bandwidth)」(即ち、スケジューリングエンジンがパケットを送信キュー214へ伝送することができるレート)のみに依存する。さらに、幾つかの実施形態において、スケジューリングエンジン521は、そのスケジューリングツリー(例えば、ツリー401)が単一のレベルの走査のみを必要とし得る(例えば、ルートスケジューリングノード301に接続される全てのスケジューリングノードがリーフスケジューリングノードである)ため、非常に単純なエンジンとすることができる。従って、幾つかの実施形態において、スケジューリングエンジン521は、高い帯域幅を有するように実質的に純粋にハードウェアのみにおいて実装される。例えば、幾つかの実施形態において、スケジューリングエンジン521は、特定用途向け集積回路(ASIC)から成る(又は実質的に成る)一方で、スケジューリングエンジン522及び523は、ソフトウェアベースである(例えば、コンピュータプログラムが格納されたコンピュータ読取可能な媒体が関連付けられた汎用プロセッサを用いて実装される)。
図6は、概念的なスケジューリングツリーであり得るスケジューリングツリー300を構成するスケジューリングノードから、異なるセットの動作スケジューリングツリー601〜603がどのように形成されることができるかを例示する。ツリー300などの以前から存在するスケジューリングツリーから複数のスケジューリングツリーが形成され、当該以前から存在するスケジューリングツリーのルートスケジューリングノードに直接接続されていた1つよりも多くのスケジューリングノードを新たなツリーのうちの1つが含む場合、新たなルートスケジューリングノードが当該ツリーについて生成される必要があるであろう。これは、図6に示される。図6に示されるように、バーチャルポートスケジューリングノード610が、ツリー602のルートスケジューリングノードとなるように生成されている。バーチャルポートスケジューリングノード610が必要とされるのは、ツリー602が、ルートスケジューリングノード301に以前は直接接続されていた1つよりも多くのスケジューリングノード(例えば、スケジューリングノード302及び304)を含むためである。ルートスケジューリングノードは、ツリー603について生成される必要はない。このツリーは、ルートスケジューリングノード301に過去に直接接続されていた単一のスケジューリングノードのみを含むためである。また、図6に示される実施形態において、スケジューリングツリー602及び603の双方は、スケジューリングノード621〜623を含み、それによって、以下に議論されるようにロードバランシングの機会を提供する。スケジューリングノード621は、ネットワーク112を宛先とするトラフィックを表し、スケジューリングノード622は、ネットワーク112を宛先とする音声トラフィックを表し、スケジューリングノード623は、ネットワーク112を宛先とする非音声(即ち、「データ」)トラフィックを表す。
図7は、図6に示されるスケジューリングツリー601〜603と共に用いられることができるスケジューリングシステム212の一実施形態の機能図を例示する。図7に示される実施形態において、スケジューリングシステム212は、3つのスケジューリングエンジン721〜723、即ち、各スケジューリングツリー601〜603について1つのスケジューリングエンジンを含む。ツリー601は、iq1及びiq2から成るパケットキューのセットからパケットキューを選択するために最上位のスケジューリングエンジン721によって用いられる;ツリー602は、q1〜q7、q8a及びq9aから成るパケットキューのセットからパケットキューを選択するためにバーチャルポートスケジューリングエンジン722によって用いられる;ツリー403は、q8b及びq9bから成るパケットキューのセットからパケットキューを選択するためにバーチャルポートスケジューリングエンジン723によって用いられる。各スケジューリングエンジン721〜723は、対応するツリーに基づいて選択されるパケットキューから送信キュー214へ又は中間パケットキュー(例えば、iq1、又はiq2)へパケットを絶えず移動させる。より具体的には、最上位のスケジューリングエンジン721は、選択されるパケットキューから送信キュー214へパケットを移動させるように構成される一方で、バーチャルポートスケジューリングエンジン722及び723は、選択されるパケットキューから中間パケットキュー(例えば、それぞれiq1及びiq2)へパケットを移動させるようにそれぞれ構成される。スケジューリングエンジン521〜523と同様に、スケジューリングエンジン721〜723は、並行して且つ互いに独立して動作するように構成され得る。
図7にさらに示されるように、インタフェース191は、ロードバランサ702を含み得る。図6及び図7の実施形態において、PRPU202がネットワーク112を宛先とするパケットを受信すると、PRPU202は、当該パケットをパケットキューに即座に格納する代わりに、当該パケットをロードバランサ702に渡す。当該ロードバランサ702は、トラフィックをパケットキューq8a、q9a、及びパケットキューq8b、q9bの間で均等に配信し得る。より具体的には、図6に示されるように、ネットワーク112を宛先とする音声トラフィックは、パケットキューq8a及びq8b間で均等に配信され、ネットワーク112を宛先とする非音声トラフィックは、パケットキューq9a及びq9b間で均等に配信される。
図8は、一実施形態に係る処理800を例示するフローチャートである。処理800は、ステップ802において開始され得る。当該ステップ802において、パケットキューの第1のセット(例えば、パケットキューq1〜q3)は、第1のスケジューリングエンジン(例えば、スケジューリングエンジン522)に割り当てられる。ステップ802は、スケジューリングツリー(例えば、スケジューリングツリー402)を第1のスケジューリングエンジンに割り当てることによって達成され得る。ここで、スケジューリングツリーは、パケットキューのセット(図4参照)に関連付けられる。ステップ804において、パケットキューの第2のセット(例えば、パケットキューq4〜q7)は、第2のスケジューリングエンジン(例えば、スケジューリングエンジン523)に割り当てられる。ステップ804は、異なるスケジューリングツリー(例えば、スケジューリングツリー403)を第2のスケジューリングエンジンに割り当てることによって達成され得る。ステップ806において、パケットキューの第3のセット(例えば、パケットキューq8)は、第3のスケジューリングエンジン(例えば、スケジューリングエンジン521)に割り当てられる。ステップ808において、第1のパケットフローは、パケットキューの第1のセットに含まれるパケットキューに割り当てられる。例えば、ステップ808において、ネットワークインタフェース191は、PRPU202によって受信される、ネットワーク112を宛先とする全てのパケットが例えばq8に格納されるように構成される。ステップ810において、第2のパケットフローは、パケットキューの第2のセットに含まれるパケットキューに割り当てられる。ステップ812において、第3のパケットフローは、パケットキューの第3のセットに含まれるパケットキューに割り当てられる。幾つかの実施形態(例えば、図6を参照)において、ステップ812は実行されない。ステップ812の後、処理800は、ステップ814、820、824及び828に並行して進み得る。
ステップ814において、PRPU202は、パケットを受信する。ステップ814において、PRPU202は、当該パケットに関連付けられるメタデータも受信し得る。ステップ816において、PRPU202は、当該パケットが属するパケットフローを判定する。上記で議論されたように、PRPU202は、パケットに含まれるデータ(例えば、宛先アドレス)及び/又はメタデータを用いてパケットフローを判定し得る。当該メタデータは、パケットが宛先とする1つ以上のVLANを識別し得る。ステップ818において、PRPU202は、判定されたパケットフローに関連付けられるパケットキューに受信パケットを格納する。例えば、ステップ818において、PRPUは、判定されたパケットフロー(例えば、判定されたVLAN識別子)を用いて、当該判定されたパケットフローに割り当てられる当該パケットキューをデータベース204においてルックアップし得る。PRPU202は、ステップ814〜818を実行し続け得る。
ステップ820において、第1のスケジューリングエンジンは、パケットキューの第1のセットからパケットキューを選択する。例えば、ステップ820において、第1のスケジューリングエンジンは、スケジューリングツリーを走査して、当該ツリーのリーフスケジューリングノードに到達し、それによって、当該リーフスケジューリングノードに関連付けられるパケットキューを選択し得る。ステップ822において、第1のスケジューリングエンジンは、選択されたパケットキューから第1の中間パケットキュー(例えば、iq1)へパケットを移動させる。第1のスケジューリングエンジンは、ステップ820〜822を実行し続け得る。
幾つかの実施形態において、第1のスケジューリングエンジンは、第1の中間パケットキューの状態を周期的にモニタリングし(例えば、パケットキューの長さを周期的に判定し)、及び当該パケットキューの状態に依存して、ステップ802から822を実行することを短期間中止し得る(即ち、第1のスケジューリングエンジンは休止し得る)。例えば、第1の中間パケットキューの長さは所定の閾値よりも大きいと第1のスケジューリングエンジンが判定する場合、第1のスケジューリングエンジンは、当該判定に応じて、幾らかの時間休止し、又はいっぱいではない他の中間キューへ向けられるパケットのみを一時的に選択的にスケジューリングし、それによって、第1の中間パケットキューが大きくなることを回避し得る。この特徴は、以下の利点を提供する:(i)中間キューによって消費されるシステムリソース(例えば、パケットバッファ)の量を抑制すること、(ii)パケットが中間キューにおいて待機している間に被り得る付加的な転送レイテンシを抑制すること、及び(iii)最終的にスケジューリングの振る舞いを判定するバーチャルポートスケジューリングエンジンに関連付けられる規則を確実にすること。
ステップ824において、第2のスケジューリングエンジンは、パケットキューの第2のセットからパケットキューを選択する。例えば、ステップ824において、第2のスケジューリングエンジンは、スケジューリングツリーを走査して、当該ツリーのリーフスケジューリングノードに到達し、それによって、当該リーフスケジューリングノードに関連付けられるパケットキューを選択し得る。ステップ826において、第2のスケジューリングエンジンは、選択されたパケットキューから第2の中間パケットキュー(例えば、iq2)へパケットを移動させる。第2のスケジューリングエンジンは、第1のスケジューリングエンジンとは独立にステップ824〜826を実行し続け得る。第1のスケジューリングエンジンと同様、第2のスケジューリングエンジンは、第2の中間パケットキューの状態を周期的にモニタリングし、及び当該パケットキューの状態に依存して休止するように構成され得る。
ステップ828において、第3のスケジューリングエンジンは、第1及び第2の中間パケットキュー並びにパケットキューの第3のセットを含むパケットキューのセットからパケットキューを選択する。ステップ830において、第2のスケジューリングエンジンは、選択されたパケットキューから送信キュー214へパケットを移動させる。第3のスケジューリングエンジンは、第1のスケジューリングエンジン及び第2のスケジューリングエンジンとは独立にステップ828〜830を実行し続け得る。第1及び第2のスケジューリングエンジンと同様、第3のスケジューリングエンジンは、送信キュー214の状態を周期的にモニタリングし、及び当該パケットキューの状態に依存して休止するように構成され得る。
上記の手法で、複数の独立したスケジューリングエンジンが採用されて、パケットが送信キューに移動され、それによって、ネットワークインタフェース191のスループットが増加される。
図2に戻ると、図2に示すように、ネットワークエレメント108は、構成モジュール208を含み得る。構成モジュール208は、ユーザ(例えば、ネットワーク管理者)がスケジューリングノードを定義し、スケジューリングツリーを生成し、及びスケジューリングノード及び/又はスケジューリングツリーをスケジューリングエンジンに割り当てることを可能にするように構成され得る。例えば、構成モジュールは、ネットワーク管理者がネットワークインタフェース191を構成することを可能にするグラフィカルユーザインタフェース(GUI)又はコマンドラインインタフェース(CLI)を提供し得る。また、構成モジュール208は、ネットワークインタフェース191を自動的に構成する(例えば、予め定義されるスケジューリングツリー(例えば、ツリー300)からスケジューリングツリーのセット(例えば、ツリー401〜403)を生成する)ように構成され得る。幾つかの実施形態において、構成モジュール208は、スケジューリングツリー(例えば、ツリー300)を定義する情報を検査し、第1のスケジューリングエンジンにスケジューリングツリー300の第1のサブツリー(例えば、ツリー401)を割り当て、及び第2のスケジューリングエンジンにスケジューリングツリー300の第2の異なるサブツリー(例えば、ツリー402)を割り当てるように構成される。
具体的な例として、新たなDSLAM901(図9を参照)が通信システム100に追加されたと仮定する。この新たなDSLAM901が追加される場合、ネットワーク管理者は、構成モジュール208を用いて、DSLAM901へのパケットのフロー(例えば、VLAN3を宛先とする全てのパケット)を表すための新たなスケジューリングノードを定義し得る。例えば、図10に示すように、ネットワーク管理者は、3つの新たなスケジューリングノードを定義し得る:(1)VLAN3を宛先とする全てのパケットのフローを表すアグリゲートスケジューリングノード1001、(2)VLAN3への全ての高優先度のパケット(例えば、音声パケット)を表すリーフスケジューリングノード1002、及び(3)VLAN3への全ての低優先度のパケットのフローを表すリーフスケジューリングノード1003。アグリゲートスケジューリングノード1001は1つよりも多い子スケジューリングノードを有するため、スケジューリングノード1001を定義する処理は、スケジューリングエンジンがスケジューリングノード1001に到達し及びどの子スケジューリングノードを選択すべきかを選択しなければならない場合に当該スケジューリングエンジンが用いるであろうスケジューリングアルゴリズム(例えば、ラウンドロビン)にスケジューリングノード1001を関連付けることを含み得る。また、DSLAM901が8Gbpsの最大パケット転送容量を有する場合、ネットワーク管理者は、構成モジュールをさらに用いて、スケジューリングノード1001が8Gbpsの最大帯域幅に関連付けられるように当該スケジューリングノード1001を構成し得る。
スケジューリングノードが定義された後、リーフスケジューリングノードによって表されるパケットフローは、一意のパケットキューに関連付けられる必要がある。構成モジュール208は、リーフスケジューリングノードごとに、当該リーフスケジューリングノードによって定義されるパケットフローをパケットキューにマッピングする情報をパケットフロー対パケットキューデータベース204に追加することによってデータベース204を更新することによって、この機能を実行し得る。
また、スケジューリングノードが定義された後、スケジューリングシステム212によって現在用いられているスケジューリングツリーのうちの1つ以上はリーフスケジューリングノード1002及び1003に適応するように変更される必要があり、並びに/又は、新たなスケジューリングツリーが生成される必要がある。これは、ネットワーク管理者によって手動で、又は構成モジュール208によって自動的に為されることができる。
一例として、図11は、図示のようにパケットキューq9及びq10にそれぞれ関連付けられているリーフスケジューリングノード1002及び1003に適応するように、ツリー402がどのように変更され得るかを示す。図11に示すように、バーチャルポートスケジューリングノード1101は、ツリー402の新たなルートスケジューリングノードとなるように生成されている。ツリー402のルートスケジューリングノードであったスケジューリングノード302及びスケジューリングノード1001は別個のパケットフローを表し、それ故に、スケジューリングノード1001はスケジューリングノード302の子とはなり得ず、その逆もまた同様であるため、バーチャルポートスケジューリングノード1101を生成し、当該ノードをツリー402のルートスケジューリングノードとすることが必要とされた。図示のように、スケジューリングノード302は、ここではスケジューリングノード1101に直接接続され、リーフスケジューリングノード1002及び1003は、ルートスケジューリングノード1101に直接接続されるアグリゲートスケジューリングノード1001を介してルートスケジューリングノード1101に間接的に接続される。図12は、リーフスケジューリングノード1002及び1003がスケジューリングツリーに追加されることができる別の手法を示す。図12に示すように、ツリー401及び402は、それぞれリーフスケジューリングノード1002及び1003に適応するように変更されている。
構成モジュール208がスケジューリングツリーを自動的に再構成する実施形態において、構成モジュール208は、スケジューリングエンジンの帯域幅とスケジューリングノードに関連付けられる最大帯域幅とを考慮するようにプログラミングされ得る。例えば、(a)スケジューリングエンジン522の最大帯域幅は15Gbpsであり、(b)スケジューリングノード302に関連付けられる最大帯域幅は10Gpbであり、且つ(c)スケジューリングノード1001に関連付けられる最大帯域幅も10Gbpsであると仮定すると、構成モジュール208は、図11に示すようにツリー402にリーフスケジューリングノード1002及び1003を追加しないであろう。(i)スケジューリングノード302に関連付けられる最大帯域幅と(ii)スケジューリングノード1001に関連付けられる最大帯域幅との合計がスケジューリングエンジン522の最大帯域幅よりも大きいためである。また、スケジューリングツリーの既存のセットに新たなスケジューリングツリーが追加され得る実施形態において、構成モジュール208は、新たなバーチャルポートスケジューリングエンジンのインスタンスを自動的に生成して、当該新たなスケジューリングツリーに関連付けられるパケットフローをスケジューリングし得る。
ここで図13を参照すると、図13は、本発明の幾つかの実施形態に係るスケジューリングエンジン522のブロック図を例示する。図13に示すように、スケジューリングエンジン522は、以下を備え得る:特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等といった1つ以上のマイクロプロセッサ及び/又は1つ以上の回路を含み得るデータ処理システム1302;ネットワークインタフェース1304;及び1つ以上の不揮発性ストレージデバイス及び/又は1つ以上の揮発性ストレージデバイス(例えば、ランダムアクセスメモリ(RAM))を含み得るデータストレージシステム1306。図示のように、データストレージシステム1306は、スケジューリングツリーの状態情報を記憶するために用いられ得る。データ処理システム1302がマイクロプロセッサを含む実施形態において、コンピュータ読取可能なコード1343は、磁気媒体(例えば、ハードディスク)、光媒体(例えば、DVD)、メモリデバイス(例えば、ランダムアクセスメモリ)等といった、但しこれらに限定されないコンピュータ読取可能な媒体1342に記憶され得る。幾つかの実施形態において、コンピュータ読取可能なコード1343は、プロセッサによって実行される場合、当該コード1343がスケジューリングエンジン522に上述されたステップ(例えば、図8に示されるフローチャートを参照しつつ上述されたステップ)を実行させるように構成される。他の実施形態において、スケジューリングエンジン522は、コード1343の必要無しに、上述されたステップを実行するように構成される。つまり、例えばデータ処理システム1302は1つ以上のASICのみから成ってもよい。それ故に、上述された本発明の特徴は、ハードウェア及び/又はソフトウェアにおいて実装され得る。例えば、特定の実施形態において、上述されたスケジューリングエンジン522の機能的なコンポーネントは、コンピュータ命令1343を実行するデータ処理システム1302によって、任意のコンピュータ命令1343とは独立に動作するデータ処理システム1302によって、又はハードウェア及び/若しくはソフトウェアの任意の適切な組み合わせによって実装され得る。
ここで図14を参照すると、図14は、コンピュータ読取可能なプログラムコード(CRPC:computer readable program code)1343の一実施形態を例示する。図示される実施形態において、CRPC1343は、以下を含む:(1)スケジューリングツリーを定義する情報をスケジューリングツリーデータベース210から取得するための命令のセット1402、(2)スケジューリングツリーを走査することによってパケットキューのセットからパケットキューを周期的に選択するための命令のセット1404、及び(3)選択されるパケットキューから中間パケットキューへパケットを移動させるための命令のセット1406。
本発明の種々の実施形態が上述されたが、それらはほんの一例として提示され、限定ではないことが理解されるべきである。従って、本発明の広さ及び範囲は、上述された例示的な実施形態のうちのいずれによっても限定されるべきではない。さらに、そのあらゆる取り得る変形例における上述された要素の如何なる組み合わせも、本明細書において別段の記載がない限り又はコンテキストによって明らかに矛盾しない限り、本発明によって包含される。
また、上述され及び図面において例示される処理は一連のステップとして示されているが、これは例示のために為されたにすぎない。従って、幾つかのステップが追加され、幾つかのステップは省略され、ステップの順序が並べ替えられ、及び幾つかのステップが並行して実行され得ることが予期される。

Claims (20)

  1. (a)パケットキューの第1のセットからパケットキューを選択し、及び(b)選択される当該パケットキューから中間パケットキューの第1のセットに含まれる中間パケットキューへパケットを移動させるように動作可能であって、スケジューリングノードの第1のセットに対応する情報を用いてパケットキューの前記選択を実行するように構成される第1のスケジューリングエンジンと、
    (a)パケットキューの第2のセットからパケットキューを選択し、及び(b)選択される当該パケットキューから中間パケットキューの第2のセットに含まれる中間パケットキューへパケットを移動させるように動作可能であって、スケジューリングノードの第2のセットに対応する情報を用いてパケットキューの前記選択を実行するように構成される第2のスケジューリングエンジンと、
    (a)前記中間パケットキューの第1のセット及び前記中間パケットキューの第2のセットを含むパケットキューのセットからパケットキューを選択し、及び(b)選択される当該パケットキューから送信キューへパケットを移動させるように動作可能な第3のスケジューリングエンジンと、
    前記送信キューからのパケットを通信リンク上へ送信するように構成されるパケット送信器と、
    を備え、
    前記第1のスケジューリングエンジン及び前記第2のスケジューリングエンジンは、当該第1のスケジューリングエンジンと当該第2のスケジューリングエンジンとの間で状態情報が共有される必要がないように互いに独立してパケットキューを選択するように構成される、
    パケットスケジューリング装置であって、
    前記パケットスケジューリング装置により受信されるパケットは、当該パケットが属するパケットフローに関連付けられるパケットキューに格納される、
    パケットスケジューリング装置
  2. 前記第1のスケジューリングエンジン及び前記第2のスケジューリングエンジンは、ソフトウェアベースのスケジューリングエンジンであり、前記第3のスケジューリングエンジンは、特定用途向け集積回路(ASIC)におけるロジックとして実装される純粋なハードウェアベースのスケジューリングエンジンである、請求項1に記載のパケットスケジューリング装置。
  3. 前記パケットキューの第1のセットに含まれるパケットキューのセットは、第1のパケットフローに関連付けられ、
    前記パケットキューの第2のセットに含まれるパケットキューのセットは、第2のパケットフローに関連付けられ、
    前記パケットスケジューリング装置は、(a)パケットを受信し、(b)当該パケットが属するパケットフローを判定し、及び(c)当該パケットフローに関連付けられるパケットキューに当該パケットを格納するように構成されるパケット受信及び処理ユニット(PRPU)をさらに備える、
    請求項1に記載のパケットスケジューリング装置。
  4. 前記第3のスケジューリングエンジンは、前記中間パケットキューの第1のセット、前記中間パケットキューの第2のセット、及びパケットキューの第3のセットを含むパケットキューのセットからパケットキューを選択するように動作可能であり、
    前記パケットキューの第3のセットに含まれるパケットキューのセットは、第3のパケットフローに関連付けられ、
    (a)前記PRPUがパケットを受信し及び当該パケットは前記第1のパケットフローに属すると判定する場合、前記PRPUは、前記第1のパケットフローに関連付けられる前記パケットキューのセットに含まれる前記パケットキューのうちの1つに当該パケットを格納し、(b)前記PRPUがパケットを受信し及び当該パケットは前記第2のパケットフローに属すると判定する場合、前記PRPUは前記第2のパケットフローに関連付けられる前記パケットキューのセットに含まれる前記パケットキューのうちの1つに当該パケットを格納し、並びに、(c)前記PRPUがパケットを受信し及び当該パケットは前記第3のパケットフローに属すると判定する場合、前記PRPUは前記第3のパケットフローに関連付けられる前記パケットキューのセットに含まれる前記パケットキューのうちの1つに当該パケットを格納する、ように前記PRPUは構成される、
    請求項3に記載のパケットスケジューリング装置。
  5. 前記スケジューリングノードの第1のセットは、スケジューリングツリーの第1のサブツリーからのスケジューリングノードを含み、前記スケジューリングノードの第2のセットは、当該スケジューリングツリーの第2の異なるサブツリーからのスケジューリングノードを含む、請求項1に記載のパケットスケジューリング装置。
  6. 前記スケジューリングツリーを定義する情報を検査し、前記第1のスケジューリングエンジンに前記スケジューリングツリーの第1のサブツリーを割り当て、及び前記第2のスケジューリングエンジンに前記スケジューリングツリーの第2の異なるサブツリーを割り当てるように構成される構成モジュール、
    をさらに備える、請求項5に記載のパケットスケジューリング装置。
  7. 前記スケジューリングノードの第1のセットは、前記スケジューリングノードの第2のセットにも含まれるスケジューリングノードのセットを含む、請求項1に記載のパケットスケジューリング装置。
  8. 前記スケジューリングノードの第1のセットに対応する前記情報は、(a)前記スケジューリングノードの第1のセットに含まれる前記スケジューリングノードのうちの1つに関連付けられる第1の最大データレート情報と、(b)第1のスケジューリングアルゴリズムを識別する情報と、を含み、
    前記スケジューリングノードの第2のセットに対応する前記情報は、(a)前記スケジューリングノードの第2のセットに含まれる前記スケジューリングノードのうちの1つに関連付けられる第2の最大データレート情報と、(b)第2のスケジューリングアルゴリズムを識別する情報と、を含む、
    請求項1に記載のパケットスケジューリング装置。
  9. 前記第1のスケジューリングエンジンは、前記第1の最大データレート情報及び前記第1のスケジューリングアルゴリズムを用いてパケットが除去されるべきパケットキューを選択するように構成され、
    前記第2のスケジューリングエンジンは、前記第2の最大データレート情報及び前記第2のスケジューリングアルゴリズムを用いてパケットが除去されるべきパケットキューを選択するように構成される、
    請求項8に記載のパケットスケジューリング装置。
  10. 前記第1のスケジューリングエンジンは、
    データ処理システムと、
    当該データ処理システムがアクセス可能なコンピュータ読取可能な媒体であって、当該データ処理システムによって実行される場合、当該データ処理システムに(a)前記パケットキューの第1のセットからパケットキューを選択させ、及び(b)選択される当該パケットキューから前記中間パケットキューの第1のセットに含まれる中間パケットキューへパケットを移動させる、コンピュータ読取可能なプログラムコードを記憶するコンピュータ読取可能な媒体と、
    を備える、請求項1に記載のパケットスケジューリング装置。
  11. パケットスケジューリング方法であって、当該方法は、
    パケットキューの第1のセットを第1のスケジューリングエンジンに割り当てることと、
    パケットキューの第2のセットを第2のスケジューリングエンジンに割り当てることと、
    第1のパケットフローを前記パケットキューの第1のセットに含まれるパケットキューのセットに割り当てることと、
    第2のパケットフローを前記パケットキューの第2のセットに含まれるパケットキューのセットに割り当てることと、
    ネットワークエレメントのネットワークインタフェースにおいてパケットを受信することと、
    前記パケットが属するパケットフローを判定することと、
    受信される前記パケットが前記第1のパケットフローに属する場合、受信される前記パケットが前記第1のパケットフローに属すると判定することに応じて、前記第1のパケットフローが割り当てられる前記パケットキューのセットに含まれる前記パケットキューのうちの1つに受信される前記パケットを格納することと、
    受信される前記パケットが前記第2のパケットフローに属する場合、受信される前記パケットが前記第2のパケットフローに属すると判定することに応じて、前記第2のパケットフローが割り当てられる前記パケットキューのセットに含まれる前記パケットキューのうちの1つに受信される前記パケットを格納することと、
    前記第1のスケジューリングエンジンは、(a)前記パケットキューの第1のセットからパケットキューを選択し、及び(b)選択される前記パケットキューから中間パケットキューの第1のセットに含まれる中間パケットキューへパケットを移動させることと、
    前記第2のスケジューリングエンジンは、(a)前記パケットキューの第2のセットからパケットキューを選択し、及び(b)選択される前記パケットキューから中間パケットキューの第2のセットに含まれる中間パケットキューへパケットを移動させることと、
    第3のスケジューリングエンジンは、(a)前記中間パケットキューの第1のセット及び前記中間パケットキューの第2のセットを含むパケットキューのセットからパケットキューを選択し、及び(b)選択される前記パケットキューから送信キューへパケットを移動させることと、
    前記ネットワークインタフェースのパケット送信器は、前記送信キューからのパケットを通信リンク上へ送信することと、
    を含む、方法。
  12. 前記第1のスケジューリングエンジン及び前記第2のスケジューリングエンジンは、当該第1のスケジューリングエンジンと当該第2のスケジューリングエンジンとの間で状態情報が共有される必要がないように互いに独立してパケットキューを選択するように構成される、請求項11に記載の方法。
  13. 前記第1のスケジューリングエンジンは、階層的に配列されるスケジューリングノードの第1のセットを含む第1のスケジューリングツリーに対応する情報を用いてパケットキューの前記選択を実行し、
    前記第2のスケジューリングエンジンは、階層的に配列されるスケジューリングノードの第2のセットを含む第2のスケジューリングツリーに対応する情報を用いてパケットキューの前記選択を実行する、
    請求項11に記載の方法。
  14. 前記スケジューリングノードの第1のセットは、スケジューリングツリーの第1のサブツリーからのスケジューリングノードを含み、前記スケジューリングノードの第2のセットは、当該スケジューリングツリーの第2の異なるサブツリーからのスケジューリングノードを含む、請求項13に記載の方法。
  15. 前記スケジューリングノードの第1のセットに対応する前記情報は、(a)前記スケジューリングノードの第1のセットに含まれる前記スケジューリングノードのうちの1つに関連付けられる第1の最大データレート情報と、(b)第1のスケジューリングアルゴリズムと、を含み、
    前記スケジューリングノードの第2のセットに対応する前記情報は、(a)前記スケジューリングノードの第2のセットに含まれる前記スケジューリングノードのうちの1つに関連付けられる第2の最大データレート情報と、(b)第2のスケジューリングアルゴリズムと、を含む、
    請求項13に記載の方法。
  16. 前記第1のスケジューリングエンジンは、前記第1の最大データレート情報及び前記第1のスケジューリングアルゴリズムを用いてパケットが除去されるべきパケットキューを選択するように構成され、
    前記第2のスケジューリングエンジンは、前記第2の最大データレート情報及び前記第2のスケジューリングアルゴリズムを用いてパケットが除去されるべきパケットキューを選択するように構成される、
    請求項15に記載の方法。
  17. 前記第1のスケジューリングエンジン及び前記第2のスケジューリングエンジンは、ソフトウェアベースのスケジューリングエンジンであり、前記第3のスケジューリングエンジンは、純粋なハードウェアベースのスケジューリングエンジンである、請求項11に記載の方法。
  18. 前記第1のスケジューリングエンジン及び前記第2のスケジューリングエンジンは、アセンブリコードを用いて実装され、前記第3のスケジューリングエンジンは、特定用途向け集積回路(ASIC)におけるロジックとして実装される、請求項17に記載の方法。
  19. 前記第3のスケジューリングエンジンは、前記中間パケットキューの第1のセット、前記中間パケットキューの第2のセット、及びパケットキューの第3のセットを含むパケットキューのセットからパケットキューを選択し、
    第3のパケットフローが、前記パケットキューの第3のセットに含まれるパケットキューのセットに割り当てられ、
    前記方法は、受信される前記パケットが前記第3のパケットフローに属すると判定することに応じて、前記第3のパケットフローが割り当てられる前記パケットキューのセットに含まれる前記パケットキューのうちの1つに受信される前記パケットを格納すること、をさらに含む、
    請求項11に記載の方法。
  20. (i)前記パケットキューの第1のセットに含まれるパケットキューのセットと、(ii)前記パケットキューの第2のセットに含まれるパケットキューのセットと、に第3のパケットフローを割り当てることと、
    受信される前記パケットが前記第3のパケットフローに属する場合、ロードバランサを用いて、前記第3のパケットフローが割り当てられる前記パケットキューのうちの1つに受信される前記パケットを格納することと、
    をさらに含む、請求項11に記載の方法。
JP2014503255A 2011-04-05 2012-04-03 パケットスケジューリング方法及び装置 Active JP5932020B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/080,574 US8705363B2 (en) 2011-04-05 2011-04-05 Packet scheduling method and apparatus
US13/080,574 2011-04-05
PCT/IB2012/051634 WO2012137136A1 (en) 2011-04-05 2012-04-03 Packet scheduling method and apparatus

Publications (2)

Publication Number Publication Date
JP2014513466A JP2014513466A (ja) 2014-05-29
JP5932020B2 true JP5932020B2 (ja) 2016-06-08

Family

ID=46018022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014503255A Active JP5932020B2 (ja) 2011-04-05 2012-04-03 パケットスケジューリング方法及び装置

Country Status (10)

Country Link
US (1) US8705363B2 (ja)
EP (1) EP2695334B1 (ja)
JP (1) JP5932020B2 (ja)
KR (1) KR101978528B1 (ja)
CN (1) CN103444141B (ja)
AU (1) AU2012241044A1 (ja)
BR (1) BR112013023451B1 (ja)
CA (1) CA2832448C (ja)
IL (1) IL228114A0 (ja)
WO (1) WO2012137136A1 (ja)

Families Citing this family (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
US8923293B2 (en) 2009-10-21 2014-12-30 Palo Alto Research Center Incorporated Adaptive multi-interface use for content networking
CN104704797B (zh) 2012-08-10 2018-08-10 纽昂斯通讯公司 用于电子设备的虚拟代理通信
US9280546B2 (en) 2012-10-31 2016-03-08 Palo Alto Research Center Incorporated System and method for accessing digital content using a location-independent name
US9400800B2 (en) 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
US9679300B2 (en) * 2012-12-11 2017-06-13 Nuance Communications, Inc. Systems and methods for virtual agent recommendation for multiple persons
US10430839B2 (en) 2012-12-12 2019-10-01 Cisco Technology, Inc. Distributed advertisement insertion in content-centric networks
US9978025B2 (en) 2013-03-20 2018-05-22 Cisco Technology, Inc. Ordered-element naming for name-based packet forwarding
US9935791B2 (en) 2013-05-20 2018-04-03 Cisco Technology, Inc. Method and system for name resolution across heterogeneous architectures
US9444722B2 (en) 2013-08-01 2016-09-13 Palo Alto Research Center Incorporated Method and apparatus for configuring routing paths in a custodian-based routing architecture
US20150109997A1 (en) * 2013-10-21 2015-04-23 Alexander Sirotkin Apparatus, system and method of interfacing between a cellular manager and a wlan access device
US9407549B2 (en) 2013-10-29 2016-08-02 Palo Alto Research Center Incorporated System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
US9276840B2 (en) 2013-10-30 2016-03-01 Palo Alto Research Center Incorporated Interest messages with a payload for a named data network
US9401864B2 (en) 2013-10-31 2016-07-26 Palo Alto Research Center Incorporated Express header for packets with hierarchically structured variable-length identifiers
US10129365B2 (en) 2013-11-13 2018-11-13 Cisco Technology, Inc. Method and apparatus for pre-fetching remote content based on static and dynamic recommendations
US9311377B2 (en) 2013-11-13 2016-04-12 Palo Alto Research Center Incorporated Method and apparatus for performing server handoff in a name-based content distribution system
US10101801B2 (en) 2013-11-13 2018-10-16 Cisco Technology, Inc. Method and apparatus for prefetching content in a data stream
US10089655B2 (en) 2013-11-27 2018-10-02 Cisco Technology, Inc. Method and apparatus for scalable data broadcasting
US9503358B2 (en) 2013-12-05 2016-11-22 Palo Alto Research Center Incorporated Distance-based routing in an information-centric network
US20170017501A1 (en) 2013-12-16 2017-01-19 Nuance Communications, Inc. Systems and methods for providing a virtual assistant
JP6480939B2 (ja) * 2013-12-19 2019-03-13 トムソン ライセンシングThomson Licensing IP QoSメカニズムの自動選択のための方法、夫々のCPEデバイス及びコンピュータ可読記憶媒体
US9379979B2 (en) 2014-01-14 2016-06-28 Palo Alto Research Center Incorporated Method and apparatus for establishing a virtual interface for a set of mutual-listener devices
US10172068B2 (en) 2014-01-22 2019-01-01 Cisco Technology, Inc. Service-oriented routing in software-defined MANETs
US10098051B2 (en) 2014-01-22 2018-10-09 Cisco Technology, Inc. Gateways and routing in software-defined manets
US9374304B2 (en) 2014-01-24 2016-06-21 Palo Alto Research Center Incorporated End-to end route tracing over a named-data network
US9954678B2 (en) 2014-02-06 2018-04-24 Cisco Technology, Inc. Content-based transport security
US9678998B2 (en) 2014-02-28 2017-06-13 Cisco Technology, Inc. Content name resolution for information centric networking
US10089651B2 (en) 2014-03-03 2018-10-02 Cisco Technology, Inc. Method and apparatus for streaming advertisements in a scalable data broadcasting system
US9836540B2 (en) 2014-03-04 2017-12-05 Cisco Technology, Inc. System and method for direct storage access in a content-centric network
US9473405B2 (en) 2014-03-10 2016-10-18 Palo Alto Research Center Incorporated Concurrent hashes and sub-hashes on data streams
US9391896B2 (en) * 2014-03-10 2016-07-12 Palo Alto Research Center Incorporated System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
US9626413B2 (en) 2014-03-10 2017-04-18 Cisco Systems, Inc. System and method for ranking content popularity in a content-centric network
US10218639B2 (en) * 2014-03-14 2019-02-26 Microsoft Technology Licensing, Llc Computing long-term schedules for data transfers over a wide area network
JP5970015B2 (ja) * 2014-03-19 2016-08-17 アンリツネットワークス株式会社 パケット中継装置
US9407432B2 (en) 2014-03-19 2016-08-02 Palo Alto Research Center Incorporated System and method for efficient and secure distribution of digital content
US9916601B2 (en) 2014-03-21 2018-03-13 Cisco Technology, Inc. Marketplace for presenting advertisements in a scalable data broadcasting system
US9363179B2 (en) 2014-03-26 2016-06-07 Palo Alto Research Center Incorporated Multi-publisher routing protocol for named data networks
US9363086B2 (en) 2014-03-31 2016-06-07 Palo Alto Research Center Incorporated Aggregate signing of data in content centric networking
CN103929374A (zh) * 2014-03-31 2014-07-16 中国人民解放军91655部队 一种基于业务类型的多级队列调度方法
US9716622B2 (en) 2014-04-01 2017-07-25 Cisco Technology, Inc. System and method for dynamic name configuration in content-centric networks
US10075521B2 (en) 2014-04-07 2018-09-11 Cisco Technology, Inc. Collection synchronization using equality matched network names
US9473576B2 (en) 2014-04-07 2016-10-18 Palo Alto Research Center Incorporated Service discovery using collection synchronization with exact names
US9390289B2 (en) 2014-04-07 2016-07-12 Palo Alto Research Center Incorporated Secure collection synchronization using matched network names
US9451032B2 (en) 2014-04-10 2016-09-20 Palo Alto Research Center Incorporated System and method for simple service discovery in content-centric networks
US9992281B2 (en) 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
US9609014B2 (en) 2014-05-22 2017-03-28 Cisco Systems, Inc. Method and apparatus for preventing insertion of malicious content at a named data network router
US9455835B2 (en) 2014-05-23 2016-09-27 Palo Alto Research Center Incorporated System and method for circular link resolution with hash-based names in content-centric networks
US9276751B2 (en) 2014-05-28 2016-03-01 Palo Alto Research Center Incorporated System and method for circular link resolution with computable hash-based names in content-centric networks
US9516144B2 (en) 2014-06-19 2016-12-06 Palo Alto Research Center Incorporated Cut-through forwarding of CCNx message fragments with IP encapsulation
US9537719B2 (en) 2014-06-19 2017-01-03 Palo Alto Research Center Incorporated Method and apparatus for deploying a minimal-cost CCN topology
US9426113B2 (en) 2014-06-30 2016-08-23 Palo Alto Research Center Incorporated System and method for managing devices over a content centric network
US9699198B2 (en) 2014-07-07 2017-07-04 Cisco Technology, Inc. System and method for parallel secure content bootstrapping in content-centric networks
US9621354B2 (en) 2014-07-17 2017-04-11 Cisco Systems, Inc. Reconstructable content objects
US9959156B2 (en) 2014-07-17 2018-05-01 Cisco Technology, Inc. Interest return control message
US9590887B2 (en) 2014-07-18 2017-03-07 Cisco Systems, Inc. Method and system for keeping interest alive in a content centric network
US9729616B2 (en) 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9535968B2 (en) 2014-07-21 2017-01-03 Palo Alto Research Center Incorporated System for distributing nameless objects using self-certifying names
US9882964B2 (en) 2014-08-08 2018-01-30 Cisco Technology, Inc. Explicit strategy feedback in name-based forwarding
US9503365B2 (en) 2014-08-11 2016-11-22 Palo Alto Research Center Incorporated Reputation-based instruction processing over an information centric network
US9729662B2 (en) 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US9391777B2 (en) 2014-08-15 2016-07-12 Palo Alto Research Center Incorporated System and method for performing key resolution over a content centric network
US9467492B2 (en) 2014-08-19 2016-10-11 Palo Alto Research Center Incorporated System and method for reconstructable all-in-one content stream
US9800637B2 (en) 2014-08-19 2017-10-24 Cisco Technology, Inc. System and method for all-in-one content stream in content-centric networks
US9497282B2 (en) 2014-08-27 2016-11-15 Palo Alto Research Center Incorporated Network coding for content-centric network
US10204013B2 (en) 2014-09-03 2019-02-12 Cisco Technology, Inc. System and method for maintaining a distributed and fault-tolerant state over an information centric network
US9553812B2 (en) 2014-09-09 2017-01-24 Palo Alto Research Center Incorporated Interest keep alives at intermediate routers in a CCN
US10069933B2 (en) 2014-10-23 2018-09-04 Cisco Technology, Inc. System and method for creating virtual interfaces based on network characteristics
US9917882B2 (en) 2014-11-30 2018-03-13 Sonicwall Inc. Transparent deferred spooling store and forward based on standard network system and client interface
US9536059B2 (en) 2014-12-15 2017-01-03 Palo Alto Research Center Incorporated Method and system for verifying renamed content using manifests in a content centric network
US9590948B2 (en) 2014-12-15 2017-03-07 Cisco Systems, Inc. CCN routing using hardware-assisted hash tables
US10237189B2 (en) 2014-12-16 2019-03-19 Cisco Technology, Inc. System and method for distance-based interest forwarding
US9846881B2 (en) 2014-12-19 2017-12-19 Palo Alto Research Center Incorporated Frugal user engagement help systems
US9473475B2 (en) 2014-12-22 2016-10-18 Palo Alto Research Center Incorporated Low-cost authenticated signing delegation in content centric networking
US10003520B2 (en) 2014-12-22 2018-06-19 Cisco Technology, Inc. System and method for efficient name-based content routing using link-state information in information-centric networks
US9660825B2 (en) 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
US10313486B2 (en) * 2015-01-07 2019-06-04 Sonicwall Inc. Optimizing transfer of fragmented packetized data
US9954795B2 (en) 2015-01-12 2018-04-24 Cisco Technology, Inc. Resource allocation using CCN manifests
US9916457B2 (en) 2015-01-12 2018-03-13 Cisco Technology, Inc. Decoupled name security binding for CCN objects
US9602596B2 (en) 2015-01-12 2017-03-21 Cisco Systems, Inc. Peer-to-peer sharing in a content centric network
US9832291B2 (en) 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US9946743B2 (en) 2015-01-12 2018-04-17 Cisco Technology, Inc. Order encoded manifests in a content centric network
US9462006B2 (en) 2015-01-21 2016-10-04 Palo Alto Research Center Incorporated Network-layer application-specific trust model
US9552493B2 (en) 2015-02-03 2017-01-24 Palo Alto Research Center Incorporated Access control framework for information centric networking
US10333840B2 (en) 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
US10075401B2 (en) 2015-03-18 2018-09-11 Cisco Technology, Inc. Pending interest table behavior
US9813526B2 (en) 2015-05-26 2017-11-07 Sonicwall Inc. Reducing transmission pathway lengths within a distributed network
US10116605B2 (en) 2015-06-22 2018-10-30 Cisco Technology, Inc. Transport stack name scheme and identity management
US10075402B2 (en) 2015-06-24 2018-09-11 Cisco Technology, Inc. Flexible command and control in content centric networks
US10701038B2 (en) 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
US9986034B2 (en) 2015-08-03 2018-05-29 Cisco Technology, Inc. Transferring state in content centric network stacks
US10158735B2 (en) 2015-08-07 2018-12-18 Sonicwall Inc. Read-ahead on signed connections with unsigning, inline, transparent proxies
US10610144B2 (en) 2015-08-19 2020-04-07 Palo Alto Research Center Incorporated Interactive remote patient monitoring and condition management intervention system
US9832123B2 (en) 2015-09-11 2017-11-28 Cisco Technology, Inc. Network named fragments in a content centric network
US10355999B2 (en) 2015-09-23 2019-07-16 Cisco Technology, Inc. Flow control with network named fragments
US9977809B2 (en) 2015-09-24 2018-05-22 Cisco Technology, Inc. Information and data framework in a content centric network
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US10454820B2 (en) 2015-09-29 2019-10-22 Cisco Technology, Inc. System and method for stateless information-centric networking
US10263965B2 (en) 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US9794238B2 (en) 2015-10-29 2017-10-17 Cisco Technology, Inc. System for key exchange in a content centric network
US9807205B2 (en) 2015-11-02 2017-10-31 Cisco Technology, Inc. Header compression for CCN messages using dictionary
US10009446B2 (en) 2015-11-02 2018-06-26 Cisco Technology, Inc. Header compression for CCN messages using dictionary learning
US10021222B2 (en) 2015-11-04 2018-07-10 Cisco Technology, Inc. Bit-aligned header compression for CCN messages using dictionary
US10097521B2 (en) 2015-11-20 2018-10-09 Cisco Technology, Inc. Transparent encryption in a content centric network
US9912776B2 (en) 2015-12-02 2018-03-06 Cisco Technology, Inc. Explicit content deletion commands in a content centric network
US10097346B2 (en) 2015-12-09 2018-10-09 Cisco Technology, Inc. Key catalogs in a content centric network
US10078062B2 (en) 2015-12-15 2018-09-18 Palo Alto Research Center Incorporated Device health estimation by combining contextual information with sensor data
US10547559B2 (en) * 2015-12-26 2020-01-28 Intel Corporation Application-level network queueing
US10257271B2 (en) 2016-01-11 2019-04-09 Cisco Technology, Inc. Chandra-Toueg consensus in a content centric network
US9949301B2 (en) 2016-01-20 2018-04-17 Palo Alto Research Center Incorporated Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks
US10305864B2 (en) 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
US10043016B2 (en) 2016-02-29 2018-08-07 Cisco Technology, Inc. Method and system for name encryption agreement in a content centric network
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
US10003507B2 (en) 2016-03-04 2018-06-19 Cisco Technology, Inc. Transport session state protocol
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US10038633B2 (en) 2016-03-04 2018-07-31 Cisco Technology, Inc. Protocol to query for historical network information in a content centric network
US9832116B2 (en) 2016-03-14 2017-11-28 Cisco Technology, Inc. Adjusting entries in a forwarding information base in a content centric network
US10212196B2 (en) 2016-03-16 2019-02-19 Cisco Technology, Inc. Interface discovery and authentication in a name-based network
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US11436656B2 (en) 2016-03-18 2022-09-06 Palo Alto Research Center Incorporated System and method for a real-time egocentric collaborative filter on large datasets
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10033639B2 (en) 2016-03-25 2018-07-24 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
US9930146B2 (en) 2016-04-04 2018-03-27 Cisco Technology, Inc. System and method for compressing content centric networking messages
US10425503B2 (en) 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
US10027578B2 (en) 2016-04-11 2018-07-17 Cisco Technology, Inc. Method and system for routable prefix queries in a content centric network
US10404450B2 (en) 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
US10320675B2 (en) 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network
US10547589B2 (en) 2016-05-09 2020-01-28 Cisco Technology, Inc. System for implementing a small computer systems interface protocol over a content centric network
US10084764B2 (en) 2016-05-13 2018-09-25 Cisco Technology, Inc. System for a secure encryption proxy in a content centric network
US10063414B2 (en) 2016-05-13 2018-08-28 Cisco Technology, Inc. Updating a transport stack in a content centric network
CN107016008B (zh) * 2016-06-06 2020-06-09 阿里巴巴集团控股有限公司 信息处理方法和装置及动态信息的显示方法和装置
US10103989B2 (en) 2016-06-13 2018-10-16 Cisco Technology, Inc. Content object return messages in a content centric network
US10305865B2 (en) 2016-06-21 2019-05-28 Cisco Technology, Inc. Permutation-based content encryption with manifests in a content centric network
US10148572B2 (en) 2016-06-27 2018-12-04 Cisco Technology, Inc. Method and system for interest groups in a content centric network
US10009266B2 (en) 2016-07-05 2018-06-26 Cisco Technology, Inc. Method and system for reference counted pending interest tables in a content centric network
US9992097B2 (en) 2016-07-11 2018-06-05 Cisco Technology, Inc. System and method for piggybacking routing information in interests in a content centric network
US10122624B2 (en) 2016-07-25 2018-11-06 Cisco Technology, Inc. System and method for ephemeral entries in a forwarding information base in a content centric network
US10069729B2 (en) 2016-08-08 2018-09-04 Cisco Technology, Inc. System and method for throttling traffic based on a forwarding information base in a content centric network
US10956412B2 (en) 2016-08-09 2021-03-23 Cisco Technology, Inc. Method and system for conjunctive normal form attribute matching in a content centric network
US10033642B2 (en) 2016-09-19 2018-07-24 Cisco Technology, Inc. System and method for making optimal routing decisions based on device-specific parameters in a content centric network
US10212248B2 (en) 2016-10-03 2019-02-19 Cisco Technology, Inc. Cache management on high availability routers in a content centric network
US10447805B2 (en) 2016-10-10 2019-10-15 Cisco Technology, Inc. Distributed consensus in a content centric network
US10135948B2 (en) 2016-10-31 2018-11-20 Cisco Technology, Inc. System and method for process migration in a content centric network
US10243851B2 (en) 2016-11-21 2019-03-26 Cisco Technology, Inc. System and method for forwarder connection information in a content centric network
CN115237573B (zh) * 2022-08-05 2023-08-18 中国铁塔股份有限公司 数据处理方法、装置、电子设备和可读存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6891834B1 (en) * 1999-09-09 2005-05-10 Avici Systems Apparatus and method for packet scheduling
US6834053B1 (en) 2000-10-27 2004-12-21 Nortel Networks Limited Distributed traffic scheduler
JP2002252628A (ja) * 2001-02-23 2002-09-06 Nippon Telegr & Teleph Corp <Ntt> パケット出力調停装置
US6987774B1 (en) * 2001-06-20 2006-01-17 Redback Networks Inc. Method and apparatus for traffic scheduling
US7830889B1 (en) 2003-02-06 2010-11-09 Juniper Networks, Inc. Systems for scheduling the transmission of data in a network device
US20050047425A1 (en) * 2003-09-03 2005-03-03 Yonghe Liu Hierarchical scheduling for communications systems
US7685281B1 (en) * 2004-02-13 2010-03-23 Habanero Holdings, Inc. Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers
US20070070895A1 (en) * 2005-09-26 2007-03-29 Paolo Narvaez Scaleable channel scheduler system and method
US8081572B1 (en) 2006-01-11 2011-12-20 Juniper Networks, Inc. Hierarchical packet scheduling
US20070242675A1 (en) * 2006-04-13 2007-10-18 David Romrell Dual scheduling for efficient network traffic management
US8194690B1 (en) * 2006-05-24 2012-06-05 Tilera Corporation Packet processing in a parallel processing environment
US7969884B1 (en) * 2008-05-09 2011-06-28 Nortel Networks Limited Method and system for weight and rate scheduling
JP2010153950A (ja) * 2008-12-24 2010-07-08 Nec Corp 優先制御装置、パケット通信システム及びそれに用いる優先制御方法並びにそのプログラム
JP5365415B2 (ja) * 2009-08-25 2013-12-11 富士通株式会社 パケット中継装置および輻輳制御方法
US8462802B2 (en) * 2010-09-13 2013-06-11 Juniper Networks, Inc. Hybrid weighted round robin (WRR) traffic scheduling
US8437355B1 (en) * 2010-11-04 2013-05-07 Adtran, Inc. Systems and methods for scheduling business and residential services in optical networks

Also Published As

Publication number Publication date
CN103444141A (zh) 2013-12-11
CN103444141B (zh) 2016-09-14
IL228114A0 (en) 2013-09-30
CA2832448C (en) 2019-05-14
BR112013023451A2 (pt) 2016-12-06
CA2832448A1 (en) 2012-10-11
BR112013023451B1 (pt) 2022-04-12
AU2012241044A1 (en) 2013-10-17
KR101978528B1 (ko) 2019-05-14
EP2695334B1 (en) 2019-08-07
WO2012137136A1 (en) 2012-10-11
US20120257500A1 (en) 2012-10-11
JP2014513466A (ja) 2014-05-29
US8705363B2 (en) 2014-04-22
EP2695334A1 (en) 2014-02-12
KR20140025437A (ko) 2014-03-04

Similar Documents

Publication Publication Date Title
JP5932020B2 (ja) パケットスケジューリング方法及び装置
US11221893B2 (en) Asynchronous object manager in a network routing environment
US11588733B2 (en) Slice-based routing
US9614755B2 (en) Combined hardware/software forwarding mechanism and method
US9270598B1 (en) Congestion control using congestion prefix information in a named data networking environment
US8230110B2 (en) Work-conserving packet scheduling in network devices
US8040901B1 (en) Packet queueing within ring networks
JP5931908B2 (ja) ルータにおけるトラフィックを管理するための技法
KR101317969B1 (ko) 링크 애그리게이션 방법 및 노드
US9197544B2 (en) Comprehensive multipath routing for congestion and quality-of-service in communication networks
Govindarajan et al. A literature review on software-defined networking (SDN) research topics, challenges and solutions
RU2675212C1 (ru) Адаптивная балансировка нагрузки при обработке пакетов
Szymanski Low latency energy efficient communications in global-scale cloud computing systems
Haldar et al. QOs issues in OpenFlOw/sdn
Shim Static and dynamic virtual channel allocation for high performance, in-order communication in on-chip networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160323

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160427

R150 Certificate of patent or registration of utility model

Ref document number: 5932020

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250