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
Links
Landscapes
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Description
たデータに対する応答を送信するタイミングを決定する
場合における通信管理システムに関する。
対して該相手ホストに送信する応答(以下ACK)は、
該受信データがコネクション切断要求であった時や該受
信データにすぐにACKを返却するように指示があった
時に送信していた。さらに、以前のデータ受信時から一
定時間経過した時点や、自ホスト内のコネクションエン
ドポイントにある受信バッファに蓄積した受信データが
該受信バッファの所定の割合以上(例えば35%以上)
になった場合に相手ホストに対してACKを送信してい
た。
Kを返却する場合、データの大きさにかかわらず、同様
にオーバヘッドがかかってしまう。そこで、受信データ
がそんなに大きくない場合は、ある程度データが受信さ
れるまでACKを送信するのを待ち、まとめてACKを
返却することでオーバヘッドを少なくしていた。
ポイントにある送信バッファの大きさを知る手段を持た
なかったため、相手ホストの送信バッファの大きさが自
ホストの受信バッファと同じサイズであると仮定して動
作していた。
からある程度データを受信した時点でまとめてACKを
返却する場合、相手ホストの送信バッファの大きさが自
ホストの受信バッファと同じサイズであると仮定してし
まうと、実際には相手ホストの送信バッファに比べて自
ホストの受信バッファが大きかった場合に、以下のよう
な問題が発生してしまう。
て、相手ホストの送信バッファ分のデータが1度に送信
された場合、自ホスト側では受信バッファの大きさに比
べて受信データが少ないために受信データに対するAC
Kを遅らせることになる。その結果、相手ホストでは送
信データに対するACKが帰ってこないため、送信済み
のデータを送信バッファ中に保持しておくことになり、
自ホスト側がタイムアウトでのACKを相手ホストに送
信してくるまでユーザ空間からのデータを受け取れなく
なる。つまり、結果的にレスポンスが悪くなる可能性が
考えられる。
却時に、ACK番号をコネクションエンドポイントに格
納する。このACK番号は、平成2年7月に共立出版株
式会社から出版された『bit別冊 TCP/IPによ
るネットワーク構築 −原理・プロトコル・アーキテク
チャ−』の第111頁第2行目〜3行目の記載「確認応
答番号(ACKNOWLEDGEMENT NUMBER)フィールドは始点が受
信した最上位バイトの位置を識別する。」からも明らか
なように、相手ホストから送信されたデータをどこまで
受信したかを相手ホストへ知らせるためのものである。
さらに、次にACKを返却する時に前回のACK番号と
の差をコネクションエンドポイントに格納する。そし
て、この差の最大値を相手の送信バッファの大きさであ
ると推測し、ACK返却のタイミングを決定する際の基
準とする。
クションエンドポイントを作成する時にACK番号の初
期値を格納しておく。この初期値はACK返却時点でそ
の時点のACK番号に書き換えられる。
ではACK番号の差の最大値を格納する場所には、最初
のデータを受信した時点でそのデータ長が格納され、2
回目以降のデータを受信した場合、その値を基準とし
て、ACKのタイミングを計算する。
格納する場所に入っている値が実際の相手の送信バッフ
ァの大きさと同じか小さいため、すぐ返却されることに
なるが、何度もACKを返却しているうち、ACK番号
の差の最大値は更新され、相手の送信バッファの大きさ
と同じぐらいになるので、ACKを返却するタイミング
も相手の送信バッファに合ったタイミングになる。
ステムでは、ACK番号の差の最大値を格納する場所に
は、コネクションエンドポイントを作成する時に初期値
(多くの一般的なマシンで使用されている送信バッファ
の大きさにする。)を格納しておき、最初のACKを返
却する場合には、ACK番号の差の最大値を格納する場
所に入っている初期値を基準として、ACKのタイミン
グを計算する。
信バッファと同じ大きさならば、ACK番号の差はAC
K番号の差の最大値を格納する場所に格納した初期値を
越えないため、この値は変わらず、またこの値を基準に
ACKを返却する機能も正常に動作することになる。
信バッファより大きい場合、最初のACKはACK番号
の差の最大値を格納する場所に入っている初期値が実際
の相手の送信バッファの大きさより小さいため、早く返
却されることになるが、最初のACKを返却する時点で
ACK番号が送信されてきたデータの大きさに合わせて
進み、前回とのACK番号の差も増えるため、ACK番
号の差の最大値は更新され、ACKを返却するタイミン
グも相手の送信バッファに合ったタイミングになる。
大きさの違う複数のマシンと通信する場合にそれぞれの
マシンに合ったタイミングでACKを送信することがで
きるようになる。
説明する。
信バッファに対応したACK返却のタイミング計算シス
テムが適用された計算機システムの構成を示すブロック
図である。
と、ホストコンピュータ2000を含んでいる。
ョンエンドポイント作成手段2001と、ACK送信判
断手段2002と、lastACK番号格納領域200
4と最大ACK番号差格納領域2005と受信バッファ
2006を持つコネクションエンドポイント2003
と、ACK情報格納手段2007と、データ受信手段3
001と、ACK送信手段3002を内含する通信制御
手段3000とを備えている。
行う際の簡単なネットワーク構成図であり、本発明を実
施した計算機システムであるコネクションエンドポイン
ト4010を持つ自ホスト4001と、送信バッファが
通常の大きさであるコネクションエンドポイント402
0と送信バッファが通常より大きいコネクションエンド
ポイント4030を持つ相手ホスト4002とを備えて
いる。
理の流れを示すフローチャートである。
信相手の送信バッファに対応したACK返却のタイミン
グ計算システムの動作について順を追って説明する。
テムにおいて他ホストと通信を行う場合、相手ホストの
コネクションエンドポイント4020または自ホスト4
001からコネクション確立要求に応答して、コネクシ
ョンエンドポイント作成手段2001は、コネクション
エンドポイント4010を作成する。
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情報格納手段2
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に送信する。
ホストのエンドポイント4030からデータが送信され
る場合、送信データ長は送信バッファの大きさに比例し
て長くなることができる。このデータを受信した自ホス
トのデータ受信手段3001は、受信バッファ2006
に受信したデータを格納してACK送信判断手段200
2にデータを受信したことを通知する。
データのACK番号を計算してlastACK番号との
差が最大ACK番号差格納場所2006に格納されてい
る値より大きいためにACK送信手段3002に通知し
てACKを送信させると同時にACK情報格納手段20
07に通知し、最大ACK番号差格納場所2006にそ
の差を格納させる。格納されたこの値は相手ホストのコ
ネクションエンドポイント4030の送信バッファの大
きさに合わせて大きくなっており、2回目以降の受信で
はその値を基準にしてACKを送信するタイミングを計
算するため、自ホスト4001は相手ホスト4002の
コネクションエンドポイント4030の送信バッファに
合わせたタイミングでACKを送信することができるこ
とになる。
号差格納場所2006にあらかじめ初期値を格納してお
くことが、上述した実施例と異なっている。この場合、
最初のデータを受信した場合のACK送信判断手段20
02の動作が変わることになる。上述した実施例と同様
に最初のデータを受信したことをデータ受信手段300
1から通知されたACK送信判断手段2002は、AC
Kパケットの番号からlastACK番号(最初のデー
タを受信した場合は受信データのシーケンス番号になっ
ている)を引いた値が最大ACK番号差格納場所200
5にあらかじめ格納されている値よりも大きい場合のみ
ACK情報格納手段2007にACKパケットの番号か
らlastACK番号を引いた値を通知し、ACK情報
格納手段2007はその値を最大ACK差格納場所20
05に格納する。
ポイントから送信されるデータの大きさは、常にある送
信バッファの大きさと一致するわけではないので、より
非常に小さなデータが送信されてきた場合、上述した実
施例では相手の送信バッファの大きさが非常に小さいも
のと判断し、ACKを送信するための基準にしてしまう
ため、通常のマシンでのACK送信回数よりも余分にA
CKを送信してしまうことになり、余分なACK送信の
ためのオーバヘッドがかかることになって結果的に通信
自体の速度が落ちてしまうことになる。
5にあらかじめ格納する初期値を、通常の受信バッファ
を持つ相手ホストのコネクションエンドポイント402
0の受信バッファの値にしておけば相手ホストにある送
信バッファの大きさより非常に小さなデータが送信され
てきた場合においても、通常のマシンと変わらないタイ
ミングでACKが送信されることになる。
にあらかじめ格納する初期値を0にすれば、上述した実
施例と同じタイミングでACK返却の動作をすることに
なる。
ンエンドポイント中にACKを返却するたびに計算され
る前回のACK番号と現在のACK番号の差(以下AC
K番号差と呼ぶ)の最大値を記憶し、これを相手送信バ
ッファサイズの推定値としている。そして、ACKを返
却するタイミングはこの値を基準に計算するようにして
いる。送信側の送信バッファが受信側より小さい場合、
送信側(以下SmallMと呼ぶ)は自分の送信バッフ
ァ以上にデータを送信してくることはないので、ACK
番号差の最大値はSmallMの送信バッファの大きさ
を反映し、受信側はSmallMの送信バッファの大き
さに合わせたタイミングでACKを返却することができ
る。また、超特大の送信バッファを持つマシン同士の通
信の場合は、ACK番号差もやがて大きくなり最大値に
反映されていく。
きさに係わらず、通信相手の送信バッファの大きさに対
応した最適なタイミングでACKを返却することができ
るようになる。
タとの間で通信を行う際のネットワークを示す図であ
る。
処理の流れを示す図である。
ネクションエンドポイント 4002 相手ホスト 4020 送信バッファが通常の大きさであるコネク
ションエンドポイント 4030 送信バッファが通常より大きいコネクショ
ンエンドポイント
Claims (2)
- 【請求項1】 相手ホストコンピュータから送信された
データを格納する受信バッファと、該相手ホストコンピ
ュータへ送信する応答番号と前回送信した応答番号との
差の最大値と、該前回送信した応答番号とを含むコネク
ションエンドポイントを備えたホストコンピュータにお
いて、 前記ホストコンピュータが、 自ホストコンピュータまたは他ホストコンピュータから
のコネクション確立要求に応答して、前記コネクション
エンドポイントを作成するコネクションエンドポイント
作成手段と、 コネクションを確立した相手ホストコンピュータから送
信されたデータを受信して前記コネクションエンドポイ
ント内の前記受信バッファに格納するデータ受信手段
と、前記相手ホストコンピュータから 最初に受信したデータ
の大きさを初期値としてこの初期値を前記相手ホストコ
ンピュータの送信バッファの大きさとして認識し、該初
期値に基づいて該相手ホストコンピュータへ応答を送信
するタイミングを決定するとともに、最初の応答を送信
した後、2度目の受信以降は次の応答を返却する時に送
信する応答番号と前回送信した応答番号との差、すなわ
ち前回応答番号を送信した時点から現在までに受信した
データの大きさを計算し、その値と前記初期値のうち大
きい方を該相手ホストコンピュータの送信バッファの大
きさとして認識し直し、その値に基づいて該相手ホスト
コンピュータへ応答を送信するタイミングを決定する応
答送信判断手段と、前記相手ホストコンピュータに対して 応答を送信する場
合に該応答の情報を前記コネクションエンドポイントに
格納する応答情報格納手段とを含むことを特徴とする通
信相手の送信バッファに対応した応答返却のタイミング
計算システム。 - 【請求項2】 前記応答送信判断手段が、 前記相手ホストコンピュータから 受信したデータに対し
て応答を返却する際、前回送信した応答番号と今回送信
する応答番号との差と、前記コネクションエンドポイン
トに予め設定した初期値とを比較して値の大きい方に基
づいて該相手ホストコンピュータへ応答を送信するタイ
ミングを決定することを特徴とする請求項1記載の通信
相手の送信バッファに対応した応答返却のタイミング計
算システム。
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)
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 | 送信バッファサイズ推定装置、送信バッファサイズ推定方法及び送信バッファサイズ推定プログラム |
-
1991
- 1991-10-15 JP JP3266467A patent/JP2943453B2/ja not_active Expired - Fee Related
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 |