(57)【要約】【課題】さまざまなポリシーに従うパケットのフローが混在して流れても、それぞれのポリシーを尊重したパケット伝送を行える、パケット伝送装置を提供する。【解決手段】パケット受信部２が受信したパケットを廃棄すべきか否か判定する廃棄判定部２１と、キュー５〜８から出力されたパケットを外部へ送信するパケット送信部４と、パケットのフローを定義する情報と、このフローに属するパケットの優先度に関する情報とを、関連付けて保持するフロー管理テーブル１２と、特定のポリシーに従い、フローに属するパケットの優先度を、通信リソースの使用状況を反映して動的に決定する品質決定部１４、１６、１８、１９と、パケットの優先度情報を、フロー管理テーブルに保持された情報のまま、静的に決定するか、品質決定部により動的に決定するかという、静的／動的判定を行うモード判定部１３とを備えるパケット伝送装置。【選択図】　図２
2004032602.tif 000002
【特許請求の範囲】
【請求項１】
外部からパケットを受信するパケット受信部と、
受信したパケットを廃棄すべきか否か判定する廃棄判定部と、
前記廃棄判定部により廃棄しないと判定されたパケットが順次挿入されるキューと、
前記キューから出力されたパケットを外部へ送信するパケット送信部と、
パケットのフローを定義する情報と、このフローに属するパケットの優先度に関する情報とを、関連付けて保持するフロー管理情報記憶部と、
特定のポリシーに従い、フローに属するパケットの優先度を、動的に決定する品質決定部と、
受信したパケットの優先度に関する情報を、前記フロー管理情報記憶部に保持された情報のまま、静的に決定すべきか、あるいは、前記品質決定部により、動的に決定すべきかという、静的／動的判定を行うモード判定部とを備えるパケット伝送装置。
【請求項２】
前記フロー管理情報記憶部の、フローに属するパケットの優先度に関する情報は、静的／動的判定の根拠となるように構成されている、請求項１記載のパケット伝送装置。
【請求項３】
前記フロー管理情報記憶部の、フローに属するパケットの優先度に関する情報は、動的に決定すべきことを示す際、無効な優先度を示す、請求項１から２記載のパケット伝送装置。
【請求項４】
前記キューと前記品質決定部とは、一対一に対応するペアとして設けられ、しかも、このペアは、必要となるポリシーの数だけ複数設けられている、請求項１から３記載のパケット伝送装置。
【請求項５】
優先度は、該当するキューの空き容量に対する閾値であり、前記廃棄判定部は、該当するキューに関する、この閾値と空き容量とに基づいて、受信したパケットを廃棄すべきか否か判定する、請求項１から４記載のパケット伝送装置。
【請求項６】
前記品質決定部は、該当するフローの累積使用量を参照して、優先度を動的に決定する、請求項１から５記載のパケット伝送装置。
【請求項７】
前記品質決定部は、該当するフローの継続時間を参照して、優先度を動的に決定する、請求項１から５記載のパケット伝送装置。
【請求項８】
前記品質決定部は、乱数を利用して、優先度を動的に決定する、請求項１から５記載のパケット伝送装置。
【請求項９】
前記品質決定部は、アクティブフロー数を参照して、優先度を動的に決定する、請求項１から５記載のパケット伝送装置。
【請求項１０】
パケットのフローを定義する情報と、このフローに属するパケットの優先度に関する情報とを、関連付けて保持するステップと、
外部からパケットを受信するステップと、
受信したパケットの優先度を、保持された情報のまま、静的に決定すべきか、あるいは、動的に決定すべきかという、静的／動的判定を行うステップと、
動的に決定すべきと判定された際、特定のポリシーに従い、フローに属するパケットの優先度を、動的に決定するステップと、
静的に決定すべきと判定された際、フローに属するパケットの優先度を、保持された情報のままとするステップと、
受信したパケットを廃棄すべきか否か判定するステップと、
廃棄しないと判定されたパケットを順次キューに挿入するステップと、
キューから出力されたパケットを外部へ送信するステップとを含む、パケット伝送方法。
【請求項１１】
受信したパケットの優先度に関する情報に基づいて、受信したパケットの優先度を、保持された情報のまま、静的に決定すべきか、あるいは、動的に決定すべきかという、静的／動的判定を行う、請求項１０記載のパケット伝送方法。
【請求項１２】
フローに属するパケットの優先度に関する情報は、動的に決定すべきことを示す際、無効な優先度を示す、請求項１０から１１記載のパケット伝送方法。
【請求項１３】
フローに属するパケットの優先度は、キューと一対一に対応して決定され、しかも、キューは、必要となるポリシーの数だけ複数存在する、請求項１０から１２記載のパケット伝送方法。
【請求項１４】
優先度は、該当するキューの空き容量に対する閾値であり、該当するキューに関する、この閾値と空き容量とに基づいて、受信したパケットを廃棄すべきか否か判定する、請求項１０から１３記載のパケット伝送方法。
【請求項１５】
フローに属するパケットの優先度は、該当するフローの累積使用量を参照して、動的に決定される、請求項１０から１４記載のパケット伝送方法。
【請求項１６】
フローに属するパケットの優先度は、該当するフローの継続時間を参照して、動的に決定される、請求項１０から１４記載のパケット伝送方法。
【請求項１７】
フローに属するパケットの優先度は、乱数を利用して、動的に決定される、請求項１０から１４記載のパケット伝送方法。
【請求項１８】
前記品質決定部は、アクティブフロー数を参照して、優先度を動的に決定する、請求項１０から１４記載のパケット伝送方法。
【請求項１９】
ポリシーが共通のフローを、サービス品質集合にまとめて取り扱うパケット伝送方法であって、
このサービス品質集合に特有のポリシーにかなう、アルゴリズムを定義するステップと、
このサービス品質集合に属するフローのパケットについて、定義されたアルゴリズムに従って、通信リソースの使用状況を反映し、優先度を動的に決定するステップと、
決定された優先度に従って、このサービス品質集合に属するフローのパケットを送信するステップとを含む、パケット伝送方法。
【請求項２０】
それぞれポリシーが異なる複数のサービス品質集合に属する、複数のフローが、共通の伝送路を混在する状態で経由し、かつ、サービス品質集合毎に、互いに独立して取り扱われる請求項１９記載のパケット伝送方法。
【請求項２１】
使用するキューが共通するサービス品質集合は、共通リソース集合として、まとめて取り扱われる、請求項１９から２０記載のパケット伝送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キューを用いてパケットを伝送するパケット伝送装置及びその方法に関するものである。
【０００２】
【従来の技術】
このようなパケット伝送装置は、ルータ、スイッチあるいはそれらの主要な機能をはたすボードなど、様々な形態を持つ。そして、この種のパケット伝送装置において使用され、かつ、優先度クラスごとに帯域制御を行うスケジューリング方式としては、ＷＦＱ（Ｗｅｉｇｈｔｅｄ　Ｆａｉｒ　Ｑｕｅｕｉｎｇ）が最も一般的である。この方式では、優先度クラス数分のキューを用意し、各優先度クラスに設定された重みに従ってパケットを送信することにより、帯域保証を行う。
【０００３】
【従来の技術】
このような技術分野における、文献１として、「Ｍａｎｏｌｉｓ　Ｋａｔｅｖｅｎｉｓ，　”Ｗｅｉｇｈｔｅｄ　Ｒｏｕｎｄ　Ｒｏｂｉｎ　Ｃｅｌｌ　Ｍｕｌｔｉｐｌｅｘｉｎｇ　ｉｎ　ａ　Ｇｅｎｅｒａｌ−Ｐｕｒｐｏｓｅ　ＡＴＭ　Ｓｗｉｔｃｈ　Ｃｈｉｐ”，　ＩＥＥＥ　Ｊｏｕｒｎａｌ　ｏｎ　ｓｅｌｅｃｔｅｄ　ａｒｅａｓ　ｉｎ　ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，　Ｖｏｌ．９　Ｎｏ．８　Ｏｃｔｏｂｅｒ　１９９１”」を挙げることができる。そして、この文献に記載のＷＲＲ（Ｗｅｉｇｈｔｅｄ　Ｒｏｕｎｄ　Ｒｏｂｉｎ）スケジューラでは、複数のパケット格納キューから設定した値に従ってパケットを送信することにより、回線帯域を分配している。
【０００４】
また、文献２「Ｆｌｏｙｄ，　Ｓ．，　ａｎｄ　Ｊａｃｏｂｓｏｎ，　Ｖ．，Ｒａｎｄｏｍ　Ｅａｒｌｙ　Ｄｅｔｅｃｔｉｏｎ　ｇａｔｅｗａｙｓ　ｆｏｒＣｏｎｇｅｓｔｉｏｎ　Ａｖｏｉｄａｎｃｅ　Ｖ．１　Ｎ．４，　Ａｕｇｕｓｔ　１９９３，　ｐ．　３９７−４１３．”」には、１個のパケットキューにおいて、パケットの蓄積量に基づき確率的に到着パケットを廃棄することで、１キュー内のフローの帯域公平性を実現する、ＲＥＤ（Ｒａｎｄｏｍ　Ｅａｒｌｙ　Ｄｅｔｅｃｔｉｏｎ）技術が開示されている。
【０００５】
そして、さらに進んだ文献３として、「ｈｔｔｐ：／／ｗｗｗ．ｃｉｓｃｏ．ｃｏｍ／ｕｎｉｖｅｒｃｄ／ｃｃ／ｔｄ／ｄｏｃ／ｐｒｏｄｕｃｔ／ｓｏｆｔｗａｒｅ／ｉｏｓ１２１／１２１ｃｇｃｒ／ｑｏｓ＿ｃ／ｑｃｄｉｎｔｒｏ．ｈｔｍ＃ｘｔｏｃｉｄ１９９６９」がある。この文献では、このＲＥＤ技術に優先度を導入した、ＷＲＥＤ（Ｗｅｉｇｈｔｅｄ　ＲＥＤ）とＷＦＱとを組み合わせる、技術が開示されている。
【０００６】
そして、この技術では、各キューに対して帯域を分配すると同時に、１キュー内の複数フローに対して、優先度に基づくパケット廃棄処理を行う。この技術を使用すると、パケットのフローを分類するためのトラフィッククラスに基づく帯域分配だけでなく、クラス内の各フローに対して優先制御できる。
【０００７】
しかしながら、文献３は、優先度が常に予め静的に設定されていることを、前提としているので、トラフィックの状況に応じて、動的にパケットのフローの優先制御することはできない。
【０００８】
また、文献４：特開２００１−１４４８０３号公報には、予め複数の品質クラスを定義しておき、ユーザの利用時間に応じて、品質クラスを再設定する技術が開示されている。ところが、これにおいても、品質クラスは、同じ次元のポリシーにおけるランク分けをし、このランクを変更するに過ぎないから、次元の異なる複数のポリシーに従う、パケットのフローが、同じ伝送路を混在して流れるような場合には、十分な対応をとることができない。
【０００９】
【発明が解決しようとする課題】
一方、ネットワーク環境が広く普及するに伴い、異なるポリシーに従う、パケットのフローが同じ伝送路を混在して流れる事態は、今後益々増加するものと予想される。
【００１０】
そこで本発明は、さまざまなポリシーに従うパケットのフローが混在して流れても、それぞれのポリシーを尊重したパケット伝送を行える、パケット伝送装置及びその方法を提供することを、目的とする。
【００１１】
【課題を解決するための手段】
請求項１記載のパケット伝送装置では、外部からパケットを受信するパケット受信部と、受信したパケットを廃棄すべきか否か判定する廃棄判定部と、廃棄判定部により廃棄しないと判定されたパケットが順次挿入されるキューと、キューから出力されたパケットを外部へ送信するパケット送信部と、パケットのフローを定義する情報と、このフローに属するパケットの優先度に関する情報とを、関連付けて保持するフロー管理情報記憶部と、特定のポリシーに従い、フローに属するパケットの優先度を、通信リソースの使用状況を反映して動的に決定する品質決定部と、受信したパケットの優先度に関する情報を、フロー管理情報記憶部に保持された情報のまま、静的に決定すべきか、あるいは、品質決定部により、動的に決定すべきかという、静的／動的判定を行うモード判定部とを備える。
【００１２】
この構成において、フロー管理情報記憶部を以上のようになし、しかも、特定のポリシーに従い、フローに属するパケットの優先度を、通信リソースの使用状況を反映して動的に決定する品質決定部を備えているから、フローの性質や目的に応じて、サービス品質を決定でき、ポリシーを尊重したパケット伝送を行える。
【００１３】
例えば、プロトコルが共通するグループ、料金が一致するユーザグループ、アプリケーションが共通するグループなどを、共通のサービス品質集合にまとめ、この集合内で、まとめて、サービス品質を決定でき、ポリシーの反映が容易である。
【００１４】
請求項２記載のパケット伝送装置では、フロー管理情報記憶部の、フローに属するパケットの優先度に関する情報は、静的／動的判定の根拠となるように構成されている。
【００１５】
この構成において、フロー管理情報記憶部の、フローに属するパケットの優先度に関する情報は、静的／動的判定の根拠となるから、動的／静的によらず、同じ尺度で、サービス品質が評価されることとなり、廃棄判定部は、動的／静的を、意識して区別する必要がない。つまり、廃棄判定部は、シンプルな処理で、廃棄するか否かを決定でき、ハードウエア化等が容易である。
【００１６】
請求項３記載のパケット伝送装置では、フロー管理情報記憶部の、フローに属するパケットの優先度に関する情報は、動的に決定すべきことを示す際、無効な優先度を示す。
【００１７】
この構成により、無効な優先度であるかどうかだけで、動的／静的を明確に区別できる。しかも、動的に決定すべきことを示す際、無効な優先度としているため、静的に決定すべき際の優先度と相紛れることがなく、動的とすべきことを示す情報が、予め静的に定められた値の格納を邪魔することがない。
【００１８】
請求項４記載のパケット伝送装置では、キューと品質決定部とは、一対一に対応するペアとして設けられ、しかも、このペアは、必要となるポリシーの数だけ複数設けられている。
【００１９】
この構成において、１つのキューに対して、高々１つの品質決定部を設ければよいから、動的品質決定のプロセスを単純化できる。
【００２０】
請求項５記載のパケット伝送装置では、優先度は、該当するキューの空き容量に対する閾値であり、廃棄判定部は、該当するキューに関する、この閾値と空き容量とに基づいて、受信したパケットを廃棄すべきか否か判定する。
【００２１】
この構成により、廃棄判定を、簡単かつ正確に実行できる。
【００２２】
請求項６記載のパケット伝送装置では、品質決定部は、該当するフローの累積使用量を参照して、優先度を動的に決定する。
【００２３】
請求項７記載のパケット伝送装置では、品質決定部は、該当するフローの継続時間を参照して、優先度を動的に決定する。
【００２４】
これらの構成において、累積使用量あるいは継続時間が、一定範囲を超えると、サービス品質を落とすようにすると、通信が特定のユーザに独占されないようにすることができ、通信の公平性を担保できる。逆に、一定範囲を超えたとき、サービス品質を上げるようにすると、多く使用するユーザ（例えば、上得意）を優遇することができる。
【００２５】
請求項８記載のパケット伝送装置では、品質決定部は、乱数を利用して、優先度を動的に決定する。
【００２６】
ここで、伝送路における輻輳が深刻な状態になると、１フローのパケットが連続して破棄されてしまうことがある。この構成によれば、優先度はランダムに決定されることになり、このような破棄を回避しやすく、バーストトラフィックを分散化できる。また、見方を変えれば、全フローのパケットを同時に廃棄してしまう事態を抑制できる。
【００２７】
請求項９記載のパケット伝送装置では、品質決定部は、アクティブフロー数を参照して、優先度を動的に決定する。
【００２８】
この構成において、アクティブフロー数が、一定範囲を超えると、サービス品質を落とすようにすると、新規に通信を始めたユーザを保護し、通信が古参のユーザに独占されないようにすることができ、通信の公平性を担保できる。逆に、一定範囲を超えたとき、サービス品質を上げるようにすると、古参のユーザに確保していた品質を維持できる。例えば、古参のユーザが、映像を受信していたような場合、古参のユーザ自身は、何もしていないのに、新参のユーザが通信を始めたことにより、古参のユーザが受信していた映像が、突然、乱れてしまうような事態を回避できる。
【００２９】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を説明する。次に、具体的な構成の説明に先立ち、本明細書で使用する重要な概念について説明する。まず、伝送されるパケットは、ヘッダ情報とデータ部とを有する。
【００３０】
この「ヘッダ情報」とは、パケットのデータ部以外の宛先情報やプロトコル情報を含む部分であり、ＴＣＰ／ＩＰにおいてはＩＰヘッダ、ＴＣＰ／ＵＤＰヘッダ、下位層のＭＡＣヘッダ等にあるフィールドのうち一部のものの値である。
【００３１】
また、本形態では、送信元ＩＰアドレス、送信先ＩＰアドレス、ＴＣＰ／ＵＤＰヘッダの中の送信元ポート番号、送信先ポート番号の４つのフィールド値を、「フロー」を定義するヘッダ情報として使用する。
【００３２】
即ち、これら４つのフィールド値が一致すれば、同一のフローに属するものとする。言い換えれば、１つの「フロー」とは、これら４つのフィールド値が一致するパケットの集合である。
【００３３】
しかし、これ以外のフィールド（例えば、プロトコル番号等）を使用しフローを定義してもよい。また本発明で使用するプロトコルは、ＴＣＰ／ＩＰのみに限られず、宛先の識別等にヘッダを使用するプロトコルであれば任意に使用できる。また、フローのうち、特に、パケットが伝送されつつあるフローを、「アクティブフロー」と呼ぶ。
【００３４】
また、「キュー」とは、受信パケットであって廃棄されないものが、その中に挿入され、外部へ送信されるのを待つ、メモリ及びメモリコントローラである。本形態では、ＦＩＦＯキュー（先着順に送出する）を前提にするが、ＬＩＦＯキュー（後着順に送出する）等を使用することも可能である。
【００３５】
「キュー長」とは、このキューに格納されているパケットの量を表すものである。本形態では、簡単のためにパケットの個数を単位とするが、キューに挿入されている全パケットのバイト数またはビット数等を使用しても良い。
【００３６】
「キューＩＤ」（ＱＩＤ）とは、キューが２以上存在する場合（本形態では、４つ設けてある）に、これらのキューについてユニークに付与された識別子である。
【００３７】
「キュー長閾値」（ＱＴＨ）とは、各受信パケットに対して一意に決定される値であり優先度に相当する。後述するように、受信パケットを廃棄するか否かは、キュー長とキュー長閾値を、大小比較することによって、決定される。本形態では、キュー長閾値が大きい方が破棄されにくく、優先度が高い。しかし、結果が矛盾しなければ、キュー長閾値が大きい方が破棄されやすいようにすることもできる。
【００３８】
「サービス品質集合」とは、同一のポリシーを持つフローの集合である。図１の例では、ＬＡＮ１に係るフローｆ１１、ｆ１２等は、同一のサービス品質集合Ｓ１に属するが、ＬＡＮ２に係るフローｆ２１、ｆ２２等は、このサービス品質集合Ｓ１とはポリシーが異なり、別のサービス品質集合Ｓ２に属する。
【００３９】
「共通リソース集合」とは、同一のリソースを使用するサービス品質集合の集合である。本形態では、このリソースは、キューである。
【００４０】
なお、ここでいう、サービス品質は、共通リソースの占有率、占有優先度等を指している。例えば、同じ共通リソース集合に、複数のサービス品質集合が含まれている場合、これらのサービス品質集合間において、リソースの使用可能性に差をつけることができる。
【００４１】
「静的品質決定」とは、予め定められたとおりの品質を決定し、適用することである。例えば、ＶｏＩＰ等によるパケットであれば、常に高い品質を割り当てるようにすることができる。
【００４２】
「動的品質決定」とは、状況に応じて品質を決定することである。例えば、フロー自身の振る舞いや、他のフローの振る舞い、その他の状況に応じて品質を変化させるべき場合、この決定による品質が使用される。
【００４３】
次に、図１を例に取りながら、本発明におけるパケット伝送装置の好ましい適用例について、述べる。
【００４４】
図１は、本発明の一実施の形態におけるパケット伝送装置を採用したネットワークシステムの例示図である。
【００４５】
図１において、ネットワーク１００は、例えばインターネットのような大規模な外部のネットワークである。ネットワーク１００には、本形態のパケット伝送装置１０１が接続され、図１の左側が上流側、右側が下流側にあたる。つまり、パケット伝送装置１０１は、このネットワーク１００とその配下に接続される要素（スイッチ１０２他）とでパケットを伝送するルータとして機能する。
【００４６】
さらに、パケット伝送装置１０１の下流側は、１００Ｍｂｐｓの伝送路１０３により、スイッチ１０２に接続される。本例では、スイッチ１０２は、「１．０．０．１」というＩＰアドレス（以下、単にアドレスという）を持つ。
【００４７】
また、図示している例では、パケット伝送装置１０１の下流側では、ＷＲＲにより各ＬＡＮに帯域などが分配される。
【００４８】
スイッチ１０２の配下には、ＬＡＮ１〜ＬＡＮ４という、４つのＬＡＮが接続され、これらのＬＡＮ１〜ＬＡＮ４は、それぞれポリシー１〜ポリシー４という、独立のポリシーを持っている。
【００４９】
具体的には、ＬＡＮ１のポリシー１は、「累積使用量が１００Ｍｂｙｔｅｓ増える毎に品質が高くなる」というものであり、ＬＡＮ１のアドレスは、「１．０．１．０〜１．０．１．２４」である。ＬＡＮ１の関係では、フローｆ１１、ｆ１２等が伝送される。これらのフローｆ１１、ｆ１２等は、サービス品質集合Ｓ１に属する。
【００５０】
また、ＬＡＮ２のポリシー２は、「継続時間が３０分経つ毎に品質が低くなる」というものであり、ＬＡＮ２のアドレスは、「１．０．２．０〜１．０．２．２４」である。ＬＡＮ２の関係では、フローｆ２１、ｆ２２等が伝送される。これらのフローｆ２１、ｆ２２等は、サービス品質集合Ｓ２に属する。
【００５１】
また、ＬＡＮ３のポリシー３は、「ランダムに品質が決定される」というものであり、ＬＡＮ３のアドレスは、「１．０．３．０〜１．０．３．２４」である。ＬＡＮ３の関係では、フローｆ３１、ｆ３２等が伝送される。これらのフローｆ３１、ｆ３２等は、サービス品質集合Ｓ３に属する。
【００５２】
さらに、ＬＡＮ４のポリシー４は、「アクティブフローが６４個増える毎にアクティブフローの品質を下げる」というものであり、ＬＡＮ４のアドレスは、「１．０．４．０〜１．０．４．２４」である。ＬＡＮ１の関係では、フローｆ４１、ｆ４２等が伝送される。これらのフローｆ４１、ｆ４２等は、サービス品質集合Ｓ４に属する。
【００５３】
このように、これらのポリシーは、それぞれ次元が異なるものであり、通信状況が同じように変化しても、それぞれのＬＡＮでは、品質の変化は、一般に一致しない。
【００５４】
従来技術では、このように次元が異なり、しかも通信リソースの使用状況を反映して、動的に品質を変化させることは、困難である。
【００５５】
しかし、本発明によれば、以下の説明により明らかなように、このようなシステムにおいて、複数のフローｆ１１、ｆ１２、ｆ２１、ｆ２２などが、共通の伝送路１０３を混在する状態で経由し、これらのフローがそれぞれ異なるポリシーに従うものであっても、そのポリシーが尊重され、しかも、互いに干渉することなく、独立して取り扱うことができる。
【００５６】
なお以上では、図１に示すように、説明をわかりやすくするために、ＬＡＮとポリシーとが、一対一に対応している例を述べた。しかしながら、ポリシーは、必ずしもＬＡＮと一対一に対応している必要はなく、例えば、ＬＡＮ１にポリシー１に従うユーザとポリシー２に従うユーザとが存在していても良い。このような場合にも、本発明は同様に適用できる。
【００５７】
次に、図２を参照しながら、本形態のパケット伝送装置１０１の各要素を説明する。図２において、制御部１は、図３のフローチャートに従って、図２に示す各要素を制御する。
【００５８】
パケット受信部２は、外部からパケット３を受信する。
【００５９】
本形態では、４つのキュー５〜８が設けられ、受信パケットは、それが廃棄されない限り、制御部１の指示に従う、キュー挿入部９により、これらのキュー５〜８の何れか１つに挿入される。これらのキュー５〜８は、ユニークなキューＩＤ（ＱＩＤ）を持ち、キューＩＤにより区別される。
【００６０】
パケット送信部４は、キュー５〜８から出力され、スケジューラ１０から受け取ったパケットを外部へ送信する。
【００６１】
スケジューラ１０は、パケット送信可能な状態になった場合、本形態では、ＷＲＲ（Ｗｅｉｇｈｔｅｄ　Ｒｏｕｎｄ　Ｒｏｂｉｎ）により、キュー５〜８のうちの一つのキューを選択し、その中から１個のパケットを送信する。
【００６２】
スケジューラ１０の、スケジューリングアルゴリズムは任意であり、各キューの帯域を重みに従って制御するＷＦＱ（Ｗｅｉｇｈｔｅｄ　Ｆａｉｒ　Ｑｕｅｕｉｎｇ）、優先制御を行うＰＱ（Ｐｒｉｏｒｉｔｙ　Ｑｕｅｕｉｎｇ）等、パケットを送信するものであればなんでもよい。また、ＷＦＱとＰＱを組み合わせてもよい。なお、キュー数が１であれば、単にＦＩＦＯやＬＩＦＯを使用することも可能である。
【００６３】
キュー長記憶部１１は、メモリなどからなり、これらのキュー５〜８の現在のキュー長を記憶し、キューＩＤを指示すれば、現在のキュー長を読み出せるようになっている。
【００６４】
また、本形態では、上述したように、キュー長をパケットの個数で表現しているので、キュー長は、次のように取り扱われる。
【００６５】
即ち、キュー挿入部９がキュー５〜８の何れかにパケットを挿入したら、キュー長記憶部１１が記憶するキュー長のうち、該当するキュー長が１つ増やされる。
【００６６】
逆に、スケジューラ１０が、キュー５〜８の何れかからパケットをパケット送信部４へ出力したら、キュー長記憶部１１が記憶するキュー長のうち、該当するキュー長が１つ減らされる。
【００６７】
廃棄判定部２１は、該当するキューの現在のキュー長と、キュー長閾値ＱＴＨを、大小比較し、キュー長閾値ＱＴＨが、現在のキュー長よりも大きければ、受信したパケットを廃棄する旨決定し、そうでなければ、廃棄しない旨決定する。また、タイマ２２は、現在時刻を計測し、制御部１に通知する。
【００６８】
フロー管理テーブル１２は、フロー管理情報記憶部に相当する。そして、フロー管理テーブル１２は、パケットのフローを定義する情報と、このフローに属するパケットの優先度に関する情報とを、関連付けて保持する。そして、フロー管理テーブル１２の、フローに属するパケットの優先度に関する情報は、静的／動的判定の根拠となるように構成されている。
【００６９】
次に、図４を参照しながら、フロー管理テーブル１２の内容について、詳しく説明する。
【００７０】
図４に示すように、フロー管理テーブル１２は、フロー番号とヘッダ情報と属性値という、３つのフィールドを持つ。
【００７１】
フロー番号は、フロー毎にユニークに付与される整数であり、フローＩＤに相当する。しかし、フローＩＤとしては、フロー番号でなくとも良く、例えば、フローを相紛れることなく区別できる、文字列などを用いても良い。
【００７２】
ヘッダ情報は、さらに、送信元アドレス、送信先アドレス、送信元ポート番号及び送信先ポート番号という、４つのフィールドを持つ。本形態では、上述したように、フローをこれらの４つの値が一致するパケットの集合として定義しているから、これに従って、フロー管理テーブル１２のヘッダ情報が、これらの４つの値を持つものである。もし、フローの定義に、プロトコル番号も含めるのであれば、フロー管理テーブル１２のヘッダ情報にも、プロトコル番号も含めるべきである。
【００７３】
属性値は、さらに、キューＩＤ（ＱＩＤ）とキュー長閾値（ＱＴＨ）のフィールドを持つ。これらの値は、既に述べた定義のとおりである。
【００７４】
就中、ＱＴＨの値に注目されたい。フロー番号１〜４では、ＱＴＨ＝６０となっており、この値は、キュー長閾値として通常のものである。
【００７５】
しかしながら、フロー番号５〜８では、ＱＴＨ＝０となっている。これを上述の、現在のキュー長とキュー長閾値との大小比較にそのまま適用すると、現在のキュー長がどのような値であっても、全てパケットが破棄されることになる。
【００７６】
つまり、ＱＴＨ＝０なるキュー長閾値は、無効な優先度を示すと言うことができる。また、キュー長閾値ＱＴＨが何らかの有効な優先度を示す場合、ＱＴＨ＝０となることは考えられない。
【００７７】
そこで、本形態では、このフローの優先度を動的に決定すべきであるときに、ＱＴＨ＝０とし、そうでなく静的に決定すべきときに、０でない値をＱＴＨに設定することとした。
【００７８】
つまり、フロー番号１〜４に係るパケットは、その優先度が静的に（フロー管理テーブル１２の値のまま）決定され、フロー番号５〜８に係るパケットは、その優先度が図２に示す、各品質決定部１４、１６、１８、１９の何れかにより、動的に決定されるものである。
【００７９】
また、属性値のキューＩＤ（ＱＩＤ）は、当該フローがどのキューに（廃棄されないなら）挿入されるべきことを示し、本形態では、ＱＩＤ＝１なるときに、キュー５が使用され、同様に、ＱＩＤ＝２，３，４なるときに、それぞれキュー６、７、８、９が使用される。
【００８０】
そして、図２に示すように、各キュー５、６、７、８に対して、一対一に対応する、第１〜第４品質決定部１４、１６、１８、１９が設けられている。
【００８１】
図２のモード判定部１３は、以上のルールに従って、パケット３がパケット受信部２に到着すると、制御部１からパケット３を受け取り、フロー管理テーブル１２を参照して、パケット３がどのフローに属するパケットかを調べる。
【００８２】
フロー番号がわかったら、モード判定部１３は、該当フロー番号のＱＴＨを調べ、これが「０」かどうかチェックする。もし、「０」なら、動的決定すべきなので、該当フロー番号のＱＩＤに係る品質決定部を、制御部１に報告する。
【００８３】
また、「０」でなければ、静的にＱＴＨを決定すべきことを制御部１に報告する。
【００８４】
なお、以上において、ＱＴＨとしての無効な値「０」は一例に過ぎず、例えば、負の値をセットするようにしても良い。いずれにしても、図４のフロー管理テーブル１２の各値のセット及び各品質決定部１４、１６、１８、１９のアルゴリズム等は、このパケット伝送装置の初期設定時に完了させておく。
【００８５】
以下、図３を用いて、本形態のパケット伝送装置による、動作の流れを説明する。なお、各品質決定部１４、１６、１８、１９についての各論は、後に詳述する。
【００８６】
まず、図２のステップ１において、制御部１は、上述のように、フロー管理テーブル１２に値をセットし、各品質決定部１４、１６、１８、１９の初期設定を行う。
【００８７】
次に、ステップ２にて、制御部１は、パケット３がパケット受信部２に到着するのを待つ。パケット３がパケット受信部２に到着したら、制御部１は、パケット３に関するフローが、フロー管理テーブル１２に定義されているかどうかチェックする。
【００８８】
もし、未定義なら、ステップ４にて、フロー管理テーブル１２にエントリを追加し、値をセットし、ステップ５へ移る。定義済みなら、そのままステップ５へ移る。
【００８９】
次に、ステップ５にて、制御部１は、モード判定部１３にモード判定を指示する。モード判定部１３は、フロー管理テーブル１２を参照し、上述のルールに従って、ＱＴＨの値が無効な値「０」であれば、どの品質決定部を用いた動的決定を行うべきか定め、そうでなければ、静的決定を行うべきかを定める。その結果は、制御部１に報告される（ステップ６）。
【００９０】
この報告が静的決定を行うべきことを示している場合、ステップ７にて、制御部１は、フロー管理テーブル１２の該当ＱＩＤ及び該当ＱＴＨを使用することを決定する。
【００９１】
一方、この報告が動的決定をすべきことを示す場合、制御部１は、該当する品質決定部を呼び出す（ステップ８）。呼び出された品質決定部は、そのポリシーに従う処理を行い、ＱＴＨを制御部１に返す。これにより、ＱＩＤ及びＱＴＨが決定される。
【００９２】
次に、制御部１は、ステップ９にて、廃棄判定部２１にパケット３を廃棄すべきかどうか判定をさせ、廃棄することになれば、そのままステップ１１へ移る。廃棄しないのであれば、ステップ１０にて、制御部１は、パケット３をキュー挿入部９に渡し、挿入すべきキューＩＤを指示する。すると、キュー挿入部９は、指示されたキューへパケット３を挿入し（ステップ１０）、処理がステップ１１へ移る。
【００９３】
ステップ１１では、制御部１は、処理終了でないことを確認し、ステップ２へ処理を移す。以降、ステップ２以下の処理が繰り返される。
【００９４】
なお、スケジューラ１０は、そのスケジューリングアルゴリズムに従って、キュー５〜８から、順次パケット送信部４へパケットを渡し、パケット送信部４は、受け取ったパケットを外部へ送信する。
【００９５】
次に、動的品質決定を行う、各品質決定部１４、１６、１８、１９について説明する。まず、図５及び図６を用いて、第１品質決定部１４及び第１テーブル１５について、説明する。
【００９６】
第１品質決定部１４及び第１テーブル１５は、図１に示した、ＬＡＮ１のポリシー１（累積使用量が１００Ｍｂｙｔｅｓ増える毎に品質が高くなる）を、実現するためのものである。因みに、このポリシー１は、従量課金を想定しており、使えば使うほどサービスが向上することになる。
【００９７】
第１テーブル１４は、図５に示すように、フロー番号とＱＴＨと累積使用量というフィールドを持つ。
【００９８】
ここで、フロー番号は、フロー管理テーブル１２のフロー番号と同じである。しかし、キュー長閾値ＱＴＨは、フロー管理テーブル１２のそれとは一致せず、状況に応じて書き換えられる。累積使用量は、基本的に、該当するパケットが通過するたびに加算される。
【００９９】
初期設定時には、このポリシー１を使用する、つまり、サービス品質集合Ｓ１に属する、全てのフローに係る、エントリが作成され、各値がセットされる。
【０１００】
次に、図３のステップ８により、制御部１が、第１品質決定部１４を呼び出すと、図６に示す処理が実行される。
【０１０１】
まず、第１品質決定部１４は、ステップ２１にて、制御部１からフロー番号を取得し、ステップ２２にて、第１テーブル１５に、このフロー番号に係るエントリがあるかどうかチェックする。
【０１０２】
もしなければ、ステップ２３にて、第１品質決定部１４は、ＱＴＨに「０」をセットし、制御部１に返して処理を終了する。そうすると、このパケットは、破棄されることになる。
【０１０３】
エントリがあれば、ステップ２４にて、第１品質決定部１４は、第１テーブル１５から、該当するＱＴＨを読み出す。そして、第１品質決定部１４は、ステップ２５にて、このエントリの累積使用量に、受信したパケット長を加算し、ステップ２６にて、この累積使用量が１００Ｍｂｙｔｅｓを超えたかどうかチェックする。
【０１０４】
超えていなければ、現在のＱＴＨを制御部１に返して処理を終了する。超えていれば、ステップ２７にて、現在のＱＴＨを１０増やし、その累積使用量を０にリセットし、増やした後のＱＴＨを制御部１に返して処理を終了する。
【０１０５】
このようにすれば、ポリシー１（累積使用量が１００Ｍｂｙｔｅｓ増える毎に品質が高くなる）にかなう、品質の動的決定を行える。
【０１０６】
なお、ＱＴＨに最大閾値を設定し、エントリがある全てのフロー番号に係るＱＴＨが、この最大閾値になったならば、ＱＴＨを初期値（例えば６４など）にリセットするようにしても良い。
【０１０７】
さらに、ポリシー１の反対のポリシー（使えば使うほど品質が落ちる）も、若干の変更で、簡単に実現できる。例えば、ステップ２７にて、該当ＱＴＨを１０増やしているところを、１０減らすようにすればよい。このポリシーは、一定課金制にかなうものである。
【０１０８】
なお、以上の数値は、単なる例示であり、適宜変更できることは言うまでもない。
【０１０９】
次に、図７及び図８を用いて、図２の第２品質決定部１６及び第２テーブル１７について、説明する。これらの要素１６、１７は、図１のＬＡＮ２のポリシー２（継続時間が３０分経つ毎に品質が低くなる）を実現するためのものである。このポリシー２は、例えば、ＶｏＩＰ、ＴＶ電話などのサービスを一定料金で提供し、長時間通信する場合には、ペナルティとして通信品質を落とすような場合にかなう。
【０１１０】
第２テーブル１７は、図７に示すように、フロー番号、ＱＴＨ、更新時刻、最終到着時刻の、４つのフィールドを持つ。
【０１１１】
フロー番号、ＱＴＨについては、図５の第１テーブル１５と同様である。更新時刻は、該当エントリの内容が変更された時刻であり、最終到着時刻は、このエントリにあるパケットが最後に到着した時刻である。
【０１１２】
第１テーブル１５とは異なり、初期設定時には、第２テーブル１７は、エントリなしの状態となる。
【０１１３】
次に、図３のステップ８において、第２品質決定部１６が呼び出されると、図８に示す処理が実行される。
【０１１４】
即ち、ステップ３１にて、第２品質決定部１６は、制御部１からフロー番号を取得し、ステップ３２にて、この番号以外のフローでエントリがあるものについて、未到着時刻を計算する。この未到着時刻は、「未到着時刻＝現在時刻−最終到着時刻」により計算される。
【０１１５】
そして、第２品質決定部１６は、ステップ３３にて、未到着時刻が３０分を超えるエントリを削除する。この処理は、アクティブフローとは言えない、フローに係るエントリを削除するものである。
【０１１６】
次に、第２品質決定部１６は、ステップ３４にて、取得した番号に係るエントリがあるかどうかチェックする。もしなければ、ステップ３６にて、第２品質決定部１６は、エントリを追加し、追加したエントリについて、現在時刻を更新時刻のフィールドに入れ、ＱＴＨのフィールドに初期値として「６４」をセットする。そして、ステップ３７へ処理が移る。
【０１１７】
このエントリがあれば、ステップ３５にて、第２品質決定部１６は、このエントリのＱＴＨを戻り値ＱＴＨにセットし、ステップ３７へ処理が移る。
【０１１８】
ステップ３７にて、第２品質決定部１６は、取得した番号のエントリ、または、追加したエントリの、最終到着時刻のフィールドに、現在時刻をセットする。
【０１１９】
そして、ステップ３８にて、第２品質決定部１６は、継続時間（＝現在時刻−取得した番号のエントリ、または、追加したエントリの、更新時刻）を計算し、ステップ３９にて、継続時間が３０分を超えたエントリがあるかどうかチェックする。
【０１２０】
もしあれば、ステップ４０にて、第２品質決定部１６は、該当エントリのＱＴＨを１０減らし、そのエントリの更新時刻のフィールドに、現在時刻をセットした上で、戻り値ＱＴＨを制御部１へ返して処理を終了する。
【０１２１】
逆に、エントリがなければ、第２品質決定部１６は、そのまま、戻り値ＱＴＨを制御部１に返して処理を終了する。
【０１２２】
以上において、第２テーブル１７は、時々刻々と変化するが、メモリの制限などによって、もしエントリが足りないような場合には、エントリを設けず、単にＱＴＨとして無難な値（例えば、３２など）を、制御部１へ返すようにしてもよい。
【０１２３】
また、ポリシー２の反対のポリシー（継続時間が３０分経つ毎に品質が高くなる）も、簡単な変更で対応できる。例えば、ステップ４０にて、該当ＱＴＨを１０減らしていたのを、１０増やすようにすればよい。
【０１２４】
次に、図９を用いて、図２の第３品質決定部１８の動作を説明する。なお、この品質決定部１８は、他のそれのように、テーブルを持たない。したがって、初期設定は、不要である。
【０１２５】
この第３品質決定部１８は、ポリシー３（ランダムに品質が決定される）を実現するためのものである。
【０１２６】
即ち、図３のステップ８にて、制御部１から第３品質決定部１８が呼び出されると、図９に示す処理が実行される。
【０１２７】
まず、第３品質決定部１８は、ステップ４１にて、フロー番号を取得し、次にステップ４２にて、乱数を発生させる。
【０１２８】
そして、ステップ４３にて、第３品質決定部１８は、発生値をＱＴＨにあうように、整形し、戻り値ＱＴＨを作り、これを制御部１へ返す。
【０１２９】
なお、ＴＣＰにおいて、フローの公平性を確保するため、従来の技術の項で説明した、ＲＥＤ技術がある。これは、平均キュー長が大きくなればなるほど、パケットの廃棄確率を上げるものであるが、
（１）パケット到着毎に、平均キュー長を計算する必要がある。
（２）パケット到着毎に、平均キュー長に基づいて、廃棄確率を計算する必要がある。
ため、処理負担が重い。
【０１３０】
一方、第３品質決定部１８によれば、事実上、ＲＥＤに類似の処理を簡単な計算で実現できる。
【０１３１】
つまり、このポリシー３に係るサービス品質集合Ｓ３に属する、パケットが到着すると、第３品質決定部１８は、ＱＴＨをランダムに割り当てる。
【０１３２】
このため、キュー長が長ければ長いほど破棄されやすくなり、短ければ破棄を免れる確率が高くなる。つまり、外から見た振る舞いは、ＲＥＤに類似したものになる。
【０１３３】
また、乱数発生には、キュー長や平均キュー長などを求めたり、知ったりする必要がなく、処理負担が軽い。
【０１３４】
さらに、第３品質決定部１８の処理によれば、単にドロップテイル（ＦＩＦＯでキュー長を超えたパケットを破棄する）する場合と比べて、破棄されるパケットの分布がばらつくことになり、特定のフローのパケットが集中的に破棄されてしまう事態を回避できる。
【０１３５】
次に、図１０及び図１１を用いて、第４品質決定部１９及び第４テーブル２０について説明する。
【０１３６】
これらの要素１９、２０は、ポリシー４（アクティブフローが６４個増える毎にアクティブフローの品質を下げる）を実現するためのものである。
【０１３７】
図１０に示すように、第４テーブル２０は、アクティブフロー数を１つと、エントリ毎に、フロー番号、ＱＴＨ、到着数の３つのフィールドを持つ。フロー番号及びＱＴＨについては、第１テーブル１５と同様である。本例では、到着数は、初回到着時は「０」とする。
【０１３８】
また、初期設定時には、図１０（ａ）に示すように、エントリがなく、アクティブフロー数ＡＦは、「０」である。
【０１３９】
そして、ＡＦは、ポリシー４のサービス品質集合Ｓ４のパケットが到着するたびに、基本的に「１」ずつ増加するが、ＡＦ＝６４となる毎に、ＡＦ＝０に戻す。なお、ＡＦ＝０なるとき、ＡＦ−１＝６３とする。
【０１４０】
次に、図１１を用いて、第４品質決定部１９の動作を説明する。まず、ステップ５１にて、第４品質決定部１９は、制御部１からフロー番号を取得する。
【０１４１】
次に、第４品質決定部１９は、ステップ５２にて、第４テーブル２０を検索し、取得したフロー番号のエントリがあるかどうかチェックする。
【０１４２】
エントリがあれば、ステップ５３に処理が移り、なければ、ステップ５８に処理が移る。
【０１４３】
ステップ５３では、第４品質決定部１９は、該当するエントリの到着数を「０」にリセットする。そして、第４品質決定部１９は、該当するエントリ以外のエントリの到着数を＋１する。
【０１４４】
つまり、第４テーブル２０において、到着数が「０」に近い（つまり小さい）ほど、よりアクティブなフローである。
【０１４５】
そして、ステップ５４にて、第４品質決定部１９は、到着数が、予め設定された閾値ＴＨを超えるものがあるかどうかチェックする。
【０１４６】
もしあれば、第４品質決定部１９は、ステップ５５にて、該当するエントリを削除し、ステップ５６へ移る。なければ、ステップ６２へ処理が移る。
【０１４７】
ステップ５６では、第４品質決定部１９は、ＡＦが「６３」になっているかどうかチェックする。なっていなければ、ステップ６２へ処理が移る。ＡＦが「６３」になっていれば、ステップ５７にて、第４品質決定部１９は、全てのエントリのＱＴＨに「１０」を加え、ステップ６２へ処理が移る。
【０１４８】
ステップ６２では、第４品質決定部１９は、番号を取得したフローのＱＴＨを、戻り値ＱＴＨへセットし、制御部１へ返して処理を終了する。
【０１４９】
一方、ステップ５２にて、エントリがないときは、ステップ５８にて、第４品質決定部１９は、エントリを追加し、追加したエントリのＱＴＨを初期値（６４）とする。そして、アクティブフローが一つ増えたわけであるから、ステップ５９にて、第４品質決定部１９は、ＡＦに「１」を加え、ステップ６０にて、ＡＦが「０」になっていないかどうかチェックする。
【０１５０】
ここで、ＡＦ＝６３のときに、ステップ５９にて、ＡＦに「１」を加えると、上述したルールに従って、ＡＦ＝０となる。そのときは、処理が、ステップ６２へ移り、上述したように、取得した番号のＱＴＨが制御部１へ返され、処理が終了する。
【０１５１】
また、ステップ６０において、ＡＦが「０」でないときは、取得した番号以外のＱＴＨが「１０」だけ減らされた上で、ステップ６２に処理が移る。これは、新参のフローについて、通信できる帯域を割り当てるものである。
【０１５２】
次に、図１０を用いて、第４テーブル２０の遷移例を説明する。まず、初期設定時は、図１０（ａ）のように、エントリがなく、ＡＦは「０」である。
【０１５３】
そして、１つ目のフローがくると、図１０（ｂ）に示すように、ＡＦ＝１となり、ＱＴＨに初期値（６４）がセットされる。
【０１５４】
その後、続々とフローが追加されると、図１０（ｃ）に示すように、ＡＦ＝６３になることがある。そして、その後、６４番目のフローが到着すると、図１０（ｄ）に示すように、ＡＦが「０」にリセットされ、到着したフロー以外のフローに係るエントリの、ＱＴＨが「１０」だけ減らされることになる。
【０１５５】
勿論、図１０及び図１１は、一例に過ぎず、種々変更できる。例えば、フローの削除が頻繁に起こりすぎないように、到着数をより大きめにとるようにしてもよい。また、ステップ５４にて、ステップ５５から直ちにステップ６２に処理を移すようにしても良い。
【０１５６】
さらに、以上の例によると、ＱＴＨは、最低値が４のとき、６４，５４，４４，３４，２４，１４，４の、都合７通りしかない。そこで、図１２（ａ）に示すように、第４テーブル２０のＱＴＨのフィールドに、ポインタＰ１，Ｐ２等を入れ、ＱＴＨの実体を、ＱＴＨのフィールドとは、別のメモリアドレスに格納し、ポインタＰ１，Ｐ２等で、ＱＴＨの実体を指すようにしても良い。
【０１５７】
こうすると、ＱＴＨの増減は、ポインタＰ１，Ｐ２等の指す先をシフトすれば足り、処理が高速かつ簡単になる。なお、フローが増えたら、図１２（ｂ）に示すように、ポインタＰ３を増やすなど、ポインタの操作を行えばよい。
【０１５８】
以上の処理により、ポリシー４（アクティブフローが６４個増える毎にアクティブフローの品質を下げる）を実現できる。
【０１５９】
【発明の効果】
本発明によれば、さまざまなポリシーに従うパケットのフローが混在して流れても、それぞれのポリシーを尊重したパケット伝送を行える。
【図面の簡単な説明】
【図１】本発明の一実施の形態におけるパケット伝送装置を採用したネットワークシステムの例示図
【図２】同パケット伝送装置のブロック図
【図３】同パケット伝送装置のフローチャート
【図４】同フロー管理テーブルの構成図
【図５】同第１テーブルの構成図
【図６】同第１品質決定部のフローチャート
【図７】同第２テーブルの構成図
【図８】同第２品質決定部のフローチャート
【図９】同第３品質決定部のフローチャート
【図１０】（ａ）同第４テーブルの状態説明図
（ｂ）同第４テーブルの状態説明図
（ｃ）同第４テーブルの状態説明図
（ｄ）同第４テーブルの状態説明図
【図１１】同第４品質決定部のフローチャート
【図１２】（ａ）同第４テーブルの応用例説明図
（ｂ）同第４テーブルの応用例説明図
【符号の説明】
１　制御部
２　パケット受信部
３　パケット
４　パケット送信部
５〜８　キュー
９　キュー挿入部
１０　スケジューラ
１１　キュー長記憶部
１２　フロー管理テーブル
１３　モード判定部
１４　第１品質決定部
１５　第１テーブル
１６　第２品質決定部
１７　第２テーブル
１８　第３品質決定部
１９　第４品質決定部
２０　第４テーブル
２１　廃棄判定部
２２　タイマ
１０１　パケット伝送装置
【図１】
2004032602.tif 000003
【図２】
2004032602.tif 000004
【図３】
2004032602.tif 000005
【図４】
2004032602.tif 000006
【図５】
2004032602.tif 000007
【図６】
2004032602.tif 000008
【図７】
2004032602.tif 000009
【図８】
2004032602.tif 000010
【図９】
2004032602.tif 000011
【図１０】
2004032602.tif 000012
【図１１】
2004032602.tif 000013
【図１２】
2004032602.tif 000014