JPWO2008050394A1 - データパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラム - Google Patents

データパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラム Download PDF

Info

Publication number
JPWO2008050394A1
JPWO2008050394A1 JP2008540825A JP2008540825A JPWO2008050394A1 JP WO2008050394 A1 JPWO2008050394 A1 JP WO2008050394A1 JP 2008540825 A JP2008540825 A JP 2008540825A JP 2008540825 A JP2008540825 A JP 2008540825A JP WO2008050394 A1 JPWO2008050394 A1 JP WO2008050394A1
Authority
JP
Japan
Prior art keywords
credit
data packet
transmission
capacity
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008540825A
Other languages
English (en)
Other versions
JP5056762B2 (ja
Inventor
秀和 小佐野
秀和 小佐野
浩志 中山
浩志 中山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2008050394A1 publication Critical patent/JPWO2008050394A1/ja
Application granted granted Critical
Publication of JP5056762B2 publication Critical patent/JP5056762B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Abstract

送信バッファと受信バッファを持ち、データパケットを送受信するデータパケット送受信システムにおいて、受信バッファの容量になるべく未使用領域を生じさせることなく受信バッファの資源を有効活用するため、送受信されるデータパケットの容量に応じて、受信バッファが受信できるデータパケット数を動的に変化させる。これにより、受信バッファのオーバーフローによるデータパケットの廃棄を防止しつつ、従来の制御の場合よりも少ない資源で従来と同様の性能を出すことが可能となる。

Description

この発明は、データパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラムに関する。
従来より、送信側の送信バッファから受信側の受信バッファにデータパケットを送信するシステムにおいては、受信バッファがオーバーフローしてデータパケットが廃棄されてしまわないように、受信バッファにおけるデータパケットの読み出し状況を受信側から送信側に伝え、送信側でデータパケットの送信を制御することが一般的に行われている。
例えば、特許文献1(特開平9−135270号公報)では、受信バッファで格納可能なキュー段数(パケット数)をデータパケットの最長サイズ(最大容量)から予め固定的に決定し、この固定的に決定されたキュー段数を用いてデータパケットの送信を制御する技術が開示されている。以下に、図22を用いて、この従来技術を具体的に説明する。図22は、従来技術に係るデータパケット送信制御システムの概要と特徴を説明するための図である。なお、ここでは、同図に示すように、受信側における受信バッファのサイズが16バイトであり、送信側から送信されるデータパケットの最長サイズが4バイトであって、受信バッファで格納可能なキュー段数(パケット数)として4個が予め固定的に決定されている例を説明する。
同図に示すように、送信側では、クレジット制御カウンタを有し、送信バッファからデータパケットを読み出して受信側にデータパケットを送信する度に、送信されるデータパケットのサイズ(データ容量)に関係なく、クレジット制御カウンタの値を一つ加算する(同図の(1)参照)。一方、受信側では、送信側からデータパケットを受信すると、受信したデータパケットを受信バッファの先頭から詰めて書き込む(同図の(2)参照)。また、受信側では、受信バッファからデータパケットが読み出される度に、読み出されるデータパケットのサイズに関係なく、送信側にクレジットを一つ返信する(同図の(3)参照)。そして、送信側では、受信側からクレジットを受信する度に、クレジットの数だけクレジット制御カウンタの値を減算する(同図の(4)参照)。
このようにして、送信側では、クレジット制御カウンタの値を加減算するが、このクレジット制御カウンタには、上記したように、受信バッファで格納可能なキュー段数(パケット数)として4個が予め固定的に設定されている。したがって、送信側では、送信バッファからデータパケットを読み出して受信側にデータパケットを送信するタイミングになると、クレジット制御カウンタの現値が固定値(4個)に達しているか否かを判定する。そして、送信側では、クレジット制御カウンタの現値が固定値(4個)に達していない場合には、送信バッファからデータパケットを読み出して受信側にデータパケットを送信し、その一方、クレジット制御カウンタの現値が固定値(4個)に達している場合には、受信バッファがデータパケットで満杯になっているおそれがあると判断して、データパケットの送信を停止する(同図の(5)参照)。このような一連の処理を通じて、特許文献1では、受信バッファのオーバーフローによるデータパケットの廃棄を防止している。
なお、上記したような従来技術の他に、クレジットによる制御において、受信バッファの空き容量に応じてクレジットを追加発行することによって、バッファをリングバッファとして使用する技術も知られている(例えば、特許文献2参照)。さらに、バッファの制御において、送信バッファの使用状態について、管理テーブルを用いることで、送信データを簡単に管理できるようにする技術も知られている(例えば、特許文献3参照)。
特開平9−135270号公報(第2−4頁、第1−3図) 特開2001−94613号公報(第3−5頁、第1図) 特開平11−110315号公報(第6−10頁、第1−2図)
しかしながら、上記した従来の技術では、以下に説明するように、受信バッファに未使用領域が生じ易く、受信バッファとしての資源を有効に利用できていないという課題があった。
すなわち、上記した従来の技術では、受信バッファで格納可能なキュー段数をデータパケットの最長サイズから予め固定的に決定している(上記の例では、4個)。このため、図22に示すように、サイズが「4バイト、2バイト、2バイト、2バイト」である4つのパケットが受信バッファに格納されている場合のように、データパケットの最長サイズに満たない短いサイズのデータパケットが受信バッファに格納されている場合でも、送信側のクレジット制御カウンタの値が固定値(4個)に達する結果、データパケットの送信は停止されてしまう。そして、このような場合には、受信バッファに未使用領域が大きく生じ(上記の例では、6バイトの未使用領域が生じ)、受信バッファとしての資源を有効に利用できていないという課題があった。
なお、上記したような課題は、ネットワークを介して通信装置間でデータパケットを送信する場合に限られた課題ではなく、例えば、コンピュータシステム内部において回路間でデータパケットを送信する場合など、送信側の送信バッファから受信側の受信バッファにデータパケットを送信するあらゆるシステムで同様に生じる課題である。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、受信バッファとしての資源を有効に利用することが可能なデータパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信するデータパケット送受信システムであって、前記受信装置は、前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信し、前記送信装置は、前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶し、前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、クレジット記憶手段に記憶されているクレジットに加算して格納し、前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算して格納し、前記クレジット記憶手段に記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御することを備えたことを特徴とする。
また、請求項2に係る発明は、上記の発明において、容量特定情報送信手段は、前記容量特定情報として、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを前記送信装置に送信し、クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、クレジット減算手段は、前記受信装置から受信した値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算して格納することを備えたことを特徴とする。
また、請求項3に係る発明は、上記の発明において、前記容量特定情報送信手段は、前記受信バッファから読み出されたデータパケットの容量に関係なく、前記容量特定情報を前記送信装置に送信し、前記クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記データパケットごとに区分けして送信順に、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、前記クレジット減算手段は、前記データパケットごとに区分けして送信順に前記クレジット記憶手段に記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジットを減算して格納することを備えたことを特徴とする。
また、請求項4に係る発明は、上記の発明において、送信制御手段は、前記データパケットの送信を許可する場合に、当該送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加して前記受信装置に送信し、前記容量特定情報送信手段は、前記受信バッファから読み出されたデータパケットの容量に関係なく、当該データパケットに付加されている識別情報を前記送信装置に送信し、前記クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記データパケットごとに区分けするとともに前記識別情報を付加して、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、前記クレジット減算手段は、前記データパケットごとに区分けされるとともに前記識別情報が付加されて前記クレジット記憶手段に記憶されているクレジットのなかから、前記受信装置から受信した識別情報に対応するデータパケットのクレジットを減算して格納することを備えたことを特徴とする。
また、請求項5に係る発明は、上記の発明において、前記送信制御手段は、前記クレジット記憶手段に記憶されているクレジットの値に対して、前記送信装置から送信しようとしているデータパケットの容量に応じたクレジットの値を加算した加算値が、前記受信バッファの容量から定まる所定の値に達しているか否かを判定し、前記加算値が前記所定の値に達していない場合には、前記データパケットの送信を許可し、前記加算値が前記所定の値に達している場合には、前記データパケットの送信を停止するように制御することを備えたことを特徴とする。
また、請求項6に係る発明は、上記の発明において、前記送信制御手段は、前記クレジット記憶手段に記憶されているクレジットの値が、前記受信バッファの容量から定まる所定の値に達しているか否かを判定し、前記クレジットの値が前記所定の値に達していない場合には、前記データパケットの送信を許可し、前記クレジットの値が前記所定の値に達している場合には、前記データパケットの送信を停止するように制御することを備えたことを特徴とする。
また、請求項7に係る発明は、送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信するデータパケット送受信方法であって、前記受信装置は、前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信工程と、前記送信装置は、前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとしてクレジットカウンタに記憶するクレジット記憶工程と、前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットに加算して格納するクレジット加算工程と、前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットから減算して格納するクレジット減算工程と、前記クレジットカウンタに記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御工程と、を含んだことを特徴とする。
また、請求項8に係る発明は、送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信する方法をコンピュータに実行させるデータパケット送受信プログラムであって、前記受信装置としてのコンピュータは、前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信手順と、前記送信装置としてのコンピュータは、前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとしてクレジットカウンタに記憶するクレジット記憶手順と、前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットに加算して格納するクレジット加算手順と、前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットから減算して格納するクレジット減算手順と、前記クレジットカウンタに記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御手順と、をコンピュータに実行させることを特徴とする。
また、請求項9に係る発明は、送信装置から送信されるデータパケットを受信する受信装置であって、前記データパケットを格納する受信バッファを有し、前記受信バッファに格納されたデータパケットを読み出し、前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を特定する際に用いられる容量特定情報を前記送信装置に送信することを備えたことを特徴とする。
また、請求項10に係る発明は、上記の発明において、容量特定情報送信手段は、前記容量特定情報として、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを前記送信装置に送信することを特徴とする。
また、請求項11に係る発明は、受信バッファを備える受信装置へデータパケットを送信する送信装置であって、前記受信バッファに格納されている全データパケットの総容量に応じた値をクレジットとして記憶し、前記受信装置にデータパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、クレジット記憶手段に記憶されているクレジットに加算し、前記受信装置から受信した、前記受信バッファから読み出されたデータパケットの容量を特定する容量特定情報に基づいて、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算し、クレジット記憶手段に記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御することを備えたことを特徴とする。
請求項1、7または8の発明によれば、受信装置は、受信バッファに格納されているデータパケットが読み出された場合に、容量特定情報を送信装置に送信し、送信装置は、受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶し、送信バッファから受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、現在のクレジットに加算して格納し、受信装置から容量特定情報を受信した場合に、当該容量特定情報を用いて受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、現在のクレジットから減算して格納し、クレジット記憶手段に記憶されているクレジットの値に基づいて、データパケットの送信を許可または停止するように制御するので、送信装置が受信バッファにおけるデータパケットの混み具合をデータパケット数ではなくデータ容量で把握し、受信バッファに格納されるデータパケット数(キュー段数)をデータパケットがオーバーフローしない範囲で動的に調整しながらデータパケットを送信することで、受信バッファの未使用領域を減らすことができる結果、受信バッファとしての資源を有効に利用することが可能である。
また、請求項2の発明によれば、受信装置は、容量特定情報として、受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを送信装置に送信し、送信装置は、受信装置に送信されたデータパケットの容量に応じた値のクレジットを、現在のクレジットに加算して格納し、送信装置は、受信装置から受信した値のクレジットを、現在のクレジットから減算して格納するので、送信装置では、受信装置から受信したクレジットをそのまま減算するだけで、受信バッファにおけるデータパケットの混み具合を把握することができる結果、送信装置におけるクレジットの増加減処理を簡易化することも可能である。
また、請求項3の発明によれば、受信装置は、受信バッファから読み出されたデータパケットの容量に関係なく、容量特定情報を送信装置に送信し、送信装置は、受信装置に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けして送信順に、現在のクレジットに加算して格納し、送信装置は、データパケットごとに区分けして送信順にクレジット記憶手段に記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジットを減算して格納するので、受信バッファから読み出されたデータパケットの容量に関係なく、常に同量のクレジットを受信装置から送信装置に送信するだけで、受信装置では、受信バッファにおけるデータパケットの混み具合を把握することができる結果、受信装置から送信装置への返信処理を簡易化することも可能である。
また、請求項4の発明によれば、送信装置は、データパケットの送信を許可する場合に、当該送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加して受信装置に送信し、受信装置は、受信バッファから読み出されたデータパケットの容量に関係なく、当該データパケットに付加されている識別情報を送信装置に送信し、送信装置は、受信装置に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けするとともに識別情報を付加して、現在のクレジットに加算して格納し、送信装置は、データパケットごとに区分けされるとともに識別情報が付加されてクレジット記憶手段に記憶されているクレジットのなかから、受信装置から受信した識別情報に対応するデータパケットのクレジットを減算して格納するので、受信バッファから読み出されたデータパケットの容量に関係なく、パケットの識別情報を受信装置から送信装置に送信するだけで、受信装置では、受信バッファにおけるデータパケットの混み具合を把握することができる結果、受信装置から送信装置への返信処理を簡易化することも可能である。さらに、パケットの識別情報を受信装置から送信装置に送信するだけで、受信バッファから読み出されたデータパケットの容量を確実に特定することができる結果、受信バッファにおけるデータパケットの混み具合を確実に把握することも可能になる。
また、請求項5の発明によれば、送信装置は、現在のクレジットの値に対して、送信装置から送信しようとしているデータパケットの容量に応じたクレジットの値を加算した加算値が、受信バッファの容量から定まる所定の値に達しているか否かを判定し、加算値が所定の値に達していない場合には、データパケットの送信を許可し、加算値が所定の値に達している場合には、データパケットの送信を停止するように制御するので、これから送信しようとしているデータパケットが送信された後における受信バッファの混み具合を推定することができる結果、受信バッファにおけるオーバーフローを確実に防止することも可能である。
また、請求項6の発明によれば、送信装置は、現在のクレジットの値が、受信バッファの容量から定まる所定の値に達しているか否かを判定し、クレジットの値が所定の値に達していない場合には、データパケットの送信を許可し、クレジットの値が所定の値に達している場合には、データパケットの送信を停止するように制御するので、例えば、受信バッファの容量からデータパケットの最長サイズを差し引いた値をクレジットカウンタの上限値として設定しておき、この上限値をクレジットが超えるか否かだけを判定しながらデータパケットの送信を制御することができる結果、パケットの送信を許可または停止する処理を簡易化することも可能である。
また、請求項9の発明によれば、受信装置は、データパケットを格納する受信バッファを有し、受信バッファに格納されたデータパケットを読み出し、受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を特定する際に用いられる容量特定情報を送信装置に送信するので、送信装置が、現在のクレジットに基づいて、データパケットの送信を許可または停止するように制御することにより、送信装置が受信バッファにおけるデータパケットの混み具合をデータパケット数ではなくデータ容量で把握し、受信バッファに格納されるデータパケット数(キュー段数)をデータパケットがオーバーフローしない範囲で動的に調整しながらデータパケットを送信することで、受信バッファの未使用領域を減らすことができる結果、受信バッファとしての資源を有効に利用することが可能である。
また、請求項10の発明によれば、受信装置は、容量特定情報として、受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを送信装置に送信するので、送信装置が、受信装置に送信されたデータパケットの容量に応じた値のクレジットを、現在のクレジットに加算して格納し、送信装置が、受信装置から受信した値のクレジットを、現在のクレジットから減算して格納することにより、送信装置では、受信装置から受信したクレジットをそのまま減算するだけで、受信バッファにおけるデータパケットの混み具合を把握することができる結果、送信装置におけるクレジットの増加減処理を簡易化することも可能である。
また、請求項11の発明によれば、送信装置は、受信バッファに格納されている全データパケットの総容量に応じた値をクレジットとして記憶し、受信装置にデータパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、現在のクレジットに加算し、受信装置から受信した、受信バッファから読み出されたデータパケットの容量を特定する容量特定情報に基づいて、受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを、現在のクレジットから減算し、クレジット記憶手段に記憶されているクレジットの値に基づいて、データパケットの送信を許可または停止するように制御するので、受信装置が、受信バッファに格納されているデータパケットが読み出された場合に、容量特定情報を送信装置に送信することにより、送信装置が受信バッファにおけるデータパケットの混み具合をデータパケット数ではなくデータ容量で把握し、受信バッファに格納されるデータパケット数(キュー段数)をデータパケットがオーバーフローしない範囲で動的に調整しながらデータパケットを送信することで、受信バッファの未使用領域を減らすことができる結果、受信バッファとしての資源を有効に利用することが可能である。
図1は、実施例1に係るデータパケット送受信システムの概要および特徴を説明するための図である。 図2は、実施例1におけるデータパケット送受信システムの構成を示すブロック図である。 図3は、実施例1におけるパケット送信時の処理を示すフローチャートである。 図4は、実施例1におけるクレジット受信時の処理を示すフローチャートである。 図5は、実施例1におけるクレジット送信時の処理を示すフローチャートである。 図6は、実施例2に係るデータパケット送受信システムの概要および特徴を説明するための図である。 図7は、実施例2におけるパケット送受信システムの構成を示すブロック図である。 図8は、実施例2におけるクレジット加算時の処理を示す概念図である。 図9は、実施例2におけるクレジット減算時の処理を示す概念図である。 図10は、実施例2におけるパケット送信時の処理を示すフローチャートである。 図11は、実施例2におけるクレジット受信時の処理を示すフローチャートである。 図12は、実施例2におけるクレジット送信時の処理を示すフローチャートである。 図13は、実施例3に係るデータパケット送受信システムの概要および特徴を説明するための図である。 図14は、実施例3におけるパケット送受信システムの構成を示すブロック図である。 図15は、実施例3におけるクレジット加算時の処理を示す概念図である。 図16は、実施例3におけるクレジット減算時の処理を示す概念図である。 図17は、実施例3におけるパケット送信時の処理を示すフローチャートである。 図18は、実施例3におけるクレジット受信時の処理を示すフローチャートである。 図19は、実施例3における識別情報送信送時の処理を示すフローチャートである。 図20は、本発明を用いたコンピュータシステムの例を示す図である。 図21は、実施例1におけるデータパケット送受信システムのプログラムを示す図である。 図22は、従来技術に係るデータパケット送信制御システムの概要と特徴を説明するための図である。
符号の説明
100 送信装置
110 データ入力部
120 送信バッファ
130 送信バッファ制御部
131 パケット送信制御部
132 クレジット加算部
133 クレジットカウンタ部
134 クレジット減算部
200 受信装置
210 受信バッファ
220 データ出力部
230 受信バッファ制御部
231 クレジット送信部
以下に添付図面を参照して、この発明に係るデータパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラムの実施例を詳細に説明する。なお、以下の実施例1では、実施例1に係るデータパケット送受信システムの概要および特徴、データパケット送受信システムの構成および処理の流れ、および効果を順に説明する。
[データパケット送受信システムの概要および特徴]
まず最初に、図1を用いて、実施例1に係るデータパケット送受信システムの概要および特徴を説明する。図1は、実施例1に係るデータパケット送受信システムの概要および特徴を説明するための図である。
同図に示すように、実施例1に係るデータパケット送受信システムは、送信バッファ120を備える送信装置100から受信バッファ210を備える受信装置200へデータパケットを送信するデータパケット送受信システムである。そしてこのような概要を有するデータパケット送受信システムは、以下で説明するように、受信バッファ210としての資源を有効に利用することが可能である点に主たる特徴がある。
図1に例示するように、送信装置100は、受信バッファ210の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶するクレジットカウンタ部133を有している。ここで、送信装置100は、クレジットカウンタ部133のクレジット値の上限値として、受信装置200の受信バッファ210の容量に対応するクレジットの値(例えば「16」)を設定する。このため、送信装置100は、クレジットカウンタ部133の残りのクレジット値から、受信バッファ210の空き容量を得ることができる。
ここで、送信装置100は、送信バッファ120から、データパケットを受信装置200の受信バッファ210に送信すると、送信されたデータパケットの容量に応じたクレジットを、クレジットカウンタ部133に記憶されているクレジットに加算して格納する(図1の(1)参照)。例えば、図1に示すように、送信装置100が、2バイトのデータパケットを送信すると、クレジット「2」をクレジットカウンタ部133のクレジット値に加算し、1バイトのデータパケットを送信すると、クレジット「1」をクレジットカウンタ部133のクレジット値に加算する。
一方、受信装置200は、送信装置100から送信されたデータパケットを、受信バッファ210で受信する(図1の(2)参照)。その後、受信装置200は、上記した受信したデータパケットを、データパケットが受信バッファ210に格納された順番で古いデータパケットから読み出すと、受信バッファ210から読み出されたデータの容量に対応するクレジットを、送信装置100に送信する(図1の(3)参照)。例えば、受信装置200は、受信バッファ210から1バイトのデータパケットを読み出すと、クレジット「1」を送信装置100へと送信し、2バイトのデータパケットを読み出すと、クレジット「2」を送信装置100へと送信し、3バイトのデータパケットを読み出すと、クレジット「3」を送信装置100へと送信する。
また、送信装置100は、上記した受信装置200が送信したクレジットを受信すると、受信したクレジットを、クレジットカウンタ部133に記憶されているクレジット値から減算して格納する(図1の(4)参照)。例えば、送信装置100が、クレジット「1」を受信すると、クレジット「1」をクレジットカウンタ部133のクレジット値から減算し、クレジット「2」を受信すると、クレジット「2」をクレジットカウンタ部133のクレジット値から減算し、クレジット「3」を受信すると、クレジット「3」をクレジットカウンタ部133のクレジット値から減算する。
そして送信装置100は、クレジットカウンタ部133に記憶されているクレジット値に基づいて、データパケットの送信を許可または停止するように制御する。具体的には、クレジットカウンタ部133に記憶されているクレジット値に対して、送信装置100から送信しようとしているデータパケットの容量に応じたクレジットの値を加算したクレジット値の加算値が、受信バッファ210の容量から定まる所定の値(上限値)に達しているか否かを判定し、上記したクレジット値の加算値が上限値に達していない場合には、データパケットの送信を許可し、クレジット値の加算値が上限値に達している場合には、データパケットの送信を停止するように制御する。
例えば、クレジットカウンタ部133の上限値が16の場合、現在のクレジット値が「10」であり、送信するデータパケットの容量に応じたクレジット値が「2」であれば、クレジット値の加算値は「12」となり、上限値である「16」に達していないため、送信装置100は送信を許可する。また、現在のクレジット値が「12」であり、送信するデータパケットの容量に応じたクレジット値が「1」であれば、クレジットの加算値は「13」となり、送信装置100は送信を許可する。一方、現在のクレジット値が「13」であり、送信するデータパケットの容量に応じたクレジット値が「4」であれば、クレジットの加算値は「17」となり、上限値である「16」に達してしまうため、送信装置100は送信を停止する(図1の(5)参照)。
このようなことから、データパケット送受信システムは、送信装置100が受信バッファ210におけるデータパケットの混み具合をデータパケット数ではなくデータ容量で把握し、受信バッファ210に格納されるデータパケット数(キュー段数)をデータパケットがオーバーフローしない範囲で動的に調整しながらデータパケットを送信することで、受信バッファ210の未使用領域を減らすことができる結果、受信バッファ210としての資源を有効に利用することが可能である。
なお、上記した送信装置100および受信装置200としては、携帯電話、PDA、パーソナルコンピュータなど、ネットワークや有線、無線(赤外線通信、ブルートゥース等)を介して情報をパケットで送信または受信する電子機器、または、同一の電子機器内の回路やチップなど、電子機器内のバスや配線を介して情報をパケットで送信または受信する電子回路である。
[データパケット送受信システムの構成]
次に、図2を用いて、実施例1に係るデータパケット送受信システムの構成を説明する。図2は、実施例1におけるデータパケット送受信システムの構成を示すブロック図である。同図に示すように、このデータパケット送受信システムは、送信装置100と受信装置200とから構成され、送信装置100は、データ入力部110と、送信バッファ120と、送信バッファ制御部130とを備え、受信装置200は、受信バッファ210と、データ出力部220と、受信バッファ制御部230とを備えている。また、送信装置100と受信装置200は、ネットワークや有線、無線(赤外線通信、ブルートゥース等)、あるいは電子機器内のバスや配線を介して、接続している。
データ入力部110は、各種の情報を送信バッファ120に入力する。具体的には、送信装置100から受信装置200へと送信するデータパケットを、送信バッファ120先頭から詰めて、書き込む。
送信バッファ120は、送信装置100から受信装置200へ送信するデータパケットを記憶し、メモリなどによって構成される。具体的には、送信バッファ120は、データ入力部110から入力されたデータパケットを、送信バッファ120の先頭から詰めて記憶する。なお、送信バッファ120では、データパケットが読み出されるたびに、読み出されたデータパケットは消去され、新たなデータパケットが上書きされる。
送信バッファ制御部130は、データパケットの送受信を制御し、本発明に密接に関連するものとしては、図2に示すように、パケット送信制御部131と、クレジット加算部132と、クレジットカウンタ部133と、クレジット減算部134とを備える。なお、パケット送信制御部131は特許請求の範囲に記載の「送信制御手段」に対応し、クレジット加算部132は同じく「クレジット加算手段」に対応し、クレジットカウンタ部133は同じく「クレジット記憶手段」に対応し、クレジット減算部134は同じく「クレジット減算手段」に対応する。
クレジットカウンタ部133は、受信バッファ210の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶する。具体的には、後述するクレジット加算部132およびクレジット減算部134によって、記憶しているクレジット値を増加減されることによって、受信バッファ210の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶する。
なお、クレジットカウンタ部133は、受信バッファ210の容量の最大値に応じたクレジットを、所定の値(上限値)として記憶している。例えば、受信バッファ210の容量の最大値が16バイトであれば、16バイトに対応したクレジット「16」を、クレジットカウンタ部133のクレジットの上限値として記憶し、受信バッファ210の容量の最大値が32バイトであれば、32バイトに対応したクレジット「32」を、クレジットカウンタ部133のクレジットの上限値として記憶する。
クレジット加算部132は、送信バッファ120から受信装置200にデータパケットが送信されると、送信されたデータパケットの容量に応じた値のクレジットを、クレジットカウンタ部133に記憶されているクレジット値に加算して格納する。
例えば、送信バッファ120から2バイトのデータパケットを送信すると、クレジット加算部132は、2バイトに対応するクレジットであるクレジット「2」を、クレジットカウンタ部133のクレジット値に加算して格納し、送信装置100が、送信バッファ120から1バイトのデータパケットを送信すると、クレジット加算部132は、1バイトに対応するクレジットであるクレジット「1」を、クレジットカウンタ部133のクレジット値に加算して格納する。
クレジット減算部134は、受信装置200から後述する容量特定情報を受信すると、容量特定情報を用いて受信バッファ210から読み出されたデータパケットの容量を特定し、上記した特定した容量に応じた値のクレジットを、クレジットカウンタ部133に記憶されているクレジット値から減算して格納する。具体的には、クレジット減算部134は、受信装置200から受信したクレジットの値を、クレジットカウンタ部133に記憶されているクレジット値から減算して格納する。
例えば、クレジット減算部134が、クレジット「1」を受信すると、クレジット減算部134は、クレジット「1」をクレジットカウンタ部133のクレジット値から減算し、クレジット減算部134が、クレジット「2」を受信すると、クレジット減算部134が、クレジット「2」をクレジットカウンタ部133のクレジット値から減算し、クレジット減算部134が、クレジット「3」を受信すると、クレジット減算部134が、クレジット「3」をクレジットカウンタ部133のクレジット値から減算する。
パケット送信制御部131は、クレジットカウンタ部に記憶されているクレジットの値に基づいて、データパケットの送信を許可または停止するように制御する制御部である。具体的には、データパケットを送信するタイミングとなると、クレジットカウンタ部133に記憶されているクレジットの値に対して、送信装置100から送信しようとしているデータパケットの容量に応じたクレジットの値を加算した加算値が、受信バッファ210の容量から定まる所定の値(上限値)に達しているか否かを判定し、上記した加算値が上記した上限値に達していない場合には、データパケットの送信を許可し、上記した加算値が上記した上限値に達している場合には、上記したデータパケットの送信を停止するように制御する。
例えば、クレジットカウンタ部133に設定された上限値が「16」の場合、現在のクレジット値が「10」であり、送信するデータパケットの容量に応じたクレジット値が「2」であれば、クレジット値の加算値は「12」となり、上限値である「16」に達していないため、パケット送信制御部131は送信を許可する。また、現在のクレジット値が「12」であり、送信するデータパケットの容量に応じたクレジット値が「1」であれば、クレジットの加算値は「13」となり、パケット送信制御部131は送信を許可する。一方、現在のクレジット値が「13」であり、送信するデータパケットの容量に応じたクレジット値が「4」であれば、クレジットの加算値は「17」となり、上限値である「16」に達してしまうため、パケット送信制御部131は送信を停止する。
次に、受信装置200のなかで、受信バッファ210は、送信装置100から送信されたデータパケットを記憶し、メモリなどによって構成される。具体的には、受信バッファ210は、送信装置100から送信されたデータパケットを、受信バッファ210の先頭から詰めて、記憶する。なお、受信バッファ210では、後述するデータ出力部220によって、データパケットが読み出されると、読み出されたデータパケットは消去され、新たなデータパケットが上書きされる。
データ出力部220は、受信バッファ210に記憶されたデータを読み出す。具体的には、データ出力部220は、受信バッファ210に記憶されたデータの中から、受信した順番が古い順に、データを読み出す。
受信バッファ制御部230は、データパケットの送受信を制御し、図2に示すように、本発明に密接に関連するものとしては、クレジット送信部231を備えている。なお、クレジット送信部231は、特許請求の範囲に記載の「容量特定情報送信手段」に対応する。クレジット送信部231は、受信バッファ210に格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を送信装置100において特定する際に用いられる容量特定情報を送信装置100に送信する。具体的には、クレジット送信部231は、上記した容量特定情報として、受信バッファ210から読み出されたデータパケットの容量に応じた値のクレジットを送信装置100に送信する。
例えば、受信装置200が受信バッファ210から1バイトのデータパケットを読み出すと、クレジット送信部231は、1バイトに対応するクレジット「1」を、送信装置100へと送信し、2バイトのデータパケットを読み出すと、クレジット「2」を送信装置100へと送信し、3バイトのデータパケットを読み出すと、クレジット「3」を送信装置100へと送信する。
[パケット送信時の処理]
次に、図3を用いて、実施例1におけるパケット送信時の処理手順を説明する。図3は、実施例1におけるパケット送信時の処理を示すフローチャートである。
図3に示すように、パケット送信制御部131は、データパケットの送信タイミングとなると(ステップS301肯定)、送信データパケットの容量にとって、十分なクレジットがあるか(すなわち、クレジットカウンタ部133のクレジット値に、送信するデータパケットの容量に対応するクレジットの値を加算すると、かかる加算値が、受信バッファ210の容量に対応する上限値に達するか)を判定する(ステップS302)。
そして、送信するデータパケットの容量にとって、クレジットカウンタ部133に十分なクレジットがある場合(上記した加算値が、上限値に達しない場合)には(ステップS302肯定)、パケット送信制御部131は、送信バッファ120からデータパケットを送信する(ステップS303)。つまり、パケット送信制御部131は、かかるデータパケットの送信を許可する。
そして、送信装置100が、送信バッファ120からデータパケットを送信すると、クレジット加算部132は、送信されたデータパケットの容量に応じたクレジットを、クレジットカウンタ部133に記憶されているクレジットに加算して格納する(ステップS304)。
一方、上記のステップS302において、送信するデータパケットの容量にとって、クレジットカウンタ部133に十分なクレジットがない場合(上記した加算値が、上限値に達する場合)には(ステップS302否定)、パケット送信制御部131は、送信バッファ120からデータパケットの送信を停止する(ステップS305)。
[クレジット受信時の処理]
次に、図4を用いて、実施例1におけるクレジット受信時の処理手順を説明する。図4は、実施例1におけるクレジット受信時の処理を示すフローチャートである。
図4に示すように、送信装置100が受信装置200からクレジットを受信すると(ステップS401肯定)、クレジット減算部134は、受信したクレジットの値を、クレジットカウンタ部133に記憶されたクレジット値から減算して格納する(ステップS402)。例えば、送信装置100が、クレジット「1」を受信すると、クレジット「1」をクレジットカウンタ部133のクレジット値から減算し、クレジット「2」を受信すると、クレジット「2」をクレジットカウンタ部133のクレジット値から減算し、クレジット「3」を受信すると、クレジット「3」をクレジットカウンタ部133のクレジット値から減算する。
[クレジット送信時の処理]
次に、図5を用いて、実施例1におけるクレジット送信時の処理手順を説明する。図5は、実施例1におけるクレジット送信時の処理を示すフローチャートである。
図5に示すように、データ出力部220が、受信装置200の受信バッファ210に記憶されたデータを読み出すと(ステップS501肯定)、読み出されたデータの容量に対応するクレジットを、クレジットカウンタ部133に送信する(ステップS502)。例えば、受信装置200が受信バッファ210から1バイトのデータパケットを読み出すと、クレジット送信部231は、1バイトに対応するクレジット「1」を、送信装置100へと送信し、2バイトのデータパケットを読み出すと、クレジット「2」を送信装置100へと送信し、3バイトのデータパケットを読み出すと、クレジット「3」を送信装置100へと送信する。
[実施例1による効果]
上述してきたように、実施例1によれば、受信装置200は、受信バッファ210に格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を送信装置100において特定する際に用いられる容量特定情報を送信装置100に送信し、送信装置100は、受信バッファ210の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶し、送信バッファ120から受信装置200にデータパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、クレジットカウンタ部133に記憶されているクレジットに加算して格納し、受信装置200から容量特定情報を受信した場合に、当該容量特定情報を用いて受信バッファ210から読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、クレジットカウンタ部133に記憶されているクレジットから減算して格納し、クレジットカウンタ部133に記憶されているクレジットの値に基づいて、データパケットの送信を許可または停止するように制御するので、送信装置100が受信バッファ210におけるデータパケットの混み具合をデータパケット数ではなくデータ容量で把握し、受信バッファ210に格納されるデータパケット数(キュー段数)をデータパケットがオーバーフローしない範囲で動的に調整しながらデータパケットを送信することで、受信バッファ210の未使用領域を減らすことができる結果、受信バッファ210としての資源を有効に利用することが可能である。
また、実施例1によれば、クレジット送信部231は、容量特定情報として、受信バッファ210から読み出されたデータパケットの容量に応じた値のクレジットを送信装置100に送信し、クレジット加算部132は、受信装置200に送信されたデータパケットの容量に応じた値のクレジットを、クレジットカウンタ部133に記憶されているクレジットに加算して格納し、クレジット減算部134は、受信装置200から受信した値のクレジットを、クレジットカウンタ部133に記憶されているクレジットから減算して格納するので、送信装置100では、受信装置200から受信したクレジットをそのまま減算するだけで、受信バッファ210におけるデータパケットの混み具合を把握することができる結果、送信装置100におけるクレジットの増加減処理を簡易化することも可能である。
また、実施例1によれば、パケット送信制御部131は、クレジットカウンタ部133に記憶されているクレジットの値に対して、送信装置100から送信しようとしているデータパケットの容量に応じたクレジットの値を加算した加算値が、受信バッファ210の容量から定まる所定の値に達しているか否かを判定し、加算値が所定の値(上限値)に達していない場合には、データパケットの送信を許可し、加算値が上限値に達している場合には、データパケットの送信を停止するように制御するので、これから送信しようとしているデータパケットが送信された後における受信バッファ210の混み具合を推定することができる結果、受信バッファ210におけるオーバーフローを確実に防止することも可能である。
上記した実施例1では、受信バッファからの読み出し容量に応じたクレジットを送信する場合を説明したが、本発明はこれに限定されるものではなく、読み出し容量に関係なく、常に同量のクレジットを送信してもよい。そこで、この実施例2では、受信バッファが読み出したデータパケットの容量に関係なく、常に同量のクレジットを送信する場合について説明する。
[データパケット送受信システムの概要および特徴]
最初に、図6を用いて、実施例2に係るデータパケット送受信システムの概要および特徴を説明する。図6は、実施例2に係るデータパケット送受信システムの概要および特徴を説明するための図である。なお、以下では、実施例1に係るデータパケット送受信システムと同様の点については、簡単に説明することにする。
図6に例示するように、送信装置100は、送信したデータパケットごとに区分けして送信順に、受信バッファ210の容量に対して現に格納されている全データパケットの総容量に応じた値を、クレジットとして記憶するパケット区分クレジットカウンタ部133bを有している。
ここで、送信装置100は、送信バッファ120から、データパケットを受信装置200の受信バッファ210に送信すると、送信されたデータパケットの容量に応じたクレジットを、パケット区分クレジットカウンタ部133bに記憶されているクレジットに、パケットごとに区分して送信した順番で、加算して格納する(図6の(1)参照)。
例えば、図6に示すように、送信装置100が、2バイトのデータパケットを送信すると、クレジット「2」を、最も新しく送信されたデータパケットとして、パケット区分クレジットカウンタ部133bのクレジット値に加算(追加)し、パケット区分クレジットカウンタ部133bのクレジット値(総数)を、「7」から「9」にする。続けて、1バイトのデータパケットを送信すると、クレジット「1」を、最も新しく送信されたデータパケットとして(例えばパケット5の次に)パケット区分クレジットカウンタ部133bのクレジット値に加算(追加)し、パケット区分クレジットカウンタ部133bのクレジット値(総数)を、「9」から「10」にする(図8参照)。
一方、受信装置200は、送信装置100から送信されたデータパケットを、受信バッファ210で受信する(図6の(2)参照)。その後、受信装置200は、上記した受信したデータパケットを、データパケットが受信バッファ210に格納された順番で古いデータパケットから読み出すと、受信バッファ210から、読み出されたデータの容量に関係なく、クレジット「1」を、送信装置100に送信する(図6の(3)参照)。例えば、受信装置200は、受信バッファ210から1バイトのデータパケットを読み出すと、クレジット「1」を送信装置100へと送信し、2バイトのデータパケットを読み出すと、クレジット「1」を送信装置100へと送信し、3バイトのデータパケットを読み出すと、クレジット「1」を送信装置100へと送信する。
また、送信装置100は、上記した受信装置200が送信したクレジットを受信すると、データパケットごとに区分けして送信順にパケット区分クレジットカウンタ部133bに記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジット値を、パケット区分クレジットカウンタ部133bに記憶されているクレジット値から減算して格納する(図6の(4)参照)。
例えば、送信装置100が、クレジット「1」を受信すると、パケット区分クレジットカウンタ部133bに記憶されているクレジットのなかで最も古いクレジット値であるクレジット「1」をパケット区分クレジットカウンタ部133bのクレジット値から減算(削除)し、パケット区分クレジットカウンタ部133bのクレジット値(総数)を、「10」から「9」にする(図9参照)。続いて、送信装置100が、クレジット「1」を受信すると、パケット区分クレジットカウンタ部133bに記憶されているクレジットのなかで最も古いクレジット値であるクレジット「2」をパケット区分クレジットカウンタ部133bのクレジット値から減算し、パケット区分クレジットカウンタ部133bのクレジット値を、「9」から「7」にする。
そして、送信装置100は、実施例1に係る送信装置100と同様に、パケット区分クレジットカウンタ部133bに記憶されているクレジット値に基づいて、データパケットの送信を許可または停止するように制御する(図6の(5)参照)。
このようなことから、実施例2に係るデータパケット送受信システムによれば、受信バッファ210から読み出されたデータパケットの容量に関係なく、常に同量のクレジットを受信装置200から送信装置100に送信するだけで、送信装置100では、受信バッファ210におけるデータパケットの混み具合を把握することができる結果、受信装置200から送信装置100への返信処理を簡易化することも可能である。
[データパケット送受信システムの構成]
次に、図7を用いて、実施例2に係るデータパケット送受信システムの構成を説明する。図7は、実施例2におけるデータパケット送受信システムの構成を示すブロック図である。同図に示すように、このデータパケット送受信システムは、送信装置100と受信装置200とから構成され、送信装置100は、データ入力部110と、送信バッファ120と、送信バッファ制御部130とを備え、受信装置200は、受信バッファ210と、データ出力部220と、受信バッファ制御部230とを備えている。
ここで、実施例1と同様の動作をするものについては、同じ番号を付して説明を省略し、以下では、パケット区分クレジットカウンタ部133bと、クレジット加算部132bと、クレジット減算部134bと、クレジット送信部231bについてのみ説明を行う。
パケット区分クレジットカウンタ部133bは、受信バッファ210の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶する。具体的には、パケット区分クレジットカウンタ部133bは、記憶しているクレジットを、後述するように、パケットごとに区分して、送信装置100から送信された送信順で記憶する。
クレジット加算部132bは、送信バッファ120から受信装置200にデータパケットが送信されると、受信装置200に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けして送信順に、パケット区分クレジットカウンタ部133bに記憶されているクレジット値に加算して格納する。
具体的には、図8に示すように、送信装置100が、1バイトのデータパケットを送信すると、クレジット「1」を、最も新しく送信したデータパケットに対応したクレジットとして一番後ろに(例えばパケット5の後ろに)、パケット区分クレジットカウンタ部133bのクレジット値に加算(追加)し、パケット区分クレジットカウンタ部133bのクレジット値(総数)を、「9」から「10」にする。なお、図8は、実施例2におけるクレジット加算時の処理を示す概念図である。
クレジット減算部134bは、受信装置200から後述する容量特定情報を受信すると、データパケットごとに区分けして送信順にパケット区分クレジットカウンタ133bに記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジットを減算して格納する。
例えば、図9に示すように、送信装置100が、クレジット「1」を受信すると、パケット区分クレジットカウンタ部133bに記憶されているクレジットのなかで最も古いクレジット値であるクレジット「1」をパケット区分クレジットカウンタ部133bのクレジット値から減算(削除)し、パケット区分クレジットカウンタ部133bのクレジット値(総数)を、「10」から「9」にする。なお、図9は、実施例2におけるクレジット減算時の処理を示す概念図である。
クレジット送信部231bは、受信バッファ210から読み出されたデータパケットの容量に関係なく、上記した容量特定情報を送信装置100に送信する。具体的には、クレジット送信部231bは、上記した容量特定情報として、受信バッファ210から読み出されたデータパケットの容量に関係なく、クレジット「1」を送信装置100に送信する。
[パケット送信時の処理]
次に、図10を用いて、実施例2におけるパケット送信時の処理手順を説明する。図10は、実施例2におけるパケット送信時の処理を示すフローチャートである。なお、以下では、実施例1に係るデータパケット送受信システムと同様の点については、簡単に説明することにする。
図10に示すように、送信タイミングとなり、送信バッファ120からデータパケットを送信すると(ステップS1001〜ステップS1003)、クレジット加算部132bは、送信されたデータパケットの容量に応じたクレジットを、パケットごとに区分して、送信した順番で、パケット区分クレジットカウンタ部133bに記憶されているクレジットに加算して格納する(ステップS1004)。
例えば、図8に示すように、送信装置100が、1バイトのデータパケットを送信すると、クレジット「1」をパケット区分クレジットカウンタ部133bのクレジット値に加算(追加)し、パケット区分クレジットカウンタ部133bのクレジット値(総数)を、「9」から「10」にする。
[クレジット受信時の処理]
次に、図11を用いて、実施例2におけるクレジット受信時の処理手順を説明する。図11は、実施例2におけるクレジット受信時の処理を示すフローチャートである。
図11に示すように、送信装置100が受信装置200からクレジットを受信すると(ステップS1101肯定)、クレジット減算部134bは、パケットごとに区分され送信順で記憶された、パケット区分クレジットカウンタ部133bに記憶されたクレジットのなかから、最も古く送信されたデータパケットのクレジットを得る(ステップS1102)。
そして、上記で得られたクレジットを、パケット区分クレジットカウンタ部133bに記憶されているクレジット値から減算して格納する(ステップS1103)。具体的には、図9に示すように、送信装置100が、クレジット「1」を受信すると、パケット区分クレジットカウンタ部133bに記憶されているクレジットのなかで最も古いクレジット値であるクレジット「1」をパケット区分クレジットカウンタ部133bのクレジット値から減算(削除)し、パケット区分クレジットカウンタ部133bのクレジット値(総数)を、「10」から「9」にする。
[クレジット送信時の処理]
次に、図12を用いて、実施例2におけるクレジット送信時の処理手順を説明する。図12は、実施例2におけるクレジット送信時の処理を示すフローチャートである。
図12に示すように、データ出力部220が、受信装置200の受信バッファ210に記憶されたデータを読み出すと(ステップS1211肯定)、読み出したデータの容量に関わらず、クレジットを、パケット区分クレジットカウンタ部133bに送信する(ステップS1212)。具体的には、受信装置200が受信バッファ210から1バイトのデータパケットを読み出すと、クレジット送信部231bは、受信バッファ210から読み出した1バイトに関係なく、クレジット「1」を送信装置100へと送信し、2バイトのデータパケットを読み出すと、読み出した2バイトに関係なく、クレジット「1」を送信装置100へと送信し、3バイトのデータパケットを読み出すと、読み出した3バイトに関係なく、クレジット「1」を送信装置100へと送信する。
[実施例2による効果]
上述したように、実施例2に係るデータパケット送受信システムによれば、クレジット送信部231bは、受信バッファ210から読み出されたデータパケットの容量に関係なく、容量特定情報を送信装置100に送信し、クレジット加算部132bは、受信装置200に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けして送信順に、パケット区分クレジットカウンタ部133bに記憶されているクレジットに加算して格納し、クレジット減算部134bは、データパケットごとに区分けして送信順にパケット区分クレジットカウンタ部133bに記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジットを減算して格納するので、受信バッファ210から読み出されたデータパケットの容量に関係なく、常に同量のクレジットを受信装置200から送信装置100に送信するだけで、送信装置100では、受信バッファ210におけるデータパケットの混み具合を把握することができる結果、受信装置200から送信装置100への返信処理を簡易化することも可能である。
上記した実施例2では、データパケットの送信順に、クレジットを減算する場合について説明したが、本発明はこれに限定されるものではなく、データパケットを特定して、クレジットを減算してもよい。そこで、この実施例3では、データパケットを特定してクレジットを減算する場合について説明する。
[データパケット送受信システムの概要および特徴]
最初に、図13を用いて、実施例3に係るデータパケット送受信システムの概要および特徴を説明する。図13は、実施例3に係るデータパケット送受信システムの概要および特徴を説明するための図である。なお、以下では、実施例1や実施例2に係るデータパケット送受信システムと同様の点については、簡単に説明することにする。
ここで、送信装置100は、送信バッファ120から、データパケットを、送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加して、受信装置200に送信すると、かかる送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けするとともに識別情報を付加して、パケット区分クレジットカウンタ部133cに加算して格納する。(図13の(1)参照)。具体的には、図13に示すように、送信装置100が、識別情報「x007」が付加された1バイトのデータパケットを送信すると、識別情報「x007」と1バイトのデータ容量に対応するクレジット「1」を対応付けて、加算して格納する。
一方、受信装置200は、送信装置100から送信されたデータパケットを、受信バッファ210で受信する(図13の(2)参照)。その後、受信装置200は、上記した受信したデータパケットを、受信バッファ210から読み出すと、受信バッファ210から読み出されたパケットに付加された識別情報を、送信装置100に送信する(図13の(3)参照)。具体的には、受信装置200は、受信バッファ210から識別情報「x002」が付加された1バイトのデータパケットを読み出すと、かかる1バイトのデータに付加されている識別情報「x002」を送信装置100へと送信する。
また、送信装置100は、上記した受信装置200が送信した識別情報を受信すると、データパケットごとに区分けされるとともに識別情報が付加されてパケット区分クレジットカウンタ部133cに記憶されているクレジットのなかから、受信装置200から受信した識別情報に対応するデータパケットのクレジットを減算して格納する。(図1の(4)参照)。具体的には、図13に示すように、送信装置100が、識別情報「x002」を受信すると、識別情報「x002」に対応するクレジット「1」をパケット区分クレジットカウンタ部133cのクレジット値から減算し格納する。
そして、送信装置100は、パケット区分クレジットカウンタ部133cに記憶されているクレジット値に基づいて、データパケットの送信を許可または停止するように制御する(図13の(5)参照)。
このようなことから、実施例3に係るデータパケット送受信システムは、受信バッファ210から読み出されたデータパケットの容量に関係なく、パケットの識別情報を受信装置200から送信装置100に送信するだけで、送信装置100では、受信バッファ210におけるデータパケットの混み具合を把握することができる結果、受信装置200から送信装置100への返信処理を簡易化することも可能である。さらに、パケットの識別情報を受信装置200から送信装置100に送信するだけで、受信バッファ210から読み出されたデータパケットの容量を確実に特定することができる結果、送信装置100では、受信バッファ210におけるデータパケットの混み具合を確実に把握することも可能になる。
[データパケット送受信システムの構成]
次に、図14を用いて、実施例3に係るデータパケット送受信システムの構成を説明する。図14は、実施例3におけるデータパケット送受信システムの構成を示すブロック図である。同図に示すように、このデータパケット送受信システムは、送信装置100と受信装置200とから構成され、送信装置100は、データ入力部110と、送信バッファ120と、送信バッファ制御部130とを備え、受信装置200は、受信バッファ210と、データ出力部220と、受信バッファ制御部230と備えている。
ここで、実施例1や実施例2と同様の動作をするものについては、同じ番号を付して説明を省略し、以下では、パケット区分クレジットカウンタ部133cと、識別情報付加部135cと、クレジット加算部132cと、クレジット減算部134cと、識別情報送信部231cについてのみ説明を行う。
パケット区分クレジットカウンタ部133cは、受信バッファ210の容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶する。具体的には、パケット区分クレジットカウンタ部133cは、記憶しているクレジットを、後述するように、識別情報を付加して、パケットごとに区分して、記憶する(図15参照)。
また、識別情報付加部135cは、パケット送信制御部131がデータパケットの送信を許可すると、送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加する。具体的には、[x006][x007]などの識別情報を送信するデータパケットの内部に付加する。
クレジット加算部132cは、送信バッファ120から受信装置200にデータパケットが送信されると、受信装置200に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けするとともに、識別情報付加部135cがかかるデータパケットに付加した識別情報を対応させて、パケット区分クレジットカウンタ部133cに記憶されているクレジットに加算して格納する。
例えば、図15に示すように、送信装置100が、送信タイミングとなり、送信バッファ120から、識別情報「x006」が付加された2バイトのデータパケットを送信すると、クレジット加算部132cは、2バイトに対応するクレジットであるクレジット「2」に識別情報である「x006」を付加して、パケット区分クレジットカウンタ部133cのクレジット値に加算して格納し、送信装置100が、送信バッファ120から、識別情報「007」が付加された1バイトのデータパケットを送信すると、クレジット加算部132cは、1バイトに対応するクレジットであるクレジット「1」に識別情報である「x007」を付加して、パケット区分クレジットカウンタ部133cのクレジット値に加算して格納する。なお、図15は、実施例3におけるクレジット加算時の処理を示す概念図である。
クレジット減算部134cは、受信装置200から識別情報を受信すると、データパケットごとに区分けされるとともに識別情報が付加されてパケット区分クレジットカウンタ部133cに記憶されているクレジットのなかから、受信装置200から受信した識別情報に対応するデータパケットのクレジットを減算して格納する。
例えば、図16に示すように、クレジット減算部134cは、識別情報「x002」を受信すると、識別情報「x002」に対応するクレジット「1」をパケット区分クレジットカウンタ部133cのクレジット値から減算し、クレジット減算部134cが、識別情報「x001」を受信すると、識別情報「x001」に対応するクレジット「2」をパケット区分クレジットカウンタ部133cのクレジット値から減算し、クレジット減算部134cは、識別情報「x003」を受信すると、識別情報「x003」に対応するクレジット「3」をパケット区分クレジットカウンタ部133cのクレジット値から減算する。なお、図16は、実施例3におけるクレジット減算時の処理を示す概念図である。
識別情報送信部231cは、受信バッファ210から読み出されたデータパケットの容量に関係なく、かかるデータパケットに付加されている識別情報を送信装置100に送信する。
[パケット送信時の処理]
次に、図17を用いて、実施例3におけるパケット送信時の処理手順を説明する。図17は、実施例3におけるパケット送信時の処理を示すフローチャートである。なお、以下では、実施例1や実施例2に係るデータパケット送受信システムと同様の点については、簡単に説明することにする。
図17に示すように、送信タイミングとなり、送信するデータパケットの容量にとって、パケット区分クレジットカウンタ部133cに十分なクレジットがある場合(上記した加算値が、上限値に達しない場合)(ステップS701〜ステップS702肯定)、送信情報付加部135cは、送信するデータパケットを一意に区別できる識別情報を付加し、パケット送信制御部131は、送信バッファ120から識別情報が付加されたデータパケットを送信する(ステップS703)。
そして、送信装置100が、送信バッファ120からデータパケットを送信すると、クレジット加算部132cは、送信されたデータパケットの容量に応じたクレジットを、送信データパケットごとに区分して、識別情報と対応させて、パケット区分クレジットカウンタ部133cに記憶されているクレジットに加算して格納する(ステップS704)。つまり、受信装置200に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けするとともに識別情報を付加して、パケット区分クレジットカウンタ部133cに記憶されているクレジットに加算して格納する。
[クレジット受信時の処理]
次に、図18を用いて、実施例3におけるクレジット受信時の処理手順を説明する。図18は、実施例3におけるクレジット受信時の処理を示すフローチャートである。
図18に示すように、送信装置100が受信装置200から識別情報を受信すると(ステップS1801肯定)、クレジット減算部134cは、パケット区分クレジットカウンタ部133cに記憶されたパケットごとに区分されたクレジットで、受信した識別情報に対応するクレジットを得る(ステップS1802)。つまり、データパケットごとに区分けされるとともに識別情報が付加されてパケット区分クレジットカウンタ部133cに記憶されているクレジットのなかから、受信装置200から受信した識別情報に対応するデータパケットのクレジットを得る。
例えば、送信装置100が、識別情報「x002」を受信すると、識別情報「x002」に対応するクレジット「1」を得て、識別情報「x001」を受信すると、識別情報「x001」に対応するクレジット「2」を得て、識別情報「x003」を受信すると、識別情報「x003」に対応するクレジット「3」を得る(図16参照)。
そして、上記で得られたクレジットを、パケット区分クレジットカウンタ部133cに記憶されているクレジット値から減算して格納する(ステップS1803)。具体的には、図16に示すように、送信装置100が、識別情報「x002」を受信すると、識別情報「x002」に対応するクレジット「1」をパケット区分クレジットカウンタ部133cのクレジット値から減算し格納する。
[クレジット送信時の処理]
次に、図19を用いて、実施例3におけるクレジット送信時の処理手順を説明する。図19は、実施例3におけるクレジット送信時の処理を示すフローチャートである。
図19に示すように、データ出力部220が、受信装置200の受信バッファ210に記憶されたデータを読み出すと(ステップS1901肯定)、読み出されたデータパケットに付加された識別情報を、パケット区分クレジットカウンタ部133cに送信する(ステップS1902)。
[実施例3による効果]
上述してきたように、実施例3によれば、パケット送信制御部131は、データパケットの送信を許可する場合に、当該送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加して受信装置200に送信し、識別情報送信部231cは、受信バッファ210から読み出されたデータパケットの容量に関係なく、当該データパケットに付加されている識別情報を送信装置100に送信し、クレジット加算部132cは、受信装置200に送信されたデータパケットの容量に応じた値のクレジットを、データパケットごとに区分けするとともに識別情報を付加して、パケット区分クレジットカウンタ部133cに記憶されているクレジットに加算して格納し、クレジット減算部134cは、データパケットごとに区分けされるとともに識別情報が付加されてパケット区分クレジットカウンタ部133cに記憶されているクレジットのなかから、受信装置200から受信した識別情報に対応するデータパケットのクレジットを減算して格納するので、受信バッファ210から読み出されたデータパケットの容量に関係なく、パケットの識別情報を受信装置200から送信装置100に送信するだけで、送信装置100では、受信バッファ210におけるデータパケットの混み具合を把握することができる結果、受信装置200から送信装置100への返信処理を簡易化することも可能である。さらに、パケットの識別情報を受信装置200から送信装置100に送信するだけで、受信バッファ210から読み出されたデータパケットの容量を確実に特定することができる結果、受信バッファ210におけるデータパケットの混み具合を確実に把握することも可能になる。
ところで、これまで実施例1〜3に係るデータパケット送受信システムについて説明してきたが、この発明は上記した実施例以外にも種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例4に係るデータパケット送受信システムとして、異なる実施例を説明する。
[送信判定方法]
上記の実施例では、送信装置から送信しようとしているデータパケットの容量に応じたクレジットの値を加算したクレジット値の加算値が、受信バッファの容量から定まる所定の値(上限値)に達しているか否かを判定し、データパケットの送信を制御する場合について説明したが、本発明はこれに限定されるものではなく、受信バッファの容量から定まる所定の値(上限値)に達しているか否かを判定し、データパケットの送信を制御する場合などにも、この発明を同様に適用することができる。
具体的には、パケット送信制御部は、クレジットカウンタ部に記憶されているクレジットの値が、受信バッファの容量から定まる所定の値(上限値)に達しているかを判定し、クレジットの値が上限値に達していない場合には、データパケットの送信を許可し、クレジットの値が上限値に達している場合には、データパケットの送信を停止するように制御する。
これによって、例えば、受信バッファの容量からデータパケットの最長サイズを差し引いた値をクレジットカウンタの上限値として設定しておき、この上限値をクレジットが超えるか否かだけを判定しながらデータパケットの送信を制御することができる結果、パケットの送信を許可または停止する処理を簡易化することも可能である。
[コンピュータシステムへの適用]
また、上記の実施例では、データパケット送受信システムの構成として、送信装置と受信装置を別々に備える場合について説明したが、本発明はこれに限定されるものではなく、コンピュータシステム内部において回路間でデータパケットを送信する場合などにも、この発明を同様に適用することができる。例えば、図20は、本発明を用いたコンピュータシステムの例を示す図であり、同図に示すように、チップセット2113と、チップセット2121とチップセット2133は本発明の制御を使用し、システムボード2110と、メモリーシステムインターコネクト2120との間におけるデータパケット送受信や、メモリーシステムインターコネクト2120と、IOユニット2130との間でのデータパケット送受信において、本発明を適用することができる。
[容量特定情報]
また、上記の実施例では、新たにパケットデータの識別情報を付加するシステムについて説明したが、本発明はこれに限定されるものではなく、送信するデータパケットに予め含まれている任意の情報を用いる方法や、このような任意の情報とデータパケットの識別情報の両方を用いる方法などにも、この発明を同様に適用することができる。
[システム構成等]
また、上記の実施例では、データパケット送受信システムの構成として、送信装置と受信装置が1対1で構成されるシステムについて説明したが、本発明はこれに限定されるものではなく、一つの送信装置に対して受信装置が複数あるシステムや、送信装置が複数あり受信装置が一つのシステムなどにも、この発明を同様に適用することができる。
また、上記の実施例では、送信装置と受信装置が異なる端末である場合を説明したが、本発明はこれに限定されるものではなく、送信装置と受信装置とを同じ端末で実現する(一つの端末が送信装置の機能および受信装置の機能の双方を備える)場合にも、この発明を同様に適用することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、例えば、送信装置や受信装置から送信バッファ制御部や受信バッファ制御部を抜き出して、別途データパケットの送受信の制御を行なう装置を設けても良い。また、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、クレジット加算部とクレジット減算部を統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報(例えば図8や図9に示す情報)については、特記する場合を除いて任意に変更することができる。
[データパケット送受信プログラム]
ところで、上記実施例1では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図21を用いて、上記の実施例1に示したデータパケット送受信システムと同様の機能を有するデータパケット送受信プログラムを実行するコンピュータの一例を説明する。図21は、実施例1におけるデータパケット送受信システムのプログラムを示す図である。
同図に示すように、送信装置2100は、マウス2101、キーボード2102、CPU2103、ROM2104、HDD2105、RAM2106、通信制御インターフェイス2107をバス2109などで接続して構成されている。受信装置2200は、マウス2201、キーボード2202、CPU2203、ROM2204、RAM2206、HDD2205、通信制御インターフェイス2207をバス2209などで接続して構成されている。送信装置2100と受信装置2200は、ネットワークや有線、無線(赤外線通信、ブルートゥースなど)などを介して、通信制御インターフェイス2107および通信制御インターフェイス2207によって接続されている。
ROM2104には、上記の実施例1で示した送信バッファ制御部130およびデータ入力部110と同様の機能を発揮する送信バッファ制御プログラム、つまり、図21に示すように、クレジットカウンタプログラム2104aと、クレジット加算プログラム2104bと、クレジット減算プログラム2104cと、パケット送信制御プログラム2104dと、データ入力プログラム2104eとが予め記憶されている。なお、これらプログラム2104a〜2104eについては、図2に示した送信装置100各構成要素と同様、適宜統合または分離してもよい。
そして、CPU2103が、これらのプログラム2104a〜2104eをROM2104から読み出して実行することにより、図21に示すように、各プログラム2104a〜2104eは、クレジットカウンタプロセス2103aと、クレジット加算プロセス2103bと、クレジット減算プロセス2103cと、パケット送信制御プロセス2103dと、データ入力プロセス2103eとして機能するようになる。なお、各プロセス2103a〜2103eは、図2に示した、クレジットカウンタ部133と、クレジット加算部132と、クレジット減算部134と、パケット送信制御部131と、データ入力部110とにそれぞれ対応する。
そして、CPU2103は、RAM2106に格納されたパケットカウンタデータ2106aと、送信バッファデータ2106bとに基づいて送信バッファ制御プログラムを実行する。
また、ROM2204には、上記の実施例1で示した受信バッファ制御部230およびデータ出力部220と同様の機能を発揮する受信バッファ制御プログラム、つまり、図21に示すように、クレジット送信プログラム2204aと、データ出力プログラム2204bとが予め記憶されている。なお、プログラム2204aと2204bについては、図2に示した受信装置200の各構成要素と同様、適宜統合または分離してもよい。
そして、CPU2203が、プログラム2204aと2204bをROM2204から読み出して実行することにより、図21に示すように、プログラム2204aと2204bは、クレジット送信プロセス2203aと、データ出力プロセス2203bとして機能するようになる。なお、各プロセス2203a〜2203bは、図2に示した、クレジット送信部231と、データ出力部220とにそれぞれ対応する。
そして、CPU2203は、RAM2206に格納された受信バッファデータ2206aに基づいて受信バッファ制御プログラムを実行する。
なお、本実施例で説明した各プログラム2104a〜2104eや2204a〜2204bについては、必ずしも最初からROMに記憶させておく必要はなく、例えば送信装置2100または受信装置2200に挿入されるフレキシブルディスク、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」、または、送信装置2100または受信装置2200の内外に備えられるHDDなどの「固定用の物理媒体」、さらには、公衆回線、インターネット、LAN、WANなどを介して送信装置2100または受信装置2200に接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておき、送信装置2100または受信装置2200がこれらから各プログラムを読みだして実行するようにしてもよい。
以上のように、本発明に係るデータパケット送受信システムは、送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信するデータパケット送受信システムに有用であり、特に受信バッファとしての資源を有効に利用することが可能なデータパケットを送信するデータパケット送受信システムを実現することに適する。

Claims (11)

  1. 送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信するデータパケット送受信システムであって、
    前記受信装置は、
    前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信手段と、
    前記送信装置は、
    前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとして記憶するクレジット記憶手段と、
    前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットに加算して格納するクレジット加算手段と、
    前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算して格納するクレジット減算手段と、
    前記クレジット記憶手段に記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御手段と、
    を備えたことを特徴とするデータパケット送受信システム。
  2. 前記容量特定情報送信手段は、前記容量特定情報として、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを前記送信装置に送信し、
    前記クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、
    前記クレジット減算手段は、前記受信装置から受信した値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算して格納することを特徴とする請求項1に記載のデータパケット送受信システム。
  3. 前記容量特定情報送信手段は、前記受信バッファから読み出されたデータパケットの容量に関係なく、前記容量特定情報を前記送信装置に送信し、
    前記クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記データパケットごとに区分けして送信順に、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、
    前記クレジット減算手段は、前記データパケットごとに区分けして送信順に前記クレジット記憶手段に記憶されているクレジットのなかから、最も古く送信されたデータパケットのクレジットを減算して格納することを特徴とする請求項1に記載のデータパケット送受信システム。
  4. 前記送信制御手段は、前記データパケットの送信を許可する場合に、当該送信されるデータパケットを一意に識別する識別情報を当該データパケットに付加して前記受信装置に送信し、
    前記容量特定情報送信手段は、前記受信バッファから読み出されたデータパケットの容量に関係なく、当該データパケットに付加されている識別情報を前記送信装置に送信し、
    前記クレジット加算手段は、前記受信装置に送信されたデータパケットの容量に応じた値のクレジットを、前記データパケットごとに区分けするとともに前記識別情報を付加して、前記クレジット記憶手段に記憶されているクレジットに加算して格納し、
    前記クレジット減算手段は、前記データパケットごとに区分けされるとともに前記識別情報が付加されて前記クレジット記憶手段に記憶されているクレジットのなかから、前記受信装置から受信した識別情報に対応するデータパケットのクレジットを減算して格納することを特徴とする請求項1に記載のデータパケット送受信システム。
  5. 前記送信制御手段は、前記クレジット記憶手段に記憶されているクレジットの値に対して、前記送信装置から送信しようとしているデータパケットの容量に応じたクレジットの値を加算した加算値が、前記受信バッファの容量から定まる所定の値に達しているか否かを判定し、前記加算値が前記所定の値に達していない場合には、前記データパケットの送信を許可し、前記加算値が前記所定の値に達している場合には、前記データパケットの送信を停止するように制御することを特徴とする請求項1〜4のいずれか一つに記載のデータパケット送受信システム。
  6. 前記送信制御手段は、前記クレジット記憶手段に記憶されているクレジットの値が、前記受信バッファの容量から定まる所定の値に達しているか否かを判定し、前記クレジットの値が前記所定の値に達していない場合には、前記データパケットの送信を許可し、前記クレジットの値が前記所定の値に達している場合には、前記データパケットの送信を停止するように制御することを特徴とする請求項1〜4のいずれか一つに記載のデータパケット送受信システム。
  7. 送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信するデータパケット送受信方法であって、
    前記受信装置は、
    前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信工程と、
    前記送信装置は、
    前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとしてクレジットカウンタに記憶するクレジット記憶工程と、
    前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットに加算して格納するクレジット加算工程と、
    前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットから減算して格納するクレジット減算工程と、
    前記クレジットカウンタに記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御工程と、
    を含んだことを特徴とするデータパケット送受信方法。
  8. 送信バッファを備える送信装置から受信バッファを備える受信装置へデータパケットを送信する方法をコンピュータに実行させるデータパケット送受信プログラムであって、
    前記受信装置としてのコンピュータは、
    前記受信バッファに格納されているデータパケットが読み出された場合に、当該読み出されたデータパケットの容量を前記送信装置において特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信手順と、
    前記送信装置としてのコンピュータは、
    前記受信バッファの容量に対して現に格納されている全データパケットの総容量に応じた値をクレジットとしてクレジットカウンタに記憶するクレジット記憶手順と、
    前記送信バッファから前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットに加算して格納するクレジット加算手順と、
    前記受信装置から前記容量特定情報を受信した場合に、当該容量特定情報を用いて前記受信バッファから読み出されたデータパケットの容量を特定し、当該特定した容量に応じた値のクレジットを、前記クレジットカウンタに記憶されているクレジットから減算して格納するクレジット減算手順と、
    前記クレジットカウンタに記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御手順と、
    をコンピュータに実行させることを特徴とするデータパケット送受信プログラム。
  9. 送信装置から送信されるデータパケットを受信する受信装置であって、
    前記データパケットを格納する受信バッファと、
    前記受信バッファに格納されたデータパケットを読み出す出力手段と、
    前記受信バッファに格納されている前記データパケットが読み出された場合に、当該読み出されたデータパケットの容量を特定する際に用いられる容量特定情報を前記送信装置に送信する容量特定情報送信手段と、
    を備えたことを特徴とする受信装置。
  10. 前記容量特定情報送信手段は、前記容量特定情報として、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを前記送信装置に送信することを特徴とする請求項9に記載の受信装置。
  11. 受信バッファを備える受信装置へデータパケットを送信する送信装置であって、
    前記受信バッファに格納されている全データパケットの総容量に応じた値をクレジットとして記憶するクレジット記憶手段と、
    前記受信装置に前記データパケットが送信された場合に、当該送信されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットに加算するクレジット加算手段と、
    前記受信装置から受信した、前記受信バッファから読み出されたデータパケットの容量を特定する容量特定情報に基づいて、前記受信バッファから読み出されたデータパケットの容量に応じた値のクレジットを、前記クレジット記憶手段に記憶されているクレジットから減算するクレジット減算手段と、
    前記クレジット記憶手段に記憶されているクレジットの値に基づいて、前記データパケットの送信を許可または停止するように制御する送信制御手段と、
    を備えたことを特徴とする送信装置。
JP2008540825A 2006-10-24 2006-10-24 データパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラム Expired - Fee Related JP5056762B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/321114 WO2008050394A1 (fr) 2006-10-24 2006-10-24 Système de transmission/réception de paquets de données, procédé de transmission/réception de paquets de données et programme de transmission/réception de paquets de données

Publications (2)

Publication Number Publication Date
JPWO2008050394A1 true JPWO2008050394A1 (ja) 2010-02-25
JP5056762B2 JP5056762B2 (ja) 2012-10-24

Family

ID=39324209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008540825A Expired - Fee Related JP5056762B2 (ja) 2006-10-24 2006-10-24 データパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラム

Country Status (6)

Country Link
US (1) US8631152B2 (ja)
EP (1) EP2077504B1 (ja)
JP (1) JP5056762B2 (ja)
KR (1) KR101227770B1 (ja)
CN (1) CN101535970B (ja)
WO (1) WO2008050394A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2198557B1 (en) 2007-09-13 2014-04-23 Accedian Networks Inc. System for testing ethernet paths and links without impacting non-test traffic
US9137160B2 (en) 2009-01-29 2015-09-15 Qualcomm Incorporated Method and apparatus for accomodating a receiver buffer to prevent data overflow
US8472437B2 (en) * 2010-02-15 2013-06-25 Texas Instruments Incorporated Wireless chip-to-chip switching
CN102566515B (zh) * 2010-12-09 2013-07-24 沈阳高精数控技术有限公司 一种用于总线式数控系统的数据互操作方法
JP6139010B2 (ja) 2013-03-15 2017-05-31 インテル・コーポレーション デバイス
US9166918B1 (en) * 2013-09-30 2015-10-20 Juniper Networks, Inc. Methods and apparatus for scheduling transmission of data in a network
JP6331787B2 (ja) * 2014-07-08 2018-05-30 富士通株式会社 データ送受信システム、データ送信装置およびデータ送受信システムの制御方法
CN104503935B (zh) * 2014-12-02 2018-07-24 天津国芯科技有限公司 一种可精确控制时序的iic控制装置和控制方法
US10163508B2 (en) 2016-02-26 2018-12-25 Intel Corporation Supporting multiple memory types in a memory slot
US10567285B2 (en) 2017-03-17 2020-02-18 Citrix Systems, Inc. Increasing QoS throughput and efficiency through lazy byte batching
US11381509B2 (en) 2017-03-17 2022-07-05 Citrix Systems, Inc. Increased packet scheduling throughput and efficiency using úber batching

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09135270A (ja) * 1995-11-08 1997-05-20 Nippon Telegr & Teleph Corp <Ntt> 通信システム
JP2002324043A (ja) * 2001-04-25 2002-11-08 Nec Computertechno Ltd データ転送方法およびデータ転送システム
JP2004102378A (ja) * 2002-09-05 2004-04-02 Seiko Epson Corp 印刷効率を高くしたプリンタ
JP2006054750A (ja) * 2004-08-13 2006-02-23 Nec Corp フロー制御方式
JP2006189937A (ja) * 2004-12-28 2006-07-20 Toshiba Corp 受信装置、送受信装置、受信方法及び送受信方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0821969B2 (ja) * 1988-09-13 1996-03-04 日本電気株式会社 伝送制御方法
US5748613A (en) * 1996-03-29 1998-05-05 Hewlett-Packard Company Communication pacing method
US5825748A (en) * 1997-04-08 1998-10-20 International Business Machines Corporation Credit-based flow control checking and correction system
JPH11110315A (ja) 1997-07-31 1999-04-23 Matsushita Electric Ind Co Ltd 通信装置
US6046979A (en) * 1998-05-04 2000-04-04 Cabletron Systems, Inc. Method and apparatus for controlling the flow of variable-length packets through a multiport switch
US6337865B1 (en) * 1998-09-23 2002-01-08 Maxtor Corporation Fair buffer credit distribution flow control
JP2001094613A (ja) 1999-09-21 2001-04-06 Canon Inc 通信制御装置、方法および記録媒体
US7165094B2 (en) 2001-03-09 2007-01-16 Sonics, Inc. Communications system and method with non-blocking shared interface
WO2005008978A1 (ja) * 2003-07-18 2005-01-27 Fujitsu Limited 送信主導型フロー制御装置
US20050063308A1 (en) * 2003-09-24 2005-03-24 Wise Jeffrey L. Method of transmitter oriented link flow control
US7480730B2 (en) * 2004-04-08 2009-01-20 Nortel Networks Limited Credit recovery in a credit based flow control system
US20060050639A1 (en) * 2004-09-03 2006-03-09 David Stuart Credit-based method and apparatus for controlling data communications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09135270A (ja) * 1995-11-08 1997-05-20 Nippon Telegr & Teleph Corp <Ntt> 通信システム
JP2002324043A (ja) * 2001-04-25 2002-11-08 Nec Computertechno Ltd データ転送方法およびデータ転送システム
JP2004102378A (ja) * 2002-09-05 2004-04-02 Seiko Epson Corp 印刷効率を高くしたプリンタ
JP2006054750A (ja) * 2004-08-13 2006-02-23 Nec Corp フロー制御方式
JP2006189937A (ja) * 2004-12-28 2006-07-20 Toshiba Corp 受信装置、送受信装置、受信方法及び送受信方法

Also Published As

Publication number Publication date
US20090207850A1 (en) 2009-08-20
WO2008050394A1 (fr) 2008-05-02
CN101535970A (zh) 2009-09-16
EP2077504B1 (en) 2013-03-13
EP2077504A1 (en) 2009-07-08
KR101227770B1 (ko) 2013-01-29
KR20090042985A (ko) 2009-05-04
CN101535970B (zh) 2011-05-04
EP2077504A4 (en) 2010-03-24
US8631152B2 (en) 2014-01-14
JP5056762B2 (ja) 2012-10-24

Similar Documents

Publication Publication Date Title
JP5056762B2 (ja) データパケット送受信システム、データパケット送受信方法およびデータパケット送受信プログラム
US5943479A (en) Method for reducing the rate of interrupts in a high speed I/O controller
CA2329542C (en) System and method for scheduling message transmission and processing in a digital data network
CA2329357C (en) System and method for regulating message flow in a digital data network
US8601181B2 (en) System and method for read data buffering wherein an arbitration policy determines whether internal or external buffers are given preference
EP0617368A1 (en) Arbitration process for controlling data flow through an I/O controller
CN112559436B (zh) 一种rdma通信设备的上下文访问方法及系统
CN112953848A (zh) 一种基于严格优先级的流量监管方法、系统及设备
CN101702714B (zh) 计算机系统中的基于信用的流动控制的方法、系统和设备
EP2406720B1 (en) Method for controlling a data transfer on a serial transmission data transfer bus
CN115378879A (zh) 数据控制方法及相关装置
US20070192511A1 (en) Device and method for transmitting data
CN112770356B (zh) 数据传输方法和电子设备
CN111966736B (zh) 一种高吞吐低延时大容量Flume通道及其传输方法
CN112713939B (zh) 一种数据传输方法及装置
CN114546924B (zh) 一种基于axi的双向数据传输方法、系统、存储介质及设备
CN102831077A (zh) 一种节约缓存资源的流量管理装置和方法
JP2004056376A (ja) 半導体装置及びデータ転送制御方法
JP4015304B2 (ja) データ処理装置
CN117749729A (zh) 一种数据传输方法、装置及电子设备
CN102833162A (zh) 缓冲区数的调整方法和装置
CN116414572A (zh) 流量管理装置、报文缓存方法、芯片及网络设备
Zhang et al. Data timing schemes for software radio systems
CN117176834A (zh) 一种报文发送、接收方法、网卡以及计算设备
JPH0766817A (ja) スタッカブルハブ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111021

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120606

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120614

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120703

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120716

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees