(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-06
(45)【発行日】2022-10-17
(54)【発明の名称】データ伝送方法、装置、コンピュータ読み取り可能な媒体および電子デバイス
(51)【国際特許分類】
H04L 47/41 20220101AFI20221007BHJP
H04L 47/43 20220101ALI20221007BHJP
【FI】
H04L47/41
H04L47/43
(21)【出願番号】P 2021515152
(86)(22)【出願日】2019-12-13
(86)【国際出願番号】 CN2019125125
(87)【国際公開番号】W WO2020140729
(87)【国際公開日】2020-07-09
【審査請求日】2021-03-18
(31)【優先権主張番号】201910004540.X
(32)【優先日】2019-01-03
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】▲孫▼ ▲飛▼▲虎▼
(72)【発明者】
【氏名】▲張▼ 丹
(72)【発明者】
【氏名】▲ハオ▼ 晶晶
(72)【発明者】
【氏名】▲寧▼ 斌▲暉▼
【審査官】鈴木 香苗
(56)【参考文献】
【文献】特開2011-061253(JP,A)
【文献】特開2014-135719(JP,A)
【文献】特開2010-114692(JP,A)
【文献】米国特許出願公開第2017/0134261(US,A1)
【文献】特表2013-515400(JP,A)
【文献】米国特許出願公開第2018/0027097(US,A1)
【文献】青柳 禎矩 ほか,Shepherd:利用者主導型仮想プライベート・サブネットワーク構築機構 Shepherd: A User-led Virtual Private SubNetwork Construction Architecture,電子情報通信学会技術研究報告 Vol.106 No.577 IEICE Technical Report,日本,社団法人電子情報通信学会,2007年03月01日,pp.227-232
(58)【調査した分野】(Int.Cl.,DB名)
H04L 47/41
H04L 47/43
(57)【特許請求の範囲】
【請求項1】
サーバによって実行されるデータ伝送方法であって、
第1デバイスによって複数のデータチャネルを介して送信された第1データパケットを受信するステップと、
前記第1データパケットを解析して前記第1デバイスのアドレス情報を取得し、前記第1データパケットのデータパケットヘッダーに基づいて、前記第1データパケットに対して集約処理を実行して、第2データパケットを取得するステップと、
前記第2データパケットのソースアドレス情報を指定アドレス情報に変更して、第3データパケットを取得するステップと、
前記第3データパケットを第2デバイスに送信するステップであって、前記第2デバイスは、前記第1デバイスがアクセスする必要のあるデバイスであるステップと、
前記第1デバイスが第1データパケットを送信する際に採用したデータチャネルのネットワーク状態を前記第1デバイスに送信することにより、前記第1デバイスが前記ネットワーク状態に基づいてデータパケットを再び送信する際に、採用したデータチャネルを選択するステップと、
を含むことを特徴とするデータ伝送方法。
【請求項2】
前記第1デバイスによって複数のデータチャネルを介して送信された第1データパケットを受信した後、前記第1データパケットを解析して、前記第1デバイスがアクセスする必要のあるアドレス情報を取得し、前記第1デバイスがアクセスする必要のあるアドレス情報に基づいて、前記第2デバイスを決定するステップと、
前記第1デバイスがアクセスする必要のあるアドレス情報を記憶するステップと、をさらに含む、
ことを特徴とする請求項1に記載のデータ伝送方法。
【請求項3】
前記記憶されている、第1デバイスがアクセスする必要のあるアドレス情報に基づいて、前記第2デバイスによって送信されたデータパケットから、前記第1デバイスに送信する必要のある第4データパケットを決定するステップと、
前記第4データパケットの宛先アドレス情報を前記第1デバイスのアドレス情報に変更して、第5データパケットを取得するステップと、
前記第5データパケットを、1つまたは複数のデータチャネルを介して前記第1デバイスに送信するステップと、をさらに含む、
ことを特徴とする請求項2に記載のデータ伝送方法。
【請求項4】
前記記憶されている、第1デバイスがアクセスする必要のあるアドレス情報に基づいて、前記第2デバイスによって送信されたデータパケットから、前記第1デバイスに送信する必要のある第4データパケットを決定するステップは、
前記第2デバイスによって送信されたデータパケットのソースアドレス情報を決定するステップと、
前記第1デバイスがアクセスする必要のあるアドレス情報に基づいて、前記第2デバイスによって送信されたデータパケットから、前記ソースアドレス情報と、前記第1デバイスがアクセスする必要のあるアドレス情報とがマッチングしているデータパケットをフィルタリングし、フィルタリングされたデータパケットを前記第4データパケットとするステップと、を含む、
ことを特徴とする請求項3に記載のデータ伝送方法。
【請求項5】
前記第1デバイスによって送信された第1データパケットを受信した場合、前記データ伝送方法は、
前記第1デバイスに仮想ポートを割り当てるステップと、
前記第1デバイスのアドレス情報を、前記第1デバイスに割り当てられた仮想ポートと関連付けて記憶するステップであって、前記指定アドレス情報には、前記第1デバイスに割り当てられた仮想ポートが含まれるステップと、をさらに含む、
ことを特徴とする請求項3に記載のデータ伝送方法。
【請求項6】
前記第4データパケットの宛先アドレス情報には、前記仮想ポートの情報が含まれ、前記第4データパケットの宛先アドレス情報を前記第1デバイスのアドレス情報に変更する前に、前記データ伝送方法は、
前記第4データパケットの宛先アドレス情報に含まれる仮想ポートの情報に基づいて、記憶されている前記第1デバイスのアドレス情報を取得するステップ、をさらに含む、
ことを特徴とする請求項5に記載のデータ伝送方法。
【請求項7】
前記第1デバイスによって送信された、前記第1データパケットを伝送するためのデータチャネルの情報を受信して記憶するステップ、をさらに含み、
前記第5データパケットを、1つまたは複数のデータチャネルを介して前記第1デバイスに送信するステップは、記憶されている最新のデータチャネル情報に基づいて、前記第5データパケットを前記第1デバイスに送信するステップ、を含む、
ことを特徴とする請求項3に記載のデータ伝送方法。
【請求項8】
前記第1デバイスによって送信された第1データパケットに対する受信状況に基づいて、前記第1デバイスが第1データパケットを送信する際に採用したデータチャネルのネットワーク状態を決定するステップ、をさらに含み、
前記第5データパケットを、1つまたは複数のデータチャネルを介して前記第1デバイスに送信するステップは、前記第1デバイスが第1データパケットを送信する際に採用したデータチャネルのネットワーク状態に基づいて、1つまたは複数のデータチャネルを選択して前記第5データパケットを前記第1デバイスに送信するステップ、を含む、
ことを特徴とする請求項3に記載のデータ伝送方法。
【請求項9】
前記第1デバイスによって送信された第1データパケットに対する受信状況に基づいて、前記第1デバイスが第1データパケットを送信する際に採用したデータチャネルのネットワーク状態を決定するステップは、
前記第1デバイスによって送信された第1データパケットを受信した第1時刻と、前記第1デバイスによって送信された第1データパケットに含まれる第2時刻とに基づいて、前記第1デバイスによって送信された第1データパケットの遅延を計算するステップであって、前記第2時刻は、前記第1デバイスが第1データパケットを送信した時刻と、前記サーバと前記第1デバイスとの間のクロック同期補償値とに基づいて決定されたものであるステップと、
前記第1デバイスによって送信された第1データパケットの遅延に基づいて、前記第1デバイスが第1データパケットを送信する際に採用したデータチャネルのネットワーク状態を決定するステップと、を含む、
ことを特徴とする請求項8に記載のデータ伝送方法。
【請求項10】
前記第1デバイスからフィードバックされた、前記第1デバイスに伝送されたデータパケットに対する受信状況を受信することにより、前記第1デバイスがデータパケットを受信する際に採用したデータチャネルのネットワーク状態を決定するステップを、さらに含み、
前記第5データパケットを、1つまたは複数のデータチャネルを介して前記第1デバイスに送信するステップは、前記第1デバイスがデータパケットを受信する際に採用したデータチャネルのネットワーク状態に基づいて、1つまたは複数のデータチャネルを選択して前記第5データパケットを前記第1デバイスに送信するステップ、を含む、
ことを特徴とする請求項3に記載のデータ伝送方法。
【請求項11】
前記第1デバイスによって送信された第1データパケットに対する受信状況に基づいて、前記第1デバイスが第1データパケットを送信する際に採用したデータチャネルのネットワーク状態を決定するステッ
プをさらに含む、
ことを特徴とする請求項1に記載のデータ伝送方法。
【請求項12】
前記第1デバイスによって送信された、伝送制御プロトコルTCP接続を切断するためのデータメッセージを受信すると、所定の期間を経過した後、記憶されている、前記第1デバイスに関連する情報を削除するステップ、をさらに含む、
ことを特徴とする請求項1~請求項11のいずれか1項に記載のデータ伝送方法。
【請求項13】
前記第1デバイスとTCP接続を確立するプロセスにおいて、受信した、前記第1デバイスによって送信された1番目のTCPデータメッセージが、TCP接続を確立するためのデータメッセージではない場合、接続をリセットするためのデータメッセージを前記第1デバイスに送信するステップ、をさらに含む、
ことを特徴とする請求項1~請求項11のいずれか1項に記載のデータ伝送方法。
【請求項14】
データ伝送装置であって、
第1デバイスによって複数のデータチャネルを介して送信された第1データパケットを受信する受信ユニットと、
前記第1データパケットを解析して前記第1デバイスのアドレス情報を取得し、前記第1データパケットのデータパケットヘッダーに基づいて、前記第1データパケットに対して集約処理を実行して、第2データパケットを取得する第1処理ユニットと、
前記第2データパケットのソースアドレス情報を指定アドレス情報に変更して、第3データパケットを取得する第2処理ユニットと、
前記第3データパケットを第2デバイスに送信する送信ユニットであって、前記第2デバイスは、前記第1デバイスがアクセスする必要のあるデバイスである送信ユニットと、
を含
み、
前記送信ユニットは、前記第1デバイスがネットワーク状態に基づいてデータパケットを再び送信する際に、採用したデータチャネルを選択するように、前記第1デバイスが第1データパケットを送信する際に採用したデータチャネルの前記ネットワーク状態を前記第1デバイスに送信することを特徴とするデータ伝送装置。
【請求項15】
前記装置は、第1記憶ユニットをさらに含み、
前記第1処理ユニットは、さらに、前記第1データパケットを解析して、前記第1デバイスがアクセスする必要のあるアドレス情報を取得し、前記第1デバイスがアクセスする必要のあるアドレス情報に基づいて、前記第2デバイスを決定するために使用され、
第1記憶ユニットは、前記第1デバイスがアクセスする必要のあるアドレス情報を記憶するために使用される、
ことを特徴とする請求項14に記載の装置。
【請求項16】
前記装置は、前記記憶されている、第1デバイスがアクセスする必要のあるアドレス情報に基づいて、前記第2デバイスによって送信されたデータパケットから、前記第1デバイスに送信する必要のある第4データパケットを決定する第1決定ユニット、をさらに含み、
前記第2処理ユニットは、さらに、前記第4データパケットの宛先アドレス情報を前記第1デバイスのアドレス情報に変更して、第5データパケットを取得するために使用され、
前記送信ユニットは、さらに、前記第5データパケットを、1つまたは複数のデータチャネルを介して前記第1デバイスに送信するために使用される、
ことを特徴とする請求項15に記載の装置。
【請求項17】
前記第1決定ユニットは、前記第2デバイスによって送信されたデータパケットのソースアドレス情報を決定し、前記第1デバイスがアクセスする必要のあるアドレス情報に基づいて、前記第2デバイスによって送信されたデータパケットから、前記ソースアドレス情報と、前記第1デバイスがアクセスする必要のあるアドレス情報とがマッチングしているデータパケットをフィルタリングし、フィルタリングされたデータパケットを前記第4データパケットとするために使用される、
ことを特徴とする請求項16に記載の装置。
【請求項18】
コンピュータプログラムが記憶されているコンピュータ読み取り可能な媒体であって、
前記コンピュータプログラムは、プロセッサによって実行される場合、請求項1~請求項13のいずれか1項に記載のデータ伝送方法を実現する、
ことを特徴とするコンピュータ読み取り可能な媒体。
【請求項19】
1つまたは複数のプロセッサと、
1つまたは複数のプログラムを記憶する記憶装置と、を含み、
前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサによって実行される場合、前記1つまたは複数のプロセッサに、請求項1~請求項13のいずれか1項に記載のデータ伝送方法を実現させる、
ことを特徴とする電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2019年1月3日に中国特許庁へ出願された、出願番号が201910004540.Xであり、出願名称が「データ伝送方法、装置、コンピュータ読み取り可能な媒体および電子デバイス」である中国特許出願の優先権を主張し、その全ての内容が参照することにより本願に組み込まれる。
【0002】
本願は、コンピュータおよび通信技術の分野に関し、具体的に、データ伝送方法、装置、コンピュータ読み取り可能な媒体および電子デバイスに関する。
【背景技術】
【0003】
技術の発展に伴い、アプリケーションの通信プロセスはますます頻繁になり、例えば、ゲームクライアントは、サーバ側と頻繁に通信する必要があり、このようなアプリケーションは、ネットワーク環境に対する要求が非常に高く、低遅延および高い安定性の特性が、このようなアプリケーションの需要になっている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
無線環境の複雑性および無線通信プロトコルの特性のため、無線通信では、干渉、エアインタフェースの輻輳などの原因によるネットワークジッタ状況が生じることは避けられない。Wi-Fi(Wireless Fidelity、無線フィディリティ)は、周波数スペクトルが広いため、干渉をさらに受けやすくなるが、そのネットワークトポロジ層が少ないため、遅延が低い。移動通信ネットワーク(例えば、3G/4G/5Gなど)は、周波数スペクトルが狭いため、干渉を受けにくくなるが、データ伝送が、事業者のアクセス層を通過する必要があり、さらに、より高い遅延をもたらし、また、事業者の基地局デバイスの配置および容量により、高い遅延および輻輳の問題も引き起こされる。
【課題を解決するための手段】
【0005】
本願の実施例は、サーバによって実行されるデータ伝送方法を提供し、当該方法は、第1デバイスによって複数のデータチャネルを介して送信された第1データパケットを受信するステップと、前記第1データパケットを解析して前記第1デバイスのアドレス情報を取得し、前記第1データパケットのデータパケットヘッダーに基づいて、前記第1データパケットに対して集約処理を実行して、第2データパケットを取得するステップと、前記第2データパケットのソースアドレス情報を指定アドレス情報に変更して、第3データパケットを取得するステップと、前記第3データパケットを第2デバイスに送信するステップであって、前記第2デバイスは、前記第1デバイスがアクセスする必要のあるデバイスであるステップと、を含む。
【0006】
本願の実施例は、データ伝送装置を提供し、当該装置は、第1デバイスによって複数のデータチャネルを介して送信された第1データパケットを受信する受信ユニットと、前記第1データパケットを解析して前記第1デバイスのアドレス情報を取得し、前記第1データパケットのデータパケットヘッダーに基づいて、前記第1データパケットに対して集約処理を実行して、第2データパケットを取得する第1処理ユニットと、前記第2データパケットのソースアドレス情報を指定アドレス情報に変更して、第3データパケットを取得する第2処理ユニットと、前記第3データパケットを第2デバイスに送信する送信ユニットであって、前記第2デバイスは、前記第1デバイスがアクセスする必要のあるデバイスである送信ユニットと、を含む。
【0007】
本願の実施例は、コンピュータプログラムが記憶されているコンピュータ読み取り可能な媒体をさらに提供し、前記コンピュータプログラムは、プロセッサによって実行される場合、上記の実施例に記載のデータ伝送方法を実現する。
【0008】
本願の実施例は、電子デバイスをさらに提供し、該当電子デバイスは、1つまたは複数のプロセッサと、1つまたは複数のプログラムを記憶する記憶装置と、を含み、前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサによって実行される場合、前記1つまたは複数のプロセッサに、上記の実施例に記載のデータ伝送方法を実現させる。
【図面の簡単な説明】
【0009】
ここでの図面は、本明細書に組み込まれて、本明細書の一部を構成し、本願に適合する実施例を示し、明細書とともに本願の原理を説明するために使用される。明らかに、以下の説明における図面は、本願の一部の実施例にすぎず、当業者にとって、創造的な労働をしない前提で、これらの図面に基づいて他の図面を得ることもできる。
【0010】
【
図1】本願の実施例の技術案を適用できる例示的なシステムアーキテクチャを示す概略図である。
【
図2】本願の一実施例によるデータ伝送方法を概略的に示すフローチャートである。
【
図3】本願の一実施例によるデータ伝送方法を概略的に示すフローチャートである。
【
図4】本願の一実施例による、第2デバイスによって送信されるデータパケットから、第1デバイスに送信する必要のある第4データパケットを決定することを概略的に示すフローチャートである。
【
図5】本願の一実施例によるデュアルチャネル通信システムの構造を示す概略図である。
【
図6】本願の一実施例によるデュアルチャネル通信システムの構造を示す概略図である。
【
図7】本願の一実施例によるデュアルチャネル通信プロセスを概略的に示すフローチャートである。
【
図8】本願の一実施例による、デュアルチャネルクライアントがipメッセージにデュアルチャネルパケットヘッダーを付加することを示す概略図である。
【
図9】本願の一実施例による、受信したデータメッセージに対してデュアルチャネルクライアントが処理することを概略的に示すフローチャートである。
【
図10】本願の一実施例による、デュアルチャネルプロキシサーバとアプリケーションサーバとの間のインタラクションを概略的に示すフローチャートである。
【
図11】本願の一実施例による、デュアルチャネルプロキシサーバとデュアルチャネル負荷分散サーバとの間のインタラクションを概略的に示すフローチャートである。
【
図12】本願の一実施例による、無線ローカルエリアネットワークチャネルと有線チャネルからなるデュアルチャネルシステムを示す概略図である。
【
図13】本願の一実施例による、無線ローカルエリアネットワークチャネルとブルートゥース(登録商標)チャネルからなるデュアルチャネルシステムを示す概略図である。
【
図14】本願の一実施例によるデータ伝送装置を概略的に示すブロック図である。
【
図15】本願の実施例を実現する電子デバイスに適するコンピュータシステムの構造を示す概略図である。
【発明を実施するための形態】
【0011】
現在、図面を参照しながら、例示的な実施形態をより包括的に説明する。しかしながら、例示的な実施形態は、様々な形態で実施されることができ、本明細書に記載の例に限定されるものであると理解されるべきではなく、逆に、これらの実施形態を提供することにより、本願は、より包括的かつ完全なものになり、例示的な実施形態の構想を当業者に包括的に伝える。
【0012】
また、説明される特徴、構造または特性は、任意の適切な方式で1つまたはより多くの実施例に組み込まれることもできる。以下の説明では、多くの具体的な詳細を提供することにより、本願の実施例に対する十分な理解が与えられる。しかしながら、当業者は、特定の詳細のうちの1つまたは複数なしで、本願の技術案を実践することができるか、または他の方法、構成要素、装置、ステップなどを採用することができる、ということを認識する。他の場合には、本願の各態様を曖昧にすることを回避するために、周知の方法、装置、実装または操作について詳細に図示または説明されていない。
【0013】
図面に示されているブロック図は、単なる機能エンティティにすぎず、必ずしも物理的に独立したエンティティに対応する必要がなく。すなわち、これらの機能エンティティは、ソフトウェアの形式で実装されてもよく、またはこれらの機能エンティティは、1つまたは複数のハードウェアモジュールまたは集積回路において実装されてもよいし、あるいはこれらの機能エンティティは、異なるネットワークおよび/またはプロセッサ装置および/またはマイクロコントローラ装置において実装されてもよい。
【0014】
図面に示されているフローチャートは、単なる例示的な説明にすぎず、必ずしもすべてのコンテンツおよび操作/ステップを含む必要がなく、必ずしも説明された順序に従って実行する必要もない。例えば、ある操作/ステップは分解されてもよいが、ある操作/ステップは統合または部分的に統合されてもよいし、そのため、実際に実行される順序は、実際の状況に応じて変更される可能性もある。
【0015】
図1は、本願の実施例の技術案を適用できる例示的なシステムアーキテクチャを示す概略図である。
【0016】
図1に示すように、システムアーキテクチャは、端末デバイス101と、マルチチャネルプロキシサーバ102と、アプリケーションサーバ103とを含むようにしてよい。マルチチャネルプロキシサーバ102は、端末デバイス101によって複数のデータチャネルを介して送信されたデータに対して集約処理を実行して、それをアプリケーションサーバ103に送信するために使用され、かつ、アプリケーションサーバ103によって送信されたデータを、複数のデータチャネルを介して端末デバイス101に返信するために使用される。
【0017】
ここで、前記端末デバイス101は、スマートフォン、タブレットコンピュータおよびポータブルコンピュータのうちの1つまたは複数であってもよく、デスクトップコンピュータなどであってもよい。
【0018】
図1の端末デバイス101、マルチチャネルプロキシサーバ102およびアプリケーションサーバ103の数は単なる例示的なものにすぎない、ということを理解されたい。実現の必要に応じて、任意の数の端末デバイス101、マルチチャネルプロキシサーバ102およびアプリケーションサーバ103を有してもよい。ここで、アプリケーションサーバ103は、ゲームサーバであってもよく、当該ゲームサーバは、単独のサーバであってもよく、複数のサーバからなるサーバクラスタなどであってもよい。
【0019】
本願の一実施例では、端末デバイス101がスマートフォン(無論、タブレットコンピュータまたはポータブルコンピュータなどであってもよい)である場合、マルチチャネルプロキシサーバ102は、スマートフォンによって送信されたリンクデータを受信した後、スマートフォンに1つの仮想ポートを割り当てることができ、そして、当該仮想ポートをスマートフォンの実アドレス情報と関連付けて記憶するとともに、スマートフォンがアクセスするアプリケーションサーバのVIP(Virtual IP Address、仮想IPアドレス)を記録する。マルチチャネルプロキシサーバ102は、スマートフォンによって複数のデータチャネルを介して送信されたアプリケーションサービスデータパケットを受信してから集約処理(例えば、重複排除処理)を行い、それから、重複排除処理後のアプリケーションサービスデータパケットのソースアドレス情報を、マルチチャネルプロキシサーバ102のアドレス情報(前述の仮想ポートが含まれる)に変更し、さらに、アプリケーションサーバ103に送信する。ここで、上記の複数のデータチャネルは、Wi-Fiチャネルなどのような無線ローカルエリアネットワークチャネル、および4Gチャネルなどのような移動通信チャネルを含むようにしてよい。
【0020】
マルチチャネルプロキシサーバ102は、アプリケーションサーバ103によって送信されたデータパケットを受信した後、当該データパケットのソースアドレス情報およびその前に記録されたVIP情報に基づいて、スマートフォンに送信する必要のあるデータパケットをフィルタリングし、そして、記録した仮想ポートおよびスマートフォンの実アドレス情報に基づいて、フィルタリングしたデータパケットの宛先アドレス情報を、スマートフォンの実アドレス情報に修正し、さらに、複数のデータチャネルを介してスマートフォンに送信することができる。
【0021】
ここから分かるように、本願の実施例の技術案は、複数のデータチャネルを介してデータパケットを共同に伝送することによりデータパケットの伝送の安定性を保証することができ、データ伝送プロセスにおける高いパケットロス率および高い遅延の問題を効果的に解決し、かつ、フルスタックのマルチチャネルデータ伝送プロセスを実現して、様々な通信シーンでのサービスニーズを満たすことができる。
【0022】
以下、
図1に示すシステムアーキテクチャに基づいて、本願の実施例の技術案の実現詳細について詳細に説明する。
【0023】
図2は、本願の一実施例によるデータ伝送方法を概略的に示すフローチャートであり、当該データ伝送方法は、サーバによって実行されてもよく、当該サーバは、1つのプロキシサーバであってもよく、例えば、
図1に示すマルチチャネルプロキシサーバ102であってもよい。
図2を参照すると、当該データ伝送方法は、少なくともステップS210~ステップS240を含み、詳細は以下のとおりであり、即ち、
ステップS210で、第1デバイスによって複数のデータチャネルを介して送信された第1データパケットを受信する。
【0024】
本願の一実施例では、複数のデータチャネルは、Wi-Fiチャネル、ブルートゥース(登録商標)チャネル、有線チャネル、移動通信ネットワーク(例えば3G/4G/5Gなど)などのようなデータチャネルのうちの2つ以上を含むようにしてよい。
【0025】
本願の一実施例では、第1デバイスによって複数のデータチャネルを介して送信されたデータパケットは、完全に同じであってもよいし、1つのデータチャネルを介してフル量のデータパケットが送信される一方、他のデータチャネルを介して非フル量のデータパケットが送信されてもよく(例えば、5つごとに2つのデータパケットのみが送信されてもよいなど)、また、複数のデータチャネルを介して非フル量のデータパケットがそれぞれ送信されてもよく、これにより、受信側は、集約処理を実行して完全なデータパケットを取得することができる。
【0026】
本願の一実施例では、第1デバイスによって送信された第1データパケットは、TCP(Transmission Control Protocol、伝送制御プロトコル)データパケットであってもよく、UDP(User Datagram Protocol、ユーザデータグラムプロトコル)データパケットであってもよいし、またはIPデータパケットであってもよい。
【0027】
本願の一実施例では、マルチチャネルプロキシサーバは、第1デバイスとのTCP接続を確立するプロセスにおいて、受信した、第1デバイスによって送信された1番目のTCPデータメッセージがTCP接続を確立するためのデータメッセージ(例えばsynメッセージ)ではない場合、接続をリセットするためのデータメッセージ(例えばrstメッセージ)を第1デバイスに送信することにより、第1デバイスがマルチチャネルプロキシサーバとの接続をできるだけ早く再確立することができる、ということを確保する。
【0028】
本願の一実施例では、マルチチャネルプロキシサーバは、第1デバイスによって送信された、TCP接続を切断するためのデータメッセージ(例えばfinメッセージ)を受信すると、所定の期間を経過した後、記憶されている、第1デバイスに関連する情報(例えば第1デバイスのアドレス情報、第1デバイスに割り当てられた仮想ポートの情報、第1デバイスがアクセスする必要のあるアドレス情報など)を削除することができる。
【0029】
ステップS220で、前記第1データパケットを解析して前記第1デバイスのアドレス情報を取得し、前記第1データパケットのデータパケットヘッダーに基づいて、前記第1データパケットに対して集約処理を実行して、第2データパケットを取得する。
【0030】
本願の一実施例では、第1デバイスのアドレス情報には、第1デバイスのイントラネットIP(Internet Protocol、インターネットプロトコル)アドレスおよびイントラネットポート情報などが含まれてもよい。
【0031】
本願の一実施例では、第1データパケットのデータパケットヘッダーに基づいて、第1データパケットに対して集約処理を実行することは、フル量でかつ重複していないデータパケットを取得するために、第1デバイスによって複数のデータチャネルを介して送信されたデータパケットに対して、重複排除処理および/または統合処理を実行することであってもよい。例えば、第1データパケットのデータパケットヘッダーにおけるパケット番号に基づいて、重複排除処理(例えば、パケット番号が重複しているデータパケットを削除する処理)および/または統合処理(例えば、パケット番号が異なっているデータパケットを統合する処理)を実行してもよい。
【0032】
ステップS230において、前記第2データパケットのソースアドレス情報を指定アドレス情報に変更して、第3データパケットを取得する。
【0033】
本願の一実施例では、指定アドレス情報には、マルチチャネルプロキシサーバのIPアドレス、およびマルチチャネルプロキシサーバによって第1デバイスに割り当てられた仮想ポート情報が含まれてもよい。ここで、マルチチャネルプロキシサーバは、第1デバイスに仮想ポート情報を割り当てた後、当該仮想ポート情報を第1デバイスの実アドレス情報と関連付けて記憶することができ、さらに、他のデバイスによって送信されたデータパケットを受信すると、当該データパケットに含まれる仮想ポート情報に基づいて、当該データパケットが第1デバイスに送信されるデータパケットであるかどうかを決定することができる。
【0034】
ステップS240において、前記第3データパケットを第2デバイスに送信する。
【0035】
本願の一実施例では、第2デバイスは、第1デバイスがアクセスする必要のあるデバイスであってもよく、例えば、アプリケーションサーバなどであってもよい。
【0036】
本願の一実施例では、第1デバイスによって送信された第1データパケットを解析して、第1デバイスがアクセスする必要のあるアドレス情報を取得し、そして、第1デバイスがアクセスする必要のあるアドレス情報に基づいて、第2デバイスを決定することができる。第2デバイスがアプリケーションサーバである場合、第1デバイスがアクセスする必要のあるアドレス情報は、アプリケーションサーバのVIPであってもよく、ここで、アプリケーションサーバの1つのVIPは、1つの第1デバイスに対応する。
【0037】
本願の一実施例では、マルチチャネルプロキシサーバは、さらに、第2デバイスによって送信されるデータメッセージのメッセージセグメントの最大長さを設定することができる。例えば、TCPメッセージプロトコルのmssフィールドを設定することにより、メッセージセグメントの最大長さを設定する。
【0038】
図2に示す実施例の技術案は、複数のデータチャネルを介してデータパケットを共同に伝送することによりデータパケットの伝送の安定性を保証することができ、データ伝送プロセスにおける高いパケットロス率および高い遅延の問題を効果的に解決するとともに、集約処理により、第2デバイスが同じデータを繰り返して受信する必要がないことも保証でき、第2デバイスが感知しないマルチデータチャネル伝送プロセスを実現でき、また、第2データパケットのソースアドレス情報を指定アドレス情報(例えばプロキシサーバのアドレス情報)に変更してから第2デバイスに送信するため、第1デバイスとマルチチャネルプロキシサーバとの間でどのような通信方式を採用しても、マルチデータチャネルでの伝送を行うことができ、フルスタックのマルチチャネルデータ伝送プロセスを実現して、様々な通信シーンでのサービスニーズを満たすことができた。
【0039】
図2に示す実施例の技術案に基づき、
図3は、本願の一実施例によるデータ伝送方法を概略的に示すフローチャートであり、当該データ伝送方法は、サーバによって実行されてもよく、当該サーバは、
図1に示すマルチチャネルプロキシサーバ102であってもよい。
図3を参照すると、当該データ伝送方法は、少なくともステップS310~ステップS330を含み、詳細は以下のとおりであり、即ち、
ステップS310で、前記第2デバイスによって送信されたデータパケットから、前記第1デバイスに送信する必要のある第4データパケットを決定する。
【0040】
本願の一実施例では、第4データパケットは、IPデータパケットであってもよく、即ち、第2デバイスは、IPデータパケットを直接的にマルチチャネルプロキシサーバに送信することができ、さらに、フルスタックネットワークのマルチチャネル伝送がシームレスにサポートされることができる。
【0041】
本願の一実施例では、マルチチャネルプロキシサーバは、第1デバイスによって送信された第1データパケットを受信した後、当該第1データパケットを解析して、第1デバイスがアクセスする必要のあるアドレス情報を取得し、そして、当該アドレス情報を記憶することができ、第2デバイスによって送信されたデータパケットを受信した後、記憶されている、第1デバイスがアクセスする必要のあるアドレス情報に基づいて、第1デバイスに送信する必要のある第4データパケットを決定することができる。
【0042】
図4は、本願の実施例において、第2デバイスによって送信されたデータパケットから、第1デバイスに送信する必要のある第4データパケットを決定するフローチャートである。
図4に示すように、具体的には、下記のステップを含み、即ち、
ステップS410、前記第2デバイスによって送信されたデータパケットのソースアドレス情報を決定する。
【0043】
本願の一実施例では、第2デバイスによって送信されたデータパケットを解析することにより当該データパケットのソースアドレス情報を取得することができる。第2デバイスがアプリケーションサーバである場合、第2デバイスによって送信されたデータパケットのソースアドレス情報は、アプリケーションサーバの仮想アドレス情報であってもよい。
【0044】
ステップS420、前記第1デバイスがアクセスする必要のあるアドレス情報に基づいて、前記第2デバイスによって送信されたデータパケットから、前記ソースアドレス情報と前記第1デバイスがアクセスする必要のあるアドレス情報とがマッチングしているデータパケットをフィルタリングし、フィルタリングされたデータパケットを前記第4データパケットとする。
【0045】
本願の一実施例では、第2デバイスによって送信されたデータパケットは、すべて、第1デバイスに送信されるものであるわけではないが、第1デバイスに送信されるデータパケットのソースアドレス情報は、第1デバイスによって送信されたデータパケットにおける宛先アドレス情報と同じであり、そのため、第2デバイスによって送信されたデータパケットから、ソースアドレス情報と第1デバイスがアクセスする必要のあるアドレス情報とがマッチングしているデータパケットをフィルタリングすることができ、これを第1デバイスに送信する必要のある第4データパケットとすることができる。
【0046】
引き続き
図3を参照すると、ステップS320で、前記第4データパケットの宛先アドレス情報を前記第1デバイスのアドレス情報に変更して、第5データパケットを取得する。
【0047】
本願の一実施例では、マルチチャネルプロキシサーバは、第1デバイスに仮想ポートを事前に割り当て、そして、第1デバイスに割り当てられた仮想ポートを第1デバイスのアドレス情報と関連付けて記憶することができ、また、第4データパケットの宛先アドレス情報には、マルチチャネルプロキシサーバのIPアドレスと、マルチチャネルプロキシサーバが第1デバイスに割り当てた仮想ポートの情報とが含まれ、そのため、この仮想ポートの情報に基づいて、記憶されている仮想ポートとアドレス情報との関連関係から、第1デバイスのアドレス情報を検索することができ、そして、第4データパケットの宛先アドレス情報を第1デバイスのアドレス情報に変更する。ここで、第1デバイスのアドレス情報には、第1デバイスのイントラネットアドレスおよびイントラネットポートが含まれてもよい。
【0048】
ステップS330において、前記第5データパケットを前記第1デバイスに送信する。
【0049】
本願の一実施例では、データパケットの伝送の安定性を確保し、さらに、データ伝送プロセスにおける高いパケットロス率および高い遅延の問題を解決するために、第5データパケットを、複数のデータチャネルを介して第1デバイスに送信することができる。第1デバイスは、複数のデータチャネルを介して伝送されたデータパケットを受信した後、集約処理を行うこともでき、当該集約処理は、フル量かつ重複しないデータパケットを取得するように、第1デバイスによって複数のデータチャネルを介して受信されたデータパケットに対して行う重複排除処理および/または統合処理であってもよい。
【0050】
本願の一実施例では、第1デバイスは、さらに、第1データパケットを伝送するためのデータチャネルの情報をマルチチャネルプロキシサーバに送信するために使用され、具体的な送信方式は、リアルタイム送信、周期的送信、変化が発生した場合に送信するなどの方式であってもよく、マルチチャネルプロキシサーバは、当該データチャネルの情報を受信した後、記憶することができ、さらに、マルチチャネルプロキシサーバは、第5データパケットを第1デバイスに送信する際に、記憶している最新のデータチャネル情報に基づいて、第5データパケットを第1デバイスに送信することができ、これにより、マルチチャネルプロキシサーバは、最新のデータチャネル情報を認識し採用して第1デバイスにデータパケットを送信できる、ということが確保される。
【0051】
本願の一実施例では、マルチチャネルプロキシサーバは、さらに、第1デバイスによって送信された第1データパケットに対する受信状況、または他のデータパケットに対する受信状況に基づいて、第1デバイスがデータパケットを送信する際に採用したデータチャネルのネットワーク状態、例えば遅延状況、輻輳状況などを決定し、さらに、マルチチャネルプロキシサーバは、第5データパケットを第1デバイスに送信するとき、第1デバイスがデータパケットを送信する際に採用したデータチャネルのネットワーク状態の優劣に基づいて、1つまたは複数のデータチャネルを選択して第5データパケットを第1デバイスに送信することができる。例えば、あるデータチャネルのネットワーク状態が良い場合、当該ネットワーク状態が良いであるデータチャネルのみを介して第5データパケットを伝送することができるため、さらに、データチャネルへの占有およびトラフィックへの消費が削減されることができる一方、複数のデータチャネルのネットワーク状態がいずれも悪い場合、複数のデータチャネルを介して第5データパケットを伝送することができるため、さらに、データパケットの伝送の安定性が保証され、データ伝送中に高いパケットロス率および高い遅延が発生するという問題が回避されることができる。
【0052】
本願の一実施例では、第1デバイスがデータパケットを送信する際に採用したデータチャネルのネットワーク状態を決定することは、第1デバイスによって送信されたデータパケットを受信した第1時刻と、第1デバイスによって送信されたデータパケットに含まれている第2時刻とに基づいて、第1デバイスによって送信されたデータパケットの遅延を計算し、そして、第1デバイスによって送信されたデータパケットの遅延に基づいて、第1デバイスがデータパケットを送信する際に採用したデータチャネルのネットワーク状態を決定することであることができる。ここで、第1デバイスによって送信されたデータパケットの遅延が大きいほど、第1デバイスがデータパケットを送信する際に採用したデータチャネルのネットワーク状態が悪くなるということが説明され、第1デバイスによって送信されたデータパケットの遅延が小さいほど、第1デバイスがデータパケットを送信する際に採用したデータチャネルのネットワーク状態が良くなるということが説明される。
【0053】
本願の一実施例では、上記の第2時刻は、第1デバイスがデータパケットを送信する時刻と、プロキシサーバと第1デバイスとの間のクロック同期補償値とに基づいて決定されたものである。具体的には、第1デバイスは、一定の期間ごとに、マルチチャネルプロキシサーバにマルチチャネルプロキシサーバのタイムスタンプを要求するとともに、毎回のマルチチャネルプロキシサーバからの返信遅延を記録することができ、平均により、第1デバイスとマルチチャネルプロキシサーバとの間の平均遅延avgDelayを取得し、そして、第1デバイスは、記録した、最後の一回にサーバに要求したときに返信されたマルチチャネルプロキシサーバのタイムスタンプsvrTime、および、このときの第1デバイスの時間localStartTimeに基づいて、このときのマルチチャネルプロキシサーバの時間svrStartTime=svrTime+avgDelay/2を計算し、さらに、svrStartTime-localStartTimeを、マルチチャネルプロキシサーバと第1デバイスとの間のクロック同期補償値とし、第1デバイスがデータパケットを送信した時刻がcurTimeであると仮定すると、上記の第2時刻は、CStime=curTime+svrStartTime-localStartTimeである。
【0054】
本願の一実施例では、マルチチャネルプロキシサーバは、さらに、第1デバイスがデータパケットを受信する際に採用したデータチャネルのネットワーク状態、例えば遅延状況、輻輳状況などを決定するように、第1デバイスからフィードバックされた、第1デバイスに伝送されたデータパケットに対する受信状況を受信することができ、さらに、マルチチャネルプロキシサーバは、第5データパケットを第1デバイスに送信するとき、第1デバイスがデータパケットを受信する際に採用したデータチャネルのネットワーク状態の優劣に基づいて、1つまたは複数のデータチャネルを選択して第5データパケットを第1デバイスに送信することができる。例えば、あるデータチャネルのネットワーク状態が良い場合、当該ネットワーク状態が良いであるデータチャネルのみを介して第5データパケットを伝送することができるため、さらに、データチャネルへの占有およびトラフィックへの消費が削減されることができる一方、複数のデータチャネルのネットワーク状態がいずれも悪い場合、複数のデータチャネルを介して第5データパケットを伝送ことができるため、さらに、データパケットの伝送の安定性が保証され、データ伝送中に高いパケットロス率および高い遅延が発生する問題が回避されることができる。
【0055】
本願の一実施例では、マルチチャネルプロキシサーバは、さらに、第1デバイスによって送信された第1データパケットに対する受信状況、または他のデータパケットに対する受信状況に基づいて、第1デバイスがデータパケットを送信する際に採用したデータチャネルのネットワーク状態を決定することができ、そして、第1デバイスがデータパケットを送信する際に採用したデータチャネルのネットワーク状態を第1デバイスに送信し、これにより、第1デバイスが当該ネットワーク状態に基づいて、データパケットを再び送信する際に、採用したデータチャネルを選択する。例えば、あるデータチャネルのネットワーク状態が良い場合、第1デバイスは、データパケットを再び送信するとき、当該ネットワーク状態が良いであるデータチャネルのみを介して、マルチチャネルプロキシサーバにデータパケットを送信することができるため、さらに、データチャネルへの占有およびトラフィックへの消費が削減されることができる一方、複数のデータチャネルのネットワーク状態がいずれも悪い場合、第1デバイスは、データパケットを再び送信するとき、複数のデータチャネルを介して、マルチチャネルプロキシサーバにデータパケットを送信することができるため、さらに、データパケットの伝送の安定性が保証され、データ伝送中に高いパケットロス率および高い遅延が発生する問題が回避されることができる。
【0056】
本願の一実施例では、第1デバイスは、さらに、マルチチャネルプロキシサーバに送信される第1データパケットの受信状況に基づいて、第1デバイスがデータパケットを送信する際に採用したデータチャネルのネットワーク状態を決定し、そして、当該ネットワーク状態に基づいて、データパケットを送信する時に、採用したデータチャネルを選択することができる。例えば、あるデータチャネルのネットワーク状態が良い場合、第1デバイスは、当該ネットワーク状態が良いであるデータチャネルのみを介して、プロキシサーバにデータパケットを送信することができるため、さらに、データチャネルへの占有およびトラフィックへの消費が削減されることができる一方、複数のデータチャネルのネットワーク状態がいずれも悪い場合、第1デバイスは、複数のデータチャネルを介して、プロキシサーバにデータパケットを送信することができるため、さらに、データパケットの伝送の安定性が保証され、データ伝送中に高いパケットロス率および高い遅延が発生する問題が回避されることができる。
【0057】
以下、第1デバイスをデュアルチャネルクライアントとし、プロキシサーバをデュアルチャネルプロキシサーバ(即ち、以下では、2つのデータチャネルを介してデータを伝送することを例として説明する)とし、第2デバイスをアプリケーションサーバとすることを例として、本願の実施例の技術案の実現詳細について、詳細に説明する。
【0058】
本願の一実施例では、
図5に示すように、本願の一実施例によるデュアルチャネル通信システムは、主に、ユーザ端末51と、デュアルチャネル負荷分散サーバ502と、デュアルチャネルプロキシサーバ503と、アプリケーションサーバ504とを含む。ここで、ユーザ端末51には、アプリケーションクライアント505と、ネットワークカード506と、デュアルチャネルクライアント501とが配置され、デュアルチャネルクライアント501は、ネットワークカードを介してアプリケーションクライアント505と通信する。
【0059】
本願の一実施例では、アプリケーションクライアント505とデュアルチャネルクライアント501との間で、tcpメッセージおよびudpメッセージを送信することができる。デュアルチャネルクライアント501は、アプリケーションクライアント505によって送信されたudpメッセージを受信した後、デュアルチャネル(例えばWi-Fiチャネルおよび4Gチャネル)を介して、デュアルチャネル負荷分散サーバ502に送信することができ、そして、デュアルチャネル負荷分散サーバ502によってデュアルチャネルプロキシサーバ503に転送され、デュアルチャネルプロキシサーバ503は、受信したudpメッセージに対して重複排除を行ってから、アプリケーションサーバ504に転送する。
【0060】
本願の一実施例では、デュアルチャネルプロキシサーバ503は、アプリケーションサーバ504によって送信されたudpメッセージを受信した後、当該udpメッセージを、デュアルチャネル(例えばWi-Fiチャネルおよび4Gチャネル)を介して、デュアルチャネル負荷分散サーバ502に送信することができ、そして、デュアルチャネル負荷分散サーバ502によってデュアルチャネルクライアント501に転送され、デュアルチャネルクライアント501は、受信したudpメッセージに対して重複排除を行ってから、ネットワークカードを介してアプリケーションクライアント505に転送する。
【0061】
本願の一実施例では、デュアルチャネルクライアント501は、ネットワークカード506から、tcpのsynメッセージ(synメッセージは、接続を確立するためのメッセージを表すものである)をインターセプトした後、デュアルチャネルクライアント501は、宛先アドレス情報に基づいて、直ちにアプリケーションサーバ504とtcpリンクを確立する。tcpリンクが確立された後、デュアルチャネルクライアント501は、ネットワークカード506を介して、アプリケーションクライアント505にtcpのack+synメッセージ(ack+synメッセージは、接続の確立を確認するメッセージを表すものである)を送信し、後続のtcpリンクの確立フローを続行する。デュアルチャネルクライアント501は、アプリケーションクライアント505とのtcp仮想リンクの確立を完成した後、fd1(アプリケーションクライアント505と通信)とfd2(アプリケーションサーバ504と通信)とをブリッジングし、そして、アプリケーションクライアント505がアプリケーションサーバ504に送信した上りtcpメッセージを転送するとともに、アプリケーションサーバ504がアプリケーションクライアント505に送信した下りtcpメッセージを転送する。
【0062】
前述の問題に基づいて、本願の一実施例では、
図6に示すように、本願の一実施例によるデュアルチャネル通信システムは、主に、ユーザ端末61と、デュアルチャネル負荷分散サーバ602(デュアルチャネル負荷分散サーバ602aおよびデュアルチャネル負荷分散サーバ602b)と、デュアルチャネルプロキシサーバ603と、アプリケーションサーバ604とを含む。ここで、ユーザ端末61には、アプリケーションクライアント605と、ネットワークカード606と、デュアルチャネルクライアント601とが配置されている。説明すべきものとして、
図6に示すデュアルチャネル負荷分散サーバ602の数は、例示にすぎず、本願の他の実施例において、任意の数のデュアルチャネル負荷分散サーバを配置してもよく、デュアルチャネル負荷分散サーバを配置しなくてもよい。
【0063】
本願の一実施例では、デュアルチャネルプロキシサーバ603は、あるデュアルチャネルクライアント601によって送信されたtcpリンクのfinパケットを受信した場合、このデュアルチャネルクライアント601のtcpリンクの状態をfin状態としてマークし、finOutTime(デフォルトは10秒)の後、当該tcpリンク情報を、クライアント情報モジュール6031から削除し、finOutTimeタイムアウト時間は、tcpリンクの4ウェイウェイウェーブハンド(Four-Way Wavehand)が正常に終了できることを保証するために使用されたものである。
【0064】
本願の一実施例では、デュアルチャネルプロキシサーバ603は、あるデュアルチャネルクライアントのtcpリンクを新たに確立するとき、当該tcpリンクの1番目のtcpメッセージが3ウェイハンドシェイク(3-way handshake)のsynメッセージであるかどうかを判断し、そうであれば、tcpリンク情報を確立してクライアント情報モジュール6031に記憶し、そうでなければ、当該デュアルチャネルクライアントにrstメッセージを返信し、当該不正なtcpリンクを中断し、これにより、デュアルチャネルクライアントが当該tcpリンクを迅速に再確立することができる、ということが保証される。
【0065】
本願の一実施例では、デュアルチャネルクライアント601は、アプリケーションクライアント605によって送信されたtcpリンクのsynメッセージを受信した場合、tcpメッセージプロトコルのmssフィールドの値を設定することができ、これにより、アプリケーションサーバ604によって送信されたデータパケットのいずれかが制御可能な長さ範囲内(tcpメッセージの長さは、mss値および送信ウィンドウ値のうちの最小値を取る)にある、ということが保証され、データパケットが大きすぎることでバッファーオーバーフローを引き起こすという問題と、伝送効率に影響を与えるという問題とが防止される。
【0066】
本願の一実施例では、デュアルチャネルプロキシサーバ603は、アプリケーションサーバ604から返信されたtcpリンクのsyn+ackメッセージを受信した場合、tcpメッセージプロトコルのmssフィールドを設定することができ、これにより、アプリケーションクライアントによって送信されたデータパケットのいずれかが制御可能な長さ範囲内にある、ということが保証され、データパケットが大きすぎることでバッファーオーバーフローを引き起こすという問題と、伝送効率に影響を与えるという問題とが防止される。
【0067】
本願の一実施例では、デュアルチャネルプロキシサーバ603は、tcpリンクのmss値の設定が有効になることを保証するために、ネットワークカードを最適化するための次のいくつかのオプション、即ち、GRO(Generic Receive Offloading、汎用受信オフロード)、TSO(TCP Segmentation Offload、TCPセグメンテーションオフロード)、GSO(Generic Segmentation Offload、汎用セグメンテーションオフロード)、LRO(Large Receive Offload、大規模受信オフロード)をそれぞれオフにすることができる。
【0068】
図6および
図7に示すように、デュアルチャネルクライアント601を起動した後、仮想ネットワークカード607(当該仮想ネットワークカードは、携帯電話におけるエンティティネットワークカードを介してアプリケーションクライアントと通信する)を作成するとともに、2つのスレッド(即ち、上りスレッドおよび下りスレッド)を確立し、同時に、2つのudpのsocketリンクを確立して、例えばWi-Fiチャネルおよび第4世代移動通信(略称4G)チャネルなどの無線チャネルにバインディングすることができる。
【0069】
本願の一実施例では、デュアルチャネルクライアント601は、対応するアプリケーションサービス構成に従って、クラウド制御サーバに、アプリケーションサーバ604のIPアドレスを下り送信するように要求する。このIPアドレスに従って、iptablesフィルタリングポリシーを設定して、アプリケーションクライアント605によって送信されたIPメッセージを、ネットワークカード606を介してインターセプトして、仮想ネットワークカード607に転送する。
【0070】
本願の一実施例では、
図8に示すように、デュアルチャネルクライアント601は、仮想ネットワークカード607から、アプリケーションクライアント605によって送信されたipメッセージを受信した後、デュアルチャネルパケットヘッダーを付加して、「デュアルチャネルパケットヘッダー+アプリケーションサービスIPメッセージ」フォーマットのデュアルチャネル上りメッセージを形成することができ、そして、udpプロトコルに基づいて、かつ、例えばWi-Fiなどの無線ローカルエリアネットワークチャネルおよび例えば4Gチャネルなどの移動通信チャネル、この2つのチャネルを介して送信することができる。
【0071】
本願の一実施例では、
図6に示すように、デュアルチャネルクライアント601は、デュアルチャネルを介して送信するとき、先に、デュアルチャネル負荷分散サーバ602に送信し、そして、デュアルチャネル負荷分散サーバ602によってデュアルチャネルプロキシサーバ603の上りスレッドに転送され、さらに、デュアルチャネルプロキシサーバ603によって重複排除処理を行ってからアプリケーションサーバ604に転送されることもできる。
【0072】
本願の一実施例では、
図7に示すように、デュアルチャネルクライアント601は、デュアルチャネルを介して送信するとき、直接的にデュアルチャネルプロキシサーバ603に送信し、そして、デュアルチャネルプロキシサーバ603によって重複排除処理を行ってからアプリケーションサーバ604に転送されることもできる。
【0073】
本願の一実施例では、アプリケーションサービスがゲームサービスである場合、デュアルチャネルクライアント601によって送信されたデュアルチャネル上りメッセージのプロトコルフィールドは、以下のとおりであり、即ち、
typedef struct MutiTunnelUPHead{
uint32_t m_bussId;//ゲーム識別子
uint8_t ver;//メインチャネル識別子
uint8_t type;//タイプ、現在の上りパケットのチャネル番号またはパケットタイプ
uint32_t seqno;//パケット番号
uint32_t devKey;//モバイルデバイスの一意の識別子
uint8_t mutisetID;//メインチャネルの事業者ID
}MutiTunnelUPHead;//フルスタックバージョンのプロトコルコード
【0074】
本願の一実施例では、
図9に示すように、デュアルチャネルクライアント601は、デュアルチャネルを介して送信された「デュアルチャネルパケットヘッダー+アプリケーションサービスIPメッセージ」フォーマットのデュアルチャネル下りメッセージを受信した後、重複排除ロジックにより、受信したデュアルチャネル下りメッセージに対して重複排除処理を行い、かつ、デュアルチャネル下りメッセージのパケットヘッダーを除去した後、data(データ)フィールドを直接的にIPメッセージに格納して、当該IPメッセージを仮想ネットワークカード607に送信し、これにより、仮想ネットワークカード607が、当該アプリケーションサービスIPメッセージを、ネットワークカード606を介してアプリケーションクライアント605に送信して、当該アプリケーションサービスIPメッセージは、ゲームIPメッセージであってもよい。
【0075】
本願の一実施例では、デュアルチャネルクライアント601が受信したデュアルチャネル下りメッセージのプロトコルフィールドは、以下のとおりであり、即ち、
typedef struct{
uint32_t seqno;//パケット番号
uint32_t devkey;//クライアントの一意の識別子
char data[0];//パケットコンテンツ
}MutiTunnelDownHead
【0076】
本願の一実施例では、
図6に示すように、デュアルチャネルクライアント601が受信したデュアルチャネル下りメッセージは、アプリケーションサーバ604がアプリケーションサービスIPメッセージをデュアルチャネルプロキシサーバ603に送信するための下りスレッドに、デュアルチャネルプロキシサーバ603がデュアルチャネルパケットヘッダーを付加してから生成されたものであってもよい。デュアルチャネルプロキシサーバ603がデュアルチャネル下りメッセージを生成した後、それをデュアルチャネル負荷分散サーバ602に送信し、そして、デュアルチャネル負荷分散サーバ602によってデュアルチャネルクライアント601に転送される。
【0077】
本願の一実施例では、
図7に示すように、デュアルチャネルプロキシサーバ603は、デュアルチャネル下りメッセージを生成した後、直接的にデュアルチャネルクライアント601に送信してもよい。そして、デュアルチャネルクライアント601は、重複排除処理を行って、デュアルチャネル下りメッセージのパケットヘッダーを除去した後、data(データ)フィールドを直接的にIPメッセージに格納して、当該IPメッセージをアプリケーションクライアント605に送信する。
【0078】
以下、
図10を参照しながら、本願の実施例におけるデュアルチャネルプロキシサーバとアプリケーションサーバとの間のインタラクションフローについて詳細に説明し、当該アプリケーションサーバは、ゲームサーバであってもよい。
【0079】
図10に示すように、本願の一実施例によるデュアルチャネルプロキシサーバとアプリケーションサーバとの間のインタラクションフローは、下記のステップを含み、即ち、
【0080】
ステップS1001で、デュアルチャネルプロキシサーバは、デュアルチャネルクライアント(デュアルチャネルクライアントによって送信されたデータパケットを直接的に受信するか、または負荷分散サーバを介して間接的に受信することができる)によってデュアルチャネルを介して送信された上りデータパケットを受信する。
【0081】
ステップS1002、デュアルチャネルプロキシサーバは、受信したデュアルチャネルパケットヘッダーおよび内部通信パケットヘッダーを除去するとともに重複排除を行い、そして、IPメッセージにおけるアドレスおよびポートを偽装してからアプリケーションサーバに送信する。
【0082】
本願の一実施例では、デュアルチャネルプロキシサーバは、デュアルチャネルクライアントによって送信された上りデータパケットを受信した後、当該上りデータパケットのパケットヘッダーに含まれているデュアルチャネルクライアントの実アドレス情報(イントラネットIPおよびイントラネットポートが含まれる)をクライアント情報モジュールに記録して、仮想ポートプールモジュールにより、当該デュアルチャネルクライアントに1つの仮想のローカルポートを割り当てるとともに、当該上りデータパケットがアクセスする必要のあるアプリケーションサーバアドレスに基づいて、VIP情報モジュールを更新し、アクセスしようとするアプリケーションサーバのVIPを当該モジュールに追加する。
【0083】
本願の一実施例では、デュアルチャネルプロキシサーバは、上りデータパケットのパケットヘッダーに含まれるクライアントの一意の識別子に従って、4GおよびWi-Fiチャネルから送信されたクライアントIPメッセージを識別して、重複排除処理を行うことができる。
【0084】
本願の一実施例では、デュアルチャネルプロキシサーバがIPメッセージにおけるアドレスおよびポート情報を偽装することは、主に、重複排除処理後の上りIPメッセージにおけるアドレス情報を、自機のアドレス情報(デュアルチャネルプロキシサーバのIPアドレスと、デュアルチャネルクライアントに割り当てられた仮想ポートとが含まれる)として偽装し、そして、ip、tcpまたはudpメッセージヘッダーのchecksumフィールドを再び計算して、Rawソケット(RawSocket)スレッドを介してアプリケーションサーバに送信する。
【0085】
ステップ1003で、デュアルチャネルプロキシサーバの下りスレッドは、rawSocket受信IPメッセージを作成し、そして、VIP情報モジュールに記録されているアプリケーションサーバのIP情報により、IPメッセージのソースアドレス(srcAddr)に従って、IPメッセージをフィルタリングすることにより、デュアルチャネルクライアントに送信する必要のあるIPメッセージを取得し、また、IPメッセージにおける宛先ポート(dstPort)に従って、クライアント情報モジュールから当該リンクの情報を検出し、即ち、デュアルチャネルクライアントの実アドレス情報を検出し、そして、当該デュアルチャネルクライアントのイントラネットIPおよびイントラネットポートを、アプリケーションサービス下りIPメッセージ内に偽装して、ip、tcp、あるいはudpメッセージヘッダーのchecksumフィールドを再び計算する。
【0086】
本願の一実施例では、デュアルチャネルクライアントは、デュアルチャネルプロキシサーバに、データパケットが位置しているチャネルの情報をリアルタイムに送信することができ、これにより、プロキシサーバは、チャネルの切り替えを容易に行い、すなわち、4GまたはWi-Fiチャネルが異常に切り替えた場合、プロキシサーバは、クライアントに対応するチャネルの情報を直ちに更新できる、ということが保証されることができる。デュアルチャネルクライアントによって送信されたチャネル情報は、デュアルチャネルプロトコルヘッダーのverおよびtypeフィールドに維持されることができる。例えば、ver=1は、メインチャネルを示し、ver=0は、サブチャネルを示し、type=1は、4G通信を示し、type=0は、Wi-Fi通信を示す。
【0087】
ステップS1004で、デュアルチャネルプロキシサーバは、デュアルチャネルクライアントによって送信された最新の、Wi-Fiおよび4Gチャネルの情報に基づいて、アプリケーションサービス下りIPメッセージの前に、デュアルチャネル下りパケットヘッダーおよびデュアルチャネルエンド内部プロトコルパケットヘッダーを付加してから、デュアルチャネル内でデュアルチャネルクライアントに送信する。デュアルチャネルプロキシサーバは、udpプロトコルに基づいて、処理後のデータメッセージをデュアルチャネルクライアント送信することができる。
【0088】
本願の一実施例では、
図11に示すように、デュアルチャネルプロキシサーバは、また、デュアルチャネルパケットヘッダーおよびデュアルチャネルエンド内部パケットヘッダーが付加されたアプリケーションサービスIPメッセージを、まず、デュアルチャネル負荷分散サーバに送信し、そして、デュアルチャネル負荷分散サーバによってデュアルチャネルエンド内部パケットヘッダーを除去してからデュアルチャネルクライアントに送信することができる。
【0089】
本願の一実施例では、デュアルチャネルプロキシサーバは、定時的にデュアルチャネルクライアントのチャネル情報のクリーンアップを実行することができ(
図6に示す定時タスクモジュールによってトリガーされることができる)、例えば、タイムアウト時間内に、デュアルチャネルプロキシサーバを経過するデュアルチャネルクライアントデータがない場合、このデュアルチャネルクライアントのスレッドおよびチャネル情報データをクリアする。
【0090】
本願の実施例では、デュアルチャネルプロキシサーバは、デュアルチャネルクライアントとアプリケーションサーバとの間のIPメッセージ(デュアルチャネルクライアントのIPメッセージは、アプリケーションクライアントからのものである)に対して透過的な転送を実行することができるため、したがって、udpプロトコルおよびtcpプロトコルのフルスタックネットワークプロトコルのマルチチャネルデータ伝送をサポートすることができ、これにより、下記の問題が回避され、即ち、デュアルチャネルクライアントとアプリケーションサーバとの間のネットワークが悪いことによる、アプリケーションサーバと通信するtcpリンクを適時に確立できなく、さらに、アプリケーションクライアントと通信するtcpリンクの確立が失敗になり、tcpリンクが継続的に再接続されてしまい、ユーザ体験が悪くなってしまう。
【0091】
本願の一実施例では、デュアルチャネル伝送プロセスにおいて、さらに、データチャネルのネットワーク状態を判断することにより、トラフィックをスマートに節約する伝送を実現することができ、具体的なプロセスは、次のとおりであり、即ち、
1、デュアルチャネルクライアントとデュアルチャネルプロキシサーバとは、クロック同期を行い、具体的なプロセスは、次のとおりであり、即ち、
1)デュアルチャネルクライアントは、デュアルチャネルプロキシサーバに、デュアルチャネルプロキシサーバのタイムスタンプ(例えば、毎回500ms間隔で、10回要求することができる)を要求するとともに、毎回のデュアルチャネルプロキシサーバの返信遅延を記録し、平均により、デュアルチャネルクライアントとデュアルチャネルプロキシサーバの平均遅延avgDelayを取得し、
2)デュアルチャネルクライアントは、最後の一回にデュアルチャネルプロキシサーバに要求したときに返信されたデュアルチャネルプロキシサーバタイムスタンプsvrTimeと、このときのデュアルチャネルクライアント時間localStartTimeを記録し、
3)デュアルチャネルクライアントは、このときのサーバ時間svrStartTime=svrTime+avgDelay/2を計算し、
4)デュアルチャネルクライアントによって送信された各データパケットのいずれかに、現在のサーバ時間、即ちCStime=curTime-localStartTime+svrStartTimeが付けられ、また、デュアルチャネルプロキシサーバによって送信された各下りパケットのいずれかに、デュアルチャネルプロキシサーバの現在タイムスタンプStimeが付けられる。
【0092】
2、Wi-Fiおよび4Gチャネルを介してデータを伝送すると仮定すると、デュアルチャネルプロキシサーバは、上りパケットの遅延(デュアルチャネルプロキシサーバの現在時間-CStime)に従って、現在のWi-Fiチャネルのフリーズレベルを判断し、これにより、4Gチャネルのパケット伝送ルールを策定し、例えば、Wi-Fiチャネルのネットワーク状態が良い場合、ユーザの下りトラフィックを節約するように、4Gチャネルでパケットを伝送しないか、または非フル量のパケットを伝送してもよい。
【0093】
本願の一実施例では、デュアルチャネルプロキシサーバは、デュアルチャネルクライアントからフィードバックされた下りパケットの遅延を受信し、そして、現在のWi-Fiチャネルのフリーズレベルを判断することができ、これにより、4Gチャネルのパケット伝送ルールを策定する。
【0094】
3、デュアルチャネルクライアントは、下りパケットの遅延(デュアルチャネルクライアントの現在時間-Stime)に従って、現在のWi-Fiチャネルのフリーズレベルを判断し、これにより、4Gチャネルのパケット伝送ルールを策定し、例えば、Wi-Fiチャネルのネットワーク状態が良い場合、ユーザの下りトラフィックを節約するように、4Gチャネルでパケットを伝送しないか、または非フル量のパケットを伝送してもよい。
【0095】
本願の一実施例では、デュアルチャネルクライアントは、デュアルチャネルプロキシサーバからフィードバックされた上りパケットの遅延を受信し、そして、現在Wi-Fiチャネルのフリーズレベルを判断し、これにより、4Gチャネルのパケット伝送ルールを策定することもできる。
【0096】
本願の上記実施例の技術案は、Wi-Fiチャネルと4Gチャネルを例として、デュアルチャネルのデータ伝送技術案について詳細に説明する。本願の他の実施例では、
図12に示すように、デュアルチャネルは、さらに、無線チャネルおよび有線チャネルであってもよく、無線チャネルは、Wi-Fiチャネルであってもよく、有線チャネルは、OTG(On-The-Go)回線からネットワーク回線に変換接続することによりネットワークにアクセスするものであってもよい。または、
図13に示すように、デュアルチャネルは、無線チャネルとブルートゥース(登録商標)チャネルであってもよく、無線チャネルは、Wi-Fiチャネルであってもよく、ブルートゥース(登録商標)チャネルは、ブルートゥース(登録商標)ネットワーク共有デバイスを介してネットワークにアクセスするものであってもよい。ここで、ブルートゥース(登録商標)ネットワーク共有デバイスは、特定用途の共有デバイスであってもよく、携帯電話のブルートゥース(登録商標)ネットワークのホットスポットまたはコンピュータのホットスポットであってもよい。無論、デュアルチャネルは、さらに、有線チャネルとブルートゥース(登録商標)チャネル、または有線チャネルと4Gチャネル、ブルートゥース(登録商標)チャネルと4Gチャネルなどであってもよい。
【0097】
また、本願の他の実施例では、3つのチャネルまたはより多くのチャネルを介してデータ伝送を実現することもでき、ここで、これらのデータチャネルには、Wi-Fiチャネル、ブルートゥース(登録商標)チャネル、有線チャネル、移動通信ネットワーク(例えば3G/4G/5Gなど)のデータチャネルなどが含まれてもよい。
【0098】
本願の実施例のマルチチャネルデータ伝送技術案は、その実現がフレキシブルであり、ほとんどのサービスがゼロコストでアクセスすることができ、サービスがいかなる変更や適応を行う必要もなく、かつ、例えばゲームサービスなどの、すべてのタイプのサービスおよびアプリケーションがサポートされることができる。また、そのうちのあるデータチャネルにネットワーク故障が発生した場合、ユーザは、全く感知せず、かつ、クライアントネットワークのフリーズ状況の70%以上が効果的に予防されることができ、特に、Wi-Fiネットワークが複雑である場合、その効果がより顕著になる。トーナメントネットワークにおいて、ほとんどのWi-Fi無線干渉状況が予防されることができ、tcpリンクおよびデュアルチャネルアクセラレーションの問題が完璧に解決された。
【0099】
以下、本願の上記実施例におけるデータ伝送方法の実行に使用できる本願の装置の実施例について説明する。本願の装置の実施例に開示されていない詳細については、本願の上記のデータ伝送方法の実施例を参照してください。
【0100】
図14は、本願の一実施例によるデータ伝送装置を概略的に示すブロック図である。
【0101】
図14を参照すると、本願の一実施例によるデータ伝送装置1400は、受信ユニット1402と、第1処理ユニット1404と、第2処理ユニット1406と、送信ユニット1408とを含む。
【0102】
ここで、受信ユニット1402は、第1デバイスによって複数のデータチャネルを介して送信された第1データパケットを受信するために使用され、第1処理ユニット1404は、前記第1データパケットを解析して前記第1デバイスのアドレス情報を取得し、前記第1データパケットのデータパケットヘッダーに基づいて、前記第1データパケットに対して集約処理を実行して、第2データパケットを取得するために使用され、第2処理ユニット1406は、前記第2データパケットのソースアドレス情報を指定アドレス情報に変更して、第3データパケットを取得するために使用され、送信ユニット1408は、前記第3データパケットを第2デバイスに送信するために使用され、ここで、前記第2デバイスは、前記第1デバイスがアクセスする必要のあるデバイスである。
【0103】
本願の一実施例では、データ伝送装置1400は、さらに、前記第2デバイスによって送信されたデータパケットから、前記第1デバイスに送信する必要のある第4データパケットを決定するために使用される第1決定ユニットを含み、前記第2処理ユニット1406は、さらに、前記第4データパケットの宛先アドレス情報を前記第1デバイスのアドレス情報に変更して、第5データパケットを取得するために使用され、前記送信ユニット1408は、さらに、前記第5データパケットを前記第1デバイスに送信するために使用される。
【0104】
本願の一実施例では、データ伝送装置1400は、第1記憶ユニットをさらに含み、ここで、前記第1処理ユニット1404は、さらに、前記第1データパケットを解析して、前記第1デバイスがアクセスする必要のあるアドレス情報を取得し、前記第1デバイスがアクセスする必要のあるアドレス情報に基づいて、前記第2デバイスを決定するために使用され、前記第1記憶ユニットは、前記第1デバイスがアクセスする必要のあるアドレス情報を記憶するように構成される。
【0105】
本願の一実施例では、前記第1決定ユニットは、前記第2デバイスによって送信されたデータパケットのソースアドレス情報を決定し、前記第1デバイスがアクセスする必要のあるアドレス情報に基づいて、前記第2デバイスによって送信されたデータパケットから、前記ソースアドレス情報と前記第1デバイスがアクセスする必要のあるアドレス情報とがマッチングしているデータパケットをフィルタリングし、フィルタリングされたデータパケットを前記第4データパケットとするように構成される。
【0106】
本願の一実施例では、データ伝送装置1400は、さらに、前記第1デバイスに仮想ポートを割り当てるために使用される割り当てユニットと、前記第1デバイスのアドレス情報を前記第1デバイスに割り当てられた仮想ポートと関連付けて記憶するために使用される第2記憶ユニットであって、ここで、前記指定アドレス情報には、前記第1デバイスに割り当てられた仮想ポートが含まれる第2記憶ユニットと、を含む。
【0107】
本願の一実施例では、第2処理ユニット1406は、さらに、前記第4データパケットの宛先アドレス情報を、前記第1デバイスのアドレス情報に変更する前に、前記第4データパケットの宛先アドレス情報に含まれる仮想ポートの情報に基づいて、記憶されている前記第1デバイスのアドレス情報を取得するために使用される。
【0108】
本願の一実施例では、受信ユニット1402は、さらに、前記第1デバイスによって送信された、前記第1データパケットを伝送するためのデータチャネルの情報を受信して記憶するために使用され、前記送信ユニット1408は、記憶されている最新のデータチャネル情報に基づいて、前記第5データパケットを前記第1デバイスに送信するように構成される。
【0109】
本願の一実施例では、データ伝送装置1400は、さらに、前記第1デバイスによって送信された第1データパケットに対する受信状況に基づいて、前記第1デバイスが第1データパケットを送信する際に採用したデータチャネルのネットワーク状態を決定するために使用される第2決定ユニットを含み、前記送信ユニット1408は、前記第1デバイスが第1データパケットを送信する際に採用したデータチャネルのネットワーク状態の優劣に基づいて、1つまたは複数のデータチャネルを選択して前記第5データパケットを前記第1デバイスに送信するように構成される。
【0110】
本願の一実施例では、前記第2決定ユニットは、前記第1デバイスによって送信されたデータパケットを受信した第1時刻と、前記第1デバイスによって送信されたデータパケットに含まれる第2時刻とに基づいて、前記第1デバイスによって送信されたデータパケットの遅延を計算し、ここで、前記第2時刻は、前記第1デバイスがデータパケットを送信する時刻と、前記プロキシサーバと前記第1デバイスとの間のクロック同期補償値とに基づいて決定されたものであり、前記第1デバイスによって送信されたデータパケットの遅延に基づいて、前記第1デバイスがデータパケットを送信する際に採用したデータチャネルのネットワーク状態を決定するように構成される。
【0111】
本願の一実施例では、データ伝送装置1400は、さらに、前記第1デバイスがデータパケットを受信する際に採用したデータチャネルのネットワーク状態を決定するために、前記第1デバイスからフィードバックされた、前記第1デバイスに伝送されたデータパケットの受信状況を受信するために使用される第3決定ユニットを含み、前記送信ユニット1408は、前記第1デバイスがデータパケットを受信する際に採用したデータチャネルのネットワーク状態の優劣に基づいて、1つまたは複数のデータチャネルを選択して前記第5データパケットを前記第1デバイスに送信するように構成される。
【0112】
本願の一実施例では、データ伝送装置1400は、さらに、前記第1デバイスによって送信された第1データパケットに対する受信状況に基づいて、前記第1デバイスが第1データパケットを送信する際に採用したデータチャネルのネットワーク状態を決定するために使用される第4決定ユニットを含み、前記送信ユニット1408は、さらに、第1デバイスがネットワーク状態に基づいて、データパケットを再び送信する際に、採用されたデータチャネルを選択するように、前記第1デバイスが第1データパケットを送信する際に採用したデータチャネルのネットワーク状態を前記第1デバイスに送信するために使用される。
【0113】
本願の一実施例では、データ伝送装置1400は、さらに、前記第1デバイスによって送信された、TCP接続を切断するためのデータメッセージを受信すると、所定の期間を経過した後、記憶されている、前記第1デバイスに関連する情報を削除し、および/または、前記第1デバイスとTCP接続を確立するプロセスにおいて、受信した、前記第1デバイスによって送信された1番目のTCPデータメッセージがTCP接続を確立するためのデータメッセージではない場合、接続をリセットするためのデータメッセージを前記第1デバイスに送信し、および/または、前記第2デバイスによって送信されるデータメッセージのメッセージセグメントの最大長さを設定するために使用される第3処理ユニットを含む。
【0114】
図15は、本願の実施例を実現するための電子デバイスに適するコンピュータシステムの構造を示す概略図である。
【0115】
説明すべきものとして、
図15に示す電子デバイスのコンピュータシステム1500は、1つの例示にすぎず、本願の実施例の機能および使用範囲に対していかなる制限ももたらしてはならない。
【0116】
図15に示すように、コンピュータシステム1500は、中央処理ユニット(CPU:Central Processing Unit)1501を含み、読み取り専用メモリ(ROM:Read-Only Memory)1502に記憶されているプログラムまたは記憶部1508からランダムアクセスメモリ(RAM:Random Access Memory)1503にロードされたプログラムに従って、様々な適切な動作および処理を実行でき、例えば、上記実施例に記載の方法を実行する。RAM1503には、システム操作に必要な様々なプログラムおよびデータも記憶されている。CPU1501と、ROM1502と、RAM1503とは、バス1504を介して互いに接続される。入力/出力(I/O:Input/Output)インターフェース1505も、バス1504に接続される。
【0117】
キーボード、マウスなどを含む入力部1506、陰極線管(CRT:Cathode Ray Tube)と、液晶ディスプレイ(LCD:Liquid Crystal Display)などと、スピーカーなどとを含む出力部1507、ハードディスクなどを含む記憶部1508、およびローカルエリアネットワーク(LAN:Local Area Network)カードと、モデムなどのネットワークインターフェースカードとを含む通信部1509などの部品は、I/Oインターフェース1505に接続される。通信部1509は、インターネットなどのネットワークを介して通信処理を実行する。ドライバ1510も、必要に応じてI/Oインターフェース1505に接続される。磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどの取り外し可能な媒体1511は、必要に応じてドライバ1510に取り付けられ、これにより、その媒体1511から読み取られたコンピュータプログラムは、必要に応じて記憶部1508にインストールされる。
【0118】
特に、本願の実施例によれば、以下にフローチャートを参照して説明するプロセスは、コンピュータソフトウェアプログラムとして実現されることができる。例えば、本願の実施例は、コンピュータプログラム製品を含み、それは、コンピュータ読み取り可能な媒体に搭載されているコンピュータプログラムを含み、当該コンピュータプログラムは、フローチャートに示される方法を実行するためのプログラムコードを含む。このような実施例において、当該コンピュータプログラムは、通信部1509を介してネットワークからウンロードしてインストールされるか、および/または、取り外し可能な媒体1511からインストールされることができる。当該コンピュータプログラムは、中央処理ユニット(CPU)1501によって実行されると、本願のシステムに限定されている各機能を実行する。
【0119】
説明すべきもとして、本願の実施例に示すコンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な信号媒体、またはコンピュータ読み取り可能な記憶媒体、あるいは上記両者の任意の組合せであってもよい。コンピュータ読み取り可能な記憶媒体は、例えば電気、磁気、光学、電磁気、赤外線、または半導体のシステム、装置またはデバイス、あるいは以上の任意の組合せであってもよいが、これらに限定されない。コンピュータ読み取り可能な記憶媒体のさらなる具体的な例は、1つまたは複数のワイヤを有する電気的接続、ポータブルコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM:Erasable Programmable Read Only Memory)、ラッシュメモリ、光ファイバ、ポータブルコンパクト磁気ディスク読み取り専用メモリ(CD-ROM:Compact Disc Read-Only Memory)、光記憶デバイス、磁気デバイス、または上記の任意の適切な組み合わせを含むが、これらに限定されない。本願において、コンピュータ読み取り可能な記憶媒体は、プログラムを含むかまたは記憶する任意の有形の媒体であってもよく、当該プログラムは、命令実行システム、装置またはデバイスによって使用されるか、またはそれらと組み合わせて実行されることができる。本願において、コンピュータ読み取り可能な信号媒体は、ベースバンド内でまたは搬送波の一部として伝搬されるデータ信号を含んでもよく、ここで、コンピュータ読み取り可能なプログラムコードが搭載されている。このような伝搬されるデータ信号は、複数の形式を採用することができ、電磁気信号、光信号あるいは上記の任意の適切な組み合わせを含むが、これらに限定されない。コンピュータ読み取り可能な信号媒体は、さらに、コンピュータ読み取り可能な記憶媒体以外の任意のコンピュータ読み取り可能な媒体であってもよく、当該コンピュータ読み取り可能な媒体は、命令実行システム、装置またはデバイスによって使用されるかまたはそれらと組み合わせて使用されるためのプログラムを、送信、伝搬または伝送することができる。コンピュータ読み取り可能な媒体に含まれるプログラムコードは、任意の適切な媒体で伝送されることができ、無線、有線など、または上記の任意の組合せを含むが、これらに限定されない。
【0120】
図面におけるフローチャートおよびブロック図は、本願の各実施例によるシステム、方法およびコンピュータプログラム製品が実現可能なアーキテクチャ、機能および操作を図示した。この点で、フローチャートまたはブロック図における各ブロックは、1つのモジュール、プログラムセグメント、またはコードの一部を代表することができ、上記モジュール、プログラムセグメント、またはコードの一部は、所定のロジック機能を実現するための1つまたは複数の実行可能な命令を含む。一部の代替的なものとしての実現では、ブロックにマークされた機能は、図面にマークされた順序と異なる順序で発生してもよい、ということにも留意されたい。例えば、連続的に表示された2つのブロックは、基本的に並行で実行されてもよく、時には、逆の順序で実行されてもよいし、これは関連する機能に従って決定される。ブロック図またはフローチャートにおける各々のブロック、およびブロック図またはフローチャートにおけるブロックの組合せは、所定の機能や操作を実行するための特定用途のハードウェアに基づくシステムで実現されてもよく、または特定用途ハードウェアとコンピュータ命令との組み合わせで実現されてもよい、ということにも注意されたい。
【0121】
本願に記述された実施例に係るユニットは、ソフトウェアの方式で実現されてもよく、ハードウェアの方式で実現されてもよいし、説明されたユニットは、プロセッサに設置されてもよい。ここで、これらのユニットの名称は、ある場合には、当該ユニット自体に対する限定を構成しない。
【0122】
別の態様として、本願は、コンピュータ読み取り可能な媒体を提供し、当該コンピュータ読み取り可能な媒体は、上記の実施例に記載の電子デバイスに含まれるものであってもよく、当該電子デバイスに組み込まれず、単独で存在するものであってもよい。上記のコンピュータ読み取り可能な媒体には、1つまたは複数のプログラムが搭載されており、上記1つまたは複数のプログラムが当該電子デバイスによって実行される場合、当該電子デバイスに、上記の実施例に記載の方法を実施させる。
【0123】
上記の詳細な説明に、動作を実行するためのデバイスのいくつかのモジュールまたはユニットを言及したが、このような区分は必須ではない、ということに留意されたい。実際に、本願の実施形態によれば、以上で説明した2つ以上のモジュールまたはユニットの特徴および機能は、1つのモジュールまたはユニットで具現化されてもよい。逆に、以上で説明した1つのモジュールまたはユニットの特徴および機能は、さらに、複数のモジュールまたはユニットによって具現化されるように区分されてもよい。
【0124】
以上の実施形態の説明により、当業者であれば、本明細書に説明した例示的な実施形態は、ソフトウェアで実現されてもよいし、ソフトウェアと必要なハードウェアとを組み合わせる方式で実現されてもよい、ということを容易に理解できる。したがって、本願の実施形態による技術案は、ソフトウェア製品の形態で具現化され、当該ソフトウェア製品は、不揮発性記憶媒体(CD-ROM、USB、移動ハードディスクなどであり得る)またはネットワークに記憶されてもよく、コンピューティングデバイス(パーソナルコンピュータ、サーバ、タッチ端末、またはネットワークデバイスなどであり得る)に本願の実施形態による方法を実行させるいくつかの命令を含む。
【0125】
当業者は、明細書を検討し、本明細書に開示されている発明を実践した後、本願の他の実施方案を容易に想到することができる。本願は、本願のいかなる変形、用途または適応性変更を包含すること意図し、これらの変形、用途または適応性変更は、本願の一般的な原理に従い、かつ、本願に開示されていない本技術分野の周知の知識または慣用的な技術的手段を含む。
【0126】
本願は、上記に説明され、図面に示された正確な構造に限定されず、その範囲から逸脱しない限り、様々な修正および変更をなされ得ることを理解すべきである。本願の範囲は、添付の特許請求の範囲のみによって限定される。
【符号の説明】
【0127】
1400 データ伝送装置
1402 受信ユニット
1404 第1処理ユニット
1406 第2処理ユニット
1408 送信ユニット
1505 I/Oインターフェース
1506 入力部
1507 出力部
1508 記憶部
1509 通信部
1510 ドライバ
1511 取り外し可能な媒体