(57)【特許請求の範囲】
【請求項１】
パケット交換を行う装置を模擬するネットワーク装置におけるパケットを格納するバッファメモリの管理システムであって，
受信パケットを格納するバッファメモリと，
前記バッファメモリへのパケットの書込み及び読み出し制御を行なう制御部と，
前記受信パケットのヘッダ部分に含まれるサービスクラスに対応したパケットの前記書込み及び読み出し制御の方法を設定したサービスクラス特性テーブルと，
前記サービスクラスに対応した前記バッファメモリの割り当て領域を記憶した変換部を有し，
該変換部は，前記バッファメモリの割り当て領域を前記サービスクラス特性テーブルにおけるサービスクラスの設定数に応じて変更する，
ことを特徴とするパケットバッファ管理システム。
【請求項２】
請求項１において，
前記変換部は，バッファメモリの割り当て領域をサービスクラス単位としたことを特徴とするパケットバッファ管理システム。
【請求項３】
請求項１において，
前記バッファメモリに格納されたパケットの格納位置を示す転送ポインタおよびパケットが格納された時間を示すタイムスタンプ値を格納するための管理メモリを有し，
前記制御部により前記バッファメモリ内のパケット存在情報と前記タイムスタンプ値及び，前記サービスクラス特性テーブルに設定された制御方法に基づき受信パケットに対する書込み及び読み出し制御を行う，
ことを特徴とするパケットバッファ管理システム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、ルータ等のパケット交換を行う装置を模擬するネットワーク模擬装置におけるパケットを格納するバッファメモリの管理方法及びこれを用いるネットワーク模擬装置におけるバッファメモリの管理システムに関する。
【０００２】
【従来の技術】
近年のＩＰ(Internet Protocol)ネットワークにおいては、音声または画像というようなリアルタイム性の高いトラフィックが増加しており、これらのトラフィックに関し、ネットワークを構成するルータやスイッチなどパケット交換を行う装置における遅延・パケットロスなどのパケット状態が、エンドユーザにおける通信・通話品質に大きく影響する。
【０００３】
したがって、ネットワークにおけるパケット状態を設定により擬似的に発生し、ネットワーク品質を模擬試験することが要求される。
【０００４】
一方、ネットワークを構成するルータやスイッチなど、パケット交換を行なう装置において、パケットを格納するバッファメモリ(以降、適宜パケットバッファという)が用いられている。かかるパケットバッファは、受信パケットを一時的に蓄積し、所定の規則に従って送出するために用いられる。
【０００５】
したがって、前記のネットワーク品質を模擬試験するための装置においてもパケットバッファを備え、一旦パケットを格納し、設定された処理に従ってパケット転送を行う制御を行なうことが必要となる。このようなパケットバッファの管理により、パケットに対する各種処理が模擬的に実現される。
【０００６】
従来のパケットバッファ管理は、ネットワークから受信したパケットのヘッダ部の識別結果に応じて固定的に領域を割り当てられたパケットバッファに格納して、設定されたパケット特性に応じた転送が実施されていた。（例えば、特許文献１）
【０００７】
【特許文献１】
特許出願２００１−１４３７０２号の図１４参照
かかる出願に記載のパケットバッファを用いたネットワークを構成するルータ相当の装置の構成ブロックを図１７に示し、その動作を説明する。
【０００８】
図中、多重化部１において、複数ｎ個のポートのイーサネットを多重化する。パケット種別識別制御部２は、多重化部１で多重化されたパケットのヘッダ部におけるＩＰアドレス等の識別情報を元に連想メモリ(ＣＡＭ: Content Addressable Memory)３を参照して登録情報と比較する。比較が一致する場合は、ＴＣＰ/ＵＤＰポート番号などによって分類されるサービスクラス（CoS：Class of Service）を識別するＴＡＧ情報をＳＲＡＭ４から読み出し、パケットに付加して出力する。
【０００９】
バッファ管理制御部５は、パケット種別識別制御部２から入力されるＴＡＧ情報の付加されたパケットのパケットバッファメモリ６への書込み及び読出しの管理を行う。パケットポインタ管理メモリ７は、パケットバッファメモリ６のパケットの格納しているアドレス位置を特定するアドレスポインタを管理する。
【００１０】
前記バッファ管理制御部５は、サービスクラス（CoS）特性テーブル８を有し、このサービスクラス特性テーブル８には、識別されたパケットに対して、パケットの遅延、パケットロス、パケット順序逆転若しくは、エラー挿入等の動作制御を施す特性内容が格納されている。
【００１１】
さらに、バッファ管理制御部５は、パケットバッファメモリ６に対するリード／ライト制御を行うパケットリード／ライト制御部９、パケットポインタ管理メモリ７に記憶されているパケットの格納アドレスに基づき、パケットリード／ライト制御部９によるリード/ライトの際のパケットバッファメモリ６アドレスを指定するポインタリード/ライト制御部１０及び、サービスクラス特性テーブル８に設定されているCoS特性に対応して、パケットバッファメモリ６からのパケット出力の制御を行なうパケット出力制御部１１を有している。
【００１２】
多重分離部１２は、多重されたパケットをｎポートに分離する機能を有する。
【００１３】
図１８は、図１７におけるパケットバッファメモリ６の構成を示す図であり、▲１▼出力先物理ポート番号１〜ｎに対し、▲２▼各物理ポートに対するCoSの数（図の例では８種）は固定値である。さらに、▲３▼出力先物理ポートに対するCoS番号が特定され、全物理ポートのCoS領域に割り当てられる各々のメモリ量は均一で固定である。また、▲４▼各CoS領域のスタートアドレス及ぶエンドアドレスは固定値である。
【００１４】
図１８に示すパケットバッファメモリ６の構成となるように、パケットポインタ管理メモリ７にパケットの格納アドレスが記憶されている。従って、パケット種別識別制御部２により識別されたパケットは、パケットポインタ管理メモリ７から読み出され、ポインタリード/ライト制御部１０により指示されるアドレス位置にパケットリード/ライト制御部９により書き込まれ、また読み出される。
【００１５】
【発明が解決しようとする課題】
上記のように図１７に示す従来構成では、パケットバッファメモリ６における格納領域は、図１８に示されるように固定であった。
【００１６】
また、図１７に示される従来の構成におけるポインタリード/ライト制御部１０においては、サービスクラス特性テーブルに従いパケット出力制御に１１による管理ポインタの移動量は常に固定されており、擬似ネットワークにおけるさまざまなパケット動作を可能とするための手段は提供されていなかった。
【００１７】
さらに、図１７、図１８に示す従来のパケットバッファ管理においては、各物理ポートあるいはCoS領域に割り当てられるメモリ領域は固定である。このために、物理ポート数あるいはCoS領域数の使用数が少ない場合には、パケットバッファメモリ６において、全く使用されないメモリ領域が発生することになる。
【００１８】
また、転送パケットに遅延を持たせる場合には、設定可能な最大遅延時間は、物理ポート数あるいはCoS領域数に係わらず固定領域サイズにより決められる値であり、メモリを最大限に利用した遅延時間の設定は不可能であった。
【００１９】
また、従来のバッファ管理方法においては、サービスクラス特性テーブル８の設定に基づく管理ポインタの移動量が常に固定であったため、パケット出力制御部１１によるパケットの転送順序の入替え、任意のパケットを意図的にロスさせるなどの擬似ネットワークを実現するために必要な処理を実装することができなかった。
【００２０】
従って、本発明の目的は、従来のパケットバッファ管理方法に比較して、バッファメモリのハードウェアリソースを最大限に活用することを可能とし、設定された使用物理ポート数あるいはCoS領域数に最適なパケットバッファ管理方法及びシステムを提供することにある。
【００２１】
また、本発明の目的は、様々なパケット動作を比較的簡単なハードウェアにより、高い処理性能で実現することが可能とすることにある。
【００２２】
【課題を解決するための手段】
上記の本発明の課題を達成するバッファメモリ管理方法は、第１の態様として、受信したパケットをバッファメモリに格納し、前記バッファメモリへのパケットの書込み及び、読み出し制御を行うパケット送受信装置における前記バッファメモリの管理方法であって、受信するパケットのヘッダ部分に含まれるサービスクラス単位に、前記制御方法を設定し、受信パケットの格納を行う前記バッファメモリにおける各サービスクラスについての割り当て領域を前記サービスクラスの設定数に応じて変更することを特徴とする。
【００２３】
上記の本発明の課題を達成するバッファメモリ管理方法は、第２の態様として、第１の態様において、前記制御は、パケットに対する遅延、パケットロス、パケット順序逆転若しくは、エラー挿入であり、前記サービスクラスは、前記パケットのヘッダ部分に含まれるＩＰアドレス又は、ＴＣＰ／ＵＤＰポート番号によって分類されることを特徴とする。
【００２４】
上記の本発明の課題を達成するバッファメモリ管理システムの第１の態様は、受信パケットを格納するバッファメモリと、前記バッファメモリへのパケットの書込み及び読み出し制御を行なう制御部と、受信パケットのヘッダ部分に含まれるサービスクラスに対応したパケットの前記制御方法を設定したサービスクラス特性テーブルと、サービスクラスに対応した前記バッファメモリの割り当て領域記憶した変換部を有し、該変換部は、前記バッファメモリの割り当て領域を前記サービスクラス特性テーブルにおけるサービスクラスの設定数に応じて変更することを特徴とする。
【００２５】
上記の本発明の課題を達成するバッファメモリ管理システムの第２の態様は、バッファメモリ管理システムの第１の態様において、前記変換テーブルは、バッファメモリの割り当て領域をサービスクラス単位としたことを特徴とするパケットバッファ管理システム。
【００２６】
上記の本発明の課題を達成するバッファメモリ管理システムの第３の態様は、バッファメモリ管理システムの第１の態様において、前記パケットバッファに格納されたパケットの格納位置を示す転送ポインタおよびパケットが格納された時間を示すタイムスタンプ値を格納するための管理メモリを有し、前記制御部により前記パケットバッファ内のパケット存在情報と前記タイムスタンプ値及び、前記サービスクラス特性テーブルに設定された制御方法に基づき受信パケットに対する制御を行うことを特徴とする。
【００２７】
さらに、上記の本発明の課題を達成するバッファメモリ管理システムの第４の態様は、バッファメモリ管理システムの第３の態様において、前記制御部による動作制御として、前記タイムスタンプ値に基づく転送ポインタの移動により受信パケットの順序逆転およびルータの経路変更を行うことを特徴とする。
【００２８】
また、上記の本発明の課題を達成するバッファメモリ管理システムの第５の態様は、バッファメモリ管理システムの第１の態様において、前記バッファメモリへのパケットの格納動作、パケット登録動作、転送ポインタリード動作、パケット転送解析動作の各動作を並列に処理することを特徴とする。
【００２９】
さらにまた、上記の本発明の課題を達成するバッファメモリ管理システムの第５の態様は、バッファメモリ管理システムの第３の態様において、前記パケットバッファへのパケットの格納時間を前記管理メモリにタイムスタンプとして格納し、パケット転送の解析時に前記タイムスタンプと装置内の基準時間と比較することにより転送可否を判断する手段を有し、設定の遅延時間が経過していない場合に、前記タイムスタンプをサービスクラス単位に設けられるタイムスタンプバッファに格納し、以降の転送解析時には前記タイムスタンプバッファ内のタイムスタンプと基準時間の比較を行うことを特徴とする。
【００３０】
本発明の特徴は、以下に図面に従い説明される実施の形態例から更に明らかになる。
【００３１】
【発明の実施の形態】
以下に本発明の実施の形態例を説明する。
【００３２】
図１は、本発明のバッファ管理方法を適用する、ネットワーク品質を模擬試験する模擬装置の実施の形態例ブロック図である。図１７に示した従来構成との比較において、変換テーブル１３を備えることに特徴を有する。
【００３３】
以下の説明において、ネットワークの物理ポート数を０〜ｎ番目、CoS識別用のＩＰアドレスの個数を０〜Ｎ個、CoS特性の種類を０〜Ｍ個として説明する。
【００３４】
図１において、多重化部１は、複数ｎ個のポートのイーサネットを多重化する。パケット種別識別制御部２は、ＣＡＭ３とＳＲＡＭ４を有し、多重化部１で多重化されたパケットのヘッダ部におけるＩＰアドレス等の識別情報を元に連想メモリ(ＣＡＭ: Content Addressable Memory)３を参照して登録情報と比較する。
【００３５】
比較が一致する場合は、ＴＣＰ/ＵＤＰポート番号などによって分類されるサービスクラス（CoS：Class of Service）を識別するＴＡＧ情報をＳＲＡＭ４から読み出し、パケットに付加して出力する。
【００３６】
ここで、ＣＡＭ３とＳＲＡＭ４のデータ構成を図２に示す。図２Ａに示すＣＡＭ３のデータ構成は、識別対象となる(I)ＩＰアドレスと（II）ポート番号を対応付けて登録されている。
【００３７】
図２Ｂに示すＳＲＡＭ４のデータ構成は、ＣＡＭ３のＩＰアドレスの順に対応して、（I）CoS特性番号、(II)入力物理ポート、（III）出力物理ポート及び、（IV）CoS領域を対応付けれている。（I）CoS特性番号は特性の内容が設定されているサービスクラス特性テーブルの番号、（II）入力物理ポートは入力元物理ポートであり、（III）出力物理ポートは出力物理ポート及び、（IV）CoS領域はパケットバッファメモリ６に割り当てるCoSの領域(容量)を示す組が登録されている。
【００３８】
したがって、パケット種別識別制御部２は多重化部１から入力するパケットのヘッダ部の情報が、ＣＡＭ３に登録されているＩＰアドレス若しくはポート番号と一致するかを判断する。一致する場合は、ＳＲＡＭ４から対応する上記(I)〜（IV）の情報をＴＡＧ情報として出力し、入力された該当のパケットに付加してバッファ管理制御部５に送る。
【００３９】
バッファ管理制御部５は、図１７で説明した従来構成に対し、更に変換テーブル１３を有している。
【００４０】
変換テーブル１３の内容が図３に示される。図２ＢにおけるＳＲＡＭ４に設定された内容から、(III)出力物理ポートに対応して変換テーブル１３に０〜Ｍ個の出力物理ポートが定義され(▲１▼)、これを基準としてパケットバッファメモリ６の領域を割り当て（▲２▼、▲３▼、▲４▼）、０〜Ｍ個のCoS特性番号（▲５▼）との組み合わせが作成されている。パケットバッファメモリ６の領域の割り当てにおいて、CoS領域は、パケットバッファメモリ６のスタートアドレス（▲３▼）とエンドアドレス(▲４▼)▲２▼）に交換されている。
【００４１】
これにより、パケットバッファメモリ６は、図４に示すような構成となる。図４において、▲１▼出力物理ポート番号０〜ｎに対して、▲２▼CoS番号が割り付けられている。図４の例では、ポート１に対してａ個、ポート２に対してｂ個、ポートｎに対してｍ個のCoS数を持つようにしている。ただし、CoSのそれぞれは、識別用の一のＩＰアドレスが対応し、従って、図４において、CoS数の合計（ａ+ｂ+…+ｍ）は、Ｎ以下である。
【００４２】
ここで、ユーザは、次のような設定をネットワーク模擬のために予め設定する。
【００４３】
第１に、どのような特性をパケットに施すかを図５に示すようにサービスクラス特性テーブル８に設定する。０〜Ｍ種のパケット制御動作を有するCoS特性が定義されている。
【００４４】
第２に、先に図２Ａに示したように、ＣＡＭ３に、受信側ポートを基準に、CoS識別のためのＩＰアドレスあるいはＴＣＰ/ＵＤＰポート番号を指定する。
【００４５】
第３に、先に図２Ｂに示したように、ＳＲＡＭ４に、０〜ＮのＩＰアドレス即ち、各CoSに対し、どの特性を施すかを示すCoS特性番号（I）、入力された物理ポート(II)、出力先の物理ポート番号（III）と、更に、どれくらいのパケットバッファメモリ９のバッファ領域[CoS領域]（IV）を確保するかをＳＲＡＭ４に指定する（図２Ｂ、IV参照）。
【００４６】
一方、バッファ管理制御部５側では、先に図３に示したように、変換テーブルに１３において、ＳＲＡＭ４の内容を出力物理ポートを基準に並び替え、パケットバッファメモリ９の割り当てを行う。その際、各CoS領域に対するスタートアドレスとエンドアドレスを決定する。
【００４７】
図６は、変換テーブル１３及びサービスクラス特性テーブル８を除く、図１におけるバッファ管理制御部５の構成を更に詳細に示すものである。
【００４８】
図６において、ポインタリード/ライト制御部１０のパケット数カウンタ３３はパケットバッファメモリ６に格納されているパケット数をCoS単位に示すものである。管理ポインタ保持部３４はCoS単位のパケットポインタ管理メモリ７の管理ポインタ位置を示す。
【００４９】
パケット出力制御部１１の転送制御部３５はパケットバッファメモリ６から読み出されるパケットの転送を制御するシーケンサが実装されている。転送解析部３６はパケット処理に関する設定内容に応じてパケット転送の可否判断を行う。
【００５０】
管理ポインタ移動量算出部３７は、転送解析部３６の転送判断に応じてポインタ移動量の算出を行う。タイムスタンプ保持部３８は、パケット遅延動作を行う際にパケットポインタ管理メモリ７から読み出したタイムスタンプ値を格納するものであり、ポインタスタック部３９は、パケット順序逆転／リルーティング動作を行う際に、後で転送するパケットの管理ポインタ値を一時的に格納するためのものである。
【００５１】
さらに、図６において、パケットリード/ライト制御部９は、パケットバッファアクセス制御部３１を有する。CoS特性がＴＡＧ情報として付与されたパケットがパケット種別識別制御部２から転送されると、パケットバッファアクセス制御部３１によりパケットバッファメモリ６に格納される（処理工程Ｐ１）。
【００５２】
パケットバッファメモリ６に格納された後に、格納されたアドレスを示す転送ポインタが管理メモリアクセス制御部３２を介してタイムスタンプと合わせて、パケットポインタ管理メモリ７に登録される。
【００５３】
パケットバッファメモリ６のCoS単位のパケット格納数は、パケット数カウンタ３３に記録される。このパケット数カウンタ３３の値を基に、管理メモリアクセス制御部３２により、パケット出力制御部１１の転送解析部３６に対して転送可能なパケットがパケットバッファメモリ６に存在していることが通知される。
【００５４】
さらに、この転送可能なパケットの存在通知と設定されたCoS特性に応じて、パケット転送の可・不可および管理ポインタ保持部３４に保持される管理ポインタの移動方向及び移動量が、転送解析部３６により決定される。
【００５５】
この解析結果により、パケットバッファメモリ６内のパケット転送制御およびパケットポインタ管理メモリ７に対する管理ポインタの動作制御が実施される。このような動作により各種パケット動作制御が実現されることになる。
【００５６】
なお、パケットバッファメモリ６に格納される各パケットとパケットポインタ管理メモリ７の対応関係が、図７に示される。図７に示されるように、パケットポインタ管理メモリ７の管理ポインタで特定される各エントリ（タイムスタンプ＃と転送ポインタ＃が示される）と、パケットバッファメモリ６内の各パケットが１対１に関係付けられている。
【００５７】
上記の構成によるパケット動作制御の概要を以下に説明する。
【００５８】
図１に戻り、説明すると、０〜ｎポートのネットワークから入力されるパケットは、多重化部１で多重化される。多重化されたパケットは、パケット識別制御部２へ送られる。
【００５９】
パケット識別制御部２では、受信したパケットのヘッダからＩＰアドレスあるいはＴＣＰ/ＵＤＰポート番号などを抽出し、ＣＡＭ３により予め設定されたＩＰアドレスあるいはＴＣＰ/ＵＤＰポート番号と一致するかを検索し、現在受信中のパケットがCoS対象パケットか否かを判断する。
【００６０】
ＣＡＭ３により予め設定されたＩＰアドレスあるいはＴＣＰ/ＵＤＰポート番号と一致した場合、それに対応したＳＲＡＭ４の情報(図２Ｂ参照)を読み出す。読み出された情報は、ＴＡＧ情報としてパケットの先頭に付加し、バッファ管理制御部５に渡される。
【００６１】
ここで、変換テーブル１３において、先に説明したように、図２Ｂに示すＳＲＡＭ４の内容が、出力物理ポートを基準として、CoS番号、スタート及びエンドアドレスで特定されるパケットバッファメモリ６の格納領域、CoS特性番号の順に変換されている。
【００６２】
バッファ管理制御部５では、受信したパケットに対し、パケットリード／ライト制御部９によりＴＡＧ情報及び変換テーブル１３を参照してパケットバッファメモリ６への書き込みアドレスを生成し、パケットバッファメモリ６への書込みの制御を行う。
【００６３】
書込みが完了すると、ポインタリード／ライト制御部１０にパケットポインタ管理メモリ７への登録要求と共に、パケットの先頭アドレスを渡す。ポインタリード／ライト制御部１０は、登録要求を受け付けると、パケットポインタ管理メモリ７へパケットの先頭アドレスの書込みを行う。
【００６４】
パケット出力制御部１１では、変換テーブル１３の内容に応じて、各CoSに設定された特性を実行するため、パケットバッファメモリ６に格納されているパケットの何れの領域のパケットを読み出すか、その順番、時間などの管理を行い、読み出すべきCoSに対して、ポインタリード／ライト制御部１０に読み出し要求を行う。
【００６５】
ポインタリード／ライト制御部１０では、パケットポインタ管理メモリ７から、読み出し要求されたCoSの転送ポインタを読み出し、パケットリード／ライト制御部９に対してパケットの読み出し要求と共にパケットの転送ポインタ(先頭アドレス)を渡す。
【００６６】
パケットリード／ライト制御部９では、受け取ったパケットバッファメモリ６の転送ポインタからパケットを読み出し、読み出されたパケットを多重分離部１２に送る。ついで、多重分離部１２において、パケットは、各出力ポートに分離され、０〜ｎポートのネットワークに出力される。
【００６７】
ここで、バッファ管理制御部５の詳細な動作について、図８のバッファ管理制御部５の動作シーケンスに基づき、更に図６のバッファ管理制御部５の構成図を参照しながら説明する。
【００６８】
パケットリード/ライト制御部９によりパケットバッファメモリ６へのパケット格納を制御する（処理工程Ｐ１）と、転送ポインタ登録要求をポインタリード/ライト制御部１０に送る（処理工程Ｐ２）。
【００６９】
この登録要求に従い転送ポインタがパケットポインタ管理メモリ７に登録され（処理工程Ｐ３）、転送ポインタ登録応答がパケットリード/ライト制御部９に返送される（処理工程Ｐ４）。
【００７０】
ここで、複数のCoS領域に転送ポインタ登録がある場合には、ラウンドロビン（round robin）により転送解析対象パケットが決定される。その後、パケット存在通知がパケット出力制御部１１の転送解析部３６の送られる（処理工程Ｐ６）。このときパケット存在通知には、CoS番号が含まれているので、ポインタスタック部３９にCoSごとに転送ポインタが登録される。
【００７１】
パケット存在通知を受けると、パケット出力制御部１１からタイムスタンプ通知要求が送られる（処理工程Ｐ７）。ポインタリード/ライト制御部１０は、タイムスタンプ通知要求を受けると、パケットポインタ管理メモリ７から図７に示したように転送ポインタと対で登録されている対応のタイムスタンプを読み出し（処理工程Ｐ８）、パケット出力制御部１１に送る（処理工程Ｐ９）。送られたタイムスタンプは、先に送られたパケット存在通知に付加されているCoS番号と共にタイムスタンプ保持部３８に保持される。
【００７２】
パケット出力制御部１１の転送解析部３６において、転送解析を行う（処理工程Ｐ１０）。この転送解析部３６における転送解析は、該当パケットのCoS特性およびタイムスタンプ値を元に、転送可／不可やエラー挿入などのパケット加工有無が判断される。
【００７３】
転送解析の結果として転送不可の場合は、パケット遅延制御において、装置内時刻とタイムスタンプとの遅延量が所定の遅延制御量に満たない場合である。
【００７４】
転送不可の場合、ポインタリード/ライト制御部１０に転送不可通知が送られる（処理工程Ｐ１１）。他の時刻における転送解析（処理工程Ｐ１２）の結果として、転送可のパケットについては、ポインタリード／ライト制御部１０へ管理ポインタ操作指示が送られ（処理工程Ｐ１３）、パケットリード／ライト制御部９へ転送開始指示が発行される（処理工程Ｐ１４）。これに基づき、パケットリード／ライト制御部９によりパケットバッファメモリ６からパケットを読み出し、パケット出力制御部１１のパケット転送される（処理工程Ｐ１５）。
【００７５】
なお、図８における処理は、図９に示すように並列に処理される。このため、装置内部バスの帯域が効率的に使用可能であり、ネットワークから高負荷のパケットが入力された場合においても、充分な性能が確保される。
【００７６】
次に、本発明による具体的な実施例を説明する。本発明における実施例として、図１０にパケット識別制御部２の詳細ブロック図を、図１１にＣＡＭ３(図１１Ａ)およびＳＲＡＭ４(図１１Ｂ)のデータ内容、図１２にパケットバッファメモリ６の割り当て構成、図１３にサービスクラス特性テーブル８及び、図１４に変換テーブル１３の内容をそれぞれ示す。
【００７７】
ここで、以下に説明する具体例では、物理ポート数を８本（０〜７）、CoS識別数を最大３２個、CoS特性数を最大３２個としている。
【００７８】
図１１に示す如く、最大３２個のCoS識別数に対し、１８個のCoS識別を行おうとする実施例である。全部で１６種類（CoS特性番号０〜１５）のCoS特性を割り当てている。使用しないＳＲＡＭ４の領域(図１１Ｂ)には、ＥＮビットに‘０’を設定することでこれを判断できるようにしている。
【００７９】
また、入力物理ポート番号３に対しては、全てCoS特性番号７を割り当てている。このように、図１１に示す例では、複数のＩＰアドレス及びＴＣＰ/ＵＤＰポート番号(図１１Ａ)に対し、同じCoS特性を施している。
【００８０】
パケットバッファメモリ６に関しては、図１２Ａに示す如く、パケットバッファメモリ６の割り当てを３２個の固定領域としてあらかじめ分割している。さらに、それを最小のCoS領域とし、ＳＲＡＭ４のCoS領域を数値的に割り当て易いようにしている。
【００８１】
この時、各最小CoS領域（CoSユニット）に、おのおのスタートアドレスとエンドアドレスを図１２Ａに示すようにスタートアドレスとエンドアドレスにより一意的に割り当てることで、ユーザーの指定したCoS領域とパケットバッファメモリ６のアドレスとを一意的に割り当てることが可能となる。
【００８２】
本実施例において、割り当てられたパケットバッファメモリ６の構成は図１２Ｂのとおりとなる。
【００８３】
例えば、図１１ＡのＣＡＭ３のアドレス６（ＩＰアドレス７、ポート番号７）と一致するパケットを考える。図１１ＢのＳＲＡＭ４のデータ内容及び、図１３のサービスクラス特性テーブル８の内容より、物理ポート番号１から入力されたパケットのＩＰアドレス及びＴＣＰ/ＵＤＰポート番号が、それぞれ「ＩＰアドレス７」、「ポート番号７」であれば、CoS特性番号６即ち、エラー発生率４０％のエラー挿入と３００msの遅延挿入を同時に実施することになる。
【００８４】
また、パケットバッファメモリ６には、3800000h〜3CFFFFFhの領域を割り当てている（図１２参照：ポート番号７で、CoS領域が３である）。
【００８５】
本実施例のように、大きな遅延時間を施すパケットに対しては、割り当て領域を広く確保することで、遅延時間を自由に設定することが可能となる。
【００８６】
かかる実施例動作を以下に説明する。
【００８７】
図１０におけるパケット識別制御部２の詳細ブロック図中、CPU IF部２１は図示しないＣＰＵとのインタフェース機能を持つ。パケット転送制御部２２はパケットの入出力、及び各タイミングを生成する。ヘッダ抽出部２３は入力されたパケットからＩＰアドレスあるいはＴＣＰ/ＵＤＰポート番号を抽出する。マスク部２４は、ＩＰアドレス及びＴＣＰ/ＵＤＰポート番号のマスクを実施する。ＣＡＭ３は３２word×２８８bitの大きさを有する。ＳＲＡＭ４は３２word×２１bitの大きさを有する。ＴＡＧラッチ制御部２５はＴＡＧ情報を生成し、ＴＡＧラッチ回路２６に送る。セレクタ２７はＴＡＧを出力するか、入力したパケットを出力するかを選択する回路である。
【００８８】
このような構成のパケット識別制御部２では、入力されたパケットデータからＩＰアドレス抽出部２３でＩＰアドレスを抽出し、マスク部２４でマスク処理を施し、ＴＣＰ/ＵＤＰポート番号などと合わせてＣＡＭ３に入力する。
【００８９】
ここで、マスク処理とはＩＰアドレスの範囲特定のためにフィルタをかけるための処理である。本実施例では、ＣＰＵから設定された内容に応じて、指定されたビットを‘１’とすることで実現する。
【００９０】
この時、ＣＡＭ３に対しても同じようにマスクするビットを‘１’として設定しておく必要がある。ＩＰアドレスのマスク同様、ＴＣＰ/ＵＤＰポート番号に対しても、ＣＡＭ３にall‘１’を設定しておき、ＴＣＰ/ＵＤＰポート番号の検索を行わない場合にはポート番号をall‘１’にマスクしてＣＡＭ３に入力する。これによりＩＰアドレスのみの一致検出、ＩＰアドレスとＴＣＰ/ＵＤＰポート番号の両方の一致検出、及びＴＣＰ/ＵＤＰポート番号のみの一致検出が可能となる。
【００９１】
ＣＡＭ３において検索した結果を元に、一致したＩＰアドレス及びＴＣＰ/ＵＤＰポート番号が存在すれば、対応するＳＲＡＭ４のデータを読み出す。  読み出しデータにおいて設定されている入力物理ポートが今現在受信中のパケットの入力物理ポートと一致し、更にＥＮビットが‘１’であれば、これをパケット識別の対象パケットとしてＴＡＧを生成し、パケットの先頭に付加してバッファ管理制御部５へ渡す。
【００９２】
ＴＡＧの中には入力物理ポート、出力物理ポート、及びＥＮ情報などを挿入し、バッファ管理制御部５においてパケットバッファメモリ６の書込みアドレス生成に使用される。
【００９３】
ここで、パケット動作制御の実施例として図１５にはパケット遅延を発生させる場合の処理フローを、図１６にはパケット順序逆転／リルーティングを発生させる場合の処理フローを示す。
【００９４】
図１５に示すように、図６及び、図８のシーケンスフロー（処理工程Ｐ１０、Ｐ１２参照）により説明したように遅延対象パケットが識別された場合（処理工程Ｐ２０）は、１回目の解析であるか否かを判断する（処理工程Ｐ２１）。１回目の解析である場合（処理工程Ｐ２１、Ｙｅｓ）パケットポインタ管理メモリ７からタイムスタンプ値を読み出し（処理工程Ｐ２２）、１回目の解析でない場合（処理工程Ｐ２１、Ｎｏ）タイムスタンプ保持部３８からタイムスタンプ値を読み出す（処理工程Ｐ２３）。
【００９５】
読み出されたタイムスタンプ値は、装置内基準時間と比較し、設定された遅延時間が経過しているかを判断する（処理工程Ｐ２４）。
【００９６】
遅延時間が経過している場合には、管理ポインタ移動量算出部３７で管理ポインタ保持部３４の管理ポインタ値を１つ増加する（処理工程Ｐ２５）。これにより、次パケットの転送解析へと移行する（処理工程Ｐ２６）。
【００９７】
遅延時間が経過していない場合には、パケットポインタ管理メモリ７から読み出されたタイムスタンプ値をタイムスタンプ保持部３８(図６参照)へ格納する。次の転送解析時には、タイムスタンプ保持部３８の値が基準時間と比較される。このことにより、パケットポインタ管理メモリ７へのアクセス負荷が軽減されることになり、性能向上が図れる。
【００９８】
さらに、図１６にはパケット順序逆転またはリルーティング時の動作フローが示される。図１６において、パケット種別識別制御部２により識別されるCoS特性番号に対応する動作制御の内容がサービスクラス特性テーブル８を参照して求められる。したがって、求められた動作制御が順序入れ替えであるパケットが識別されると（処理工程Ｐ３０）、転送解析部３６(図６参照)でパケットバッファメモリ６に受信格納されたパケット数が順序入れ替えパケット数以上であるか否かが判断される（処理工程Ｐ３１）。
【００９９】
受信格納されたパケット数が順序入れ替えパケット数以上である（処理工程Ｐ１、Ｙｅｓ）と、ポインタ移動量３７により管理ポインタ保持部３４にパケット入れ替え個数ｎ分のポインタ移動量を通知し、管理ポインタ値をｎ加算させる（処理工程Ｐ３２）。
対で、転送制御部３５によりパケット転送が行なわれ（処理工程Ｐ３３）、パケット入れ替え個数ｎ分のパケットの転送が完了すると（処理工程Ｐ３４、Ｙｅｓ）、管理ポインタ保持部４における管理ポインタ値をｎ×２分元に戻すよ減算する（処理工程Ｐ３５）。
【０１００】
次いで、順序入れ替えにより転送が後になったｎ個分のパケットを転送する（処理工程Ｐ３６）。ｎ個分のパケット転送が終わると（処理工程Ｐ３７、Ｙｅｓ）、管理ポインタ保持部４の管理ポインタ値をｎ加算して、以降通常転送に移行する（処理工程Ｐ３８）。
【０１０１】
このように、管理ポインタの加減算を行うことにより、受信順序とは異なる順序でパケットが転送されることになる。なお、この管理ポインタの加減算処理については、管理ポインタ保持部３４において簡単なハードウェアにより実現が可能であるため、高速な転送制御が可能となる。
【０１０２】
(付記１)
受信したパケットをバッファメモリに格納し、前記バッファメモリへのパケットの書込み及び、読み出し制御を行うパケット送受信装置における前記バッファメモリの管理方法であって、
受信するパケットのヘッダ部分に含まれるサービスクラス単位に、前記制御方法を設定し、
受信パケットの格納を行う前記バッファメモリにおける各サービスクラスについての割り当て領域を前記サービスクラスの設定数に応じて変更する
ことを特徴とするバッファメモリ管理方法。
【０１０３】
(付記２)付記１において、
前記制御は、パケットに対する遅延、パケットロス、パケット順序逆転若しくは、エラー挿入であり、前記サービスクラスは、前記パケットのヘッダ部分に含まれるＩＰアドレス又は、ＴＣＰ／ＵＤＰポート番号によって分類されることを特徴とするバッファメモリ管理方法。
【０１０４】
(付記３)
受信パケットを格納するバッファメモリと、
前記バッファメモリへのパケットの書込み及び読み出し制御を行なう制御部と、
受信パケットのヘッダ部分に含まれるサービスクラスに対応したパケットの前記制御方法を設定したサービスクラス特性テーブルと、
サービスクラスに対応した前記バッファメモリの割り当て領域記憶した変換部を有し、
該変換部は、前記バッファメモリの割り当て領域を前記サービスクラス特性テーブルにおけるサービスクラスの設定数に応じて変更する
ことを特徴とするパケットバッファ管理システム。
【０１０５】
(付記４)付記３において、
前記変換テーブルは、バッファメモリの割り当て領域をサービスクラス単位としたことを特徴とするパケットバッファ管理システム。
【０１０６】
(付記５)付記３において、
前記パケットバッファに格納されたパケットの格納位置を示す転送ポインタおよびパケットが格納された時間を示すタイムスタンプ値を格納するための管理メモリを有し、
前記制御部により前記パケットバッファ内のパケット存在情報と前記タイムスタンプ値及び、前記サービスクラス特性テーブルに設定された制御方法に基づき受信パケットに対する制御を行うことを特徴とするパケットバッファ管理システム。
【０１０７】
(付記６)付記５において、
前記制御部による制御方法として、前記タイムスタンプ値に基づく転送ポインタの移動により受信パケットの順序逆転およびルータの経路変更を行うことを特徴とするパケットバッファ管理システム。
【０１０８】
(付記７)付記３において、
前記バッファメモリへのパケットの格納動作、パケット登録動作、転送ポインタリード動作、パケット転送解析動作の各動作を並列に処理することを特徴とするパケットバッファ管理システム。
【０１０９】
(付記８)付記５において、
前記パケットバッファへのパケットの格納時間を前記管理メモリにタイムスタンプとして格納し、パケット転送の解析時に前記タイムスタンプと装置内の基準時間と比較することにより転送可否を判断する手段を有し、
設定の遅延時間が経過していない場合に、前記タイムスタンプをサービスクラス単位に設けられるタイムスタンプバッファに格納し、以降の転送解析時には前記タイムスタンプバッファ内のタイムスタンプと基準時間の比較を行うことを特徴とするパケットバッファ管理システム。
【０１１０】
【発明の効果】
以上、図面に従い説明したように、本発明によれば、以下のような効果が期待できる。
１．サービスクラス（CoS）の各領域を割り当てる際、その範囲を個別に且つ自由に設定できる。例えば大きい遅延時間を施すパケットに対しては広い領域を割り当てるなど、特性の内容に応じてパケットバッファの物理容量を最大限利用できる。
２．サービスクラス（CoS）識別の数を全体でN個とし、物理ポート数や特性の種類に限定されない。
３．１種類のサービスクラス（CoS）特性に対して、複数のCoS識別用IPアドレスを割り当てられる。
４．擬似ネットワークで実現するパケットの動作制御を簡単な算術演算にて並列動作させることが可能であり、比較的簡単なハードウェア回路により、高性能なパケット動作制御が可能となる。
【０１１１】
上記のように、本発明によれば、広帯域ネットワークにおけるパケットの複雑な動作を、比較的簡単なハードウェア構成により高い処理性能で実現することが可能となり、またユーザーの要望に応じて柔軟にパケット操作の内容を設定／実現することも可能となるため、エンドユーザにおける通信・通話品質の検証／確保、およびIPネットワークの品質向上に寄与するところが大きい。
【図面の簡単な説明】
【図１】本発明のバッファ管理方法を適用する、ネットワーク品質を模擬試験する模擬装置の実施の形態例ブロック図である。
【図２】ＣＡＭおよびＳＲＡＭのデータ構成を示す図である。
【図３】変換テーブル１３の内容を示す図である。
【図４】パケットバッファメモリ６の構成を示す図である。
【図５】サービスクラス特性テーブルの設定の一例を示す図である。
【図６】変換テーブル１３及びサービスクラス特性テーブル８を除く、図１におけるバッファ管理制御部５の構成を更に詳細に示す図である。
【図７】パケットバッファメモリ６に格納される各パケットとパケットポインタ管理メモリ７の対応関係を示す図である。
【図８】バッファ管理制御部５の動作シーケンスを示す図である。
【図９】図８における並列処理を説明する図である。
【図１０】パケット識別制御部２の詳細ブロック図である。
【図１１】ＣＡＭ３(図１１Ａ)及びＳＲＡＭ４(図１１Ｂ)のデータ内容を示す図である。
【図１２】パケットバッファメモリ６の割り当て構成を示す図である。
【図１３】サービスクラス特性テーブル８の内容を示す図である。
【図１４】変換テーブル１３の内容を示す図である。
【図１５】パケット動作制御の実施例としてパケット遅延を発生させる場合の処理フローを示す図である。
【図１６】パケット動作制御の実施例としてパケット順序逆転／リルーティングを発生させる場合の処理フローを示す図である。
【図１７】パケットバッファを用いたネットワークを構成するルータ相当の装置の構成ブロックを示す図である。
【図１８】図１７におけるパケットバッファメモリ６の構成を示す図である。
【符号の説明】
１  多重化部
２  パケット種別識別制御部
３  ＣＡＭ
４  ＳＲＡＭ
５  バッファ管理制御部
６  パケットバッファメモリ
７  パケットポインタ管理メモリ
８  サービスクラス特性テーブル
９  パケットリード/ライト制御部
１０  ポインタリード/ライト制御部
１１  パケット出力制御部
１２  多重分離部
１３  変換テーブル
【図１】
0004004389.tif 000002
【図２】
0004004389.tif 000003
【図３】
0004004389.tif 000004
【図４】
0004004389.tif 000005
【図５】
0004004389.tif 000006
【図６】
0004004389.tif 000007
【図７】
0004004389.tif 000008
【図８】
0004004389.tif 000009
【図９】
0004004389.tif 000010
【図１０】
0004004389.tif 000011
【図１１】
0004004389.tif 000012
【図１２】
0004004389.tif 000013
【図１３】
0004004389.tif 000014
【図１４】
0004004389.tif 000015
【図１５】
0004004389.tif 000016
【図１６】
0004004389.tif 000017
【図１７】
0004004389.tif 000018
【図１８】
0004004389.tif 000019