JP2019201249A - 通信装置、通信装置の制御方法、およびプログラム - Google Patents

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

Info

Publication number
JP2019201249A
JP2019201249A JP2018093223A JP2018093223A JP2019201249A JP 2019201249 A JP2019201249 A JP 2019201249A JP 2018093223 A JP2018093223 A JP 2018093223A JP 2018093223 A JP2018093223 A JP 2018093223A JP 2019201249 A JP2019201249 A JP 2019201249A
Authority
JP
Japan
Prior art keywords
transmission data
checksum value
transmission
unit
communication
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
JP2018093223A
Other languages
English (en)
Other versions
JP7142462B2 (ja
JP2019201249A5 (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 JP2018093223A priority Critical patent/JP7142462B2/ja
Publication of JP2019201249A publication Critical patent/JP2019201249A/ja
Publication of JP2019201249A5 publication Critical patent/JP2019201249A5/ja
Application granted granted Critical
Publication of JP7142462B2 publication Critical patent/JP7142462B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Communication Control (AREA)

Abstract

【課題】より大きいサイズを有する送信データに対するパケット化処理を行う際に、事前に計算されたチェックサム値を活用する。【解決手段】通信装置は、複数のパケットに対応する送信データをDMA(Direct Memory Access)により送信バッファへ転送し、該送信データの転送に並行して、該送信データに対する第1のチェックサム値を計算し、該転送された該送信データに対するパケット化処理を行う際に、該第1のチェックサム値を利用してパケット化処理を行うことで、複数のパケットを生成する。【選択図】図2

Description

本発明は、通信装置、通信装置の制御方法、およびプログラムに関する。
従来、パケット通信において、通信の信頼性を保証するため、送信側から送信されたパケットを受信した受信側が、ACKと呼ばれる確認応答を用いる通信方式が利用されている。例えば、インターネット通信において広く利用されているTCP/IP(Transmission Control Protocol/Internet Protocol)では、送信側は、送信データをセグメントにチャンク化してパケット化して送信する。受信側は、セグメントをオクテット単位にシーケンス番号で管理し、受信に成功したセグメントのシーケンス番号をACKとして応答する。また、送信側は、所定時間内にACKを受信しなかったセグメントを含むパケットの再送を行う。
TCP/IPのプロトコル処理では、送信側は、通信データのパケット化や再送処理のために、ネットワークバッファを用意している。近年、TCP/IPのプロトコル処理では、CPU(Central Processing Unit)による処理軽減および高速送信を実現可能なパケット化技術が用いられている。例えば、指定されたユーザデータをソケットAPI send()のコール毎にネットワークバッファへの転送とチェックサム計算を同時にハードウェアオフロードで処理を行い、転送時に計算された(事前に計算された)チェックサム値を用いてCPU処理でパケット化する技術である。この技術では、所定の送信単位である1MSS(Maximum Segment Size)以下のデータサイズが、一つずつCPU処理でパケット化される。
国際公開第2010/073671号
しかしながら、従来の技術では、より大きいサイズを有する送信データに対するパケット化処理を行う際に、事前に計算されたチェックサム値を活用することができなかった。
本発明は、上記課題に鑑みてなされたものであり、より大きいサイズを有する送信データに対するパケット化処理を行う際に、事前に計算されたチェックサム値を活用することを目的とする。
上記目的を達成するための一手段として、本発明の通信装置は以下の構成を有する。すなわち、通信装置であって、複数のパケットに対応する送信データをDMA(Direct Memory Access)により送信バッファへ転送する転送手段と、前記転送手段による前記送信データの転送に並行して、当該送信データに対する第1のチェックサム値を計算する第1の計算手段と、前記転送手段により転送された前記送信データに対するパケット化処理を行う際に、前記第1の計算手段により計算された前記第1のチェックサム値を利用してパケット化処理を行うことで、複数のパケットを生成する第1の生成手段と、有する。
本発明によれば、より大きいサイズを有する送信データに対するパケット化処理を行う際に、事前に計算されたチェックサム値を活用することが可能となる。
実施形態における通信装置のハードウェア構成例を示す。 実施形態における通信装置のソフトウェア構成例を示す。 実施形態1におけるデータ送信処理を説明するフローチャートである。 実施形態2におけるデータ送信処理を説明するフローチャートである。
以下、添付の図面を参照して、本発明をその実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
[実施形態1]
送信側におけるTCP/IPパケット生成の一般的な処理では、まず、ソケットAPI send()によって指定されたユーザデータがネットワークバッファに転送され、MTU(maximum transmission unit)にチャンク化される。そして、チャンク化されたデータと擬似ヘッダのチェックサムが計算され、TCPヘッダとIPヘッダが追加されたTCT/IPパケットが生成される。伝送経路がイーサネット(登録商標)の場合、これらのヘッダに加えて、イーサネットヘッダが付加されたイーサネットフレームが生成され、送信される。受信側は、セグメントをオクテット単位にシーケンス番号で管理し、受け取ったセグメントのシーケンス番号をACKとして応答する必要がある。
TCP/IPのプロトコル処理では、送信側のパケット送信の度に受信側がACKを送信することによる通信速度の低下を回避するために、所定の送信ウィンドウサイズを利用するウィンドウ制御が行われる。TCP/IPのウィンドウ制御では、受信側は、受信バッファの残りサイズを送信ウィンドウサイズに設定したACKを送信し、送信側は、送信ウィンドウサイズになるまでACKを待つことなく送信データを送信することができる。更に、TCP/IPのウィンドウ制御では、通信速度をより向上させるために、スライディングウィンドウが用いられる。スライディングウィンドウでは、受信側はパケットを受信する度にACKを送信し、送信側は最初のACKを受信するとウィンドウをスライドさせて、ACKを待つことなくウィンドウサイズ分のデータを連続的に送信することが可能となる。
上述したように、近年では、CPUによる処理軽減及び高速送信のため、事前に計算したチェックサム値を用いて1MSS以下のデータサイズを、一つずつCPU処理でパケット化する技術が用いられている。また、送信データのセグメントチャンク化処理と、チャンク化したセグメントのIPパケット化処理をネットワークI/Fでハードウェアオフロードがする技術が用いられている。このような技術は、TSO(TCP Segmentation Offload)機能により実現化されている(特許文献1参照)。TSO機能は、NIC(Network Interface Card)などのハードウェアオフロードで実施することが一般的である。TSO機能を用いることで、アプリケーションデータを従来のMSS単位よりも大きいデータ単位でハードウェアオフロードに送信要求を行い、ハードウェアオフロードにてMSS単位にチャンク化してネットワークに連続送信することが可能となる。一方、TSO機能によっても、事前にユーザデータをネットワークバッファへ転送時にハードウェアオフロードで計算したチェックサム値を活用した複数のIPパケット化処理ができない。
本実施形態では、MSSを超えるデータに対しても、事前に計算したチェックサム値を活用した複数のIPパケット生成処理を行うことを可能とする通信装置について説明する。
(通信装置10の構成)
図1に、実施形態1における通信装置10のハードウェア構成例を示す。通信装置10は、そのハードウェア構成として、RAM(Random Access Memory)101、ROM(Read Only Memory)103、CPU102、通信部110を有する。これらの構成要素は通常の通信装置と同様であるが、本実施形態における通信装置10は更に、データ転送部105、フレーム生成部106、パケット生成部107、チェックサム計算部111を有する。以下、各構成要素について説明する。
RAM101は、各種データの保存やワークメモリとして使用される。RAM101は、送信データを格納して管理するための送信バッファ112を有する。ROM103は、CPU102により実行される各種プログラム等を記憶する。CPU102は、RAM101をワークメモリとして、ROM103や、図示していないハードディスクなどのプログラム格納部としての記録媒体に格納された各種プログラムを実行し得る。
通信部110は、MAC(Media Access Control)モジュール108とPHY(Physical Layer)モジュール109を有し、Ethernet(商標登録)などのネットワークを介した通信相手装置との通信を行う。データの送受信は、CPU102によりネットワークドライバが実行され、これに応じてMACモジュール108が制御されることにより行われる。なお、本実施形態では、通信部110は、イーサネット(登録商標)を介した通信を行うものとするが、これに替えて、無線LAN(Wi−Fi)など、IP通信可能な媒体を介して通信を行うことも可能である。
データ転送部105は、例えばDMA(Direct Memory Access)により構成され、通信装置10内部でデータを転送する。例えば、データ転送部105は、RAM101に記憶されているデータを、フレーム生成部106やパケット生成部107に転送する。データ転送部105は、CPU102により転送制御されてもよい。チェックサム計算部111は、RAM101に記憶されているデータに対してチェックサム計算を行う。フレーム生成部106は、送信する送信データサイズを決定し、決定したサイズの送信データと、送信データに対するヘッダ情報を生成するためのヘッダ情報の生成処理を行う。パケット生成部107は、フレーム生成部106により生成された送信データとヘッダ情報に基づいて、送信データのセグメント化およびヘッダの生成を行い、当該セグメントとヘッダから送信パケットを生成する。タイマ管理部104は、パケット送信に関して必要な所定時間を管理する。なお、以下に説明する(送信)パケットは、IP通信上で送受信されるデータの単位である。このパケットの組み立て方法については、本実施形態の本質ではないので、説明を省略する。
図2は、本実施形態における通信装置10の機能構成例を示す。アプリケーション201は、ユーザアプリケーションを指す。本実施形態では、アプリケーション201は、ソケットAPI send()を呼び出すアプリケーションであり、これにより、任意のサイズの、送信対象のアプリケーションデータ(送信データ)がプロトコルスタック202に入力される。
プロトコルスタック202は、ネットワークバッファ管理部203、セグメント処理部204、通信プロトコル処理部205、コネクション管理部206、TCPウィンドウ制御部207、輻輳制御部208から構成される。ネットワークバッファ管理部203は、アプリケーション201から入力された送信データを、RAM101の送信バッファ112(図1)に格納して管理する。ネットワークバッファ管理部203はまた、送信バッファ112に格納されている送信データのサイズを管理する。コネクション管理部206は、通信装置10の通信コネクションに関する情報を管理する。例えば、コネクション管理部206は、通信コネクションにおけるMSS(Maximum Segment Size)等のコネクション情報を管理する。TCPウィンドウ制御部207は、通信インタフェース制御部209を介して通信相手装置から受信したACK(確認応答)から、TCPコネクションの送信ウィンドウサイズを取得し、管理する。輻輳制御部208は、TCPコネクションにおける輻輳制御を管理する。例えば、輻輳制御部208は、アプリケーション201に対する通信コネクションにおける輻輳ウィンドウサイズを管理する。送信ウィンドウサイズと輻輳ウィンドウサイズは、送信データサイズを決定するために使用され得る。
セグメント処理部204は、ネットワークバッファ管理部203、コネクション管理部206、TCPウィンドウ制御部207、輻輳制御部208で管理されている情報等に基づいて、送信データサイズ(送信可能な全体の送信データのサイズ)を決定する。すなわち、RAM101内の送信バッファ112に格納されている送信データのサイズ、MSS、送信ウィンドウサイズ、輻輳ウィンドウサイズ等に基づいて、送信データサイズが決定される。通信プロトコル処理部205は、パケット生成部107を制御して、TCPセグメントのTCPヘッダやIPヘッダの生成と、それに伴うチェックサム計算等の処理を行う。そして、通信プロトコル処理部205は、これらの処理から得られたデータから、パケット化処理を行って送信パケットを生成する。
データ転送部400は、データ転送部105とチェックサム計算部111(図1)に対応し、チャンク部401、チェックサム計算部402から構成される。チャンク部401は、送信データを、データ転送するための所定の単位(例えばMSS単位)にチャンク化する。チェックサム計算部402は、チャンク部401によりチャンク化された各データに対してチェックサム計算を行う。
パケット生成部300は、データ転送部105、パケット生成部107、チェックサム計算部111(図1)に対応し、データ転送部301、ヘッダ生成部302、パケット生成部303から構成される。データ転送部301は、送信データを所定の単位(例えばMSS単位)へのチャンク化し、チャンク化した各データに対してチェックサム計算を行う。ヘッダ生成部302は、フレーム生成部106により生成されたヘッダ情報に基づいて、TCP/IPヘッダとイーサネットヘッダを生成する。パケット生成部303は、データ転送部301とヘッダ生成部302から出力されたデータから、パケット化処理を行って送信パケットを生成する。
本実施形態では、セグメント処理部204により決定された送信データサイズに応じて、通信プロトコル処理部205またはパケット生成部300が、送信パケットを生成する。送信パケットの生成手法については、図3を用いて後述する。
通信プロトコル処理部205またはパケット生成部300により生成された送信パケットは、通信インタフェース制御部209に入力される。通信インタフェース制御部209は、プロトコルスタック202と通信インタフェース210との間でデータや情報のやり取りを担う。通信インタフェース210は、図1のMACモジュール108、PHYモジュール109に対応し、ネットワークと通信を行う。送信パケットの送信は、タイマ管理部104により一定時間以上経過したことが通知された場合に、行われてもよい。
(処理の流れ)
次に、図3を参照して、本実施形態における処理について説明する。図3は、本実施形態におけるデータ送信処理を説明するフローチャートである。本フローチャートは、ソケットAPI send()(以下、send())によるデータ送信処理を想定する。
まず、ステップS101において、CPU102により、ROM103に格納されている所定のプログラムが実行されることに応じて、アプリケーション201は、send()を呼び出す。send()が呼び出されると、データ転送部105は、ステップS102で、データ転送先であるRAM101内の送信バッファ114へ送信データを転送する。それと並行して、チャンク部401は、送信データをMSS単位にチャンク化し、チェックサム計算部402は、チャンク化されたデータに対してチェックサム計算する。なお、上述したように、チャンク部401とチェックサム計算部402を含むデータ転送部400(図2)は、データ転送部105とチェックサム計算部111(図1)に対応する。
ステップS103では、ネットワークバッファ管理部203が、チャンク化されたデータと、チャンク化されたデータに対するチェックサム値を関連付けし、送信バッファ112に格納する。ステップS104では、セグメント処理部204が、送信バッファ114に格納されている送信データ(チャンク化された一連のデータ)のサイズが、TCPウィンドウ制御部207により管理されている送信ウィンドウサイズを超えるかどうかを判定する。送信バッファ114に格納されている送信データのサイズが送信ウィンドウサイズを超えない場合は(ステップS104でNo)、処理はステップS105に進む。ステップS105では、セグメント処理部204は、送信バッファ114に格納されている送信データのサイズを、送信データサイズとして決定する。一方、送信バッファ114に格納されている送信データのサイズが送信ウィンドウサイズ超える場合は(ステップS104でYes)、処理はステップS106に進む。ステップS106では、セグメント処理部204は、送信ウィンドウサイズを、送信データサイズとして決定する。
ステップS107では、通信プロトコル処理部205が、ステップS106またはS105で決定した送信データサイズが、コネクション管理部206で管理されているMSSを超えるかどうか判定する。決定した送信データサイズがMSSを超えない場合は(ステップS107でNo)、処理はステップS108に進む。ステップS108では、通信プロトコル処理部205は、送信データに対するチェックサムを計算してTCP/IPヘッダを生成し、TCP/IPヘッダと送信データ(セグメント)を連結してパケット化し、TCP/IPパケットを生成する。通信プロトコル処理部205は、更に、イーサネットヘッダを生成し、生成したイーサネットヘッダを用いて、生成したTCP/IPパケットをイーサネットフレーム化し、ステップS114に進む。
一方、決定した送信データサイズがMSSを超える場合は(ステップS107でYes)、処理はステップS109へ進む。ステップS109では、フレーム生成部106は、TCP/IPヘッダとイーサネットヘッダを生成するための情報としてヘッダ情報を生成し、ステップS110へ進む。ステップS110〜S113の処理は、パケット生成部300による処理である。なお、上述したように、パケット生成部300(図2)は、データ転送部105、パケット生成部107、チェックサム計算部111(図1)に対応する。
ステップS110では、データ転送部301は、ステップS102で計算されたチェックサム値が利用可能かどうかを判定する。ステップ102で計算されたチェックサム値は、ステップS103で、チャンク化されたデータと関連付けられて送信バッファ112に格納されている。しかしながら、S104からのS105またはS106の処理を経て、送信データサイズに基づいて決定される実際の送信データ(実送信データ)は変わり得る。例えば、実送信データが、複数のチャンクに跨ることもあり得る。よって、ステップS110では、データ転送部301が、ステップS102で計算されたチェックサム値が実送信データに対応するか否かを判定する。
ステップS110の判定の結果、ステップS102で計算されたチェックサム値が利用可能でない場合は(ステップS110でNo)、処理はステップS111へ進む。ステップS111では、データ転送部301は、実送信データがMSS単位にチャンク化された各セグメントに対するチェックサム計算(再計算)を行う。続いて、ヘッダ生成部302は、ステップS109で生成されたヘッダ情報を使用し、各セグメントに対してTCP/IPヘッダとイーサネットヘッダを(自動)生成する。ステップS113では、パケット生成部303は、S111で生成されたTCP/IPヘッダと各セグメントを連結し、TCP/IPパケット化した後、イーサネットヘッダを付加し、イーサネットフレーム化する。
ステップS102で計算されたチェックサム値が利用可能である場合は(ステップS110でYes)、処理はステップS112へ進む。ステップS112では、ヘッダ生成部302は、ステップS102で計算されたチェックサム値と、ステップS109で生成されたヘッダ情報を使用し、各セグメントに対して、TCP/IPヘッダとイーサネットヘッダを(自動)生成する。ステップS113では、パケット生成部303は、S112で生成されたTCP/IPヘッダと各セグメントを連結し、TCP/IPパケット化した後、イーサネットヘッダを付加し、イーサネットフレーム化する。なお、一度に連結できるセグメントの数は、輻輳ウィドウサイズに基づいて決定され得る。ステップS114では、通信プロトコル処理部205は、イーサネットフレームを通信インタフェース制御部209に送信し、処理を終了する。
このように、送信データサイズがMSSを超える場合であっても、事前にハードウェアで計算したチェックサム値を用いてIPパケット化処理を行うことができる。また、事前にハードウェアで計算したチェックサム値を用いることができない場合であっても、ハードウェアで再計算したチェックサム値を用いて、IPパケット化処理を行うことができる。なお、ステップS110〜S113におけるハードウェアによる処理を、ソフトウェアで処理を実行した場合においても、本実施形態を適用可能である。また、本実施形態では、通信インタフェースが一つ存在する例を挙げたが、通信インタフェースが複数の場合にも本実施形態を適用することができる。また、本実施形態では、TCP/IPプロトコルを例にして説明したが、UDP(User Datagram Protocol)プロトコル等の他のプロトコルを適用することも可能である。
[実施形態2]
続いて、実施形態2について説明する。なお、本実施形態において、実施形態1と同様の構成については、同一符号を付して、その詳細説明を省略する。
(処理の流れ)
図4を参照して、本実施形態における処理について説明する。図4は、本実施形態におけるデータ送信処理を説明するフローチャートである。本フローチャートは、ソケットAPI send()によるデータ送信処理を想定する。なお、S201〜S210の処理は、実施形態1において説明した図3のステップS101〜S110と同様の処理のため、説明を省略する。
ステップS210では、データ転送部301は、ステップS202で計算されたチェックサム値が利用可能かどうかを判定する。ステップS202で計算されたチェックサム値が利用可能でない場合は(ステップS210でNo)、処理はステップS211へ進む。ステップS211では、データ転送部301は、実送信データがMSS単位にチャンク化されているかどうかを判定する。ステップS202において、送信データはチャンク化されているが、S104からのS105またはS106の処理を経て、送信データサイズに対応する送信データ(実送信データ)は変わり得る。よって、S211では、データ転送部301は、実送信データがMSS単位にチャンク化されているか、すなわち、フラグメント化されているかを判定する。
実送信データがMSS単位にチャンク化されていない場合は(ステップS211でNo)、処理はステップS212へ進む。ステップS212では、データ転送部301は、実送信データをセグメントサイズへチャンク化し、チャンク化した各送信データ(セグメント)に対するチェックサム計算(再計算)を行う。続いて、ヘッダ生成部302は、ステップS209で生成されたヘッダ情報を使用し、各セグメントに対してTCP/IPヘッダとイーサネットヘッダを(自動)生成する。ステップS215では、パケット生成部303は、S212で生成されたTCP/IPヘッダとセグメントを連結し、TCP/IPパケット化した後、イーサネットヘッダを付加し、イーサネットフレーム化する。
実送信データがMSS単位にチャンク化されている場合は(ステップS211でYes)、処理はステップS213へ進む。ステップS213では、データ転送部301は、チャンク化された各送信データ(セグメント)のチェックサム計算を行う。また、ヘッダ生成部302は、ステップS209で生成されたヘッダ情報を使用し、各セグメントに対してTCP/IPヘッダとイーサネットヘッダを(自動)生成する。ステップS215では、パケット生成部303は、S213で生成されたTCP/IPヘッダとセグメントを連結し、TCP/IPパケット化した後、イーサネットヘッダを付加し、イーサネットフレーム化する。
ステップS202で計算されたチェックサム値が利用可能である場合は(ステップS210でYes)、処理はステップS214へ進む。ステップS214では、ヘッダ生成部302は、ステップS202で計算されたチェックサム値と、ステップS109で生成されたヘッダ情報を使用し、各セグメントに対して、TCP/IPヘッダとイーサネットヘッダを(自動)生成する。ステップS215では、パケット生成部303は、S214で生成されたTCP/IPヘッダとセグメントを連結し、TCP/IPパケット化した後、イーサネットヘッダを付加し、イーサネットフレーム化する。なお、一度に連結できるセグメントの数は、輻輳ウィドウサイズに基づいて決定され得る。ステップS216では、通信プロトコル処理部205は、イーサネットフレームを通信インタフェース制御部209に送信し、処理を終了する。
このように、送信データサイズがMSSを超える場合であっても、事前にハードウェアで計算したチェックサム値を用いてIPパケット化処理を行うことができる。また、事前にハードウェアで計算したチェックサム値を用いることができない場合や、実送信データがチャンク化されていない場合であっても、ハードウェアで再計算したチェックサム値を用いて、IPパケット化処理を行うことができる。なお、ステップS210〜S215におけるハードウェアによる処理を、ソフトウェアで処理を実行した場合においても、本実施形態を適用可能である。また、本実施形態では、通信インタフェースが一つ存在する例を挙げたが、通信インタフェースが複数の場合にも本実施形態を適用することができる。また、本実施形態では、TCP/IPプロトコルを例にして説明したが、UDPプロトコル等の他のプロトコルを適用することも可能である。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101 RAM、102 CPU、103 ROM、104 タイマ管理部、105 データ転送部、106 フレーム生成部、107 パケット生成部、108 MACモジュール、109 PHYモジュール、110 通信部、111 チェックサム計算部

Claims (11)

  1. 通信装置であって、
    複数のパケットに対応する送信データをDMA(Direct Memory Access)により送信バッファへ転送する転送手段と、
    前記転送手段による前記送信データの転送に並行して、当該送信データに対する第1のチェックサム値を計算する第1の計算手段と、
    前記転送手段により転送された前記送信データに対するパケット化処理を行う際に、前記第1の計算手段により計算された前記第1のチェックサム値を利用してパケット化処理を行うことで、複数のパケットを生成する第1の生成手段と、
    を有することを特徴とする通信装置。
  2. 通信相手装置へ送信する際の送信データサイズを決定する決定手段と、
    前記決定手段により決定された前記送信データサイズに基づいて、前記第1のチェックサム値が利用可能かを判定する判定手段と、
    前記判定手段により前記第1のチェックサム値が利用可能と判定された場合、前記第1の生成手段が複数のパケットを生成することを特徴とする請求項1に記載の通信装置。
  3. 前記決定手段は、前記通信相手装置から受信した情報に基づいて、前記送信データサイズを決定することを特徴とする請求項2に記載の通信装置。
  4. 前記転送手段により転送された前記送信データに対するパケット化処理を行う際に、第2のチェックサム値を計算する第2の計算手段と、
    前記転送手段により転送された前記送信データに対するパケット化処理を行う際に、前記第2の計算手段により計算された前記第2のチェックサム値を利用してパケット化処理を行うことで、複数のパケットを生成する第2の生成手段と、
    を更に有し、
    前記判定手段により前記第1のチェックサム値が利用可能でないと判定された場合、前記第2の生成手段が複数のパケットを生成することを特徴とする請求項2または3に記載の通信装置。
  5. 前記判定手段により前記第1のチェックサム値が利用可能でないと判定された場合、前記送信データをチャンク化するチャンク化手段を更に有し、
    前記第2の計算手段は、前記チャンク化手段によりチャンク化された各セグメントについて、前記第2のチェックサム値を計算することを特徴とする請求項4に記載の通信装置。
  6. 前記第1のチェックサム値を前記送信データと関連付けてメモリで管理する管理手段を更に有し、
    前記判定手段は、前記メモリを参照することにより、前記第1のチェックサム値が利用可能かを判定することを特徴とする請求項2から5のいずれか1項に記載の通信装置。
  7. 前記第1のチェックサム値は、前記送信データを構成する各セグメントに対するチェックサム値であることを特徴とする請求項1から6のいずれか1項に記載の通信装置。
  8. 前記第1の生成手段は、前記第1のチェックサム値を用いて前記各セグメントに対するヘッダを生成し、前記ヘッダと前記各セグメントを連結することにより、複数のパケットを生成することを特徴とする請求項7に記載の通信装置。
  9. 前記送信データに対するチェックサム値を計算し、当該計算したチェックサム値を利用してパケット化することによりパケットを生成する第3の生成手段を更に有し、
    前記判定手段は、前記決定手段により決定された前記送信データサイズが所定のサイズを超えるか否かを判定し、
    前記判定手段による前記送信データサイズが前記所定のサイズを超えるか否かの判定の結果に基づいて、前記第1の生成手段が複数のパケットを生成するか、前記第3の生成手段がパケットを生成することを特徴とする請求項2から6のいずれか1項に記載の通信装置。
  10. 通信装置の制御方法であって、
    複数のパケットに対応する送信データをDMA(Direct Memory Access)により送信バッファへ転送する転送工程と、
    前記転送工程における前記送信データの転送に並行して、当該送信データに対する第1のチェックサム値を計算する計算工程と、
    前記転送工程において転送された前記送信データに対するパケット化処理を行う際に、前記第1の計算工程において計算された前記第1のチェックサム値を利用してパケット化処理を行うことで、複数のパケットを生成する生成工程と、
    を有することを特徴とする制御方法。
  11. コンピュータを、請求項1から9のいずれか1項に記載の通信装置として機能させるためのプログラム。
JP2018093223A 2018-05-14 2018-05-14 通信装置、通信装置の制御方法、およびプログラム Active JP7142462B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018093223A JP7142462B2 (ja) 2018-05-14 2018-05-14 通信装置、通信装置の制御方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018093223A JP7142462B2 (ja) 2018-05-14 2018-05-14 通信装置、通信装置の制御方法、およびプログラム

Publications (3)

Publication Number Publication Date
JP2019201249A true JP2019201249A (ja) 2019-11-21
JP2019201249A5 JP2019201249A5 (ja) 2021-07-26
JP7142462B2 JP7142462B2 (ja) 2022-09-27

Family

ID=68613292

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018093223A Active JP7142462B2 (ja) 2018-05-14 2018-05-14 通信装置、通信装置の制御方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP7142462B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04352054A (ja) * 1991-05-29 1992-12-07 Toshiba Corp 通信制御装置
JPH0678024A (ja) * 1992-05-29 1994-03-18 Hewlett Packard Co <Hp> ネットワークアダプタシステム
JPH07123128A (ja) * 1993-10-28 1995-05-12 Hitachi Ltd 通信制御装置および通信制御用回路装置
JP2006303765A (ja) * 2005-04-19 2006-11-02 Seiko Epson Corp Tcp/ip送信処理回路及びそれを具備する半導体集積回路
JP2009116386A (ja) * 2007-11-01 2009-05-28 Sony Corp 情報処理装置および方法、並びにプログラム
JP2017108357A (ja) * 2015-12-11 2017-06-15 キヤノン株式会社 演算装置及び演算方法、通信装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04352054A (ja) * 1991-05-29 1992-12-07 Toshiba Corp 通信制御装置
JPH0678024A (ja) * 1992-05-29 1994-03-18 Hewlett Packard Co <Hp> ネットワークアダプタシステム
JPH07123128A (ja) * 1993-10-28 1995-05-12 Hitachi Ltd 通信制御装置および通信制御用回路装置
JP2006303765A (ja) * 2005-04-19 2006-11-02 Seiko Epson Corp Tcp/ip送信処理回路及びそれを具備する半導体集積回路
JP2009116386A (ja) * 2007-11-01 2009-05-28 Sony Corp 情報処理装置および方法、並びにプログラム
JP2017108357A (ja) * 2015-12-11 2017-06-15 キヤノン株式会社 演算装置及び演算方法、通信装置

Also Published As

Publication number Publication date
JP7142462B2 (ja) 2022-09-27

Similar Documents

Publication Publication Date Title
US11012367B2 (en) Technologies for managing TCP/IP packet delivery
US8004981B2 (en) Methods and devices for the coordination of flow control between a TCP/IP network and other networks
US9641650B2 (en) TCP proxy server
US8427945B2 (en) SoC device with integrated supports for Ethernet, TCP, iSCSI, RDMA and network application acceleration
US7385923B2 (en) Method, system and article for improved TCP performance during packet reordering
EP3226507B1 (en) Data transmission method and apparatus
JP2014509483A (ja) ワイヤレスネットワークにおけるトランスミッション・コントロール・プロトコルの性能を改善する機構
EP2632102A1 (en) Method and device for data transmission
US20070014246A1 (en) Method and system for transparent TCP offload with per flow estimation of a far end transmit window
US20070223529A1 (en) Methods and apparatus for estimating bandwidth of a data network
US7480301B2 (en) Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
JP6963411B2 (ja) 通信装置、通信方法、およびプログラム
US11671377B2 (en) System and method for reducing bandwidth usage of a network
US20070291782A1 (en) Acknowledgement filtering
CN104683259A (zh) Tcp拥塞控制方法及装置
WO2019144802A1 (zh) 一种数据的传输方法及其相关设备
US8578040B2 (en) Method, system and article for client application control of network transmission loss tolerance
CN114390054A (zh) 一种核心网网络加速方法、电子设备及计算机存储介质
JP7142462B2 (ja) 通信装置、通信装置の制御方法、およびプログラム
JP2019114947A (ja) 通信装置、通信装置の制御方法およびプログラム
KR102184363B1 (ko) 네트워크 커넥터의 호스트 및 클라이언트와의 통신 방법, 그리고 동일 방법을 수행하는 네트워크 커넥터
JP2012049883A (ja) 通信装置およびパケット処理方法
JP2021087172A (ja) 通信装置、通信方法およびプログラム
KR101933175B1 (ko) 서버와 클라이언트간 통신을 중개하는 중개장치
JP2005044047A (ja) 端末装置及びデータ送信方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210510

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220331

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220913

R151 Written notification of patent or utility model registration

Ref document number: 7142462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151