JP5676067B1 - 通信方法および通信システム - Google Patents

通信方法および通信システム Download PDF

Info

Publication number
JP5676067B1
JP5676067B1 JP2014552991A JP2014552991A JP5676067B1 JP 5676067 B1 JP5676067 B1 JP 5676067B1 JP 2014552991 A JP2014552991 A JP 2014552991A JP 2014552991 A JP2014552991 A JP 2014552991A JP 5676067 B1 JP5676067 B1 JP 5676067B1
Authority
JP
Japan
Prior art keywords
communication
client
node
server
connection
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
JP2014552991A
Other languages
English (en)
Other versions
JPWO2016009505A1 (ja
Inventor
康司 納村
康司 納村
昭憲 鶴岡
昭憲 鶴岡
剛 潮村
剛 潮村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KAMOME ENGINEERING, INC.
Original Assignee
KAMOME ENGINEERING, INC.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KAMOME ENGINEERING, INC. filed Critical KAMOME ENGINEERING, INC.
Application granted granted Critical
Publication of JP5676067B1 publication Critical patent/JP5676067B1/ja
Publication of JPWO2016009505A1 publication Critical patent/JPWO2016009505A1/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • H04L5/0055Physical resource allocation for ACK/NACK
    • 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
    • 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/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • 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/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Landscapes

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

Abstract

クライアント装置1は、第1のノード4aを介してクライアント識別子をアドレス管理装置3に送信する接続先登録手段151と、アプリケーション実行手段160から、TCPコネクトを受信すると、UDP接続を制御するUDP制御手段153と、アプリケーション実行手段160との間で、コネクション識別子で特定される第1のTCP接続を確立するTCPセッション制御手段152と、を備える。サーバ装置2は、第2のノード4bを介してサーバ識別子をアドレス管理装置3に送信する接続先登録手段と、UDP接続を制御するUDP制御手段253と、サービス提供手段260との間で、コネクション識別子で特定される第2のTCP接続を確立するTCPセッション制御手段252と、を備える。通信サーバ手段250と通信クライアント手段150との間で、第1のノード4aおよび第2のノード4bを介したUDP接続が可能になる。

Description

本発明は、装置間のシームレスな接続を実現する通信方法および通信システムに関する。
昨今の通信ネットワークの発達に伴い、IPアドレス数の確保やセキュリティの確保などの観点から、NAT(Network Address Translation)が普及している。NAT機能を搭載するルータやサーバは、プライベートアドレスとグローバルアドレスとを変換して、通信を中継する。
またモバイル端末において、異なるアドレス空間の移動や、それに伴うアドレス変換が頻繁に発生する場合もある。具体的には、モバイル端末において、通信の高速化およびモバイルキャリア通信における負荷軽減などの観点から、モバイル端末が、モバイルキャリア通信とWi−Fi通信を併用する場合が増えている。モバイル端末は、Wi−Fi通信可能なエリアでは、Wi−Fi基地局に接続し、それ以外のエリアでは、モバイルキャリア通信の基地局に接続する。またモバイル端末が、Wi−Fi基地局から、他のWi−Fi基地局に接続する場合もある。
一方データ通信の確実性とデータ遅延発生を防止するために、TCPおよびUDPを併用するシステムがある(例えば特許文献1参照。)。この特許文献1に記載のシステムにおいては、中継ソフトウェアがアプリケーションからTCPパケットをキャプチャし、UDPに変換してデータを転送する。
特開2014−49905号公報
しかしながら、TCP接続でデータ通信を実現する場合、不都合が生じる場合がある。
例えば、NATをサーバ装置またはクライアント装置がNAT機能を介して通信ネットワークに接続する場合、接続先の装置のIPアドレスが動的に変更される場合がある。従って、接続元の装置が、接続先の装置のIPアドレスを把握することが困難であるので、接続先の装置とTCP接続できない場合、あるいはTCP接続が切断される場合がある。
また可搬性を有するモバイル端末が、例えばモバイルキャリア通信とWi−Fi通信とを切り替える場合、その切り替えるタイミングでTCP接続が切断され、データが喪失される場合がある。このほか、ユーザの予期しない状況で、TCP接続が切断される場合がある。
また特許文献1に記載のシステムは、データ通信の確実性とデータ遅延の発生の防止に役立つものの、可搬性を有する端末におけるシームレスな接続を実現することはできないと考えられる。
そこで本発明の目的は、装置間のシームレスな接続を実現する通信方法および通信システムを提供することである。
本発明の第1の特徴は、第1のノードを介して通信ネットワークに接続するクライアント装置と、第2のノードを介して通信ネットワークに接続するサーバ装置と、通信ネットワークに接続するアドレス管理装置とを備える通信システムに用いられる通信方法に関する。本発明の第1の特徴に係る通信方法において、クライアント装置は、アプリケーションを実行するアプリケーション実行手段と、アプリケーションの通信を中継する通信クライアント手段を備え、サーバ装置は、アプリケーションに対応するサービスを提供するサービス提供手段と、サービスの通信を中継する通信サーバ手段を備える。本発明の実施の形態に係る通信方法は、クライアント装置の通信クライアント手段が、第1のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、サーバ装置の通信サーバ手段が、第2のノードを介してサーバ識別子をアドレス管理装置に送信するステップと、アドレス管理装置が、クライアント識別子と第1のノードのIPアドレスおよびUDPポートを対応づけるとともに、サーバ識別子と第2のノードのIPアドレスおよびUDPポートを対応づけたアドレス変換データを、記憶装置に記憶するステップと、クライアント装置の通信クライアント手段が、アプリケーション実行手段から、TCPコネクトを受信すると、サーバ識別子をアドレス管理装置に送信し、サーバ識別子に対応づけられた第2のノードのIPアドレスおよびUDPポートを取得するステップと、クライアント装置の通信クライアント手段およびサーバ装置の通信サーバ手段の間で、第1のノードおよび第2のノードを介したUDP接続が可能になるステップと、クライアント装置の通信クライアント手段が、UDP接続を介して、サーバ装置に、接続リクエストを送信する手段と、サーバ装置の通信サーバ手段が、第2のノードを介して接続リクエストを受信すると、サービス提供手段にTCPコネクトを送信して、サービス提供手段からAckを受信し、UDP接続を介して、第1のノードに、Ackとコネクション識別子を含む接続応答を送信するステップと、クライアント装置の通信クライアント手段が、サーバ装置の通信サーバ手段から第1のノードを介して接続応答を受信すると、アプリケーション実行手段に、Ackとコネクション識別子を送信するステップと、クライアント装置の通信クライアント手段およびアプリケーション実行手段との間で、コネクション識別子で特定される第1のTCP接続が確立されるとともに、サーバ装置の通信サーバ手段およびサービス提供手段との間で、コネクション識別子で特定される第2のTCP接続が確立されるステップを備える。
ここでサーバ装置の通信サーバ手段が、UDP接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置の通信クライアント手段に送信するステップと、クライアント装置の通信クライアント手段が、第1のTCP接続を介して下りデータをアプリケーション実行手段に送信するとともに、UDP接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータの受領確認を、サーバ装置の通信サーバ手段に送信するステップと、をさらに備えても良い。
またクライアント装置が、第3のノードに接続すると、クライアント装置の通信クライアント手段が、第3のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、アドレス管理装置が、クライアント識別子と第3のノードのIPアドレスおよびUDPポートを対応づけたアドレス変換データを、記憶装置に記憶するステップと、サーバ装置の通信サーバ手段が、下りデータを送信後、クライアント装置の通信クライアント手段から受領確認を受信しない場合、クライアント識別子をアドレス管理装置に送信し、クライアント識別子に対応づけられた第3のノードのIPアドレスおよびUDPポートを取得するステップと、クライアント装置の通信クライアント手段およびサーバ装置の通信サーバ手段の間で、第3のノードおよび第2のノードを介した新たなUDP接続が可能になるステップと、サーバ装置の通信サーバ手段が、新たなUDP接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置の通信クライアント手段に送信するステップをさらに備えても良い。
さらにサーバ装置の通信サーバ手段が、下りデータを暗号化して、クライアント装置の通信クライアント手段に送信するステップと、クライアント装置の通信クライアント手段が、暗号化された下りデータを復号して、アプリケーション実行手段に送信するステップを備えても良い。
さらにサーバ装置の通信サーバ手段は、下りデータを複数のパケットに分割して送信する場合、制御ヘッダにパケットの順序を特定するシーケンス番号を含めるステップと、クライアント装置の通信クライアント手段が、複数のパケットを順次受信し、未受信のパケットがある場合、未受信のパケットのシーケンス番号をサーバ装置の通信サーバ手段に送信して、再送をリクエストするステップをさらに備えても良い。
本発明の第2の特徴は、第1のノードを介して通信ネットワークに接続するクライアント装置と、第2のノードを介して通信ネットワークに接続するサーバ装置と、通信ネットワークに接続するアドレス管理装置とを備える通信システムに関する。即ち本発明の第2の特徴に係る通信システムにおいて、クライアント装置は、アプリケーションを実行するアプリケーション実行手段と、アプリケーションの通信を中継する通信クライアント手段を備え、サーバ装置は、アプリケーションに対応するサービスを提供するサービス提供手段と、サービスの通信を中継する通信サーバ手段を備える。本発明の第2の特徴に係る通信システムにおいて、クライアント装置の通信クライアント手段は、第1のノードを介してクライアント識別子をアドレス管理装置に送信して、アドレス管理装置に、クライアント識別子と第1のノードのIPアドレスおよびUDPポートを対応づけさせる接続先登録手段と、アプリケーション実行手段から、TCPコネクトを受信すると、サーバ識別子をアドレス管理装置に送信し、サーバ識別子に対応づけられた第2のノードのIPアドレスおよびUDPポートを取得し、サーバ装置の通信サーバ手段との間で、第1のノードおよび第2のノードを介したUDP接続を確立した後、UDP接続を介して、サーバ装置に、接続リクエストを送信し、サーバ装置の通信サーバ手段から、第1のノードを介してTCPコネクトに対するAckとコネクション識別子を含む接続応答を受信するUDP制御手段と、アプリケーション実行手段に、Ackとコネクション識別子を送信して、アプリケーション実行手段との間で、コネクション識別子で特定される第1のTCP接続を確立するTCPセッション制御手段と、を備える。サーバ装置の通信サーバ手段は、第2のノードを介してサーバ識別子をアドレス管理装置に送信して、アドレス管理装置に、サーバ識別子と第2のノードのIPアドレスおよびUDPポートを対応づけさせる接続先登録手段と、クライアント装置の通信クライアント手段との間で、第1のノードおよび第2のノードを介したUDP接続が可能になった後、第2のノードを介して接続リクエストを受信すると、サービス提供手段にTCPコネクトを送信して、サービス提供手段からAckを受信し、UDP接続を介して、第1のノードに、Ackとコネクション識別子を含む接続応答を送信するUDP制御手段と、サービス提供手段との間で、コネクション識別子で特定される第2のTCP接続を確立するTCPセッション制御手段と、を備える。
ここで通信サーバ手段のUDP制御手段は、UDP接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置の通信クライアント手段に送信し、通信クライアント手段のUDP制御手段は、第1のTCP接続を介して下りデータをアプリケーション実行手段に送信するとともに、UDP接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータの受領確認を、サーバ装置の通信サーバ手段に送信しても良い。
またクライアント装置が、第3のノードに接続すると、通信クライアント手段の接続先登録手段は、第3のノードを介してクライアント識別子をアドレス管理装置に送信し、アドレス管理装置に、クライアント識別子と第3のノードのIPアドレスおよびUDPポートを対応づけさせ、通信サーバ手段のUDP制御手段が、下りデータを送信後、クライアント装置の通信クライアント手段から受領確認を受信しない場合、クライアント識別子をアドレス管理装置に送信し、クライアント識別子に対応づけられた第3のノードのIPアドレスおよびUDPポートを取得し、クライアント装置の通信クライアント手段およびサーバ装置の通信サーバ手段の間で、第3のノードおよび第2のノードを介した新たなUDP接続が可能になると、新たなUDP接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置の通信クライアント手段に送信しても良い。
さらにサーバ装置のUDP制御手段が、下りデータを暗号化して、クライアント装置の通信クライアント手段に送信し、通信クライアント手段のUDP制御手段が、暗号化された下りデータを復号して、アプリケーション実行手段に送信しても良い。
さらに通信サーバ手段のUDP制御手段は、下りデータを複数のパケットに分割して送信する場合、制御ヘッダにパケットの順序を特定するシーケンス番号を含め、通信クライアント手段のUDP制御手段が、複数のパケットを順次受信し、未受信のパケットがある場合、未受信のパケットのシーケンス番号をサーバ装置の通信サーバ手段に送信して、再送をリクエストしても良い。
本発明の第1の特徴は、第1のノードを介して通信ネットワークに接続するクライアント装置と、クライアント装置に接続するアプリケーション実行装置と、第2のノードを介して通信ネットワークに接続するサーバ装置と、通信ネットワークに接続するアドレス管理装置とを備える通信システムに用いられる通信方法に関する。本発明の第1の特徴に係る通信方法において、アプリケーション実行装置は、アプリケーションを実行するアプリケーション実行手段を備え、クライアント装置は、アプリケーションの通信を中継する通信クライアント手段を備え、サーバ装置は、アプリケーションに対応するサービスを提供するサービス提供手段と、サービスの通信を中継する通信サーバ手段を備える。本発明の実施の形態に係る通信方法は、クライアント装置の通信クライアント手段が、第1のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、サーバ装置の通信サーバ手段が、第2のノードを介してサーバ識別子をアドレス管理装置に送信するステップと、アドレス管理装置が、クライアント識別子と第1のノードのIPアドレスおよびUDPポートを対応づけるとともに、サーバ識別子と第2のノードのIPアドレスおよびUDPポートを対応づけたアドレス変換データを、記憶装置に記憶するステップと、クライアント装置の通信クライアント手段が、アプリケーション実行手段から、TCPコネクトを受信すると、サーバ識別子をアドレス管理装置に送信し、サーバ識別子に対応づけられた第2のノードのIPアドレスおよびUDPポートを取得するステップと、クライアント装置の通信クライアント手段およびサーバ装置の通信サーバ手段の間で、第1のノードおよび第2のノードを介したUDP接続が可能になるステップと、クライアント装置の通信クライアント手段が、UDP接続を介して、サーバ装置に、接続リクエストを送信する手段と、サーバ装置の通信サーバ手段が、第2のノードを介して接続リクエストを受信すると、サービス提供手段にTCPコネクトを送信して、サービス提供手段からAckを受信し、UDP接続を介して、第1のノードに、Ackとコネクション識別子を含む接続応答を送信するステップと、クライアント装置の通信クライアント手段が、サーバ装置の通信サーバ手段から第1のノードを介して接続応答を受信すると、アプリケーション実行手段に、Ackとコネクション識別子を送信するステップと、クライアント装置の通信クライアント手段およびアプリケーション実行手段との間で、コネクション識別子で特定される第1のTCP接続が確立されるとともに、サーバ装置の通信サーバ手段およびサービス提供手段との間で、コネクション識別子で特定される第2のTCP接続が確立されるステップを備える。
本発明の第2の特徴は、第1のノードを介して通信ネットワークに接続するクライアント装置と、クライアント装置に接続するアプリケーション実行装置と、第2のノードを介して通信ネットワークに接続するサーバ装置と、通信ネットワークに接続するアドレス管理装置とを備える通信システムに関する。即ち本発明の第2の特徴に係る通信システムにおいて、アプリケーション実行装置は、アプリケーションを実行するアプリケーション実行手段を備え、クライアント装置は、アプリケーションの通信を中継する通信クライアント手段を備え、サーバ装置は、アプリケーションに対応するサービスを提供するサービス提供手段と、サービスの通信を中継する通信サーバ手段を備える。本発明の第2の特徴に係る通信システムにおいて、クライアント装置の通信クライアント手段は、第1のノードを介してクライアント識別子をアドレス管理装置に送信して、アドレス管理装置に、クライアント識別子と第1のノードのIPアドレスおよびUDPポートを対応づけさせる接続先登録手段と、アプリケーション実行手段から、TCPコネクトを受信すると、サーバ識別子をアドレス管理装置に送信し、サーバ識別子に対応づけられた第2のノードのIPアドレスおよびUDPポートを取得し、サーバ装置の通信サーバ手段との間で、第1のノードおよび第2のノードを介したUDP接続を確立した後、UDP接続を介して、サーバ装置に、接続リクエストを送信し、サーバ装置の通信サーバ手段から、第1のノードを介してTCPコネクトに対するAckとコネクション識別子を含む接続応答を受信するUDP制御手段と、アプリケーション実行手段に、Ackとコネクション識別子を送信して、アプリケーション実行手段との間で、コネクション識別子で特定される第1のTCP接続を確立するTCPセッション制御手段と、を備える。サーバ装置の通信サーバ手段は、第2のノードを介してサーバ識別子をアドレス管理装置に送信して、アドレス管理装置に、サーバ識別子と第2のノードのIPアドレスおよびUDPポートを対応づけさせる接続先登録手段と、クライアント装置の通信クライアント手段との間で、第1のノードおよび第2のノードを介したUDP接続が可能になった後、第2のノードを介して接続リクエストを受信すると、サービス提供手段にTCPコネクトを送信して、サービス提供手段からAckを受信し、UDP接続を介して、第1のノードに、Ackとコネクション識別子を含む接続応答を送信するUDP制御手段と、サービス提供手段との間で、コネクション識別子で特定される第2のTCP接続を確立するTCPセッション制御手段と、を備える。
これにより本発明は、装置間のシームレスな接続を実現する通信方法および通信システム を提供することができる。
図1は、本発明の実施の形態に係る通信システムのシステム構成を説明する図である。 図2は、本発明の実施の形態に係る通信システムにおいて、送受信されるパケットの構成を説明する図である。 図3は、本発明の実施の形態に係るクライアント装置のハードウェア構成および機能ブロックを説明する図である。 図4は、本発明の実施の形態に係るクライアント装置のポート接続対応データのデータ構造とデータの一例を説明する図である。 図5は、本発明の実施の形態に係るサーバ装置のハードウェア構成および機能ブロックを説明する図である。 図6は、本発明の実施の形態に係るアドレス管理装置のハードウェア構成および機能ブロックを説明する図である。 図7は、本発明の実施の形態に係るアドレス管理装置のアドレス変換データのデータ構造とデータの一例を説明する図である。 図8は、本発明の実施の形態に係る通信方法における登録処理を説明するシーケンス図である。 図9は、本発明の実施の形態に係る通信方法における接続処理を説明するシーケンス図である。 図10は、本発明の実施の形態に係る通信方法におけるデータ送受信処理を説明するシーケンス図である。 図11は、本発明の実施の形態に係る通信方法におけるデータ送受信処理を説明するシーケンス図であって、特に、クライアント装置の接続先が変更した場合の処理を説明する図である。 図12は、本発明の実施の形態に係る通信方法におけるデータ送受信処理を説明するシーケンス図であって、特に、フロー制御を説明する図である。 図13は、本発明の変形例に係る通信システムのシステム構成を説明する図である。 図14は、本発明の変形例に係るクライアント装置およびアプリケーション実行装置のハードウェア構成および機能ブロックを説明する図である。
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
(通信システム)
図1を参照して、本発明の実施の形態に係る通信システム9を説明する。通信システム9は、クライアント装置1、サーバ装置2、アドレス管理装置3、第1のノード4a、第2のノード4bおよび第3のノード4cを備える。アドレス管理装置3、第1のノード4a、第2のノード4bおよび第3のノード4cは、通信ネットワーク5を介して相互に通信可能に接続される。クライアント装置1は、第1のノード4aを介して通信ネットワーク5に接続し、サーバ装置2は、第2のノード4bを介して通信ネットワーク5に接続する。
通信ネットワーク5は、インターネットなどであって、装置間を相互に通信可能に接続する。本発明の実施の形態において通信ネットワーク5に接続される装置、具体的には、アドレス管理装置3、第1のノード4a、第2のノード4bおよび第3のノード4cは、グローバルアドレスで通信する。
クライアント装置1は、可搬性を有する端末であって、具体的には、ノートパソコン、携帯電話、スマートフォン、タブレット端末などである。図1に示す例においてクライアント装置1は、第1のノード4aに接続するが、移動により、第3のノード4cなどに接続することが可能である。なお、本発明の実施の形態においては、クライアント装置1が可搬性を有する場合を説明するが、可搬性を有さないデスクトップパソコンなどにおいても、本発明の実施の形態に係る通信方法を適用することができる。
クライアント装置1は、メーラやブラウザなどのアプリケーションをインストールしている。クライアント装置1は、そのアプリケーションを実行する際に、サーバ装置2とデータを送受信する。
サーバ装置2は、クライアント装置1で実行されるアプリケーションとデータを送受信する。クライアント装置1のアプリケーションがメーラの場合、サーバ装置2は、メールサーバとして機能し、ブラウザの場合、ウェブサーバとして機能する。
なお、図1に示す例において、サーバ装置2がサーバ機能を担い、クライアント装置1がクライアント機能を担う場合を説明するが、これに限られない。例えば、通信内容によっては、可搬性を有するクライアント装置1が、サーバ装置2に対するサーバ機能を担う場合もある。
アドレス管理装置3は、本発明の実施の形態に係る通信方法を実現するために、各装置の識別子と、各装置が接続するノードのアドレスおよびポート番号とを対応づけて保持する。アドレス管理装置3は、各装置が接続するノードが変更されると、新しいノードのアドレスおよびポート番号を対応づけて保持する。
第1のノード4aは、NAT機能を有するネットワーク機器であって、例えば、ゲートウェイサーバ、ルータ、モバイルキャリア通信の基地局、Wi−Fi基地局などである。第2のノード4bおよび第3のノード4cも同様である。
第1のノード4aは、クライアント装置1とはプライベートアドレスで通信し、通信ネットワーク5とはグローバルアドレスで通信する。従って、第1のノード4aは、通信ネットワーク5から受信したパケットを、プライベートアドレスに変換して、クライアント装置1に送信し、クライアント装置1から受信したパケットを、グローバルアドレスに変換して、通信ネットワーク5に送信する。
第2のノード4bは、サーバ装置2とはプライベートアドレスで通信し、通信ネットワーク5とはグローバルアドレスで通信する。従って、第2のノード4bは、通信ネットワーク5から受信したパケットを、プライベートアドレスに変換して、サーバ装置2に送信し、サーバ装置2から受信したパケットを、グローバルアドレスに変換して、通信ネットワーク5に送信する。
図1に示す例において、第1のノード4aのグローバルアドレスは“AD1”で、UDPポート番号は、“PT1”である。第2のノード4bのグローバルアドレスは“AD2”で、UDPポート番号は、“PT2”である。第3のノード4cのグローバルアドレスはAD3で、UDPポート番号は、“PT3”である。またクライアント装置のクライアント識別子は、“ID_C”で、サーバ装置2のサーバ識別子は、“ID_S”である。
(パケット)
図2を参照して、クライアント装置1およびサーバ装置2間で送受信されるパケットを説明する。
クライアント装置1は、アプリケーションを実行するアプリケーション実行手段160と、アプリケーションの通信を中継する通信クライアント手段150を備える。サーバ装置2は、アプリケーションに対応するサービスを提供するサービス提供手段260と、サービスの通信を中継する通信サーバ手段250を備える。
クライアント装置1において、アプリケーション実行手段160から通信クライアント手段150に、TCPヘッダおよび上りデータを含むパケットP1が送信される。このTCPヘッダは、送信元IPアドレス、送信元ポート番号、送信先IPアドレスおよび送信先ポート番号を含み、送信元は、アプリケーション実行手段160であって、送信先は通信クライアント手段150である。
クライアント装置1の通信クライアント手段150から、サーバ装置2の通信サーバ手段250に、UDPヘッダ、制御ヘッダおよび上りデータを含むパケットP2が送信される。通信クライアント手段150は、パケットP1の上りデータに、制御ヘッダおよびUDPヘッダを付して、通信サーバ手段250に送信する。制御ヘッダは、本発明の実施の形態に係る通信方法を実現するためのヘッダであって、UDPペイロードの一部を構成する。制御ヘッダは、コネクション識別子およびシーケンス番号を含む。コネクション識別子は、アプリケーション実行手段160およびサービス提供手段260間で確立されるTCP接続を特定する識別子である。シーケンス番号は、パケットの順序を特定する識別子である。UDPヘッダは、通信クライアント手段150および通信サーバ手段250でUDP接続するためのヘッダである。
サーバ装置2において、通信サーバ手段250からサービス提供手段260に、TCPヘッダおよび上りデータを含むパケットP3が送信される。通信サーバ手段250は、パケットP2の上りデータに、TCPヘッダを付して、サービス提供手段260に送信する。このTCPヘッダは、送信元IPアドレス、送信元ポート番号、送信先IPアドレスおよび送信先ポート番号を含み、送信元は、通信サーバ手段250であって、送信先はアプリケーション実行手段160である。
サービス提供手段260は、上りデータを処理して下りデータを生成する。サーバ装置2において、サービス提供手段260から通信サーバ手段250に、この下りデータとTCPヘッダを含むパケットP4が送信される。通信サーバ手段250は、パケットP4の下りデータに、UDPヘッダおよび制御ヘッダを付したパケットP5を、通信クライアント手段150に送信する。通信クライアント手段150は、パケットP5の下りデータに、TCPヘッダを付したパケットP6を、アプリケーション実行手段160に送信する。
このように、本発明の実施の形態において、アプリケーション実行手段160およびサービス提供手段260は、TCPパケットで送受信する。また、通信クライアント手段および通信サーバ手段250は、TCP接続を識別するコネクション識別子を付したUDPパケットで送受信する。
(クライアント装置)
図3を参照して、本発明の実施の形態に係るクライアント装置1を説明する。クライアント装置1は、処理装置110、記憶装置120、通信制御装置130および入出力装置140を備える一般的なコンピュータである。一般的なコンピュータが、所定の処理を実現するためのプログラムを実行することにより、図3に示す各機能を実装する。
記憶装置120は、ポート接続先対応データ121を記憶する。ポート接続先対応データ121は、図4に示すように、ポート番号と、サーバ識別子とを対応づけたデータである。サーバ識別子は、アプリケーション実行手段160からそのポート番号に接続があった場合に、UDPの接続先となるサーバ装置2のサーバ識別子である。
処理装置110は、通信クライアント手段150およびアプリケーション実行手段160を備える。
アプリケーション実行手段160は、第1のアプリケーション実行手段161、第2のアプリケーション実行手段162、第3のアプリケーション実行手段163と、それぞれの実行手段でアプリケーションを実行可能である。各アプリケーションは、通信ネットワーク5を介してサーバ装置2に接続して利用され、例えば、メーラ、ブラウザ等である。アプリケーション実行手段160は、アプリケーションを実行する際、通信クライアント手段150のTCPセッション制御手段152に、IPアドレスおよびポート番号を指定して、接続する。ここで、個々のアプリケーションによって、指定するポート番号が識別可能に設定される。TCPセッション制御手段152は、アプリケーション実行手段160から接続されたポート番号によって、ポート接続先対応データ121を参照して、接続先のサーバ装置2を識別することができる。
通信クライアント手段150は、接続先登録手段151、TCPセッション制御手段152およびUDP制御手段153を備える。
接続先登録手段151は、第1のノード4aを介してクライアント識別子をアドレス管理装置3に送信する。これによりアドレス管理装置3は、クライアント識別子と第1のノード4aのIPアドレスおよびUDPポートを対応づけて記憶する。
接続先登録手段151は、クライアント装置1が接続するノードが変更する度に実行される。具体的には、クライアント装置1が、第1のノード4aとの接続を切断し第3のノード4cに接続すると、接続先登録手段151は、第3のノード4cを介してクライアント識別子をアドレス管理装置3に送信する。これによりアドレス管理装置3は、クライアント識別子と第3のノード4cのIPアドレスおよびUDPポートを対応づけて記憶する。
TCPセッション制御手段152は、アプリケーション実行手段160からTCPコネクトを取得すると、ポート接続先対応データ121を読み出して、TCPコネクトを受信したポート番号に基づいて、接続先のサーバ装置2のサーバ識別子を取得する。TCPセッション制御手段152は、サーバ識別子と、TCPコネクトとをUDP制御手段153に送信する。UDP制御手段153から、TCPコネクトに対応するAckと、このTCPコネクトにより確立されるTCPセッションを識別するコネクション識別子を受信すると、TCPセッション制御手段152は、アプリケーション実行手段160に、TCPパケットで、Ackとコネクション識別子を送信する。これにより、TCPセッション制御手段152およびアプリケーション実行手段160との間で、コネクション識別子で特定される第1のTCP接続が確立される。
UDP制御手段153は、サーバ装置2の通信サーバ手段250との間でのUDP接続による通信を制御する。UDP制御手段153は、TCPセッション制御手段152から受信したデータについて、UDPヘッダと制御ヘッダを付して第1のノード4aに送信する。またUDP制御手段153は、第1のノード4aから受信したデータについて、TCPヘッダを付してアプリケーション実行手段160に入力する。
具体的にはUDP制御手段153は、接続先のサーバ装置2の通信サーバ手段250に接続するアドレスおよびポート番号を特定できると、通信サーバ手段250との間で、パンチング処理などにより、UDP接続を可能な状態にし、そのUDP接続に関連する処理を実行する。さらにUDP制御手段153は、アプリケーション実行手段160から、TCPコネクトを受信すると、サーバ識別子をアドレス管理装置3に送信し、サーバ識別子に対応づけられた第2のノードのIPアドレスおよびUDPポートを取得する。UDP制御手段153は、サーバ装置2の通信サーバ手段250との間で、第1のノード4aおよび第2のノード4bを介したUDP接続が可能になった後、UDP接続を介して、サーバ装置2に、接続リクエストを送信し、サーバ装置2の通信サーバ手段250から、第1のノード4aを介してTCPコネクトに対するAckとコネクション識別子を含む接続応答を受信する。UDP制御手段153は、受信した接続応答を、TCPセッション制御手段152に入力する。
UDP制御手段153は、サーバ装置2から下りデータを受信すると、第1のTCP接続を介して下りデータをアプリケーション実行手段160に送信する。さらにUDP制御手段153は、UDP接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータの受領確認を、サーバ装置2の通信サーバ手段250に送信する。
UDP制御手段153は、クライアント装置1の接続先のノードが変更になった場合、新しい接続先ノードを介して、パンチング処理などにより、サーバ装置2の通信サーバ手段250とのUDP接続を可能な状態にする。
さらにUDP制御手段153は、TCPが提供する同様の機能を提供するために、暗号化手段154、復号手段155および再送判定手段156を備える。
暗号化手段154は、アプリケーション実行手段160から入力される上りデータを、サーバ装置2の通信サーバ手段250が既知の方法で暗号化して送信する。復号手段155は、サーバ装置2から送信される暗号化済み下りデータを、復号してアプリケーション実行手段160に入力する。
再送判定手段156は、データを複数のパケットに分割して送信する場合、各パケットを順序通りにアプリケーション実行手段160に入力するよう制御する。さらにサーバ装置2からパケットの再送要求を受信すると、再送対象のパケットをサーバ装置2に送信する。
上りデータを複数のパケットに分割して送信する場合、再送判定手段156は、制御ヘッダにパケットの順序を特定するシーケンス番号を含めて、サーバ装置2に送信するとともに、シーケンス番号とパケットのデータとを対応づけて記憶装置120に記憶する。さらにサーバ装置2から未受信のシーケンス番号を受信すると、そのシーケンス番号に対応するデータを記憶装置120から抽出し、サーバ装置2の通信サーバ手段250に送信する。
下りデータが複数のパケットに分割されて送信する場合、再送判定手段156は、順次受信するパケットの制御ヘッダ中のシーケンス番号を確認し、未受信のシーケンス番号があるか否か判定する。未受信のシーケンス番号がない場合、受信したパケットをアプリケーション実行手段160に入力する。一方未受信のシーケンス番号がある場合、未受信のパケットのシーケンス番号をサーバ装置2の通信サーバ手段250に送信して、再送をリクエストする。
(サーバ装置)
図5を参照して、本発明の実施の形態に係るサーバ装置2を説明する。サーバ装置2は、処理装置210、記憶装置220および通信制御装置230を備える一般的なコンピュータである。一般的なコンピュータが、所定の処理を実現するためのプログラムを実行することにより、図5に示す各機能を実装する。
処理装置210は、通信サーバ手段250およびサービス提供手段260を備える。
サービス提供手段260は、クライアント装置1のアプリケーションから接続を受け、クライアント装置1にサービスを提供し、具体的には、メールサーバ機能やウェブサーバ機能を実現する。
通信サーバ手段250は、接続先登録手段251、TCPセッション制御手段252およびUDP制御手段253を備える。
接続先登録手段251は、第2のノード4bを介してサーバ識別子をアドレス管理装置3に送信する。これによりアドレス管理装置3は、サーバ識別子と第2のノード4bのIPアドレスおよびUDPポートを対応づけて記憶する。接続先登録手段251は、サーバ装置2が接続するノードが変更する度に実行される。
TCPセッション制御手段252は、UDP制御手段253から、クライアント装置1のTCPコネクトを受信すると、サービス提供手段260にTCPコネクトをTCPパケットで送信して、コネクション識別子を採番する。サービス提供手段260からTCPコネクトに対するAckを受信すると、コネクション識別子とAckとを、UDP制御手段253に入力する。これにより、TCPセッション制御手段252およびサービス提供手段260との間で、コネクション識別子で特定される第2のTCP接続が確立される。
UDP制御手段253は、クライアント装置1の通信クライアント手段150との間でのUDP接続による通信を制御する。UDP制御手段253は、TCPセッション制御手段252から受信したデータに、UDPヘッダと制御ヘッダを付して、第2のノード4bに送信する。またUDP制御手段253は、第2のノード4bから受信したデータについて、TCPヘッダを付してサービス提供手段260に入力する。
具体的にはUDP制御手段253は、接続先のクライアント装置1の通信クライアント手段150に接続するアドレスおよびポート番号を特定できると、通信サーバ手段250との間で、パンチング処理などにより、UDP接続を可能な状態にし、そのUDP接続に関連する処理を実行する。さらにUDP制御手段253は、クライアント装置1の通信クライアント手段150との間で、第1のノード4aおよび第2のノード4bを介したUDP接続が可能になった後、第2のノード4bを介して接続リクエストを受信すると、サービス提供手段260にTCPコネクトを送信する。その後UDP制御手段253は、コネクション識別子を採番し、サービス提供手段260からAckを受信すると、UDP接続を介して、第1のノード4aに、Ackとコネクション識別子を含む接続応答を送信する。さらにUDP制御手段253は、サービス提供手段260から下りデータを受信すると、UDP接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置1の通信クライアント手段150に送信する。
さらに通信サーバ手段250のUDP制御手段253は、クライアント装置1の移動などにより接続先のノードが変更になった場合に、変更先のノードのアドレスおよびポート番号を、アドレス管理装置3から取得する。具体的にはUDP制御手段253が、下りデータを送信後、クライアント装置1の通信クライアント手段150から受領確認を受信しない場合、クライアント識別子をアドレス管理装置に送信する。UDP制御手段253は、クライアント識別子に対応づけられた第3のノード4cのIPアドレスおよびUDPポートを取得する。クライアント装置1の通信クライアント手段150およびサーバ装置2の通信サーバ手段250の間で、第3のノード4cおよび第2のノード4bを介した新たなUDP接続が可能になると、UDP制御手段253は、新たなUDP接続を介して、コネクション識別子を含む制御ヘッダを付して、下りデータを、クライアント装置1の通信クライアント手段150に送信する。
さらにUDP制御手段253は、TCPが提供する同様の機能を提供するために、暗号化手段254、復号手段255および再送判定手段256を備える。
暗号化手段254は、サービス提供手段260から入力される下りデータを、クライアント装置1の通信クライアント手段150が既知の方法で暗号化して送信する。復号手段255は、クライアント装置1から送信される暗号化済み上りデータを、復号してサービス提供手段260に入力する。
再送判定手段256は、データを複数のパケットに分割して送信する場合、各パケットを順序通りにサービス提供手段260に入力するよう制御する。さらにクライアント装置1からパケットの再送要求を受信すると、再送対象のパケットをクライアント装置1に送信する。
上りデータが複数のパケットに分割されて送信する場合、再送判定手段256は、順次受信するパケットの制御ヘッダ中のシーケンス番号を確認し、未受信のシーケンス番号があるか否か判定する。未受信のシーケンス番号がない場合、受信したパケットをサービス提供手段260に入力する。一方未受信のシーケンス番号がある場合、未受信のパケットのシーケンス番号をクライアント装置1の通信クライアント手段に送信して、再送をリクエストする。
下りデータを複数のパケットに分割して送信する場合、再送判定手段256は、制御ヘッダにパケットの順序を特定するシーケンス番号を含めて、クライアント装置1に送信するとともに、シーケンス番号とパケットのデータとを対応づけて記憶装置220に記憶する。さらにクライアント装置1から未受信のシーケンス番号を受信すると、そのシーケンス番号に対応するデータを記憶装置220から抽出し、クライアント装置1の通信クライアント手段150に送信する。
(アドレス管理装置)
図6を参照して、本発明の実施の形態に係るアドレス管理装置3を説明する。アドレス管理装置3は、処理装置310、記憶装置320および通信制御装置330を備える一般的なコンピュータである。一般的なコンピュータが、所定の処理を実現するためのプログラムを実行することにより、図6に示す各機能を実装する。
記憶装置320は、アドレス変換データ321を記憶する。アドレス変換データ321は、図7に示すように、通信ノードの識別子と、その通信ノードに接続するためのアドレスおよびUDPポート番号を対応づけたデータである。本発明の実施の形態に係る通信システム9において「通信ノード」は、本発明の実施の形態に係る通信方法を実現するための通信サーバ手段または通信クライアント手段を搭載した装置である。一方「通信ノードに接続するためのアドレスおよびUDPポート番号」は、通信ノードに接続する宛先となるノードであって、グローバルアドレスが付されたノードのアドレスおよびUDPポート番号である。
処理装置310は、登録手段311および応答手段312を備える。
登録手段311は、通信ノードが、グローバルアドレスが付されたノードに接続した場合、通信ノードから登録リクエストを受信して、通信ノードの識別子と、グローバルアドレスが付されたノードのアドレスおよびUDPポート番号を対応づけて、アドレス変換データ321に記憶する。
具体的には、クライアント装置1が第1のノード4aに接続すると、登録手段311は、クライアント装置1からクライアント装置1の識別子“ID_C”および第1のノード4aのIPアドレス“AD1”およびUDPポート番号“PT1”を受信する。さらに登録手段311は、これらを対応づけたレコードを、アドレス変換データ321に挿入する。ここでクライアント装置1が第1のノード4aとの接続を切断し、第3のノード4cに接続すると、登録手段311は、クライアント装置1からクライアント装置1の識別子“ID_C”および第3のノード4cのIPアドレス“AD3”およびUDPポート番号“PT3”を受信する。さらに登録手段311は、これらを対応づけたレコードを、アドレス変換データ321に挿入する。このとき登録手段311は、クライアント装置1の識別子“ID_C”に対応するレコードを削除する。
応答手段312は、通信ノードから、問い合わせ対象の通信ノードの識別子を含むアドレスの問い合わせを受信すると、問い合わせ対象の通信ノードのアドレスおよびUDPポート番号を返す。
具体的には応答手段312は、クライアント装置1の通信クライアント手段150から、接続先のサーバ装置2に接続する際、このサーバ装置2の識別子“ID_S”を受信する。この場合応答手段312は、アドレス変換データ321を読み出して、この識別子に対応するIPアドレス“AD2”およびUDPポート番号“PT2”を返す。また、応答手段312は、クライアント装置1が移動により接続先のノードが、第1のノード4aから第3のノード4cに変更になり、通信サーバ手段250がクライアント装置1へのデータ通信に失敗すると、通信サーバ手段250から、接続先のクライアント装置1の識別子“ID_C”を受信する。この場合応答手段312は、アドレス変換データ321を読み出して、この識別子に対応する最新のIPアドレス“AD3”およびUDPポート番号“PT3”を返す。
(登録処理)
図8を参照して、本発明の実施の形態に係る通信システム9において、クライアント装置1およびサーバ装置2をアドレス管理装置3に登録する処理を説明する。
まずクライアント装置1の通信クライアント手段150は、ステップS101において、第1のノード4aに接続すると、ステップS102において、登録リクエストを第1のノード4aに送信する。第1のノード4aは、クライアント装置1から登録リクエストを受信すると、ステップS103においてその登録リクエストを、アドレス管理装置3に送信する。ここで登録リクエストは、クライアント装置1のクライアント識別子“ID_C”と、第1のノード4aのIPアドレス“AD1”およびポート番号“PT1”を含む。
第1のノード4aから登録リクエストを受信すると、ステップS104においてアドレス管理装置3は、アドレス変換データ321を更新する。具体的には、ステップS103で受信した登録リクエストに含まれるクライアント装置1のクライアント識別子“ID_C”と、第1のノード4aのIPアドレス“AD1”およびポート番号“PT1”を対応づけて、アドレス変換データ321に登録する。
同様にサーバ装置2の通信サーバ手段250は、ステップS105において、第2のノード4bに接続すると、ステップS106において、登録リクエストを第1のノード4aに送信する。第2のノード4bは、サーバ装置2から登録リクエストを受信すると、ステップS107においてその登録リクエストを、アドレス管理装置3に送信する。ここで登録リクエストは、サーバ装置2のサーバ識別子“ID_S”と、第2のノード4bのIPアドレス“AD2”およびポート番号“PT2”を含む。
第2のノード4bから登録リクエストを受信すると、ステップS108においてアドレス管理装置3は、アドレス変換データ321を更新する。具体的には、ステップS107で受信した登録リクエストに含まれるサーバ装置2のサーバ識別子“ID_S”と、第2のノードのIPアドレス“AD2”およびポート番号“PT2”を対応づけて、アドレス変換データ321に登録する。
このように、図7に示すようにアドレス管理装置3は、クライアント装置1およびサーバ装置2のサーバ識別子と、これらの装置が通信ネットワークに接続するためのアドレスおよびポート番号を、対応づけて保持する。ここで、クライアント装置1またはサーバ装置2の接続するノードが変更になると、新たなアドレスおよびポート番号に基づいて、再度アドレス管理装置3に登録リクエストが送信される。
(接続処理)
図9を参照して、本発明の実施の形態に係る接続処理を説明する。本発明の実施の形態においては、クライアント装置1からサーバ装置2に接続する例を説明するが、これに限られない。
まずステップS201においてアプリケーション実行手段160が、サーバ装置2に接続する際、通信クライアント手段150に、TCPコネクトを送信する。通信クライアント手段150は、アプリケーション実行手段160からTCPコネクトを受信したポート番号に基づいて、接続先のサーバ装置2のサーバ識別子“ID_S”を取得する。
ステップS202において通信クライアント手段150は、識別子“ID_S”を含む接続リクエストを第1のノード4aに送信し、ステップS203において第1のノード4aは、その接続リクエストを、アドレス管理装置3に送信する。
アドレス管理装置3は、接続リクエストに含まれる識別子“ID_S”に対応するアドレス“AD2”およびポート番号“PT2”を取得し、ステップS204において第1のノード4aに返す。
さらにアドレス管理装置3はステップS205において、対応するアドレス“AD2”に向けて、接続通知を送信する。この接続通知は、識別子“ID_S”に接続があることを通知するものであって、送信元の第1のノード4aのアドレス“AD1”およびポート番号“PT1”を含む。この接続通知を、アドレス“AD2”およびポート番号“PT2”に対応する第2のノード4bが受信し、ステップS206において第2のノード4bは、通信サーバ手段250に、接続通知を送信する。その後、ステップS207において、通信クライアント手段150および通信サーバ手段250間でパンチング処理等がなされ、UDP通信が可能となる。
なお、ステップS205ないしステップS207の処理は一例であって、通信クライアント手段150および通信サーバ手段250間でUDP通信が可能になれば、どのような処理がなされても良い。例えば、ステップS205においてアドレス管理装置3は第2のノード4bに接続通知を送信する代わりに、アドレス管理装置3がクライアント装置1に第2のノード4bのアドレスおよびポート番号を通知しても良い。この場合クライアント装置1が、第2のノード4bおよびサーバ装置2に向けて、パンチング処理等しても良い。
通信クライアント手段150および通信サーバ手段250間でUDP通信が可能になると、ステップS208において通信クライアント手段150は、通信サーバ手段250に、ステップS201に対応する接続リクエストを送信する。この接続リクエストには、通信サーバ手段250の識別子“ID_S”を含む。
通信サーバ手段250が接続リクエストを受信すると、ステップS209においてTCPコネクトをサービス提供手段260に送信する。さらにステップS210において通信サーバ手段250は、コネクションIDを採番する。ステップS211においてサービス提供手段260が、ステップS209におけるTCPコネクトに対しAckを送信すると、ステップS212において通信サーバ手段250は、通信クライアント手段150に、ステップS208の接続リクエストに対応する接続応答を送信する。この接続応答は、ステップS210で採番したコネクションIDと、Ackを含む。
ステップS213において通信クライアント手段150は、アプリケーション実行手段160に、ステップS201に対応するAckを、アプリケーション実行手段160に送信する。このAckには、ステップS210で採番されたコネクションIDを含む。
このように、アプリケーション実行手段160および通信クライアント手段150間、および通信サーバ手段250およびサービス提供手段260間は、コネクションIDを共通するTCP接続がそれぞれ確立される。さらに通信クライアント手段150および通信サーバ手段250間は、UDP接続で通信される。
(データ送受信処理)
図10ないし図12を参照して、クライアント装置1およびサーバ装置2間のデータの送受信処理を説明する。図10は、クライアント装置1が、図8での接続処理で説明したTCPセッションおよびUDP接続を介して、サーバ装置2にサービスをリクエストし、サーバ装置2からその応答を受信する処理を説明する。
まずステップS301においてクライアント装置1においてアプリケーション実行手段160は、TCPセッションを利用して、サービスリクエストに係るデータを通信クライアント手段150に送信する。ステップS302において通信クライアント手段150は、受け取ったサービスリクエストに係るデータからUDPパケットを生成して、ステップS303において第1のノード4aに送信する。ステップS304において第1のノード4aは、UDPパケットを第2のノード4bに送信し、ステップS305において第2のノード4bは、UDPパケットをサーバ装置2の通信サーバ手段250に送信する。
ステップS306においてサーバ装置2において通信サーバ手段250は、受信したUDPパケットからTCPパケットを生成し、ステップS307において、TCPセッションを利用して、サービスリクエストに係るデータをサービス提供手段260に入力する。
ステップS308においてサービス提供手段260は、サービスリクエストに基づいて処理したサービス応答に係るデータを、TCPセッションを利用して、通信サーバ手段250に入力する。ステップS309において通信サーバ手段250は、受け取ったサービス提供に係るデータからUDPパケットを生成して、ステップS310において第2のノード4bに送信する。ステップS311において第2のノード4bは、UDPパケットを第1のノード4aに送信し、ステップS312において第1のノード4aは、UDPパケットをクライアント装置1の通信クライアント手段150に送信する。
ステップS313においてクライアント装置1において通信クライアント手段150は、受信したUDPパケットからTCPパケットを生成し、ステップS314において、TCPセッションを利用して、サービス応答に係るデータをアプリケーション実行手段160に入力する。
さらにステップS315において通信クライアント手段150は、サービス応答に係るデータを受信したことを示す受領確認のUDPパケットを生成し、ステップS316において第1のノード4aに送信する。第1のノード4aは、ステップS317において第2のノード4bに受領確認を送信し、第2のノード4bは、ステップS318において受領確認をサーバ装置2の通信サーバ手段250に送信する。
図11を参照して、第1のノード4aに接続していたクライアント装置1が、移動などにより、第1のノード4aとの接続を切断し、第3のノード4cに接続する処理を説明する。
クライアント装置1の通信クライアント手段150は、ステップS401において第1のノード4aとの接続が切断され、ステップS402において第3のノード4cと接続すると、ステップS403において、第3のノード4cに登録リクエストを送信する。第3のノード4cは、クライアント装置1から登録リクエストを受信すると、ステップS404においてその登録リクエストを、アドレス管理装置3に送信する。ここで登録リクエストは、クライアント装置1のクライアント識別子“ID_C”と、第3のノード4cのアドレス“AD3”およびポート番号“PT3”を含む。
第3のノード4cから登録リクエストを受信すると、ステップS405においてアドレス管理装置3は、アドレス変換データ321を更新する。具体的には、ステップS404で受信した登録リクエストに含まれるクライアント装置1のクライアント識別子“ID_C”と、第3のノード4cのアドレス“AD3”およびポート番号“PT3”を対応づけて、アドレス変換データ321に登録する。このとき、第3のノード4cに接続する前の第1のノード4aに関する情報は削除される。
一方、サーバ装置2のサービス提供手段260が、ステップS406においてサービス応答に係るデータを通信サーバ手段250に送信し、ステップS407およびステップS408において、通信サーバ手段250は、第1のノード4aを介してクライアント装置1にサービス応答に係るデータを送信しようとする。しかしながら、第1のノード4aおよびクライアント装置1の間の接続が切断されているので、サービス応答に係るデータは、クライアント装置1に送信されない。
所定時間内に、通信クライアント手段150から受領確認を受信しない場合、通信サーバ手段250は、ステップS409およびステップS410において、再度第1のノード4aを介してクライアント装置1にサービス応答に係るデータを送信しようとする。
ステップS411において、サービス応答データの再送を繰り返したのち、タイムアウトし、または所定回数失敗したと判定されると、ステップS412において通信サーバ手段250は、アドレス管理装置3に、とのクライアント識別子“ID_C”について、アドレスを問い合わせる。その後通信サーバ手段250は、ステップS413において、クライアント装置1のアドレスが、第3のノード4cのアドレス“AD3”およびポート番号“PT3”であることを取得する。その後ステップS414において、通信クライアント手段150および通信サーバ手段250間でパンチング処理等がなされ、UDP通信が可能となる。
ステップS415において通信サーバ手段250は、サービス応答に係るデータを第3のノード4cに送信し、ステップS416において第3のノード4cは、通信クライアント手段150に送信する。通信クライアント手段150は、ステップS417においてサービス応答に係るデータをアプリケーション実行手段160に送信するとともに、ステップS418において、受領確認を第3のノード4cに送信する。ステップS419において第3のノード4cは、受領確認をサーバ装置2の通信サーバ手段250に送信する。
このように通信サーバ手段250は、送信したサービス応答データに関する受領確認を受信することで、UDPを介する通信であっても、送信先が受信したことを確認することができる。また受領確認を受信できない場合、サーバ装置2は、アドレス管理装置3に新たなアドレスを問い合わせて新たなアドレスに再送することで、クライアント装置1が移動し、グローバルアドレスが変更になっても、クライアント装置1は、引き続きデータを受信することができる。
図12を参照して、サーバ装置2から送信されるデータのフロー制御を説明する。図12は、図10のステップS308において、サービス応答に係るデータを通信サーバ手段250に送信する処理以降の処理を説明する。なお、図12に示す例において、第2のノード4bに関する処理を割愛しているが、第1のノード4aと、およびサーバ装置2の通信サーバ手段250との通信において、図10と同様に第2のノード4bが中継する。
ステップS510においてサーバ装置2のサービス提供手段260は、サービス提供に係るデータを通信サーバ手段250に送信する。通信サーバ手段250は、ステップS511において、第2のノード4bを介してサービス応答に係るデータを、シーケンス番号を付して第1のノード4aに送信し、第1のノード4aは、クライアント装置1の通信クライアント手段150に送信する。このとき通信サーバ手段250は、送信したサービス応答に係るデータと、シーケンス番号を対応づけて、記憶装置220に記憶する。
ステップS513において通信クライアント手段150は、未受領のシーケンス番号があるか否かを確認する。未受領のシーケンス番号がない場合、ステップS519に進み、アプリケーション実行手段160にサービス応答に係るデータを送信する。
一方未受領のシーケンス番号がある場合、通信クライアント手段150は、ステップS512で受領したサービス応答に係るデータを記憶装置120に記憶する。さらに通信クライアント手段150は、ステップS514において、未受領のシーケンス番号を含む再送要求を、第1のノード4aに送信し、第1のノード4aは、ステップS515において第2のノード4bを介して再送要求をサーバ装置2の通信サーバ手段250に送信する。
ステップS515において通信サーバ手段250は、未受領シーケンス番号を含む再送要求を受信すると、そのシーケンス番号に対応するサービス応答に係るデータを、記憶装置220から抽出する。ステップS516において通信サーバ手段250は、抽出したデータを含む再送応答を、第2のノード4bを介して第1のノード4aに送信し、ステップS517において第1のノード4aは、クライアント装置1の通信クライアント手段150に送信する。
ステップS518において通信クライアント手段150は、未受領のシーケンス番号があるか否かを確認する。未受領のシーケンス番号がない場合、ステップS519に進み、アプリケーション実行手段160にサービス応答に係るデータを送信する。未受領のシーケンス番号がある場合、ステップS514に戻り、未受領のシーケンス番号を設定して再送要求を送信する。
このように本発明の実施の形態に係る通信システム9は、クライアント装置1のアプリケーション実行手段160および通信クライアント手段150間において、TCP接続を確立するとともに、サーバ装置2のサービス提供手段260および通信サーバ手段250間においてTCP接続を確立する。さらに、通信クライアント手段150および通信サーバ手段250においてUDP通信可能な状態にする。このとき、UDPパケットに、TCP接続を特定するためのコネクションIDを含む制御ヘッダを設定する。これにより本発明の実施の形態に係る通信システム9は、TCP接続を、UDP接続を介して中継することができる。
さらに、アドレス管理装置3は、クライアント装置1およびサーバ装置2のそれぞれの識別子と、それぞれが接続するノードのグローバルアドレスとを対応づけて保持する。従って、クライアント装置1またはサーバ装置2に付与されるアドレスが変更されたとしても、クライアント装置1内のTCPセッション、およびサーバ装置2内のTCPセッションは切断されることなく、コネクションが維持される。さらに、アドレス管理装置3に最新のノードのアドレスを問い合わせることで、通信クライアント手段150および通信サーバ手段250間では新たなUDP接続を可能にする。
従って、クライアント装置1またはサーバ装置2に付与されるアドレスが変更されたり、クライアント装置1またはサーバ装置2が接続するノードが変更されたりしても、アプリケーション実行手段160およびサービス提供手段260間で、TCP接続を切断することなく、継続して通信することができる。
さらに、通信クライアント手段150および通信サーバ手段250が、上りデータおよび下りデータの暗号化および復号、フロー制御などのTCPが提供する同様の機能を提供ことにより、UDP接続を利用して、フレキシブルかつ信頼性の高い通信を提供することができる。
(変形例)
図13を参照して、本発明の変形例に係る通信システム9aを説明する。通信システム9aは、図1を参照して説明した通信システム9と比べて、クライアント装置が異なる。
本発明の実施の形態に係るクライアント装置1は、図2に示すように、クライアント装置1内に、通信クライアント手段150およびアプリケーション実行手段160を備える。
これに対し本発明の変形例に係るクライアント装置1aは、アプリケーション実行装置8に接続して用いられる点が異なる。図14に示すように、クライアント装置1aは、図2に示す通信クライアント手段150の各手段およびデータを備える。これに対しアプリケーション実行装置8は、図2に示すアプリケーション実行手段160の各手段およびデータを備える。
具体的には、本発明の実施の形態に係るクライアント装置1において、通信クライアント手段150およびアプリケーション実行手段160は、一つの装置内で、TCP接続で通信していた。これに対し変形例においては、クライアント装置1aおよびアプリケーション実行装置8は、個別の装置に実装され、TCP接続で通信する。
このような変形例において、サーバ装置2は、クライアント装置1aに付された識別子“ID_C”を、クライアント装置1aが接続するノードのアドレスおよびポート番号と対応づけて保持する。
このように、アプリケーション実行装置8と、このアプリケーションに、本発明の実施の形態に係る通信方法を実現するクライアント装置1aとを異なる筐体で実現することもできる。
(その他の実施の形態)
上記のように、本発明の実施の形態とその変形例によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な請求の範囲に係る発明特定事項によってのみ定められるものである。
1 クライアント装置
2 サーバ装置
3 アドレス管理装置
4 ノード
5 通信ネットワーク
8 アプリケーション実行装置
9 通信システム
110、210、310 処理装置
120、220、320 記憶装置
121 ポート接続先対応データ
130、230、330 通信制御装置
140 入出力装置
150 通信クライアント手段
151、251 接続先登録手段
152、252 TCPセッション制御手段
153、253 UDP制御手段
154、254 暗号化手段
155、255 復号手段
156、256 再送判定手段
160、161、162、163 アプリケーション実行手段
250 通信サーバ手段
260 サービス提供手段
311 登録手段
312 応答手段
321 アドレス変換データ

Claims (12)

  1. 第1のノードを介して通信ネットワークに接続するクライアント装置と、第2のノードを介して前記通信ネットワークに接続するサーバ装置と、前記通信ネットワークに接続するアドレス管理装置とを備える通信システムに用いられる通信方法であって、
    クライアント装置は、アプリケーションを実行するアプリケーション実行手段と、前記アプリケーションの通信を中継する通信クライアント手段を備え、
    サーバ装置は、前記アプリケーションに対応するサービスを提供するサービス提供手段と、前記サービスの通信を中継する通信サーバ手段を備え、
    前記クライアント装置の通信クライアント手段が、前記第1のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、
    前記サーバ装置の通信サーバ手段が、前記第2のノードを介してサーバ識別子を前記アドレス管理装置に送信するステップと、
    前記アドレス管理装置が、前記クライアント識別子と前記第1のノードのIPアドレスおよびUDPポートを対応づけるとともに、前記サーバ識別子と前記第2のノードのIPアドレスおよびUDPポートを対応づけたアドレス変換データを、記憶装置に記憶するステップと、
    前記クライアント装置の通信クライアント手段が、前記アプリケーション実行手段から、TCPコネクトを受信すると、前記サーバ識別子を前記アドレス管理装置に送信し、前記サーバ識別子に対応づけられた前記第2のノードのIPアドレスおよびUDPポートを取得するステップと、
    前記クライアント装置の通信クライアント手段および前記サーバ装置の通信サーバ手段の間で、前記第1のノードおよび前記第2のノードを介したUDP接続が可能になるステップと、
    前記クライアント装置の通信クライアント手段が、前記UDP接続を介して、前記サーバ装置に、接続リクエストを送信する手段と、
    前記サーバ装置の通信サーバ手段が、前記第2のノードを介して前記接続リクエストを受信すると、前記サービス提供手段にTCPコネクトを送信して、前記サービス提供手段からAckを受信し、前記UDP接続を介して、前記第1のノードに、前記Ackとコネクション識別子を含む接続応答を送信するステップと、
    前記クライアント装置の通信クライアント手段が、前記サーバ装置の通信サーバ手段から前記第1のノードを介して前記接続応答を受信すると、前記アプリケーション実行手段に、前記Ackと前記コネクション識別子を送信するステップと、
    前記クライアント装置の通信クライアント手段および前記アプリケーション実行手段との間で、前記コネクション識別子で特定される第1のTCP接続が確立されるとともに、前記サーバ装置の通信サーバ手段および前記サービス提供手段との間で、前記コネクション識別子で特定される第2のTCP接続が確立されるステップ
    を備えることを特徴とする通信方法。
  2. 前記サーバ装置の通信サーバ手段が、前記UDP接続を介して、前記コネクション識別子を含む制御ヘッダを付して、下りデータを、前記クライアント装置の通信クライアント手段に送信するステップと、
    前記クライアント装置の通信クライアント手段が、前記第1のTCP接続を介して前記下りデータを前記アプリケーション実行手段に送信するとともに、前記UDP接続を介して、前記コネクション識別子を含む制御ヘッダを付して、前記下りデータの受領確認を、前記サーバ装置の通信サーバ手段に送信するステップと、
    をさらに備えることを特徴とする請求項1に記載の通信方法。
  3. 前記クライアント装置が、第3のノードに接続すると、
    前記クライアント装置の通信クライアント手段が、前記第3のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、
    前記アドレス管理装置が、前記クライアント識別子と前記第3のノードのIPアドレスおよびUDPポートを対応づけたアドレス変換データを、前記記憶装置に記憶するステップと、
    前記サーバ装置の通信サーバ手段が、前記下りデータを送信後、前記クライアント装置の通信クライアント手段から前記受領確認を受信しない場合、前記クライアント識別子を前記アドレス管理装置に送信し、前記クライアント識別子に対応づけられた第3のノードのIPアドレスおよびUDPポートを取得するステップと、
    前記クライアント装置の前記通信クライアント手段および前記サーバ装置の前記通信サーバ手段の間で、前記第3のノードおよび前記第2のノードを介した新たなUDP接続が可能になるステップと、
    前記サーバ装置の通信サーバ手段が、前記新たなUDP接続を介して、前記コネクション識別子を含む制御ヘッダを付して、前記下りデータを、前記クライアント装置の通信クライアント手段に送信するステップ
    をさらに備えることを特徴とする請求項2に記載の通信方法。
  4. 前記サーバ装置の通信サーバ手段が、前記下りデータを暗号化して、前記クライアント装置の通信クライアント手段に送信するステップと、
    前記クライアント装置の通信クライアント手段が、暗号化された前記下りデータを復号して、前記アプリケーション実行手段に送信するステップ
    を備えることを特徴とする請求項2に記載の通信方法。
  5. 前記サーバ装置の通信サーバ手段は、前記下りデータを複数のパケットに分割して送信する場合、前記制御ヘッダにパケットの順序を特定するシーケンス番号を含めるステップと、
    前記クライアント装置の通信クライアント手段が、複数のパケットを順次受信し、未受信のパケットがある場合、未受信のパケットのシーケンス番号を前記サーバ装置の通信サーバ手段に送信して、再送をリクエストするステップ
    をさらに備えることを特徴とする請求項2に記載の通信方法。
  6. 第1のノードを介して通信ネットワークに接続するクライアント装置と、第2のノードを介して前記通信ネットワークに接続するサーバ装置と、前記通信ネットワークに接続するアドレス管理装置とを備える通信システムであって、
    クライアント装置は、アプリケーションを実行するアプリケーション実行手段と、前記アプリケーションの通信を中継する通信クライアント手段を備え、
    サーバ装置は、前記アプリケーションに対応するサービスを提供するサービス提供手段と、前記サービスの通信を中継する通信サーバ手段を備え、
    前記クライアント装置の前記通信クライアント手段は、
    前記第1のノードを介してクライアント識別子をアドレス管理装置に送信して、前記アドレス管理装置に、前記クライアント識別子と前記第1のノードのIPアドレスおよびUDPポートを対応づけさせる接続先登録手段と、
    前記アプリケーション実行手段から、TCPコネクトを受信すると、サーバ識別子を前記アドレス管理装置に送信し、前記サーバ識別子に対応づけられた前記第2のノードのIPアドレスおよびUDPポートを取得し、前記サーバ装置の通信サーバ手段との間で、前記第1のノードおよび前記第2のノードを介したUDP接続を確立した後、前記UDP接続を介して、前記サーバ装置に、接続リクエストを送信し、前記サーバ装置の通信サーバ手段から、前記第1のノードを介してTCPコネクトに対するAckとコネクション識別子を含む接続応答を受信するUDP制御手段と、
    前記アプリケーション実行手段に、前記Ackと前記コネクション識別子を送信して、前記アプリケーション実行手段との間で、前記コネクション識別子で特定される第1のTCP接続を確立するTCPセッション制御手段と、を備え、
    前記サーバ装置の前記通信サーバ手段は、
    前記第2のノードを介してサーバ識別子を前記アドレス管理装置に送信して、前記アドレス管理装置に、前記サーバ識別子と前記第2のノードのIPアドレスおよびUDPポートを対応づけさせる接続先登録手段と、
    前記クライアント装置の通信クライアント手段との間で、前記第1のノードおよび前記第2のノードを介したUDP接続が可能になった後、前記第2のノードを介して前記接続リクエストを受信すると、前記サービス提供手段にTCPコネクトを送信して、前記サービス提供手段からAckを受信し、前記UDP接続を介して、前記第1のノードに、前記Ackと前記コネクション識別子を含む接続応答を送信するUDP制御手段と、
    前記サービス提供手段との間で、前記コネクション識別子で特定される第2のTCP接続を確立するTCPセッション制御手段と、を備える
    ことを特徴とする通信システム。
  7. 前記通信サーバ手段の前記UDP制御手段は、
    前記UDP接続を介して、前記コネクション識別子を含む制御ヘッダを付して、下りデータを、前記クライアント装置の通信クライアント手段に送信し、
    前記通信クライアント手段の前記UDP制御手段は、
    前記第1のTCP接続を介して前記下りデータを前記アプリケーション実行手段に送信するとともに、前記UDP接続を介して、前記コネクション識別子を含む制御ヘッダを付して、前記下りデータの受領確認を、前記サーバ装置の通信サーバ手段に送信する
    ことを特徴とする請求項6に記載の通信システム。
  8. 前記クライアント装置が、第3のノードに接続すると、
    前記通信クライアント手段の接続先登録手段は、前記第3のノードを介してクライアント識別子をアドレス管理装置に送信し、前記アドレス管理装置に、前記クライアント識別子と前記第3のノードのIPアドレスおよびUDPポートを対応づけさせ、
    前記通信サーバ手段のUDP制御手段が、前記下りデータを送信後、前記クライアント装置の通信クライアント手段から前記受領確認を受信しない場合、前記クライアント識別子を前記アドレス管理装置に送信し、前記クライアント識別子に対応づけられた第3のノードのIPアドレスおよびUDPポートを取得し、前記クライアント装置の通信クライアント手段および前記サーバ装置の通信サーバ手段の間で、前記第3のノードおよび前記第2のノードを介した新たなUDP接続が可能になると、前記新たなUDP接続を介して、前記コネクション識別子を含む制御ヘッダを付して、前記下りデータを、前記クライアント装置の通信クライアント手段に送信する
    ことを特徴とする請求項7に記載の通信システム。
  9. 前記サーバ装置のUDP制御手段が、前記下りデータを暗号化して、前記クライアント装置の通信クライアント手段に送信し、
    前記通信クライアント手段のUDP制御手段が、暗号化された前記下りデータを復号して、前記アプリケーション実行手段に送信する
    ことを特徴とする請求項7に記載の通信システム。
  10. 前記通信サーバ手段のUDP制御手段は、前記下りデータを複数のパケットに分割して送信する場合、前記制御ヘッダにパケットの順序を特定するシーケンス番号を含め、
    前記通信クライアント手段のUDP制御手段が、複数のパケットを順次受信し、未受信のパケットがある場合、未受信のパケットのシーケンス番号を前記サーバ装置の通信サーバ手段に送信して、再送をリクエストする
    ことを特徴とする請求項7に記載の通信システム。
  11. 第1のノードを介して通信ネットワークに接続するクライアント装置と、前記クライアント装置に接続するアプリケーション実行装置と、第2のノードを介して前記通信ネットワークに接続するサーバ装置と、前記通信ネットワークに接続するアドレス管理装置とを備える通信システムに用いられる通信方法であって、
    アプリケーション実行装置は、アプリケーションを実行するアプリケーション実行手段を備え、
    クライアント装置は、前記アプリケーションの通信を中継する通信クライアント手段を備え、
    サーバ装置は、前記アプリケーションに対応するサービスを提供するサービス提供手段と、前記サービスの通信を中継する通信サーバ手段を備え、
    前記クライアント装置の通信クライアント手段が、前記第1のノードを介してクライアント識別子をアドレス管理装置に送信するステップと、
    前記サーバ装置の通信サーバ手段が、前記第2のノードを介してサーバ識別子を前記アドレス管理装置に送信するステップと、
    前記アドレス管理装置が、前記クライアント識別子と前記第1のノードのIPアドレスおよびUDPポートを対応づけるとともに、前記サーバ識別子と前記第2のノードのIPアドレスおよびUDPポートを対応づけたアドレス変換データを、記憶装置に記憶するステップと、
    前記クライアント装置の通信クライアント手段が、前記アプリケーション実行手段から、TCPコネクトを受信すると、前記サーバ識別子を前記アドレス管理装置に送信し、前記サーバ識別子に対応づけられた前記第2のノードのIPアドレスおよびUDPポートを取得するステップと、
    前記クライアント装置の通信クライアント手段および前記サーバ装置の通信サーバ手段の間で、前記第1のノードおよび前記第2のノードを介したUDP接続が可能になるステップと、
    前記クライアント装置の通信クライアント手段が、前記UDP接続を介して、前記サーバ装置に、接続リクエストを送信する手段と、
    前記サーバ装置の通信サーバ手段が、前記第2のノードを介して前記接続リクエストを受信すると、前記サービス提供手段にTCPコネクトを送信して、前記サービス提供手段からAckを受信し、前記UDP接続を介して、前記第1のノードに、前記Ackとコネクション識別子を含む接続応答を送信するステップと、
    前記クライアント装置の通信クライアント手段が、前記サーバ装置の通信サーバ手段から前記第1のノードを介して前記接続応答を受信すると、前記アプリケーション実行手段に、前記Ackと前記コネクション識別子を送信するステップと、
    前記クライアント装置の通信クライアント手段および前記アプリケーション実行手段との間で、前記コネクション識別子で特定される第1のTCP接続が確立されるとともに、前記サーバ装置の通信サーバ手段および前記サービス提供手段との間で、前記コネクション識別子で特定される第2のTCP接続が確立されるステップ
    を備えることを特徴とする通信方法。
  12. 第1のノードを介して通信ネットワークに接続するクライアント装置と、前記クライアント装置に接続するアプリケーション実行装置と、第2のノードを介して前記通信ネットワークに接続するサーバ装置と、前記通信ネットワークに接続するアドレス管理装置とを備える通信システムであって、
    アプリケーション実行装置は、アプリケーションを実行するアプリケーション実行手段を備え、
    クライアント装置は、前記アプリケーションの通信を中継する通信クライアント手段を備え、
    サーバ装置は、前記アプリケーションに対応するサービスを提供するサービス提供手段と、前記サービスの通信を中継する通信サーバ手段を備え、
    前記クライアント装置の前記通信クライアント手段は、
    前記第1のノードを介してクライアント識別子をアドレス管理装置に送信して、前記アドレス管理装置に、前記クライアント識別子と前記第1のノードのIPアドレスおよびUDPポートを対応づけさせる接続先登録手段と、
    前記アプリケーション実行手段から、TCPコネクトを受信すると、サーバ識別子を前記アドレス管理装置に送信し、前記サーバ識別子に対応づけられた前記第2のノードのIPアドレスおよびUDPポートを取得し、前記サーバ装置の通信サーバ手段との間で、前記第1のノードおよび前記第2のノードを介したUDP接続を確立した後、前記UDP接続を介して、前記サーバ装置に、接続リクエストを送信し、前記サーバ装置の通信サーバ手段から、前記第1のノードを介してTCPコネクトに対するAckとコネクション識別子を含む接続応答を受信するUDP制御手段と、
    前記アプリケーション実行手段に、前記Ackと前記コネクション識別子を送信して、前記アプリケーション実行手段との間で、前記コネクション識別子で特定される第1のTCP接続を確立するTCPセッション制御手段と、を備え、
    前記サーバ装置の前記通信サーバ手段は、
    前記第2のノードを介してサーバ識別子を前記アドレス管理装置に送信して、前記アドレス管理装置に、前記サーバ識別子と前記第2のノードのIPアドレスおよびUDPポートを対応づけさせる接続先登録手段と、
    前記クライアント装置の通信クライアント手段との間で、前記第1のノードおよび前記第2のノードを介したUDP接続が可能になった後、前記第2のノードを介して前記接続リクエストを受信すると、前記サービス提供手段にTCPコネクトを送信して、前記サービス提供手段からAckを受信し、前記UDP接続を介して、前記第1のノードに、前記Ackと前記コネクション識別子を含む接続応答を送信するUDP制御手段と、
    前記サービス提供手段との間で、前記コネクション識別子で特定される第2のTCP接続を確立するTCPセッション制御手段と、を備える
    ことを特徴とする通信システム。

JP2014552991A 2014-07-16 2014-07-16 通信方法および通信システム Active JP5676067B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/068888 WO2016009505A1 (ja) 2014-07-16 2014-07-16 通信方法および通信システム

Publications (2)

Publication Number Publication Date
JP5676067B1 true JP5676067B1 (ja) 2015-02-25
JPWO2016009505A1 JPWO2016009505A1 (ja) 2017-04-27

Family

ID=52672668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014552991A Active JP5676067B1 (ja) 2014-07-16 2014-07-16 通信方法および通信システム

Country Status (4)

Country Link
US (1) US9917926B2 (ja)
JP (1) JP5676067B1 (ja)
TW (1) TWI549553B (ja)
WO (1) WO2016009505A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10498654B2 (en) * 2015-12-28 2019-12-03 Amazon Technologies, Inc. Multi-path transport design
US9985904B2 (en) 2015-12-29 2018-05-29 Amazon Technolgies, Inc. Reliable, out-of-order transmission of packets
CN109309615B (zh) * 2017-07-27 2020-07-07 华为技术有限公司 传输数据的方法和设备
CN107733903B (zh) * 2017-10-18 2019-12-20 中国联合网络通信集团有限公司 一种基于udp的数据传输确认方法和基站

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006254160A (ja) * 2005-03-11 2006-09-21 Adoin Kenkyusho:Kk 中継装置、通信システム、これらの制御方法及び制御プログラム
JP2009111437A (ja) * 2007-10-26 2009-05-21 Hitachi Ltd ネットワークシステム
JP2013126219A (ja) * 2011-12-16 2013-06-24 Kamome Engineering Inc 転送サーバおよび転送プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020002611A1 (en) * 2000-04-17 2002-01-03 Mark Vange System and method for shifting functionality between multiple web servers
US7260082B2 (en) * 2004-02-13 2007-08-21 Yahoo! Inc. Seamless interfacing for instant messaging and internet telephony across wireless networks
KR100772498B1 (ko) * 2006-11-08 2007-11-01 주식회사 케이티프리텔 콘텐츠 푸쉬 서비스 제공 방법, 이를 위한 이동통신시스템및 이동 단말
CA2703210A1 (en) * 2007-10-24 2009-04-30 Jonathan Peter Deutsch Various methods and apparatuses for accessing networked devices without accessible addresses via virtual ip addresses
US8832264B2 (en) * 2012-03-01 2014-09-09 Justin Pauley Network appliance for monitoring network requests for multimedia content
JP5935602B2 (ja) 2012-08-30 2016-06-15 富士通株式会社 転送装置、転送方法および転送プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006254160A (ja) * 2005-03-11 2006-09-21 Adoin Kenkyusho:Kk 中継装置、通信システム、これらの制御方法及び制御プログラム
JP2009111437A (ja) * 2007-10-26 2009-05-21 Hitachi Ltd ネットワークシステム
JP2013126219A (ja) * 2011-12-16 2013-06-24 Kamome Engineering Inc 転送サーバおよび転送プログラム

Also Published As

Publication number Publication date
US20170134535A1 (en) 2017-05-11
TW201607359A (zh) 2016-02-16
US9917926B2 (en) 2018-03-13
JPWO2016009505A1 (ja) 2017-04-27
WO2016009505A1 (ja) 2016-01-21
TWI549553B (zh) 2016-09-11

Similar Documents

Publication Publication Date Title
WO2017147772A1 (zh) 一种消息传输方法及核心网接口设备
EP1755276A1 (en) Communication control method
JP5676067B1 (ja) 通信方法および通信システム
US20150120943A1 (en) Secure mobile access to resources within a private network
WO2018000457A1 (zh) 一种切换方法及装置
JP5157763B2 (ja) データ通信制御装置、データ通信方法、データ通信システム及びデータ通信プログラム
US20120072513A1 (en) Method and system for obtaining host identity tag
WO2013189398A2 (zh) 应用数据推送方法、装置及系统
JP4806364B2 (ja) ルータ切替方法、およびルータ装置
JP5326815B2 (ja) パケット送受信装置およびパケット送受信方法
CN109152096B (zh) Eps架构的报文传输方法及计算机可读存储介质
JP2005051458A (ja) 通信ネットワークシステム及びそのセキュリティ自動設定方法
WO2014067065A1 (zh) 实现隧道处理的方法、装置和系统
EP3637817B1 (en) Communication method
JP6976199B2 (ja) 情報処理サーバおよび情報処理方法
JP6407114B2 (ja) 通信システム、通信方法、通信ノード装置、及びプログラム
JP4885810B2 (ja) 無線端末用アダプタ
JP2016021648A (ja) 通信システム、中継装置、制御方法およびプログラム
JP5155899B2 (ja) モバイルipネットワークにおける非ipネットワークを介した経路制御方法及びシステム
JPWO2014083922A1 (ja) 情報配信システム、情報配信方法、通信端末及びプログラム
JP2014022969A (ja) マルチホーム通信方法およびシステム
CN108322941B (zh) 信息通信方法及装置
JPWO2008072576A1 (ja) 通信継続方法及びその方法で用いられる通信端末
WO2011010363A1 (ja) 通信システムおよび基地局間通信制御方法
JP2011146844A (ja) モバイルipネットワークについて複数のトンネルを生成する経路制御方法及びシステム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20141210

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141224

R150 Certificate of patent or registration of utility model

Ref document number: 5676067

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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