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

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

Info

Publication number
JP2018097429A
JP2018097429A JP2016238779A JP2016238779A JP2018097429A JP 2018097429 A JP2018097429 A JP 2018097429A JP 2016238779 A JP2016238779 A JP 2016238779A JP 2016238779 A JP2016238779 A JP 2016238779A JP 2018097429 A JP2018097429 A JP 2018097429A
Authority
JP
Japan
Prior art keywords
checksum
correction
packet
communication apparatus
received packet
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
JP2016238779A
Other languages
English (en)
Other versions
JP6800514B2 (ja
Inventor
鈴木 智也
Tomoya Suzuki
智也 鈴木
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 JP2016238779A priority Critical patent/JP6800514B2/ja
Publication of JP2018097429A publication Critical patent/JP2018097429A/ja
Application granted granted Critical
Publication of JP6800514B2 publication Critical patent/JP6800514B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)
  • Detection And Correction Of Errors (AREA)
  • Bus Control (AREA)

Abstract

【課題】受信時のチェックサム計算処理の負荷を軽減する。【解決手段】通信装置は、所定の条件に基づいて、他の通信装置から受信した受信パケットに対して演算されたチェックサムに対して該受信パケットの整合性を確認するために必要な補正を行うか、該受信パケットに対して所定のプロトコル処理が施されたパケットに対してチェックサムを演算するかを判定し、判定結果に基づいて、該補正により得られたチェックサム又は該所定のプロトコルが施されたパケットに対して演算されたチェックサムを用いて該受信パケットの整合性を確認する。【選択図】 図5

Description

本発明は、データ通信を行うための通信装置、その制御方法、およびプログラムに関する。
データ通信において、データの誤りを検出するための機構を備えた通信方式がある。たとえば、インターネット通信で使われている主要なプロトコルであるTCP/IP(Transmission Control Protocol/Internet Protocol)では、TCPパケットのデータの誤りを検出するため、1の補数を加算することによって求められるチェックサムが使用される。しかし、ソフトウェア演算による処理でチェックサム演算を実施すると、処理負荷が増大し、通信処理性能が低下するという課題がある。
この課題を解決する方法として、DMA(Direct Memory Access)を用いてデータをコピーしながらチェックサム計算を行う方法が提案されている(特許文献1参照)。この方法によれば、装置の処理負荷を軽減し、かつ、通信処理性能の低下を防止することが可能となる。
特開2015−207222号公報
特許文献1に記載の方法では、DMAを用いてメモリ間を転送するデータ単位で、チェックサム演算が行われる。TCP/IP通信の受信処理において、無線モジュールにおける記憶部からネットワークスタックにおける記憶部へのDMA転送時に本方法を用いる場合、ネットワークスタックで解析する前のデータ列がチェックサム演算対象となる。そのため、TCPパケットのチェックサムを算出するには、IPヘッダなどの不要部分のチェックサムを削除するための補正処理が必要となる。しかしながら、当該補正処理の時間は、パケットのヘッダサイズに比例して長くなるため、通信性能が低下するという課題がある。
本発明は、上記課題に鑑みてなされたものであり、受信時のチェックサム計算処理の負荷を軽減することを目的とする。
上記目的を達成するための一手段として、本発明の通信装置は以下の構成を有する。すなわち、他の通信装置から受信した受信パケットに対してチェックサムを演算する第1のチェックサム演算手段と、前記第1のチェックサム演算手段により演算されたチェックサムに対して前記受信パケットの整合性を確認するために必要な補正を行う補正手段と、前記受信パケットに対して所定のプロトコル処理が施されたパケットに対してチェックサムを演算する第2のチェックサム演算手段と、所定の条件に基づいて、前記補正手段による補正を行うか前記第2のチェックサム演算手段によるチェックサムの演算を行うかを判定する判定手段と、前記判定手段による判定の結果に基づいて、前記補正手段によって補正されたチェックサム又は前記第2のチェックサム演算手段によって演算されたチェックサムを用いて前記受信パケットの整合性を確認する確認手段と、を有する。
本発明によれば、受信時のチェックサム計算処理の負荷を軽減することにより、通信性能を向上させることが可能となる。
通信装置10のハードウェア構成例を示すブロック図。 通信装置10の機能構成例を示すブロック図。 第1のチェックサム演算部111とチェックサム補正部208により演算および補正されたチェックサムの演算手順を説明する概要図。 第2のチェックサム演算部207により演算されたチェックサムの演算手順を説明する概要図。 通信装置10が、RAN101の性能に基づいて、使用するチェックサム演算結果を切り替えるパケット受信処理手順を示すフローチャート。 通信装置10が、CPU103の性能に基づいて、使用するチェックサム演算結果を切り替えるパケット受信処理手順を示すフローチャート。
以下、添付の図面を参照して、本発明をその実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
(第1実施形態)
第1の実施形態として、通信装置が有するメモリの性能および/または使用するプロトコル種別および/または受信したパケットの構成に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替えることが可能な通信装置について説明する。
[装置の構成]
本実施形態における通信装置10のハードウェア構成と機能構成について、図1と図2を参照して説明する。図1は、通信装置10のハードウェア構成例を示すブロック図であり、図2は通信装置10の機能構成例を示すブロック図である。なお、通信装置10の具体例は、デジタルカメラ、デジタルビデオカメラ、携帯電話、スマートフォン、PC(Personal Computer)、ノートPC、サーバ、などである。
まず、通信装置10のハードウェア構成について説明する。図1に示すように、通信装置10は、RAM101、ROM102、CPU103、表示部104、操作部105、タイマ管理部106、第1のチェックサム演算部111を含むデータ転送部110を有する。また、通信装置10は、メディアアクセス制御モジュール(MAC)107と、物理レイヤモジュール(PHY)108も有する。なお、RAMはRandom Access Memory、ROMはRead Only Memory、CPUはCentral Processing Unitを表す。なお、通信装置10がこれらのハードウェア構成要素の全てを有することは必須でない。
RAM101は、プログラムやデータを一時記憶する。なお、図1には、一つのRAM101を図示しているが、通信装置10は、性能の異なる複数のRAM101を有することも可能である。ROM102は、CPU103により実行可能なプログラムやパラメータを格納する。CPU103は、通信装置10全体の動作を制御するプロセッサである。例えば、CPU103は、RAM101をワークメモリとして、ROM102や図示しないHDD(Hard Disc Drive)などの記憶媒体に格納された各種プログラムを実行する。CPU103が実行するプログラムには、ネットワークドライバが含まれる。CPU103がネットワークドライバを実行することにより、後述するパケットの受信処理などを含むプロトコル処理の機能が実現される。
表示部104は、各種表示を行う。例えば、表示部104は、ユーザが通信装置10を操作するためのGUI(Graphic User Interface)を表示する。操作部105は、ユーザが通信装置10を操作するための入力インタフェースである。タイマ管理部106は、プログラムの処理などの時間の経過を管理する。MAC107とPHY108は、アンテナ109を介してWi−Fiによる無線LAN(Local Area Network)などのネットワークを介した通信を行う通信部である。CPU103がネットワークドライバを実行することにより、MAC107が制御され、PHY108とアンテナ109を介してデータ(パケット)の送受信が行われる。なお、本実施形態ではWi−Fiによる無線LAN通信機能を用いるが、これに限らず、IP(Internet Protocol)通信が可能であれば、有線LAN通信機能のEthernet(登録商標)など、他の通信方式を利用してもよい。
データ転送部110は、DMAC(Direct Memory Access Controller)として構成され、メモリ間のデータ転送を行う。データ転送部110内の第1のチェックサム演算部111は、データ転送時に、転送されるデータのチェックサムを演算する。第1のチェックサム演算部111は、データ転送部110における処理ステップに対してステップ数を増やすことなく、チェックサム演算が可能である。
続いて、通信装置10の機能構成について説明する。図2に示すように、通信装置10は、機能制御部201、無線LAN制御部202、表示制御部203、操作制御部204、記憶制御部205を有する。通信装置10はまた、TCP/IP制御部206、第2のチェックサム演算部207、チェックサム補正部208を有する。これらの機能構成要素の各々の処理は、CPU103がROM102に格納されたプログラムをRAM101に展開して実行することより実現され得る。一方、ハードウェアによりこれらの機能構成要素の各々の処理を実現するためには、これらの機能構成要素の処理に対応させた演算部や回路をハードウェアで構成すればよい。なお、通信装置10がこれらの機能構成要素の全てを有することは必須でない。
機能制御部201は、各機能構成要素(無線LAN制御部202〜チェックサム補正部208)を制御する。無線LAN制御部202は、MAC107とPHY108を制御し、他の通信装置と無線LAN通信を行うための制御を行う。通信装置10が外部の無線アクセスポイントを経由して他の通信装置と接続する場合は、無線LAN制御部202は、MAC107とPHY108を制御して無線アクセスポイント(不図示)との無線LAN通信を行う。
表示制御部203は、表示部104に各種情報を表示させるための制御を行う。操作制御部204は、操作部105を介して、通信装置10に対するユーザからの操作入力を受け付け、当該入力に応じた制御を行う。記憶制御部205は、RAM101を制御し、処理データや画像コンテンツ、映像コンテンツなどのデータをRAM101に記憶またはRAM101から削除する。
TCP/IP制御部206は、他の通信装置との間でTCP(Transmission Control Protocol)/IP(Internet Protocol)方式の通信制御を行う。また、TCP/IP制御部206は、RAM101に格納された受信パケットを解析し、無線ヘッダ、Ethernet(登録商標)ヘッダ(ETHヘッダ)、IPヘッダ、TCPヘッダ、TCPペイロードへ分割する等といった所定のプロトコル処理を行う。なお、本実施形態では、TCP/IP通信を利用する例を示すが、これに限らず、チェックサムを使用する他のプロトコルを利用してもよい。第2のチェックサム演算部207は、TCP/IP制御部206において所定のプロトコル処理が施されたパケットに対してチェックサムの演算を行う。第2のチェックサム演算部207は、TCP/IP制御部206により利用され得る。チェックサム補正部208は、第1のチェックサム演算部111により算出されたチェックサムの値を補正する。チェックサム補正部208は、TCP/IP制御部206により利用され得る。TCP/IP制御部206は、第2のチェックサム演算部207又はチェックサム補正部208において生成されたチェックサムを用いて、受信パケットの整合性を確認する。
[チェックサム演算]
次に、本実施形態におけるTCPにおけるチェックサムの演算手法について図3と図4を参照して説明する。
図3は、第1のチェックサム演算部111とチェックサム補正部208により演算および補正されたチェックサムの演算手順を説明する概要図である。図3の説明のために、通信装置10が外部の無線アクセスポイントを経由して、Ethernet(登録商標)を伝送経路として他の通信装置と通信することを前提とするが、他の通信形態にも本説明は適用可能である。
無線LAN制御部202が、他の通信装置(不図示)から送信されたパケットをアンテナ109、PHY108、MAC107を介して受信すると、データ転送部110は、MAC107内の記憶部(不図示)からRAM101へ受信パケットを転送する。この転送の際、第1のチェックサム演算部111は、受信パケット全体のチェックサム(CS302)を演算する。データ転送部110は、CS302を受信パケット301に関連付けて、RAM101へ転送する。
TCP/IP制御部206は、RAM101に格納された受信パケット301に対してプロトコル処理を施すことにより解析する。その結果、無線ヘッダ、Ethernet(登録商標)ヘッダ(ETHヘッダ)、IPヘッダ、TCPヘッダ、TCPペイロードに分割した、解析済受信パケット303が生成される。
次に、TCP/IP制御部206は、チェックサム補正部208を使用し、TCPのチェックサムに不要なヘッダ部のチェックサムを、CS302から減算し、TCP仮想ヘッダのチェックサムを加算することにより、TCPのチェックサム305を算出する。ここで、TCPのチェックサムの不要なヘッダ部は、本実施形態では、無線ヘッダ、ETHERNET(登録商標)ヘッダ、IPヘッダである。なお、減算される不要なヘッダ部は、データ転送部110から転送される受信パケットのデータ範囲により変化し得る。また、TCP仮想ヘッダとは、TCPのチェックサムを計算するために必要な周知のヘッダであり、発信元IPアドレスや宛先IPアドレス等から構成されるものである。TCP/IP制御部206は、算出したTCPのチェックサム305を用いて受信パケットの整合性を確認する(誤り検出処理を行う)。
整合性の確認の結果、TCP/IP制御部206は、受信パケットに誤りがないことを確認した場合は、アプリケーション306に受信パケットのデータを渡す。一方、TCP/IP制御部206は、受信パケットに誤りがあることを確認した場合は、受信パケットを破棄する。
図4は、第2のチェックサム演算部207により演算されたチェックサムの演算手順を説明する概要図である。図4の説明のために、図3と同様に、通信装置10が外部の無線アクセスポイントを経由して、Ethernet(登録商標)を伝送経路として他の通信装置と通信することを前提とするが、他の通信形態にも本説明は適用可能である。
無線LAN制御部202は、他の通信装置(不図示)から送信されたパケットをアンテナ109、PHY108、MAC107を介して受信すると、データ転送部110は、MAC107内の記憶部(不図示)からRAM101へ受信パケットを転送する。TCP/IP制御部206は、RAM101に格納された受信パケットを解析し、無線ヘッダ、Ethernet(登録商標)ヘッダ(ETHヘッダ)、IPヘッダ、TCPヘッダ、TCPペイロードに分割した、解析済受信パケット303を生成する。
TCP/IP制御部206は、第2のチェックサム演算部207を使用し、TCPのチェックサムとして、解析済受信パケット303におけるTCPヘッダ、TCPペイロード、およびTCP仮想ヘッダのチェックサムを算出する。続いて、TCP/IP制御部206は、算出したTCPのチェックサムを用いて受信パケットの整合性を確認する。
TCP/IP制御部206は、TCPのチェックサムから受信パケットに誤りがないことを確認した場合はアプリケーション306に受信データを渡し、TCPのチェックサムから受信パケットに誤りがあることを確認した場合は受信パケットを破棄する。
次に、図5を参照して通信装置10の動作について説明する。図5は、RAM101の性能に基づいて、図3と図4を参照して説明した2種類のチェックサムの演算結果の使用を切り替えるパケット受信手順を示すフローチャートである。なお、図5の説明において、図3または図4で示した処理と同じ処理は、図3または図4における符号を用いるものとする
S501において、無線LAN制御部202が、アンテナ109、PHY108、MAC107を介してパケット受信すると、データ転送部110は、MAC107内の記憶部(不図示)からRAM101へ受信パケットを転送する。データ転送部110による受信パケット301の転送時に、第1のチェックサム演算部111は受信パケット301全体のチェックサム(CS302)を演算する。データ転送部110は、CS302を受信パケット301に関連付けてT、RAM101へ転送する。
S502において、TCP/IP制御部206は、RAM101に格納された受信パケット301を解析し、無線ヘッダ、Ethernet(登録商標)ヘッダ(ETHヘッダ)、IPヘッダ、TCPヘッダ、TCPペイロードに分割した解析済受信パケット303を作成する。
S503において、TCP/IP制御部206は、RAM101の性能を取得する。RAMの性能とは、例えば、動作クロックの速さ(処理速度)等の処理能力(および処理能力を表す値)を指す。RAM101の性能が高い場合、第1のチェックサム演算部111と第2のチェックサム演算部207の演算結果を使い分けた際の通信性能の差が小さくなる。したがって、RAM101の性能が所定のレベル未満の場合(S503;YES)は、処理はS504に進み、RAM101の性能が当該所定のレベル以上の場合(S503;NO)は、処理はS506に進む。この所定のレベル(所定の閾値)には、第1のチェックサム演算部111により算出されたチェックサムを用いて通信した際に所望の通信性能を維持できる任意のメモリ性能等を示す値が設定され得る。
S504において、TCP/IP制御部206は、ネットワーク層のプロトコル種別がIPv4かIPv6のいずれであるかを判定する。IPv4では、IPヘッダにチェックサムフィールドがあり、IPヘッダ分のチェックサムが格納されている。そのため、受信パケットに誤りがない場合、IPv4通信時に第1のチェックサム演算部111が算出するチェックサム302には、IPヘッダ分のチェックサムが相殺されるため含まれない。つまり、IPv4の場合は、チェックサム補正部208によるIPヘッダ分のチェックサムの減算処理は不要となる。しがたって、IPヘッダにチェックサムフィールドがないIPv6を使用している場合(S504;IPv6)は、処理はS505に進み、IPヘッダにチェックサムフィールドがあるIPv4を使用している場合(S504;IPv4)は、処理はS506に進む。なお、S504ではIPv4とIPv6かが判定されたが、これに限定されない。
S505において、TCP/IP制御部206は、受信パケットの構成を確認して、処理を分岐する。まず、TCP/IP制御部206は、解析済受信パケット303からヘッダ部の長さとIPペイロード部の長さを取得する。なお、ヘッダ部とは、チェックサム補正部208による減算処理が必要な受信パケット内のヘッダ部分を指し、本実施形態では無線ヘッダとEthernet(登録商標)ヘッダとIPヘッダである。ヘッダ部は、前述の通り、データ転送部110が転送する受信パケットのデータ範囲により変化し得る。ヘッダ長が解析済受信パケット303において所定の割合を占める場合、例えば、ヘッダ長がIPペイロード長未満の場合(S505;YES)は、処理はS506に進む。また、ヘッダ長が解析済受信パケット303において所定の割合を占めない場合、例えば、ヘッダ長がIPペイロード長以上の場合(S505;NO)は、処理はS507に進む。
また、S505において、TCP/IP制御部206は、受信パケットのパケット種別を判別してもよい。例えば、受信パケットが確認応答(ACK)パケットのようにペイロードがない、または、ペイロード長が閾値未満のパケット種別の場合(S505;YES)は、処理はS506に進み、データパケットのようにペイロード長が閾値以上のパケット種別の場合(S505;NO)は、処理はS507に進むようにしてもよい。この閾値には、第1のチェックサム演算部111と第2のチェックサム演算部207の演算結果を使い分けることで通信性能が変化する任意のペイロード長が設定され得る。なお、パケット種別としてペイロードの長さを示したが、これに限らず、パケットのフラグやオプション情報などに基づいてパケット種別を判別してもよい。
S506において、TCP/IP制御部206は、チェックサム補正部208を使用し、チェックサム302から無線ヘッダ、ETHERNET(登録商標)ヘッダ、IPヘッダ分のチェックサムを減算し、TCP仮想ヘッダのチェックサムを加算することにより、TCPのチェックサム305を算出する。当該チェックサムの算出手法は、図3を用いて説明した通りである。なお、前述の通り、減算するヘッダ部はデータ転送部110が転送する受信パケットのデータ範囲により変化し得る。なお、上述した通り、受信パケットがIPv4のパケットである場合は、チェックサム補正部208によるIPヘッダ分のチェックサムの減算処理は不要となる。しがたって、S506の処理において、S504でIPv4と判定された上で実行される場合には、IPヘッダ分のチェックサムの減算以外の補正処理が行われることになる。
S507において、TCP/IP制御部206は、第2のチェックサム演算部207を使用し、TCPのチェックサム(TCPヘッダ、TCPペイロード、TCP仮想ヘッダのチェックサム)を再計算する。当該チェックサムの算出手法は、図4を用いて説明した通りである。
S508において、TCP/IP制御部206は、S506またはS507で導出されたTCPのチェックサムを用いて、受信パケットの整合性を確認することにより、誤り検出処理を行う。
なお、図5に示すフローチャートでは、S503、S504、およびS505すべての判定が行われるが、これらの判定のいずれか1つ以上が行われても良い。例えば、S503が省略される場合、S502の後、処理はS504へ進む。また、S504が省略される場合、S503でYesと判定された場合に処理はS505へ進む。また、S505が省略される場合、S504でIPv6と判定された場合に処理はS507へ進む。また、S504とS505が省略される場合、S503でYesと判定された場合に処理はS507へ進む。また、S503とS504が省略される場合、S502の後、処理はS505へ進む。また、S503とS505が省略される場合、S502の後、処理はS504へ進み、S504でIPv6と判定された場合に処理はS507へ進む。
また、S503とS504の判定は、S501とS502の処理と関係なく実施可能なため、S501の前にS503またはS504の判定を行ってもよい。例えばこの場合、S504でIPv6と判定され、かつ/または、S505でNoと判定された場合は、S501、S502の処理を実施せずに、S507の処理が実施されても良い。これにより、より処理効率が向上し得る。
以上、説明したように、本実施形態による通信装置10は、メモリの性能および/または使用するプロトコル種別および/または受信したパケットの構成といった条件に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替える。すなわち、S506のように処理負荷が高い補正処理を必要とするチェックサム演算結果を使用するか、当該補正処理を必要としないチェックサム演算結果を使用するかが切り替えられる。このように、必要に応じて受信パケットのチェックサム計算処理で負荷が軽い手段を用いる否か選択でき、結果として受信の効率が向上し、通信性能が向上する。
(第2実施形態)
第2実施形態では、通信装置10が有するCPU103の性能に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替える。なお、第2実施形態において、第1実施形態と同様の図、および図中と同じ要素に関しては説明を省略する。
図6は、CPU103の性能に基づいて、図3と図4を参照して説明した2種類のチェックサムの演算結果の使用を切り替えるパケット受信手順を示すフローチャートである。なお、図6の説明において、図3または図4で示した処理と同じ処理は、図3または図4における符号を用いるものとする。また、S601〜S602およびS604〜S608の処理は、図5のS501〜S502及びS504〜S508の処理と同様のため、説明を省略する。
S603において、TCP/IP制御部206は、CPU103の性能を取得する。CPUの性能とは、例えば、処理速度等の処理能力(および処理能力を表す値)を指す。CPU103の性能が高い場合、第1のチェックサム演算部111と第2のチェックサム演算部207を使い分けた際の通信性能の差が小さくなる。したがって、CPU103の性能が所定のレベル未満の場合(S603;YES)はS604に進み、CPU103の性能が当該所定のレベル以上の場合(S603;NO)は、処理はS606に進む。この所定のレベル(所定の閾値)には、第1のチェックサム演算部111により算出されたチェックサムを用いて通信した際に所望の通信性能を維持できる任意のCPU性能等を示す値が設定され得る。
なお、図6に示すフローチャートでは、S603、S604、およびS605すべての判定が行われるが、S603の判定以外の判定は行われても良い。例えば、S604が省略される場合、S603でYesと判定された場合に処理はS605へ進む。また、S605が省略される場合、S604でIPv4以外の例えばIPv6と判定された場合に処理はS607へ進む。また、S604とS605が省略される場合、S603でYesと判定された場合に処理はS607へ進む。
以上、説明したように、本実施形態による通信装置10は、CPU103の性能といった条件に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替える。すなわち、S606のように処理負荷が高い補正処理を必要とするチェックサム演算結果を使用するか、当該補正処理を必要としないチェックサム演算結果を使用するかが切り替えられる。このように、必要に応じて受信パケットのチェックサム計算処理で負荷が軽い手段を用いる否か選択でき、結果として受信の効率が向上し、通信性能が向上する。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
10 通信装置、101 RAM、102 ROM、103 CPU、104 表示部、105 操作部、106 タイマ管理部、107 MAC、108 PHY、109 アンテナ、110 データ転送部、111 第1のチェックサム演算部、201 機能制御部、202 無線LAN制御部、203 表示制御部、204 操作制御部、205 記憶制御部、206 TCP/IP制御部、207 第2のチェックサム演算部、208 チェックサム補正部

Claims (11)

  1. 通信装置であって、
    他の通信装置から受信した受信パケットに対してチェックサムを演算する第1のチェックサム演算手段と、
    前記第1のチェックサム演算手段により演算されたチェックサムに対して前記受信パケットの整合性を確認するために必要な補正を行う補正手段と、
    前記受信パケットに対して所定のプロトコル処理が施されたパケットに対してチェックサムを演算する第2のチェックサム演算手段と、
    所定の条件に基づいて、前記補正手段による補正を行うか前記第2のチェックサム演算手段によるチェックサムの演算を行うかを判定する判定手段と、
    前記判定手段による判定の結果に基づいて、前記補正手段によって補正されたチェックサム又は前記第2のチェックサム演算手段によって演算されたチェックサムを用いて前記受信パケットの整合性を確認する確認手段と、
    を有することを特徴とする通信装置。
  2. 前記所定の条件は、前記通信装置の処理能力に応じた条件であることを特徴とする請求項1に記載の通信装置。
  3. 前記判定手段は、前記通信装置が有するメモリの性能が第1のレベル以上である場合に前記補正手段による補正を行い、前記メモリの性能が前記第1のレベル未満である場合に前記第2のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項2に記載の通信装置。
  4. 前記判定手段は、前記通信装置が有するプロセッサの性能が第2のレベル以上である場合に前記補正手段による補正を行い、前記プロセッサの性能が前記第2のレベル未満である場合に前記第2のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項2または3に記載の通信装置。
  5. 前記所定の条件は、前記プロトコル処理のためのプロトコルの種別に応じた条件であることを特徴とする請求項1から4のいずれか1項に記載の通信装置。
  6. 前記判定手段は、前記プロトコルの種別がIPv4の場合に前記補正手段による補正を行い、当該プロトコルの種別がIPv4以外の場合に前記第2のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項5に記載の通信装置。
  7. 前記所定の条件は、前記プロトコル処理が施されたパケットの構成に応じた条件であることを特徴とする請求項1から6のいずれか1項に記載の通信装置。
  8. 前記判定手段は、前記プロトコル処理が施されたパケットにおけるペイロード部の長さが所定の閾値未満の場合に前記補正手段による補正を行い、当該ペイロード部の長さが前記所定の閾値以上の場合に前記第2のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項7に記載の通信装置。
  9. 前記判定手段は、前記プロトコル処理が施されたパケットにおけるヘッダ部の長さが当該パケットにおいて所定の割合を占める場合に前記補正手段による補正を行い、当該ヘッダ部の長さが当該パケットにおいて所定の割合を占めない場合に前記第2のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項7に記載の通信装置。
  10. 通信装置の制御方法であって、
    所定の条件に基づいて、他の通信装置から受信した受信パケットに対して演算されたチェックサムに対して前記受信パケットの整合性を確認するために必要な補正を行うか、前記受信パケットに対して所定のプロトコル処理が施されたパケットに対してチェックサムを演算するかを判定する判定工程と
    前記判定工程における判定の結果に基づいて、
    前記補正により得られたチェックサム又は前記所定のプロトコルが施されたパケットに対して演算されたチェックサムを用いて前記受信パケットの整合性を確認する確認工程と、
    を有することを特徴とする通信装置の制御方法。
  11. コンピュータを、請求項1から9のいずれか1項に記載の通信装置として機能させるためのプログラム。
JP2016238779A 2016-12-08 2016-12-08 通信装置、その制御方法、およびプログラム Active JP6800514B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016238779A JP6800514B2 (ja) 2016-12-08 2016-12-08 通信装置、その制御方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016238779A JP6800514B2 (ja) 2016-12-08 2016-12-08 通信装置、その制御方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2018097429A true JP2018097429A (ja) 2018-06-21
JP6800514B2 JP6800514B2 (ja) 2020-12-16

Family

ID=62633500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016238779A Active JP6800514B2 (ja) 2016-12-08 2016-12-08 通信装置、その制御方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP6800514B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522039A (en) * 1993-09-09 1996-05-28 Hewlett-Packard Company Calculation of network data check sums by dedicated hardware with software corrections
JPH11168451A (ja) * 1997-09-25 1999-06-22 Hewlett Packard Co <Hp> ネットワークプロトコルスタックのためのハードウェアによるチェックサム支援機構
WO2011033562A1 (ja) * 2009-09-16 2011-03-24 株式会社 東芝 通信装置
JP2011228938A (ja) * 2010-04-20 2011-11-10 Fuji Xerox Co Ltd 通信装置、画像形成装置およびプログラム
JP2012039266A (ja) * 2010-08-04 2012-02-23 Canon Inc 通信制御装置及び方法
JP2015207222A (ja) * 2014-04-22 2015-11-19 キヤノン株式会社 情報処理装置、情報処理方法、システム
JP2015207223A (ja) * 2014-04-22 2015-11-19 キヤノン株式会社 情報処理装置、情報処理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522039A (en) * 1993-09-09 1996-05-28 Hewlett-Packard Company Calculation of network data check sums by dedicated hardware with software corrections
JPH11168451A (ja) * 1997-09-25 1999-06-22 Hewlett Packard Co <Hp> ネットワークプロトコルスタックのためのハードウェアによるチェックサム支援機構
WO2011033562A1 (ja) * 2009-09-16 2011-03-24 株式会社 東芝 通信装置
JP2011228938A (ja) * 2010-04-20 2011-11-10 Fuji Xerox Co Ltd 通信装置、画像形成装置およびプログラム
JP2012039266A (ja) * 2010-08-04 2012-02-23 Canon Inc 通信制御装置及び方法
JP2015207222A (ja) * 2014-04-22 2015-11-19 キヤノン株式会社 情報処理装置、情報処理方法、システム
JP2015207223A (ja) * 2014-04-22 2015-11-19 キヤノン株式会社 情報処理装置、情報処理方法

Also Published As

Publication number Publication date
JP6800514B2 (ja) 2020-12-16

Similar Documents

Publication Publication Date Title
US11934340B2 (en) Multi-path RDMA transmission
WO2023005773A1 (zh) 基于远程直接数据存储的报文转发方法、装置、网卡及设备
KR102610823B1 (ko) 네트워크 어드레스 변환을 위한 통신 시스템 및 방법
US20140044130A1 (en) Avoiding unknown unicast floods resulting from mac address table overflows
WO2015101850A1 (en) Quantized congestion notification (qcn) extension to explicit congestion notification (ecn) for transport-based end-to-end congestion notification
US11522805B2 (en) Technologies for protocol-agnostic network packet segmentation
US20150270930A1 (en) Transport accelerator implementing selective utilization of redundant encoded content data functionality
US10530701B2 (en) RUDP apparatus and dynamic adjustment method of sliding window parameter
US20140297791A1 (en) Communication apparatus, method of controlling the same, and storage medium
US11743236B2 (en) Generating an application-based proxy auto configuration
WO2019224860A1 (ja) 通信装置、通信方法及び通信プログラム
US11336297B2 (en) DMA transfer apparatus, method of controlling the same, communication apparatus, method of controlling the same, and non-transitory computer-readable storage medium
KR20200017127A (ko) 데이터 패킷을 처리하기 위한 장치 및 방법
US9762511B2 (en) Communication device
JP6800514B2 (ja) 通信装置、その制御方法、およびプログラム
JP6234236B2 (ja) 通信装置
US20170171222A1 (en) Reassembly free deep packet inspection for peer to peer networks
JP2017046325A (ja) 通信装置、通信方法およびプログラム
JP2019165423A (ja) 通信装置、通信装置の制御方法およびプログラム
JP6976786B2 (ja) 通信装置および通信装置の制御方法
US20240179178A1 (en) Control method and apparatus, computing device, and computer-readable storage medium
JP2011249922A (ja) ネットワーク装置、tcpパケット受信装置及び方法
JP7286513B2 (ja) 通信装置、通信装置の制御方法、及びプログラム
JP2018093330A (ja) 通信装置および通信装置の制御方法
JP2007329730A (ja) 通信プロトコル処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201013

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201120

R151 Written notification of patent or utility model registration

Ref document number: 6800514

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151