JP2010521848A - 輻輳を低減させる高信頼性パケット送信のための方法、システム、およびコンピュータ・プログラム・コード(輻輳を低減させる高信頼性転送パケット再試行エンジン) - Google Patents

輻輳を低減させる高信頼性パケット送信のための方法、システム、およびコンピュータ・プログラム・コード(輻輳を低減させる高信頼性転送パケット再試行エンジン) Download PDF

Info

Publication number
JP2010521848A
JP2010521848A JP2009553092A JP2009553092A JP2010521848A JP 2010521848 A JP2010521848 A JP 2010521848A JP 2009553092 A JP2009553092 A JP 2009553092A JP 2009553092 A JP2009553092 A JP 2009553092A JP 2010521848 A JP2010521848 A JP 2010521848A
Authority
JP
Japan
Prior art keywords
packet
retry
network endpoint
packets
network
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.)
Granted
Application number
JP2009553092A
Other languages
English (en)
Other versions
JP4932008B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010521848A publication Critical patent/JP2010521848A/ja
Application granted granted Critical
Publication of JP4932008B2 publication Critical patent/JP4932008B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • 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/1803Stop-and-wait 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/188Time-out mechanisms
    • H04L1/1883Time-out mechanisms using multiple timers
    • 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/28Timers or timing mechanisms used in protocols

Abstract

【課題】 輻輳を低減させるようにネットワークを介してパケットを再送信するための方法、システム、およびコンピュータ・プログラム・コードを提供する。
【解決手段】 少なくとも1つのネットワーク・エンドポイントによって受信するように決められたネットワークを介する少なくとも1つのパケットを送信するための方法、装置、およびコンピュータ読み取り可能媒体。少なくとも1つのネットワーク・エンドポイントに送信されるキューから、複数のパケットを順次処理する。複数のパケットから少なくとも第1のパケットを、ネットワーク・エンドポイントに送信する。ネットワーク・エンドポイントに送信された少なくとも第1のパケットは、承認されていないと判定される。少なくとも第1のパケットに関連した第1の再試行パケットを、少なくとも1つのネットワーク・エンドポイントに送信する。ネットワーク・エンドポイントへの第1の再試行パケット以外のパケットの送信を一時停止する。第1の再試行パケットは、少なくとも1つのネットワーク・エンドポイントによって承認されたことが判定される。複数のパケットにおける残りのパケットの少なくとも1つのネットワーク・エンドポイントへの送信を再開する。
【選択図】 図2

Description

本発明は、一般に、ネットワークを介してデータを送信する分野に関し、更に具体的には、信頼性の高い転送プロトコルを用いたネットワークを介するパケット送出の管理に関する。
ネットワーキング・システムにおいては、信頼性の高い転送プロトコルを用いて、送信中にエラーが生じた場合でもデータが正しく受信されることを保証する。一般に、信頼性の高い転送プロトコルでは、パケットを最初に送信する際に、連続したシーケンス番号をパケットに割り当てる。パケットがその宛先において(次のホップ(hop)において、またはそれらの最終的な宛先においてのいずれかで)受信されると、受信側は承認パケットを発信側に返信して、どのシーケンス番号を受信したかを知らせる。承認されないパケットは通常、既定のタイムアウト期間が過ぎた後、発信側によって再びキューに入れられて再送信される。しかしながら、従来の信頼性の高い転送システムにおいては、あるノードがタイムアウト(すなわち承認が受信されていないこと)を検出すると、そのノードのためにキューに入っていた全てのパケットを再送信する。これは、ネットワークが多数のパケットでいっぱいになるという欠点がある。エンドポイントへの失敗のない送信を妨げる通信の問題点が解決されない場合、パケットは全て捨てられてしまう。伝達が失敗したパケットを全て再送信することによる通信リソースの消費は、問題のないネットワーク内の無関係のノードに動作に悪影響を及ぼしかねない。なぜなら、共有される通信リソースの可用性が低減するからである。
従って、上述したような従来技術の問題点を克服する必要がある。
従って、本発明は、少なくとも1つのネットワーク・エンドポイントによって受信するように決められたネットワークを介する少なくとも1つのパケットを送信するための情報処理システムを動作させる方法を提供する。この方法は、少なくとも1つのネットワーク・エンドポイントに送信されるキューから複数のパケットを順次処理するステップと、複数のパケットから少なくとも第1のパケットを少なくとも1つのネットワーク・エンドポイントに送信するステップと、少なくとも1つのネットワーク・エンドポイントに送信された少なくとも第1のパケットが承認されていないことを判定するステップと、少なくとも第1のパケットが少なくとも1つのネットワーク・エンドポイントによって承認されていないことの判定に応答して、少なくとも第1のパケットに関連した第1の再試行パケットを少なくとも1つのネットワーク・エンドポイントに送信するステップと、少なくとも1つのネットワーク・エンドポイントへの第1の再試行パケット以外のパケットの送信を一時停止するステップと、第1の再試行パケットが少なくとも1つのネットワーク・エンドポイントによって承認されたことを判定するステップと、第1の再試行パケットが承認されたことの判定に応答して、複数のパケットにおける残りのパケットの少なくとも1つのネットワーク・エンドポイントへの送信を再開するステップと、を含む。
この方法は、少なくとも第1のパケットの送信に応答して、少なくとも第1のパケットに関連した複数のタイマを開始させるステップを更に含むことができる。
好ましくは、少なくとも1つのネットワーク・エンドポイントにおける各ネットワーク・エンドポイントごとに複数のパケット内のパケットが、1を基準とするシーケンス番号に従って順序付けられ、その各シーケンス番号に対応した順序でその各ネットワーク・エンドポイントに各パケットが送信される。
好ましくは、一時停止するステップが、少なくとも1つのネットワーク・ノードへの第1の再試行パケット以外のパケットの送信を一時停止するステップであって、他のネットワーク・エンドポイントへのパケットの送信は一時停止しないステップを更に含む。
好ましくは、複数のタイマにおける第1のタイマが、少なくとも1つのネットワーク・エンドポイントからの承認を受信するための第1の所与の閾値に関連付けられている。
好ましくは、少なくとも1つのネットワーク・エンドポイントに送信された第1の再試行パケットが承認されていないことを判定するステップが、少なくとも1つのネットワーク・エンドポイントに送信された第1の再試行パケットに関連した承認パケットを監視するステップと、第1のタイマに関連した値が第1の所与の閾値よりも大きいことに応答して、第1の所与の閾値の後に承認パケットを受信していないことを判定するステップと、を更に含む。
好ましくは、第1の再試行パケットを送信するステップが、少なくとも第1のパケットが、関連する承認パケットなしに少なくとも1つのネットワーク・エンドポイントに送信された最も早いパケットであることを判定するステップと、判定に応答して、第1の再試行データ・パケットを少なくとも1つのネットワーク・エンドポイントに送信するステップであって、少なくとも1つのネットワーク・エンドポイントから第1の再試行パケットに関連した承認パケットを受信するまで、少なくとも1つのネットワーク・エンドポイントに他のパケットを送信しない、ステップと、を更に含む。
この方法は、送信に応答して、第1の再試行パケットに関連した少なくとも1つのタイマを開始させるステップを更に含むことができる。
この方法は、第1の再試行パケットの第1の送信の際に第2のタイマを開始させるステップであって、第1の再試行パケットの送信に関連した承認を少なくとも1つのネットワーク・エンドポイントから受信するまで第2のタイマが動作し続けるステップと、第2のタイマに基づいて、少なくとも1つのネットワーク・エンドポイントに再試行されているパケットについて第2の所与の閾値が発生したことを判定する、ステップと、第2の閾値が発生したことの判定に応答して、第1の再試行パケットを以前に送信するために用いられた送信ルートとは異なる代替的な送信ルートを用いて、第1の再試行パケットを少なくとも1つのネットワーク・エンドポイントに再送信するステップと、
を更に含むことができる。
この方法は、少なくとも1つのネットワーク・エンドポイントへの全パケット送信をいつ一時停止するかを決定するための所与の閾値に関連した複数のタイマにおける少なくとも1つのタイマを監視するステップと、この監視に応答して、少なくとも1つのタイマに関連した所与の閾値が発生したことを判定するステップと、この閾値が発生したことの判定に応答して、少なくとも1つのネットワーク・エンドポイントへの全パケット送信を一時停止するステップと、を更に含むことができる。
この方法は、少なくとも1つのネットワーク・エンドポイント上におけるエラー回復を実行するステップを更に含むことができる。
この方法は、少なくとも1つのネットワーク・エンドポイントから承認パケットを受信するステップと、承認パケットに関連したシーケンス番号を分析するステップと、分析に応答して、シーケンス番号が、少なくとも1つのネットワーク・エンドポイントに関連した現シーケンス番号よりも大きいこと、および、少なくとも1つのネットワーク・エンドポイントに送信されたパケット・シーケンスにおける最後の送信パケットに関連したシーケンス番号以下の少なくとも1つであることを判定するステップと、シーケンス番号が、少なくとも1つのネットワーク・エンドポイントに関連した現シーケンス番号よりも大きいこと、および、少なくとも1つのネットワーク・エンドポイントに送信されたパケット・シーケンスにおける最後の送信パケットに関連したシーケンス番号以下の少なくとも1つであることの判定に応答して、シーケンス番号を、少なくとも1つの宛先ネットワークから受信された承認として記憶するステップと、シーケンス番号の少なくとも1つが、少なくとも1つのネットワーク・エンドポイントに関連した現シーケンス番号よりも大きいこと、および、少なくとも1つのネットワーク・エンドポイントに送信されたパケット・シーケンスにおける最後の送信パケットに関連したシーケンス番号以下の少なくとも1つであることの判定に応答して、承認パケットを捨てるステップと、を更に含むことができる。
第2の態様において、少なくとも1つのネットワーク・エンドポイントによって受信するように決められたネットワークを介する少なくとも1つのパケットを送信するための情報処理システムが提供される。この情報処理システムは、メモリと、メモリに通信可能に結合されたプロセッサと、ネットワーク・エンドポイントに送信される複数のパケットを記憶するように適合されたキューと、メモリおよびプロセッサに通信可能に結合されたパケット・マネージャと、を含む。パケット・マネージャは、少なくとも1つのネットワーク・エンドポイントに送信されるキューから複数のパケットを順次処理し、複数のパケットから少なくとも第1のパケットを少なくとも1つのネットワーク・エンドポイントに送信し、少なくとも1つのネットワーク・エンドポイントに送信された少なくとも第1のパケットが承認されていないことを判定し、少なくとも第1のパケットが少なくとも1つのネットワーク・エンドポイントによって承認されていないことの判定に応答して、少なくとも第1のパケットに関連した第1の再試行パケットを少なくとも1つのネットワーク・エンドポイントに送信し、少なくとも1つのネットワーク・エンドポイントへの第1の再試行パケット以外のパケットの送信を一時停止し、第1の再試行パケットが少なくとも1つのネットワーク・エンドポイントによって承認されたことを判定し、第1の再試行パケットが承認されたことの判定に応答して、複数のパケットにおける残りのパケットの少なくとも1つのネットワーク・エンドポイントへの送信を再開するように適合されている。
好ましくは、パケット・マネージャは、更に、少なくとも第1のパケットの送信に応答して、少なくとも第1のパケットに関連した複数のタイマを開始させる。
好ましくは、パケット・マネージャによる一時停止が、少なくとも1つのネットワーク・ノードへの第1の再試行パケット以外のパケットの送信を一時停止し、他のネットワーク・エンドポイントへのパケットの送信は一時停止しないことを更に含む。
好ましくは、複数のタイマにおける第1のタイマが、少なくとも1つのネットワーク・エンドポイントからの承認を受信するための第1の所与の閾値に関連付けられている。
好ましくは、少なくとも1つのネットワーク・エンドポイントに送信された第1の再試行パケットが承認されていないことの判定が、少なくとも1つのネットワーク・エンドポイントに送信された第1の再試行パケットに関連した承認パケットを監視することと、第1のタイマに関連した値が第1の所与の閾値よりも大きいことに応答して、第1の所与の閾値の後に承認パケットを受信していないことを判定することと、を更に含む。
好ましくは、第1の再試行パケットの送信が、少なくとも第1のパケットが、関連する承認パケットなしに少なくとも1つのネットワーク・エンドポイントに送信された最も早いパケットであることを判定することと、判定に応答して、第1の再試行データ・パケットを少なくとも1つのネットワーク・エンドポイントに送信し、少なくとも1つのネットワーク・エンドポイントから第1の再試行パケットに関連した承認パケットを受信するまで、少なくとも1つのネットワーク・エンドポイントに他のパケットを送信しないことと、を更に含む。
好ましくは、パケット・マネージャは、第1の再試行パケットの第1の送信の際に第2のタイマを開始させ、第1の再試行パケットの送信に関連した承認を少なくとも1つのネットワーク・エンドポイントから受信するまで第2のタイマが動作し続け、第2のタイマに基づいて、少なくとも1つのネットワーク・エンドポイントに再試行されているパケットについて第2の所与の閾値が発生したことを判定し、第2の閾値が発生したことの判定に応答して、第1の再試行パケットを以前に送信するために用いられた送信ルートとは異なる代替的な送信ルートを用いて、第1の再試行パケットを少なくとも1つのネットワーク・エンドポイントに再送信するように更に適合されている。
好ましくは、パケット・マネージャは、少なくとも1つのネットワーク・エンドポイントへの全パケット送信をいつ一時停止するかを決定するための所与の閾値に関連した複数のタイマにおける少なくとも1つのタイマを監視し、この監視に応答して、少なくとも1つのタイマに関連した所与の閾値が発生したことを判定し、この閾値が発生したことの判定に応答して、少なくとも1つのネットワーク・エンドポイントへの全パケット送信を一時停止するように更に適合されている。
好ましくは、パケット・マネージャは、少なくとも1つのネットワーク・エンドポイント上におけるエラー回復を実行するように更に適合されている。
第3の態様においては、コンピュータ・プログラム・コードが提供される。これは、コンピュータ・システムにロードされて実行されると、第1の態様に従った方法のステップ全てをコンピュータ・システムに実行させる。
コンピュータ・プログラムは、少なくとも1つのネットワーク・エンドポイントによって受信するように決められたネットワークを介する少なくとも1つのパケットを送信するために、機械実行可能プログラムによってタンジブルに(tangibly)符号化されたコンピュータ読み取り可能媒体として具現化することができる。機械実行可能プログラムは、少なくとも1つのネットワーク・エンドポイントに送信されるキューから複数のパケットを順次処理し、複数のパケットから少なくとも第1のパケットを少なくとも1つのネットワーク・エンドポイントに送信し、少なくとも1つのネットワーク・エンドポイントに送信された少なくとも第1のパケットが承認されていないことを判定し、少なくとも第1のパケットが少なくとも1つのネットワーク・エンドポイントによって承認されていないことの判定に応答して、少なくとも第1のパケットに関連した第1の再試行パケットを少なくとも1つのネットワーク・エンドポイントに送信し、少なくとも1つのネットワーク・エンドポイントへの第1の再試行パケット以外のパケットの送信を一時停止し、第1の再試行パケットが少なくとも1つのネットワーク・エンドポイントによって承認されたことを判定し、第1の再試行パケットが承認されたことの判定に応答して、複数のパケットにおける残りのパケットの少なくとも1つのネットワーク・エンドポイントへの送信を再開するための命令を含む。
コンピュータ・プログラムは、少なくとも第1のパケットの送信に応答して、少なくとも第1のパケットに関連した複数のタイマを開始させるための命令を更に含むことができる。
好ましくは、一時停止するための命令が、少なくとも1つのネットワーク・ノードへの第1の再試行パケット以外のパケットの送信を一時停止し、他のネットワーク・エンドポイントへのパケットの送信は一時停止しないための命令を更に含む。
好ましくは、複数のタイマにおける第1のタイマが、少なくとも1つのネットワーク・エンドポイントからの承認を受信するための第1の所与の閾値に関連付けられている。
好ましくは、第1の再試行パケットを送信するための命令が、少なくとも第1のパケットが、関連する承認パケットなしに少なくとも1つのネットワーク・エンドポイントに送信された最も早いパケットであることを判定し、この判定に応答して、第1の再試行データ・パケットを少なくとも1つのネットワーク・エンドポイントに送信し、少なくとも1つのネットワーク・エンドポイントから第1の再試行パケットに関連した承認パケットを受信するまで、少なくとも1つのネットワーク・エンドポイントに他のパケットを送信しないための命令を更に含む。
コンピュータ・プログラムは、第1の再試行パケットの第1の送信の際に第2のタイマを開始させ、第1の再試行パケットの送信に関連した承認を少なくとも1つのネットワーク・エンドポイントから受信するまで第2のタイマが動作し続け、第2のタイマに基づいて、少なくとも1つのネットワーク・エンドポイントに再試行されているパケットについて第2の所与の閾値が発生したことを判定し、第2の閾値が発生したことの判定に応答して、第1の再試行パケットを以前に送信するために用いられた送信ルートとは異なる代替的な送信ルートを用いて、第1の再試行パケットを少なくとも1つのネットワーク・エンドポイントに再送信するための命令を更に含むことができる。
コンピュータ・プログラムは、少なくとも1つのネットワーク・エンドポイントへの全パケット送信をいつ一時停止するかを決定するための所与の閾値に関連した複数のタイマにおける少なくとも1つのタイマを監視し、この監視に応答して、少なくとも1つのタイマに関連した所与の閾値が発生したことを判定し、この閾値が発生したことの判定に応答して、少なくとも1つのネットワーク・エンドポイントへの全パケット送信を一時停止するための命令を更に含むことができる。
更に、ネットワーク・デバイスを提供することができる。このデバイスは、メモリと、メモリに通信可能に結合されたプロセッサと、メモリおよびプロセッサに通信可能に結合された少なくとも1つのネットワーク・アダプタと、少なくともネットワーク・エンドポイントに送信される複数のパケットを記憶するように適合されたキューと、メモリ、キュー、およびプロセッサに通信可能に結合されたパケット・マネージャと、を含む。パケット・マネージャは、少なくとも1つのネットワーク・エンドポイントに送信されるキューから複数のパケットを順次処理し、複数のパケットから少なくとも第1のパケットを少なくとも1つのネットワーク・エンドポイントに送信し、少なくとも1つのネットワーク・エンドポイントに送信された少なくとも第1のパケットが承認されていないことを判定し、少なくとも第1のパケットが少なくとも1つのネットワーク・エンドポイントによって承認されていないことの判定に応答して、少なくとも第1のパケットに関連した第1の再試行パケットを少なくとも1つのネットワーク・エンドポイントに送信し、少なくとも1つのネットワーク・エンドポイントへの第1の再試行パケット以外のパケットの送信を一時停止し、第1の再試行パケットが少なくとも1つのネットワーク・エンドポイントによって承認されたことを判定し、第1の再試行パケットが承認されたことの判定に応答して、複数のパケットにおける残りのパケットの少なくとも1つのネットワーク・エンドポイントへの送信を再開するように適合されている。
好ましくは、パケット・マネージャは、更に、少なくとも第1のパケットの送信に応答して、少なくとも第1のパケットに関連した複数のタイマを開始させる。
好ましくは、パケット・マネージャによる一時停止が、少なくとも1つのネットワーク・ノードへの第1の再試行パケット以外のパケットの送信を一時停止し、他のネットワーク・エンドポイントへのパケットの送信は一時停止しないことを更に含む。
好ましくは、複数のタイマにおける第1のタイマが、少なくとも1つのネットワーク・エンドポイントからの承認を受信するための第1の所与の閾値に関連付けられている。
好ましくは、少なくとも1つのネットワーク・エンドポイントに送信された第1の再試行パケットが承認されていないことの判定が、少なくとも1つのネットワーク・エンドポイントに送信された第1の再試行パケットに関連した承認パケットを監視し、第1のタイマに応答して、第1の所与の閾値の後に承認パケットを受信していないことを判定することを更に含む。
好ましくは、第1の再試行パケットの送信が、少なくとも第1のパケットが、関連する承認パケットなしに少なくとも1つのネットワーク・エンドポイントに送信された最も早いパケットであることを判定し、この判定に応答して、第1の再試行データ・パケットを少なくとも1つのネットワーク・エンドポイントに送信し、少なくとも1つのネットワーク・エンドポイントから第1の再試行パケットに関連した承認パケットを受信するまで、少なくとも1つのネットワーク・エンドポイントに他のパケットを送信しないことを更に含む。
好ましくは、パケット・マネージャは、第1の再試行パケットの第1の送信の際に第2のタイマを開始させ、第1の再試行パケットの送信に関連した承認を少なくとも1つのネットワーク・エンドポイントから受信するまで第2のタイマが動作し続け、第2のタイマに基づいて、少なくとも1つのネットワーク・エンドポイントに再試行されているパケットについて第2の所与の閾値が発生したことを判定し、第2の閾値が発生したことの判定に応答して、第1の再試行パケットを以前に送信するために用いられた送信ルートとは異なる代替的な送信ルートを用いて、第1の再試行パケットを少なくとも1つのネットワーク・エンドポイントに再送信するように更に適合されている。
従って、本発明の好適な実施形態は、少なくとも1つのネットワーク・エンドポイントによって受信するように決められたネットワークを介する少なくとも1つのパケットを送信するための、方法、情報処理システム、コンピュータ読み取り可能媒体、およびネットワーク・デバイスを含む。この方法は、少なくとも1つのネットワーク・エンドポイントに送信されるキューから、複数のパケットを順次処理することを含む。複数のパケットから少なくとも第1のパケットを、少なくとも1つのネットワーク・エンドポイントに送信する。少なくとも1つのネットワーク・エンドポイントに送信された少なくとも第1のパケットは、承認されていないと判定される。少なくとも第1のパケットが少なくとも1つのネットワーク・エンドポイントに承認されていないことの判定に応答して、少なくとも第1のパケットに関連した第1の再試行パケットを、少なくとも1つのネットワーク・エンドポイントに送信する。少なくとも1つのネットワーク・エンドポイントへの第1の再試行パケット以外のパケットの送信を一時停止する。第1の再試行パケットは、少なくとも1つのネットワーク・エンドポイントによって承認されたことが判定される。第1の再試行パケットが承認されたことの判定に応答して、複数のパケットにおける残りのパケットの少なくとも1つのネットワーク・エンドポイントへの送信を再開する。
別の実施形態において、少なくとも1つのネットワーク・エンドポイントによって受信するように決められたネットワークを介する少なくとも1つのパケットを送信するための情報処理システムが開示される。情報処理システムは、メモリと、このメモリに通信可能に結合されたプロセッサと、を含む。また、情報処理システムは、ネットワーク・エンドポイントに送信される複数のパケットを記憶するように適合されたキューも含む。メモリおよびプロセッサに、パケット・マネージャが通信可能に結合されている。パケット・マネージャは、少なくとも1つのネットワーク・エンドポイントに送信されるキューから複数のパケットを順次処理するように適合されている。複数のパケットから少なくとも第1のパケットを、少なくとも1つのネットワーク・エンドポイントに送信する。少なくとも1つのネットワーク・エンドポイントに送信された少なくとも第1のパケットは、承認されていないと判定される。少なくとも第1のパケットが少なくとも1つのネットワーク・エンドポイントによって承認されていないことの判定に応答して、少なくとも第1のパケットに関連した第1の再試行パケットを、少なくとも1つのネットワーク・エンドポイントに送信する。少なくとも1つのネットワーク・エンドポイントへの第1の再試行パケット以外のパケットの送信を一時停止する。第1の再試行パケットは、少なくとも1つのネットワーク・エンドポイントによって承認されたことが判定される。第1の再試行パケットが承認されたことの判定に応答して、複数のパケットにおける残りのパケットの少なくとも1つのネットワーク・エンドポイントへの送信を再開する。
更に別の実施形態において、少なくとも1つのネットワーク・エンドポイントによって受信するように決められたネットワークを介する少なくとも1つのパケットを送信するためのコンピュータ読み取り可能媒体が開示される。コンピュータ読み取り可能媒体は、少なくとも1つのネットワーク・エンドポイントに送信されるキューから複数のパケットを順次処理するための命令を含む。複数のパケットから少なくとも第1のパケットを、少なくとも1つのネットワーク・エンドポイントに送信する。少なくとも1つのネットワーク・エンドポイントに送信された少なくとも第1のパケットは、承認されていないと判定される。少なくとも第1のパケットが少なくとも1つのネットワーク・エンドポイントによって承認されていないことの判定に応答して、少なくとも第1のパケットに関連した第1の再試行パケットを少なくとも1つのネットワーク・エンドポイントに送信する。少なくとも1つのネットワーク・エンドポイントへの第1の再試行パケット以外のパケットの送信を一時停止する。第1の再試行パケットは、少なくとも1つのネットワーク・エンドポイントによって承認されたことが判定される。第1の再試行パケットが承認されたことの判定に応答して、複数のパケットにおける残りのパケットの少なくとも1つのネットワーク・エンドポイントへの送信を再開する。
別の実施形態では、ネットワーク・デバイスが開示される。ネットワーク・デバイスは、メモリと、このメモリに通信可能に結合されたプロセッサと、を含む。また、ネットワーク・デバイスは、メモリおよびプロセッサに通信可能に結合された少なくとも1つのネットワーク・アダプタも含む。少なくともネットワーク・エンドポイントに送信される複数のパケットを記憶するように、キューが適合されている。メモリ、キューに、パケット・マネージャが通信可能に結合され、プロセッサは、少なくとも1つのネットワーク・エンドポイントに送信されるキューから複数のパケットを順次処理するように適合されている。複数のパケットから少なくとも第1のパケットを、少なくとも1つのネットワーク・エンドポイントに送信する。少なくとも1つのネットワーク・エンドポイントに送信された少なくとも第1のパケットは、承認されていないと判定される。少なくとも第1のパケットが少なくとも1つのネットワーク・エンドポイントによって承認されていないことの判定に応答して、少なくとも第1のパケットに関連した第1の再試行パケットを、少なくとも1つのネットワーク・エンドポイントに送信する。少なくとも1つのネットワーク・エンドポイントへの第1の再試行パケット以外のパケットの送信を一時停止する。第1の再試行パケットは、少なくとも1つのネットワーク・エンドポイントによって承認されたことが判定される。第1の再試行パケットが承認されたことの判定に応答して、複数のパケットにおける残りのパケットの少なくとも1つのネットワーク・エンドポイントへの送信を再開する。
本発明の1つの利点は、未承認パケットの再送信によるネットワークにおける輻輳を低減させるように、ネットワークを介してパケットを再送信するパケット再送信モジュールが提供されることである。例えば、パケット再送信モジュールは、特定のエンドポイント間の未着パケットの再送信を、承認されずにその単一パケットに対する応答を待っている最初のパケットのみに限定する。第1の未承認パケットを承認した後でのみ、再送信モジュールは次に進んで全ての他の未処理(outstanding)パケットの送信を行う。この送信は、まだ送信されていないパケットがこれから送信されることを検出するまで続き、その時に再送信モジュールはその正常送信機構に戻る(すなわち、未処理パケット数の限度に達するまで即時承認を待つことなく送信する)。本発明の実施形態では、承認タイムアウトの場合に、ネットワークが未承認パケットでいっぱいになるのを防ぎ、パケットは受信された最初の順序で再送信される。
これより、本発明の好適な実施形態について、一例としてのみ、添付図面を参照して説明する。
本発明の実施形態に従った、パケットを送信するための例示的なネットワークを示すブロック図である。 本発明の実施形態に従ったパケット再送信モジュールの更に詳細な図である。 本発明の実施形態に従った再試行状態機械の詳細図である。 本発明の実施形態に従った、図3の再試行状態機械の続きである。 本発明の実施形態に従った、図1の情報処理システムの詳細図である。 本発明の実施形態に従った、新たに受信したパケットを処理するための例示的なプロセスを示す動作フロー図である。 本発明の実施形態に従った、新たに受信したパケットを処理するための例示的なプロセスを示す動作フロー図である。 本発明の実施形態に従った、タイマを維持するための例示的なプロセスを示す動作フロー図である。 本発明の実施形態に従った、ノードが4つの異なる送信状態を経る際にノードに送信される一連のパケットの高レベルの例を示す図である。
本発明において用いる場合、プログラム、ソフトウェア・アプリケーション等の言葉は、コンピュータ・システム上で実行するために設計された命令シーケンスとして定義する。プログラム、コンピュータ・プログラム、またはソフトウェア・アプリケーションは、コンピュータ・システム上で実行するために設計されたサブルーチン、機能、手順、オブジェクト方法、オブジェクト実施、実行可能アプリケーション、アプレット、サーブレット(servlet)、ソース・コード、オブジェクト・コード、共有ライブラリ/ダイナミック・ロード・ライブラリまたは他の命令シーケンスあるいはそれら全てを含むことができる。
例示的なネットワーク
本発明の一実施形態に従って、図1に示すように、例示的なネットワーク100を図示する。図1は、情報処理システム104、エンドポイントA106、およびエンドポイントN108等のネットワーク・ノードに通信可能に結合されたネットワーク102を示す。エンドポイント106、108は各々、情報処理システム、ルータ、ゲートウェイ、ネットワーク・ハブ等とすることができる。換言すると、エンドポイント106、108は、送信されたパケットを受信するように決められたいずれかのネットワーク構成要素である。一実施形態においては、エンドポイント106、108は相互に関連していない、すなわち、それらは異なるシーケンス番号を有する。
一実施形態において、情報処理システム104は、パケット・マネージャ110を含む。パケット・マネージャ110は、パケット・ソース112からエンドポイント106、108に送信するためのパケットを受信し、これらのパケットを信頼性高くエンドポイント106、108に送信する。パケット・マネージャ110は、とりわけ、パケットをエンドポイント106、108に再送信するためのパケット再送信モジュール114を含む。一実施形態において、パケット・ソース112は、パケット・マネージャ110に通信可能に結合された1つ以上の他の情報処理システムとすることができる。また、パケット・ソース112は、情報処理システム104内に常駐する1つ以上のプロセスとすることも可能である。例えば、一実施形態において、パケット・ソース112は、エンドポイント106、108に送信されるパケットを発生するアプリケーションである。
パケット・マネージャ110は、パケットをエンドポイント106、108に送信する場合に、1つ以上の信頼性の高い転送プロトコルを用いる。従来、パケットは、最初に送信される際に増分シーケンス番号が割り当てられる。宛先(様々な通信システムの要件に基づいて、次のホップまたは最終的な宛先のいずれか)において受信されると、受信側は、承認パケットを発信側に返信して、どのシーケンス番号を受信したかを知らせる。あるいは、信頼性の高い転送では、承認パケットを合体させる場合がある。承認パケットの合体は、いくつかのパケットを受信し、その最後のパケットに対応する1つの承認を送信することを含む。信頼性の高い転送によって送信を行うシステムでは、送信側のノードが、受信された最後の承認パケットで示されたシーケンス番号に対応するパケットを含めてそれまでの承認されていないパケット全てのコピーを維持する。承認されないパケットは通常、既定のタイムアウト期間が経過した後、送信側ノードによって再送信される。代替ポートもしくはルートに再送信すること、またはパケットを捨てることを含めて、他の改善も可能である。
信頼性の高いプロトコルは、マルチレーン(multilane)またはマルチプル・コンテキスト(multiple context)のシーケンス番号の使用をサポートする場合もあり、そうでない場合もある。マルチレーンまたはマルチプル・コンテキストのシーケンス番号は、別個のシーケンス番号の組を用いて、いくつかの無関係の通信ストリームを同時に維持する場合を含む。このモードにおいては、異なるストリーム(時に「ノード」と称される)は、それらの間に何ら関係を持たない。本発明の好適な実施形態は、このモードをサポートしており、ノードの数、未処理パケットの最大数、またはシーケンス番号のサイズには限定されない。
全てのパケットがエンドポイント106、108に再送信される従来の再送信方式に比べ、いくつかの実施形態のパケット再送信モジュール114は、未着パケットの再送信を、承認を受信していない最初のパケットのみに限定する。パケットの送信後、パケット再送信モジュール114は、パケットの受信成功を確認したエンドポイント106、108からの応答を待つ。承認されない送信済みパケットは、先にタイムアウトしたパケットが承認されるまで、送信側によって蓄積される。例えば、承認されない送信済みパケットは再試行キュー(図示せず)に蓄積される。再試行キュー(図示せず)は、再送信を必要とするパケットのためのものであり、保持バッファは、ネットワーク・バックプレッシャー(back-pressure)のために最初の送信を妨害されたパケットのためのものであり、または、ステージング・バッファは、送信成功または回復不能エラーのために情報処理システム104からの処分を待っているパケットのためのものである。一実施形態においては、パケットの再送信、パケットの保持、およびパケットを再度キューに入れることは、同時に行うことができる。再試行キューは、共有循環マルチポートFIFOバッファとすることができる。
再送信されているパケット、すなわち、受信側から適時の承認メッセージを受信しなかった第1のパケットが、受信側によって承認された後、パケット再送信モジュール114は、次に、未処理の承認されていないパケットの送出を行い、次の送信パケットがまだ送信されたことのないパケットであることを検出するまで続ける。送信されたことのないパケットが次の送信パケットとして検出されると、パケット・マネージャ110は、その正常な送信機構に戻る(すなわち、未処理パケット数の限度に達するまで、即時承認を待つことなく送信する)。パケット再送信モジュール114について、以下で更に詳細に考察する。
パケット再送信モジュール
図2は、パケット再送信モジュール114の際に詳細な図を示すブロック図である。図2は、パケット再送信モジュール114を、パケット・マネージャ110内にあるものとして示す。一実施形態において、パケット再送信モジュール114は、パケット・ディスパッチャ202に通信可能に結合されている。従って、パケット・ディスパッチャ202内にあるものとして図示した構成要素については論じない。本発明の更に別の実施形態においては、テーブル240等、パケット再送信モジュール114内にあるものとして図示した構成要素を、パケット再送信モジュール114とは別個にすることも可能である。
パケット204、206は、別個に、および任意に同時に、パケット再送信モジュール114内への経路を介してパケット再送信モジュール114に入ることができる。新しいパケット204は、アプリケーションからの、以前に送信されたことがないものであり、または、現在送信することができないために(すなわちネットワーク・バックプレッシャーまたはノードの動作モードの変更のために)再試行キューに置かれたパケットである。パケット・マネージャが受信するパケットの一例として、パケット・ソース112から受信される新しいパケット204が挙げられる。一実施形態においては、パケット・マネージャ110は短縮パケットを受信する。例えば、いったんパケットを受信すると、パケット分析器(図示せず)が受信パケットを分析して、パケット内のどのデータを抽出するかを決定する。この分析に基づいて、データ抽出器(図示せず)が、受信したパケットから、パケットを送信するエンドポイントおよびパケットを送出する出力ポートを決定するためにパケット・ディスパッチャ202によって用いられるデータを抽出する。
パケット・ディスパッチャ202に送信される抽出データは、「短縮パケット」と称される。換言すると、パケット・ディスパッチャ202に送信されるパケットは、パケット短縮器(図示せず)によって受信される完全なパケットではない。短縮パケットは、パケット再送信モジュール114が受信側エンドポイントを決定するために必要な情報のみを含む。パケット内に含まれる残りのデータに対するポインタをパケット・バッファにストアして、パケット・マネージャ110のデータ処理を簡略化する。パケット・マネージャ110が受信するパケットの別の例は、再試行キューから検索される再試行パケット206である。再試行キューは、すぐに送信することができないか、または受信側によって承認されていないために潜在的な再送信を待っているパケットをストアするために用いられるデータ記憶メモリである。従って、一実施形態において、再試行パケット206は、以前に送信を阻止されたパケット、またはすでに送信されたが承認タイムアウトを待っているパケットすなわち受信側デバイスから承認が受信されていないパケットあるいはその両方である。
一実施形態において、受信されたパケット204、206は、どのエンドポイントまたはコンテキストがパケットを受信するように決められているかを示すノード宛先、パケットに関連したシーケンス番号、パケット・バッファにストアされたパケットの残りを指すバッファ・ポインタ等の情報を含む。本発明の一実施形態において、パケットは、承認されるかまたは捨てられるまでパケット・バッファにストアされる。その実施形態では、送信された各パケットは、承認が受信されるまでセーブされる。
新しいパケット204は、新パケット・テーブル更新モジュール210によって評価される。このモジュール210は、第1のパス上で送信可能な新しいパケットに応答して、どのようにコンテキスト・テーブル240を更新するか、およびそれらをすぐに送信するかまたは再びキューに入れる必要があるか否かを判定する。再試行パケット206は、再試行パケット評価器224によって評価されて、どのようにコンテキスト・テーブル240を更新するか、およびそれらを送信するかまたは再びキューに入れる必要があるか否かを判定する。新パケット・テーブル更新モジュール210および再試行評価器224からの情報は、どのテーブル・エントリを更新するかを決定しパケット・ディスパッチャ202にどのパケットを送信するかを伝達するパケット送信情報(送信器ビジー信号260等)と共に、テーブル更新論理212モジュールによって処理される。テーブル更新論理212は、再試行評価器224およびテーブル更新論理210の双方からのノード情報を復号して、それらが2つの異なるノード上で動作している場合は、240における双方のノードのための各テーブルを同時に並行して更新する。また、これは、テーブルの機構に従ってRAMまたはレジスタを直接操作するための論理を含み、これは、再開する必要があるタイマ、増分する必要があるシーケンス番号、または単に直接書き込みとしてのいずれかであるが、これらには限定されない。
更に詳細には、新しいパケット204がパケット再送信モジュール114によって受信されると、新パケット・テーブル更新器210は、このパケットを受信するように決められたエンドポイントに関連した送信モードを決定する。例えば、送信モードは、「正常」、「再試行」、「デッド(dead)」、または「回復」とすることができる。「正常」モードにおいては、パケットは、未処理パケットの数の限度に達するまで、即時承認を待つことなく送信される。「再試行」モードにおいては、未着パケットの再送信は、受信側ノードによって承認されていない送信済みの最初のパケットのみに限定される。「回復」モードでは、以前に承認されず再送信したパケットに関連した承認が受信側から受信された後、全ての未処理パケットを(送信されていないパケットを検出するまで)宛先ノードに送信する。
送信モードが「正常」である場合、パケット・ディスパッチャ202は、新しいパケット204をその各宛先に送信する。いったん新しいパケット204を送信すると、再試行タイマおよびデッド・タイマ(dead timer)等のパケット・タイマを始動する。再試行タイマは、宛先ノードからの承認を待つ最大時間およびパケットの送信を再試行する時を判定するために、パケット再送信モジュール114によって用いられる。デッド・タイマは、承認されていないパケットの再試行を停止する時およびパケット送信のためのエラー回復処理を開始する時を判定するために、パケット再送信モジュール114によって用いられる。送信モードが「再試行」である場合、パケット再送信モジュール114によって受信された新しいパケット204は、再試行キューに送信される。新しいパケットおよび再試行パケットは、パケット再送信モジュール114によって同時に受信可能であることに留意すべきである。
パケット再送信モジュール114は、エンドポイント106、108に対するパケットの再送信を管理する。パケット再送信モジュール114は、パケットを送信した時から承認が予想される時までの期間を監視する。パケット再送信モジュール114は、いつパケットの送信を再試行するか、再送信がその宛先まで代替ポートまたはルートを用いるべきか否か、またはパケットの再送信を終了するべきか否かを判定する。また、パケット再送信モジュール114は、指定された時間内かつ指定された再送信試行数の後にその宛先ノードによってパケットが承認されていないことを判定することによって、再送信が成功したか否かを判定する。
パケット再送信モジュール114は、再試行キューからの再試行パケットを監視して、送信済みパケットについて承認が受信されたか否かを判定する。再送信モジュールが、再試行タイマに基づいて、いずれかのノードについて再試行キューからのパケットがタイムアウトしたと判定した(例えば所与の時間間隔内にパケットについて承認が受信されない)場合、パケット再送信モジュール114は「再試行」状態に入り、パケット・ディスパッチャ202はこのパケットを再試行キューに維持する。しかしながら、パケット再送信モジュール114が、パケットに関連するデッド・タイマが切れたと判定した場合、パケットが属するノードは「デッド」状態に入る。パケット・ディスパッチャ202は、この状態情報を用いてこれらのパケットの配置を決定する。
上述したように、パケット再送信モジュール114は、いつパケットを再送信するかを決めるために分析され更新される1組のテーブル240に結合されている。例えば、図2には、「次に発信」(「N2G」)テーブル226、「モード」テーブル228、「代替ポート」(「AltPort」)テーブル230、「最後に承認されたシーケンス番号」(「LastAct」)テーブル232、「再試行タイマ」テーブル234、「デッド・タイマ」テーブル236、「代替ルート・タイマ」(「AltTimer」)テーブル238、およびLastSQNテーブル280が示されている。これらのテーブルは一実施形態の一例として列挙したものであり、本発明の更に別の実施形態は他のデータ維持テーブルも利用可能であることに留意すべきである。
N2Gテーブル226は、各アクティブ・データ・ストリームごとに、特定の宛先に送信される次のパケットのシーケンス番号を含む。例えば、ある特定のデータ・ストリームについてノードNがシーケンス番号7を送信されたばかりである場合、N2Gテーブル226はこのデータ・ストリームについてエントリ8を含む。一実施形態では、N2Gテーブル226はノード番号によってインデクスされ(indexed)、レジスタ・アレイによって実施される。
一実施形態において、モード・テーブル228は、ノード番号によってインデクスされ、各インデクス・ノードのモードを含む。一例において、モード・テーブル228は、特定のノードについて4つの異なるモードを参照する。すなわち、正常、再試行、回復、およびデッドである。再試行モードは、ノードの特定のパケットに関連した再試行タイマが切れたことを示す。以前に送信したパケットを再送信するために、N2G番号は戻される。このモードの間、このノードに送信されるのはN2Gパケットのみであり、他のパケットは送信されない。また、再試行モードは、代替ポート上でパケットを再送信することを可能とする。追加のノード・インデクス・タイマを用いることにより、同一の試行ポートに異なるものを再送信するか否かについて更に決定を行うことができる。デッド・モードは、ノード上でデッド・タイマが切れたことを示す。デッド・モードの間、パケット再送信モジュールは、リンクの他端がもはや機能していないと想定し、それ以上は送信を試行しない。回復モードは、パケットが再送信されたノードから承認が受信されたことを示す。パケット再送信モジュール114が送信したことのないパケットを識別するまで、残りのパケットを通常どおり再送信することができる。正常モードでは、パケットが順序正しいならば、パケットをノードに送ることができる。
また、AltPortテーブル230は、一実施形態ではノード番号によってインデクスされ、データ通信エラーを克服するためにパケット再ルーティングの解決策を試す必要があることを示す。例えば、多数の再送信を試行した後でも承認が受信されない場合、AltPortテーブル230は、パッケージ再送信モジュール114に、新しいルーティング解決策を用いる必要があることを知らせることができる。
また、LastSqnテーブル280は、一実施形態ではノード番号によってインデクスされ、宛先エンドポイントについてのパケットに割り当てられた最後のシーケンス番号を示す。LastSqnテーブル280への最後のシーケンス番号のエントリは、パケットが最初に受信された場合に生成され、他の方法で持続される。また、LastAckテーブル232は、一実施形態ではノード番号によってインデクスされ、宛先ノードにより承認された最後のパケットのシーケンス番号を示す。受信論理250が承認パケットを受信すると、このテーブルはパケット再送信モジュール114によって更新される。受信した承認のシーケンス番号が、特定のエンドポイントについてLastAckテーブル232に現在ストアされている値よりも大きく、かつ、このエンドポイントについて最新のパケットに最後に割り当てられたシーケンス番号の値(LastSqn 280)以下である場合、LastAckシーケンス番号テーブル232に書き込むことができる。他の場合、受信した承認パケットは無視される。このような受信した承認メッセージを無視することによって、不良シーケンス番号をLastAckシーケンス番号テーブル232内に書き込まないことが確実となる。不良シーケンス番号の書き込みは、いつパケットを再送信するかを決定するために再送信モジュール114によって用いられる再試行状態機械の適正な動作に影響を及ぼす恐れがある。再試行状態機械については、以下で更に詳細に論じる。
RetryTimerテーブル234およびDeadTimerテーブル236は、同様に構成され、一実施形態ではバッファ・ポインタによってインデクスされる。いくつかの実施形態は、バッファ・ポインタ当たり2ビット・タイマを用い、「SYNC」パルスを供給してタイマを更新する回数を設定する。一実施形態では、RetryTimerテーブル234およびDeadTimerテーブル236は、上述の再試行タイマおよびデッド・タイマの状態を反映する。再送信モジュール114は、RetryTimerテーブル234およびDeatTimerテーブル236を分析して、いつパケットの送信を再試行するか、または、いつパケットの再送信を停止してエラー回復動作を実行するかを決定することができる。AltTimerテーブル238は、バッファ・ポインタでなくノード番号によってインデクスされ、代替ルート・タイマの状態を反映し、いつパケットを再送信するための代替ルートを用いるかを決定するために、再送信モジュール114によって用いられる。
再試行パケット206がパケット・マネージャ114によって受信されると、再試行評価器224は、再試行パケット206に関連した情報を再試行パケット・テーブル更新器212に伝達するために再試行パケット206を分析する。再試行評価器224は、入来した再試行パケット206およびその関連するノードに関して、上述の1組のテーブル240および再試行状態機械242(以下で更に詳細に論じる)を分析して、再試行パケット206を再送信するか否かおよびノードをどの状態に移すかを決定する。
例えば、1組のテーブル240は、タイマ状態、各ノードに関連した現在の送信モード、各ノードおよびデータ・ストリームから最後に承認された送信パケット等の経過を把握している。再試行評価器224が、あるパケットについて再試行タイマが初期化されたこと、および所与の応答閾値を超えたことを判定すると、再試行評価器は、ノードに関連した送信モードを「正常」から「再試行」に変更するために、再試行パケット・テーブル更新モジュール212に信号を送信することができる。これによって、そのノードに新しいパケットが送信されることを防ぐ。
再試行モードの間、パケット再送信モジュール114が、承認されなかった最も早いパケットに対応する再試行キューからのパケットを再送信のために受信し、再試行タイマがタイムアウトすると、そのパケットを再び送信しパケット・タイマ(例えば再試行タイマ)234を再開するために、パケット送信モジュール202に信号を送信する。この時点で、そのノードに他のパケットは全く送信されない。しかしながら、1つ以上のノードが「再試行」状態にあっても、同様の「再試行」状態にない他のノードにはパケットを送信することができる。その後、再試行時間が再び切れた後に再試行キューからそのパケットを受信すると、そのパケットのみがそのノードに再送信される。
このサイクルが所与の間隔よりも長く続いた場合(例えば、代替ルート・タイマが所与の閾値を超えて、代替通信ルートを用いてその特定のノードとデータ通信を行うべきであることが示される)、パケット送信モジュール202に、任意のルーティング変更を用いた再送信を送出する。例えば、再試行評価器224は、AltTimerテーブル238から、このデータ・ストリームについてAltPortテーブル230のエントリによって指定される経路に対してルーティング変更を行う必要があると判定する。そのノードについてのパケット再送信およびそのパケットのパケット・タイマ234の再開は、そのデータ・ストリームのデッド・タイマが閾値を超えるまで続く。いったんデッド・タイマがその閾値を超えると、再送信モジュール114はそのノードのモードを「デッド」に変更し、再送信モジュール114は、そのネットワークの回復プロトコル(複数のプロトコル)を実行するために、パケット送信モジュール214に信号を送信する。例えば、典型的には、そのノードに対する全てのパケットを再試行キューから消去する。
しかしながら、再試行期間中に、そのノードに対する未処理ノードのいずれかに対応する承認が受信された場合、そのノードのモードを「再試行」から「回復」に変更する。パケット・モニタ114は、入来する再試行パケット206を監視して、N2Gシーケンス番号パケットに対応するパケットを探す。いったん検出されると、パケット・モニタ114は、そのパケットを再送信し対応する再試行タイマを再開するために、パケット送信モジュール202に信号を送信する。
「回復」モードでは、続けて、パケット・モニタ220が、再試行キューから受信した全てのパケットを監視し、パケット(複数のパケット)を再送信するべきか否かを判定する。回復モードの間、再送信モジュール114がまだ送信されたことのないパケット204、206を検出するまで、再試行タイマ234は無視される。これは、この実施形態においては、パケットに関連した再試行タイマが初期化されていないことを認識することによって判定される。
これは、例えば、新しいパケットを送信することになっているノードが「再試行」モードにある間にそれらのパケットが到着した場合に起こる可能性があり、そのパケットは再試行キューに直接送信される。新しいパケットは「再試行」モードで送信されないので、そのパケットのタイマはセットされていない。送信されていないパケットを見つけると、ノードはその「正常」モードに戻されて、送信側は新しいパケットを送信する。
明らかであるように、本発明の好適な実施形態の再送信モジュール114は、「再試行」モードにおいて1つのノードについて1つのパケットのみを送信し、そのパケットの承認を用いてエンドポイントが再び機能しているか否かを検査し、いつそのノードのモードを変更して通信が再確立されたことを反映するかを検査する。いったんその1つのパケットに対する承認が受信されると、その場合にのみ、未処理パケットのいっそう迅速な再送信が試行される。トラブルのあるノードに対する未処理パケットの再送信は、他のノードへのパケット送信と混ざって、おそらく問題は発生せず、または、おそらく並行して回復する。従来技術の手法に比べてこのアルゴリズムが優れている点は、タイムアウトを検出した場合にネットワークが未承認パケットでいっぱいにならないこと、および、パケットが受信された最初の順序で再送信されることが保証されることである。
いつパケットを再送信するかを決定するための状態機械図
図3は、いつパケットを再送信するかを決定するためにパケット再送信モジュール114によって用いられる例示的な状態機械300を示す図である。対象のノードのモードが「正常」である場合、以下の決定が行われる。再試行タイマが開始している(302)が、再試行タイマもデッド・タイマも切れている場合、何も行われず、現在のパケットは送信されない(304)。タイマが開始したか否かの判定は、そのバッファ・ポインタのタイマ値(状態)がアイドル状態でないことをチェクすることによって行われる。デッド・タイマが切れている場合(306)、モードは「デッド」に変更され、N2GはLASTACK+1の値のままである(308)が、これは単に形式であり、いったんこの状態になると、このノードにはどのパケットも送信されない。
デッド・タイマが切れていないが再試行タイマが切れている場合(310)、モードは「再試行」にセットされ、N2Gは同様にSALTACK+1にセットされる(312)。これは、承認されておらず再送信されるパケットである最も早いパケットを表す。これ自体は再送信を実行させるわけではなく、ノードは単に再試行状態に置かれるだけであることに留意すべきである。このノード上のこのパケットに対して再試行タイマが開始していない場合、パケットのSQNをチェックして(314)、これがN2Gに等しいか否か、すなわちこれが順序正しいか否かを調べる。パケットのSQNが順序正しい場合、このパケットは送信のためにイネーブルされ、N2G値を増分する(316)。この動作は、送信が検出されたためにパケットが以前に遅延されたことを示す。信号StartRetryTimerおよびStartDeadTimerによってこのパケットを送信する場合、再試行タイマおよびデッド・タイマを開始する。
これが順序正しくない場合は、このエントリを再びキューに入れて、このパケットに何の動作も行わない(304)。このノードのモードが「デッド」である場合(318)、エントリを再びキューに入れて、このノードに対してそれ以上のことは行わない。このノードのモードが「再試行」である場合(320)、以下の決定を行う。LastAck SQNがこのノードのN2G SQN以上である場合(322)、これは、このノードに対して現在再送信されているシーケンス番号の値よりも大きいこのノードに対する承認が認められたこと、すなわちリンクの他端から有効な応答があったことを示す。その場合、N2Gを次の順序のシーケンス番号(LastAck+1)にリセットし、モードを「回復」に更新する(324)。LastAck SQNがこのノードのN2G SQN以上でない場合、タイマをチェックする。このノードに対してデッド・タイマが切れると(326)、モードを「デッド」に更新する(328)。デッド・タイマが切れていない(330)が、再試行タイマ(332)も切れていない場合、何もすることはなく、パケットを再びキューに入れる(334)。
再試行タイマが切れた場合(336)、これは、このパケットを再送信する必要があることを示し、モードは変わらないままである。しかしながら、StartRetryTimerをアサートすることによって再試行タイマを再開させる。この時点で、AltPortタイマの任意のチェック(338)を行うことができる。これが初めてのパケット再送信である場合、alt−portタイマは動作しておらず、これを信号StartAltTimerによって開始させる。これが初めてのパケット再送信でなく、AltPortタイマが切れていることが観察された場合、AltPort_Next(342)をアサートして、送信側の論理はそのルーティング・テーブルを更新する必要があることを示す(340)。
正常状態から再試行状態へ遷移を行う場合、再試行タイマは再開されなかったことに留意すべきである。これによって、再試行状態機械がこのパケットを再び処理して初めて再送信がスケジューリングされることが確実となる。再試行しているパケットのシーケンス番号がN2G SQNである場合、ATTN信号をアサートする。このモードの間、再試行タイマが切れるたびに一度このパケットのみを送信することに留意すべきである。
図4は、図3の状態図の続きである。このノードのモードが「回復」(402)である場合、以下の決定を行う。このノードについてデッド・タイマが切れている場合(404)、モードを「デッド」に更新する(406)。パケットのシーケンス番号がN2Gと等しくない場合(408)、すなわちこれが順序において次のものでない場合、これは再びキューに入れられ、再送信のためにイネーブルされない。次いでシーケンス番号をチェックして、これがN2G未満であるか否かを調べる(410)。換言すると、全ての他の未処理パケットを再送信する前にこのパケットが二度認知されたか否か、である。その場合、再送信タイマをチェックして、これが再び切れたか否かを調べる(412)。その場合、N2G_nextをセットして、モードを「再試行」にセットする(414)。他の場合、受信からLastAckシーケンス番号の値をチェックして、これがN2Gよりも大きいか否かを調べる(416)。その場合、N2G_nextをこの値+1にセットして、回復モードはこのシーケンス番号によって継続する(418)。これは、最後にこのノードを評価して以来受信された追加のACKパケットを表す。正しいパケットを待っている間にN2Gの値を更新することによって、最終的に他のエンドポイントによって順序正しくないものとして拒絶されるパケットが送信されることを防ぐ。他の場合、何も変更はない(426)。再試行タイムアウトのチェックは任意であることに留意すべきである。回路の別の実施形態は、それを無視し、単に状態機械の「NO」分岐で継続する。
しかしながら、シーケンス番号がN2Gに等しい場合、再試行タイマの追加のチェック(420)を行って、それがすでに開始しているか否かを調べる。タイマが開始していない場合、これは、現在のパケットが以前に送信されていないことを示す。また、これは、ノードが以前に承認されていないパケットを全て再送信しており、「正常」モード422に戻る必要があることを意味する。他の場合、これは回復モードのままであり、シーケンス番号がN2G値に一致した場合はいつでもATTNをアサートすると共に、再試行タイマを再び開始する必要があることを示す(424)。正常モードに移ると、デッド・タイマを開始する(このパケットは第1の場所において送信されたことがないので、そのデッド・タイマは開始されていない。再送信が行われる場合デッド・タイマは再開されない。すなわちパケットを最初に送信する場合だけである)。図2のように、これらの計算の結果は再試行パケット・テーブル更新モジュール212に提示される。N2G_Next、Mode_Next、AltPoint_Nextは、N2G、Mode、AltPort、およびタイマ開始パルスStartAltTimer、StartRetryTimer、StartDeadTimerの次の状態遷移を示す。
例示的な情報処理システム
図5は、図1の情報処理システムの更に詳細な図を示すブロック図である。情報処理システム104は、本発明の例示的な実施形態を実施するように適合された適切な構成の処理システムに基づいている。例えば、パーソナル・コンピュータ、ワークステーション等、いずれかの適切に構成された処理システムを、本発明の実施形態によって情報処理システム104として同様に用いることができる。
情報処理システム104は、コンピュータ502を含む。コンピュータ502はプロセッサ504を有し、これは、メイン・メモリ506(例えば揮発性メモリ)、大容量記憶インタフェース508、端末インタフェース510、およびネットワーク・アダプタ・ハードウェア512に通信可能に接続されている。システム・バス514がこれらのシステム構成要素を相互接続する。大容量記憶インタフェース508は、データ記憶デバイス516等の大容量記憶デバイスを情報処理システム104に接続するために用いられる。データ記憶デバイスの1つの具体的な種類は、CDドライブ等のコンピュータ読み取り可能媒体であり、これを用いてCD518またはDVDまたはフレキシブルディスク(図示せず)にデータを記憶しこれからデータを読み取ることができる。他の種類のデータ記憶デバイスは、例えば固定ディスク・タイプのファイル・システム動作をサポートするように構成されたデータ記憶デバイスである。
一実施形態において、メイン・メモリ506は、上述したようなパケット・マネージャ110を含み、このパケット・マネージャがパケット再送信モジュール114を含む。パケット再送信モジュール114は、一実施形態において、パケット・ディスパッチャ202内に常駐するか、またはパケット・ディスパッチャ202とは別個のものとすることができる。図2に示すパケット再送信モジュール114について例示し記載した構成要素は、簡略化のため、図5に繰り返さない。一実施形態において、情報処理システム104は従来の仮想アドレッシング機構を用いて、プログラムが、あたかも、メイン・メモリ506およびデータ記憶デバイス516等の多数の小さい記憶エンティティに対するアクセスでなく、本明細書ではコンピュータ・システム・メモリと称する大きい単一の記憶エンティティに対するアクセスを有するかのようにふるまうことを可能とする。本明細書において用いる場合、「コンピュータ・システム・メモリ」という言葉は、情報処理システム104の仮想メモリ全体を総称することに留意すべきである。
コンピュータ502について1つのみのCPU504を示すが、多数のCPUを有するコンピュータ・システムも等しく有効に使用可能である。本発明の実施形態は更に、複数のインタフェースを組み込んでおり、その各々が、CPU504から処理の負担を軽減するために用いられる別個の完全にプログラミングされたマイクロプロセッサを含む。端末インタフェース510は、1つ以上の端末520をコンピュータ502に直接接続して、コンピュータ502に対するユーザ・インタフェースを提供するために用いられる。これらの端末520は、非インテリジェントまたは完全にプログラミングされたワークステーションとすることができ、システム管理者およびユーザが情報処理システム104と通信を行うことを可能とするために用いられる。また、端末520は、ユーザ・インタフェースおよび周辺デバイスを含むことができ、これらはコンピュータ502に接続されて、端末I/F510に含まれる端末インタフェース・ハードウェアによって制御される。端末I/F510は、ビデオ・アダプタおよび、キーボード、ポインティング・デバイス等のためのインタフェースを含む。
メイン・メモリ506に、一実施形態に従ったオペレーティング・システム(図示せず)を含ませることができ、これは、Linux、UNIX、WindowsXP、およびWindows Serverオペレーティング・システム等の適切なマルチタスク・オペレーティング・システムである。本発明の実施形態は、いずれかの他の適切なオペレーティング・システム、またはカーネル、または他の適切な制御ソフトウェアを用いることができる。本発明のいくつかの実施形態は、オブジェクト指向フレームワーク機構等のアーキテクチャを利用し、これによって、オペレーティング・システム(図示せず)のコンポーネント命令をクライアント内に配置したいずれかのプロセッサ上で実行することができる。ネットワーク・アダプタ・ハードウェア512は、ネットワーク102に対するインタフェースを与えるために用いられる。本発明の実施形態は、現在のアナログ技法またはデジタル技法あるいはその両方を含むものまたは将来のネットワーキング機構によるものを含めて、いずれかのデータ通信接続と機能するように適合させることができる。
本発明の例示的な実施形態を、完全に機能するコンピュータ・システムの文脈において説明したが、実施形態は、例えばフレキシブルディスク、CD−ROM518、もしくは他の形態の記録可能媒体による、またはいずれかのタイプの電子伝送機構によるプログラムとして配布することも可能であることは、当業者には認められよう。
パケットを再送信するための例示的なプロセス
図6は、再送信されたパケットを処理するための例示的なプロセスを示す動作フロー図である。この実施形態において、再試行パケットは、パケット・ディスパッチャ202に配置された再試行キューから来る。パケットは、不定の頻度でいずれかのノードにいずれかの順序で来ることができ、上述したように、「以前に」は、実際に送信されることなく再びキューに入れられたパケットを表す場合がある。プロセスはステップ602において開始し、再試行評価器224にエントリする。パケットは、ノード、シーケンス番号、およびBufPtrによって表される。ステップ604において、再試行状態機械242のプロセスを適用し、N2G_Next、Mode_Next、AltPort_Next、ATTN、StartRetryTimer、StartAltPTimer、およびStartDeadTimerの計算のための結果が生じる。次いで、ステップ606において、ATTNの値を調べる。値の結果が負である場合、これは、本候補のパケットが送信不可能であることを示し、以下の動作を行う。
最初に、ステップ640において、テーブル更新論理212をイネーブルして、以前の計算のとおりにテーブル240の値を更新する。ステップ650において、パケット276を再びキューに入れるために、パケット・ディスパッチャ202に信号を送信する。次いで、プロセスは、ステップ690においてこのパケットについて終了し、次のパケットについて再び開始する。しかしながら、ステップ606においてATTN信号が正である場合、ステップ610においてテーブル更新論理212は送信器の状態を調べて、これがビジーであるか否かを調べる。送信器信号がビジーである場合(260)、ステップ616において、何も行わない。ステップ692において、プロセスはこのパケットについて終了し、何も実行しないようにパケット・ディスパッチャ202に信号を送信しないので、
おそらく同じパケットによって再び再開する。
ステップ610における判定の結果、送信器がビジーでないことがわかると、ステップ642においてテーブル更新論理212をイネーブルして、以前の計算のとおりにテーブル240の値を更新する。ステップ660において、パケット274を送信するために、パケット・ディスパッチャ202に信号を送信する。ステップ694において、プロセスはこのパケットについて終了し、次のパケットについて再開する。
新たに受信したパケットを処理するための例示的なプロセス
図7は、ノードidによって識別されシーケンス番号およびバッファ・ポインタを割り当てられた新たに受信されたパケット204を処理するためにテーブル更新論理210が行う例示的なプロセスを示す動作フロー・チャートである。図7の動作フロー図は、ステップ702において開始し、直接ステップ703に進む。新たなパケットが到着すると、ステップ703においてこのパケットに新たなシーケンス番号を割り当て、値を増分する。ステップ704において、テーブル更新論理210は、入来パケットに関連したノードのモードが正常であるか否かを判定する。この判定の結果が否定的である場合、パケットは送信することができず、ステップ706においてテーブル更新論理210はパケットを再びキューに入れる。ステップ730において制御フローは終了する。この判定の結果が肯定的である場合、ステップ708において、テーブル更新論理210は、そのSQNがそのノードのN2G SQNに等しいことによって明らかであるように、そのノードのパケットのSQNがN2Gに等しいか否かを判定する。この判定の結果が否定的である場合、そのパケットを送信することはできず、パケットを再びキューに入れる(ステップ706)。
この判定の結果が肯定的である場合、ステップ710において、新たなパケットのノードを再試行評価器224が動作しているノードと比較する。それらが同じノードでない場合、これは、新たなパケット・テーブル更新モジュール210および再試行パケット・テーブル更新論理212が同じノードまたはバッファ・ポインタについてテーブルの変更を試みていないことを示し、双方は別個に進むことができる。ステップ712において、新たなパケットを送信することができ、ステップ714において、そのノードのN2G値をN2G+1に進ませる。更に、これが初めてのこのパケットの送信であるので、ステップ716において、再試行タイマおよびデッド・タイマを開始する。次いで、ステップ718において制御フローは終了する。
ステップ710において、新たなパケットおよび再試行評価器224が処理しているパケットが同じノードからの異なるパケットである場合、ステップ720において、パケット再送信モジュール114は、Retry(next_Mode)が正常であるか否かを判定する。この判定が否定的である場合、すなわち再試行状態機械242が、モードが正常モードから変更されるはずことを判定した場合(「mode_next」信号から明らかであるように)、新たなパケットは送信してはならず、ステップ706において再びキューに入れられる。これが再試行キューから戻った場合、再試行状態機械は続けてこのパケットを処理する。しかしながら、再試行状態機械242が「正常」モードから変化しようと試みていない場合、ステップ726においてこのパケットを送信することができるが、ステップ722において、再試行パケット・テーブル更新モジュール212は、そのノードのN2Gテーブル・エントリの制御を、新たなパケット・テーブル更新モジュール210に譲る。また、ステップ724において、この新たなパケットのバッファ・ポインタのために、再試行およびデッド・タイマを開始させる。次いで、ステップ728において制御フローは終了する。
タイマ論理のための例示的なフロー
図8は、本発明の一実施形態によるタイマ論理の例示的なフローを示す動作フロー図である。図8の動作フロー図は、ステップ802において開始し、直接ステップ804に進む。ステップ804において、現在のタイマをクリアする。ステップ806において、タイマはアイドルである。ステップ808において、パケット・マネージャ110は、タイマを開始する必要があるか否かを判定する。この判定の結果が否定的である場合、タイマはアイドルのままである。この判定の結果が肯定的である場合、ステップ810においてタイマを開始する。ステップ812において、パケット・マネージャ110は、タイマを同期させるか否かを判定する。この判定の結果が否定的である場合、制御フローはステップ810に戻る。この判定の結果が肯定的である場合、ステップ814においてタイマは動作し続ける。ステップ816において、パケット・マネージャ110は、タイマを同期させるか否かを判定する。この判定の結果が否定的である場合、ステップ814においてタイマは動作し続ける。この判定の結果が肯定的である場合、タイマを同期させ、ステップ818においてタイムアウトする。
ノードが4つのモードを移行する際にノードに送信されるパケットの例
図9は、ノードが上述した4つのモードを移行する際にノードに送信される一連のパケットの高レベルの例を示す。最初に、(901)において、シーケンス番号1、2、3、4、5、6、7、8、9、10を有するパケットを送信する。ノードは正常であるので、これらのパケットは(902において)直接、1、2、3、4、5、6、7を通る。(この例では)7が送信された後、再試行状態機械242は、SQN1が承認されておらず、再試行タイマで期限が切れたことを(独立して)検出する。再試行状態機械242は、ノードの状態を「再試行」に移行させ、SQN#1のみを再送信するべきことを示し、これは次いでTXポート902によって実行される。再試行状態機械242は続けて、そのノード上で第2のタイムアウトを検出し、SQN#1を再び再送信するべきことを示す。後の時点で、最終的に、#3の承認が検出されるので、このノードのLASTACK SQNは3に更新される。再試行評価器224によってこのノードのいずれかのパケットが認識されると、このノードの状態は「回復」に変更され、N2G SQNは「4」に更新される。
再試行評価器224によってこのノードのSQN4、5、6、・・・が認識されると、これは、このパケットを再送信することを示し、それらを順序正しく実行するので、TXポート902において4、5、6、7、8、9、10をこの順序で送信する。いったんパケット#8を送信すると、再試行状態機械242はそのノードのモードを「正常」に移行させる。なぜなら、パケット8は、以前に送信されていないパケットを表すからである。
非限定の例
当業者に知られるように、本発明は、ハードウェアまたはソフトウェアにおいて、またはハードウェアおよびソフトウェアの組み合わせにおいて生成することができる。しかしながら、一実施形態において、本発明はソフトウェアにおいて実施される。好適な実施形態に関連付けて開示した本発明の原理に従ったシステムまたは方法は、記述または特許請求された個々の機能もしくはステップを実行するための別個の要素もしくは手段、または記述または特許請求された機能もしくはステップのいずれかの実行を組み合わせる1つ以上の要素もしくは手段を有する単一のコンピュータ・システムにおいて生成することができ、または、当業者に知られるいずれかの適切な手段によって相互接続された分散型コンピュータ・システムに配置することができる。
好適な実施形態に関連付けて開示した本発明の原理に従って、本発明および本発明の原理は、いかなる特定の種類のコンピュータ・システムにも限定されず、当業者に知られるような、記述した機能および記述した方法ステップを実行するように構成された、いずれかの汎用コンピュータと共に用いることができる。上述したように、かかるコンピュータの動作は、当業者に知られるような、コンピュータの動作または制御において用いるための媒体上に含まれるコンピュータ・プログラムに従ったものとすることができる。コンピュータ・システムは、コンピュータ・プログラムを保持または含有するように使用可能であり、埋め込みメモリ等のコンピュータの固定具とすることができ、または、当業者に知られるような、ディスク等の可搬型の媒体上のものとすることも可能である。
本発明は、いずれかの特定のコンピュータ・プログラム、論理または言語、または命令に限定されず、当業者に知られるいずれかの適切なプログラム、論理または言語、または命令によって実施することができる。開示した本発明の原理を限定することなく、いずれかのコンピューティング・システムは、とりわけ、少なくとも、コンピュータ読み取り可能媒体を含むことができ、このコンピュータ読み取り可能媒体から、データ、命令、メッセージまたはメッセージ・パケット、および他のコンピュータ読み取り可能情報をコンピュータが読むことを可能とする。コンピュータ読み取り可能媒体は、ROM、フラッシュ・メモリ、フレキシブルディスク、ディスク・ドライブ・メモリ、CD−ROM、および他の永久記憶装置等の不揮発性メモリを含むことができる。更に、コンピュータ読み取り可能媒体は、例えば、RAM、バッファ、キャッシュ・メモリ、およびネットワーク回路等の揮発性メモリを含むことができる。
更に、コンピュータ読み取り可能媒体は、コンピュータ読み取り可能情報等をコンピュータが読むことを可能とする有線ネットワークまたは無線ネットワークを含む、ネットワーク・リンクまたはネットワーク・インタフェースあるいはその両方等、一時状態媒体におけるコンピュータ読み取り可能情報を含むことができる。

Claims (10)

  1. 少なくとも1つのネットワーク・エンドポイントによって受信するように決められたネットワークを介する少なくとも1つのパケットを送信するための情報処理システムを動作させる方法であって、
    少なくとも1つのネットワーク・エンドポイントに送信されるキューから複数のパケットを順次処理するステップと、
    前記複数のパケットから少なくとも第1のパケットを前記少なくとも1つのネットワーク・エンドポイントに送信するステップと、
    前記少なくとも1つのネットワーク・エンドポイントに送信された前記少なくとも第1のパケットが承認されていないことを判定するステップと、
    前記少なくとも第1のパケットが前記少なくとも1つのネットワーク・エンドポイントによって承認されていないことの判定に応答して、前記少なくとも第1のパケットに関連した第1の再試行パケットを前記少なくとも1つのネットワーク・エンドポイントに送信するステップと、
    前記少なくとも1つのネットワーク・エンドポイントへの前記第1の再試行パケット以外のパケットの送信を一時停止するステップと、
    前記第1の再試行パケットが前記少なくとも1つのネットワーク・エンドポイントによって承認されたことを判定するステップと、
    前記第1の再試行パケットが承認されたことの判定に応答して、前記複数のパケットにおける残りのパケットの前記少なくとも1つのネットワーク・エンドポイントへの送信を再開するステップと、
    を含む、方法。
  2. 前記少なくとも第1のパケットの前記送信に応答して、前記少なくとも第1のパケットに関連した複数のタイマを開始させるステップを更に含む、請求項1に記載の方法。
  3. 前記一時停止するステップが、前記少なくとも1つのネットワーク・ノードへの前記第1の再試行パケット以外のパケットの送信を一時停止するステップであって、前記他のネットワーク・エンドポイントへのパケットの送信は一時停止しない前記ステップを更に含む、請求項1または2に記載の方法。
  4. 前記複数のタイマにおける第1のタイマが、前記少なくとも1つのネットワーク・エンドポイントからの承認を受信するための第1の所与の閾値に関連付けられている、請求項2または3に記載の方法。
  5. 前記少なくとも1つのネットワーク・エンドポイントに送信された前記第1の再試行パケットが承認されていないことを判定する前記ステップが、
    前記少なくとも1つのネットワーク・エンドポイントに送信された前記第1の再試行パケットに関連した承認パケットを監視するステップと、
    前記第1のタイマに関連した値が前記第1の所与の閾値よりも大きいことに応答して、前記第1の所与の閾値の後に前記承認パケットを受信していないことを判定するステップと、
    を更に含む、請求項4に記載の方法。
  6. 前記第1の再試行パケットを送信する前記ステップが、
    前記少なくとも第1のパケットが、関連する承認パケットなしに前記少なくとも1つのネットワーク・エンドポイントに送信された最も早いパケットであることを判定するステップと、
    前記判定に応答して、前記第1の再試行データ・パケットを前記少なくとも1つのネットワーク・エンドポイントに送信するステップであって、前記少なくとも1つのネットワーク・エンドポイントから前記第1の再試行パケットに関連した承認パケットを受信するまで、前記少なくとも1つのネットワーク・エンドポイントに他のパケットを送信しない、前記ステップと、
    を更に含む、前出の請求項のいずれかに記載の方法。
  7. 前記第1の再試行パケットの第1の送信の際に第2のタイマを開始させるステップであって、前記第1の再試行パケットの前記送信に関連した承認を前記少なくとも1つのネットワーク・エンドポイントから受信するまで前記第2のタイマが動作し続ける、前記ステップと、
    前記第2のタイマに基づいて、前記少なくとも1つのネットワーク・エンドポイントに再試行されているパケットについて第2の所与の閾値が発生したことを判定するステップと、
    前記第2の閾値が発生したことの判定に応答して、前記第1の再試行パケットを以前に送信するために用いられた送信ルートとは異なる代替的な送信ルートを用いて、前記第1の再試行パケットを前記少なくとも1つのネットワーク・エンドポイントに再送信するステップと、
    を更に含む、請求項6に記載の方法。
  8. 前記少なくとも1つのネットワーク・エンドポイントから承認パケットを受信するステップと、
    前記承認パケットに関連したシーケンス番号を分析するステップと、
    前記分析に応答して、前記シーケンス番号が、前記少なくとも1つのネットワーク・エンドポイントに関連した現シーケンス番号よりも大きいこと、および、前記少なくとも1つのネットワーク・エンドポイントに送信されたパケット・シーケンスにおける最後の送信パケットに関連したシーケンス番号以下の少なくとも1つであることを判定するステップと、
    前記シーケンス番号が、前記少なくとも1つのネットワーク・エンドポイントに関連した現シーケンス番号よりも大きいこと、および、前記少なくとも1つのネットワーク・エンドポイントに送信されたパケット・シーケンスにおける最後の送信パケットに関連したシーケンス番号以下の少なくとも1つであることの判定に応答して、前記シーケンス番号を、前記少なくとも1つの宛先ネットワークから受信された承認として記憶するステップと、
    前記シーケンス番号の少なくとも1つが、前記少なくとも1つのネットワーク・エンドポイントに関連した現シーケンス番号よりも大きいこと、および、前記少なくとも1つのネットワーク・エンドポイントに送信されたパケット・シーケンスにおける最後の送信パケットに関連したシーケンス番号以下の少なくとも1つであることの判定に応答して、前記承認パケットを捨てるステップと、
    を更に含む、前出の請求項のいずれかに記載の方法。
  9. 少なくとも1つのネットワーク・エンドポイントによって受信するように決められたネットワークを介する少なくとも1つのパケットを送信するためのシステムであって、
    メモリと、
    前記メモリに通信可能に結合されたプロセッサと、
    ネットワーク・エンドポイントに送信される複数のパケットを記憶するように適合されたキューと、
    前記メモリおよび前記プロセッサに通信可能に結合されたパケット・マネージャであって、前出の請求項のいずれかに記載された前記方法の前記ステップ全てを実行するように適合された、前記パケット・マネージャと、
    を含む、システム。
  10. コンピュータ・プログラム・コードであって、コンピュータ・システムにロードされて実行されると、請求項1から8のいずれかに記載された方法の前記ステップ全てを前記コンピュータ・システムに実行させる、コンピュータ・プログラム・コード。
JP2009553092A 2007-03-15 2008-02-15 輻輳を低減させる高信頼性パケット送信のための方法、システム、およびコンピュータ・プログラム・コード(輻輳を低減させる高信頼性転送パケ Expired - Fee Related JP4932008B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/686,417 2007-03-15
US11/686,417 US7693070B2 (en) 2007-03-15 2007-03-15 Congestion reducing reliable transport packet retry engine
PCT/EP2008/051833 WO2008110424A1 (en) 2007-03-15 2008-02-15 Congestion reducing reliable transport packet retry engine

Publications (2)

Publication Number Publication Date
JP2010521848A true JP2010521848A (ja) 2010-06-24
JP4932008B2 JP4932008B2 (ja) 2012-05-16

Family

ID=39577831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009553092A Expired - Fee Related JP4932008B2 (ja) 2007-03-15 2008-02-15 輻輳を低減させる高信頼性パケット送信のための方法、システム、およびコンピュータ・プログラム・コード(輻輳を低減させる高信頼性転送パケ

Country Status (6)

Country Link
US (1) US7693070B2 (ja)
EP (1) EP2137869A1 (ja)
JP (1) JP4932008B2 (ja)
KR (1) KR101104046B1 (ja)
TW (1) TW200901669A (ja)
WO (1) WO2008110424A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806037B1 (en) 2008-02-29 2014-08-12 Netapp, Inc. Remote support automation for a storage server
US7913115B1 (en) * 2008-04-30 2011-03-22 Netapp, Inc. Core file transfer
US8086909B1 (en) 2008-11-05 2011-12-27 Network Appliance, Inc. Automatic core file upload
US8553547B2 (en) * 2009-03-30 2013-10-08 Broadcom Corporation Systems and methods for retransmitting packets over a network of communication channels
JP2012014452A (ja) * 2010-06-30 2012-01-19 Fujitsu Ltd 情報処理装置、情報処理プログラム、情報処理方法
US20120008573A1 (en) 2010-07-08 2012-01-12 Apple Inc. Radio resource signaling during network congestion in a mobile wireless device
JP5919727B2 (ja) * 2011-10-26 2016-05-18 富士通株式会社 バッファ管理のためのプログラム、中継装置及び制御方法
US9264414B2 (en) * 2013-03-15 2016-02-16 Microsoft Technology Licensing, Llc Retry and snapshot enabled cross-platform synchronized communication queue
US8831008B1 (en) * 2013-04-19 2014-09-09 Cubic Corporation Reliable message delivery in mesh networks
US20150055482A1 (en) * 2013-08-20 2015-02-26 Brocade Communications Systems, Inc. TCP Extended Fast Recovery and Segment Timing
US9754007B2 (en) * 2013-09-16 2017-09-05 International Business Machines Corporation Checkpoint capture and tracking in a high availability system
FR3022094B1 (fr) * 2014-06-06 2017-12-08 Bull Sas Methode et systeme de controle de flux
US9660719B2 (en) 2014-11-17 2017-05-23 Honeywell International Inc. Minimizing propagation times of queued-up datalink TPDUs
US9998360B2 (en) 2014-11-17 2018-06-12 Honeywell International Inc. Minimizining message propagation times when brief datalink interruptions occur
EP3314838A4 (en) * 2015-06-25 2019-01-09 Thomson Licensing METHOD AND DEVICE FOR DATA TRANSMISSION
GB2540988B (en) 2015-08-03 2018-01-03 Advanced Risc Mach Ltd Adaptive wait in data communications
US11194500B2 (en) * 2016-01-28 2021-12-07 Netapp, Inc. Resilient implementation of client file operations and replication
US11581980B2 (en) * 2019-09-13 2023-02-14 Apple Inc. Block acknowledgement operation for multi-link WLAN

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11168525A (ja) * 1997-12-03 1999-06-22 Mitsubishi Electric Corp データ通信方法およびデータ通信装置
US6415312B1 (en) * 1999-01-29 2002-07-02 International Business Machines Corporation Reliable multicast for small groups
JP2006094496A (ja) * 2004-09-16 2006-04-06 Lucent Technol Inc 自動再送要求プロセスのサブセットの選択
JP2007053588A (ja) * 2005-08-18 2007-03-01 Nec Corp パケット再送方式、パケット再送システム、パケット再送プログラム及びプログラム記録媒体

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5036518A (en) * 1988-11-02 1991-07-30 Tseung Lawrence C N Guaranteed reliable broadcast network
GB8928699D0 (en) * 1989-12-20 1990-02-28 Int Computers Ltd Data communications system
US5459725A (en) * 1994-03-22 1995-10-17 International Business Machines Corporation Reliable multicasting over spanning trees in packet communications networks
US5699367A (en) * 1995-12-29 1997-12-16 Telefonaktiebolaget Lm Ericsson Concatenated error detection coding and packet numbering for hierarchical ARQ schemes
SE520465C2 (sv) 1997-07-11 2003-07-15 Ericsson Telefon Ab L M Redundansterminering i flerstegsväxel för ATM-trafik
US6392993B1 (en) 1998-06-29 2002-05-21 Microsoft Corporation Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems
JP3882354B2 (ja) 1998-08-31 2007-02-14 ブラザー工業株式会社 無線通信方法及び無線通信システム
US6629318B1 (en) 1998-11-18 2003-09-30 Koninklijke Philips Electronics N.V. Decoder buffer for streaming video receiver and method of operation
US6438105B1 (en) * 1999-02-08 2002-08-20 3Com Corporation Reliable internet facsimile protocol
US6636488B1 (en) 2000-10-11 2003-10-21 Aperto Networks, Inc. Automatic retransmission and error recovery for packet oriented point-to-multipoint communication
US6763491B2 (en) * 2001-02-07 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Methods and systems for avoiding unnecessary retransmissions associated with automatic retransmission query schemes in radiocommunication systems
US7016304B2 (en) 2001-05-18 2006-03-21 Intel Corporation Link level retry scheme
US7379434B2 (en) 2001-10-19 2008-05-27 Koninklijke Philips Electronics N.V. Radio communication system
US6922804B2 (en) * 2002-03-08 2005-07-26 Hewlett-Packard Development Company, L.P. Dynamic end to end retransmit apparatus and method
US7168022B2 (en) * 2002-12-27 2007-01-23 Ntt Docomo, Inc. Transmission control method and system
US20040179485A1 (en) 2003-03-12 2004-09-16 Terrier Carl M. Method of transmitting and receiving two-way serial digital signals in a wireless network utilizing a simplified baseband processor
US7450512B1 (en) 2003-07-29 2008-11-11 Rockwell Collins, Inc. Recirculating retransmission queuing system and method
JP4452983B2 (ja) 2004-01-08 2010-04-21 ソニー株式会社 受信装置および方法、プログラム、並びに記録媒体
US7839834B2 (en) 2004-06-18 2010-11-23 Qualcomm Incorporated Radio link protocols for a wireless communication system
US7643503B2 (en) 2004-07-30 2010-01-05 Sony Corporation System and method for dynamically determining retransmit buffer time
GB0421664D0 (en) 2004-09-29 2004-10-27 Nokia Corp Method for commuication over a lossy interface
US20060179392A1 (en) 2005-02-08 2006-08-10 Takaaki Ota Handshakeless retransmission protocol
US20070168022A1 (en) * 2006-01-17 2007-07-19 Eldridge Charles J Heart valve

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11168525A (ja) * 1997-12-03 1999-06-22 Mitsubishi Electric Corp データ通信方法およびデータ通信装置
US6415312B1 (en) * 1999-01-29 2002-07-02 International Business Machines Corporation Reliable multicast for small groups
JP2006094496A (ja) * 2004-09-16 2006-04-06 Lucent Technol Inc 自動再送要求プロセスのサブセットの選択
JP2007053588A (ja) * 2005-08-18 2007-03-01 Nec Corp パケット再送方式、パケット再送システム、パケット再送プログラム及びプログラム記録媒体

Also Published As

Publication number Publication date
KR101104046B1 (ko) 2012-01-09
US20080225703A1 (en) 2008-09-18
WO2008110424A1 (en) 2008-09-18
US7693070B2 (en) 2010-04-06
EP2137869A1 (en) 2009-12-30
KR20090118916A (ko) 2009-11-18
JP4932008B2 (ja) 2012-05-16
TW200901669A (en) 2009-01-01

Similar Documents

Publication Publication Date Title
JP4932008B2 (ja) 輻輳を低減させる高信頼性パケット送信のための方法、システム、およびコンピュータ・プログラム・コード(輻輳を低減させる高信頼性転送パケ
JP4199439B2 (ja) 網通信システムにおいてデータパケットを伝送するための誤り訂正通信方法
JP3761517B2 (ja) 高速ワイヤレスコミュニケーションシステムのタイマーによる停止防止メカニズム
US6393023B1 (en) System and method for acknowledging receipt of messages within a packet based communication network
US10430374B2 (en) Selective acknowledgement of RDMA packets
US6693910B2 (en) System and method for avoiding stall of an H-ARQ reordering buffer in a receiver
US8774203B2 (en) One-way message notification with out-of-order packet delivery
JPH053941B2 (ja)
US9197373B2 (en) Method, apparatus, and system for retransmitting data packet in quick path interconnect system
KR20050102692A (ko) Mac 층 리셋 후 노드-b 에서 버퍼링된 데이터의효과적인 복구를 위한 시스템
US8792512B2 (en) Reliable message transport network
JP2007089174A (ja) 無線通信システムにおける信号の伝送速度を改善する方法及び装置
US20070133414A1 (en) Method for faster detection and retransmission of lost TCP segments
WO2015032048A1 (zh) 一种移动终端内部通信方法
CN112261142B (zh) 一种rdma网络的数据重传方法、装置及fpga
JP2003304273A (ja) パケット中継装置、パケット中継プログラム、およびパケット中継方法
CN109039549B (zh) 一种报文重传方法及装置
JPH0290751A (ja) データ送信方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111222

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: 20120124

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: 20120214

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150224

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees