(57)【要約】【課題】宛先ＭＡＣアドレスがルーティングテーブルに記憶されていないパケットを受信した場合に、中継装置が備える全ポートから、迅速に、送出するポートを特定することを目的とする。【解決手段】中継装置は、いずれかのグループに属するパケットを受信し、受信したパケットの送信先がルーティングテーブルに登録されていない場合は、ＬＩＵが備える全ポートを示すビットマップのうち、グループ内のポートを示す宛先ビットマップを示す部分のみを読み出し、読み出したデータに基づいてパケットを送出する。【選択図】図８
2011234063.tif 000002
【特許請求の範囲】
【請求項１】
いずれかのグループに属するパケットを受信する受信手段と、
パケットの送信先とポートとを対応付けて記憶するルーティング情報記憶手段と、
グループ毎に、出力ポートとなり得るポート毎に１ビットが対応するビットマップであって、グループに属するパケットを出力するポートが示されているビットマップを記憶しており、一度に所定数のビットのデータを読み出すことができるビットマップ記憶手段と、
前記ビットマップを前記所定数のビットのビット群に分割した場合の各ビット群に対応付けて、ビット群がパケットを出力するポートを示すビットを含んでいるか否かを示す特定情報を記憶する特定情報記憶手段と、
受信したパケットの送信先が前記ルーティング記憶手段に記憶されている場合は、当該送信先と対応付けられているポートに当該パケットを送出し、受信したパケットの送信先が前記ルーティング記憶手段に記憶されていない場合は、当該パケットが属するグループのビットマップのビット群であって、パケットを出力するポートを示すビットを含んでいることを前記特定情報が示しているビット群を読み出し、読み出したビット群に基づいたポートに当該パケットを送出する転送手段と
を備える中継装置。
【請求項２】
前記グループは、仮想的なネットワークに基づくグループである
請求項１記載の中継装置。
【請求項３】
前記ビットマップ記憶手段は、ポートのデータ幅が前記所定数のビットのＲＡＭである
請求項１記載の中継装置。
【請求項４】
パケットの送信先とポートとを対応付けて記憶させておき、
パケットはいずれかのグループに属し、パケットが属するグループ毎に、出力ポートとなり得るポート毎に１ビットが対応するビットマップであって、グループに属するパケットを出力するポートが示されているビットマップを、一度に所定数のビットのデータを読み出すことができるビットマップ記憶手段に記憶させておき、
前記ビットマップを前記所定数のビットのビット群に分割した場合の各ビット群に対応付けて、ビット群がパケットを出力するポートを示すビットを含んでいるか否かを示す特定情報を特定情報記憶手段に記憶させておき、
パケットを受信し、
受信したパケットの送信先が前記ルーティング記憶手段に記憶されている場合は、当該送信先と対応付けられているポートに当該パケットを送出し、受信したパケットの送信先が前記ルーティング記憶手段に記憶されていない場合は、当該パケットが属するグループのビットマップのビット群であって、パケットを出力するポートを示すビットを含んでいることを前記特定情報が示しているビット群を読み出し、読み出したビット群に基づいたポートに当該パケットを送出する
転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを転送する中継装置に関する。
【背景技術】
【０００２】
近年の情報処理技術の発展に伴い、パケット交換網はメール等の単なるデータの送信のみならず、ＩＰ電話及びＩＰ放送等にも使用されるようになってきている。
【０００３】
このようなＩＰ電話等の通信では、中継装置におけるパケットの転送処理は特に重要となる。例えば、ＩＰ電話の音声はパケットによって運ばれるが、パケットの遅延又はパケットの損失等が生じると、音声が正確に伝わらなくなってしまうからである。
【０００４】
中継装置、例えば、Ｌ(Layer)２スイッチでは、パケット（ＭＡＣフレーム）を受信すると、いわゆるルーティングテーブルを参照し、受信したパケットの宛先ＭＡＣアドレスに対応付けて記憶されているポートに、受信したパケットを送出する。
【０００５】
このルーティングテーブルに記憶されているＭＡＣアドレスとポートとの対応関係は、Ｌ２スイッチが、いずれかのポートからパケットを受信すると、受信したパケットの送信元ＭＡＣアドレスと受信したポートとを対応付けて記憶していくことで学習されていく。
【０００６】
従って、受信したパケットの宛先ＭＡＣアドレスに対応するポートが記憶されていない場合があり得、その場合は、受信したポート以外の全ポートにパケットを送出する。
【０００７】
物理的なポート（以下、「物理ポート」という。）に対して複数の論理的なポート（以下、「論理ポート」という。）が割り当てられている場合には、パケットの送出先は、物理ポートと論理ポートとの組み合わせで指定するので、論理ポートの数如何によっては、パケットの送出対象となり得るポートの数が増大する。
【０００８】
ここで、２分木検索を使ってマルチキャストパケットの１又は複数のポートを示す経路情報を検索する技術が提案されている（特許文献１等参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−１１５２４３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ＬＡＮ（Local Area Network）を仮想的にグループ分けした複数のＬＡＮのパケット転送を行っている中継装置では、受信したパケットの宛先ＭＡＣアドレスがルーティングテーブルに記憶されていない場合、受信したパケットが属するグループと同一グループに属するパケットを送出する可能性のある全ポート（以下、「グループ内ポート」という。）に送出することとなる。
【００１１】
この場合、受信されたパケットが属するグループのグループ内ポートを特定するためには、中継装置が備える全ポート、すなわち、物理ポートと論理ポートとの組み合わせで指定される全ポートを検索対象とする必要があり、ポートの数が多くなればなるほど検索に時間を要することとなる。中継装置が備える全ポートを検索対象とするのは、グループ内ポートの数及びポート番号は、グループによってそれぞれ異なっているからである。
【００１２】
従って、受信したパケットの宛先ＭＡＣアドレスがルーティングテーブルに記憶されていない場合は、受信したパケットの宛先ＭＡＣアドレスがルーティングテーブルに記憶されている場合に比べて、パケットの送出が遅延することになる。
【００１３】
そこで、本発明は、宛先ＭＡＣアドレスがルーティングテーブルに記憶されていないパケットを受信した場合に、中継装置が備える全ポートから、迅速に、送出するポートを特定することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の１形態に係る中継装置は、いずれかのグループに属するパケットを受信する受信手段と、パケットの送信先とポートとを対応付けて記憶するルーティング情報記憶手段と、グループ毎に、出力ポートとなり得るポート毎に１ビットが対応するビットマップであって、グループに属するパケットを出力するポートが示されているビットマップを記憶しており、一度に所定数のビットのデータを読み出すことができるビットマップ記憶手段と、前記ビットマップを前記所定数のビットのビット群に分割したとした場合の各ビット群に対応付けて、ビット群がパケットを出力するポートを示すビットを含んでいるか否かを示す特定情報を記憶する特定情報記憶手段と、受信したパケットの送信先が前記ルーティング記憶手段に記憶されている場合は、当該送信先と対応付けられているポートに当該パケットを送出し、受信したパケットの送信先が前記ルーティング記憶手段に記憶されていない場合は、当該パケットが属するグループのビットマップのビット群であって、パケットを出力するポートを示すビットを含んでいることを前記特定情報が示しているビット群を読み出し、読み出したビット群に基づいたポートに当該パケットを送出する転送手段と、を有する。
【発明の効果】
【００１５】
上記構成の中継装置は、宛先ＭＡＣアドレスがルーティングテーブルに記憶されていないパケットを受信した場合に、中継装置が備える全ポートから、迅速に、送出するポートを特定することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】中継装置の構成の例を示す図である。
【図２】パケットの構成及び内容例を示す図である。
【図３】ＬＩＵ１０００及びＬＩＵ２０００の構成例を示す図である。
【図４】ドメインＩＤ情報の構成及び内容の例を示す図である。
【図５】宛先カード情報の構成及び内容の例を示す図である。
【図６】ＬＩＵ１０００のパケット１００の送信処理のフローチャートである。
【図７】宛先設定処理部の機能ブロック図である。
【図８】宛先ビットマップテーブルの構成及び内容の例を示す図である。
【図９】グループビットマップテーブルの構成及び内容の例を示す図である。
【図１０】宛先ポート変換テーブルの構成及び内容の例を示す図である。
【図１１】宛先ビットマップを読み出す例を示す図である。
【図１２】ＬＩＵ２０００のパケット１００の送信処理のフローチャートである。
【図１３】受信帯域と出力帯域の例を示したタイムチャートである。
【発明を実施するための形態】
【００１７】
＜実施形態＞
図１は、実施形態における中継装置１０の構成の例を示す図である。
【００１８】
中継装置１０は、図１においては、端末装置１及び２と端末装置３〜９との間で送受信されるパケットを中継する。
【００１９】
中継装置１０は、ＬＩＵ（Line Interface Unit）１０００Ａ、ＬＩＵ１０００Ｂ、ＬＩＵ２０００Ａ、ＬＩＵ２０００Ｂ、ＬＩＵ２０００Ｃ、及び、ＳＷ（SWitch）１１を有する。以下、ＬＩＵ１０００Ａ及びＬＩＵ１０００Ｂを総称して「ＬＩＵ１０００」といい、ＬＩＵ２０００Ａ、ＬＩＵ２０００Ｂ及びＬＩＵ２０００Ｃを総称して「ＬＩＵ２０００」という。
【００２０】
ＬＩＵ１０００及びＬＩＵ２０００は、中継装置１０が運用されているネットワークに対応したインタフェースユニットであり、ＬＩＵ１０００及びＬＩＵ２０００は、いずれもがパケットを受信する側にも、送信する側にもなり得る機能を有している。
【００２１】
図１では、説明の便宜上、中継装置１０は、端末装置１〜３のいずれかから送信されたパケット１０１を、パケット１０２として端末装置３〜９のいずれかに送出する場合を想定する。
【００２２】
すなわち、ＬＩＵ１０００を用いて、パケットを受信する側のＬＩＵの機能を説明し、ＬＩＵ２０００を用いて、パケッを出力する側のＬＩＵの機能を説明する。
【００２３】
ＬＩＵ１０００は、パケット１０１を受信すると、受信したパケット１０１に装置内ヘッダを付加してパケット１００として、ＳＷ１１に出力する。
【００２４】
ＳＷ１１は、入力したパケット１００の装置内ヘッダの内容に応じて、ＬＩＵ２０００に出力する。
【００２５】
ＬＩＵ２０００は、入力したパケット１００の装置内ヘッダの内容から、適切なＬＩＵ２０００の適切なポートを判断し、装置内ヘッダを削除したパケット１０２を送出する。
【００２６】
＜装置内のパケット＞
図２は、パケット１００の構成及び内容例を示す図である。尚、パケット１００は、パケット１０１に装置内ヘッダ１１０を付加したものである。また、パケット１０２は、パケット１０１と同じ構成を有する。
【００２７】
パケット１０１は、宛先ＭＡＣアドレスを示すＤＡ（Destination Address）１２０、送信元ＭＡＣアドレスを示すＳＡ（Source Address）１３０、Ｔａｇ１４０、データ部を示すＤａｔａ１５０、誤りチェックデータであるＦＳＣ（Frame Check Sequence）１６０を有する。
【００２８】
Ｔａｇ１４０は、いわゆるＶＬＡＮ（Virtual LAN）タグであり、パケット１０１が、どのＶＬＡＮに属するかを示す識別子であるＶＬＡＮ−ＩＤ１４１を有する。
【００２９】
装置内ヘッダ１１０は、Ｕｎｉ／Ｍｕｌｔｉフラグ１１１、宛先カードビットマップ１１２、ドメインＩＤ１１３、入力ポート情報１１４、及び、宛先ポート情報１１５を有する。
【００３０】
Ｕｎｉ／Ｍｕｌｔｉフラグ１１１は、パケット１０１がユニキャストパケットであるか、マルチキャストパケットであるかを示す。
【００３１】
例えば、Ｕｎｉ／Ｍｕｌｔｉフラグ１１１として、１ビットを割り当てられている。「１」であれば、パケット１００はユニキャストパケットであることを示し、「０」であれば、パケット１０１はマルチキャストパケットであることを示す。
【００３２】
宛先カードビットマップ１１２は、パケット１００を、いずれのＬＩＵ２０００に送信するかを示すビットマップである。１ビットが、ＬＩＵ２０００に対応している。
【００３３】
この宛先カードビットマップ１１２に応じて、ＳＷ１１はパケット１００をＬＩＵ２０００に送信する。
【００３４】
パケット１０１がユニキャストパケットの場合は、この宛先カードビットマップ１１２のうち、１つのビットが「１」となっている。また、マルチキャストパケットの場合は、１以上のビットが「１」となっている。
【００３５】
ドメインＩＤ１１３は、パケット１０１が属するグループを示す識別子である。
【００３６】
パケット１０１がマルチキャストパケットの場合は、このドメインＩＤ１１３が示すグループに属するパケットを送出する可能性のある全ポートに、パケット１０１を送出することになる。
【００３７】
入力ポート情報１１４は、パケット１００が受信されたＬＩＵ１０００を示すカード番号、物理ポート番号、及び、論理ポート番号を示す。
【００３８】
宛先ポート情報１１５は、パケット１０１の宛先情報を示す。この宛先情報とは、パケット１０１を送出するポート、すなわち、物理ポート番号及び論理ポート番号を示す。
【００３９】
尚、宛先ポート情報１１５は、ＬＩＵ２０００が受信するときには、Ｕｎｉ／Ｍｕｌｔｉフラグ１１１がユニキャストパケットを示す場合にのみ有効である。マルチキャストパケットの場合は、宛先が不明であるからである。
【００４０】
＜構成＞
図３は、ＬＩＵ１０００及びＬＩＵ２０００の構成例を示す図である。尚、図３では、ＬＩＵ１０００及びＬＩＵ２０００が備える機能のうち、マルチキャストパケット送信処理に関連する機能部を中心に記載する。
【００４１】
また、図３は、ＬＩＵ１０００によって受信されたパケット１００が、ＬＩＵ２０００から送出されるまでの流れを示している。
【００４２】
ＬＩＵ１０００は、宛先判定部１１００、ドメインＩＤ情報記憶部３１００、ルーティングテーブル記憶部３２００、及び、宛先カード情報記憶部３３００を備える。
【００４３】
宛先判定部１１００は、受信したパケット１０１用の装置内ヘッダ１１０を生成し、パケット１０１に付加して、パケット１００としてＳＷ１１に送る機能を有する。
【００４４】
装置内ヘッダ１１０を作成する際、宛先判定部１１００は、ドメインＩＤ情報記憶部３１００、ルーティングテーブル記憶部３２００及び宛先カード情報記憶部３３００に記憶されているデータを参照する。尚、ドメインＩＤ情報記憶部３１００、ルーティングテーブル記憶部３２００及び宛先カード情報記憶部３３００に記憶されているデータ、及び、装置内ヘッダ１１０を生成する処理については、＜ＬＩＵ１０００＞の項で説明する。
【００４５】
ＳＷ１１は、ＬＩＵ１０００からパケット１００を受信し、装置内ヘッダ１１０の宛先カードビットマップ１１２（図２参照）を参照し、宛先カードとして指定されているカード、すなわち、ＬＩＵ２０００にパケット１００を送信する機能を有する。
【００４６】
ＬＩＵ２０００は、Ｕｎｉ／Ｍｕｌｔｉ判定部２２００、ＳＥＬ２３００、ポート判定部２４００、ＦＩＦＯ２５００、宛先設定処理部２１００、宛先ビットマップ記憶部３４００、グループビットマップ記憶部３５００、及び、宛先変換テーブル記憶部３６００を有する。
【００４７】
Ｕｎｉ／Ｍｕｌｔｉ判定部２２００は、パケット１００がユニキャストパケットであるか、マルチキャストパケットであるかを判断し、ユニキャストパケットである場合はＳＥＬ２３００に送信し、マルチキャストパケットである場合は、宛先設定処理部２１００に送信する。
【００４８】
Ｕｎｉ／Ｍｕｌｔｉ判定部２２００は、パケット１００の装置内ヘッダ１１０のＵｎｉ／Ｍｕｌｔｉフラグ１１１を参照し、「１」である場合は、パケット１００はユニキャストパケットであると判断し、「０」である場合は、マルチキャストパケットであると判断する。
【００４９】
宛先設定処理部２１００は、マルチキャストパケットであるパケット１００を受信し、装置内ヘッダ１１０のドメインＩＤ１１３に基づいて、送出するポートを選出する。この際、宛先ビットマップ記憶部３４００、グループビットマップ記憶部３５００及び宛先変換テーブル記憶部３６００に記憶されているテーブルを参照する。
【００５０】
宛先設定処理部２１００は、選出したポートそれぞれを宛先情報として設定した、選出したポート数分のパケット１３０を生成してＳＥＬ２３００に送信する。
【００５１】
この宛先設定処理部２１００の機能については、＜ＬＩＵ２０００＞の項で、図７等を用いて説明する。
【００５２】
ＳＥＬ２３００は、Ｕｎｉ／Ｍｕｌｔｉ判定部２２００から受信したパケット１００、又は、宛先設定処理部２１００から受信したパケット１３０をポート判定部２４００に送信する。ＳＥＬ２３００が受信するパケット１００及びパケット１３０には、宛先情報が設定されている。
【００５３】
ポート判定部２４００は、ＳＥＬ２３００から受信したパケット１００の装置内ヘッダ１１０の宛先ポート情報１１５に応じたＦＩＦＯ２５００に蓄積する。この際、パケット１００の装置内ヘッダ１１０を削除し、パケット１０２として蓄積する。
【００５４】
ＦＩＦＯ２５００に蓄積されたパケット１０２は、順次、適切なタイミングでそれぞれの物理ポートから送出される。
【００５５】
＜ＬＩＵ１０００＞
以下、ＬＩＵ１０００の宛先判定部１１００が、装置内ヘッダ１１０を生成し、パケット１００を送信する処理を説明する。
【００５６】
＜データ＞
まず、宛先判定部１１００が参照するデータについて説明する。
【００５７】
図４は、ドメインＩＤ情報３１１０の構成及び内容の例を示す図である。
【００５８】
このドメインＩＤ情報３１１０は、ドメインＩＤ情報記憶部３１００に記憶されているデータである。このデータを参照して、パケット１０１が属するグループを示すドメインＩＤを取得する。
【００５９】
ドメインＩＤ情報３１１０は、物理ポート番号３１１１、ＶＬＡＮ−ＩＤ３１１２、及び、ドメインＩＤ３１１３を有する。
【００６０】
物理ポート番号３１１１は、パケット１０１が受信された物理ポート番号を示す。
【００６１】
ＶＬＡＮ−ＩＤ３１１２は、パケット１０１のＶＬＡＮ−ＩＤ１４１として設定されている識別子を示す。
【００６２】
ドメインＩＤ３１１３は、パケット１０１が属するグループの識別子を示す。
【００６３】
尚、物理ポート番号３１１１及びＶＬＡＮ−ＩＤ３１１２は、ビット列を示し、ドメインＩＤ３１１３は１０進数を示す。
【００６４】
例えば、パケット１０１が受信された物理ポート番号が「０００」で、パケット１０１のＶＬＡＮ−ＩＤ１４１に「００００  ００００  ０００１」が設定されている場合は、パケット１０１が属するグループのドメインＩＤは「＃１９８」、すなわち、十進数で１９８である。物理ポート番号３１１１とＶＬＡＮ−ＩＤ３１１２として、それぞれ「０００」と「００００  ００００  ０００１」とが設定されているレコードに、ドメインＩＤ３１１３として「＃１９８」が設定されているからである。以下、「＃」を付けた数字は、十進数を表すものとする。
【００６５】
尚、例えば、ドメインＩＤ情報記憶部３１００はＲＡＭ（Random Access Memory）であり、物理ポート番号３１１１及びＶＬＡＮ−ＩＤ３１１２として設定されているビット列に基づいたアドレスに、対応するドメインＩＤ３１１３として設定されている番号を記憶しているものとしてもよい。
【００６６】
図５は、宛先カード情報３３１０の構成及び内容の例を示す図である。
【００６７】
この宛先カード情報３３１０は、ドメインＩＤ情報記憶部３１００に記憶されているデータである。このデータを参照して、パケット１０１を送信するＬＩＵ２０００を取得する。
【００６８】
宛先カード情報３３１０は、ドメインＩＤ３３１１、及び、宛先カードビットマップ３３１２を有する。
【００６９】
ドメインＩＤ３３１１は、パケット１０１が属するグループの識別子を示す。
【００７０】
宛先カードビットマップ３３１２は、ドメインＩＤ３３１１で示されるグループに属するパケットを送信するＬＩＵ２０００を示す。宛先カードビットマップ３３１２は、ビットマップで示され、「１」となっているビットが示すＬＩＵ２０００にパケット１０１を送信する。
【００７１】
尚、例えば、ドメインＩＤ情報記憶部３１００はＲＡＭであり、ドメインＩＤ３３１１として設定されている番号に基づいたアドレスに、対応する宛先カードビットマップ３３１２として設定されているビットマップを記憶しているものとしてもよい。
【００７２】
次に、ルーティングテーブル記憶部３２００に記憶されているルーティングテーブルは、ＭＡＣアドレス、ドメインＩＤ、カード番号及び宛先情報（物理ポート及び論理ポート）をそれぞれ対応させたテーブルである。尚、ルーティングテーブル記憶部３２００として、ＣＡＭ（Content Addressable Memory）を用いてもよい。
【００７３】
＜動作＞
図６は、ＬＩＵ１０００のパケット１００の送信処理のフローチャートである。
【００７４】
ＬＩＵ１０００は、パケット１０１を受信すると、受信した物理ポート番号等の情報とともに、パケット１０１を宛先判定部１１００に渡す。
【００７５】
宛先判定部１１００は、まず、渡されたパケット１０１が属するグループを示すドメインＩＤを取得する。このドメインＩＤは、パケット１０１が属するＶＬＡＮを示すＶＬＡＮ−ＩＤ及び受信ポート（物理ポート）から取得する（ステップＳ１００）。
【００７６】
詳細には、宛先判定部１１００は、パケット１０１が属するＶＬＡＮを示すＶＬＡＮ−ＩＤとして、Ｔａｇ１４０のＶＬＡＮ−ＩＤ１４１を読み出す。
【００７７】
宛先判定部１１００は、ドメインＩＤ情報３１１０から、パケット１０１が受信された物理ポートの番号及び読み出したＶＬＡＮ−ＩＤ１４１をアドレスとして、パケット１０１のドメインＩＤを読み出す。
【００７８】
次に、宛先判定部１１００は、ＤＡ１２０及びドメインＩＤを検索キーとして、ルーティングテーブルに宛先情報（物理ポート及び論理ポート）及びカード番号が登録されているかを検索する（ステップＳ１１０）。
【００７９】
宛先情報が登録されている場合は（ステップＳ１１０：Ｙｅｓ）、ユニキャストパケットであるので、宛先判定部１１００はユニキャストパケット用の装置内ヘッダ１１０を生成する（ステップＳ１４０）。
【００８０】
具体的には、Ｕｎｉ／Ｍｕｌｔｉフラグ１１１を「１」とし、宛先カードビットマップ１１２のビットのうち、ルーティングテーブルに登録されていたカード番号に該当するビットを「１」とし、ルーティングテーブルに登録されていた宛先情報を宛先ポート情報１１５として設定する。また、取得したドメインＩＤをドメインＩＤ１１３として設定し、受信された物理ポート等を入力ポート情報１１４として設定する。
【００８１】
装置内ヘッダ１１０を生成した宛先判定部１１００は、生成した装置内ヘッダ１１０をパケット１０１に付加し、パケット１００としてＳＷ１１に送信する（ステップＳ１５０）。
【００８２】
一方、ルーティングテーブルに宛先情報が登録されていない場合は（ステップＳ１１０：Ｎｏ）、マルチキャストパケットであるので、宛先判定部１１００は、宛先カードの番号を取得する（ステップＳ１２０）。
【００８３】
詳細には、宛先カード情報３３１０（図５参照）から、ステップＳ１００において取得してドメインＩＤをアドレスとして、対応する宛先カードビットマップを読み出す。
【００８４】
ビットマップを読み出した宛先判定部１１００は、マルチキャストパケット用の装置内ヘッダ１１０を生成する（ステップＳ１３０）。
【００８５】
具体的には、Ｕｎｉ／Ｍｕｌｔｉフラグ１１１を「０」とし、宛先カードビットマップ１１２として、読み出したビットマップを設定する。また、取得したドメイＩＤをドメインＩＤ１１３として設定し、受信された物理ポート等を入力ポート情報１１４として設定する。
【００８６】
装置内ヘッダ１１０を生成した宛先判定部１１００は、生成した装置内ヘッダ１１０をパケット１０１に付加し、パケット１００としてＳＷ１１に送信する（ステップＳ１５０）。
【００８７】
＜ＬＩＵ２０００＞
以下、ＬＩＵ２０００の宛先設定処理部２１００が、マルチキャストパケットの宛先を選出する処理について説明する。
【００８８】
図７は、宛先設定処理部２１００の機能ブロック図である。
【００８９】
宛先設定処理部２１００は、内部ＦＩＦＯ２１１０、パケット書込部２１２０、パケット読出部２１３０、宛先決定部２１４０、宛先読出部２１５０、宛先グループ読出部２１６０、複製生成部２１７０、ＣＰＵ設定部２１８０、パケットバッファ３０００、宛先ビットマップ記憶部３４００、グループビットマップ記憶部３５００、及び、宛先変換テーブル記憶部３６００を有する。尚、点線は、パケットの流れを示す。
【００９０】
内部ＦＩＦＯ２１１０は、マルチキャストパケットであるパケット１００のバッファ領域である。
【００９１】
パケット書込部２１２０は、Ｕｎｉ／Ｍｕｌｔｉ判定部２２００から受信したパケット１００を、パケットバッファ３０００に書き込む機能を有する。
【００９２】
パケット読出部２１３０は、パケットバッファ３０００からパケット１００を、パケット書込部２１２０が書き込んだ古いほうから順に読み出して、内部ＦＩＦＯ２１１０に蓄積する機能を有する。マルチキャストパケットは、一旦、パケットバッファ３０００に蓄積され、順に内部ＦＩＦＯ２１１０に移されて処理される。
【００９３】
宛先決定部２１４０は、パケット１００の宛先、すなわち、パケット１００が属するグループ内の全ポートを決定し、決定した宛先の全てにパケットを送出するように制御する機能を有する。
【００９４】
宛先読出部２１５０は、パケット１００が属するグループの宛先を示す宛先ビットマップを読み出し、読み出した宛先ビットマップから具体的な宛先情報を宛先変換テーブルを参照して取得する機能を有する。この際、宛先読出部２１５０は、宛先ビットマップ記憶部３４００及び宛先変換テーブル記憶部３６００に記憶されているデータを参照する。
【００９５】
宛先グループ読出部２１６０は、パケット１００が属するグループのグループビットマップを読み出す機能を有する。この際、宛先グループ読出部２１６０は、グループビットマップ記憶部３５００に記憶されているデータを参照する。
【００９６】
宛先ビットマップ記憶部３４００、グループビットマップ記憶部３５００、及び、宛先変換テーブル記憶部３６００に記憶されているデータについては、＜データ＞の項で説明する。
【００９７】
複製生成部２１７０は、宛先決定部２１４０が決定した宛先の数分、パケット１００を複製し、複製したパケットそれぞれに宛先情報を設定したパケット１３０を生成する機能を有する。
【００９８】
ＣＰＵ設定部２１８０は、宛先ビットマップ等を宛先ビットマップ記憶部３４００に予め記憶させておく機能を有する。また、グループビットマップをグループビットマップ記憶部３５００に予め記憶させ、宛先変換テーブルを宛先変換テーブル記憶部３６００に予め記憶させておく機能を有する。
【００９９】
パケットバッファ３０００は、Ｕｎｉ／Ｍｕｌｔｉ判定部２２００から受信したパケット１００を、一旦蓄積しておく機能を有する大容量のバッファである。
【０１００】
宛先ビットマップ記憶部３４００は、宛先ビットマップを記憶しておく機能を有する。
【０１０１】
グループビットマップ記憶部３５００は、グループビットマップを記憶しておく機能を有する。
【０１０２】
また、宛先変換テーブル記憶部３６００は、宛先変換テーブルを記憶させておく機能を有する。
【０１０３】
＜データ＞
図８は、宛先ビットマップテーブル３４１０の構成及び内容の例を示す図である。
【０１０４】
宛先ビットマップテーブル３４１０は、宛先ビットマップ記憶部３４００に記憶されている。
【０１０５】
実施形態では、宛先ビットマップ記憶部３４００は、ポートのデータ幅が３２ビットのＲＡＭ（Random Access Memory）であるものとする。すなわち、一回の読み出し操作で、３２ビットのデータを読み出すことができる。
【０１０６】
また、宛先ビットマップテーブル３４１０には、ドメインＩＤ毎に、１２８ビットの宛先ビットマップが記憶されているものとする。
【０１０７】
すなわち、１つのドメインＩＤの宛先ビットマップを読み出すには、宛先ビットマップ記憶部３４００からデータを４回読み出す必要がある。
【０１０８】
詳細には、１０ビットの「ドメインＩＤ」と２ビットの「ｉｄｘ」とから成るＡｄｄｒｅｓｓ３０を指定して、３２ビットのＤａｔａ３１を読み出す。「ｉｄｘ」は、２ビットの「１１」、「１０」、「０１」及び「００」の４つを順に指定する。
【０１０９】
読み出した１２８ビットの宛先ビットマップのうち、「１」となっているビットの配列番号（以下、「宛先ビット番号」という。）、すなわち、「＃０」〜「＃１２７」をもとに、宛先情報（物理ポート及び論理ポート）を取得する。宛先情報は、図１０に示す宛先ポート変換テーブル３６１０を参照することで求める。
【０１１０】
図９は、グループビットマップテーブル３５１０の構成及び内容の例を示す図である。
【０１１１】
グループビットマップテーブル３５１０は、グループビットマップ記憶部３５００に記憶されている。
【０１１２】
グループビットマップテーブル３５１０は、ドメインＩＤ３５１１、及び、グループビットマップ３５１２を有する。
【０１１３】
ドメインＩＤ３５１１は、パケット１０１が属するグループを示す識別子である。
【０１１４】
グループビットマップ３５１２は、宛先ビットマップ（図８参照）における「１」となっているビットの有無を示すビットマップである。実施形態では、４ビットであり、１つのドメインＩＤの宛先ビットマップの読出し回数と同じビット数である。
【０１１５】
図８で示すように、宛先ビットマップ記憶部３４００は、１回の読出しで３２ビットのＤａｔａ３１を読み出すことができる。従って、１つのドメインＩＤの宛先ビットマップは４回に分けて読み出すことになる。１回目〜４回目で読み出すそれぞれのＤａｔａ３１の中に「１」となっているビットがある場合は、グループビットマップ３５１２の該当ビットは「１」となっている。詳細は、＜宛先ビット番号の求め方について＞の項で説明する。
【０１１６】
図１０は、宛先ポート変換テーブル３６１０の構成及び内容の例を示す図である。
【０１１７】
宛先ポート変換テーブル３６１０は、宛先変換テーブル記憶部３６００に記憶されている。
【０１１８】
宛先ポート変換テーブル３６１０は、宛先ビット番号３６１１、物理ポート番号３６１２及び論理ポート番号３６１３を有する。
【０１１９】
宛先ビット番号３６１１は、宛先ビットマップの「１」となっているビットの配列番号を示す。
【０１２０】
物理ポート番号３６１２は、物理ポートの番号を示す。
【０１２１】
論理ポート番号３６１３は、物理ポート番号３６１２の番号で示される物理ポート内の論理ポートの番号を示す。
【０１２２】
例えば、宛先ビットマップの「１」となっているビットの宛先ビット番号が「＃２」である場合は、物理ポート番号３６１２「＃０」、論理ポート番号３６１３「＃２」であるので、物理ポート番号が０のポート内の論理ポート番号が２のポートが宛先情報となる。
【０１２３】
＜宛先ビット番号の求め方について＞
ここで、図８及び図１１を用いて、宛先ビット番号の求め方について説明する。
【０１２４】
宛先ビットマップ記憶部３４００は、１回の読出しで３２ビットのＤａｔａ３１を読み出すことができる。従って、１つのドメインＩＤの宛先ビットマップを読み出すには、４回に分けて読み出すことになる。
【０１２５】
実施形態では、１つのドメインＩＤあたりの宛先ビットマップ１２８ビットのうち、必要なＤａｔａ３１のみを読み出すことで、宛先情報を取得するための時間を短くする。
【０１２６】
すなわち、読み出した４つのＤａｔａ３１のうちの全てのＤａｔａ３１に、「１」となっているビットが存在することは多くないことから、「１」となっているビットが存在するＤａｔａ３１のみを読み出す。
【０１２７】
「１」となっているビットが存在するＤａｔａ３１を示すのが、グループビットマップ３５１２（図９参照）である。図８にグループビットマップ３５１２の例であるビット列３２を示す。
【０１２８】
ビット列３２の各ビットは、Ａｄｄｒｅｓｓ３０の下２ビットの「ｉｄｘ」が示す値と対応している。例えば、ビット列３２のｉｄｘ「＃０」で示される下１ビット目が、ｉｄｘ「００」を下２ビットとするアドレス３０で読み出されるＤａｔａ３１に「１」のビットが有るか否かを示している。また、ビット列３２のｉｄｘ「＃１」で示される下１ビット目が、ｉｄｘ「０１」を下２ビットとするアドレス３０で読み出されるＤａｔａ３１に「１」のビットが有るか否かを示している。
【０１２９】
ビット列３２は、ドメインＩＤ「００００  ００００  ００」とｉｄｘ「００」〜「１１」とから生成される４つのＡｄｄｒｅｓｓで示される４つのＤａｔａ３１のうち、ｉｄｘ「１０」及び「１１」のＡｄｄｒｅｓｓ３０で示されるＤａｔａ３１に「１」のビットが存在することを示している。
【０１３０】
図１１を用いて、宛先ビットマップを読み出す例を説明する。
【０１３１】
グループビットマップ記憶部３５００は、ＲＡＭであり、ドメインＩＤをアドレスとして、該当するグループビットマップを読み出すものとする。すなわち、グループビットマップテーブル３５１０にドメインＩＤ３５１１として設定されているドメインＩＤがアドレスとして入力されたら、そのレコードのグループビットマップ３５１２として設定されているビットマップが出力される。
【０１３２】
ドメインＩＤをアドレスとしてグループビットマップを読み出し、そのグループビットマップのうち「１」となっているビットの「ｉｄｘ」を、下２ビットの「ｉｄｘ」としたＡｄｄｒｅｓｓ３０で、宛先ビットマップ記憶部３４００からＤａｔａ３１を読み出す。
【０１３３】
図１１では、ｉｄｘ「１１」及び「１０」の２つのＤａｔａ３１のみを読み出せばよいこととなる。
【０１３４】
実施形態では、説明の便宜上、１つのドメインＩＤあたり宛先ビットマップは１２８ビットであるものとして説明しているが、例えば、通信速度が１０Ｇｂｐｓ（ギガビット／秒）のＬＩＵ２０００の場合、５１２０個もの論理ポートが設定されている場合がある。この場合、３２ビット幅のＲＡＭから宛先ビットマップを全て読み出すとすれば、１６０回の読み出しが必要となる。
【０１３５】
すなわち、受信したパケットがマルチキャストパケットであった場合、１つのパケットの宛先情報を見つけ出すために宛先ビットマップを全て読み出すとすれば、１６０クロックが必要となることになる。仮に、ＤＤＲ（Double Data Rate）のＲＡＭを用いたとしても８０クロックが必要となる。
【０１３６】
このように、受信したパケットがマルチキャストパケットであった場合に、宛先情報を取得するために宛先ビットマップを全て読み出すとすると１パケットあたり１６０クロックが必要となり、出力帯域が劣化することとなる。
【０１３７】
ここで、図１３に、宛先情報を取得するために宛先ビットマップを全て読み出す場合の、受信帯域と出力帯域の例を示したタイムチャートを示す。
【０１３８】
図１３において、矩形は、パケットを示す。実線で記された矩形はユニキャストパケットを示し、点線で記された矩形はマルチキャストパケットを示す。また、斜線が引かれた矩形は出力されたパケットを示す。以下、「Ａ」等が矩形内に記載されているパケットを「パケットＡ」等というものとする。
【０１３９】
尚、図１３は、模式的に示したタイムチャートであり、時間軸の長さ等は正確には記載していない。
【０１４０】
図１３（ａ）は、受信されたパケットＡ〜パケットＤが、全てユニキャストパケットである場合を示す。
【０１４１】
受信したパケットがユニキャストパケットの場合は、宛先ビットマップ記憶部３４００から宛先ビットマップを読み出す必要がない。
【０１４２】
従って、受信帯域（速度）と送信帯域（速度）とはほぼ同じである。
【０１４３】
図１３（ｂ）は、受信されたパケットＢ及びパケットＤがマルチキャストパケットである場合を示す。
【０１４４】
パケットＢは、宛先を取得するために宛先ビットマップテーブル３４１０を読み出す時間４０が必要であるので、図１３（ａ）に比べてパケットＢを送信するのが遅くなる。同様に、パケットＤも、宛先を取得するために時間４１が必要となる。
【０１４５】
図１３（ｂ）に示すように、パケットの送信間隔が広がると、その分パケットの転送帯域（速度）が劣化する。すなわち、受信速度より送信速度が遅くなると、中継装置の転送能力が下がったように見えてしまう場合が生ずる。
【０１４６】
図１３（ｃ）は、受信されたパケットＡ〜Ｃがマルチキャストパケットである場合を示す。
【０１４７】
この場合も、図１３（ｂ）に示したのと同様に、パケットＡ、Ｂ及びＣの宛先を取得するのにそれぞれ、時間４２、時間４３及び時間４４が必要となる。
【０１４８】
このように、マルチキャストパケットが連続して受信された場合には、転送能力が一時的に落ちたように見える場合が生じ得る。
【０１４９】
図１３（ｂ）及び（ｃ）に示すように、マルチキャストパケットを受信した位置及び個数によっては、パケット遅延量が大きく変動する、すなわち、遅延量が大きく揺らぐ場合が生じ得、中継装置の転送能力が下がったり、回復したりするように見える。
【０１５０】
実施形態では、必要最小限度のＤａｔａ３１しか読み出さないので、時間４０〜４４は、必要最小限度の時間となり、パケット遅延量自体が小さくなり、その揺らぎも格段に小さくなる。
【０１５１】
例えば、６４バイトのパケットを転送する場合を考える。
【０１５２】
宛先ビットマップ記憶部３４００は３２ビットＲＡＭであり、１つのドメインＩＤあたりの宛先ビットマップは５１２０ビットであるとする。宛先ビットマップ５１２０ビットを読み出すには、１６０クロックかかる。
【０１５３】
１クロックで６４ビットを転送するとした場合、１つのパケットを転送するには、
６４（バイト）×８（ビット）÷６４（ビット）＝８（クロック）となる。
【０１５４】
宛先ビットマップを全て読み出して宛先を取得する場合の転送レートは、
８÷（１６０＋８）＝４．７６（％）となる。
【０１５５】
一方、宛先ビットマップを１回読み出して宛先を取得できる場合の転送レートは、
８÷（１＋８）＝８８．９（％）となる。
【０１５６】
＜動作＞
図１２は、ＬＩＵ２０００のパケット１００の送信処理のフローチャートである。
【０１５７】
図１２において、点線はパケットがパケットバッファ３０００に蓄積され、蓄積されたパケット１００が読み出されることを示す。また、マルチキャスト処理は、ＬＩＵ２０００において、パケット１００の蓄積の処理等と並行して行われている。
【０１５８】
ＬＩＵ２０００は、パケット１００を入力すると（ステップＳ２００）、入力したパケット１００の装置内ヘッダ１１０（図２参照）を参照して、パケット１０１がユニキャストパケット及びマルチキャストパケットのいずれのパケットであるかを判断する（ステップＳ２１０）。
【０１５９】
ＬＩＵ２０００は、Ｕｎｉ／Ｍｕｌｔｉフラグ１１１が「１」の場合、パケット１０１はユニキャストパケットであると判断し、「０」の場合、マルチキャストパケットであると判断する。
【０１６０】
パケット１０１がユニキャストパケットであると判断したＬＩＵ２０００は（ステップＳ２１０：Ｕｎｉ）、ＳＥＬ２３００を介してパケット１００をポート判定部２４００に送信する。
【０１６１】
パケット１００を入力したポート判定部２４００は、宛先ポート情報１１５を参照し、該当する物理ポートのＦＩＦＯ２５００に蓄積する（ステップＳ３２０）。
【０１６２】
ＬＩＵ２０００は、ＦＩＦＯ２５００に蓄積されたパケットを、適切な時に、適切な順序で送出する。
【０１６３】
一方、パケット１０１がマルチキャストパケットであると判断したＬＩＵ２０００は（ステップＳ２１０：Ｍｕｌｔｉ）、パケット１００を宛先設定処理部２１００に送信する。
【０１６４】
パケット１００を入力した宛先設定処理部２１００のパケット書込部２１２０は、入力したパケット１００をパケットバッファ３０００に書き込む（ステップＳ２２０）。
【０１６５】
宛先決定部２１４０は、内部ＦＩＦＯ２１１０が空であることを検出すると、パケット読出部２１３０にパケット１００を読み出すよう指示する。
【０１６６】
指示を受けたパケット読出部２１３０は、パケットバッファ３０００からパケット１００を読み出し、内部ＦＩＦＯ２１１０に蓄積する。
【０１６７】
宛先決定部２１４０は、内部ＦＩＦＯ２１１０からパケット１００を読み出し（ステップＳ２３０）、装置内ヘッダ１１０のドメインＩＤ１１３を読み出して宛先読出部２１５０に渡し、宛先情報の取得を指示する。
【０１６８】
指示を受けた宛先読出部２１５０は、渡されたドメインＩＤを宛先グループ読出部２１６０に渡し、グループビットマップ記憶部３５００から、ドメインＩＤのグループビットマップを読み出すよう指示する。
【０１６９】
指示を受けた宛先グループ読出部２１６０は、渡されたドメインＩＤをアドレスとして、グループビットマップ記憶部３５００のグループビットマップを読み出す（ステップＳ２４０、図９参照）。
【０１７０】
宛先グループ読出部２１６０は、読み出したグループビットマップを参照し、いずれかのビットが「１」である場合は、読み出すべきＤａｔａ３１があると判断する。「１」であるビットがない場合は、読み出すべきＤａｔａ３１は無いと判断する（ステップＳ２５０）。
【０１７１】
読み出すべきＤａｔａ３１が無いと判断した宛先グループ読出部２１６０は（ステップＳ２５０：Ｎｏ）、宛先が無い旨を宛先読出部２１５０を介して宛先決定部２１４０に通知する。
【０１７２】
宛先が無い旨の通知を受けた宛先決定部２１４０は、次のパケット１００を内部ＦＩＦＯ２１１０から読み出す（ステップＳ２３０）。
【０１７３】
読み出すべきＤａｔａ３１があると判断した宛先グループ読出部２１６０は（ステップＳ２５０：Ｙｅｓ）、読み出したグループビットマップを宛先読出部２１５０に渡す。
【０１７４】
グループビットマップを渡された宛先読出部２１５０は、渡されたグループビットマップとドメインＩＤとからアドレスを生成して、Ｄａｔａ３１を1つ読み出す（ステップＳ２６０：Ｎｏ、ステップＳ２７０、図８及び図９参照）。
【０１７５】
宛先読出部２１５０は、読み出したＤａｔａ３１のうち「１」となっているビットの宛先ビット番号を取得する。図１１では、Ａｄｄｒｅｓｓ３０が「００００  ００００  ００１１」のＤａｔａ３１では、宛先ビット番号は「９７」と「９８」とである。
【０１７６】
宛先ビット番号を取得した宛先読出部２１５０は、宛先ポート変換テーブル３６１０（図１０参照）を参照して宛先情報を取得する（ステップＳ２８０）。具体的には、取得した宛先ビット番号が宛先ビット番号３６１１として設定されているレコードの物理ポート番号３６１２として設定されている物理ポートの番号と、論理ポート番号３６１３として設定されている論理ポートの番号とを、宛先情報として読み出す。
【０１７７】
宛先ビット番号の個数分の宛先情報を読み出した宛先読出部２１５０は、読み出した宛先情報を宛先決定部２１４０に渡す。
【０１７８】
宛先情報を渡された宛先決定部２１４０は、複製生成部２１７０に、パケット１００と宛先情報とを渡して送信を指示する。
【０１７９】
指示を受けた複製生成部２１７０は、パケット１００を複製し、渡された宛先情報の個数分のパケット１３０を生成する（ステップＳ２９０）。
【０１８０】
複製生成部２１７０は、パケット１３０それぞれの装置内ヘッダ１１０の宛先ポート情報１１５に、渡された宛先情報をそれぞれ設定し（ステップＳ３００）、ＳＥＬ２３００を介してパケット１３０としてポート判定部２４００に送信する。
【０１８１】
宛先読出部２１５０は、渡されたグループビットマップで「１」となっているビットに応じて、次のＤａｔａ３１を読み出し（ステップＳ２６０：Ｎｏ）、ステップＳ２７０〜ステップＳ３１０の処理を行う。宛先読出部２１５０は、読み出すＤａｔａ３１が無くなったら、宛先決定部２１４０に次のパケットの処理を行うよう依頼する（ステップＳ２６０：Ｙｅｓ）。
【０１８２】
パケット１００を入力したポート判定部２４００は、宛先ポート情報１１５を参照し、該当する物理ポートのＦＩＦＯ２５００に蓄積する（ステップＳ３１０）。
【０１８３】
ＬＩＵ２０００は、ＦＩＦＯ２５００に蓄積されたパケットを、適切な時に、適切な順序で送出する。
【符号の説明】
【０１８４】
１〜９  端末装置
１０  中継装置
４０  ４１  ４２  ４３  ４４  時間
１００  １０１  １０２  １３０  パケット
１１０ 装置内ヘッダ
１１１ Ｕｎｉ／Ｍｕｌｔｉフラグ
１１２  宛先カードビットマップ
１１４  入力ポート情報
１１５  宛先ポート情報
１１００  宛先判定部
２１００  宛先設定処理部
２１２０  パケット書込部
２１３０  パケット読出部
２１４０  宛先決定部
２１５０  宛先読出部
２１６０  宛先グループ読出部
２１７０  複製生成部
２１８０  ＣＰＵ設定部
２２００  Ｕｎｉ／Ｍｕｌｔｉ判定部
２３００  ＳＥＬ
２４００  ポート判定部
３０００  パケットバッファ
３１００  ドメインＩＤ情報記憶部
３１１０  ドメインＩＤ情報
３１１１  物理ポート番号
３１１２  ＶＬＡＮ−ＩＤ
３１１３  ドメインＩＤ
３２００  ルーティングテーブル記憶部
３３００  宛先カード情報記憶部
３３１０  宛先カード情報
３３１１  ドメインＩＤ
３３１２  宛先カードビットマップ
３４００  宛先ビットマップ記憶部
３４１０  宛先ビットマップテーブル
３５００  グループビットマップ記憶部
３５１０  グループビットマップテーブル
３５１１  ドメインＩＤ
３５１２  グループビットマップ
３６００  宛先変換テーブル記憶部
３６１０  宛先ポート変換テーブル
３６１１  宛先ビット番号
３６１２  物理ポート番号
３６１３  論理ポート番号
【図１】
2011234063.tif 000003
【図２】
2011234063.tif 000004
【図３】
2011234063.tif 000005
【図４】
2011234063.tif 000006
【図５】
2011234063.tif 000007
【図６】
2011234063.tif 000008
【図７】
2011234063.tif 000009
【図８】
2011234063.tif 000010
【図９】
2011234063.tif 000011
【図１０】
2011234063.tif 000012
【図１１】
2011234063.tif 000013
【図１２】
2011234063.tif 000014
【図１３】
2011234063.tif 000015