(57)【要約】【課題】大容量のバッファを備えることなく、ネットワークの帯域を制御する。【解決手段】  本発明は、ネットワークを介して、第一及び第二の装置に接続されたパケット転送装置において、パケットを前記第一の装置から受信する入力部と、前記パケットを保持するパケット記憶部と、前記パケットをパケット記憶部に格納するパケット処理部と、前記パケットがデータの送信に関するものであるか否かを判定するパケット判定部と、前記パケットに関して送信されるデータの量を解析するパケット解析部と、前記解析されたデータの量に基づいて、前記パケットの送信を制御する転送制御部と、前記受信パケットを前記第二の装置に送信する出力部と、を備えることを特徴とする。【選択図】図７
2006109299.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して、第一及び第二の装置に接続されたパケット転送装置において、
パケットを前記第一の装置から受信する入力部と、
前記パケットを保持するパケット記憶部と、
前記パケットをパケット記憶部に格納するパケット処理部と、
前記パケットがデータの送信に関するものであるか否かを判定するパケット判定部と、
前記パケットに関して送信されるデータの量を解析するパケット解析部と、
前記解析されたデータの量に基づいて、前記パケットの送信を制御する転送制御部と、
前記受信パケットを前記第二の装置に送信する出力部と、を備えることを特徴とするパケット転送装置。
【請求項２】
前記パケット判定部は、
前記パケットが、前記第一の装置から前記第二の装置へ送信されるパケットであるか否かを判定し、
前記第一の装置から前記第二の装置へ送信されるパケットであれば、さらに、データの送信に関するパケットであるか否を判定することを特徴とする請求項１に記載のパケット転送装置。
【請求項３】
前記パケット判定部は、前記第一の装置が前記第二の装置にデータの送信を要求する読み出しパケットを、前記データの送信に関するパケットであると判定することを特徴とする請求項２に記載のパケット転送装置。
【請求項４】
前記パケット判定部は、前記第一の装置が前記第二に装置にデータの送信を許可する転送許可パケットを、前記データの送信に関するパケットであると判定することを特徴とする請求項２に記載のパケット転送装置。
【請求項５】
前記パケット処理部は、
前記第一の装置から前記第二の装置へ送信されるパケットのうち、データの送信に関するパケットと、データの送信に関しないパケットとの両方を同一の前記パケット記憶部に格納し、
前記第一の装置から前記第二の装置以外の装置へ送信されるパケットを、該パケット記憶部と異なる前記パケット記憶部に格納することを特徴とする請求項２に記載のパケット転送装置。
【請求項６】
前記パケット解析部は、
前記第一の装置から前記第二の装置へ送信され且つデータの送信に関するパケットについて、該パケットに関して送信されるデータの量を解析し、
その他の前記パケットについては、該パケットに関して送信されるデータの量を“０”とすることを特徴とする請求項１に記載のパケット転送装置。
【請求項７】
前記転送制御部は、
前記パケット解析部によって解析されたデータの量に基づいて、データの送信に関するパケットの送信時刻を計算し、
前記計算された送信時刻になると、該パケットを前記パケット記憶部から読み出して、前記出力部に送ることを特徴とする請求項１に記載のパケット転送装置。
【請求項８】
前記転送制御部は、
前記パケット解析部によって解析されたデータの量に基づいて、データの送信に関するパケットの送信時刻を計算し、
前記計算された送信時刻になっていないと、データの送信に関しないパケットを前記パケット記憶部から読み出すことを特徴とする請求項１に記載のパケット転送装置。
【請求項９】
前記転送制御部は、
該データの送信に関するパケットより後に、前記第一の装置からデータの送信に関しないパケットを受信した場合は、
前記計算された送信時刻になっていないと、該データの送信に関しないパケットを前記パケット記憶部から読み出さないことを特徴とする請求項８に記載のパケット転送装置。
【請求項１０】
前記第二の装置へ送信する単位時間当たりのデータの量を制御するトラヒックシェーピング部を備えることを特徴とする請求項１に記載のパケット転送装置。
【請求項１１】
ネットワークを介して、ストレージ装置に接続された第一のパケット転送装置と、ユーザ端末に接続された第二のパケット転送装置とを含み、前記第一のパケット転送装置と前記第二のパケット転送装置とが接続されて構成されるストレージシステムにおいて、
前記第一のパケット転送装置は、
パケットを前記ユーザ端末から受信する入力部と、
前記パケットを保持するパケット記憶部と、
前記パケットをパケット記憶部に格納するパケット処理部と、
前記パケットが前記ユーザ端末からの読み出し要求であるか否かを判定するパケット判定部と、
前記読み出し要求パケットが送信を要求するデータの量を解析するパケット解析部と、
前記解析されたデータの量に基づいて、前記読み出し要求パケットの送信を制御する転送制御部と、
前記受信パケットを送信する出力部と、を備えることを特徴とするストレージシステム。
【請求項１２】
前記第一のパケット転送装置は、前記ユーザ端末へ送信される単位時間当たりのデータの量を制御するトラヒックシェーピング部を備えることを特徴とする請求項１１に記載のストレージシステム。
【請求項１３】
ネットワークを介して、ストレージ装置に接続された第一のパケット転送装置と、ユーザ端末に接続された第二のパケット転送装置とを含み、前記第一のパケット転送装置と前記第二のパケット転送装置とが接続されて構成されるパケット転送システムにおいて、
前記第一のパケット転送装置は、
パケットを前記ストレージ装置から受信する入力部と、
前記パケットを保持するパケット記憶部と、
前記パケットをパケット記憶部に格納するパケット処理部と、
前記パケットが前記ストレージ装置からの転送許可であるか否かを判定するパケット判定部と、
前記転送許可パケットが送信を要求するデータの量を解析するパケット解析部と、
前記解析されたデータの量に基づいて、前記転送許可パケットの送信を制御する転送制御部と、
前記受信パケットを送信する出力部と、を備えることを特徴とするストレージシステム。
【請求項１４】
前記第二のパケット転送装置は、前記ストレージ装置へ送信される単位時間当たりのデータの量を制御するトラヒックシェーピング部を備えることを特徴とする請求項１３に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを転送するパケット転送装置に関し、特に、パケットを転送する帯域を制御する技術に関する。
【背景技術】
【０００２】
近年、ユーザ端末内のデータを遠隔地にあるデータセンタ内のストレージへ格納するストレージセントリックネットワークシステムが注目されつつある。ストレージセントリックネットワークシステムは、自然災害、火災、企業テロなどでユーザ端末が破壊されても、データが消失することないので、業務停止の危険性を回避できる。
【０００３】
ストレージセントリックネットワークシステムは、通常、ｉＳＣＳＩ（Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）で通信する。これによって、ユーザ端末は、ＩＰネットワークを経由してストレージへアクセスできる。アクセスには、データの読み出し（ＲＤ）及び書き込み（ＷＲ）が含まれる。
【０００４】
なお、ｉＳＣＳＩとは、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）コマンドをＩＰネットワーク経由で送受信するプロトコルである。また、ＳＣＳＩとは、パーソナルコンピュータなどの端末とストレージなどの周辺機器とを接続する規格である。
【０００５】
ここで、ストレージセントリックネットワークシステムの処理の概要を説明する。
【０００６】
図２４は、従来のストレージセントリックネットワークシステムの読み出し処理の説明図である。
【０００７】
本図では、ユーザ端末１００は、広域ネットワーク事業者と締結した契約帯域の使用が保証されている。そして、エッジスイッチ１０３−１、１０３−２は、契約帯域を越えるトラヒック量を検知すると、契約帯域を超過したパケットを廃棄する。
【０００８】
次に、ストレージセントリックネットワークシステムの読み出し処理を説明する。
【０００９】
まず、データの読み出しを要求するユーザ端末１００は、ｉＳＣＳＩコマンドのＲＤ要求２００をストレージ１０５に送信する。ＲＤ要求２００を受信したストレージ１０５は、該当するＲＤデータをＲＤデータパケット２０１に格納して、ユーザ端末１００に送信する。
【００１０】
但し、送信されたＲＤデータパケット２０１のトラヒック量は、契約帯域を超過する場合がある。この場合、契約帯域を超過したＲＤデータパケット２０１は、エッジスイッチ１０３−２の帯域制御２０３等によって途中経路で廃棄される。
【００１１】
図２５は、従来のストレージセントリックネットワークシステムの書き込み処理の説明図である。
【００１２】
データの書き込みを要求するユーザ端末１００は、ｉＳＣＳＩコマンドのデータＷＲ要求３００をストレージ１０５に送信する。ＷＲ要求３００を受信したストレージ１０５は、データの書き込み準備が完了すると、ｉＳＣＳＩパケットのＲ２Ｔ（Ｒｅａｄｙ  ｔｏ  Ｔｒａｎｓｆｅｒ）３０１をユーザ端末１００に送信する。Ｒ２Ｔ３０１を受信したユーザ端末１００は、該当するＷＲデータをＷＲデータパケット３０２に格納して、ストレージ１０５に送信する。
【００１３】
但し、送信されたＷＲデータパケット３０２のトラヒック量は、契約帯域を超過する場合がある。この場合、契約帯域を超過したＷＲデータパケット３０２は、エッジスイッチ１０３−１の帯域制御３０４等によって途中経路で廃棄される。
【００１４】
このように、ストレージセントリックネットワークシステムでは、トラヒック量が高くなると、パケットが廃棄されてしまう。このパケット廃棄は、ストレージセントリックネットワークシステムの利用効率を低下させ、更に、スループットも低下させる。そこで、ストレージセントリックネットワークシステムは、パケットの廃棄という問題を解決する必要がある。
【００１５】
パケットの廃棄を防止する従来技術として、パケット転送装置１０４にトラヒックシェーピング部を設ける技術が知られている（例えば、特許文献１参照。）。トラヒックシェーピング部は、広域ネットワークのトラヒック量が契約帯域を超えないようにパケットの転送間隔を制御する。
【００１６】
具体的には、まず、トラヒックシェーピング部は、ユーザ端末から送信されるパケットを、自身のパケットバッファへ格納する。次に、トラヒックシェーピング部は、パケットバッファから読み出すパケットのデータ量を計測する。そして、トラヒックシェーピング部は、計測したデータ量に基づいて、契約帯域を越えるデータ量がパケットバッファから読み出されないように制御する。
【特許文献１】特開２０００―３４９７６３号公報
【非特許文献１】Ｊ．Ｓａｔｒａｎ、他４名、ＲＦＣ３７２０−Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ（ｉＳＣＳＩ）、［ｏｎｌｉｎｅ］、インターネット<URL :http://www.faqs.org/rfcs/rfc3720.html>
【発明の開示】
【発明が解決しようとする課題】
【００１７】
従来技術では、契約帯域を超えるすべてのパケットはパケットバッファで保持される。そのため、トラヒックシェーピング部のパケットバッファは、パケットが溢れないように、以下の式（１）で求めるバッファ量が必要となる。
【００１８】
バッファ量＝ユーザ端末数×最大ウインドサイズ・・・（１）
【００１９】
最大ウインドサイズは、初期設定では６４キロバイトだが、ウインド・スケール・オプションを使用することで最大１ギガバイトまで拡張することができる。なお、最大ウインドサイズは、スループット向上のため、ＲＤ要求に含まれる要求ＲＤ長の値に一致させる。
【００２０】
例えば、最大ウインドサイズを２５６キロバイトでユーザ端末数を１００台とすると、パケットバッファは、２５．６メガバイトが必要となる。ユーザ端末数が更に増加すると、大容量のパケットバッファが必要となる。
【００２１】
このように、パケット転送装置が、大容量のバッファを備えると、コストが高騰し、拡張性も乏しくなる。
【００２２】
そこで、本発明は、大容量バッファを必要としないパケット転送装置の提供を目的とする。
【課題を解決するための手段】
【００２３】
本発明は、ネットワークを介して、第一及び第二の装置に接続されたパケット転送装置において、パケットを前記第一の装置から受信する入力部と、前記パケットを保持するパケット記憶部と、前記パケットをパケット記憶部に格納するパケット処理部と、前記パケットがデータの送信に関するものであるか否かを判定するパケット判定部と、前記パケットに関して送信されるデータの量を解析するパケット解析部と、前記解析されたデータの量に基づいて、前記パケットの送信を制御する転送制御部と、前記受信パケットを前記第二の装置に送信する出力部と、を備えることを特徴とする。
【発明の効果】
【００２４】
本発明によると、パケット転送装置は、大容量のバッファを備えずに帯域を適切に制御することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態を図面を参照して説明する。
【００２６】
（第１の実施の形態）
図１は、本発明の第１の実施の形態のストレージセントリックネットワークシステムのブロック図である。
【００２７】
第１の実施の形態のストレージセントリックネットワークシステムは、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルの第３層プロトコルにＩＰｖ４プロトコルを使用する場合を例として説明するが、ＩＰｖ６プロトコルなどこれ以外の第３層プロトコルを使用してもよい。
【００２８】
また、第１の実施の形態のストレージセントリックネットワークシステムは、ｉＳＣＳＩプロトコルを使用する場合を例として説明するが、ｉＳＣＳＩ以外のプロトコルを使用してもよい。但し、使用するｉＳＣＳＩ以外のプロトコルは、ユーザ端末からデータを要求するコマンドを送信すれば、要求するデータのサイズが取得できるプロトコルとする。
【００２９】
ストレージセントリックネットワークシステムは、ユーザサイト１０８、エッジスイッチ１０３−１、１０３−２、データセンタ１０９及び管理コンソール１０７から構成されている。
【００３０】
ユーザサイト１０８では、ＬＡＮスイッチ１０１及びｎ台のユーザ端末１００−ｉ（ｉ＝１〜ｎ）によって、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）が構築されている。ＬＡＮスイッチ１０１は、広域ネットワーク１０２のエッジスイッチ１０３−１に接続されている。
【００３１】
ユーザ端末１００は、データセンタ１０９内のストレージ１０５に対して、データを読み書きする。ＬＡＮスイッチ１０１は、受信したパケットを転送する。具体的には、ＬＡＮスイッチ１０１は、受信したパケットがユーザサイト１０８の内部宛てであると、宛先のユーザ端末１００へパケットを転送する。一方、受信したパケットがユーザサイト１０８の外部宛てであると、エッジスイッチ１０３−１へパケットを転送する。
【００３２】
データセンタ１０９では、パケット転送装置１０４及びｎ台のストレージ１０５−ｉ（ｉ＝１〜ｎ）によって、ＩＰ−ＳＡＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）が構築されている。パケット転送装置１０４は、広域ネットワーク１０２のエッジスイッチ１０３−２に接続されている。
【００３３】
ストレージ１０５は、ディスク制御装置及びディスクドライブによって構成されるＲＡＩＤ装置やＪＢＯＤ（Ｊｕｓｔ  Ｂｕｎｃｈ  Ｏｆ  Ｄｉｓｋｓ）等であり、ユーザ端末１００のデータを記憶する。
【００３４】
パケット転送装置１０４は、詳細は後述するが、広域ネットワーク１０２の帯域を制御しながら、受信したパケットを転送する。
【００３５】
管理コンソール１０７は、パケット転送装置１０４と接続され、パケット転送装置１０４を管理するコンピュータである。なお、パケット転送装置１０４と管理コンソール１０７は、ネットワーク経由で接続されてもよい。
【００３６】
ユーザサイト１０８側のエッジスイッチ１０３−１とデータセンタ１０９側のエッジスイッチ１０３−２とは、帯域保証サービスが適用されている広域ネットワーク１０２で接続されている。ユーザサイト１０８は、広域ネットワーク１０２において、広域ネットワーク事業者と締結した契約帯域の使用が保証される。
【００３７】
なお、エッジスイッチ１０３−１、１０３−２は、ＵＰＣ（Ｕｓｅｒ  Ｐａｒａｍｅｔｅｒ  Ｃｏｎｔｒｏｌ）を備える。ＵＰＣは、広域ネットワークのトラヒック量が契約帯域内に収まっているか否かを監視する。これによって、ＵＰＣは、契約帯域を越えるトラヒック量を検知すると、契約帯域を超過したパケットを廃棄する。
【００３８】
次に、ユーザ端末１００がストレージ１０５のデータを読み出す処理を説明する。
【００３９】
まず、データの読み出しを要求するユーザ端末１００は、ｉＳＣＳＩコマンドのＲＤ要求をストレージ１０５に送信する。なお、ＲＤ要求には、要求ＲＤ長が含まれている。要求ＲＤ長は、ユーザ端末１００がストレージ１０５に読み出しを要求するデータのサイズである。
【００４０】
ＲＤ要求を受信したストレージ１０５は、該当するＲＤデータをストレージから読み出す。そして、ストレージ１０５は、読み出したＲＤデータをＲＤデータパケットに格納して、ユーザ端末１００に送信する。但し、ＲＤデータのサイズがネットワークの経路ＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｆｅｒ  Ｕｎｉｔ）を超える場合、ストレージ１０５は、ＲＤデータを複数のＲＤデータパケットに格納して送信する。
【００４１】
ここで、従来のストレージセントリックネットワークシステムにおけるデータ読み出し処理時のパケットの廃棄について説明する。
【００４２】
ＲＤ要求のデータのサイズは、１０６バイト程度である。一方、ＲＤデータのデータサイズは、ユーザ端末１００が要求するデータによって異なるが、通常、数十キロバイトから数百キロバイト以上である。
【００４３】
このため、広域ネットワーク１０２では、ＲＤ要求のトラヒック量が契約帯域内であっても、ＲＤデータパケットのトラヒック量が契約帯域を超過する場合がある。契約帯域を超過したＲＤデータパケットは、エッジスイッチ１０３−２の帯域制御等によって途中経路で廃棄される。
【００４４】
次に、ユーザ端末１００がストレージ１０５へデータを書き込む処理を説明する。
【００４５】
まず、データの書き込みを要求するユーザ端末１００は、ｉＳＣＳＩコマンドのデータＷＲ要求をストレージ１０５に送信する。
【００４６】
ＷＲ要求を受信したストレージ１０５は、データの書き込みを準備する。ストレージ１０５は、準備が完了すると、ｉＳＣＳＩパケットのＲ２Ｔ（Ｒｅａｄｙ  ｔｏ  Ｔｒａｎｓｆｅｒ）をユーザ端末１００に送信する。Ｒ２Ｔには、要求ＷＲ長が含まれている。要求ＷＲ長は、ストレージ１０５が一度に受け入れられるデータのサイズである。
【００４７】
Ｒ２Ｔを受信したユーザ端末１００は、Ｒ２Ｔの要求ＷＲ長を満たすＷＲデータをＷＲデータパケットに格納して、ストレージ１０５に送信する。但し、ＷＲデータがネットワークの経路ＭＴＵを超える場合、ユーザ端末１００は、ＷＲデータを複数のＷＲデータパケットに格納して送信する。
【００４８】
ここで、従来のストレージセントリックネットワークシステムにおけるデータ書き込み処理時のパケットの廃棄について説明する。
【００４９】
データ読み出しの場合と同様に、ＷＲ要求及びＲ２Ｔのデータサイズは小さく、ＷＲデータパケット３０２のデータサイズは大きい。
【００５０】
このため、広域ネットワーク１０２では、ＷＲ要求及びＲ２Ｔのトラヒック量が契約帯域内であっても、ＷＲデータパケットのトラヒック量が契約帯域を超過する場合がある。契約帯域を超過したＷＲデータパケットは、エッジスイッチ１０３−１の帯域制御等によって途中経路で廃棄される。
【００５１】
このように、従来のストレージセントリックネットワークシステムでは、パケットが廃棄されてしまっていた。このパケットの廃棄が問題となるのは以下の理由からである。
【００５２】
ｉＳＣＳＩは、下位層のプロトコルにＴＣＰを用いる。ＴＣＰは、送信端末と受信端末との間でのデータ転送の制御を行うプロトコルである。途中経路で廃棄されたパケットは、ＴＣＰによって再送制御される。しかし、パケット廃棄によって発生する再送パケットは、広域ネットワーク１０２の輻輳を悪化させるので、ストレージセントリックネットワークシステムの利用効率を低下させる。
【００５３】
また、ＴＣＰは、ｃｗｎｄ（Ｃｏｎｇｅｓｔｉｏｎ  Ｗｉｎｄｏｗ）を用いてパケットを転送制御する。ｃｗｎｄは、パケットを送信端末から受信端末へ転送する際の送信可能なデータの最大サイズである。ｃｗｎｄは、通信開始時、１セグメントである。そして、パケットが廃棄されずに通信が行われると、ｃｗｎｄは、ファードウィンドサイズまで増加する。しかし、パケットが途中経路で廃棄されると、ｃｗｎｄは減少する。
【００５４】
ここで、ＴＣＰを用いたデータ転送のスループットは、ｃｗｎｄ／ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）である。そのため、パケットの廃棄は、ｃｗｎｄを減少させるので、スループットを低下させる。
【００５５】
このように、パケットの廃棄は、ストレージセントリックネットワークシステムの利用効率を低下させ、更に、スループットも低下させる。
【００５６】
次に、本実施の形態のストレージセントリックネットワークシステムの通信で使用されるパケットについて説明する。
【００５７】
図２は、本発明の第１の実施の形態のｉＳＣＳＩパケットの構成図である。
【００５８】
ｉＳＣＳＩパケット６００は、ＩＰヘッダ部６０１、ＴＣＰヘッダ部６０２、ｉＳＣＳＩヘッダ部６０７及びユーザデータ部６０８を含む。
【００５９】
ＩＰヘッダ部６０１は、送信元ＩＰアドレス６０３及び宛先ＩＰアドレス６０４を含む。送信元ＩＰアドレス６０３は、当該パケットを送信する端末のアドレスである。宛先ＩＰアドレス６０４は、当該パケットを受信する端末のアドレスである。
【００６０】
ＴＣＰヘッダ部６０２は、送信元ポート番号６０５及び宛先ポート番号６０６を含む。送信元ポート番号６０５は、当該パケットを送信する端末のプロトコル又はアプリケーションを示す。宛先ポート番号６０６は、当該パケットを受信する端末のプロトコル又はアプリケーションを示す。
【００６１】
ｉＳＣＳＩヘッダ部６０７は、図３又は図４のように構成され、当該パケットのコマンドの種類等を示す。ユーザデータ部６０８は、当該パケットのメインデータが格納される。
【００６２】
図３は、本発明の第１の実施の形態のユーザ端末１００が送信するＲＤ要求又はＷＲ要求のｉＳＣＳＩヘッダ部６０７の構成図である。
【００６３】
なお、ＲＤ要求とは、ユーザ端末１００がデータの読み出しをストレージ１０５に要求するパケットである。また、ＷＲ要求とは、ユーザ端末１００がデータの書き込みをストレージ１０５に要求するパケットである。
【００６４】
ＲＤ要求又はＷＲ要求のｉＳＣＳＩヘッダ部６０７は、オペコード７０１、Ｒｅａｄ（Ｒ）ビット７０２、Ｗｒｉｔｅ（Ｗ）ビット７０３及び要求データ長７０４を含む。
【００６５】
オペコード７０１は、当該パケットのｉＳＣＳＩコマンドの種別であり、ＳＣＳＩコマンドを示す０ｘ１が格納される。
【００６６】
Ｒビット７０２には、当該パケットがＲＤ要求の場合に“１”が格納される。Ｗビット７０３には、当該パケットがＷＲ要求の場合に“１”が格納される。要求データ長７０４は、当該パケットがＲＤ要求であると、要求ＲＤ長が格納され、当該パケットがＷＲ要求であると、ＷＲ要求データ長が格納される。
【００６７】
要求ＲＤ長は、ユーザ端末１００がストレージ１０５に読み出しを要求するデータのサイズである。ＷＲ要求データ長は、ユーザ端末１００がストレージ１０５に書き込みを要求するデータのサイズである。
【００６８】
図４は、本発明の第１の実施の形態のストレージ１０５が送信するＲ２ＴのｉＳＣＳＩヘッダ部６０７の構成図である。
【００６９】
なお、Ｒ２Ｔは、ストレージ１０５がデータの書き込み準備が完了したことを通知するパケットである。
【００７０】
Ｒ２ＴのｉＳＣＳＩヘッダ部６０７は、オペコード７０１及び要求ＷＲ長８０１を含む。オペコード７０１は、ｉＳＣＳＩコマンドの種別であり、Ｒ２Ｔを示す０ｘ３１が格納される。要求ＷＲ長８０１は、ストレージ１０５がユーザ端末１００から一度に受け入れられるデータのサイズである。
【００７１】
図５は、本発明の第１の実施の形態のパケット転送装置１０４の内部におけるパケットの構成図である。
【００７２】
ｉＳＣＳＩパケット６００は、パケット転送装置１０４の内部において、内部ヘッダ部１０００が付加される。
【００７３】
内部ヘッダ部１０００は、入力回線番号１００１、出力回線番号１００２、帯域制御フラグ１００３、ユーザ識別番号１００４、要求データ長１００５、ＲＤフラグ１００６及びＲ２Ｔフラグ１００７を含む。
【００７４】
入力回線番号１００１は、当該パケットが入力された回線の識別子である。出力回線番号１００２は、当該パケットが出力される回線の識別子である。帯域制御フラグ１００３は、当該パケットが帯域制御されるか否かを示す。
【００７５】
ユーザ識別番号１００４は、当該パケットを送信したユーザ端末１００の属するユーザサイト１０８の識別子である。要求データ長１００５は、当該パケットがＲＤ要求の場合には要求ＲＤ長が格納され、Ｒ２Ｔの場合には要求ＷＲ長が格納される。ＲＤフラグ１００６は、当該パケットの送信元ＩＰアドレス６０３が、図８で後述するＲＤ制御テーブルに格納されているか否かを示す。Ｒ２Ｔフラグ１００７は、当該パケットの宛先ＩＰアドレス６０４が、図９で後述するＲ２Ｔテーブルに格納されているか否かを示す。
【００７６】
図６は、本発明の第１の実施の形態のパケット転送装置１０４のブロック図である。
【００７７】
パケット転送装置１０４は、入力回線４１１、パケット受信回路４０１、帯域制御部４０２、経路検索回路４０３、装置制御部４０５、パケット送信回路４０４及び出力回線４１２から構成される。
【００７８】
入力回線４１１は、ｎ個設けられ、外部からパケット受信回路４０１にパケットを入力する回線である。パケット受信回路４０１は、入力回線と同数のｎ個設けられ、パケットの受信処理をする。なお、パケット受信回路４０１は、複数個の入力回線４１１に対して１個設けられてもよい。
【００７９】
帯域制御部４０２は、送信間隔を制御しながら、経路探索回路４０３にパケットを送信する。帯域制御部４０２の詳細の構成は、図７で説明する。経路検索回路４０４は、内部に経路検索テーブル（図示省略）を備え、パケットを送信する出力回線を検索する。なお、経路検索テーブルは、宛先ＩＰアドレス６０４及び宛先ＩＰアドレス６０４に対応する出力回線４１２の番号から構成される。
【００８０】
装置制御部４０５は、信号線４１３、４１５を介して、広域ネットワーク１０２の契約帯域情報や、ユーザサイト１０８のネットマスクの情報等を帯域制御部４０２に設定する。また、装置制御部４０５は、信号線４１４を介して、パケットの経路検索情報等を経路検索回路４０３に設定する。なお、これらの情報は、管理コンソール１０７から装置制御部４０５に入力される。
【００８１】
出力回線４１２は、ｎ個設けられ、パケット送信回路から外部にパケットを送信する回線である。パケット送信回路４０４は、出力回線４１２と同数のｎ個設けられ、パケットを送信処理して出力回線４１２に送る。なお、パケット送信回路４０４は、複数個の出力回線４１２に対して１個設けられてもよい。
【００８２】
次に、パケットを受信したときのパケット転送装置１０４の処理について簡単に説明する。
【００８３】
外部から送信されたパケットは、入力回線４１１を介して、パケット受信回路４０１に入力される。パケット受信回路４０１は、パケットを受信すると、パケットに内部ヘッダ部１０００を付加する。なお、付加された内部ヘッダ部１０００を構成する各要素には、初期値が設定されている。
【００８４】
次に、パケット受信回路４０１は、付加した内部ヘッダ部１０００の入力回線番号１００１に、パケットを受信した入力回線４１１の回線番号を格納する。そして、パケット受信回路４０１は、パケットを帯域制御部４０２へ送る。
【００８５】
帯域制御部４０２は、受け取ったパケットが、帯域制御パケット又は非帯域制御パケットのどちらであるかを、帯域制御フラグ１００３を参照して判定する。
【００８６】
帯域制御部４０２は、帯域制御パケットであると判定すると、パケットロスが生じないように送信間隔を制御しながら、経路検索回路４０３へパケットを送る。
【００８７】
一方、帯域制御部４０２は、非帯域制御パケットであると判定すると、すぐに経路検索回路４０３へパケットを送る。
【００８８】
経路検索回路４０３は、パケットを受信すると、当該パケットの宛先ＩＰアドレス６０４を参照し、パケットを送信する出力回線４１２を経路検索テーブルから検索する。経路検索回路４０３は、検索された出力回線４１２の番号を内部ヘッダ部１０００の出力回線番号１００２へ格納する。そして、経路検索回路４０３は、検索された出力回線４１２と接続するパケット送信回路４０４へ当該パケットを送る。
【００８９】
パケット送信回路４０４は、パケットを受信すると、内部ヘッダ部１０００の出力回線番号１００２を抽出する。次に、パケット送信回路４０４は、パケットの内部ヘッダ部１０００を削除する。そして、パケット送信回路４０４は、抽出した出力回線番号１００２の出力回線４１２を介して、パケットを外部へ送信する。
【００９０】
図７は、本発明の第１の実施の形態の帯域制御部４０２のブロック図である。
【００９１】
帯域制御部４０２は、パケット処理部５００及びパケットスケジューリング部５１０から構成される。
【００９２】
パケット処理部５００は、パケット判定部５０１及びパケットバッファ部５０２から構成される。パケット判定部５０１は、パケット受信回路４０１から受信したパケットの種別を判定し、パケットバッファ部５０２へ送る。また、パケット判定部５０１は、図８で説明するＲＤ制御テーブル及び図９で説明するＲ２Ｔ制御テーブルを備えており、装置制御部４０５から信号線４１５を介して送られてくる情報によって、これらのテーブルを更新する。パケットバッファ部５０２は、パケット判定部５０１から受信したパケットをユーザ識別番号１００４ごとに保持する。
【００９３】
パケットスケジューリング部５１０は、パケット送信キュー決定部５１１、二分木ソート回路５１２及びユーザソーティング情報メモリ５１４から構成される。パケット送信キュー決定部５１１は、パケットバッファ部５０２が保持するパケットの送信順序を決定する。なお、パケット送信キュー決定部５１１は、信号線４１３を介して、送信順序を決めるための各種情報を設定される。
【００９４】
二分木ソート回路５１２は、最も早くパケットを送信するユーザ端末１００を決定する。ユーザソーティング情報メモリ５１４には、二分木ソート回路５１２で使用する情報が格納される。
【００９５】
図８は、本発明の第１の実施の形態のパケット判定部５０１が備えるＲＤ制御テーブルの構成図である。
【００９６】
ＲＤ制御テーブル９００は、送信元ＩＰアドレスグループ９０１、ネットマスク９０２、ユーザ識別番号９０３及び制御帯域９０４を含む。
【００９７】
送信元ＩＰアドレスグループ９０１は、ＲＤ要求を送信するユーザ端末１００が属するユーザサイト１０８のＩＰアドレスである。ネットマスク９０２は、ユーザ端末１００が属するユーザサイト１０８のＩＰアドレスをパケットの送信元ＩＰアドレス６０３から分離する。ユーザ識別番号９０３は、ユーザ端末１００が属するユーザサイト１０８の識別子である。制御帯域９０４は、ユーザ端末１００が属するユーザサイト１０８で締結された広域ネットワーク１０２の契約帯域である。
【００９８】
図９は、本発明の第１の実施の形態のパケット判定部５０１が備えるＲ２Ｔ制御テーブルの構成図である。
【００９９】
Ｒ２Ｔテーブル１７００は、宛先ＩＰアドレスグループ１７０１、ネットマスク１７０２、ユーザ識別番号１７０３及び制御帯域１７０４を含む。
【０１００】
宛先ＩＰアドレスグループ１７０１は、Ｒ２Ｔを受信するユーザ端末１００が属するユーザサイト１０８のＩＰアドレスである。ネットマスク１７０２は、ユーザ端末１００が属するユーザサイト１０８のＩＰアドレスをパケットの宛先ＩＰアドレス６０４から分離する。ユーザ識別番号１７０３は、ユーザ端末１００が属するユーザサイト１０８の識別子である。制御帯域１７０４は、ユーザ端末１００が属するユーザサイト１０８で締結された広域ネットワーク１０２の契約帯域である。
【０１０１】
図１０は、本発明の第１の実施の形態のパケットバッファ部５０２のブロック図である。
【０１０２】
パケットバッファ部５０２は、バッファ書き込み制御回路２００１、非帯域制御キューバッファ２００２、帯域制御キューバッファ２００３、バッファ読み出し制御回路２００４及びパケットバッファアドレスメモリ２００５から構成される。
【０１０３】
バッファ書き込み制御回路２００１は、非帯域制御キューバッファ２００２又は帯域制御キューバッファ２００３に、パケット判定部５０１から受信したパケットを格納する。
【０１０４】
非帯域制御キューバッファ２００２は、ユーザ識別番号“０”に対応する１本のキューを備え、非帯域制御パケットを一時的に保持する。帯域制御キューバッファ２００３は、ユーザ識別番号ごとに分類された仮想キュー群から構成され、帯域制御パケットを一時的に保持する。仮想キュー群は、一台のユーザ端末１００ごとに使用される複数の仮想キューから構成される。なお、仮想キュー群は、同一のユーザサイト１０８に属する複数のユーザ端末１００で共用される仮想キューから構成されたり、一本の仮想キューから構成されてもよい。
【０１０５】
バッファ読み出し制御回路２００４は、非帯域制御キューバッファ２００２又は帯域制御キューバッファ２００３からパケットを読み出す。パケットバッファアドレスメモリ２００５は、パケットを保持する非帯域制御キューバッファ２００２及び帯域制御キューバッファ２００３のパケットバッファアドレスを記憶する。
【０１０６】
図１１は、本発明の第１の実施の形態のパケット送信キュー決定部５１１のブロック図である。
【０１０７】
パケット送信キュー決定部５１１は、リクエスト振り分け部２１０１、送信リクエストキュー２１０２、送信キュー選択部２１０３及び送信時刻計算部２１０４から構成される。
【０１０８】
送信リクエストキュー２１０２は、ユーザ識別番号９０３及びユーザ識別番号１７０３の合計に対応する数だけ設けられ、送信リクエスト５２４をユーザ識別番号９０３、１７０３ごとに格納する。なお、送信リクエスト５２４は、パケットバッファ部５０２が保持しているパケットの送信の許可を要求する。
【０１０９】
また、それぞれの送信リクエストキュー２１０２は、帯域制御用キュー及び非帯域制御用キューを備える。なお、帯域制御用キューは、帯域制御フラグ１００３に“１”が格納されている送信リクエスト５２４を格納する。非帯域制御キューは、帯域制御フラグ１００３に“０”が格納されている送信リクエスト５２４を格納する。
【０１１０】
リクエスト振り分け部２１０１は、パケットバッファ部５０２から受信した送信リクエスト５２４を送信リクエストキュー２１０２へ格納する。
【０１１１】
具体的には、リクエスト振り分け部２１０１は、送信リクエスト５２４を受信すると、送信リクエスト５２４の帯域制御フラグ１００３の値を判定する。帯域制御フラグ１００３に“１”が格納されていると、リクエスト振り分け部２１０１は、ユーザ識別番号１００４に対応する送信リクエストキュー２１０２の帯域制御用キューへ送信リクエスト５２４を格納する。次に、リクエスト振り分け部２１０１は、ユーザ識別番号１００４及び要求データ長１００５を二分木ソート回路５１２及び送信時刻計算部２１０４へ送信する。
【０１１２】
一方、帯域制御フラブ１００３に“０”が格納されていると、リクエスト振り分け部２１０１は、ユーザ識別番号１００４に対応する送信リクエストキュー２１０２の非帯域制御用キューへ送信リクエスト５２４を格納する。なお、この場合、リクエスト振り分け部２１０１は、ユーザ識別番号１００４及び要求データ長１００５を二分木ソート回路５１２及び送信時刻計算部２１０４へ送信しない。
【０１１３】
送信時刻計算部２１０４は、帯域制御フラグ１００３に“１”が格納されている送信リクエスト５２４の送信時刻を計算し、送信キュー選択部２１０３に送信時刻を指示する。送信キュー選択部２１０３は、送信を許可する送信リクエスト５２４を送信リクエストキュー２１０２から選択する。
【０１１４】
図１２は、本発明の第１の実施の形態のユーザソーティング情報メモリ５１４の説明図である。
【０１１５】
ユーザソーティング情報メモリ５１４は、ユーザソーティング情報を格納する。ユーザソーティング情報は、ユーザ識別番号１１００、送信予定時刻１１０１及びＶＬＤ１１０２を含む。
【０１１６】
ユーザ識別番号１１００は、ユーザ端末１００が属するユーザサイト１０８の識別子である。送信予定時刻１１０１は、送信キュー選択部２１０３が当該レコードのユーザ識別番号の帯域制御キューから送信リクエスト５２４を読み出す予定の時刻である。ＶＬＤ１１０２は、送信リクエスト５２４が帯域制御用キューに保持されていると、“１”が格納される。
【０１１７】
アドレス「１０００」から「１１１１」のエントリは、ユーザ情報エリアであり、アドレス「００００」から「０１１１」のエントリは、ソーティング情報エリアである。ユーザ情報エリアは、二分木ソート回路５１２によって、ユーザ０からユーザ７のソーティング情報がユーザ識別番号１１００の順に格納される。ソーティング情報エリアは、二分木ソート回路５１２によって、送信予定時刻が最も早いユーザ（暫定送信ユーザ）を選択するための情報が格納される。
【０１１８】
次に、二分木ソート回路５１２が、ユーザソーティング情報メモリ５１４に値を格納するソーティング処理を説明する。
【０１１９】
図１３は、本発明の第１の実施の形態の二分木ソート回路５１２のソーティング処理の説明図である。
【０１２０】
本図は、二分木構造を示す。本図の二分木の頂点（根）、分岐点、先端（葉）には、それぞれエントリがある。二分木の根に位置するエントリを根エントリと呼び、葉に位置するエントリを葉エントリと呼ぶ。また、任意のエントリからみて根側にあるエントリを親エントリと呼び、葉側にある二つのエントリを子エントリと呼ぶ。エントリには、上から順に、ユーザ識別番号、実送信予定時刻、ＶＬＤが格納される。
【０１２１】
まず、二分木ソート回路５１２は、すべてのユーザ端末１００のユーザ識別番号、実送信予定時刻及びＶＬＤをユーザ情報エリアの葉エントリ１４３０〜１４３７に格納する。
【０１２２】
次に、二分木ソート回路５１２は、親エントリの配下の子エントリの一方を選択する。そして、二分木ソート回路５１２は、選択されたエントリの情報を親エントリに格納する。
【０１２３】
具体的には、二分木ソート回路５１２は、葉エントリ１４３０〜１４３７から選択した値をエントリ１４２０〜１４２３に格納する。次に、エントリ１４２０〜１４２３から選択した値をエントリ１４１０、１４１１に格納する。そして、エントリ１４１０、１４１１から選択した値をエントリ１４００に格納する。
【０１２４】
なお、二分木ソート回路５１２は、以下の（１）〜（３）の規則に従って、子エントリの一方を選択する。
【０１２５】
（１）二分木ソート回路５１２は、一方の子エントリのＶＬＤが“１”で、他方の子エントリのＶＬＤが“０”のときは、ＶＬＤが“１”の子エントリを選択する。
【０１２６】
例えば、エントリ１４２２の配下の子エントリは、エントリ１４３４及びエントリ１４３５である。二分木ソート回路５１２は、エントリ１４３４及びエントリ１４３５から、ＶＬＤが“１”のエントリ１４３５を選択する。
【０１２７】
（２）二分木ソート回路５１２は、子エントリのＶＬＤが共に“１”のときには、送信予定時刻が早い子エントリを選択する。なお、二分木ソート回路５１２は、子エントリのＶＬＤが共に“１”であり、且つ送信予定時刻が同じ場合には、ユーザ識別番号の若い方を選択する。
【０１２８】
例えば、エントリ１４２０の配下の子エントリは、エントリ１４３０及びエントリ１４３１である。二分木ソート回路５１２は、エントリ１４３０とエントリ１４３１とを比較すると、ＶＬＤが共に“１”であるので、実送信時刻が早いエントリ１４３１を選択する。
【０１２９】
（３）二分木ソート回路５１２は、子エントリのＶＬＤが共に“０”のときは、実送信予定時刻が早い子エントリを選択する。なお、二分木ソート回路５１２は、子エントリのＶＬＤが共に“０”であり、且つ送信予定時刻が同じ場合には、ユーザ識別番号の若い方を選択する。
【０１３０】
例えば、エントリ１４２１の配下の子エントリは、エントリ１４３２及びエントリ１４３３である。二分木ソート回路５１２は、エントリ１４３２とエントリ１４３３を比較すると、ＶＬＤが共に“０”であるので、実送信時刻が早いエントリ１４３２を選択する。
【０１３１】
二分木ソート回路５１２は、以上のような規則に従って、葉エントリから順にエントリを格納することによって、暫定送信ユーザを決定する。
【０１３２】
次に、ユーザソーティング情報メモリ５１４のアドレスの管理について説明する。ここでは、ユーザ数をＭ（＝２のｍ乗）として説明する。なお、アドレスは２進数（ｍ＋１ビット）で示す。
【０１３３】
ユーザソーティング情報メモリ５１４の二分木の根のアドレスは、「０００…００１」とする。また、アドレス「ｘｙｙ…ｙｙｚ」のエントリに対して、親エントリのアドレスは「０ｘｙ…ｙｙｙ」とし、子エントリのアドレスは「ｙｙｙ…ｙｚ０」及び「ｙｙｙ…ｙｚ１」とする。葉エントリのアドレスは、「１００…０００」から「１１１…１１１」とする。
【０１３４】
以上のように、ユーザソーティング情報メモリ５１４のアドレスを管理することによって、ユーザソーティング情報メモリ５１４にアクセスするためのアドレス生成回路を簡単に構成することができる。なぜなら、アドレス「ｘｙｙ…ｙｙ０」のエントリとアドレス「ｘｙｙ…ｙｙ１」を比較し、その比較結果をアドレス「０ｘｙ…ｙｙｙ」のエントリに書き込めばいいからである。
【０１３５】
次に、図１３の状態からユーザ４の送信予定時刻が“１”に更新された場合の二分木ソート回路５１２のソーティング処理について説明する。
【０１３６】
図１４は、本発明の第１の実施の形態の送信予定時刻更新後の二分木ソート回路５１２のソーティング処理の説明図である。
【０１３７】
まず、二分木ソート回路５１２は、送信予定時刻が更新されたユーザ４のエントリ１４３４を書き換える。具体的には、二分木ソート回路５１２は、エントリ１４３４の実送信予定時刻を“１”に書き換え、ＶＬＤを“１”に書き換える。
【０１３８】
次に、二分木ソート回路５１２は、葉エントリ１４３０〜１４３７以外を更新する。但し、二分木ソート回路５１２は、すべてのエントリを更新する必要はなく、書き換えた葉エントリ１４３４から根エントリ１４００に向かう経路のエントリだけを更新すればよい。本図において、二分木ソート回路５１２は、前述した規則に従って、エントリ１４３４、エントリ１４２２、エントリ１４１１及びエントリ１４００を更新した。
【０１３９】
以上のように、二分木ソート回路５１２は、送信予定時刻が更新されると、暫定送信ユーザを更新する。
【０１４０】
次に、帯域制御部４０２がパケットを受信して送信するまでの処理を説明する。
【０１４１】
図１５は、本発明の第１の実施の形態のパケット判定部５０１の処理のフローチャートである。
【０１４２】
まず、パケット（入力パケット）を受信すると、ＴＣＰヘッダ部６０２の送信元ポート番号６０５及び宛先ポート番号６０６を抽出する。抽出した送信元ポート番号６０５及び宛先ポート番号６０６によって、入力パケットがｉＳＣＳＩパケットであるか否かを判定する（１８０１）。
【０１４３】
入力パケットがｉＳＣＳＩパケットであると、入力パケットの送信元ＩＰアドレス６０３がＲＤ制御テーブル９００に格納されているか否かを判定する（１８０２）。
【０１４４】
具体的には、入力パケットから送信元ＩＰアドレス６０３を抽出する。次に、抽出した送信元ＩＰアドレス６０３とＲＤ制御テーブル９００のネットマスク９０２との論理積を計算する。そして、計算した論理積が、ＲＤ制御テーブル９００の送信元ＩＰアドレスグループ９０１に格納されているか否かを判定する。
【０１４５】
計算した論理積が格納されているレコードをＲＤ制御テーブル９００から発見すると、そのレコードのユーザ識別番号９０３を抽出する。次に、抽出したユーザ識別番号９０３をユーザ識別番号１００４に格納し、更に、ＲＤフラグ１００６に“１”を格納する（１８０３）。
【０１４６】
次に、オペコード７０１及びＲビット７０２を参照して、入力パケットがＲＤ要求であるか否かを判定する（１８０４）。なお、ｉＳＣＳＩコマンドの場合、オペコード７０１に０ｘ１が格納され、且つＲビット７０２に“１”が格納されていると、入力パケットをＲＤ要求と判定する。
【０１４７】
入力パケットがＲＤ要求であると、帯域制御フラグ１００３に“１”を格納する（１８０５）。次に、入力パケットのｉＳＣＳＩヘッダ６０７から要求データ長７０４を抽出する（１８０６）。
【０１４８】
次に、抽出した要求データ長７０４を要求データ長１００５に格納する（１８０７）。そして、入力パケットをパケットバッファ部５０２へ転送し（１８０８）、処理を終了する。
【０１４９】
一方、ステップ１８０４で入力パケットがＲＤ要求でないと、帯域制御フラグ１００３に“０”を格納する（１８０９）。次に、入力パケットが非帯域制御パケットであるので、要求データ長を“０”とし（１８１０）、要求データ長１００５に格納する（１８０７）。そして、入力パケットをパケットバッファ部５０２へ転送し（１８０８）、処理を終了する。
【０１５０】
一方、ステップ１８０２で、計算した論理積がＲＤ制御テーブル９００から発見できないと、入力パケットの宛先ＩＰアドレス６０４がＲ２Ｔ制御テーブル１７００に格納されているか否かを判定する（１８１１）。
【０１５１】
具体的には、入力パケットから宛先ＩＰアドレス６０４を抽出する。次に、抽出した宛先ＩＰアドレス６０４とＲ２Ｔ制御テーブル１７００のネットマスク１７０２との論理積を計算する。そして、計算した論理積がＲ２Ｔ制御テーブル１７００の宛先ＩＰアドレス１７０１に格納されているか否かを判定する。
【０１５２】
計算した論理積が格納されているレコードをＲ２Ｔ制御テーブル１７００から発見すると、そのレコードのユーザ識別番号１７０３を抽出する。次に、抽出したユーザ識別番号１７０３をユーザ識別番号１００４へ格納し、更に、Ｒ２Ｔフラグ１００７に“１”を格納する（１８１２）。
【０１５３】
次に、オペコード７０１を参照して、入力パケットがＲ２Ｔであるか否かを判定する（１８１３）。ｉＳＣＳＩコマンドの場合、オペコード７０１に０ｘ３１が格納されていると、入力パケットをＲ２Ｔと判定する。
【０１５４】
入力パケットがＲ２Ｔであると、帯域制御フラグ１００３に“１”を格納する（１８１４）。次に、入力パケットのｉＳＣＳＩヘッダ６０７から要求ＷＲ長８０１を抽出する（１８１５）。
【０１５５】
次に、抽出した要求ＷＲ長８０１を要求データ長１００５に格納する（１８１６）。そして、入力パケットをパケットバッファ部５０２へ転送し（１８１７）、処理を終了する。
【０１５６】
一方、ステップ１８１３で入力パケットがＲ２Ｔでないと、帯域制御フラグ１００３に“０”を格納する（１８１８）。次に、入力パケットが非帯域制御パケットであるので、要求データ長を“０”とし（１８１９）、要求データ長１００５に格納する（１８１６）。そして、パケット判定部５０１は、入力パケットをパケットバッファ部５０２へ転送し（１８１７）、処理を終了する。
【０１５７】
一方、ステップ１８０１で入力パケットがｉＳＣＳＩパケットでない場合、又は、ステップ１８１１で宛先ＩＰアドレス６０４がＲ２Ｔ制御テーブル１７００に格納されていない場合には、帯域制御が必要ないので、ユーザ識別番号１００４、ＲＤフラグ１００６及びＲ２Ｔフラグ１００７に“０”をそれぞれ格納する（１８２０）。
【０１５８】
次に、帯域制御フラグ１００３に“０”を格納する（１８２１）。次に、要求データ長１００５に“０”を格納する（１８２２）。そして、入力パケットをパケットバッファ部５０２へ転送し（１８２３）、処理を終了する。
【０１５９】
以上のように、パケット判定部５０１は、入力パケットの種別を判定し、判定した種別に対応した値を内部ヘッダ部１０００に格納する。すなわち、パケット判定部５０１は、入力パケットがｉＳＣＳＩのＲＤ要求又はｉＳＣＳＩのＲ２Ｔであれば、帯域制御が必要なので、帯域制御フラグ１００３に“１”を設定し、要求データ長１００５にデータ長を設定する。それ以外の場合には、ｉＳＣＳＩのＲＤ要求パケット又はｉＳＣＳＩのＲ２Ｔパケットであれば、帯域制御が必要ないので、帯域制御フラグ１００３及び要求データ長１００５に“０”を設定する。
【０１６０】
パケット判定部５０１は、ステップ１８０３において、送信元ＩＰアドレス６０３に対応するユーザ識別番号９０３を、ユーザ識別番号１００４に格納する。よって、パケットバッファ部５０２は、入力パケットが帯域制御パケット又は非帯域制御パケットのいずれであるかに関わらず、ユーザ識別番号１００４のキューで入力パケットを保持する。これによって、同一の送信元ＩＰアドレス９０３から送られてきたパケットの順序が、パケット転送装置１０４内で入れ替わることを防ぐ。
【０１６１】
ここで、本実施の形態でパケットの順序の入れ替わりを防ぐ理由を説明する。
【０１６２】
同一の送信端末から送られてきたパケットは、同一のＴＣＰフロー（送信元ＩＰアドレス６０３、宛先ＩＰアドレス６０４、送信元ポート番号６０５及び宛先ポート番号６０６が同じパケット）に属する可能性が高い。パケットのＴＣＰヘッダ部６０２には、シーケンス番号が含まれる。シーケンス番号は、同一のＴＣＰフローに属するパケットが送信端末から送信された順番を示す。受信端末は、パケットを受信すると、シーケンス番号を参照して、順番どおりにパケットが届いているか否かを判定する。そして、受信端末は、順番どおりにパケットが届いていないと、正確にパケットを受信することができなくなり、パケットを廃棄してしまう可能性がある。そのため、本実施の形態では、同一のＴＣＰフローのパケットの順序の入れ替わりは許されない。
【０１６３】
同様に、パケット判定部５０１は、ステップ１８１２において、宛先ＩＰアドレスに対応するユーザ識別番号を１７０３を、ユーザ識別番号１００４に格納する。これによって、同一の宛先ＩＰアドレス６０４に送るパケットの順序が、パケット転送装置１０４内で入れ替わることを防ぐ。
【０１６４】
図１６は、本発明の第１の実施の形態のバッファ書き込み制御回路２００１の処理のフローチャートである。
【０１６５】
まず、パケット判定部５０１からパケットを受信すると、受信したパケットからユーザ識別番号１００４を抽出する。次に、抽出したユーザ識別番号１００４が“０”であるか否かを判定する（２４０１）。
【０１６６】
識別番号１００４が“０”であると、非帯域制御キューバッファ２００２に当該パケットを格納する（２４０２）。そして、パケットを格納すると、処理を終了する（２４０４）。
【０１６７】
一方、ユーザ識別番号１００４が“０”でないと、抽出したユーザ識別番号１００４と帯域制御キューバッファ２００３内のユーザ識別番号とが一致する仮想キュー群を選択し、その中から仮想キューを選択して、パケットを格納する（２４０３）。
【０１６８】
具体的には、受信パケットのＲＤフラグ１００６及びＲ２Ｔフラグ１００７を確認する。ＲＤフラグに“１”が格納されていると、バッファ書き込み制御回路２００１は、送信元ＩＰアドレス６０３に基づいて、パケットを格納する仮想キューを選択する。一方、Ｒ２Ｔフラグに“１”が格納されていると、バッファ書き込み制御回路２００１は、宛先ＩＰアドレス６０４に基づいて、パケットを格納する仮想キューを選択する。このようにパケットを格納する仮想キューを選択することによって、同一のＴＣＰフローのパケットの順序が入れ替わることを防ぐ。
【０１６９】
その後、帯域制御キューバッファ２００３内の選択された仮想キューにパケットを格納する。
【０１７０】
そして、パケットを格納すると、処理を終了する（２４０４）。
【０１７１】
図１７は、本発明の第１の実施の形態のバッファ読み出し制御回路２００４の処理のフローチャートである。
【０１７２】
まず、送信許可信号５２３を送信キュー選択部２１０３から受信したか否かを判定する（２５０１）。
【０１７３】
送信許可信号５２３を受信すると、受信した送信許可信号５２３に基づいて、帯域制御キューバッファ２００３内の仮想キュー又は非帯域制御キューバッファ２００２（キュー）からパケットを読み出す（２５０２）。具体的には、送信許可信号５２３からパケットバッファアドレスを抽出する。次に、抽出したパケットバッファアドレスに対応するキューからパケットを読み出す。
【０１７４】
そして、読み出したパケットを経路検索回路４０５へ送信する。
【０１７５】
次に、パケットを送信すると、送信起動信号５２５を送信キュー選択部２１０３へ送信する（２５０３）。送信起動信号５２５は、送信許可信号５２３を要求する信号である。
【０１７６】
一方、ステップ２５０１で送信許可信号５２３を受信していないと、そのままステップ２５０４へ進む。
【０１７７】
次に、いずれかのキューの先頭が更新されたか否かを判定する（２５０４）。なお、キューの先頭が更新されるとは、空のキューにパケットが入力されたり、複数のパケットを保持するキューの先頭のパケットが読み出されたりすることである。
【０１７８】
キューの先頭が更新されていると、更新されたキューに保持される先頭のパケットから、帯域制御フラグ１００３、ユーザ識別番号１００４及び要求データ長１００５を抽出する。次に、更新されたキューのパケットバッファアドレスをパケットバッファアドレスメモリ２００５から取得する。次に、抽出した帯域制御フラグ１００３、ユーザ識別番号１００４、要求データ長１００５及び取得したパケットバッファアドレスを送信リクエスト５２４とする。そして、送信リクエスト５２４を送信キュー選択部２１０３へ送信し（２５０５）、処理を終了する（２５０６）。
【０１７９】
一方、ステップ２５０４でキューの先頭が更新されていないと、そのまま処理を終了する（２５０６）。
【０１８０】
図１８は、本発明の第１の実施の形態のパケット受信時のパケットスケジューリング部５１０の処理のフローチャートである。
【０１８１】
まず、パケット送信キュー決定部５１１内のリクエスト振り分け部２１０１は、送信リクエスト５２４をバッファ読み出し制御回路２００４から受信する（１２０２）。
【０１８２】
リクエスト振り分け部２１０１は、送信リクエスト５２４を受信すると、送信リクエスト５２４に含まれる帯域制御フラグ１００３に“１”が格納されているか否かを判定する（１２０８）。
【０１８３】
帯域制御フラグに“１”が格納されていると、リクエスト振り分け部２１０１は、ユーザ識別番号１００４に対応する送信リクエストキュー２１０２内の帯域制御用キューに送信リクエスト５２４を格納する。更に、リクエスト振り分け部２１０１は、格納した送信リクエスト５２４のユーザ識別番号１００４及び要求データ長１００５を二分岐ソート回路５１２及び送信時刻計算部２１０４へ送信する。
【０１８４】
送信時刻計算部２１０４は、ユーザ識別番号１００４及び要求データ長１００５を受信する。すると、送信時刻計算部２１０４は、受信したユーザ識別番号１００４のユーザソーティング情報をユーザソーティング情報メモリ５１４から読み出す。ユーザソーティング情報には、送信予定時刻１１０１及びＶＬＤ１１０２が含まれる。送信時刻計算部２１０４は、読み出したソーティング情報に含まれるＶＬＤ１１０２が“１”であるか否かを判定する（１２０３）。
【０１８５】
ＶＬＤ１１０２が“１”であると、送信時刻計算部２１０４は、送信予定時刻１１０１を変更しないで（１２０４）、処理を終了する（１２１１）。なぜなら、ＶＬＤ１１０２が“１”の場合に、送信予定時刻１１０１を変更すると、契約帯域を守ることが出来なくなるからである。
【０１８６】
一方、ＶＬＤ１１０２が“０”であると、送信時刻計算部２１０４は、読み出した送信予定時刻１１０１が末来であるかどうかを判定する（１２０５）。
【０１８７】
送信予定時刻１１０１が未来であると、送信時刻計算部２１０４は、送信予定時刻１１０１を変更しないで（１２０４）、処理を終了する（１２１１）。なぜなら、送信予定時刻１１０１が未来の場合に、送信予定時刻１１０１を更新すると、契約帯域を守ることが出来なくなるからである。
【０１８８】
送信予定時刻１１０１が未来でないと、送信時刻計算部２１０４は、送信予定時刻１１０１を更新する（１２０６）。更新する新規送信予定時刻は、以下の式（２）で計算する。
【０１８９】
新規送信予定時刻＝現在時刻＋１・・・（２）
【０１９０】
新規予定時刻をこのように計算することによって、当該パケットをすぐに送信できる。
【０１９１】
次に、送信時刻計算部２１０４は、ＶＬＤを“１”に変更する。そして、ユーザ識別番号１００４、新規送信予定時刻及びＶＬＤを二分木ソート回路５１２に送信する。
【０１９２】
二分木ソート回路５１２は、ユーザ識別番号１００４、新規送信予定時刻及びＶＬＤを受信する。すると、二分木ソート回路５１２は、ユーザソーティングメモリ５１４のユーザ識別番号１００４に対応するエントリに、新規送信予定時刻及びＶＬＤを格納する。そして、二分木ソート回路５１２は、ユーザソーティングを行うことによって（１２０７）、ユーザの中で最も早くパケットを送信するユーザ（暫定送信ユーザ）を決定し、処理を終了する。
【０１９３】
一方、ステップ１２０８で帯域制御フラグに“１”が格納されていないと、リクエスト振り分け部２１０１は、ユーザ識別番号１００４に対応する送信リクエストキュー２１０２内の非帯域制御用キューに送信リクエスト５２４を格納する。
【０１９４】
次に、送信リクエストキュー２１０２は、当該送信リクエスト５２４を格納する前の非帯域制御キューが空であったか否かを判定する（１２１０）。
【０１９５】
送信キュー選択部２１０２は、非帯域制御用キューが空であったと判定すると、送信キュー選択部２１０３へスケジューリングリクエストを送信する。
【０１９６】
送信キュー選択部２１０３は、スケジューリングリクエストを受信すると、ラウンドロビンアルゴリズムを用いて、送信リクエスト５２４を格納している非帯域制御用キューの中から一本を選択する（１２０９）。そして、送信キュー選択部２１０３は、選択した非帯域制御用キューの先頭に保持される送信リクエスト５２４を暫定送信リクエストとする。
【０１９７】
なお、送信キュー選択部２１０３は、送信時刻計算部２１０４から送信リクエスト選択信号を受信していないときに、送信起動信号５２５を受信すると、暫定送信リクエストをパケットの送信許可５２３として送信する。
【０１９８】
一方、ステップ１２１０で非帯域制御キューが空でないと判定すると、そのまま本処理を終了する（１２１１）。この場合、送信リクエスト５２４を格納している非帯域制御用キューの数は変更されないので、暫定送信リクエストを変更する必要がないからである。
【０１９９】
図１９は、本発明の第１の実施の形態のパケット送信時のパケットスケジューリング部５１０の処理のフローチャートである。
【０２００】
まず、送信時刻計算部２１０４は、暫定送信ユーザが送信可能状態であるか否かを判定する（１３０１）。送信可能状態とは、暫定送信ユーザの送信予定時刻が、現在時刻を基準として、過去又は同時刻となっている状態である。
【０２０１】
暫定送信ユーザが送信可能状態でないと、送信時刻計算部２１０４は、送信予定時刻の変更又は時間の経過によって、暫定送信ユーザが送信可能状態になるまで待機する。
【０２０２】
一方、送信可能状態であると、送信時刻計算部２１０４は、送信リクエスト選択信号を送信キュー選択部２１０３へ送信する。送信リクエスト選択信号には、暫定送信ユーザのユーザ識別番号が含まれている。
【０２０３】
送信キュー選択部２１０３は、送信リクエスト選択信号を受信する。次に、送信キュー選択部２１０３は、受信した送信リクエスト選択信号からユーザ識別番号を抽出する。次に、送信キュー選択部２１０３は、抽出したユーザ識別番号に対応する帯域制御用キューから送信リクエスト５２４を読み出す。次に、送信キュー選択部２１０３は、読み出された送信リクエスト５２４からユーザ識別番号１００４及び要求データ長１００５を抽出する。
【０２０４】
次に、送信キュー選択部２１０３は、読み出された帯域制御キューから送信リクエスト５２４の保持有無を取得する。次に、送信キュー選択部２１０３は、抽出したユーザ識別番号１００４、要求データ長１００５及び取得した送信リクエスト５２４の保持有無を送信時刻計算部２１０４へ送信する。送信時刻計算部２１０４は、これらの情報を受信する。
【０２０５】
次に、送信キュー選択部２１０３は、バッファ読み出し制御回路２００４から送信起動信号５２５を受信したか否かを判定する（１３０２）。
【０２０６】
送信キュー選択部２１０３は、送信起動信号５２５を受信していないと、送信起動信号５２５を受信するまで待機する。
【０２０７】
一方、送信キュー選択部２１０３は、送信起動信号５２５を受信すると、読み出した送信リクエスト５２４を送信許可信号５２３として、バッファ読み出し制御回路２００４へ送信する。
【０２０８】
次に、ユーザ識別番号１００４、要求データ長１００５及び送信リクエスト５２４の保持有無を受信した送信時刻計算部２１０４は、新規送信予定時刻を計算する（１３０４）。新規送信予定時刻は、例えば、１Ｂｙｔｅのデータを送信する際の時間間隔を記憶しておき、以下の式（３）で求められる。
【０２０９】
新規送信予定時刻＝今回の送信予定時刻＋時間間隔×要求データ長のバイト数・・・（３）
【０２１０】
また、新規送信予定時刻は、各ユーザの帯域が、The ATM Forum Specification version 4.0の４．４．２章に記載されているContinuous State Leaky Bucket Algorithmの遵守・超過判定において、遵守と判定されるように求めても良い。このリーキーバケットアルゴリズムについては、図２０で説明する。
【０２１１】
送信時刻計算部２１０４は、求めた新規送信予定時刻、受信した送信リクエスト５２４の保持有無及びユーザ識別番号１００４を二分木ソート回路５１２に送信する。
【０２１２】
二分木ソート回路５１２は、新規送信予定時刻、送信リクエスト５２４の保持有無及びユーザ識別番号１００４を受信すると、これらの情報をユーザソーティング情報メモリ５１４に格納する。そして、二分木ソート回路５１２は、ユーザソーティングを行うことによって（１３０５）、ユーザの中で最も早くパケットを送信するユーザ（暫定送信ユーザ）を決定し、処理を終了する（１３０６）。
【０２１３】
図２０は、本発明の第１の実施の形態の送信時刻計算部２１０４がリーキーバケットアルゴリズムを用いて新規送信予定時刻を求める処理のフローチャートである。
【０２１４】
リーキーバケットアルゴリズムは、ある容量を持った穴の空いた漏れバケツのモデルで表される。バケツの穴は、一定量の水が漏れる。漏れる一定量は、送信予定時刻を求める処理においては、ユーザの契約帯域に相当する。
【０２１５】
ＲＤ要求の読み出し時には、バケツに読み出したＲＤ要求の要求データ長分に相当する水が注ぎ込まれる。バケツは、契約帯域に相当する水の量を保持できる容量を持っている。つまり、リーキーバケットアルゴリズムでは、バケツから水が溢れないうちは、契約帯域を遵守してデータを転送していると判定し、バケツから水が溢れると契約帯域を超過するデータを転送していると判定する。
【０２１６】
以下、具体的な送信時刻を求める処理を説明する。
【０２１７】
ＲＤ要求のパケットｋを時間ｔａ（ｋ）に読み出す（１９０１）。
【０２１８】
次に、以下の式（４）を計算する（１９０２）。
【０２１９】
Ｘ’＝Ｘ−（ｔａ（ｋ）−ＬＣＴ）・・・（４）
【０２２０】
なお、ＬＣＴは、ＲＤ要求を前回読み出した時刻である。ｔａ（ｋ）−ＬＣＴは、バケツから漏れる水量に対応する。Ｘは、前回ＲＤ要求を読み出し完了時のバケツの水位に対応する。よって、求めたＸ’は、現在のバケツの水位に相当する。
【０２２１】
次に、Ｘ’が負であるか否かを判定する（１９０３）。Ｘ’が負でないとそのままステップ１９０５に進む。
【０２２２】
一方、Ｘ’が負であると、Ｘ’を０に修正する（１９０４）。
【０２２３】
次に、以下の式（５）を計算する（１９０５）。
【０２２４】
Ｘ＝Ｘ’＋Ｉ・・・（５）
【０２２５】
なお、Ｉは、ＲＤデータのデータ量であり、加えた水の量に相当する。Ｘは、ＲＤ要求を読み出し完了時のバケツの水位に対応する。
【０２２６】
次に、Ｘ＞Ｌであるか否かを判定する（１９０６）。なお、Ｌは、バケツの容量に対応する。
【０２２７】
Ｘ＞Ｌであると、新規送信予定時刻を以下の式（６）で求める（１９０７）。
【０２２８】
新規送信予定時刻＝ｔａ（ｋ）＋（Ｘ−Ｌ）・・・（６）
【０２２９】
Ｘ＞Ｌであるときに、すぐにＲＤ要求を送信すると、ストレージ１０５が契約帯域を超過してＲＤデータを送信してしまう。新規送信予定時刻を式（６）で求めることによって、バケツから漏れる水の量とバケツへ加える水の量とが一致するので、契約帯域を超過しない。
【０２３０】
Ｘ≦Ｌであると、新規送信予定時刻を以下の式（７）で求める（１９０８）。
【０２３１】
新規送信予定時刻＝ｔａ（ｋ）＋１・・・（７）
【０２３２】
Ｘ≦Ｌであるときは、ＲＤ要求をすぐに読み出しても契約帯域を超過しない。そこで、新規送信予定時刻は、ＲＤ要求を読み出した現在時刻ｔａ（ｋ）の直後とした。
【０２３３】
以上のように、リーキーバケットアルゴリズムを用いて、新規送信予定時刻を求めることができる。なお、送信時刻計算部２１０４は、Ｒ２Ｔの新規送信予定時刻もＲＤ要求と同様にして求めることができる。
【０２３４】
本発明の第１の実施の形態のパケット転送装置１０４は、ＲＤデータ及びＷＲデータをパケットバッファ部５０２に保持することなく帯域を制御できる。そのため、パケット転送装置１０４は、バッファ量を削減することができる。
【０２３５】
また、パケット転送装置１０４は、ユーザの契約帯域を超過しないタイミングで、ＲＤ要求及びＲ２Ｔを転送する。よって、ストレージ１０５及びユーザ端末１００は、過剰なデータを送信することがなくなり、データ転送リソースを有効利用できる。
【０２３６】
従来のパケット転送装置は、ＲＤデータ及びＷＲデータの帯域を制御するため、ユーザ側及びストレージ側に設けられる必要があった。しかし、本発明の第１の実施の形態のパケット転送装置１０４は、ＲＤデータ及びＷＲデータの帯域を一台で制御することができる。
【０２３７】
また、ストレージ１０５は、パケット転送装置１０４を内部に備えることによって、帯域制御ＩＦを有するディスクアレイ制御装置となる。
【０２３８】
（第２の実施の形態）
第２の実施の形態のパケット転送装置１０４は、複数のネットワークインタフェースをシャーシ型スイッチに組み込むことができる。
【０２３９】
図２１は、本発明の第２の実施の形態のパケット転送装置１０４である。
【０２４０】
第２の実施の形態のパケット転送装置１０４は、帯域制御ネットワークインタフェース１６２０、非帯域制御ネットワークインタフェース１６２１、スイッチ部１６０１及び設定情報蓄積部１６０２から構成される。
【０２４１】
スイッチ１６０１は、受信したパケットから、内部ヘッダ部１０００の出力回線番号１００２を抽出する。そして、スイッチ１６０１は、抽出した出力回線番号１００２の出力回線４１２を備える帯域制御ネットワークインタフェース１６２０又は非帯域制御ネットワークインタフェース１６２１にパケットを転送する。
【０２４２】
設定情報蓄積部１６０２は、インタフェース制御部１６０７が使用する情報を蓄積する。
【０２４３】
帯域制御ネットワークインタフェース１６２０は、帯域を制御しながら、パケットをルーティングする。非帯域制御ネットワークインタフェース１６２１は、帯域を制御せずに、パケットをルーティングする。
【０２４４】
帯域制御ネットワークインタフェース１６２０は、入力回線４１１、パケット受信回路４０１、帯域制御部４０２、経路検索回路１６０３、パケット送信回路４０４、出力回線４１２、インタフェース制御部１６０７、スイッチ送信回路１６０５及びスイッチ受信回路１６０６から構成される。なお、入力回線４１１、パケット受信回路４０１、帯域制御部４０２、パケット送信回路４０３及び出力回路４０４は、第１の実施の形態と同じ構成及び動作である。なお、第１の実施形態と同じ構成は同じ符号を付し、その説明は省略する。
【０２４５】
スイッチ送信回路１６０５は、経路検索回路４０３から受信したパケットをスイッチ部１０６１へ転送する。スイッチ受信回路１６０６は、スイッチ部１０６１から受信したパケットを経路検索回路４０３へ転送する。
【０２４６】
インタフェース制御部１６０７は、帯域制御部４０２及び経路探索回路４０３に各種情報を設定する。各種情報は、ユーザサイト１０８の契約帯域情報や、パケットの経路検索情報や、ユーザサイト１０８のネットマスクの情報等である。なお、インタフェース制御部１６０７は、設定する各種情報を設定情報蓄積部１６０２から取得する（１６１０）。
【０２４７】
経路検索回路１６０３は、受信したパケットの経路を検索する。具体的には、経路検索回路１６０３は、パケットを受信すると、当該パケットの宛先ＩＰアドレス６０４を抽出する。次に、経路検索回路１６０３は、抽出した宛先ＩＰアドレス６０４のパケットを送信する出力回線４１２を、経路検索テーブルから検索する。次に、経路検索回路１６０３は、検索した出力回線４１２の番号を内部ヘッダ部１０００の出力回線番号１００２へ格納する。次に、経路検索回路１６０３は、検索した出力回線４１２が非帯域ネットワークインタフェース１６２１上の出力回線４１２であると、スイッチ送信回路１６０５へ当該パケットを送る。一方、経路検索回路１６０３は、検索した出力回線４１２が帯域ネットワークインタフェース１６２０上の出力回線４１２であると、出力回線４１２と接続するパケット送信回路４０４へ当該パケットを送る。
【０２４８】
非帯域制御ネットワークインタフェース１６２１は、帯域制御ネットワークインタフェース１６２０から帯域制御部４０２を除いた構成であり、詳細の説明は省略する。よって、パケット受信回路４０１と経路検索回路１６０３は、直接接続する。
【０２４９】
なお、帯域制御ネットワークインタフェース１６２０及び非帯域制御ネットワークインタフェース１６２１は、１枚ずつを図示しているが、複数枚備えられていてもよい。
【０２５０】
この第２の実施の形態によれば、拡張性に富むシャーシ型スイッチのネットワークインタフェースにおいてストレージデータの帯域制御を行うことができる。
【０２５１】
（第３の実施の形態）
本発明の第３の実施の形態は、ＬＡＮスイッチ１０１及びパケット転送装置１０４内にトラヒックシェーピング部を備える。なお、第３の実施の形態は、第１及び第２のどちらの実施の形態に対しても適用することができる。ここでは、第２の実施の形態に適用した場合を説明する。
【０２５２】
図２２は、本発明の第３の実施の形態のストレージセントリックネットワークシステムのブロック図である。
【０２５３】
第３の実施の形態のストレージセントリックネットワークシステムは、ＬＡＮスイッチ１０１内にトラヒックシェーピング部２２０２を備える。それ以外の構成は、第２の実施形態と同一である。但し、第２の実施のストレージセントリックネットワークシステムの構成は、パケット転送装置１０４の構成を除き、第１の実施の形態（図１）と同一である。
【０２５４】
トラヒックシェーピング部２２０２は、トラヒックシェーピング機能（例えば、特許文献１参照。）を使って、広域ネットワーク１０２に転送されるすべてのパケットの帯域を制御する。
【０２５５】
図２３は、本発明の第３の実施の形態のパケット転送装置１０４のブロック図である。
【０２５６】
第３の実施の形態のパケット転送装置１０４は、帯域制御ネットワークインタフェース１６２０内の経路検索回路１６０３とパケット送信回路４０４との間に、トラヒックシェーピング部２２０１を備える。それ以外の構成は、第２の実施形態のパケット転送装置１０４と同一である。なお、第２の実施形態と同じ構成は同じ符号を付し、その説明は省略する。
【０２５７】
トラヒックシェーピング部２２０１は、トラヒックシェーピング機能を使って、広域ネットワークに転送されるすべてのパケットの帯域を制御する。
【０２５８】
なお、第３の実施の形態を第１の実施の形態のパケット転送装置１０４に適用する場合は、経路検索回路４０３とパケット送信回路４０４との間にトラヒックシェーピング部２２０１を設ける。
【０２５９】
第１又は第２の実施の形態のデータ転送装置１０４は、ＲＤ要求及びＲ２Ｔの転送間隔を制御することによって、ＲＤデータ及びＷＲデータの転送量を制御する。しかし、ＲＤデータ又はＷＲデータが複数のＩＰパケットに分割されて転送される場合、データ転送装置１０４は、分割されたＩＰパケットの転送間隔を制御することはできなかった。
【０２６０】
エッジスイッチ１０３は、ＵＰＣを利用して広域ネットワークへ転送されるデータ量を監視する。ＵＰＣは、単位時間当たりに広域ネットワークに流れ込むパケットの量を監視して、トラヒック量が契約帯域内かどうかを確認する。このとき、監視する単位時間が、短く設定される場合もある。
【０２６１】
この場合、第１又は第２の実施の形態のデータ転送装置１０４が、契約帯域内としてＲＤ要求又はＲ２Ｔを転送したとしても、エッジスイッチ１０３が単位時間当たりのトラヒック量で契約帯域を超過したと判定する可能性がある。エッジスイッチ１０３は、契約帯域を超過したと判定すると、パケットを廃棄する。
【０２６２】
これを防ぐためには、ストレージセントリックネットワークシステムにトラヒックシェーピング部２２０１、２２０２を設けることが有効である。
【０２６３】
しかし、トラヒックシェーピング部２２０１、２２０２だけでは、パケットバッファがオーバーフローする可能性があることを前述した。
【０２６４】
そこで、第３の実施の形態では、第１又は第２の実施の形態のデータ転送装置１０４とトラヒックシェーピング部２２０１、２２０２とを組み合わせて使用することによって、監視する単位時間が短く設定されている場合でも、パケットが廃棄されることを防ぐ。
【０２６５】
データ転送装置１０４は、送信間隔を制御しながら、ＲＤ要求及びＲ２Ｔを転送するので、トラヒックシェーピング部２２０１、２２０２のパケットバッファが、オーバーフローすることはない。
【０２６６】
なお、トラヒックシェーピング部２２０１は、パケット転送装置１０４の外部に別装置として設けてもよい。同様に、トラヒック制御部２２０２は、ＬＡＮスイッチ１０１の外部に別装置として設けてもよい。
【図面の簡単な説明】
【０２６７】
【図１】本発明の第１の実施の形態のストレージセントリックネットワークシステムのブロック図である。
【図２】本発明の第１の実施の形態のｉＳＣＳＩパケットの構成図である。
【図３】本発明の第１の実施の形態のユーザ端末が送信するＲＤ要求又はＷＲ要求のｉＳＣＳＩヘッダ部の構成図である。
【図４】本発明の第１の実施の形態のストレージが送信するＲ２ＴのｉＳＣＳＩヘッダ部の構成図である。
【図５】本発明の第１の実施の形態のパケット転送装置の内部におけるパケットの構成図である。
【図６】本発明の第１の実施の形態のパケット転送装置のブロック図である。
【図７】本発明の第１の実施の形態の帯域制御部のブロック図である。
【図８】本発明の第１の実施の形態のパケット判定部が備えるＲＤ制御テーブルの構成図である。
【図９】本発明の第１の実施の形態のパケット判定部が備えるＲ２Ｔ制御テーブルの構成図である。
【図１０】本発明の第１の実施の形態のパケットバッファ部のブロック図である。
【図１１】本発明の第１の実施の形態のパケット送信キュー決定部のブロック図である。
【図１２】本発明の第１の実施の形態のユーザソーティング情報メモリの説明図である。
【図１３】本発明の第１の実施の形態の二分木ソート回路のソーティング処理の説明図である。
【図１４】本発明の第１の実施の形態の送信予定時刻更新後の二分木ソート回路のソーティング処理の説明図である。
【図１５】本発明の第１の実施の形態のパケット判定部の処理のフローチャートである。
【図１６】本発明の第１の実施の形態のバッファ書き込み制御回路の処理のフローチャートである。
【図１７】本発明の第１の実施の形態のバッファ読み出し制御回路の処理のフローチャートである。
【図１８】本発明の第１の実施の形態のパケット受信時のパケットスケジューリング部の処理のフローチャートである。
【図１９】本発明の第１の実施の形態のパケット送信時のパケットスケジューリング部の処理のフローチャートである。
【図２０】本発明の第１の実施の形態の送信時刻計算部がリーキーバケットアルゴリズムを用いて新規送信予定時刻を求める処理のフローチャートである。
【図２１】本発明の第２の実施の形態のパケット転送装置のブロック図である。
【図２２】本発明の第３の実施の形態のストレージセントリックネットワークシステムのブロック図である。
【図２３】本発明の第３の実施の形態のパケット転送装置のブロック図である。
【図２４】従来のストレージセントリックネットワークシステムの読み出し処理の説明図である。
【図２５】従来のストレージセントリックネットワークシステムの書き込み処理の説明図である。
【符号の説明】
【０２６８】
１００  ユーザ端末
１０１  ＬＡＮスイッチ
１０２  広域ネットワーク
１０３−１  エッジスイッチ
１０３−２  エッジスイッチ
１０４  パケット転送装置
１０５  ストレージ
１０７  管理コンソール
１０８  ユーザサイト
１０９  データセンタ
４０１  パケット受信回路
４０２  帯域制御部
４０３  経路検索回路
４０４  パケット送信回路
４０５  装置制御部
４１１  入力回線
４１２  出力回線
５００  パケット処理部
５０１  パケット判定部
５０２  パケットバッファ部
５１０  パケットスケジューリング部
５１１  パケット送信キュー決定部
５１２  二分木ソート回路
５１４  ユーザソーティング情報メモリ
【図１】
2006109299.tif 000003
【図２】
2006109299.tif 000004
【図３】
2006109299.tif 000005
【図４】
2006109299.tif 000006
【図５】
2006109299.tif 000007
【図６】
2006109299.tif 000008
【図７】
2006109299.tif 000009
【図８】
2006109299.tif 000010
【図９】
2006109299.tif 000011
【図１０】
2006109299.tif 000012
【図１１】
2006109299.tif 000013
【図１２】
2006109299.tif 000014
【図１３】
2006109299.tif 000015
【図１４】
2006109299.tif 000016
【図１５】
2006109299.tif 000017
【図１６】
2006109299.tif 000018
【図１７】
2006109299.tif 000019
【図１８】
2006109299.tif 000020
【図１９】
2006109299.tif 000021
【図２０】
2006109299.tif 000022
【図２１】
2006109299.tif 000023
【図２２】
2006109299.tif 000024
【図２３】
2006109299.tif 000025
【図２４】
2006109299.tif 000026
【図２５】
2006109299.tif 000027