(57)【特許請求の範囲】
【請求項１】
ホストに対して上位Ｉ／Ｆ制御部を介して接続されると共に、インタフェースに対して下位Ｉ／Ｆ制御部を介して接続されている通信制御部により、送信すべきコマンドおよびデータに、コマンド種別を含むヘッダを付加して、インタフェースを介して他の通信装置にパケット転送を行なう通信装置であって、
パケット送信の際に、作成するヘッダに対して再送回数，時刻情報およびシーケンス番号を追加する電文制御部と、
パケット受信の際に、受信パケットに含まれるヘッダの再送回数，時刻情報およびシーケンス番号をチェックする電文チェック部と、を備え、
上記電文チェック部が、受信したＲｅｑｕｅｓｔパケットのヘッダを、メモリのＲｅｃｅｉｖｅ＿Ｈｄｒに既に受信されたＲｅｑｕｅｓｔパケットが格納されている場合に、当該既受信Ｒｅｑｕｅｓｔパケットのヘッダと比較して、その再送回数に基づいてパケットロストの判定を行なうことを特徴とする通信装置。
【請求項２】
上記電文チェック部が、パケットロストなしと判定したとき、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信することを特徴とする請求項１に記載の通信装置。
【請求項３】
上記電文チェック部が、受信したパケットのヘッダの再送回数が、既に受信したパケットのヘッダより大きい場合に、パケットロストありと判定して、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信すると共に、パケットロスト発生の旨を通信制御部またはホストに注意事象報告を通知することを特徴とする請求項１に記載の通信装置。
【請求項４】
互いにインタフェースにより接続された複数個の通信装置を含んでいて、各通信装置が、ホストに対して上位Ｉ／Ｆ制御部を介して接続されると共に、インタフェースに対して下位Ｉ／Ｆ制御部を介して接続されている通信制御部により、送信すべきコマンドおよびデータに、コマンド種別を含むヘッダを付加して、インタフェースを介して他の通信装置にパケット転送を行なう通信システムにおいて、
各通信装置が、パケット送信の際に、作成するヘッダに対して再送回数，時刻情報およびシーケンス番号を追加する電文制御部と、パケット受信の際に、受信パケットに含まれるヘッダの再送回数，時刻情報およびシーケンス番号をチェックする電文チェック部と、を備え、
各通信装置の電文チェック部が、受信したＲｅｑｕｅｓｔパケットのヘッダを、メモリのＲｅｃｅｉｖｅ＿Ｈｄｒに既に受信されたＲｅｑｕｅｓｔパケットが格納されている場合に、当該既受信Ｒｅｑｕｅｓｔパケットのヘッダと比較して、その再送回数に基づいてパケットロストの判定を行なうことを特徴とする通信システム。
【請求項５】
各通信装置の電文チェック部が、パケットロストなしと判定したとき、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信することを特徴とする請求項４に記載の通信システム。
【請求項６】
各通信装置の電文チェック部が、受信したパケットのヘッダの再送回数が、既に受信したパケットのヘッダより大きい場合に、パケットロストありと判定して、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信すると共に、パケットロスト発生の旨を通信制御部またはホストに注意事象報告を通知することを特徴とする請求項４に記載の通信システム。
【請求項７】
ホストに対して上位Ｉ／Ｆ制御部を介して接続されると共に、インタフェースに対して下位Ｉ／Ｆ制御部を介して接続されている通信制御部により、送信すべきコマンドおよびデータに、コマンド種別を含むヘッダを付加して、インタフェースを介して他の通信装置にパケット転送を行なう通信装置の同期転送における障害検出プログラムであって、
パケット送信の際に、作成するヘッダに対して再送回数，時刻情報およびシーケンス番号を追加する第一の手順と、パケット受信の際に、受信パケットに含まれるヘッダの再送回数，時刻情報およびシーケンス番号をチェックする第二の手順と、をコンピュータに実行させ、
上記第二の手順にて、受信したＲｅｑｕｅｓｔパケットのヘッダを、メモリのＲｅｃｅｉｖｅ＿Ｈｄｒに既に受信されたＲｅｑｕｅｓｔパケットが格納されている場合に、当該既受信Ｒｅｑｕｅｓｔパケットのヘッダと比較して、その再送回数に基づいてパケットロストの判定を行なうことを特徴とする同期転送における障害検出プログラム。
【請求項８】
上記第二の手順にて、パケットロストなしと判定したとき、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信することを特徴とする請求項７に記載の同期転送における障害検出プログラム。
【請求項９】
上記第二の手順にて、受信したパケットのヘッダの再送回数が、既に受信したパケットのヘッダより大きい場合に、パケットロストありと判定して、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信すると共に、パケットロスト発生の旨を通信制御部またはホストに注意事象報告を通知することを特徴とする請求項７に記載の同期転送における障害検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムにおいて通信装置間で同期転送を行なう際に障害を検出するようにした通信装置，通信システムおよび障害検出プログラムに関する。
【背景技術】
【０００２】
従来、通信システムにおける通信装置は、例えば図４に示すように、構成されている。
図４において、通信装置９００は、ホスト９１０配下にて、電文（データ）の送受信のために、図示しない他の通信装置とインタフェース９２０を介して互いに接続されている。
上記通信装置９００は、上位Ｉ／Ｆ制御部９３０と、下位Ｉ／Ｆ制御部９４０と、通信制御部９５０と、を設けてある。
【０００３】
このような構成の通信装置９００によれば、伝送すべきコマンドおよびデータは、電文としてホスト９１０から上記上位Ｉ／Ｆ制御部９３０を介して通信制御部９５０で受信される。
そして、上記通信制御部９５０は、上記コマンドおよびデータにヘッタを付加して、下位Ｉ／Ｆ制御部９４０からインタフェース９２０を介して、他の通信装置に対してパケットを転送する。
【０００４】
ところで、このような通信装置９００においては、通信装置９００間のパケット転送がすべて失敗した場合、あるいはインタフェース９２０上のパケット送受信を制御する下位Ｉ／Ｆ制御部９４０が致命的な障害を検出した場合には、ホスト９１０は、異常を検出するようになっている。
このため、いずれかの通信経路上にてパケットロストが発生したとしても、再送によりパケット送受信が成功している場合には、通信経路上の異常を検出することは困難であった。
【０００５】
また、パケットロストの多発による通信性能の低下が発生したとしても、原因箇所を特定する情報が殆どないことから、復旧に時間がかかってしまい、通信業務に多大な影響を与えてしまうことになる。
【０００６】
さらに、二重受信抑止のために通信装置９００間で採用されている方式の一つにシーケンス番号による通信制御が知られている。
これは、コマンドおよびデータをパケット転送する度に、パケットに付加するヘッダ内のシーケンス部の値を「＋１」して転送する。即ち、同じパケットを再送している場合には、シーケンス部の値は更新されず、同じ値のままである。これにより、受信側でシーケンスチェックを行なうことにより、二重受信が抑止され得るようになっている。
【０００７】
しかしながら、このようなシーケンス番号による通信制御方式は、パスが活性化された場合には、ある程度有効に機能するが、通信装置９００間で同期が取れていない活性化中においては、すれ違い等により二重受信したとしても、シーケンスチェックが機能しないため、上位に同じデータを転送してしまう可能性があった。
【０００８】
具体的には、このような上記通信装置９００の動作について、図５〜図８のフローチャートを参照して説明する。
図５は、上記通信装置９００の正常な立上げ動作を示している。
まず、双方の通信装置９００及びホスト９１０がインタフェース９２０に接続され、起動している状態において、ステップＡ１にて、送信側のホスト９１０から送信側の通信装置９００に対して、活性化要求が送信されると、ステップＡ２にて、その通信制御部９５０が、コマンド処理を実行して、Ｒｅｑｕｅｓｔパケットを受信側の通信装置９００に対してインタフェース９２０を介して送信する。
【０００９】
これを受けて、受信側の通信装置９００は、ステップＡ３にて、受信側のホスト９１０に対して、活性化要求を出力すると共に、ステップＡ４にて、応答パケットを送信側の通信装置９００に対してインタフェース９２０を介して送信する。
この応答パケットを受信して、送信側の通信装置９００は、ステップＡ５にて、送信側のホスト９１０に対して、活性化が正常に行なわれた旨の終了報告を出力する。
【００１０】
続いて、ステップＡ６にて、受信側のホスト９１０から受信側の通信装置９００に対して、活性化要求が送信されると、ステップＡ７にて、その通信制御部９５０が、Ｒｅｑｕｅｓｔパケットを送信側の通信装置９００に対してインタフェース９２０を介して送信する。
これを受けて、送信側の通信装置９００は、ステップＡ８にて、送信側のホスト９１０に対して、活性化要求を出力すると共に、ステップＡ９にて、応答パケットを受信側の通信装置９００に対してインタフェース９２０を介して送信する。
【００１１】
この応答パケットを受信して、受信側の通信装置９００は、ステップＡ１０にて、送信側のホスト９１０に対して、活性化が正常に行なわれた旨の終了報告を出力する。
以上で、正常時の立上り動作が完了することになる。
【００１２】
次に、図６は、上記通信装置９００の受信側の通信装置９００が起動していない状態での立上げ動作を示している。
まず、一方（送信側）の通信装置９００及びホスト９１０がインタフェース９２０に接続され、起動している状態において、ステップＢ１にて、送信側のホスト９１０から送信側の通信装置９００に対して、活性化要求が送信されると、ステップＢ２にて、その通信制御部９５０が、Ｒｅｑｕｅｓｔパケットを受信側の通信装置９００に対してインタフェース９２０を介して送信する。
【００１３】
ここで、受信側の通信装置９００がインタフェース９２０に接続されず、または起動していない状態では、応答パケットを受信することができない。
このため、送信側の通信装置９００は、ステップＢ３にて、所定時間Ｔ１（活性化要求の転送後、相手無応答と判断する時間）経過後に、ステップＢ４にて、再び活性化要求を送信する。
その後、上記ステップＢ３及びＢ４を所定回数繰り返した後、送信側の通信装置９００は、ステップＢ５にて、所定時間Ｔ１経過後に、ステップＢ６にて、送信側のホスト９１０に対して、活性化に異常がある旨の終了報告を出力する。
以上で、異常時の立上り動作が完了することになる。
【００１４】
次に、図７は、上記通信装置９００の受信側の通信装置９００と活性化状態が不一致の場合の立上げ動作時の動作を示している。
まず、一方（送信側）の通信装置９００及びホスト９１０がインタフェース９２０に接続され、起動している状態において、ステップＣ１にて、送信側のホスト９１０から送信側の通信装置９００に対して、活性化要求が送信されると、ステップＣ２にて、その通信制御部９５０が、Ｒｅｑｕｅｓｔパケットを受信側の通信装置９００に対してインタフェース９２０を介して送信する。
【００１５】
そして、受信側からの応答パケットを待って、送信側の通信装置９００は、ステップＣ３にて、所定時間Ｔ１（活性化要求の転送後、相手無応答と判断する時間）経過後に、ステップＣ４にて、再びＲｅｑｕｅｓｔパケットを送信する。
その後、上記ステップＣ３及びＣ４を所定回数繰り返す前に、ステップＣ５にて、受信側のホスト９１０から受信側の通信装置９００に対して、活性化要求が送信されると、ステップＣ６にて、その通信制御部９５０が、Ｒｅｑｕｅｓｔパケットを送信側の通信装置９００に対してインタフェース９２０を介して送信する。
【００１６】
これを受けて、送信側の通信装置９００は、ステップＣ７にて、送信側のホスト９１０に対して、活性化要求を出力すると共に、ステップＣ８にて、Ｒｅｃｅｉｖｅ＿Ｒｅａｄｙを受信側の通信装置９００に対してインタフェース９２０を介して送信する。
このＲｅｃｅｉｖｅ＿Ｒｅａｄｙを受信して、受信側の通信装置９００は、ステップＣ９にて、送信側のホスト９１０に対して、活性化が正常に行なわれた旨の終了報告を出力する。
【００１７】
そして、ステップＣ１０にて、直前のＲｅｑｕｅｓｔパケットを送信した後、所定時間Ｔ１経過後に、送信側の通信装置９００は、ステップＣ１１にて、送信側のホスト９１０に対して、活性化に異常がある旨の終了報告を出力する。
以上で、立上り動作が完了することになるが、この場合、双方の通信装置９００において、活性化状態が、送信側で異常となり、受信側で制御となり、相互に不一致の状態になってしまう。
【００１８】
さらに、図８は、上記通信装置９００の二重受信が発生する立上げ動作時の動作を示している。
まず、一方（送信側）の通信装置９００及びホスト９１０がインタフェース９２０に接続され、起動している状態において、ステップＤ１にて、送信側のホスト９１０から送信側の通信装置９００に対して、活性化要求が送信されると、ステップＤ２にて、その通信制御部９５０が、Ｒｅｑｕｅｓｔパケットを受信側の通信装置９００に対してインタフェース９２０を介して送信する。
【００１９】
そして、受信側からの応答パケットを待って、送信側の通信装置９００は、ステップＤ３にて、所定時間Ｔ１（活性化要求の転送後、相手無応答と判断する時間）経過後に、ステップＤ４にて、再び活性化要求を送信する。
その後、再び上記ステップＤ３及びＤ４を繰り返したとき、受信側の通信装置９００が、このＲｅｑｕｅｓｔパケットを受信して、ステップＤ５にて、受信側のホスト９１０に対して、活性化要求を出力すると共に、ステップＤ６にて、応答パケットを送信側の通信装置９００に対してインタフェース９２０を介して送信する。
【００２０】
その後、ステップＤ７にて、受信側のホスト９１０から受信側の通信装置９００に対して、活性化要求が送信されると、ステップＤ８にて、その通信制御部９５０が、Ｒｅｑｕｅｓｔパケットを送信側の通信装置９００に対してインタフェース９２０を介して送信する。
これを受けて、送信側の通信装置９００は、ステップＤ９にて、送信側のホスト９１０に対して、活性化要求を出力すると共に、ステップＤ１０にて、応答パケットを受信側の通信装置９００に対してインタフェース９２０を介して送信する。
この応答パケットを受信して、受信側の通信装置９００は、ステップＤ１１にて、送信側のホスト９１０に対して、活性化が正常に行なわれた旨の終了報告を出力する。
【００２１】
ここで、ステップＤ６で送信された応答パケットに関して、ステップＤ１２にて、パケットロストが発生すると、送信側の通信装置９００は、上記応答パケットを受信できないため、直前のＲｅｑｕｅｓｔパケットを送信した後所定時間Ｔ１経過後に、送信側の通信装置９００は、ステップＤ１３にて、再び受信側の通信装置９００に対して、Ｒｅｑｕｅｓｔパケットを出力する。これにより、受信側の通信装置９００は、ステップＤ１４にて、受信側のホスト９１０に対して、活性化要求を出力する。
このようにして、受信側のホスト９１０に対して、活性化要求が二回出力されることになり、活性化が失敗することになる。
【００２２】
これに対して、例えば特許文献１においては、磁気ディスク装置におけるデータ記録再生の際のリトライ方式が開示されている。
この構成においては、予めリトライ方法およびリトライ回数をコマンドに付加しておき、磁気ディスク装置は、データ記録または再生を行なう前に、コマンドに付加されたリトライ方法およびリトライ回数を解釈して、それに基づいてコマンドを実行し、データの記録または再生を行なうようになっている。
【００２３】
また、特許文献２においては、送信すべきパケットのヘッダに通し番号と時刻情報を付加して、これらのパケットを通し番号の小さい順に蓄積して、複数のパケットから成る一つのストリームを構成するようにした、パケットストリームの分割・結合方法が開示されている。
【００２４】
さらに、特許文献３においては、受信側で再送要求すべきパケットがあるかどうかを判定して、当該パケットの再送要求信号を出力する際に、その判定結果を保持するようにした、マルチメディアコンテンツ受信装置が開示されている。
【００２５】
また、特許文献４においては、発信するデータを特定する情報と発信するデータに付加されたヘッダの情報を対にして、各発信毎に記憶するようにした、データ転送装置が開示されている。
【特許文献１】特開２０００−１９４５１１号
【特許文献２】特開２０００−２９９７０２号
【特許文献３】特開２００５−０４５４６９号
【特許文献４】特開平０２−０７９６４０号
【発明の開示】
【発明が解決しようとする課題】
【００２６】
しかしながら、上述した特許文献１によるリトライ方式においては、指定されたリトライ方法およびリトライ回数に基づいて、コマンドを実行するようになっているが、パケットロストや二重受信を回避するように構成されておらず、本発明とは目的および構成が異なる。
【００２７】
また、上述した特許文献２によるパケットストリームの分割・結合方法においては、ヘッダに受信した時刻情報が付加されているが、この時刻情報は、ストリームの再生の際に、パケット間インターバルを再現するために利用されており、二重受信を回避するためには利用されていない。
【００２８】
さらに、上述した特許文献３によるマルチメディアコンテンツ受信装置においては、受信側で再送要求信号を出力したとき、この再送要求信号や再送応答信号がパケットロストした場合にも、正しく再送が行なわれるようになっているが、二重受信を回避するようには構成されていない。
【００２９】
また、上述した特許文献４によるデータ転送装置においては、同一データが再送される場合であっても、別発信であることから、発信するデータを特定する情報も異なることになり、二重受信を回避するようには構成されていない。
【００３０】
本発明は、上記の問題を解決すべくなされたものであり、パケットロストや二重受信等の通信障害が迅速に検出され得るようにした通信装置，通信システムおよび同期転送における障害検出プログラムの提供を目的とする。
【課題を解決するための手段】
【００３１】
この目的を達成するため、本発明の通信装置は、ホストに対して上位Ｉ／Ｆ制御部を介して接続されると共に、インタフェースに対して下位Ｉ／Ｆ制御部を介して接続されている通信制御部により、送信すべきコマンドおよびデータに、コマンド種別を含むヘッダを付加して、インタフェースを介して他の通信装置にパケット転送を行なう通信装置であって、パケット送信の際に、作成するヘッダに対して再送回数，時刻情報およびシーケンス番号を追加する電文制御部と、パケット受信の際に、受信パケットに含まれるヘッダの再送回数，時刻情報およびシーケンス番号をチェックする電文チェック部と、を設けた構成としてある。
【００３２】
同期転送における通信装置をこのような構成とすると、パケット送信の際に、送信側通信装置の通信制御部が、電文制御部にて作成するヘッダに対して再送回数，時刻情報およびシーケンス番号を追加して、このヘッダと共にコマンドおよびデータをパケット転送する。
したがって、受信側通信装置の通信制御部が、このパケットを受信する際に、電文チェック部にて受信パケットに付加されたヘッダの再送回数，時刻情報およびシーケンス情報に基づいて、受信パケットをチェックするので、パケットロストまたは二重受信を回避することができる。
【００３３】
また、本発明の通信装置は、上記電文チェック部が、受信したパケットのヘッダを、メモリに退避されている既に受信したパケットのヘッダと比較して、その再送回数に基づいてパケットロストの判定を行なう構成としてある。
同期転送における通信装置をこのような構成とすると、受信パケットのヘッダの再送回数が、メモリから読み出した既受信パケットのヘッダの再送回数より大きい場合には、パケットロスト発生と判定し、また同じ場合には、パケットロストなしと判定することができる。
【００３４】
また、本発明の通信装置は、上記電文チェック部が、パケットロストなしと判定したとき、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信する構成としてある。
同期転送における通信装置をこのような構成とすると、送信元の通信装置では、受信した応答パケットを電文チェック部でチェックすることにより、通信制御部が、正常にパケット送信が行なわれたことを判断することができる。
【００３５】
また、本発明の通信装置は、上記電文チェック部が、受信したパケットのヘッダの再送回数が、既に受信したパケットのヘッダより大きい場合に、パケットロストありと判定して、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信すると共に、パケットロスト発生の旨を通信制御部またはホストに注意事象報告を通知する構成としてある。
同期転送における通信装置をこのような構成とすると、送信元の通信装置では、受信した応答パケットを電文チェック部でチェックすることにより、通信制御部が、正常にパケット送信が行なわれたことを判断することができると共に、受信側の通信装置では、ホストに対して直接的または間接的に注意事象報告を通知することにより、ホストがいち早く障害発生を検出することができる。
【００３６】
また、上記目的を達成するため、本発明の通信システムは、互いにインタフェースにより接続された複数個の通信装置を含んでいて、各通信装置が、ホストに対して上位Ｉ／Ｆ制御部を介して接続されると共に、インタフェースに対して下位Ｉ／Ｆ制御部を介して接続されている通信制御部により、送信すべきコマンドおよびデータに、コマンド種別を含むヘッダを付加して、インタフェースを介して他の通信装置にパケット転送を行なう通信システムにおいて、各通信装置が、パケット送信の際に、作成するヘッダに対して再送回数，時刻情報およびシーケンス番号を追加する電文制御部と、パケット受信の際に、受信パケットに含まれるヘッダの再送回数，時刻情報およびシーケンス番号をチェックする電文チェック部と、を設けた構成としてある。
【００３７】
また、本発明の通信システムは、各通信装置の電文チェック部が、受信したパケットのヘッダを、メモリに退避されている既に受信したパケットのヘッダと比較して、その再送回数に基づいてパケットロストの判定を行なう構成としてある。
また、本発明の通信システムは、各通信装置の電文チェック部が、パケットロストなしと判定したとき、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信する構成としてある。
また、本発明の通信システムは、各通信装置の電文チェック部が、受信したパケットのヘッダの再送回数が、既に受信したパケットのヘッダより大きい場合に、パケットロストありと判定して、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信すると共に、パケットロスト発生の旨を通信制御部またはホストに注意事象報告を通知する構成としてある。
本発明は、このように通信システムとしても実現化することができる。
【００３８】
また、上記目的を達成するため、本発明の同期転送における障害検出プログラムは、ホストに対して上位Ｉ／Ｆ制御部を介して接続されると共に、インタフェースに対して下位Ｉ／Ｆ制御部を介して接続されている通信制御部により、送信すべきコマンドおよびデータに、コマンド種別を含むヘッダを付加して、インタフェースを介して他の通信装置にパケット転送を行なう通信装置の同期転送における障害検出プログラムであって、パケット送信の際に、作成するヘッダに対して再送回数，時刻情報およびシーケンス番号を追加する第一の手順と、パケット受信の際に、受信パケットに含まれるヘッダの再送回数，時刻情報およびシーケンス番号をチェックする第二の手順と、をコンピュータに実行させる構成としてある。
【００３９】
また、本発明の同期転送における障害検出プログラムは、上記第二の手順にて、受信したパケットのヘッダを、メモリに退避されている既に受信したパケットのヘッダと比較して、その再送回数に基づいてパケットロストの判定を行なう構成としてある。
また、本発明の同期転送における障害検出プログラムは、上記第二の手順にて、パケットロストなしと判定したとき、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信する構成としてある。
さらに、本発明の同期転送における障害検出プログラムは、上記第二の手順にて、受信したパケットのヘッダの再送回数が、既に受信したパケットのヘッダより大きい場合に、パケットロストありと判定して、受信したパケットのヘッダに含まれていた再送回数および実行時間の時間情報を付加した応答パケットを送信元の通信装置に対してインタフェースを介して送信すると共に、パケットロスト発生の旨を通信制御部またはホストに注意事象報告を通知する構成としてある。
本発明は、このように同期転送における障害検出プログラムとしても実現化することができる。
【発明の効果】
【００４０】
このようにして、本発明によれば、パケット送信の際に、送信側通信装置の通信制御部が、電文制御部にて作成するヘッダに対して再送回数，時刻情報およびシーケンス番号を追加して、このヘッダと共にコマンドおよびデータをパケット転送する。
したがって、受信側通信装置の通信制御部が、このパケットを受信する際に、電文チェック部にて受信パケットに付加されたヘッダの再送回数，時刻情報およびシーケンス情報に基づいて、受信パケットをチェックするので、パケットロストまたは二重受信を回避することができる。
これにより、パケット同期転送の際の通信障害が迅速に検出され、パケットロストや二重受信が確実に回避され得ることになる。
【発明を実施するための最良の形態】
【００４１】
以下、本発明の実施の形態について、図面を参照して説明する。
【００４２】
本発明の通信装置の一実施形態について、図１を参照して説明する。
図１において、通信装置１０は、ホスト１００配下にて、電文（データ）の送受信のために、図示しない他の通信装置とインタフェース１１０を介して互いに接続されている。
上記通信装置１０は、上位Ｉ／Ｆ制御部１２０と、下位Ｉ／Ｆ制御部１３０と、通信制御部１４０と、電文制御部１５０と、電文チェック部１６０と、メモリ１７０と、を設けてある。
ここで、上記通信装置１０の上位Ｉ／Ｆ制御部１２０，下位Ｉ／Ｆ制御部１３０，通信制御部１４０，電文制御部１５０及び電文チェック部１６０は、それぞれコンピュータ上で動作するプログラムにより動作が制御されるようになっている。
【００４３】
上記通信制御部１４０は、ホスト１００から上位Ｉ／Ｆ制御部１２０を介してパケット転送が指示されたとき、コマンドおよびデータに対して、電文制御部１６０により作成されたヘッダを付加して、下位Ｉ／Ｆ制御部１３０から、インタフェース１１０を介して送信先の通信装置１０にパケット転送を行なうようになっている。
また、上記通信制御部１４０は、他の通信装置１０からパケットを受信したとき、このパケットのコマンドに従って、当該パケットに関する処理を行なう。
【００４４】
上記電文制御部１５０は、上記通信制御部１４０がパケット送信を行なう際に、送信すべきコマンドおよびデータに付加するヘッダを作成する。
ここで、上記ヘッダは、コマンド種別の他に、再送回数，時刻情報およびシーケンス番号が付加されている。
上記再送回数は、オリジナルの場合には「０」が設定されると共に、再送の度に「＋１」が加算される。
また、上記時刻情報は、パス活性化処理開始時からの実行時刻が設定されるようになっている。
【００４５】
上記電文チェック部１６０は、上記通信制御部１４０がパケットを受信したとき、上記通信制御部１４０が受信パケットの処理を行なう前に、このパケットに付加されたヘッダを、前もってメモリ１７０に登録された既受信のパケットのヘッダと比較して、その再送回数に基づいて、パケットロスト発生か否かを判定する。
【００４６】
そして、上記電文チェック部１６０は、受信したパケットのヘッダに含まれる再送回数が、メモリ１７０に退避されていた既受信パケットのヘッダの再送回数と同じである場合には、パケットロストなしと判定し、応答パケットを下位Ｉ／Ｆ制御部１３０からインタフェース１１０を介して、送信元の通信装置１０に対して送信することにより、正常に受信できた旨を通知する。
この場合、応答パケットは、受信パケットのヘッダに付加されていた再送回数及び実行時間を付加して作成される。
【００４７】
また、上記電文チェック部１６０は、受信したパケットのヘッダに含まれる再送回数が、メモリ１７０に退避されていた既受信パケットのヘッダの再送回数より大きい場合には、パケットロスト発生と判定し、通信制御部１４０を介して、または直接にホスト１００に対して注意事象報告を通知する。
この場合も、上記電文チェック部１６０は、下位Ｉ／Ｆ制御部１３０からインタフェース１１０を介して、送信元の通信装置１０に対して送信する。
【００４８】
上記メモリ１７０は、磁気ディスクや半導体メモリ等の補助記憶装置であって、既に受信したパケットに関するヘッダが、ヘッダー管理テーブルとして読み書き可能に退避されている。
【００４９】
次に、本実施形態の通信装置１０の動作について説明する。
まず、送信側のホスト１００から上位Ｉ／Ｆ制御部１２０を介してコマンド及びデータが、送信側の通信制御部１４０に対して送られると、この通信制御部１４０にてコマンド処理が実行される。
その際、コマンドの内容によっては、コマンド処理は、当該通信制御部１４０内で完結し、相手側の通信装置１０との間の通信が発生しない場合もある。
そして、コマンドの内容が相手側の通信装置１０に通知すべきものである場合には、上記コマンド及びデータは、電文制御部１５０にて作成したヘッダが付加され、さらにパケット形式に変換された後、下位Ｉ／Ｆ制御部１３０からインタフェース１１０を介して受信側の通信装置１０に送信する。
その際、ヘッダの内容は、ヘッダ情報としてメモリ１７０内のＲｅｑｕｅｓｔ＿Ｈｄｒに格納される。
【００５０】
これにより、受信側の通信装置１０が上記パケットを受信すると、電文チェック部１６０にて、受信パケットのヘッダをメモリ１７０内のＲｅｃｅｉｖｅ＿Ｈｄｒに格納されている直前のヘッダ情報と比較する。
そして、受信パケットがオリジナル（初回＝再送回数０）である場合には、上記電文チェック部１６０は、ヘッダを取除いたコマンド及びデータを通信制御部１４０に転送する。これにより、上記通信制御部１４０は、このコマンド及びデータに基づいて、コマンド処理を実行する。
このとき、上記電文チェック部１６０は、送信側の通信装置１０に対してＲｅｓｐｏｎｓｅパケット（応答パケット）を転送する。
【００５１】
このＲｅｓｐｏｎｓｅパケットを受信すると、送信側の通信装置１０の電文チェック部１６０にて、受信したＲｅｓｐｏｎｓｅパケットのヘッダをメモリ１７０内のＲｅｓｐｏｎｓｅ＿Ｈｄｒと比較して、一致する場合には、ヘッダを取除いて、通信制御部１４０に転送する。
これにより、上記通信制御部１４０は、このＲｅｓｐｏｎｓｅパケットに基づいて、応答データ処理を実行する。
【００５２】
次に、本実施形態の通信装置１０の動作について、図２〜図３のフローチャートを参照して説明する。
図２は、本発明実施形態の通信装置１０の正常な立上げ動作を示している。
まず、双方の通信装置１０及びホスト１００がインタフェース１１０に接続され、起動している状態において、ステップＥ１にて、送信側のホスト１００から上位Ｉ／Ｆ制御部１２０を介して送信側の通信装置１０に対して、活性化要求が送信されると、ステップＥ２にて、その通信制御部１４０が、電文制御部１５０で作成されたヘッダを付加して、Ｒｅｑｕｅｓｔパケット形式で活性化要求コマンドを受信側の通信装置１０に対してインタフェース１１０を介して送信する。
このとき、電文制御部１５０は、ヘッダ情報に関して、Ｒｅｑｕｅｓｔ＿Ｈｄｒを更新すると共に、時刻情報即ち実行時間を「０」，再送回数を「０」，種別を「ＣＯＮＮＥＣＴ」，シーケンスＳＥＱを「０」とし、上記パケット送信の際に、メモリ１７０に格納する。
【００５３】
ここで、送信側の通信装置１０は、ステップＥ３にて、所定時間Ｔ１経過後に、ステップＥ４にて、再びヘッダを付加した活性化要求コマンドのＲｅｑｕｅｓｔパケットを送信する。
このとき、電文制御部１５０は、ヘッダ情報に関して、Ｒｅｑｕｅｓｔ＿Ｈｄｒを更新すると共に、実行時間を「Ｔ１」，再送回数を「１」と更新し、上記パケット送信の際に、メモリ１７０に格納する。
【００５４】
これを受けて、受信側の通信装置１０では、ステップＥ５にて、電文チェック部１６０が、受信パケットのヘッダを、メモリ１７０に格納されているヘッダ情報と比較して、正常パケットと判定した場合には、ステップＥ６にて、受信側のホスト１００に対して、活性化要求を出力すると共に、ステップＥ７にて、電文制御部１５０にてヘッダを付加して、Ｒｅｓｐｏｎｓｅパケットを送信側の通信装置１０に対してインタフェース１１０を介して送信する。
このとき、上記電文制御部１５０は、ヘッダ情報に関して、Ｒｅｃｅｉｖｅ＿Ｈｄｒを「ＲｅｑｕｅｔパケットのＨｄｒ」に更新する。
【００５５】
このＲｅｓｐｏｎｓｅパケットを受信して、送信側の通信装置１０は、ステップＥ８にて、電文チェック部１６０が、Ｒｅｓｐｏｎｓｅパケットのヘッダを、メモリ１７０に格納されているヘッダ情報と比較して、正常パケットと判定した場合には、ステップＥ９にて、送信側のホスト１００に対して、活性化が正常に行なわれた旨の終了報告を出力する。
【００５６】
続いて、ステップＥ１０にて、受信側のホスト１００から上記Ｉ／Ｆ制御部１２０を介して受信側の通信装置１０に対して、活性化要求が送信されると、ステップＥ１１にて、その通信制御部１４０が、電文制御部１５０で作成されたヘッダを付加して、Ｒｅｑｕｅｓｔパケット形式で活性化要求コマンドを送信側の通信装置１０に対してインタフェース１１０を介して送信する。
このとき、電文制御部１５０は、ヘッダ情報に関して、Ｒｅｑｕｅｓｔ＿Ｈｄｒを更新すると共に、実行時間を「Ｔ２」，再送回数を「０」，種別を「ＣＯＮＮＥＣＴ」，ＳＥＱを「０」とし、上記パケット送信の際に、メモリ１７０に格納する。
【００５７】
これを受けて、送信側の通信装置１０は、ステップＥ１２にて、電文チェック部１６０が、受信パケットのヘッダを、メモリ１７０に格納されているヘッダ情報と比較して、正常パケットと判定した場合には、ステップＥ１３にて、送信側のホスト１００に対して、活性化要求を出力すると共に、ステップＥ１４にて、電文制御部１５０にてヘッダを付加して、Ｒｅｓｐｏｎｓｅパケットを受信側の通信装置１０に対してインタフェース１１０を介して送信する。
このとき、上記電文制御部１５０は、ヘッダ情報に関して、Ｒｅｃｅｉｖｅ＿Ｈｄｒを「ＲｅｑｕｅｓｔパケットのＨｄｒ」に更新する。
【００５８】
このＲｅｓｐｏｎｓｅパケットを受信して、受信側の通信装置１０は、ステップＥ１５にて、電文チェック部１６０が、Ｒｅｓｐｏｎｓｅパケットのヘッダを、メモリ１７０に格納されているヘッダ情報と比較して、正常パケットと判定した場合には、ステップＥ１６にて、送信側のホスト１００に対して、活性化が正常に行なわれた旨の終了報告を出力する。
以上で、正常時の立上り動作が完了することになる。
【００５９】
図３は、本発明実施形態の通信装置１０のパケットロスト発生時の立上げ動作を示している。
まず、双方の通信装置１０及びホスト１００がインタフェース１１０に接続され、送信側が先に起動され、受信側が後から起動されたとき、ステップＦ１にて、送信側のホスト１００から上位Ｉ／Ｆ制御部１２０を介して送信側の通信装置１０に対して、活性化要求が送信されると、ステップＦ２にて、その通信制御部１４０が、電文制御部１５０で作成されたヘッダを付加して、Ｒｅｑｕｅｓｔパケット形式で活性化要求コマンドを受信側の通信装置１０に対してインタフェース１１０を介して送信する。
このとき、電文制御部１５０は、ヘッダ情報に関して、Ｒｅｑｕｅｓｔ＿Ｈｄｒを更新すると共に、実行時間を「０」，再送回数を「０」，種別を「ＣＯＮＮＥＣＴ」，ＳＥＱを「０」とし、上記パケット送信の際に、メモリ１７０に格納する。
【００６０】
ここで、送信側の通信装置１０は、ステップＦ３にて、所定時間Ｔ１経過後に、ステップＦ４にて、再びヘッダを付加した活性化要求コマンドのＲｅｑｕｅｓｔパケットを送信する。
このとき、電文制御部１５０は、ヘッダ情報に関して、Ｒｅｑｕｅｓｔ＿Ｈｄｒを更新すると共に、実行時間を「Ｔ１」，再送回数を「１」に更新し、上記パケット送信の際に、メモリ１７０に格納する。
【００６１】
これを受けて、受信側の通信装置１０では、ステップＦ５にて、電文チェック部１６０が、受信パケットのヘッダを、メモリ１７０に格納されているヘッダ情報と比較して、正常パケットと判定した場合には、ステップＦ６にて、受信側のホスト１００に対して、活性化要求を出力すると共に、ステップＦ７にて、電文制御部１５０にてヘッダを付加して、Ｒｅｓｐｏｎｓｅパケットを送信側の通信装置１０に対してインタフェース１１０を介して送信する。
このとき、上記電文制御部１５０は、ヘッダ情報に関して、Ｒｅｃｅｉｖｅ＿Ｈｄｒを「ＲｅｑｕｅｔパケットのＨｄｒ」に更新する。
【００６２】
その後、ステップＦ８にて、受信側のホスト１００から上記Ｉ／Ｆ制御部１２０を介して受信側の通信装置１０に対して、活性化要求が送信されると、ステップＦ９にて、その通信制御部１４０が、電文制御部１５０で作成されたヘッダを付加して、Ｒｅｑｕｅｓｔパケット形式で活性化要求コマンドを送信側の通信装置１０に対してインタフェース１１０を介して送信する。
このとき、電文制御部１５０は、ヘッダ情報に関して、Ｒｅｑｕｅｓｔ＿Ｈｄｒを更新すると共に、実行時間を「Ｔ２」，再送回数を「０」，種別を「ＣＯＮＮＥＣＴ」，ＳＥＱを「０」とし、上記パケット送信の際に、メモリ１７０に格納する。
【００６３】
これを受けて、送信側の通信装置１０は、ステップＦ１０にて、電文チェック部１６０が、受信パケットのヘッダを、メモリ１７０に格納されているヘッダ情報と比較して、正常パケットと判定した場合には、ステップＦ１１にて、送信側のホスト１００に対して、活性化要求を出力すると共に、ステップＦ１２にて、電文制御部１５０にてヘッダを付加して、Ｒｅｓｐｏｎｓｅパケットを受信側の通信装置１０に対してインタフェース１１０を介して送信する。
このとき、上記電文制御部１５０は、ヘッダ情報に関して、Ｒｅｃｅｉｖｅ＿Ｈｄｒを「ＲｅｑｕｅｔパケットのＨｄｒ」に更新する。
【００６４】
このＲｅｓｐｏｎｓｅパケットを受信して、受信側の通信装置１０は、ステップＦ１３にて、電文チェック部１６０が、Ｒｅｓｐｏｎｓｅパケットのヘッダを、メモリ１７０に格納されているヘッダ情報と比較して、正常パケットと判定した場合には、ステップＦ１４にて、送信側のホスト１００に対して、活性化が正常に行なわれた旨の終了報告を出力する。
【００６５】
ここで、ステップＦ７で送信されたＲｅｓｐｏｎｓｅパケットに関して、ステップＦ１５にて、パケットロストが発生すると、送信側の通信装置１０が上記Ｒｅｓｐｏｎｓｅパケットを受信できないため、直前のＲｅｑｕｅｓｔパケットを送信した後所定時間Ｔ１経過後に、送信側の通信装置１０は、ステップＦ１６にて、再び受信側の通信装置１０に対して、ヘッダを付加した活性化要求コマンドのＲｅｑｕｅｓｔパケットを送信する。
このとき、電文制御部１５０は、ヘッダ情報に関して、Ｒｅｑｕｅｓｔ＿Ｈｄｒを更新すると共に、実行時間を「２・Ｔ１」，再送回数を「２」とし、上記パケット送信の際に、メモリ１７０に格納する。
【００６６】
これを受けて、受信側の通信装置１０では、ステップＦ１７にて、電文チェック部１６０が、受信パケットのヘッダを、メモリ１７０に格納されているヘッダ情報と比較するが、この場合、実行時間及び再送回数が不一致となる。従って、電文チェック部１６０は、正常パケットではないと判定し、ステップＦ１８にて、受信パケットを廃棄し、ステップＦ１９にて、受信側のホスト１００に対して、注意事象報告の通知を行なうと共に、ステップＦ２０にて、電文制御部１５０にてヘッダを付加して、Ｒｅｓｐｏｎｓｅパケットを送信側の通信装置１０に対してインタフェース１１０を介して送信する。
【００６７】
このＲｅｓｐｏｎｓｅパケットを受信して、送信側の通信装置１０は、ステップＦ２１にて、電文チェック部１６０が、Ｒｅｓｐｏｎｓｅパケットのヘッダをチェックすることにより、受信側の通信装置１０がＲｅｑｕｅｓｔパケットの二重受信を検出していること、その原因が通信経路上の異常と推測されること、を検出し、送信側のホスト１００に対して、ステップＦ２２にて、活性化要求に対する応答（終了報告）を通知し、さらにステップＦ２３にて、注意事象報告を通知する。
尚、上記ステップＦ１９にて注意事象報告を受けて、受信側のホスト１００は、通信装置１０に対して、ログ情報の採取の指示等、必要な処理を実行する。
以上で、パケットロスト発生時の立上り動作が完了することになる。
【００６８】
以上、本発明の通信装置について、好ましい実施形態を示して説明したが、本発明にかかる通信装置は、上述した実施形態にのみ限定されるものではなく、本発明の範囲で種々の変更実施が可能であることはいうまでもない。
例えば、上述した実施形態においては、各通信装置１０は、単にインタフェース１１０により互いに接続されるようになっているが、インタフェース１１０としては、ＬＡＮやインターネットを含む広義のインタフェースが利用され得ることは明らかである。
【００６９】
また、上述した実施形態においては、各種ヘッダ情報が、通信装置１０内に設けられたメモリ１７０に退避・格納されるようになっているが、これに限らず、ホスト１００のメモリ内や通信制御部内に一時的に格納されるようにしてもよい。
【産業上の利用可能性】
【００７０】
本発明は、パケットによる同期通信を行なう各種通信装置や通信システムとして利用可能である。
【図面の簡単な説明】
【００７１】
【図１】本発明の通信装置の一実施形態の構成を示すブロック図である。
【図２】図１の通信装置における正常な立上げ動作を示すフローチャートである。
【図３】図１の通信装置におけるパケットロスト発生時の立上げ動作を示すフローチャートである。
【図４】従来の通信装置の一例の構成を示すブロック図である。
【図５】図１の通信装置における正常な立上げ動作を示すブロック図である。
【図６】図１の通信装置における受信側の通信装置が起動していない状態での動作を示すフローチャートである。
【図７】図１の通信装置における活性化状態不一致の場合の立上げ動作を示すフローチャートである。
【図８】図１の通信装置における二重受信発生時の立上げ動作を示すフローチャートである。
【符号の説明】
【００７２】
１０    通信装置
１００  ホスト
１１０  インタフェース
１２０  上位Ｉ／Ｆ制御部
１３０  下位Ｉ／Ｆ制御部
１４０  通信制御部
１５０  電文制御部
１６０  電文チェック部
１７０  メモリ
【図１】
0004821407.tif 000002
【図２】
0004821407.tif 000003
【図３】
0004821407.tif 000004
【図４】
0004821407.tif 000005
【図５】
0004821407.tif 000006
【図６】
0004821407.tif 000007
【図７】
0004821407.tif 000008
【図８】
0004821407.tif 000009