JP2020031346A - 通信装置、通信装置の制御方法およびプログラム - Google Patents
通信装置、通信装置の制御方法およびプログラム Download PDFInfo
- Publication number
- JP2020031346A JP2020031346A JP2018156089A JP2018156089A JP2020031346A JP 2020031346 A JP2020031346 A JP 2020031346A JP 2018156089 A JP2018156089 A JP 2018156089A JP 2018156089 A JP2018156089 A JP 2018156089A JP 2020031346 A JP2020031346 A JP 2020031346A
- Authority
- JP
- Japan
- Prior art keywords
- received
- communication device
- packets
- packet
- ack
- 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
Links
Images
Abstract
Description
例えば、TCP(Transport Control Protocol)では、送受信されるデータパケットにシーケンス番号を付与して管理する。受信側装置は、受信したデータパケットのシーケンス番号を参照し、受信済みの最終データを示すシーケンス番号を確認応答(Acknowledge、以下「ACK」ともいう。)パケットとして送信側装置に通知する。
このACKパケットを送信側装置が受信することで、受信側装置によりデータパケットが受信されたことが保証され、データの送信が完了したと判断することができる。一方、所定時間内に送信したデータパケットに対する確認応答(ACK)が受信できない場合、送信側装置は、データパケットを送信側装置へ再送するよう制御する。
ただし、上記のACK送信遅延時間内であっても、ACK送信頻度の設定により、遅延ACKパケットが送信側装置へ送信される場合がある。このACK送信頻度は、MSS(Maximum Sedment Size)以上のセグメント長のデータパケットをまとめて受信できる回数を設定する遅延ACKのパラメータである(TCPの場合、最低2パケット)。受信側装置は、ACK送信遅延時間内であっても、ACK送信頻度に設定された回数、データパケットを受信した際に、遅延ACKパケットを送信しなければならない。
このように、遅延ACKを使用するTCP通信では、設定されたACK送信遅延時間およびACK送信頻度に従って、遅延ACKパケットを送信すべきタイミングが規定される。
具体的には、特許文献1の受信側装置は、遅延ACKタイマ値を含む遅延ACK情報を、TCPコネクション時に、または遅延ACK送信時やアプリケーションにより、送信側装置へ通知する。送信側装置は、通知された遅延ACKタイマ値より小さくならないよう、再送タイマ値(RTO)の最小値を決定する。
送信側装置のRTO最小値を、遅延ACKタイマ値を下回らない限り十分小さく設定可能とすることで、速やかに再送を実行することが可能となり、データ通信性能を向上させることができる。
具体的には、遅延ACKパケットのACK送信頻度を低く設定した場合、送信側装置への遅延ACKパケットの送信が遅延する。TCPのフロー制御の下、受信側装置は、データパケット受信により減少したウインドウサイズをACKパケットと共に送信側装置へ送信し、受信バッファからアプリケーションに受信データが転送された後に拡げたウインドウサイズを送信側装置へ送信する。送信側装置は、ACKパケットを受信することにより、ACKパケットと共に通知される受信側装置のウインドウサイズに従って、送信側装置のウインドウサイズを増減し、増減されたウインドウサイズの分のデータパケットをACKを待たずに連続送信する。
本実施形態は、他の通信装置から予め設定された数のパケットを受信するごとに、他の装置へ確認応答を送信する。そして、本実施形態は、他の通信装置からパケットを連続して受信しているか否かを判定し、受信パケットの連続性の判定結果に基づいて、他の通信装置へ送信すべき確認応答の送信頻度を変更する。具体的には、本実施形態は、他の通信装置からパケットを連続して受信していると判定された場合に確認応答の送信頻度が低くなるよう、また他の通信装置からパケットを連続して受信していないと判定された場合に確認応答の送信頻度が高くなるよう変更する。
一方、受信パケットの連続性がない場合には、確認応答の送信頻度がより高く変更されれるため、他の通信装置へ確認応答が迅速に送信されることで、他の通信装置でのウインドウサイズの拡張およびデータ送信における遅延が低減される。
これにより、他の通信装置から受信されるパケットの連続性に応じて、確認応答の送信頻度を動的かつ可変に設定することができる。従って、他の通信装置との間の通信の状況にかかわらず、受信データに対する確認応答が適切に送信されて通信性能の低下が有効に低減される。
また、以下、確認応答を「ACK」と、送信側の通信装置から送信されるデータパケットを単に「パケット」と、受信側の通信装置からパケットの受信に応答して送信側の通信装置へ送信される確認応答(ACK)パケットを単に「ACK」という。
本実施形態では、パケットロスが発生することなく所定時間内に所定数のパケットが受信できた場合に、パケットが連続して受信されたものと判定する例を説明する。
図1は、本実施形態に係る通信装置のハードウエア構成の一例を示す図である。
図1の通信装置1は、RAM11、ROM12、CPU13、タイマ管理部14、メディアアクセス制御モジュール(MAC)15、物理レイヤモジュール(PHY)16、およびアンテナ18を備える。RAM11、ROM12、CPU13、タイマ管理部14、およびMAC15は、システムバス17により、通信可能に接続される。
なお、通信装置1は、上記のモジュール全てを備えなくともよく、例えばタイマ管理部14やアンテナ18等は、必要に応じて省略されてもよいし、図1の構成に加えて入出力インタフェースや外部メモリ等を備えてもよい。
ROM(Read Only Memory)12は、CPU13が各種処理を実行するために必要となる、変更を必要としない制御プログラムやパラメータ等を記憶する不揮発性メモリである。なお、これら制御プログラム等は、外部メモリや着脱可能な記憶媒体(不図示)に記憶されていてもよい。
CPU(Central Processing Unit)13は、通信装置1における動作を統括的に制御するものであり、システムバス17を介して、各構成部(11、12、14〜16)を制御する。すなわち、CPU13は、各種処理の実行に際してROM12から必要なプログラム等をRAM11にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
MAC15は、PHY16およびアンテナ18を介して無線LAN(Local Area Network)等のネットワークでの通信を行うための通信部であり、IEEE802OSI参照モデルのデータリンク層中のメディアアクセス制御機能を提供する。CPU13は、ネットワークドライバを実行し、MAC15を制御して、他の装置との間でのデータの送受信を実行する。
PHY16は、アンテナ18を介して無線LAN等のネットワークでの通信を行うための通信部であり、データリンク層の下層である物理層の制御機能を提供する。
あるいは、ネットワークは、例えば、Ethernet(登録商標)等の通信規格に準拠する有線LAN(Local Area Network)等の有線ネットワークであってよく、無線LAN通信機能と有線LAN通信機能を組み合わせてもよい。
なお、ネットワークは、各機器を相互に通信可能に接続できればよく、通信の規格、規模、構成は上記に限定されない。
図2は、本実施形態に係る通信装置1の機能構成の一例を示すブロック図である。
図2に示す各装置の各機能モジュールのうち、ソフトウエアにより実現される機能については、各機能モジュールの機能を提供するためのプログラムがROM12等のメモリに記憶され、RAM11に読み出してCPU13が実行することにより実現される。ハードウエアにより実現される機能については、例えば、所定のコンパイラを用いることで、各機能モジュールの機能を実現するためのプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウエアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。この場合、専用ハードウエアはCPU11の制御に基づいて動作する。
なお、図2に示した機能ブロックの構成は一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、いずれかの機能ブロックが複数の機能を行うブロックに分かれてもよい。
制御部21は、通信装置1が備える各機能モジュール(22〜27)を制御して、本実施形態におけるパケット送受信および確認応答処理を含む処理を実行する。
LAN通信制御部22は、MAC15を制御し、他の通信装置とのLAN通信の制御を実行する。通信装置1が外部の無線アクセスポイント(AP)を経由して他の通信装置と接続する場合、LAN通信制御部22は、MAC15を制御して無線AP(不図示)との無線LAN通信の制御を行う。LAN通信制御部22はその他、有線LAN通信機能等、TCP/IP通信が可能な通信方式であれば他の通信方式を利用してもよい。
TCP/IP通信制御部24は、LAN通信制御部22を利用して、他の通信装置との間でTCP/IP方式の通信プロトコル処理および各種通信制御を行う。なお、TCP/IP通信制御部24は、TCP/IP方式に限らず、確認応答を使用可能な他のプロトコルを利用してもよい。
ACK送信頻度変更部27は、連続性判定部26から供給される判定結果に従って、ACK送信部25が参照すべきACK送信頻度を動的に変更する。ACK送信頻度変更部27によりACK送信頻度が変更されると、ACK送信部25が変更されたACK送信頻度を参照することにより、他の通信装置へ送信する遅延ACKの送信頻度が変更される。
図3は、通信装置1が実行するパケット受信および確認応答処理の概略手順の一例を示すフローチャートである。図3に示す処理は、例えば、他の通信装置からパケットを受信したことを契機に開始されてよい。
通信装置1はCPU13が必要なプログラムをROM12または外部メモリから読み出して実行することにより、図3に示す処理を実行することができる。ただし、図2に示す各要素のうち少なくとも一部が専用のハードウエアとして動作することで図3の処理が実現されるようにしてもよい。この場合、専用のハードウエアは、CPU13の制御に基づいて動作する。
S2で、通信装置1のTCP/IP通信制御部24は、LAN通信制御部22が管理するバッファ内に格納された受信パケットを、TCP/IP通信制御部24がアクセスおよび管理可能な受信バッファにコピーして保持する。
S3で、通信装置1のACK送信部25は、他の通信装置に対してACKを送信するか否かを判断する。このACK送信判断処理の詳細は、図4を参照して後述する。
なお、S1〜S4の処理の処理順序は、図3に示す順序に限定されない。例えば、S4のACKパケット送信頻度変更処理は、S1でパケットが受信された後であれば、S2の前に実行されてもよく、S2とS3の間に実行されてもよく、S2およびS3のタイミングに依存することなく同時並行で実行されてもよい。
図4は、図3のS3で、通信装置1が実行するACKパケット送信判断処理の詳細手順の一例を示すフローチャートである。
S31で、通信装置1のACK送信部25は、TCP/IP通信制御部24が管理する受信バッファに、MSS以上のセグメントサイズのパケットが、ACK送信頻度に設定されたパケット数の分、受信されたか否かを判定する。
受信バッファに受信されたデータパケットの数が、ACK送信頻度として設定されたパケット数以上である場合(S31:Y)、S32に進む。一方、ACK送信頻度として設定されたパケット数以上でない場合(S31:N)、S32をスキップしてACKを送信することなく、処理を終了する。
受信バッファに保持されたパケットの数がACK送信頻度として設定されたパケット数以上である場合、S32で、通信装置1のACK送信部25は、他の通信装置へACK(遅延ACK)を送信して、処理を終了する。
図5は、図3のS4で、通信装置1が実行するACKパケット送信頻度変更処理の詳細処理手順の一例を示すフローチャートである。
S41で、通信装置1の連続性判定部26は、他の通信装置から受信されるパケットが、連続して受信されているか否かを判定する。この受信パケットの連続性判定処理の詳細は、図6を参照して後述する。
S42で、通信装置1の連続性判定部26は、S41でパケットが連続して受信されていると判定された場合(S42:Y)、S43に進み、一方、S41でパケットが連続して受信されてないと判定された場合(S42:N)、S44に進む。
S41でパケットが連続して受信されていると判定された場合、S43で、通信装置1のACK送信頻度変更部27は、ACK送信頻度をより低い頻度に変更する。すなわち、ACK送信部25に設定すべきACK送信頻度の値をより大きくなるよう変更する。例えば、ACK送信頻度のデフォルト値の2パケットから、5パケットに変更すれば、MSS以上のセグメント長のパケットが5回受信された際に、1つの遅延ACKが他の通信装置へ送信される。
なお、ACK送信頻度変更部27は、受信パケットに連続性があると判定した場合に、受信パケットに連続性がないと判定した場合より相対的に高いACK送信頻度を設定できればよく、このため図5のS43およびS44のいずれかを省略してもよい。
また、図5では、S43およびS44で、ACK送信頻度を2通りに設定する例が示されているが、ACK送信頻度の設定はこれに限定されず、3通り以上の異なるACK送信頻度を設定してもよい。
図6は、図5のS41で、通信装置1が実行する受信パケットの連続性判定処理の詳細処理手順の一例を示すフローチャートである。
S411で、通信装置1の連続性判定部26は、タイマ管理部14を介してタイマの設定時間が経過したか否かを判定する。タイマの設定時間が経過していた場合(S411:Y)、S412に進んで、連続性判定部26は、タイマを0に初期化すると共に、現在保持している連続受信パケット数のカウンタを0に初期化する。一方、タイマの設定時間が経過していない場合(S411:N)、S413に進む。
S414で、連続性判定部26は、TCP/IP通信制御部24を介して、前回のパケット受信処理で最後に受信されたパケットのシーケンス番号にペイロード長を加算した値が、今回受信されたパケットのシーケンス番号と一致するか否かを判定する。パケットのTCPヘッダのシーケンス番号はペイロード中の各バイトのバイト位置を一意に識別する識別番号である。このため、このシーケンス番号にペイロード長を加算することにより、前回のパケットに連続して今回受信されたパケットの正しいシーケンス番号が得られる。一方、前回受信された受信パケットのシーケンス番号にペイロード長を加算した値が、今回受信されたパケットのシーケンス番号と一致しない場合、パケットロス等により受信パケットの連続性が失われたことになる。
S416で、通信装置1の連続性判定部26は、現在保持している連続受信パケット数のカウンタに、今回受信したパケット数を加算(カウント)する。
なお、図6のS417で、連続受信パケット数と比較すべき閾値を複数設定し、データを連続的に受信している状態を複数段階に分けることで、3通り以上の異なるACK送信頻度を設定してもよい。
一方、受信パケットの連続性がない場合、例えばスロースタート時や輻輳によるパケット再送時には、確認応答の送信頻度がより高く変更される。このため、他の通信装置へ確認応答が迅速に送信されることで、他の通信装置でのウインドウサイズの拡張およびデータ送信における遅延が低減される。
これにより、他の通信装置から受信されるパケットの連続性に応じて、確認応答の送信頻度を動的かつ可変に設定することができる。従って、他の通信装置との間の通信の状況にかかわらず、受信データに対する確認応答が適切に送信されて通信性能の低下が有効に低減される。
以下、実施形態2を、図7を参照して、上記の実施形態1と異なる点についてのみ詳細に説明する。実施形態1では、パケットロスが発生することなく所定時間内に所定数のパケットが受信できた場合に、パケットが連続して受信されたものと受信パケットの連続性を判定した。これに対して、本実施形態では、往復遅延時間が所定の閾値内にある間に所定数のパケットが受信できた場合に、パケットが連続して受信されたものと受信パケットの連続性を判定する。
これにより、他の通信装置から受信されるパケットの連続性に応じて、確認応答の送信頻度を動的かつ可変に設定することができる。従って、他の装置との間の通信の状況にかかわらず、受信データに対する確認応答が適切に送信されて通信性能の低下が有効に低減される。
実施形態2に係る通信装置1が実行するパケット受信および確認応答処理、確認応答送信判断処理、およびACK送信頻度変更処理は、図3ないし図5にそれぞれ示される実施形態1と同様である。
S411およびS412の各処理は、図6に示す実施形態1のS411およびS412の処理と同様である。
S411で、通信装置1の連続性判定部26がタイマの設定時間が経過していないと判定した場合、S51で、通信装置1の連続性判定部26は、通信装置1から送信される送信パケットの往復遅延時間(Round Trip Time:RTT)を計測する。具体的には、連続性判定部26は、通信装置1から他の通信装置へ送信された送信パケットのTCPヘッダのシーケンス番号と、当該送信パケットに応答して当該他の通信装置から受信されるACK(受信パケット)のACK番号とを使用する。送信パケットから対応するACK受信までの所要時間を計測することで往復遅延時間(RTT)を計測することができる。
一方、往復遅延時間が所定の閾値未満であると判定された場合(S52:Y)、連続性判定部26は、S416で連続受信パケット数のカウンタを更新する。以降の処理S417ないしS419は、図6に示す実施形態1のS417ないしS419と同様である。
なお、図7では、図6のS413およびS414に替えてS51およびS52が実行されるが、本実施形態において、S413およびS414に加えてS51およびS52を実行することで、パケットロスの判定と往復遅延時間の判定を併用してもよい。
通信装置と他の通信装置との間のパケットの往復遅延時間(RTT)が所定の閾値未満である間に所定数のパケットを受信できていれば、通信装置が連続してパケットを受信している状況であると推定することができるため、ACK送信頻度をより低く変更する。一方、通信装置と他の通信装置との間のパケットの往復遅延時間(RTT)が所定の閾値以上であれば、パケットの送受信に遅延が生じ連続性が途切れている状況であると推定することができるため、ACK送信頻度をより高く変更する。
これにより、他の通信装置から受信されるパケットの連続性に応じて、確認応答の送信頻度を動的かつ可変に設定することができる。従って、他の装置との間の通信の状況にかかわらず、受信データに対する確認応答が適切に送信されて通信性能の低下が有効に低減される。
以下、実施形態3を、図8および図9を参照して、上記の実施形態1と異なる点についてのみ詳細に説明する。実施形態1では、パケットロスが発生することなく所定時間内に所定数のパケットが受信できた場合に、パケットが連続して受信されたものと受信パケットの連続性を判定した。これに対して、本実施形態では、送信側の通信装置が通信状況に応じて送信可能なデータ量を調整するため保持している輻輳ウインドウサイズを受信側通信装置において模擬的に算出する。模擬的に算出された送信側の通信装置の輻輳ウインドウサイズが所定の閾値以上である場合に、パケットが連続して受信されたものと受信パケットの連続性を判定する。
これにより、他の通信装置から受信されるパケットの連続性に応じて、確認応答の送信頻度を動的かつ可変に設定することができる。従って、他の装置との間の通信の状況にかかわらず、受信データに対する確認応答が適切に送信されて通信性能の低下が有効に低減される。
図8は、実施形態3に係る通信装置1aの機能構成の一例を示すブロック図である。図2に示す実施形態1の機能構成に加えて、図8に示すように、実施形態3に係る通信装置1aは、さらに輻輳ウインドウ推定部28を備える。
輻輳ウインドウ推定部28は、通信装置1aに対向し、パケットを送信する他の通信装置における輻輳ウインドウサイズを推定する。具体的には、輻輳ウインドウ推定部28は、TCP/IP通信制御部24を介して、通信装置1aが受信する受信パケットを送信パケット、送信パケットを受信パケットと仮定する。そして輻輳ウインドウ推定部28は、通信装置1aが送信側となる際に適用する輻輳アルゴリズムを適用して、送信側の通信装置の輻輳ウインドウサイズを模擬的に算出する。輻輳ウインドウ推定部28により推定された模擬的な輻輳ウインドウサイズは、連続性判定部26へ供給される。
図9は、本実施形態において、図5のS41で、通信装置1aが実行する受信パケットの連続性判定処理の詳細処理手順の一例を示すフローチャートである。
S61で、通信装置1aの輻輳ウインドウ推定部28は、送信側の通信装置における輻輳ウインドウサイズを上記のように模擬的に推定する。
送信側の通信装置について推定される輻輳ウインドウサイズが所定の閾値以上であれば、通信装置が連続してパケットを受信可能な状況であると推定することができるため、ACK送信頻度をより低く変更する。一方、送信側の通信装置について推定される輻輳ウインドウサイズが所定の閾値未満であれば、通信装置が速やかに確認応答を送信しなければパケットを連続して受信できない状況であると推定することができるため、ACK送信頻度をより高く変更する。
これにより、他の通信装置から受信されるパケットの連続性に応じて、確認応答の送信頻度を動的かつ可変に設定することができる。従って、他の装置との間の通信の状況にかかわらず、受信データに対する確認応答が適切に送信されて通信性能の低下が有効に低減される。
以下、実施形態4を、図10ないし図12を参照して、上記の各実施形態と異なる点についてのみ詳細に説明する。本実施形態では、送信側の他の通信装置に送信される確認応答の送信頻度を変更するのに加えて、さらにタイマによる確認応答の送信で使用される確認応答送信遅延時間(タイムアウト時間)を変更する。
これにより、他の通信装置から受信されるパケットの連続性に応じて、確認応答の送信頻度とともにタイムアウト時間を動的かつ可変に設定することができる。従って、他の装置との間の通信の状況にかかわらず、受信データに対する確認応答が適切に送信されて通信性能の低下が有効に低減される。
図10は、実施形態4に係る通信装置1bの機能構成の一例を示すブロック図である。図2に示す実施形態1の機能構成に加えて、図10に示すように、実施形態4に係る通信装置1bは、さらに第2のACK送信部29およびタイムアウト時間変更部30を備える。図10の第1のACK送信部25は、図2のACK送信部25と同様である。
第2のACK送信部29は、タイマ管理部14により管理されるタイマを使用して、予め設定されたACK送信遅延時間がタイムアウトした際に、送信側の通信装置へACK(遅延ACK)を送信する。
タイムアウト時間変更部30は、第2のACK送信部29に設定されるタイマのタイムアウト時間を変更する。具体的には、タイムアウト時間変更部30は、連続性判定部26により判定される受信パケットの連続性に基づいて、他の通信装置へ送信すべきACK(遅延ACK)のタイムアウト時間の設定を変更する。
図11は、実施形態4に係る通信装置1bが実行するACK送信判断処理の処理手順の一例を示すフローチャートである。
図11のS31は、図4に示す実施形態1のS31と同様であり、通信装置1bの第1のACK送信部25は、受信したパケット数が、ACK送信頻度として設定されたパケット数以上であるか否かを判定する。
一方、本実施形態において、S31で受信したパケット数がACK送信頻度として設定されたパケット数以上でないと判定された場合(S31:N)、S33で、第2のACK送信部29は、設定されたタイムアウト時間が経過したか否かを判定する。
タイムアウト時間が経過したと判定された場合(S33:Y)、S34へ進み、第2のACK送信部29は、ACK(遅延ACK)を送信し、S35で第2のACK送信部29によるACK送信の判定に使用するタイマを0にリセットする。一方、タイムアウト時間が未だ経過していない場合(S33:N)、ACK(遅延ACK)を送信することなく、処理を終了する。
図12のS41ないしS44は、図5に示す実施形態1のS41ないしS44と同様である。
本実施形態において、S42でパケットを連続的に受信していると判定された場合(S42:Y)、S43で、ACK送信頻度変更部27は、より低いACK送信頻度に設定する。その後、S45で、タイムアウト時間変更部30は、設定されているタイムアウト時間をより短く変更する。S45で設定されるより短いタイムアウト時間は、予め決められた値を使用してもよく、例えば計測されたRTTの値に基づいて動的に決定されてもよい。
なお、図12のS45およびS46では、タイムアウト時間を2通りに設定する例を説明したが、第1のACK送信部25に設定されるACK送信頻度の場合と同様、3通り以上の異なるタイムアウト時間を設定してもよい。
また、図12では、受信パケットの連続性に応じて、ACK送信頻度およびタイムアウト時間の双方を変更する例を説明したが、S43およびS44を省略してタイムアウト時間のみを変更してもよく、またS45およびS46のいずれか一方を省略してもよい。
受信パケットの連続性がある場合、例えばバースト的にデータ受信できている場合には、確認応答の送信頻度がより低く変更される。このため、例えばMSS未満の小さいセグメント長のパケットを連続して受信している状況であると確認応答の送信が遅延し、送信側の通信装置からのパケット送信も遅延してしまう。本実施形態では、受信パケットの連続性がある場合に、タイムアウト時間を短く変更するため、データを連続してバースト受信している際に速やかに確認応答を送信側の通信装置へ送信することで、データ送信の遅延が低減される。
これにより、他の通信装置から受信されるパケットの連続性に応じて、確認応答の送信頻度とともにタイムアウト時間を動的かつ可変に設定することができる。従って、他の装置との間の通信の状況にかかわらず、受信データに対する確認応答が適切に送信されて通信性能の低下が有効に低減される。
<他の実施形態>
なお、上述した各実施形態は、その複数を組み合わせて実現することが可能である。
また、本発明は、上述の実施形態の1以上の機能を実現するプログラムによっても実現可能である。すなわち、そのプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータ(またはCPUやMPU等)における1つ以上のプロセッサーがプログラムを読出し実行する処理により実現可能である。また、そのプログラムをコンピュータ可読な記録媒体に記録して提供してもよい。
また、上述した各実施形態を、複数の機器、例えば、ホストコンピュータ、インタフェース機器、撮像装置、ウェブアプリケーション等から構成されるシステムに適用してもよく、1つの機器からなる装置に適用してもよい。
また、コンピュータが読みだしたプログラムを実行することにより、実施形態の機能が実現されるものに限定されない。例えば、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって上記した実施形態の機能が実現されてもよい。
Claims (12)
- 他の装置からパケットを受信する受信手段と、
前記受信手段により所定の数のパケットが受信された際に、前記他の装置へ確認応答を送信する送信手段と、
前記受信手段によりパケットが連続して受信されているか否かを判定する判定手段と、
パケットが連続して受信されていると判定された場合の方が、パケットが連続して受信されていると判定されなかった場合より前記所定の数が大きくなるよう前記所定の数を変更して、前記送信手段に、変更された前記所定の数のパケットが受信された際に前記他の装置へ前記確認応答を送信させるよう制御する制御手段と、
を備えることを特徴とする通信装置。 - 前記制御手段は、パケットが連続して受信されていると判定された場合に、前記所定の数が大きくなるよう変更する、
ことを特徴とする請求項1に記載の通信装置。 - 前記制御手段は、パケットが連続して受信されていないと判定された場合に、前記所定の数が小さくなるよう変更する、
ことを特徴とする請求項1または2に記載の通信装置。 - 前記判定手段は、所定の時間内に受信されるパケットの数をカウントし、カウントされたパケットの数が閾値以上である場合に、パケットが連続して受信されていると判定する、
ことを特徴とする請求項1から3のいずれか1項に記載の通信装置。 - 前記判定手段は、受信されたパケットごとにシーケンス番号およびペイロード長を取得し、前回受信されたパケットのシーケンス番号にペイロード長を加算した値が今回受信されたパケットのシーケンス番号と一致する場合に、今回受信された当該パケットの数をカウントする、
ことを特徴とする請求項4に記載の通信装置。 - パケットを送信して当該パケットの往復遅延時間を計測する計測手段をさらに備え、
前記判定手段は、前記計測手段により計測された前記往復遅延時間が所定の閾値未満である間に受信されたパケットの数をカウントする、
ことを特徴とする請求項4に記載の通信装置。 - 前記他の通信装置の輻輳ウインドウサイズを算出する算出手段をさらに備え、
前記判定手段は、前記算出手段により算出された前記他の通信装置の前記輻輳ウインドウサイズが所定の閾値以上である場合に、パケットが連続して受信されていると判定する、
ことを特徴とする請求項1から6のいずれか1項に記載の通信装置。 - 前記算出手段は、前記他の通信装置から受信されるパケットを前記通信装置から送信されるパケットとした場合に適用すべき輻輳アルゴリズムに基づいて、前記他の通信の前記輻輳ウインドウサイズを算出する、
ことを特徴とする請求項7に記載の通信装置。 - 前記判定手段によるパケットが連続して受信されているか否かの判定結果に基づいて、前記確認応答のタイムアウト時間を変更する変更手段をさらに備える、
ことを特徴とする請求項1から8のいずれか1項に記載の通信装置。 - 前記変更手段は、パケットが連続して受信されていると判定された場合に、前記タイムアウト時間を短くなるよう変更し、パケットが連続して受信されていないと判定された場合に、前記タイムアウト時間を長くなるよう変更する、
ことを特徴とする請求項9に記載の通信装置。 - 他の装置からパケットを受信するステップと、
所定の数のパケットが受信された際に、前記他の装置へ確認応答を送信するステップと、
パケットが連続して受信されているか否かを判定するステップと、
パケットが連続して受信されていると判定された場合の方が、パケットが連続して受信されていると判定されなかった場合より前記所定の数が大きくなるよう前記所定の数を変更して、変更された前記所定の数のパケットが受信された際に前記他の装置へ前記確認応答が送信されるよう制御するステップと、
を備えることを特徴とする通信装置の制御方法。 - コンピュータを、請求項1から10のいずれか1項に記載の通信装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018156089A JP7214396B2 (ja) | 2018-08-23 | 2018-08-23 | 通信装置、通信装置の制御方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018156089A JP7214396B2 (ja) | 2018-08-23 | 2018-08-23 | 通信装置、通信装置の制御方法およびプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020031346A true JP2020031346A (ja) | 2020-02-27 |
JP2020031346A5 JP2020031346A5 (ja) | 2021-09-09 |
JP7214396B2 JP7214396B2 (ja) | 2023-01-30 |
Family
ID=69624415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018156089A Active JP7214396B2 (ja) | 2018-08-23 | 2018-08-23 | 通信装置、通信装置の制御方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7214396B2 (ja) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11145989A (ja) * | 1997-11-13 | 1999-05-28 | Matsushita Electric Ind Co Ltd | Atm通信装置及びatm通信方法 |
JP2004208032A (ja) * | 2002-12-25 | 2004-07-22 | Meta Protocol Kk | 無線通信機能を備えたコンピュータのための通信制御方法、コンピュータ通信制御プログラム、それを格納したコンピュータおよび記録媒体 |
JP2005086375A (ja) * | 2003-09-05 | 2005-03-31 | Ntt Docomo Inc | パケット送信量制御方法、通信システム、通信装置及びプログラム |
JP2006060674A (ja) * | 2004-08-23 | 2006-03-02 | Nec Corp | 通信装置、データ通信方法およびプログラム |
JP2007235976A (ja) * | 2007-03-27 | 2007-09-13 | Kyocera Corp | データ通信装置 |
WO2011052201A1 (ja) * | 2009-11-02 | 2011-05-05 | パナソニック株式会社 | 通信端末および通信方法 |
JP2016019198A (ja) * | 2014-07-09 | 2016-02-01 | キヤノン株式会社 | 通信装置、通信装置の制御方法、プログラム |
JP2018085674A (ja) * | 2016-11-25 | 2018-05-31 | 富士通株式会社 | 情報処理装置、分析プログラム及び分析方法 |
-
2018
- 2018-08-23 JP JP2018156089A patent/JP7214396B2/ja active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11145989A (ja) * | 1997-11-13 | 1999-05-28 | Matsushita Electric Ind Co Ltd | Atm通信装置及びatm通信方法 |
JP2004208032A (ja) * | 2002-12-25 | 2004-07-22 | Meta Protocol Kk | 無線通信機能を備えたコンピュータのための通信制御方法、コンピュータ通信制御プログラム、それを格納したコンピュータおよび記録媒体 |
JP2005086375A (ja) * | 2003-09-05 | 2005-03-31 | Ntt Docomo Inc | パケット送信量制御方法、通信システム、通信装置及びプログラム |
JP2006060674A (ja) * | 2004-08-23 | 2006-03-02 | Nec Corp | 通信装置、データ通信方法およびプログラム |
JP2007235976A (ja) * | 2007-03-27 | 2007-09-13 | Kyocera Corp | データ通信装置 |
WO2011052201A1 (ja) * | 2009-11-02 | 2011-05-05 | パナソニック株式会社 | 通信端末および通信方法 |
JP2016019198A (ja) * | 2014-07-09 | 2016-02-01 | キヤノン株式会社 | 通信装置、通信装置の制御方法、プログラム |
JP2018085674A (ja) * | 2016-11-25 | 2018-05-31 | 富士通株式会社 | 情報処理装置、分析プログラム及び分析方法 |
Also Published As
Publication number | Publication date |
---|---|
JP7214396B2 (ja) | 2023-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10924421B2 (en) | Packet transmission method, terminal, network device, and communications system | |
US9641650B2 (en) | TCP proxy server | |
US9124547B2 (en) | System and method for enforcing uplink wireless medium usage in wireless networks | |
EP3648503A1 (en) | Congestion control method and related device | |
US9674101B2 (en) | Communication device, transmission data output control method, and program for same | |
US10412634B2 (en) | Predictive adaptive queue management | |
US10524175B2 (en) | Data transmission method and network device | |
WO2018177014A1 (zh) | 一种调整终端发送数据的速率的方法及装置 | |
KR20170142513A (ko) | 다중망 병합 전송 장치, 그리고 이의 패킷 스케줄링 방법 | |
US20140325064A1 (en) | Controlling Establishment of Multiple TCP Connections | |
KR20190011898A (ko) | 무선 통신 시스템에서 단말, 기지국 및 이의 통신 방법 | |
JP6217424B2 (ja) | 制御装置及び制御方法 | |
US20080285447A1 (en) | Session Relaying Apparatus, Session Relay Method, and Session Relay Program | |
JP7214396B2 (ja) | 通信装置、通信装置の制御方法およびプログラム | |
JP6758858B2 (ja) | 通信装置、通信方法及びプログラム | |
JP6223942B2 (ja) | 無線通信環境に応じてアグリゲーション量を変更可能な無線通信装置、無線通信プログラム及び方法 | |
EP2890179A1 (en) | Method, apparatus and computer program for data transfer | |
JP7286513B2 (ja) | 通信装置、通信装置の制御方法、及びプログラム | |
JP2016019198A (ja) | 通信装置、通信装置の制御方法、プログラム | |
JP6897769B2 (ja) | データ送信装置、方法およびプログラム | |
US20230137775A1 (en) | Base station, wireless communication system, and wireless communication method | |
JP6568571B2 (ja) | データ転送装置、データ転送方法および通信装置 | |
JP6174365B2 (ja) | 基地局及び方法 | |
US20150295957A1 (en) | Data transmitting device, data transmitting method, and communication device | |
JP2016096391A (ja) | 通信装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210729 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220726 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220922 |
|
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: 20221220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230118 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7214396 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |