JP2023542398A - データ処理方法、装置、関連機器及び記憶媒体 - Google Patents

データ処理方法、装置、関連機器及び記憶媒体 Download PDF

Info

Publication number
JP2023542398A
JP2023542398A JP2023518856A JP2023518856A JP2023542398A JP 2023542398 A JP2023542398 A JP 2023542398A JP 2023518856 A JP2023518856 A JP 2023518856A JP 2023518856 A JP2023518856 A JP 2023518856A JP 2023542398 A JP2023542398 A JP 2023542398A
Authority
JP
Japan
Prior art keywords
client
gateway
address
access address
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.)
Granted
Application number
JP2023518856A
Other languages
English (en)
Other versions
JP7531697B2 (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of JP2023542398A publication Critical patent/JP2023542398A/ja
Application granted granted Critical
Publication of JP7531697B2 publication Critical patent/JP7531697B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • 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/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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/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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/12Setup of transport tunnels

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本発明の実施例はデータ処理方法、装置、関連機器及び記憶媒体を開示している。方法は、第1のクライアントによって送信された接続テストパケットを受信するステップと、接続テストパケットに含まれる第2のクライアントのアクセスアドレスを決定して記憶するステップと、第1のクライアントが第2のクライアントに送信した接続データパケットを受信した場合、第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを受信すると、第2のゲートウェイを介して接続データパケットを第2のクライアントに送信することで、第1のクライアントと第2のクライアントとが接続データパケットに基づいて通信接続を確立させるステップと、を含み、当該第2のゲートウェイはAPIゲートウェイであり、プライベートネットワークにあるクライアントの間で通信接続を確立する成功率を向上させる。

Description

本出願は2020年11月10日にて中国特許庁に提出され、出願番号が202011246040.6であり、出願名称が「データ処理方法、装置、関連機器及び記憶媒体」である中国特許出願の優先権を主張して、その全ての内容は援用により本出願に組み込まれた。
本出願はコンピュータ技術の分野に関し、特に、データ処理に関する。
ピアツーピア伝送(Peer―to―Peer、又はPoint―to―Point、P2P)は異なるプライベートネットワークにある2つのクライアントの間の伝送を実現することを指し、クライアントが属するプライベートネットワークは異なるため、異なるプライベートネットワークにあるこの2つのクライアントの間の伝送は、パブリックネットワークに依存し、つまり、異なるプライベートネットワークにあるクライアントがデータを伝送する場合に、データを転送するためにパブリックネットワークが必要になる。ピアツーピア伝送の効率を向上するために、さらに、ホールパンチング技術を使用して異なるプライベートネットワークにあるクライアントを直接に接続することができるが、現在のホールパンチング技術は、異なるプライベートネットワークにある2つのクライアントを接続する成功率が低いため、異なるプライベートネットワークにあるクライアント間の通信接続の成功率を如何に向上させるかは、研究におけるホットトピックになっている。
本出願の実施例は、プライベートネットワークにあるクライアントの間で通信接続を確立する成功率を向上させるデータ処理方法、装置、関連機器及び記憶媒体を提供する。
1つの態様によれば、本出願の実施例は、
第1のクライアントによって送信された接続テストパケットを受信するステップであって、前記接続テストパケットは第2のクライアントのアクセスアドレスを含み、前記第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに前記第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられるステップと、
前記接続テストパケットに含まれる前記第2のクライアントのアクセスアドレスを記憶するステップと、
前記第1のクライアントが前記第2のクライアントに送信した接続データパケットを受信するステップと、
前記第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを受信したかどうかをチェックするステップであって、前記第1のアドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものであるステップと、
第1のアドレス記憶通知メッセージを受信したとチェックすると、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立するように、受信した前記接続データパケットを前記第2のゲートウェイを介して前記第2のクライアントに送信するステップと、を含むデータ処理方法を提供する。
別の態様によれば、本出願の実施例は、
第1のゲートウェイが接続テストパケットに基づいて第2のクライアントのアクセスアドレスを記憶するように、前記接続テストパケットを前記第1のゲートウェイに送信するステップであって、前記接続テストパケットは第2のクライアントのアクセスアドレスを含み、前記第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに前記第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられるステップと、
前記第2のゲートウェイによって送信されたアドレス記憶通知メッセージを受信したかどうかをチェックするステップであって、前記アドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものであるステップと、
第1のアドレス記憶通知メッセージを受信したとチェックすると、前記第1のゲートウェイが前記第2のゲートウェイを介して前記接続データパケットを前記第2のクライアントに送信するように、前記第2のクライアントに対する接続データパケットを前記第1のゲートウェイに送信することで、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立させるステップと、を含むデータ処理方法を提供する。
別の態様によれば、本出願の実施例は、
受信ユニットと、決定ユニットと、記憶ユニットと、送信ユニットとを含み、
前記受信ユニットは、第1のクライアントによって送信された接続テストパケットを受信するように構成され、前記接続テストパケットは第2のクライアントのアクセスアドレスを含み、前記第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられ、
前記決定ユニットは、前記接続テストパケットに含まれる前記第2のクライアントのアクセスアドレスを決定するように構成され、
前記記憶ユニットは、前記第2のクライアントのアクセスアドレスを記憶するように構成され、
前記受信ユニットは、さらに、前記第1のクライアントが前記第2のクライアントに送信した接続データパケットを受信するように構成され、
前記決定ユニットは、さらに、前記第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを受信したかどうかをチェックするように構成され、前記第1のアドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものであり、
前記送信ユニットは、前記第1のアドレス記憶通知メッセージを受信したと前記決定ユニットによって決定された場合、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立するように、前記第2のゲートウェイを介して、受信した前記接続データパケットを前記第2のクライアントに送信するように構成されるデータ処理装置を提供する。
別の態様によれば、本出願の実施例は、
第1のゲートウェイが接続テストパケットに基づいて第2のクライアントのアクセスアドレスを記憶するように、前記第1のゲートウェイに前記接続テストパケットを送信するように構成され、前記接続テストパケットは第2のクライアントのアクセスアドレスを含み、第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに前記第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられる送信ユニットと、
前記第2のゲートウェイによって送信されたアドレス記憶通知メッセージを受信したかどうかをチェックするように構成され、前記アドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものである決定ユニットと、を含み、
前記送信ユニットは、さらに、前記アドレス記憶通知メッセージを受信したと前記決定ユニットによって決定された場合、前記第1のゲートウェイが前記第2のゲートウェイを介して前記接続データパケットを前記第2のクライアントに送信するように、前記第2のクライアントに対する接続データパケットを前記第1のゲートウェイに送信することで、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立させるように構成されるデータ処理装置を提供する。
別の態様によれば、本出願の実施例は、プロセッサー、入力機器、出力機器、及びメモリを含み、前記プロセッサー、前記入力機器、前記出力機器、及び前記メモリは互いに接続され、前記メモリはコンピュータプログラムを記憶するように構成され、前記コンピュータプログラムはプログラム命令を含み、前記プロセッサーは、前記プログラム命令を呼び出して、以上の態様に記載の方法を実行するように配置されるゲートウェイ機器を提供
ゲートウェイ機器。
別の態様によれば、本出願の実施例は、プロセッサー、入力機器、出力機器及びメモリを含み、前記プロセッサー、前記入力機器、前記出力機器及び前記メモリは互いに接続され、前記メモリはコンピュータプログラムを記憶するように構成され、前記コンピュータプログラムはプログラム命令を含み、前記プロセッサーは、前記プログラム命令を呼び出して、以上の態様に記載の方法を実行するように配置される
端末機器を提供する。
別の態様によれば、本出願の実施例は、コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、前記コンピュータプログラムは以上の態様に記載の方法を実行させるように構成されるコンピュータ可読記憶媒体を提供する。
別の態様によれば、本出願の実施例は、命令を含むコンピュータプログラム製品を提供し、コンピュータで実行されると、以上の態様に記載のデータ処理方法を前記コンピュータに実行させる。
本出願の実施例において、第1のゲートウェイは、第1のクライアントと第2のクライアントとの間で通信接続を確立する必要があると決定した場合、当該第1のクライアントによって送信された接続テストパケットを受信することで、当該接続テストパケットのパケットヘッダファイルに基づいて当該第2のクライアントのアクセスアドレスを記憶することができ、さらに、当該第1のゲートウェイは、当該第2のゲートウェイも第1のクライアントのアクセスアドレスを記憶したと決定した場合、当該第1のクライアントと当該第2のクライアントとの間で当該接続データパケットに基づいて通信接続を確立できるように、第1のクライアントの接続データパケットを第2のゲートウェイを介して第2のクライアントに送信することができる。当該第1のゲートウェイ及び第2のゲートウェイに相手のクライアントのアクセスアドレスを予め記憶したため、接続データパケットは当該第1のゲートウェイ及び第2のゲートウェイを介してスムーズに転送され得、それにより、第1のクライアントと第2のクライアントとの間で通信接続を確立でき、当該接続データパケットが第1のゲートウェイ又は第2のゲートウェイによって破棄される確率は比較的に低いため、第1のクライアントと第2のクライアントとの間で通信接続を確立する成功率を向上させることができる。
本出願の実施例で提供されるデータ処理方法のシステムアーキテクチャ図である。 ホールパンチングにより第1のクライアントと第2のクライアントとが通信接続を確立する概略図である。 本出願の実施例で提供される第1のクライアント、第2のクライアント、及びプロキシサーバーのインタラクションの概略図である。 本出願の実施例で提供されるホールパンチングにより第1のクライアントと第2のクライアントとが通信接続を確立する概略図である。 本出願の実施例で提供されるデータ処理方法の概略フローチャート図である。 本出願の実施例で提供されるクライアントと複数のゲートウェイとの接続の概略図である。 本出願の実施例で提供されるホールパンチング成功率の比較図である。 本出願の実施例で提供されるホールパンチング成功率の概略図である。 本出願の実施例で提供されるデータ処理方法の概略フローチャート図である。 本出願の実施例で提供される第1のクライアントによるターゲットルーティング数の決定の概略図である。 本出願の実施例で提供されるデータ処理装置の概略ブロック図である。 本出願の実施例で提供されるデータ処理装置の概略ブロック図である。 本出願の実施例で提供されるゲートウェイ機器の概略ブロック図である。 本出願の実施例で提供される端末機器の概略ブロック図である。
異なるプライベートネットワークにある第1のクライアントと第2のクライアントとの間で通信接続を確立し、当該第1のクライアントと第2のクライアントとの間で通信接続を確立する成功率を効果的に向上させるために、本出願の実施例はデータ処理方法を提案し、当該第1のクライアントの第1のゲートウェイ及び第2のクライアントの第2のゲートウェイは相手クライアントのアクセスアドレスをそれぞれ予め記憶しておくことができ、このように、当該第1のゲートウェイ及び第2のゲートウェイに記録された相手クライアントのアクセスアドレスに基づき、当該第1のゲートウェイ及び当該第2のゲートウェイは、当該第1のクライアントと第2のクライアントとの間で通信接続を確立するように指示するための接続データパケットを取得した場合、当該接続データパケットの転送を成功させることができ、つまり、第1のクライアントと第2のクライアントとの通信接続を確立する際の成功率を向上させる。1つの実施例において、相手クライアントは、現在のクライアントと異なるプライベートネットワークにあるクライアントであり、図1aに示すように、当該第1のクライアントは図1aにおいて符号10としてマークされた第1のプライベートネットワークに属し、当該第2のクライアント、例えば図1aにおいて符号11としてマークされた第2のプライベートネットワークに属してもよく、当該第1のクライアントは、第1のプライベートネットワーク10において符号101としてマークされたクライアントであり、当該第2のクライアントは、第2のプライベートネットワーク11において符号102としてマークされたクライアントであってもよく、1つの実施例において、当該第1のクライアント101は第1のゲートウェイを介してパブリックネットワークへのアクセスを実現し、当該第2のクライアント102は第2のゲートウェイを介してパブリックネットワークへのアクセスを実現することができ、当該第1のゲートウェイは、例えば図1aにおいて符号103としてマークされたゲートウェイであり、当該第2のゲートウェイは、例えば図1aにおいて符号104としてマークされたゲートウェイであってもよい。ここで、当該第1のゲートウェイ103及び第2のゲートウェイ104が属するネットワークのタイプは指定されず、プライベートネットワークに属してもよいし、パブリックネットワークに属してもよいが、本出願の実施例は限定されない。当該第1のゲートウェイ及び第2のゲートウェイの両方はアプリケーションプログラムインターフェース(Application Programming Interface、API)ゲートウェイであるため、当該第1のゲートウェイは第1のインターフェースゲートウェイ、当該第2のゲートウェイは第2のインターフェースゲートウェイとも呼ばれてもよい。
1つの実施例において、当該第1のゲートウェイ及び当該第2のゲートウェイの両方はエクストラネットゲートウェイに属し、エクストラネットゲートウェイはネットワークアドレス変換(Net Address Transport、NAT)プロトコルを配置しているゲートウェイであり、当該ネットワークアドレス変換プロトコルは、プライベートネットワークに位置するクライアントがプライベートネットワークにアクセスするクライアントアドレスを、パブリックネットワークアクセス用のアクセスアドレス、及びパブリックネットワークからプライベートネットワークに位置するクライアントに送信されるアクセス情報にマッピングするために用いられ、当該アクセス情報に対応するアクセスアドレスを、対応するプライベートアドレス(即ち、クライアントアドレス)に変換し、対応するクライアントに転送することで、プライベートネットワークにあるクライアントはゲートウェイに配置されたネットワークアドレス変換プロトコルに基づいて、パブリックネットワークとのインタラクションを実現することができる。NATによるアドレス変換の方式は、NATプロトコルが配置されたゲートウェイを、フルコーンNAT、制限付きコーンNAT、ポート制限付きコーンNAT、対称型NAT及び動的NATに分けることができ、本出願の実施例で提案されるデータ処理方法は、異なるプライベートネットワークにある第1のクライアントと第2のクライアントとが通信を確立させ、当該第1のクライアントの第1のゲートウェイ及び当該第2のクライアントの第2のゲートウェイの両方が動的NATである場合に実施されるが、当該第1のゲートウェイ又は当該第2のゲートウェイが動的NATタイプのゲートウェイではない場合にも、本出願の実施例を採用してもよい。又は、当該第1のゲートウェイ又は当該第2のゲートウェイが動的NATタイプのゲートウェイではない場合に、バックリンク技術、誕生日攻撃技術、或いはポート予測技術を採用して、第1のクライアントと第2のクライアントとの間の通信接続の確立を実現してもよい。
1つの実施例において、バックリンク技術は、第1のクライアント及び第2のクライアントが、NATが配置された異なるゲートウェイに対応し、第1のクライアントが第2のクライアントと通信しようとすると、プロキシサーバーを介して接続要求を第2のクライアントに送信するとともに、接続データパケットを第2のクライアントのアクセスアドレスに送信し、第2のクライアントがプロキシサーバーから転送された接続要求を受信した後に、接続データパケットを第1のクライアントのアクセスアドレスに送信することで、第1のクライアントと第2のクライアントとの通信を実現することができる。誕生日攻撃技術は、主に、ゲートウェイに対応して配置されたNATがポート制限付きNAT及び対称型NATである接続問題に使用され、対称型NATの外部ポートはランダム的に変化するため、ポート制限付きNATは対称型NATの外部ポートを予測し対称型NATのランダムポートにパケットを送信する必要があり、対称型NATは異なるソケット(socket)によってポート制限付きNATにパケットを送信する。当該バックリンク技術は動的NATにホールパンチングをアクティブに開始させる技術であり、図1bに示すように、具体的に、以下のステップを含む。
S11において、第1のクライアントはプロキシサーバーを介して、接続要求を第2のクライアントに送信する。
S12において、第2のクライアントは、当該接続要求を受信した後に、プロキシサーバーを介して、接続要求を第1のクライアントに送信する。
S13において、第2のクライアントは接続データパケットを第1のクライアントに送信し、この接続データパケットは第1のクライアントの第1のゲートウェイ(静的NATゲートウェイ)によって破棄される可能性があり、第1のクライアントはまだ第2のクライアントと直接通信しないからであり、この場合、第2のクライアントの第2のゲートウェイ(動的NATゲートウェイ)が第1のクライアントのアクセスアドレスを記録するようにすることができる。
S14において、第1のクライアントは接続データパケットを第2のクライアントに直接送信し、第2のクライアントの第2のゲートウェイが第1のクライアントのアクセスアドレスを記録したので、当該接続データパケットは当該第2のゲートウェイを通過でき、この場合、第1のクライアントの第1のゲートウェイが第2のクライアントのアクセスアドレスを記録した。
S15において、第2のクライアントは、第1のクライアントによって送信された接続データパケットを受信した後に、確認情報を第1のクライアントに送信し、この確認情報はゲートウェイを介して当該第1のクライアントに到達することができ、これにより、第1のクライアントと第2のクライアントとの間のホールパンチングを実現する。ホールパンチングは、異なるプライベートネットワークにあるクライアントに接続を確立させることを指し、当該プライベートネットワークは、例えば伝送制御プロトコル/インターネットプロトコル(transmission Control Protocol/Internet Protocol、TCP/IP)ネットワークであってもよい。
バックリンク技術を採用することで、動的NATゲートウェイ及び静的NATゲートウェイのホールパンチングを解決し、異なるプライベートネットワークのクライアントに対して通信接続を確立することを実現するが、当該第1のクライアント及び第2のクライアントに対応するゲートウェイにおけるNATのタイプが何れも動的タイプである場合、動的NATは、相手クライアントが当該動的NATの所在するゲートウェイにアクティブに接続される場合、当該ゲートウェイに配置されたNATが外部ポートを固定ポートにマッピングするコーンNATとして表現され、動的NATが配置されたゲートウェイは、パブリックネットワークから受信された通信メッセージの対応するクライアントへの転送を成功させることができ、相手クライアントは当該動的NATが配置されたゲートウェイにアクティブに接続するように要求すると、当該ゲートウェイに配置されたNATは動的NATとして表現され、動的NATは外部ポートをランダムポートにマッピングするため、当該動的NATのゲートウェイは、相手クライアントによって送信された通信メッセージ(例えば、通信接続を要求する接続データパケット)を受信した後に、対応するクライアントへの転送を成功させることができず(又は、対応するクライアントに転送する成功率が低い)、このように、動的NATが配置されたゲートウェイはアクティブに接続を開始する場合に限り、接続を成功させることができる。バックリンク技術は、動的NATが配置されたゲートウェイがアクティブに接続を開始することで、動的NATゲートウェイが配置されたクライアントと非動的NATゲートウェイが配置されたクライアントとの間の通信接続を実現する。しかしながら、第1のクライアント及び第2のクライアントに対応するゲートウェイに配置されたNATが何れも動的である場合、いずれかのクライアントに対応するゲートウェイによるアクティブ接続により、相手クライアントのゲートウェイにおけるNATは動的タイプとなるので、いずれかのクライアントに対応するゲートウェイは何れも、ゲートウェイを介して相手クライアントによって送信された通信接続を要求するための接続データパケットを正確に転送することができず、第1のクライアントと第2のクライアントとの間の通信接続が失敗してしまい、つまり、第1のクライアント及び第2のクライアントに対応するゲートウェイに配置されたNATが何れも動的である場合、第1のクライアントと第2のクライアントとの間の相互通信を実現することは困難である。
2つのクライアントに対応するゲートウェイにおけるNATのタイプが何れも動的タイプである場合におけるクライアントの相互通信という問題を解決するために、本出願の実施例はデータ処理方法を提案する。本出願の実施例で提案されるデータ処理方法は、第1のクライアントと第2のクライアントとの間で通信接続を確立するために、当該第1のクライアント及び当該第2のクライアントは、有効期限(Time To Live、TTL)を有する接続テストパケットを、対応する第1のゲートウェイ及び第2のゲートウェイにそれぞれ送信することができ、当該接続テストパケットは相手クライアントのアクセスアドレス(即ち、相手クライアントの外部アクセスアドレス)を記録しており、当該有効期限に基づき、当該接続テストパケットが自端クライアントのゲートウェイにちょうど到達するが相手クライアントのゲートウェイに到達しないようにし、これにより、自端クライアントのゲートウェイに相手クライアントのアクセスアドレスを記録することを実現し、従って、配置された動的タイプNATのゲートウェイが相手クライアントによって送信された通信接続を要求する接続データパケットを受信した後に、当該外部ポートをランダムポートにマッピングしないことを実現でき、受信された接続データパケットを正確に転送し、当該第1のクライアントと当該第2のクライアントとが通信接続を確立させることを実現する。具体的に、当該第1のクライアント及び当該第2のクライアントはまず、自端クライアントがパブリックネットワークにアクセスする際のアクセスアドレスをそれぞれ決定し、当該第1のクライアント及び当該第2のクライアントの両方はネットワークトラバーサルプロトコルを使用して自端クライアントがパブリックネットワークにアクセスする際のアクセスアドレスを決定し、当該ネットワークトラバーサルプロトコルは、例えばNATのトラバーサルホールパンチング規格(Session Traversal Utilities for NAT、STUN)プロトコルであってもよい。当該第1のクライアント及び当該第2のクライアントは異なるプライベートネットワークに属するクライアントであるため、当該第1のクライアント及び当該第2のクライアントは直接通信を実現することができないが、第1のクライアントは当該第1のクライアントのアクセスアドレスを第2のクライアントに送信して、当該第2のクライアントのアクセスアドレスを取得するために、当該第1のクライアント及び第2のクライアントはプロキシサーバーを介して、自端のアクセスアドレスを相手クライアントに送信することができ、図1cは、当該第1のクライアント、第2のクライアント及びプロキシサーバーの間の接続関係を示し、当該プロキシサーバーは図1cにおいて符号105としてマークされたサーバーであり、第1のクライアント101は当該第1のクライアントのアクセスアドレスを決定した後に、プロキシサーバー105を介して、当該第1のクライアントのアクセスアドレスを第2のクライアント102に送信し、当該第2のクライアント102は当該第2のクライアントのアクセスアドレスを決定した後に、当該プロキシサーバー105を介して当該第2のクライアントのアクセスアドレスを第1のクライアント101に送信し、これにより、第1のクライアント及び第2のクライアントは相手クライアントのアクセスアドレスをそれぞれ決定する。
第1のクライアント及び当該第2のクライアントが相手クライアントのアクセスアドレスをそれぞれ決定した後に、当該第1のクライアントは、第2のクライアントのアクセスアドレスを含む接続テストパケットを第1のゲートウェイに送信することができ、当該第1のクライアントは、当該第2のクライアントのアクセスアドレスを含む接続テストパケットを第1のゲートウェイに送信する場合に、当該接続テストパケットのパケットヘッダファイルにソースアドレス情報及び宛先アドレス情報を記録し、当該ソースアドレス情報は当該第1のクライアントのイントラネットアドレス(又はクライアントアドレス)であり、宛先アドレス情報は第2のクライアントのアクセスアドレスであり、ここで、理解できることとして、当該第2のクライアントのアクセスアドレスは、当該第2のクライアントが第2のゲートウェイを介してパブリックネットワークにアクセスするエクストラネットアドレス、即ち、当該第2のゲートウェイのゲートウェイアドレスであり、第1のゲートウェイは当該接続テストパケットを受信した後に、当該パケットヘッダファイルに記録されたソースアドレス情報及び宛先アドレス情報に基づいて、当該第2のクライアントのアクセスアドレスを決定することにより、第1のゲートウェイは第2のクライアントのアクセスアドレスの記憶を実現し、当該第1のゲートウェイが第2のゲートウェイからの接続データパケットを受信した場合に、第1のゲートウェイが第2のゲートウェイのゲートウェイアドレス(即ち、第2のクライアントのアクセスアドレス)を記録したため、当該第2のゲートウェイからの接続データパケットを受信した後に、当該第1のゲートウェイは、記憶された情報に基づいて、当該接続データパケットの当該第1のクライアントへの転送を成功させる。
同様に、当該第2のクライアントは、第1のクライアントのアクセスアドレスを含む接続テストパケットを第2のゲートウェイに送信することもでき、これにより、第2のゲートウェイは当該接続テストパケットのパケットヘッダファイルに記録されたソースアドレス情報及び宛先アドレス情報を記憶するようにし、第1のクライアントのアクセスアドレスの記憶を実現し、当該第2のゲートウェイは第1のゲートウェイの接続データパケットを受信した場合、同様に、当該接続データパケットの第2のクライアントへの転送を成功させることもできる。具体的な実現において、図1dに示すように、当該第1のクライアントの第1のゲートウェイ及び第2のクライアントの第2のゲートウェイの両方が動的ゲートウェイである場合、第1のクライアントと第2のクライアントとの間で通信接続を確立することは、具体的に、以下のステップを実行する。
S21において、第1のクライアントはプロキシサーバーを介して、通信接続確立の接続要求を第2のクライアントに送信する。
S22において、第1のクライアントは同時に接続テストパケットを第2のクライアントに送信し、当該接続テストパケットは第1のゲートウェイに到達したばかりであり、且つ当該第1のゲートウェイに到達した後に、当該接続テストパケットの有効期限は0であり、従って、当該第1のゲートウェイは当該接続テストパケットを受信した後に当該接続テストパケットを第2のクライアントに転送しないので、当該第2のクライアントは当該接続テストパケットを受信することがなく、当該接続テストパケットを受信した後に、第1のゲートウェイは当該接続テストパケットに含まれる第2のクライアントのアクセスアドレスを記録する。
S23において、第2のクライアントは当該接続要求を受信した後に、接続テストパケットを第2のゲートウェイに送信することもでき、当該接続テストパケットも第2のゲートウェイにちょうど到達し、外部に転送されず、当該接続テストパケットを受信した後に、当該第2のゲートウェイはまた当該接続テストパケットに含まれる第1のクライアントのアクセスアドレスを記録する。
S24において、第2のクライアントが接続テストパケットを第2のゲートウェイに送信した後に、当該動的第2のゲートウェイは第1のクライアントのデータパケットの受信を可能にするので、当該第2のクライアントは、プロキシサーバーを介してアドレス記憶通知メッセージを第1のクライアントに送信することで、当該第2のゲートウェイが当該第1のクライアントのアクセスアドレスを記憶したことを第1のクライアント(又は第1のゲートウェイ) に知らせることができる。
S25において、第1のクライアントは、当該アドレス記憶通知メッセージを受信した後に、接続データパケットを第2のクライアントに送信することができ、当該接続データパケットは第1のゲートウェイ及び第2のゲートウェイをスムーズに通過して、第2のクライアントに到達することができる。
S26において、第2のクライアントは、当該第1のクライアントによって送信された接続データパケットを受信した後に、受信に成功した確認情報を第1のクライアントに返すことで、第1のクライアントと第2のクライアントとの間の通信接続の確立を実現することができる。
図2を参照し、本出願の実施例で提出されるデータ処理方法の概略フローチャート図であり、当該方法は上記の第1のクライアントの第1のゲートウェイに適用され得、図2に示すように、当該方法は以下のステップを含む。
S201において、第1のクライアントによって送信された接続テストパケットを受信し、前記接続テストパケットは第2のクライアントのアクセスアドレスを含む。
1つの実施例において、前記第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられ、前記第1のゲートウェイ及び前記第2のゲートウェイの両方はエクストラネットゲートウェイであり、前記エクストラネットゲートウェイにネットワークアドレス変換プロトコルが配置され、前記ネットワークアドレス変換プロトコルは、クライアントがプライベートネットワークにアクセスする場合におけるクライアントアドレスを、パブリックネットワークアクセス用のアクセスアドレスに変換するために用いられ、前記第1のクライアントがパブリックネットワークにアクセスする場合、前記第1のゲートウェイは、前記第1のクライアントが前記第1のプライベートネットワークにアクセスするクライアントアドレスを前記第1のクライアントのアクセスアドレスに変換し、前記第2のクライアントが前記パブリックネットワークにアクセスする場合、第2のゲートウェイは、前記第2のクライアントが前記第2のプライベートネットワークにアクセスするクライアントアドレスを前記第2のクライアントのアクセスアドレスに変換する。当該第1のクライアントと第2のクライアントとの間で通信接続を確立する必要がある場合、当該第1のゲートウェイはまず、当該第1のゲートウェイ及び第2のゲートウェイにそれぞれ配置されたネットワークアドレス変換プロトコルのタイプを決定し、当該ネットワークアドレス変換プロトコルのタイプは動的タイプ及び静的タイプを含み、静的タイプのネットワークアドレス変換プロトコルはイントラネットアドレス(即ち、クライアントアドレス)を固定のエクストラネットのアクセスアドレスに変換し、動的タイプのネットワークアドレス変換プロトコルは、アドレス変換中に、ランダムに異なるアクセスアドレスにマッピングする可能性がある。ネットワークアドレス変換プロトコルによって、エクストラネットゲートウェイとしての第1のゲートウェイ及び第2のゲートウェイは、第1のクライアント及び第2のクライアントのパブリックネットワークアクセス用のアクセスアドレスを正確に転送することができ、以降、第1のクライアントと第2のクライアントとの間のデータ接続の確立に対して実現基礎を築いて、確立の成功率を向上させる。
1つの実施例において、当該第1のクライアントはまず、前記第1のゲートウェイにおけるネットワークアドレス変換プロトコルの第1のプロトコルタイプ、及び前記第2のゲートウェイにおけるネットワークアドレス変換プロトコルの第2のプロトコルタイプを決定することができ、前記第1のプロトコルタイプ及び前記第2のプロトコルタイプの両方が動的タイプに属すると、前記第1のクライアントから接続テストパケットを受信するステップの実行をトリガーし、しかしながら、本出願の実施例は、当該第1のプロトコルのタイプ又は第2のプロトコルのタイプが動的タイプのプロトコルではない場合にも採用されてもよい。動的タイプのネットワークアドレス変換プロトコルのプロトコルの特性は、当該ネットワークアドレス変換プロトコルを含むゲートウェイがソースクライアントからのアクセスアドレスが記憶しないと、記憶されないソースクライアントから送信された接続データパケットを受信した後に、当該接続データパケットを転送する際に、マッピングされたランダムポートを使用し、ランダムポートのマッピングに基づき接続データパケットが破棄されるリスクが存在し、第1のクライアントと第2のクライアントとの間のホールパンチングは失敗してしまう。動的タイプを含むネットワーク変換アドレスのゲートウェイ(即ち、動的タイプのNATゲートウェイ)が接続データパケットを受信した後に当該接続データパケットを破棄することを回避して、受信された接続データパケットを正確に転送するために、当該動的タイプのネットワーク変換アドレスを含むゲートウェイが相手クライアントのアクセスアドレスを予め記憶しておくことで実現され、第1のクライアントの第1のゲートウェイ及び当該第2のクライアントの第2のゲートウェイの両方は動的タイプのネットワーク変換アドレスを含むゲートウェイであれば、第1のクライアントと第2のクライアントとのホールパンチングの成功を保証するために、まず、当該第1のゲートウェイが第2のクライアントのアクセスアドレスを記憶し、及び当該第2のゲートウェイが第1のクライアントのアクセスアドレスを記憶することで、相手クライアントのアクセスアドレスを、動的タイプのネットワーク変換アドレスを含むゲートウェイに記憶することを実現し、当該第1のゲートウェイ及び当該第2のゲートウェイは、第1のクライアントから第2のクライアントに送信された(又は第2のクライアントから第1のクライアントに送信された)接続データパケットを受信した場合、当該接続データパケットを相手クライアントに転送することを保証することができ、これにより、第1のクライアントと第2のクライアントとの間の通信接続を実現する。
1つの実施例において、当該第1のゲートウェイは、当該第2のクライアントのアクセスアドレスを記憶するために、当該第1のクライアントによって送信された第2のクライアントのアクセスアドレスを含む接続テストパケットを受信した後に、当該接続テストパケットから第2のクライアントのアクセスアドレスを決定して記憶することができ、即ち、S202を実行し、同様に、理解できることとして、当該第2のゲートウェイも、第2のクライアントから第1のクライアントのアクセスアドレスを含む接続テストパケットを取得し、当該接続テストパケットから当該第1のクライアントのアクセスアドレスを決定して記憶する。なお、当該第2のクライアントのアクセスアドレスは、第1のクライアントがプロキシサーバーから予め取得したものであり、当該プロキシサーバーが取得した第2のクライアントのアクセスアドレスは、当該第2のクライアントがネットワークトラバーサルプロトコル(例えば、上記のSTUNプロトコル)を使用して決定され、当該第1のクライアントが第2のクライアントのアクセスアドレスを含む接続テストパケットを生成する方式は、具体的に、当該第2のクライアントが当該第2のクライアントのアクセスアドレスを決定した後に、プロキシサーバーを介して当該第2のクライアントのアクセスアドレスを当該第1のクライアントに送信し、当該第1のクライアントがプロキシサーバーを介して、前記第2のクライアントから前記第1のクライアントに送信された当該第2のクライアントのアクセスアドレスを取得し、当該第2のクライアントのアクセスアドレスを当該接続テストパケットに追加し、当該第2のクライアントのアクセスアドレスが追加された接続テストパケットを当該第1のゲートウェイに送信することである。
第2のクライアントのアクセスアドレスは、当該第2のクライアントがネットワークトラバーサルプロトコルを使用して決定されるので、第2のクライアントのアクセスアドレスを接続テストパケットに含んで第1のゲートウェイに提供して記憶し、以降、前記第1のクライアントと前記第2のクライアントとの間の通信接続の確立に対して基礎を築く。
S202において、前記接続テストパケットに含まれる前記第2のクライアントのアクセスアドレスを記憶する。
S203において、前記第1のクライアントが前記第2のクライアントに送信した接続データパケットを受信する。
S204において、前記第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを受信したかどうかをチェックする。
S205において、第1のアドレス記憶通知メッセージを受信したとチェックすると、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立するように、前記第2のゲートウェイを介して、受信した前記接続データパケットを前記第2のクライアントに送信する。
前記第1のアドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものである。
S202~S205では、当該第1のゲートウェイが第1のクライアントによって送信された接続テストパケットを受信した後に、当該接続テストパケットのパケットヘッダファイルに当該接続テストパケットに対応するソースアドレス情報及び宛先アドレス情報を記録するため、当該第1のゲートウェイは当該接続テストパケットを受信すると、パケットヘッダファイルの記録に基づいて、第2のクライアントのアクセスアドレスを決定することができ、当該第1のゲートウェイは、当該第1のクライアントと同一の端末機器に属してもよいし、当該第1のゲートウェイは、当該第1のクライアントが属する端末機器と独立した装置であってもよく、本出願の実施例において、第1のゲートウェイ及び第1のクライアントが属する装置の間の関係を限定していない。1つの実施例において、当該第1のゲートウェイは当該第2のクライアントのアクセスアドレスを決定した後に、当該接続テストパケットを転送し続けることはなく、つまり、当該接続テストパケットは第1のクライアントから当該第1のゲートウェイに到達するだけで停止し、当該第2のゲートウェイが当該第1のクライアントのアクセスアドレスを記憶しないので、当該第1のゲートウェイは当該接続テストパケットを第2のゲートウェイに転送し続けると、当該第2のゲートウェイは、当該第1のクライアントからの接続テストパケットが見知らぬ接続テストパケットであると判断して、第1のクライアントのアクセスアドレスをブラックリストに登録し、従って、当該第2のゲートウェイが第1のクライアントのアクセスアドレスをブラックリストに登録することを回避し、当該第1のゲートウェイが当該第2のクライアントのアクセスアドレスを記憶するために、当該第1のゲートウェイは、当該接続テストパケットが当該第1のクライアントから第1のゲートウェイにちょうど到達する際で転送を停止するように、該接続テストパケットに対してターゲットルーティング数を設置することができる。
1つの実施例において、前記ターゲットルーティング数(「ターゲットルーティング数」も呼ばれる)は、前記接続テストパケットが前記第1のクライアントから前記第1のゲートウェイまで通過するイントラネットゲートウェイの数を指示するために用いられ、1つのイントラネットゲートウェイに到達するたびに、前記ターゲットルーティング数に対してマイナスワン処理を実行し、マイナスワン処理された当該ターゲットルーティング数が0に達した場合、接続データパケットの転送を停止する。図3aに示すように、当該第1のクライアントは、図3aにおいて符号30としてマークされたクライアントであり、第1のゲートウェイは図3aにおいて符号34としてマークされたゲートウェイであり、図3aにおいて符号31、32、33でマークされたゲートウェイはイントラネットゲートウェイであり、そうすれば、当該第1のクライアント30は接続テストパケットを第1のゲートウェイ34に送信する場合、まず、通過する必要があるイントラネットゲートウェイの数を決定し、当該第1のクライアント30が通過する必要があるイントラネットゲートウェイの数が3つであると、当該第1のクライアントが接続テストパケットに対して設置するターゲットルーティング数は4であり、当該第1のクライアント30は接続テストパケットを第1のゲートウェイ34にちょうど送信するようにし、当該第1のゲートウェイ34が当該接続テストパケットを受信した後に、当該ターゲットルーティング数は0に減少すると、当該第1のゲートウェイは当該接続テストパケットを受信した後に、当該接続テストパケットのパケットヘッダファイルに基づいて、当該第2のゲートウェイのアクセスアドレスを決定し、当該第2のゲートウェイのアクセスアドレスを記憶した後に、当該接続テストパケットを直接に破棄することができる。
1つの実施例において、第1のゲートウェイは、当該第2のクライアントのアクセスアドレスを記憶した後に、当該第1のクライアントが第2のクライアントに送信した、第1のクライアントと第2のクライアントとの間で通信接続を確立するように指示するための接続データパケットを受信した場合、まず、第2のゲートウェイが当該第1のクライアントのアクセスアドレスを記憶したかどうかを判断し、第1のゲートウェイは、当該第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを取得することで、当該第2のゲートウェイが当該第1のクライアントのアクセスアドレスを記憶したかどうかを判断することができる。1つの実施例において、当該第1のゲートウェイは当該第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを受信すると、当該第2のゲートウェイが当該第1のクライアントのアクセスアドレスを記憶したと決定し、当該第1のゲートウェイは当該第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを受信しないと、当該第2のゲートウェイが当該第1のクライアントのアクセスアドレスを記憶していないと決定し、前記第1のアドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものである。当該第1のゲートウェイは、当該第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを受信したと決定した場合、当該第1のクライアントと当該第2のクライアントとが当該接続データパケットに基づいて通信接続を確立するように、当該第2のゲートウェイを介して、取得した接続データパケットを第2のクライアントに送信することができる。
当該第1のクライアントと当該第2のクライアントとが当該接続データパケットに基づいて通信接続を確立した場合、当該第1のゲートウェイが第2のゲートウェイを介して当該接続データパケットを第2のクライアントに送信した後に、当該第2のクライアントは当該接続データパケットを受信したと決定した後に、当該接続データパケットの受信を確認する確認メッセージを第1のクライアントに送信することができ、これまで、当該第1のクライアントと第2のクライアントとの通信接続が完了する。ここで、当該第2のゲートウェイは第1のクライアントと第2のクライアントとの通信接続の確立を開始してもよく、即ち、第2のゲートウェイは、当該第1のクライアントのアクセスアドレスを記憶した後に、第1のゲートウェイから当該第2のクライアントのアクセスアドレスを記憶した通知メッセージを受信し、さらに、第1のクライアントと第2のクライアントとの間で通信接続を確立するように指示する接続データパケットを、第1のクライアントに送信し、これにより、第1のクライアントと第2のクライアントとは当該接続データパケットに基づいて、通信接続を確立させる。
可能な実現形態において、第1のゲートウェイは、第2のクライアントのアクセスアドレスを記憶した後に、第2のアドレス記憶通知メッセージを第2のゲートウェイに送信してもよく、前記第2のアドレス記憶通知メッセージは、前記第1のゲートウェイが前記第2のクライアントのアクセスアドレスを記憶したことを識別するために用いられる。第2のゲートウェイが第1のクライアントと通信接続を確立する必要がある場合、第2のクライアントは、取得した第2のアドレス記憶通知メッセージに基づいて、第1のゲートウェイが第2のクライアントのアクセスアドレスを成功的に保存したかどうかを判ることができ、第1のクライアントと第2のクライアントとの間の通信接続の確立の成功率を向上させる。
本出願の実施例において、第1のゲートウェイは、第1のクライアントと第2のクライアントとの間で通信接続を確立する必要があると決定した場合、当該第1のクライアントによって送信された接続テストパケットを受信することで、当該接続テストのパケットヘッダファイルに基づいて当該第2のクライアントのアクセスアドレスを取得して記憶することができ、さらに、当該第1のゲートウェイは、当該第2のゲートウェイも1のクライアントのアクセスアドレスを記憶したと決定した場合、当該第1のクライアントと当該第2のクライアントとの間で当該接続データパケットに基づいて通信接続を確立するように、第1のクライアントが第2のクライアントに送信した接続データパケットを、第2のゲートウェイを介して第2のクライアントに送信することができる。当該第1のゲートウェイ及び第2のゲートウェイが相手クライアントのアクセスアドレスを予め記憶したため、接続データパケットは当該第1のゲートウェイ及び第2のゲートウェイを介してスムーズに転送され、これにより、第1のクライアントと第2のクライアントとの間で通信接続を確立でき、当該接続データパケットが第1のゲートウェイ又は第2のゲートウェイによって破棄される確率は低いため、第1のクライアントと第2のクライアントとの間で通信接続を確立する成功率を向上させることができる。
1つの実施例において、本出願の実施例で提案される第1のクライアントと第2のクライアントとの間で通信接続を確立するデータ処理方法を採用し、関連技術にかかる第1のクライアントと第2のクライアントとの間の通信接続確立の方法に比べると、図3bに示すように、関連技術を用いて第1のクライアントと第2のクライアントとの通信接続を確立すれば、図3bにおいて符号301としてマークされたテスト結果から分かるように、当該第1のクライアントと当該第2のクライアントとの間の通信接続確立を成功させる確率はただ33%であり、本出願の実施例で提案される方法を用いて第1のクライアントと第2のクライアントとの間の通信接続確立を成功させる確率は94%であり、このように、本出願の実施例で提案されるデータ処理方法を採用すれば、第1のクライアントと第2のクライアントとが通信接続を確立する成功率を効果的に向上させることができる。また、図3cに示すように、本出願の実施例で提案されるデータ処理方法は、さらに、当該第1のクライアント及び第2のクライアントのゲートウェイの両方が動的NATである場合にも適用され得、当該第1のクライアントと第2のクライアントとの間で通信接続を確立し、且つ通信接続確立を成功させる確率は99%であり、このように、本出願の実施例で提案されるデータ処理方法を採用すれば、第1のクライアントと第2のクライアントとの通信接続確立の成功率を効果的に向上させることができる。
図4を参照して、本出願の実施例で提案されるデータ処理方法の概略フローチャート図であり、当該方法は上記の第1のクライアントが搭載された端末機器に適用され得、図4に示すように、当該方法は以下のステップを含む。
S401において、第2のクライアントのアクセスアドレスを含む接続テストパケットを第1のゲートウェイに送信することで、前記第1のゲートウェイが前記接続テストパケットに基づいて前記第2のクライアントのアクセスアドレスを記憶するようにする。
1つの実施例において、第1のクライアントは、接続テストパケットを第1のゲートウェイに送信する場合、まず、プロキシサーバーを介して、ネットワークトラバーサルプロトコルを使用して決定し前記プロキシサーバーに送信される前記第2のクライアントのアクセスアドレスを取得し、当該第2のクライアントのアクセスアドレスを取得した後に、前記第2のクライアントのアクセスアドレスを接続テストパケットに追加し、前記第2のクライアントのアクセスアドレスが追加された接続テストパケットを前記第1のゲートウェイに送信し、なお、当該第1のクライアントは前記第1のプライベートネットワークに属し、前記第2のクライアントは前記第2のプライベートネットワークに属し、当該第1のプライベートネットワークに前記第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられ、つまり、理解できることとして、当該第1のクライアントは当該第1のゲートウェイを介してパブリックネットワークと通信接続を行い、当該第2のクライアントは当該第2のゲートウェイを介してパブリックネットワークと通信接続を行う。第2のクライアントのアクセスアドレスは、当該第2のクライアントがネットワークトラバーサルプロトコルを使用して決定されたため、第2のクライアントのアクセスアドレスを接続テストパケットに含んで第1のゲートウェイに提供し記憶することで、以降、前記第1のクライアントと前記第2のクライアントとの間の通信接続の確立に対して基礎を築く。
同様に、当該第2のクライアントも、当該第1のクライアントと第2のクライアントとが通信接続を確立する必要がある場合、第1のクライアントのアクセスアドレスを含む接続テストパケットを第2のゲートウェイに送信し、当該第2のゲートウェイは接続テストパケットに基づいて、当該第1のクライアントのアクセスアドレスを記憶すると決定するようにし、これにより、当該第1のゲートウェイ及び第2のゲートウェイの両方は相手クライアントのアクセスアドレスに対する記憶を可能にする。
当該第2のゲートウェイが第1のクライアントのアクセスアドレスをブラックリストに登録することを回避し、当該第1のゲートウェイが当該第2のクライアントのアクセスアドレスを記憶するために、当該第1のゲートウェイは、当該接続テストパケットが当該第1のクライアントから第1のゲートウェイに到達した際で転送を停止するように、当該接続テストパケットに対してターゲットルーティング数を設置することができ、1つの実施例において、第1のクライアントは、接続テストパケットを第1のゲートウェイに送信する場合、まず、ターゲットルーティング数を決定することができ、前記ターゲットルーティング数は、前記接続テストパケットが前記第1のクライアントから前記第1のゲートウェイまで通過するイントラネットゲートウェイの数を指示するために用いられ、当該第1のクライアントは当該ターゲットルーティング数を決定した後に、前記ターゲットルーティング数を前記接続テストパケットに追加することができ、接続テストパケットの第1のゲートウェイへの送信中に、前記接続テストパケットが1つのイントラネットゲートウェイに到達するたびに、前記ターゲットルーティング数に対してマイナスワン処理を実行し、マイナスワン処理された前記ターゲットルーティング数がターゲット値を取得した場合、前記第1のゲートウェイに到達し、当該ターゲット値は、例えば0であってもよい。
いずれかのデータパケットは、前記第1のクライアントから前記第1のクライアントの第1のゲートウェイまで、少なくとも1つのイントラネットゲートウェイを通過し、当該第1のクライアントは、当該接続テストパケットに対してターゲットルーティング数を設置する場合、まず、接続要求パケットに対して初期ルーティング数を設置し、前記初期ルーティング数に基づいて、前記接続要求パケットをターゲットゲートウェイに送信することができ、当該接続要求パケットはデータパケットであり、さらに、当該第1のクライアントは前記ターゲットゲートウェイから前記ターゲットゲートウェイのゲートウェイアドレスを取得し、前記ゲートウェイアドレスが前記第1のクライアントのアクセスアドレスであるかどうかを判断し、前記ゲートウェイアドレスが前記第1のクライアントのアクセスアドレスであると決定した場合、前記初期ルーティング数を前記ターゲットルーティング数とする。1つの実施例において、第1のクライアントは、前記ゲートウェイアドレスが前記第1のクライアントのアクセスアドレスではないと決定した場合、前記初期ルーティング数に対してプラスワン処理を実行し、前記第1のクライアントのアクセスアドレスを取得するまで、プラスワン処理された初期ルーティング数に従って前記接続要求パケットを転送し、前記第1のクライアントのアクセスアドレスを取得した際に実行されるプラスワン処理のターゲット数を決定し、ターゲット数に基づいて前記初期ルーティング数を更新し、更新された初期ルーティング数を前記ターゲットルーティング数とし、これにより、ターゲットルーティング数を正確に決定するという目的を実現する。
具体的に、図5に示すように、当該第1のクライアントがまず当該接続要求パケットに対して設置したルーティング数は、当該接続要求パケットの有効期限(TTL)を指示するために用いられ、当該接続要求パケットに対して設置した初期ルーティング数は1、即ち、TTL=1であれば、当該接続要求パケットは当該第1のクライアントからイントラネットゲートウェイ1にしか到達しない可能性がある、それに対応して、当該第1のクライアントはイントラネットゲートウェイ1から当該イントラネットゲートウェイ1のゲートウェイアドレス1を取得でき、当該ゲートウェイアドレス1は、当該イントラネットゲートウェイ1が当該接続要求パケットを受信したと決定した後に、第1のクライアントにフィードバックされ、当該第1のクライアントは当該ゲートウェイアドレス1を取得した後に、当該ゲートウェイアドレス1と当該第1のクライアントのアクセスアドレスとを照合することができ、当該ゲートウェイアドレス1は当該第1のクライアントのアクセスアドレスと異なるため、第1のクライアントはターゲットルーティング数が1であると決定した場合、接続要求パケットをパブリックネットワークと接続された第1のゲートウェイに送信することができない。さらに、当該初期ルーティング数に対してプラスワン処理を実行して、初期ルーティング数は2であり、即ち、TTL=2であり、そうすれば、当該第1のクライアントから、1つのイントラネットゲートウェイを通過するたびに、当該初期ルーティング数(即ち、TTL)に対してマイナスワン処理を実行し、これから分かるように、TTL=2である場合、当該第1のクライアントは当該接続要求パケットをイントラネットゲートウェイ2に送信し、イントラネットゲートウェイ2からフィードバックされたゲートウェイアドレス2を取得し、当該第1のクライアントは、当該ゲートウェイアドレス2が相変わらず当該第1のクライアントのアクセスアドレスではないと決定するので、さらに、当該初期ルーティング数に対してプラスワン処理を実行し、この際の初期ルーティング数は3であり、即ち、TTL=3であり、そうすれば、当該第1のクライアントから、TTL=3になった場合、当該第1のクライアントは当該接続要求パケットを第1のゲートウェイに送信し、第1のゲートウェイからフィードバックされた当該第1のゲートウェイのゲートウェイアドレス3を取得し、当該第1のゲートウェイのゲートウェイアドレス3は当該第1のクライアントのアクセスアドレスであるので、TTL=3はターゲット数であり、第1のクライアントは、第1のクライアントの第1のゲートウェイに到達するターゲットルーティング数が3であると決定する。
S402において、前記第2のゲートウェイによって送信されたアドレス記憶通知メッセージを受信したかどうかをチェックする。
S403において、第1のアドレス記憶通知メッセージを受信したとチェックすると、前記第1のゲートウェイが前記第2のゲートウェイを介して前記接続データパケットを前記第2のクライアントに送信するように、前記第2のクライアントに対する接続データパケットを前記第1のゲートウェイに送信することにより、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立させる。
前記アドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものである。
1つの実施例において、当該第1のクライアントが接続テストパケットを第1のゲートウェイに送信して、第1のゲートウェイが第2のクライアントのアクセスアドレスを記憶した後に、当該第1のクライアントは、第2のゲートウェイによって送信されたアドレス記憶通知メッセージを受信したかどうかに基づいて、当該第2のゲートウェイが当該第1のクライアントのアクセスアドレスを記憶したかどうかを決定することができ、前記アドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものである。当該第1のクライアントは、当該第2のゲートウェイによって送信されたアドレス記憶通知メッセージを受信したと決定した場合、第2のクライアントに送信する必要がある接続データパケットを第1のゲートウェイに送信することができ、当該第1のゲートウェイは当該接続データパケットを第2のゲートウェイに転送するようにし、最後に、第2のクライアントは当該接続データパケットを受信し、これにより、当該第1のクライアントと当該第2のクライアントとは当該接続データパケットに基づいて、通信接続を確立させる。
本出願の実施例において、第1のクライアントは、第1のクライアントと第2のクライアントとの間で通信接続を確立する必要がある場合、第2のクライアントのアクセスアドレスを含んでいる接続テストパケットを第1のゲートウェイに送信することができ、当該第1のゲートウェイは当該接続テストパケットから当該第2のクライアントのアクセスアドレスを取得して記憶し、これにより、第2のクライアントのアクセスアドレスを当該第1のゲートウェイに記憶し、さらに、第1のクライアントは、第2のゲートウェイも当該第1のクライアントのアクセスアドレスを記憶したと決定した場合、当該第1のゲートウェイ及び第2のゲートウェイを介して接続データパケットを第2のクライアントに送信することができ、当該接続データパケットは当該第1のゲートウェイ及び第2のゲートウェイをスムーズに通過して、第2のクライアントに到達し、第1のクライアントと第2のクライアントとは当該接続データパケットに基づいて通信接続を確立させ、第1のクライアントと第2のクライアントとの間で通信接続を確立する成功率を向上させる。
上記のデータ処理方法実施例の記載に基づいて、本出願の実施例はデータ処理装置をさらに提案し、当該データ処理装置は上記の第1のゲートウェイで実行されるコンピュータプログラム(プログラムコードを含む)であってもよい。当該データ処理装置は図2に記載のデータ処理方法の実行に適用され得、図6を参照して、当該データ処理装置は、受信ユニット601と、決定ユニット602と、記憶ユニット603と、送信ユニット604と、を含む。
受信ユニット601は、第1のクライアントによって送信された接続テストパケットを受信するためのものであって、前記接続テストパケットは第2のクライアントのアクセスアドレスを含み、前記第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられる。
決定ユニット602は、前記接続テストパケットに含まれる前記第2のクライアントのアクセスアドレスを決定するように構成される。
記憶ユニット603は、前記第2のクライアントのアクセスアドレスを記憶するように構成される。
前記受信ユニット601は、さらに、前記第1のクライアントが前記第2のクライアントに送信した接続データパケットを受信するように構成される。
前記決定ユニット602はさらに、前記第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを受信したかどうかをチェックするように構成され、前記第1のアドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものである。
送信ユニット804は、第1のアドレス記憶通知メッセージを受信したと前記決定ユニット602により決定された場合に、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立するように、前記第2のゲートウェイを介して、受信した前記接続データパケットを前記第2のクライアントに送信するように構成される。
1つの実施例において、前記第2のクライアントのアクセスアドレスはネットワークトラバーサルプロトコルを使用して決定され、前記受信ユニットは、さらに、前記第1のクライアントによって送信された接続テストパケットを受信する前、前記第2のクライアントが前記第1のクライアントに送信した前記第2のクライアントのアクセスアドレスを、プロキシサーバーを介して取得するように構成される。
1つの実施例において、前記第1のゲートウェイ及び前記第2のゲートウェイの両方はエクストラネットゲートウェイであり、
前記エクストラネットゲートウェイにネットワークアドレス変換プロトコルが配置され、前記ネットワークアドレス変換プロトコルは、クライアントがプライベートネットワークにアクセスする際のクライアントアドレスを、パブリックネットワークアクセス用のアクセスアドレスに変換するために用いられ、
前記第1のクライアントがパブリックネットワークにアクセスする場合、前記第1のゲートウェイは、前記第1のクライアントが前記第1のプライベートネットワークにアクセスするクライアントアドレスを、前記第1のクライアントのアクセスアドレスに変換し、前記第2のクライアントが前記パブリックネットワークにアクセスする場合、前記第2のクライアントが前記第2のプライベートネットワークにアクセスするクライアントアドレスは、前記第2のゲートウェイによって前記第2のクライアントのアクセスアドレスに変換される。
1つの実施例において、前記決定ユニット602は、さらに、前記第1のゲートウェイにおけるネットワークアドレス変換プロトコルの第1のプロトコルタイプ、及び前記第2のゲートウェイにおけるネットワークアドレス変換プロトコルの第2のプロトコルタイプを決定するように構成され、
前記受信ユニット601は、さらに、前記第1のプロトコルタイプ及び前記第2のプロトコルタイプの両方が動的タイプに属すると、前記第1のクライアントによって送信された接続テストパケットの受信を実行するように、前記受信ユニットをトリガーするように構成される。
1つの実施例において、前記接続テストパケットにはターゲットルーティング数が設置されており、前記ターゲットルーティング数は、前記接続テストパケットが前記第1のクライアントから前記第1のゲートウェイまで通過するイントラネットゲートウェイの数を指示するために用いられる。
本出願の実施例において、受信ユニット601は、第1のクライアントと第2のクライアントとの間で通信接続を確立する必要があると決定した場合、当該第1のクライアントによって送信された接続テストパケットを受信することで、当該決定ユニット602は当該接続テストのパケットヘッダファイルに基づいて当該第2のクライアントのアクセスアドレスを取得し、記憶ユニット603に当該第2のクライアントのアクセスアドレスを記憶させ、さらに、決定ユニット602は当該第2のゲートウェイも1のクライアントのアクセスアドレスを記憶したと決定できた場合、送信ユニット604は第2のゲートウェイを介して、第1のクライアントが第2のクライアントに送信した接続データパケットを第2のクライアントに送信し、当該第1のクライアントと当該第2のクライアントとの間で当該接続データパケットに基づいて通信接続を確立させることができる。当該第1のゲートウェイ及び第2のゲートウェイは相手クライアントのアクセスアドレスを予め記憶したため、接続データパケットは当該第1のゲートウェイ及び第2のゲートウェイを介してスムーズに転送され得、これにより、第1のクライアントと第2のクライアントとの間で通信接続を確立でき、当該接続データパケットが第1のゲートウェイ又は第2のゲートウェイによって破棄される確率が低いため、第1のクライアントと第2のクライアントとの間で通信接続を確立する成功率を向上させることができる。
上記のデータ処理方法実施例の記載に基づき、本出願の実施例はデータ処理装置をさらに提案し、当該データ処理装置は上記端末機器に配置され、上記の第1のクライアントで実行されるコンピュータプログラム(プログラムコードを含む)であってもよい。当該データ処理装置は、図4に示されるデータ処理方法の実行に適用され得、図7を参照して、当該データ処理装置は、送信ユニット701と、決定ユニット702とを含む。
送信ユニット701は、前記第2のクライアントのアクセスアドレスを含む接続テストパケットを第1のゲートウェイに送信し、前記第1のゲートウェイに前記接続テストパケットに基づいて前記第2のクライアントのアクセスアドレスを記憶させるように構成され、第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに前記第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられる。
決定ユニット702は、前記第2のゲートウェイによって送信されたアドレス記憶通知メッセージを受信したかどうかをチェックするように構成され、前記アドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものである。
前記送信ユニット701は、さらに、前記アドレス記憶通知メッセージを受信したと前記決定ユニット702により決定された場合、前記第1のゲートウェイが前記第2のゲートウェイを介して前記接続データパケットを前記第2のクライアントに送信するように、前記第2のクライアントの接続データパケットを前記第1のゲートウェイに送信することで、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立させるように構成される。
1つの実施例において、前記送信ユニット701は、具体的に、
プロキシサーバーを介して、前記第2のクライアントのアクセスアドレスを取得し、前記第2のクライアントのアクセスアドレスはネットワークトラバーサルプロトコルを使用して決定され、前記プロキシサーバーに送信され、
前記第2のクライアントのアクセスアドレスを接続テストパケットに追加し、
前記第2のクライアントのアクセスアドレスが追加された前記接続テストパケットを前記第1のゲートウェイに送信する、ように構成される。
1つの実施例において、前記装置は、
ターゲットルーティング数を決定するように構成され、前記ターゲットルーティング数は、前記接続テストパケットが、前記第1のクライアントから前記第1のゲートウェイまで、通過するイントラネットゲートウェイの数を指示するために用いられる決定ユニット702と、
前記ターゲットルーティング数を前記接続テストパケットに追加するように構成され、前記送信ユニット701による第1のゲートウェイへの接続テストパケットの送信中に、前記接続テストパケットが1つのイントラネットゲートウェイに到達するたびに、前記ターゲットルーティング数に対してマイナスワン処理を実行し、マイナスワン処理された前記ターゲットルーティング数がターゲット値に達した際に、前記接続テストパケットは前記第1のゲートウェイに到達する追加ユニット703と、をさらに含む。
1つの実施例において、いずれかのデータパケットは、前記第1のクライアントから前記第1のクライアントの第1のゲートウェイまで、少なくとも1つのイントラネットゲートウェイを通過し、前記装置は、設置ユニット704と、判断ユニット705と、をさらに含む。
設置ユニット704は、接続要求パケットに対して初期ルーティング数を設置するように構成される。
前記送信ユニット701は、さらに、前記初期ルーティング数に基づいて、前記接続要求パケットを前記第1のプライベートネットワークのターゲットゲートウェイに送信するように構成され、前記接続要求パケットはデータパケットである。
判断ユニット705は、前記ターゲットゲートウェイから取得した前記ターゲットゲートウェイのゲートウェイアドレスが前記第1のクライアントのアクセスアドレスであるかどうかを判断するように構成される。
前記決定ユニット702は、さらに、前記ゲートウェイアドレスが前記第1のクライアントのアクセスアドレスであると決定した場合、前記初期ルーティング数を前記ターゲットルーティング数とするように構成される。
1つの実施例において、前記装置は、実行ユニット706と、更新ユニット707とをさらに含む。
前記実行ユニット706は、前記ゲートウェイアドレスが前記第1のクライアントのアクセスアドレスではないと決定した場合、前記初期ルーティング数に対してプラスワン処理を実行するように構成される。
前記送信ユニット701は、さらに、前記第1のクライアントのアクセスアドレスを取得するまで、プラスワン処理された初期ルーティング数に従って、前記第1のプライベートネットワークにおいて前記接続要求パケットを転送するように構成される。
前記決定ユニット702は、さらに、前記第1のクライアントのアクセスアドレスを取得した際に実行されるプラスワン処理のターゲット数を決定するように構成される。
前記更新ユニット707は、ターゲット数に基づいて、前記初期ルーティング数を更新し、更新された初期ルーティング数を前記ターゲットルーティング数とするように構成される。
本出願の実施例において、送信ユニット701は、第1のクライアントと第2のクライアントとの間で通信接続を確立する必要がある場合、第2のクライアントのアクセスアドレスを含んでいる接続テストパケットを第1のゲートウェイに送信し、当該第1のゲートウェイが当該接続テストパケットから当該第2のクライアントのアクセスアドレスを取得して記憶することにより、第2のクライアントのアクセスアドレスを当該第1のゲートウェイに記憶し、さらに、第2のゲートウェイも当該第1のクライアントのアクセスアドレスを記憶したと決定した場合、送信ユニット701は接続データパケットを当該第1のゲートウェイ及び第2のゲートウェイを介して第2のクライアントに送信することで、当該接続データパケットは当該第1のゲートウェイ及び第2のゲートウェイをスムーズに通過して、第2のクライアントに到達し、これにより、第1のクライアントと第2のクライアントとは当該接続データパケットに基づく通信接続確立を実現し、第1のクライアントと第2のクライアントとの間で通信接続を確立する成功率を向上させる。
図8を参照して、本出願の実施例で提供されるゲートウェイ機器の概略構造ブロック図であり、当該ゲートウェイ機器は上記の第1のゲートウェイであり、当該ゲートウェイ機器はサーバーであってもよく、サーバーは独立した物理サーバーであってもよく、複数の物理サーバーからなるサーバークラスタ又は分散システムであってもよく、クラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウドストレージ、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメイン名サービス、セキュリティーサービス、CDN、ビッグデータ及び人工知能プラットフォームなどの基本的なクラウドコンピューティングサービスを提供するクラウドサーバーであってもよい。端末はスマートフォン、タブレットコンピュータ、ノートコンピュータ、デスクトップコンピュータ、スマートスピーカー、スマートウォッチなどであってもよいが、これらに限定されていない。又は、当該ゲートウェイ機器は端末機器であってもよい。図8に示すように、本実施例におけるゲートウェイ機器は、1つ又は複数のプロセッサー801、1つ又は複数の入力機器802、1つ又は複数の出力機器803及びメモリ804を含む。上記のプロセッサー801、入力機器802、出力機器803及びメモリ804はバス805によって接続される。メモリ804はコンピュータプログラムを記憶するように構成され、前記コンピュータプログラムはプログラム命令を含み、プロセッサー801は前記メモリ804に記憶されたプログラム命令を実行するために用いられる。
前記メモリ804は、例えばランダムアクセスメモリ(random―access memory、RAM)のような揮発性メモリ(volatile memory)を含んでもよいし、例えばフラッシュメモリ(flash memory)、ソリッドステートドライブ(solid―state drive、SSD)などの非揮発性メモリ(non―volatile memory)を含んでもよく、上記のタイプのメモリの組み合わせをさらに含んでもよい。
前記プロセッサー801は中央処理装置(central processing unit、CPU)であってもよい。前記プロセッサー801はハードウェアチップをさらに含んでもよい。上記のハードウェアチップは特定用途向け集積回路(application―specific integrated circuit、ASIC)、プログラマブルロジックデバイス(programmable logic device、PLD)などであってもよい。当該PLDはフィールドプログラマブルゲートアレイ(field―programmable gate array、FPGA)、汎用アレイロジック(generic array logic、GAL)などであってもよい。前記プロセッサー801は上記の構成の組み合わせであってもよい。
本出願の実施例において、前記メモリ804は、プログラム命令を含むコンピュータプログラムを記憶するために用いられ、プロセッサー801はメモリ804に記憶されたプログラム命令を実行することで、上記の図2の対応する方法のステップを実現させるために用いられる。
1つの実施例において、前記プロセッサー801は、前記プログラム命令を呼び出して、
前記第1のクライアントによって送信された接続テストパケットを受信するステップであって、前記接続テストパケットは前記第2のクライアントのアクセスアドレスを含み、前記第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられるステップと、
前記接続テストパケットに含まれる前記第2のクライアントのアクセスアドレスを記憶するステップと、
前記第1のクライアントが前記第2のクライアントに送信した接続データパケットを受信した場合、前記第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを受信すると、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立するように、前記第2のゲートウェイを介して前記接続データパケットを前記第2のクライアントに送信するステップであって、前記第1のアドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものであるステップと、を実行するように配置される。
図9を参照して、本出願の実施例で提供される端末機器の概略構造ブロック図であり、当該端末機器は上記の第1のクライアントである。図9に示すように、本実施例の端末機器は、1つ又は複数のプロセッサー901、1つ又は複数の入力機器902、1つ又は複数の出力機器903及びメモリ904を含んでもよい。上記のプロセッサー901、入力機器902、出力機器903及びメモリ904はバス905によって接続される。メモリ904はプログラム命令を含むコンピュータプログラムを記憶するために用いられ、プロセッサー901は前記メモリ904に記憶されたプログラム命令を実行するために用いられる。
前記メモリ904は、例えばランダムアクセスメモリ(random―access memory、RAM)のような揮発性メモリ(volatile memory)を含んでもよく、例えばフラッシュメモリ(flash memory)、ソリッドステートドライブ(solid―state drive、SSD)などの非揮発性メモリ(non―volatile memory)を含んでもよく、さらに、上記のタイプのメモリの組み合わせを含んでもよい。
前記プロセッサー901は中央処理装置(central processing unit、CPU)であってもよい。前記プロセッサー901はハードウェアチップをさらに含んでもよい。上記のハードウェアチップは特定用途向け集積回路(application―specific integrated circuit、ASIC)、プログラマブルロジックデバイス(programmable logic device、PLD)などであってもよい。当該PLDはフィールドプログラマブルゲートアレイ(field―programmable gate array、FPGA)、汎用アレイロジック(generic array logic、GAL)などであってもよい。前記プロセッサー901は上記の構成の組み合わせであってもよい。
本出願の実施例において、前記メモリ904はプログラム命令を含むコンピュータプログラムを記憶するために用いられ、プロセッサー901はメモリ904に記憶されたプログラム命令を実行することで、上記の図4の対応する方法のステップを実現するために用いられる。
1つの実施例において、前記プロセッサー901は、前記プログラム命令を呼び出して、
前記第2のクライアントのアクセスアドレスを含む接続テストパケットを第1のゲートウェイに送信し、前記第1のゲートウェイが前記接続テストパケットに基づいて前記第2のクライアントのアクセスアドレスを記憶するステップであって、前記第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに前記第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられるステップと、
前記第2のゲートウェイによって送信されたアドレス記憶通知メッセージを受信した場合、前記第1のゲートウェイが前記第2のゲートウェイを介して前記接続データパケットを前記第2のクライアントに送信するように、前記第2のクライアントに送信された接続データパケットを前記第1のゲートウェイに送信することで、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立させるステップであって、前記アドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものであるステップと、を実行するように配置される。
本出願の実施例はコンピュータプログラム製品又はコンピュータプログラムを提供し、当該コンピュータプログラム製品又はコンピュータプログラムはコンピュータプログラムを含み、当該コンピュータプログラムはコンピュータ可読記憶媒体に記憶される。コンピュータ機器のプロセッサーはコンピュータ可読記憶媒体から当該コンピュータプログラムを読み取って実行することで、上記の図2又は図4に示される方法実施例を当該コンピュータ機器に実行させる。上記コンピュータ可読記憶媒体は磁気ディスク、光ディスク、読み取り専用メモリ(Read―Only Memory、ROM)又はランダムアクセスメモリ(Random Access Memory、RAM)などであってもよい。
本出願の実施例は命令を含むコンピュータプログラム製品をさらに提供し、コンピュータで運行されると、上記の実施例で提供される方法をコンピュータに実行させる。
以上は、本出願の好適な実施例に過ぎず、本出願の範囲はこれに限定されるものではなく、当業者であれば、上述した実施例の全部または一部のプロセスを理解することができ、本出願の特許請求の範囲に従って行われる同等の変更は、依然として発明の範囲内にある。

Claims (17)

  1. 第1のゲートウェイが実行するデータ処理方法であって、
    第1のクライアントによって送信された接続テストパケットを受信するステップであって、前記接続テストパケットは第2のクライアントのアクセスアドレスを含み、前記第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに前記第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられるステップと、
    前記接続テストパケットに含まれる前記第2のクライアントのアクセスアドレスを記憶するステップと、
    前記第1のクライアントが前記第2のクライアントに送信した接続データパケットを受信するステップと、
    前記第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを受信したかどうかをチェックするステップであって、前記第1のアドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものであるステップと、
    第1のアドレス記憶通知メッセージを受信したとチェックすると、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立するように、受信した前記接続データパケットを前記第2のゲートウェイを介して前記第2のクライアントに送信するステップと、を含む
    方法。
  2. 前記第2のクライアントのアクセスアドレスは、ネットワークトラバーサルプロトコルを使用して決定され、前記第1のクライアントによって送信された接続テストパケットを受信する前に、
    プロキシサーバーを介して、前記第2のクライアントが前記第1のクライアントに送信した前記第2のクライアントのアクセスアドレスを取得するステップをさらに含む
    請求項1に記載の方法。
  3. 前記接続テストパケットに含まれる前記第2のクライアントのアクセスアドレスを記憶した後に、
    第2のアドレス記憶通知メッセージを前記第2のゲートウェイに送信するステップをさらに含み、
    前記第2のアドレス記憶通知メッセージは、前記第1のゲートウェイが前記第2のクライアントのアクセスアドレスを記憶したことを識別するために用いられる
    請求項1に記載の方法。
  4. 前記第1のゲートウェイ及び前記第2のゲートウェイの両方はエクストラネットゲートウェイであり、
    前記エクストラネットゲートウェイにネットワークアドレス変換プロトコルが配置されており、前記ネットワークアドレス変換プロトコルは、クライアントがプライベートネットワークにアクセスする際のクライアントアドレスを、パブリックネットワークアクセス用のアクセスアドレスに変換するために用いられ、
    前記第1のクライアントがパブリックネットワークにアクセスする場合、前記第1のゲートウェイは、前記第1のクライアントが前記第1のプライベートネットワークにアクセスするクライアントアドレスを、前記第1のクライアントのアクセスアドレスに変換し、前記第2のクライアントが前記パブリックネットワークにアクセスする場合、前記第2のクライアントが前記第2のプライベートネットワークにアクセスするクライアントアドレスは、前記第2のゲートウェイによって前記第2のクライアントのアクセスアドレスに変換される
    請求項1に記載の方法。
  5. 前記第1のクライアントによって送信された接続テストパケットを受信する前に、
    前記第1のゲートウェイにおけるネットワークアドレス変換プロトコルの第1のプロトコルタイプ、及び前記第2のゲートウェイにおけるネットワークアドレス変換プロトコルの第2のプロトコルタイプを決定するステップと、
    前記第1のプロトコルタイプ及び前記第2のプロトコルタイプの両方が動的タイプに属すると、前記第1のクライアントによって送信された接続テストパケットを受信するステップの実行をトリガーするステップと、をさらに含む
    請求項4に記載の方法。
  6. 前記接続テストパケットにはターゲットルーティング数が設置されており、前記ターゲットルーティング数は、前記接続テストパケットが、前記第1のクライアントから前記第1のゲートウェイまで、通過するイントラネットゲートウェイの数を指示するために用いられる
    請求項1に記載の方法。
  7. 端末機器が実行するデータ処理方法であって、
    第1のゲートウェイが接続テストパケットに基づいて第2のクライアントのアクセスアドレスを記憶するように、前記接続テストパケットを前記第1のゲートウェイに送信するステップであって、前記接続テストパケットは第2のクライアントのアクセスアドレスを含み、第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに前記第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられるステップと、
    前記第2のゲートウェイによって送信されたアドレス記憶通知メッセージを受信したかどうかをチェックするステップであって、前記アドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものであるステップと、
    第1のアドレス記憶通知メッセージを受信したとチェックすると、前記第1のゲートウェイが前記第2のゲートウェイを介して接続データパケットを前記第2のクライアントに送信するように、前記第2のクライアントに対する前記接続データパケットを前記第1のゲートウェイに送信することで、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立させるステップと、を含む
    方法。
  8. 接続テストパケットを前記第1のゲートウェイに送信するステップは、
    プロキシサーバーを介して前記第2のクライアントのアクセスアドレスを取得するステップであって、前記第2のクライアントのアクセスアドレスはネットワークトラバーサルプロトコルを使用して決定され、前記プロキシサーバーに送信されるステップと、
    前記第2のクライアントのアクセスアドレスを接続テストパケットに追加するステップと、
    前記第2のクライアントのアクセスアドレスが追加された前記接続テストパケットを、 前記第1のゲートウェイに送信するステップと、を含む
    請求項7に記載の方法。
  9. 前記接続テストパケットが、前記第1のクライアントから前記第1のゲートウェイまで、通過するイントラネットゲートウェイの数を指示するためのターゲットルーティング数を決定するステップと、
    前記ターゲットルーティング数を前記接続テストパケットに追加するステップであって、接続テストパケットの第1のゲートウェイへの送信中に、前記接続テストパケットが1つのイントラネットゲートウェイに到達するたびに、前記ターゲットルーティング数に対してマイナスワン処理を実行し、前記接続テストパケットは、前記マイナスワン処理されたターゲットルーティング数がターゲット値に達した際で前記第1のゲートウェイに到達するステップと、をさらに含む
    請求項7に記載の方法。
  10. いずれかのデータパケットは、前記第1のクライアントから第1のゲートウェイまで、少なくとも1つのイントラネットゲートウェイを通過し、前記ターゲットルーティング数を決定するステップは、
    接続要求パケットに対して初期ルーティング数を設置するステップと、
    前記初期ルーティング数に基づいて、前記接続要求パケットを前記第1のプライベートネットワークのターゲットゲートウェイに送信するステップであって、前記接続要求パケットはデータパケットであるステップと、
    前記ターゲットゲートウェイから取得した前記ターゲットゲートウェイのゲートウェイアドレスが前記第1のクライアントのアクセスアドレスであるかどうかを判断するステップと、
    前記ゲートウェイアドレスが前記第1のクライアントのアクセスアドレスであると決定した場合、前記初期ルーティング数を前記ターゲットルーティング数とするステップと、を含む
    請求項9に記載の方法。
  11. 前記ゲートウェイアドレスが前記第1のクライアントのアクセスアドレスではないと決定した場合、前記初期ルーティング数に対してプラスワン処理を実行するステップと、
    前記第1のクライアントのアクセスアドレスを取得するまで、プラスワン処理された初期ルーティング数に従って、前記第1のプライベートネットワークにおいて前記接続要求パケットを転送するステップと、
    前記第1のクライアントのアクセスアドレスを取得した際に実行されるプラスワン処理のターゲット数を決定するステップと、
    前記ターゲット数に基づいて前記初期ルーティング数を更新し、更新された初期ルーティング数を前記ターゲットルーティング数とするステップと、をさらに含む
    請求項10に記載の方法。
  12. データ処理装置であって、受信ユニットと、決定ユニットと、記憶ユニットと、送信ユニットとを含み、
    前記受信ユニットは、第1のクライアントによって送信された接続テストパケットを受信するように構成され、前記接続テストパケットは第2のクライアントのアクセスアドレスを含み、前記第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられ、
    前記決定ユニットは、前記接続テストパケットに含まれる前記第2のクライアントのアクセスアドレスを決定するように構成され、
    前記記憶ユニットは、前記第2のクライアントのアクセスアドレスを記憶するように構成され、
    前記受信ユニットは、さらに、前記第1のクライアントが前記第2のクライアントに送信した接続データパケットを受信するように構成され、
    前記決定ユニットは、さらに、前記第2のゲートウェイによって送信された第1のアドレス記憶通知メッセージを受信したかどうかをチェックするように構成され、前記第1のアドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものであり、
    前記送信ユニットは、前記第1のアドレス記憶通知メッセージを受信したと前記決定ユニットによって決定された場合、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立するように、前記第2のゲートウェイを介して、受信した前記接続データパケットを前記第2のクライアントに送信するように構成される
    装置。
  13. データ処理装置であって、
    第1のゲートウェイが接続テストパケットに基づいて第2のクライアントのアクセスアドレスを記憶するように、前記第1のゲートウェイに前記接続テストパケットを送信するように構成され、前記接続テストパケットは第2のクライアントのアクセスアドレスを含み、第1のクライアントは第1のプライベートネットワークに属し、前記第2のクライアントは第2のプライベートネットワークに属し、前記第1のプライベートネットワークに前記第1のゲートウェイが設けられ、前記第2のプライベートネットワークに第2のゲートウェイが設けられる送信ユニットと、
    前記第2のゲートウェイによって送信されたアドレス記憶通知メッセージを受信したかどうかをチェックするように構成され、前記アドレス記憶通知メッセージは、前記第2のゲートウェイが前記第1のクライアントのアクセスアドレスを記憶した後に送信するものである決定ユニットと、を含み、
    前記送信ユニットは、さらに、前記アドレス記憶通知メッセージを受信したと前記決定ユニットによって決定された場合、前記第1のゲートウェイが前記第2のゲートウェイを介して接続データパケットを前記第2のクライアントに送信するように、前記第2のクライアントに対する接続データパケットを前記第1のゲートウェイに送信することで、前記第1のクライアントと前記第2のクライアントとが前記接続データパケットに基づいて通信接続を確立させるように構成される
    装置。
  14. ゲートウェイ機器であって、プロセッサー、入力機器、出力機器、及びメモリを含み、前記プロセッサー、前記入力機器、前記出力機器、及び前記メモリは互いに接続され、前記メモリはコンピュータプログラムを記憶するように構成され、前記コンピュータプログラムはプログラム命令を含み、前記プロセッサーは、前記プログラム命令を呼び出して、請求項1~6のいずれか1項に記載の方法を実行するように配置される
    ゲートウェイ機器。
  15. 端末機器であって、プロセッサー、入力機器、出力機器及びメモリを含み、前記プロセッサー、前記入力機器、前記出力機器及び前記メモリは互いに接続され、前記メモリはコンピュータプログラムを記憶するように構成され、前記コンピュータプログラムはプログラム命令を含み、前記プロセッサーは、前記プログラム命令を呼び出して、請求項7~11のいずれか1項に記載の方法を実行するように配置される
    端末機器。
  16. コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、前記コンピュータプログラムは第1のプログラム命令及び第2のプログラム命令を含み、前記第1のプログラム命令はプロセッサーによって実行されると、請求項1~6のいずれか1項に記載の方法を前記プロセッサーに実行させ、前記第2のプログラム命令はプロセッサーによって実行されると、請求項7~11のいずれか1項に記載の方法を前記プロセッサーに実行させる
    コンピュータ可読記憶媒体。
  17. 命令を含むコンピュータプログラム製品であって、コンピュータで実行されると、請求項1~6のいずれか1項に記載の方法、又は請求項7~11のいずれか1項に記載の方法を前記コンピュータに実行させる
    コンピュータプログラム製品。
JP2023518856A 2020-11-10 2021-10-26 データ処理方法、装置、関連機器及び記憶媒体 Active JP7531697B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202011246040.6A CN112073540B (zh) 2020-11-10 2020-11-10 数据处理方法、装置、相关设备及存储介质
CN202011246040.6 2020-11-10
PCT/CN2021/126230 WO2022100425A1 (zh) 2020-11-10 2021-10-26 数据处理方法、装置、相关设备及存储介质

Publications (2)

Publication Number Publication Date
JP2023542398A true JP2023542398A (ja) 2023-10-06
JP7531697B2 JP7531697B2 (ja) 2024-08-09

Family

ID=73655054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023518856A Active JP7531697B2 (ja) 2020-11-10 2021-10-26 データ処理方法、装置、関連機器及び記憶媒体

Country Status (5)

Country Link
US (1) US20230031062A1 (ja)
EP (1) EP4181436B1 (ja)
JP (1) JP7531697B2 (ja)
CN (1) CN112073540B (ja)
WO (1) WO2022100425A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073540B (zh) * 2020-11-10 2021-02-12 腾讯科技(深圳)有限公司 数据处理方法、装置、相关设备及存储介质
US20220159029A1 (en) * 2020-11-13 2022-05-19 Cyberark Software Ltd. Detection of security risks based on secretless connection data
CN115514572A (zh) * 2022-09-28 2022-12-23 泉州砾鹰石科技有限公司 一种提高webrtc p2p打洞成功效率的方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676579B2 (en) 2002-05-13 2010-03-09 Sony Computer Entertainment America Inc. Peer to peer network communication
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
US20070253418A1 (en) * 2006-04-27 2007-11-01 D.S.P. Group Ltd. Routing path optimization between sip endpoints
US8631155B2 (en) * 2007-06-29 2014-01-14 Microsoft Corporation Network address translation traversals for peer-to-peer networks
US9124598B2 (en) * 2011-06-27 2015-09-01 Kaseya Limited Method and apparatus of establishing a connection between devices using cached connection information
CN102497446B (zh) * 2011-12-26 2015-04-15 杭州华三通信技术有限公司 一种穿越nat设备的业务流传输方法及装置
CN102685268B (zh) * 2012-05-22 2015-02-18 北京邮电大学 一种VoIP中基于ICE协议的快速私网穿越方法
TWI527407B (zh) * 2014-03-18 2016-03-21 國立交通大學 會談感知的網路位址轉換穿透方法
CN105282264B (zh) * 2014-07-17 2019-01-25 中国电信股份有限公司 非对称nat环境下进行tcp通信的方法、终端、nps和系统
CN106534393B (zh) * 2015-09-15 2019-09-03 中国电信股份有限公司 实现nat设备穿越的方法和系统
US10530736B2 (en) * 2016-01-19 2020-01-07 Cisco Technology, Inc. Method and apparatus for forwarding generic routing encapsulation packets at a network address translation gateway
WO2018017011A1 (en) * 2016-07-18 2018-01-25 Sixscape Communications Pte. Ltd. Apparatus for communication with a second apparatus and method of operation thereof
EP3703331B1 (en) * 2019-02-27 2021-04-14 Ovh Systems and methods for network management
CN109951562B (zh) * 2019-03-29 2020-12-25 深圳市网心科技有限公司 Nat穿透方法和系统、电子设备和存储介质
CN111193813B (zh) * 2019-10-24 2021-07-20 腾讯科技(深圳)有限公司 确定nat类型的测试请求处理方法、装置和计算机设备
CN111314498B (zh) * 2020-01-21 2022-05-24 浪潮云信息技术股份公司 网络地址转换方法和nat网关
CN112073540B (zh) * 2020-11-10 2021-02-12 腾讯科技(深圳)有限公司 数据处理方法、装置、相关设备及存储介质

Also Published As

Publication number Publication date
WO2022100425A1 (zh) 2022-05-19
CN112073540B (zh) 2021-02-12
EP4181436B1 (en) 2024-05-01
EP4181436C0 (en) 2024-05-01
US20230031062A1 (en) 2023-02-02
EP4181436A1 (en) 2023-05-17
JP7531697B2 (ja) 2024-08-09
CN112073540A (zh) 2020-12-11
EP4181436A4 (en) 2023-05-24

Similar Documents

Publication Publication Date Title
JP7531697B2 (ja) データ処理方法、装置、関連機器及び記憶媒体
US10630730B2 (en) NAT traversal for media conferencing
CA2792634C (en) System and method for providing a virtual peer-to-peer environment
EP1892887B1 (en) Communication method between communication devices and communication apparatus
KR101263783B1 (ko) 릴레이 서버를 이용한 데이터 전송 시스템 및 방법
US20080215669A1 (en) System and Method for Peer-to-Peer Connection of Clients Behind Symmetric Firewalls
US9578126B1 (en) System and method for automatically discovering wide area network optimized routes and devices
JP2008515067A (ja) ピア・ツー・ピア接続の確立方法
CN112073545B (zh) 使用dns来传送服务器设备的mp-tcp能力
US20090147795A1 (en) TCP Traversal Through Network Address Translators (NATS)
Srirama et al. Tcp hole punching approach to address devices in mobile networks
US20190141009A1 (en) Session moderator for turn-pattern tcp-packet relay with websocket instantiation
US8891518B2 (en) Routing device and method of translating addresses in cascade in a network
JP6293902B2 (ja) ブラウザ発信プロシージャのためのモバイルデバイスベースのプロキシ
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
KR101586058B1 (ko) Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법
JP6930585B2 (ja) 中継装置、ネットワークシステムおよびネットワーク制御方法
EP3629528A1 (en) Method and apparatus for forwarding packets from a first network to a second network
KR20150089894A (ko) 쿠키 프락시 기능을 구비한 네트워크 주소 변환 장치 및 쿠키 프락시 기능을 지원하는 네트워크 주소 변환 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230323

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240610

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: 20240701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240730

R150 Certificate of patent or registration of utility model

Ref document number: 7531697

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150