(57)【要約】  送信バッファと受信バッファを持ち、データパケットを送受信するデータパケット送受信システムにおいて、受信バッファの容量になるべく未使用領域を生じさせることなく受信バッファの資源を有効活用するため、送受信されるデータパケットの容量に応じて、受信バッファが受信できるデータパケット数を動的に変化させる。これにより、受信バッファのオーバーフローによるデータパケットの廃棄を防止しつつ、従来の制御の場合よりも少ない資源で従来と同様の性能を出すことが可能となる。
2008050394.tif 000002
【特許請求の範囲】
【請求項１】
送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信するデータパケット送受信システムであって、
前記受信装置は、
前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信手段と、
前記送信装置は、
前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶するクレジット記憶手段と、
前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットに加算して格納するクレジット加算手段と、
前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算して格納するクレジット減算手段と、
前記クレジット記憶手段に記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御手段と、
を備えたことを特徴とするデータパケット送受信システム。
【請求項２】
前記容量特定情報送信手段は、前記容量特定情報として、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを前記送信装置に送信し、
前記クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、
前記クレジット減算手段は、前記受信装置から受信した値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算して格納することを特徴とする請求項１に記載のデータパケット送受信システム。
【請求項３】
前記容量特定情報送信手段は、前記受信バッファから読み出されたデータパケットの容量に関係なく、前記容量特定情報を前記送信装置に送信し、
前記クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記データパケットごとに区分けして送信順に、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、
前記クレジット減算手段は、前記データパケットごとに区分けして送信順に前記クレジット記憶手段に記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジットを減算して格納することを特徴とする請求項１に記載のデータパケット送受信システム。
【請求項４】
前記送信制御手段は、前記データパケットの送信を許可する場合に、当該送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加して前記受信装置に送信し、
前記容量特定情報送信手段は、前記受信バッファから読み出されたデータパケットの容量に関係なく、当該データパケットに付加されている識別情報を前記送信装置に送信し、
前記クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記データパケットごとに区分けするとともに前記識別情報を付加して、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、
前記クレジット減算手段は、前記データパケットごとに区分けされるとともに前記識別情報が付加されて前記クレジット記憶手段に記憶されているクレジットのなかから、前記受信装置から受信した識別情報に対応するデータパケットのクレジットを減算して格納することを特徴とする請求項１に記載のデータパケット送受信システム。
【請求項５】
前記送信制御手段は、前記クレジット記憶手段に記憶されているクレジットの値に対して、前記送信装置から送信しようとしているデータパケットの容量に応じたクレジットの値を加算した加算値が、前記受信バッファの容量から定まる所定の値に達しているか否かを判定し、前記加算値が前記所定の値に達していない場合には、前記データパケットの送信を許可し、前記加算値が前記所定の値に達している場合には、前記データパケットの送信を停止するように制御することを特徴とする請求項１〜４のいずれか一つに記載のデータパケット送受信システム。
【請求項６】
前記送信制御手段は、前記クレジット記憶手段に記憶されているクレジットの値が、前記受信バッファの容量から定まる所定の値に達しているか否かを判定し、前記クレジットの値が前記所定の値に達していない場合には、前記データパケットの送信を許可し、前記クレジットの値が前記所定の値に達している場合には、前記データパケットの送信を停止するように制御することを特徴とする請求項１〜４のいずれか一つに記載のデータパケット送受信システム。
【請求項７】
送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信するデータパケット送受信方法であって、
前記受信装置は、
前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信工程と、
前記送信装置は、
前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとしてクレジットカウンタに記憶するクレジット記憶工程と、
前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットに加算して格納するクレジット加算工程と、
前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットから減算して格納するクレジット減算工程と、
前記クレジットカウンタに記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御工程と、
を含んだことを特徴とするデータパケット送受信方法。
【請求項８】
送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信する方法をコンピュータに実行させるデータパケット送受信プログラムであって、
前記受信装置としてのコンピュータは、
前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信手順と、
前記送信装置としてのコンピュータは、
前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとしてクレジットカウンタに記憶するクレジット記憶手順と、
前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットに加算して格納するクレジット加算手順と、
前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットから減算して格納するクレジット減算手順と、
前記クレジットカウンタに記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御手順と、
をコンピュータに実行させることを特徴とするデータパケット送受信プログラム。
【請求項９】
送信装置から送信されるデータパケットを受信する受信装置であって、
前記データパケットを格納する受信バッファと、
前記受信バッファに格納されたデータパケットを読み出す出力手段と、
前記受信バッファに格納されている前記データパケットが読み出された場合に、当該読み出されたデータパケットの容量を特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信手段と、
を備えたことを特徴とする受信装置。
【請求項１０】
前記容量特定情報送信手段は、前記容量特定情報として、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを前記送信装置に送信することを特徴とする請求項９に記載の受信装置。
【請求項１１】
受信バッファを備える受信装置へデータパケットを送信する送信装置であって、
前記受信バッファに格納されている全データパケットの総容量に応じた値をクレジットとして記憶するクレジット記憶手段と、
前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットに加算するクレジット加算手段と、
前記受信装置から受信した、前記受信バッファから読み出されたデータパケットの容量を特定する容量特定情報に基づいて、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算するクレジット減算手段と、
前記クレジット記憶手段に記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御手段と、
を備えたことを特徴とする送信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラムに関する。
【背景技術】
【０００２】
従来より、送信側の送信バッファから受信側の受信バッファにデータパケットを送信するシステムにおいては、受信バッファがオーバーフローしてデータパケットが廃棄されてしまわないように、受信バッファにおけるデータパケットの読み出し状況を受信側から送信側に伝え、送信側でデータパケットの送信を制御することが一般的に行われている。【０００３】
例えば、特許文献１（特開平９−１３５２７０号公報）では、受信バッファで格納可能なキュー段数（パケット数）をデータパケットの最長サイズ（最大容量）から予め固定的に決定し、この固定的に決定されたキュー段数を用いてデータパケットの送信を制御する技術が開示されている。以下に、図２２を用いて、この従来技術を具体的に説明する。図２２は、従来技術に係るデータパケット送信制御システムの概要と特徴を説明するための図である。なお、ここでは、同図に示すように、受信側における受信バッファのサイズが１６バイトであり、送信側から送信されるデータパケットの最長サイズが４バイトであって、受信バッファで格納可能なキュー段数（パケット数）として４個が予め固定的に決定されている例を説明する。【０００４】
同図に示すように、送信側では、クレジット制御カウンタを有し、送信バッファからデータパケットを読み出して受信側にデータパケットを送信する度に、送信されるデータパケットのサイズ（データ容量）に関係なく、クレジット制御カウンタの値を一つ加算する（同図の（１）参照）。一方、受信側では、送信側からデータパケットを受信すると、受信したデータパケットを受信バッファの先頭から詰めて書き込む（同図の（２）参照）。また、受信側では、受信バッファからデータパケットが読み出される度に、読み出されるデータパケットのサイズに関係なく、送信側にクレジットを一つ返信する（同図の（３）参照）。そして、送信側では、受信側からクレジットを受信する度に、クレジットの数だけクレジット制御カウンタの値を減算する（同図の（４）参照）。【０００５】
このようにして、送信側では、クレジット制御カウンタの値を加減算するが、このクレジット制御カウンタには、上記したように、受信バッファで格納可能なキュー段数（パケット数）として４個が予め固定的に設定されている。したがって、送信側では、送信バッファからデータパケットを読み出して受信側にデータパケットを送信するタイミングになると、クレジット制御カウンタの現値が固定値（４個）に達しているか否かを判定する。そして、送信側では、クレジット制御カウンタの現値が固定値（４個）に達していない場合には、送信バッファからデータパケットを読み出して受信側にデータパケットを送信し、その一方、クレジット制御カウンタの現値が固定値（４個）に達している場合には、受信バッファがデータパケットで満杯になっているおそれがあると判断して、データパケットの送信を停止する（同図の（５）参照）。このような一連の処理を通じて、特許文献１では、受信バッファのオーバーフローによるデータパケットの廃棄を防止している。【０００６】
なお、上記したような従来技術の他に、クレジットによる制御において、受信バッファの空き容量に応じてクレジットを追加発行することによって、バッファをリングバッファとして使用する技術も知られている（例えば、特許文献２参照）。さらに、バッファの制御において、送信バッファの使用状態について、管理テーブルを用いることで、送信データを簡単に管理できるようにする技術も知られている（例えば、特許文献３参照）。【０００７】
【特許文献１】特開平９−１３５２７０号公報（第２−４頁、第１−３図）
【特許文献２】特開２００１−９４６１３号公報（第３−５頁、第１図）
【特許文献３】特開平１１−１１０３１５号公報（第６−１０頁、第１−２図）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記した従来の技術では、以下に説明するように、受信バッファに未使用領域が生じ易く、受信バッファとしての資源を有効に利用できていないという課題があった。【０００９】
すなわち、上記した従来の技術では、受信バッファで格納可能なキュー段数をデータパケットの最長サイズから予め固定的に決定している（上記の例では、４個）。このため、図２２に示すように、サイズが「４バイト、２バイト、２バイト、２バイト」である４つのパケットが受信バッファに格納されている場合のように、データパケットの最長サイズに満たない短いサイズのデータパケットが受信バッファに格納されている場合でも、送信側のクレジット制御カウンタの値が固定値（４個）に達する結果、データパケットの送信は停止されてしまう。そして、このような場合には、受信バッファに未使用領域が大きく生じ（上記の例では、６バイトの未使用領域が生じ）、受信バッファとしての資源を有効に利用できていないという課題があった。【００１０】
なお、上記したような課題は、ネットワークを介して通信装置間でデータパケットを送信する場合に限られた課題ではなく、例えば、コンピュータシステム内部において回路間でデータパケットを送信する場合など、送信側の送信バッファから受信側の受信バッファにデータパケットを送信するあらゆるシステムで同様に生じる課題である。【００１１】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、受信バッファとしての資源を有効に利用することが可能なデータパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信するデータパケット送受信システムであって、前記受信装置は、前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信し、前記送信装置は、前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶し、前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、クレジット記憶手段に記憶されているクレジットに加算して格納し、前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算して格納し、前記クレジット記憶手段に記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御することを備えたことを特徴とする。【００１３】
また、請求項２に係る発明は、上記の発明において、容量特定情報送信手段は、前記容量特定情報として、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを前記送信装置に送信し、クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、クレジット減算手段は、前記受信装置から受信した値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算して格納することを備えたことを特徴とする。【００１４】
また、請求項３に係る発明は、上記の発明において、前記容量特定情報送信手段は、前記受信バッファから読み出されたデータパケットの容量に関係なく、前記容量特定情報を前記送信装置に送信し、前記クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記データパケットごとに区分けして送信順に、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、前記クレジット減算手段は、前記データパケットごとに区分けして送信順に前記クレジット記憶手段に記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジットを減算して格納することを備えたことを特徴とする。【００１５】
また、請求項４に係る発明は、上記の発明において、送信制御手段は、前記データパケットの送信を許可する場合に、当該送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加して前記受信装置に送信し、前記容量特定情報送信手段は、前記受信バッファから読み出されたデータパケットの容量に関係なく、当該データパケットに付加されている識別情報を前記送信装置に送信し、前記クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記データパケットごとに区分けするとともに前記識別情報を付加して、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、前記クレジット減算手段は、前記データパケットごとに区分けされるとともに前記識別情報が付加されて前記クレジット記憶手段に記憶されているクレジットのなかから、前記受信装置から受信した識別情報に対応するデータパケットのクレジットを減算して格納することを備えたことを特徴とする。【００１６】
また、請求項５に係る発明は、上記の発明において、前記送信制御手段は、前記クレジット記憶手段に記憶されているクレジットの値に対して、前記送信装置から送信しようとしているデータパケットの容量に応じたクレジットの値を加算した加算値が、前記受信バッファの容量から定まる所定の値に達しているか否かを判定し、前記加算値が前記所定の値に達していない場合には、前記データパケットの送信を許可し、前記加算値が前記所定の値に達している場合には、前記データパケットの送信を停止するように制御することを備えたことを特徴とする。【００１７】
また、請求項６に係る発明は、上記の発明において、前記送信制御手段は、前記クレジット記憶手段に記憶されているクレジットの値が、前記受信バッファの容量から定まる所定の値に達しているか否かを判定し、前記クレジットの値が前記所定の値に達していない場合には、前記データパケットの送信を許可し、前記クレジットの値が前記所定の値に達している場合には、前記データパケットの送信を停止するように制御することを備えたことを特徴とする。【００１８】
また、請求項７に係る発明は、送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信するデータパケット送受信方法であって、前記受信装置は、前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信工程と、前記送信装置は、前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとしてクレジットカウンタに記憶するクレジット記憶工程と、前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットに加算して格納するクレジット加算工程と、前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットから減算して格納するクレジット減算工程と、前記クレジットカウンタに記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御工程と、を含んだことを特徴とする。【００１９】
また、請求項８に係る発明は、送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信する方法をコンピュータに実行させるデータパケット送受信プログラムであって、前記受信装置としてのコンピュータは、前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信手順と、前記送信装置としてのコンピュータは、前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとしてクレジットカウンタに記憶するクレジット記憶手順と、前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットに加算して格納するクレジット加算手順と、前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットから減算して格納するクレジット減算手順と、前記クレジットカウンタに記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御手順と、をコンピュータに実行させることを特徴とする。【００２０】
また、請求項９に係る発明は、送信装置から送信されるデータパケットを受信する受信装置であって、前記データパケットを格納する受信バッファを有し、前記受信バッファに格納されたデータパケットを読み出し、前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を特定する際に用いられる容量特定情報を前記送信装置に送信することを備えたことを特徴とする。【００２１】
また、請求項１０に係る発明は、上記の発明において、容量特定情報送信手段は、前記容量特定情報として、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを前記送信装置に送信することを特徴とする。【００２２】
また、請求項１１に係る発明は、受信バッファを備える受信装置へデータパケットを送信する送信装置であって、前記受信バッファに格納されている全データパケットの総容量に応じた値をクレジットとして記憶し、前記受信装置にデータパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、クレジット記憶手段に記憶されているクレジットに加算し、前記受信装置から受信した、前記受信バッファから読み出されたデータパケットの容量を特定する容量特定情報に基づいて、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算し、クレジット記憶手段に記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御することを備えたことを特徴とする。
【発明の効果】
【００２３】
請求項１、７または８の発明によれば、受信装置は、受信バッファに格納されているデータパケットが読み出された場合に、容量特定情報を送信装置に送信し、送信装置は、受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶し、送信バッファから受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、現在のクレジットに加算して格納し、受信装置から容量特定情報を受信した場合に、当該容量特定情報を用いて受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、現在のクレジットから減算して格納し、クレジット記憶手段に記憶されているクレジットの値に基づいて、データパケットの送信を許可または停止するように制御するので、送信装置が受信バッファにおけるデータパケットの混み具合をデータパケット数ではなくデータ容量で把握し、受信バッファに格納されるデータパケット数（キュー段数）をデータパケットがオーバーフローしない範囲で動的に調整しながらデータパケットを送信することで、受信バッファの未使用領域を減らすことができる結果、受信バッファとしての資源を有効に利用することが可能である。【００２４】
また、請求項２の発明によれば、受信装置は、容量特定情報として、受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを送信装置に送信し、送信装置は、受信装置に送信されたデータパケットの容量に応じた値のクレジットを、現在のクレジットに加算して格納し、送信装置は、受信装置から受信した値のクレジットを、現在のクレジットから減算して格納するので、送信装置では、受信装置から受信したクレジットをそのまま減算するだけで、受信バッファにおけるデータパケットの混み具合を把握することができる結果、送信装置におけるクレジットの増加減処理を簡易化することも可能である。【００２５】
また、請求項３の発明によれば、受信装置は、受信バッファから読み出されたデータパケットの容量に関係なく、容量特定情報を送信装置に送信し、送信装置は、受信装置に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けして送信順に、現在のクレジットに加算して格納し、送信装置は、データパケットごとに区分けして送信順にクレジット記憶手段に記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジットを減算して格納するので、受信バッファから読み出されたデータパケットの容量に関係なく、常に同量のクレジットを受信装置から送信装置に送信するだけで、受信装置では、受信バッファにおけるデータパケットの混み具合を把握することができる結果、受信装置から送信装置への返信処理を簡易化することも可能である。【００２６】
また、請求項４の発明によれば、送信装置は、データパケットの送信を許可する場合に、当該送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加して受信装置に送信し、受信装置は、受信バッファから読み出されたデータパケットの容量に関係なく、当該データパケットに付加されている識別情報を送信装置に送信し、送信装置は、受信装置に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けするとともに識別情報を付加して、現在のクレジットに加算して格納し、送信装置は、データパケットごとに区分けされるとともに識別情報が付加されてクレジット記憶手段に記憶されているクレジットのなかから、受信装置から受信した識別情報に対応するデータパケットのクレジットを減算して格納するので、受信バッファから読み出されたデータパケットの容量に関係なく、パケットの識別情報を受信装置から送信装置に送信するだけで、受信装置では、受信バッファにおけるデータパケットの混み具合を把握することができる結果、受信装置から送信装置への返信処理を簡易化することも可能である。さらに、パケットの識別情報を受信装置から送信装置に送信するだけで、受信バッファから読み出されたデータパケットの容量を確実に特定することができる結果、受信バッファにおけるデータパケットの混み具合を確実に把握することも可能になる。【００２７】
また、請求項５の発明によれば、送信装置は、現在のクレジットの値に対して、送信装置から送信しようとしているデータパケットの容量に応じたクレジットの値を加算した加算値が、受信バッファの容量から定まる所定の値に達しているか否かを判定し、加算値が所定の値に達していない場合には、データパケットの送信を許可し、加算値が所定の値に達している場合には、データパケットの送信を停止するように制御するので、これから送信しようとしているデータパケットが送信された後における受信バッファの混み具合を推定することができる結果、受信バッファにおけるオーバーフローを確実に防止することも可能である。【００２８】
また、請求項６の発明によれば、送信装置は、現在のクレジットの値が、受信バッファの容量から定まる所定の値に達しているか否かを判定し、クレジットの値が所定の値に達していない場合には、データパケットの送信を許可し、クレジットの値が所定の値に達している場合には、データパケットの送信を停止するように制御するので、例えば、受信バッファの容量からデータパケットの最長サイズを差し引いた値をクレジットカウンタの上限値として設定しておき、この上限値をクレジットが超えるか否かだけを判定しながらデータパケットの送信を制御することができる結果、パケットの送信を許可または停止する処理を簡易化することも可能である。【００２９】
また、請求項９の発明によれば、受信装置は、データパケットを格納する受信バッファを有し、受信バッファに格納されたデータパケットを読み出し、受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を特定する際に用いられる容量特定情報を送信装置に送信するので、送信装置が、現在のクレジットに基づいて、データパケットの送信を許可または停止するように制御することにより、送信装置が受信バッファにおけるデータパケットの混み具合をデータパケット数ではなくデータ容量で把握し、受信バッファに格納されるデータパケット数（キュー段数）をデータパケットがオーバーフローしない範囲で動的に調整しながらデータパケットを送信することで、受信バッファの未使用領域を減らすことができる結果、受信バッファとしての資源を有効に利用することが可能である。【００３０】
また、請求項１０の発明によれば、受信装置は、容量特定情報として、受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを送信装置に送信するので、送信装置が、受信装置に送信されたデータパケットの容量に応じた値のクレジットを、現在のクレジットに加算して格納し、送信装置が、受信装置から受信した値のクレジットを、現在のクレジットから減算して格納することにより、送信装置では、受信装置から受信したクレジットをそのまま減算するだけで、受信バッファにおけるデータパケットの混み具合を把握することができる結果、送信装置におけるクレジットの増加減処理を簡易化することも可能である。【００３１】
また、請求項１１の発明によれば、送信装置は、受信バッファに格納されている全データパケットの総容量に応じた値をクレジットとして記憶し、受信装置にデータパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、現在のクレジットに加算し、受信装置から受信した、受信バッファから読み出されたデータパケットの容量を特定する容量特定情報に基づいて、受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを、現在のクレジットから減算し、クレジット記憶手段に記憶されているクレジットの値に基づいて、データパケットの送信を許可または停止するように制御するので、受信装置が、受信バッファに格納されているデータパケットが読み出された場合に、容量特定情報を送信装置に送信することにより、送信装置が受信バッファにおけるデータパケットの混み具合をデータパケット数ではなくデータ容量で把握し、受信バッファに格納されるデータパケット数（キュー段数）をデータパケットがオーバーフローしない範囲で動的に調整しながらデータパケットを送信することで、受信バッファの未使用領域を減らすことができる結果、受信バッファとしての資源を有効に利用することが可能である。
【図面の簡単な説明】
【００３２】
【図１】図１は、実施例１に係るデータパケット送受信システムの概要および特徴を説明するための図である。
【図２】図２は、実施例１におけるデータパケット送受信システムの構成を示すブロック図である。
【図３】図３は、実施例１におけるパケット送信時の処理を示すフローチャートである。
【図４】図４は、実施例１におけるクレジット受信時の処理を示すフローチャートである。
【図５】図５は、実施例１におけるクレジット送信時の処理を示すフローチャートである。
【図６】図６は、実施例２に係るデータパケット送受信システムの概要および特徴を説明するための図である。
【図７】図７は、実施例２におけるパケット送受信システムの構成を示すブロック図である。
【図８】図８は、実施例２におけるクレジット加算時の処理を示す概念図である。
【図９】図９は、実施例２におけるクレジット減算時の処理を示す概念図である。
【図１０】図１０は、実施例２におけるパケット送信時の処理を示すフローチャートである。
【図１１】図１１は、実施例２におけるクレジット受信時の処理を示すフローチャートである。
【図１２】図１２は、実施例２におけるクレジット送信時の処理を示すフローチャートである。
【図１３】図１３は、実施例３に係るデータパケット送受信システムの概要および特徴を説明するための図である。
【図１４】図１４は、実施例３におけるパケット送受信システムの構成を示すブロック図である。
【図１５】図１５は、実施例３におけるクレジット加算時の処理を示す概念図である。
【図１６】図１６は、実施例３におけるクレジット減算時の処理を示す概念図である。
【図１７】図１７は、実施例３におけるパケット送信時の処理を示すフローチャートである。
【図１８】図１８は、実施例３におけるクレジット受信時の処理を示すフローチャートである。
【図１９】図１９は、実施例３における識別情報送信送時の処理を示すフローチャートである。
【図２０】図２０は、本発明を用いたコンピュータシステムの例を示す図である。
【図２１】図２１は、実施例１におけるデータパケット送受信システムのプログラムを示す図である。
【図２２】図２２は、従来技術に係るデータパケット送信制御システムの概要と特徴を説明するための図である。
【符号の説明】
【００３３】
１００  送信装置
１１０  データ入力部
１２０  送信バッファ
１３０  送信バッファ制御部
１３１  パケット送信制御部
１３２  クレジット加算部
１３３  クレジットカウンタ部
１３４  クレジット減算部
２００  受信装置
２１０  受信バッファ
２２０  データ出力部
２３０  受信バッファ制御部
２３１  クレジット送信部
【発明を実施するための最良の形態】
【００３４】
以下に添付図面を参照して、この発明に係るデータパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラムの実施例を詳細に説明する。なお、以下の実施例１では、実施例１に係るデータパケット送受信システムの概要および特徴、データパケット送受信システムの構成および処理の流れ、および効果を順に説明する。
【実施例１】
【００３５】
［データパケット送受信システムの概要および特徴］
まず最初に、図１を用いて、実施例１に係るデータパケット送受信システムの概要および特徴を説明する。図１は、実施例１に係るデータパケット送受信システムの概要および特徴を説明するための図である。【００３６】
同図に示すように、実施例１に係るデータパケット送受信システムは、送信バッファ１２０を備える送信装置１００から受信バッファ２１０を備える受信装置２００へデータパケットを送信するデータパケット送受信システムである。そしてこのような概要を有するデータパケット送受信システムは、以下で説明するように、受信バッファ２１０としての資源を有効に利用することが可能である点に主たる特徴がある。【００３７】
図１に例示するように、送信装置１００は、受信バッファ２１０の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶するクレジットカウンタ部１３３を有している。ここで、送信装置１００は、クレジットカウンタ部１３３のクレジット値の上限値として、受信装置２００の受信バッファ２１０の容量に対応するクレジットの値（例えば「１６」）を設定する。このため、送信装置１００は、クレジットカウンタ部１３３の残りのクレジット値から、受信バッファ２１０の空き容量を得ることができる。【００３８】
ここで、送信装置１００は、送信バッファ１２０から、データパケットを受信装置２００の受信バッファ２１０に送信すると、送信されたデータパケットの容量に応じたクレジットを、クレジットカウンタ部１３３に記憶されているクレジットに加算して格納する（図１の（１）参照）。例えば、図１に示すように、送信装置１００が、２バイトのデータパケットを送信すると、クレジット「２」をクレジットカウンタ部１３３のクレジット値に加算し、１バイトのデータパケットを送信すると、クレジット「１」をクレジットカウンタ部１３３のクレジット値に加算する。【００３９】
一方、受信装置２００は、送信装置１００から送信されたデータパケットを、受信バッファ２１０で受信する（図１の（２）参照）。その後、受信装置２００は、上記した受信したデータパケットを、データパケットが受信バッファ２１０に格納された順番で古いデータパケットから読み出すと、受信バッファ２１０から読み出されたデータの容量に対応するクレジットを、送信装置１００に送信する（図１の（３）参照）。例えば、受信装置２００は、受信バッファ２１０から１バイトのデータパケットを読み出すと、クレジット「１」を送信装置１００へと送信し、２バイトのデータパケットを読み出すと、クレジット「２」を送信装置１００へと送信し、３バイトのデータパケットを読み出すと、クレジット「３」を送信装置１００へと送信する。【００４０】
また、送信装置１００は、上記した受信装置２００が送信したクレジットを受信すると、受信したクレジットを、クレジットカウンタ部１３３に記憶されているクレジット値から減算して格納する（図１の（４）参照）。例えば、送信装置１００が、クレジット「１」を受信すると、クレジット「１」をクレジットカウンタ部１３３のクレジット値から減算し、クレジット「２」を受信すると、クレジット「２」をクレジットカウンタ部１３３のクレジット値から減算し、クレジット「３」を受信すると、クレジット「３」をクレジットカウンタ部１３３のクレジット値から減算する。【００４１】
そして送信装置１００は、クレジットカウンタ部１３３に記憶されているクレジット値に基づいて、データパケットの送信を許可または停止するように制御する。具体的には、クレジットカウンタ部１３３に記憶されているクレジット値に対して、送信装置１００から送信しようとしているデータパケットの容量に応じたクレジットの値を加算したクレジット値の加算値が、受信バッファ２１０の容量から定まる所定の値（上限値）に達しているか否かを判定し、上記したクレジット値の加算値が上限値に達していない場合には、データパケットの送信を許可し、クレジット値の加算値が上限値に達している場合には、データパケットの送信を停止するように制御する。【００４２】
例えば、クレジットカウンタ部１３３の上限値が１６の場合、現在のクレジット値が「１０」であり、送信するデータパケットの容量に応じたクレジット値が「２」であれば、クレジット値の加算値は「１２」となり、上限値である「１６」に達していないため、送信装置１００は送信を許可する。また、現在のクレジット値が「１２」であり、送信するデータパケットの容量に応じたクレジット値が「１」であれば、クレジットの加算値は「１３」となり、送信装置１００は送信を許可する。一方、現在のクレジット値が「１３」であり、送信するデータパケットの容量に応じたクレジット値が「４」であれば、クレジットの加算値は「１７」となり、上限値である「１６」に達してしまうため、送信装置１００は送信を停止する（図１の（５）参照）。【００４３】
このようなことから、データパケット送受信システムは、送信装置１００が受信バッファ２１０におけるデータパケットの混み具合をデータパケット数ではなくデータ容量で把握し、受信バッファ２１０に格納されるデータパケット数（キュー段数）をデータパケットがオーバーフローしない範囲で動的に調整しながらデータパケットを送信することで、受信バッファ２１０の未使用領域を減らすことができる結果、受信バッファ２１０としての資源を有効に利用することが可能である。【００４４】
なお、上記した送信装置１００および受信装置２００としては、携帯電話、ＰＤＡ、パーソナルコンピュータなど、ネットワークや有線、無線（赤外線通信、ブルートゥース等）を介して情報をパケットで送信または受信する電子機器、または、同一の電子機器内の回路やチップなど、電子機器内のバスや配線を介して情報をパケットで送信または受信する電子回路である。【００４５】
［データパケット送受信システムの構成］
次に、図２を用いて、実施例１に係るデータパケット送受信システムの構成を説明する。図２は、実施例１におけるデータパケット送受信システムの構成を示すブロック図である。同図に示すように、このデータパケット送受信システムは、送信装置１００と受信装置２００とから構成され、送信装置１００は、データ入力部１１０と、送信バッファ１２０と、送信バッファ制御部１３０とを備え、受信装置２００は、受信バッファ２１０と、データ出力部２２０と、受信バッファ制御部２３０とを備えている。また、送信装置１００と受信装置２００は、ネットワークや有線、無線（赤外線通信、ブルートゥース等）、あるいは電子機器内のバスや配線を介して、接続している。【００４６】
データ入力部１１０は、各種の情報を送信バッファ１２０に入力する。具体的には、送信装置１００から受信装置２００へと送信するデータパケットを、送信バッファ１２０先頭から詰めて、書き込む。【００４７】
送信バッファ１２０は、送信装置１００から受信装置２００へ送信するデータパケットを記憶し、メモリなどによって構成される。具体的には、送信バッファ１２０は、データ入力部１１０から入力されたデータパケットを、送信バッファ１２０の先頭から詰めて記憶する。なお、送信バッファ１２０では、データパケットが読み出されるたびに、読み出されたデータパケットは消去され、新たなデータパケットが上書きされる。【００４８】
送信バッファ制御部１３０は、データパケットの送受信を制御し、本発明に密接に関連するものとしては、図２に示すように、パケット送信制御部１３１と、クレジット加算部１３２と、クレジットカウンタ部１３３と、クレジット減算部１３４とを備える。なお、パケット送信制御部１３１は特許請求の範囲に記載の「送信制御手段」に対応し、クレジット加算部１３２は同じく「クレジット加算手段」に対応し、クレジットカウンタ部１３３は同じく「クレジット記憶手段」に対応し、クレジット減算部１３４は同じく「クレジット減算手段」に対応する。【００４９】
クレジットカウンタ部１３３は、受信バッファ２１０の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶する。具体的には、後述するクレジット加算部１３２およびクレジット減算部１３４によって、記憶しているクレジット値を増加減されることによって、受信バッファ２１０の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶する。【００５０】
なお、クレジットカウンタ部１３３は、受信バッファ２１０の容量の最大値に応じたクレジットを、所定の値（上限値）として記憶している。例えば、受信バッファ２１０の容量の最大値が１６バイトであれば、１６バイトに対応したクレジット「１６」を、クレジットカウンタ部１３３のクレジットの上限値として記憶し、受信バッファ２１０の容量の最大値が３２バイトであれば、３２バイトに対応したクレジット「３２」を、クレジットカウンタ部１３３のクレジットの上限値として記憶する。【００５１】
クレジット加算部１３２は、送信バッファ１２０から受信装置２００にデータパケットが送信されると、送信されたデータパケットの容量に応じた値のクレジットを、クレジットカウンタ部１３３に記憶されているクレジット値に加算して格納する。【００５２】
例えば、送信バッファ１２０から２バイトのデータパケットを送信すると、クレジット加算部１３２は、２バイトに対応するクレジットであるクレジット「２」を、クレジットカウンタ部１３３のクレジット値に加算して格納し、送信装置１００が、送信バッファ１２０から１バイトのデータパケットを送信すると、クレジット加算部１３２は、１バイトに対応するクレジットであるクレジット「１」を、クレジットカウンタ部１３３のクレジット値に加算して格納する。【００５３】
クレジット減算部１３４は、受信装置２００から後述する容量特定情報を受信すると、容量特定情報を用いて受信バッファ２１０から読み出されたデータパケットの容量を特定し、上記した特定した容量に応じた値のクレジットを、クレジットカウンタ部１３３に記憶されているクレジット値から減算して格納する。具体的には、クレジット減算部１３４は、受信装置２００から受信したクレジットの値を、クレジットカウンタ部１３３に記憶されているクレジット値から減算して格納する。【００５４】
例えば、クレジット減算部１３４が、クレジット「１」を受信すると、クレジット減算部１３４は、クレジット「１」をクレジットカウンタ部１３３のクレジット値から減算し、クレジット減算部１３４が、クレジット「２」を受信すると、クレジット減算部１３４が、クレジット「２」をクレジットカウンタ部１３３のクレジット値から減算し、クレジット減算部１３４が、クレジット「３」を受信すると、クレジット減算部１３４が、クレジット「３」をクレジットカウンタ部１３３のクレジット値から減算する。【００５５】
パケット送信制御部１３１は、クレジットカウンタ部に記憶されているクレジットの値に基づいて、データパケットの送信を許可または停止するように制御する制御部である。具体的には、データパケットを送信するタイミングとなると、クレジットカウンタ部１３３に記憶されているクレジットの値に対して、送信装置１００から送信しようとしているデータパケットの容量に応じたクレジットの値を加算した加算値が、受信バッファ２１０の容量から定まる所定の値（上限値）に達しているか否かを判定し、上記した加算値が上記した上限値に達していない場合には、データパケットの送信を許可し、上記した加算値が上記した上限値に達している場合には、上記したデータパケットの送信を停止するように制御する。【００５６】
例えば、クレジットカウンタ部１３３に設定された上限値が「１６」の場合、現在のクレジット値が「１０」であり、送信するデータパケットの容量に応じたクレジット値が「２」であれば、クレジット値の加算値は「１２」となり、上限値である「１６」に達していないため、パケット送信制御部１３１は送信を許可する。また、現在のクレジット値が「１２」であり、送信するデータパケットの容量に応じたクレジット値が「１」であれば、クレジットの加算値は「１３」となり、パケット送信制御部１３１は送信を許可する。一方、現在のクレジット値が「１３」であり、送信するデータパケットの容量に応じたクレジット値が「４」であれば、クレジットの加算値は「１７」となり、上限値である「１６」に達してしまうため、パケット送信制御部１３１は送信を停止する。【００５７】
次に、受信装置２００のなかで、受信バッファ２１０は、送信装置１００から送信されたデータパケットを記憶し、メモリなどによって構成される。具体的には、受信バッファ２１０は、送信装置１００から送信されたデータパケットを、受信バッファ２１０の先頭から詰めて、記憶する。なお、受信バッファ２１０では、後述するデータ出力部２２０によって、データパケットが読み出されると、読み出されたデータパケットは消去され、新たなデータパケットが上書きされる。【００５８】
データ出力部２２０は、受信バッファ２１０に記憶されたデータを読み出す。具体的には、データ出力部２２０は、受信バッファ２１０に記憶されたデータの中から、受信した順番が古い順に、データを読み出す。【００５９】
受信バッファ制御部２３０は、データパケットの送受信を制御し、図２に示すように、本発明に密接に関連するものとしては、クレジット送信部２３１を備えている。なお、クレジット送信部２３１は、特許請求の範囲に記載の「容量特定情報送信手段」に対応する。クレジット送信部２３１は、受信バッファ２１０に格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を送信装置１００において特定する際に用いられる容量特定情報を送信装置１００に送信する。具体的には、クレジット送信部２３１は、上記した容量特定情報として、受信バッファ２１０から読み出されたデータパケットの容量に応じた値のクレジットを送信装置１００に送信する。【００６０】
例えば、受信装置２００が受信バッファ２１０から１バイトのデータパケットを読み出すと、クレジット送信部２３１は、１バイトに対応するクレジット「１」を、送信装置１００へと送信し、２バイトのデータパケットを読み出すと、クレジット「２」を送信装置１００へと送信し、３バイトのデータパケットを読み出すと、クレジット「３」を送信装置１００へと送信する。【００６１】
［パケット送信時の処理］
次に、図３を用いて、実施例１におけるパケット送信時の処理手順を説明する。図３は、実施例１におけるパケット送信時の処理を示すフローチャートである。【００６２】
図３に示すように、パケット送信制御部１３１は、データパケットの送信タイミングとなると（ステップＳ３０１肯定）、送信データパケットの容量にとって、十分なクレジットがあるか（すなわち、クレジットカウンタ部１３３のクレジット値に、送信するデータパケットの容量に対応するクレジットの値を加算すると、かかる加算値が、受信バッファ２１０の容量に対応する上限値に達するか）を判定する（ステップＳ３０２）。【００６３】
そして、送信するデータパケットの容量にとって、クレジットカウンタ部１３３に十分なクレジットがある場合（上記した加算値が、上限値に達しない場合）には（ステップＳ３０２肯定）、パケット送信制御部１３１は、送信バッファ１２０からデータパケットを送信する（ステップＳ３０３）。つまり、パケット送信制御部１３１は、かかるデータパケットの送信を許可する。【００６４】
そして、送信装置１００が、送信バッファ１２０からデータパケットを送信すると、クレジット加算部１３２は、送信されたデータパケットの容量に応じたクレジットを、クレジットカウンタ部１３３に記憶されているクレジットに加算して格納する（ステップＳ３０４）。【００６５】
一方、上記のステップＳ３０２において、送信するデータパケットの容量にとって、クレジットカウンタ部１３３に十分なクレジットがない場合（上記した加算値が、上限値に達する場合）には（ステップＳ３０２否定）、パケット送信制御部１３１は、送信バッファ１２０からデータパケットの送信を停止する（ステップＳ３０５）。【００６６】
[クレジット受信時の処理]
次に、図４を用いて、実施例１におけるクレジット受信時の処理手順を説明する。図４は、実施例１におけるクレジット受信時の処理を示すフローチャートである。【００６７】
図４に示すように、送信装置１００が受信装置２００からクレジットを受信すると（ステップＳ４０１肯定）、クレジット減算部１３４は、受信したクレジットの値を、クレジットカウンタ部１３３に記憶されたクレジット値から減算して格納する（ステップＳ４０２）。例えば、送信装置１００が、クレジット「１」を受信すると、クレジット「１」をクレジットカウンタ部１３３のクレジット値から減算し、クレジット「２」を受信すると、クレジット「２」をクレジットカウンタ部１３３のクレジット値から減算し、クレジット「３」を受信すると、クレジット「３」をクレジットカウンタ部１３３のクレジット値から減算する。【００６８】
[クレジット送信時の処理]
次に、図５を用いて、実施例１におけるクレジット送信時の処理手順を説明する。図５は、実施例１におけるクレジット送信時の処理を示すフローチャートである。【００６９】
図５に示すように、データ出力部２２０が、受信装置２００の受信バッファ２１０に記憶されたデータを読み出すと（ステップＳ５０１肯定）、読み出されたデータの容量に対応するクレジットを、クレジットカウンタ部１３３に送信する（ステップＳ５０２）。例えば、受信装置２００が受信バッファ２１０から１バイトのデータパケットを読み出すと、クレジット送信部２３１は、１バイトに対応するクレジット「１」を、送信装置１００へと送信し、２バイトのデータパケットを読み出すと、クレジット「２」を送信装置１００へと送信し、３バイトのデータパケットを読み出すと、クレジット「３」を送信装置１００へと送信する。【００７０】
[実施例１による効果]
上述してきたように、実施例１によれば、受信装置２００は、受信バッファ２１０に格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を送信装置１００において特定する際に用いられる容量特定情報を送信装置１００に送信し、送信装置１００は、受信バッファ２１０の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶し、送信バッファ１２０から受信装置２００にデータパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、クレジットカウンタ部１３３に記憶されているクレジットに加算して格納し、受信装置２００から容量特定情報を受信した場合に、当該容量特定情報を用いて受信バッファ２１０から読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、クレジットカウンタ部１３３に記憶されているクレジットから減算して格納し、クレジットカウンタ部１３３に記憶されているクレジットの値に基づいて、データパケットの送信を許可または停止するように制御するので、送信装置１００が受信バッファ２１０におけるデータパケットの混み具合をデータパケット数ではなくデータ容量で把握し、受信バッファ２１０に格納されるデータパケット数（キュー段数）をデータパケットがオーバーフローしない範囲で動的に調整しながらデータパケットを送信することで、受信バッファ２１０の未使用領域を減らすことができる結果、受信バッファ２１０としての資源を有効に利用することが可能である。【００７１】
また、実施例１によれば、クレジット送信部２３１は、容量特定情報として、受信バッファ２１０から読み出されたデータパケットの容量に応じた値のクレジットを送信装置１００に送信し、クレジット加算部１３２は、受信装置２００に送信されたデータパケットの容量に応じた値のクレジットを、クレジットカウンタ部１３３に記憶されているクレジットに加算して格納し、クレジット減算部１３４は、受信装置２００から受信した値のクレジットを、クレジットカウンタ部１３３に記憶されているクレジットから減算して格納するので、送信装置１００では、受信装置２００から受信したクレジットをそのまま減算するだけで、受信バッファ２１０におけるデータパケットの混み具合を把握することができる結果、送信装置１００におけるクレジットの増加減処理を簡易化することも可能である。【００７２】
また、実施例１によれば、パケット送信制御部１３１は、クレジットカウンタ部１３３に記憶されているクレジットの値に対して、送信装置１００から送信しようとしているデータパケットの容量に応じたクレジットの値を加算した加算値が、受信バッファ２１０の容量から定まる所定の値に達しているか否かを判定し、加算値が所定の値（上限値）に達していない場合には、データパケットの送信を許可し、加算値が上限値に達している場合には、データパケットの送信を停止するように制御するので、これから送信しようとしているデータパケットが送信された後における受信バッファ２１０の混み具合を推定することができる結果、受信バッファ２１０におけるオーバーフローを確実に防止することも可能である。
【実施例２】
【００７３】
上記した実施例１では、受信バッファからの読み出し容量に応じたクレジットを送信する場合を説明したが、本発明はこれに限定されるものではなく、読み出し容量に関係なく、常に同量のクレジットを送信してもよい。そこで、この実施例２では、受信バッファが読み出したデータパケットの容量に関係なく、常に同量のクレジットを送信する場合について説明する。【００７４】
［データパケット送受信システムの概要および特徴］
最初に、図６を用いて、実施例２に係るデータパケット送受信システムの概要および特徴を説明する。図６は、実施例２に係るデータパケット送受信システムの概要および特徴を説明するための図である。なお、以下では、実施例１に係るデータパケット送受信システムと同様の点については、簡単に説明することにする。【００７５】
図６に例示するように、送信装置１００は、送信したデータパケットごとに区分けして送信順に、受信バッファ２１０の容量に対して現に格納されている全データパケットの総容量に応じた値を、クレジットとして記憶するパケット区分クレジットカウンタ部１３３ｂを有している。【００７６】
ここで、送信装置１００は、送信バッファ１２０から、データパケットを受信装置２００の受信バッファ２１０に送信すると、送信されたデータパケットの容量に応じたクレジットを、パケット区分クレジットカウンタ部１３３ｂに記憶されているクレジットに、パケットごとに区分して送信した順番で、加算して格納する（図６の（１）参照）。【００７７】
例えば、図６に示すように、送信装置１００が、２バイトのデータパケットを送信すると、クレジット「２」を、最も新しく送信されたデータパケットとして、パケット区分クレジットカウンタ部１３３ｂのクレジット値に加算（追加）し、パケット区分クレジットカウンタ部１３３ｂのクレジット値（総数）を、「７」から「９」にする。続けて、１バイトのデータパケットを送信すると、クレジット「１」を、最も新しく送信されたデータパケットとして（例えばパケット５の次に）パケット区分クレジットカウンタ部１３３ｂのクレジット値に加算（追加）し、パケット区分クレジットカウンタ部１３３ｂのクレジット値（総数）を、「９」から「１０」にする（図８参照）。【００７８】
一方、受信装置２００は、送信装置１００から送信されたデータパケットを、受信バッファ２１０で受信する（図６の（２）参照）。その後、受信装置２００は、上記した受信したデータパケットを、データパケットが受信バッファ２１０に格納された順番で古いデータパケットから読み出すと、受信バッファ２１０から、読み出されたデータの容量に関係なく、クレジット「１」を、送信装置１００に送信する（図６の（３）参照）。例えば、受信装置２００は、受信バッファ２１０から１バイトのデータパケットを読み出すと、クレジット「１」を送信装置１００へと送信し、２バイトのデータパケットを読み出すと、クレジット「１」を送信装置１００へと送信し、３バイトのデータパケットを読み出すと、クレジット「１」を送信装置１００へと送信する。【００７９】
また、送信装置１００は、上記した受信装置２００が送信したクレジットを受信すると、データパケットごとに区分けして送信順にパケット区分クレジットカウンタ部１３３ｂに記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジット値を、パケット区分クレジットカウンタ部１３３ｂに記憶されているクレジット値から減算して格納する（図６の（４）参照）。【００８０】
例えば、送信装置１００が、クレジット「１」を受信すると、パケット区分クレジットカウンタ部１３３ｂに記憶されているクレジットのなかで最も古いクレジット値であるクレジット「１」をパケット区分クレジットカウンタ部１３３ｂのクレジット値から減算（削除）し、パケット区分クレジットカウンタ部１３３ｂのクレジット値（総数）を、「１０」から「９」にする（図９参照）。続いて、送信装置１００が、クレジット「１」を受信すると、パケット区分クレジットカウンタ部１３３ｂに記憶されているクレジットのなかで最も古いクレジット値であるクレジット「２」をパケット区分クレジットカウンタ部１３３ｂのクレジット値から減算し、パケット区分クレジットカウンタ部１３３ｂのクレジット値を、「９」から「７」にする。【００８１】
そして、送信装置１００は、実施例１に係る送信装置１００と同様に、パケット区分クレジットカウンタ部１３３ｂに記憶されているクレジット値に基づいて、データパケットの送信を許可または停止するように制御する（図６の（５）参照）。【００８２】
このようなことから、実施例２に係るデータパケット送受信システムによれば、受信バッファ２１０から読み出されたデータパケットの容量に関係なく、常に同量のクレジットを受信装置２００から送信装置１００に送信するだけで、送信装置１００では、受信バッファ２１０におけるデータパケットの混み具合を把握することができる結果、受信装置２００から送信装置１００への返信処理を簡易化することも可能である。【００８３】
［データパケット送受信システムの構成］
次に、図７を用いて、実施例２に係るデータパケット送受信システムの構成を説明する。図７は、実施例２におけるデータパケット送受信システムの構成を示すブロック図である。同図に示すように、このデータパケット送受信システムは、送信装置１００と受信装置２００とから構成され、送信装置１００は、データ入力部１１０と、送信バッファ１２０と、送信バッファ制御部１３０とを備え、受信装置２００は、受信バッファ２１０と、データ出力部２２０と、受信バッファ制御部２３０とを備えている。【００８４】
ここで、実施例１と同様の動作をするものについては、同じ番号を付して説明を省略し、以下では、パケット区分クレジットカウンタ部１３３ｂと、クレジット加算部１３２ｂと、クレジット減算部１３４ｂと、クレジット送信部２３１ｂについてのみ説明を行う。【００８５】
パケット区分クレジットカウンタ部１３３ｂは、受信バッファ２１０の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶する。具体的には、パケット区分クレジットカウンタ部１３３ｂは、記憶しているクレジットを、後述するように、パケットごとに区分して、送信装置１００から送信された送信順で記憶する。【００８６】
クレジット加算部１３２ｂは、送信バッファ１２０から受信装置２００にデータパケットが送信されると、受信装置２００に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けして送信順に、パケット区分クレジットカウンタ部１３３ｂに記憶されているクレジット値に加算して格納する。【００８７】
具体的には、図８に示すように、送信装置１００が、１バイトのデータパケットを送信すると、クレジット「１」を、最も新しく送信したデータパケットに対応したクレジットとして一番後ろに（例えばパケット５の後ろに）、パケット区分クレジットカウンタ部１３３ｂのクレジット値に加算（追加）し、パケット区分クレジットカウンタ部１３３ｂのクレジット値（総数）を、「９」から「１０」にする。なお、図８は、実施例２におけるクレジット加算時の処理を示す概念図である。【００８８】
クレジット減算部１３４ｂは、受信装置２００から後述する容量特定情報を受信すると、データパケットごとに区分けして送信順にパケット区分クレジットカウンタ１３３ｂに記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジットを減算して格納する。【００８９】
例えば、図９に示すように、送信装置１００が、クレジット「１」を受信すると、パケット区分クレジットカウンタ部１３３ｂに記憶されているクレジットのなかで最も古いクレジット値であるクレジット「１」をパケット区分クレジットカウンタ部１３３ｂのクレジット値から減算（削除）し、パケット区分クレジットカウンタ部１３３ｂのクレジット値（総数）を、「１０」から「９」にする。なお、図９は、実施例２におけるクレジット減算時の処理を示す概念図である。【００９０】
クレジット送信部２３１ｂは、受信バッファ２１０から読み出されたデータパケットの容量に関係なく、上記した容量特定情報を送信装置１００に送信する。具体的には、クレジット送信部２３１ｂは、上記した容量特定情報として、受信バッファ２１０から読み出されたデータパケットの容量に関係なく、クレジット「１」を送信装置１００に送信する。【００９１】
［パケット送信時の処理］
次に、図１０を用いて、実施例２におけるパケット送信時の処理手順を説明する。図１０は、実施例２におけるパケット送信時の処理を示すフローチャートである。なお、以下では、実施例１に係るデータパケット送受信システムと同様の点については、簡単に説明することにする。【００９２】
図１０に示すように、送信タイミングとなり、送信バッファ１２０からデータパケットを送信すると（ステップＳ１００１〜ステップＳ１００３）、クレジット加算部１３２ｂは、送信されたデータパケットの容量に応じたクレジットを、パケットごとに区分して、送信した順番で、パケット区分クレジットカウンタ部１３３ｂに記憶されているクレジットに加算して格納する（ステップＳ１００４）。【００９３】
例えば、図８に示すように、送信装置１００が、１バイトのデータパケットを送信すると、クレジット「１」をパケット区分クレジットカウンタ部１３３ｂのクレジット値に加算（追加）し、パケット区分クレジットカウンタ部１３３ｂのクレジット値（総数）を、「９」から「１０」にする。【００９４】
[クレジット受信時の処理]
次に、図１１を用いて、実施例２におけるクレジット受信時の処理手順を説明する。図１１は、実施例２におけるクレジット受信時の処理を示すフローチャートである。【００９５】
図１１に示すように、送信装置１００が受信装置２００からクレジットを受信すると（ステップＳ１１０１肯定）、クレジット減算部１３４ｂは、パケットごとに区分され送信順で記憶された、パケット区分クレジットカウンタ部１３３ｂに記憶されたクレジットのなかから、最も古く送信されたデータパケットのクレジットを得る（ステップＳ１１０２）。【００９６】
そして、上記で得られたクレジットを、パケット区分クレジットカウンタ部１３３ｂに記憶されているクレジット値から減算して格納する（ステップＳ１１０３）。具体的には、図９に示すように、送信装置１００が、クレジット「１」を受信すると、パケット区分クレジットカウンタ部１３３ｂに記憶されているクレジットのなかで最も古いクレジット値であるクレジット「１」をパケット区分クレジットカウンタ部１３３ｂのクレジット値から減算（削除）し、パケット区分クレジットカウンタ部１３３ｂのクレジット値（総数）を、「１０」から「９」にする。【００９７】
[クレジット送信時の処理]
次に、図１２を用いて、実施例２におけるクレジット送信時の処理手順を説明する。図１２は、実施例２におけるクレジット送信時の処理を示すフローチャートである。【００９８】
図１２に示すように、データ出力部２２０が、受信装置２００の受信バッファ２１０に記憶されたデータを読み出すと（ステップＳ１２１１肯定）、読み出したデータの容量に関わらず、クレジットを、パケット区分クレジットカウンタ部１３３ｂに送信する（ステップＳ１２１２）。具体的には、受信装置２００が受信バッファ２１０から１バイトのデータパケットを読み出すと、クレジット送信部２３１ｂは、受信バッファ２１０から読み出した１バイトに関係なく、クレジット「１」を送信装置１００へと送信し、２バイトのデータパケットを読み出すと、読み出した２バイトに関係なく、クレジット「１」を送信装置１００へと送信し、３バイトのデータパケットを読み出すと、読み出した３バイトに関係なく、クレジット「１」を送信装置１００へと送信する。【００９９】
[実施例２による効果]
上述したように、実施例２に係るデータパケット送受信システムによれば、クレジット送信部２３１ｂは、受信バッファ２１０から読み出されたデータパケットの容量に関係なく、容量特定情報を送信装置１００に送信し、クレジット加算部１３２ｂは、受信装置２００に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けして送信順に、パケット区分クレジットカウンタ部１３３ｂに記憶されているクレジットに加算して格納し、クレジット減算部１３４ｂは、データパケットごとに区分けして送信順にパケット区分クレジットカウンタ部１３３ｂに記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジットを減算して格納するので、受信バッファ２１０から読み出されたデータパケットの容量に関係なく、常に同量のクレジットを受信装置２００から送信装置１００に送信するだけで、送信装置１００では、受信バッファ２１０におけるデータパケットの混み具合を把握することができる結果、受信装置２００から送信装置１００への返信処理を簡易化することも可能である。
【実施例３】
【０１００】
上記した実施例２では、データパケットの送信順に、クレジットを減算する場合について説明したが、本発明はこれに限定されるものではなく、データパケットを特定して、クレジットを減算してもよい。そこで、この実施例３では、データパケットを特定してクレジットを減算する場合について説明する。【０１０１】
［データパケット送受信システムの概要および特徴］
最初に、図１３を用いて、実施例３に係るデータパケット送受信システムの概要および特徴を説明する。図１３は、実施例３に係るデータパケット送受信システムの概要および特徴を説明するための図である。なお、以下では、実施例１や実施例２に係るデータパケット送受信システムと同様の点については、簡単に説明することにする。【０１０２】
ここで、送信装置１００は、送信バッファ１２０から、データパケットを、送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加して、受信装置２００に送信すると、かかる送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けするとともに識別情報を付加して、パケット区分クレジットカウンタ部１３３ｃに加算して格納する。（図１３の（１）参照）。具体的には、図１３に示すように、送信装置１００が、識別情報「ｘ００７」が付加された１バイトのデータパケットを送信すると、識別情報「ｘ００７」と１バイトのデータ容量に対応するクレジット「１」を対応付けて、加算して格納する。【０１０３】
一方、受信装置２００は、送信装置１００から送信されたデータパケットを、受信バッファ２１０で受信する（図１３の（２）参照）。その後、受信装置２００は、上記した受信したデータパケットを、受信バッファ２１０から読み出すと、受信バッファ２１０から読み出されたパケットに付加された識別情報を、送信装置１００に送信する（図１３の（３）参照）。具体的には、受信装置２００は、受信バッファ２１０から識別情報「ｘ００２」が付加された１バイトのデータパケットを読み出すと、かかる１バイトのデータに付加されている識別情報「ｘ００２」を送信装置１００へと送信する。【０１０４】
また、送信装置１００は、上記した受信装置２００が送信した識別情報を受信すると、データパケットごとに区分けされるとともに識別情報が付加されてパケット区分クレジットカウンタ部１３３ｃに記憶されているクレジットのなかから、受信装置２００から受信した識別情報に対応するデータパケットのクレジットを減算して格納する。（図１の（４）参照）。具体的には、図１３に示すように、送信装置１００が、識別情報「ｘ００２」を受信すると、識別情報「ｘ００２」に対応するクレジット「１」をパケット区分クレジットカウンタ部１３３ｃのクレジット値から減算し格納する。【０１０５】
そして、送信装置１００は、パケット区分クレジットカウンタ部１３３ｃに記憶されているクレジット値に基づいて、データパケットの送信を許可または停止するように制御する（図１３の（５）参照）。【０１０６】
このようなことから、実施例３に係るデータパケット送受信システムは、受信バッファ２１０から読み出されたデータパケットの容量に関係なく、パケットの識別情報を受信装置２００から送信装置１００に送信するだけで、送信装置１００では、受信バッファ２１０におけるデータパケットの混み具合を把握することができる結果、受信装置２００から送信装置１００への返信処理を簡易化することも可能である。さらに、パケットの識別情報を受信装置２００から送信装置１００に送信するだけで、受信バッファ２１０から読み出されたデータパケットの容量を確実に特定することができる結果、送信装置１００では、受信バッファ２１０におけるデータパケットの混み具合を確実に把握することも可能になる。【０１０７】
［データパケット送受信システムの構成］
次に、図１４を用いて、実施例３に係るデータパケット送受信システムの構成を説明する。図１４は、実施例３におけるデータパケット送受信システムの構成を示すブロック図である。同図に示すように、このデータパケット送受信システムは、送信装置１００と受信装置２００とから構成され、送信装置１００は、データ入力部１１０と、送信バッファ１２０と、送信バッファ制御部１３０とを備え、受信装置２００は、受信バッファ２１０と、データ出力部２２０と、受信バッファ制御部２３０と備えている。【０１０８】
ここで、実施例１や実施例２と同様の動作をするものについては、同じ番号を付して説明を省略し、以下では、パケット区分クレジットカウンタ部１３３ｃと、識別情報付加部１３５ｃと、クレジット加算部１３２ｃと、クレジット減算部１３４ｃと、識別情報送信部２３１ｃについてのみ説明を行う。【０１０９】
パケット区分クレジットカウンタ部１３３ｃは、受信バッファ２１０の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶する。具体的には、パケット区分クレジットカウンタ部１３３ｃは、記憶しているクレジットを、後述するように、識別情報を付加して、パケットごとに区分して、記憶する（図１５参照）。【０１１０】
また、識別情報付加部１３５ｃは、パケット送信制御部１３１がデータパケットの送信を許可すると、送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加する。具体的には、[ｘ００６][ｘ００７]などの識別情報を送信するデータパケットの内部に付加する。【０１１１】
クレジット加算部１３２ｃは、送信バッファ１２０から受信装置２００にデータパケットが送信されると、受信装置２００に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けするとともに、識別情報付加部１３５ｃがかかるデータパケットに付加した識別情報を対応させて、パケット区分クレジットカウンタ部１３３ｃに記憶されているクレジットに加算して格納する。【０１１２】
例えば、図１５に示すように、送信装置１００が、送信タイミングとなり、送信バッファ１２０から、識別情報「ｘ００６」が付加された２バイトのデータパケットを送信すると、クレジット加算部１３２ｃは、２バイトに対応するクレジットであるクレジット「２」に識別情報である「ｘ００６」を付加して、パケット区分クレジットカウンタ部１３３ｃのクレジット値に加算して格納し、送信装置１００が、送信バッファ１２０から、識別情報「００７」が付加された１バイトのデータパケットを送信すると、クレジット加算部１３２ｃは、１バイトに対応するクレジットであるクレジット「１」に識別情報である「ｘ００７」を付加して、パケット区分クレジットカウンタ部１３３ｃのクレジット値に加算して格納する。なお、図１５は、実施例３におけるクレジット加算時の処理を示す概念図である。【０１１３】
クレジット減算部１３４ｃは、受信装置２００から識別情報を受信すると、データパケットごとに区分けされるとともに識別情報が付加されてパケット区分クレジットカウンタ部１３３ｃに記憶されているクレジットのなかから、受信装置２００から受信した識別情報に対応するデータパケットのクレジットを減算して格納する。【０１１４】
例えば、図１６に示すように、クレジット減算部１３４ｃは、識別情報「ｘ００２」を受信すると、識別情報「ｘ００２」に対応するクレジット「１」をパケット区分クレジットカウンタ部１３３ｃのクレジット値から減算し、クレジット減算部１３４ｃが、識別情報「ｘ００１」を受信すると、識別情報「ｘ００１」に対応するクレジット「２」をパケット区分クレジットカウンタ部１３３ｃのクレジット値から減算し、クレジット減算部１３４ｃは、識別情報「ｘ００３」を受信すると、識別情報「ｘ００３」に対応するクレジット「３」をパケット区分クレジットカウンタ部１３３ｃのクレジット値から減算する。なお、図１６は、実施例３におけるクレジット減算時の処理を示す概念図である。【０１１５】
識別情報送信部２３１ｃは、受信バッファ２１０から読み出されたデータパケットの容量に関係なく、かかるデータパケットに付加されている識別情報を送信装置１００に送信する。【０１１６】
［パケット送信時の処理］
次に、図１７を用いて、実施例３におけるパケット送信時の処理手順を説明する。図１７は、実施例３におけるパケット送信時の処理を示すフローチャートである。なお、以下では、実施例１や実施例２に係るデータパケット送受信システムと同様の点については、簡単に説明することにする。【０１１７】
図１７に示すように、送信タイミングとなり、送信するデータパケットの容量にとって、パケット区分クレジットカウンタ部１３３ｃに十分なクレジットがある場合（上記した加算値が、上限値に達しない場合）（ステップＳ７０１〜ステップＳ７０２肯定）、送信情報付加部１３５ｃは、送信するデータパケットを一意に区別できる識別情報を付加し、パケット送信制御部１３１は、送信バッファ１２０から識別情報が付加されたデータパケットを送信する（ステップＳ７０３）。【０１１８】
そして、送信装置１００が、送信バッファ１２０からデータパケットを送信すると、クレジット加算部１３２ｃは、送信されたデータパケットの容量に応じたクレジットを、送信データパケットごとに区分して、識別情報と対応させて、パケット区分クレジットカウンタ部１３３ｃに記憶されているクレジットに加算して格納する（ステップＳ７０４）。つまり、受信装置２００に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けするとともに識別情報を付加して、パケット区分クレジットカウンタ部１３３ｃに記憶されているクレジットに加算して格納する。【０１１９】
[クレジット受信時の処理]
次に、図１８を用いて、実施例３におけるクレジット受信時の処理手順を説明する。図１８は、実施例３におけるクレジット受信時の処理を示すフローチャートである。【０１２０】
図１８に示すように、送信装置１００が受信装置２００から識別情報を受信すると（ステップＳ１８０１肯定）、クレジット減算部１３４ｃは、パケット区分クレジットカウンタ部１３３ｃに記憶されたパケットごとに区分されたクレジットで、受信した識別情報に対応するクレジットを得る（ステップＳ１８０２）。つまり、データパケットごとに区分けされるとともに識別情報が付加されてパケット区分クレジットカウンタ部１３３ｃに記憶されているクレジットのなかから、受信装置２００から受信した識別情報に対応するデータパケットのクレジットを得る。【０１２１】
例えば、送信装置１００が、識別情報「ｘ００２」を受信すると、識別情報「ｘ００２」に対応するクレジット「１」を得て、識別情報「ｘ００１」を受信すると、識別情報「ｘ００１」に対応するクレジット「２」を得て、識別情報「ｘ００３」を受信すると、識別情報「ｘ００３」に対応するクレジット「３」を得る（図１６参照）。【０１２２】
そして、上記で得られたクレジットを、パケット区分クレジットカウンタ部１３３ｃに記憶されているクレジット値から減算して格納する（ステップＳ１８０３）。具体的には、図１６に示すように、送信装置１００が、識別情報「ｘ００２」を受信すると、識別情報「ｘ００２」に対応するクレジット「１」をパケット区分クレジットカウンタ部１３３ｃのクレジット値から減算し格納する。【０１２３】
[クレジット送信時の処理]
次に、図１９を用いて、実施例３におけるクレジット送信時の処理手順を説明する。図１９は、実施例３におけるクレジット送信時の処理を示すフローチャートである。【０１２４】
図１９に示すように、データ出力部２２０が、受信装置２００の受信バッファ２１０に記憶されたデータを読み出すと（ステップＳ１９０１肯定）、読み出されたデータパケットに付加された識別情報を、パケット区分クレジットカウンタ部１３３ｃに送信する（ステップＳ１９０２）。【０１２５】
[実施例３による効果]
上述してきたように、実施例３によれば、パケット送信制御部１３１は、データパケットの送信を許可する場合に、当該送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加して受信装置２００に送信し、識別情報送信部２３１ｃは、受信バッファ２１０から読み出されたデータパケットの容量に関係なく、当該データパケットに付加されている識別情報を送信装置１００に送信し、クレジット加算部１３２ｃは、受信装置２００に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けするとともに識別情報を付加して、パケット区分クレジットカウンタ部１３３ｃに記憶されているクレジットに加算して格納し、クレジット減算部１３４ｃは、データパケットごとに区分けされるとともに識別情報が付加されてパケット区分クレジットカウンタ部１３３ｃに記憶されているクレジットのなかから、受信装置２００から受信した識別情報に対応するデータパケットのクレジットを減算して格納するので、受信バッファ２１０から読み出されたデータパケットの容量に関係なく、パケットの識別情報を受信装置２００から送信装置１００に送信するだけで、送信装置１００では、受信バッファ２１０におけるデータパケットの混み具合を把握することができる結果、受信装置２００から送信装置１００への返信処理を簡易化することも可能である。さらに、パケットの識別情報を受信装置２００から送信装置１００に送信するだけで、受信バッファ２１０から読み出されたデータパケットの容量を確実に特定することができる結果、受信バッファ２１０におけるデータパケットの混み具合を確実に把握することも可能になる。
【実施例４】
【０１２６】
ところで、これまで実施例１〜３に係るデータパケット送受信システムについて説明してきたが、この発明は上記した実施例以外にも種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例４に係るデータパケット送受信システムとして、異なる実施例を説明する。【０１２７】
[送信判定方法]
上記の実施例では、送信装置から送信しようとしているデータパケットの容量に応じたクレジットの値を加算したクレジット値の加算値が、受信バッファの容量から定まる所定の値（上限値）に達しているか否かを判定し、データパケットの送信を制御する場合について説明したが、本発明はこれに限定されるものではなく、受信バッファの容量から定まる所定の値（上限値）に達しているか否かを判定し、データパケットの送信を制御する場合などにも、この発明を同様に適用することができる。【０１２８】
具体的には、パケット送信制御部は、クレジットカウンタ部に記憶されているクレジットの値が、受信バッファの容量から定まる所定の値（上限値）に達しているかを判定し、クレジットの値が上限値に達していない場合には、データパケットの送信を許可し、クレジットの値が上限値に達している場合には、データパケットの送信を停止するように制御する。【０１２９】
これによって、例えば、受信バッファの容量からデータパケットの最長サイズを差し引いた値をクレジットカウンタの上限値として設定しておき、この上限値をクレジットが超えるか否かだけを判定しながらデータパケットの送信を制御することができる結果、パケットの送信を許可または停止する処理を簡易化することも可能である。【０１３０】
[コンピュータシステムへの適用]
また、上記の実施例では、データパケット送受信システムの構成として、送信装置と受信装置を別々に備える場合について説明したが、本発明はこれに限定されるものではなく、コンピュータシステム内部において回路間でデータパケットを送信する場合などにも、この発明を同様に適用することができる。例えば、図２０は、本発明を用いたコンピュータシステムの例を示す図であり、同図に示すように、チップセット２１１３と、チップセット２１２１とチップセット２１３３は本発明の制御を使用し、システムボード２１１０と、メモリーシステムインターコネクト２１２０との間におけるデータパケット送受信や、メモリーシステムインターコネクト２１２０と、ＩＯユニット２１３０との間でのデータパケット送受信において、本発明を適用することができる。【０１３１】
[容量特定情報]
また、上記の実施例では、新たにパケットデータの識別情報を付加するシステムについて説明したが、本発明はこれに限定されるものではなく、送信するデータパケットに予め含まれている任意の情報を用いる方法や、このような任意の情報とデータパケットの識別情報の両方を用いる方法などにも、この発明を同様に適用することができる。【０１３２】
[システム構成等]
また、上記の実施例では、データパケット送受信システムの構成として、送信装置と受信装置が１対１で構成されるシステムについて説明したが、本発明はこれに限定されるものではなく、一つの送信装置に対して受信装置が複数あるシステムや、送信装置が複数あり受信装置が一つのシステムなどにも、この発明を同様に適用することができる。【０１３３】
また、上記の実施例では、送信装置と受信装置が異なる端末である場合を説明したが、本発明はこれに限定されるものではなく、送信装置と受信装置とを同じ端末で実現する（一つの端末が送信装置の機能および受信装置の機能の双方を備える）場合にも、この発明を同様に適用することができる。【０１３４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、例えば、送信装置や受信装置から送信バッファ制御部や受信バッファ制御部を抜き出して、別途データパケットの送受信の制御を行なう装置を設けても良い。また、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、クレジット加算部とクレジット減算部を統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば図８や図９に示す情報）については、特記する場合を除いて任意に変更することができる。【０１３５】
[データパケット送受信プログラム]
ところで、上記実施例１では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図２１を用いて、上記の実施例１に示したデータパケット送受信システムと同様の機能を有するデータパケット送受信プログラムを実行するコンピュータの一例を説明する。図２１は、実施例１におけるデータパケット送受信システムのプログラムを示す図である。【０１３６】
同図に示すように、送信装置２１００は、マウス２１０１、キーボード２１０２、ＣＰＵ２１０３、ＲＯＭ２１０４、ＨＤＤ２１０５、ＲＡＭ２１０６、通信制御インターフェイス２１０７をバス２１０９などで接続して構成されている。受信装置２２００は、マウス２２０１、キーボード２２０２、ＣＰＵ２２０３、ＲＯＭ２２０４、ＲＡＭ２２０６、ＨＤＤ２２０５、通信制御インターフェイス２２０７をバス２２０９などで接続して構成されている。送信装置２１００と受信装置２２００は、ネットワークや有線、無線（赤外線通信、ブルートゥースなど）などを介して、通信制御インターフェイス２１０７および通信制御インターフェイス２２０７によって接続されている。【０１３７】
ＲＯＭ２１０４には、上記の実施例１で示した送信バッファ制御部１３０およびデータ入力部１１０と同様の機能を発揮する送信バッファ制御プログラム、つまり、図２１に示すように、クレジットカウンタプログラム２１０４ａと、クレジット加算プログラム２１０４ｂと、クレジット減算プログラム２１０４ｃと、パケット送信制御プログラム２１０４ｄと、データ入力プログラム２１０４ｅとが予め記憶されている。なお、これらプログラム２１０４ａ〜２１０４ｅについては、図２に示した送信装置１００各構成要素と同様、適宜統合または分離してもよい。【０１３８】
そして、ＣＰＵ２１０３が、これらのプログラム２１０４ａ〜２１０４ｅをＲＯＭ２１０４から読み出して実行することにより、図２１に示すように、各プログラム２１０４ａ〜２１０４ｅは、クレジットカウンタプロセス２１０３ａと、クレジット加算プロセス２１０３ｂと、クレジット減算プロセス２１０３ｃと、パケット送信制御プロセス２１０３ｄと、データ入力プロセス２１０３ｅとして機能するようになる。なお、各プロセス２１０３ａ〜２１０３ｅは、図２に示した、クレジットカウンタ部１３３と、クレジット加算部１３２と、クレジット減算部１３４と、パケット送信制御部１３１と、データ入力部１１０とにそれぞれ対応する。【０１３９】
そして、ＣＰＵ２１０３は、ＲＡＭ２１０６に格納されたパケットカウンタデータ２１０６ａと、送信バッファデータ２１０６ｂとに基づいて送信バッファ制御プログラムを実行する。【０１４０】
また、ＲＯＭ２２０４には、上記の実施例１で示した受信バッファ制御部２３０およびデータ出力部２２０と同様の機能を発揮する受信バッファ制御プログラム、つまり、図２１に示すように、クレジット送信プログラム２２０４ａと、データ出力プログラム２２０４ｂとが予め記憶されている。なお、プログラム２２０４ａと２２０４ｂについては、図２に示した受信装置２００の各構成要素と同様、適宜統合または分離してもよい。【０１４１】
そして、ＣＰＵ２２０３が、プログラム２２０４ａと２２０４ｂをＲＯＭ２２０４から読み出して実行することにより、図２１に示すように、プログラム２２０４ａと２２０４ｂは、クレジット送信プロセス２２０３ａと、データ出力プロセス２２０３ｂとして機能するようになる。なお、各プロセス２２０３ａ〜２２０３ｂは、図２に示した、クレジット送信部２３１と、データ出力部２２０とにそれぞれ対応する。【０１４２】
そして、ＣＰＵ２２０３は、ＲＡＭ２２０６に格納された受信バッファデータ２２０６ａに基づいて受信バッファ制御プログラムを実行する。【０１４３】
なお、本実施例で説明した各プログラム２１０４ａ〜２１０４ｅや２２０４ａ〜２２０４ｂについては、必ずしも最初からＲＯＭに記憶させておく必要はなく、例えば送信装置２１００または受信装置２２００に挿入されるフレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、送信装置２１００または受信装置２２００の内外に備えられるＨＤＤなどの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介して送信装置２１００または受信装置２２００に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、送信装置２１００または受信装置２２００がこれらから各プログラムを読みだして実行するようにしてもよい。
【産業上の利用可能性】
【０１４４】
以上のように、本発明に係るデータパケット送受信システムは、送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信するデータパケット送受信システムに有用であり、特に受信バッファとしての資源を有効に利用することが可能なデータパケットを送信するデータパケット送受信システムを実現することに適する。
【図１】
2008050394.tif 000003
【図２】
2008050394.tif 000004
【図３】
2008050394.tif 000005
【図４】
2008050394.tif 000006
【図５】
2008050394.tif 000007
【図６】
2008050394.tif 000008
【図７】
2008050394.tif 000009
【図８】
2008050394.tif 000010
【図９】
2008050394.tif 000011
【図１０】
2008050394.tif 000012
【図１１】
2008050394.tif 000013
【図１２】
2008050394.tif 000014
【図１３】
2008050394.tif 000015
【図１４】
2008050394.tif 000016
【図１５】
2008050394.tif 000017
【図１６】
2008050394.tif 000018
【図１７】
2008050394.tif 000019
【図１８】
2008050394.tif 000020
【図１９】
2008050394.tif 000021
【図２０】
2008050394.tif 000022
【図２１】
2008050394.tif 000023
【図２２】
2008050394.tif 000024
【国際調査報告】
2008050394.tif 000025
2008050394.tif 000026
2008050394.tif 000027
2008050394.tif 000028