(57)【要約】      （修正有）【課題】SDNに応用される共有ツリーマルチキャストストリーミングメカニズム及び方法を提供する。【解決手段】コントローラはマルチキャストのソース端がストリーミングを伝送する前、近接するマルチキャストのソース端にクラスタを分け、ネットワークトポロジの分布につれ、複数のクラスタを自動に形成し、次にそれぞれのクラスタに対して一つのマルチキャストのソース端との距離が最小であるスイッチを設置してランデブポイントとし、同じクラスタ内におけるマルチキャストのソース端がランデブポイントまで最短ルートを確立し、且つランデブポイントを根とし、全部のマルチキャストのユーザ端まで最短ルートツリーを確立する。最短ルートツリーに基づき、ノードにおけるスイッチにフローエントリを設定する。【選択図】図１
2018007224.tif 000002
【特許請求の範囲】
【請求項１】
SDN(Software Defined Networking、ソフトウェア定義ネットワーク)共有ツリーマルチキャストストリーミングメカニズムであって、コントローラによってマルチキャストのソース端がストリーミングを送信する前、マルチキャストのソース端を複数のクラスタに分け、それぞれのクラスタに対して一つのマルチキャストのソース端との距離が最小であるスイッチを設置してランデブポイントとし、同じクラスタ内におけるマルチキャストのソース端がランデブポイントまで最短ルートを確立し、且つランデブポイントを根とし、全部のマルチキャストのユーザ端まで最短ルートツリーを確立し、且つ最短ルートツリーに基づき、ノードにおけるそれぞれのスイッチに対してフローエントリ（flow entry）を設定するようにさせ、それは主に以下を含む：
マルチキャストツリーの確立モジュールであって、スイッチ、マルチキャストのソース端及びマルチキャストのユーザ端の分布において、ストリーミングの伝送に必要なマルチキャストツリーを確立し、それは以下を含む：
マルチキャストのソース端クラスタユニットであって、全部のマルチキャストのソース端を複数のクラスタに分ける；
ランデブポイントの選択ユニットであって、該マルチキャストのソース端クラスタユニットの後ろに設置され、それにより一つのクラスタにおける距離が最小であるスイッチを選択してランデブポイントとする；及び
最短ルートツリーの確立ユニットであって、該ランデブポイント選択ユニットの後ろに設置され、それによりそれぞれのクラスタにおける全部のマルチキャストのソース端のためにクラスタランデブポイントまで最短ルートを確立し、且つクラスタランデブポイントを根とし、全部のマルチキャストのユーザ端まで最短ルートのマルチキャストを確立することに用いられる；
フローエントリの設定モジュールであって、該マルチキャストツリーの確立モジュールの後ろに設置され、且つ該スイッチにおけるフローエントリを設定し、それは以下を含む：
マルチキャストのソース端のフローエントリ設定ユニットであって、クラスタ内におけるソース端ストリーミングに対し、OpenFlow protocol(OpenFlow プロトコール)を用いてflow（フロー）をスイッチに伝送するフローエントリ動作を設定することで、ストリーミングパケットをクラスタランデブポイントに送信する；
ランデブポイントスイッチのフローエントリ設定ユニットであって、クラスタ内におけるソース端ストリーミングに対し、OpenFlow protocolを用いてVLAN（Virtual Local Area Netowrk、バーチャル・ローカル・エリア・ネットワーク）マークが貼られるflowからスイッチまでのフローエントリ動作を設定することで、VLANマークをストリーミングパケットに貼り、且つストリーミングパケットをユーザ端に送信する；
ツリースイッチのフローエントリ設定ユニットであって、VLANマークが貼られるストリーミングパケットに対し、OpenFlow protocolを用いてVLANマークを取り除き且つflowをスイッチに伝送するフローエントリ動作を設定することで、ストリーミングパケットにおけるVLANマークを取り除き、且つ該ストリーミングパケットを要求するユーザ端に送信する。
【請求項２】
請求項1に記載のSDN共有ツリーマルチキャストストリーミングメカニズムであって、そのうち該マルチキャストのソース端クラスタユニットは、以下を含む：
クラスタ選択ユニットであって、クラスタ間の距離を計算し、且つその間の距離が最小である二つのクラスタを選択する；
距離閾値の比較ユニットであって、該クラスタ選択ユニットの後ろに設置され、それによりクラスタ選択ユニットが選択する二つのクラスタに基づき、その距離が距離閾値より小さいかどうかということで、マルチキャストのソース端クラスタユニットを終了するかどうかを決定する；
荷重の比較ユニットであって、該距離閾値の比較ユニットの後ろに設置され、それにより該クラスタ選択ユニットが選択する二つのクラスタに基づき、その総フローは最大のスイッチ容量以下にあるかどうかということで、二つのクラスタを合併するかどうかを決定する。
【請求項３】
請求項1に記載のSDN共有ツリーマルチキャストストリーミングメカニズムであって、そのうち該ランデブポイント選択ユニットは、以下を含む：
最短ルートの計算ユニットであって、あるマルチキャストのソース端からスイッチまでの最短ルートを計算する；及び
最小距離総和の選択ユニットであって、該最短ルートの計算ユニットの後ろに設置され、それにより最小距離総和を有するスイッチを選択することで、該クラスタランデブポイントとする。
【請求項４】
請求項1に記載のSDN共有ツリーマルチキャストストリーミングメカニズムであって、そのうち該最短ルートツリーの確立ユニットは、二つの最短ルート計算を含み、それによりマルチキャストのソース端またはユーザ端からクラスタランデブポイントまでの最短ルートを計算することで、最短ルートのマルチキャストツリーを確立する。
【請求項５】
SDN共有ツリーマルチキャストストリーミング方法であって、以下を含む：
ステップ1、    トポロジの確立で、コントローラが開く時、該コントローラにおけるトポロジ検知モジュール及びグループ管理モジュールを用いてスイッチ、マルチキャストのソース端及びマルチキャストのユーザ端の分布を取得する；
ステップ2、    マルチキャストツリーの確立で、該トポロジの確立に基づき、マルチキャストのソース端を複数のクラスタに分け、それぞれのクラスタに対して一つのマルチキャストのソース端との距離が最小であるスイッチを設置してランデブポイントとし、同じクラスタ内におけるマルチキャストのソース端がランデブポイントまで最短ルートを確立し、且つランデブポイントを根とし、全部のマルチキャストのユーザ端まで最短ルートツリーを確立するようにさせる；
ステップ3、   フローエントリの設定で、該マルチキャストツリーの確立に基づき、  フローエントリがマルチキャストツリーにおけるスイッチを設定し、それによりマルチキャストストリーミングパケットを伝送する。
【請求項６】
請求項5に記載のSDN共有ツリーマルチキャストストリーミング方法であって、そのうち該マルチキャストツリーを確立するステップは以下を含む：
ステップ1、   マルチキャストのソース端クラスタで、全部のマルチキャストのソース端を複数のクラスタに分ける；
ステップ2、   ランデブポイントの選択で、該マルチキャストのソース端クラスタにおけるそれぞれのクラスタに距離が最小であるスイッチを選択し、それをクラスタランデブポイントとする；
ステップ3、   最短ルートツリーの確立で、該ランデブポイントの選択におけるそれぞれのクラスタランデブポイントに、それぞれのマルチキャストのソース端からクラスタランデブポイントまでの最短ルートを確立し、及びクラスタランデブポイントのから全部のユーザ端までの最短ルートツリーを確立する。
【請求項７】
請求項5に記載のSDN共有ツリーマルチキャストストリーミング方法であって、そのうち該フローエントリを設定するステップは以下を含む：
ステップ1、   マルチキャストのソース端におけるフローエントリの設定で、マルチキャストのソース端からクラスタランデブポイントまでのルートにおけるスイッチに対し、フローエントリが合う条件はソースIPがマルチキャストのソース端IPで、目的IPはマルチキャストIPで、動作はクラスタランデブポイントに伝送するように設定する；
ステップ2、   ランデブポイントスイッチにおけるフローエントリの設定で、クラスタランデブポイントに対し、フローエントリが合う条件はクラスタ内にマルチキャストのソース端から送信されるパケットで、動作はクラスタVLANマークを貼り、且つ全部のユーザ端に伝送するように設定する；
ステップ3、   ツリースイッチにおけるフローエントリの設定で、マルチキャストツリーにおけるスイッチに対し、フローエントリが合う条件はクラスタVLANマークを貼るパケットで、動作は全部のユーザ端に伝送するように設定する；
ステップ4、   ユーザ端スイッチにおけるフローエントリの設定で、ユーザ端を連結するスイッチに対し、フローエントリが合う条件はクラスタVLANマークを貼るパケットで、動作はパケットに貼られるクラスタVLANマークを取り除き、且つパケットをユーザ端に伝送するように設定する。
【請求項８】
請求項6に記載のSDN共有ツリーマルチキャストストリーミング方法であって、そのうち該マルチキャストのソース端にクラスタを分けるステップは以下を含む：
ステップ1、  それぞれのマルチキャストのソース端を一つのクラスタに設定する；
ステップ2、  クラスタの選択で、Dijkstraアルゴリズムによって、任意の二つのクラスタ間の距離を計算し、結果から距離が最小である二つのクラスタを選択する；
ステップ3、  距離閾値の比較で、それにより現在の二つのクラスタ間の距離が距離閾値より小さいかどうかを決定し、そうである場合、荷重の比較に入る；そうではない場合、マルチキャストのソース端クラスタを終了し、得る結果は複数のクラスタである；
ステップ4、 その荷重比較で、現在の二つのクラスタのフローが最大のスイッチ容量以下にあるかどうかを決定し、そうである場合、二つのクラスタを合併し、且つ改めてクラスタの選択に戻す；そうではない場合、直接クラスタ選択に戻し、距離が最小である二つのクラスタを改めて選択する。              
【請求項９】
請求項6に記載のSDN共有ツリーマルチキャストストリーミング方法であって、そのうち該ランデブポイントを選択するステップは以下を含む：
ステップ1、 最短ルートの計算で、Dijkstraアルゴリズムによって、あるマルチキャストのソース端からあるスイッチまでの最短ルートを計算する；
ステップ2、 最小距離総和の選択で、該最短ルートを計算する結果から、同じクラスタにおける全部のマルチキャストのソースから同じスイッチまでの最短ルート距離を累積し、且つ最小距離総和を備えるスイッチを選択し、それで該クラスタランデブポイントとする。
【請求項１０】
請求項6に記載のSDN共有ツリーマルチキャストストリーミング方法であって、そのうち該最短ルートツリーを確立するステップは、二つの最短ルートの計算を含み、それによりマルチキャストのソース端またはユーザ端からクラスタランデブポイントまでの最短ルートを計算することで、最短ルートツリーを確立する。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はSDN（Software Defined Networking、ソフトウェア定義ネットワーク）に応用される共有ツリーマルチキャストストリーミングメカニズム及方法に属し、マルチキャストのソース端はマルチキャストストリーミングを送信する前マルチキャストツリーを確立し、それによりマルチキャストストリーミングを伝送するルートとし、且つそれでネットワーク帯域幅の浪費を削減する。本発明が提出する方法はコントローラに必要とする計算量及びスイッチが設定する必要があるフローエントリの数量を削減することができる。
【背景技術】
【０００２】
SDNは近年に興ったネットワーク構造である。その概念はネットワークの制御層（control-plane）機能及びデータ層（data-plane）機能を分け、且つ制御層をコントローラに集中させ、スイッチにパケットを伝送する機能だけを保留し、スイッチはコントローラによってルートを計算する必要があり、且つコントローラによってパケットを伝送する方向をスイッチに設定することである。このため、コントローラは最適なマルチキャストツリーを確立する完全なネットワークトポロジ情報を有し、且つ更に早くマルチキャストメッセージを処理することができ、IPストリーミングのSDNにおけるマルチキャストが実現できるようにさせる。
【０００３】
コントローラはマルチキャストのソース端がストリーミングを伝送する前、必ずマルチキャストのソース端のためにマルチキャストツリーを確立しなければならなく、マルチキャストのソース端がユーザ端まで伝送できるようにさせる。本発明はSDNネットワークに対して共有ツリーマルチキャストストリーミングメカニズムを設計する。この前マルチキャストストリーミングに応用されるのは主にスイッチが如何なるフローエントリを設定してパケットをユーザ端に伝送されることができるかに対するが、マルチキャストのソース端の数量がフローエントリの数量に与える影響を考えなく、そのためスイッチの効能を影響し、大量なマルチキャストのソース端に適用しなく、下記のこの前の特許技術に類似する概念が言及された：US8831000（IP multicast service join process for MPLS−based virtual private cloud networking）、US8638789（Optimal multicast forwarding in OpenFlow based networks）。もう一方ツリーの確立に対するメカニズムは全部、一つずつのマルチキャストのソース端に対してマルチキャストツリーを確立し、そのためコントローラがマルチキャストツリーを計算する時間は長すぎ、且つスイッチ内におけるフローエントリの数量は多すぎになり、そのせいで大量なマルチキャストのソース端にも適用しない。
【０００４】
本案の発明者は上記よく用いられる手段から派生する各欠点に基づき、それを改良創造することを考え、且つ複数年に研究に専念した後、ついに本SDN共有ツリーマルチキャストストリーミングメカニズム及び方法を成功に研究開発した。
【発明の概要】
【０００５】
上記目的に達成するために、本発明はSDNネットワークに対して共有ツリーマルチキャストストリーミングメカニズム及び方法を設計し、マルチキャストのソース端がマルチキャストストリーミングを送信する前、近接するマルチキャストのソースツリーを同じクラスタに分け、ネットワークトポロジの分布につれ、複数のクラスタを自動に生成することができ、次にそれぞれのクラスタのためにマルチキャストツリーを確立し、それによってマルチキャストストリーミングを伝送るルートとする。共有ツリー及び共有ツリーのフローエントリを設定することにより、コントローラに必要とする計算量及び設定する必要があるフローエントリの数量を削減する。多すぎるマルチキャストツリーを確立する場合（例えば一つずつのマルチキャストのソースに対してマルチキャストツリーを確立する）、コントローラがマルチキャストツリーを計算する時間は長すぎ、且つスイッチ内におけるフローエントリの数量は多すぎになる。少なすぎるマルチキャストツリーを確立する場合（例えば全部のマルチキャストのソースに対して一つだけのマルチキャストツリーを確立する）、伝送するルートは長すぎ、且つランデブポイントの負担は重過ぎになる。
【０００６】
上記発明目的に達成するためのSDN共有ツリーマルチキャストストリーミングメカニズムは、コントローラがマルチキャストのソース端にストリーミングを伝送する前、近接するマルチキャストのソース端を複数のクラスタに分け、ネットワークトポロジの分布につれ、複数のクラスタを自動に形成することができ、それぞれのクラスタに対して一つのマルチキャストのソース端との距離が最小であるスイッチを設置してランデブポイントとし、同じクラスタにおけるマルチキャストのソース端がランデブポイントまで最短ルートを確立し、且つランデブポイントを根とし、全部のマルチキャストのユーザ端まで最短ルートを確立し、且つ最短ルートツリーに基づき、それぞれのツリーノードにおけるスイッチに対してフローエントリを設定するようにさせる。多すぎるマルチキャストツリーを確立する場合（例えば一つずつのマルチキャストのソースに対してマルチキャストツリーを確立する）、コントローラがマルチキャストツリーを計算する時間は長すぎ、且つスイッチ内におけるフローエントリの数量は多すぎになる。少なすぎるマルチキャストツリーを確立する場合（例えば全部のマルチキャストのソースに対して一つだけのマルチキャストツリーを確立する）、伝送するルートは長すぎ、且つランデブポイントの負担は重すぎになる。
【０００７】
本発明が提出するSDN共有ツリーマルチキャストストリーミングメカニズムは二つのモジュールを含む：一マルチキャストツリーの確立モジュール、及び（二）フローエントリの設定モジュール。コントローラはマルチキャストのソース端がストリーミングを伝送する前、まずコントローラにある従来のトポロジ探知モジュールを用いてスイッチ、マルチキャストのソース端及びユーザ端の位置を探知する。次に、マルチキャストツリーの確立モジュールを用い、複数のマルチキャストツリーを確立することで全部のマルチキャストのソース端及びユーザ端がマルチキャストツリーの中にあるようにさせる。最後、マルチキャストツリーに基づき、コントローラはパケットをユーザ端に伝送するフローエントリをマルチキャストツリーにおけるスイッチに設定する。
【０００８】
SDN共有ツリーマルチキャストストリーミングメカニズムであって、コントローラはマルチキャストのソータ端がストリーミングを伝送する前、マルチキャストのソース端を複数のクラスタに分け、それぞれのクラスタに対して一つのマルチキャストのソース端との距離が最小であるスイッチを設置してランデブポイントとし、同じクラスタ内におけるマルチキャストのソース端がランデブポイントまで最短ルートを確立し、且つランデブポイントを根とし、全部のマルチキャストのユーザ端まで最短ルートを確立し、且つ最短ルートツリーに基づき、それぞれのツリーノードにおけるスイッチに対してフローエントリ（flow entry）を設定するようにさせ、主にマルチキャストツリーの確立モジュールを含み、スイッチ、マルチキャストのソース端及びマルチキャストのユーザ端の分布において、ストリーミングの伝送に必要とするマルチキャストツリーを確立し、それは以下を含む：マルチキャストのソース端クラスタユニットであって、全部のマルチキャストのソース端を複数のクラスタに分ける；ランデブポイントの選択ユニットであって、マルチキャストのソース端クラスタユニットの後ろに設置され、それによりクラスタに距離が最小であるスイッチを選択してランデブポイントとする；及び最短ルートツリーの確立ユニットであって、ランデブポイントの選択ユニットの後ろに設置され、それぞれのクラスタにおける全部のマルチキャストのソース端にクラスタランデブポイントまでの最短ルートを確立し、且つクラスタランデブポイントを根とし、全部のマルチキャストのユーザ端まで最短ルートツリーを確立することに用いられる；フローエントリの設定モジュールであって、マルチキャストツリーの確立モジュールの後ろに設置され、且つそれによりスイッチにおけるフローエントリを設定し、そのフローエントリはマルチキャストのソース端におけるフローエントリ設定ユニットを含み、クラスタ内におけるソース端ストリーミングを設定し、OpenFlow protocol(OpenFlowプロトコール)を用いてflow（フロー）をスイッチに伝送するフローエントリ動作を設定し、それによってストリーミングパケットをクラスタランデブポイントに送信する；ランデブポイントスイッチにおけるフローエントリの設定ユニットであって、クラスタ内におけるソース端ストリーミングを設定し、OpenFlow protocolを用いてVLAN（Virtual Local Area Netowrk、バーチャル・ローカル・エリア・ネットワーク）マークが貼られるflowからスイッチまでのフローエントリ動作を設定し、それによってVLANマークをストリーミングパケットに貼り、且つストリーミングパケットをユーザ端に送信する；ツリースイッチにおけるフローエントリの設定ユニットであって、VLANマークが貼られたストリーミングパケットを設定し、OpenFlow protocolを用いてflow（フロー）をスイッチまで伝送するフローエントリ動作を設定し、それによってストリーミングパケットをユーザ端に送信する；及びユーザ端スイッチにおけるフローエントリの設定ユニットであって、VLANマークが貼られたストリーミングパケットを設定し、OpenFlow protocolを用いてVLANマークを取り除き且つflow（フロー）をスイッチに伝送するフローエントリ動作を設定し、それによってストリーミングパケットにおけるVLANマークを取り除き、且つストリーミングパケットを要求するユーザ端に送信する。
【０００９】
ここにおいてマルチキャストのソース端クラスタユニットは、以下を含む：クラスタ選択ユニットであって、それによってクラスタ間の距離を計算し、且つ距離が最小である二つのクラスタを選択する；距離閾値の比較ユニットであって、クラスタ選択ユニットの後ろに設置され、それによってクラスタ選択ユニットが選択する二つのクラスタに基づき、その距離が距離閾値より小さいかどうかということで、マルチキャストのソース端クラスタユニットを終了するかどうかを決定する；荷重の比較ユニットであって、距離閾値の比較ユニットの後ろに設置され、クラスタ選択ユニットが選択する二つのクラスタに基づき、その総フローが最大のスイッチ容量以下にあるかどうかということで、二つのクラスタを合併するかどうかを決定する。ここにおいてランデブポイントの選択ユニットは、最短ルート計算ユニットを含み、一つのマルチキャストのソース端からあるスイッチまでの最短ルートを計算する；及び最小距離総和の選択ユニットであって、最短ルート計算ユニットの後ろに設置され、最小距離総和を有するスイッチを選択し、それをクラスタランデブポイントとする。ここにおいて最短ルートツリーの確立ユニットは、二つの最短ルートの計算を含み、それでマルチキャストのソース端またはユーザ端からクラスタランデブポイントまでの最短ルートを計算することで、最短ルートのマルチキャストツリーを確立する。
【００１０】
SDN共有ツリーマルチキャストストリーミング方法であって、以下を含む：
ステップ1、   トポロジの確立で、コントローラが開く時、該コントローラにおけるトポロジ検知モジュール及びグループ管理モジュールを用いてスイッチ、マルチキャストのソース端及びマルチキャストのユーザ端の分布を取得する；
ステップ2、   マルチキャストツリーの確立で、トポロジの確立に基づき、マルチキャストのソース端を複数のクラスタに分け、それぞれのクラスタに対して一つのマルチキャストのソース端との距離が最小であるスイッチを設置してランデブポイントとし、同じクラスタ内におけるマルチキャストのソース端がランデブポイントまで最短ルートを確立し、且つランデブポイントを根とし、全部のマルチキャストのユーザ端まで最短ルートツリーを確立するようにさせる；
ステップ3、   フローエントリの設定で、マルチキャストツリーの確立に基づき、フローエントリのマルチキャストツリーにおけるスイッチを設定し、それによりマルチキャストストリーミングパケットを伝送する。
【００１１】
ここにおいてマルチキャストツリーを確立するステップは以下を含む：
ステップ1、   マルチキャストのソース端クラスタで、全部のマルチキャストのソース端を複数のクラスタに分ける；
ステップ2、   ランデブポイントの選択で、該マルチキャストのソース端クラスタにおけるそれぞれのクラスタに距離が最小であるスイッチを選択し、それをクラスタランデブポイントとする；
ステップ3、   最短ルートツリーの確立で、該ランデブポイントの選択におけるそれぞれのクラスタランデブポイントに、それぞれのマルチキャストのソース端からクラスタランデブポイントまでの最短ルートを確立し、及びクラスタランデブポイントのから全部のユーザ端までの最短ルートツリーを確立する。
【００１２】
ここにおいて該フローエントリを設定するステップは以下を含む：
ステップ1、   マルチキャストのソース端におけるフローエントリの設定で、マルチキャストのソース端からクラスタランデブポイントまでのルートにおけるスイッチに対し、フローエントリが合う条件はソースIPがマルチキャストのソース端IPで、目的IPはマルチキャストIPで、動作はクラスタランデブポイントに伝送するように設定する；
ステップ2、   ランデブポイントスイッチにおけるフローエントリの設定で、クラスタランデブポイントに対し、フローエントリが合う条件はクラスタ内にマルチキャストのソース端から送信されるパケットで、動作はクラスタVLANマークを貼り、且つ全部のユーザ端に伝送するように設定する；
ステップ3、   ツリースイッチにおけるフローエントリの設定で、マルチキャストツリーにおけるスイッチに対し、フローエントリが合う条件はクラスタVLANマークを貼るパケットで、動作は全部のユーザ端に伝送するように設定する；
ステップ4、   ユーザ端スイッチにおけるフローエントリの設定で、ユーザ端を連結するスイッチに対し、フローエントリが合う条件はクラスタVLANマークを貼るパケットで、動作はパケットに貼られるクラスタVLANマークを取り除き、且つパケットをユーザ端に伝送するように設定する。
【００１３】
ここにおいてマルチキャストのソース端にクラスタを分けるステップは以下を含む：
ステップ1、   それぞれのマルチキャストのソース端を一つのクラスタに設定する；
ステップ2、   クラスタの選択で、Dijkstraアルゴリズムによって、任意の二つのクラスタ間の距離を計算し、結果から距離が最小である二つのクラスタを選択する；
ステップ3、   距離閾値の比較で、それにより現在の二つのクラスタ間の距離が距離閾値より小さいかどうかを決定し、そうである場合、荷重の比較に入る；そうではない場合、マルチキャストのソース端クラスタを終了し、得る結果は複数のクラスタである；
ステップ4、   その荷重比較で、現在の二つのクラスタのフローが最大のスイッチ容量以下にあるかどうかを決定し、そうである場合、二つのクラスタを合併し、且つ改めてクラスタの選択に戻す；そうではない場合、直接クラスタ選択に戻し、距離が最小である二つのクラスタを改めて選択する。              
【００１４】
ここにおいて該ランデブポイントを選択するステップは以下を含む：
ステップ1、   最短ルートの計算で、Dijkstraアルゴリズムによって、あるマルチキャストのソース端からあるスイッチまでの最短ルートを計算する；
ステップ2、   最小距離総和の選択で、該最短ルートを計算する結果から、同じクラスタにおける全部のマルチキャストのソースから同じスイッチまでの最短ルート距離を累積し、且つ最小距離総和を備えるスイッチを選択し、それで該クラスタランデブポイントとする。
【００１５】
ここにおいて最短ルートツリーを確立するステップは、二つの最短ルートの計算を含み、それでマルチキャストのソース端またはユーザ端からクラスタランデブポイントまでの最短ルートを計算することで、最短ルートツリーを確立する。
【００１６】
本発明が提供するSDN共有ツリーマルチキャストストリーミングメカニズム及び方法は、主にスイッチが如何なるフローエントリを設定してパケットをユーザ端に伝送することができるかということに対し、且つマルチキャストのソース端の数量がフローエントリの数量に与える影響を考えなく、更にスイッチの効能を影響し、大量なマルチキャストのソース端に適用しなく、ほかのよく用いられる技術と比較すると、更に下記利点を有する：
1.   本発明がマルチキャストのソース端を複数のクラスタに分けることは、マルチキャストツリーの数量を削減することができる。
2.   本発明がクラスタ共有マルチキャストツリーを用いることは、コントローラがマルチキャストツリーを計算する時間を削減することができる。
3.   本発明がクラスタ共有マルチキャストツリーを用いることは、スイッチ内におけるフローエントリの数量を削減することができる。
【図面の簡単な説明】
【００１７】
本発明に関する詳細な説明及びその附図に参照してください、それで本発明の技術内容及びその目的と効果を更に了解することができる；関連する附図は以下のとおりである：
【図１】本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法のシステム構造図である；
【図２】本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法のマルチキャストのソース端クラスタユニットの構造図である；
【図３】本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法のランデブポイントの選択ユニットの構造図である；
【図４】本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法の最短ルートツリーの確立ユニットの構造図である；
【図５】本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法の流れ図である；
【図６】本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法のマルチキャストのソース端クラスタの流れ図である；
【図７】本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法のランデブポイントを選択するステップの流れ図である；
【図８】本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法の最短ルートツリーを確立する流れ図である；
【図９】本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法のフローエントリを設定する流れ図である。
【発明を実施するための形態】
【００１８】
本発明の目的、技術的解決手段及び利点を更に明確にさせるために、以下は附図及び実施例を結合し、本発明を更に詳細的に説明する。理解すべきことは、ここに描く具体的な実施例はただ本発明を解釈するのに用いられるが、本発明を限定しない。
【００１９】
以下は、附図を結合して本発明を更に説明する：
【００２０】
図1に参照してください、本発明SDN共有ツリーマルチキャストストリーミングメカニズム及び方法のシステム構造図であって、コントローラはマルチキャストのソータ端がストリーミングを伝送する前、マルチキャストのソース端を複数のクラスタに分け、それぞれのクラスタに対して一つのマルチキャストのソース端との距離が最小であるスイッチを設置してランデブポイントとし、同じクラスタ内におけるマルチキャストのソース端がランデブポイントまで最短ルートを確立し、且つランデブポイントを根とし、全部のマルチキャストのユーザ端まで最短ルートを確立し、且つ最短ルートツリーに基づき、それぞれのツリーノードにおけるスイッチに対してフローエントリ（flow entry）を設定するようにさせ、主にマルチキャストツリーの確立モジュール200を含み、スイッチ、マルチキャストのソース端及びマルチキャストのユーザ端の分布において、ストリーミングの伝送に必要とするマルチキャストツリーを確立し、それは以下を含む：マルチキャストのソース端クラスタユニット210であって、全部のマルチキャストのソース端を複数のクラスタ300に分ける；ランデブポイントの選択ユニット220であって、マルチキャストのソース端クラスタユニット210の後ろに設置され、それによりそれぞれのクラスタ300に距離が最小であるスイッチを選択してランデブポイント400とする；及び最短ルートツリーの確立ユニット230であって、ランデブポイントの選択ユニット220の後ろに設置され、それぞれのクラスタにおける全部のマルチキャストのソース端にクラスタランデブポイントまでの最短ルートを確立し、且つクラスタランデブポイントを根とし、全部のマルチキャストのユーザ端まで最短ルートツリーを確立することに用いられる；フローエントリの設定モジュール600であって、マルチキャストツリーの確立モジュール200の後ろに設置され、且つそれによりスイッチにおけるフローエントリを設定し、そのフローエントリはマルチキャストのソース端におけるフローエントリ設定ユニット610を含み、クラスタ内におけるソース端ストリーミングを設定し、OpenFlow protocol(OpenFlowプロトコール)を用いてflow（フロー）をスイッチに伝送するフローエントリ動作を設定し、それによってストリーミングパケットをクラスタランデブポイントに送信する；ランデブポイントスイッチにおけるフローエントリの設定ユニット620であって、クラスタ内におけるソース端ストリーミングを設定し、OpenFlow protocolを用いてVLAN（Virtual Local Area Netowrk、バーチャル・ローカル・エリア・ネットワーク）マークが貼られるflowからスイッチまでのフローエントリ動作を設定し、それによってVLANマークをストリーミングパケットに貼り、且つストリーミングパケットをユーザ端に送信する；ツリースイッチにおけるフローエントリの設定ユニット630であって、VLANマークが貼られたストリーミングパケットを設定し、OpenFlow protocolを用いてflow（フロー）をスイッチまで伝送するフローエントリ動作を設定し、それによってストリーミングパケットをユーザ端に送信する；及びユーザ端スイッチにおけるフローエントリの設定ユニットで640あって、VLANマークが貼られたストリーミングパケットを設定し、OpenFlow protocolを用いてVLANマークを取り除き且つflow（フロー��をスイッチに伝送するフローエントリ動作を設定し、それによってストリーミングパケットにおけるVLANマークを取り除き、且つストリーミングパケットを要求するユーザ端に送信する。
【００２１】
図2に参照してください、本発明のSDN共有ツリーマルチキャストストリーミングメカニズムのマルチキャストのソース端クラスタユニットの構造図であって、ここにおいてマルチキャストのソース端クラスタユニット210は、以下を含む：クラスタ選択ユニット211であって、それによってクラスタ間の距離を計算し、且つ距離が最小である二つのクラスタを選択する；距離閾値の比較ユニット212であって、クラスタ選択ユニット211の後ろに設置され、それによってクラスタ選択ユニット211が選択する二つのクラスタに基づき、その距離が距離閾値より小さいかどうかということで、マルチキャストのソース端クラスタユニットを終了するかどうかを決定する；荷重の比較ユニット213であって、距離閾値の比較ユニット212の後ろに設置され、クラスタ選択ユニット211が選択する二つのクラスタに基づき、その総フローが最大のスイッチ容量以下にあるかどうかということで、二つのクラスタを合併するかどうかを決定する。
【００２２】
図3に参照してください、本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法のランデブポイントの選択ユニットの構造図であって、ランデブポイントの選択ユニット220は、最短ルート計算ユニット221を含み、一つのマルチキャストのソース端からあるスイッチまでの最短ルートを計算する；及び最小距離総和の選択ユニット222であって、最短ルート計算ユニット221の後ろに設置され、最小距離総和を有するスイッチを選択し、それをクラスタランデブポイントとする。
【００２３】
図4に参照してください、本発明のSDN共有ツリーマルチキャストストリーミングメカニズムの及び方法の最短ルートツリーの確立ユニットの構造図であって、最短ルートツリーの確立ユニットは、二つの最短ルートの計算530を含み、それでマルチキャストのソース端510またはユーザ端520からクラスタランデブポイント400までの最短ルートを計算することで、最短ルートのマルチキャストツリー500を確立する。
【００２４】
図5に参照してください、本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法の流れ図であって、SDN共有ツリーマルチキャストストリーミング方法であって、以下を含む：
ステップ1、   トポロジの確立S700で、コントローラが開く時、該コントローラにおけるトポロジ検知モジュール及びグループ管理モジュールを用いてスイッチ、マルチキャストのソース端及びマルチキャストのユーザ端の分布を取得する；
ステップ2、   マルチキャストツリーの確立S710で、該トポロジの確立S700に基づき、マルチキャストのソース端を複数のクラスタに分け、それぞれのクラスタに対して一つのマルチキャストのソース端との距離が最小であるスイッチを設置してランデブポイントとし、同じクラスタ内におけるマルチキャストのソース端がランデブポイントまで最短ルートを確立し、且つランデブポイントを根とし、全部のマルチキャストのユーザ端まで最短ルートツリーを確立するようにさせる；
ステップ3、   フローエントリの設定S720で、該マルチキャストツリーの確立S710に基づき、フローエントリがマルチキャストツリーにおけるスイッチを設定し、それによりマルチキャストストリーミングパケットを伝送する。              
【００２５】
ここにおいてS710マルチキャストツリーを確立するステップは以下を含む：
ステップ1、   S711マルチキャストのソース端クラスタで、全部のマルチキャストのソース端を複数のクラスタに分ける；
ステップ2、   S712ランデブポイントの選択で、該マルチキャストのソース端クラスタにおけるそれぞれのクラスタに距離が最小であるスイッチを選択し、それをクラスタランデブポイントとする；
ステップ3、   S713最短ルートツリーの確立で、該ランデブポイントの選択におけるそれぞれのクラスタランデブポイントに、それぞれのマルチキャストのソース端からクラスタランデブポイントまでの最短ルートを確立し、及びクラスタランデブポイントのから全部のユーザ端までの最短ルートツリーを確立する。
【００２６】
図9に参照してください、本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法のフローエントリを設定する流れ図であって、そのうちS720フローエントリを設定するステップは以下を含む：
ステップ1、   SS721マルチキャストのソース端におけるフローエントリの設定で、マルチキャストのソース端からクラスタランデブポイントまでのルートにおけるスイッチに対し、そのS722が設定するフローエントリが合う条件は：ソースIPがマルチキャストのソース端IPで、目的IPはマルチキャストIPで、動作はクラスタランデブポイントに伝送する；
ステップ2、   S723ランデブポイントスイッチにおけるフローエントリの設定で、クラスタランデブポイントに対し、そのS724が設定するフローエントリが合う条件は：クラスタ内にマルチキャストのソース端から送信されるパケットで、動作はクラスタVLANマークを貼り、且つ全部のユーザ端に伝送する；
ステップ3、   S725ツリースイッチにおけるフローエントリの設定で、マルチキャストツリーにおけるスイッチに対し、そのS726が設定するフローエントリが合う条件は：クラスタVLANマークを貼るパケットで、動作は全部のユーザ端に伝送する；
ステップ4、   S727ユーザ端スイッチにおけるフローエントリの設定で、ユーザ端を連結するスイッチに対し、そのS728が設定するフローエントリが合う条件は：クラスタVLANマークを貼るパケットで、動作はパケットに貼られるクラスタVLANマークを取り除き、且つパケットをユーザ端に伝送する              。
【００２７】
図6に参照してください、本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法のマルチキャストのソース端クラスタの流れ図であって、そのうちS711マルチキャストのソース端にクラスタを分けるステップは以下を含む：
ステップ1、   S7111それぞれのマルチキャストのソース端を一つのクラスタに設定する；
ステップ2、   S7112クラスタの選択で、Dijkstraアルゴリズムによって、任意の二つのクラスタ間の距離を計算し、結果から距離が最小である二つのクラスタを選択する；
ステップ3、   S7113距離閾値の比較で、それにより現在の二つのクラスタ間の距離が距離閾値より小さいかどうかを決定し、そうである場合、荷重の比較に入る；そうではない場合、マルチキャストのソース端クラスタS7114を終了し、得る結果は複数のクラスタである；
ステップ4、   S7115その荷重比較で、現在の二つのクラスタのフローが最大のスイッチ容量以下にあるかどうかを決定し、そうである場合、二つのクラスタを合併しS7116、且つ改めてクラスタの選択S7112に戻す；そうではない場合、直接クラスタ選択S7112に戻し、距離が最小である二つのクラスタを改めて選択する。
【００２８】
図7に参照してください、本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法のランデブポイントを選択するステップの流れ図であって、そのうちS712ランデブポイントを選択するステップは以下を含む：
ステップ1、   最短ルートの計算S7121で、Dijkstraアルゴリズムによって、あるマルチキャストのソース端からあるスイッチまでの最短ルートを計算する；
ステップ2、   最小距離総和の選択でS7122、該最短ルートを計算する結果から、同じクラスタにおける全部のマルチキャストのソースから同じスイッチまでの最短ルート距離を累積し、且つ最小距離総和を備えるスイッチを選択し、それで該クラスタランデブポイントとする。
【００２９】
図8に参照してください、本発明のSDN共有ツリーマルチキャストストリーミングメカニズム及び方法の最短ルートツリーを確立する流れ図であって、そのうち最短ルートツリーを確立するステップは、S840二つの最短ルートの計算を含み、それでマルチキャストのソース端S810またはユーザ端S820からクラスタランデブポイントS830までの最短ルートを計算し、それで最短ルートツリーS850を確立する。
【００３０】
上記詳細な説明は本発明に対して実行可能な実施例に行う具体的な説明であるが、但し該実施例は本発明の請求項範囲を制限しなく、本発明の技術精神から離れない全部の同等な実施または変更は、全部本案の特許範囲に含まれるべきである。
【００３１】
要約すると、本案は技術思想から見ると創造的であるほか、且つよく用いられる伝統的方法が及ぼさない上記複数の効果を有し、新規性及び進歩性という法定の発明と特許の要件に十分合い、このため法律によって申請を提出し、本件の特許申請を審査の上に許可するよう懇願し、発明を励ましとし、お礼を申し上げます。
【符号の説明】
【００３２】
100 トポロジ探知ユニット
200 マルチキャストツリーの確立モジュール
210 マルチキャストのソース端クラスタユニット
211 クラスタ選択ユニット
212 距離閾値の比較ユニット
213 荷重の比較ユニット
220 ランデブポイントの選択ユニット
221 最短ルートの計算ユニット
222 最小距離総和の選択ユニット
230 最短ルートツリーの確立ユニット
300 クラスタ
400 ランデブポイント
500 マルチキャストツリー
510 マルチキャストのソース端
520 ユーザ端
530 最短ルートの計算
600 フローエントリの設定モジュール
610 マルチキャストのソース端におけるフローエントリの設定ユニット
620 ランデブポイントスイッチにおけるフローエントリの設定ユニット
630 ツリースイッチにおけるフローエントリの設定ユニット
640 ユーザ端スイッチにおけるフローエントリの設定ユニット
S7121 最短ルートの計算
S7122 最小距離総和の選択
S700〜S720 流れ
S720〜S728 フローエントリを設定する流れ
S7111〜S7116 マルチキャストのソース端にクラスタを分ける流れ
S810〜S850 最短ルートツリーを確立する流れ
【図１】
2018007224.tif 000003
【図２】
2018007224.tif 000004
【図３】
2018007224.tif 000005
【図４】
2018007224.tif 000006
【図５】
2018007224.tif 000007
【図６】
2018007224.tif 000008
【図７】
2018007224.tif 000009
【図８】
2018007224.tif 000010
【図９】
2018007224.tif 000011