JP5963540B2 - 情報処理装置、プログラム及び制御方法 - Google Patents

情報処理装置、プログラム及び制御方法 Download PDF

Info

Publication number
JP5963540B2
JP5963540B2 JP2012122914A JP2012122914A JP5963540B2 JP 5963540 B2 JP5963540 B2 JP 5963540B2 JP 2012122914 A JP2012122914 A JP 2012122914A JP 2012122914 A JP2012122914 A JP 2012122914A JP 5963540 B2 JP5963540 B2 JP 5963540B2
Authority
JP
Japan
Prior art keywords
stream
priority
data
frame
protocol
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.)
Expired - Fee Related
Application number
JP2012122914A
Other languages
English (en)
Other versions
JP2013251598A5 (ja
JP2013251598A (ja
Inventor
譲 大久保
譲 大久保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2012122914A priority Critical patent/JP5963540B2/ja
Priority to PCT/JP2013/003028 priority patent/WO2013179584A1/en
Priority to US14/404,424 priority patent/US10791202B2/en
Publication of JP2013251598A publication Critical patent/JP2013251598A/ja
Publication of JP2013251598A5 publication Critical patent/JP2013251598A5/ja
Application granted granted Critical
Publication of JP5963540B2 publication Critical patent/JP5963540B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6285Provisions for avoiding starvation of low priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/629Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets

Landscapes

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

Description

本発明は論理チャネルの優先順位を決定する技術に関する。
特許文献1は優先パケットと非優先パケットの両パケット間でCPUが割り当てるクロック数を異ならせる技術を開示している。
特開2009−60660号広報
ここで仮に複数のストリームがある環境を想定し、さらに複数のストリーム間で依存関係を持つことができる環境を想定したとする。
特許文献1はこのような環境を想定していないため、依存関係のあるストリーム間の優先順位を適切に決定することができない。具体的には以下の問題が生じる。
ストリームAと、ストリームAより優先順位の低いストリームBがある場合に、ストリームBはストリームBに依存する子ストリームを有しておらず、ストリームAは子ストリームを複数有するものとする。ここでストリームAの子ストリームの優先順位をストリームAと同一のものに設定してしまうと、ストリームAの子ストリームとストリームAを含むグループよりも相対的にストリームBの優先順位が低下する。
よって、ストリームBで本来届けられるべきデータが遅延しすぎる問題が生じる可能性がある。
上記の目的を達成するための本発明に係る情報処理装置は、
通信プロトコルの論理チャネルである第2のストリームの最大フレームサイズを、前記第2のストリームの親ストリームでありかつ前記通信プロトコルの前記論理チャネルである第1のストリームの最大フレームサイズよりも小さく設定する設定手段と、
前記第1のストリームのフレームと前記第2のストリームのフレームを送信する送信手段と、
前記第1のストリームの優先順位が第1の優先順位でかつ前記第1のストリームの優先順位より高い優先順位であるストリームが存在しない場合に前記第1のストリームの優先順位を前記第1の優先順位より高い第2の優先順位に変更する変更手段と、を有することを特徴とする。
依存関係のあるストリーム間の優先順位を適切に決定することができる。
本発明の一実施形態としてのコンピュータを含むネットワーク構成図 本発明の一実施形態としてのコンピュータを含むシステムを構成するブロック図 本発明の一実施形態としての対象プロトコル構成図 本発明の一実施形態としての対象プロトコルデータ構造図 本発明の一実施形態としてのソフトウェア構成図 プロトコル管理処理部のフローチャート プロトコル管理処理部におけるセッション作成処理のフローチャート プロトコル管理処理部におけるストリーム作成処理のフローチャート 仮想的な、優先順位とストリームの関係表の説明図 依存深度を用いた仮想的な優先順位変動の説明図 セッション管理処理部におけるセッション定期処理のフローチャート セッション管理処理部におけるデータ受信処理のフローチャート セッション管理処理部におけるデータ送信処理のフローチャート 最大フレームサイズ決定処理部におけるフローチャート 最大フレームサイズ決定方法の説明図
実施形態を説明する前に、説明に用いる用語および、本発明が対象とする通信プロトコルについて定義する。
ソケットとは、TCPレイヤにおいて、通信を識別、分類するための表記である。多くの場合IPプロトコルを下位レイヤとして用いるのが一般的であり、この場合、IPアドレスとポート番号の組のことである。
TCPコネクションとはTCPレイヤにおけるひとつの通信路を意味する。具体的には受信側ソケットと送信側ソケットの組のことである。
受信ウィンドウサイズとは、受信側の空きバッファの容量のことである。TCPプロトコルもウィンドウサイズを用いた処理を行うが、以降ウィンドウサイズと書く場合、対象とする上位通信プロトコルで用いるウィンドウサイズを意味する。
ストリームとは、対象とする上位通信プロトコルにおける論理チャネルのことである。
フレーム301とは、実際にデータを送信する際に、データを細切れにした最少単位のブロックのことである。ただし、フレーム301は、ISOによって提唱されているOSI7階層モデルで用いるデータリンク層のフレームと関係は無く、対象とする通信プロトコルにおける最小のデータ単位を指す。
ハッシュテーブルとは、1つの文字列に対して、1つの文字列を結びつける表のことである。
ここで本発明が対象とする通信プロトコルについて説明する。以降対象プロトコルと記述する。対象プロトコルはTCPプロトコルを利用する。ただし、TCPプロトコルとの透過性を維持する中間プロトコル(TLS、SSL等)が存在してもよい。対象プロトコルはTCPコネクション300上をフレーム301と呼ばれるデータを送受信することで通信を行う(図3)。フレーム301はヘッダにフレームサイズを持つ。ここで対象プロトコルのデータ構造図を図4に示す。対象プロトコルは該当するひとつのTCPコネクション300上における通信をセッション400として管理する。また、ひとつのセッション400上にはひとつのコントロールフレーム401があり、セッション400に関する通信は、このコントロールフレーム401を用いて行われる。対象プロトコルは、コントロールフレーム401以外に、任意の数のデータストリーム402を保持しても良い。
なお、本明細書においてデータストリームとストリームは同義である。
実際の上位アプリケーションおよび上位プロトコルのデータ通信はこのデータストリーム402を用いて行われる。このデータストリーム402はそれぞれ優先順位を設定できる。優先順位の数は説明のために、最も高い0から最も低い7の8段階とするが、実際にはこの8段階でなく、任意の優先順位数でも良い。
さらに、データストリームはそれぞれを特定できるストリームIDを持つ。
また、データストリーム402は依存関係を持たせることができる。データストリーム402は親がいれば、その親ストリームのストリームIDを持つことによって、もしいなければ0番または依存するストリームIDを持たないことによって表現できる。
この対象プロトコルはサーバ、クライアントの主従関係は無く、対等に通信を行う。
対象プロトコルのデータ構造の説明は以上である。
次に対象プロトコルの簡単な通信手順について説明する。ここでは通信開始から、何らかのデータ通信を行い、通信終了を行うまでの手順を説明する。
まず、TCPコネクションが確立されたとする。この時点でサーバとクライアントは双方向の通信チャネルを保持している。次にコントロールフレーム401を用いてデータストリーム402の作成を行う。サーバ側からでもクライアント側からでもデータストリーム402を作成することができる。ここではWebのコンテンツを取得することを例とする。Webのコンテンツを取得するためにクライアントはサーバに対してHTTPプロトコルのGETコマンドを送る必要がある。そのためクライアントはコンテンツストリームを用いてデータストリーム402の作成要求を行う。要求を受けたサーバ側はこの要求を受け入れる。この際、クライアントは作成したいデータストリームの優先順位と依存関係も設定する。サーバが作成要求を受け入れる場合はコントロールフレーム401を通して受け入れ許可を返信する。また、ここでサーバはデータストリーム402作成を拒否することもできる。データストリーム402作成後、サーバとクライアントは作成したデータストリーム402を利用してHTTPプロトコルのGET要求、またその返信を行うことができる。ここでは全てのデータを、データストリーム402を介して送受信を行っている。クライアント側が必要なデータをサーバから受信後、ストリームを閉じる必要がある。この時、クライアント側からでもサーバ側からでも、どちらからでもストリームを閉じることができる。その後、ストリームの終了要求を受けた側は送信するデータがなくなり次第、ストリームの終了要求を出し、ストリームを終了する。また、意図的に片側が終了要求を出さないことで片方向通信を行うこともできる。
また、サーバ側からデータストリーム402を作成する例としてクライアント側からGET要求に対して、動的にコンテンツをクライアントにプッシュするために新たなデータストリーム402を作成することが考えられる。この例から分かるように、対象プロトコルの通信において、ストリームの数は時間に応じて動的に変動する。
本発明に係る情報処理装置の一実施形態としてのコンピュータについて説明する。図2は本実施形態のコンピュータの構成を説明するブロック図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器から成るシステムであっても、本発明を適用できることは言うまでもない。また、特に断らない限り、本発明の機能が実行されるのであれば、LAN、WAN、インターネット等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できることは言うまでもない。
図2はコンピュータ200の構成を示し、クライアントコンピュータ103の構成及びサーバコンピュータ102の構成はコンピュータ200の構成と同一である。
コンピュータ200はROM202のプログラム用ROMあるいは外部記憶装置205に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した処理を実行するCPU201を備える。さらに、システムバス204に接続される各デバイスをCPU201が統括的に制御する。また、これら以外に入出力装置を備えていても良い。
また、このROM202のプログラム用ROMあるいは外部記憶装置205には、CPU201の制御プログラムであるオペレーションシステム等を記憶する。また、ROM202のデータ用ROMあるいは外部記憶装置205には各種データを記憶する。
203はRAMで、CPU201の主メモリ、ワークエリア等として機能し、ネットワークI/F制御部206は、LAN207とのデータの送受信を制御する。
図1において、LAN207は、上述の各装置の間で情報をやり取りするための通信回線である。インターネット101は、ファイアウォールを越えて上述の各装置間で情報をやり取りするための通信回線である。インターネット101により、サーバコンピュータ102とクライアントコンピュータ103が属するLAN207とは、ファイアウォールを越えて通信が可能である。LAN207、インターネット101は、例えば、TCP/IPプロトコルなどをサポートする通信回線網であり有線・無線は問わない。図1において、サーバコンピュータ102は、1台のサーバとして示されているが複数台のサーバコンピュータで構成されていても構わない。また、仮想PCとして構成されていても構わない。
加えて、CPU201が外部記憶装置205に記憶されているプログラムに基づき処理を実行することによって、図5に示されるようなコンピュータ200のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。なお、以降の説明でコンピュータ200はクライアントコンピュータ103又はサーバコンピュータ102であっても同じである。
本発明を実施するにあたって、クライアントおよびサーバは対象プロトコルを管理する機構を備える必要がある。本明細書はサーバおよびクライアント両方で実施する例を示す。しかし、本発明はサーバ又はクライアントの片方だけで実施しても効果を得ることができる。
コンピュータ200のソフトウェア構成を図5に示す。ここでクライアントコンピュータ103のソフトウェア構成及びサーバコンピュータ102のソフトウェア構成はコンピュータ200のソフトウェア構成と同一である。
TCPレイヤまでの管理機構はRFC793(TRANSMISSION CONTROL PROTOCOL)を満たし、利用可能なAPIが提供されていればどのような実施方法でも構わない。多くの場合、オペレーティングシステムがTCPレイヤを操作するためのAPIを提供することが一般的である。また、対象プロトコルはTCPを利用するため、TCP以上の性能を出すことは出来ない。
504はSSL、TLSレイヤを管理する処理部である。本対象プロトコルはSSL、TLSを利用する必要はないが、現実的にはセキュリティやファイアウォールの問題からSSL、TLSを利用する場合が多いため記述した。SSL、TLS管理処理部504は、規格(RFC2246、RFC4346)に準拠した実施になっていれば、どのような実施方法でも構わない。また、この処理部がSSL、TLS以外の中間プロトコルであっても構わない。
プロトコル管理処理部501は対象プロトコルのセッションを管理する処理部である。プロトコル管理処理部501は上位レイヤアプリケーション500へのインターフェースの提供、また下位レイヤに対してデータの送受信も管理する。プロトコル管理処理部501は全ての対象プロトコルの処理を行わず、セッション管理処理部502に実際の処理を委譲する。
セッション管理処理部502は対象セッションのストリームを管理する。各ストリームはストリームバッファ507とストリーム状態ストア508を持つ。ストリーム状態ストア508はストリームがどのような状態かを保存しておく記憶領域である。ストリームバッファ507はひとつのストリームに対して2つのバッファを持つ。送信用バッファと受信用バッファである。
ここで図5において、ストリームバッファ507、ストリーム状態ストア508については格納場所を示しており、両者はプログラムではない。
ここで本発明の実施において、送信用バッファは必ずしも必須ではないが、一般的にネットワークの送受信に関してバッファを持つことでパフォーマンスを向上させることが多い。そのため、送信用のバッファを使用した実施とする。ストリームバッファ507はストリーム作成時にデフォルトサイズに基づき送受信用の2つのバッファを持つ。この前記デフォルトサイズは予め対象プロトコルで定められているとする。
ここで送信バッファの前記デフォルトサイズに関しては対象プロトコルに定められたデフォルトサイズを利用することは必須ではない。
またセッション管理処理部502は最大フレームサイズを決定する際に最大フレームサイズ決定処理部を使用する。最大フレームサイズ決定処理部503はストリームが使用できる最大フレームサイズを算出する処理部である。最大フレームサイズ決定処理部503は必要なタイミングで呼び出され、全てのストリームの最大ウィンドウサイズと優先度から最適な最大フレームサイズを決定する。
次に対象プロトコルを用いたデータの送受信の流れについて説明する。ただし、SSL、TLS管理処理部504、TCP管理処理部505、下位レイヤ管理処理部506及び送信バッファと受信バッファにおける詳細な処理の流れについては記述しない。これらの具体的な処理方法は本発明の処理方法とは直接関係なく、これらの実施方法が広く一般的に知られているためである。またネットワークI/F509はネットワークI/F制御部206のソフトウェア処理部を示す。
プロトコル管理処理部501の処理の流れについて、図6に示す。ここでストリーム作成処理(S603)、データ送信要求処理(S607)、データ受信要求処理(S609)、セッション定期処理(S612)については、セッション管理処理部502によって処理が行われる。まず初期状態の場合、ひとつもセッションが作成されていないので、プロトコル管理処理部501は上位アプリケーションからリクエスト受付(S600)にて、セッション作成のリクエストを待つこととなる。もし、何もリクエストが無い場合は、未処理セッションがあるかどうかの判定(S601)を通ることとなるが、現段階ではセッションがひとつも無いので上位アプリケーションからリクエスト受付(S600)へ戻る。セッション作成のリクエスト(S602)があった場合、セッション作成処理(S603)を呼ぶ。
セッション作成処理の流れについて図7に示す。
プロトコル管理処理部501は接続形態に応じてサーバ側として動作を行うかクライアント側として動作を行うか判定(S700)を行う。すなわち、上位レイヤアプリケーション500がブラウザであるかWebサーバソフトウェアであるかによって、プロトコル管理処理部501の処理が決まる。上位レイヤアプリケーションがブラウザの場合はクライアント側として動作して、Webサーバソフトウェアの場合はサーバ側として動作する。サーバとして動作を行うと判定した場合、接続受付処理(S701)を行う。この処理はクライアントがTCP接続を要求してくるのを待機する処理である。クライアントから要求があった場合、処理を抜ける。一方でクライアントとして動作を行うと判定した場合、接続処理(S702)を行う。接続処理はTCP接続をサーバに対して要求するものである。成功した場合この処理を抜ける。それぞれの形態で接続に関する処理が終了後、TCPコネクション確立(S703)にて、TCPレイヤのデータ送受信が可能な状態にする。
もしSSL/TLS処理も行う場合は、TCPコネクション確立処理の内部にて隠蔽されて処理が行われる。すなわち、SSL/TLSで処理を行う場合はTCPレイヤにデータが渡る前にSSL/TLS処理が行われる。
TCPコネクション確立(S703)後、セッション作成処理(S603)を抜ける。
図7のように一つのモジュールでサーバとクライアントの処理を行うメリットとして、複数のプログラム間でモジュールを共通化できるメリットがある。
図6にてセッション作成処理(S603)終了後、後述するS611と必要に応じてS612を経て上位アプリケーションからのリクエスト受付(S600)のループに戻る。
次に、ストリーム作成リクエスト(S604)があった場合、セッション管理処理部502によってストリーム作成処理(S605)が行われる。
また、データ送信リクエスト(S606)があった場合、セッション管理処理部502によってデータ送信要求処理(S607)が行われる。
同様に、データ受信リクエスト(S608)があった場合、セッション管理処理部502によってデータ受信要求処理(S609)が行われる。
また、これらのリクエスト以外にも対象プロトコルがリクエストの種類を増やしても良い。そのため、その他処理(S610)にて、その他のリクエストに関する対応処理を行う。
最後に、未処理セッションの有無判定(S611)にて、未処理セッションがあった場合、セッション管理処理部502によってセッション定期処理(S612)が行われる。このセッション定期処理(S612)は利用中のセッションの数だけ呼ばれる。全てのセッションを管理する、プロトコル管理処理部501の処理の流れの説明は以上である。
次にセッション管理処理部502について処理の流れを説明する。セッション管理処理部502は前述したようにプロトコル管理処理部501によって呼び出される。また、セッション管理処理部502は各ストリームに対応するバッファであるストリームバッファ507の作成、サイズ変更、追加、取得、および削除を行う。
ストリーム作成処理(S605)の流れについて図8を用いて説明する。まずストリームIDの決定(S801)にてストリームIDを決定する。この処理は1つのセッションの中でストリームに付けるIDを一意にするために行う。ここでサーバ側から作成したストリームと、クライアント側から作成したストリームでストリームIDが重複しないようにする必要がある。そのためにストリームIDの決定にて重複チェックを行っても良いし、対象プロトコルにクライアント側作成した場合は偶数、サーバ側から作成した場合は奇数といった制約をかけても良い。ストリームIDが決定した後、対応するコントロールフレーム401の作成を行う。この処理では対象プロトコルの仕様に従い、ストリーム作成用のコントロールフレームを作成(S802)する。次に送信キューにコントロールフレーム401のプッシュ処理(S803)を行う。送信キューはTCPレイヤが管理しており、送信キューにプッシュした時点でTCP管理処理部505が、必要に応じて送信を行う。最後にストリーム状態ストアに該当ストリームIDを追加(S804)することで、作成要求を送信したことをストリーム状態ストア508に記録する。しかし、まだ、ストリーム作成要求が受け入れられていないので、状態を受け入れ待ちとする。
次にデータ送信要求処理(S607)について説明する。この処理は上位アプリケーションが、とあるストリームを用いてデータを送信したい場合に、プロトコル管理処理部501を通して呼び出される。まず上位アプリケーションが送信したいデータのサイズを取得する。そして、取得したデータを送信バッファの空きサイズに収まる分だけ格納する。これにより、送信バッファがデータ溢れを起こすのを防ぐ。なお、データは送信バッファに格納しておくだけであり、実際に送信が行われるのはセッション定期処理(S612)内である。
同様にデータ受信要求処理(S609)について説明する。この処理もデータ送信要求処理(S607)と同様に、あるストリームから受信したデータを取得したい場合に、プロトコル管理処理部501を通して呼び出される。セッション管理処理部502はプロトコル管理処理部501から処理を委託された後、受信バッファからデータを読み出す。
セッション管理処理部502の残りの処理であるセッション定期処理(S612)について図11を用いて説明する。この処理は各セッションに対して定期的にプロトコル管理処理部501から呼び出され、有効な各セッションに対して1回ずつ呼び出される。セッション管理処理部502はまず、データ受信処理(S1100)にてTCPレイヤから通信データの受信、および解析を行う。また、データ受信処理の後、データ送信処理(S1101)にて、各ストリームの送信バッファに溜まっているデータの送信を行う。これらデータ受信処理(S1100)、およびデータ送信処理(S1101)については、セッション定期処理(S612)の説明後、詳細に説明する。次にセッション管理処理部502は未処理ストリームがあるかを確認する(S1102)。もし未処理ストリームがある場合、状態読み出し(S1103)にて、ストリーム状態ストア508から、該当するストリームの状態を読み出す。
ストリームの状態が作成要求中だった場合(S1104)、続いて受け入れ側が作成承認を行ったかどうかの判定を行う(S1105)。ここで作成承認が行われていた場合、ストリームの状態を通信状態に変更(S1106)し、次の未処理ストリームの確認(S1102)に戻る。ストリームの状態が作成要求中または作成承認を受信した状態のいずれでもない場合は、なにも処理を行わずに、未処理ストリームの確認(S1102)に戻る。
S1102で未処理ストリームがない場合は処理を終了する。
セッション定期処理(S612)の大まかな処理の流れは以上となる。
続いてデータ受信処理の詳細な処理の流れについて図12を用いて説明する。セッション管理処理部502は、まずTCPレイヤから未受信データがあるか確認を行う(S1200)。ここでもし未受信データがあった場合、ヘッダ部分の読み出し(S1201)を行う。フレーム301にはフレームに格納することのできるデータのサイズを示すフレームサイズがある。S1202ではフレーム301のフレームサイズを取得する。フレームサイズを取得することでボディ部の位置を把握することができる。次にフレーム301のボディ部の読み込みを行う(S1203)。
ここでは、セッション管理処理部502は全てのボディ部の受信が終わるまで、処理をブロックしても良いし、次回以降のセッション定期処理(S612)で処理するとして、後回しにしても良い。すなわち、一般的に通信ライブラリは非同期であることが多いが、本明細書では同期である例を記載している。しかし、本発明を実施するにあたり一般的な通信ライブラリと同様に非同期で処理を行なっても構わない。
ボディ部の読み込みが成功した後、セッション管理処理部502はフレーム301の種類によって処理を分岐させる(S1204)。フレーム301の種類がコントロールフレームだった場合、内容がストリーム作成承認であるかどうかを判定する(S1205)。ストリーム作成承認だった場合、ストリーム状態ストア508に格納されている、該当するストリームの状態を通信状態に変更する(S1207)。もし、ストリーム作成承認以外のコントロールフレームであった場合、種類にあった処理を、その他コントロールフレーム処理(S1206)にて行う。その他コントロールフレームとは、例えばストリーム作成の承認拒否や通信速度の通知といった、対象プロトコルにて独自に定めたものである。本実施例において、直接関わりの無いコントロールフレームの処理については記述しない。コントロールフレームを受信した際の処理は以上である。次にフレーム301の種類の判定において、データフレームだった際の説明を行う。セッション管理処理部502は受信したフレーム301がデータフレームであると判定した場合、データストリーム402のストリームIDをフレームヘッダから取得する(S1208)。その後、対象ストリームの受信バッファにデータフレームのボディ部を追加する(S1209)。
ここで対象プロトコルが双方向通信を行ってかつ受信ウィンドウサイズの通知が間に合わない場合に、相手先の対象ストリームの受信バッファが溢れてしまう恐れがある。このような問題を防ぐ仕組みがTCPでは実現されているが、本明細書では対象プロトコルでも受信バッファが溢れる問題に対する対処が二重でなされているものとする。
本明細書では対象プロトコルのウィンドウサイズとバッファ溢れの詳細な制御については記述しないが、方法としては、バッファから溢れた分のサイズを、コントロールフレームを利用して通知する等がある。ボディ部に追加後、上位アプリケーションは該当ストリームが受信したデータを取得できるようになる。該当ストリームの受信バッファにデータ追加後、再び未受信データの確認(S1200)へ戻る。もし、未受信データの確認で、TCPレイヤにおいて受信データが無い場合、このデータ受信処理を抜ける。
次に、データ送信処理の詳細な処理の流れについて図13を用いて説明する。まず、セッション管理処理部502は各ストリームの送信バッファを確認し、未送信データがあるかどうか判定する(S1300)。この判定の際、全ての未送信データを送らなければこの処理を抜けられないことから、無限ループに陥る可能性を回避するために、実行回数に制限を設けても良い。もし未送信データがある場合、未送信データのあるストリームのうち、どのストリームのデータを送信するかを送信ストリームバッファ選択にて決定する(S1301)。この処理はストリームの優先順位によって決まり、優先順位の高いものは送信ストリームバッファを選択する頻度を多く、逆に優先順位の低いものは送信ストリームバッファを選択する頻度を少なくする。
送信ストリームバッファを選択後、最大フレームサイズを決定する(S1302)。この最大フレームサイズの決定は最大フレームサイズ決定処理部503にて行われ、ストリームに対して最適な最大フレームサイズを算出する。最大フレームサイズ決定(S1302)の詳細な処理の流れは後述する。
最大フレームサイズを決定後、セッション管理処理部502は受信側ウィンドウサイズと最大フレームサイズを比較する(S1303)。もし、受信側ウィンドウサイズの方が、最大フレームサイズよりも大きければ、最大フレームサイズ分をストリームバッファ507から取得する(S1304)。一方で最大フレームサイズの方が受信側ウィンドウサイズよりも大きければ、受信側ウィンドウサイズ分をストリームバッファ507から取得する(S1305)。特に図に明記されていないが、送信ストリームバッファにこれらのサイズ未満のデータしかない場合には、全てのデータを取得することとなる。送信するデータを取得後、セッション管理処理部502は取得したデータを用いてデータフレームを作成する(S1306)。最後にTCPレイヤの送信キューに作成したデータフレームを追加する(S1307)。ここでTCPレイヤの送信キューが溢れていて追加できない場合は、別途待ち合わせや非同期処理といった回避策を取る必要がある。データフレームを送信キューに追加後、残りの未送信データがあるどうかの判定(S1300)に戻る。もし未送信データが無い場合、データ送信処理を抜ける。
データ送信処理内で呼ばれる、最大フレームサイズ決定処理の流れについて図14を用いて詳細に説明する。最大フレームサイズ決定処理部503は、まず最も小さい最大ウィンドウサイズを算出する(S1400)。最も小さい最大ウィンドウサイズとは、各ストリームの最大受信ウィンドウサイズのうち最も小さいもののことである。これは、受信ウィンドウサイズが動的に変更されることを考慮するために算出される。
ここでは処理を簡単にするために、最も小さい最大ウィンドウサイズを選択するが、各ストリームの最大ウィンドウサイズの平均等を用いても良い。ただし、ここで算出する値が該当ストリームの受信ウィンドウサイズを上回る場合、受信ウィンドウサイズに制限する必要がある。次に、最大フレームサイズを決定する(S1401)。
ここで本発明では、最大フレームサイズは優先順位の高いストリーム程大きく、逆に優先順位の低いストリーム程小さくなるように構成する。例として、最大フレームサイズ=最小の最大ウィンドウサイズ/(優先順位+1)、といった式で決定できる(図15)。
この例以外にも等差的に最大フレームサイズを制限するなどの算出方法でも良い。すなわち、優先順位が下がるごとに一定間隔でフレームサイズを小さくしても構わない。
最大フレームサイズ決定処理部503は、最大フレームサイズを決定後、処理を抜ける。
これにより高い優先順位のストリームの割り込みに素早く応答出来るようになる。よって、Webアプリケーション等からの優先順位の高い要求に対して、応答速度を速くすることができる。
次にストリームの依存関係を用いて優先順位を決定する例について説明する。
対象プロトコルのデータ構造の説明にて、各ストリームは依存関係を持っても良いことを示した。もし別のストリームに依存していれば、そのストリームIDを持つことで親子関係を表しても良い。また、対象プロトコルは複数のストリームを同時並列に送受信することが出来る。そのため、対象プロトコルの上位レイヤには、様々なプロトコルやアプリケーションが同時に混在する場合がある。その時、あるプロトコル、またはアプリケーションが、あるストリームに対して更にストリームを作りたい場合、元となるストリームを親として依存関係を持たせることができる。
しかし、ストリームの優先順位をクライアント、サーバが自由に決定できる対象プロトコルの場合、一部のプロトコル、またはアプリケーションが高優先度のストリームを大量に作れる。例えば、図10(a)のストリームグループa1700は5つの子ストリームを含み、一方でストリームグループb1701は3つの子ストリームを含んでいる。ここで、ストリームグループa1700がすべてのストリームを高優先度として作成した場合、ストリームグループb1701は帯域を圧迫され帯域を公平に利用できなくなる恐れがある。
なお、このように複数のストリームグループが同一のセッションで作成される例として、HTTPとWebSocketを用いて通信する例が挙げられる。すなわち、ストリームグループaはHTTPで通信し、ストリームグループbはWebSocketで通信する。
そこで、最大フレームサイズ決定(S1401)処理において、依存関係の深さに応じて優先順位を下げて最大フレームサイズを決定する。
図10(a)においてどのストリームにも依存しない、すなわち親ストリームがある。ここでは、ストリームAとストリームBである。この2つは依存関係が最も浅いので優先順位は変化させない。また、これらのストリームを親とするストリームAA,AB,BAは依存関係が1つ深い。そのためセッション管理処理部502が、依存関係を考慮し、優先順位を1つ低くする。以下同様に、依存関係の深いストリーム程、優先順位を下げる処理を行う。
ただし、優先順位が対象プロトコルで設定可能な優先順位の範囲を超える場合、優先順位の範囲に収める処理が必要となる。具体的には対象プロトコルの最も低い優先順位が7であってかつ優先順位を下げる対象ストリームの優先順位が既に7である場合には対象ストリームの優先順位を7のままにする。
次に図10(a)を用いて説明した方法で具体的に効果が生じる例について、図10(b)及び図10(c)の事例を比較して説明を行う。
これから説明する事例では図10(a)を用いて説明した方法で決定した優先順位をコンピュータ200のCPUが割り当てる時間に活用する事例である。実際にはCPUがストリームの処理に秒単位で時間を割り当てることは現実的ではないが、ここでは簡単のため秒を単位として事例を説明する。具体的には優先順位が0であるストリームの処理に3秒を割り当て、優先順位が1であるストリームの処理に2秒を割り当て、優先順位が2であるストリームの処理に1秒を割り当てる。
図10(b)及び図10(c)ではストリームAは優先順位が0であり、ストリームBは優先順位が2である。そしてストリームAは子ストリームを2つ有し、ストリームBは親ストリームである。
ここで図10(b)は依存度に基づいて子ストリームの優先順位を変更しない事例である。その結果、ストリームグループaの処理には合計で9秒を要し、ストリームグループbの処理には1秒を要する。
これに対して図10(c)は依存度に基づいて子ストリームの優先順位を変更する事例である。その結果、ストリームAの子ストリームに要する処理時間が短くなるため、ストリームグループaの処理には合計で7秒を要し、ストリームグループbの処理には同じく1秒を要する。
よって、図10(b)ではストリームグループaとストリームグループbの処理時間の比が9:1となるのに対し、図10(c)では7:1となる。これにより図10(c)は図10(b)と比べれば、ストリームグループ間で不公平である環境が若干是正される。
なお、ここで説明した処理時間の例は優先順位を用いて処理する方法の一例である。他に優先順位を用いた処理としてはCPUが処理する割合を変える方法や、ストリームを送信する順番を変える方法が考えられる。また、優先順位はコンピュータ200内で処理するためだけに活かしても構わないし、あるいは決定した優先順位をストリームのフレームを含むIPパケットのヘッダに入力してその優先順位が入力されたIPパケットを送信しても構わない。後述したIPパケットのヘッダに入力する方法では、そのIPパケットを受け取ったルーターやコンピュータが優先順位を活用することもできる。
依存関係の深いストリームの優先順位を下げることにより、一部のストリームグループが大量に子ストリームを作成した場合でも、他のストリームグループと共に公平に通信帯域を分け合うことが出来る。
なお、子ストリームの優先順位を決定後にその子ストリームのフレームサイズを変更するかどうかは任意である。子ストリームのフレームサイズを変更せずに、優先順位のみを親ストリームよりも低い優先順位に決定しても構わない。このように構成することでもストリームグループaとストリームグループb間の公平性を高めることができる。
実施例1における最大フレームサイズ決定処理(S1401)では、各ストリームの最大ウィンドウサイズと優先順位によって最適な最大フレームサイズを決定する手法を示した。本実施例では、常にストリームの数と優先順位が変動するモデルに対して、より動的に対応できる実施例を示す。
図9を用いて、本実施例による最適な最大フレームサイズの決定法について説明する。図9は、ある時間において、各優先順位の属するストリームの数を表している。(a)は実施例1と同様の処理を行う際の各ストリームと優先順位の状態である1600。ここで優先順位を最も高いものが0、最も低いものを3である対象プロトコルであるとする。もちろん、実際にはプロトコル規定の優先順位数はいくつであっても良い。(a)には優先順位の最も低い3のストリーム2つ。また、優先順位のやや低い2のストリームが1つ、計3つのストリームが存在する。これらの3つのストリームよりも高い優先順位を持つストリームは存在していない。優先順位の高い(優先順位が0及び1である)ストリームが存在しない状態であるが、対象プロトコルは優先順位を自由に決められるため、このような状態も有りうる。また、優先順位の高いストリームが通信を終了した直後などでも、このような状態になる可能性がある。この状態で実施例1にあるような最大フレームサイズの決定法を用いると、実質的には優先順位が2又は3であるストリームに対して、過度にフレームサイズの制限を強制することになる。そのためフレームヘッダのオーバヘッドが生じ、通信速度が遅くなる可能性がある。
この問題のために、図9の(b)で示されるように、本来プロトコルの優先順位数は4つであるが、使われていない優先順位に既に使われている優先順位のストリームを詰めて設定する。ここで、1601が実際の優先順位とストリームの関係表である。また、1602は詰めて設定した優先順位とストリームの関係表である。この実施によって(b)では、実質的には優先順位の種類が2つのプロトコルとして扱うことができる。よって実施例1で説明した優先順位による最大フレームサイズの決定を行った際に、(a)と比べて、相対的にフレームサイズを大きくすることできる。
以上、説明した本実施例によれば、一時的に優先順位の高いストリームが存在しない場合に、仮想的に全体の優先順位数を状況に合わせて変動させるため、フレームヘッダ分のオーバヘッドを減らし、通信速度を向上出来る。
[他の実施形態]
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良い。
また仮想化OSなどで構成される場合も含めて一つの機器からなる装置に適用しても良い。さらに、情報処理装置がインターネットを経由したクラウドコンピューティングで構成されるシステムに適用しても良い。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
また、プログラムの実行環境は、パーソナルコンピュータやパーソナルコンピュータでのオペレーションシステムを仮想化した仮想PCやリモートPCを含む。
さらには、画像形成装置、プリンタやMFP(マルチファンクションペリフェラル)等の組み込みコンピュータで実行される場合も含まれる。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記録媒体としては、様々なものが使用できる。
例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリ、不揮発性のメモリカード、ROM、DVDなどである。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
また、本発明のプログラムを暗号化してDVD−ROM等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。

Claims (11)

  1. 通信プロトコルの論理チャネルである第2のストリームの最大フレームサイズを、前記第2のストリームの親ストリームでありかつ前記通信プロトコルの前記論理チャネルである第1のストリームの最大フレームサイズよりも小さく設定する設定手段と、
    前記第1のストリームのフレームと前記第2のストリームのフレームを送信する送信手段と、
    前記第1のストリームの優先順位が第1の優先順位でかつ前記第1のストリームの優先順位より高い優先順位であるストリームが存在しない場合に前記第1のストリームの優先順位を前記第1の優先順位より高い第2の優先順位に変更する変更手段と、を有することを特徴とする情報処理装置。
  2. 前記第1のストリームの処理時間を前記第2のストリームの処理時間よりも長くなるように制御する調整手段を有することを特徴とする請求項1に記載の情報処理装置。
  3. TCP接続の要求を待機する処理とTCP接続を要求する処理を一つのモジュールにより行うことを特徴とする請求項1又は請求項2に記載の情報処理装置。
  4. 前記設定手段は前記第1のストリームの優先順位が前記通信プロトコルの優先順位の範囲で最も低い場合に前記第2のストリームの優先順位を前記第1のストリームの優先順位と同一に設定することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  5. 前記第1のストリームの優先順位を前記第1のストリームのフレームを含むIPパケットのヘッダに入力して、前記第2のストリームの優先順位を前記第2のストリームのフレームを含むIPパケットのヘッダに入力する入力手段を有することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  6. コンピュータに、
    通信プロトコルの論理チャネルである第2のストリームの最大フレームサイズを、前記第2のストリームの親ストリームでありかつ前記通信プロトコルの前記論理チャネルである第1のストリームの最大フレームサイズよりも小さく設定する設定工程と、
    前記第1のストリームのフレームと前記第2のストリームのフレームを送信する送信工程と、
    前記第1のストリームの優先順位が第1の優先順位でかつ前記第1のストリームの優先順位より高い優先順位であるストリームが存在しない場合に前記第1のストリームの優先順位を前記第1の優先順位より高い第2の優先順位に変更する変更工程と、を実行させることを特徴とするプログラム。
  7. 前記コンピュータに、
    前記第1のストリームの処理時間を前記第2のストリームの処理時間よりも長くなるように制御する調整工程を実行させることを特徴とする請求項に記載のプログラム。
  8. TCP接続の要求を待機する処理とTCP接続を要求する処理を一つのモジュールにより行うことを特徴とする請求項6又は請求項7に記載のプログラム。
  9. 前記設定工程は前記第1のストリームの優先順位が前記通信プロトコルの優先順位の範囲で最も低い場合に前記第2のストリームの優先順位を前記第1のストリームの優先順位と同一に設定することを特徴とする請求項乃至のいずれか1項に記載のプログラム。
  10. 前記コンピュータに、
    前記第1のストリームの優先順位を前記第1のストリームのフレームを含むIPパケットのヘッダに入力して、前記第2のストリームの優先順位を前記第2のストリームのフレームを含むIPパケットのヘッダに入力する入力工程を実行させることを特徴とする請求項乃至のいずれか1項に記載のプログラム。
  11. 通信プロトコルの論理チャネルである第2のストリームの最大フレームサイズを、前記第2のストリームの親ストリームでありかつ前記通信プロトコルの前記論理チャネルである第1のストリームの最大フレームサイズよりも小さく設定する設定工程と、
    前記第1のストリームのフレームと前記第2のストリームのフレームを送信する送信工程と、
    前記第1のストリームの優先順位が第1の優先順位でかつ前記第1のストリームの優先順位より高い優先順位であるストリームが存在しない場合に前記第1のストリームの優先順位を前記第1の優先順位より高い第2の優先順位に変更する変更工程と、を有することを特徴とする制御方法。
JP2012122914A 2012-05-30 2012-05-30 情報処理装置、プログラム及び制御方法 Expired - Fee Related JP5963540B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012122914A JP5963540B2 (ja) 2012-05-30 2012-05-30 情報処理装置、プログラム及び制御方法
PCT/JP2013/003028 WO2013179584A1 (en) 2012-05-30 2013-05-13 Information processing apparatus, program, and control method
US14/404,424 US10791202B2 (en) 2012-05-30 2013-05-13 Information processing apparatus, program, and control method for determining priority of logical channel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012122914A JP5963540B2 (ja) 2012-05-30 2012-05-30 情報処理装置、プログラム及び制御方法

Publications (3)

Publication Number Publication Date
JP2013251598A JP2013251598A (ja) 2013-12-12
JP2013251598A5 JP2013251598A5 (ja) 2015-07-16
JP5963540B2 true JP5963540B2 (ja) 2016-08-03

Family

ID=49672813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012122914A Expired - Fee Related JP5963540B2 (ja) 2012-05-30 2012-05-30 情報処理装置、プログラム及び制御方法

Country Status (3)

Country Link
US (1) US10791202B2 (ja)
JP (1) JP5963540B2 (ja)
WO (1) WO2013179584A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150052256A1 (en) * 2013-08-15 2015-02-19 Unisys Corporation Transmission of network management data over an extensible scripting file format
CN111294936B (zh) * 2018-12-06 2023-04-14 大唐移动通信设备有限公司 一种传输方法及终端

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10229420A (ja) * 1997-02-17 1998-08-25 Matsushita Electric Ind Co Ltd 通信システム
CN100525443C (zh) * 1997-03-17 2009-08-05 松下电器产业株式会社 发送和接收动态图像数据的方法及其设备
US6230200B1 (en) * 1997-09-08 2001-05-08 Emc Corporation Dynamic modeling for resource allocation in a file server
US6205140B1 (en) * 1997-12-01 2001-03-20 Intel Corporation Communication of dynamic dependencies along media streams
KR100338662B1 (ko) * 1998-03-31 2002-07-18 윤종용 부호분할다중접속통신시스템의채널통신장치및방법
US7792947B1 (en) * 1999-04-26 2010-09-07 Mainstream Scientific, Llc Apparatus and method for dynamically coordinating the delivery of computer readable media
US6526034B1 (en) * 1999-09-21 2003-02-25 Tantivy Communications, Inc. Dual mode subscriber unit for short range, high rate and long range, lower rate data communications
JP2001237882A (ja) * 2000-02-23 2001-08-31 Nec Corp パケットデータ転送におけるパケットサイズ制御装置及びその制御方法
JP2002171285A (ja) * 2000-11-29 2002-06-14 Mitsubishi Electric Corp 通信システムおよび通信方法
US7142508B2 (en) * 2000-12-22 2006-11-28 Radiance Technologies, Inc. System and method for controlling data transfer rates on a network
US7065581B2 (en) * 2001-06-27 2006-06-20 International Business Machines Corporation Method and apparatus for an improved bulk read socket call
EP1418709B1 (en) * 2001-08-09 2012-02-08 Panasonic Corporation Apparatus and transmission method
AU2002253437A1 (en) * 2002-04-12 2003-10-27 Nokia Corporation System, device and method for improving throughput in a communication network, preferably a mobile ipv6-based network
US20040015591A1 (en) * 2002-07-18 2004-01-22 Wang Frank Xiao-Dong Collective TCP control for improved wireless network performance
KR100554015B1 (ko) * 2002-12-23 2006-02-22 한국과학기술정보연구원 그리드 컴퓨팅에 적합한 데이터 전송 제어 시스템 및방법과 그 프로세스를 기록한 컴퓨터 판독가능한 기록매체
US7272658B1 (en) * 2003-02-13 2007-09-18 Adobe Systems Incorporated Real-time priority-based media communication
US7444419B2 (en) * 2003-10-10 2008-10-28 Microsoft Corporation Media stream scheduling for hiccup-free fast-channel-change in the presence of network chokepoints
US7899059B2 (en) * 2003-11-12 2011-03-01 Agere Systems Inc. Media delivery using quality of service differentiation within a media stream
US7978734B2 (en) * 2004-03-18 2011-07-12 Xocyst Transfer Ag L.L.C. Multichannel MAC data stream for wireless communication
US7818444B2 (en) * 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US8683066B2 (en) * 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US7443872B1 (en) * 2005-04-29 2008-10-28 Network Appliance, Inc. System and method for multiplexing channels over multiple connections in a storage system cluster
JP4185086B2 (ja) * 2005-09-28 2008-11-19 株式会社日立国際電気 画像処理装置
US7701853B2 (en) * 2005-09-30 2010-04-20 Alcatel-Lucent Usa Inc. Method for policing-based adjustments to transmission window size
JP2007201884A (ja) * 2006-01-27 2007-08-09 Sony Corp 情報処理装置および方法、並びにプログラム
US9380096B2 (en) * 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US7493383B1 (en) * 2006-12-29 2009-02-17 F5 Networks, Inc. TCP-over-TCP using multiple TCP streams
EP2213000B1 (en) * 2007-07-16 2014-04-02 Telchemy, Incorporated Method and system for content estimation of packet video streams
US7911956B2 (en) * 2007-07-27 2011-03-22 Silicon Image, Inc. Packet level prioritization in interconnection networks
FR2926939A1 (fr) * 2008-01-30 2009-07-31 Canon Kk Procede de transmission de donnees avec anticipation des acquittements, dispositif d'entree, produit programme d'ordinateur et moyen de stockage correspondants
FR2929789B1 (fr) * 2008-04-08 2010-04-30 Canon Kk Procede de gestion de mecanismes d'amelioration de transmission de flux de donnees sur un tunnel, produit programme d'ordinateur, moyen de stockage et tete de tunnel correspondants
FR2933834A1 (fr) * 2008-07-11 2010-01-15 Canon Kk Procede de gestion d'une transmission de flux de donnees sur un canal de transport d'un tunnel, tete de tunnel, produit programme d'ordinateur et moyen de stockage correspondants.
FR2939994B1 (fr) * 2008-12-12 2010-12-17 Canon Kk Procede de transmission d'un flux de donnees multi-canal sur un tunnel multi-transport, produit programme d'ordinateur, moyen de stockage et tetes de tunnel correspondantes
FR2939993B1 (fr) * 2008-12-12 2010-12-17 Canon Kk Procede de transmission d'un flux de donnees multi-canal sur un tunnel multi-transport, produit programme d'ordinateur, moyen de stockage et tetes de tunnel correspondantes
US8311092B2 (en) * 2009-02-06 2012-11-13 Broadcom Corporation Network packet aware data encoding
US8745243B2 (en) * 2009-08-03 2014-06-03 Brocade Communications Systems, Inc. FCIP communications with load sharing and failover
US8078691B2 (en) * 2009-08-26 2011-12-13 Microsoft Corporation Web page load time prediction and simulation
FR2949931B1 (fr) * 2009-09-10 2011-08-26 Canon Kk Procedes et dispositifs de transmission d'un flux de donnees, produit programme d'ordinateur et moyen de stockage correspondants.
FR2956271B1 (fr) * 2010-02-09 2012-02-17 Canon Kk Procede et dispositif de calcul de l'espace disponible dans un paquet pour le transport de flux de donnees
WO2011143094A2 (en) * 2010-05-09 2011-11-17 Citrix Systems, Inc. Systems and methods for allocation of classes of service to network connections corresponding to virtual channels
GB2481576B (en) * 2010-06-22 2013-04-03 Canon Kk Encoding of a video frame for transmission to a plurality of clients
US9203684B1 (en) * 2010-07-14 2015-12-01 Google Inc. Reduction of web page load time using HTTP header compression
US8489760B2 (en) * 2011-03-31 2013-07-16 Juniper Networks, Inc. Media file storage format and adaptive delivery system
US8285808B1 (en) * 2011-05-20 2012-10-09 Cloudflare, Inc. Loading of web resources
US9083583B1 (en) * 2011-07-01 2015-07-14 Google Inc. Latency reduction via adaptive speculative preconnection
JP6021487B2 (ja) * 2012-07-18 2016-11-09 キヤノン株式会社 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム
US9660926B2 (en) * 2014-05-30 2017-05-23 Apple Inc. Multi-stream scheduling and requests
GB2526887A (en) * 2014-06-04 2015-12-09 Canon Kk Method and device for processing web requests

Also Published As

Publication number Publication date
US20150120882A1 (en) 2015-04-30
US10791202B2 (en) 2020-09-29
JP2013251598A (ja) 2013-12-12
WO2013179584A1 (en) 2013-12-05

Similar Documents

Publication Publication Date Title
Marx et al. Same standards, different decisions: A study of QUIC and HTTP/3 implementation diversity
US10284626B2 (en) Transporting operations of arbitrary size over remote direct memory access
CN102932457B (zh) 用于利用顺序号的数据通信协调的方法和系统
JP6021487B2 (ja) 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム
EP2232791B1 (en) Tcp packet spacing
KR101541810B1 (ko) 플로우 제어를 통해 디바이스 성능을 향상시키기 위한 방법들 및 장치
JP6289092B2 (ja) 情報処理装置、その制御方法およびコンピュータプログラム
US20100049785A1 (en) Recovery of disconnected channels over a reliable protocol
KR20130107618A (ko) Usb 디바이스 장치의 데이터를 클라이언트 단말을 통해 서버로 전송하는 데이터 처리 방법 및 클라이언트 단말
Hesmans et al. An enhanced socket API for Multipath TCP
US8352957B2 (en) Apparatus and method for passing metadata in streams modules
CN106716368B (zh) 用于应用的网络分类
JP5963540B2 (ja) 情報処理装置、プログラム及び制御方法
JP2014178891A (ja) 情報システム、ファイルサーバ、情報システムの制御方法及びファイルサーバの制御方法、並びに、それら方法のプログラム及びそのプログラムを記録した記録媒体
Paro et al. Extending the ns-3 QUIC Module
CN103841042A (zh) 在高运行效率下传输数据的方法和装置
EP3249891B1 (en) File download method and play device
JP3967758B2 (ja) シーケンス番号によるデータ通信の調整
JP4394710B2 (ja) 負荷制御装置及び方法及びプログラム
JP5224964B2 (ja) 受信装置の受信方法及び受信装置並びにプログラム
Bakri et al. HTTP/2 and QUIC for Virtual Worlds and the 3D Web?
US9218351B2 (en) Information processing apparatus, storage medium, and control method
CN105162885B (zh) 资源下载方法、资源下载系统和终端
CN104754014A (zh) 一种传输资源优先级调整控制方法、装置及系统
JP2006190263A (ja) 構造化データプロトコルをバイトストリームを供するプロトコルにバインドするための機構

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150601

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160506

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160628

R151 Written notification of patent or utility model registration

Ref document number: 5963540

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees