JP5020076B2 - 低頻度ackのシステムに適した高性能tcp - Google Patents

低頻度ackのシステムに適した高性能tcp Download PDF

Info

Publication number
JP5020076B2
JP5020076B2 JP2007523876A JP2007523876A JP5020076B2 JP 5020076 B2 JP5020076 B2 JP 5020076B2 JP 2007523876 A JP2007523876 A JP 2007523876A JP 2007523876 A JP2007523876 A JP 2007523876A JP 5020076 B2 JP5020076 B2 JP 5020076B2
Authority
JP
Japan
Prior art keywords
data
burst
data packet
ack
packets
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.)
Active
Application number
JP2007523876A
Other languages
English (en)
Other versions
JP2008508817A (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.)
Dell Products LP
Original Assignee
Dell Products LP
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 Dell Products LP filed Critical Dell Products LP
Publication of JP2008508817A publication Critical patent/JP2008508817A/ja
Application granted granted Critical
Publication of JP5020076B2 publication Critical patent/JP5020076B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

関連出願
本出願は、2004年7月29日出願の米国特許仮出願第60/592,065号の利益を主張する。上記出願の全内容は参照により本明細書に引用したものとする。
コンピュータネットワーク通信において現在最も一般に使用されている伝送制御プロトコル(TCP)は、単一プロトコルではなく、実際には、インターネットプロトコル(IP)接続全体にわたって、安定で高信頼性のパケットデータ伝送を実現するのに用いられる一群の技術である。TCPの元々のデザインは、原則的にあらゆるタイプの下位の物理ネットワーク上で作動する、ストリームベースで信頼性の高いプロトコルを確立した。元々のTCPでは、「スライディングウィンドウ」を使用し、パケットが送信側によって送信された後に、確認応答パケット(ACK)が受信側から送られ、その後、送信側が新しいデータを送信することができるようになる、と仕様が定められた。
TCPの最初に普及したバージョン(1983年の4.2BSD)はローカルエリアネットワーク(LAN)において確実に作動した。TCPは当初はLAN上での実装を意図したものであったため、場合により、インターネットのような大規模な共有ネットワーク(輻輳の可能性があるネットワーク)において許容できる性能を提供できないことがあった。したがって、TCPのより最近の実装では、広範囲に分散した共有ネットワークにおいて最小損失で最大データスループットを保証するように進展した。TCPプロトコルのこれら最近のバージョンは、ウィンドウサイズを制御するだけでなく、各「バースト」すなわち「セグメント」において共に送信されるパケット数、パケットサイズ、および受信側によるパケット確認応答のタイミングも制御する。
例えば、TCPの「Tahoe」実装は、輻輳制御(いわゆる、「スロースタート」アルゴリズムによるもの)および輻輳回避(乗算減少によるもの)において、大幅な改良を導入した。このアルゴリズムでは、送信側は、受信側によって通知された広告ウィンドウと輻輳ウィンドウの小さい方の値によって決定されるバイトを送信できる。輻輳ウィンドウ(TCP標準では[cwnd]と呼ばれる変数)が、最初は、1パケット(セグメント)の値に設定される。次に、ACKを連続的に受け取った後に、[cwnd]の値を2倍する。この結果、[cwnd]の値は一般に予測される指数関数的増加となる。
Tahoeはまた、送信ウィンドウしきい値([ssthresh])を保持する変数を使用する。このしきい値は、受信側が通知した広告ウィンドウサイズに初期化される。送信タイムアウトの後に(例えば、ACKが受信されない場合)、アルゴリズムは現在のウィンドウサイズの半分を[ssthresh]に割り当て(乗算減少)、[cwnd]が再度1の値に設定されて、スロースタートフェーズが再度開始される。
TCPの「Reno」バージョンは、早期回復と呼ばれる別の最適化を導入して、後続の再送信性能を改善した。重複ACKが受信されると、RenoTCP送信側は、[ssthresh]を[cwnd]の半分に設定し、喪失セグメントを再送信する。次に、重複ACKを受信するごとに、[cwnd]が1セグメントずつ増加される。
「New Reno」と呼ばれるRenoに対して提案された改良は、Renoに関する2つの別の問題点に対応することを試みる。特に、[ssthresh]の値が小さいと、スロースタートフェーズが早く終了してしまい、次に[cwnd]が緩やかに増加する可能性がある。一方、[ssthresh]の値が大きい値と、送信側がパケットを過剰に供給し(すなわち、データパケットのバーストの送信が長過ぎる)、輻輳を発生する可能性がある。New Renoは、送信側において間隔の詰まったACKの到達時間を測定して、ネットワークの「帯域幅遅延積」に等価なバイトを計算することによって、[ssthresh]を最適化することを試みる。
TCPプロトコルに関するより多くの情報が、各種のインターネット技術協議委員会(IETF)のコメントに対する要求(RFC)(Internet Engineering Task Force(IEFC)Request for Comment(RFC))文書に記載されている。これらの文書は、例えば、
RFC2001「TCPスロースタート、輻輳回避、高速再送信および早期回復アルゴリズム(TCP Slow Start, Congestion Avoidance, Fast Retransmit and Fast Recovery Algorithms)」1997年1月、および、
RFC2582「TCP早期回復アルゴリズムに関するNew Renoの改良(the new Reno modification to TCP's Fast Recovery Algorithm)」1999年4月、である。
これらの文書は、インターネット技術協議委員会(IETF)から、それらのwebサイト HYPERLINK "http://www.ietf.org/" http://www.ietf.org/で入手できる。
さらに、New Renoによって使用されるしきい値最適化方法の説明は、Borellaらに特許された米国特許第6,643,259号に記載されている。
本発明は公知のTCPプロトコルの改良である。詳細には、ACKを処理する際に、本発明は当初に送信されたバースト内のデータ量と確認応答されたデータ量とを比較する。
確認応答されたデータ量が当初のバーストサイズと同一である場合、TahoeのTCPにおける従来の「スロースタート」アルゴリズムと同様に、バーストサイズが増加される。
しかし、ACKデータ量が、当初のバーストよりも少ないデータ量を対象とする場合、New Reno TCPアルゴリズムと同様に、バーストサイズは同一に維持される。
さらに、送信を待つ追加データが存在しない場合、バーストサイズは変化しない。
本発明の好ましい実施形態を以下に説明する。
図1は、本発明の例示の実施形態における典型的はデータネットワーク10を示すブロック図である。データネットワーク10は、バックボーンネットワーク12(例えば、インターネットまたはキャンパスネットワーク)、第1ネットワーク装置14、および第2ネットワーク装置16を有する。バックボーンネットワーク12は、多数の通信システムによって使用されるリソースを共有できる。さらに、複数のローカルアリアネットワーク(「LAN」)20が存在してもよい。データパケットは、バックボーンネットワーク12を介して、第1ネットワーク装置14と第2ネットワーク装置16との間で相互に伝送される。例えば、装置14,16には、インターネット上の公衆通信回線アドレス(public network address)が割り当てられる。第1ネットワーク装置14と第2ネットワーク装置16との間のデータチャネルは、ルータまたはゲートウェイ(24、26)を有してもよい。しかし、他のネットワークタイプおよびネットワーク装置も使用可能であって、本発明は、例示の実施形態に記載されるデータネットワークおよびネットワーク装置に限定されない。
本発明の好ましい一実施形態においては、第1ネットワーク装置14および第2ネットワーク装置16は、パーソナルコンピュータ、電話、大容量データ装置、または他のネットワーク上で利用できる装置であってもよい。大容量データ装置は、Web−TVセットおよびデコーダ、対話式ビデオゲームプレーヤ、またはマルチメディアアプリケーションを実行するパーソナルコンピュータを含むことができる。電話は、VoIP(Voice over Internet Protocol)装置(携帯型または据置型)、またはオーディオアプリケーションを実行するパーソナルコンピュータを含むことができる。ただし、データフローの両端は、別の種類のネットワーク装置を含むことができ、本発明はパーソナルコンピュータ、電話、または大容量データ装置に限定されない。
本発明の好ましい実施形態におけるネットワーク装置およびルータは、米国電気電子技術者学会(「IEEE」)、国際電気通信連合(「ITU」)通信規格セクタ、インターネット技術協議委員会(「IETF」)によって提案された規格、または他のプロトコルに基づくネットワークシステム10と情報をやりとりできるネットワーク装置を含む。IEEE規格はWorld Wide Web上のUniversal Resource Locator(「URL」)「 HYPERLINK "http://www.ieee.org" www.ieee.org.」で見ることができる。ITU(以前は、CCITTとして公知であった)規格はURL「www.itu.ch.」で見ることができる。IETF規格はURL「www.ietf.org.」で見ることができる。当然のことながら、図1の構成および装置は例示の目的だけであって、本発明は特定のプロトコルまたはネットワーク装置の種類に限定されない。
さらに、データネットワーク10の構成は、図1に示されるような1つのバックボーンネットワーク12および1つのLAN20に限定されない。データネットワーク構成10内のさまざまな場所において多数のデータネットワークおよび/または多数のローカルエリアネットワークを有する、データネットワーク10の多くの異なる構成が可能である。
本発明のネットワーク装置(14,16)の動作環境は、少なくとも1つのプログラム可能なデータプロセッサまたは信号プロセッサ(本明細書では中央処理ユニット(「CPU」)と称する)を有するネットワークインタフェースコントローラ(「NIC」)を含む。コンピュータプログラミングの当業者の通例に従い、本発明は以下に、特に指定しない限り、CPUによって実行される動作または命令の作用および記号表現に関して説明する。このような作用および動作もしくは命令は、「コンピュータで実行」されると称する。
当然のことながら、作用および記号表現される動作もしくは命令は、CPUによる電気信号の操作を含む。電気信号は一般にデータビットを表し、データビットはさらに、CPUに結合されたメモリシステム内の記憶域に格納され、または記憶域から読み出されることにより、他の信号処理と同様に、CPU動作を再構成または変更することができる。データビットが保持されている記憶域は、データビットに対応する特定の電気的、磁気的、光学的、または有機特性を有する物理的位置である。
データビットはまた、コンピュータ読取可能媒体であり、この媒体は、磁気ディスク、光ディスク、有機メモリ、およびCPUによって読取可能な任意の他の揮発性(例えば、ランダムアクセスメモリ(「RAM」)もしくは不揮発性(例えば、リードオンリーメモリ「ROM」)記憶システムを含む。コンピュータ読取可能媒体は、協働または相互接続されたコンピュータ読取可能媒体を含む。これら協働または相互接続されたコンピュータ読取可能媒体は、処理システム上に排他的に存在するか、あるいは、処理システム内または処理システムから遠隔にある複数の相互接続された処理システムに分散されている。
<ネットワーク装置のプロトコルスタック>
図2は、データネットワーク10におけるネットワーク装置のプロトコルスタック50を示すブロック図である。当技術分野では公知のとおり、コンピュータネットワークを記述するために、開放型システム間相互接続(「OSI」)モデルが使用される。OSIモデルは、下位から上位に、物理層、データリンク層、ネットワーク層、トランスポート層、セッション層、およびアプリケーション層を含む7層から成る。物理層はデータビットを通信リンクを介して転送する。データリンク層はデータのエラーのない(error free)フレームを転送する。ネットワーク層はデータパケットを転送およびルーティングする。
プロトコルスタックの最下位層は物理層である。物理層は物理媒体インタフェース52を有し、このインタフェース52は、信号をワイヤ、同軸ケーブル、光ファイバなどの伝送媒体に送り出す。つまり、信号を電磁波として伝送する。物理媒体インタフェース52はまた、伝送媒体から信号を読出し、この信号をデータリンク層54に提供する。
データリンク層は、例えば媒体アクセス制御(「MAC」)層54である。当技術分野では公知のとおり、MAC層54は物理層を経由して伝送媒体へのアクセスを制御する。通常のMAC層54は、イーサネット(Ethernet)(登録商標)用のIEEE802.3およびケーブルモデム用のIEEE802.14を含む。しかし、他のMAC層プロトコル54も使用可能であって、本発明はこれにより限定されるわけではない。
データリンク層の上位にはインターネットプロトコル(「IP」)層58がある。IP58はOSIモデルのネットワーク層にほぼ一致するが、一般には、OSIモデルの一部として定義されていない。当技術分野では公知のとおり、IP58は、ネットワーク内またはネットワーク間のトラフィックをルーティングするように設計された、メッセージのアドレス指定および配信のプロトコルである。
インターネット制御メッセージプロトコル(「ICMP」)層56は、ネットワーク管理のために使用される。ICMP56の主機能は、エラーレポート、到達可能性テスト(例えば、「ピンギング(pinging)」)、輻輳制御、ルート変更通知、パフォーマンス、サブネットアドレス指定などを含む。IP58は確認応答のないプロトコルであるため、データグラムは廃棄されてもよく、ICMP56がエラー通知のために使用される。ICMP56に関する詳細な情報は、参照により本明細書に引用されているRFC−792を参照のこと。
IP58およびICMP56の上位にはトランスポート層があり、この層はユーザデータグラムプロトコル(「UDP」)層60または伝送制御プロトコル(「TCP」)層62であってもよい。当技術分野では公知のとおり、UDP60はデータグラムを用いる通信のコネクションレスモードを提供する。
本発明の好ましい実施形態の特に重要な点は、コネクション型伝送制御プロトコル(「TCP」)層62を含むトランスポート層62である。TCPに関する詳細な情報は、参照により本明細書に引用されているRFC−793およびRFC−1323を参照のこと。本発明におけるTCP層62に関連する動作は、以下に詳細に説明される。
トランスポート層の上位はアプリケーション層であり、ここにネットワーク装置の所望の機能を実行するアプリケーションプログラムが存在する。例えば、ネットワーク装置16用のアプリケーションプログラムはプリンタアプリケーションプログラムを有してよく、一方、ネットワーク装置14用のアプリケーションプログラムはファクシミリアプリケーションプログラムを含んでもよい。一般に、アプリケーション層は動的ホスト構成プロトコル(「DHCP」)層66および/もしくはファイル転送プロトコル(「FTP」)層68、または、ハイパーテキスト転送プロトコル(「HTT」)層67などのアプリケーションを含む。本発明の好ましい実施形態においては、使用する特定のアプリケーション層は重要ではない。なお、プロトコルスタック50内で、より多数または少数のプロトコル層を使用することもできる。
<パケットフォーマット>
IP58はIPパケット形式のデータを伝送およびルーティングする。図3はこのようなパケット80の1つの構造を示すブロック図である。パケット80はヘッダフィールド82およびペイロードフィールド104を有する。パケット80のペイロードフィールド104は一般に、1つのネットワーク装置から他のネットワーク装置に送信されるデータを含む。ただし、ペイロードフィールド104は、ICMP56メッセージなどのネットワーク管理メッセージ、または、UDP60、TCP62、FTP68、もしくはDHCP66などの他のプロトコルのデータパケットも含むことができる。
ヘッダフィールド82は、サービスタイプ(「TOS」)フィールド84、全長フィールド86、識別子フィールド88、フラグメントフィールド90、ホップ数(「HOP」)フィールド92、プロトコルフィールド94、およびヘッダチェックサムフィールド96を有する。IP58のパケット80の構造に関する詳細な情報は、参照により本明細書に引用されているRFC−791を参照のこと。発信元アドレスフィールド98は、IP58のパケットをデータネットワーク10上に送出するネットワーク装置のIP58アドレスを含むことができる。宛先アドレスフィールド100は、データネットワーク10上のIP58パケット80の指定された受信者であるネットワーク装置のIP58アドレスを含むことができる。IP58ヘッダフィールド82はさらに、オプションフィールド102および当業者には公知の他のフィールドを含むこともできる。
<TCPの動作>
当技術分野では公知のとおり、TCP62の用途の1つは、送信側から受信側へのデータパケット80の順序どおりの配信を保証することである。ここでは、第1ネットワーク装置14を送信側とし、第2ネットワーク装置16を受信側と称する。ただし、いずれのネットワーク装置も送信側または受信側になることができる。パケットが損失するか、または破損して到達する場合、TCPはこのようなパケットの再送信を保証する。さらに、TCP62はデータネットワーク10上の輻輳を監視することを試み、これに応じて、データ伝送速度を調整する。限定されたネットワークリソースをデータストリームが競合するとき、帯域幅を適切に割り当てる試みにおいてフロー制御プロセスが選択される。TCP62は、スライディング「ウィンドウ」を使用することによって、そのフロー制御を実行する。スライディングウィンドウによって、発信元アプリケーションを有する送信側が宛先アプリケーションを有する受信側16に、確認応答を待つ必要なく、複数のパケットを送信できる。受信側16によるフロー制御は「フロー制御」と呼ばれるのに対して、送信側14によるフロー制御は「輻輳制御」と呼ばれる。
送信側14と受信側16との間のTCPコネクションは、当業者には公知の3方向ハンドリングシェイクによって確立される。コネクションのセットアップの間、受信側16のTCP62プロセスは、送信側14のTCP62に最大セグメントサイズ(「MSS」)値を送信するオプションを有する。これは、受信側のネットワーク装置に引き起こされるリンク上のパケットフラグメンテーションを防止するためになされる。使用されるデフォルト値は一般に536バイトであるが、他の値を使用することもできる。一般に、大きい最大セグメントサイズがデータネットワーク10によって許容される場合、大きい最大スループットが得られる。
データパケットと確認応答パケット(「ACK」)の交換の間、フロー制御は受信側によってなされ、受信側は提供ウィンドウ(広告ウィンドウ)([awnd])を送信側に通知する。[awnd]は、受信側16がバッファのオーバーフローなく現在受け取ることができるデータ量を表す。提供ウィンドウおよび未処理の確認応答がまだであるパケットを考えると、受信側16の有効ウィンドウは現在送信できるデータ量として定義される。TCP62の実装が異なれば、デフォルトの提供ウィンドウも異なる。典型的な値は、2048バイトの送信および受信バッファ、または4096バイトの送信および受信バッファである。
輻輳制御はさらに複雑である。送信側14のTCP62は、輻輳を感知するのに極め少数の限定された方法しか持たない。輻輳の3つの兆候は、パケット損失の感知、変動するラウンドトリップ遅延、および重複する確認応答(ACK)である。限定された情報量とデータネットワーク10からのフィードバック受信の遅れを考えると、TCP62がネットワーク状態に即時に適応することは困難である。
一般に、TCP62はパケット損失を利用して、ネットワーク内で輻輳が発生したことを推定する。典型的なモデムデータネットワークの物理リンク上のエラーは、光ファイバケーブルなどの長距離物理媒体の改良によって、極まれに発生するのみである。しかし、無線リンクは依然としてエラーを生じやすい。物理損失割合は一般に極めて小さく、1%よりも極めて小さいため、確認応答がされていないデータパケットはいずれも、輻輳による損失と考えられる。エラーを含むと考えられるデータパケットが受信側16で受信されると、受信側16で廃棄され、確認応答されない。確認応答パケットがないために送信側14でネットワーク輻輳が認識されると、第1ネットワーク装置14上のTCP62プロセスは、ネットワークにパケットを投入する速度を制限する。このタスクを実行するために、送信側14のTCP62プロセスは輻輳ウィンドウ([cwnd])の値を変更する。輻輳ウィンドウ[cwnd]は、データネットワーク10で許容される未処理バイトの最大数である。
TCPの典型的な実装では、[cwnd]の値は、輻輳の存在によって減少され、輻輳が検出されないときは増加される。この作用により、データネットワーク10をトラフィックで溢れさせることなく、データネットワーク10の状態を変更する安定したフィードバックを可能にする。
送信側14のTCP62プロセスはさらに、ラウンドトリップ遅延時間(「RTT」)および遅延変動(「A」)の実行推定値(running estimate)を維持して、パケット損失が発生したか否かを決定する。したがって、データパケットを送信後に送信側14がこれらパラメータによって指定された時間内に受信側16から確認応答パケット(「ACK」)を受信しない場合、パケット損失が推定されてデータパケットが再送信される。
<TCP Reno>
次に、本発明によって提供される改良を説明する前に、TCPのいわゆる「Reno」実装に従う典型的な標準TCPフロー制御を説明する。図4は伝送制御プロトコル62を表すブロック図である。コネクションのセットアップ後、送信側14のTCP62プロセスは開始状態122にある。開始状態122において、輻輳ウィンドウは初期ウィンドウ値(「IW」)に設定される。一般に、IWはMSSと同一であるが、TCPの特定の実装では、IWをMSSの2倍または4倍に設定する。特に、遅延ACKを使用する受信側16と通信するとき、MSSよりも大きいIWが第1パケットの不必要な遅延を無くす。加えて、電子メールまたはハイパーテキストマークアップコネクションなどのトランザクション指向コネクションは、一般に、各コネクション当たり少量のデータを送信する。十分に大きなIWは1つのウィンドウ内でこのデータの全てを転送することができるので、トランザクション速度が大幅に増す。
さらに、開始状態122においては、パケット出力処理モジュール150内におけるスロースタートフェーズ126から輻輳回避フェーズ130への遷移に対して、しきい値が設定される。このしきい値[ssthresh]は、第2ネットワーク装置16からの提供ウィンドウ[awnd]に設定される。
TCP62プロセスのパラメータが開始状態122において初期化されると、送信側14はデータの初期ウィンドウを送信し、リターントリップタイマを設定する。
次に、TCP62プロセスはパケット処理150のスロースタートフェーズ126に入る。スロースタートフェーズ126はTCP62の輻輳制御構成要素の1つである。輻輳回避フェーズ130と組み合わせることで、送信側14が新しいACK128を受信したときのみ[cwnd]を増加することによって、エンドツーエンドのネットワーク帯域幅に試験的に探りを入れる。スロースタートフェーズ126の間、輻輳制御ウィンドウサイズは新しいACKの受信128の度に増加される。このように、パケットがデータネットワーク10に導入される速度は、ACKが送信側14に返送される速度に応じてゲート制御される。これにより、送信側14と受信側16との間の流量保存則(conservation of flow)が維持される。
スロースタートフェーズ126に入る際、[cwnd]は開始状態122においてすでにIW に設定されている。しかし、受信側16からの各新しいACK受信128を受け取るごとに、送信側14はMSSまで[cwnd]を増加させ、リターントリップ時間をリセットする。このように、送信されるセグメント数は、完全に確認応答された[cwnd]の度に、実質的に2倍になる。なお、完全に確認応答されるのは、ほぼラウンドトリップ時間ごとである。スロースタートプロセス126は続行されて新しいACKを受信128し、受信側16によって定義される提供ウィンドウ[awnd]に達するか、またはしきい値[ssthresh]に達するかのいずれかまで、[cwnd]を増加させ、輻輳回避フェーズ130に遷移することを通知する。
しかし、送信側14が時間RTT+4A以内にいずれのパケットについてもACKを受信しない場合、タイムアウト134となり、最も古い確認応答されていないパケットおよびこのパケットの後の全ての送信されたパケットが失われたと推定する。これは通常、重大な輻輳イベントの表示である。タイムアウト134では、最も古い確認応答されていないパケットが再送信され、スロースタートしきい値[ssthresh]が実質的に、タイムアウト前の[cwnd]の値の半分に設定され、[cwnd]がMSSに設定され、リターントリップタイマがリセットされ、TCP62プロセスがスロースタートフェーズに再度入る。
輻輳回避フェーズ130は、情報路容量の過剰使用を禁止するTCP62輻輳制御の1つの構成要素である。輻輳ウィンドウがスロースタートしきい値と交差する(例えば[cwnd]≧[ssthresh])と、輻輳回避フェーズ130に入る。輻輳の特定の形態が検出されるか、または受信側16でデータ処理できる最高速度に送信側14が近付きそうなとき、輻輳回避フェーズ130に入る。この状態の目標は、[cwnd]を除々に増加して、送信側14がデータネットワーク10で利用できる帯域幅を超えて送信しないようにすることである。輻輳回避フェーズ130の[cwnd]を増加させるプロセスは、受信側16からACKを受信132する度に[cwnd]が直線的に増加する点で、スロースタートフェーズとは異なる。再度、データパケットが時間RTT+4A以内に確認応答されない場合、TCP62は前述のとおりタイムアウト134して、スロースタートフェーズ126に入る。
このことから、TCP62プロセスについて送信側14から受信側15へのデータスループットの時間依存性を考慮する。TCP62プロセスは開始状態122において開始し、スロースタートフェーズ126に入る。スロースタートフェーズ126がタイムアウトしない場合、輻輳ウィンドウ[cwnd]がスロースタートしきい値[ssthresh]と交差すると、TCP62プロセスは輻輳回避フェーズ130に入る。輻輳回避フェーズ130では、データネットワーク10が送信側14のパケット挿入速度をサポートできなくなるまで、輻輳ウィンドウおよびスループットが時間にともない直線的に増加する。その後、パケットが損失されて確認応答されず、タイムアウト134が発生する。タイムアウト134が発生すると、スロースタートしきい値[ssthresh]が直前の輻輳ウィンドウ[cwnd]の半分にリセットされ、TCP62プロセスがスロースタートフェーズ126に再度入る。輻輳ウィンドウ[cwnd]が新しいスロースタートしきい値[ssthresh]と交差すると、TCP62プロセスは輻輳回避フェーズ130に再度入る。
<TCPのNew Reno>
前述の図4の状態に加えて、TCP62はさらに、高速再送信および早期回復を可能にする。重複ACKが送信側14で受信される場合、これは特殊ケースである。軽度の輻輳または一時的輻輳の状態下では、高速再送信および早期回復がTCP62性能を向上できる。例えば、高速再送信は、TCP62が第3の重複ACKを受信するときに取るアクションである。この状況は、少なくとも1つのパケットが伝送状態から外れて損失されたが、少なくとも3つの後続のデータが無事に到達していることを示す。
[cwnd]をMSSにまで減少してスロースタートフェーズ126に入るのではなく、TCP62のNew Renoは、損失されたと推定されるパケットを直ちに再送信し、[ssthresh]を[cwnd]の半分にまで減少させ、[cwnd]を[ssthresh]+3 MSSとなるように設定する。これらの調整は、「損失」パケット後に3つのパケットが受信された以降は、送信側がさらの3つのパケットを送信できることを表している。高速再送信が実行された後、早期回復状態に入る。
早期回復は、最後の確認応答されていないパケットが確認応答されるのを待つが、後続の送信パケットが確認応答されている場合は、送信側14が新しいパケットを送信するのを許可する。早期回復においては、パケットがネットワークによって再度要求されているか、または輻輳が軽度もしくは一時的であるかのいずれかであると、TCP62が仮定する。重複ACKが受信されると、輻輳が軽度であると推定されて、[cwnd]がMSS分増加され、伝送中のパケットが受信側16により受信されたことより、送信側が別のパケットを送信するのを許可する。新しいACKが受信されると、「損失」パケットの伝送中のパケットの全てが受信されたことを示す。次に、[cwnd]は[ssthresh]に設定され、輻輳回避フェーズ130に入る。早期回復の間においてTCP62の送信側がタイムアウト134すると、スロースタートフェーズ126に入る。
<ACKでカバーされるデータ量に相当するバーストサイズの設定>
TCP62の従来のNew Reno実装においては、送信側14は比較的小さい「バースト」でパケットを送信できる。例えば、送信側14はわずか4つのパケットを含むバーストを送信できる。典型的なNew RenoのTCPの受信側16は、2つのパケットを受信する度に、ACKを送信する。典型的な送信側14のルールは、ACKを受信する度に、TCP送信ウィンドウに従って、送信側が新しいバースト(4パケット)を送信する。
この結果、送信側14と受信側16との間で「伝送状態にある」パケット数が増加する。これは、ネットワークのスループットを最大にするために望ましい。しかし、これは、受信側16が2つのパケットを受信後に直ちにACKを送るというTCPルールを実装する場合にだけ当てはまる。これは当初のTCPプロトコルにおける規定であるが、残念なことに、この規定は、TCPプロトコル規格、RenoとNew Renoのいずれにも要件とされていない。したがって、これは発生を保証できない。
実際に、例えばMicrosoft Window 2000(「Win2k」)オペレーションシステムによって使用されるような、特定のTCP実装は、異なるACKルール使用していることが確認されている。特に、Win2kの送信側14は受信バーストの各全グループに対してACKを送信する。したがって、これは最初のパケットの受信後に何らかの遅延を伴って発生する。各ACKが送信側14による別のバーストの送信(再度、4パケット)をトリガーするため、Win2k実装において「伝送状態にある」パケット数は、この状況では、最初の4パケットのバーストサイズ以上に増加しない。したがって、得られるスループットは全く許容できないものである。
受信側16が2つのパケット毎にACKを送信する規定を実装すれば、規格方式は良好に機能する。しかし、TCPのRenoまたはNew Renoバージョンにおけるように、2つのパケット毎のACKが常時要求されるわけではない。したがって、受信側によっては、2つのパケット毎よりも少ない頻度でACKを送信するものもある。このような場合には、短いバーストが単一確認応答のみをトリガーし、標準TCP ACK遅延後のみ確認応答をトリガーする可能性がある。
本発明の目的は、標準アルゴリズムが使用する最初のウィンドウサイズを使用し続けるのではなく、このような場合におけるバーストサイズを増加することである。これにより、頻度の低い確認応答を受信側が実装する場合であっても、送信側と受信側は高速で通信できる。
したがって、本発明は標準TCP実装の改良を提供する。本発明により、受信側16が2つのパケット毎に確認応答しない場合であっても、TCP送信側14は高性能を達成できる。
図5は本発明によって実行されるステップを示すフローチャートである。ステップ500は出力処理ブロック150によって実行される。完全なバーストが送出されと、バースト進行中フラグが設定されて、後続のステップが実行される入力処理160に指示される。
なお、パケット出力処理150は、(a)進行中のバーストがない場合、または(b)送信される現在のバースト内に空きがある場合に、別のパケットの送信しか必要としない。一般に、一度に、1つの追跡される未処理バーストのみが存在する。なお、これは伝送状態にあるパケットの全体数を制限するものではない。
次のステップ501は、入力プロセス160がACKを受信すると実行される。このステップは、確認応答されたデータ量と、バースト内で最初に送信されたデータ量とを比較する。したがって、このプロセスは、各バースト内で最初に送信されたデータ量の追跡記録を維持する必要があり、次に、各受信されたACKを各バースト内の対応するパケットに突き合わせる。このような情報は、以下に詳細に説明するように、ステータステーブル内に保持できる。
ACKが最初のバーストの全てをカバーする場合、ステップ502では、バーストサイズが、Tahoeのような従来の「スロースタート」アルゴリズムで指定されたウィンドウサイズパラメータ[cwnd]の増加に相当する量だけ増加される。例えば、この時点で、プロセスはMSS分バーストサイズを増加させてもよい。その後、TCP処理は通常通り続行される。
しかし、ACKが最初のバースト内のパケット総数よりも少ない数のパケットをカバーする場合、ステップ503では、バーストサイズは変更されない。したがって、このステップは従来のNew Renoアルゴリズムと同様に作用する。再度、TCP処理はこの時点から従来技術におけるのと同様に続行される。
ある時点で、ステップ504に達する。ここでは、送信されるべき追加データが待ち行列に存在するか否かをチェックするように、追加のテストがなされる。送信を待機している追加データが存在しない場合、バーストサイズはこの状態を維持する。
別の改良においては、本発明はバースト内のパケットサイズに敏感である。つまり、パケットサイズをチェックする。一例として、イーサネット(Ethernet)(登録商標)は現在通常、9018バイトの「ジャンボ」フレームを使用する。この状況では、バーストサイズ増加プロセスによって、このように大きいパケットでネットワークに輻輳を引き起こす可能性がある。このような場合、パケットサイズが小サイズ(例えば、4096バイト以下)である場合のみに、本発明を適用する。
本発明による別の改良の領域は、輻輳処理130においてもバーストサイズを制御することである。したがって、本発明の好ましい一実施形態においては、輻輳処理プロセス130内でステップ510が実行され、バーストサイズ値が輻輳イベントにおいて初期値にリセットされる。これは、Tahoeの古典的なスロースタートルールが[cwnd]に適用するのと類似である。しかし、別の実装もバーストサイズを減少でき、バーストサイズを完全にリセットするのではなく、DECnetシステムで使用されるいわゆるFlower/Ramakrishnan輻輳ルールと同様にすることができる
なお、本発明は、前述したものに比べてより汎用的であることは理解されるであろう。例えば、ステップ501において他のしきい値ACK量としてもよい。ステップ501についての前述の説明で仮定した事項は、従来のACK手順で使用されたことである。ここで、従来の手順では2つのパケット毎に受信側16がACKを送出する。しかし、本発明の一変形形態では、ACK当たりのパケットのしきい値量を選択する。このしきい値は2パケットよりも大きくできるが、最大値はバーストサイズである。しきい値量(またはそれ以上)のACKがバーストサイズの増加を発生させるように、しきい値が作用する。この変形形態によってバーストサイズの急速増加が可能になる。本質的には、受信側16が「ACKの2パケット」ルールを全く使用しない場合と同一速度でバースとサイズを増加できる。
前述の記載から明らかなように、本発明の実装は、TCP層62に複数のデータ構造を追加し、特定の他の機能を改良することによって実現できる。
第1に、各コネクション当たりのバーストサイズ(New Reno当たり)を追跡して維持することが、送信側のTCP層で必要とされる。これは、少なくとも以下のパラメータを、コネクションごとにコンテクストに維持することを必要とする。これらパラメータは、各コネクションのコネクション統計ブロック600に格納される。このようなパラメータブロックの1つが、図6に示されている。パラメータは以下のとおりである。
−バースト進行中フラグ601(ビジーコネクションについては、大部分の時間で真である)
−Renoのバースト内に存在する現在のパケット602
−バーストサイズ603(min=current_default, max==current_default*N(ここでNは8)と定量化される)
現在のRenoバーストサイズ603を記憶することで、さまざまなコネクションに対してバースト設定を確認できる。好ましい実施形態においては、これらパラメータはコネクション統計ブロック600の終了時に記憶し、以前のTCP層62の実装との後方互換性を維持する。
さらに、パケット処理がReno ACKを監視するため、バーストサイズ全体にわたりよりさらなる制御を実装できる。特に、確認応答されたデータ量が全体の未処理バーストサイズの少なくとも半分(1/2)と等しいかそれ以上であり、送信する多数のデータが存在する場合、コネクションのバーストサイズ603パラメータは、段階的に(例えば、標準Renoのスロースタートルールに従って)増加される。次に、パケット処理150は通常通りに進行し、ACKを受信すると、一般に要求されるとおり、別のバースト(最大は有効ウィンドウサイズ[cwnd])を送信する。
送信ウィンドウが満たされると、存在する現在のパケットのフィールド602がゼロにリセットされ、進行中バーストフラグ601が偽(false)に設定される。
スロースタート回復126はさらに、バーストサイズをデフォルト値にリセットするか、または標準タイムアウトルール(例えば、Renoによって指定されたとおり)によってバーストサイズを段階的に減少させる必要がある。同様に、アイドル状態に入るコネクションもまた、バーストサイズをデフォルト値にリセットする。
本発明にはいくつかの利点がある。
New Renoの「失速(stall)」を回避する。
特定の条件下では、標準New Reno TCPアルゴリズムはバーストサイズの増加を許容しない(例えば、Win2kの例)。本発明はこの状況を回避し、バーストサイズが送信されたACK数に関係なく増加することを保証する。
(Windows(登録商標)2000のような)固定ACKホールドオフタイマ(hold-off timer)を有するピアの高スループット。
大きい転送サイズに対して、32のバーストサイズは、Windows(登録商標)2000では良好に機能していることは公知である。小さい転送サイズはパケット損失も少ない。本発明のシステムは、TCP送信パケットルーチンを呼び出す度に、もはやバーストを送信しないので、小さいパケットを消費するピアのプロセス能力にプロセスが応える。理論的には、これは極めて好ましいスループットの向上である(従来技術におけるのと同様に、ピアコネクションのスループットを容易に超えることができる)。
大きい待ち行列深さにおける少ないパケット損失。
全ての転送サイズは、送出の準備がされているときはいつでも、TCP送信プロセス150を呼び出すことができる。進行中のバーストが存在し、さらなるデータ送信が要求された場合、ウィンドウがこの時点でデータ送信を許容するならば、追加データが直ちに設定される。したがって、ピアへの出力は確認応答によって主として制御される。再度、プロセスはピアの使用量速度に大きく依存する。この結果、高速の無損失データ伝送が可能になる。
本発明を好ましい実施形態により図示し、説明してきたが、当業者には、添付の特許請求項に包含された本発明の範囲から逸脱することなく、形態または細部にさまざまな変更を加えるのが可能であることは理解されるであろう。
本発明を実装できるネットワークシステムのブロック図である。 プロトコルスタックを示す図である。 TCP/IPパケットの構造を示す図である。 本発明によるTCPを実装するプロセスの高レベル図である。 本発明によるTCPの処理を示すフローチャートである。 1つのコネクション当たりのデータ構造を示す図である。
符号の説明
80 データバケット

Claims (10)

  1. 一のデータ通信装置においてデータパケットを処理する方法であって、
    (a)前記一のデータ通信装置と他のデータ通信装置の間で許容される未処理のデータパケットの最大数である輻輳ウィンドウを保持する工程と、
    (b)前記一のデータ通信装置からの1つのバースト内で共に送信されるデータパケットの最大数であるバーストサイズを保持する工程と、
    (c)前記バーストサイズによって決定されたデータ量で、当初のデータパケットのバーストを送信する工程と、
    (d)前記当初のデータパケットのバーストの確認応答(ACK)を受信する工程であって前記バーストにおける2つのパケットごとよりも少ない頻度でACKが受信される、工程と、
    (e)前記ACKによって示されるパケット数が前記当初のデータパケットのバーストにおけるパケット数と同一の場合、前記輻輳ウィンドウを増加させる工程と、
    (f)前記ACKによって示されるパケット数が前記当初のデータパケットのバーストにおけるパケット数よりも少ない場合、前記輻輳ウィンドウを減少させる工程と、
    (g)前記当初のデータパケットのバーストのうちの少なくとも所定のデータ量について、前記ACKが確認応答を行うと、前記バーストサイズを増加させる工程であって、前記所定のデータ量は前記当初のバーストにおけるパケット数よりも少ない、工程と、
    (h)前記当初のデータパケットのバーストのうちの前記所定のデータ量よりも少ない量について、前記ACKが確認応答を行うと、前記バーストサイズを同一サイズに維持する工程とを備え、
    さらに、前記ACKによって確認応答が行われたデータ量が、前記輻輳ウィンドウの半分よりも多く、かつ、送信待ち状態のデータパケットが存在する場合、前記バーストサイズを所定量増加させる工程とを備えた、データパケット処理方法。
  2. 請求項1において、前記工程(d)よりも後に、さらに、
    前記当初のデータパケットのバーストのデータ量以上の量について、前記ACKが確認応答を行う場合、前記バーストサイズを増加させる、データパケット処理方法。
  3. 請求項1において、さらに、送信される追加データが存在しない場合、前記バーストサイズを同一に維持する工程を備えた、データパケット処理方法。
  4. 請求項1において、前記データパケットがTCPパケットである、データパケット処理方法。
  5. 請求項1において、さらに、前記一のデータ通信装置がアイドル状態になると、前記バーストサイズをデフォルト値にリセットする工程を備えた、データパケット処理方法。
  6. 請求項1において、さらに、データパケット損失が検出されると、前記バーストサイズをデフォルト値にリセットする工程を備えた、データパケット処理方法。
  7. 請求項1において、さらに、
    (i)進行中バーストフラグを保持する工程であって、前記当初のデータパケットのバーストを送信する前記工程(c)が完了した後に、前記進行中バーストフラグが真値に設定される工程を備えた、データパケット処理方法。
  8. 請求項において、前記工程()および工程()は、前記進行中バーストフラグが前記真値に設定されている場合にのみ実行される、データパケット処理方法。
  9. 請求項において、前記ステップ(i)は、さらに、前記当初のバーストにおけるパケットが所定のパケットサイズ制限値よりも短い長さのパケットを有する場合にのみ、進行中バーストフラグを前記真値に設定する、データパケット処理方法。
  10. 請求項において、前記バーストサイズが所定の最大バーストサイズに達した場合、前記進行中バーストフラグが偽値に設定される、データパケット処理方法。
JP2007523876A 2004-07-29 2005-07-29 低頻度ackのシステムに適した高性能tcp Active JP5020076B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US59206504P 2004-07-29 2004-07-29
US60/592,065 2004-07-29
PCT/US2005/027212 WO2006015300A2 (en) 2004-07-29 2005-07-29 High performance tcp for systems with infrequent ack

Publications (2)

Publication Number Publication Date
JP2008508817A JP2008508817A (ja) 2008-03-21
JP5020076B2 true JP5020076B2 (ja) 2012-09-05

Family

ID=35787891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007523876A Active JP5020076B2 (ja) 2004-07-29 2005-07-29 低頻度ackのシステムに適した高性能tcp

Country Status (4)

Country Link
US (1) US7706274B2 (ja)
EP (1) EP1771742B1 (ja)
JP (1) JP5020076B2 (ja)
WO (1) WO2006015300A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101139996B1 (ko) * 2004-12-22 2012-05-02 텔레폰악티에볼라겟엘엠에릭슨(펍) 중복 확인으로 데이터 흐름 제어
US20070081561A1 (en) * 2005-10-11 2007-04-12 International Business Machines Corporation Single ended solution for estimation of bandwidth delay product
US8411581B2 (en) * 2006-07-25 2013-04-02 Broadcom Corporation Method and system for medium access control (MAC) layer specialization for voice and multimedia data streams
JP4714172B2 (ja) * 2007-02-28 2011-06-29 日本放送協会 ファイル受信装置およびファイル受信プログラム
US8199648B2 (en) * 2007-07-03 2012-06-12 Cisco Technology, Inc. Flow control in a variable latency system
US8015310B2 (en) * 2008-08-08 2011-09-06 Cisco Technology, Inc. Systems and methods of adaptive playout of delayed media streams
US8812641B2 (en) * 2008-09-30 2014-08-19 Freescale Semiconductor, Inc. Processing load with normal or fast operation mode
US8239739B2 (en) * 2009-02-03 2012-08-07 Cisco Technology, Inc. Systems and methods of deferred error recovery
US8036223B2 (en) * 2009-02-26 2011-10-11 Research In Motion Limited Method, apparatus and system for improving packet throughput based on classification of packet loss in data transmissions
US9584416B2 (en) * 2009-06-08 2017-02-28 Qualcomm Incorporated Systems and methods to provide flow control for mobile devices
US8625622B2 (en) * 2009-12-25 2014-01-07 Cisco Technology, Inc. Increasing transmission rate to a remote device in response to attributing information loss as not being a result of network congestion
TWI492574B (zh) * 2010-02-05 2015-07-11 Realtek Semiconductor Corp 一種通訊系統的遠端裝置狀態的偵測與傳輸控制的方法
JP5533270B2 (ja) * 2010-05-28 2014-06-25 日本電気株式会社 ゲートウェイ装置およびゲートウェイ装置におけるパケットバッファ管理方法
JP5517875B2 (ja) 2010-10-07 2014-06-11 パナソニック株式会社 無線通信システム、データ送信装置、データ無線受信装置、及び、無線通信方法
KR101051712B1 (ko) * 2011-02-11 2011-07-26 삼성탈레스 주식회사 데이터 전송 방법
US10009445B2 (en) * 2012-06-14 2018-06-26 Qualcomm Incorporated Avoiding unwanted TCP retransmissions using optimistic window adjustments
US9276866B2 (en) * 2012-11-30 2016-03-01 Microsoft Technology Licensing, Llc Tuning congestion notification for data center networks
US9118569B2 (en) * 2013-04-06 2015-08-25 Citrix System, Inc. Systems and methods for TCP Westwood hybrid approach
CN104954279B (zh) * 2014-03-28 2018-04-10 华为技术有限公司 一种传输控制方法、装置及系统
JP6455135B2 (ja) 2014-12-24 2019-01-23 富士通株式会社 パケット抽出装置、パケット抽出プログラムおよびパケット抽出方法
EP3297384B1 (en) * 2015-05-12 2020-07-01 LG Electronics Inc. Method for adjusting contention window size in wireless access system supporting unlicensed band, and device for supporting same
KR102363534B1 (ko) * 2015-06-08 2022-02-17 삼성전자주식회사 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치
IT201900010362A1 (it) * 2019-06-28 2020-12-28 Telecom Italia Spa Abilitazione della misura di perdita di pacchetti round-trip in una rete di comunicazioni a commutazione di pacchetto

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078564A (en) * 1996-08-30 2000-06-20 Lucent Technologies, Inc. System for improving data throughput of a TCP/IP network connection with slow return channel
US7035291B2 (en) * 2001-05-02 2006-04-25 Ron Grinfeld TCP transmission acceleration
US5974028A (en) * 1997-02-24 1999-10-26 At&T Corp. System and method for improving transport protocol performance in communication networks having lossy links
US5912878A (en) * 1997-02-27 1999-06-15 Motorola, Inc. Method and end station with improved user reponse time in a mobile network
US6105064A (en) * 1997-05-30 2000-08-15 Novell, Inc. System for placing packets on network for transmission from sending endnode to receiving endnode at times which are determined by window size and metering interval
CA2249152C (en) * 1998-09-30 2003-07-08 Northern Telecom Limited Apparatus for and method of managing bandwidth for a packet-based connection
JP3003095B1 (ja) * 1998-10-22 2000-01-24 株式会社超高速ネットワーク・コンピュータ技術研究所 フロー制御方法
US6643259B1 (en) * 1999-11-12 2003-11-04 3Com Corporation Method for optimizing data transfer in a data network
US6831912B1 (en) * 2000-03-09 2004-12-14 Raytheon Company Effective protocol for high-rate, long-latency, asymmetric, and bit-error prone data links
US7027393B1 (en) * 2001-03-02 2006-04-11 Cisco Technology, Inc. TCP optimized single rate policer
US7389336B2 (en) * 2003-01-24 2008-06-17 Microsoft Corporation Pacing network packet transmission using at least partially uncorrelated network events
US7290195B2 (en) * 2004-03-05 2007-10-30 Microsoft Corporation Adaptive acknowledgment delay
US7397759B2 (en) * 2004-03-15 2008-07-08 Microsoft Corporation Response for spurious timeout

Also Published As

Publication number Publication date
EP1771742B1 (en) 2017-07-12
US20060034286A1 (en) 2006-02-16
US7706274B2 (en) 2010-04-27
JP2008508817A (ja) 2008-03-21
WO2006015300A2 (en) 2006-02-09
EP1771742A4 (en) 2011-06-22
EP1771742A2 (en) 2007-04-11
WO2006015300A3 (en) 2006-05-04

Similar Documents

Publication Publication Date Title
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
US6643259B1 (en) Method for optimizing data transfer in a data network
KR100785293B1 (ko) 다중 tcp확인응답을 이용한 tcp 혼잡 제어 시스템및 그 방법
US7369498B1 (en) Congestion control method for a packet-switched network
JP5544430B2 (ja) 通信装置および通信システム
CA2628788C (en) Transmission control protocol with performance enhancing proxy for degraded communication channels
CA2313025C (en) A receiver initiated recovery algorithm (rira) for the layer 2 tunneling protocol (l2tp)
KR102061772B1 (ko) 데이터 전송 방법 및 장치
Caini et al. Transport layer protocols and architectures for satellite networks
US20070223529A1 (en) Methods and apparatus for estimating bandwidth of a data network
CN104683259A (zh) Tcp拥塞控制方法及装置
Wang et al. Use of TCP decoupling in improving TCP performance over wireless networks
JP2007013449A (ja) シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置
JP2005136684A (ja) データ転送方法とtcpプロキシ装置およびそれを用いたネットワークシステム
Henderson TCP performance over satellite channels
WO2020154872A1 (zh) 一种传输控制协议加速方法和装置
KR100913897B1 (ko) 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜혼잡제어방법
JP2984910B2 (ja) データフロー制御方法
US20140369189A1 (en) Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent
KR101231793B1 (ko) Tcp 세션 최적화 방법 및 네트워크 노드
KR101396785B1 (ko) 네트워크 장치에서 tcp 기능을 수행하는 방법
Chen et al. An enhanced TCP for satellite network with intermittent connectivity and random losses
JP2003198612A (ja) パケット通信ネットワークにおけるファイル転送方法
Eddie Law Transport protocols for wireless mesh networks
Suthar et al. Comparision of SACK TCP performance with and without LSS for high speed network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080513

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110808

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111116

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120515

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120612

R150 Certificate of patent or registration of utility model

Ref document number: 5020076

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150622

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250