(57)【特許請求の範囲】
【請求項１】
入力されたパケットを、入力された順に抜き出し対象に設定して蓄積するバッファ部を複数備えた通信制御装置であって、
１又は複数のポートを介してパケットの入力を受け付け、当該パケットを、複数の前記バッファ部に対して順に振り分けて出力する受信バッファ振分部と、
前記複数のバッファ部におけるパケットの廃棄状態を監視する監視処理を行い、当該廃棄状態に基づいて、前記受信バッファ振分部が入力を受け付けた順に、前記複数のバッファ部からパケットを抜き出す抜出処理を行い、抜き出したパケットから順に出力する送信バッファ振分部と
を備え、
前記複数のバッファ部のうちの１つは第１バッファ部であり、他の１つは当該第１バッファ部が蓄積するパケットの前に抜き出し対象になるパケットを蓄積する第２バッファ部であって、
前記受信バッファ振分部は、
１又は複数のポートを介してパケットの入力を受け付けると、当該パケットに対して、入力を受け付けたパケットの序数を示す受信番号を付与する処理をさらに行い、
前記第１バッファ部は、
前記第２バッファ部に対して、自バッファ部が蓄積する先頭パケットに付与されている受信番号を通知し、
前記第２バッファ部は、
自バッファ部が蓄積する先頭パケットに付与されている受信番号と、前記第１バッファ部から通知された受信番号との比較を行い、
送信バッファ振分部は、
前記比較の結果を監視することによって前記監視処理を行い、前記複数のバッファ部から順にパケットを抜き出すことによって前記抜出処理を行う際に、前記比較の結果によって、前記第１バッファ部から通知された受信番号の方が小さいと判断した場合には、前記第２バッファ部からのパケットの抜き出しをスキップする
ことを特徴とする、通信制御装置。
【請求項２】
入力されたパケットを、入力された順に抜き出し対象に設定して蓄積するバッファ部を複数備えた通信制御装置であって、
１又は複数のポートを介してパケットの入力を受け付け、当該パケットを、複数の前記バッファ部に対して順に振り分けて出力する受信バッファ振分部と、
前記複数のバッファ部におけるパケットの廃棄状態を監視する監視処理を行い、当該廃棄状態に基づいて、前記受信バッファ振分部が入力を受け付けた順に、前記複数のバッファ部からパケットを抜き出す抜出処理を行い、抜き出したパケットから順に出力する送信バッファ振分部と
を備え、
前記複数のバッファ部のうちの１つは第１バッファ部であり、他の１つは当該第１バッファ部が蓄積するパケットの前に抜き出し対象になるパケットを蓄積する第２バッファ部であり、他の１つは当該第２バッファ部が蓄積するパケットの前に抜き出し対象になるパケットを蓄積する第３バッファ部であって、
前記受信バッファ振分部は、
１又は複数のポートを介してパケットの入力を受け付けると、当該パケットに対して、入力を受け付けたパケットの序数を示す受信番号を付与する処理をさらに行い、
前記第１バッファ部は、
前記第２バッファ部に対して、自バッファ部が蓄積する先頭パケットに付与されている受信番号を通知し、
前記第２バッファ部は、
自バッファ部が蓄積する先頭パケットに付与されている受信番号と、前記第１バッファ部から通知された受信番号との比較を行い、
前記比較の結果によって、前記第１バッファ部から通知された受信番号の方が小さいと判断した場合には、前記第３バッファ部に対して、前記第１バッファ部から通知された当該受信番号を通知し、
前記第３バッファ部は、
自バッファ部が蓄積する先頭パケットに付与されている受信番号と、前記第２バッファ部を介して前記第１バッファ部から通知された受信番号との比較を行い、
送信バッファ振分部は、
前記比較の結果を監視することによって前記監視処理を行い、前記複数のバッファ部から順にパケットを抜き出すことによって前記抜出処理を行う際に、前記比較の結果によって、前記第１バッファ部から通知された受信番号の方が小さいと判断した場合には、前記第３バッファ部からのパケットの抜き出しをスキップする
ことを特徴とする、通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置に関し、パケットに対するバッファ部を複数具備する通信制御装置に関する。
【背景技術】
【０００２】
パケット転送を行う通信制御装置は、受信したパケットに対してスイッチング処理やルーティング処理等のパケット分析処理を行う。このパケット分析処理により生じる瞬間的な送受信転送レート差を吸収するため、ポート毎に個別のバッファ部を具備する。バッファ部のサイズは、例えば、各ポートの最大転送レートや、最大送受信転送レート差や、ネットワーク装置内での許容遅延（レイテンシ）等に応じて決められる。
【０００３】
バッファ部を複数有する通信制御装置においては、受信したパケットを複数のバッファ部に振り分けて蓄積し、複数のバッファ部の中から所定のバッファ部を選択して、選択したバッファ部からパケットを取り出して送信する処理を行う必要がある。ここで、バッファ部を用いてパケットを送信する技術としては、ラウンドロビン方式が知られている。ラウンドロビン方式は、各バッファ部を順に（順番に）選択対象とする方式である。したがって、ラウンドロビン方式では、受信したパケットを各バッファ部に順に蓄積するとともに、蓄積されたパケットが各バッファ部から順に取り出されて送信される動作が基本となる。
【０００４】
このラウンドロビン方式を用いて、パケットを送信する技術は様々開示されている（例えば、特許文献１）。
【０００５】
【特許文献１】特開２０００−０９２０７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、例えば、特許文献１に開示された技術では、バッファ部におけるパケットの廃棄が発生した場合に、パケットの送信の順番が入れ替わってしまうという問題があった。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、受信したパケットを各バッファ部に順に蓄積するとともに、蓄積されたパケットが各バッファ部から順に取り出されて送信される場合に、バッファ部におけるパケットの廃棄が発生した場合でも、送信パケットの順番を正常に保つことが可能な通信制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記問題を解決するために、本発明のある観点によれば、入力されたパケットを、入力された順に抜き出し対象に設定して蓄積するバッファ部を複数備えた通信制御装置であって、１又は複数のポートを介してパケットの入力を受け付け、そのパケットを、複数のバッファ部に対して順に振り分けて出力する受信バッファ振分部と、複数のバッファ部におけるパケットの廃棄状態を監視する監視処理を行い、その廃棄状態に基づいて、受信バッファ振分部が入力を受け付けた順に、複数のバッファ部からパケットを抜き出す抜出処理を行い、抜き出したパケットから順に出力する送信バッファ振分部と、を備える通信制御装置が提供される。
【発明の効果】
【０００９】
以上説明したように本発明によれば、受信したパケットを各バッファ部に順に蓄積するとともに、蓄積されたパケットが各バッファ部から順に取り出されて送信される場合に、バッファ部におけるパケットの廃棄が発生した場合でも、送信パケットの順番を正常に保つことが可能な通信制御装置を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１１】
図１は、一般的な通信制御装置（その１）の構成例を示す図である。図１を参照して、一般的な通信制御装置（その１）の構成例について説明する。
【００１２】
図１に示すように、一般的な通信制御装置６００Ａは、各ポートＰ０〜Ｐ９に個別のバッファ部８００〜８９０を具備している。受信ポート振分部７００は、受信したパケットをバッファ部８００〜８９０に振り分け、送信ポート振分部９００は、バッファ部８００〜８９０に蓄積されたパケットを取り出して送信する。これによって、通信制御装置６００Ａが行うパケット分析処理により生じる瞬間的な送受信転送レート差を吸収している。
【００１３】
近年は、ネットワークシステムの使用態様が多様化しており、それぞれの使用態様及び、通信状況の変化に応じてバッファサイズを変更できるものが強く望まれている。それらの要望に対応する技術の１つとして、本願発明者は、新たな技術を開発した。
【００１４】
この技術によれば、固定サイズの複数のバッファを用意し、各ポートに割り当てるバッファ量は「ポートのリンク情報」「バッファ内の残りパケットの滞留量」「パケットがバッファ内を通過する時間」に応じて割り当てる固定サイズのバッファ数で動的に決定される。
【００１５】
各ポートから受信したパケットは、割り当てられた複数の固定サイズバッファに１パケット毎、順次処理方法（ラウンドロビン）で格納され、バッファからの送信時には受信時と同様に全バッファからラウンドロビンで１パケットずつ抜き出して送信される。これにより各ポートに割り当てられた転送レート帯域は使用する固定サイズバッファ数によって必然的に決定される。
【００１６】
図２は、一般的な通信制御装置（その２）の構成例を示す図である。図２を参照して、一般的な通信制御装置（その２）の構成例について説明する。
【００１７】
図２に示すように、一般的な通信制御装置６００Ｂは、各ポートに個別のバッファ部８００〜８９０を具備している。受信バッファ振分部７１０は、受信したパケットをバッファ部８００〜８９０に振り分け、送信ポート振分部９１０は、バッファ部８００〜８９０に蓄積されたパケットを取り出して送信する。
【００１８】
例えば、１０Ｍｂｐｓのポート１０本を処理するために、各ポートに対応した１０個のバッファ部８００〜８９０を用いる構成において、バッファ部８００〜８９０の構成はそのままで、１００Ｍｂｐｓのポート１本を処理する場合を考える。受信バッファ振分部７１０においては、受信した順番に、バッファ部８００〜８９０にパケットを振り分ける。送信バッファ振分部９１０においては、バッファ部８００〜８９０から順番にパケットを取り出して送信する。
【００１９】
図３は、一般的な通信制御装置（その２）における動作例を示す模式図である。図３を参照して、一般的な通信制御装置（その２）における動作例について説明する。
【００２０】
図３には、図２に示した通信制御装置（その２）を動作させた場合におけるパケットの流れが模式的に示されている。ここで、各パケットに表示されている番号は、受信するパケットの受信順番を表すために便宜的に付されたもので、パケットの内容とは関わり無い。また、実際のパケットに関係付けられたものではない。実際にはパケットに番号付けを行わないのが一般的である。以下においても、特に明示する場合を除いて同様である。また、分かりやすくするために、受信したパケットが、受信後すぐに送信されるのではなく、バッファ部８００〜８９０内に滞留した後、送信されるものとして図示されている。図３に示すように、パケットは、バッファ部８００〜８９０に順に蓄積されている。
【００２１】
図４は、一般的な通信制御装置（その２）における動作例を示す模式図である。図４を参照して、一般的な通信制御装置（その２）における動作例について説明する。
【００２２】
図４においては、図２に示した通信制御装置（その２）を動作させた場合におけるパケットの流れが模式的に示されている。ただし、簡単化のために４つのバッファ部８００〜８３０を用いたラウンドロビンでのパケット処理を示す。
【００２３】
図４において、通信制御装置６００Ｂが１８個のパケットを受信する場合を例として示している。受信バッファ振分部７１０においては、パケットの受信順に、バッファ部８００からバッファ部８３０に対してパケットを振り分ける。送信バッファ振分部９１０においては、各バッファ部８００〜８３０からの送信要求に応えて、順番にパケットを取り出し送信処理を行う。
【００２４】
バッファ部８００〜８３０では、受信バッファ振分部７１０から受け取った順番でパケットを管理し、その順番を保存して、送信バッファ振分部９１０に送出要求を出す（ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）動作）。バッファ部８１０に着目すれば、１番目、５番目、９番目、１３番目、１７番目のパケットがバッファに蓄積され、この順番で送出を行う。
【００２５】
図５は、一般的な通信制御装置（その２）における動作例を示す模式図である。図５を参照して、一般的な通信制御装置（その２）における動作例について説明する。
【００２６】
図５は、５番目のパケットが廃棄されたことを例として示している。廃棄は、例えば、受信バッファ振分部７１０でのパケット振り分け後、バッファ部８１０内でのパケット処理（パケット分析による廃棄、バッファオーバフローによる廃棄など）により発生する。図５に示すように、４番目のパケットまでは受信した順番通りに正常に送信される。
【００２７】
図６は、一般的な通信制御装置（その２）における動作例を示す模式図である。図６を参照して、一般的な通信制御装置（その２）における動作例について説明する。
【００２８】
図６においては、５番目のパケットが廃棄されたことによるバッファ部８１０内の状態が示されている。５番目のパケットが廃棄されたことにより、バッファ部８１０内では、１番目のパケットの次が９番目のパケットとなる。送信バッファ振分部９１０で、ラウンドロビンによる送信を行うと、図６に示す通り、４番目のパケットの後に９番目のパケットが送信される。これがパケットの順序が入れ替わった状態である。さらに、この後もバッファ部８１０内のパケットは他のバッファ部８００、８２０、８３０に蓄積されているパケットよりも一巡早く送信されることとなる。バッファ部８００〜８３０内に滞留しているパケットが無くなるまで、この状態は続く。
【００２９】
理想としては、図６の下部に示すように、５番目のパケットが廃棄されても、その後のパケット順序が入れ替わり無く送信されることが望ましい。一般にＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットでは、パケットの順序が入れ替わっても、終端部において復元・組立され、通信自体には支障が無い。また、ＩＰ網では一般的にパケットの順序は保障されず、順序が入れ替わること自体は珍しいことではない。しかしながら、特に最近ではＩＰ網内を音声や映像が流れ、その品質制御が重要となってきている。品質制御装置などで優先制御されたパケットの順序が網内で入れ替わることは好ましくない。このため、上記のような一般的な通信制御装置による単純なラウンドロビンでの制御には問題があり、パケットの順序の入れ替えが継続して発生することは避けるべきである。
【００３０】
（第１実施形態）
図７は、第１実施形態に係る通信制御装置の構成例を示す模式図である。図７を参照して、第１実施形態に係る通信制御装置の構成例について説明する。
【００３１】
（構成）
第１実施形態に係る通信制御部１００Ａは、受信バッファ振分部７１０と、バッファ部３００Ａ〜３３０Ａと、送信バッファ振分部４００Ａとを含んで構成される。
【００３２】
受信バッファ振分部７１０は、１又は複数のポート（不図示）を介してパケットの入力を受け付ける。受信バッファ振分部７１０は、入力を受け付けたパケットを、バッファ部３００Ａ〜３３０Ａに対して順に（ラウンドロビン方式で）振り分けて出力する。つまり、受信バッファ振分部７１０は、上記した一般的な通信制御装置（その２）における受信バッファ振分部７１０と同様の構成である。
【００３３】
バッファ部３００Ａ〜３３０Ａは、入力されたパケットを、入力された順に抜き出し対象に設定して蓄積する。ここでは、バッファ部を４つ備えることとしたが、複数であればいくつであってもよい。第１実施形態においては、バッファ部３００Ａ〜３３０Ａのうち、すくなくとも１つは、廃棄したパケットの数を示す廃棄数カウンタをそれぞれの内部に有しており、パケットを廃棄した際には自己の有する廃棄数カウンタをカウントアップする。ここでは、例としてバッファ部８１０Ａが廃棄数カウンタを有する場合について説明するが、バッファ部３００Ａ〜３３０Ａのうち、２つ以上のバッファ部が廃棄数カウンタを有することとしてもよい。
【００３４】
送信バッファ振分部４００Ａは、廃棄数カウンタを有するバッファ部８１０Ａにおけるパケットの廃棄状態を監視する監視処理を行う。送信バッファ振分部４００Ａは、この廃棄状態に基づいて、受信バッファ振分部７１０が入力を受け付けた順に、バッファ部３００Ａ〜３３０Ａからパケットを抜き出す抜出処理を行い、抜き出したパケットから順に出力する。
【００３５】
第１実施形態においては、送信バッファ振分部４００Ａは、廃棄数カウンタがカウントアップされているか否かを監視することによって、廃棄数カウンタを有するバッファ部３１０Ａの監視処理を行う。また、送信バッファ振分部４００Ａは、バッファ部３００Ａ〜３３０Ａから順にパケットを抜き出すことによって抜出処理を行う際に、廃棄数カウンタがカウントアップされている場合には、廃棄数カウンタを有するバッファ部３１０Ａからのパケットの抜き出しをスキップする。つまり、送信バッファ振分部４００Ａは、通常のラウンドロビン方式によるパケット取り出し動作に加え、廃棄数カウンタを有するバッファ部３１０Ａから提示された廃棄数カウンタに基づき、バッファ部３１０Ａからのパケットの取り出しをスキップ（飛ばす）する。また、送信バッファ振分部４００Ａは、抜出処理において、廃棄数カウンタがカウントアップされている場合には、廃棄数カウンタをカウントダウンする処理をさらに行うこととしてもよい。
【００３６】
廃棄数カウンタがカウントアップされているか否かについては、例えば、廃棄数カウンタを有するバッファ部３１０Ａから送信バッファ振分部４００Ａに対し、パケットの送信要求と共に、バッファ部での廃棄数カウンタを提示することとすれば監視できる。
【００３７】
受信バッファ振分部７１０、バッファ部３００Ａ〜３３０Ａ及び送信バッファ振分部４００Ａは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によってメモリに格納されたプログラムが実行されることによって実現される。また、バッファ部３００Ａ〜３３０Ａは、例えば、パケット格納用のメモリをそれぞれ有し、そのメモリにパケットが格納されることによってパケットが蓄積される。
【００３８】
図８は、第１実施形態に係る通信制御装置の動作例を示す模式図である。図８を参照して、第１実施形態に係る通信制御装置の動作例について説明する。
【００３９】
（動作）
ここでは、受信バッファ振分部７１０が、受信したパケットをラウンドロビン方式によりパケットをバッファ部に順に振り分けて蓄積する（バッファ部３００Ａ、バッファ部３１０Ａ、バッファ部３２０Ａ、バッファ部３３０Ａから順にパケットを取り出したら、再び、バッファ部３００Ａから順にパケットを蓄積する）こととする。また、送信バッファ振分部４００Ａも、ラウンドロビン方式によりパケットを順に取り出すこととする。また、例として、バッファ部３１０Ａが廃棄数カウンタを有することとする。また、ここでは、廃棄数カウンタの初期値が、０に設定されているものとする。
【００４０】
バッファ部３１０Ａにてパケット廃棄が発生すると、バッファ部３１０Ａが廃棄数カウンタをカウントアップ（例えば１加算）する。図８に示した例では、バッファ部３１０Ａにて５番目のパケットが廃棄されており、この場合、バッファ部３１０Ａは、自己の有する廃棄数カウンタをカウントアップする（例えば０から１にする）。
【００４１】
送信バッファ振分部４００Ａは、バッファ部３１０Ａが有する廃棄数カウンタを監視し、廃棄数カウンタがカウントアップされていると判断すると、バッファ部３１０Ａからのパケット取り出しをスキップする。図８に示した例では、送信バッファ振分部４００Ａが、バッファ部３００Ａから４番目のパケットを取り出した後、バッファ部３１０Ａからの９番目のパケットの取り出しをスキップしている。
【００４２】
送信バッファ振分部４００Ａは、バッファ部３１０Ａからのパケット取り出しをスキップする際に、バッファ部３１０Ａが有する廃棄数カウンタをカウントダウン（例えば１減算）することとしてもよい（例えば１から０にする）。そうすれば、送信バッファ振分部４００Ａは、バッファ部３００Ａから８番目のパケットを取り出した後、バッファ部３１０Ａが有する廃棄数カウンタがカウントダウンされていると判断し、バッファ部３１０Ａから９番目のパケットを取り出すことができる。つまり、パケットの廃棄が発生した回数だけ、バッファ部３１０Ａはラウンドロビン方式によるパケット取り出しの過程上でスキップされることとなる。
【００４３】
（効果）
従来のラウンドロビン方式では、バッファ部が空になる（バッファ部内における滞留パケットが無くなる）まで、送信パケットの順番が前後してしまう現象が継続するのに対し、第１実施形態によれば、廃棄パケットの本来の（廃棄されなかったときの）取り出しのタイミングが来てからは、送信パケットの順番が受信した順番通りに戻る（図７及び図８参照）。
【００４４】
第１実施形態では、パケット廃棄のタイミングでスキップされるので、廃棄パケットの本来の（廃棄されなかったときの）取り出しのタイミングが来るまでは、送信パケットの順番の入れ替えが発生するが、従来と比較して、送信パケットの順番の入れ替えが解消するまでの時間が有限であり、全体として入れ替えの発生する頻度が減少することが期待できる。
【００４５】
（第２実施形態）
第１実施形態では、従来よりもパケットの順序入れ替えの頻度が減ることが期待できるが、バッファ輻輳廃棄など受信時のパケット廃棄では、順序入れ替えが増えることも考えられる。そこで、受信時においてパケット廃棄が生じてもパケットの順序入れ替えが発生しない技術を第２実施形態として示す。
【００４６】
図９は、第２実施形態に係る通信制御装置の構成例を示す模式図である。図９を参照して、第２実施形態に係る通信制御装置の構成例について説明する。
【００４７】
（構成）
第２実施形態に係る通信制御部１００Ｂは、受信バッファ振分部２００と、バッファ部３００Ｂ〜３３０Ｂと、送信バッファ振分部４００Ｂとを含んで構成される。
【００４８】
受信バッファ振分部２００は、１又は複数のポートを介してパケットの入力を受け付けると、入力を受け付けたパケットに対して、入力を受け付けたパケットの序数を示す受信番号を付与する処理をさらに行う。受信バッファ振分部２００は、この点において、第１実施形態における受信バッファ振分部７１０と異なる。付与の方法は、（１）パケットに番号を埋め込む、（２）パケットにオーバーヘッドを付与し、そこに番号を書き込む、（３）パケットとは別に管理用に番号をバッファ部３００Ｂ〜３３０Ｂに渡す、など様々あるが、番号とパケットを一意に対応させることができれば、付与の方法は問わない。
【００４９】
バッファ部３００Ｂ〜３３０Ｂは、入力されたパケットを、入力された順に抜き出し対象に設定して蓄積する。ここでは、バッファ部を４つ備えることとしたが、複数であればいくつであってもよい。
【００５０】
送信バッファ振分部４００Ｂは、バッファ部３００Ｂ〜３３０Ｂが蓄積する先頭パケットに付与されている受信番号を比較することによって監視処理を行う。また、送信バッファ振分部４００Ｂは、受信番号を比較した結果、最も小さい受信番号が付与されたパケットから順に抜き出すことによって抜出処理を行う。
【００５１】
廃棄数カウンタがカウントアップされているか否かについては、例えば、バッファ部３００Ｂ〜３３０Ｂが送信バッファ振分部４００Ｂに対し、パケットの送信要求と共に、自己が蓄積する先頭パケットに付与されている受信番号を提示することとすれば監視できる。
【００５２】
図１０は、第２実施形態に係る通信制御装置の動作例を示す模式図である。図１０を参照して、第２実施形態に係る通信制御装置の動作例について説明する。
【００５３】
（動作）
ここでは、第１実施形態と同様に、受信バッファ振分部２００が、受信したパケットをラウンドロビン方式によりパケットをバッファ部に順に振り分けて蓄積することとする。また、送信バッファ振分部４００Ｂも、ラウンドロビン方式によりパケットを順に取り出すこととする。また、ここでは、受信番号が０から順番にパケットに付与されるものとする。
【００５４】
受信バッファ振分部２００では、入力を受け付けたパケットに対して、受信番号を付与する処理を行う。図１０に示した例では、バッファ部３１０Ｂにて５番目のパケットが廃棄されている。この場合、送信バッファ振分部４００Ｂによって４番目のパケットがバッファ部３００Ｂから取り出された後、バッファ部３００Ｂには８番目、バッファ部３１０Ｂには９番目、バッファ部３２０Ｂには６番目、バッファ部３３０Ｂには７番目のパケットが先頭に蓄積されている。
【００５５】
送信バッファ振分部４００Ｂは、バッファ部３００Ｂ〜３３０Ｂが蓄積する先頭パケットに付与されている受信番号を比較した結果、最も小さい受信番号が付与されたパケットから順に抜き出すことによって抜出処理を行う。図１０に示した例では、６番目を示す受信番号が最も小さいので、バッファ部３２０Ｂから６番目のパケットを取り出す。
【００５６】
（効果）
第２実施形態によれば、受信時においてパケットが廃棄された場合でも、受信したパケットの順番通りに、パケットが送信される。
【００５７】
（第３実施形態）
第２実施形態では、特にバッファ部の数が増えたときに、送信バッファ振分部のパケット番号比較回路が複雑になる。第３実施形態では、送信バッファ振分部回路を複雑にしない技術を示す。
【００５８】
図１１は、第３実施形態に係る通信制御装置の構成例を示す模式図である。図１１を参照して、第３実施形態に係る通信制御装置の構成例について説明する。
【００５９】
（構成）
第３実施形態に係る通信制御部１００Ｃは、受信バッファ振分部２００と、バッファ部３００Ｃ〜３３０Ｃと、送信バッファ振分部４００Ｃとを含んで構成される。受信バッファ振分部２００は、第２実施形態における受信バッファ振分部２００と同様の機能を有する。
【００６０】
バッファ部３００Ｃ〜３３０Ｃは、そのうちの１つが第１バッファ部であり、他の１つは第１バッファ部が蓄積するパケットの前に抜き出し対象になるパケットを蓄積する第２バッファ部である。第１バッファ部は、第２バッファ部に対して、自バッファ部が蓄積する先頭パケットに付与されている受信番号を通知する。第２バッファ部は、自バッファ部が蓄積する先頭パケットに付与されている受信番号と、第１バッファ部から通知された受信番号との比較を行う。
【００６１】
送信バッファ振分部４００Ｃは、第２バッファ部による比較の結果を監視することによって監視処理を行う。また、送信バッファ振分部４００Ｃは、複数のバッファ部から順にパケットを抜き出すことによって抜出処理を行う際に、上記比較の結果によって、第１バッファ部から通知された受信番号の方が小さいと判断した場合には、第２バッファ部からのパケットの抜き出しをスキップする。
【００６２】
受信番号の通知については、例えば、第１バッファ部が第２バッファ部に対して、パケットの送信要求と共に、自己が蓄積する先頭パケットに付与されている受信番号を提示することとすれば通知できる。
【００６３】
第２バッファ部は、例えば、パケットの送信要求を送信バッファ振分部４００Ｃに送信しないことによって、第１バッファ部から通知された受信番号の方が小さいことを示すこととしてもよい。また、そうすれば、パケットの送信要求を送信バッファ振分部４００Ｃに送信することによって、第２バッファ部が蓄積する先頭パケットに付与されている受信番号の方が小さいことを示すことができる。このようにすれば、送信バッファ振分部４００Ｃにおいて、第２バッファ部による比較の結果を監視することによって監視処理を行うことができる。
【００６４】
図１２は、第３実施形態に係る通信制御装置の動作例を示す模式図である。図１２を参照して、第３実施形態に係る通信制御装置の動作例について説明する。
【００６５】
（動作）
ここでは、第２実施形態と同様に、受信バッファ振分部２００が、受信したパケットに受信番号を付しながら、ラウンドロビン方式によりパケットをバッファ部に順に振り分けて蓄積することとする。また、送信バッファ振分部４００Ｂも、ラウンドロビン方式によりパケットを順に取り出すこととする。また、ここでは、受信番号が０から順番にパケットに付与されるものとする。また、第１バッファ部がバッファ部３２０Ｃ、第２バッファ部がバッファ部３１０Ｃであるとする。
【００６６】
受信バッファ振分部２００では、入力を受け付けたパケットに対して、受信番号を付与する処理を行う。図１２に示した例では、バッファ部３１０Ｃにて５番目のパケットが廃棄されている。この場合、送信バッファ振分部４００Ｃによって４番目のパケットがバッファ部３００Ｃから取り出された後、バッファ部３００Ｃには８番目、バッファ部３１０Ｃには９番目、バッファ部３２０Ｃには６番目、バッファ部３３０Ｃには７番目のパケットが先頭に蓄積されている。
【００６７】
第１バッファ部であるバッファ部３２０Ｃは、第２バッファ部であるバッファ部３１０Ｃに自バッファ部が蓄積する先頭パケットに付与されている受信番号を通知する。図１２に示した例では、バッファ部３２０Ｃには、先頭パケットに６番目のパケットが蓄積されているので、バッファ部３２０Ｃは、６番目を示す受信番号をバッファ部３１０Ｃに通知する。
【００６８】
バッファ部３１０Ｃは、自バッファ部が蓄積する先頭パケットに付与されている受信番号と、バッファ部３２０Ｃから通知された受信番号との比較を行う。図１２に示した例では、バッファ部３１０Ｃに蓄積されている先頭パケットが９番目のパケットであり、バッファ部３２０から通知された受信番号が６番目であるので、バッファ部３２０Ｃから通知された受信番号の方が小さいという比較結果を出す。
【００６９】
送信バッファ振分部４００Ｃは、バッファ部３２０Ｃから通知された受信番号の方が小さいと判断した場合には、バッファ部３１０Ｃからのパケットの抜き出しをスキップする。図１２に示した例では、上記した比較結果によって、送信バッファ振分部４００Ｃは、バッファ部３１０Ｃに蓄積されている先頭パケットである９番目のパケットの抜き出しをスキップし、バッファ部３２０Ｃに蓄積されている先頭パケットである６番目のパケットを取り出す。
【００７０】
（効果）
この方法により、パケット受信時においてパケットが廃棄された場合でも、受信したパケットの順番通りに、パケットが送信される。
【００７１】
（第３実施形態の変形例）
図１３は、第３実施形態の変形例に係る通信制御装置の構成例を示す模式図である。図１３を参照して、第３実施形態の変形例に係る通信制御装置の構成例について説明する。
【００７２】
（構成）
第３実施形態の変形例に係る通信制御部１００Ｄは、受信バッファ振分部２００と、バッファ部３００Ｄ〜３３０Ｄと、送信バッファ振分部４００Ｃとを含んで構成される。受信バッファ振分部２００及び送信バッファ振分部４００Ｃは、第３実施形態における受信バッファ振分部２００及び送信バッファ振分部４００Ｃと同様の機能を有する。
【００７３】
バッファ部３００Ｃ〜３３０Ｃは、そのうちの１つが第１バッファ部であり、他の１つは第１バッファ部が蓄積するパケットの前に抜き出し対象になるパケットを蓄積する第２バッファ部であり、他の１つは第２バッファ部が蓄積するパケットの前に抜き出し対象になるパケットを蓄積する第３バッファ部である。第３実施形態と同様に、第１バッファ部は、第２バッファ部に対して、自バッファ部が蓄積する先頭パケットに付与されている受信番号を通知する。なお、第３実施形態においては、第１バッファ部、第２バッファ部及び第３バッファ部はそれぞれ１つずつであるとするが、第１バッファ部、第２バッファ部及び第３バッファ部の組み合わせは、複数が存在していてもよい。
【００７４】
第２バッファ部は、第３実施形態と同様に、自バッファ部が蓄積する先頭パケットに付与されている受信番号と、第１バッファ部から通知された受信番号との比較を行う。比較の結果によって、第１バッファ部から通知された受信番号の方が小さいと判断した場合には、第３バッファ部に対して、第１バッファ部から通知された受信番号を通知する点において、第３実施形態と異なる。
【００７５】
第３バッファ部は、自バッファ部が蓄積する先頭パケットに付与されている受信番号と、第２バッファ部を介して第１バッファ部から通知された受信番号との比較を行う。
【００７６】
図１４は、第３実施形態の変形例に係る通信制御装置の動作例を示す模式図である。図１４を参照して、第３実施形態の変形例に係る通信制御装置の動作例について説明する。
【００７７】
（動作）
ここでは、第３実施形態の変形例と同様に、受信バッファ振分部２００が、受信したパケットに受信番号を付しながら、ラウンドロビン方式によりパケットをバッファ部に順に振り分けて蓄積することとする。また、送信バッファ振分部４００Ｃも、ラウンドロビン方式によりパケットを順に取り出すこととする。また、ここでは、受信番号が０から順番にパケットに付与されるものとする。また、第１バッファ部がバッファ部３２０Ｄ、第２バッファ部がバッファ部３１０Ｄ、第３バッファ部がバッファ部３００Ｄであるとする。
【００７８】
受信バッファ振分部２００では、入力を受け付けたパケットに対して、受信番号を付与する処理を行う。図１４に示した例では、バッファ部３１０Ｄにて５番目のパケットが廃棄されている。この場合、送信バッファ振分部４００Ｃによって４番目のパケットがバッファ部３００Ｄから取り出された後、バッファ部３００Ｄには８番目、バッファ部３１０Ｄには９番目、バッファ部３２０Ｄには６番目、バッファ部３３０Ｄには７番目のパケットが先頭に蓄積されている。
【００７９】
第１バッファ部であるバッファ部３２０Ｄは、第２バッファ部であるバッファ部３１０Ｄに自バッファ部が蓄積する先頭パケットに付与されている受信番号を通知する。図１４に示した例では、バッファ部３２０Ｄには、先頭パケットに６番目のパケットが蓄積されているので、バッファ部３２０Ｄは、６番目を示す受信番号をバッファ部３１０Ｄに通知する。
【００８０】
バッファ部３１０Ｄは、自バッファ部が蓄積する先頭パケットに付与されている受信番号と、バッファ部３２０Ｄから通知された受信番号との比較を行う。図１４に示した例では、バッファ部３１０Ｄに蓄積されている先頭パケットが９番目のパケットであり、バッファ部３２０から通知された受信番号が６番目であるので、バッファ部３２０Ｄから通知された受信番号の方が小さいという比較結果を出す。バッファ部３１０Ｄは、さらに、バッファ部３００Ｄに対して、バッファ部３２０Ｄから通知された受信番号を通知する。
【００８１】
送信バッファ振分部４００Ｃは、バッファ部３２０から通知された受信番号の方が小さいと判断した場合には、バッファ部３１０からのパケットの抜き出しをスキップする。図１４に示した例では、上記した比較結果によって、送信バッファ振分部４００Ｃは、バッファ部３１０Ｄに蓄積されている先頭パケットである９番目のパケットの抜き出しをスキップし、バッファ部３２０Ｄに蓄積されている先頭パケットである６番目のパケットを取り出す。
【００８２】
バッファ部３００Ｄは、自バッファ部が蓄積する先頭パケットに付与されている受信番号と、バッファ部３１０Ｄを介してバッファ部３２０Ｄから通知された受信番号との比較を行う。
【００８３】
第３実施形態の変形例によれば、複数のバッファ部で廃棄が発生した場合でもパケット順番が守られる。この場合、バッファ部間の調停が完了すると、最も若い番号を提示しているバッファ部だけが送信バッファ振分部４００Ｃに対し、送信を要求することになり、送信バッファ振分部４００Ｃでのパケット番号比較やラウンドロビンによる調停が不要となるという効果も得られる。
【００８４】
第２、第３実施形態によれば、バッファ部でパケット廃棄が発生しても、廃棄されたパケットを除いて送信パケットの順序が入れ替わることが無い。これは、送信バッファ振分部が単純なラウンドロビン動作ではないことによる。このことにより、受信バッファ振分部もラウンドロビンによる振分以外の方法も採用できることになる。例えば、各バッファの使用量（空容量）や各バッファ内に滞留しているパケット数などを元に、最も余裕のあるバッファを選択することが可能となる。バッファの使用量や滞留パケット数を元にバッファを選択する方法として、第２及び第３実施形態を応用して適用することができる。第２及び第３実施形態で示したパケットの番号の代わりに、バッファの使用量や滞留パケット数を適用すればよい。
【００８５】
この方法を適用して、各バッファの状態を考慮してパケットを振り分けることにより、バッファ部の輻輳によるパケットの廃棄を減らす効果が期待できる。
【００８６】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００８７】
【図１】一般的な通信制御装置（その１）の構成例を示す図である。
【図２】一般的な通信制御装置（その２）の構成例を示す図である。
【図３】一般的な通信制御装置（その２）における動作例を示す模式図である。
【図４】一般的な通信制御装置（その２）における動作例を示す模式図である。
【図５】一般的な通信制御装置（その２）における動作例を示す模式図である。
【図６】一般的な通信制御装置（その２）における動作例を示す模式図である。
【図７】第１実施形態に係る通信制御装置の構成例を示す模式図である。
【図８】第１実施形態に係る通信制御装置の動作例を示す模式図である。
【図９】第２実施形態に係る通信制御装置の構成例を示す模式図である。
【図１０】第２実施形態に係る通信制御装置の動作例を示す模式図である。
【図１１】第３実施形態に係る通信制御装置の構成例を示す模式図である。
【図１２】第３実施形態に係る通信制御装置の動作例を示す模式図である。
【図１３】第３実施形態の変形例に係る通信制御装置の構成例を示す模式図である。
【図１４】第３実施形態の変形例に係る通信制御装置の動作例を示す模式図である。
【符号の説明】
【００８８】
１００  通信制御装置
２００  受信バッファ振分部
３００〜３３０  バッファ部
４００  送信バッファ振分部
６００  通信制御装置
７００  受信ポート振分部
７１０  受信バッファ振分部
８００〜８９０  バッファ部
９００  送信ポート振分部
９１０  送信バッファ振分部
【図１】
0004957604.tif 000002
【図２】
0004957604.tif 000003
【図３】
0004957604.tif 000004
【図４】
0004957604.tif 000005
【図５】
0004957604.tif 000006
【図６】
0004957604.tif 000007
【図７】
0004957604.tif 000008
【図８】
0004957604.tif 000009
【図９】
0004957604.tif 000010
【図１０】
0004957604.tif 000011
【図１１】
0004957604.tif 000012
【図１２】
0004957604.tif 000013
【図１３】
0004957604.tif 000014
【図１４】
0004957604.tif 000015