特許第6800514号(P6800514)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許6800514通信装置、その制御方法、およびプログラム
<>
  • 特許6800514-通信装置、その制御方法、およびプログラム 図000002
  • 特許6800514-通信装置、その制御方法、およびプログラム 図000003
  • 特許6800514-通信装置、その制御方法、およびプログラム 図000004
  • 特許6800514-通信装置、その制御方法、およびプログラム 図000005
  • 特許6800514-通信装置、その制御方法、およびプログラム 図000006
  • 特許6800514-通信装置、その制御方法、およびプログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6800514
(24)【登録日】2020年11月27日
(45)【発行日】2020年12月16日
(54)【発明の名称】通信装置、その制御方法、およびプログラム
(51)【国際特許分類】
   G06F 11/10 20060101AFI20201207BHJP
   G06F 11/14 20060101ALI20201207BHJP
   G06F 13/28 20060101ALI20201207BHJP
【FI】
   G06F11/10 604
   G06F11/14 643
   G06F13/28 310K
【請求項の数】9
【全頁数】12
(21)【出願番号】特願2016-238779(P2016-238779)
(22)【出願日】2016年12月8日
(65)【公開番号】特開2018-97429(P2018-97429A)
(43)【公開日】2018年6月21日
【審査請求日】2019年11月27日
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134175
【弁理士】
【氏名又は名称】永川 行光
(72)【発明者】
【氏名】鈴木 智也
【審査官】 清木 泰
(56)【参考文献】
【文献】 特開2015−207223(JP,A)
【文献】 特開2015−207222(JP,A)
【文献】 特開2012−039266(JP,A)
【文献】 特開2011−228938(JP,A)
【文献】 特開平11−168451(JP,A)
【文献】 国際公開第2011/033562(WO,A1)
【文献】 米国特許第05522039(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F11/08−11/10
G06F11/14
G06F13/00
G06F13/20−13/378
H04L29/00−29/12
H04L13/02−13/18
(57)【特許請求の範囲】
【請求項1】
通信装置であって、
他の通信装置から受信した受信パケットに対してチェックサムを演算する第1のチェックサム演算手段と、
前記第1のチェックサム演算手段により演算されたチェックサムに対して前記受信パケットの整合性を確認するために必要な補正を行う補正手段と、
前記受信パケットに対して所定のプロトコル処理が施されたパケットに対してチェックサムを演算する第2のチェックサム演算手段と、
所定の条件に基づいて、前記補正手段による補正を行うか前記第2のチェックサム演算手段によるチェックサムの演算を行うかを判定する判定手段と、
前記判定手段による判定の結果に基づいて、前記補正手段によって補正されたチェックサム又は前記第2のチェックサム演算手段によって演算されたチェックサムを用いて前記受信パケットの整合性を確認する確認手段と、
を有することを特徴とする通信装置。
【請求項2】
前記所定の条件は、前記通信装置の処理能力に応じた条件を含むことを特徴とする請求項1に記載の通信装置。
【請求項3】
前記判定手段は、前記通信装置が有するメモリの性能が第1のレベル以上である場合に前記補正手段による補正を行い、前記メモリの性能が前記第1のレベル未満である場合に前記第2のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項2に記載の通信装置。
【請求項4】
前記判定手段は、前記通信装置が有するプロセッサの性能が第2のレベル以上である場合に前記補正手段による補正を行い、前記プロセッサの性能が前記第2のレベル未満である場合に前記第2のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項2記載の通信装置。
【請求項5】
前記所定の条件は、前記プロトコル処理のためのプロトコルの種別に応じた条件を含むことを特徴とする請求項1または2に記載の通信装置。
【請求項6】
前記判定手段は、前記プロトコルの種別がIPv4の場合に前記補正手段による補正を行い、当該プロトコルの種別がIPv4以外の場合に前記第2のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項5に記載の通信装置。
【請求項7】
前記所定の条件は、前記プロトコル処理が施されたパケットの構成に応じた条件を含むことを特徴とする請求項1、2または5のいずれか1項に記載の通信装置。
【請求項8】
通信装置の制御方法であって、
所定の条件に基づいて、他の通信装置から受信した受信パケットに対して演算されたチェックサムに対して前記受信パケットの整合性を確認するために必要な補正を行うか、前記受信パケットに対して所定のプロトコル処理が施されたパケットに対してチェックサムを演算するかを判定する判定工程と
前記判定工程における判定の結果に基づいて、
前記補正により得られたチェックサム又は前記所定のプロトコル処理が施されたパケットに対して演算されたチェックサムを用いて前記受信パケットの整合性を確認する確認工程と、
を有することを特徴とする通信装置の制御方法。
【請求項9】
コンピュータを、請求項1からのいずれか1項に記載の通信装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ通信を行うための通信装置、その制御方法、およびプログラムに関する。
【背景技術】
【0002】
データ通信において、データの誤りを検出するための機構を備えた通信方式がある。たとえば、インターネット通信で使われている主要なプロトコルであるTCP/IP(Transmission Control Protocol/Internet Protocol)では、TCPパケットのデータの誤りを検出するため、1の補数を加算することによって求められるチェックサムが使用される。しかし、ソフトウェア演算による処理でチェックサム演算を実施すると、処理負荷が増大し、通信処理性能が低下するという課題がある。
【0003】
この課題を解決する方法として、DMA(Direct Memory Access)を用いてデータをコピーしながらチェックサム計算を行う方法が提案されている(特許文献1参照)。この方法によれば、装置の処理負荷を軽減し、かつ、通信処理性能の低下を防止することが可能となる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2015−207222号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の方法では、DMAを用いてメモリ間を転送するデータ単位で、チェックサム演算が行われる。TCP/IP通信の受信処理において、無線モジュールにおける記憶部からネットワークスタックにおける記憶部へのDMA転送時に本方法を用いる場合、ネットワークスタックで解析する前のデータ列がチェックサム演算対象となる。そのため、TCPパケットのチェックサムを算出するには、IPヘッダなどの不要部分のチェックサムを削除するための補正処理が必要となる。しかしながら、当該補正処理の時間は、パケットのヘッダサイズに比例して長くなるため、通信性能が低下するという課題がある。
【0006】
本発明は、上記課題に鑑みてなされたものであり、受信時のチェックサム計算処理の負荷を軽減することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するための一手段として、本発明の通信装置は以下の構成を有する。すなわち、他の通信装置から受信した受信パケットに対してチェックサムを演算する第1のチェックサム演算手段と、前記第1のチェックサム演算手段により演算されたチェックサムに対して前記受信パケットの整合性を確認するために必要な補正を行う補正手段と、前記受信パケットに対して所定のプロトコル処理が施されたパケットに対してチェックサムを演算する第2のチェックサム演算手段と、所定の条件に基づいて、前記補正手段による補正を行うか前記第2のチェックサム演算手段によるチェックサムの演算を行うかを判定する判定手段と、前記判定手段による判定の結果に基づいて、前記補正手段によって補正されたチェックサム又は前記第2のチェックサム演算手段によって演算されたチェックサムを用いて前記受信パケットの整合性を確認する確認手段と、を有する。
【発明の効果】
【0008】
本発明によれば、受信時のチェックサム計算処理の負荷を軽減することにより、通信性能を向上させることが可能となる。
【図面の簡単な説明】
【0009】
図1】通信装置10のハードウェア構成例を示すブロック図。
図2】通信装置10の機能構成例を示すブロック図。
図3】第1のチェックサム演算部111とチェックサム補正部208により演算および補正されたチェックサムの演算手順を説明する概要図。
図4】第2のチェックサム演算部207により演算されたチェックサムの演算手順を説明する概要図。
図5】通信装置10が、RAN101の性能に基づいて、使用するチェックサム演算結果を切り替えるパケット受信処理手順を示すフローチャート。
図6】通信装置10が、CPU103の性能に基づいて、使用するチェックサム演算結果を切り替えるパケット受信処理手順を示すフローチャート。
【発明を実施するための形態】
【0010】
以下、添付の図面を参照して、本発明をその実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【0011】
(第1実施形態)
第1の実施形態として、通信装置が有するメモリの性能および/または使用するプロトコル種別および/または受信したパケットの構成に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替えることが可能な通信装置について説明する。
【0012】
[装置の構成]
本実施形態における通信装置10のハードウェア構成と機能構成について、図1図2を参照して説明する。図1は、通信装置10のハードウェア構成例を示すブロック図であり、図2は通信装置10の機能構成例を示すブロック図である。なお、通信装置10の具体例は、デジタルカメラ、デジタルビデオカメラ、携帯電話、スマートフォン、PC(Personal Computer)、ノートPC、サーバ、などである。
【0013】
まず、通信装置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がこれらのハードウェア構成要素の全てを有することは必須でない。
【0014】
RAM101は、プログラムやデータを一時記憶する。なお、図1には、一つのRAM101を図示しているが、通信装置10は、性能の異なる複数のRAM101を有することも可能である。ROM102は、CPU103により実行可能なプログラムやパラメータを格納する。CPU103は、通信装置10全体の動作を制御するプロセッサである。例えば、CPU103は、RAM101をワークメモリとして、ROM102や図示しないHDD(Hard Disc Drive)などの記憶媒体に格納された各種プログラムを実行する。CPU103が実行するプログラムには、ネットワークドライバが含まれる。CPU103がネットワークドライバを実行することにより、後述するパケットの受信処理などを含むプロトコル処理の機能が実現される。
【0015】
表示部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(登録商標)など、他の通信方式を利用してもよい。
【0016】
データ転送部110は、DMAC(Direct Memory Access Controller)として構成され、メモリ間のデータ転送を行う。データ転送部110内の第1のチェックサム演算部111は、データ転送時に、転送されるデータのチェックサムを演算する。第1のチェックサム演算部111は、データ転送部110における処理ステップに対してステップ数を増やすことなく、チェックサム演算が可能である。
【0017】
続いて、通信装置10の機能構成について説明する。図2に示すように、通信装置10は、機能制御部201、無線LAN制御部202、表示制御部203、操作制御部204、記憶制御部205を有する。通信装置10はまた、TCP/IP制御部206、第2のチェックサム演算部207、チェックサム補正部208を有する。これらの機能構成要素の各々の処理は、CPU103がROM102に格納されたプログラムをRAM101に展開して実行することより実現され得る。一方、ハードウェアによりこれらの機能構成要素の各々の処理を実現するためには、これらの機能構成要素の処理に対応させた演算部や回路をハードウェアで構成すればよい。なお、通信装置10がこれらの機能構成要素の全てを有することは必須でない。
【0018】
機能制御部201は、各機能構成要素(無線LAN制御部202〜チェックサム補正部208)を制御する。無線LAN制御部202は、MAC107とPHY108を制御し、他の通信装置と無線LAN通信を行うための制御を行う。通信装置10が外部の無線アクセスポイントを経由して他の通信装置と接続する場合は、無線LAN制御部202は、MAC107とPHY108を制御して無線アクセスポイント(不図示)との無線LAN通信を行う。
【0019】
表示制御部203は、表示部104に各種情報を表示させるための制御を行う。操作制御部204は、操作部105を介して、通信装置10に対するユーザからの操作入力を受け付け、当該入力に応じた制御を行う。記憶制御部205は、RAM101を制御し、処理データや画像コンテンツ、映像コンテンツなどのデータをRAM101に記憶またはRAM101から削除する。
【0020】
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において生成されたチェックサムを用いて、受信パケットの整合性を確認する。
【0021】
[チェックサム演算]
次に、本実施形態におけるTCPにおけるチェックサムの演算手法について図3図4を参照して説明する。
【0022】
図3は、第1のチェックサム演算部111とチェックサム補正部208により演算および補正されたチェックサムの演算手順を説明する概要図である。図3の説明のために、通信装置10が外部の無線アクセスポイントを経由して、Ethernet(登録商標)を伝送経路として他の通信装置と通信することを前提とするが、他の通信形態にも本説明は適用可能である。
【0023】
無線LAN制御部202が、他の通信装置(不図示)から送信されたパケットをアンテナ109、PHY108、MAC107を介して受信すると、データ転送部110は、MAC107内の記憶部(不図示)からRAM101へ受信パケットを転送する。この転送の際、第1のチェックサム演算部111は、受信パケット全体のチェックサム(CS302)を演算する。データ転送部110は、CS302を受信パケット301に関連付けて、RAM101へ転送する。
【0024】
TCP/IP制御部206は、RAM101に格納された受信パケット301に対してプロトコル処理を施すことにより解析する。その結果、無線ヘッダ、Ethernet(登録商標)ヘッダ(ETHヘッダ)、IPヘッダ、TCPヘッダ、TCPペイロードに分割した、解析済受信パケット303が生成される。
【0025】
次に、TCP/IP制御部206は、チェックサム補正部208を使用し、TCPのチェックサムに不要なヘッダ部のチェックサムを、CS302から減算し、TCP仮想ヘッダのチェックサムを加算することにより、TCPのチェックサム305を算出する。ここで、TCPのチェックサムの不要なヘッダ部は、本実施形態では、無線ヘッダ、ETHERNET(登録商標)ヘッダ、IPヘッダである。なお、減算される不要なヘッダ部は、データ転送部110から転送される受信パケットのデータ範囲により変化し得る。また、TCP仮想ヘッダとは、TCPのチェックサムを計算するために必要な周知のヘッダであり、発信元IPアドレスや宛先IPアドレス等から構成されるものである。TCP/IP制御部206は、算出したTCPのチェックサム305を用いて受信パケットの整合性を確認する(誤り検出処理を行う)。
【0026】
整合性の確認の結果、TCP/IP制御部206は、受信パケットに誤りがないことを確認した場合は、アプリケーション306に受信パケットのデータを渡す。一方、TCP/IP制御部206は、受信パケットに誤りがあることを確認した場合は、受信パケットを破棄する。
【0027】
図4は、第2のチェックサム演算部207により演算されたチェックサムの演算手順を説明する概要図である。図4の説明のために、図3と同様に、通信装置10が外部の無線アクセスポイントを経由して、Ethernet(登録商標)を伝送経路として他の通信装置と通信することを前提とするが、他の通信形態にも本説明は適用可能である。
【0028】
無線LAN制御部202は、他の通信装置(不図示)から送信されたパケットをアンテナ109、PHY108、MAC107を介して受信すると、データ転送部110は、MAC107内の記憶部(不図示)からRAM101へ受信パケットを転送する。TCP/IP制御部206は、RAM101に格納された受信パケットを解析し、無線ヘッダ、Ethernet(登録商標)ヘッダ(ETHヘッダ)、IPヘッダ、TCPヘッダ、TCPペイロードに分割した、解析済受信パケット303を生成する。
【0029】
TCP/IP制御部206は、第2のチェックサム演算部207を使用し、TCPのチェックサムとして、解析済受信パケット303におけるTCPヘッダ、TCPペイロード、およびTCP仮想ヘッダのチェックサムを算出する。続いて、TCP/IP制御部206は、算出したTCPのチェックサムを用いて受信パケットの整合性を確認する。
【0030】
TCP/IP制御部206は、TCPのチェックサムから受信パケットに誤りがないことを確認した場合はアプリケーション306に受信データを渡し、TCPのチェックサムから受信パケットに誤りがあることを確認した場合は受信パケットを破棄する。
【0031】
次に、図5を参照して通信装置10の動作について説明する。図5は、RAM101の性能に基づいて、図3図4を参照して説明した2種類のチェックサムの演算結果の使用を切り替えるパケット受信手順を示すフローチャートである。なお、図5の説明において、図3または図4で示した処理と同じ処理は、図3または図4における符号を用いるものとする
【0032】
S501において、無線LAN制御部202が、アンテナ109、PHY108、MAC107を介してパケット受信すると、データ転送部110は、MAC107内の記憶部(不図示)からRAM101へ受信パケットを転送する。データ転送部110による受信パケット301の転送時に、第1のチェックサム演算部111は受信パケット301全体のチェックサム(CS302)を演算する。データ転送部110は、CS302を受信パケット301に関連付けてT、RAM101へ転送する。
【0033】
S502において、TCP/IP制御部206は、RAM101に格納された受信パケット301を解析し、無線ヘッダ、Ethernet(登録商標)ヘッダ(ETHヘッダ)、IPヘッダ、TCPヘッダ、TCPペイロードに分割した解析済受信パケット303を作成する。
【0034】
S503において、TCP/IP制御部206は、RAM101の性能を取得する。RAMの性能とは、例えば、動作クロックの速さ(処理速度)等の処理能力(および処理能力を表す値)を指す。RAM101の性能が高い場合、第1のチェックサム演算部111と第2のチェックサム演算部207の演算結果を使い分けた際の通信性能の差が小さくなる。したがって、RAM101の性能が所定のレベル未満の場合(S503;YES)は、処理はS504に進み、RAM101の性能が当該所定のレベル以上の場合(S503;NO)は、処理はS506に進む。この所定のレベル(所定の閾値)には、第1のチェックサム演算部111により算出されたチェックサムを用いて通信した際に所望の通信性能を維持できる任意のメモリ性能等を示す値が設定され得る。
【0035】
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かが判定されたが、これに限定されない。
【0036】
S505において、TCP/IP制御部206は、受信パケットの構成を確認して、処理を分岐する。まず、TCP/IP制御部206は、解析済受信パケット303からヘッダ部の長さとIPペイロード部の長さを取得する。なお、ヘッダ部とは、チェックサム補正部208による減算処理が必要な受信パケット内のヘッダ部分を指し、本実施形態では無線ヘッダとEthernet(登録商標)ヘッダとIPヘッダである。ヘッダ部は、前述の通り、データ転送部110が転送する受信パケットのデータ範囲により変化し得る。ヘッダ長が解析済受信パケット303において所定の割合を占める場合、例えば、ヘッダ長がIPペイロード長未満の場合(S505;YES)は、処理はS506に進む。また、ヘッダ長が解析済受信パケット303において所定の割合を占めない場合、例えば、ヘッダ長がIPペイロード長以上の場合(S505;NO)は、処理はS507に進む。
【0037】
また、S505において、TCP/IP制御部206は、受信パケットのパケット種別を判別してもよい。例えば、受信パケットが確認応答(ACK)パケットのようにペイロードがない、または、ペイロード長が閾値未満のパケット種別の場合(S505;YES)は、処理はS506に進み、データパケットのようにペイロード長が閾値以上のパケット種別の場合(S505;NO)は、処理はS507に進むようにしてもよい。この閾値には、第1のチェックサム演算部111と第2のチェックサム演算部207の演算結果を使い分けることで通信性能が変化する任意のペイロード長が設定され得る。なお、パケット種別としてペイロードの長さを示したが、これに限らず、パケットのフラグやオプション情報などに基づいてパケット種別を判別してもよい。
【0038】
S506において、TCP/IP制御部206は、チェックサム補正部208を使用し、チェックサム302から無線ヘッダ、ETHERNET(登録商標)ヘッダ、IPヘッダ分のチェックサムを減算し、TCP仮想ヘッダのチェックサムを加算することにより、TCPのチェックサム305を算出する。当該チェックサムの算出手法は、図3を用いて説明した通りである。なお、前述の通り、減算するヘッダ部はデータ転送部110が転送する受信パケットのデータ範囲により変化し得る。なお、上述した通り、受信パケットがIPv4のパケットである場合は、チェックサム補正部208によるIPヘッダ分のチェックサムの減算処理は不要となる。しがたって、S506の処理において、S504でIPv4と判定された上で実行される場合には、IPヘッダ分のチェックサムの減算以外の補正処理が行われることになる。
【0039】
S507において、TCP/IP制御部206は、第2のチェックサム演算部207を使用し、TCPのチェックサム(TCPヘッダ、TCPペイロード、TCP仮想ヘッダのチェックサム)を再計算する。当該チェックサムの算出手法は、図4を用いて説明した通りである。
【0040】
S508において、TCP/IP制御部206は、S506またはS507で導出されたTCPのチェックサムを用いて、受信パケットの整合性を確認することにより、誤り検出処理を行う。
【0041】
なお、図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へ進む。
【0042】
また、S503とS504の判定は、S501とS502の処理と関係なく実施可能なため、S501の前にS503またはS504の判定を行ってもよい。例えばこの場合、S504でIPv6と判定され、かつ/または、S505でNoと判定された場合は、S501、S502の処理を実施せずに、S507の処理が実施されても良い。これにより、より処理効率が向上し得る。
【0043】
以上、説明したように、本実施形態による通信装置10は、メモリの性能および/または使用するプロトコル種別および/または受信したパケットの構成といった条件に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替える。すなわち、S506のように処理負荷が高い補正処理を必要とするチェックサム演算結果を使用するか、当該補正処理を必要としないチェックサム演算結果を使用するかが切り替えられる。このように、必要に応じて受信パケットのチェックサム計算処理で負荷が軽い手段を用いる否か選択でき、結果として受信の効率が向上し、通信性能が向上する。
【0044】
(第2実施形態)
第2実施形態では、通信装置10が有するCPU103の性能に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替える。なお、第2実施形態において、第1実施形態と同様の図、および図中と同じ要素に関しては説明を省略する。
【0045】
図6は、CPU103の性能に基づいて、図3図4を参照して説明した2種類のチェックサムの演算結果の使用を切り替えるパケット受信手順を示すフローチャートである。なお、図6の説明において、図3または図4で示した処理と同じ処理は、図3または図4における符号を用いるものとする。また、S601〜S602およびS604〜S608の処理は、図5のS501〜S502及びS504〜S508の処理と同様のため、説明を省略する。
【0046】
S603において、TCP/IP制御部206は、CPU103の性能を取得する。CPUの性能とは、例えば、処理速度等の処理能力(および処理能力を表す値)を指す。CPU103の性能が高い場合、第1のチェックサム演算部111と第2のチェックサム演算部207を使い分けた際の通信性能の差が小さくなる。したがって、CPU103の性能が所定のレベル未満の場合(S603;YES)はS604に進み、CPU103の性能が当該所定のレベル以上の場合(S603;NO)は、処理はS606に進む。この所定のレベル(所定の閾値)には、第1のチェックサム演算部111により算出されたチェックサムを用いて通信した際に所望の通信性能を維持できる任意のCPU性能等を示す値が設定され得る。
【0047】
なお、図6に示すフローチャートでは、S603、S604、およびS605すべての判定が行われるが、S603の判定以外の判定は行われても良い。例えば、S604が省略される場合、S603でYesと判定された場合に処理はS605へ進む。また、S605が省略される場合、S604でIPv4以外の例えばIPv6と判定された場合に処理はS607へ進む。また、S604とS605が省略される場合、S603でYesと判定された場合に処理はS607へ進む。
【0048】
以上、説明したように、本実施形態による通信装置10は、CPU103の性能といった条件に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替える。すなわち、S606のように処理負荷が高い補正処理を必要とするチェックサム演算結果を使用するか、当該補正処理を必要としないチェックサム演算結果を使用するかが切り替えられる。このように、必要に応じて受信パケットのチェックサム計算処理で負荷が軽い手段を用いる否か選択でき、結果として受信の効率が向上し、通信性能が向上する。
【0049】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0050】
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 チェックサム補正部
図1
図2
図3
図4
図5
図6