JP2005509370A - 信頼性の低い通信環境における通信効率および性能の改良 - Google Patents

信頼性の低い通信環境における通信効率および性能の改良 Download PDF

Info

Publication number
JP2005509370A
JP2005509370A JP2003543259A JP2003543259A JP2005509370A JP 2005509370 A JP2005509370 A JP 2005509370A JP 2003543259 A JP2003543259 A JP 2003543259A JP 2003543259 A JP2003543259 A JP 2003543259A JP 2005509370 A JP2005509370 A JP 2005509370A
Authority
JP
Japan
Prior art keywords
message
messages
node
transmission
nodes
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.)
Pending
Application number
JP2003543259A
Other languages
English (en)
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 JP2005509370A publication Critical patent/JP2005509370A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/17Interaction among intermediate nodes, e.g. hop by hop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/267Flow control; Congestion control using explicit feedback to the source, e.g. choke packets sent by the destination endpoint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】並列コンピューティング環境、分散コンピューティング環境におけるメッセージ伝送を改良すること。
【解決手段】マルチノード・データ処理システムにおいて、アプリケーション・プログラムの要求ごとに、ノードからノードへと伝送されるメッセージを、ノードのキューに記憶する。メッセージの受信確認応答を使用して、キューから送信すべき許容可能なメッセージの最大数を調整し、確認応答がないメッセージを再送信する前にこのシステムが待つ時間間隔を調整することによって、将来のメッセージ伝送を制御する。こうすることで、いわゆる「信頼性の低い」メッセージ・プロトコルの使用が可能になり、アプリケーション・プログラムおよびプログラマは、より複雑なプロトコルを使用する負担から解放される。

Description

本発明は、一般的に喪失したメッセージを再伝送したことによってネットワーク内のノード間のデータ伝送要求が容量の低下を引き起こす可能性があるデータ処理ネットワークにおける通信の方法およびシステムを対象としている。より詳細には、本発明は、メッセージ伝送レートを現在のネットワーク容量に精度よくマッチングさせるシステムおよび方法を対象としている。さらにより詳細には、本発明では、受信した確認応答の数と送信したメッセージの数との比較に基づいてネットワーク容量を定期的に再評価するメッセージ・ドライバとともにメッセージ・キューを使用する。
一般的に、UDP(User Data Protocol)のような通信方法は、基本的に「信頼性の低い」ものであると考えられている。「信頼性のある」プロトコルであるTCP(Transmission Control Protocol)と違って、UDPメッセージは、最終の宛先に到達しないこともあり、ソース・ノードまたは中間ノードによって脱落させられ、または削除される可能性があり、あるいは通信パスのどこかで喪失してしまうこともあり得るのである。メッセージは、メッセージ・パケットを喪失した旨の通知をすることなく、宛先ノードで気付かないうちに削除されることもある。(なお、用語「信頼性の低いプロトコル」および「信頼性のあるプロトコル」は、本明細書で使用する相対的な用語であって、2つの異なる範疇の伝送プロトコルをより詳細に区別するものであることに留意されたい。したがって、これらの用語の使用によって、いわゆる「信頼性の低いプロトコル」を使用すべきではないということを意図しているわけではない。逆に、本明細書中で提供される改良は、その複雑さとオーバヘッドが少ないという利点を依然として保持しつつ、その短所の多くを解消することによって、そのような「信頼性の低い」プロトコルはさらにずっと実用的なものとする)。
より単純なプロトコルによる「信頼性の低い」メッセージ配信の品質のために、アプリケーション・プログラムは、意図したメッセージが配信されたかどうかをこのアプリケーション・プログラム自身が判定できるように、伝送プロトコルの多くの機能(他端からの確認応答、タイムアウト、再伝送など)を実装しなければならない。しかし、単純に再伝送をすることによって、より多くの通信トラフィックが頻繁に発生し、メッセージが脱落する確率がいっそう高くなる。そのようなときは、通信チャネルが容量の限界または限界を超えている、すなわち飽和している可能性がある状態なので、ネットワークは非常に不安定になる。
多数の分散されたデータ処理ノードが存在する環境を考えると、この問題は非常に重大なものとなる。1つのノード上で実行される分散アプリケーションが、UDPプロトコルを使用して、異なる多数のノード上で実行されるピア・アプリケーションに大量のメッセージを送信するときに、多数のメッセージが最終的に脱落してしまう可能性がある。このことは、再送信が必要となることを意味している。再送信は、一般的に再送信が必要となってから短時間で行われるが、そのときは依然としてネットワークはメッセージで飽和したままである。この状況の結果として、ノードで実行されるアプリケーション・プログラムが、設計の目的であったタスクを実施するのでなくメッセージを再送信することにその時間のほとんどを費やすということが、場合によっては起こり得る。例えば、500ノード以上の負荷の重い大規模なシステムで、あるノードから他の500のノードへと送信される多数のメッセージがある場合には、多数のメッセージを数回か再送信しなければならない可能性も大きい。したがって、メッセージ・フローを制御することが非常に重要となることが理解される。この課題は、本明細書中に提示するように、送信するメッセージの数およびサイズを調整し、そのメッセージをよりインテリジェントに再送信する方法によって達成することができる。
本発明を使用することによって、いくつかの問題が解決する。例えば、本発明によれば、メッセージの脱落する確率にあまり影響を与えず、それほど多数のメッセージ再送信を引き起こさずに、大量のメッセージを多数のピアに対して伝送することが可能になる。インテリジェントでないメッセージ再送信の方法では、より多くの通信トラフィックが生じ、メッセージの脱落する確率が増大し、アプリケーション性能が低下するので、このことは特に問題となる。
本発明は、ネットワークの状態を実時間ベースで測定して、所与の期間内にどれだけ多数のメッセージを配信することができるかを決定する方法を提供することによって、上記の問題を解決する。好適には、この方法は、返信された確認応答(ACK)メッセージ数を、送信したメッセージ数と比較してカウントすることを含んでいる。このカウントの使用によって、通信チャネルについての事前の知識、その他実行されるアプリケーションの動作に関する知識を必要とすることなく、通信チャネルの状態(すなわち、受信したACKの数)に応じて、通信の再送信レートを自動的に調整するための基礎が提供される。
したがって、本発明をデータ処理ネットワークに使用すれば、アプリケーションにとって重要な利点を得ることができる。例えば、アプリケーションは、信頼性の低い通信チャネル上で、小さなオーバヘッド、低いメッセージの脱落率でメッセージ送信をすることができる。メッセージの再送信の回数も減らされ、全体の通信性能が高められる。メッセージ伝送は、現在のネットワークの状態に、自動的かつ実質的に連続的に適合される。スイッチ・ポート構成に1つまたは複数の変更を加えることにより、確認応答の監視、再試行のタイミング、およびメッセージ再送信の雑用からアプリケーション・プログラムを解放してくれるさらに簡単なプロトコルを使用して、今や外部のプログラミングによってさらにうまくメッセージ伝送の雑用を処理することによって、アプリケーション・プログラミングをさらに簡単にすることができることを意味する。
したがって、本発明の目的の一つは、並列コンピューティング環境、分散コンピューティング環境におけるメッセージ伝送を改良することである。
本発明の他の目的は、存在するシステム容量をすべて使用するだけでなく、再送信されるメッセージ(特に、新たに再送信されるメッセージ)によってシステム容量が過負荷にならないよう保証するようにも動作する適応性のある伝送プロトコルを提供することである。
本発明のさらに他の目的は、「信頼性の低い」プロトコルが十分なものとなるメカニズムを提供することによって、アプリケーション・プログラムがより複雑な「信頼性のある」プロトコルを使用することを避けることができるようにすることである。
本発明のさらに他の目的は、1以上のメッセージを後で再送信しなければならない確率をさらに少なくしながら、ネットワーク・ピアに多数のメッセージを容易に送信できるメッセージ伝送メカニズムを提供することである。
本発明のさらに他の目的は、アプリケーション・プログラムおよびプログラマのために必要となる通信の需要を減少させることである。
本発明のさらに他の目的は、ネットワーク化されたデータ処理環境内の脱落メッセージ数を減少させることである。
本発明のさらに他の目的は、特に分散データ処理ネットワーク、並列データ処理ネットワークにおいて、全体としての通信性能を向上することである。
本発明のさらに他の目的は、分散データ処理ネットワーク、並列データ処理ネットワーク中でメッセージを送信するために要する時間を減少させることである。
本発明のさらに他の目的は、アプリケーション・プログラムによって一度に送信されるメッセージ数を最大にすることである。
本発明のさらに他の目的は、送信するメッセージ数を通信チャネルの現在の容量にマッチングさせることである。
本発明のさらに他の目的は、脱落した可能性のあるメッセージの再送信をしようとする前に、メッセージ・システムがどの程度の時間を待たされるかを管理するタイマをより正確に制御することである。
本発明のさらに他の目的は、メッセージ再送信の数を減少させることである。
これに限定されないが、最後に、本発明の目的の一つは、いわゆる「信頼性の低い」通信プロトコルの適用可能な範囲を拡張することである。
本発明の様々な実施形態が満たす望ましい目的を本明細書に列挙したが、この列挙によって、これらの目的のいずれかまたはすべてが、個々に、あるいはまとめて本発明の最も一般的な実施形態、またはそのより特定の実施形態に本質的な特徴として存在することを暗示し、または示唆することを意図するものではない。
マルチノード・データ処理環境でメッセージを伝送する方法は、複数のステップを含んでいる。複数のステップは、伝送アプリケーションの識別子とともに送信するメッセージを、ノードのうちの1つで実行されるアプリケーションからメッセージ・キューに配置するステップから開始する。ネットワーク伝送容量の現在の指標に基づいて、いくつかのメッセージを伝送するために選択し、選択されたメッセージを送信する。送信ノードは、送信したメッセージの到着を示す、メッセージ受信側からの確認応答を監視し続ける。次に、本方法では、送信したメッセージの数と比べた受信した確認応答の数に基づいて、その後に送信するメッセージの数を修正する。この比較は、現在のネットワーク容量の指標および予測量として使用される。この比較は絶対値の差の形式で実行され、より好適には、割合の比較の形態で実行される。
本発明の対象は、本明細書の最後の部分で指摘し、明確に請求されている。しかし、本発明については、以下の説明を添付の図面と併せて参照することによって、さらなる目的および利点とともに、構成および実施の方法を最も良く理解することができるだろう。
図1に示すように、データ処理ネットワーク内の通信を以下のようにモデリングすることができる。送信ノード上のCOMMAGENT100(ノードA上の送信COMMAGENT)が送信側(アプリケーション・プログラム)からの送信要求を受信すると、この送信COMMAGENTは、その送信要求を処理し、指定された宛先ノード200(例えば、受信側ノードB上の受信COMMAGENT)へ送信する。宛先ノード(ノードB)上の受信COMMAGENT200が通信チャネルを介して送信側からのメッセージを受信すると、この受信COMMAGENTは、自身のノード(ノードB)上の受信側に通知し(アプリケーション・プログラムに通知し)、確認応答(ACK)を送信側ノード、ここではノード100(ノードA)に送信する。
ノードA上の送信COMMAGENTが、受信側ノードBからACKメッセージを受信すると、送信COMMAGENTは、元の送信側に送信要求の完了通知を送信し、送信要求を完了(終了)する。ノードA上の送信COMMAGENTが所定の期間内(再試行要求の発行または再試行タイマの時間経過まで)にACKメッセージを受信しない場合には、以前に送信したメッセージが喪失した可能性があるので、送信COMMAGENTは、このメッセージを、もう一度宛先ノードに再送信する。
以上で説明した図1にある通信モデルにおいて示されるように、以下の要因が全体的としての通信性能に影響を与える可能性がある。
非常に多数のメッセージが通信チャネルに送信される場合、特にメッセージ数が通信チャネルの容量を超える場合には、ある一定数のメッセージが、意図した宛先に到達しない可能性があること。
再試行要求の間隔が短くすると、送信要求を完了するための時間の合計が短くなる可能性はあるがが、通信チャネル上のメッセージ・トラフィックが増加して、通信性能低下の影響が出る可能性があること。
他方で、再試行間隔を長くすると、送信要求を完了するための時間の合計が長くなる可能性があるが、この戦略によると即時の通信オーバヘッドは低下するであろうこと。
本発明は、COMMAGENT(送信COMMAGENTおよび受信COMMAGENT)に伝送要求からのメッセージの数を調整させ、また再試行間隔を調整させて、最小の通信オーバヘッド、最大スループットを達成する。一対全部(one−to−all)のメッセージ同報通信を重視する本発明においては、メッセージを受信すると、受信COMMAGENTは、単にACK(acknowledgement signal、確認応答)をすぐに送信し、受信側アプリケーションに通知する。図3に、好適な受信COMMAGENTの動作が示される。
図2は、本発明の方法およびシステムによる通信トラフィックの調整の構造をブロック図の形式で示している。
1.本発明の方法では、すぐにメッセージを送信するのではなく、メッセージを処理して送信する前に、送信要求を最初にメッセージ・キュー300に配置する。この動作によって、通信チャネル容量が有限であるチャネルにあふれてしまうほどのメッセージを伝送することが防止される。
2.本発明の動作の重要な部分は、本明細書においてメッセージ・ドライバ400あるいはドライブ・メッセージング・エンジン400と呼ばれるソフトウェア・ドライバを使用して実現される。本発明のドライブ・メッセージング・エンジン400は、現在の通信容量に基づいて、メッセージの最大伝送可能数(すなわち、MAXNUMMSGS)を選択する。このパラメータ(MAXNUMMSGS)は、現在の判定済みのネットワーク状態(例えば、送出されたメッセージの数と比較した受信ACKの数)に従って調整されることに留意されたい。
通信チャネル上に送信するように要求することが可能なメッセージの最大サイズを指定するために、MAXSIZEパラメータを使用される。要求されたメッセージがあまりにも大きすぎる場合には、この要求されたメッセージは、複数の小さなメッセージに分割される。

number of the split messages = |requested message size| / MAXSIZE
COMMAGENTに関する限りでは、分割メッセージ数(number of the split messages)は、要求されたメッセージ数の真の尺度となる。MAXNUMMSGSは、一度に送信できる分割メッセージの最大数である。MAXNUMMSGSを調整する方法はいくつかあるが、以下は、本明細書における好適な方法の1つである。

MAXNUMMSGSnext = MAXNUMMSGSprev * (1 - penalty + reward),
where
ack_miss_rate = (NumberOfACKs - NumberOfMsgSent) / NumberOfMsgSent
penalty = 0 if ack_miss_rate < epsilon (a small predefined number e.g. 0.1), or
= ack_miss_rate / 2, otherwise
reward = value by which MAXNUMMSGS is increased.
定義されている方法によれば、ack_miss_rateは、0(すべてのメッセージが配信されたことを示している)と1(すべてのメッセージが喪失したことを示している)の間にある。上記の式で、ack_miss_rateを2で割って、MAXNUMMSGSになされる変更を低下させていくことが好ましい。例えば、MAXNUMMSGSが最初100であり、メッセージを全て喪失した場合、MAXNUMMSGSパラメータの次の値は100*(1−1/2)=50となる。
reward値は、好適には、以下のように計算される。

AvgMsgsPerSend = AccumulatedTotalMsgsSent / AccumulatedTotalStepsToSend
reward = 0 if a predefined value (e.g.,0.1) < (AvgMsgsPerSend / MAXNUMMSGS) <
a predefined value (for example, 0.9). otherwise
= ( |AvgMsgsPerSend - MAXNUMMSGS| ) / (2 * MAXNUMMSGS).
上記の式の中で、AccumulatedTotalMsgsSentパラメータは、送信するメッセージの数の合計である。これによって、再試行回数も明らかになる。AccumulatedTotalStepsToSendパラメータは送信の数の合計である。したがって、AvgMsgsPerSendsは、送信ごとのメッセージの平均数である。このAvgMsgsPerSendsが所定のパーセント(例えば90%)よりも大きい場合、あるいは、MAXNUMMSGSの所定のパーセント(例えば10%)よりも小さく、その結果2つの値の偏差が相対的に小さい場合には、rewardが加えられる。
上記の式では、ノード間通信の状態に対して所望の依存性を示す「penalty」計算および「reward」計算の好適な例を提供している。本発明は、これら特定の式には限定されない。メッセージ伝送および配信に際してシステムの正常終了に基づいたpenaltyまたはrewardを提供する限り、任意の1組の他の式を使用することができる。
3.本発明の方法では、選択されたメッセージを通信チャネルへと送信し、メッセージ状況を「送信済み(Sent)」としてマークし、再試行間隔タイマを以下のプロトコルによって決定される現在の値(すなわち、RETRYINTERVAL)に設定する。このRETRYINTERVALは、初期の再試行間隔タイマである。実際の再試行間隔タイマは、メッセージの再送信が行われるときに再計算される。
再試行間隔を、キューのメッセージの再送信を試みるときに長くする。この時、新しいメッセージを開始するときのように、RETRYINTERVALの値を初期値にリセットする。RETRYINTERVALの調整は、以下のように表現される。

Nround = 0, t = t0 (where t0 is initial value (RETRYINTERVAL) and t is the retry inverval).
この間隔tは、メッセージが再試行されない限り同じ値にとどまる。しかし、メッセージの再送信が試みられるときはいつでも、以下のようになる。

t = t + tdelta (where tdeltais the incrementing value).
すべての保留中のメッセージが送られ、新しいメッセージが開始されると、以下のようになる

t = t0

上式の背後にある基礎を成す概念は、メッセージが配信されない間隔期間を長くすることである。したがって、上式が必ずしも厳密に以上のように表現されなければならないというわけではない。関連する態様では、この値は、ネットワーク中の正常なメッセージ伝送に応じて動的に変更される。
4.COMMAGENTが宛先からACKメッセージを受信するときはいつでも、ドライブ・メッセージング・エンジン400は、関連するメッセージ状況に「実行済み(Done)」とマークを付け、すべてのACKを受信したかどうかを検査して調べる。すべてのACKを受信した場合、もともと要求していたアプリケーションは、その送信要求が完了したことを通知され、その再試行タイマがリセットされる。ここで、再試行タイマをリセットするためのトリガの実施にはある程度の柔軟性があることに留意されたい。複数のアプリケーションが同時に実行される状況(典型的な場合)では、再試行タイマのリセットを1つまたは複数のアプリケーションに依存するように行うことができる。この再試行タイマをリセットする目的で、かかるアプリケーションを、必須のアプリケーションとして指定することができる。さらに、確認応答の合計数を、すべての実行されるアプリケーションについて累積して、すなわち平均数を決定して、この平均値が閾値を超える場合に、タイマをリセットする。
a.(Reward)すべてのACKが受信される場合、通信パラメータ:MAXNUMMSGSに対して拡張を徐々に行い、通信チャネル容量を増大させる方向に再試行間隔を増大させる。すなわち、MAXNUMMSGSを増大させ、再試行間隔を減少させる。この再試行間隔は、retry_interval = t0 などとして元の値にリセットすることになる。このrewardは、以下のように計算される。

AvgMsgsPerSend = AccumulatedTotalMsgsSent / AccumulatedTotalStepsToSend
reward = 0 if a predefined value (e.g.,0.1) < (AvgMsgsPerSend / MAXNUMMSGS) <
a predefined value (for example, 0.9) = ( |AvgMsgsPerSend - MAXNUMMSGS| ) / (2 * MAXNUMMSGS),
otherwise as descrived above.
5.再試行タイマの時間が経過したときに、所与の伝送におけるメッセージの最大可能数には制限があるので、メッセージの一部が送信されていないことがあり得る(すなわち、未送信のメッセージが依然としてメッセージ・キューに残っている可能性がある)。この場合、本方法では、次の組のメッセージを選択し、それらを送出する。
6.再試行タイマの時間が経過したとき、キューからすべてのメッセージの伝送を試みた後に一部のACKを受け取っていないので、本方法では、ネットワーク状態を評価し、通信パラメータ(伝送ごとのメッセージの最大数(MAXNUMMSGS)および再試行間隔(RETRYINTERVAL))を調整する。
a.(Penalty)喪失したACKの数が非常に多い場合、すなわち喪失したACKの数が所定の数よりも大きい場合、またはack_miss_rateが、例えば、(500メッセージの伝送のうちの50メッセージの損失率を表す)0.1より大きい場合には、まず、MAXNUMMSGSパラメータを徐々に小さくし、次いで、MAXNUMSGSパラメータがすでに所与の定義済みの最小値に達している場合、または再試行が依然として行われる場合に、再試行間隔(RETRYINTERVAL)を長くする。例えば、以下の式は、メッセージを再試行するとき、またはMAXNUMMSGSが、定義済みの値(例えば、MAXNUMMSGSmin)より小さいときに、メッセージ伝送の失敗を考慮してこれらのパラメータを調整することが可能な好ましい方法のうちの1つを指定するものである。

MAXNUMMSGSnext = MAXNUMMSGSprev * (1 - penalty)
penalty = ack_miss_rate / 2
and
t = t + tdelta (where tdeltais the incrementing value).

このようにして、伝送ごとのメッセージ数および再試行間隔をネットワーク状態に応じて調整して、通信オーバヘッドを減少させる。
本発明は、好適には、本発明の譲受人であるインターナショナル・ビジネス・マシーンズ・コーポレーションによって開発され、販売されているpSeriesプロセッサなどのデータ処理システムにおいて使用される。好適なシステムには、公に定義されているMPI(Message Passing Interface)を使用するスイッチを介して互いに通信を行う複数のデータ処理ノードが含まれる。したがって、ノード−ノード間からの1次情報交換は、定義済みの組の他ノードを対象とするメッセージ交換を介したものである。これらのノード上で実行されるアプリケーションが、並列データ処理タスクおよび分散データ処理タスクを実施することができるように、開発され市販されるときに、定義済みのノード・グループにこれらのノードを形成することができる。特に、これらの公共利用可能なシステムには、グループ・サービスと呼ばれるプログラミングが含まれ、これによって、アプリケーション・プログラムがノード・グループを確立し、これらのグループ中でメンバシップを制御し、様々なグループ機能を利用することができるようになる。グループ・サービスは、基礎となるオペレーティング・システムに関連して実行されるユーティリティと見なすことが最良である。本明細書に記載されるように、グループ・サービス・プログラミングはまた、そのメッセージのノード−ノード間伝送を制御する。したがって、本発明は、グループ・サービス・ソフトウェア・システム内で実施され、以下に記載されるような状況を改善する。
通常は、グループ・サービスは、非常に大規模な負荷の重いシステム(例えば、500ノード)上ですべてのノードが応答する必要がある伝送プロトコルを実施するときに、まずプロトコル・メッセージをすべての指定ノードに送信し、その応答を待つ。グループ・サービスは、非応答ノードに再送信の前に所与の時間間隔でメッセージを送信し続ける。しかし、ある状況では、通信チャネルが他のアプリケーションの動作に起因してすでに容量がオーバーフローしているので、多数のグループ・サービス・メッセージが少なくとも一時的に失われる。さらに、反復された再送信により、通信チャネルのオーバヘッドが増大し、さらにメッセージ脱落率が増大する。したがって、通常のプロトコルは、妥当な時間内に完了することができず、それによって、グループ・サービスを使用するアプリケーションの性能がさらに低下することさえあり得る。しかし、本発明のプロトコルを使用することにより、グループ・サービスは、要求されたメッセージを複数のステップで送信し、再試行間隔を調整し、その結果、本発明のプロトコルの使用によって、通信チャネルに悪影響を及ぼすことなく、通信性能が向上することが可能になる。
したがって、通信トラフィックを調整する本発明の方法を使用することにより、アプリケーション・プログラムに、以下の利点、すなわち(1)送信するメッセージのレートを調整することによる通信オーバヘッドの低減、および(2)通信性能の全体的な改善がもたらされる。
本発明を、いくつかの好適な実施形態に従って本明細書に詳細に記載してきたが、当業者は、多くの修正形態および変更形態を実施することができる。したがって、添付の特許請求の範囲は、そのような本発明の真の趣旨および範囲に含まれる修正形態および変更形態をすべて含んでいる。
データ処理ネットワーク中におけるノード間でメッセージを送信するための通信モデルを示すブロック図である。 プロトコルを動作させる適応メッセージに関連してメッセージ・キューを使用する、本発明の好ましい実施形態を示すブロック図である。 受信されたメッセージの処理を示すブロック図である。

Claims (7)

  1. マルチノード・データ処理環境においてメッセージを伝送する方法であって、
    アプリケーションから送信するメッセージを前記アプリケーションの識別子とともにメッセージ・キューに配置するステップと、
    現在のネットワーク伝送容量の指標に基づいて、いくつかの送信するメッセージを選択するステップと、
    前記選択されたメッセージを送信するステップと、
    前記送信されたメッセージの到着の確認応答を受信するステップと、
    送信したメッセージの数に比較した受信した確認応答の数に基づいて、前記送信するメッセージを修正するステップと、
    を含む方法。
  2. 確認応答がない場合に、次のメッセージ再送信のタイミングを決定するのに使用される時間間隔を修正するステップをさらに含む、請求項1に記載の方法。
  3. 受信した確認応答の数が所定の値を超える場合に、前記送信するメッセージの数を増加させる、請求項1に記載の方法。
  4. 受信した確認応答の数が所定の値より小さい場合に、前記送信するメッセージの数を減少させる、請求項1に記載の方法。
  5. 受信した確認応答の数が所定の値を超える場合に、確認応答がない場合に、次のメッセージ再送信のタイミングを決定するのに使用される時間間隔を減少させる、請求項1に記載の方法。
  6. 受信した確認応答の数が所定の値を超える場合に、確認応答がない場合に、次のメッセージ再送信のタイミングを決定するのに使用される時間間隔を増加させる、請求項1に記載の方法。
  7. 少なくとも3つのノードと、
    前記少なくとも3つのノードを接続するノード間通信リンクと、
    前記ノードのうちの少なくとも1つの内部のメッセージ・キューと、、
    前記キューからのメッセージを伝送し、前記ノードのうちの他ノードからの伝送確認応答を監視して、伝送再試行間隔、および前記キューから伝送すべきメッセージの最大数を決定するパラメータを調整するための前記少なくとも1つのノード上のプログラミングと、
    を備えるマルチノード・データ処理システム。
JP2003543259A 2001-11-06 2002-10-26 信頼性の低い通信環境における通信効率および性能の改良 Pending JP2005509370A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/993,990 US6910080B2 (en) 2001-11-06 2001-11-06 Communication efficiency and performance in an unreliable communication environment
PCT/EP2002/011987 WO2003041345A1 (en) 2001-11-06 2002-10-26 Improving communication efficiency and performance in an unreliable communication environment

Publications (1)

Publication Number Publication Date
JP2005509370A true JP2005509370A (ja) 2005-04-07

Family

ID=25540161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003543259A Pending JP2005509370A (ja) 2001-11-06 2002-10-26 信頼性の低い通信環境における通信効率および性能の改良

Country Status (5)

Country Link
US (1) US6910080B2 (ja)
EP (1) EP1461919A1 (ja)
JP (1) JP2005509370A (ja)
CA (1) CA2459103A1 (ja)
WO (1) WO2003041345A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039715B2 (en) * 2002-05-21 2006-05-02 Microsoft Corporation Methods and systems for a receiver to allocate bandwidth among incoming communications flows
GB2417390B (en) * 2004-08-18 2007-11-14 Wecomm Ltd Data packet transmission
KR100608838B1 (ko) * 2004-12-30 2006-08-08 엘지전자 주식회사 이동 통신 단말기의 pdp 컨텍스트 설정 및 해제 방법
US8326705B2 (en) * 2006-12-22 2012-12-04 American Express Travel Related Services Company, Inc. Restaurant yield management portal
GB2449944B (en) 2007-06-09 2012-08-08 Wecomm Ltd Supplying applications to mobile devices
US7961613B2 (en) * 2009-02-05 2011-06-14 Silver Spring Networks, Inc. System and method of monitoring packets in flight for optimizing packet traffic in a network
JP5402581B2 (ja) * 2009-12-01 2014-01-29 富士通株式会社 パケット中継装置および輻輳制御方法
US8634419B2 (en) * 2010-12-01 2014-01-21 Violin Memory Inc. Reliable and fast method and system to broadcast data
US10178041B2 (en) * 2015-09-23 2019-01-08 Intel Corporation Technologies for aggregation-based message synchronization

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0482436A (ja) 1990-07-25 1992-03-16 Pfu Ltd パケット送信制御方式
JPH0528072A (ja) 1991-07-18 1993-02-05 Nec Corp 計算機システム
JPH06197100A (ja) 1992-12-24 1994-07-15 Canon Inc 通信システム
US5627970A (en) * 1994-08-08 1997-05-06 Lucent Technologies Inc. Methods and apparatus for achieving and maintaining optimum transmission rates and preventing data loss in a processing system nework
US5671226A (en) * 1995-02-09 1997-09-23 Mitsubishi Denki Kabushiki Kaisha Multimedia information processing system
US5784184A (en) * 1995-05-11 1998-07-21 Ciena Corporation WDM Optical communication systems with remodulators and remodulating channel selectors
JP3476985B2 (ja) 1995-12-28 2003-12-10 株式会社東芝 パケット通信システムおよびパケット通信制御方法
JP3001435B2 (ja) 1996-10-24 2000-01-24 日本電気移動通信株式会社 確認形情報転送におけるデータ再送方法
JPH10247901A (ja) 1997-03-04 1998-09-14 Matsushita Electric Ind Co Ltd 再送制御方法
US5918002A (en) * 1997-03-14 1999-06-29 Microsoft Corporation Selective retransmission for efficient and reliable streaming of multimedia packets in a computer network
US6292834B1 (en) * 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US6018516A (en) 1997-11-14 2000-01-25 Packeteer, Inc. Method for minimizing unneeded retransmission of packets in a packet communication environment supporting a plurality of data link rates
US6112323A (en) 1998-06-29 2000-08-29 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
US6381215B1 (en) 1998-06-29 2002-04-30 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
US6611495B1 (en) * 1999-02-22 2003-08-26 Telefonaktiebolaget Lm Ericsson (Publ) System and method for improved data transfer in packet-switched communication networks
US6560630B1 (en) * 1999-03-18 2003-05-06 3Com Corporation Receive load balancing and fail over with multiple network interface cards
US6405337B1 (en) 1999-06-21 2002-06-11 Ericsson Inc. Systems, methods and computer program products for adjusting a timeout for message retransmission based on measured round-trip communications delays
EP1077559A1 (en) 1999-08-17 2001-02-21 Telefonaktiebolaget Lm Ericsson Method and device for determining a time-parameter
US6553032B1 (en) * 1999-09-01 2003-04-22 Tantivy Communications, Inc. Packeting timeout spoofing in a wireless data communications network
US6766358B1 (en) * 1999-10-25 2004-07-20 Silicon Graphics, Inc. Exchanging messages between computer systems communicatively coupled in a computer system network

Also Published As

Publication number Publication date
US6910080B2 (en) 2005-06-21
WO2003041345A1 (en) 2003-05-15
US20030088692A1 (en) 2003-05-08
EP1461919A1 (en) 2004-09-29
CA2459103A1 (en) 2003-05-15

Similar Documents

Publication Publication Date Title
JP4016387B2 (ja) データフロー制御方法
US6507562B1 (en) Dynamic optimization for receivers using distance between a repair head and a member station in a repair group for receivers having a closely knit topological arrangement to locate repair heads near the member stations which they serve in tree based repair in reliable multicast protocol
JP4654926B2 (ja) 通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム
US6526022B1 (en) Detecting congestion by comparing successive loss of packets in windows to provide congestion control in reliable multicast protocol
JP5816718B2 (ja) 通信装置、通信システム、およびデータ通信の中継方法
US6505253B1 (en) Multiple ACK windows providing congestion control in reliable multicast protocol
US7061856B2 (en) Data throughput over lossy communication links
JP5286346B2 (ja) プロセス制御システムおよびアプリケーション情報を通信する方法
JP4714572B2 (ja) ウェブサービスのための信頼性のあるメッセージングプロトコルを使用したメッセージの効率的な転送
US20030012212A1 (en) Method and apparatus for transmitting data over a network within a specified time limit
JPWO2008023656A1 (ja) 通信装置
WO2006065008A1 (en) Apparatus for arq controlling in wireless portable internet system and method thereof
KR20070007383A (ko) 시변 네트워크 환경에서 최적의 파일 전송을 위한 방법 및장치
WO2002030033A2 (en) Improved connectionless arq protocol
JP4601871B2 (ja) 通信システムにおけるデータ流れの制御方法
CN104683259A (zh) Tcp拥塞控制方法及装置
EP3654563A1 (en) Transmission timeout system
CN109560897B (zh) 一种tcp重传方法和装置
KR20060012298A (ko) 통신 시스템에서 채널의 품질 척도를 결정하는 방법 및장치
JP2005509370A (ja) 信頼性の低い通信環境における通信効率および性能の改良
JP4485684B2 (ja) 通信システムにおけるデータ・パケットの伝達方法および装置
CN116566920A (zh) 一种数据传输控制方法及相关装置
JP2000022744A (ja) パケット通信システム、パケット通信装置及びパケット通信方法
WO2000001123A1 (en) Congestion control in reliable multicast protocol
US8418017B2 (en) Adaptive acknowledgment mechanism for network communication

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060828

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060828

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20060828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070122

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070122

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070511

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20081219

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20091007