JP2943453B2 - 通信相手の送信バッファに対応した応答返却のタイミング計算システム - Google Patents

通信相手の送信バッファに対応した応答返却のタイミング計算システム

Info

Publication number
JP2943453B2
JP2943453B2 JP3266467A JP26646791A JP2943453B2 JP 2943453 B2 JP2943453 B2 JP 2943453B2 JP 3266467 A JP3266467 A JP 3266467A JP 26646791 A JP26646791 A JP 26646791A JP 2943453 B2 JP2943453 B2 JP 2943453B2
Authority
JP
Japan
Prior art keywords
response
ack
host computer
data
transmission buffer
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.)
Expired - Fee Related
Application number
JP3266467A
Other languages
English (en)
Other versions
JPH05110627A (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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP3266467A priority Critical patent/JP2943453B2/ja
Publication of JPH05110627A publication Critical patent/JPH05110627A/ja
Application granted granted Critical
Publication of JP2943453B2 publication Critical patent/JP2943453B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ受信時に受信し
たデータに対する応答を送信するタイミングを決定する
場合における通信管理システムに関する。
【0002】
【従来の技術】従来、相手ホストから受信したデータに
対して該相手ホストに送信する応答(以下ACK)は、
受信データがコネクション切断要求であった時や
信データにすぐにACKを返却するように指示があった
に送信していたさらに、以前のデータ受信時から
定時間経過した時点や、自ホスト内のコネクションエン
ドポイントにある受信バッファに蓄積した受信データが
該受信バッファの所定の割合以上(例えば35%以上
になった場合に相手ホストに対してACKを送信してい
た。
【0003】ところで受信データ1つ1つに対してAC
Kを返却する場合、データの大きさにかかわらず、同様
にオーバヘッドがかかってしまう。そこで、受信データ
がそんなに大きくない場合は、ある程度データが受信さ
れるまでACKを送信するのを待ち、まとめてACKを
返却することでオーバヘッドを少なくしていた。
【0004】しかし、相手ホストのコネクションエンド
ポイントにある送信バッファの大きさを知る手段を持た
なかったため、相手ホストの送信バッファの大きさが自
ホストの受信バッファと同じサイズであると仮定して動
作していた。
【0005】
【発明が解決しようとする課題】このように相手ホスト
からある程度データを受信した時点でまとめてACKを
返却する場合、相手ホストの送信バッファの大きさが自
ホストの受信バッファと同じサイズであると仮定してし
まうと、実際には相手ホストの送信バッファに比べて自
ホストの受信バッファが大きかった場合に、以下のよう
な問題が発生してしまう
【0006】すなわち、相手ホストからの送信におい
て、相手ホストの送信バッファ分のデータが1度に送信
された場合、自ホスト側では受信バッファの大きさに比
べて受信データが少ないために受信データに対するAC
Kを遅らせることになる。その結果、相手ホストでは送
信データに対するACKが帰ってこないため、送信済み
のデータを送信バッファ中に保持しておくことになり、
自ホスト側がタイムアウトでのACKを相手ホストに送
信してくるまでユーザ空間からのデータを受け取れなく
なる。つまり、結果的にレスポンスが悪くなる可能性が
考えられる。
【0007】
【課題を解決するための手段】そこで、最初のACK返
却時に、ACK番号をコネクションエンドポイントに格
するこのACK番号は、平成2年7月に共立出版株
式会社から出版された『bit別冊 TCP/IPによ
るネットワーク構築 −原理・プロトコル・アーキテク
チャ−』の第111頁第2行目〜3行目の記載「確認応
答番号(ACKNOWLEDGEMENT NUMBER)フィールドは始点が受
信した最上位バイトの位置を識別する。」からも明らか
なように、相手ホストから送信されたデータをどこまで
受信したかを相手ホストへ知らせるためのものである。
さらに、次にACKを返却する時に前回のACK番号と
の差をコネクションエンドポイントに格納するそし
て、この差の最大値を相手の送信バッファの大きさであ
ると推測し、ACK返却のタイミングを決定する際の
準とする。
【0008】前回のACK番号を格納する場所にはコネ
クションエンドポイントを作成する時にACK番号の初
期値を格納しておく。この初期値はACK返却時点でそ
の時点のACK番号に書き換えられる。
【0009】第1の応答返却のタイミング計算システム
ではACK番号の差の最大値を格納する場所には、最初
のデータを受信した時点でそのデータ長が格納され、2
回目以降のデータを受信した場合、その値を基準とし
て、ACKのタイミングを計算する。
【0010】最初のACKはACK番号の差の最大値を
格納する場所に入っている値が実際の相手の送信バッフ
ァの大きさと同じか小さいため、すぐ返却されることに
なるが、何度もACKを返却しているうち、ACK番号
の差の最大値は更新され、相手の送信バッファの大きさ
と同じぐらいになるので、ACKを返却するタイミング
も相手の送信バッファに合ったタイミングになる。
【0011】また、第2の応答返却のタイミング計算シ
ステムでは、ACK番号の差の最大値を格納する場所に
は、コネクションエンドポイントを作成する時に初期値
(多くの一般的なマシンで使用されている送信バッファ
大きさにする。)を格納しておき、最初のACKを返
却する場合には、ACK番号の差の最大値を格納する場
所に入っている初期値を基準として、ACKのタイミン
グを計算する。
【0012】相手の送信バッファが通常のマシンでの送
信バッファと同じ大きさならば、ACK番号の差はAC
K番号の差の最大値を格納する場所に格納した初期値を
越えないため、この値は変わらず、またこの値を基準に
ACKを返却する機能も正常に動作することになる。
【0013】相手の送信バッファが通常のマシンでの送
信バッファより大きい場合、最初のACKはACK番号
の差の最大値を格納する場所に入っている初期値が実際
の相手の送信バッファの大きさより小さいため、早く返
却されることになるが、最初のACKを返却する時点で
ACK番号が送信されてきたデータの大きさに合わせて
進み、前回とのACK番号の差も増えるため、ACK番
号の差の最大値は更新され、ACKを返却するタイミン
グも相手の送信バッファに合ったタイミングになる。
【0014】つまり、本発明によれば、送信バッファの
大きさの違う複数のマシンと通信する場合にそれぞれの
マシンに合ったタイミングでACKを送信することがで
きるようになる。
【0015】
【0016】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0017】図1は、本発明の一実施例の通信相手の送
信バッファに対応したACK返却のタイミング計算シス
テムが適用された計算機システムの構成を示すブロック
図である。
【0018】この計算機システムは、入力装置1000
と、ホストコンピュータ2000を含んでいる。
【0019】ホストコンピュータ2000は、コネクシ
ョンエンドポイント作成手段2001と、ACK送信判
断手段2002と、lastACK番号格納領域200
4と最大ACK番号差格納領域2005と受信バッファ
2006を持つコネクションエンドポイント2003
と、ACK情報格納手段2007と、データ受信手段3
001と、ACK送信手段3002を内含する通信制御
手段3000とを備えている。
【0020】図2は、自ホストと相手ホスト間で通信を
行う際の簡単なネットワーク構成図であり、本発明を実
施した計算機システムであるコネクションエンドポイン
ト4010を持つ自ホスト4001と、送信バッファが
通常の大きさであるコネクションエンドポイント402
0と送信バッファが通常より大きいコネクションエンド
ポイント4030を持つ相手ホスト4002とを備えて
いる。
【0021】図3は、ACK送信判断手段2002の処
理の流れを示すフローチャートである。
【0022】以下、このように構成された本実施例の通
信相手の送信バッファに対応したACK返却のタイミン
グ計算システムの動作について順を追って説明する。
【0023】図1から図3を参照すると、本計算機シス
テムにおいて他ホストと通信を行う場合、相手ホストの
コネクションエンドポイント4020または自ホスト4
001からコネクション確立要求に応答して、コネクシ
ョンエンドポイント作成手段2001は、コネクション
エンドポイント4010を作成する。
【0024】相手ホストのコネクションエンドポイント
4020からデータを受信した場合、データ受信手段3
001は、最初のデータを受信した場合のみ(ステップ
1)受信したデータの長さをACK情報格納手段200
7に通知し(ステップ2)、ACK情報格納手段200
7は受信データのシーケンス番号をlastACK番号
格納場所2004に格納する(ステップ6)。また、デ
ータ受信手段3001は、コネクションエンドポイント
にあるデータ受信バッファに受信したデータを格納し、
データを受信したことをACK送信判断手段2002に
知らせる。ACK送信判断手段2002は、ACKパケ
ットの番号からlastACK番号(最初のデータを受
信した場合は受信データのシーケンス番号になってい
る)を引く(ステップ3)。この値が最大ACK番号差
格納場所2005に格納されている値よりも大きいか否
か、ACK送信判断手段2002は判断する(ステップ
4)。最初のデータを受信した場合は判断基準がないた
めACK送信判断手段2002はACK情報格納手段
007に最初のデータの長さを通知し、最大ACK番号
差格納場所2005には最初のデータの長さが入ること
になる。このステップで、計算値が格納値よりも大きい
場合のみ、ACK送信判断手段2002は、ACK情報
格納手段2007にACKパケットの番号からlast
ACK番号を引いた値を通知し(ステップ5)、ACK
情報格納手段2007はその値を最大ACK差格納場所
2005に格納する(ステップ6)。また、ACKパケ
ットの番号からlastACK番号を引いた値が最大A
CK番号差格納場所2005に格納された値の所定の割
合(例えば35%より大きいか否かが判定される(ス
テップ7)。このステップで大きいと判定される場合の
みACK番号をlastACK番号格納場所2004に
格納してACK送信手段3002に通知し、ACK送信
手段3002はACKを相手ホストのコネクションエン
ドポイント4020に送信する。
【0025】また、送信バッファが通常より大きな相手
ホストのエンドポイント4030からデータが送信され
る場合、送信データ長は送信バッファの大きさに比例し
て長くなることができる。このデータを受信した自ホス
トのデータ受信手段3001は、受信バッファ2006
に受信したデータを格納してACK送信判断手段200
2にデータを受信したことを通知する。
【0026】ACK送信判断手段2002は、受信した
データのACK番号を計算してlastACK番号との
差が最大ACK番号差格納場所2006に格納されてい
る値より大きいためにACK送信手段3002に通知し
てACKを送信させると同時にACK情報格納手段20
07に通知し、最大ACK番号差格納場所2006にそ
の差を格納させる。格納されたこの値は相手ホストのコ
ネクションエンドポイント4030の送信バッファの大
きさに合わせて大きくなっており、2回目以降の受信で
はその値を基準にしてACKを送信するタイミングを計
算するため、自ホスト4001は相手ホスト4002の
コネクションエンドポイント4030の送信バッファに
合わせたタイミングでACKを送信することができるこ
とになる。
【0027】また、他の実施例としては、最大ACK番
号差格納場所2006にあらかじめ初期値を格納してお
くことが、上述した実施例と異なっている。この場合、
最初のデータを受信した場合のACK送信判断手段20
02の動作が変わることになる。上述した実施例と同様
に最初のデータを受信したことをデータ受信手段300
1から通知されたACK送信判断手段2002は、AC
Kパケットの番号からlastACK番号(最初のデー
タを受信した場合は受信データのシーケンス番号になっ
ている)を引いた値が最大ACK番号差格納場所200
5にあらかじめ格納されている値よりも大きい場合のみ
ACK情報格納手段2007にACKパケットの番号か
らlastACK番号を引いた値を通知し、ACK情報
格納手段2007はその値を最大ACK差格納場所20
05に格納する。
【0028】相手ホスト4002のコネクションエンド
ポイントから送信されるデータの大きさは、常にある送
信バッファの大きさと一致するわけではないので、より
非常に小さなデータが送信されてきた場合、上述した実
施例では相手の送信バッファの大きさが非常に小さいも
のと判断し、ACKを送信するための基準にしてしまう
ため、通常のマシンでのACK送信回数よりも余分にA
CKを送信してしまうことになり、余分なACK送信の
ためのオーバヘッドがかかることになって結果的に通信
自体の速度が落ちてしまうことになる。
【0029】そこで、最大ACK番号差格納場所200
5にあらかじめ格納する初期値を、通常の受信バッファ
を持つ相手ホストのコネクションエンドポイント402
0の受信バッファの値にしておけば相手ホストにある送
信バッファの大きさより非常に小さなデータが送信され
てきた場合においても、通常のマシンと変わらないタイ
ミングでACKが送信されることになる。
【0030】また、最大ACK番号差格納場所2005
にあらかじめ格納する初期値を0にすれば、上述した実
施例と同じタイミングでACK返却の動作をすることに
なる。
【0031】
【発明の効果】本発明においては、受信側のコネクショ
ンエンドポイント中にACKを返却するたびに計算され
る前回のACK番号と現在のACK番号の差(以下AC
K番号差と呼ぶ)の最大値を記憶し、これを相手送信バ
ッファサイズの推定値としている。そして、ACKを返
却するタイミングはこの値を基準に計算するようにして
いる。送信側の送信バッファが受信側より小さい場合、
送信側(以下SmallMと呼ぶ)は自分の送信バッフ
ァ以上にデータを送信してくることはないので、ACK
番号差の最大値はSmallMの送信バッファの大きさ
を反映し、受信側はSmallMの送信バッファの大き
さに合わせたタイミングでACKを返却することができ
る。また、超特大の送信バッファを持つマシン同士の通
信の場合は、ACK番号差もやがて大きくなり最大値に
反映されていく。
【0032】このように、通信相手の送信バッファの大
きさに係わらず、通信相手の送信バッファの大きさに対
応した最適タイミングでACKを返却することができ
るようになる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す図である。
【図2】自ホストコンピュータと相手ホストコンピュー
タとの間で通信を行う際のネットワークを示す図であ
る。
【図3】図1で示されるACK送信判断手段2002の
処理の流れを示す図である。
【符号の説明】
1000 入力装置 2000 ホストコンピュータ 2001 コネクションエンドポイント作成手段 2002 ACK送信判断手段 2003 コネクションエンドポイント 2004 lastACK番号格納場所 2005 最大ACK番号差格納場所 2006 受信バッファ 2007 ACK情報格納手段 3000 通信制御手段 3001 データ受信手段 3002 ACK送信手段 4001 自ホスト 4010 本発明を実施した計算機システムであるコ
ネクションエンドポイント 4002 相手ホスト 4020 送信バッファが通常の大きさであるコネク
ションエンドポイント 4030 送信バッファが通常より大きいコネクショ
ンエンドポイント

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 相手ホストコンピュータから送信された
    データを格納する受信バッファと、該相手ホストコンピ
    ュータへ送信する応答番号と前回送信した応答番号との
    差の最大値と、該前回送信した応答番号とを含むコネク
    ションエンドポイントを備えたホストコンピュータにお
    いて、 前記ホストコンピュータが、 自ホストコンピュータまたは他ホストコンピュータから
    のコネクション確立要求に応答して、前記コネクション
    エンドポイントを作成するコネクションエンドポイント
    作成手段と、 コネクションを確立した相手ホストコンピュータから送
    信されたデータを受信して前記コネクションエンドポイ
    ント内の前記受信バッファに格納するデータ受信手段
    と、前記相手ホストコンピュータから 最初に受信したデータ
    の大きさを初期値としてこの初期値を前記相手ホスト
    ンピュータの送信バッファの大きさとして認識し、該初
    期値に基づいて該相手ホストコンピュータへ応答を送信
    するタイミングを決定するとともに、最初の応答を送信
    した後、2度目の受信以降は次の応答を返却する時に送
    信する応答番号と前回送信した応答番号との差、すなわ
    ち前回応答番号を送信した時点から現在までに受信した
    データの大きさを計算し、その値と前記初期値のうち大
    きい方を相手ホストコンピュータの送信バッファの大
    きさとして認識し直し、その値に基づいて該相手ホスト
    コンピュータへ応答を送信するタイミングを決定する
    答送信判断手段と、前記相手ホストコンピュータに対して 応答を送信する場
    合に応答の情報を前記コネクションエンドポイントに
    格納する応答情報格納手段とを含むことを特徴とする通
    信相手の送信バッファに対応した応答返却のタイミング
    計算システム。
  2. 【請求項2】 前記応答送信判断手段が、 前記相手ホストコンピュータから 受信したデータに対し
    応答を返却する際、前回送信した応答号と今回送信
    する応答番号との差と、前記コネクションエンドポイン
    トに予め設定した初期値を比較して値の大きい方に基
    づいて該相手ホストコンピュータへ応答を送信するタイ
    ミングを決定することを特徴とする請求項1記載の通信
    相手の送信バッファに対応した応答返却のタイミング計
    算システム。
JP3266467A 1991-10-15 1991-10-15 通信相手の送信バッファに対応した応答返却のタイミング計算システム Expired - Fee Related JP2943453B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3266467A JP2943453B2 (ja) 1991-10-15 1991-10-15 通信相手の送信バッファに対応した応答返却のタイミング計算システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3266467A JP2943453B2 (ja) 1991-10-15 1991-10-15 通信相手の送信バッファに対応した応答返却のタイミング計算システム

Publications (2)

Publication Number Publication Date
JPH05110627A JPH05110627A (ja) 1993-04-30
JP2943453B2 true JP2943453B2 (ja) 1999-08-30

Family

ID=17431337

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3266467A Expired - Fee Related JP2943453B2 (ja) 1991-10-15 1991-10-15 通信相手の送信バッファに対応した応答返却のタイミング計算システム

Country Status (1)

Country Link
JP (1) JP2943453B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5532775B2 (ja) * 2009-09-10 2014-06-25 株式会社リコー 通信システム及び再送バッファ容量の測定装置
JP2014027444A (ja) * 2012-07-26 2014-02-06 Nippon Telegraph & Telephone West Corp 送信バッファサイズ推定装置、送信バッファサイズ推定方法及び送信バッファサイズ推定プログラム

Also Published As

Publication number Publication date
JPH05110627A (ja) 1993-04-30

Similar Documents

Publication Publication Date Title
US5664091A (en) Method and system for a voiding unnecessary retransmissions using a selective rejection data link protocol
EP3352431B1 (en) Network load balance processing system, method, and apparatus
CN100403716C (zh) 服务器设备及其控制方法和使用该服务器建立连接的方法
Tomlinson Selecting sequence numbers
KR101430032B1 (ko) 물리적 전송 매체의 인터럽션 경우에 있어서 tcp 데이터 전송 프로세스를 향상시키는 방법
JP2002335278A (ja) 無線データ通信網切替装置と無線データ通信網切替処理用プログラム
CN101547210A (zh) 一种tcp连接的处理方法和装置
EP2176989B1 (en) Method of preventing tcp-based denial-of-service attacks on mobile devices
US6947435B1 (en) Radio communication system and apparatus, communication method and program recording medium therefor
CN104683259A (zh) Tcp拥塞控制方法及装置
JPH087730B2 (ja) 計算機システム
JP2000259525A (ja) 通信プロトコルにおける応答返却方法および通信制御装置
JP3439320B2 (ja) データ通信方法、データ通信装置、およびデータ通信プログラム記録媒体
CN111654505B (zh) Udp数据包可靠传输方法、系统、计算机设备及存储介质
JP2943453B2 (ja) 通信相手の送信バッファに対応した応答返却のタイミング計算システム
US6834305B1 (en) System and method for automatically connecting local and remote data processing systems
CN110290552B (zh) 缓存深度的测量方法和装置、存储介质、电子装置
JP2000224260A (ja) 通信制御装置
JP3771453B2 (ja) Tcp中継装置及びシーケンス番号変換方法
JP2000349856A (ja) 通信装置及び通信方法並びに記憶媒体
US7715357B2 (en) Radio LAN system using communication apparatus, and method for setting operation mode
JP3425839B2 (ja) 通信システム
KR101933175B1 (ko) 서버와 클라이언트간 통신을 중개하는 중개장치
KR0169037B1 (ko) 전기 통신 관리망의 에이전트에서의 메시지 제어 방법
JP3070749B2 (ja) ヘツダ予測方式及び通信制御処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990525

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

Free format text: PAYMENT UNTIL: 20080625

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090625

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100625

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100625

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110625

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees