(57)【要約】本発明の実施形態は、ブロックされているリンクを通じて特定のトラフィックを伝送することに関連する。ネットワークのスイッチ間のリンクの状態が監視される。リンクの状態は、ブロックされている状態とブロックされていない状態とのうちの一方である。ブロックされているリンクは、スパニングツリープロトコル（STP）によって使用されない。ネットワークスイッチのうちの少なくとも１つは、該特定のトラフィックをブロックされているリンクを通じて送るように構成される。【選択図】図５
2015529434.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークの論理トポロジを監視するためのコントローラを備える装置であって、
前記ネットワークは、リンクを介して接続された複数のネットワークスイッチを備え、
前記論理トポロジは、スパニングツリープロトコル（STP）によってブロックされているリンクを有し、
前記コントローラは、前記ブロックされているリンクを通じて特定のトラフィックを送るように、前記ネットワークスイッチのうちの少なくとも１つのネットワークスイッチを構成することができることからなる、装置。
【請求項２】
前記ブロックされているリンクは、前記特定のトラフィックとは別個の一般的なトラフィックによっては使用されず、
前記コントローラは、前記特定のトラフィックが前記ブロックされているリンクを移動できるように、該ブロックされているリンクに関連する前記少なくとも１つのネットワークスイッチのブロックされているポートを構成することができ、
前記コントローラは、前記特定のトラフィックを送るために前記リンクに沿った経路を画定することができ、該経路は前記ブロックされているリンクを含む、請求項１の装置。
【請求項３】
前記経路上にある前記ネットワークスイッチの１つに接続しているどのリンクもブロックされていない場合には、前記コントローラは、前記経路がブロックされていないリンクを含むように該経路を画定することができ、
前記ブロックされていないリンクは、前記一般的なトラフィックによって使用される、請求項２の装置。
【請求項４】
前記少なくとも１つのネットワークスイッチは、前記少なくとも１つのネットワークスイッチのコントロールプレーンをフォワーディングプレーンから分離するソフトウェア・デファインド・ネットワーキング（SDN）アーキテクチャに基づいて、前記特定のトラフィックを前記ブロックされているリンクのうちの１以上のリンクに向けて送ることができ、
前記コントローラは、前記少なくとも１つのネットワークスイッチのフォワーディングプレーンにアクセスして、前記特定のトラフィックを前記ブロックされているポートを通じて送るルールを設定することができることからなる、請求項２の装置。
【請求項５】
前記コントローラは、前記ネットワークスイッチのうちの１つに含まれており、または、前記コントローラは、前記ネットワークスイッチとは別個のより高いレイヤの装置である、請求項２の装置。
【請求項６】
前記コントローラは、前記より高いレイヤの装置であり、
前記コントローラは、前記経路上にある前記ネットワーク装置のうちの１つの装置のポートパラメータを構成して、該構成されたポートパラメータに対応するリンクが、前記STPに望ましくないリンクに見えるようにすることができることからなる、請求項５の装置。
【請求項７】
前記構成されたパラメータによって、前記STPは、前記対応するリンクの状態をブロックされていない状態からブロックされている状態に変更し、
前記ポートパラメータは、ポートプライオリティ、パスコスト、ポートロケーション、ポート速度、及びホップ数のうちの少なくとも１つに関連することからなる、請求項６の装置。
【請求項８】
前記ネットワークは、複数の仮想ローカルエリアネットワーク（VLAN）を管理するためのマルチプルスパニングツリープロトコル（MSTP）を有することができ、前記MSTPは、互いに異なるVLANの異なるリンクをブロックし、
前記コントローラは、所与の時間にどの前記VLANがアクティブであるかに基づいて、前記ネットワークスイッチのうちの少なくとも１つのネットワークスイッチの１以上のポートを通じて前記特定のトラフィックを送ることができ、
前記コントローラは、前記特定のトラフィックを送るように、前記ポートパラメータのインスタンスを構成することができることからなる、請求項６の装置。
【請求項９】
前記特定のトラフィックは、待ち時間とパケットロスと前記一般的なトラフィックのセキュリティ要件とは異なるセキュリティ要件とのうちの少なくとも１つを有するデータに関連し、
前記特定のトラフィックは、前記データのユーザー、優先度、ソース、及びコンテンツのうちの少なくとも１つのタイプに基づくことからなる、請求項２の装置。
【請求項１０】
前記コントローラは、OpenFlowプロトコルによって前記特定のタイプのトラフィックを前記ブロックされているリンクを通じて送るように、前記少なくとも１つのネットワークスイッチを構成することができる、請求項１の装置。
【請求項１１】
前記コントローラは、前記特定のトラフィックを送るための、前記リンクに沿った主経路及び副経路を画定することができ、
前記コントローラは、第１の経路のリンクの少なくとも１つが故障した場合には、前記特定のトラフィックを前記副経路を通じて送るように、前記ネットワークスイッチのうちの少なくとも１つのネットワークスイッチを構成することができることからなる、請求項１の装置。
【請求項１２】
ネットワークのスイッチ間のリンクを状態を監視するステップであって、前記状態は、ブロックされている状態とブロックされていない状態とのうちの一方であり、前記リンクのうちのブロックされているリンクは、スパニングツリープロトコル（STP）によって使用されない、ステップと、
特定のトラフィックを前記ブロックされているリンクを通じて送るように、前記スイッチのうちの少なくとも１つのスイッチの少なくとも１つのポートを構成するステップであって、前記STPは、前記ブロックされているリンクを、前記特定のトラフィックとは別個の一般的なトラフィックを送るためには使用しない状態を維持する、ステップ
を含む方法。
【請求項１３】
前記構成するステップは、レイヤ２のレベルで前記スイッチを構成することができ、
前記監視するステップは、前記構成するステップの前に行われ、
前記構成するステップは、簡易ネットワーク管理プロトコル（SNMP）によって前記スイッチと通信するコントローラによって実施されることからなる、請求項１２の方法。
【請求項１４】
命令を格納している非一時的なコンピューター可読記憶媒体であって、
前記命令は、装置のプロセッサによって実行されると、該プロセッサに、
ネットワークのスイッチ間のリンクに関するトポロジ情報を収集させ、
スパニングツリープロトコル（STP）によって前記リンクのうちのどのリンクがブロックされているかを判定させ、
前記ブロックされているリンクのうちの少なくとも１つのリンクを通じて特定のトラフィックを送ることができるように、OpenFlowプロトコルによって前記スイッチのうちの少なくとも１つのスイッチを構成させる
ことからなる、コンピューター可読記憶媒体。
【請求項１５】
前記スイッチは、前記STPとOpenFlowプロトコルの両方からの命令にしたがって動作することができる、請求項１４のコンピューター可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ネットワークは、一般に、トラフィックループが該ネットワーク内のスイッチ間に形成されるのを防止するために、スパニングツリープロトコル（STP：Spanning Tree Protocol）を利用する。該STPは、スイッチ間の冗長リンクをブロックしてそれらのループを阻止する。ネットワークの管理者には、ネットワークを横断するトラフィックのスループット、信頼性、及び／またはセキュリティを改善するための手段を見出すことが要求されている。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】（不明）
【図面の簡単な説明】
【０００３】
下記の詳細な説明は図面を参照している。
【図１】ブロックされているリンクを通じて特定のトラフィックを送るためのコントローラのブロック図の１例である。
【図２】図１のコントローラとインターフェースするスイッチの別の例のブロック図である。
【図３Ａ】図１のコントローラによって構成されているネットワークリンクのブロック図の１例である。
【図３Ｂ】図３Ａの構成されたネットワークリンクを通じたトラフィックフローのブロック図の１例である。
【図４】ブロックされているリンクを通じて特定のトラフィックを送るための命令を含むコンピューティング装置のブロック図の１例である。
【図５】ブロックされているリンクを通じて特定のトラフィックを送るための方法のフローチャートの１例である。
【発明を実施するための形態】
【０００４】
ネットワーク内のレイヤ２スイッチングは、一般に、トラフィックループがネットワーク内に形成されるのを阻止するために、スパニングツリープロトコル（STP）（802.1d）などの機能に頼っている。ループを防止するために、冗長リンクをブロックして、STPによって使用されないようにすることができる。さらに、STPは、スイッチ間プロトコル（switch-to-switch protocol）であって、そこでは、全てのデバイスが対等であり、ネットワーク全体のグローバルビューは未知である。
【０００５】
冗長リンクの「ブロック」（ブロッキングともいう）は、ネットワーク機器の浪費となりうるが、これは、ポートやケーブルは、費用がかかり、かつ、アイドル状態にあるからである。STPは、他のところでリンク故障が生じた場合に、冗長リンクをアクティブにできるという利益をもたらすが、それらの冗長リンクは通常は使用されていない。マルチインスタンススパニングツリープロトコル（multiple instancespanning tree protocol：MSTPまたはMISTP）（IEEE 802.1s）は、仮想ローカルエリアネットワーク（VLAN：Virtual Local Area Network）を用いて、スパニングツリーを互いにオーバーラップさせる方法を提供する。たとえば、顧客は２つのVLANを構成することができ、この場合、各々のVLANがそれ自体のMSTPインスタンスを有し、各々のMSTPインスタンスは異なるポートをブロックする。MSTPは、より多くのリンクがアクティブな状態を維持できるようにするが、依然として、多くのリンクがいくつかのVLAN（MSTPインスタンス）において使用されないままとなる。
【０００６】
管理者は、特定のトラフィック（specific traffic）を適切に分類しまたは該特定のトラフィックに優先度の高い順で優先順位を付けるためにQoSやDiffServなどの機能を使用することによって、該特定のトラフィックが途絶えたり遅延したりしない可能性を高くすることができる。これによって、該特定のトラフィックなどのいくつかのタイプのトラフィックに対するネットワーク帯域幅の割り当てを大きくすることができるが、ブロックされているリンクは依然として使用されないままである。
【０００７】
実施形態は、QoS/DiffServが特定のトラフィックの優先度をより高いものとして分類することを期待して、該特定のトラフィックを、混雑している可能性がある正常なリンクを介して送るのではなく、ブロックされているリンクをうまく利用することができる。実施形態は、たとえば、STPネットワークのグローバルビュー、及び、OpenFlow（オープンフロー）などの異なるタイプのプロトコルを用いて、使用されていないブロックされているリンクを介して該特定のトラフィックを送ることができる。たとえば、OpenFlowプロトコルは、顧客／コントローラが、トラフィックフロー内のコンテンツ（内容）に基づいて、該トラフィックがとるべき経路を設定できるようにすることができる。OpenFlowプロトコルはまた、いくつかのルールに基づいてトラフィックを送るようにデバイスに命令することなどによって、トラフィックを識別するためのフレキシブルな分類メカニズムを提供する。
【０００８】
１実施形態では、リンクの状態（ステータス）は、ブロック（遮断）されているかブロックされていないかのいずれかである。ブロックされているリンクは、スパニングツリープロトコル（STP）によっては使用されない。ネットワークスイッチの少なくとも１つが、ブロックされているリンクを通じて（またはリンクに沿って。以下同じ）特定のトラフィックを送るように構成される。いくつかの実施形態では、どのリンクをブロックするかを操作するためにパラメータを変更することもできる。ブロックされているリンクを使用することの利益は、特定のトラフィックが、他のタイプのトラフィックと競合しなくてすむことであるが、これは、該他のタイプのトラフィックは、ブロックされていないSTPリンクを移動するからである。さらに、全く新しいタイプのネットワークを管理者に実装させるのではなく、既存のSTPまたはMSTPネットワークを補完し、及びそれらの既存のネットワークと共存するために、実施形態を使用することができる。
【０００９】
図１は、特定のトラフィックをブロックされているリンクを通じて送るためのコントローラ１００の例示的なブロック図である。コントローラ１００を別個の独立した要素とすることができ、または、コントローラ１００を、スイッチ、ハブ、ルーター、ゲートウェイ、記憶装置、コンピューター、筐体、サーバー、及び／または、ネットワーク要素を管理することができ及び／もしくはネットワークに接続することができる任意のタイプのデバイス（装置）に含めることができる。
【００１０】
図１の実施形態では、コントローラ１００は、複数のネットワークスイッチ１１２−１〜１１２−４を含むネットワーク１１０に接続する。ネットワーク１１０のタイプの例には、パーソナルエリアネットワーク（PAN）、ローカルエリアネットワーク（LAN）、ホームネットワーク、ストレージエリアネットワーク（SAN）、キャンパスネットワーク（campus network：構内ネットワークともいう）、バックボーンネットワーク（backbone network）、メトロポリタンエリアネットワーク（MAN：Metropolitan area network）、広域ネットワーク（WAN）、エンタープライズプライベートネットワーク（enterprise private network）、仮想プライベートネットワーク（VPN）、インターネットワーク（相互接続ネットワーク）などを含めることができる。
【００１１】
ネットワーク１１０は４つのスイッチ１１２−１〜１１２−４を含むものとして示されているが、実施形態は、４より多いか４より少ない数のスイッチを含むことができる。スイッチ１１２−１〜１１２−４を、リンク及び／またはネットワーク装置を接続する任意のタイプの装置とすることができる。さらに、スイッチ１１２−１〜１１２−４は、リンクとインターフェースする物理ポートを介してデータを送受信することができる。それらのリンクを、ケーブルなどの、データを伝送するために使用されるスイッチ間の任意のタイプの電気的接続手段とすることができる。
【００１２】
コントローラ１００及びスイッチ１１２−１〜１１２−４は、たとえば、後述の機能を実施するための、制御ロジック（制御回路など）及び／またはメモリ（記憶装置）などの、電子回路を含むハードウェア装置を備えることができる。これに加えてまたはこれの代わりに、コントローラ１００及びスイッチ１１２−１〜１１２−４を、機械可読記憶媒体（たとえば、コンピューター可読記憶媒体）にある符号化された（または該記憶媒体に符号化されている）、プロセッサによって実行可能な一連の命令として実施することができる。
【００１３】
図１では、スイッチ１１２−１〜１１２−４の各々は３つのポートを有しており、各々のポートが１つのリンクとインターフェースしている。たとえば、Ａスイッチ１１２−１は、１つのリンクを介してＢスイッチ１１２−２の第１２のポート１２に接続する第１のポート１と、１つのリンクを介してＤスイッチ１１２−４の第８のポート８に接続する第２のポート２と、１つのリンクを介してＣスイッチ１１２−３の第４のポート４に接続する第３のポート３を有するものとして図示されている。さらに、Ｂスイッチ１１２−２は、１つのリンクを介してＤスイッチ１１２−４の第９のポート９に接続する第１０のポート１０と、１つのリンクを介してＣスイッチ１１２−３の第５のポート５に接続する第１１のポート１１を有するものとして図示されている。また、Ｃスイッチ１１２−３は、１つのリンクを介してＤスイッチ１１２−４の第７のポート７に接続する第６のポート６を有するものとして図示されている。しかしながら、スイッチ１１２−１〜１１２−４の各々の実施形態は、３つより多いかまたは３つより少ない数のポートを含むことができ、さらに、リンクとインターフェースしないポートを含むこともできる。
【００１４】
さらに、スイッチ１１２−１〜１１２−４間のリンクのいくつかは実線で示されており、その他のリンクは点線で示されている。たとえば、点線は、Ｃスイッチ１１２−３とＢスイッチ１１２−２間のリンク、Ｃスイッチ１１２−３とＤスイッチ１１２−４間のリンク、及び、Ｂスイッチ１１２−２とＤスイッチ１１２−４間のリンクを示している。一方、実線は、Ａスイッチ１１２−１とＢスイッチ１１２−２間のリンク、Ａスイッチ１１２−１とＣスイッチ１１２−３間のリンク、及び、Ａスイッチ１１２−１とＤスイッチ１１２−４間のリンクを示している。
【００１５】
点線は、ブロックされているリンクを表しており、実線はブロックされていないリンクを表している。ネットワークプロトコルは、ブロックされているリンクを形成するために、スイッチ１１２−１〜１１２−４の１以上のポートを、着信トラフィックと発信トラフィックの両方をブロックするように構成することができる。たとえば、STPは、そのようなブロックされているリンクを形成することによって、ネットワーク１１０がループのないトポロジ（トポロジは、トポロジーともいう）となるようにすることができる。図１において、STPは、Ａスイッチ１１２−１をスパニングツリーのルートとして有するスパニングツリーを形成するために、いくつかのリンクをブロックすることができる。STPの変形形態には、ラピッドスパニングツリープロトコル（RSTP：Rapid Spanning Tree Protocol）、ＶＬＡＮスパニングツリープロトコル（VSTP：VLAN Spanning Tree Protocol）、マルチプルスパニングツリープロトコル（MSTP：Multiple Spanning Tree Protocol）などを含めることができる。
【００１６】
コントローラ１００は、STPネットワークのグローバルビューを得るなどのために、ネットワーク１１０の論理トポロジ（論理トポロジは、論理的なトポロジともいう）を監視する（１０２）ことができる。論理トポロジは、ネットワーク１１０の物理トポロジ（物理トポロジは、物理的なトポロジともいう）とアクティブトポロジ（アクティブトポロジはアクティブなトポロジともいう）のうちの少なくとも１つを含むことができる。ネットワーク１１０の物理トポロジを、リンクのレイアウト（配置）やスイッチの位置などの物理的な設計によって画定することができる。アクティブトポロジは、データがネットワーク１１０内をある装置から次の装置へとどのように伝送されるかを参照することができ、該アクティブトポロジを、STPなどのネットワークプロトコルによって決定することができる。
【００１７】
したがって、物理トポロジを、スイッチ１１２−１〜１１２−４間の距離、物理的相互接続（physical interconnection）、伝送速度、及び／または、信号の種類（タイプ）に関連付けることができ、一方、アクティブトポロジを、物理トポロジの経路もしくはリンクに関連付けることができ、この場合、トラフィックのパケットは、該該経路もしくはリンク上を伝送することができる。それゆえ、論理トポロジ１０２を監視することによって、コントローラ１００は、STPなどによってブロックされている任意のリンクを識別することができる。たとえば、コントローラ１００は、ネットワーク１１０内のスイッチ１１２−１〜１１２−４などの全てのデバイスを能動的に監視（モニタ）して、スイッチ１１２−１〜１１２−４のどのポートがブロックされているかなどのSTP状態を知ることができる。
【００１８】
次に、コントローラ１００は、ブロックされているリンクを通じて特定のトラフィックを送るように、ネットワークスイッチ１１２−１〜１１２−４の少なくとも１つを構成することができる。該特定のトラフィックを、ブロックされているリンクを通る（トラバースする）ことができない一般的なトラフィック（general traffic）とは異なるものとすることができる。
【００１９】
該特定のトラフィックを、たとえば、待ち時間、パケットロス、及び／または、該一般的なトラフィックのセキュリティ要件とは異なるセキュリティ要件を有するデータに関連付けることができる。該特定のトラフィックを、たとえば、該特定のトラフィックに含まれているデータのユーザーのタイプ、該データ（または該トラフィック）の優先度、該データ（または該トラフィック）のソース及び／もしくはコンテンツ（内容）に基づくものとすることができ、または、それらに基づいて識別（ないし特定）することができる。待ち時間要件を有しうる特定のトラフィックの例には、マルチキャストストリーム、ビデオトラフィック、VoIPデータなどがある。かかるタイプの特定のトラフィックを、該特定のトラフィックのヘッダーを検査することなどによって、コンテンツのタイプ（種類）に基づいて識別（ないし特定）することができる。セキュリティ要件を有しうる特定のトラフィックの例には、財務データや企業データや個人データなどがある。１実施形態では、かかるタイプの特定のトラフィックを、ユーザーのタイプに基づいて識別（ないし特定）することができる。たとえば、ある会社の重役の電子メールは、該会社のスタッフの電子メールのセキュリティ（安全性）よりも高いセキュリティを有しうる。
【００２０】
優先度要件を有しうる特定のトラフィックの例には、バックアップデータ及び金融サービトランザクションなどがある。たとえば、バックアップデータは、該一般的なトラフィック用に使用することができる帯域幅を消費しないようにするために、該一般的なトラフィック、及び、オフピークの時間帯に送られるかまたはブロックされているリンク上を送られるトラフィックよりも低い優先度を有することができる（または、該バックアップデータの優先度を、該一般的なトラフィック用に使用することができる帯域幅を消費しないようにするために、オフピークの時間帯に送られるかまたはブロックされたリンク上を送られる該一般的なトラフィックの優先度よりも低くすることができる）。一方、証券（たとえば株式）取引やトレーダー（たとえば証券売買業者）取引などの金融サービストランザクションは、高い優先度を有することができる。かかるタイプの特定のトラフィックを、たとえば、データのソース（データの発生源）に基づいて識別（ないし特定）することができる。
【００２１】
コントローラ１００は、ブロックされているリンクを該特定のトラフィックが通ることができるように、該ブロックされているリンクに関連付けられているネットワークスイッチ１１２−１〜１１２−４のうちの少なくとも１つのブロックされているポート（不図示）を構成することができる。さらに、コントローラ１００は、該特定のトラフィックを送るための該リンクに沿った経路を決定ないし画定することができる。該経路は、少なくとも１つのブロックされているリンクを含むことができる。しかしながら、コントローラ１００は、該経路を通じて（または該経路に沿って。以下同じ）ネットワークスイッチ１１２−１〜１１２−４のうちの１つに接続する全てのリンクがブロックされていないリンクであるときなどには、１以上のブロックされていないリンクを含むように該経路を決定ないし画定することもできる。ブロックされていないリンクを該一般的なトラフィックが使用することもできる。
【００２２】
たとえば、図１では、該特定のトラフィックは、Ａ、Ｂ、Ｃスイッチ１１２−１〜１１２−３を通って入り、Ｄスイッチ１１２−４に向けて送られる。通常は、Ｂ及びＣスイッチを通って入った該特定のトラフィックを含む任意のトラフィックは、ブロックされていないリンクを通ってＡスイッチ１１２−１に送られる。次に、該特定のトラフィックは、Ａスイッチ１１２−１から、別のブロックされていないリンクを通って、行き先であるＤスイッチ１１２−４に向けて送られる。しかしながら、図１に示されているように、コントローラ１００は、Ａスイッチに入った特定のトラフィックをＣスイッチ１１２−３に送るように構成することができる。この場合、Ａスイッチ１１２−１からの該特定のトラフィックを、Ｃスイッチ１１２−３に入る他の任意の特定のトラフィックと結合して（または合流させて）、Ｃスイッチ１１２−３の第６のポート６とＤスイッチ１１２−４の第７のポート７間のブロックされているリンクを介してＤスイッチ１１２−４に直接送ることができる。
【００２３】
同様に、コントローラ１００は、Ｂスイッチ１１２−２に入った任意の特定のトラフィックを、Ｂスイッチ１１２−２の第１０のポート１０とＤスイッチ１１２−４の第９のポート９間のブロックされているリンクを介してＤスイッチ１１２−４に直接送るようにすることができる。したがって、ブロックされているリンクを用いて特定のトラフィックを送ることによって、ブロックされていないリンクの混雑が緩和されるだけでなく、該特定のトラフィックを、より少ない数のスイッチ１１２をホップ（hop）することによってより速く送ることもできる。
【００２４】
コントローラ１００は、OpenFlowプロトコルを用いて（または該プロトコルにしたがって）、特定のタイプのトラフィックをブロックされているリンクを通じて送るように、スイッチ１１２−１〜１１２−４のうちの任意のスイッチを構成することができる。OpenFlowは、ネットワーク１１０を介してスイッチ１１２のフォワーディングプレーン（forwarding plane：転送プレーンともいう）（不図示）にアクセスできるようにするレイヤ２通信プロトコルである。さらに、OpenFlowプロトコルは、スィッチ１１２−１〜１１２−４を通る特定のトラフィックの経路を、中央の集中化された位置で動作する、及び／又は、複数のスィッチ１１２などの分散化形態で動作するソフトウェアまたはファームウェアによって動的に決定できるようにすることができる。
【００２５】
１実施形態では、コントローラ１００は、該特定のトラフィックを送るための、リンクに沿った主経路（一次経路）及び副経路（二次経路）を決定ないし画定することができる。この場合、第１の経路もしくは主経路のリンクのうちの１つが故障した場合には、コントローラ１００は、故障した（１以上の）リンクを避けるために、該特定のトラフィックを副経路を通じて送るように、ネットワークスィッチ１１２−１〜１１２−４のうちの１以上を構成することができる。
【００２６】
コントローラ１００がスィッチ１１２−１〜１１２−３と通信するために使用できるプロトコルの例には、リンクレイヤ検出プロトコル（LLDP：Link Layer Discovery Protocol）、簡易ネットワーク管理プロトコル（SNMP ：Simple Network Management Protocol）、動的ホスト構成プロトコル（DHCP：Dynamic Host Configuration Protocol）、シンプルサービス検出プロトコル（SSDP：Simple Service Discovery Protocol）、ユニバーサルプラグアンドプレイ（UPnP：Universal Plug and Play）などがある。コントローラ１００は、スィッチ１１２を自動的にまたは手動入力にしたがって構成することができる。さらに、スィッチ１１２−１〜１１２−４は、OpenFlowプロトコルとSTPの両方にしたがって動作することができる。たとえば、スィッチ１１２−１〜１１２−４は、該特定のトラフィックに対してはOpenFlowプロトコルにしたがって動作することができ、該一般的なトラフィックに対しては、及び／又はリンクが故障した場合には、STPにしたがって動作することができる。
【００２７】
図２は、図１のコントローラ１００とインターフェースするスイッチ２００の別の例示的なブロック図である。コントローラ１００を個別の要素とすることができ、または、コントローラ１００を、スイッチ、ハブ、ルーター、ゲートウェイ、記憶装置、コンピューター、筐体、サーバー、及び／または、ネットワーク要素を管理することができ及び／もしくはネットワークに接続することができる任意のタイプのデバイス（装置）に含めることができる。
【００２８】
図２のコントローラ１００及びスイッチ２００は、それぞれ、図１のコントローラ１００及びスイッチ１１２−１〜１１２−４の機能及び／またはハードウェアを少なくとも含むことができる。たとえば、スイッチ２００は、図１のＣスイッチ１１２−３の典型例として示されているが、他のスイッチ１１２−１、１１２−２、及び１１２−４も同様のものとすることができる。
【００２９】
図２の実施形態では、スイッチ２００は、コントロールプレーン（control plane。制御プレーンともいう）２１０及びフォワーディングプレーン２２０を含むものとして示されている。フォワーディングプレーン２２０はさらに、ルール２２２及びポートパラメータ２２４、並びに、スイッチポート２２８−１〜２２８−４とのインターフェースを含むものとして示されている。第１のスイッチポート２２８−１を、該特定のトラフィックを受け取るＣスイッチ１１２−３のポート（不図示）に対応付けることができる。第２のスイッチポート２２８−２〜第４のスイッチポート２２８−４を、Ｃスイッチ１１２−３の第４のポート４〜第６のポート６に対応付けることができる。コントロールプレーン２１０を、ネットワークマップの作成ないし描画に関連付けられた、及び／または、トラフィックの着信パケットをどう扱うか（すなわちどう処理するか）を決定するルーティングテーブルに関連付けられたスイッチアーキテクチャの一部とすることができる。フォワーディングプレーン２２０を、着信パケットの宛先アドレス及び／または出力インターフェース（outgoing interface）を示すルックアップテーブルなどの、インバウンドインターフェース（inbound interface）に到来する着信パケットをどう扱うか（すなわちどう処理するか）の決定に関連付けられたスイッチアーキテクチャの一部とすることができる。
【００３０】
図１に関して既に説明し、及び、図２において斜線パターンで示しているように、第３のスイッチポート２２８−３及び第４のスイッチポート２２８−４はブロックされている。第１のスイッチポート２２８−１及び第２のスイッチポート２２８−２はブロックされていない。この場合、図２では、第１のスイッチポート２２８−１及び第２のスイッチポート２２８−２は、該特定のトラフィックを受け取るものとして示されており、第２のスイッチポート２２８−２はまた、該一般的なトラフィックを出力するものとして示されている。コントローラ１００によって、図１に示されているように、Ａスイッチ１１２−１の第３のポート３からＣスイッチ１１２−３の第４のポート４（スイッチ２００の第２のスイッチポート２２８−２）へと（該特定のトラフィックが）流れるように、該特定のトラフィック用の例示的な経路を決定ないし画定することができる。さらに、第１のスイッチポート２２８−１及び第２のスイッチポート２２８−２から受け取った該特定のトラフィックを、ブロックされているリンクを介してＤスイッチ１１２−４に送るために、該特定のトラフィックをブロックされている第４のスイッチポート２２８−４へと出力することができる。
【００３１】
スイッチ２００は、OpenFlowプロトコルなどの、スイッチ２００のフォワーディングプレーン２２０からコントロールプレーン２１０を分離するソフトウェア・デファインド・ネットワーキング（Software Defined Networking：SDN）アーキテクチャに基づいて、該特定のトラフィックをブロックされているリンクのうちの１以上のリンクに向けて送ることができる。たとえば、コントローラ１００は、OpenFlowを用いて（またはOpenFlowにしたがって）、フォワーディングプレーン２２０にアクセスして、ブロックされている第４のスイッチポート２２８−４などのブロックされているポートを通じて該特定のトラフィックを送る１以上のルール２２２を設定することができる。ルール２２２を、コントローラ１００によって提供される、該特定のトラフィックをどの（１以上の）ポートに（またはどのポートから）出力するかを示す任意のタイプの命令として定義することができる。
【００３２】
図２では、コントローラ１００は、スイッチ２００とは別個のものとして示されている。しかしながら、コントローラ１００を、スイッチ１１２のうちの１つにまたはスイッチ２００に含めることができ、及び／または、コントローラ１００を、スイッチ１１２−１〜１１２−４もしくはスイッチ２００とは別個のより高い（すなわちより高位の）レイヤのデバイス（または装置）とすることができる。たとえば、コントローラ１００がより高いレイヤのデバイスである場合には、コントローラ１００は、ルール２２２を設定することに加えて、または、ルール２２２を設定する代わりに、スイッチ２００などの経路に沿ったネットワーク装置（ネットワークデバイス）の１つの１以上のポートパラメータ２２４を構成することができる。第２のスイッチポート２２８−２〜第４のスイッチポート２２８−４などのポートの各々は、１以上の対応するポートパラメータ２２４を有することができる。（１以上の）構成されたパラメータ２２４は、対応するポート及びリンクが、STPには望ましくない（または、相対的に望ましくない）ように見えるようにすることができる。その結果、（１以上の）構成されたパラメータ２２４は、STPに、対応するリンクの状態（ステータス）をブロックされていない状態からブロックされている状態に変更させることができる。たとえば、STPは、ポートプライオリティ（port priority：ポート優先度ともいう）及びパスコスト（path cost：経路コストともいう）などのポートのいくつかのポートパラメータ２２４を監視して、対応するリンクの望ましさを判定することができる。コントローラ１００は、ポートロケーション（ポート位置）、ポート速度、及びホップ数（ホップカウントともいう）などのスイッチ２００の値を変更することなどによって、ポートパラメータ２２４に直接または間接に影響を与えることができる。
【００３３】
ポートプライオリティという用語は、STPがトラフィックを送るために、他のポートに対して（すなわち、他のポートとの比較において）あるポートに与える優先度（プリファランス）を意味するものとすることができる。たとえば、このパラメータを用いて、ポートにより高い（またはより低い）優先順位を割り当てることができ、この場合、数値が高いほど優先順位が低いことを意味する。トラフィックの経路が変更される場合には、VLAN内またはスイッチ２００において優先順位が低いポートよりも優先順位が高いポートが選ばれるように、ポートの優先順位に基づいて、ポートの経路（たとえば、トラフィックがどのポートを通るか）が変更される。パスコストという用語は、ルートブリッジまたはルートスイッチに到達するためにポートを使用するコストを意味するものとすることができる。STPは、ルートブリッジに至る複数のリンクの中から選択するときには、一番小さいパスコストを有するリンクを選択して、その他の経路／リンクをブロックする。たとえば、このパラメータを用いて、ポートにより大きいかまたはより小さいパスコストを割り当てることができる。ある所定のポートにより大きな値を割り当てることによって、経路変更の間、トラフィックが該ポートを通らないようにする（この逆も同様）ことができる。
【００３４】
図１において、コントローラ１００は、ポートパラメータ２２４のうちの少なくとも１つのパラメータを自動的にまたは手動で構成することができる。手動構成の場合には、管理者がポートパラメータに異なる値を入力できるようにするために、コントローラ１００を、キーボード、マウス、ディスプレイ（表示装置）、グラフィカルユーザーインターフェース（GUI）、タッチスクリーンなどに関連付けることができる。１以上のポートパラメータが変更されると、STPは経路を再計算することができる。いくつかの場合には、これまではブロックされていたリンクをブロックされていないリンクにする（この逆も同様）ことができる。さらに、管理者は、STPトポロジを見て、新しいルールを生成するために手動構成を用いることもできる。
【００３５】
ネットワーク１１０が複数のVLANを含んでいる場合には、MSTPを用いて該複数のVLANを管理することができ、この場合、該MSTPは、異なるVLANの異なるリンクをブロックする（異なるVLAN同士では異なるリンクがブロックされる）。したがって、MSTPを使用すると、１つのリンクの一部がブロックされるだけである。たとえば、MSTPでは、一部のMSTPインスタンスに対してリンクをブロックすることができるが、全てのMSTPインスタンスに対してリンクをブロックすることができるわけではない。使用の観点からは、これは、一部のインスタンスに対してのみ全てのリンクがアクティブ（有効）となることを可能にする。MSTPインスタンスは、一組のVLANによって画定ないし決定される。
【００３６】
この場合、コントローラ１００は、所与の時間（または任意のもしくは所定の時間）においてどのVLANがアクティブ（すなわち有効ないし作動中）であるか、したがって、所与の時間においてどのリンクがブロックされているかに基づいて、ネットワークスイッチ１１２−１〜１１２−４の１以上のポートを通じて特定のトラフィックを送るためのルール２２２を作成することができる。この代わりに、または、これに加えて、コントローラ１００は、どのリンクがブロックされるかに影響を与えるようにポートパラメータ２２４のインスタンスを構成することができる。
【００３７】
図３Ａは、図１のコントローラ１００によって構成されているネットワークリンクの例示的なブロック図であり、図３Ｂは、図３Ａの構成されたネットワークリンクに沿ったトラフィックフローの例示的なブロック図である。図３Ａ及び図３Ｂに示されているスイッチ３１２−１〜３１２−４を、図１のスイッチ１１２−１〜１１２−４と同様ないし類似のものとすることができる。たとえば、図３Ａ及び図３Ｂのスイッチ３１２−１〜３１２−４及びこれらのスイッチのポートに、図１と同様のラベルを付けることができる。最初は、図３Ａのスイッチ３１２−１〜３１２−４は、図１のスイッチ１１２−１〜１１２−４と同様の構成を有するものとして図示されており、Ｃスイッチ３１２−３とＢスイッチ３１２−２間、Ｃスイッチ３１２−３とＤスイッチ３１２−４間、及び、Ｂスイッチ３１２−２とＤスイッチ３１２−４間のリンクはブロックされている。
【００３８】
しかしながら、図２に関して説明したように、コントローラ１００は、その後STPがブロックされていないリンクをブロックされているリンクに、または、ブロックされているリンクをブロックされていないリンクに再構成するように、ポートパラメータを構成することができる。このことは、該特定のトラフィック用の経路（該経路では該一般的なトラフィックは低減ないし除去される）を生成するために望ましいものでありうる。たとえば、コントローラ１００が、該特定のトラフィックの所期の終点に通じるブロックされているリンクを見つけることができない場合には、コントローラ１００は、ブロックされていないリンクのうちの少なくとも１つのリンクをブロックされているリンクに変える。図３Ａでは、コントローラ１００は、Ａスイッチ３１２−１とＣスイッチ３１２−３間のブロックされていないリンクがブロックされているリンクに変更され、Ｃスイッチ３１２−３とＢスイッチ３１２−２間のブロックされているリンクがブロックされていないリンクに変更されるようにポートパラメータを構成するものとして示されている。
【００３９】
図３Ｂは、コントローラ１００と、図３Ａの構成されたポートパラメータを有するスイッチ３１２−１’〜３１２−４’を備えるネットワーク３１０とを示している。図３Ｂのコントローラ１００とネットワーク３１０は、それぞれ、図１のコントローラ１００とネットワーク１１０の機能及び／またはハードウェアを少なくとも含むことができる。この場合、該特定のトラフィックは、ボイスオーバーインターネットプロトコル（VoIP：voice over Internet Protocol）トラフィックとして示されており、該トラフィックをVoIPサーバー３１４に伝えるために、該トラフィックはＤスイッチ３１２−４’に向けて送られる。図１と同様に、VoIPトラフィックは、Ａ、Ｂ、及びＣスイッチ３１２−１’〜３１２−３’を介して受け取られる。しかしながら、図１とは異なり、コントローラ１００が、Ａスイッチ３１２−１’とＣスイッチ３１２−３’間の以前はブロックされていなかったリンクが今ではブロックされているリンクであるようにポートパラメータを構成したために、今や全てのVoIPトラフィックがブロックされているリンクだけを流れることができる。したがって、コントローラ１００がVoIPトラフィック用にブロックされているリンクの専用の経路を提供しているので、混雑に起因するVoIPトラフィックのタイミング遅延を低減しまたは最小にすることができる。この結果、今やＣスイッチ３１２−３’がＡスイッチ３１２−１’から２つのホップだけ離れているために、該一般的なトラフィックに対するＣスイッチ３１２−３’までの経路は長くなっている。
【００４０】
図４は、ブロックされているリンクを通じて特定のトラフィックを送るための命令を含むコンピューティング装置４００の例示的なブロック図である。図４の実施形態では、コンピューティング装置４００は、プロセッサ４１０及び機械可読記憶媒体（たとえばコンピューター可読記憶媒体）４２０を備えている。機械可読記憶媒体４２０はさらに、特定のトラフィックをブロックされているリンクを通じて送るための命令４２２、４２４及び４２６を含んでいる。
【００４１】
コンピューティング装置４００を、たとえば、サーバー、ネットワークスイッチ、ハブ、ルーター、ゲートウェイ、ネットワーク要素、または、命令４２２、４２４及び４２６を実行することができる他の任意のタイプのデバイス（装置）とすることも、それらの一部とすることもできる。いくつかの例では、コンピューティング装置４００は、メモリ、センサー、ディスプレイ（表示装置）などの追加の構成要素を備えることができ、または、コンピューティング装置４００を、該追加の構成要素に接続することができる。
【００４２】
プロセッサ４１０を、少なくとも１つの中央処理装置（CPU）、もしくは少なくとも１つの半導体ベースのマイクロプロセッサ、もしくは少なくとも１つのグラフィックスプロセッシングユニット（GPU）、もしくは機械可読記憶媒体４２０に格納されている命令の取り出し及び実行に適したその他のハードウェア装置、もしくはそれらの組み合わせとすることができる。プロセッサ４１０は、特定のトラフィックをブロックされているリンクを通じて送るための命令４２２、４２４及び４２６を取り出し（フェッチし）、デコードして実行することができる。プロセッサ４１０は、命令を取り出して実行する代わりに、または、それらに加えて、命令４２２、４２４及び４２６の機能を実行するための複数の電子的構成要素（電子部品など）を有する少なくとも１つの集積回路（IC）、もしくは他の制御ロジック（制御論理回路）、もしくは他の電子回路、もしくはそれらの組み合わせを備えることができる。
【００４３】
機械可読記憶媒体４２０を、実行可能命令を含んでいるか格納している任意の電子記憶装置もしくは磁気記憶装置もしくは光学式記憶装置もしくはその他の物理的記憶装置とすることができる。したがって、機械可読記憶媒体４２０を、たとえば、ランダムアクセスメモリ（RAM）、電気的消去可能PROM（EEPROM）、記憶ドライブ（磁気ディスク装置など）、コンパクトディスク読み取り専用メモリ（CD-ROM: Compact Disc Read Only Memory）などとすることができる。そのため、機械可読記憶媒体４２０を非一時的なものとすることができる。以下で詳細に述べるように、機械可読記憶媒体４２０を、特定のトラフィックをブロックされているリンクを通じて送るための一連の実行可能命令で符号化することができる。
【００４４】
さらに、命令４２２、４２４及び４２６は、プロセッサによって（たとえば、該プロセッサの１つの処理要素もしくは複数の処理要素によって）実行されると、図５の処理などの処理をプロセッサに実行させることができる。たとえば、収集命令４２２をプロセッサ４１０によって実行することによって、ネットワーク（不図示）のスイッチ（不図示）間のリンクに関するトポロジ情報を収集することができる。判定命令４２４をプロセッサ４１０によって実行することによって、どのリンクがSTPによってブロックされているかを判定することができる。構成命令（コンフィグレーション命令）４２６をプロセッサ４１０によって実行することによって、ブロックされているリンクの少なくとも１つを通じて特定のトラフィックを送ることができるように、OpenFlowプロトコルを用いて（またはOpenFlowプロトコルにしたがって）それらのスイッチのうちの少なくとも１つを構成することができる。しかしながら、それらのスイッチは、STPとOpenFlowプロトコルの両方からの命令にしたがって動作することができる。
【００４５】
図５は、ブロックされているリンクを通じて特定のトラフィックを送るための方法５００の例示的なフローチャートである。以下では、方法５００の実行をコントローラ１００に関して説明するが、方法５００を実行するための他の適切な構成要素を使用することができる。さらに、方法５００を実行するための構成要素を、複数のシステム及び／もしくは装置（たとえば、入出力装置と通信する処理装置）間に分散させることができる。いくつかの状況では、協働する複数の装置を、方法５００を実行する単一の装置とみなすことができる。方法５００を、記憶媒体４２０などの機械可読記憶媒体（たとえばコンピューター可読記憶媒体）に格納されている実行可能命令の形式で、及び／または、電子回路の形式で実施することができる。
【００４６】
ブロック５１０において、コントローラ１００は、ネットワーク１１０のスイッチ１１２間のリンクの状態を監視（モニター）する。それらのリンクの状態は、ブロックされている状態とブロックされていない状態のうちの一方である。リンク１１２のうちのブロックされているリンクはSTPによって使用されない。次に、ブロック５２０において、コントローラ１００は、スイッチ１１２のうちの少なくとも１つのスイッチの少なくとも１つのポートを、ブロックされているリンクを通じて特定のトラフィックを送るように構成する。STPは、該特定のトラフィックとは別個の（及び／または分離した）一般的なトラフィックを送るためにブロックされているリンクを引き続き使用しない（すなわち、STPは、ブロックされているリンクを該一般的なトラフィックを送るためのリンクとしては使用しない状態を維持する）。コントローラ１００は、レイヤ２レベルでスイッチ１１２を構成することができる。コントローラ１００はさらに、ブロック５２０においてポート２２８のうちの少なくとも１つのポートを構成する前に、ブロック５１０においてリンク１１２の状態を監視することができる。コントローラ１００は、たとえば、簡易ネットワーク管理プロトコル（SNMP）を用いて（または該プロトコルにしたがって）、スイッチ１１２と通信して１以上のポート２２８を構成することができる。
【００４７】
上記の説明では、実施形態を理解できるようにするために特定の細部が提供されている。しかしながら、それらの特定の細部がなくても実施形態を実施できることが理解されよう。たとえば、システムは、不必要な細部によって実施形態が不明瞭にならないようにブロック図に示されている場合がある。他の例では、実施形態が不明瞭にならないようにするために、周知の処理、構造、及び技術は、不必要な細部を省いて示されている場合がある。
【図１】
2015529434.tif 000003
【図２】
2015529434.tif 000004
【図３Ａ】
2015529434.tif 000005
【図３Ｂ】
2015529434.tif 000006
【図４】
2015529434.tif 000007
【図５】
2015529434.tif 000008
【国際調査報告】
2015529434.tif 000009
2015529434.tif 000010