JP2008211682A - 受信プログラム、送信プログラム、送受信システム、および送受信方法 - Google Patents
受信プログラム、送信プログラム、送受信システム、および送受信方法 Download PDFInfo
- Publication number
- JP2008211682A JP2008211682A JP2007048143A JP2007048143A JP2008211682A JP 2008211682 A JP2008211682 A JP 2008211682A JP 2007048143 A JP2007048143 A JP 2007048143A JP 2007048143 A JP2007048143 A JP 2007048143A JP 2008211682 A JP2008211682 A JP 2008211682A
- Authority
- JP
- Japan
- Prior art keywords
- transmission
- packet
- data
- order information
- reception
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【解決手段】送信元コンピュータ101は、異なるパケット間の送信順序を示す送信順序情報104を管理し、同じ送信対象データ103に対しては同じ送信順序情報104を付加して二つのパケット105と106を作成し、それぞれ経路107と108を介して送信先コンピュータ102に送信する。送信先コンピュータ102は、過去に受信したパケットに含まれる送信順序情報にもとづいて、次に受信されると期待されるパケットに対応する順序を表す受信順序情報111を管理し、受信したパケット105または106から送信順序情報109または110を取得して受信順序情報111と比較し、比較の結果、パケットの重複や消失を判断する。
【選択図】図1
Description
Protocol)とUDP(User Datagram Protocol)は広く利用されているプロトコルである。TCPとUDPはいずれもOSI(Open Systems Interconnection)参照モデルのトランスポート層(レイヤ4ともいう)のプロトコルであり、ネットワーク層(レイヤ3ともいう)のプロトコルであるIP(Internet Protocol)と組み合わされて広く利用されている。
・TCPは送信先までデータが到達することを保証するプロトコルだが、UDPはそのような保証をしないプロトコルである。
・TCPは実際の通信を開始する前にコネクションを確立するコネクション型のプロトコルだが、UDPはコネクションレス型のプロトコルである。
UDPのようにデータの到達を保証しない通信プロトコルを使う場合に、信頼性を高める方法には、一般的に次の第一の方法と第二の方法がある。
パケットが送信先コンピュータに届く。また、複数の経路が正常な場合、複数の同内容のパケットが送信先コンピュータに届くが、重複して届いたパケットは重複したと判断される。一方、送信先コンピュータは、パケットの順序が入れ替わって受信された場合や、複数の経路のすべてが異常でパケットが消失した場合など、送信された順序どおりにパケットを受信することができなかった場合を、上記消失判断ステップにより判別することができる。
送信元コンピュータ101から送信先コンピュータ102に送信する対象のデータは、送信対象データ103である。送信元コンピュータ101と送信先コンピュータ102は複数の通信経路(以下、単に「経路」という)により接続されている。各経路は、有線、無線、またはその組み合わせによる経路である。図1には二つの経路107と108を図示してある。経路107と108を介した通信は、データの到達を保証しないプロトコルにより行われる。また、データはそのプロトコルで定義されたパケットの形式で送信され
る。プロトコルの例はUDPである。
03に対しては同じ送信順序情報104を付加して、二つのパケット105と106を作成する。送信元コンピュータ101が備える不図示の送信部は、パケット105と106をそれぞれ経路107と108を介して送信先コンピュータ102に送信する。例えば、パケット作成部は本発明による送信プログラムを実行するCPUにより実現され、送信部はそのCPUと通信インターフェイスにより実現される。
すべきデータが格納される共有メモリ205と、不図示のCPUとを備える。共有メモリ205はRAMなどの揮発性メモリであり、ハードディスクなどの不揮発性領域に比べてアクセス速度が格段に速い。なお、同期化の処理自体に必要なデータを格納する不図示の他のメモリ領域もコンピュータ201は備えている。その領域を以下では「制御用データ領域」と呼ぶ。本実施形態では、コンピュータ201が備えるRAMの一部が共有メモリ205として利用され、その残りが制御用データ領域として利用される。制御用データ領域には、図1の送信順序情報104や受信順序情報111が格納される。スタンバイ装置202も共有メモリ206と不図示のCPUを備え、アクティブ装置201と同様に構成されている。
れる通信プロトコルはUDPである。UDPによる通信機能は一般にOSにより提供されるので、OSの上位のミドルウェアにより実現される共有メモリ制御部213および214は、UDPを利用して第一経路215または第二経路216を介した通信を行うことができる。
まず、ユーザアプリケーション207から点Aまでの線に示すように、ユーザアプリケーション207は、(1)の書き込み操作で共有メモリ205に書き込んだデータ209と同じデータを共有メモリ制御部213に与える。矢印は点Aで二つに分岐し、一方は第一経路215を介して点Bへ進み、他方は第二経路216を介して点Dに進む。この分岐は、共有メモリ制御部213が、データ209を含むパケットを二つの経路のそれぞれを介してスタンバイ装置202に送信することを表す。
06の同期化が終了したことを検知し、(3)の待ち状態から脱する。
自分のIPアドレス」と「自分のポート番号」の組により表される。
共有メモリ制御部213が実現される。同様に、コンピュータ202の不図示のCPUがヘルスチェックスレッド402、データ送信スレッド404、データ受信スレッド406、第一経路受信スレッド408、および第二経路受信スレッド410を実行することにより、共有メモリ制御部214が実現される。
ヘルスチェックスレッド401は、第一経路215と第二経路216の状態を監視する。具体的には、ヘルスチェックスレッド401は、一定間隔でコンピュータ202から送信される、経路の状態を監視するためのパケットの受信間隔にもとづいて、経路の状態を判断する。その監視用のパケットを以下では「ヘルスチェックパケット」と呼び、具体的な形式は図5とあわせて後述する。
コンピュータ202において、コンピュータ201にヘルスチェックパケットを送信するのは、具体的にはヘルスチェックスレッド402である。ヘルスチェックスレッド402は、第一経路215と第二経路216のそれぞれについて、データ転送制御表302を参照して「通信相手のIPアドレス」と「通信相手のポート番号」宛てのヘルスチェックパケットを生成する。ヘルスチェックスレッド402は、第一経路215へはUDPポート412から、第二経路216へはUDPポート414から、生成したヘルスチェックパケットを送出する。
、スタンバイ装置として運用されているコンピュータ202へ送信する。データ209は図1の送信対象データ103に相当する。データ209はUDPパケットの形式で送信される。そのUDPパケットを以下では「共有メモリデータパケット」と呼び、形式は図5とあわせて後述する。共有メモリデータパケットは、図1のパケット105と106に相当する。
データ受信スレッド405は、第一経路受信スレッド407および第二経路受信スレッド409が受信したデータを適宜処理する。具体的には、データ受信スレッド405は、コンピュータ201がアクティブ装置として運用されているか否かによらず、コンピュータ202から送られた各種の制御用パケットを処理する。また、コンピュータ201がスタンバイ装置として運用されているとき、データ受信スレッド405はさらに、共有メモリデータパケットを処理する。その処理は、共有メモリデータパケットの重複や消失を判断すること、重複していない共有メモリデータパケットの内容を共有メモリ205に反映すること、必要に応じてACKパケットを送信するようデータ送信スレッド403に要求すること、を含む。
なお、受信に関してはデータ受信スレッド405と第一経路受信スレッド407と第二
経路受信スレッド409の三つがあるのに対し、送信に関してはデータ送信スレッド403のみである理由は、図3がスレッドを示す図だからである。パケットはいつ受信されるかが不明なため、本実施例では、常にUDPポート411を監視する第一経路受信スレッド407と、常にUDPポート413を監視する第二経路受信スレッド409と、受信したパケットに関する実質的な処理を行うデータ受信スレッド405を分けてある。一方、パケットを送信する場合は、送信のタイミング、送信元のUDPポート、送信するパケットの種別はすべてデータ送信スレッド403が把握している。よって、データ送信スレッド403だけで、送信すべきパケットの生成から実際の送信までを行うことが容易でもあり自然でもある。
は404により設定される。この二つのフィールドの値を組み合わせた情報が、図1の送信順序情報104に相当する。
本実施形態では、コンピュータ201に電源が投入されたとき、または再起動されたとき、通番管理テーブル601の三つのフィールドの値はどれも自動的に0に設定され、図6の通番管理テーブル601aの状態になると仮定している。つまり、本実施形態では、0という値は有効な値に初期化される前の例外的な値である。そして、電源が投入された後、または再起動された後の1回目の共有メモリデータパケット504の送信時には、ステップS101において送信通番が1に設定される。
た日時を表す値Aを通番管理テーブル601のリフレッシュIDフィールドに登録する。その結果は、図6の通番管理テーブル601bのとおりである。
図7は、図6のステップS104で送信されたリフレッシュ要求パケット502をスタンバイ装置202が受信するリフレッシュ要求受信処理のフローチャートである。
ト502から読み取ったリフレッシュIDをリフレッシュ応答パケット503‐1と503‐2のリフレッシュIDフィールドに設定する。また、データ送信スレッド404は、データ転送制御表302の自分のIPアドレスと通信相手のIPアドレスを参照して適切なIPヘッダをリフレッシュ応答パケット503‐1と503‐2に付加する。
モリデータパケット504‐1を第一経路受信スレッド408が受信するか、ステップS109で第二経路216を介して送信された共有メモリデータパケット504‐2を第二経路受信スレッド410が受信する。
p<tとなるのは、過去に受信して処理済みの共有メモリデータパケット504と同内容の共有メモリデータパケット504を、別の経路を介して重複して受信した場合である。つまり、図6のステップS101で一緒に作成された二つの共有メモリデータパケット504のうちの一方が過去の図9のループにおいて受信されて処理済みであり、他方が今回のループのステップS401で受信された場合に、p<tとなる。「p<t」なる式は、図1の受信順序情報111が送信順序情報109または110よりも後の順序を示すことに対応する。
p=tとなるのは、次に処理すべき共有メモリデータパケット504を受信した場合である。なお「処理すべき」とは、本実施形態では、共有メモリデータフィールドの内容を共有メモリ206に反映する処理を行うべきことを意味する。この場合、その処理を行う
ためにステップS405に移行する。つまり、「p=t」とは、次に受信されると期待される順序に対応するパケットが、まさに今回のループで受信されたことを表し、図1の受信順序情報111が送信順序情報109または110と同じ順序を示す場合に該当する。
p>tとなるのは、連続してアクティブ装置201から送信された、異なる順序に対応する複数の共有メモリデータパケット504のうちの一つ以上が、何らかの理由でスタンバイ装置202に到達しなかった場合である。つまり、p>tのとき、スタンバイ装置202から見ると、連続する複数の共有メモリデータパケット504のうちの一部が消失した状態である。「p>t」なる式は、図1の受信順序情報111が送信順序情報109または110よりも前の順序を示すことに対応する。
ステップS405では、今回のループのステップS401で受信された共有メモリデータパケット504の共有メモリデータフィールドの内容を、データ受信スレッド406が共有メモリ206に反映する。ステップS405は、図2で点Bから共有メモリ206に向かう矢印に対応する。ステップS405の処理を終えるとデータ受信スレッド406は、ステップS406の処理を行うようデータ送信スレッド404に要求する。
3により、通番管理テーブル601は状態AC102になる。ここで、送信通番が1、リフレッシュIDがAである。
03でp=tと判定されるので、ステップS406でACKパケット505がアクティブ装置201に送信される。また、ステップS407で受信通番が3に更新されて通番管理テーブル602は状態ST106のようになる。
図11のうち、状態AC201、状態ST201、状態AC202からなる部分と、状態ST201から状態ST202への更新を表す部分は、正常な送信に対応する部分である。すなわち、通番フィールドの値が1の共有メモリデータパケット504が問題なくアクティブ装置201から送信されてスタンバイ装置202で受信され、対応するACKパケット505が問題なくスタンバイ装置202からアクティブ装置201へ返信され、通番管理テーブル602の受信通番が1から2に更新されるまでの過程は正常である。状態AC201、状態ST201、状態AC202、状態ST202はそれぞれ図10の状態AC104、状態ST104、状態AC105、状態ST105と同様である。
そこで、次にユーザアプリケーション207が共有メモリ206へのデータ209の反映を共有メモリ制御部213に要求すると、図6のステップS101により通番管理テーブル601の送信通番が3に更新され、更新後の状態は状態AC204となる。そして、この状態AC204でステップS102の判定は「NO」となり、ステップS106〜S109が実行される。それにより送信される共有メモリデータパケット504の通番フィールドの値は3、リフレッシュIDフィールドの値はAである。
図11のとおり、通番フィールドの値が1の共有メモリデータパケット504を受信することにより、通番管理テーブル602は状態ST202の状態となる。つまり、スタンバイ装置202は次に処理すべき共有メモリデータパケット504として、通番フィールドの値が2のものを期待している状態になる。
る。
次に、図12を参照して、アクティブ装置201を再起動した場合の例を説明する。図12の状態AC301、状態ST301、状態AC302、状態ST302からなる部分は、リフレッシュIDがAの状態で、通番フィールドの値が20の共有メモリデータパケット504が正常に送信されて受信され、対応するACKパケット505が正常に送信されて受信されることを表している。この部分は、具体的な数値以外は、図10の状態AC104、状態ST104、状態AC105、状態ST105からなる部分と同様である。
レッシュIDは同じ値の通番同士を識別する値であり、この誤認を防ぐために利用される。なお、リフレッシュIDが識別する「通番」は、送信通番と受信通番の双方である。
Network)内の同じセグメントに含まれるなど、ネットワーク上の位置が近いことが好ましい。なぜなら、ルータによるルーティングを必要とするような、ネットワーク上で離れ
た位置にコンピュータ700と通信相手のコンピュータ713があると、複数の経路が重なってしまうことが多く、経路を多重化する効果が薄れるからである。例えば、複数の経路のすべてが特定のルータを経由する場合、そのルータの不具合が全経路に影響する。また、一般的に、コンピュータ700と通信相手のコンピュータ713のネットワーク上の位置が遠いほど、パケットの消失も起こりがちである。パケットの消失が多いほど、本発明を適用したシステム全体の性能も低下する。
上記では主に、2台の装置間のデータの同期化のためのデータ送信に本発明を利用する場合について説明したが、当然その他の目的のデータ送信にも本発明は適用可能である。データ送信の目的によって、受信したパケットの内容を使って具体的にどのような処理を行うかも異なる。
リケーションに要求する処理に置き換えられる。
応答パケット503が正常に受信されなくても、通番管理テーブル601と602のリフレッシュIDを適切に同期させることは可能である。そのためには、例えば、アクティブ装置201の共有メモリ制御部213がタイムアウトして、再度リフレッシュ要求パケット502の送信からやり直せばよい。リフレッシュ要求パケット502やACKパケット505も同様に、少なくとも一つの経路を介して送信すればよく、すべての経路を介して送信しなくてもよい。
る。
・ハードウェアの増設を避けるために、複数の経路がハードウェアを共有することは可能である。しかし、同じハードウェアを共有する経路の数が増えるほど、そのハードウェアでエラーが発生しやすくなる。例えば、同一のケーブルを共有する経路の数を増やすほど、そのケーブル上のトラフィック量が増加し、そのケーブル内で衝突などのエラーが発生しやすくなる。
また、図5に示したパケットの形式も、実施形態に応じて変形することができる。各フィールドの長さやフィールドの並び順は実施形態によって任意である。また、パケットの種別をTYPE1とTYPE2により階層的に分類せず、一つのフィールドだけでパケットの種別を示してもよいことは当然である。また、実施形態によってはリフレッシュIDフィールドが不要なこともある。
(付記1)
データの到達を保証しないプロトコルにより送信元コンピュータから複数の経路のそれぞれを介して、異なるパケット間の送信順序を示す送信順序情報を含めて送信された同内容のパケットを受信して、パケットの重複および消失を判別する処理を送信先コンピュータに制御させる受信プログラムであって、
前記複数の経路のいずれを介して送信された前記パケットでも受信する受信ステップと、
受信した前記パケットから、前記送信順序情報を取得する送信順序情報取得ステップと
、
過去に受信した前記パケットの前記送信順序情報にもとづいて管理され、次に受信されると期待されるパケットに対応する順序を表す受信順序情報を、格納手段から取得する受信順序情報取得ステップと、
前記送信順序情報が表す第一の順序と前記受信順序情報が表す第二の順序を比較する比較ステップと、
前記第一の順序が前記第二の順序よりも前の場合に、前記受信ステップで受信した前記パケットが、過去に受信した他のパケットと重複すると判断する重複判断ステップと、
前記第一の順序と前記第二の順序が等しい場合に、前記格納手段に格納された前記受信順序情報が表す順序が前記第二の順序の次の順序になるよう前記格納手段を更新する正常処理ステップと、
前記第一の順序が前記第二の順序よりも後の場合に、パケットの消失が生じたと判断する消失判断ステップと、
を前記送信先コンピュータに実行させることを特徴とする受信プログラム。
(付記2)
前記受信順序情報は番号を含み、
前記正常処理ステップでは、前記受信順序情報に含まれる前記番号に1を加算または減算することにより、前記受信順序情報が更新される、
ことを特徴とする付記1に記載の受信プログラム。
(付記3)
前記正常処理ステップでさらに前記送信先コンピュータに、前記パケットの送達確認を前記送信元コンピュータへ送信させることを特徴とする付記1に記載の受信プログラム。(付記4)
前記消失判断ステップでさらに前記送信先コンピュータに、前記送信順序情報にもとづいて前記格納手段を更新させることを特徴とする付記1に記載の受信プログラム。
(付記5)
前記消失判断ステップでさらに前記送信先コンピュータに、パケットの消失を前記送信元コンピュータに通知させることを特徴とする付記1に記載の受信プログラム。
(付記6)
前記送信順序情報と前記受信順序情報はいずれも、有限の桁数の番号と、同じ値の前記番号同士を識別するための識別情報の双方を含み、
前記送信元コンピュータから送信された、前記識別情報の更新を要求するリフレッシュ要求パケットを受信した場合は、
前記受信順序情報に含まれる前記識別情報が、前記リフレッシュ要求パケットが指定する値になるよう前記格納手段を更新する識別情報更新ステップと、
前記リフレッシュ要求パケットの送達確認を前記送信元コンピュータへ送信する送達確認ステップと、
をさらに前記送信先コンピュータに実行させることを特徴とする付記1に記載の受信プログラム。
(付記7)
前記比較ステップでは、前記受信ステップで受信した前記パケットに含まれる前記識別情報と、前記受信順序情報に含まれる前記識別情報が等しくなければ、前記第一の順序が前記第二の順序よりも前だと判断される、
ことを特徴とする付記6に記載の受信プログラム。
(付記8)
前記識別情報は、日付または時刻の少なくとも一方にもとづく情報であることを特徴とする付記6に記載の受信プログラム。
(付記9)
前記プロトコルはUDPであることを特徴とする付記1に記載の受信プログラム。
(付記10)
データの到達を保証しないプロトコルによる送信先コンピュータへのデータの送信処理を送信元コンピュータに制御させる送信プログラムであって、
異なるパケット間の送信順序を示す送信順序情報を格納手段から取得する送信順序情報取得ステップと、
前記格納手段に格納されている前記送信順序情報を更新する送信順序情報更新ステップと、
同じ前記送信順序情報および同じ送信対象のデータを含む、複数の経路のそれぞれに対応する複数のパケットを作成するパケット作成ステップと、
前記複数の経路のそれぞれを介して前記プロトコルにより前記複数のパケットを前記送信先コンピュータに送信する送信ステップと、
を前記送信元コンピュータに実行させることを特徴とする送信プログラム。
(付記11)
前記送信順序情報は番号を含み、
前記送信順序情報更新ステップでは、前記送信順序情報に含まれる前記番号に1を加算または減算することにより、前記送信順序情報が更新される、
ことを特徴とする付記10に記載の送信プログラム。
(付記12)
前記送信順序情報は、有限の桁数の番号と、同じ値の前記番号同士を識別するための識別情報とを含み、
前記番号が所定の値に等しい場合に、前記送信プログラムは、前記送信ステップよりも前に、
前記識別情報を更新する識別情報更新ステップと、
更新された前記識別情報を前記送信先コンピュータに設定するよう要求するリフレッシュ要求パケットを前記送信先コンピュータに送信するリフレッシュ要求ステップと、
前記リフレッシュ要求パケットの送達確認が前記送信先コンピュータから送信されるのを待つ送達確認待ちステップと、
を前記送信元コンピュータに実行させる、
ことを特徴とする付記10に記載の送信プログラム。
(付記13)
前記識別情報更新ステップにおいて前記識別情報は、該識別情報更新ステップが実行される日付または時刻の少なくとも一方にもとづいて更新されることを特徴とする付記12に記載の送信プログラム。
(付記14)
前記複数の経路のそれぞれの状態を監視する監視ステップをさらに前記送信元コンピュータに実行させ、
前記送信ステップにおいて、前記送信元コンピュータに、前記監視ステップにより前記状態が悪いと判断された前記経路を介した送信を省略させる、
ことを特徴とする付記10に記載の送信プログラム。
(付記15)
前記監視ステップは、所定の間隔で前記送信先コンピュータが前記複数の経路のそれぞれを介して前記送信元コンピュータに送信する監視用パケットを受信し、前記監視用パケットの受信間隔にもとづいて前記複数の経路のそれぞれの前記状態を判断するステップであることを特徴とする付記14に記載の送信プログラム。
(付記16)
データの到達を保証しないプロトコルにより複数の経路のそれぞれを介して第一のコンピュータが第二のコンピュータにパケットを送信するシステムであって、
前記第一のコンピュータが、
異なるパケット間の送信順序を示す送信順序情報を格納する送信順序情報格納手段と、
前記送信順序情報を取得してから、前記送信順序情報格納手段に格納された前記送信順序情報を更新する送信順序情報更新手段と、
取得された同じ前記送信順序情報および同じ送信対象のデータを含む、前記複数の経路のそれぞれに対応する複数のパケットを作成するパケット作成手段と、
前記複数の経路のそれぞれを介して前記プロトコルにより前記複数のパケットを前記第二のコンピュータに送信する送信手段とを備え、
前記第二のコンピュータが、
前記複数の経路のいずれを介して送信された前記パケットでも受信する受信手段と、
過去に受信した前記パケットの前記送信順序情報にもとづいて管理され、次に受信されると期待されるパケットに対応する順序を表す受信順序情報を格納する受信順序情報格納手段と、
受信した前記パケットに含まれる前記送信順序情報が表す第一の順序と、前記受信順序情報が表す第二の順序を比較して、前記第一の順序が前記第二の順序よりも前の場合は受信した前記パケットが過去に受信した他の前記パケットと重複すると判断し、前記第一の順序が前記第二の順序よりも後の場合はパケットの消失が生じたと判断する比較判断手段と、
前記第一の順序と前記第二の順序が等しい場合に、前記受信順序情報が表す順序が前記第二の順序の次の順序になるよう前記受信順序情報格納手段を更新する正常処理手段と、
を備えることを特徴とするシステム。
(付記17)
前記第一のコンピュータが、前記第二のコンピュータと同様の受信手段、受信順序情報格納手段、比較判断手段、および正常処理手段を備え、
前記第二のコンピュータが、前記第一のコンピュータと同様の送信順序情報格納手段、送信順序情報更新手段、パケット作成手段、および送信手段を備え、
前記第一のコンピュータから前記第二のコンピュータへの前記パケットの送信と、前記第二のコンピュータから前記第一のコンピュータへの前記パケットの送信の双方が行われる、
ことを特徴とする付記16のシステム。
(付記18)
前記第一のコンピュータが第一の記憶装置を備え、
前記第二のコンピュータが第二の記憶装置を備え、
前記第一のコンピュータと前記第二のコンピュータが、それぞれ現用装置と該現用装置に対応する待機装置として機能し、
前記第一の記憶装置に格納されたデータを前記第一のコンピュータが前記第二のコンピュータに送信し、受信したデータを前記第二のコンピュータが前記第二の記憶装置に上書きすることにより、前記第一の記憶装置と前記第二の記憶装置がそれぞれ格納するデータが同期化される、
ことを特徴とする付記16に記載のシステム。
(付記19)
データの到達を保証しないプロトコルにより複数の経路のそれぞれを介して、第一の装置が第二の装置に、異なるパケット間の送信順序を示す送信順序情報を含めてパケットを送信する方法であって、
前記第一の装置において、
同じ前記送信順序情報および同じ送信対象のデータを含む、前記複数の経路に対応する複数のパケットを作成し、
前記複数の経路のそれぞれを介して前記プロトコルにより前記複数のパケットを前記第二の装置に送信し、
前記第二の装置において、
前記複数の経路の一つから受信した前記パケットの前記送信順序情報が、過去に受信したパケットの前記送信順序情報と重複する場合は、前記パケットを破棄する、
ことを特徴とする方法。
(付記20)
前記第二の装置において、
次に受信されると期待されるパケットに対応する順序を表す情報を、過去に受信した前記パケットの前記送信順序情報にもとづいて、受信順序情報として管理し、
受信した前記パケットの前記送信順序情報と前記受信順序情報が表す順序が等しければ、受信した前記パケットを処理する、
ことを特徴とする付記19に記載の方法。
102 送信先コンピュータ
103 送信対象データ
104、109、110 送信順序情報
105、106 パケット
107、108 経路
111 受信順序情報
201 コンピュータ、アクティブ装置
202 コンピュータ、スタンバイ装置
203 仮想共有メモリ
205、206 共有メモリ
207 ユーザアプリケーション
209、210 データ
210 データ
211、212 ミドルウェア群
213、214 共有メモリ制御部
215 第一経路
216 第二経路
301、302 データ転送制御表
401、402 ヘルスチェックスレッド
403、404 データ送信スレッド
405、406 データ受信スレッド
407、408 第一経路受信スレッド
409、410 第二経路受信スレッド
411〜414 UDPポート
501 ヘルスチェックパケット
502 リフレッシュ要求パケット
503 リフレッシュ応答パケット
504 共有メモリデータパケット
505 ACKパケット
601a、601b、602a、602b 通番管理テーブル
700 コンピュータ
701 CPU
702 ROM
703 RAM
704 通信インターフェイス
705 入力装置
706 出力装置
707 記憶装置
708 駆動装置
709 バス
710 可搬型記憶媒体
711 ネットワーク
712 プログラム提供者
713 通信相手のコンピュータ
Claims (8)
- データの到達を保証しないプロトコルにより送信元コンピュータから複数の経路のそれぞれを介して、異なるパケット間の送信順序を示す送信順序情報を含めて送信された同内容のパケットを受信して、パケットの重複および消失を判別する処理を送信先コンピュータに制御させる受信プログラムであって、
前記複数の経路のいずれを介して送信された前記パケットでも受信する受信ステップと、
受信した前記パケットから、前記送信順序情報を取得する送信順序情報取得ステップと、
過去に受信した前記パケットの前記送信順序情報にもとづいて管理され、次に受信されると期待されるパケットに対応する順序を表す受信順序情報を、格納手段から取得する受信順序情報取得ステップと、
前記送信順序情報が表す第一の順序と前記受信順序情報が表す第二の順序を比較する比較ステップと、
前記第一の順序が前記第二の順序よりも前の場合に、前記受信ステップで受信した前記パケットが、過去に受信した他のパケットと重複すると判断する重複判断ステップと、
前記第一の順序と前記第二の順序が等しい場合に、前記格納手段に格納された前記受信順序情報が表す順序が前記第二の順序の次の順序になるよう前記格納手段を更新する正常処理ステップと、
前記第一の順序が前記第二の順序よりも後の場合に、パケットの消失が生じたと判断する消失判断ステップと、
を前記送信先コンピュータに実行させることを特徴とする受信プログラム。 - 前記正常処理ステップでさらに前記送信先コンピュータに、前記パケットの送達確認を前記送信元コンピュータへ送信させることを特徴とする請求項1に記載の受信プログラム。
- 前記消失判断ステップでさらに前記送信先コンピュータに、前記送信順序情報にもとづいて前記格納手段を更新させることを特徴とする請求項1に記載の受信プログラム。
- 前記送信順序情報と前記受信順序情報はいずれも、有限の桁数の番号と、同じ値の前記番号同士を識別するための識別情報の双方を含み、
前記送信元コンピュータから送信された、前記識別情報の更新を要求するリフレッシュ要求パケットを受信した場合は、
前記受信順序情報に含まれる前記識別情報が、前記リフレッシュ要求パケットが指定する値になるよう前記格納手段を更新する識別情報更新ステップと、
前記リフレッシュ要求パケットの送達確認を前記送信元コンピュータへ送信する送達確認ステップと、
をさらに前記送信先コンピュータに実行させることを特徴とする請求項1に記載の受信プログラム。 - データの到達を保証しないプロトコルによる送信先コンピュータへのデータの送信処理を送信元コンピュータに制御させる送信プログラムであって、
異なるパケット間の送信順序を示す送信順序情報を格納手段から取得する送信順序情報取得ステップと、
前記格納手段に格納されている前記送信順序情報を更新する送信順序情報更新ステップと、
同じ前記送信順序情報および同じ送信対象のデータを含む、複数の経路のそれぞれに対応する複数のパケットを作成するパケット作成ステップと、
前記複数の経路のそれぞれを介して前記プロトコルにより前記複数のパケットを前記送信先コンピュータに送信する送信ステップと、
を前記送信元コンピュータに実行させることを特徴とする送信プログラム。 - 前記送信順序情報は、有限の桁数の番号と、同じ値の前記番号同士を識別するための識別情報とを含み、
前記番号が所定の値に等しい場合に、前記送信プログラムは、前記送信ステップよりも前に、
前記識別情報を更新する識別情報更新ステップと、
更新された前記識別情報を前記送信先コンピュータに設定するよう要求するリフレッシュ要求パケットを前記送信先コンピュータに送信するリフレッシュ要求ステップと、
前記リフレッシュ要求パケットの送達確認が前記送信先コンピュータから送信されるのを待つ送達確認待ちステップと、
を前記送信元コンピュータに実行させる、
ことを特徴とする請求項5に記載の送信プログラム。 - データの到達を保証しないプロトコルにより複数の経路のそれぞれを介して第一のコンピュータが第二のコンピュータにパケットを送信するシステムであって、
前記第一のコンピュータが、
異なるパケット間の送信順序を示す送信順序情報を格納する送信順序情報格納手段と、
前記送信順序情報を取得してから、前記送信順序情報格納手段に格納された前記送信順序情報を更新する送信順序情報更新手段と、
取得された同じ前記送信順序情報および同じ送信対象のデータを含む、前記複数の経路のそれぞれに対応する複数のパケットを作成するパケット作成手段と、
前記複数の経路のそれぞれを介して前記プロトコルにより前記複数のパケットを前記第二のコンピュータに送信する送信手段とを備え、
前記第二のコンピュータが、
前記複数の経路のいずれを介して送信された前記パケットでも受信する受信手段と、
過去に受信した前記パケットの前記送信順序情報にもとづいて管理され、次に受信されると期待されるパケットに対応する順序を表す受信順序情報を格納する受信順序情報格納手段と、
受信した前記パケットに含まれる前記送信順序情報が表す第一の順序と、前記受信順序情報が表す第二の順序を比較して、前記第一の順序が前記第二の順序よりも前の場合は受信した前記パケットが過去に受信した他の前記パケットと重複すると判断し、前記第一の順序が前記第二の順序よりも後の場合はパケットの消失が生じたと判断する比較判断手段と、
前記第一の順序と前記第二の順序が等しい場合に、前記受信順序情報が表す順序が前記第二の順序の次の順序になるよう前記受信順序情報格納手段を更新する正常処理手段と、
を備えることを特徴とするシステム。 - データの到達を保証しないプロトコルにより複数の経路のそれぞれを介して、第一の装置が第二の装置に、異なるパケット間の送信順序を示す送信順序情報を含めてパケットを送信する方法であって、
前記第一の装置において、
同じ前記送信順序情報および同じ送信対象のデータを含む、前記複数の経路に対応する複数のパケットを作成し、
前記複数の経路のそれぞれを介して前記プロトコルにより前記複数のパケットを前記第二の装置に送信し、
前記第二の装置において、
前記複数の経路の一つから受信した前記パケットの前記送信順序情報が、過去に受信し
たパケットの前記送信順序情報と重複する場合は、前記パケットを破棄する、
ことを特徴とする方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007048143A JP2008211682A (ja) | 2007-02-27 | 2007-02-27 | 受信プログラム、送信プログラム、送受信システム、および送受信方法 |
US12/037,389 US20080205406A1 (en) | 2007-02-27 | 2008-02-26 | Recording medium having reception program recorded therein, recording medium having transmission program recorded therein, transmission/reception system and transmission/reception method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007048143A JP2008211682A (ja) | 2007-02-27 | 2007-02-27 | 受信プログラム、送信プログラム、送受信システム、および送受信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008211682A true JP2008211682A (ja) | 2008-09-11 |
Family
ID=39715825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007048143A Pending JP2008211682A (ja) | 2007-02-27 | 2007-02-27 | 受信プログラム、送信プログラム、送受信システム、および送受信方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080205406A1 (ja) |
JP (1) | JP2008211682A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010088029A (ja) * | 2008-10-02 | 2010-04-15 | Nec Corp | コンテンツ配信システム、配信装置、再生装置、配信方法、再生方法およびプログラム |
JP2014093661A (ja) * | 2012-11-02 | 2014-05-19 | Ntt Communications Corp | パケット転送装置、監視方法、及びプログラム |
JP2015142354A (ja) * | 2014-01-30 | 2015-08-03 | 三菱重工業株式会社 | 通信装置及び通信システム |
JP2017139595A (ja) * | 2016-02-03 | 2017-08-10 | 日本電信電話株式会社 | データ伝送制御システム及び方法、並びに、データ伝送制御プログラム |
US9762706B2 (en) | 2014-07-22 | 2017-09-12 | Fujitsu Limited | Packet processing program, packet processing apparatus, and packet processing method |
US9866453B2 (en) | 2015-02-04 | 2018-01-09 | Fujitsu Limited | Method, apparatus, and packet analyzing system |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2378738A4 (en) * | 2008-12-17 | 2013-11-27 | Fujitsu Ltd | PACKET TRANSMITTER, PACKET RECEIVER, COMMUNICATION SYSTEM, AND PACKET COMMUNICATION METHOD |
US8824477B2 (en) | 2011-11-03 | 2014-09-02 | Qualcomm Incorporated | Multiple delivery route packet ordering |
US9059932B2 (en) * | 2011-11-03 | 2015-06-16 | Qualcomm Incorporated | Packet ordering based on delivery route changes in communication networks |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0591108A (ja) * | 1991-09-26 | 1993-04-09 | Hitachi Ltd | メツセージ通信制御方法および通信システム |
JPH06303257A (ja) * | 1993-02-17 | 1994-10-28 | Mitsubishi Electric Corp | データ転送方法 |
JPH11355273A (ja) * | 1998-06-05 | 1999-12-24 | Nec Corp | ネットワーク管理システムにおけるudpによる通知データの保証システム及び方法 |
WO2005079026A1 (en) * | 2004-02-09 | 2005-08-25 | Packethop, Inc. | Reliable message distribution with enhanced emfc for ad hoc mesh networks |
JP2006174000A (ja) * | 2004-12-15 | 2006-06-29 | Nakamura Kazunori | ネットワークシステム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5883891A (en) * | 1996-04-30 | 1999-03-16 | Williams; Wyatt | Method and apparatus for increased quality of voice transmission over the internet |
US6466574B1 (en) * | 1998-06-05 | 2002-10-15 | International Business Machines Corporation | Quality of service improvement of internet real-time media transmission by transmitting redundant voice/media frames |
US7085273B1 (en) * | 1999-07-08 | 2006-08-01 | Lucent Technologies Inc. | Sender-initiated recovery algorithm (SIRA) for the layer 2 tunneling protocol (L2TP) |
US6751746B1 (en) * | 2000-07-31 | 2004-06-15 | Cisco Technology, Inc. | Method and apparatus for uninterrupted packet transfer using replication over disjoint paths |
US7099327B1 (en) * | 2000-10-12 | 2006-08-29 | Lucent Technologies Inc. | Data communications networks with high performance and reliability |
US6853641B2 (en) * | 2000-12-20 | 2005-02-08 | Nortel Networks Limited | Method of protecting traffic in a mesh network |
US20030018793A1 (en) * | 2001-07-19 | 2003-01-23 | Oscar Mora | Reliable transport layer protocol in low performance 8-bit microcontrollers |
SE0103506D0 (sv) * | 2001-10-19 | 2001-10-19 | Ericsson Telefon Ab L M | HARQ stall avoidance |
US6987981B2 (en) * | 2001-11-13 | 2006-01-17 | Asustek Computer Inc. | Robust RLC reset procedure in a wireless communication system |
US7321935B2 (en) * | 2002-06-21 | 2008-01-22 | Intel Corporation | Method and apparatus for increasing TCP/IP server responsiveness |
US7406082B2 (en) * | 2002-09-30 | 2008-07-29 | Lucent Technologies Inc. | Sequence number schemes for acceptance/rejection of duplicated packets in a packet-based data network |
US7342890B1 (en) * | 2002-12-20 | 2008-03-11 | Juniper Networks, Inc. | Data duplication for transmission over computer networks |
US7188189B2 (en) * | 2003-04-02 | 2007-03-06 | Avaya Technology Corp. | System and method to improve the resiliency and performance of enterprise networks by utilizing in-built network redundancy |
US7782787B2 (en) * | 2004-06-18 | 2010-08-24 | Avaya Inc. | Rapid fault detection and recovery for internet protocol telephony |
US7590756B2 (en) * | 2005-05-13 | 2009-09-15 | Itt Manufacturing Enterprises, Inc. | Method and system for transferring data in a communications network using redundant communication paths |
-
2007
- 2007-02-27 JP JP2007048143A patent/JP2008211682A/ja active Pending
-
2008
- 2008-02-26 US US12/037,389 patent/US20080205406A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0591108A (ja) * | 1991-09-26 | 1993-04-09 | Hitachi Ltd | メツセージ通信制御方法および通信システム |
JPH06303257A (ja) * | 1993-02-17 | 1994-10-28 | Mitsubishi Electric Corp | データ転送方法 |
JPH11355273A (ja) * | 1998-06-05 | 1999-12-24 | Nec Corp | ネットワーク管理システムにおけるudpによる通知データの保証システム及び方法 |
WO2005079026A1 (en) * | 2004-02-09 | 2005-08-25 | Packethop, Inc. | Reliable message distribution with enhanced emfc for ad hoc mesh networks |
JP2007527160A (ja) * | 2004-02-09 | 2007-09-20 | パケットホップ,インコーポレイテッド | 拡張eMFCを用いたアドホックメッシュネットワークのための高信頼メッセージ配信方法 |
JP2006174000A (ja) * | 2004-12-15 | 2006-06-29 | Nakamura Kazunori | ネットワークシステム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010088029A (ja) * | 2008-10-02 | 2010-04-15 | Nec Corp | コンテンツ配信システム、配信装置、再生装置、配信方法、再生方法およびプログラム |
JP2014093661A (ja) * | 2012-11-02 | 2014-05-19 | Ntt Communications Corp | パケット転送装置、監視方法、及びプログラム |
JP2015142354A (ja) * | 2014-01-30 | 2015-08-03 | 三菱重工業株式会社 | 通信装置及び通信システム |
US9762706B2 (en) | 2014-07-22 | 2017-09-12 | Fujitsu Limited | Packet processing program, packet processing apparatus, and packet processing method |
US9866453B2 (en) | 2015-02-04 | 2018-01-09 | Fujitsu Limited | Method, apparatus, and packet analyzing system |
JP2017139595A (ja) * | 2016-02-03 | 2017-08-10 | 日本電信電話株式会社 | データ伝送制御システム及び方法、並びに、データ伝送制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20080205406A1 (en) | 2008-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008211682A (ja) | 受信プログラム、送信プログラム、送受信システム、および送受信方法 | |
US7814479B2 (en) | Simultaneous download to multiple targets | |
US9059932B2 (en) | Packet ordering based on delivery route changes in communication networks | |
US7903546B2 (en) | Detecting unavailable network connections | |
US6545981B1 (en) | System and method for implementing error detection and recovery in a system area network | |
US8467383B2 (en) | Stateful switching between reliable transport modules for communicating with an external peer without losing the transport layer connection | |
JP2004032224A (ja) | サーバ引継システムおよびその方法 | |
RU2540815C2 (ru) | Прерывание, по меньшей мере частичное, передачи кадра | |
US7725556B1 (en) | Computer system with concurrent direct memory access | |
US8824275B2 (en) | Route calculating after switching occurs from a primary main control board to a standby main control board | |
WO2013189289A1 (zh) | 数据处理的方法、网卡和系统 | |
US20120089863A1 (en) | Failover system, storage processing device and failover control method | |
KR100702460B1 (ko) | 네트워크에서 버퍼링된 데이터의 우선적인 재전송 | |
KR20150131327A (ko) | 애플리케이션-제공 전송 메타데이터에 기초한 네트워크 전송 조절 | |
US6741561B1 (en) | Routing mechanism using intention packets in a hierarchy or networks | |
JP4612714B2 (ja) | データ処理方法、クラスタシステム、及びデータ処理プログラム | |
US6625753B1 (en) | Recovery facility for an SNA communication network | |
CN113489640A (zh) | 报文转发方法、装置及网关系统 | |
US7689702B1 (en) | Methods and apparatus for coordinating processing of network connections between two network protocol stacks | |
JP2008129628A (ja) | 複数のコンピュータシステムでメッセージをやり取りすることによって所定の業務を処理するシステムでの通信方式、及び、メッセージ中継プログラム | |
US8549345B1 (en) | Methods and apparatus for recovering from a failed network interface card | |
CN116260887A (zh) | 数据传输方法、数据发送装置、数据接收装置和存储介质 | |
WO2020135666A1 (zh) | 报文处理方法、设备和计算机存储介质 | |
US9742819B2 (en) | System and method for reliable messaging between application sessions across volatile networking conditions | |
JP4655733B2 (ja) | リング型二重化ネットワークにおける受信方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091110 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120313 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120904 |