(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
近年、インターネットの急速な普及に伴って、通信ネットワークは飛躍的に発展しており、特にIP(Internet Protocol)パケットに代表されるデータ通信は、通信ネットワーク全体のトラヒックの主流となりつつある。また、通信サービスに対する需要の高まりや通信速度の高速化による装置の大容量化などが顕著になってきている。
【0003】
このような通信ネットワーク上には、パケット転送を行うためのルータやスイッチが配置されているが、パケットの転送処理を行う際、転送元と転送先の通信ネットワークのデータ転送レートが同一とは限らない。また、転送先の通信ネットワークに輻輳が発生している場合は、その通信ネットワークにパケットを転送することができない。
【0004】
このような場合には、パケットの転送が開始可能となるまでパケットを一時的に蓄えておくための機能が必要である。この機能のことをパケットバッファと呼び、一般にメモリとメモリ制御装置から構成される。パケットバッファは、大容量かつ高データ転送レートが要求されるデータ通信に対応する必要があるため、メモリには、安価で大容量のDRAMを使用することが多い。DRAMは、バースト転送を行うことにより高データ転送レートを得ることができるメモリである。
【0005】
パケットバッファ装置の構築方法として、従来方式である特許文献1では、受信したパケットサイズに応じてメモリへのパケット格納方法を変えることで、メモリを効率的に利用する方式を示している。また、特許文献2では、メモリへの書き込みに適したデータサイズとなるように受信したパケットを分割・統合することで、メモリへの高速アクセスを実現する方式を示している。
【発明を実施するための形態】
【0012】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。なお以下では、バッファ装置として、パケットを一時的に蓄えるパケットバッファ装置5を用いて説明を行う。
実施の形態1.
まず、本発明のパケットバッファ装置5が適用されたパケット転送装置1の構成例について、
図1を参照しながら説明する。
インターネットのような通信ネットワーク上には、例としてルータやスイッチのようなパケット転送装置1が配置されている。パケット転送装置1は、複数の通信ネットワークを相互に接続しており、終端から終端へとパケットを転送する役割がある。
【0013】
このパケット転送装置1は、
図1に示すように、制御装置4およびパケットバッファ装置5から構成されている。そして、通常時では、パケット送信元2側のポートで受信したパケットを、パケット送信先3側のポートに直接転送する。一方、パケット送信先3の輻輳を検出した場合は、パケット送信元2に対して、パケットを送信しないように制御を行う。しかし、この制御と実際にパケットの送信が停止するまでには時間差があるため、パケット送信元2から既に送信されているパケットは、パケット送信元2側のポートに受信され続ける。そのため、このパケットを廃棄しないように、パケット送信先3側のポートに転送できないパケットを一時的に保存する必要がある。
そこで、制御装置4では、パケット送信先3の輻輳を検出すると、パケット送信元2側のポートに到着したパケットをパケットバッファ装置5に保存する。その後、パケット送信先3の輻輳が解消され、パケットを転送できるようになると、パケットバッファ装置5に格納されたパケットを読み出し、パケット送信先3側のポートに出力する。
【0014】
次に、パケットバッファ装置5の全体構成について、
図2を参照しながら説明する。
パケットバッファ装置5は、
図2に示すように、パケット格納情報生成部(格納情報生成部)501、誤り訂正符号生成部502、メモリ制御部503、メモリ書き込み部504、メモリ505、メモリ読み出し部506、パケット管理データ一時格納部(管理データ一時格納部)507、誤り訂正部508、パケット再構成制御部(再構成制御部)509およびパケット再構成部(再構成部)510から構成されている。
【0015】
パケット格納情報生成部501は、パケット送信元2から受信したパケットごとに、当該パケットのメモリ505に対する格納情報を記録したパケット格納情報(格納情報)を生成するものである。このパケット格納情報生成部501により生成されたパケット格納情報は誤り訂正符号生成部502およびメモリ書き込み部504に出力される。
【0016】
誤り訂正符号生成部502は、パケット格納情報生成部501からのパケット格納情報ごとに、誤り訂正符号を生成するものである。この誤り訂正符号生成部502により生成された誤り訂正符号はメモリ書き込み部504に出力される。
【0017】
メモリ制御部503は、制御装置4からの指示に従い、メモリ書き込み部504およびメモリ読み出し部506に対するメモリ505への読み書きを制御するものである。
【0018】
メモリ書き込み部504は、パケット送信元2から受信したパケットを集積してパケットデータ(集積データ)を作成するとともに、パケット格納情報生成部501および誤り訂正符号生成部502からのデータを対応付けてパケット管理データ(管理データ)を作成し、これらをデータブロックとして、メモリ制御部503による制御に従い、メモリ505に書き込むものである。
【0019】
メモリ505は、メモリ書き込み部504からのデータブロックを格納するためのバースト転送を特徴とするメモリである。なお、メモリ505は、バースト転送を行うことにより、高データ転送レートが得られるため、受信したパケットはメモリ505への書き込みに適するように整形し、読み出し時には整形前のパケットの状態に戻す必要がある。したがって、バースト転送を特徴とするメモリを使用する際には、パケット格納情報が必要となる。
【0020】
メモリ読み出し部506は、メモリ制御部503の制御に従い、メモリ505に格納されたデータブロックを読み出すものである。このメモリ読み出し部506により読み出されたデータブロックのうち、パケット管理データはパケット管理データ一時格納部507に出力され、パケットデータはパケット再構成部510に出力される。
【0021】
パケット管理データ一時格納部507は、メモリ読み出し部506からのパケット管理データを格納するものである。
誤り訂正部508は、パケット管理データ一時格納部507に格納されたパケット管理データに含まれる誤り訂正符号を用いてパケット格納情報の誤りを訂正するものである。
【0022】
パケット再構成制御部509は、パケット管理データ一時格納部507を参照し、パケット再構成部510を制御するものである。
パケット再構成部510は、パケット再構成制御部509の制御に従い、パケット管理データ一時格納部507に格納されたパケット管理データおよびメモリ読み出し部506からのパケットデータに基づいて、パケットを再構成するものである。
【0023】
次に、上記のように構成されたパケットバッファ装置5の動作について説明する。まず、パケットを受信後、メモリ505に書き込むまでの動作について、
図3を参照しながら説明する。
パケットバッファ装置5のパケット書き込み動作では、
図3に示すように、まず、パケット格納情報生成部501は、受信したパケットごとにパケット格納情報を生成し、その結果を誤り訂正符号生成部502およびメモリ書き込み部504に出力する(ステップST31)。ここで、パケット格納情報は、受信したパケットのパケットサイズ情報を格納することを想定しており、
受信したパケットを集積したパケットデータ(集積データ)の先頭を基準位置としたときのパケット格納位置を記録するために用いる。
次いで、誤り訂正符号生成部502は、パケット格納情報生成部501により生成されたパケット格納情報ごとに誤り訂正符号を生成し、メモリ書き込み部504に出力する(ステップST32)。
【0024】
次いで、メモリ書き込み部504は、入力されたデータを基に、パケットデータの作成、パケット管理データの作成、および、データブロックの作成とメモリ505への書き込みという3つの処理を行う(ステップST33)。ここで、パケットデータは、順次入力されるパケットをメモリ505のアクセスに適したサイズとなるまで溜めることで作成する。また、パケット管理データは、パケットデータに格納した全てのパケットに対して、パケット格納情報生成部501からのパケット格納情報と誤り訂正符号生成部502からの誤り訂正符号とを格納することで作成する。また、データブロックは、パケットデータとそれに対応するパケット管理データとを一対にして格納することで作成する。そして、作成完了したデータブロックをメモリ制御部503からの制御に従ってメモリ505に書き込むことで、受信したパケットのメモリ505への格納動作が完了する。
【0025】
ここで、
図4はメモリ505の内部構成例を示す図である。この
図4に示すように、メモリ505には一定サイズのデータブロック11が格納され、データブロック11にはパケット管理データ12およびパケットデータ13が格納されている。
また、
図5はパケット管理データ12の内部構成例を示す図である。この
図5に示すように、パケット管理データ12には、受信したパケットごとに、パケット格納情報14と当該パケット格納情報14の誤り訂正符号15とが格納されている。
さらに、
図6はパケットデータ13の内部構成例を示す図である。この
図6に示すように、パケットデータ13には受信したパケットが格納されている。
【0026】
次に、
図4に示すデータブロック11をメモリ505から読み出し、再びパケットとして再構成して出力するまでの動作について、
図7を参照しながら説明する。
パケットバッファ装置5のパケット読み出し・再構成動作では、
図7に示すように、まず、メモリ読み出し部506は、メモリ制御部503からの制御に従って、メモリ505からデータブロック11を読み出し、データブロック11に含まれているパケット管理データ12をパケット管理データ一時格納部507に出力する(ステップST71)。また、データブロック11に含まれているパケットデータ13をパケット再構成部510に出力する。
ここで、
図8はパケット管理データ一時格納部507の内部構成例を示す図である。この
図8に示すように、パケット管理データ一時格納部507には、パケット管理データ12が格納され、パケット格納情報14に対する誤り訂正処理の状態を記録する処理状態表示部16が設けられている。この処理状態表示部16には、パケット格納情報14ごとの誤り訂正処理の状態を記録できる。なお、処理状態表示部16の初期値では、誤り訂正未完了が記録されている。
【0027】
次いで、誤り訂正部508は、パケット管理データ一時格納部507に入力されるパケット管理データ12に含まれる個々のパケット格納情報14について、誤り訂正符号15を用いて、誤り訂正を行う。そして、処理状態表示部16に誤り訂正完了を書き込む(ステップST72)。
【0028】
また、誤り訂正部508の動作と独立して、パケット再構成制御部509は、処理状態表示部16を監視し、パケット再構成部510の制御を行う(ステップST73)。ここで、処理状態表示部16が誤り訂正完了を示している場合にはパケット再構成部510に対してパケットの再構成を指示し、誤り訂正完了を示していない場合にはパケット再構成の一時停止を指示する。そして、パケット再構成の再開指示は、誤り訂正部508によって誤り訂正が実行され、処理状態表示部16に誤り訂正完了が表示されたとき行う。
次いで、パケット再構成部510は、パケット再構成制御部509の指示に従って、誤り訂正が完了したパケット格納情報およびメモリ読み出し部506からのパケットデータ13に基づいて、パケットを再構成する(ステップST74)。なお、データブロック11が読み出された後のメモリ領域は、新たなデータブロックの書き込みが可能な状態となる。
【0029】
以上のように、この実施の形態1によれば、パケット管理データ12に含まれる個々のパケット格納情報14に誤り訂正符号15を付加するように構成したので、パケットの再構成前にパケット格納情報14の誤り訂正を可能とすることができ、パケット格納情報14が誤ることに起因したパケット廃棄を低減可能なパケットバッファ装置5を構築できる。
【0030】
なお、実施の形態1では、パケット管理データに格納される符号化された出力に、元のデータ(パケット格納情報)がそのまま含まれるような符号化形式を想定して説明を行ったが、元データがそのまま含まれないような符号化形式であってもよい。すなわち、実施の形態1では、
図9に示すように、誤り訂正符号生成部502にてパケット格納情報を基に誤り訂正符号を生成し、パケット格納情報に誤り訂正符号を付加することでパケット管理データを生成している。それに対して、
図10に示すように、誤り訂正符号生成部502にてパケット格納情報を基に誤り訂正符号化後のパケット格納情報を生成し、この誤り訂正符号化後のパケット格納情報を用いてパケット管理データを生成するようにしてもよい。
【0031】
実施の形態2.
図11はこの発明の実施の形態2に係るパケットバッファ装置5の構成を示す図である。
図11に示す実施の形態2に係るパケットバッファ装置5は、
図2に示す実施の形態1に係るパケットバッファ装置5に誤り検出符号生成部511および誤り検出部512を追加したものである。その他の構成は同様であり、同一の符号を付してその説明を省略する。
【0032】
誤り検出符号生成部511は、パケット格納情報生成部501からのパケット格納情報ごとに、誤り検出符号を生成するものである。この誤り検出符号生成部511により生成された誤り検出符号はメモリ書き込み部504に出力される。
なお、メモリ書き込み部504は、パケット管理データを作成する際に、パケット格納情報生成部501および誤り訂正符号生成部502からのデータに加えて、誤り検出符号生成部511からのデータも格納する。
【0033】
誤り検出部512は、誤り検出符号生成部511に格納されたパケット管理データに含まれる誤り検出符号を用いて誤りがあるパケット格納情報を検出するものである。
なお、誤り訂正部508は、誤り検出部512により誤りが検出されたパケット格納情報に対してのみ誤りを訂正する。
【0034】
パケット管理データに格納された個々のパケット格納情報の誤り耐性をさらに強くする場合、誤り訂正能力の高い誤り訂正符号を用いることも可能であるが、誤り訂正に多くの時間を要する。一般に、1ビットの誤り訂正が可能なハミング符号を用い、データ長15ビット、符号化率11/15の場合では、誤り訂正に1クロック要するが、複数ビットの誤り訂正が可能な差集合巡回符号を用い、データ長21ビット、符号化率11/21の場合では、誤り訂正に32クロック要する。一方、誤り検出に要する時間は、例えばパリティビットを用いた1ビットの誤り検出や、ハミング符号を用いた2ビットの誤り検出では、ともに1クロックで済む。
そこで、パケット格納情報に誤り訂正符号だけでなく、誤り検出符号も付加し、誤り訂正を行う前に誤り検出を行う。そして、パケット格納情報に誤りが生じていない場合には誤り訂正を行わず、誤りが生じたパケット格納情報に対してのみ誤り訂正を実施する。これにより、処理遅延を削減できるため、誤り訂正能力の高い誤り訂正符号を用いることが可能となる。
【0035】
なお、受信したパケットをメモリ505に書き込むまでの動作のうち、実施の形態1と異なるのは、誤り検出符号生成部511とメモリ書き込み部504の動作である。
すなわち、誤り検出符号生成部511は、パケット格納情報生成部501により生成されたパケット格納情報ごとに誤り検出符号を生成し、メモリ書き込み部504に出力する。そして、メモリ書き込み部504は、パケット管理データの作成において、パケットデータに格納した全てのパケットについて、パケット格納情報生成部501により生成されたパケット格納情報と、誤り訂正符号生成部502により生成された誤り訂正符号に加えて、誤り検出符号生成部511により生成された誤り検出符号も格納する。
【0036】
図12はパケット管理データ12の内部構成例を示す図である。この
図12に示すように、パケット管理データ12には、受信したパケットごとに、パケット格納情報14と、パケット格納情報の誤り訂正符号15と、パケット格納情報14の誤り検出符号17とが格納されている。
【0037】
次に
図4に示すデータブロック11をメモリ505から読み出し、再びパケットとして再構成して出力するまでの動作を以下に記す。
パケット管理データ12がパケット管理データ一時格納部507に格納されると、誤り検出部512は、パケット格納情報14に対して誤り検出符号17を用いて誤り検出を行い、誤りの有無を処理状態表示部16に表示する。ここで、誤り訂正部508は、誤り検出部512の動作とは独立して処理状態表示部16を監視し、処理状態表示部16に誤り有りと記録されている箇所のパケット格納情報14について誤り訂正符号15を用いて誤り訂正し、処理状態表示部16に誤り訂正完了を記録する。
【0038】
また、誤り検出部512と誤り訂正部508の動作と独立して、パケット再構成制御部509は、処理状態表示部16を参照し、処理状態表示部16が誤り無しまたは誤り訂正完了を示している場合は、パケット再構成部510に対してパケットの再構成を指示する。一方、処理状態表示部16が誤り有りを示している箇所を検出した場合は、パケット再構成部510に対してパケット再構成の一時停止を指示する。そして、パケット再構成の再開指示は、処理状態表示部16に誤り訂正完了と表示されたとき行う。
そして、パケット再構成部510は、パケット再構成制御部509の指示に従って、パケット格納情報14とメモリ読み出し部506からのパケットデータ13に基づいて、パケットを再構成する。
【0039】
以上のように、この実施の形態2によれば、パケット管理データ12に含まれる個々のパケット格納情報14に誤り検出符号17を付加するように構成したので、パケット格納情報14の誤り訂正を行う前に、誤り検出を実施することができる。これにより、パケット管理データ内のパケット格納情報14のうち、誤りの生じたパケット格納情報14にのみ誤り訂正を行うことができ、処理遅延の増加を抑えることができる。したがって、誤り訂正能力の高い誤り訂正符号を用いて、パケット格納情報14の誤り耐性を強くすることが可能となる。
【0040】
なお、実施の形態1,2では、バッファ装置としてパケットバッファ装置5を用いた場合について説明したが、これに限るものではなく、フレームを一時的に蓄えるフレームバッファ装置に対しても同様に適用可能である。
【0041】
また、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。