JP5054821B2 - Natタイプに基づくシームレスなホスト移行 - Google Patents

Natタイプに基づくシームレスなホスト移行 Download PDF

Info

Publication number
JP5054821B2
JP5054821B2 JP2010527990A JP2010527990A JP5054821B2 JP 5054821 B2 JP5054821 B2 JP 5054821B2 JP 2010527990 A JP2010527990 A JP 2010527990A JP 2010527990 A JP2010527990 A JP 2010527990A JP 5054821 B2 JP5054821 B2 JP 5054821B2
Authority
JP
Japan
Prior art keywords
client
host
clients
information
nat
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010527990A
Other languages
English (en)
Other versions
JP2010541476A (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 US12/049,954 external-priority patent/US8131802B2/en
Application filed by ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー filed Critical ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー
Publication of JP2010541476A publication Critical patent/JP2010541476A/ja
Application granted granted Critical
Publication of JP5054821B2 publication Critical patent/JP5054821B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、一般にネットワークに関する。より具体的には、本発明はネットワークにおけるデータ分配およびNAT(Network Address Translation)の使用に関する。
ネットワークは、通信システムによって互いに接続されたコンピューティングデバイスのグループを含むことができる。ネットワーク内のコンピュータは、ネットワーク内の他のコンピュータと通信し、データを交換し、リソースを分け合うことができる。ネットワークの例には、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)が含まれる。
様々なネットワーク構成が当分野で知られている。図1Aに示す従来のクライアント−サーバネットワークは、クライアント120A−Dに接続されたホスト110を含む。ホスト110は、ネットワークセッション130を確立し、多数のクライアントによるネットワークセッション130への参加およびその方法を制御し、クライアント120A−Dがネットワークセッション130に参加した後はクライアントによる相互対話の方法を制御する。ホスト110は一般に広い帯域と高い処理能力を持つので、ホスト110は、ネットワークセッション130内のすべてのクライアント120A−Dとのデータの管理および分配を行うことが可能である。このような構成では、特定のクライアント(例えばクライアント120D)からのデータは、ホスト110を通して他のクライアント(例えばクライアント120A−C)に分配される。例えば、クライアント120Dはホスト110にデータを送信する。他のクライアント、例えばクライアント120Aがデータを要求すると、ホスト110はそのデータをクライアント120Aに送信する。
ホストに接続しているおかげで、クライアントは自身が必要とするデータのみを(ホストを介して)要求することができ、そのため、クライアントは不必要なデータを管理する必要がない。このような構成は、ネットワークセッション内で交換されるすべてのデータを効率的に管理する能力を持たないクライアントの間で共通であってもよい。これらのクライアントは、データを管理し分配するホストを必要とする。
ネットワークセッション内のデータの管理および分配をホストに管理させることの欠点は、ホストとセッションクライアントのいずれか一つとの間の通信に影響を与える接続問題が生じたとき、データが失われる恐れがあることである。この場合、特定クライアントからのデータをホストに送信することができない。そのデータはまた、ネットワーク内の他のクライアントにとっても利用不可能になる。例えば、クライアント120Dが突然ホスト110から切断されたとする。クライアント120Dがホスト110に送っていたはずの情報はホスト110に到達せず、結果として、その情報はネットワークの残り(すなわち、クライアント120A−C)には送信することができない。失われた情報により、ネットワークセッション130に混乱を引き起こすことがあり、他のクライアントの動作に影響を与える恐れがある。このことは、インタラクティブなネットワークゲームの場合には特に当てはまる。
P2P(peer-to-peer)通信でクライアント間の通信の確立を試みるとき、NAT(Network Address Translation)に関してさらなる問題が起こりうる。P2P通信は一般にネットワークに接続されているクライアント装置間のダイレクトな通信のことをいう。限定されるわけではないが、VoIP(Voice over Internet Protocol)、ビットトレント(BitTorrent)送信、ビデオ送信、ファイル共有、データ共有、および個々のクライアントの帯域制限を超えないクライアント間でのダイレクトな伝送における他の種類のものがP2Pの適用例として含まれる。
NATプロトコルを用いることにより、複数のノードや計算機が単一のインターネットまたはローカルなIP(Internet Protocol)アドレスを共有しうる。一例としては、ローカルエリアネットワークは、公開されたグローバルアドレスを外部ネットワークトラフィックに使用しうるし、ひとつの(あるいは一組の)プライベートなIPアドレスを内部のネットワークトラフィックに使用しうる。ネットワーク内のほとんどのクライアントは中央サーバに接続されている。その中央サーバはNATファイアウォール(以後単に「NAT」という。)の内部に置かれている。一般的に、以下の4つの種類のNATが知られている。すなわち、フルコーン(full cone)、制限コーン(restricted cone)、ポート制限(port restricted)、およびシンメトリック(symmetric)の4つである。
フルコーンNATは同一の内部IPアドレスおよびポートからの要求を全て取得し、それらを同一の外部IPアドレスおよびポートにマップする。外部にある任意のホストは、マップされた外部IPアドレスにパケットを送信することで、内部のホストにパケットを送信することができる。制限コーンの場合も、同一の内部IPアドレスおよびポートからの全ての要求は同一の外部IPアドレスおよびポートにマップされる。しかし、フルコーンNATとは異なり、(IPアドレスXをもつ)外部のホストが内部ホストにパケットを送ることができるのは、内部ホストがそのIPアドレスXにパケットを以前送信したことがある場合に限られる。
ポート制限NATは制限コーンNATと似ているが、制限はポート番号も含む。具体的に、外部のクライアントが、ソースIPアドレスXおよびソースポートPをもつパケットを内部ホストに送ることができるのは、内部ホストが以前そのIPアドレスXおよびポートPからパケットを送ったことがある場合に限られる。最後の例であるシンメトリックNATは、同一の内部IPアドレスおよびポートから特定のデスティネーションIPアドレスおよびポートへの全ての要求は、同一の外部IPアドレスおよびポートにマップされる。もし、同じホストが同じソースアドレスおよびポートをもつが宛先が異なるパケットを送信する場合、異なるマッピングが用いられる。さらに、パケットを受信する外部ホストだけがUDP(User Data Protocol)パケットを内部ホストに送り返すことができる。
したがって、ネットワークセッションの接続に関連する問題を解決し、セッション内で中断されないデータ交換を維持する、改善されたネットワークデータ分配システムおよび方法が当分野で必要とされている。このような文脈のもと、最適なP2Pネットワークを生成するために、P2Pネットワークにおけるホストは有益なNATプロファイルを持つことが望まれている。したがって、中央サーバに接続されているいくつかのクライアントの間で有益なNATプロファイルを持つホストを判定することが当分野でさらに必要とされている。
本発明のシステムおよび方法は、ネットワークセッションがデータを失うことなくホストとクライアントの間での通信の中断を乗り越えることを可能にする、ネットワークデータ分配の維持を提供する。ホスト機能は、シームレスにかつデータを大きく損なうことなくクライアントに移行する。本発明の実施形態は、ネットワークセッションのためにバックアップホストとして機能する一つまたは複数のクライアントを備える。他のクライアントがホストに対しデータを送信すると、そのデータを一つまたは複数のバックアップホストにも送信する。例えば、ホストにデータを送信したクライアントが所定の期間内にデータの確認を受領しないことがある。そのクライアントは、ホストに対してデータを再送信するとともに、データをバックアップホストにも送信する。バックアップホストの判定は、ホストと複数のクライアントとの間で接続が確立されたときにそのホストとクライアントとの間で共有された(NAT)プロファイル情報に基づいてもよい。
本発明の様々な実施形態は、ネットワークデータ分配方法を含む。この方法は、ホストをクライアントに接続し、クライアントがバックアップホストとして機能できるか否かを判定し、機能できる場合、そのクライアントに対してバックアップホストとして機能できるようにする特定の情報を送信することを含む。この判定はNATプロファイル情報を用いて行ってもよい。バックアップホストとして機能することには、他のクライアントがホストとの通信ができないときに、その他のクライアントからの情報を受け取ることが含まれる。本発明の一部の実施形態では、方法はさらに、ホストとクライアントの間の通信が中断したことを表し、ホストとその特定クライアントの間の接続を停止することを含む。
本発明の様々な実施形態は、ネットワークデータ分配システムを含む。このシステムは、ホストと、バックアップホストとして機能可能である第1クライアントと、ホストおよび第2クライアントの間の通信が中断した時に第1クライアントに対してデータを送信可能な第2クライアントとを含む。本発明の一部の実施形態では、第2クライアントもまたバックアップホストとして機能することができる。本発明の一部の実施形態は、それぞれがバックアップホストとして機能するように構成された複数のクライアントを含むことができる。NATプロファイル情報がバックアップホストとして機能可能であるか否かの判定に用いられてもよい。
ネットワーク分配システムで使用されるホストシステムも、本発明の実施形態で提供される。このホストシステムは、受信時にクライアント通信を確認する確認モジュールと、特定のクライアントがバックアップホストとして機能できるか否かを交渉する交渉モジュールと、ホスト情報を提供するアプリケーションをクライアントに配信するバックアップアプリケーションモジュールとを含む。本発明の一部の実施形態は、さらにホスト情報データベースとタイマとを含む。NATプロファイル情報が収集され、解析され、バックアップホストとして機能可能であるか否かの判定に利用されてもい。
本発明の一部の実施形態は、ネットワークデータ分配用のコンピュータ記録媒体および命令を含む。この命令は、ホストをクライアントに接続すること、NATプロファイル情報の使用を通じてバックアップホストとして機能可能であるクライアントと交渉すること、およびクライアントにホスト情報を送信してクライアントがバックアップホストとして機能開始できるようにすることを含む。
当技術分野で既知であるクライアント−サーバネットワーク構成を示す図である。 一つのバックアップホストを有するネットワークデータ分配用の例示的なシステムを示す。 いくつかのバックアップホストを有するネットワークデータ分配用の例示的なシステムを示す。 NATを利用するネットワークデータ分配用の例示的なシステムを示す。 ネットワークデータ分配システムにおいてシームレスなホスト移行を提供するコンピューティングデバイスの例示的な構成を示す図である。 ネットワークデータ分配用の、ネットワークアドレス変換器を含むシステムの例示的な実装を示す図である。 ネットワークデータ分配用の、例ネットワークアドレス変換器を含むシステムの別の実装例を示す図である。 NATプロファイル情報の使用を含むネットワークデータ分配の例示的な方法を示す図である。
本発明はネットワークデータ配布システムおよび方法を含む。本発明の実施形態により、ホスト移行をシームレスに発生させることが可能になる。ホストとクライアントとの間で通信が中断した場合に、データを大きく損なうことなくネットワークセッションを継続することができる。ネットワークセッションのホストは、複数のクライアントに接続されていてもよい。これらクライアントの一つ(または複数)が、バックアップホストとして機能できるようにしてもよい。バックアップ実行可能性はクライアントと交渉され、ホスト情報はクライアントに送信される。このクライアントは続いてバックアップホストとして機能することができる。バックアップホストは、続いてネットワークセッション内の他のクライアントに接続し、他のクライアントからデータを受け取ってもよい。その後、ホストと特定クライアントとの間の通信が中断した場合、その特定クライアントは、自身のデータをバックアップホストに送信することができ、これによってデータを失うことなくネットワークセッションを継続することができる。
全体を通して特定される構成要素は例示であり、様々な代替物、等価物または派生物を含む。ハードウェア、ソフトウェア、およびコンピュータで実行可能な命令の様々な組み合わせを利用することができる。プログラムモジュールおよびエンジンは、プロセッサによって実行されるときに特定タスクの実行をするルーチン、プログラム、オブジェクト、コンポーネントおよびデータ構造を含んでもよい。このプロセッサは、汎用のものでもまたはアプリケーション専用のものでもよい。コンピュータ可読媒体に格納された、コンピュータで実行可能な命令および関連するデータ構造とは、本明細書で開示された方法のステップを実行するか、および/または本明細書で開示された特定のシステム構成を実装するためのプログラミング手段の例を表している。
図1Aに示され、また上で詳細に説明したクライアント−サーバネットワーク構成においては、各クライアントは、ネットワークセッション内のすべてのデータを処理する必要はない。代わりに、各クライアントは、そのクライアントがネットワークセッションに参加するために必要なデータのみを受け取り、それを処理する。一部のクライアントは、データのすべてを効率的に管理することができないが、これは、例えば帯域の不足か処理能力の不足によるものである。しかしながら、クライアントの中には、ネットワークセッション内のすべてのデータを管理する能力を有しているものもある。これらの特定のクライアントは、ネットワークセッションから得られるデータの一部またはすべてを格納するバックアップホストとして機能することができる。
図1Aのシステム構成と比較して、図1Bは、一つのバックアップホストであるクライアント160Aを備えた、ネットワークデータ分配用の例示的なシステムを示している。バックアップホストは、ネットワークセッションのホストの機能の一部またはすべてを実行することが可能である任意のクライアントであってもよい。ネットワークセッション150のホスト140が実行不可能であるかまたは実行しないとき、ホスティング責任の一部またはすべてがバックアップホストに移行することができる。バックアップホストとしての資格を得るためには、バックアップの実行可能性を明示する候補ホスト(クライアント)が必要となる。バックアップ実行可能性を明示することには、例えば、帯域、処理能力、メモリ、ハードウェアまたはソフトウェア構成、あるいはサービス品質に関する一つ以上の用件を満足することを含む。クライアントのバックアップ実行可能性は、ホストとの交渉を通じて判定されてもよい。
バックアップ実行可能性に関連しそれを確認する交渉が完了した後、ネットワークセッション150を通じてホスト140とクライアント160Aとの間でホスト情報が送信される。ホスト情報は、ネットワーク名、ネットワーク内でのクライアントのインターネットプロトコル(IP)アドレス、ファイアウォール情報、およびクライアント160Aがあるホスト責任を引き継ぐ必要がある場合の特定の責任に関する情報を含むことができる。ホスト情報を使用して、クライアント160Aは、ホスト140と他のクライアント160B−Dとの間の一つ以上の接続が中断した場合に、バックアップホストとして機能することが可能になる。例えば、クライアント160Bがホスト140から切断されたとすると、図3Aおよび図3Bに示されているように、クライアント160Bはクライアント160Aにデータを転送してもよい。ホスト140からクライアント160Aにホスト責任を移行することによって、クライアント160Bからの情報がネットワークセッション150で完全に失われることはない。
一部の実施形態では、二つ以上のクライアントがバックアップホストとして機能可能であってもよい。図1Cは、いくつかのバックアップホストであるクライアント190A−Dを有するネットワークデータ配布用の例示的なシステムを示す。図1Cのネットワークセッション180内の各クライアントは、元のホスト170が利用できなくなった場合に、特定のバックアップホスト責任に関与することができる。例えば、クライアント190Aが得点の記録に責任を持つ一方で、クライアント190Bはゲーム環境内の状況変化に責任を持つことができる。クライアント190Cは参加基準(例えば、誰がゲームに参加できるか)について責任を持ち、クライアント190Dはチャット機能の責任を持つことができる。代わりに、クライアント190Aが上述のタスクのすべてについて責任を持ち、他のクライアント190B−Dは、クライアント190Aがその後機能しなくなった場合にそれらのタスクを引き継いでもよい。
図1Dは、NATを利用するネットワークデータ分配用の例示的なシステムを示す。ネットワーク上のクライアント195A、クライアント195B、クライアント197、およびクライアント195Dは始め、外部ネットワーク199内のサーバ191に接続されている。サーバ191は、外部ネットワーク199に接続されているクライアント195A、クライアント195B、クライアント197、およびクライアント195D間で行われているゲームを監視する。
クライアント195A、クライアント195B、クライアント197、およびクライアント195Dはそれぞれ、対応するネットワークアドレス変換器(NAT)192A、192B、192C、および192Dの後ろに置かれている。各NATは、LAN(Local Area Network)の使用を可能とするインターネットの標準にしたがって、内部トラフィック用にあるプライベートIPアドレスのセットと外部トラフィック用に別のグローバルIPアドレスのセットとを用いるように構成されている。ほとんどのNATは、動的なIPアドレス変換を実行し、そのため内部ネットワークが通信を初期化する前には外部ネットワークが内部ネットワークに到達する方法はない。しかし、クライアント195A、クライアント195B、クライアント197、およびクライアント195Dはサーバ・クライアントの関係を構築するため、クライアント195A、クライアント195B、クライアント197、およびクライアント195Dとサーバ191との間の通信は、NAT192A、192B、192C、および192Dによって制限されない。
クライアント同士がダイレクトに通信することができるP2Pネットワークを確立する際、あるクライアントはホスト197として確立する。これにより他のピア195(P2Pネットワークと接続しているクライアントであってホストでないクライアント)は互いにダイレクトに接続する。ピア195は、完全結合グリッド(Fully Connected Grid; FCG)として知られる形態で接続される。ホスト197は、各クライアントのNATプロファイルに基づいて判定される。NAT192A、192B、192C、および192Dは、上述の4つの異なるNATタイプ(フルコーン、制限コーンNAT、ポート制限コーン、およびシンメトリック)のうちのひとつであってもよい。
一般に、フルコーン、制限コーン、およびポート制限コーンの通過は、シンメトリックNATを通過する場合よりも複雑である。クライアントがシンメトリックNATの後ろに置かれる場合のNAT通過の実装は、米国特許出願番号第11/243,853号に記載されている。この開示は既に参照により援用されている。具体的には、あるNATの後ろに置かれたクライアントが、そのNAT上で予測されたトランスポートアドレスのリストの構築を含むポート予測を実行する。その後、クライアントは第1のノードから第2のクライアントに対し、予測されたトランスポートアドレスのリストを含む招待メッセージを送信する。次いで、シンメトリックNATの後ろに置かれたクライアントは、予測されたトランスポートアドレスを用いて第2のノードとの接続性のチェックを実行する。接続性のチェックは、STUN(Simple Traversal of UDP through NAT)リクエストを予測されたトランスポートアドレスそれぞれに並列に送信することによって実行される。シンメトリックNATの後ろに置かれたクライアントがそのリクエストを受信すると、そのクライアントは第2のクライアントにSTUN応答を送信する。第2のクライアントがSTUN応答を受信した場合、そのアドレスに情報を送信することを開始できる。
上述の4つ以外のNATタイプを設けてもよい。ある場合には、標準的な技術を用いてNATを通過することができる。他の場合には、NATの振る舞いが予測できない状態か不安定な状態のため、そのようなNATの後ろに置かれたクライアントとの通信は信頼性に欠く。ホスト197は、他のピア195A、105B、および195Dとの間で情報の通信をすることが任務であるから、通信能力の妨げにならないタイプのNATの背後にあることが重要である。ピア195A、195B、195D、およびホスト197が完全結合グリッド内に置かれているような例において、あるNATの後ろに置かれたホストがそのNATの通信能力の影響を受けないことが特に望まれる。
最も好ましいNATプロファイルを持ったホスト197を選択することで、より信頼できるP2P通信が得られる。ひとたびホスト197が確立されると、ピア195群は最初にホスト197に情報を送信し、次いでホスト197がその情報を受信者であるピア195に中継することによって、ピア195群は相互に通信することができる。ダイレクトな通信パスを確立するためにホスト197を使った後は、クライアントは直接情報を送信する。
本発明のある実施の形態では、クライアント195A、195B、および197は、外部ネットワーク199と関連づけられているSTUNサーバ193を通してNATプロファイル情報を取得する。STUNサーバ193は、NATの後ろに置かれているIPが使用可能なクライアントが、そのNATの存在およびNATタイプを探知することを許可するための軽量プロトコルを利用する。STUNサーバ193は、ほとんどの種類のNATと共に動作し、NATの特定の挙動にも依存しない。ある観点から見れば、STUNサーバ193は、クライアント195Aに立てかけられたミラーのように作用し、クライアント195Aは、自身のローカルな送信アドレスがどのようにパブリックな送信アドレスにマップされるかを見ることができる。NAT192Aの後ろに置かれたクライアント195Aは、STUNサーバ193との通信を通して、NAT192Aのタイプを判定することができる。
クライアント195A、195B、197、および195Dはそれぞれ、STUNサーバ193を使ってNATプロファイル情報を取得し、取得した情報を中央サーバ191に中継する。これにより中央サーバ191が、どのクライアントが最もホスト197に適しているかを決めることができる。同様に、いずれかのクライアント195A、195B、197、195Dは、STUNサーバ193を使ってNATプロファイル情報を取得し、
P2Pネットワークを通して通信を試みる他の全てのクライアントにその情報を中継してもよい。これにより、クライアント195A、195B、197、および195Dが、ホスト197を最もよく判定することができる。
サーバ191に接続されている各クライアントは、P2Pネットワーク内で使用するための自身のNATプロファイル情報を収集する。このプロファイル情報には、クライアントの前方にあるNATタイプに関する情報、そのNATがUPnP(Universal Plug and Play)をサポートするか否かに関する情報、そのNATがポート保存を提示するか否かに関する情報、およびそのNATがポートの予測可能性をサポートしているか否かに関する情報が含まれる。
本願において「ポート保存」とは、ひとたびある内部IPアドレスが特定の外部ポートにマップされると、一貫してその特定のポートにマップされることを意味する。同様に、「ポートの予測可能性」とは、たとえ常に同じポートにマップされるものではないとしても、ある内部IPアドレスがマップされる外部ポートを予測することができることを意味する。例えば、外部のポート番号は、内部IPアドレスのそれぞれのマッピングが試みられると一貫して増加されてもよい。
各クライアント用のNATプロファイル情報は、P2P通信のためのホストを最もうまく選択するために、サーバに接続されている全てのクライアントに関する優先度のリストを生成するために使われる。潜在的なホスト間の優先順位が同順位である場合は、どの潜在的なホストを現実のホストとして選択するかを決定するために序数を設定しておいてもよい。ある実施の形態では、そのような序数はサーバによって割り当てられてもよい。たとえば、クライアントがサーバに接続された順にする。あるいは、分散調停アルゴリズムを用いて、2以上の等しく適切な潜在的なホストの中から一つのホストを選択してもよい。最初のホストがP2Pネットワークを離れることを決定するか、P2Pネットワークから何らかの理由で接続が切られることがあった場合、この情報はP2Pネットワーク用の次のホストを選択するために用いられる
ひとたびNATプロファイル情報が所定のクライアントによって収集されると、そのクライアント用のNATプロファイルはサーバに接続している他のクライアントに共有される。P2Pの分散を通して、あるいはクライアントからサーバを通して、残りのクライアントへの分散が生ずる。サーバは専用のネットワーク接続を通してプロファイル情報を分散する。ひとたび全てのNATプロファイルがクライアントによって提出されると、どの特定のクライアントがホストやピアとなるべきか、あるいはそれらが全体としてネットワークの交流のための条件を満たしていないかどうかの判定がなされる。上述の各クライアントが取得したプロファイル情報に基づいて、この判定はなされる。
例えば、複数の要因に基づいて優先度が割り振られることにより、最も好適なプロファイルを持っているクライアントに基づいて、有効なクライアントの中からひとつのホストが選択できる。残りのクライアントはそれらのプロファイル情報に基づいて、ピアに割り当てられるか、あるいはピアまたはホストとして認識されずに終わる。例えば、通過可能でないNATの後ろに置かれたクライアントは、ピアまたはホストとしてネットワークに接続するために必要な条件を満たさない。
典型的な優先順位付けスキームは、5つの分離された区分に分けることができる。アクティブ、起こりうる、不明、進行中、非アクティブの5つである。「アクティブ」タグはそのクライアントがホストとして非常によい候補であることを示す。「起こりうる」タグはそのクライアントがホストとしてよい候補であるが、アクティブタグの付いたクライアントの方が優先することを示す。「不明」タグは、その特定のクライアントがホストとしてよい候補であるか否かをネットワークが判定できないことを示す。「進行中」タグは、そのクライアントがホストとしてよい候補であるか否かをネットワークが判定中であることを示す。最後に、「非アクティブ」タグは、クライアントがホストとしての任務を担うことができないことを示す。
優先度タグは、以下の4つの典型的な基準に基づく。すなわち、NATタイプ、UPnP(Universal Plug and Play)機能、ポート保存、およびポート予測の4つである。他のいくつかの要因も優先度の判定に用いてもよい。これらの要因はクライアントのサービス品質のプロファイルに該当し、ピングタイム、バンド幅の振る舞い、地理、レイテンシ、およびIPプロバイダを含むがこれらに限定されない。
図2は、ネットワークデータ配布システムにおいてシームレスなホスト移行を提供するコンピューティングデバイスの構成の一例200を示す。ホスト200は、ネットワーク内で中央通信ハブとして機能することができ、例えばサーバなどのコンピューティングデバイスである。通常はクライアント動作のために用意されるコンピューティングデバイスは、ホスト200の構成の一部またはすべてを有していてもよいが、これは、ある時点においてはクライアントがバックアップホストとなることがあるという事実のためである。ホスト200は、ネットワークインタフェース210、確認モジュール220、交渉モジュール230、ホスト情報データベース240、バックアップアプリケーションモジュール250、ポーリングモジュール260、タイマ270およびNATモジュール280を含むことができる。
本発明で参照される場合、モジュール(またはアプリケーション)とは、様々なシステムレベルの機能を実行するルーチンの集合のことをいう。モジュールは、必要に応じて、ハードウェア(例えば情報処理装置など)およびデバイスドライバよって動的にロードおよびアンロード(例えば実行)される。本明細書で述べるモジュラーソフトウェアコンポーネントは、より大きなソフトウェアプラットフォームの一部として組み込まれてもよいし、あるいはアプリケーション専用コンポーネントの一部として統合されてもよい。
ネットワークインタフェース210は、ネットワーク内でホストと他のコンピューティングデバイスの間の通信が可能になるように構成された様々なハードウェアおよび/またはソフトウェアコンポーネントのうち任意のものであってよい。ネットワークインタフェース210は、有線、無線、および/またはインターネットベースの通信ネットワークを介して通信を行うコンポーネントを含んでもよい。
確認モジュール220は、クライアントによって送信された情報がホスト200によって受信されたことを確認できるようにする。ネットワークインタフェース210を通じてホスト200がクライアントから情報を受け取ると、確認モジュール220は、情報を送信したクライアントに対して受信確認(ACK)を送信することができる。例えば、クライアントがホスト200に対してゲーム状態データの変更に関連する情報を送信する場合、確認モジュール220は送信クライアントに対して、その情報が受信されたことを表すACK返答を送信することができる。確認モジュール220により送信されたACK返答は、受信した情報の内容およびその情報の量に関する表示、および/または情報が破損していたり不完全であったりした場合にはその旨の表示をさらに含むことができる。
送信クライアントによる特定のデータ送信に対してACKを受領していないということは、データ送信がホスト200によって受け取られていないことを表す。ホスト200がデータ送信(またはその一部)を受け取っていないということは、ホスト200とデータ送信をしたクライアントとの間の接続に問題があるか、またはホスト200自体に問題があることを示している。特定の数のデータ送信がホスト200からのACK返答の受信をしていない場合、送信クライアントは移行動作を実行してもよく、これによって、ホスト機能の一部またはすべてがバックアップホストに移行される。
交渉モジュール230は、様々なパラメータに基づきクライアントのバックアップ実行可能性を交渉する。例えば、実行可能なバックアップホスト/クライアント候補は、ある量の利用可能な帯域を有している必要があるかもしれない。クライアントの帯域は、ネットワークセッションにおけるデータのすべてをクライアントが管理できるよう十分なものである必要がある。バックアップ実行可能性は、クライアントが関連する様々なサービス基準の品質に準拠している必要があるかもしれない。例えば、pingレート、パケットロス、利用可能なメモリ、プロセッサ速度等である。
交渉モジュール230は、クライアント候補がネットワーク内の他の各クライアントと接続可能であるかについて判定してもよい。実行可能なバックアップホストは、ネットワーク内の他の各クライアントと接続可能であり、かつ情報を受け取ることができる必要がある。バックアップ実行可能性のパラメータは、ネットワークセッションのタイプによって判別されてもよい。例えば、特定のゲームネットワークセッションは、ゲーム環境内で多くの状態変化が生じうるので、バックアップ実行可能とするために特定の量の帯域とプロセッサ速度とを必要とする場合がある。単純なファイル転送のような複雑さの少ないトランザクションでは、より小さな帯域および/または処理能力を必要とする。
交渉モジュール230は、複数のクライアントとともにバックアップ実行可能性について交渉するように構成されていてもよい。これによって、一連のバックアップホストを生じさせる。代わりに、交渉モジュール230は、特定のタスクに対するバックアップ責任をクライアントのグループの間で割り当てるように構成されていてもよい。一連のバックアップホストを提供することによって、ネットワークまたはホスト/クライアント条件が保証するとき、ホスティングの義務を、ホストから第1のバックアップホストへ、第2のバックアップホストへ、といったようにシームレスに移行させることができる。バックアップホスト責任および/または特定の責任の順序は、クライアントがホストに接続されている順序に基づいて割り当てられてもよい。代わりに、帯域やサービス品質などの他の要因に基づいて、順序および/または責任が定められてもよい。
ホスト情報データベース240は、ホスト、クライアント、またはネットワークセッションに関連する情報を格納することができる。ホスト情報データベース240に格納される情報により、コンピューティングデバイスは、ネットワークセッション内の他のクライアントへの接続などの特定のホスティング義務を果たすことが可能になる。このようなホスト情報は、ネットワーク名、ネットワーク内のクライアントのインターネットプロトコル(IP)アドレス、およびファイアウォール情報を含んでもよい。ネットワークからクライアントが切断されたりまたはネットワークに新たなクライアントが参加したりといったイベントが生じると、ホスト情報データベース240が更新されてもよい。例えば、新たなクライアントのIPアドレスは、ホスト情報データベース240に追加される必要がある。
ホスト情報データベース240とともに動作して、バックアップアプリケーションモジュール250は、クライアントにダウンロードされ、インストールされ、実行されることができるアプリケーションを作成する。このアプリケーションは、基礎的な実行可能用件を満足することに加えて、クライアントがバックアップホストとして動作するために必要である特定の機能をクライアントに提供する。アプリケーションは、クライアントがネットワークセッション内の他のクライアントと接続しデータを交換できるようにクライアントを調整することができる。
オプションであるポーリングモジュール260は、ネットワークセッション内のすべてのクライアントにポーリングをするように構成される。ポーリングモジュール260を使用して接続するクライアントをポーリングすることができる。接続のポーリングには、ネットワークセッション内の各クライアントに対して小さなデータパケットを送信すること、データパケットを受け取ったクライアントからの返信/確認を受け取ること、およびホスト200との通信に問題を抱えているクライアントを判定することを含むことができる。
ポーリングモジュール260は、周期的な間隔で自動的にクライアントにポーリングすることができる。ポーリングモジュール260は、新たなクライアントがネットワークセッションに参加したりあるいは接続が中断した事象があったり(例えば、クライアントがホスト200により送信されたデータを確認していない)といったイベントが生じたときに、クライアントに対しポーリングをするように構成することもできる。ポーリングモジュール260のポーリング動作は、米国特許公開番号第2003−0204566号の「マルチユーザアプリケーションインタフェース」に記載されているような周期的な鼓動にも似ているかもしれない。この開示は既に参照により援用されている。
ホスト200はタイマ270を含んでもよい。タイマ270は、イベント後に経過した時間を測定するように構成されている。ホスト200はタイマ270を使用して、ポーリングモジュール260により生成されるようなデータ送信と、そのデータ送信の確認との間の時間を判定することができる。この種の情報を使用して、特定クライアントへの接続を打ち切るか否かの判定をすることができる。タイマ270により測定するとき、ホスト200がある期間の間、特定のクライアントからの確認を受け取っていなかったりまたはポーリングの応答を受け取っていない場合、ホスト200はそのクライアントとの接続を停止することができる。
バックアップアプリケーションモジュール250により作成されたアプリケーションは、ポーリングモジュール260およびタイマ270の機能と似た特定の機能をさらに含んでもよい。ネットワークセッションから特定クライアントを外すか否かを判定しようとするホスト200とは異なり、この「鼓動」機能はバックアップホストとして指定されたクライアントによって使用され、ホスト200が特定のホスト義務を実行できなくなったり、またはホスト義務の実行に連続して失敗した時間を判定する。ホスト200が特定の義務を実行不可能であるかまたは実行に失敗したということは、確認モジュール220により生成されるACKすなわち鼓動を連続して受け取っていないことで表すことができる。
ホスト200はNATモジュール280を含む。NATモジュール280の実行によりNATプロファイル情報の収集、共有、および受信が可能となる。同様に、NATモジュール280の実行により、NATプロファイル情報を用いてネットワーク内の最も実行可能なホストを判定することが可能となる。NATプロファイル情報はメモリ、専用のデータベース、またはホスト情報データベース240のような他のデータベースに格納される。
ホスト200(および他の多くのクライアント)は、ネットワークアドレス変換器の後ろに存在し、そのネットワークアドレス変換器は、特定の計算機のために、内部のIPアドレスをパブリックなIPアドレスに変換する。パブリックなIPアドレスはネットワーク内の他の計算機から見られるアドレスである。ある実施の形態では、ホスト200や他の計算機器はネットワークアドレス変換器を内包する。しかしながら、あるネットワークでは、NATが全く使用されない。NATプロファイル情報は、使用されている(もしあれば)NATタイプ、NATがUPnP(Universal Plug and Play)を行う能力、NATのポート保存を維持する能力、およびNATのポート予測についての情報を含む。
場合によっては、ホスト200(またはネットワーク内の他の計算機)は、サービス情報の等価性のような付加的な情報に基づいて、補助的な調停フィルタを適用し、2以上の同程度に有望な候補デバイスの中からホストデバイスを選ぶ決定を調停することが望ましい。サービス品質情報は、クライアントのピングタイム、帯域幅の振る舞い、地理、レイテンシ、IPプロバイダなどの要因や上述の他の要因を含んでもよい。これらの追加的な情報はメモリや(専用または他の)データベースに格納される。
図3Aは、ネットワークアドレス変換器(図示せず)を含むネットワークデータ分配用の例示的なシステム300の実装を示す。ホスト200は複数のクライアント310A−Dに接続されている。クライアント310Aは、ホスト200とのバックアップ実行可能性についての交渉を成功させており、接続320を通じてホスト情報を受け取っている。ホスト情報を使用して、クライアント310Aはネットワーク内の他のクライアント、すなわちクライアント310B−Dと接続する。接続330により、クライアント310B−Dはクライアント310Aと直接(すなわち、ホスト200を介することなく)通信する。クライアント310B−Dは、それぞれのクライアントからホスト200へのデータ送信が困難になった場合に、接続330を用いてクライアント310Aとデータを交換することができる。クライアント310B−Dは、ホスト200とのデータ送信における問題に関係なく、クライアント310Aに対して自動的にデータを送信することもできる。
図3Bは、ネットワークアドレス変換器(図示せず)を含むネットワークデータ分配用の例示的なシステムの別の実装を示す。特に、図3Bは、ホスト200とクライアント310Dとの間の通信が中断した場合の、ネットワークデータ分配用の例示的なシステムを表している。具体的には、ホスト200とクライアント310Dの間のデータ送信340が失敗した様子が示されている。クライアント310Dがホスト200に対するデータ送信340を実行しようと試みている一方で、障害のある接続のためにホスト200による送信の受け取りが妨げられている。
クライアント310Aはネットワークセッションのバックアップホストであるので、クライアント310Dは、ホスト200に向けられたのと同一のデータを、バックアップデータ送信350で直接(すなわち、ホスト200を介さずに)クライアント310Aに送ることができる。続いて、クライアント310Aは、データ送信360でホスト200に対してそのデータを送る。この特定の実施形態では、クライアント310Dとホスト200とを分離する障害のある通信のために、クライアント310Aは、クライアント310Dとホスト200の間のプロキシ(代理)として機能する。続いて、ホスト200は、クライアント310Aを介して受け取ったものではあるが、クライアント310Dからのデータをクライアント310Bと310Cに分配する。代わりに、クライアント310Dとホスト200の間の接続に対するホスト義務をホスト200が維持することができなかった場合に、クライアント310Aがデータをクライアント310Bまたは310Cに送信してもよい。
ホスト200とクライアント310Dの間の通信が中断したので、クライアント310Dはクライアント310Aを介してセッションデータを取得する必要がある。クライアント310Aは、いずれかのコンピューティングデバイスに代わってデータを要求することに加えて、ホスト200およびクライアント310Dに対するデータ送受信の中間媒体として機能することができる。
図4は、NATプロファイル情報の利用を含むネットワークデータ分配をする例示的な方法400を示すフローチャートである。図4で特定されるステップ(およびその順序)は例示であり、様々な代替物、等価物または派生物を含むことができ、またその実行の順序に限定されない。図4のプロセスのステップ(およびその様々な代替物)は、プロセッサにより実行可能である命令を含む機械可読媒体またはコンピュータ可読記録媒体(例えば、光ディスク、メモリカードまたはハードドライブ)を含む、ハードウェアまたはソフトウェアで実現可能である。
ステップ410で、ホスト(例えばホスト200)がネットワークセッションを確立する。ホストは、ネットワークセッションを進行させる様々な態様の他に、ネットワークセッションに参加可能な対象についての特定のパラメータを設定してもよい。ホストは、特定のクライアントのみまたは招待されたクライアントのみが参加できるプライベートなネットワークセッションを確立することができる。代わりに、ホストは、公衆に開かれており任意のクライアントが参加可能であるネットワークセッションを確立することができる。
ステップ420で、ホストに接続することによって複数のクライアントがネットワークセッションに参加する。ネットワークセッションに参加可能である対象に関する特定のパラメータをホストが設定していた場合、ホストへの接続またはネットワークセッションへの参加が許可される前に、クライアントはそれらのパラメータを満足している必要がある。
ステップ430で、図2の交渉モジュール230を介してバックアップ実行可能性が交渉される。一つまたは複数のクライアントが、バックアップホストとして機能するための能力およびリソースを有する、実行可能なバックアップホストとなることができる。帯域およびサービス品質を含むバックアップ実行可能性の様々な側面が評価され、特定のクライアントがバックアップホストとして機能可能であるか否かが判定される。NATプロファイル情報も同様に考慮される。交渉モジュール230の要件に応じて、ネットワークセッション内のクライアント中に一つまたは二つ以上の実行可能なバックアップホストが存在するか、またはバックアップホストが存在しないこともある。
ステップ440で、バックアップ責任が割り当てられる。実行可能なバックアップホストであるクライアントが複数ある場合、順序および/または特定の責任に関して、それらのクライアントの間でバックアップ責任を割り当てる必要がある。ネットワークセッション内のクライアントは、第1の実行可能なバックアップホストに対して自身のデータを送信することができる。第1の実行可能なバックアップホストは、ホストによって特定されるか、またはブロードキャストあるいは他の通信によって最初にバックアップと見なされたものである。後者については、米国特許公開番号第2003−0217135号の「動的プレイヤー管理」に例証されており、この開示は既に参照により援用されている。第1の実行可能なバックアップホストがバックアップホストとして動作不可能であるか、または動作不可能になった場合、他のクライアントは、第2の実行可能なバックアップホストに対して自身のデータを送信して、ネットワークセッションに参加することができる。本明細書に開示の、および/または上述の「動的プレイヤー管理」の出願に開示されている手段を利用して、第2のバックアップホストと通信する必要性を示すことができる。
ステップ450で、ネットワークセッション内の他の各クライアントに対して特定のクライアントが接続可能であるか否かが判定される。バックアップホストは、セッション内の各クライアントおよびあらゆる他のクライアントと接続可能である必要がある。第1のクライアントが第2のクライアントと接続できない場合、第1のくライアンとは、ネットワークセッションのバックアップホストとして機能することはできない。例えば、第1クライアントによるあるタイプの接続を妨げるファイアウォール問題を第1のクライアントが有しているかもしれない。潜在的なバックアップホストがいかなる理由によっても別のクライアントと接続できない場合、本方法はステップ440に戻りバックアップ責任を再割り当てする。
あるクライアントが実行可能なバックアップホストであり、ネットワークセッション内の他のクライアントのすべてと接続可能であると判定されると、方法はステップ460に進む。ステップ460で、バックアップ情報が実行可能なバックアップホストにダウンロードされる。バックアップ情報をバックアップホストに提供することで、ホストはネットワークから抜け出すことができ、バックアップホストは、ネットワークセッション内の他のクライアントにより要求されるあらゆる情報を提供できるようになる。図2のバックアップアプリケーションモジュール250の文脈で述べたように、バックアップ情報は、シームレスなホスト移行を容易にするアプリケーションのダウンロードおよびインストールの一部として提供することができる。
ステップ470で、ネットワークデータ分配が開始される。図3Aに示したように、ホストとクライアントの間でデータ送信が発生する。図3Bにさらに示したように、二つのクライアントの間、すなわちホスト接続問題を抱えるクライアントから、バックアップホストとして動作可能であるクライアントに対してデータ送信が行われる。さらに、バックアップホストは、ホストに向けてデータを送るか、または要求に応じて他のクライアントに対して直接データを送ることができる。データを中継しなければならないあらゆる接続を介して、そのデータを要求するコンピューティングデバイスに対してデータが提供される。
例示的な実施形態を参照して本発明を説明してきたが、当業者ならば、本発明の真の精神および範囲を逸脱することなく、様々な変更が可能であり、また等価物による要素の置換が可能であることを理解するだろう。加えて、本発明の本質的な教示を逸脱することなく修正が可能である。本明細書で述べた様々な方法を実装するために様々な代替システムを利用することができ、また上述のシステムから生じる特定の結果を達成するために様々な方法を使用することができる。

Claims (39)

  1. ホストと複数のクライアントの間の接続を確立するステップであって、前記ホストと前記複数のクライアントの各々との間で交換されるデータが受領時に確認されるステップと、
    前記ホストと前記複数のクライアント間の接続が確立したときに前記ホストと前記複数のクライアントとの間で共有されたNAT(Network Address Translation)プロファイル情報に少なくとも基づいて、前記複数のクライアントのうち第1クライアントのバックアップ実行可能性を判定するステップと、
    前記第1クライアントに対してホスト情報を送信するステップであって、前記第1クライアントは少なくとも前記ホスト情報に基づき前記複数のクライアントのうち他のすべてのクライアントへの接続を確立し、前記ホストと前記複数のクライアントのうちの第2クライアントとの間で通信が中断された場合、前記第1クライアントが前記第2クライアントからデータを受け取るステップと、
    を含むネットワークデータ分配を維持する方法。
  2. 前記ホストと前記複数のクライアント間の前記NATプロファイル情報を共有するのに先立って、STUNサーバを通じてNATプロファイル情報を収集するステップをさらに含むことを特徴とする請求項1に記載の方法。
  3. クライアント−サーバ構成を利用して前記ホストと前記複数のクライアント間で前記NATプロファイル情報が共有されることを特徴とする請求項1に記載の方法。
  4. ピアツーピア構成を利用して前記ホストと前記複数のクライアント間で前記NATプロファイル情報が共有されることを特徴とする請求項1に記載の方法。
  5. 前記NATプロファイル情報を用いて前記複数のクライアントから前記クライアントそれぞれに優先度を割り当てるステップをさらに含み、
    NATプロファイル情報に少なくとも基づいて前記複数のクライアントのうち第1クライアントのバックアップ実行可能性を判定するステップは、前記優先度の使用を含むことを特徴とする請求項1に記載の方法。
  6. 前記第1クライアントの優先度が、前記複数のクライアントのうちの他のクライアントに割り当てられた優先度と等しい優先度のとき、優先度の衝突を解決するステップをさらに含むことを特徴とする請求項5に記載の方法。
  7. 前記優先度の衝突を解決するステップは、前記第1クライアントのより高次の序数に対して前記複数のクライアントのうちの前記他のクライアントに割り当てられた序数を参照するステップをさらに含み、
    前記序数はあらかじめ前記複数のクライアントそれぞれに割り当てられていることを特徴とする請求項6に記載の方法。
  8. 前記複数のクライアントの前記NATプロファイル情報はNATタイプを含み、
    前記NATプロファイル情報に少なくとも基づいて前記複数のクライアントのうち第1クライアントのバックアップ実行可能性を判定するステップは、前記NATタイプの使用を含むことを特徴とする請求項1に記載の方法。
  9. 前記複数のクライアントそれぞれの前記NATプロファイル情報は、NATがUPnP(Universal Plug and Play)をサーポーとするか否かに関する情報を含み、
    前記NATプロファイル情報に少なくとも基づいて前記複数のクライアントのうち第1クライアントのバックアップ実行可能性を判定するステップは、NATがUPnPをサーポーとするか否かに関する情報の使用を含むことを特徴とする請求項1に記載の方法。
  10. 前記複数のクライアントそれぞれの前記NATプロファイル情報は、NATのポート予測可能性に関する情報を含み、
    前記NATプロファイル情報に少なくとも基づいて前記複数のクライアントのうち第1クライアントのバックアップ実行可能性を判定するステップは、前記ポート予測可能性の情報の使用を含むことを特徴とする請求項1に記載の方法。
  11. 前記複数のクライアントそれぞれの前記NATプロファイル情報は、NATのポート保存に関する情報を含み、
    前記NATプロファイル情報に少なくとも基づいて前記複数のクライアントのうち第1クライアントのバックアップ実行可能性を判定するステップは、前記ポート保存の情報の使用を含むことを特徴とする請求項1に記載の方法。
  12. 前記通信の中断は、前記第2クライアントが前記ホストにデータを送信した後のある時間内に前記ホストから前記第2クライアントに対して確認がないことにより認識されることを特徴とする請求項1に記載の方法。
  13. 前記ホストと前記複数のクライアントの各々との間の接続を判定するために前記複数のクライアントにポーリングすることをさらに含む請求項1に記載の方法。
  14. 前記中断された通信が、前記ポーリングの結果によって示されることを特徴とする請求項13に記載の方法。
  15. 前記ホストから前記複数のクライアントの各々に対し、前記中断された通信に関する表示が送信されることをさらに含む請求項1に記載の方法。
  16. 前記中断された通信に基づき、前記ホストと前記第2クライアントとの間の通信を終了することをさらに含む請求項1に記載の方法。
  17. 前記第1クライアントのバックアップ実行可能性の判定が、該第1クライアントの帯域を判定することを含む請求項1に記載の方法。
  18. 前記第1クライアントのバックアップ実行可能性の判定が、前記第1クライアントが前記複数のクライアントのうちの他のクライアントの各々へと接続可能であるかを判定することをさらに含む請求項1に記載の方法。
  19. 前記第1クライアントへのホスト情報の送信が、該ホスト情報を提供するアプリケーションを送信することを含む請求項1に記載の方法。
  20. 前記ホストと前記複数のクライアント間の接続が確立したときに前記ホストと前記複数のクライアントとの間で共有されたNATプロファイル情報に少なくとも基づいて、前記複数のクライアントのうちの第3クライアントのバックアップ実行可能性を判定し、
    少なくともホスト情報とNATプロファイル情報とに基づき、前記第3クライアントが前記複数のクライアントのうちの他のすべてのクライアントへと接続し、かつ、前記第1クライアントと前記第2クライアントの間の通信が中断された場合に該第3クライアントが前記第2クライアントからデータを受信できるように、前記第3クライアントに対してホスト情報を送信することをさらに含む請求項1に記載の方法。
  21. 前記ホストとの接続が確立される順序に少なくとも基づき、前記第3クライアントへデータを送信する前に前記第1クライアントにデータを送信するように前記第2クライアントがさらに構成されていることを特徴とする請求項20に記載の方法。
  22. 前記第1クライアントの帯域と前記第3クライアントの帯域とに少なくとも基づき、前記第3クライアントにデータを送信する前に前記第1クライアントにデータを送信するように前記第2クライアントがさらに構成されていることを特徴とする請求項20に記載の方法。
  23. 複数のクライアントに接続されるよう構成され、該複数のクライアントの各々からデータを受け取りデータの受信を確認するホストと、
    ホスト情報を受け取るように構成され、前記ホストと前記複数のクライアント間の接続が確立したときに前記ホストと前記複数のクライアントとの間で共有されたNATプロファイル情報に少なくとも基づいて、前記複数のクライアントのうちの他のすべてのクライアントと接続する第1クライアントと、
    前記ホストとの間の通信が中断した場合に、前記第1クライアントに対してデータを送信するように構成された第2クライアントとを備え、
    前記ホストは、第1クライアントのバックアップ実行可能性を交渉することを特徴とするネットワークデータ分配を維持するシステム。
  24. 前記通信の中断が、前記第2クライアントが前記ホストにデータを送信した後ある時間内に前記ホストからの確認がないことによって示されることを特徴とする請求項23に記載のシステム。
  25. 前記第2クライアントは、前記ホストに対しデータを再送信するようにさらに構成されていることを特徴とする請求項23に記載のシステム。
  26. 前記第2クライアントは、前記ホストと第2クライアントの間の通信の中断に関する情報を、前記複数のクライアントの各々に通知するようにさらに構成されていることを特徴とする請求項23に記載のシステム。
  27. 前記第2クライアントは、前記ホストと第2クライアントの間の接続を停止するようにさらに構成されていることを特徴とする請求項23に記載のシステム。
  28. 前記ホストは、接続に関する情報を前記複数のクライアントにポーリングするようにさらに構成されていることを特徴とする請求項23に記載のシステム。
  29. 前記ホストは、該ホストと前記第2クライアントの間の通信の中断に関する情報を、前記複数のクライアントの各々に通知する通知するようにさらに構成されていることを特徴とする請求項23に記載のシステム。
  30. 前記ホストは、該ホストと前記第2クライアントの間の接続を停止するようにさらに構成されていることを特徴とする請求項29に記載のシステム。
  31. 前記ホストは、前記第1クライアントの帯域に基づいて前記第1クライアントのバックアップ実行可能性の交渉をするようにさらに構成されていることを特徴とする請求項23に記載のシステム。
  32. 前記ホストは、前記複数のクライアントのうちの他のクライアントの各々に対して前記第1クライアントが接続可能であるか否かに基づきバックアップ実行可能性をさらに交渉することを特徴とする請求項23に記載のシステム。
  33. 前記ホストは、前記第1クライアントに対してホスト情報を送信するようにさらに構成されていることを特徴とする請求項23に記載のシステム。
  34. 前記ホストは、前記複数のクライアントのうちの他のクライアントの各々に関する情報を提供するように構成されたアプリケーションを送信することで、前記ホスト情報を送信することを特徴とする請求項33に記載のシステム。
  35. 前記複数のクライアントのうちの第3クライアントがホスト情報を受け取るように構成されており、これにより前記第3クライアントが、前記ホストと前記複数のクライアント間の接続が確立したときに前記ホストと前記複数のクライアントとの間で共有されたNATプロファイル情報に少なくとも基づいて、複数のクライアントのうちの他のすべてのクライアントと接続することを特徴とする請求項23に記載のシステム。
  36. 前記第2クライアントは、前記第1クライアントと前記第2クライアントとの間の通信が中断している場合、前記第3クライアントにデータを送信するようにさらに構成されていることを特徴とする請求項35に記載のシステム。
  37. クライアントから受け取ったデータを確認する応答を送信するように構成された確認モジュールと、
    共有されたNAT(Network Address Translation)プロファイル情報に少なくとも基づいて、第1クライアントのバックアップ実行可能性を交渉するように構成された交渉モジュールと、
    少なくともNATプロファイル情報に基づき複数のクライアントのうちの他のクライアントすべてに前記第1クライアントが接続して第2クライアントからデータを受け取るように、前記第1クライアントに対してホスト情報を提供するアプリケーションを送信するように構成されたバックアップアプリケーションモジュールと、
    を備えることを特徴とする、ネットワーク内でデータ分配を維持するためのコンピューティングデバイス。
  38. プロセッサにより実行可能でありグループメッセージング方法を実行するプログラムが具現化されたコンピュータ可読の記録媒体であって、
    前記プログラムは、
    ホストと複数のクライアントの各々との間で交換されたデータが受領時に確認されるように、複数のクライアントにホストを接続し、
    前記ホストと前記複数のクライアント間の接続が確立したときに前記ホストと前記複数のクライアントとの間で共有されたNAT(Network Address Translation)プロファイル情報に少なくとも基づいて、前記複数のクライアントとのうちの第1クライアントのバックアップ実行可能性を判定し、
    少なくともホスト情報に基づき前記複数のクライアントのうちの他のクライアントすべてに前記第1クライアントが接続して、複数のクライアントのうちの第2クライアントから第1クライアントがデータを受け取るように、前記第1クライアントに対してホスト情報を送信することを含む記録媒体。
  39. 前記プログラムは、前記ホストと前記第2クライアントの間の接続を停止するための実行可能な命令をさらに含むことを特徴とする請求項38に記載の記録媒体。
JP2010527990A 2007-10-05 2008-10-01 Natタイプに基づくシームレスなホスト移行 Active JP5054821B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US99791807P 2007-10-05 2007-10-05
US60/997,918 2007-10-05
US12/049,954 US8131802B2 (en) 2007-10-05 2008-03-17 Systems and methods for seamless host migration
US12/049,954 2008-03-17
US12/235,438 US8560707B2 (en) 2007-10-05 2008-09-22 Seamless host migration based on NAT type
US12/235,438 2008-09-22
PCT/US2008/011415 WO2009045475A1 (en) 2007-10-05 2008-10-01 Seamless host migration based on nat type

Publications (2)

Publication Number Publication Date
JP2010541476A JP2010541476A (ja) 2010-12-24
JP5054821B2 true JP5054821B2 (ja) 2012-10-24

Family

ID=40524267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010527990A Active JP5054821B2 (ja) 2007-10-05 2008-10-01 Natタイプに基づくシームレスなホスト移行

Country Status (6)

Country Link
US (2) US8560707B2 (ja)
EP (2) EP2198372B1 (ja)
JP (1) JP5054821B2 (ja)
CN (1) CN101861575A (ja)
TW (1) TWI491229B (ja)
WO (1) WO2009045475A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711847B2 (en) 2002-04-26 2010-05-04 Sony Computer Entertainment America Inc. Managing users in a multi-user network game environment
US20030217135A1 (en) 2002-05-17 2003-11-20 Masayuki Chatani Dynamic player management
US8131802B2 (en) 2007-10-05 2012-03-06 Sony Computer Entertainment America Llc Systems and methods for seamless host migration
US8060626B2 (en) 2008-09-22 2011-11-15 Sony Computer Entertainment America Llc. Method for host selection based on discovered NAT type
US8560707B2 (en) 2007-10-05 2013-10-15 Sony Computer Entertainment America Llc Seamless host migration based on NAT type
US7995478B2 (en) * 2007-05-30 2011-08-09 Sony Computer Entertainment Inc. Network communication with path MTU size discovery
US7856501B2 (en) 2007-12-04 2010-12-21 Sony Computer Entertainment Inc. Network traffic prioritization
US20090150568A1 (en) * 2007-12-06 2009-06-11 Vicente John B Method and apparatus for synchronizing between a centralized system and a decentralized system
US20090248793A1 (en) * 2008-03-25 2009-10-01 Contribio Ab Providing Content In a Network
US20140032483A1 (en) * 2008-11-15 2014-01-30 Adobe Systems Incorporated Asset distribution architecture and timeline history
US9456007B2 (en) 2008-11-15 2016-09-27 Adobe Systems Incorporated Session aware notifications
US9158897B2 (en) 2008-11-15 2015-10-13 Adobe Systems Incorporated Methods and systems for distributing right-protected asset
US9197678B2 (en) * 2008-12-11 2015-11-24 Skype Method and system for data transmission
CN102196057B (zh) * 2010-03-03 2015-11-25 腾讯科技(深圳)有限公司 一种确定nat类型的方法及装置
US8549201B2 (en) 2010-06-30 2013-10-01 Intel Corporation Interrupt blocker
US20120246229A1 (en) * 2011-03-21 2012-09-27 Microsoft Corporation Notifying Participants that a Conference is Starting
US9323466B2 (en) * 2011-04-27 2016-04-26 Commvault Systems, Inc. System and method for client policy assignment in a data storage system
US8761762B2 (en) * 2011-05-27 2014-06-24 Koninklijke Kpn N.V. Migration and activation of services in a network
KR20160126024A (ko) * 2014-02-27 2016-11-01 인터디지탈 테크날러지 코포레이션 네트워크 게임들 및 서비스들의 소비자들의 유지를 위한 방법 및 장치
US9413659B2 (en) 2014-06-11 2016-08-09 Cisco Technology, Inc. Distributed network address and port translation for migrating flows between service chains in a network environment
KR101783014B1 (ko) * 2015-09-10 2017-09-28 주식회사 수산아이앤티 공유단말 검출 방법 및 그 장치
CN105635346B (zh) * 2016-03-31 2018-12-14 北京奇艺世纪科技有限公司 一种nat网络类型检测方法及装置
JP6760394B2 (ja) 2016-12-02 2020-09-23 ヤマハ株式会社 コンテンツ再生機器、収音機器、及びコンテンツ再生システム
CN108650297A (zh) * 2018-04-09 2018-10-12 天津中兴智联科技有限公司 一种物联网中间件高可用性的实现方法及系统
US10765952B2 (en) 2018-09-21 2020-09-08 Sony Interactive Entertainment LLC System-level multiplayer matchmaking
US10695671B2 (en) 2018-09-28 2020-06-30 Sony Interactive Entertainment LLC Establishing and managing multiplayer sessions
US10987578B2 (en) * 2019-09-04 2021-04-27 South Park Digital Studios LLC Live video game intervention
US11681542B2 (en) 2020-01-16 2023-06-20 Vmware, Inc. Integrating virtualization and host networking
US11606465B2 (en) 2020-12-16 2023-03-14 Rovi Guides, Inc. Systems and methods to automatically perform actions based on media content
US11595278B2 (en) * 2020-12-16 2023-02-28 Rovi Guides, Inc. Systems and methods to automatically perform actions based on media content
US11749079B2 (en) 2020-12-16 2023-09-05 Rovi Guides, Inc. Systems and methods to automatically perform actions based on media content
US11290684B1 (en) 2020-12-16 2022-03-29 Rovi Guides, Inc. Systems and methods to automatically perform actions based on media content

Family Cites Families (172)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0522346Y2 (ja) 1986-06-12 1993-06-08
JPH0351078Y2 (ja) 1986-08-19 1991-10-31
CN1110066A (zh) 1993-06-03 1995-10-11 塔里根特公司 位置目标系统
WO1995031061A1 (en) * 1994-05-05 1995-11-16 Catapult Entertainment, Inc. Network architecture for real-time video games
US5630757A (en) * 1994-11-29 1997-05-20 Net Game Limited Real-time multi-user game communication system using existing cable television infrastructure
US5682139A (en) * 1995-06-07 1997-10-28 General Electric Company Railcar location using mutter networks and locomotive transmitter during transit
US5826085A (en) * 1995-07-12 1998-10-20 Oracle Corporation Object oriented computer interface supporting interactive networked applications
US5941947A (en) * 1995-08-18 1999-08-24 Microsoft Corporation System and method for controlling access to data entities in a computer network
US6219045B1 (en) * 1995-11-13 2001-04-17 Worlds, Inc. Scalable virtual world chat client-server system
US5823879A (en) * 1996-01-19 1998-10-20 Sheldon F. Goldberg Network gaming system
US5894556A (en) * 1996-03-21 1999-04-13 Mpath Interactive, Inc. Network match maker matching requesters based on communication attribute between the requesters
US5704032A (en) 1996-04-30 1997-12-30 International Business Machines Corporation Method for group leader recovery in a distributed computing environment
US6050898A (en) * 1996-05-15 2000-04-18 Vr-1, Inc. Initiating and scaling massive concurrent data transaction
US5841980A (en) * 1996-05-15 1998-11-24 Rtime, Inc. Distributed system for communication networks in multi-user applications
US5838909A (en) * 1996-05-23 1998-11-17 Sandcastle, Inc. Reducing latency when synchronizing access to a multi-user database over a network
US6098091A (en) 1996-12-30 2000-08-01 Intel Corporation Method and system including a central computer that assigns tasks to idle workstations using availability schedules and computational capabilities
US6152824A (en) * 1997-03-06 2000-11-28 Mpath Interactive, Inc. Online gaming architecture
US6151632A (en) * 1997-03-14 2000-11-21 Microsoft Corporation Method and apparatus for distributed transmission of real-time multimedia information
US6041312A (en) * 1997-03-28 2000-03-21 International Business Machines Corporation Object oriented technology framework for accounts receivable and accounts payable
US6530840B1 (en) 1997-04-02 2003-03-11 International Business Machines Corporation Method and system for an object architecture for a multi-user game lobby and game session
US5984787A (en) * 1997-06-17 1999-11-16 International Business Machines Corp. Method and system for multi-user game recovery
US5893106A (en) * 1997-07-11 1999-04-06 International Business Machines Corporation Object oriented server process framework with interdependent-object creation
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
US6106569A (en) * 1997-08-14 2000-08-22 International Business Machines Corporation Method of developing a software system using object oriented technology
JPH1157215A (ja) * 1997-08-20 1999-03-02 Fuji Xerox Co Ltd ネットワークゲームシステム、ネットワークゲームサーバ装置、ネットワークゲームクライアント装置、対局者選定プログラムを記録した媒体及び対局者情報取得プログラムを記録した媒体
JP3831092B2 (ja) * 1997-09-19 2006-10-11 富士通株式会社 サーバ
US6769990B2 (en) 1998-02-06 2004-08-03 Robert Cohen Networked search and tracking games
JPH11234326A (ja) 1998-02-12 1999-08-27 Nippon Telegr & Teleph Corp <Ntt> 情報流通システム
US6844893B1 (en) 1998-03-09 2005-01-18 Looking Glass, Inc. Restaurant video conferencing system and method
US6247017B1 (en) * 1998-03-20 2001-06-12 Sun Microsystems, Inc. Server-client communication over a network
US6108569A (en) * 1998-05-15 2000-08-22 E. I. Du Pont De Nemours And Company High temperature superconductor mini-filters and mini-multiplexers with self-resonant spiral resonators
US6549946B1 (en) * 1998-05-21 2003-04-15 International Business Machines Corporation Apparatus and method for telecommunication routing and parameter negotiation
US6260120B1 (en) 1998-06-29 2001-07-10 Emc Corporation Storage mapping and partitioning among multiple host processors in the presence of login state changes and host controller replacement
US6463078B1 (en) 1998-07-22 2002-10-08 Microsoft Corporation Method for switching protocols transparently in multi-user applications
EP1141857A1 (en) 1998-08-17 2001-10-10 Net Talk, Inc. Computer architecture and process for audio conferencing over local and global networks including internets and intranets
US6363416B1 (en) * 1998-08-28 2002-03-26 3Com Corporation System and method for automatic election of a representative node within a communications network with built-in redundancy
US6487583B1 (en) 1998-09-15 2002-11-26 Ikimbo, Inc. System and method for information and application distribution
JP2000124939A (ja) 1998-10-13 2000-04-28 Nippon Telegr & Teleph Corp <Ntt> マルチメディア通信システム及びこのシステムを構成する装置並びに該装置のプログラムを記録した媒体
JP2000157724A (ja) 1998-11-24 2000-06-13 Sega Enterp Ltd ネットワークを利用したゲームシステム、ネットワークに接続可能なゲーム機及びこのゲーム機のためのプログラムが記録された媒体
US6931446B1 (en) * 1998-12-14 2005-08-16 International Business Machines Corporation Methods, systems and computer program products for policy based network control of characteristics of user sessions
JP2000215177A (ja) * 1999-01-26 2000-08-04 Atr Ningen Joho Tsushin Kenkyusho:Kk クライアント―サ―バシステム、サ―バ/クライアント装置、およびサ―バ/クライアントソフトウェアの管理プログラムを記録したコンピュ―タで読取可能な記録媒体
JP2001187273A (ja) 1999-01-28 2001-07-10 Sega Corp ネットワークゲームシステム、これに使用されるゲーム装置端末及び記憶媒体
US6142472A (en) * 1999-03-02 2000-11-07 Kliebisch; Henry Corporate ladder game
US6763371B1 (en) * 1999-05-10 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for collaborative communication in a communication network
IL146348A0 (en) 1999-05-10 2002-07-25 Ericsson Telefon Ab L M Method and apparatus in a communication network
US6470022B1 (en) 1999-05-19 2002-10-22 3Com Corporation Method of distributing network resources fairly between users in an asynchronous transfer mode network
DE60002202T2 (de) * 1999-06-11 2004-02-05 British Telecommunications P.L.C. Kommunikation zwischen softwarekomponenten
US6539494B1 (en) * 1999-06-17 2003-03-25 Art Technology Group, Inc. Internet server session backup apparatus
US6587874B1 (en) * 1999-06-29 2003-07-01 Cisco Technology, Inc. Directory assisted autoinstall of network devices
US6577628B1 (en) 1999-06-30 2003-06-10 Sun Microsystems, Inc. Providing quality of service (QoS) in a network environment in which client connections are maintained for limited periods of time
US6519639B1 (en) * 1999-07-21 2003-02-11 Microsoft Corporation System and method for activity monitoring and reporting in a computer network
US6561811B2 (en) * 1999-08-09 2003-05-13 Entertainment Science, Inc. Drug abuse prevention computer game
US6352479B1 (en) * 1999-08-31 2002-03-05 Nvidia U.S. Investment Company Interactive gaming server and online community forum
US6487678B1 (en) * 1999-08-31 2002-11-26 International Business Machines Corporation Recovery procedure for a dynamically reconfigured quorum group of processors in a distributed computing system
US6748420B1 (en) * 1999-11-23 2004-06-08 Cisco Technology, Inc. Methods and apparatus for providing shared access to an application
US7337210B2 (en) * 2000-01-13 2008-02-26 International Business Machines Corporation Method and apparatus for determining availability of a user of an instant messaging application
JP3512386B2 (ja) * 2000-01-20 2004-03-29 株式会社スクウェア・エニックス オンライン複合サービス提供処理方法およびオンライン複合サービス提供処理システム
AU2001241605A1 (en) * 2000-02-17 2001-09-12 Acclaim Entertainment, Inc. Multi-player computer game, system and method
KR100505281B1 (ko) 2000-02-18 2005-08-04 (주)아이콤 소프트 비디오게임 론칭 서버와 이를 이용한 네트워크를 통한비디오게임 시스템 및 방법
US7720908B1 (en) * 2000-03-07 2010-05-18 Microsoft Corporation System and method for multi-layered network communications
US6654831B1 (en) * 2000-03-07 2003-11-25 International Business Machine Corporation Using multiple controllers together to create data spans
WO2001071512A1 (en) 2000-03-23 2001-09-27 Fraunhofer Center For Research In Computer Graphics, Inc. Extensible information distribution mechanism for session management
US20020042830A1 (en) * 2000-03-31 2002-04-11 Subhra Bose System, method and applications real-time messaging over HTTP-based protocols
JP2001312468A (ja) * 2000-04-28 2001-11-09 Konami Co Ltd ネットワーク接続制御方法及び接続制御システム
US7039694B2 (en) 2000-05-02 2006-05-02 Sun Microsystems, Inc. Cluster membership monitor
JP2001314657A (ja) 2000-05-08 2001-11-13 Sega Corp ネットワークシステム及び記憶媒体
US20020023117A1 (en) 2000-05-31 2002-02-21 James Bernardin Redundancy-based methods, apparatus and articles-of-manufacture for providing improved quality-of-service in an always-live distributed computing environment
US7056217B1 (en) * 2000-05-31 2006-06-06 Nintendo Co., Ltd. Messaging service for video game systems with buddy list that displays game being played
JP4408534B2 (ja) 2000-06-27 2010-02-03 株式会社バンダイナムコゲームス マルチプレイヤーゲーム用の情報提供システムおよび情報記憶媒体
US6704885B1 (en) * 2000-07-28 2004-03-09 Oracle International Corporation Performing data backups with a stochastic scheduler in a distributed computing environment
US7089301B1 (en) 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
US6676521B1 (en) * 2000-08-18 2004-01-13 Cariocas, Inc. Enhanced online game mechanisms
US7299403B1 (en) * 2000-10-11 2007-11-20 Cisco Technology, Inc. Methods and apparatus for obtaining a state of a browser
JP3646983B2 (ja) * 2000-10-19 2005-05-11 株式会社ソニー・コンピュータエンタテインメント 待ち順番表示方法、待ち順番表示方法のプログラム、待ち順番表示方法のプログラムが記録された記録媒体、及びコンテンツ配信システム
SE520129C2 (sv) 2000-10-27 2003-05-27 Terraplay Systems Ab Kommunikationsinfrastrukturanordning i och en datorläsbar programprodukt för ett databearbetningssystem för fleranvändarapplikationer
SE517815C2 (sv) * 2000-10-27 2002-07-16 Terraplay Systems Ab Konfigurering av en flexibel infrastruktur
US8402124B1 (en) 2000-11-16 2013-03-19 International Business Machines Corporation Method and system for automatic load balancing of advertised services by service information propagation based on user on-demand requests
JP2002157206A (ja) * 2000-11-17 2002-05-31 Square Co Ltd 電子会議参加方法およびそのシステム
GB0028474D0 (en) 2000-11-22 2001-01-10 Raekanet Ltd Improved computer network architecture and associated method and system
US7409061B2 (en) * 2000-11-29 2008-08-05 Noatak Software Llc Method and system for secure distribution of subscription-based game software
US20020075844A1 (en) * 2000-12-15 2002-06-20 Hagen W. Alexander Integrating public and private network resources for optimized broadband wireless access and method
US20020116397A1 (en) 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
US20020082065A1 (en) * 2000-12-26 2002-06-27 Fogel David B. Video game characters having evolving traits
US20020082077A1 (en) * 2000-12-26 2002-06-27 Johnson Douglas R. Interactive video game system with characters that evolve physical and cognitive traits
US20030018719A1 (en) * 2000-12-27 2003-01-23 Ruths Derek Augustus Samuel Data-centric collaborative computing platform
US7130883B2 (en) 2000-12-29 2006-10-31 Webex Communications, Inc. Distributed network system architecture for collaborative computing
US7203755B2 (en) 2000-12-29 2007-04-10 Webex—Communications, Inc. System and method for application sharing in collaborative setting
US7685224B2 (en) 2001-01-11 2010-03-23 Truelocal Inc. Method for providing an attribute bounded network of computers
US7035911B2 (en) 2001-01-12 2006-04-25 Epicrealm, Licensing Llc Method and system for community data caching
US7188145B2 (en) 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
US6761636B2 (en) * 2001-01-16 2004-07-13 Fucom Company, Ltd. Real time data exchange system
US7165107B2 (en) 2001-01-22 2007-01-16 Sun Microsystems, Inc. System and method for dynamic, transparent migration of services
US7107312B2 (en) * 2001-02-06 2006-09-12 Lucent Technologies Inc. Apparatus and method for use in a data/conference call system for automatically collecting participant information and providing all participants with that information for use in collaboration services
US20020115488A1 (en) * 2001-02-22 2002-08-22 Nicholas Berry System and method for conducting an online competition
US7035919B1 (en) 2001-03-21 2006-04-25 Unisys Corporation Method for calculating user weights for thin client sizing tool
US7236939B2 (en) 2001-03-31 2007-06-26 Hewlett-Packard Development Company, L.P. Peer-to-peer inter-enterprise collaborative process management method and system
TWI220821B (en) 2001-04-26 2004-09-01 Accton Technology Corp Zero-loss web service system and method
US7177950B2 (en) * 2001-04-26 2007-02-13 Microsoft Corporation Synchronization and recovery of peers in a peer to peer environment
JP3429286B2 (ja) * 2001-05-29 2003-07-22 株式会社コナミコンピュータエンタテインメント大阪 ネットゲームシステム及びネットゲーム管理方法
US7269632B2 (en) * 2001-06-05 2007-09-11 Xdyne, Inc. Networked computer system for communicating and operating in a virtual reality environment
CN1524221A (zh) * 2001-07-06 2004-08-25 ���������˼�빫˾ 信息备份系统和方法
US8065394B2 (en) * 2001-08-20 2011-11-22 Bally Gaming, Inc. Local game-area network method
JP4658412B2 (ja) 2001-09-20 2011-03-23 富士通株式会社 データ共有装置
US20030073494A1 (en) * 2001-10-15 2003-04-17 Kalpakian Jacob H. Gaming methods, apparatus, media and signals
JP3883452B2 (ja) 2002-03-04 2007-02-21 富士通株式会社 通信システム
US20030190960A1 (en) * 2002-04-04 2003-10-09 Eron Jokipii Method and system for providing access to and administering online gaming leagues and tournaments
US7587465B1 (en) * 2002-04-22 2009-09-08 Cisco Technology, Inc. Method and apparatus for configuring nodes as masters or slaves
US20030204593A1 (en) 2002-04-25 2003-10-30 International Business Machines Corporation System and method for dynamically altering connections in a data processing network
US7711847B2 (en) * 2002-04-26 2010-05-04 Sony Computer Entertainment America Inc. Managing users in a multi-user network game environment
US7421471B2 (en) * 2002-05-17 2008-09-02 Sony Computer Entertainment America Inc. Configuration switching: dynamically changing between network communication architectures
US20030217135A1 (en) * 2002-05-17 2003-11-20 Masayuki Chatani Dynamic player management
US20040001476A1 (en) 2002-06-24 2004-01-01 Nayeem Islam Mobile application environment
US7454458B2 (en) 2002-06-24 2008-11-18 Ntt Docomo, Inc. Method and system for application load balancing
US9497168B2 (en) 2002-07-30 2016-11-15 Avaya Inc. Method and apparatus for supporting communications between a computing device within a network and an external computing device
US8560707B2 (en) 2007-10-05 2013-10-15 Sony Computer Entertainment America Llc Seamless host migration based on NAT type
US8224985B2 (en) * 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US8131802B2 (en) 2007-10-05 2012-03-06 Sony Computer Entertainment America Llc Systems and methods for seamless host migration
FR2843210B1 (fr) * 2002-08-02 2005-10-14 Meiosys Procede de migration de connexions dans une architecture multi-ordinateurs, procede pour realiser une continuite de fonctionnement mettant en oeuvre ce procede de migration, et systeme multi-ordinateurs ainsi equipe.
US7016942B1 (en) * 2002-08-05 2006-03-21 Gary Odom Dynamic hosting
US20040031052A1 (en) 2002-08-12 2004-02-12 Liberate Technologies Information platform
JP2004180003A (ja) * 2002-11-27 2004-06-24 Kitt Peak:Kk 通信ネットワークシステムおよび通信の接続方法
WO2004063843A2 (en) 2003-01-15 2004-07-29 Matsushita Electric Industrial Co., Ltd. PEER-TO-PEER (P2P) CONNECTION DESPITE NETWORK ADDRESS TRANSLATOR (NATs) AT BOTH ENDS
US7899932B2 (en) 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
US7097562B2 (en) * 2003-06-03 2006-08-29 Wms Gaming Inc. Peer-to-peer distributed gaming application network
US7502322B2 (en) * 2003-09-30 2009-03-10 Nokia Corporation System, method and computer program product for increasing throughput in bi-directional communications
JP2005107819A (ja) * 2003-09-30 2005-04-21 Daifuku Logistic Technology:Kk コンピュータネットワークシステムのフェイルセーフ方法
US8234383B2 (en) 2003-11-07 2012-07-31 Panasonic Corporation Bubble packet port identification using detection packets
JP3849711B2 (ja) * 2003-11-07 2006-11-22 松下電器産業株式会社 通信システム、情報処理装置、サーバ、および通信方法
JP4269226B2 (ja) * 2003-11-14 2009-05-27 ソニー株式会社 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体
DE10353925B4 (de) 2003-11-18 2009-12-24 Nec Europe Ltd. Verfahren zum Austausch von Daten zwischen zwei Hosts
US7171583B2 (en) * 2003-12-10 2007-01-30 International Business Machines Corporation For PPRC backup systems
EP1723533A1 (en) 2004-03-09 2006-11-22 Clique Communications Llc System and method for peer-to-peer connection of clients behind symmetric firewalls
US20060168107A1 (en) 2004-03-16 2006-07-27 Balan Rajesh K Generalized on-demand service architecture for interactive applications
US7536467B2 (en) * 2004-04-20 2009-05-19 Microsoft Corporation Peer-to-peer (P2P) mobility system, and method
US20050245317A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Voice chat in game console application
US20060015560A1 (en) * 2004-05-11 2006-01-19 Microsoft Corporation Multi-sensory emoticons in a communication system
US7620033B2 (en) * 2004-05-21 2009-11-17 Alcatel-Lucent Usa Inc. Method for optimal path selection in traversal of packets through network address translators
US7778187B2 (en) * 2004-06-29 2010-08-17 Damaka, Inc. System and method for dynamic stability in a peer-to-peer hybrid communications network
JP2008510232A (ja) * 2004-08-13 2008-04-03 サイトリックス システムズ, インコーポレイテッド 多数のリモートアクセスサーバにわたる処理整合性を維持する方法
CN101189852B (zh) 2004-08-17 2012-10-03 肖分析有限公司 用于上游故障检测和故障恢复的技术
US7543064B2 (en) 2004-09-30 2009-06-02 Logitech Europe S.A. Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host
US7840963B2 (en) * 2004-10-15 2010-11-23 Microsoft Corporation Marking and utilizing portions of memory state information during a switch between virtual machines to minimize software service interruption
JP4625968B2 (ja) * 2004-11-10 2011-02-02 株式会社セガ ネットワークゲームシステム、及びゲーム装置
US7929422B2 (en) * 2005-01-06 2011-04-19 Cisco Technology, Inc. Method of moving a transport connection among network hosts
US7787383B2 (en) 2005-03-04 2010-08-31 Network Appliance, Inc. Method and apparatus for monitoring a connection in a peer-to-peer network
JP4741964B2 (ja) * 2005-03-18 2011-08-10 パナソニック株式会社 通信装置、通信システム及び通信方法
US20070061460A1 (en) 2005-03-24 2007-03-15 Jumpnode Systems,Llc Remote access
US8019986B2 (en) * 2005-08-12 2011-09-13 Comcast Cable Holdings, Llc Method and system for booting, provisioning and activating hardware and software clients
JP4331154B2 (ja) 2005-09-29 2009-09-16 パナソニック株式会社 情報処理システム、トンネル通信装置、及びトンネル通信方法
US20070094325A1 (en) 2005-10-21 2007-04-26 Nucleoid Corp. Hybrid peer-to-peer data communication and management
US7539216B2 (en) 2005-11-16 2009-05-26 Cable Television Laboratories, Inc. Method and system of determining last hop device addresses
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8676899B2 (en) 2006-01-26 2014-03-18 International Business Machines Corporation Offline IM chat to avoid server connections
US9047310B2 (en) * 2006-02-22 2015-06-02 Microsoft Technology Licensing, Llc Reliable, efficient peer-to-peer storage
US8347341B2 (en) 2006-03-16 2013-01-01 Time Warner Cable Inc. Methods and apparatus for centralized content and data delivery
US20070233865A1 (en) * 2006-03-30 2007-10-04 Garbow Zachary A Dynamically Adjusting Operating Level of Server Processing Responsive to Detection of Failure at a Server
US7643459B2 (en) * 2006-06-16 2010-01-05 Alcatel-Lucent Usa Inc. Methods, devices and architectures for establishing peer-to-peer sessions
US20080049755A1 (en) 2006-08-25 2008-02-28 Motorola, Inc. Method and system for optimizing resource allocations based on quality of service needs of one or more applications
US7680908B2 (en) 2006-09-28 2010-03-16 Microsoft Corporation State replication
CN101232413B (zh) 2007-01-25 2012-11-21 华为技术有限公司 一种转移会话控制权的方法、系统和服务器
US7747688B2 (en) 2007-02-07 2010-06-29 International Business Machines Corporation System and method for managing group interaction session states
US8719375B2 (en) 2007-03-22 2014-05-06 Microsoft Corporation Remote data access techniques for portable devices
US8489830B2 (en) * 2007-03-30 2013-07-16 Symantec Corporation Implementing read/write, multi-versioned file system on top of backup data
US8335813B2 (en) 2007-05-01 2012-12-18 Illinois Institute Of Technology Systems, methods, and protocols for process migration and group membership management
US7881329B2 (en) 2007-05-25 2011-02-01 Sharp Laboratories Of America, Inc. Method and system for maintaining high reliability logical connection
US7996543B2 (en) 2007-08-16 2011-08-09 Xcastlabs Client-to-client direct RTP exchange in a managed client-server network
US8725874B2 (en) 2007-09-27 2014-05-13 International Business Machines Corporation Dynamic determination of an ideal client-server for a collaborative application network
US7856501B2 (en) 2007-12-04 2010-12-21 Sony Computer Entertainment Inc. Network traffic prioritization
US9473598B2 (en) 2007-12-18 2016-10-18 International Business Machines Corporation Network connection failover during application service interruption
WO2009134772A2 (en) * 2008-04-29 2009-11-05 Maxiscale, Inc Peer-to-peer redundant file server system and methods
US9197678B2 (en) 2008-12-11 2015-11-24 Skype Method and system for data transmission
US9032248B1 (en) * 2012-10-04 2015-05-12 Amazon Technologies, Inc. Memory write tracking for virtual machines

Also Published As

Publication number Publication date
US20130304931A1 (en) 2013-11-14
US9516068B2 (en) 2016-12-06
EP2198372A4 (en) 2011-08-24
JP2010541476A (ja) 2010-12-24
EP2360874A1 (en) 2011-08-24
TW200939716A (en) 2009-09-16
TWI491229B (zh) 2015-07-01
EP2360874B1 (en) 2017-04-19
CN101861575A (zh) 2010-10-13
EP2198372B1 (en) 2012-09-05
US8560707B2 (en) 2013-10-15
WO2009045475A1 (en) 2009-04-09
US20090094370A1 (en) 2009-04-09
EP2198372A1 (en) 2010-06-23

Similar Documents

Publication Publication Date Title
JP5054821B2 (ja) Natタイプに基づくシームレスなホスト移行
JP5097671B2 (ja) シームレスなホスト移行のためのシステムおよび方法
JP3944168B2 (ja) ネットワーク環境におけるピアツーピア通信のための方法およびシステム
US8356103B2 (en) NAT traversal for media conferencing
KR20100019420A (ko) 에지 라우팅을 갖는 피어-투-피어 협업 시스템
JP2006203575A (ja) 通信方法
Bless et al. Spovnet: an architecture for easy creation and deployment of service overlays
US20090028110A1 (en) Seamless Establishment and Maintenance of Network Connections for Mobile Applications
Phuoc et al. NAT traversal techniques in peer-to-peer networks
US20190141009A1 (en) Session moderator for turn-pattern tcp-packet relay with websocket instantiation
Niazi et al. Usurp: Distributed nat traversal for overlay networks
Seah et al. Peer NAT proxies for peer-to-peer games
Wang et al. VIP: A P2P communication platform for NAT traversal
JP2023526342A (ja) エンドユーザデバイス間のピアツーピア通信

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120531

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120710

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120727

R150 Certificate of patent or registration of utility model

Ref document number: 5054821

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150803

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250