説明

情報処理装置、通信制御方法、及び通信制御システム

【課題】記憶手段の容量削減と処理負担の軽減とを図る。
【解決手段】情報処理装置100は、TCP/UDPパケットに対してフラグメンテーション処理されたパケットを含むIPパケットを受信する通信インターフェース101と、受信した複数のIPパケットのいずれか1つから、分割される前のTCP/UDPパケットのチェックサムバイトを抽出して、ヘッダバイト記憶部122に記憶させるヘッダバイト抽出部113と、受信した複数のIPパケットのそれぞれに対してチェックサム演算を行い、演算結果を積算して、演算結果記憶部121に記憶させるチェックサム演算回路112と、演算結果記憶部121に記憶された、積算された後の演算結果と、ヘッダバイト記憶部122に記憶されたチェックサムバイトと、に基づいて、複数のIPパケットを結合した後のパケットにエラーがあるか否かを判定するエラー判定割込制御部115と、を備えた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、通信制御方法、及び通信制御システムに関する。
【背景技術】
【0002】
従来、ネットワーク・データを送受信する際には、データ誤りが発生したことを検出するために、誤り検出符号をデータに付加している。この代表的なプロトコルとして、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)といったプロトコルがIETF(The Internet Engineering Task Force)において、RFC793、RFC768として規格化されている。これらのパケット形式は、チェックサム・フィールドを持っており、送信側が付与したチェックサムを受信側において確認することで誤り検出を行う。
【0003】
また、チェックサム演算によるデータ確認の処理は、ソフトウェアで行うことができるが、CPUの負荷軽減等を目的に、ハードウェアにて行う技術が提案されている。
【0004】
1つのTCP/UDPパケットを分割して複数のIPパケットに分けて転送する処理がある。当該処理は、TCP/UDPパケットのフラグメンテーション(分割化処理)と呼ばれている。
【0005】
フラグメンテーションされたパケットについて、従来のハードウェアでのチェックサム機能では、演算対象とするパケット全体をRAMに一時的に格納してから、演算を行っていた。そして、複数のTCP/UDPパケットの分割されたものが順不同で転送されてくるため、より多くのRAMを搭載する必要があった。
【0006】
そこで、TCP/UDPパケットがフラグメンテーションされている場合のみソフトウェアで演算する方法が提案されている。例えば、特許文献1に記載された技術では、フラグメンテーション未実施及び実施の両方のケースでもチェックサム確認を行っているが、フラグメンテーション実施時にはソフトウェア制御を行っている。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、フラグメンテーション実施時にソフトウェア制御になると、演算処理時間が大きくなるという問題が生じる。
【0008】
本発明は、上記に鑑みてなされたものであって、パケットを一時的に記憶する記憶領域の削減と、演算処理時間を短縮との、両立を図る情報処理装置、通信制御方法、及び通信制御システムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するために、本発明にかかる情報処理装置は、分割化処理されたパケットを示す分割パケットを受信する受信手段と、受信した複数の前記分割パケットのいずれか1つから、分割される前のパケットのチェックサム情報を抽出して、チェックサム記憶手段に記憶させる抽出手段と、受信した複数の前記分割パケットのそれぞれに対してチェックサム演算を行い、前記分割パケット毎の演算結果を積算して、演算結果記憶手段に記憶させる演算手段と、前記演算結果記憶手段に記憶された、積算された後の前記演算結果と、前記チェックサム記憶手段に記憶された前記チェックサム情報と、に基づいて、複数の前記分割パケットを結合した後のパケットにエラーがあるか否かを判定する判定手段と、を備えたことを特徴とする。
【発明の効果】
【0010】
本発明によれば、パケットを一時的に記憶する記憶領域の削減と、演算処理時間を短縮と、いう効果を奏する。
【図面の簡単な説明】
【0011】
【図1】図1は、実施の形態にかかる情報処理装置の構成を示すブロック図である。
【図2】図2は、実施の形態にかかる通信インターフェースが受信する、フラグメンテーションされたパケットの構造例を示した図である。
【図3】図3は、送信側の情報処理装置が送信するパケットの順序と、受信側の情報処理装置が受信するパケットの順序の違いの例を示した図である。
【図4】図4は、ハードウェアでチェックサム演算を行う、従来のEthernet(登録商標)コントローラのブロック構成を示した図である。
【図5】図5は、ソフトウェアでチェックサムを行う、従来のEthernetコントローラのブロック構成を示した図である。
【図6】図6は、実施の形態にかかる情報処理装置における、パケット受信時の処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下に添付図面を参照して、この発明にかかる情報処理装置、通信制御方法、及び通信制御システムの一実施の形態を詳細に説明する。
【0013】
図1は、実施の形態にかかる情報処理装置の構成を示すブロック図である。図1に示すように、情報処理装置160と情報処理装置100とが、ネットワーク150を介して接続された通信制御システムを実現している。
【0014】
情報処理装置160は、情報処理装置100と同様の構成を備えており、本実施の形態においては、フラグメンテーション(分割化処理)したパケットを、情報処理装置100に対して送信している。
【0015】
情報処理装置100は、通信インターフェース101と、Ethernet(登録商標)コントローラ102と、CPU103と、RAM104と、ROM105と、を備えている。本実施の形態では、情報処理装置100が、情報処理装置160からのパケットを受信する例について説明する。
【0016】
通信インターフェース101は、ネットワーク150に対するパケットの送受信を制御するインターフェースとする。通信インターフェース101は、10/100/100BASE−T/TX、かつ全二重/半二重対応のEthernet(登録商標)と接続可能なインターフェースとする。また、通信インターフェース101は、情報処理装置160によりフラグメンテーション(分割化処理)されたパケットを受信する。
【0017】
本実施の形態においては、通信インターフェース101は、TCP/UDPパケットを分割処理したパケットそれぞれに対して、IPヘッダが付与されたパケットを受信する。図2は、本実施の形態にかかる通信インターフェース101が受信する、フラグメンテーションされたパケットの構造例を示した図である。図2に示すように、TCP/UDPパケットを分割したパケットそれぞれに対して、IPヘッダ201が付与されている。IPヘッダ201には、Flgバイト202、IDバイト203が含まれている。図2に示すように、複数のIPパケットにまたがって転送される1つのTCP/UDPパケットは、1つのIPパケット部分にのみTCP/UDPヘッダ204が格納されている。それ以外のIPパケットには、データのみが格納されていることになる。また、TCP/UDPヘッダ204には、TCP/UDPパケットをチェックするためのチェックサムバイト205が格納されている。
【0018】
フラグメンテーションが行われた場合、受信側の情報処理装置は、1つのTCP/UDPパケットの受信が完了してから、別のTCP/UDPパケットを受信するというように、送信側の情報処理装置が送信した順番で受信するとは限らない。図3は、送信側の情報処理装置が送信するパケットの順序と、受信側の情報処理装置が受信するパケットの順序の違いの例を示した図である。図3に示すように、TCP/UDPパケットのID順に分割されたIPパケットが送信されたとしても、受信側が当該ID順に受信するとは限らない。つまり、TCP/UDPパケットから分割された、複数のIPパケットが順不同で転送されてくる。このようなIPパケットを処理するための従来の構成について説明する。従来の技術としては、チェックサム演算によるデータ確認の処理は、CPUの負荷を軽減するために、別途備えられたハードウェアで行う技術がある。
【0019】
図4は、ハードウェアでチェックサム演算を行う、従来のEthernetコントローラのブロック構成を示した図である。図4に示すようにEthernetコントローラ400は、IPパケット識別部406と、チェックサム演算回路401と、チェックサムバイト抽出部402と、チェックサムバイト管理回路403と、メモリ405と、メモリ制御回路404と、を備えている。なお、図4に示すEthernetコントローラ400を備えた情報処理装置は、CPU103やRAM104等の通常のPCと同様の構成を備えている。
【0020】
IPパケット識別部406は、伝送路側からEthernetフレームを受信する。そして、IPパケット識別部406は、同期パタンやフレーム先頭位置信号等により、フレームフォーマットを認識し、演算対象となるデータを、データ同期信号(演算対象部分をアクティブにした信号等)と同期させて、チェックサム演算回路401に出力する。
【0021】
チェックサム演算回路401は、IPパケット識別部406からパケットデータ、同期信号を受け取り、パケットデータに対してチェックサム演算を行う。なお、演算範囲は、受け取った同期信号により判断する。
【0022】
チェックサムバイト抽出部402は、伝送路側より来たEthernetフレームを受信する。そして、チェックサムバイト抽出部402は、同期パタンやフレーム先頭位置信号等により、TCP/UDPヘッダに含まれているチェックサムバイトを抽出し、チェックサムバイト管理回路403に出力する。
【0023】
チェックサムバイト管理回路403は、チェックサムバイト抽出部402からチェックサムバイトを受け取り、チェックサム演算回路401からチェックサム演算結果を受け取る。そして、チェックサムバイト管理回路403は、これらを比較し、受信したパケットが、正常パケットであるか、又はエラーパケットであるかの判定を行う。そして、チェックサムバイト管理回路403は、判定結果を、チェックサム比較結果として、メモリ制御回路404に出力する。
【0024】
メモリ制御回路404は、チェックサムバイト管理回路403から、チェックサム比較結果を受け取る。そして、メモリ制御回路404は、チェックサム比較結果に従って、メモリ405に蓄積されたパケットを制御する。例えば、正常パケットと判定された場合、メモリ制御回路404は、当該パケットを読み出してRAM104に出力する。また、エラーパケットと判定された場合、メモリ制御回路404は、当該パケットを廃棄する。なお、当該制御は、メモリ405のリードポインタの制御により実現する。
【0025】
メモリ405は、メモリ制御回路404による制御がなされるまで、受信データ(受信したパケット)を一時的に保存する。メモリ405の容量は、一般的に必要な容量はパフォーマンス等を考慮して決められるが、チェックサム演算、廃棄処理をEthernetコントローラ400側で行う場合、チェックサムによる判定結果がでるまでの間、受信したパケットを蓄積しておくだけの容量を必要とする。特に、フラグメンテーションされたパケットに対してチェックサム演算、廃棄処理を行う場合、複数ID分のパケットを蓄積できるだけのメモリ容量が必要になる。
【0026】
このように、従来のEthernetコントローラ400で処理を行った場合には、フラグメンテーションを考慮すると、順不同でくる複数のTCP/UDPパケットから分割されたデータを全てメモリ405で確保しておく必要がある。そのため、メモリ405は大きな容量が必要となるという問題が生じる。次に、ソフトウェアで処理を行う従来技術について説明する。
【0027】
図5は、ソフトウェアでチェックサムを行う、従来のEthernetコントローラのブロック構成を示した図である。図5に示すようにEthernetコントローラ500は、メモリ511と、メモリ制御回路512と、を備えている。
【0028】
メモリ511は、受信データを保存する。メモリ511の容量は、パフォーマンス等を考慮して決められるものとする。
【0029】
メモリ制御回路512は、メモリ511を制御し、受信データを読み出し、RAM503に出力する。
【0030】
そして、RAM503に格納された受信データに対して、CPU502上で動作しているソフトウェアが処理を行う。図5に示す例では、CPU502上で動作するソフトウェアは、パケットのチェックサム演算や、エラーパケットであるか否かの判定等も行う。
【0031】
RAM503は、ソフトウェアで処理の対象となるデータを記憶する。そして、RAM503に記憶されたデータは、CPU502上のソフトウェアにより読み出し、演算処理が施される。さらに、フラグメンテーション時のチェックサム演算、廃棄処理を行う場合は、複数ID分のパケットを格納できるだけのメモリ容量が必要になる。
【0032】
つまり、Ethernetコントローラ500側のハードウェアで行わずに、CPU502上で動作するソフトウェア側で行う場合、Ethernetコントローラ500側のメモリ511の記憶容量を従来よりも増やす必要はないが、RAM503側で、順不同でくる複数のTCP/UDPパケットの分割されたデータを、確保するだけの容量が必要となる。
【0033】
このように、ソフトウェア側で行う場合は、Ethernetコントローラ側に備えられたハードウェアで行うよりも、メモリアクセス、CPU502による演算処理等により処理時間がかかるという問題がある。そこで、TCPパケットがフラグメンテーションされている場合のみソフトウェアで演算する方法が一般的に採られているが、この場合も同様にTCPパケットを確保しておくために記憶容量が必要となる。さらに、ソフトウェア処理のために演算処理時間が大きくなるという問題がある。そこで、本実施の形態においては、以下に示す構成を備えることとした。
【0034】
図1に戻り、ROM105は、CPU103上で動作するプログラム等を記憶する。
【0035】
CPU103は、情報処理装置100全体を制御する。CPU103は、ROM105に格納されているプログラム(ソフトウェア)を読み出して、ソフトウェアによる制御を行う。また、CPU103上で動作するソフトウェアは、RAM104に記憶されたデータに対して様々な制御を行う。
【0036】
RAM104は、ソフトウェアの処理対象となるデータを記憶する。
【0037】
Ethernetコントローラ102は、IPパケット識別部111と、チェックサム演算回路112と、ヘッダバイト抽出部113と、ヘッダバイト管理部114と、エラー判定割込制御部115と、メモリ116と、メモリ制御回路117と、を備えている。
【0038】
IPパケット識別部111は、通信インターフェース101からきたEthernetフレームを受信する。そして、IPパケット識別部111は、同期パタンやフレーム先頭位置信号等により、フレームフォーマットを認識し、演算対象となるデータをデータ同期信号(演算対象部分をアクティブにした信号等)と同期させて、チェックサム演算回路112に出力する。
【0039】
チェックサム演算回路112は、IPパケット識別部111からパケットデータ、同期信号を受け取り、パケットデータに対してチェックサム演算を行う。なお、演算範囲は、同期信号により判断する。
【0040】
また、チェックサム演算回路112は、TCP/UDPパケットのフラグメンテーションが行われている場合は、ヘッダバイト管理部114から、演算途中結果を受け取り、当該演算途中結果を引き継いでチェックサム演算を行う。このように、チェックサム演算回路112は、フラグメンテーションされた複数のパケットのそれぞれに対してチェックサム演算を行い、TCP/UDPパケット毎の演算結果を積算して、ヘッダバイト管理部114に出力する。そして、ヘッダバイト管理部114が、演算結果を、演算結果記憶部121に記憶させる。そして、演算途中結果が要求される度に、チェックサム演算回路112に出力される。
【0041】
なお、フラグメンテーションされたデータは、順不同で転送されてくるが、チェックサム演算(1の補数和演算)の特性を利用して、順不同でも正常な演算ができる。
【0042】
ヘッダバイト抽出部113は、通信インターフェース101からEthernetフレームを受信する。そして、ヘッダバイト抽出部113は、同期パタンやフレーム先頭位置信号等により、フラグメント情報(フラグメントバイト、フラグメントオフセットバイト)、IDバイト、及びパケットレングスバイトを抽出し、ヘッダバイト管理部114に出力する。
【0043】
また、ヘッダバイト抽出部113は、受信したEthernetフレームに、TCP/UDPヘッダが含まれていた場合、フラグメンテーションされる前のTCP/UDPパケットのチェックサムバイトを抽出して、ヘッダバイト管理部114に出力する。出力されたチェックサムバイトは、ヘッダバイト記憶部122に記憶される。
【0044】
ヘッダバイト管理部114は、演算結果記憶部121と、ヘッダバイト記憶部122と、パケット長積算情報記憶部123と、を備え、ヘッダバイト抽出部113から、フラグメント情報(フラグメントバイト、フラグメントオフセットバイト)、IDバイト、及びパケットレングスバイトや、チェックサムバイトを受け取り、チェックサム演算回路112から、演算結果又は演算途中結果を受け取る。
【0045】
演算結果記憶部121は、受け取った演算結果又は演算途中結果を、TCP/UDPパケットを識別するID毎に記憶する。
【0046】
ヘッダバイト記憶部122は、フラグメントオフセットバイト、IDバイト、パケットレングスバイト、チェックサムバイト等のヘッダバイトを、TCP/UDPパケットを識別するID毎に記憶する。
【0047】
パケット長積算情報記憶部123は、フラグメンテーションされたパケットのうち、受け取ったパケットのパケット長を積算して、TCP/UDPパケットを識別するID毎に記憶する。
【0048】
そして、ヘッダバイト管理部114は、フラグメンテーションが実施されているか否かを、ヘッダバイト抽出部113により抽出されたフラグメントバイトにより判断する。そして、フラグメンテーションされているか否かに応じて以下の処理を行う。
【0049】
フラグメンテーションが実施されていない場合、ヘッダバイト管理部114は、チェックサム演算回路112によるチェックサム演算結果、ヘッダバイト抽出部113により抽出されたチェックサムバイトと、を比較し、正常パケットであるか、又はエラーパケットであるかを判定する。そして、ヘッダバイト管理部114は、判定結果を、エラー判定割込制御部115にチェックサム比較結果として出力する。
【0050】
フラグメンテーションが実施されている場合、ヘッダバイト管理部114は、受け取ったチェックサム演算結果はIPパケット単位で行われているため、演算途中結果の可能性がある。そこで、ヘッダバイト管理部114は、演算途中である場合は、演算途中結果で演算結果記憶部121を更新し、必要に応じて演算途中結果をチェックサム演算回路112に受け渡す。その際に、どの演算途中結果を用いるのかは、各パケットのIDバイトにより認識される。
【0051】
このように、演算結果記憶部121、ヘッダバイト記憶部122、及びパケット長積算情報記憶部123に記憶された各情報は、受け取ったパケットに含まれているIDバイトに応じて参照される。
【0052】
また、パケット長積算情報記憶部123が管理しているパケット長は、これまで受信したものをID毎に積算して管理する。そして、ヘッダバイト管理部114は、パケット長積算情報記憶部123に記憶されたパケット長と、ヘッダバイト記憶部122に記憶されているフラグメントオフセットバイトと、により最終となるIPパケットを受け付けたか否かを判断できる。つまり、積算されたパケット長と、フラグメントオフセット値と、が同じ値になっていれば、1つのTCPパケットに対する演算が終了したと判断できる。そして、ヘッダバイト管理部114は、演算が終了すると、IDとチェックサム比較結果と、をエラー判定割込制御部115に出力する。
【0053】
エラー判定割込制御部115は、ヘッダバイト管理部114から入力されたIDとチェックサム比較結果とから、エラーパケットの判定を行う。つまり、エラー判定割込制御部115は、演算結果記憶部121に積算された演算結果とヘッダバイト記憶部122に記憶されたチェックサムバイトとに基づくチェックサム比較結果から、受け付けたIDで識別されるTCP/UDPパケットがエラーパケットであるか否かを判定する。このように、本実施の形態では、IDで識別されるTCP/UDPパケット毎にエラーがあるか否かが判定される。
【0054】
そして、エラー判定割込制御部115は、判定結果に基づいて、各パケットの廃棄を実施するか否かを示す廃棄実施信号を、CPU103に出力する。
【0055】
メモリ116は、通信インターフェース101からきた受信データを一時的に保存する。このメモリ116の容量は、パフォーマンス等を考慮して決定される。メモリ116は、チェックサム演算の一部をEthernetコントローラ102(ハードウェア)側で行うが、廃棄処理は行わないため、TCPパケット1パケット分の容量を必要しない。同様に、メモリ116においては、複数ID分のTCPパケットに対応できるだけの容量を確保しておく必要もない。
【0056】
メモリ制御回路117は、メモリ116からデータを読み取り、RAM104に転送する。なお、メモリ制御回路117は、パケットの廃棄は行わないので、チェックサム演算結果を考慮した動作を行う必要はない。
【0057】
CPU103上で動作するソフトウェアは、入力された廃棄実施信号を参照し、廃棄の場合はIDで識別されるパケットを、RAM104から廃棄(削除)制御する。
【0058】
RAM104は、CPU103上で動作するソフトウェアで処理の対象となるデータを保存する。このデータには、メモリ制御回路117から転送されてきた受信データ(複数のパケット)も含まれる。また、RAM104には、演算中のパケットデータも保存されるが、廃棄と判定できた時点で、1パケットを全て確保せずに廃棄を行うため、使用容量を削減できる。
【0059】
本実施の形態にかかるEthernetコントローラ102では、ヘッダバイト抽出部113、チェックサム演算回路112、及びエラー判定割込制御部115等の構成をハードウェアとして備えている。これにより、CPU103の負荷を軽減できる。
【0060】
本実施の形態にかかるEthernetコントローラ102では、TCP/UDPパケットのチェックサム確認を行う場合に、フラグメンテーション実施されている場合でも、受信したTCPパケットに対して、ハードウェアでチェックサム確認を行うことを可能とした。
【0061】
本実施の形態にかかる情報処理装置100では、送信元では転送される順にTCPパケットのデータにチェックサム演算が施されるが、受信側では転送される順にデータにチェックサム演算を施さなくても良いため、上述した構成を備えることで、TCP/UDPパケットのチェックサム演算を可能とした。
【0062】
次に、本実施の形態にかかる情報処理装置100における、パケット受信時の処理について説明する。図6は、本実施の形態にかかる情報処理装置100における上述した処理の手順を示すフローチャートである。本フローチャートでは、パケットを受信した場合にステップS601、ステップS604及びステップS606の処理が並列して開始される。
【0063】
まず、IPパケット識別部111が、受信したIPパケットのフォーマットを識別し、チェックサム演算部分に示す同期信号と、処理対象となるパケットデータと、をチェックサム演算回路112に出力する(ステップS601)。
【0064】
そして、チェックサム演算回路112は、入力されたパケットデータを受け取り、チェックサム演算を行い、演算結果をヘッダバイト管理部114に出力する(ステップS602)。そして、ヘッダバイト管理部114は、入力された演算結果を、演算結果記憶部121に記憶する(ステップS603)。
【0065】
一方、ヘッダバイト抽出部113は、IPパケットのフォーマットを識別し、ヘッダバイトの一部を抽出し、ヘッダバイト管理部114に出力する(ステップS604)。
【0066】
そして、ヘッダバイト管理部114は、抽出されたヘッダバイトを受け取り、ヘッダバイト記憶部122に記憶する(ステップS605)。
【0067】
また、メモリ116は、受信したIPパケットを一時的に保存する(ステップS606)。そして、メモリ制御回路117が、メモリ116からIPパケットを読み出して、RAM104に記憶させる(ステップS607)。
【0068】
そして、ヘッダバイト管理部114が、ステップS605で受け取ったヘッダバイトから、フラグメンテーションが実施されているか否かを判定する(ステップS608)。
【0069】
ヘッダバイト管理部114が、フラグメンテーションが実施されていないと判定した場合(ステップS608:No)、チェックサムの演算結果と、抽出されたチェックサムバイトを比較する(ステップS609)。
【0070】
そして、エラー判定割込制御部115では、ステップS609の比較結果からパケットの廃棄の実施/未実施を判定する(ステップS610)。そして判定結果は廃棄実施信号として、CPU103に対して出力される。その後、CPU103は、廃棄実施信号に含まれている判定結果に従って、RAM104に格納されているパケットに対して、廃棄を含めた制御を行う(ステップS611)。
【0071】
一方、ヘッダバイト管理部114が、フラグメンテーションが実施されていると判定した場合(ステップS608:Yes)、ヘッダバイト抽出部113から転送されるパケット長に、以前受信したパケット長を積算して、パケット長積算情報記憶部123に記憶させる(ステップS612)。
【0072】
そして、ヘッダバイト管理部114が、パケット長の積算情報と、最終フラグメントオフセットと、が一致するか否かを判定する(ステップS613)。なお、最終フラグメントオフセットとは、最終IPパケットのフラグメントオフセット値とする。一致しないと判定した場合(ステップS613:No)、当該IDで識別されるパケットを全て受け取っていないものとして、最初から再び処理を行う。
【0073】
一方、ヘッダバイト管理部114が、パケット長の積算情報と、最終フラグメントオフセットと、が一致すると判定した場合(ステップS613:Yes)、積算されたチェックサム演算結果と、チェックサムバイトと、を比較し、比較結果と当該比較結果に対応するIDとをエラー判定割込制御部115に出力する(ステップS614)。
【0074】
そして、エラー判定割込制御部115が、チェックサムの比較結果に従って、IDで識別されるパケットについて廃棄実施又は未実施を判定し、その判定結果を示す廃棄実施信号を、当該IDとともにCPU103に出力する(ステップS615)。
【0075】
そして、CPU103が、廃棄実施信号に基づく廃棄実施又は未実施を含めた制御を、IDで識別されるパケットに対して行う(ステップS616)。
【0076】
上述した処理手順により、フラグメンテーションの有無に関係なく、パケットの廃棄等の処理を、行うことができる。なお、本実施の形態にかかる情報処理装置100では、上述した処理をハードウェアで実装しているため、ソフトウェアのように動作がシーケンシャルに行われるわけではない。上述した処理手順は、理解を容易にするための一例として示したものとする。
【0077】
つまり、本実施の形態にかかる情報処理装置100は、TCP/UDPパケットに対するチェックサム演算機能として、チェックサム演算、及び廃棄判定をEthernetコントローラ102側で行い、廃棄処理をCPU103上で動作するソフトウェアに任せることとした。これにより、パケット全体をEthernetコントローラ102側で一旦確保する必要がなく、ヘッダバイトの一部のみを確保する分、メモリ116等の容量を削減できる。
【0078】
さらに、本実施の形態にかかる情報処理装置100は、廃棄の場合は途中までのデータをソフトウェア側で確保しておき、廃棄パケットと判明した時にEthernetコントローラ102側から廃棄指示を行うので、廃棄すべきパケットの全体を確保する必要がなくなり、RAM104の容量も削減できる。
【0079】
このように、パケットを廃棄実施するか否かの判定処理をEthernetコントローラ102、換言するとハードウェアで処理を行うことを前提とするため、ソフトウェアで行う場合よりも、処理時間を短縮し、処理負担を軽減できる。
【0080】
(変形例)
上述した実施の形態では、上述したEthernetコントローラ102を、情報処理装置に搭載した例について説明した。しかしながら、上述したEthernetコントローラ102を情報処理装置に搭載することに制限するものではない。そこで、変形例として、Ethernetコントローラ102を、ネットワーク接続可能な画像処理装置や、画像形成装置に搭載しても良い。画像処理装置又は画像形成装置にEthernetコントローラ102を搭載した場合、画像データをTCP/UDPプロトコルを用いて送信する際に、TCP/UDPパケットに格納された画像データが送信されてくる。このような場合に、画像データが、フラグメンテーションされたパケットとして送信されてくることも考えられる。このような場合に、上述した実施の形態と同様の制御を行うことで、画像処理装置又は画像形成装置のEthernetコントローラ102に搭載されるメモリ容量の削減や、Ethernetコントローラ102と別途備えられた制御手段(例えばCPU)の処理負担を軽減することができる。
【0081】
なお、変形例では画像処理装置又は画像形成装置として、ネットワーク通信機能と共に、コピー機能、プリンタ機能、スキャナ機能及びファクシミリ機能のうち少なくとも2つの機能を有する複合機に適用することが考えられるが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等を有する画像処理装置又は画像形成装置であればいずれにも適用することができる。
【符号の説明】
【0082】
100、160 情報処理装置
101 通信インターフェース
102 Ethernetコントローラ
111 IPパケット識別部
112 チェックサム演算回路
113 ヘッダバイト抽出部
114 ヘッダバイト管理部
115 エラー判定割込制御部
116 メモリ
117 メモリ制御回路
121 演算結果記憶部
122 ヘッダバイト記憶部
123 パケット長積算情報記憶部
150 ネットワーク
【先行技術文献】
【特許文献】
【0083】
【特許文献1】特開2007−215013号公報

【特許請求の範囲】
【請求項1】
分割化処理されたパケットを示す分割パケットを受信する受信手段と、
受信した複数の前記分割パケットのいずれか1つから、分割される前のパケットのチェックサム情報を抽出して、チェックサム記憶手段に記憶させる抽出手段と、
受信した複数の前記分割パケットのそれぞれに対してチェックサム演算を行い、前記分割パケット毎の演算結果を積算して、演算結果記憶手段に記憶させる演算手段と、
前記演算結果記憶手段に記憶された、積算された後の前記演算結果と、前記チェックサム記憶手段に記憶された前記チェックサム情報と、に基づいて、複数の前記分割パケットを結合した後のパケットにエラーがあるか否かを判定する判定手段と、
を備えたことを特徴とする情報処理装置。
【請求項2】
前記抽出手段は、抽出した前記チェックサム情報を、パケットを識別する識別情報毎に、前記チェックサム記憶手段に記憶し、
前記演算手段は、前記演算結果の積算を、パケットを識別する識別情報毎に行い、前記演算結果記憶手段に記憶させ、
前記判定手段は、前記チェックサム記憶手段及び前記演算結果記憶手段に基づいて、前記識別情報で識別される前記パケット毎にエラーがあるか否かを判定すること、
を特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記抽出手段と、前記演算手段と、前記判定手段とが、ハードウェアとして備えていることを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記受信手段は、TCP/UDPパケットを分割したパケットに対して、IPヘッダが付与された分割パケットを受信し、
前記抽出手段は、受信した分割パケットに格納されているヘッダ情報のうち、TCP/UDPヘッダに含まれているチェックサム情報を前記チェックサム記憶手段に記憶させること、
を特徴とする請求項1乃至3のいずれか1つに記載の情報処理装置。
【請求項5】
複数の前記分割パケットを記憶する記憶手段と、
前記判定手段でエラーがあると判定された前記パケットに含まれる前記分割パケットを、前記記憶手段から廃棄制御を行う制御手段と、
を備えることを特徴とする請求項4に記載の情報処理装置。
【請求項6】
情報処理装置で実行される通信制御方法であって、
受信手段が、分割化処理されたパケットを示す分割パケットを受信する受信ステップと、
抽出手段が、受信した複数の前記分割パケットのいずれか1つから、分割される前のパケットのチェックサム情報を抽出して、チェックサム記憶手段に記憶させる抽出ステップと、
演算手段が、受信した複数の前記分割パケットのそれぞれに対してチェックサム演算を行い、前記分割パケット毎の演算結果を積算して、演算結果記憶手段に記憶させる演算ステップと、
判定手段が、前記演算結果記憶手段に記憶された、積算された後の前記演算結果と、前記チェックサム記憶手段に記憶された前記チェックサム情報と、に基づいて、複数の前記分割パケットを結合した後のパケットにエラーがあるか否かを判定する判定ステップと、
を含むことを特徴とする通信制御方法。
【請求項7】
ネットワーク接続可能な複数の情報処理装置で構成される通信制御システムであって、
第1の前記情報処理装置が、
分割化処理されたパケットを示す分割パケットを送信する送信手段を備え、
第2の前記情報処理装置が、
分割化処理されたパケットを示す分割パケットを受信する受信手段と、
受信した複数の前記分割パケットのいずれか1つから、分割される前のパケットのチェックサム情報を抽出して、チェックサム記憶手段に記憶させる抽出手段と、
受信した複数の前記分割パケットのそれぞれに対してチェックサム演算を行い、前記分割パケット毎の演算結果を積算して、演算結果記憶手段に記憶させる演算手段と、
前記演算結果記憶手段に記憶された、積算された後の前記演算結果と、前記チェックサム記憶手段に記憶された前記チェックサム情報と、に基づいて、複数の前記分割パケットを結合した後のパケットにエラーがあるか否かを判定する判定手段と、を備えたこと、
を特徴とする通信制御システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate