JP6606176B2 - 適応型レート制御及びトラフィック管理のシステム及び方法 - Google Patents

適応型レート制御及びトラフィック管理のシステム及び方法 Download PDF

Info

Publication number
JP6606176B2
JP6606176B2 JP2017512981A JP2017512981A JP6606176B2 JP 6606176 B2 JP6606176 B2 JP 6606176B2 JP 2017512981 A JP2017512981 A JP 2017512981A JP 2017512981 A JP2017512981 A JP 2017512981A JP 6606176 B2 JP6606176 B2 JP 6606176B2
Authority
JP
Japan
Prior art keywords
data
processor
application
network
rate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017512981A
Other languages
English (en)
Other versions
JP2017530624A (ja
Inventor
チョウ ウィリアム・ウェイヤ
ブライアン・アレックス・トゥルン
Original Assignee
モボファイルズ インク. ディービーエー モボライズ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by モボファイルズ インク. ディービーエー モボライズ filed Critical モボファイルズ インク. ディービーエー モボライズ
Publication of JP2017530624A publication Critical patent/JP2017530624A/ja
Priority to JP2019189817A priority Critical patent/JP6974412B2/ja
Application granted granted Critical
Publication of JP6606176B2 publication Critical patent/JP6606176B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Description

関連出願の相互参照
0001 本出願は、2014年3月4日に出願された米国仮出願第61/947,982号の関連出願である、2014年9月5日に出願された米国仮出願第62/046,874号の優先権及び利益を主張する。
0002 本発明の実施形態の態様は、適応型レート制御及びトラフィック管理のシステム及び方法に関する。
0003 電子デバイス(スマートフォン又はタブレットなどのポータブル電子デバイスを含む)用の高帯域幅アプリケーション(例えばストリーミング動画)の使用の増加により、無線データネットワーク(例えばセルラーデータネットワーク)に対する需要が大きくなってきている。現在、同じ制限されたネットワーク帯域幅を使用しようとするこれらのデバイス上で動作している多数のポータブルデバイス及びアプリケーション(「アプリ」)が存在する。デバイス上のキャッシュサーバのコンテンツは同じデータに対する繰り返しのリクエストには役立つものの、これは、しばしば又は通常は、これらの高帯域幅アプリケーションの多く(ポータブルデバイス上でリアルタイムに動画コンテンツを見たり、音声コンテンツを聞いたりする時など)ではそうではない。
0004 現在のモバイル通信システム(例えばセルラーネットワーク)は、制限された容量が加速する需要に追い付かないことによって引き起こされる問題の影響を受けている。容量は、各モバイルネットワークオペレータの有限の無線スペクトル、既存のスペクトルのスペクトル容量における物理的限度に達する技術、及び新しいスペクトルへのアクセスのための長い規制リード時間によって制限される。同時に、より多くのユーザが移動可能となり、モバイルデバイスがより高速/高機能になることによる需要が、利用できる容量を上回っている。容量が不十分である結果として、モバイルサービスのネットワーク混雑、貧弱なユーザ体験、及び収益の機会の喪失となる。
0005 ユーザ需要とネットワークモバイルネットワーク容量のミスマッチの原因は多くある(例えば、より高速のデバイス、よりデータ消費量が多い又は「派手な」アプリ、及びモバイル動画の増加など)。モバイル動画の消費は特に問題であるが、それは、主に利用できるネットワーク容量のすべてまで自動的に使用するためのアダプティブ動画ストリーミングの本来の動作のために、他のどのモバイル活動よりも速くデータ消費を増やしているからである。アダプティブ動画ストリーミングは、デバイスがより低速のネットワークに合わせて動画品質を下げるように自動的に調整できるように設計されているが、より高速のネットワークに合わせて動画品質を上げるように自動的に調整する反対の動作も可能にし、その結果、ユーザにとって予想できないほど高いデータ使用をもたらし得る。
0006 不運にも、ユーザ又はモバイルネットワークオペレータは、そのデータ使用を管理するための十分な洞察又は制御を有していないので、この需要と容量のミスマッチの結果として、一般に貧弱なユーザ体験及び/又はエンドユーザの高いコストにつながる。モバイルオペレータは、過剰にチャティであったり過剰なデータを使用し得る特定のアプリを見るためのネットワークからの可視性をほとんど又は全く有さず、よって、モバイルネットワークに対するその影響を調整/制限するための精度に欠ける。モバイルオペレータは、特定のユーザからのデータ消費を監視及び/又は制御するためのネットワークに配置された既存のツール(例えばインテリジェントなスイッチ及びプロキシサーバ)を有するが、これらのツールは、特定のトラフィックのための特定のアプリを確実に特定はできないため、十分な粒度を欠いている。エンドユーザにとっては、当該ツールは、そのデータ消費を管理するための制御(例えば高帯域幅の動画ストリームがそのデータ計画を使い果たすことを防いだり、特定のアプリがローミングの際にデータを使用するのを許可する/ブロックしたりすることなど)をほとんど有さない。これは、エンドユーザがそのデータ消費、コスト、及びユーザ体験を管理可能とすることを防ぐ。
0007 本発明の実施形態の態様は、ポータブルデバイス(例えばスマートフォン)上のトラフィックの監視及び制御を対象とする。さらなる態様は、適応型レート制御及びトラフィック管理のシステム及び方法を対象とする。
0008 本発明の実施形態の態様は、モバイルデバイス内からのアプリケーションレベルのデータ使用の検出及び制御を提供することによって、これらの及び他の懸念に取り組む。さらに詳細に、本発明の態様は、モバイルアプリに提供されるデータレートを制限することによってデータ消費の大幅な削減を提供する(例えばアダプティブ動画ストリームにおいて)。さらなる態様は、デバイスがデータを受信するために携帯電話の基地局に接続される必要がある時間の総量を減らすために、アプリ/デバイスにデータをバースト受信することによって、ラジオ信号送信及びセルラー混雑の削減を提供する。そしてさらなる態様は、モバイルアプリに許可/限定されるネットワーク容量のきめ細かい追跡及び制御を提供する。
0009 従って、本発明の実施形態は、モバイルデバイス上のアプリによって実行されるモバイルトラフィックを処理する能力を提供する。「帯域内で」このトラフィックを処理する能力は、モバイルアプリトラフィックに適用される多種多様な監視及び制御機能を可能にする。デバイス内のこのトラフィックを処理する能力は、デバイスがアクセスする任意のネットワークに亘ってこれらの機能を可能にする。本発明の実施形態は、帯域内の監視及び制御がモバイルデバイス上で達成され得る複数の方法(例えば、プロキシ構成、VPNトンネルデバイス、又はモバイルアプリ内のリクエスト傍受の使用)を提供する。
0010 本発明の実施形態は、データストリーミングアプリケーション(動画又は音声など)の帯域幅を改良又は最適化することを対象とする。本発明の実施形態は、動画又は音声のストリーミング技術に適したストリーミングファイル(例えば、マルチメディアストリームの質を、当該ストリームを送信するのに利用できる帯域幅の質に一致するように調整するABR(アダプティブビットレート))を含む、一部のコンテンツを一時的に格納すること(例えば次のいくつかの動画チャンクを事前読み込みすること)を対象とする。
0011 本発明の実施形態は、アダプティブビットレート(ABR)制御(例えば、既存のプロトコルで帯域幅使用を最小にするためにこのような方法でデータをリクエストするためにアプリを最適化する)及び接続制御(例えば、ネットワークへの接続時間を、データをできるだけ効率的に取得するのに必要な時間に最小化する)を対象とする。
0012 本発明の実施形態は、データ速度のビットレート制御、ストリームチャンクの事前読み込み(後で接続を開くのを避けるために、アプリが当該事前読み込みを要求する前に)、ストリームチャンク(動画ストリームチャンクなど)を事前読み込みする際に事前読み込みのデータ速度及び量をビットレート制御するために、かつ特定のリクエスト(例えばアプリによるネットワークの使用を制御又は制限するため)を許可及び不許可するために、望ましいビットレート制御を決めるための方針に基づく規則を対象とする。
0013 データ速度のビットレート制御は、例えば帯域幅の使用を減らすために使用されてよく、かつ接続時間を減らすためにいくつかの場合ではストリームチャンクの事前読み込み(例えば、ストリーミングコンテンツ(例えば動画)用)と組み合わせられ得る。これらを制御するためのポリシーに基づく規則のための別の用語は、「エンドポイントのトラフィック管理」であり、これは、アプリが実行できるリクエストのタイプ及び頻度を制限するために使用してよい。
0014 これらの技術のすべての重要な態様は、それらが以前はエンドポイントデバイス(スマートフォン又はタブレットなど)上で有効にされていないことである。
0015 本発明の一実施形態では、アダプティブビットレートは、データがいかに配信されるかを決定し、それを利用するためにクライアントからのリクエストを最適化する(ユーザが本当にこれを必要とするまで過剰なコンテンツをバッファリングすること)。他の実施形態では、ビットレート制御は、データが、これを要求しているアプリにいかに速く配信されているかを判定する。例えば、これは、「アダプティブビットレートストリーム」に該当し得るものであり、アプリは、要求するアイテムの複数のサイズの選択肢(例えば同じ動画を複数の解像度で)を有し、ペースを遅くすることで、アプリによりサイズが小さいバージョン(よってより小さい帯域幅を使用する)を選択させる。
0016 本発明の一実施形態では、接続制御は、接続期間を最大限に利用するように試み、接続を切って、再度アクセスが必要になるまで他のアプリケーション/ユーザがネットワークにアクセスすることを許す。
0017 本発明の一実施形態では、トラフィック管理は、現在システムが利用できない多数のユーザビリティの機能(セキュリティ、使用監視など)を追加する。1つ以上の実施形態では、これらの機能は、ユーザビリティ(エンドユーザ用)又はネットワークオペレータ(例えばセルラープロバイダ)用の制御/保護のいずれかであってよい。いくつかの実施形態では、これらは、方針を適用しかつ決定を下すことができるように、エンドポイントデバイスのトラフィックフローの中心点に位置するトラフィックマネージャ(プロキシなど)に依存し、又は当該トラフィックマネージャを有し得る。
0018 本発明の一実施形態では、コンピュータプロセッサと、ネットワーク経由で前記プロセッサとの間でデータを送受信するためのコンピュータサーバへのネットワーク接続とを有するポータブル通信デバイスにおける、通信トラフィック管理方法が提供される。この方法は、前記プロセッサ上で動作しているトラフィックマネージャアプリケーションによって、前記プロセッサ上で動作し、かつ前記ネットワーク経由で前記サーバに/から第1のデータを配信する第1のアプリケーションを特定することと、前記トラフィックマネージャアプリケーションによって、前記第1のアプリケーションへの/からの前記第1のデータの電子トラフィックを傍受することと、前記トラフィックマネージャアプリケーションによって、前記第1のアプリケーションへの/からの、又は前記サーバへの/からの前記第1のデータの配信速度を制御することとを含む。
0019 前記第1のデータの前記配信速度の前記制御は、前記第1のアプリケーションによって認識される前記ネットワークの現在速度を、前記ネットワークの前記現在速度より遅い第1のデータレートに絞ることを含み得る。
0020 前記第1のデータの前記電子トラフィックは、データがハイパーテキストトランスファープロトコル(HTTPS)のセキュアプロトコルを使用して送信されることを含み得る。
0021 前記第1のデータの前記配信速度の前記制御は、前記サーバへの/からの前記第1のデータの前記配信速度を、前記ネットワークの現在速度より遅い第1のデータレートに絞ることを含み得る。
0022 前記第1のデータの前記電子トラフィックは、アダプティブビットレートストリームを含み得る。
0023 前記第1のデータの前記電子トラフィックは、プログレッシブストリームを含み得る。
0024 前記第1のアプリケーションは、マニフェストによって制御される異なる対応する解像度を有する複数のデータレートをサポート可能であり得る。前記第1のデータの前記配信速度の前記制御は、前記データレートのうち第1のデータレートを超える前記データレートを隠す又は取り除くために前記マニフェストを編集することを含み得る。
0025 前記第1のアプリケーションは、異なる対応する解像度を有する複数のデータレートをサポート可能であり得る。前記第1のデータの前記配信速度の前記制御は、前記データレートのうち第1のデータレートを超える前記データレートへのアクセスを失敗又はブロックすることを含み得る。
0026 前記方法は、前記トラフィックマネージャアプリケーションによって、前記プロセッサ上で動作し、かつ前記ネットワーク経由で前記サーバに/から第2のデータを配信する第2のアプリケーションを特定することと、前記トラフィックマネージャアプリケーションによって、前記第2のアプリケーションへの/からの前記第2のデータの電子トラフィックを傍受することと、前記トラフィックマネージャアプリケーションによって、前記第2のアプリケーションへの/からの、又は前記サーバへの/からの前記第2のデータの配信速度を制御することとをさらに含み得る。
0027 前記第1の及び第2のデータの前記配信速度の前記制御は、前記第1のデータの前記配信速度が、前記第2のデータの前記配信速度を超えるように、前記第1の及び第2のデータの前記配信速度を同時に制限することを含み得る。
0028 前記電子トラフィックの前記傍受は、前記プロセッサ上で動作している内部プロキシの使用を含み得る。
0029 前記電子トラフィックの前記傍受は、前記プロセッサ上の仮想プライベートネットワーク(VPN)インターフェースの使用を含み得る。
0030 前記電子トラフィックの前記傍受は、前記プロセッサ上で変更された前記第1のアプリケーションを実行することを含み得るものであり、前記変更された第1のアプリケーションは、前記電子トラフィックの前記傍受を要求するように構成される。
0031 本発明の他の実施形態では、通信トラフィック管理システムが提供される。当該システムは、コンピュータプロセッサと、ネットワーク経由で前記プロセッサとの間でデータを送受信するためのコンピュータサーバへのネットワーク接続とを有するポータブル通信デバイスと、前記プロセッサに接続された非揮発性記憶装置とを備える。当該非揮発性記憶装置は、前記プロセッサによって実行された場合、前記プロセッサに、前記プロセッサ上で動作し、かつ前記ネットワーク経由で前記サーバに/から第1のデータを配信する第1のアプリケーションを特定することと、前記第1のアプリケーションへの/からの前記第1のデータの電子トラフィックを傍受することと、前記第1のアプリケーションへの/からの、又は前記サーバへの/からの前記第1のデータの配信速度を制御することとを行わせる命令を記憶する。
0032 前記命令は、前記プロセッサによって実行された場合、前記第1のアプリケーションによって認識される前記ネットワークの現在速度を、前記ネットワークの前記現在速度より遅い第1のデータレートに絞ることによって、さらに前記プロセッサに、前記第1のデータの前記配信速度を制御させ得る。
0033 前記第1のデータの前記電子トラフィックは、データがハイパーテキストトランスファープロトコル(HTTPS)のセキュアプロトコルを使用して送信されることを含み得る。
0034 前記命令は、前記プロセッサによって実行された場合、前記サーバへの/からの前記第1のデータの前記配信速度を、前記ネットワークの現在速度より遅い第1のデータレートに絞ることによって、さらに前記プロセッサに、前記第1のデータの前記配信速度を制御させ得る。
0035 前記第1のデータの前記電子トラフィックは、アダプティブビットレートストリームを備え得る。
0036 前記第1のデータの前記電子トラフィックは、プログレッシブストリームを備え得る。
0037 前記第1のアプリケーションは、マニフェストによって制御される異なる対応する解像度を有する複数のデータレートをサポート可能であり得る。前記命令は、前記プロセッサによって実行された場合、前記データレートのうち第1のデータレートを超える前記データレートを隠す又は取り除くために前記マニフェストを編集することによって、さらに前記プロセッサに、前記第1のデータの前記配信速度を制御させ得る。
0038 前記第1のアプリケーションは、異なる対応する解像度を有する複数のデータレートをサポート可能であり得る。前記命令は、前記プロセッサによって実行された場合、前記データレートのうち第1のデータレートを超える前記データレートへのアクセスを失敗又はブロックすることによって、さらに前記プロセッサに、前記第1のデータの前記配信速度を制御させ得る。
0039 前記命令は、前記プロセッサによって実行された場合、さらに前記プロセッサに、前記プロセッサ上で動作し、かつ前記ネットワーク経由で前記サーバに/から第2のデータを配信する第2のアプリケーションを特定することと、前記第2のアプリケーションへの/からの前記第2のデータの電子トラフィックを傍受することと、前記第2のアプリケーションへの/からの、又は前記サーバへの/からの前記第2のデータの配信速度を制御することとを行わせ得る。
0040 前記命令は、前記プロセッサによって実行された場合、前記第1のデータの前記配信速度が、前記第2のデータの前記配信速度を超えるように、前記第1の及び第2のデータの前記配信速度を同時に制限することによって、さらに前記プロセッサに、前記第1の及び第2のデータの前記配信速度を制御させ得る。
0041 前記命令は、前記プロセッサによって実行された場合、前記プロセッサ上で動作している内部プロキシを使用することによって、さらに前記プロセッサに、前記電子トラフィックを傍受させ得る。
0042 前記命令は、前記プロセッサによって実行された場合、前記プロセッサ上で仮想プライベートネットワーク(VPN)インターフェースを使用することによって、さらに前記プロセッサに、前記電子トラフィックを傍受させ得る。
0043 前記命令は、前記プロセッサによって実行された場合、前記プロセッサ上で変更された前記第1のアプリケーションを実行することによって、さらに前記プロセッサに、前記電子トラフィックを傍受させ得るものであり、前記変更された第1のアプリケーションは、前記電子トラフィックの前記傍受を要求するように構成される。
0044 添付の図は明細書と共に、本発明の実施形態例を示す。これらの図は以下の説明と共に、本発明の態様及び原則をよりよく説明するのに役立つ。
0045 図1は、本発明の一実施形態に従ってオンデバイストラフィック管理の実施と共に使用するのに適したモバイルデバイス例(スマートフォンなど)のアーキテクチャの略図である。 0046 図2は、本発明の実施形態に従ってアプリとサーバの間のネットワークトラフィックの監視及び制御を有効にするためのプロキシ内のソフトウェアコンポーネントのブロック図である。 0046 図3は、本発明の実施形態に従ってアプリとサーバの間のネットワークトラフィックの監視及び制御を有効にするためのプロキシ内のソフトウェアコンポーネントのブロック図である。 0046 図4は、本発明の実施形態に従ってアプリとサーバの間のネットワークトラフィックの監視及び制御を有効にするためのプロキシ内のソフトウェアコンポーネントのブロック図である。 0046 図5は、本発明の実施形態に従ってアプリとサーバの間のネットワークトラフィックの監視及び制御を有効にするためのプロキシ内のソフトウェアコンポーネントのブロック図である。 0047 図6は、本発明の一実施形態に従ってプロキシを通してアプリとサーバの間のリクエストの処理を例示するプロセスタイミング図である。 0048 図7は、本発明の他の実施形態に従ってアプリとサーバの間のネットワークトラフィックの監視及び制御を有効にするプロキシ内のソフトウェアコンポーネントのブロック図である。 0049 図8は、本発明の他の実施形態に従ってプロキシを通してアプリとサーバの間のリクエストの処理を例示するプロセスタイミング図である。
0050 本発明の実施形態例は、添付の図を参照して説明される。図では、同じ又は類似の参照番号は、全体を通じて同じ又は類似の要素を示す。ここでは、本発明の実施形態を説明する際の「〜得る、〜してもよい」という用語の使用は、「本発明の1つ以上の実施形態」を示す。さらに、本発明の実施形態を説明する際の「又は」などの代替の言葉の使用は、列挙されている各対応する項目の「本発明の1つ以上の実施形態」を示す。
0051 1つ以上の実施形態では、モバイルデバイス内のネットワークトラフィックを管理するためのシステム及び方法が提供される。実施形態例は、図1〜図8を参照して説明される。
0052 図1は、本発明の一実施形態に従ってオンデバイストラフィック管理の実施と共に使用するのに適したモバイルデバイス例の略図(スマートフォンなど)のアーキテクチャ100の略図である。例えば、モバイルデバイスは、Androidフォンであってよい。例示の目的で、モバイルデバイスは、Androidスマートフォンであると仮定される。さらに、このようなモバイルデバイスは、多くのユーザをサポートすることが可能とし得る一方、説明を容易にするために、モバイルデバイスが特定のユーザの専用であることが想定されるため、「ユーザ」及び「モバイルデバイス」(又は個人的もしくは携帯可能な態様で使用される任意のコンピューティングデバイス)という用語は、全体を通じて同義語として使用され得る。
0053 本発明の1つ以上の実施形態に従って、モバイルデバイス上の汎用アーキテクチャ(例えばアーキテクチャ100)は、アプリケーション(例えばモバイルアプリ又は単に「アプリ」)から発し、例えば、モバイルデバイスが、例えばWiFi又はセルラーネットワークを介してアクセスするアプリケーションサーバ(又はアプリサーバ)250までのデータトラフィックを監視又は制御し得る集中型のプロキシ130を提供する。このアプローチは、トラフィック管理が複数のネットワーク(例えばWiFi及びセルラー)に亘ってかつ複数のアプリに亘って実行されることを可能にし、かつトラフィック管理が中央で管理されることを可能にするが、本発明はこれに限定されない。他の実施形態では、トラフィック管理は、分散型の方法(例えば各アプリ内で動作しているプロキシで)で実行され得るものであり、全体的なデバイストラフィックが効果的に中央で管理されるような調整された態様で動作している。
0054 スマートフォン100のアプリ及び他のプログラム可能な構成要素は、例えばスマートフォン100の非一過性記憶装置に格納されたコンピュータ命令の集合として実装され、スマートフォン100の1つ以上のプロセッサ上で実行されるように構成され得る。プロキシ130はまた、特定のウェブサイトのトラフィックを(例えばウェブブラウザから)管理し得る。従って、説明を容易にするために、「アプリケーション」、「アプリ」、「ウェブサイト」、又は「サイト」などの用語は、プロキシ130によって管理されているコンテンツのカテゴリーを示す場合、本出願全体に亘ってほぼ置き換え可能に使用され得る。
0055 プロキシ130は、いくつかの異なる機構(例えば、ソケットレイヤー120を使用するプロキシサーバ(例えばオペレーティングシステム(OS)ネットワーク設定を介して)、ネットワークトンネル(TUN)デバイス230を使用する仮想プライベートネットワーク(VPN)サービス(例えばOSネットワーク設定を介して)、又は傍受レイヤー150を使用するアプリ内に埋め込まれる)から確保され得る。プロキシ130は、Java(登録商標)仮想マシン(JVM)160上で実行され得る。プロキシは、フラッシュメモリ170又は他の非揮発性記憶装置などの物理記憶装置上のキャッシュされたコンテンツを管理するためのキャッシュエンジン110を含み得る。一般性を失うことなしに、このようなデバイスは、時に「ディスク」と呼ばれ得るが、これはソリッドステートドライブなどあらゆるタイプの非一過性記憶装置であり得る。さらに、キャッシュされた又は任意の他の格納されるコンテンツは、全体又は一部が、揮発性ストレージ(ランダムアクセスメモリなど)上に格納されてよく、この揮発性ストレージは、非揮発性ストレージと組み合わせて使用してもよく、例えば、階層式の態様では、最も最近アクセスされたコンテンツが、より低速の非揮発性ストレージに移行する前に、より高速の揮発性ストレージに格納される。
0056 プロキシ130は、多様な形式の要素(例えばアプリケーション、カーネルドライバ、又はモバイルデバイス上のOS内)で動作し、ネットワーク接続(例えばOSネットワーク設定経由で)を受信するように構成され得る。1つ以上の実施形態では、プロキシサーバは、JVMで動作し得る。プロキシ130は、クライアントアプリケーションの代わりに中間物として機能し得る。例えば、プロキシ130は、別のJVM165で動作しているアプリ180のリクエストにサービスを提供し得る。
0057 アプリ180は、例えば、Http URL接続190などのAndroidサービスを使用してインターネットにアクセスし得る。ここで、HTTPは、ハイパーテキストトランスファープロトコルの略であり、URLは、ユニフォームリソースローケーター(例えばウェブアドレス)である。Http URL接続190は、次に、インターネットにアクセスするためにネットワークサービス200を呼び出し得る。ネットワークサービス200は、例えば、アクセスポイント名(APN)210(例えば3Gなどのモバイルネットワーク)又はWiFi接続220を使用してインターネットにアクセスし得る。ネットワークサービス200は、システムに、又はAPNもしくはWiFi接続にグローバルに適用されるプロキシ構成を使用して、アプリ180からプロキシサーバ130にリクエストをルーティングするように構成され得る。ネットワークサービス200はまた、他の多様な方法(例えばネットワークトンネル(TUN)デバイス230又はIPルーティングテーブル(「IPテーブル」ともいう)を介して)を使用して、アプリ180からプロキシ130にリクエストをルーティングし得る。
0058 ネットワークサービス200は、インターネットにアクセスするために、プロキシを直接的又は間接的に(例えば、デバイス上で動作しているアプリによって直接的に、又はAPN210又はWiFi接続220上の設定を通して間接的に検出かつ使用されるグローバルシステムプロキシとして)指定するように構成され得るものであり、これによって、リクエストが、標準的な通信レイヤー、例えば、ソケット120(例えばインターネットに接続するためのネットワークソケット)を通して送信されて、プロキシ130によって受信され得る。プロキシ130は、今度は、ネットワークサービス200を通してアプリサーバ250にリクエストしてよく(プロキシ130自体にループバックすることを避けるためにAPN又はWiFiプロキシ構成をバイパスする間に)、当該ネットワークサービス200は、リクエストにサービスを提供し、あらゆる応答通信をプロキシ130に返す。プロキシは次に、アプリとサーバの間の通信を監視又は制御し得る。プロキシ130はまた、反対に、上述の同じステージを通してネットワークソケット120を介してアプリ180に応答を返す前に、キャッシュエンジン110を介して応答の一部、ゼロ、又は全部をキャッシュし得る。
0059 APN又はWiFi接続上でプロキシ構成を使用する代わりに、ネットワークサービス200はまた、多様な他の手段を通してリクエストをプロキシサーバ130にルーティングするように構成され得る。例えば、別のアプローチは、VPN接続を確立するためにネットワークトンネル(TUN)230を使用することであり、これは、ネットワーク送信を処理するためにネットワーク活動をVPNサービス140にルーティングし得る。VPNサービス140は次に、リクエストにサービスを提供し、かつネットワークトンネル230を介して応答を返すために、ソケット120(適宜)を使用してアプリとアプリサーバ250の間のトラフィックを管理するためにリクエストをプロキシ130にルーティングし得る。
0060 プロキシ130を確保するための別の機構は、トラフィックをプロキシプロセスにリダイレクトするためにアプリ内の傍受レイヤー(例えば傍受レイヤー150及び155)を使用することである。例えば、上記の例では、インターネットにアクセスするために、Http URL接続190に、ネットワークサービス200を呼び出させる前に又はその代わりに、Http URL接続は、傍受レイヤー150にアプリ180からのリクエストを傍受させ、かつそのトラフィックをプロキシ130に直接転送させてよい。インターセプト150からプロキシ130への転送は、当業者には明らかなように、ネットワークサービス200を通して又標準的なプロセス間通信機構(例えば、メッセージキュー、名前付きパイプ、又は共有メモリ)を使用して実行され得る。
0061 別個のプロセス(例えばJVM160内)で動作するプロキシ130に加えて、他の実施形態では、プロキシ130は、リクエストのプロセス(例えばJVM165又はブラウザ185(ウェブブラウザなど))内に埋め込まれ得る。プロキシ130は次に、プロセス間通信の必要なしにアプリのネットワークトラフィックを管理し得る。
0062 別の例では、ウェブブラウザ185は、インターネットへのアクセスを探す。上記のアプリ180と同様に、ウェブブラウザ185は、いくつかの異なるアプローチによってプロキシ130を利用し得る。例えば、ウェブブラウザ185は、ネットワークソケット125を使用してインターネットにアクセスするように構成され得るもので、ネットワークソケット125は次に、例えば、上記のようにソケット120又はVPNサービス140を使用して、アプリサーバ250及び/又はプロキシ130にアクセスするためにネットワークサービス200を使用し得る。同様に、傍受レイヤー155は、ウェブブラウザ185に追加されてもよく、これは、ウェブブラウザ185からのリクエストを傍受し、そのトラフィックをプロキシ130に転送し得る。
0063 さらに詳細には、上記の技術は、セキュアソケットレイヤー(例えば暗号化されているSSL)通信と非SSL(例えば暗号化されていない)通信の間の可能な分化により、既存のインターフェースに統合され得る。アプリケーションとの統合は、例えばネットワークスタックの中央の位置で、非SSL通信のために有効にされ得る。例えば、プロキシ130は、ネットワークプロトコルのすべて又はサブセットのためのプロキシとして構成され得る(例えばHTTP、HTTPSのみについて、又は両方)。同様に、プロキシ130は、ネットワークインターフェースのすべて又はサブセット用のプロキシとして構成され得る(例えばセルラー、WiFi、又は両方について)。例えば、APN210アクセスでは、セルラーアクセスポイントは、プロキシ130に設定され得る。IPテーブルアクセスでは、対応するインターネットプロトコル(IP)ルーティングテーブルのエントリが設定され得る。VPNサービスでは、VPNクライアント(VPNサービス140など)は、トラフィックをプロキシ130にルーティングし得る。WiFiでは、プロキシ130は、各WiFiアクセスポイント(AP)のために設定され得る。グローバルシステムプロキシでは、システムは、すべてのアプリケーショントラフィックのトラフィックをプロキシ130に向け得る。
0064 さらに、SSL又はTLSなどの暗号化された通信を使用するアプリケーションとの統合は、暗号化されていないネットワークデータへのアクセスを必要とし得る。ここで使用され得るいくつかのアプローチが存在する。中間者のアプローチでは、暗号化されたデータへのアクセスは、信頼された認証局(CA)を介してサーバになりすますことによって取得され得る。ソフトウェア開発キット(SDK)アプローチ(例えば図1の傍受レイヤー155での)では、キャッシュエンジン110へのフックとの実装時間リンキングは、暗号化レイヤーの上で使用され得る。再リンクのアプローチでは、既存のアプリは、Http URL接続190などで、カスタムリプレースメントアプリケーションプログラミングインターフェース(API)を使用するために逆コンパイルかつ再リンクされ得る。代替のアプローチ(例えばウェブブラウザ185などのブラウザを使用して)では、アプリの代わりのバージョンを提供してもよく、ここでは傍受が既に組み込まれている。これは、幅広く使用されているオープンソースのアプリに特に適し得る。
0065 図1は主にモバイルデバイスのアーキテクチャ100を対象としているが、オンデバイストラフィック管理はまた、他の構成要素(例えばモバイルデバイス100の1つ以上のプロセッサ上で動作するように構成されたソフトウェアコンポーネント)を含み得る。図2〜図5は、本発明の実施形態に従ってアプリ310とサーバ250の間のネットワークトラフィックの監視及び制御を可能にするためのプロキシ130内のソフトウェアコンポーネントのブロック図である。
0066 図2では、モバイルデバイス100内で動作しているアプリ310は、アプリサーバ250と通信し、プロキシ130は、上述の方法のいずれかを使用して(例えばシステムプロキシ設定又はVPNを通して)アプリのネットワークトラフィックを傍受するだろう。プロキシ130内では、本発明の1つ以上の実施形態では、ネットワークトラフィックの監視及び制御を実行する論理的なソフトウェアコンポーネントが存在し、これらのソフトウェアコンポーネントは、アプリ310でデータパス325を処理し得るクライアントハンドラ320と、アプリサーバ250でデータパス335を処理し得るリクエストハンドラ330とを含み得る。
0067 アプリ310とクライアントハンドラ320の間のデータパス325は、アプリのネットワークトラフィック(例えば、当業者には明らかであるネットワークソケット又は任意の他の標準的なプロセス間通信機構)を傍受するために使用される方法次第で異なる機構において生じ得る。リクエストハンドラ330とアプリサーバ250の間のデータパス335はまた、アプリ310が通常アプリサーバ250と通信する方法次第で(例えばTCP/IPを使用しているネットワークソケットで)異なる機構において生じる。アプリ310との内部データパスと、アプリサーバ250との外部データパスを切り離すことによって、プロキシ130がアプリ310とアプリサーバ250の間のデータレートを別々に制御することを可能にする(例えば、実際にアプリサーバ250に/から(データパス335経由で)配信され得るよりも遅い速度で、アプリ310に/から(データパス325経由で)データを配信するために)。
0068 本発明の他の実施形態に従って、ビットレートマネージャ340は、アプリ310への/からの、又はアプリサーバ250への/からの適切なビットレート(データレートとして知られる)を管理するために使用され得る。これにより、個別のソフトウェア部品が、ビットレートについての1つ以上のポリシー(例えば、異なるユーザのための異なるビットレート、異なるアプリのための異なるビットレート、事前のデータ消費に基づいた異なるビットレート、異なるネットワークタイプのための異なるビットレート、及び当業者には明らかであろうその他のバリエーション)を実施することを可能にする。異なるユーザのためにビットレートを実施するポリシーは、ユーザのリスト又はユーザのカテゴリーで構成してよく、ユーザのカテゴリーは、任意のグループのユーザであってよい(例えばデバイスのタイプ(例えばスマートフォン対タブレット)、デバイスモデル、又はデータ計画によるグループなど)。異なるアプリのために異なるビットレートを実施するポリシーは、アプリ又はアプリのカテゴリー別のビットレートのリストを含んでよく、アプリのカテゴリーは、アプリの任意のグルーピング(例えば機能別(例えば動画、ソーシャル、メールなど)、ベンダー別、又は他のいくつかの他のカテゴリー別(例えば仕事対パーソナル))であってよい。
0001 アプリに基づくポリシーはまた、アプリがいかにかついつ動作するかに基づいてよく、例えば、当該アプリがユーザにとって可視である(例えば、バックグラウンドではなくフォアグラウンドで動作している)場合、より高いビットレートを可能にし、又は高優先度のアプリが動作している場合、低優先度のアプリ用はより低いビットレートを強制するなどとしてよい。異なるネットワークタイプ用に異なるビットレートを実施するためのポリシーは、ネットワークタイプ毎のビットレートのリスト(例えばWiFi、LTE、HSPA、CDMAなど)又は特定のネットワーク(特定の携帯電話の基地局又はWiFiホットスポットなど)のリストを含み得る。ネットワークに基づくポリシーはまた、ネットワークに関連する所有権又はコストに基づいてよく、例えば、ユーザのデータ計画のオペレータが所有するホームネットワークにアクセスする場合には、より高いビットレートであるが、当該ユーザが別のオペレータが所有するネットワーク上でローミングしている場合には、より低いビットレートとしてよい。
0069 ビットレートマネージャによって管理されている速度制限は、ちょうどビットレベルであることに制限されず、他の増加量又は単位でのトラフィックの速度に対する制限(例えば、リクエスト、パケット(例えばTCPセグメント又はIPパケット)、ネットワーク接続、又は当業者に明らかであるその他の粒度によってなど)も含み得る。例えば、特定のネットワークタイプが引き起こす可能性がある混雑を制御/最小化するために、特定のネットワークタイプに対する「チャティな」アプリによるリクエストの頻度を制限することが望ましいかもしれない。なぜならば、いくつかのタイプのネットワーク(例えば2G及び3Gのセルラーネットワーク)は、同時にサポートできる限られた数の接続を有し得るからである。
0070 上記のポリシーのいずれも、例えば、ユーザによって提供され、アプリによって事前構成され、又は管理サーバなどの外部システムから受信され得る。また、上記のポリシーのいずれも、複数又は多様な速度制限(例えば以前のデータ使用又はトラフィック活動に基づいて変化する速度制限)を有するように拡張され得る。例えば、アプリに基づくポリシーは、アプリのデータ消費が増えるにつれて減少する複数のビットレートレベルを可能にし得るもので、例えば、より低いデータ消費のアプリは、より高い(又は無制限でさえある)ビットレートで動作することを可能にし、一方で、より高い帯域幅アプリが1つ以上の閾値を上回った場合には、当該より高い帯域幅アプリを制限するなどしてよい。
0071 例えば、アプリ310がアプリサーバ250からデータを受信するリクエストを実行すると、リクエストは、最初にクライアントハンドラ320によって受信されることになり、このクライアントハンドラ320は、次にリクエストを処理するために必要とされる適切なタイプのリクエストハンドラ330に当該リクエストを渡す。プロキシ130は、1つ以上のタイプのリクエストハンドラ(例えば、リクエストをアプリサーバ250に渡し得る、図3のパススルーハンドラ331)をサポートし得る。別のタイプのリクエストハンドラは、キャッシュされたデータの鮮度を検証するのに必要なキャッシュエンジン110及びアプリサーバ250と相互作用することによって、キャッシュからのコンテンツでリクエストに応答し得る、図4のサーブフロムキャッシュハンドラ332であってよい。さらに他のタイプのリクエストハンドラは、例えば、他の態様では外部ネットワークもしくはサーバによってサポートされ得る速度よりも低い速度でリクエストデータを送信し、又は応答データを受信することによって、アプリサーバ250でデータパスの速度を制御し得る、図5のスロットリングハンドラ333であってよい。本発明の一実施形態では、各タイプのリクエストハンドラは、リクエストハンドラスーパークラスのサブクラスとして実装され得る。リクエストハンドラは、リクエストに応答し、かつクライアントハンドラ320に応答を提供することを担当し、クライアントハンドラ320は次に応答をアプリ310に送信する。
0072 クライアントハンドラ320は、リクエストハンドラから応答データを受信すると、応答データをアプリ310に送信し得るものであり、クライアントハンドラ320は、ビットレートマネージャ340によってクライアントハンドラ320に提供される速度制限に基づいて、当該データがいかに迅速に送信されるかを制御し得る。クライアントハンドラ320は、当事者には明らかな多様な方法で(例えば応答全体が送信されるまで時間間隔毎に特定の量を送信することによって)速度制限を実施し得る。本発明の一実施形態では、クライアントハンドラ320は、データをアプリ310に毎秒送信するように構成され得るので、データがアプリサーバ250から受信される場合、クライアントハンドラ320は、ビットレートマネージャ340によって指定される秒単位の速度制限を上限とした量で、毎秒データを送信する。例えば、ビットレートマネージャ340が、アプリ310のデータレートを1000キロビット/秒に制限すべきであることをクライアントハンドラ320に示す場合、クライアントハンドラ320は、応答全体が送信されるまで、毎秒最大1000キロビットをアプリ310に送信する。これにより、リクエストハンドラ330が、クライアントハンドラ320がそのデータをアプリ310に送信している速度と異なる(例えば当該速度よりも速い)速度でアプリサーバ250からデータを受信することを可能にする。
0073 リクエストハンドラ330は、クライアントハンドラ320がデータをデバイスメモリ(揮発性でも非揮発性でもよい)に格納することによって、当該データをアプリ310に送信する速度よりも速い速度で、アプリサーバ250からデータを受信し得る。非揮発性メモリはより豊富であってよく、大量のデータがバッファされる必要がある場合に、例えば、クライアントハンドラ320がアプリ310に送信している速度よりもはるかに速い速度で、データがアプリサーバ250から受信されている場合に、非揮発性メモリを使用してよい。本発明の一実施形態に従って、スロットリングハンドラ333は、クライアントハンドラ320がまだデータをアプリ310に送信する準備ができていない場合、アプリサーバ250から受信したデータの一部を非揮発性メモリに格納するために、バッファリングを管理し得る。スロットリングハンドラ333はまた、例えばデバイス上で利用できるメモリ又はストレージを超えることを避けるために、アプリサーバ250からどのくらいの量のデータをいかに速く受信するかを制限し得る。
0074 例えば、データパス335は、TCPベースのネットワークソケットであってよく、スロットリングハンドラ333は、ネットワークソケットからデータを受信するのを中止し得るもので、これにより、そのネットワークソケット上のTCP受信ウィンドウがフルである場合、アプリサーバ250がデータを送信するのを中止させる。リクエストハンドラ(例えばスロットリングハンドラ)は、アプリサーバ250からデータを受信する速度を決定するために、アプリサーバ250から受信したデータを分析し得る。
0075 いくつかの場合では、データが実際に動画アプリによって消費される速度で動画データを受信することが望ましいかもしれない(例えば、ユーザが動画を視聴するのを止めた(但し受信は続ける)場合に、消費されない動画データを受信するのを避けるために)。このアプローチは、異なるタイプのアプリに適用され得る。なぜならば、アプリがデータを消費する速度と、ネットワーク/サーバがそのデータを配信できる速度との間には、一般的にほとんど又は全く関係がないからである。例えば、MPEG−4動画は、モバイルデバイスが現在ネットワーク/サーバからその動画データを受信し得る速度よりも低いビットレートで暗号化され得る(例えば、当該デバイスが、混雑していないセルサイトで良好なセルラー信号を有する場合など)。従って、MPEG−4動画が2mbpsのビットレートで符号化され、デバイスがそのデータを4mbpsで受信している場合、もしもユーザが動画全体を視聴しないのであれば、かなりの量の受信動画データ(例えば、50%)が浪費される可能性がある。本発明の1つ以上の実施形態は、動画符号化ビットレートをネットワーク配信ビットレートに合わせることによってこれに対処し得る。
0076 本発明の一実施形態に従って、プロキシ130は、アプリサーバ250から受信したデータを構文解析することによって動画及びネットワークビットレートの調整を行い得る。アプリ310がアプリサーバ250から動画を要求した場合に、スロットリングハンドラ333は、動画符号化ビットレートを決定するために、受信したデータを構文解析してよく、スロットリングハンドラ333は、アプリサーバ250からデータを受信する速度を決定するために、この動画符号化ビットレートを使用し得る。例えば、前の例を用いると、スロットリングハンドラ333が2mbpsで符号化された動画を検出した場合、スロットリングハンドラ333が同等の速度で(おそらくはネットワーク配信速度のあらゆる周知の/検出されたバリエーションに対応するために、わずかにより高く調整された速度で)アプリサーバ250からデータを受信することを確保し得る。
0077 データ配信の速度をアプリ310に制限することによって、本発明の実施形態は、速度に基づいてデータサイズを調整するコンテンツ(例えば、アダプティブビットレート(ABR)動画ストリームなど)のデータ消費を減らし得る。ABRストリーミング技術の例は、ダイナミックアダプティブストリーミング・オーバーHTTP(Dynamic Adaptive Streaming over HTTP)(DASH)、Flash用Adobeアダプティブストリーミング(Adobe Adaptive Streaming for Flash)、HTTPライブストリーミング(HLS)、及びマイクロソフト・スムーズストリーミング(Microsoft Smooth Streaming)を含む。例えば、YouTube(登録商標)動画は、幅広い種類の動画解像度のために暗号化され、各動画解像度は特定のデータ配信速度に対応し、よって、YouTubeアプリは、その認識されたデータ配信の速度によってサポートされ得る最も高い動画解像度を要求する。下の表は、各動画解像度の質に対応するYouTubeアプリの推定データ使用率を示し、ここで、認識されたネットワーク速度がその動画に対応するデータ使用率を上回る場合にのみ、YouTubeアプリは解像度を選択する。プロキシ130は、望ましい動画解像度の又は少し上のビットレート制限を使用することによって、どの解像度がYouTubeアプリによって選択されるのかを効果的に制御する。
0078 ビットレート制限をABRストリームに適用した結果、データ消費全体が、動画の遅延やバッファリングを引き起こすことなしに、最も高い可能な解像度と比較して90%以上まで、大きく削減され得る。唯一の影響は、より低い解像度の動画に対してであろう。また、ユーザは、そのデータ使用コストを節約するために、より低い解像度の動画を望んで見るかもしれない。表に示されるように、データ使用の違いは各解像度レベルの間で大きく、一般に解像度の対応する増加よりも速く増加する。例えば、360pから720pへの解像度の2倍の増加は、データ消費の3.4倍の増加につながる。解像度レベルを1つだけ下げただけで、データ使用は大きく減り得るものであり、例えば、1080pから720pへの解像度の減少は33%であるが、データ使用の減少は53%である。小型のモバイルデバイスでは、これは、ユーザにとってはほとんど識別できない目に見える質の差となり得るが、50%以上のデータの節約を提供する。
0079 図6は、本発明の一実施形態に従ってプロキシを通したアプリとサーバの間のリクエストの処理を示しているプロセスタイミング図である。図6は、例えばセルラー接続のデータ消費を削減するために、ビットレートが制限されている本発明の一実施形態を示す。アプリ310がアプリサーバ250からデータ(動画など)のリクエストを実行すると、リクエストは、ステップ410でクライアントハンドラ320によって傍受される。クライアントハンドラ320は、当該リクエストをいかに処理するかを決定してよく、又はクライアントハンドラ320は、決定を行うためにリクエストマネージャ350にリクエストを提供し、リクエストマネージャ350は、リクエストを処理するためにスロットリングハンドラ333を割り当ててもよい。スロットリングハンドラ333は、適用する適切なビットレート制限(例えば、アプリ、ネットワークタイプ、又はリクエストされているデータのタイプと関連するポリシーに基づいてなど)を決定するために、ステップ415でビットレートマネージャ340と協議し得る。クライアントハンドラ320は、ステップ420でスロットリングハンドラ333にリクエストを送信し、スロットリングハンドラ333は、リクエストを処理するためにアプリサーバ250との相互作用を処理する。
0080 アプリサーバ250がステップ425でリクエストに対する応答の送信を開始すると、スロットリングハンドラ333は、例えばサーバからデータを受信すべきである速度を決定するために、応答を構文解析し得る。応答データがアプリサーバ250から受信されると、スロットリングハンドラ333は、ステップ430で、揮発性ストレージ、非揮発性メモリ、又はその組み合わせのいずれかに応答データを格納し得る。データがアプリサーバ250から受信されると、クライアントハンドラ320は、ステップ435で、格納された応答データをアプリ310に送信し得るものであり、これは、スロットリングハンドラ333によってアプリサーバ250から受信される速度とは異なる速度で起こり得る。これは、ステップ440で最初のリクエストに対して追加の応答データが受信される場合に継続する。応答が完了すると、アプリ310は、ステップ445で後続のデータについての(例えば、HTTP URLを介して個々にアドレス可能であり得る別々の時間に基づくチャンクに分割されるABR動画ストリームについての)追加のリクエストを発行し続け得る。図6は、一部の当業者には明らかであるように、アプリ310によって要求されたデータが完了するまで継続すると仮定され得る。
0081 本発明の他の実施形態に従って、ビットレート制限は、他の手段で(例えばアプリサーバ250によってレポートされているストリームのリストを変更することによって)制御され得る。例えば、ABRストリーミングアプローチのいくつかは、サーバに、マニフェストと呼ばれるリストを介して、アプリに対して利用可能なストリームを通知させることに依存する。動画が最初にリクエストされると、アプリは、サーバからマニフェストを取得し、再生するストリームを選択し、この選択は、典型的にはアプリによって認識されるネットワーク速度に基づくこととなる。従って、ビットレートを制御する別のアプローチは、例えば利用可能なストリームをアプリに制限するために、サーバから受信されるマニフェストを変更することである。例えば、アプリ310がアプリサーバ250からマニフェストをリクエストする場合、プロキシ130は、マニフェストをアプリ310に送信する前に、マニフェストを変更し、マニフェストからより高解像度の動画ストリームを取り除き、これによってアプリ310を、マニフェストに残っているストリームを再生可能とすることのみに制限し得る。これにより、プロキシ130が、ビットレートマネージャ340が指定するポリシー内で許可されるストリームにアプリ310を制限することを効果的に可能にする。このアプローチは、サーバがクライアントへの複数のストリームを提供又は宣伝するあらゆるストリーミングアプローチに適用され得るものであり、この場合、利用可能なストリームのセットは、本発明の実施形態によって後で変更され得る。
0082 本発明の他の実施形態に従って、ビットレート制限が制御され得る別の手段は、サーバによって提供又は宣伝されるストリームのセット内の1つ以上のストリームへのアクセスを拒否又は他の方法でブロックすることである。例えば、プロキシ130は、アプリ310によってリクエストされる1つ以上の利用可能なストリームへのアクセスを許可してよく、その一方で他のストリームへのアクセスをブロックし、これによって、プロキシ130が、ビットレートマネージャ340によって指定されるポリシー内で許可されるストリームにアプリ310を制限することを効果的に可能にする。ストリームへのアクセスをブロックし得る多様な方法(接続を拒否すること、リクエストに対するエラーを返すこと、又はリクエストがタイムアウトすることを許可することを含む)が存在する。このアプローチは、それをサポートする特定のアプリに選択的に適用され得る。なぜならば、特定のブロックの機構を適切にサポートできないアプリもあり、また、特定の方法でブロックされる必要があるアプリもあり得るからである。
0083 本発明の他の実施形態に従って、プロキシ130は、データがアプリサーバ250からデバイスによって受信されるサイズ又は頻度が、アプリ310が他の態様でデータを要求又は受信し得る方法とは異なるように、データをバースト受信することをサポートし得る。例えば、ユーザは動画全体を見ないかもしれないので、動画が見られている間に、その動画の次の部分だけ(例えば5分のプログレッシブ動画全体ではなく次の30秒間)をダウンロードすることが望ましい。このような場合は、例えば、高速ネットワーク及び高速サーバは、ユーザが10秒だけを見たとしても、5分の動画全体をダウンロードすることを可能にしてしまうかもしれず、そのすべてが、なおもユーザのデータ計画に不利に作用する。
0084 その一方で、一度にあまりに少量の動画(例えば、ABR動画では一般的であるが、一度に次の7秒だけなど)をダウンロードすることは望ましくなく、それは、セルラーラジオ及び接続が常にアイドル状態になることを防ぐからである。この場合、その非活動タイマーは、毎回ダウンロードされる動画の量(例えば5秒)よりも長い(例えば15秒)ので、セルラーラジオは、アクティブで高パワーモードに留まり得る。セルラーネットワークでは、これは、携帯電話の基地局の信号送信、混雑、及びデバイスバッテリー消費の増加につながり得る。消費されていないデータを浪費することを避けために、あまりに多くダウンロードせずに、セルラーラジオがアイドル状態になることを可能にするのに十分なくらいのダウンロードの間のバランスを取るように、ネットワークのタイプと実際の速度によっては、異なるバーストサイズでデータを受信することが望ましいこともある。
0085 図7は、本発明の他の実施形態に従ってアプリ310とサーバ250の間のネットワークトラフィックの監視及び制御を可能にするためのプロキシ130内のソフトウェアコンポーネントのブロック図である。図7は、バースティングハンドラ334が、アプリサーバ250からデータを要求又はバースト受信するために提供されるタイプのリクエストハンドラであり、よって、他の場合ではプロキシ130又はバースティングハンドラ334なしでアプリ310によって行われるのと異なる量又は異なる頻度で、上記データが要求又は受信され得る、本発明の一実施形態を示す。バースティングハンドラ334は、データパス325でアプリ310に/からデータを送信/受信しているクライアントハンドラ320から独立して、データパス335でアプリサーバ250からデータを要求する。バースティングハンドラ334は、多様な要因に基づいて(例えば効率及び性能を改良又は最大化するために)、アプリサーバ250からデータを要求/受信するための適切な速度を決定するためにビットレートマネージャ340と調整を行い得る。
0086 例えば、セルラー接続のアイドル時間を増やす又は最大化する要因は、ネットワークタイプ(例えばLTE、EDGEなど)、効果的なネットワーク速度、ネットワーク非活動タイマー(例えば15秒)、及び動画符号化ビットレートを含み得る。さらなる例として、下記の式を使用した望ましいネットワークアイドル時間、ネットワーク配信ビットレート、及び動画符号化ビットレートに基づいて必要とされるバーストサイズを、以下の通り計算し得る。
<望ましいアイドル時間>/<ビットレート率>*<動画符号化ビットレート>=<バーストサイズ>
0087 ここで、ビットレート率は、動画符号化ビットレートとネットワーク配信ビットレートとの比率である(例えば、動画が2MB/秒で暗号化され、ネットワークからのデータ配信速度が4MB/秒である場合の0.5の値)。例えば、この同じビットレート率では、望ましいアイドル時間が45秒である場合(例えば、15秒の非活動時間ウィンドウの後に30秒の休止時間ウィンドウが続くことを可能にするために)、バーストサイズが以下のように計算される。
45秒/0.5*2MB/秒=180MB
0088 注記すべき点として、他の理由(例えば、デバイスのバッテリーの寿命を改良するため、動画ストリームの失速を避けるため、又は当業者には明らかである他のシナリオ)によりバーストサイズを決定するために、追加の要因が考慮され得る。
0089 図8は、本発明の他の実施形態に従ってプロキシ130を通してアプリ310とサーバ250の間のリクエストの処理を例示するプロセスタイミング図である。図8は、例えば、セルラー接続のためのアイドル時間を増やす又は最大化するために、バースティングが実行される本発明の一実施形態を示す。アプリ310がアプリサーバ250からのデータ(例えば動画)を要求すると、当該リクエストはクライアントハンドラ320によって傍受される。クライアントハンドラ320は、当該リクエストをいかに処理するかを決定するか、又はクライアントハンドラ320は、決定するためにステップ510でリクエストマネージャ350にリクエストを提供し、リクエストマネージャ350は、リクエストを処理するためのバースティングハンドラ334を割り当て得る。クライアントハンドラ320は、ステップ515でバースティングハンドラ334にリクエストを送信し、バースティングハンドラ334は、リクエストを処理するためにアプリサーバ250との相互作用を処理する。
0090 アプリサーバ250がステップ520でリクエストに対する応答の送信を開始すると、バースティングハンドラ334は、例えば、サーバからデータを受信すべき速度を決定するために、応答を構文解析し、かつデータがアプリ310に送信されるべき速度を設定するためにクライアントハンドラ320と調整を行い得る。応答データがアプリサーバ250から受信されると、バースティングハンドラ334は、ステップ525で、揮発性メモリ、非揮発性メモリ、又はその組み合わせのいずれかに応答データを格納し得る。バースティングハンドラ334は、バーストサイズを計算し、ポリシーに基づいて(例えば、最短セルラーアイドル時間を達成するなど)ステップ530で決定されたバーストサイズまで追加のデータを受信し始めてよい。データストリームが1つ以上の個々にアドレス可能なチャンクのデータを含む(例えば、各々がHTTP URLを介して個別にアドレス可能である)場合、バースティングハンドラ334は、最大ターゲットバーストサイズまでのデータを受信するために必要なリクエストを発行し得る。
0091 データのターゲットバーストサイズが受信されると、バースティングハンドラ334は、次にステップ535でデータの受信を中止し(関連するネットワーク接続(例えばTCP接続)を閉じることを含み得る)、これにより、ターゲットアイドル時間の開始を始める。データがアプリサーバ250から受信されると、クライアントハンドラ320は、ステップ540で、格納された応答データをアプリ310に送信し、これは、バースティングハンドラ334によってアプリサーバ250から受信された速度とは異なる速度で起こり得る。これは、第1のバーストで受信されたデータがアプリ310に送信されるまで、必要に応じてステップ545及びそれ以降まで続く。次のバーストが開始する準備ができると、バースティングハンドラ334は、ステップ550で、アプリサーバ250から後続のデータをリクエストすることを開始し、クライアントハンドラ320のためにステップ555で次のバーストの格納を開始してよく、クライアントハンドラ320は次に、バースティングハンドラ334によってアプリサーバ250から受信された際の速度とは異なり得る速度で、後続の応答データをアプリ310に送信してよい。図8は、一部の当業者には明らかであるように、アプリ310によって要求されたデータが完了するまで継続すると仮定され得る。
0092 本発明は特定の実施形態例との関連で説明してきたが、本発明は開示された実施形態だけに限定されるのではなく、逆に、当業者には明らかなように、以下の請求項及びその同等物によって定義される発明の精神及び範囲から逸脱せずに、多様な変更及び同等のアレンジメントを網羅することを意図していることを理解すべきである。

Claims (26)

  1. コンピュータプロセッサと、ネットワーク経由で前記プロセッサとの間でデータを送受信するためのサーバへのネットワーク接続とを有するポータブル通信デバイスにおける、通信トラフィック管理方法であって、
    前記プロセッサ上で動作しているトラフィックマネージャアプリケーションによって、前記プロセッサ上で動作し、かつ前記ネットワーク経由で前記サーバに/から第1のデータを配信する第1のアプリケーションを特定することと、
    前記トラフィックマネージャアプリケーションによって、前記第1のアプリケーションによって要求される動画データであって、前記ネットワークを経た第1の配信速度で前記サーバから受信した動画データを含む前記第1のデータの電子トラフィックを傍受することと、
    前記トラフィックマネージャアプリケーションによって、前記トラフィックマネージャアプリケーションと前記第1のアプリケーションとの間の内部ネットワークデータ経路を経た前記第1のアプリケーションへの前記動画データの第2の配信速度であって、特定の目標動画解像度に対応する第2の配信速度制限することと、
    を含む方法。
  2. 前記第1のデータの前記配信速度の前記制御は、前記第1のアプリケーションによって認識される前記ネットワークの現在速度を、前記ネットワークの前記現在速度より遅い第1のデータレートに絞ることを含む、請求項1に記載の方法。
  3. 前記第1のデータの前記電子トラフィックは、データがハイパーテキストトランスファープロトコル(HTTPS)のセキュアプロトコルを使用して送信されることを含む、請求項2に記載の方法。
  4. 前記第1のデータの前記配信速度の前記制御は、前記サーバへの/からの前記第1のデータの前記配信速度を、前記ネットワークの現在速度より遅い第1のデータレートに絞ることを含む、請求項1に記載の方法。
  5. 前記第1のデータの前記電子トラフィックは、アダプティブビットレートストリームを含む、請求項1に記載の方法。
  6. 前記第1のデータの前記電子トラフィックは、プログレッシブストリームを含む、請求項1に記載の方法。
  7. 前記第1のアプリケーションは、マニフェストによって制御される異なる対応する解像度を有する複数のデータレートをサポートすることができ、かつ
    前記第1のデータの前記配信速度の前記制御は、前記データレートのうち第1のデータレートを超える前記データレートを隠す又は取り除くために前記マニフェストを編集することを含む、請求項1に記載の方法。
  8. 前記第1のアプリケーションは、異なる対応する解像度を有する複数のデータレートをサポートすることができ、かつ
    前記第1のデータの前記配信速度の前記制御は、前記データレートのうち第1のデータレートを超える前記データレートへのアクセスを失敗又はブロックすることを含む、請求項1に記載の方法。
  9. 前記トラフィックマネージャアプリケーションによって、前記プロセッサ上で動作し、かつ前記ネットワーク経由で前記サーバに/から第2のデータを配信する第2のアプリケーションを特定することと、
    前記トラフィックマネージャアプリケーションによって、前記第2のアプリケーションへの/からの前記第2のデータの電子トラフィックを傍受することと、
    前記トラフィックマネージャアプリケーションによって、前記第2のアプリケーションへの/からの、又は前記サーバへの/からの前記第2のデータの配信速度を制御することと
    をさらに含む、請求項1に記載の方法。
  10. 前記第1の及び第2のデータの前記配信速度の前記制御は、前記第1のデータの前記配信速度が、前記第2のデータの前記配信速度を超えるように、前記第1の及び第2のデータの前記配信速度を同時に制限することを含む、請求項9に記載の方法。
  11. 前記電子トラフィックの前記傍受は、前記プロセッサ上で動作している内部プロキシの使用を含む、請求項1に記載の方法。
  12. 前記電子トラフィックの前記傍受は、前記プロセッサ上の仮想プライベートネットワーク(VPN)インターフェースの使用を含む、請求項1に記載の方法。
  13. 前記電子トラフィックの前記傍受は、前記プロセッサ上で変更された前記第1のアプリケーションを実行することを含み、前記変更された第1のアプリケーションが、前記電子トラフィックの前記傍受を要求するように構成される、請求項1に記載の方法。
  14. 通信トラフィック管理システムであって、
    コンピュータプロセッサと、ネットワーク経由で前記プロセッサとの間でデータを送受信するためのサーバへのネットワーク接続とを有する、ポータブル通信デバイスと、
    前記プロセッサに接続された非揮発性記憶装置であって、前記プロセッサによって実行された場合、前記プロセッサ上で動作しているトラフィックマネージャアプリケーションに、
    前記プロセッサ上で動作し、かつ前記ネットワーク経由で前記サーバに/から第1のデータを配信する第1のアプリケーションを特定することと、
    前記第1のアプリケーションによって要求される動画データであって、前記ネットワークを経た第1の配信速度で前記サーバから受信した動画データを含む前記第1のデータの電子トラフィックを傍受することと、
    前記トラフィックマネージャアプリケーションと前記第1のアプリケーションとの間の内部ネットワークデータ経路を経た前記第1のアプリケーションへの前記動画データの第2の配信速度であって、特定の目標動画解像度に対応する第2の配信速度制限することと、
    を行わせる命令を記憶する、非揮発性記憶装置と、
    を備える、システム。
  15. 前記命令は、前記プロセッサによって実行された場合、前記第1のアプリケーションによって認識される前記ネットワークの現在速度を、前記ネットワークの前記現在速度より遅い第1のデータレートに絞ることによって、さらに前記プロセッサに、前記第1のデータの前記配信速度を制御させる、請求項14に記載のシステム。
  16. 前記第1のデータの前記電子トラフィックは、データがハイパーテキストトランスファープロトコル(HTTPS)のセキュアプロトコルを使用して送信されることを含む、請求項15に記載のシステム。
  17. 前記命令は、前記プロセッサによって実行された場合、前記サーバへの/からの前記第1のデータの前記配信速度を、前記ネットワークの現在速度より遅い第1のデータレートに絞ることによって、さらに前記プロセッサに、前記第1のデータの前記配信速度を制御させる、請求項14に記載のシステム。
  18. 前記第1のデータの前記電子トラフィックは、アダプティブビットレートストリームを備える、請求項14に記載のシステム。
  19. 前記第1のデータの前記電子トラフィックは、プログレッシブストリームを備える、請求項14に記載のシステム。
  20. 前記第1のアプリケーションは、マニフェストによって制御される異なる対応する解像度を有する複数のデータレートをサポートすることができ、かつ
    前記命令は、前記プロセッサによって実行された場合、前記データレートのうち第1のデータレートを超える前記データレートを隠す又は取り除くために前記マニフェストを編集することによって、さらに前記プロセッサに、前記第1のデータの前記配信速度を制御させる、請求項14に記載のシステム。
  21. 前記第1のアプリケーションは、異なる対応する解像度を有する複数のデータレートをサポートすることができ、かつ
    前記命令は、前記プロセッサによって実行された場合、前記データレートのうち第1のデータレートを超える前記データレートへのアクセスを失敗又はブロックすることによって、さらに前記プロセッサに、前記第1のデータの前記配信速度を制御させる、請求項14に記載のシステム。
  22. 前記命令は、前記プロセッサによって実行された場合、さらに前記プロセッサに、
    前記プロセッサ上で動作し、かつ前記ネットワーク経由で前記サーバに/から第2のデータを配信する第2のアプリケーションを特定することと、
    前記第2のアプリケーションへの/からの前記第2のデータの電子トラフィックを傍受することと、
    前記第2のアプリケーションへの/からの、又は前記サーバへの/からの前記第2のデータの配信速度を制御することと
    を行わせる、請求項14に記載のシステム。
  23. 前記命令は、前記プロセッサによって実行された場合、前記第1のデータの前記配信速度が、前記第2のデータの前記配信速度を超えるように、前記第1の及び第2のデータの前記配信速度を同時に制限することによって、さらに前記プロセッサに、前記第1の及び第2のデータの前記配信速度を制御させる、請求項22に記載のシステム。
  24. 前記命令は、前記プロセッサによって実行された場合、前記プロセッサ上で動作している内部プロキシを使用することによって、さらに前記プロセッサに、前記電子トラフィックを傍受させる、請求項14に記載のシステム。
  25. 前記命令は、前記プロセッサによって実行された場合、前記プロセッサ上で仮想プライベートネットワーク(VPN)インターフェースを使用することによって、さらに前記プロセッサに、前記電子トラフィックを傍受させる、請求項14に記載のシステム。
  26. 前記命令は、前記プロセッサによって実行された場合、前記プロセッサ上で変更された前記第1のアプリケーションを実行することによって、さらに前記プロセッサに、前記電子トラフィックを傍受させ、前記変更された第1のアプリケーションは、前記電子トラフィックの前記傍受を要求するように構成される、請求項14に記載のシステム。
JP2017512981A 2014-09-05 2015-09-04 適応型レート制御及びトラフィック管理のシステム及び方法 Active JP6606176B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019189817A JP6974412B2 (ja) 2014-09-05 2019-10-17 適応型レート制御及びトラフィック管理のシステム及び方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462046874P 2014-09-05 2014-09-05
US62/046,874 2014-09-05
PCT/US2015/048721 WO2016037148A1 (en) 2014-09-05 2015-09-04 System and method of adaptive rate control and traffic management

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019189817A Division JP6974412B2 (ja) 2014-09-05 2019-10-17 適応型レート制御及びトラフィック管理のシステム及び方法

Publications (2)

Publication Number Publication Date
JP2017530624A JP2017530624A (ja) 2017-10-12
JP6606176B2 true JP6606176B2 (ja) 2019-11-13

Family

ID=55440428

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017512981A Active JP6606176B2 (ja) 2014-09-05 2015-09-04 適応型レート制御及びトラフィック管理のシステム及び方法
JP2019189817A Active JP6974412B2 (ja) 2014-09-05 2019-10-17 適応型レート制御及びトラフィック管理のシステム及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019189817A Active JP6974412B2 (ja) 2014-09-05 2019-10-17 適応型レート制御及びトラフィック管理のシステム及び方法

Country Status (7)

Country Link
EP (2) EP3609164B1 (ja)
JP (2) JP6606176B2 (ja)
KR (1) KR102491452B1 (ja)
CN (1) CN107113248B (ja)
AU (1) AU2015311691B2 (ja)
CA (1) CA2997611A1 (ja)
WO (1) WO2016037148A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112205036B (zh) * 2018-05-31 2024-04-02 摩博菲乐有限公司Dba摩博莱 动态信道绑定的系统和方法
CN110505660B (zh) * 2019-07-23 2023-07-14 维沃移动通信有限公司 一种网络速率调整方法及终端设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532593B1 (en) * 1999-08-17 2003-03-11 General Instrument Corporation Transcoding for consumer set-top storage application
US7286471B2 (en) * 2002-03-23 2007-10-23 Mindspeed Technologies, Inc. Dynamic bandwidth allocation for wide area networks
EP2486491A4 (en) * 2009-10-06 2013-10-23 Unwired Planet Llc MANAGING NETWORK TRAFFIC BY EDITING A MANIFEST FILE AND / OR USING A INTERMEDIATE FLOW CONTROL
EP3651028A1 (en) * 2010-07-26 2020-05-13 Seven Networks, LLC Mobile network traffic coordination across multiple applications
US9398103B2 (en) * 2011-04-15 2016-07-19 Qualcomm Incorporated Methods and apparatus for enhancing device performance through flow control
US8683013B2 (en) * 2011-04-18 2014-03-25 Cisco Technology, Inc. System and method for data streaming in a computer network
WO2013017165A1 (en) * 2011-08-02 2013-02-07 Telefonaktiebolaget L M Ericsson (Publ) Shaping media traffic based on manifest file in http adaptive streaming
US10292066B2 (en) * 2011-11-04 2019-05-14 Cisco Technology, Inc. System and method of modifying congestion control based on mobile system information
US20130159150A1 (en) * 2011-12-19 2013-06-20 Verizon Patent And Licensing, Inc. Mobile device data metering, bandwidth allocation, and traffic control
EP2910001A4 (en) * 2012-10-18 2016-04-20 Giraffic Technologies Ltd OVERLOAD CONTROL METHOD FOR DYNAMICALLY MAXIMIZING A COMMUNICATION CONNECTION THROUGHPUT
US8897292B2 (en) * 2012-12-31 2014-11-25 Telefonaktiebolaget L M Ericsson (Publ) Low pass filter for hierarchical pipelined distributed scheduling traffic manager
US20140226571A1 (en) * 2013-02-13 2014-08-14 Qualcomm Incorporated Apparatus and method for enhanced application coexistence on an access terminal in a wireless communication system
CN103560862B (zh) * 2013-10-18 2017-01-25 华为终端有限公司 移动终端及其编码速率控制方法

Also Published As

Publication number Publication date
EP3189486A1 (en) 2017-07-12
EP3609164B1 (en) 2021-03-31
KR102491452B1 (ko) 2023-01-20
EP3609164A1 (en) 2020-02-12
WO2016037148A1 (en) 2016-03-10
AU2015311691B2 (en) 2020-11-26
CN107113248A (zh) 2017-08-29
EP3189486B1 (en) 2019-08-28
JP6974412B2 (ja) 2021-12-01
EP3189486A4 (en) 2018-04-11
CA2997611A1 (en) 2016-03-10
CN107113248B (zh) 2021-03-19
KR20170063678A (ko) 2017-06-08
JP2017530624A (ja) 2017-10-12
AU2015311691A1 (en) 2017-04-20
JP2020043568A (ja) 2020-03-19

Similar Documents

Publication Publication Date Title
US11570114B2 (en) System and method of adaptive rate control and traffic management
US11303560B2 (en) HCPE-based intelligent path selection over a multipath network
US11259352B2 (en) Systems, methods, and media for providing multi-homing
US20100195602A1 (en) Application, Usage & Radio Link Aware Transport Network Scheduler
US9307450B2 (en) Method and apparatus for content caching in a wireless communication network
JP2015173473A (ja) 発展型アプリケーションインターフェースのためのスケーラブルなポリシー制御パケットインスペクションのシステムおよび方法
US10070348B2 (en) Hypertext transfer protocol support over hybrid access
US10687341B2 (en) Systems, methods, and media for scheduling traffic of a communication session between an application on a WiFi network and another device
JP7209745B2 (ja) 動的チャネルボンディングのシステム及び方法
US11343322B2 (en) Virtual edge node as a service
JP6974412B2 (ja) 適応型レート制御及びトラフィック管理のシステム及び方法
JP2020507285A (ja) スケジューリング制限による無線技術使用の制御
US20220286904A1 (en) Technique for Controlling and Performing Data Traffic Handling in a Core Network Domain
US11297634B2 (en) Systems, methods, and media for scheduling traffic of a communication session between an application on a WiFi network and another device
WO2021257565A1 (en) Systems, methods, and media for providing multi-homing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180827

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190828

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191017

R150 Certificate of patent or registration of utility model

Ref document number: 6606176

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250