JP5756049B2 - Multicast route calculation method and apparatus - Google Patents

Multicast route calculation method and apparatus Download PDF

Info

Publication number
JP5756049B2
JP5756049B2 JP2012085942A JP2012085942A JP5756049B2 JP 5756049 B2 JP5756049 B2 JP 5756049B2 JP 2012085942 A JP2012085942 A JP 2012085942A JP 2012085942 A JP2012085942 A JP 2012085942A JP 5756049 B2 JP5756049 B2 JP 5756049B2
Authority
JP
Japan
Prior art keywords
branch
branch candidate
multicast
candidate
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012085942A
Other languages
Japanese (ja)
Other versions
JP2013219436A (en
Inventor
洋 松浦
洋 松浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012085942A priority Critical patent/JP5756049B2/en
Publication of JP2013219436A publication Critical patent/JP2013219436A/en
Application granted granted Critical
Publication of JP5756049B2 publication Critical patent/JP5756049B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、マルチキャスト経路計算方法及び装置に係り、特に、マルチキャストツリーを生成するための経路計算(ルーティング)装置におけるマルチキャスト経路計算方法及び装置に関する。   The present invention relates to a multicast route calculation method and apparatus, and more particularly, to a multicast route calculation method and device in a route calculation (routing) device for generating a multicast tree.

IP(Internet Protocol)ネットワークでは、IPTVのような放送型のサービス要求が高まっており、このIPストリームを(G)MPLS(Multi Protocol Label Switching)で明示的に張った土管に通すことにより、帯域を確保して放送型サービスのQoSを保証する必要がある。これらの要求を満たすためには、効率よくマルチキャストツリーを作成する必要がある。   In IP (Internet Protocol) networks, there is an increasing demand for broadcast-type services such as IPTV. Bandwidth can be reduced by passing this IP stream through a clay pipe explicitly constructed with (G) MPLS (Multi Protocol Label Switching). It is necessary to secure and guarantee QoS of broadcasting services. In order to satisfy these requirements, it is necessary to create a multicast tree efficiently.

複数のノードとその複数ノード間を繋ぐ複数の方向性リンク(リンクの方向によりリンクコストが異なるリンク)で構成されるネットワーク上で、アルゴリズムの最初はマルチキャストの始点ノードのみからなるマルチキャストツリーを定義し、当該マルチキャストツリーから、まだ経路が決まっていないマルチキャスト終点ノード集合に辿り着く経路の中で最も経路コストが小さい経路をマルチキャストツリーに加え、この処理を最終的に全てのマルチキャストツリー終点ノードまでの経路が決まるまで繰り返すマルチキャストツリー生成アルゴリズムがある。   On a network consisting of multiple nodes and multiple directional links (links with different link costs depending on the link direction) connecting the multiple nodes, the algorithm starts with a multicast tree consisting of only the multicast start node. , The route with the lowest route cost among the routes reaching the multicast end node set whose route has not yet been determined from the multicast tree is added to the multicast tree, and this process is finally routed to all multicast tree end nodes. There is a multicast tree generation algorithm that repeats until

そのマルチキャストツリー生成アルゴリズムとして、MPH(Minimum-cost Path Heuristics)アルゴリズム(例えば、非特許文献1参照)がある。   As the multicast tree generation algorithm, there is an MPH (Minimum-cost Path Heuristics) algorithm (for example, see Non-Patent Document 1).

以下にMPHアルゴリズムについて説明する。   The MPH algorithm will be described below.

図1にMPHアルゴリズムフローを示す。   FIG. 1 shows the MPH algorithm flow.

ステップ1) 当該ステップでは、アルゴリズムの初期条件と、アルゴリズムが使う集合の定義を示す。集合Eはマルチキャストの終点ノードのうち、まだその終点までの経路が決定していない終点ノードの集合である。集合Eはアルゴリズムの最初は全てのマルチキャストの終点ノードを保持するが、終点ノードまでの経路が決定した終点ノードは集合Eから削除される。集合Vはアルゴリズムの過程で作成される既存ツリー上のすべてのノード(集合Rに登録されているすべてのブランチ上のノード)が格納されている。但し、アルゴリズムの最初はマルチキャストツリーの始点ノードのみがVに格納される。集合Rには、ステップ2で選択されたV-E間最短経路が新ブランチとして格納されていき、最終的にこのブランチの集合がマルチキャストツリーの全ての構成ブランチとなる。   Step 1) This step shows the initial conditions of the algorithm and the definition of the set used by the algorithm. The set E is a set of end-point nodes that have not yet determined a route to the end-point among multicast end-point nodes. The set E holds all multicast end-point nodes at the beginning of the algorithm, but the end-point node determined by the route to the end-point node is deleted from the set E. The set V stores all nodes on the existing tree (nodes on all branches registered in the set R) created in the process of the algorithm. However, at the beginning of the algorithm, only the start node of the multicast tree is stored in V. In the set R, the shortest path between V and E selected in step 2 is stored as a new branch, and finally this set of branches becomes all the constituent branches of the multicast tree.

ステップ2) 当該ステップでは既存ツリー上のノード集合であるVから、まだノードまでのブランチが決まっていない終点ノード集合Eまでの最短経路を求めて、その最短経路を新ブランチとして集合Rに登録する。また、当該新ブランチの終点ノードは集合Eから取り除かれ、当該新ブランチの始点以外のノードは集合Vに追加される。   Step 2) In this step, the shortest route from the node set V on the existing tree to the end node set E for which the branch to the node has not been determined is obtained, and the shortest route is registered in the set R as a new branch. . Further, the end node of the new branch is removed from the set E, and nodes other than the start point of the new branch are added to the set V.

ステップ3) 集合Eが空集合かどうかの判断を行い、もしEが空集合であればすべての終点までのブランチが決定したことになるので、アルゴリズムの終了となる。もし集合Eが空集合ではない場合はステップ2に戻る。   Step 3) It is determined whether or not the set E is an empty set. If E is an empty set, branches to all end points have been determined, and the algorithm ends. If set E is not an empty set, return to step 2.

ステップ2のV-E間の最短経路算出のためのダイクストラのアルゴリズム(非特許文献2)は、現在最も計算量を小さくできるFibonacciヒープ(非特許文献3、4)を使ったデータ構造で、O(l+n log n)の計算量である。なお、ここでlはネットワーク上のリンク数を示し、nはノード数を示す。図1のステップ2〜3のループはマルチキャスト終点数であるm回走行されるので、MPHの計算量は最悪時間計算量、平均時間計算量ともにO(m(l+n log n))となる。   Dijkstra's algorithm (Non-Patent Document 2) for calculating the shortest path between VEs in Step 2 is a data structure using a Fibonacci heap (Non-Patent Documents 3 and 4) that can reduce the amount of computation most at present. + n log n). Here, l indicates the number of links on the network, and n indicates the number of nodes. Since the loop of steps 2 to 3 in FIG. 1 is run m times that is the number of multicast endpoints, the MPH calculation amount is O (m (l + n log n)) for both the worst time calculation amount and the average time calculation amount. .

Hiromitsu Takahashi and Akira Matsuyama, "AN APPROXIMATE SOLUTION FOR THE STEINER PROBLEM IN GRAPHS," Math. Japonica, vol. 24, pp. 573-577, 1980.Hiromitsu Takahashi and Akira Matsuyama, "AN APPROXIMATE SOLUTION FOR THE STEINER PROBLEM IN GRAPHS," Math. Japonica, vol. 24, pp. 573-577, 1980. http://www.deqnotes.net/acmicpc/dijkstra/http://www.deqnotes.net/acmicpc/dijkstra/ M.L. Fredman and R.E. Tarjan, "Fibonacci heaps and their uses in improved network optimization algorithms," Journal of the ACM (JACM), vol. 34, no. 3, pp. 596-615, 1987.M.L.Fredman and R.E.Tarjan, "Fibonacci heaps and their uses in improved network optimization algorithms," Journal of the ACM (JACM), vol. 34, no. 3, pp. 596-615, 1987. http://www.lab2.kuis.kyoto-u.ac.jp/~itohiro/lecture/heap-GT.pdfhttp://www.lab2.kuis.kyoto-u.ac.jp/~itohiro/lecture/heap-GT.pdf

しかしながら、上記のアルゴリズムMPHは、マルチキャスト終点数回のダイクストラアルゴリズム走行が必要となるため、計算量が大きく処理時間が大きくなる問題がある。   However, the above algorithm MPH requires the Dijkstra algorithm to run several times at the end of the multicast, so there is a problem that the calculation amount is large and the processing time is long.

本発明は、上記の点に鑑みなされたもので、従来のMPHアルゴリズムで必要であったノード間の最短経路を求めるダイクストラアルゴリズムの走行を行なわず、短時間でMPHアルゴリズムと同じマルチキャストツリーを作成することが可能なマルチキャスト経路計算方法及び装置を提供することを目的とする。   The present invention has been made in view of the above points, and creates the same multicast tree as the MPH algorithm in a short time without running the Dijkstra algorithm for obtaining the shortest path between nodes, which was necessary in the conventional MPH algorithm. It is an object of the present invention to provide a multicast route calculation method and apparatus capable of performing the above-described operation.

上記の課題を解決するため、本発明は、複数ノードを通信リンクを介して相互に接続可能としたネットワーク上で、ある始点ノードから他のすべてのノード内の部分集合である複数ノードまでのマルチキャスト経路を計算するためのマルチキャスト経路計算方法であって、
最初はマルチキャスト始点ノードのみからなるマルチキャストツリーを定義し、当該マルチキャストツリーから、まだ経路が決まっていないマルチキャスト終点ノード集合の1終点ノードにたどり着く最短経路を新ブランチとしてマルチキャストツリーに加え、この処理を最終的にすべてのマルチキャストツリーブランチが決まるまで繰り返すマルチキャストツリー生成アルゴリズムを用い、
アルゴリズムの第1回目のルーチンはマルチキャスト始点ノードから始まり、そのノードから発するリンクを求め、そのすべてのリンクをブランチ候補としてブランチ候補記憶手段に格納し、当該ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出し、そのブランチ候補の終点がマルチキャスト終点の場合はマルチキャストを最終的に構成するブランチとしてブランチ記憶手段に格納し、
アルゴリズムの第2回目のルーチン以降は、直前のルーチンで前記ブランチ候補記憶手段から取り出した前記最短経路ブランチ候補の終点がマルチキャスト終点の場合は、当該最短経路ブランチ候補の始点を除いたすべてのノードから発するリンクを求め、そのすべてのリンクをブランチ候補として該ブランチ候補記憶手段に格納し、当該ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出し、そのブランチ候補の終点がマルチキャスト終点の場合はマルチキャストを最終的に構成するブランチとしてブランチ記憶手段に格納し、
また、アルゴリズムの第2回目のルーチン以降で、直前のルーチンで取り出した前記最短経路ブランチ候補の終点がマルチキャスト終点でない場合は、当該最短経路ブランチ候補の終点から発するすべてのリンクを求め、当該最短経路ブランチ候補の後に個々のリンクを加えた結果できるすべてのブランチを前記ブランチ候補記憶手段に格納し、当該ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出し、そのブランチ候補の終点がマルチキャスト終点の場合はマルチキャストを最終的に構成するブランチとしてブランチ記憶手段に格納する。
In order to solve the above problem, the present invention provides a multicast from a starting node to a plurality of nodes that are a subset of all other nodes on a network in which a plurality of nodes can be connected to each other via a communication link. A multicast route calculation method for calculating a route,
First, a multicast tree consisting only of multicast start nodes is defined, and the shortest route from the multicast tree that reaches one end node of the set of multicast end nodes that have not yet been determined is added to the multicast tree as a new branch. Using a multicast tree generation algorithm that repeats until all multicast tree branches are determined,
The first routine of the algorithm starts from the multicast start node, finds links originating from that node, stores all the links as branch candidates in the branch candidate storage means, and has the shortest path cost from the branch candidate storage means A route branch candidate is taken out, and if the end point of the branch candidate is a multicast end point, it is stored in the branch storage means as a branch that finally constitutes the multicast,
After the second routine of the algorithm, when the end point of the shortest path branch candidate extracted from the branch candidate storage means in the immediately preceding routine is a multicast end point, all the nodes except the start point of the shortest path branch candidate are used. When links to be issued are obtained, all the links are stored as branch candidates in the branch candidate storage means, the shortest path branch candidate with the lowest path cost is extracted from the branch candidate storage means, and the end point of the branch candidate is a multicast end point Is stored in the branch storage means as a branch that finally constitutes the multicast,
Further, after the second routine of the algorithm, if the end point of the shortest path branch candidate extracted in the immediately preceding routine is not the multicast end point, all links originating from the end point of the shortest path branch candidate are obtained, and the shortest path All branches resulting from adding individual links after branch candidates are stored in the branch candidate storage means, the shortest path branch candidate with the lowest path cost is extracted from the branch candidate storage means, and the end point of the branch candidate is multicast In the case of the end point, it is stored in the branch storage means as a branch that finally constitutes the multicast.

また、本発明は、前記ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出す手順において、
前記最短経路ブランチ候補の終点がマルチキャスト終点の場合は、当該ブランチ候補上の始点を除いたすべてのノードにマルチキャストツリーの構成要素になったという印("reached属性"=yes)を付与する。
Further, the present invention provides a procedure for extracting the shortest path branch candidate with the lowest path cost from the branch candidate storage means.
When the end point of the shortest path branch candidate is a multicast end point, a mark ("reached attribute" = yes) indicating that it is a constituent element of the multicast tree is assigned to all nodes except the start point on the branch candidate.

また、本発明は、前記ブランチ候補を前記ブランチ候補記憶手段に格納する手順において、
新規ブランチ候補の最終リンクとして選択されたリンクの終点ノードに前記印("reached属性"=yes)が付いている場合は、当該ブランチ候補を前記ブランチ候補記憶手段に格納しない。
Further, the present invention provides a procedure for storing the branch candidate in the branch candidate storage means,
If the end point of the link selected as the final link of the new branch candidate is marked ("reached attribute" = yes), the branch candidate is not stored in the branch candidate storage means.

また、本発明は、ネットワーク上の各ノードに、"当該ノードまでの最短ブランチ候補とそのコスト"を属性として保持させ、両者のアルゴリズム開始時の初期値はブランチ候補=空集合、経路コスト=∞とするが、アルゴリズム走行後は当該属性にアルゴリズムの開始からその時点までにアルゴリズムが扱った当該ノードを終点に持つブランチ候補の中で最もコストが小さいブランチ候補とその経路コストを保持する。   Further, the present invention allows each node on the network to hold “the shortest branch candidate to the node and its cost” as an attribute, and the initial value at the start of both algorithms is branch candidate = empty set, path cost = ∞ However, after running the algorithm, the branch candidate having the lowest cost among the branch candidates having the node handled by the algorithm as the end point from the start of the algorithm to the time point and the path cost are held in the attribute.

また、本発明は、前記ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出す手順において、
当該ブランチ候補の終点の"当該ノードまでのブランチ候補とそのコスト"属性からブランチ候補を取出し、ブランチ候補=空集合にする。
Further, the present invention provides a procedure for extracting the shortest path branch candidate with the lowest path cost from the branch candidate storage means.
A branch candidate is extracted from the “branch candidate up to the node and its cost” attribute at the end point of the branch candidate, and branch candidate = empty set.

また、本発明は、新規ブランチ候補の最終リンクとして選択されたリンクの終点ノードの上記"当該ノードまでのブランチ候補とそのコスト"属性にすでにブランチ候補が格納されている場合は、当該属性に格納されている経路コストと新規ブランチ候補の経路コストを比較して新規ブランチ候補の当該ノードまでの経路コストが既存ブランチ候補の経路コストより小さい場合にのみ、前記ブランチ候補記憶手段から当該既存ブランチ候補を取出し、新規ブランチ候補を前記ブランチ候補記憶手段に格納し、当該終点ノードの当該属性の既存ブランチ候補とその経路コストを新規ブランチ候補とその経路コストに置き換える。   In addition, according to the present invention, when a branch candidate is already stored in the “branch candidate up to the node and its cost” attribute of the end point node of the link selected as the final link of the new branch candidate, the branch candidate is stored in the attribute. Only when the path cost to the node of the new branch candidate is smaller than the path cost of the existing branch candidate by comparing the route cost with the path cost of the new branch candidate and the existing branch candidate from the branch candidate storage means The new branch candidate is taken out and stored in the branch candidate storage means, and the existing branch candidate having the attribute of the end node and its route cost are replaced with the new branch candidate and its route cost.

また、本発明は、新規ブランチ候補の最終リンクとして選択されたリンクの終点ノードの上記"当該ノードまでのブランチ候補とそのコスト"属性にブランチ候補が格納されていない場合は、当該属性に格納されている経路コストと新規ブランチ候補の経路コストを比較して、当該ノードまでの新規ブランチ候補の経路コストが当該属性内の経路コストより小さい場合は、新規ブランチ候補を前記ブランチ候補記憶手段に格納し、当該終点ノードの当該属性に新規ブランチ候補とその経路コストを格納する。   Further, according to the present invention, when a branch candidate is not stored in the “branch candidate up to the node and its cost” attribute of the end point node of the link selected as the final link of the new branch candidate, the attribute is stored in the attribute. If the path cost of the new branch candidate to the node is smaller than the path cost in the attribute, the new branch candidate is stored in the branch candidate storage means. The new branch candidate and its route cost are stored in the attribute of the end node.

本発明によれば、従来のMPHアルゴリズムで必要であったノード間の最短経路を求めるダイクストラアルゴリズムの走行を行う必要がなく、ネットワーク上のリンクをたどることにより、最終的にMPHアルゴリズムと同じマルチキャストツリーを作成することを可能としている。   According to the present invention, it is not necessary to run the Dijkstra algorithm for obtaining the shortest path between nodes, which is necessary in the conventional MPH algorithm, and finally the same multicast tree as the MPH algorithm is obtained by following the link on the network. It is possible to create.

そのため、本発明のアルゴリズム平均時間計算量は(log m)(l + n log n)になる。この時間計算量はMPHの平均時間計算量m(l + n log n)よりも明確に小さい。   Therefore, the algorithm average time calculation amount of the present invention is (log m) (l + n log n). This time complexity is clearly smaller than the average time complexity m (l + n log n) of MPH.

実際にランダムに配置した5,070のノード間に方向性リンク57,174本を設定し、リンクのコストは1-100間でランダムに平均41.95のコストで設定し、最もノード次数が高いノード(ノード次数:28)をマルチキャストの始点とし、ノード次数が1以上で次数が低いものから順に200-2,000の終点ノードを200間隔で設定し、その設定された終点ノードに対してMPHと本発明のアルゴリズムを使ってマルチキャストツリーを計算機(Linux(登録商標)マシン)により生成した場合の処理速度を図2に示す。図2より、MPHは終点数が多いとダイクストラアルゴリズムの走行回数が多くなり、Fibonacciヒープへのアクセス回数が大きくなるため、処理速度が落ちる。しかし、本発明のアルゴリズムはFibonacci ヒープへのアクセスが終点数mにかかわらずMPHに比べて大幅に少ないため、mが大きくなればなるほど処理時間がMPHに対して速くなる。   57,174 directional links are set between 5,070 nodes that are actually randomly placed, and the link cost is set randomly at an average cost of 41.95 between 1-100 and the node with the highest node order (node order: 28 ) Is set as the multicast start point, node order of node order is 1 or more and order is low, 200 to 2,000 end point nodes are set at 200 intervals, and MPH and the algorithm of the present invention are used for the set end point nodes. The processing speed when the multicast tree is generated by a computer (Linux (registered trademark) machine) is shown in FIG. As can be seen from FIG. 2, when the number of end points is large, the number of times the Dijkstra algorithm runs increases and the number of accesses to the Fibonacci heap increases. However, since the algorithm of the present invention has much less access to the Fibonacci heap than MPH regardless of the number of end points m, the larger m is, the faster the processing time is relative to MPH.

MPH(minimum-cost path heuristic)フローである。MPH (minimum-cost path heuristic) flow. 本発明のアルゴリズムの効果を示す図である。It is a figure which shows the effect of the algorithm of this invention. 本発明の一実施の形態におけるマルチキャスト経路計算装置の構成図である。It is a block diagram of the multicast route calculation apparatus in one embodiment of this invention. 本発明の一実施の形態におけるマルチキャスト経路計算装置の動作のフローチャートである。It is a flowchart of operation | movement of the multicast route calculation apparatus in one embodiment of this invention. 本発明の一実施の形態におけるアルゴリズム適用動作例(その1)である。It is an example 1 of algorithm application operation in an embodiment of the invention. 本発明の一実施の形態におけるアルゴリズム適用動作例(その2)である。It is an example 2 of algorithm application operation in one embodiment of the present invention. 本発明の一実施の形態におけるアルゴリズム適用動作例(その3)である。It is the example 3 of algorithm application operation | movement in one embodiment of this invention. 本発明の一実施の形態におけるアルゴリズム適用動作例(その4)である。It is an algorithm application operation example (the 4) in one embodiment of this invention. 本発明の一実施の形態におけるアルゴリズム適用動作例(その5)である。It is an example (5) of algorithm application operation | movement in one embodiment of this invention. 本発明の一実施の形態におけるアルゴリズム適用動作例(その6)である。It is an example (6) of algorithm application operation | movement in one embodiment of this invention.

以下、図面と共に本発明の実施の形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図3は、本発明の一実施の形態におけるマルチキャスト計算装置の構成を示す。   FIG. 3 shows the configuration of a multicast computing device according to an embodiment of the present invention.

同図に示す計算装置は、ネットワークトポロジ管理部100、ブランチ候補管理部(PQ)200、最小木作成部300から構成される。   The computing device shown in the figure includes a network topology management unit 100, a branch candidate management unit (PQ) 200, and a minimum tree creation unit 300.

ネットワークトポロジ管理部100は、ネットワークトポロジ管理処理部11、リンク情報記憶部21、ノード情報記憶部22から構成され、ブランチ候補管理部200は、ブランチ候補処理部12、ブランチ候補記憶部23から構成され、最小木作成部300は、最小木作成処理部13とブランチ記憶部24から構成される。   The network topology management unit 100 includes a network topology management processing unit 11, a link information storage unit 21, and a node information storage unit 22. The branch candidate management unit 200 includes a branch candidate processing unit 12 and a branch candidate storage unit 23. The minimum tree creation unit 300 includes a minimum tree creation processing unit 13 and a branch storage unit 24.

ネットワークトポロジ管理部100のネットワークトポロジ管理処理部11は、最小木作成処理部13との通信と、当該ネットワークトポロジ管理部100内のリンク情報記憶部21及びノード情報記憶部22へのアクセスを行う。   The network topology management processing unit 11 of the network topology management unit 100 communicates with the minimum tree creation processing unit 13 and accesses the link information storage unit 21 and the node information storage unit 22 in the network topology management unit 100.

ネットワークトポロジ管理部100のリンク情報記憶部21はネットワーク上の各方向性リンク毎にその方向毎のリンクコストを保持する。ノード情報記憶部22はネットワーク上の各ノード毎に情報を保持する。ノード情報記憶部22は、接続リンク情報を保持する。接続リンク情報は当該ノードに接続しているリンク情報である。またノード情報記憶部22は、後述するアルゴリズム中で利用する当該ノードまでの"最短ブランチ候補"と、その"最短ブランチ候補コスト"を格納する"当該ノードまでのブランチ候補とそのコスト"属性、また当該ノードがマルチキャストツリー構成ノードかどうかを判別する"reached属性"を保持する。   The link information storage unit 21 of the network topology management unit 100 holds a link cost for each direction for each directional link on the network. The node information storage unit 22 holds information for each node on the network. The node information storage unit 22 holds connection link information. The connection link information is link information connected to the node. The node information storage unit 22 stores a “shortest branch candidate” up to the node used in an algorithm to be described later and a “shortest branch candidate cost up to the node” attribute that stores the “shortest branch candidate cost” attribute, It retains a “reached attribute” that determines whether the node is a multicast tree constituent node.

最小木作成部300は、最小木作成処理部13で、図4に後述するアルゴリズムを実行する。最小木作成処理部13は、図4のステップ102ではネットワークトポロジ管理処理部100を通して、ノード情報記憶部22から集合Vに属する各ノードの接続リンクを取得し、当該リンクの終点ノードの"reached属性"= no、且つ"最短ブランチ候補コスト"よりも経路コストが小さいブランチをブランチ候補としてブランチ候補記憶部23に格納する。ブランチ記憶部24は図4の集合Rに相当し、ステップ103で選択されたブランチ候補記憶部(PQ)23内の最小ブランチで終点が集合Eに属するブランチが格納される。   The minimum tree creation unit 300 is the minimum tree creation processing unit 13 and executes an algorithm described later with reference to FIG. In step 102 of FIG. 4, the minimum tree creation processing unit 13 acquires the connection link of each node belonging to the set V from the node information storage unit 22 through the network topology management processing unit 100, and the “reached attribute” of the end node of the link A branch whose path cost is lower than “= no and“ shortest branch candidate cost ”is stored in the branch candidate storage unit 23 as a branch candidate. The branch storage unit 24 corresponds to the set R in FIG. 4 and stores the branch whose end point belongs to the set E and is the minimum branch in the branch candidate storage unit (PQ) 23 selected in step 103.

ブランチ候補管理部(PQ)200は、ブランチ候補処理部12が最小木作成処理部13からの要望に応じて、ブランチ候補記憶部(PQ)23へのブランチ候補の格納、削除、及び最短ブランチ候補の取得を行う。ブランチ候補記憶部(PQ)23にはFibonacciヒープ等の構造が用いられ、ブランチ候補がその経路コストに応じてソーティングされ、ブランチ候補へのアクセス速度を速めることができる。このブランチ候補記憶部(PQ)23 への新ブランチ候補登録は図4のステップ102であり、入れ替えられた古いブランチ候補はブランチ候補記憶部PQ23から削除される。またステップ103で取得されるブランチ候補記憶部PQの最短ブランチ候補はブランチ候補記憶部(PQ)23内で最小の経路コストを持つブランチ候補である。   The branch candidate management unit (PQ) 200 stores, deletes branch candidates from the branch candidate storage unit (PQ) 23 and deletes the shortest branch candidate in response to a request from the minimum tree creation processing unit 13 by the branch candidate processing unit 12. Get the. The branch candidate storage unit (PQ) 23 uses a structure such as a Fibonacci heap, and the branch candidates are sorted according to their path costs, and the access speed to the branch candidates can be increased. The new branch candidate registration in the branch candidate storage unit (PQ) 23 is step 102 in FIG. 4, and the replaced old branch candidate is deleted from the branch candidate storage unit PQ23. The shortest branch candidate in the branch candidate storage unit PQ acquired in step 103 is a branch candidate having the minimum path cost in the branch candidate storage unit (PQ) 23.

以下に、上記の構成における動作を説明する。   The operation in the above configuration will be described below.

図4は、本発明の一実施の形態におけるマルチキャスト経路計算方法のフローチャートである。   FIG. 4 is a flowchart of a multicast route calculation method according to an embodiment of the present invention.

ステップ101) アルゴリズムの初期条件として、メモリ(図示せず)上の集合Eはマルチキャストのすべての終点ノードを保持する。メモリ(図示せず)上の集合Vはステップ102で選択されるリンクの始点ノード集合が格納され、アルゴリズムの最初はマルチキャスト始点ノードだけが格納される。   Step 101) As an initial condition of the algorithm, a set E on a memory (not shown) holds all end nodes of multicast. The set V on the memory (not shown) stores the start node set of the link selected in step 102, and only the multicast start node is stored at the beginning of the algorithm.

ブランチ候補記憶部23の集合PQはブランチ候補を格納する集合であり、空集合(φ)で設定される。   The set PQ in the branch candidate storage unit 23 is a set for storing branch candidates, and is set as an empty set (φ).

ブランチ記憶部24の集合Rは最終的なツリーを構成するブランチの集合であり、最初は空集合(φ)で設定される。   The set R of the branch storage unit 24 is a set of branches constituting the final tree, and is initially set as an empty set (φ).

マルチキャストツリーを作成するネットワークの各ノードは本発明アルゴリズムのための属性を保持するが、"reached属性"は当該ノードがマルチキャストツリーの構成要素になったかを示す属性であり、yes/noの値をとる(請求項2に対応)。アルゴリズムの最初では始点ノードのみがマルチキャストツリーに含まれるので、yesに設定されるが、他ノードはすべてnoに設定される。   Each node of the network that creates the multicast tree holds an attribute for the algorithm of the present invention. The “reached attribute” is an attribute indicating whether the node has become a component of the multicast tree, and the value of yes / no is set. (Corresponding to claim 2). At the beginning of the algorithm, only the source node is included in the multicast tree, so it is set to yes, but all other nodes are set to no.

ノード情報記憶部22の"当該ノードまでの最短ブランチ候補とそのコスト"はアルゴリズム開始時の初期値は"最短ブランチ候補"=空集合、"最短ブランチ候補コスト"=∞と設定される。   The initial value at the start of the algorithm for “the shortest branch candidate to the node and its cost” in the node information storage unit 22 is set as “shortest branch candidate” = empty set and “shortest branch candidate cost” = ∞.

ステップ102) ブランチ候補処理部12は、集合V内の各ノードから発するリンクを選択し、当該リンクからブランチ候補を作成する。その際、直前のステップ104でブランチ終点が集合Eに属するマルチキャスト終点の場合 (ステップ104= yes) は当該リンクがそのままブランチ候補になるが、マルチキャスト終点でない場合(ステップ104 = no)は当該リンクを直前のステップ103で選択された最短ブランチ候補の後に繋げた経路がブランチ候補になる(請求項1に対応)。アルゴリズムの第1回目のルーチンでは、リンクがそのまま新規ブランチ候補になる。この新規ブランチ候補作成処理はV内のノードから発するすべてのリンクについて行われるが、ブランチ候補は"reached属性"=noのノード毎に最大1つ存在する。つまり、新規ブランチ候補の終点ノードが保持する"当該ノードまでの最短ブランチ候補"が空集合ではなく、既存の候補リストである"最短ブランチ候補コスト"より新規ブランチの経路コストが小さい場合のみ、候補の入れ替えがおきる。また、候補の入れ替えが生じた場合は、新規ブランチ候補の終点ノードの"当該ノードまでの最短ブランチ候補"に新規ブランチ候補が格納され、"最短ブランチ候補コスト"に新規ブランチ候補の経路コストが格納される。リンクの終点ノードの"reached属性"がyesの場合(請求項2に対応)は、そのノードはすでにマルチキャストツリーに含まれるということなので、ブランチ候補とならない(請求項3に対応)。"reached属性"がnoの場合で終点ノード属性の"最短ブランチ候補コスト"に格納されている経路コストが新規ブランチ候補の経路コストより大きい場合は新規ブランチ候補がブランチ候補記憶部(PQ)23に登録される。もし、"最短ブランチ候補"が空集合の場合、ブランチ候補記憶部(PQ)23から削除されるブランチ候補はないが(請求項7に対応)、"最短ブランチ候補"が存在する場合は、そのブランチ候補がブランチ候補記憶部(PQ)23から削除される(請求項6に対応)。また、"最短ブランチ候補"と"最短ブランチ候補コスト"の値は新規ブランチ候補とその経路コストの値に置き換えられる(請求項6,7に対応)。"最短ブランチ候補コスト"に格納されている経路コストが新規ブランチ候補の経路コスト以下の場合は新規ブランチ候補はブランチ候補記憶部(PQ)23に格納されず、ブランチ候補記憶部(PQ)23から削除されるブランチ候補も存在しない。また当該ノードの"最短ブランチ候補"と"最短ブランチ候補コスト"の値に変化はない。   Step 102) The branch candidate processing unit 12 selects a link originating from each node in the set V, and creates a branch candidate from the link. At that time, if the branch end point is the multicast end point belonging to the set E in the previous step 104 (step 104 = yes), the link becomes a branch candidate as it is, but if it is not the multicast end point (step 104 = no), the link is changed. A route connected after the shortest branch candidate selected in the immediately preceding step 103 becomes a branch candidate (corresponding to claim 1). In the first routine of the algorithm, the link becomes a new branch candidate as it is. This new branch candidate creation process is performed for all links originating from the nodes in V, but there is at most one branch candidate for each node with “reached attribute” = no. In other words, the candidate only when the “shortest branch candidate to the node” held by the end point node of the new branch candidate is not an empty set and the path cost of the new branch is smaller than the “shortest branch candidate cost” that is the existing candidate list. Replacement occurs. In addition, when candidate replacement occurs, the new branch candidate is stored in “shortest branch candidate to the node” of the end point node of the new branch candidate, and the path cost of the new branch candidate is stored in “shortest branch candidate cost”. Is done. If the “reached attribute” of the link end node is yes (corresponding to claim 2), it means that the node is already included in the multicast tree, so it is not a branch candidate (corresponding to claim 3). When the “reached attribute” is “no” and the path cost stored in the “shortest branch candidate cost” of the end node attribute is larger than the path cost of the new branch candidate, the new branch candidate is stored in the branch candidate storage unit (PQ) 23. be registered. If the “shortest branch candidate” is an empty set, there is no branch candidate to be deleted from the branch candidate storage unit (PQ) 23 (corresponding to claim 7), but if the “shortest branch candidate” exists, The branch candidate is deleted from the branch candidate storage unit (PQ) 23 (corresponding to claim 6). Further, the values of “shortest branch candidate” and “shortest branch candidate cost” are replaced with new branch candidates and their path cost values (corresponding to claims 6 and 7). When the path cost stored in the “shortest branch candidate cost” is equal to or less than the path cost of the new branch candidate, the new branch candidate is not stored in the branch candidate storage unit (PQ) 23, but from the branch candidate storage unit (PQ) 23. There are no branch candidates to be deleted. Further, there is no change in the values of “shortest branch candidate” and “shortest branch candidate cost” of the node.

ステップ103) ブランチ候補記憶部(PQ)23内の最短ブランチ候補を取り出す。この際に、当該最短ブランチ候補の終点ノードの属性中の"当該ノードまでの最短ブランチ候補"を空集合に設定する。また、集合V内ノードを空集合にした後、当該最短ブランチ候補の終点ノードをVに格納する。   Step 103) The shortest branch candidate in the branch candidate storage unit (PQ) 23 is extracted. At this time, the “shortest branch candidate to the node” in the attribute of the end point node of the shortest branch candidate is set to an empty set. Further, after the nodes in the set V are made empty, the end point node of the shortest branch candidate is stored in V.

ステップ104) ステップ104で選択した最短ブランチ候補の終点ノードが集合E内のマルチキャスト終点ノードとして存在するかどうかを判断し、Yesの場合はステップ105へ進み、Noの場合はステップ102へ進む。   Step 104) It is determined whether or not the end node of the shortest branch candidate selected in Step 104 exists as a multicast end node in the set E. If Yes, the process proceeds to Step 105, and if No, the process proceeds to Step 102.

ステップ105) ステップ103で選択された最短ブランチ候補を新ブランチとしてブランチ記憶部24の集合Rに格納するとともに、当該最短ブランチ候補の終点ノードを集合Eから削除する。   Step 105) The shortest branch candidate selected in Step 103 is stored in the set R of the branch storage unit 24 as a new branch, and the end point node of the shortest branch candidate is deleted from the set E.

ステップ106) 集合Eが空集合かどうかを判断し、空集合であればすべてのマルチキャスト終点までのブランチが得られたことと同値であるため、アルゴリズムの終了となる。空集合でない場合は、ステップ107へ進む。   Step 106) It is determined whether or not the set E is an empty set. If it is an empty set, it is equivalent to that all branches up to the multicast end point have been obtained, so the algorithm ends. If it is not an empty set, go to Step 107.

ステップ107) 現在新ブランチの終点ノードが格納されている集合V内のノード集合を新ブランチの始点を除くすべてのノード集合に置き換える(請求項1に対応)。また、集合V内のすべてのノードの"reached属性"をyesに設定する。   Step 107) Replace the node set in the set V where the end node of the new branch is currently stored with all the node sets except the start point of the new branch (corresponding to claim 1). In addition, the “reached attribute” of all the nodes in the set V is set to yes.

以下、図5〜図10に上記のアルゴリズム適用動作例を、小規模ネットワークを用いて示す。これらの図において、左上のPQは、ブランチ候補記憶部23にブランチ候補が格納される様子を示す。また、これらの図において、ノードAはマルチキャスト始点ノード、ノードB−Dはマルチキャスト終点ノード、ノードE,Fはその他のノードを示す。   5 to 10 show examples of the above algorithm application operation using a small-scale network. In these figures, the PQ in the upper left indicates how branch candidates are stored in the branch candidate storage unit 23. In these figures, node A is a multicast start node, nodes B-D are multicast end nodes, and nodes E and F are other nodes.

図5において、各ノードでは、アルゴリズムの最初は"reached属性"=no,"最短ブランチ候補"= φ、"最短ブランチ候補コスト"=∞に設定されている。   In FIG. 5, at each node, “reached attribute” = no, “shortest branch candidate” = φ, and “shortest branch candidate cost” = ∞ are set at the beginning of the algorithm.

図6において、アルゴリズムの第1回目のルーチンのステップ102ではノードAからのリンクが最短ブランチ候補としてブランチ候補記憶部(PQ)23に登録される。また各ブランチ候補の終点ノードの"最短ブランチ候補"、"最短ブランチ候補コスト"も、当該ブランチ候補の値に更新される。第1回目のルーチンのステップ103では、ブランチ候補記憶部(PQ)23中の最短ブランチ候補であるノードA−E(コスト=1)が選択され、ブランチ候補記憶部(PQ)23から取り出される。ノードEは終点ノードではないので、ノードEの"reached属性"はnoのままである。   In FIG. 6, in step 102 of the first routine of the algorithm, the link from the node A is registered in the branch candidate storage unit (PQ) 23 as the shortest branch candidate. Further, the “shortest branch candidate” and “shortest branch candidate cost” of the end point node of each branch candidate are also updated to the value of the branch candidate. In step 103 of the first routine, the node A-E (cost = 1) which is the shortest branch candidate in the branch candidate storage unit (PQ) 23 is selected and taken out from the branch candidate storage unit (PQ) 23. Since node E is not an end point node, the “reached attribute” of node E remains no.

図7において、アルゴリズムの第2回目のルーチンの処理を示すが、ステップ102ではノードEから出ているリンクであるL5,L7をL1に加えて新規ブランチ候補としてノードB,Dまでの既存のブランチ候補とのコスト比較を行う。その際、ブランチ候補A−E−B(コスト=3)は既存のA−B(コスト=4)よりもコストが小さいため、ブランチ候補記憶部(PQ)23内のブランチ候補の入れ替えが起きると共に、ノードBの"最短ブランチ候補"、"最短ブランチ候補コスト"を新規ブランチ候補の値に入れ替える。A−E−D(コスト=4)はA−D(コスト=3)よりもコストが大きいのでブランチ候補の入れ替えはおきない。ステップ103ではブランチ候補記憶部(PQ)23内の最短ブランチ候補であるA−F(コスト=2)が選択され、ブランチ候補記憶部(PQ)23から取り出される。   FIG. 7 shows the processing of the second routine of the algorithm. In step 102, the existing branches up to nodes B and D as new branch candidates by adding L5 and L7 which are links from node E to L1. Compare costs with candidates. At that time, since the branch candidate A-E-B (cost = 3) is less expensive than the existing AB (cost = 4), the branch candidates in the branch candidate storage unit (PQ) 23 are replaced. The “shortest branch candidate” and “shortest branch candidate cost” of the node B are replaced with the values of the new branch candidates. Since A-E-D (cost = 4) has a higher cost than A-D (cost = 3), the branch candidates are not replaced. In step 103, A-F (cost = 2) which is the shortest branch candidate in the branch candidate storage unit (PQ) 23 is selected and taken out from the branch candidate storage unit (PQ) 23.

図8において、アルゴリズムの第4回目のルーチンの処理を示すが、ステップ102ではリンクL3にノードFから出ているリンクであるL6を加え、ブランチ候補記憶部(PQ)23にブランチ候補A−F−Cを加える。ステップ103ではブランチ候補記憶部(PQ)23内の最短ブランチ候補をブランチ候補記憶部(PQ)23から取り出すが、ノードBがマルチキャスト終点のため、ステップ105でノードA−E−Bを集合Rに加える。第4回目のルーチンのステップ107では、集合V内のノード集合にノードA−E−Bの始点を除いたノードであるE,Bが入れられるとともに、E,Bの"reached属性"がyesに設定される。reached属性をyesに設定することにより、E,Bを終点とする新規ブランチ候補は作られなくなる。   FIG. 8 shows the processing of the fourth routine of the algorithm. In step 102, L6, which is a link from the node F, is added to the link L3, and the branch candidate AF is added to the branch candidate storage unit (PQ) 23. Add -C. In step 103, the shortest branch candidate in the branch candidate storage unit (PQ) 23 is extracted from the branch candidate storage unit (PQ) 23. However, since node B is a multicast end point, node A-EB is set to set R in step 105. Add. In step 107 of the fourth routine, nodes E and B excluding the start point of nodes A-E-B are entered in the node set in set V, and the “reached attribute” of E and B is set to yes. Is set. By setting the reached attribute to yes, new branch candidates whose end points are E and B cannot be created.

図9では、アルゴリズムの第5から第6回目のルーチンのステップ102までの処理を示すが、第5回目のルーチンのステップ102ではノードEとBから出ているリンクを新規ブランチ候補としてブランチ候補記憶部(PQ)23への登録を試みる。ノードBから出ているリンクはないので登録されない。ノードE−BはすでにノードEの"reached属性"がyesになっているため登録されない。ノードE−Dはコストが3であるが、ノードDが持つ最短ブランチ候補A−Dのコストも3であるため、登録されない。ステップ103ではブランチ候補記憶部(PQ)23内の最小のブランチ候補A−Dが選択され取り出され、ノードDはマルチキャスト終点のためA−Dがブランチ記憶部24の集合Rに格納される。第5回目のルーチンのステップ107で終点Dが集合Vに格納され、第6回目のルーチンのステップ102でノードDから出ているリンクL8(D-C)が新規ブランチ候補となる。このブランチ候補D−Cのコスト(コスト=2)はCまでの既存のブランチ候補A−F−Cのコスト6よりも小さいため、ブランチ候補記憶部(PQ)23内のブランチ候補の入れ替えが起き、ブランチ候補D−Cがブランチ候補記憶部(PQ)23に入る。   FIG. 9 shows the processing from the fifth to the sixth routine step 102 of the algorithm. In the fifth routine step 102, the branch candidates are stored as the branch candidate from the links E and B as new branch candidates. Attempt to register to the Department (PQ) 23. Since there is no link coming out from node B, it is not registered. Node E-B is not registered because the “reached attribute” of node E is already set to yes. The node ED has a cost of 3, but is not registered because the cost of the shortest branch candidate AD that the node D has is also 3. In step 103, the smallest branch candidate A-D in the branch candidate storage unit (PQ) 23 is selected and extracted. Since node D is a multicast end point, A-D is stored in the set R of the branch storage unit 24. In step 107 of the fifth routine, the end point D is stored in the set V, and in step 102 of the sixth routine, the link L8 (D-C) from the node D becomes a new branch candidate. Since the cost (cost = 2) of this branch candidate DC is smaller than the cost 6 of the existing branch candidates A-F-C up to C, the replacement of the branch candidates in the branch candidate storage unit (PQ) 23 occurs. The branch candidate DC enters the branch candidate storage unit (PQ) 23.

図10は、第6回目のルーチンのステップ105が終わったときの状態を示す。ブランチ候補記憶部(PQ)23内にはノードD−Cのみが第6回目のルーチンのステップ103時には存在するので、ブランチ候補記憶部(PQ)23からブランチ候補D−Cが取り出されるが、ノードCが終点のため、ブランチ候補D−Cがブランチ記憶部24の集合Rに格納される。第6回目のルーチンのステップ106でノードEが空集合になるのでアルゴリズムの終了となる。   FIG. 10 shows a state when step 105 of the sixth routine is completed. Since only the node DC exists in the branch candidate storage unit (PQ) 23 at the time of step 103 of the sixth routine, the branch candidate DC is extracted from the branch candidate storage unit (PQ) 23. Since C is the end point, the branch candidate DC is stored in the set R of the branch storage unit 24. Since node E becomes an empty set in step 106 of the sixth routine, the algorithm ends.

上記のように、本発明の図4に示すアルゴリズムによる処理により、ダイクストラアルゴリズムの走行を終点数だけ繰り返すMPHに比べてPQのFibonacciヒープに対するアクセス数が大幅に減少するため、計算量が少なくなり処理速度の大幅な向上が得られる。   As described above, the processing by the algorithm shown in FIG. 4 of the present invention significantly reduces the number of accesses to the PQ's Fibonacci heap compared to MPH that repeats the Dijkstra algorithm for the number of end points. A significant improvement in speed is obtained.

上記の実施の形態における図4のアルゴリズムをプログラムとして構築し、コンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。   The algorithm shown in FIG. 4 in the above embodiment can be constructed as a program, installed in a computer and executed, or distributed via a network.

本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。   The present invention is not limited to the above-described embodiments, and various modifications and applications can be made within the scope of the claims.

11 ネットワークトポロジ管理処理部
12 ブランチ候補処理部
13 最小気作成処理部
21 リンク情報記憶部
22 ノード情報記憶部
23 ブランチ候補記憶部
24 ブランチ記憶部
100 ネットワークトポロジ管理部
200 ブランチ候補管理部
300 最小木作成部
DESCRIPTION OF SYMBOLS 11 Network topology management processing part 12 Branch candidate processing part 13 Minimum energy creation processing part 21 Link information storage part 22 Node information storage part 23 Branch candidate storage part 24 Branch storage part 100 Network topology management part 200 Branch candidate management part 300 Minimum tree creation Part

Claims (8)

複数ノードを通信リンクを介して相互に接続可能としたネットワーク上で、ある始点ノードから他のすべてのノード内の部分集合である複数ノードまでのマルチキャスト経路を計算するためのマルチキャスト経路計算方法であって、
最初はマルチキャスト始点ノードのみからなるマルチキャストツリーを定義し、当該マルチキャストツリーから、まだ経路が決まっていないマルチキャスト終点ノード集合の1終点ノードにたどり着く最短経路を新ブランチとしてマルチキャストツリーに加え、この処理を最終的にすべてのマルチキャストツリーブランチが決まるまで繰り返すマルチキャストツリー生成アルゴリズムにおいて、
アルゴリズムの第1回目のルーチンはマルチキャスト始点ノードから始まり、そのノードから発するリンクを求め、そのすべてのリンクをブランチ候補としてブランチ候補記憶手段に格納し、当該ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出し、そのブランチ候補の終点がマルチキャスト終点の場合はマルチキャストを最終的に構成するブランチとしてブランチ記憶手段に格納し、
アルゴリズムの第2回目のルーチン以降は、直前のルーチンで前記ブランチ候補記憶手段から取り出した前記最短経路ブランチ候補の終点がマルチキャスト終点の場合は、当該最短経路ブランチ候補の始点を除いたすべてのノードから発するリンクを求め、そのすべてのリンクをブランチ候補として該ブランチ候補記憶手段に格納し、当該ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出し、そのブランチ候補の終点がマルチキャスト終点の場合はマルチキャストを最終的に構成するブランチとしてブランチ記憶手段に格納し、
また、アルゴリズムの第2回目のルーチン以降で、直前のルーチンで取り出した前記最短経路ブランチ候補の終点がマルチキャスト終点でない場合は、当該最短経路ブランチ候補の終点から発するすべてのリンクを求め、当該最短経路ブランチ候補の後に個々のリンクを加えた結果できるすべてのブランチを前記ブランチ候補記憶手段に格納し、当該ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出し、そのブランチ候補の終点がマルチキャスト終点の場合はマルチキャストを最終的に構成するブランチとしてブランチ記憶手段に格納する
ことを特徴とするマルチキャスト経路計算方法。
A multicast route calculation method for calculating a multicast route from a starting node to a plurality of nodes that are a subset of all other nodes on a network in which multiple nodes can be connected to each other via a communication link. And
First, a multicast tree consisting only of multicast start nodes is defined, and the shortest route from the multicast tree that reaches one end node of the set of multicast end nodes that have not yet been determined is added to the multicast tree as a new branch. In the multicast tree generation algorithm that repeats until all multicast tree branches are determined,
The first routine of the algorithm starts from the multicast start node, finds links originating from that node, stores all the links as branch candidates in the branch candidate storage means, and has the shortest path cost from the branch candidate storage means A route branch candidate is taken out, and if the end point of the branch candidate is a multicast end point, it is stored in the branch storage means as a branch that finally constitutes the multicast,
After the second routine of the algorithm, when the end point of the shortest path branch candidate extracted from the branch candidate storage means in the immediately preceding routine is a multicast end point, all the nodes except the start point of the shortest path branch candidate are used. When links to be issued are obtained, all the links are stored as branch candidates in the branch candidate storage means, the shortest path branch candidate with the lowest path cost is extracted from the branch candidate storage means, and the end point of the branch candidate is a multicast end point Is stored in the branch storage means as a branch that finally constitutes the multicast,
Further, after the second routine of the algorithm, if the end point of the shortest path branch candidate extracted in the immediately preceding routine is not the multicast end point, all links originating from the end point of the shortest path branch candidate are obtained, and the shortest path All branches resulting from adding individual links after branch candidates are stored in the branch candidate storage means, the shortest path branch candidate with the lowest path cost is extracted from the branch candidate storage means, and the end point of the branch candidate is multicast A multicast route calculation method characterized in that in the case of an end point, the branch is stored in the branch storage means as a branch that finally constitutes the multicast.
前記ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出す手順において、
前記最短経路ブランチ候補の終点がマルチキャスト終点の場合は、当該ブランチ候補上の始点を除いたすべてのノードにマルチキャストツリーの構成要素になったという印("reached属性"=yes)を付与する
請求項1記載のマルチキャスト経路計算方法。
In the procedure for extracting the shortest path branch candidate with the lowest path cost from the branch candidate storage means,
When the end point of the shortest path branch candidate is a multicast end point, a mark ("reached attribute" = yes) is given to all nodes other than the start point on the branch candidate that are constituent elements of the multicast tree. 2. The multicast route calculation method according to 1.
前記ブランチ候補を前記ブランチ候補記憶手段に格納する手順において、
新規ブランチ候補の最終リンクとして選択されたリンクの終点ノードに前記印("reached属性"=yes)が付いている場合は、当該ブランチ候補を前記ブランチ候補記憶手段に格納しない
請求項2記載のマルチキャスト経路計算方法。
In the procedure of storing the branch candidates in the branch candidate storage means,
The multicast according to claim 2, wherein when the end point node of the link selected as the final link of the new branch candidate is marked with the mark ("reached attribute" = yes), the branch candidate is not stored in the branch candidate storage means. Route calculation method.
ネットワーク上の各ノードに、"当該ノードまでの最短ブランチ候補とそのコスト"を属性として保持させ、両者のアルゴリズム開始時の初期値はブランチ候補=空集合、経路コスト=∞とするが、アルゴリズム走行後は当該属性にアルゴリズムの開始からその時点までにアルゴリズムが扱った当該ノードを終点に持つブランチ候補の中で最もコストが小さいブランチ候補とその経路コストを保持する
請求項1記載のマルチキャスト経路計算方法。
Each node on the network holds the “shortest branch candidate to the node and its cost” as an attribute, and the initial value at the start of both algorithms is branch candidate = empty set, route cost = ∞, but the algorithm runs The multicast route calculation method according to claim 1, wherein the branch candidate having the lowest cost among the branch candidates having the end point of the node handled by the algorithm from the start of the algorithm to the time point and the route cost are held in the attribute. .
前記ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出す手順において、
当該ブランチ候補の終点の"当該ノードまでのブランチ候補とそのコスト"属性からブランチ候補を取出し、ブランチ候補=空集合にする
請求項4記載のマルチキャスト経路計算方法。
In the procedure for extracting the shortest path branch candidate with the lowest path cost from the branch candidate storage means,
5. The multicast route calculation method according to claim 4, wherein a branch candidate is taken out from the “branch candidate up to the node and its cost” attribute at the end point of the branch candidate, and branch candidate = empty set.
新規ブランチ候補の最終リンクとして選択されたリンクの終点ノードの上記"当該ノードまでのブランチ候補とそのコスト"属性にすでにブランチ候補が格納されている場合は、当該属性に格納されている経路コストと新規ブランチ候補の経路コストを比較して新規ブランチ候補の当該ノードまでの経路コストが既存ブランチ候補の経路コストより小さい場合にのみ、前記ブランチ候補記憶手段から当該既存ブランチ候補を取出し、新規ブランチ候補を前記ブランチ候補記憶手段に格納し、当該終点ノードの当該属性の既存ブランチ候補とその経路コストを新規ブランチとその経路コストに置き換える
請求項5記載のマルチキャスト経路計算方法。
If a branch candidate has already been stored in the “branch candidate up to the node and its cost” attribute of the end point node of the link selected as the final link of the new branch candidate, the path cost stored in the attribute Only when the path cost of the new branch candidate to the node of the new branch candidate is smaller than the path cost of the existing branch candidate, the existing branch candidate is taken out from the branch candidate storage means, and the new branch candidate is selected. 6. The multicast route calculation method according to claim 5, wherein the multicast route calculation method is stored in the branch candidate storage means and replaces the existing branch candidate having the attribute of the end node and the route cost with the new branch and the route cost.
新規ブランチ候補の最終リンクとして選択されたリンクの終点ノードの上記"当該ノードまでのブランチ候補とそのコスト"属性にブランチ候補が格納されていない場合は、当該属性に格納されている経路コストと新規ブランチ候補の経路コストを比較して、当該ノードまでの新規ブランチ候補の経路コストが当該属性内の経路コストより小さい場合は、新規ブランチ候補を前記ブランチ候補記憶手段に格納し、当該終点ノードの当該属性に新規ブランチとその経路コストを格納する
請求項6記載のマルチキャスト経路計算方法。
If no branch candidate is stored in the "branch candidate up to the node and its cost" attribute of the end point node of the link selected as the final link of the new branch candidate, the route cost stored in the attribute and the new When the path cost of the branch candidate is compared and the path cost of the new branch candidate up to the node is smaller than the path cost in the attribute, the new branch candidate is stored in the branch candidate storage unit, and the The multicast route calculation method according to claim 6, wherein the new branch and its route cost are stored in the attribute.
複数ノードを通信リンクを介して相互に接続可能としたネットワーク上で、ある始点ノードから他のすべてのノード内の部分集合である複数ノードまでのマルチキャスト経路を計算するためのマルチキャスト経路計算装置であって、
ブランチ候補を格納するブランチ候補記憶手段と、
ブランチを格納するブランチ記憶手段と、
最初はマルチキャスト始点ノードのみからなるマルチキャストツリーを定義し、当該マルチキャストツリーから、まだ経路が決まっていないマルチキャスト終点ノード集合の1終点ノードにたどり着く最短経路を新ブランチとしてマルチキャストツリーに加え、この処理を最終的にすべてのマルチキャストツリーブランチが決まるまで繰り返すマルチキャストツリー生成手段と、
を有し、
前記マルチキャストツリー生成手段は、
第1回目の処理として、マルチキャスト始点ノードから始まり、そのノードから発するリンクを求め、そのすべてのリンクをブランチ候補として前記ブランチ候補記憶手段に格納し、当該ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出し、そのブランチ候補の終点がマルチキャスト終点の場合はマルチキャストを最終的に構成するブランチとして前記ブランチ記憶手段に格納する手段と、
第2回目以降の処理として、直前のルーチンで前記ブランチ候補記憶手段から取り出した前記最短経路ブランチ候補の終点がマルチキャスト終点の場合は、当該最短経路ブランチ候補の始点を除いたすべてのノードから発するリンクを求め、そのすべてのリンクをブランチ候補として該ブランチ候補記憶手段に格納し、当該ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出し、そのブランチ候補の終点がマルチキャスト終点の場合はマルチキャストを最終的に構成するブランチとしてブランチ記憶手段に格納する手段と、
2回目以降の処理として、直前のルーチンで取り出した前記最短経路ブランチ候補の終点がマルチキャスト終点でない場合は、当該最短経路ブランチ候補の終点から発するすべてのリンクを求め、当該最短経路ブランチ候補の後に個々のリンクを加えた結果できるすべてのブランチを前記ブランチ候補記憶手段に格納し、当該ブランチ候補記憶手段から最も経路コストが小さい最短経路ブランチ候補を取り出し、そのブランチ候補の終点がマルチキャスト終点の場合はマルチキャストを最終的に構成するブランチとしてブランチ記憶手段に格納する手段と、
を有することを特徴とするマルチキャスト経路計算装置。
A multicast route calculation device for calculating a multicast route from a starting node to a plurality of nodes that are a subset of all other nodes on a network in which multiple nodes can be connected to each other via a communication link. And
Branch candidate storage means for storing branch candidates;
Branch storage means for storing branches;
First, a multicast tree consisting only of multicast start nodes is defined, and the shortest route from the multicast tree that reaches one end node of the set of multicast end nodes that have not yet been determined is added to the multicast tree as a new branch. Multicast tree generation means that repeats until all multicast tree branches are determined,
Have
The multicast tree generation means includes:
As a first process, links starting from a multicast start node, links originating from the node are obtained, all the links are stored as branch candidates in the branch candidate storage unit, and the shortest path cost is the lowest from the branch candidate storage unit Means for taking out a path branch candidate and storing it in the branch storage means as a branch that finally constitutes multicast when the end point of the branch candidate is a multicast end point;
As the second and subsequent processing, when the end point of the shortest path branch candidate taken out from the branch candidate storage means in the immediately preceding routine is a multicast end point, the link originates from all nodes except the start point of the shortest path branch candidate All the links are stored as branch candidates in the branch candidate storage means, the shortest path branch candidate with the lowest path cost is extracted from the branch candidate storage means, and if the end point of the branch candidate is a multicast end point, multicast is performed. Means for storing in the branch storage means as a branch that finally constitutes,
As the second and subsequent processing, when the end point of the shortest path branch candidate taken out in the immediately preceding routine is not a multicast end point, all links originating from the end point of the shortest path branch candidate are obtained, All branches that can be obtained as a result of adding the link are stored in the branch candidate storage means, the shortest path branch candidate with the lowest path cost is extracted from the branch candidate storage means, and if the end point of the branch candidate is a multicast end point, multicast is performed. Means for storing in the branch storage means as a branch that finally constitutes,
A multicast route calculation apparatus comprising:
JP2012085942A 2012-04-04 2012-04-04 Multicast route calculation method and apparatus Expired - Fee Related JP5756049B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012085942A JP5756049B2 (en) 2012-04-04 2012-04-04 Multicast route calculation method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012085942A JP5756049B2 (en) 2012-04-04 2012-04-04 Multicast route calculation method and apparatus

Publications (2)

Publication Number Publication Date
JP2013219436A JP2013219436A (en) 2013-10-24
JP5756049B2 true JP5756049B2 (en) 2015-07-29

Family

ID=49591114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012085942A Expired - Fee Related JP5756049B2 (en) 2012-04-04 2012-04-04 Multicast route calculation method and apparatus

Country Status (1)

Country Link
JP (1) JP5756049B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6236375B2 (en) * 2014-11-13 2017-11-22 日本電信電話株式会社 Multicast route search apparatus and method
CN111429438B (en) * 2020-03-30 2023-10-13 中国科学院深圳先进技术研究院 Method, apparatus and storage medium for extracting blood vessel center line and heart coronary tree
CN112787688A (en) * 2020-12-31 2021-05-11 广东电网有限责任公司电力调度控制中心 Multicast tree node communication method and device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3639539B2 (en) * 2001-02-28 2005-04-20 日本電信電話株式会社 Route calculation method for connectionless communication network
JP4499067B2 (en) * 2006-06-20 2010-07-07 日本電信電話株式会社 Multicast path calculation method and apparatus, program, and computer-readable recording medium

Also Published As

Publication number Publication date
JP2013219436A (en) 2013-10-24

Similar Documents

Publication Publication Date Title
CN107888496B (en) Method and apparatus for multiple path computation of label switched paths
TWI521924B (en) Automated traffic engineering for multi-protocol label switching (mpls) with link utilization as feedback into the tie-breaking mechanism
US10212088B2 (en) Tactical traffic engineering based on segment routing policies
Vissicchio et al. Central control over distributed routing
US9602387B2 (en) Network topology optimization
US10298488B1 (en) Path selection and programming of multiple label switched paths on selected paths of multiple computed paths
JP6165728B2 (en) Method and apparatus for self-healing routing of control traffic in split architecture systems
CN101272393B (en) Routing computing method and network node based on link condition routing protocol
US9246794B2 (en) Label distribution and route installation in a loop-free routing topology using routing arcs
US10148551B1 (en) Heuristic multiple paths computation for label switched paths
US9628391B2 (en) Recursive load balancing in a loop-free routing topology using routing arcs
CN104521192B (en) Technology for the flooding optimization of the link-state protocol in network topology structure
US20140078927A1 (en) Hierarchal label distribution and route installation in a loop-free routing topology using routing arcs at multiple hierarchal levels for ring topologies
US9049145B2 (en) Method and apparatus for calculating MPLS traffic engineering paths
CN109962850A (en) The method and controller and computer readable storage medium of realization Segment routing
JP5756049B2 (en) Multicast route calculation method and apparatus
Geng et al. Algebra and algorithms for multipath QoS routing in link state networks
CN101909004A (en) Multi-domain optical network routing method based on edge ROADM (Reconfigurable Optical Add-Drop Multiplexer) ring structure
US10313232B2 (en) Network control device, network control method, and recording medium for program
JP6407092B2 (en) Load distribution apparatus, load distribution method and program
JP5640986B2 (en) COMMUNICATION SYSTEM CONTROL DEVICE, CONTROL METHOD, AND PROGRAM
JPWO2015075862A1 (en) Network control device, network control method and program
CN104995879A (en) Communication system, communication method, control device, and control device control method and program
Liu et al. Achieving efficient and fast update for multiple flows in software-defined networks
Girão-Silva et al. A network-wide exact optimization approach for multiobjective routing with path protection in multiservice multiprotocol label switching networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140728

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150514

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150526

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150528

R150 Certificate of patent or registration of utility model

Ref document number: 5756049

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees