(57)【要約】【課題】各フロー別の帯域保証が可能で、さらに各フローのデータ量に関わらず余剰帯域を各フローに公平に分配すること。【解決手段】パケット振分部１０１は、各フローの受信データ量が保証帯域未満の場合はそのパケットを帯域保証用キュー１０２に記憶させ、保証帯域を超える場合はそのパケットをベストエフォート用キュー１０３−１〜１０３−Ｎにそのデータ量に応じて振り分けて記憶させる。パケット読出部１０４は、帯域保証用キュー１０２がパケットを記憶している場合、帯域保証用キュー１０２からパケットを読み出して送信系に引き渡す。一方、パケット読出部１０４は、帯域保証用キュー１０２がパケットを記憶していない場合は、ベストエフォート用キュー１０３−１〜１０３−Ｎから超えるデータ量の少ない順にパケットを読み出して送信系に引き渡す。【選択図】      図１
2005012431.tif 000002
【特許請求の範囲】
【請求項１】
保証帯域が定められている複数フローのパケットを送受信するパケット通信装置において、
記憶手段と、
フロー別に受信したパケットをそのデータ量に応じて前記記憶手段に振り分けて記憶させるパケット受信手段と、
前記記憶手段が、データ量が前記保証帯域を超えないフローのパケットを記憶している場合は、その保証帯域を超えないフローのパケットを読み出して送信し、データ量が前記保証帯域を超えないフローのパケットを記憶していないが、前記保証帯域を超えるフローのパケットを記憶している場合は、その保証帯域を超えるフローのパケットを保証帯域を超えるデータ量の少ない順に読み出して送信するパケット送信手段と、
を具備することを特徴とするパケット通信装置。
【請求項２】
保証帯域が定められている複数フローのパケットを送受信するパケット通信装置において、
フローパケットを記憶するための第１記憶手段と、
フローＩＤを記憶するための第２記憶手段と、
フロー別に受信したパケットをそのデータ量に応じて前記第１記憶手段に振り分けて記憶させるとともに、受信したパケットのフローＩＤを出力するパケット受信手段と、
前記パケット受信手段の出力するフローＩＤを、前記保証帯域を超えないフローを示すフローＩＤと前記保証帯域を超えるフローを示すフローＩＤとに分け、かつ前記保証帯域を超えるフローを示すフローＩＤではデータ量に応じて振り分けて前記第２記憶手段に記憶させるフローＩＤ振分手段と、
前記第２記憶手段が、データ量が前記保証帯域を超えないフローを示すフローＩＤを記憶している場合は、そのフローＩＤを読み出して出力し、データ量が前記保証帯域を超えないフローを示すフローＩＤを記憶していないが、前記保証帯域を超えるフローを示すフローＩＤを記憶している場合は、その保証帯域を超えるフローを示すフローＩＤのうち保証帯域を超えるデータ量の少ないフローを示すフローＩＤから順に読み出して出力するフローＩＤ出力手段と、
前記フローＩＤ出力手段の出力するフローＩＤに従って前記第１記憶手段から対応するパケットを読み出して送信するパケット送信手段と、
を具備することを特徴とするパケット通信装置。
【請求項３】
前記受信手段は、前記第１記憶手段の記憶量が所定量に到達したときは、受信したフローのパケットを所定の確率で破棄することを特徴とする請求項２記載のパケット通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パケット通信装置に関する。
【０００２】
【従来の技術】
近年、帯域保証を行うパケット通信装置が強く求められている。そこで、例えば、特許文献１では、プロセスによって生成された送信パケットを、帯域保証を行うパケットと帯域保証を行わないパケットとに振り分けて、最低帯域保証を実現する技術が開示されている。以下、図５を参照してその概要を説明する。
【０００３】
図５は、従来の帯域保証を行うパケット通信装置を用いた通信システムの構成例を示す図である。図５において、送信装置であるノード５０１のプロセスＡによって生成されたパケットは、ＴＣＰコネクションＣ１を経由して、受信装置であるノード５０２のプロセスＢに転送される。転送されるパケットは、パケット識別子ＰＩ１が付加されたパケットと、パケット識別子ＰＩ２が付加されたパケットとに分けられている。
【０００４】
即ち、パケット識別子ＰＩ１が付加されたパケットは、帯域保証を行うパケット、つまり帯域保証を超えないパケットである。パケット識別子ＰＩ１には、プロトコル番号（ＴＣＰ）、送信側のＩＰアドレス（Ａ）、受信側のＩＰアドレス（Ｂ）、送信側のポート番号（１）及び受信側のポート番号（２）の他、帯域保証を示す情報データαが含まれている。情報データαは、例えば、パケットヘッダのＴＯＳ（Ｔｙｐｅ  Ｏｆ  Ｓｅｒｖｉｃｅ  ）フィールドを用いて表示される。
【０００５】
一方、パケット識別子ＰＩ２が付加されたパケットは、帯域保証を行わないパケット、つまり帯域保証を超えるパケットである。パケット識別子ＰＩ２には、プロトコル番号（ＴＣＰ）、送信側のＩＰアドレス（Ａ）、受信側のＩＰアドレス（Ｂ）、送信側のポート番号（１）及び受信側のポート番号（２）の他、帯域保証を行わないことを示す情報データβが含まれている。情報データβは、例えば、パケットヘッダのＴＯＳフィールドを用いて表示される。
【０００６】
【特許文献１】
特開２００１−１１１６１９号公報（図６）
【０００７】
【発明が解決しようとする課題】
しかしながら、上述した従来のパケット通信装置は、送信パケットを、帯域保証を行うパケットと帯域保証を行わないパケットとに振り分けて、最低帯域保証を実現する構成であるので、保証帯域を越えた通信（フロー）のパケットは帯域保証を行わないパケットとして扱われる。即ち、従来では、保証帯域を越えたフローのパケットは全てベストエフォート（ｂｅｓｔ  ｅｆｆｏｒｔ）のパケットとして取り扱われる。
【０００８】
つまり、データ量の多いフローほど余剰帯域を占有しやすくなるが、従来のパケット通信装置では、そのような余剰帯域を各フローに公平に分配することができないという問題がある。
【０００９】
本発明は、かかる点に鑑みてなされたものであり、各フロー別の帯域保証が可能で、さらに各フローのデータ量に関わらず余剰帯域を各フローに公平に分配可能なパケット通信装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明に係るパケット通信装置は、保証帯域が定められている複数フローのパケットを送受信するパケット通信装置において、記憶手段と、フロー別に受信したパケットをそのデータ量に応じて前記記憶手段に振り分けて記憶させるパケット受信手段と、前記記憶手段が、データ量が前記保証帯域を超えないフローのパケットを記憶している場合は、その保証帯域を超えないフローのパケットを読み出して送信し、データ量が前記保証帯域を超えないフローのパケットを記憶していないが、前記保証帯域を超えるフローのパケットを記憶している場合は、その保証帯域を超えるフローのパケットを保証帯域を超えるデータ量の少ない順に読み出して送信するパケット送信手段と、を具備する構成を採る。
【００１１】
この構成によれば、パケット受信手段は、保証帯域が定められている各フローの受信パケットを、そのデータ量に応じて記憶手段に振り分けて記憶させる。すなわち、記憶手段には、保証帯域を超えないフローのパケットと超えるフローのパケットとが区別されて記憶され、さらに保証帯域を超えるフローのパケットでは、その超えるデータ量の少ない順に記憶される。そして、送信手段は、保証帯域を超えないフローのパケットが記憶されている場合はそれを優先して送信し、記憶されていない場合は、保証帯域を超えるデータ量の少ないパケットから順に送信する。これによって、各フロー別の帯域保証が可能となり、さらに各フローのデータ量に関わらず余剰帯域を各フローに公平に分配することが可能となる。
【００１２】
本発明に係るパケット通信装置は、保証帯域が定められている複数フローのパケットを送受信するパケット通信装置において、フローパケットを記憶するための第１記憶手段、及びフローＩＤを記憶するための第２記憶手段と、フロー別に受信したパケットをそのデータ量に応じて前記第１記憶手段に振り分けて記憶させるとともに、受信したパケットのフローＩＤを出力するパケット受信手段と、前記パケット受信手段の出力するフローＩＤを、前記保証帯域を超えないフローを示すフローＩＤと前記保証帯域を超えるフローを示すフローＩＤとに分け、かつ前記保証帯域を超えるフローを示すフローＩＤではデータ量に応じて振り分けて前記第２記憶手段に記憶させるフローＩＤ振分手段と、前記第２記憶手段が、データ量が前記保証帯域を超えないフローを示すフローＩＤを記憶している場合は、そのフローＩＤを読み出して出力し、データ量が前記保証帯域を超えないフローを示すフローＩＤを記憶していないが、前記保証帯域を超えるフローを示すフローＩＤを記憶している場合は、その保証帯域を超えるフローを示すフローＩＤのうち保証帯域を超えるデータ量の少ないフローを示すフローＩＤから順に読み出して出力するフローＩＤ出力手段と、前記フローＩＤ出力手段の出力するフローＩＤに従って前記第１記憶手段から対応するパケットを読み出して送信するパケット送信手段と、を具備する構成を採る。
【００１３】
この構成によれば、パケット受信手段は、保証帯域が定められている各フローの受信パケットを、そのデータ量に応じて第１記憶手段に振り分けて記憶させるとともに、受信したパケットのフローＩＤを出力する。このフローＩＤは、フローＩＤ振分手段によって、第２記憶手段に保証帯域を超えないフローを示すフローＩＤと保証帯域を超えるフローを示すフローＩＤとに分けて記憶される。そして、フローＩＤ出力手段は、第２記憶手段にデータ量が保証帯域を超えないフローを示すフローＩＤを記憶されている場合はそれを優先して取り出し送信手段に引き渡す一方、記憶されていない場合は、保証帯域を超えるフローを示すフローＩＤのうち保証帯域を超えるデータ量の少ないフローを示すフローＩＤから順に読み出し送信手段に引き渡す。これによって、上記の発明と同様に、各フロー別の帯域保証が可能となり、さらに各フローのデータ量に関わらず余剰帯域を各フローに公平に分配することが可能となる。このとき、上記の発明では、パケットの送信順序が入れ替わることが起こるが、本発明では、フローＩＤによってパケットを管理するので、それを防止することができる。
【００１４】
本発明に係るパケット通信装置は、上記の発明において、前記受信手段は、前記第１記憶手段の記憶量が所定量に到達したときは、受信したフローのパケットを所定の確率で破棄する構成を採る。
【００１５】
この構成によれば、第１記憶手段がオーバーフローする確率が低くなるので、データの転送効率の低下を少なくすることができる。
【００１６】
【発明の実施の形態】
本発明の骨子は、各フロー別の帯域保証が可能で、さらに各フローのデータ量に係わらず余剰帯域を各フローに公平に分配できるようにすることである。
【００１７】
また、本発明の骨子は、ＴＣＰによるデータ転送において送信側がスロースタータを始める確率を低く抑えることによって高いスループットでのデータ転送が行えるようにすることである。
【００１８】
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。
【００１９】
（実施の形態１）
図１は、本発明の実施の形態１に係るパケット通信装置の要部構成を示すブロック図である。
【００２０】
図１において、実施の形態１に係るパケット通信装置１００は、パケット振分部１０１と、帯域保証用キュー１０２と、ベストエフォート記憶部１０３と、パケット読出部１０４とを備えている。
【００２１】
帯域保証用キュー１０２は、データ量が保証帯域未満であるフローのパケットを記憶するためのものである。
【００２２】
ベストエフォート記憶部１０３は、データ量が保証帯域を超える複数フローのパケットを超えるデータ量毎に記憶するため、複数のベストエフォート用キュー１０３−１〜１０３−Ｎを備えている。
【００２３】
以上の構成において、パケット振分部１０１は、各フローの受信したデータ量が保証帯域未満の場合はそのパケットを帯域保証用キュー１０２に記憶させ、保証帯域を超える場合はそのパケットをベストエフォート記憶部１０３におけるベストエフォート用キュー１０３−１〜１０３−Ｎにそのデータ量に応じて振り分けて記憶させる。
【００２４】
また、パケット読出部１０４は、帯域保証用キュー１０２がパケットを記憶している場合、帯域保証用キュー１０２からパケットを読み出して送信系に引き渡す。一方、パケット読出部１０４は、帯域保証用キュー１０２がパケットを記憶していない場合は、ベストエフォート記憶部１０３のベストエフォート用キュー１０３−１〜１０３−Ｎから超えるデータ量の少ない順にパケットを読み出して送信系に引き渡す。
【００２５】
このように、保証帯域を超えたデータ量を持つフローでは、その超えるデータ量毎に区別して記憶し、保証帯域を超えたデータ量が少ない順にそのパケットを送信するようにしたので、各フローのデータ量に関わらず余剰帯域を各フローに公平に分配することが可能となる。
【００２６】
（実施の形態２）
図２は、本発明の実施形態２に係るパケット通信装置の要部構成を示すブロック図である。
【００２７】
図２において、実施形態２に係るパケット通信装置２００は、パケット受信部２０１と、フローパケット記憶部２０２と、フローＩＤ振分部２０３と、帯域保証ＩＤ用キュー２０４と、ベストエフォートＩＤ記憶部２０５と、フローＩＤ出力部２０６と、パケット送信部２０７とを備えている。
【００２８】
フローパケット記憶部２０２は、フロー毎のパケットを記憶するフローパケット用キュー２０２−１〜２０２−Ｍを備えている。
【００２９】
ベストエフォートＩＤ記憶部２０５は、保証帯域を超えたデータ量毎にベストエフォートＩＤを記憶するベストエフォートＩＤ用キュー２０５−１〜２０５−Ｎを備えている。
【００３０】
以上の構成において、パケット受信部２０１は、保証帯域が予め定められたフローの各々の受信したパケットをフローパケット記憶部２０２におけるフローパケット用キュー２０２−１〜２０２−Ｍの対応するフローパケット用キューに記憶させ、そのフローを示すフローＩＤをフローＩＤ振分部２０３に出力する。
【００３１】
フローＩＤ振分部２０３は、受け取ったフローＩＤが示すフローのデータ量が保証帯域未満の場合はそのパケットを帯域保証ＩＤ用キュー２０４に記憶させ、保証帯域を超えている場合はそのパケットをそのデータ量に応じてベストエフォートＩＤ記憶部２０５におけるベストエフォートＩＤ用キュー２０５−１〜２０５−Ｎの対応するベストエフォートＩＤ用キューに記憶させる。
【００３２】
また、フローＩＤ出力部２０６は、帯域保証ＩＤ用キュー２０４がフローＩＤを記憶している場合、帯域保証ＩＤ用キュー２０４からフローＩＤをパケット送信部２０７に出力させる。一方、フローＩＤ出力部２０６は、帯域保証ＩＤ用キュー２０４がフローＩＤを記憶していない場合、ベストエフォートＩＤ記憶部２０５におけるベストエフォートＩＤ用キュー２０５−１〜２０５−Ｎから保証帯域を超えたデータ量が少ない順にフローＩＤをパケット送信部２０７に出力させる。
【００３３】
パケット送信部２０７は、フローＩＤ出力部２０６から受け取ったフローＩＤが示すパケットを記憶するフローパケット記憶部２０２におけるフローパケット用キュー２０２−１〜２０２−Ｍの対応するフローパケット用キューから取り出し、送信する。
【００３４】
このように、保証帯域を超えたデータ量毎にフローＩＤを記憶させて、保証帯域を超えたデータ量が少ない順にそのフローＩＤが示すパケットを送信するようにしたので、各フローのデータ量に関わらず余剰帯域を各フローに公平に分配できるようになる。
【００３５】
また、上述の実施の形態１では、ベストエフォート記憶部１０３がパケットを記憶しているときに、そのフローのパケットが帯域保証用キュー１０２に新たに記憶された場合には、パケットの送信順序が入れ替わることが起こる。
【００３６】
これに対して、実施の形態２では、パケット送信部２０７は、記憶したフローパケットの順にパケットを送信することができるので、パケットの送信順序が入れ替わることがない。
【００３７】
次に、パケット受信部２０１は、フローパケット記憶部２０２に予め定めたデータ量が記憶された場合には、受信したフローのパケットを所定の確率の元で破棄するようにし、フローパケット記憶部２０２がオーバーフローする確率を下げてデータ転送の効率低下が少なくなるようにしている。パケット通信によるデータ転送は、一般に、ＲＦＣ７９３、ＲＦＣ１１２２及びＲＦＣ２００１に規定されるＴＣＰのアルゴリズムに準拠して行われている。以下、図３、図４を参照して説明する。なお、図３、図４は、ＲＦＣ７９３、ＲＦＣ１１２２及びＲＦＣ２００１に規定されるＴＣＰのアルゴリズムによるデータ転送例を説明するシーケンス図である。
【００３８】
ＲＦＣ７９３、ＲＦＣ１１２２及びＲＦＣ２００１に規定されるＴＣＰのアルゴリズムでは、送信側ホスト３０１は、大容量のデータを複数のパケットに分割して受信側ホスト３０２に送信し、受信側ホスト３０２は、パケットを受け取ったことを通知するパケット（ＡＣＫ）を送信側ホスト３０１に返信するようになっている。
【００３９】
また、送信側ホスト３０１は、ＡＣＫパケットを受け取る前に複数のパケットを連続して送信するようになっている。これは、ＡＣＫを待っている間にもパケットを送りデータの転送効率を向上させるためにＴＣＰのアルゴリズムに実装された機能である。
【００４０】
このとき、送信側ホスト３０１では、ＡＣＫが戻る前に送信するパケットの数（ウィンドウサイズ）を時間とともに増加させることを行う一方、パケットを送信してからＡＣＫが返るまでの時間を計測し、一定時間が経過してもＡＣＫが戻らずタイムアウトが発生した場合には、複数のパケットを連続して送信することを止め、ウィンドウサイズを１まで低下させ、１つのパケットを送信する。そして、ＡＣＫが返る度にウィンドウサイズを徐々に増やすスロースタートを開始するようになっている。
【００４１】
送信側ホスト３０１の送信パケットが経過時間に伴い増加すると、受信側ホスト３０２が備えるパケット通信装置では、流入するデータ量が増加するので、フローパケット記憶部２０２ではオーバーフローすることが起こり、パケットの破棄が生ずる。このパケットの破棄が連続して発生すると、送信側ホスト３０１では、上記したタイムアウトが発生し、ウィンドウサイズが１まで低下するのでデータの転送効率が大幅に低下する。
【００４２】
さて、図３では、破棄が連続しない場合のデータ転送例が示され、図４では、破棄が連続する場合のデータ転送例が示されている。図３において、送信側ホスト３０１では、パケット３１１を送信し、それに対するＡＣＫ３２１が返る前に、複数のパケット３１２，３１３・・を順々に送信する。受信側ホスト３０２では、パケット３１１に対するＡＣＫ３２１を返送した後に、パケット３１３が破棄されるので、ＡＣＫ３２２，３２３を繰り返し送信し、パケット３１３の再送を要求する。
【００４３】
送信側ホスト３０１では、パケット３１４の送信後に３つ目のＡＣＫ３２２を受信し、ＡＣＫ３２２を連続して３回受信したことで再送要求を知り、パケット３１３を再送する。この再送パケット３１３を受けた受信側ホスト３０２は、ＡＣＫ３２４を送信し、パケット３１１からパケット３１４までが正常に届いたことを送信側ホスト３０１に通知する。
【００４４】
このような場合には、送信側ホスト３０１では、タイムアウトは発生しないので、スロースタートを開始する必要がない。つまり、ウィンドウサイズの低下は小さくデータの転送効率の低下も少ない。
【００４５】
図４において、送信側ホスト３０１では、パケット４１１を送信し、それに対するＡＣＫ４２１が返る前に、複数のパケット４１２，４１３，４１４，４１５・・を順々に送信する。このとき、送信側ホスト３０１では、パケット４１４の送信時に一定期間４１４ｔを計時するタイマをセットする。
【００４６】
受信側ホスト３０２では、パケット４１１に対するＡＣＫ４２１を返送した後に、連続したパケット４１３，４１４，４１５が破棄される。受信側ホスト３０２では、パケット４１３が破棄されたので、ＡＣＫ４２２，４２３を繰り返し送信し、パケット４１３の再送を要求する。
【００４７】
送信側ホスト３０１では、パケット４１６の送信後に３つ目のＡＣＫ４２２を受信し、ＡＣＫ４２２を連続して３回受信したことで再送要求を知り、パケット４１３を再送する。この再送パケット４１３を受けた受信側ホスト３０２は、ＡＣＫ４２４を送信し、パケット４１３までが正常に届いたことを送信側ホスト３０１に通知する。
【００４８】
このとき、受信側ホスト３０２では、廃棄が連続して発生したので、引き続いてＡＣＫ４２５を繰り返して送信するが、送信側ホスト３０１がＡＣＫ４２５受け取る前に、パケット４１４の送信からの一定時間４１４ｔが経過してしまうので、タイムアウトが発生し、スロースタートを開始する。即ち、ＡＣＫ４２５を受け取り、ウィンドウサイズが１の状態でパケット４１４を送信する。
【００４９】
このように、受信側ホスト３０２の備えるパケット通信装置に流入するデータ量が増加してフローパケット記憶部２０２がオーバーフローを起こした場合には、受信側ホスト３０２では、到着しないパケットが連続するので、再送要求に遅れが生ずる。その結果、送信側ホスト３０１では、タイムアウトが発生し、ウィンドウサイズが１まで低下するのでデータの転送効率が大幅に低下する。
【００５０】
そのため、実施の形態２に係るパケット通信装置では、上記したようにフローパケット記憶部２０２が予め定めたデータ量を記憶した場合、パケット受信部２０１は、所定の確率で受信したそのフローのパケットを廃棄するようになっている。これによって、フローパケット記憶部２０２がオーバーフローする確率が低くなるので、データの転送効率の低下を少なくすることができる。
【００５１】
【発明の効果】
以上説明したように、本発明によれば、各フロー別の帯域保証が可能で、さらに各フローのデータ量に関わらず余剰帯域を各フローに公平に分配できるようになる。
【図面の簡単な説明】
【図１】本発明の実施形態１に係るパケット通信装置の要部構成を示すブロック図
【図２】本発明の実施形態２に係るパケット通信装置の要部構成を示すブロック図
【図３】ＴＣＰのアルゴリズムによるデータ転送例を説明するシーケンス図
【図４】ＴＣＰのアルゴリズムによるデータ転送例を説明するシーケンス図
【図５】従来の帯域保証を行うパケット通信装置を用いた通信システムの構成例を示す図
【符号の説明】
１００，２００  パケット通信装置
１０１  パケット振分部
１０２  帯域保証用キュー
１０３  ベストエフォート記憶部
１０３−１〜１０３−Ｎ  ベストエフォート用キュー
１０４  パケット読出部
２０１  パケット受信部
２０２  フローパケット記憶部
２０１−１〜２０１−Ｍ  フローパケット用キュー
２０３  フローＩＤ振分部
２０４  帯域保証ＩＤ用キュー
２０５  ベストエフォートＩＤ記憶部
２０５−１〜２０５−Ｎ  ベストエフォートＩＤ用キュー
２０６  フローＩＤ出力部
２０７  パケット送信部
【図１】
2005012431.tif 000003
【図２】
2005012431.tif 000004
【図３】
2005012431.tif 000005
【図４】
2005012431.tif 000006
【図５】
2005012431.tif 000007