(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024003368
(43)【公開日】2024-01-15
(54)【発明の名称】ルータ
(51)【国際特許分類】
H04L 45/24 20220101AFI20240105BHJP
【FI】
H04L45/24
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022102457
(22)【出願日】2022-06-27
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】小山 智史
(72)【発明者】
【氏名】倉掛 卓也
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA12
5K030HA08
5K030HD03
5K030JA11
5K030LB05
5K030LD06
(57)【要約】
【課題】マルチキャストトラフィックの無駄な転送を自動的に防ぐ機能を少ないメモリ量で実現する。
【解決手段】ルータ10は、複数の送受信部11と、ルータ処理部12と、マルチキャストグループへの参加要求または離脱要求を内容とするグループメッセージを監視し、受信メッセージに応じて、マルチキャストフローを受信するノードの情報を管理テーブル15に保存するIGMP監視部14と、グループメッセージを処理するIGMP処理部13と、を備え、IGMP監視部14は、マルチキャストグループ毎に、且つ、送受信部11毎に、最初に参加要求を内容とするグループメッセージを送信したノードの識別子と、マルチキャストグループ内に複数の受信ノードが存在するか否かを示す複数受信ノード存在フラグを管理テーブル15に保存し、グループメッセージの受信時に複数受信ノード存在フラグに応じてメッセージまたは転送停止指示をIGMP処理部13に出力する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ネットワークの所定のノードとの間でIPパケットを送受信する複数の送受信部と、
前記送受信部によって受信したマルチキャストフローをマルチキャストルーティングテーブルに応じて宛先の受信ノードに転送する処理を行うルータ処理部と、
前記送受信部によって受信したメッセージであってマルチキャストグループへの参加要求またはマルチキャストグループからの離脱要求を内容とするグループメッセージを監視し、受信したグループメッセージに応じて、マルチキャストフローを受信するノードの情報を管理テーブルに保存するグループメッセージ監視部と、
前記グループメッセージを処理するグループメッセージ処理部と、を備え、
前記グループメッセージ監視部は、マルチキャストグループ毎に、且つ、前記送受信部毎に、最初に参加要求を内容とするグループメッセージを送信したノードの識別子と、マルチキャストグループ内に複数の受信ノードが存在するか否かを示す複数受信ノード存在フラグを前記管理テーブルに保存し、前記グループメッセージの受信時に前記複数受信ノード存在フラグに応じて、前記グループメッセージまたはマルチキャストフローの転送停止指示を前記グループメッセージ処理部に出力することを特徴とするルータ。
【請求項2】
前記グループメッセージ監視部は、
前記送受信部によってマルチキャストグループへの参加要求を内容とするグループメッセージを受信したときに、
当該グループメッセージを送信したノードの情報に一致するエントリが前記管理テーブルに存在しない場合、前記管理テーブルにおいて、当該グループメッセージを送信したノードの識別子および前記複数受信ノード存在フラグを偽とした値を有する新しいエントリを追加し、
当該グループメッセージを送信したノードの情報に一致し、かつ、前記複数受信ノード存在フラグが偽であるエントリが前記管理テーブルに保存され、かつ保存されたエントリにおけるノードの識別子が当該グループメッセージを送信したノードの識別子と異なる場合、前記複数受信ノード存在フラグを真とすることを特徴とする請求項1に記載のルータ。
【請求項3】
前記グループメッセージ監視部は、
前記送受信部によってマルチキャストグループからの離脱要求を内容とするグループメッセージを受信したときに、
当該グループメッセージを送信したノードの情報に一致し、かつ、前記複数受信ノード存在フラグが偽であるエントリが前記管理テーブルに保存され、かつ保存されたエントリにおけるノードの識別子が当該グループメッセージを送信したノードの識別子に一致する場合、当該グループメッセージで指定されたマルチキャストグループの転送停止指示を前記グループメッセージ処理部に出力する、ことを特徴とする請求項2に記載のルータ。
【請求項4】
前記グループメッセージ処理部は、前記転送停止指示で指定されたマルチキャストグループのエントリを前記マルチキャストルーティングテーブルから削除する更新指示を前記ルータ処理部に出力し、
前記グループメッセージ監視部は、前記グループメッセージ処理部から、前記マルチキャストルーティングテーブルの更新通知を受領した後に、前記管理テーブルから、当該マルチキャストグループのエントリを削除する、ことを特徴とする請求項3に記載のルータ。
【請求項5】
前記グループメッセージは、IGMP(Internet Group Management Protocol)に従ったメッセージであることを特徴とする請求項1から請求項4のいずれか一項に記載のルータ。
【請求項6】
前記グループメッセージは、MLD (Multicast Listener Discovery)プロトコルに従ったメッセージであることを特徴とする請求項1から請求項4のいずれか一項に記載のルータ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ルータに係り、特に、IP(Internet Protocol)ネットワークのルータに関する。
【背景技術】
【0002】
IPマルチキャストは、ノード(送信装置)から送信された1つのIPフローをネットワークスイッチの内部で複製し、受信を要求するノード(受信装置)に効率よく配信する技術である。あるマルチキャストフローの受信を行うノード(受信装置)は、IPv4システムではIGMP(非特許文献1、2参照)を用いて、また、IPv6システムではMLD(非特許文献3、4参照)を用いて、ルータに受信要求および受信停止を伝える。
IGMPv2(IGMP Version 2)とMLDv1(MLD:MLD Version 1)、IGMPv3(IGMP Version 3)とMLDv2(MLD Version 2)は、それぞれ動作するプロトコルがIPv4(Internet Protocol version 4)とIPv6(Internet Protocol version 6)であるという違いの他は、ほぼ同一のため、以下ではIGMPを用いて、従来のルータによる処理の概略を説明する。
【0003】
マルチキャストフローを受信しようとする受信装置は、受信を開始するときに、IGMPメンバーシップレポート(JOINメッセージ)を受信装置からルータに向けて送信する。JOINメッセージを受信したルータは、要求されたマルチキャストフローを、JOINメッセージを受信したL2(layer 2)ネットワークへ転送する。
【0004】
ルータは、転送処理中のマルチキャストフローを受信する受信装置が存在しているか確認するため、定期的にIGMPメンバーシップクエリを送信する。このメンバーシップクエリを受信したノード(受信装置)は、メンバーシップレポートを送信して、ルータにマルチキャストフローの受信装置が存在していることを通知する。メンバーシップクエリがネットワークの帯域を圧迫することを抑制するため、他の受信装置がメンバーシップレポートを送信したことを検知した受信装置はメンバーシップレポートを送信しない。
【0005】
受信装置は、マルチキャストフローの受信を停止する際にはIGMPリーブグループメッセージを送信し、ルータに受信の停止を伝える。リーブグループメッセージを受信したルータは、他にマルチキャストフローの受信装置が存在するかチェックするため、IGMPメンバーシップクエリを送信し、IGMPメンバーシップレポートを受信できなかった場合、マルチキャストフローの転送を停止する。
【先行技術文献】
【特許文献】
【0006】
【非特許文献】
【0007】
【非特許文献1】W. Fenner、「Internet Group Management Protocol, Version 2」、[online]、IETF RFC 2236, Nov. 1997、[2022年5月19日検索]、インターネット〈URL:https://datatracker.ietf.org/doc/html/rfc2236〉
【非特許文献2】B. Cain、他、「Internet Group management Protocol, Version 3」、[online]、IETF RFC 3376, Oct. 2002、[2022年5月19日検索]、インターネット〈https://datatracker.ietf.org/doc/html/rfc3376〉
【非特許文献3】S. Deering、他、「Multicast Listener Discovery (MLD) for IPv6」、[online]、IETF RFC 2710, Oct. 1999、[2022年5月19日検索]、インターネット〈https://datatracker.ietf.org/doc/html/rfc2710〉
【非特許文献4】R. Vida、他、「Multicast Listener Discovery Version 2 (MLDv2) for IPv6」、[online]、IETF RFC 3810, Jun. 2004、[2022年5月19日検索]、インターネット〈https://datatracker.ietf.org/doc/html/rfc3810〉
【発明の概要】
【発明が解決しようとする課題】
【0008】
受信装置がマルチキャストフローの受信停止を要求してから、つまり、IGMPリーブグループメッセージを送信してから、ルータによりメンバーシップレポートの受信確認が完了するまでの間、他にマルチキャストフローの受信装置がない場合でもマルチキャストフローは転送され続ける。例えば、テレビ番組制作で、複数の映像を切り替えるビデオスイッチャ(ノード)が受信する映像を切り替える場合には、あるマルチキャストフローの受信停止と次のマルチキャストフローの受信開始(受信要求)とを連続して行う。そのため、停止したマルチキャストフローが実際には転送されるとネットワークに負荷がかかり、余裕を持った帯域設計が必要となる。
【0009】
予めルータに設定を行うことで、IGMPリーブグループメッセージを受信すると即座に、マルチキャストフローの転送を停止することができるルータも存在する。しかし、そのような設定を行うと、他にマルチキャストフローの受信装置が存在する場合にもマルチキャストフローの転送が停止されてしまう。予め設定するのではなく、その時の状況に応じて、マルチキャストフローの転送が即座に、または、他にマルチキャストフローの受信装置がないことを確認した上で停止されることが望ましい。
【0010】
特許文献1に記載された従来の中継装置は、IGMPメンバーシップレポートを受信すると、レポート送信元のMACアドレスと、受信を要求しているマルチキャストグループとを紐づけて記録を行う。また、この中継装置は、IGMPリーブグループメッセージを受信した場合には、受信停止を要求しているマルチキャストグループに紐づいたレポート送信元のMACアドレスが1つである場合には、転送を即座に停止する。
【0011】
しかしながら、この従来の中継装置は、IGMPメンバーシップレポートを送信してくるMACアドレスを全て記録する。この従来技術では、多くの受信装置が1つの同じマルチキャストグループでマルチキャストフローを受信することがあるため、多くのメモリが必要である。そのため、マルチキャストトラフィックの無駄な転送をより少ないメモリ量で実現することが望まれている。
【0012】
本発明は、以上のような問題点に鑑みてなされたものであり、マルチキャストトラフィックの無駄な転送を自動的に防ぐ機能を少ないメモリ量で実現するルータを提供することを課題とする。
【課題を解決するための手段】
【0013】
前記課題を解決するために、本発明に係るルータは、ネットワークの所定のノードとの間でIPパケットを送受信する複数の送受信部と、前記送受信部によって受信したマルチキャストフローをマルチキャストルーティングテーブルに応じて宛先の受信ノードに転送する処理を行うルータ処理部と、前記送受信部によって受信したメッセージであってマルチキャストグループへの参加要求またはマルチキャストグループからの離脱要求を内容とするグループメッセージを監視し、受信したグループメッセージに応じて、マルチキャストフローを受信するノードの情報を管理テーブルに保存するグループメッセージ監視部と、前記グループメッセージを処理するグループメッセージ処理部と、を備え、前記グループメッセージ監視部は、マルチキャストグループ毎に、且つ、前記送受信部毎に、最初に参加要求を内容とするグループメッセージを送信したノードの識別子と、マルチキャストグループ内に複数の受信ノードが存在するか否かを示す複数受信ノード存在フラグを前記管理テーブルに保存し、前記グループメッセージの受信時に前記複数受信ノード存在フラグに応じて、前記グループメッセージまたはマルチキャストフローの転送停止指示を前記グループメッセージ処理部に出力することとした。
【発明の効果】
【0014】
本発明は、以下に示す優れた効果を奏するものである。
本発明に係るルータは、マルチキャストグループに2回目以降に参加要求を内容とするグループメッセージを送信したノードについて管理テーブルに個別の情報を記録せずに、フラグで管理することができる。したがって、ルータは、マルチキャストトラフィックの無駄な転送を自動的に防ぐ機能を少ないメモリ量で実現することができる。
【図面の簡単な説明】
【0015】
【
図1】本発明の実施形態に係るルータの構成を示すブロック図である。
【
図2】
図1のルータに保存される管理テーブルの一例である。
【
図3】IGMP監視部の処理の流れを示すフローチャートである(IGMPメンバーシップレポート受信時)。
【
図4】IGMP監視部の処理の流れを示すフローチャートである(IGMPリーブグループメッセージ受信時)。
【
図5】ルータ内の各部で行う処理の流れを示すシーケンス図である(IGMPリーブグループメッセージ受信時)。
【
図6】本発明の実施形態に係るルータを含むシステムの構成例である。
【発明を実施するための形態】
【0016】
本発明の実施形態に係るルータについて図面を参照して説明する。本実施形態では、ルータが送受信するグループメッセージは、IGMP(Internet Group Management Protocol)に従ったメッセージであるものとして説明する。
図1に示すように、ルータ10は、複数の送受信部11と、ルータ処理部12と、IGMP処理部(グループメッセージ処理部)13と、IGMP監視部(グループメッセージ監視部)14と、を備えている。
送受信部11は、ネットワークの所定のノードとの間でIPパケットを送受信する。
ルータ処理部12は、送受信部11によって受信したマルチキャストフローをマルチキャストルーティングテーブルに応じて宛先の受信ノードに転送する処理を行う。
IGMP監視部14は、グループメッセージを監視し、受信したグループメッセージに応じて、マルチキャストフローを受信するノードの情報を管理テーブル15に保存する。IGMP処理部13は、受信したグループメッセージを処理する。グループメッセージは、送受信部11によって受信したメッセージであってマルチキャストグループへの参加要求またはマルチキャストグループからの離脱要求を内容とするものである。
IGMP監視部14は、マルチキャストグループ毎に、且つ、送受信部11毎に、最初に参加要求を内容とするグループメッセージを送信したノードの識別子と、マルチキャストグループ内に複数の受信ノードが存在するか否かを示す複数受信ノード存在フラグを管理テーブル15に保存する。IGMP監視部14は、グループメッセージの受信時に複数受信ノード存在フラグに応じて、当該グループメッセージまたはマルチキャストフローの転送停止指示をIGMP処理部13に出力する。
【0017】
本実施形態では、グループメッセージとは、IGMPメンバーシップレポートやIGMPリーブグループメッセージを指す。IGMPメンバーシップレポートやIGMPリーブグループメッセージをIGMPメッセージとも呼ぶ。複数受信ノード存在フラグを単にフラグと呼称する場合もある。マルチキャストルーティングテーブルを単にルーティングテーブルと呼称する場合もある。以下、ルータ10の各部の構成を説明する。
【0018】
送受信部11は、ルータのポートである。各送受信部11は、ルータ処理部12およびIGMP監視部14にそれぞれ接続されている。ルータ10は、例えばN個の送受信部11を備え、それぞれ、1,2,…,N-1,Nの番号で識別される。送受信部<1>にはノード20aが接続され、送受信部<2>にはL2スイッチ21を介してノード20bおよびノード20cが接続される。送受信部<N-1>にはノードが接続されておらず、送受信部<N>にはノード20Nが接続されている。ノードを区別しない場合、ノード20と表記する。
【0019】
所定の送受信部11は、ネットワークの所定のノード20からマルチキャストフローを受信する。ルータ10内部で複製されたマルチキャストフローは、複数の他の送受信部11から、ネットワークの他のノード20に送信される。例えばノード20aがIPフローの送信装置となり、ノード20b、ノード20cおよびノード20Nがマルチキャストフローの受信装置となる場合、送受信部<1>は、受信ポートとなり、送受信部<2>や送受信部<N>は送信ポートとなる。
【0020】
また、送受信部11は、ネットワークの所定のノード20から各種メッセージを受信する。各種メッセージは、IGMPメンバーシップレポートやIGMPリーブグループメッセージの他、クエリメッセージ等を含む。また、送受信部11は、IGMPメッセージを受信すると、IGMPメッセージをIGMP監視部14に出力する。送受信部11は、IGMPメッセージ以外のパケットを受信すると、これらのパケットをルータ処理部12に出力する。ルータ処理部12は、一般的なマルチキャスト対応ルータの機能を提供するものである。
【0021】
IGMP処理部13は、IGMPの処理とマルチキャストルーティングテーブルの更新制御を行う。IGMP処理部13は、IGMP監視部14からIGMPメンバーシップレポートメッセージを受信すると、IGMPメンバーシップレポートを処理する。このとき、IGMP処理部13は、必要に応じて、マルチキャストルーティングテーブルの更新制御を行う。
IGMP処理部13は、IGMP監視部14からIGMPリーブグループメッセージを受信すると、IGMPリーブグループメッセージを処理する。このとき、IGMP処理部13は、該当マルチキャストグループにIGMPメンバーシップクエリを送信し、一定時間内にIGMPメンバーシップレポートを受信できない場合にマルチキャストフローの転送を停止する。
IGMP処理部13は、IGMP監視部14から即時転送停止指示を受信すると、即座にマルチキャストフローの転送を停止する。
IGMP処理部13は、マルチキャストフローの転送を停止するとき、ルータ処理部12に対してマルチキャストルーティングテーブルの該当エントリの削除更新を指示する。
【0022】
IGMP処理部13は、IGMP監視部14から、マルチキャストの即時転送停止指示を受信すると、停止対象のマルチキャストグループに関する処理を中止する。IGMP処理部13は、この転送停止指示で指定されたマルチキャストグループのエントリをルーティングテーブルから削除する更新指示をルータ処理部12に出力する。ルータ処理部12がマルチキャストルーティングテーブルからエントリの削除を行った場合、すなわち、マルチキャストの転送を停止する更新を行った場合、IGMP処理部13は、その内容をIGMP監視部14に出力する。IGMP監視部14は、IGMP処理部13から、ルーティングテーブルの更新通知を受領した後に、管理テーブル15から、当該マルチキャストグループのエントリを削除する。
【0023】
IGMP監視部14は、IGMPメンバーシップレポートの受信やIGMPリーブグループメッセージの受信に応じて、管理テーブル15を更新する。
図2に示す管理テーブル15は、マルチキャスト受信ノード管理テーブルである。管理テーブル15は、項目として、例えば、送受信部番号151と、マルチキャストグループ152と、送信元IPアドレス153と、ノード識別子154と、複数受信ノード存在フラグ155と、を備えている。
【0024】
送受信部番号151は、ルータ10の複数の送受信部11を識別する識別子である。ここでは、送受信部11の個数に対応した番号で識別しているが、これに限定されるものではない。マルチキャストグループ152は、グループ固有の識別子であり、IPマルチキャストグループアドレスを示す。送信元IPアドレス153は、IPパケット(マルチキャストフロー)の送信装置の識別子であり、送信装置のIPアドレスである。ノード識別子154は、IGMPメッセージを送信したノードの識別子である。ノード識別子として、例えば、IGMPメンバーシップレポートの送信元MACアドレス、または、送信元IPアドレスが利用できる。管理テーブル15においてノード識別子154の項目については、送受信部毎に、かつ、マルチキャストグループ毎に、最初にJOINメッセージを送信してきたノードの識別子が記録される。
【0025】
複数受信ノード存在フラグ155は、同じ送受信部11に接続されたノードを含むマルチキャストグループに、複数の受信ノードが存在していれば真であり、そうでなければ偽となる。例えば、送受信部番号が「1」であり、かつ、マルチキャストグループが「232.0.0.1」である第1のエントリにおいて、複数受信ノード存在フラグ155は「真」である。また、送受信部番号が「2」であり、かつ、マルチキャストグループが「232.0.0.1」である第2のエントリにおいて、複数受信ノード存在フラグ155は「偽」である。これら第1のエントリと第2のエントリとは、マルチキャストグループ152のレコードは同一であるが、送信元IPアドレス153およびノード識別子154のレコードが相違する。
なお、
図2に示す管理テーブル15のレコードは、ある時点における一例である。
【0026】
IGMP監視部14は、IGMPメンバーシップレポートを送信したノードの情報に一致するエントリが管理テーブル15に存在しない場合、管理テーブル15において、当該IGMPメンバーシップレポートを送信したノードの識別子とフラグを偽とした値を有する新しいエントリを追加する。
IGMP監視部14は、IGMPメンバーシップレポートを送信したノードの情報に一致し、かつ、フラグが偽であるエントリが管理テーブル15に保存され、かつ保存されたエントリにおけるノードの識別子がIGMPメンバーシップレポートを送信したノードの識別子と異なる場合、フラグを真とする。IGMP監視部14は、フラグのレコードが偽であった場合、真に置き換え、また、フラグのレコードが真であった場合、その値を維持する。
【0027】
IGMP監視部14は、IGMPリーブグループメッセージを送信したノードの情報に一致するエントリが管理テーブル15に存在しない場合、IGMPリーブグループメッセージで指定されたマルチキャストグループの転送停止指示をIGMP処理部13に出力する。
【0028】
IGMP監視部14は、IGMPリーブグループメッセージを送信したノードの情報に一致し、かつ、フラグが偽であるエントリが管理テーブル15に保存され、かつ保存されたエントリにおけるノードの識別子がIGMPリーブグループメッセージを送信したノードの識別子に一致する場合、IGMPリーブグループメッセージで指定されたマルチキャストグループの転送停止指示をIGMP処理部13に出力する。
【0029】
上記した構成により、ルータ10は、予め設定を行うことなく、ネットワークの状態に合わせて、あるマルチキャストフローの受信ノードが1つの場合に、受信ノードが受信を停止する際に即座に当該ルータからの転送を停止し無駄な帯域を消費することを防ぐことができる。また、ルータ10は、ポート(送受信部11)ごとに、各マルチキャストグループについて、最初にJOINメッセージ(IGMPメンバーシップレポート)を送信してきたデバイスの情報と、そのデバイス以外の受信装置からのJOINメッセージを受信したかどうかを表すフラグ(複数受信装置存在フラグ)を記録する管理テーブル15を有している。これにより、多くの受信装置が1つの同じマルチキャストグループでマルチキャストフローを受信することがあったとしても、従来技術のように多くのメモリを必要とすることはない。そのため、ルータ10は、マルチキャストトラフィックの無駄な転送をより少ないメモリ量で実現することができる。
【0030】
[ルータの動作]
次に、ルータ10の動作について説明する。
<IGMPメンバーシップレポート受信時の処理>
まず、IGMPメンバーシップレポートを受信したときにIGMP監視部14が行う処理の流れについて
図3を参照して説明する。この場合、IGMP監視部14は、送受信部番号と、IGMPメンバーシップレポート内のマルチキャストグループアドレスおよびマルチキャスト送信元IPアドレスと、に一致するエントリが、管理テーブル15に存在するかどうかを確認する(ステップS31)。ここで、IGMPメンバーシップレポートに、マルチキャスト送信元IPアドレスが指定されていない場合、マルチキャスト送信元IPアドレスが指定されていないことを示す値(例えば0)を用いる。
【0031】
前記ステップS31において、IGMPメンバーシップレポートの情報に一致するエントリが管理テーブル15に存在しない場合(ステップS31:No)、IGMP監視部14は、新しいエントリを管理テーブル15に追加する(ステップS32)。新しいエントリは、確認に用いた送受信部番号、マルチキャストグループアドレス、マルチキャスト送信元IPアドレス、IGMPメンバーシップレポートを送信したノードのノード識別子、複数受信ノード存在フラグを偽とした値によるエントリである。
【0032】
具体的には、
図2の管理テーブル15において、送受信部番号=1、マルチキャストグループアドレス=239.1.1.1、マルチキャスト送信元IPアドレス=0(なし)、IGMPメンバーシップレポートを送信したノードのノード識別子=00:00:5e:00:53:ff、複数受信ノード存在フラグ=偽、とした値によるエントリは、ステップS32で追加された例である。
【0033】
ステップS32に続いて、IGMP監視部14は、受信したIGMPメンバーシップレポートをIGMP処理部13に出力し(ステップS33)、IGMPメンバーシップレポート受信時の処理を終了する。なお、IGMP処理部13は、受け取ったIGMPメンバーシップレポートを処理する。
【0034】
一方、前記ステップS31において、一致するエントリが存在し(ステップS31:Yes)かつ、複数受信ノード存在フラグが偽である場合(ステップS34:Yes)、IGMP監視部14は、対象エントリのノード識別子がIGMPメンバーシップレポートの送信ノードのノード識別子と異なるか否か判別する(ステップS35)。ここで、対象エントリのノード識別子とは、当該送受信部番号かつ当該マルチキャストグループに最初にJOINメッセージを送信してきたデバイスのノード識別子である。ノード識別子が互いに異なる場合(ステップS35:Yes)、IGMP監視部14は、対象エントリの複数受信ノード存在フラグを真として(ステップS36)、ステップS33に進む。なお、ステップS36では、IGMP監視部14は、対象エントリの複数受信ノード存在フラグのレコードを偽から真に置き換える。
【0035】
前記ステップS35の判別処理においてNoである場合、すなわち、対象エントリのノード識別子がIGMPメンバーシップレポートの送信ノードのノード識別子に一致する場合、IGMP監視部14は、ステップS33に進む。なお、この場合、IGMP監視部14は、対象エントリの複数受信ノード存在フラグのレコードが偽であるので、その値を維持する。
前記ステップS34の判別処理においてNoである場合、すなわち、IGMPメンバーシップレポートの情報に一致するエントリが管理テーブル15に存在し、その複数受信ノード存在フラグが真である場合、IGMP監視部14は、ステップS33に進む。なお、この場合、IGMP監視部14は、対象エントリの複数受信ノード存在フラグのレコードが真であるので、その値を維持する。
【0036】
<IGMPリーブグループメッセージ受信時の処理>
次に、IGMPリーブグループメッセージを受信したときにIGMP監視部14が行う処理の流れについて
図4を参照して説明する。この場合、IGMP監視部14は、送受信部番号と、IGMPリーブグループメッセージ内のマルチキャストグループアドレスおよびマルチキャスト送信元IPアドレスと、に一致するエントリが、管理テーブル15に存在するかどうかを確認する(ステップS41)。IGMPリーブグループメッセージの情報に一致するエントリが管理テーブル15に存在しない場合(ステップS41:No)、IGMP監視部14は、マルチキャストグループアドレスで指定されたマルチキャストグループの即時転送停止指示をIGMP処理部13に出力し(ステップS42)、IGMPリーブグループメッセージ受信時の処理を終了する。なお、即時転送停止指示を受けたIGMP処理部13の処理については後記する。
【0037】
前記ステップS41において、IGMPリーブグループメッセージの情報に一致するエントリが管理テーブル15に存在する場合(ステップS41:Yes)、IGMP監視部14は、対象エントリの複数受信ノード存在フラグが偽であるか否かを判別する(ステップS43)。複数受信ノード存在フラグが偽である場合(ステップS43:Yes)、IGMP監視部14は、対象エントリのノード識別子がIGMPリーブグループメッセージの送信ノードのノード識別子と異なるか否か判別する(ステップS44)。ここで、対象エントリのノード識別子とは、当該送受信部番号かつ当該マルチキャストグループに最初にJOINメッセージを送信してきたデバイスのノード識別子である。
【0038】
前記ステップS44において、ノード識別子が一致した場合(ステップS44:No)、IGMP監視部14は、ステップS42に進み、マルチキャストグループアドレスで指定されたマルチキャストグループの即時転送停止指示をIGMP処理部13に出力する。
一方、前記ステップS44において、ノード識別子が互いに異なる場合(ステップS44:Yes)、IGMP監視部14は、IGMPリーブグループメッセージをIGMP処理部13に出力し(ステップS45)、IGMPリーブグループメッセージの処理をIGMP処理部13に任せる。IGMP処理部13は、IGMPリーブグループメッセージを従来と同様に処理する。
また、前記ステップS43の判別処理においてNoである場合、すなわち、IGMPリーブグループメッセージの情報に一致するエントリが管理テーブル15に存在し、かつ、その複数受信ノード存在フラグが真である場合、IGMP監視部14は、IGMPリーブグループメッセージをIGMP処理部13に出力し(ステップS45)、IGMPリーブグループメッセージの処理をIGMP処理部13に任せる。なお、このように対象エントリの複数受信ノード存在フラグのレコードが真である場合、IGMP処理部13は、IGMPリーブグループメッセージを従来と同様に処理する。
【0039】
<即時転送停止の処理>
次に、即時転送停止を行うときにルータ10内の各部で行う処理の流れについて
図5を参照(適宜
図4参照)して説明する。この場合、まず、IGMP監視部14が、マルチキャストの即時転送停止指示をIGMP処理部13に出力する(ステップS42:
図4)。そして、IGMP処理部13は、マルチキャストの即時転送停止指示を受信すると(ステップS421)、停止対象のマルチキャストグループに関する処理を中止する(ステップS422)。そして、IGMP処理部13は、ルータ処理部12に対して、ルーティングテーブルから該当のエントリを削除する更新指示を出力する(ステップS423)。
【0040】
ルータ処理部12は、ルーティングテーブルからエントリを削除する更新指示を受信すると(ステップS424)、ルーティングテーブルから、該当のエントリを削除する(ステップS425)。一方、IGMP処理部13は、IGMP監視部14に対して、ルーティングテーブルの更新通知を出力する(ステップS426)。そして、IGMP監視部14は、ルーティングテーブルの更新通知を受信すると(ステップS427)、管理テーブル15からマルチキャストグループのエントリを削除する(ステップS428)。このように、ルータ10では、ルータ処理部12がルーティングテーブルにおいてマルチキャストの即時転送停止の対象エントリを削除するのにあわせて、IGMP監視部14は、管理テーブル15においてマルチキャストの即時転送停止の対象エントリを削除する。
【0041】
[システムの構成例]
次に、ルータを含むシステムの構成例について
図6を参照して説明する。
図6に示すように、システム100は、IPマルチキャストを用いる番組制作システムであって、例えば放送局のスタジオ内に、2台のルータ10a,10bと、10台のノード20と、を備えている。ルータ10aは、ルータ1であり、ルータ10bは、ルータ2である。
【0042】
ルータ10aは、例えば3個の送受信部(ポート)を備えている。このうち、1個の送受信部には、L2スイッチ21aを介して3つのノード(ノード20a、ノード20cおよびノード20eが通信可能に接続されている。また、ルータ10aの他の送受信部には、L2スイッチ21bを介して3つのノード(ノード20b、ノード20dおよびノード20f)が通信可能に接続されている。ノード20aは、カメラ1であり、ノード20bは、カメラ2である。ノード20cは、マイク1であり、ノード20dは、マイク2である。ノード20eは、モニタ1であり、ノード20fは、モニタ2である。
【0043】
ルータ10bは、例えば5個の送受信部(ポート)を備えている。このうち、4個の送受信部には、それぞれ、1つのノード(ノード20g、ノード20h、ノード20kおよびノード20m)が通信可能に接続されている。ノード20gは、ビデオスイッチャであり、ノード20hは、オーディオミキサである。ノード20kは、モニタ3であり、ノード20mは、モニタ4である。ルータ10aのもう1つの送受信部と、ルータ10bのもう1つの送受信部とは、通信可能に接続されている。
【0044】
システム100において、例えば、ノード20a(送信装置)から送信された1つのIPフローを、5台の受信ノード(ノード20e,20f,20g,20k,20m)に配信する場合について説明する。この例では、カメラ1で撮影した映像を、ビデオスイッチャと、モニタ1~モニタ4に配信する。比較として、ユニキャストにより映像を伝送するには、受信装置それぞれに対し、カメラ1で映像信号を複製して伝送する必要があるため、5本分の映像信号がカメラ1から出力されることになる。
【0045】
一方、IPマルチキャストを用いる場合、映像信号はルータ10で複製される。具体的には、カメラ1から、1本分の映像信号が出力され、ルータ1では、モニタ1、モニタ2、ルータ2に伝送するために映像信号が複製される。ルータ1は、第1の送受信部から映像信号をL2スイッチ21aを介してモニタ1に伝送し、また、第2の送受信部から映像信号をL2スイッチ21bを介してモニタ2に伝送する。また、ルータ1の第3の送受信部から、1本分の映像信号が出力され、ルータ2に伝送される。
さらに、ルータ2では、モニタ3、モニタ4、ビデオスイッチャに伝送するために再び映像信号が複製される。番組制作システムでは、多数のモニタが、同じ信号を受信することがよくあるため、マルチキャストを利用することが一般的である。
【0046】
本実施形態のルータ10は、この例ではノード20a(カメラ1)のIPアドレスを、
図2の管理テーブル15の送信元IPアドレス153の項目に記録する。また、ルータ10は、5台の受信ノード(ノード20e,20f,20g,20k,20m)のうち、最初にJOINメッセージ(IGMPメンバーシップレポート)を送信してきたデバイスの情報を、管理テーブル15のノード識別子154の項目に記録する。ルータ10は、この記録時点では、複数受信ノード存在フラグ155の項目を、「偽」とする。ルータ10は、次にJOINメッセージを送信してきたデバイスの情報を、管理テーブル15の新たなエントリにすることなく、複数受信ノード存在フラグ155の項目を、「真」とする。ルータ10は、3番目にJOINメッセージを送信してきたデバイスの情報を、管理テーブル15の新たなエントリにすることなく、複数受信ノード存在フラグ155の項目を、「真」のまま維持する。ルータ10は、4番目および5番目にJOINメッセージを送信してきたデバイスについては、3番目のデバイスのときと同様の処理をする。
なお、各デバイス(ノード)がマルチキャストグループから離脱する順番は任意である。グループ離脱時、ルータ10は、管理テーブル15のエントリにおいて複数受信ノード存在フラグが真となった段階で、そのエントリで示すマルチキャストグループについて、通常の処理を実行するようになる。ここで、通常の処理とは、IGMPリーブグループメッセージを受け取ると、受信確認を行ってから転送を終了する処理である。
【0047】
従来技術の中継装置を用いた場合、メモリには、5台の受信ノードのために例えば5行のエントリデータが記録されるが、本実施形態のルータ10の場合、メモリには、5台の受信ノードのために例えば1行のエントリデータが記録される。そのため、ルータ10は、マルチキャストトラフィックの無駄な転送をより少ないメモリ量で実現することができる。
【0048】
以上、本発明の実施形態に係るルータについて説明したが、本発明の趣旨はこれらの記載に限定されるものではなく、特許請求の範囲の記載に基づいて広く解釈されなければならない。また、これらの記載に基づいて種々変更、改変などしたものも本発明の趣旨に含まれることはいうまでもない。
例えば、ルータ10を含むシステム100のネットワークは、放送局のスタジオ内のネットワークに限らず、放送局内のネットワークや、放送局を超えたより広範なネットワークであってもよい。
【0049】
また、グループメッセージは、IGMPに従うとして説明したが、MLD(Multicast Listener Discovery)プロトコルに従ったメッセージであってもよい。
【符号の説明】
【0050】
10,10a,10b ルータ
11 送受信部
12 ルータ処理部
13 IGMP処理部(グループメッセージ処理部)
14 IGMP監視部(グループメッセージ監視部)
15 管理テーブル
20,20a,20b,20c,20d,20e,20f ノード
20g,20h,20k,20m ノード
21,21a,21b L2スイッチ
100 システム