(57)【特許請求の範囲】
【請求項１】
可変長パケットをローカルパケットである固定長パケットに変換した後にパケットスイッチによりスイッチングする可変長パケットスイッチ方法において、
入力する可変長パケットを該可変長パケットのヘッダ情報に基づき複数の出力方路別待ち行列に順次蓄積すると共に、各出力方路別待ち行列の蓄積情報に基づいて、ローカルパケットに格納可能な所定のサイズ分以内のパケットデータを前記出力方路別待ち行列から所定周期で読み出しヘッダを付加して多重したパケットデータを含め、前記ヘッダには、多重された有効なパケットデータの全データ長と、多重されたパケットデータに対しそのデータ長及び前記サイズを越えるため分割したパケットデータに対し前記データ長に代えて分割されたことを示すデータとを含め、固定長パケットとして前記パケットスイッチに出力することを特徴とする可変長パケットスイッチ方法。
【請求項２】
前記パケットスイッチから出力された固定長パケットを入力方路別待ち行列に順次蓄積すると共に、各入力方路別待ち行列のヘッダ情報に基づいて、可変長パケットが蓄積、再生された時点で当該可変長パケットを出力することを特徴とする請求項１記載の可変長パケットスイッチ方法。
【請求項３】
前記ヘッダに含まれる分割されたことを示すデータは、数値ゼロであることを特徴とする請求項１又は２記載の可変長パケットスイッチ方法。
【請求項４】
可変長パケットを固定長パケットのローカルパケットに変換した後にパケットスイッチによりスイッチングする可変長パケットスイッチシステムにおいて、
可変長パケットを入力し、該可変長パケットのヘッダ情報を元に送出先を選択し、送出先の情報と共に前記可変長パケットを出力するフロー制御部と、前記フロー制御部から受信した送出先情報を元に前記可変長パケットを出力方路別待ち行列部の該当する待ち行列に積み込む多重分離部と、前記出力方路別待ち行列部への蓄積情報を元にヘッダ情報を生成し所定周期で各出力方路別待ち行列部へ出力指示を送信するパケット化制御部と、前記パケット化制御部からのヘッダ情報及び出力指示により、ローカルパケットに格納可能な所定のサイズ分以内のパケットデータを前記出力方路別待ち行列から所定周期で読み出しヘッダを付加して多重したパケットデータを含め、前記ヘッダには、多重された有効なパケットデータの全データ長と、多重されたパケットデータに対しそのデータ長及び前記サイズを越えるため分割したパケットデータに対し前記データ長に代え分割されたことを示すデータとを含め、固定長パケットとして出力する前記出力方路別待ち行列部と、前記出力方路別待ち行列部から出力した固定長パケットを多重し前記パケットスイッチに出力する多重化部と、を有することを特徴とする可変長パケットスイッチシステム。
【請求項５】
前記パケットスイッチから出力された固定長パケットを該パケットのヘッダ情報に基づいて入力方路別待ち行列部に積み込む多重分離部と、前記入力方路別待ち行列部のヘッダ情報を元に可変長パケットの再生状態を監視し再生が完了した可変長パケットの出力指示を送信する出力パケット化制御部と、前記出力パケット化制御部からの出力指示により可変パケット長分のデータを読み出し可変長パケットを出力する前記入力方路別待ち行列部と、前記可変長パケットを多重して出力する多重化部と、を有することを特徴とする請求項４記載の可変長パケットスイッチシステム。
【請求項６】
前記ヘッダに含まれる分割されたことを示すデータは、数値ゼロであることを特徴とする請求項４又は５記載の可変長パケットスイッチシステム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、パケットスイッチシステムに関し、特に、可変長パケットを入力し所定方路にスイッチングする可変長パケットスイッチ方法及びシステムに関する。
【０００２】
【従来の技術】
従来のパケットスイッチ（ルータ等）は、処理をソフト処理に頼るところが大きく、高速化がネックとなっていた。ところが近年、Ｈ／Ｗによるフロー検出の高速化（ＣＡＭ等）、Ｈ／Ｗによる固定長パケットスイッチングの高速化（ＡＴＭスイッチ、クロスバースイッチ等）により、従来のソフト処理をハード処理化することが可能となり、高速化が急激に進んでいる。
【０００３】
図７は、前記ハード処理化の技術の構成及び処理動作を示す図である。システムに入力する可変長パケットＩｎｐｕｔＰａｃｋｅｔ７０−０〜ｎを固定長ローカルパケットＬｏｃａｌＰａｃｋｅｔ７２−０〜ｔに変換する入力交換部Ｉｎｐｕｔ−Ｅｘｃｈａｎｇｅ７１と、固定長ローカルパケットＬｏｃａｌＰａｃｋｅｔ７２−０〜ｔをスイッチングするパケットスイッチ部ＰａｃｋｅｔＳｗｉｔｃｈ７３と、パケットスイッチ部ＰａｃｋｅｔＳｗｉｔｃｈ７３が出力する固定長パケットを可変長パケットＯｕｔｐｕｔＰａｃｋｅｔ７５−０〜ｎに変換する出力交換部Ｏｕｔｐｕｔ−Ｅｘｃｈａｎｇｅ７４と、から構成される。以下、同図により従来のハード処理化の処理動作について説明する。
【０００４】
システムに入力する可変長パケットＩｎｐｕｔＰａｃｋｅｔ７０−０〜ｎは、入力交換部Ｉｎｐｕｔ−Ｅｘｃｈａｎｇｅ７１において分割され、固定長のシステム内ローカルのパケットＬｏｃａｌＰａｃｋｅｔ７２−０〜ｔへ変換される。このＬｏｃａｌＰａｃｋｅｔ７２−０〜ｔを、高速処理が可能なパケットスイッチ部ＰａｃｋｅｔＳｗｉｔｃｈ７３でスイッチングを行い、スイッチング後のＬｏｃａｌＰａｃｋｅｔ７２−０〜ｔは出力交換部Ｏｕｔｐｕｔ−Ｅｘｃｈａｎｇｅ７４において元の可変長のパケットに再生される。
【０００５】
ここで、入力交換部Ｉｎｐｕｔ−Ｅｘｃｈａｎｇｅ７１では、一般に、ＩｎｐｕｔＰａｃｋｅｔ単位で、ＬｏｃａｌＰａｃｋｅｔに割り当てられ、また、複数のＩｎｐｕｔＰａｃｋｅｔを、１個のＬｏｃａｌＰａｃｋｅｔに割り当てることも可能である（ＡＴＭ  ＡＡＬ２、特開平１０−２９４７４３号公報、特開２０００−３３２７８１号公報）。さらに、ＬｏｃａｌＰａｃｋｅｔサイズよりも大きなサイズのＩｎｐｕｔＰａｃｋｅｔは、複数のＬｏｃａｌＰａｃｋｅｔに割り当てられる（ＡＴＭ  ＡＡＬ５）。どちらの場合にも、ＬｏｃａｌＰａｃｋｅｔの余った領域はダミーデータ（Ｐａｄｄｉｎｇ等）が挿入される。
【０００６】
【発明が解決しようとする課題】
この様な状況から顧みると従来のシステムでは、入力する可変長のパケットＩｎｐｕｔＰａｃｋｅｔのサイズによっては、ＩｎｐｕｔＰａｃｋｅｔから固定長のローカルパケットＬｏｃａｌＰａｃｋｅｔへの変換効率が悪く、その結果、パケットスイッチ部ＰａｃｋｅｔＳｗｉｔｃｈ７３の交換効率が悪化し、システムとしての能力が激減してしまう。例えば、Ｂ［Ｂｙｔｅ］を収容出来る固定長のローカルパケットＬｏｃａｌＰａｃｋｅｔに対して、可変長のパケットＩｎｐｕｔＰａｃｋｅｔのサイズがＢ＋１［Ｂｙｔｅ］の場合、ＰａｃｋｅｔＳｗｉｔｃｈ７３の交換効率が最悪となり、交換効率が実力の半分程度迄低下してしまい、スイッチ部の必要帯域が倍になってしまう。
以上のように、従来のパケットスイッチシステムでは入力する可変長パケットＩｎｐｕｔＰａｃｋｅｔによりパケットスイッチ部における必要帯域が増大するという問題がある。
【０００７】
（目的）
本発明の目的は、この様な状況を回避し、どの様なサイズの可変長パケットＩｎｐｕｔＰａｃｋｅｔに対しても、パケットスイッチ部の必要帯域を抑えることが可能な可変長パケットスイッチ方法及びシステムを提供することにある。
【０００８】
【課題を解決するための手段】
本発明の可変長パケットスイッチ方法は、可変長パケットをローカルパケットである固定長パケットに変換した後にパケットスイッチによりスイッチングする可変長パケットスイッチ方法において、入力する可変長パケットを該可変長パケットのヘッダ情報に基づき複数の出力方路別待ち行列に順次蓄積すると共に、各出力方路別待ち行列の蓄積情報に基づいて、ローカルパケットに格納可能な所定のサイズ分以下のパケットデータを前記出力方路別待ち行列から所定周期で読み出しヘッダを付加して多重したパケットデータを含め、前記ヘッダには、多重された有効なパケットデータの全データ長と、多重されたパケットデータに対しそのデータ長及び前記サイズを越えるため分割したパケットデータに対し前記データ長に代え分割されたことを示すデータとを含め、固定長パケットとして前記パケットスイッチに出力することを特徴とする。また、前記パケットスイッチから出力された固定長パケットを入力方路別待ち行列に順次蓄積すると共に、各入力方路別待ち行列のヘッダ情報に基づいて、可変長パケットが蓄積、再生された時点で当該可変長パケットを出力することを特徴とし、前記ヘッダに含まれる分割されたことを示すデータは、数値ゼロであることを特徴とする。
【０００９】
本発明の可変長パケットスイッチシステムは、可変長パケットを固定長パケットのローカルパケットに変換した後にパケットスイッチによりスイッチングする可変長パケットスイッチシステムにおいて、可変長パケットを入力し、該可変長パケットのヘッダ情報を元に送出先を選択し、送出先の情報と共に前記可変長パケットを出力するフロー制御部と、前記フロー制御部から受信した送出先情報を元に前記可変長パケットを出力方路別待ち行列部の該当する待ち行列に積み込む多重分離部と、前記出力方路別待ち行列部への蓄積情報を元にヘッダ情報を生成し所定周期で各出力方路別待ち行列部へ出力指示を送信するパケット化制御部と、前記パケット化制御部からのヘッダ情報及び出力指示により、ローカルパケットに格納可能な所定のサイズ分以内のパケットデータを前記出力方路別待ち行列から所定周期で読み出しヘッダを付加して多重したパケットデータを含め、前記ヘッダには、多重された有効なパケットデータの全データ長と、多重されたパケットデータに対しそのデータ長及び前記サイズを越えるため分割したパケットデータに対し前記データ長に代えた分割されたことを示すデータとを含め、固定長パケットとして出力する前記出力方路別待ち行列部と、前記出力方路別待ち行列部から出力した固定長パケットを多重し前記パケットスイッチに出力する多重化部と、を有することを特徴とする。また、前記パケットスイッチから出力された固定長パケットを該パケットのヘッダ情報に基づいて入力方路別待ち行列部に積み込む多重分離部と、前記入力方路別待ち行列部のヘッダ情報を元に可変長パケットの再生状態を監視し再生が完了した可変長パケットの出力指示を送信する出力パケット化制御部と、前記出力パケット化制御部からの出力指示により可変パケット長分のデータを読み出し可変長パケットを出力する前記入力方路別待ち行列部と、前記可変長パケットを多重して出力する多重化部と、を有することを特徴とし、前記ヘッダに含まれる分割されたことを示すデータは、ゼロ値であることを特徴とする。
【００１０】
より具体的には、本発明の入力交換部Ｉｎｐｕｔ−Ｅｘｃｈａｎｇｅ１１において、インターフェースから入力された可変長のパケットＩｎｐｕｔＰａｃｋｅｔ１０−０〜ｎに対し、そのヘッダ情報（Ｈｅａｄｅｒ情報）に基づいてフローを検索し、パケットスイッチ部ＰａｃｋｅｔＳｗｉｔｃｈ１３の出力方路単位に出力方路別待ち行列部ＱｕｅｕｅにキューイングＱｕｅｉｎｇし、Ｑｕｅｉｎｇ後、キューＱｕｅｕｅの先頭から順次、システム内ローカルであるローカルパケットＬｏｃａｌＰａｃｋｅｔに多重可能なデータサイズＸ［Ｂｙｔｅ］毎に分割して、必要な情報をＨｅａｄｅｒに付加し、ローカルパケットＬｏｃａｌＰａｃｋｅｔ１７−０〜ｍとして変換してパケットスイッチ部ＰａｃｋｅｔＳｗｉｔｃｈ１３に出力する交換機能を有することに特徴を有する。（図１）
（作用）
可変長パケットを当該パケットのサイズに依存することなく固定長パケットに変換し、高速な固定長パケットのパケットスイッチでスイッチングすることにより可変長パケットの固定長パケット化時のロスをなくするとともに、パケットスイッチの必要帯域を必要最低限にする。
【００１１】
【発明の実施の形態】
本発明の可変長パケットスイッチ方法及びシステムの実施の形態について以下説明する。
【００１２】
（構成の説明）
図１は、本発明の可変長パケットスイッチ方法及びシステムの一実施の形態の全体のシステム構成を示す図である。入力されるパケットを出力方路単位の固定長パケットであるローカルパケットＬｏｃａｌＰａｃｋｅｔに変換する入力交換部Ｉｎｐｕｔ−Ｅｘｃｈａｎｇｅ１１と、前記ローカルパケットＬｏｃａｌＰａｃｋｅｔをスイッチングするパケットスイッチ部ＰａｃｋｅｔＳｗｉｔｃｈ１３と、スイッチング後のローカルパケットＬｏｃａｌＰａｃｋｅｔを方路単位の可変長パケットに変換する出力交換部Ｏｕｔｐｕｔ−Ｅｘｃｈａｎｇｅ１４と、から構成される。
【００１３】
図２は、個々の入力交換部Ｉｎｐｕｔ−Ｅｘｃｈａｎｇｅ１１の詳細な構成例を示す図である。入力交換部Ｉｎｐｕｔ−Ｅｘｃｈａｎｇｅ１１は、フロー制御部２０、多重分離部ＤＭＵＸ２２、出力方路別待ち行列部Ｑｕｅｕｅ２３−０〜ｎ、パケット化制御部（Ｐａｃｋｅｔ化制御部）２４、及び多重化部ＭＵＸ２５で構成される。各部は以下の機能を有している。
【００１４】
フロー制御部２０は、入力する可変長パケットＩｎｐｕｔＰａｃｋｅｔ１０の各ヘッダ情報を元にフォワーディングテーブルを検索して、各フローを認識し、送出先を選択し、その送出先の情報（送信先情報）と共に可変長パケットＩｎｐｕｔＰａｃｋｅｔ１０を多重分離部ＤＭＵＸ２２へ送出する機能を有する。また、必要であれば、各フローのポーリシングをも行う機能を有する。
【００１５】
多重分離部ＤＭＵＸ２２では、フロー制御部２０から受信した送出先情報を元に、可変長パケットＩｎｐｕｔＰａｃｋｅｔ１０を出力方路別待ち行列部Ｑｕｅｕｅ２３−０〜ｎの該当する待ち行列Ｑｕｅｕｅ（キュー）へ積み込む機能を有する。
【００１６】
出力方路別待ち行列部Ｑｕｅｕｅ２３−０〜ｎでは、入力された可変長パケットＩｎｐｕｔＰａｃｋｅｔ１０−０〜ｎのキューイングＱｕｅｉｎｇ及びＱｕｅｕｅへの蓄積情報を監視し、Ｐａｃｋｅｔ化制御部２４へ通知する機能を有し、また、後述するＰａｃｋｅｔ化制御部２４から出力指示を受信した時、ローカルパケットＬｏｃａｌＰａｃｋｅｔのサイズ（ＬｏｃａｌＰａｃｋｅｔサイズ）Ｘ［Ｂｙｔｅ］分のデータ、例えば格納可能な最大のサイズのデータを読み出し、同時にＰａｃｋｅｔ化制御部２４から受信したヘッダ情報（Ｈｅａｄｅｒ情報）により、ローカルパケットＬｏｃａｌＰａｃｋｅｔにヘッダ（Ｈｅａｄｅｒ）を添付して後段へ送出する機能を有する。
【００１７】
Ｐａｃｋｅｔ化制御部２４は、出力方路別待ち行列部Ｑｕｅｕｅ２３−０〜ｎから送られてくる蓄積情報を元に、Ｈｅａｄｅｒ情報を生成する機能を有し、また、一定周期で各出力方路別待ち行列部Ｑｕｅｕｅ２３−０〜ｎへ出力を指示する前記出力指示を送信する機能、及び出力するパケットデータに添付するヘッダを生成するのための前記Ｈｅａｄｅｒ情報を送信する機能を有する。
【００１８】
多重化部ＭＵＸ２５は、出力方路別待ち行列部Ｑｕｅｕｅ２３−０〜ｎから送信される固定長のローカルパケットＬｏｃａｌＰａｃｋｅｔを多重する機能を有する。
【００１９】
図３は、固定長のローカルパケットＬｏｃａｌＰａｃｋｅｔのフォーマットの一例を示す図である。
入力ポートＩｎｐｕｔＰｏｒｔ−ＩＤ３０は、パケットスイッチ部ＰａｃｋｅｔＳｗｉｔｃｈ１３への入力ポートＩＤを示し、出力交換部Ｏｕｔｐｕｔ−Ｅｘｃｈａｎｇｅ１４でのＱｕｅｉｎｇの際に使用される。出力ポートＯｕｔｐｕｔＰｏｒｔ−ＩＤ３１は、パケットスイッチ部ＰａｃｋｅｔＳｗｉｔｃｈ１３での出力ポートＩＤを示し、パケットスイッチ部ＰａｃｋｅｔＳｗｉｔｃｈ１３でのスイッチングの際に使用される。
【００２０】
パケット長ＰａｃｋｅｔＬｅｎｇｔｈ３２は、ＬｏｃａｌＰａｃｋｅｔ内の有効パケットデータ長［Ｂｙｔｅ］を示す。ＬｏｃａｌＰａｃｋｅｔに多重できる最大のサイズは、ＬｏｃａｌＰａｃｋｅｔサイズＸ［Ｂｙｔｅ］であるが、ＰａｃｋｅｔＬｅｎｇｔｈ３２＜Ｘの場合、ＰａｃｋｅｔＬｅｎｇｔｈ３２＋１からＸ迄のデータは無視される。
【００２１】
パケット長ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃０〜＃ｎは、ＬｏｃａｌＰａｃｋｅｔ内に多重されている各パケットのパケット長を示す。ここで、ＰａｃｋｅｔＬｅｎｇｔｈ３２で示される有効パケットデータ長の領域にあるパケットのデータにも拘わらず、ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃ｎの値を“０”に設定したパケットは、複数のＬｏｃａｌＰａｃｋｅｔに分割されていることを示すこととする。
【００２２】
パケットデータＰａｃｋｅｔＤａｔａ３４−＃０〜＃ｎは、多重されている各パケットのデータを示す。パケットデータＰａｃｋｅｔＤａｔａ３４−＃０〜＃ｎの最大データ量は、ＬｏｃａｌＰａｃｋｅｔサイズＸ［Ｂｙｔｅ］である。
【００２３】
図４は、或る出力方路別待ち行列Ｑｕｅｕｅ２３−ｉの蓄積状態と、Ｐａｃｋｅｔ化制御部２４が送信するＨｅａｄｅｒ情報の一例を示す図である。
同図に示すように出力方路別待ち行列部Ｑｕｅｕｅ２３−ｉにパケット長ａ〜ｆ迄のパケットが蓄積されたとすると、出力方路別待ち行列部Ｑｕｅｕｅ２３−ｉは、ＩｎｐｕｔＰｏｒｔ−ＩＤ、ＯｕｔｐｕｔＰｏｒｔ−ＩＤ、パケット長ａ〜ｆをＰａｃｋｅｔ化制御部２４へ送信する。Ｐａｃｋｅｔ化制御部２４では受信した情報を元に、各ＬｏｃａｌＰａｃｋｅｔに付与すべきＨｅａｄｅｒ情報を生成し、一定周期で出力指示（ｏｕｔｐｕｔ＝ＯＫ）を送信する。生成するＨｅａｄｅｒ情報には、ＬｏｃａｌＰａｃｋｅｔの有効パケット長データであるＰａｃｋｅｔＬｅｎｇｔｈ３２、多重された各パケット長及び分割多重されていることを示すＰａｃｋｅｔＬｅｎｇｔｈ３３−＃０〜＃ｎの情報を含んでいる。
【００２４】
図４に示す例において、
２Ｘ＞ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ＞Ｘ、
ａ＋ｂ＋ｃ＋（ｄ−２）＝Ｘ、
２＋ｅ＋ｆ＝Ｙ＜Ｘ、
ｄ＋ｅ＋ｆ＞Ｘ
とした場合、パケット長ｄのパケットのみを分割することでＬｏｃａｌＰａｃｋｅｔとしては３個ではなく２個生成され、
Ｐａｃｋｅｔ化制御部２４が生成するそれぞれのＨｅａｄｅｒ情報は、
ＰａｃｋｅｔＬｅｎｇｔｈ３２＝Ｘ、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃０＝ａ、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃１＝ｂ、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃２＝ｃ、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃３＝０、
及び、
ＰａｃｋｅｔＬｅｎｇｔｈ３２＝Ｙ＝２＋ｅ＋ｆ＜Ｘ、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃０＝２、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃１＝ｅ、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃２＝ｆ、
となる。
【００２５】
図１に示すパケットスイッチ部ＰａｃｋｅｔＳｗｉｔｃｈ１３は、前述の入力交換部Ｉｎｐｕｔ−Ｅｘｃｈａｎｇｅ１１から出力するローカルパケットＬｏｃａｌＰａｃｋｅｔ１２−０〜ｍを入力し、そのＨｅａｄｅｒ内のＯｕｔｐｕｔＰｏｒｔ−ＩＤを参照してスイッチングを行い、スイッチング後のローカルパケットＬｏｃａｌＰａｃｋｅｔ１２−０〜ｍを出力交換部Ｏｕｔｐｕｔ−Ｅｘｃｈａｎｇｅ１４に出力する。ここでパケットスイッチの種別としては、クロスバースイッチが高速・安価であることから使用されることが多いが、それだけでなく、ＡＴＭを含むパケットスイッチ全般が適用可能である。
【００２６】
図５は、個々の出力交換部Ｏｕｔｐｕｔ−Ｅｘｃｈａｎｇｅ１４の詳細な構成例を示す図である。出力交換部Ｏｕｔｐｕｔ−Ｅｘｃｈａｎｇｅ１４は、多重分離部ＤＭＵＸ５０、入力方路別待ち行列部Ｑｕｅｕｅ５１−０〜ｎ、パケット化制御部（Ｐａｃｋｅｔ化制御部）５２、及び多重化部ＭＵＸ５３で構成される。各部は以下の機能を有している。
【００２７】
多重分離部ＤＭＵＸ５０は、ＰａｃｋｅｔＳｗｉｔｃｈ１３から入力されるＬｏｃａｌＰａｃｋｅｔを、Ｈｅａｄｅｒ内のＩｎｐｕｔＰｏｒｔ−ＩＤ３０を参照し、入力方路別待ち行列部Ｑｕｅｕｅ５１−０〜ｎの該当するＱｕｅｕｅへ積み込む機能を有する。
【００２８】
入力方路別待ち行列部Ｑｕｅｕｅ５１−０〜ｎは、ＬｏｃａｌＰａｃｋｅｔのパケットデータＰａｃｋｅｔＤａｔａ部のＱｕｅｉｎｇ及びＨｅａｄｅｒ情報のＰａｃｋｅｔ化制御部５２への通知を行う機能を有し、また、Ｐａｃｋｅｔ化制御部５２から出力指示を受信した時、同時に受信送信されるパケット長Ａ［Ｂｙｔｅ］分のデータを送出する機能を有する。
【００２９】
Ｐａｃｋｅｔ化制御部５２は、入力方路別待ち行列部Ｑｕｅｕｅ５１−０〜ｎから送られてくるＬｏｃａｌＰａｃｋｅｔのＨｅａｄｅｒ情報を元に、ＩｎｐｕｔＰａｃｋｅｔの再生状態を監視する機能を有する。ＰａｃｋｅｔＬｅｎｇｔｈ３２で有効指定され、尚かつＰａｃｋｅｔＬｅｎｇｔｈ３３−＃ｎで示されるパケット長が１以上の場合、パケットの再生終了と見なすことができ、そのパケットの送出許可を出す機能を有する。ＰａｃｋｅｔＬｅｎｇｔｈ３２で有効指定され、尚かつＰａｃｋｅｔＬｅｎｇｔｈ３３−＃ｎが"０"である場合、元のパケットデータは次のＬｏｃａｌＰａｃｋｅｔにまたがっていることを示す為、次にＬｏｃａｌＰａｃｋｅｔのＨｅａｄｅｒ情報がＰａｃｋｅｔＬｅｎｇｔｈ３２で有効指定され、尚かつＰａｃｋｅｔＬｅｎｇｔｈ３３−ｎで示されるパケット長が１以上になるまでは待機する機能を有する。
また、再生が終了したＩｎｐｕｔＰａｃｋｅｔから順次、出力許可及びパケット長サイズを入力方路別待ち行列部Ｑｕｅｕｅ５１−０〜ｎへ送信する機能を有する。
【００３０】
多重化部ＭＵＸ５３は、入力方路別待ち行列部Ｑｕｅｕｅ５１−０〜ｎから送信されるＬｏｃａｌＰａｃｋｅｔを多重する機能を有する。
【００３１】
（動作の説明）
本発明の可変長パケットスイッチシステムの動作について、図１を参照して詳細に説明する。
いま、インターフェース部から、パケット長がそれぞれａ〜ｆの可変長のパケットが入力したとする。この時、各パケット長と固定長のローカルパケットＬｏｃａｌＰａｃｋｅｔサイズＸ［Ｂｙｔｅ］の間に、
２Ｘ＞ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ＞Ｘ、
ａ＋ｂ＋ｃ＋（ｄ−２）＝Ｘ、
ｄ＋ｅ＋ｆ＞Ｘ、
２＋ｅ＋ｆ＝Ｙ＜Ｘ、
の関係があり、すべてのパケットは、Ｐｏｒｔ＃ｍから入力し、Ｐｏｒｔ＃ｎへ出力するものとする。
【００３２】
入力交換部Ｉｎｐｕｔ−Ｅｘｃｈａｎｇｅ１１に入力したパケットは、フロー制御部２０での検索の結果、すべて、ＰａｃｋｅｔＳｗｉｔｃｈでの出力Ｐｏｒｔが＃ｎであることが判明し、ＤＭＵＸ２２を経由して、すべてのパケットが出力方路別待ち行列部Ｑｕｅｕｅ２３−０〜ｎへ蓄積されることになる。
【００３３】
出力方路別待ち行列部Ｑｕｅｕｅ２３−０〜ｎでは、蓄積されたパケットのパケット長ａ〜ｆ、ＰａｃｋｅｔＳｗｉｔｃｈの入出力ＰｏｒｔをＰａｃｋｅｔ化制御部２４へ送信する。
【００３４】
Ｐａｃｋｅｔ化制御部２４では受信した情報を元に、各ＬｏｃａｌＰａｃｋｅｔに付与すべきＨｅａｄｅｒを生成する。この例では各パケット長が上記の関係がある為、ＬｏｃａｌＰａｃｋｅｔは３個ではなく２個生成され、Ｐａｃｋｅｔ化制御部２４が生成するそれぞれのＨｅａｄｅｒ情報として、
（１番目のＬｏｃａｌＰａｃｋｅｔのＨｅａｄｅｒ情報）
ＰａｃｋｅｔＬｅｎｇｔｈ３２＝Ｘ、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃０＝ａ、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃１＝ｂ
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃２＝ｃ、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃３＝０、
（２番目のＬｏｃａｌＰａｃｋｅｔのＨｅａｄｅｒ情報）
ＰａｃｋｅｔＬｅｎｇｔｈ３２＝Ｙ＝２＋ｅ＋ｆ＜Ｘ、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃０＝２、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃１＝ｅ、
ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃２＝ｆ、
が生成され、出力指示と共に出力方路別待ち行列部Ｑｕｅｕｅ２３−０〜ｎへ送信され、出力方路別待ち行列部Ｑｕｅｕｅ２３−０〜ｎから２個のＬｏｃａｌＰａｃｋｅｔが出力される。
【００３５】
ＰａｃｋｅｔＳｗｉｔｃｈ１３は、ＬｏｃａｌＰａｃｋｅｔ１２−０〜ｎのＨｅａｄｅｒ内のＯｕｔｐｕｔＰｏｒｔ−ＩＤを参照してスイッチングを行う。従って、２個のＬｏｃａｌＰａｃｋｅｔは、ＯｕｔｐｕｔＰｏｒｔ＃ｎへ出力される。
【００３６】
Ｏｕｔｐｕｔ−Ｅｘｃｈａｎｇｅ１４に入力したＬｏｃａｌＰａｃｋｅｔは、ＬｏｃａｌＰａｃｋｅｔ内のＩｎｐｕｔＰｏｒｔ−ＩＤ値により分離され、入力方路別待ち行列部Ｑｕｅｕｅ５１−０〜ｎへ入力され、２個のＬｏｃａｌＰａｃｋｅｔのＨｅａｄｅｒ情報は、Ｐａｃｋｅｔ化制御部５２へ送信される。
【００３７】
Ｐａｃｋｅｔ化制御部５２では、初めのＬｏｃａｌＰａｃｋｅｔのＨｅａｄｅｒ情報を受信した時点で、ＰａｃｋｅｔＬｅｎｇｔｈ３２＝Ｘ、ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃ｎ＞０の為、パケット長ａ、ｂ、ｃの３パケットが再生した事を認識する為、この３パケット分の送信指示を入力方路別待ち行列部Ｑｕｅｕｅ５１−０〜ｎに対して行う。４パケット目は、ＰａｃｋｅｔＬｅｎｇｔｈ３２＝Ｘ、ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃３＝０であることから分割されていることが判明し、この時点では出力許可は行わない。次のＬｏｃａｌＰａｃｋｅｔのＨｅａｄｅｒ情報を受信した時点で、ＰａｃｋｅｔＬｅｎｇｔｈ３２＝Ｙ、ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃０＝２である為、長さｄのパケット、長さｅ、ｆのパケットも再生出来たことが判明し、残りの３パケットに対しても出力指示を出す。
【００３８】
以上の動作により、どの様なサイズの入力可変長パケットに対しても、パケットスイッチ部の必要帯域を抑えることが可能である。
【００３９】
（他の実施の形態）
次に、本発明の可変長パケットスイッチシステムの他の実施の形態について説明する。
前述の実施の形態では、ＬｏｃａｌＰａｃｋｅｔのフォーマットとして、各Ｐａｃｋｅｔのデータ長を図３に示すようなＰａｃｋｅｔＬｅｎｇｔｈ３３により示す例を説明したが、かかるパケットデータ長の表示はポインタ表示とすることが可能である。例えば、図３に示すＰａｃｋｅｔＤａｔａ＃０の先頭データのポインタを“０”、ＰａｃｋｅｔＤａｔａ＃ｎの最終データのポインタを“Ｎ”とし、各ＰａｃｋｅｔＬｅｎｇｔｈ３３−＃０〜＃ｎには各ＰａｃｋｅｔＤａｔａの先頭ポインタ値を格納するように構成することが可能である。
【００４０】
また、前述の実施の形態では図３に示すように多重する各パケットのパケット長をＬｏｃａｌＰａｃｋｅｔ内に明示することから、多重するパケット数を増やした場合、ＬｏｃａｌＰａｃｋｅｔのＨｅａｄｅｒ情報が増えてしまい、オーバーヘッドが大きくなり、システム全体の使用効率が悪くなって必要帯域が増加を促してしまう。そこで、このような場合は、多重するパケット長情報をＬｏｃａｌＰａｃｋｅｔ内に明示するのではなく、図６に示すようにＬｏｃａｌＰａｃｋｅｔと併走する１ｂｉｔのデータ（ＳＯＰ：Ｓｔａｒｔ  Ｏｆ  Ｐａｃｋｅｔ）６３を定義し、多重された各Ｐａｃｋｅｔの先頭を“１”、それ以外を“０”として、先頭を明示するように構成することで必要帯域の増加を回避することが可能である。
【００４１】
更に、図２及び図５において、出力方路別待ち行列部Ｑｕｅｕｅ２３及び入力方路別待ち行列部Ｑｕｅｕｅ５１は、入出力方路単位のＱｕｅｉｎｇのみを実施している。この構成では、すべてのパケットが平等であり、同じ扱いを受けることになってしまう。その為、このブロックのＱｕｅｕｅ構成を入出力方路単位、ＱｏＳ等のクラス単位とすることで、各パケットにＱｏＳ等のクラスの概念を与えることが可能であり、パケットの優先度の差別化も可能となる。
【００４２】
また、以上の実施の形態において、パケットスイッチに出力した固定長パケットに、可変長パケットの分割したパケットデータを含む場合においては、分割された後続のパケットデータを含む出力方路別待ち行列のパケットデータは、後続の可変長パケットのパケットデータと共に所定のデータサイズで読み出し出力するように構成することができ、また、前記所定のデータサイズ以下の蓄積量の場合にも所定周期で残りのパケットデータを読み出しヘッダを付加して固定長パケットとして前記パケットスイッチに出力するように構成することも可能である。更に、固定長パケットのヘッダに、多重された有効なパケットデータの全データ長と、各パケットデータの各データ長及び分割したパケットデータに対する前記データ長に代え分割されたことを示すデータと、を含むように構成する他に、分割したパケットデータの識別のための独立した他のヘッダの情報を挿入しておくことも可能である。
【００４３】
【発明の効果】
本発明によれば、可変長パケットを元のサイズに依存せずに固定長パケット化し、高速な固定長パケットのパケットスイッチでスイッチングするように構成でき、Ｈ／Ｗ等による高速スイッチングが実現可能となり、特に、可変長パケットを固定長パケットに変換する時の変換ロスが無くなる為、どの様なサイズのパケットに対してもパケットスイッチ部の必要帯域を最低限にすることが可能となる。
【００４４】
また、ローカルパケット内の可変長パケットのデータの特定にポインタ表示を採用すること、又は１ビットデータにより前記パケットデータの先頭及び後続データの識別表示を採用することにより、ヘッダ情報の増加を抑制することが可能であり、システムの伝送効率を向上させることができる。
【００４５】
【図面の簡単な説明】
【図１】本発明の一実施の形態を示すブロック図である。
【図２】図１の入力交換部Ｉｎｐｕｔ−Ｅｘｃｈａｎｇｅの一構成例を示すブロック図である。
【図３】図１のローカルパケットＬｏｃａｌＰａｃｋｅｔのフォーマットの一構成例を示すブロック図である。
【図４】図１の入力交換部Ｉｎｐｕｔ−Ｅｘｃｈａｎｇｅの一動作例を示すブロック図である。
【図５】図１の出力交換部Ｏｕｔｐｕｔ−Ｅｘｃｈａｎｇｅの一構成例を示すブロック図である。
【図６】図１のローカルパケットＬｏｃａｌＰａｃｋｅｔのフォーマットの一構成例を示すブロック図である。
【図７】従来のパケットスイッチのハード処理化の技術の構成及び処理動作を示す図である。
【符号の説明】
１０−０〜１０−ｎ、７０−０〜７０−ｎ  入力可変長パケット
１２−０〜１２−ｎ、７２−０〜７２−ｎ  固定長パケット
１５−０〜１５−ｎ、７５−０〜７５−ｎ  出力可変長パケット
１１、７１  入力交換部
１３、７３  パケットスイッチ
１４、７４  出力交換部
２０  フロー制御部
２３−０〜２３−ｎ、２３−ｉ  出力方路別待ち行列部
５１−０〜５１−ｎ  入力方路別待ち行列部
２２、５０  多重分離部
２５、５３  多重化部
２４、３４  出力パケット化部
５２  パケット化制御部
【図１】
0003622843.tif 000002
【図２】
0003622843.tif 000003
【図３】
0003622843.tif 000004
【図４】
0003622843.tif 000005
【図５】
0003622843.tif 000006
【図６】
0003622843.tif 000007
【図７】
0003622843.tif 000008