JP2017183833A - 通信装置およびその制御方法 - Google Patents
通信装置およびその制御方法 Download PDFInfo
- Publication number
- JP2017183833A JP2017183833A JP2016064396A JP2016064396A JP2017183833A JP 2017183833 A JP2017183833 A JP 2017183833A JP 2016064396 A JP2016064396 A JP 2016064396A JP 2016064396 A JP2016064396 A JP 2016064396A JP 2017183833 A JP2017183833 A JP 2017183833A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- ack
- data
- data packet
- generated
- 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
本発明に係る通信装置の第1実施形態として、TCP/IP通信を行う通信装置を例に挙げて以下に説明する。特に、対向装置から到来するデータパケットの受信に先立って、該データ受信に対する確認応答パケット(ACKパケット)の生成処理を開始し、データパケットを受信した場合により短期間でACKパケットを送出可能とする形態について説明する。
図1は、第1実施形態に係るTCP/IPスタックの構成を説明する図である。図2は、図1に示すTCP/IPスタックを搭載した通信装置212の構成を示すブロック図である。
図5は、TCP接続管理機構108の構造を示す図である。TCP接続管理機構108は、TCP接続管理構造体401、生成されたACKパケットを管理するためのACKパケット管理構造体402、TCP管理接続構造体の先頭を保持するTCP接続構造体先頭403を含む。TCP接続管理構造体401は、TCP接続管理構造体先頭403からリンクされる。また、次(後続)のTCP接続管理構造体401へは“次のTCP接続”のポインタによりリンクされている。
S307では、CPU202は、生成済みACK番号と生成予定のACK番号の最大値を比較する。生成済みACK番号が生成予定のACK番号の最大値より小さければS308に進み、生成済みACK番号が生成予定ACK番号の最大値以上であった場合は、S310に進む。
ACKパケットの生成処理(S308)に含まれる各種処理について図5及び図9を参照して説明する。図9(a)は、TCPのACKパケットの構造を示し、図9(b)は、TCPヘッダと仮想ヘッダの構造を示している。
図8は、第1実施形態に係るTCP通信における効果を説明する図である。図8(a)は、従来技術における送受信の動作を示しており、図8(b)は、第1実施形態における送受信の動作を示している。それぞれ、TCP接続確立後の、送信側機器から受信側機器へのデータ送信、受信側機器から送信側機器へのACK送信を例示的に示している。図8において縦方向は時間の経過を示している。特に、受信側機器における「ACK生成」「受信処理」「idle」の各時間を例示的に示している。
送信側機器は、受信側機器のウィンドウサイズ(残りの受信バッファサイズ)分のパケット(ここでは、A、B、C、Dの4個)を送信する。受信側機器は、パケットを受信する毎に受信処理を行う。TCPでは連続して大きなパケットを受信する場合、受信側機器は、2×MSSのデータを受信するとACKを1回送信する。そのため、ここでは、受信側機器は、2個のパケット(A、B)の受信処理を行い、これらの受信処理の完了後、Bまでのパケットを受信したことを示すACK(図における「A+B」)を生成し送信する。同様に、後続の2個のパケット(C、D)の受信処理を行い、これらの受信処理の完了後、Dまでのパケットを受信したことを示すACK(図における「C+D」)を生成し、送信する。
送信側機器は、受信側機器のウィンドウサイズ分のパケット(ここでは、A、B、C、Dの4個)を送信する。受信側機器は、2個のパケット(A、B)の受信処理を行い、これらの受信処理の完了後、Bまでのパケットを受信したことを示すACKを生成し送信する。同様に、2個のパケット(C、D)の受信処理を行い、これらの受信処理の完了後、Dまでのパケットを受信したことを示すACKを生成し、送信する。ここまでの動作は従来技術と同じである。
第2実施形態では、所定の種別の通信接続、例えば、大量のデータを受信するTCP接続のみを対象として、第1実施形態で説明したACKパケットの生成処理を行う形態について説明する。
第3実施形態では、同時接続数に基づいて事前に生成するACKパケットに関して制限を設ける形態について説明する。以下の説明では、同時接続数に基づいて、生成可能なACKパケットの個数の上限値(ACK_MAX)を決定する例について説明する。
第4実施形態では、受信したデータパケットのデータサイズが、予測されたサイズと一致しない場合の動作について説明する。
上述のように、TCPにおいては、受信したデータパケットを単位としたACKパケットを返信しなくとも、正常に通信を継続することが出来る。ただし、受信したパケットを単位としたACKパケットを返信するよう構成してもよい。
ところで、受信したデータパケットのデータサイズが予測されたサイズと相違しかつ図13(b)に示すような応答を行った場合には問題が生じることがある。具体的には、図13(b)のタイミング502−02でACKパケットを送信した後、パケット501−06以降のパケットを受信しなかった場合、受信済みのデータ(パケット501−05の一部)に対するACKパケットは送信されないことになる。そこで、変形例2では、生成したACKパケットに対して強制送信のためのタイマを設け、タイマ発火時に当該ACKパケットを送信する。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Claims (11)
- 通信装置であって、
他の通信装置から送信されるデータパケットに対する確認応答パケットを生成する生成手段と、
前記データパケットを受信した場合に、前記生成手段により生成された該データパケットに対応する確認応答パケットを送信する送信手段と、
を有し、
前記生成手段は、少なくとも一部のデータパケットに対する確認応答パケットの生成処理を該データパケットの受信に先立って開始する
ことを特徴とする通信装置。 - 前記送信手段は、データパケットを受信した際に、該データパケットに対応する確認応答パケットが既に前記生成手段により生成されている場合は、該生成された確認応答パケットを送信し、該データパケットに対応する確認応答パケットが前記生成手段により生成されていない場合は、前記データパケットに対応する確認応答パケットの前記生成手段による生成を待機し、該生成された確認応答パケットを送信する
ことを特徴とする請求項1に記載の通信装置。 - 前記生成手段は、CPUがプログラムを実行することにより実現され、
前記生成手段は、データパケットの受信に先立った該データパケットに対する確認応答パケットの生成処理を、前記CPUにおいて該生成処理より優先度の高いタスクが存在しない場合又は該CPUがアイドル状態にある場合に、実行する
ことを特徴とする請求項1又は2に記載の通信装置。 - 未受信のデータパケットに対して前記生成手段が生成可能な確認応答パケットの個数の上限値を設定する設定手段を更に有する
ことを特徴とする請求項1から3の何れか1項に記載の通信装置。 - 前記通信装置と前記他の通信装置とはTCP(Transmission Control Protocol)に準拠した通信を行い、
既に受信したデータパケットのTCPヘッダに記述されたシーケンス番号と最大セグメントサイズとに基づいて、未受信のデータパケットに対する確認応答パケットの確認応答番号を決定する決定手段を更に有する
ことを特徴とする請求項1から4の何れか1項に記載の通信装置。 - 前記生成手段は、前記他の通信装置との間の通信接続が所定の種別の通信接続であることに応じて、データパケットに対する確認応答パケットの生成処理を該データパケットの受信に先立って開始する
ことを特徴とする請求項1から5の何れか1項に記載の通信装置。 - 前記他の通信装置との間の通信接続が前記所定の種別の通信接続であるか否かを、当該通信接続を使用するアプリケーションによって接続管理構造体に設定されたフラグ及び当該通信接続で利用されるプロトコルスタックによって接続管理構造体に設定されたフラグの少なくとも一方に基づいて判定する判定手段を更に有する
ことを特徴とする請求項6に記載の通信装置。 - データパケットを受信したとき、該データパケットにおけるシーケンス番号とデータサイズとの和と、前記生成手段により既に生成された確認応答パケットの確認応答番号と、を比較する比較手段を有し、
前記比較手段により前記和と一致する前記確認応答番号を有する確認応答パケットが無いと判定された場合、前記送信手段は、前記和よりも小さい前記確認応答番号を有する確認応答パケットを送信する
ことを特徴とする請求項1から7の何れか1項に記載の通信装置。 - データパケットを受信したとき、該データパケットにおけるシーケンス番号とデータサイズとの和と、前記生成手段により既に生成された確認応答パケットの確認応答番号と、を比較する比較手段を有し、
前記比較手段により前記和と一致する前記確認応答番号を有する確認応答パケットが無いと判定された場合、前記生成手段は、前記和よりも小さい前記確認応答番号を有する確認応答パケットの該確認応答番号を前記和の値に書き換え、
前記送信手段は、該書き換えを行った確認応答パケットを送信する
ことを特徴とする請求項1から7の何れか1項に記載の通信装置。 - 通信装置の制御方法であって、
他の通信装置から送信されるデータパケットに対する確認応答パケットを生成する生成工程と、
前記データパケットを受信した場合に、前記生成工程により生成された該データパケットに対応する確認応答パケットを送信する送信工程と、
を含み、
前記生成工程における少なくとも一部のデータパケットに対する確認応答パケットの生成処理は、該データパケットの受信に先立って開始される
ことを特徴とする通信装置の制御方法。 - コンピュータを、請求項1から9の何れか1項に記載の通信装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016064396A JP6688122B2 (ja) | 2016-03-28 | 2016-03-28 | 通信装置およびその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016064396A JP6688122B2 (ja) | 2016-03-28 | 2016-03-28 | 通信装置およびその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017183833A true JP2017183833A (ja) | 2017-10-05 |
JP6688122B2 JP6688122B2 (ja) | 2020-04-28 |
Family
ID=60008688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016064396A Active JP6688122B2 (ja) | 2016-03-28 | 2016-03-28 | 通信装置およびその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6688122B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005051738A (ja) * | 2003-07-28 | 2005-02-24 | Samsung Electronics Co Ltd | モバイルアドホックネットワークにおけるトランスポート層を用いた効率的なデータの送受信方法及びその方法を用いたネットワーク装置 |
JP2006222960A (ja) * | 2005-02-11 | 2006-08-24 | Samsung Electronics Co Ltd | マルチtcp確認応答を用いたtcp輻輳制御システム及びその方法 |
WO2010032533A1 (ja) * | 2008-09-19 | 2010-03-25 | 日本電気株式会社 | ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法 |
JP2014507817A (ja) * | 2011-01-12 | 2014-03-27 | 日本電気株式会社 | 通信装置、パケット再送制御方法、パケット再送制御プログラム |
-
2016
- 2016-03-28 JP JP2016064396A patent/JP6688122B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005051738A (ja) * | 2003-07-28 | 2005-02-24 | Samsung Electronics Co Ltd | モバイルアドホックネットワークにおけるトランスポート層を用いた効率的なデータの送受信方法及びその方法を用いたネットワーク装置 |
JP2006222960A (ja) * | 2005-02-11 | 2006-08-24 | Samsung Electronics Co Ltd | マルチtcp確認応答を用いたtcp輻輳制御システム及びその方法 |
WO2010032533A1 (ja) * | 2008-09-19 | 2010-03-25 | 日本電気株式会社 | ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法 |
JP2014507817A (ja) * | 2011-01-12 | 2014-03-27 | 日本電気株式会社 | 通信装置、パケット再送制御方法、パケット再送制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6688122B2 (ja) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936510B (zh) | 多路径rdma传输 | |
US8311059B2 (en) | Receive coalescing and automatic acknowledge in network interface controller | |
US10430374B2 (en) | Selective acknowledgement of RDMA packets | |
US7953093B2 (en) | TCP/IP reordering | |
US8583831B2 (en) | Thin client discovery | |
WO2014037760A1 (zh) | 增加数据流传输的方法和系统 | |
US8259728B2 (en) | Method and system for a fast drop recovery for a TCP connection | |
JP5074872B2 (ja) | プロトコル処理装置及び制御方法 | |
WO2019001484A1 (zh) | 一种实现发送端调速的方法、装置和系统 | |
US20070291782A1 (en) | Acknowledgement filtering | |
US8761164B2 (en) | Network offloading with reduced packet loss | |
JP6963411B2 (ja) | 通信装置、通信方法、およびプログラム | |
US11700321B2 (en) | Transparent proxy conversion of transmission control protocol (TCP) fast open connection | |
US11349934B2 (en) | Opportunistic transmission control protocol (TCP) connection establishment | |
CN112204934A (zh) | 通信装置、通信方法以及通信程序 | |
JP6688122B2 (ja) | 通信装置およびその制御方法 | |
US7213074B2 (en) | Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet | |
CN103636157B (zh) | 一种ack信息的发送方法及装置 | |
JP2017011580A (ja) | 通信装置およびその制御方法、プログラム | |
US7426589B2 (en) | Network interface card for reducing the number of interrupts and method of generating interrupts | |
JPH11317772A (ja) | データ通信装置及びデータ通信方法 | |
CN117813595A (zh) | 用于远程直接存储器访问的设备和方法 | |
US20070165661A1 (en) | Information-processing system, reception device, and program | |
US9405719B2 (en) | Circuitry to generate and/or use at least one transmission time in at least one descriptor | |
JP2019016842A (ja) | 通信装置および制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190123 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191029 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191101 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191225 |
|
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: 20200306 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200403 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6688122 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |