JPH06120986A - バッファ管理方式 - Google Patents

バッファ管理方式

Info

Publication number
JPH06120986A
JPH06120986A JP4264566A JP26456692A JPH06120986A JP H06120986 A JPH06120986 A JP H06120986A JP 4264566 A JP4264566 A JP 4264566A JP 26456692 A JP26456692 A JP 26456692A JP H06120986 A JPH06120986 A JP H06120986A
Authority
JP
Japan
Prior art keywords
data
buffer
transmission
reception
user space
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.)
Pending
Application number
JP4264566A
Other languages
English (en)
Inventor
Makoto Kitagawa
誠 北川
Hidemitsu Higuchi
秀光 樋口
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP4264566A priority Critical patent/JPH06120986A/ja
Publication of JPH06120986A publication Critical patent/JPH06120986A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【目的】送達確認型のデータ転送で生じる、送信側での
ACK待ち、受信側でのデータ待ち時間を減少してデー
タ転送を効率的に行なうこと。 【構成】複数の送信バッファと受信バッファをキューに
繋いで管理し、実際の送受信には、カレントバッファポ
インタによって示されたバッファを用い、ユーザ空間と
バッファ間でのデータコピーをCPUの空き時間内に行
なう。 【効果】データ受信待ち、ACK待ち時間等のCPU空
き時間に送受信バッファとユーザ空間との間でのデータ
コピーを行なって、データ送受信時間を短縮すると共
に、待ち時間を有効に利用して、データ転送を効率的に
行なうことができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ローカルエリアネット
ワーク上で高信頼のプロトコルを用いて通信を行なう場
合に、データ受信側でのデータ受信待ち時間、及びデー
タ送信側でのACK(送達確認)待ち時間を低減して、
効率的に、且つ高速なデータ転送を可能にするためのバ
ッファ管理方式に関するものである。
【0002】
【従来の技術】図1に従来の通信システムの構成、図2
に従来の通信システムにおける送受信動作シーケンスを
示す。
【0003】図1で、11はワークステーション、パー
ソナルコンピュータ等の情報機器であり、LAN17に
接続されて、他の情報機器とデータ転送を行う。ユーザ
アプリケーションプログラム12は送達確認型のプロト
コル制御を行うプロトコル制御部13に対して、ユーザ
空間の送信データエリア18内にあるデータの送信又は
受信データエリア19へのデータ受信要求を発行して、
データの送受信を行うプログラムであり、ユーザ空間で
動作する。プロトコル制御部13は送信バッファ14及
び受信バッファ15を使って送達確認型のプロトコルに
従ったデータ送受信制御を行い、システム空間で動作す
る。ネットワークインタフェース制御部16は、LAN
17との入出力を制御する。
【0004】データ送信時、プロトコル制御部13は、
受信側で正常にデータが受信されたことを示すACK
(送達確認)を受信するまで送信バッファ14内に送信
データを保持する。送信バッファ14は、通常ある一定
の容量に制限される。従って、送信バッファ14の容量
を超えるデータを転送する場合には、図2のシーケンス
に示すようにユーザ空間から送信バッファ14に満杯に
データをコピーして21送信処理を行ない22、このデ
ータに対するACKを受信して24、送信バッファを解
放29してから次のデータを送信バッファ14にコピー
21して送信するという処理を繰り返す。ここでACK
待ち時間23は、受信側での処理オーバヘッドである。
【0005】受信側ではネットワークインタフェース制
御部16がLAN17からのデータを受信すると、割込
みによってプロトコル制御部13に受信を報告し、プロ
トコル制御部13が受信したデータセグメントに対して
プロトコル処理を行なった後、データを受信バッファ1
5に格納してユーザアプリケーションプログラム12に
データ受信を通知する。この一連の受信処理が行なわれ
た26後、受信バッファ15中に存在するデータをユー
ザ空間にコピーして27、受信バッファを解放し28、
バッファに空きができた後にACKの送信が行なわれる
210。ここで、データ待ち時間25は送信側での処理
に要する時間である。
【0006】従来のシステムでは、送信処理中における
データコピー(21、27)に要する時間の割合が大き
く、データ転送の高速化において一つの問題となってい
た。
【0007】
【発明が解決しようとする課題】図2に示したシーケン
スで、ACK待ち23に要する時間は、データ受信側で
のデータ受信26、データコピー27、受信バッファ解
放28およびACK送信210に要する時間である。ま
た、データ待ち25に要する時間は、送信側でのACK
受信処理24、送信バッファ解放処理29、データコピ
ー21、及びデータ送信処理22に要する時間である。
これらのうちデータコピー21、27に要する時間が従
来のシステムでは比較的大きかった。
【0008】このように、従来の方式では、データコピ
ーに要する時間が大きいと、送受信処理に要する時間が
大きくなり、送信側でのACK待ち、受信側でのデータ
待ち時間が大きくなるといった問題があった。これらの
待ち時間を減少してデータ転送を効率的に行なうことが
本発明で解決しようとする課題である。
【0009】
【課題を解決するための手段】前記課題を解決するた
め、本発明では、ユーザ空間から送信バッファにデータ
をコピーする場合に、複数の送信バッファを使用するこ
とを可能とし、ACK待ち時間の間にデータをバッファ
にコピーしてこのバッファをキューに入れておき、実際
に送信プロトコル処理を開始するときにはポインタ操作
によって、次の送信バッファに切り換えてデータ送信を
開始できるようにした。また、複数の受信バッファの使
用を可能とし、データ受信時にはユーザ空間にデータを
コピーする前に現在の受信バッファをキューに入れ、新
たな受信バッファを用意して先にACKの送信を行なう
ようにした。
【0010】
【作用】本発明によれば、送信すべきデータが一つのバ
ッファに収まらないときには、システムから新たにバッ
ファを取得してCPU空き時間内に前もってデータをコ
ピーしてバッファをキューに入れておき、相手からのA
CKを受信したときにポインタを操作するだけでバッフ
ァの解放と次のデータの送信を直ちに開始できるため、
送信処理が高速になる。また、空き時間にデータのコピ
ーを行なうため、CPUを有効に利用できる。一方、受
信側でデータを受信した場合には、データの入ったバッ
ファのポインタを操作してキューに入れ、直ちにACK
送信処理を開始できるため、受信処理が高速になる。ま
た、キューに入れられたバッファ内のデータをCPU空
き時間内にユーザ空間にコピーすることによってCPU
を有効に利用できる。
【0011】
【実施例】図3に本発明の一実施例の構成を示す。31
はワークステーション、パーソナルコンピュータ等の情
報機器であり、LAN32に接続され、他の情報機器と
データの送受信を行なう。ユーザアプリケーションプロ
グラム33は送達確認型のプロトコル制御を行うプロト
コル制御部34に対して、ユーザ空間の送信データエリ
ア313内にあるデータの送信又は受信データエリア3
14へのデータ受信要求を発行して、データの送受信を
行うプログラムであり、ユーザ空間で動作する。プロト
コル制御部34及びバッファ管理部37はシステム空間
で動作する。プロトコル制御部34はカレント送信バッ
ファポインタ35で示された送信バッファ及びカレント
受信バッファポインタ36で示された受信バッファを使
って送達確認型のプロトコルに従った送受信制御を行な
う。バッファ管理部37は、送信バッファ38、送信バ
ッファキュー39、及び受信バッファ310、受信バッ
ファキュー311を管理し、ユーザアプリケーションプ
ログラム33とプロトコル制御部34間のデータ授受を
制御する。ネットワークインタフェース制御部312
は、LAN32との入出力を制御する。
【0012】次に、バッファ管理部の動作について図4
及び図5を用いて説明する。
【0013】図4は、データ送信時におけるバッファ管
理部37の動作を説明したフローである。送信バッファ
キュー39は初め空の状態でアプリケーションプログラ
ム33からの送信要求があると41、システムから送信
バッファ38を獲得して送信バッファキュー39に入
れ、カレント送信バッファポインタ35にこのバッファ
の先頭アドレスをセットする414。次に、バッファ管
理部37は送信バッファキュー39の最後に繋がれたバ
ッファの内容を確認する42。このバッファに空きがあ
ればデータをユーザ空間の送信データエリア313から
コピーし43、このバッファがカレント送信バッファな
らば412、プロトコル制御部34を起動して、送信を
行なう44。ここで、送信データがまだデータエリア3
13にあれば45、送信バッファキュー39の最後に繋
がれた送信バッファの内容を再び確認し42、処理を繰
り返す。42でバッファに空きが無いときには、新たに
バッファをシステムから獲得して送信バッファキュー3
9に入れ46、この新しい送信バッファにデータエリア
313からデータをコピーする47。ここで、ACKの
受信があれば48、カレント送信バッファの内容を解放
し、空になった時点で送信バッファキュー39から捨て
る49。次に、送信バッファキュー39にバッファがあ
るかを調べ410、あればカレント送信ポインタ35の
内容を送信バッファキュー39の先頭のバッファへのポ
インタ値に更新し411、プロトコル制御部34を起動
して送信を行なう44。送信処理は、送信バッファキュ
ー39が空になった時点で終了する413。
【0014】図5は、データ受信時におけるバッファ管
理部37の動作を説明したフローである。受信バッファ
キュー311は初め空の状態で、カレント受信バッファ
ポインタ36にはカレント受信バッファ315の先頭を
示すポインタ値が格納されている。ユーザアプリケーシ
ョンプログラム33から受信要求があると51、受信バ
ッファキュー311にバッファがあるかを確認する5
2。受信バッファキュー311が空で、カレント受信バ
ッファポインタ36で示されたカレント受信バッファ3
15にデータがあれば53、カレント受信バッファ31
5からデータをユーザ空間の受信データエリア314に
コピーして54、受信処理を終了する55。ここで、受
信されたデータ量がユーザアプリケーションプログラム
33が受信したいデータ量よりも少なかったときには、
再びユーザアプリケーションプログラム33が受信要求
を発行する。52で受信バッファキュー311にバッフ
ァがあるときは、このバッファの内容をユーザ空間の受
信データエリア314にコピーして56、バッファを解
放し57、受信バッファキュー311から捨てる58。
次に、再び受信バッファキューの内容を確認して52処
理を繰り返す。受信バッファキュー311にバッファが
無くて、カレント受信バッファ315にもデータが無い
ときには(53でNoの状態)、データの受信を待っ
て、受信バッファキュー311の確認52から繰り返
す。LAN32からのデータ受信はネットワークインタ
フェース制御部312からの割込みによってプロトコル
制御部34に通知され59、プロトコル処理が行なわれ
た後カレント受信バッファ315にデータが格納される
510。この後、プロトコル制御部34はバッファ制御
部37にデータ受信を通知する。バッファ制御部37は
カレント受信バッファ315が満杯かどうかを確認し5
11、満杯ならば、受信バッファキュー311にこのバ
ッファを繋ぎ512、新たにバッファを獲得してカレン
ト受信バッファポインタ36の値を新たなカレント受信
バッファ315の先頭を示すポインタ値に更新して51
3、ACK送信処理を行なう514。もし511でカレ
ント受信バッファ315が満杯でなければ、直ちにAC
K送信処理を行なう514。ACK送信処理514が行
なわれた後では、受信バッファキュー311またはカレ
ント受信バッファポインタ36で示されたバッファにデ
ータが格納された状態となるので、52、53の処理待
ちが終り、データがユーザ空間の受信データエリア31
4にコピーされる。
【0015】
【発明の効果】図6に本発明を用いた場合のデータ転送
処理シーケンスを示す。送信側では、データを送信し6
1、次に送信すべきデータをユーザ空間から送信バッフ
ァにコピーし62、受信側からのACKを受信し63、
送信バッファを解放する64という処理を繰返す。ま
た、受信側では、データを受信し65、ACKを送信し
66、データを受信バッファからユーザ空間にコピーし
67、受信バッファを解放する68という処理を繰り返
す。
【0016】このように、本発明によれば、図2に示し
たような従来のシーケンスにおける送信側でのACK待
ち23時間、受信側でのデータ待ち25時間等のCPU
空き時間に送受信バッファとユーザ空間との間でのデー
タコピーを行なって、これらの待ち時間を無くすること
ができ、従来の待ち時間を有効に利用して、データ転送
を効率的に行なうことができる。
【図面の簡単な説明】
【図1】従来の通信システムの構成図である。
【図2】従来のデータ転送処理シーケンスを示す図であ
る。
【図3】本発明の構成例を示す図である。
【図4】データ送信時におけるバッファ管理部動作フロ
ー図である。
【図5】データ受信時におけるバッファ管理部動作フロ
ー図である。
【図6】本発明を用いた場合のデータ転送シーケンスを
示す図である。
【符号の説明】
31…ワークステーション、パーソナルコンピュータ等
の情報機器、 32…LAN(ローカルエリアネットワーク)、 33…ユーザアプリケーションプログラム、 34…プロトコル制御部、 35…カレント送信バッファポインタ、 36…カレント受信バッファポインタ、 37…バッファ管理部、 38…送信バッファ、 39…送信バッファキュー、 310…受信バッファ、 311…受信バッファキュー、 312…ネットワークインタフェース制御部、 313…送信データエリア、 314…受信データエリア。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】ローカルエリアネットワークを介して送達
    確認型の高信頼なネットワークプロトコルでデータ転送
    を行なう通信システムにおいて、ユーザ空間のデータ領
    域とシステム空間で管理される送受信データバッファと
    の間で送受信データをコピーする際に、バッファをキュ
    ーによって管理し、バッファ容量を超えるデータの送受
    信があったときには、新たにバッファを取得してこれに
    データを蓄えることを特徴とするバッファ管理方式。
  2. 【請求項2】請求項1において、CPUの空き時間に、
    ACK(送達確認)の受信による送信バッファの解放に
    先だって次の送信データを送信バッファにコピーするこ
    とを特徴とするバッファ管理方式。
  3. 【請求項3】請求項1において、データ受信時にはユー
    ザ空間へのデータコピーに先立ってACKを送信し、C
    PUの空き時間に、受信バッファ内のデータをユーザ空
    間にコピーすることを特徴とするバッファ管理方式。
JP4264566A 1992-10-02 1992-10-02 バッファ管理方式 Pending JPH06120986A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4264566A JPH06120986A (ja) 1992-10-02 1992-10-02 バッファ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4264566A JPH06120986A (ja) 1992-10-02 1992-10-02 バッファ管理方式

Publications (1)

Publication Number Publication Date
JPH06120986A true JPH06120986A (ja) 1994-04-28

Family

ID=17405071

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4264566A Pending JPH06120986A (ja) 1992-10-02 1992-10-02 バッファ管理方式

Country Status (1)

Country Link
JP (1) JPH06120986A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006197030A (ja) * 2005-01-11 2006-07-27 Matsushita Electric Works Ltd ゲートウェイ装置及び遠隔監視制御システム
WO2006090473A1 (ja) * 2005-02-25 2006-08-31 Fujitsu Limited データ送信制御方法、及びデータ送信制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006197030A (ja) * 2005-01-11 2006-07-27 Matsushita Electric Works Ltd ゲートウェイ装置及び遠隔監視制御システム
WO2006090473A1 (ja) * 2005-02-25 2006-08-31 Fujitsu Limited データ送信制御方法、及びデータ送信制御装置

Similar Documents

Publication Publication Date Title
US5604866A (en) Flow control system having a counter in transmitter for decrementing and incrementing based upon transmitting and received message size respectively for indicating free space in receiver
JPH114256A (ja) 複数ノードの非同期データ通信システム内で早期到達メッセージを処理する方法
JPH0771125B2 (ja) データ通信方法およびデータ通信システム
JPH06120986A (ja) バッファ管理方式
JPH117434A (ja) 複数ノードの非同期データ通信システム内で早期到達メッセージを処理するシステム
JP2943710B2 (ja) バッファのビジー制御方式
JP4151330B2 (ja) ネットワークファイルシステム用i/o制御方法
JPS62172840A (ja) デ−タの転送方式
JPH10154116A (ja) データ転送方法
JP3125857B2 (ja) アイドルパターン自動送信方式
JPH10222455A (ja) データ転送システム
JPH0589000A (ja) 実時間情報転送制御方式
JPH11232060A (ja) 印刷ジョブ管理方式
JPS6057453A (ja) デ−タ処理方式
JPH05108582A (ja) 計算機システム
KR920003278B1 (ko) Mhs와 pc 접속처리 장치간의 통신방법
JPS63145550A (ja) フアイル転送処理方式
JP2653233B2 (ja) スプールデータの転送方法
JPS6249461A (ja) 通信方式
JP2569086B2 (ja) データ伝送制御方式
KR930004100B1 (ko) 비동기 방식의 전이중 통신 프로토콜 구현방법
JPS6086643A (ja) ロ−カルエリア・ネツトワ−ク・システム
JPH02120956A (ja) 通信制御方式
JP2739794B2 (ja) 磁気テープ装置割当て管理方式
JPH03208131A (ja) オペレーティングシステムのタスク制御方式