JP2017157963A - 通信装置、通信方法及びプログラム - Google Patents

通信装置、通信方法及びプログラム Download PDF

Info

Publication number
JP2017157963A
JP2017157963A JP2016038039A JP2016038039A JP2017157963A JP 2017157963 A JP2017157963 A JP 2017157963A JP 2016038039 A JP2016038039 A JP 2016038039A JP 2016038039 A JP2016038039 A JP 2016038039A JP 2017157963 A JP2017157963 A JP 2017157963A
Authority
JP
Japan
Prior art keywords
communication
communication device
communication path
unit
control information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016038039A
Other languages
English (en)
Other versions
JP6758858B2 (ja
Inventor
暁央 木下
Akihisa Kinoshita
暁央 木下
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 JP2016038039A priority Critical patent/JP6758858B2/ja
Publication of JP2017157963A publication Critical patent/JP2017157963A/ja
Application granted granted Critical
Publication of JP6758858B2 publication Critical patent/JP6758858B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】通信路の優先度に応じた通信データ量で他の通信装置との通信ができる通信装置、通信方法及びプログラムを提供する。【解決手段】通信装置10のデータ通信部は、通信装置20−1〜20−nとの間の通信路を確立し、前記通信路を使用して通信装置20−1〜20−nから送信されるデータの量を制御するための制御情報を通信装置20−1〜20−nに通知し、前記通信路確立する際に通信装置20−1〜20−nへ通知される制御情報を、前記通信路の優先度に基づいて決定し、制御情報の通知に応じて通信装置20−1〜20−nから送信されるデータを、前記通信路を使用して受信する。【選択図】図1

Description

本発明は、通信装置間で送受信されるデータの量を制御する技術に関する。
通信装置間での通信方式の一つに、TCP(Transmission Control Protocol)/IP(Internet Protocol)がある。TCP/IPに従った通信を行う通信装置は、通信相手となる他の通信装置との間で通信路(コネクション)を確立し、通信路ごとに受信バッファを管理する。通信装置が受信したデータは受信バッファに一時的に記憶される。受信バッファには容量が定められており、通信装置のメモリ資源が各受信バッファに割り当てられる。通信装置は受信バッファの容量を超えてデータを受信することができない。
通信装置に対して受信バッファの容量を超えたデータが送信されないようにするために、TCP/IPにはウインドウ制御の機能がある。ウインドウ制御において、データの受信装置は、対象の通信路における送信を許可するデータ量を示すウインドウサイズとして受信バッファの容量をデータの送信装置に通知する。送信装置は、通知されたウインドウサイズ以下の量のデータを対象の通信路を用いて受信装置に送信する。このようにして、受信装置の受信バッファの容量を超えるデータが送信装置から送信されることを防ぐことができる。
また、特許文献1には、受信装置がコネクションを確立するとデータを受信し、受信時の状況に応じて、小さいウインドウサイズを送信装置に通知することが記載されている。
特開2011−114728号公報
しかしながら、特許文献1に記載の通信方法では、優先度の低い通信路におけるデータ受信によって優先度の高い通信路におけるデータ受信が制限される場合が考えられる。例えば、通信装置が通信路を確立する際に他の通信装置に対して送信を許可したデータ量の合計が、メモリ資源を超える場合を考える。この場合に、優先度の低いコネクションにおいて送信を許可するデータ量を変更する前に受信したデータがメモリ資源を占有してしまうと、優先度の高いコネクションにおいてデータを受信するためのメモリ資源が十分に確保できなくなる状況が発生する虞がある。
本発明は上記課題に鑑みてなされたものであり、通信路の優先度に応じた通信データ量で他の通信装置との通信が行われるようにするための技術を提供することを目的とする。
上記の課題を解決するため、本発明に係る通信装置は、例えば以下の構成を有する。すなわち、前記通信装置と他の通信装置との間の通信路を確立する確立手段と、前記確立手段により確立される前記通信路を使用して前記他の通信装置から送信されるデータの量を制御するための制御情報を前記他の通信装置に通知する通知手段と、前記確立手段が前記通信路を確立する際に前記通知手段により前記他の通信装置へ通知される制御情報を、前記通信路の優先度に基づいて決定する決定手段と、前記通知手段による制御情報の通知に応じて前記他の通信装置から送信されるデータを、前記通信路を使用して受信する受信手段とを有する。
本発明によれば、通信路の優先度に応じた通信データ量で他の通信装置との通信ができるようになる。
実施形態に係る通信システム30の構成を説明するための図である。 通信装置10のハードウェア構成を示すブロック図である。 実施形態に係る通信装置10の機能構成を示すブロック図である。 通信装置10の動作を説明するためのフローチャートである。 実施形態に係るコネクション管理部106が用いる管理テーブルの例を示す図である。
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態で説明する特徴の組み合わせの全てが本発明に必須のものとは限らない。
[システム構成]
図1は、本実施形態に係る通信システム30の構成例を示す図である。本実施形態の通信システム30は、通信装置10と、通信装置10に接続される通信装置20−1、通信装置20−2、・・・、通信装置20−nとを備える。本実施形態において、特別な説明がない場合は、通信装置20−1から通信装置20−nまでのn台の通信装置を区別せず通信装置20と記載する。通信装置10と通信装置20(他の通信装置)は有線及び/又は無線で接続され、相互に通信を行って静止画や動画等のコンテンツデータを送受信する。なお、本実施形態では通信装置10に複数の通信装置20が接続されている場合を中心に説明するが、通信装置10に接続される通信装置20は1台であってもよい。また、本実施形態では通信装置10と通信装置20とがTCP/IPに基づいて通信を行う場合を中心に説明するが、通信装置10と通信装置20は他のプロトコルに基づく通信を行ってもよい。
通信装置10及び通信装置20の具体例としては、デジタルカメラ、デジタルビデオカメラ、ネットワークカメラ、プリンタ、デジタル複合機、デジタルテレビ、プロジェクタ、携帯電話、スマートフォン、PC、及びサーバ装置などがある。例えば、通信装置10がプリンタであり通信装置20がPCである場合に、ユーザはPCを操作してプリンタでの画像の印刷を指示する。指示を受けたPCは画像をプリンタに送信し、プリンタは受信した画像を用紙に印刷する。
なお、本実施形態では通信装置10と通信装置20との通信がネットワークスイッチやルータ等の中継装置を介する場合の例を中心に説明するが、これに限らない。例えば、通信装置10と通信装置20は、Ethernet(登録商標)などの有線LAN(Local Area Network)若しくはIEEE(Institute of Electrical and Electronics Engineers)802.11シリーズに則った無線LANにより直接接続されてもよい。また、通信装置10と通信装置20とが中継装置を介して接続される場合、有線LANと無線LANの組み合わせにより接続されてもよい。また、同一LAN上で接続されるものに限らず、例えばWAN(Wide Area Network)、インターネット、及び電話用の公衆回線などを経由して接続されてもよい。また、上記のLANに代えて、例えばBluetooth(登録商標)、ZigBee(登録商標)、NFC(Near Field Communication)、及びRFID(Radio Frequency Identifier)などの無線通信機能を利用してもよい。
[ハードウェア構成]
図2は、通信装置10のハードウェア構成を示すブロック図である。なお、通信装置20も通信装置10と同様のハードウェア構成である。通信装置10は、CPU111、ROM112、RAM113、補助記憶装置114、表示部115、操作部116、通信部117、及びバス118を備える。
CPU111は、ROM112やRAM113に格納されているコンピュータプログラムやデータを用いて通信装置10全体の制御を行う。ROM112は、変更を必要としないプログラムやパラメータを格納する。RAM113は、補助記憶装置114から供給されるプログラムやデータ、及び通信部117を介して外部から取得されたデータなどを一時的に記憶する。補助記憶装置114は、例えばハードディスクドライブ装置等で構成され、コンテンツを構成するデータ(以下コンテンツデータ)などを記憶する。
表示部115は、例えば液晶ディスプレイ等で構成され、ユーザが通信装置10を操作するためのGUI(Graphical User Interface)や、通信装置20から受信したコンテンツなどを表示する。操作部116は、例えばキーボードやマウス等で構成され、ユーザによる操作を受けて各種の指示をCPU111に入力する。通信部117は、通信装置20などの外部の装置と通信を行う。例えば、通信装置10が外部の装置と有線で接続される場合には、LANケーブル等が通信部117に接続される。なお、通信装置10が外部の装置と無線通信する機能を有する場合、通信部117はアンテナを更に備える。バス118は、通信装置10の各部を繋いで情報を伝達する。
なお、本実施形態では表示部115と操作部116は通信装置10の内部に存在するが、表示部115及び操作部116の少なくとも一方が通信装置10の外部に別の装置として存在していてもよい。この場合、CPU111が、表示部115を制御する表示制御部、及び操作部116を制御する操作制御部として動作する。
[機能構成]
図3は、本実施の形態に係る通信装置10の機能構成を示すブロック図である。なお、通信装置20も通信装置10と同様の機能構成である。通信装置10は、アプリケーション制御部101、データ通信部102、ネットワークバッファ管理部103、受信バッファ管理部104、送受信部105、コネクション管理部106、及び通信制御部107を備える。各構成要素は、CPU111がROM112に格納されたプログラムをRAM113に展開して後述のフローチャートに従った処理を実行することで実現される。また例えば、CPU111を用いたソフトウェア処理の代替としてハードウェアによる処理を行う場合には、ここで説明する各構成要素に対応させた演算部や回路を構成すればよい。
アプリケーション制御部101は、通信装置10のアプリケーション層における通信を制御する。具体的には、アプリケーション制御部101は、ユーザによる入力に基づく情報をデータ通信部102に受け渡す。また、アプリケーション制御部101は、データ通信部102から受け渡された情報に基づくコンテンツをユーザに対して出力する。データ通信部102は、プロトコルスタックに従って通信するために、上位のアプリケーション層と下位のデータリンク層及び物理層との間でのデータの中継や変換を行う。また、データ通信部102は、TCPコネクションを確立したり、TCP/IPが備えるウインドウ制御などの機能を実現したりする。なお、データ通信部102は、単一の通信装置20との間でコネクションを確立してもよいし、複数の通信装置20それぞれとの間でコネクションを確立してもよい。また、データ通信部102は、単一の通信装置20との間で複数のコネクションを確立してもよい。TCP/IPのウインドウ制御においては、データ通信部102が、送信を許可するデータ量を示すウインドウサイズを、通信装置20に通知する。通信装置20は、通知されたウインドウサイズ以下の量のデータを通信装置10に送信する。
ネットワークバッファ管理部103は、通信装置10が送受信するデータを一時的に記憶する記憶領域としてのネットワークバッファを管理する。ネットワークバッファには、例えばRAM113の一部が使用される。受信バッファ管理部104は、データ通信部102が受信したデータをソケット毎(コネクション毎)に一時的に記憶するための受信バッファを管理する。データ通信部102が通信装置20と通信を行うための論理的な通信路であるコネクションを確立すると、受信バッファ管理部104は、そのコネクションに対応する受信バッファとして、ネットワークバッファの少なくとも一部を割り当てる。受信バッファのサイズは例えば64kbyte等の予め設定された値であってもよいし、コネクション毎に異なっていてもよい。通信装置10は、受信バッファ管理部104が割り当てた受信バッファの容量を超えてデータを受信することができない。
上述したTCP/IPのウインドウ制御において、通信装置10は、ウインドウサイズに受信バッファの容量を設定して通信装置20に通知する。これにより、通信装置10の受信バッファの容量を超えるデータが通信装置20から送信されることを防ぐことができる。
送受信部105は、データリンク層及び物理層における通信を制御し、通信装置20との間でIPパケットの送受信を行う。コネクション管理部106は、データ通信部102が通信装置20との間で確立したコネクションを管理する。通信制御部107は、各コネクションにおいて通信装置20からの送信が許可されるデータ量を制御する情報(制御情報)を決定する。決定された制御情報はデータ通信部102から通信装置20に通知される。例えば通信制御部107は、データ通信部が通知するウインドウサイズを、受信バッファの容量よりも小さい値に決定する。この決定の方法については後述する。
[動作フロー]
まず、TCP/IPプロトコルに基づく通信における基本的な動作を説明する。TCP/IPのプロトコル処理を行う通信装置10及び通信装置20には、通信データのパケット化や再送処理のために、ネットワークバッファが用意されている。ネットワークバッファは複数のコネクションにおいて共用され、また送信処理と受信処理でも共用される。TCP/IPに基づく送信処理を行う通信装置20は、ソケットAPI(Application Programming Interface)の送信関数 sendによって指定したユーザデータを通信装置20のネットワークバッファにコピーし、MTU(maximum transmission unit、最大伝送単位)に分割する。そして、分割データと擬似ヘッダのチェックサムを計算し、TCPヘッダとIPヘッダが追加されたTCP/IPパケットを生成する。伝送経路がEthernet(登録商標)の場合、さらに、Ethernet(登録商標)ヘッダが付加されたEthernet(登録商標)フレームを生成して通信装置10に送信する。
TCP/IPに基づく受信処理を行う通信装置10は、通信装置20からの接続要求を待ちうける。通信装置10はbacklogというキューを持ち、所定の数までの複数の接続要求をキュー内に保持することができる。通信装置10はbacklogキューに保持された接続要求に応じて通信装置20との間でスリーウェイハンドシェイクを行ってコネクションを確立する。スリーウェイハンドシェイクを行う際に通信装置10から送信されるパケットには、ウインドウサイズが設定されている。通信装置20は、確立されたコネクションにおいて、通知されたウインドウサイズ以下のデータ量のコンテンツデータを送信することができる。通信装置10は、ソケットAPIのacceptによりbacklogキューから接続要求を取り出し、その接続要求に対応するコネクションにおけるデータの受信処理を開始する。なお、ソケットAPIのacceptは、複数の接続要求に対して行うこともできる。通信装置20から送信されたコンテンツデータは、通信装置10のネットワークバッファの一部が割り当てられた受信バッファに記憶され、ソケットAPIの受信関数recvによって指定された記憶領域へ移動される。データを受信した通信装置10は、そのデータを受信できたことを示すACKパケットをデータ送信元の通信装置20に送信する。ACKにはウインドウサイズが設定されており、ACKを受信した通信装置20はウインドウサイズ以下のデータ量のデータを新たに送信することができる。
次に、図4を用いて、複数の通信装置20から複数のコネクションを用いて送信されたデータを受信するために、通信装置10が通信装置20からの送信を許可するデータ量を制御する方法について説明する。図4の処理は、通信装置10の送受信部105が通信装置20からパケットを受信したタイミングで開始される。ただし、図4の処理の開始タイミングは上記タイミングに限定されない。図4の処理は、CPU111がROM112に格納されたプログラムをRAM113に展開して実行することで実現される。なお、図4に示す処理の少なくとも一部をハードウェアにより実現してもよい。
S401では、データ通信部102が、受信したパケットが接続要求であるか否かを判定する。受信したパケットが接続要求である場合、S402に進み、コネクション管理部106は接続要求をbacklogキューに格納する。S403では、通信制御部107が、S402において格納された接続要求に対応する受信処理を開始するか否かを判定する。判定の方法については後述する。
S403において受信処理を開始する判定が行われた場合、S404に進み、データ通信部102はソケットAPIのacceptによって受信処理を開始し、そのソケットに対応するコネクションの受信バッファを設定する。データ通信部102は、ネットワークバッファ管理部103が管理するネットワークバッファの一部を確保して受信バッファに割り当て、受信バッファ管理部104により管理する。S405では、通信制御部107が、S404において設定された受信バッファのサイズをウインドウサイズに設定したSYN_ACK(確認応答)パケットを生成する。ウインドウサイズは、通信装置10がコネクションを使用した通信装置20からの送信を許可するデータ量を示す情報であり、通信装置20から送信されるデータの量を制御するために使用される。
S406では、データ通信部102が、S405において生成されたSYN_ACKパケットを接続要求の送信元である通信装置20に送信することで、ウインドウサイズを通信装置20に通知する。SYN_ACKパケットは、通信装置10が通信路(コネクション)を確立する際のスリーウェイハンドシェイクにおいて通信装置20に対して送信される情報である。接続要求に応じて送信されるこのSYN_ACKパケットに基づいて、通信装置10と通信装置20との間で通信を行うためのコネクションが確立される。S407では、コネクション管理部106が、accept処理した接続要求をbacklogキューから削除する。
S403において受信処理を開始しない判定が行われた場合、S408に進み、通信制御部107はウインドウサイズに0を設定したSYN_ACKパケットを生成する。S409では、データ通信部102が、S408において生成されたSYN_ACKパケットを送信する。ウインドウサイズが0に設定されたパケットを受信した通信装置20は通信装置10に対するデータの送信が許可されない。即ち、S409においてデータ通信部102は、通信装置20からのデータの送信を抑制するための通知を行う。このSYN_ACKパケットの送信に基づいて、通信装置10と通信装置20との間で通信を行うためのコネクションが確立される。
次に、S401において受信されたパケットが接続要求でないと判定された場合、S410に進み、データ通信部102は受信されたパケットがゼロウインドウプローブであるか否かを判定する。ゼロウインドウプローブは、通信装置10からウインドウサイズが0に設定されたパケットを受信した通信装置20が、ウインドウサイズの値が大きくなったかどうか確認するために通信装置10に送信するパケットである。受信されたパケットがゼロウインドウプローブであった場合、S403に進み、そのパケットの送信に使用されたコネクションにおける受信処理を開始するか否かを判定する。S403以降のフローは、接続要求が受信された場合の動作についての上述の説明と同様である。ただし、S406及びS409において送信される確認応答パケットは、コネクションを確立するためのSYN_ACKパケットではなく、ゼロウインドウプローブを受信したことを示すACKパケットとなる。
また、S410において受信されたパケットがゼロウインドウプローブでないと判定された場合、S411に進み、データ通信部102はパケットの受信処理を行う。このとき受信されたパケットは例えばコンテンツデータであり、以前に通知されたウインドウサイズに応じて通信装置20から送信されるデータである。データ通信部102はコネクションを使用してそのデータを受信し、受信バッファに一時記憶する。受信バッファに記憶されたデータは、データ通信部102により処理されてアプリケーション制御部101に受け渡されると、受信バッファから取り除かれる。
S412では、コネクション管理部106が、パケットの受信に使用されたコネクションを切断するか否かを判定する。コネクションを切断しない場合、図4の処理を終了する。一方、例えばS411において受信処理されたパケットがコネクションにおける最終パケットである場合などであって、コネクションを切断する判定が行われた場合には、S413に進む。S413では、コネクション管理部106が、backlogキュー内に接続要求が存在するか否かを判定する。接続要求が存在する場合、S403に進む。S403以降のフローは上述の説明と同様である。ただし、S406及びS409において送信される確認応答パケットは、対象のコネクションにおいて最後に受信されたパケットに対する確認応答パケットとなる。S413において接続要求がキュー内に存在しない場合は、図4の処理を終了する。
以上、図4で説明したように、通信装置10は、通信装置20との間で確立される各コネクションにおいて受信処理を開始するか否かを判定する。そして通信装置10は、受信処理を開始しないコネクションに対してはウインドウサイズを0に設定したパケットを送信し、受信処理を開始するコネクションに対してはウインドウサイズに受信バッファのサイズを設定したパケットを送信する。なお、図4に示した処理において通信装置10はパケットを受信する度に受信処理を開始するか否かを判定するが、判定のタイミングはこれに限らない。例えば通信装置10は、S407において接続要求をキューから削除した場合に、S403の判定を行ってもよい。
図5は、通信装置10のコネクション管理部106がコネクションの管理に用いる管理テーブルの例である。コネクション管理部106は、図4のS402において接続要求がキューに格納されると、格納されたキューを管理テーブルに登録する。そしてコネクション管理部106は、S403における受信処理の開始やS406及びS409における確認応答パケットの送信に応じて、管理テーブルを更新する。図5の例において、backlogキューに格納可能な接続要求の数は10である。コネクションIDは接続要求に応じて確立されるコネクションに割り当てられるIDを示す。処理状態は、各コネクションが受信開始状態であるか受信開始前の状態であるかを示す。受信開始状態は、accept処理が行われ、0より大きい受信バッファのサイズがウインドウサイズとして通知された状態である。受信開始前の状態は、ウインドウサイズとして0が通知された状態である。本実施形態において、コネクション管理部106は、早く受信した接続要求から順に受信開始状態に遷移させる。ただし、コネクション管理部106が接続要求を受信開始状態に遷移される順序はこれに限らず、コネクションの優先度などに基づいて遷移させてもよい。
次に、S403における判定の方法および通知されるウインドウサイズの決定方法について説明する。本実施形態において、通信制御部107は、データ通信部102がコネクションを確立する際に通信装置20へ通知されるウインドウサイズの値を、コネクションの優先度に基づいて決定する。コンテンツデータの受信を開始するより前に通知されるウインドウサイズとは、例えばスリーウェイハンドシェイクにおいて送信されるSYN_ACKパケットに設定されたウインドウサイズである。
コネクションの優先度の決定方法としては、例えば、データ通信部102が複数のコネクションに対応する複数の接続要求を受信した順序に基づいて決定する方法がある。通信制御部107は、コネクション管理部106が管理する管理テーブルを参照し、S403における判定対象のパケットに対応するコネクションの接続要求がbacklogキューの何番目に格納されているか確認する。本実施形態では、接続要求は受信された順序でbacklogキューに格納され、キューから接続要求が削除されると、それ以降に格納された接続要求の順序が繰り上がる。対象のコネクションの接続要求がキューのN番目以内に格納されている場合、コネクションの優先度は高く設定され、N番目よりも後ろに格納されている場合、コネクションの優先度は低く設定される。本実施形態において、Nの値は通信装置10のネットワークバッファのサイズ等に基づいて予め設定されている。ただしこれに限らず、通信装置10に設定されたbacklogキューの最大長や、対象のコネクションの受信バッファのサイズ、使用可能なネットワークバッファの残サイズ等に基づいて、Nの値が適宜変更されてもよい。
優先度が高く設定されたコネクションにおいて、通信装置10は受信処理を開始する。即ち、通信装置10は、ウインドウサイズに受信バッファのサイズが設定されたSYN_ACKパケットを優先度の高いコネクションを使用して送信する。一方、通信装置10は、ウインドウサイズが所定値以下(例えば0)に設定されたSYN_ACKパケットを優先度の低いコネクションを使用して送信する。これにより、優先度の低いコネクションを使用して通信装置20から送信されるデータ量を抑制することができ、優先度の低いコネクションの受信バッファのためにネットワークバッファが枯渇してしまう可能性を低減することができる。
なお、通信制御部107は、コネクションの優先度を、例えば接続要求の送信元の識別情報など、接続要求を受信した順序以外の情報に基づいて決定してもよい。また、通信制御部107は、各コネクションの受信バッファの空き容量とコネクションの優先度とに基づいて、ウインドウサイズの値を決定してもよい。また、通信制御部107は、コネクション管理部106を参照し、通信装置10により確立されているコネクションの数や受信処理が行われているコネクションの数などに基づいて、ウインドウサイズの値を決定してもよい。確立されているコネクションは、SYN_ACKの送受信が行われたコネクションであり、受信処理が行われているコネクションは、受信バッファが設定されてコンテンツデータの送受信が開始されたコネクションである。
例えば、通信装置10は、対象のコネクションに対応する接続要求よりも前に受信された接続要求に応じて確立されているコネクションの数が閾値よりも多い場合に、通信装置20からの対象のコネクションを使用したデータの送信を抑制させる。この抑制のための通信装置10から通信装置20への通知は、通信装置10が対象のコネクションを使用してコンテンツデータの受信を開始する前に行われる。これにより、通信装置20から対象のコネクションにおいて最初に送信されるコンテンツデータがネットワークバッファを逼迫させてしまうのを防ぐことができる。その結果、通信装置10が受信バッファをネットワークバッファから確保できずに通信装置20から送信されるデータを受信できなくなる事態を減らすことができる。
以上説明したように、本実施形態に係る通信装置10は、通信装置20との間の通信路を確立し、通信装置20から該通信路を使用して送信されるデータの量を制御するための情報を通信装置20に通知する。そして通信装置10は、通知に応じて通信装置20から送信されるデータを、該通信路を使用して受信する。ここで通信装置10は、該通信路を使用しての受信を開始するより前に通知する、通信装置20から該通信路を使用して送信されるデータの量を制御するための情報を、該通信路の優先度に基づいて決定する。これにより、通信路の優先度に応じた通信データ量で通信装置20との通信が行われ、優先度の低い通信路におけるデータ受信によって優先度の高い通信路におけるデータ受信が失敗する可能性を低減することができる。
なお、本実施形態では、通信装置10がウインドウサイズを0に設定して通知することによって、通信装置20から送信されるデータ量を制御する場合を中心に説明したが、これに限らない。例えば、通信装置10は、HTTP等のプロトコルにおいて規定された所定のサイズ以下のパケット(例えばGETリクエスト等)だけが送信装置から送信されるように、ウインドウサイズを設定してもよい。また、通信装置10は、通信装置20から送信されるデータの量を制御するための制御情報に、ウインドウサイズ以外の情報を利用してもよい。例えば通信装置10は、通信装置20から送信されるデータの送信単位であるセグメントの許可される最大サイズを指定したパケットを送信することで、通信装置20から送信されるデータ量を抑制してもよい。また、本実施形態では通信装置10と通信装置20とがTCP/IPに基づいて通信を行う場合を中心に説明したが、使用するプロトコルはこれに限らない。例えば、通信装置10と通信装置20はUDPに基づいた通信を行い、HTTPなどTCPよりも上位の層のプロトコルにおいて作成されたメッセージによって、本実施形態で説明した送信データ量の制御などを実現してもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC等)によっても実現可能である。また、そのプログラムをコンピュータにより読み取り可能な記録媒体に記録して提供してもよい。
10 通信装置
102 データ通信部
106 コネクション管理部
107 通信制御部

Claims (15)

  1. 通信装置であって、
    前記通信装置と他の通信装置との間の通信路を確立する確立手段と、
    前記確立手段により確立される前記通信路を使用して前記他の通信装置から送信されるデータの量を制御するための制御情報を前記他の通信装置に通知する通知手段と、
    前記確立手段が前記通信路を確立する際に前記通知手段により前記他の通信装置へ通知される制御情報を、前記通信路の優先度に基づいて決定する決定手段と、
    前記通知手段による制御情報の通知に応じて前記他の通信装置から送信されるデータを、前記通信路を使用して受信する受信手段とを有することを特徴とする通信装置。
  2. 前記通知手段は、前記決定手段により決定された制御情報を、前記確立手段が前記通信路を確立する際に前記他の通信装置に対して送信される確認応答に含めることで前記他の通信装置に通知することを特徴とする請求項1に記載の通信装置。
  3. 前記通知手段により通知される制御情報は、前記他の通信装置からの前記通信路を使用した送信を許可するデータ量を示すウインドウサイズであることを特徴とする請求項1又は2に記載の通信装置。
  4. 前記通知手段により通知される制御情報は、前記他の通信装置から前記通信路を使用して送信されるデータの送信単位であるセグメントの許可される最大サイズを指定する情報であることを特徴とする請求項1又は2に記載の通信装置。
  5. 前記他の通信装置からの接続要求を受信する第2受信手段を有し、
    前記確立手段は、前記第2受信手段が受信した接続要求に応じて前記通信路を確立し、
    前記通信路の優先度は、前記第2受信手段が複数の通信路に対応する複数の接続要求を受信した順序に基づいて定まることを特徴とする請求項1乃至4の何れか1項に記載の通信装置。
  6. 前記決定手段は、前記確立手段が前記通信路を確立する際に前記通知手段により通知される制御情報を、前記通信路の優先度と前記確立手段により確立されている通信路の数とに基づいて決定することを特徴とする請求項1乃至5の何れか1項に記載の通信装置。
  7. 前記受信手段が受信したデータをバッファに記憶する記憶手段を有し、
    前記決定手段は、前記確立手段が前記通信路を確立する際に前記通知手段により通知される制御情報を、前記バッファの空き容量と前記通信路の優先度とに基づいて決定することを特徴とする請求項1乃至6の何れか1項に記載の通信装置。
  8. 前記決定手段は、前記第2受信手段により前記通信路に対応する接続要求よりも前に受信された接続要求に応じて前記確立手段により確立されている通信路の数が閾値よりも多い場合に、前記確立手段が前記通信路を確立する際に前記通知手段により通知される制御情報を、前記他の通信装置からの前記通信路を使用したデータの送信を抑制する情報となるように決定することを特徴とする請求項5に記載の通信装置。
  9. 前記確立手段により確立される通信路は、TCPのコネクションであることを特徴とする請求項1乃至8の何れか1項に記載の通信装置。
  10. 前記確立手段が前記通信路を確立する際に前記他の通信装置に対して送信される情報は、TCPのスリーウェイハンドシェイクにおいて送信されるパケットであることを特徴とする請求項2に記載の通信装置。
  11. 前記通知手段により通知される制御情報は、TCPよりも上位の層のプロトコルに基づいて作成されたメッセージであることを特徴とする請求項1に記載の通信装置。
  12. 通信装置と他の通信装置との間の通信路を確立する確立工程と、
    前記確立工程において確立される前記通信路を使用して前記他の通信装置から送信されるデータの量を制御するための制御情報を前記他の通信装置に通知する通知工程と、
    前記確立工程において前記通信路が確立される際に前記通知工程において前記他の通信装置へ通知される制御情報を、前記通信路の優先度に基づいて決定する決定工程と、
    前記通知工程における制御情報の通知に応じて前記他の通信装置から送信されるデータを、前記通信路を使用して受信する受信工程とを有することを特徴とする通信方法。
  13. 前記通知工程は、前記決定工程において決定された制御情報を、前記確立工程において前記通信路が確立される際に前記他の通信装置に対して送信される確認応答に含めることで前記他の通信装置に通知することを特徴とする請求項12に記載の通信方法。
  14. 前記通知工程において通知される制御情報は、前記他の通信装置からの前記通信路を使用した送信を許可するデータ量を示すウインドウサイズであることを特徴とする請求項12又は13に記載の通信方法。
  15. コンピュータを請求項1乃至11の何れか1項に記載の通信装置として動作させるためのプログラム。
JP2016038039A 2016-02-29 2016-02-29 通信装置、通信方法及びプログラム Active JP6758858B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016038039A JP6758858B2 (ja) 2016-02-29 2016-02-29 通信装置、通信方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016038039A JP6758858B2 (ja) 2016-02-29 2016-02-29 通信装置、通信方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2017157963A true JP2017157963A (ja) 2017-09-07
JP6758858B2 JP6758858B2 (ja) 2020-09-23

Family

ID=59810483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016038039A Active JP6758858B2 (ja) 2016-02-29 2016-02-29 通信装置、通信方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6758858B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019176284A (ja) * 2018-03-28 2019-10-10 日本電気株式会社 通信装置、通信方法、プログラム
US11431255B2 (en) * 2017-09-28 2022-08-30 Nec Corporation Analysis system, analysis method, and program storage medium

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000124950A (ja) * 1998-10-12 2000-04-28 Nec Corp 送受信パラメータ設定方法および送受信パラメータ設定装置
JP2000151707A (ja) * 1998-11-18 2000-05-30 Kdd Corp データ転送制御方法
JP2003018205A (ja) * 2001-07-03 2003-01-17 Nec Commun Syst Ltd Tcpプロファイル設定方法およびプログラム
JP2003125022A (ja) * 2001-10-18 2003-04-25 Sony Corp 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
JP2005072933A (ja) * 2003-08-25 2005-03-17 Renesas Technology Corp ネットワーク装置
JP2008059040A (ja) * 2006-08-29 2008-03-13 Nippon Telegr & Teleph Corp <Ntt> 負荷制御システムおよび方法
JP2011250223A (ja) * 2010-05-28 2011-12-08 Nec Corp ゲートウェイ装置およびゲートウェイ装置におけるパケットバッファ管理方法
JP2012020455A (ja) * 2010-07-13 2012-02-02 Murata Machinery Ltd ネットワークプリンタ
JP2015106796A (ja) * 2013-11-29 2015-06-08 キヤノン株式会社 通信装置、通信制御方法及びプログラム
JP2016132158A (ja) * 2015-01-19 2016-07-25 セイコーインスツル株式会社 印刷装置、およびコンピュータプログラム
JP2017157964A (ja) * 2016-02-29 2017-09-07 キヤノン株式会社 通信装置、制御方法、および、プログラム

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000124950A (ja) * 1998-10-12 2000-04-28 Nec Corp 送受信パラメータ設定方法および送受信パラメータ設定装置
JP2000151707A (ja) * 1998-11-18 2000-05-30 Kdd Corp データ転送制御方法
JP2003018205A (ja) * 2001-07-03 2003-01-17 Nec Commun Syst Ltd Tcpプロファイル設定方法およびプログラム
JP2003125022A (ja) * 2001-10-18 2003-04-25 Sony Corp 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
JP2005072933A (ja) * 2003-08-25 2005-03-17 Renesas Technology Corp ネットワーク装置
JP2008059040A (ja) * 2006-08-29 2008-03-13 Nippon Telegr & Teleph Corp <Ntt> 負荷制御システムおよび方法
JP2011250223A (ja) * 2010-05-28 2011-12-08 Nec Corp ゲートウェイ装置およびゲートウェイ装置におけるパケットバッファ管理方法
JP2012020455A (ja) * 2010-07-13 2012-02-02 Murata Machinery Ltd ネットワークプリンタ
JP2015106796A (ja) * 2013-11-29 2015-06-08 キヤノン株式会社 通信装置、通信制御方法及びプログラム
JP2016132158A (ja) * 2015-01-19 2016-07-25 セイコーインスツル株式会社 印刷装置、およびコンピュータプログラム
JP2017157964A (ja) * 2016-02-29 2017-09-07 キヤノン株式会社 通信装置、制御方法、および、プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11431255B2 (en) * 2017-09-28 2022-08-30 Nec Corporation Analysis system, analysis method, and program storage medium
JP2019176284A (ja) * 2018-03-28 2019-10-10 日本電気株式会社 通信装置、通信方法、プログラム
JP7143609B2 (ja) 2018-03-28 2022-09-29 日本電気株式会社 通信装置、通信方法、プログラム

Also Published As

Publication number Publication date
JP6758858B2 (ja) 2020-09-23

Similar Documents

Publication Publication Date Title
US11228937B2 (en) User-plane enhancements supporting in-bearer sub-flow QoS differentiation
US20190312938A1 (en) Data Transmission Method And Apparatus
EP3232638B1 (en) Data transmission method, apparatus and system
RU2565583C1 (ru) Способ для передачи данных, устройство точки разгрузки, пользовательское оборудование и система
JP7177259B2 (ja) データ伝送方法及び装置
EP4181485A9 (en) Radio bearer switching in radio access
EP3177065A1 (en) Data transmission method and base station
JP6291834B2 (ja) 通信装置、通信方法および通信システム
CN112566164B (zh) 一种通信系统及服务质量控制方法
EP3358880A1 (en) Method, device and system for controlling quality of service
KR101982329B1 (ko) 통신 장치, 통신 방법 및 통신 시스템
JP2017073636A (ja) 中継装置、及び中継方法
JP6576099B2 (ja) 通信装置、通信装置の制御方法、プログラム、および、通信システム
JP6758858B2 (ja) 通信装置、通信方法及びプログラム
EP3843481A1 (en) Communication device, method for controlling communication device and program
US20120198090A1 (en) Communication device
EP4044535A1 (en) Method for acquiring common maximum segment size (mss), and device
JP2017038297A (ja) 通信装置、通信方法、及び通信システム
WO2020076296A1 (en) Mptcp friendly cellular multi-connectivity architecture with transparent proxy
EP3787259B1 (en) Message processing method, apparatus and system
JP2018142850A (ja) 通信装置、通信方法及びプログラム
WO2023045839A1 (zh) 通信方法、装置、核心网设备及通信设备
WO2015052870A1 (ja) 端末装置、端末装置制御方法、および端末装置制御プログラム
WO2015027404A1 (zh) 数据传输处理方法和装置
WO2016157914A1 (ja) ネットワークシステム、通信制御方法、及び、記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200528

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200902

R151 Written notification of patent or utility model registration

Ref document number: 6758858

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151