(57)【要約】【課題】通信装置の処理負荷を抑えつつ、受信パケットの解析処理の効率を向上させる。【解決手段】通信装置に、受信した複数のパケットの解析処理を実行する解析手段と、前記解析手段により前記解析処理が実行された複数のパケットに対して、通信プロトコルに応じた処理を実行する処理手段と、前記解析手段による前記解析処理が完了したことを示す完了通知を、前記解析処理が完了した際に、前記処理手段へ通知する第１の通知手段と、前記処理手段からの問い合わせに対して、前記完了通知を、前記処理手段へ通知する第２の通知手段と、前記解析手段で解析すべき前記複数のパケットの数が所定の閾値以下である場合に、前記第１の通知手段に前記完了通知を前記処理手段へ通知させ、前記解析手段で解析すべき前記複数のパケットの数が前記所定の閾値を超える場合に、前記第２の通知手段に前記完了通知を前記処理手段へ通知させるよう制御する制御手段と、を備える。【選択図】  図５
2019186708.tif 000002
【特許請求の範囲】
【請求項１】
受信した複数のパケットの解析処理を実行する解析手段と、
前記解析手段により前記解析処理が実行された複数のパケットに対して、通信プロトコルに応じた処理を実行する処理手段と、
前記解析手段による前記解析処理が完了したことを示す完了通知を、前記解析処理が完了した際に、前記処理手段へ通知する第１の通知手段と、
前記処理手段からの問い合わせに対して、前記完了通知を、前記処理手段へ通知する第２の通知手段と、
前記解析手段で解析すべき前記複数のパケットの数が所定の閾値以下である場合に、前記第１の通知手段に前記完了通知を前記処理手段へ通知させ、前記解析手段で解析すべき前記複数のパケットの数が前記所定の閾値を超える場合に、前記第２の通知手段に前記完了通知を前記処理手段へ通知させるよう制御する制御手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記第１の通知手段は、
割込みにより前記完了通知を前記処理手段へ通知する、
ことを特徴とする請求項１記載の通信装置。
【請求項３】
前記第１の通知手段は、前記解析手段による一回の解析処理が完了するごとに前記処理手段へ前記完了通知を通知する、
ことを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記第２の通知手段は、
前記処理手段からのポーリングによる前記問い合わせに応答して、前記処理手段へ前記完了通知を通知する、
ことを特徴とする請求項１から３のいずれか１項に記載の通信装置。
【請求項５】
前記制御手段は、
前記解析手段で解析すべき前記複数のパケットの数が前記解析手段で解析可能なパケットの数の上限に達した場合に、前記ポーリングの周期を短縮する、
ことを特徴とする請求項４記載の通信装置。
【請求項６】
前記第２の通知手段は、
前記処理手段からの前記問い合わせがあるまでに、前記処理手段から要求された回数の解析処理を実行した後、前記処理手段へ前記完了通知を通知する、
ことを特徴とする請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
前記制御手段は、
他の通信装置との通信に使用する通信コネクションの数が複数である場合に、
前記解析手段で解析すべき前記複数のパケットの数が所定の閾値以下である場合には、前記第１の通知手段に前記完了通知を前記処理手段へ通知させ、前記解析手段で解析すべき前記複数のパケットの数が前記所定の閾値を超える場合には、前記第２の通知手段に前記完了通知を前記処理手段へ通知させる、
ことを特徴とする請求項１から６のいずれか１項に記載の通信装置。
【請求項８】
他の通信装置との通信に使用する通信コネクションごとに、当該通信コネクションで受信可能な受信パケットのサイズおよび通信プロトコル上の受信可能なサイズを管理する管理手段をさらに備え、
前記制御手段は、
前記他の通信装置と通信で使用する前記通信コネクションの数が１つである場合に、前記受信可能なサイズが所定の閾値未満の場合には、前記第１の通知手段による通知を選択し、受信可能なサイズが所定の閾値以上の場合には、前記第２の通知手段による通知を選択する、
ことを特徴とする請求項１から７のいずれか１項に記載の通信装置。
【請求項９】
受信した複数のパケットの解析処理を実行するステップと、
前記解析処理をなされるべき前記複数のパケットの数が所定の閾値以下である場合に、前記解析処理が完了した際に、前記解析処理が完了したことを示す完了通知をするステップと、
前記解析処理をなされるべき前記複数のパケットの数が所定の閾値を超える場合に、問い合わせに対して、前記完了通知を通知するステップと、
前記完了通知に応じて、前記解析処理が実行された前記複数のパケットに対して、通信プロトコルに応じた処理を実行するステップと、
を備えることを特徴とする通信方法。
【請求項１０】
コンピュータを、請求項１から８のいずれか１項に記載の通信装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法及びプログラムに関する。
【背景技術】
【０００２】
近年、急速に増加するスマートデバイスと呼ばれる多機能端末による高解像度動画（８Ｋ／４Ｋ）のネットワーク経由による閲覧のニーズ増加に伴い、データトラフィックが増大している。また、Ｅｔｈｅｒｎｅｔ（登録商標）による１０Ｇｂｐｓ通信、移動体通信の５Ｇ通信などのネットワーク高速化に伴って、通信プロトコル処理のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｓｅｓｓｉｎｇ  Ｕｎｉｔ）にかかる負荷が大きくなっている。ＣＰＵが処理する通信プロトコルとして、ＴＣＰ（Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）などが知られている。これらの高速データ通信を実現するためにＣＰＵによる通信プロトコル処理における処理負荷を低減させる技術が提案されている。
【０００３】
通信プロトコル処理における受信処理を高速化する方法として、ＣＰＵで実行する通信プロトコル処理の一部をＣＰＵ以外の処理装置にオフロードして、ＣＰＵにかかる負荷を低減する方法がある。このようなオフロード処理を行う処理装置の１つとして、複数の受信パケットを一度にまとめて解析処理する解析装置がある。
この解析装置では、受信パケットの解析処理が完了したことをＣＰＵに通知し、解析処理の完了を通知されたＣＰＵが解析処理結果を用いて残りの通信プロトコル処理を実行する。解析装置がＣＰＵに受信パケットの解析処理が完了したことを通知するには、割込みによりＣＰＵに解析処理の完了を通知する方法と、ＣＰＵからのポーリングによる問い合わせに応答してＣＰＵに解析処理の完了を通知する方法とがある。
特許文献１は、割込みによる通知とポーリングによる問い合わせに対する通知との双方を利用可能なネットワーク制御装置を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−６０２７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
具体的には、特許文献１に記載のネットワーク制御装置では、一定数のパケットを受信する度に、パケット受信部が、受信パケットの処理の要求を割込みでパケット処理部に通知する。一方で、このネットワーク制御装置では、設定した時間までに割込みでの通知がない場合、パケット処理部からのポーリングによる問い合わせに対して完了を通知している。
しかしながら、これを上記のような解析装置からＣＰＵへの解析処理の完了通知に適用すると、解析処理が完了したことを割込みによりＣＰＵに通知する場合には、解析処理が実行される度にＣＰＵに割込みにより解析処理の完了が通知される。このため、解析処理が実行される度に割り込みされるＣＰＵへの割込み処理の処理負荷が増大してしまう。
【０００６】
一方、解析処理が完了したことをＣＰＵからのポーリングによる問い合わせに対して通知する場合には、ポーリングの周期が短くなるほどＣＰＵの処理負荷が増大し、ポーリングの周期が長くなるほど解析処理が実行できない時間が長くなる。このため、解析処理の処理効率が低下し、ひいてはパケットの受信処理効率も低下してしまう。
【０００７】
本発明は、上述の課題に鑑みて成されたものであり、通信装置の処理負荷を抑えつつ、パケットの受信処理の効率低下を低減することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明に係る通信装置のある態様によれば、受信した複数のパケットの解析処理を実行する解析手段と、前記解析手段により前記解析処理が実行された複数のパケットに対して、通信プロトコルに応じた処理を実行する処理手段と、前記解析手段による前記解析処理が完了したことを示す完了通知を、前記解析処理が完了した際に、前記処理手段へ通知する第１の通知手段と、前記処理手段からの問い合わせに対して、前記完了通知を、前記処理手段へ通知する第２の通知手段と、前記解析手段で解析すべき前記複数のパケットの数が所定の閾値以下である場合に、前記第１の通知手段に前記完了通知を前記処理手段へ通知させ、前記解析手段で解析すべき前記複数のパケットの数が前記所定の閾値を超える場合に、前記第２の通知手段に前記完了通知を前記処理手段へ通知させるよう制御する制御手段と、を備える通信装置が提供される。
【発明の効果】
【０００９】
本発明によれば、通信装置の処理負荷を抑えつつ、パケットの受信処理の効率低下を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態１の通信装置の構成例を示すブロック図
【図２】通信装置の主記憶部に格納される受信パケット群の例を示す図
【図３】通信装置の主記憶部に格納される解析処理結果の例を示す図
【図４】通信装置のソフトウエアの構成例を示すブロック図
【図５】実施形態１の通信装置における受信パケットの解析処理の完了通知を選択する処理の例を示すフローチャート
【図６】実施形態２の通信装置における受信パケットの解析処理の完了通知を選択する処理の例を示すフローチャート
【図７】実施形態３の通信装置における受信パケットの解析処理の完了通知を選択する処理の例を示すフローチャート
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明を実施するための実施形態について詳細に説明する。なお、以下に説明する各実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施形態に必ずしも限定されるものではない。また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【００１２】
実施形態１
（通信装置の構成）
図１は、実施形態１の通信装置１の構成例を示すブロック図である。なお、通信装置１が以下のすべての構成を備えることは必須でない。
通信装置１の各機能モジュールのうち、ソフトウエアにより実現される機能については、各機能モジュールの機能を提供するためのプログラムがＲＯＭ等のメモリに記憶され、ＲＡＭに読み出してＣＰＵが実行することにより実現される。ハードウエアにより実現される機能については、例えば、所定のコンパイラを用いることで、各機能モジュールの機能を実現するためのプログラムからＦＰＧＡ上に自動的に専用回路を生成すればよい。ＦＰＧＡとは、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略である。また、ＦＰＧＡと同様にしてＧａｔｅ  Ａｒｒａｙ回路を形成し、ハードウエアとして実現するようにしてもよい。また、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により実現するようにしてもよい。なお、図１に示した機能ブロックの構成は一例であり、複数の機能ブロックが１つの機能ブロックを構成するようにしてもよいし、いずれかの機能ブロックが複数の機能を行うブロックに分かれてもよい。
本実施形態の通信装置１は、装置全体の動作を制御するＣＰＵ１１と、ネットワーク１４を介した通信を行うインタフェース１３と、受信した通信パケット（受信パケット）の解析を行う解析部２０と、データを格納する主記憶部３０とを備えている。ＣＰＵ１１、インタフェース１３、解析部２０、主記憶部３０は通信装置１内のデータの送受信を行う経路であるバス１２を介して接続されている。
【００１３】
ＣＰＵ１１は、通信装置１が他の通信装置とのネットワーク１４を介した通信を実行する際に必要となる各種制御を行う。具体的には、ＣＰＵ１１は、インタフェース１３と解析部２０の制御を行う。また、ＣＰＵ１１は、インタフェース１３を介した各種通信パケットの送受信に必要となる通信プロトコルに応じた処理を実行する。
【００１４】
インタフェース１３は、ネットワーク１４と通信装置１の間で通信を行う。インタフェース１３は、主記憶部３０に配置された通信パケット（送信パケット）をネットワーク１４に送信する。また、インタフェース１３は、ネットワーク１４から受信した複数の通信パケット（受信パケット）を受信パケット群３１として主記憶部３０に記憶することができる。受信パケットには、例えば図２に示すように、当該通信装置１と通信を行う相手の装置のアドレスなどを含むヘッダ３６と、通信の内容に応じたデータ３７が含まれる。インタフェース１３は、受信パケット群３１として、複数の受信パケット３２、３３、３４、３５それぞれについて、ヘッダ３６とデータ３７を記憶する。
【００１５】
また、インタフェース１３は、受信パケットの受信等の各種処理が完了したことを通知する通知信号ＡをＣＰＵ１１に供給する。主記憶部３０は、通信装置１における主となる記憶領域である。この主記憶部３０は、インタフェース１３を介してネットワーク１４から受信した通信パケットを記憶するために使用される。また、主記憶部３０には、ＣＰＵ１１が実行するプログラムが格納されてよい。
【００１６】
解析部２０は、ＣＰＵ１１が行う通信プロトコル処理のうち、パケットの受信にかかる処理の一部を補助する機能を備える。
具体的には、解析部２０は、ＣＰＵ１１からの解析処理の要求に応じて、主記憶部３０に記憶された受信パケット群３１内の複数の受信パケットの解析処理（例えば分類／グループ分け）を行い、解析処理結果３８を主記憶部３０に記憶する。なお、図１の受信パケット群３１から解析処理結果３８への破線矢印は、解析部２０による処理によって解析結果３８が記憶されることを模式的に示している。受信パケットの解析処理が終了すると、解析部２０は、解析処理が完了したことを示す完了通知をＣＰＵ１１に通知する。
本実施形態において、解析部２０は、この完了通知を、割込み信号による割込みにより通知信号ＢとしてＣＰＵ１１に通知するか、もしくはＣＰＵ１１からのポーリングによる問い合わせに応答して、通知信号ＢとしてＣＰＵ１１に通知する。通知信号Ｂを、割込みによって通知するか、ポーリングに対する応答として通知するかは、後述のように、解析処理を行う複数のパケットの数（解析すべき複数のパケットの数）が所定の閾値を超えるか否かに応じて選択する。なお、ＣＰＵ１１からの問い合わせは、ポーリング以外であってもよく、ＣＰＵ１１からの問い合わせに対して解析部２０が完了通知を通知するように構成すれば足りる。
【００１７】
通知信号Ｂを、割込みによって通知するか、ポーリングによる問い合わせに対して通知するかの設定は、ＣＰＵ１１が解析部２０に解析処理の要求を出す際に、レジスタ部２２に設定することで変更することができる。具体的には、割込みによる完了通知に設定した場合、解析部２０は、ＣＰＵ１１からの一回の解析処理要求に対して、割込みによる一回の通知信号Ｂを必ずＣＰＵ１１に通知する。すなわち、完了通知を、解析処理が完了した際に、ＣＰＵ１１に通知する。一方、ポーリングによる問い合わせに対する完了通知に設定した場合、解析部２０は、ＣＰＵ１１からポーリングによる問い合わせに応答して、すなわち、問い合わせがあったタイミングで、解析処理が完了したことを示す通知信号ＢをＣＰＵ１１に通知する。
【００１８】
なお、解析部２０は、ＣＰＵ１１から解析部２０にポーリングでの問い合わせがあるまで、ＣＰＵ１１からの複数回の処理要求を受け付けることができるように構成されている。解析部２０が複数回の解析処理を実行する場合、解析部２０は、処理回数分の解析処理結果３８を主記憶部３０に記憶する。解析部２０は、ＣＰＵ１１から解析部２０にポーリングでの問い合わせがあった際に、解析処理を実行中の場合、処理中の解析処理を終えてから解析処理完了を示す通知信号ＢをＣＰＵ１１に通知する。
【００１９】
ＣＰＵ１１は、解析部２０に対し、解析処理の要求として、主記憶部３０に記憶されている受信パケット群３１内の処理対象の受信パケットのアドレスと合計パケット数を指示する。解析部２０は、ＣＰＵ１１から指示された各受信パケットのヘッダ３６を読み込み、ヘッダ３６に含まれるグループ分けに必要となるグループ情報（図３参照）の解析処理を行い、グループ分けを含む解析処理結果３８を主記憶部３０に記憶する。具体的には、解析部２０は、例えば図３に示すように、解析対象の受信パケットに付与される識別情報であるパケット番号を使用して、グループ分けを行う。
【００２０】
（受信パケット解析処理）
以下、図３を参照して、解析部２０による受信パケットの解析処理の詳細について説明する。
解析部２０は、解析対象の各受信パケットのヘッダ３６に含まれる送信元／宛先ＩＰアドレス、送信元／宛先ポート番号、プロトコル種別の３つの情報に基づいて受信パケットの解析を行う。送信元／宛先ＩＰアドレス、送信元／宛先ポート番号、プロトコル種別のこれら３つの情報はグループ情報として参照されて、受信パケット群３１中の複数の受信パケットがグループ分けされる。
解析部２０は、この３つの情報が全て他の受信パケットと一致したものは同一のグループ（４３〜４５のいずれか）に属する受信パケットとして分類し、解析処理結果３８として記憶部３０に記憶する。３つの情報のいずれかが、各グループ情報３９と異なっていた場合は、解析部２０は、この受信パケットを別のグループに属する受信パケットとして分類する。
【００２１】
解析部２０は、上述の３つの情報（送信元／宛先ＩＰアドレス、送信元／宛先ポート番号、プロトコル種別）を含むグループ情報３９を受信パケットの解析処理結果３８として主記憶部３０に記憶する。また、解析部２０は、各受信パケットの固有の情報をパケット情報１〜ｍ（４０〜４２）として、上述のグループ分けと併せて解析する。例えば、ＴＣＰ（あるいはＵＤＰ）／ＩＰパケットであれば、ＩＰチェックサム、ＴＣＰ（ＵＤＰ）チェックサム、ＴＣＰシーケンスナンバーが固有の情報に含まれ、解析部２０は、これら固有の情報をパケット番号と対応付けて記憶する。なお、解析部２０が、ＴＣＰシーケンス番号を基に、各グループに登録されているパケットの順序をソートするようにしてもよい。
そして、解析部２０は、上述のように解析したグループ情報３９と、各グループ（４３〜４５）に所属するパケットのパケット情報１〜ｍ（４０〜４２）を、解析処理結果３８として、主記憶部３０に記憶する。
【００２２】
（解析部２０の構成詳細）
以下、通信装置１の解析部２０の構成例について説明する。
解析部２０は、上述の図１に示すように、解析部２０全体の制御を行う状態制御部２１と、ＣＰＵ１１が解析部２０を使用する際に用いるレジスタ群を有するレジスタ部２２と、受信パケットの解析を行う解析処理部２３とを備える。また、解析部２０は、解析処理結果３８を一時記憶部２６に登録する登録部２４と、一時記憶部２６に登録された解析結果を主記憶部３０に記憶する出力部２５とを備えている。
状態制御部２１は、解析部２０全体の制御を行う。レジスタ部２２は、ＣＰＵ１１が解析部２０に対する処理要求をセットするためのレジスタや、解析部２０の処理状態を表示するためのレジスタを備えている。解析処理部２３は、主記憶部３０に格納された受信パケット群３１からヘッダ３６を読み取り、解析処理を行う。そして、解析処理部２３は、解析結果（解析処理結果３８）を登録部２４に供給する。
【００２３】
登録部２４は、解析処理部２３から受信した解析処理結果３８を一時記憶部２６に登録する処理を行う。また、登録部２４は、解析処理結果３８の登録状態も併せて管理しており、登録ができない状況が発生した場合は、状態制御部２１に対して通知を行う。また、状態制御部２１は、解析処理が完了した場合、ＣＰＵ１１に、完了通知を行うための通知信号Ｂを供給する。出力部２５は、一時記憶部２６に登録された解析処理結果３８を主記憶部３０に記憶する。一時記憶部２６は、解析部２０が解析処理を実施し、処理結果を出力するまでの間に使用する各種情報の一時的な記憶領域である。一時記憶部２６には、主記憶部３０と比較して、単位容量当たりの実装コストが高いが、アクセスの遅延（アクセスレイテンシ）が小さい記憶装置を用いることが望ましい。
【００２４】
（ＣＰＵ１１の受信パケット処理手順概要）
以下、解析部２０を使用した際の、ＣＰＵ１１の受信パケットの処理手順の概要について、詳細に説明する。
ＣＰＵ１１は、解析部２０の解析処理結果３８を利用することにより、複数パケットの一括受信処理を行う。具体的には、まず、ＣＰＵ１１は、解析部２０が生成した解析処理結果３８と、各グループ（４３〜４５）に所属しているパケット情報（４０〜４２）から、ラージパケットを生成する。このラージパケットは、各グループ（４３〜４５）に対して、１つのラージパケットヘッダと１つのラージパケットデータを有している。
ＣＰＵ１１は、このラージパケットに対して通常のパケット受信処理に必要なプロトコルの解析とデコード処理してラージパケットの受信を行う。例えば、図３中のグループ（４３〜４５）に所属する複数のパケット情報（４０〜４２）を１つのラージパケットに集約する。
このため、ＣＰＵ１１は１つのパケット（ラージパケット）に対する受信処理のみを行えばよく、これにより、ＣＰＵの処理負荷を抑えつつ、受信パケットの解析処理の効率を向上させることができ、受信処理の効率を向上させることができる。なお、以上の説明では、ラージパケットの生成処理をＣＰＵ１１が行う場合について説明したが、例えば、この処理をＣＰＵ１１と独立したモジュールで実行するようにしてもよい。
【００２５】
（通信装置の機能構成）
図４は、本実施形態の通信装置１のソフトウエアによる機能構成例を示すブロック図である。この図４に示した各機能部は、ＣＰＵ１１により処理が実行されてよい。なお、通信装置１が図４の機能部を全て備えることは必須でない。
また、この図４では、実施形態１では使用しない２つの機能部であるコネクション管理部５９と、受信サイズ管理部６０も示しているが、これらの機能部については実施形態２と実施形態３において説明する。
通信装置１は、制御部５１と、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）通信制御部５２と、記憶制御部５３と、ＴＣＰ／ＩＰ（Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）通信制御部５４とを備える。また、通信装置１は、受信パケット解析制御部５５と、通知方法選択部５６と、受信パケット確認部５７と、ポーリングタイマ管理部５８とを備える。
【００２６】
制御部５１は、通信装置１が備える個々の機能部を制御する。
ＬＡＮ通信制御部５２は、インタフェース１３を制御し、他の通信装置とのＬＡＮ通信の制御を行う。通信装置１が外部の無線アクセスポイントを経由して他の通信装置と通信を行う場合は、ＬＡＮ通信制御部５２はインタフェース１３を制御して無線アクセスポイントとの間で無線ＬＡＮ通信の制御を行う。なお、ＬＡＮ通信制御部５２は、無線ＬＡＮ通信に限らず、ＩＰ通信が可能であれば有線ＬＡＮ通信などで通信を行うようにしてもよい。
記憶制御部５３は、主記憶部３０を制御し、各種処理データや画像コンテンツ、映像コンテンツなどのデータを記憶または削除する。なお、本実施形態では主記憶部３０を利用する例を示すが、これに限らず、補助記憶装置など他の記憶装置を用いるようにしてもよい。
【００２７】
ＴＣＰ／ＩＰ通信制御部５４は、ＬＡＮ通信制御部５２を利用して、他の通信装置との間でＴＣＰ／ＩＰ方式の通信プロトコルの処理および通信制御を行う。なお、ＴＣＰ／ＩＰ通信制御部５４は、ＴＣＰ／ＩＰ方式の通信に限らず、ＵＤＰ方式などの他のプロトコルで通信を行うようにしてもよい。受信パケット解析制御部５５は、解析部２０を利用して、主記憶部３０に受信パケット郡３１として記憶された複数の受信パケットの分類／グループ分などの解析処理を行い、解析処理結果３８を主記憶部３０に記憶する。
【００２８】
通知方法選択部５６は、受信パケット解析制御部５５から利用され、解析部２０による解析処理の完了をＣＰＵ１１に通知する完了通知を、割込みによりＣＰＵ１１に通知するかＣＰＵ１１からのポーリングによる問い合わせに対して通知するかを選択する。選択された通知方法は、通知方法選択部５６がレジスタ部２２に設定する。
具体的には、割込みにより完了を通知する場合には、通知方法選択部５６は、ＣＰＵ１１が解析部２０に処理を要求する際に、解析処理が完了した際に状態制御部２１が割込みにより通知信号Ｂを通知するようにレジスタ部２２の設定を行う。一方、ＣＰＵ１１からのポーリングによる問い合わせに対して完了を通知する場合には、通知方法選択部５６が、レジスタ部２２に割込みによる通知をしないように設定した上で、ＣＰＵ１１が、レジスタ部２２を使用してポーリングによる問い合わせを実行する。
状態制御部２１は、解析部２０が解析処理を完了していた場合、ＣＰＵ１１からのポーリングによる問い合わせに対する応答として通知信号ＢがＣＰＵ１１に通知されるよう制御する。
【００２９】
受信パケット確認部５７は、通知方法選択部５６から利用され、インタフェース１３が受信処理を完了した際に通知信号ＡとしてＣＰＵ１１に通知する受信パケットの情報（受信パケットが記憶されている主記憶部３０のアドレスとパケット数）を保持する。
ポーリングタイマ管理部５８は、通知方法選択部５６から利用され、解析部２０の解析処理の完了をＣＰＵ１１からのポーリングによる問い合わせに対して通知する際に使用するポーリングタイマの時間およびポーリング周期を管理する。
【００３０】
（パケット受信処理手順詳細）
図５は、本実施形態の通信装置１が受信パケットの解析処理の完了通知を選択する処理手順の例を示すフローチャートである。
まず、Ｓ１において、受信パケット確認部５７は、インタフェース１３が通知信号Ａを用いてＣＰＵ１１に通知した受信パケットの情報（受信パケットが記憶されている主記憶部３０のアドレスとパケット数）を保持する。
Ｓ２において、通知方法選択部５６は、受信パケット確認部５７が保持する受信パケットの数を所定の閾値と比較する。受信パケットの数が所定の閾値を超える場合にはＳ３に進み、受信パケットの数が所定の閾値以下の場合にはＳ１０に進む。なお、所定の閾値はインタフェース１３が一度にまとめて受信できるパケット数の最大値以下の値で、予め設定しておく。
【００３１】
Ｓ２で受信パケット数が所定の閾値を超える場合、Ｓ３において、ポーリングタイマ管理部５８は、ポーリングタイマが開始済みか否かを判断する。ポーリングタイマが開始済みの場合にはＳ４に進み、ポーリングタイマが開始していない場合にはＳ９に進む。Ｓ９において、ポーリングタイマ管理部５８は、ポーリングタイマを開始し、Ｓ４に進む。
Ｓ４において、通知方法選択部５６は、解析部２０の解析処理が完了したことをＣＰＵ１１に通知する完了通知として、ＣＰＵ１１からのポーリングによる問い合わせに対する完了通知を選択する。そして、受信パケット解析制御部５５は、解析部２０に対する解析処理の要求として、受信パケット確認部５７が保持する処理対象の受信パケットが記憶されているアドレスと解析処理で処理すべきパケット数を解析部２０のレジスタ部２２に設定にする。解析部２０は、設定されたレジスタ部２２の値に基づき、複数の受信パケットの解析処理を開始する。
【００３２】
Ｓ５において、ポーリングタイマ管理部５８は、ポーリングタイマがポーリングの周期に達しているかを判定する。ポーリングタイマがポーリングの周期以上となっている場合にはＳ６に進み、ポーリングタイマがポーリングの周期未満の場合にはＳ１に戻る。なお、ポーリングの周期は、インタフェース１３が一度にまとめて受信できるパケットの数の最大値、ＣＰＵ１１に対して通知信号Ａでパケットの受信完了を通知する平均間隔、解析処理結果３８で１つのグループに保持できる最大パケット数に基づいて設定する。
【００３３】
Ｓ６において、ポーリングタイマ管理部５８は、ポーリングタイマを停止し、リセットする。
Ｓ７において、受信パケット解析制御部５５は、解析部２０にポーリングにより解析処理が完了したかを問い合わせる。解析部２０は、解析処理が完了している場合は即時に、解析処理を実行している場合は処理が完了したタイミングで、ポーリングでの問い合わせに対する応答として解析処理の完了を示す通知信号ＢをＣＰＵ１１に通知する。すなわち、解析部２０は、ＣＰＵ１１からの問い合わせがあるまでに、ＣＰＵ１１から要求された回数の解析処理を実行した後、ＣＰＵ１１へ完了通知を通知する。
Ｓ８において、ＴＣＰ／ＩＰ通信制御部５４は、解析処理結果３８を使用して複数の受信パケットを１つにまとめたラージパケットを作成し、通信プロトコル処理を実行する。
【００３４】
一方、Ｓ２で受信パケット数が所定の閾値以下の場合、Ｓ１０において、通知方法選択部５６は、解析部２０の解析処理が完了したことをＣＰＵ１１に通知する完了通知として、割込みによる完了通知を選択する。そして、受信パケット解析制御部５５は、解析部２０に対する解析処理の要求として、受信パケット確認部５７が保持する解析処理対象の受信パケットが記憶されているアドレスとパケット数を解析部２０のレジスタ部２２に設定する。解析部２０は、レジスタ部２２に設定された値に基づき、受信パケットの解析処理を開始する。
Ｓ１１において、受信パケット解析制御部５５は、解析処理が完了した際に、割込みにより、解析部２０による解析処理の完了を示す通知信号ＢをＣＰＵ１１に通知する。これにより、解析部２０による一回の解析処理が完了するごとにＣＰＵ１１に完了通知が通知される。なお、解析処理の完了を示す完了通知は、上述の割込み信号による割込みに限らず、解析処理が完了した際に通知する信号等であれば足りる。
【００３５】
（実施形態１の効果）
以上説明したように、本実施形態では、解析処理を行うパケットの数が所定の閾値を超えるか否かに応じて、解析処理の完了を通知する完了通知を、割込みにより通知するか、ＣＰＵ１１からのポーリングによる問い合わせに対して通知するかを選択する。
これにより、パケットをバースト的に受信していない間は、解析部２０が完了通知を割込みにより通知し、割り込みで解析完了を通知されたＣＰＵ１１が受信パケットの解析結果に基づいて通信プロトコル処理を実行する。これにより、ポーリングで解析完了を通知するよりもＣＰＵ１１における解析処理の待ち時間が減少し、通信装置１が早期にバースト的なパケット受信ができるようになる。
一方、パケットをバースト的に受信している間は、解析部の完了通知をポーリングとして検知することで、ポーリング周期中に解析処理を複数回実行することができる。すなわち、まとめて解析処理できる受信パケット数が増えるため、処理効率が向上する。すなわち、ＣＰＵ１１からの次のポーリングによる問い合わせがあるまでに、ＣＰＵ１１から解析処理の要求があった回数の解析処理を実行した後、ＣＰＵ１１に完了通知を通知することができる。
従って、本実施形態では、ＣＰＵの処理負荷を抑えつつ、受信パケットの解析処理の効率低下を低減させることができる。この結果、通信装置の処理負荷を抑えつつ、パケットの受信処理の効率低下を低減することができ、通信性能の低下を防止することができる。
【００３６】
実施形態２
以下、実施形態２に係る通信装置における通信処理を説明する。
本実施形態では、実施形態１の処理に加えて、通信コネクションの数および通信装置１の受信可能サイズに基づいて、解析処理の完了を通知する完了通知を、割込みにより通知するか、ＣＰＵ１１からのポーリングによる問い合わせに対して通知するかを選択する。なお、実施形態２において、実施形態１と同様の図、および図中と同じ要素に関しては説明を省略する。
【００３７】
（通信装置の構成）
本実施形態に係る通信装置１の構成例は、実施形態１と同様である。本実施形態に係る通信装置１のソフトウエアの構成例は、実施形態１で説明した図４のソフトウエアの構成例にコネクション管理部５９、受信サイズ管理部６０を追加した構成である。
コネクション管理部５９は、ＴＣＰ／ＩＰ通信制御部５４から利用され、通信コネクションの数および状態を管理する。受信サイズ管理部６０は、ＴＣＰ／ＩＰ通信制御部５４から利用され、通信コネクションごとの受信バッファのサイズおよび通信プロトコル上の受信可能サイズを管理する。
【００３８】
（パケット受信処理詳細）
図６は、本実施形態の通信装置１が、受信パケットの解析処理の完了通知を選択する処理の例を示すフローチャートである。
Ｓ２１における処理は、上述の図５におけるＳ１の処理と同様である。
Ｓ２２において、ＴＣＰ／ＩＰ通信制御部５４は、コネクション管理部５９を利用してコネクションの数を確認する。コネクションの数が２以上の場合にはＳ２３に進み、コネクションの数が１の場合にはＳ２５に進む。
【００３９】
Ｓ２３における処理は、上述の図５におけるＳ１〜Ｓ１１の処理と同様である。なお、Ｓ２１の処理はＳ１の処理と同様であるため、Ｓ２３において実行される一回目のＳ１の実行はスキップする。また、Ｓ２４はＳ８の処理と同様であるため、Ｓ２３を実行した場合はＳ２４の実行をスキップする。すなわち、前記他の通信装置との間で使用される前記通信コネクションの数が複数である場合には、実施形態１と同様に、解析処理を行うパケットの数が所定の閾値を超えるか否かに応じて、解析処理の完了を通知する完了通知を通知する方法を選択する。
Ｓ２５において、ＴＣＰ／ＩＰ通信制御部５４は、受信サイズ管理部６０に対し、１つの通信コネクションの受信可能サイズを確認する。受信可能サイズが所定の閾値未満（閾値１未満）であった場合にはＳ２６に進み、受信可能サイズが所定の閾値以上（閾値１以上）であった場合にはＳ２３に進む。Ｓ２３で、解析すべきパケットの数が所定の閾値以下である場合には、割込みにより完了通知を通知させ、解析すべきパケットの数が閾値を超える場合には、ＣＰＵからのポーリングによる問い合せに対して完了通知を通知させる。
続く、Ｓ２６とＳ２７における処理は、上述の図５におけるＳ１０とＳ１１の処理と同様である。
【００４０】
（実施形態２の効果）
以上説明したように、本実施形態では、通信コネクションの数とコネクションの受信可能サイズに基づいて、解析処理が完了したことを通知する完了通知を、割込みにより通知するか、ＣＰＵ１１からのポーリングによる問い合わせに対して通知するかを選択する。具体的には、通信コネクションの数が１であれば、解析部２０は、通信装置１の受信可能サイズが所定の閾値内である限り、割込みにより解析処理の完了をＣＰＵ１１に通知する。
例えば、ＴＣＰ通信のスロースタート時や受信可能サイズが小さいためにパケットをバースト的に受信できない際に、解析部２０は、解析部の完了通知を割込みにより通知する。割込みで解析処理完了を通知されたＣＰＵ１１は、受信パケットの通信プロトコル処理を実行する。これにより、ポーリングによる問い合わせに応答して解析処理の完了を通知するよりも短い待ち時間でパケットの受信処理が完了するため、早期にバースト的なパケットの受信ができるようになる。この結果、パケットの受信処理効率の低下を防止し、通信性能の低下を防止することが可能となる。
【００４１】
実施形態３
以下、実施形態３の通信装置における通信処理を説明する。
本実施形態では、実施形態１または実施形態２の処理に加えて、解析部２０の解析処理結果３８として各グループ４３〜４５に登録したパケット数に基づいて、ポーリングの周期を変更する。なお、実施形態３において、実施形態１と同様の図、および図中と同じ要素に関しては説明を省略する。
【００４２】
（通信装置の構成）
本実施形態に係る通信装置１の構成例は、実施形態１と同様である。本実施形態に係る通信装置１のソフトウエアの構成例は、実施形態１または実施形態２と同様である。
【００４３】
（パケット受信処理詳細）
図７は、実施形態３の通信装置１が、受信パケットの解析完了通知手段を選択する処理を示すフローチャートである。なお、図７は、実施形態１による処理に本実施形態の処理を適用したフローチャートであるが、実施形態２による処理に本実施形態の処理を適用してもよい。また、この図７では、上述の図５と同じ処理については、図５と同じ符号で示している。
Ｓ３８において、受信パケット解析制御部５５は、解析部２０が出力した解析処理結果３８を確認し、解析が可能なパケットの数の上限に達したグループがあるか否か（解析する受信パケットの数が解析可能なパケットの数の上限を超えたか否か）を確認する。解析が可能なパケットの数の上限に達したグループがない場合にはＳ８に進み、解析が可能なパケットの数の上限に達したグループがある場合にはＳ３９に進む。
【００４４】
Ｓ３９において、ポーリングタイマ管理部５８は、管理しているポーリングの周期を所定値より短く設定する。すなわち、ポーリングタイマ管理部５８は、ポーリング周期を短縮する。設定する周期の値は、インタフェース１３が一度にまとめて受信できるパケットの数の最大値、ＣＰＵ１１に対して通知信号Ａでパケットの受信完了を通知する平均間隔、解析処理結果３８で一グループに保持できる最大パケット数に基づいて予め設定しておく。
また、受信パケット解析制御部５５は、解析部２０が処理できなかったパケット数を解析処理結果３８またはレジスタ部２２から取得する。
【００４５】
（実施形態３の効果）
以上説明したように、本実施形態では、ＣＰＵ１１からのポーリングによる問い合わせに対して解析処理の完了を通知する場合、解析処理結果３８に解析が可能なパケット数の上限ｍに達したグループがある場合に、ポーリングの周期を所定値より短く設定する。
これにより、例えば、高速通信において単位時間あたりの受信パケット数が多い場合にポーリング周期を短縮することで、解析部で処理できないパケットの発生を防ぐことが可能となる。その結果、パケットの受信処理効率の低下を防止し、通信性能の低下を防止することが可能となる。
【００４６】
＜他の実施形態＞
なお、上述した各実施形態は、その複数を組み合わせて実現することが可能である。
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４７】
１…通信装置、１１…ＣＰＵ、１３…インタフェース、２０…解析部、３０…主記憶部、３１…受信パケット群、３８…解析処理結果、５１…制御部、５２…ＬＡＮ通信制御部、５３…記憶制御部、５４…ＴＣＰ／ＩＰ通信制御部、５５…受信パケット解析制御部、５６…通知方法選択部、５７…受信パケット確認部、５８…ポーリングタイマ管理部、５９…コネクション管理部、６０…受信サイズ管理部
【図１】
2019186708.tif 000003
【図２】
2019186708.tif 000004
【図３】
2019186708.tif 000005
【図４】
2019186708.tif 000006
【図５】
2019186708.tif 000007
【図６】
2019186708.tif 000008
【図７】
2019186708.tif 000009