(57)【要約】【課題】マルチキャストパケット読出し制御方法及び装置に関し、帯域制御又はクラス優先制御により発生するマルチキャストパケットの読出しのブロッキングを防ぐ。【解決手段】入力されたマルチキャストパケットを一旦パケットバッファ３０のマルチキャストキューに格納した後、マルチキャストテンポラリバッファ５０に読み出して、マルチキャストパケットの各宛先に送出するマルチキャストパケット読出し制御において、マルチキャストテンポラリバッファ５０から読出したマルチキャストパケットを、その宛先毎の各ユニキャストパケットに変換してパケットバッファ３０のそれぞれのユニキャストキューに格納する。スケジューラ１０はパケットバッファ３０の各ユニキャストキューから、ユニキャストパケット化されたマルチキャストパケットを、通常のユニキャストパケットに対する帯域制御又はクラス優先制御により読出して送出する。【選択図】      図１
2005269314.tif 000002
【特許請求の範囲】
【請求項１】
入力されたマルチキャストパケットを一旦パケットバッファのマルチキャストキューに格納した後、該マルチキャストキューからマルチキャストパケットを読出して送出するマルチキャストパケット読出し制御方法において、
前記マルチキャストキューから読出したマルチキャストパケットを、その各宛先毎のユニキャストパケットに変換して前記パケットバッファのユニキャストキューに格納するユニキャストパケット化ステップと、
前記ユニキャストパケットに変換され、ユニキャストキューに格納されたマルチキャストパケットを、ユニキャストキューから読み出して送出するユニキャストパケット送出ステップと、
を含むことを特徴とするマルチキャストパケット読出し制御方法。
【請求項２】
入力されたマルチキャストパケットを一旦パケットバッファのマルチキャストキューに格納した後、該マルチキャストキューからマルチキャストパケットを読出して送出するマルチキャストパケット読出し制御装置において、
前記マルチキャストキューから読出したマルチキャストパケットを、その各宛先毎のユニキャストパケットに変換して前記パケットバッファのユニキャストキューに格納するユニキャストパケット化手段と、
前記ユニキャストパケットに変換され、ユニキャストキューに格納されたマルチキャストパケットを、ユニキャストキューから読み出して送出するユニキャストパケット送出手段と、
を備えたことを特徴とするマルチキャストパケット読出し制御装置。
【請求項３】
前記ユニキャストパケット化手段において、マルチキャストキューからのマルチキャストパケットの読出しを、ユニキャストキューからのユニキャストパケット読出しの間隙に行うことを特徴とする請求項２に記載のマルチキャストパケット読出し制御装置。
【請求項４】
前記ユニキャストパケット化手段において、マルチキャストパケットの優先クラスをユニキャストパケットの優先クラスに変換して、マルチキャストパケットをユニキャストパケット化する手段を備えたことを特徴とする請求項２又は３に記載のマルチキャストパケット読出し制御装置。
【請求項５】
入力される主信号パケットを蓄える主信号待ち合わせバッファと、前記ユニキャストパケット化されたマルチキャストパケットを蓄えるマルチキャストテンポラリバッファとを備え、主信号待ち合わせバッファに蓄えられた主信号パケットを、マルチキャストテンポラリバッファに蓄えられたユニキャストパケット化されたマルチキャストパケットより優先して、前記パケットバッファのユニキャストキューに格納するマルチキャストパケット読出し制御装置であって、
前記パケットバッファのマルチキャストキューの使用量が使用上限閾値を越えている場合、入力された主信号のマルチキャストパケットを主信号待ち合わせバッファに格納することなく廃棄するとともに、既に主信号待ち合わせバッファに格納されたマルチキャストパケットが該主信号待ち合わせバッファから読出されたときに該マルチキャストパケットを廃棄する手段を備えたことを特徴とする請求項２、３又は４に記載のマルチキャストパケット読出し制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャストパケット読出し制御方法及び装置に関し、特に、ＩＰ(Internet Protocol)網のレイヤ２スイッチ装置等において、イーサ(登録商標)フレーム等のパケットを宛先毎に一時格納するパケットバッファからＱＯＳ(Quality Of Service)処理（帯域制御及び優先制御）を行いながらパケットを読み出して送出するマルチキャストパケット読出し制御方法及び装置に関する。
【背景技術】
【０００２】
宛先が１つのユニキャストパケットについては、パケットバッファからそのパケットを読出し、１つの宛先へ出力すればよいが、複数の宛先を有するマルチキャストパケットについては、パケットバッファから該パケットを読出し、それを複数個コピーして複数の宛先に送出する処理を行わなければならない。
【０００３】
マルチキャストパケットの複数の宛先を認識する手段として、各々の宛先を１ビットで表した宛先ビットマップが用いられる。該宛先ビットマップのビット数は、許容されるマルチキャストの最大宛先数分が用意される。また、宛先ビットマップは、ドメインＩＤ単位で管理され、各ドメインに対してそれぞれの宛先ビットマップを割当てたテーブル構成となっている。該テーブルはドメイングループテーブルと称される。
【０００４】
マルチキャストパケットの転送処理は、マルチキャストパケットに付加されているドメインＩＤをアドレスとしてドメイングループテーブルにアクセスし、該マルチキャストパケットが属するドメインＩＤの宛先ビットマップを取得し、該ビットマップ内に‘１’が設定されているビット位置の宛先全てに対してマルチキャストパケットをコピーして送出することにより行われる。
【０００５】
図８にマルチキャストパケットのフォーマット及びドメイングループテーブルの構成を示す。同図(ａ)に示すようにマルチキャストパケットは先頭部分にドメインＩＤが格納され、該ドメインＩＤを基に同図(ｂ)に示すドメイングループテーブルを読出し、宛先ビットマップを取得する。この宛先ビットマップに ‘１’が設定されているビット位置の宛先にマルチキャストパケットを出力する。同図の(ｂ)は、マルチキャストの宛先として２５６個まで許容される例を示している。
【０００６】
従来のマルチキャストパケットの読出し制御装置の機能ブロック構成例を図９に、そのタイムチャートを図１０に示す。図９に示すように、マルチキャストパケットの読出し制御装置は、スケジューラ部１０、パケットバッファ制御部２０、マルチキャストテンポラリバッファ５０、帯域制御テーブル６０、及びブロックＡ、ブロックＢ、ブロックＣ(これらはプログラム可能なＬＳＩであるＦＰＧＡ等により構成される)と、これらに外付けメモリとして接続されるパケットバッファ３０及びドメイングループテーブル４０とから構成される。
【０００７】
従来のマルチキャストパケットの読出し制御の手順は以下のとおりである。なお、以下の各手順(１)〜(１４)の番号は、図９及び図１０の関連箇所に表記した(  )内の番号と対応している。
(１)パケットバッファ制御部２０は、入力マルチキャストパケットをパケットバッファ３０へ書き込む。
(２)パケットバッファ制御部２０は、マルチキャストパケットがパケットバッファ３０に書き込まれたこと(ｎｏｔ  ｅｍｐｔｙ状態)をスケジューラ部１０に通知する。
(３)スケジューラ部１０は、パケットバッファ制御部２０へマルチキャストパケット読出し要求を送出する。
(４)パケットバッファ制御部２０は、パケットバッファ３０からマルチキャストパケットの先頭部分のみを読出す。
(５)パケットバッファ制御部２０は、読出されたマルチキャストパケットの先頭部分のドメインＩＤの情報から、対応するドメイングループテーブル４０の読出しを行うようにブロックＡを制御する。
(６)ブロックＡはドメイングループテーブル４０からマルチキャスト宛先ビットマップを取得し、該マルチキャスト宛先ビットマップをスケジューラ部１０へ送出する。
(７)スケジューラ部１０は、マルチキャスト宛先ビットマップに‘１’が設定されている宛先の中で、出力帯域が割り当てられている宛先を選択するとともに、パケットバッファ制御部２０へマルチキャストパケットの読出し要求を送出する。
(８)パケットバッファ制御部２０はパケットバッファ３０からマルチキャストパケットの先頭部分及びデータ部分の全体を読出すように制御する。
(９)パケットバッファ３０から読出されたマルチキャストパケットを、上記の手順(７)で決定された宛先へブロックＢを経由して出力するとともに、該マルチキャストパケットをマルチキャストテンポラリバッファ５０に格納する。
(１０)パケットバッファ制御部２０は、パケットバッファ３０からマルチキャストパケットの読出しを完了した旨の通知をスケジューラ部１０へ送出する。
(１１)スケジューラ部１０は、マルチキャスト宛先ビットマップに‘１’が設定されている次の宛先の中から出力帯域が割り当てられている宛先を選択するとともに、マルチキャストテンポラリバッファ５０からマルチキャストパケットの読出しを行うようにブロックＢに指令する。
(１２)ブロックＢは、マルチキャストテンポラリバッファ５０からマルチキャストパケットを読出し、該マルチキャストパケットを上記の手順(１１)で選択された宛先へ送出する。
(１３)ブロックＢは、パケットバッファ３０から読み出されるユニキャストペットパケットの合間に、マルチキャストテンポラリバッファ５０からマルチキャストパケットを読出して送出し、マルチキャストパケット送出完了後、スケジューラ部１０へマルチキャストパケット送出完了を通知する。
(１４)以降、マルチキャスト宛先ビットマップに‘１’が設定されている残りの宛先の全てについて上記の手順(１１)〜(１３)を繰り返し、マルチキャスト宛先ビットマップに設定された全ての宛先にマルチキャストパケットの送出が完了するまで、この送出手順を繰り返し実行する。全ての宛先にマルチキャストパケットの送出が完了すると、パケットバッファ３０に滞留している次のマルチキャストパケットの送出処理を同様の手順により次々行っていく。
【０００８】
図１０は、上記の手順による動作を時間の経過とともに示し、同図において、ａ１，ｂ１，ｃ１，ａ２，ｂ２，ｃ２はユニキャストパケット、ｍｃ１，ｍｃ２はマルチキャストパケット、ｍはマルチキャストパケットｍｃ１の先頭部分を表している。また、Ａはパケットａ１，ａ２の宛先ポート、Ｂはパケットｂ１，ｂ２の宛先ポート、Ｃはパケットｃ１，ｃ２の宛先ポートを表している、
【０００９】
従来のマルチキャストパケット読出し制御の機能ブロックの詳細を図１１に示す。図１１において、マルチキャスト宛先ビットマップ１１はドメイングループテーブル４０から取得される。帯域割当テーブル１６はユーザが契約した帯域量がソフトウェア処理により設定される。帯域制御部１３は帯域割当テーブル１６に設定された帯域量を周期的に各ユーザの帯域量に加算し、その宛先にパケットを出力するとそのパケット量を帯域量から減算する。その演算結果がプラスなら次のパケットが出力可能となる。
【００１０】
エンプティフラグ設定部１２には、パケットバッファ３０にパケットが滞留しているかどうかを示すフラグが設定され、各宛先ポート別に設定される。読出しキュー選択部１５は、帯域量の値がプラスでパケットバッファ３０にパケットが有る(エンプティフラグがｎｏｔ  ｅｍｐｔｙ状態である)宛先から１つを選択し、選択したキューを読出しアドレス生成部２１に通知し、読出しアドレス生成部２１は該通知によりパケットバッファ３０からのパケット読出しアドレスを生成する。
【００１１】
また、読出しキュー選択部１５は前述の選択した宛先に対してユニキャストパケットを送出するかマルチキャストパケットを送出するかを選択し、その選択結果に応じて、パケットバッファ３０からのパケットかマルチキャストテンポラリバッファ５０からのパケットかを選択するセレクタ７０を制御する。
【００１２】
パケットバッファ３０又はマルチキャストテンポラリバッファ５０からパケットを読出して送出するには、以下の条件に当てはまることが必要である。
・帯域制御により宛先ポートに出力帯域が割り当てられている。
・エンプティフラグがｎｏｔ  ｅｍｐｔｙ状態である(パケットバッファ３０にパケットが溜まっている)、又はマルチキャストテンポラリバッファ５０にマルチキャストパケットが存在し、マルチキャスト宛先ビットマップに未だ‘１’に設定されたまま残っているビットが有る。
【００１３】
以上の条件に当てはまる宛先の中から１つの宛先を選択し、パケットバッファ３０又はマルチキャストテンポラリバッファ５０からパケットを読出して送出する。マルチキャストパケットは、パケットバッファ３０から読出して一旦マルチキャストテンポラリバッファ５０に格納し、上記の条件に適合したときにマルチキャストテンポラリバッファ５０から読出して送出される。
【００１４】
マルチキャストテンポラリバッファ５０に格納されたマルチキャストパケットは、マルチキャスト宛先ビットマップ１１に‘１’が設定されている宛先全てにコピーされて送出される。１つのマルチキャストパケットが全宛先へコピーして送出された後、次のマルチキャストパケットがパケットバッファ３０から読出されてマルチキャストテンポラリバッファ５０に格納され、同様の処理により送出される。
【００１５】
従って、マルチキャスト宛先ビットマップ１１に‘１’が設定された宛先のうち、１つでも宛先ポートに出力帯域が割り当てられていない宛先が有ると、このマルチキャストパケットの送出が完了せず、次のマルチキャストパケットの送出処理に移れないことになる。
【００１６】
そこで、スケジューラ部１０には廃棄用タイマー１４を設け、或る一定時間経過してもマルチキャストパケットのコピーを送出することができない場合に、この廃棄用タイマー１４を用いて該マルチキャストパケットを廃棄する。一定時間経過してもマルチキャストパケットのコピーを送出することができないマルチキャストパケットを廃棄することで、次のマルチキャストパケットの送出処理に移ることができるようにしている。
【００１７】
また、従来のマルチキャストパケット読出し制御は、クラス優先判定(ＳＰ：Strict Priority)制御がマルチキャストパケットの読出しに影響を与える。以下、この影響について説明する。スケジューラ部１０は取得した宛先ビットマップ情報からパケットバッファ制御部２０へ又はマルチキャストテンポラリバッファ５０へマルチキャストパケットの読出し要求を出力するが(上記手順(７)又は(１１))、スケジューラ部１０での要求許可判定として以下の判定がある。
【００１８】
・帯域制御(トークン方式による周期的な帯域加算及びパケット読出し時の帯域減算を行う)による出力帯域の有無の判定
・エンプティフラグ(パケットバッファ３０に滞留しているパケット有無)の判定
・読出し可能キュー選択論理判定(重付けラウンドロビン制御による宛先ポート選択判定及びクラス優先判定(ＳＰ))
【００１９】
クラス優先判定(ＳＰ)は、選択可能なパケットの中から優先度のクラスに従い、優先度の高いものを選択する。優先度のクラスには下記のものがあり、上方のクラスほど優先度が高い。
〔１〕ユニキャスト最高優先クラス(Ｕｎｉ−Ｈクラス)
〔２〕ユニキャスト高優先クラス(Ｕｎｉ−Ｍクラス)
〔３〕マルチキャスト高優先クラス(Ｍｕｌ−Ｈクラス)
〔４〕ユニキャスト低優先クラス(Ｕｎｉ−Ｌクラス)
〔５〕マルチキャスト低優先クラス(Ｍｕｌ−Ｌクラス)
但し、このクラス優先判定(ＳＰ)は各宛先ポート内で閉じているとする。
【００２０】
クラス優先判定(ＳＰ)制御によるマルチパケットの読出し制御の影響の具体例について図１２を参照して説明する。ここで、スケジューラ部１０での要求許可判定条件のうち、出力帯域は対象宛先ポート(ポートＡ，Ｂ，Ｃ)全てに充分割当てられているものとする。また、パケット有無の判定条件として、高優先クラス(Ｍｕｌ−Ｈクラス)のマルチキャストパケット(Ｐａｃｋｅｔｉ，Ｐａｃｋｅｔii)がパケットバッファ３０に格納されており、その宛先がポートＡ，Ｂ，Ｃで、更に或るポート(例えばポートＡ)には多量の最高優先クラス(Ｕｎｉ−Ｈクラス)のユニキャストパケットが入力されているとする。
【００２１】
このような場合に、マルチキャストパケットの読出し制御の手順は以下のとおりである。なお、以下の各手順(１)〜(１４)の番号は、図９及び図１０の関連箇所に表記した(  )内の番号と対応している。
(１)マルチキャストパケット(Ｐａｃｋｅｔｉ続いてＰａｃｋｅｔii)がパケットバッファ３０に格納される。このとき、宛先ポートＡのユニキャスト最高優先クラスパケットもパケットバッファ３０に格納されている。
(２)マルチキャストパケット(Ｐａｃｋｅｔｉ)がパケットバッファ３０に格納されたことをスケジューラ部１０に通知する。
(３)スケジューラ部１０は、パケットバッファ制御部２０へマルチキャスト読出し要求を送出する。
(４)パケットバッファ制御部２０は、パケットバッファ３０からマルチキャストパケット(Ｐａｃｋｅｔｉ)の先頭部分のみを読出す。
(５)読出されたマルチキャストパケットの先頭部分のドメインＩＤの情報から、対応するドメイングループテーブル４０の読出しを行い、Ｐａｃｋｅｔｉのマルチキャスト宛先ビットマップの取得を開始する。
(６)ドメイングループテーブル４０から読出された宛先ビットマップをスケジューラ部１０へ送出する。
(７)スケジューラ部１０は、マルチキャスト宛先ビットマップに‘１’が設定されている宛先(Ｐａｃｋｅｔｉの宛先ポートＡ，Ｂ，Ｃ)で出力帯域が割り当てられている宛先(宛先ポートＡ，Ｂ，Ｃ)のマルチキャストパケットと、宛先ポートＡのユニキャスト最高優先クラスのユニキャストパケットの中から、重付けラウンドロビン及びクラス優先判定(ＳＰ)に基づいて読出すパケットを選択し、一例として、宛先ポートＡのユニキャスト最高優先クラスパケットの読出し要求をパケットバッファ制御部２０へ出力し、該パケットを読出して送出した後、次に宛先ポートＢのマルチキャストパケットの読出し要求を出力し、その要求送出後、宛先ビットマップのポートＢの宛先の‘１’を削除し、残りの宛先は宛先ポートＡ，Ｃの宛先となる。
(８)パケットバッファ制御部２０は、パケットバッファ３０からマルチキャストパケット(Ｐａｃｋｅｔｉ)の先頭部分及びデータ部分の全体を読出すように制御する。
(９)パケットバッファ３０から読出されたマルチキャストパケット(Ｐａｃｋｅｔｉ)を、上記の手順(７)で決定された宛先ポートＢへ出力するとともに、マルチキャストテンポラリバッファ５０に格納する。
(１０)パケットバッファ制御部２０は、パケットバッファ３０からのマルチキャストパケット(Ｐａｃｋｅｔｉ)の読出しを完了した旨の通知をスケジューラ部１０へ送出する。
(１１)スケジューラ部１０は、上記手順(７)と同様に、マルチキャスト宛先ビットマップに‘１’が設定されている次の宛先(Ｐａｃｋｅｔｉの宛先ポートＡ，Ｃ)で出力帯域が割り当てられている宛先(宛先ポートＡ，Ｃ)のマルチキャストパケットと、宛先ポートＡのユニキャスト最高優先クラスのユニキャストパケットの中から、重付けラウンドロビン及びクラス優先判定(ＳＰ)に基づいて読出すべきパケットを選択し、一例として、宛先ポートＣのマルチキャストパケットの読出し要求をマルチキャストテンポラリバッファ５０へ出力し、該要求送出後、宛先ビットマップのポートＣの宛先の‘１’を削除し、残りの宛先は宛先ポートＡの宛先となる。
(１２)マルチキャストテンポラリバッファ５０から読出されたマルチキャストパケット(Ｐａｃｋｅｔｉ)は、上記の手順(１１)で選択された宛先ポートＣへ送出される。
(１３)マルチキャストパケット(Ｐａｃｋｅｔｉ)の送出完了後、スケジューラ部１０へマルチキャストパケット送出完了の通知を行う。
(１４)以降、マルチキャスト宛先ビットマップに‘１’が設定されている残りの宛先について上記の手順(１１)〜(１３)を繰り返し、その全ての宛先にマルチキャストパケット(Ｐａｃｋｅｔｉ)の送出が完了するまで、このマルチキャストパケットの送出動作を行うが、残りの宛先として、クラス優先判定(ＳＰ)制御における優先度の高いユニキャスト最高優先パケットが格納されている宛先ポートＡの宛先が残っている場合、該宛先ポートＡではユニキャストのパケット読出しが優先的に選択されるため、マルチキャストパケット(Ｐａｃｋｅｔｉ)の宛先ポートＡでの送出が行われない。
【００２２】
即ち、読出しキュー選択部１５において、宛先ポートＡでは、クラス優先判定(ＳＰ)の優先度の高いユニキャスト最高優先クラス(Ｕｎｉ−Ｈクラス)のパケットが無くなるまで、マルチキャスト高優先クラス(Ｍｕｌ−Ｈクラス)のパケットは選択されない。宛先ポートＢ，Ｃでは、マルチキャストパケットのみ選択可能なため、重付けラウンドロビンによって選択される。
【００２３】
このため、マルチキャストテンポラリバッファ５０には、宛先ポートＢ，Ｃへの送出のためのマルチキャストパケット読出し要求は到来するが、宛先ポートＡへの送出のためのマルチキャストパケット読出し要求は到来しない。そのため、マルチキャストパケット(Ｐａｃｋｅｔｉ)の転送が完了しない。その結果、マルチキャストパケット(Ｐａｃｋｅｔｉ)の宛先ビットマップがクリアされず、次のマルチキャストパケット(Ｐａｃｋｅｔii)の宛先ビットマップ取得に遷移することができない。これを防ぐために、従来では廃棄用タイマー１４を設け、或る一定時間経過しても送出することができないマルチキャストパケットを廃棄しているが、これによりパケットロスが発生することになる。
【００２４】
本発明に関連する先行技術文献として、通常ブロードキャストにて行われるＡＲＰ(Address Resolution Protocol)リクエストをユニキャスト化し、ネットワークトラフィックの削減を図った技術が下記の特許文献に記載されている。
【特許文献１】特開２０００−２９５２５６号公報
【発明の開示】
【発明が解決しようとする課題】
【００２５】
上述したように従来のマルチキャストパケット読出し制御では、マルチキャストパケットの読出し処理時に、マルチキャスト宛先ビットマップに‘１’が設定されている宛先の中で、マルチキャストパケットの出力帯域が少ない宛先があると、マルチキャストテンポラリバッファ５０に格納されたマルチキャストパケットは、全宛先へのコピーによる送出完了に長い時間が掛かってしまう。
【００２６】
そうすると、パケットバッファ３０に格納されている次のマルチキャストパケット(Ｐａｃｋｅｔii)の読出しが行われず、パケットバッファ３０にマルチキャストパケット(Ｐａｃｋｅｔii)以降が滞留することとなる。その結果、他の宛先ポートが空いているにも拘わらず、次のマルチキャストパケット(Ｐａｃｋｅｔii)を他の宛先へ送出することができず、マルチキャストのブロッキングが発生する。
【００２７】
また、マルチキャストパケットの出力帯域が少ない宛先の存在による現象と同様に、クラス優先判定(ＳＰ)制御によっても、他の宛先ポートに対するマルチキャストパケットのブロッキングが発生する。更に、従来は、このブロッキングを防ぐために、廃棄用タイマーを設けて一定時間経過しても送出完了することができないマルチキャストパケットを廃棄して次のマルチキャストパケットの読出し処理に移るようにしていたため、マルチキャストのパケットロスが発生することがあった。
【００２８】
本発明は、帯域制御又はクラス優先制御により、或る宛先に長時間送出することができないマルチキャストパケットが存在する場合でも、他の空いている宛先ポートから他の宛先の次のマルチキャストパケット送出することができ、マルチキャストパケットのブロッキングを防ぐことができるマルチキャストパケット読出し制御方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００２９】
本発明のマルチキャストパケット読出し制御方法は、(１)入力されたマルチキャストパケットを一旦パケットバッファのマルチキャストキューに格納した後、該マルチキャストキューからマルチキャストパケットを読出して送出するマルチキャストパケット読出し制御方法において、前記マルチキャストキューから読出したマルチキャストパケットを、その各宛先毎のユニキャストパケットに変換して前記パケットバッファのユニキャストキューに格納するユニキャストパケット化ステップと、前記ユニキャストパケットに変換され、ユニキャストキューに格納されたマルチキャストパケットを、ユニキャストキューから読み出して送出するユニキャストパケット送出ステップと、を含むものである。
【００３０】
また、本発明のマルチキャストパケット読出し制御装置は、(２)入力されたマルチキャストパケットを一旦パケットバッファのマルチキャストキューに格納した後、該マルチキャストキューからマルチキャストパケットを読出して送出するマルチキャストパケット読出し制御装置において、前記マルチキャストキューから読出したマルチキャストパケットを、その各宛先毎のユニキャストパケットに変換して前記パケットバッファのユニキャストキューに格納するユニキャストパケット化手段と、前記ユニキャストパケットに変換され、ユニキャストキューに格納されたマルチキャストパケットを、ユニキャストキューから読み出して送出するユニキャストパケット送出手段と、を備えたものである。
【００３１】
また、(３)前記ユニキャストパケット化手段において、マルチキャストキューからのマルチキャストパケットの読出しを、ユニキャストキューからのユニキャストパケット読出しの間隙に行うことを特徴とする。また、(４)前記ユニキャストパケット化手段において、マルチキャストパケットの優先クラスをユニキャストパケットの優先クラスに変換して、マルチキャストパケットをユニキャストパケット化する手段を備えたことを特徴とする。
【００３２】
また、(５)入力される主信号パケットを蓄える主信号待ち合わせバッファと、前記ユニキャストパケット化されたマルチキャストパケットを蓄えるマルチキャストテンポラリバッファとを備え、主信号待ち合わせバッファに蓄えられた主信号パケットを、マルチキャストテンポラリバッファに蓄えられたユニキャストパケット化されたマルチキャストパケットより優先して、前記パケットバッファのユニキャストキューに格納するマルチキャストパケット読出し制御装置であって、前記パケットバッファのマルチキャストキューの使用量が使用上限閾値を越えている場合、入力された主信号のマルチキャストパケットを主信号待ち合わせバッファに格納することなく廃棄するとともに、既に主信号待ち合わせバッファに格納されたマルチキャストパケットが該主信号待ち合わせバッファから読出されたときに該マルチキャストパケットを廃棄する手段を備えたものである。
【発明の効果】
【００３３】
本発明によれば、マルチキャストキューから読出したマルチキャストパケットを、その各宛先毎のユニキャストパケットに変換して前記パケットバッファのユニキャストキューに格納し、該ユニキャストパケットに変換され、ユニキャストキューに格納されたマルチキャストパケットを、ユニキャストキューから読み出して送出することにより、出力帯域が多い宛先に対してはそのユニキャストキューから澱みなくユニキャスト化されたパケットが読出され、出力帯域が少ない宛先に対してはそのユニキャストキューにユニキャスト化されたパケットが溜まっていくだけで、他の宛先に対するパケット送出を妨げる(ブロッキングする)ことがなくなる。
【００３４】
また、マルチキャストパケットが長時間滞留することがないので、マルチキャストパケットの廃棄用タイマーによるタイムアウト処理の必要がなくなり、マルチキャストパケットのロスがなくなり、かつ廃棄用タイマーを設ける必要がなく、回路規模を削減することができる。また、マルチキャストパケットとユニキャストパケットの送出のスケジューリングを行うために、従来はマルチキャストキューとユニキャストキューとを備える必要があったが、本発明ではマルチキャストパケットがユニキャスト化されるために、ユニキャストキューのみに対するスケジューリングとなり、回路規模及び処理を簡素化することができる。
【００３５】
また、マルチキャストキューからのマルチキャストパケットの読出しを、ユニキャストキューからのユニキャストパケット読出しの間隙に行うことにより、マルチキャストパケットのパケット長に左右されることなく、該読出しを確実に行うことができ、また、マルチキャストパケットのユニキャスト化処理のためのマルチキャストパケットの読出しにより、ユニキャストパケットの読出しが影響されて遅延が発生することはない。
【００３６】
また、マルチキャストパケットの優先クラスをユニキャストパケットの優先クラスに変換してユニキャストパケット化することにより、クラス優先判定の制御はユニキャストパケットの優先クラスについてのみ行えばよく、クラス優先判定の制御を簡素化することができる。
【００３７】
また、パケットバッファのマルチキャストキューの使用量が使用上限閾値を越えている場合、入力された主信号のマルチキャストパケットを主信号待ち合わせバッファに格納することなく廃棄するとともに、既に主信号待ち合わせバッファに格納されたマルチキャストパケットが該主信号待ち合わせバッファから読出されたときに該マルチキャストパケットを廃棄することにより、主信号待ち合わせバッファが空になる機会が生じ、マルチキャストテンポラリバッファからの読出しが可能になりマルチキャストパケットがスムーズに送出されるようになる。
【発明を実施するための最良の形態】
【００３８】
図１は本発明によるマルチキャストパケット読出し制御の機能ブロックを示す。図１において、図１１に示した従来例の構成と同一の構成要素には同一の符号を付し、重複した説明は省略する。以下、本発明と従来例の違いについて説明する。なお、図１及び図１１に示すように、パケットバッファ３０内のキュー構成は、前述したクラス優先度毎に分けて構成されている。
【００３９】
まず、本発明と従来例との第１の違いは、マルチキャストテンポラリバッファ５０から読出したマルチキャストパケットの出力先である。従来例ではマルチキャストテンポラリバッファ５０から読出したマルチキャストパケットをそのままセレクタ７０を通して出力パケットとして出力する構成であったが、本発明では、マルチキャストテンポラリバッファ５０から読出したマルチキャストパケットを、パケットバッファ３０内の該当する宛先のユニキャストキューにユニキャストパケットとして書き込む構成とした点である。
【００４０】
即ち、パケットバッファ３０には、待ち合わせバッファ８１に一旦蓄積された主信号の入力パケットと、マルチキャストテンポラリバッファ５０からのユニキャストパケット化されたパケットとが、セレクタ８２を介して入力される。マルチキャストパケットのユニキャストパケット化は、該パケットの先頭部分のマルチキャスト用のアドレスを、ドメインＩＤと宛先ビットマップの‘１’に設定されたビット位置によって定まるユニキャストパケットのアドレスに変換することにより行われる。
【００４１】
第２の違いは、本発明では廃棄用タイマー１４によるマルチキャストパケットの廃棄処理が不要なことである。本発明では、出力帯域の有無とは関係無く、ユニキャストパケットの読出しの合間にマルチキャストパケットの読出しを行い、マルチキャストパケットをユニキャストパケット化してパケットバッファ３０に書き込むため、１つのマルチキャストパケットを短時間でコピーして各宛先のキューへ書き込むことができるので、廃棄用タイマー１４を装備して廃棄処理する必要がない。
【００４２】
第３の違いは、スケジューラ部１０で管理するキューの数である。従来例では、ユニキャストキューとマルチキャストキューの両方のキューに対してスケジューリングを行い、その中からパケットを読出すキューを選択していたが、本発明ではマルチキャストパケットが全てユニキャストパケット化されることにより、スケジューラ部１０で管理するキューはユニキャストキューのみとなり、処理負荷が軽減される。
【００４３】
次に本発明におけるクラス優先判定(ＳＰ)制御とそのマルチキャストパケット読出しへの影響について説明する。クラス優先判定(ＳＰ)制御は前述したとおり、選択可能なパケットの中からクラスの優先度に従って優先度の高いものを選択する。本発明におけるスケジューラ部１０で管理する優先度は、マルチキャストパケットをユニキャストパケット化したことにより、ユニキャストパケットの優先クラスのみであり、下記の３種類である。
〔１〕ユニキャスト最高優先クラス(Ｕｎｉ−Ｈクラス)
〔２〕ユニキャスト高優先クラス(Ｕｎｉ−Ｍクラス)
〔３〕ユニキャスト低優先クラス(Ｕｎｉ−Ｌクラス)
【００４４】
従来のマルチキャスト高優先クラス(Ｍｕｌ−Ｈクラス)のパケットはユニキャスト高優先クラス(Ｕｎｉ−Ｍクラス)のキューへ、マルチキャスト低優先クラス(Ｍｕｌ−Ｌクラス)のパケットはユニキャスト低優先クラス(Ｕｎｉ−Ｌクラス)のキューへユニキャストパケット化してパケットバッファ３０に再格納するので、本発明のスケジューラ部１０では、上記３種類のユニキャストパケットの優先クラスのみを管理すればよい。
【００４５】
スケジューラ部１０でのマルチキャストパケットの読出しの要求許可判定として、従来例と同様の下記の判定条件がある。
・帯域制御(トークン方式による周期的な帯域加算及びパケット読出し時の帯域減算を行う帯域制御)による出力帯域の有無の判定
・エンプティフラグ(パケットバッファ３０に滞留しているパケット有無)の判定
・読出し可能キュー選択論理判定(重付けラウンドロビンによるポート選択判定、及びクラス優先判定(ＳＰ))
【００４６】
以下、本発明によるマルチパケットの読出し制御動作の具体例について、図２のタイムチャート及び図３の詳細機能ブロック図を参照して説明する。なおここで、スケジューラ部１０での要求許可判定条件のうち、出力帯域は対象宛先ポート(ポートＡ，Ｂ，Ｃ)全てに充分設定されているとする。
【００４７】
また、パケット有無の判定条件として、マルチキャスト高優先クラス(Ｍｕｌ−Ｈクラス)のマルチキャストパケット(Ｐａｃｋｅｔｉ，Ｐａｃｋｅｔii)がパケットバッファ３０に格納されており、その宛先がポートＡ，Ｂ，Ｃで、更に或るポート(例としてポートＡ)には多量の最高優先クラス(Ｕｎｉ−Ｈクラス)のユニキャストパケットが入力されているとする。なお、図２における記号ｍｃ１及びｍｃ２は、それぞれマルチキャストパケットＰａｃｋｅｔｉ及びＰａｃｋｅｔiiに相当する。
【００４８】
このような場合に、本発明ではマルチキャストパケットの読出しは以下の手順により行われる。なお、下記の各手順の(  )内の番号は、図９又は図１０に示した従来例と同一の手順と同には同一の番号を付し、従来例と異なる本発明による手順の番号には「’」を付し、それらの番号は図２の関連箇所に表記している。
【００４９】
(１)マルチキャストパケット(Ｐａｃｋｅｔｉ続いてＰａｃｋｅｔii)がパケットバッファ３０に格納される。このとき、宛先ポートＡのユニキャスト最高優先クラスパケットもパケットバッファ３０に格納されている。
(２)マルチキャストパケット(Ｐａｃｋｅｔｉ)がパケットバッファ３０に書き込まれたことをスケジューラ部１０に通知する。
(３)’スケジューラ部１０はパケットバッファ制御部２０へマルチキャスト読出し要求を送出する。
(４)’パケットバッファ制御部２０は、パケットバッファ３０からマルチキャストパケット(Ｐａｃｋｅｔｉ)をマルチキャストテンポラリバッファ５０へ読出す。パケットバッファ３０からマルチキャストテンポラリバッファ５０へのマルチキャストパケットの移行処理は、ユニキャストパケットの読出しの空いている時間に少しずつ読出してマルチキャストテンポラリバッファ５０へ移す。即ち、図２の(ｆ)に示す例のように、ユニキャストパケットｂ１とユニキャストパケットｃ１との合間及びユニキャストパケットｃ１とユニキャストパケットａ２との合間に、マルチキャストパケットｍｃ１を同図に示すようにｍｃ１−１とｍｃ１−２とに分けて少しずつ移す。
(５)読出されたマルチキャストパケットの先頭部分のドメインＩＤの情報から、ドメイングループテーブル４０の読出しを行い、Ｐａｃｋｅｔｉのマルチキャスト宛先ビットマップの取得を開始する。
(６)ドメイングループテーブル４０から読出された宛先ビットマップをスケジューラ部１０へ送出する。
(７)’スケジューラ部１０は全ビットマップ取得を完了し、かつマルチキャストテンポラリバッファ５０にマルチキャストパケット(Ｐａｃｋｅｔｉ)を格納完了した後、マルチキャスト宛先ビットマップに‘１’が設定されている宛先(Ｐａｃｋｅｔｉの宛先ポートＡ，Ｂ，Ｃ)の若番順に、マルチキャストテンポラリバッファ５０からパケットバッファ３０の対応するポート及びクラスのユニキャストキュー(宛先ポートＡのキュー)への、マルチキャストパケットのユニキャスト化パケットのコピーの要求を行い、該要求送出後、宛先ビットマップの当該宛先のビット設定をクリアし、残りの宛先はポートＢ，Ｃとなる。これらの処理の背面ではパケットバッファ３０からのユニキャストパケットの読出しを行っている。
(８)’上記コピーの要求により、マルチキャストテンポラリバッファ５０からマルチキャストパケット(宛先ポートＡのＰａｃｋｅｔｉ)を読出し、該パケットをユニキャストパケット化し、セレクタ８２を介してパケットバッファ３０へ書き込む。
(９)’パケットバッファ３０へのマルチキャストパケット(宛先ポートＡのＰａｃｋｅｔｉ)の読出し完了通知をスケジューラ部１０へ送出する。
(１０)’スケジューラ部１０は、該読出し完了通知の受信で、マルチキャスト宛先ビットマップに‘１’が設定されている宛先(マルチキャストパケットＰａｃｋｅｔｉの宛先ポートＢ，Ｃ)の若番順に、マルチキャストテンポラリバッファ５０からパケットバッファ３０のポート及びクラスの対応するユニキャストキューへの、マルチキャストパケットのユニキャスト化パケットのコピー要求を行い、該要求による宛先ポートＢへのコピー要求送出後、宛先ビットマップの当該宛先のビット設定をクリアし、残りの宛先はポートＣとなる。
(１１)’以降、マルチキャスト宛先ビットマップに‘１’が設定されている残りの宛先の全てについて上記の手順(８)’〜(１０)’を繰り返し、マルチキャスト宛先ビットマップに設定された全ての宛先のユニキャストキューへのコピーが完了すれば、パケットバッファ３０に溜まっている次のマルチキャストパケット(Ｐａｃｋｅｔii)の転送処理を開始する。
【００５０】
マルチキャストテンポラリバッファ５０からパケットバッファ３０へのマルチキャストパケット(Ｐａｃｋｅｔｉ)の読出し要求は、マルチキャストパケット(Ｐａｃｋｅｔｉ)がマルチキャストテンポラリバッファ５０に格納された時点で、宛先が取得され、該宛先ポートのユニキャストキューへの読出しを行う。そして、各宛先ポートのユニキャストキューへの読出しが完了した時点で、次のマルチキャストパケット(Ｐａｃｋｅｔii)の読出しを開始する。
【００５１】
この結果、マルチキャストテンポラリバッファ５０にマルチキャストパケットが長時間滞留することがない。従って、宛先ポートＡからのパケット送出に滞りが生じても、宛先ポートＡのユニキャストキューに滞留するだけで他のポートに対するブロッキングが生じず、次のマルチキャストパケット(Ｐａｃｋｅｔii)を他の空いている宛先ポートＢ，Ｃに送出することができる。
【００５２】
また、パケットバッファ３０のマルチキャストキューからマルチキャストテンポラリバッファ５０への読出しを、出力帯域の有無やクラス優先判定(ＳＰ)制御に関係なく行うことができるため、ユニキャスト最優先クラスのパケットが存在する場合でも、マルチキャストパケットを短時間でマルチキャストテンポラリバッファ５０へ格納し、マルチキャストテンポラリバッファ５０からユニキャスト化したパケットを、出力帯域の有無やクラス優先判定(ＳＰ)制御に関係なく各宛先ポートのユニキャストキューへ送出することができる。
【００５３】
これは、パケットバッファ３０からのユニキャストパケットの読出しに生じる空き時間にマルチキャストパケットを読出してマルチキャストテンポラリバッファ５０へ移動させるためで、スケジューリングによるパケットバッファ読出しポートを選定する処理時間(図２の(ｅ)参照)より、パケットバッファ読出し時間(図２の(ｆ)参照)の方が短時間であるため、必ずパケットバッファ読出し時間に間隙ができ、その間隙にマルチキャストパケットをパケットバッファ３０からマルチキャストテンポラリバッファ５０へ読み出すことができる。
【００５４】
つまり、図２の(ｆ)に示すように、ユニキャストパケットｂ１とユニキャストパケットｃ１との合間及びユニキャストパケットｃ１とユニキャストパケットａ２との合間に、マルチキャストパケットｍｃ１を同図に示すようにｍｃ１−１とｍｃ１−２とに分けて少しずつ移動させる。こうすることにより、マルチキャストパケットのパケット長に左右されることなく読出すことができ、また、このマルチキャストパケットの読出し処理によってユニキャストパケットの読出しが影響されることはない(ユニキャストパケットの転送に遅延が生じることはない)。
【００５５】
次に、本発明を実施した場合に発生するマルチキャストキュー使用上限閾値越えによるパケット廃棄の問題について考察する。先ず、この問題に直接関わるマルチキャストコピー部と容量監視部について図４、図５及び図６を参照して説明する。図４において、マルチキャストコピー部８０は、マルチキャストテンポラリバッファ５０と主信号待ち合わせバッファ８１とセレクタ８２とを搭載し、入力される主信号のパケットとマルチキャストパケットのユニキャスト化パケットの何れかをセレクタ８２により選択して後段のパケットバッファ３０に出力するが、その際にそのパケットを、容量監視部９０を通して出力する。
【００５６】
マルチキャストコピー部８０に入力された主信号は、一旦主信号待ち合わせバッファ８１に格納され、マルチキャストテンポラリバッファ５０からの読出し中でなければ直ぐに読出される。マルチキャストテンポラリバッファ５０の読出し中の場合はその読出し完了後、主信号待ち合わせバッファ８１から読出される。
【００５７】
また、パケットバッファ３０からパケットバッファ読出し制御部２２を介して読出されたマルチキャストパケットは、マルチキャストテンポラリバッファ５０に格納され、スケジューラ部１０からの指示により読出される。マルチキャストテンポラリバッファ５０からの読出しは、主信号待ち合わせバッファ８１が空のときのみ行われる。
【００５８】
主信号待ち合わせバッファ８１が空でない場合は、それが空になるまでマルチキャストテンポラリバッファ５０からの読出しを待機する。マルチキャストテンポラリバッファ５０からの読出し中は、主信号は待ち合わせバッファ８１にて読出しを待たされるが、主信号待ち合わせバッファ８１の溢れにより主信号の入力パケットが廃棄されるのを防ぐため、主信号待ち合わせバッファ８１の読出しをマルチキャストテンポラリバッファ５０の読出しより優先にしている。
【００５９】
容量監視部９０は図５に示すように、パケットバッファ３０内の各キュー(各宛先ポートＡ，Ｂ，Ｃのユニキャストキューとマルチキャストキュー)のそれぞれの使用量を監視し、パケットバッファ３０へのパケット書き込み時にそのパケット長に相当する値を現在の使用量に加算し、パケットバッファ３０からのパケット読出し時にそのパケット長に相当する値を減算する。各キューにはそれぞれ使用上限閾値が設定されており、容量監視部９０は、パケット到着時にそのパケットをパケットバッファ３０に書き込むと使用上限閾値を超える場合には、そのパケットを書き込まずに廃棄する。
【００６０】
前述のように、主信号待ち合わせバッファ８１の読出しの方がマルチキャストテンポラリバッファ５０の読出しより優先するため、主信号パケットが高レートで入力されると、主信号待ち合わせバッファ８１には常にパケットが滞留し、それによりマルチキャストテンポラリバッファ５０からの読出しは行われなくなってしまう(図６<１>)。
【００６１】
このとき、入力される主信号パケットがマルチキャストパケットばかりであると、主信号待ち合わせバッファ８１には常にマルチキャストパケットが滞留し(図６<２>)、キュー使用上限閾値越えによりマルチキャストパケットの廃棄が起こる(図６<３>)。この廃棄処理は容量監視部９０で行われるため、主信号待ち合わせバッファ８１にはマルチキャストパケットが高レートで入力されるのでパケットが引き続き滞留し、マルチキャストテンポラリバッファ５０からの読出しは行われない。
【００６２】
その結果、マルチキャストパケットがマルチキャストテンポラリバッファ５０からユニキャストパケットとして読出されず、パケットバッファ３０のユニキャストキューは空となり(図６<４>，<５>)、外部にユニキャストパケットが出力されなくなってしまう(図６<６>)。
【００６３】
そこで、上記の問題を解決するために、マルチキャストキュー使用上限閾値越えが発生したときに、マルチキャストパケットの廃棄処理を容量監視部９０だけで行うのではなく、マルチキャストコピー部８０においてマルチキャストパケットを主信号待ち合わせバッファ８１に書き込む前で廃棄することにより上記の問題を解決する。
【００６４】
以下、この処理について図７を参照して説明する。マルチキャストコピー部８０において、主信号パケットが入力されると同時に容量監視部９０にもパケットを入力するルートを設ける(図７[１])。マルチキャストコピー部８０では主信号待ち合わせバッファ８１にパケットの書き込みを始めると同時に、そのパケットがマルチキャストパケットである場合は、容量監視部９０においてマルチキャストキューの使用量を計算し、その結果が使用上限閾値を超える場合は、マルチキャストコピー部８０に対して主信号待ち合わせバッファ８１に書き込んでいるマルチキャストパケットの廃棄指示を出力する(図７[２])。
【００６５】
廃棄指示を受け取ったマルチキャストコピー部８０は、主信号待ち合わせバッファ８１に書き込んでいるマルチキャストパケットを廃棄することにより、マルチキャストパケットが高レートで入力されていても、主信号待ち合わせバッファ８１に滞留していたマルチキャストパケットは、順次容量監視部９０へ読出されて容量監視部９０で廃棄されるため、主信号待ち合わせバッファ８１が空になる機会が生まれ、マルチキャストテンポラリバッファ５０からのパケットの読出しが可能となる(図７[４])。その結果、ユニキャストキューにもパケットが格納され(図７[５]，[６])、ユニキャストパケットが出力されるようになる(図７ [７])。
【図面の簡単な説明】
【００６６】
【図１】本発明によるマルチキャストパケット読出し制御の機能ブロック図である。
【図２】本発明によるマルチパケットの読出し制御動作のタイムチャートである。
【図３】本発明によるマルチパケットの読出し制御装置の詳細機能ブロック図である。
【図４】本発明におけるマルチキャストコピー部と容量監視部の構成を示す図である。
【図５】容量監視部における各キューの使用量の監視の説明図である。
【図６】マルチキャストキュー使用上限閾値を越えたときのマルチキャストパケットの滞留についての説明図である。
【図７】本発明によるマルチキャストキュー使用上限閾値を越えたときの対処についての説明図である。
【図８】マルチキャストパケットのフォーマット及びドメイングループテーブルの構成を示す図である。
【図９】従来のマルチキャストパケットの読出し制御装置の機能ブロック構成例を示す図である。
【図１０】従来のマルチキャストパケットの読出し制御のタイムチャートである。
【図１１】従来のマルチキャストパケット読出し制御の機能ブロックの詳細図である。
【図１２】クラス優先判定(ＳＰ)制御によるマルチパケットの読出し制御の影響の説明図である。
【符号の説明】
【００６７】
１０  スケジューラ部
１１  マルチキャスト宛先ビットマップ
１２  エンプティフラグ設定部
１３  帯域制御部
１５  読出しキュー選択部
１６  帯域割り当てテーブル
２１  読出しアドレス生成部
３０  パケットバッファ
５０  マルチキャストテンポラリバッファ
８１  主信号待ち合わせバッファ
８２  セレクタ
【図１】
2005269314.tif 000003
【図２】
2005269314.tif 000004
【図３】
2005269314.tif 000005
【図４】
2005269314.tif 000006
【図５】
2005269314.tif 000007
【図６】
2005269314.tif 000008
【図７】
2005269314.tif 000009
【図８】
2005269314.tif 000010
【図９】
2005269314.tif 000011
【図１０】
2005269314.tif 000012
【図１１】
2005269314.tif 000013
【図１２】
2005269314.tif 000014