(57)【要約】【課題】受信時のチェックサム計算処理の負荷を軽減する。【解決手段】通信装置は、所定の条件に基づいて、他の通信装置から受信した受信パケットに対して演算されたチェックサムに対して該受信パケットの整合性を確認するために必要な補正を行うか、該受信パケットに対して所定のプロトコル処理が施されたパケットに対してチェックサムを演算するかを判定し、判定結果に基づいて、該補正により得られたチェックサム又は該所定のプロトコルが施されたパケットに対して演算されたチェックサムを用いて該受信パケットの整合性を確認する。【選択図】  図５
2018097429.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
他の通信装置から受信した受信パケットに対してチェックサムを演算する第１のチェックサム演算手段と、
前記第１のチェックサム演算手段により演算されたチェックサムに対して前記受信パケットの整合性を確認するために必要な補正を行う補正手段と、
前記受信パケットに対して所定のプロトコル処理が施されたパケットに対してチェックサムを演算する第２のチェックサム演算手段と、
所定の条件に基づいて、前記補正手段による補正を行うか前記第２のチェックサム演算手段によるチェックサムの演算を行うかを判定する判定手段と、
前記判定手段による判定の結果に基づいて、前記補正手段によって補正されたチェックサム又は前記第２のチェックサム演算手段によって演算されたチェックサムを用いて前記受信パケットの整合性を確認する確認手段と、
を有することを特徴とする通信装置。
【請求項２】
前記所定の条件は、前記通信装置の処理能力に応じた条件であることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記判定手段は、前記通信装置が有するメモリの性能が第１のレベル以上である場合に前記補正手段による補正を行い、前記メモリの性能が前記第１のレベル未満である場合に前記第２のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記判定手段は、前記通信装置が有するプロセッサの性能が第２のレベル以上である場合に前記補正手段による補正を行い、前記プロセッサの性能が前記第２のレベル未満である場合に前記第２のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項２または３に記載の通信装置。
【請求項５】
前記所定の条件は、前記プロトコル処理のためのプロトコルの種別に応じた条件であることを特徴とする請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
前記判定手段は、前記プロトコルの種別がＩＰｖ４の場合に前記補正手段による補正を行い、当該プロトコルの種別がＩＰｖ４以外の場合に前記第２のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項５に記載の通信装置。
【請求項７】
前記所定の条件は、前記プロトコル処理が施されたパケットの構成に応じた条件であることを特徴とする請求項１から６のいずれか１項に記載の通信装置。
【請求項８】
前記判定手段は、前記プロトコル処理が施されたパケットにおけるペイロード部の長さが所定の閾値未満の場合に前記補正手段による補正を行い、当該ペイロード部の長さが前記所定の閾値以上の場合に前記第２のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項７に記載の通信装置。
【請求項９】
前記判定手段は、前記プロトコル処理が施されたパケットにおけるヘッダ部の長さが当該パケットにおいて所定の割合を占める場合に前記補正手段による補正を行い、当該ヘッダ部の長さが当該パケットにおいて所定の割合を占めない場合に前記第２のチェックサム演算手段によるチェックサムの演算を行うと判定することを特徴とする請求項７に記載の通信装置。
【請求項１０】
通信装置の制御方法であって、
所定の条件に基づいて、他の通信装置から受信した受信パケットに対して演算されたチェックサムに対して前記受信パケットの整合性を確認するために必要な補正を行うか、前記受信パケットに対して所定のプロトコル処理が施されたパケットに対してチェックサムを演算するかを判定する判定工程と
前記判定工程における判定の結果に基づいて、
前記補正により得られたチェックサム又は前記所定のプロトコルが施されたパケットに対して演算されたチェックサムを用いて前記受信パケットの整合性を確認する確認工程と、
を有することを特徴とする通信装置の制御方法。
【請求項１１】
コンピュータを、請求項１から９のいずれか１項に記載の通信装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信を行うための通信装置、その制御方法、およびプログラムに関する。
【背景技術】
【０００２】
データ通信において、データの誤りを検出するための機構を備えた通信方式がある。たとえば、インターネット通信で使われている主要なプロトコルであるＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）では、ＴＣＰパケットのデータの誤りを検出するため、１の補数を加算することによって求められるチェックサムが使用される。しかし、ソフトウェア演算による処理でチェックサム演算を実施すると、処理負荷が増大し、通信処理性能が低下するという課題がある。
【０００３】
この課題を解決する方法として、ＤＭＡ（Direct Memory Access）を用いてデータをコピーしながらチェックサム計算を行う方法が提案されている（特許文献１参照）。この方法によれば、装置の処理負荷を軽減し、かつ、通信処理性能の低下を防止することが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２０７２２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の方法では、ＤＭＡを用いてメモリ間を転送するデータ単位で、チェックサム演算が行われる。ＴＣＰ／ＩＰ通信の受信処理において、無線モジュールにおける記憶部からネットワークスタックにおける記憶部へのＤＭＡ転送時に本方法を用いる場合、ネットワークスタックで解析する前のデータ列がチェックサム演算対象となる。そのため、ＴＣＰパケットのチェックサムを算出するには、ＩＰヘッダなどの不要部分のチェックサムを削除するための補正処理が必要となる。しかしながら、当該補正処理の時間は、パケットのヘッダサイズに比例して長くなるため、通信性能が低下するという課題がある。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、受信時のチェックサム計算処理の負荷を軽減することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するための一手段として、本発明の通信装置は以下の構成を有する。すなわち、他の通信装置から受信した受信パケットに対してチェックサムを演算する第１のチェックサム演算手段と、前記第１のチェックサム演算手段により演算されたチェックサムに対して前記受信パケットの整合性を確認するために必要な補正を行う補正手段と、前記受信パケットに対して所定のプロトコル処理が施されたパケットに対してチェックサムを演算する第２のチェックサム演算手段と、所定の条件に基づいて、前記補正手段による補正を行うか前記第２のチェックサム演算手段によるチェックサムの演算を行うかを判定する判定手段と、前記判定手段による判定の結果に基づいて、前記補正手段によって補正されたチェックサム又は前記第２のチェックサム演算手段によって演算されたチェックサムを用いて前記受信パケットの整合性を確認する確認手段と、を有する。
【発明の効果】
【０００８】
本発明によれば、受信時のチェックサム計算処理の負荷を軽減することにより、通信性能を向上させることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】通信装置１０のハードウェア構成例を示すブロック図。
【図２】通信装置１０の機能構成例を示すブロック図。
【図３】第１のチェックサム演算部１１１とチェックサム補正部２０８により演算および補正されたチェックサムの演算手順を説明する概要図。
【図４】第２のチェックサム演算部２０７により演算されたチェックサムの演算手順を説明する概要図。
【図５】通信装置１０が、ＲＡＮ１０１の性能に基づいて、使用するチェックサム演算結果を切り替えるパケット受信処理手順を示すフローチャート。
【図６】通信装置１０が、ＣＰＵ１０３の性能に基づいて、使用するチェックサム演算結果を切り替えるパケット受信処理手順を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、添付の図面を参照して、本発明をその実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１１】
（第１実施形態）
第１の実施形態として、通信装置が有するメモリの性能および／または使用するプロトコル種別および／または受信したパケットの構成に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替えることが可能な通信装置について説明する。
【００１２】
[装置の構成]
本実施形態における通信装置１０のハードウェア構成と機能構成について、図１と図２を参照して説明する。図１は、通信装置１０のハードウェア構成例を示すブロック図であり、図２は通信装置１０の機能構成例を示すブロック図である。なお、通信装置１０の具体例は、デジタルカメラ、デジタルビデオカメラ、携帯電話、スマートフォン、ＰＣ（Personal Computer）、ノートＰＣ、サーバ、などである。
【００１３】
まず、通信装置１０のハードウェア構成について説明する。図１に示すように、通信装置１０は、ＲＡＭ１０１、ＲＯＭ１０２、ＣＰＵ１０３、表示部１０４、操作部１０５、タイマ管理部１０６、第１のチェックサム演算部１１１を含むデータ転送部１１０を有する。また、通信装置１０は、メディアアクセス制御モジュール（ＭＡＣ）１０７と、物理レイヤモジュール（ＰＨＹ）１０８も有する。なお、ＲＡＭはRandom Access Memory、ＲＯＭはRead Only Memory、ＣＰＵはCentral Processing Unitを表す。なお、通信装置１０がこれらのハードウェア構成要素の全てを有することは必須でない。
【００１４】
ＲＡＭ１０１は、プログラムやデータを一時記憶する。なお、図１には、一つのＲＡＭ１０１を図示しているが、通信装置１０は、性能の異なる複数のＲＡＭ１０１を有することも可能である。ＲＯＭ１０２は、ＣＰＵ１０３により実行可能なプログラムやパラメータを格納する。ＣＰＵ１０３は、通信装置１０全体の動作を制御するプロセッサである。例えば、ＣＰＵ１０３は、ＲＡＭ１０１をワークメモリとして、ＲＯＭ１０２や図示しないＨＤＤ（Hard Disc Drive）などの記憶媒体に格納された各種プログラムを実行する。ＣＰＵ１０３が実行するプログラムには、ネットワークドライバが含まれる。ＣＰＵ１０３がネットワークドライバを実行することにより、後述するパケットの受信処理などを含むプロトコル処理の機能が実現される。
【００１５】
表示部１０４は、各種表示を行う。例えば、表示部１０４は、ユーザが通信装置１０を操作するためのＧＵＩ（Graphic User Interface）を表示する。操作部１０５は、ユーザが通信装置１０を操作するための入力インタフェースである。タイマ管理部１０６は、プログラムの処理などの時間の経過を管理する。ＭＡＣ１０７とＰＨＹ１０８は、アンテナ１０９を介してＷｉ−Ｆｉによる無線ＬＡＮ（Local Area Network）などのネットワークを介した通信を行う通信部である。ＣＰＵ１０３がネットワークドライバを実行することにより、ＭＡＣ１０７が制御され、ＰＨＹ１０８とアンテナ１０９を介してデータ（パケット）の送受信が行われる。なお、本実施形態ではＷｉ−Ｆｉによる無線ＬＡＮ通信機能を用いるが、これに限らず、ＩＰ（Internet Protocol）通信が可能であれば、有線ＬＡＮ通信機能のＥｔｈｅｒｎｅｔ（登録商標）など、他の通信方式を利用してもよい。
【００１６】
データ転送部１１０は、ＤＭＡＣ（Direct Memory Access Controller）として構成され、メモリ間のデータ転送を行う。データ転送部１１０内の第１のチェックサム演算部１１１は、データ転送時に、転送されるデータのチェックサムを演算する。第１のチェックサム演算部１１１は、データ転送部１１０における処理ステップに対してステップ数を増やすことなく、チェックサム演算が可能である。
【００１７】
続いて、通信装置１０の機能構成について説明する。図２に示すように、通信装置１０は、機能制御部２０１、無線ＬＡＮ制御部２０２、表示制御部２０３、操作制御部２０４、記憶制御部２０５を有する。通信装置１０はまた、ＴＣＰ／ＩＰ制御部２０６、第２のチェックサム演算部２０７、チェックサム補正部２０８を有する。これらの機能構成要素の各々の処理は、ＣＰＵ１０３がＲＯＭ１０２に格納されたプログラムをＲＡＭ１０１に展開して実行することより実現され得る。一方、ハードウェアによりこれらの機能構成要素の各々の処理を実現するためには、これらの機能構成要素の処理に対応させた演算部や回路をハードウェアで構成すればよい。なお、通信装置１０がこれらの機能構成要素の全てを有することは必須でない。
【００１８】
機能制御部２０１は、各機能構成要素（無線ＬＡＮ制御部２０２〜チェックサム補正部２０８）を制御する。無線ＬＡＮ制御部２０２は、ＭＡＣ１０７とＰＨＹ１０８を制御し、他の通信装置と無線ＬＡＮ通信を行うための制御を行う。通信装置１０が外部の無線アクセスポイントを経由して他の通信装置と接続する場合は、無線ＬＡＮ制御部２０２は、ＭＡＣ１０７とＰＨＹ１０８を制御して無線アクセスポイント（不図示）との無線ＬＡＮ通信を行う。
【００１９】
表示制御部２０３は、表示部１０４に各種情報を表示させるための制御を行う。操作制御部２０４は、操作部１０５を介して、通信装置１０に対するユーザからの操作入力を受け付け、当該入力に応じた制御を行う。記憶制御部２０５は、ＲＡＭ１０１を制御し、処理データや画像コンテンツ、映像コンテンツなどのデータをＲＡＭ１０１に記憶またはＲＡＭ１０１から削除する。
【００２０】
ＴＣＰ／ＩＰ制御部２０６は、他の通信装置との間でＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）方式の通信制御を行う。また、ＴＣＰ／ＩＰ制御部２０６は、ＲＡＭ１０１に格納された受信パケットを解析し、無線ヘッダ、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダ（ＥＴＨヘッダ）、ＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰペイロードへ分割する等といった所定のプロトコル処理を行う。なお、本実施形態では、ＴＣＰ／ＩＰ通信を利用する例を示すが、これに限らず、チェックサムを使用する他のプロトコルを利用してもよい。第２のチェックサム演算部２０７は、ＴＣＰ／ＩＰ制御部２０６において所定のプロトコル処理が施されたパケットに対してチェックサムの演算を行う。第２のチェックサム演算部２０７は、ＴＣＰ／ＩＰ制御部２０６により利用され得る。チェックサム補正部２０８は、第１のチェックサム演算部１１１により算出されたチェックサムの値を補正する。チェックサム補正部２０８は、ＴＣＰ／ＩＰ制御部２０６により利用され得る。ＴＣＰ／ＩＰ制御部２０６は、第２のチェックサム演算部２０７又はチェックサム補正部２０８において生成されたチェックサムを用いて、受信パケットの整合性を確認する。
【００２１】
[チェックサム演算]
次に、本実施形態におけるＴＣＰにおけるチェックサムの演算手法について図３と図４を参照して説明する。
【００２２】
図３は、第１のチェックサム演算部１１１とチェックサム補正部２０８により演算および補正されたチェックサムの演算手順を説明する概要図である。図３の説明のために、通信装置１０が外部の無線アクセスポイントを経由して、Ｅｔｈｅｒｎｅｔ（登録商標）を伝送経路として他の通信装置と通信することを前提とするが、他の通信形態にも本説明は適用可能である。
【００２３】
無線ＬＡＮ制御部２０２が、他の通信装置（不図示）から送信されたパケットをアンテナ１０９、ＰＨＹ１０８、ＭＡＣ１０７を介して受信すると、データ転送部１１０は、ＭＡＣ１０７内の記憶部（不図示）からＲＡＭ１０１へ受信パケットを転送する。この転送の際、第１のチェックサム演算部１１１は、受信パケット全体のチェックサム（ＣＳ３０２）を演算する。データ転送部１１０は、ＣＳ３０２を受信パケット３０１に関連付けて、ＲＡＭ１０１へ転送する。
【００２４】
ＴＣＰ/ＩＰ制御部２０６は、ＲＡＭ１０１に格納された受信パケット３０１に対してプロトコル処理を施すことにより解析する。その結果、無線ヘッダ、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダ（ＥＴＨヘッダ）、ＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰペイロードに分割した、解析済受信パケット３０３が生成される。
【００２５】
次に、ＴＣＰ/ＩＰ制御部２０６は、チェックサム補正部２０８を使用し、ＴＣＰのチェックサムに不要なヘッダ部のチェックサムを、ＣＳ３０２から減算し、ＴＣＰ仮想ヘッダのチェックサムを加算することにより、ＴＣＰのチェックサム３０５を算出する。ここで、ＴＣＰのチェックサムの不要なヘッダ部は、本実施形態では、無線ヘッダ、ＥＴＨＥＲＮＥＴ（登録商標）ヘッダ、ＩＰヘッダである。なお、減算される不要なヘッダ部は、データ転送部１１０から転送される受信パケットのデータ範囲により変化し得る。また、ＴＣＰ仮想ヘッダとは、ＴＣＰのチェックサムを計算するために必要な周知のヘッダであり、発信元ＩＰアドレスや宛先ＩＰアドレス等から構成されるものである。ＴＣＰ／ＩＰ制御部２０６は、算出したＴＣＰのチェックサム３０５を用いて受信パケットの整合性を確認する（誤り検出処理を行う）。
【００２６】
整合性の確認の結果、ＴＣＰ/ＩＰ制御部２０６は、受信パケットに誤りがないことを確認した場合は、アプリケーション３０６に受信パケットのデータを渡す。一方、ＴＣＰ/ＩＰ制御部２０６は、受信パケットに誤りがあることを確認した場合は、受信パケットを破棄する。
【００２７】
図４は、第２のチェックサム演算部２０７により演算されたチェックサムの演算手順を説明する概要図である。図４の説明のために、図３と同様に、通信装置１０が外部の無線アクセスポイントを経由して、Ｅｔｈｅｒｎｅｔ（登録商標）を伝送経路として他の通信装置と通信することを前提とするが、他の通信形態にも本説明は適用可能である。
【００２８】
無線ＬＡＮ制御部２０２は、他の通信装置（不図示）から送信されたパケットをアンテナ１０９、ＰＨＹ１０８、ＭＡＣ１０７を介して受信すると、データ転送部１１０は、ＭＡＣ１０７内の記憶部（不図示）からＲＡＭ１０１へ受信パケットを転送する。ＴＣＰ/ＩＰ制御部２０６は、ＲＡＭ１０１に格納された受信パケットを解析し、無線ヘッダ、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダ（ＥＴＨヘッダ）、ＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰペイロードに分割した、解析済受信パケット３０３を生成する。
【００２９】
ＴＣＰ/ＩＰ制御部２０６は、第２のチェックサム演算部２０７を使用し、ＴＣＰのチェックサムとして、解析済受信パケット３０３におけるＴＣＰヘッダ、ＴＣＰペイロード、およびＴＣＰ仮想ヘッダのチェックサムを算出する。続いて、ＴＣＰ/ＩＰ制御部２０６は、算出したＴＣＰのチェックサムを用いて受信パケットの整合性を確認する。
【００３０】
ＴＣＰ/ＩＰ制御部２０６は、ＴＣＰのチェックサムから受信パケットに誤りがないことを確認した場合はアプリケーション３０６に受信データを渡し、ＴＣＰのチェックサムから受信パケットに誤りがあることを確認した場合は受信パケットを破棄する。
【００３１】
次に、図５を参照して通信装置１０の動作について説明する。図５は、ＲＡＭ１０１の性能に基づいて、図３と図４を参照して説明した２種類のチェックサムの演算結果の使用を切り替えるパケット受信手順を示すフローチャートである。なお、図５の説明において、図３または図４で示した処理と同じ処理は、図３または図４における符号を用いるものとする
【００３２】
Ｓ５０１において、無線ＬＡＮ制御部２０２が、アンテナ１０９、ＰＨＹ１０８、ＭＡＣ１０７を介してパケット受信すると、データ転送部１１０は、ＭＡＣ１０７内の記憶部（不図示）からＲＡＭ１０１へ受信パケットを転送する。データ転送部１１０による受信パケット３０１の転送時に、第１のチェックサム演算部１１１は受信パケット３０１全体のチェックサム（ＣＳ３０２）を演算する。データ転送部１１０は、ＣＳ３０２を受信パケット３０１に関連付けてＴ、ＲＡＭ１０１へ転送する。
【００３３】
Ｓ５０２において、ＴＣＰ/ＩＰ制御部２０６は、ＲＡＭ１０１に格納された受信パケット３０１を解析し、無線ヘッダ、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダ（ＥＴＨヘッダ）、ＩＰヘッダ、ＴＣＰヘッダ、ＴＣＰペイロードに分割した解析済受信パケット３０３を作成する。
【００３４】
Ｓ５０３において、ＴＣＰ/ＩＰ制御部２０６は、ＲＡＭ１０１の性能を取得する。ＲＡＭの性能とは、例えば、動作クロックの速さ（処理速度）等の処理能力（および処理能力を表す値）を指す。ＲＡＭ１０１の性能が高い場合、第１のチェックサム演算部１１１と第２のチェックサム演算部２０７の演算結果を使い分けた際の通信性能の差が小さくなる。したがって、ＲＡＭ１０１の性能が所定のレベル未満の場合（Ｓ５０３；ＹＥＳ）は、処理はＳ５０４に進み、ＲＡＭ１０１の性能が当該所定のレベル以上の場合（Ｓ５０３；ＮＯ）は、処理はＳ５０６に進む。この所定のレベル（所定の閾値）には、第１のチェックサム演算部１１１により算出されたチェックサムを用いて通信した際に所望の通信性能を維持できる任意のメモリ性能等を示す値が設定され得る。
【００３５】
Ｓ５０４において、ＴＣＰ/ＩＰ制御部２０６は、ネットワーク層のプロトコル種別がＩＰｖ４かＩＰｖ６のいずれであるかを判定する。ＩＰｖ４では、ＩＰヘッダにチェックサムフィールドがあり、ＩＰヘッダ分のチェックサムが格納されている。そのため、受信パケットに誤りがない場合、ＩＰｖ４通信時に第１のチェックサム演算部１１１が算出するチェックサム３０２には、ＩＰヘッダ分のチェックサムが相殺されるため含まれない。つまり、ＩＰｖ４の場合は、チェックサム補正部２０８によるＩＰヘッダ分のチェックサムの減算処理は不要となる。しがたって、ＩＰヘッダにチェックサムフィールドがないＩＰｖ６を使用している場合（Ｓ５０４；ＩＰｖ６）は、処理はＳ５０５に進み、ＩＰヘッダにチェックサムフィールドがあるＩＰｖ４を使用している場合（Ｓ５０４；ＩＰｖ４）は、処理はＳ５０６に進む。なお、Ｓ５０４ではＩＰｖ４とＩＰｖ６かが判定されたが、これに限定されない。
【００３６】
Ｓ５０５において、ＴＣＰ/ＩＰ制御部２０６は、受信パケットの構成を確認して、処理を分岐する。まず、ＴＣＰ/ＩＰ制御部２０６は、解析済受信パケット３０３からヘッダ部の長さとＩＰペイロード部の長さを取得する。なお、ヘッダ部とは、チェックサム補正部２０８による減算処理が必要な受信パケット内のヘッダ部分を指し、本実施形態では無線ヘッダとＥｔｈｅｒｎｅｔ（登録商標）ヘッダとＩＰヘッダである。ヘッダ部は、前述の通り、データ転送部１１０が転送する受信パケットのデータ範囲により変化し得る。ヘッダ長が解析済受信パケット３０３において所定の割合を占める場合、例えば、ヘッダ長がＩＰペイロード長未満の場合（Ｓ５０５；ＹＥＳ）は、処理はＳ５０６に進む。また、ヘッダ長が解析済受信パケット３０３において所定の割合を占めない場合、例えば、ヘッダ長がＩＰペイロード長以上の場合（Ｓ５０５；ＮＯ）は、処理はＳ５０７に進む。
【００３７】
また、Ｓ５０５において、ＴＣＰ/ＩＰ制御部２０６は、受信パケットのパケット種別を判別してもよい。例えば、受信パケットが確認応答（ＡＣＫ）パケットのようにペイロードがない、または、ペイロード長が閾値未満のパケット種別の場合（Ｓ５０５；ＹＥＳ）は、処理はＳ５０６に進み、データパケットのようにペイロード長が閾値以上のパケット種別の場合（Ｓ５０５；ＮＯ）は、処理はＳ５０７に進むようにしてもよい。この閾値には、第１のチェックサム演算部１１１と第２のチェックサム演算部２０７の演算結果を使い分けることで通信性能が変化する任意のペイロード長が設定され得る。なお、パケット種別としてペイロードの長さを示したが、これに限らず、パケットのフラグやオプション情報などに基づいてパケット種別を判別してもよい。
【００３８】
Ｓ５０６において、ＴＣＰ/ＩＰ制御部２０６は、チェックサム補正部２０８を使用し、チェックサム３０２から無線ヘッダ、ＥＴＨＥＲＮＥＴ（登録商標）ヘッダ、ＩＰヘッダ分のチェックサムを減算し、ＴＣＰ仮想ヘッダのチェックサムを加算することにより、ＴＣＰのチェックサム３０５を算出する。当該チェックサムの算出手法は、図３を用いて説明した通りである。なお、前述の通り、減算するヘッダ部はデータ転送部１１０が転送する受信パケットのデータ範囲により変化し得る。なお、上述した通り、受信パケットがＩＰｖ４のパケットである場合は、チェックサム補正部２０８によるＩＰヘッダ分のチェックサムの減算処理は不要となる。しがたって、Ｓ５０６の処理において、Ｓ５０４でＩＰｖ４と判定された上で実行される場合には、ＩＰヘッダ分のチェックサムの減算以外の補正処理が行われることになる。
【００３９】
Ｓ５０７において、ＴＣＰ/ＩＰ制御部２０６は、第２のチェックサム演算部２０７を使用し、ＴＣＰのチェックサム（ＴＣＰヘッダ、ＴＣＰペイロード、ＴＣＰ仮想ヘッダのチェックサム）を再計算する。当該チェックサムの算出手法は、図４を用いて説明した通りである。
【００４０】
Ｓ５０８において、ＴＣＰ/ＩＰ制御部２０６は、Ｓ５０６またはＳ５０７で導出されたＴＣＰのチェックサムを用いて、受信パケットの整合性を確認することにより、誤り検出処理を行う。
【００４１】
なお、図５に示すフローチャートでは、Ｓ５０３、Ｓ５０４、およびＳ５０５すべての判定が行われるが、これらの判定のいずれか１つ以上が行われても良い。例えば、Ｓ５０３が省略される場合、Ｓ５０２の後、処理はＳ５０４へ進む。また、Ｓ５０４が省略される場合、Ｓ５０３でＹｅｓと判定された場合に処理はＳ５０５へ進む。また、Ｓ５０５が省略される場合、Ｓ５０４でＩＰｖ６と判定された場合に処理はＳ５０７へ進む。また、Ｓ５０４とＳ５０５が省略される場合、Ｓ５０３でＹｅｓと判定された場合に処理はＳ５０７へ進む。また、Ｓ５０３とＳ５０４が省略される場合、Ｓ５０２の後、処理はＳ５０５へ進む。また、Ｓ５０３とＳ５０５が省略される場合、Ｓ５０２の後、処理はＳ５０４へ進み、Ｓ５０４でＩＰｖ６と判定された場合に処理はＳ５０７へ進む。
【００４２】
また、Ｓ５０３とＳ５０４の判定は、Ｓ５０１とＳ５０２の処理と関係なく実施可能なため、Ｓ５０１の前にＳ５０３またはＳ５０４の判定を行ってもよい。例えばこの場合、Ｓ５０４でＩＰｖ６と判定され、かつ／または、Ｓ５０５でＮｏと判定された場合は、Ｓ５０１、Ｓ５０２の処理を実施せずに、Ｓ５０７の処理が実施されても良い。これにより、より処理効率が向上し得る。
【００４３】
以上、説明したように、本実施形態による通信装置１０は、メモリの性能および／または使用するプロトコル種別および／または受信したパケットの構成といった条件に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替える。すなわち、Ｓ５０６のように処理負荷が高い補正処理を必要とするチェックサム演算結果を使用するか、当該補正処理を必要としないチェックサム演算結果を使用するかが切り替えられる。このように、必要に応じて受信パケットのチェックサム計算処理で負荷が軽い手段を用いる否か選択でき、結果として受信の効率が向上し、通信性能が向上する。
【００４４】
（第２実施形態）
第２実施形態では、通信装置１０が有するＣＰＵ１０３の性能に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替える。なお、第２実施形態において、第１実施形態と同様の図、および図中と同じ要素に関しては説明を省略する。
【００４５】
図６は、ＣＰＵ１０３の性能に基づいて、図３と図４を参照して説明した２種類のチェックサムの演算結果の使用を切り替えるパケット受信手順を示すフローチャートである。なお、図６の説明において、図３または図４で示した処理と同じ処理は、図３または図４における符号を用いるものとする。また、Ｓ６０１〜Ｓ６０２およびＳ６０４〜Ｓ６０８の処理は、図５のＳ５０１〜Ｓ５０２及びＳ５０４〜Ｓ５０８の処理と同様のため、説明を省略する。
【００４６】
Ｓ６０３において、ＴＣＰ/ＩＰ制御部２０６は、ＣＰＵ１０３の性能を取得する。ＣＰＵの性能とは、例えば、処理速度等の処理能力（および処理能力を表す値）を指す。ＣＰＵ１０３の性能が高い場合、第１のチェックサム演算部１１１と第２のチェックサム演算部２０７を使い分けた際の通信性能の差が小さくなる。したがって、ＣＰＵ１０３の性能が所定のレベル未満の場合（Ｓ６０３；ＹＥＳ）はＳ６０４に進み、ＣＰＵ１０３の性能が当該所定のレベル以上の場合（Ｓ６０３；ＮＯ）は、処理はＳ６０６に進む。この所定のレベル（所定の閾値）には、第１のチェックサム演算部１１１により算出されたチェックサムを用いて通信した際に所望の通信性能を維持できる任意のＣＰＵ性能等を示す値が設定され得る。
【００４７】
なお、図６に示すフローチャートでは、Ｓ６０３、Ｓ６０４、およびＳ６０５すべての判定が行われるが、Ｓ６０３の判定以外の判定は行われても良い。例えば、Ｓ６０４が省略される場合、Ｓ６０３でＹｅｓと判定された場合に処理はＳ６０５へ進む。また、Ｓ６０５が省略される場合、Ｓ６０４でＩＰｖ４以外の例えばＩＰｖ６と判定された場合に処理はＳ６０７へ進む。また、Ｓ６０４とＳ６０５が省略される場合、Ｓ６０３でＹｅｓと判定された場合に処理はＳ６０７へ進む。
【００４８】
以上、説明したように、本実施形態による通信装置１０は、ＣＰＵ１０３の性能といった条件に基づいて、受信パケットの整合性を確認するために使用するチェックサム演算結果を切り替える。すなわち、Ｓ６０６のように処理負荷が高い補正処理を必要とするチェックサム演算結果を使用するか、当該補正処理を必要としないチェックサム演算結果を使用するかが切り替えられる。このように、必要に応じて受信パケットのチェックサム計算処理で負荷が軽い手段を用いる否か選択でき、結果として受信の効率が向上し、通信性能が向上する。
【００４９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５０】
１０  通信装置、１０１  ＲＡＭ、１０２  ＲＯＭ、１０３  ＣＰＵ、１０４  表示部、１０５  操作部、１０６  タイマ管理部、１０７  ＭＡＣ、１０８  ＰＨＹ、１０９  アンテナ、１１０  データ転送部、１１１  第１のチェックサム演算部、２０１  機能制御部、２０２  無線ＬＡＮ制御部、２０３  表示制御部、２０４  操作制御部、２０５  記憶制御部、２０６  ＴＣＰ／ＩＰ制御部、２０７  第２のチェックサム演算部、２０８  チェックサム補正部
【図１】
2018097429.tif 000003
【図２】
2018097429.tif 000004
【図３】
2018097429.tif 000005
【図４】
2018097429.tif 000006
【図５】
2018097429.tif 000007
【図６】
2018097429.tif 000008