(57)【要約】【課題】クライアントとサーバ間の通信処理負荷の軽減に優れた中継装置を提供すること。【解決手段】実施形態の中継装置は、受信部と、処理部と、送信部とを備える。前記受信部は、第一通信装置から複数のパケットを受信する。前記処理部は、各パケットの送信待機時間に基づき１以上のパケットを含む集約パケットを生成する。前記送信部は、前記送信待機時間以内に第二通信装置に対して前記集約パケットを送信する。【選択図】図２
2018046404.tif 000002
【特許請求の範囲】
【請求項１】
第一通信装置から複数のパケットを受信する受信部と、
各パケットの送信待機時間に基づき１以上のパケットを含む集約パケットを生成する処理部と、
前記送信待機時間以内に第二通信装置に対して前記集約パケットを送信する送信部と、
を備える中継装置。
【請求項２】
前記受信部は、前記第二通信装置から前記集約パケットを受信し、
前記処理部は、前記集約パケットに含まれる１以上のパケットを取得し、
前記送信部は、前記第一通信装置に対して取得された１以上のパケットを送信する、
請求項１の中継装置。
【請求項３】
前記処理部は、複数のパケットの送受信からなるトランザクション単位での時間制約情報から各パケットの前記送信待機時間を取得する請求項１又は２の中継装置。
【請求項４】
前記処理部は、前記第一通信装置の装置識別情報と各パケットのパケット識別情報とを含む登録情報を登録し、前記パケット識別情報が付与された１以上のパケットを含む前記集約パケットを生成し、
前記送信部は、前記第二通信装置から受信された前記集約パケットから取得された１以上のパケットに付与された前記パケット識別情報と前記登録情報とに基づき、前記第一通信装置に対して前記集約パケットから取得された１以上のパケットを送信する、
請求項１乃至３の何れか一つの中継装置。
【請求項５】
前記受信部は、複数の第一通信装置から複数のパケットを受信し、
前記集約パケットは、前記複数の第一通信装置から複数のパケットを含み、
前記送信部は、前記パケット識別情報と前記登録情報とに基づき、前記複数の第一通信装置に対して前記集約パケットから取得された１以上のパケットを送信する、
請求項４の中継装置。
【請求項６】
前記受信部は、前記第一通信装置から制御情報を受信し、
前記処理部は、前記制御情報の送信条件に基づき前記制御情報に対応する制御パケットを含む前記集約パケットを生成する請求項１乃至５の何れか一つの中継装置。
【請求項７】
前記処理部は、一定周期で、各パケットの送信待機時間と最大パケット数又は最大サイズの条件とに基づき、前記集約パケットを生成する請求項１乃至６の何れか一つの中継装置。
【請求項８】
前記処理部は、各パケットの優先度に基づき、前記集約パケットを生成する請求項１乃至７の何れか一つの中継装置。
【請求項９】
前記処理部は、第一タイミングで送信される第一集約パケット、及び前記第一タイミングの次の第二タイミングに送信される第二集約パケットを生成し、
前記第一集約パケットは、前記第二タイミングにおいて前記送信待機時間を超過するパケットを含む、
請求項１乃至８の何れか一つの中継装置。
【請求項１０】
前記処理部は、前記第二通信装置へ前記集約パケットを送信してから前記集約パケットを受信するまでの応答時間と各パケットの時間制約情報から前記送信待機時間を取得する請求項１乃至９の何れか一つの中継装置。
【請求項１１】
前記送信部は、前記応答時間以内に前記集約パケットを受信しない場合に、前記第一通信装置へエラーを送信する請求項１０の中継装置。
【請求項１２】
前記送信部は、前記応答時間以内に前記集約パケットを受信しない場合に、前記第二通信装置又は第三通信装置へ前記集約パケットを再送信する請求項１０又は１１の中継装置。
【請求項１３】
第一通信装置から複数のパケットを受信する第二通信装置と、
前記第一通信装置から複数のパケットを受信し、各パケットの送信待機時間に基づき１以上のパケットを含む集約パケットを生成し、前記送信待機時間以内に前記第二通信装置に対して前記集約パケットを送信する中継装置と、
を備える中継システム。
【請求項１４】
第一通信装置から複数のパケットを受信する手順と、
各パケットの送信待機時間に基づき１以上のパケットを含む集約パケットを生成する手順と、
前記送信待機時間以内に第二通信装置に対して前記集約パケットを送信する手順と、
をコンピュータに実行させる中継プログラム。
【請求項１５】
第一通信装置から複数のパケットを受信し、
各パケットの送信待機時間に基づき１以上のパケットを含む集約パケットを生成し、
前記送信待機時間以内に第二通信装置に対して前記集約パケットを送信する中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、中継装置、中継システム、中継プログラム、及び中継方法に関する。
【背景技術】
【０００２】
クライアントサーバ型の制御システムにおいて、同時に多数のクライアントから複数のサーバへのアクセスが発生すると、ネットワークの負荷が増大し、リアルタイムな制御を行うことが難しくなることがある。特に、小さいサイズのパケットを大量に処理する場合、複数のサーバのネットワークインタフェースでの処理負荷が増大する。例えば、中継装置で複数のパケットを１つのパケットに集約してサーバに送信することで、サーバでのネットワークインタフェースの処理負荷を低減させる技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許３４９００００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
中継装置において所定時間毎にパケットの集約を行うことができるが、パケット毎に異なる時間制約がある場合や、複数のパケット送受信からなるトランザクション処理においてトランザクション単位での時間制約がある場合に、単にパケットの集約を行うと時間制約が満たされなくなるおそれがある。
【０００５】
本発明の目的は、クライアントとサーバ間の通信処理負荷の軽減に優れた中継装置、中継システム、中継プログラム、及び中継方法を提供することである。
【課題を解決するための手段】
【０００６】
実施形態の中継装置は、受信部と、処理部と、送信部とを備える。前記受信部は、第一通信装置から複数のパケットを受信する。前記処理部は、各パケットの送信待機時間に基づき１以上のパケットを含む集約パケットを生成する。前記送信部は、前記送信待機時間以内に第二通信装置に対して前記集約パケットを送信する。
【図面の簡単な説明】
【０００７】
【図１】各実施形態に共通するパケット中継システムの全体構成の一例を示す図である。
【図２】実施形態１に係るパケット中継装置の内部構成の一例を示す図である。
【図３】実施形態１に係る識別子データベースの一例を示す図である。
【図４】実施形態１に係るパケット送信までの最大待機時間の一例を示す図である。
【図５】実施形態１に係る集約パケットのフレーム構成の例を示す図である。
【図６】実施形態１に係る第一通信装置からのパケット受信時の処理の一例を示すフローチャートである。
【図７】実施形態１に係るパケット集約の処理の一例を示すフローチャートである。
【図８】実施形態１に係る第二通信装置からのパケット受信時の処理の一例を示すフローチャートである。
【図９】実施形態２に係るパケット中継装置の内部構成の一例を示す図である。
【図１０】実施形態２に係るパケット集約の処理の一例を示すフローチャートである。
【図１１】実施形態３に係るパケット中継装置の内部構成の一例を示す図である。
【図１２】実施形態３に係るエラー処理と再要求処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、各実施形態に係るパケット中継システムについて、図面を参照して説明する。
【０００９】
図１は、各実施形態に共通するパケット中継システムの全体構成の一例を示す図である。パケット中継システムは、第一通信装置３、パケット中継装置４、第二通信装置５から構成される。第一通信装置３は一台であってもよいし複数台であってもよい。また、パケット中継装置４についても、一台であってもよいし複数台であってもよい。また、第二通信装置５は一台であってもよいし複数台であってもよい。以下説明する各実施形態では、第一通信装置３が複数台、パケット中継装置４と第二通信装置５が一台のケースを想定する。
【００１０】
第一通信装置３とパケット中継装置４は、ネットワーク１、第二通信装置５とパケット中継装置４はネットワーク２を通じて接続され、相互に通信が可能である。第一通信装置３は、複数の装置から構成されても良い。ネットワーク１とネットワーク２は、例えばＬＡＮなどのローカルな回線であっても良いし、インターネットや専用回線などの広域な有線通信回線や、３Ｇなどの広域な無線通信回線を用いてもよい。ただし、ネットワーク２には通信遅延が大きい回線も想定しており、通信プロトコルとしてはＵＤＰ（User Datagram Protocol）などの遅延の少ない高速なプロトコルを用いることが望ましい。
【００１１】
パケット中継装置４は、第一通信装置３から受信した複数のパケットを一つのパケットにまとめ（以降、１以上のパケット（多くは複数のパケット）が一つにまとめられたパケットを集約パケットとよぶ）、第二通信装置５に送信する機能を持つ。また、第二通信装置５から受信した集約パケットを個々のパケットに分割して、第一通信装置３に送信する機能を持つ。
【００１２】
例えば、第一通信装置３は、パケット中継装置４に対して各種の検知信号（入力信号）等をパケットで送信し、パケット中継装置４からの応答信号（出力信号）をパケットで受信する。検知信号とは、制御対象デバイスが設置された環境に関する環境情報、制御対象デバイスの状態に関する状態情報、又は各種の記憶媒体から読み取られたリード情報である。例えば、環境情報は明るさや温度、湿度、気圧、天候などを示す情報や、緯度、経度、高度などの位置情報や、速度、加速度、圧力などの物理情報や、文字列、画像、映像、音声などの多次元の情報である。状態情報は制御対象デバイスの電源状態（例えばオン又はオフ）や電流値や電圧値、圧力値、動作の状態などを示す情報や、ビット値、バイト値などのデジタル情報である。応答信号とは、制御対象デバイスを動作させるための信号（例えば制御信号）であり、電源状態や電流値や電圧値、圧力値、動作の状態などを示す情報や、ビット値、バイト値などのデジタル情報である。また、検知信号と応答信号は、一定回数の検知信号と応答信号のやり取りを行い、制御対象デバイスを動作させるトランザクション処理としても良い。
【００１３】
例えば、本実施形態のパケット中継システムを交通システムに適用する場合、制御対象デバイスは駅務機器となる。例えば、駅務機器は、自動改札機、自動精算機、及び自動券売機等である。制御対象デバイスが自動改札機の場合、検知信号は無線通信媒体（所謂、無線カード）から読み取られたリード情報等であり、応答信号は通行を制御するゲートの駆動信号等である。この場合のリード情報は、無線通信媒体のID、入場記録（入場駅及び入場日時）、出場記録（出場駅及び出場時刻）、及び金額情報のうちの少なくとも一つとなる。一般的に、自動改札機の場合、検知信号に対する応答信号の高速応答が要求される。また、制御対象デバイスが自動精算機の場合（且つ第二通信装置５側で精算処理を行うようなクラウド精算システムの場合）、検知信号は無線通信媒体から読み取られたリード情報であり、応答信号はリード情報から算出される不足金額情報等である。自動精算機において要求される応答信号の応答は、自動改札機において要求される応答信号の応答より遅くてもよい。なお、自動改札機及び自動精算機のそれぞれにおいて、応答信号の要求時間が異なる複数の処理を実行するケースも含まれる。交通システムにおいては、多数の自動改札機が設置され、これら多数の自動改札機のそれぞれから多数の検知信号が高頻度で送信され、多数の自動精算機が設置され、これら多数の自動精算機のそれぞれから多数の検知信号が送信される。本実施形態の伝送中継システムはこのような条件の交通システムにおいて通信処理の負荷を軽減することができる。
【００１４】
なお、本実施形態の伝送中継システムは、上記説明した駅務システムへの適用に限定されるものではなく、防災システム、水処理システム等の様々な社会インフラシステム、及びビル制御等の様々な産業システムに適用することができる。また、制御対象デバイスは、例えば、プラント、防災システム、交通システム等の社会インフラシステムのハードウェア、ソフトウェアでも良いし、産業システム、家電、ＰＣ、情報端末等のハードウェア、ソフトウェアでも良い。
【００１５】
なお、本実施形態の伝送中継システムの中継処理が適用されるケースは、例えば、第一通信装置３から送信された情報（例えば検知信号）が、パケット中継装置４を中継して、第二通信装置５へ送信され、第二通信装置５からの応答（応答信号）が、パケット中継装置４を中継して、第一通信装置３へ送信されるケース（以下、ケースＣ１）である。このようなケース以外に、例えば、第一通信装置３から送信された情報が、パケット中継装置４を中継して、第二通信装置５へ送信されるケース（以下、ケースＣ２）であってもよい。このようなケースとしては、検知信号をログとしてサーバへ蓄積するようなケースである。また、本実施形態の伝送中継システムの中継処理は、１台のデバイスにおいてケースＣ１とケースＣ２を異なるプログラムで実行するようなケース（以下、ケースＣ３）にも適用可能である。つまり、中継処理においてケースＣ１とＣ２が混在するようなケースＣ３にも適用可能である。
【００１６】
（実施形態１）
図２は、実施形態１に係るパケット中継装置４の内部構成の一例を示す図である。パケット中継装置４は、第一受信部１０（受信部）、制御パケット生成部１１、識別子登録部１２、識別子付与部１３、最大待機時間計算部１４、集約用バッファ１５、周期管理部１６、結合部１７、第一送信部１８（送信部）、第二受信部１９（受信部）、分割部２０、識別子取得部２１、識別子データベース２２、第二送信部２３（送信部）、及び識別子データベース２２等を備える。なお、１以上のプロセッサー（処理部）により、制御パケット生成部１１、識別子登録部１２、識別子付与部１３、最大待機時間計算部１４、周期管理部１６、結合部１７、分割部２０、識別子取得部２１等の各機能を実現することができる。また、１以上の記憶部により、集約用バッファ１５及び識別子データベース２２を構成するようにしてもよい。
【００１７】
第一受信部１０は、第一通信装置３から受信した複数のパケットを集約して第二通信装置５に送信するため、第一通信装置３から複数のパケットを受信する。さらに第一受信部１０は、受信パケットのデータに基づき、受信パケットを制御パケットか通常パケットかに識別する機能を持つ。第一受信部１０は、制御パケットに識別された受信パケットを制御パケット生成部１１へ送り、通常パケットに識別された受信パケットを識別子登録部１２へ送る。ここでいう制御パケットとはアプリケーションがやり取りするメッセージ以外の、例えばネットワークの制御に関するメッセージ（制御情報）を含むパケットのことを指す。例えば、ＴＣＰ／ＩＰではコネクションの確立や切断に関するメッセージである。
【００１８】
制御パケット生成部１１は、制御パケットに識別された受信パケットに含まれる制御情報を第二通信装置５に伝えるための制御パケットを生成する。つまり、制御パケット生成部１１は、受信パケットから制御パケットを生成し、集約用バッファ１５に登録する。
【００１９】
識別子登録部１２は、受信パケットごとに異なる識別子（パケット識別情報）を生成して、ＩＰアドレスなどの第一通信装置３の識別情報（装置識別情報）と共に識別子データベース２２に登録する。つまり、識別子データベース２２は、全ての受信パケット（通常パケットに識別された受信パケット及び制御パケットに識別された受信パケット）のパケット識別情報と第一通信装置３の識別情報とを含む登録情報を有し、この登録情報を参照すればどの受信パケットがどの第一通信装置から送信されてきたパケットなのかが判明する。識別子付与部１３は、集約パケットに含まれる各パケット対して生成した識別子を付与する。この識別子はパケット毎に異なる識別子ではなく、通信セッション毎、もしくは第一通信装置３毎に異なるものとしても良い。なお、本パケット中継システムを駅務機器に適用するケースでは、駅識別情報又は改札機識別情報をパケット識別情報としてもよいし、パケット識別情報の一部としてもよい。
【００２０】
最大待機時間計算部１４は、パケット送信まで許容可能な送信待機時間（以下、送信待機時間を最大待機時間の例で説明する）を計算してパケットと共に集約用バッファ１５に登録する。周期管理部１６は、集約パケットを生成するために、集約用バッファ１５から定期的に最大待機時間（デッドライン）が迫っているパケット群を取り出す。結合部１７は、周期管理部１６から呼び出されて取り出したパケット群を一つのパケットに結合して集約パケットを生成する。例えば、結合部１７は、集約パケットに含まれる最大パケット数及び集約パケットの最大サイズ（集約パケットに含まれる１以上のパケットの合計最大サイズ）等の少なくとも一つの条件に基づき、集約パケットを生成する。第一送信部１８は、最大待機時間以内に第二通信装置５に集約パケットを送信する。
【００２１】
第二通信装置５は、第一通信装置３からの集約パケット（以下、受信集約パケット）を受信し、第一通信装置３に対して集約パケット（以下、返信集約パケット）を返信する。第二通信装置５は、受信集約パケットに含まれる識別子とパケットを取得し、パケットに含まれる情報（例えば検知信号）を処理して、処理結果（例えば制御信号）を取得し、処理結果を含むパケットを生成し、取得した識別子と生成したパケットを含む送信集約パケットを生成する。つまり、受信集約パケットと返信集約パケットの基本構成は同じで、且つ受信集約パケットに含まれる識別子とパケットの組と、返信集約パケットに含まれる識別子とパケットの組は対応する。
【００２２】
第二受信部１９は、第二通信装置５から集約パケットを受信して第一通信装置３に送信するために、第二通信装置５からパケットを受信する。分割部２０は、集約パケットを個々のパケットに分割する。言い換えれば、分割部２０は、集約パケットに含まれるパケットを取得する。識別子取得部２１は、個々のパケットの識別子を用いて対応する第一通信装置３の識別情報を識別子データベース２２から探す。第二送信部２３は、第一通信装置３にパケットを送信する。
【００２３】
識別子登録部１２と識別子付与部１３の機能と目的について詳細を説明する。例えば、特段の処理を経ず、パケット中継装置４が、第一通信装置３から送信されるパケットを第二通信装置５へ中継すると、第二通信装置５は、中継されたパケットの送信元をパケット中継装置４と判定してしまう。すると第二通信装置５が返答パケットをパケット中継装置４に返した際に、パケット中継装置４はどの第一通信装置３に返答パケット（データ）を返せばよいか判定できない。そこで識別子登録部１２が、第一通信装置３から受信した各パケットに対する識別子を生成し、生成した識別子と第一通信装置３との通信に必要な識別情報（ＩＰアドレスやソケット・インタフェースのディスクリプタ情報など）とを含む登録情報を識別子データベース２２に登録する。さらに、識別子付与部１３が、第二通信装置５に送信される各パケット（集約パケットに含まれる各パケット）に、生成した識別子を付与する。
【００２４】
第二通信装置５は、パケット中継装置４に集約パケットを返信するが、その集約パケットに含まれる各パケットには識別子が付与されている。識別子取得部２１は、識別子データベース２２に登録された登録情報を参照し、集約パケットに含まれる各パケットに付与された識別子に基づき、各パケットの送信元の第一通信装置３の識別情報を検索する。第二送信部２３は、検索された第一通信装置３の識別情報に基づき、第二通信装置５から受信した集約パケットに含まれる各パケットを送信元の第一通信装置３へ転送することができる。また、この識別子をパケット単位、第一通信装置３とのセッション単位、第一通信装置３のＩＰアドレスとポート単位で割り振ることにより、各々どのパケット、セッション、ＩＰアドレスとポートに対応するパケットの返答が第二通信装置５から来たかを判別することも可能となる。
【００２５】
図３が実施形態１に係る識別子データベース２２に登録される登録情報の一例である。この例では、登録情報は、パケット毎の識別子（パケット識別子０、１、２、３、４）と、対応する第一通信装置３のＩＰアドレスと返答送信先のポート番号を含む。例えば、第二通信装置５からの集約パケットに含まれたパケットにパケット識別子２が付与されている場合、第二送信部２３はＩＰアドレス：１９２．１６８．０．１１、ポート番号：１００００を宛先としてパケットを送信する。
【００２６】
例えば、最大待機時間計算部１４は、パケット送信までの最大待機時間を決定する。最大待機時間計算部１４が最大待機時間を計算するにあたり、例えば固定時間を最大待機時間としても良いし、第一通信装置３からパケット毎の最大待機時間情報を受け取ってその情報を最大待機時間としても良い。また複数の通信からなるトランザクション単位での最大送信時間が定められている場合には、各パケット受信時にそのトランザクションの最大送信時間から経過時間を減じ、残りの通信回数で除算した時間を最大待機時間としても良い。例えば、１トランザクションについて１０回のパケット送信が必要で１９０ｍｓと最大送信待機時間が定められている場合に、既に３回の通信が終わっていて、現在までの経過時間が５０ｍｓとすると、（１９０−５０）／（１０−３）＝２０ｍｓが４回目のパケット送信での最大待機時間となる。また最大通信時間が与えられた場合には、第二通信装置５との通信に必要な時間（通信所要時間）を計測しておき、最大通信時間から通信所要時間を減じて最大待機時間を求めるといった方法も考えられる。従来技術では個々のパケットもしくはトランザクションごとに通信時間を制御することは困難であったが、本実施形態のパケット中継装置４の構成により、この課題を解決することができ、効率的にネットワーク帯域を利用できる。
【００２７】
第一受信部１０は、受信パケットを通常パケットと制御パケットとに分類し、通常パケットの場合には識別子登録部１２を、制御パケットの場合には制御パケット生成部１１を呼び出す機能を持つ。制御パケット生成部１１は、制御パケットの情報に応じて第二通信装置５に制御情報を伝えるための制御情報を含むパケットを生成する。例えば第一通信装置３とパケット中継装置４間はＴＣＰ／ＩＰ、パケット中継装置４と第二通信装置５の間はＵＤＰ／ＩＰのように各々違うプロトコルを利用する場合には、パケットの中継によりＴＣＰ／ＩＰ固有の制御情報が失われてしまう。本実施形態によれば、パケット中継装置４が制御パケットにより制御情報を伝えるので、第二通信装置５側でも制御情報を得ることができる。例えばこの制御情報としてはＴＣＰ／ＩＰの場合にはコネクションの確立要求や切断要求などがある。第二通信装置５側で通信には実際にはＵＤＰ／ＩＰを利用しつつも、第二通信装置５上で動作するアプリケーションに対しては、ＴＣＰ／ＩＰの振る舞いをエミュレーションするような場合には本機能が役立つ。
【００２８】
なお、本実施形態では、通常パケット及び制御パケットを含む集約パケット（場合によっては通常パケットだけを含む集約パケット及び制御パケットだけを含む集約パケット）を送信するケースについて説明するが、予め制御情報の送信条件を定め、制御情報の送信条件に基づき制御情報を送信するようにしてもよい。制御情報の送信条件は、通常パケットに対する最大待機時間から独立した情報とする。これにより、例えば、制御パケットを集約パケットに含めずに（制御パケットを集約せずに）送信することもできる。周期管理部１６の管理の下、結合部１７により集約パケットが生成されるが、集約パケットと独立して制御パケットを送信する場合、より早いタイミングで制御パケットを第二通信装置５へ送信することができる。或いは、制御情報の送信条件において、制御パケットに対する最大送信待機時間を通常パケットに対する最大待機時間より短く設定することにより、制御パケットに対する最大送信待機時間（制御情報の送信条件）に基づき集約パケット（制御情報専用の集約パケットでもよいし通常パケットと制御パケットの混在が可能な集約パケットでもよい）を生成し、より早いタイミングで制御パケットを集約パケットで第二通信装置５へ送信することができる。
【００２９】
周期管理部１６は、定期的に集約用バッファ１５に登録されたパケットを取り出すが、例えば周期管理部１６が一定時間ごとに呼び出される場合には次の呼び出し時には最大待機時間を超えてしまうパケットをすべて取り出す方法を用いればよい。例えば、第一タイミングで送信される第一集約パケット、及び第一タイミングの次の第二タイミングに送信される第二集約パケットを仮定する。図４に示す例では現在の時間（第一集約パケットの生成及び送信）がｔ＝１０（第一タイミング）で、次回のパケット集約（第二集約パケットの生成及び送信）がｔ＝２０（第二タイミング）に行われる場合には、ｔ＝２０までに最大待機時間を迎えるパケット１とパケット２を取り出し集約パケット（第二集約パケット）を生成し送信する。これにより最大待機時間（パケット１とパケット２の最大待機時間）を超えることなく、パケットの集約と送信が可能になる。なお、周期管理部１６は、集約パケットの集約パケットに含まれる最大パケット数及び集約パケットの最大サイズ等の条件を満たす場合には、次の呼び出し時には最大待機時間を超えないパケット３も取り出す（可能な限り待機しているパケットを取り出す）ようにしてもよい（実施形態２で詳細は説明する）。また制御パケットについては一般に送受信の優先度が高いため、最大送信待機時間（通常パケット用の最大送信待機時間）に依らず、無条件で取り出し集約パケットに含めるようにしても良いし、制御パケット用の最大送信待機時間を設け、この制御パケット用の最大送信待機時間に基づき制御パケットを取り出して集約パケットに含めるようにしても良いし、集約パケットに含めずに制御パケットを送信するようにしてもよい。
【００３０】
結合部１７は、周期管理部１６が取り出したパケット群をまとめて集約パケットを生成する。例えば、結合部１７は、集約パケットの集約パケットに含まれる最大パケット数及び集約パケットの最大サイズ等の条件に基づき、周期管理部１６が取り出したパケット群から、１又は複数の集約パケットを生成する。結合部１７が生成する集約パケットのフレーム構成の例を図５に示す。図５の例では、パケットの種別、すなわち通常のパケットか制御情報を伝えるためのパケットかの情報、通常パケットの場合にはパケット識別子とパケット本体、制御情報の場合にもパケット識別子とパケット本体（制御の内容を示す情報）が含まれる。また、ヘッダとしては集約したパケットの数やパケット毎のサイズ、エラー検出のためのハッシュ値、改ざん検出のためのＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）値を付与しても良い。ハッシュ値やＭＡＣ値の計算にはＳＨＡ１、ＣＭＡＣ、ＨＭＡＣなどの一般によく知られた方式を用いればよい。
【００３１】
図６〜８に実施形態１に係るパケット中継処理の一例をフローチャートで示す。図６は第一通信装置３からパケットを受信した際の処理の一例を示すフローチャート、図７は定期的に実行されるパケット集約の処理の一例を示すフローチャート、図８は第二通信装置５からパケットを受信した際の処理の一例を示すフローチャートである。
【００３２】
まず、図６に示される第一通信装置３からパケットを受信した際の処理の一例について説明する。第一受信部１０が第一通信装置３からパケットを受信する（ステップ１００）と、第一受信部１０は受信パケットが制御パケットか通常パケットかを判定する（ステップ１０１）。制御パケットの場合（ステップ１０１：Ｙｅｓ）には、制御パケット生成部１１は制御情報を含む制御パケットを生成して（ステップ１０２）、集約用バッファ１５に登録する（ステップ１０３）。一方で通常のパケットの場合（ステップ１０１：Ｎｏ）には、識別子登録部１２はパケット毎などに識別子を生成して、第一通信装置３のＩＰアドレスなどの識別子情報とともに識別子データベース２２に登録する（ステップ１０４）。この際に通信セッション毎に識別子を割り振る場合には（既に当該通信セッションに識別子が割り当てられている場合には）、新規に識別子を生成せずに既に割り当てられているものを利用する。さらに識別子付与部１３は、パケットに識別子情報を付与する（ステップ１０５）。続いて最大待機時間計算部１４は既に説明した方法などにより最大待機時間を取得して（ステップ１０６）、識別子付与済みのパケットと共に、集約用バッファ１５に登録する（ステップ１０７）。なお、通常パケットと同様に、制御パケットについても、パケット毎に識別子を生成し付与するようにしてもよい。
【００３３】
続いて図７に示されるパケット集約の処理の一例について説明する。周期管理部１６は所定時間が経過したけどうかを判定し（ステップ１１０）、経過していなければ（ステップ１１０：Ｎｏ）、ステップ１１０に戻る。所定時間が経過していれば（ステップ１１０：Ｙｅｓ）、集約用バッファ１５に未処理の送信待ちパケットがあるかどうかを判定して、存在しない場合には（ステップ１１１：Ｎｏ）、第一送信部１８は第二通信装置５に集約パケットを送信する（ステップ１１２）。このとき第一送信部１８は１つもパケットが集約されなかった場合には、何もせず完了しても良い。一方、集約用バッファ１５に未処理の送信待ちパケットがある場合には（ステップ１１１：Ｙｅｓ）、パケットが制御パケットかどうかを判断して制御パケットの場合（ステップ１１３：Ｙｅｓ）には、ステップ１１５に進む。一方制御パケットでない場合（ステップ１１３：Ｎｏ）には、そのパケットが次回の集約実行時に最大待機時間を超えるかどうかを判定し、超えない場合（ステップ１１４：Ｎｏ）にはステップ１１１に戻り、当該パケットは集約を行わずに次のパケットの処理に移る。一方で、最大待機時間を超える場合（ステップ１１４：Ｙｅｓ）、結合部１７は集約パケットにパケットを追加するとともに、集約パケットのヘッダ情報を更新する（ステップ１１５）。なお、周期管理部１６は、集約パケットの集約パケットに含まれる最大パケット数及び集約パケットの最大サイズ等の条件を満たす場合には、次の呼び出し時には最大待機時間を超えないパケットも取り出し（可能な限り待機しているパケットを取り出し）、結合部１７が、集約パケットに取り出されたパケットを追加するようにしてもよい（実施形態２で詳細は説明する）。
【００３４】
最後に図８の第二通信装置５からの集約パケット受信時の処理の一例について説明する。第二受信部１９が第二通信装置５から集約パケットを受信する（ステップ１２０）と、分割部２０は集約パケットに含まれる複数パケットを個々のパケットに分割する（ステップ１２１）。分割部２０は個々のパケットについて、未処理のパケットが存在するかどうかを判定してすべてのパケットの処理が終わった場合（ステップ１２２：Ｎｏ）には、処理を終了する（ステップ１２３）。一方で未処理のパケットが存在する場合（ステップ１２２：Ｙｅｓ）には、識別子取得部２１を呼び出す。識別子取得部２１は、識別子データベース２２に基づき、パケットに含まれるパケットの識別子情報から、対応する第一通信装置３の識別情報を検索して取得する（ステップ１２４）。さらに、第二送信部２３は取得した識別情報に対応する第一通信装置３にパケットを送信し（ステップ１２５）、次のパケットの処理するためにステップ１２２に戻る。
【００３５】
本実施形態によればパケット毎、トランザクションごとの時間制約に応じて柔軟なパケットの集約が可能となる。その際にパケット中継装置４と第一通信装置３間、パケット中継装置４と第二通信装置５間で通信プロトコルが異なる構成であっても、パケット中継装置４と第一通信装置３間の通信プロトコル固有の情報を失わずに通信を行うことができる。これにより、第二通信装置５上で動くアプリケーションに対しては、パケット中継装置４と第一通信装置３間で用いるプロトコルであたかも通信を行っているように見せかけることも可能である。また第二通信装置５側では、第一通信装置３のアドレス等の識別情報を解らずとも、パケット中継装置４からの集約パケットに含まれるパケット識別子情報を含めてパケット中継装置４に返答を返すことにより、パケットの出元である第一通信装置３に返答を返すことができ、パケット中継の存在を意識する必要がない。
【００３６】
（実施形態２）
例えば、最大送信待機時間が迫るまでパケットを集約しないようにしてもよいが、例えば特定の時刻に最大送信待機時間が集中する場合、集約パケットのサイズが極端に大きくなり、ネットワークの輻輳を発生させる可能性がある。これはネットワーク通信時間が極端に長くなる可能性があるため、実施形態２では、ネットワークの輻輳を防ぐ構成の詳細について説明する。
【００３７】
図９は、実施形態２に係るパケット中継装置４の内部構成の一例を示す図である。図９に示す実施形態２に係るパケット中継装置４と、図２に示す実施形態１に係るパケット中継装置４とで、実質的に同一の構成には同一の符号を付し、実質的に同一処理についての説明は適宜省略する。
【００３８】
図９に示すように、実施形態２に係るパケット中継装置４は、輻輳制御部３１を備える。さらに結合部１７は、実施形態１で説明した機能に加えて、輻輳制御部３１と周期管理部１６が取り出したパケットを結合する機能をさらに有する。実施形態１で説明したように、１以上のプロセッサー（処理部）により、輻輳制御部３１を含む各部の各機能を実現することができる。
【００３９】
輻輳制御部３１は、周期管理部１６が取り出したパケットの数が一定数（最大パケット数）を満たさない、もしくはパケットサイズが一定サイズ（合計最大サイズ）を満たさない場合には、集約用バッファ１５から次回の集約時に最大待機時間を超えないパケットであっても取り出す機能を有する。集約用バッファ１５からパケットを取り出す際には、最大待機時間を参照して最大待機時間までの時間が短いパケットから順に取り出しても良いし、パケットに優先度情報が付与されている場合には優先度の高いパケットから順に取り出しても良い。さらに低優先度のパケット送信が遅れるのを防止するため、優先度ごとに取り出すパケット数の上限を決めておき、その数を上限に最大待機時間までの時間が短いパケットから順にパケットを取り出す機能を持たせても良い。また取り出すパケット数やサイズの上限は、輻輳制御部３１がネットワークの負荷状況を観測して動的に変更しても良い。結合部１７は輻輳制御部３１と周期管理部１６の両方が取り出したパケットをすべて結合して集約パケットを生成する。
【００４０】
図１０は実施形態に係るパケット中継装置４におけるパケット集約の処理の一例を図示したものである。第一通信装置３からのパケット受信時、第二通信装置５からのパケット受信時の処理は実施形態１と同等である。周期管理部１６は所定時間が経過したかどうかを判定し（ステップ２００）、経過していなければ（ステップ２００：Ｎｏ）、ステップ２００に戻る。所定時間が経過していれば（ステップ２００：Ｙｅｓ）、集約用バッファ１５に未処理の送信待ちパケットがあるかどうかを判定して、ある場合には（ステップ２０１：Ｙｅｓ）、パケットが制御パケットかどうかを判断して制御パケットの場合（ステップ２０２：Ｙｅｓ）には、ステップ２０４に進む。一方、制御パケットでない場合（ステップ２０２：Ｎｏ）には、そのパケットが次回の集約実行時に最大待機時間を超えるかどうかを判定し、超えない場合（ステップ２０３：Ｎｏ）にはステップ２０１に戻り、当該パケットは集約を行わずに次のパケットの処理に移る。一方で、最大待機時間を超える場合（ステップ２０３：Ｙｅｓ）、結合部１７は集約パケットにパケットを追加するとともに、集約パケットのヘッダ情報を更新する（ステップ２０４）。一方で未処理のパケットが存在しない場合には（ステップ２０１：Ｎｏ）、輻輳制御部は既に集約されたパケットのサイズもしくは数が一定値以下かどうかを判定する。一定値以下でない場合には（ステップ２０５：Ｎｏ）、第一送信部１８は第二通信装置５に集約パケットを送信する（ステップ２０６）。一方で一定値以下の場合には、集約用バッファ１５に未送信のパケットがあるかどうかを判定し、未送信のパケットがない場合（ステップ２０７：Ｎｏ）には第一送信部１８は第二通信装置５に集約パケットを送信する（ステップ２０６）。一方、未送信のパケットがある場合（ステップ２０７：Ｙｅｓ）にはそのパケットを集約するかどうかを判定する。このアルゴリズムは先述のように、最大待機時間までの残り待機時間で未送信パケットをソートして残り待機時間の長さで判断しても良いし、優先度情報から判断しても良いし、優先度情報と最大待機時間までの残り待機時間の両方を考慮して選んでも良い。パケットを集約すると判断した場合（ステップ２１０）には、結合部１７は集約パケットに取り出したパケットを結合して、ヘッダをアップデートし（ステップ２１０）、次のパケットを処理するためにステップ２０５に戻る。
【００４１】
パケットの集約はパケットの細分化による性能低下を防ぐことが可能である一方、１パケットのサイズが大きくなり、他者を含むネットワークの利用状況によってはネットワークの輻輳を起こしやすくすることがある。実施形態２の構成によれば最大待機時間までに余裕がある場合でも、最大待機時間までの残り待機時間、パケットの優先度、及びネットワークの負荷状況の少なくとも一つに応じて前もってパケットを送ることができ、ネットワークの輻輳を防ぐことが可能となる。本構成は通信のリアルタイム性を向上させるために有用である。
【００４２】
（実施形態３）
実施形態１及び２では、最大待機時間は各パケット毎の送信待機時間、もしくはトランザクションごとの合計送信時間から求めていた。一方で時間制約は、第一通信装置３でのパケット送信開始から第二通信装置５での処理を経て、第一通信装置３が返答を受信するまでの時間、もしくは複数の通信からなるトランザクション処理の場合には最初の送信から、最後の受信までの時間として定められることも多い。このような時間制約が与えられた場合には、高精度な最大待機時間を求めることが難しい。実施形態３の構成によれば、第二通信装置５での処理時間や第二通信装置５までの通信時間を考慮して最大待機時間を決めることが可能となり、送信から受信完了までの時間を時間制約として与えることができるようになる。また、返答時間が予測できることで、第二通信装置５からの返答がない際に適切なタイミングでエラーを返したり、再送したりといったことが可能となる。
【００４３】
図１１は実施形態３に係るパケット中継装置４の内部構成の一例を示す図である。図１１に示す実施形態３に係るパケット中継装置４と、図９に示す実施形態２に係るパケット中継装置４とで、実質的に同一の構成には同一の符号を付し、実質的に同一処理についての説明は適宜省略する。
【００４４】
図１１に示すように、パケット中継装置４は、応答時間予測部４１、再要求部４２、エラー生成部４３、及び最大待機時間計算部４４を備える。応答時間予測部４１は、第二通信装置５への送信から第二通信装置５からの返答受信までに要する時間を予測する。再要求部４２は、第二通信装置５に要求の再送信を行う。エラー生成部４３は、第二通信装置５から一定時間以内に返答がない場合に、第一通信装置３に返すエラー情報を生成する。最大待機時間計算部４４は、最大応答時間から応答時間予測部が予想した予測応答時間を引いて最大待機時間を計算する機能を有する。実施形態１、２で説明したように、１以上のプロセッサー（処理部）により、応答時間予測部４１、再要求部４２、エラー生成部４３、及び最大待機時間計算部４４を含む各部の各機能を実現することができる。
【００４５】
応答時間予測部４１は、第二通信装置５への送信から第二通信装置５からの返答受信までに要する時間を予測する。処理時間の予測方法として、処理内容が固定の場合にはあらかじめ応答時間予測部４１に処理時間を設定しておいても良いし、実際にかかった処理時間を実測してもよい。入力データ等により処理内容が変動し、処理時間も変わる場合にはあらかじめ最悪実行時間を計測しておき、応答時間予測部４１に設定しておく方法が考えられる。また、入力データやネットワーク状況から応答時間を予測するテーブルもしくは予測式を用意しておき、それを利用して応答時間を予測しても良い。
【００４６】
最大待機時間計算部４４は、最大応答時間から応答時間予測部４１が予想した予測応答時間を引いて最大待機時間を計算する。第一通信装置３での１回のパケット送信から返答受信までの時間制約が３０ｍｓと与えられ、応答時間予測部４１により第二通信装置５との通信時間を含む処理時間が２０ｍｓと予測された場合には、１０ｍｓが最大待機時間となる。さらに第一通信装置３とパケット中継装置間４の遅延を考慮する場合には、さらに通信時間を最大待機時間から減じても良い。例えば往復で２ｍｓの通信時間がかかる場合には８ｍｓが最大待機時間となる。
【００４７】
またトランザクション単位で時間制約が与えられた場合には、残りのトランザクションに必要な時間を計算して、最大応答時間から減算し、さらに経過時間を減じたものを残りの通信回数で割っても良い。例えば、最大応答時間が２００ｍｓで既に３０ｍｓが経過しており、残りのトランザクションに必要な時間が５０ｍｓ、残り通信回数が６回の場合、（２００−３０−５０）／６＝２０ｍｓが最大待機時間となる。
【００４８】
再要求部４２は、一定時間内に第二通信装置５から返答が来ない場合に、第一送信部１８を介して再度第二通信装置５に対して要求を送信する機能を有する。この送信タイミングとしては、例えば最大待機時間より前にパケットを送信している場合には、最大待機時間（デッドライン）になった際に要求を送信すればよい。これにより時間制約を守ることができる。またリアルタイム制約が緩い場合には、予測応答時間を超えても返答がない場合に要求を再送信する方式、予測応答時間の一定割合を超えても返答がない場合に要求を再送信する方式なども考えられる。要求の再送信先は、最初のリクエストを送った第二通信装置５でも良いし、最初のリクエストを送った第二通信装置５が異常状態にあることを想定して別の第二通信装置５（第三通信装置と呼ぶ）としても良い。また、再要求を１回だけ送っても良いし、複数回送っても良い。なお再要求部４２が再要求を送る要求を決定するにあたり、複数の要求を並列に送信する場合、すなわち第二通信装置５への要求を送信し、送信先の第二通信装置５からの返答を待たずに次の要求を第二通信装置５に投げる場合には、第二通信装置５からの返答があった際にどの要求に対する返答かを識別し、また、返答がない要求を識別する。実施形態１で示したように、第二通信装置５へのパケット送信時に識別子登録部１２によりパケット毎に識別子を付与することができる。第二通信装置５からの返答時にはその識別子がパケットに付与されているので、どの識別子に対する返答があり、どの識別子に対する返答がないのか判断することができる。
【００４９】
エラー生成部４３は、第二通信装置５から一定時間以内に返答がない場合に、第一通信装置３に返すエラー情報を生成する。エラー生成部４３は生成したエラー情報を第二送信部２３を介して第一通信装置３に送信する。エラー生成のタイミングとしては、例えば最大待機時間になった際にエラーを生成すればよい。また、再要求部４２が再要求を送ってから予測応答時間を経過してもまだ返答がない場合にエラーを生成しても良い。返答未受信のパケットの判断には、再要求部４２の説明で述べたとおり、パケットの識別子を用いることができる。
【００５０】
図１２は、実施形態３に係るパケット中継装置４の再要求部４２とエラー生成部４３の処理の一例を示すフローチャートである。第一通信装置３からのパケット受信時、パケット集約時、第二通信装置５からのパケット受信時の処理は実施形態１及び２と同等である。
【００５１】
エラー生成部４３は、周期的に返答未受信のパケットがあるかどうかを確認する。返答未受信のパケットがない場合（ステップ３００：Ｎｏ）には周期処理を終了する。返答未受信のパケットが存在する場合（ステップ３００：Ｙｅｓ）には、エラー生成部４３は返答未受信の各パケットについて、パケット送信からの経過時間が第一規定時間を超えているかどうかを判定する。この方法としては例えば上記で述べたように予測応答時間を用いれば良い。第一規定時間を超えている場合（ステップ３０１：Ｙｅｓ）には、エラー生成部４３はエラー情報を生成してパケットの送信元である第一通信装置３にエラーを返す（ステップ３０４）。一方、第一規定時間を超えていない場合には再要求部４２はパケット送信からの経過時間が第二規定時間を超えているかどうかを判定する。この時間としては上記で述べたようにデッドライン等の情報を用いればよい。第二規定時間を超えている場合(ステップ３０２：Ｙｅｓ)には、再要求部４２は第一送信部１８を介して再度要求を第二通信装置５に送信する。一方、第二規定時間を超えていない場合には周期処理を終了する。
【００５２】
また、実施形態１における図６のステップ１０６では第一通信装置３からのパケット受信時に、最大送信時間などの情報を用いて最大待機時間を計算していた。実施形態３のステップ１０６ではこの計算アルゴリズムとして上記で述べたように最大応答時間と予測応答時間を用いて計算を行う。具体的には最大待機時間計算部４４が最大応答時間から応答時間予測部４１が予想した予測応答時間を引いて最大待機時間を計算する。他の処理の流れは図６のステップと同様である。
【００５３】
実施形態３によれば、第二通信装置５での処理時間や第二通信装置５までの通信時間を考慮して最大待機時間を決めることが可能となり、送信から受信完了までの時間を時間制約として与えることができ、トランザクション全体でのリアルタイム制御が容易になる。また、返答時間が予測できることで、第一通信装置３からの返答がない際に適切なタイミングでエラーを返したり、再送したりといったことも可能となる。
【００５４】
以上、実施形態１、２、３によれば、パケット単位もしくはトランザクション単位で時間制約が存在する場合にもサーバ装置、クライアント装置に手を加えることなく、時間制約を満たすことができるようになる。
【００５５】
なお、上記した実施形態１、２、３に係るパケット中継システムにおける処理はいくつかのソフトウェアによって実行することが可能である。このため、上記処理の手順を実行するいくつかのプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこれらプログラムをパケット中継装置４へインストールして実行するだけで、上記処理を容易に実現することができる。例えば、パケット中継装置４は、上記プログラムをネットワーク経由でダウンロードし、ダウンロードしたプログラムを記憶し、プログラムのインストールを完了することができる。或いは、パケット中継装置４は、上記プログラムを情報記憶媒体から読み取り、読み取ったプログラムを記憶し、プログラムのインストールを完了することができる。
【００５６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００５７】
１…ネットワーク
２…ネットワーク
３…第一通信装置
４…パケット中継装置
５…第二通信装置
１０…第一受信部
１１…制御パケット生成部
１２…識別子登録部
１３…識別子付与部
１４…最大待機時間計算部
１５…集約用バッファ
１６…周期管理部
１７…結合部
１８…第一送信部
１９…第二受信部
２０…分割部
２０…パケット分割部
２１…識別子取得部
２２…識別子データベース
２３…第二送信部
３１…輻輳制御部
４１…応答時間予測部
４２…再要求部
４３…エラー生成部
４４…最大待機時間計算部
【図１】
2018046404.tif 000003
【図２】
2018046404.tif 000004
【図３】
2018046404.tif 000005
【図４】
2018046404.tif 000006
【図５】
2018046404.tif 000007
【図６】
2018046404.tif 000008
【図７】
2018046404.tif 000009
【図８】
2018046404.tif 000010
【図９】
2018046404.tif 000011
【図１０】
2018046404.tif 000012
【図１１】
2018046404.tif 000013
【図１２】
2018046404.tif 000014