JP2002152308A - データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体 - Google Patents

データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体

Info

Publication number
JP2002152308A
JP2002152308A JP2000341680A JP2000341680A JP2002152308A JP 2002152308 A JP2002152308 A JP 2002152308A JP 2000341680 A JP2000341680 A JP 2000341680A JP 2000341680 A JP2000341680 A JP 2000341680A JP 2002152308 A JP2002152308 A JP 2002152308A
Authority
JP
Japan
Prior art keywords
data
packet
value
data packet
counter
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.)
Withdrawn
Application number
JP2000341680A
Other languages
English (en)
Inventor
Kenji Takeda
憲司 竹田
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
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2000341680A priority Critical patent/JP2002152308A/ja
Priority to US10/010,330 priority patent/US20020054570A1/en
Priority to EP01126782A priority patent/EP1206062A3/en
Publication of JP2002152308A publication Critical patent/JP2002152308A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0023Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the signalling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1671Details of the supervisory signal the supervisory signal being transmitted together with control information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/187Details of sliding window management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms

Abstract

(57)【要約】 【課題】再送したデータセグメントが損失しても送信装
置と受信装置間のスループット劣化を回避する。 【解決手段】 送信装置1と受信装置2とネットワーク3か
らなる通信システムで送信装置1に送信データセグメン
トのラウンドトリップ数を計数するカウンタを導入す
る。データセグメント送信処理手段121は送信するデー
タセグメントにカウンタ値を付加して送信し、ACK送信
手段221は受信したデータセグメントに含まれたカウン
タ値をACKメッセージに付加して返信し、ACK処理手段13
4は受信したACKメッセージに付加されたカウンタ値が現
在のカウンタ値と同じ値の場合にカウンタ値を1つ増や
すことでラウンドトリップ数を計数する。データセグメ
ント送信処理手段121は、データセグメント送信時にデ
ータセグメントと付加したカウンタ値の対応を記憶し、
記憶したカウンタ値がその時点のカウンタ値よりも2以
上小さい場合、データセグメントを再送する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ通信装置、
データ通信システム、その通信方法及びその通信プログ
ラムを記録した記録媒体に関し、特に、OSI(Open Syst
em Interconnection)参照モデル第4層プロトコルやイ
ンターネット・トランスポート層プロトコルにおいて再
送によるパケット転送誤り制御を行なう際に用いて好適
なデータ通信装置、データ通信システム、その通信方法
及びその通信プログラムを記録した記録媒体に関する。
【0002】
【従来の技術】現在、データ通信インフラとして最も普
及しているインタネットにおいて、米国Internet Engin
eering Task Forceの“Transmission Control Protoco
l”、Request For Comments(以降RFCと記述する)793
(引用文献A)と、同、“Requirements for Internet H
osts −− Communication Layers”、RFC1122で規定さ
れる通信プロトコルTCP(Transmission Control Protoc
ol)は信頼性を保証したデータ配送サービスを提供する
トランスポート層プロトコルとして広く使用されてい
る。
【0003】TCPでは信頼性を保証するために、データ
受信側TCP処理部(受信側TCPと呼ぶ)によるデータ送信
側TCP処理部(送信側TCPと呼ぶ)への累積確認メッセー
ジ(ACK(Acknowledge;肯定応答)メッセージ)通知に
よる累積確認通知機構と、送信側TCPによって実行され
る、通知されたACKメッセージに基づく送達確認と、更
に送信側TCPによる再送タイマによるデータセグメント
の損失検出・再送信を行なうエラー制御機構を備えてい
る。送信側TCPは受信側TCPから通知されるACKメッセー
ジにより、データの送信開始以来、抜けなく受信側TCP
に到着しているデータの最後のデータバイトの番号を知
ることができる。これにより、既に送信したデータセグ
メントの受信側TCPへの送達を確認することができる。
また、送信側TCPは、データセグメント送信時に再送タ
イマを起動し、再送タイマがタイムアウトするまでにデ
ータセグメントの送達確認が取れない場合、そのデータ
セグメントは損失したとみなしデータセグメントを再送
する。ただし、TCPでは、データセグメントの損失の主
な原因はネットワーク内の輻輳の発生と仮定している。
そのため、損失したセグメントの再送およびその後のデ
ータセグメント送信の際にはデータセグメント損失の原
因となったネットワーク内の輻輳を緩和すべくデータセ
グメント送信速度の抑制、すなわち、輻輳制御を行な
う。RFC793とRFC1122で規定されるTCPにはSlow Start
(スロー・スタート)とCongestion Avoidance(輻輳回
避)と呼ばれる二つの輻輳制御の機構が定義されてい
る。
【0004】Slow Startは再送タイマがタイムアウトし
たときに適用される制御で、送信側TCPが輻輳ウィンド
ウ(Congestion Window:cwnd)と呼ばれる送信ウィン
ドウのサイズを最大セグメントサイズ(Maximum Segmen
t Size:MSS)一つ分のサイズに設定して、それまで累
積確認されているデータの次のデータから送信(再送)
を開始する。そして、以降送信したデータセグメントの
送達確認が取れるたびにcwndを1MSS分のサイズだけ増や
す制御である。Congestion AvoidanceはSlow Startにお
けるcwndのサイズが再送タイマのタイムアウト時点での
cwndサイズの半分を超えた時点から適用される制御で、
cwndのサイズ分のデータセグメントの送達確認が取れる
たびにcwndのサイズを1MSS分増やす制御である。送信側
TCPが受信側からの送達確認の取れていないデータを送
る際の上限値はcwndの値と受信側TCPからTCPヘッダ中の
Window Size(ウィンドウサイズ)フィールドで通知さ
れる値の小さい方で規定されるため、受信側TCPから通
知されるWindow Sizeフィールドの値が十分大きい場合
はcwndの値が実質の送信ウィンドウサイズとなり、Slow
StartとCongestion Avoidanceアルゴリズムによる制御
がTCPのスループット性能に対して支配的になる。その
ため、このようなWindow Sizeフィールドの値が十分大
きい場合にデータセグメントが損失したときのTCPの動
作は、送信側TCPは再送タイマのタイムアウトによりそ
の損失を検出し、cwndをデータセグメント一つ分のサイ
ズに縮小して損失が検出されたデータセグメントを再送
し、その時点でのトラヒック投入速度を一時的に大きく
落とし、以降、送信側TCPはcwndのサイズが、再送タイ
マがタイムアウトした時点でのcwndサイズの半分になる
までSlow Startアルゴリズムによりcwndのサイズを指数
関数的に急速に増加させてトラヒック投入速度を急速に
増加させるが、その後はCongestion Avoidanceアルゴリ
ズムによりスループットは比較的緩やかにしか回復しな
い。このようにデータセグメント損失時にスループット
の抑制速度より回復速度を遅くするのは、本制御により
ネットワークが輻輳状態と非輻輳状態を繰り返すような
不安定な状態となることを回避するためである。
【0005】Slow StartおよびCongestion Avoidance
は、データセグメントの損失の検出に時間がかかること
と、cwndサイズの回復に時間がかかることから、TCPの
スループット性能向上のために、データセグメント損失
後のエラー制御の効率化、すなわち、送信側TCPによる
データセグメント損失の検出時間の短縮やより効率的な
再送制御方法等の開発がなされてきた。
【0006】TCP Renoと呼ばれるTCPの一実装において
は、“TCP Congestion Control”、RFC2581(引用文献
B)で示されるFast Retransmit & Fast Recovery(フ
ァストリトランスミット・ファストリカバリ:以降、FR
&FRと呼ぶ)と呼ばれる技術が導入された。Fast Retra
nsmit(以降、FRetと呼ぶ)では、損失したデータセグ
メントの後続のデータセグメント受信によって受信側TC
Pから送信される“内容が同じであるACKセグメント”
(Duplicate ACK:重複ACKと呼ぶ)を送信側TCPが規定
数受信することにより、送信側TCPが当該重複ACKが送達
確認を示すデータの次のデータセグメントが損失したこ
とを検出し、即座に損失したデータセグメントを再送す
る。ここで、送信側TCPが重複ACK受信時に即座に再送せ
ずに規定数の重複ACKを受信するまで待つのは、送信し
たデータセグメントの受信側TCPでの到着順序が入れ変
わった場合に受信側TCPが送信する重複ACKで誤って不要
なデータセグメントの再送を行なう確率を低めるためで
ある。また、Fast Recovery(以降、FRecと呼ぶ)で
は、送信側TCPにおける重複ACK受信は送信したデータセ
グメントが受信側TCPに受信されたことを示すことか
ら、送信側TCPは、重複ACK受信による再送後、重複ACK
を受信するとデータセグメント1つ分送信ウィンドウを
解放し、それにより新たにデータセグメントを送信する
余地ができれば後続のデータセグメントを送信する。こ
れを再送したデータセグメントの送達確認が取れるまで
のエラー制御処理中に適用する。但し、このとき送信側
TCPはネットワークの輻輳緩和のために実質的な送信ウ
ィンドウが再送時のcwndの値の半分に保たれるように制
御する。また、再送したデータセグメントの送達確認が
取れたらFRecのエラー制御を終了し、cwndの値が前記再
送時のcwndの値の半分からCongestion Avoidanceを開始
する。
【0007】上記FR&FRは送信側TCPが連続的にデータ
セグメントを送信している際に一つの送信ウィンドウサ
イズ内で送信したデータセグメントの内の一つのデータ
セグメントが損失した場合に有効である。この場合、上
記の再送タイマとSlow Start、Congestion Avoidanceに
よる再送制御および輻輳制御に比べ、データセグメント
の損失を早期に検出し、その損失したデータセグメント
を早期に再送し、かつ、cwndサイズを比較的大きな値に
保ったまま再送制御を終えて通常の通信状態に復帰する
ためTCPのスループット性能が改善される。
【0008】しかし、上述のFast Retransmit & Fast
Recoveryでは、1つの送信ウィンドウ内で送信されたデ
ータセグメントが複数個損失した場合、各損失したデー
タセグメントによるFast Retransmitの起動が複数回発
生する場合もあり、この場合はcwndの値がそれぞれ元の
値の半分に縮小され、cwndの値が小さくなってしまう。
また、各データセグメントの損失において、その後、送
信側TCPは規定数の重複ACKを受信できない場合には再送
タイマのタイムアウトによる損失の検出が必要となり、
それに続くSlow StartとCongestion AvoidanceによりTC
Pのスループット性能がそれほど改善されない場合があ
る。この問題に対し、“The NewRenoModification to T
CP‘s Fast Recovery Algorithm”、RFC2582(引用文献
C)で示されるFast Recoveryの改良と、“TCP Selectiv
e Acknowledgment Options”、RFC2018(引用文献D)で
示されるTCP SACK(Selective Acknowledgments)オプ
ションの適用の二つの解決策が示されている。
【0009】引用文献Cで示されるFast Recoveryの改良
は、それまでのFast Retransmitでは送信側TCPがエラー
制御処理中、すなわち、Fast Recovery中にそれまでと
は内容の異なる重複ACKを規定数受信した場合には再度F
ast Retransmit & Fast Recoveryを実行していたのに
対して、本方式では同様な状況において送信側TCPはFas
t Retransmitは実行せず、それまでの重複ACKと内容の
異なる(それまでの重複ACKで通知されていた送達確認
データセグメントが更新された)ACK(partial ACKと呼
ぶ)の受信に対して更新された送達確認データセグメン
トの次のデータセグメントが損失したことを検出し、検
出した損失セグメントの再送を行なう。
【0010】引用文献Dで示されるTCP SACKオプション
は、受信側TCPが受信したデータセグメントの累積確認
に加え、累積確認したデータセグメント以降の受信デー
タセグメントを通知する。送信側TCPはこの情報を利用
することにより、早期のデータセグメント損失の検出や
無駄なデータセグメント再送を回避し、スループット特
性向上を図ることができる。
【0011】引用文献Cで示されるFast Recoveryの改良
の動作ロジックは、TCP NewRenoと呼ばれるTCPの一実装
形態の中に実装されている。また、TCP SACKオプション
は、引用文献Dにオプションフィールドの構成等は記述
されているが、SACKオプションを受信した場合の送信側
TCPの動作は実装依存となっており様々な実装が存在し
ている。Fall,K.and Floyd,S.“Simulation−based
Comparison of Tahoe, Reno and SACK TCP”,米国As
sociation for Computing Machinery (ACM) Computer
Communication Review V.26 N.3 pp.5−21、1996年
7月(引用文献E)に幾つかの実装方式が記載されてい
る。
【0012】ここでは、図13から図18を参照して、前記
引用文献Eに記述されているSACKオプションを用いたTCP
の技術を説明する。
【0013】図13に示されるように、既存の技術におけ
るシステムは送信装置1、受信装置2、ネットワーク3か
ら構成され、送信装置1と受信装置2はネットワーク3を
介して接続される。送信装置1は、アプリケーションサ
ービス実行手段11とデータセグメント送信処理手段12、
ACK受信処理手段13、パケット送信手段14、パケット受
信手段15から構成される。受信装置2は、アプリケーシ
ョンサービス実行手段21とACK送信処理手段22、データ
セグメント受信処理手段23、パケット送信手段24、パケ
ット受信手段25から構成される。
【0014】アプリケーションサービス実行手段11とア
プリケーションサービス実行手段21は、対になって利用
者にサービスを提供する手段であり、基本的にアプリケ
ーションサービス実行手段11からアプリケーション実行
手段21にデータを転送することによりサービスを実現す
る。データの流れる方向によりそれぞれ役割が変わる
が、Web(ウェブ)ブラウザとWebサーバの対や、FTP(F
ile Transfer Protocol)クライアントとFTPサーバの対
などがこれに相当する。パケット送信手段14とパケット
送信手段24は、それぞれ、上位から渡されたTCPセグメ
ントをネットワーク3を通じて相手側に送信するもので
あり、IP(Internet Protocol)プロトコルスタックとM
AC(Media Access Control)ドライバ、NIC(Network I
nterfaceCard)の集合体に相当する。パケット受信手段
15とパケット受信手段25は、それぞれ、ネットワーク3
を通じて相手側から送られてきたパケットを受信するも
のであり、同様に、IPプロトコルスタックとMACドライ
バ、NICの集合体に相当する。
【0015】ネットワーク3はEthernet(登録
商標)(イーサネット(登録商標))などのデータリン
クとルータで構成されたIPネットワークである。データ
セグメント送信処理手段12とACK受信処理手段13、ACK送
信手段22、データセグメント受信処理手段23はアプリケ
ーションサービス実行手段11から渡されるデータをアプ
リケーション実行手段21に誤りなく渡すためのプロトコ
ル処理を行なうものであり、データセグメント送信処理
手段12とACK受信処理手段13はTCPのデータセグメント送
信処理部に相当し、ACK送信処理手段22とデータセグメ
ント受信処理手段23はTCPのデータセグメント受信処理
部に相当する。
【0016】データセグメント送信処理手段12は、アプ
リケーションサービス実行手段11から渡されるデータを
送信バッファに蓄積し、送信バッファに蓄積されている
データからTCPセグメントを生成してパケット送信手段1
4に渡すことを基本機能とし、さらに、輻輳制御とフロ
ー制御の一端とSACKオプションを利用した場合のエラー
回復制御の一端を備える。データセグメント送信処理手
段12が備える輻輳制御とフロー制御の一端とは、輻輳制
御とフロー制御におけるTCPセグメント送信の可否を判
断することである。引用文献Aに示されているとおり、T
CPでは、(1)累積確認されたデータの1バイト後続の
データのシーケンス番号を指すSND.UNA(以降snd_una
と記述する)、(2) 次に送信すべきデータの先頭のデ
ータのシーケンス番号を指すSND.NXT(以降snd_nxtと
記述する)、(3) 相手側からTCPヘッダのWindowフィ
ールドで通知された相手側の受信ウィンドウサイズを指
すSND.WND(以降snd_wndと記述する)、また、引用文
献Aには記載されていないが、輻輳制御のための送信ウ
ィンドウである輻輳ウィンドウ(以降snd_cwndと記述す
る)の各情報を管理している。データセグメント送信処
理手段12は、送達確認が取れていない送信済みデータの
合計サイズが相手側受信ウィンドウsnd_wndと輻輳ウィ
ンドウsnd_cwndのいずれよりも小さい場合にのみ後続の
データからデータセグメントを生成し、送信する。
【0017】データセグメント送信処理手段12が備える
SACKオプションを利用したエラー回復制御の一端とは、
エラー回復処理中のデータセグメント送信の可否の判断
と再送データセグメントの選定、エラー回復処理中のネ
ットワークに滞留している転送中のデータの推定値(以
降、pipeと記述する)の値の管理である。引用文献Eに
よると、データセグメント送信処理手段12は、エラー回
復処理中には滞留データ推定値pipeが輻輳ウィンドウsn
d_cwndを下回るときのみその差分を最大サイズとしてデ
ータを送信する。データを送信する際は、累積確認とSA
CKオプションで送達確認が通知されていないデータの
内、再送していないデータをシーケンス番号が小さい順
に選択して再送する。再送するデータが存在しない場合
には未送信の後続のデータを送信する。いずれにおいて
も、データセグメント送信後は送信したデータセグメン
トのサイズを滞留データ推定値pipeに加算する。
【0018】また、引用文献Eでは、送信側TCPは受信側
TCPからSACKオプションで通知されたデータセグメント
送達情報をスコアボードと呼ばれるリストで管理してい
る。スコアボードの一実装例としては図14で示されるも
のがある。スコアボードは送達確認が取れたデータの塊
(データブロック)の先頭データのシーケンス番号と末
尾データのシーケンス番号を格納 (それぞれ図14
中、”start”と”end”)したリスト要素を、各自が格
納しているデータブロックのシーケンス番号の順番に並
べたリスト構造になっている。各リスト要素では更に一
つ前のリスト要素の表すデータブロックから自リスト要
素の表すデータブロックまでの内、既に再送されたデー
タの最後のデータのシーケンス番号を格納している(図
14中、”retran”)。これにより次に再送すべきデータ
がどれなのかがわかるようになっている。
【0019】データセグメント受信処理手段23は、パケ
ット受信手段25から渡されるデータセグメント送信処理
手段12から送信されたデータセグメントを受信し、受信
したデータを順序正しく受信バッファに格納する。ま
た、受信したデータセグメントの情報をACK送信処理手
段22に通知する。
【0020】ACK送信処理手段22はデータセグメント受
信処理手段23から通知されるデータセグメントの情報か
らACKメッセージを作成し、パケット送信手段24に渡
す。ACK送信処理手段22は、これまで受信したデータセ
グメントが含むデータに抜けがあり、幾つかのデータブ
ロックが存在する場合、引用文献Dに記述されている方
法でSACKオプションを用いてデータブロックを通知す
る。
【0021】ACK受信処理手段13はパケット受信手段15
から渡されるACK送信手段22が送信したACKメッセージを
処理する手段で、更に、SACKオプション処理手段131とA
CK処理手段132から構成される。SACKオプション処理手
段131は、パケット受信手段15から渡されたACKメッセー
ジにSACKオプションが付いている場合、その内容をスコ
アボードに反映させる。ACK処理手段132は、エラー制御
処理中でない場合、すなわち、Slow StartやCongestion
Avoidance中は重複ACKを監視し、重複ACKが規定回数
(以降、規定回数をrxmtthreshとも記述する)連続で受
信された場合は、前記の通り、FRetの処理を行なう。そ
の際には、エラー制御処理中の場合の処理のため初期化
処理として、その時点で送信済みであるデータの最後の
データのセグメント番号(以降、snd_maxと記述する)
を記憶し(以降、記憶したセグメント番号をp_max_seq
で参照する)、推定した滞留データサイズをpipeに設定
し、その時点での輻輳ウィンドウの半分の値を記憶し
(以降、記憶した値をssthreshで参照する)、輻輳ウィ
ンドウsnd_cwndを半分にする。
【0022】ACK処理手段132は、エラー制御処理中の場
合、(1)重複ACKに対してはpipeの値を1MSSサイズ分小
さくし、(2)累積確認が更新された場合には、累積確
認されたデータを送信バッファから削除し、その内容を
スコアボードに反映し(累積確認されたデータの情報を
格納するリスト要素をスコアボードから削除)、snd_un
aをACKメッセージの通知する累積確認の値(以降、ti_a
ckと記述する)に更新する。その後、上記、(1)、
(2)いずれの場合もデータセグメント送信処理手段11
に送信要求を行なう。FRet起動時に送信していたデータ
セグメントが全て送達確認されたら、すなわち、ti_ack
がp_max_seqよりも大きかったらエラー制御処理を終了
し、pipeの値を0に初期化し、snd_cwndをssthreshに記
憶していた値に設定し、snd_unaとp_max_seqの値をti_a
ckの値に設定してCongestion Avoidanceを開始する。
【0023】次に、図15と図16を用いて既存の技術の動
作を説明する。図15、図16は送信装置1におけるデータ
セグメント送信時の処理とACKメッセージ受信時の処理
の流れを示したものである。ただし、受信装置2から通
知される受信ウィンドウサイズを用いたフロー制御や再
送制御タイマのタイムアウト値計算、輻輳ウィンドウの
更新等については本発明に直接関係が無いため記述を省
略している。
【0024】データセグメント送信処理手段12は、エラ
ー制御処理中で無いSlow Start、Congestion Avoidance
の場合(図15中、ステップS40でNo)には、輻輳制御と
フロー制御の範囲内でデータセグメントを送信する
(同、ステップS41〜S44)。以降、転送されるデータセ
グメントやACKメッセージが損失せず、順序も変わらな
い場合、データセグメント受信処理手段23とACK送信処
理手段22はデータセグメントを受信してその送達確認の
ためのACKメッセージを作成し、送信する。ACK受信処理
手段13はACKメッセージを受信すると、この場合送信し
たデータセグメントに対して順序正しく累積確認が帰っ
てくるので(図16中、ステップS1でNo、S3でNo、S10でN
o)、累積確認により送達が確認されたデータを送信バ
ッファから削除し、この累積確認の内容を反映するよう
にスコアボード(scrb)を編集し(スコアボードに累積
確認で送達確認されたリスト要素がある場合はそれを削
除する。先頭のリスト要素のretranの値がti_ackよりも
小さい場合はretranの値をti_ackに設定)、snd_cwndの
値を更新し、snd_unaとp_max_seqの値をこのACKメッセ
ージで累積確認された値ti_ackに設定してデータセグメ
ント送信処理手段12に送信要求を行なう(同、ステップ
S20からS23)。
【0025】データセグメント送信処理手段12が送信し
たデータセグメントが損失し、それ以外の送信したデー
タセグメントが送信順通りにデータセグメント受信処理
手段23に受信された場合、データセグメント受信処理手
段23では損失したデータセグメント以外のデータセグメ
ントを受信し、受信したデータセグメントを通知された
ACK送信処理手段22は、損失したデータセグメント以降
のシーケンス番号を持つデータセグメントの受信に対し
てはそのデータセグメントの受信を知らせるSACKオプシ
ョンを含む重複ACKを作成し、その重複ACKを送信装置1
に送信する。ACK受信処理手段13では、SACKオプション
を含む重複ACKを受信するとまず、SACKオプション処理
手段131がSACKオプションで通知されている情報をスコ
アボードに反映し(送達が通知されているデータセグメ
ントをスコアボードに追加等)(同、ステップS1でYe
s、S2)、その重複ACKをACK処理手段132に渡す。ACK処
理手段132では重複ACKを渡されると、重複ACK受信回数d
upacksをカウントアップする(同、ステップS3でNo、S1
0でYes、S11実行、S12でNo)。重複ACKの受信回数が規
定数rxmtthreshに達した場合(同、ステップS12でYes)
は、ACK処理手段132は、その重複ACKで累積確認された
次以降のデータセグメントを1つ再送し、エラー制御処
理のための各種変数の初期設定を行なう(同、ステップ
S13、S14)。エラー制御処理のための変数の初期設定で
は、P_max_seqにsnd_maxを記憶し、推定した滞留データ
サイズsnd_nxt−snd_una−dupacks*segszをpipeに設定
し、ssthreshと輻輳ウィンドウサイズsnd_cwndにそれま
での輻輳ウィンドウサイズの半分の値snd_cwnd/2を設
定する。ここで、segszとは、MSSのことである。
【0026】以降、データセグメント送信処理手段12と
ACK受信処理手段13はp_max_seqで記憶しているデータセ
グメントが累積確認されるまでエラー制御処理を行な
う。
【0027】エラー制御処理では、ACK処理手段132は、
受信されたACKメッセージに対して、そのACKメッセージ
の累積確認がそれまで累積確認していたデータセグメン
トを更新しない場合(同、ステップS3とS30でそれぞれY
es、S31でNo)はpipeの値をsegsz分小さくし、データセ
グメント送信処理手段12に送信要求をする(同、ステッ
プS37、S36)。それまでの累積確認を更新するACKメッ
セージを受信した場合(同、ステップS3とS30とS31でYe
s)は、累積確認されたデータセグメントを送信バッフ
ァから削除し、この累積確認の内容をスコアボードに反
映させ、pipeの値をsegsz分小さくし、snd_unaの値をti
_ackに設定して、データセグメント送信処理手段12に送
信要求をする(同、ステップS32〜S36)。
【0028】エラー制御中に送信要求をされたデータセ
グメント送信処理手段12は、輻輳ウィンドウpipeの値が
snd_cwndの値よりも小さい場合にデータセグメントを作
成し、送信する(図15中、ステップS40とS50でYes)。
その際にはデータセグメント送信処理手段12は、まず、
スコアボードから再送すべきデータの有無を調べ、再送
すべきデータがあればそのデータセグメントを作成し
(同、ステップS51でYes、S52)、再送すべきデータが
無く(同、ステップS51でNo)、送信すべきデータがあ
れば(同、ステップS53でYes)後続の新規のデータセグ
メントを作成する(同、ステップS54)。再送すべきデ
ータセグメントとはこの場合スコアボードで送達が確認
されていないデータセグメントで、かつ、一度も再送さ
れていないデータセグメントのことを指し、このような
データセグメントをシーケンス番号が小さい順に選択す
る。すなわち、スコアボードの先頭のリスト要素から、
start>retran+1となるリスト要素を探し、そのような
リスト要素が存在すれば、そのリスト要素のretran+1
からstart−1までが再送の対象となるデータセグメント
となる。
【0029】再送データセグメントの場合も、新規デー
タセグメントの場合もいずれにおいてもpipeの値をその
データセグメントのサイズ分増やし、そのデータセグメ
ントを送信する(同、ステップS55、S56)。
【0030】一方、p_max_seqに記憶しているシーケン
ス番号のデータセグメントが累積確認された場合はデー
タセグメント送信処理手段12とACK受信処理手段13はエ
ラー制御を終了するが、そのようなACKメッセージを受
信した場合(図16中、ステップS3でYes、ステップS30で
No)、ACK処理手段132は、通常のACK処理と同様送達確
認されたセグメントを送信バッファから削除し、累積確
認の内容をスコアボードに反映させ、エラー制御のため
の各種変数を更新し、データセグメント送信処理手段12
に送信要求を行なう(同、ステップS20〜S23)。
【0031】
【発明が解決しようとする課題】従来の技術の第1の問
題点は、再送されたデータセグメントが損失した場合に
スループット特性が劣化することである。その理由は、
従来の技術においては再送されたデータセグメントが損
失した場合について何ら考慮されておらず、その損失を
検出するには再送タイマのタイムアウトによる検出しか
手段が無いためである。図17には第1の問題点により発
生するデータセグメントとACKメッセージのシーケンス
図の一例を示す。ここでは、送信側TCPと受信側TCPに張
られたとある1コネクションでやり取りされるデータセ
グメントとACKメッセージのシーケンスを示している。
データセグメントのシーケンス番号は1から始まってい
るが、これはTCPでのシーケンス番号の絶対値やコネク
ション開設時点からの相対値のいずれを表すものでもな
く、説明を簡単にするためにここで取り上げるシーケン
スの最初のデータセグメントのシーケンス番号を1にし
たものである(以降のシーケンス図でも同様)。図17で
は輻輳ウィンドウが8*MSSで1つのデータセグメント
(1:1000)が損失し、FRetで再送した同一データを含
むデータセグメントが再度損失した場合のシーケンスに
ついて示したものである。この場合、再送したデータセ
グメント1:1000が損失したためそのデータセグメント
を送信したときに設定した再送タイマがタイムアウトす
るまでデータセグメントの損失が検出されない。
【0032】なお、図17および他のシーケンス図におい
て、“x:y”(x,yは整数)はデータセグメントxからy
を含むTCPデータセグメントを表す。“ACK:n”(nは整
数)はデータセグメントnの累積確認を含むACKメッセー
ジを表す。“SACK:x〜y”はSACKオプションによるデー
タセグメントxからyの受信通知を含むメッセージを表
す。“×”印はパケット損失を表す。
【0033】従来の技術の第2の問題点は、SACKオプシ
ョンでは、エラー制御処理中に送信されたデータセグメ
ントの到着順序が入れ替わった場合、または、送信ウィ
ンドウサイズが十分大きくない場合、スループット特性
が劣化する場合があることである。その理由は、送信側
TCPは受信側TCPからSACKオプションで通知される受信セ
グメントの情報から受信データの抜けを知ることができ
るが、送信側TCPが抜けを知った直後にそのデータのデ
ータセグメントを再送するならば、データセグメントの
到着順序が入れ替わったときに不要な再送を行なうから
である。たとえ、送信側TCPが同じデータセグメントの
抜けを通知するACKを規定数受信した後、そのデータセ
グメントを再送するようにしても、送信ウィンドウが規
定数分のデータセグメントが送信されないような小さな
サイズの場合は再送タイマのタイムアウトでしかデータ
セグメントの損失を検出できないからである。
【0034】従来の技術の第3の問題点は、エラー制御
処理中に受信側TCPからのACKメッセージが損失した場
合、スループット特性が劣化する場合があることであ
る。その理由は、従来の技術ではエラー制御処理中の送
信側TCPは受信側TCPからのACKメッセージ受信に対応し
て塞がった送信ウィンドウを開放するため、ACKメッセ
ージが損失した場合はそれだけ塞がった送信ウィンドウ
が解放されないままになるためである。
【0035】図18には第3の問題点により発生するデー
タセグメントとACKメッセージのシーケンス図の一例を
示す。図18では輻輳ウィンドウが8*MSSで1つのデータ
セグメント(1:1000)が損失し、FRetで再送した同一
データを含むデータセグメントが再度損失し、かつ、そ
の後受信側TCPが送信したACKメッセージの内の一つが損
失した場合のシーケンスについて示したものである。こ
の場合、データセグメント1:1000の送達が確認される
までは最初の輻輳ウィンドウサイズ8*MSSの半分の値、
すなわち、4*MSS分を送信ウィンドウとして利用できる
はずであるが、ACKメッセージの一つが損失したことに
より損失後は実質3*MSS分しか送信ウィンドウとして利
用していない。
【0036】第1の問題点に関しては、近藤、渥美、吉
田、“タイムアウトを回避するSACK−TCP再送制御方
式”、電子情報通信学会信学技報CQ98−63 pp.21−2
6、1998年12月にこの問題点を解決する目的で、再送デ
ータセグメントの次に送信したデータセグメントのシー
ケンス番号を保存しておき、次シーケンス番号以降のデ
ータセグメントの送達がSACKオプションによって通知さ
れた場合に再送データセグメントが損失と判断し、直ち
に再送することが記載されているが、この技術には第2
の問題点が存在する。
【0037】本発明の目的は、このような問題点を解決
し、例えば引用文献Bで推奨されている輻輳制御の一般
原則の制約の範囲内でスループット特性の良いデータ通
信システム、その通信方法及びその通信プログラムを記
録した記録媒体を提供することにある。
【0038】
【課題を解決するための手段】上記課題を解決するた
め、本発明の第1の態様は、データ送信装置とデータ受
信装置がネットワークで接続され、前記データ送信装置
は前記データ受信装置へデータパケットを送信し、前記
データ受信装置は前記データ送信装置に受信したデータ
パケットの送達確認を通知するACKパケットを送信し、
前記データ送信装置は前記ACKパケットの内容から送信
したデータパケットの損失を検出し、該損失を検出した
データパケットを再送することによりデータパケットの
エラー制御を行なう際に、前記データ送信装置は、送信
するデータパケットのラウンドトリップ数を計数するカ
ウンタを保持し、送信した各データパケットに対して、
該データパケットと該データパケット送信時の前記カウ
ンタの値の対応を記憶し、前記記憶したカウンタの値が
その時点での前記カウンタの値より2つ以上小さい場合
に、該記憶したカウンタ値に対応するデータパケットが
損失したとみなし、該データパケットを再送することを
特徴とする。
【0039】本発明の第2の態様は、第1の態様におい
て、前記データ送信装置は、送信するデータパケットに
その時点での前記カウンタ値をラウンドトリップ通知情
報として含ませ、前記データ受信装置は、受信したデー
タパケットに対するACKパケットに該受信したデータパ
ケットがラウンドトリップ通知情報として含む前記カウ
ンタ値をラウンドトリップ応答情報として含ませ、前記
データ送信装置は、受信したACKパケットにラウンドト
リップ応答情報として含まれている値が前記カウンタの
値と等しい場合に、前記カウンタの値を1つ増加させる
ことを特徴とする。
【0040】本発明の第3の態様は、データ送信装置と
データ受信装置がネットワークで接続され、前記データ
送信装置は前記データ受信装置へデータパケットを送信
し、前記データ受信装置は前記データ送信装置に受信し
たデータパケットの送達確認を通知するACKパケットを
送信し、前記データ送信装置は前記ACKパケットの内容
から送信したデータパケットの損失を検出し、該損失を
検出したデータパケットを再送することによりデータパ
ケットのエラー制御を行なう際に、前記データ送信装置
は、送信するデータパケットのラウンドトリップ数を計
数するカウンタと所定のデータを記憶する第1及び第2
のテーブルを保持し、送信した各データパケットに対し
て、該データパケットと該データパケット送信時の時刻
の対応を前記第1のテーブルに記憶し、前記カウンタの
取る各カウンタ値に対して、カウンタ値と前記カウンタ
がそのカウンタ値を取った後初めてデータパケットを送
信するときの送信時の時刻との対応を前記第2のテーブ
ルに記憶し、前記第1のテーブルに記憶した時刻の値
が、前記第2のテーブルに記憶したその時点での前記カ
ウンタの値より2つ小さいカウンタ値に対応する時刻よ
り早い場合に、該第1のテーブルに記憶した時刻に対応
するデータパケットが損失したとみなし、該データパケ
ットを再送することを特徴とする。
【0041】本発明の第4の態様は、第3の態様におい
て、前記データ送信装置は、送信するデータパケットに
その時点での時刻を時刻通知情報として含ませ、前記デ
ータ受信装置は、受信したデータパケットに対するACK
パケットに該受信したデータパケットが時刻通知情報と
して含む前記時刻を時刻応答情報として含ませ、前記デ
ータ送信装置は、受信したACKパケットに時刻応答情報
として含まれている時刻が、前記第2のテーブルに記憶
したその時点での前記カウンタの値と対応させて記憶さ
せた時刻と等しいかまたは大きい場合に、前記カウンタ
の値を1つ増加させることを特徴とする。
【0042】本発明の第5の態様は、データ送信装置と
データ受信装置がネットワークで接続され、前記データ
送信装置は前記データ受信装置へデータパケットを送信
し、前記データ受信装置は前記データ送信装置に受信し
たデータパケットの送達確認を通知するACKパケットを
送信し、前記データ送信装置は前記ACKパケットの内容
から送信したデータパケットの損失を検出し、該損失を
検出したデータパケットを再送することによりデータパ
ケットのエラー制御を行ない、更には、データパケット
の損失を検出後、該データパケットの送達がデータ送信
装置によって確認されるまでのエラー制御中に送信ウィ
ンドウにより送信フロー制御を行なう際に、前記データ
送信装置は、エラー制御中に前記データ受信装置から受
信したACKパケットで新規に送達確認がなされたデータ
の合計サイズ分の閉じられたウィンドウを前記送信ウィ
ンドウから解放し、その分を送信可能とすることを特徴
とする。
【0043】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して詳細に説明する。図1には、本発明の
データ通信システム(データ通信装置)、その通信方法
及びその通信プログラムを記録した記録媒体に係る第1
の実施形態が示されている。
【0044】図1に示されるように、本発明の第1の実
施の形態は、送信装置1と受信装置2とネットワーク3か
ら構成され、送信装置1と受信装置2はネットワーク3を
介して接続される。送信装置1は、アプリケーションサ
ービス実行手段11とデータセグメント送信処理手段12
1、ACK受信処理手段13、パケット送信手段14、パケット
受信手段15から構成される。受信装置2は、アプリケー
ションサービス実行手段21とACK送信処理手段221、デー
タセグメント受信処理手段231、パケット送信手段24、
パケット受信手段25から構成される。アプリケーション
サービス実行手段11とアプリケーションサービス実行手
段21は、既存の技術で説明したものと同じもので、対に
なって利用者にサービスを提供する手段である。パケッ
ト送信手段14、24とパケット受信手段15、25は、既存の
技術で説明したものと同じでそれぞれ上位に対してパケ
ット送信・受信のサービスを提供するものである。ネッ
トワーク3も既存の技術で説明したものと同じでIPネッ
トワークである。
【0045】データセグメント送信処理手段121とACK受
信手段13、ACK送信手段221、データセグメント受信処理
手段231も、既存の技術で説明したものと同様、アプリ
ケーションサービス実行手段11から渡されるデータをア
プリケーション実行手段21に誤りなく渡すためのプロト
コル処理を行なう。
【0046】データセグメント送信処理手段121とACK受
信処理手段13は送信したデータセグメントのラウンドト
リップの回数を記憶するラウンドトリップカウンタ(RT
C)を持ち(図2の「ラウンドトリップカウンタ」)、既
存の技術で説明したスコアボードの代わりに送信セグメ
ントリスト(SSLとも記述する)を持つ。送信セグメン
トリストはこれまでデータセグメント送信処理手段121
が送信したデータセグメントの情報を格納するリスト要
素のリストで構成されている。各リスト要素にはこれま
で送信して累積確認とSACKオプションで送達が確認され
ていないデータセグメントの最初と最後のデータのシー
ケンス番号と、そのデータセグメントが最後に送信され
たときのRTCの値が格納されており(同、「送信セグメ
ントリスト」の「start」、「end」、「rt」)、これら
のリスト要素がそれぞれ最後に送信された順に並んでい
る。例えば、図2で示した送信セグメントリストでは、
データセグメント1:1000をRTCが1のときに送信し、デ
ータセグメント1001:2000と2001:3000をRTCが2のとき
送信し、これら3つのデータセグメントに対する累積確
認、または、SACKオプションによる送達確認はまだ受信
されていないときの送信セグメントリストを表してい
る。ここで、FRetなどによりデータセグメント1:1000
をRTCが3のときに再送した場合、送信セグメントリスト
は、先頭からデータセグメント1001:2000、2001:300
0、1:1000のリスト要素の並びになり、かつ、データセ
グメント1001:2000と2001:3000のリスト要素の内容は
図2のそれぞれのリスト要素と同一のものになっている
が、データセグメント1:1000のリスト要素のrtの値が3
となったものになる。
【0047】また、送信装置1と受信装置2で送受信され
るメッセージには図3で示すラウンドトリップカウンタ
値を通知するRound Trip Counter(RTC)オプションフ
ィールドとRound Trip Counter Echo(RTCE:ラウンド
トリップカウンタ・エコー;ラウンドトリップ応答)オ
プションフィールドが追加する。すなわち、データセグ
メント送信処理手段121はデータセグメントを送信する
際、作成したデータセグメントにRTCオプションフィー
ルドを追加し、そのとき保持しているRTCの値をRTCオプ
ションフィールドのRound Trip Counter値フィールド
(以降、ti_rtcフィールドとも表記する)に格納してデ
ータセグメントを送信する。図3に示す例では、RTCオプ
ションフィールドはデータの種別(「RTC」)を示す8ビ
ットのKind(カインド)フィールドと、8ビットを単位
としてデータの長さ3を表す8ビットのLength(レング
ス)フィールドと、RTC値を示す8ビットのRTC値フィー
ルドから構成されている。RTCEオプションフィールドは
データの種別(「RTCE」)を示す8ビットのKindフィー
ルドと、データの長さ3を表す8ビットのLengthフィール
ドと、RTCE値を示す8ビットのRTCE値フィールドから構
成されている。また、ACK送信処理手段221は、データセ
グメント受信処理手段231から通知される受信したデー
タセグメントのACKメッセージを作成する際、作成したA
CKメッセージにRTCEオプションフィールドを追加し、デ
ータセグメントのRTCオプションのRound Trip Counter
値フィールドの値をRound Trip Counter Echo値フィー
ルド(以降、ti_rtceフィールドとも表記する)に格納
してACKメッセージを送信する。
【0048】データセグメント送信処理手段121は、ア
プリケーションサービス実行手段11から渡されるデータ
を送信バッファに蓄積し、送信バッファに蓄積されてい
るデータからTCPセグメントを生成してパケット送信手
段14に渡すことを基本機能とし、さらに、本発明の第一
の実施の形態における輻輳制御とフロー制御の一端とSA
CKオプションを利用した場合のエラー回復制御の一端を
備える。
【0049】データセグメント送信処理手段121が備え
る本発明の第1の実施の形態における輻輳制御とフロー
制御の一端とは、輻輳制御とフロー制御におけるTCPセ
グメント送信の可否を判断することである。既存の技術
で示したとおり、本発明の第1の実施の形態においても
(1)累積確認されたデータの1バイト後続のデータのシ
ーケンス番号を指すsnd_una、(2)次に送信すべきデー
タの先頭のデータのシーケンス番号を指すsnd_nxt、
(3)相手側からTCPヘッダのWindowフィールドで通知さ
れた相手側の受信ウィンドウサイズを指すsnd_wnd、輻
輳制御のための送信ウィンドウである輻輳ウィンドウsn
d_cwndの各情報を管理している。データセグメント送信
処理手段121は、送達確認が取れていない送信済みデー
タの合計サイズが相手側受信ウィンドウsnd_wndと輻輳
ウィンドウsnd_cwndのいずれよりも小さい場合にのみ後
続のデータからデータセグメントを生成し、送信する。
また、その際には作成するデータセグメントにRTCオプ
ションを付加し、そのRound Trip Counter値フィールド
にそのとき保持しているRTCの値を格納し、かつ、作成
したデータセグメントに関するリスト要素(startとend
の値がデータセグメントの最初と最後のデータのシーケ
ンス番号であり、rtの値がRound Trip Counter値フィー
ルドに格納したRTCの値)を作成し、リスト要素を送信
セグメントリストの末尾に追加する。
【0050】データセグメント送信処理手段121が備え
るSACKオプションを利用したエラー回復制御の一端と
は、エラー回復処理中のデータセグメント送信の可否の
判断と再送データセグメントの選定、エラー回復処理中
のネットワークに滞留している転送中のデータの推定値
(以降、pipeと記述する)の値の管理である。データセ
グメント送信処理手段121は、既存の技術と同様、エラ
ー回復処理中には滞留データ推定値pipeが輻輳ウィンド
ウsnd_cwndを下回るときのみその差分を最大サイズとし
てデータを送信する。データを送信する際は、累積確認
とSACKオプションで送達確認が通知されていないデータ
の内、リスト要素のrtの値がRTC−2と同じかそれより小
さい値を持つリスト要素のデータを送信セグメントリス
トの先頭方向から順に選択して再送する。再送するデー
タが存在しない場合には未送信の後続のデータを送信す
る。いずれにおいても、データセグメント送信後は送信
したデータセグメントのサイズを滞留データ推定値pipe
に加算する。
【0051】また、SACKオプションで通知されたデータ
セグメント送達情報は既存の技術で説明したスコアボー
ドでは無く、送信セグメントリストと呼ばれるリストで
管理している。送信セグメントリストの構造は前述のと
おりである。
【0052】データセグメント受信処理手段231は、既
存の技術で説明したデータセグメント受信処理手段23と
同様、パケット受信手段25から渡されるデータセグメン
ト送信処理手段121から送信されたデータセグメントを
受信し、受信したデータを順序正しく受信バッファに格
納する。また、受信したデータセグメントの情報をACK
送信処理手段221に通知する。受信したデータセグメン
トにRTCオプションが付加されている場合はその情報もA
CK送信処理手段221に渡す。
【0053】ACK送信処理手段221はデータセグメント受
信処理手段231から通知されるデータセグメントの情報
からACKメッセージを作成し、パケット送信手段24に渡
す。ACK送信処理手段221は、これまで受信したデータセ
グメントが含むデータに抜けがあり、幾つかのデータブ
ロックが存在する場合、既存の技術同様SACKオプション
を用いてデータブロックを通知する。また、データセグ
メント受信処理手段231から渡されたデータセグメント
の情報にRTCオプションがある場合は作成したACKメッセ
ージにRTCEオプションを付加し、そのRound Trip Count
er Echo値フィールドに通知されたRTCオプションのRoun
d Trip Counter値フィールドの値を格納する。
【0054】ACK受信処理手段13はパケット受信手段15
から渡されるACK送信手段221が送信したACKメッセージ
を処理する手段で、更に、SACKオプション処理手段133
とACK処理手段134から構成される。SACKオプション処理
手段133は、パケット受信手段15から渡されたACKメッセ
ージにSACKオプションが付いている場合、その内容を送
信セグメントリストに反映させる。具体的には、リスト
要素が含むデータセグメントがSACKオプションで通知さ
れた送達確認されたデータに含まれるようなリスト要素
を送信セグメントリストから削除する。更に、エラー制
御処理中の場合は、pipeの値を削除したリスト要素が含
んでいたデータのサイズ分だけ減らす。
【0055】ACK処理手段134は、まず、受信したACKメ
ッセージがRTCEオプションフィールドを含んでいる場
合、RTCEオプションフィールドのRound Trip Counter E
cho値フィールドti_rtceの値がそのときのRTCの値と等
しければRTCの値を一つ分カウントアップする。そし
て、エラー制御処理中でない場合、すなわち、Slow Sta
rtやCongestion Avoidance中は重複ACKを監視し、重複A
CKが規定回数rxmtthresh回連続で受信された場合は、FR
etの処理を行なう。その際には、既存の技術同様、重複
ACKで累積確認されたデータの次のデータを再送する
が、この場合は既存の技術と異なり、送信するデータセ
グメントにRTCオプションを付加し、送信するデータの
データセグメントに関する情報を持つリスト要素を送信
セグメントリストから削除し、送信するデータのデータ
セグメントの情報を持つリスト要素(“start”と“en
d”がそれぞれそのデータセグメントが含む最初と最後
のデータのシーケンス番号の値を持ち、“rt”がその時
点でのRTCの値を持つリスト要素)を送信セグメントリ
ストの末尾に追加する。そして、エラー制御処理中の場
合の処理のため初期化処理として、その時点で送信済み
であるデータの最後のデータのセグメント番号snd_max
をp_max_seqに記憶し、推定した滞留データサイズをpip
eに設定し、ssthreshと輻輳ウィンドウsnd_cwndにその
時点での輻輳ウィンドウの半分の値を記憶する。
【0056】ACK処理手段134は、エラー制御処理中の場
合、(1)重複ACKに対してはpipeの値を1MSSサイズ分小
さくし、(2)累積確認が更新された場合には、累積確
認されたデータを送信バッファから削除し、その内容を
送信セグメントリストに反映し(累積確認されたデータ
の情報を格納するリスト要素を送信セグメントリストか
ら削除)、削除したリストが含んでいたデータのサイズ
の合計をpipeの元の値から減じたものをpipeの値として
再設定し、snd_unaをACKメッセージの通知する累積確認
の値ti_ackに更新する。その後、上記、(1)、(2)い
ずれの場合もデータセグメント送信処理手段11に送信要
求を行なう。FRet起動時に送信していたデータセグメン
トが全て送達確認されたら、すなわち、ti_ackがp_max_
seqよりも大きかったらエラー制御処理を終了し、pipe
の値を0に初期化し、snd_cwndをssthreshに記憶してい
た値に設定し、snd_unaとp_max_seqの値をti_ackの値に
設定してCongestion Avoidanceを開始する。
【0057】次に、図4と図5を参照して本発明の第1の
実施の形態における動作を説明する。図4と図5は送信装
置1におけるデータセグメント送信時の処理とACKメッセ
ージ受信時の処理の流れを示したものである。ただし、
受信装置2から通知される受信ウィンドウサイズを用い
たフロー制御や再送制御タイマのタイムアウト値計算、
輻輳ウィンドウの更新等については本発明に直接関係が
無いため記述を省略している。
【0058】データセグメント送信処理手段121は、エ
ラー制御処理中でないSlow Start、Congestion Avoidan
ceの場合(図4中、ステップS40でNo)には、輻輳制御と
フロー制御の範囲内でデータセグメントSを送信し、そ
の際にはデータセグメントにRTCオプションを付加し、
送信セグメントリストにデータセグメントに関する情報
を格納し(同、ステップS41〜S43およびX10〜X11)、デ
ータセグメントを送信する(同、ステップS44)。以
降、転送されるデータセグメントやACKメッセージが損
失せず、順序も変わらない場合、データセグメント受信
処理手段231とACK送信処理手段221はデータセグメント
を受信してその送達確認のためのACKメッセージを作成
し、送信する。この際、ACK送信処理手段221は、各ACK
メッセージにRTCEオプションフィールドを付加し、その
RTCEオプションフィールドのRound Trip Counter Echo
値フィールドには、そのACKメッセージを送信する契機
となったデータセグメントに付加されているRTCオプシ
ョンフィールドのRound Trip Counter値フィールドの値
を格納する。ACK受信処理手段13はACKメッセージを受信
すると、この場合、SACKオプションが付加されていない
ためSACKオプション処理手段133の処理は行なわず(図5
中、ステップS1でNo)、受信したACKメッセージはACK処
理手段134に渡される。ACK処理手段134は、受信したACK
メッセージがRTCEオプションフィールドを含んでいる場
合、まず、RTCEオプションフィールドのRound Trip Cou
nter Echo値フィールドti_rtceの値を参照し、ti_rtce
の値がそのときのRTCの値と等しければ(同、ステップX
4−1でYes)RTCの値を一つ分カウントアップする(同、
ステップX4−2)。そして、ACK処理手段134は、この場
合送信したデータセグメントに対して順序正しく累積確
認が帰ってくるので(同、ステップS3とS10でNo)、累
積確認により送達が確認されたデータを送信バッファか
ら削除し、この累積確認の内容を反映するように送信セ
グメントリストを編集し(送信セグメントリストに累積
確認で送達確認されたリスト要素がある場合はそれを削
除)、snd_cwndの値を更新し、snd_unaとp_max_seqの値
をこのACKメッセージで累積確認された値ti_ackに設定
してデータセグメント送信処理手段121に送信要求を行
なう(同、ステップS20、X5、S22からS23)。
【0059】データセグメント送信処理手段121が送信
したデータセグメントが損失し、それ以外の送信したデ
ータセグメントが送信順通りにデータセグメント受信処
理手段231に受信された場合、データセグメント受信処
理手段231では損失したデータセグメント以外のデータ
セグメントを受信し、受信したデータセグメントを通知
されたACK送信処理手段221は、損失したデータセグメン
ト以降のシーケンス番号を持つデータセグメントの受信
に対してはそのデータセグメントの受信を知らせるSACK
オプションを含む重複ACKを作成し、その重複ACKを送信
装置1に送信する。ACK受信処理手段13では、SACKオプシ
ョンを含む重複ACKを受信するとまず、SACKオプション
処理手段133がSACKオプションで通知されている情報を
送信セグメントリストに反映し(送達が通知されている
データセグメントのリスト要素を送信セグメントリスト
から削除)(図5中、ステップS1でYes、X1)、重複ACK
をACK処理手段134に渡す。ACK処理手段134では重複ACK
を渡されると、重複ACK受信回数カウンタdupacksをカウ
ントアップする(同、ステップS3でNo、S10でYes、S11
実行、S12でNo)。重複ACKの受信回数が規定数rxmtthre
shに達した場合(同、ステップS12でYes)は、ACK処理
手段134は、その重複ACKで累積確認された次以降のデー
タセグメントを1つ再送し、データセグメント再送を反
映するように送信セグメントリストを編集し(同、ステ
ップX9)、エラー制御処理のための各種変数の初期設定
を行なう(同、ステップS14)。エラー制御処理のため
の変数の初期設定では、p_max_seqにsnd_maxを記憶し、
推定した滞留データサイズsnd_nxt−snd_una−dupacks
*segszをpipeに設定し、ssthreshと輻輳ウィンドウサ
イズsnd_cwndにそれまでの輻輳ウィンドウサイズの半分
の値snd_cwnd/2を設定する。ここで、segszとは、MSS
のことである。
【0060】以降、データセグメント送信処理手段121
とACK受信処理手段13はp_max_seqで記憶しているデータ
セグメントが累積確認されるまでエラー制御処理を行な
う。
【0061】エラー制御処理では、ACK処理手段134は、
受信されたACKメッセージに対して、そのACKメッセージ
の累積確認がそれまで累積確認していたデータセグメン
トを更新しない場合(同、ステップS3とS30でそれぞれY
es、S31でNo)はpipeの値をsegsz分小さくし、データセ
グメント送信処理手段121に送信要求をする(同、ステ
ップS37、S36)。それまでの累積確認を更新するACKメ
ッセージを受信した場合(同、ステップS3とS30とS31で
Yes)は、累積確認されたデータセグメントを送信バッ
ファから削除し(同、ステップS32)、この累積確認の
内容を送信セグメントリストに反映させ(リスト要素が
含むデータセグメントが累積確認で送達確認されたデー
タに含まれるリスト要素を送信セグメントリストから削
除)(同、ステップX6)、pipeの値を前述のステップX6
で削除したリスト要素が含んでいたデータのサイズの合
計分減じ(同、ステップX7)、snd_unaの値をti_ackに
設定して(同、ステップS35)、データセグメント送信
処理手段12に送信要求をする(同、ステップS36)。
【0062】エラー制御中に送信要求をされたデータセ
グメント送信処理手段121は、輻輳ウィンドウpipeの値
がsnd_cwndの値よりも小さい場合にデータセグメントを
作成し、送信する(図4中、ステップS40とS50でYes)。
その際にはデータセグメント送信処理手段121は、ま
ず、送信セグメントリストから再送すべきデータの有無
を調べ、再送すべきデータがあれば(同、ステップX12
でYes)、そのデータセグメントを作成し(同、ステッ
プS52)、生成したデータセグメントに対応するリスト
要素を送信セグメントリストから削除し(同、ステップ
X13)、pipeの値を前記ステップX13で削除したリスト要
素が含むデータのサイズ分、すなわち、生成したデータ
セグメントのサイズ分、減じる(同、ステップX14)。
再送すべきデータが無く(同、ステップX12でNo)、送
信すべきデータがあれば(同、ステップS53でYes)後続
の新規のデータセグメントを作成する(同、ステップS5
4)。再送すべきデータとはこの場合送信セグメントリ
ストのリスト要素が記憶しているデータで、かつ、リス
ト要素のrtの値が現在のラウンドトリップカウンタRTC
の値より2以上小さい値になっているリスト要素が記憶
しているデータのことであり、データセグメント送信処
理手段121はこのようなデータを送信セグメントリスト
の先頭方向から順に選択する。すなわち、データセグメ
ント送信処理手段121は、送信セグメントリストの先頭
のリスト要素から、rt≦RTC−2となるリスト要素を探
し、そのようなリスト要素が存在すれば、そのリスト要
素のstartからendまでを再送の対象とする。
【0063】再送データセグメントの場合も、新規デー
タセグメントの場合もいずれにおいてもpipeの値をその
データセグメントのサイズ分増やし(同、ステップS5
5)、そのデータセグメントにRTCオプションフィールド
を付加してそのRound Trip Counter値フィールドti_rtc
に現在のラウンドトリップカウンタRTCの値を設定し
(同、ステップX15)、データセグメント送信の内容を
示すリスト要素(startとendの値がデータセグメントが
含むデータの先頭と末尾のデータのシーケンス番号で、
rtの値がデータセグメントのti_rtcの値)を作成してリ
スト要素を送信セグメントリストの末尾に追加し(同、
ステップX16)、そのデータセグメントを送信する
(同、ステップS56)。
【0064】p_max_seqに記憶しているシーケンス番号
のデータセグメントが累積確認された場合はデータセグ
メント送信処理手段121とACK受信処理手段13はエラー制
御を終了するが、そのようなACKメッセージを受信した
場合(図5中、ステップS3でYes、S30でNo)、ACK処理手
段134は、通常のACK処理と同様送達確認されたセグメン
トを送信バッファから削除し(同、ステップS20)、累
積確認されたデータの内容を持つリスト要素を送信セグ
メントリストから削除し(同、ステップX5)、エラー制
御のための各種変数を更新し(同、ステップS22)、デ
ータセグメント送信処理手段121に送信要求を行なう
(同、ステップS23)。
【0065】以上のように、ラウンドトリップカウンタ
を導入し、送信するデータセグメントにラウンドトリッ
プカウンタ値を含め、送信したデータセグメントと送信
時のラウンドトリップカウンタ値を関連させて記憶して
おき、ACKメッセージに含まれるRound Trip Counter Ec
ho値フィールドの値を利用することにより再送したデー
タセグメントの損失を検出し、再度、再送することがで
き、スループット特性を向上させることができる。例え
ば、既存の技術の課題で説明した図17のシーケンスと同
様な状況においては、図6で示す通り、再送したデータ
セグメント1:1000の損失を後続のデータセグメントで
やり取りされるRTCの値で検出し、再送タイマのタイム
アウトを待たずデータセグメント1:1000の再度の再送
を行なうことができる(図6ではrtc=4で再度の再送を
行っている。)。
【0066】また、送信セグメントリストからリスト要
素を削除する際に、削除したリスト要素が示すデータセ
グメントのサイズをpipeから減じることにより、エラー
制御処理中のACKメッセージの損失に対して、それによ
り1MSS分輻輳ウィンドウ分を使い切れないような状況を
回避し、スループット特性を向上させることができる。
例えば、既存の技術の課題で説明した図18のシーケンス
と同様な状況においては、一つのACKメッセージが損失
した後では1MSS分の輻輳ウィンドウが使用されていない
状況になったが、本発明の第1の実施の形態において
は、図7で示す通り、ACKメッセージが損失した後でも後
続のACKメッセージ受信により1MSS分の輻輳ウィンドウ
が使用されないような状況は回避される。
【0067】本第1の発明の実施の形態では、データの
送信のみを行なうアプリケーションサービス実行手段11
を搭載する送信装置1とデータの受信のみを行なうアプ
リケーションサービス実行手段21を搭載する受信装置2
からなる構成を採っているが、一つの装置にデータの送
受信を行なうようなアプリケーションサービス実行手段
を搭載し、かつ、データセグメント送信処理手段121と
データセグメント受信処理手段231、ACK送信処理手段22
1、ACK受信処理手段13、パケット送信手段14、パケット
受信手段15を搭載させることにより、本発明の第1の実
施の形態の効果を持ち、データの送信、受信を行なえる
装置を構成することができる。
【0068】また、その際に、図3に示した二つのオプ
ションをLengthフィールドの値として4を持ち、Kindフ
ィールドに新規のオプション識別子の値を持ち、Length
フィールド以降にRound Trip Counter値フィールドと、
Round Trip Counter Echo値フィールドを持つRound Tri
p Counterオプションフィールドを定義することによ
り、送信、受信の双方向においてRound Trip Counterの
やり取りのためのオプションフィールドサイズを最適化
することができる。
【0069】次に、図8から図12を参照して、本発明の
第2の実施の形態について説明する。上述した第1の実
施の形態においては、送信装置1にラウンドトリップカ
ウンタRTCを導入し、送信装置1でのデータセグメント送
信に対して送信時のRTCの値と関連付けて管理し、RTCの
値はデータセグメントのRTCフィールドと受信装置2から
返されるACKメッセージのRTCEフィールドで明示的にや
り取りしていた。これに対して、第2の実施の形態で
は、第1の実施の形態と同様にラウンドトリップカウン
タRTCを導入するが、RTCの値のやり取りを“TCP Extens
ions for HighPerformance”,RFC1323で既に規定され
ているTCPのタイムスタンプオプションを利用する形態
をとる。
【0070】本発明の第2の実施の形態の構成を図8に
示す。送信装置1、受信装置2、ネットワーク3の接続形
態と、送信装置1のアプリケーションサービス実行手段1
1、パケット送信手段14、パケット受信手段15、受信装
置2のアプリケーションサービス実行手段21、パケット
送信手段24、パケット受信手段25は第1の実施の形態と
同様であるが、送信装置1のデータセグメント送信処理
手段122、SACKオプション処理手段135、ACK処理手段136
と、受信装置2のACK送信処理手段222とデータセグメン
ト受信処理手段232が異なる。
【0071】データセグメント送信処理手段122とACK受
信処理手段13では、第1の実施の形態と同じラウンドト
リップカウンタRTCを用いるが、送信セグメントリスト
のリスト要素の構成が異なり、また、新たにラウンドト
リップカウンタ値と時刻を記録するラウンドトリップテ
ーブルが追加されている(図9)。第2の実施の形態に
おける送信セグメントリストのリスト要素は、第1の実
施の形態におけるリスト要素と同様、送信したデータセ
グメントに関する情報を記憶し、対応するデータセグメ
ントの含むデータの最初と末尾のデータのシーケンス番
号をそれぞれ“start”と“end”に格納するが、第1の
実施の形態のリスト要素と異なるのはデータセグメント
にはタイムオプションフィールド(図10)を付加し、リ
スト要素の“TS”に対応するデータセグメントに付加し
たタイムスタンプオプションのTime Stamp Value(タイ
ムスタンプバリュー)フィールド(図10中、Time Stamp
Valueフィールド(TSvalフィールド)。以降、ti_tsva
lフィールドと記述する)の値を記憶しておくことであ
る。また、ラウンドトリップテーブルはラウンドトリッ
プカウンタ(RTC)フィールドと時刻フィールドからな
るレコードのテーブルで、各ラウンドトリップカウンタ
の値をRTCフィールドに、RTCフィールドのラウンドトリ
ップカウンタ値に対して、そのラウンドトリップカウン
タ値において最初に送信したデータセグメントに付加し
たタイムスタンプオプションのTSvalフィールド値ti_ts
valを時刻フィールドに格納しておく。
【0072】データセグメント送信処理手段122は、第
1の実施の形態のデータセグメント送信処理手段121同
様、エラー制御処理中で無い場合には輻輳制御とフロー
制御の制限内で送信すべきデータがある場合にデータセ
グメントを生成し、送信するが、その際には各データセ
グメントにタイムスタンプオプションを付加し、そのti
_tsvalフィールド中に現在の時刻を格納し、データセグ
メント送信に対する前述した第2の発明の実施の形態に
おけるリスト要素を作成し、作成したリスト要素を送信
セグメントリストの末尾に追加する。また、現在のラウ
ンドトリップカウンタ値に対して、その値の時刻がラウ
ンドトリップテーブルに記録されていない場合はデータ
セグメントのti_tsvalフィールドに付加した値を時刻フ
ィールドの値として記録する。
【0073】また、データセグメント送信処理手段122
は、エラー制御中も本発明の第1の実施の形態のデータ
セグメント送信処理手段121同様、snd_cwnd≧pipeの場
合にpipe−snd_cwndを最大サイズとするデータセグメン
トを再送または新規送信し、送信時にはpipeの値を更新
するが、再送または新規送信するデータセグメントを生
成する際にはタイムスタンプオプションをデータセグメ
ントに付加し、データセグメント送信に対する前述した
第2の実施の形態におけるリスト要素を作成し、作成し
たリスト要素を送信セグメントリストの末尾に追加す
る。更には、現在のラウンドトリップカウンタ値に対し
て、その値の時刻がラウンドトリップテーブルに記録さ
れていない場合はデータセグメントのti_tsvalフィール
ドに付加した値を時刻フィールドの値として記録する。
【0074】データセグメント受信手段232は、第1の
実施の形態で説明したデータセグメント受信処理手段23
1と同様、パケット受信手段25から渡されるデータセグ
メント送信処理手段122から送信されたデータセグメン
トを受信し、受信したデータを順序正しく受信バッファ
に格納し、受信したデータセグメントの情報をACK送信
処理手段222に通知する。受信したデータセグメントに
タイムスタンプオプションが付加されている場合はその
情報もACK送信処理手段222に渡す。
【0075】ACK送信処理手段222はデータセグメント受
信処理手段232から通知されるデータセグメントの情報
からACKメッセージを作成し、パケット送信手段24に渡
す。ACK送信処理手段222は、これまで受信したデータセ
グメントが含むデータに抜けがあり、幾つかのデータブ
ロックが存在する場合、既存の技術同様SACKオプション
を用いてデータブロックを通知する。また、データセグ
メント受信処理手段232から渡されたデータセグメント
の情報にタイムスタンプオプションがある場合は作成し
たACKメッセージにタイムスタンプオプションを付加
し、そのTime Stamp Echo Replyフィールド(図10,Tim
e Stamp Echo Replyフィールド。以降、ti_tsecrフィー
ルドと記述する)に通知されたタイムスタンプオプショ
ンのti_tsvalフィールドの値を格納する。
【0076】データセグメント受信処理手段232とACK送
信処理手段222の動作は、既存の技術におけるSACKオプ
ションとタイムスタンプオプションに対応したTCPスタ
ックの動作と同じである。
【0077】ACK受信処理手段13はパケット受信手段15
から渡されるACK送信手段222が送信したACKメッセージ
を処理する手段で、更に、SACKオプション処理手段135
とACK処理手段136から構成される。SACKオプション処理
手段135は、第1の実施の形態のSACKオプション処理手
段133と同様、パケット受信手段15から渡されたACKメッ
セージにSACKオプションが付いている場合、その内容を
送信セグメントリストに反映させる。具体的には、リス
ト要素が含むデータセグメントがSACKオプションで通知
された送達確認されたデータに含まれるようなリスト要
素を送信セグメントリストから削除する。更に、エラー
制御処理中の場合は、pipeの値を削除したリスト要素が
含んでいたデータのサイズ分だけ減らす。
【0078】ACK処理手段136は、まず、受信したACKメ
ッセージがタイムスタンプオプションフィールドを含ん
でいる場合、タイムスタンプオプションフィールドのti
_tsecrの値が、Round TripテーブルのそのときのRTCの
値をRTCフィールドの値として持つレコードの時刻フィ
ールドの値(RTTable[RTC]と表現する;すなわちRTTa
ble[x]はラウンドトリップテーブルのRTCフィールドがx
の時刻フィールドの値を表す)と同じか、それより大き
ければRTCの値を一つ分カウントアップする。そして、
以降の処理は第1の実施の形態のACK処理手段134と同
様、エラー制御処理中でない場合、すなわち、Slow Sta
rtやCongestion Avoidance中は重複ACKを監視し、重複A
CKが規定回数rxmtthresh回連続で受信された場合は、FR
etの処理を行なう。その際には、重複ACKで累積確認さ
れたデータの次のデータを再送するが、この場合は第1
の実施の形態のACK処理手段134と異なり、送信するデー
タセグメントにタイムスタンプオプションを付加し、送
信するデータのデータセグメントに関する情報を持つリ
スト要素を送信セグメントリストから削除し、送信する
データのデータセグメントの情報を持つリスト要素
(“start”と“end”がそれぞれデータセグメントが含
む最初と最後のデータのシーケンス番号の値を持ち、
“TS”がデータセグメントに付加したti_tsvalの値を持
つリスト要素)を送信セグメントリストの末尾に追加
し、ラウンドトリップテーブルにその時点でのRTCの値
に対する時刻が設定されていない場合はti_tsvalの値を
時刻フィールドに設定する。そして、第1の実施の形態
のACK処理手段134と同様、各種変数の設定を行なう。AC
K処理手段136は、エラー制御処理中の場合、操作する送
信セグメントリストが第2の実施の形態の送信セグメン
トリストに変更されている点を除いては、全て第1の実
施の形態のACK処理手段134と同様に処理を行なう。
【0079】次に、図11、図12を参照して、本発明の第
2の実施の形態の動作について説明する。図11と図12は
送信装置1におけるデータセグメント送信時の処理とACK
メッセージ受信時の処理の流れを示したものである。た
だし、受信装置2から通知される受信ウィンドウサイズ
を用いたフロー制御や再送制御タイマのタイムアウト値
計算、輻輳ウィンドウの更新等については本発明に直接
関係が無いため記述を省略している。
【0080】データセグメント送信処理手段122は、エ
ラー制御処理中で無いSlow Start、Congestion Avoidan
ceの場合(図11中、ステップS40でNo)には、輻輳制御
とフロー制御の範囲内でデータセグメントを送信し、そ
の際にはデータセグメントにタイムスタンプオプション
を付加し、送信セグメントリストにデータセグメントに
関する情報を格納する(同、ステップS41〜S43およびY1
0〜Y11)。そして、Round Tripテーブルに現在のRTCの
値をRTCフィールドの値に持つレコードの時刻フィール
ドに時刻が設定されていない場合(同、ステップY12でY
es)、レコードの時刻フィールドに前記データセグメン
トのti_tsvalの値を設定し(同、ステップY13)、デー
タセグメントを送信する(同、ステップS44)。以降、
転送されるデータセグメントやACKメッセージが損失せ
ず、順序も変わらない場合、データセグメント受信処理
手段232とACK送信処理手段222はデータセグメントを受
信してその送達確認のためのACKメッセージを作成し、
送信する。この際、ACK送信処理手段222は、各ACKメッ
セージにタイムスタンプオプションフィールドを付加
し、そのタイムスタンプオプションフィールドのti_tse
crフィールドには、そのACKメッセージを送信する契機
となったデータセグメントに付加されているタイムスタ
ンプオプションのti_tsvalフィールドの値を格納する。
ACK受信処理手段13はACKメッセージを受信すると、この
場合、SACKオプションが付加されていないためSACKオプ
ション処理手段135の処理は行なわず(図12中、ステッ
プS1でNo)、受信したACKメッセージはACK処理手段136
に渡される。
【0081】ACK処理手段136は、受信したACKメッセー
ジがタイムスタンプオプションフィールドを含んでいる
場合、まず、タイムスタンプオプションフィールドのti
_tsecrフィールドの値を参照し、ti_tsecrの値がRound
TripテーブルのそのときのRTCの値をRTCフィールドの値
として持つレコードの時刻フィールドの値RTTable[RT
C]と等しいか、それよりも大きければ(同、ステップY
2−1でYes)RTCの値を一つ分カウントアップする(同、
ステップY2−2)。そして、ACK処理手段136は、この場
合送信したデータセグメントに対して順序正しく累積確
認が帰ってくるので(同、ステップS3とS10でNo)、累
積確認により送達が確認されたデータを送信バッファか
ら削除し(同、ステップS20)、この累積確認の内容を
反映するように送信セグメントリストを編集し(送信セ
グメントリストに累積確認で送達確認されたリスト要素
がある場合はそれを削除)(同、ステップY3)、以降、
第1の実施の形態のACK処理手段134と同様に各種変数の
値を設定し、データセグメント送信処理手段122に送信
要求を行なう(同、ステップS22、S23)。
【0082】データセグメント送信処理手段122が送信
したデータセグメントが損失し、それ以外の送信したデ
ータセグメントが送信順通りにデータセグメント受信処
理手段232に受信された場合、データセグメント受信処
理手段232では損失したデータセグメント以外のデータ
セグメントを受信し、受信したデータセグメントを通知
されたACK送信処理手段222は、損失したデータセグメン
ト以降のシーケンス番号を持つデータセグメントの受信
に対してはそのデータセグメントの受信を知らせるSACK
オプションを含む重複ACKを作成し、その重複ACKを送信
装置1に送信する。ACK受信処理手段13では、SACKオプシ
ョンを含む重複ACKを受信するとまず、SACKオプション
処理手段135がSACKオプションで通知されている情報を
送信セグメントリストに反映し(送達が通知されている
データセグメントのリスト要素を送信セグメントリスト
から削除)(同、ステップS1でYes、Y1)、重複ACKをAC
K処理手段136に渡す。ACK処理手段136では重複ACKを渡
されると、重複ACK受信回数カウンタdupacksをカウント
アップする(同、ステップS3でNo、S10でYes、S11実
行、S12でNo)。重複ACKの受信回数が規定数rxmtthresh
に達した場合(同、ステップS12でYes)は、ACK処理手
段136は、その重複ACKで累積確認された次以降のデータ
セグメントを1つ再送し、データセグメント再送を反映
するように送信セグメントリストを編集、RTTable[RT
C]の値が未設定の場合は再送したデータセグメントのt
i_tsvalの値をレコードに設定し(同、ステップY9)、
第1の実施の形態のACK処理手段134と同様にエラー制御
処理のための各種変数の初期設定を行なう(同、ステッ
プS14)。
【0083】以降、データセグメント送信処理手段122
とACK受信処理手段13はp_max_seqで記憶しているデータ
セグメントが累積確認されるまでエラー制御処理を行な
う。
【0084】エラー制御処理では、ACK処理手段136は、
操作する送信セグメントリストが第2の実施の形態の送
信セグメントリストに変更されている点を除いては、全
て第1の実施の形態のACK処理手段134と同様に処理を行
なうためここでは詳細な説明を省略する。
【0085】エラー制御中に送信要求をされたデータセ
グメント送信処理手段122は、輻輳ウィンドウpipeの値
がsnd_cwndの値よりも小さい場合にデータセグメントを
作成し、送信する(図11中、ステップS40とS50でYe
s)。その際にはデータセグメント送信処理手段122は、
まず、送信セグメントリストから再送すべきデータの有
無を調べ、再送すべきデータがあれば(同、ステップY2
0でYes)、そのデータセグメントを作成し(同、ステッ
プS52)、生成したデータセグメントに対応するリスト
要素を送信セグメントリストから削除し(同、ステップ
Y25)、pipeの値を前記ステップY25で削除したリスト要
素が含むデータのサイズ分、すなわち、生成したデータ
セグメントのサイズ分、減じる(同、ステップX14)。
再送すべきデータが無く(同、ステップX12でNo)、送
信すべきデータがあれば(同、ステップS53でYes)後続
の新規のデータセグメントを作成する(同、ステップS5
4)。再送すべきデータとはこの場合送信セグメントリ
ストのリスト要素が記憶しているデータで、かつ、リス
ト要素のTSフィールドの値が現在のラウンドトリップカ
ウンタRTCの値より2小さい値をRTCフィールドに持つRou
nd Tripテーブルのレコードの時刻フィールドの値RTTab
le[RTC−2]と等しいか、それより小さな値になってい
るリスト要素が記憶しているデータのことであり、デー
タセグメント送信処理手段122はこのようなデータを送
信セグメントリストの先頭方向から順に選択する。すな
わち、データセグメント送信処理手段122は、送信セグ
メントリストの先頭のリスト要素から、TS≦RTTable[R
TC−2]となるリスト要素を探し、そのようなリスト要
素が存在すれば、そのリスト要素のstartからendまでを
再送の対象とする。
【0086】再送データセグメントの場合も、新規デー
タセグメントの場合もいずれにおいてもpipeの値をその
データセグメントのサイズ分増やし(同、ステップS5
5)、そのデータセグメントにタイムスタンプオプショ
ンフィールドを付加してそのti_tsvalフィールドに現在
の時刻を設定し(同、ステップY21)、データセグメン
ト送信の内容を示すリスト要素(startとendの値がデー
タセグメントが含むデータの先頭と末尾のデータのシー
ケンス番号で、TSの値がデータセグメントti_tsvalの
値)を作成してリスト要素を送信セグメントリストの末
尾に追加する(同、ステップY22)。さらに、現時点で
のRTCの値をRTCフィールドの値に持つRound Tripテーブ
ルのレコードについて、その時刻フィールドに値が設定
されていない場合(同、ステップY23でYes)は、時刻フ
ィールドに前記データセグメントのti_tsvalの値を設定
し(同、ステップY24)、最後に前記データセグメント
を送信する(同、ステップS56)。
【0087】以上のように、ラウンドトリップカウンタ
を導入し、送信装置1でラウンドトリップカウンタと送
信したデータセグメントに付加したタイムスタンプオプ
ションのti_tsvalの値の対応と管理し、送信したデータ
セグメントのti_tsvalを記憶し、送受信されるデータセ
グメントとACKメッセージにタイムスタンプオプション
を付加することにより、再送したデータセグメントの損
失を検出し、再度、再送することができ、スループット
特性を向上させることができる。例えば、既存の技術の
課題で説明した図17のシーケンスと同様な状況において
は、第1の実施の形態で示した図6で示すのと同様な、
シーケンスを実現することができる。
【0088】本第2の発明の実施の形態では、データの
送信のみを行なうアプリケーションサービス実行手段11
を搭載する送信装置1とデータの受信のみを行なうアプ
リケーションサービス実行手段21を搭載する受信装置2
からなる構成を採っているが、第1の実施の形態同様、
一つの装置でデータの送信、受信を行なえる装置を構成
することができる。
【0089】以上説明した本発明によるデータ通信装置
(データ通信システム)の主要な特徴をまとめると次の
ようになる。
【0090】本発明の第1の通信システムは、送信装置
に、送信するデータパケットのラウンドトリップ数(往
復数)を計数するカウンタを保持し、送信するデータパ
ケットにその時点でのカウンタ値をラウンドトリップ通
知情報として含ませ、送信した各データパケットに対し
て、データパケットとデータパケット送信時のカウンタ
の値の対応を記憶し、記憶したカウンタの値がその時点
でのカウンタの値より2つ以上小さい場合に、記憶した
カウンタ値に対応するデータパケットが損失したとみな
し、データパケットを再送する手段(図1の121)と、受
信したデータパケットに対するACKパケットに受信した
データパケットがラウンドトリップ通知情報として含む
カウンタ値をラウンドトリップ応答情報として含ませる
手段(図1の221と231)と、受信したACKパケットにラウ
ンドトリップ応答情報として含まれている値がカウンタ
の値と等しい場合に、カウンタの値を1つ増加させる手
段(図1の134)を有する。このような構成を採用し、再
送したデータパケットの損失を検出しデータパケットを
再送することにより本発明の目的を達成することができ
る。
【0091】本発明の第2の通信システムは、送信する
データパケットのラウンドトリップ数を計数するカウン
タを保持し、送信するデータパケットにその時点での時
刻を時刻通知情報として含ませ、送信した各データパケ
ットに対して、データパケットとデータパケット送信時
の時刻の対応を第1のテーブル(図9のラウンドトリッ
プテーブル)に記憶し、カウンタの取る各カウンタ値に
対して、カウンタ値とカウンタがそのカウンタ値を取っ
た後初めてデータパケットを送信するときの送信時の時
刻との対応を第2のテーブル(図9の送信セグメントリ
スト)に記憶し、第1のテーブルに記憶した時刻の値
が、第2のテーブルに記憶したその時点でのカウンタの
値より2つ小さいカウンタ値に対応する時刻より早い場
合に、第1のテーブルに記憶した時刻に対応するデータ
パケットが損失したとみなし、データパケットを再送す
る手段(図8の122)と、受信したデータパケットに対す
るACKパケットに受信したデータパケットが時刻通知情
報として含む時刻を時刻応答情報として含ませる手段
(図8の222と232)と、受信したACKパケットに時刻応答
情報として含まれている時刻が、第2のテーブルに記憶
したその時点でのカウンタの値と対応させて記憶させた
時刻と等しいかまたは大きい場合に、カウンタの値を1
つ増加させる手段(図8の136)を有する。このような構
成を採用し、再送したデータパケットの損失を検出しデ
ータパケットを再送することにより本発明の目的を達成
することができる。本発明の第3の通信システムは、エ
ラー制御中にデータ受信装置から受信したACKパケット
で新規に送達確認がなされたデータの合計サイズ分の閉
じられたウィンドウを送信ウィンドウから解放し、その
分を送信可能とする手段(図1の133と134。図8の135と1
36)。このような構成を採用することにより、本発明の
目的を達成することができる。
【0092】なお、本発明の実施の形態は、上述したも
のに限定されることなく、例えば、各装置および各装置
内の各構成要素を統合、分割したり、分散して配置する
等、適宜変更可能である。また、本発明のデータ通信装
置あるいはデータ通信システムは、送信部分と受信部分
を分割した上で製品として頒布することが可能である。
また、本発明の通信装置あるいは送信装置もしくは受信
装置は、コンピュータおよびその周辺装置と、コンピュ
ータによって実行されるプログラムとから構成すること
ができ、そのコンピュータによって実行れるプログラム
も、全体あるいは部分として、コンピュータ読み取り可
能な記録媒体または通信回線を介して頒布することおよ
び利用することが可能である。
【0093】
【発明の効果】第1の効果は、再送されたデータセグメ
ントが損失した場合において、既存の技術よりも優れた
スループット特性を得られることである。その理由は、
送信するデータパケットのラウンドトリップ数を計数す
るカウンタ(Round Trip Counter)を導入し、再送時に
損失したデータセグメントに対しては、Round Trip Cou
nterの値が2以上増えても送達が確認されないことによ
りデータセグメントの損失を検出し、データセグメント
の再送が行なえるからである。
【0094】第2の効果は、エラー制御処理中に送信さ
れたデータセグメントの到着順序が入れ替わった場合、
または、送信ウィンドウサイズが十分大きくない場合に
おいて、既存の技術に比べスループット特性が向上する
ことである。その理由は、データセグメントを再送する
か、否かの判断に、送信ウィンドウサイズとは関係の無
いラウンドトリップ数(Round Trip数)を用いているか
らである。Round Trip数を用いた再送判断はデータセグ
メントの到着順序の入れ替わりに対して完全に対応でき
るものではないが、同一Round Tripのデータセグメント
の到着順序の入れ替わりに対しては無駄な再送が発生せ
ず、この場合は既存の技術に比べてスループット特性が
向上する。
【0095】第3の効果は、エラー制御処理中にデータ
受信装置(例えば受信側TCP)からのACKメッセージが損
失した場合において、既存の技術に比べスループット特
性が向上することである。その理由は、エラー制御処理
中のネットワークに滞留しているデータサイズの推定の
際に、例えばSACKオプションと累積確認で送達が確認さ
れたデータのサイズ、すなわちACKパケットで新規に送
達確認がなされたデータの合計サイズ分を考慮し、送信
フロー制御を行なうための送信ウィンドウのうちの閉じ
られたウィンドウを送信ウィンドウから解放してその分
を送信可能としているからである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の構成を示すブロッ
ク図
【図2】本発明の第1の実施の形態のデータ構造を示す
【図3】RTCオプションフィールドの構成の例を示す図
【図4】本発明の第1の実施の形態の送信動作を示す処
理フロー図
【図5】本発明の第1の実施の形態の受信動作を示す処
理フロー図
【図6】本発明の第1の実施の形態の動作の例を示すシ
ーケンス図
【図7】本発明の第1の実施の形態の動作の例を示すシ
ーケンス図
【図8】本発明の第2の実施の形態の構成を示すブロッ
ク図
【図9】本発明の第2の実施の形態のデータ構造を示す
【図10】タイムスタンプオプションフィールドの構成
を示す図
【図11】本発明の第2の実施の形態の送信動作を示す
処理フロー図
【図12】本発明の第2の実施の形態の受信動作を示す
処理フロー図
【図13】既存の技術の構成を示すブロック図
【図14】既存の技術のデータ構造を示す図
【図15】既存の技術の送信動作を示す処理フロー図
【図16】既存の技術の受信動作を示す処理フロー図
【図17】既存の技術の動作の例を示すシーケンス図
【図18】既存の技術の動作の例を示すシーケンス図
【符号の説明】
1 送信装置 2 受信装置 3 ネットワーク 11 アプリケーションサービス実行手段 12 データセグメント送信処理手段 13 ACK受信処理手段 14 パケット送信手段 15 パケット受信手段 21 アプリケーションサービス実行手段 22 ACK送信処理手段 23 データセグメント受信処理手段 24 パケット送信手段 25 パケット受信手段 121 データセグメント送信処理手段 122 データセグメント送信処理手段 131 SACKオプション処理手段 132 ACK処理手段 133 SACKオプション処理手段 134 ACK処理手段 135 SACKオプション処理手段 136 ACK処理手段 221 ACK送信処理手段 222 ACK送信処理手段 231 データセグメント受信処理手段 232 データセグメント受信処理手段

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 データ送信装置とデータ受信装置がネッ
    トワークで接続され、前記データ送信装置は前記データ
    受信装置へデータパケットを送信し、前記データ受信装
    置は前記データ送信装置に受信したデータパケットの送
    達確認を通知するACKパケットを送信し、前記データ送
    信装置は前記ACKパケットの内容から送信したデータパ
    ケットの損失を検出し、該損失を検出したデータパケッ
    トを再送することによりデータパケットのエラー制御を
    行なうデータ通信システムにおいて、 前記データ送信装置は、 送信するデータパケットのラウンドトリップ数を計数す
    るカウンタと、 送信した各データパケットに対して、該データパケット
    と該データパケット送信時の前記カウンタの値の対応を
    記憶し、前記記憶したカウンタの値がその時点での前記
    カウンタの値より2つ以上小さい場合に、該記憶したカ
    ウンタ値に対応するデータパケットが損失したとみな
    し、該データパケットを再送する手段とを備えることを
    特徴とするデータ通信システム。
  2. 【請求項2】 前記データ送信装置において、送信する
    データパケットにその時点での前記カウンタ値をラウン
    ドトリップ通知情報として含ませる手段と、前記データ
    受信装置において、受信したデータパケットに対するAC
    Kパケットに該受信したデータパケットがラウンドトリ
    ップ通知情報として含む前記カウンタ値をラウンドトリ
    ップ応答情報として含ませる手段と、 前記データ送信装置において、受信したACKパケットに
    ラウンドトリップ応答情報として含まれている値が前記
    カウンタの値と等しい場合に、前記カウンタの値を1つ
    増加させる手段とをさらに備えることを特徴とする請求
    項1記載のデータ通信システム。
  3. 【請求項3】 データ送信装置とデータ受信装置がネッ
    トワークで接続され、前記データ送信装置は前記データ
    受信装置へデータパケットを送信し、前記データ受信装
    置は前記データ送信装置に受信したデータパケットの送
    達確認を通知するACKパケットを送信し、前記データ送
    信装置は前記ACKパケットの内容から送信したデータパ
    ケットの損失を検出し、該損失を検出したデータパケッ
    トを再送することによりデータパケットのエラー制御を
    行なうデータ通信システムにおいて、 前記データ送信装置は、 送信するデータパケットのラウンドトリップ数を計数す
    るカウンタと所定のデータを記憶する第1及び第2のテ
    ーブルと、 送信した各データパケットに対して、該データパケット
    と該データパケット送信時の時刻の対応を前記第1のテ
    ーブルに記憶する手段と、 前記カウンタの取る各カウンタ値に対して、カウンタ値
    と前記カウンタがそのカウンタ値を取った後初めてデー
    タパケットを送信するときの送信時の時刻との対応を前
    記第2のテーブルに記憶する手段と、 前記第1のテーブルに記憶した時刻の値が、前記第2の
    テーブルに記憶したその時点での前記カウンタの値より
    2つ小さいカウンタ値に対応する時刻より早い場合に、
    該第1のテーブルに記憶した時刻に対応するデータパケ
    ットが損失したとみなし、該データパケットを再送する
    手段とを備えることを特徴とするデータ通信システム。
  4. 【請求項4】 前記データ送信装置において、送信する
    データパケットにその時点での時刻を時刻通知情報とし
    て含ませる手段と、 前記データ受信装置において、受信したデータパケット
    に対するACKパケットに該受信したデータパケットが時
    刻通知情報として含む前記時刻を時刻応答情報として含
    ませせる手段と、 前記データ送信装置において、受信したACKパケットに
    時刻応答情報として含まれている時刻が、前記第2のテ
    ーブルに記憶したその時点での前記カウンタの値と対応
    させて記憶させた時刻と等しいかまたは大きい場合に、
    前記カウンタの値を1つ増加させる手段とをさらに備え
    ることを特徴とする請求項3記載のデータ通信システ
    ム。
  5. 【請求項5】 データ送信装置とデータ受信装置がネッ
    トワークで接続され、前記データ送信装置は前記データ
    受信装置へデータパケットを送信し、前記データ受信装
    置は前記データ送信装置に受信したデータパケットの送
    達確認を通知するACKパケットを送信し、前記データ送
    信装置は前記ACKパケットの内容から送信したデータパ
    ケットの損失を検出し、該損失を検出したデータパケッ
    トを再送することによりデータパケットのエラー制御を
    行ない、更には、データパケットの損失を検出後、該デ
    ータパケットの送達がデータ送信装置によって確認され
    るまでのエラー制御中に送信ウィンドウにより送信フロ
    ー制御を行なうデータ通信システムにおいて、 前記データ送信装置は、エラー制御中に前記データ受信
    装置から受信したACKパケットで新規に送達確認がなさ
    れたデータの合計サイズ分の閉じられたウィンドウを前
    記送信ウィンドウから解放し、その分を送信可能とする
    ことを特徴とするデータ通信システム。
  6. 【請求項6】 データ送信装置とデータ受信装置がネッ
    トワークで接続され、前記データ送信装置は前記データ
    受信装置へデータパケットを送信し、前記データ受信装
    置は前記データ送信装置に受信したデータパケットの送
    達確認を通知するACKパケットを送信し、前記データ送
    信装置は前記ACKパケットの内容から送信したデータパ
    ケットの損失を検出し、該損失を検出したデータパケッ
    トを再送することによりデータパケットのエラー制御を
    行なうデータ通信方法において、前記データ送信装置
    は、送信するデータパケットのラウンドトリップ数を計
    数するカウンタを保持し、 送信した各データパケットに対して、該データパケット
    と該データパケット送信時の前記カウンタの値の対応を
    記憶し、前記記憶したカウンタの値がその時点での前記
    カウンタの値より2つ以上小さい場合に、該記憶したカ
    ウンタ値に対応するデータパケットが損失したとみな
    し、該データパケットを再送することを特徴とするデー
    タ通信方法。
  7. 【請求項7】 前記データ送信装置は、送信するデータ
    パケットにその時点での前記カウンタ値をラウンドトリ
    ップ通知情報として含ませ、 前記データ受信装置は、受信したデータパケットに対す
    るACKパケットに該受信したデータパケットがラウンド
    トリップ通知情報として含む前記カウンタ値をラウンド
    トリップ応答情報として含ませ、 前記データ送信装置は、受信したACKパケットにラウン
    ドトリップ応答情報として含まれている値が前記カウン
    タの値と等しい場合に、前記カウンタの値を1つ増加さ
    せることを特徴とする請求項6記載のデータ通信方法。
  8. 【請求項8】 データ送信装置とデータ受信装置がネッ
    トワークで接続され、前記データ送信装置は前記データ
    受信装置へデータパケットを送信し、前記データ受信装
    置は前記データ送信装置に受信したデータパケットの送
    達確認を通知するACKパケットを送信し、前記データ送
    信装置は前記ACKパケットの内容から送信したデータパ
    ケットの損失を検出し、該損失を検出したデータパケッ
    トを再送することによりデータパケットのエラー制御を
    行なうデータ通信方法において、前記データ送信装置
    は、 送信するデータパケットのラウンドトリップ数を計数す
    るカウンタと所定のデータを記憶する第1及び第2のテ
    ーブルを保持し、 送信した各データパケットに対して、該データパケット
    と該データパケット送信時の時刻の対応を前記第1のテ
    ーブルに記憶し、 前記カウンタの取る各カウンタ値に対して、カウンタ値
    と前記カウンタがそのカウンタ値を取った後初めてデー
    タパケットを送信するときの送信時の時刻との対応を前
    記第2のテーブルに記憶し、 前記第1のテーブルに記憶した時刻の値が、前記第2の
    テーブルに記憶したその時点での前記カウンタの値より
    2つ小さいカウンタ値に対応する時刻より早い場合に、
    該第1のテーブルに記憶した時刻に対応するデータパケ
    ットが損失したとみなし、該データパケットを再送する
    ことを特徴とするデータ通信方法。
  9. 【請求項9】 前記データ送信装置は、送信するデータ
    パケットにその時点での時刻を時刻通知情報として含ま
    せ、 前記データ受信装置は、受信したデータパケットに対す
    るACKパケットに該受信したデータパケットが時刻通知
    情報として含む前記時刻を時刻応答情報として含ませ、 前記データ送信装置は、受信したACKパケットに時刻応
    答情報として含まれている時刻が、前記第2のテーブル
    に記憶したその時点での前記カウンタの値と対応させて
    記憶させた時刻と等しいかまたは大きい場合に、前記カ
    ウンタの値を1つ増加させることを特徴とする請求項8
    記載のデータ通信方法。
  10. 【請求項10】 データ送信装置とデータ受信装置がネ
    ットワークで接続され、前記データ送信装置は前記デー
    タ受信装置へデータパケットを送信し、前記データ受信
    装置は前記データ送信装置に受信したデータパケットの
    送達確認を通知するACKパケットを送信し、前記データ
    送信装置は前記ACKパケットの内容から送信したデータ
    パケットの損失を検出し、該損失を検出したデータパケ
    ットを再送することによりデータパケットのエラー制御
    を行ない、更には、データパケットの損失を検出後、該
    データパケットの送達がデータ送信装置によって確認さ
    れるまでのエラー制御中に送信ウィンドウにより送信フ
    ロー制御を行なうデータ通信方法において、 前記データ送信装置は、エラー制御中に前記データ受信
    装置から受信したACKパケットで新規に送達確認がなさ
    れたデータの合計サイズ分の閉じられたウィンドウを前
    記送信ウィンドウから解放し、その分を送信可能とする
    ことを特徴とするデータ通信方法。
  11. 【請求項11】 請求項6〜10のいずれか1項記載の
    データ通信方法をコンピュータを用いて実行する際に用
    いられるプログラムを記録したコンピュータ読み取り可
    能な記録媒体。
JP2000341680A 2000-11-09 2000-11-09 データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体 Withdrawn JP2002152308A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2000341680A JP2002152308A (ja) 2000-11-09 2000-11-09 データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体
US10/010,330 US20020054570A1 (en) 2000-11-09 2001-11-08 Data communication system, data communication method, and recording medium with data communication program recorded thereon
EP01126782A EP1206062A3 (en) 2000-11-09 2001-11-09 Data communication system, data communication method, and recording medium with data communication program recorded thereon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000341680A JP2002152308A (ja) 2000-11-09 2000-11-09 データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体

Publications (1)

Publication Number Publication Date
JP2002152308A true JP2002152308A (ja) 2002-05-24

Family

ID=18816387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000341680A Withdrawn JP2002152308A (ja) 2000-11-09 2000-11-09 データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体

Country Status (3)

Country Link
US (1) US20020054570A1 (ja)
EP (1) EP1206062A3 (ja)
JP (1) JP2002152308A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004040861A1 (ja) * 2002-11-01 2004-05-13 Matsushita Electric Industrial Co., Ltd. 通信システム及び方法
JP2006157918A (ja) * 2004-11-29 2006-06-15 Nec Corp 高スループットを実現する通信システム、通信端末、セッション中継装置、及び通信プロトコル
JP2006173961A (ja) * 2004-12-15 2006-06-29 Hiroyasu Obata 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式
US7660907B2 (en) 2002-06-07 2010-02-09 Samsung Electronics Co., Ltd. Transmission packet for performing multi-functions over network and communication method and apparatus using the transmission packet
US7773523B2 (en) 2004-08-26 2010-08-10 Nec Corporation Network-quality determining method and apparatus for use therewith
JP2014057170A (ja) * 2012-09-11 2014-03-27 Fujitsu Ltd 転送装置、転送方法および転送プログラム

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020167948A1 (en) * 2001-05-09 2002-11-14 Dayong Chen Communications methods, apparatus, computer program products and data structures using segment sequence numbers
US7237007B2 (en) * 2001-12-05 2007-06-26 Qualcomm Incorporated Method and system for flow control between a base station controller and a base transceiver station
KR100460967B1 (ko) * 2001-12-18 2004-12-09 삼성전자주식회사 접속률을 높일 수 있는 무선통신기기 및 그 방법
US8270423B2 (en) 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US7630305B2 (en) * 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US7349400B2 (en) * 2003-04-29 2008-03-25 Narus, Inc. Method and system for transport protocol reconstruction and timer synchronization for non-intrusive capturing and analysis of packets on a high-speed distributed network
US7593338B2 (en) * 2003-06-27 2009-09-22 Samsung Electronics Co., Ltd. Congestion control method and system for reducing a retransmission timeout count in a transmission control protocol
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
EP1533932A1 (en) * 2003-11-19 2005-05-25 Mitsubishi Denki Kabushiki Kaisha Error control mechanism for a segment based link layer in a digital network
JP2005167353A (ja) * 2003-11-28 2005-06-23 Ntt Docomo Inc 送信装置およびプログラム
US7298749B2 (en) * 2004-01-07 2007-11-20 International Business Machines Corporation Completion coalescing by TCP receiver
JP4594110B2 (ja) * 2004-01-23 2010-12-08 株式会社エヌ・ティ・ティ・ドコモ 送信装置およびプログラム
US8125910B2 (en) * 2004-06-25 2012-02-28 Nec Corporation Communication system
JP2006081126A (ja) * 2004-09-13 2006-03-23 Matsushita Electric Ind Co Ltd 移動局装置および上り回線伝送レート制御方法
US7644201B2 (en) * 2004-11-17 2010-01-05 International Business Machines Corporation Method and system for performance enhancement via transaction verification using a counter value in a polled data storage environment
US7480301B2 (en) * 2004-12-16 2009-01-20 International Business Machines Corporation Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
WO2006066606A1 (en) * 2004-12-22 2006-06-29 Telefonaktiebolaget Lm Ericsson (Publ) Data flow control with duplicate acknowledgment
US7574231B2 (en) * 2005-09-07 2009-08-11 Sharp Kabushiki Kaisha Receiving device, rebroadcast content scheduling device, reception state notifying method, rebroadcast content scheduling method, rebroadcast content scheduling system, rebroadcast content scheduling program, and recording medium
US7719967B2 (en) 2005-09-28 2010-05-18 Netapp, Inc. Cumulative TCP congestion control
US7684319B2 (en) * 2006-06-29 2010-03-23 Intel Corporation Transmission control protocol congestion window
US8094557B2 (en) * 2008-07-09 2012-01-10 International Business Machines Corporation Adaptive fast retransmit threshold to make TCP robust to non-congestion events
US9485186B2 (en) * 2013-07-23 2016-11-01 Cisco Technology, Inc. Network congestion control with awareness of random packet losses
US9350663B2 (en) * 2013-09-19 2016-05-24 Connectivity Systems Incorporated Enhanced large data transmissions and catastrophic congestion avoidance over TCP/IP networks
US10432529B2 (en) 2013-09-19 2019-10-01 Connectivity Systems Incorporated Enhanced large data transmissions and catastrophic congestion avoidance over IPv6 TCP/IP networks
WO2015195357A1 (en) * 2014-06-18 2015-12-23 Luminex Corporation Apparatus and methods for magnetic mixing
US9819602B2 (en) 2015-07-27 2017-11-14 Qualcomm Incorporated Efficient datagram segmentation and reassembly for packet-switched networks
WO2017117505A1 (en) * 2015-12-31 2017-07-06 BOT Home Automation, Inc. Streaming and storing video content captured by an audio/video recording and communication device
JP2020036051A (ja) * 2016-12-28 2020-03-05 株式会社Nttドコモ ユーザ装置、及びデータ送信方法
US11032257B1 (en) 2017-12-08 2021-06-08 Rankin Labs, Llc Method for covertly delivering a packet of data over a network
US11861025B1 (en) 2018-01-08 2024-01-02 Rankin Labs, Llc System and method for receiving and processing a signal within a TCP/IP protocol stack
US10725743B2 (en) 2018-01-22 2020-07-28 John Rankin System and method for generating random numbers
WO2019152573A1 (en) 2018-01-31 2019-08-08 John Rankin System and method for secure communication using random blocks or random numbers
US11294636B2 (en) 2018-02-28 2022-04-05 Rankin Labs, Llc System and method for expanding a set of random values
WO2019183543A1 (en) 2018-03-23 2019-09-26 John Rankin System and method for identifying a speaker's community of origin from a sound sample
WO2020014354A1 (en) 2018-07-10 2020-01-16 John Rankin System and method for indexing sound fragments containing speech
WO2020033540A1 (en) 2018-08-10 2020-02-13 John Rankin System and method for covertly transmitting a payload of data
US11689543B2 (en) 2018-08-10 2023-06-27 Rankin Labs, Llc System and method for detecting transmission of a covert payload of data
US11652732B2 (en) 2018-08-21 2023-05-16 Rankin Labs, Llc System and method for scattering network traffic across a number of disparate hosts
WO2020132173A1 (en) 2018-12-19 2020-06-25 John Rankin Hidden electronic file systems
US11526357B2 (en) 2019-01-21 2022-12-13 Rankin Labs, Llc Systems and methods for controlling machine operations within a multi-dimensional memory space
WO2020154219A1 (en) 2019-01-21 2020-07-30 John Rankin Systems and methods for controlling machine operations
WO2020154223A1 (en) 2019-01-21 2020-07-30 John Rankin Systems and methods for processing network traffic using dynamic memory
US10908133B2 (en) 2019-04-17 2021-02-02 Rankin Labs, Llc System and method for detecting hidden chemicals within objects in a non-invasive manner
US11487674B2 (en) 2019-04-17 2022-11-01 Rankin Labs, Llc Virtual memory pool within a network which is accessible from multiple platforms
US11372773B2 (en) 2019-05-28 2022-06-28 Rankin Labs, Llc Supporting a virtual memory area at a remote computing machine
US11729184B2 (en) 2019-05-28 2023-08-15 Rankin Labs, Llc Detecting covertly stored payloads of data within a network
US11055166B2 (en) 2019-05-28 2021-07-06 Rankin Labs, Llc Covertly storing a payload of data within a network
US11430010B2 (en) 2019-08-07 2022-08-30 Rankin Labs, Llc System and method for influencing a primary target through word-of-mouth interaction with secondary targets
WO2021025729A1 (en) 2019-08-07 2021-02-11 John Rankin Determining proximity and attraction of objects within a coordinate system
US20230096912A1 (en) * 2019-10-03 2023-03-30 Nokia Technologies Oy Soft harq for sl range based retransmissions
WO2021183421A2 (en) 2020-03-09 2021-09-16 John Rankin Systems and methods for morpheme reflective engagement response
CN112615760B (zh) * 2020-12-18 2022-07-08 京信网络系统股份有限公司 数据传输方法、装置、基站和存储介质
CN113259256B (zh) * 2021-07-15 2021-09-21 全时云商务服务股份有限公司 一种重复数据包过滤方法、系统及可读存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2615509B2 (ja) * 1990-10-30 1997-05-28 富士通株式会社 通信装置
US5570367A (en) * 1994-07-29 1996-10-29 Lucent Technologies Inc. Asymmetric protocol for wireless communications
US5657390A (en) * 1995-08-25 1997-08-12 Netscape Communications Corporation Secure socket layer application program apparatus and method
US5664091A (en) * 1995-08-31 1997-09-02 Ncr Corporation Method and system for a voiding unnecessary retransmissions using a selective rejection data link protocol
JP3000911B2 (ja) * 1996-01-10 2000-01-17 日本電気株式会社 移動体ファクシミリ通信における自動再送プロトコルの再送待ちフレーム数最適値自動設定方式
US6049833A (en) * 1997-08-29 2000-04-11 Cisco Technology, Inc. Mapping SNA session flow control to TCP flow control
US6246684B1 (en) * 1997-12-24 2001-06-12 Nortel Networks Limited Method and apparatus for re-ordering data packets in a network environment
JP3602972B2 (ja) * 1998-07-28 2004-12-15 富士通株式会社 通信性能測定装置及びその測定方法
FI107000B (fi) * 1999-02-17 2001-05-15 Nokia Mobile Phones Ltd Otsikon pakkaaminen reaaliaikaisissa palveluissa
US6134221A (en) * 1999-04-15 2000-10-17 Motorola, Inc. Method for evaluating a communication link between a first and a second communication site
US6680955B1 (en) * 1999-08-20 2004-01-20 Nokia Networks Oy Technique for compressing a header field in a data packet

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660907B2 (en) 2002-06-07 2010-02-09 Samsung Electronics Co., Ltd. Transmission packet for performing multi-functions over network and communication method and apparatus using the transmission packet
WO2004040861A1 (ja) * 2002-11-01 2004-05-13 Matsushita Electric Industrial Co., Ltd. 通信システム及び方法
US7773523B2 (en) 2004-08-26 2010-08-10 Nec Corporation Network-quality determining method and apparatus for use therewith
JP2006157918A (ja) * 2004-11-29 2006-06-15 Nec Corp 高スループットを実現する通信システム、通信端末、セッション中継装置、及び通信プロトコル
JP2006173961A (ja) * 2004-12-15 2006-06-29 Hiroyasu Obata 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式
JP4599554B2 (ja) * 2004-12-15 2010-12-15 広島市 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式
JP2014057170A (ja) * 2012-09-11 2014-03-27 Fujitsu Ltd 転送装置、転送方法および転送プログラム

Also Published As

Publication number Publication date
EP1206062A2 (en) 2002-05-15
US20020054570A1 (en) 2002-05-09
EP1206062A3 (en) 2006-08-23

Similar Documents

Publication Publication Date Title
JP2002152308A (ja) データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体
JP4283589B2 (ja) 通信装置、通信制御方法及びプログラム
Allman et al. Ongoing TCP research related to satellites
US6694471B1 (en) System and method for periodic retransmission of messages
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
US7496038B2 (en) Method for faster detection and retransmission of lost TCP segments
US7277390B2 (en) TCP processing apparatus of base transceiver subsystem in wired/wireless integrated network and method thereof
WO2017124985A1 (zh) 一种数据传输的方法以及相关设备
US20050022089A1 (en) System and method for a communication network
KR100547749B1 (ko) 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜의혼잡제어 방법과 시스템
CN101369877B (zh) 无线传输控制协议处理方法和设备
JP2007534194A (ja) パケットを再配列する際のtcp性能の改善
Caini et al. Transport layer protocols and architectures for satellite networks
US7764616B2 (en) Transmitter device for controlling data transmission
CN102769520B (zh) 基于sctp协议的无线网络拥塞控制方法
CN113765626B (zh) 一种移动通信系统的数据传输方法和装置
JP4244159B2 (ja) 受信装置、通信システムおよびプログラム
EP1435704B1 (en) Transmission control method and system
JP2007235976A (ja) データ通信装置
Wang et al. Concurrent multipath transfer protocol used in ad hoc networks
Henderson TCP performance over satellite channels
JP2006101428A (ja) 無線ネットワークの制御装置及び制御方法、制御プログラム並びに記録媒体
JP2006101339A (ja) データ通信装置
Cisco Stream Control Transmission Protocol (SCTP) Release 2
West et al. TCP enhancements for heterogeneous networks

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080205