(57)【要約】【課題】マルチキャスト転送用に記憶しておくデータ量を低減しつつ、スイッチ部から出力部へのデータ量の不要な増大を抑制する。【解決手段】スイッチ部は、入力されたマルチキャストパケットに付与されたパケット宛先識別情報のうちの所定のビットに基づいて出力ポートを検索し、その出力ポートからマルチキャストパケットを出力部へ出力する。出力部は、出力ポートから出力されてきたマルチキャストパケットに付与されたマルチキャスト宛先識別情報が当該出力部が外部へ送信すべきマルチキャスト宛先識別情報である場合、マルチキャストパケットを外部へ送信し、そうでない場合、マルチキャストパケットを廃棄する。【選択図】図１
2010233010.tif 000002
【特許請求の範囲】
【請求項１】
入力されたパケットデータを該パケットデータに付与された宛先識別情報に基づいて出力ポートから出力するスイッチ部と、該出力ポートと１対１に接続され、該出力ポートから出力されたパケットデータを外部へ送信する出力部とから構成されるスイッチであって、
前記スイッチ部は、複数の宛先へ同時に送信されるマルチキャストパケットに付与された該マルチキャストパケットの前記複数の宛先を認識できるマルチキャスト宛先識別情報のうちの所定のビットと、前記マルチキャストパケットを出力する出力ポートとを対応付けて記憶し、前記マルチキャストパケットが入力された場合、該マルチキャストパケットに付与されたマルチキャスト宛先識別情報のうちの前記所定のビットに基づいて前記出力ポートを検索し、該検索された出力ポートから前記マルチキャストパケットを前記出力部へ出力し、
前記出力部は、当該出力部が外部へ送信すべきマルチキャストパケットのマルチキャスト宛先識別情報をあらかじめ記憶しており、前記出力ポートから前記マルチキャストパケットが出力されてきた場合、該出力されてきたマルチキャストパケットに付与されたマルチキャスト宛先識別情報が、当該出力部が記憶しているマルチキャスト宛先識別情報である場合、該マルチキャストパケットを外部へ送信し、そうでない場合は、該マルチキャストパケットを廃棄するスイッチ。
【請求項２】
請求項１記載のスイッチにおいて、
前記スイッチ部は、
複数の宛先へ同時に送信されるマルチキャストパケットに付与された該マルチキャストパケットの前記複数の宛先を認識できるマルチキャスト宛先識別情報のうちの所定のビットと、前記マルチキャストパケットを出力する出力ポートとを対応付けて記憶し、前記マルチキャストパケットが入力された場合、該マルチキャストパケットに付与されたマルチキャスト宛先識別情報のうちの前記所定のビットに基づいて前記出力ポートを検索する出力先検索部と、
前記出力ポートと１対１に接続され、前記出力先検索部により検索された出力ポートから前記マルチキャストパケットを前記出力部へ出力する選択部とを有し、
前記出力部は、
前記出力ポートから前記マルチキャストパケットが出力されてきた場合、該出力されてきたマルチキャストパケットに付与されたマルチキャスト宛先識別情報を抽出するＩＤ抽出部と、
前記マルチキャスト宛先識別情報のうちの当該出力部が外部へ送信すべきマルチキャストパケットに付与されたマルチキャスト宛先識別情報を記憶し、前記ＩＤ抽出部が抽出したマルチキャスト宛先識別情報が前記記憶しているマルチキャスト宛先識別情報であるかどうかを示す判別結果を通知する出力先確認部と、
前記ＩＤ抽出部が抽出したマルチキャスト宛先識別情報が前記記憶しているマルチキャスト宛先識別情報であることを示す判別結果が前記出力先確認部から通知された場合、該マルチキャスト宛先識別情報が付与されたマルチキャストパケットを外部へ送信し、前記ＩＤ抽出部が抽出したマルチキャスト宛先識別情報が前記記憶しているマルチキャスト宛先識別情報でないことを示す判別結果が前記出力先確認部から通知された場合、該マルチキャスト宛先識別情報が付与されたマルチキャストパケットを廃棄する出力制御部とを有することを特徴とするスイッチ。
【請求項３】
入力されたパケットデータを該パケットデータに付与された宛先識別情報に基づいて出力ポートから出力するスイッチ処理と、前記スイッチ処理にて該出力ポートから出力されたパケットデータを外部へ送信する出力処理とから構成されるパケット転送方法であって、
前記スイッチ処理では、複数の宛先へ同時に送信されるマルチキャストパケットが入力された場合、該マルチキャストパケットに付与された該マルチキャストパケットの前記複数の宛先を認識できるマルチキャスト宛先識別情報のうちの前記所定のビットと対応付けて記憶されている前記マルチキャストパケットを出力する出力ポートを検索し、該検索された出力ポートから前記マルチキャストパケットを出力し、
前記出力処理では、前記出力ポートから前記マルチキャストパケットが出力されてきた場合、該出力されてきたマルチキャストパケットに付与されたマルチキャスト宛先識別情報が、あらかじめ記憶されている外部へ送信すべきマルチキャストパケットのマルチキャスト宛先識別情報である場合、該マルチキャストパケットを外部へ送信し、そうでない場合は、該マルチキャストパケットを廃棄するパケット転送方法。
【請求項４】
入力されたパケットデータを該パケットデータに付与された宛先識別情報に基づいて出力ポートから出力するスイッチ手順と、前記スイッチ手順にて該出力ポートから出力されたパケットデータを外部へ送信する出力手順とをスイッチに実行させるためのプログラムであって、
前記スイッチ手順では、複数の宛先へ同時に送信されるマルチキャストパケットが入力された場合、該マルチキャストパケットに付与された該マルチキャストパケットの前記複数の宛先を認識できるマルチキャスト宛先識別情報のうちの前記所定のビットと対応付けて前記スイッチが記憶している前記マルチキャストパケットを出力する出力ポートを検索し、該検索された出力ポートから前記マルチキャストパケットを出力し、
前記出力手順では、前記出力ポートから前記マルチキャストパケットが出力されてきた場合、該出力されてきたマルチキャストパケットに付与されたマルチキャスト宛先識別情報が、前記スイッチがあらかじめ記憶している外部へ送信すべきマルチキャストパケットのマルチキャスト宛先識別情報である場合、該マルチキャストパケットを外部へ送信し、そうでない場合は、該マルチキャストパケットを廃棄するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチ、パケット転送方法およびプログラムに関する。
【背景技術】
【０００２】
近年、データを伝送する際、１つのデータをあらかじめ設定された複数の宛先へ同時に送信するマルチキャスト伝送が利用される場合が多い（例えば、特許文献１参照。）。このマルチキャスト伝送を行う方法には、例えば、以下に示す２つの方法が一般的に用いられている。
【０００３】
まず、１つ目の方法について説明する。この方法では、図１４に示すスイッチ１０００が有する各入力部２０００−１〜２０００−ｎは、図１５（ａ）に示すような、各入力部２０００−１〜２０００−ｎに対して外部から送信されてくる複数の宛先へ同時に送信されるマルチキャストパケットの宛先を示すマルチキャストアドレスと、マルチキャストパケットがスイッチ部３０００から出力される際の入力ポート２１００−１〜２１００−ｎから出力ポート４１００−１〜４１００−ｎへの経路を一意に特定するためのマルチキャストＩＤとの対応付をそれぞれ記憶している。
【０００４】
そして、各入力部２０００−１〜２０００−ｎは、外部からマルチキャストパケットが送信されてきた場合、そのマルチキャストパケットに、そのマルチキャストパケット内のマルチキャストアドレスと同じマルチキャストアドレスと対応付けて記憶しているマルチキャストＩＤを付与する。そして、入力部２０００−１〜２０００−ｎは、マルチキャストＩＤを付与したマルチキャストパケットを、入力部２０００−１〜２０００−ｎと１対１で対応する入力ポート２１００−１〜２１００−ｎを介してスイッチ部３０００へ出力する。
【０００５】
スイッチ部３０００は、図１５（ｂ）に示すようなテーブルを記憶している。図１５（ｂ）に示す例では、スイッチ部３０００が有する出力ポートの数が「４」である場合に、マルチキャストパケットがスイッチ部３０００から出力される際の入力ポート２１００−１〜２１００−ｎから出力ポート４１００−１〜４１００−ｎへの経路（つまり、４つの出力ポート４１００−１〜４１００−４におけるマルチキャストパケット出力の有無の組合せである出力パターン）と、マルチキャストＩＤとの対応付を記憶する。なお、図１５（ｂ）に示した各出力ポート４１００−１〜４１００−４に対応するビットにおいて、「１」はマルチキャストパケットを出力することを示し、「０」はマルチキャストパケットを出力しないことを示す。そして、スイッチ部３０００は、入力部２０００−１〜２０００−ｎから入力ポート２１００−１〜２１００−ｎを介して出力されてきたマルチキャストパケットを、そのマルチキャストパケットに付与されているマルチキャストＩＤと対応付けて記憶している出力ポート４１００−１〜４１００−ｎを介して、その出力ポート４１００−１〜４１００−ｎと１対１で対応する出力部４０００−１〜４０００−ｎへ出力する。そして、各出力部４０００−１〜４０００−ｎは、スイッチ部３０００からマルチキャストパケットが出力されてきた場合、そのマルチキャストパケットを外部へ転送する。
【０００６】
つぎに、マルチキャスト伝送を行う２つ目の方法について説明する。この方法においても、図１４に示した各入力部２０００−１〜２０００−ｎは、図１５（ａ）に示したような、各入力部２０００−１〜２０００−ｎに対して外部から送信されてくるマルチキャストパケットの宛先を示すマルチキャストアドレスと、マルチキャストパケットがスイッチ部３０００から出力される際の入力ポート２１００−１〜２１００−ｎから出力ポート４１００−１〜４１００−ｎへの経路を一意に特定するためのマルチキャストＩＤとの対応付をそれぞれ記憶している。
【０００７】
そして、各入力部２０００−１〜２０００−ｎは、外部からマルチキャストパケットが送信されてきた場合、そのマルチキャストパケットに、そのマルチキャストパケット内のマルチキャストアドレスと同じマルチキャストアドレスと対応付けて記憶しているマルチキャストＩＤを付与する。そして、入力部２０００−１〜２０００−ｎは、マルチキャストＩＤを付与したマルチキャストパケットを、入力部２０００−１〜２０００−ｎと１対１で対応する入力ポート２１００−１〜２１００−ｎを介してスイッチ部３０００へ出力する。
【０００８】
２つ目の方法では、スイッチ部３０００は、図１５（ｂ）に示したテーブルを記憶していない。そして、スイッチ部３０００は、入力部２０００−１〜２０００−ｎのいずれかからマルチキャストパケットが出力されてきた場合、そのマルチキャストパケットを、各出力ポート４１００−１〜４１００−ｎに１対１で対応する各出力部４０００−１〜４０００−ｎのすべてへ出力する。
【０００９】
また、この方法では、各出力部４０００−１〜４０００−ｎは、当該出力部４０００−１〜４０００−ｎが外部へ出力すべきマルチキャストパケットに与えられるマルチキャストＩＤをそれぞれ記憶している。そして、各出力部４０００−１〜４０００−ｎは、スイッチ部３０００からマルチキャストパケットが出力されてきた場合、そのマルチキャストパケットに付与されているマルチキャストＩＤを記憶しているどうかを判別する。そして、各出力部４０００−１〜４０００−ｎは、マルチキャストパケットに付与されているマルチキャストＩＤを記憶している場合、マルチキャストパケットを外部へ転送する。また、各出力部４０００−１〜４０００−ｎは、マルチキャストパケットに付与されているマルチキャストＩＤを記憶していない場合、マルチキャストパケットを廃棄する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００５−３５４３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した１つ目の方法においては、出力パターンの数が非常に多い場合、テーブルに記憶しておくデータ量が多くなってしまう。その結果、そのデータ量がスイッチ部３０００がデータを記憶しておくことが可能な量を超えてしまうおそれがある。
【００１２】
また、上述した２つ目の方法においては、スイッチ部３０００から出力部４０００−１〜４０００−ｎのすべてへマルチキャストパケットを出力するため、スイッチ部３０００から出力部４０００−１〜４０００−ｎへ出力するデータ量が１つ目の方法と比べて大きくなってしまうという問題点がある。
【００１３】
本発明は、上述した課題を解決するスイッチ、パケット転送方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、本発明のスイッチは、入力されたパケットデータを該パケットデータに付与された宛先識別情報に基づいて出力ポートから出力するスイッチ部と、該出力ポートと１対１に接続され、該出力ポートから出力されたパケットデータを外部へ送信する出力部とから構成されるスイッチであって、前記スイッチ部は、複数の宛先へ同時に送信されるマルチキャストパケットに付与された該マルチキャストパケットの前記複数の宛先を認識できるマルチキャスト宛先識別情報のうちの所定のビットと、前記マルチキャストパケットを出力する出力ポートとを対応付けて記憶し、前記マルチキャストパケットが入力された場合、該マルチキャストパケットに付与されたマルチキャスト宛先識別情報のうちの前記所定のビットに基づいて前記出力ポートを検索し、該検索された出力ポートから前記マルチキャストパケットを前記出力部へ出力し、前記出力部は、当該出力部が外部へ送信すべきマルチキャストパケットのマルチキャスト宛先識別情報をあらかじめ記憶しており、前記出力ポートから前記マルチキャストパケットが出力されてきた場合、該出力されてきたマルチキャストパケットに付与されたマルチキャスト宛先識別情報が、当該出力部が記憶しているマルチキャスト宛先識別情報である場合、該マルチキャストパケットを外部へ送信し、そうでない場合は、該マルチキャストパケットを廃棄する。
【００１５】
上記課題を解決するために、本発明のパケット転送方法は、入力されたパケットデータを該パケットデータに付与された宛先識別情報に基づいて出力ポートから出力するスイッチ処理と、前記スイッチ処理にて該出力ポートから出力されたパケットデータを外部へ送信する出力処理とから構成されるパケット転送方法であって、前記スイッチ処理では、複数の宛先へ同時に送信されるマルチキャストパケットが入力された場合、該マルチキャストパケットに付与された該マルチキャストパケットの前記複数の宛先を認識できるマルチキャスト宛先識別情報のうちの前記所定のビットと対応付けて記憶されている前記マルチキャストパケットを出力する出力ポートを検索し、該検索された出力ポートから前記マルチキャストパケットを出力し、前記出力処理では、前記出力ポートから前記マルチキャストパケットが出力されてきた場合、該出力されてきたマルチキャストパケットに付与されたマルチキャスト宛先識別情報が、あらかじめ記憶されている外部へ送信すべきマルチキャストパケットのマルチキャスト宛先識別情報である場合、該マルチキャストパケットを外部へ送信し、そうでない場合は、該マルチキャストパケットを廃棄する。
【００１６】
また、コンピュータに実行させるプログラムであって、入力されたパケットデータを該パケットデータに付与された宛先識別情報に基づいて出力ポートから出力するスイッチ手順と、前記スイッチ手順にて該出力ポートから出力されたパケットデータを外部へ送信する出力手順とをスイッチに実行させるためのプログラムであって、前記スイッチ手順では、複数の宛先へ同時に送信されるマルチキャストパケットが入力された場合、該マルチキャストパケットに付与された該マルチキャストパケットの前記複数の宛先を認識できるマルチキャスト宛先識別情報のうちの前記所定のビットと対応付けて前記スイッチが記憶している前記マルチキャストパケットを出力する出力ポートを検索し、該検索された出力ポートから前記マルチキャストパケットを出力し、前記出力手順では、前記出力ポートから前記マルチキャストパケットが出力されてきた場合、該出力されてきたマルチキャストパケットに付与されたマルチキャスト宛先識別情報が、前記スイッチがあらかじめ記憶している外部へ送信すべきマルチキャストパケットのマルチキャスト宛先識別情報である場合、該マルチキャストパケットを外部へ送信し、そうでない場合は、該マルチキャストパケットを廃棄する。
【発明の効果】
【００１７】
本発明によれば、マルチキャスト転送を行うためにスイッチが記憶しておくデータ量を低減させるとともに、マルチキャストパケットの転送に付随してスイッチ部から出力部へ出力するデータの量が必要以上に増えることを抑制することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に従ったスイッチの構成を示す図である。
【図２】図１に示した入力部の構成を示す図である。
【図３】入力テーブルのデータ構造の一例を示す図である。
【図４】図１に示したスイッチ部の構成を示す図である。
【図５】スイッチテーブルのデータ構造の一例を示す図である。
【図６】図１に示した出力部の構成を示す図である。
【図７】（ａ）出力テーブルのデータ構造の第１の一例を示す図である。（ｂ）出力テーブルのデータ構造の第２の一例を示す図である。（ｃ）出力テーブルのデータ構造の第３の一例を示す図である。
【図８】スイッチが、外部から送信されてきたパケットをマルチキャスト転送する第１の動作例を示す図である。
【図９】スイッチが、外部から送信されてきたパケットをマルチキャスト転送する第２の動作例を示す図である。
【図１０】スイッチが、外部から送信されてきたパケットをマルチキャスト転送する第３の動作例を示す図である。
【図１１】スイッチが外部から送信されてきたパケットをマルチキャスト転送する際の入力部の動作を示すフローチャートである。
【図１２】スイッチが外部から送信されてきたパケットをマルチキャスト転送する際のスイッチ部の動作を示すフローチャートである。
【図１３】スイッチが外部から送信されてきたパケットをマルチキャスト転送する際の出力部の動作を示すフローチャートである。
【図１４】一般的なスイッチの構成の一例を示す図である。
【図１５】（ａ）一般的なスイッチが記憶しているマルチキャストアドレスとマルチキャストＩＤテーブルとを対応付けるデータの一例を示す図である。（ｂ）一般的なスイッチが記憶しているテーブルのデータ構造の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態に従ったスイッチ（パケット転送方法およびプログラムを含む）を説明する。
【００２０】
まず、本実施形態のスイッチ１の構成について、図１を参照して説明する。なお、本実施形態では、スイッチ１が有する入力ポート５−１〜５−ｎの数と出力ポート６−１〜６−ｎの数との両方はｎ（ｎ；自然数）である場合を例に挙げて説明する。なお、入力ポート５−１〜５−ｎの数と出力ポート６−１〜６−ｎの数とは異なっていてもよい。
【００２１】
図１に示すように、スイッチ１は、入力部２−１〜２−ｎと、スイッチ部３と、出力部４−１〜４−ｎとを有する。各入力部２−１〜２−ｎは、各入力ポート５−１〜５−ｎに１対１で対応して接続されており、各出力部４−１〜４−ｎは、各出力ポート６−１〜６−ｎに１対１で対応して接続されている。なお、入力部２−１〜２−ｎは、図１４に示した入力部２０００−１〜２０００−ｎと同じである。
【００２２】
以下に、図１に示した入力部２−１〜２−ｎと、スイッチ部３と、出力部４−１〜４−ｎとの各構成について詳細に説明する。
【００２３】
まず、入力部２−１〜２−ｎの詳細な構成について、図２を参照して説明する。なお、入力部２−１〜２−ｎの構成は互いに同じであるため、以下では、入力部２−１を例に挙げて説明する。
【００２４】
図２に示すように、入力部２−１は、アドレス抽出部２１−１と、宛先検索部２２−１と、ヘッダ付加部２３−１とを有する。
【００２５】
アドレス抽出部２１−１は、外部から送信されてきた複数の宛先へ同時に送信されるマルチキャストパケットのヘッダからマルチキャストアドレスを抽出して宛先検索部２２−１へ出力する。
【００２６】
また、アドレス抽出部２１−１は、外部から送信されてきたマルチキャストパケットをヘッダ付加部２３−１へ出力する。
【００２７】
宛先検索部２２−１は、入力テーブルを記憶している。図３に示すように、入力テーブルは、アドレス抽出部２１−１に対して外部から送信されてくるマルチキャストパケットの宛先を示すマルチキャストアドレスと、マルチキャストパケットがスイッチ部３から出力される際の入力ポート５−１〜５−ｎから出力ポート６−１〜６−ｎへの経路を一意に特定するためのマルチキャストＩＤとを対応付ける情報である。なお、マルチキャストＩＤは、「第１のビット数」から構成される「マルチキャスト宛先識別情報」である。
【００２８】
宛先検索部２２−１は、アドレス抽出部２１−１からマルチキャストアドレスが出力されてきた場合、そのマルチキャストアドレスと同じマルチキャストアドレスに対応付けて記憶しているマルチキャストIDをヘッダ付加部２３−１へ出力する。
【００２９】
ヘッダ付加部２３−１は、宛先検索部２２−１から出力されてきたマルチキャストIDをアドレス抽出部２１−１から出力されてきたマルチキャストパケットの所定のビットに付加し、そのマルチキャストパケットを入力ポート５−１を介してスイッチ部３に出力する。
【００３０】
ここでいう「所定のビット」とは、マルチキャストパケットのヘッダなどのうちスイッチ部３が認識可能なビットのことを指す。
【００３１】
つぎに、図１に示したスイッチ部３の詳細な構成について、図４を参照して説明する。
【００３２】
図４に示すように、スイッチ部３は、ＩＤ識別部３１−１〜３１−ｎと、出力先検索部３２と、選択部３３−１〜３３−ｎと、出力バッファ３４−１〜３４−ｎとを有する。
【００３３】
ID識別部３１−１〜３１−ｎのそれぞれは、各ヘッダ付加部２３−１〜２３−ｎから各入力ポート５−１〜５−ｎを介して出力されてきたマルチキャストパケットに付加されたマルチキャストIDの所定のビットに含まれているスイッチマルチキャストＩＤを抽出して出力先検索部３２へ出力する。
【００３４】
また、各ID識別部３１−１〜３１−ｎは、１対１で対応する各選択部３３−１〜３３−ｎへ、入力ポート５−１〜５−ｎを介して出力されてきたマルチキャストパケットを出力する。
【００３５】
出力先検索部３２は、スイッチテーブルを記憶している。このスイッチテーブルは、マルチキャストパケットがスイッチ部３から出力される際の入力ポート５−１〜５−ｎから出力ポート６−１〜６−ｎへの経路（つまり、出力ポート６−１〜６−ｎからのマルチキャストパケット出力の有無の組合せである出力パターン）と、スイッチマルチキャストＩＤとを対応付ける情報である。
【００３６】
ここで、「スイッチマルチキャストID」とは、複数のマルチキャストＩＤを統合的に管理するために、外部から送信されてきたマルチキャストパケットが出力されるすべての出力ポートとそのマルチキャストパケットが出力されない出力ポートすべてのうち一部の出力ポートとを特定するための情報である。
【００３７】
なお、本実施形態では、スイッチマルチキャストIDは、複数のマルチキャストＩＤの所定のビットに共通して記述されている情報であって、マルチキャストIDのビット数である第１のビット数よりもビット数が小さな「第２のビット」数から成る。
【００３８】
図５の例では、スイッチテーブルは、２つのマルチキャストIDの所定のビット（マルチキャストＩＤの上位２ビット）に共通して含まれる、第２のビット数が２ビットから成るスイッチマルチキャストIDが記述されている。
【００３９】
例えば、マルチキャストID「0100」が与えられたマルチキャストパケットをスイッチ部３が入力した場合、出力先検索部３２は、マルチキャストIDの所定のビット（図５の例では、上位２ビット）に含まれているスイッチマルチキャストＩＤ「01」と対応付けて記憶している出力ポート６−１、６−２および６−ｎを検索する。
【００４０】
そして、出力先検索部３２は、検索した出力ポート６−１、６−２および６−ｎを、スイッチマルチキャストＩＤを出力してきたＩＤ識別部３１−１〜３１−ｎと対応する選択部３３−１〜３３−ｎへ通知する。
【００４１】
図５に示した例では、マルチキャストIDの所定のビットに含まれているマルチキャストＩＤの第１ビット数よりも小さな第２のビット数から成るスイッチマルチキャストＩＤを用いて、出力ポート６−１〜６−ｎを指定する。そのため、スイッチテーブルに登録されている設定情報の数を削減することができ、スイッチ部３がスイッチテーブルを記憶しておくためのメモリの使用量を削減することが可能となる。
【００４２】
各選択部３３−１〜３３−ｎは、１対１で対応する各ＩＤ識別部３１−１〜３１−ｎから出力されてきたマルチキャストパケットを、出力バッファ３４−１〜３４−ｎのうち出力先検索部３２から通知された出力ポート６−１〜６−ｎに対応する出力バッファ３４−１〜３４−ｎへ出力する。
【００４３】
例えば、出力先検索部３２が、選択部３３−１に対して、図６に示した出力ポート６−１、６−２および６−ｎを通知した場合を考える。この場合、選択部３３−１は、ＩＤ識別部３１−１から出力されてきたマルチキャストパケットを、出力先検索部３２から通知された各出力ポート６−１、６−２および６−ｎに１対１で対応する各出力バッファ３４−１、３４−２および３４−ｎへ出力する。
【００４４】
各出力バッファ３４−１〜３４−ｎは、所定時間が経過した際、選択部３３−１〜３３−ｎから出力されてきたマルチキャストパケットを、１対１で対応する各出力ポート６−１〜６−ｎを介して出力部４−１〜４−ｎに出力する。
【００４５】
つぎに、出力部４−１〜４−ｎの詳細な構成について、図６を参照して説明する。なお、出力部４−１〜４−ｎの構成は互いに同じであるため、以下では、出力部４−１について説明する。
【００４６】
図６に示すように、出力部４−１は、ＩＤ抽出部４１−１と、出力先確認部４２−１は、出力制御部４３−１とを有する。
【００４７】
ＩＤ抽出部４１−１は、出力バッファ３４−１から出力ポート６−１を介して出力されてきたマルチキャストパケットからマルチキャストＩＤを抽出して出力先確認部４２−１へ出力する。
【００４８】
また、ＩＤ抽出部４１−１は、出力バッファ３４−１から出力されてきたマルチキャストパケットを出力制御部４３−１へ出力する。
【００４９】
出力先確認部４２−１は、出力テーブルを記憶している。図７（ａ）に示すように、出力テーブルは、出力部４−１が外部に出力するべきマルチキャストパケットに与えられるマルチキャストＩＤを示す情報である。
【００５０】
出力先確認部４２−１は、ＩＤ抽出部４１−１から出力されてきたマルチキャストIDと同じマルチキャストＩＤが出力テーブルに記憶されているかどうかを判別する。そして、出力先確認部４２−１は、判別結果を出力制御部４３−１へ通知する。
【００５１】
出力制御部４３−１は、同じマルチキャストＩＤが出力テーブルに記憶されていることを示す判別結果が出力先確認部４２−１から通知された場合、ID抽出部４１−１から出力されてきたマルチキャストパケットを外部へ転送する。
【００５２】
また、出力制御部４３−１は、同じマルチキャストＩＤが出力テーブルに記憶されていないことを示す判別結果が出力先確認部４２−１から通知された場合、ID抽出部４１−１から出力されてきたマルチキャストパケットを廃棄する。
【００５３】
つぎに、スイッチ１がマルチキャストパケットを転送する動作の具体例を、図８〜１０を参照して詳細に説明する。
【００５４】
なお、以下の説明例では、宛先検索部２２−１は、図３に示した入力テーブルを記憶している。また、出力先検索部３２は、図５に示したスイッチテーブルを記憶している。また、出力先確認部４２−１は、図７（ａ）に示した出力テーブルを記憶している。また、出力先確認部４２−２は、図７（ｂ）に示す出力テーブルを記憶している。また、出力先確認部４２−ｎは、図７（ｃ）に示す出力テーブルを記憶している。また、理解を容易にするため、マルチキャストアドレスは、ビット数が４ビットのデータである場合を例に挙げて説明する。また、マルチキャストIDも、第１のビット数が４ビットのデータである場合を例に挙げて説明する。
【００５５】
まず、図８の動作例について説明する。なお、この動作例では、入力部２−１が外部から受信したマルチキャストパケットに与えられたマルチキャストアドレスが「0000」である場合について説明する。
【００５６】
入力部２−１のアドレス抽出部２１−１は、外部から送信されてきたマルチキャストパケットからマルチキャストアドレス「0000」を抽出して宛先検索部２２−１に出力する。また、アドレス抽出部２１−１は、外部から送信されてきたマルチキャストパケットをヘッダ付加部２３−１へ出力する。
【００５７】
その後、宛先検索部２２−１は、アドレス抽出部２１−１から出力されてきたマルチキャストアドレス「0000」と同じマルチキャストアドレスと対応付けて記憶しているマルチキャストID「0101」をヘッダ付加部２３−１へ出力する。
【００５８】
すると、ヘッダ付加部２３−１は、宛先検索部２２−１から出力されてきたマルチキャストID「0101」をアドレス抽出部２１−１から出力されてきたマルチキャストパケットの所定のビットに付加し、そのマルチキャストパケットを入力ポート１を介してＩＤ識別部３１−１へ出力する。
【００５９】
すると、ＩＤ識別部３１−１は、そのマルチキャストパケットに付加されたマルチキャストID「0101」の所定のビット（上位２ビット）に含まれている第２のビット数から成るスイッチマルチキャストＩＤ「01」を抽出して出力先検索部３２へ出力する。また、ＩＤ識別部３１−１は、選択部３３−１へ、入力ポート５−１を介して出力されてきたマルチキャストパケットを出力する。
【００６０】
続いて、出力先検索部３２は、ＩＤ識別部３１−１から出力されてきたスイッチマルチキャストID「01」と対応付けて記憶している出力ポート（図５の例では、出力ポート６−１、６−２および６−ｎ）を検索する。そして、出力先検索部３２は、検索した出力ポート６−１、６−２および６−ｎを、スイッチマルチキャストＩＤを出力してきたＩＤ識別部３１−１と対応する選択部３３−１へ通知する。
【００６１】
すると、選択部３３−１は、ＩＤ識別部３１−１から出力されてきたマルチキャストパケットを、出力先検索部３２から通知された出力ポート（この例では、出力ポート６−１、６−２および６−ｎ）に対応する出力バッファ３４−１と３４−２と３４−ｎとへ出力する。
【００６２】
各出力バッファ３４−１、３４−２および３４−ｎは、所定時間が経過した際、選択部３３−１から出力されてきたマルチキャストパケットを、各出力ポート６−１、６−２および６−ｎを介して各出力部４−１、４−２および４−ｎへそれぞれ出力する。
【００６３】
すると、各ＩＤ抽出部４１−１、４１−２および４１−ｎは、各マルチキャストパケットからマルチキャストＩＤ「0101」を抽出して各出力先確認部４２−１、４２−２および４２−ｎへそれぞれ出力する。また、各ＩＤ抽出部４１−１、４１−２および４１−ｎは、各出力ポート６−１、６−２および６−ｎを介して各出力バッファ３４−１、３４−２および３４−ｎから出力されてきたマルチキャストパケットを各出力制御部４３−１、４３−２および４３−ｎへ出力する。
【００６４】
すると、各出力先確認部４２−１、４２−２および４２−ｎは、各ＩＤ抽出部４１−１、４１−２および４１−ｎから出力されてきたマルチキャストIDと同じマルチキャストＩＤが出力テーブルに記憶されているかどうかをそれぞれ判別する。そして、各出力先確認部４２−１、４２−２および４２−ｎは、判別結果をそれぞれ各出力制御部４３−１、４３−２および４３−ｎへ通知する。
【００６５】
この説明例では、出力先確認部４２−１は、同じマルチキャストＩＤ「0101」が図７（ａ）に示した出力テーブルに記憶されていることを示す判別結果を出力制御部４３−１へ通知する。また、出力先確認部４２−２は、同じマルチキャストＩＤ「0101」が図７（ｂ）に示した出力テーブルに記憶されていることを示す判別結果を出力制御部４３−２へ通知する。また、出力先確認部４２−ｎは、同じマルチキャストＩＤ「0101」が図７（ｃ）に示した出力テーブルに記憶されていないことを示す判別結果を出力制御部４３−ｎへ通知する。
【００６６】
この場合、同じマルチキャストＩＤが出力テーブルに記憶されていることを示す判別結果が通知された出力制御部４３−１または４３−２は、ＩＤ抽出部４１−１または４１−２から出力されてきたマルチキャストパケットを外部へ転送する。一方、同じマルチキャストＩＤが出力テーブルに記憶されていないことを示す判別結果が通知された出力制御部４３−ｎは、ＩＤ抽出部４１−ｎから出力されてきたマルチキャストパケットを廃棄する。
【００６７】
つぎに、図９の動作例について説明する。なお、この動作例では、入力部２−１が入力したマルチキャストパケットのマルチキャストアドレスが「0001」である場合について説明する。
【００６８】
アドレス抽出部２１−１は、外部から送信されてきたマルチキャストパケットからマルチキャストアドレス「0001」を抽出して宛先検索部２２−１に出力するとともに、そのマルチキャストパケットをヘッダ付加部２３−１へ出力する。
【００６９】
すると、宛先検索部２２−１は、そのマルチキャストアドレス「0001」と対応付けて記憶しているマルチキャストID「0111」をヘッダ付加部２３−１へ出力する。続いて、ヘッダ付加部２３−１は、そのマルチキャストID「0111」をアドレス抽出部２１−１からのマルチキャストパケットの所定のビットに付加した後、マルチキャストパケットを入力ポート１を介してＩＤ識別部３１−１へ出力する。
【００７０】
すると、ＩＤ識別部３１−１は、そのマルチキャストパケットに付加されたマルチキャストID「0111」の所定のビット（上位２ビット）に含まれているスイッチマルチキャストＩＤ「01」を抽出して出力先検索部３２へ出力する。
【００７１】
続いて、出力先検索部３２は、そのスイッチマルチキャストID「01」と対応付けて記憶している出力ポート６−１、６−２および６−ｎを、スイッチマルチキャストＩＤを出力してきたＩＤ識別部３１−１と対応する選択部３３−１へ通知する。すると、選択部３３−１は、ＩＤ識別部３１−１から出力されてきたマルチキャストパケットを、出力先検索部３２から通知された出力ポートに対応する出力バッファ３４−１と３４−２と３４−ｎとへ出力する。各出力バッファ３４−１、３４−２および３４−ｎは、所定時間の経過後、そのマルチキャストパケットを、各出力ポート６−１、６−２および６−ｎを介して各ＩＤ抽出部４１−１、４１−２および４１−ｎへ出力する。
【００７２】
すると、各ＩＤ抽出部４１−１、４１−２および４１−ｎは、各マルチキャストパケットからマルチキャストＩＤ「0111」を抽出して各出力先確認部４２−１、４２−２および４２−ｎへ出力するとともに、マルチキャストパケットを各出力制御部４３−１、４３−２および４３−ｎへ出力する。
【００７３】
その後、各出力先確認部４２−１、４２−２および４２−ｎは、出力されてきたマルチキャストID「0111」と同じマルチキャストＩＤが出力テーブルに記憶されているかどうかを判別して、判別結果を各出力制御部４３−１、４３−２および４３−ｎへ通知する。
【００７４】
この動作例では、同じマルチキャストＩＤ「0111」が図７（ａ）に示した出力テーブルに記憶されていることを示す判別結果を出力先確認部４２−１から通知された出力制御部４３−１と、同じマルチキャストＩＤ「0111」が図７（ｃ）に示した出力テーブルに記憶されていることを示す判別結果を出力先確認部４２−ｎから通知された出力制御部４３−ｎとが、マルチキャストパケットを外部へ転送する。一方、同じマルチキャストＩＤ「0111」が図７（ｂ）に示した出力テーブルに記憶されていないことを示す判別結果を出力先確認部４２−２から通知された出力制御部４３−２は、マルチキャストパケットを廃棄する。
【００７５】
つぎに、図１０の動作例について説明する。なお、この動作例では、入力部２−１が入力したマルチキャストパケットのマルチキャストアドレスが「0010」である場合について説明する。
【００７６】
アドレス抽出部２１−１は、送信されてきたマルチキャストパケットからマルチキャストアドレス「0010」を抽出して宛先検索部２２−１に出力するとともに、そのマルチキャストパケットをヘッダ付加部２３−１へ出力する。すると、宛先検索部２２−１は、マルチキャストアドレス「0010」と対応付けられているマルチキャストID「0100」をヘッダ付加部２３−１へ出力する。続いて、ヘッダ付加部２３−１は、マルチキャストID「0111」をアドレス抽出部２１−１からのマルチキャストパケットに付加した後、マルチキャストパケットを入力ポート５−１を介してＩＤ識別部３１−１へ出力する。
【００７７】
すると、ＩＤ識別部３１−１は、そのマルチキャストパケットに付加されたマルチキャストID「0100」の所定のビット（上位２ビット）に含まれているスイッチマルチキャストＩＤ「01」を抽出して出力先検索部３２へ出力する。また、ＩＤ識別部３１−１は、入力ポート５−１を介して出力されてきたマルチキャストパケットを選択部３３−１へ出力する。
【００７８】
続いて、出力先検索部３２は、そのスイッチマルチキャストID「01」と対応付けられている出力ポート６−１、６−２および６−ｎを、スイッチマルチキャストＩＤを出力してきたＩＤ識別部３１−１と対応する選択部３３−１へ通知する。すると、選択部３３−１は、ＩＤ識別部３１−１から出力されてきたマルチキャストパケットを出力先検索部３２から通知された出力ポート６−１と６−２と６−ｎとに対応する出力バッファ３４−１と３４−２と３４−ｎとへ出力する。各出力バッファ３４−１、３４−２および３４−ｎは、所定時間の経過後、マルチキャストパケットを各出力ポート６−１、６−２および６−ｎを介して各ＩＤ抽出部４１−１、４１−２および４１−ｎへ出力する。
【００７９】
すると、各ＩＤ抽出部４１−１、４１−２および４１−ｎは、各マルチキャストパケットからマルチキャストＩＤ「0100」を抽出して各出力先確認部４２−１、４２−２および４２−ｎへ出力するとともに、マルチキャストパケットを各出力制御部４３−１、４３−２および４３−ｎへ出力する。その後、各出力先確認部４２−１、４２−２および４２−ｎは、そのマルチキャストID「0100」と同じマルチキャストＩＤが出力テーブルに記憶されているかどうかを判別し、各判別結果を各出力制御部４３−１、４３−２および４３−ｎへ通知する。
【００８０】
すると、同じマルチキャストＩＤ「0100」が出力テーブルに記憶されていることを示す判別結果を通知された出力制御部４３−１と４３−２と４３−ｎとが、マルチキャストパケットを外部へ転送する。
【００８１】
なお、以下に、スイッチ１がマルチキャストパケットを転送する際の入力部２−１〜２−ｎ、スイッチ部３、出力部４−１〜４−ｎのそれぞれの動作について説明する。
【００８２】
まず、入力部２−１〜２−ｎの動作について、図１１に示すフローチャートを参照して説明する。
【００８３】
図１１に示すステップ５０１にて、まず、各アドレス抽出部２１−１〜２１−ｎは、外部からマルチキャストパケットが送信されてきた場合、マルチキャストパケットからマルチキャストアドレスを抽出して各宛先検索部２２−１〜２２−ｎに出力する。また、各アドレス抽出部２１−１〜２１−ｎは、外部から送信されてきたマルチキャストパケットを各ヘッダ付加部２３−１〜２３−ｎへ出力する。
【００８４】
すると、各宛先検索部２２−１〜２２−ｎは、各アドレス抽出部２１−１〜２１−ｎから出力されてきたマルチキャストアドレスと同じマルチキャストアドレスと対応付けて記憶しているマルチキャストIDをヘッダ付加部２３−１〜２３−ｎへ出力する。
【００８５】
すると、ステップ５０２にて、各ヘッダ付加部２３−１〜２３−ｎは、各宛先検索部２２−１〜２２−ｎから出力されてきたマルチキャストIDを各アドレス抽出部２１−１〜２１−ｎから出力されてきたマルチキャストパケットの所定のビットに付加する。
【００８６】
続いて、ステップ５０３にて、各ヘッダ付加部２３−１〜２３−ｎは、マルチキャストＩＤを付加したマルチキャストパケットを各入力ポート５−１〜５−ｎを介して各ＩＤ識別部３１−１〜３１−ｎへ出力する。
【００８７】
つぎに、スイッチ部３の動作について、図１２に示すフローチャートを参照して説明する。
【００８８】
マルチキャストパケットが各入力ポート５−１〜５−ｎを介して各ヘッダ付加部２３−１〜２３−ｎから出力されてきた場合、まず、図１２に示すステップ６０１にて、ＩＤ識別部３１−１〜３１−ｎは、そのマルチキャストパケットに付加されたマルチキャストIDの所定のビット（例えば、上位２ビット）に含まれているスイッチマルチキャストＩＤを抽出して出力先検索部３２へ出力する。
【００８９】
続いて、出力先検索部３２は、ＩＤ識別部３１−１〜３１−ｎから出力されてきたスイッチマルチキャストIDと対応付けて記憶している出力ポートを検索する。そして、ステップ６０２にて、出力先検索部３２は、検索した出力ポートを、スイッチマルチキャストＩＤを出力してきたＩＤ識別部３１−１〜３１−ｎと対応する選択部３３−１〜３３−ｎへ通知する。
【００９０】
すると、ステップ６０３にて、各選択部３３−１〜３３−ｎは、各ＩＤ識別部３１−１〜３１−ｎから出力されてきたマルチキャストパケットを、出力バッファ３４−１〜３４−ｎのうち出力先検索部３２から通知された出力ポートに対応する出力バッファへ出力する。なお、各出力バッファ３４−１〜３４−ｎは、所定時間が経過した際、選択部３３−１〜３３−ｎから出力されてきたマルチキャストパケットを、各出力ポート６−１〜６−ｎを介して各ＩＤ抽出部４１−１〜４１−ｎへ出力する。
【００９１】
つぎに、出力部４−１〜４−ｎの動作について、図１３に示すフローチャートを参照して説明する。
【００９２】
マルチキャストパケットが各出力ポート６−１〜６−ｎを介して各出力バッファ３４−１〜３４−ｎから出力されてきた場合、まず、図１３に示すステップ７０１にて、各ＩＤ抽出部４１−１〜４１−ｎは、マルチキャストパケットからマルチキャストＩＤを抽出して各出力先確認部４２−１〜４２−ｎへ出力する。また、各ＩＤ抽出部４１−１〜４１−ｎは、各出力バッファ３４−１〜３４−ｎから出力されてきたマルチキャストパケットを各出力制御部４３−１〜４３−ｎへ出力する。
【００９３】
すると、ステップ７０２にて、各出力先確認部４２−１〜４２−ｎは、各ＩＤ抽出部４１−１〜４１−ｎから出力されてきたマルチキャストIDと同じマルチキャストＩＤが出力テーブルに記憶されているかどうかを判別する。そして、各出力先確認部４２−１〜４２−ｎは、判別結果をそれぞれ各出力制御部４３−１〜４３−ｎへ通知する。
【００９４】
同じマルチキャストＩＤが出力テーブルに記憶されていることを示す判別結果が通知された場合、ステップ７０３にて、各出力制御部４３−１〜４３−ｎは、各ＩＤ抽出部４１−１〜４１−ｎから出力されてきたマルチキャストパケットを外部へ転送する。
【００９５】
一方、同じマルチキャストＩＤが出力テーブルに記憶されていないことを示す判別結果が通知された場合、ステップ７０４にて、各出力制御部４３−１〜４３−ｎは、各ＩＤ抽出部４１−１〜４１−ｎから出力されてきたマルチキャストパケットを廃棄する。
【００９６】
以上で、スイッチ１がマルチキャストパケットを転送する際の入力部２−１〜２−ｎ、スイッチ部３および出力部４−１〜４−ｎによる各動作が終了する。
【００９７】
以上説明したように、本発明の実施形態によれば、スイッチ部３の出力先検索部３２は、複数のマルチキャストＩＤを統一的に管理するためのスイッチマルチキャストＩＤと、出力ポート６−１〜６−ｎとを対応付けて記憶している。そのため、スイッチ部３がマルチキャスト転送を行うために記憶しておくデータ量を低減させるとともに、マルチキャストパケットの転送に付随してスイッチ部３から出力部４−１〜４−ｎへ出力するデータの量が必要以上に増えることを抑制することができる。
【００９８】
なお、本発明においては、スイッチ１内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムをスイッチ１にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをスイッチ１に読み込ませ、実行するものであってもよい。スイッチ１にて読取可能な記録媒体とは、フロッピーディスク（登録商標）、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、スイッチ１に内蔵されたＨＤＤ等を指す。この記録媒体に記録されたプログラムは、例えば、スイッチ１が有する入力部２−１〜２−ｎ、スイッチ部３および出力部４−１〜４−ｎにて読み込まれ、入力部２−１〜２−ｎ、スイッチ部３および出力部４−１〜４−ｎの制御によって、上述したものと同様の処理が行われる。
【００９９】
ここで、スイッチ１が有する入力部２−１〜２−ｎ、スイッチ部３および出力部４−１〜４−ｎは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。
【０１００】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明の要旨を逸脱しない範囲で当業者が理解し得る各種の変形が可能である。
【符号の説明】
【０１０１】
１  スイッチ
２−１〜２−ｎ  入力部
２１−１〜２１−ｎ  アドレス抽出部
２２−１〜２２−ｎ  宛先検索部
２３−１〜２３−ｎ  ヘッダ付加部
３  スイッチ部
３１−１〜３１−ｎ  ＩＤ識別部
３２  出力先検索部
３３−１〜３３−ｎ  選択部
３４−１〜３４−ｎ  出力バッファ
４−１〜４−ｎ  出力部
４１−１〜４１−ｎ  ＩＤ抽出部
４２−１〜４２−ｎ  出力先確認部
４３−１〜４３−ｎ  出力制御部
５−１〜５−ｎ  入力ポート
６−１〜６−ｎ  出力ポート
【図１】
2010233010.tif 000003
【図２】
2010233010.tif 000004
【図３】
2010233010.tif 000005
【図４】
2010233010.tif 000006
【図５】
2010233010.tif 000007
【図６】
2010233010.tif 000008
【図７】
2010233010.tif 000009
【図８】
2010233010.tif 000010
【図９】
2010233010.tif 000011
【図１０】
2010233010.tif 000012
【図１１】
2010233010.tif 000013
【図１２】
2010233010.tif 000014
【図１３】
2010233010.tif 000015
【図１４】
2010233010.tif 000016
【図１５】
2010233010.tif 000017