(57)【要約】【課題】記憶手段の容量削減と処理負担の軽減とを図る。【解決手段】情報処理装置１００は、ＴＣＰ／ＵＤＰパケットに対してフラグメンテーション処理されたパケットを含むＩＰパケットを受信する通信インターフェース１０１と、受信した複数のＩＰパケットのいずれか１つから、分割される前のＴＣＰ／ＵＤＰパケットのチェックサムバイトを抽出して、ヘッダバイト記憶部１２２に記憶させるヘッダバイト抽出部１１３と、受信した複数のＩＰパケットのそれぞれに対してチェックサム演算を行い、演算結果を積算して、演算結果記憶部１２１に記憶させるチェックサム演算回路１１２と、演算結果記憶部１２１に記憶された、積算された後の演算結果と、ヘッダバイト記憶部１２２に記憶されたチェックサムバイトと、に基づいて、複数のＩＰパケットを結合した後のパケットにエラーがあるか否かを判定するエラー判定割込制御部１１５と、を備えた。【選択図】図１
2012156602.tif 000002
【特許請求の範囲】
【請求項１】
分割化処理されたパケットを示す分割パケットを受信する受信手段と、
受信した複数の前記分割パケットのいずれか１つから、分割される前のパケットのチェックサム情報を抽出して、チェックサム記憶手段に記憶させる抽出手段と、
受信した複数の前記分割パケットのそれぞれに対してチェックサム演算を行い、前記分割パケット毎の演算結果を積算して、演算結果記憶手段に記憶させる演算手段と、
前記演算結果記憶手段に記憶された、積算された後の前記演算結果と、前記チェックサム記憶手段に記憶された前記チェックサム情報と、に基づいて、複数の前記分割パケットを結合した後のパケットにエラーがあるか否かを判定する判定手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記抽出手段は、抽出した前記チェックサム情報を、パケットを識別する識別情報毎に、前記チェックサム記憶手段に記憶し、
前記演算手段は、前記演算結果の積算を、パケットを識別する識別情報毎に行い、前記演算結果記憶手段に記憶させ、
前記判定手段は、前記チェックサム記憶手段及び前記演算結果記憶手段に基づいて、前記識別情報で識別される前記パケット毎にエラーがあるか否かを判定すること、
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記抽出手段と、前記演算手段と、前記判定手段とが、ハードウェアとして備えていることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記受信手段は、ＴＣＰ／ＵＤＰパケットを分割したパケットに対して、ＩＰヘッダが付与された分割パケットを受信し、
前記抽出手段は、受信した分割パケットに格納されているヘッダ情報のうち、ＴＣＰ／ＵＤＰヘッダに含まれているチェックサム情報を前記チェックサム記憶手段に記憶させること、
を特徴とする請求項１乃至３のいずれか１つに記載の情報処理装置。
【請求項５】
複数の前記分割パケットを記憶する記憶手段と、
前記判定手段でエラーがあると判定された前記パケットに含まれる前記分割パケットを、前記記憶手段から廃棄制御を行う制御手段と、
を備えることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
情報処理装置で実行される通信制御方法であって、
受信手段が、分割化処理されたパケットを示す分割パケットを受信する受信ステップと、
抽出手段が、受信した複数の前記分割パケットのいずれか１つから、分割される前のパケットのチェックサム情報を抽出して、チェックサム記憶手段に記憶させる抽出ステップと、
演算手段が、受信した複数の前記分割パケットのそれぞれに対してチェックサム演算を行い、前記分割パケット毎の演算結果を積算して、演算結果記憶手段に記憶させる演算ステップと、
判定手段が、前記演算結果記憶手段に記憶された、積算された後の前記演算結果と、前記チェックサム記憶手段に記憶された前記チェックサム情報と、に基づいて、複数の前記分割パケットを結合した後のパケットにエラーがあるか否かを判定する判定ステップと、
を含むことを特徴とする通信制御方法。
【請求項７】
ネットワーク接続可能な複数の情報処理装置で構成される通信制御システムであって、
第１の前記情報処理装置が、
分割化処理されたパケットを示す分割パケットを送信する送信手段を備え、
第２の前記情報処理装置が、
分割化処理されたパケットを示す分割パケットを受信する受信手段と、
受信した複数の前記分割パケットのいずれか１つから、分割される前のパケットのチェックサム情報を抽出して、チェックサム記憶手段に記憶させる抽出手段と、
受信した複数の前記分割パケットのそれぞれに対してチェックサム演算を行い、前記分割パケット毎の演算結果を積算して、演算結果記憶手段に記憶させる演算手段と、
前記演算結果記憶手段に記憶された、積算された後の前記演算結果と、前記チェックサム記憶手段に記憶された前記チェックサム情報と、に基づいて、複数の前記分割パケットを結合した後のパケットにエラーがあるか否かを判定する判定手段と、を備えたこと、
を特徴とする通信制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、通信制御方法、及び通信制御システムに関する。
【背景技術】
【０００２】
従来、ネットワーク・データを送受信する際には、データ誤りが発生したことを検出するために、誤り検出符号をデータに付加している。この代表的なプロトコルとして、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）やＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）といったプロトコルがＩＥＴＦ（Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）において、ＲＦＣ７９３、ＲＦＣ７６８として規格化されている。これらのパケット形式は、チェックサム・フィールドを持っており、送信側が付与したチェックサムを受信側において確認することで誤り検出を行う。
【０００３】
また、チェックサム演算によるデータ確認の処理は、ソフトウェアで行うことができるが、ＣＰＵの負荷軽減等を目的に、ハードウェアにて行う技術が提案されている。
【０００４】
１つのＴＣＰ／ＵＤＰパケットを分割して複数のＩＰパケットに分けて転送する処理がある。当該処理は、ＴＣＰ／ＵＤＰパケットのフラグメンテーション（分割化処理）と呼ばれている。
【０００５】
フラグメンテーションされたパケットについて、従来のハードウェアでのチェックサム機能では、演算対象とするパケット全体をＲＡＭに一時的に格納してから、演算を行っていた。そして、複数のＴＣＰ／ＵＤＰパケットの分割されたものが順不同で転送されてくるため、より多くのＲＡＭを搭載する必要があった。
【０００６】
そこで、ＴＣＰ／ＵＤＰパケットがフラグメンテーションされている場合のみソフトウェアで演算する方法が提案されている。例えば、特許文献１に記載された技術では、フラグメンテーション未実施及び実施の両方のケースでもチェックサム確認を行っているが、フラグメンテーション実施時にはソフトウェア制御を行っている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、フラグメンテーション実施時にソフトウェア制御になると、演算処理時間が大きくなるという問題が生じる。
【０００８】
本発明は、上記に鑑みてなされたものであって、パケットを一時的に記憶する記憶領域の削減と、演算処理時間を短縮との、両立を図る情報処理装置、通信制御方法、及び通信制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明にかかる情報処理装置は、分割化処理されたパケットを示す分割パケットを受信する受信手段と、受信した複数の前記分割パケットのいずれか１つから、分割される前のパケットのチェックサム情報を抽出して、チェックサム記憶手段に記憶させる抽出手段と、受信した複数の前記分割パケットのそれぞれに対してチェックサム演算を行い、前記分割パケット毎の演算結果を積算して、演算結果記憶手段に記憶させる演算手段と、前記演算結果記憶手段に記憶された、積算された後の前記演算結果と、前記チェックサム記憶手段に記憶された前記チェックサム情報と、に基づいて、複数の前記分割パケットを結合した後のパケットにエラーがあるか否かを判定する判定手段と、を備えたことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、パケットを一時的に記憶する記憶領域の削減と、演算処理時間を短縮と、いう効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態にかかる情報処理装置の構成を示すブロック図である。
【図２】図２は、実施の形態にかかる通信インターフェースが受信する、フラグメンテーションされたパケットの構造例を示した図である。
【図３】図３は、送信側の情報処理装置が送信するパケットの順序と、受信側の情報処理装置が受信するパケットの順序の違いの例を示した図である。
【図４】図４は、ハードウェアでチェックサム演算を行う、従来のＥｔｈｅｒｎｅｔ（登録商標）コントローラのブロック構成を示した図である。
【図５】図５は、ソフトウェアでチェックサムを行う、従来のＥｔｈｅｒｎｅｔコントローラのブロック構成を示した図である。
【図６】図６は、実施の形態にかかる情報処理装置における、パケット受信時の処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかる情報処理装置、通信制御方法、及び通信制御システムの一実施の形態を詳細に説明する。
【００１３】
図１は、実施の形態にかかる情報処理装置の構成を示すブロック図である。図１に示すように、情報処理装置１６０と情報処理装置１００とが、ネットワーク１５０を介して接続された通信制御システムを実現している。
【００１４】
情報処理装置１６０は、情報処理装置１００と同様の構成を備えており、本実施の形態においては、フラグメンテーション（分割化処理）したパケットを、情報処理装置１００に対して送信している。
【００１５】
情報処理装置１００は、通信インターフェース１０１と、Ｅｔｈｅｒｎｅｔ（登録商標）コントローラ１０２と、ＣＰＵ１０３と、ＲＡＭ１０４と、ＲＯＭ１０５と、を備えている。本実施の形態では、情報処理装置１００が、情報処理装置１６０からのパケットを受信する例について説明する。
【００１６】
通信インターフェース１０１は、ネットワーク１５０に対するパケットの送受信を制御するインターフェースとする。通信インターフェース１０１は、１０／１００／１００ＢＡＳＥ−Ｔ／ＴＸ、かつ全二重／半二重対応のＥｔｈｅｒｎｅｔ（登録商標）と接続可能なインターフェースとする。また、通信インターフェース１０１は、情報処理装置１６０によりフラグメンテーション（分割化処理）されたパケットを受信する。
【００１７】
本実施の形態においては、通信インターフェース１０１は、ＴＣＰ／ＵＤＰパケットを分割処理したパケットそれぞれに対して、ＩＰヘッダが付与されたパケットを受信する。図２は、本実施の形態にかかる通信インターフェース１０１が受信する、フラグメンテーションされたパケットの構造例を示した図である。図２に示すように、ＴＣＰ／ＵＤＰパケットを分割したパケットそれぞれに対して、ＩＰヘッダ２０１が付与されている。ＩＰヘッダ２０１には、Ｆｌｇバイト２０２、ＩＤバイト２０３が含まれている。図２に示すように、複数のＩＰパケットにまたがって転送される１つのＴＣＰ／ＵＤＰパケットは、１つのＩＰパケット部分にのみＴＣＰ／ＵＤＰヘッダ２０４が格納されている。それ以外のＩＰパケットには、データのみが格納されていることになる。また、ＴＣＰ／ＵＤＰヘッダ２０４には、ＴＣＰ／ＵＤＰパケットをチェックするためのチェックサムバイト２０５が格納されている。
【００１８】
フラグメンテーションが行われた場合、受信側の情報処理装置は、１つのＴＣＰ／ＵＤＰパケットの受信が完了してから、別のＴＣＰ／ＵＤＰパケットを受信するというように、送信側の情報処理装置が送信した順番で受信するとは限らない。図３は、送信側の情報処理装置が送信するパケットの順序と、受信側の情報処理装置が受信するパケットの順序の違いの例を示した図である。図３に示すように、ＴＣＰ／ＵＤＰパケットのＩＤ順に分割されたＩＰパケットが送信されたとしても、受信側が当該ＩＤ順に受信するとは限らない。つまり、ＴＣＰ／ＵＤＰパケットから分割された、複数のＩＰパケットが順不同で転送されてくる。このようなＩＰパケットを処理するための従来の構成について説明する。従来の技術としては、チェックサム演算によるデータ確認の処理は、ＣＰＵの負荷を軽減するために、別途備えられたハードウェアで行う技術がある。
【００１９】
図４は、ハードウェアでチェックサム演算を行う、従来のＥｔｈｅｒｎｅｔコントローラのブロック構成を示した図である。図４に示すようにＥｔｈｅｒｎｅｔコントローラ４００は、ＩＰパケット識別部４０６と、チェックサム演算回路４０１と、チェックサムバイト抽出部４０２と、チェックサムバイト管理回路４０３と、メモリ４０５と、メモリ制御回路４０４と、を備えている。なお、図４に示すＥｔｈｅｒｎｅｔコントローラ４００を備えた情報処理装置は、ＣＰＵ１０３やＲＡＭ１０４等の通常のＰＣと同様の構成を備えている。
【００２０】
ＩＰパケット識別部４０６は、伝送路側からＥｔｈｅｒｎｅｔフレームを受信する。そして、ＩＰパケット識別部４０６は、同期パタンやフレーム先頭位置信号等により、フレームフォーマットを認識し、演算対象となるデータを、データ同期信号（演算対象部分をアクティブにした信号等）と同期させて、チェックサム演算回路４０１に出力する。
【００２１】
チェックサム演算回路４０１は、ＩＰパケット識別部４０６からパケットデータ、同期信号を受け取り、パケットデータに対してチェックサム演算を行う。なお、演算範囲は、受け取った同期信号により判断する。
【００２２】
チェックサムバイト抽出部４０２は、伝送路側より来たＥｔｈｅｒｎｅｔフレームを受信する。そして、チェックサムバイト抽出部４０２は、同期パタンやフレーム先頭位置信号等により、ＴＣＰ／ＵＤＰヘッダに含まれているチェックサムバイトを抽出し、チェックサムバイト管理回路４０３に出力する。
【００２３】
チェックサムバイト管理回路４０３は、チェックサムバイト抽出部４０２からチェックサムバイトを受け取り、チェックサム演算回路４０１からチェックサム演算結果を受け取る。そして、チェックサムバイト管理回路４０３は、これらを比較し、受信したパケットが、正常パケットであるか、又はエラーパケットであるかの判定を行う。そして、チェックサムバイト管理回路４０３は、判定結果を、チェックサム比較結果として、メモリ制御回路４０４に出力する。
【００２４】
メモリ制御回路４０４は、チェックサムバイト管理回路４０３から、チェックサム比較結果を受け取る。そして、メモリ制御回路４０４は、チェックサム比較結果に従って、メモリ４０５に蓄積されたパケットを制御する。例えば、正常パケットと判定された場合、メモリ制御回路４０４は、当該パケットを読み出してＲＡＭ１０４に出力する。また、エラーパケットと判定された場合、メモリ制御回路４０４は、当該パケットを廃棄する。なお、当該制御は、メモリ４０５のリードポインタの制御により実現する。
【００２５】
メモリ４０５は、メモリ制御回路４０４による制御がなされるまで、受信データ（受信したパケット）を一時的に保存する。メモリ４０５の容量は、一般的に必要な容量はパフォーマンス等を考慮して決められるが、チェックサム演算、廃棄処理をＥｔｈｅｒｎｅｔコントローラ４００側で行う場合、チェックサムによる判定結果がでるまでの間、受信したパケットを蓄積しておくだけの容量を必要とする。特に、フラグメンテーションされたパケットに対してチェックサム演算、廃棄処理を行う場合、複数ＩＤ分のパケットを蓄積できるだけのメモリ容量が必要になる。
【００２６】
このように、従来のＥｔｈｅｒｎｅｔコントローラ４００で処理を行った場合には、フラグメンテーションを考慮すると、順不同でくる複数のＴＣＰ／ＵＤＰパケットから分割されたデータを全てメモリ４０５で確保しておく必要がある。そのため、メモリ４０５は大きな容量が必要となるという問題が生じる。次に、ソフトウェアで処理を行う従来技術について説明する。
【００２７】
図５は、ソフトウェアでチェックサムを行う、従来のＥｔｈｅｒｎｅｔコントローラのブロック構成を示した図である。図５に示すようにＥｔｈｅｒｎｅｔコントローラ５００は、メモリ５１１と、メモリ制御回路５１２と、を備えている。
【００２８】
メモリ５１１は、受信データを保存する。メモリ５１１の容量は、パフォーマンス等を考慮して決められるものとする。
【００２９】
メモリ制御回路５１２は、メモリ５１１を制御し、受信データを読み出し、ＲＡＭ５０３に出力する。
【００３０】
そして、ＲＡＭ５０３に格納された受信データに対して、ＣＰＵ５０２上で動作しているソフトウェアが処理を行う。図５に示す例では、ＣＰＵ５０２上で動作するソフトウェアは、パケットのチェックサム演算や、エラーパケットであるか否かの判定等も行う。
【００３１】
ＲＡＭ５０３は、ソフトウェアで処理の対象となるデータを記憶する。そして、ＲＡＭ５０３に記憶されたデータは、ＣＰＵ５０２上のソフトウェアにより読み出し、演算処理が施される。さらに、フラグメンテーション時のチェックサム演算、廃棄処理を行う場合は、複数ＩＤ分のパケットを格納できるだけのメモリ容量が必要になる。
【００３２】
つまり、Ｅｔｈｅｒｎｅｔコントローラ５００側のハードウェアで行わずに、ＣＰＵ５０２上で動作するソフトウェア側で行う場合、Ｅｔｈｅｒｎｅｔコントローラ５００側のメモリ５１１の記憶容量を従来よりも増やす必要はないが、ＲＡＭ５０３側で、順不同でくる複数のＴＣＰ／ＵＤＰパケットの分割されたデータを、確保するだけの容量が必要となる。
【００３３】
このように、ソフトウェア側で行う場合は、Ｅｔｈｅｒｎｅｔコントローラ側に備えられたハードウェアで行うよりも、メモリアクセス、ＣＰＵ５０２による演算処理等により処理時間がかかるという問題がある。そこで、ＴＣＰパケットがフラグメンテーションされている場合のみソフトウェアで演算する方法が一般的に採られているが、この場合も同様にＴＣＰパケットを確保しておくために記憶容量が必要となる。さらに、ソフトウェア処理のために演算処理時間が大きくなるという問題がある。そこで、本実施の形態においては、以下に示す構成を備えることとした。
【００３４】
図１に戻り、ＲＯＭ１０５は、ＣＰＵ１０３上で動作するプログラム等を記憶する。
【００３５】
ＣＰＵ１０３は、情報処理装置１００全体を制御する。ＣＰＵ１０３は、ＲＯＭ１０５に格納されているプログラム（ソフトウェア）を読み出して、ソフトウェアによる制御を行う。また、ＣＰＵ１０３上で動作するソフトウェアは、ＲＡＭ１０４に記憶されたデータに対して様々な制御を行う。
【００３６】
ＲＡＭ１０４は、ソフトウェアの処理対象となるデータを記憶する。
【００３７】
Ｅｔｈｅｒｎｅｔコントローラ１０２は、ＩＰパケット識別部１１１と、チェックサム演算回路１１２と、ヘッダバイト抽出部１１３と、ヘッダバイト管理部１１４と、エラー判定割込制御部１１５と、メモリ１１６と、メモリ制御回路１１７と、を備えている。
【００３８】
ＩＰパケット識別部１１１は、通信インターフェース１０１からきたＥｔｈｅｒｎｅｔフレームを受信する。そして、ＩＰパケット識別部１１１は、同期パタンやフレーム先頭位置信号等により、フレームフォーマットを認識し、演算対象となるデータをデータ同期信号（演算対象部分をアクティブにした信号等）と同期させて、チェックサム演算回路１１２に出力する。
【００３９】
チェックサム演算回路１１２は、ＩＰパケット識別部１１１からパケットデータ、同期信号を受け取り、パケットデータに対してチェックサム演算を行う。なお、演算範囲は、同期信号により判断する。
【００４０】
また、チェックサム演算回路１１２は、ＴＣＰ／ＵＤＰパケットのフラグメンテーションが行われている場合は、ヘッダバイト管理部１１４から、演算途中結果を受け取り、当該演算途中結果を引き継いでチェックサム演算を行う。このように、チェックサム演算回路１１２は、フラグメンテーションされた複数のパケットのそれぞれに対してチェックサム演算を行い、ＴＣＰ／ＵＤＰパケット毎の演算結果を積算して、ヘッダバイト管理部１１４に出力する。そして、ヘッダバイト管理部１１４が、演算結果を、演算結果記憶部１２１に記憶させる。そして、演算途中結果が要求される度に、チェックサム演算回路１１２に出力される。
【００４１】
なお、フラグメンテーションされたデータは、順不同で転送されてくるが、チェックサム演算（１の補数和演算）の特性を利用して、順不同でも正常な演算ができる。
【００４２】
ヘッダバイト抽出部１１３は、通信インターフェース１０１からＥｔｈｅｒｎｅｔフレームを受信する。そして、ヘッダバイト抽出部１１３は、同期パタンやフレーム先頭位置信号等により、フラグメント情報（フラグメントバイト、フラグメントオフセットバイト）、ＩＤバイト、及びパケットレングスバイトを抽出し、ヘッダバイト管理部１１４に出力する。
【００４３】
また、ヘッダバイト抽出部１１３は、受信したＥｔｈｅｒｎｅｔフレームに、ＴＣＰ／ＵＤＰヘッダが含まれていた場合、フラグメンテーションされる前のＴＣＰ／ＵＤＰパケットのチェックサムバイトを抽出して、ヘッダバイト管理部１１４に出力する。出力されたチェックサムバイトは、ヘッダバイト記憶部１２２に記憶される。
【００４４】
ヘッダバイト管理部１１４は、演算結果記憶部１２１と、ヘッダバイト記憶部１２２と、パケット長積算情報記憶部１２３と、を備え、ヘッダバイト抽出部１１３から、フラグメント情報（フラグメントバイト、フラグメントオフセットバイト）、ＩＤバイト、及びパケットレングスバイトや、チェックサムバイトを受け取り、チェックサム演算回路１１２から、演算結果又は演算途中結果を受け取る。
【００４５】
演算結果記憶部１２１は、受け取った演算結果又は演算途中結果を、ＴＣＰ／ＵＤＰパケットを識別するＩＤ毎に記憶する。
【００４６】
ヘッダバイト記憶部１２２は、フラグメントオフセットバイト、ＩＤバイト、パケットレングスバイト、チェックサムバイト等のヘッダバイトを、ＴＣＰ／ＵＤＰパケットを識別するＩＤ毎に記憶する。
【００４７】
パケット長積算情報記憶部１２３は、フラグメンテーションされたパケットのうち、受け取ったパケットのパケット長を積算して、ＴＣＰ／ＵＤＰパケットを識別するＩＤ毎に記憶する。
【００４８】
そして、ヘッダバイト管理部１１４は、フラグメンテーションが実施されているか否かを、ヘッダバイト抽出部１１３により抽出されたフラグメントバイトにより判断する。そして、フラグメンテーションされているか否かに応じて以下の処理を行う。
【００４９】
フラグメンテーションが実施されていない場合、ヘッダバイト管理部１１４は、チェックサム演算回路１１２によるチェックサム演算結果、ヘッダバイト抽出部１１３により抽出されたチェックサムバイトと、を比較し、正常パケットであるか、又はエラーパケットであるかを判定する。そして、ヘッダバイト管理部１１４は、判定結果を、エラー判定割込制御部１１５にチェックサム比較結果として出力する。
【００５０】
フラグメンテーションが実施されている場合、ヘッダバイト管理部１１４は、受け取ったチェックサム演算結果はＩＰパケット単位で行われているため、演算途中結果の可能性がある。そこで、ヘッダバイト管理部１１４は、演算途中である場合は、演算途中結果で演算結果記憶部１２１を更新し、必要に応じて演算途中結果をチェックサム演算回路１１２に受け渡す。その際に、どの演算途中結果を用いるのかは、各パケットのＩＤバイトにより認識される。
【００５１】
このように、演算結果記憶部１２１、ヘッダバイト記憶部１２２、及びパケット長積算情報記憶部１２３に記憶された各情報は、受け取ったパケットに含まれているＩＤバイトに応じて参照される。
【００５２】
また、パケット長積算情報記憶部１２３が管理しているパケット長は、これまで受信したものをＩＤ毎に積算して管理する。そして、ヘッダバイト管理部１１４は、パケット長積算情報記憶部１２３に記憶されたパケット長と、ヘッダバイト記憶部１２２に記憶されているフラグメントオフセットバイトと、により最終となるＩＰパケットを受け付けたか否かを判断できる。つまり、積算されたパケット長と、フラグメントオフセット値と、が同じ値になっていれば、１つのＴＣＰパケットに対する演算が終了したと判断できる。そして、ヘッダバイト管理部１１４は、演算が終了すると、ＩＤとチェックサム比較結果と、をエラー判定割込制御部１１５に出力する。
【００５３】
エラー判定割込制御部１１５は、ヘッダバイト管理部１１４から入力されたＩＤとチェックサム比較結果とから、エラーパケットの判定を行う。つまり、エラー判定割込制御部１１５は、演算結果記憶部１２１に積算された演算結果とヘッダバイト記憶部１２２に記憶されたチェックサムバイトとに基づくチェックサム比較結果から、受け付けたＩＤで識別されるＴＣＰ／ＵＤＰパケットがエラーパケットであるか否かを判定する。このように、本実施の形態では、ＩＤで識別されるＴＣＰ／ＵＤＰパケット毎にエラーがあるか否かが判定される。
【００５４】
そして、エラー判定割込制御部１１５は、判定結果に基づいて、各パケットの廃棄を実施するか否かを示す廃棄実施信号を、ＣＰＵ１０３に出力する。
【００５５】
メモリ１１６は、通信インターフェース１０１からきた受信データを一時的に保存する。このメモリ１１６の容量は、パフォーマンス等を考慮して決定される。メモリ１１６は、チェックサム演算の一部をＥｔｈｅｒｎｅｔコントローラ１０２（ハードウェア）側で行うが、廃棄処理は行わないため、ＴＣＰパケット１パケット分の容量を必要しない。同様に、メモリ１１６においては、複数ＩＤ分のＴＣＰパケットに対応できるだけの容量を確保しておく必要もない。
【００５６】
メモリ制御回路１１７は、メモリ１１６からデータを読み取り、ＲＡＭ１０４に転送する。なお、メモリ制御回路１１７は、パケットの廃棄は行わないので、チェックサム演算結果を考慮した動作を行う必要はない。
【００５７】
ＣＰＵ１０３上で動作するソフトウェアは、入力された廃棄実施信号を参照し、廃棄の場合はＩＤで識別されるパケットを、ＲＡＭ１０４から廃棄（削除）制御する。
【００５８】
ＲＡＭ１０４は、ＣＰＵ１０３上で動作するソフトウェアで処理の対象となるデータを保存する。このデータには、メモリ制御回路１１７から転送されてきた受信データ（複数のパケット）も含まれる。また、ＲＡＭ１０４には、演算中のパケットデータも保存されるが、廃棄と判定できた時点で、１パケットを全て確保せずに廃棄を行うため、使用容量を削減できる。
【００５９】
本実施の形態にかかるＥｔｈｅｒｎｅｔコントローラ１０２では、ヘッダバイト抽出部１１３、チェックサム演算回路１１２、及びエラー判定割込制御部１１５等の構成をハードウェアとして備えている。これにより、ＣＰＵ１０３の負荷を軽減できる。
【００６０】
本実施の形態にかかるＥｔｈｅｒｎｅｔコントローラ１０２では、ＴＣＰ／ＵＤＰパケットのチェックサム確認を行う場合に、フラグメンテーション実施されている場合でも、受信したＴＣＰパケットに対して、ハードウェアでチェックサム確認を行うことを可能とした。
【００６１】
本実施の形態にかかる情報処理装置１００では、送信元では転送される順にＴＣＰパケットのデータにチェックサム演算が施されるが、受信側では転送される順にデータにチェックサム演算を施さなくても良いため、上述した構成を備えることで、ＴＣＰ／ＵＤＰパケットのチェックサム演算を可能とした。
【００６２】
次に、本実施の形態にかかる情報処理装置１００における、パケット受信時の処理について説明する。図６は、本実施の形態にかかる情報処理装置１００における上述した処理の手順を示すフローチャートである。本フローチャートでは、パケットを受信した場合にステップＳ６０１、ステップＳ６０４及びステップＳ６０６の処理が並列して開始される。
【００６３】
まず、ＩＰパケット識別部１１１が、受信したＩＰパケットのフォーマットを識別し、チェックサム演算部分に示す同期信号と、処理対象となるパケットデータと、をチェックサム演算回路１１２に出力する（ステップＳ６０１）。
【００６４】
そして、チェックサム演算回路１１２は、入力されたパケットデータを受け取り、チェックサム演算を行い、演算結果をヘッダバイト管理部１１４に出力する（ステップＳ６０２）。そして、ヘッダバイト管理部１１４は、入力された演算結果を、演算結果記憶部１２１に記憶する（ステップＳ６０３）。
【００６５】
一方、ヘッダバイト抽出部１１３は、ＩＰパケットのフォーマットを識別し、ヘッダバイトの一部を抽出し、ヘッダバイト管理部１１４に出力する（ステップＳ６０４）。
【００６６】
そして、ヘッダバイト管理部１１４は、抽出されたヘッダバイトを受け取り、ヘッダバイト記憶部１２２に記憶する（ステップＳ６０５）。
【００６７】
また、メモリ１１６は、受信したＩＰパケットを一時的に保存する（ステップＳ６０６）。そして、メモリ制御回路１１７が、メモリ１１６からＩＰパケットを読み出して、ＲＡＭ１０４に記憶させる（ステップＳ６０７）。
【００６８】
そして、ヘッダバイト管理部１１４が、ステップＳ６０５で受け取ったヘッダバイトから、フラグメンテーションが実施されているか否かを判定する（ステップＳ６０８）。
【００６９】
ヘッダバイト管理部１１４が、フラグメンテーションが実施されていないと判定した場合（ステップＳ６０８：Ｎｏ）、チェックサムの演算結果と、抽出されたチェックサムバイトを比較する（ステップＳ６０９）。
【００７０】
そして、エラー判定割込制御部１１５では、ステップＳ６０９の比較結果からパケットの廃棄の実施／未実施を判定する（ステップＳ６１０）。そして判定結果は廃棄実施信号として、ＣＰＵ１０３に対して出力される。その後、ＣＰＵ１０３は、廃棄実施信号に含まれている判定結果に従って、ＲＡＭ１０４に格納されているパケットに対して、廃棄を含めた制御を行う（ステップＳ６１１）。
【００７１】
一方、ヘッダバイト管理部１１４が、フラグメンテーションが実施されていると判定した場合（ステップＳ６０８：Ｙｅｓ）、ヘッダバイト抽出部１１３から転送されるパケット長に、以前受信したパケット長を積算して、パケット長積算情報記憶部１２３に記憶させる（ステップＳ６１２）。
【００７２】
そして、ヘッダバイト管理部１１４が、パケット長の積算情報と、最終フラグメントオフセットと、が一致するか否かを判定する（ステップＳ６１３）。なお、最終フラグメントオフセットとは、最終ＩＰパケットのフラグメントオフセット値とする。一致しないと判定した場合（ステップＳ６１３：Ｎｏ）、当該ＩＤで識別されるパケットを全て受け取っていないものとして、最初から再び処理を行う。
【００７３】
一方、ヘッダバイト管理部１１４が、パケット長の積算情報と、最終フラグメントオフセットと、が一致すると判定した場合（ステップＳ６１３：Ｙｅｓ）、積算されたチェックサム演算結果と、チェックサムバイトと、を比較し、比較結果と当該比較結果に対応するＩＤとをエラー判定割込制御部１１５に出力する（ステップＳ６１４）。
【００７４】
そして、エラー判定割込制御部１１５が、チェックサムの比較結果に従って、ＩＤで識別されるパケットについて廃棄実施又は未実施を判定し、その判定結果を示す廃棄実施信号を、当該ＩＤとともにＣＰＵ１０３に出力する（ステップＳ６１５）。
【００７５】
そして、ＣＰＵ１０３が、廃棄実施信号に基づく廃棄実施又は未実施を含めた制御を、ＩＤで識別されるパケットに対して行う（ステップＳ６１６）。
【００７６】
上述した処理手順により、フラグメンテーションの有無に関係なく、パケットの廃棄等の処理を、行うことができる。なお、本実施の形態にかかる情報処理装置１００では、上述した処理をハードウェアで実装しているため、ソフトウェアのように動作がシーケンシャルに行われるわけではない。上述した処理手順は、理解を容易にするための一例として示したものとする。
【００７７】
つまり、本実施の形態にかかる情報処理装置１００は、ＴＣＰ／ＵＤＰパケットに対するチェックサム演算機能として、チェックサム演算、及び廃棄判定をＥｔｈｅｒｎｅｔコントローラ１０２側で行い、廃棄処理をＣＰＵ１０３上で動作するソフトウェアに任せることとした。これにより、パケット全体をＥｔｈｅｒｎｅｔコントローラ１０２側で一旦確保する必要がなく、ヘッダバイトの一部のみを確保する分、メモリ１１６等の容量を削減できる。
【００７８】
さらに、本実施の形態にかかる情報処理装置１００は、廃棄の場合は途中までのデータをソフトウェア側で確保しておき、廃棄パケットと判明した時にＥｔｈｅｒｎｅｔコントローラ１０２側から廃棄指示を行うので、廃棄すべきパケットの全体を確保する必要がなくなり、ＲＡＭ１０４の容量も削減できる。
【００７９】
このように、パケットを廃棄実施するか否かの判定処理をＥｔｈｅｒｎｅｔコントローラ１０２、換言するとハードウェアで処理を行うことを前提とするため、ソフトウェアで行う場合よりも、処理時間を短縮し、処理負担を軽減できる。
【００８０】
（変形例）
上述した実施の形態では、上述したＥｔｈｅｒｎｅｔコントローラ１０２を、情報処理装置に搭載した例について説明した。しかしながら、上述したＥｔｈｅｒｎｅｔコントローラ１０２を情報処理装置に搭載することに制限するものではない。そこで、変形例として、Ｅｔｈｅｒｎｅｔコントローラ１０２を、ネットワーク接続可能な画像処理装置や、画像形成装置に搭載しても良い。画像処理装置又は画像形成装置にＥｔｈｅｒｎｅｔコントローラ１０２を搭載した場合、画像データをＴＣＰ／ＵＤＰプロトコルを用いて送信する際に、ＴＣＰ／ＵＤＰパケットに格納された画像データが送信されてくる。このような場合に、画像データが、フラグメンテーションされたパケットとして送信されてくることも考えられる。このような場合に、上述した実施の形態と同様の制御を行うことで、画像処理装置又は画像形成装置のＥｔｈｅｒｎｅｔコントローラ１０２に搭載されるメモリ容量の削減や、Ｅｔｈｅｒｎｅｔコントローラ１０２と別途備えられた制御手段（例えばＣＰＵ）の処理負担を軽減することができる。
【００８１】
なお、変形例では画像処理装置又は画像形成装置として、ネットワーク通信機能と共に、コピー機能、プリンタ機能、スキャナ機能及びファクシミリ機能のうち少なくとも２つの機能を有する複合機に適用することが考えられるが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等を有する画像処理装置又は画像形成装置であればいずれにも適用することができる。
【符号の説明】
【００８２】
１００、１６０  情報処理装置
１０１  通信インターフェース
１０２  Ｅｔｈｅｒｎｅｔコントローラ
１１１  ＩＰパケット識別部
１１２  チェックサム演算回路
１１３  ヘッダバイト抽出部
１１４  ヘッダバイト管理部
１１５  エラー判定割込制御部
１１６  メモリ
１１７  メモリ制御回路
１２１  演算結果記憶部
１２２  ヘッダバイト記憶部
１２３  パケット長積算情報記憶部
１５０  ネットワーク
【先行技術文献】
【特許文献】
【００８３】
【特許文献１】特開２００７−２１５０１３号公報
【図１】
2012156602.tif 000003
【図２】
2012156602.tif 000004
【図３】
2012156602.tif 000005
【図４】
2012156602.tif 000006
【図５】
2012156602.tif 000007
【図６】
2012156602.tif 000008