(57)【特許請求の範囲】
【請求項１】
（Ａ）下流側の通信装置が各々接続される複数の下流側ポートと上流側の通信装置に接続される上流側ポートとを備え、各ポートを介して受信したフレームの転送制御をそのフレームの送信先アドレスに基づいて行う１または複数のスイッチングハブと、前記１または複数のスイッチングハブの上流に位置するルータと、を含み、
（Ｂ）前記１または複数のスイッチングハブの各々は、前記複数の下流側ポートの各々について、その下流側ポートにより受信したフレームに内包されているパケットがマルチキャスト通信を実現するための所定の通信プロトコルにしたがって送信されたものであるか否かをそのパケットのヘッダ部を参照して判定し、当該通信プロトコルにしたがって送信されたものであると判定した場合には、当該下流側ポートを示すポート識別子を前記ルータへ通知する第１の処理と、前記ルータからの指示にしたがって下流側ポートの開閉を行う第２の処理とを実行し、
（Ｃ）前記ルータは、前記１または複数のスイッチングハブの何れかからポート識別子を通知された場合に、その通知元であるスイッチングハブにより当該ルータへ中継されたパケットがマルチキャストグループへの参加を前記通信プロトコルにしたがって通知するためのものであるか否かを、当該パケットのペイロード部を参照して判定し、マルチキャストグループへの参加を通知するためのものであると判定した場合には、当該ポート識別子の通知元のスイッチングハブに対して、当該ポート識別子の示す下流側ポートのみを当該マルチキャストグループに対して開放することを指示する
ことを特徴とする通信システム。
【請求項２】
前記１または複数のスイッチングハブの各々は、前記第１の処理において、マルチキャスト通信を実現するための所定の通信プロトコルにしたがって送信されたパケットを内包したフレームのヘッダ部の所定の領域に当該フレームを受信したポートのポート識別子と自身の通信アドレスとを追記して前記ルータへ転送することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記１または複数のスイッチングハブの各々は、前記第１の処理において、マルチキャスト通信を実現するための所定の通信プロトコルにしたがって送信されたパケットを内包したフレームを受信したポートのポート識別子とともに当該パケットの送信元の通信アドレスを前記ルータへ通知することを特徴とする請求項１または２に記載の通信システム。
【請求項４】
前記１または複数のスイッチングハブのうち、下流側に他のスイッチングハブが接続さていないスイッチングハブに、前記第１および第２の処理を実行させることを特徴とする請求項１〜３の何れか１項に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの中継技術に関し、特に、マルチキャストされるデータの中継技術に関する。
【背景技術】
【０００２】
通信システムを構築するために用いられる中継装置の一例として、ルータやスイッチングハブが挙げられる。ルータとは、ＯＳＩ参照モデルの第１層（物理層）から第３層（ネットワーク層）までの接続を行う中継装置であり、インターネットなどのＩＰ（Internet Protocol）網を介して他のルータとデータの送受信を行う役割を担う。一方、スイッチングハブとは、第１層から第２層（データリンク層）までの接続を行う中継装置であって、データ通信の終端に位置する通信端末（例えば、パーソナルコンピュータなど）を通信網に収容する役割を担う。ここで、第ｎ層の接続を行うとは、第ｎ層の通信プロトコルにしたがってデータの転送制御を行うことをいう。
【０００３】
例えば、第２層のデータブロックであるフレームのヘッダ部には、そのフレームの送信元および送信先の通信装置（中継装置や通信端末）のハードウェアアドレスであるＭＡＣ（Media Access Control）アドレスがそのフレームの送信元アドレスおよび送信先アドレスとして書き込まれ、そのペイロード部には第３層のデータブロックであるパケットが書き込まれる。そして、パケットのヘッダ部には、第３層においてその送信元および送信先を識別するための通信アドレスであるＩＰアドレスがそのパケットの送信元アドレスおよび送信先アドレスとして書き込まれる。ルータやスイッチングハブでは、受信したデータブロックのヘッダ部に書き込まれている送信先アドレスに基づいてそのデータブロックの転送制御が行われる。以下、図８を参照しつつ、ルータやスイッチングハブが行うデータブロックの転送制御について説明する。
【０００４】
図８は、ルータおよびスイッチングハブを含む通信システムの一例を示す図である。図８に示す通信システムでは、送信装置１０から受信装置４０−ｋ（ｋ＝１〜４）へのデータの送信が行われる。なお、図８では詳細な図示は省略したが、ルータ２０と送信装置１０との間には、ルータ２０が接続されているＩＰ網と、このＩＰ網と送信装置１０とを接続する他のルータが存在する。ルータ２０にはスイッチングハブ３０が接続されており、スイッチングハブ３０には送信装置１０から送信されるデータを受信する通信端末（受信装置４０−１〜４０−４）が接続されている。
【０００５】
図８のルータ２０は、送信装置１０から受信装置４０−１へ宛てて送信されたパケットを内包したフレーム（当該パケットがペイロード部に書き込まれているフレーム）を受信すると、そのパケットのヘッダ部を参照し、その送信先ＩＰアドレスが自装置の配下の通信端末に割り当てられているＩＰアドレスである場合には、当該フレームをスイッチングハブ３０へと転送する。逆に、受信したフレームに内包されているパケットが配下の通信端末へ宛てて送信されたものではない場合には、ルータ２０は、ルーティングテーブルの格納内容にしたがって当該フレームを他のルータへと転送する。
【０００６】
図８のスイッチングハブ３０は、各々他の通信装置（ルータや他のスイッチングハブ、通信端末）に接続される複数のポートを有しており、これら複数のポートの各々に対応付けてそのポートの接続先の通信装置のＭＡＣアドレスを記憶している。そして、スイッチングハブ３０は、何れかのポートを介してフレームを受信すると、そのフレームのヘッダ部に書き込まれている送信先ＭＡＣアドレスを参照し、当該フレームをその送信先ＭＡＣアドレスに対応するポートへと出力するのである。なお、以下では、スイッチングハブが有する複数のポートのうち、ルータに接続されているポート（或いは、他のスイッチングハブを介してルータに接続されているポート）を「上流側ポート」と呼び、その他のポート（図８では、受信装置４０−ｋが接続されているポート）を「下流側ポート」と呼ぶ。
【０００７】
このように、スイッチングハブは、各ポートに対応付けたＭＡＣアドレスと受信したフレームの送信先ＭＡＣアドレスとに基づいてフレームの転送制御を行う。このため、ＩＰマルチキャストされたパケットを内包したフレームを上流側から受信した場合に、当該スイッチングハブの下流側に無駄なデータストリームを発生させてしまう、といった不具合がある。その理由は、以下の通りである。ＩＰマルチキャストとは、特定の通信端末に宛ててパケットを送信するのではなく、そのパケットの受信を表明した通信端末のグループ（マルチキャストグループ）に宛ててパケットを送信する態様である。ＩＰマルチキャストにおいては、パケットの送信先アドレスはマルチキャストグループに割り当てられたＩＰアドレスとなる。同様に、ＩＰマルチキャストされたパケットを内包したフレームの送信先ＭＡＣアドレスも、特定の通信端末のＭＡＣアドレスではなく、マルチキャストグループのＩＰアドレスから生成されるマルチキャストＭＡＣアドレスが用いられる。
【０００８】
マルチキャストＭＡＣアドレスはマルチキャストグループのＩＰアドレスから生成されるものであるから、スイッチングハブの各ポートに対応付けられているＭＡＣアドレスの何れとも一致しない。このように、各ポートに対応付けられているＭＡＣアドレスの何れにも一致しない送信先ＭＡＣアドレスを有するフレームを受信した場合、スイッチングハブでは、当該フレームを全ての下流側ポートへ送出する処理（フラッディング）が実行される。例えば、図８に示す通信システムにおいて、送信装置１０があるマルチキャストグループ宛てにパケットを送信しており、受信装置４０−１のみがそのマルチキャストグループに参加している場合であっても、スイッチングハブ３０においてフラッディングが行われるため、受信装置４０−２〜４０−４に対しても上記マルチキャストグループ宛のパケットを内包したフレームの転送が行われる。受信装置４０−２〜４０−４は、マルチキャストグループには参加していないのであるから、これらに対する当該フレームの転送は無駄なデータストリームに他ならない。これが、ＩＰマルチキャストされたパケットを内包したフレームを受信した場合にスイッチングハブの下流で無駄なデータストリームが発生する理由である。
【０００９】
このような不具合の発生を回避するための技術が従来より種々提案されており、その一例としてはＩＧＭＰ（Internet Group Management Protocol）スヌーピングが挙げられる。ここで、ＩＧＭＰとは、マルチキャスト通信を実現するための通信プロトコルの１つであって、マルチキャストグループへの参加を通信端末からルータに通知するための通信プロトコルである。ルータは、ＩＧＭＰにしたがって配下の通信端末からマルチキャストグループへの参加を通知されると、自装置の配下にマルチキャストグループに参加する通信端末があることを示す情報を記憶する処理（以下、参加管理処理と呼ぶ。また、マルチキャストグループからの離脱通知に応じて当該情報を削除する処理と合わせて、参加／離脱管理処理と呼ぶ）を行い、以後、上流側からそのマルチキャストグループ宛に送信されてくるパケットの下流側への転送を開始する。スヌーピングとは、「覗き見する」という意味であり、ＩＧＭＰスヌーピング機能を備えたスイッチングハブは、下流側ポートにより受信したフレームに内包されているパケットのペイロード部を参照し、そのパケットがマルチキャストグループへの参加をルータに通知するためのパケット（ＩＧＭＰＪｏｉｎ）であれば、そのマルチキャストグループを示す識別子（例えば、マルチキャストＭＡＣアドレス：以下、マルチキャストグループ識別子）を当該ポートに対応付けて記憶する。そして、上流側から転送されてくるフレームの送信先ＭＡＣアドレスが上記マルチキャストグループ識別子に一致する場合には、当該マルチキャストグループ識別子を対応付けた下流側ポートへのみそのフレームを送出し、他の下流側ポートには当該フレームを送出しないようにするのである。これにより、無駄なデータストリームの発生が回避されるのである。なお、ＩＧＭＰスヌーピング機能を有するスイッチングハブに関する先行技術文献としては、特許文献１が挙げられる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００７−２８８５４４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ところで、近年では、環境問題への意識の高まりに起因して電子機器の消費電力をその機能に応じた最低限の値に抑えることが大きな課題となっており、所謂省エネ法などにより消費電力に法規制が課されている場合もある。スイッチングハブなどの通信装置についても、このような風潮は例外ではない（「エネルギー使用の合理化に関する法律施行令 第２１条特定機器」参照）。前述したように、無駄なデータストリームが発生しないようにするにはスイッチングハブにＩＧＭＰスヌーピング機能を実装する必要があるが、ＩＧＭＰスヌーピング機能を実装する場合には、その機能を実装しない場合よりも高い処理能力が必要となり、自ずから消費電力が上昇してしまう。
本発明は上記課題に鑑みて為されたものであり、スイッチングハブにおける電力消費を抑えつつ、無駄なデータストリームが発生しないようにすることを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために本発明は、（Ａ）下流側の通信装置が各々接続される複数の下流側ポートと上流側の通信装置に接続される上流側ポートとを備え、各ポートを介して受信したフレームの転送制御をそのフレームの送信先アドレスに基づいて行う１または複数のスイッチングハブと、前記１または複数のスイッチングハブの上流に位置するルータと、を含み、（Ｂ）前記１または複数のスイッチングハブの各々は、前記複数の下流側ポートの各々について、その下流側ポートにより受信したフレームに内包されているパケットがマルチキャスト通信を実現するための所定の通信プロトコルにしたがって送信されたものであるか否かをそのパケットのヘッダ部を参照して判定し、当該通信プロトコルにしたがって送信されたものであると判定した場合には、当該下流側ポートを示すポート識別子を前記ルータへ通知する第１の処理と、前記ルータからの指示にしたがって下流側ポートの開閉を行う第２の処理とを実行し、（Ｃ）前記ルータは、前記１または複数のスイッチングハブの何れかからポート識別子を通知された場合に、その通知元であるスイッチングハブにより当該ルータへ中継されたパケットがマルチキャストグループへの参加を前記通信プロトコルにしたがって通知するためのものであるか否かを、当該パケットのペイロード部を参照して判定し、マルチキャストグループへの参加を通知するためのものであると判定した場合には、当該ポート識別子の通知元のスイッチグハブに対して、当該ポート識別子の示す下流側ポートのみを当該マルチキャストグループに対して開放することを指示することを特徴とする通信システム、を提供する。
【００１３】
従来のＩＧＭＰスヌーピング機能を備えたスイッチングハブにおいては、パケットのペイロード部を参照してＩＧＭＰＪｏｉｎであるか否かを判定する処理が行われていたのであるが、本通信システムに含まれるスイッチングハブにおいてはパケットのヘッダ部を参照している。パケットのヘッダ部を参照する処理は、パケットのペイロード部を参照する処理に比較して処理負荷が低い。このため、上記通信システムに含まれるスイッチングハブは、ＩＧＭＰ機能を備えた従来のスイッチングハブよりも処理能力の低いもので充分であり、その消費電力を抑えることができる。なお、パケットのペイロード部を参照してＩＧＭＰＪｏｉｎであるか否かを判定する処理はルータで行われ、ルータは、この判定結果に応じてスイッチングハブに下流側ポートの開閉を指示する。スイッチングハブでは、ルータからの指示に応じて下流側ポートの開閉が行われるため、スイッチングハブの下流側に無駄なデータストリームが発生することはない。
【００１４】
また、上記課題を解決するために、本発明は、（Ａ）１または複数の他のスイッチグハブを介してルータとの間で、または他のスイッチングハブを介さずにルータとの間でフレームを送受信するための上流側ポートを備えるとともに、下流側の通信装置との間でフレームを送受信するための下流側ポートを複数備え、各ポートを介して受信したフレームの転送制御をそのフレームの送信先アドレスに基づいて行うスイッチングハブにおいて、（Ｂ）前記複数の下流側ポートの各々について、その下流側ポートを介して受信したフレームに内包されているパケットがマルチキャスト通信を実現するための所定の通信プロトコルにしたがって送信されたものであるか否かをそのパケットのヘッダ部を参照して判定し、前記通信プロトコルにしたがって送信されたものであると判定した場合には、当該下流側ポートを示すポート識別子を前記ルータへ通知する通知手段と、（Ｃ）前記ルータからの指示にしたがって下流側ポートの開閉を行うポート開閉制御手段とを有することを特徴とするスイッチングハブを提供する。なお、本発明の別の態様においては、コンピュータを上記通知手段およびポート開閉制御手段として機能させるプログラムを提供することが考えられる。
【００１５】
また、上記課題を解決するために、本発明は、（Ａ）１または複数のスイッチングハブを介して受信したパケットを他のルータへ転送する一方、当該他のルータから受信したパケットを前記１または複数のスイッチングハブを介してその宛先へ転送するルータにおいて、（Ｂ）前記１または複数のスイッチングハブの何れかから、マルチキャスト通信を実現するために所定の通信プロトコルにしたがって送信されたパケットを受信したことを示す通知であって、当該パケットを受信したポートを示すポート識別子を知らせる旨の通知を受信した場合に、当該パケットがマルチキャストグループへの参加を前記通信プロトコルにしたがって当該ルータへ通知するために送信されたものであるか否かを、当該パケットのペイロード部を参照して判定する判定手段と、（Ｃ）マルチキャストグループへの参加を通知するためのものであると前記判定手段により判定された場合には、前記ポート識別子の通知を行ったスイッチングハブに対して、当該ポート識別子の示すポートのみを当該マルチキャストグループに対して開放することを指示するポート開閉指示手段とを有することを特徴とするルータを提供する。なお、本発明の別の態様においては、コンピュータを上記判定手段およびポート開閉指示手段として機能させるプログラムを提供することが考えられる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１実施形態の通信システム１Ａの構成例を示す図である。
【図２】同通信システム１Ａに含まれるスイッチングハブ５０の構成例を示すブロック図である。
【図３】同スイッチングハブ５０のスイッチングエンジン部５２０が実行するＩＧＭＰパケット判定処理の流れを示すフローチャートである。
【図４】同通信システム１Ａに含まれるルータ６０の構成例を示すブロック図である。
【図５】同ルータ６０のルーティングエンジン部６２０が実行するスイッチングハブ制御処理の流れを示すフローチャートである。
【図６】本発明の第２実施形態の通信システム１Ｂおよび１Ｃを示す図である。
【図７】変形例（１）のポート識別子の通知態様を説明するための図である。
【図８】ルータとスイッチングハブの機能を説明するための図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照しつつ本発明の実施形態について説明する。
（Ａ：第１実施形態）
（Ａ−１：構成）
図１は、本発明の第１実施形態の通信システム１Ａの構成例を示す図である。図１においては、図８におけるものと同一の構成要素には同一の符号が付されている。図１と図８とを対比すれば明らかように、この通信システム１Ａは、ルータ２０に代えてルータ６０を設けた点と、スイッチングハブ３０に代えてスイッチングハブ５０を設けた点が図８に示す通信システムと異なる。この通信システム１Ａにおいては、あるマルチキャストグループ宛に送信装置１０から送信されるパケットを受信装置４０−ｋ（ｋ＝１〜４）の何れか１台が受信する場合であっても、ルータ６０とスイッチングハブ５０とに本実施形態の特徴を顕著に示す処理を行わせて両者を協動させることで、スイッチングハブ５０の下流側（すなわち、スイッチングハブ５０と他の受信装置４０−ｋの間）に無駄なデータストリームが発生しないようにしているのである。以下、本実施形態の特徴を顕著に示すスイッチングハブ５０およびルータ６０を中心に説明する。
【００１８】
図２は、スイッチングハブ５０の構成を示すブロック図である。図２に示すように、スイッチングハブ５０は、通信インタフェース（以下、Ｉ／Ｆ）部５１０、スイッチングエンジン部５２０、記憶部５３０および制御部５４０を有している。制御部５４０は、例えばＣＰＵ（Central Processing Unit）であり、記憶部５３０に格納されているファームウェアにしたがって各部の作動制御を中枢的に行う。このファームウェアにしたがって制御部５４０が実行する処理については後に詳細に説明する。
【００１９】
通信Ｉ／Ｆ部５１０は、他の通信装置との間でフレームの授受を行うインタフェースであり、各々他の通信装置が接続される複数のポート（図２では、ポート５１２Ｕおよび５１２Ｄ−１〜５１２Ｄ−４の５つのポート）を有している。本実施形態では、これら複数のポートの各々を介してその接続先の通信装置との間でフレームの授受が行われる。図２のポート５１２Ｕはルータ６０に接続されている上流側ポートであり、ポート５１２Ｄ−ｋ（ｋ＝１〜４）は各々受信装置４０−ｋに接続された下流側ポートである。これら複数のポートの各々には、各ポートを一意に識別するポート識別子が予め割り当てられている。本実施形態では、ポート５１２Ｕにはポート番号“０”が、ポート５１２Ｄ−ｋ（ｋ＝１〜４）には、ポート番号“ｋ”が割り当てられており、これらポート番号がポート識別子の役割を果たす。
【００２０】
スイッチングエンジン部５２０は、例えばＡＳＩＣである。このスイッチングエンジン部５２０は、記憶部５３０に格納されているフレーム転送制御テーブルの格納内容を参照しつつ、通信Ｉ／Ｆ部５１０の各ポートを介して受信したフレームの送信先ＭＡＣアドレスに基づいて、前述したフレームの転送制御を行う。加えて、本実施形態のスイッチングエンジン部５２０は、下流側ポートを介してフレームを受信した場合に、そのフレームの転送制御に先立って、図３に示すＩＧＭＰパケット判別処理を実行する。詳細については動作例において明らかにするが、このＩＧＭＰパケット判別処理は、下流側ポートを介して受け取ったフレームがＩＧＭＰパケット（ＩＧＭＰＪｏｉｎであるか否かは問わない）を内包したものである場合に、当該フレームを受信したポートのポート識別子をルータ６０へ通知する処理である。本実施形態では、ルータ６０へのポート識別子の通知には、専用のフレーム（以下、ポート識別子通知フレーム）が用いられる。このポート識別子通知フレームのヘッダ部には、当該フレームの送信元（すなわち、スイッチングハブ５０）および送信先（ルータ６０）のＭＡＣアドレスに加えて当該フレームがポート識別子通知フレームであることを示す種別情報が書き込まれる。また、ポート識別子通知フレームのペイロード部には、ＩＧＭＰパケットを内包したフレームを受信した下流側ポートのポート識別子が書き込まれる。
【００２１】
記憶部５３０は、図２では詳細な図示を省略したが、例えばＲＡＭ（Random Access Memory）などの揮発性メモリとＥＰＲＯＭ（Erasable Programmable ROM）などの不揮発性メモリとを含んでいる。上記ファームウェアは不揮発性メモリに記憶され、揮発性メモリには上記フレーム転送制御テーブルが格納される。また、この揮発性メモリは、上記ファームウェアを実行する際のワークメモリとして制御部５４０によって利用されるとともに、前述したフレーム転送制御の際にフレームを一時的に蓄積しておくバッファの役割も果たす。
【００２２】
図２のフレーム転送制御テーブルには、各ポートのポート識別子に対応付けてそのポートに接続されている通信装置のＭＡＣアドレスが登録されている。なお、フレーム転送制御テーブルへのＭＡＣアドレスおよびポート識別子の登録については周知の手法を採用すれば良い。また、このフレーム転送制御テーブルには、上記各ポートの接続先の通信装置がマルチキャストグループに参加している場合に、そのポートのポート識別子に対応付けてそのマルチキャストグループのマルチキャストグループ識別子が登録される。スイッチングエンジン部５２０は、通信Ｉ／Ｆ部５１０から受け取ったフレームがマルチキャストグループ宛のものである場合には、そのマルチキャストグループのマルチキャストグループ識別子に対応付けてフレーム転送制御テーブルに登録されているポート識別子の示すポートのみから当該フレームを出力し、これにより無駄なデータストリームの発生を回避するのである。
【００２３】
このようにポート識別子と対応付けてマルチキャストグループ識別子をフレーム転送制御テーブルに登録することは、そのマルチキャストグループ宛のフレームを当該ポート識別子の示すポートを通過させるようにすることであるから、「マルチキャストグループに対してポートを開放する」という。逆に、フレーム転送制御テーブルに互いに対応付けて登録されているポート識別子およびマルチキャストグループ識別子の組を削除すること、或いは、このような登録を行わないこと、を「マルチキャストグループに対してポートを閉塞する」という。詳細については後述するが、マルチキャストグループに対してポートの開放（または閉塞）を行うポート開閉制御処理はルータ６０からの指示に応じて制御部５４０が実行する。ルータ６０からのポートの開閉指示についても新たに定義された専用のフレーム（ポート開閉指示フレーム）が用いられる。
以上がスイッチングハブ５０の構成である。
【００２４】
次いで、図４を参照しつつルータ６０の構成を説明する。図４は、ルータ６０の構成を示すブロック図である。図４に示すように、ルータ６０は、通信Ｉ／Ｆ部６１０、ルーティングエンジン部６２０および記憶部６３０を有している。通信Ｉ／Ｆ部６１０は、図２の通信Ｉ／Ｆ部５１０と同様に、複数のポート（図４では、ポート６１２Ｕおよび６１２Ｄの２つのポート）を有している。図４のポート６１２ＵはＩＰ網（図示略）に接続される上流側ポートであり、ポート６１２Ｄはスイッチングハブ５０に接続される下流側ポートである。なお、本実施形態の通信Ｉ／Ｆ部６１０は、下流側ポートを１つだけ有しているが複数の下流側ポートを有していても勿論良い。
【００２５】
ルーティングエンジン部６２０は、ＣＰＵとＲＡＭとを含んでいる（図４では、何れも図示略）。上記ＣＰＵは、記憶部６３０に格納されているファームウェア（プログラム）にしたがって、記憶部６３０に記憶されているルーティングテーブルと通信Ｉ／Ｆ部６１０から引渡されるフレームのペイロード部に書き込まれているパケットの送信先ＩＰアドレスとに基づいたパケット転送制御やマルチキャストグループへの参加／離脱管理処理を行う。パケット転送制御処理については、一般的なルータが行うものと特段代わったところはないため説明を省略する。なお、本実施形態では、ルーティングエンジン部６２０をＣＰＵとＲＡＭにより構成したが、ＡＳＩＣで構成しても勿論良い。
【００２６】
加えて、本実施形態のルーティングエンジン部６２０のＣＰＵは、上記パケット転送制御処理やマルチキャストグループへの参加／離脱管理処理に先立って、図５に示すスイッチングハブ制御処理を上記ファームウェアにしたがって実行する。詳細については後述するが、このスイッチングハブ制御処理では、まず、通信Ｉ／Ｆ部６１０から引き渡されたフレームがポート識別子通知フレームであるか否かが判定され、さらに、当該ポート識別子通知フレームの送信元（すなわち、スイッチングハブ５０）から受信した他のフレームに内包されているパケットがマルチキャストグループへの参加（或いは、マルチキャストグループからの離脱）を通知するためのものであるか否かが判定される。そして、これらの要件を全て満たした場合には、ルーティングエンジン部６２０は、前述したポート開閉指示フレームを上記ポート識別子通知フレームの送信元へ返信するのである。つまり、上記ファームウェアにしたがって作動するルーティングエンジン部６２０は、上記各判定を行う判定手段、および、ポート開閉指示フレームを上記ポート識別子通知フレームの送信元へ返信し、下流側ポートの開閉を指示するポート開閉指示手段として機能するのである。このポート開閉指示フレームのヘッダ部には、送信元（すなわち、ルータ６０）および送信先（すなわち、スイッチングハブ５０）のＭＡＣアドレスとともに、当該フレームがポート開閉指示フレームであることを示す種別情報が書き込まれる。また、ポート開閉指示フレームのペイロード部には、上記ＩＧＭＰパケットにより参加（或いは離脱）を通知されたマルチキャストグループを示すマルチキャストグループ識別子と、そのマルチキャストグループに対して開放（または閉塞）するべきポートのポート識別子（すなわち、上記ポート識別子通知フレームにより通知されたポート識別子）と、当該ポートを開放するのかそれとも閉塞するのかを指示する指示子と、が書き込まれる。
以上がルータ６０の構成である。
【００２７】
（Ａ−２：動作）
次いで、図１に示す通信システム１Ａにおいて、送信装置１０からマルチキャストされるデータを受信装置４０−１が受信する場合を例にとって、スイッチングハブ５０およびルータ６０が実行する動作を説明する。
【００２８】
受信装置４０−１のユーザは、送信装置１０からマルチキャストされるデータの受信を所望する場合、まず、そのマルチキャストグループへの参加を指示する旨の操作を受信装置４０−１に対して行う。このような操作が為されると、受信装置４０−１の制御部（図示略）は、上記マルチキャストグループへの参加を通知する旨のＩＧＭＰパケット（すなわち、ＩＧＭＰＪｏｉｎ）を生成する。このようにして生成されたＩＧＭＰパケットは、受信装置４０−１内で第２層のデータブロックであるフレームのペイロード部に書き込まれ、ルータ６０へ宛てて送信される。このフレームのヘッダ部には、その送信元ＭＡＣアドレスとして受信装置４０−１のＭＡＣアドレスが、その送信先ＭＡＣアドレスとしてルータ６０のＭＡＣアドレスが書き込まれている。
【００２９】
このようにして受信装置４０−１から送信されたフレームは、スイッチングハブ５０においてその受信装置４０−１を接続するポート（本動作例では、ポート５１２Ｄ−１）を介してスイッチングエンジン部５２０に入力される。前述したように、スイッチングエンジン部５２０は、下流側ポートを介してフレームを受信した場合には、図３に示すＩＧＭＰパケット判別処理を実行し、その後、その宛先に基づいたフレーム転送制御を行う。なお、上流側ポートを介してフレームを受信した場合には、スイッチングエンジン部５２０は、ＩＧＭＰパケット判別処理を行うことなく、その宛先に基づくフレーム転送制御を行う。本動作例においては、スイッチングハブ５０は下流側ポートであるポート５１２Ｄ−１を介してフレームを受信するのであるから、フレーム転送制御に先立って、図３のＩＧＭＰパケット判別処理が実行される。
【００３０】
図３は、スイッチングハブ５０のスイッチングエンジン部５２０が実行するＩＧＭＰパケット判別処理の流れを示すフローチャートである。図３に示すように、スイッチングエンジン部５２０は、下流側ポートを介して受信したフレームのペイロード部に書き込まれているパケットのヘッダ部を参照し、当該パケットがＩＧＭＰパケットであるか否かを判定する（ステップＳＡ１００）。具体的には、スイッチングエンジン部５２０は、受信したフレームのペイロード部に書き込まれているパケットのヘッダ部を読み出し、そのヘッダ部に記述されているプロトコル種別がＩＧＭＰを示すものであるか否かを判定する。このプロトコル識別子がＩＧＭＰを示すものである場合には、ステップＳＡ１００の判定結果は“Ｙｅｓ”になり、その他のプロトコルを示すものである場合には、ステップＳＡ１００の判定結果は“Ｎｏ”になる。そして、スイッチングエンジン部５２０は、ステップＳＡ１００の判定結果が“Ｙｅｓ”である場合にのみ、ＩＧＭＰパケットを受信した下流側ポートのポート識別子を通知するためのポート識別子通知フレームを生成し、ルータ６０に送信する（ステップＳＡ１１０）。
【００３１】
前述したように、本動作例において受信装置４０−１からスイッチングハブ５０へ送信されるフレームのペイロード部には、ＩＧＭＰパケット（具体的には、ＩＧＭＰＪｏｉｎ）が書き込まれている。したがって、上記ステップＳＡ１００の判定結果は“Ｙｅｓ”になり、当該フレームを受信したポートのポート識別子（ポート５１２Ｄ−１のポート識別子）をペイロード部に書き込んだポート識別子通知フレームがスイッチングハブ５０からルータ６０へ送信される。また、このポート識別子通知フレームとは別個に、受信装置４０−１から受信したフレーム（ＩＧＭＰパケットを内包したフレーム）のルータ６０への転送も行われる。
【００３２】
図５は、ルータ６０のルーティングエンジン部６２０が実行するスイッチングハブ制御処理の流れを示すフローチャートである。図５に示すように、ルーティングエンジン部６２０は、下流側ポート（ポート６１２Ｄ）を介してフレームを受信すると、まず、そのフレームがポート識別子通知フレームであるか否かをそのフレームのヘッダ部に書き込まれている種別情報を参照して判定する（ステップＳＢ１００）。そして、ルーティングエンジン部６２０は、ステップＳＢ１００の判定結果が“Ｙｅｓ”である場合にのみ、ステップＳＢ１１０以降の処理を実行する。本動作例においてスイッチングハブ５０からまず、ポート識別子通知フレームが送信されてくるのであるから、ステップＳＢ１００の判定結果は“Ｙｅｓ”になり、ステップＳＢ１１０以降の処理が実行される。
【００３３】
ステップＳＢ１１０の処理は、ポート識別子通知フレームの送信元から受信した他のフレームが、マルチキャストグループへの参加（或いはマルチキャストグループからの離脱）を通知するＩＧＭＰパケットを内包したものであるか否かを判定する処理である。ここで、ポート識別子通知フレームの送信元から受信した他のフレームに内包されているパケットがマルチキャストグループへの参加（或いはマルチキャストグループからの離脱）を通知するＩＧＭＰパケットであるか否かの判定は、従来のＩＧＭＰスヌーピングにおける場合と同様に、そのフレームに内包されているパケットのペイロード部を参照して行えば良い。
【００３４】
そして、ステップＳＢ１１０の判定結果が“Ｙｅｓ”である場合には、ルーティングエンジン部６２０は、上記ＩＧＭＰパケットの内容に応じて下流側ポートの開閉を指示する旨のポート開閉指示フレームを生成し、上記ポート識別子通知フレームの送信元へ宛てて送信する（ステップＳＢ１２０）。例えは、ポート識別子通知フレームの送信元から受信した他のフレームに内包されているパケットが、マルチキャストグループへの参加を通知する旨のＩＧＭＰパケット（ＩＧＭＰＪｏｉｎ）である場合には、ルーティングエンジン部６２０は、上記ポート識別子通知フレームにて通知されたポート識別子の示すポートのみをそのマルチキャストグループに対して開放することを指示する旨のポート開閉指示フレームを生成して送信する。一方、マルチキャストグループからの離脱を通知する旨のＩＧＭＰパケットである場合には、ルーティングエンジン部６２０は、上記ポート識別子通知フレームにて通知されたポート識別子の示すポートを、当該離脱を通知されたマルチキャストグループに対して閉塞することを指示する旨のポート開閉指示フレームを生成して送信する。
【００３５】
本動作例では、スイッチングハブ５０を介して受信装置４０−１から送信されてくるパケットはＩＧＭＰＪｏｉｎであるから、ステップＳＢ１１０の判定結果は“Ｙｅｓ”になり、ステップＳＢ１２０の処理が実行される。つまり、本動作例では、ポート番号“１”のポートのみを上記ＩＧＭＰＪｏｉｎにて参加通知されたマルチキャストグループに対して開放すること（換言すれば、他の下流側ポートを閉塞すること）を指示する旨のポート開閉指示フレームがルータ６０からスイッチングハブ５０へ送信される。
【００３６】
スイッチングハブ５０の制御部５４０は、通信Ｉ／Ｆ部５１０およびスイッチングエンジン部５２０を介してポート開閉指示フレームを受信すると、当該フレームの内容にしたがって下流側ポートの開閉（すなわち、フレーム転送制御テーブルの格納内容の更新）を行う。その結果、スイッチングハブ５０の下流側の４つのポートのうち、ポート番号“１”のポート（すなわち、ポート５１２Ｄ−１）のみが上記マルチキャストグループに対して開放され、他の下流側ポートは閉塞される。このため、送信装置１０から上記マルチキャストグループ宛のパケットの送信が開始され、当該パケットがルータ６０からスイッチングハブ５０へと転送されても、そのパケットが受信装置４０−２、４０−３および４０−４に転送されることはなく、無駄なデータストリームが発生することはない。
以上が本実施形態の動作である。
【００３７】
従来のＩＧＭＰスヌーピング機能を備えたスイッチングハブにおいては、パケットのペイロード部を参照してＩＧＭＰＪｏｉｎであるか否かを判定する処理が行われていたのであるが、本実施形態のスイッチングハブ５０においてはパケットのヘッダ部を参照しており、パケットのペイロード部を参照してＩＧＭＰＪｏｉｎであるか否かを判定する処理はルータ６０で行われる。パケットのヘッダ部を参照する処理は、パケットのペイロード部を参照する処理に比較して処理負荷が低く、このため、スイッチングハブ５０として、ＩＧＭＰスヌーピング機能を備えたスイッチングハブよりも処理能力の低いものを用いることができ、その消費電力を抑えることができる。また、本実施形態においてスイッチングハブ５０の下流に無駄なデータストリームが発生しないことは前述した通りである。このように、本実施形態によれば、スイッチングハブにおける電力消費を抑えつつ、そのスイッチングハブよりも下流側に無駄なデータストリームが発生しないようにすることが可能になる。
【００３８】
（Ｂ：第２実施形態）
上述した第１実施形態の通信システム１Ａでは、ルータ６０にスイッチングハブが１台だけ接続されていたが、複数のスイッチングハブがルータ６０の下流に接続されている態様も勿論考えられる。本実施形態は、ルータ６０の下流に複数のスイッチングハブが接続されている点が、上述した第１実施形態と異なる。
【００３９】
ここで、ルータ６０の下流に複数のスイッチングハブが接続される態様の具体例としては、以下の２つの態様が考えられる。第１に、図６（Ａ）に示す通信システム１Ｂのように、複数のスイッチングハブ（図６（Ａ）では、スイッチングハブ５０Ａ、５０Ｂ、５０Ｃおよび５０Ｄの４台）が直接ルータに接続されている態様（換言すれば、各スイッチングハブが他のスイッチングハブを介さずにルータに接続されている態様）である。なお、図６（Ａ）では、ルータ６０よりも上流の通信装置（例えば、図１の送信装置１０）の図示を省略した（図６（Ｂ）も同様）。そして、第２の態様は、図６（Ｂ）に示す通信システム１Ｃのように、複数のスイッチングハブに、１台または複数台の他のスイッチングハブを介してルータに接続されているものが含まれている態様である。例えば、図６（Ｂ）において、スイッチングハブ５０Ｂは、１台の他のスイッチングハブ（スイッチングハブ５０Ａ）を介してルータ６０に接続されており、スイッチングハブ５０Ｃは、複数台の他のスイッチングハブ（すなわち、スイッチングハブ５０Ｂおよび５０Ａ）を介してルータ６０に接続されている。
【００４０】
図６（Ａ）および図６（Ｂ）に示す何れの接続態様においても、図３のＩＧＭＰパケット判別処理およびポート開閉制御処理をスイッチングハブ５０Ａ〜５０Ｄの各々に実行させ、かつ、図５に示すスイッチングハブ制御処理をルータ６０に実行させることで、無駄なデータストリームの発生を回避することができる。なお、図６（Ｂ）に示す接続態様において、下流側に他のスイッチングハブが接続されているスイッチングハブが、ＩＧＭＰパケット判別処理およびポート開閉制御処理を行わず、また、ＩＧＭＰスヌーピング機能も有してないスイッチングハブ（すなわち、マルチキャストパケットのフィルタリングを行わないスイッチングハブ）であっても、そのスイッチングハブがポート識別子通知フレームおよびポート開閉指示フレームを転送することができるものであり、さらに下流のスイッチングハブが図３のＩＧＭＰパケット判別処理およびポート開閉制御処理を実行可能なものであれば、当該下流側のスイッチングハブの下流には無駄なデータストリームは発生しない。
【００４１】
例えば、図６（Ｂ）に示す態様において、スイッチングハブ５０ＡはＩＧＭＰパケット判別処理およびポート開閉制御処理を行わず、また、ＩＧＭＰスヌーピング機能も有してないものであるとする。そして、スイッチングハブ５０Ｂ〜５０Ｄは、何れも、ＩＧＭＰパケット判別処理およびポート開閉制御処理を実行可能なものであるとする。この場合において、スイッチングハブ５０Ｂに接続されている受信装置４０ＢのみがＩＧＭＰＪｏｉｎを送信すると、スイッチングハブ５０Ｂは、受信装置４０Ｂが接続されているポートのポート識別子をルータ６０へ通知し、ルータ６０からの指示に応じて当該ポートのみをそのマルチキャストグループに開放する。また、スイッチングハブ５０Ｃおよび５０Ｄは、各々の接続先の受信装置からＩＧＭＰＪｏｉｎは送信されてこないのであるから、上記ＩＧＭＰパケット判別処理を行うことはなく、そのマルチキャストグループに対するポートの開放をルータ６０から指示されることはない。つまり、スイッチングハブ５０Ｃおよび５０Ｄの下流側の各ポートは上記マルチキャストグループに対して閉塞されたままである。
【００４２】
このような状況で上記マルチキャストグループ宛のパケットの送信が開始されると、スイッチングハブ５０Ａでは、マルチキャストパケットのフィルタリングは行われないため、当該パケットを内包したフレームは、スイッチングハブ５０Ｂと５０Ｄに転送される。しかし、スイッチングハブ５０Ｄでは、上記マルチキャストグループに対する下流側ポートの開放は行われていないため、上記フレームがスイッチングハブ５０Ｄの下流側に転送されることはない。一方、スイッチングハブ５０Ｂでは、受信装置４０Ｂが接続されているポートのみが上記マルチキャストグループに開放されているため、このポートを介してのみ当該フレームの転送が行われ、スイッチングハブ５０Ｂからスイッチングハブ５０Ｃに上記フレームが転送されることはない。このように、最上流のスイッチングハブ５０Ａがマルチキャストパケットのフィルタリングを行わないものであっても、その下流側のスイッチングハブ５０Ｂ、５０Ｃおよび５０Ｄの下流には無駄なデータストリームは発生しないのである。
【００４３】
このように、ルータの下流に複数のスイッチングハブが接続されている場合においても、ＩＧＭＰスヌーピングをスイッチングハブのみで行う場合に比較して各スイッチングハブの処理負荷を軽減しつつ、無駄なデータストリームが発生することを防止することができる。このため、ＩＧＭＰスヌーピングを各スイッチングハブに実行させる場合に比較して各スイッチングハブの処理能力を低く抑えることができ、その電力消費を抑えることが可能になる。
【００４４】
（Ｃ：変形）
以上、本発明の第１および第２実施形態について説明したが、これら実施形態を以下のように変形しても勿論良い。
（１）上述した実施形態では、ポート識別子通知フレームの送信により、ＩＧＭＰパケットを内包したフレームを受信した下流側ポートのポート識別子をルータ６０に通知したが、当該フレームのヘッダ部の所定の領域（例えば、オプションフィールドなど）に上記ポート識別子と当該ポート識別子の通知を行うスイッチングハブのＭＡＣアドレスとを追記して転送することでルータ６０への通知を実現しても良い。ここで、ポート識別子の他にそのポート識別子の通知元のＭＡＣアドレスを追記するようにしたのは、その通知元をルータ６０に伝達するためである。また、通信システムに、１または複数の他のスイッチングハブを介してルータに接続されているスイッチングハブが含まれている場合には、上流側のスイッチングハブほど上記所定の領域の先頭に近い位置にポート識別子およびＭＡＣアドレスを追記させるといった具合に、階層的にポート識別子およびＭＡＣアドレスの追記を行わせるようにすれば良い。例えば、図６（Ｂ）のスイッチングハブ５０ＢがＩＧＭＰパケットを内包したフレームＦ１の転送を行う際には、そのフレームを受信したポートのポート識別子と当該ポート識別子の通知元のＭＡＣアドレス（すなわち、スイッチングハブ５０ＢのＭＡＣアドレス）とをヘッダ部に追記したフレームＦ２（図７参照）をスイッチングハブ５０Ａに送信させ、スイッチングハブ５０Ａには、そのフレームを受信したポートのポート識別子と当該ポート識別子の通知元のＭＡＣアドレス（すなわち、スイッチングハブ５０ＡのＭＡＣアドレス）とをヘッダ部に追記したフレームＦ３（図７参照）をルータ６０に送信させるようにすれば良い。
【００４５】
（２）上述した実施形態では、ＩＧＭＰパケットを内包したフレームを受信したスイッチングハブ５０に、そのフレームを受信した下流側ポートのポート識別子をルータ６０へ通知させた。しかし、ポート識別子に加えてそのＩＧＭＰパケットの送信元の通信アドレス（ＭＡＣアドレスまたはＩＰアドレス）を通知させるようにしても良い。このような態様によれば、各々マルチキャストアドレスが異なる複数のマルチキャストグループに受信装置４０−ｋ（ｋ＝１〜４）の各々が参加するような場合であっても、各受信装置４０−ｋから送信されたＩＧＭＰＪｏｉｎとそのＩＧＭＰＪｏｉｎを含むフレームを受信したスイッチングハブの下流側ポートのポート識別子とを、そのＩＧＭＰＪｏｉｎの送信元アドレスと上記ポート識別子とともに通知される通信アドレスとに基づいて対応付け、各マルチキャストグループに対するポートの開閉を適切に行うことが可能になる。
【００４６】
（３）上述した実施形態では、ポート識別子通知フレームの送信元のスイッチングハブによって中継されたフレームに内包されているパケットが、マルチキャストグループへの参加またはマルチキャストグループからの離脱を通知するためのものであるか否かをルータ６０に判定させ、その判定結果に応じたポート開閉指示フレームをルータ６０に送信させた。しかし、ＩＧＭＰのバージョンによっては、マルチキャストグループからの離脱を通知するためのＩＧＭＰパケットが定義されていない場合がある。このため、マルチキャストグループへの参加を通知するためのパケットのみをステップＳＢ１１０の判定対象としても勿論良い。このように、マルチキャストグループへの参加を通知するためのパケットのみをステップＳＢ１１０の判定対象とする場合には、当該パケットを受信してから一定時間が経過した時点でそのマルチキャストグループに対してポートを閉塞することを指示するポート開閉指示フレームを送信するなどのタイマ処理をルータ６０に実行させるようにしても良い。
【００４７】
（４）上述した実施形態では、スイッチングハブ５０におけるＩＧＭＰパケット判別処理をＡＳＩＣ（スイッチングエンジン部５２０）に実行させ、同ポート開閉制御処理をファームウェアにしたがって制御部５４０に実行させた。つまり、上記実施形態では、ＩＧＭＰパケット判別処理をハードウェアで実現し、ポート開閉制御処理をソフトウェアで実現したのである。しかし、両者をソフトウェア（またはハードウェア）で実現しても良く、また、ＩＧＭＰパケット判別処理をソフトウェアで実現し、ポート開閉制御処理をハードウェアで実現しても良い。同様に、ルータ６０におけるスイッチングハブ制御処理をハードウェアで実現するようにしても勿論良い。
【００４８】
また、ＩＧＭＰパケット判別処理とポート開閉制御処理をソフトウェア（すなわち、スイッチングハブのファームウェアで）で実現する態様においては、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）などのコンピュータ読み取り可能な記録媒体に当該ファームウェアを書き込んで配布しても良く、また、インターネットなどの電気通信回線経由のダウンロードにより当該ファームウェアを配布しても良い。このようにして配布されるファームウェアによって既存のスイッチングハブのファームウェアを書き換えることで、スイッチングハブ５０と同一の機能を既存のスイッチングハブに付与することが可能になるからである。同様に、スイッチングハブ制御処理を実現するファームウェアについても、コンピュータ読み取り可能な記録媒体に書き込んで配布しても良く、インターネットなどの電気通信回線経由のダウンロードにより配布しても良い。このようにして配布されるファームウェアによって既存のルータのファームウェアを書き換えることで、ルータ６０と同一の機能を既存のルータに付与することが可能になるからである。なお、上記実施形態においてスイッチングハブ５０の記憶部５３０に記憶されていたファームウェア（すなわち、ポート開閉制御処理を制御部５４０に実行させるプログラム）についても、コンピュータ読み取り可能な記録媒体に書き込んで配布しても良く、また電気通信回線経由のダウンロードにより配布しても良い。
【符号の説明】
【００４９】
１Ａ，１Ｂ，１Ｃ…通信システム、１０…送信装置、２０，６０…ルータ、３０，５０…スイッチングハブ、４０−ｋ（ｋ＝１〜４）…受信装置、５１０，６１０…通信Ｉ／Ｆ部、５１２Ｕ，５１２Ｄ−ｋ（ｋ＝１〜４），６１２Ｕ、６１２Ｄ…ポート、５２０…スイッチングエンジン部、６２０…ルーティングエンジン部、５３０，６３０…記憶部、５４０…制御部。
【図１】
0005569057.tif 000002
【図２】
0005569057.tif 000003
【図３】
0005569057.tif 000004
【図４】
0005569057.tif 000005
【図５】
0005569057.tif 000006
【図６】
0005569057.tif 000007
【図７】
0005569057.tif 000008
【図８】
0005569057.tif 000009