(57)【要約】【課題】  ＱｏＳフローが多数存在した場合でも、ＱｏＳフローごとに設定した送信レートを満たすようにパケットを送信することができるネットワーク制御装置を提供することを目的とする。【解決手段】  本発明のネットワーク制御装置は、送信対象パケットの内容を基にＱｏＳフロー番号を特定する識別手段と、前記ＱｏＳフロー番号を基にあらかじめ定めた方法により遅延時間を計算する計算手段と、各送信予定時刻範囲対応に送信パケットを蓄積するための蓄積手段と、前記遅延時間を現在時刻に加えて前記送信対象パケットの送信予定時刻を求め、該送信予定時刻を含む前記送信予定時刻範囲に対応させて前記送信対象パケットを前記送信パケットとして前記蓄積手段に蓄積し、送信予定時刻の到来時に、該送信予定時刻を含む前記送信予定時刻範囲に対応させて前記蓄積手段に蓄積した前記送信パケットを送信する送信手段とから構成される。【選択図】      図１
2014003525.tif 000002
【特許請求の範囲】
【請求項１】
送信対象パケットの内容を基にＱｏＳフロー番号を特定する識別手段と、
前記ＱｏＳフロー番号を基にあらかじめ定めた方法により遅延時間を計算する計算手段と、
各送信予定時刻範囲対応に送信パケットを蓄積するための蓄積手段と、
前記遅延時間を現在時刻に加えて前記送信対象パケットの送信予定時刻を求め、該送信予定時刻を含む前記送信予定時刻範囲に対応させて前記送信対象パケットを前記送信パケットとして
前記蓄積手段に蓄積し、送信予定時刻の到来時に、該送信予定時刻を含む前記送信予定時刻範囲に対応させて前記蓄積手段に蓄積した前記送信パケットを送信する送信手段と、
を備えることを特徴とするネットワーク制御装置。
【請求項２】
前記蓄積手段は、
各前記送信予定時刻範囲対応に、最初に送信する送信パケットの格納領域の先頭アドレスを記憶する先頭パケットアドレス格納部と最後に送信する送信パケットの格納領域の先頭アドレスを記憶する末尾パケットアドレス格納部と設けたタイムスロットメモリと、
送信パケットと当該送信パケットの次に送信する送信パケットの格納領域の先頭アドレスとの対を各前記送信予定時刻範囲対応に格納するパケット格納手段と、
を備えることを特徴とする請求項１に記載のネットワーク制御装置。
【請求項３】
前記送信手段は、
現在時刻を含む前記送信予定時刻範囲に対応して設けられた前記先頭パケットアドレス格納部に記憶された先頭アドレスで指定される最初に送信すべき送信パケットを送信し、次に当該送信パケットと対で前記格納手段に記憶された前記先頭アドレスで指定される送信パケットを送信するといった動作を、送信パケットと対で前記パケット格納手段に記憶された前記先頭アドレスが存在する限り繰り返すことにより、前記現在時刻を含む前記送信予定時刻範囲内に送信すべきすべての送信パケットを送信する
ことを特徴とする請求項２記載のネットワーク制御装置。
【請求項４】
前記計算手段で使用する前記あらかじめ定めた方法は、Ｔｏｋｅｎ  Ｂｕｃｋｅｔアルゴリズムであることを特徴とする請求項１、２または３記載のネットワーク制御装置。
【請求項５】
送信対象パケットの内容を基にＱｏＳフロー番号を特定する識別ステップと、
前記ＱｏＳフロー番号を基にあらかじめ定めた方法により遅延時間を計算する計算ステップと、
前記遅延時間を現在時刻に加えて前記送信対象パケットの送信予定時刻を求める送信予定時刻決定ステップと、
各送信予定時刻範囲対応に送信パケットを蓄積するための蓄積手段に、前記送信時刻決定ステップで求めた前記送信予定時刻を含む前記送信予定時刻範囲に対応させて前記送信対象パケットを前記送信パケットとして蓄積する蓄積ステップと、
送信予定時刻の到来時に、該送信予定時刻を含む前記送信予定時刻範囲に対応させて前記蓄積手段に蓄積した前記送信パケットを送信する送信ステップと
を含むことを特徴とするネットワーク制御方法。
【請求項６】
前記蓄積手段は、
各前記送信予定時刻範囲対応に、最初に送信する送信パケットの格納領域の先頭アドレスを記憶する先頭パケットアドレス格納部と最後に送信する送信パケットの格納領域の先頭アドレスを記憶する末尾パケットアドレス格納部と設けたタイムスロットメモリと、
送信パケットと当該送信パケットの次に送信する送信パケットの格納領域の先頭アドレスとの対を各前記送信予定時刻範囲対応に格納するパケット格納手段と、
を含むことを特徴とする請求項５に記載のネットワーク制御方法。
【請求項７】
前記送信ステップにおいては、
現在時刻を含む前記送信予定時刻範囲に対応して設けられた前記先頭パケットアドレス格納部に記憶された先頭アドレスで指定される最初に送信すべき送信パケットを送信し、次に当該送信パケットと対で前記格納手段に記憶された前記先頭アドレスで指定される送信パケットを送信するといった動作を、送信パケットと対で前記パケット格納手段に記憶された前記先頭アドレスが存在する限り繰り返すことにより、前記現在時刻を含む前記送信予定時刻範囲内に送信すべきすべての送信パケットを送信する
ことを特徴とする請求項６記載のネットワーク制御方法。
【請求項８】
送信対象パケットの内容を基にＱｏＳフロー番号を特定する識別処理と、
前記ＱｏＳフロー番号を基にあらかじめ定めた方法により遅延時間を計算する計算処理と、
前記遅延時間を現在時刻に加えて前記送信対象パケットの送信予定時刻を求める送信予定時刻決定処理と、
各送信予定時刻範囲対応に送信パケットを蓄積するための蓄積手段に、前記送信時刻決定ステップで求めた前記送信予定時刻を含む前記送信予定時刻範囲に対応させて前記送信対象パケットを前記送信パケットとして蓄積する蓄積処理と、
送信予定時刻の到来時に、該送信予定時刻を含む前記送信予定時刻範囲に対応させて前記蓄積手段に蓄積した前記送信パケットを送信する送信処理と
をコンピュータに実行させることを特徴とするネットワーク制御プログラム。
【請求項９】
前記蓄積手段は、
各前記送信予定時刻範囲対応に、最初に送信する送信パケットの格納領域の先頭アドレスを記憶する先頭パケットアドレス格納部と最後に送信する送信パケットの格納領域の先頭アドレスを記憶する末尾パケットアドレス格納部と設けたタイムスロットメモリと、
送信対象パケットと当該送信パケットの次に送信する送信パケットの格納領域の先頭アドレスとの対を各前記送信予定時刻範囲対応に格納するパケット格納手段と
を備えることを特徴とする請求項８に記載のネットワーク制御プログラム。
【請求項１０】
前記送信ステップ処理においては、
現在時刻を含む前記送信予定時刻範囲に対応して設けられた前記先頭パケットアドレス格納部に記憶された先頭アドレスで指定される最初に送信すべき送信パケットを送信し、次に当該送信パケットと対で前記格納手段に記憶された前記先頭アドレスで指定される送信パケットを送信するといった動作を、送信パケットと対で前記パケット格納手段に記憶された前記先頭アドレスが存在する限り繰り返すことにより、前記現在時刻を含む前記送信予定時刻範囲内に送信すべきすべての送信パケットを送信する
ことを特徴とする請求項９記載のネットワーク制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク制御装置、ネットワーク制御方法およびネットワーク制御プログラムに関し、特に、ＱｏＳシェーピング処理を実現するネットワーク制御装置、ネットワーク制御方法およびネットワーク制御プログラムに関する。
【背景技術】
【０００２】
インターネットにおけるＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒの略称。インターネット接続事業者のことを指し、「プロバイダ」とも言う。）向けのエッジ・ルータ装置（あるネットワークと別のネットワークの境界に位置するルータ）や３ＧＰＰ（Ｔｈｉｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔの略称。第三世代携帯電話（３Ｇ）の標準化プロジェクト、または、同プロジェクトによる移動体通信システムの標準規格のことを言う。）モバイルネットワークのコアネットワーク上のノード装置においては、ユーザの契約状態や通信状況等によって、ユーザ単位に送信レート（送信タイミング）の制限が必要となる場合があり、そのために、多数の収容ユーザ（ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅの略称。ネットワーク上で、ある特定の通信のための帯域を予約し、一定の通信速度を保証する技術を言う。）フロー）単位にＱｏＳシェーピング処理を適用する場合がある。ＱｏＳシェーピング処理とは、予め設定された送信レートを正確に守るためにデータに必要な遅延を付与して送信していく処理のことである。
【０００３】
一般的なＩＰルータにおける構成を図５に示す。
【０００４】
図５において、ＩＰルータは、パケット処理用プロセッサと、複数の送信側および受信側ポートと、複数の送信側および受信側ＰＨＹ／ＭＡＣデバイスとを備えている。パケット処理用プロセッサは、各手段５０１〜５０５および受信パケット格納メモリ５１０を有している。ＰＨＹ（ＰＨＹｓｉｃａｌ  ｌａｙｅｒの略称。）デバイスは、物理層に相当するＤ／Ａ変換を行い、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌの略称。）デバイスは、データリンク層の下位副層に相当するフレーム(データの送受信単位)の送受信を行う。
【０００５】
パケット受信手段５０１は、各ポートから入力されたパケットを受信し、受信したパケットを受信パケット格納メモリ５１０に格納後、Ｅｔｈｅｒヘッダの終端とＩＰヘッダとのチェック処理を実施する。受信側ＱｏＳ手段５０２は、受信レートを制限する際にポリシング等のＱｏＳ処理を実施する。ルーティング検索手段５０３は、ＩＰヘッダに含まれるＩＰアドレスを基に送信先のポートやネクストホップ先を検索する。送信側ＱｏＳ手段５０４は、送信レートを制限する際にシェーピング等のＱｏＳ処理を実施する。パケット送信手段５０５は、Ｅｔｈｅｒヘッダを付与し、転送先ポートへパケットを送信する。
【０００６】
なお、図５の上記各手段は、一般的なコンピュータで実行されるプログラムまたはタスクにより実現されてもよいし、専用のハードウェアにより実現されてもよい。
【０００７】
ＩＰルータの一機能を図６に示す。
【０００８】
フロー識別手段６０１および複数のキューメモリ６０２は、送信側ＱｏＳ手段５０４に該当する。ＱｏＳシェーピング処理を適用する際は、ＱｏＳフロー＃１〜ｎ（ｎは２以上の整数）単位にキューメモリ６０２が用意される。フロー識別手段６０１は、ルーティング検索手段５０３から受け取ったパケット情報を基にどのＱｏＳフローのキューメモリ６０２にパケットをキューイングするかを決定し、決定したキューメモリ６０２にパケットを格納する。
【０００９】
ＱｏＳフロー番号は、一般的にパケットのＩＰヘッダに含まれる送信元アドレスおよび宛先アドレスやＴＣＰ／ＵＤＰヘッダに含まれる送信元ポート番号および宛先ポート番号等を抽出して特定する。
【００１０】
フロー識別手段６０１は、全てのキューメモリ６０２にパケットが格納されており、パケットをこれ以上キューイングする事ができない場合には、新たに到来するパケットをキューイングせずに廃棄する。
【００１１】
パケット送信手段６０３は、各キューメモリ６０２をあらかじめ決めた順番にポーリングし、それぞれのＱｏＳフローに設定された送信レートに合わせてパケットを取り出し、送信デバイスへ送信する。これらの一連の処理によって、パケットを各ＱｏＳフローに設定された送信レートに従って送信するよう図られている。
【００１２】
なお、図６の上記各手段は、一般的なコンピュータで実行されるプログラムまたはタスクにより実現されてもよいし、専用のハードウェアにより実現されてもよい。
【００１３】
また、特許文献１には、パケットに対する遅延時間を定量的かつ動的に制御可能とするデータ通信システムが記載されている。
【００１４】
特許文献１記載のデータ通信システムでは、パケットの送信元が指定した最大遅延時間、通信経路の平均転送率および通信制御装置の台数をもとに、遅延時間が計算される。そして、こうして計算された遅延時間に基づいて、送信する順番にパケットが送信キューに整列され、送信時間になると先頭のパケットから順にパケットが取り出され、送信される。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開平１１−２４３４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
図６に記載のＩＰパケットルーティング機能の送信側処理では、ＱｏＳフローごとにキューメモリを割り当てるため、適用するＱｏＳフローが多数存在する場合、大量のキューメモリ６０２を用意する必要がある。
【００１７】
パケット送信手段６０３は、キューメモリ６０２をあらかじめ決めた順番にポーリングし、それぞれのＱｏＳフローに設定された送信レートに合わせてパケットを取り出す。上記のように大量のキューメモリ６０２を実装した場合、パケット送信手段６０３は、全キューメモリをポーリングし終えるまでに時間を要することになり、結果として、各キューメモリにおいては、前のポーリングからその次のポーリングの順番が廻ってくるまでの時間間隔が長くなる。そのため、あるキューメモリ６０２においては、そのキューメモリからパケットを取り出さなければならない時点となっても、そのキューメモリにポーリングの順番が廻って来ず、パケット送信手段６０３は、そのパケットを取り出せないという状況が発生する場合がある。
【００１８】
その場合には、パケット送信手段６０３が、設定した送信レートより低いレートでのパケットの送信を余儀なくされるという問題点がある。
【００１９】
また、特許文献１は、上述したように、データ送信元が最大遅延時間を指定し、その指定された最大遅延時間内にデータ送信を行う技術を開示するに留まり、指定された正確な送信レートでデータ（パケット）を送信する技術については何ら開示していない。
【００２０】
本発明の目的は、上述の問題点を解決したネットワーク制御装置、ネットワーク制御方法およびネットワーク制御プログラムを提供することにある。
【課題を解決するための手段】
【００２１】
本発明のネットワーク制御装置は、送信対象パケットの内容を基にＱｏＳフロー番号を特定する識別手段と、前記ＱｏＳフロー番号を基にあらかじめ定めた方法により遅延時間を計算する計算手段と、各送信予定時刻範囲対応に送信パケットを蓄積するための蓄積手段と、前記遅延時間を現在時刻に加えて前記送信対象パケットの送信予定時刻を求め、該送信予定時刻を含む前記送信予定時刻範囲に対応させて前記送信対象パケットを前記送信パケットとして前記蓄積手段に蓄積し、送信予定時刻の到来時に、該送信予定時刻を含む前記送信予定時刻範囲に対応させて前記蓄積手段に蓄積した前記送信パケットを送信する送信手段とから構成される。
【００２２】
本発明のネットワーク制御方法は、送信対象パケットの内容を基にＱｏＳフロー番号を特定する識別ステップと、前記ＱｏＳフロー番号を基にあらかじめ定めた方法により遅延時間を計算する計算ステップと、前記遅延時間を現在時刻に加えて前記送信対象パケットの送信予定時刻を求める送信予定時刻決定ステップと、各送信予定時刻範囲対応に送信パケットを蓄積するための蓄積手段に、前記送信時刻決定ステップで求めた前記送信予定時刻を含む前記送信予定時刻範囲に対応させて前記送信対象パケットを前記送信パケットとして蓄積する蓄積ステップと、送信予定時刻の到来時に、該送信予定時刻を含む前記送信予定時刻範囲に対応させて前記蓄積手段に蓄積した前記送信パケットを送信する送信ステップとを含む。
【００２３】
本発明のネットワーク制御プログラムは、送信対象パケットの内容を基にＱｏＳフロー番号を特定する識別処理と、前記ＱｏＳフロー番号を基にあらかじめ定めた方法により遅延時間を計算する計算処理と、前記遅延時間を現在時刻に加えて前記送信対象パケットの送信予定時刻を求める送信予定時刻決定処理と、各送信予定時刻範囲対応に送信パケットを蓄積するための蓄積手段に、前記送信時刻決定ステップで求めた前記送信予定時刻を含む前記送信予定時刻範囲に対応させて前記送信対象パケットを前記送信パケットとして蓄積する蓄積処理と、送信予定時刻の到来時に、該送信予定時刻を含む前記送信予定時刻範囲に対応させて前記蓄積手段に蓄積した前記送信パケットを送信する送信処理とをコンピュータに実行させる。
【発明の効果】
【００２４】
以上、本発明には、ＱｏＳフローが多数存在した場合でも、ＱｏＳフローごとに設定した送信レートを満たすようにパケットを送信することができるという効果がある。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１の実施形態のブロック図である。
【図２】本発明の第１の実施形態におけるＴｏｋｅｎ  Ｂｕｃｋｅｔデータベースメモリ１２１を示す図である。
【図３】本発明の第１の実施形態における遅延計算手段１２０の処理フローを示す流れ図である。
【図４】本発明の第１の実施形態における送信タイムスロットメモリ１３１を示す図である。
【図５】一般的なＩＰルータにおける構成を示すブロック図である。
【図６】一般的なＩＰルータの一機能を示すブロック図である。
【発明を実施するための形態】
【００２６】
次に、本発明について図面を参照して詳細に説明する。
【００２７】
図１は本発明の第１の実施形態を示すブロック図である。
【００２８】
図１を参照すると、本実施形態に係るネットワーク制御装置１００は、フロー識別手段１１０と、遅延計算手段１２０と、Ｔｏｋｅｎ  Ｂｕｃｋｅｔデータベースメモリ１２１と、遅延送信手段１３０と、送信タイムスロットメモリ１３１とから構成されている。
【００２９】
なお、手段１１０，１２０および１３０の各手段は、一般的なコンピュータで実行されるプログラムまたはタスクにより実現されてもよいし、専用のハードウェアにより実現されてもよい。
【００３０】
本実施形態は、図５に示したような一般的なＩＰルータの一部の構成を代替する。
【００３１】
フロー識別手段１１０、遅延計算手段１２０およびＴｏｋｅｎ  Ｂｕｃｋｅｔデータベースメモリ１２１は、図５の送信側ＱｏＳ手段５０４の一部の構成を代替する。
【００３２】
遅延送信手段１３０および送信タイムスロットメモリ１３１は、図５のパケット送信手段５０５の一部の構成を代替する。
【００３３】
ここで、処理対象パケットは、図５のパケット受信手段５０１により、受信パケット格納メモリ５１０にすでに格納されている。受信パケット格納メモリ５１０内の処理対象パケットの先頭アドレスをパケット情報という。フロー識別手段１１０と、遅延計算手段１２０、および遅延送信手段１３０は、パケット情報を基に、受信パケット格納メモリ５１０内の処理対象パケットを参照する。
【００３４】
フロー識別手段１１０は、図５のルーティング検索手段５０３で送信先インタフェースが決定したパケットのパケット情報をルーティング検索手段５０３から受信する。
【００３５】
フロー識別手段１１０は、受信したパケット情報を基にＱｏＳフロー番号を特定する。
【００３６】
フロー識別手段１１０は、ＱｏＳフロー番号の特定完了後、パケット情報とＱｏＳフロー番号情報とを遅延計算手段１２０へ送信する。
【００３７】
遅延計算手段１２０は、Ｔｏｋｅｎ  Ｂｕｃｋｅｔアルゴリズムにより、パケットを送信する際に付与する遅延時間を計算する。
【００３８】
遅延計算手段１２０は、後述するように、Ｔｏｋｅｎ  Ｂｕｃｋｅｔデータベースメモリ１２１に設定されているＴｏｋｅｎ  Ｂｕｃｋｅｔ計算に必要な複数のパラメータ群の中から、フロー識別手段１１０より受信したＱｏＳフロー番号に対応するパラメータ群を参照して、遅延時間を計算する。
【００３９】
遅延計算手段１２０は、算出した遅延時間およびパケット情報を遅延送信手段１３０へ送信する。
【００４０】
遅延送信手段１３０は、遅延計算手段１２０から受信したパケット情報を基に、受信パケット格納メモリ５１０内の処理対象パケットを、送信パケット格納メモリ１３２にコピーする。
【００４１】
遅延送信手段１３０は、送信パケット格納メモリ１３２にコピーした処理対象パケットの先頭アドレスを、遅延計算手段１２０から受信した遅延時間を基に、送信タイムスロットメモリ１３１に格納する。
【００４２】
遅延送信手段１３０は、指定された遅延時間の経過後、送信タイムスロットメモリ１３１から当該パケット情報を取り出し、送信デバイスに対してパケットの送信を指示する。
【００４３】
次に、本実施形態の動作について詳細に説明する。
【００４４】
フロー識別手段１１０は、受信したパケット情報を基に、受信パケット格納メモリ５１０内の処理対象パケットを参照し、ＱｏＳフロー番号を特定する。
【００４５】
ＱｏＳフロー番号は、一般的にパケットのＩＰヘッダに含まれる送信元アドレスおよび宛先アドレスやＴＣＰ／ＵＤＰヘッダに含まれる送信元ポート番号および宛先ポート番号等を抽出して特定する。
【００４６】
フロー識別手段１１０は、ＱｏＳフロー番号の特定後、パケット情報とＱｏＳフロー番号情報とを遅延計算手段１２０へ送信する。
【００４７】
遅延計算手段１２０は、Ｔｏｋｅｎ  Ｂｕｃｋｅｔアルゴリズムにより、送信パケットに設定する遅延時間を計算する。
【００４８】
遅延計算手段１２０は、Ｔｏｋｅｎ  Ｂｕｃｋｅｔデータベースメモリ１２１を参照し、受信したＱｏＳフロー番号に基づき、計算に必要なパラメータを取得し、遅延時間を計算する。
【００４９】
図２は、Ｔｏｋｅｎ  Ｂｕｃｋｅｔデータベースメモリ１２１の内容を示す。
【００５０】
Ｔｏｋｅｎ  Ｂｕｃｋｅｔデータベースメモリ１２１は、ＱｏＳフロー番号ごとに送信レート値（Ａｎ)、最大Ｔｏｋｅｎ値（Ｂｎ）、現在Ｔｏｋｅｎ値（Ｃｎ)および前回Ｔｏｋｅｎ補充時刻（Ｄｎ）を持つ。
【００５１】
送信レート値は、シェーピングを適用するレート（単位：ｂｐｓ（ｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ）)で、Ｔｏｋｅｎの補充レートに該当する。本パラメータは、あらかじめ設定しておく必要がある。
【００５２】
最大Ｔｏｋｅｎ値は、許容する最大遅延時間に関係するパラメータで、Ｔｏｋｅｎが補充できる最大のサイズ（単位：ｂｉｔ)を示す。本パラメータは、あらかじめ設定しておく必要がある。
【００５３】
現在Ｔｏｋｅｎ値は、現在のＴｏｋｅｎのサイズ（単位：ｂｉｔ)を示す。本パラメータは、初期値として最大Ｔｏｋｅｎ値が設定され、パケットが通過する度に値の更新が行われる。現在Ｔｏｋｅｎ値に対して、Ｔｏｋｅｎの補充時には補充するＴｏｋｅｎのサイズが加算され、一方、Ｔｏｋｅｎの消費時には送信パケットサイズ分だけ減算される。
【００５４】
前回Ｔｏｋｅｎ補充時刻は、前回パケットが該当ＱｏＳフローのＴｏｋｅｎを補充した時刻である。Ｔｏｋｅｎが補充される度にこの時刻の更新が行われる。
【００５５】
遅延計算手段１２０がこれらのパラメータ（送信レート、最大Ｔｏｋｅｎ値、現在Ｔｏｋｅｎ値および前回Ｔｏｋｅｎ補充時刻）を用いたＴｏｋｅｎ  Ｂｕｃｋｅｔアルゴリズムにより行う遅延時間の計算について、図３を使用して説明する。
【００５６】
遅延計算手段１２０は、フロー識別手段１１０から受信したＱｏＳフロー番号（ここでは、例えば、＃ｎとする。）に対応するメモリ１２１内の各値を参照して、補充するＴｏｋｅｎのサイズを以下の式で算出する（ステップＳ１）。
【００５７】
補充するＴｏｋｅｎのサイズ←（現在の時刻（Ｃｎ）−前回Ｔｏｋｅｎ補充時刻（Ｄｎ））×送信レート（Ａｎ）
遅延計算手段１２０は、ここで算出したＴｏｋｅｎのサイズを現在Ｔｏｋｅｎ値（Ｃｎ）に加算し、新たな現在Ｔｏｋｅｎ値（Ｃｎ）としてメモリ１２１に格納する（ステップＳ２）。
【００５８】
また、遅延計算手段１２０は、メモリ１２１内の当該前回Ｔｏｋｅｎ補充時刻（Ｄｎ）を現在時刻に更新する(ステップＳ３)。
【００５９】
ステップＳ２での加算後の新たな現在Ｔｏｋｅｎ値（Ｃｎ）が最大Ｔｏｋｅｎ値（Ｂｎ）より小さく、かつ、Ｔｏｋｅｎ（Ｃｎ）値が送信パケットサイズより小さい場合には、送信に必要なＴｏｋｅｎ値が十分に確保されておらず、最大遅延時間以上の遅延が発生する事になる。そのため、遅延計算手段１２０は、メモリ１２１内のＴｏｋｅｎ値（Ｃｎ）および前回Ｔｏｋｅｎ補充時刻（Ｄｎ）を変更（ステップＳ２およびステップＳ３）前の値に戻し（ステップＳ６）、パケットを送信せずに廃棄して処理を終了する（ステップＳ７）。
【００６０】
ステップ２での加算後のＴｏｋｅｎ値（Ｃｎ）が最大Ｔｏｋｅｎ値（Ｂｎ）以上である場合は、遅延計算手段１２０は、現在のＴｏｋｅｎ値（Ｃｎ）を最大Ｔｏｋｅｎ値（Ｂｎ）と同値にし（ステップＳ４）、遅延時間を０とする（ステップＳ５）。その後、後述するステップＳ９の処理に進む。
【００６１】
一方、  ステップＳ２での加算後の新たな現在Ｔｏｋｅｎ値（Ｃｎ）が最大Ｔｏｋｅｎ値（Ｂｎ）より小さく、かつ、Ｔｏｋｅｎ（Ｃｎ）値が送信パケットサイズ以上の場合には、遅延計算手段１２０は、以下の式で遅延時間を算出する（ステップＳ８）。
【００６２】
遅延時間←(最大Ｔｏｋｅｎ値（Ｂｎ）−現在のＴｏｋｅｎ値（Ｃｎ）)÷送信レート（Ａｎ）
遅延計算手段１２０は、遅延時間の算出後に、現在のＴｏｋｅｎ値（Ｃｎ）から送信パケットサイズを減算して、新たな現在のＴｏｋｅｎ値（Ｃｎ）としてメモリ１２１に格納する（ステップＳ９）。
【００６３】
次に、遅延計算手段１２０は、廃棄処理判定されたパケット以外について、パケット情報と遅延時間の情報とを遅延送信手段１３０へ送信する（ステップＳ１０）。
【００６４】
次に、遅延送信手段１３０について説明する。
【００６５】
遅延送信手段１３０は、送信タイムスロットメモリ１３１へ送信パケットの情報を格納する処理と、送信予定時刻となったパケットを送信タイムスロットメモリ１３１を参照して特定し当該パケットを後述する送信パケット格納メモリ１３２から取り出して送信する処理との２つの処理を交互に実施する。
【００６６】
まず、送信タイムスロットメモリ１３１へ送信パケットの情報を格納する処理について説明する。
【００６７】
この処理の説明を行う前にその処理のために使用する送信タイムスロットメモリ１３１および送信パケット格納メモリ１３２について図４を参照して説明する。
【００６８】
送信タイムスロットメモリ１３１は、図４に示すような構成となっている。メモリ１３１は、パケットの送信予定時刻範囲（「タイムスロット」とも言う。）（タイムスロットＴ０〜Ｔｘ）を示すタイムスロット欄４１０と、各タイムスロット（Ｔ０〜Ｔｘ）で送信すべきパケットのアドレス情報を格納するアドレス情報欄４２０とから構成されている。
【００６９】
アドレス情報欄４２０の各タイムスロット（Ｔ０〜Ｔｘ）に対応する部分は、リスト先頭のパケットデータ先頭アドレス格納部４２１およびリスト末尾のパケットデータ先頭アドレス格納部４２２の２つのエントリからなる。
【００７０】
リスト先頭のパケットデータ先頭アドレス格納部４２１は、各タイムスロットで、初めに送信する送信パケットの格納メモリ１３２内の先頭アドレスを格納する領域である。
【００７１】
リスト末尾のパケットデータ先頭アドレス格納部４２２は、各タイムスロットで、最後に送信する送信パケットの格納メモリ１３２内の先頭アドレスを格納する領域である。
【００７２】
次に、アドレス情報欄の各アドレス（４２１および４２２）から参照される送信パケット格納メモリ１３２内の送信パケットデータ４３１について説明する。
【００７３】
各送信パケットデータ４３１は、送信パケットデータ部と次送信パケットデータ先頭アドレス部４３２とからなる。
【００７４】
次送信パケットデータ先頭アドレス部４３２には、あるパケットの次に連続して送信すべきパケットがある場合に、次に送信するパケットの格納メモリ１３２内の先頭アドレスが設定される。
【００７５】
次に、前述したように、送信タイムスロットメモリ１３１へ送信パケットの情報を格納する処理について説明する。
【００７６】
まず、遅延送信手段１３０は、遅延計算手段１２０から受信したパケット情報を基に、受信パケット格納メモリ５１０内の処理対象パケットを、送信パケット格納メモリ１３２内に送信パケットデータ４３１としてコピーする。
【００７７】
次に、遅延送信手段１３０は、現在時刻に、遅延計算手段１２０から受信した遅延時間を加え、送信予定時刻を計算する。
【００７８】
さらに、遅延送信手段１３０は、算出した送信予定時刻が送信タイムスロットメモリ１３１のタイムスロット欄のどのタイムスロットＴ０〜Ｔｘに該当するかを調べる。
【００７９】
例えば、送信予定時刻がタイムスロットＴ０で示される時刻範囲内に含まれる場合には、タイムスロットＴ０が該当することになる。
【００８０】
以下では、送信予定時刻がタイムスロットＴ０に該当した場合を例に説明する。
【００８１】
送信タイムスロットメモリ１３１のタイムスロット欄４１０のタイムスロットＴ０に対応する格納部４２１にアドレスが設定されていない場合には、タイムスロットＴ０の間に送信すべきパケットが１つも送信パケット格納メモリ１３２に登録されていないことを示す。この場合、遅延送信手段１３０は、先ほどメモリ１３２にコピーした送信パケットデータ４３１の先頭のアドレスを、メモリ１３１内のタイムスロットＴ０に対応する格納部４２１および４２２に設定する。
【００８２】
また、送信タイムスロットメモリ１３１内のタイムスロット欄４１０のタイムスロットＴ０に対応する格納部４２１にアドレスがすでに設定済みであった場合には、タイムスロットＴ０の間に送信すべきパケットがすでに送信パケット格納メモリ１３２に登録されていることを示す。この場合、遅延送信手段１３０は、すでに登録済みのパケットの末尾に、送信パケットの情報を追加登録する。
【００８３】
具体的には、遅延送信手段１３０は、メモリ１３１内のタイムスロット欄４１０のタイムスロットＴ０に対応する格納部４２１に送信パケットデータ＃０の先頭アドレスが格納されているのを確認すると、タイムスロットＴ０に対応する格納部４２２に格納された末尾の送信パケットデータ＃ｍの先頭アドレスを基に送信パケット格納メモリ１３２内の送信パケットデータ＃ｍを参照し、その送信パケットデータ＃ｍ内の次送信パケットデータ先頭アドレス部に、先ほどコピーした送信パケットの先頭アドレスを設定する。その後、遅延送信手段１３０は、タイムスロットＴ０に対応する格納部４２２にもその同じアドレスを設定する。
【００８４】
次に、指定された遅延時間を経過したパケットを送信タイムスロットメモリ１３１から取り出して送信する処理について説明する。
【００８５】
遅延送信手段１３０は、送信対象パケットの有無を判定するために送信タイムスロットメモリ１３１のタイムスロット欄４１０の現在時刻が含まれるタイムスロットを参照する。
【００８６】
以下では、現在時刻がタイムスロットＴ１に含まれた場合を例に説明する。
【００８７】
送信タイムスロットメモリ１３１のタイムスロット欄４１０のタイムスロットＴ１に対応する格納部４２１にアドレスが設定されていた場合には、送信対象データが存在することを意味する。遅延送信手段１３０は、当該アドレスで指定される送信パケット格納メモリ１３２内の送信パケットデータ部の内容と次送信パケットデータ先頭アドレス部４３２の内容とを取り出し、送信パケットデータ部の内容は送信デバイスに送られ、パケット送信処理が行われる。
【００８８】
また、取り出された次送信パケットデータ先頭アドレス部４３２の内容としてアドレスが設定されていた場合には、遅延送信手段１３０は、当該アドレスで指定される送信パケット格納メモリ１３２内の送信パケットデータ部の内容と次送信パケットデータ先頭アドレス部４３２の内容とを取り出し、送信パケットデータ部の内容は送信デバイスに送られ、パケット送信処理が行われる。
【００８９】
遅延送信手段１３０は、これらの処理を次送信パケットデータ先頭アドレス部４３２にアドレスが設定されている間、繰り返すことにより、タイムスロットＴ１の間に送信すべきすべての送信パケットの送信を行う。
【００９０】
また、送信タイムスロットメモリ１３１のタイムスロット欄４１０のタイムスロットＴ１に対応する格納部４２１にアドレスが設定されていない場合には、送信対象となるパケットが存在しないので、遅延送信手段１３０は、パケットを送信する処理を行わない。
【００９１】
本実施形態では、遅延時間をＴｏｋｅｎ  Ｂｕｃｋｅｔアルゴリズムを使用して計算したが、ＱｏＳフローごとに設定した送信レートを満たすことが可能な遅延時間を求めることができれば、他のアルゴリズムで計算してもよい。
【００９２】
なお、本実施形態において、ルータは専用のハードウェアで実現しても良いし、一般のコンピュータで実現してもよい。
【００９３】
以上、説明したように、本実施形態には、ＱｏＳフローごとに設定した送信レートを満たすようにパケットを送信することができるという効果がある。
【００９４】
その理由は、送信対象パケットをＱｏＳフロー単位ではなく、送信予定時刻範囲ごとに蓄積することによって、送信対象パケットを送信する処理が、ＱｏＳフローの数による影響を受けなくなるためである。
【符号の説明】
【００９５】
１００    ネットワーク制御装置
１１０    フロー識別手段
１２０    遅延計算手段
１２１    Ｔｏｋｅｎ  Ｂｕｃｋｅｔデータベースメモリ
１３０    遅延送信手段
１３１    送信タイムスロットメモリ
１３２    送信パケット格納メモリ
４１０    タイムスロット欄
４２０    アドレス情報欄
４２１    リスト先頭のパケットデータ先頭アドレス格納部
４２２    リスト末尾のパケットデータ先頭アドレス格納部
４３１    送信パケットデータ
４３２    次送信パケットデータ先頭アドレス部
５０１    パケット受信手段
５０２    受信側ＱｏＳ手段
５０３    ルーティング検索手段
５０４    送信側ＱｏＳ手段
５０５    パケット送信手段
５１０    受信パケット格納メモリ
６０１    フロー識別手段
６０２    キューメモリ
６０３    パケット送信手段
【図１】
2014003525.tif 000003
【図２】
2014003525.tif 000004
【図３】
2014003525.tif 000005
【図４】
2014003525.tif 000006
【図５】
2014003525.tif 000007
【図６】
2014003525.tif 000008