(57)【特許請求の範囲】
【請求項１】
入力回線側のパケットのインタフェース制御を行う入力回線インタフェース装置において、
可変長パケットを分割して並列ラインに振り分けて出力するパケット振り分け手段と、
前記並列ライン毎に前記パケットをフローグループに分類するフローグループ分類手段と、
前記フローグループに対応して、もしくは独立にシーケンス番号を前記パケットに付与するシーケンス番号付与手段と、
前記シーケンス番号が付与されたパケットのバッファリングを行って、前記フローグループ内の前記パケットの整列制御を行うバッファリング手段と、
前記フローグループ毎に前記パケットを振り分けて出力するフロー振り分けスイッチと、
を備え、
前記シーケンス番号付与手段は、前記並列ラインに対応して、Ｃｎ＋１、Ｃｎ＋２、・・・、Ｃｎ＋Ｃのシーケンス番号を（ｎ＝０、１、２・・・、Ｃは並列ライン数）、前記フローグループの前記パケットの各タイムスロットに付与し、
前記バッファリング手段は、前記シーケンス番号の最も小さい番号順に前記パケットを読出して、前記フローグループに分けられた前記パケットを出力する、
ことを特徴とする入力回線インタフェース装置。
【請求項２】
前記パケット振り分け手段は、前記可変長パケットを固定長パケットに分割して振り分け処理することを特徴とする請求項１記載の入力回線インタフェース装置。
【請求項３】
前記パケット振り分け手段は、一定の周期で振り分け先を変更する処理、またはパケットが到着しない間は振り分け処理を停止する処理のいずれか一方の振り分け処理を行うことを特徴とする請求項１記載の入力回線インタフェース装置。
【請求項４】
パケットの通信制御を行うパケット通信装置において、
可変長パケットを分割して並列ラインに振り分けて出力するパケット振り分け手段と、前記並列ライン毎に前記パケットをフローグループに分類するフローグループ分類手段と、前記フローグループに対応して、もしくは独立にシーケンス番号を前記パケットに付与するシーケンス番号付与手段と、前記シーケンス番号が付与されたパケットのバッファリングを行って、前記フローグループ内の前記パケットの整列制御を行うバッファリング手段と、前記フローグループ毎に前記パケットを振り分けて出力するフロー振り分けスイッチと、から構成される入力回線インタフェース部と、
入力される同一フローグループの前記パケットに対するパケット処理を行うパケット処理部と、
前記出力回線へのスイッチング制御を行うスイッチ部と、
スイッチング後のパケットに対し、前記フローグループ内での品質を保持するためのキューイングを行うキュー制御手段と、前記パケットを前記出力回線へマージして出力するマージ手段と、から構成される出力回線インタフェース部と、
を備え、
前記シーケンス番号付与手段は、前記並列ラインに対応して、Ｃｎ＋１、Ｃｎ＋２、・・・、Ｃｎ＋Ｃのシーケンス番号を（ｎ＝０、１、２・・・、Ｃは並列ライン数）、前記フローグループの前記パケットの各タイムスロットに付与し、
前記バッファリング手段は、前記シーケンス番号の最も小さい番号順に前記パケットを読出して、前記フローグループに分けられた前記パケットを出力する、
ことを特徴とするパケット通信装置。
【請求項５】
前記マージ手段は、前記キュー制御手段から出力されたパケットの到着順に巡回カウント番号を付与して、前記巡回カウント番号の若番順に読み出してマージすることを特徴とする請求項４記載のパケット通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力回線インタフェース装置及びパケット通信装置に関し、特に入力回線側のパケットのインタフェース制御を行う入力回線インタフェース装置及びパケットの通信制御を行うパケット通信装置に関する。
【０００２】
【従来の技術】
近年、インタ―ネットの急激な普及に伴って、ＩＰ（Internet Protocol）トラフィックの需要が急増しており、高速かつ大容量のルーティング装置の実現が望まれている。
【０００３】
従来のパケットルーティング技術では、まず、入力回線部で受信パケットを一度バッファへ蓄積する。そして、パケット内の識別子をキ―に、あらかじめ用意してあるテーブルから出力方路を検索する。その後、パケットスイッチ部で、取得した出力方路情報にしたがってバッファから読み出されたパケットをスイッチングして、パケットを該当する出力方路へ送信していた。
【０００４】
【発明が解決しようとする課題】
しかし、上記のような従来のパケットルーティング技術では、複数のパケット処理部でパケットを並列処理していたが、ＩＰトラフィックのルーティングを行う場合、パケット長が可変であるため、各パケット処理部での処理時間に差が生じ、パケットの順序逆転が発生してしまうといった問題があった。
【０００５】
近年、ＷＤＭなどの光多重技術の発達により、回線の速度は年々向上しており、かつパケットのレイヤ３関連の処理には高機能化が求められている。このような状況に対し、回線速度やネットワークの多様性に追従できるようなルーティング装置を構成することは、マルチメディア通信ネットワークの実現には不可欠である。
【０００６】
本発明はこのような点に鑑みてなされたものであり、高速回線のパケットを効率よく収容して、ルーティング制御を行うための後段の処理負荷を低減させる入力回線インタフェース装置を提供することを目的とする。
【０００７】
また、本発明の他の目的は、高速・大容量のルーティング処理を行うパケット通信装置を提供することである。
【０００８】
【課題を解決するための手段】
上記課題を解決するために、入力回線側のパケットのインタフェース制御を行う入力回線インタフェース装置が提供される。入力回線インタフェース装置は、可変長パケットを分割して並列ラインに振り分けて出力するパケット振り分け手段と、並列ライン毎にパケットをフローグループに分類するフローグループ分類手段と、フローグループに対応して、もしくは独立にシーケンス番号を前記パケットに付与するシーケンス番号付与手段と、シーケンス番号が付与されたパケットのバッファリングを行って、フローグループ内のパケットの整列制御を行うバッファリング手段と、フローグループ毎にパケットを振り分けて出力するフロー振り分けスイッチとを備える。
【０００９】
ここで、シーケンス番号付与手段は、並列ラインに対応して、Ｃｎ＋１、Ｃｎ＋２、・・・、Ｃｎ＋Ｃのシーケンス番号を（ｎ＝０、１、２・・・、Ｃは並列ライン数）、フローグループのパケットの各タイムスロットに付与し、バッファリング手段は、シーケンス番号の最も小さい番号順にパケットを読出して、フローグループに分けられたパケットを出力する。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。図１は入力回線インタフェース装置の原理図である。入力回線インタフェース装置１０は、入力回線側のパケットのインタフェース制御を行い、その後、ルーティング等のレイヤ３関連のパケット処理を行う処理ブロックへパケットを送信する。入力回線インタフェース装置１０は、高速・大容量の入力回線を効率よく収容するための装置である。
【００１１】
パケット振り分け手段１１は、可変長パケットを分割して、分割したパケットを並列ラインに振り分けて出力する。フローグループ分類手段１２−１〜１２−ｎ（総称する場合はフローグループ分類手段１２）は、並列ライン毎にパケットをフローグループに分類する。ここでは、ハッシュ関数を用いて入力パケットをフローグループに分類する。なお、フローグループとは、複数のパケットフロー（図３で後述）を分割した際の集まりのことをいう。
【００１２】
シーケンス番号付与手段１３は、フローグループに対応するシーケンス番号をパケットに付与する。または、フローグループとは独立してシーケンス番号をパケットに付与する。
【００１３】
バッファリング手段１４−１〜１４−ｎ（総称する場合はバッファリング手段１４）は、シーケンス番号が付与されたパケットのバッファリング（蓄積・読み出し）の制御を行って、フローグループ内のパケットの整列制御を行う。すなわち、パケットフロー内でパケットの順序逆転が生じないような整列制御を行う。フロー振り分けスイッチ１５は、フローグループ毎にパケットを振り分けて出力する。
【００１４】
ここで、例えば、パケット振り分け手段１１は、４０Ｇｂ／ｓの到着パケット流を固定長パケットに分割して、４本の並列ライン（１並列ラインが１０Ｇｂ／ｓ）に振り分けて出力する。また、フローグループ分類手段１２−１〜１２−４は、この場合、それぞれ１０Ｇｂ／ｓの処理能力を持ち、ハッシュ処理を行って、パケットを４つのフローグループに分類する。
【００１５】
シーケンス番号付与手段１３は、フローグループ分類手段１２−１〜１２−４から送信されたパケットに対し、フローグループ毎にシーケンス番号を付与する。バッファリング手段１４−１〜１４−４は、それぞれのフローグループ毎にパケットを格納し、シーケンス番号にもとづいて読み出す。そして、フロー振り分けスイッチ１５で、各フローグループへパケットを振り分けて後段の処理ブロックへ送信する。
【００１６】
次に可変長パケットと固定長パケットの構成について説明する。図２は可変長パケットの構成を示す図である。可変長パケットは、一般的なＩＰｖ４フォーマットのパケットである。ただし、同様の情報要素があればＩＰｖ６フォーマットや他のフレーム形式のものでもよい。
【００１７】
ここで、Ｖｅｒｓはバージョン、ＩＨＬはヘッダ長、Ｔｙｐｅ  ｏｆ  Ｓｅｒｖｉｃｅ（ＴＯＳ）は優先度、Ｔｏｔａｌ  ＬｅｎｇｔｈはＩＰｖ４ペイロード長、ＩｄｅｎｔｉｆｉｃａｔｉｏｎはフラグメントＩＤ、Ｆｌａｇｓはフラグ、Ｆｒａｇｍｅｎｔ  Ｏｆｆｓｅｔはフラグメントオフセット、Ｔｉｍｅ  ｔｏ  Ｌｉｖｅはホップ期限、Ｐｒｏｔｏｃｏｌはプロトコルの識別子、ＨｅａｄｅｒＣｈｅｃｋｓｕｍはチェックサム、Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓは送信元アドレス、Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓは宛先アドレス、Ｐａｙｌｏａｄはペイロードである。
【００１８】
図３は固定長パケットの構成を示す図である。図２の可変長パケットのペイロード部分を固定長（例えば、６４バイト）に区切って、図に示すような固定長パケットのフォーマットに変換する。ただし、同様の情報要素があれば情報長や情報の並びは限定しない。
【００１９】
ここで、固定長パケットの各フィールドについて説明する。なお、図中のＩＰヘッダ、送信元ポート番号、宛先ポート番号は、可変長パケットのＩＰヘッダ、送信元ポート番号、宛先ポート番号をそれぞれマッピングしたものである。ただし、必要な情報要素のみ抽出してヘッダデータ量を削減してマッピングする。
【００２０】
ＥＮは、パケットが有効パケットかどうかを識別するもので、出力すべき有効パケットがないときは空きパケット（ＥＮ＝０）として出力する。
ＦＲＩは、可変長パケットを固定長パケットに分割した際の可変長パケットに対する位置を表すフレームタイプを示しており、固定長パケットを元の可変長パケットに組み立て直す際に利用する。例えば、ＦＲＩが００ならば、この固定長パケットは元の可変長パケットの中間の位置にあったことを示す。同様にして、ＦＲＩが０１ならば先頭、ＦＲＩが１０ならば最終、ＦＲＩが１１ならば先頭及び最終の位置にあったことを示す。
【００２１】
ＱｏＳ（Quality of Service）は、後段のＱｏＳ関連の制御を行う際に利用するものであり、ＩＰヘッダ中のＴＯＳフィールドを参照した結果にもとづいて書き込まれる。また、フローグループ識別子に対しては、フローグループ分類手段１２が、ソースアドレス、ディスティネーションアドレス、プロトコル識別子、送信元ポート番号及び宛先ポート番号をキーとして、ハッシュ演算した結果の値をフローグループ識別子として、このフィールド内に書き込む。
【００２２】
オフセット値は、固定長パケット中のペイロード情報の有効フィールドに対する開始位置を示す。ペイロード長はその開始位置からの有効フィールドの長さを示す。ＳＮはシーケンス番号が書き込まれるフィールドである。また、Ａｄｄｒｅｓｓは、可変長パケットのヘッダ情報とペイロードを分離した際に、ペイロードを書き込んだメモリアドレスを指定するために利用する（図６で後述する）。
【００２３】
なお、パケットフローとは、上述したフィールドの中のＰｒｏｔｏｃｏｌ、Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ、Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ、送信元ポート番号、宛先ポート番号がすべて同一の値のパケットをパケットフローと呼ぶ。例えば、パケットＰａ、Ｐｂ、Ｐｃに対し、パケットＰａ、ＰｂのＰｒｏｔｏｃｏｌ、Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ、Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ、送信元ポート番号、宛先ポート番号がすべて同じ値で、パケットＰｃのＤｅｓｔｉｎａｔｉｏｎ  ＡｄｄｒｅｓｓだけがパケットＰａ、Ｐｂと異なる場合、パケットＰａ、Ｐｂが同一のパケットフローとなる。
【００２４】
次にパケット振り分け手段１１について説明する。図４はパケット振り分け手段１１の動作内容を示す図である。可変長パケットが到着した場合、固定長パケットに分割して、一定の周期で振り分け先を変更して振り分け処理を行う場合を示している（以降、時分割振り分け処理と呼ぶ）。
【００２５】
パケット振り分け手段１１は、可変長パケットの到着時、到着パケットのヘッダ部分の情報を抽出し、固定長パケット用のヘッダ情報を生成する。そして、可変長パケットを一定のタイムスロット間隔で分割し、固定長パケット用のヘッダ情報を付加して、振り分けて出力する。図の場合では、６４バイト間隔で可変長パケットを分割し、生成した固定長パケットを３方路へ振り分けて、各方路のフローグループ分類手段１２へ出力している。
【００２６】
時分割振り分け処理では、到着したパケットの有効／無効にかかわらず、最初に、（出力方路数×分割タイムスロット）にパケット流を分割し、その分割したパケットをさらに出力方路数で分割して、出力方路に振り分ける。
【００２７】
図では出力方路数が３で、分割タイムスロットが６４バイトなので、最初に１９２（＝６４×３）バイトにパケット流を分割し、その１９２バイトを３分割した６４バイトを、一定周期で各出力方路に順に振り分ける。
【００２８】
したがって、図の場合では、１２０バイトのパケットＰ１と７２バイトの空きパケット（計１９２バイト）を６４バイトに３分割し、固定長パケットのヘッダを付加して（以下の説明では、固定長パケットのヘッダを付加する旨は省略する）、６４バイトのパケットＰ１−１を出力方路＃Ａ１へ、５６バイトのパケットＰ１−２及び８バイトのパディング（固定長パケットを生成するために空き領域を埋めるための空きデータ）を出力方路＃Ａ２へ、６４バイトの空きパケットを出力方路＃Ａ３へ振り分ける。
【００２９】
次に８バイトの空きパケット、１００バイトのパケットＰ２及び８４バイトのパケットＰ３（計１９２バイト）に対しては、８バイトのパディング及び５６バイトのパケットＰ２−１を出力方路＃Ａ１へ、４４バイトのパケットＰ２−２及び２０バイトのパディングを出力方路＃Ａ２へ、４４バイトのパディング及び２０バイトのパケットＰ３−１を出力方路＃Ａ３へ、６４バイトのパケットＰ３−２を出力方路＃Ａ１へ振り分ける。そして、残りの２０バイトのパケットＰ３−３は出力方路＃Ａ２へ振り分ける。
【００３０】
ここで、振り分け処理中に、現在振り分けているパケットと別パケットがきた場合には、空き領域があればパディングを入れ、その別パケットは別方路へ振り分ける。図の場合では、パケットＰ２−２でパケットＰ２はエンドなので、パケットＰ２−２を出力方路＃Ａ２へ振り分けたら、その空き領域にはパディングを挿入し、パケットＰ３（パケットＰ３−１）に対しては出力方路＃Ａ３へ振り分けている。
【００３１】
また、パケットＰ３−１は、固定長パケットヘッダの直後に振り分けられずに、４４バイトのパディングの後に振り分けられている。これは、パケット振り分け手段１１の内部処理に関係しており、例えば、パケット振り分け手段１１の内部バッファに４４バイトのパケットＰ２−２を書き込んだ後に、２０バイトのパケットＰ３−１を書き込む際に、パケットＰ２−２を振り分けた後に内部バッファの先頭に戻ってパケットＰ３−１を書き込むのではなく、パケットＰ２−２を書き込んだ直後の位置から即座に書き込むような処理をしている。このような制御のために、パケットＰ３−１は、４４バイトのパディングの後に振り分けられる。
【００３２】
図５はパケット振り分け手段１１の動作内容を示す図である。この例では、可変長パケットが到着した場合、固定長パケットに分割し、パケットが到着しない間は振り分け処理を一旦停止する場合を示している（以降、到着順振り分け処理と呼ぶ）。到着順振り分け処理では、可変長パケットが到着しない間は、振り分け処理を停止する。それ以外の振り分け制御については図４の処理と同じである。
【００３３】
図では出力方路数が３で、分割タイムスロットが６４バイトなので、最初に１９２（＝６４×３）バイトにパケット流を分割し、その１９２バイトを３分割した６４バイトを、到着順に各出力方路に振り分ける。
【００３４】
したがって、図の場合では、１２０バイトのパケットＰ１と７２バイトの空きパケット（計１９２バイト）を６４バイトに３分割して、６４バイトのパケットＰ１−１を出力方路＃Ａ１へ、５６バイトのパケットＰ１−２及び８バイトのパディングを出力方路＃Ａ２へ、そして残りの６４バイトについては振り分け処理を停止する。
【００３５】
また、８バイトの空きパケット、１００バイトのパケットＰ２及び８４バイトのパケットＰ３（計１９２バイト）に対しては、８バイトの空きパケット及び５６バイトのパケットＰ２−１を出力方路＃Ａ３へ振り分け、４４バイトのパケットＰ２−２及び２０バイトのパディングを出力方路＃Ａ１へ、４４バイトのパディング及び２０バイトのパケットＰ３−１を出力方路＃Ａ２へ、６４バイトのパケットＰ３−２を出力方路＃Ａ３へ振り分ける。そして、残りの２０バイトのパケットＰ３−３は出力方路＃Ａ１へ振り分ける。
【００３６】
以上説明したように、パケット振り分け手段１１では、時分割振り分け処理または到着順振り分け処理のいずれか一方の振り分け処理を行う構成とした。時分割振り分け処理では、到着パケットの有効／無効にかかわらず一定周期で振り分けるために、簡易なハードウェア構成で実現できる。ただし、振り分けの周期とパケットの到着パタンに何らかの依存関係があったとき、ある振り分け方路に対してバースト的にパケットが転送されるため、後段に必要なバッファ量が多くなる。
【００３７】
また、到着順振り分け処理では、可変長パケットが到着しない間は振り分け処理を停止するために、振り分けるパケットの数が均等になり、よってバッファへの負荷を均等にできるので、必要なバッファ量を少なくできる。
【００３８】
次に固定長ヘッダ情報生成手段について説明する。図６は固定長ヘッダ情報生成手段の構成及び動作を示す図である。固定長ヘッダ情報生成手段１６がパケット振り分け手段１１の前段に設置されている場合を示している。
【００３９】
固定長ヘッダ情報生成手段１６は、分離・生成手段１６ａとペイロードメモリ１６ｂから構成される。分離・生成手段１６ａは、到着した可変長パケットのヘッダ情報とペイロードとを分離する。そして、分離されたペイロードは、ペイロードメモリ１６ｂへ送信される。
【００４０】
ペイロードメモリ１６ｂは、送信されたペイロードを格納し、格納した際の書き込みアドレスを分離・生成手段１６ａに送信する。分離・生成手段１６ａは、分離したヘッダ情報から必要な情報を抽出して図３で上述した固定長パケット用のヘッダ情報をあらたに生成する。
【００４１】
また、この固定長ヘッダ情報の図３で説明した行番号１６のＡｄｄｒｅｓｓフィールドに、ペイロードを書き込んだ際の書き込みアドレスを記入する。そして、パケット振り分け手段１１では、固定長ヘッダ情報生成手段１６から送信された固定長ヘッダ情報を複数の並列ラインに振り分けて出力する。
【００４２】
図では、可変長パケットＰ１は固定長ヘッダ情報Ｐ１ｈに対応し、可変長パケットＰ２は固定長ヘッダ情報Ｐ２ｈに対応している。
図７は固定長ヘッダ情報生成手段の構成及び動作を示す図である。固定長ヘッダ情報生成手段１６がパケット振り分け手段１１の後段に設置されている場合を示している。図の場合では、３本の並列ライン毎に固定長ヘッダ情報生成手段１６−１〜１６−３が設置しており、パケット振り分け手段１１で振り分けられたパケットに対して、各並列ライン毎に固定長ヘッダ情報を生成している。生成した固定長ヘッダ情報は、フローグループ分類手段１２へ送信される。ここでパケット振り分け手段１１では到着した可変長パケットを到着順にしたがって、各並列ラインに振り分ける。
【００４３】
このように、固定長ヘッダ情報生成手段１６を設けることにより、可変長パケットからペイロードを分離した固定長ヘッダ情報を生成して、これを後段の処理部へ送信することにしてもよい。
【００４４】
なお、図６や図７の場合では、パケット通信装置のスイッチ部（図１５以降で後述する）の手前まで固定長ヘッダ情報で処理を行い、スイッチング処理する際には、先に分離したペイロードを固定長ヘッダ情報に合成して、固定長パケットの形にして、スイッチ部へ入力することになる。
【００４５】
次にパケットのフローグループ分類処理から、シーケンス番号の付与、バッファリング、フロー振り分け処理までのフロー振り分けスケジューリング動作について説明する。
【００４６】
図８はフローグループ分類手段１２及びシーケンス番号付与手段１３の動作を示す図である。パケット振り分け手段１１で可変長パケットが固定長パケットに変換され、４並列ラインに振り分けられている。
【００４７】
フローグループ分類手段１２−１〜１２−４は、各並列ラインに設置し、受信した固定長パケット（または固定長ヘッダ情報）をフローグループに分類する。ここでは４つのフローグループに分類するものとする。
【００４８】
例えば、フローグループ識別子をＦＧ１〜ＦＧ４とすると、フローグループ分類手段１２−１は、受信した固定長パケットを４つのフローグループに分類して、分類したそれぞれの固定長パケットにフローグループ識別子ＦＧ１〜ＦＧ４を記入して、例えば図のようにして出力する。このフローグループ識別子を記入するフィールドは、図３で説明した行番号０のフローグループ識別子のフィールドである。
【００４９】
シーケンス番号付与手段１３は、フローグループ識別子が書き込まれた固定長パケットに、フローグループ毎にユニークなシーケンス番号を付与する。なお、シーケンス番号を記入するフィールドは、図３で説明した行番号２のＳＮのフィールドである。
【００５０】
ここでは説明を簡単にするために例えば、フローグループＦＧ１の固定長パケットには数字のシーケンス番号、フローグループＦＧ２の固定長パケットにはローマ数字、フローグループＦＧ３の固定長パケットには小文字の英字、フローグループＦＧ４の固定長パケットには大文字の英字を付与するものとする。
【００５１】
したがって、シーケンス番号付与手段１３は、図のようにしてシーケンス番号が付与される。また、シーケンス番号が付与された固定長パケットは、バッファリング手段１４へ送信される。
【００５２】
次にバッファリング手段１４について説明する。図９、図１０はバッファリング手段１４の構成及び動作を示す図であり、図１１は読み出し制御手段の読み出し動作を示す図である。バッファリング手段１４は、フローグループバッファ１４０−１〜１４０−４（総称してフローグループバッファ１４０）と読み出し制御手段１４１から構成される。ここでは、並列ラインが４本なので、各並列ライン毎にフローグループバッファ１４０−１〜１４０−４が設置している。また、フローグループバッファ１４０は、分離部１４ａ、キューＱ１〜Ｑ４、出力部１４ｂから構成される。
【００５３】
ここで、フローグループバッファ１４０−１に対し、分離部１４ａは、シーケンス番号が付与された固定長パケットをフローグループＦＧ１〜ＦＧ４毎に分離してキューＱ１〜Ｑ４へ出力する。キューＱ１〜Ｑ４は、それぞれのフローグループＦＧ１〜ＦＧ４に対応しており、フローグループ毎にキューイングした後に、出力部１４ｂへ固定長パケットを送信する。出力部１４ｂでは読み出し制御手段１４１からの読み出し制御にもとづいて固定長パケットを出力する。
【００５４】
読み出し制御手段１４１は、フローグループ毎に、読み出しを行うための読み出しカウンタを持っている。読み出し手順としては図１１に示すように、まずカウント＃１でシーケンス番号１、ｉ、ａ、Ａの固定長パケットの読み出し指示をフローグループバッファ１４０−１〜１４０−４内の出力部１４ｂに送信する。
【００５５】
すると、フローグループバッファ１４０−１は、シーケンス番号１、ｉの固定長パケットを有しているが、ここではシーケンス番号１の固定長パケットを出力する（このように、シーケンス番号１の固定長パケットとシーケンス番号ｉの固定長パケットといったように、複数の出力候補がある場合には、出力の順番はラウンドロビンなどを用いて決める）。
【００５６】
同様にして、フローグループバッファ１４０−２は、シーケンス番号ａの固定長パケットを出力する。フローグループバッファ１４０−３は、カウント＃１によるシーケンス番号の固定長パケットは有していないため、空き出力となる。また、フローグループバッファ１４０−４は、シーケンス番号Ａの固定長パケットを出力する。
【００５７】
ここで、読み出し制御手段１４１内の読み出しカウンタにおいては、カウント＃１でシーケンス番号１、ａ、Ａが読み出されたので、カウント＃２でシーケンス番号は２、ｂ、Ｂとインクリメントされる。また、カウント＃１のシーケンス番号ｉは読み出されなかったので、インクリメントされずにカウント＃２でシーケンス番号はｉのままとなる。
【００５８】
次に読み出し制御手段１４１は、カウント＃２でシーケンス番号２、ｉ、ｂ、Ｂの固定長パケットの読み出し指示を、フローグループバッファ１４０−１〜１４０−４内の出力部１４ｂに送信する。
【００５９】
フローグループバッファ１４０−１は、シーケンス番号ｉの固定長パケットを出力する。フローグループバッファ１４０−２は、シーケンス番号２の固定長パケットを出力する。フローグループバッファ１４０−３は、シーケンス番号ｂの固定長パケットを出力する。フローグループバッファ１４０−４は、カウント＃２によるシーケンス番号の固定長パケットは有していないため、空き出力となる。
【００６０】
また、読み出し制御手段１４１内の読み出しカウンタにおいては、カウント＃２でシーケンス番号２、ｉ、ｂが読み出されたので、カウント＃３でシーケンス番号は３、ｉｉ、ｃとインクリメントされる。また、カウント＃２のシーケンス番号Ｂは読み出されなかったので、インクリメントされずにカウント＃３でシーケンス番号はＢのままとなる。以降、同様の手順でフローグループバッファ１４０から固定長パケットが読み出される。
【００６１】
以上説明したように、バッファリング手段１４では、フローグループ対応のシーケンス番号が付加された固定長パケットの蓄積・読み出し制御を行う構成とした。これにより、フロー内でのパケット順序逆転を防ぎ、効率のよい整列制御を行うことが可能になる。
【００６２】
次にフロー振り分けスイッチ１５について説明する。図１２はフロー振り分けスイッチ１５の動作を示す図である。フロー振り分けスイッチ１５は、バッファリング手段１４から送信された固定長パケットをフローグループ毎に振り分けて出力する。図では、上から順にフローグループＦＧ１〜ＦＧ４の固定長パケットが出力されている。なお、固定長パケットを出力する際は、バッファリングを行って、間隔が空いている部分をなくして出力してもよい。
【００６３】
次にフロー振り分けスケジューリングに関する他の実施の形態について説明する。以下の第１の変形例では、フローグループとは独立にシーケンス番号を付与してフロー振り分けスケジューリングを行う。
【００６４】
図１３はシーケンス番号付与手段の動作を示す図である。図中、シーケンス番号付与手段１３０−１〜１３０−４（総称してシーケンス番号付与手段１３０）の手前までは図８と同様である。シーケンス番号付与手段１３０は、フローグループ識別子が付与された固定長パケットを受信した際に、フローグループ分類手段１２に同期して、タイムスロット毎に、フローグループとは独立にシーケンス番号（ここではタイムスタンプ値と呼ぶ）をパケットに付与する。図中の括弧内の数字がタイムスタンプ値である。また、タイムスタンプ値が付与されたパケットは、並列ラインＬ１〜Ｌ４を通じて、フロー振り分けスイッチ１５０へ送信される。
【００６５】
図１４、図１５はフロー振り分けスイッチ及びバッファリング手段の動作を示す図である。フロー振り分けスイッチ１５０は、出力バッファ型スイッチであり、シーケンス番号付与手段１３０−１〜１３０−４から出力されたパケットを受信して、フローグループ毎にスイッチングする。
【００６６】
バッファリング手段は、フローグループバッファ１４２−１〜１４２−４（総称してフローグループバッファ１４２）で構成される。フローグループバッファ１４２内のキューＱ１〜Ｑ４は、各並列ラインに対応して、同一フローグループのパケットキューイングを行う。
【００６７】
例えば、フローグループバッファ１４２−１のキューＱ１では、並列ラインＬ１のフローグループＦＧ１のパケットを格納し、キューＱ２は並列ラインＬ２のフローグループＦＧ１のパケットを格納し、キューＱ３は並列ラインＬ３のフローグループＦＧ１のパケットを格納し、キューＱ４は並列ラインＬ４のフローグループＦＧ１のパケットを格納する。フローグループバッファ１４２−２〜１４２−４についても同様にして、各並列ラインからフローグループＦＧ２〜ＦＧ４のパケットがそれぞれ格納される。
【００６８】
また、フローグループバッファ１４２は、タイムスタンプ値の番号順にラウンドロビンによりパケットを読み出して、各フローグループに分けられたパケットを出力する。
【００６９】
このような第１の変形例の構成により、パケットの逆順を発生させずに、効率のよいフロー振り分けスケジューリングを行うことが可能になる。また、フローグループバッファからの読み出し制御に対しては、内部処理速度をアップしてスループットの低下に対処する。
【００７０】
次にフロー振り分けスケジューリングの第２の変形例について説明する。図１６はシーケンス番号付与手段の動作を示す図である。図中、シーケンス番号付与手段１３１−１〜１３１−４（総称してシーケンス番号付与手段１３１）の手前までは図８と同様である。シーケンス番号付与手段１３１は、フローグループ識別子が付与された固定長パケットを受信した際に、フローグループ分類手段１２に同期して、タイムスロット毎に、フローグループとは独立にタイムスタンプ値をパケットに付与する。また、この場合、ｎ＝０、１、２、…とすると、シーケンス番号付与手段１３１−１〜１３１−４は、４ｎ＋１、４ｎ＋２、４ｎ＋３、４ｎ＋４のタイムスタンプ値をそれぞれ付与する。図中の括弧内の数字がタイムスタンプ値である。また、タイムスタンプ値が付与されたパケットは、並列ラインＬ１〜Ｌ４を通じて、フロー振り分けスイッチ１５１へ送信される。
【００７１】
図１７、図１８はフロー振り分けスイッチ及びバッファリング手段の動作を示す図である。フロー振り分けスイッチ１５１は、出力バッファ型スイッチであり、シーケンス番号付与手段１３１−１〜１３１−４から出力されたパケットを受信して、フローグループ毎にスイッチングする。
【００７２】
バッファリング手段は、フローグループバッファ１４３−１〜１４３−４（総称してフローグループバッファ１４３）で構成される。フローグループバッファ１４３内のキューＱ１〜Ｑ４は、各並列ラインに対応して、同一フローグループのパケットキューイングを行う。また、フローグループバッファ１４３は、タイムスタンプ値の最も小さい番号順にパケットを読み出して、各フローグループに分けられたパケットを出力する。
【００７３】
このような第２の変形例の構成により、パケットの逆順を発生させずに、効率のよいフロー振り分けスケジューリングを行うことが可能になる。また、第１の変形例とは異なり、同一のタイムスタンプ値が存在しないため、フローグループバッファからの読み出し制御が簡単になり、かつ内部処理速度をアップすることが不要となる。
【００７４】
次にＱｏＳを考慮した際のフローグループ分類手段１２及びフローグループバッファ１４０について説明する。図１９はＱｏＳ制御を付加した場合のフローグループ分類手段の構成を示す図である。
【００７５】
フローグループ分類手段１２Ａは、ＱｏＳクラス選択手段１２ａ、フローグループ識別子付与手段１２ｂ−１、１２ｂ−２、出力手段１２ｃから構成される。ＱｏＳクラス選択手段１２ａは、受信した固定長パケットのＱｏＳをクラス毎に選択して出力する。フローグループ識別子付与手段１２ｂ−１、１２ｂ−２は、ＱｏＳ対応にフローグループ識別子を付与する。出力手段１２ｃはフローグループ識別子が付与された固定長パケットを出力する。
【００７６】
図の例では、ＱｏＳ＃０の固定長パケットにはフローグループ識別子ＦＧ１、ＦＧ２が付与され、ＱｏＳ＃１の固定長パケットにはフローグループ識別子ＦＧ３、ＦＧ４が付与されている。このように、ＱｏＳに対応してフローグループ分けを行うことで、ＱｏＳクラス間の干渉を避けることができ、品質を保証することが可能になる。
【００７７】
図２０はＱｏＳ制御を付加した場合のフローグループバッファの構成を示す図である。フローグループバッファ１４０Ａは、ＱｏＳクラス選択手段４ａ、フローグループバッファ部１４０ａ、１４０ｂ、優先制御手段４ｂから構成される。
【００７８】
ＱｏＳクラス選択手段４ａは、受信した固定長パケットのＱｏＳをクラス毎に選択して出力する。フローグループバッファ部１４０ａ、１４０ｂは、図９、１０で説明したフローグループバッファと同様の構成であり、ＱｏＳクラス毎に振り分けられた固定長パケットのバッファリングを行って、読み出し制御手段１４１により読み出される。優先制御手段４ｂは、読み出された固定長パケットをさらに優先度の高い順に出力する（ＱｏＳ＃０が帯域保証型で、ＱｏＳ＃１がベストエフォートの場合、ＱｏＳ＃０のパケットの方を優先して出力する）。このような処理を行うことで、ＱｏＳクラス間の干渉を避けることができ、品質を保証することが可能になる。
【００７９】
次に入力回線インタフェース装置１０を適用したパケット通信装置について説明する。図２１はパケット通信装置の構成を示す図である。
パケット通信装置１００は、複数の入力回線を収容して、ハードウェアベースで並列してルーティング処理を行って、パケットを所定の出力回線へ出力するルータ装置である。
【００８０】
複数の各入力回線には、入力回線インタフェース部１０（図１の入力回線インタフェース装置１０に該当する）が設置し、入力回線インタフェース部１０の出力側には、入力回線インタフェース部１０で振り分けられた数のパケット処理部２０−１〜２０−ｎ（総称してパケット処理部２０）が設置する。
【００８１】
パケット処理部２０の後段には、ＶＯＱ（Virtual Output Queue）３ａ、スケジューラ３ｂ、クロスバースイッチ３ｃ、ＶＩＱ(Virtual Input Queue)３ｄから構成されるスイッチ部３０と、キュー制御手段４１、マージ（結合）手段４２から構成される出力回線インタフェース部４０が設置する。
【００８２】
動作としては、まず、入力回線インタフェース部１０は、各入力回線から入力された可変長パケットを、固定長パケットに変換し、かつフローグループに分類して出力する。
【００８３】
パケット処理部２０は、パケット処理として、レイヤ３関連の処理を主に行う。例えば、入力される同一フローグループのパケットに対して、ＩＰアドレスから出力回線を選択するルーティング制御や、ＩＰアドレスやポート番号を参照してパケットを受け付けたりまたは廃棄するフィルタリング制御などを行う。
【００８４】
スイッチ部３０のＶＯＱ３ａは、パケット処理されたパケットのキューイングを行う。スケジューラ３ｂは、各ＶＯＱ３ａからパケットを読み出す際に、競合しないようにスケジューリング処理を行って読み出し、クロスバースイッチ３ｃへ送信する。クロスバースイッチ３ｃは、パケットを出力回線へ向けてスイッチングする。ＶＩＱ３ｄは、スイッチング後のパケットを格納して、出力回線インタフェース部４０へ送信する。
【００８５】
出力回線インタフェース部４０のキュー制御手段４１は、フローグループ内での品質を保持するためのキューイングを行う。マージ手段４２は、品質を保持しながらパケットをマージして出力回線へ出力する。
【００８６】
なお、スイッチ部３０では、固定長パケット単位にスイッチングを行う入力バッファ型スイッチを用いているので、スイッチング後、ＶＩＱ３ｄにより可変長パケットへ組み立てなおし、キュー制御手段４１へ書き込む。ただし、キュー制御手段４１の処理を簡便にするために、完全な可変長パケットに戻すのではなく、複数の固定長パケットにより構成される可変長パケットとし、出力回線より出力される直前の部分において、固定長パケットのオーバヘッド部分を取り除き、最終的な元の可変長パケットへ戻すものとする。
【００８７】
次にキュー制御手段４１の動作について説明する。ここで、４０Ｇｂ／ｓの入力回線を収容して、１０Ｇｂ／ｓ毎に振り分けてスイッチングされてきたパケットを、再び４０Ｇｂ／ｓの出力回線から出力する場合を考える。
【００８８】
入力回線インタフェース部１０で４本の１０Ｇｂ／ｓのラインに振り分けて、その後にパケット処理、スイッチングを行っているが、実際にはそれぞれのラインで速度に偏りが生じてくる。
【００８９】
ＶＩＱ３ｄは、例えば、ラウンドロビンなどで読み出し制御を行って、各フローへパケットを出力するので、これをそのままマージすると品質が保証されずに出力回線へ出力することになる。また、マージ後のパケット流をキューイングして品質制御を行おうとすると、高速かつ複雑な処理が必要となる。
【００９０】
したがって、キュー制御手段４１では、ＶＩＱ３ｄから読み出されたパケットを一旦キューイングして、各フローに対し１０Ｇｂ／ｓの帯域を保証してマージ手段４２へ出力する。
【００９１】
次にＱｏＳを考慮した際のキュー制御手段４１について説明する。図２２はＱｏＳ制御を付加した場合のキュー制御手段４１の構成を示す図である。キュー制御手段４１は、ＱｏＳクラス選択手段４１ａ、キュー４１ｂ−１、４１ｂ−２、出力手段４１ｃから構成される。
【００９２】
ＱｏＳクラス選択手段４１ａは、受信したパケットのＱｏＳをクラス毎に選択して出力する。キュー４１ｂ−１、４１ｂ−２は、ＱｏＳクラス毎に振り分けられた固定長パケットのキューイングを行う。
【００９３】
出力手段４１ｃは、例えば、１０Ｇｂ／ｓの帯域を保証しながら、ＱｏＳクラスの優先度にもとづいてパケットを出力する。すなわち、キュー４１ｂ−１内にＱｏＳ＃０のパケットがあればこれを優先して読み出し、ＱｏＳ＃０のパケットがなくなった場合に、キュー４１ｂ−２内に蓄積されたＱｏＳ＃１のパケットを読み出す。また、このようなＱｏＳの優先制御に加えて、所定の帯域を保証してパケットをマージ手段４２へ出力する。
【００９４】
次にマージ手段４２について説明する。図２３はマージ手段４２の構成を示す図である。マージ手段４２は、巡回カウント値付与手段４２ａ、マージキュー４２ｂ−１〜４２ｂ−４、カウント値検索手段４２ｃから構成される。
【００９５】
巡回カウント値付与手段４２ａは、キュー制御手段４１から出力されるパケットを到着順に巡回的にカウントして巡回カウント値を付与する。マージキュー４２ｂ−１〜４２ｂ−４は、巡回カウント値が付与されたパケットをキューイングする。カウント値検索手段４２ｃは、マージキュー４２ｂ−１〜４２ｂ−４から出力されたパケットの巡回カウント値を比較し、若番号順に出力回線へマージして出力する。
【００９６】
このように、マージ手段４２では、キュー制御手段４１から送信されたパケットに到着順に巡回番号を付けて、この番号にもとづいてマージ出力する構成としたので、品質保持を崩さずにマージすることが可能になる。
【００９７】
次にＱｏＳを考慮した際のマージ手段について説明する。図２４はＱｏＳ制御を付加した場合のマージ手段の構成を示す図である。マージ手段４２Ａは、ＱｏＳに対応してフローグループを分類したフローグループ分類手段１２Ａ（図１９で上述）を用いた場合に適用されるマージ手段である。
【００９８】
ここで、ＱｏＳ＃０を帯域保証型、ＱｏＳ＃１をベストエフォートとすると、ＱｏＳ＃０に割り当てられたフローグループ間に対してのみ、巡回カウント番号を利用した到着順序にもとづいた読み出し制御を行い、ＱｏＳ＃１に割り当てられたフローグループ間の読み出し制御は、ラウンドロビンで行う。そして、優先制御手段４２ｄは、カウント値検索手段４２ｃの読み出しパケットと、マージキュー４２ｂ−３、４２ｂ−４からのラウンドロビンによる読み出しパケットと、の優先制御を行って出力する。すなわち、カウント値検索手段４２ｃからの出力がなくなった場合にマージキュー４２ｂ−３、４２ｂ−４からのラウンドロビンによる読み出しパケットが選択されて出力されることになる。
【００９９】
次にマージ手段４２の変形例について説明する。図２５はマージ手段４２の第１の変形例を示す図である。マージ手段４２Ｂは、巡回カウント値付与手段４２ｄ−１〜４２ｄ−４、マージキュー４２ｅ−１〜４２ｅ−４、カウント値検索手段４２ｆから構成される。
【０１００】
巡回カウント値付与手段４２ｄ−１〜４２ｄ−４は、並列ライン毎に配置され、キュー制御手段４１から出力されるパケットを巡回的にカウントして巡回カウント値を付与する。例えば、巡回カウント値付与手段４２ｄ−１では、タイムスロットｔ１、ｔ３に空きデータを、タイムスロットｔ２、ｔ４にフローグループＦＧ１のパケットからなるパケット流を受信している。この場合、最初に到着したフローグループＦＧ１のパケットには巡回カウント値１を付与する。また、このパケットは、時間間隔を３タイムスロット分とるように広げられて後段のマージキュー４２ｅ−１で格納される。そして、タイムスロットｔ４で受信したフローグループＦＧ１のパケットには、巡回カウント値４を付与する。
【０１０１】
巡回カウント値付与手段４２ｄ−２では、タイムスロットｔ４にフローグループＦＧ２のパケットを受信しており、巡回カウント値４を付与する。巡回カウント値付与手段４２ｄ−３では、タイムスロットｔ４、ｔ５にフローグループＦＧ３のパケットを受信しており、巡回カウント値４、５をそれぞれに付与する。
【０１０２】
巡回カウント値付与手段４２ｄ−４では、タイムスロットｔ５、ｔ７に空きデータを、タイムスロットｔ６にフローグループＦＧ４のパケットからなるパケット流を受信しており、巡回カウント値５を付与する。また、このパケットは、時間間隔を３タイムスロット分とるように広げられて後段のマージキュー４２ｅ−４で格納される。
【０１０３】
マージキュー４２ｅ−１〜４２ｅ−４は、巡回カウント値が付与されたパケットをキューイングする。カウント値検索手段４２ｆは、マージキュー４２ｅ−１〜４２ｅ−４から出力されたパケットの巡回カウント値を比較し、若番号順に出力回線へマージして出力する。なお、同一番号の場合はラウンドロビンで選択する。
【０１０４】
図２６はマージ手段４２の第２の変形例を示す図である。マージ手段４２Ｃは、巡回カウント値付与手段４２ｇ−１〜４２ｇ−４、マージキュー４２ｈ−１〜４２ｈ−４、カウント値検索手段４２ｉから構成される。
【０１０５】
巡回カウント値付与手段４２ｇ−１〜４２ｇ−４は、並列ライン毎に配置され、キュー制御手段４１から出力されるパケットを巡回的にカウントして巡回カウント値を付与する。また、この場合、ｎ＝０、１、２、…とすると、巡回カウント値付与手段４２ｇ−１〜４２ｇ−４は、４ｎ＋１、４ｎ＋２、４ｎ＋３、４ｎ＋４の巡回カウント値をパケットに付与する。これにより、同一の巡回カウント値が現れないので、カウント値検索手段４２ｉでは巡回カウント値を若番順に読むだけでよく、読み出す制御が簡単になる。その他の構成・動作は、第１の変形例と同様である。
【０１０６】
このように、マージ手段４２では、キュー制御手段４１から送信されたパケットに到着順に巡回カウント番号を付けて、この番号にもとづいてマージ出力する構成としたので、品質保持を崩さずにマージすることが可能になる。
【０１０７】
なお、上記において、マージキューのオーバーフロー防止のために、バックププレッシャ制御をかけて、前段のキュー制御手段４１からの読み出しを停止してもよい。また、マージキューとキュー制御手段４１内のキューは論理的は独立であるが、物理的に同一のバッファメモリを利用して所要バッファ量を削減してもよい。
【０１０８】
次にパケット処理部２０でのルーティング制御の処理負荷を軽減する場合について説明する。パケット処理部２０が行うレイヤ３の処理では、一般には、フィルタリング処理よりもルーティング処理の方が負荷が大きい（検索するためのルックアップテーブルの規模が大きい）。
【０１０９】
したがって、ルーティング制御の処理負荷を軽減する場合（ルックアップテーブルの規模を小さくしたい場合）、まず、フローグループ分類手段１２では、ディスティネーションアドレスのみをキーとして、ハッシュ処理し、フローグループに分類する。また、分類されたフローグループにパケット処理部２０をあらかじめ対応させておく。そして、パケット処理部２０では、そのフローグループに対応するディスティネーションアドレスからなるルックアップテーブルを持って、ルーティングを行うようにする。
【０１１０】
例えば、０〜４０の中の１つのディスティネーションを持つパケットに対し、フローグループ分類手段１２は、このディスティネーションアドレスをキーとしてハッシュ処理し、０〜１０をフローグループＦＧ１、１１〜２０をフローグループＦＧ２、２１〜３０をフローグループＦＧ３、３１〜４０をフローグループＦＧ４に分類したとする。
【０１１１】
また、フローグループＦＧ１〜ＦＧ４それぞれにパケット処理部２０−１〜２０−４をあらかじめ対応させておく。そして、パケット処理部２０−１には、０〜１０のディスティネーションアドレスからなるルックアップテーブルを持たせる。同様に、パケット処理部２０−２〜２０−４のそれぞれに、１１〜２０、２１〜３０、３１〜４０のディスティネーションアドレスからなるルックアップテーブルを持たせる。
【０１１２】
このような構成にすることにより、１つのパケット処理部が、０〜４０のディスティネーションアドレスからなるルックアップテーブルを持つのではなく、フローグループに対応して分割して縮小化したルックアップテーブルをパケット処理部に持たせることができるので、パケット処理部２０でのルーティング制御の処理負荷を軽減することができ、ハードウェア規模も縮小することが可能になる。
【０１１３】
次にパケット通信装置１００の変形例について説明する。図２７はパケット通信装置１００の変形例の構成を示す図である。パケット通信装置１００ａは、入力回線インタフェース部１０Ａを用いて入力回線を収容する。その他の構成は、図２１のパケット通信装置１００と同様である。
【０１１４】
入力回線インタフェース部１０Ａは、入力回線毎に設置されたフロー分割部１０ａ−１〜１０ａ−ｎ（総称してフロー分割部１０ａ）と、１つのフロー振り分けスイッチ１０ｂから構成される。フロー分割部１０ａは、上述したパケット振り分け手段１１、フローグループ分類手段１２、シーケンス番号付与手段１３及びバッファリング手段１４から構成される。
【０１１５】
また、フロー振り分けスイッチ１０ｂは、スイッチ部３０のクロスバースイッチ３ｃを共用したものであり、クロスバースイッチ３ｃを用いて、フロー振り分け機能を行うものである（同じスイッチにデータを２回通すことになる）。
【０１１６】
図２１のパケット通信装置１００では、入力回線毎にフロー振り分けスイッチ１５を設置していたが、パケット通信装置１００ａでは、１つのクロスバースイッチ３ｃを用いて、フロー振り分け機能とスイッチング機能の２つを共用して使用する構成としたので、回路規模の削減を図ることが可能になる。
【０１１７】
また、パケット通信装置１００では、パケット処理部２０が各入力回線毎にくくりつけの状態であったが、パケット通信装置１００ａでは、設置されているパケット処理部２０を自由に選択することができる。
【０１１８】
したがって、１つのパケット処理部２０が故障したり、処理負荷が高くなっている場合には、振り分けたフローを他の任意のパケット処理部２０へ送信することができるので、効率よく冗長性を持った処理を行うことが可能になる。
【０１１９】
以上説明したように、入力回線インタフェース装置１０は、ＩＰパケットのような可変長パケットを固定長パケットに分割して、フローグループに分類してパケットを収容する構成とした。これにより、高速入力回線のパケットを効率よく収容することが可能になる。
【０１２０】
また、パケット通信装置１００は、入力回線インタフェース部１０で入力処理を行った後、各々のフローグループにレイヤ３の処理を並列に行って、スイッチングし、各フローグループの品質を保持したまま複数フローグループのパケットをマージして、高速出力回線へ出力する構成とした。これにより、高速・大容量ルーティング装置を実現することが可能になる。
【０１２１】
（付記１）  入力回線側のパケットのインタフェース制御を行う入力回線インタフェース装置において、
可変長パケットを分割して並列ラインに振り分けて出力するパケット振り分け手段と、
前記並列ライン毎に前記パケットをフローグループに分類するフローグループ分類手段と、
前記フローグループに対応して、もしくは独立にシーケンス番号を前記パケットに付与するシーケンス番号付与手段と、
前記シーケンス番号が付与されたパケットのバッファリングを行って、前記フローグループ内の前記パケットの整列制御を行うバッファリング手段と、
前記フローグループ毎に前記パケットを振り分けて出力するフロー振り分けスイッチと、
を有することを特徴とする入力回線インタフェース装置。
【０１２２】
（付記２）  前記パケット振り分け手段は、前記可変長パケットを固定長パケットに分割して振り分け処理することを特徴とする付記１記載の入力回線インタフェース装置。
【０１２３】
（付記３）  前記パケット振り分け手段は、一定の周期で振り分け先を変更する処理、またはパケットが到着しない間は振り分け処理を停止する処理のいずれか一方の振り分け処理を行うことを特徴とする付記１記載の入力回線インタフェース装置。
【０１２４】
（付記４）  前記パケット振り分け手段の前段または後段に設置され、前記可変長パケットのヘッダ情報とペイロードとを分離し、前記ペイロードはメモリに格納し、前記メモリに格納した際の書き込みアドレスと前記ヘッダ情報から抽出した情報とを含む固定長ヘッダ情報を生成する固定長ヘッダ情報生成手段をさらに有することを特徴とする付記１記載の入力回線インタフェース装置。
【０１２５】
（付記５）  前記フローグループ分類手段は、ＱｏＳクラスに対応して前記パケットを前記フローグループに分類することを特徴とする付記１記載の入力回線インタフェース装置。
【０１２６】
（付記６）  前記バッファリング手段は、ＱｏＳクラスに対応して前記パケットのバッファリングを行うことを特徴とする付記１記載の入力回線インタフェース装置。
【０１２７】
（付記７）  前記シーケンス番号付与手段は、同一番号が現れないように、前記シーケンス番号を付与することを特徴とする付記１記載の入力回線インタフェース装置。
【０１２８】
（付記８）  パケットの通信制御を行うパケット通信装置において、
可変長パケットを分割して並列ラインに振り分けて出力するパケット振り分け手段と、前記並列ライン毎に前記パケットをフローグループに分類するフローグループ分類手段と、前記フローグループに対応して、もしくは独立にシーケンス番号を前記パケットに付与するシーケンス番号付与手段と、前記シーケンス番号が付与されたパケットのバッファリングを行って、前記フローグループ内の前記パケットの整列制御を行うバッファリング手段と、前記フローグループ毎に前記パケットを振り分けて出力するフロー振り分けスイッチと、から構成される入力回線インタフェース部と、
入力される同一フローグループの前記パケットに対するパケット処理を行うパケット処理部と、
前記出力回線へのスイッチング制御を行うスイッチ部と、
スイッチング後のパケットに対し、前記フローグループ内での品質を保持するためのキューイングを行うキュー制御手段と、前記パケットを前記出力回線へマージして出力するマージ手段と、から構成される出力回線インタフェース部と、
を有することを特徴とするパケット通信装置。
【０１２９】
（付記９）  前記キュー制御手段は、ＱｏＳクラスに対応して前記パケットのキューイングを行うことを特徴とする付記８記載のパケット通信装置。
（付記１０）  前記マージ手段は、前記キュー制御手段から出力されたパケットの到着順に巡回カウント番号を付与して、前記巡回カウント番号の若番順に読み出してマージすることを特徴とする付記８記載のパケット通信装置。
【０１３０】
（付記１１）  前記マージ手段は、同一番号が現れないように前記巡回カウント番号を付与してマージすることを特徴とする付記１０記載のパケット通信装置。
【０１３１】
（付記１２）  前記マージ手段は、ＱｏＳクラスに対応して前記パケットをマージすることを特徴とする付記８記載のパケット通信装置。
（付記１３）  前記フローグループ分類手段は、ディスティネーションアドレスをキーとしてハッシュ処理して前記パケットをフローグループに分類し、前記パケット処理部は、前記フローグループに対応したディスティネーションアドレスから構成されるルックアップテーブルを有することを特徴とする付記８記載のパケット通信装置。
【０１３２】
（付記１４）  前記フロー振り分けスイッチは、前記スイッチ部で用いられるスイッチと共用して使用することを特徴とする付記８記載のパケット通信装置。
【０１３３】
【発明の効果】
パケットの逆順を発生させずに、効率のよいフロー振り分けスケジューリングを行うことが可能となり、また、同一のタイムスタンプ値が存在しないため、フローグループバッファからの読み出し制御が簡単になり、かつ内部処理速度をアップすることが不要となる。
【図面の簡単な説明】
【図１】  入力回線インタフェース装置の原理図である。
【図２】  可変長パケットの構成を示す図である。
【図３】  固定長パケットの構成を示す図である。
【図４】  パケット振り分け手段の動作内容を示す図である。
【図５】  パケット振り分け手段の動作内容を示す図である。
【図６】  固定長ヘッダ情報生成手段の構成及び動作を示す図である。
【図７】  固定長ヘッダ情報生成手段の構成及び動作を示す図である。
【図８】  フローグループ分類手段及びシーケンス番号付与手段の動作を示す図である。
【図９】  バッファリング手段の構成及び動作を示す図である。
【図１０】  バッファリング手段の構成及び動作を示す図である。
【図１１】  読み出し制御手段の読み出し動作を示す図である。
【図１２】  フロー振り分けスイッチの動作を示す図である。
【図１３】  シーケンス番号付与手段の動作を示す図である。
【図１４】  フロー振り分けスイッチ及びバッファリング手段の動作を示す図である。
【図１５】  フロー振り分けスイッチ及びバッファリング手段の動作を示す図である。
【図１６】  シーケンス番号付与手段の動作を示す図である。
【図１７】  フロー振り分けスイッチ及びバッファリング手段の動作を示す図である。
【図１８】  フロー振り分けスイッチ及びバッファリング手段の動作を示す図である。
【図１９】  ＱｏＳ制御を付加した場合のフローグループ分類手段の構成を示す図である。
【図２０】  ＱｏＳ制御を付加した場合のフローグループバッファの構成を示す図である。
【図２１】  パケット通信装置の構成を示す図である。
【図２２】  ＱｏＳ制御を付加した場合のキュー制御手段の構成を示す図である。
【図２３】  マージ手段の構成を示す図である。
【図２４】  ＱｏＳ制御を付加した場合のマージ手段の構成を示す図である。
【図２５】  マージ手段の第１の変形例を示す図である。
【図２６】  マージ手段の第２の変形例を示す図である。
【図２７】  パケット通信装置の変形例の構成を示す図である。
【図１】
0004475835.tif 000002
【図２】
0004475835.tif 000003
【図３】
0004475835.tif 000004
【図４】
0004475835.tif 000005
【図５】
0004475835.tif 000006
【図６】
0004475835.tif 000007
【図７】
0004475835.tif 000008
【図８】
0004475835.tif 000009
【図９】
0004475835.tif 000010
【図１０】
0004475835.tif 000011
【図１１】
0004475835.tif 000012
【図１２】
0004475835.tif 000013
【図１３】
0004475835.tif 000014
【図１４】
0004475835.tif 000015
【図１５】
0004475835.tif 000016
【図１６】
0004475835.tif 000017
【図１７】
0004475835.tif 000018
【図１８】
0004475835.tif 000019
【図１９】
0004475835.tif 000020
【図２０】
0004475835.tif 000021
【図２１】
0004475835.tif 000022
【図２２】
0004475835.tif 000023
【図２３】
0004475835.tif 000024
【図２４】
0004475835.tif 000025
【図２５】
0004475835.tif 000026
【図２６】
0004475835.tif 000027
【図２７】
0004475835.tif 000028