(57)【要約】【課題】送信ノード（マスタ）から受信ノード（スレーブ）に元データをパケット分割して送信し、受信ノードから所定の応答データを送信ノードに返す場合に要する時間を短縮する。【解決手段】送信ノードが元データを分割する際に、先頭の分割パケットに、応答に必要な情報である応答情報を含められるようにする。一方、受信ノードでは先頭の分割パケットを受信した時点で、全ての分割パケットから元データを復元するまでに、先頭の分割パケットに含まれている応答情報を読み取り、必要な応答処理を送信ノードに対して行う。先頭の分割パケットのエラーチェックを行うことで、通信の信頼性を確保しつつ応答時間の短縮化を図ることができる。【選択図】図１
2010251911.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードが接続されたネットワークにおいて、送信ノードが受信ノードに対して元データを分割パケットとして送信し、該元データを受信した受信ノードが該元データに対する応答データを必要に応じて該送信ノードに対して送信するシステムにおいて、
前記送信ノードが、
前記元データへの応答に必要な情報である応答情報が先頭の分割パケットに含まれるように元データのフォーマットを設定するフォーマット設定部を備え、
前記受信ノードが、
該先頭の分割パケットを受信した段階で、該分割パケットに含められている前記応答情報を読み取り、該応答情報に基づき、予め定められた応答データ送信処理を実行するデータ応答部を備える
ことを特徴とするノード間データ応答システム。
【請求項２】
複数のノードが接続されたネットワークにおいて、送信ノードが受信ノードに対して元データを分割パケットとして送信し、該元データを受信した受信ノードが該元データに対する応答データを必要に応じて該送信ノードに対して送信するシステムにおいて、
前記送信ノードが、
前記元データへの応答に必要な情報である応答情報が先頭の分割パケットに含まれるように元データのフォーマットを設定するフォーマット設定部を備え、
前記受信ノードが、
全ての分割パケットを受信した後であって全ての分割パケットから元データを再構築する前に、先頭の分割パケットに含められている前記応答情報に基づき、予め定められた応答データ送信処理を実行するデータ応答部を備える
ことを特徴とするノード間データ応答システム。
【請求項３】
前記データ応答部が応答データ送信処理を行う前に、少なくとも前記先頭分割パケットに含まれる応答情報に誤りが無いか否かを検査する先頭エラー検査部
を更に備えることを特徴とする請求項１又は２のいずれかに記載のノード間データ応答システム。
【請求項４】
複数のノードが接続されたネットワークにおいて、送信ノードが受信ノードに対して元データを分割パケットとして送信し、該元データを受信した受信ノードが該元データに対する応答データを必要に応じて該送信ノードに対して送信するシステムに利用するものであって、
送信ノードを、前記元データへの応答に必要な情報である応答情報が先頭の分割パケットに含まれるように元データのフォーマットを設定するフォーマット設定部
として機能させるためのノード間データ応答システム送信ノード用プログラム。
【請求項５】
複数のノードが接続されたネットワークにおいて、送信ノードが受信ノードに対して元データを分割パケットとして送信し、該元データを受信した受信ノードが該元データに対する応答データを必要に応じて該送信ノードに対して送信するシステムに利用するものであって、
送信ノードが前記元データへの応答に必要な情報である応答情報が先頭の分割パケットに含まれるように前記元データを複数の分割パケットに分割するシステムにおいて、
受信ノードを、
該先頭の分割パケットを受信した段階で、該分割パケットに含められている前記応答情報を読み取り、該応答情報に基づき、予め定められた応答データ送信処理を実行する、又は、全ての分割パケットを受信した後であって全ての分割パケットから元データを再構築する前に、先頭の分割パケットに含められている前記応答情報に基づき、予め定められた応答データ送信処理を実行するデータ応答部
として機能させるためのノード間データ応答システム受信ノード用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ通信システムにおけるノード間のデータ応答方法に関する。より詳細には、データ通信ネットワークにおいて、あるノードから分割パケットの形態でデータが送信され、該パケットを受信したノードから応答パケットが送信されるような場合に、データ応答の時間短縮を図ることが可能なデータ応答方法に関する。
【背景技術】
【０００２】
コンピュータ技術の止むことのない発展およびネットワークシステムの一般化とともに、通信ネットワーク技術の向上を目的とした研究が絶え間なく行われており、様々な技術が開示されている（例えば特許文献１参照）。
【０００３】
マスタ−スレーブ方式やトークンバスなどを利用したコンピュータ通信システムにおいては、他のノードからデータを受信したことをきっかけとして、自ノード（すなわち、データを受信したノードのこと）がデータを送信（転送を含む）することがよくある。
このとき、IPフラグメンテーションなどによってデータが分割される場合には、自ノードでは例えば以下のようなステップで処理が行われる。
【０００４】
ステップ１：送信元のノードから送信された、分割されたパケット（これを分割パケットと呼ぶ）を順次受信する。
ステップ２：各分割パケットごとにチェックサムを検査することで、データの信頼性を確認する。
ステップ３：全ての分割パケットの受信が完了すると、全体を結合し、元のデータパケット（元データパケット）を復元する。
ステップ４：元データパケットのチェックサムを検査することで、元データパケット全体の信頼性を確認する。
ステップ５：元データパケットのフォーマットを検査し、エラーが無いことを確認する。
ステップ６：元データパケットの内容に基づき、応答を行うべきか否かを判断する。
ステップ７：前記ステップ６において応答が必要と判断した場合、所定のデータを送信する。
ステップ８：元データパケットに含まれるデータのうち、必要な情報を自ノードの記憶手段に保存する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2006-236391号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一つのネットワークに多数のノードが接続されており、各ノードに対して順次何らかの問い合わせ処理を行う場合などには、各ノードの応答時間をできるだけ短くすることが要求される。しかしながら、各ノードの処理速度を上げたり、ネットワークの通信速度を上げたりすることには、かなりのコストが掛かるという問題がある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために成された本発明に係るノード間データ応答システムは、
複数のノードが接続されたネットワークにおいて、送信ノードが受信ノードに対して元データを分割パケットとして送信し、該元データを受信した受信ノードが該元データに対する応答データを必要に応じて該送信ノードに対して送信するシステムにおいて、
前記送信ノードが、
前記元データへの応答に必要な情報である応答情報が先頭の分割パケットに含まれるように元データのフォーマットを設定するフォーマット設定部を備え、
前記受信ノードが、
該先頭の分割パケットを受信した段階で、該分割パケットに含められている前記応答情報を読み取り、該応答情報に基づき、予め定められた応答データ送信処理を実行するデータ応答部を備える
ことを特徴とする。
【０００８】
本発明に係るノード間データ応答システムは、次のような知見に基づいてなされた。即ち、従来のデータ応答方式では、応答を行うべきか否かの判断（上記ステップ６）を実行するまでに、全ての分割パケットを順次受信し（上記ステップ１）、各分割パケットのチェックサムを検査し（上記ステップ２）、元のデータパケットを復元し（上記ステップ３）、元データパケットのチェックサムを検査する（上記ステップ４）という４つのステップを実行しなければならなかった。とりわけ、元データパケットのサイズが大きい場合には、分割パケットの数が多くなり、必然的にステップ１及びステップ２に時間がかかる。
そこで、送信ノードから元データを分割パケットに分割して送信する際に、元データへの応答要否及び応答に必要な情報である応答情報が、先頭の（すなわち、最初に送出される）分割パケットに含められるようにする。受信ノード側では、先頭の分割パケットを受信しただけで、つまり全ての分割データを受信して元データを復元することなく、まず、必要な応答処理を実行する。これによって、応答までに要する時間の大幅な短縮を行うことができる。
なお、一般的に、分割パケットは送信側から送信された順に受信側で受信されるとは限らない。とはいえ、本発明の構成によれば、先頭の分割パケットが最後に受信された場合（この場合は応答時間が短縮されない）以外は、応答に要する時間が短縮される。
【０００９】
ネットワークの種類によっては、上りと下りのデータを同時に送信することができない（半二重通信）。この場合には、データ応答部が、全ての分割パケットを受信した後であって、全ての分割パケットから元データを再構築する前に、先頭の分割パケットに含められている前記応答情報に基づき、予め定められた応答データ送信処理を実行するようにすれば良い。
【００１０】
また、本発明に係るノード間データ応答システムでは、処理の信頼性を確保するために、データ応答部が応答データ送信処理を行う前に、少なくとも前記先頭分割パケットに含まれる応答情報に誤りが無いか否かを検査する先頭エラー検査部を更に設けるのが望ましい。
【００１１】
なお、本発明において「ノード」はサーバ、コンピュータ、ハブ、リンクなどに限定されることはなく、通信機能を備えたあらゆる機器を含む。
また、本発明において「パケット」は、IPパケットに限らず、フレームやセグメント等の、コンピュータ間の通信に使用される、データ送信に用いられるあらゆる単位を包含するものとする。
【発明の効果】
【００１２】
本発明に係るデータ応答システムによれば、複数送られてくる分割パケットのうち、最初のものを受信した時点で応答を行うことが可能となる。従って、元データのサイズにかかわりなく、また、受信ノードのＣＰＵの処理能力に大きく依存することなく、迅速に必要な応答処理を行うことが可能となる。よって、システム全体としての処理速度を上昇させることが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係るデータ応答システムの一実施形態を示す模式図。
【図２】本実施形態のおけるマスタ／スレーブ間の伝送フォーマットの模式図。
【図３】分割パケットの例。
【図４】スレーブにおける処理の一例を示すフローチャート（全二重ネットワークの場合）。
【図５】スレーブにおける処理の一例を示すフローチャート（半二重ネットワークの場合）。
【発明を実施するための形態】
【００１４】
以下、本発明に係るノード間データ応答システムについて、図面を参照しつつ詳細に説明する。図１は、本発明に係るノードデータ応答システムの一実施形態を示す模式図である。
【００１５】
図１におけるノードデータ応答システム１は、Ethernet（登録商標）UDP/IPで通信を行うマスタ・スレーブ型の通信システムを採用している。１台のマスタ２（本発明における送信ノード）にｎ台のスレーブ４、６、８、…（本発明における受信ノード）を接続して１：ｎの通信を行う。このとき、
・マスタ２からｉ番目のスレーブに対して元データを送信する。
・元データを受信したｉ番目の受信ノードがマスタ２に対して応答データを送信する。
の２つのシーケンスがスレーブの台数分（ｎ）だけ繰り返される。
【００１６】
マスタ２には送信ノード用プログラムがインストールされており、マスタ２のＣＰＵがこの送信ノード用プログラムを実行することにより、フォーマット設定部３がソフトウエア的に具現化される。
一方、各スレーブ４、７、８、…には、受信ノード用プログラムがインストールされており、各スレーブのＣＰＵがこの受信ノード用プログラムを実行することにより、データ応答部５、及び先頭エラー検査部６がソフトウエア的に具現化される。
【００１７】
データ通信を行う場合、通常、元データが一定のサイズより大きい場合にはそれを所定のサイズに分割し、それぞれが所定のフォーマットを有する複数の分割パケットが作成される。パケットの分割方法は通常、予め定められている通信プロトコルの仕様によって定められている。そこで、本発明においては、フォーマット設定部３が、元データが分割された結果として作成される複数の分割パケットのうち、先頭の分割パケットに元データへの応答に必要な情報である応答情報が含まれるように、元データのフォーマットを設定する（元データの形式を整える）。
応答情報は具体的には、スレーブからマスタに対するデータ送信の要否、応答データの送信先（送信元ノード番号）、要求するデータの内容、等である。
【００１８】
ここで、マスタ／スレーブ間の伝送フォーマット（ＵＤＰパケット）は図２に示すように規定されるものとする。
すなわち、送信元ポート番号、送信先ポート番号、ＵＤＰデータ長、ＵＤＰチェックサムから成るＵＤＰヘッダ部と、送信元ノード番号（マスタノード番号）、送信先ノード番号（スレーブノード番号）、コマンド番号、マスタからスレーブへの伝送データ、から成るＵＤＰデータ部から成るＵＤＰパケットである。
本実施形態の場合、送信元ノード番号、送信先ノード番号、コマンド番号が応答情報に相当し、コマンド番号によってデータ送信の要否及び応答データの内容が指示される。
【００１９】
本実施例では、元データが図３に示すように、[A]、[B]、[C]の３つの分割パケットに分割されるものとする。それぞれの分割パケットがEthernetヘッダ部、データ部、エラーチェック用のＦＣＳ（Frame Check Sequence）部の３領域から構成されるが、このうち、先頭の分割パケットである分割パケット[A]には、フォーマット設定部３の上述した働きの結果、データ部に応答情報として、送信元ノード番号、送信先ノード番号、コマンド番号が含められる。分割パケット[A]のデータ部には伝送データ（即ちデータの本体）も含められている。一方、分割パケット[B]、[C]のデータ部には伝送データのみが含められている。マスタ２がスレーブ４に対して分割パケットを送信する場合には、分割パケット[A]、[B]、[C]の順に、ネットワークＮに対して送出する。
【００２０】
以下、スレーブ４における処理の例を説明する。まず、ネットワークＮが上りと下りのデータを同時に送信することができる、いわゆる全二重通信が可能なネットワークである場合について説明する。
【００２１】
［全二重通信ネットワークの場合］
次に、スレーブ４における処理の一例をフローチャートである図４を参照しつつ説明する。分割パケット[A]を受信すると（ステップＳ１１）、先頭エラー検査部６は直ちに、分割パケット[A]に含められているＦＣＳに基づき、チェックサムによる分割パケット[A]のエラー検査を実行する（ステップＳ１１）。このときエラー検査部６は、分割パケット[A]全体のエラー検査を実行しても良いが、応答情報のみを対象としたエラー検査を行ってもよい。後者には処理時間を短縮できるというメリットがある。
【００２２】
先頭エラー検査部６の検査の結果、分割パケット[A]が正常であることが確認されると（ステップＳ１２でYes）、データ応答部５は分割パケット[A]に含められている送信元ノード番号、送信先ノード番号、コマンド番号を読み取り（ステップＳ１３）、この応答情報に基づき、必要なデータをマスタ２に対して送信する（ステップＳ１４）。
前記ステップＳ１２において分割パケット[A]にエラーが検出された場合には（ステップＳ１２でNo）、分割パケット[A]を破棄し、処理を終了する。又はマスタ２に対してエラー報告やデータ再送要求を送信することもできる。
【００２３】
その後、スレーブ４は、分割パケット[B]、[C]を受信し、それぞれの分割パケットのエラーチェックを実行する（ステップＳ１５）。分割パケット[B]及び[C]が正常であれば、全ての分割パケット[A]、[B]、[C]を結合し、元データを復元する。また、復元された元データのエラーチェックを行う（ステップＳ１６）。エラーが検出されなかった場合には、元データのうち、所定のデータをスレーブ４の記憶領域に保存し（ステップＳ１７）、処理が終了する。
【００２４】
なお、図４には示していないが、ステップＳ１５又はＳ１６においてエラーが検出された場合には、処理を終了するとともに、マスタ２に対してエラー報告やデータ再送要求を送信する。
【００２５】
スレーブ４から応答データを受信したマスタ２は、対象を次のスレーブ７に移し、該スレーブ７に対しても同様に、分割パケットを、分割パケット[A]、[B]、[C]の順に送出する。スレーブ７も、スレーブ４と同様の処理を行う。
【００２６】
以上のように、本実施例に係るノード間データ応答システム１では、分割パケットを全て受信し、各分割パケットのエラーチェックを行い、分割パケットから元データを復元し、元データのエラーチェックを行うという処理を行う前に、マスタに対して応答データを送信する処理が行われる。よって、マスタに対して必要な応答データを送信する処理の短時間化が図られる。
【００２７】
［半二重通信ネットワークの場合］
次に、ネットワークＮが、上りと下りのデータを同時に送信することが不可能な、いわゆる半二重通信のネットワークである場合の、スレーブ４の処理の例をフローチャートである図５を参照しつつ説明する。半二重通信ネットワークの場合でも、マスタ２の動作は上述した通りである。
【００２８】
まず、スレーブ４において、全ての分割パケット[A]、[B]、[C]を受信する（ステップＳ２１）。次に、先頭エラー検査部６が、先頭の分割パケットである分割パケット[A]のみのエラーチェックを行う（ステップＳ２２）。エラーが検出された場合には（ステップＳ２２のNo）全ての分割パケットを破棄し、処理を終了する。同時に、マスタ２に対してエラー報告やデータ再送要求を送信することもできる。
【００２９】
分割パケット[A]が正常であった場合（ステップＳ２２でYes）、データ応答部５は分割パケット[A]に含められている送信元ノード番号、送信先ノード番号、コマンド番号を読み取り（ステップＳ２３）、この応答情報に基づき、必要なデータをマスタ２に対して送信する（ステップＳ２４）。
【００３０】
次いでスレーブ４は残された分割パケットである分割パケット[B]、[C]のエラーチェックを実行し（ステップＳ２５）、エラーが検出されなかった場合には、全ての分割パケット[A]、[B]、[C]を結合し、元データを復元する。また、復元された元データのエラーチェックを行う（ステップＳ２６）。エラーが検出されなかった場合には、元データのうち、所定のデータをスレーブ４の記憶領域に保存し（ステップＳ２７）、処理が終了する。
【００３１】
なお、図５には示していないが、ステップＳ２５又はＳ２６においてエラーが検出された場合には、処理を終了するとともに、マスタ２に対してエラー報告やデータ再送要求を送信する。
【００３２】
スレーブ４から応答データを受信したマスタ２は、対象を次のスレーブ７に移し、該スレーブ７に対しても同様に、分割パケットを、分割パケット[A]、[B]、[C]の順に送出する。また、スレーブ７も、スレーブ４と同様の処理を行う。
【００３３】
このように、半二重通信ネットワークにおいて、本発明に係るノード間データ応答システム１は、元データを復元する前に、マスタに対して応答データを送信する処理が行われる。よって、マスタに対して必要な応答データを送信する処理の時間短縮化が図られる。
【００３４】
なお、上記の例では、ステップＳ２１で全ての分割パケットを受信した後に先頭の分割パケット[A]のエラーチェックを行っていた（ステップＳ２２）が、先頭の分割パケット[A]を受信した段階でそのエラーチェックを実行し、応答情報を取得し、応答データをマスタに対して送信することもできる（ステップＳ２２〜Ｓ２４）。他の分割パケット[B]及び[C]の受信は背後で実行すれば良い。
【００３５】
上記実施例は本発明の一例にすぎず、本発明の趣旨の範囲で適宜変形、修正、追加等を行っても本願請求の範囲に包含されることは当然である。
【００３６】
本発明においては、送信ノードと受信ノードがシステム内で予め固定されている必要は必ずしもない。他ノードに対してデータを送信するノードが送信ノードとして機能し、データを受信するノードが受信ノードとして機能する。
【００３７】
また、受信ノードから送信ノードに対して応答データを送信する際に、データが所定のサイズよりも大きい場合には、これもパケット分割して送信されるのが一般的である。このような場合には、分割されたパケットのうち、先頭のパケットに、データ本体以外の各種情報を含めるようにするとよい。
この構成では、送信ノードが複数の受信ノードに関して順次同様の元データ送信を行う場合に、ある受信ノードから帰ってきた応答データの先頭のパケットを受信した段階で、次の対象とする受信ノードに対して元データを送信することができる。よって、送信ノードの処理においても、システム全体の処理時間短縮を図ることが可能となる。
【符号の説明】
【００３８】
１…ノード間データ応答システム
２…送信ノード
３…フォーマット設定部
４、７、８…受信ノード
５…データ応答部
６…先頭エラー検査部
Ｎ…データ通信ネットワーク
【図１】
2010251911.tif 000003
【図２】
2010251911.tif 000004
【図３】
2010251911.tif 000005
【図４】
2010251911.tif 000006
【図５】
2010251911.tif 000007