JP2007520093A - Group-to-group communication and error-tolerant symmetric multicomputing system on a single connection - Google Patents

Group-to-group communication and error-tolerant symmetric multicomputing system on a single connection Download PDF

Info

Publication number
JP2007520093A
JP2007520093A JP2006527145A JP2006527145A JP2007520093A JP 2007520093 A JP2007520093 A JP 2007520093A JP 2006527145 A JP2006527145 A JP 2006527145A JP 2006527145 A JP2006527145 A JP 2006527145A JP 2007520093 A JP2007520093 A JP 2007520093A
Authority
JP
Japan
Prior art keywords
group
data
node
nodes
communication
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
JP2006527145A
Other languages
Japanese (ja)
Inventor
ドミニク,アニクマー
Original Assignee
トランシアム テクノロジーズ
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
Priority claimed from US10/942,763 external-priority patent/US8086747B2/en
Priority claimed from US10/942,260 external-priority patent/US7525902B2/en
Application filed by トランシアム テクノロジーズ filed Critical トランシアム テクノロジーズ
Publication of JP2007520093A publication Critical patent/JP2007520093A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming

Abstract

原子的な多点搬送並びに多点転送を伴う2つのノードセット間で、信頼性がありかつ秩序化されたデータ通信が可能なシステムで、例えば、拡張TCD/IPがここでは記述される。複数ノードがデータと一緒に搬送される場合、搬送は原子的に実行される。1グループのノードを利用するエラー許容型かつ対称型のマルチコンピューティングが可能なシステムもここで説明される。信頼性のある秩序化されかつ原子的なグループ対グループTCP通信システムを利用するネットワーク化されたノードに関する対称なグループが、エラー許容性と単一システムイメージをクライアントアプリケーションに提供するのに利用される。クライアントとグループ間の通信は、任意標準のTCP/IP端点がグループと間断なく通信可能であるので標準準拠ベースである。処理負荷はアプリケーションセグメントへのトランスぺアレントなタスク分配により1グループのノード同士で分担される。本システムは1ヶ所のノードがエラーになる場合があっても、残りのレプリカがサービスや接続の中断なくサービスを続けるという点でエラー許容型である。
An extended TCD / IP, for example, is described herein in a system capable of reliable and ordered data communication between two node sets with atomic multipoint transport as well as multipoint transfer. When multiple nodes are transported with data, the transport is performed atomically. An error-tolerant and symmetric multi-computing system that utilizes a group of nodes is also described herein. Symmetrical groups on networked nodes utilizing a reliable, ordered and atomic group-to-group TCP communication system are used to provide error tolerance and single system image to client applications . Communication between the client and the group is based on a standard because an arbitrary standard TCP / IP endpoint can communicate with the group without interruption. The processing load is shared among a group of nodes by transparent task distribution to application segments. This system is error-tolerant in that even if one node may fail, the remaining replicas will continue service without interruption of service or connection.

Description

本発明はnが任意の整数値である場合のあるひとつのネットワークにおけるn対n点間のネットワーク通信に関する。   The present invention relates to network communication between n to n points in one network where n may be any integer value.

関連技術の簡単な説明Brief description of related technology

最適なリソース利用、柔軟性ならびに管理コストの削減に関しては、産業界では、変化するニーズを満足させるために処理能力と記憶能力が必要に応じて付加可能であり、リソースが動的に準備される「ユーティリティコンピューティング」モデルに基づく解決策が求められている。従来のメインフレームによる解決策は高コストのため平均的な企業の手には届かない。数多くの高性能のものがあるが、低コストの「ブレードサーバ」と市場で入手できるネットワーク技術がある。しかしながら、これらのリソースを効率的かつ柔軟に集めるとともにユーティリティコンピューティングのニーズを満足させるアプリケーションを広範囲に実行させることの可能な解決策は、今日、存在しない。   For optimal resource utilization, flexibility and management cost reduction, industry can add processing and storage capabilities as needed to meet changing needs and resources are dynamically prepared There is a need for a solution based on the “utility computing” model. Traditional mainframe solutions are too expensive to reach the average enterprise. There are many high performance ones, but there are low cost “blade servers” and network technologies available on the market. However, no solution exists today that can efficiently and flexibly gather these resources and run a wide range of applications that meet the needs of utility computing.

クライアントサーバパラダイムはクライアントがリクエストを出してサーバが応答するその容易さのため産業界で評判がよい。このパラダイムを可能にするためには、通信ネットワークのクライアントとサーバの間で利用される人気のある通信プロトコルは、転送制御プロトコル/インターネットプロトコルあるいは単純に、「TCP/IP」である。通信ネットワークでは、クライアント(あるいはクライアントシステムまたはマシン)はサーバ(あるいはクライアントシステムまたはマシン)を単独のロジカルホストまたはエンティティとして見る。単独のフィジカルサーバは数多くのクライアントに効率的にサービス不可能であることが度々ある。さらに、エラーを起こしたサーバによりクライアントはオペレーション不能となる。   The client-server paradigm is popular in the industry for its ease with which clients can make requests and servers respond. To enable this paradigm, a popular communication protocol utilized between a client and server in a communication network is the transfer control protocol / Internet protocol or simply “TCP / IP”. In a communication network, a client (or client system or machine) sees a server (or client system or machine) as a single logical host or entity. A single physical server often cannot service many clients efficiently. In addition, the server that caused the error renders the client inoperable.

単独フィジカルサーバの欠点に取り組むため、クライアントにサービスする平行あるいはグリッド状に稼動する多くのサーバをかかえるクラスター構成が、負荷均衡装置を利用して開発された。これらの構成によりメインフレームに匹敵するエラー許容性、低コスト性、効率性ならびに柔軟性のような可能性のある恩恵が提供される。しかしながら、これらやその他の恩恵の大半はこれらに固有の限界ならびに多くのアプリケーションが構築可能な標準プラットフォームの不足により実現されないままである。   In order to address the shortcomings of single physical servers, cluster configurations with many servers running in parallel or grids serving clients have been developed using load balancers. These configurations provide potential benefits such as error tolerance, low cost, efficiency and flexibility comparable to mainframes. However, most of these and other benefits remain unrealized due to their inherent limitations and the lack of a standard platform on which many applications can be built.

フィジカルクラスタリングだけでなく従来のソフトウェアシステムもまたアプリケーションレベルやオペレーティングシステムレベルでもクラスタリングを導入する努力がなされてきた。しかしながら、このようなソフトウェア構成の欠点には、クラスタリングがこれらのアプリケーションが限定された利用法でアプリケーション成果に埋め込まれる場合のインスタンスが含まれる。同様に、オペレーションシステムレベルのクラスタリングは魅力的だが、これらの分野の従来の努力はバーチャル化されなくてはならない数多くの抽象化作業によりこれまで成功してこなかった。   In addition to physical clustering, traditional software systems have also made efforts to introduce clustering at the application and operating system level. However, the disadvantages of such software configurations include instances where clustering is embedded in the application outcomes with limited use of these applications. Similarly, although operating system level clustering is attractive, traditional efforts in these areas have not been successful so far due to the many abstractions that must be virtualized.

フィジカルサーバとソフトウェアアプリケーション、そしてオペレーティングシステムクラスタリングに比べて、ネットワークレベルクラスタリングではいかなる問題も被らないだけでなく、ある種魅力的な恩恵が提供される。例えば、単独のバーチャルエンティティとしてサーバノードのクラスターにアドレスする能力はクライアントサーバプログラミングに有益な要件である。さらに、ノードのプールでバーチャルクラスターを容易に創造する能力がより良い利便性とメインフレームクラスの柔軟性に付加される。   Compared to physical servers and software applications and operating system clustering, network level clustering not only suffers from any problems, but also offers some attractive benefits. For example, the ability to address a cluster of server nodes as a single virtual entity is a useful requirement for client-server programming. In addition, the ability to easily create virtual clusters in a pool of nodes adds to the convenience and flexibility of the mainframe class.

従来のネットワークのレベルクラスタリングプラットフォームは、汎用的で広範なアプリケーションによる利用が可能でなくてはならない。これらのアプリケーションはウェブサーバ、記憶サーバ、データベースサーバ、科学的かつアプリケーショングリッドなコンピューティングにわたる。これらの従来型ネットワークレベルクラスターは計算能力とノード能力の結合が可能でなくてはならないので、アプリケーションは継ぎ目無しに徐々に規模が拡大する。既存のアプリケーションは最小の数あるいは変更で実行可能でなくてはならない。しかしながら、従来型ネットワークレベルクラスターは限られた成功しか収めてこなかった。   Traditional network level clustering platforms must be universal and usable by a wide range of applications. These applications range from web servers, storage servers, database servers, scientific and application grid computing. These traditional network-level clusters must be capable of combining computing power and node capacity, so applications will grow in size gradually without a seam. Existing applications must be able to run with a minimum number or changes. However, traditional network level clusters have had limited success.

「対称型マルチプロセッサ」(SMP)のアーキテクチャがある程度成功したのは、アプリケーションにとって処理と記憶の場所をトランスペアレントにしたバスの単純さのためである。クラスタリングに関してもまた、サーバノードを接続するバーチャルバスの簡明性によりノード位置のトランスペアレント性とノードIDのトランスペアレント性がもたらされる。しかしながら、このような従来型システムは、効率性のためにバスがクライアントアプリケーションによって直接、接続可能となる能力に欠ける。同様に、「ユーザーデータグラムプロトコル」(「UDP」)パケット放送ならびに多重放送をベースにしたバス類はデータ搬送の保証性に欠けアプリケーションレベルのクラスタリングが生じる。   The “Symmetric Multiprocessor” (SMP) architecture is somewhat successful because of the simplicity of the bus, which makes the processing and storage location transparent to the application. With respect to clustering, the transparency of the virtual bus connecting the server nodes also provides the transparency of the node location and the transparency of the node ID. However, such conventional systems lack the ability for the bus to be directly connectable by client applications for efficiency. Similarly, buses based on “User Datagram Protocol” (“UDP”) packet broadcasts and multiplex broadcasts lack the guarantee of data transport and cause application level clustering.

産業界で最も多く利用されている搬送保証のある唯一のプロトコルはTCP/IPである。搬送の保証性と遍在性が秩序化されたTCPデータ搬送の保証性により、これが特にバーチャル化に望ましいものとなる。しかしながら、接続当たりたった2つの端点のためのTCPのサポートによりその可能性が制限された。クラスターに対するインカミングリクエストを分配するような事前に割当されたタスク類のあるエレメント/ノード処理の非対称な構成により、生来的に柔軟性がないだけでなく、負荷の管理やバランスをとることが困難である。非対称型のノードはエラーやボトルネックとなる単一点であることが度々ある。MC(マルチコンピューティング)が成功するためには、非対称型ノード構成に対向して対称型の構成が必要である。   TCP / IP is the only protocol with guaranteed transport that is most widely used in the industry. This is particularly desirable for virtualization due to the guarantee of TCP data transport with ordered transport guarantees and ubiquity. However, the possibilities were limited by the support of TCP for only two endpoints per connection. Asymmetric configuration of element / node processing with pre-assigned tasks to distribute incoming requests to the cluster, not only inherently inflexible, but also difficult to manage and balance load It is. An asymmetric node is often a single point that becomes an error or bottleneck. In order for MC (multicomputing) to succeed, a symmetric configuration is required to face the asymmetric node configuration.

クライアントサーバ環境の非対称性に伴うもうひとつの問題は待ち時間である。スイッチとルーターによりデータ通過の待ち時間を減らす専用のハードウェアが採用される。データがノードのUDP/TCP/IPスタックを通過しなくてはならない場合、レプリカと処理により相当な待ち時間が加わる。それ故、最適な性能を発揮させるためには、システムは非対称構成をもつ調整ノードを通るデータの通過を避けなくてはならない。しかしながら、サーバのノードのCPUが大量のネットワークトラフィックを取り扱わなくてはならない場合にはアプリケーションの処理量とその処理に苦しめられる。従って、従来型システムは専用のアダプターカードあるいは端点での待ち時間を減らすとともに、アプリケーション性能を改善する「集積回路」チップのようなハードウェアアクセラレーターを利用しなくてはならない。これによりシステムのコストと複雑性が増す。   Another problem with asymmetry in the client / server environment is latency. Dedicated hardware is used to reduce the waiting time for data passing through switches and routers. When data must pass through the node's UDP / TCP / IP stack, considerable latency is added by replicas and processing. Therefore, for optimal performance, the system must avoid the passage of data through a coordination node that has an asymmetric configuration. However, when the CPU of the server node has to handle a large amount of network traffic, the processing amount of the application and its processing are suffered. Thus, conventional systems must utilize a dedicated adapter card or hardware accelerator such as an “integrated circuit” chip that reduces latency at endpoints and improves application performance. This increases the cost and complexity of the system.

低コストのエラー許容性は多くの企業アプリケーションによって大いに望まれる。固定化された数の余分のハードウェア部品が利用される解決策により柔軟性不足、容易な修復能力の不足、そして複雑性によるより高いコストに苦しめられる。今日の解決策により、エラー発生後の待機サーバへのサービスの迅速な切替えによって高度な使い勝手がもたらされる。待機システムは受動的であるので、そのリソースは高コストを招くので利用されないだけである。レプリカによる最も単純でしかも強力なエラー許容性の形態では、1接続にわたるサービスはノードのエラーによる中断が無く続けられる。   Low cost error tolerance is highly desired by many enterprise applications. Solutions that utilize a fixed number of extra hardware components suffer from inflexibility, lack of easy repair capabilities, and higher costs due to complexity. Today's solutions provide a high degree of usability by quickly switching services to a standby server after an error occurs. Since the standby system is passive, its resources are only unused because of high costs. In the simplest and most powerful form of error tolerance with replicas, services over one connection can continue without interruption due to node errors.

従来のクラスター上では、アクティブノードがタスクを実行するとともに受動ノードがその後の変更を更新する。多くのインスタンスにおいて、更新回数はクエリーのような他のタスクと比較してより少ない。マシンは、更新内容がレプリカに反映される間、負荷がすべてのレプリカと共有される場合に最大に利用される。レプリカの更新は同時に行われなくてはならないと同時に、一貫性のために同じ順番でなされなくてはならない。原子的搬送に関して、データはクライアントがデータの受取りを指示するTCP ACKで送られるまでにすべてのターゲット端点への搬送が保証される。レプリカのエラーの際には、残りのレプリカはエラー許容性に影響を与える接続の中断を回避しながらサービスの継続が可能である。非原子的レプリカは使い勝手に欠ける。具体的には、クライアントのリクエストがサービスのレプリカによって受け付けられる場合、それぞれによりある応答が生じる。クライアントがサーバを単独のエンティティとして見るので、応答の1インスタンスだけがクライアントに送り返されることが確保されなくてはならない。同様に、マルチクライアントレプリカが同一リクエストを送信しようとする場合、1インスタンスだけがサーバに送り出されることが確保されなくてはならない。従来のシステムでは原子性の提供に度々失敗するので、使い勝手と接続の中断を避けるエラー許容性に欠ける。   On a traditional cluster, the active node performs the task and the passive node updates subsequent changes. In many instances, the number of updates is less compared to other tasks such as queries. A machine is best utilized when the load is shared with all replicas while the updates are reflected in the replicas. Replica updates must be done at the same time and at the same time for consistency. With respect to atomic transport, data is guaranteed to be transported to all target endpoints before the client is sent with a TCP ACK that indicates receipt of the data. In the event of a replica error, the remaining replicas can continue service while avoiding connection interruptions that affect error tolerance. Non-atomic replicas lack usability. Specifically, when a client request is accepted by a service replica, each produces a certain response. Since the client sees the server as a single entity, it must be ensured that only one instance of the response is sent back to the client. Similarly, if a multi-client replica attempts to send the same request, it must be ensured that only one instance is sent to the server. Conventional systems often fail to provide atomicity, thus lacking ease of use and error tolerance to avoid disrupting connections.

従来のクラスタリングに伴うもうひとつの問題は負荷バランス調整である。任意のシステムに関して、ノード内に均等に負荷をバランスさせる能力は、最適なアプリケーション性能に必要である。しかしながら、従来のクラスタリングシステムでは、例えば、ラウンドロビン、内容再分割、優先順位重みづけといった負荷バランスの標準スキームのため、限られたサポートだけが提供される。さらに、多くの従来型クラスタリングシステムでは特定の負荷バランススキームのアプリケーションの実行サポートが不可能である。   Another problem with conventional clustering is load balancing. For any system, the ability to balance the load evenly within the node is necessary for optimal application performance. However, conventional clustering systems provide only limited support due to the standard scheme of load balancing such as round robin, content subdivision, and priority weighting. Furthermore, many conventional clustering systems are unable to support the execution of specific load balancing scheme applications.

多くのサービスは時間に依存するクラスター中で非常に変化幅の大きい負荷レベルをもつ。ランニングプロセスがアクティブサーバを退避させるために移動の必要があることがある。従来型クラスターシステムは容易に実行されかつサービスの中断がないようにクラスターにノード/レプリカの追加あるいは移動するためのサポートに欠けることが度々である。   Many services have very variable load levels in time-dependent clusters. The running process may need to be moved to evacuate the active server. Conventional cluster systems often lack support for adding or moving nodes / replicas to the cluster so that they are easily implemented and without service interruption.

ネットワークレベルのバーチャル化に取り組む数多くの試みがなされてきた。しかしながら、各試みにより未だに重大な欠点がいくつか生じている。例えば、ある従来型解決策は産業界で人気のある「ウェブサーバ」のクラスターにおける負荷均衡用装置である。米国特許番号6,006, 264号 および6,449, 647号に公開もされているこの負荷均衡装置は、インカミングクライアントTCP接続をサーバのプールにある、あるサーバに切替える。この処理用の従来型サーバはクライアントパケットをスイッチあるいはルーターによってすべてのノードに放送あるいは多重放送する「マイクロソフトのネットワーク負荷均衡ソフトウェアである。しかしながら、接続が一旦、マップされるとすぐ、同じサーバが1対1の従来型の関係のTCP接続の寿命のあいだ中、すべてのクライアントリクエストを取り扱う。   Numerous attempts have been made to tackle network level virtualization. However, each attempt still has some serious drawbacks. For example, one conventional solution is a load balancing device in a cluster of “web servers” popular in the industry. This load balancer, also published in US Pat. Nos. 6,006,264 and 6,449,647, switches incoming client TCP connections to a server in a pool of servers. A conventional server for this processing is “Microsoft network load balancing software that broadcasts or multiplex broadcasts client packets to all nodes via a switch or router. However, once a connection is mapped, the same server is Handles all client requests during the lifetime of a TCP connection in a conventional one-to-one relationship.

上述のような従来型システムに伴う問題は、サービスに複数のノード上で実行する異なる複数のタスクが含まれる場合に、1接続の間にクライアントが要求するすべてのサービスを実行できないマップされたサーバが一つでも存在すればサービスエラーとなるので、完全な解決が提供できない点にある。この点により、ページを提供する1タスクだけが多くのノードに複製されるウェブページ提供サービスに対しては、このようなシステムの利用は制限される。さらに、1サーバに対して実行される外部装置の任意のマッピングがボトルネックとなるとともに、単一点がエラーとなる。おまけに、1接続が2ヶ所の端点だけをもつので複製がサポートされない。従って、このような単一端点のTCPに関しては、更新はレプリカ上に反映されないため、使い勝手について相当の制限がある。   The problem with conventional systems as described above is that a mapped server that cannot perform all the services requested by the client during one connection when the service includes different tasks that execute on multiple nodes. If there is even one, a service error occurs, so a complete solution cannot be provided. This limits the use of such a system for web page provisioning services where only one task that provides a page is replicated to many nodes. Furthermore, any mapping of external devices executed for one server becomes a bottleneck and a single point becomes an error. Additionally, replication is not supported because one connection has only two endpoints. Therefore, with respect to such a single end point TCP, the update is not reflected on the replica, so that there is a considerable limitation in usability.

上記従来型システムの欠点のいくつかに取り組むため、別の従来型システムにより、1接続にわたるクライアントリクエストを異なるタスクを提供するノードに分散することが試みられた。ラヴィ・コック他はこの種の1システムをその論文「ハーフパイプアンカリング」で公開した。ハーフパイプアンカリングはバックエンドフォワーディングをベースとしている。このスキームにおいて、クライアントリクエストがサーバのクラスターに届く場合に、ある指定されたサーバがリクエストを受け付けるとともに、データの審査後、最適なサーバに転送する。最適サーバは、接続状態情報が与えられた後には、アドレスを最初のターゲットアドレスに合わせて変更してクライアントに直接、応答する。ここでは、単一のTCP端点がリクエストを分散するようノードに動的にマップされる。このスキームは仲介ノードがデータを妨害するとともにデータ内容に基づいてこれを分散するので「非対称的」方法の一例である。   In order to address some of the shortcomings of the conventional system described above, another conventional system has attempted to distribute client requests across a connection to nodes that provide different tasks. Ravi Kok et al. Published one such system in its paper “Half Pipe Anchoring”. Half-pipe anchoring is based on backend forwarding. In this scheme, when a client request reaches a cluster of servers, a specified server accepts the request and forwards it to the optimal server after reviewing the data. After the connection status information is given, the optimum server responds directly to the client by changing the address according to the initial target address. Here, a single TCP endpoint is dynamically mapped to a node to distribute requests. This scheme is an example of an “asymmetric” method because the intermediary node disturbs the data and distributes it based on the data content.

非対称的構成を行うことを試みるもうひとつの従来型システムは、EMICネットワーク社によって書かれた二冊の白書の中で公開されている。この従来型システムでは、指定されたノードはインカミングデータを妨害するだけでなく捕捉し、さらにその後、プロプライエタリープロトコルを利用してこれを多ノードに信頼できる形で搬送するためには1ノードだけがデータの転送を許されるとともに、データはその後これをクライアントに再転送するよう指定されたサーバに、まず転送されなくてはならない。ここでも、また、単一端点が動的にマップされるとともに、TCP接続は複製が始められる仲介ノードで終わる。このスキームにより、仲介ノードがデータを妨害すると同時に複製されるので「非対称的」方法のもうひとつの例である。   Another conventional system that attempts to perform an asymmetric configuration is published in two white papers written by EMIC Network. In this conventional system, the designated node not only intercepts incoming data but also captures it, and then only one node to reliably transport it to multiple nodes using a proprietary protocol. Is allowed to transfer data, and the data must then be transferred first to the server designated to retransmit it to the client. Again, the single endpoint is dynamically mapped and the TCP connection ends at the intermediary node where replication is initiated. This scheme is another example of an “asymmetric” method because the intermediary node is replicated at the same time as interfering with the data.

上述の両方のスキームでは、端点は様々なノードにマップされることができるが、2端点というTCPの定義は維持される。これらの従来型スキームにおける複製はプロプライエタリープロトコルを利用してアプリケーションレベルで行われる。さらに、これらの従来型スキームでは選択ノード類がリクエストを分散するアプリケーションレベルルーターとして作動する非対称的ノード構成が採用される。しかしながら、このような非対称性により、アーロン他による「ネットワークサーバに基づくクラスター中のスケーラブルな内容意識リクエスト分布」で注記されるスケーラビリティ限界が生まれる。これらの限界には単一点エラー、データ総量ボトルネック、より長い待ち時間による準最適性能ならびに場所のトランスペアレント性不足が含まれる。   In both schemes described above, endpoints can be mapped to various nodes, but the TCP definition of two endpoints is maintained. Replication in these conventional schemes is done at the application level using a proprietary protocol. In addition, these conventional schemes employ an asymmetric node configuration in which selected nodes act as application level routers that distribute requests. However, this asymmetry creates a scalability limit noted in “Scalable content-aware request distribution in clusters based on network servers” by Aaron et al. These limitations include single point errors, total data bottlenecks, sub-optimal performance with longer latency, and lack of location transparency.

従って、対称性システムとm対n接続(m、nは同じでも異なるものでもあって良い任意の整数)を提供するTCPの2端点の現状定義を利用するための方法の必要性がある。   Therefore, there is a need for a method for utilizing the current definition of the two endpoints of TCP that provides a symmetric system and an m-to-n connection (where m and n can be the same or different integers).

上記に言及された要件ならびにその他の要件はホスト対ホスト通信のTCPの現状範囲をグループ対グループ通信に拡張することによって、さらに詳しくは2接続端点の現状定義を対称に構成されるノードにかかる2グループの端点に拡張することによって満足される。このような各端点はTCPの秩序化された転送を維持する間に、独立にかつ平行して受信するとともに転送する資格がある。データは全グループあるいは構成に依存するサブセットに搬送される。必要なターゲット端点だけがTCPのACKがピアグループに送られるまでにデータを受取ることが必要とされる。   The requirements mentioned above as well as other requirements apply to nodes that are configured symmetrically by extending the current range of TCP for host-to-host communication to group-to-group communication, and more specifically for nodes configured symmetrically. Satisfied by extending to the end of the group. Each such endpoint is eligible to receive and forward independently and in parallel while maintaining TCP's ordered forwarding. Data is conveyed to all groups or subsets depending on the configuration. Only the required target endpoints are required to receive data before a TCP ACK is sent to the peer group.

ある実施例では、本発明により、1以上のIPアドレスを伴う単一のバーチャルエンティティとしてひとつのクラスターのノード群にアドレスすることが可能となる。クライアントグループとサーバグループ間の通信は、任意標準のTCP/IP端点が継ぎ目なしにグループとの通信が可能であるので標準に厳密に準拠されている。データはグループの対称に構成されたノードで終わる端点に原子的に搬送される。   In one embodiment, the present invention enables addressing a cluster of nodes as a single virtual entity with one or more IP addresses. The communication between the client group and the server group is strictly compliant with the standard because any standard TCP / IP endpoint can communicate with the group without a seam. Data is transported atomically to endpoints that end in symmetrically configured nodes of the group.

接続端点にインストールされたフィルターがアプリケーションセグメントに関係のない到来データをフィルターにかけて取り除く。アプリケーションセグメントのデータ搬送は適切に構成されるとともにインストールされるフィルターによって動的に制御される。さらに、フィルターはオプションとしてコピーを仲介させずにインカミングデータの投入をターゲットアプリケーションに直接実行する。   A filter installed at the connection endpoint filters out incoming data not related to the application segment. Application segment data delivery is dynamically configured and appropriately controlled by installed filters. In addition, the filter optionally performs input of incoming data directly to the target application without mediating copying.

1接続にわたる入出力はノードがお互いに独立して平行して受信できるとともに転送できるので結合が解かれる。すべての転送はTCP仕様毎にシーケンシャルであるとともに、ノード間の転送制御はグループノード同士のラウンドロビンあるいは転送リクエスト要因同士のラウンドロビンあるいはアプリケーション特有のスキームに準拠して秩序化される。ノードは平行して再転送可能であるとともにこれらの間で再転送するためのシンクロナイゼーションの追加は不要である。   Input / output over one connection can be received and transferred independently and in parallel with each other, so that the connection is broken. All transfers are sequential for each TCP specification, and transfer control between nodes is ordered according to a round robin between group nodes, a round robin between transfer request factors, or an application specific scheme. Nodes can be retransmitted in parallel and no additional synchronization is required to retransmit between them.

スケーラビリティならびに負荷分担については、アプリケーション機能はグループノードの中で分散される。これを行うためには、アプリケーションはロジカルにセグメント化されて、サブセットのアプリケーションがそれぞれ実行される。TCP接続に到着するインカミングリクエストはその後、効率的に負荷を分配するグループにあるセグメントまで搬送される。アプリケーションのインスタンスに対するリクエストの一定のセットのみを搬送することにより、ロジカルセグメンテーションがアプリケーションコードの変更無しでも実行可能となる。アプリケーションセグメントはノードからノードへと接続の中断無しに動的に移動されることもある。   For scalability and load sharing, application functions are distributed among group nodes. To do this, the application is logically segmented and each subset of applications is executed. An incoming request arriving on a TCP connection is then transported to a segment in a group that efficiently distributes the load. By carrying only a certain set of requests for application instances, logical segmentation can be performed without application code changes. Application segments may be moved dynamically from node to node without interruption of connection.

さらに、1ノードは該グループによって示されるバーチャルエンティティに対して1接続を創り出すことによってグループの他のノードと通信可能であることが注目される。この点によりグループノード間の通信に向けたすべての上記特徴が提供される。   It is further noted that a node can communicate with other nodes in the group by creating a connection to the virtual entity represented by the group. This provides all the above features for communication between group nodes.

本システムはアプリケーションを実行するノードがエラーとなる場合、グループ内の残りのアプリケーションレプリカのあるセットが接続とサービス提供の中断をせずにサービス提供を続けるので、エラー許容性がある。ノードは、アプリケーションに対してトランスペアレントな方法で、サービスの一定品質を維持するために追加可能であるか、あるいはグループから動的に退避可能である。ノード間の負荷均衡をはかるか、あるいはノードを退避させる目的のためには、システムはトランスペアレントにアクティブサービスを移動させるとともにグループ内部でタスクの再分配を行う。   This system is error tolerant when a node executing an application fails, because a set of remaining application replicas in the group continues to provide service without interrupting connection and service provision. Nodes can be added in a manner that is transparent to the application to maintain a constant quality of service or can be dynamically evacuated from the group. For the purpose of balancing the load between nodes or evacuating a node, the system moves the active service transparently and redistributes the tasks within the group.

ひとつのグループのノード群上で実行されるアプリケーション類は、クライアント/サーバアプリケーションプログラミング、ならびに、リソース管理を単純化する単一のバーチャルエンティティとして該グループの残りを見るとともに実行させることが可能である。本発明のある実施例によると、コード変更の必要が無いアプリケーションに対してトランスペアレントな方法で度々、グループノード上で独立して実行されるアプリケーションが1以上のセグメントに分割可能となる。   Applications running on a group of nodes can see and run the rest of the group as a single virtual entity that simplifies client / server application programming as well as resource management. According to one embodiment of the present invention, an application that is often executed independently on a group node can be divided into one or more segments in a manner that is transparent to applications that do not require code changes.

該システムは様々なアプリケーションセグメントに1接続にわたるインカミングタスクを動的かつ分かりやすく分配することによって、1グループのノード同士で処理の負荷を分担する。1接続上に到着する単一リクエストは、結束して作動する複数のセグメントによってサービスされることがあり、ノード間の計算あるいは処理のよりきめの細かい分配を可能にする。該システムにより1セグメントのマルチインスタンスの並列実行が可能となる。リクエスト類は類推性に基づくラウンドロビン、負荷最小化ノード、類推準拠、コンテンツハッシングのようなスキームに基づいて選択されたインスタンスに搬送される。   The system distributes the processing load among a group of nodes by dynamically and easily distributing incoming tasks over one connection to various application segments. A single request arriving on a connection may be serviced by multiple segments that work together, allowing a finer distribution of computation or processing between nodes. The system enables parallel execution of 1-segment multi-instances. Requests are delivered to instances selected based on schemes such as analogy-based round robin, load minimization nodes, analogy compliance, and content hashing.

1接続上のインカミングリクエストはエラー許容性を求めて、複数のセグメントインスタンスまで原子的に搬送される。結果はオプションとして比較されるとともに、単一インスタンスが出力される。セグメント/ノードのエラーがあっても、残りのセグメントインスタンスが接続を中断することなくサービスを続ける。   An incoming request on one connection is transported atomically to multiple segment instances for error tolerance. The results are optionally compared and a single instance is output. If there is a segment / node error, the remaining segment instances continue to service without interrupting the connection.

該システムにより接続端点でフィルターを制御しかつ構成する細かいグラニュラリティの方法でタスクを分散させることによって該システムの柔軟かつ外部的な管理が可能となる。退避される場合、ノードの負荷責任範囲はラウンドロビンあるいは負荷最小化あるいはアプリケーション専用のスキームを利用して別のノードに移動される。システムはリソースを変化するニーズを満たすプールからグループに自動的かつ動的に追加する。同様に、ノードは動的かつ自動的に退避されかつ準備される。システムは自動的かつ動的にリソースを付加するかあるいは退避させるサービスの個々の品質を維持する。   The system allows flexible and external management of the system by distributing tasks in a granular manner that controls and configures the filters at the connection endpoints. When evacuated, the load responsibility range of a node is moved to another node using round robin, load minimization or an application specific scheme. The system automatically and dynamically adds resources from pools to groups that meet changing needs. Similarly, nodes are evacuated and prepared dynamically and automatically. The system maintains the individual quality of services that automatically and dynamically add or evacuate resources.

本仕様書に説明される特徴と利点は必ずしもすべてを包括してはおらず、特に、図面、仕様書、そして請求項を見れば技術に普通に熟練した人にとって多くの追加の特徴なり利点なりが明らかとなろう。さらに、仕様書に利用される言語は主として読み易さと直感上の目的で選択されたものであって、発明のテーマ事項を描写したりあるいは制限するために選択されたわけではないことが注目されるはずである。   The features and advantages described in this specification are not necessarily all inclusive, and many additional features and advantages will be apparent to those of ordinary skill in the art, especially when looking at the drawings, specifications and claims. It will be clear. In addition, it is noted that the language used in the specification was chosen primarily for readability and intuitive purposes, and not to depict or limit the subject matter of the invention. It should be.

本仕様書に説明される特徴と利点は必ずしもすべてを包括してはおらず、特に、図面、仕様書、そして請求項を見れば技術に普通に熟練した人にとって多くの追加の特徴なり利点なりが明らかとなろう。さらに、仕様書に利用される言語は主として読み易さと指示上の目的で選択されたものであって、発明のテーマ事項を描写あるいは制限するために選択されたわけではないことが注目されるはずである。   The features and advantages described in this specification are not necessarily all inclusive, and many additional features and advantages will be apparent to those of ordinary skill in the art, especially when looking at the drawings, specifications and claims. It will be clear. In addition, it should be noted that the language used in the specification was selected primarily for readability and instructional purposes, and not to depict or limit the subject matter of the invention. is there.

本発明の詳細な説明Detailed Description of the Invention

本発明には、例えばTCP/IPを拡張する原子的多点搬送ならびに多点転送を伴う2つのノードセット間で信頼性がありかつ秩序化されたデータ通信用に利用可能となったシステムが含まれる。本発明はグループ間のデータトラフィックに関するTCP仕様を維持する対称型のグループ対グループ通信が含まれる信頼性のあるホスト対ホスト通信のTCPの概念を拡張するものである。さらに、本発明は、現在、単一の接続にわたり通信中に少なくとも2つの端点グループが含まれるTCP接続の2端点の定義を拡張するものである。   The present invention includes a system that has become available for reliable and ordered data communication between two node sets with, for example, atomic multipoint transport and multipoint transfer extending TCP / IP It is. The present invention extends the TCP concept of reliable host-to-host communication, including symmetric group-to-group communication that maintains a TCP specification for data traffic between groups. Furthermore, the present invention extends the definition of the two endpoints of a TCP connection that currently includes at least two endpoint groups in communication over a single connection.

本発明では、接続の端点はグループノードで終わる。複数のノードがデータと一緒に搬送されなくてはならない場合には、搬送は原子的に実行される。複数のノードから発生するデータに関するオプションとしては、単一データインスタンスが転送される。さらに下記で説明されるように、各端点は独立して作動するreceiveHeadとsendHeadから構成される。   In the present invention, the connection endpoint ends at a group node. If multiple nodes must be transported with the data, the transport is performed atomically. As an option for data originating from multiple nodes, a single data instance is transferred. As will be further described below, each endpoint is composed of receiveHead and sendHead that operate independently.

はじめに
本発明のある実施例では、1ノードには、1ネットワークにつき1接続例えば、汎用目的の計算機、あるいは通信に関連したネットワーク向けのデータ処理装置と機能するよう構成されたマイクロプロセッサあるいはソフトウェアがあるその他の装置のようなデータ処理装置が含まれる。1グループは対称的に構成される1以上のノードの集まりを参照する。1アプリケーションセグメントは、アプリケーションあるいは様々なグループのノード上で実行される他のアプリケーションセグメントと関連してサービスされて良いアプリケーションのセグメントを参照する。1アプリケーションは、1以上のアプリケーションセグメントから構成されるとともに、1アプリケーションセグメントは1以上のプロセスから構成される。
Introduction In one embodiment of the present invention, a node has one connection per network, for example, a general purpose computer, or a microprocessor or software configured to function with a network-related data processor for communication. Data processing devices such as other devices are included. One group refers to a collection of one or more nodes configured symmetrically. An application segment refers to a segment of an application that may be serviced in conjunction with an application or other application segment running on various groups of nodes. One application is composed of one or more application segments, and one application segment is composed of one or more processes.

sendHeadはデータ転送を制御するとともにノードにおける転送状態を維持するTCP接続の転送端を参照する。receiveHeadは接続上のデータの受付を制御するとともにノードにおける受信状態を維持するTCP接続の受信端部を参照する。アクティブsendHeadは、例えば、データのシーケンスナンバーや最新応答のシーケンスナンバーといった最新の転送状態情報を持つよう意図されるsendHeadを参照する。   sendHead refers to the transfer end of a TCP connection that controls data transfer and maintains the transfer state at the node. receiveHead controls the reception of data on the connection and refers to the receiving end of the TCP connection that maintains the reception state at the node. The active sendHead refers to a sendHead intended to have the latest transfer status information such as the sequence number of data and the sequence number of the latest response.

バスコントローラは接続の確立ならびに終了プロセスをピアグループと調整するノードを制御する、および/または、参照する。1信号は1つのロジカルバスにわたるノードグループ内部で交換されるメッセージを参照する。信号のソースとターゲットが同じノード内にある場合、内部的にこれを受信する結果になることもあるが、信号は発信されない。1接続の端点は予め一致された1組のシーケンスナンバーに基づく順番にピアグループとデータを交換するTCPのようなスタックを参照する。1接続の端点は少なくとも1つの出力データストリームの始点ならびに入力データストリームの終点を持っている。1リクエストは、インカミングデータストリームの1選択セグメント、例えば、サービスのためのクライアントリクエストを参照する。   The bus controller controls and / or references the node that coordinates the connection establishment and termination process with the peer group. One signal refers to a message exchanged within a node group across one logical bus. If the source and target of the signal are in the same node, it may result in receiving it internally, but no signal is emitted. The endpoint of one connection refers to a TCP-like stack that exchanges data with peer groups in order based on a pre-matched set of sequence numbers. An end point of a connection has at least one output data stream start point and an input data stream end point. One request refers to one selected segment of the incoming data stream, eg, a client request for a service.

システム概要
次に、図1aを参照すると本発明のある実施例による通信システムが図示されている。本通信システムには第1グループ120と第2グループ160間を結合するTCP接続130が含まれる。例を通じて、第1グループ120には第1、第2そして第3のメンバーノード、100a、100b。100cがあるとともに、第2グループ160には第1および第2のメンバーノード、150x、150yがある。どちらのグループのメンバーノードにも各ノードには1TCP接続に対して等しいアクセスがあるとともに、独立してかつ平行して実行されるので対称に構成される。第1データストリーム110および第2データストリーム111は、通信システムの第1グループ120と第2グループ160間を流れることが可能である。
System Overview Referring now to FIG. 1a, a communication system according to one embodiment of the present invention is illustrated. The communication system includes a TCP connection 130 that couples the first group 120 and the second group 160. Throughout the example, the first group 120 includes first, second and third member nodes, 100a, 100b. There are 100c and the second group 160 has first and second member nodes 150x, 150y. Both group member nodes are configured symmetrically because each node has equal access to one TCP connection and is executed independently and in parallel. The first data stream 110 and the second data stream 111 can flow between the first group 120 and the second group 160 of the communication system.

第1アプリケーションセグメント135および第2アプリケーションセグメント136により120上のサーバアプリケーションが構成される。第1アプリケーションセグメント135にはレプリカ135x、135yの1セットがあるとともに、第2アプリケーションセグメント136にもまた、レプリカ136y、136xの1セットがある。アプリケーションセグメントレプリカ135x、135yはそれぞれノード100aおよび100b上で実行される一方、アプリケーションセグメントレプリカ136x、136yはそれぞれノード100bおよび100c上で実行される..。グループ160におけるクライアントアプリケーションはレプリカ151aおよび151bを伴うアプリケーションセグメント151から構成される。   The first application segment 135 and the second application segment 136 constitute a server application on 120. The first application segment 135 has one set of replicas 135x and 135y, and the second application segment 136 also has one set of replicas 136y and 136x. Application segment replicas 135x and 135y are executed on nodes 100a and 100b, respectively, while application segment replicas 136x and 136y are executed on nodes 100b and 100c, respectively. Client applications in group 160 are composed of application segments 151 with replicas 151a and 151b.

第1グループ120のアプリケーションセグメント135および136は第2グループ160のセグメント151と接続130上で通信する。該接続130の2つのデータストリーム110および111はTCPプロトコルに従う。接続130には第1グループ120において3ヶ所の異なる接続端点130a、130b、130cが、また同一接続上のグループ160においては2ヶ所の異なる接続端点130x、130yがあって良い。   Application segments 135 and 136 of the first group 120 communicate over the connection 130 with the segment 151 of the second group 160. The two data streams 110 and 111 of the connection 130 follow the TCP protocol. The connection 130 may have three different connection end points 130a, 130b, 130c in the first group 120, and two different connection end points 130x, 130y in the group 160 on the same connection.

各グループ120、160はインターネットプロトコル(「IP」)アドレス121、161のそれぞれのグループに割り当てられる。グループはノードが構成される間、互いを単一エンティティとみなす。2つのグループ120、160間の通信はお互いにグループIPアドレス121、161を通じて相互にアドレスされる。例えば、セグメント151からのリクエストが第1グループ120に届く場合に、これはグループIPアドレス161から来るデータとして見られる。同様に、第2グループ160はグループアドレス121までターゲットされるデータを送信する。   Each group 120, 160 is assigned to a respective group of Internet Protocol (“IP”) addresses 121, 161. Groups consider each other as a single entity while the nodes are configured. Communications between the two groups 120, 160 are addressed to each other through group IP addresses 121, 161. For example, when a request from the segment 151 arrives at the first group 120, this is seen as data coming from the group IP address 161. Similarly, the second group 160 transmits data targeted up to the group address 121.

第1グループ120における端点130a、130b、130cは、1以上のアプリケーションセグメントレプリカ135a、135b、136a、136bがインカミングリクエストと共に搬送されるように、設定されることができる。データが異なる方針によってアプリケーションセグメントに搬送される例は、すべてのレプリカ、1レプリカ、すべてのアプリケーションセグメントおよび選択アプリケーションセグメントであり、リクエスト内容に基づかれたり、ラウンドロビンリクエスト分配に基づかれたり、個別ノードに対するマップリクエストをマップするハッシングスキームや優先順位の重み付け等に基づかれて決定されルーターゲットである。このスキーム修正(「書き込み」)では、リクエストはアプリケーションセグメントのすべてのレプリカに搬送される一方で、「読み込み」リクエストはひとつだけの選定レプリカにのみ搬送される。   The endpoints 130a, 130b, 130c in the first group 120 can be set such that one or more application segment replicas 135a, 135b, 136a, 136b are carried with the incoming request. Examples of data being transported to application segments by different policies are all replicas, one replica, all application segments and selected application segments, based on request content, round robin request distribution, or individual nodes The target is determined based on the hashing scheme for mapping the map request to the priority, the priority weighting, and the like. In this scheme modification (“write”), the request is carried to all replicas of the application segment, while the “read” request is carried to only one selected replica.

第2グループ160における130xあるいは130yのいずれかの端点はサーバグループ120にリクエストを送信できる。第1グループ120の端点130a、130b、130cにおける1以上のsendHeadは、設定に依存するデータを受信する。1グループ120の端点130a、130b、130cは、第2グループ160の端点130x、130yにおいて受信される返信データを送信できる。インカミングデータの一部あるいはすべてを受信することを望むアプリケーションプロセスは、データの受領についてクライアントの応答前にこれを受信したことが保証される。データ転送のTCPのシーケンシャルオーダーを維持するために、TCPシーケンスナンバーはデータ転送が始まるまでにシーケンシャルオーダーで割り当てられる。   Either the endpoint 130x or 130y in the second group 160 can send a request to the server group 120. One or more sendHeads at the end points 130a, 130b, 130c of the first group 120 receive data depending on the setting. The end points 130a, 130b, and 130c of one group 120 can transmit the reply data received at the end points 130x and 130y of the second group 160. An application process that wants to receive some or all of the incoming data is guaranteed to have received it before the client responds to receipt of the data. In order to maintain a TCP sequential order for data transfer, TCP sequence numbers are assigned in sequential order before data transfer begins.

オプションとして、第2グループ160のレプリカ151aおよび151bによって出力された写しのデータは、通信システムによって第1グループ120に転送されるために単一のインスタンスに縮小される。同様にして、第1グループ120のアプリケーションセグメント135、136のレプリカの出力もまた、同じものに縮小可能である。多くの場合、リクエストは設定に応じて1つのレプリカのみ搬送されるので、135a、135b、136a、136bのレプリカが出力を必ず生じなくてはならないという必要は必ずしもない。   Optionally, the duplicate data output by the replicas 151a and 151b of the second group 160 is reduced to a single instance for transfer to the first group 120 by the communication system. Similarly, the replica outputs of the application segments 135 and 136 of the first group 120 can also be reduced to the same. In many cases, only one replica is carried in accordance with the setting, so it is not always necessary that the replicas of 135a, 135b, 136a, and 136b must produce output.

本発明による通信システムはクライアント/サーバリクエストならびに原子的である有益な応答を提供する。つまり、これらは、2グループにわたる複数処理を可能にすることにより単一接続上でデータを送受信して、バイトのひとつの連続したシーケンスとして送信あるいは受信されるものである。   The communication system according to the present invention provides client / server requests as well as useful responses that are atomic. That is, they transmit and receive data on a single connection by allowing multiple processing across two groups and are transmitted or received as one continuous sequence of bytes.

グループ120と160との間のプロトコルはTCPであるとともに、データは従来のTCP毎として送信されたシーケンシャルオーダーで搬送されるよう保証される。複数端点にターゲットされた場合、データはクライアントがデータの受領を指示するTCP ACKセグメントで送信されるまでにすべてのターゲット端点に搬送されることが保証される。オプションとして、レプリカ出力が単一コピー出力の転送に縮小されなくてはならない場合、すべてのノードが同じデータを出力してもデータは転送されるので出力は原子的であることが保証される。しかしながら、結果が一致しない場合には、アプリケーションは多数決一致あるいは正解あるいは正常な結果等に基づいて転送する出力をオプションとして選択して良い。   The protocol between groups 120 and 160 is TCP and data is guaranteed to be carried in sequential order sent as per conventional TCP. When targeted to multiple endpoints, data is guaranteed to be delivered to all target endpoints before being sent in a TCP ACK segment that directs the client to receive the data. Optionally, if the replica output must be reduced to a single copy output transfer, the output is guaranteed to be atomic because the data is transferred even if all nodes output the same data. However, if the results do not match, the application may optionally select an output to be transferred based on the majority match, correct answer or normal result.

アプリケーションセグメンテーションに関して、アプリケーション処理は、通常、処理用にはインカミングデータストリームの選択部分だけを伴って搬送される。例えば、第2データストリーム111上に届くリクエストはアプリケーションセグメントを選択するために搬送可能である。アプリケーション処理までのデータの搬送順序はこれがRFC793によって指定された通りに送信された順序であるよう保証されなくてはならない。すなわち、一定のデータがあるアプリケーションセグメントに搬送されるまでに、ストリームに到着したすべての先行データがそのターゲット端点まで正常に搬送されなくてはならない。   With respect to application segmentation, application processing is usually carried with only a selected portion of the incoming data stream for processing. For example, a request arriving on the second data stream 111 can be carried to select an application segment. The order of data transport until application processing must be guaranteed that this is the order in which it was transmitted as specified by RFC793. That is, by the time certain data is conveyed to an application segment, all preceding data that arrives in the stream must be successfully conveyed to its target endpoint.

図1bを参照すると、第1グループ120は第1、第2および第3ノード100a、100b、100cから構成される。第1グループ120と第2グループ160との間の接続130にはアウトゴーイングおよびインカミングデータストリーム110、111がある。各ノード100aから100cまでにはグループ対グループ通信スタック130a、から130cまでがそれぞれある。ノードのすべてに対するデータの搬送はノード100aから100cまでとそれぞれ結合されるスイッチ141a、から141cまでを通る。イーサネット(登録商標)のような普及しているハードウェア技術は信頼性がないので、ベースとなるハードウェアによるスイッチ141a、から141cまでに対する搬送保証に関してはいかなる想定もなされない。100a、から100cまでの各ノードあるいはそのサブセットのいずれかまでのデータの搬送は選択的であって良いか、あるいはベースとなるハードウェア装置によっては、搬送は全く不可能である。   Referring to FIG. 1b, the first group 120 includes first, second, and third nodes 100a, 100b, and 100c. The connection 130 between the first group 120 and the second group 160 includes outgoing and incoming data streams 110, 111. Each node 100a to 100c has a group-to-group communication stack 130a to 130c, respectively. The transport of data to all of the nodes passes through switches 141a to 141c which are respectively coupled to nodes 100a to 100c. Since popular hardware technology such as Ethernet (registered trademark) is not reliable, no assumption is made regarding the transport guarantee to the switches 141a to 141c by the base hardware. The transport of data to each of the nodes 100a to 100c or any subset thereof may be selective or may not be possible at all, depending on the underlying hardware device.

インカミングデータは、IPアドレス、および/または、ポートに準拠して、スイッチ141a、から141cまでによって正規のTCP/IPスタック140a、から140cまで、あるいはグループ対グループ通信スタック130a、から130cまでのいずれかに切替えられる。ノード100のアプリケーション処理142は標準のTCPスタック140を利用して通信する。アプリケーションセグメント135x、y、136x、yはグループ通信スタック130a、から130cまでとそれぞれ通信する。搬送制御信号105がグループ131の操作を調整するとともに制御する。コントロールバス105上で送信される信号の範囲は第1グループ120に限定される。バーチャルバス143は第1および第2データストリーム110、111およびグループ120をスパンキングする制御信号105から構成される。このバスはピアグループによってTCP接続130に直接、接続される。   Incoming data can be either regular TCP / IP stacks 140a, 140c, or group-to-group communication stacks 130a, 130c, through switches 141a, 141c, depending on IP address and / or port. It is switched to. The application processing 142 of the node 100 communicates using the standard TCP stack 140. Application segments 135x, y, 136x, y communicate with group communication stacks 130a through 130c, respectively. The transport control signal 105 adjusts and controls the operation of the group 131. The range of signals transmitted on the control bus 105 is limited to the first group 120. Virtual bus 143 is comprised of first and second data streams 110, 111 and control signal 105 that spans group 120. This bus is connected directly to TCP connection 130 by a peer group.

バーチャルバス143の代替えはノード間の点対点通信であるとともに、これにはバンド幅のより好都合な利用法がある。しかしながら、これにより、他のノードならびにこれらのアドレスや役割を見失わないため通信システムに各ノードが必要となる。ある実施例では、ロジカルバスモデルは場所とIDのトランスペアレント性のため制御メッセージを出すことよりも好まれる。   An alternative to virtual bus 143 is point-to-point communication between nodes, which has a more convenient use of bandwidth. However, this requires each node in the communication system in order not to lose sight of other nodes and their addresses and roles. In one embodiment, the logical bus model is preferred over issuing control messages due to location and ID transparency.

図1cを参照すると、本発明のある実施例による接続端点130aが図示されている。一般的に、スイッチ141は標準TCPスタックあるいはグループ対グループ通信スタックか「インターネットプロトコル」(「IP」)のどちらかに入力171データを向ける。フラグメント化されたIPパケットについては、170が171に移される前に再アセンブリーを実行する。入力パケットがフラグメント化されない場合には、いくつか基本的な一貫性チェックの後に入力内容フィルター171に直接渡されることができる。入力内容フィルター171は、これにアプリケーションセグメント(例えば、135x、135yあるいは136x)に渡されるデータが含まれるかどうか決定するために入力内容、および/または、パケットヘッダーを調べる。   Referring to FIG. 1c, a connection end point 130a according to an embodiment of the present invention is illustrated. Generally, switch 141 directs input 171 data to either a standard TCP stack or a group-to-group communication stack or “Internet Protocol” (“IP”). For fragmented IP packets, reassembly is performed before 170 is moved to 171. If the input packet is not fragmented, it can be passed directly to the input content filter 171 after some basic consistency checks. Input content filter 171 examines input content and / or packet headers to determine whether this includes data passed to an application segment (eg, 135x, 135y, or 136x).

通信システムがパケットをもうどこにも渡さないよう決定する場合は、何の措置もなく廃棄されると同時に、いずれのメモリも解放される。そうでない場合は、入力内容フィルター171はアプリケーションに渡されるパケットのセグメントにマークを付ける。パケットはその後、チェックサム計算やその他の一貫性チェックが含まれる完全な認証のためにIP入力処理レイヤー172に渡される。無効なパケットはいずれもそれ以上の処理はされずに廃棄される。発生するパケットはその後、グループ対グループTCPレイヤー173に渡される。グループ対グループTCPレイヤー173は、グループノード(例えば、120,160)と調整するとともに、ピアグループに対する応答のようなTCP仕様要件を満足させるためデータの受領を制御する。グループ対グループTCPレイヤー173は接続の入力TCP状態を維持するとともに、データ経路137を通じてデータをソケットに渡す。データ経路138はソケットインターフェイスからスタックに転送データ経路を指示する。   If the communication system decides not to pass the packet anywhere else, it discards without any action and at the same time frees any memory. Otherwise, the input content filter 171 marks the segment of the packet that is passed to the application. The packet is then passed to the IP input processing layer 172 for full authentication including checksum calculation and other consistency checks. Any invalid packet is discarded without further processing. The resulting packet is then passed to the group-to-group TCP layer 173. The group-to-group TCP layer 173 coordinates with group nodes (eg, 120, 160) and controls the receipt of data to satisfy TCP specification requirements such as responses to peer groups. The group to group TCP layer 173 maintains the input TCP state of the connection and passes data to the socket through the data path 137. Data path 138 directs the transfer data path from the socket interface to the stack.

ユーザーソケットは出力内容フィルター174を起動させるデータを送信する。ある実施例では出力内容フィルター174はインストールされないので、操作は実行されない。エラー許容性に関するフィルターは同時にデータを他のレプリカセグメント出力と突き合わせるとともに単一の出力インスタンスを転送する。ピアグループに転送される出力インスタンスの選択は対等出力、多数決一致、正解、あるいは正常操作出力および同様のようなフィルターに設定される方針に依存する。セグメントインスタンスの転送にエラーがあると、レプリカが引継ぐとともに、接続を中断することなく転送を継続する。ピアグループにおける正常な出力インスタンスの受付において、レプリカはデータを廃棄するとともに、メモリを解放する。出力内容フィルター174はデータを転送のためグループTCP出力レイヤー175に渡す。グループTCP出力レイヤー175はデータ転送を制御するとともに、グループノードに関連する転送状態を維持する。グループTCP出力レイヤー175はTCPによって規定される通りのシーケンシャルオーダーでデータをピアグループに転送するそのグループノードとともに作動する。グループTCP出力レイヤー175は転送データとともにIP出力レイヤー176を通る。IP出力レイヤー176はデータに関する標準IP機能を実行するとともに、データ転送のためデバイスドライバー177に引き渡す。 The user socket transmits data that activates the output content filter 174. In one embodiment, the output content filter 174 is not installed, so no operation is performed. The error tolerance filter simultaneously matches data with other replica segment outputs and forwards a single output instance. The selection of the output instance to be transferred to the peer group depends on the policy set in the filter such as peer output, majority match, correct answer, or normal operation output and the like. If there is an error in the transfer of the segment instance, the replica takes over and continues the transfer without interrupting the connection. Upon receipt of a normal output instance in the peer group, the replica discards the data and releases the memory. The output content filter 174 passes the data to the group TCP output layer 175 for transfer. The group TCP output layer 175 controls data transfer and maintains a transfer state related to the group node. The group TCP output layer 175 operates with its group node that transfers data to the peer group in sequential order as defined by TCP. The group TCP output layer 175 passes through the IP output layer 176 together with the transfer data. The IP output layer 176 executes a standard IP function related to data and passes it to the device driver 177 for data transfer.

出力内容フィルター174による出力突き合わせ結果がノードによって異なって生じる結果を示す場合、サブセットのレプリカがエラーと見なされるとともに、残る端点では接続の中断なしにサービスが続けられる一方で、以降、接続上のサービスから除外される。端点の除外のある、ある実施例では、このような除外は過半数の端点が他を除外する結果と一致するスキームに準拠している。代案としては、端点の除外はオペレーションにエラーがあった場合には生じても良い。端点の除外はまた、フィルターとともにプログラム可能である任意のアプリケーションの特定スキームからのものであることもあり得る。データの転送中に端点のエラーがあると、レプリカの端点が接続の中断なく転送を終わらせることがある。   If the output match result by the output content filter 174 indicates a result that varies depending on the node, the replica of the subset is regarded as an error, and the service is continued without interruption of the connection at the remaining endpoints. Excluded from. In some embodiments with endpoint exclusion, such exclusion is in accordance with a scheme in which the majority of endpoints are consistent with the result of excluding others. As an alternative, the exclusion of endpoints may occur if there is an error in the operation. The endpoint exclusion can also be from any application specific scheme that is programmable with the filter. If there is an end point error during data transfer, the end point of the replica may end the transfer without interrupting the connection.

図1dを参照すると、本発明のある実施例に応じて、コンテンツプロセッサが入出力データを調べる場合のグループ対グループ通信スタックの接続端点130が図示されている。コンテンツフィルトレーションはコンテンツプロセッサの関数である。コンテンツプロセッサはアプリケーションメモリ中でデータが置かれなければならない場所、全部のリクエストが受信されるようにアプリケーションに知らせるためのデータの順序ならびに時間を決定する。ネットワークインターフェースデバイスドライバー177と連動して作動し、データはダイレクトメモリアクセスコントローラ196によって、ネットワークインターフェース193とアプリケーションメモリ190との間でコピーされる。   Referring to FIG. 1d, a connection end point 130 of a group-to-group communication stack is illustrated when a content processor examines input / output data in accordance with an embodiment of the present invention. Content filtration is a function of the content processor. The content processor determines where data must be placed in the application memory, the order of data and the time to inform the application that all requests are received. It operates in conjunction with the network interface device driver 177 and data is copied between the network interface 193 and the application memory 190 by the direct memory access controller 196.

新たなインカミングリクウェストデータを調べて、コンテンツプロセッサはアプリケーションスペースにおいてメモリ192を割り当てる。割当てサイズはアプリケーション毎に個別であり、通常は、ピアからの完全なリクエストデータのサイズである。リクエストデータが残ることにより、完全なリクエスト用のメモリが割り当てられたとしても割当ては必要とならない。出力データ193はアプリケーション自身によって割り当てられる。さらに、リクウェスト/レスポンスデータ194、195のセグメントのコピーがあっても良い。このスキームに関して、アプリケーションデータは、関連するメモリのコピーを介することなく、ネットワークインターフェースの入力/出力バッファーとアプリケーションメモリ間で直接コピーされる。   Examining new incoming request data, the content processor allocates memory 192 in the application space. The allocation size is individual for each application and is usually the size of the complete request data from the peer. Since the request data remains, no allocation is required even if a complete request memory is allocated. The output data 193 is assigned by the application itself. Further, there may be a copy of the segment of the request / response data 194, 195. With this scheme, application data is copied directly between the network interface input / output buffers and the application memory without going through the associated memory copy.

図2を参照すると、第1グループ120はノード100(100a,b,c)が含まれるサーバのセットであって良い。第2グループ160はクライアントノード150(150x,y)のセットが含まれて良い。各グループ120、160内のノード100、150は接続デバイス180を経由して相互に接続される。接続デバイス180には通常放送/多重放送デバイス、例えば、イーサネット(登録商標)バスあるいはレイヤースイッチ2/3が含まれて良い。ネットワーク189は任意の従来型ネットワーク、例えば、2つのノードグループが接続されるローカルエアリアネットワーク(「LAN」)あるいはイーサネット(登録商標)であって良い。両方のピアグループが接続デバイス180を経由して直接接続される場合にはネットワーク189は不要である。   Referring to FIG. 2, the first group 120 may be a set of servers including the nodes 100 (100a, b, c). The second group 160 may include a set of client nodes 150 (150x, y). The nodes 100 and 150 in each group 120 and 160 are connected to each other via the connection device 180. The connection device 180 may include a normal / multiplex broadcast device, for example, an Ethernet bus or a layer switch 2/3. Network 189 may be any conventional network, for example, a local aerial network (“LAN”) or Ethernet, to which two node groups are connected. If both peer groups are connected directly via connection device 180, network 189 is not required.

ある実施例では、サーバノード100a,b,cにおいて1以上のネットワークインターフェースポート185a,b,cが含まれる通信システムが図2に図示されている。通信リンク187a,b,cおよび188a,b,cはデバイス180をノード100と接続する。接続端点130を経由して到着する入力データは、多重放送あるいは通常放送の能力、そのレイヤー2あるいはレイヤー3を利用して接続デバイス180によって188a,b,cに複製される。到着データはポート185a、185b,185cに搬送される。180あるいは関連するハードウェアポートあるいはリンクによるデータ搬送の保証はない。187a、187b,187cを経由して第1グループ120によって転送されるデータは、相互に独立しているので、並列に動作する。187a、187b,187cを経由してピアグループに転送されるデータは、120には必ずしも見えない。接続130上のインカミングデータに関してはロジカルバス105上で送信される信号がデバイス180によってリンク188a、188b、188cに複製される。図1bのロジカルバス105に送信されるデータはサーバノード100a、100b、100cには見えない。   In one embodiment, a communication system that includes one or more network interface ports 185a, b, c at server nodes 100a, b, c is illustrated in FIG. Communication links 187 a, b, c and 188 a, b, c connect device 180 to node 100. Input data arriving via the connection end point 130 is copied to 188a, b, c by the connection device 180 using the capability of multiplex broadcasting or normal broadcasting, its layer 2 or layer 3. Arrival data is conveyed to ports 185a, 185b, 185c. There is no guarantee of data transport through 180 or the associated hardware port or link. Since the data transferred by the first group 120 via 187a, 187b and 187c are independent of each other, they operate in parallel. Data transferred to the peer group via 187a, 187b, 187c is not necessarily visible to 120. With respect to incoming data on connection 130, the signal transmitted on logical bus 105 is replicated by device 180 to links 188a, 188b, 188c. Data transmitted to the logical bus 105 in FIG. 1b is not visible to the server nodes 100a, 100b, 100c.

信号
本発明のある実施例では、信号にはグループ共通の接続ID情報があって良い。さらに、信号にはまたソースならびにターゲットのID情報があっても良い。ターゲットID情報は1以上のノードであって良く、あるいはグループ全体であっても良い。
Signal In an embodiment of the present invention, the signal may have group common connection ID information. In addition, the signal may also have source and target ID information. The target ID information may be one or more nodes or the entire group.

本発明のある実施例では、通信システム内の信号には、グループを代表するピアからの応答入力データ、入力応答信号であるIACK信号が含まれて良い。IACKにはピアグループから期待されるバイトデータを残して、応答されたシーケンスナンバー、ウインドー更新シーケンスナンバー、最新かつ最大のタイムスタンプおよび受信するアクティブsendHeadがピアグループTCP ACKに送信しなければならない場合に指示するPUSHフラグが含まれることができる。REQSH信号には、1リクエストが含まれるとともに、これはアクティブsendHeadをターゲットにした最新のsendHead割当てを要請できる。ターゲットアドレスはグループ全体であって良い。   In an embodiment of the present invention, the signal in the communication system may include response input data from a peer representing the group and an IACK signal that is an input response signal. Leave the byte data expected from the peer group in the IACK, if the responded sequence number, window update sequence number, latest and maximum time stamp and receiving active sendHead must send to the peer group TCP ACK A PUSH flag to indicate may be included. The REQSH signal includes one request, which can request the latest sendHead assignment targeting the active sendHead. The target address may be the entire group.

GRANTSH信号にはアクティブsendHead状態情報、バス時間、そのGRANTSHが応答されたノードリスト、ならびに最も直近に知られたIACK情報のあるメッセージが含まれる。この信号のターゲットは状態情報の更新後にアクティブsendHeadを引き受ける。IACKSEG信号にはセグメントを代表して送信される入力データ応答情報が含まれる。これにはIACK信号と同じか類似の情報があって良い。REQJOIN信号は接続を越えたサービスにつなげるリクエストをするアプリケーションセグメントに送信される。LEAVE信号は接続上のアプリケーションセグメントのサービスを離れる許可をリクエストして送信される。   The GRANTSH signal includes active sendHead state information, bus time, a node list to which the GRANTSH is responded, and a message with the most recently known IACK information. The target of this signal assumes an active sendHead after updating the state information. The IACKSEG signal includes input data response information transmitted on behalf of the segment. This may have the same or similar information as the IACK signal. The REQJOIN signal is sent to the application segment that makes a request to connect to the service beyond the connection. The LEAVE signal is sent requesting permission to leave the service of the application segment on the connection.

ACKLEAVE信号は接続上のサービスを離れるアプリケーションに許可を与える。RESET信号は接続をリセットするリクエストをするために送信される。CLOSE信号はアプリケーションセグメントによって接続の出力ストリームを閉じるリクエストをするために送信される。ACKCLOSE信号はCLOSEリクエストの受領を応答する。   The ACKLEAVE signal gives permission to the application to leave the service on the connection. The RESET signal is sent to make a request to reset the connection. The CLOSE signal is sent by the application segment to make a request to close the connection's output stream. The ACKCLOSE signal responds with receipt of the CLOSE request.

接続の確立と終了
従来型のTCP状態図が知られている。「図示されたTCP/IP第1巻および第2巻」と題するリチャード・スチーブンスによる本にこの状態図を説明するストリーム図が示されかつ説明されているが、その内容がここで参照して組込まれている。さらに、TCP/IPプロトコルならびにオプションはRFC'793、および RFC 1323にも検討されており、その関連する部分がここに参照して組込まれている。
Connection establishment and termination Conventional TCP state diagrams are known. A book by Richard Stevens entitled "TCP / IP Volumes 1 and 2 illustrated" shows and describes a stream diagram illustrating this state diagram, the contents of which are incorporated herein by reference. It is. In addition, TCP / IP protocols and options are also discussed in RFC '793 and RFC 1323, the relevant portions of which are incorporated herein by reference.

接続の確立と終了中に、あるノードは処理を調整かつ制御するとともにグループを代表してピアグループと通信するバスコントローラとして作動するよう選ばれる。デフォルトで、静的バスコントローラが選ばれるが、アプリケーションプログラムは必要に応じてオプションとしてバスコントローラを選択する。バスの制御によりグループメンバーのノードに負荷を分散するためには、バスコントローラの機能はラウンドロビンのようにノードに割り当てられることができるか、あるいはまた、バスコントローラがインカミングシーケンスナンバーの刻み値あるいはソースのIPアドレス/ポートのアドレス組合せに基づいて動的に選択されても良い。最低限のIDを伴うセグメントがバスコントローラの役割を引き受ける場合のスキームでは、セグメントのレプリカが入手可能な時にバスコントローラ責任がレプリカ同士でラウンドロビン様に割り当てられる。   During connection establishment and termination, a node is chosen to act as a bus controller that coordinates and controls processing and communicates with peer groups on behalf of the group. By default, a static bus controller is selected, but the application program optionally selects a bus controller as needed. In order to distribute the load to the group member nodes by controlling the bus, the function of the bus controller can be assigned to the node like round robin, or alternatively, the bus controller can be an increment of the incoming sequence number or It may be selected dynamically based on the source IP address / port address combination. In a scheme where a segment with a minimum ID assumes the role of bus controller, bus controller responsibility is assigned in a round robin fashion between replicas when a replica of the segment is available.

一般的に、TCPでは接続操作に4つのタイプがある。各タイプは状態変化に関して様々な設定に従う。グループがピアグループと接続を始める場合に、接続処理がピアグループによって開始される一方で、アクティブ起動として参照され、パッシブ開始として参照される。同様に、接続の終了がグループによって開始される場合は、アクティブ終了として参照されるとともに、終了がピアグループによって開始される場合にはパッシブ終了として参照される。   In general, there are four types of connection operations in TCP. Each type follows different settings for state changes. When a group initiates a connection with a peer group, the connection process is initiated by the peer group while referred to as active activation and referred to as passive initiation. Similarly, when termination of a connection is initiated by a group, it is referred to as an active termination, and when termination is initiated by a peer group, it is referred to as a passive termination.

パッシブ接続の確立
パッシブ開始については、ピアグループからシンクロナイゼーション(「SYN」)リクエストの到来があると、バスコントローラはアプリケーションセグメントに接続サービスにつなぐようリクエストするREQJOIN信号を送信する。バスコントローラは、その後、これが受信されると、SYN向けACK(応答)とともにSYNリクエストでピアグループに応答する。ピアグループがグループを代表して送信されたSYNリクエストに応答する時、アプリケーションセグメントが実行されるグループノードがIACKSEGと応答する。すべての必要とされるグループノードが接続サービスにIACKSEG信号でつながった時に、接続が確立されたと見なされるとともにデータの移送が開始可能となる。
Establishing Passive Connection For passive initiation, when a synchronization (“SYN”) request arrives from the peer group, the bus controller sends a REQJOIN signal requesting the application segment to connect to the connection service. When this is received, the bus controller then responds to the peer group with a SYN request along with an ACK (response) for SYN. When the peer group responds to a SYN request sent on behalf of the group, the group node on which the application segment is executed responds with IACKSEG. When all required group nodes have connected to the connection service with an IACKSEG signal, the connection is considered established and data transfer can begin.

アクティブ接続の確立
アクティブ開始においては、あるグループから開始された接続のために、バスコントローラはREQJOIN信号をグループノード群に向けて送信する。その後、これがグループを代表してYSNリクエストを送信してピアグループと接続処理を開始する。グループノード群は、バスコントローラSYN用のACKでピアグループからあるYSNリクエストを受領すると、ピアグループから有効なACKの受領を指示するIACKSEGを送信する。必要とされるノードからIACKSEGを受領すると、バスコントローラはピアグループからSYNリクエスト用のACKを送信すると同時に、接続が確立されたと見なされる。
Establishing an active connection In an active start, for connections initiated from a group, the bus controller sends a REQJOIN signal toward the group nodes. After that, this sends a YSN request on behalf of the group and starts the connection process with the peer group. When the group node group receives a YSN request from the peer group with an ACK for the bus controller SYN, the group node group transmits IACKSEG instructing reception of a valid ACK from the peer group. Upon receipt of an IACKSEG from the required node, the bus controller sends an ACK for the SYN request from the peer group, and at the same time, the connection is considered established.

パッシブ接続の終了
パッシブの終了については、ピアグループからFINセグメントを受領すると、ノードはFINの受領を指示するIACKSEG信号を送信する。リクエストされたすべてのセグメントからIACKSEGが受信される場合、バスコントローラは受信されたFIN(完了した)用のACKでピアグループに応答する。ノードはデータの送信を完了した時、接続を離れる希望を指示するLEAVE信号を送信する。FINの受領後、すべてのグループノードからLEAVEリクエスト信号が受信された時、バスコントローラはピアグループにFINリクエストを送信する。バスコントローラはACKLEAVE信号を送信するとともに、その受領とともに、信号ノードのターゲットはCLOSED状態に入る。送信されたFINリクエスト用ACKが到着すると、バスコントローラはCLOSED状態に入る。
End of Passive Connection For passive end, upon receipt of a FIN segment from a peer group, the node sends an IACKSEG signal indicating receipt of the FIN. If IACKSEG is received from all requested segments, the bus controller responds to the peer group with an ACK for the received FIN (completed). When the node completes the data transmission, the node transmits a LEAVE signal indicating a desire to leave the connection. After receiving the FIN, when the LEAVE request signal is received from all the group nodes, the bus controller transmits the FIN request to the peer group. The bus controller transmits an ACKLEAVE signal and upon receipt thereof, the signal node target enters the CLOSED state. When the transmitted FIN request ACK arrives, the bus controller enters the CLOSED state.

アクティブ接続の終了
アクティブ終了において、アプリケーションセグメントは、データの送信を完了させると同時に接続を切断したい時には、CLOSE信号を送信する。すべてのグループノードからCLOSEリクエストを受領すると、バスコントローラはFINリクエストをピアグループに送信する。ピアグループからFINリクエストを受領すると、ノードはLEAVEリクエストを送信する。グループノードからLEAVE信号ならびに送信されたFIN用ACKが受信される時、バスコントローラはTIME_WAIT状態に入る。
End of Active Connection At the end of active, the application segment sends a CLOSE signal when it wants to disconnect the connection at the same time as completing the transmission of data. When receiving a CLOSE request from all group nodes, the bus controller sends a FIN request to the peer group. Upon receiving a FIN request from the peer group, the node sends a LEAVE request. When the LEAVE signal and the transmitted FIN ACK are received from the group node, the bus controller enters the TIME_WAIT state.

接続上のデータ入力
図3aを参照すると、データパケットは、ノードに到着する時、パケットがグループアドレスに宛てられているかどうかチェックされる(311)。もし、そうであってかつパケットがTCPのフラグメントであれば、TCPセグメントの最後のフラグメントが到着すると完全なTCPセグメントを生じるフラグメントの再組立操作(314)が実行される。多くの場合、TCPセグメントはフラグメント化されないので、この操作は起きない。
Data Input on Connection Referring to FIG. 3a, when a data packet arrives at a node, it is checked (311) whether the packet is addressed to a group address. If so and if the packet is a TCP fragment, a fragment reassembly operation (314) is performed that yields a complete TCP segment when the last fragment of the TCP segment arrives. In many cases, this operation does not occur because TCP segments are not fragmented.

TCPセグメントがあるグループに宛てられない時は、その後、標準TCP/IPスタックは以降の処理のためにTCPセグメントとともに引き継がれる(312)。   If the TCP segment is not addressed to a group, then the standard TCP / IP stack is taken over with the TCP segment for further processing (312).

図3bを参照すると、グループのreceiveHeadは、データを受領するとフィルター(315)を起動させると同時にノード上のアプリケーションに宛てられたデータがあるかどうかを検証する(316)とともにアプリケーションに関係のないデータは廃棄する。フィルターをかけた後に生ずるデータパケットはタイムスタンプの有効性、チェックサムの有効性、ならびにその他TCP/IPパラメーター(317)の有効性の有無がチェックされる。すべての無効なパケットは直ちに廃棄される。receiveHeadは調べたすべての有効なパケットを反映させるため状態を更新する。チェックサムおよびその他の詳細パケットを実行することによって、フィルターをかけた後の検証が廃棄されたパケットの余分な計算負荷を回避する。   Referring to FIG. 3b, when the group's receiveHead receives the data, it activates the filter (315) and at the same time verifies whether there is data destined for the application on the node (316) and data not related to the application. Discard. Data packets that occur after filtering are checked for the validity of the time stamp, the validity of the checksum, and the validity of other TCP / IP parameters (317). All invalid packets are discarded immediately. receiveHead updates its state to reflect all valid packets examined. By performing checksums and other detail packets, verification after filtering avoids the extra computational burden of discarded packets.

受信されたデータに先行するデータのすべてが適切なアプリケーションセグメントに搬送された(320)と保証されるかどうか、この直後に続く任意のデータがアプリケーションセグメントに引き渡されるかどうかが検証される(318)のはそれからである。TCP ACKセグメントは仕様毎に必要ならばピアのグループに送信される。しかしながら、データの応答を保留する先行データがある場合にはデータは応答待ちのキューとなる(319)。   It is verified whether all of the data preceding the received data is guaranteed (320) to have been delivered to the appropriate application segment and whether any data immediately following it is delivered to the application segment (318). ) Then it is. The TCP ACK segment is sent to the peer group if necessary for each specification. However, if there is preceding data for which a data response is suspended, the data is queued for a response (319).

セグメントインスタンスがデータの受領中にエラーとなる場合には、いずれの残りのインスタンスも受付と応答制御を続ける。これにより、アプリケーションは、ノードのエラーで中断することなくサービスを続けることが可能となる。   If a segment instance results in an error while receiving data, any remaining instances continue to accept and respond. This allows the application to continue service without interruption due to node errors.

データのフィルトレーション
図3cを参照すると、receiveHeadは入力データの状態をあたかもリクエストが無視され、アプリケーションに引き渡されているかのように維持し、新たなリクエストの始まりにはターゲット等を決定するために続くデータが必要となる。1パケットには1以上のリクエストあるいは部分的リクエストデータが含まれても良いので、パケットに処理されるべき残りのデータがあるかどうか検証(330)される。残されたデータが無ければフィルター処理は完了する。
Data Filtering Referring to Figure 3c, receiveHead keeps the state of the input data as if the request was ignored and passed to the application, and at the beginning of a new request to determine the target etc. Subsequent data is required. Since one packet may contain one or more requests or partial request data, it is verified (330) whether there is remaining data to be processed in the packet. If there is no data left, the filtering process is complete.

フィルターにかけられるべきデータがパケットに残っている場合、現状状態が検証される(331)。現状状態がリクエストデータは廃棄されることを指示する場合には、パケットのリクエストデータの最大値まで廃棄されるとともに、さらに任意の残りのデータ(330)の有無を検証するよう予定される(332)。同様にして、リクエストデータが受取られかつアプリケーションセグメントまで搬送されなくてはならない場合には、パケットのリクエストデータの残り部分は搬送が予定される。すべての搬送されたデータはチェックサム計算、タイムスタンプおよびパケットヘッダーの検証(333)が1回だけなされなくてはならないと同時に、無効パケットは直ちに廃棄される(336)。   If data to be filtered remains in the packet, the current state is verified (331). When the current state indicates that the request data is to be discarded, the request data of the packet is discarded up to the maximum value, and the presence or absence of any remaining data (330) is further verified (332). ). Similarly, if request data is received and must be transported to the application segment, the remainder of the packet's request data is scheduled for transport. All carried data must be checksum calculated, time stamped and packet header validated (333) only once, while invalid packets are immediately discarded (336).

現在の状態が新たなリクエストの始まりを示す時、個別のアプリケーションフィルターがデータのターゲットと検証結果を反映させるため更新される現状状態を決めるために起動(334)される。フィルトレーションコードが十分なデータの不足のためリクエストターゲットを決定出来ない場合には、無秩序に到着したデータを保持する再組立のキューからすぐ次の任意のデータと組合せられる。それでも尚、十分なデータがない場合には、残りのデータは再組立のキューの中に入り、十分なデータが到着するまでチェックが繰り返される。その代わり、十分なデータが見つかった場合には段階330がデータにフィルターをかけるため繰り返される。   When the current state indicates the start of a new request, an individual application filter is activated (334) to determine the current state that is updated to reflect the data target and verification results. If the filtration code cannot determine the request target due to lack of sufficient data, it is combined with any next data from the reassembly queue that holds the randomly arrived data. Still, if there is not enough data, the remaining data goes into the reassembly queue and the check is repeated until enough data arrives. Instead, if sufficient data is found, step 330 is repeated to filter the data.

データ入力の応答
複数端点への原子的データ搬送が必要とされる場合、受信データ用の応答がすべての端点がデータを積極的に受信した場合にだけ送信されるターゲット端点はデータを受領すると、TCP順でデータの受領を示すバス上にIACK信号を送信する。アクティブsendHeadは、すべての必要とされるノードが個別のデータを受信したかどうかを検証した後に、TCP仕様毎に適切な場合にはTCP ACKセグメントをピアグループに送信する。
Data entry response When atomic data transport to multiple endpoints is required, a response for received data is sent only if all endpoints are actively receiving data. An IACK signal is transmitted on the bus indicating receipt of data in the TCP order. The active sendHead sends a TCP ACK segment to the peer group if appropriate for each TCP specification after verifying whether all required nodes have received individual data.

接続上のデータ出力
あるグループの複数端点はTCP順でデータを転送できる。従って、連続したシーケンスナンバーは転送されるべきデータのセグメントに割り当てられる必要がある。端点からのリクエスト/レスポンスの区別の混乱を避けるためには転送されるデータの一貫性の維持も必要である。この目的のため、完全な各リクエスト/レスポンスデータは転送ノードによって1レコードとして取り扱われる。
Data output on connection Multiple endpoints of a group can transfer data in TCP order. Therefore, consecutive sequence numbers need to be assigned to the segments of data to be transferred. In order to avoid the confusion of the request / response distinction from the end point, it is also necessary to maintain the consistency of the transferred data. For this purpose, each complete request / response data is treated as one record by the forwarding node.

図4を参照すると、アプリケーション処理がデータ(385)を書き込む場合、新たな転送レコードが作られる(386)。ピアに送信されるその他の仲介データがないまま1以上の書き込みリクエストデータが送信されなくてはならない場合には、MORETOCOMEフラグが最後の書き込みに達するまで設定される。転送ノードがすでにアクティブsendHead(387)でない場合には、それ以前までのリクエストが応答されるかあるいは保留されない限り、アクティブsendHead向けのリクエストがREQSH信号で送信される。アクティブsendHead状態がノード(389)に宛てられたGRANTSH信号とともに到着すると、GRNTSHからの最新情報で更新した後にアクティブsendHeadが引受けられるとともに、アクティブsendHead(387)が繰り返されるかどうかがチェックされる(388)。   Referring to FIG. 4, if the application process writes data (385), a new transfer record is created (386). If one or more write request data must be sent without any other intermediary data sent to the peer, the MORETOCOM flag is set until the last write is reached. If the forwarding node is not already an active sendHead (387), a request for the active sendHead is sent on the REQSH signal unless a previous request is answered or suspended. When the active sendHead state arrives with the GRANTSH signal addressed to the node (389), the active sendHead is assumed after updating with the latest information from GRNTSH and it is checked whether the active sendHead (387) is repeated (388). ).

アクティブsendHeadになった後、送信すべきデータがあるノードはシーケンシャルオーダーのレコードに新規の転送シーケンスナンバーを割り当てるとともに、転送が開始される(390)。転送される(391)書き込み操作の延長上にこれ以上のデータが予想されないとともに、転送シーケンスナンバー(392)で割り当てられるのを待つレコードがこれ以上ないか、あるいは転送の最大値が制限を越える(393)場合には、任意(394)の待ちがある場合、アクティブsendHeadが隣のリクエストしているノードにグラントされる。   After becoming active sendHead, the node having the data to be transmitted assigns a new transfer sequence number to the sequential order record and starts transfer (390). No more data is expected on the extension of the write operation to be transferred (391) and there are no more records waiting to be assigned with the transfer sequence number (392) or the maximum value of the transfer exceeds the limit ( 393) If there is an arbitrary (394) wait, the active sendHead is granted to the next requesting node.

次のsendHeadをグラントするノードはREQSHリクエスター、最高優先度のREQSHリクエスター、ラウンドロビン、あるいは任意のアプリケーション個別のスキームのリストから数字的に時計廻りで最も近いノードIDでノードを選別して決定される。しかしながら、さらに多くの転送レコードがシーケンスナンバーの割当てを待っている場合には、ステップ387が残りデータの送信とともに繰り返される。   The node that grants the next sendHead is determined by selecting the node with the closest node ID in the clockwise direction from the list of REQSH requester, highest priority REQSH requester, round robin, or any application specific scheme Is done. However, if more transfer records are waiting to be assigned a sequence number, step 387 is repeated with the transmission of the remaining data.

アクティブsendHead割当て
図5aを参照すると、アクティブsendHead割当て向けのスキームがここでは説明される。
ノード(100a)はアクティブsendHeadの役割をリクエストするREQSH(105r)信号を送信するとともに、アクティブsendHead(100c)はリクエスターに必要な状態情報付きでGRANTSH(105t)信号とともに該役割をグラントする。REQSH信号はノード100a、によって送信され、ノード100bはアクティブsendHeadでないREQSHを無視する。リクエストの時点でアクティブsendHeadであるノード100cは、sendHeadがグラントされるのは自由であるので100aリクエストにGRANTSH信号で応答する。
Active sendHead Assignment Referring to FIG. 5a, a scheme for active sendHead assignment will now be described.
The node (100a) transmits a REQSH (105r) signal requesting the role of the active sendHead, and the active sendHead (100c) grants the role together with the GRANTSH (105t) signal with state information necessary for the requester. The REQSH signal is transmitted by the node 100a, and the node 100b ignores the REQSH that is not the active sendHead. The node 100c that is the active sendHead at the time of the request responds to the 100a request with a GRANTSH signal because the sendHead is free to be granted.

GRANTSH信号を受領すると、リクエストしているノード100aはアクティブsendHeadを引き受ける。GRANTSH信号にはグループによって維持されるだけの保留中のリクエスターのリストが含まれる。ノード100bはGRANTSH信号105tを検証すると、アクティブsendHeadに関するそれ自身のリクエストがひょっとして応答されたかどうかを信号の保留中のリクエスターリストを検証することによってチェックする。応答されている場合はREQSH信号の再転送が止められる。   Upon receipt of the GRANTSH signal, the requesting node 100a assumes the active sendHead. The GRANTSH signal includes a list of pending requesters that are only maintained by the group. When node 100b verifies GRANTSH signal 105t, it checks to see if its own request for active sendHead has been responded by verifying the pending requester list of signals. When the response is made, the re-transfer of the REQSH signal is stopped.

ノードがアクティブsendHeadを他方にグラントする場合、これに転送されるべきアウトスタンディングデータがあれば、追加リクエスト信号を避けるためにそれ自体がリクエスターのリストに加えられる。すべてのノードにREQSHのような信号を送信することに対する代案は、これらをアクティブsendHeadノードのようなターゲットに直接送信することである。この方法の利点は効果的なバンド幅の利用法であるが、位置のトランスペアレント性に欠ける。   When a node grants an active sendHead to the other, if it has outstanding data to be transferred, it adds itself to the list of requesters to avoid additional request signals. An alternative to sending signals such as REQSH to all nodes is to send them directly to a target such as an active sendHead node. The advantage of this method is effective bandwidth utilization, but lacks location transparency.

図5bを参照すると、REQSH信号がアクティブsendHeadノード(551)上に到着する場合でかつ、もしsendHeadがグラントされる(553)ようにならない場合には、リクエスターIDはリクエスター(554)のリストに入れられる。しかしながら、sendHeadがグラントされる場合にはGRANTSH信号はあるリクエスターに宛てて送信される(555)。GRANTSHは、アウトスタンディングリクエスターの入ったリストに関するすべてのアウトスタンディングREQSH向けの応答信号として機能する。他にグラントせずにREQSHの受領を応答するためには、sendHeadが自身にグラントする。GRANTSHがターゲットノードに到着する場合、リクエスターのリストはリクエスターのローカルリストに追加される。GRANT信号は、再転送を除くsendHeadグラントの各インスタンス向けに単調にシーケンスIDナンバーを1だけ増やして割当てることによってシーケンスがとられる。   Referring to FIG. 5b, if the REQSH signal arrives on the active sendHead node (551) and if the sendHead does not become granted (553), the requester ID is a list of requesters (554). Be put in. However, if sendHead is granted, the GRANTSH signal is sent to a requester (555). GRANTSH functions as a response signal for all outstanding REQSHs related to the list containing the outstanding requesters. In order to respond to receipt of REQSH without granting anything else, sendHead grants itself. When GRANTSH arrives at the target node, the requester's list is added to the requester's local list. The GRANT signal is sequenced by monotonically increasing the sequence ID number by 1 and assigning it to each instance of the sendHead grant excluding retransmissions.

グループ内TCPタイムスタンプとラウンドトリップタイム(RTT)計算
大半のTCP実行はRFC 1323に従う。これにはタイムスタンプを利用するラウンドトリップタイムを測定する方法が規定されている。ラウンドトリップタイムは通常、リアルタイムのホストから応答されたデータサーバのタイムスタンプを引き算して測定される。ラップアラウンドシーケンスナンバーにより無効なパケットを特定するためには、仕様としては単調に増加するタイムスタンプが必要である。
Intra-group TCP timestamps and round trip time (RTT) calculations Most TCP implementations follow RFC 1323. This specifies a method for measuring the round trip time using a time stamp. The round trip time is usually measured by subtracting the time stamp of the data server responded from the real time host. In order to specify an invalid packet by the wraparound sequence number, a time stamp that monotonously increases is required as a specification.

様々なハードウェアタイマーの様々なタイプの数多くのノードに関する仕様を満足させることは興味をそそるものである。理想的な解決策は完全に時間がシンクロナイゼーションされたノードであるが、これはベストを尽くしても困難である。ある実施例では、タイムスタンプを単調に増やす仕様要件は、データが送信されるノード上での時間とデータが最後に送信されたノードの時間とのシンクロナイゼーションがなされることによって満たされる。このシンクロナイゼーションにより、データが前回のTCPデータセグメントのタイムスタンプと等しいかあるいはより高いタイムスタンプ値で常に送信されることが保証される。   It is intriguing to meet the specifications for many nodes of various types of various hardware timers. The ideal solution is a fully time-synchronized node, which is difficult at best. In one embodiment, the specification requirement for increasing the time stamp monotonically is met by synchronizing the time on the node where the data is sent with the time of the node where the data was last sent. This synchronization ensures that the data is always transmitted with a time stamp value equal to or higher than the time stamp of the previous TCP data segment.

スキームの実行例がここで与えられる。ノードは固定間隔でその数値を増加させるハードウェアクロックで実行されるリアルタイム、すなわち、通常は「ローカル時間」を維持する。グループ域内リアルタイムクロック、すなわち、「バスタイム」はノードによる各TCF接続に対して実行されなくてはならない。任意のノード上の「バスタイム」は[バスタイム]=[ローカルタイム]−[ベースタイム]として計算される。   An example implementation of the scheme is given here. The node maintains real time, ie, usually “local time”, which is executed with a hardware clock that increments its value at fixed intervals. An intra-group real-time clock, or “bus time”, must be executed for each TCF connection by the node. The “bus time” on any node is calculated as [bus time] = [local time] − [base time].

ベースタイムはバスコントローラによって最初に選択されるとともに、そこで計算される任意の数値にできる。ノードがアクティブsendHeadでグラントされる時はいつでも、グランターのバスタイムがGRANTSH信号とともに送信される。アクティブsendHeadでグラントされたノードは、GRANTSH信号の受領時に、下記に発表されるようにそのバスタイムが調整される。   The base time is initially selected by the bus controller and can be any numerical value calculated there. Whenever a node is granted with an active sendHead, the grantor's bus time is sent with the GRANTSH signal. The node granted with the active sendHead adjusts its bus time as announced below upon receipt of the GRANTSH signal.

バスタイムが、アクティブsendHeadで受信されたグランターのバスタイムより小さい場合は[バスタイム]=[グランターバスタイム(すなわち、GRANTSH信号からのバスタイム)]となる。   When the bus time is smaller than the granter bus time received by the active sendHead, [bus time] = [granter bus time (that is, the bus time from the GRANTSH signal)].

ノードに関するバスタイムはGRANTSH転送遅れのため上記の公式で完全にシンクロナイゼーションを取ることができなくても、タイムスタンプ値を単調に増やす要件を満足させる。送信されたタイムスタンプのグラニュラリティより高いバスタイムのグラニュラリティを選択することによって、ノードによる同時平行の再転送中に競合するタイムスタンプによるエラーが減少する。タイムスタンプが10ミリセコンドのグラニュラリティがあるとともに、バスタイムが1マイクロセコンドのグラニュラリティをもつ場合の1例として、エラー要因は1から1万分の1に減少する。精確なラウンドトリップの計算のために、転送時のベースタイムがsendHeadによって転送レコードの中に記入される。信号待ち時間を最小にする要因とするため、一定の時間値がGRANTSHターゲットノードにおけるグランターのバスタイムに追加される。バスタイムをタイムスタンプとして利用して、パケットのラウンドトリップタイムは[ラウンドトリップタイム]=[バスタイム]−[タイムスタンプ]として計算される。   The bus time for the node satisfies the requirement to increase the time stamp value monotonically even if the above formula cannot be fully synchronized because of the GRANTSH transfer delay. By selecting a higher granularity of bus time than that of the transmitted timestamp, errors due to competing timestamps during simultaneous parallel retransmissions by the nodes are reduced. As an example when the time stamp has a granularity of 10 milliseconds and the bus time has a granularity of 1 microsecond, the error factor is reduced from 1 to 1 / 10,000. For accurate round trip calculations, the base time at the time of transfer is entered into the transfer record by sendHead. A constant time value is added to the grantor bus time at the GRANTSH target node to minimize signal latency. Using the bus time as a time stamp, the round trip time of the packet is calculated as [round trip time] = [bus time] − [time stamp].

グループのTCPウインドー更新
ウインドーはある端点がメモリにデータを受け付けることの可能なデータ量である。2端点のみを持つ従来のTCPでは、最適な性能を発揮するときのその数値に関して両端点で容易に合意が得られる。複数の端点が関与する場合には、異なるメモリサイズおよび予測不可能なデータターゲットを持つ各端点が最適な利用と性能を果たすことが決定的に重要である。
A group's TCP window update window is the amount of data that an endpoint can accept in memory. A conventional TCP with only two endpoints can be easily agreed on at both endpoints with respect to its numerical value for optimal performance. When multiple endpoints are involved, it is critical that each endpoint with a different memory size and unpredictable data target performs optimal use and performance.

ここで説明されるのはグループ域内の単一バーチャルウインドーサイズがグループ内の有効なウインドー管理用に利用されている場合のスキームである。sendHeadはグループを代表するウインドー情報についてピアグループの更新に責任をもつ。グループノードは当初はバーチャルウインドーサイズで割り当てられる。ノードは搬送されたばかりのアプリケーションによって読み込まれるデータの入力シーケンスナンバーを送信することによって、アクティブsendHeadに対してウインドーを更新する。アクティブsendHeadはグループ域内バーチャルウインドーサイズからアプリケーションに渡されるアウトスタンディングデータ量を差し引いて得られるウインドーに関するピアグループを更新する。   Described here is a scheme where a single virtual window size within a group area is used for effective window management within the group. sendHead is responsible for updating the peer group with window information representing the group. Group nodes are initially assigned in virtual window size. The node updates the window to the active sendHead by sending the input sequence number of the data read by the application that has just been transported. The active sendHead updates the peer group for the window obtained by subtracting the amount of outstanding data passed to the application from the virtual window size in the group area.

ウインドー更新はウインドー更新信号の数を減少させるようIACK信号でピッギーバック輸送される。ウインドー更新信号とTCPセグメントの数をさらに減少させるには、バーチャルウインドーだけでなく保留されたウインドーサイズは維持される。いつでも、これらのウインドーの合計に達するデータはグループによって応答されるためにアウトスタンディングであることが可能である。あるノードが保留されたウインドー以下のサイズのデータのIACK応答受領を送信するとともに、すべての先行するデータがアプリケーションによって読み込まれた場合、IACKシーケンスに匹敵する更新データがあたかもこれだけのデータ量がアプリケーションによって読み込まれたかのように利用される。ウインドー更新はIACKによってなされるので、そうでない場合に必要とされる追加のウインドー更新信号はこれにより避けられる。この技術やオプションで設定されるかあるいは設定し直しがなされる。   Window updates are piggybacked with an IACK signal to reduce the number of window update signals. To further reduce the number of window update signals and TCP segments, the reserved window size is maintained as well as the virtual window. At any time, the data that reaches the sum of these windows can be outstanding to be answered by the group. If a node sends an IACK response receipt for data of size less than the pending window and all previous data has been read by the application, the application will have as much data as the IACK sequence. Used as if it were read. Since window updates are made by IACK, this avoids additional window update signals that would otherwise be required. This technique or option is set or reset.

図6を参照すると、応答されなかった入力シーケンスは610で指示されるとともに、620はピアグループ619にパブリシティされるよう期待される最大データのシーケンスナンバーを指示する。619は1回のウインドー更新が送信される可能性のある最大保留ウインドーシーケンス値までを示す。611、612,613、614はノード100a、100c、100b、100cによってそれぞれ受信されたデータのウインドーシーケンスを示す。615は、ピアグループによって送信の可能性がある総量データである。617と618はこれらが611と612に関して送信するIACKとともに、ノード100aと100cによって送信されるウインドー更新を示す。最大告知ウインドーは621によって示されるとともに、最大保留ウインドーは622によって示される。   Referring to FIG. 6, the unanswered input sequence is indicated at 610 and 620 indicates the maximum data sequence number expected to be published to peer group 619. 619 indicates up to the maximum pending window sequence value at which one window update may be sent. Reference numerals 611, 612, 613, and 614 denote window sequences of data received by the nodes 100a, 100c, 100b, and 100c, respectively. 615 is the total amount data that may be transmitted by the peer group. 617 and 618 show the window updates sent by nodes 100a and 100c, together with the IACK they send for 611 and 612. The maximum announcement window is indicated by 621 and the maximum hold window is indicated by 622.

グループTCPでラップアラウンドされたシーケンスに対する保護
10ギガビットのイーサネット(登録商標)のような高速ネットワークでは、TCPの現状32ビットシーケンスナンバーは短時間の間ラップアラウンドする。シーケンスナンバーがラップアラウンドすることによって、IACKのような遅れた信号は、シーケンスナンバーがデータ入力を応答するために利用される場合には間違って有効と見なされることもある。我々は32ビットTCPシーケンスナンバーが、接続の開始以降、歪んだ32ビットシーケンスナンバーを多数回考慮する64ビットTCP値にマップされる場合のスキームを利用する。グループ内で利用される64ビットシーケンス値はピアと一緒に利用される場合の32ビットまで戻ってマップされる。
Protection against sequences wrapped in group TCP In a high speed network such as 10 Gigabit Ethernet, the current 32-bit sequence number of TCP wraps around for a short time. Due to the sequence number wrapping around, a delayed signal such as IACK may be mistakenly considered valid if the sequence number is used to respond to data input. We use a scheme where the 32-bit TCP sequence number is mapped to a 64-bit TCP value that takes into account the distorted 32-bit sequence number many times since the start of the connection. The 64-bit sequence values used within the group are mapped back to 32 bits when used with peers.

32ビットシーケンスをマップするために、我々は64ビットシーケンスを最小シグニフィカント32ビットがピアと一緒にアクティブに利用されるTCPシーケンスを表す2つの32ビット値に分割した。高次32ビットは接続が開始された以降、多数回ラップアラウンドされたシーケンスを数える。64ビット値を32ビットシーケンスナンバーにマップするためには、最小シグ二フィカント32ビットが利用される。ある代替え実施例ではオーバーヘッドが同じかもしれないが、IACKがシーケンスされる。   To map the 32-bit sequence, we divided the 64-bit sequence into two 32-bit values that represent the TCP sequence in which the least significant 32 bits are actively used with the peer. The high order 32 bits count sequences that have been wrapped around a number of times since the connection was initiated. In order to map a 64-bit value to a 32-bit sequence number, the least significant 32 bits are used. In an alternative embodiment, the overhead may be the same, but the IACK is sequenced.

アプリケーションセグメントインスタンスとレプリカ
セグメントの複数のインスタンスはノード間の負荷の分散をさらに可能にする。
レプリカセグメント内の負荷はフィルターに関連してラウンドロビン、負荷最小化、ハッシング化、類似性ベース等といったスキームを利用するセグメントにリクエストを搬送することによって共有されることが可能である。
Multiple instances of application segment instances and replica segments further allow load distribution between nodes.
The load within a replica segment can be shared by carrying the request to a segment that uses a scheme such as round robin, load minimization, hashing, similarity base, etc. in connection with the filter.

セグメントのレプリカはエラー許容性を可能にする。万一、入力中にレプリカが失敗した場合、残りのレプリカがあれば中断なくサービスを続ける。これは入力の一貫したビューを維持するレプリカによって実行される。セグメントコントローラは原子的入力搬送を伴うレプリカ同士の一貫性を可能にする。新たなセグメントコントローラはエラー発生後に選抜されて良い。   Segment replicas allow for error tolerance. In the unlikely event that a replica fails during input, if there are remaining replicas, the service continues without interruption. This is done by a replica that maintains a consistent view of the input. The segment controller allows for consistency between replicas with atomic input transport. A new segment controller may be selected after an error occurs.

レプリカがデータの転送中にエラーとなる場合には、残りのレプリカが接続を中断することなくサービスを続けることが可能である。各レプリカは出力インスタンスと一致するとともに、sendHead状態は転送が始まるまでは共有される。各レプリカはメモリならびにピアグループによって応答されるデータを解放する。   If the replica fails during data transfer, the remaining replicas can continue service without interrupting the connection. Each replica matches the output instance, and the sendHead state is shared until the transfer begins. Each replica frees the memory as well as the data responded by the peer group.

各アプリケーションセグメントは維持するレプリカの数を選択するのは自由である。セグメントコントローラとして動的に選抜されるノードは、セグメントIACKを形成するレプリカIACKを調整する。セグメントコントローラの選抜はラウンドロビン、負荷最小化、ハッシング化、あるいは静的ノードで、でもベースにすることが可能である。接続の確立、終了、ウインドー管理などすべては、前述で説明された対応するスキームに関連してここで説明された通りに作動する。セグメントレプリカがある入力セグメントの受領と一致する場合のすべてのケースでコントローラはレプリカを代表して応答する。負荷がコピーと対抗されるセグメントインスタンス同士で均衡する場合には、コントローラの関与は不要にして良い。   Each application segment is free to choose the number of replicas to maintain. A node that is dynamically selected as a segment controller adjusts the replica IACK that forms the segment IACK. The selection of segment controllers can be based on round robin, load minimization, hashing, or even static nodes. Connection establishment, termination, window management, etc. all operate as described herein in connection with the corresponding scheme described above. In all cases where the segment replica matches the receipt of an input segment, the controller responds on behalf of the replica. If the load is balanced between the segment instances that are opposed to the copy, the controller's involvement may be eliminated.

レプリカがデータを受信する場合。入力データの受領を指示するIACKを送信する。レプリカからのIACKを監視するセグメントコントローラが送信順で入力が受信されるすべてのレプリカを決定する場合、セグメントを代表してIACKを送信するとともに、クライアントACKを起動させる。このIACKはデータをアプリケーションソケットに渡すかあるいは原子的に必要な何らかの措置を取るレプリカに対する応答として作動する。セグメントコントローラの選抜は、リクエスト毎のラウンドロビンあるいは最小レプリカIDを伴うものと同様に選定レプリカに対して静的である。   When the replica receives data. Send an IACK instructing receipt of input data. When the segment controller that monitors the IACK from the replica determines all replicas whose inputs are received in the transmission order, the IACK is transmitted on behalf of the segment and the client ACK is activated. This IACK acts as a response to a replica that passes data to the application socket or takes some atomically necessary action. The selection of the segment controller is static for the selected replica as well as those with round robin or minimum replica ID for each request.

グループ対グループ通信に基づかれたノード
図7aを参照すると、これは汎用計算機の部分図であり、本発明の要素を実施するために適する要素である。ここではグループ対グループ通信スタックは該システムのプロセッサによって実行される。
Nodes Based on Group-to-Group Communication Referring to FIG. 7a, this is a partial view of a general purpose computer and a suitable element for implementing the elements of the present invention. Here, the group-to-group communication stack is executed by the processor of the system.

主CPUをオフロードするグループ対グループ通信
図7bを参照すると、ある計算機の区分図であり、ある要素の処理から主プロセッサをオフロードする間、本発明の要素を実施するために適する要素である。グループ対グループ通信スタックはそのプロセッサ自身にあるアダプターカードに対してオフロードされる。
Group-to-Group Communication Offloading Main CPU Referring to FIG. 7b, a partition diagram of a computer is a suitable element for implementing the elements of the present invention while offloading the main processor from the processing of an element. . The group-to-group communication stack is offloaded to the adapter card in the processor itself.

集積回路上のグループ対グループ通信
図7cを参照すると、これはある計算機の区分図で、主プロセッサが本発明の専用のハードウェア/アクセラレータ 集積チップに対するある要素の処理からオフロードする間の本発明の要素の実施に適する要素である。そうでない場合に主CPUによって必要とされる大半のオフロードは、グループ対グループ通信スタックを全体的あるいは部分的に実行させることによる。
Group-to-Group Communication on an Integrated Circuit Referring to FIG. 7c, this is a partition diagram of a computer and the present invention while the main processor is offloading from processing certain elements to the dedicated hardware / accelerator integrated chip of the present invention. It is an element suitable for implementation of the element. Otherwise most of the offload required by the main CPU is due to having the group-to-group communication stack run in whole or in part.

図8を参照すると、本発明向けの代替え実施例が図示されている。この実施例では、ハードウェア装置が単一TCP接続端点を複数端点にレプリカする。ノードグループは802によって示される。接続(801)には入力ストリーム826ならびに出力ストリーム825がそれぞれある。装置(820)は、ここでは、ノード800a,b,cに対し外部にある。各サーバノードには同じ接続801の接合端点801a,b,cがある。装置820は単一接続801をノード800上の3つの端点(801a,b,c)にレプリカする。装置820にはポート819がピアサービスの接続に連結されている一方で4ヶ所のポート816、817、818、819がある。この装置はエラーの可能性のある単一点であると同時にエキストラネットワークホップを追加する。   Referring to FIG. 8, an alternative embodiment for the present invention is illustrated. In this embodiment, a hardware device replicates a single TCP connection endpoint to multiple endpoints. The node group is indicated by 802. Connection (801) has an input stream 826 and an output stream 825, respectively. The device (820) is here external to the nodes 800a, b, c. Each server node has joint end points 801a, b, c of the same connection 801. Device 820 replicates single connection 801 to three endpoints (801a, b, c) on node 800. Device 820 has four ports 816, 817, 818, 819 while port 819 is coupled to the peer service connection. This device adds an extra network hop as well as a single point of potential error.

図9を参照すると、2つのデータセグメント910と911が2ヶ所のノード902と904に搬送されなくてはならないクライアントグループとサーバグループとの間の原子的データの搬送と応答スキームが示されている。901はクライアントグループを表すとともに、902,903、904,905および906はサーバグループノードを表す。910と911はクライアントグループ901によって送信されるTCPデータセグメントを表す。910と911はすべてのサーバグループノードで潜在的に利用可能であるが、プログラムされる可能性のあるこのインスタンスの入力フィルターリングシステムによって決定される通りにノード902と904に搬送されるだけに過ぎない。参照コード912はサーバグループのsendHead903からクライアントグループに送信されるTCP ACKセグメントを表す。データセグメント910が到着すると、TCP ACKセグメントは全く送信されないが、第2データセグメントが到着するとACKセグメントは、代替えのパケットが応答されなくてはならない場合に、TCP仕様によるサーバグループによってクライアントに送信される。プレックスコントローラ902は必要とされるプレックス/レプリカ904における同一データセグメントの応答を指示する913PIACK(プレックスIACK)信号を受領する場合のみ原子的搬送を指示するIACK信号914を送信する。902は、前記データの原子的搬送を指示するIACKを送信する責任をもつコントローラであるのでPIAKを送信しない。sendHeadのある903はIACK信号914を受信するとTCP ACKセグメント912をクライアントグループに送信する。代替えTCPセグメントの到着時にクライアントACKセグメントを送信するだけでなく、ACKセグメントはオプションとしてすべての完全なリクエスト入力の最後に送信されても良い。また、クライアントACKセグメントはセグメントの到着の乱れ、セグメント待ち時間切れ等のような例外条件を検知すると送信されるので、クライアントとサーバグループはそのシンクロナイゼーションが取られるとともに、TCPセグメントが行方不明になると早急に再転送される。万一、サーバノードがPIACKを送信したIACKの受信に失敗すると、PIACKならびにアクティブsendHeadはノードに入るのを許可した入力データの最新のシーケンスを指示する別のIACKと応答する。   Referring to FIG. 9, an atomic data transport and response scheme is shown between a client group and a server group where two data segments 910 and 911 must be transported to two nodes 902 and 904. . Reference numeral 901 represents a client group, and reference numerals 902, 903, 904, 905, and 906 represent server group nodes. Reference numerals 910 and 911 denote TCP data segments transmitted by the client group 901. 910 and 911 are potentially available on all server group nodes, but are only transported to nodes 902 and 904 as determined by this instance's input filtering system that may be programmed. Absent. Reference code 912 represents a TCP ACK segment transmitted from the server group sendHead 903 to the client group. When the data segment 910 arrives, no TCP ACK segment is sent, but when the second data segment arrives, the ACK segment is sent to the client by the server group according to the TCP specification when an alternative packet must be answered. The The plex controller 902 transmits an IACK signal 914 indicating atomic transport only when receiving a 913 PIACK (plex IACK) signal indicating a response of the same data segment in the required plex / replica 904. Since 902 is a controller responsible for transmitting an IACK instructing the atomic transfer of the data, it does not transmit a PIAK. When 903 having sendHead receives the IACK signal 914, it sends a TCP ACK segment 912 to the client group. In addition to sending a client ACK segment upon arrival of an alternative TCP segment, the ACK segment may optionally be sent at the end of every complete request input. In addition, since the client ACK segment is transmitted when an exceptional condition such as segment arrival disorder or segment waiting time is detected, the client and server group are synchronized, and the TCP segment is missing. It will be re-transferred as soon as possible. Should the server node fail to receive the IACK that sent the PIACK, the PIACK and the active sendHead will respond with another IACK indicating the latest sequence of input data allowed to enter the node.

図10を参照すると、入力データは1本のバスの中でのように共有されるけれども、出力データが切替えられる場合の実施例のロジカルビューが図示されている。1000はピアグループからの入力データストリームである。1010はイーサネット(登録商標)のような多重放送されるかあるいは共有される情報媒体の入力データのみが共有される場合のロジカルハーフバスである。1020、1021および1022はそれぞれノード1030、1031および1032に対するバス入力端点を表す。1040、1041、および1042はデバイス1050を切替えるレイヤー2あるいはレイヤー3 IPに供給される出力端点である。1060は入力1000向けの作られるノード1030、1031および1032によって生み出される集合出力を表す。1000および1060はそれぞれ単一接続の入力および出力を形成する。   Referring to FIG. 10, there is illustrated a logical view of an embodiment where input data is shared as in a single bus, but output data is switched. 1000 is an input data stream from the peer group. Reference numeral 1010 denotes a logical half bus in the case where only input data of an information medium that is multiplexed or shared such as Ethernet (registered trademark) is shared. 1020, 1021 and 1022 represent bus input endpoints for nodes 1030, 1031 and 1032 respectively. Reference numerals 1040, 1041, and 1042 are output end points supplied to the layer 2 or layer 3 IP that switches the device 1050. 1060 represents the collective output produced by created nodes 1030, 1031 and 1032 for input 1000. 1000 and 1060 form a single connection input and output, respectively.

負荷の共有化と負荷の均衡化
次に、図11を参照すると、本発明の実施例による対称型マルチコンピューティングシステムが図示されている。サーバグループ(1112)は数多くのノード1100a,b,c,d,e,fから構成される。TCP接続(1109)の入力ストリーム(1110)にはグループノードにまたがる複数端点1110a,b,c,d,e,fがある。同様に、同一接続の出力ストリーム(1111)は端点1111a,b,c,d,e,fからなる。
Load Sharing and Load Balancing Next, referring to FIG. 11, a symmetric multicomputing system according to an embodiment of the present invention is illustrated. The server group (1112) includes a number of nodes 1100a, b, c, d, e, and f. In the input stream (1110) of the TCP connection (1109), there are a plurality of end points 1110a, b, c, d, e, and f across the group nodes. Similarly, the output stream (1111) of the same connection consists of end points 1111a, b, c, d, e, and f.

アプリケーションは全体グループにわたって各アプリケーションセグメント1113a,b、1114a,b、1115a,bに関して2つのインスタンスで実行する3つのセグメント(1113、1114、1115)からなる。通信システムをプログラミングすることによって、セグメント類はこれらの実行するオペレーション、これらが管理するデータのように基準に基づいた個々のタスクとともに搬送される。サービス用のリクエスト類の個別のサブセットが個々のアプリケーションのインスタンスに搬送されるようにデータ搬送を構成することによって、多くの場合、既存アプリケーションのコード変更をしないでもアプリケーションのセグメンテーションが実行される。アプリケーションは数多くの方法でセグメンテーション可能であり、その例類には、1セグメントが取扱い可能であるリクエストのタイプや種類、データ内容に基づくハッシングアルゴリズムあるいはシーケンス番号等のような接続情報に基づくセグメンテーションも含まれる。アプリケーションがセグメント類のプログラミングによって違うセグメントに分割されるといったこともささやかながら可能である。   The application consists of three segments (1113, 1114, 1115) running in two instances for each application segment 1113a, b, 1114a, b, 1115a, b across the entire group. By programming the communication system, segments are carried along with individual tasks based on criteria such as the operations they perform, the data they manage. By configuring data transport so that separate subsets of requests for services are transported to individual application instances, application segmentation is often performed without code changes to existing applications. Applications can be segmented in a number of ways, examples of which include segmentation based on connection information such as the type and type of request that a segment can handle, hashing algorithms based on data content, or sequence numbers. It is. It is also possible for the application to be divided into different segments by segment programming.

グループノードはレプリカ1100a,b、1100c,d、1100e,fとして、ペアにされるので、各ペアがそれぞれアプリケーションセグメント1113、1114、1115の2つのインスタンスを実行させる。あるセグメント、例えば、1100aがエラーとなると、ペア1100bが中断なくサービスを続ける。転送中に、あるインスタンス、例えば1100aにエラーが発生すると、他のインスタンス1100bが残りの応答をサービスの中断を避けてピアに送信する。同様に、エラーに直面してサービスを続けるために利用可能である付加されたインスタンスに当然のエラー許容性が増すよう新たなアプリケーションセグメントインスタンスがグループに加えられても良い。これは、例えば、アプリケーションセグメントインスタンスを実行させるとともに、その後、グループにこれが付加される新たなプロセスを創ることによって、その結果、リクエストがこれに配分されて行われることができる。   Since the group nodes are paired as replicas 1100a, b, 1100c, d, 1100e, f, each pair causes two instances of application segments 1113, 1114, 1115 to be executed. If a segment, for example, 1100a fails, pair 1100b continues to service without interruption. If an error occurs in one instance, eg, 1100a, during transfer, the other instance 1100b sends the remaining response to the peer avoiding service interruption. Similarly, new application segment instances may be added to the group to increase the natural error tolerance of added instances that are available to continue service in the face of errors. This can be done, for example, by running an application segment instance and then creating a new process where it is added to the group so that requests are allocated to it.

オペレーションのあるモードでは、グループの非エンプティサブセットがラウンドロビンのような特定の順番でリクエストとともに搬送されるとともに、リクエストはノード上の負荷を均衡させるよう前記非エンプティサブセット間に本質的に配分される優先順位の重み付けがされる。   In some modes of operation, non-empty subsets of groups are carried with requests in a specific order, such as round robin, and requests are essentially distributed among the non-empty subsets to balance the load on the nodes. Priorities are weighted.

オペレーションのあるモードでは、1以上のレプリカが1タスクとともに搬送され、タスクの完了後、インスタンスからの結果が他のレプリカを考慮することなしに接続を通じて送信される。レプリカのオペレーションの別のモードでは、1以上のレプリカが同一タスクとともに搬送されて良い。関連するレプリカは、その後、平行にオペレーションを実行するとともに、結果を出す。グループ対グループ通信システムの出力ストリーム時にインストールされた出力フィルターが結果を比較するとともに、結果の単一のインスタンスがピアグループに送信され、これによって、該グループはピアグループに対し単一のエンティティとして見える。ピアグループに転送される出力インスタンスの選定は対等出力、多数決一致、正解あるいは正常オペレーション出力等のようなフィルターに設定される方針次第である。方針の選定はアプリケーション次第である。セグメントインスタンスの転送エラーがあると、レプリカが中断することなく転送を引継ぐとともに継続する。   In one mode of operation, one or more replicas are carried with one task, and after the task is completed, the results from the instance are sent over the connection without considering other replicas. In another mode of replica operation, one or more replicas may be carried with the same task. The associated replica then performs the operation in parallel and yields the result. The output filter installed during the output stream of the group-to-group communication system compares the results, and a single instance of the results is sent to the peer group, which makes the group appear as a single entity to the peer group . The selection of the output instance to be transferred to the peer group depends on the policy set for filters such as peer output, majority vote match, correct answer or normal operation output. The choice of policy is up to the application. If there is a segment instance transfer error, the replica takes over and continues without interruption.

出力比較がノードによって生ずる様々な出力が指示される出力内容フィルターによって生ずる場合、レプリカのサブセットはエラーがあると見なされるとともに、残りの端点が接続の中断なしにサービスを続ける間は、接続にわたる以降のサービスから除外される。1端点の除外のある、ある実施例では、この除外は端点の大半が他を除外する結果と一致する場合のスキームに基づかれている。そうでない場合は、端点の除外はオペレーションにエラーがあった場合に起きることがある。端点の除外はフィルターでプログラム可能な特定スキームの任意のアプリケーションからであってもよい。   If the output comparison is caused by an output content filter where the various outputs produced by the node are directed, the subset of replicas are considered to be in error and the rest of the endpoints will continue to service without interruption of the connection. Excluded from services. In one embodiment with the exclusion of one endpoint, this exclusion is based on a scheme where the majority of endpoints are consistent with the result of excluding others. Otherwise, endpoint exclusion may occur if there is an error in the operation. The exclusion of endpoints may be from any application with a specific scheme programmable by the filter.

オペレーションのさらに別のモードでは、レプリカはメモリあるいはストレージの変更データのような状態変更を生ずるオペレーションで搬送される。このように、レプリカ類は一貫した状態を維持する。読み込みオペレーションのようなレプリカ間の一貫性に影響しないオペレーションの場合、タスクは該レプリカの1インスタンスのみに搬送される。これにより、レプリカ間の負荷を均衡させることが可能となる。   In yet another mode of operation, replicas are carried in operations that cause state changes such as memory or storage change data. In this way, the replicas maintain a consistent state. For operations that do not affect consistency between replicas, such as read operations, the task is conveyed to only one instance of the replica. This makes it possible to balance the load between replicas.

ノードの付加および退避
TCPグループ対グループ通信システムの接続端点におけるフィルターにより、データのアプリケーションセグメントへの搬送のきめの細かい制御が可能となる。動的にフィルターを構成することによって、一定のタスクが一定ノードに搬送され、ノードに対するタスクリクエストの搬送の外部制御が可能となる。その結果、アプリケーションセグメントへのリクエストストリームはノード間での細かいタスク分配のためのスイッチのように制御される。
Adding and saving nodes
A filter at the connection end point of a TCP group-to-group communication system allows fine-grained control of the transport of data to the application segment. By dynamically configuring the filter, a certain task is conveyed to a certain node, and external control of task request conveyance to the node becomes possible. As a result, the request stream to the application segment is controlled like a switch for fine task distribution among nodes.

グループはいつでもノードとともに付加されて良い。新たに付加されたノードは既存の接続からの負荷を共有して良い。既存の接続に関しては、ノードがサービスに加わるとともに、そこに到着するタスクの受付を開始する。必要な場合には、ノード間の負荷はタスクの移動によって均衡が取られる。   Groups can be added with nodes at any time. Newly added nodes may share loads from existing connections. For existing connections, the node joins the service and starts accepting tasks arriving there. When necessary, the load between nodes is balanced by task movement.

ノードの退避に関しては、ノードの負荷責任は、最低負荷化のようなスキームを利用して選択される別のラウンドロビンあるいはアプリケーション特有のスキームに移される。退避の間に、新たなタスクを受け付けない間、より小規模なタスクが完了するのを待ちながら、ノードは完全に解放される。処理時間の長いタスクが関係する場合には、システムレベルの処理移動のようなタスクの移動が利用される。スタックのようなアプリケーション処理の全体の前後関係のある処理の移動とともに、データオープンファイルが別のノードに明確に移動される。ノードはグループによって代表されるバーチャルエンティティのアドレスへの接続を創るグループの別のノードと通信する。これにより、グループノード間の通信向けの上述のすべての特徴が提供される。   For node evacuation, node load responsibility is transferred to another round robin or application specific scheme that is selected using a scheme such as minimum load. During the evacuation, the node is completely released while waiting for a smaller task to complete while not accepting a new task. When a task with a long processing time is involved, task movement such as system-level process movement is used. The data open file is clearly moved to another node along with the movement of the entire context of the application process such as the stack. A node communicates with another node in the group that creates a connection to the address of the virtual entity represented by the group. This provides all the features described above for communication between group nodes.

自動準備
システムにより変化するニーズを満足させるためにプールから自動的かつ動的にグループに対しリソースが付加される。同様に、ノードが退避されるとともに、動的かつ自動的に準備される。システムはクライアントに搬送されるサービスの品質を監視するとともに、リソースを付加したり退避させたりするサービスの具体的品質を維持する。オペレーションはシステム外部で実行可能であるとともに、ピアグループに対し潜在的にトランスペアレントである。この公開を読むと、技術に熟練した人々によう、本発明の公開された原理により単一接続上のグループ対グループ通信向けのさらに追加の代案の構造や機能の設計案が認められよう。従って、本発明の特定の実施例やアプリケーションが図示されかつ説明されてきた一方で、本発明はここで公開された精確な構造と構成要素に限定されないととともに、技術に熟練した人々にとって明らかであろう様々な修正案や変更案あるいは変型類が、付録の請求項に定められる本発明の精神と範囲を逸脱することなく、ここで公開された本発明の配置、オペレーションならび方法と装置の詳細においてなされて良いことが理解されるべきである。
Automatic preparation Resources are added to the group automatically and dynamically from the pool to meet the changing needs of the system. Similarly, nodes are evacuated and prepared dynamically and automatically. The system monitors the quality of the service delivered to the client and maintains the specific quality of the service that adds and evacuates resources. The operations can be performed outside the system and are potentially transparent to the peer group. After reading this publication, those skilled in the art will recognize additional alternative structure and functional design schemes for group-to-group communications over a single connection in accordance with the disclosed principles of the present invention. Thus, while specific embodiments and applications of the present invention have been illustrated and described, the present invention is not limited to the precise structure and components disclosed herein and is apparent to those skilled in the art. Various modifications, changes or variations that may be made, without departing from the spirit and scope of the present invention, as set forth in the appended claims, details of the arrangement, operation and method and apparatus disclosed herein. It should be understood that this may be done in

付随する図面と関連づけられる場合、本発明にはその他にも本発明の以下の詳細説明ならびに付録の請求項からさらに容易く明らかになる利点と特徴がある。
すなわち、
本発明のある実施例に応じて構成された通信システムの全般図である。 本発明のある実施例による通信システムを図示する1区分図である。 本発明のある実施例による1通信システムの実行用のよりレベルの高い構成要素の構成の1区分図を示す。 本発明のある実施例による1通信システムの最適性能向けのよりレベルの低い構成要素の実行の1区分図を示す。 本発明のある実施例による1通信システムの実行用のよりレベルの高い構成要素のハードウェア構成の1区分図を示す。 本発明のある実施例による1接続上の入力データ処理経路用の1ストリーム図を示す。 図3aの残り部分で、本発明のある実施例による1接続上の入力データ処理経路向けの1ストリーム図を示す。 本発明のある実施例による1接続上のインカミングデータにフィルターをかけるための1ストリーム図を示す。 本発明のある実施例によるノード内の公平性のため1回当たりの最大転送サイズを制限する間の1接続にわたる転送データ用の1ストリーム図を示す。 本発明のある実施例によるアクティブsendHead割当て用の リクエスト/グラントスキームの1区分図を示す。 本発明のある実施例によるsendHead用の 1リクエスト処理のための1ストリーム図を示す。 本発明のある実施例によるピアグループウインドーパブリシティ用のバーチャルウインドースキームを説明する1区分図を示す。 は本発明のある実施例による通信システム用のコンピューティングシステムの1区分図を示す。 は本発明のある実施例によるメインプロセッサの負荷軽減が準備される通信システム用のコンピューティングシステムの1区分図を示す。 本発明のある実施例による専用ハードウェア/アクセラレーターチップにメインプロセッサの負荷軽減が準備される通信システム用のコンピューティングシステムの1区分図を示す。 本発明のある実施例による通信システムの代案である一般化図式を示す。 本発明のある実施例によるクライアントグループとサーバグループの間のデータ搬送と応答スキームを図示する。 本発明のある実施例による実行のロジカルビューを図示する。 本発明のある実施例によるエラー許容性、負荷配分、負荷分担ならびに単一システムイメージのある対称型マルチコンピューティングシステムの一般化図式である。
The invention has other advantages and features that will become more readily apparent from the following detailed description of the invention and the appended claims when taken in conjunction with the accompanying drawings.
That is,
1 is a general view of a communication system configured in accordance with an embodiment of the present invention. 1 is a block diagram illustrating a communication system according to an embodiment of the present invention. FIG. FIG. 2 shows a block diagram of a configuration of higher level components for implementation of a communication system according to an embodiment of the present invention. FIG. 4 shows a one-part diagram of the execution of lower level components for optimal performance of a communication system according to an embodiment of the present invention. FIG. 2 shows a block diagram of a hardware configuration of higher level components for execution of a communication system according to an embodiment of the present invention. FIG. 4 shows a one-stream diagram for an input data processing path on one connection according to an embodiment of the present invention. The remainder of FIG. 3a shows a one-stream diagram for an input data processing path on one connection according to an embodiment of the present invention. FIG. 4 shows a stream diagram for filtering incoming data on a connection according to an embodiment of the present invention. FIG. 5 shows a stream diagram for transfer data over one connection while limiting the maximum transfer size per time for fairness within a node according to an embodiment of the present invention. FIG. 4 shows a block diagram of a request / grant scheme for active sendHead assignment according to an embodiment of the present invention. FIG. 6 shows a one-stream diagram for processing one request for sendHead according to an embodiment of the present invention. FIG. 3 shows a one-part diagram illustrating a virtual window scheme for peer group window publicity according to an embodiment of the present invention. FIG. 1 shows a block diagram of a computing system for a communication system according to an embodiment of the present invention. FIG. 1 shows a block diagram of a computing system for a communication system that is prepared for offloading of the main processor according to an embodiment of the present invention. 1 shows a block diagram of a computing system for a communication system in which a dedicated hardware / accelerator chip according to an embodiment of the present invention is prepared for offloading the main processor. FIG. Fig. 2 shows a generalized scheme which is an alternative to a communication system according to an embodiment of the present invention. Fig. 4 illustrates a data transport and response scheme between a client group and a server group according to an embodiment of the present invention. Fig. 4 illustrates a logical view of execution according to an embodiment of the invention. 1 is a generalized diagram of a symmetric multicomputing system with error tolerance, load distribution, load sharing and a single system image according to an embodiment of the present invention.

Claims (14)

データを転送するノードの決定、データの単一インスタンスの転送、ならびにデータを送信する転送制御の連続化が含まれる原子的搬送用のノード間の通信方法。
A method of communication between nodes for atomic transport that includes determining a node to transfer data, transferring a single instance of data, and continuation of transfer control to send data.
a.各グループに少なくとも1以上のノードが含まれる複数の端点が含まれる第1単独アドレスグループならびに第2単独アドレスグループ、b.各グループ間の通信用に可能な単一ロジカル接続をもつ通信プロトコル、c.各グループの非エンプティサブセット間通信を達成する第1単独アドレスグループのノードへのデータの応答を可能にするとともに、第2単独アドレスグループへのデータの転送を可能にする複数の端点が含まれるネットワークにおけるグループ間の通信用装置。
a first single address group and a second single address group each including a plurality of end points including at least one node in each group, and b. a communication protocol having a single logical connection capable of communication between the groups. C. A plurality of endpoints that enable response of data to a node of the first single address group that achieves communication between the non-empty subsets of each group and that allow transfer of data to the second single address group; A device for communication between groups in an included network.
各グループ間のデータ通信がどちらかのグループの仲介ノードを通過しない請求項2の装置
The apparatus according to claim 2, wherein data communication between the groups does not pass through an intermediary node of either group.
端点にプロトコルスタックが含まれる請求項2の装置
The apparatus of claim 2, wherein the endpoint includes a protocol stack.
ノードに1処理あるいは1デバイスからなるグループからのものが含まれる請求項2の装置
3. The apparatus of claim 2, wherein the node includes one from a group consisting of one process or one device.
各グループが単独アドレスによる別のグループにアドレス可能である請求項2の装置
The apparatus of claim 2 wherein each group is addressable to another group by a single address.
通信プロトコルに「転送制御プロトコル」(TCP)が含まれる請求項2の装置
The apparatus of claim 2, wherein the communication protocol includes a "transfer control protocol" (TCP).
a各グループに少なくとも1ヶ所のノードが含まれる複数の端点が含まれる.第1単独アドレスグループならびに第2単独アドレスグループ、b.各グループ間の通信用に可能な単一ロジカル接続を持つ通信プロトコル、c.データの第1単独アドレスグループにおけるノードへの応答が可能であるとともに、各グループの非エンプティサブセット間の通信を達成するためデータを第2単独アドレスグループまで転送可能な複数の端点が含まれるネットワークにおけるグループ間の通信用装置
a) Multiple endpoints with at least one node in each group, 1st single address group and 2nd single address group, b. Communication protocol with a single logical connection possible for communication between each group C. Includes multiple endpoints capable of responding to nodes in the first single address group of data and transferring data up to the second single address group to achieve communication between the non-empty subsets of each group For communication between groups in a network
各グループ間のデータ通信がいずれかのグループの仲介ノードを通過しない請求項8の装置
9. The apparatus of claim 8, wherein data communication between each group does not pass through any group of intermediary nodes.
1端点に1プロトコルスタックが含まれる請求項8の装置
The apparatus of claim 8, wherein one endpoint includes one protocol stack.
前記プロトコルが前記グループによって送信された順番にデータの搬送を保証する請求項8による装置
9. The apparatus according to claim 8, wherein the protocol guarantees the transport of data in the order transmitted by the group.
前記端点がノードにある場合の請求項8による装置
Device according to claim 8, wherein the end point is at a node.
前記端点が前記ノードの外部にある場合の請求項8による装置
9. The apparatus according to claim 8, wherein the end point is outside the node.
前記2グループのメンバー権が前記接続の寿命中に変動する場合の請求項8による装置


9. Apparatus according to claim 8, wherein the membership of the two groups varies during the lifetime of the connection.


JP2006527145A 2003-09-22 2004-09-21 Group-to-group communication and error-tolerant symmetric multicomputing system on a single connection Pending JP2007520093A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US50509903P 2003-09-22 2003-09-22
US50509103P 2003-09-22 2003-09-22
US10/942,763 US8086747B2 (en) 2003-09-22 2004-09-15 Group-to-group communication over a single connection
US10/942,260 US7525902B2 (en) 2003-09-22 2004-09-15 Fault tolerant symmetric multi-computing system
PCT/US2004/031020 WO2005031588A1 (en) 2003-09-22 2004-09-21 Group-to-group communication over a single connection and fault tolerant symmetric multi-computing system

Publications (1)

Publication Number Publication Date
JP2007520093A true JP2007520093A (en) 2007-07-19

Family

ID=34397183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006527145A Pending JP2007520093A (en) 2003-09-22 2004-09-21 Group-to-group communication and error-tolerant symmetric multicomputing system on a single connection

Country Status (6)

Country Link
EP (1) EP1668527A4 (en)
JP (1) JP2007520093A (en)
KR (1) KR20060090810A (en)
AU (1) AU2004277204A1 (en)
CA (1) CA2538084A1 (en)
WO (1) WO2005031588A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10173654A (en) * 1996-12-06 1998-06-26 Nec Corp Application sharing system
JPH10336176A (en) * 1997-06-04 1998-12-18 Nippon Telegr & Teleph Corp <Ntt> Group communication method, its system and storage medium for storing group communication program
JPH1198137A (en) * 1997-09-17 1999-04-09 Toshiba Corp Method for constructing communication network
JPH11196112A (en) * 1997-10-31 1999-07-21 Fujitsu Ltd Multi-case transmission method
JP2000324155A (en) * 1999-05-14 2000-11-24 Hitachi Ltd Multicast communication system
JP2001326685A (en) * 2000-05-18 2001-11-22 Nec Eng Ltd Multicast transmission system and its destination database management system
JP2002063088A (en) * 2000-07-07 2002-02-28 Internatl Business Mach Corp <Ibm> Method of data communication

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155736A (en) * 1998-11-24 2000-06-06 Nec Corp Method for distributing service request and address converting device
US6801949B1 (en) * 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US7143131B1 (en) * 2001-05-04 2006-11-28 Microsoft Corporation Transmission control protocol
US6829637B2 (en) * 2001-07-26 2004-12-07 International Business Machines Corporation Distributed shared memory for server clusters

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10173654A (en) * 1996-12-06 1998-06-26 Nec Corp Application sharing system
JPH10336176A (en) * 1997-06-04 1998-12-18 Nippon Telegr & Teleph Corp <Ntt> Group communication method, its system and storage medium for storing group communication program
JPH1198137A (en) * 1997-09-17 1999-04-09 Toshiba Corp Method for constructing communication network
JPH11196112A (en) * 1997-10-31 1999-07-21 Fujitsu Ltd Multi-case transmission method
JP2000324155A (en) * 1999-05-14 2000-11-24 Hitachi Ltd Multicast communication system
JP2001326685A (en) * 2000-05-18 2001-11-22 Nec Eng Ltd Multicast transmission system and its destination database management system
JP2002063088A (en) * 2000-07-07 2002-02-28 Internatl Business Mach Corp <Ibm> Method of data communication

Also Published As

Publication number Publication date
KR20060090810A (en) 2006-08-16
EP1668527A4 (en) 2010-02-24
AU2004277204A1 (en) 2005-04-07
EP1668527A1 (en) 2006-06-14
WO2005031588A1 (en) 2005-04-07
CA2538084A1 (en) 2005-04-07

Similar Documents

Publication Publication Date Title
US7911939B2 (en) Fault tolerant symmetric multi-computing system
US8086747B2 (en) Group-to-group communication over a single connection
US11470000B2 (en) Medical device communication method
US6665304B2 (en) Method and apparatus for providing an integrated cluster alias address
US7403535B2 (en) Aggregation of network resources providing offloaded connections between applications over a network
US7640364B2 (en) Port aggregation for network connections that are offloaded to network interface devices
US7551614B2 (en) Aggregation over multiple processing nodes of network resources each providing offloaded connections between applications over a network
US7644159B2 (en) Load balancing for a server farm
US6370583B1 (en) Method and apparatus for portraying a cluster of computer systems as having a single internet protocol image
US20090182846A1 (en) System and method for transferring data in high latency firewalled networks
EP2737685A2 (en) Transporting operations of arbitrary size over remote direct memory access
JPH11145990A (en) Trunk-based operation of &#39;ethernet(r)&#39; compatible network
JP2008535342A (en) Network communication for operating system partitions
US7831731B2 (en) Method and system for a modular transmission control protocol (TCP) rare-handoff design in a streams based transmission control protocol/internet protocol (TCP/IP) implementation
JP2004531001A (en) Data transfer between host computer system and Ethernet adapter
EP1699417B1 (en) Interprocessor communication network providing dynamic dedication of ports
US20040267960A1 (en) Force master capability during multicast transfers
US7444432B2 (en) System and method for an efficient transport layer transmit interface
Lorenz et al. Modular TCP handoff design in STREAMS–based TCP/IP implementation
JP2007520093A (en) Group-to-group communication and error-tolerant symmetric multicomputing system on a single connection
Alavalapati A study of the effect of some protocol implementation parameters on the performance of heterogeneous local area networks
Qadeer et al. Apportioning Bandwidth to Clients as per Privileges

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100518