(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-20
(45)【発行日】2023-06-28
(54)【発明の名称】HTTPリクエスト伝送方法及びデバイス
(51)【国際特許分類】
H04L 67/02 20220101AFI20230621BHJP
H04L 67/2869 20220101ALI20230621BHJP
H04L 67/101 20220101ALI20230621BHJP
H04N 21/462 20110101ALI20230621BHJP
H04W 88/06 20090101ALI20230621BHJP
H04W 4/00 20180101ALI20230621BHJP
【FI】
H04L67/02
H04L67/2869
H04L67/101
H04N21/462
H04W88/06
H04W4/00 111
(21)【出願番号】P 2022533207
(86)(22)【出願日】2020-11-18
(86)【国際出願番号】 CN2020129893
(87)【国際公開番号】W WO2021109872
(87)【国際公開日】2021-06-10
【審査請求日】2022-06-24
(31)【優先権主張番号】201911223477.5
(32)【優先日】2019-12-03
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(73)【特許権者】
【識別番号】507232478
【氏名又は名称】北京大学
【氏名又は名称原語表記】PEKING UNIVERSITY
【住所又は居所原語表記】No.5, Yiheyuan Road, Haidian District, Beijing 100871, China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ワーン,ハオ
(72)【発明者】
【氏名】ホゥ,ジュヨン
(72)【発明者】
【氏名】シュイ,チェンゥレン
(72)【発明者】
【氏名】グオ,シーンミン
(72)【発明者】
【氏名】リー,シヤオジン
(72)【発明者】
【氏名】イエン,ジーヨーン
【審査官】木村 雅也
(56)【参考文献】
【文献】特表2014-529970(JP,A)
【文献】特表2017-518654(JP,A)
【文献】特表2016-504005(JP,A)
【文献】特表2020-521351(JP,A)
【文献】特表2013-520119(JP,A)
【文献】米国特許出願公開第2019/0354819(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/02
H04L 67/2869
H04L 67/101
H04N 21/462
H04W 88/06
H04W 4/00
(57)【特許請求の範囲】
【請求項1】
電子デバイスに適用される、ハイパーテキスト転送プロトコル
(HTTP
)リクエスト伝送方法であって、
前記電子デバイスによって、リクエスト対象のデータのバイト範囲に基づいて、第1のバイト範囲を第1のコンテンツ分配ネットワーク
(CDN
)サーバに割り当て、第2のバイト範囲を第2のCDNサーバに割り当てることであって、前記第1のバイト範囲と前記第2のバイト範囲との間に重複範囲が存在する、ことと、
前記電子デバイスによって、前記第1のバイト範囲に基づいて第1のHTTPリクエストを前記第1のCDNサーバに送信し、前記第2のバイト範囲に基づいて第2のHTTPリクエストを前記第2のCDNサーバに送信することと、を含み、
前記第1のHTTPリクエストは少なくとも前記第1のCDNサーバから第1のデータをダウンロードするために使用され、前記第2のHTTPリクエストは少なくとも前記第2のCDNサーバから第2のデータをダウンロードするために使用され、前記第1のデータ及び前記第2のデータは各々、バイト範囲が前記重複範囲であるデータであり、前記第1のCDNサーバからダウンロードしたデータと前記第2のCDNサーバからダウンロードしたデータとの間の一致をチェックするために使用される、方法。
【請求項2】
前記第1のバイト範囲によって識別されるリクエストされたデータの終了バイトは、前記第2のバイト範囲によって識別されるリクエストされたデータの開始バイトよりも大きい、請求項1に記載の方法。
【請求項3】
前記電子デバイスによって、前記リクエスト対象のデータのバイト範囲に基づいて、第1のバイト範囲を第1
のCDNサーバに割り当て、第2のバイト範囲を第2のCDNサーバに割り当てることは、
前記電子デバイスによって、前記リクエスト対象のデータの前記バイト範囲に基づいて、第3のバイト範囲を前記第1のCDNサーバに割り当て、第4のバイト範囲を前記第2のCDNサーバに割り当て
ることと、
前記電子デバイスによって、予め定義された初期値に基づいて、前記第3のバイト範囲によって識別されるリクエストされたデータの終了バイトを調整して、前記第1のバイト範囲を取得し、前記第4のバイト範囲を前記第2のバイト範囲として使用することと、を含む、請求項
2に記載の方法。
【請求項4】
前記方法は、
前記電子デバイスによって、前記第1のCDNサーバから前記第1のデータを受信し、前記第2のCDNサーバから前記第2のデータを受信することと、
前記電子デバイスによって、前記第1のデータ及び前記第2のデータに基づいて、前記第1のCDNサーバからダウンロードした前記データと前記第2のCDNサーバからダウンロードした前記データとの間の前記一致をチェックすることと、をさらに含む、請求項
2又は3に記載の方法。
【請求項5】
前記電子デバイスによって、前記第1のデータ及び前記第2のデータに基づいて、前記第1のCDNサーバからダウンロードした前記データと前記第2のCDNサーバからダウンロードした前記データとの間の前記一致をチェックすることの前に、前記方法は、
前記電子デバイスによって、前記第1のデータ及び前記第2のデータにおけるパディング・データの割合を取得することを含み、
前記電子デバイスによって、前記第1のデータ及び前記第2のデータに基づいて、前記第1のCDNサーバからダウンロードした前記データと前記第2のCDNサーバからダウンロードした前記データとの間の前記一致をチェックすることは、
前記パディング・データの前記割合がしきい値よりも小さいと決定するときに、前記電子デバイスによって、前記第1のデータ及び前記第2のデータに基づいて、前記第1のCDNサーバからダウンロードした前記データと前記第2のCDNサーバからダウンロードした前記データとの間の前記一致をチェックすることをさらに含む、請求項4に記載の方法。
【請求項6】
前記方法は、
前記パディング・データの前記割合が前記しきい値よりも大きいと決定するときに、前記電子デバイスによって、前記第1のバイト範囲によって識別される前記リクエストされたデータの前記終了バイトを調整し、前記第1のバイト範囲と前記第2のバイト範囲との間の重複範囲を増加させ、少なくとも前記第1のCDNサーバから第3のデータをダウンロードし、前記第2のCDNサーバから第4のデータをダウンロードすることと、
前記第3のデータ及び前記第4のデータにおけるパディング・データの割合が前記しきい値よりも小さいと決定するときに、前記電子デバイスによって、前記第3のデータ及び前記第4のデータに基づいて、前記第1のCDNサーバからダウンロードした前記データと前記第2のCDNサーバからダウンロードした前記データとの間の前記一致をチェックすることと、前記第3のデータ及び前記第4のデータにおける前記パディング・データの前記割合が前記しきい値よりも大きいと決定するときに、前記電子デバイスによって、前記第1のバイト範囲と前記第2のバイト範囲との間の前記重複範囲を増加させ続け、前記第1のCDNサーバからダウンロードし、前記第2のCDNサーバからダウンロードし、かつ、同じバイト範囲を有するデータにおけるパディング・データの割合が前記しきい値未満になるまで、前記第1のCDNサーバからダウンロードした前記データと前記第2のCDNサーバからダウンロードした前記データとの間の前記一致をチェックすることと、をさらに含む、請求項5に記載の方法。
【請求項7】
前記第1のHTTPリクエストは、リソース記述子及び前記第1のバイト範囲を含むか、前記第1のHTTPリクエストは、前記リソース記述子及び前記リクエスト対象のデータの前記バイト範囲を含むか、又は前記第1のHTTPリクエストは、前記リソース記述子を含み、
前記第2のHTTPリクエストは、前記リソース記述子及び第2のバイト範囲を含み、
前記リソース記述子は、前記リクエスト対象のデータを記述するために使用される、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記第1のHTTPリクエストが、前記リソース記述子及び前記リクエスト対象のデータの前記バイト範囲を含むか、又は前記第1のHTTPリクエストが、前記リソース記述子を含むときに、前記方法は、
前記電子デバイスが、前記第1のCDNサーバからダウンロードした前記データが、前記第2のCDNサーバからダウンロードした前記データと一致しているとチェックするときに、前記電子デバイスによって、リセット・パケットを前記第1のCDNサーバに送信し、前記第1のCDNサーバからダウンロードした前記データ及び前記第2のCDNサーバからダウンロードした前記データを接合して、前記リクエスト対象のデータを取得することと、
前記電子デバイスが、前記第1のCDNサーバからダウンロードした前記データが、前記第2のCDNサーバからダウンロードした前記データと一致していないとチェックするときに、前記電子デバイスによって、前記リセット・パケットを前記第2のCDNサーバに送信し、前記第1のCDNサーバから前記リクエスト対象のデータをダウンロードすることと、をさらに含み、
前記リセット・パケットは、前記電子デバイスにデータを返すことを停止することを示すために使用される、請求項7に記載の方法。
【請求項9】
前記第1のHTTPリクエストが、前記リソース記述子及び前記第1のバイト範囲を含むときに、前記方法は、
前記電子デバイスが、前記第1のCDNサーバからダウンロードした前記データが、前記第2のCDNサーバからダウンロードしたデータと一致しているとチェックするときに、前記電子デバイスによって、前記第1のCDNサーバからダウンロードした前記データ及び前記第2のCDNサーバからダウンロードした前記データを接合して、前記リクエスト対象のデータを取得することか、又は
前記電子デバイスが、前記第1のCDNサーバからダウンロードした前記データが、前記第2のCDNサーバからダウンロードした前記データと一致していないとチェックするときに、前記電子デバイスによって、第3のHTTPリクエストを前記第1のCDNサーバに送信し、リセット・パケットを前記第2のCDNサーバに送信することであって、前記第3のHTTPリクエストは、前記リクエスト対象のデータにおけるものであって、前記第1のバイト範囲によって識別されないデータをダウンロードすることをリクエストするために使用され、前記リセット・パケットは、前記電子デバイスにデータを返すことを停止することを示すために使用される、ことをさらに含む、請求項7に記載の方法。
【請求項10】
第1のHTTPリクエストを前記第1のCDNサーバに送信することは、
前記電子デバイスによって、第1のネットワークを介して前記第1のHTTPリクエストを前記第1のCDNサーバに送信することを含み、
第2のHTTPリクエストを前記第2のCDNサーバに送信することは、
前記電子デバイスによって、第2のネットワークを介して前記第2のHTTPリクエストを前記第2のCDNサーバに送信することを含み、
前記第1のネットワークは、前記第2のネットワークとは異なる、請求項1~9のいずれか一項に記載の方法。
【請求項11】
前記第1のネットワークはセルラ・ネットワークであり、前記第2のネットワークは無線フェデリティWi-Fiネットワークである、請求項10に記載の方法。
【請求項12】
前記電子デバイスによって、前記第1のデータ及び前記第2のデータに基づいて、前記第1のCDNサーバからダウンロードした前記データと前記第2のCDNサーバからダウンロードした前記データとの間の前記一致をチェックすることは、
前記電子デバイスによって、バイナリ比較方式で前記第1のデータと前記第2のデータを比較することと、前記第1のデータと前記第2のデータとの間のバイナリ比較が一致しているときに、前記第1のCDNサーバからダウンロードした前記データが前記第2のCDNサーバからダウンロードした前記データと一致していると決定することか、又は前記第1のデータと前記第2のデータとの間のバイナリ比較が一致していないときに、前記第1のCDNサーバからダウンロードした前記データが前記第2のCDNサーバからダウンロードした前記データと一致していないと決定することを含む、請求項4~11のいずれか一項に記載の方法。
【請求項13】
電子デバイスであって、プロセッサ、
及びメモリ
を含み、前記メモリは、コンピュータ・プログラム・コードを記憶するように構成されており、前記コンピュータ・プログラム・コードは、コンピュータ命令を含み、前記コンピュータ命令が前記電子デバイスによって実行されるときに、前記電子デバイスは、請求項1~12のいずれか一項に記載のハイパーテキスト転送プロトコル
(HT
TP
)リクエスト伝送方法を実行することが可能となる、電子デバイス。
【請求項14】
コンピュータ・ソフトウェア命令を含む、コンピュータ可読記憶媒体であって、
前記コンピュータ・ソフトウェア命令が電子デバイスで動作するときに、前記電子デバイスは、請求項1~12のいずれか一項に記載のハイパーテキスト転送プロトコル
(HTTP
)リクエスト伝送方法を実行することが可能となる、コンピュータ可読記憶媒体。
【請求項15】
コンピュータ・プログラム製品がコンピュータで動作するときに、前記コンピュータは、請求項1~12のいずれか一項に記載のハイパーテキスト転送プロトコル
(HTTP
)リクエスト伝送方法を実行することが可能となる、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、電子デバイスの分野に関し、特に、ハイパーテキスト転送プロトコル(hypertext transfer protocol、HTTP)リクエスト伝送方法及びデバイスに関係する。
【背景技術】
【0002】
エレクトロニクス技術の発展に伴い、携帯電話、タブレット・コンピュータなどの電子デバイスは、通信体験を改善するために無線フェデリティ(wireless fidelity、Wi-Fi)ネットワーク及びセルラ・ネットワークの同時使用を可能にする。例えば、ユーザが携帯電話でビデオを視聴するときに、ユーザは、Wi-Fiネットワークとセルラ・ネットワークの両方を使用することができる。これは、より大きな集約帯域幅を提供することができ、ビデオのダウンロード速度が早くなり、フレームのフリーズの発生が少なくなり、ビデオ再生がスムーズになるようにする。
【0003】
Wi‐Fiネットワークとセルラ・ネットワークの同時使用を実装するために、マルチパス・ハイパーテキスト転送プロトコル(multipath hypertext transfer protocol、MPHTTP)技術が産業界で提案されている。MPHTTP技術では、アプリケーション(application、APP)によって開始され元のHTTPリクエストに対して、電子デバイスが、元のHTTPリクエストを、元のHTTPリクエストで搬送されたバイト範囲(byte Range)に基づいて複数の(例えば、2つの)HTTPリクエストに分割し、次いでWi-Fiネットワーク及びセルラ・ネットワークを介して、対応するコンテンツ分配ネットワーク(content distribution network、CDN)サーバに複数のHTTPリクエストを送信して、CDNサーバから対応するデータを引き出してもよい。これは、より大きな集約帯域幅を提供する。
【0004】
一般的に、コンテンツ・アクセスを提供するCDNサーバは、異なるネットワークによって異なる。電子デバイスが、分割を介して取得された複数のHTTPリクエストに基づいて、同じCDNサーバからデータを引き出す場合、ダウンロード速度が非常に低下することがあるし、クロス・ネットワーク・アクセスによりアクセスが失敗することもある。したがって、ユーザが最適なサービス体験を取得することができるように、電子デバイスは、通常、分割を介して取得される複数のHTTPリクエストに基づいて、異なるCDNサーバからデータを引き出す。例えば、
図1に示すように、元のHTTPリクエストのバイト範囲は1~200であり、セルラ・ネットワークにおいてコンテンツ・アクセスを提供するCDNサーバがCDN1であり、Wi-Fiネットワークにおいてコンテンツ・アクセスを提供するCDNサーバがCDN2である。電子デバイスは、元のHTTPリクエストを2つのHTTPリクエスト、すなわち、バイト範囲1~100を搬送するHTTPリクエスト1とバイト範囲101~200を搬送するHTTPリクエスト2に分割してもよい。電子デバイスは、セルラ・ネットワークを介してCND1にHTTPリクエスト1を送信して、バイト範囲が1~100であるデータをCDN1から引き出し、Wi-Fiネットワークを介してCDN2にHTTPリクエスト2を送信して、バイト範囲が101~20であるデータをCDN2から引き出す。次に、電子デバイスは、CDN1から取得されたデータとCDN2から取得されたデータを接合して、元のHTTPリクエストに基づいて引き出されるようにリクエストされたデータを取得する。
【0005】
しかし、元のHTTPリクエストを複数のHTTPリクエストに分割して、異なるCDNサーバからデータを引き出すと、引き出されたデータの不一致を発生させることがある。その結果、接合によって最終的に取得されたデータは無効である。
【発明の概要】
【0006】
本出願の実施形態は、元のHTTPリクエストを複数のHTTPリクエストに分割して、異なるサーバからデータを引き出すと、引き出されたデータの不一致を引き起こすことがあるため、接合を介して最終的に取得されたデータが無効となる問題を解決するHTTPリクエスト伝送方法及びデバイスを提供する。
【0007】
前述の目的を達成するために、本出願において、以下の技術的解決策が使用される。
【0008】
第1の態様によれば、本出願の実施形態は、HTTPリクエスト伝送方法を提供する。方法は、電子デバイスに適用されてもよい。方法は、電子デバイスが、リクエスト対象のデータのバイト範囲に基づいて、第1のCDNサーバに第1のバイト範囲を割り当て、第2のCDNサーバに第2のバイト範囲を割り当てる。第1のバイト範囲と第2のバイト範囲との間に重複範囲が存在する。電子デバイスは、第1のCDNサーバに割り当てられた第1のバイト範囲に基づいて第1のHTTPリクエストを第1のCDNサーバに送信し、第2のCDNサーバに割り当てられた第2のバイト範囲に基づいて第2のHTTPリクエストを第2のCDNサーバに送信する。第1のHTTPリクエストは、少なくとも第1のCDNサーバから第1のデータをダウンロードするために使用される。第2のHTTPリクエストは、少なくとも第2のCDNサーバから第2のデータをダウンロードするために使用される。第1のデータ及び第2のデータは各々、バイト範囲が重複範囲であるデータであり、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの一致をチェックするために使用される。
【0009】
技術的解決策によれば、電子デバイスが複数のCDNサーバからデータをダウンロードする必要があるときに、異なるCDNサーバに割り当てられたバイト範囲に対して重複範囲が設計されてもよく、これは、電子デバイスが全ての異なるCDNサーバから重複範囲におけるデータをダウンロードすることを意味する。データのこの部分は、異なるCDNサーバから引き出されたデータ間の一致をチェックするために使用される。次いで、異なるCDNサーバから引き出されたデータが一致していると決定するときに、電子デバイスは、データを接合して、最終的に必要なデータを取得してもよい。このように、MPHTTP技術は、より大きな集約帯域幅を取得するために使用され、データ接合妥当性及び正常なサービスの動作を確保する。
【0010】
可能な実装では、第1のバイト範囲によって識別されるリクエストされたデータの終了バイトは、第2のバイト範囲によって識別されるリクエストされたデータの開始バイトよりも大きい。言い換えれば、第2のバイト範囲における小さい方の数を有するバイトは、第1のバイト範囲における大きい方の数を有するバイトと部分的に重複する。
【0011】
別の可能な実装では、電子デバイスが、リクエスト対象のデータのバイト範囲に基づいて、第1のバイト範囲を第1のコンテンツ分配ネットワークCDNサーバに割り当て、第2のバイト範囲を第2のCDNサーバに割り当てることは、電子デバイスが、リクエスト対象のデータのバイト範囲に基づいて、第1のCDNサーバに第3のバイト範囲を割り当て、第2のCDNサーバに第4のバイト範囲を割り当てることを含んでもよい。第3のバイト範囲と第4のバイト範囲との間に重複範囲が存在しない。第3のバイト範囲と第4のバイト範囲との間に連接は、リクエスト対象のデータのバイト範囲である。電子デバイスは、予め定義された初期値に基づいて、第3のバイト範囲によって識別されるリクエスト対象のデータの終了バイトを調整して、第1のバイト範囲を取得し、第4のバイト範囲を前記第2のバイト範囲として使用する。このようにして、対応するバイト範囲が最初に異なるCDNサーバに割り当てられ、割り当てられたバイト範囲が、特定の性能要件、例えば、データ・ダウンロード速度が最適であるという要件、又は異なるCDNサーバの性能がバランス取れているという要件を満たすことができるようにする。
【0012】
別の可能な実装では、方法は、電子デバイスが第1のCDNサーバから第1のデータを受信し、第2のCDNサーバから第2のデータを受信することをさらに含んでもよい。電子デバイスは、第1のデータ及び第2のデータに基づいて、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの間の一致をチェックする。
【0013】
別の可能な実装では、電子デバイスが、第1のデータ及び第2のデータに基づいて、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの間の一致をチェックする前に、方法は、さらに、電子デバイスが、第1のデータ及び第2のデータにおける埋め込みデータの割合を取得することをさらに含んでもよい。電子デバイスが、第1のデータ及び第2のデータに基づいて、第1のCDNサーバからダウンロードされたデータと第2のCDNサーバからダウンロードされたデータとの間の一致をチェックすることは、パディング・データの割合がしきい値よりも小さいと決定するときに、電子デバイスによって、第1のデータ及び第2のデータに基づいて、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの間の一致をチェックすることを含んでもよい。データ一致チェックが実行される前に、比較対象のデータにおけるパディング・データの割合が最初に決定される。割合が特定の条件を満たすときにのみ、データ一致チェックが実行されて、データ一致チェックの正確性を確保する。
【0014】
別の可能な実施において、方法は、パディング・データの割合がしきい値よりも大きいと決定するときに、電子デバイスが、第1のバイト範囲によって識別されるリクエストされたデータの終了バイトを調整し、第1のバイト範囲と第2のバイト範囲との間の重複範囲を増加させ、少なくとも第1のCDNサーバから第3のデータをダウンロードし、第2のCDNサーバから第4のデータをダウンロードすることをさらに含んでもよい。第3のデータ及び第4のデータにおけるパディング・データの割合がしきい値より小さいと決定する場合、電子デバイスが、第3のデータ及び第4のデータに基づいて、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの間の一致をチェックする。第3のデータ及び第4のデータにおけるパディング・データの割合がしきい値よりも大きいと決定するときに、電子デバイスが、第1のバイト範囲と第2のバイト範囲との間の重複範囲を増加させ続け、第1のCDNサーバからダウンロードし、第2のCDNサーバからダウンロードし、かつ同じバイト範囲を有するデータにおけるパディング・データの割合がしきい値よりも小さくなるまで、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの間の一致をチェックする。このようにして、比較対象のデータにおけるパディング・データの割合がしきい値よりも大きいと決定されたときに、重複範囲のサイズが大きくなり、他のデータを取得してデータ一致をチェックすることができるようにする。
【0015】
別の実装では、第1のHTTPリクエストは、リソース記述子及び第1のバイト範囲を含み、第1のHTTPリクエストは、リソース記述子及びデータのバイト範囲が含まれるか、又は第1のHTTPリクエストは、リソース記述子を含む。第2のHTTPリクエストは、リソース記述子及び第2のバイト範囲を含む。リソース記述子は、リクエスト対象のデータを記述するために使用される。
【0016】
別の可能な実装では、第1のHTTPリクエストがリソース記述子及びリクエスト対象のデータのバイト範囲を含むか、又は第1のHTTPリクエストがリソース記述子を含むときに、方法は、電子デバイスが、第1のCDNサーバからダウンロードしたデータが第2のCDNサーバからダウンロードされたデータと一致しているとチェックするときに、電子デバイスが、リセット・パケットを第1のCDNサーバに送信し、第1のCDNサーバからダウンロードしたデータ及び第2のCDNサーバからダウンロードしたデータを接合して、リクエスト対象のデータを取得することか、又は電子デバイスが、第1のCDNサーバからダウンロードしたデータが第2のCDNサーバからダウンロードしたデータと一致していないとチェックするときに、電子デバイスは、リセット・パケットを第2のCDNサーバに送信し、第1のCDNサーバからリクエスト対象のデータをダウンロードすることを含んでもよい。リセット・パケットは、電子デバイスへのデータの返却を停止することを示すために使用される。
【0017】
別の可能な実装では、第1のHTTPリクエストがリソース記述子及び第1のバイト範囲を含むときに、方法は、電子デバイスが、第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致しているとチェックするときに、電子デバイスは、第1のCDNサーバからダウンロードしたデータ及び第2のCDNサーバからダウンロードしたデータを接合して、リクエスト対象のデータを取得することか、又は電子デバイスが、第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致していないとチェックするときに、電子デバイスは、第3のHTTPリクエストを第1のCDNサーバに送信し、リセット・パケットを第2のCDNサーバに送信する。第3のHTTPリクエストは、リクエスト対象のデータに含まれ、第1のバイト範囲によって識別されないデータをダウンロードすることをリクエストするために使用される。リセット・パケットは、電子デバイスへのデータの返却を停止することを示すために使用される。
【0018】
第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致しているとチェックされるときに、第1のCDNサーバからダウンロードしたデータは、使用するために接合されてもよい。第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致していないとチェックされる場合、第1のCDNサーバからダウンロードしたデータが第2のCDNサーバからダウンロードしたデータと接合されたときに、接合を介して取得されるデータが無効となり得ることを示す。電子デバイスは、リクエスト対象のデータを第1のCDNサーバからダウンロードしてもよく、第2のCDNサーバから返されたデータを使用しない。
【0019】
別の可能な実装では、電子デバイスが第1のCDNサーバに第1のHTTPリクエストを送信することは、電子デバイスが第1のネットワークを介して第1のHTTPリクエストを第1のCDNサーバに送信する。電子デバイスが第2のCDNサーバに第2のHTTPリクエストを送信することには、電子デバイスが第2のネットワークを介して第2のHTTPリクエストを第2のCDNサーバに送信する。第1のネットワークは、第2のネットワークとは異なる。
【0020】
別の可能な実装では、第1のネットワークはセルラ・ネットワークであり、第2のネットワークはWi-Fiネットワークである。
【0021】
別の可能な実装では、電子デバイスが、第1のデータ及び第2のデータに基づいて、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの間の一致をチェックすることは、電子デバイスが、バイナリ比較方式で第1のデータを第2のデータと比較することを含んでもよい。第1のデータと第2のデータとのバイナリ比較が一致しているときに、電子デバイスは、第1のCDNサーバからダウンロードしたデータが第2のCDNサーバからダウンロードしたデータと一致していると決定する。第1のデータと第2のデータとのバイナリ比較が一致していないときに、電子デバイスは、第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致していないと判定する。
【0022】
第2の態様によれば、本出願の実施形態は、電子デバイスを提供する。電子デバイスは、プロセッサ、メモリ、及び通信インターフェースを含んでもよい。メモリ及び通信インターフェースはプロセッサに結合される。通信インターフェースは、別の通信デバイスと通信するように構成されている。別のデバイスは、第1のCDNサーバ及び第2のCDNサーバを含む。メモリは、コンピュータ・プログラム・コードを記憶するように構成されている。コンピュータ・プログラム・コードは、コンピュータ命令を含む。コンピュータ命令が電子デバイスによって実行されるときに、電子デバイスは、第1の態様又は第1の態様の可能な実装のいずれかに従って、HTTPリクエスト伝送方法を実行することが可能となる。
【0023】
第3の態様によれば、本出願の一実施形態は、コンピュータ・ソフトウェア命令を含む、コンピュータ可読記憶媒体を提供する。コンピュータ・ソフトウェア命令が電子デバイス上で動作するときに、電子デバイスは、第1の態様又は第1の態様の可能な実装のいずれかにに従って、HTTPリクエスト伝送方法を実行することが可能となる。
【0024】
第4の態様によれば、本出願の実施形態は、コンピュータ・プログラム製品を提供する。コンピュータ・プログラム製品がコンピュータ上で動作するときに、コンピュータは、第1の態様又は第1の態様の可能な実装のいずれかに従って、HTTPリクエスト伝送方法を実行することが可能となる。
【0025】
第5の態様によれば、本出願の実施形態は、装置を提供する。装置は、前述の態様の方法において、電子デバイスの挙動を実装する機能を有する。本機能は、ハードウェアによって実装されてもよいし、対応するソフトウェアを実行することによってハードウェアによって実装されてもよい。ハードウェア又はソフトウェアは、前述の機能に対応する1つ以上のモジュール、例えば、割り当てユニット又はモジュール、送信ユニット又はモジュール、受信ユニット又はモジュール、及び取得ユニット又はモジュールを含む。
【0026】
第6の態様によれば、本出願の実施形態は、HTTPリクエスト伝送システムを提供する。システムは、少なくとも電子デバイス、第1のCDNサーバ、及び第2のCDNサーバを含む。電子デバイスは、リクエスト対象のデータのバイト範囲に基づいて、第1のCDNサーバに第1のバイト範囲を割り当て、リクエストされるデータのバイト範囲に基づいて第2のCDNサーバに第2のバイト範囲を割り当てることであって、第1のバイト範囲と第2のバイト範囲との間に重複範囲がある、ことと、第1のバイト範囲に基づいて、第1のHTTPリクエストを第1のCDNサーバに送信し、第2のバイト範囲に基づいて第2のHTTPリクエストを第2のCDNサーバに送信するように構成されている。第1のHTTPリクエストは、少なくとも第1のCDNサーバから第1のデータをダウンロードするために使用される。第2のHTTPリクエストは、少なくとも第2のCDNサーバから第2のデータをダウンロードするために使用される。第1のデータ及び第2のデータは、バイト範囲が重複範囲であるデータであり、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの一致をチェックするために使用される。第1のCDNサーバは、電子デバイスから第1のHTTPリクエストを受信し、データを電子デバイスに返すように構成されている。データは、少なくとも第1のデータを含む。第2のCDNサーバは、電子デバイスから第2のHTTPリクエストを受信し、データを電子デバイスに返すように構成されている。データは、少なくとも第2のデータを含む。
【0027】
可能な実装では、第1のCDNサーバは、第1のネットワークに位置するCDNサーバであってもよく、第2のCDNサーバは、第2のネットワークに位置するサーバであってもよい。第1のネットワークは、第2のネットワークとは異なる。例えば、第1のネットワークはセルラ・ネットワークであり、第2のネットワークはWi-Fiネットワークである。
【0028】
本出願における技術的特徴、技術的解決策、有益な効果、又は類似の文言の説明は、全ての特徴及び利点が任意の個々の実施形態において実装可能であることを示唆しないと理解されたい。反対に、特徴又は有益な効果の説明は、少なくとも1つの実施形態が特定の技術的特徴、技術的解決策、又は有益な効果を含むことを意味すると理解されよう。したがって、本明細書における技術的特徴、技術的解決策、又は有益な効果の説明は、必ずしも同じ実施形態に属さなくてもよい。さらに、実施形態に記載される技術的特徴、技術的解決策、及び有益な効果は、任意の適切な方式で組み合わされてもよい。当業者は、実施形態が、特定の実施形態において、1つ以上の特定の技術的特徴、技術的解決策、又は有益な効果を伴わずに実装され得ると理解する。他の実施形態では、全ての実施形態を反映するわけではない特定の実施形態において、追加の技術的特徴及び有益な効果がさらに識別されてもよい。
【図面の簡単な説明】
【0029】
【
図1】従来技術におけるHTTPリクエスト伝送の概略図である。
【0030】
【
図2】本出願の一実施形態によるシステム・アーキテクチャの簡略概略図である。
【0031】
【
図3】本出願の一実施形態による電子デバイスの概略構造図である。
【0032】
【
図4】本出願の実施形態によるHTTPリクエスト伝送方法の概略フローチャートである。
【発明を実施するための形態】
【0033】
「例」又は「例えば」などの用語は、例、提示的な図示、又は以下の説明を表すために使用される。本出願において、「例」又は「例えば」として記載される実施形態又は設計スキームは、他の実施形態又は設計スキームよりも好ましいものとして、又はより多くの利点を有するものとして説明されるべきではない。正確には、「例」又は「例えば」などの用語の使用は、特定の方式で相対的な概念を提示することを意図している。
【0034】
現在、通信体験を改善するために、複数のネットワーク、例えば、Wi-Fiネットワークとセルラ・ネットワークの同時使用を実装するMPHTTP技術が産業界で提案されている。MPHTTP技術では、アプリによって開始された元のHTTPリクエストが、元のHTTPリクエストにおいて搬送されるバイト範囲に基づいて複数のHTTPリクエストに分割される。複数のHTTPリクエストは、CDNサーバから対応するデータを取得するために、Wi-Fiネットワーク及びセルラ・ネットワークを介して対応するCDNサーバに送信される。これは、より大きな集約帯域幅を提供する。
【0035】
一般的に、コンテンツ・アクセスを提供するCDNサーバは、異なるネットワークによって異なる。電子デバイスが、分割を介して取得された複数のHTTPリクエストに基づいて、同じCDNサーバからデータを引き出す場合、ダウンロード速度が非常に低下することがあるし、クロス・ネットワーク・アクセスによりアクセスが失敗することもある。例えば、
図1に示す例を参照すると、電子デバイスがWi-Fiネットワークを介してCDN1にHTTPリクエスト2を送信する場合、対応するデータ・ダウンロード速度は非常に低下することがあるし、対応するCDNサーバへのアクセスがクロス・ネットワーク・アクセスにより失敗することもある。例えば、表1に示すテスト・データを参照すると、iQIYIでは、データがWi-Fiネットワークを介してWi-FiネットワークにおけるCDNサーバからダウンロードされる場合、データ・ダウンロード速度は10MB/sに達することがあり、データがWi-Fiネットワークを介して別のネットワーク、例えばロング・ターム・エボリューション(LTE)ネットワークにおけるCDNサーバからダウンロードされる場合、ダウンロード速度は0、すなわち、CDNサーバへのアクセスが失敗することが分かる。同じことがbilibiliの場合に当てはまる。Tencentでは、データがWi-Fiネットワークを介してWi-FiネットワークにおけるCDNサーバからダウンロードされる場合、データのダウンロード速度は8MB/sに達することがあり、データがWi-Fiネットワークを介してLTEネットワークにおけるCDNサーバからダウンロードされる場合、ダウンロード速度は0.6MB/sとなり、ダウンロード速度は非常に低下している。同じことがYoukuの場合に当てはまる。
【表1】
アプリケーション&
使用ネットワーク ローカル・ネットワークにおけるCDNサーバからデータをダウンロードする速度(単位:MB/s) 別のネットワークにおけるCDNサーバからデータをダウンロードする速度(単位:MB/s)
iQIYI LTE 3 8
iQIYI Wi-Fi 10 0
Tencent LTE 3 3
Tencent Wi-Fi 8 0.6
Youku LTE 5 5
Youku Wi-Fi 5 1.5
Bilibili LTE 6 6
Bilibili Wi-Fi 6 0
【0036】
したがって、ユーザが最適なサービス体験を取得することができるように、電子デバイスによる分割を介して取得された複数のHTTPリクエストを使用して、伝送されたネットワークにおける対応するCDNサーバからデータを引き出す、すなわち、異なるHTTPリクエストを使用して、異なるCDNサーバからデータを引き出す。例えば、
図1に示すように、HTTPリクエスト1を使用して、CDN1からデータを引き出し、HTTPリクエスト2を使用して、CDN2からデータを引き出す。次に、異なるCDNサーバから引き出されたデータを接合した後、電子デバイスは元のHTTPリクエストに基づいて引き出されるデータを取得する。
【0037】
しかし、分割を介して取得された複数のHTTPリクエストに基づいて、電子デバイスが異なるCDNサーバからデータを引き出す場合、引き出されたデータが一致していないため、接合により最終的に取得されたデータが無効となることがある。例えば、
図1に示す例を参照すると、バイト範囲が1~100であるデータがCDN1から引き出され、バイト範囲101~200であるデータがCDN2から引き出される。電子デバイスがデータを接合する必要があるときに、接合を介して取得されたデータは、CDNサーバのアップグレードの不一致により無効となることがある。結果として、サービスが正常に動作できない、例えば、ユーザがビデオを正常に視聴できない。特に、CDNサーバ上で多くのドメイン・ネーム・システム(domain name system、DNS)のハイジャックが多い環境では、接合を介して取得されるデータが無効となる可能性が高い。
【0038】
したがって、電子デバイスがMPHTTP技術を使用するときに、複数のCDNサーバから引き出されたデータの一致をチェックし、正常なサービス動作を確保する必要がある。
【0039】
一般的に、多くのビデオサービスでは、対応するHTTPリクエストをCDNサーバに送信した後、電子デバイスがCDNサーバから、HTTPリクエストによってリクエストされたデータの記述情報マニフェスト(manifest)ファイルをリクエストする。記述情報マニフェストファイルは、最後に修正した時間(last modified time)、タイムスタンプ(timestamp)、タグ(tag)などの記述情報を含む。しかしながら、記述情報のいずれも、複数のCDNサーバから引き出されたデータが一致しているかどうかを証明するために使用することができない。
【0040】
本出願の実施形態は、HTTPリクエスト伝送方法を提供する。方法は、電子デバイスに適用されてもよい。電子デバイスが複数のCDNサーバからデータをダウンロードする必要があるときに、異なるCDNサーバに割り当てられるバイト範囲に対して重複範囲が設計される。これは、電子デバイスが、全ての異なるCDNサーバから重複範囲のデータをダウンロードすることを意味し、データのこの部分は、異なるCDNサーバから引き出されるデータのデータ一致をチェックするために使用されてもよい。異なるCDNサーバから引き出されたデータが一致していると決定するときに、電子デバイスは、データを接合して、最終的に必要なデータを取得してもよい。このように、MPHTTP技術は、より大きな集約帯域幅を取得するために使用され、データ接合妥当性及び正常なサービスの動作を確保する。
【0041】
以下、添付の図面を参照して、本出願の実施形態の実装を詳細に記載する。
【0042】
図2は、本出願の一実施形態によるシステム・アーキテクチャの概略l構成図である。
図2に示すように、システム・アーキテクチャは、少なくとも電子デバイス201及び複数のCDNサーバ202を含む。
【0043】
CDNサーバ202は、ネットワークに展開され、かつコンテンツ・アクセスを提供するように構成されているネットワークである。電子デバイス201は、ネットワークを介してCDNサーバ202にHTTPリクエストを送信し、CDNサーバ202から対応するデータをダウンロードしてもよい。
【0044】
本出願の本実施形態では、電子デバイス201は、電子デバイス201のアプリによって開始された元のHTTPリクエストに基づいて、MPHTTP技術を使用することによって、複数のCDNサーバ202から対応するデータをダウンロードしてもよい。これは、より大きな集約帯域幅を提供し、通信体験を改善する。例えば、電子デバイスは、元のHTTPリクエストで搬送されたバイト範囲に基づいて、複数のCDNサーバに異なるバイト範囲を割り当ててもよい。次いで、電子デバイス201は、ネットワークを介して、複数のCDNサーバ202に割り当てられたバイト範囲に基づいて対応するCDNサーバに対応するHTTPリクエストを送信し、複数のCDNサーバ202が、受信したHTTPリクエストに基づいて対応するデータを電子デバイス201に返すようにする。
【0045】
電子デバイス201によって複数のCDNサーバ202に割り当てられる異なるバイト範囲では、連続データを識別するために使用されるバイト範囲間に重複範囲が存在する。したがって、電子デバイス201は、異なるCDNサーバから同じデータ(同じデータは重複範囲を有するバイト範囲のデータである)を引き出してもよい。データ一致チェックが成功するときに、電子デバイス201は、異なるCDNサーバから対応するデータをダウンロードし続けてもよい。データ一致チェックが失敗するときに、電子デバイス201は、複数のCDNサーバからの対応するデータのダウンロードを同時に停止し、いくつかのCDNサーバ(例えば、1つのCDNサーバ)のみからデータをダウンロードする。これは、より大きな集約帯域幅を提供し、データ接合妥当性の有効性と正常なサービスの動作を確保する。
【0046】
この実施形態では、「複数」とは、2つ以上を指してもよい。実施形態では、複数のCDNサーバ202は、同じネットワーク内に位置してもよいし、異なるネットワークに位置してもよい。例えば、システム・アーキテクチャは、2つのCDNサーバ202、すなわちCDNサーバ202-1及びCDNサーバ202-2を含む。CDNサーバ202-1及びCDNサーバ202-2は、同じネットワーク(例えば、Wi-Fiネットワーク又はセルラ・ネットワーク)に位置する異なるCDNサーバであってもよい。代替的には、CDNサーバ202-1及びCDNサーバ202-2は、異なるネットワークに位置するCDNサーバであってもよい。例えば、CDNサーバ202-1はセルラ・ネットワークに位置し、CDNサーバ202-2はWi-Fiネットワークに位置する。
図2は、システム・アーキテクチャが、2つのCDNサーバ202、すなわちCDNサーバ202-1及びCDNサーバ202-2を含み、CDNサーバ202-1がWi-Fiネットワークに位置し、CDNサーバ202-2がセルラ・ネットワークに位置する例を示す。追加的に、本実施形態では、セルラ・ネットワークは、任意の移動通信技術、例えば第3世代移動通信技術(the 3rd generation telecommunication、3G)ネットワーク、第4世代移動通信技術(the fourth generation telecommunication、4G)ネットワーク(若しくはLTEネットワーク)、第5世代移動通信技術(the 5th generation telecommunication、5G)ネットワーク、又は次世代移動通信ネットワークを使用するネットワークであってもよい。
【0047】
例えば、
図2に示すシステム・アーキテクチャの概略図に基づいて、いくつかの実施形態では、電子デバイス201のビデオ・アプリケーションを使用することによってユーザがビデオを視聴する例が使用される。電子デバイス201のビデオ・アプリケーションは、元のHTTPリクエストを開始する。元のHTTPリクエストで搬送されるバイト範囲は[1,200]である。電子デバイス201は、元のHTTPリクエストで搬送されたバイト範囲に基づいて、対応するバイト範囲をCDNサーバ202-1及びCDNサーバ202-2に割り当ててもよい。CDNサーバ202-1に割り当てられたバイト範囲と、CDNサーバ202-2に割り当てられたバイト範囲との間には重複範囲が存在する。例えば、CDNサーバ202-1に割り当てられたバイト範囲は[1,110]であり、CDNサーバ202-2に割り当てられたバイト範囲は[101,200]であり、CDNサーバ202-1に割り当てられたバイト範囲とCDNサーバ202-2に割り当てられたバイト範囲との間の重複範囲[101,110]が存在する。
【0048】
電子デバイス201は、CDNサーバ202-1に割り当てられたバイト範囲に基づいてセルラ・ネットワークを介してCDNサーバ202-1にHTTPリクエスト1を送信して、バイト範囲が[101,110]であるビデオ・データをCDNサーバ202-1からダウンロードしてもよい。電子デバイス201はまた、CDNサーバ202-2に割り当てられたバイト範囲に基づいてWi-Fiネットワークを介してCDNサーバ202-2にHTTPリクエスト1を送信して、バイト範囲が[101,110]であるビデオ・データをCDN-2からダウンロードしてもよい。電子デバイス201は、CDNサーバ202-1から、バイト範囲が[101,110]であるビデオ・データをダウンロードし、また、CDNサーバ202-2から、バイト範囲が[101,110]であるビデオ・データをダウンロードすると理解されよう。CDNサーバ202-1からダウンロードされたバイト範囲が[101、110]であるビデオ・データと、CDNサーバ202-2からダウンロードされたバイト範囲が[101、110]であるビデオ・データに基づいて、電子デバイス201は、異なるCDNサーバからダウンロードされたデータが一致しているかどうかをチェックすることができる。データ一致チェックが成功するときに、電子デバイス201は、CDNサーバ202-1からダウンロードされたビデオ・データ及びCDNサーバ202-2からダウンロードされたビデオ・データを接合して、最終的に必要とされるビデオ・データを取得することができる。データ一致チェックが失敗するときに、電子デバイス201は、2つのCDNサーバからのデータのダウンロードを同時に停止し、1つのCDNサーバのみからデータをダウンロードする。例えば、電子デバイス201は、CDNサーバ202-2からのデータのダウンロードを停止し、CDNサーバ202-1からのみ残りのビデオ・データをダウンロードしてもよい。
【0049】
例えば、本出願の本実施形態における電子デバイス201は、携帯電話、タブレット・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、ノートブック・コンピュータ、ウルトラモバイル・パーソナル・コンピュータ(ultra-mobile personal computer、UMPC)、ネットブック、携帯電話、パーソナル・デジタル・アシスタント(personal digital assistant、PDA)、ウェアラブル・デバイス、拡張現実(augmented reality、AR)デバイス/仮想現実(virtual reality、VR)デバイス、又はメディアプレーヤなどのデバイスであってもよい。デバイスの特定の形態は、本出願の本実施形態において特に限定されない。
【0050】
図3は、本出願の一実施形態による電子デバイスの構造の概略図である。
図3に示すように、電子デバイスは、プロセッサ110、外部メモリ・インターフェース120、内部メモリ121、ユニバーサル・シリアル・バス(universal serial bus、USB)ポート130、充電管理モジュール140、電力管理モジュール141、バッテリ142、アンテナ1、アンテナ2、移動通信モジュール150、無線通信モジュール160、オーディオ・モジュール170、スピーカ170A、受信機170B、マイクロホン170C、ヘッドセット・ジャック170D、センサ・モジュール180、ボタン190、モータ191、インジケータ192、カメラ193、ディスプレイ194、加入者識別モジュール(subscriber identification module、SIM)カード・インターフェース195などを含んでもよい。
【0051】
センサ・モジュール180は、圧力センサ180A、ジャイロ・センサ180B、気圧センサ180C、磁気センサ180D、加速度センサ180E、レンジ・センサ180F、光学近接センサ180G、指紋センサ180H、温度センサ180J、タッチ・センサ180K、周辺光センサ180L、骨伝導センサ180Mなどを含んでもよい。
【0052】
本実施形態に示される構造は、電子デバイスに対する特定の限定を構成しないことが理解されよう。いくつかの他の実施形態では、電子デバイスは、図に示されているものよりも多くの、又は少ないコンポーネントを含んでもよいし、いくつかのコンポーネントが接合されてもよいし、いくつかのコンポーネントが分裂してもよいし、異なるコンポーネント配置が使用されてもよい。図に示すコンポーネントは、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実装されてもよい。
【0053】
プロセッサ110は、1つ以上の処理ユニットを含んでもよい。例えば、プロセッサ110は、アプリケーション・プロセッサ(application processor、AP)、モデム・プロセッサ、グラフィック処理ユニット(graphics processing unit、GPU)、画像信号プロセッサ(image signal processor、ISP)、コントローラ、メモリ、ビデオ・コーデック、デジタル信号プロセッサ(digital signal processor、DSP)、ベースバンド・プロセッサ、及び/又はニューラルネットワーク処理ユニット(neural-network processing unit、NPU)を含んでもよい。異なる処理ユニットは、独立したコンポーネントであってもよいし、1つ以上のプロセッサに一体化されてもよい。
【0054】
コントローラは、電子デバイスの神経センター及び指令センターであってもよい。コントローラは、命令動作コード及び時間シーケンス信号に基づいて動作制御信号を生成して、命令フェッチ及び命令実行の完全な制御を完遂する。
【0055】
メモリは、プロセッサ110内に配設されてもよく、命令及びデータを記憶するように構成されている。いくつかの実施形態では、プロセッサ110におけるメモリはキャッシュである。メモリは、プロセッサ110によってちょうど使用又は周期的に使用される命令又はデータを記憶してもよい。プロセッサ110が命令又はデータを再度使用する必要がある場合、プロセッサ110は、メモリから命令又はデータを直接呼び出してもよい。これは、繰り返されるアクセスを回避し、プロセッサ110の待ち時間を短縮し、それによって、システムの効率を改善する。
【0056】
いくつかの実施形態では、プロセッサ110は、1つ以上のインターフェースを含んでもよい。このインターフェースは、集積回路(inter-integrated circuit、I2C)インターフェース、集積回路サウンド(inter-integrated circuit sound、I2S)インターフェース、パルス・コード変調(pulse code modulation、PCM)インターフェース、ユニバーサル非同期受信機/送信機(universal asynchronous receiver/transmitter、UART)インターフェース、モバイル産業用プロセッサ・インターフェース(mobile industry processor interface、MIPI)、汎用入力/出力(general-purpose input/output、GPIO)インターフェース、SIMインターフェース、USBポート、及び/又はこれらに類するものを含んでもよい。
【0057】
充電管理モジュール140は、充電器からの充電入力を受信するように構成されている。充電器は、無線充電器又は有線充電器であってもよい。充電管理モジュール140は、バッテリ142を充電しながら、電力管理モジュール141を介して電子デバイスに電力をさらに供給してもよい。
【0058】
電力管理モジュール141は、バッテリ142、充電管理モジュール140、及びプロセッサ110に接続するように構成されている。電力管理モジュール141は、バッテリ142及び/又は充電管理モジュール140の入力を受信し、プロセッサ110、内部メモリ121、外部メモリ、ディスプレイ194、カメラ193、無線通信モジュール160などに電力を供給する。いくつかの他の実装では、電力管理モジュール141は、代替的にプロセッサ110に配設されてもよい。いくつかの他の実施形態では、電力管理モジュール141及び充電管理モジュール140は、代替的に、同じデバイスに配設されてもよい。
【0059】
電子デバイスの無線通信機能は、アンテナ1、アンテナ2、移動通信モジュール150、無線通信モジュール160、モデム・プロセッサ、ベースバンド・プロセッサなどを介して実装されてもよい。
【0060】
アンテナ1及びアンテナ2は、電磁波信号を送信及び受信するように構成されている。電子デバイスの各アンテナは、1つ以上の通信帯域をカバーするように構成されてもよい。アンテナの利用を改善するために、異なるアンテナがさらに再利用されてもよい。例えば、アンテナ1は、無線ローカル・エリア・ネットワークのダイバーシチ・アンテナとして再利用されてもよい。いくつかの他の実施形態では、アンテナは、チューニング・スイッチと組み合わせて使用されてもよい。
【0061】
移動通信モジュール150は、2G/3G/4G/5Gなどを含むワイヤレス通信のためであって、電子デバイスに適用されるソリューションを提供してもよい。移動通信モジュール150は、少なくとも1つのフィルタ、スイッチ、電力増幅器、低ノイズ増幅器(low noise amplifier、LNA)などを含んでもよい。移動通信モジュール150は、アンテナ1を介して電磁波を受信し、受信した電磁波に対するフィルタリング又は増幅などの処理を実行し、処理した電磁波を復調のためにモデム・プロセッサに伝送してもよい。移動通信モジュール150は、モデム・プロセッサによって変調された信号をさらに増幅し、増幅した信号をアンテナ1を介して放射のために電磁波に変換してもよい。いくつかの実施形態では、移動通信モジュール150の少なくともいくつかの機能モジュールをプロセッサ110に配設されてもよい。いくつかの実施形態では、移動通信モジュール150の少なくともいくつかの機能モジュールは、プロセッサ110の少なくともいくつかのモジュールと同じデバイスに配設されてもよい。例えば、本出願の本実施形態では、移動通信モジュール150は、HTTPリクエストを送信するように構成されてもよい、HTTPリクエストは、CDNサーバから対応するデータをダウンロードすることをリクエストするために使用される。移動通信モジュール150は、CDNサーバから対応するデータを受信するようにさらに構成されてもよい。
【0062】
モデム・プロセッサは、変調器及び復調器を含むことができる。変調器は、送信対象の低周波ベースバンド信号を中高周波信号に変調するように構成されている。復調器は、受信した電磁波信号を低周波ベースバンド信号に復調するように構成されている。次に、復調器は復調した低周波ベースバンド信号を処理のためにベースバンド・プロセッサに伝送する。低周波ベースバンド信号は、ベースバンド・プロセッサによって処理され、次いで、アプリケーション・プロセッサに伝送される。アプリケーション・プロセッサは、オーディオ・デバイス(スピーカ170A、受信機170Bなどに限定されない)を使用して、音声信号を出力したり、ディスプレイ194に画像又はビデオを表示したりする。いくつかの実施形態では、モデム・プロセッサは、独立したコンポーネントであってもよい。いくつかの他の実施形態では、モデム・プロセッサは、プロセッサ110から独立していてもよく、移動通信モジュール150又は別の機能モジュールと同じデバイスに配設されてもよい。
【0063】
無線通信モジュール160は、電子デバイスに適用される無線通信ソリューション、例えば、無線ローカル・エリア・ネットワーク(wireless local area networks、WLAN)(無線フェデリティ(wireless fidelity、Wi-Fi)ネットワークなど)、ブルートゥース(bluetooth、BT)、グローバル・ナビゲーション衛星システム(global navigation satellite system、GNSS)、周波数変調(frequency modulation、FM)、近接場通信(near field communication、NFC)、赤外線(infrared、IR)技術を提供してもよい。無線通信モジュール160は、少なくとも1つの通信プロセッサ・モジュールに一体化された1つ以上のコンポーネントであってもよい。無線通信モジュール160は、アンテナ2を介して電磁波を受信し、電磁波信号に対して周波数変調及びフィルタ処理を実行し、処理した信号をプロセッサ110に送信する。無線通信モジュール160は、さらに、プロセッサ110から送信対象の信号を受信し、その信号に対して周波数変調及び増幅を実行し、処理した信号をアンテナ2に介した放射のために電磁波に変換する。例えば、本出願の本実施形態では、無線通信モジュール160は、HTTPリクエストを送信するように構成されてもよい、HTTPリクエストは、CDNサーバから対応するデータをダウンロードすることをリクエストするために使用される。無線通信モジュール160は、CDNサーバから対応するデータを受信するようにさらに構成されてもよい。
【0064】
いくつかの実施形態では、電子デバイスのアンテナ1は移動通信モジュール150に結合され、アンテナ2は無線通信モジュール160に結合され、電子デバイスが、無線通信技術を使用することによってネットワーク及び別のデバイスと通信してもよいようにする。無線通信技術は、移動通信のためのグローバル・システム(global system for mobile communications、GSM)、一般パケット無線サービス(general packet radio service、GPRS)、符号分割多元接続(code division multiple access、CDMA)、広帯域符号分割多重接続(wideband code division multiple access、WCDMA)、時分割符号分割多重接続(time-division code division multiple access、TD-SCDMA)、ロング・ターム・エボリューション(long term evolution、LTE)、BT、GNSS、WLAN、NFC、FM、IR技術などを含んでもよい。GNSSは、全地球測位システム(global positioning system、GPS)、グローバル・ナビゲーション衛星システム(global navigation satellite system、GLONASS)、北斗航法衛星システム(beidou navigation satellite system、BDS)、準天頂衛星システム(quasi-zenith satellite system、QZSS)、及び/又は衛星ベース増強システム(satellite based augmentation systems、SBAS)を含んでもよい。
【0065】
電子デバイスは、GPU、ディスプレイ194、アプリケーション・プロセッサなどを介してディスプレイ機能を実装する。GPUは、画像処理のためのマイクロプロセッサであり、ディスプレイ194及びアプリケーション・プロセッサに接続される。GPUは、数学的及び幾何学的計算を実行し、画像をレンダリングするように構成されている。プロセッサ110は、表示情報を生成又は変更するプログラム命令を実行する1つ以上のGPUを含んでもよい。
【0066】
ディスプレイ194は、画像、ビデオなどを表示するように構成されている。ディスプレイ194は、ディスプレイ・パネルを含む。ディスプレイ・パネルは、液晶ディスプレイ(liquid crystal display、LCD)、有機発光ダイオード(organic light-emitting diode、OLED)、アクティブ・マトリックス有機発光ダイオード又はアクティブ・マトリックス有機発光ダイオード(active-matrix organic light emitting diode、AMOLED)、フレキシブル発光ダイオード(flex light-emitting diode、FLED)、ミニLED、マイクロLED、マイクロOLED、量子ドット発光ダイオード(quantum dot light emitting diodes、QLED)などであってもよい。いくつかの実施形態では、電子デバイスは、1つ又はN個のディスプレイ194を含んでもよく、Nは1よりも大きい正の整数である。
【0067】
電子デバイスは、ISP、カメラ193、ビデオ・コーデック、GPU、ディスプレイ194、アプリケーション・プロセッサなどを介して撮影機能を実装してもよい。
【0068】
ISPは、カメラ193によってフィードバックされたデータを処理するように構成されている。カメラ193は、静止画像又はビデオをキャプチャするように構成されている。物体の光学画像は、レンズを通して生成され、感光体に投影される。感光体は、電荷結合素子(charge coupled device、CCD)又は相補型金属酸化物半導体(complementary metal-oxide-semiconductor、CMOS)光電トランジスタであってもよい。感光体は、光信号を電気信号に変換した後、電気信号をデジタル画像信号に変換するために電気信号をISPに伝送する。ISPは、デジタル画像信号を処理のためにDSPに出力する。DSPは、デジタル画像信号をRGBフォーマット、YUVフォーマットなどの標準フォーマットの画像信号に変換する。いくつかの実施形態では、電子デバイスは、1つ又はN個のカメラ193を含んでもよく、Nは1よりも大きい正の整数である。
【0069】
外部メモリ・インターフェース120は、外部メモリ・カード、例えばマイクロSDカードに接続して、電子デバイスの記憶能力を拡張するように構成されてもよい。外部メモリ・カードは、外部メモリ・インターフェース120を介してプロセッサ110と通信し、データ記憶機能を実装する。例えば、音楽、ビデオなどのファイルは外部メモリ・カードに記憶される。
【0070】
内部メモリ121は、コンピュータ実行可能なプログラム・コードを記憶するように構成されてもよい。実行可能なプログラム・コードは、命令を含む。プロセッサ110は、内部メモリ121に記憶された命令を動作させて、電子デバイスの様々な機能アプリケーション及びデータ処理を実行する。例えば、本実施形態では、プロセッサ110は、内部メモリ121に記憶された命令を動作させて、電子デバイスが、重複範囲を有し、かつ異なるCDNサーバに割り当てられるバイト範囲に基づいて、対応するHTTPリクエストを異なるCDNサーバに送信してもよいようにする。したがって、電子デバイスは、異なるCDNサーバから同じデータをダウンロードし、同じデータのこの部分を使用することによって、異なるCDNサーバからダウンロードされたデータが一致しているかどうかを決定し、異なるCDNサーバからダウンロードされたデータが一致していると決定したときに、データを接合して、最終的に必要なデータを取得してもよい。内部メモリ121は、プログラム記憶領域及びデータ記憶領域を含んでもよい。プログラム記憶領域は、オペレーティング・システム、少なくとも1つの機能(例えば、音声再生機能又は画像再生機能)によって必要とされるアプリケーションなどを記憶してもよい。データ記憶領域は、電子デバイスが使用されたときに作成されたデータ(オーディオデータ、電話帳など)を記憶することなどをしてもよい。追加的に、内部メモリ121は、高速ランダム・アクセス・メモリを含んでもよいし、少なくとも1つの磁気ディスク記憶デバイス、フラッシュ記憶デバイス、ユニバーサルフラッシュ記憶デバイス(universal flash storage、UFS)などの不揮発性メモリを含んでもよい。
【0071】
電子デバイスは、オーディオ機能、例えば、オーディオ・モジュール170、スピーカ170A、受信機170B、マイクロホン170C、ヘッドセット・ジャック170D、アプリケーション・プロセッサなどを介して、音楽再生及び録音を実装してもよい。
【0072】
オーディオ・モジュール170は、デジタル・オーディオ情報をアナログ・オーディオ信号出力に変換するように構成されており、また、アナログ・オーディオ入力をデジタル・オーディオ信号に変換するように構成されている。オーディオ・モジュール170は、オーディオ信号をコード化及び復号化するようにさらに構成されてもよい。いくつかの実施形態では、オーディオ・モジュール170は、プロセッサ110に配設されてもよいし、オーディオ・モジュール170のいくつかの機能モジュールは、プロセッサ110に配設されてもよい。
【0073】
スピーカ170Aは、「ホーン」とも呼ばれ、電気オーディオ信号を音声信号に変換するように構成されている。電子デバイスは、スピーカ170Aを介して、音楽を聞いたり、ハンズフリー通話に応答したりしてもよい。
【0074】
受信機170Bは、「イヤピース」とも呼ばれ、電気音声信号を音声信号に変換するように構成されている。電子デバイスを使用して電話に出たり声情報を受信したりするときに、受信機170Bを人間の耳の近くに置いて声を受信してもよい。
【0075】
「マイク」又は「マイクロホン」とも呼ばれるマイクロホン170Cは、音声信号を電気信号に変換するように構成されている。発呼や声情報を送信するときに、マイク170Cの近くで人間の口を動かすことによって音声を発し、マイク170Cに音声信号を入力してもよい。少なくとも1つのマイクロホン170Cが、電子デバイスに配設されてもよい。ヘッドセット・ジャック170Dは、有線ヘッドセットに接続するように構成されている。
【0076】
圧力センサ180Aは、圧力信号を感知するように構成されており、圧力信号を電気信号に変換してもよい。いくつかの実施形態では、圧力センサ180Aは、ディスプレイ194に配設されてもよい。抵抗圧力センサ、誘導圧力センサ、容量性圧力センサなどの複数のタイプの圧力センサ180Aが存在する。タッチ動作がディスプレイ194で実行されるときに、電子デバイスは圧力センサ180Aを使用することによってタッチ動作の強度を検出する。電子デバイスはまた、圧力センサ180Aの検出信号に基づいてタッチ位置を計算してもよい。
【0077】
ジャイロ・センサ180Bは、電子デバイスの運動姿勢を決定するように構成されてもよい。ジャイロ・センサ180Bは、撮影中に手ぶれ補正を実施するように構成されてもよい。ジャイロ・センサ180Bは、ナビゲーション・シナリオ及び運動感知ゲーム・シナリオにおいてさらに使用されてもよい。気圧センサ180Cは、気圧を測定するように構成されている。いくつかの実施形態では、電子デバイスは、位置決め及びナビゲーションを支援するために、気圧センサ180Cによって測定された気圧値に基づいて高度を計算する。磁気センサ180Dは、ホール・センサを含む。電子デバイスは、磁気センサ180Dを使用することによって、フリップ・レザー・ケースの開閉を検出してもよい。加速度センサ180Eは、電子デバイスの様々な方向(通常は3軸)における加速度の大きさを検出してもよい。距離センサ180Fは、距離を測定するように構成されている。例えば、撮影シナリオでは、電子デバイスは、高速焦点合わせを実装するために距離センサ180Fを使用することによって距離を測定してもよい。
【0078】
光学近接センサ180Gは、発光ダイオード(LED)及び光学検出器、例えばフォトダイオードを含んでもよい。発光ダイオードは、赤外線発光ダイオードであってもよい。電子デバイスは、発光ダイオードを通して赤外光を放出する。電子デバイスは、近くの物体からの赤外線反射光を、フォトダイオードを使用することによって検出する。十分な反射光が検出されるときに、電子デバイスの近くに物体が存在すると決定されてもよい。不十分な反射光が検出されるときに、電子デバイスは、電子デバイスの近くに物体がないと決定してもよい。電子デバイスは、光学近接センサ180Gを使用することによって、ユーザが電子デバイスを通話のために耳の近くに保持していることを検出して、電力節約のためにスクリーンを自動的にオフにしてもよい。光学近接センサ180Gは、スマート・カバー・モード又はポケット・モードでスクリーンを自動的にロック及びロック解除するようにさらに構成されてもよい。
【0079】
周辺光センサ180Lは、周辺光の輝度を感知するように構成されている。電子デバイスは、感知された周辺光の明るさに基づいてディスプレイ194の明るさを適応的に調整してもよい。また、周辺光センサ180Lは、撮影中にホワイト・バランスを自動的に調整するように構成されてもよい。また、周辺光センサ180Lは、電子デバイスがポケットにあるかどうかを検出するために、光学近接センサ180Gと協働してもよい。
【0080】
指紋センサ180Hは、指紋を収集するように構成されている。電子デバイスは、収集した指紋の特徴を使用して、指紋ベースのロック解除、アプリケーション・ロック・アクセス、指紋ベースの撮影、指紋ベースの呼応答などを実装してもよい。
【0081】
温度センサ180Jは、温度を検出するように構成されている。いくつかの実施形態では、電子デバイスは、温度センサ180Jによって検出された温度を使用することによって温度処理方針を実行する。タッチ・センサ180Kは、「タッチ・パネル」とも呼ばれる。タッチ・センサ180Kは、ディスプレイ194に配設されてもよく、タッチ・センサ180K及びディスプレイ194は、「タッチスクリーン」とも呼ばれるタッチスクリーンを形成する。タッチ・センサ180Kは、タッチ・センサ180Kで又はその近くで実行されるタッチ動作を検出するように構成されている。タッチ・センサは、タッチイベントのタイプを決定するために、検出したタッチ動作をアプリケーション・プロセッサに転送してもよい。タッチ動作に関係する視覚出力は、ディスプレイ194を使用することによって提供されてもよい。いくつかの他の実施形態において、タッチ・センサ180Kは、代替的に、ディスプレイ194とは異なる位置において電子デバイスの表面に配設されてもよい。
【0082】
骨伝導センサ180Mは、振動信号を取得してもよい。いくつかの実施形態では、骨伝導センサ180Mは、ヒト声帯部の振動骨の振動信号を取得してもよい。骨伝導センサ180Mはまた、血圧脈動信号を受信するために、ヒトパルスと接触するなどしていてもよい。ボタン190は、電源ボタン、音量ボタンなどを含む。ボタン190は、機械的なボタンであってもよいし、又はタッチボタンであってもよい。電子デバイスは、ボタン入力を受信し、電子デバイスのユーザ・セッティング及び機能制御に関係するキー信号入力を生成してもよい。
【0083】
モータ191は、振動プロンプトを生成してもよい。モータ191は、着呼振動プロンプト及びタッチ振動フィードバックを提供するように構成されてもよい。インジケータ192は、インジケータライトであってもよく、充電状態及び電力変化を示すように構成されてもよいし、メッセージ、不在着信、通知などを示すように構成されてもよい。
【0084】
SIMカード・インターフェース195は、SIMカードに接続するように構成されている。SIMカードは、電子デバイスとの接触又は電子デバイスからの分離を実装するために、SIMカード・インターフェース195に挿入されてもよく、又はSIMカード・インターフェース195から取り外されてもよい。電子デバイスは、1つ又はN個のSIMカード・インターフェースをサポートしてもよく、Nは1よりも大きい正の整数である。電子デバイスは、SIMカードを使用してネットワークと対話し、呼び出しやデータ通信などの機能を実装する。いくつかの実施形態では、eSIM、すなわち、埋め込みSIMカードが、電子デバイスのために使用される。eSIMカードは、電子デバイスに埋め込まれていてもよく、電子デバイスから分離することができない。
【0085】
以下の実施形態における全ての方法は、前述のハードウェア構造を有する電子デバイスにおいて実装されてもよい。
【0086】
本実施形態では、電子デバイスは、電子デバイスのアプリ(例えば、ビデオ・アプリケーション)によって開始された、元のHTTPリクエストに基づいて、MPHTTP技術を使用することによって、複数のCDNサーバから対応するデータをダウンロードしてもよい。これは、より大きな集約帯域幅を提供する。具体的には、電子デバイスは、元のHTTPリクエストで搬送されたバイト範囲に基づいて、複数のCDNサーバに異なるバイト範囲を割り当ててもよい。複数のCDNサーバに割り当てられたバイト範囲では、連続データを識別するために使用されるバイト範囲における重複範囲が存在する。また、全てのCDNサーバに割り当てられたバイト範囲の連接は、元のHTTPリクエストのバイト範囲と同じである。電子デバイスは、異なるCDNサーバから同じデータ(同じデータが重複範囲のバイト範囲のデータ)を引き出すために、重複範囲を有するバイト範囲に基づいて異なるCDNサーバに対応するHTTPリクエストを送信する。このようにして、電子デバイスは、異なるCDNサーバからダウンロードされたデータのデータ一致をチェックすることができる。実施形態では、複数のCDNサーバは、同じネットワーク内に位置してもよいし、異なるネットワークに位置してもよい。
【0087】
説明を容易にするために、以下の実施形態では、
図2に示すアーキテクチャを参照して、本出願の実施形態で提供される技術的解決策が、電子デバイスがMPHTTP技術を使用して2つのCDNサーバからデータをダウンロードし、2つのCDNサーバが異なるネットワークに位置する例を使用することによって詳細に記載される。
【0088】
図4は、本出願の実施形態によるHTTPリクエスト伝送方法の概略フローチャートである。
図4に示すように、方法は、以下のステップを含む。
【0089】
S401:電子デバイスは、リクエスト対象のデータのバイト範囲(byte Range)を取得する。
【0090】
バイト範囲は、リクエストされたデータの開始バイトと終了バイトを識別するために使用される。
【0091】
例えば、ユーザが電子デバイスのアプリを使用する、例えば、ビデオを視聴するために電子デバイスのビデオ・アプリケーションを使用するときに、ビデオ・アプリケーションは、ユーザに対してビデオを再生するためにCDNサーバから対応するデータを取得する必要がある。例えば、ビデオ・アプリケーションは、元のHTTPリクエストを開始して、対応するデータを取得することをリクエストする。元のHTTPリクエストは、リソース記述子及びバイト範囲を搬送してもよい。リソース記述子はリクエスト対象のデータを記述するために使用され、バイト範囲はリクエスト対象のデータの開始バイト及び終了バイトを識別するために使用される。例えば、バイト範囲は[a,d]であり、リソース記述子を使用することによって記述されたデータのうち、aバイトからdバイトまでのデータをリクエストするために、元のHTTPリクエストが使用されていることを識別するために使用される。電子デバイスのアプリが元のHTTPリクエストを開始した後、電子デバイスは、元のHTTPリクエストのバイト範囲に基づいて、リクエスト対象のデータのバイト範囲を取得する、例えば、リクエスト対象のデータのバイト範囲[a,d]を取得してもよい。
【0092】
S402:電子デバイスは、リクエスト対象のデータのバイト範囲に基づいて、第1のCDNサーバに第1のバイト範囲を割り当て、第2のCDNサーバに第2のバイト範囲を割り当てる。
【0093】
第1のバイト範囲と第2のバイト範囲との間に重複範囲が存在する。
【0094】
例えば、
図2を参照すると、第1のCDNサーバは
図2に示すアーキテクチャにおいてはCDNサーバ202-1であってもよく、第2のCDNサーバは
図2に示すアーキテクチャにおいてはCDNサーバ202-2であってもよい。より大きな集約帯域幅を提供するために、電子デバイスは、MPHTTP技術を使用することによって、CDNサーバ202-1とCDNサーバ202-2の両方から、バイト範囲が[a,d]であるデータをダウンロードしてもよい。本実施形態では、電子デバイスは、リクエスト対象のデータのバイト範囲[a,d]に基づいて、第1のバイト範囲をCDNサーバ202-1に割り当て、第2のバイト範囲をCDNサーバ202-2に割り当ててもよい。第1のバイト範囲と第2のバイト範囲との間に重複範囲が存在する。例えば、電子デバイスによってCDNサーバ202-1に割り当てられる第1のバイト範囲は、[a,b]である。電子デバイスによってCDNサーバ202-2に割り当てられる第2のバイト範囲は、[c,d]である。[a,b]と[c,d]は両方とも[a,d]のサブセットである。第2のバイト範囲における小さい方の数を有するバイトは、第1のバイト範囲における大きい方の数を有するバイトと部分的に重複する。言い換えれば、第1バイトの範囲によって識別されるリクエストされたデータの終了バイトは、第2バイトの範囲によって識別されるリクエスされたトデータの開始バイトよりも大きい、すなわち、cはbよりも小さく、第1バイトの範囲と第2バイトの範囲との間の重複範囲は[c,b]である。
【0095】
いくつかの実施形態では、S402は、具体的には、リクエスト対象のデータのバイト範囲を取得した後、電子デバイスは、最初に、対応するバイト範囲をCDNサーバ202-1及びCDNサーバ202-2に割り当ててもよい。例えば、電子デバイスは、特定の性能要件、例えば、異なるCDNサーバからデータをダウンロードする速度が最適であるという要件、及び別の例では、異なるCDNサーバの性能がバランスされ得るという要件を満たすために、最初に、第1のバイト範囲’(第1のバイト範囲’は、本出願において第3のバイト範囲である)をCDNサーバ202-1に割り当て、第2のバイト範囲’(第2のバイト範囲’は、本出願において第4のバイト範囲である)をCDNサーバ202-2に割り当ててもよい。一般に、これらの特定の性能要件を満たす必要がある場合、CDNサーバ202-1及びCDNサーバ202-2に割り当てられたバイト範囲間、すなわち、第1のバイト範囲’と第2のバイト範囲’との間に重複範囲は存在しない。次いで、電子デバイスは、第1のバイト範囲’と第2のバイト範囲’の一方又は両方を調整してもよく、CDNサーバ202-1及びCDNサーバ202-2に最終的に割り当てられたバイト範囲(すなわち、第1のバイト範囲と第2のバイト範囲)間に重複範囲が存在するようにする。例えば、初期値は、事前に定義されてもよい。電子デバイスは、初期値に基づいて、第1のバイト範囲’、第2のバイト範囲’の一方又は両方を調整して、重複範囲を有する第1のバイト範囲及び第2のバイト範囲を取得してもよい。
【0096】
リクエスト対象のデータのバイト範囲が[a,d]であることが、依然として例として使用される。電子デバイスは、最初に、第1のバイト範囲’[a,c-1]をCDNサーバ202-1に割り当て、第2のバイト範囲’[c,d]をCDNサーバ202-1に割り当てる。このような割り当て結果は、例えば、CDNサーバ202-1とCDNサーバ202-2の両方からデータをダウンロードする最適な速度を取得するといった、特定の性能要件を満たす。次いで、電子デバイスは、初期値(例えば、初期値はeである)に基づいて第1のバイト範囲’を調整して、第1のバイト範囲’を[a,c-1+e]に調整する。c-1+e=bであることが理解されよう。第2のバイト範囲’は変更されないままであってもよい。このようにして、電子デバイスによってCDNサーバ202-1に最終的に割り当てられた第1のバイト範囲は、[a,c-1+e]、すなわち[a,b]であり、電子デバイスによってCDNサーバ202-2に最終的に割り当てられた第2のバイト範囲は、[c,d]である。したがって、第1バイトの範囲と第2バイトの範囲の間の重複範囲は、[c,b]、すなわち[c,c-1+e]である。例えば、リクエスト対象のデータのバイト範囲は、[1,200]、すなわちa=1及びd=200である。電子デバイスは、最初に、第1のバイト範囲’[1,100]をCDNサーバ202-1に割り当て、第2のバイト範囲’[101,200]をCDNサーバ202-1に割り当てる、すなわち、c=101である。次いで、電子デバイスは、e=10である初期値に基づいて第1のバイト範囲’を調整して、第1のバイト範囲’を[1,110]、すなわちb=110に調整する。第2のバイト範囲’は変更されないままであってもよい。電子デバイスによってCDNサーバ202-1に最終的に割り当てられた第1のバイト範囲は[1,110]であり、電子デバイスによってCDNサーバ202-2に割り当てられた第2のバイト範囲は[101,200]であることが理解されよう。第1のバイト範囲と第2のバイト範囲との間に重複範囲[101,110]が存在する。
【0097】
S403:電子デバイスは、第1のCDNサーバに割り当てられた第1のバイト範囲に基づいて第1のHTTPリクエストを第1のCDNサーバに送信し、第2のCDNサーバに割り当てられた第2のバイト範囲に基づいて第2のHTTPリクエストを第2のCDNサーバに送信する。
【0098】
電子デバイスが対応するバイト範囲を第1のCDNサーバ及び第2のCDNサーバに割り当てた後、電子デバイスは、対応するCDNサーバから対応するデータをリクエストするために、対応するHTTPリクエスト、例えば、第1のHTTPリクエスト及び第2のHTTPリクエストを生成してもよい。言い換えれば、電子デバイスは、ネットワークを介して対応するCDNサーバに生成したHTTPリクエストを送信して、対応するデータをリクエストしてもよい。例えば、
図2に示すアーキテクチャを参照すると、電子デバイスは、第1のHTTPリクエストを、セルラ・ネットワークなどの第1のネットワークを介してCDNサーバ202-1に送信し、第2のHTTPリクエストを、Wi-Fiネットワークなどの第2のネットワークを介してCDNサーバ202-2に送信してもよい。
【0099】
本出願のこの実施形態では、電子デバイスは、異なるHTTPリクエストをCDNサーバに送信して、対応するデータを返すようにCDNサーバにリクエストしてもよい。S401及びS402の例を参照して、以下、電子デバイスによって送信される異なるHTTPリクエストに基づいて、S403を詳細に記載する。
【0100】
方式1:電子デバイスは、第1のHTTPリクエストに、S402においてCDNサーバ202-1に割り当てられた第1のバイト範囲[a,b]を追加して、CDNサーバ202-1に送信し、第2のHTTPリクエストに、S402においてCDNサーバ202-2に割り当てられた第2のバイト範囲[c,d]を追加してCDNサーバ202-2に送信する。追加的に、第1のHTTPリクエストと第2のHTTPリクエストは、リクエスト対象のデータを記述するために使用されるリソース記述子をさらに搬送してもよい。リソース記述子は、アプリによって開始された元のHTTPリクエストに基づいて、電子デバイスによって取得されてもよい。例えば、S403の例を参照すると、電子デバイスは、第1のHTTPリクエストをCDNサーバ202-1に送信してもよく、第1のHTTPリクエストは、リソース記述子及びバイト範囲[1,110]を搬送する。電子デバイスは、第2のHTTPリクエストをCDNサーバ202-2に送信し、第2のHTTPリクエストは、リソース記述子及びバイト範囲[101,200]を搬送する。
【0101】
方式2:電子デバイスは、第1のHTTPリクエストに、S401でにおいて取得されたリクエスト対象データのバイト範囲[a,d]を追加して、CDNサーバ202-1に送信し、第2のHTTPリクエストに、S402においてCDNサーバ202-2に割り当てられた第2のバイト範囲[c,d]を追加して、CDNサーバ202-2に送信する。追加的に、第1のHTTPリクエストと第2のHTTPリクエストは、リクエスト対象のデータを記述するために使用されるリソース記述子をさらに搬送してもよい。リソース記述子は、アプリによって開始された元のHTTPリクエストに基づいて、電子デバイスによって取得されてもよい。例えば、S403の例を参照すると、電子デバイスは、第1のHTTPリクエストをCDNサーバ202-1に送信してもよく、第1のHTTPリクエストは、リソース記述子及びバイト範囲[1,200]を搬送する。電子デバイスは、第2のHTTPリクエストをCDNサーバ202-2に送信し、第2のHTTPリクエストは、リソース記述子及びバイト範囲[101,200]を搬送する。
【0102】
方式3:電子デバイスは、第1のHTTPリクエストをCDNサーバ202-1に送信し、第1のHTTPリクエストは、リクエスト対象のデータを記述するために使用されるリソース記述子を含み、バイト範囲フィールドを含まない(すなわち、バイト範囲フィールドが空である)。電子デバイスは、第2のHTTPリクエストに、S402においてCDNサーバ202-2に割り当てられた第2のバイト範囲[c,d]を追加して、CDNサーバ202-2に送信する。第2のHTTPリクエストには、リクエスト対象のデータを記述するために使用されるリソース記述子をさらに含んでもよい。例えば、S403の例を参照すると、電子デバイスは、第1のHTTPリクエストをCDNサーバ202-1に送信してもよく、第1のHTTPリクエストは、リソース記述子を搬送し、バイト範囲[1,200]を搬送しない。電子デバイスは、第2のHTTPリクエストをCDNサーバ202-2に送信し、第2のHTTPリクエストは、リソース記述子及びバイト範囲[101,200]を搬送する。
【0103】
S404:電子デバイスは、第1のCDNサーバ及び第2のCDNサーバによって返された対応するデータを受信する。
【0104】
S405:電子デバイスは、第1のCDNサーバからの第1のデータ及び第2のCDNサーバからの第2のデータに基づいて、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの間の一致を決定する。
【0105】
第1のデータ及び第2のデータは各々、バイト範囲が重複範囲である。例えば、S403の例を参照すると、第1のデータ及び第2のデータは、バイト範囲が[c,b]のデータである。
【0106】
電子デバイスが対応するHTTPリクエストを第1のCDNサーバ及び第2のCDNサーバに送信した後、第1のCDNサーバ及び第2のCDNサーバは、受信したHTTPリクエストに基づいて、対応するデータを別々に電子デバイスに返してもよい。言い換えれば、電子デバイスは、第1のCDNサーバ及び第2のCDNサーバから対応するデータをダウンロードしてもよい。S403における説明によれば、電子デバイスは、第1のHTTPリクエスト及び第2のHTTPリクエストに基づいて、対応するCDNサーバからバイト範囲が[c,b]であるデータをリクエストすると理解されよう。言い換えれば、電子デバイスは、第1のCDNサーバから、バイト範囲が[c,b]であるデータ、例えば第1のデータと呼ばれるデータをダウンロードし、第2のCDNサーバから、バイト範囲が[c,b]であるデータ、例えば第2のデータと呼ばれるデータをダウンロードする。第1のデータ及び第2のデータを受信した後、電子デバイスは、第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致しているかどうかを、第1のデータ及び第2のデータに基づいてチェックしてもよい。例えば、データ一致チェックはバイナリ比較方式で第1のデータと第2のデータに対して実行され、第1のデータと第2のデータとの間のバイナリ比較が完全に一致しているときに、チェックが成功したと決定されてもよく、そうでなければ、チェックが失敗したと決定されてもよい。
【0107】
例えば、電子デバイスが、S403における方式1、方式2、方式3に記載された任意の方式で、CDNサーバ202-1に第1のHTTPリクエストを送信し、CDNサーバ202-2に第2のHTTPリクエストを送信した後、電子デバイスは、CDNサーバ202-1及びCDNサーバ202-2から返されたデータを受信してもよい。電子デバイスが、CDNサーバ202-1によって返され、かつバイト範囲が[a,b]であるデータを受信したときに、電子デバイスは、CDNサーバ202-2によって返され、かつバイト範囲が[c,b]であるデータが受信されたかどうかを決定してもよい。言い換えれば、CDNサーバ202-1からのバイト範囲が[a,b]であるデータのダウンロードが完了したときに、電子デバイスは、CDNサーバ202-2からのバイト範囲[c,b]であるデータのダウンロードが完了したかどうかを決定してもよい。
【0108】
電子デバイスが、CDNサーバ202-1からのバイト範囲が[a,b]であるデータのダウンロードを完了するときに、CDNサーバ202-2からのバイト範囲が[c,b]であるデータのダウンロードを完了する場合、電子デバイスは、CDNサーバ202-1からダウンロードし、かつバイト範囲[c,b]であるデータと、CDNサーバ202-2からダウンロードし、バイト範囲[c,b]であるデータとの一致をチェックしてもよい。
【0109】
電子デバイスが、CDNサーバ202-1からのバイト範囲が[a,b]であるデータのダウンロードを完了するときに、CDNサーバ202-2からのバイト範囲が[c,b]であるデータのダウンロードを完了しない場合、いくつかの実施形態では、電子デバイスは、CDNサーバ202-2からのデータのダウンロードを停止し、CDNサーバ202-1から残りのデータ、例えばバイト範囲が[b+1,d]であるデータをダウンロードしてもよい。いくつかの他の実施形態では、電子デバイスは、事前設定された時間待機して、少なくともバイト範囲が[c,b]であるデータがCDNサーバ202-2からダウンロードされるようにしてもよい。電子デバイスが、事前設定された時間後にCDNサーバ202-2からバイト範囲が[c,b]のデータのダウンロードを完了した場合、電子デバイスは、CDNサーバ202-1からダウンロードし、かつバイト範囲が[c,b]であるデータと、CDNサーバ202-2からダウンロードし、かつバイト範囲[c,b]であるデータとの一致をチェックしてもよい。電子デバイスが、依然として、事前設定された時間後にCDNサーバ202-2からバイト範囲が[c,b]であるデータのダウンロードに完了していない場合、電子デバイスは、CDNサーバ202-2からのデータのダウンロードを停止し、CDNサーバ202-1から残りのデータ、例えばバイト範囲が[b+1,d]であるデータをダウンロードしてもよい。
【0110】
S403の方式2及び方式3では、電子デバイスによってCDNサーバ202-1に送信される第1のHTTPリクエストを使用して、バイト範囲が[b+1,d]であるデータのダウンロードをリクエストしてもよい。したがって、2つの実装において、電子デバイスがCDNサーバ202-2からのデータのダウンロードを停止し、CDNサーバ202-1から残りのデータをダウンロードする場合、CDNサーバ202-1からデータをダウンロードするプロセスに介入する必要はない。電子デバイスは、CDNサーバ202-2からデータを返すことを停止することをリクエストするために、対応するリセット・パケットをCDNサーバ202-2に送信することを条件として、CDNサーバ202-1から残りのデータを自動的にダウンロードする。しかしながら、S403の方式1では、電子デバイスによってCDNサーバ202-1に送信される第1のHTTPリクエストは、バイト範囲が[a,b]であるデータをダウンロードすることをリクエストためだけに使用される。したがって、この実装では、電子デバイスがCDNサーバ202-2からのデータのダウンロードを停止し、CDNサーバ202-1から残りのデータをダウンロードする場合、電子デバイスは、CDNサーバ202-2からデータを返すことを停止することをリクエストするために、対応するリセット・パケットをCDNサーバ202-2に送る必要があり、電子デバイスがCDNサーバ202-1から残りのデータをダウンロードすることができるように、バイト範囲[b+1,d]を搬送するHTTPリクエストをCDNサーバ202-1に送信する必要もある。
【0111】
例えば、S403の例を参照すると、電子デバイスが第1のHTTPリクエストをCDNサーバ202-1に送信し、第2のHTTPリクエストをCDNサーバ202-2に送信した後、電子デバイスは、CDNサーバ202-1及びCDNサーバ202-2によって返されたデータを受信してもよい。CDNサーバ202-1からバイト範囲が[1,110]であるデータのダウンロードを完了したときに、電子デバイスは、CDNサーバ202-2からバイト範囲が[101,110]であるデータのダウンロードが完了したかどうかを決定してもよい。電子デバイスが、CDNサーバ202-1からのバイト範囲が[1,110]であるデータのダウンロードを完了するときに、CDNサーバ202-2からのバイト範囲が[101,110]であるデータのダウンロードを完了する場合、電子デバイスは、CDNサーバ202-1からダウンロードし、かつバイト範囲[101,110]であるデータと、CDNサーバ202-2からダウンロードし、バイト範囲[101,110]であるデータとの一致をチェックしてもよい。
【0112】
電子デバイスが、CDNサーバ202-1からのバイト範囲が[1,110]であるデータのダウンロードを完了するときに、CDNサーバ202-2からのバイト範囲が[101,110]であるデータのダウンロードを完了していない場合、電子デバイスは、事前設定された時間待機して、データ範囲が[101,110]であるデータがCDNサーバ202-2からダウンロードされるようにしてもよい。電子デバイスは、事前設定された時間後にCDNサーバ202-2からバイト範囲が[101,110]であるデータのダウンロードに完了する場合、電子デバイスは、CDNサーバ202-1からダウンロードし、かつバイト範囲が[101,110]であるデータと、CDNサーバ202-2からダウンロードし、かつバイト範囲が[101,110]であるデータとの間のデータ一致をチェックしてもよい。電子デバイスが、依然として、事前設定された時間後にCDNサーバ202-2からのバイト範囲が[101,110]であるデータのダウンロードが完了していない場合、電子デバイスは、CDNサーバ202-2からのデータのダウンロードを停止し、CDNサーバ202-1からバイト範囲[111,200]であるデータをダウンロードしてもよい。例えば、S403における方式2及び方式3では、電子デバイスは、CDNサーバ202-1からバイト範囲が[111,200]であるデータを自動的にダウンロードする。電子デバイスはまた、CDNサーバ202-2からデータを返すことを停止することをリクエストするために、対応するリセット・パケットをCDNサーバ202-2に送信する必要がある。別の例として、S403における方式1では、電子デバイスは、CDNサーバ202-2からデータを返すことを停止することをリクエストするために、対応するリセット・パケットをCDNサーバ202-2に送信する必要があり、電子デバイスがCDNサーバ202-1から残りのデータをダウンロードすることができるように、CDNサーバ202-1に、バイト範囲[111,200]を搬送するHTTPリクエストも送信する必要がある。
【0113】
本出願のいくつかの他の実施態様では、CDNサーバによって電子デバイスに返されるデータは、必ずしも全ての有効なデータではないことが理解されよう。例えば、返されたデータはコンテンツではなく、パディング・データ(例えば、¥0)、制御データなどのデータを示してもよい。したがって、データ一致チェックの精度を確保するために、第1のデータ及び第2のデータを取得した後、電子デバイスは、最初に、第1のデータ及び第2のデータにおける有効なデータの割合を取得してもよい。有効データの割合がしきい値1よりも大きい場合、第1のデータと第2のデータに基づいて実行されるデータ一致チェックの正確性が比較的高いことを示す。この場合に、電子デバイスは、第1のデータ及び第2のデータに基づいて、第1のCDNサーバからダウンロードしたデータと、第2のCDNサーバからダウンロードしたデータとの間の一致をチェックする、すなわち、S405において第1のCDNサーバからダウンロードしたデータと、第2のCDNサーバからダウンロードしたデータとの一致を決定する動作を実行する。有効データの割合がしきい値1よりも小さい場合、第1のデータと第2のデータに基づいて実行されるデータ一致チェックの正確性が比較的低いことを示す。この場合ニ、電子デバイスは、重複範囲のサイズを増加させ、次いで、そのサイズが増加された後に取得される重複範囲に対応するデータにおける有効なデータの割合(例えば、本出願における第3のデータ及び第4のデータ)がしきい値1よりも大きいかどうかを再決定してもよい。有効データの割合がしきい値1よりも大きい場合、電子デバイスは、サイズが増加された後に取得される重複範囲に対応するデータに基づいて、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの間の一致をチェックしてもよい。有効データの割合がしきい値1よりも大きい場合、最終的に取得された重複範囲に対応するデータにおける有効データの割合がしきい値1より大きくなるまで、重複範囲のサイズをさらに増加させてもよい。
【0114】
例えば、CDNサーバ202-1から電子デバイスによりダウンロードしたバイト範囲が[101,110]であるデータはデータ1であり、CDNサーバ202-2からダウンロードしたバイト範囲が[101,110]であるデータはデータ2である。電子デバイスは、データ1及びデータ2における有効データの割合を取得してもよい。有効データの割合がしきい値1よりも大きい場合、電子デバイスは、データ1及びデータ2に基づいて、第1のCDNサーバからダウンロードしたデータ及び第2のCDNサーバからダウンロードしたデータの一致をチェックしてもよい。有効なデータの割合がしきい値1よりも小さい場合、電子デバイスは、重複範囲のサイズを増加させてもよい。例えば、電子デバイスは、CDNサーバ202-1からバイト範囲が[111,120]であるデータをダウンロードし続け、CDNサーバ202-2からバイト範囲が[111,120]であるデータをダウンロードし続ける。この場合、バイト範囲の重複範囲は[101,120]である。次いで、電子デバイスは、CDNサーバ202-1及びCDNサーバ202-2からダウンロードし、かつバイト範囲が[101,120]であるデータにおける有効データの割合が、しきい値1よりも大きいかどうかを再決定してもよい。割合がしきい値1よりも大きい場合、電子デバイスは、CDNサーバ202-1及びCDNサーバ202-2からダウンロードし、かつバイト範囲が[101,120]であるデータに基づいて、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの間の一致をチェックしてもよい。有効データの割合がしきい値1よりも大きくない場合、重複範囲のサイズをさらに増加させてもよい、例えば、最終的に取得される重複範囲に対応するデータ中の有効データの割合がしきい値1よりも大きくなるまで、バイト範囲の重複範囲を[101,130]を増加させる。他のいくつかの実施形態では、電子デバイスは、代替的に、重複範囲を増加させた後にダウンロードが続けられるデータにおける有効データの割合のみに基づいて、データのこの部分に基づいて実行されるデータ一致チェックの正確性を決定し、正確性が比較的高いと決定する場合、データのこの部分に基づいてデータ一致をチェックしてもよい。例えば、電子デバイスが、CDNサーバ202-1からバイト範囲が[111,120]であるデータをダウンロードし続け、CDNサーバ202-2からバイト範囲が[111,120]であるデータをダウンロードした後、電子デバイスは、CDNサーバ202-1及びCDNサーバ202-2からダウンロードしたバイト範囲が[111,120]であるデータにおける有効なデータの割合のみを取得してもよい。追加的に、電子デバイスは、有効データの割合がしきい値1より大きいと決定したときに、CDNサーバ202-1及びCDNサーバ202-2からダウンロードし、バイト範囲が[111,120]であるデータに基づいて、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの一致をチェックする。
【0115】
以上は、データに基づいて実行されるデータ一致チェックの正確性が、異なるCDNサーバからダウンロードしたデータにおける有効データの割合に基づいて決定される例を用いて記載されている。いくつかの他の実施形態において、第1のデータ及び第2のデータを取得した後、電子デバイスは、最初に、第1のデータ及び第2のデータにおけるパディング・データの割合(例えば、¥0)及び/又は第1のデータ及び第2のデータにおける制御データの割合を取得してもよい。データの割合がしきい値2よりも小さい場合、第1のデータと第2のデータに基づいて実行されるデータ一致チェックの正確性が比較的高いことを示す。この場合に、電子デバイスは、第1のデータ及び第2のデータに基づいて、第1のCDNサーバからダウンロードしたデータと第2のCDNサーバからダウンロードしたデータとの間の一致をチェックしてもよい。データの割合がしきい値2よりも大きい場合、第1のデータと第2のデータに基づいて実行されるデータ一致チェックの正確性が比較的低いことを示す。この場合に、電子デバイスは、重複範囲のサイズを増加させてもよい。次いで、サイズを増加させた後に取得された重複範囲に対応するデータに基づいて、後続の動作を続けて実行する(後続の動作の詳細は、前述の例における説明と同じであり、詳細は、本明細書では再度記載されない)。
【0116】
本出願の本実施形態では、電子デバイスが、第1のCDNサーバからダウンロードしたデータが第2のCDNサーバからダウンロードしたデータと一致していると決定する場合、S406が実行されてもよい。電子デバイスが、第1のCDNサーバからダウンロードしたデータが第2のCDNサーバからダウンロードしたデータと一致していないと決定する場合、S407が実行されてもよい。
【0117】
S406及びS407は、S403において送信される異なるHTTPリクエストに対しても異なる。具体的には、S403の方式1では、S406は具体的には以下のS406-1であり、S407は具体的には以下のS407-1であり得る。言い換えれば、電子デバイスが、第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致していると決定した場合、S406-1が実行されてもよい。電子デバイスが、第1のCDNサーバからダウンロードしたデータが第2のCDNサーバからダウンロードしたデータと一致していないと決定する場合、S407-1が実行されてもよい。
【0118】
S406-1:電子デバイスは、第1のCDNサーバからダウンロードしたデータと、第2のCDNサーバからダウンロードしたデータを接合する。
【0119】
第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致していると決定されたときに、第1のCDNサーバからダウンロードしたデータは、使用するために第2のCDNサーバからダウンロードしたデータと接合せされてもよいことを示す。第2のCDNサーバは、電子デバイスにデータを返すことを続けてもよい、すなわち、電子デバイスは、第2のCDNサーバからデータを受信し続けてもよい。上述の例を参照すると、電子デバイスは、CDNサーバ202-1からバイト範囲が[a,b](例えば[1,110])であるデータをダウンロードし、CDNサーバ202-2からバイト範囲が[101,200]であるデータをダウンロードしてもよい。電子デバイスは、CDNサーバ202-1からダウンロードしたデータと、CDNサーバ202-2からダウンロードしたデータを接合して、元のHTTPリクエストによってリクエストされたバイト範囲が[a,d]であるデータを取得する。
【0120】
S407-1:電子デバイスは、第3のHTTPリクエストを第1のCDNサーバに送信し、リセット・パケットを第2のCDNサーバに送信する。
【0121】
第3のHTTPリクエストは、S401におけるリクエスト対象のデータにおける第1のバイト範囲によって識別されたデータをダウンロードすることをリクエストするために使用される。
【0122】
第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致していないと決定された場合、第1のCDNサーバからダウンロードしたデータが第2のCDNサーバからダウンロードしたデータと接合されたときに、接合を介して取得されるデータが無効となり得ることを示す。したがって、電子デバイスは、第2のCDNサーバからダウンロードされたデータを破棄し、リセット・パケットを第2のCDNサーバに送信して、第2のCDNサーバが電子デバイスへデータを返すことを停止するようにする。追加的に、S403における方式1では、電子デバイスによってCDNサーバ202-1に送信される第1のHTTPリクエストは、バイト範囲が[a,b]であるデータ(例えば[1,110])をリクエストするためだけに使用される。したがって、電子デバイスは、CDNサーバ202-1に第3のHTTPリクエストを送信してもよい。第3のHTTPリクエストで搬送されるバイト範囲は、[b+1,d](例えば[111,200])であり、電子デバイスが、CDNサーバ202-1から残りのデータをダウンロードし続けることができるようにする。すなわち、電子デバイスは、CDNサーバ202-1から、バイト範囲が[a,d](例えば、[1,200])であるデータをダウンロードしてもよい。
【0123】
S405に記載されているように、CDNサーバによって電子デバイスに返されるデータは、必ずしも全ての有効なデータではない、すなわち、データの一致チェックは、第1のデータ及び第2のデータに基づいて実行されなくてもよいと理解されよう。第1のデータ及び第2のデータに基づいてデータ一致チェックを実行することができない場合、電子デバイスは、データ一致をチェックするために、重複範囲のサイズを大きくすることによって対応するデータを再取得してもよい。本実施形態では、S403の方式1においてHTTPリクエストが伝送される場合、第1のデータ及び第2のデータに基づいてデータ一致チェックを実行することができないと決定した場合、電子デバイスは、第3のHTTPリクエストを第1のCDNサーバに送信して、第1のCDNサーバからのデータのダウンロードを続けてもよい。このように、データ一致チェックが実行された後、チェック結果に基づいて、S406-2又はS407-2に記載されている以下のステップが実行されてもよい。
【0124】
S403における方式2及び方式3では、S406は具体的には以下のS406-2であり、S407は具体的には以下のS407-2であり得る。言い換えれば、電子デバイスが、第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致していると決定した場合、S406-2が実行されてもよい。電子デバイスが、第1のCDNサーバからダウンロードしたデータが第2のCDNサーバからダウンロードしたデータと一致していないと決定する場合、S407-2が実行されてもよい。
【0125】
S406-2:電子デバイスは、リセット・パケットを第1のCDNサーバに送信し、第1のCDNサーバからダウンロードしたデータと、第2のCDNサーバからダウンロードしたデータを接合する。
【0126】
第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致していると決定されたときに、第1のCDNサーバからダウンロードしたデータは、使用するために第2のCDNサーバからダウンロードしたデータと接合せされてもよいことを示す。しかしながら、S403における方式2及び方式3では、電子デバイスによって第1のCDNサーバに送信された第1のHTTPリクエストが全てのデータをリクエストするように使用される。したがって、電子デバイスは、リセット・パケットを第1のCDNサーバに送信してもよく、第1のCDNサーバが、電子デバイスへデータを返すことを停止し、第2のCDNサーバは、電子デバイスへデータの返すことを続ける。このようにして、上述の例を参照すると、電子デバイスは、CDNサーバ202-1からバイト範囲が[a,b](例えば[1,110])であるデータをダウンロードし、CDNサーバ202-2からバイト範囲が[101,200]であるデータをダウンロードしてもよい。電子デバイスは、CDNサーバ202-1からダウンロードしたデータと、CDNサーバ202-2からダウンロードしたデータを接合して、元のHTTPリクエストによってリクエストされたバイト範囲が[a,d]であるデータを取得する。
【0127】
S407-2:電子デバイスは、リセット・パケットを第2のCDNサーバに送信し、第1のCDNサーバが、全てのデータをダウンロードするようにする。
【0128】
第1のCDNサーバからダウンロードしたデータが、第2のCDNサーバからダウンロードしたデータと一致していないと決定された場合、第1のCDNサーバからダウンロードしたデータが第2のCDNサーバからダウンロードしたデータと接合されたときに、接合を介して取得されるデータが無効となり得ることを示す。したがって、電子デバイスは、第2のCDNサーバからダウンロードされたデータを破棄し、リセット・パケットを第2のCDNサーバに送信して、第2のCDNサーバが電子デバイスへデータを返すことを停止するようにする。追加的に、S406-2に記載のように、S403における方式2及び方式3では、電子デバイスによって第1のCDNサーバに送信された第1のHTTPリクエストが全てのデータをリクエストするように使用される。したがって、第1のCDNサーバからデータをダウンロードするプロセスに介入する必要がなく、電子デバイスは、第1のCDNサーバから残りのデータを自動的にダウンロードする。前述の例を参照すると、電子デバイスは、CDNサーバ202-1から、バイト範囲が[a,d](例えば、[1,200])であるデータをダウンロードしてもよい。
【0129】
本出願の実施形態では、HTTP2において、リセット・パケットは、HTTPリセット・パケットであってもよい。HTTP1/1.1では、リセット・パケットはTCPリセット・パケットであってもよく、CDNサーバが電子デバイスへデータを返すことを停止することを示すために使用される。
【0130】
前述の実施形態では、電子デバイスがMPHTTP技術を使用することによって2つのCDNサーバからデータをダウンロードする例が、本出願の実施形態において提供される技術的解決策を記載するために使用されていることに留意されたい。確かに、本実施形態の技術的解決策は、電子デバイスがMPHTTP技術を使用することによって3つ以上のCDNサーバからデータをダウンロードするシナリオにさらに適用されてもよい。これらのシナリオでは、電子デバイスは、前述の実施形態における方法を使用して、電子デバイスに連続データを返すように構成されているCDNサーバからのデータの一致をチェックしてもよい。例えば、電子デバイスは、CDNサーバ1、CDNサーバ2、CDNサーバ3の3つのCDNサーバから、MPHTTP技術を使用することによってデータをダウンロードする。元のHTTPリクエストを使用することによってリクエストされたデータのバイト範囲は[a,f]である。電子デバイスは、CDNサーバ1にバイト範囲1を割り当ててもよい。例えば、バイト範囲1は[a,b]である。電子デバイスは、CDNサーバ2にバイト範囲2を割り当ててもよい。例えば、バイト範囲2は[c,d]である。電子デバイスは、CDNサーバ3にバイト範囲3を割り当ててもよい。例えば、バイト範囲3は[e,f]である。[a,b]、[c,d]、及び[e,f]は全て[a,f]のサブセットである。言い換えれば、電子デバイスは、少なくともバイト範囲1におけるデータをCDNサーバ1からダウンロードし、バイト範囲2におけるデータをCDNサーバ2からダウンロードし、バイト範囲3におけるデータをCDNサーバ3からダウンロードする必要がある。例えば、バイト範囲1によって識別されるデータと、バイト範囲2によって識別されるデータは連続的であり、バイト範囲2によって識別されるデータと、バイト範囲3によって識別されるデータは連続的である。この実施形態では、電子デバイスは、CDNサーバ1からのデータとCDNサーバ2からのデータとの間の一致をチェックし、CDNサーバ2からのデータとCDNサーバ3からのデータとの間の一致をチェックしてもよい。
【0131】
例えば、バイト範囲1[a,b]とバイト範囲2[c,d]の間に重複範囲が存在する。例えば、cがbよりも小さい、すなわち、バイト範囲1とバイト範囲2との間に重複範囲[c,b]が存在する。バイト範囲2[c,d]とバイト範囲3[e,f]との間に重複範囲がある。例えば、eがdよりも小さい、すなわち、バイト範囲2とバイト範囲3の間に重複範囲[e,d]が存在する。このようにして、電子デバイスは、バイト範囲1及びバイト範囲2を使用することによって、CDNサーバ1及びCDNサーバ2から同じデータ、すなわち、バイト範囲が[c,b]であるデータをダウンロードしてもよい。電子デバイスは、CDNサーバ1からダウンロードしたバイト範囲[c,b]と、CDNサーバ2からダウンロードしたバイト範囲[c,b]に基づいて、CDNサーバ1からダウンロードしたデータと、CDNサーバ2からダウンロードしたデータとの間の一致をチェックしてもよい。チェックが成功した場合、電子デバイスは、使用するためにCDNサーバ1からダウンロードしたデータと、CDNサーバ2からダウンロードしたデータを接合してもよい。チェックが失敗した場合、接合をすることはできない。同様に、電子デバイスは、バイト範囲2及びバイト範囲3を使用することによって、CDNサーバ2及びCDNサーバ3から同じデータ、すなわち、バイト範囲が[e,d]であるデータをダウンロードしてもよい。電子デバイスは、CDNサーバ2からダウンロードしたバイト範囲[e,d]と、CDNサーバ3からダウンロードしたバイト範囲[e,d]に基づいて、CDNサーバ2からダウンロードしたデータと、CDNサーバ3からダウンロードしたデータとの間の一致をチェックしてもよい。チェックが成功した場合、電子デバイスは、使用するためにCDNサーバ2からダウンロードしたデータと、CDNサーバ3からダウンロードしたデータを接合してもよい。チェックが失敗した場合、接合をすることはできない。特定の処理プロセスは、前述の実施形態における対応する内容に類似しており、詳細は、本明細書では再度記載されない。
【0132】
上述の技術的解決策によれば、電子デバイスが複数のCDNサーバからデータをダウンロードする必要がある場合、異なるCDNサーバに割り当てられたバイト範囲に対して重複範囲が設計されてもよい。これは、電子デバイスが、全ての異なるCDNサーバから重複範囲のデータをダウンロードすることを意味し、データのこの部分は、異なるCDNサーバから引き出されるデータの一致をチェックするために使用される。異なるCDNサーバから引き出されたデータが一致していると決定するときに、電子デバイスは、データを接合して、最終的に必要なデータを取得してもよい。このように、MPHTTP技術は、より大きな集約帯域幅を取得するために使用され、データ接合妥当性及び正常なサービスの動作を確保する。追加的に、データ一致チェックが実行される前に、比較対象のデータにおける有効データ又はパディング・データの割合が最初に決定される。割合が特定の条件を満たすときにのみ、データ一致チェックが実行されて、データ一致チェックの正確性を確保する。追加的に、技術的解決策は、CDNサーバ側で改善する必要はなく、デバイス側で最適化を行うことによってのみ実装され得る。したがって、展開の難易度は低く、適用範囲は広い。追加的に、この実施形態は、HTTP1/1.1シナリオに適用され、HTTP2シナリオに適用される。
【0133】
この出願の別の実施形態は、電子デバイスをさらに提供する。電子デバイスは、プロセッサ、メモリ、及び通信インターフェースを含んでもよい。メモリ及び通信インターフェースはプロセッサに結合される。通信インターフェースは、別の通信デバイスと通信するように構成されている。別のデバイスは、第1のCDNサーバ及び第2のCDNサーバを含む。メモリは、コンピュータ・プログラム・コードを記憶するように構成されている。コンピュータ・プログラム・コードは、コンピュータ命令を含む。コンピュータ命令が電子デバイスによって実行されるときに、電子デバイスは、
図4に示す実施形態において、電子デバイスによって実行されるステップを実行することが可能となる。
【0134】
本出願の別の実施形態は、コンピュータ・ソフトウェア命令を含むコンピュータ可読記憶媒体をさらに提供する。コンピュータ・ソフトウェア命令が電子デバイスで動作するときに、電子デバイスは、
図4に示す実施形態において、電子デバイスによって実行されるステップを実行することが可能となる。
【0135】
本出願の別の実施形態は、コンピュータ・プログラム製品をさらに提供する。コンピュータ・プログラム製品が電子デバイスで動作するときに、コンピュータは、
図4に示す実施形態において、電子デバイスによって実行されるステップを実行することが可能となる。
【0136】
本出願の別の実施形態は、装置をさらに提供する。デバイスは、
図4に対応する実施形態における電子デバイスの挙動を実装する機能を有する。本機能は、ハードウェアによって実装されてもよいし、対応するソフトウェアを実行することによってハードウェアによって実装されてもよい。ハードウェア又はソフトウェアは、前述の機能に対応する1つ以上のモジュール、例えば、割り当てユニット又はモジュール、送信ユニット又はモジュール、受信ユニット又はモジュール、及び取得ユニット又はモジュールを含む。
【0137】
実装についての前述の説明は、便宜的かつ簡潔な説明を目的として、前述の機能モジュールへの分割が図示のための例として解釈されると当業者が理解することを可能にする。実際のアプリケーションでは、前述の機能を異なるモジュールに割り当て、要件に従って実装することができ、すなわち、装置の内部構造を異なる機能モジュールに分割して、上述の機能の全部又は一部を実装する。
【0138】
本出願に提供されるいくつかの実施形態では、開示された装置及び方法は、他の方式で実装され得ると理解されたい。例えば、記載された装置の実施形態は、一例にすぎない。例えば、モジュール又はユニットへの分割は、単に論理機能にすぎず、実際の実装において他の分割であってもよい。例えば、複数のユニット又はコンポーネントが別の装置に接合されたり、一体化されたりしてもよいし、いくつかの特徴が無視されたり、実行されなかったりしてもよい。追加的に、表示又は議論された相互結合、直接結合、又は通信接続は、いくつかのインターフェースを使用することによって実装されてもよい。装置又はユニット間の間接結合又は通信接続は、電子的、機械的、又は他の形態で実装されてもよい。
【0139】
別個の部分として説明されるユニットは、物理に分離されていても、されていなくてもよく、ユニットとして表示される部分は、1つ以上の物理ユニットであってもよいし、1つの場所に位置していてもよいし、複数の場所に分散していてもよい。ユニットの一部又は全部は、実施形態の解決策の目的を達成するために実際の要件に基づいて選択されてもよい。
【0140】
追加的に、本出願の実施形態における機能ユニットは、1つの処理ユニットに一体化されてもよいし、ユニットの各々は、物理的に単独で存在してもよいし、2つ以上のユニットは、1つのユニットに一体化される。一体化されたユニットは、ハードウェアの形態で実装されてもよいし、ソフトウェア機能ユニットの形態で実装されてもよい。
【0141】
一体化されたユニットがソフトウェア機能ユニットの形態で実装され、独立した製品として販売又は使用されるときに、一体化されたユニットは、可読記憶媒体に記憶されてもよい。このような理解に基づいて、本出願の技術的解決策が、本質的にソフトウェア製品の形態で実装されてもよいし、従来技術に寄与する部分が、ソフトウェア製品の形態で実装されてもよいし、技術的解決策の全部又は一部が、ソフトウェア製品の形態で実装されてもよい。ソフトウェア製品は、記憶媒体に記憶され、デバイス(シングルチップ・マイクロコンピュータ、チップなどであってもよい)又はプロセッサ(processor)に、本出願の実施形態で説明される方法のステップの全部又は一部を実行させるように命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュ・ドライブ、リムーバブル・ハード・ディスク、読み出し専用メモリ(Read-Only Memory、ROM)、ランダム・アクセス・メモリ(Random Access Memory、RAM)、磁気ディスク、又は光ディスクなど、プログラム・コードを記憶することができる任意の媒体を含む。
【0142】
前述の説明は、この出願の単に具体的な実装に過ぎないが、この出願の保護範囲を制限することを意図したものではない。この出願に開示された技術的範囲内の変形又は置換は、この出願の保護範囲に含まれるものとする。したがって、この出願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。