本願は、データ送信技術分野に関し、特に、クライアントサービス送信方法および装置に関する。
パケットサービスシステムでは、既存の送信ノードが、ベストエフォート型配信メカニズムに基づいてクライアントサービスを送信する。例えば、クライアントデバイスAが、送信ノードを用いてクライアントサービスをクライアントデバイスへ送信する場合において、送信ノードの出力ラインインタフェース帯域幅が毎秒100Gbp(ギガビット)であるときは、送信ノードがクライアントサービスを出力するレート(すなわち、クライアントサービスの出力レート)は、100Gbpに可能な限り近くてもよい。このことに基づいて、送信ノードに1秒で入力されるクライアントサービスのサイズが10M(メガビット)である場合、送信ノードにおけるクライアントサービスの送信時間は理論上、10M/100Gbpであり得、送信ノードに1秒で入力されるクライアントサービスのサイズが100Mである場合、送信ノードにおけるクライアントサービスの送信時間は理論上、100M/100Gbp等であり得る。
この場合、複数のクライアントデバイスが複数のクライアントサービスを1つの送信ノードへ同時に送信する場合、各クライアントデバイスが送信するクライアントサービスについて、送信ノードは、ベストエフォート型配信メカニズムを用いて、クライアントサービスを送信する。結果的に、輻輳が必ず発生する。
本願の実施形態は、出力ラインインタフェースでの輻輳の発生確率を低減させ、さらには輻輳の発生を回避すべく、クライアントサービス送信方法および装置を提供する。
前述の目的を実現するために、本願は、以下の技術的解決手段を提供する。
第1の態様によれば、本願は、クライアントサービス送信方法を提供する。方法は、クライアントサービスを受信する段階であって、クライアントサービスは、複数のデータブロックを含み、クライアントサービスは、カウンタに対応し、カウンタは、クライアントサービスの出力レートを制御するために用いられる、段階と、複数のデータブロックを複数の送信期間において送信する段階であって、カウンタのカウント値が各送信期間における予め設定された閾値に達した場合、複数のデータブロックの少なくとも1つのデータブロックが送信される、段階とを備える。方法は、送信ノードにより実行され得る。技術的解決手段において、カウンタは、送信ノードにおいて設定され、出力されるデータブロックの数は、各送信期間におけるカウンタのカウント値に基づいて制御される。このように、データブロックの出力レートが制御され得る。すなわち、クライアントサービスの出力レートが制御される。送信ノードに入力される各クライアントサービスの出力レートが技術的解決手段に従って制御される場合、このことは、出力ラインインタフェースでの輻輳の発生確率を低減し、さらには、輻輳の発生を回避するのに役立つ。
可能な設計において、カウンタのカウント値が各送信期間における予め設定された閾値に達する前に、方法は、カウンタの各カウント期間において、カウンタのカウント値をCだけ上げる段階をさらに備え得る。Cは、予め設定された閾値以下である。Cの物理的意味は、本願において限定されない。例えば、Cは、カウンタのカウント回数の数であり得る。この場合、Cは、1と等しい。別の例については、Cは、クライアントサービスの帯域幅に従って決定され得、予め設定された閾値は、出力ラインインタフェース帯域幅に従って決定され得る。当然ながら、このことは、具体的な実装において限定されない。
可能な設計において、制御を容易にするために、本願では、単位帯域幅の概念が導入される。このことに基づいて、Cは、クライアントサービスの帯域幅と単位帯域幅との比であり得、予め設定された閾値は、出力ラインインタフェース帯域幅と単位帯域幅の調整値との比であり得る。単位帯域幅の調整値は、単位帯域幅以上である。
可能な設計において、カウンタは、各送信期間において初期値からカウントを開始する。任意選択的に、カウンタの初期値は、異なる送信期間において同じであり得る。例えば、初期値は0である。あるいは、カウンタの初期値は、異なる送信期間において異なり得る。例えば、(i+1)番目の送信期間において、前記カウンタの初期値は、i番目の送信期間の終了時の前記カウンタのカウント値から前記予め設定された閾値を減算することにより取得される値であり、iは、1以上の整数である。当然ながら、このことは、具体的な実装において限定されない。
可能な設計において、カウンタのカウント値が各送信期間における予め設定された閾値に達した場合、複数のデータブロックの少なくとも1つのデータブロックが送信されることは、カウンタのカウント値が各送信期間における予め設定された閾値に達した場合において、クライアントサービスがキャッシュされているときは、複数のデータブロックの少なくとも1つのデータブロックが送信されることを含み得る。
可能な設計において、方法は、カウンタのカウント値が各送信期間における予め設定された閾値に達した場合において、クライアントサービスがキャッシュされていないときは、カウンタのカウントを停止する段階をさらに備え得る。このことに基づいて、方法は、クライアントサービスがキャッシュされた場合、複数のデータブロックの少なくとも1つのデータブロックを送信し、カウンタが初期値からカウントを開始する段階、または、クライアントサービスが受信された後に、少なくとも1つのデータブロックをキャッシュすることなく、少なくとも1つのデータブロックを直接送信する段階をさらに備え得る。
可能な設計において、クライアントサービスが受信された後に、方法は、クライアントサービスをキャッシュキューに格納する段階と、カウンタのカウント値が予め設定された閾値に達した場合、キャッシュキューから少なくとも1つのデータブロックを取得する段階とをさらに備え得る。各クライアントサービスは、1つのキャッシュキューに対応し得る。本願において、クライアントサービスがキャッシュされ、次に、少なくとも1つのデータブロックが、キャッシュキューから取得され、送信される。これにより、データブロックの出力レートを制御するプロセスにおけるパケット損失率が低減され得る。
可能な設計において、複数のデータブロックの各データブロックは、固定長を有する。従って、このことには、単純な実装という有益な効果がある。当然ながら、具体的な実装では、異なるデータブロックの長さは、異なり得る。
可能な設計において、複数のデータブロックの少なくとも1つのデータブロックが送信されることは、複数のデータブロックの少なくとも1つのデータブロックをクライアントサービスの優先順位に従って送信することを含み得る。より低い予測送信遅延は、より高い優先順位を示す。実装において、異なるクライアントサービスが出力される場合、異なるクライアントサービスの送信遅延要件をより良く満たすべく予測送信遅延が考慮されることにより、ユーザエクスペリエンスが改善される。
第2の態様によれば、本願は、クライアントサービス送信装置を提供する。装置は、前述の方法の実施形態における各段階を実装する機能を有する。当該機能は、ハードウェアを用いて実装されても、対応するソフトウェアを実行することによりハードウェアにより実装されてもよい。ハードウェアまたはソフトウェアは、前述の機能に対応する1または複数のモジュールを含む。
可能な設計において、装置は、プロセッサと、メモリと、バスと、通信インタフェースとを備え得る。メモリは、コンピュータ実行可能命令を格納するように構成される。プロセッサ、メモリおよび通信インタフェースは、バスを用いて接続される。装置が動作した場合、プロセッサは、メモリに格納されたコンピュータ実行可能命令を実行することにより、装置が、第1の態様による任意のクライアントサービス送信方法を実行するようにする。
第3の態様によれば、本願は、コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、前述の装置により用いられるコンピュータプログラム命令を格納するように構成される。コンピュータプログラム命令がコンピュータ上で実行された場合、コンピュータは、第1の態様による任意のクライアントサービス送信方法を実行し得る。
第4の態様によれば、本願は、コンピュータプログラム製品を提供する。コンピュータプログラム製品は、命令を含む。命令がコンピュータ上で実行された場合、コンピュータは、第1の態様による任意のクライアントサービス送信方法を実行し得る。
上記で提供される装置、コンピュータ可読媒体またはコンピュータプログラム製品のいずれか1つの技術的効果については、対応する方法によりもたらされる技術的効果を参照されたい。詳細は、ここでは改めて説明されない。
本願の実施形態による技術的解決手段に適用可能なシステムアーキテクチャの概略図である。
本願の実施形態によるクライアントサービス送信装置の概略構造図である。
本願の実施形態によるアド/ドロップノードの概略構造図である。
本願の実施形態による別のアド/ドロップノードの概略構造図である。
本願の実施形態による送信ノードの概略構造図である。
本願の実施形態によるライン処理ユニットの概略構造図である。
本願の実施形態による別の送信ノードの概略構造図である。
本願の実施形態による技術的解決手段に適用可能な別のシステムアーキテクチャの概略図である。
本願の実施形態によるクライアントサービス送信方法の概略相互作用図である。
本願の実施形態によるデータブロックの概略構造図である。
本願の実施形態によるラベル置換プロセスの概略図である。
本願の実施形態によるアド/ドロップノードの処理プロセスの概略図である。
本願の実施形態による送信ノードの処理プロセスの概略図である。
本願の実施形態によるレート監視方法の概略フローチャートである。
本願の実施形態によるレート監視方法のプロセスの概略図である。
本願の実施形態によるポリシスケジューリング方法のプロセスの概略図である。
本願の実施形態による別のクライアントサービス送信装置の概略構造図である。
図1は、本願の実施形態による技術的解決手段に適用可能なシステムアーキテクチャの概略図を示す。システムアーキテクチャは、ベアラネットワークデバイスおよび複数のクライアントデバイス100を含み得る。このシステムにおいて、1または複数のクライアントデバイスが、ベアラネットワークデバイスを用いて、クライアントサービスを1または複数の他のクライアントデバイスへ送信する。理解を容易にするために、クライアントサービスを送信するクライアントデバイスは、以下、送信エンドクライアントデバイスと称され、クライアントサービスを受信するクライアントデバイスは、受信エンドクライアントデバイスと称される。1つのクライアントデバイスが送信エンドクライアントデバイスおよび受信エンドクライアントデバイスの両方として用いられ得ることが理解され得る。ベアラネットワークデバイスは、送信エンドクライアントデバイスまたは受信エンドクライアントデバイスに接続されたアド/ドロップノード200と、アド/ドロップノード200の間に配置された1または複数の送信ノード300とを含み得る。1または複数の送信ノード300はいずれも、1または複数のアド/ドロップノード200のいずれとも統合され得るか、または別個に配置され得る。本願では、アド/ドロップノード200および送信ノード300が別個に配置される例が、説明のために用いられる。
クライアントサービスは、限定されるものではないが、イーサネット(登録商標)クライアントサービス、同期デジタルハイアラーキ(synchronous digital hierarchy、SDH)クライアントサービス、ストレージサービスおよびビデオサービスを含み得る。1つの送信エンドクライアントデバイスは、1または複数のクライアントサービスを1または複数の受信エンドクライアントデバイスへ送信し得る。複数の送信エンドクライアントデバイスは、1または複数のクライアントサービスを同じ受信エンドクライアントデバイスへ送信し得る。
図1に示されるシステムは、光ネットワークであり得、具体的には、アクセスネットワーク、例えば、受動光ネットワーク(passive optical network、PON)であり得るか、または、伝送ネットワーク、例えば、光伝送ネットワーク(optical transport network、OTN)、パケットネットワークまたはパケット切り替えネットワークであり得る。
(送信エンドクライアントデバイスおよび/または受信エンドクライアントデバイスを含む)クライアントデバイス100は、限定されるものではないが、スイッチ、ルータ、コンピュータ、データセンタまたは基地局のいずれか1つを含み得る。アド/ドロップノード200および送信ノード300は各々、限定されるものではないが、OTNデバイスまたはルータのいずれか1つを含み得る。
アド/ドロップノード200は、送信エンドクライアントデバイスによりデータパケットの形式または連続するデータストリームの形式で送信されるクライアントサービスを受信し、データパケットの形式または連続するデータストリームの形式のクライアントサービスを複数のデータブロック(スライス)へと分割し、ルーティング情報に従って、複数のデータブロックを対応する送信ノード300と交換するか、または、送信ノード300により送信されるデータブロックを受信し、同じクライアントサービスに属する複数のデータブロックをデータパケットの形または連続するデータストリームの形式に復元し、データパケットまたは連続するデータストリームを、対応する受信エンドクライアントデバイスへ送信するように構成され得る。各アド/ドロップノード200は、1または複数の入力端/出力端を含み得る。各入力端/出力端は、(送信エンドクライアントデバイスまたは受信エンドクライアントデバイスを含む)1または複数のクライアントデバイス100に接続され得るか、または、1または複数の送信ノード300に接続され得る。
送信ノード300は、ルーティング情報に従って、データブロックを別の送信ノード300またはアド/ドロップノード200へ転送するように構成され得る。各送信ノード300は、1または複数の入力端/出力端を含み得る。各入力端/出力端は、1または複数の送信ノード300に接続され得るか、または1または複数のアド/ドロップノード200に接続され得る。以下の出力ラインインタフェースは、出力ノード300の出力端とみなされ得ることに留意すべきである。
いくつかシナリオにおけるアド/ドロップノード200または送信ノード300のいずれかの入力端は、いくつかの他シナリオにおいて、当該デバイスの出力端として機能し得ることが理解され得る。具体的には、入力端または出力端として機能することは、クライアントサービスを今回送信するプロセスにおける経路に関連し、当該経路は、ルーティング情報に従って決定され得る。今回送信されるクライアントサービスのルーティング情報は、制御層により構成され得、当該経路で、(アド/ドロップノード200および送信ノード300を含む)ルーティングノードへ送信される。具体的な実装プロセスについては、従来技術を参照されたい。制御層は、アド/ドロップノード200または送信ノード300のいずれに統合された機能モジュールであり得るか、または、アド/ドロップノード200および送信ノード300と無関係のデバイスであり得る。このことは、本願において限定されない。各出力端は、1つのラインインタフェース帯域幅に対応し、ラインインタフェース帯域幅は、出力端のベアラ能力を示すために用いられる。
図1は、本願に適用可能なシステムアーキテクチャの例に過ぎないことが理解され得る。システムアーキテクチャに含まれるクライアントデバイス100、アド/ドロップノード200および送信ノード300の数と、それらの間の接続関係とは、本願において限定されない。具体的な実装において、ネットワークレイアウトは、実際のアプリケーションシナリオに従って実行され得る。
本願の例では、図1における任意の1または複数のアド/ドロップノード200および送信ノード300の概略構造図が図2に示される。図2に示されるデバイスは、少なくとも1つのプロセッサ21、メモリ22、通信インタフェース23および通信バス24を含み得る。
プロセッサ21は、デバイスの制御センタであり、具体的には、1つの処理要素であり得るか、または複数の処理要素の総称であり得る。例えば、プロセッサ21は、中央処理ユニット(central processing unit、CPU)であり得るか、または、特定用途向け集積回路(application specific integrated circuit、ASIC)または本願の実施形態において提供される技術的解決手段を実装ように構成された1または複数の集積回路であり得る。例えば、プロセッサ21は、1または複数のマイクロプロセッサ(digital signal processor、DSP)または1または複数のフィールドプログラマブルゲートアレイ(フィールドプログラマブルゲートアレイ、FPGA)であり得る。プロセッサ21は、メモリ22に格納されたソフトウェアプログラムを動作させるかまたは実行することによりデバイスの様々な機能を実行し、メモリ22に格納されたデータを呼び出し得る。
具体的な実装において、実施形態では、プロセッサ21は、1または複数のCPU、例えば、図2に示されるCPU0およびCPU1を含み得る。
具体的な実装において、実施形態では、デバイスは、複数のプロセッサ、例えば、図2に示されるプロセッサ21およびプロセッサ25を含み得る。これらのプロセッサの各々は、シングルコア(シングルCPU)プロセッサまたはマルチコア(マルチCPU)プロセッサであり得る。本明細書におけるプロセッサは、データ(例えば、コンピュータプログラム命令)を処理するように構成された1または複数のデバイス、回路および/または処理コアであり得る。
メモリ22は、リードオンリメモリ(read−only memory、ROM)または静的な情報および命令を格納し得る別のタイプの静的ストレージデバイス、またはランダムアクセスメモリ(random access memory、RAM)または情報および命令を格納し得る別のタイプのダイナミックストレージデバイスであり得るか、または、電気的消去可能プログラマブルリードオンリメモリ(electrically erasable programmable read−only memory、EEPROM)、コンパクトディスクリードオンリメモリ(compact disc read−only memory、CD−ROM)または他のコンパクトディスクストレージ、光ディスクストレージ(コンパクトディスク、レーザディスク、光ディスク、デジタル多用途ディスク、Blu−ray(登録商標)ディスク等を含む)、磁気ディスクストレージ媒体もしくは別の磁気ストレージデバイス、または、命令またはデータ構造形式を有する予測されるプログラムコードを保持または格納するために用いられ得る、コンピュータがアクセスし得る任意の他の媒体であり得る。しかしながら、このことは、本明細書において限定されない。メモリ22は、別個に存在し得、通信バス24を用いてプロセッサ21に接続される。あるいは、メモリ22は、プロセッサ21と統合され得る。メモリ22は、本願の実施形態において提供される技術的解決手段におけるデバイスにより実行されるソフトウェアプログラムを格納および実行するように構成され、当該実行は、プロセッサ21により制御される。
通信インタフェース23は、任意のトランシーバ(例えば、光受信機または光モジュール)を用いるタイプの装置であり得、別のデバイスまたは通信ネットワーク、例えば、イーサネット(登録商標)、無線アクセスネットワーク(radio access network、RAN)または無線ローカルエリアネットワーク(wireless local area networks、WLAN)と通信するように構成される。通信インタフェース23は、受信機能を実装した受信ユニットおよび送信機能を実装した送信ユニットを含み得る。
通信バス24は、業界標準アーキテクチャ(industry standard architecture、ISA)バス、周辺構成要素相互接続peripheral component interconnect、PCI)バス、拡張型業界標準アーキテクチャ(extended industry standard architecture、EISA)バス等であり得る。バスは、アドレスバス、データバス、および制御バス等に分類され得る。表示を容易にするために、バスは、図2において1本の太線のみにより表されるが、これは、ただ1つのバスまたは1つのタイプのバスが存在することを示すわけではない。
本願の例では、図1におけるアド/ドロップノード200の概略構造図が、図3に示され得る。図3に示されるアド/ドロップノード200は、1または複数のトリビュタリ処理ユニット31、サービス切り替えユニット32および1または複数のライン処理ユニット33を含み得る。トリビュタリ処理ユニット31は、アド/ドロップノード200の入力端を用いて、送信エンドクライアントデバイスにより送信されるクライアントサービスを受信し、受信したクライアントサービスを複数のデータブロックへと分割するように、例えば、当該クライアントサービスを複数の固定長データブロックへと分割するように構成され得る。次に、サービス切り替えユニット32は、当該データブロックを対応するライン処理ユニット33と交換する。サービス切り替えユニット32がトリビュタリ処理ユニット31から送信されるクライアントサービスを特定のライン処理ユニット33に交換することは、本願において限定されない。具体的な実装プロセスについては、従来技術を参照されたい。ライン処理ユニット33は、アド/ドロップノード200の出力端を用いて、アド/ドロップノード200から受信したデータブロックを出力するように構成され得る。
図3aに示されるハードウェア実装において、トリビュタリ処理ユニット31は、トリビュタリボード31aであり得、サービス切り替えユニット32は切り替えボード32aであり得、ライン処理ユニット33はラインボード33aであり得る。トリビュタリボード31a、クロス接続ボード32aおよびラインボード33aは、メインコントロールボード34aに接続され得る。メインコントロールボード34aは、アド/ドロップノード200の制御センタであり、トリビュタリボード31a、クロス接続ボード32aおよびラインボード33aを制御して、本願において提供される方法における対応する段階を実行するように構成される。より簡潔にするために、図3aは、1つのトリビュタリボード31aおよび1つのラインボード33aがメインコントロールボード34aに接続されていることを示す。実際の実装では、各トリビュタリボード31aおよび各ラインボード33aは、メインコントロールボード34aに接続され得る。任意選択的に、アド/ドロップノード200は、補助的光学処理ユニット35aをさらに含み得、補助的光学処理ユニット35aは、光増幅(optical amplification、OA)ユニット、光多重化(optical multiplexing、OM)ユニット、光逆多重化(pptical de−multiplexing、OD)ユニット、単一チャネル光監視チャネル(optical supervisory channel、SCI)ユニット、ラインインタフェースユニット(fiber interface unit、FIU)等を含み得る。
本願の例では、図1における送信ノード300の概略構造図が、図4に示され得る。図4に示される送信ノード300は、1または複数のソースライン処理ユニット41、サービス切り替えユニット42および1または複数の宛先ライン処理ユニット43を含み得る。ソースライン処理ユニット41は、送信ノード300の入力端を用いて、アド/ドロップノード200または別の送信ノード300により送信されるデータブロックを受信するように構成され得、次に、サービス切り替えユニット42は、当該データブロックを対応する宛先ライン処理ユニット43と交換する。サービス切り替えユニット42が、ソースライン処理ユニット41から送信されるクライアントサービスを特定の宛先ライン処理ユニット43と交換することは、本願において限定されない。具体的な実装プロセスについては、従来技術を参照されたい。宛先ライン処理ユニット43は、送信ノード300の出力端を用いて、送信ノード300から受信したクライアントサービスを出力するように構成され得る。
図4aに示されるように、(ライン処理ユニット33および/または宛先ライン処理ユニット43を含む)ライン処理ユニットは、キューキャッシュモジュール431およびレート監視モジュール432を含み得、任意選択的に、ポリシスケジューリングモジュール433をさらに含み得る。任意選択的に、ライン処理ユニットは、レート適合モジュール434をさらに含み得る。モジュールの間の接続関係の例が、図4に示される。各モジュールの機能については、以下の説明を参照されたい。
ハードウェア実装において、ソースライン処理ユニット41はソースラインボード41aであり得、サービス切り替えユニット42はクロス接続ボード42aであり得、宛先ライン処理ユニット43は宛先ラインボード43aであり得る。図4bに示されるように、ソースラインボード41a、クロス接続ボード42aおよび宛先ラインボード43aは、メインコントロールボード44aに接続され得る。メインコントロールボード44aは、送信ノード300の制御センタであり、ソースラインボード41a、クロス接続ボード42aおよび宛先ラインボード43aを制御して、本願において提供される方法における対応する段階を実行するように構成される。より簡潔にするために、図4bは、1つのソースラインボード41aおよび1つの宛先ラインボード43aがメインコントロールボード44aに接続されていることを示す。実際の実装では、各ソースラインボード41aおよび各宛先ラインボード43aは、メインコントロールボード44aに接続され得る。任意選択的に、送信ノード300は、補助的光学処理ユニット45aをさらに含み得る。補助的光学処理ユニット45aの具体的な実装については、補助的光学処理ユニット35aを参照されたい。
本明細書における「複数の」という用語は、少なくとも2つを指すことに留意すべきである。
本明細書における「第1の」、「第2の」等の用語は、異なる対象物を区別することを意図しているに過ぎず、対象物の順序を限定しているわけではない。例えば、第1のアド/ドロップノードおよび第2のアド/ドロップノードは、異なるアド/ドロップノードを区別することを意図しているに過ぎず、第1のアド/ドロップノードおよび第2のアド/ドロップノードの順序を限定しているわけではない。
本明細書における「および/または」という用語は、関連対象物を説明するための対応関係のみを説明しており、3つの関係が存在し得ることを表している。例えば、Aおよび/またはBは、Aのみが存在する、AおよびBの両方が存在する、Bのみが存在する、という3つの場合を表し得る。加えて、本明細書における「/」という文字は一般に、関連対象物間の「または」の関係を示す。ある式において、「/」は一般に、関連対象物が「割り切れる」関係を有しているのを意味していることが理解され得る。
以下では、本願の実施形態における技術的解決手段を詳細に説明する。
以下の具体的な例は、本願において提供される技術的解決手段が、図5に示されるシステムアーキテクチャに適用される例を用いて説明されることに留意すべきである。図5に示されるシステムアーキテクチャは、図1に示されるシステムアーキテクチャの具体的な実装である。図5において、クライアントデバイス1は、アド/ドロップノード1、送信ノード1およびアド/ドロップノード2を用いて、クライアントサービス1をクライアントデバイス4へ送信し、クライアントデバイス2は、アド/ドロップノード1、送信ノード1およびアド/ドロップノード2を用いて、クライアントサービス2をクライアントデバイス5へ送信し、クライアントデバイス3は、アド/ドロップノード1、送信ノード2およびアド/ドロップノード3を用いて、クライアントサービス3をクライアントデバイス5へ送信する。実際には、本願において提供される技術的解決手段は、1つの送信エンドクライアントデバイスが複数のクライアントサービスをアド/ドロップノードへ送信するシナリオにも適用され得る。当該シナリオの基本原則については、以下の説明を参照されたい。
加えて、クライアントサービスのデータブロックに対するキャッシュ、レート監視、ポリシスケジューリング、レート適応化等のオペレーションが送信ノードに適用される例が、以下で説明のために用いられることに留意すべきである。実際の実装では、これらのオペレーションの1または複数は、(第1のアド/ドロップノードおよび/または第2のアド/ドロップノードを含む)アド/ドロップノードにも適用され得る。本シナリオの具体的な実装プロセスについては、送信ノードへのこれらのオペレーションの適用についての説明を参照されたい。詳細は、本願においてここでは改めて説明されない。
図6は、本願の実施形態によるクライアントサービス送信方法の概略相互作用図を示す。図6に示される方法は、以下の段階S101からS104を含み得る。
S101.複数の送信エンドクライアントデバイスが、クライアントサービスを、データパケットの形式または連続するデータストリームの形式で、第1のアド/ドロップノードへ送信する。第1のアド/ドロップノードは、図5におけるアド/ドロップノード1であり得、以下で説明のための例として用いられる。
複数の送信エンドクライアントデバイスは、アド/ドロップノード1に接続された任意の複数の送信エンドクライアントデバイスであり得る。複数の送信エンドクライアントデバイスの任意の1または複数の送信エンドクライアントデバイスは、クライアントサービスをアド/ドロップノード1へ連続的または不連続的に送信し得る。
図5に示されるシステムアーキテクチャに基づいて、S101は、クライアントデバイス1がクライアントサービス1をアド/ドロップノード1へ送信し、クライアントデバイス2がクライアントサービス2をアド/ドロップノード1へ送信し、クライアントデバイス3がクライアントサービス3をアド/ドロップノード1へ送信することを含み得る。
S101の前に、方法は、各送信エンドクライアントデバイスが、クライアントサービス(例えば、クライアントサービス1、2または3)の帯域幅を制御層に適用することにより、制御層が、クライアントサービスを送信するための特定の帯域幅を送信エンドクライアントデバイスのために確保するようアド/ドロップノード1を制御する段階をさらに含み得る。クライアントサービスの帯域幅は、送信エンドクライアントデバイスにより、要件(例えば、送信予定のクライアントサービスのサイズおよび予測送信遅延の要件)に従って決定され得る。同じ送信エンドクライアントデバイスが異なるクライアントサービスを送信する場合、当該クライアントサービスの帯域幅は、同じであり得るか、または異なり得る。異なる送信エンドクライアントデバイスが同じクライアントサービスを送信する場合、当該クライアントサービスの帯域幅は、同じであり得るか、または異なり得る。このことは、本願において限定されない。
本願の例では、制御を容易にするために、単位帯域幅(すなわち、最小帯域幅粒度)がシステムにおいて設定される。各送信エンドクライアントデバイスは、クライアントサービスの帯域幅を単位帯域幅の整数倍に設定し得る。例えば、単位帯域幅が2Mbpである場合、クライアントサービスの帯域幅は、n×2Mbpであり得る。nは、1以上の整数であり得る。
S102.第1のアド/ドロップノードが、複数の送信エンドクライアントデバイスにより送信されるクライアントサービスを受信し、受信したクライアントサービスを複数の固定長データブロックへと分割し、各データブロックを用いて1つのスライスを生成し、ルーティング情報に従って、各スライスを対応する送信ノードに出力する。
段階S102は、以下のとおり理解され得る。アド/ドロップノード1が、受信したクライアントサービスをベアラコンテナにマッピングする。各ベアラコンテナは、1つのデータブロックを保持するために用いられる。「ベアラコンテナ」は、データブロック分割プロセスをより鮮明に説明するために提案される論理的概念であり、実際には存在し得ないことが理解され得る。
図5に示されるシステムアーキテクチャに基づいて、S102は、アド/ドロップノード1が、クライアントデバイス1により送信されるクライアントサービス1、クライアントデバイス2により送信されるクライアントサービス2およびクライアントデバイス3により送信されるクライアントサービス3を受信し、クライアントサービス1、2および3を複数の固定長データブロックへと等しく分割し、各データブロックを用いて、1つのスライスを生成することを含み得る。次に、アド/ドロップノード1は、クライアントサービス1の各スライスを送信ノード1に出力し、クライアントサービス2の各スライスを送信ノード1に出力し、クライアントサービス3の各スライスを送信ノード2に出力する。
1または複数のデータパケットまたは連続するデータストリームを受信した場合、アド/ドロップノード1は、一連の受信時間に従って、受信したデータパケットまたは連続するデータストリームを複数のデータブロックへと分割し得る。各データブロックは、固定長を有し得る。すなわち、アド/ドロップノード1は、任意の送信エンドクライアントデバイスにより送信される任意の受信クライアントサービスを、複数の固定長データブロックへと等しく分割する。説明を容易にするために、当該データブロックが固定長を有する例が、本願における説明のために用いられる。実際の実装では、異なるデータブロックの長さは、等しくなり得ない。本明細書における「データブロック」は、クライアントサービスを含み、任意選択的に、クライアントサービスのいくつかの関連情報等をさらに含み得ることが理解され得る。
例えば、固定長データブロックの長さは123バイトであると仮定する。クライアントサービスの帯域幅が2Mbpである場合、アド/ドロップノード1に入力されるデータブロックの平均レートは、2Mbp/123バイトデータブロック/秒である。すなわち、アド/ドロップノード1のトリビュタリ処理ユニットがコンテナを形成する場合、平均で毎秒2Mbp/123バイトのデータブロックが生成される。クライアントサービスの帯域幅が4Mbpである場合、アド/ドロップノード1に入力されるデータブロックの平均レートは、4Mbp/123バイトデータブロック/秒である。
データブロックの処理(例えば、交換および送信)中に(第1のアド/ドロップノード、第2のアド/ドロップノードおよび/または送信ノードを含む)ベアラネットワークデバイスがデータブロックを認識することを可能にするために、本願の実施形態において、アド/ドロップノード1は、受信したデータパケットまたは連続するデータストリームを複数の固定長データブロックへと分割した後に、1つのラベル(label)を各データブロックに追加し得る。送信エンドクライアントデバイスによりアド/ドロップノード1へ送信される異なるタイプのクライアントサービスの送信フォーマットは異なり得るので、実装を容易にするために、本願は、図7に示されるように、データブロックのフォーマットを提供する。アド/ドロップノード1へ送信される任意のタイプのクライアントサービスのフォーマットは、図7に示されるフォーマットに変換され得る。図7において、データブロックのフォーマットは、ラベルおよびペイロードエリアを含み得る。任意選択的に、データブロックのフォーマットは、周期的冗長検査(cyclic redundancy check、CRC)エリアをさらに含み得る。
ラベルは、グローバルラベルであり得るか、またはラインインタフェースローカルラベルであり得る。グローバルラベルは、システムにおける各デバイスにより認識可能なラベルであり得る。ラインインタフェースローカルラベルは、互いに直接通信する2つのデバイスにより認識可能なラベルであり得る。グローバルラベルと比較すると、ラインインタフェースローカルラベルは、より少ないビット数を占有する。ラベルがラインインタフェースローカルラベルである例が、以下で説明のために用いられる。データブロックのラベルはさらに、異なるクライアントサービスを区別するために用いられ得ることが理解され得る。データブロックのラベルは、制御層により構成され得る。ペイロードエリアは、クライアントサービスを保持するために用いられ、任意選択的に、さらに、クライアントサービスのいくつかの関連情報等を保持するために用いられ得る。CRCエリアは、チェックビットを保持するために用いられる。チェックビットは、ペイロードエリアにおいて保持される情報の完全性をチェックするために用いられ得る。当然ながら、具体的な実装において、完全性のチェックは、代替的に別の方式で実装され得るが、これは、CRCに限定されない。
ラベル、ペイロードエリアまたはCRCエリアのいずれか1つにより占有されるビットのサイズは、本願において限定されない。図7において、ラベルが4バイト(Byte)を占有し、ペイロードエリアが123バイトを占有し、CRCエリアが1バイトを占有する例が、説明のために用いられる。図7に示される「データブロック」を、受信したクライアントサービスをアド/ドロップノード1が分割する「データブロック」と区別するために、本願では、(図7に示される)ラベルを含むデータブロックは、「スライス」と称されることに留意すべきである。各データブロックは、1つのスライスに対応し、各データブロックは、当該データブロックに対応するスライスのペイロードエリアにおいて保持される情報とみなされ得る。
任意選択的に、1アド/ドロップノード1の入力端と出力端との間に1対多の関係がある場合、例えば、異なる経路を用いて、1つのクライアントサービスが異なる受信エンドクライアントデバイスへ送信される場合、アド/ドロップノード1がデータブロックを処理する手順は、アド/ドロップノード1が、ラベルをデータブロックに追加し、ルーティング情報に従って、当該ラベルをラベルbで置換し、CRCを再計算することを含み得る。ラベルの置換は、アド/ドロップノード1におけるトリビュタリ処理ユニット、サービス切り替えユニットまたはライン処理ユニットのいずれか1つにより実行され得る。具体的な実装プロセスが図8に示され得る。
図9は、S102の実装プロセスの概略図を示す。図9において、アド/ドロップノード1のトリビュタリ処理ユニット31が、受信したデータパケットまたは連続するデータストリームを複数のデータブロックへと分割し、各データブロックを用いて1つのスライスを生成する例が、説明のために用いられる。
S103.送信ノードが、第1のアド/ドロップノードにより送信される、クライアントサービスのスライスを受信し、ルーティング情報に従って、受信したスライスに対して交換オペレーションを実行し、交換されたスライスが属する、各々が1つのキャッシュキューに対応するクライアントサービスに従って、交換されたスライスをキャッシュし、各クライアントサービスのスライスに対してレート監視オペレーションを別個に実行し、レート監視対象クライアントサービスに対してポリシスケジューリングオペレーション、レート適合オペレーション等を実行し、前述のオペレーションが実行されるスライスを次のルーティングノードへ送信する。次のルーティングノードは、次の送信ノードまたは第2のアド/ドロップノードであり得る。次のルーティングノードが第2のアド/ドロップノードである場合、S104が実行される。次のルーティングノードが送信ノードである場合、送信ノードは、次のルーティングノードが第2のアド/ドロップノードになるまでS103を実行し続け、次に、S104が実行される。
キャッシュスペースは通常、全てのキャッシュキューにより共有されることが理解され得る。送信ノードが送信ノードのベアラ能力範囲内でクライアントサービスを受信する度に、送信ノードは、キャッシュキューをクライアントサービスのために割り当て得る。
図5に示されるシステムアーキテクチャに基づいて、第2のアド/ドロップノードは、アド/ドロップノード2およびアド/ドロップノード3を含み得る。S103は、送信ノード1が、アド/ドロップノード1により送信されるクライアントサービス1および2のスライスを受信し、クライアントサービス1および2のスライスをアド/ドロップノード2へ送信し、送信ノード2が、アド/ドロップノード1により送信されるクライアントサービス3のスライスを受信し、クライアントサービス3のスライスをアド/ドロップノード3へ送信することを含み得る。
送信ノードが、ルーティング情報に従って、受信したスライスに対して交換オペレーションを実行することは、送信ノードが、ルーティング情報に従って、スライスの次のルーティングノードを決定し、次に、交換オペレーションを実行することを含み得ることが理解され得る。任意選択的に、データブロックのラベルがラインインタフェースローカルラベルである場合、送信ノードはさらに、交換オペレーションを実行するプロセスにおいてラベル置換動作を実行する必要がある。例えば、図5に示されるシステムアーキテクチャに基づいて、アド/ドロップノード1により送信ノード2へ送信されるクライアントサービス3のデータブロックラベルがラベルbである場合、送信ノード2は、交換オペレーションを実行するプロセスにおいてラベルbをラベルcで置換し得、任意選択的に、送信ノード2は、データブロックのCRCを再計算し得る。当該プロセスの具体的な実装については、図8を参照されたい。ラベルbは、アド/ドロップノード1および送信ノード2により認識可能なラベルであり、ラベルcは、送信ノード2およびアド/ドロップノード3により認識可能なラベルである。
本願の例では、送信ノードは、クライアントサービスのスライスを受信した後に、スライスに含まれるCRCに従って、完全性チェックを実行し得、当該チェックが成功した場合、レート監視、ポリシスケジューリングおよびレート適応化を実行する。任意選択的に、当該チェックが失敗した場合、スライスは破棄される。
送信ノードの概略構造図が図4に示される場合、交換オペレーションはサービス切り替えユニット42により実行され得、キャッシュオペレーションはキューキャッシュモジュール431により実行され得、レート監視オペレーションはレート監視モジュール432により実行され得、ポリシスケジューリングオペレーションはポリシスケジューリングモジュール433により実行され得、レート適合オペレーションはレート適合モジュール434により実行され得ることが理解され得る。レート監視オペレーション、ポリシスケジューリングオペレーションおよびレート適合オペレーションの関連する説明および具体的な実装については、以下の説明を参照されたい。
図10は、S103の実装プロセスの概略図を示す。図10において、送信ノードの2つの入力端に入力される複数のクライアントサービスが1つの出力端へ送信される例が、説明のために用いられる。小さい矩形グリッドの各々は1つのスライスを表し、小さい陰影付きグリッドの各々は1つのクライアントサービスを表し、キャッシュキューにおける小さいブランクグリッドの各々は、キャッシュキューに格納されているスライスがないことを表す。キューのキャッシュおよびレート監視は、各クライアントサービスに対して別個に実行される。ポリシスケジューリングおよびレート適応化が複数のクライアントサービスに対して一様に実行された後に、複数のクライアントサービスは、出力端から出力される。
S104.第2のアド/ドロップノードが、送信ノードにより送信される、クライアントサービスのスライスを受信し、各スライスにおけるデータブロックを取得し、一連の受信時間において同じクライアントサービスのデータブロックをデータパケットの形式または連続するデータストリームの形式に復元し、クライアントサービスを対応する受信エンドクライアントデバイスへ送信する。受信エンドクライアントデバイスは、第2のアド/ドロップノードにより送信されるクライアントサービスを受信する。
図5に示されるシステムアーキテクチャに基づいて、S104は、アド/ドロップノード2が、送信ノード1により送信されるクライアントサービス1のスライス受信し、クライアントサービス1のスライスをデータパケットの形式または連続するデータストリームの形式に復元し、データパケットまたは連続するデータストリームをクライアントデバイス4へ送信することを含み得る。クライアントデバイス4は、アド/ドロップノード2により送信されるクライアントサービス1を受信する。アド/ドロップノード2は、送信ノード1により送信されるクライアントサービス2のスライスを受信し、クライアントサービス2のスライスをデータパケットの形式または連続するデータストリームの形式に復元し、データパケットまたは連続するデータストリームをクライアントデバイス5へ送信する。アド/ドロップノード3は、送信ノード2により送信されるクライアントサービス3のスライスを受信し、クライアントサービス3のスライスをデータパケットの形式または連続するデータストリームの形式に復元し、データパケットまたは連続するデータストリームをクライアントデバイス5へ送信する。クライアントデバイス5は、アド/ドロップノード3により送信されるクライアントサービス2および3を受信する。
本願の例では、第2のアド/ドロップノードは、クライアントサービスのスライスを受信した後に、スライスに含まれるCRCに従って、完全性チェックを実行し得、当該チェックが成功した場合、スライスにおけるラベルを削除し、スライスにおけるデータブロックを取得する。
S104の具体的な実装プロセスの概略図は、図9のプロセスとは逆であり得る。
以下では、S103におけるレート監視、ポリシスケジューリングおよびレート適応化などのオペレーションを説明する。
1.レート監視
レート監視は、本願において提供されるクライアントサービスの出力レートを制御するための技術であり、輻輳の発生確率を低減し、さらには、輻輳の発生を回避するのに役立つ。具体的には、複数のカウンタが送信ノードに設定され、各クライアントサービスは、1つのカウンタに対応し得、各カウンタは、クライアントサービスの出力レートを制御するために用いられる。次に、複数のデータブロックが、複数の送信期間において送信される。各送信期間において、カウンタのカウント値が、予め設定された閾値に達した場合、複数のデータブロックの少なくとも1つのデータブロックが送信される。カウンタは、ソフトウェアまたはハードウェアにより実装され得、このことは、本願において限定されない。送信ノードは、各クライアントサービスに対してレート監視を別個に実行し得る。
本願の例では、レート監視は、クライアントサービスの出力レートに対して実行される。図11に示されるように、各送信期間において、(具体的には、送信ノードにおけるレート監視モジュール432であり得る)送信ノードは、以下の段階S201からS205を実行し得る。
S201.カウンタの各カウント期間において、カウンタのカウント値を、予め設定された閾値以下であるCだけ上げる。
S202.カウンタのカウント値が予め設定された閾値に達しているかどうかを判断する。
カウンタのカウント値が予め設定された閾値に達している場合、S203が実行され、または、カウンタのカウント値が予め設定された閾値に達していない場合、S201が実行される。
S203.クライアントサービスのキャッシュキューがカウンタに対応するクライアントサービスのデータブロックをキャッシュしているかどうかを判断する。
クライアントサービスのキャッシュキューがカウンタに対応するクライアントサービスのデータブロックをキャッシュしている場合、S204が実行される。クライアントサービスのキャッシュキューがカウンタに対応するクライアントサービスのデータブロックをキャッシュしていない場合、S205が実行される。
S204.キャッシュキューから少なくとも1つのデータブロックを取得し、少なくとも1つのデータブロックを送信する。
S204が実行された後に、この送信期間が終了する。
S205がカウンタのカウントを停止させる。
S205が実行された後に、S203が実行される。
レート監視を実行するプロセスにおいて、送信ノードは、第1のアド/ドロップノードにより送信されるクライアントサービスを連続的または不連続的に受信するか、または別の送信ノードにより送信されるクライアントサービスを定期的に受信することが理解され得る。従って、S203が実行される場合において、キャッシュキューが、クライアントサービスをキャッシュしないときは、S205が実行された後に、S203が実行される。この場合、キャッシュキューがクライアントサービスをキャッシュ済みであり得ることにより、S204が実行され得る。加えて、具体的な実装において、時間間隔の長さも設定され得る。このように、カウンタが長さのカウントを停止した場合において、S203が実行されるときは、キャッシュキューは、依然としてクライアントサービスをキャッシュしておらず、このことは、クライアントサービスの送信が終了したものとみなされ得る。長さの具体的な値は、本願において限定されない。
前述のS201からS205は、1つの送信期間におけるレート監視プロセスを説明している。複数の送信期間においては、任意選択的に、カウンタは、各送信期間において初期値からカウントを開始する。異なる送信期間の初期値は、同じであり得るか、または異なり得る。本願の実施形態において、(i+1)番目の送信期間において、カウンタの初期値は、i番目の送信期間の終了時のカウンタのカウント値から予め設定された閾値を減算することにより取得される値であり、iは1以上の整数である。本願の別の実施形態では、各送信期間において、カウンタの初期値は、予め設定された閾値未満の固定値、例えば、0であり得る。
送信期間は、データブロックを送信する2つの連続する時点の間の時間間隔を指す。1または複数のデータブロックが毎回送信され得る。送信期間は、予め設定された値ではないことがあり、カウンタのカウント値に関連する。さらに、カウント値が予め設定された閾値に達している場合、送信期間は、クライアントサービスがキャッシュされているかどうかに関連する。任意の2つの送信期間内で、カウント値が予め設定された閾値に達している場合において、キャッシュキューがクライアントサービスをキャッシュしているときは、2つの送信期間は等しい。あるいは、カウント値が予め設定された閾値に達しているが、カウンタがカウントを停止する期間が等しい場合、キャッシュキューは、クライアントサービスをキャッシュせず、2つの送信期間は等しい。カウント値が予め設定された閾値に達している場合において、キャッシュキューがクライアントサービスをキャッシュしていないときは、カウンタがカウントを停止する期間は等しくなく、2つの送信期間は等しくない。
カウント値が予め設定された閾値に達している場合において、キャッシュキューがクライアントサービスをキャッシュしているときは、送信期間は、カウント期間の予め設定された数と等しく、カウント値が予め設定された閾値に達している場合において、キャッシュキューがクライアントサービスをキャッシュしていないときは、送信期間は、カウント期間およびカウントを停止する長さの予め設定された数と等しいことが理解され得る。このことに基づいて、本願において提供されるレート監視プロセスは、カウンタのカウント値が予め設定された閾値に達している場合、クライアントサービスを送信するための1回の機会がある、すなわち、送信ノードには、クライアントサービスのデータブロックを送信するための1回の機会があることが理解され得る。少なくとも1つのデータブロックが、各送信機会において送信され得る。このことに基づいて、データブロックの出力レートが制御される。すなわち、クライアントサービスの出力レートが制御される。
全ての送信期間において送信されるデータブロックの数は、同じであり得るか、または異なり得る。出力レートが特定の範囲内で一定であることを保証するために、本願では「データブロック送信期間」という概念が導入されている。データブロック送信期間は、1または複数の送信期間を含み得る。全てのデータブロック送信期間において送信されるデータブロックの数は同じである。
例えば、各データブロック送信期間は、2つの送信期間を含み、1つのデータブロックが2つの送信期間の1つにおいて送信され、2つのデータブロックが他の送信期間において送信される。この場合、複数の送信期間において送信されるデータブロックの数は、1、2、1、2、1、2、…または1、2、2、1、1、2、1、2、2、1であり得る。データブロックの出力レートがデータブロック送信期間当たり一定であることを保証すべく、各送信期間において送信されるデータブロックの数を制御することにより、全てのデータブロック送信期間において送信されるデータブロックの数を同じにし得ることが、この例から理解され得る。データブロックの実際の出力レートは、一定の出力レート未満であることが理解され得る。従って、各送信期間の長さおよび各送信期間において送信されるデータブロックの数が制御されることを条件として、一定の出力レートが維持され得る。このことは、出力ラインインタフェースでの輻輳の発生確率を低減するのに役立つ。
別の例では、各データブロック送信期間は、1つの送信期間を含み、2つのデータブロックが当該送信期間において送信される。この場合、複数の送信期間において送信されるデータブロックの数は、2、2、2、…であり得る。この例では、データブロック送信期間は送信期間と等しいことが理解され得る。従って、各送信期間の長さおよび各送信期間において送信されるデータブロックの数が制御されることを条件として、一定の出力レートが維持され得る。このことは、出力ラインインタフェースでの輻輳の発生確率を低減するのに役立つ。
カウント期間は、カウンタのカウント値を毎回更新するために必要とされる期間を指す。実際の実装では、カウント期間は、パルス信号を用いて実装され得る。例えば、パルス周期がカウント期間と等しい場合、カウンタのカウント値は、各パルス周期でCだけ上がる。任意選択的に、カウント期間は、ラインインタフェースのデータブロック送信時間と等しくなり得る。例えば、出力ラインインタフェース帯域幅が100Gbpであり、データブロックが位置するスライスの長さが128バイトである場合、ラインインタフェースのデータブロック送信時間は、128バイト/100Gbp=10.24ns(ナノ秒)である。当然ながら、カウント期間は、代替的に、ラインインタフェースのデータブロック送信時間より大きいことがあり得る。
カウンタのカウント値の物理的意味は、本願において限定されない。以下では、いくつかの実装を列挙する。
方式1:Cは、カウント回数の数である。この場合、カウンタのカウント値は、各カウント期間において1だけ上げられる。予め設定された閾値の値は、以下のとおり、方式2での値変換により取得され得る。詳細は、ここでは改めて説明されない。当然ながら、予め設定された閾値の値は、代替的に、別の方式で取得され得、このことは、本願において限定されない。
方式2:Cは、クライアントサービスの帯域幅に従って決定される。この場合、任意選択的に、予め設定された閾値は、出力ラインインタフェース帯域幅に従って決定される。
任意選択的に、Cは、クライアントサービスの帯域幅と単位帯域幅との比であり、予め設定された閾値は、出力ラインインタフェース帯域幅と単位帯域幅の調整値との比である。単位帯域幅の調整値は、単位帯域幅以上である。実装を容易にするために、予め設定された閾値は、整数に設定され得ることに留意すべきである。この場合、出力ラインインタフェース帯域幅と単位帯域幅の調整値との比が非整数である場合、予め設定された閾値は、非整数を切り下げることにより取得される整数であり得る。当然ながら、具体的な実装において、予め設定された閾値は、代替的に、非整数に設定され得、このことは、本願において限定されない。
単位帯域幅のより大きい調整値は、より小さい決定される予め設定された閾値を示すことが理解され得る。この場合、カウンタのカウント値は、予め設定された閾値により容易に達する。従って、より短い送信期間は、より多い送信機会とより高い出力レートとを示す。加速度は、クライアントサービスの出力レートのわずかな突然の変化をなくすことにより、輻輳の発生を回避することが意図されている。
本願の例では、Cがクライアントサービスの帯域幅と単位帯域幅との比である場合、予め設定された閾値は、出力ライン帯域幅(すなわち、ライン物理レート)以下であり得、加速係数により乗算される単位帯域幅の整数倍の値である。例えば、単位帯域幅が2Mbpであり、クライアントサービスの帯域幅が10Mbpである場合、Cは、10Mbp/2Mbp=5であり得る。出力ラインインタフェース帯域幅が100Gbpであり、単位帯域幅の調整値が単位帯域幅の1001/1000である、すなわち、加速係数が1001/1000である場合、(Pとしてマークされる)予め設定された閾値は、100Gbp/(2Mbp×1001/1000)を切り下げることにより取得される値、すなわち、49950であり得る。言い換えると、本願において、レート監視を通じて、データブロックのリアルタイムの出力レートは、おおよそ、クライアントサービスの帯域幅以下であり得る。このことに基づいて、制御層は、出力インタフェースライン帯域幅で送信されるクライアントサービスの帯域幅の和以下になるように、送信ノードの出力ライン帯域幅の和を制御し得る。従って、クライアントサービスの各々が前述の方法に従って制御される場合、このことは、出力ライン帯域幅での輻輳の発生確率を低減するのに役立つ。
本願の例では、カウンタのカウント値は、任意の送信期間の各カウント期間においてCだけ上げられる。カウンタのカウント値がPに達した場合、クライアントサービスを送信する1回の機会がある。クライアントサービスに対応するキャッシュキューがクライアントサービスをキャッシュした場合、データサービスの少なくとも1つのデータブロックが送信される。この時点で、この送信期間は終了する。クライアントサービスに対応するキャッシュキューがクライアントサービスをキャッシュしていない場合、カウンタは、カウントを停止し、キャッシュキューがクライアントサービスをキャッシュした場合、この送信期間は終了する。この送信期間の終了時に、カウンタのカウント値は、初期値に設定される。この時点で、次の送信期間が開始する。
このプロセスは、図12に示されるプロセスを用いて実装され得る。図12において、レート監視モジュール432に配置されたトリガ済み飽和リーキーバケット飽和リーキーバケットは、制御モジュールと等しいことがある。制御モジュールは、各パルス周期でCだけ上があるようカウンタのカウント値を制御し得る。カウンタのカウント値がPに達した場合において、キューキャッシュモジュール431により送信された非ナルインジケーションが検出されたときは、キューキャッシュにおける少なくとも1つのデータブロックは、ポリシスケジューリングモジュール433に出力されるよう制御される。任意選択的に、トリガ済み飽和リーキーバケット飽和リーキーバケットは、リソーススケジューリングを要求すべく、スケジューリング要求をポリシスケジューリングモジュール433へ送信し得る。
2.ポリシスケジューリング
送信ノードは、各クライアントサービスに対してレート監視を別個に実行し、送信ノードに入力された異なるクライアントサービスは、同じ出力端に交換され得る。従って、異なるクライアントサービスのデータブロックがレート監視モジュール432から同時に出力され、同じ出力端に入力される場合があり得る。これにより、輻輳が生じ、結果的に、いくつかのデータブロックが失われる。このことに基づいて、本願は、レート監視オペレーションの後かつ出力の前に、追加のポリシスケジューリングオペレーションを提供する。ポリシスケジューリングは、異なるクライアントサービスの優先順位が異なるクライアントサービスの遅延要件に従って決定され、異なるクライアントサービスは、当該優先順位に従って送信ノードから出力されるスケジューリング技術である。具体的には、ポリシスケジューリングは、レート監視モジュール432から同時に出力され、同じ出力端に入力される異なるクライアントサービスのために設計されたスケジューリング技術である。任意選択的に、ポリシスケジューリングは、以下の内容を含み得る。
クライアントサービスの任意の複数のスライスについては、複数のスライスがポリシスケジューリングモジュール433に次々に入力された場合、複数のスライスは、一連の入力時間で出力される。複数のスライスがポリシスケジューリングモジュール433に同時に入力された場合、複数のスライスは、属するクライアントサービスの絶対優先順位(strict priority、SP)に従って出力される。より高い優先順位のクライアントサービスのスライスは、より低い優先順位のクライアントサービスのスライスの前に出力される。任意の複数のスライスが属するクライアントサービスの優先順位が同じである場合、これらのスライスは、ラウンドロビン(round robin、RR)方式で出力される。このプロセスの概略図が図13に示される。図13は、第1優先順位、第2優先順位および第3優先順位を示す。第1優先順位は第2優先順位よりも高く、第2優先順位は第3優先順位よりも高い。図13において、「H」は、SPに準拠した2つのクライアントサービスのうちの高い方の優先順位のクライアントサービスを示し、「L」は、SPに準拠した2つのクライアントサービスのうちの低い方の優先順位のクライアントサービスを示す。
具体的な実装において、送信ノードがポリシスケジューリングを実行する前の任意の段階において、方法は、送信ノードが、クライアントサービスの予測送信遅延に従ってクライアントサービスの優先順位を決定する段階をさらに含み得る。予測送信遅延は、実際の要件に従って設定される予測値であり、予め設定された値であり得る。異なるクライアントサービスの予測送信遅延は、同じであり得るか、または異なり得る。異なるシナリオにおける同じクライアントサービスの予測送信遅延は、同じであり得るか、または異なり得る。任意選択的に、各優先順位レベルは、1つの予測送信遅延範囲に対応し得る。例えば、予測送信遅延が5μs(マイクロ秒)以下であるクライアントサービスの優先順位は、第1優先順位であり、予測送信遅延が20μs(マイクロ秒)以下であるクライアントサービスの優先順位は、第2優先順位であり、予測送信遅延が50μs(マイクロ秒)以下であるクライアントサービスの優先順位は、第3優先順位である。第1優先順位は第2優先順位よりも高く、第2優先順位は第3優先順位よりも高い。例えば、クライアントサービスの予測送信遅延が5μsである場合、第1優先順位のみが、予測送信遅延を常に満たし得る。第2優先順位などの別の優先順位は、予測送信遅延を満たすことがあり得るが、予測遅延を常には満たし得ない。従って、クライアントサービスの優先順位は第1優先順位である。別の例は列挙されない。
本願において提供されるレート監視方法に基づいて、本願の例において、制御層は、異なりクライアントサービスの遅延要件を満たすべく、クライアントサービスの遅延要件およびシステムのサポート能力に従って、対応する送信リソースを割り当て得る。例えば、出力ラインインタフェース帯域幅が100Gbpであり、送信ノードが1つのデータブロックをスケジューリングするための時間が10.24nsであり、サービス切り替えモジュールを用いてデータブロックを送信ノードの入力端から対応するキャッシュキューへ交換するための時間が3μs未満であると仮定する。この場合において、予測送信遅延が5μs未満であるときは、クライアントサービスの優先順位は、第1優先順位である。厳格なレート監視が実行された後のクライアントサービスは輻輳し得ないので、送信遅延の導入は、第1優先順位クライアントサービスのクライアントサービスパイプの数(すなわち、第1優先順位クライアントサービスの数)のみに関連する。システムは、送信遅延が5μs未満である、最高で(5μs−3μs)/10.24ns=195個のクライアントサービスをサポートし得る。すなわち、割り当てられた全ての第1優先順位クライアントサービスパイプの数が195を超えない場合、送信遅延が5μs以内であることが保証され得る。第2優先順位クライアントサービスについては、予測送信遅延が20μs未満である場合、システムは、同じ方法に従って、送信遅延が20μs未満である、(20μs−3μs)/10.24ns=1660個のクライアントサービスパイプをサポートし得る。195個の第1優先順位キューが存在し得ることを考慮して、システムは、システムによりサポートされ得る第3優先順位クライアントサービスの数と、システムによりサポートされ得る第4優先順位クライアントサービスの数とを取得すべく、送信遅延が20μs未満等である1660−195=1465個のクライアントサービスをサポートし得る。このように、対応する送信リソースは、異なるクライアントサービスの遅延要件を満たすべく、クライアントサービスの送信遅延要件およびシステムのサポート能力に従って割り当てられ得る。
3.レート適応化
加速度などの因子の影響に起因して、出力ラインインタフェース帯域幅は、出力ラインインタフェースにより送信される全てのクライアントサービスの帯域幅の和より大きい。従って、レート適応化が必要である。具体的には、特定の時点での全てのクライアントサービスのリアルタイム出力レートの和が出力ラインインタフェース帯域幅未満である場合、無効なデータブロックは、この時点で埋められ、全てのクライアントサービスが共に出力される。レート適応化プロセスにおいて埋められる無効なデータブロックは、データブロックと同じフォーマットであり得、特別なラベルを用いて識別されるか、または、別の長さまたは別のフォーマットのデータブロックが用いられ得る。このことは、本願において限定されない。
上記は、主にネットワーク要素間のインタラクションの観点から、本願の実施形態において提供される解決手段を説明している。前述の機能を実装するために、アド/ドロップノード、送信ノードまたはクライアントデバイスなどの各ネットワーク要素は、各機能を実行するための対応するハードウェア構造および/またはソフトウェアモジュールを含むことが理解され得る。当業者であれば、本明細書において提供される実施形態を参照して説明される例におけるユニットおよびアルゴリズム段階は、本願におけるハードウェアまたはハードウェアとコンピュータソフトウェアとの組み合わせの形態で実装され得ることを容易に認識するはずである。ある機能が、ハードウェアにより実行されるか、またはコンピュータソフトウェアがハードウェアを駆動する方式で実行されるかは、技術的解決手段の具体的な用途および設計上の制約条件によって決まる。当業者であれば、異なる方法を用いて、説明された機能を具体的な用途の各々のために実装し得るが、このことは、当該実装が本願の範囲を越えるものとみなされるべきではない。
本願の実施形態において、機能モジュールの分割は、前述の方法の例に従って、アド/ドロップノード、送信ノードまたはクライアントデバイス上で実行され得る。例えば、各機能モジュールが、対応する機能に従って、分割により取得され得るか、または、少なくとも2つの機能が、1つの処理モジュールに統合され得る。前述の統合されたモジュールは、ハードウェアの形態で実装されても、ソフトウェア機能モジュールの形態で実装されてもよい。本願の実施形態におけるモジュールの分割は例であり、論理機能の分割に過ぎず、実際の実装では他の分割であってもよいことに留意すべきである。
例えば、各機能モジュールが、対応する機能に従って分割により取得される場合、図14は、(具体的には、前述の実施形態において提供される送信ノードまたはアド/ドロップノードであり得る)クライアントサービス送信装置の可能な概略構造図を示す。クライアントサービス送信装置は、受信ユニット501および送信ユニット502を含み得る。
受信ユニット501は、クライアントサービスを受信するように構成され得る。クライアントサービスは、複数のデータブロックを含み、クライアントサービスは、カウンタに対応し、カウンタは、クライアントサービスの出力レートを制御するために用いられる。
送信ユニット502は、複数のデータブロックを複数の送信期間において送信するように構成され得る。カウンタのカウント値が各送信期間における予め設定された閾値に達した場合、複数のデータブロックの少なくとも1つのデータブロックが送信される。
任意選択的に、クライアントサービス送信装置は、制御ユニット503をさらに含み得る。制御ユニット503は、カウンタのカウント値が各送信期間における予め設定された閾値に達する前に、カウンタのカウント値をカウンタの各カウント期間においてCだけ上げるように構成される。Cは、予め設定された閾値以下である。
任意選択的に、Cは、クライアントサービスの帯域幅に従って決定され、予め設定された閾値は、出力ラインインタフェース帯域幅に従って決定される。任意選択的に、Cは、クライアントサービスの帯域幅と単位帯域幅との比であり、予め設定された閾値は、出力ラインインタフェース帯域幅と単位帯域幅の調整値との比であり、単位帯域幅の調整値は、単位帯域幅以上である。
任意選択的に、カウンタは、各送信期間において初期値からカウントを開始する。
任意選択的に、(i+1)番目の送信期間において、カウンタの初期値は、i番目の送信期間の終了時のカウンタのカウント値から予め設定された閾値を減算することにより取得される値であり、iは1以上の整数である。
任意選択的に、制御ユニット503はさらに、カウンタのカウント値が各送信期間における予め設定された閾値に達した場合において、クライアントサービスがキャッシュされていないときは、カウンタのカウントを停止するように構成され得る。
任意選択的に、クライアントサービス送信装置は、クライアントサービスをキャッシュキューに格納するように構成されるストレージユニット504と、カウンタのカウント値が予め設定された閾値に達した場合、キャッシュキューから少なくとも1つのデータブロックを取得するように構成される取得ユニット505とをさらに含み得る。
任意選択的に、複数のデータブロックの各データブロックは、固定長を有する。
任意選択的に、送信ユニット502は具体的には、クライアントサービスの優先順位に従って、複数のデータブロックの少なくとも1つのデータブロックを送信するように構成され得る。より短い予測送信遅延は、より高い優先順位を示す。
前述の方法の実施形態における段階の関連する内容の全ては、対応する機能モジュールの機能の説明に引用され得る。詳細はここでは説明されない。
本願の実施形態において、クライアントサービス送信装置は、対応する機能に従って分割により取得される機能モジュールの形態で示されるか、または、統合方式での分割により取得される機能モジュールの形態で示される。本明細書における「ユニット」は、ASIC、回路、1または複数のソフトウェアまたはファームウェアプログラムを実行するプロセッサ、メモリ、集積論理回路、および/または前述の機能を提供し得る別のコンポーネントであり得る。
単純な実施形態において、当業者であれば、前述のクライアントサービス送信装置は、図2に示される形態で実装され得ることに想到し得る。例えば、図14における受信ユニット501および送信ユニット502は、図2における通信インタフェース23を用いて実装され得る。図14におけるストレージユニット504は、図2におけるメモリ22を用いて実装され得る。図14における制御ユニット503および取得ユニット505は、メモリ22に格納されたアプリケーションプログラムコードを呼び出すよう、図2におけるプロセッサ21を用いて実装され得る。本願の本実施形態によっては、これらに対していかなる限定も課されない。
機能モジュールの分割は、図4または図5に示されるクライアントサービス送信装置および図14に示されるクライアントサービス送信装置に対して異なる観点から実行されることが理解され得る。例えば、図14における制御ユニット503、ストレージユニット504および取得ユニット505は、図4における宛先ライン処理ユニット43を用いて実装され得る。具体的には、制御ユニット503は、図5におけるレート監視モジュール432を用いて実装され得、ストレージユニット504および取得ユニット505は、図5におけるキューキャッシュモジュール431を用いて実装され得る。
前述の実施形態の全てまたはいくつかは、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせにより実装されてよい。ソフトウェアプログラムが実施形態を実装するために用いられる場合、実施形態は、全体的または部分的に、コンピュータプログラム製品の形態で実装され得る。コンピュータプログラム製品は、1または複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータ上でロードおよび実行された場合、本願の実施形態による手順または機能は、全体的または部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワークまたは別のプログラム可能な装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されても、コンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ伝送されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバまたはデータセンタから、別のウェブサイト、コンピュータ、サーバまたはデータセンタへ、有線方式(例えば、同軸ケーブル、光ファイバ)もしくはデジタル加入者線(digital subscriber line、DSL)で、または無線方式(例えば、赤外線、電波、またはマイクロ波)で伝送され得る。コンピュータ可読記憶媒体は、コンピュータがアクセス可能な任意の使用可能な媒体であっても、1または複数の使用可能な媒体を統合したサーバデータセンタなどのデータストレージデバイスであってもよい。この使用可能な媒体は、磁気媒体(例えば、フロッピーディスク(登録商標)、ハードディスクまたは磁気テープ)、光媒体(例えば、DVD)、半導体媒体(例えば、ソリッドステートディスク(SSD))等であり得る。
本願は、データ送信技術分野に関し、特に、クライアントサービス送信方法および装置に関する。
パケットサービスシステムでは、既存の送信ノードが、ベストエフォート型配信メカニズムに基づいてクライアントサービスを送信する。例えば、クライアントデバイスAが、送信ノードを用いてクライアントサービスをクライアントデバイスへ送信する場合において、送信ノードの出力ラインインタフェース帯域幅が毎秒100Gbp(ギガビット)であるときは、送信ノードがクライアントサービスを出力するレート(すなわち、クライアントサービスの出力レート)は、100Gbpに可能な限り近くてもよい。このことに基づいて、送信ノードに1秒で入力されるクライアントサービスのサイズが10M(メガビット)である場合、送信ノードにおけるクライアントサービスの送信時間は理論上、10M/100Gbpであり得、送信ノードに1秒で入力されるクライアントサービスのサイズが100Mである場合、送信ノードにおけるクライアントサービスの送信時間は理論上、100M/100Gbp等であり得る。
この場合、複数のクライアントデバイスが複数のクライアントサービスを1つの送信ノードへ同時に送信する場合、各クライアントデバイスが送信するクライアントサービスについて、送信ノードは、ベストエフォート型配信メカニズムを用いて、クライアントサービスを送信する。結果的に、輻輳が必ず発生する。
本願の実施形態は、出力ラインインタフェースでの輻輳の発生確率を低減させ、さらには輻輳の発生を回避すべく、クライアントサービス送信方法および装置を提供する。
前述の目的を実現するために、本願は、以下の技術的解決手段を提供する。
第1の態様によれば、本願は、クライアントサービス送信方法を提供する。方法は、クライアントサービスを受信する段階であって、クライアントサービスは、複数のデータブロックを含み、クライアントサービスは、カウンタに対応し、カウンタは、クライアントサービスの出力レートを制御するために用いられる、段階と、複数のデータブロックを複数の送信期間において送信する段階であって、カウンタのカウント値が各送信期間における予め設定された閾値に達した場合、複数のデータブロックの少なくとも1つのデータブロックが送信される、段階とを備える。方法は、送信ノードにより実行され得る。技術的解決手段において、カウンタは、送信ノードにおいて設定され、出力されるデータブロックの数は、各送信期間におけるカウンタのカウント値に基づいて制御される。このように、データブロックの出力レートが制御され得る。すなわち、クライアントサービスの出力レートが制御される。送信ノードに入力される各クライアントサービスの出力レートが技術的解決手段に従って制御される場合、このことは、出力ラインインタフェースでの輻輳の発生確率を低減し、さらには、輻輳の発生を回避するのに役立つ。
可能な設計において、カウンタのカウント値が各送信期間における予め設定された閾値に達する前に、方法は、カウンタの各カウント期間において、カウンタのカウント値をCだけ上げる段階をさらに備え得る。Cは、予め設定された閾値以下である。Cの物理的意味は、本願において限定されない。例えば、Cは、カウンタのカウント回数の数であり得る。この場合、Cは、1と等しい。別の例については、Cは、クライアントサービスの帯域幅に従って決定され得、予め設定された閾値は、出力ラインインタフェース帯域幅に従って決定され得る。当然ながら、このことは、具体的な実装において限定されない。
可能な設計において、制御を容易にするために、本願では、単位帯域幅の概念が導入される。このことに基づいて、Cは、クライアントサービスの帯域幅と単位帯域幅との比であり得、予め設定された閾値は、出力ラインインタフェース帯域幅と単位帯域幅の調整値との比であり得る。単位帯域幅の調整値は、単位帯域幅以上である。
可能な設計において、カウンタは、各送信期間において初期値からカウントを開始する。任意選択的に、カウンタの初期値は、異なる送信期間において同じであり得る。例えば、初期値は0である。あるいは、カウンタの初期値は、異なる送信期間において異なり得る。例えば、(i+1)番目の送信期間において、前記カウンタの初期値は、i番目の送信期間の終了時の前記カウンタのカウント値から前記予め設定された閾値を減算することにより取得される値であり、iは、1以上の整数である。当然ながら、このことは、具体的な実装において限定されない。
可能な設計において、カウンタのカウント値が各送信期間における予め設定された閾値に達した場合、複数のデータブロックの少なくとも1つのデータブロックが送信されることは、カウンタのカウント値が各送信期間における予め設定された閾値に達した場合において、クライアントサービスがキャッシュされているときは、複数のデータブロックの少なくとも1つのデータブロックが送信されることを含み得る。
可能な設計において、方法は、カウンタのカウント値が各送信期間における予め設定された閾値に達した場合において、クライアントサービスがキャッシュされていないときは、カウンタのカウントを停止する段階をさらに備え得る。このことに基づいて、方法は、クライアントサービスがキャッシュされた場合、複数のデータブロックの少なくとも1つのデータブロックを送信し、カウンタが初期値からカウントを開始する段階、または、クライアントサービスが受信された後に、少なくとも1つのデータブロックをキャッシュすることなく、少なくとも1つのデータブロックを直接送信する段階をさらに備え得る。
可能な設計において、クライアントサービスが受信された後に、方法は、クライアントサービスをキャッシュキューに格納する段階と、カウンタのカウント値が予め設定された閾値に達した場合、キャッシュキューから少なくとも1つのデータブロックを取得する段階とをさらに備え得る。各クライアントサービスは、1つのキャッシュキューに対応し得る。本願において、クライアントサービスがキャッシュされ、次に、少なくとも1つのデータブロックが、キャッシュキューから取得され、送信される。これにより、データブロックの出力レートを制御するプロセスにおけるパケット損失率が低減され得る。
可能な設計において、複数のデータブロックの各データブロックは、固定長を有する。従って、このことには、単純な実装という有益な効果がある。当然ながら、具体的な実装では、異なるデータブロックの長さは、異なり得る。
可能な設計において、複数のデータブロックの少なくとも1つのデータブロックが送信されることは、複数のデータブロックの少なくとも1つのデータブロックをクライアントサービスの優先順位に従って送信することを含み得る。より低い予測送信遅延は、より高い優先順位を示す。実装において、異なるクライアントサービスが出力される場合、異なるクライアントサービスの送信遅延要件をより良く満たすべく予測送信遅延が考慮されることにより、ユーザエクスペリエンスが改善される。
第2の態様によれば、本願は、クライアントサービス送信装置を提供する。装置は、前述の方法の実施形態における各段階を実装する機能を有する。当該機能は、ハードウェアを用いて実装されても、対応するソフトウェアを実行することによりハードウェアにより実装されてもよい。ハードウェアまたはソフトウェアは、前述の機能に対応する1または複数のモジュールを含む。
可能な設計において、装置は、プロセッサと、メモリと、バスと、通信インタフェースとを備え得る。メモリは、コンピュータ実行可能命令を格納するように構成される。プロセッサ、メモリおよび通信インタフェースは、バスを用いて接続される。装置が動作した場合、プロセッサは、メモリに格納されたコンピュータ実行可能命令を実行することにより、装置が、第1の態様による任意のクライアントサービス送信方法を実行するようにする。
第3の態様によれば、本願は、コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、前述の装置により用いられるコンピュータプログラム命令を格納するように構成される。コンピュータプログラム命令がコンピュータ上で実行された場合、コンピュータは、第1の態様による任意のクライアントサービス送信方法を実行し得る。
第4の態様によれば、本願は、コンピュータプログラム製品を提供する。コンピュータプログラム製品は、命令を含む。命令がコンピュータ上で実行された場合、コンピュータは、第1の態様による任意のクライアントサービス送信方法を実行し得る。
上記で提供される装置、コンピュータ可読媒体またはコンピュータプログラム製品のいずれか1つの技術的効果については、対応する方法によりもたらされる技術的効果を参照されたい。詳細は、ここでは改めて説明されない。
本願の実施形態による技術的解決手段に適用可能なシステムアーキテクチャの概略図である。
本願の実施形態によるクライアントサービス送信装置の概略構造図である。
本願の実施形態によるアド/ドロップノードの概略構造図である。
本願の実施形態による別のアド/ドロップノードの概略構造図である。
本願の実施形態による送信ノードの概略構造図である。
本願の実施形態によるライン処理ユニットの概略構造図である。
本願の実施形態による別の送信ノードの概略構造図である。
本願の実施形態による技術的解決手段に適用可能な別のシステムアーキテクチャの概略図である。
本願の実施形態によるクライアントサービス送信方法の概略相互作用図である。
本願の実施形態によるデータブロックの概略構造図である。
本願の実施形態によるラベル置換プロセスの概略図である。
本願の実施形態によるアド/ドロップノードの処理プロセスの概略図である。
本願の実施形態による送信ノードの処理プロセスの概略図である。
本願の実施形態によるレート監視方法の概略フローチャートである。
本願の実施形態によるレート監視方法のプロセスの概略図である。
本願の実施形態によるポリシスケジューリング方法のプロセスの概略図である。
本願の実施形態による別のクライアントサービス送信装置の概略構造図である。
図1は、本願の実施形態による技術的解決手段に適用可能なシステムアーキテクチャの概略図を示す。システムアーキテクチャは、ベアラネットワークデバイスおよび複数のクライアントデバイス100を含み得る。このシステムにおいて、1または複数のクライアントデバイスが、ベアラネットワークデバイスを用いて、クライアントサービスを1または複数の他のクライアントデバイスへ送信する。理解を容易にするために、クライアントサービスを送信するクライアントデバイスは、以下、送信エンドクライアントデバイスと称され、クライアントサービスを受信するクライアントデバイスは、受信エンドクライアントデバイスと称される。1つのクライアントデバイスが送信エンドクライアントデバイスおよび受信エンドクライアントデバイスの両方として用いられ得ることが理解され得る。ベアラネットワークデバイスは、送信エンドクライアントデバイスまたは受信エンドクライアントデバイスに接続されたアド/ドロップノード200と、アド/ドロップノード200の間に配置された1または複数の送信ノード300とを含み得る。1または複数の送信ノード300はいずれも、1または複数のアド/ドロップノード200のいずれとも統合され得るか、または別個に配置され得る。本願では、アド/ドロップノード200および送信ノード300が別個に配置される例が、説明のために用いられる。
クライアントサービスは、限定されるものではないが、イーサネット(登録商標)クライアントサービス、同期デジタルハイアラーキ(synchronous digital hierarchy、SDH)クライアントサービス、ストレージサービスおよびビデオサービスを含み得る。1つの送信エンドクライアントデバイスは、1または複数のクライアントサービスを1または複数の受信エンドクライアントデバイスへ送信し得る。複数の送信エンドクライアントデバイスは、1または複数のクライアントサービスを同じ受信エンドクライアントデバイスへ送信し得る。
図1に示されるシステムは、光ネットワークであり得、具体的には、アクセスネットワーク、例えば、受動光ネットワーク(passive optical network、PON)であり得るか、または、伝送ネットワーク、例えば、光伝送ネットワーク(optical transport network、OTN)、パケットネットワークまたはパケット切り替えネットワークであり得る。
(送信エンドクライアントデバイスおよび/または受信エンドクライアントデバイスを含む)クライアントデバイス100は、限定されるものではないが、スイッチ、ルータ、コンピュータ、データセンタまたは基地局のいずれか1つを含み得る。アド/ドロップノード200および送信ノード300は各々、限定されるものではないが、OTNデバイスまたはルータのいずれか1つを含み得る。
アド/ドロップノード200は、送信エンドクライアントデバイスによりデータパケットの形式または連続するデータストリームの形式で送信されるクライアントサービスを受信し、データパケットの形式または連続するデータストリームの形式のクライアントサービスを複数のデータブロック(スライス)へと分割し、ルーティング情報に従って、複数のデータブロックを対応する送信ノード300と交換するか、または、送信ノード300により送信されるデータブロックを受信し、同じクライアントサービスに属する複数のデータブロックをデータパケットの形または連続するデータストリームの形式に復元し、データパケットまたは連続するデータストリームを、対応する受信エンドクライアントデバイスへ送信するように構成され得る。各アド/ドロップノード200は、1または複数の入力端/出力端を含み得る。各入力端/出力端は、(送信エンドクライアントデバイスまたは受信エンドクライアントデバイスを含む)1または複数のクライアントデバイス100に接続され得るか、または、1または複数の送信ノード300に接続され得る。
送信ノード300は、ルーティング情報に従って、データブロックを別の送信ノード300またはアド/ドロップノード200へ転送するように構成され得る。各送信ノード300は、1または複数の入力端/出力端を含み得る。各入力端/出力端は、1または複数の送信ノード300に接続され得るか、または1または複数のアド/ドロップノード200に接続され得る。以下の出力ラインインタフェースは、送信ノード300の出力端とみなされ得ることに留意すべきである。
いくつかシナリオにおけるアド/ドロップノード200または送信ノード300のいずれかの入力端は、いくつかの他シナリオにおいて、当該デバイスの出力端として機能し得ることが理解され得る。具体的には、入力端または出力端として機能することは、クライアントサービスを今回送信するプロセスにおける経路に関連し、当該経路は、ルーティング情報に従って決定され得る。今回送信されるクライアントサービスのルーティング情報は、制御層により構成され得、当該経路で、(アド/ドロップノード200および送信ノード300を含む)ルーティングノードへ送信される。具体的な実装プロセスについては、従来技術を参照されたい。制御層は、アド/ドロップノード200または送信ノード300のいずれに統合された機能モジュールであり得るか、または、アド/ドロップノード200および送信ノード300と無関係のデバイスであり得る。このことは、本願において限定されない。各出力端は、1つのラインインタフェース帯域幅に対応し、ラインインタフェース帯域幅は、出力端のベアラ能力を示すために用いられる。
図1は、本願に適用可能なシステムアーキテクチャの例に過ぎないことが理解され得る。システムアーキテクチャに含まれるクライアントデバイス100、アド/ドロップノード200および送信ノード300の数と、それらの間の接続関係とは、本願において限定されない。具体的な実装において、ネットワークレイアウトは、実際のアプリケーションシナリオに従って実行され得る。
本願の例では、図1における任意の1または複数のアド/ドロップノード200および送信ノード300の概略構造図が図2に示される。図2に示されるデバイスは、少なくとも1つのプロセッサ21、メモリ22、通信インタフェース23および通信バス24を含み得る。
プロセッサ21は、デバイスの制御センタであり、具体的には、1つの処理要素であり得るか、または複数の処理要素の総称であり得る。例えば、プロセッサ21は、中央処理ユニット(central processing unit、CPU)であり得るか、または、特定用途向け集積回路(application specific integrated circuit、ASIC)または本願の実施形態において提供される技術的解決手段を実装ように構成された1または複数の集積回路であり得る。例えば、プロセッサ21は、1または複数のマイクロプロセッサ(digital signal processor、DSP)または1または複数のフィールドプログラマブルゲートアレイ(フィールドプログラマブルゲートアレイ、FPGA)であり得る。プロセッサ21は、メモリ22に格納されたソフトウェアプログラムを動作させるかまたは実行することによりデバイスの様々な機能を実行し、メモリ22に格納されたデータを呼び出し得る。
具体的な実装において、実施形態では、プロセッサ21は、1または複数のCPU、例えば、図2に示されるCPU0およびCPU1を含み得る。
具体的な実装において、実施形態では、デバイスは、複数のプロセッサ、例えば、図2に示されるプロセッサ21およびプロセッサ25を含み得る。これらのプロセッサの各々は、シングルコア(シングルCPU)プロセッサまたはマルチコア(マルチCPU)プロセッサであり得る。本明細書におけるプロセッサは、データ(例えば、コンピュータプログラム命令)を処理するように構成された1または複数のデバイス、回路および/または処理コアであり得る。
メモリ22は、リードオンリメモリ(read−only memory、ROM)または静的な情報および命令を格納し得る別のタイプの静的ストレージデバイス、またはランダムアクセスメモリ(random access memory、RAM)または情報および命令を格納し得る別のタイプのダイナミックストレージデバイスであり得るか、または、電気的消去可能プログラマブルリードオンリメモリ(electrically erasable programmable read−only memory、EEPROM)、コンパクトディスクリードオンリメモリ(compact disc read−only memory、CD−ROM)または他のコンパクトディスクストレージ、光ディスクストレージ(コンパクトディスク、レーザディスク、光ディスク、デジタル多用途ディスク、Blu−ray(登録商標)ディスク等を含む)、磁気ディスクストレージ媒体もしくは別の磁気ストレージデバイス、または、命令またはデータ構造形式を有する予測されるプログラムコードを保持または格納するために用いられ得る、コンピュータがアクセスし得る任意の他の媒体であり得る。しかしながら、このことは、本明細書において限定されない。メモリ22は、別個に存在し得、通信バス24を用いてプロセッサ21に接続される。あるいは、メモリ22は、プロセッサ21と統合され得る。メモリ22は、本願の実施形態において提供される技術的解決手段におけるデバイスにより実行されるソフトウェアプログラムを格納および実行するように構成され、当該実行は、プロセッサ21により制御される。
通信インタフェース23は、任意のトランシーバ(例えば、光受信機または光モジュール)を用いるタイプの装置であり得、別のデバイスまたは通信ネットワーク、例えば、イーサネット(登録商標)、無線アクセスネットワーク(radio access network、RAN)または無線ローカルエリアネットワーク(wireless local area networks、WLAN)と通信するように構成される。通信インタフェース23は、受信機能を実装した受信ユニットおよび送信機能を実装した送信ユニットを含み得る。
通信バス24は、業界標準アーキテクチャ(industry standard architecture、ISA)バス、周辺構成要素相互接続peripheral component interconnect、PCI)バス、拡張型業界標準アーキテクチャ(extended industry standard architecture、EISA)バス等であり得る。バスは、アドレスバス、データバス、および制御バス等に分類され得る。表示を容易にするために、バスは、図2において1本の太線のみにより表されるが、これは、ただ1つのバスまたは1つのタイプのバスが存在することを示すわけではない。
本願の例では、図1におけるアド/ドロップノード200の概略構造図が、図3に示され得る。図3に示されるアド/ドロップノード200は、1または複数のトリビュタリ処理ユニット31、サービス切り替えユニット32および1または複数のライン処理ユニット33を含み得る。トリビュタリ処理ユニット31は、アド/ドロップノード200の入力端を用いて、送信エンドクライアントデバイスにより送信されるクライアントサービスを受信し、受信したクライアントサービスを複数のデータブロックへと分割するように、例えば、当該クライアントサービスを複数の固定長データブロックへと分割するように構成され得る。次に、サービス切り替えユニット32は、当該データブロックを対応するライン処理ユニット33と交換する。サービス切り替えユニット32がトリビュタリ処理ユニット31から送信されるクライアントサービスを特定のライン処理ユニット33に交換することは、本願において限定されない。具体的な実装プロセスについては、従来技術を参照されたい。ライン処理ユニット33は、アド/ドロップノード200の出力端を用いて、アド/ドロップノード200から受信したデータブロックを出力するように構成され得る。
図3aに示されるハードウェア実装において、トリビュタリ処理ユニット31は、トリビュタリボード31aであり得、サービス切り替えユニット32はクロス接続ボード32aであり得、ライン処理ユニット33はラインボード33aであり得る。トリビュタリボード31a、クロス接続ボード32aおよびラインボード33aは、メインコントロールボード34aに接続され得る。メインコントロールボード34aは、アド/ドロップノード200の制御センタであり、トリビュタリボード31a、クロス接続ボード32aおよびラインボード33aを制御して、本願において提供される方法における対応する段階を実行するように構成される。より簡潔にするために、図3aは、1つのトリビュタリボード31aおよび1つのラインボード33aがメインコントロールボード34aに接続されていることを示す。実際の実装では、各トリビュタリボード31aおよび各ラインボード33aは、メインコントロールボード34aに接続され得る。任意選択的に、アド/ドロップノード200は、補助的光学処理ユニット35aをさらに含み得、補助的光学処理ユニット35aは、光増幅(optical amplification、OA)ユニット、光多重化(optical multiplexing、OM)ユニット、光逆多重化(optical de−multiplexing、OD)ユニット、単一チャネル光監視チャネル(optical supervisory channel、OSC)ユニット、ファイバインタフェースユニット(fiber interface unit、FIU)等を含み得る。
本願の例では、図1における送信ノード300の概略構造図が、図4に示され得る。図4に示される送信ノード300は、1または複数のソースライン処理ユニット41、サービス切り替えユニット42および1または複数の宛先ライン処理ユニット43を含み得る。ソースライン処理ユニット41は、送信ノード300の入力端を用いて、アド/ドロップノード200または別の送信ノード300により送信されるデータブロックを受信するように構成され得、次に、サービス切り替えユニット42は、当該データブロックを対応する宛先ライン処理ユニット43と交換する。サービス切り替えユニット42が、ソースライン処理ユニット41から送信されるクライアントサービスを特定の宛先ライン処理ユニット43と交換することは、本願において限定されない。具体的な実装プロセスについては、従来技術を参照されたい。宛先ライン処理ユニット43は、送信ノード300の出力端を用いて、送信ノード300から受信したクライアントサービスを出力するように構成され得る。
図4aに示されるように、(ライン処理ユニット33および/または宛先ライン処理ユニット43を含む)ライン処理ユニットは、キューキャッシュモジュール431およびレート監視モジュール432を含み得、任意選択的に、ポリシスケジューリングモジュール433をさらに含み得る。任意選択的に、ライン処理ユニットは、レート適合モジュール434をさらに含み得る。モジュールの間の接続関係の例が、図4に示される。各モジュールの機能については、以下の説明を参照されたい。
ハードウェア実装において、ソースライン処理ユニット41はソースラインボード41aであり得、サービス切り替えユニット42はクロス接続ボード42aであり得、宛先ライン処理ユニット43は宛先ラインボード43aであり得る。図4bに示されるように、ソースラインボード41a、クロス接続ボード42aおよび宛先ラインボード43aは、メインコントロールボード44aに接続され得る。メインコントロールボード44aは、送信ノード300の制御センタであり、ソースラインボード41a、クロス接続ボード42aおよび宛先ラインボード43aを制御して、本願において提供される方法における対応する段階を実行するように構成される。より簡潔にするために、図4bは、1つのソースラインボード41aおよび1つの宛先ラインボード43aがメインコントロールボード44aに接続されていることを示す。実際の実装では、各ソースラインボード41aおよび各宛先ラインボード43aは、メインコントロールボード44aに接続され得る。任意選択的に、送信ノード300は、補助的光学処理ユニット45aをさらに含み得る。補助的光学処理ユニット45aの具体的な実装については、補助的光学処理ユニット35aを参照されたい。
本明細書における「複数の」という用語は、少なくとも2つを指すことに留意すべきである。
本明細書における「第1の」、「第2の」等の用語は、異なる対象物を区別することを意図しているに過ぎず、対象物の順序を限定しているわけではない。例えば、第1のアド/ドロップノードおよび第2のアド/ドロップノードは、異なるアド/ドロップノードを区別することを意図しているに過ぎず、第1のアド/ドロップノードおよび第2のアド/ドロップノードの順序を限定しているわけではない。
本明細書における「および/または」という用語は、関連対象物を説明するための対応関係のみを説明しており、3つの関係が存在し得ることを表している。例えば、Aおよび/またはBは、Aのみが存在する、AおよびBの両方が存在する、Bのみが存在する、という3つの場合を表し得る。加えて、本明細書における「/」という文字は一般に、関連対象物間の「または」の関係を示す。ある式において、「/」は一般に、関連対象物が「割り切れる」関係を有しているのを意味していることが理解され得る。
以下では、本願の実施形態における技術的解決手段を詳細に説明する。
以下の具体的な例は、本願において提供される技術的解決手段が、図5に示されるシステムアーキテクチャに適用される例を用いて説明されることに留意すべきである。図5に示されるシステムアーキテクチャは、図1に示されるシステムアーキテクチャの具体的な実装である。図5において、クライアントデバイス1は、アド/ドロップノード1、送信ノード1およびアド/ドロップノード2を用いて、クライアントサービス1をクライアントデバイス4へ送信し、クライアントデバイス2は、アド/ドロップノード1、送信ノード1およびアド/ドロップノード2を用いて、クライアントサービス2をクライアントデバイス5へ送信し、クライアントデバイス3は、アド/ドロップノード1、送信ノード2およびアド/ドロップノード3を用いて、クライアントサービス3をクライアントデバイス5へ送信する。実際には、本願において提供される技術的解決手段は、1つの送信エンドクライアントデバイスが複数のクライアントサービスをアド/ドロップノードへ送信するシナリオにも適用され得る。当該シナリオの基本原則については、以下の説明を参照されたい。
加えて、クライアントサービスのデータブロックに対するキャッシュ、レート監視、ポリシスケジューリング、レート適応化等のオペレーションが送信ノードに適用される例が、以下で説明のために用いられることに留意すべきである。実際の実装では、これらのオペレーションの1または複数は、(第1のアド/ドロップノードおよび/または第2のアド/ドロップノードを含む)アド/ドロップノードにも適用され得る。本シナリオの具体的な実装プロセスについては、送信ノードへのこれらのオペレーションの適用についての説明を参照されたい。詳細は、本願においてここでは改めて説明されない。
図6は、本願の実施形態によるクライアントサービス送信方法の概略相互作用図を示す。図6に示される方法は、以下の段階S101からS104を含み得る。
S101.複数の送信エンドクライアントデバイスが、クライアントサービスを、データパケットの形式または連続するデータストリームの形式で、第1のアド/ドロップノードへ送信する。第1のアド/ドロップノードは、図5におけるアド/ドロップノード1であり得、以下で説明のための例として用いられる。
複数の送信エンドクライアントデバイスは、アド/ドロップノード1に接続された任意の複数の送信エンドクライアントデバイスであり得る。複数の送信エンドクライアントデバイスの任意の1または複数の送信エンドクライアントデバイスは、クライアントサービスをアド/ドロップノード1へ連続的または不連続的に送信し得る。
図5に示されるシステムアーキテクチャに基づいて、S101は、クライアントデバイス1がクライアントサービス1をアド/ドロップノード1へ送信し、クライアントデバイス2がクライアントサービス2をアド/ドロップノード1へ送信し、クライアントデバイス3がクライアントサービス3をアド/ドロップノード1へ送信することを含み得る。
S101の前に、方法は、各送信エンドクライアントデバイスが、クライアントサービス(例えば、クライアントサービス1、2または3)の帯域幅を制御層に適用することにより、制御層が、クライアントサービスを送信するための特定の帯域幅を送信エンドクライアントデバイスのために確保するようアド/ドロップノード1を制御する段階をさらに含み得る。クライアントサービスの帯域幅は、送信エンドクライアントデバイスにより、要件(例えば、送信予定のクライアントサービスのサイズおよび予測送信遅延の要件)に従って決定され得る。同じ送信エンドクライアントデバイスが異なるクライアントサービスを送信する場合、当該クライアントサービスの帯域幅は、同じであり得るか、または異なり得る。異なる送信エンドクライアントデバイスが同じクライアントサービスを送信する場合、当該クライアントサービスの帯域幅は、同じであり得るか、または異なり得る。このことは、本願において限定されない。
本願の例では、制御を容易にするために、単位帯域幅(すなわち、最小帯域幅粒度)がシステムにおいて設定される。各送信エンドクライアントデバイスは、クライアントサービスの帯域幅を単位帯域幅の整数倍に設定し得る。例えば、単位帯域幅が2Mbpである場合、クライアントサービスの帯域幅は、n×2Mbpであり得る。nは、1以上の整数であり得る。
S102.第1のアド/ドロップノードが、複数の送信エンドクライアントデバイスにより送信されるクライアントサービスを受信し、受信したクライアントサービスを複数の固定長データブロックへと分割し、各データブロックを用いて1つのスライスを生成し、ルーティング情報に従って、各スライスを対応する送信ノードに出力する。
段階S102は、以下のとおり理解され得る。アド/ドロップノード1が、受信したクライアントサービスをベアラコンテナにマッピングする。各ベアラコンテナは、1つのデータブロックを保持するために用いられる。「ベアラコンテナ」は、データブロック分割プロセスをより鮮明に説明するために提案される論理的概念であり、実際には存在し得ないことが理解され得る。
図5に示されるシステムアーキテクチャに基づいて、S102は、アド/ドロップノード1が、クライアントデバイス1により送信されるクライアントサービス1、クライアントデバイス2により送信されるクライアントサービス2およびクライアントデバイス3により送信されるクライアントサービス3を受信し、クライアントサービス1、2および3を複数の固定長データブロックへと等しく分割し、各データブロックを用いて、1つのスライスを生成することを含み得る。次に、アド/ドロップノード1は、クライアントサービス1の各スライスを送信ノード1に出力し、クライアントサービス2の各スライスを送信ノード1に出力し、クライアントサービス3の各スライスを送信ノード2に出力する。
1または複数のデータパケットまたは連続するデータストリームを受信した場合、アド/ドロップノード1は、一連の受信時間に従って、受信したデータパケットまたは連続するデータストリームを複数のデータブロックへと分割し得る。各データブロックは、固定長を有し得る。すなわち、アド/ドロップノード1は、任意の送信エンドクライアントデバイスにより送信される任意の受信クライアントサービスを、複数の固定長データブロックへと等しく分割する。説明を容易にするために、当該データブロックが固定長を有する例が、本願における説明のために用いられる。実際の実装では、異なるデータブロックの長さは、等しくなり得ない。本明細書における「データブロック」は、クライアントサービスを含み、任意選択的に、クライアントサービスのいくつかの関連情報等をさらに含み得ることが理解され得る。
例えば、固定長データブロックの長さは123バイトであると仮定する。クライアントサービスの帯域幅が2Mbpである場合、アド/ドロップノード1に入力されるデータブロックの平均レートは、2Mbp/123バイトデータブロック/秒である。すなわち、アド/ドロップノード1のトリビュタリ処理ユニットがコンテナを形成する場合、平均で毎秒2Mbp/123バイトのデータブロックが生成される。クライアントサービスの帯域幅が4Mbpである場合、アド/ドロップノード1に入力されるデータブロックの平均レートは、4Mbp/123バイトデータブロック/秒である。
データブロックの処理(例えば、交換および送信)中に(第1のアド/ドロップノード、第2のアド/ドロップノードおよび/または送信ノードを含む)ベアラネットワークデバイスがデータブロックを認識することを可能にするために、本願の実施形態において、アド/ドロップノード1は、受信したデータパケットまたは連続するデータストリームを複数の固定長データブロックへと分割した後に、1つのラベル(label)を各データブロックに追加し得る。送信エンドクライアントデバイスによりアド/ドロップノード1へ送信される異なるタイプのクライアントサービスの送信フォーマットは異なり得るので、実装を容易にするために、本願は、図7に示されるように、データブロックのフォーマットを提供する。アド/ドロップノード1へ送信される任意のタイプのクライアントサービスのフォーマットは、図7に示されるフォーマットに変換され得る。図7において、データブロックのフォーマットは、ラベルおよびペイロードエリアを含み得る。任意選択的に、データブロックのフォーマットは、周期的冗長検査(cyclic redundancy check、CRC)エリアをさらに含み得る。
ラベルは、グローバルラベルであり得るか、またはラインインタフェースローカルラベルであり得る。グローバルラベルは、システムにおける各デバイスにより認識可能なラベルであり得る。ラインインタフェースローカルラベルは、互いに直接通信する2つのデバイスにより認識可能なラベルであり得る。グローバルラベルと比較すると、ラインインタフェースローカルラベルは、より少ないビット数を占有する。ラベルがラインインタフェースローカルラベルである例が、以下で説明のために用いられる。データブロックのラベルはさらに、異なるクライアントサービスを区別するために用いられ得ることが理解され得る。データブロックのラベルは、制御層により構成され得る。ペイロードエリアは、クライアントサービスを保持するために用いられ、任意選択的に、さらに、クライアントサービスのいくつかの関連情報等を保持するために用いられ得る。CRCエリアは、チェックビットを保持するために用いられる。チェックビットは、ペイロードエリアにおいて保持される情報の完全性をチェックするために用いられ得る。当然ながら、具体的な実装において、完全性のチェックは、代替的に別の方式で実装され得るが、これは、CRCに限定されない。
ラベル、ペイロードエリアまたはCRCエリアのいずれか1つにより占有されるビットのサイズは、本願において限定されない。図7において、ラベルが4バイト(Byte)を占有し、ペイロードエリアが123バイトを占有し、CRCエリアが1バイトを占有する例が、説明のために用いられる。図7に示される「データブロック」を、受信したクライアントサービスをアド/ドロップノード1が分割する「データブロック」と区別するために、本願では、(図7に示される)ラベルを含むデータブロックは、「スライス」と称されることに留意すべきである。各データブロックは、1つのスライスに対応し、各データブロックは、当該データブロックに対応するスライスのペイロードエリアにおいて保持される情報とみなされ得る。
任意選択的に、1アド/ドロップノード1の入力端と出力端との間に1対多の関係がある場合、例えば、異なる経路を用いて、1つのクライアントサービスが異なる受信エンドクライアントデバイスへ送信される場合、アド/ドロップノード1がデータブロックを処理する手順は、アド/ドロップノード1が、ラベルをデータブロックに追加し、ルーティング情報に従って、当該ラベルをラベルbで置換し、CRCを再計算することを含み得る。ラベルの置換は、アド/ドロップノード1におけるトリビュタリ処理ユニット、サービス切り替えユニットまたはライン処理ユニットのいずれか1つにより実行され得る。具体的な実装プロセスが図8に示され得る。
図9は、S102の実装プロセスの概略図を示す。図9において、アド/ドロップノード1のトリビュタリ処理ユニット31が、受信したデータパケットまたは連続するデータストリームを複数のデータブロックへと分割し、各データブロックを用いて1つのスライスを生成する例が、説明のために用いられる。
S103.送信ノードが、第1のアド/ドロップノードにより送信される、クライアントサービスのスライスを受信し、ルーティング情報に従って、受信したスライスに対して交換オペレーションを実行し、交換されたスライスが属する、各々が1つのキャッシュキューに対応するクライアントサービスに従って、交換されたスライスをキャッシュし、各クライアントサービスのスライスに対してレート監視オペレーションを別個に実行し、レート監視対象クライアントサービスに対してポリシスケジューリングオペレーション、レート適合オペレーション等を実行し、前述のオペレーションが実行されるスライスを次のルーティングノードへ送信する。次のルーティングノードは、次の送信ノードまたは第2のアド/ドロップノードであり得る。次のルーティングノードが第2のアド/ドロップノードである場合、S104が実行される。次のルーティングノードが送信ノードである場合、送信ノードは、次のルーティングノードが第2のアド/ドロップノードになるまでS103を実行し続け、次に、S104が実行される。
キャッシュスペースは通常、全てのキャッシュキューにより共有されることが理解され得る。送信ノードが送信ノードのベアラ能力範囲内でクライアントサービスを受信する度に、送信ノードは、キャッシュキューをクライアントサービスのために割り当て得る。
図5に示されるシステムアーキテクチャに基づいて、第2のアド/ドロップノードは、アド/ドロップノード2およびアド/ドロップノード3を含み得る。S103は、送信ノード1が、アド/ドロップノード1により送信されるクライアントサービス1および2のスライスを受信し、クライアントサービス1および2のスライスをアド/ドロップノード2へ送信し、送信ノード2が、アド/ドロップノード1により送信されるクライアントサービス3のスライスを受信し、クライアントサービス3のスライスをアド/ドロップノード3へ送信することを含み得る。
送信ノードが、ルーティング情報に従って、受信したスライスに対して交換オペレーションを実行することは、送信ノードが、ルーティング情報に従って、スライスの次のルーティングノードを決定し、次に、交換オペレーションを実行することを含み得ることが理解され得る。任意選択的に、データブロックのラベルがラインインタフェースローカルラベルである場合、送信ノードはさらに、交換オペレーションを実行するプロセスにおいてラベル置換動作を実行する必要がある。例えば、図5に示されるシステムアーキテクチャに基づいて、アド/ドロップノード1により送信ノード2へ送信されるクライアントサービス3のデータブロックラベルがラベルbである場合、送信ノード2は、交換オペレーションを実行するプロセスにおいてラベルbをラベルcで置換し得、任意選択的に、送信ノード2は、データブロックのCRCを再計算し得る。当該プロセスの具体的な実装については、図8を参照されたい。ラベルbは、アド/ドロップノード1および送信ノード2により認識可能なラベルであり、ラベルcは、送信ノード2およびアド/ドロップノード3により認識可能なラベルである。
本願の例では、送信ノードは、クライアントサービスのスライスを受信した後に、スライスに含まれるCRCに従って、完全性チェックを実行し得、当該チェックが成功した場合、レート監視、ポリシスケジューリングおよびレート適応化を実行する。任意選択的に、当該チェックが失敗した場合、スライスは破棄される。
送信ノードの概略構造図が図4に示される場合、交換オペレーションはサービス切り替えユニット42により実行され得、キャッシュオペレーションはキューキャッシュモジュール431により実行され得、レート監視オペレーションはレート監視モジュール432により実行され得、ポリシスケジューリングオペレーションはポリシスケジューリングモジュール433により実行され得、レート適合オペレーションはレート適合モジュール434により実行され得ることが理解され得る。レート監視オペレーション、ポリシスケジューリングオペレーションおよびレート適合オペレーションの関連する説明および具体的な実装については、以下の説明を参照されたい。
図10は、S103の実装プロセスの概略図を示す。図10において、送信ノードの2つの入力端に入力される複数のクライアントサービスが1つの出力端へ送信される例が、説明のために用いられる。小さい矩形グリッドの各々は1つのスライスを表し、小さい陰影付きグリッドの各々は1つのクライアントサービスを表し、キャッシュキューにおける小さいブランクグリッドの各々は、キャッシュキューに格納されているスライスがないことを表す。キューのキャッシュおよびレート監視は、各クライアントサービスに対して別個に実行される。ポリシスケジューリングおよびレート適応化が複数のクライアントサービスに対して一様に実行された後に、複数のクライアントサービスは、出力端から出力される。
S104.第2のアド/ドロップノードが、送信ノードにより送信される、クライアントサービスのスライスを受信し、各スライスにおけるデータブロックを取得し、一連の受信時間において同じクライアントサービスのデータブロックをデータパケットの形式または連続するデータストリームの形式に復元し、クライアントサービスを対応する受信エンドクライアントデバイスへ送信する。受信エンドクライアントデバイスは、第2のアド/ドロップノードにより送信されるクライアントサービスを受信する。
図5に示されるシステムアーキテクチャに基づいて、S104は、アド/ドロップノード2が、送信ノード1により送信されるクライアントサービス1のスライス受信し、クライアントサービス1のスライスをデータパケットの形式または連続するデータストリームの形式に復元し、データパケットまたは連続するデータストリームをクライアントデバイス4へ送信することを含み得る。クライアントデバイス4は、アド/ドロップノード2により送信されるクライアントサービス1を受信する。アド/ドロップノード2は、送信ノード1により送信されるクライアントサービス2のスライスを受信し、クライアントサービス2のスライスをデータパケットの形式または連続するデータストリームの形式に復元し、データパケットまたは連続するデータストリームをクライアントデバイス5へ送信する。アド/ドロップノード3は、送信ノード2により送信されるクライアントサービス3のスライスを受信し、クライアントサービス3のスライスをデータパケットの形式または連続するデータストリームの形式に復元し、データパケットまたは連続するデータストリームをクライアントデバイス5へ送信する。クライアントデバイス5は、アド/ドロップノード3により送信されるクライアントサービス2および3を受信する。
本願の例では、第2のアド/ドロップノードは、クライアントサービスのスライスを受信した後に、スライスに含まれるCRCに従って、完全性チェックを実行し得、当該チェックが成功した場合、スライスにおけるラベルを削除し、スライスにおけるデータブロックを取得する。
S104の具体的な実装プロセスの概略図は、図9のプロセスとは逆であり得る。
以下では、S103におけるレート監視、ポリシスケジューリングおよびレート適応化などのオペレーションを説明する。
1.レート監視
レート監視は、本願において提供されるクライアントサービスの出力レートを制御するための技術であり、輻輳の発生確率を低減し、さらには、輻輳の発生を回避するのに役立つ。具体的には、複数のカウンタが送信ノードに設定され、各クライアントサービスは、1つのカウンタに対応し得、各カウンタは、クライアントサービスの出力レートを制御するために用いられる。次に、複数のデータブロックが、複数の送信期間において送信される。各送信期間において、カウンタのカウント値が、予め設定された閾値に達した場合、複数のデータブロックの少なくとも1つのデータブロックが送信される。カウンタは、ソフトウェアまたはハードウェアにより実装され得、このことは、本願において限定されない。送信ノードは、各クライアントサービスに対してレート監視を別個に実行し得る。
本願の例では、レート監視は、クライアントサービスの出力レートに対して実行される。図11に示されるように、各送信期間において、(具体的には、送信ノードにおけるレート監視モジュール432であり得る)送信ノードは、以下の段階S201からS205を実行し得る。
S201.カウンタの各カウント期間において、カウンタのカウント値を、予め設定された閾値以下であるCだけ上げる。
S202.カウンタのカウント値が予め設定された閾値に達しているかどうかを判断する。
カウンタのカウント値が予め設定された閾値に達している場合、S203が実行され、または、カウンタのカウント値が予め設定された閾値に達していない場合、S201が実行される。
S203.クライアントサービスのキャッシュキューがカウンタに対応するクライアントサービスのデータブロックをキャッシュしているかどうかを判断する。
クライアントサービスのキャッシュキューがカウンタに対応するクライアントサービスのデータブロックをキャッシュしている場合、S204が実行される。クライアントサービスのキャッシュキューがカウンタに対応するクライアントサービスのデータブロックをキャッシュしていない場合、S205が実行される。
S204.キャッシュキューから少なくとも1つのデータブロックを取得し、少なくとも1つのデータブロックを送信する。
S204が実行された後に、この送信期間が終了する。
S205がカウンタのカウントを停止させる。
S205が実行された後に、S203が実行される。
レート監視を実行するプロセスにおいて、送信ノードは、第1のアド/ドロップノードにより送信されるクライアントサービスを連続的または不連続的に受信するか、または別の送信ノードにより送信されるクライアントサービスを定期的に受信することが理解され得る。従って、キャッシュキューが、クライアントサービスをキャッシュしないときは、S205が実行された後に、S203が実行される。この場合、キャッシュキューがクライアントサービスをキャッシュ済みであり得ることにより、S204が実行され得る。加えて、具体的な実装において、時間間隔の長さも設定され得る。このように、カウンタが長さのカウントを停止した場合において、S203が実行されるときは、キャッシュキューは、依然としてクライアントサービスをキャッシュしておらず、このことは、クライアントサービスの送信が終了したものとみなされ得る。長さの具体的な値は、本願において限定されない。
前述のS201からS205は、1つの送信期間におけるレート監視プロセスを説明している。複数の送信期間においては、任意選択的に、カウンタは、各送信期間において初期値からカウントを開始する。異なる送信期間の初期値は、同じであり得るか、または異なり得る。本願の実施形態において、(i+1)番目の送信期間において、カウンタの初期値は、i番目の送信期間の終了時のカウンタのカウント値から予め設定された閾値を減算することにより取得される値であり、iは1以上の整数である。本願の別の実施形態では、各送信期間において、カウンタの初期値は、予め設定された閾値未満の固定値、例えば、0であり得る。
送信期間は、データブロックを送信する2つの連続する時点の間の時間間隔を指す。1または複数のデータブロックが毎回送信され得る。送信期間は、予め設定された値ではないことがあり、カウンタのカウント値に関連する。さらに、カウント値が予め設定された閾値に達している場合、送信期間は、クライアントサービスがキャッシュされているかどうかに関連する。任意の2つの送信期間内で、カウント値が予め設定された閾値に達している場合において、キャッシュキューがクライアントサービスをキャッシュしているときは、2つの送信期間は等しい。あるいは、カウント値が予め設定された閾値に達しているが、カウンタがカウントを停止する期間が等しい場合、キャッシュキューは、クライアントサービスをキャッシュせず、2つの送信期間は等しい。カウント値が予め設定された閾値に達している場合において、キャッシュキューがクライアントサービスをキャッシュしていないときは、カウンタがカウントを停止する期間は等しくなく、2つの送信期間は等しくない。
カウント値が予め設定された閾値に達している場合において、キャッシュキューがクライアントサービスをキャッシュしているときは、送信期間は、カウント期間の予め設定された数と等しく、カウント値が予め設定された閾値に達している場合において、キャッシュキューがクライアントサービスをキャッシュしていないときは、送信期間は、カウント期間およびカウントを停止する長さの予め設定された数と等しいことが理解され得る。このことに基づいて、本願において提供されるレート監視プロセスは、カウンタのカウント値が予め設定された閾値に達している場合、クライアントサービスを送信するための1回の機会がある、すなわち、送信ノードには、クライアントサービスのデータブロックを送信するための1回の機会があることが理解され得る。少なくとも1つのデータブロックが、各送信機会において送信され得る。このことに基づいて、データブロックの出力レートが制御される。すなわち、クライアントサービスの出力レートが制御される。
全ての送信期間において送信されるデータブロックの数は、同じであり得るか、または異なり得る。出力レートが特定の範囲内で一定であることを保証するために、本願では「データブロック送信期間」という概念が導入されている。データブロック送信期間は、1または複数の送信期間を含み得る。全てのデータブロック送信期間において送信されるデータブロックの数は同じである。
例えば、各データブロック送信期間は、2つの送信期間を含み、1つのデータブロックが2つの送信期間の1つにおいて送信され、2つのデータブロックが他の送信期間において送信される。この場合、複数の送信期間において送信されるデータブロックの数は、1、2、1、2、1、2、…または1、2、2、1、1、2、1、2、2、1であり得る。データブロックの出力レートがデータブロック送信期間当たり一定であることを保証すべく、各送信期間において送信されるデータブロックの数を制御することにより、全てのデータブロック送信期間において送信されるデータブロックの数を同じにし得ることが、この例から理解され得る。データブロックの実際の出力レートは、一定の出力レート未満であることが理解され得る。従って、各送信期間の長さおよび各送信期間において送信されるデータブロックの数が制御されることを条件として、一定の出力レートが維持され得る。このことは、出力ラインインタフェースでの輻輳の発生確率を低減するのに役立つ。
別の例では、各データブロック送信期間は、1つの送信期間を含み、2つのデータブロックが当該送信期間において送信される。この場合、複数の送信期間において送信されるデータブロックの数は、2、2、2、…であり得る。この例では、データブロック送信期間は送信期間と等しいことが理解され得る。従って、各送信期間の長さおよび各送信期間において送信されるデータブロックの数が制御されることを条件として、一定の出力レートが維持され得る。このことは、出力ラインインタフェースでの輻輳の発生確率を低減するのに役立つ。
カウント期間は、カウンタのカウント値を毎回更新するために必要とされる期間を指す。実際の実装では、カウント期間は、パルス信号を用いて実装され得る。例えば、パルス周期がカウント期間と等しい場合、カウンタのカウント値は、各パルス周期でCだけ上がる。任意選択的に、カウント期間は、ラインインタフェースのデータブロック送信時間と等しくなり得る。例えば、出力ラインインタフェース帯域幅が100Gbpであり、データブロックが位置するスライスの長さが128バイトである場合、ラインインタフェースのデータブロック送信時間は、128バイト/100Gbp=10.24ns(ナノ秒)である。当然ながら、カウント期間は、代替的に、ラインインタフェースのデータブロック送信時間より大きいことがあり得る。
カウンタのカウント値の物理的意味は、本願において限定されない。以下では、いくつかの実装を列挙する。
方式1:Cは、カウント回数の数である。この場合、カウンタのカウント値は、各カウント期間において1だけ上げられる。予め設定された閾値の値は、以下のとおり、方式2での値変換により取得され得る。詳細は、ここでは改めて説明されない。当然ながら、予め設定された閾値の値は、代替的に、別の方式で取得され得、このことは、本願において限定されない。
方式2:Cは、クライアントサービスの帯域幅に従って決定される。この場合、任意選択的に、予め設定された閾値は、出力ラインインタフェース帯域幅に従って決定される。
任意選択的に、Cは、クライアントサービスの帯域幅と単位帯域幅との比であり、予め設定された閾値は、出力ラインインタフェース帯域幅と単位帯域幅の調整値との比である。単位帯域幅の調整値は、単位帯域幅以上である。実装を容易にするために、予め設定された閾値は、整数に設定され得ることに留意すべきである。この場合、出力ラインインタフェース帯域幅と単位帯域幅の調整値との比が非整数である場合、予め設定された閾値は、非整数を切り下げることにより取得される整数であり得る。当然ながら、具体的な実装において、予め設定された閾値は、代替的に、非整数に設定され得、このことは、本願において限定されない。
単位帯域幅のより大きい調整値は、より小さい決定される予め設定された閾値を示すことが理解され得る。この場合、カウンタのカウント値は、予め設定された閾値により容易に達する。従って、より短い送信期間は、より多い送信機会とより高い出力レートとを示す。加速度は、クライアントサービスの出力レートのわずかな突然の変化をなくすことにより、輻輳の発生を回避することが意図されている。
本願の例では、Cがクライアントサービスの帯域幅と単位帯域幅との比である場合、予め設定された閾値は、出力ライン帯域幅(すなわち、ライン物理レート)以下であり得、加速係数により乗算される単位帯域幅の整数倍の値である。例えば、単位帯域幅が2Mbpであり、クライアントサービスの帯域幅が10Mbpである場合、Cは、10Mbp/2Mbp=5であり得る。出力ラインインタフェース帯域幅が100Gbpであり、単位帯域幅の調整値が単位帯域幅の1001/1000である、すなわち、加速係数が1001/1000である場合、(Pとしてマークされる)予め設定された閾値は、100Gbp/(2Mbp×1001/1000)を切り下げることにより取得される値、すなわち、49950であり得る。言い換えると、本願において、レート監視を通じて、データブロックのリアルタイムの出力レートは、おおよそ、クライアントサービスの帯域幅以下であり得る。このことに基づいて、制御層は、出力ラインインタフェース帯域幅で送信されるクライアントサービスの帯域幅の和以下になるように、送信ノードの出力ライン帯域幅の和を制御し得る。従って、クライアントサービスの各々が前述の方法に従って制御される場合、このことは、出力ライン帯域幅での輻輳の発生確率を低減するのに役立つ。
本願の例では、カウンタのカウント値は、任意の送信期間の各カウント期間においてCだけ上げられる。カウンタのカウント値がPに達した場合、クライアントサービスを送信する1回の機会がある。クライアントサービスに対応するキャッシュキューがクライアントサービスをキャッシュした場合、クライアントサービスの少なくとも1つのデータブロックが送信される。この時点で、この送信期間は終了する。クライアントサービスに対応するキャッシュキューがクライアントサービスをキャッシュしていない場合、カウンタは、カウントを停止し、キャッシュキューがクライアントサービスをキャッシュした場合、この送信期間は終了する。この送信期間の終了時に、カウンタのカウント値は、初期値に設定される。この時点で、次の送信期間が開始する。
このプロセスは、図12に示されるプロセスを用いて実装され得る。図12において、レート監視モジュール432に配置されたトリガ済み飽和リーキーバケット飽和リーキーバケットは、制御モジュールと等しいことがある。制御モジュールは、各パルス周期でCだけ上があるようカウンタのカウント値を制御し得る。カウンタのカウント値がPに達した場合において、キューキャッシュモジュール431により送信された非ナルインジケーションが検出されたときは、キャッシュキューにおける少なくとも1つのデータブロックは、ポリシスケジューリングモジュール433に出力されるよう制御される。任意選択的に、トリガ済み飽和リーキーバケット飽和リーキーバケットは、リソーススケジューリングを要求すべく、スケジューリング要求をポリシスケジューリングモジュール433へ送信し得る。
2.ポリシスケジューリング
送信ノードは、各クライアントサービスに対してレート監視を別個に実行し、送信ノードに入力された異なるクライアントサービスは、同じ出力端に交換され得る。従って、異なるクライアントサービスのデータブロックがレート監視モジュール432から同時に出力され、同じ出力端に入力される場合があり得る。これにより、輻輳が生じ、結果的に、いくつかのデータブロックが失われる。このことに基づいて、本願は、レート監視オペレーションの後かつ出力の前に、追加のポリシスケジューリングオペレーションを提供する。ポリシスケジューリングは、異なるクライアントサービスの優先順位が異なるクライアントサービスの遅延要件に従って決定され、異なるクライアントサービスは、当該優先順位に従って送信ノードから出力されるスケジューリング技術である。具体的には、ポリシスケジューリングは、レート監視モジュール432から同時に出力され、同じ出力端に入力される異なるクライアントサービスのために設計されたスケジューリング技術である。任意選択的に、ポリシスケジューリングは、以下の内容を含み得る。
クライアントサービスの任意の複数のスライスについては、複数のスライスがポリシスケジューリングモジュール433に次々に入力された場合、複数のスライスは、一連の入力時間で出力される。複数のスライスがポリシスケジューリングモジュール433に同時に入力された場合、複数のスライスは、属するクライアントサービスの絶対優先順位(strict priority、SP)に従って出力される。より高い優先順位のクライアントサービスのスライスは、より低い優先順位のクライアントサービスのスライスの前に出力される。任意の複数のスライスが属するクライアントサービスの優先順位が同じである場合、これらのスライスは、ラウンドロビン(round robin、RR)方式で出力される。このプロセスの概略図が図13に示される。図13は、第1優先順位、第2優先順位および第3優先順位を示す。第1優先順位は第2優先順位よりも高く、第2優先順位は第3優先順位よりも高い。図13において、「H」は、SPに準拠した2つのクライアントサービスのうちの高い方の優先順位のクライアントサービスを示し、「L」は、SPに準拠した2つのクライアントサービスのうちの低い方の優先順位のクライアントサービスを示す。
具体的な実装において、送信ノードがポリシスケジューリングを実行する前の任意の段階において、方法は、送信ノードが、クライアントサービスの予測送信遅延に従ってクライアントサービスの優先順位を決定する段階をさらに含み得る。予測送信遅延は、実際の要件に従って設定される予測値であり、予め設定された値であり得る。異なるクライアントサービスの予測送信遅延は、同じであり得るか、または異なり得る。異なるシナリオにおける同じクライアントサービスの予測送信遅延は、同じであり得るか、または異なり得る。任意選択的に、各優先順位レベルは、1つの予測送信遅延範囲に対応し得る。例えば、予測送信遅延が5μs(マイクロ秒)以下であるクライアントサービスの優先順位は、第1優先順位であり、予測送信遅延が20μs(マイクロ秒)以下であるクライアントサービスの優先順位は、第2優先順位であり、予測送信遅延が50μs(マイクロ秒)以下であるクライアントサービスの優先順位は、第3優先順位である。第1優先順位は第2優先順位よりも高く、第2優先順位は第3優先順位よりも高い。例えば、クライアントサービスの予測送信遅延が5μsである場合、第1優先順位のみが、予測送信遅延を常に満たし得る。第2優先順位などの別の優先順位は、予測送信遅延を満たすことがあり得るが、予測送信遅延を常には満たし得ない。従って、クライアントサービスの優先順位は第1優先順位である。別の例は列挙されない。
本願において提供されるレート監視方法に基づいて、本願の例において、制御層は、異なりクライアントサービスの遅延要件を満たすべく、クライアントサービスの遅延要件およびシステムのサポート能力に従って、対応する送信リソースを割り当て得る。例えば、出力ラインインタフェース帯域幅が100Gbpであり、送信ノードが1つのデータブロックをスケジューリングするための時間が10.24nsであり、サービス切り替えモジュールを用いてデータブロックを送信ノードの入力端から対応するキャッシュキューへ交換するための時間が3μs未満であると仮定する。この場合において、予測送信遅延が5μs未満であるときは、クライアントサービスの優先順位は、第1優先順位である。厳格なレート監視が実行された後のクライアントサービスは輻輳し得ないので、送信遅延の導入は、第1優先順位クライアントサービスのクライアントサービスパイプの数(すなわち、第1優先順位クライアントサービスの数)のみに関連する。システムは、送信遅延が5μs未満である、最高で(5μs−3μs)/10.24ns=195個のクライアントサービスをサポートし得る。すなわち、割り当てられた全ての第1優先順位クライアントサービスパイプの数が195を超えない場合、送信遅延が5μs以内であることが保証され得る。第2優先順位クライアントサービスについては、予測送信遅延が20μs未満である場合、システムは、同じ方法に従って、送信遅延が20μs未満である、(20μs−3μs)/10.24ns=1660個のクライアントサービスパイプをサポートし得る。195個の第1優先順位キューが存在し得ることを考慮して、システムは、システムによりサポートされ得る第3優先順位クライアントサービスの数と、システムによりサポートされ得る第4優先順位クライアントサービスの数とを取得すべく、送信遅延が20μs未満等である1660−195=1465個のクライアントサービスをサポートし得る。このように、対応する送信リソースは、異なるクライアントサービスの遅延要件を満たすべく、クライアントサービスの送信遅延要件およびシステムのサポート能力に従って割り当てられ得る。
3.レート適応化
加速度などの因子の影響に起因して、出力ラインインタフェース帯域幅は、出力ラインインタフェースにより送信される全てのクライアントサービスの帯域幅の和より大きい。従って、レート適応化が必要である。具体的には、特定の時点での全てのクライアントサービスのリアルタイム出力レートの和が出力ラインインタフェース帯域幅未満である場合、無効なデータブロックは、この時点で埋められ、全てのクライアントサービスと共に出力される。レート適応化プロセスにおいて埋められる無効なデータブロックは、データブロックと同じフォーマットであり得、特別なラベルを用いて識別されるか、または、別の長さまたは別のフォーマットのデータブロックが用いられ得る。このことは、本願において限定されない。
上記は、主にネットワーク要素間のインタラクションの観点から、本願の実施形態において提供される解決手段を説明している。前述の機能を実装するために、アド/ドロップノード、送信ノードまたはクライアントデバイスなどの各ネットワーク要素は、各機能を実行するための対応するハードウェア構造および/またはソフトウェアモジュールを含むことが理解され得る。当業者であれば、本明細書において提供される実施形態を参照して説明される例におけるユニットおよびアルゴリズム段階は、本願におけるハードウェアまたはハードウェアとコンピュータソフトウェアとの組み合わせの形態で実装され得ることを容易に認識するはずである。ある機能が、ハードウェアにより実行されるか、またはコンピュータソフトウェアがハードウェアを駆動する方式で実行されるかは、技術的解決手段の具体的な用途および設計上の制約条件によって決まる。当業者であれば、異なる方法を用いて、説明された機能を具体的な用途の各々のために実装し得るが、このことは、当該実装が本願の範囲を越えるものとみなされるべきではない。
本願の実施形態において、機能モジュールの分割は、前述の方法の例に従って、アド/ドロップノード、送信ノードまたはクライアントデバイス上で実行され得る。例えば、各機能モジュールが、対応する機能に従って、分割により取得され得るか、または、少なくとも2つの機能が、1つの処理モジュールに統合され得る。前述の統合されたモジュールは、ハードウェアの形態で実装されても、ソフトウェア機能モジュールの形態で実装されてもよい。本願の実施形態におけるモジュールの分割は例であり、論理機能の分割に過ぎず、実際の実装では他の分割であってもよいことに留意すべきである。
例えば、各機能モジュールが、対応する機能に従って分割により取得される場合、図14は、(具体的には、前述の実施形態において提供される送信ノードまたはアド/ドロップノードであり得る)クライアントサービス送信装置の可能な概略構造図を示す。クライアントサービス送信装置は、受信ユニット501および送信ユニット502を含み得る。
受信ユニット501は、クライアントサービスを受信するように構成され得る。クライアントサービスは、複数のデータブロックを含み、クライアントサービスは、カウンタに対応し、カウンタは、クライアントサービスの出力レートを制御するために用いられる。
送信ユニット502は、複数のデータブロックを複数の送信期間において送信するように構成され得る。カウンタのカウント値が各送信期間における予め設定された閾値に達した場合、複数のデータブロックの少なくとも1つのデータブロックが送信される。
任意選択的に、クライアントサービス送信装置は、制御ユニット503をさらに含み得る。制御ユニット503は、カウンタのカウント値が各送信期間における予め設定された閾値に達する前に、カウンタのカウント値をカウンタの各カウント期間においてCだけ上げるように構成される。Cは、予め設定された閾値以下である。
任意選択的に、Cは、クライアントサービスの帯域幅に従って決定され、予め設定された閾値は、出力ラインインタフェース帯域幅に従って決定される。任意選択的に、Cは、クライアントサービスの帯域幅と単位帯域幅との比であり、予め設定された閾値は、出力ラインインタフェース帯域幅と単位帯域幅の調整値との比であり、単位帯域幅の調整値は、単位帯域幅以上である。
任意選択的に、カウンタは、各送信期間において初期値からカウントを開始する。
任意選択的に、(i+1)番目の送信期間において、カウンタの初期値は、i番目の送信期間の終了時のカウンタのカウント値から予め設定された閾値を減算することにより取得される値であり、iは1以上の整数である。
任意選択的に、制御ユニット503はさらに、カウンタのカウント値が各送信期間における予め設定された閾値に達した場合において、クライアントサービスがキャッシュされていないときは、カウンタのカウントを停止するように構成され得る。
任意選択的に、クライアントサービス送信装置は、クライアントサービスをキャッシュキューに格納するように構成されるストレージユニット504と、カウンタのカウント値が予め設定された閾値に達した場合、キャッシュキューから少なくとも1つのデータブロックを取得するように構成される取得ユニット505とをさらに含み得る。
任意選択的に、複数のデータブロックの各データブロックは、固定長を有する。
任意選択的に、送信ユニット502は具体的には、クライアントサービスの優先順位に従って、複数のデータブロックの少なくとも1つのデータブロックを送信するように構成され得る。より短い予測送信遅延は、より高い優先順位を示す。
前述の方法の実施形態における段階の関連する内容の全ては、対応する機能モジュールの機能の説明に引用され得る。詳細はここでは説明されない。
本願の実施形態において、クライアントサービス送信装置は、対応する機能に従って分割により取得される機能モジュールの形態で示されるか、または、統合方式での分割により取得される機能モジュールの形態で示される。本明細書における「ユニット」は、ASIC、回路、1または複数のソフトウェアまたはファームウェアプログラムを実行するプロセッサ、メモリ、集積論理回路、および/または前述の機能を提供し得る別のコンポーネントであり得る。
単純な実施形態において、当業者であれば、前述のクライアントサービス送信装置は、図2に示される形態で実装され得ることに想到し得る。例えば、図14における受信ユニット501および送信ユニット502は、図2における通信インタフェース23を用いて実装され得る。図14におけるストレージユニット504は、図2におけるメモリ22を用いて実装され得る。図14における制御ユニット503および取得ユニット505は、メモリ22に格納されたアプリケーションプログラムコードを呼び出すよう、図2におけるプロセッサ21を用いて実装され得る。本願の本実施形態によっては、これらに対していかなる限定も課されない。
機能モジュールの分割は、図4または図5に示されるクライアントサービス送信装置および図14に示されるクライアントサービス送信装置に対して異なる観点から実行されることが理解され得る。例えば、図14における制御ユニット503、ストレージユニット504および取得ユニット505は、図4における宛先ライン処理ユニット43を用いて実装され得る。具体的には、制御ユニット503は、図5におけるレート監視モジュール432を用いて実装され得、ストレージユニット504および取得ユニット505は、図5におけるキューキャッシュモジュール431を用いて実装され得る。
前述の実施形態の全てまたはいくつかは、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせにより実装されてよい。ソフトウェアプログラムが実施形態を実装するために用いられる場合、実施形態は、全体的または部分的に、コンピュータプログラム製品の形態で実装され得る。コンピュータプログラム製品は、1または複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータ上でロードおよび実行された場合、本願の実施形態による手順または機能は、全体的または部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワークまたは別のプログラム可能な装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されても、コンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ伝送されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバまたはデータセンタから、別のウェブサイト、コンピュータ、サーバまたはデータセンタへ、有線方式(例えば、同軸ケーブル、光ファイバ)もしくはデジタル加入者線(digital subscriber line、DSL)で、または無線方式(例えば、赤外線、電波、またはマイクロ波)で伝送され得る。コンピュータ可読記憶媒体は、コンピュータがアクセス可能な任意の使用可能な媒体であっても、1または複数の使用可能な媒体を統合したサーバデータセンタなどのデータストレージデバイスであってもよい。この使用可能な媒体は、磁気媒体(例えば、フロッピーディスク(登録商標)、ハードディスクまたは磁気テープ)、光媒体(例えば、DVD)、半導体媒体(例えば、ソリッドステートディスク(SSD))等であり得る。
[項目1]
光伝送ネットワーク(OTN)に適用されるクライアントサービス送信方法であって、
複数のクライアントサービスを保持するために用いられる複数のデータブロックを受信する段階と、
上記複数のデータブロックの各データブロックに含まれるラベルに基づいて、上記データブロックに対して交換を実行する段階と、
交換された上記データブロックをキャッシュして、複数のキャッシュキューを取得する段階であって、上記複数のキャッシュキューのうちの同じキャッシュキューに属するデータブロックが、同じクライアントサービスを保持するために用いられる、段階と、
上記複数のキャッシュキューにおけるデータブロックに対してレート監視およびポリシスケジューリングを実行し、次に、上記データブロックを送信する段階と
を備える方法。
[項目2]
上記ラベルは、グローバルラベルまたはラインインタフェースローカルラベルである、
項目1に記載の方法。
[項目3]
上記ラベルが上記ラインインタフェースローカルラベルである場合、上記複数のデータブロックに対してラベル置換を実行する段階
をさらに備える、項目2に記載の方法。
[項目4]
上記複数のデータブロックの各データブロックに含まれる上記ラベルに基づいて、上記データブロックに対して交換を実行する上記段階は、
上記データブロックに含まれる上記ラベルに基づいて、上記データブロックの次のルーティングノードを決定する段階と、
上記次のルーティングノードに基づいて、上記データブロックに対して交換を実行する段階と
を有する、
項目1から3のいずれか一項に記載の方法。
[項目5]
レート監視を実行する上記段階は、
上記複数のキャッシュキューのうちの最初のキューのためのカウンタを設定する段階であって、上記カウンタは、上記最初のキューに対応するクライアントサービスの出力レートを制御するために用いられる、段階と、
上記最初のキューにおける複数のデータブロックを複数の送信期間において送信する段階であって、上記カウンタのカウント値が各送信期間における予め設定された閾値に達した場合、上記複数のデータブロックの少なくとも1つのデータブロックが送信される、段階と
を有する、
項目1から4のいずれか一項に記載の方法。
[項目6]
上記カウンタの上記カウント値が各送信期間における上記予め設定された閾値に達する前に、
上記カウンタの各カウント期間において上記カウンタの上記カウント値をCだけ上げる段階であって、Cは、上記予め設定された閾値以下である、段階
をさらに備える、項目5に記載の方法。
[項目7]
Cは、上記クライアントサービスの帯域幅に基づいて決定され、上記予め設定された閾値は、出力ラインインタフェース帯域幅に基づいて決定される、
項目6に記載の方法。
[項目8]
Cは、上記クライアントサービスの上記帯域幅と単位帯域幅との比であり、上記予め設定された閾値は、上記出力ラインインタフェース帯域幅と上記単位帯域幅の調整値との比であり、上記単位帯域幅の上記調整値は、上記単位帯域幅以上である、
項目7に記載の方法。
[項目9]
上記カウンタは、各送信期間において初期値からカウントを開始する、
項目1から8のいずれか一項に記載の方法。
[項目10]
(i+1)番目の送信期間において、上記カウンタの初期値は、i番目の送信期間の終了時の上記カウンタのカウント値から上記予め設定された閾値を減算することにより取得される値であり、iは、1以上の整数である、
項目9に記載の方法。
[項目11]
上記カウンタの上記カウント値が各送信期間における上記予め設定された閾値に達した場合において、上記クライアントサービスがキャッシュされていないときは、上記カウンタのカウントを停止する段階
をさらに備える、項目1から10のいずれか一項に記載の方法。
[項目12]
クライアントサービスを受信する上記段階の後に、
上記クライアントサービスをキャッシュキューに格納する段階と、
上記カウンタの上記カウント値が上記予め設定された閾値に達した場合、上記キャッシュキューから上記少なくとも1つのデータブロックを取得する段階と
をさらに備える、項目1から11のいずれか一項に記載の方法。
[項目13]
上記複数のデータブロックの各データブロックは、固定長を有する、
項目1から12のいずれか一項に記載の方法。
[項目14]
ポリシスケジューリングを実行する上記段階は、
上記複数のキャッシュキューに対応する上記クライアントサービスの優先順位に基づいて、上記複数のキャッシュキューにおける上記複数のデータブロックの上記少なくとも1つのデータブロックを送信する段階であって、クライアントサービスのより短い予測送信遅延は、より高い優先順位を示す、段階
を有する、
項目1から13のいずれか一項に記載の方法。
[項目15]
光伝送ネットワーク(OTN)におけるクライアントサービス送信装置であって、
複数のクライアントサービスを保持するために用いられる複数のデータブロックを受信するように構成される受信ユニットと、
交換された上記データブロックをキャッシュして、複数のキャッシュキューを取得するように構成される処理ユニットであって、上記複数のキャッシュキューのうちの同じキャッシュキューに属するデータブロックが、同じクライアントサービスを保持するために用いられる、処理ユニットと、
上記複数のキャッシュキューにおけるデータブロックに対してレート監視およびポリシスケジューリングを実行し、次に、上記データブロックを送信するように構成される送信ユニットと
を備える装置。
[項目16]
上記ラベルは、グローバルラベルまたはラインインタフェースローカルラベルである、
項目15に記載の装置。
[項目17]
上記ラベルが上記ラインインタフェースローカルラベルである場合、上記処理ユニットはさらに、上記複数のデータブロックに対してラベル置換を実行するように構成される、
項目16に記載の装置。
[項目18]
上記複数のデータブロックの各データブロックに含まれる上記ラベルに基づいて、上記データブロックに対して交換を上記実行することは、
各データブロックに含まれる上記ラベルに基づいて、上記データブロックの次のルーティングノードを決定すること、および
上記次のルーティングノードに基づいて、上記データブロックに対して交換を実行すること
を含む、
項目15から17のいずれか一項に記載の装置。
[項目19]
上記送信ユニットが上記レート監視を実行するように構成されることは、
上記複数のキャッシュキューのうちの最初のキューのためのカウンタを設定することを含み、上記カウンタは、上記最初のキューに対応するクライアントサービスの出力レートを制御するために用いられ、
上記送信ユニットは、上記最初のキューにおける複数のデータブロックを複数の送信期間において送信するように構成され、上記カウンタのカウント値が各送信期間における予め設定された閾値に達した場合、上記複数のデータブロックの少なくとも1つのデータブロックが送信される、
項目15から18のいずれか一項に記載の装置。
[項目20]
上記カウンタの上記カウント値が各送信期間における上記予め設定された閾値に達する前に、上記カウンタの上記カウント値を上記カウンタの各カウント期間においてCだけ上げるように構成される制御ユニットをさらに備え、Cは、上記予め設定された閾値以下である、
項目15から19のいずれか一項に記載の装置。
[項目21]
Cは、上記クライアントサービスの帯域幅に基づいて決定され、上記予め設定された閾値は、出力ラインインタフェース帯域幅に基づいて決定される、
項目20に記載の装置。
[項目22]
Cは、上記クライアントサービスの上記帯域幅と単位帯域幅との比であり、上記予め設定された閾値は、上記出力ラインインタフェース帯域幅と上記単位帯域幅の調整値との比であり、上記単位帯域幅の上記調整値は、上記単位帯域幅以上である、
項目21に記載の装置。
[項目23]
上記カウンタは、各送信期間において初期値からカウントを開始する、
項目15から22のいずれか一項に記載の装置。
[項目24]
(i+1)番目の送信期間において、上記カウンタの初期値は、i番目の送信期間の終了時の上記カウンタのカウント値から上記予め設定された閾値を減算することにより取得される値であり、iは、1以上の整数である、
項目23に記載の装置。
[項目25]
上記カウンタの上記カウント値が各送信期間における上記予め設定された閾値に達した場合において、上記クライアントサービスがキャッシュされていないときは、上記カウンタのカウントを停止するように構成される上記制御ユニット
をさらに備える、項目15から24のいずれか一項に記載の装置。
[項目26]
上記クライアントサービスをキャッシュキューに格納するように構成されるストレージユニットと、
上記カウンタの上記カウント値が上記予め設定された閾値に達した場合、上記キャッシュキューから上記少なくとも1つのデータブロックを取得するように構成される取得ユニットと
をさらに備える、項目15から25のいずれか一項に記載の装置。
[項目27]
上記複数のデータブロックの各データブロックは、固定長を有する、
項目15から26のいずれか一項に記載の装置。
[項目28]
上記送信ユニットが上記ポリシスケジューリングを実行するように構成されることは、具体的には、上記複数のキャッシュキューに対応する上記クライアントサービスの優先順位に基づいて、上記複数のキャッシュキューにおける上記複数のデータブロックの上記少なくとも1つのデータブロックを送信することを含み、クライアントサービスのより短い予測送信遅延は、より高い優先順位を示す、
項目15から27のいずれか一項に記載の装置。
[項目29]
プロセッサと、メモリと、バスと、通信インタフェースとを備えるクライアントサービス送信装置であって、上記メモリは、コンピュータ実行可能命令を格納するように構成され、上記プロセッサ、上記メモリおよび上記通信インタフェースは、上記バスを用いて接続され、上記装置が動作した場合、上記プロセッサは、上記メモリに格納された上記コンピュータ実行可能命令を実行することにより、上記装置が、項目1から10のいずれか一項に記載のクライアントサービス送信方法を実行するようにする、
装置。
[項目30]
項目15から28のいずれか一項に記載のデバイス、第1のデバイスおよび第2のデバイスを備え、
上記第1のデバイスは、上記複数のデータブロックを項目15から28のいずれか一項に記載のデバイスへ送信するように構成され、
上記複数のデータブロックを送信する前に、上記第1のデバイスはさらに、
複数のクライアントサービスを受信し、上記複数のクライアントサービスを分割して複数の他のデータブロックを取得し、
上記複数の他のデータブロックにラベルが追加された後に、上記複数のデータブロックを取得する
ように構成され、
上記第2のデバイスは、
項目15から28のいずれか一項に記載のデバイスにより送信されるデータブロックを受信し、
受信した上記データブロックに含まれるラベルを削除して、クライアントサービスを取得する
ように構成される、
光伝送ネットワーク(OTN)システム。