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

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

Info

Publication number
JP7111162B2
JP7111162B2 JP2020530099A JP2020530099A JP7111162B2 JP 7111162 B2 JP7111162 B2 JP 7111162B2 JP 2020530099 A JP2020530099 A JP 2020530099A JP 2020530099 A JP2020530099 A JP 2020530099A JP 7111162 B2 JP7111162 B2 JP 7111162B2
Authority
JP
Japan
Prior art keywords
packet
transmitting device
transmission
receiving device
transmitting
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
JP2020530099A
Other languages
English (en)
Other versions
JPWO2020012973A1 (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2020012973A1 publication Critical patent/JPWO2020012973A1/ja
Application granted granted Critical
Publication of JP7111162B2 publication Critical patent/JP7111162B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • 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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1854Scheduling and prioritising arrangements
    • 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/12Avoiding congestion; Recovering from congestion
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、通信制御装置、方法、プログラム、及びコンピュータに読み取り可能な非一時的記録媒体に関する。
近年、スマートフォンやタブレット等の高機能なモバイル端末の普及に伴い、モバイルネットワーク経由のトラヒックが増加している。
多くの通信で使用されている送信速度制御(例えば、CUBIC及びNewReno等)では、モバイルネットワークにおける急激な帯域変動に追従することが困難である。そのため、帯域が十分に使われず、スループットが低下し得る。
送信装置から受信装置へパケットを中継する中継装置において送信速度を調整する技術がある。例えば、特許文献1には、中継装置において、送信装置から受信したデータに対して本来ならば受信装置によって当該送信装置へ送信される確認応答(Acknowledgement:ACK)を受信装置に代わって当該送信装置へ送信し、送信速度を調整して当該データを受信装置へ送信する技術が、開示されている。特許文献2にも、概ね同様の技術が開示されている。特許文献3には、中継装置において、ネットワークの可用帯域を推定し、当該可用帯域に基づいて目標送信速度を推定し、当該目標送信速度が現在の送信速度に近づくように、送信装置へのACKパケットの送信の頻度を調整する技術が、開示されている。
特開2003-124984号公報 国際公開第2015/048999号 特開2018-067788号公報
特許文献1-3の技術は、中継装置が代理としてACKパケットを生成又は改変し、当該ACKを送信装置へ送信できることを前提としている。
しかし、使用されるプロトコルに起因して、中継装置がACKパケットを生成及び改変できない場合もある。一例として、ACKパケットが暗号化又は認証され、中継装置が当該ACKパケットを生成及び改変し、送受信できなくなり得る。また、ACKパケットが暗号化される場合には、中継装置はACKパケットの確認応答番号を把握できず、パケットが正常に届いたのか、ロスしたのかを識別できないので、ロスパケットの再送を促進するACKパケットを送信できなくなる。このような場合には、特許文献1-3の技術を適用することは困難となる。
本発明の目的は、使用されるプロトコルによらず送信装置と受信装置との間の通信のスループットを向上させることを可能にする通信制御装置及び方法を提供することにある。
本発明の一態様に係る通信制御装置は、送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、上記送信装置から受信する第1通信処理部と、上記パケットを上記受信装置へ送信する第2通信処理部と、を備え、上記第2通信処理部は、上記パケットのための確認応答パケットであって、上記受信装置と上記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、上記受信装置から受信し、上記第1通信処理部は、上記確認応答パケットを上記送信装置へ送信し、上記通信制御装置は、上記送信装置が送信速度を変更するように上記パケット又は上記確認応答パケットの制御を行う制御部と、を備える。
本発明の一態様に係る方法は、送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、上記送信装置から受信することと、上記パケットを上記受信装置へ送信することと、上記パケットのための確認応答パケットであって、上記受信装置と上記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、上記受信装置から受信することと、上記確認応答パケットを上記送信装置へ送信することと、上記送信装置が送信速度を変更するように上記パケット又は上記確認応答パケットの制御を行うことと、を含む。
本発明の一態様に係るプログラムは、送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、前記パケットを前記受信装置へ送信することと、前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、前記確認応答パケットを前記送信装置へ送信することと、前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、をプロセッサに実行させるプログラムである。
本発明の一態様に係るコンピュータに読み取り可能な非一時的記録媒体は、送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、前記パケットを前記受信装置へ送信することと、前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、前記確認応答パケットを前記送信装置へ送信することと、前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、をプロセッサに実行させるプログラムを記録したコンピュータに読み取り可能な非一時的記録媒体である。
本発明によれば、使用されるプロトコルによらず送信装置と受信装置との間の通信のスループットを向上させることが可能になる。なお、本発明により、当該効果の代わりに、又は当該効果とともに、他の効果が奏されてもよい。
CUBICにおける輻輳ウィンドウ(cwnd)の変化の例を説明するための説明図である。 BBRにおける送信データ量の調整の手法を説明するための説明図である。 無線帯域の変動と送信速度制御(CUBIC)によるスループットの変化の例を示すグラフである。 QUICパケットの例を説明するための説明図である。 実施形態に係るシステムの概略的な構成の一例を示す説明図である。 第1の実施形態に係る通信制御装置の概略的な機能構成の例を示すブロック図である。 第1の実施形態に係る通信制御装置の概略的なハードウェア構成の例を示すブロック図である。 第1の実施形態に係る送信装置10から受信装置20へのパケットの送信の例を説明するためのシーケンス図である。 第1の実施形態に係る送信タイミングの調整の第1の例を説明するためのシーケンス図である。 第1の実施形態に係る送信タイミングの調整の第2の例を説明するためのシーケンス図である。 第1の実施形態に係る送信タイミングの調整の第3の例を説明するためのシーケンス図である。 第1の実施形態に係るパケットの送信順序の調整の例を説明するためのシーケンス図である。 第1の実施形態に係るACKパケットの一部の破棄の例を説明するためのシーケンス図である。 第2の実施形態に係る通信制御装置の概略的な機能構成の例を示すブロック図である。
以下、添付の図面を参照して本発明の実施形態を詳細に説明する。なお、本明細書及び図面において、同様に説明されることが可能な要素については、同一の符号を付することにより重複説明が省略され得る。
説明は、以下の順序で行われる。
1.関連技術
2.実施形態に係るシステムの構成
3.第1の実施形態
3.1.通信制御装置の機能構成
3.2.通信制御装置のハードウェア構成
3.3.技術的特徴
4.第2の実施形態
4.1.通信制御装置の機能構成
4.2.通信制御装置のハードウェア構成
4.3.技術的特徴
この開示において、「A及び/又はB」という表現は、「AとBとの両方」(both A and B)又は「AとBとのいずれか一方」(either A or B)を意味する。
<<1.関連技術>>
図1~図4を参照して、本発明の実施形態に関連する技術を説明する。
(1)CUBIC
CUBICは、Linux(登録商標) kernel 2.6.19以降のTCP(Transmission Control Protocol)で標準的に用いられている輻輳制御方式である。CUBICは、パケットのロスの有無に基づいて送信速度を制御する方式であり、ロスベースの方式と言える。
図1は、CUBICにおける輻輳ウィンドウ(Congestion Window:cwnd)の変化の例を説明するための説明図である。
まず、スロースタートフェーズでは、送信装置は、ACKの受信ごとにcwndを1パケットだけ大きくする。このフェーズでは、cwndは時間軸で指数関数的に増加する。この増加は、cwndが所定の閾値(初期ssthresh)に達するまで続く。
次に、輻輳回避フェーズでは、送信装置は、正常にACKを受信している限り、時間の経過に応じて3次関数的にcwndを増加させる。一方、送信装置は、同一パケットに対する重複した確認応答(DupACK)を3回受信した場合には、軽度の輻輳と判断してcwndを一定割合(例えば3割)だけ減少させ、タイムアウトの場合には、重度の輻輳と判断してcwndを2パケットにする。図1の例では、輻輳回避フェーズにおいて、送信装置は、正常にACKを受信している間は、cwndを増加させているが、輻輳に伴うDupACK等の発生に応じて、cwndを減少させている。
このように、CUBICでは、送信装置は、ACKの受信状況に応じてcwndを増減させる。即ち、送信装置は、ACKの受信状況に応じて送信速度を変更する。
(2)BBR
BBR(Bottleneck Bandwidth and Round-trip propagation time)は、近年のTCPやQUIC等で利用可能な輻輳制御方式である。BBRは、パケットの送受信から推定されるネットワーク性能に基づいて送信速度を制御する方式であり、ファンクションベースの方式と言える。
具体的には、BBRでは、送信装置は、データを送信しながらネットワーク性能を推定し、推定結果から送信データ量を決定する。CUBICとは異なり、パケットのロスが発生しても、送信データ量の制御は行われない。
BBRでは、送信データ量の「ペース」と「上限」とを調整してデータが送信され、「可用帯域」と「通信遅延」が継続的に推定される。具体的には、図2に示されるように、送信装置は、「STARTUP」により、ペースを密に、上限を大きくし、「DRAIN」により、ペースを疎に、上限を大きくし、「PROBE_BW」により、ペースを普通(微変動)に、上限を普通にし、「PROBE_RTT」により、ペースを普通に、上限を極小にする。
送信装置は、一定時間内の「到達確認データ量÷経過時間」の最大値を「可用帯域」として推定し、一定時間内のRTT(Round Trip Time)の最小値を「通信遅延」として推定する。「可用帯域」は、BtlBw (Bottleneck Bandwidth)と呼ばれ、「通信遅延」は、RTprop (Round-Trip propagation time):と呼ばれる。
さらに、送信装置は、「可用帯域」と「通信遅延」とを乗算することにより「送信データ量」を算出する。この「送信データ量」は、BDP(Bandwidth-Delay Product)と呼ばれる。
(3)モバイル網におけるスループット
近年、スマートフォンやタブレット等の高機能なモバイル端末の普及に伴い、モバイルネットワーク経由のトラヒックが増加している。多くの通信で使用されている送信速度制御(例えば、CUBIC及びNewReno等)では、モバイルネットワークにおける急激な帯域変動に追従することが困難である。
図3は、無線帯域の変動と送信速度制御(CUBIC)によるスループットの変化の例を示すグラフである。図3を参照すると、無線帯域の変動に応じて、CUBICによる送信速度制御(CUBIC)によりスループットが変化しているが、当該無線帯域の変動が激しいため、スループットは十分に追従できていない。
(4)QUIC
QUIC(Quick UDP Internet Connections)は、トランスポートプロトコルであり、UDP(User Datagram Protocol)の上位レイヤプロトコルとして用いられる。QUICは、中間装置でのパケットの生成や改変といった操作が非常に困難なパケットの構成となっている。
図4は、QUICパケットの例を説明するための説明図である。図4を参照すると、UDPパケットのSDU(Service Data Unit)として、QUICパケットが示されている。QUICパケットは、QUICパケットヘッダとペイロードとを含み、当該ペイロードは、1つ以上のQUICフレームを含む。各QUICフレームは、QUICフレームヘッダとQUICデータとを含む。QUICパケット内のペイロードは、暗号化される。また、QUICパケットヘッダは、暗号化されないが認証され、改変不可である。
<<2.実施形態に係るシステムの構成>>
図5を参照して、本発明の実施形態に係るシステムの構成の例を説明する。
図5は、本発明の実施形態に係るシステム1の概略的な構成の一例を示す説明図である。図5を参照すると、システム1は、送信装置10、受信装置20及び通信制御装置100を含む。通信制御装置100は、中継装置と呼ばれてもよい。
送信装置10は、パケットを受信装置20へ送信する。通信制御装置100は、送信装置10と受信装置20との間に位置し、上記パケットを転送(又は中継)する。具体的には、通信制御装置100は、送信側ネットワーク30を介して送信装置10から上記パケットを受信し、受信側ネットワーク40を介して受信装置20へ上記パケットを送信する。例えば、上記パケットは、データパケットである。
一例として、ユーザがコンテンツをダウンロードする場合に、送信装置10は、サーバであってもよく、受信装置20は、パーソナルコンピュータ(PC)又はスマートフォンであってもよい。この場合に、受信側ネットワーク40は、モバイルネットワークであってもよく、インターネットであってもよく、又は、インターネット及びモバイルネットワークを含んでもよい。あるいは、ユーザがコンテンツをアップロードする場合には、送信装置10は、パーソナルコンピュータ(PC)又はスマートフォンであってもよく、受信装置20は、サーバであってもよい。当然ながら、送信装置10及び受信装置20はこれらの例に限定されない。
送信装置10は、送信制御方式を使用して送信速度を制御する。一例として、上記送信制御方式は、パケットのロスの有無に基づいて送信速度を制御する第1の送信制御方式(例えばCUBIC等のロスベースの送信制御方式)である。あるいは、上記送信制御方式は、パケットの送受信から推定されるネットワーク性能に基づいて送信速度を制御する第2の送信制御方式(例えばBBR等のファンクションベースの送信制御方式)である。当然ながら、上記送信制御方式は、これらの例には限定されない。なお、上記送信制御方式は、輻輳制御方式とも呼ばれ得る。
<<3.第1の実施形態>>
図6~図12を参照して、本発明の第1の実施形態を説明する。
<3.1.通信制御装置の機能構成>
図6は、第1の実施形態に係る通信制御装置100の概略的な機能構成の例を示すブロック図である。図6を参照すると、通信制御装置100は、第1通信処理部110、第2通信処理部120、現在送信速度推定部130、目標送信速度推定部140、送信制御推定部150及び制御部160を備える。
第1通信処理部110は、パケットを送受信する。例えば、第1通信処理部110は、送信装置10からパケット(例えばデータパケット)を受信し、送信装置10へパケット(例えばACKパケット)を送信する。
第2通信処理部120は、パケットを送受信する。例えば、第2通信処理部120は、受信装置20へパケット(例えばデータパケット)を送信し、受信装置20からパケット(例えばACKパケット)を受信する。
第1通信処理部110及び第2通信処理部120は、例えば、1つ以上のプロトコルレイヤの処理を行う。具体的には、例えば、当該1つ以上のプロトコルレイヤは、レイヤ3(ネットワークレイヤ)以上のプロトコルレイヤを含む。上記1つ以上のプロトコルレイヤは、レイヤ2以下のプロトコルレイヤをさらに含んでもよい。あるいは、上記1つ以上のプロトコルレイヤは、レイヤ2以下のプロトコルレイヤのみを含んでもよい。また、第1通信処理部110及び第2通信処理部120は、1つの通信処理部として統合されていてもよい。
現在送信速度推定部130は、通信制御装置100が転送しているパケットに係るセッション又はストリームの各々について、送信装置10と受信装置20との間の現在の送信速度を推定する。
目標送信速度推定部140は、通信制御装置100が転送しているパケットに係るセッション又はストリームの各々について、送信装置10と受信装置20との間の目標送信速度を推定する。
送信制御推定部150は、通信制御装置100が転送しているパケットに係るセッション又はストリームの各々について、送信装置10により使用されている送信制御方式を推定する。
制御部160は、送信装置から受信装置へ送信されるパケットについての制御を行う。例えば、当該制御は、上記パケットのためのACKパケット(第2通信処理部120により受信装置20から受信され、第1通信処理部110により送信装置10へ送信されるACKパケット)又は上記パケット(第1通信処理部110により送信装置10から受信され、第2通信処理部120により受信装置20へ送信されるデータパケット)の制御である。制御部160は、第1通信処理部110又は第2通信処理部120の動作を制御することにより、上記ACKパケット又は上記パケットの間接的な制御を行ってもよい。あるいは、制御部160は、第1通信処理部110と第2通信処理部120との間で上記ACKパケット又は上記パケットを直接的に処理することにより、上記ACKパケット又は上記パケットの直接的な制御を行ってもよい。
第1通信処理部110、第2通信処理部120、現在送信速度推定部130、目標送信速度推定部140、送信制御推定部150及び制御部160についてのより具体的な動作は、第1の実施形態の技術的特徴として後に説明する。
<3.2.通信制御装置のハードウェア構成>
図7は、第1の実施形態に係る通信制御装置100の概略的なハードウェア構成の例を示すブロック図である。図7を参照すると、通信制御装置100は、プロセッサ210、メインメモリ220、ストレージ230、通信インタフェース240及び入出力インタフェース250を備える。プロセッサ210、メインメモリ220、ストレージ230、通信インタフェース240及び入出力インタフェース250は、バス260を介して互いに接続されている。
プロセッサ210は、メインメモリ220から読み出されるプログラムを実行する。一例として、プロセッサ210は、CPU(Central Processing Unit)である。
メインメモリ220は、プログラム及び各種データを記憶する。一例として、メインメモリ220は、RAM(Random Access Memory)である。
ストレージ230は、プログラム及び各種データを記憶する。一例として、ストレージ230は、SSD(Solid State Drive)及び/又はHDD(Hard Disk Drive)を含む。
通信インタフェース240は、他の装置との通信のためのインタフェースである。一例として、通信インタフェース240は、ネットワークアダプタ又はネットワークインタフェースカードである。
入出力インタフェース250は、キーボード等の入力装置、及びディスプレイ等の出力装置との接続のためのインタフェースである。
第1通信処理部110及び第2通信処理部120は、プロセッサ210及びメインメモリ220により実装されてもよく、あるいは、プロセッサ210、メインメモリ220及び通信インタフェース240により実装されてもよい。現在送信速度推定部130、目標送信速度推定部140、送信制御推定部150及び/又は制御部160は、プロセッサ210及びメインメモリ220により実装されてもよい。
当然ながら、通信制御装置100のハードウェア構成はこの例に限定されない。通信制御装置100は、他のハードウェア構成により実装されてもよい。
あるいは、通信制御装置100は、仮想化されていてもよい。即ち、通信制御装置100は、仮想マシンとして実装されてもよい。この場合に、通信制御装置100(仮想マシン)は、プロセッサ及びメモリ等を含む物理マシン(ハードウェア)及びハイパーバイザ上で仮想マシンとして動作してもよい。
通信制御装置100は、プログラム(命令)を記憶するメモリ(メインメモリ220)と、当該プログラム(命令)を実行可能な1つ以上のプロセッサ(プロセッサ210)とを含んでもよい。当該1つ以上のプロセッサは、上記プログラムを実行して、第1通信処理部110、第2通信処理部120、現在送信速度推定部130、目標送信速度推定部140、送信制御推定部150及び/又は制御部160の動作を行ってもよい。上記プログラムは、第1通信処理部110、第2通信処理部120、現在送信速度推定部130、目標送信速度推定部140、送信制御推定部150及び/又は制御部160の動作をプロセッサに実行させるためのプログラムであってもよい。
<3.3.技術的特徴>
図8~図12を参照して、第1の実施形態の技術的特徴を説明する。
(1)パケットの中継
通信制御装置100(第1通信処理部110)は、送信装置10から受信装置20へ送信されるパケットを送信装置10から受信する。そして、通信制御装置100(第2通信処理部120)は、上記パケットを受信装置20へ送信する。
例えば、上記パケットは、データパケットである。例えば、上記パケットは、パケットデータユニット(PDU)である。上記パケットは、パケットと呼ばれる代わりに、フレーム、データグラム又はセグメント等の他の類似の呼称で呼ばれてもよい。
さらに、通信制御装置100(第2通信処理部120)は、上記パケットのための確認応答(ACK)パケットを受信装置20から受信する。そして、通信制御装置100(第1通信処理部110)は、上記確認応答(ACK)パケットを送信装置10へ送信する。
図8は、第1の実施形態に係る送信装置10から受信装置20へのパケットの送信の例を説明するためのシーケンス図である。送信装置10は、パケット(データパケット)51を受信装置20へ送信する(S301、S303)。この際に、通信制御装置100は、パケット51を送信装置10から受信し(S301)、パケット51を受信装置20へ送信する(S303)。即ち、通信制御装置100は、送信装置10から受信装置20へパケット51を転送(又は中継)する。さらに、受信装置20は、パケット51を受信し(S303)、パケット51についてのACKパケット53を送信装置10へ送信する(S305、S307)。この際に、通信制御装置100は、ACKパケット53を受信装置20から受信し(S305)、ACKパケット53を送信装置10へ送信する(S307)。即ち、通信制御装置100は、受信装置20から送信装置10へパケット53を転送(又は中継)する。
(2)パケット及び確認応答(ACK)パケット
送信装置10から受信装置20へ送信される上記パケットは、送信装置10と受信装置20との間の中継点(例えば通信制御装置100等)において生成及び改変できないパケットである。
さらに、上記パケットのための確認応答(ACK)パケットは、受信装置20と送信装置10との間の中継点において生成及び改変できないACKパケットである。
より具体的には、例えば、上記パケット及び上記ACKパケットは、少なくとも一部が暗号化され又は認証される。とりわけ、上記ACKパケットの暗号化され又は認証される一部は、送信装置10への確認応答のための情報(例えば確認応答番号等)を含む。
第1の例として、送信装置10は、少なくとも一部が認証されたパケットを送信し、受信装置20は、少なくとも一部が認証されたACKパケットを送信する。この場合には、当該パケット及び当該ACKパケットは認証されているので、通信制御装置100は、上記パケット及び上記ACKパケットを生成及び改変することができない。
第2の例として、送信装置10は、少なくとも一部が暗号化されたパケットを送信し、受信装置20は、少なくとも一部が暗号化されたACKパケットを送信する。この場合には、当該パケット及び当該ACKパケットは暗号化されているので、通信制御装置100は、上記パケット及び上記ACKパケットを生成及び改変することができない。
一例として、上記パケットは、(例えば図4に示されるような)QUICパケットであり、上記パケットについてのACKパケットも、QUICパケットである。この場合に、例えば、送信装置10への確認応答のための情報(例えば確認応答番号)は、ACKパケット(QUICパケット)の認証されたヘッダ、又は、ACKパケット(QUICパケット)の暗号化されたペイロードに含まれる。別の例として、上記パケットは、(例えば図4に示されるような)QUICフレームであってもよく、上記パケットについてのACKパケットも、QUICフレームであってもよい。この場合に、送信装置10への確認応答のための情報(例えば確認応答番号)は、暗号化されたACKパケット(QUICフレーム)に含まれてもよい。
(3)パケットについての制御
通信制御装置100(制御部160)は、送信装置10から受信装置20へ送信される上記パケットについての制御であって、送信装置10に送信速度を変更させる当該制御を行う。
例えば、上記制御は、上記パケットのためのACKパケット又は上記パケットの制御である。
(3-1)現在の送信速度及び目標送信速度に基づく制御
・現在の送信速度の推定
例えば、通信制御装置100(現在送信速度推定部130)は、送信装置10の現在の送信速度を推定する。
例えば、通信制御装置100(現在送信速度推定部130)は、送信装置10から受信されるパケットのヘッダに含まれるタイムスタンプ情報等に基づいてRTTを推定し、当該RTTの間に受信されるパケットのデータ量(又はその統計値)を送信装置10の現在の送信速度(cwnd)として推定する。
例えばこのように、上記現在の送信速度は、RTTの間に送信されるデータ量であってもよい。あるいは、上記現在の送信速度は、単位時間あたりに送信されるデータ量(スループット)であってもよい。
・目標送信速度の推定
例えば、通信制御装置100(目標送信速度推定部140)は、送信装置10の目標送信速度を推定する。
例えば、通信制御装置100(目標送信速度推定部140)は、送信側ネットワーク30側の可用帯域(以下、「第1の可用帯域」と呼ぶ)と、受信側ネットワーク40側の可用帯域(以下、「第2の可用帯域」と呼ぶ)とを推定する。そして、通信制御装置100(目標送信速度推定部140)は、第1の可用帯域にRTTを乗算することにより得られる第1の値と、第2の可用帯域にRTTを乗算することにより得られる第2の値とのうちの一方(例えば小さい方の値)を、目標送信速度として推定する。
・第1の可用帯域(送信側ネットワーク側の可用帯域)の推定
例えば、通信制御装置100(目標送信速度推定部140)は、送信装置10から受信されるデータパケットについての以下の例のいずれかを、上記第1の可用帯域として推定してもよい。
[例1]「データパケットのサイズ÷データパケットの受信間隔」(又はその統計値)
[例2]「パケット群のサイズ÷パケット群の受信にかかった時間」(又はその統計値)(パケット群は、受信間隔が閾値以下又は一定時間内に受信したデータパケットの集合)
・第2の可用帯域(受信側ネットワーク側の可用帯域)の推定
一例として、通信制御装置100(目標送信速度推定部140)は、以下の例のいずれかを上記第2の可用帯域として推定してもよい。
[例1]「ACKパケットによって到達確認されたデータ量÷ACKパケットの受信間隔」(又はその統計値)
[例2]「ACKパケット群によって到達確認されたデータ量÷その受信にかかった時間」(又はその統計値)(ACKパケット群は、受信間隔が閾値以下又は一定時間内に受信したACKパケットの集合)
[例3]通信制御装置100において蓄積しているデータパケットの減少速度
通信制御装置100(目標送信速度推定部140)は、送信装置10から受信したデータパケットを蓄積した後に、当該データパケットを受信側ネットワーク40にまとめて送信することで、一時的に上記第2の可用帯域を超える又は近い送信速度でデータパケットを送信することにより、上記第2の可用帯域を推定してもよい。
通信制御装置100(目標送信速度推定部140)は、上記第2の可用帯域を推定するにあたり、宛先IPアドレス等の情報から、同一又は同様のネットワーク性能にあると推測した過去の受信装置に向けた通信の実績を利用してもよい。
・推定結果に基づく制御
例えば、通信制御装置100(制御部160)は、上記現在の送信速度及び上記目標送信速度に基づいて、上記パケットについての上記制御(送信装置10に送信速度を変更させる制御)を行う。
例えば、通信制御装置100(制御部160)は、送信装置10の送信速度が上記目標送信速度に近づくように、上記制御を行う。
一例として、上記目標送信速度と上記現在の送信速度との差(目標送信速度-現在の送信速度)が所定の閾値(いずれかの正の数又は0)よりも大きい場合に、通信制御装置100(制御部160)は、上記制御(送信装置10に送信速度を上げさせる制御)を行う。上記現在の送信速度と上記目標送信速度との差(現在の送信速度-目標送信速度)が所定の閾値(いずれかの正の数又は0)よりも大きい場合に、通信制御装置100(制御部160)は、上記制御(送信装置10に送信速度を下げさせる制御)を行ってもよい。
別の例として、通信制御装置100(制御部160)は、上記目標送信速度と上記現在の送信速度との差(目標送信速度-現在の送信速度)に応じて制御パラメータを設定し、当該制御パラメータを用いて上記制御を行ってもよい。
(3-2)制御の第1の例:転送タイミングの調整
例えば、上記制御は、上記ACKパケット又は上記パケットの送信タイミングの調整を含む。即ち、通信制御装置100(制御部160)は、上記ACKパケット又は上記パケットの送信タイミングの調整を行う。
・第1の例
第1の例として、上記送信タイミングの上記調整は、上記ACKパケット間の送信間隔を短くすることを含む。即ち、通信制御装置100(制御部160)は、上記ACKパケット間の送信間隔を短くする。
図9Aは、第1の実施形態に係る送信タイミングの調整の第1の例を説明するためのシーケンス図である。通信制御装置100(第2通信処理部120)は、ACKパケット55、57、59を受信装置20から受信する(S321、S323、S325)。通信制御装置100は、ACKパケット55、57、59の各々を即座に送信装置10へ送信せずに蓄積し、ACKパケット55、57、59を所定間隔91(短い間隔)で送信する。その結果、送信装置10は、短時間でACKパケット55、57、59を受信することになり、送信装置10において、短時間で多くの到達確認済みのデータ量がカウントされる。所定間隔91は、予め定められている制御パラメータであってもよく、通信制御装置100(制御部160)により設定される制御パラメータであってもよい。
これにより、例えば、データパケットがまとめて送信できたように送信装置10に見せることができる。その結果、例えば、送信装置10がファンクションベースの送信制御方式(例えばBBR等)を使用している場合に、可用帯域の最大値が大きくなり、送信データ量が大きくなり得る。即ち、送信装置10の送信速度が大きくなり得るし、送信装置10と受信装置20との間の通信のスループットが向上し得る。
なお、上記送信タイミングの上記調整は、(上記ACKパケット間の送信間隔ではなく)上記パケット(データパケット)間の送信間隔を短くすることを含んでもよい。即ち、通信制御装置100(制御部160)は、上記パケット(データパケット)間の送信間隔を短くしてもよい。この場合にも、結果として、ACKパケット間の送信間隔も短くなるので、同様の効果が得られる。
・第2の例
第2の例として、上記送信タイミングの上記調整は、上記ACKパケット間の送信間隔を長くすることを含む。即ち、第2の例では、第1の例とは反対に、通信制御装置100(制御部160)は、上記ACKパケット間の送信間隔を長くする。
図9Bは、第1の実施形態に係る送信タイミングの調整の第2の例を説明するためのシーケンス図である。通信制御装置100(第2通信処理部120)は、ACKパケット55、57、59を受信装置20から受信する(S321、S323、S325)。通信制御装置100は、ACKパケット55、57、59を所定間隔92(長い間隔)で送信する。その結果、送信装置10は、長時間でACKパケット55、57、59を受信することになり、送信装置10において、一定期間あたりにカウントされる到達確認済みのデータ量が少なくなる。所定間隔92は、予め定められている制御パラメータであってもよく、通信制御装置100(制御部160)により設定される制御パラメータであってもよい。
これにより、例えば、データパケットが少しずつ送信されたように送信装置10に見せることができる。その結果、例えば、送信装置10がファンクションベースの送信制御方式(例えばBBR等)を使用している場合に、可用帯域の最大値が小さくなり、送信データ量が小さくなり得る。即ち、送信装置10の送信速度が小さくなり得るし、送信装置10と受信装置20との間の通信のスループットが低下し得る。
なお、上記送信タイミングの上記調整は、(上記ACKパケット間の送信間隔ではなく)上記パケット(データパケット)間の送信間隔を長くすることを含んでもよい。即ち、通信制御装置100(制御部160)は、上記パケット(データパケット)間の送信間隔を長くしてもよい。この場合にも、結果として、ACKパケット間の送信間隔も長くなるので、同様の効果が得られる。
・第3の例
別の例として、上記送信タイミングの上記調整は、上記ACKパケットの送信を遅らせることを含んでもよい。通信制御装置100(制御部160)は、上記ACKパケットの送信を遅らせてもよい。
図10は、第1の実施形態に係る送信タイミングの調整の第3の例を説明するためのシーケンス図である。通信制御装置100(第2通信処理部120)は、ACKパケット61を受信装置20から受信するが(S341)、ACKパケット61を即座に送信装置10へ送信せず、所定時間93後にACKパケット61を送信装置10へ送信する(S343)。同様に、通信制御装置100(第2通信処理部120)は、ACKパケット63を受信装置20から受信するが(S345)、ACKパケット63を即座に送信装置10へ送信せず、所定時間93後にACKパケット63を送信装置10へ送信する(S347)。所定時間93は、予め定められている制御パラメータであってもよく、通信制御装置100(制御部160)により設定される制御パラメータであってもよい。
これにより、例えば、RTT(送信装置10がパケットを送信してからACKを受信するまでの時間)を大きくすることができる。例えば、送信装置10がロスベースの送信制御方式(例えばCUBIC等)を使用している場合に、結果として、再送の許容待機時間が長くなる(例えば、RTO(Retransmission Time Out)の値が大きくなる)。そのため、突発的な遅延の発生時に、再送及びそれに伴う送信速度の低下が回避され得る。あるいは、送信装置10がファンクションベースの送信制御方式(例えばBBR等)を使用している場合に、結果として、推定される通信遅延が大きくなる。そのため、送信データ量が大きくなり得る。即ち、送信装置10の送信速度が大きくなり得るし、送信装置10と受信装置20との間の通信のスループットが向上し得る。
なお、上記送信タイミングの上記調整は、(上記ACKパケットではなく)上記パケット(データパケット)の送信を遅らせることを含んでもよい。この場合にも、結果として、RTTが大きくなるので、同様の効果が得られる。
(3-3)制御の第2の例:転送順序の調整
例えば、上記制御は、上記パケットの送信順序の調整を含む。即ち、通信制御装置100(制御部160)は、上記パケットの送信順序の調整を行う。
具体的には、例えば、上記送信順序の上記調整は、上記パケットが受信順にではなくシーケンス順に送信されるように上記パケットの送信順序を調整することである。即ち、通信制御装置100(制御部160)は、上記パケットが受信順にではなくシーケンス順に送信されるように上記パケットの送信順序を調整する。例えば、通信制御装置100(制御部160)は、通信制御装置100にバッファされているパケットがシーケンス順に送信されるように当該パケットの送信順序を調整する。
図11は、第1の実施形態に係るパケットの送信順序の調整の例を説明するためのシーケンス図である。送信装置10は、パケット65、67、69、71、73を送信し(S361~S371)、通信制御装置100は、パケット65、67、69、71、73を受信してバッファする。パケット65、67、69、71は、新規パケットであるが、パケット73は、再送パケットである。そのため、パケット73(再送パケット)は、パケット65、67、69、71、73の中では、受信順では最後のパケットであるが、シーケンス順では最初のパケットである。よって、通信制御装置100は、まず、パケット73(再送パケット)を受信装置20へ送信し(S371)、その後、シーケンス順にパケット65、67、69、71を受信装置20へ送信する(S373~S379)。
これにより、例えば、再送パケットを優先的に転送することができる。その結果、パケットロスの発生後に、再送パケットがより早く到達確認済みパケットとなり、送信ウィンドウ内に残っているパケットの量がより早く低下し、より多くの新規パケットが送信され得る。即ち、送信装置10の送信速度が大きくなり得るし、送信装置10と受信装置20との間の通信のスループットが向上し得る。
また、送信装置10から送信されたパケットが、シーケンス順に通信制御装置100に到着しなかった場合に、当該パケットが順に送信され得る。そのため、パケットがシーケンス順に受信装置20に到着する可能性が高くなり、同一パケットに対する重複した確認応答(DupACK)が発生する可能性が低くなる。例えば、送信装置10がロスベースの送信制御方式(例えばCUBIC等)を使用している場合に、同一パケットに対する重複した確認応答(DupACK)が複数個(例えば3つ以上)連続して発生する可能性が低くなり、送信速度の低下(例えばcwndの低下)が抑えられ得る。即ち、送信装置10と受信装置20との間の通信のスループットが向上し得る。
(3-4)制御の第3の例:ACKパケットの一部破棄
例えば、上記制御は、上記ACKパケットの一部の破棄を含む。即ち、通信制御装置100(制御部160)は、上記ACKパケットの一部の破棄を行う。
例えば、上記破棄は、所定の確率で、所定の割合で、又は所定の時間間隔で確認応答パケットを破棄することである。即ち、通信制御装置100(制御部160)は、所定の確率で、所定の割合で、又は所定の時間間隔で、ACKパケットを破棄する。当該所定の確率、当該所定の割合、及び当該所定の時間間隔は、予め定められている制御パラメータであってもよく、通信制御装置100(制御部160)により設定される制御パラメータであってもよい。
図12は、第1の実施形態に係るACKパケットの一部の破棄の例を説明するためのシーケンス図である。受信装置20は、ACKパケット75を送信装置10へ送信する(S381、S383)。通信制御装置100は、ACKパケット75を受信装置20から受信し(S381)、ACKパケット75を送信装置10へ送信する(S383)。受信装置20は、ACKパケット77を送信装置10へ送信する(S385)。しかし、通信制御装置100は、ACKパケット77を受信装置20から受信し(S385)、ACKパケット77を破棄する(S387)。受信装置20は、ACKパケット79を送信装置10へ送信する(S389、S391)。通信制御装置100は、ACKパケット79を受信装置20から受信し(S389)、ACKパケット79を送信装置10へ送信する(S391)。その結果、送信装置10において、ACKパケット79の受信により、多くの到達確認済みのデータ量が一気にカウントされる。
これにより、例えば、データパケットがまとめて送信できたように送信装置10に見せることができる。その結果、例えば、送信装置10がファンクションベースの送信制御方式(例えばBBR等)を使用している場合に、可用帯域の最大値が大きくなり、送信データ量が大きくなり得る。即ち、送信装置10の送信速度が大きくなり得るし、送信装置10と受信装置20との間の通信のスループットが向上し得る。
また、同一パケットに対する重複した確認応答(DupACK)が発生したとしても、同一パケットに対する重複した確認応答(DupACK)が複数個(例えば3つ以上)連続して送信装置10により受信される可能性が低くなる。そのため、例えば、送信装置10がロスベースの送信制御方式(例えばCUBIC等)を使用している場合に、送信速度の低下(例えばcwndの低下)が抑えられ得る。即ち、送信装置10と受信装置20との間の通信のスループットが向上し得る。
(3-5)制御の第1、第2及び第3の例
上記制御として、上記ACKパケット又は上記パケットの送信タイミングの調整、上記パケットの送信順序の調整、及び、上記ACKパケットの一部の破棄を説明した。上記制御は、上記送信タイミングの調整、上記送信順序の調整、及び上記ACKパケットの一部の破棄の全てを含んでもよく、又は、一部のみを含んでもよい。例えば、上記制御は、上記送信タイミングの調整、上記送信順序の調整、及び上記ACKパケットの一部の破棄のうちの1つであってもよい。
(3-6)その他
通信制御装置100(送信制御推定部150、制御部160)は、送信装置10により使用されている送信制御方式を推定し、推定された当該送信制御方式に基づいて上記制御を行ってもよい。
例えば、通信制御装置100(制御部160)は、推定された上記送信制御方式に適合する制御(例えば、送信タイミングの調整、送信順序の調整、又は、ACKパケットの一部の破棄)を選択し、実行してもよい。あるいは、通信制御装置100(制御部160)は、推定された上記送信制御方式に適合する制御パラメータを選択し、当該制御パラメータを用いて制御を行ってもよい。
これにより、例えば、より適切に送信装置10の送信速度が変更され得る。
以上、第1の実施形態を説明した。第1の実施形態によれば、上述したように、使用されるプロトコルによらず送信装置10と受信装置20との間の通信のスループットを向上させることが可能になる。
<<4.第2の実施形態>>
図13を参照して、本発明の第2の実施形態を説明する。上述した第1の実施形態は、具体的な実施形態であるが、第2の実施形態は、より一般化された実施形態である。
<4.1.通信制御装置の機能構成>
図13は、第2の実施形態に係る通信制御装置300の概略的な機能構成の例を示すブロック図である。図13を参照すると、通信制御装置300は、第1通信処理部310、第2通信処理部320及び制御部330を備える。
第1通信処理部310は、パケットを送受信する。例えば、第1通信処理部310は、送信装置10からパケット(例えばデータパケット)を受信し、送信装置10へパケット(例えばACKパケット)を送信する。
第2通信処理部320は、パケットを送受信する。例えば、第2通信処理部320は、受信装置20へパケット(例えばデータパケット)を送信し、受信装置20からパケット(例えばACKパケット)を受信する。
制御部330は、送信装置から受信装置へ送信されるパケットについての制御を行う。例えば、当該制御は、上記パケットのためのACKパケット(第2通信処理部320により受信装置20から受信され、第1通信処理部310により送信装置10へ送信されるACKパケット)又は上記パケット(第1通信処理部310により送信装置10から受信され、第2通信処理部320により受信装置20へ送信されるデータパケット)の制御である。制御部330は、第1通信処理部310又は第2通信処理部320の動作を制御することにより、上記ACKパケット又は上記パケットの間接的な制御を行ってもよい。あるいは、制御部330は、第1通信処理部310と第2通信処理部320との間で上記ACKパケット又は上記パケットを直接的に処理することにより、上記ACKパケット又は上記パケットの直接的な制御を行ってもよい。
第1通信処理部310、第2通信処理部320及び制御部330についてのより具体的な動作は、第2の実施形態の技術的特徴として後に説明する。
<4.2.通信制御装置のハードウェア構成>
第2の実施形態に係る通信制御装置300のハードウェア構成は、例えば、第1の実施形態に係る通信制御装置100のハードウェア構成と同じである。よって、ここでは重複する説明を省略する。
<4.3.技術的特徴>
第2の実施形態の技術的特徴を説明する。
(1)パケットの中継
通信制御装置300(第1通信処理部310)は、送信装置10から受信装置20へ送信されるパケットを送信装置10から受信する。そして、通信制御装置300(第2通信処理部320)は、上記パケットを受信装置20へ送信する。
第2の実施形態に係るこの点の説明は、例えば、(符号の相違を除き)第1の実施形態に係るこの点の説明と同じである。よって、ここでは重複する説明を省略する。しかし、当然ながら、第2の実施形態はこの例に限定されない。
(2)パケット及び確認応答(ACK)パケット
送信装置10から受信装置20へ送信される上記パケットは、送信装置10と受信装置20との間の中継点(例えば通信制御装置300等)において生成及び改変できないパケットである。
さらに、上記パケットのための確認応答(ACK)パケットは、受信装置20と送信装置10との間の中継点において生成及び改変できないACKパケットである。
第2の実施形態に係るこの点の説明は、例えば、(符号の相違を除き)第1の実施形態に係るこの点の説明と同じである。よって、ここでは重複する説明を省略する。しかし、当然ながら、第2の実施形態はこの例に限定されない。
(3)パケットについての制御
通信制御装置300(制御部330)は、送信装置10から受信装置20へ送信される上記パケットについての制御であって、送信装置10に送信速度を変更させる当該制御を行う。
第2の実施形態に係るこの点の説明は、例えば、(符号の相違を除き)第1の実施形態に係るこの点の説明と同じである。よって、ここでは重複する説明を省略する。しかし、当然ながら、第2の実施形態はこの例に限定されない。
以上、第2の実施形態を説明した。第2の実施形態によれば、使用されるプロトコルによらず送信装置10と受信装置20との間の通信のスループットを向上させることが可能になる。
以上、本発明の実施形態を説明したが、本発明はこれらの実施形態に限定されるものではない。これらの実施形態は例示にすぎないということ、及び、本発明のスコープ及び精神から逸脱することなく様々な変形が可能であるということは、当業者に理解されるであろう。
例えば、本明細書に記載されている処理におけるステップは、必ずしもシーケンス図に記載された順序に沿って時系列に実行されなくてよい。例えば、処理におけるステップは、シーケンス図として記載した順序と異なる順序で実行されても、並列的に実行されてもよい。また、処理におけるステップの一部が削除されてもよく、さらなるステップが処理に追加されてもよい。
また、本明細書において説明した通信制御装置の構成要素(例えば、第1通信処理部、第2通信処理部、現在送信速度推定部、目標送信速度推定部、送信制御推定部及び/又は制御部)を備える装置(例えば、モジュール)が提供されてもよい。また、上記構成要素の処理を含む方法が提供されてもよく、上記構成要素の処理をプロセッサに実行させるためのプログラムが提供されてもよい。また、当該プログラムを記録したコンピュータに読み取り可能な非一時的記録媒体(Non-transitory computer readable medium)が提供されてもよい。当然ながら、このような装置、モジュール、方法、プログラム、及びコンピュータに読み取り可能な非一時的記録媒体も本発明に含まれる。
上記実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
通信制御装置であって、
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信する第1通信処理部と、
前記パケットを前記受信装置へ送信する第2通信処理部と、
を備え、
前記第2通信処理部は、前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信し、
前記第1通信処理部は、前記確認応答パケットを前記送信装置へ送信し、
前記通信制御装置は、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行う制御部、
をさらに備える、
通信制御装置。
(付記2)
前記制御は、前記確認応答パケット又は前記パケットの送信タイミングの調整を含む、付記1に記載の通信制御装置。
(付記3)
前記送信タイミングの前記調整は、前記確認応答パケット間の送信間隔又は前記パケット間の送信間隔を短く又は長くすることを含む、付記2に記載の通信制御装置。
(付記4)
前記送信タイミングの前記調整は、前記確認応答パケット又は前記パケットの送信を遅らせることを含む、付記2又は3に記載の通信制御装置。
(付記5)
前記制御は、前記確認応答パケットの一部の破棄を含む、付記1~4のいずれか1項に記載の通信制御装置。
(付記6)
前記破棄は、所定の確率で、所定の割合で、又は所定の時間間隔で確認応答パケットを破棄することである、付記5に記載の通信制御装置。
(付記7)
前記制御は、前記パケットの送信順序の調整を含む、付記1~6のいずれか1項に記載の通信制御装置。
(付記8)
前記送信順序の前記調整は、前記パケットが受信順にではなくシーケンス順に送信されるように前記パケットの送信順序を調整することである、付記7に記載の通信制御装置。
(付記9)
前記パケットは、少なくとも一部が暗号化され又は認証されるパケットであり、
前記確認応答パケットは、少なくとも一部が暗号化され又は認証される確認応答パケットである、
付記1~8のいずれか1項に記載の通信制御装置。
(付記10)
前記確認応答パケットの前記一部は、前記送信装置への確認応答のための情報を含む、付記9に記載の通信制御装置。
(付記11)
前記送信装置と前記受信装置との間の目標送信速度を推定する目標送信速度推定部、
をさらに備え、
前記制御部は、前記目標送信速度に基づいて前記制御を行う、
付記1~10のいずれか1項に記載の通信制御装置。
(付記12)
前記送信装置と前記受信装置との間の現在の送信速度を推定する現在送信速度推定部、
をさらに備え、
前記制御部は、前記現在の送信速度及び前記目標送信速度に基づいて前記制御を行う、
付記11に記載の通信制御装置。
(付記13)
前記送信装置により使用されている送信制御方式を推定する送信制御推定部、
をさらに備え、
前記制御部は、推定された前記送信制御方式に基づいて前記制御を行う、
付記1~12のいずれか1項に記載の通信制御装置。
(付記14)
前記送信装置は、第1の送信制御方式又は第2の送信制御方式を使用する送信装置であり、
前記第1の送信制御方式は、パケットのロスの有無に基づいて送信速度を制御する送信制御方式であり、
前記第2の送信制御方式は、パケットの送受信から推定されるネットワーク性能に基づいて送信速度を制御する送信制御方式である、
付記1~13のいずれか1項に記載の通信制御装置。
(付記15)
前記パケットは、データパケットである、付記1~14のいずれか1項に記載の通信制御装置。
(付記16)
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
前記パケットを前記受信装置へ送信することと、
前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
前記確認応答パケットを前記送信装置へ送信することと、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
を含む方法。
(付記17)
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
前記パケットを前記受信装置へ送信することと、
前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
前記確認応答パケットを前記送信装置へ送信することと、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
をプロセッサに実行させるプログラム。
(付記18)
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
前記パケットを前記受信装置へ送信することと、
前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
前記確認応答パケットを前記送信装置へ送信することと、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
をプロセッサに実行させるプログラムを記録したコンピュータに読み取り可能な非一時的記録媒体。
この出願は、2018年7月9日に出願された日本出願特願2018-129929を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 システム
10 送信装置
20 受信装置
100、300 通信制御装置
110、310 第1通信処理部
120、320 第2通信処理部
130 現在送信速度推定部
140 目標送信速度推定部
150 送信制御推定部
160、330 制御部

Claims (8)

  1. 通信制御装置であって、
    送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信する第1通信処理部と、
    前記パケットを前記受信装置へ送信する第2通信処理部と、
    を備え、
    前記第2通信処理部は、前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信し、
    前記第1通信処理部は、前記確認応答パケットを前記送信装置へ送信し、
    前記通信制御装置は、
    前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行う制御部と、
    前記送信装置と前記受信装置との間の目標送信速度を推定する目標送信速度推定部と、
    前記送信装置と前記受信装置との間の現在の送信速度を推定する現在送信速度推定部と、
    をさらに備え
    前記制御部は、前記現在の送信速度と前記目標送信速度との差に応じて、前記制御を行い、
    前記制御は、前記確認応答パケットの一部の破棄を含む、
    通信制御装置。
  2. 前記制御は、前記確認応答パケット又は前記パケットの送信タイミングの調整を含む、請求項1に記載の通信制御装置。
  3. 前記送信タイミングの前記調整は、前記確認応答パケット間の送信間隔又は前記パケット間の送信間隔を短く又は長くすることを含む、請求項2に記載の通信制御装置。
  4. 前記送信タイミングの前記調整は、前記確認応答パケット又は前記パケットの送信を遅らせることを含む、請求項2又は3に記載の通信制御装置。
  5. 前記制御は、前記パケットの送信順序の調整を含む、請求項1~のいずれか1項に記載の通信制御装置。
  6. 前記パケットは、少なくとも一部が暗号化され又は認証されるパケットであり、
    前記確認応答パケットは、少なくとも一部が暗号化され又は認証される確認応答パケットである、
    請求項1~のいずれか1項に記載の通信制御装置。
  7. 送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
    前記パケットを前記受信装置へ送信することと、
    前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
    前記確認応答パケットを前記送信装置へ送信することと、
    前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
    を含む方法であって、
    前記方法は、
    前記送信装置と前記受信装置との間の目標送信速度を推定することと、
    前記送信装置と前記受信装置との間の現在の送信速度を推定することと、
    前記現在の送信速度と前記目標送信速度との差に応じて、前記制御を行うことと、
    を更に含み、
    前記制御は、前記確認応答パケットの一部の破棄を含む、
    方法。
  8. 送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
    前記パケットを前記受信装置へ送信することと、
    前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
    前記確認応答パケットを前記送信装置へ送信することと、
    前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
    をプロセッサに実行させるプログラムであって、
    前記プログラムは、前記プロセッサに、更に、
    前記送信装置と前記受信装置との間の目標送信速度を推定することと、
    前記送信装置と前記受信装置との間の現在の送信速度を推定することと、
    前記現在の送信速度と前記目標送信速度との差に応じて、前記制御を行うことと、
    を実行させるようになっており、
    前記制御は、前記確認応答パケットの一部の破棄を含む、
    プログラム。
JP2020530099A 2018-07-09 2019-06-27 通信制御装置、方法、及びプログラム Active JP7111162B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018129929 2018-07-09
JP2018129929 2018-07-09
PCT/JP2019/025630 WO2020012973A1 (ja) 2018-07-09 2019-06-27 通信制御装置、方法、プログラム、及びコンピュータに読み取り可能な非一時的記録媒体

Publications (2)

Publication Number Publication Date
JPWO2020012973A1 JPWO2020012973A1 (ja) 2021-06-24
JP7111162B2 true JP7111162B2 (ja) 2022-08-02

Family

ID=69142653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020530099A Active JP7111162B2 (ja) 2018-07-09 2019-06-27 通信制御装置、方法、及びプログラム

Country Status (3)

Country Link
US (1) US20210273889A1 (ja)
JP (1) JP7111162B2 (ja)
WO (1) WO2020012973A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019008659A1 (ja) * 2017-07-04 2019-01-10 富士通株式会社 通信装置、通信方法、及び通信システム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000307634A (ja) 1999-04-15 2000-11-02 Kdd Corp パケット交換網の中継局による輻輳制御方法
JP2003520461A (ja) 1998-12-08 2003-07-02 ノキア モービル フォーンズ リミテッド データ送信の適正化方法
JP2007081678A (ja) 2005-09-13 2007-03-29 Ntt Docomo Inc データ中継装置及びデータ中継方法
JP2008236709A (ja) 2007-02-22 2008-10-02 Nippon Telegr & Teleph Corp <Ntt> 通信品質制御方法と通信品質制御装置および通信システムとプログラム
JP2012165141A (ja) 2011-02-04 2012-08-30 Canon Inc 通信装置、通信装置の制御方法、およびプログラム
JP2018067788A (ja) 2016-10-19 2018-04-26 日本電気株式会社 受信トラヒックの高速化装置、高速化方法、および高速化プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003264579A (ja) * 2002-03-06 2003-09-19 Ntt Docomo Inc パケット転送システム、このシステムに用いる制御装置、及び移動端末、並びに、パケット転送プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003520461A (ja) 1998-12-08 2003-07-02 ノキア モービル フォーンズ リミテッド データ送信の適正化方法
JP2000307634A (ja) 1999-04-15 2000-11-02 Kdd Corp パケット交換網の中継局による輻輳制御方法
JP2007081678A (ja) 2005-09-13 2007-03-29 Ntt Docomo Inc データ中継装置及びデータ中継方法
JP2008236709A (ja) 2007-02-22 2008-10-02 Nippon Telegr & Teleph Corp <Ntt> 通信品質制御方法と通信品質制御装置および通信システムとプログラム
JP2012165141A (ja) 2011-02-04 2012-08-30 Canon Inc 通信装置、通信装置の制御方法、およびプログラム
JP2018067788A (ja) 2016-10-19 2018-04-26 日本電気株式会社 受信トラヒックの高速化装置、高速化方法、および高速化プログラム

Also Published As

Publication number Publication date
US20210273889A1 (en) 2021-09-02
WO2020012973A1 (ja) 2020-01-16
JPWO2020012973A1 (ja) 2021-06-24

Similar Documents

Publication Publication Date Title
JP4703063B2 (ja) ネットワーク輻輳を緩和する方法およびシステム
JP4147534B2 (ja) 通信装置および通信方法
JP4587053B2 (ja) 通信装置、通信システム、パケット欠落検出方法、およびパケット欠落検出プログラム
US8306062B1 (en) Method and apparatus of adaptive large receive offload
US20120163385A1 (en) Systems and methods to improve performance of tcp over large bandwidth-delay-product networks
US10075382B2 (en) Communication device, relay device, and communication method for a plurality of packets
US11870698B2 (en) Congestion control method and apparatus, communications network, and computer storage medium
US20070223492A1 (en) Methods and apparatus for optimizing a TCP session for a wireless network
US20080291833A1 (en) Method for buffer control for network device
JP5832335B2 (ja) 通信装置および通信システム
JP6963411B2 (ja) 通信装置、通信方法、およびプログラム
CN108432287A (zh) 一种数据传输方法及网络侧设备
JP7111162B2 (ja) 通信制御装置、方法、及びプログラム
CA2940077C (en) Buffer bloat control
CN111314961A (zh) Tcp传输方法、装置和系统
Psaras et al. On the properties of an adaptive TCP Minimum RTO
WO2016169251A1 (zh) 虚拟机的tcp数据传输方法和虚拟机系统
JP6805713B2 (ja) 受信トラヒックの高速化装置、高速化方法、および高速化プログラム
JP6145190B1 (ja) 中継装置、中継方法及び中継プログラム
JP2008199431A (ja) 通信装置
JP2004140596A (ja) Tcp上のデータ転送における品質を推定する方法およびシステム
JP4701265B2 (ja) 送信端末及びデータ送信方法
Utsumi Congestion Control Algorithms for the Internet–A Secondary Publication
JP2005044047A (ja) 端末装置及びデータ送信方法
US20180278537A1 (en) Data communication device, method for controlling data communication, and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201224

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220207

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220704

R151 Written notification of patent or utility model registration

Ref document number: 7111162

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151