JP4475835B2 - 入力回線インタフェース装置及びパケット通信装置 - Google Patents
入力回線インタフェース装置及びパケット通信装置 Download PDFInfo
- Publication number
- JP4475835B2 JP4475835B2 JP2001060617A JP2001060617A JP4475835B2 JP 4475835 B2 JP4475835 B2 JP 4475835B2 JP 2001060617 A JP2001060617 A JP 2001060617A JP 2001060617 A JP2001060617 A JP 2001060617A JP 4475835 B2 JP4475835 B2 JP 4475835B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- packets
- flow
- flow group
- sequence number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
- H04L49/9089—Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
- H04L49/9094—Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
本発明は、入力回線インタフェース装置及びパケット通信装置に関し、特に入力回線側のパケットのインタフェース制御を行う入力回線インタフェース装置及びパケットの通信制御を行うパケット通信装置に関する。
【0002】
【従来の技術】
近年、インタ―ネットの急激な普及に伴って、IP(Internet Protocol)トラフィックの需要が急増しており、高速かつ大容量のルーティング装置の実現が望まれている。
【0003】
従来のパケットルーティング技術では、まず、入力回線部で受信パケットを一度バッファへ蓄積する。そして、パケット内の識別子をキ―に、あらかじめ用意してあるテーブルから出力方路を検索する。その後、パケットスイッチ部で、取得した出力方路情報にしたがってバッファから読み出されたパケットをスイッチングして、パケットを該当する出力方路へ送信していた。
【0004】
【発明が解決しようとする課題】
しかし、上記のような従来のパケットルーティング技術では、複数のパケット処理部でパケットを並列処理していたが、IPトラフィックのルーティングを行う場合、パケット長が可変であるため、各パケット処理部での処理時間に差が生じ、パケットの順序逆転が発生してしまうといった問題があった。
【0005】
近年、WDMなどの光多重技術の発達により、回線の速度は年々向上しており、かつパケットのレイヤ3関連の処理には高機能化が求められている。このような状況に対し、回線速度やネットワークの多様性に追従できるようなルーティング装置を構成することは、マルチメディア通信ネットワークの実現には不可欠である。
【0006】
本発明はこのような点に鑑みてなされたものであり、高速回線のパケットを効率よく収容して、ルーティング制御を行うための後段の処理負荷を低減させる入力回線インタフェース装置を提供することを目的とする。
【0007】
また、本発明の他の目的は、高速・大容量のルーティング処理を行うパケット通信装置を提供することである。
【0008】
【課題を解決するための手段】
上記課題を解決するために、入力回線側のパケットのインタフェース制御を行う入力回線インタフェース装置が提供される。入力回線インタフェース装置は、可変長パケットを分割して並列ラインに振り分けて出力するパケット振り分け手段と、並列ライン毎にパケットをフローグループに分類するフローグループ分類手段と、フローグループに対応して、もしくは独立にシーケンス番号を前記パケットに付与するシーケンス番号付与手段と、シーケンス番号が付与されたパケットのバッファリングを行って、フローグループ内のパケットの整列制御を行うバッファリング手段と、フローグループ毎にパケットを振り分けて出力するフロー振り分けスイッチとを備える。
【0009】
ここで、シーケンス番号付与手段は、並列ラインに対応して、Cn+1、Cn+2、・・・、Cn+Cのシーケンス番号を(n=0、1、2・・・、Cは並列ライン数)、フローグループのパケットの各タイムスロットに付与し、バッファリング手段は、シーケンス番号の最も小さい番号順にパケットを読出して、フローグループに分けられたパケットを出力する。
【0010】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。図1は入力回線インタフェース装置の原理図である。入力回線インタフェース装置10は、入力回線側のパケットのインタフェース制御を行い、その後、ルーティング等のレイヤ3関連のパケット処理を行う処理ブロックへパケットを送信する。入力回線インタフェース装置10は、高速・大容量の入力回線を効率よく収容するための装置である。
【0011】
パケット振り分け手段11は、可変長パケットを分割して、分割したパケットを並列ラインに振り分けて出力する。フローグループ分類手段12−1〜12−n(総称する場合はフローグループ分類手段12)は、並列ライン毎にパケットをフローグループに分類する。ここでは、ハッシュ関数を用いて入力パケットをフローグループに分類する。なお、フローグループとは、複数のパケットフロー(図3で後述)を分割した際の集まりのことをいう。
【0012】
シーケンス番号付与手段13は、フローグループに対応するシーケンス番号をパケットに付与する。または、フローグループとは独立してシーケンス番号をパケットに付与する。
【0013】
バッファリング手段14−1〜14−n(総称する場合はバッファリング手段14)は、シーケンス番号が付与されたパケットのバッファリング(蓄積・読み出し)の制御を行って、フローグループ内のパケットの整列制御を行う。すなわち、パケットフロー内でパケットの順序逆転が生じないような整列制御を行う。フロー振り分けスイッチ15は、フローグループ毎にパケットを振り分けて出力する。
【0014】
ここで、例えば、パケット振り分け手段11は、40Gb/sの到着パケット流を固定長パケットに分割して、4本の並列ライン(1並列ラインが10Gb/s)に振り分けて出力する。また、フローグループ分類手段12−1〜12−4は、この場合、それぞれ10Gb/sの処理能力を持ち、ハッシュ処理を行って、パケットを4つのフローグループに分類する。
【0015】
シーケンス番号付与手段13は、フローグループ分類手段12−1〜12−4から送信されたパケットに対し、フローグループ毎にシーケンス番号を付与する。バッファリング手段14−1〜14−4は、それぞれのフローグループ毎にパケットを格納し、シーケンス番号にもとづいて読み出す。そして、フロー振り分けスイッチ15で、各フローグループへパケットを振り分けて後段の処理ブロックへ送信する。
【0016】
次に可変長パケットと固定長パケットの構成について説明する。図2は可変長パケットの構成を示す図である。可変長パケットは、一般的なIPv4フォーマットのパケットである。ただし、同様の情報要素があればIPv6フォーマットや他のフレーム形式のものでもよい。
【0017】
ここで、Versはバージョン、IHLはヘッダ長、Type of Service(TOS)は優先度、Total LengthはIPv4ペイロード長、IdentificationはフラグメントID、Flagsはフラグ、Fragment Offsetはフラグメントオフセット、Time to Liveはホップ期限、Protocolはプロトコルの識別子、HeaderChecksumはチェックサム、Source Addressは送信元アドレス、Destination Addressは宛先アドレス、Payloadはペイロードである。
【0018】
図3は固定長パケットの構成を示す図である。図2の可変長パケットのペイロード部分を固定長(例えば、64バイト)に区切って、図に示すような固定長パケットのフォーマットに変換する。ただし、同様の情報要素があれば情報長や情報の並びは限定しない。
【0019】
ここで、固定長パケットの各フィールドについて説明する。なお、図中のIPヘッダ、送信元ポート番号、宛先ポート番号は、可変長パケットのIPヘッダ、送信元ポート番号、宛先ポート番号をそれぞれマッピングしたものである。ただし、必要な情報要素のみ抽出してヘッダデータ量を削減してマッピングする。
【0020】
ENは、パケットが有効パケットかどうかを識別するもので、出力すべき有効パケットがないときは空きパケット(EN=0)として出力する。
FRIは、可変長パケットを固定長パケットに分割した際の可変長パケットに対する位置を表すフレームタイプを示しており、固定長パケットを元の可変長パケットに組み立て直す際に利用する。例えば、FRIが00ならば、この固定長パケットは元の可変長パケットの中間の位置にあったことを示す。同様にして、FRIが01ならば先頭、FRIが10ならば最終、FRIが11ならば先頭及び最終の位置にあったことを示す。
【0021】
QoS(Quality of Service)は、後段のQoS関連の制御を行う際に利用するものであり、IPヘッダ中のTOSフィールドを参照した結果にもとづいて書き込まれる。また、フローグループ識別子に対しては、フローグループ分類手段12が、ソースアドレス、ディスティネーションアドレス、プロトコル識別子、送信元ポート番号及び宛先ポート番号をキーとして、ハッシュ演算した結果の値をフローグループ識別子として、このフィールド内に書き込む。
【0022】
オフセット値は、固定長パケット中のペイロード情報の有効フィールドに対する開始位置を示す。ペイロード長はその開始位置からの有効フィールドの長さを示す。SNはシーケンス番号が書き込まれるフィールドである。また、Addressは、可変長パケットのヘッダ情報とペイロードを分離した際に、ペイロードを書き込んだメモリアドレスを指定するために利用する(図6で後述する)。
【0023】
なお、パケットフローとは、上述したフィールドの中のProtocol、Source Address、Destination Address、送信元ポート番号、宛先ポート番号がすべて同一の値のパケットをパケットフローと呼ぶ。例えば、パケットPa、Pb、Pcに対し、パケットPa、PbのProtocol、Source Address、Destination Address、送信元ポート番号、宛先ポート番号がすべて同じ値で、パケットPcのDestination AddressだけがパケットPa、Pbと異なる場合、パケットPa、Pbが同一のパケットフローとなる。
【0024】
次にパケット振り分け手段11について説明する。図4はパケット振り分け手段11の動作内容を示す図である。可変長パケットが到着した場合、固定長パケットに分割して、一定の周期で振り分け先を変更して振り分け処理を行う場合を示している(以降、時分割振り分け処理と呼ぶ)。
【0025】
パケット振り分け手段11は、可変長パケットの到着時、到着パケットのヘッダ部分の情報を抽出し、固定長パケット用のヘッダ情報を生成する。そして、可変長パケットを一定のタイムスロット間隔で分割し、固定長パケット用のヘッダ情報を付加して、振り分けて出力する。図の場合では、64バイト間隔で可変長パケットを分割し、生成した固定長パケットを3方路へ振り分けて、各方路のフローグループ分類手段12へ出力している。
【0026】
時分割振り分け処理では、到着したパケットの有効/無効にかかわらず、最初に、(出力方路数×分割タイムスロット)にパケット流を分割し、その分割したパケットをさらに出力方路数で分割して、出力方路に振り分ける。
【0027】
図では出力方路数が3で、分割タイムスロットが64バイトなので、最初に192(=64×3)バイトにパケット流を分割し、その192バイトを3分割した64バイトを、一定周期で各出力方路に順に振り分ける。
【0028】
したがって、図の場合では、120バイトのパケットP1と72バイトの空きパケット(計192バイト)を64バイトに3分割し、固定長パケットのヘッダを付加して(以下の説明では、固定長パケットのヘッダを付加する旨は省略する)、64バイトのパケットP1−1を出力方路#A1へ、56バイトのパケットP1−2及び8バイトのパディング(固定長パケットを生成するために空き領域を埋めるための空きデータ)を出力方路#A2へ、64バイトの空きパケットを出力方路#A3へ振り分ける。
【0029】
次に8バイトの空きパケット、100バイトのパケットP2及び84バイトのパケットP3(計192バイト)に対しては、8バイトのパディング及び56バイトのパケットP2−1を出力方路#A1へ、44バイトのパケットP2−2及び20バイトのパディングを出力方路#A2へ、44バイトのパディング及び20バイトのパケットP3−1を出力方路#A3へ、64バイトのパケットP3−2を出力方路#A1へ振り分ける。そして、残りの20バイトのパケットP3−3は出力方路#A2へ振り分ける。
【0030】
ここで、振り分け処理中に、現在振り分けているパケットと別パケットがきた場合には、空き領域があればパディングを入れ、その別パケットは別方路へ振り分ける。図の場合では、パケットP2−2でパケットP2はエンドなので、パケットP2−2を出力方路#A2へ振り分けたら、その空き領域にはパディングを挿入し、パケットP3(パケットP3−1)に対しては出力方路#A3へ振り分けている。
【0031】
また、パケットP3−1は、固定長パケットヘッダの直後に振り分けられずに、44バイトのパディングの後に振り分けられている。これは、パケット振り分け手段11の内部処理に関係しており、例えば、パケット振り分け手段11の内部バッファに44バイトのパケットP2−2を書き込んだ後に、20バイトのパケットP3−1を書き込む際に、パケットP2−2を振り分けた後に内部バッファの先頭に戻ってパケットP3−1を書き込むのではなく、パケットP2−2を書き込んだ直後の位置から即座に書き込むような処理をしている。このような制御のために、パケットP3−1は、44バイトのパディングの後に振り分けられる。
【0032】
図5はパケット振り分け手段11の動作内容を示す図である。この例では、可変長パケットが到着した場合、固定長パケットに分割し、パケットが到着しない間は振り分け処理を一旦停止する場合を示している(以降、到着順振り分け処理と呼ぶ)。到着順振り分け処理では、可変長パケットが到着しない間は、振り分け処理を停止する。それ以外の振り分け制御については図4の処理と同じである。
【0033】
図では出力方路数が3で、分割タイムスロットが64バイトなので、最初に192(=64×3)バイトにパケット流を分割し、その192バイトを3分割した64バイトを、到着順に各出力方路に振り分ける。
【0034】
したがって、図の場合では、120バイトのパケットP1と72バイトの空きパケット(計192バイト)を64バイトに3分割して、64バイトのパケットP1−1を出力方路#A1へ、56バイトのパケットP1−2及び8バイトのパディングを出力方路#A2へ、そして残りの64バイトについては振り分け処理を停止する。
【0035】
また、8バイトの空きパケット、100バイトのパケットP2及び84バイトのパケットP3(計192バイト)に対しては、8バイトの空きパケット及び56バイトのパケットP2−1を出力方路#A3へ振り分け、44バイトのパケットP2−2及び20バイトのパディングを出力方路#A1へ、44バイトのパディング及び20バイトのパケットP3−1を出力方路#A2へ、64バイトのパケットP3−2を出力方路#A3へ振り分ける。そして、残りの20バイトのパケットP3−3は出力方路#A1へ振り分ける。
【0036】
以上説明したように、パケット振り分け手段11では、時分割振り分け処理または到着順振り分け処理のいずれか一方の振り分け処理を行う構成とした。時分割振り分け処理では、到着パケットの有効/無効にかかわらず一定周期で振り分けるために、簡易なハードウェア構成で実現できる。ただし、振り分けの周期とパケットの到着パタンに何らかの依存関係があったとき、ある振り分け方路に対してバースト的にパケットが転送されるため、後段に必要なバッファ量が多くなる。
【0037】
また、到着順振り分け処理では、可変長パケットが到着しない間は振り分け処理を停止するために、振り分けるパケットの数が均等になり、よってバッファへの負荷を均等にできるので、必要なバッファ量を少なくできる。
【0038】
次に固定長ヘッダ情報生成手段について説明する。図6は固定長ヘッダ情報生成手段の構成及び動作を示す図である。固定長ヘッダ情報生成手段16がパケット振り分け手段11の前段に設置されている場合を示している。
【0039】
固定長ヘッダ情報生成手段16は、分離・生成手段16aとペイロードメモリ16bから構成される。分離・生成手段16aは、到着した可変長パケットのヘッダ情報とペイロードとを分離する。そして、分離されたペイロードは、ペイロードメモリ16bへ送信される。
【0040】
ペイロードメモリ16bは、送信されたペイロードを格納し、格納した際の書き込みアドレスを分離・生成手段16aに送信する。分離・生成手段16aは、分離したヘッダ情報から必要な情報を抽出して図3で上述した固定長パケット用のヘッダ情報をあらたに生成する。
【0041】
また、この固定長ヘッダ情報の図3で説明した行番号16のAddressフィールドに、ペイロードを書き込んだ際の書き込みアドレスを記入する。そして、パケット振り分け手段11では、固定長ヘッダ情報生成手段16から送信された固定長ヘッダ情報を複数の並列ラインに振り分けて出力する。
【0042】
図では、可変長パケットP1は固定長ヘッダ情報P1hに対応し、可変長パケットP2は固定長ヘッダ情報P2hに対応している。
図7は固定長ヘッダ情報生成手段の構成及び動作を示す図である。固定長ヘッダ情報生成手段16がパケット振り分け手段11の後段に設置されている場合を示している。図の場合では、3本の並列ライン毎に固定長ヘッダ情報生成手段16−1〜16−3が設置しており、パケット振り分け手段11で振り分けられたパケットに対して、各並列ライン毎に固定長ヘッダ情報を生成している。生成した固定長ヘッダ情報は、フローグループ分類手段12へ送信される。ここでパケット振り分け手段11では到着した可変長パケットを到着順にしたがって、各並列ラインに振り分ける。
【0043】
このように、固定長ヘッダ情報生成手段16を設けることにより、可変長パケットからペイロードを分離した固定長ヘッダ情報を生成して、これを後段の処理部へ送信することにしてもよい。
【0044】
なお、図6や図7の場合では、パケット通信装置のスイッチ部(図15以降で後述する)の手前まで固定長ヘッダ情報で処理を行い、スイッチング処理する際には、先に分離したペイロードを固定長ヘッダ情報に合成して、固定長パケットの形にして、スイッチ部へ入力することになる。
【0045】
次にパケットのフローグループ分類処理から、シーケンス番号の付与、バッファリング、フロー振り分け処理までのフロー振り分けスケジューリング動作について説明する。
【0046】
図8はフローグループ分類手段12及びシーケンス番号付与手段13の動作を示す図である。パケット振り分け手段11で可変長パケットが固定長パケットに変換され、4並列ラインに振り分けられている。
【0047】
フローグループ分類手段12−1〜12−4は、各並列ラインに設置し、受信した固定長パケット(または固定長ヘッダ情報)をフローグループに分類する。ここでは4つのフローグループに分類するものとする。
【0048】
例えば、フローグループ識別子をFG1〜FG4とすると、フローグループ分類手段12−1は、受信した固定長パケットを4つのフローグループに分類して、分類したそれぞれの固定長パケットにフローグループ識別子FG1〜FG4を記入して、例えば図のようにして出力する。このフローグループ識別子を記入するフィールドは、図3で説明した行番号0のフローグループ識別子のフィールドである。
【0049】
シーケンス番号付与手段13は、フローグループ識別子が書き込まれた固定長パケットに、フローグループ毎にユニークなシーケンス番号を付与する。なお、シーケンス番号を記入するフィールドは、図3で説明した行番号2のSNのフィールドである。
【0050】
ここでは説明を簡単にするために例えば、フローグループFG1の固定長パケットには数字のシーケンス番号、フローグループFG2の固定長パケットにはローマ数字、フローグループFG3の固定長パケットには小文字の英字、フローグループFG4の固定長パケットには大文字の英字を付与するものとする。
【0051】
したがって、シーケンス番号付与手段13は、図のようにしてシーケンス番号が付与される。また、シーケンス番号が付与された固定長パケットは、バッファリング手段14へ送信される。
【0052】
次にバッファリング手段14について説明する。図9、図10はバッファリング手段14の構成及び動作を示す図であり、図11は読み出し制御手段の読み出し動作を示す図である。バッファリング手段14は、フローグループバッファ140−1〜140−4(総称してフローグループバッファ140)と読み出し制御手段141から構成される。ここでは、並列ラインが4本なので、各並列ライン毎にフローグループバッファ140−1〜140−4が設置している。また、フローグループバッファ140は、分離部14a、キューQ1〜Q4、出力部14bから構成される。
【0053】
ここで、フローグループバッファ140−1に対し、分離部14aは、シーケンス番号が付与された固定長パケットをフローグループFG1〜FG4毎に分離してキューQ1〜Q4へ出力する。キューQ1〜Q4は、それぞれのフローグループFG1〜FG4に対応しており、フローグループ毎にキューイングした後に、出力部14bへ固定長パケットを送信する。出力部14bでは読み出し制御手段141からの読み出し制御にもとづいて固定長パケットを出力する。
【0054】
読み出し制御手段141は、フローグループ毎に、読み出しを行うための読み出しカウンタを持っている。読み出し手順としては図11に示すように、まずカウント#1でシーケンス番号1、i、a、Aの固定長パケットの読み出し指示をフローグループバッファ140−1〜140−4内の出力部14bに送信する。
【0055】
すると、フローグループバッファ140−1は、シーケンス番号1、iの固定長パケットを有しているが、ここではシーケンス番号1の固定長パケットを出力する(このように、シーケンス番号1の固定長パケットとシーケンス番号iの固定長パケットといったように、複数の出力候補がある場合には、出力の順番はラウンドロビンなどを用いて決める)。
【0056】
同様にして、フローグループバッファ140−2は、シーケンス番号aの固定長パケットを出力する。フローグループバッファ140−3は、カウント#1によるシーケンス番号の固定長パケットは有していないため、空き出力となる。また、フローグループバッファ140−4は、シーケンス番号Aの固定長パケットを出力する。
【0057】
ここで、読み出し制御手段141内の読み出しカウンタにおいては、カウント#1でシーケンス番号1、a、Aが読み出されたので、カウント#2でシーケンス番号は2、b、Bとインクリメントされる。また、カウント#1のシーケンス番号iは読み出されなかったので、インクリメントされずにカウント#2でシーケンス番号はiのままとなる。
【0058】
次に読み出し制御手段141は、カウント#2でシーケンス番号2、i、b、Bの固定長パケットの読み出し指示を、フローグループバッファ140−1〜140−4内の出力部14bに送信する。
【0059】
フローグループバッファ140−1は、シーケンス番号iの固定長パケットを出力する。フローグループバッファ140−2は、シーケンス番号2の固定長パケットを出力する。フローグループバッファ140−3は、シーケンス番号bの固定長パケットを出力する。フローグループバッファ140−4は、カウント#2によるシーケンス番号の固定長パケットは有していないため、空き出力となる。
【0060】
また、読み出し制御手段141内の読み出しカウンタにおいては、カウント#2でシーケンス番号2、i、bが読み出されたので、カウント#3でシーケンス番号は3、ii、cとインクリメントされる。また、カウント#2のシーケンス番号Bは読み出されなかったので、インクリメントされずにカウント#3でシーケンス番号はBのままとなる。以降、同様の手順でフローグループバッファ140から固定長パケットが読み出される。
【0061】
以上説明したように、バッファリング手段14では、フローグループ対応のシーケンス番号が付加された固定長パケットの蓄積・読み出し制御を行う構成とした。これにより、フロー内でのパケット順序逆転を防ぎ、効率のよい整列制御を行うことが可能になる。
【0062】
次にフロー振り分けスイッチ15について説明する。図12はフロー振り分けスイッチ15の動作を示す図である。フロー振り分けスイッチ15は、バッファリング手段14から送信された固定長パケットをフローグループ毎に振り分けて出力する。図では、上から順にフローグループFG1〜FG4の固定長パケットが出力されている。なお、固定長パケットを出力する際は、バッファリングを行って、間隔が空いている部分をなくして出力してもよい。
【0063】
次にフロー振り分けスケジューリングに関する他の実施の形態について説明する。以下の第1の変形例では、フローグループとは独立にシーケンス番号を付与してフロー振り分けスケジューリングを行う。
【0064】
図13はシーケンス番号付与手段の動作を示す図である。図中、シーケンス番号付与手段130−1〜130−4(総称してシーケンス番号付与手段130)の手前までは図8と同様である。シーケンス番号付与手段130は、フローグループ識別子が付与された固定長パケットを受信した際に、フローグループ分類手段12に同期して、タイムスロット毎に、フローグループとは独立にシーケンス番号(ここではタイムスタンプ値と呼ぶ)をパケットに付与する。図中の括弧内の数字がタイムスタンプ値である。また、タイムスタンプ値が付与されたパケットは、並列ラインL1〜L4を通じて、フロー振り分けスイッチ150へ送信される。
【0065】
図14、図15はフロー振り分けスイッチ及びバッファリング手段の動作を示す図である。フロー振り分けスイッチ150は、出力バッファ型スイッチであり、シーケンス番号付与手段130−1〜130−4から出力されたパケットを受信して、フローグループ毎にスイッチングする。
【0066】
バッファリング手段は、フローグループバッファ142−1〜142−4(総称してフローグループバッファ142)で構成される。フローグループバッファ142内のキューQ1〜Q4は、各並列ラインに対応して、同一フローグループのパケットキューイングを行う。
【0067】
例えば、フローグループバッファ142−1のキューQ1では、並列ラインL1のフローグループFG1のパケットを格納し、キューQ2は並列ラインL2のフローグループFG1のパケットを格納し、キューQ3は並列ラインL3のフローグループFG1のパケットを格納し、キューQ4は並列ラインL4のフローグループFG1のパケットを格納する。フローグループバッファ142−2〜142−4についても同様にして、各並列ラインからフローグループFG2〜FG4のパケットがそれぞれ格納される。
【0068】
また、フローグループバッファ142は、タイムスタンプ値の番号順にラウンドロビンによりパケットを読み出して、各フローグループに分けられたパケットを出力する。
【0069】
このような第1の変形例の構成により、パケットの逆順を発生させずに、効率のよいフロー振り分けスケジューリングを行うことが可能になる。また、フローグループバッファからの読み出し制御に対しては、内部処理速度をアップしてスループットの低下に対処する。
【0070】
次にフロー振り分けスケジューリングの第2の変形例について説明する。図16はシーケンス番号付与手段の動作を示す図である。図中、シーケンス番号付与手段131−1〜131−4(総称してシーケンス番号付与手段131)の手前までは図8と同様である。シーケンス番号付与手段131は、フローグループ識別子が付与された固定長パケットを受信した際に、フローグループ分類手段12に同期して、タイムスロット毎に、フローグループとは独立にタイムスタンプ値をパケットに付与する。また、この場合、n=0、1、2、…とすると、シーケンス番号付与手段131−1〜131−4は、4n+1、4n+2、4n+3、4n+4のタイムスタンプ値をそれぞれ付与する。図中の括弧内の数字がタイムスタンプ値である。また、タイムスタンプ値が付与されたパケットは、並列ラインL1〜L4を通じて、フロー振り分けスイッチ151へ送信される。
【0071】
図17、図18はフロー振り分けスイッチ及びバッファリング手段の動作を示す図である。フロー振り分けスイッチ151は、出力バッファ型スイッチであり、シーケンス番号付与手段131−1〜131−4から出力されたパケットを受信して、フローグループ毎にスイッチングする。
【0072】
バッファリング手段は、フローグループバッファ143−1〜143−4(総称してフローグループバッファ143)で構成される。フローグループバッファ143内のキューQ1〜Q4は、各並列ラインに対応して、同一フローグループのパケットキューイングを行う。また、フローグループバッファ143は、タイムスタンプ値の最も小さい番号順にパケットを読み出して、各フローグループに分けられたパケットを出力する。
【0073】
このような第2の変形例の構成により、パケットの逆順を発生させずに、効率のよいフロー振り分けスケジューリングを行うことが可能になる。また、第1の変形例とは異なり、同一のタイムスタンプ値が存在しないため、フローグループバッファからの読み出し制御が簡単になり、かつ内部処理速度をアップすることが不要となる。
【0074】
次にQoSを考慮した際のフローグループ分類手段12及びフローグループバッファ140について説明する。図19はQoS制御を付加した場合のフローグループ分類手段の構成を示す図である。
【0075】
フローグループ分類手段12Aは、QoSクラス選択手段12a、フローグループ識別子付与手段12b−1、12b−2、出力手段12cから構成される。QoSクラス選択手段12aは、受信した固定長パケットのQoSをクラス毎に選択して出力する。フローグループ識別子付与手段12b−1、12b−2は、QoS対応にフローグループ識別子を付与する。出力手段12cはフローグループ識別子が付与された固定長パケットを出力する。
【0076】
図の例では、QoS#0の固定長パケットにはフローグループ識別子FG1、FG2が付与され、QoS#1の固定長パケットにはフローグループ識別子FG3、FG4が付与されている。このように、QoSに対応してフローグループ分けを行うことで、QoSクラス間の干渉を避けることができ、品質を保証することが可能になる。
【0077】
図20はQoS制御を付加した場合のフローグループバッファの構成を示す図である。フローグループバッファ140Aは、QoSクラス選択手段4a、フローグループバッファ部140a、140b、優先制御手段4bから構成される。
【0078】
QoSクラス選択手段4aは、受信した固定長パケットのQoSをクラス毎に選択して出力する。フローグループバッファ部140a、140bは、図9、10で説明したフローグループバッファと同様の構成であり、QoSクラス毎に振り分けられた固定長パケットのバッファリングを行って、読み出し制御手段141により読み出される。優先制御手段4bは、読み出された固定長パケットをさらに優先度の高い順に出力する(QoS#0が帯域保証型で、QoS#1がベストエフォートの場合、QoS#0のパケットの方を優先して出力する)。このような処理を行うことで、QoSクラス間の干渉を避けることができ、品質を保証することが可能になる。
【0079】
次に入力回線インタフェース装置10を適用したパケット通信装置について説明する。図21はパケット通信装置の構成を示す図である。
パケット通信装置100は、複数の入力回線を収容して、ハードウェアベースで並列してルーティング処理を行って、パケットを所定の出力回線へ出力するルータ装置である。
【0080】
複数の各入力回線には、入力回線インタフェース部10(図1の入力回線インタフェース装置10に該当する)が設置し、入力回線インタフェース部10の出力側には、入力回線インタフェース部10で振り分けられた数のパケット処理部20−1〜20−n(総称してパケット処理部20)が設置する。
【0081】
パケット処理部20の後段には、VOQ(Virtual Output Queue)3a、スケジューラ3b、クロスバースイッチ3c、VIQ(Virtual Input Queue)3dから構成されるスイッチ部30と、キュー制御手段41、マージ(結合)手段42から構成される出力回線インタフェース部40が設置する。
【0082】
動作としては、まず、入力回線インタフェース部10は、各入力回線から入力された可変長パケットを、固定長パケットに変換し、かつフローグループに分類して出力する。
【0083】
パケット処理部20は、パケット処理として、レイヤ3関連の処理を主に行う。例えば、入力される同一フローグループのパケットに対して、IPアドレスから出力回線を選択するルーティング制御や、IPアドレスやポート番号を参照してパケットを受け付けたりまたは廃棄するフィルタリング制御などを行う。
【0084】
スイッチ部30のVOQ3aは、パケット処理されたパケットのキューイングを行う。スケジューラ3bは、各VOQ3aからパケットを読み出す際に、競合しないようにスケジューリング処理を行って読み出し、クロスバースイッチ3cへ送信する。クロスバースイッチ3cは、パケットを出力回線へ向けてスイッチングする。VIQ3dは、スイッチング後のパケットを格納して、出力回線インタフェース部40へ送信する。
【0085】
出力回線インタフェース部40のキュー制御手段41は、フローグループ内での品質を保持するためのキューイングを行う。マージ手段42は、品質を保持しながらパケットをマージして出力回線へ出力する。
【0086】
なお、スイッチ部30では、固定長パケット単位にスイッチングを行う入力バッファ型スイッチを用いているので、スイッチング後、VIQ3dにより可変長パケットへ組み立てなおし、キュー制御手段41へ書き込む。ただし、キュー制御手段41の処理を簡便にするために、完全な可変長パケットに戻すのではなく、複数の固定長パケットにより構成される可変長パケットとし、出力回線より出力される直前の部分において、固定長パケットのオーバヘッド部分を取り除き、最終的な元の可変長パケットへ戻すものとする。
【0087】
次にキュー制御手段41の動作について説明する。ここで、40Gb/sの入力回線を収容して、10Gb/s毎に振り分けてスイッチングされてきたパケットを、再び40Gb/sの出力回線から出力する場合を考える。
【0088】
入力回線インタフェース部10で4本の10Gb/sのラインに振り分けて、その後にパケット処理、スイッチングを行っているが、実際にはそれぞれのラインで速度に偏りが生じてくる。
【0089】
VIQ3dは、例えば、ラウンドロビンなどで読み出し制御を行って、各フローへパケットを出力するので、これをそのままマージすると品質が保証されずに出力回線へ出力することになる。また、マージ後のパケット流をキューイングして品質制御を行おうとすると、高速かつ複雑な処理が必要となる。
【0090】
したがって、キュー制御手段41では、VIQ3dから読み出されたパケットを一旦キューイングして、各フローに対し10Gb/sの帯域を保証してマージ手段42へ出力する。
【0091】
次にQoSを考慮した際のキュー制御手段41について説明する。図22はQoS制御を付加した場合のキュー制御手段41の構成を示す図である。キュー制御手段41は、QoSクラス選択手段41a、キュー41b−1、41b−2、出力手段41cから構成される。
【0092】
QoSクラス選択手段41aは、受信したパケットのQoSをクラス毎に選択して出力する。キュー41b−1、41b−2は、QoSクラス毎に振り分けられた固定長パケットのキューイングを行う。
【0093】
出力手段41cは、例えば、10Gb/sの帯域を保証しながら、QoSクラスの優先度にもとづいてパケットを出力する。すなわち、キュー41b−1内にQoS#0のパケットがあればこれを優先して読み出し、QoS#0のパケットがなくなった場合に、キュー41b−2内に蓄積されたQoS#1のパケットを読み出す。また、このようなQoSの優先制御に加えて、所定の帯域を保証してパケットをマージ手段42へ出力する。
【0094】
次にマージ手段42について説明する。図23はマージ手段42の構成を示す図である。マージ手段42は、巡回カウント値付与手段42a、マージキュー42b−1〜42b−4、カウント値検索手段42cから構成される。
【0095】
巡回カウント値付与手段42aは、キュー制御手段41から出力されるパケットを到着順に巡回的にカウントして巡回カウント値を付与する。マージキュー42b−1〜42b−4は、巡回カウント値が付与されたパケットをキューイングする。カウント値検索手段42cは、マージキュー42b−1〜42b−4から出力されたパケットの巡回カウント値を比較し、若番号順に出力回線へマージして出力する。
【0096】
このように、マージ手段42では、キュー制御手段41から送信されたパケットに到着順に巡回番号を付けて、この番号にもとづいてマージ出力する構成としたので、品質保持を崩さずにマージすることが可能になる。
【0097】
次にQoSを考慮した際のマージ手段について説明する。図24はQoS制御を付加した場合のマージ手段の構成を示す図である。マージ手段42Aは、QoSに対応してフローグループを分類したフローグループ分類手段12A(図19で上述)を用いた場合に適用されるマージ手段である。
【0098】
ここで、QoS#0を帯域保証型、QoS#1をベストエフォートとすると、QoS#0に割り当てられたフローグループ間に対してのみ、巡回カウント番号を利用した到着順序にもとづいた読み出し制御を行い、QoS#1に割り当てられたフローグループ間の読み出し制御は、ラウンドロビンで行う。そして、優先制御手段42dは、カウント値検索手段42cの読み出しパケットと、マージキュー42b−3、42b−4からのラウンドロビンによる読み出しパケットと、の優先制御を行って出力する。すなわち、カウント値検索手段42cからの出力がなくなった場合にマージキュー42b−3、42b−4からのラウンドロビンによる読み出しパケットが選択されて出力されることになる。
【0099】
次にマージ手段42の変形例について説明する。図25はマージ手段42の第1の変形例を示す図である。マージ手段42Bは、巡回カウント値付与手段42d−1〜42d−4、マージキュー42e−1〜42e−4、カウント値検索手段42fから構成される。
【0100】
巡回カウント値付与手段42d−1〜42d−4は、並列ライン毎に配置され、キュー制御手段41から出力されるパケットを巡回的にカウントして巡回カウント値を付与する。例えば、巡回カウント値付与手段42d−1では、タイムスロットt1、t3に空きデータを、タイムスロットt2、t4にフローグループFG1のパケットからなるパケット流を受信している。この場合、最初に到着したフローグループFG1のパケットには巡回カウント値1を付与する。また、このパケットは、時間間隔を3タイムスロット分とるように広げられて後段のマージキュー42e−1で格納される。そして、タイムスロットt4で受信したフローグループFG1のパケットには、巡回カウント値4を付与する。
【0101】
巡回カウント値付与手段42d−2では、タイムスロットt4にフローグループFG2のパケットを受信しており、巡回カウント値4を付与する。巡回カウント値付与手段42d−3では、タイムスロットt4、t5にフローグループFG3のパケットを受信しており、巡回カウント値4、5をそれぞれに付与する。
【0102】
巡回カウント値付与手段42d−4では、タイムスロットt5、t7に空きデータを、タイムスロットt6にフローグループFG4のパケットからなるパケット流を受信しており、巡回カウント値5を付与する。また、このパケットは、時間間隔を3タイムスロット分とるように広げられて後段のマージキュー42e−4で格納される。
【0103】
マージキュー42e−1〜42e−4は、巡回カウント値が付与されたパケットをキューイングする。カウント値検索手段42fは、マージキュー42e−1〜42e−4から出力されたパケットの巡回カウント値を比較し、若番号順に出力回線へマージして出力する。なお、同一番号の場合はラウンドロビンで選択する。
【0104】
図26はマージ手段42の第2の変形例を示す図である。マージ手段42Cは、巡回カウント値付与手段42g−1〜42g−4、マージキュー42h−1〜42h−4、カウント値検索手段42iから構成される。
【0105】
巡回カウント値付与手段42g−1〜42g−4は、並列ライン毎に配置され、キュー制御手段41から出力されるパケットを巡回的にカウントして巡回カウント値を付与する。また、この場合、n=0、1、2、…とすると、巡回カウント値付与手段42g−1〜42g−4は、4n+1、4n+2、4n+3、4n+4の巡回カウント値をパケットに付与する。これにより、同一の巡回カウント値が現れないので、カウント値検索手段42iでは巡回カウント値を若番順に読むだけでよく、読み出す制御が簡単になる。その他の構成・動作は、第1の変形例と同様である。
【0106】
このように、マージ手段42では、キュー制御手段41から送信されたパケットに到着順に巡回カウント番号を付けて、この番号にもとづいてマージ出力する構成としたので、品質保持を崩さずにマージすることが可能になる。
【0107】
なお、上記において、マージキューのオーバーフロー防止のために、バックププレッシャ制御をかけて、前段のキュー制御手段41からの読み出しを停止してもよい。また、マージキューとキュー制御手段41内のキューは論理的は独立であるが、物理的に同一のバッファメモリを利用して所要バッファ量を削減してもよい。
【0108】
次にパケット処理部20でのルーティング制御の処理負荷を軽減する場合について説明する。パケット処理部20が行うレイヤ3の処理では、一般には、フィルタリング処理よりもルーティング処理の方が負荷が大きい(検索するためのルックアップテーブルの規模が大きい)。
【0109】
したがって、ルーティング制御の処理負荷を軽減する場合(ルックアップテーブルの規模を小さくしたい場合)、まず、フローグループ分類手段12では、ディスティネーションアドレスのみをキーとして、ハッシュ処理し、フローグループに分類する。また、分類されたフローグループにパケット処理部20をあらかじめ対応させておく。そして、パケット処理部20では、そのフローグループに対応するディスティネーションアドレスからなるルックアップテーブルを持って、ルーティングを行うようにする。
【0110】
例えば、0〜40の中の1つのディスティネーションを持つパケットに対し、フローグループ分類手段12は、このディスティネーションアドレスをキーとしてハッシュ処理し、0〜10をフローグループFG1、11〜20をフローグループFG2、21〜30をフローグループFG3、31〜40をフローグループFG4に分類したとする。
【0111】
また、フローグループFG1〜FG4それぞれにパケット処理部20−1〜20−4をあらかじめ対応させておく。そして、パケット処理部20−1には、0〜10のディスティネーションアドレスからなるルックアップテーブルを持たせる。同様に、パケット処理部20−2〜20−4のそれぞれに、11〜20、21〜30、31〜40のディスティネーションアドレスからなるルックアップテーブルを持たせる。
【0112】
このような構成にすることにより、1つのパケット処理部が、0〜40のディスティネーションアドレスからなるルックアップテーブルを持つのではなく、フローグループに対応して分割して縮小化したルックアップテーブルをパケット処理部に持たせることができるので、パケット処理部20でのルーティング制御の処理負荷を軽減することができ、ハードウェア規模も縮小することが可能になる。
【0113】
次にパケット通信装置100の変形例について説明する。図27はパケット通信装置100の変形例の構成を示す図である。パケット通信装置100aは、入力回線インタフェース部10Aを用いて入力回線を収容する。その他の構成は、図21のパケット通信装置100と同様である。
【0114】
入力回線インタフェース部10Aは、入力回線毎に設置されたフロー分割部10a−1〜10a−n(総称してフロー分割部10a)と、1つのフロー振り分けスイッチ10bから構成される。フロー分割部10aは、上述したパケット振り分け手段11、フローグループ分類手段12、シーケンス番号付与手段13及びバッファリング手段14から構成される。
【0115】
また、フロー振り分けスイッチ10bは、スイッチ部30のクロスバースイッチ3cを共用したものであり、クロスバースイッチ3cを用いて、フロー振り分け機能を行うものである(同じスイッチにデータを2回通すことになる)。
【0116】
図21のパケット通信装置100では、入力回線毎にフロー振り分けスイッチ15を設置していたが、パケット通信装置100aでは、1つのクロスバースイッチ3cを用いて、フロー振り分け機能とスイッチング機能の2つを共用して使用する構成としたので、回路規模の削減を図ることが可能になる。
【0117】
また、パケット通信装置100では、パケット処理部20が各入力回線毎にくくりつけの状態であったが、パケット通信装置100aでは、設置されているパケット処理部20を自由に選択することができる。
【0118】
したがって、1つのパケット処理部20が故障したり、処理負荷が高くなっている場合には、振り分けたフローを他の任意のパケット処理部20へ送信することができるので、効率よく冗長性を持った処理を行うことが可能になる。
【0119】
以上説明したように、入力回線インタフェース装置10は、IPパケットのような可変長パケットを固定長パケットに分割して、フローグループに分類してパケットを収容する構成とした。これにより、高速入力回線のパケットを効率よく収容することが可能になる。
【0120】
また、パケット通信装置100は、入力回線インタフェース部10で入力処理を行った後、各々のフローグループにレイヤ3の処理を並列に行って、スイッチングし、各フローグループの品質を保持したまま複数フローグループのパケットをマージして、高速出力回線へ出力する構成とした。これにより、高速・大容量ルーティング装置を実現することが可能になる。
【0121】
(付記1) 入力回線側のパケットのインタフェース制御を行う入力回線インタフェース装置において、
可変長パケットを分割して並列ラインに振り分けて出力するパケット振り分け手段と、
前記並列ライン毎に前記パケットをフローグループに分類するフローグループ分類手段と、
前記フローグループに対応して、もしくは独立にシーケンス番号を前記パケットに付与するシーケンス番号付与手段と、
前記シーケンス番号が付与されたパケットのバッファリングを行って、前記フローグループ内の前記パケットの整列制御を行うバッファリング手段と、
前記フローグループ毎に前記パケットを振り分けて出力するフロー振り分けスイッチと、
を有することを特徴とする入力回線インタフェース装置。
【0122】
(付記2) 前記パケット振り分け手段は、前記可変長パケットを固定長パケットに分割して振り分け処理することを特徴とする付記1記載の入力回線インタフェース装置。
【0123】
(付記3) 前記パケット振り分け手段は、一定の周期で振り分け先を変更する処理、またはパケットが到着しない間は振り分け処理を停止する処理のいずれか一方の振り分け処理を行うことを特徴とする付記1記載の入力回線インタフェース装置。
【0124】
(付記4) 前記パケット振り分け手段の前段または後段に設置され、前記可変長パケットのヘッダ情報とペイロードとを分離し、前記ペイロードはメモリに格納し、前記メモリに格納した際の書き込みアドレスと前記ヘッダ情報から抽出した情報とを含む固定長ヘッダ情報を生成する固定長ヘッダ情報生成手段をさらに有することを特徴とする付記1記載の入力回線インタフェース装置。
【0125】
(付記5) 前記フローグループ分類手段は、QoSクラスに対応して前記パケットを前記フローグループに分類することを特徴とする付記1記載の入力回線インタフェース装置。
【0126】
(付記6) 前記バッファリング手段は、QoSクラスに対応して前記パケットのバッファリングを行うことを特徴とする付記1記載の入力回線インタフェース装置。
【0127】
(付記7) 前記シーケンス番号付与手段は、同一番号が現れないように、前記シーケンス番号を付与することを特徴とする付記1記載の入力回線インタフェース装置。
【0128】
(付記8) パケットの通信制御を行うパケット通信装置において、
可変長パケットを分割して並列ラインに振り分けて出力するパケット振り分け手段と、前記並列ライン毎に前記パケットをフローグループに分類するフローグループ分類手段と、前記フローグループに対応して、もしくは独立にシーケンス番号を前記パケットに付与するシーケンス番号付与手段と、前記シーケンス番号が付与されたパケットのバッファリングを行って、前記フローグループ内の前記パケットの整列制御を行うバッファリング手段と、前記フローグループ毎に前記パケットを振り分けて出力するフロー振り分けスイッチと、から構成される入力回線インタフェース部と、
入力される同一フローグループの前記パケットに対するパケット処理を行うパケット処理部と、
前記出力回線へのスイッチング制御を行うスイッチ部と、
スイッチング後のパケットに対し、前記フローグループ内での品質を保持するためのキューイングを行うキュー制御手段と、前記パケットを前記出力回線へマージして出力するマージ手段と、から構成される出力回線インタフェース部と、
を有することを特徴とするパケット通信装置。
【0129】
(付記9) 前記キュー制御手段は、QoSクラスに対応して前記パケットのキューイングを行うことを特徴とする付記8記載のパケット通信装置。
(付記10) 前記マージ手段は、前記キュー制御手段から出力されたパケットの到着順に巡回カウント番号を付与して、前記巡回カウント番号の若番順に読み出してマージすることを特徴とする付記8記載のパケット通信装置。
【0130】
(付記11) 前記マージ手段は、同一番号が現れないように前記巡回カウント番号を付与してマージすることを特徴とする付記10記載のパケット通信装置。
【0131】
(付記12) 前記マージ手段は、QoSクラスに対応して前記パケットをマージすることを特徴とする付記8記載のパケット通信装置。
(付記13) 前記フローグループ分類手段は、ディスティネーションアドレスをキーとしてハッシュ処理して前記パケットをフローグループに分類し、前記パケット処理部は、前記フローグループに対応したディスティネーションアドレスから構成されるルックアップテーブルを有することを特徴とする付記8記載のパケット通信装置。
【0132】
(付記14) 前記フロー振り分けスイッチは、前記スイッチ部で用いられるスイッチと共用して使用することを特徴とする付記8記載のパケット通信装置。
【0133】
【発明の効果】
パケットの逆順を発生させずに、効率のよいフロー振り分けスケジューリングを行うことが可能となり、また、同一のタイムスタンプ値が存在しないため、フローグループバッファからの読み出し制御が簡単になり、かつ内部処理速度をアップすることが不要となる。
【図面の簡単な説明】
【図1】 入力回線インタフェース装置の原理図である。
【図2】 可変長パケットの構成を示す図である。
【図3】 固定長パケットの構成を示す図である。
【図4】 パケット振り分け手段の動作内容を示す図である。
【図5】 パケット振り分け手段の動作内容を示す図である。
【図6】 固定長ヘッダ情報生成手段の構成及び動作を示す図である。
【図7】 固定長ヘッダ情報生成手段の構成及び動作を示す図である。
【図8】 フローグループ分類手段及びシーケンス番号付与手段の動作を示す図である。
【図9】 バッファリング手段の構成及び動作を示す図である。
【図10】 バッファリング手段の構成及び動作を示す図である。
【図11】 読み出し制御手段の読み出し動作を示す図である。
【図12】 フロー振り分けスイッチの動作を示す図である。
【図13】 シーケンス番号付与手段の動作を示す図である。
【図14】 フロー振り分けスイッチ及びバッファリング手段の動作を示す図である。
【図15】 フロー振り分けスイッチ及びバッファリング手段の動作を示す図である。
【図16】 シーケンス番号付与手段の動作を示す図である。
【図17】 フロー振り分けスイッチ及びバッファリング手段の動作を示す図である。
【図18】 フロー振り分けスイッチ及びバッファリング手段の動作を示す図である。
【図19】 QoS制御を付加した場合のフローグループ分類手段の構成を示す図である。
【図20】 QoS制御を付加した場合のフローグループバッファの構成を示す図である。
【図21】 パケット通信装置の構成を示す図である。
【図22】 QoS制御を付加した場合のキュー制御手段の構成を示す図である。
【図23】 マージ手段の構成を示す図である。
【図24】 QoS制御を付加した場合のマージ手段の構成を示す図である。
【図25】 マージ手段の第1の変形例を示す図である。
【図26】 マージ手段の第2の変形例を示す図である。
【図27】 パケット通信装置の変形例の構成を示す図である。
Claims (5)
- 入力回線側のパケットのインタフェース制御を行う入力回線インタフェース装置において、
可変長パケットを分割して並列ラインに振り分けて出力するパケット振り分け手段と、
前記並列ライン毎に前記パケットをフローグループに分類するフローグループ分類手段と、
前記フローグループに対応して、もしくは独立にシーケンス番号を前記パケットに付与するシーケンス番号付与手段と、
前記シーケンス番号が付与されたパケットのバッファリングを行って、前記フローグループ内の前記パケットの整列制御を行うバッファリング手段と、
前記フローグループ毎に前記パケットを振り分けて出力するフロー振り分けスイッチと、
を備え、
前記シーケンス番号付与手段は、前記並列ラインに対応して、Cn+1、Cn+2、・・・、Cn+Cのシーケンス番号を(n=0、1、2・・・、Cは並列ライン数)、前記フローグループの前記パケットの各タイムスロットに付与し、
前記バッファリング手段は、前記シーケンス番号の最も小さい番号順に前記パケットを読出して、前記フローグループに分けられた前記パケットを出力する、
ことを特徴とする入力回線インタフェース装置。 - 前記パケット振り分け手段は、前記可変長パケットを固定長パケットに分割して振り分け処理することを特徴とする請求項1記載の入力回線インタフェース装置。
- 前記パケット振り分け手段は、一定の周期で振り分け先を変更する処理、またはパケットが到着しない間は振り分け処理を停止する処理のいずれか一方の振り分け処理を行うことを特徴とする請求項1記載の入力回線インタフェース装置。
- パケットの通信制御を行うパケット通信装置において、
可変長パケットを分割して並列ラインに振り分けて出力するパケット振り分け手段と、前記並列ライン毎に前記パケットをフローグループに分類するフローグループ分類手段と、前記フローグループに対応して、もしくは独立にシーケンス番号を前記パケットに付与するシーケンス番号付与手段と、前記シーケンス番号が付与されたパケットのバッファリングを行って、前記フローグループ内の前記パケットの整列制御を行うバッファリング手段と、前記フローグループ毎に前記パケットを振り分けて出力するフロー振り分けスイッチと、から構成される入力回線インタフェース部と、
入力される同一フローグループの前記パケットに対するパケット処理を行うパケット処理部と、
前記出力回線へのスイッチング制御を行うスイッチ部と、
スイッチング後のパケットに対し、前記フローグループ内での品質を保持するためのキューイングを行うキュー制御手段と、前記パケットを前記出力回線へマージして出力するマージ手段と、から構成される出力回線インタフェース部と、
を備え、
前記シーケンス番号付与手段は、前記並列ラインに対応して、Cn+1、Cn+2、・・・、Cn+Cのシーケンス番号を(n=0、1、2・・・、Cは並列ライン数)、前記フローグループの前記パケットの各タイムスロットに付与し、
前記バッファリング手段は、前記シーケンス番号の最も小さい番号順に前記パケットを読出して、前記フローグループに分けられた前記パケットを出力する、
ことを特徴とするパケット通信装置。 - 前記マージ手段は、前記キュー制御手段から出力されたパケットの到着順に巡回カウント番号を付与して、前記巡回カウント番号の若番順に読み出してマージすることを特徴とする請求項4記載のパケット通信装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001060617A JP4475835B2 (ja) | 2001-03-05 | 2001-03-05 | 入力回線インタフェース装置及びパケット通信装置 |
US10/079,082 US7366165B2 (en) | 2001-03-05 | 2002-02-19 | Input line interface device and packet communication device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001060617A JP4475835B2 (ja) | 2001-03-05 | 2001-03-05 | 入力回線インタフェース装置及びパケット通信装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002261826A JP2002261826A (ja) | 2002-09-13 |
JP4475835B2 true JP4475835B2 (ja) | 2010-06-09 |
Family
ID=18920013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001060617A Expired - Fee Related JP4475835B2 (ja) | 2001-03-05 | 2001-03-05 | 入力回線インタフェース装置及びパケット通信装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7366165B2 (ja) |
JP (1) | JP4475835B2 (ja) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2377519B (en) * | 2001-02-14 | 2005-06-15 | Clearspeed Technology Ltd | Lookup engine |
US7729367B1 (en) * | 2001-04-19 | 2010-06-01 | Cisco Technology, Inc. | Method for bring-up of voice over internet protocol telephones |
US7953094B1 (en) * | 2002-02-06 | 2011-05-31 | Juniper Networks, Inc. | Systems and methods for order preserving data |
US7072352B2 (en) * | 2002-02-21 | 2006-07-04 | Intel Corporation | Inverse multiplexing of unmanaged traffic flows over a multi-star network |
DE60210576T2 (de) * | 2002-04-03 | 2007-02-15 | Alcatel | Verfahren und Vorrichtungen zur Umordnung von Paketen in einem Netzwerkprozessor |
SE525183C2 (sv) | 2002-04-04 | 2004-12-21 | Xelerated Ab | Förfarande och medel för behandling med pipelining av datapaket |
US7320037B1 (en) * | 2002-05-10 | 2008-01-15 | Altera Corporation | Method and apparatus for packet segmentation, enqueuing and queue servicing for multiple network processor architecture |
US7339943B1 (en) | 2002-05-10 | 2008-03-04 | Altera Corporation | Apparatus and method for queuing flow management between input, intermediate and output queues |
US7606248B1 (en) | 2002-05-10 | 2009-10-20 | Altera Corporation | Method and apparatus for using multiple network processors to achieve higher performance networking applications |
US7336669B1 (en) | 2002-05-20 | 2008-02-26 | Altera Corporation | Mechanism for distributing statistics across multiple elements |
US7593334B1 (en) | 2002-05-20 | 2009-09-22 | Altera Corporation | Method of policing network traffic |
US8117333B1 (en) | 2002-05-22 | 2012-02-14 | Juniper Networks, Inc. | Systems and methods for distributed data forwarding |
US7283532B2 (en) * | 2002-10-25 | 2007-10-16 | Alcatel Lucent | Hierarchical scheduler architecture for use with an access node |
US7289508B1 (en) | 2003-03-12 | 2007-10-30 | Juniper Networks, Inc. | Systems and methods for processing any-to-any transmissions |
WO2004088938A1 (ja) * | 2003-03-31 | 2004-10-14 | Fujitsu Limited | 通信装置及び通信方法 |
JP4163044B2 (ja) * | 2003-05-09 | 2008-10-08 | 古河電気工業株式会社 | 帯域制御方法およびその帯域制御装置 |
US20070186076A1 (en) * | 2003-06-18 | 2007-08-09 | Jones Anthony M | Data pipeline transport system |
RU2006100275A (ru) * | 2003-06-18 | 2006-07-10 | Амбрик, Инк. (Us) | Система разработки интегральной схемы |
US7894343B2 (en) * | 2003-06-19 | 2011-02-22 | Polytechnic University | Packet sequence maintenance with load balancing, and head-of-line blocking avoidance in a switch |
US7852829B2 (en) * | 2003-06-19 | 2010-12-14 | Polytechnic University | Packet reassembly and deadlock avoidance for use in a packet switch |
US7724738B2 (en) * | 2003-06-19 | 2010-05-25 | Hung-Hsiang Jonathan Chao | Packet-level multicasting |
US7792118B2 (en) * | 2003-06-19 | 2010-09-07 | Polytechnic University | Switch module memory structure and per-destination queue flow control for use in a switch |
US7586917B1 (en) * | 2003-09-30 | 2009-09-08 | Juniper Networks, Inc. | Systems and methods for re-ordering data in distributed data forwarding |
EP1705870B1 (en) * | 2004-01-09 | 2012-08-29 | NEC Corporation | Communication method |
JP4409991B2 (ja) * | 2004-03-01 | 2010-02-03 | 富士通株式会社 | リンクアグリゲーションを用いた伝送制御システム |
DE102004057305B4 (de) * | 2004-10-05 | 2008-05-15 | Siemens Ag | Pipeline zum Datenaustausch zwischen medizinischen Bildapplikationen |
US7719995B2 (en) * | 2005-09-09 | 2010-05-18 | Zeugma Systems Inc. | Application driven fast unicast flow replication |
US7733891B2 (en) * | 2005-09-12 | 2010-06-08 | Zeugma Systems Inc. | Methods and apparatus to support dynamic allocation of traffic management resources in a network element |
US20070076761A1 (en) * | 2005-09-15 | 2007-04-05 | Coke Reed | Apparatus for interconnecting multiple devices to a synchronous device |
US7606968B2 (en) * | 2006-05-08 | 2009-10-20 | Mcdata Corporation | Multi-level content addressable memory |
US20070268903A1 (en) * | 2006-05-22 | 2007-11-22 | Fujitsu Limited | System and Method for Assigning Packets to Output Queues |
US8279893B2 (en) * | 2006-06-16 | 2012-10-02 | Nvidia Corporation | System and method for communicating data utilizing multiple types of data connections |
JP4509068B2 (ja) * | 2006-07-24 | 2010-07-21 | 富士通株式会社 | パケット処理装置 |
US7764676B1 (en) * | 2006-07-31 | 2010-07-27 | Qlogic, Corporation | Method and system for processing network information |
KR20080079027A (ko) * | 2007-02-26 | 2008-08-29 | 삼성전자주식회사 | 네트워크 프로세서 패킷 처리 장치 및 그 방법 |
US7773510B2 (en) * | 2007-05-25 | 2010-08-10 | Zeugma Systems Inc. | Application routing in a distributed compute environment |
US20080298230A1 (en) * | 2007-05-30 | 2008-12-04 | Luft Siegfried J | Scheduling of workloads in a distributed compute environment |
US7706291B2 (en) * | 2007-08-01 | 2010-04-27 | Zeugma Systems Inc. | Monitoring quality of experience on a per subscriber, per session basis |
US7808898B2 (en) * | 2007-08-14 | 2010-10-05 | Hewlett-Packard Development Company, L.P. | Flow estimator |
US8374102B2 (en) * | 2007-10-02 | 2013-02-12 | Tellabs Communications Canada, Ltd. | Intelligent collection and management of flow statistics |
US7957396B1 (en) * | 2008-01-29 | 2011-06-07 | Juniper Networks, Inc. | Targeted flow sampling |
JP5071178B2 (ja) * | 2008-03-14 | 2012-11-14 | 富士通株式会社 | パケット伝送装置 |
KR20090099734A (ko) * | 2008-03-18 | 2009-09-23 | 삼성전자주식회사 | 스트림 기반의 인터페이스 시스템 및 그 제어 방법 |
JP5028316B2 (ja) * | 2008-04-02 | 2012-09-19 | アラクサラネットワークス株式会社 | セル分散型スイッチファブリック |
US8013765B1 (en) * | 2008-05-01 | 2011-09-06 | Cavium, Inc. | Modular scaleable processing engine for accelerating variable length coding |
US7924860B1 (en) * | 2008-12-23 | 2011-04-12 | Juniper Networks, Inc. | Maintaining data unit order in a network switching device |
JP5347836B2 (ja) * | 2009-08-25 | 2013-11-20 | 富士通株式会社 | 通信装置および通信方法 |
JP5153815B2 (ja) * | 2010-04-13 | 2013-02-27 | 日本電信電話株式会社 | マルチレーン伝送方法及びシステム |
JP5788971B2 (ja) * | 2010-05-03 | 2015-10-07 | アルカテル−ルーセント | 無線ネットワーク内でバッファ・ステータス・レポートを送信するための方法および装置 |
US8314807B2 (en) * | 2010-09-16 | 2012-11-20 | Apple Inc. | Memory controller with QoS-aware scheduling |
JP5672932B2 (ja) * | 2010-10-13 | 2015-02-18 | 富士ゼロックス株式会社 | 通信装置、通信システム及びプログラム |
US9973270B2 (en) * | 2012-02-22 | 2018-05-15 | Nippon Telegraph And Telephone Corporation | Multi-lane transmission device and multi-lane transmission method |
EP2645633A1 (en) * | 2012-03-29 | 2013-10-02 | British Telecommunications Public Limited Company | Estimating line rate |
US20140105215A1 (en) * | 2012-10-15 | 2014-04-17 | Hewlett-Packard Development Company, L.P. | Converting addresses for nodes of a data center network into compact identifiers for determining flow keys for received data packets |
JP6060050B2 (ja) * | 2013-08-02 | 2017-01-11 | 株式会社日立製作所 | 通信装置、及び、パケット処理方法 |
KR101501242B1 (ko) * | 2014-05-26 | 2015-03-12 | 주식회사 파이오링크 | 오픈플로우에 기반하여 네트워크를 병합하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 |
WO2017026106A1 (ja) * | 2015-08-07 | 2017-02-16 | 日本電気株式会社 | データ分割ユニット、通信装置、通信システム、データ分割方法、およびデータ分割用プログラムが記憶された記憶媒体 |
JP7013650B2 (ja) * | 2017-01-30 | 2022-02-01 | 富士通株式会社 | パケット処理装置及びパケット処理方法 |
KR102417673B1 (ko) * | 2017-06-14 | 2022-07-07 | 소니 세미컨덕터 솔루션즈 가부시키가이샤 | 복조 장치, 처리 장치, 수신 장치 및 데이터 처리 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02284542A (ja) | 1989-04-25 | 1990-11-21 | Mitsubishi Electric Corp | セル交換装置 |
US5680400A (en) * | 1995-05-31 | 1997-10-21 | Unisys Corporation | System for high-speed transfer of a continuous data stream between hosts using multiple parallel communication links |
US6081523A (en) * | 1997-12-05 | 2000-06-27 | Advanced Micro Devices, Inc. | Arrangement for transmitting packet data segments from a media access controller across multiple physical links |
US6052368A (en) * | 1998-05-22 | 2000-04-18 | Cabletron Systems, Inc. | Method and apparatus for forwarding variable-length packets between channel-specific packet processors and a crossbar of a multiport switch |
JP4182180B2 (ja) * | 1999-02-24 | 2008-11-19 | 株式会社日立製作所 | ネットワーク中継装置及びネットワーク中継方法 |
US6614808B1 (en) * | 1999-09-02 | 2003-09-02 | International Business Machines Corporation | Network packet aggregation |
US6618383B1 (en) * | 1999-12-28 | 2003-09-09 | Nortel Networks Limited | Serial interface for a broadband communications network |
US6768716B1 (en) * | 2000-04-10 | 2004-07-27 | International Business Machines Corporation | Load balancing system, apparatus and method |
-
2001
- 2001-03-05 JP JP2001060617A patent/JP4475835B2/ja not_active Expired - Fee Related
-
2002
- 2002-02-19 US US10/079,082 patent/US7366165B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002261826A (ja) | 2002-09-13 |
US20020122424A1 (en) | 2002-09-05 |
US7366165B2 (en) | 2008-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4475835B2 (ja) | 入力回線インタフェース装置及びパケット通信装置 | |
US7298754B1 (en) | Configurable switch fabric interface bandwidth system and method | |
US6577635B2 (en) | Data packet transmission scheduling | |
US6832261B1 (en) | Method and apparatus for distributed resequencing and reassembly of subdivided packets | |
US6553030B2 (en) | Technique for forwarding multi-cast data packets | |
US7525995B2 (en) | Method and system for switching packets | |
US6683885B1 (en) | Network relaying apparatus and network relaying method | |
US20020085567A1 (en) | Metro switch and method for transporting data configured according to multiple different formats | |
US7136391B1 (en) | ATM switch | |
US20050207436A1 (en) | Switching device based on aggregation of packets | |
US20020085565A1 (en) | Technique for time division multiplex forwarding of data streams | |
US20030048792A1 (en) | Forwarding device for communication networks | |
JP2004015561A (ja) | パケット処理装置 | |
US20020085545A1 (en) | Non-blocking virtual switch architecture | |
US7092393B1 (en) | Method and apparatus for distributed reassembly of subdivided packets using multiple reassembly components | |
US7724738B2 (en) | Packet-level multicasting | |
Moon et al. | High-performance variable-length packet scheduling algorithm for IP traffic | |
KR100441883B1 (ko) | 패킷 스위치 시스템의 입력 제어장치 및 방법 | |
Singhal | Terabit switches and routers | |
WO2007074423A2 (en) | Method and system for byte slice processing data packets at a packet switch | |
Chang et al. | Principles, Architectures and Mathematical Theories of High Performance Packet Switches | |
Zhu | Implementation considerations of algebraic switching fabrics | |
Gebali et al. | Switches and Routers | |
Wang et al. | CBX-1 Switch: An Effective Load Balanced Switch | |
JP2002152199A (ja) | マルチキャスト通信中継方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090929 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100309 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100309 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140319 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |