JP5613142B2 - Distribution router, multicast distribution system, and multicast distribution method - Google Patents
Distribution router, multicast distribution system, and multicast distribution method Download PDFInfo
- Publication number
- JP5613142B2 JP5613142B2 JP2011266094A JP2011266094A JP5613142B2 JP 5613142 B2 JP5613142 B2 JP 5613142B2 JP 2011266094 A JP2011266094 A JP 2011266094A JP 2011266094 A JP2011266094 A JP 2011266094A JP 5613142 B2 JP5613142 B2 JP 5613142B2
- Authority
- JP
- Japan
- Prior art keywords
- distribution
- hash
- flow
- hash value
- predetermined
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、配信ルータ、マルチキャスト配信システム、および、マルチキャスト配信方法に関する。 The present invention relates to a distribution router, a multicast distribution system, and a multicast distribution method.
IP(Internet Protocol)ルータとIPホスト区間のIPマルチキャストの配信制御を行うプロトコルとして、IGMP(Internet Group Management Protocol)/MLD(Multicast Listener Discovery)が存在する。また、その中でも、配信フローの送信元IPアドレス(以下、Sアドレス:Sourceアドレス)と、宛先IPアドレス(以下、Gアドレス:Groupアドレス)との両方(以下、(S,G))をフローIDとして指定して制御を行うSSM(Source-Specific Multicast)方式に対応したプロトコルとして、非特許文献1に記載のIGMPv3(IPv4)や、非特許文献2に記載のMLDv2(IPv6)が存在する。
IGMPv3/MLDv2では、ルータは、ホストからレポートを受信したことを契機に、当該フローの配信を開始/停止する。なお、レポートには、フローの(S,G)アドレスと、配信状態(配信中を示すJoin/未配信を示すLeave)とが含まれている。
IGMP (Internet Group Management Protocol) / MLD (Multicast Listener Discovery) exists as a protocol for controlling IP multicast distribution between an IP (Internet Protocol) router and an IP host section. Among them, both the source IP address (hereinafter referred to as S address: Source address) of the distribution flow and the destination IP address (hereinafter referred to as G address: Group address) (hereinafter referred to as (S, G)) are set as flow IDs. There are IGMPv3 (IPv4) described in Non-Patent Document 1 and MLDv2 (IPv6) described in
In IGMPv3 / MLDv2, the router starts / stops the delivery of the flow upon receiving a report from the host. Note that the report includes the (S, G) address of the flow and the delivery status (Join indicating delivery / Leave indicating non-delivery).
IPルータがIGMP/MLDを用いてIPマルチキャストの配信制御を行うときに、複数のIPルータのインタフェース(以下、IF(Interface)と略す)を、単一の共有セグメントに冗長接続する構成もある。以下、同じ共有セグメントに接続される複数のルータのIFをIF集合とする。なお、共有セグメントは、例えば、イーサネット(登録商標)のVLAN(Virtual Local Area Network)などで構成される。 When the IP router performs IP multicast distribution control using IGMP / MLD, there is a configuration in which interfaces of a plurality of IP routers (hereinafter abbreviated as IF (Interface)) are redundantly connected to a single shared segment. Hereinafter, IFs of a plurality of routers connected to the same shared segment are referred to as IF sets. The shared segment is configured by, for example, an Ethernet (registered trademark) VLAN (Virtual Local Area Network).
ここで、共有セグメントに複数のルータが接続される場合、全てのルータがレポートを受信して配信を開始すると、同一フローが重複配信される状況に陥る。この場合、セグメントの帯域利用効率が低下するため、同時配信可能な最大フロー数が減少したりや、同一パケットを重複受信するホストに悪影響を及ぼしたりする可能性がある。 Here, when a plurality of routers are connected to the shared segment, when all routers receive a report and start distribution, the same flow is duplicated. In this case, since the bandwidth utilization efficiency of the segment is lowered, there is a possibility that the maximum number of flows that can be simultaneously distributed may be reduced, or a host that receives the same packet twice may be adversely affected.
そこで、IGMPv3/MLDv2には、クエリアの選択メカニズムが備わっている。すなわち、IF集合の中の1つのIF(以下、クエリア)のみ配信制御を行う。一方、非クエリアは、共有セグメントへのフローの配信を停止する。そして、クエリアの選択メカニズムでは、IF集合におけるクエリアと非クエリアとの交代処理は、以下の契機に実行される。
(契機1)クエリアは、他ルータからクエリ(GQ(General Query)またはSQ(Group-Specific Query))を受信すると、その送信元IPアドレスと自IFのIPアドレスとを大小比較し、送信元アドレスの方が小さい場合は、自身を非クエリアへと降格させる。
(契機2)非クエリアは、クエリアからタイマ上限値(OQPT(Other Querier Present Interval)とも呼ばれる)を超過するまでにGQを受信しないとき、クエリアに障害が発生したとみなして、クエリアを代行するために自身をクエリアへと昇格させる。
Therefore, IGMPv3 / MLDv2 has a querier selection mechanism. That is, distribution control is performed only for one IF (hereinafter referred to as querier) in the IF set. On the other hand, the non-querier stops the flow distribution to the shared segment. In the querier selection mechanism, the querier and non-querier replacement processing in the IF set is executed at the following timing.
(Timing 1) When the querier receives a query (GQ (General Query) or SQ (Group-Specific Query)) from another router, the querier compares the source IP address with the IP address of its own IF to determine the source address. If is smaller, demote yourself to a non-querier.
(Timing 2) When a non-querier does not receive a GQ before exceeding the timer upper limit (also called OQPT (Other Querier Present Interval)) from the querier, it assumes that a failure has occurred in the querier and acts on behalf of the querier Promote yourself to querier.
前記した従来のクエリアの選択メカニズムは、(契機1)および(契機2)という単純な処理により、クエリアと非クエリアとの交代処理を実現しているので、実装はしやすいものの、IF集合の構成変更に伴って、フローの配信処理が不安定になる。
不安定とは、具体的には、IF集合のうちのクエリアが0台となってしまい、フローがホストに配信されない「配信断」や、IF集合のうちのクエリアが2台以上となってしまい、同じフローがホストに対して別々に配信されてしまう「重複配信」である。
つまり、クエリアの選択メカニズムは、精密に時刻同期/順序同期して実行されるわけではなく、他IFから送信されるクエリおよびホストから送信されるレポートの受信を契機にそれぞれ独立したタイミングで実行されるため、クエリアと非クエリアとの交代処理を実行する過程において、フローの配信処理が不安定になる。
The conventional querier selection mechanism described above realizes the alternate processing of the querier and the non-querier by a simple process of (Trigger 1) and (Trigger 2). With the change, the flow distribution process becomes unstable.
Specifically, the instability means that there are 0 queriers in the IF set, a “distribution interruption” in which the flow is not distributed to the host, or 2 or more queriers in the IF set. This is “overlapping delivery” in which the same flow is delivered separately to the host.
In other words, the querier selection mechanism is not executed with precise time synchronization / sequential synchronization, but with independent timing triggered by the reception of a query sent from another IF and a report sent from the host. Therefore, the flow distribution process becomes unstable in the process of performing the alternation process between the querier and the non-querier.
以下、IF集合の構成変更の例を(変更1)〜(変更4)として、それぞれ説明する。
(変更1)新しいIFをIF集合に増設する場合、増設先のIF集合にクエリアがすでに存在しているにもかかわらず、増設したIFはクエリアとして一旦起動する。よって、すでに存在しているクエリアと、増設したIFのクエリアとが同じIF集合に重複して存在するため、増設したIFとすでに存在しているクエリアとで、新たなクエリアを1つ選出する(契機1)が実行されるまでの期間において、重複配信が発生してしまう。
Hereinafter, examples of the configuration change of the IF set will be described as (Change 1) to (Change 4), respectively.
(Change 1) When a new IF is added to an IF set, the added IF is once activated as a querier even though a querier already exists in the IF set of the addition destination. Therefore, since the querier that already exists and the querier of the added IF are duplicated in the same IF set, a new querier is selected from the added IF and the querier that already exists ( Duplicate delivery occurs in the period until the trigger 1) is executed.
(変更2)所定のIFをIF集合から減設する場合、その減設対象がクエリアであるときには、クエリアが減設されたときから、非クエリア間で新たなクエリアを選出するまでの期間において、クエリアが0台となってしまい、配信断が発生してしまう。 (Change 2) When a predetermined IF is removed from an IF set, when the removal target is a querier, in a period from when the querier is removed until a new querier is selected between non-queriers, The querier becomes 0 units and distribution interruption occurs.
(変更3)クエリアに障害が発生する場合、その障害発生クエリアを非クエリアが検出するには、クエリアからGQパケットを受信しない時間が標準規定上で定められたタイマ上限値(例えば、256秒程度)を超過するまで、GQパケットを待たなければならない。よって、非クエリアが障害発生クエリアを代行するまでの期間において、クエリアが0台となってしまい、配信断が発生してしまう。
なお、タイマ上限値を短くすると、その分のGQパケットの送信頻度が上がってしまうため、IF集合のクエリアや他IFの負荷が上昇してしまう副作用が発生する。
(Change 3) When a failure occurs in a querier, in order for a non-querier to detect the failure occurrence querier, a timer upper limit value (for example, about 256 seconds) determined by a standard rule when a GQ packet is not received from the querier ) Must be waited until GQ packet is exceeded. Therefore, in the period until the non-querier acts as the failure querier, the number of queriers becomes zero and distribution interruption occurs.
Note that if the timer upper limit value is shortened, the transmission frequency of the corresponding GQ packet is increased, which causes a side effect of increasing the load of the IF set querier and other IFs.
(変更4)クエリアが(変更3)の障害から復旧した場合、復旧したクエリアと、(変更3)でクエリアを代行していたクエリアは、それぞれフローを配信するので、クエリアを1つに集約するまでは、重複配信が発生してしまう。 (Change 4) When the querier recovers from the failure of (Change 3), the recovered querier and the querier that has been acting as the querier in (Change 3) distribute the flows, so the queriers are consolidated into one. Until then, duplicate delivery will occur.
そこで、本発明は、共有セグメントに複数のマルチキャスト配信ルータのインタフェースが接続される構成において、それらのインタフェース集合に構成変更が発生してもフローの配信処理が不安定となる範囲を限定することを、主な目的とする。 Therefore, the present invention limits the range in which flow distribution processing becomes unstable even if a configuration change occurs in a set of interfaces in a configuration in which interfaces of a plurality of multicast distribution routers are connected to a shared segment. The main purpose.
前記課題を解決するために、本発明は、ホストにマルチキャストのフローを配信する複数台の配信ルータと1台以上の前記ホストとが共有セグメントに接続され、その共有セグメントに送信されるパケットが、前記共有セグメントに接続される前記配信ルータおよび前記ホストがそれぞれ受信可能であるマルチキャスト配信システムに用いられる前記配信ルータであって、
前記共有セグメントに接続される前記配信ルータのインタフェースごとに、そのインタフェースの識別情報を引数として所定のハッシュ空間へと射影する第1ハッシュ関数を計算することで、IFハッシュ値を計算するIF状態管理部と、
前記共有セグメントを介して前記配信ルータによる配信されるフローごとに、そのフローの識別情報を引数として前記所定のハッシュ空間へと射影する第2ハッシュ関数を計算することで、フローハッシュ値を計算し、
計算した各前記IFハッシュ値によって区切られるハッシュ空間内の所定領域を、所定の前記IFハッシュ値の担当領域とし、その担当領域に含まれる前記フローハッシュ値に該当するフローを、所定の前記IFハッシュ値に該当する前記配信ルータのインタフェースが配信を担当するように制御し、
前記所定のハッシュ空間に対して新たに前記IFハッシュ値を追加するときには、追加する前記IFハッシュ値の担当領域を、前記IFハッシュ値の担当領域の1つを分割した領域とし、
前記所定のハッシュ空間から前記IFハッシュ値を削除するときには、削除する前記IFハッシュ値の担当領域を、他の1つの前記IFハッシュ値の担当領域へ統合するフロー割当処理部とを有することを特徴とする。
In order to solve the above-described problem, the present invention is configured such that a plurality of distribution routers that distribute a multicast flow to a host and one or more hosts are connected to a shared segment, and a packet transmitted to the shared segment includes: The distribution router used in a multicast distribution system that can be received by the distribution router and the host connected to the shared segment,
For each interface of the distribution router connected to the shared segment, an IF state management for calculating an IF hash value by calculating a first hash function that projects the identification information of the interface to a predetermined hash space as an argument And
For each flow distributed by the distribution router via the shared segment, a flow hash value is calculated by calculating a second hash function that projects the identification information of the flow onto the predetermined hash space as an argument. ,
A predetermined area in the hash space delimited by each calculated IF hash value is set as an assigned area of the predetermined IF hash value, and a flow corresponding to the flow hash value included in the assigned area is set as the predetermined IF hash Control that the interface of the distribution router corresponding to the value is responsible for distribution,
When newly adding the IF hash value to the predetermined hash space, the area in charge of the IF hash value to be added is an area obtained by dividing one of the areas in charge of the IF hash value,
When deleting the IF hash value from the predetermined hash space, it has a flow allocation processing unit that integrates the area in charge of the IF hash value to be deleted into another area in charge of the IF hash value. And
これにより、構成変更が発生したIFハッシュ値に近接するフローを収容変更するだけで済むので、フローの配信処理の不安定の影響を局所的にすることができる。よって、共有セグメントに複数のマルチキャスト配信ルータのインタフェースが接続される構成において、それらのインタフェース集合に構成変更が発生してもフローの配信処理が不安定となる範囲を限定することができる。 As a result, it is only necessary to accommodate and change the flow that is close to the IF hash value in which the configuration change has occurred, so that it is possible to locally influence the instability of the flow distribution process. Therefore, in the configuration in which the interfaces of a plurality of multicast distribution routers are connected to the shared segment, it is possible to limit the range in which the flow distribution processing becomes unstable even when a configuration change occurs in those interface sets.
本発明は、前記IF状態管理部が、前記共有セグメントに流れる前記配信ルータからのマルチキャストのクエリメッセージを受信し、そのクエリメッセージに含まれる送信元IPアドレスを前記IFハッシュ値を計算するための前記インタフェースの識別情報として用いることを特徴とする。 In the present invention, the IF state management unit receives the multicast query message from the distribution router flowing in the shared segment, and calculates the IF hash value for the source IP address included in the query message. It is used as identification information of an interface.
これにより、既存のプロトコルのパケットフォーマット(クエリ)をそのまま活用できる。 Thereby, the packet format (query) of the existing protocol can be used as it is.
本発明は、前記フロー割当処理部が、前記共有セグメントに流れる前記ホストからのマルチキャストのレポートメッセージを受信し、そのレポートメッセージに含まれる配信フローの送信元IPアドレス、および、配信フローの宛先IPアドレスのうちの少なくとも1つのIPアドレスを、前記フローハッシュ値を計算するための前記フローの識別情報として用いることを特徴とする。 In the present invention, the flow allocation processing unit receives a multicast report message from the host that flows in the shared segment, and the source IP address of the distribution flow included in the report message and the destination IP address of the distribution flow At least one of the IP addresses is used as identification information of the flow for calculating the flow hash value.
これにより、既存のプロトコルのパケットフォーマット(レポート)をそのまま活用できる。 Thereby, the packet format (report) of the existing protocol can be utilized as it is.
本発明によれば、共有セグメントに複数のマルチキャスト配信ルータのインタフェースが接続される構成において、それらのインタフェース集合に構成変更が発生してもフローの配信処理が不安定となる範囲を限定することができる。 According to the present invention, in a configuration in which interfaces of a plurality of multicast distribution routers are connected to a shared segment, it is possible to limit a range in which flow distribution processing becomes unstable even if a configuration change occurs in those interface sets. it can.
以下、本発明の一実施形態について、図面を参照して詳細に説明する。 Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
図1は、マルチキャスト配信システムを示す構成図である。
マルチキャストフローは、配信サーバ1(S1,S2,…)から送信され、マルチキャスト配信網2、リンク3、配信ルータ4(R1,R2,R3,…)、共有セグメント5を経由し、ホスト6(H1,H2,H3,H4,…)に配信される。共有セグメント5は、例えば、イーサネットのセグメント(マルチキャストVLAN)として構成される。
これらのマルチキャスト配信システムの各装置は、CPU(Central Processing Unit)とメモリとハードディスク(記憶手段)とネットワークインタフェースを有するコンピュータとして構成され、このコンピュータは、CPUが、メモリ上に読み込んだプログラムを実行することにより、各処理部を動作させる。
FIG. 1 is a configuration diagram showing a multicast distribution system.
The multicast flow is transmitted from the distribution server 1 (S1, S2,...), Passes through the
Each device of these multicast distribution systems is configured as a computer having a CPU (Central Processing Unit), a memory, a hard disk (storage means), and a network interface, and the computer executes a program read on the memory. Thus, each processing unit is operated.
配信ルータ4とホスト6と間のパケットは、共有セグメント5を介して送受信される。この送受信されるパケットは、配信ルータ4から送信されるクエリと、ホスト6から送信されるレポート(配信中を示すJoin/未配信を示すLeave)とがある。RFC(Request for Comments)3810に記載されているように、レポートのICMPv6ヘッダ内の「Record Type」を5(ALLOW_NEW_SOURCES)に設定すると指定した(S,G)に対するJoinとなり、「Record Type」を6(BLOCK_OLD_SOURCES)に設定すると指定した(S,G)に対するLeaveとなる。
Packets between the
図2は、配信ルータ4を示す構成図である。
配信ルータ4は、マルチキャスト配信網2と接続するMC配信網接続インタフェース41、マルチキャスト配信網2とフレーム送受信を行うMC配信網フレーム転送部42、共有セグメント5とフレーム送受信を行う共有セグメントフレーム転送部44、共有セグメント5と接続する共有セグメント接続インタフェース45、フローの配信を制御する転送制御回路43から構成される。
FIG. 2 is a configuration diagram showing the
The
MC配信網接続インタフェース41と共有セグメント接続インタフェース45は、一般的な物理レイヤを司り、イーサネットの場合はPHYレイヤに相当する。
MC配信網接続インタフェース41は、受信IF部411と送信IF部412とから構成される。
共有セグメント接続インタフェース45は、送信IF部451と受信IF部452とから構成される。
The MC distribution
The MC distribution
The shared
MC配信網フレーム転送部42と共有セグメントフレーム転送部44は、一般的なデータリンク層を司り、イーサネットの場合はMAC(Media Access Control)レイヤに相当する。
MC配信網フレーム転送部42は、フレーム受信部421とフレーム送信部422とから構成される。共有セグメントフレーム転送部44は、フレーム送信部441とフレーム受信部442とから構成される。
The MC distribution network
The MC distribution network
転送制御回路43は、配信状態管理部431、MC配信網連携部432、IF状態管理部433、IF管理テーブル434、フロー割当処理部435、フロー配信テーブル436、配信フィルタ部437から構成される。
レポートは、ホスト6から受信すると、共有セグメント接続インタフェース45、共有セグメントフレーム転送部44、配信状態管理部431を介して、フロー割当処理部435に通知される。
配信状態管理部431は、従来のIGMP/MLDルータなどに相当し、IPマルチキャストフローのアクセス配信状態の管理を行う。ここで、配信状態管理部431は、ホスト6から受信したレポートの内容と現在のフロー配信状態に応じて、MC配信網連携部432を介して、配信に関する連携処理を行う。
MC配信網連携部432は、従来のPIMルータなどに相当する。マルチキャスト配信網2と連携してIPマルチキャストルーティングの制御を行う。
配信フィルタ部437は、フロー割当処理部435からの指示を受けて、フロー単位の配信フィルタを開閉する。フィルタが開放されたフローは、MC配信網フレーム転送部42から受信したフローパケットを共有セグメントフレーム転送部44へ転送する。逆に、フィルタ閉鎖されたフローは転送せずに廃棄する。
The
When the report is received from the host 6, it is notified to the flow
The distribution
The MC distribution
In response to the instruction from the flow
IF状態管理部433は、共有セグメントに接続される全てのIFの情報を管理する。共有セグメント接続インタフェース45、共有セグメントフレーム転送部44、配信状態管理部431を介して受信する他IFからのクエリの送信元IPアドレスや受信時刻を検査し、IFの識別情報からIFハッシュ値を計算し(詳細は、後記する表1で説明)、他IFを死活監視する。
IF管理テーブル434は、IF状態管理部433において検査されたIF情報が登録および管理されるデータベースである。
IF状態管理部433は、フロー割当処理部435の指示に従い、IF管理テーブル434に登録したインタフェース情報を読み出して、フロー割当処理部435に引き渡す。
The IF
The IF management table 434 is a database in which IF information checked by the IF
The IF
フロー割当処理部435は、フローに対するIFの割当情報をフロー配信テーブル436に管理する。フロー割当処理部435は、レポートから読み取ったフローの識別情報をもとに、フローハッシュ値を計算する(詳細は、後記する表2で説明)。フロー割当処理部435は、IF状態管理部433から全てのIFハッシュ値を取得し、当該フローハッシュ値と全てのIFハッシュ値の方向距離を計算して当該フローに対する配信IFの割当てを決定して配信状態の制御を行う。ここで、これらの処理情報をフロー配信テーブル436に登録する。
フロー配信テーブル436は、フロー割当処理部435において処理されたフローごとのインタフェースに対する割当情報および配信状態が登録および管理されるデータベースである。
The flow
The flow distribution table 436 is a database in which allocation information and distribution states for interfaces for each flow processed in the flow
図3は、両テーブル(IF管理テーブル434、フロー配信テーブル436)が使用するリング状のハッシュ空間を示す説明図である。
図3(a)は、ハッシュ空間の大きさであるハッシュ値の上限を決める定数nとしたときのハッシュ空間を示す。定数nとはハッシュ値の最大値+1である。ハッシュ空間は、右回り(時計回り)にハッシュ値が大きくなるように構成され、12時の方向(真上)がハッシュ値「0」とハッシュ値「n」、6時の方向(真下)がハッシュ値「n/2」を示す。
図3(b)は、図3(a)のハッシュ空間として、n=1000としたときの一例を示す。
FIG. 3 is an explanatory diagram showing a ring-shaped hash space used by both tables (IF management table 434 and flow distribution table 436).
FIG. 3A shows the hash space when a constant n is set for determining the upper limit of the hash value, which is the size of the hash space. The constant n is the maximum hash value + 1. The hash space is configured so that the hash value increases clockwise (clockwise), the direction at 12 o'clock (directly above) is the hash value “0” and the hash value “n”, and the direction at 6 o'clock (directly below). The hash value “n / 2” is indicated.
FIG. 3B shows an example when n = 1000 as the hash space of FIG.
表1は、共有セグメント5ごとに生成されるIF管理テーブル434を示す。IF管理テーブル434は、IFの識別情報であるIFIDと、IFのIPアドレスと、そのIFのIFハッシュ値(Hash)と、そのIFが自身のものか否かを示すIFフラグと、IFが活動しているか否かを監視するためのクエリア死活監視タイマとを対応づけて格納する。
例えば、IFID「R1」は、自身が収容するIFである。
IFID「R2,R3」は、他装置が収容するIFであり、クエリを受信してから経過した時間(クエリア死活監視タイマの時間)が所定時間以下なので、活動している。
IFID「R4」は、他装置が収容するIFであり、クエリを受信してから経過した時間が所定時間を超えたため(タイムアウトしたため)、活動していない。
Table 1 shows an IF management table 434 generated for each shared segment 5. The IF management table 434 includes an IF ID that is identification information of the IF, an IP address of the IF, an IF hash value (Hash) of the IF, an IF flag indicating whether the IF is its own, and an IF activity A querier alive monitoring timer for monitoring whether or not it is being stored is stored in association with each other.
For example, the IFID “R1” is an IF accommodated by itself.
The IFIDs “R2, R3” are IFs accommodated by other devices, and are active because the time elapsed since the query was received (the time of the querier alive monitoring timer) is less than or equal to a predetermined time.
The IFID “R4” is an IF accommodated by another device and is not active because the time elapsed since the query was received has exceeded a predetermined time (timed out).
IF管理テーブル434のIFハッシュ値は、IFのIPアドレスを定数nで剰余算(mod)した結果である。なお、各IFのIPアドレスは、クエリのIPv6ヘッダに記載されている送信元IPアドレス(IPv6のリンクローカルアドレス)を読み取れば取得できる。
なお、以下では、ハッシュ関数の引数として、IFのIPアドレスを用いたが、他のIFの識別情報(送信元IPアドレスの一部や、所定ルールで設定したIFのIDや、共有セグメント5におけるIFのクエリア順位(共有セグメント5の中で何番目に小さいIPアドレスか)など)を代わりに引数として用いてもよい。
The IF hash value of the IF management table 434 is a result obtained by performing a remainder calculation (mod) on the IP address of the IF by a constant n. The IP address of each IF can be obtained by reading the source IP address (IPv6 link local address) described in the IPv6 header of the query.
In the following, the IP address of the IF is used as an argument of the hash function. However, the identification information of other IF (part of the source IP address, the ID of the IF set by a predetermined rule, the shared segment 5 The IF querier order (the smallest IP address in the shared segment 5) may be used instead as an argument.
以下、ハッシュ空間の大きさを「n」とし、ハッシュ引数であるIFのIPアドレスを「IP」とし、ハッシュ関数を「H()」とし、ハッシュ引数の変換関数を「f()」とし、16進数表現を「()h」と表記する。
H(IP,n)= mod[f(IP),n]
例えば、n=1000、IP=R1の「fe80::1122::3344::5566::789a」の場合
H(IP,n)
=mod[(fe80+1122+3344+5566+789a)h,1000]
=mod[(65152+4386+13124+21862+30874),1000]
=mod[135398,1000]=398
Hereinafter, the size of the hash space is “n”, the IP address of the IF that is the hash argument is “IP”, the hash function is “H ()”, the hash argument conversion function is “f ()”, Hexadecimal representation is expressed as “() h”.
H (IP, n) = mod [f (IP), n]
For example, when “fe80 :: 1122 :: 3344 :: 5566 :: 789a” where n = 1000 and IP = R1
H (IP, n)
= mod [(fe80 + 1122 + 3344 + 5566 + 789a) h, 1000]
= mod [(65152 + 4386 + 13124 + 21862 + 30874), 1000]
= mod [135398,1000] = 398
表2は、共有セグメント5ごとに生成されるフロー配信テーブル436を示す。フロー配信テーブル436は、フローIDと、フローのSアドレスと、フローのGアドレスと、フローハッシュ値(Hash)と、フローの配信担当であるIFと、フローの配信状態とを対応づけて格納する。フローの配信状態は、配信中(Join)か、未配信(Leave)か、いずれかの値をとる。
例えば、フローID「F1」のフローは、IF「R3」から配信され、他のIFからは配信されない。
Table 2 shows a flow distribution table 436 generated for each shared segment 5. The flow distribution table 436 stores a flow ID, a flow S address, a flow G address, a flow hash value (Hash), an IF in charge of flow distribution, and a flow distribution state in association with each other. . The distribution state of the flow takes either the value of distribution (Join) or non-distribution (Leave).
For example, the flow with the flow ID “F1” is distributed from the IF “R3” and is not distributed from other IFs.
フロー配信テーブル436のフローハッシュ値は、フローの(S,G)アドレス情報を定数nで剰余算(mod)した結果である。Sアドレスは、レポート内のICMPv6ヘッダの「Multicast Address」から読み取ることができ、Gアドレスは、レポート内のICMPv6ヘッダの「Source Address[1]〜[N]」から読み取ることができる。
なお、以下では、ハッシュ関数の引数として、フローの(S,G)アドレス情報を用いたが、他のフローの識別情報(Sアドレスを単体で用いる、Gアドレスを単体で用いる、など)を代わりに引数として用いてもよい。
The flow hash value of the flow distribution table 436 is a result of the remainder (mod) calculation of the (S, G) address information of the flow by a constant n. The S address can be read from “Multicast Address” of the ICMPv6 header in the report, and the G address can be read from “Source Address [1] to [N]” of the ICMPv6 header in the report.
In the following, the flow (S, G) address information is used as the argument of the hash function, but other flow identification information (S address alone, G address alone, etc.) is used instead. May be used as an argument.
以下、ハッシュ空間の大きさを「n」とし、ハッシュ引数であるフローの(S,G)アドレス情報を「S,G」とし、ハッシュ関数を「H()」とし、ハッシュ引数の変換関数を「f()」とし、16進数表現を「()h」と表記する。
H(S,G,n)= mod[f(S,G),n]
例えば、n=1000、S=F1の「2001::1000::2000::3000::4000」、G=F1の「ff3e::0001::0002::0003::0004」の場合
H(S,G,n)
=mod[(2001+1000+2000+3000+4000)h+(ff3e+0001+0002+0003+0004)h,1000]
=mod[(8193+4096+8192+12288+16384)+(65342+1+2+3+4),1000]
=mod[(49153+65352),1000]=114
In the following, the size of the hash space is “n”, the (S, G) address information of the flow that is the hash argument is “S, G”, the hash function is “H ()”, and the hash argument conversion function is “F ()” is expressed as a hexadecimal expression “() h”.
H (S, G, n) = mod [f (S, G), n]
For example, n = 1000, S = F1, "2001 :: 1000 :: 2000 :: 3000 :: 4000", and G = F1, "ff3e :: 0001 :: 0002 :: 0003 :: 0004"
H (S, G, n)
= mod [(2001 + 1000 + 2000 + 3000 + 4000) h + (ff3e + 0001 + 0002 + 0003 + 0004) h, 1000]
= mod [(8193 + 4096 + 8192 + 12288 + 16384) + (65342 + 1 + 2 + 3 + 4), 1000]
= mod [(49153 + 65352), 1000] = 114
以上説明したIFハッシュ値およびフローハッシュ値それぞれについて、ネットワーク管理者がハッシュキーやハッシュ値を手動で設定してもよい。
なお、ハッシュ関数は、必ずしも剰余算である必要はなく、一般的に用いられるその他のハッシュ関数を用いてもよい。ただし、同じ共有セグメント5内で配信制御の一貫性を保つため、ハッシュ値の計算方法は、同じ共有セグメント5に接続される配信ルータ4間で共通の方法とするほうがよい。
For each of the IF hash value and flow hash value described above, the network administrator may manually set a hash key and a hash value.
Note that the hash function does not necessarily need to be a residue calculation, and other commonly used hash functions may be used. However, in order to maintain consistency of distribution control within the same shared segment 5, it is better to use a hash value calculation method that is common among the
なお、フローハッシュ値の計算において、互いに異なる2つのIF(2つの引数)であっても、ハッシュ関数により射影されるハッシュ空間内のハッシュ値が偶然一致してしまうハッシュ衝突が発生することもある。ハッシュ衝突が発生したときには、SNMP(Simple Network Management Protocol)コマンドなどで、ネットワーク管理者に衝突発生を警告する。 In the calculation of the flow hash value, even if two IFs (two arguments) are different from each other, a hash collision may occur in which the hash values in the hash space projected by the hash function coincide by chance. . When a hash collision occurs, a network administrator is warned of the collision by an SNMP (Simple Network Management Protocol) command or the like.
または、フロー割当処理部435は、ハッシュ衝突が発生したときには、以下の(1)〜(4)に示すハッシュ衝突の回避処理を実行してもよい。
(1)互いに衝突しない全てのIFハッシュ値を、そのままハッシュ空間に配置する。
(2)衝突する複数のIFハッシュ値のうち、そのIFハッシュ値の計算に使用されるIPアドレスが最小のIFハッシュ値を、そのままハッシュ空間に配置する。なお、この(2)の衝突判定は、IF集合の構成変更(IFの増設やIFの障害回復)のたびに実行される。
(3)前記(2)で衝突する複数のIFハッシュ値のうち、(2)でハッシュ空間に配置されなかったIFハッシュ値については、そのIFハッシュ値とは別の場所(例えば、IFハッシュ値を起点として右回りにn/8分ずつ順に移動した場所)に補正して、ハッシュ空間に配置する。
(4)IF集合の構成変更(IFの減設やIFの障害発生)により、すでにハッシュ空間に配置されたIFハッシュ値を削除するときには、その削除したIFハッシュ値が(2)でハッシュ空間に配置されたIFハッシュ値なら、(3)で補正して配置されたIFハッシュ値を、補正前のIFハッシュ値へと戻す。この(4)を実現するために、衝突する複数のIFハッシュ値を管理するデータ構造(例えば、リスト構造)を用意する。
Alternatively, the flow
(1) All IF hash values that do not collide with each other are placed in the hash space as they are.
(2) Among a plurality of conflicting IF hash values, the IF hash value with the smallest IP address used for calculation of the IF hash value is arranged in the hash space as it is. The collision determination (2) is executed every time the configuration of the IF set is changed (IF addition or IF failure recovery).
(3) Among the plurality of IF hash values that collide in (2) above, the IF hash value that is not arranged in the hash space in (2) is located at a location different from the IF hash value (for example, IF hash value From the starting point to the place moved in order n / 8 minutes clockwise) and placed in the hash space.
(4) When an IF hash value already placed in the hash space is deleted due to a change in the configuration of the IF set (IF reduction or IF failure occurs), the deleted IF hash value is changed to the hash space in (2). If the IF hash value has been arranged, the IF hash value corrected and arranged in (3) is returned to the IF hash value before correction. In order to realize (4), a data structure (for example, a list structure) for managing a plurality of conflicting IF hash values is prepared.
図4は、配信処理およびその前準備処理を示すフローチャートである。
S101として、各配信ルータ4は、自身への電源投入などを契機に、両テーブル(IF状態管理部433が生成するIF管理テーブル434、フロー割当処理部435が生成するフロー配信テーブル436)を初期化する。なお、S101で初期化された両テーブルは、例えば配信ルータ4のシャットダウン時などに削除される。
IF状態管理部433は、自IFのエントリをIF管理テーブル434に新規追加する。エントリ内容は、自IFのIPアドレス、そのIPアドレスのIFハッシュ値、自IFであることを示す「自IF」のIFフラグ、クエリアタイマ(GQ受信死活監視)の無効化である。
FIG. 4 is a flowchart showing the distribution process and its preparation process.
As S101, each
The IF
S102として、配信ルータ4(R1)は、共有セグメント5にクエリを送信するとともに、他IFからのクエリを受信する。
S103として、配信ルータ4(R2)のIF状態管理部433は、S102で受信したクエリに記載されたIFを、自身のハッシュ空間に登録する。
具体的には、IF状態管理部433は、受信パケットのIPヘッダから読み込んだ送信元IPアドレスを検索キーとして、IF管理テーブル434からその検索キーのエントリ(以下、クエリエントリとする)が存在するか否かを検索する。
クエリエントリが存在するときには、そのクエリエントリのクエリア死活監視タイマ=0とする。
クエリエントリが存在しないときには、IF管理テーブル434に対してクエリエントリを新規追加する。エントリ内容は、クエリの送信元IPアドレス、その送信元IPアドレスのIFハッシュ値、他IFであることを示す「他IF」のIFフラグ、クエリア死活監視タイマ=0である。
As S102, the distribution router 4 (R1) transmits a query to the shared segment 5 and receives a query from another IF.
In S103, the IF
Specifically, the IF
When there is a query entry, the querier alive monitoring timer of the query entry is set to zero.
When there is no query entry, a new query entry is added to the IF management table 434. The contents of the entry are the query source IP address, the IF hash value of the source IP address, the “other IF” IF flag indicating the other IF, and the querier alive monitoring timer = 0.
図5は、図3(b)で示したリング状のハッシュ空間に、両ハッシュ値(IFハッシュ値、フローハッシュ値)を配置した旨を示す説明図である。図5(a)は、ハッシュ空間に3つのIFハッシュ値を配置した図である。
S103のハッシュ空間の登録処理の一例として、配信ルータ4「R3」のIFハッシュ値「136」と、配信ルータ4「R1」のIFハッシュ値「398」と、配信ルータ4「R2」のIFハッシュ値「767」とが、それぞれ配置されている。
そして、ハッシュ空間での方向距離に基づいて、フローを割り当てる。例えば、配信ルータ4「R1」の配信担当となるハッシュ空間は、自身より1つ前(左回り)に位置する配信ルータ4「R3」のIFハッシュ値「136」+1を起点として、右回りに自身のIFハッシュ値「398」までの範囲である。
FIG. 5 is an explanatory diagram showing that both hash values (IF hash value, flow hash value) are arranged in the ring-shaped hash space shown in FIG. FIG. 5A is a diagram in which three IF hash values are arranged in the hash space.
As an example of the hash space registration process of S103, the IF hash value “136” of the
Then, a flow is assigned based on the direction distance in the hash space. For example, the hash space that is in charge of distribution of the
図4に戻り、S111として、ホスト6は、クエリに対するレポートを返信する。ここでは、そのレポートにフローF1〜F4に対する配信要求を示すJoinが含まれているとする。
S112として、各配信ルータ4のフロー割当処理部435は、S111のレポートを参照して、各自のハッシュ空間にF1〜F4を登録する(詳細は図8参照)。その結果、配信ルータ4(R1)はフローF2,F3の配信を担当し、配信ルータ4(R2)はフローの配信を担当しないものとする。
Returning to FIG. 4, in S111, the host 6 returns a report for the query. Here, it is assumed that the report includes a Join indicating a distribution request for the flows F1 to F4.
As S112, the flow
図5(b)は、図5(a)のハッシュ空間に対して、フローハッシュ値を配置した例を示す。例えば、フローF1のフローハッシュ値「114」が、配信ルータ4「R3」のIFハッシュ値「136」の近傍に配置されている。
フロー割当処理部435は、IFハッシュ値とフローハッシュ値との方向距離をもとに、各フローを担当するIFを決定する。例えば、図5(a)で示したように、配信ルータ4「R1」の配信担当となるハッシュ空間は、配信ルータ4「R3」のIFハッシュ値「136」+1を起点として、右回りに自身のIFハッシュ値「398」までの範囲であるので、この範囲に含まれるフローハッシュ値「177」のフローF5は、配信ルータ4「R1」の配信担当となる。
FIG. 5B shows an example in which flow hash values are arranged in the hash space of FIG. For example, the flow hash value “114” of the flow F1 is arranged in the vicinity of the IF hash value “136” of the
The flow
以下、IFハッシュ値「R」およびフローハッシュ値「F」が計算されたハッシュ空間から、フローハッシュ値ごとに担当するIFハッシュ値を決定する方法を示す。
ハッシュ距離 D(R,F)=R-Fとし、各Fについて、もし、D(R,F)≧0が1つ以上存在するときには、D(R,F)≧0のうちの最小値となるRをFの配信担当として割り当てる。一方、D(R,F)≧0が存在しないときには、D(R,F)が最小値となるRをFの配信担当として割り当てる。
Hereinafter, a method for determining an IF hash value for each flow hash value from the hash space in which the IF hash value “R” and the flow hash value “F” are calculated will be described.
The hash distance D (R, F) = RF, and for each F, if there is one or more D (R, F) ≧ 0, R is the minimum value of D (R, F) ≧ 0 Is assigned as the person in charge of F distribution. On the other hand, when D (R, F) ≧ 0 does not exist, R having the minimum value of D (R, F) is assigned as the person in charge of F distribution.
図4に戻り、S113として、配信サーバ1は、S111のJoinで指定されたフローF2のデータを共有セグメント5に配信する。このデータは、共有セグメント5に接続されているすべての配信ルータ4が受信可能であるが、今回はS112でフローF2の配信担当である配信ルータ4(R1)がホスト6に対してフローF2を配信する。
Returning to FIG. 4, as S <b> 113, the distribution server 1 distributes the data of the flow F <b> 2 specified by Join in S <b> 111 to the shared segment 5. This data can be received by all the
S121として、ホスト6は、S111と同様にクエリに対するレポートを返信する。ここでは、そのレポートにフローF5に対する配信要求を示すJoinが含まれているとする。
S122として、各配信ルータ4のフロー割当処理部435は、S112と同様に、S121のレポートを参照して、各自のハッシュ空間にフローF5を登録する(詳細は図8参照)。その結果、配信ルータ4(R2)はフローF5の配信を担当する。
S123として、S113と同様に、配信ルータ4(R2)は、自身の配信担当であるフローF5をデータ配信する。
In step S121, the host 6 returns a report for the query in the same manner as in step S111. Here, it is assumed that the report includes a Join indicating a distribution request for the flow F5.
As S122, the flow
In S123, as in S113, the distribution router 4 (R2) distributes data of the flow F5 that is in charge of distribution.
S131として、ホスト6は、クエリに対するレポートを返信する。ここでは、そのレポートにフローF5に対する離脱要求を示すLeaveが含まれているとする。
S132として、各配信ルータ4のフロー割当処理部435は、今回Leaveを受信したホスト6とは別のホスト6(引き続きフローF5の配信を要求するホスト6)が共有セグメント5内に存在しないときには、フロー配信テーブル436のハッシュ空間からフローF5を削除する。
なお、フロー配信テーブル436内のエントリを削除する代わりに、そのエントリを休止中(Leave)の状態に移行するとともに、後にそのエントリに対するJoinを受信したときには、休止中(Leave)から活動中(Join)へと状態遷移してもよい。
このように、フロー配信テーブル436内に休止中のエントリを記憶し続けることで、フロー配信テーブル436のサイズは大きくなってしまうものの、休止中のエントリの再登録をせずに状態遷移するだけで済むので、配信制御を早期再開することができる。
In S131, the host 6 returns a report for the query. Here, it is assumed that the report includes Leave indicating a withdrawal request for the flow F5.
In S132, the flow
Instead of deleting an entry in the flow distribution table 436, the entry shifts to a state of being inactive (Leave), and when a Join for the entry is received later, the entry from the inactive state (Leave) to active (Join State transition to).
As described above, storing the suspended entry in the flow distribution table 436 increases the size of the flow distribution table 436, but the state transition is performed without re-registering the suspended entry. As a result, distribution control can be resumed early.
図6は、IF集合の構成変更処理を示すフローチャートである。
S201として、フロー割当処理部435は、図4のS112,S122,S132などで説明したように、Joinされた各フローを担当する配信ルータ4のIFを計算する。ここでは、配信ルータ4(R1)がフローF5を担当し、配信ルータ4(R2)がフローF2,3を担当し、配信ルータ4(R3)がフローF1,4を担当するものとする。
FIG. 6 is a flowchart showing the IF set configuration change processing.
As S201, the flow
S211として、ネットワーク管理者が、共有セグメント5に配信ルータ4(R4)を増設(または障害回復)したとする。
S212として、配信ルータ4(R4)は、自身のIFを示すIPアドレスを含めたクエリを共有セグメント5に送信することで、他の配信ルータ4(R1〜R3)に自身の増設を通知する。
S213として、他の配信ルータ4(R1〜R3)のIF状態管理部433は、S212で通知された配信ルータ4(R4)のIFをハッシュ空間に登録する(S103と同様の処理)。
Assume that the network administrator adds a distribution router 4 (R4) to the shared segment 5 (or recovers from a failure) in S211.
In S212, the distribution router 4 (R4) notifies the other distribution routers 4 (R1 to R3) of its own addition by transmitting a query including an IP address indicating its own IF to the shared segment 5.
As S213, the IF
S214として、各配信ルータ4のフロー割当処理部435は、IP集合の構成変更に伴い、更新されたハッシュ空間でのフロー担当を計算する。その結果、S201からの変更分として、フローF4の担当がR3からR4へと変更されるものの、他のフローF1〜F3の担当は変更されない。
このように、フローの担当変更が少ない理由として、図5(b)で示したようなリング上のハッシュ空間にIFハッシュ値を配置していくため、IFハッシュ値の増減の影響が局所的で済むことが、挙げられる。
As S214, the flow
As described above, the reason for the small change in charge of the flow is that the IF hash value is arranged in the hash space on the ring as shown in FIG. That can be done.
図7は、リング状のハッシュ空間においてIF集合の構成変更例を示す説明図である。図7(a)は、図5(b)の状態から、さらに配信ルータ4(R4)のIF(IFハッシュ値=965)が増設(または障害回復)されたときのハッシュ空間を示す。
前回の配信ルータ4(R3)のIFの担当範囲(R2→R3)が、今回の配信ルータ4(R4)のIFの担当範囲(R2→R4)と、今回の配信ルータ4(R3)のIFの担当範囲(R4→R3)とに分割されている。
FIG. 7 is an explanatory diagram illustrating an example of a configuration change of an IF set in a ring-shaped hash space. FIG. 7A shows a hash space when the IF (IF hash value = 965) of the distribution router 4 (R4) is further expanded (or trouble recovered) from the state of FIG. 5B.
The IF range (R2 → R3) of the previous distribution router 4 (R3) is the IF range (R2 → R4) of the current distribution router 4 (R4) and the IF of the current distribution router 4 (R3). The assigned range (R4 → R3).
図6に戻って、S221として、配信ルータ4(R4)に障害が発生し(または減設され)、配信ルータ4(R4)からのクエリが送信不可になったとする。
S222として、他の配信ルータ4(R1〜R3)のIF状態管理部433は、配信ルータ4(R4)からのクエリ受信のタイムアウトを検出し、ハッシュ空間から配信ルータ4(R4)のIFを削除する。
具体的には、IF状態管理部433は、IF管理テーブル434に登録されたルータインタフェースの各エントリに対し、予め設定したクエリア死活監視用タイマの上限値に達しても当該インタフェースからのクエリを受信しないことを、タイムアウトとして検出判定する。そして、タイマ上限値を超過したエントリを削除する。
ここで、IF状態管理部433は、タイマ上限値を超過したIF管理テーブル434のエントリを削除する代わりに、そのエントリを休止状態へ移行することとしてもよい(S132と同様の状態遷移処理)。
S223として、フロー割当処理部435は、S222のIP集合の構成変更(IF削除)に伴い、更新されたハッシュ空間でのフロー担当を計算する。その結果、フローF4の担当がR4からR3へと戻ることで、S201の配信担当の状態へと戻る。
Returning to FIG. 6, it is assumed that, in S221, a failure occurs in the distribution router 4 (R4) (or is removed), and a query from the distribution router 4 (R4) becomes impossible to be transmitted.
In S222, the IF
Specifically, the IF
Here, instead of deleting the entry in the IF management table 434 that has exceeded the timer upper limit value, the IF
In S223, the flow
図7(b)は、図7(a)の状態から、IF「R4」に障害が発生したとき(または減設されたとき)のハッシュ空間を示す。配信ルータ4(R4)のIFハッシュ値(965)を削除することで、前回の配信ルータ4(R4)のIFの担当範囲(R2→R4)と、前回の配信ルータ4(R3)のIFの担当範囲(R4→R3)とが、今回の配信ルータ4(R3)のIFの担当範囲(R2→R3)へと統合されている。 FIG. 7B shows a hash space when a failure occurs in IF “R4” (or when it is removed) from the state of FIG. By deleting the IF hash value (965) of the distribution router 4 (R4), the IF range (R2 → R4) of the previous distribution router 4 (R4) and the IF of the previous distribution router 4 (R3) The assigned range (R4 → R3) is integrated into the IF assigned range (R2 → R3) of the current distribution router 4 (R3).
図8は、フロー割当処理部435が実行するフローの割当処理(図4のS112,S122)を示すフローチャートである。本フローチャートの動作主体はフロー割当処理部435であるので、各処理ステップでの説明において、その動作主体の記載を省略する。
FIG. 8 is a flowchart showing flow allocation processing (S112, S122 in FIG. 4) executed by the flow
S301として、ホスト6から受信したJoinが示すフロー(S,G)に対する既存エントリがフロー配信テーブル436内に存在するか否かを検索する。S301でYesならS303へ進み、NoならS302へ進む。
S302として、フロー配信テーブル436にフロー(S,G)を新規のエントリとして登録する。エントリ内容は、フロー(S,G)のアドレス、その(S,G)アドレスから計算したフローハッシュ値、フローハッシュ値に対応するハッシュ空間内の配信担当IFである。
In S301, it is searched whether or not an existing entry for the flow (S, G) indicated by Join received from the host 6 exists in the flow distribution table 436. If Yes in S301, the process proceeds to S303, and if No, the process proceeds to S302.
In S302, the flow (S, G) is registered as a new entry in the flow distribution table 436. The entry contents are the address of the flow (S, G), the flow hash value calculated from the (S, G) address, and the distribution responsible IF in the hash space corresponding to the flow hash value.
S303として、フロー配信テーブル436内のフロー(S,G)の配信状態が「Leave」であるか否かを参照し、フローが未配信の状態か否かを判定する。S303でYesならS304へ進み、Noなら図8の処理を終了する。
S304として、フロー配信テーブル436内のフロー(S,G)ののIF列を自身が収容しているか否かを参照し、自身が配信担当か否かを判定する。S304でYesならS305へ進み、Noなら図8の処理を終了する。
S305として、フロー(S,G)の配信を開始する。具体的には、フロー配信テーブル436内の配信状態を「Join」としてから、配信フィルタ部437に対してフィルタの開放を指示し、MC配信網連携部432を介して配信サーバ1に配信要求(PIM−Join)を送信する。
In S303, it is determined whether or not the flow (S, G) distribution state in the flow distribution table 436 is “Leave” to determine whether or not the flow is in an undistributed state. If Yes in S303, the process proceeds to S304, and if No, the process of FIG.
In S304, it is determined whether or not it is in charge of distribution by referring to whether or not the IF column of the flow (S, G) in the flow distribution table 436 is accommodated. If Yes in S304, the process proceeds to S305, and if No, the process of FIG.
As S305, distribution of the flow (S, G) is started. Specifically, after setting the distribution state in the flow distribution table 436 to “Join”, the
以上説明した本実施形態では、図1で示したように、複数台の配信ルータ4を単一の共有セグメント5へと接続し、その複数台の配信ルータ4間でフロー単位に配信担当を割り当てることで、マルチキャスト配信処理におけるアクセス分散を実現する。つまり、系全体としての冗長構成による障害リスク分散だけでなく、障害が発生していないときでも配信ルータ4間でそれぞれ自身の配信担当のフローを配信するので、アクセス収容効率が向上する。
In the present embodiment described above, as shown in FIG. 1, a plurality of
一方、フロー単位に配信担当を割り当てないと、パケットコピー処理などに必要な配信ルータ4の計算資源や、パケット配信処理に必要な共有セグメント5上の配信パス(帯域)の通信資源は有限であるため、特定の資源に負荷が集中する。
それにより、システム全体の資源利用効率が低下し、輻輳によるパケット損失や遅延(ゆらぎ)の増加などのサービス品質の劣化がユーザの利便性を低下させる。ここで、負荷集中をシステム増強で安易に緩和するだけでは、過剰コストが発生してしまう。
On the other hand, if the person in charge of distribution is not assigned to each flow unit, the computing resources of the
As a result, the resource utilization efficiency of the entire system is reduced, and deterioration of service quality such as an increase in packet loss and delay (fluctuation) due to congestion reduces the convenience for the user. Here, if the load concentration is easily relaxed by system enhancement, an excessive cost is generated.
各配信ルータ4は、図5で示したようなリング型のハッシュ空間を定義して、そのハッシュ空間に収まるようにIFハッシュ値とフローハッシュ値の両方を計算する。そして、IFハッシュ値とフローハッシュ値の方向距離に基づき、フローごとの配信担当を特定する。
そのため、配信ルータ4の増減設/障害切替/回復切戻などの各イベントにより、共有セグメント5へと接続された配信ルータ4の構成変更が発生しても、リング型に閉じたハッシュ空間での方向距離に基づいたフロー割当を再計算するため、構成変更が発生したIFハッシュ値に近接するフローを収容変更するだけで済むので、フローの配信処理の不安定の影響を局所的にすることができる。よって、配信の品質および信頼性を保ちつつ設備需要の変動に柔軟に対応可能なIPマルチキャスト配信サービスが提供可能となる。
Each
Therefore, even if the configuration change of the
なお、ハッシュ値を計算するための引数として、IFの識別情報(IPアドレスなど)や、フローの識別情報((S,G)アドレス情報など)を用いることで、ハッシュ計算の引数にはIF数を含めなくてもよい。つまり、配信ルータ4の構成変更が発生しても、構成変更されていない多くの配信ルータ4のIFハッシュ値が変わらないので、フローの配信処理の不安定の影響を局所的に限定することができる。
It should be noted that by using IF identification information (IP address, etc.) and flow identification information ((S, G) address information, etc.) as an argument for calculating a hash value, the number of IFs is used as an argument for hash calculation. May not be included. In other words, even if the configuration change of the
さらに、ハッシュ計算の引数となる識別情報は、接続される全てのIFおよびホスト間で交換される制御パケット(マルチキャスト/ブロードキャスト)を検出監視することで、容易に取得することができる。よって、既存のプロトコルのパケットフォーマット(クエリやレポート)をそのまま活用できるので、ルータ/ホスト間で特別な制御情報を交換することなく、スケーラブルで簡素な方法で、各ルータが自律分散的にフローごとの配信担当を特定することができる。 Furthermore, identification information that is an argument of hash calculation can be easily obtained by detecting and monitoring all the IFs connected and the control packet (multicast / broadcast) exchanged between the hosts. Therefore, since the packet format (query and report) of the existing protocol can be used as it is, each router can autonomously distribute each flow in a scalable and simple manner without exchanging special control information between the router / host. The person in charge of distribution can be identified.
以上説明したように、単一の共有セグメント5へと接続された複数台の配信ルータ4が、それぞれの配信担当のフローを配信ルータ4の構成変更に対しても柔軟に対応するため、配信品質および信頼性を維持しつつトラヒック需要の変動に強いマルチキャスト配信制御が可能となり、地上デジタル放送/BSデジタル放送のIP再送信サービスなどのような、高品質かつ高信頼性なIPマルチキャスト配信サービスが実現可能となる。
As described above, since a plurality of
1 配信サーバ
2 マルチキャスト配信網
3 リンク
4 配信ルータ
5 共有セグメント
6 ホスト
41 MC配信網接続インタフェース
42 MC配信網フレーム転送部
43 転送制御回路
44 共有セグメントフレーム転送部
45 共有セグメント接続インタフェース
411 受信IF部
412 送信IF部
421 フレーム受信部
422 フレーム送信部
431 配信状態管理部
432 MC配信網連携部
433 IF状態管理部
434 IF管理テーブル
435 フロー割当処理部
436 フロー配信テーブル
437 配信フィルタ部
441 フレーム送信部
442 フレーム受信部
451 送信IF部
452 受信IF部
DESCRIPTION OF SYMBOLS 1
Claims (6)
前記共有セグメントに接続される前記配信ルータのインタフェースごとに、そのインタフェースの識別情報を引数として所定のハッシュ空間へと射影する第1ハッシュ関数を計算することで、IFハッシュ値を計算するIF状態管理部と、
前記共有セグメントを介して前記配信ルータによる配信されるフローごとに、そのフローの識別情報を引数として前記所定のハッシュ空間へと射影する第2ハッシュ関数を計算することで、フローハッシュ値を計算し、
計算した各前記IFハッシュ値によって区切られるハッシュ空間内の所定領域を、所定の前記IFハッシュ値の担当領域とし、その担当領域に含まれる前記フローハッシュ値に該当するフローを、所定の前記IFハッシュ値に該当する前記配信ルータのインタフェースが配信を担当するように制御し、
前記所定のハッシュ空間に対して新たに前記IFハッシュ値を追加するときには、追加する前記IFハッシュ値の担当領域を、前記IFハッシュ値の担当領域の1つを分割した領域とし、
前記所定のハッシュ空間から前記IFハッシュ値を削除するときには、削除する前記IFハッシュ値の担当領域を、他の1つの前記IFハッシュ値の担当領域へ統合するフロー割当処理部とを有することを特徴とする
配信ルータ。 A plurality of distribution routers for distributing a multicast flow to a host and one or more of the hosts are connected to a shared segment, and a packet transmitted to the shared segment includes the distribution router connected to the shared segment and the The distribution router used in a multicast distribution system that can be received by each host,
For each interface of the distribution router connected to the shared segment, an IF state management for calculating an IF hash value by calculating a first hash function that projects the identification information of the interface to a predetermined hash space as an argument And
For each flow distributed by the distribution router via the shared segment, a flow hash value is calculated by calculating a second hash function that projects the identification information of the flow onto the predetermined hash space as an argument. ,
A predetermined area in the hash space delimited by each calculated IF hash value is set as an assigned area of the predetermined IF hash value, and a flow corresponding to the flow hash value included in the assigned area is set as the predetermined IF hash Control that the interface of the distribution router corresponding to the value is responsible for distribution,
When newly adding the IF hash value to the predetermined hash space, the area in charge of the IF hash value to be added is an area obtained by dividing one of the areas in charge of the IF hash value,
When deleting the IF hash value from the predetermined hash space, it has a flow allocation processing unit that integrates the area in charge of the IF hash value to be deleted into another area in charge of the IF hash value. And delivery router.
請求項1に記載の配信ルータ。 The IF state management unit receives the multicast query message from the distribution router flowing in the shared segment, and identifies the interface identification information for calculating the IF hash value for the source IP address included in the query message The distribution router according to claim 1, wherein the distribution router is used as a distribution router.
請求項1に記載の配信ルータ。 The flow allocation processing unit receives a multicast report message from the host that flows in the shared segment, and includes at least one of a source IP address of a distribution flow and a destination IP address of the distribution flow included in the report message The distribution router according to claim 1, wherein one IP address is used as identification information of the flow for calculating the flow hash value.
前記計算したIFハッシュ値が互いに同じ値となる前記配信ルータのインタフェース群について、前記インタフェース群のうちの1つのインタフェースには、前記同じ値として計算したIFハッシュ値を対応づけて前記所定のハッシュ空間に割り当て、
前記インタフェース群のうちの他のインタフェースには、前記同じ値として計算したIFハッシュ値を起点として所定分だけ移動したIFハッシュ値を対応づけて前記所定のハッシュ空間に割り当て、
前記所定のハッシュ空間から前記1つのインタフェースのIFハッシュ値が削除されるときには、前記他のインタフェースに対応づけられていたIFハッシュ値を、前記所定のハッシュ空間において移動前のIFハッシュ値へと戻すことを特徴とする
請求項1ないし請求項3のいずれか1項に記載の配信ルータ。 The flow allocation processing unit
With respect to the interface group of the distribution router in which the calculated IF hash value is the same, one interface of the interface group is associated with the IF hash value calculated as the same value and the predetermined hash space Assigned to
The other interfaces in the interface group are assigned to the predetermined hash space by associating the IF hash value moved by a predetermined amount with the IF hash value calculated as the same value as a starting point,
When the IF hash value of the one interface is deleted from the predetermined hash space, the IF hash value associated with the other interface is returned to the IF hash value before movement in the predetermined hash space. The distribution router according to any one of claims 1 to 3, wherein the distribution router is characterized in that:
前記マルチキャスト配信システムに用いられる前記各配信ルータは、
前記共有セグメントに接続される前記配信ルータのインタフェースごとに、そのインタフェースの識別情報を引数として所定のハッシュ空間へと射影する第1ハッシュ関数を計算することで、IFハッシュ値を計算するIF状態管理部と、
前記共有セグメントを介して前記配信ルータによる配信されるフローごとに、そのフローの識別情報を引数として前記所定のハッシュ空間へと射影する第2ハッシュ関数を計算することで、フローハッシュ値を計算し、
計算した各前記IFハッシュ値によって区切られるハッシュ空間内の所定領域を、所定の前記IFハッシュ値の担当領域とし、その担当領域に含まれる前記フローハッシュ値に該当するフローを、所定の前記IFハッシュ値に該当する前記配信ルータのインタフェースが配信を担当するように制御し、
前記所定のハッシュ空間に対して新たに前記IFハッシュ値を追加するときには、追加する前記IFハッシュ値の担当領域を、前記IFハッシュ値の担当領域の1つを分割した領域とし、
前記所定のハッシュ空間から前記IFハッシュ値を削除するときには、削除する前記IFハッシュ値の担当領域を、他の1つの前記IFハッシュ値の担当領域へ統合するフロー割当処理部とを有することを特徴とする
マルチキャスト配信システム。 A plurality of distribution routers for distributing a multicast flow to a host and one or more of the hosts are connected to a shared segment, and a packet transmitted to the shared segment includes the distribution router connected to the shared segment and the A multicast distribution system in which each host can receive,
Each of the distribution routers used in the multicast distribution system is
For each interface of the distribution router connected to the shared segment, an IF state management for calculating an IF hash value by calculating a first hash function that projects the identification information of the interface to a predetermined hash space as an argument And
For each flow distributed by the distribution router via the shared segment, a flow hash value is calculated by calculating a second hash function that projects the identification information of the flow onto the predetermined hash space as an argument. ,
A predetermined area in the hash space delimited by each calculated IF hash value is set as an assigned area of the predetermined IF hash value, and a flow corresponding to the flow hash value included in the assigned area is set as the predetermined IF hash Control that the interface of the distribution router corresponding to the value is responsible for distribution,
When newly adding the IF hash value to the predetermined hash space, the area in charge of the IF hash value to be added is an area obtained by dividing one of the areas in charge of the IF hash value,
When deleting the IF hash value from the predetermined hash space, it has a flow allocation processing unit that integrates the area in charge of the IF hash value to be deleted into another area in charge of the IF hash value. Multicast distribution system.
前記マルチキャスト配信システムに用いられる前記各配信ルータは、IF状態管理部と、フロー割当処理部とを有しており、
前記IF状態管理部は、前記共有セグメントに接続される前記配信ルータのインタフェースごとに、そのインタフェースの識別情報を引数として所定のハッシュ空間へと射影する第1ハッシュ関数を計算することで、IFハッシュ値を計算し、
前記フロー割当処理部は、
前記共有セグメントを介して前記配信ルータによる配信されるフローごとに、そのフローの識別情報を引数として前記所定のハッシュ空間へと射影する第2ハッシュ関数を計算することで、フローハッシュ値を計算し、
計算した各前記IFハッシュ値によって区切られるハッシュ空間内の所定領域を、所定の前記IFハッシュ値の担当領域とし、その担当領域に含まれる前記フローハッシュ値に該当するフローを、所定の前記IFハッシュ値に該当する前記配信ルータのインタフェースが配信を担当するように制御し、
前記所定のハッシュ空間に対して新たに前記IFハッシュ値を追加するときには、追加する前記IFハッシュ値の担当領域を、前記IFハッシュ値の担当領域の1つを分割した領域とし、
前記所定のハッシュ空間から前記IFハッシュ値を削除するときには、削除する前記IFハッシュ値の担当領域を、他の1つの前記IFハッシュ値の担当領域へ統合することを特徴とする
マルチキャスト配信方法。 A plurality of distribution routers for distributing a multicast flow to a host and one or more of the hosts are connected to a shared segment, and a packet transmitted to the shared segment includes the distribution router connected to the shared segment and the A multicast distribution method executed by a multicast distribution system that can be received by each host,
Each of the distribution routers used in the multicast distribution system has an IF state management unit and a flow allocation processing unit,
The IF state management unit calculates an IF hash for each interface of the distribution router connected to the shared segment by calculating a first hash function that projects the identification information of the interface onto a predetermined hash space as an argument. Calculate the value
The flow allocation processing unit
For each flow distributed by the distribution router via the shared segment, a flow hash value is calculated by calculating a second hash function that projects the identification information of the flow onto the predetermined hash space as an argument. ,
A predetermined area in the hash space delimited by each calculated IF hash value is set as an assigned area of the predetermined IF hash value, and a flow corresponding to the flow hash value included in the assigned area is set as the predetermined IF hash Control that the interface of the distribution router corresponding to the value is responsible for distribution,
When newly adding the IF hash value to the predetermined hash space, the area in charge of the IF hash value to be added is an area obtained by dividing one of the areas in charge of the IF hash value,
When deleting the IF hash value from the predetermined hash space, the area in charge of the IF hash value to be deleted is integrated into another area in charge of the IF hash value.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011266094A JP5613142B2 (en) | 2011-12-05 | 2011-12-05 | Distribution router, multicast distribution system, and multicast distribution method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011266094A JP5613142B2 (en) | 2011-12-05 | 2011-12-05 | Distribution router, multicast distribution system, and multicast distribution method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013118592A JP2013118592A (en) | 2013-06-13 |
JP5613142B2 true JP5613142B2 (en) | 2014-10-22 |
Family
ID=48712843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011266094A Expired - Fee Related JP5613142B2 (en) | 2011-12-05 | 2011-12-05 | Distribution router, multicast distribution system, and multicast distribution method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5613142B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5758858B2 (en) * | 2012-08-07 | 2015-08-05 | 日本電信電話株式会社 | Multicast delivery control method and delivery router |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5340062B2 (en) * | 2009-07-14 | 2013-11-13 | アラクサラネットワークス株式会社 | Network relay device and network system |
-
2011
- 2011-12-05 JP JP2011266094A patent/JP5613142B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013118592A (en) | 2013-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6607892B2 (en) | Multicast distributed by endpoints | |
US8185657B2 (en) | Data generating device | |
US9131014B2 (en) | Hitless pruning protocol upgrade on single supervisor network devices | |
US9019815B2 (en) | Source alive route injection | |
US7859992B2 (en) | Router redundancy in data communication networks | |
US7929420B2 (en) | Method and apparatus for learning VRRP backup routers | |
US9219640B2 (en) | Performing failover in a redundancy group | |
US20140075041A1 (en) | System and method for data stream mirroring | |
US20180278577A1 (en) | High availability bridging between layer 2 networks | |
WO2003003656A1 (en) | Method and system for auto discovery of ip-based network elements | |
US11171796B2 (en) | Managing multicast scaling | |
US11985027B2 (en) | Systems and methods for seamless failover in branch deployments by superimposing clustering solution on VRRP | |
TW202103475A (en) | Method for terminal device management, server and terminal device | |
JP5613142B2 (en) | Distribution router, multicast distribution system, and multicast distribution method | |
US6647430B1 (en) | Geographically separated totem rings | |
US10931572B2 (en) | Decentralized control plane | |
JP2009017344A (en) | Tcp session switching device and method, program, and recording medium | |
JP5572052B2 (en) | Multicast distribution system, distribution router, and multicast distribution method | |
JP5553425B2 (en) | Multicast distribution system, distribution router, and multicast distribution method | |
US10841040B2 (en) | Acknowledgment and packet retransmission for spliced streams | |
JP5486547B2 (en) | Multicast distribution system, distribution router, and multicast distribution method | |
JP2014082803A (en) | Communication method and switching hub device | |
JP5486555B2 (en) | Multicast delivery system, bandwidth management server, and multicast delivery method | |
JP2012134616A (en) | Network monitoring system and method for registering its monitoring target device | |
JP2019161257A (en) | Packet transfer device, packet transfer system, packet transfer program, and packet transfer method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140115 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20140502 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20140528 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140825 |
|
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: 20140902 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140905 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5613142 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |