(57)【特許請求の範囲】
【請求項１】
第１の通信装置と第２の通信装置とを有する通信システムであって、
前記第１の通信装置が、前記第２の通信装置にリクエストを送信し、
前記第２の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信し、
前記第１の通信装置が、送信したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断し、
前記第２の通信装置は、過去に受信したリクエストに対する更新情報を検出した場合に、当該リクエストと更新情報とを前記第１の通信装置に送信し、
前記第１の通信装置は、前記更新情報とともに受信したリクエストを、送信済みの１つ又は複数のリクエストと比較し、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスを前記更新情報を用いて更新する
通信システム。
【請求項２】
前記第２の通信装置は、前記リクエストが付加されたレスポンスを複数のデータに分割し、分割した複数のデータを連続的に前記第１の通信装置に送信する
請求項１に記載の通信システム。
【請求項３】
前記第１の通信装置は、前記送信したリクエストと、前記第２の通信装置から受信したリクエストとが一致しないと判断した場合、前記リクエストを前記第２の通信装置に再送する
請求項１又は２に記載の通信システム。
【請求項４】
前記第１の通信装置は、前記リクエストを送信してから一定時間内に当該リクエストに対応するレスポンスを受信しない場合に、前記リクエストを前記第２の通信装置に再送する
請求項１ないし３のうちいずれか１項に記載の通信システム。
【請求項５】
前記第１の通信装置は、前記リクエストに対応するレスポンスを受信するまで、当該リクエストを連続的に前記第２の通信装置に送信する
請求項１ないし４のうちいずれか１項に記載の通信システム。
【請求項６】
第１の通信装置と第２の通信装置とを有する通信システムが実行する通信方法であって、
前記第１の通信装置が、前記第２の通信装置にリクエストを送信するステップと、
前記第２の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信するステップと、
前記第１の通信装置が、送信したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断するステップと、
前記第２の通信装置は、過去に受信したリクエストに対する更新情報を検出した場合に、当該リクエストと更新情報とを前記第１の通信装置に送信するステップと、
前記第１の通信装置は、前記更新情報とともに受信したリクエストを、送信済みの１つ又は複数のリクエストと比較し、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスを前記更新情報を用いて更新するステップと
を備える通信方法。
【請求項７】
第１の通信装置と第２の通信装置とを有する通信システムおいて使用される前記第１の通信装置に対応する通信装置であって、
前記第２の通信装置に送信するリクエストを記憶部に保持し、当該リクエストを前記第２の通信装置に送信する送信手段と、
前記第２の通信装置から、前記リクエストに対するレスポンスに当該リクエストを付加したデータを受信する受信手段と、
前記記憶部に保持したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する比較手段とを備える通信装置であり、
前記第２の通信装置が、過去に受信したリクエストに対する更新情報を検出した場合に、前記第２の通信装置から、当該リクエストと更新情報とを受信し、
前記更新情報とともに受信したリクエストを、送信済みの１つ又は複数のリクエストと比較し、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスを前記更新情報を用いて更新する
通信装置。
【請求項８】
第１の通信装置と第２の通信装置とを有する通信システムおいて使用される前記第２の通信装置に対応する通信装置であって、
前記第１の通信装置からリクエストを受信する受信手段と、
前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信する送信手段と、を備え、
前記第１の通信装置に、当該第１の通信装置が送信したリクエストと、前記通信装置から受信したリクエストとを比較する処理を実行させる通信装置であり、
過去に受信したリクエストに対する更新情報を検出した場合に、当該リクエストと更新情報とを前記第１の通信装置に送信し、
前記第１の通信装置において、前記更新情報とともに受信したリクエストが、送信済みの１つ又は複数のリクエストと比較され、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスが前記更新情報を用いて更新される
通信装置。
【請求項９】
コンピュータを、請求項７又は８に記載の通信装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リクエスト／レスポンス型の通信の技術分野に関連するものである。
【背景技術】
【０００２】
クライアントからサーバにリクエストを送信し、サーバがクライアントにレスポンス（所望の情報）を送信するというリクエスト／レスポンス型の通信形態が広く普及している。
【０００３】
リクエスト／レスポンス型の通信では、例えば、クライアントが特定の情報を必要とする場合に、当該特定の情報を提供するサーバに対して、特定の情報取得に必要な情報を含むリクエストを送信し、サーバは、当該リクエストに対応する特定の情報をレスポンスとしてクライアントに返す。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３５７２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リクエスト／レスポンス型の通信において、リクエストに対するレスポンスに高い信頼性を要する場合、リクエストが正しく届いたかどうかを確認することが必要である。一例として、車の自動運転等において、リクエストが制御サーバ側に正しく届いたかどうかの確認がとれない場合、レスポンス通りに自動運転を実施してよいかの信頼度が低下する。そのために、レスポンスの受信側は、自らの発した正しいリクエストに対するレスポンスであることを確認することが必要である。しかし、ＴＣＰ／ＩＰ等の従来技術による通信では完全性が担保できない上、遅延が大きくなり、例えば車の自動運転等のようなリアルタイムの処理は難しい。
【０００６】
また、リクエストを受信したサーバがレスポンスを返す際に、どのリクエストに対応するかを示すためにリクエストに対応するコード等をレスポンスに挿入するのが一般的である。レスポンスを受信したクライアント側では、レスポンス内からコードを取り出し、テーブルを検索して、コードに対応するリクエスト種別を割り出し、どのリクエストに対するレスポンスなのかを特定する。しかし、このテーブル検索は負荷がかかる。特にテーブル書き換えの場合、排他制御が必要になるため負荷が大きい。これらの負荷集中もリアルタイム処理に効く。
【０００７】
上記のとおり、従来技術では、リクエスト／レスポンス型の通信において、リクエストが通信相手に正しく届いたかどうか、通信相手から受信したレスポンスが、送信したリクエストに対するレスポンスかどうか等、リクエストとレスポンスとの関係性を効率的に確認することが困難であった。例えばＴＣＰの場合、リクエストとレスポンスの対をコネクション／チャネルなる概念で対応させている。ソフトウェア的には、ＢＳＤソケットを用いて、一つの処理（リクエストとレスポンスの対）に、一つのソケットを対応させている。
【０００８】
換言すると、コネクションを張らなければ、他のトラフィックと区別することが困難である。コネクションを形成するためには、３ウェイハンドシェイクが必須であり、それがリアルタイム処理を困難にしている。
【０００９】
本発明は上記の点に鑑みてなされたものであり、リクエスト／レスポンス型の通信において、リクエストとレスポンスとの関係性を効率的に確認することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の実施の形態によれば、第１の通信装置と第２の通信装置とを有する通信システムであって、
前記第１の通信装置が、前記第２の通信装置にリクエストを送信し、
前記第２の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信し、
前記第１の通信装置が、送信したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断し、
前記第２の通信装置は、過去に受信したリクエストに対する更新情報を検出した場合に、当該リクエストと更新情報とを前記第１の通信装置に送信し、
前記第１の通信装置は、前記更新情報とともに受信したリクエストを、送信済みの１つ又は複数のリクエストと比較し、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスを前記更新情報を用いて更新する
通信システムが提供される。
【００１１】
また、本発明の実施の形態によれば、第１の通信装置と第２の通信装置とを有する通信システムが実行する通信方法であって、
前記第１の通信装置が、前記第２の通信装置にリクエストを送信するステップと、
前記第２の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信するステップと、
前記第１の通信装置が、送信したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断するステップと、
前記第２の通信装置は、過去に受信したリクエストに対する更新情報を検出した場合に、当該リクエストと更新情報とを前記第１の通信装置に送信するステップと、
前記第１の通信装置は、前記更新情報とともに受信したリクエストを、送信済みの１つ又は複数のリクエストと比較し、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスを前記更新情報を用いて更新するステップと
を備える通信方法が提供される。
【００１２】
また、本発明の実施の形態によれば、第１の通信装置と第２の通信装置とを有する通信システムおいて使用される前記第１の通信装置に対応する通信装置であって、
前記第２の通信装置に送信するリクエストを記憶部に保持し、当該リクエストを前記第２の通信装置に送信する送信手段と、
前記第２の通信装置から、前記リクエストに対するレスポンスに当該リクエストを付加したデータを受信する受信手段と、
前記記憶部に保持したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する比較手段とを備える通信装置であり、
前記第２の通信装置が、過去に受信したリクエストに対する更新情報を検出した場合に、前記第２の通信装置から、当該リクエストと更新情報とを受信し、
前記更新情報とともに受信したリクエストを、送信済みの１つ又は複数のリクエストと比較し、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスを前記更新情報を用いて更新する
通信装置が提供される。
【００１３】
また、本発明の実施の形態によれば、第１の通信装置と第２の通信装置とを有する通信システムおいて使用される前記第２の通信装置に対応する通信装置であって、
前記第１の通信装置からリクエストを受信する受信手段と、
前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信する送信手段と、を備え、
前記第１の通信装置に、当該第１の通信装置が送信したリクエストと、前記通信装置から受信したリクエストとを比較する処理を実行させる通信装置であり、
過去に受信したリクエストに対する更新情報を検出した場合に、当該リクエストと更新情報とを前記第１の通信装置に送信し、
前記第１の通信装置において、前記更新情報とともに受信したリクエストが、送信済みの１つ又は複数のリクエストと比較され、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスが前記更新情報を用いて更新される
通信装置が提供される。
【発明の効果】
【００１４】
本発明の実施の形態によれば、リクエスト／レスポンス型の通信において、リクエストとレスポンスとの関係性を効率的に確認することを可能とする技術が提供される。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態における通信システムの構成図である。
【図２】基本技術を説明するための図である。
【図３】基本技術における装置構成を示す図である。
【図４】基本技術における通信装置１０の処理の流れを示すフローチャートである。
【図５】基本技術における通信装置２０の処理の流れを示すフローチャートである。
【図６】本実施の形態におけるリクエストとレスポンスの送受信動作例１を説明するための図である。
【図７】本実施の形態におけるリクエストとレスポンスの送受信動作例２を説明するための図である。
【図８】本実施の形態におけるリクエストとレスポンスの送受信動作例３を説明するための図である。
【図９】リクエストとレスポンスを行う実施の形態における装置構成を示す図である。
【図１０】実施例１を説明するためのシーケンス図である。
【図１１】実施例２を説明するためのシーケンス図である。
【図１２】実施例３を説明するためのシーケンス図である。
【図１３】実施例４を説明するためのシーケンス図である。
【図１４】実施例５を説明するためのシーケンス図である。
【図１５】実施例６を説明するためのシーケンス図である。
【図１６】変形例の基本的な動作を説明するための図である。
【図１７】変形例における通信システムの動作を詳細に説明するためのシーケンス図である。
【図１８】変形例における通信装置Ａもしくは通信装置Ｂとして用いられる通信装置１００の機能構成図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１７】
（システム構成）
図１に、本発明の実施の形態に係る通信システムの構成図を示す。図１に示すように、本実施の形態に係る通信システムは、通信装置１０と通信装置２０とが通信回線により接続された構成を有する。
【００１８】
通信装置１０、２０は、それぞれ、通信回線を介してデータを送受信する機能を含む装置である。通信装置１０、２０はいずれも特定の種類の装置に限られないが、例えば、通信装置１０、２０の一方がユーザ端末（クライアント）で、他方がサーバである。また、通信装置１０、２０のいずれか又は両方が、データの中継を行うルータ、スイッチ等であってもよい。
【００１９】
図１において線で図示される通信回線は、通信装置１０から通信装置２０への通信と、通信装置２０から通信装置１０への通信を同時に行うことが可能な双方向通信回線でもよいし、同時には片方向しか通信できない回線であってもよい。当該通信回線は、通信装置１０から通信装置２０への通信帯域、及び通信装置２０から通信装置１０への通信帯域を持つ回線であれば、どのような回線でもよい。また、当該通信回線は、伝送路、パス、通信路等と呼んでもよい。また、当該通信回線は、光ファイバーや電気ケーブル等の物理的な回線であってもよいし、多数の装置からなるインターネット等のネットワーク内に形成された論理的な回線（例：ＶＰＮ）であってもよいし、これらを組み合わせたものであってもよい。また、当該通信回線が、ＬＴＥ、無線ＬＡＮ等の無線回線であってもよい。
【００２０】
通信回線についての上記事項は、変形例における通信装置Ａと通信装置Ｂとの間の回線にもあてはまる。
【００２１】
（基本技術について）
本実施の形態では、特にリクエストとレスポンスの送受信に好適な通信技術について説明するが、まず、当該通信技術の基となる基本技術について説明する。
【００２２】
図２は、基本技術におけるデータの送受信方法を説明するための図である。図２の例では、通信装置１０がデータの送信側であり、通信装置２０がデータの受信側である。なお、データは、「パケット」、「フレーム」、「セル」等であってもよい。「データ」の用語は、これらを包含する意味で使用する。
【００２３】
図２に示すように、通信装置１０がデータを送信すると、通信装置２０は受信したデータを折り返して送信する。通信装置１０と通信装置２０との間でコネクションの確立は行わずに、通信装置１０は通信の開始時から設定により定められたデータ数を順次送信する。設定により定められたデータ数とは、例えば輻輳が発生しない程度のデータ数であり、利用可能な帯域を上限としたり、予め通信相手と調整しておく。
【００２４】
通信装置１０は、折り返して送信された折返しデータを受信すると、送信したデータと受信した折返しデータを突合し、データが正しく送信されたことを確認する。なお、データ同士を突合した結果、一致しない場合はそのデータを再送する。また、タイムアウト時間内に折返しデータを受信しない場合もデータを再送する。なお、通信装置１０は通信装置２０からの折返しデータの返送を待たずに次々とデータを送信するので回線の使用率が向上する。
【００２５】
次に、基本技術に係る通信システムにおける各装置の構成について説明する。
【００２６】
図３は、基本技術における各通信装置の構成を示す図である。図３に示すように、通信装置１０は、入力部１１、送信バッファ１２、送信部１３、受信部１４、比較部１５、及び制御部１６を備える。
【００２７】
入力部１１は、アプリケーション等から送信されるデータを入力し、当該データを例えば所定のサイズに分割して送信バッファ１２に格納する。送信バッファ１２は、データを一時的に保持する記憶領域（記憶部）である。図３では、データを丸印で示した。
【００２８】
送信部１３は、送信バッファ１２からデータを取り出し、例えば、送信元、送信先、及び再送やフロー制御に用いる制御情報を備えたヘッダーをデータに付与して通信装置２０へ送信する。ヘッダーに記載する情報としては、例えばデータの順番を示すシーケンス番号がある。データの到着する順番が入れ替わった場合は、通信装置２０はシーケンス番号を用いてデータの順番を入れ替えることができる。
【００２９】
受信部１４は、通信装置２０から折り返して送信された折返しデータを受信して比較部１５に送信する。比較部１５は、折返しデータと送信バッファ１２に格納された送信済のデータを比較する。
【００３０】
比較の結果、一致した場合は比較したデータを送信バッファ１２から削除し、一致しなかった場合は、比較したデータの再送を制御部１６に指示する。折返しデータに対応する送信済のデータは、例えばデータのヘッダーに記載したシーケンス番号を用いて特定することができる。制御部１６は、データの再送やフロー制御等の通信制御を行う。
【００３１】
通信装置２０は、受信部２１、送信部２２、受信バッファ２３、及び出力部２４を備える。受信部２１は、通信装置１０からデータを受信し、受信したデータを受信バッファ２３に格納するとともに、受信したデータを送信部２２へ送信する。
【００３２】
送信部２２は、受信部２１から受信したデータを折返しデータとして通信装置１０へ送信する。受信バッファ２３は、受信したデータを一時的に保持する記憶領域である。
【００３３】
出力部２４は、受信バッファ２３からデータを取り出して通信装置１０が送信したデータを再構築し、再構築したデータをアプリケーション等に渡す。なお、再構築が必要な場合に、再構築をアプリケーション等で行うこととしてもよい。
【００３４】
なお、通信装置１０及び通信装置２０が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは通信装置１０及び通信装置２０が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。このように、通信装置１０及び通信装置２０が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行される点は、図９に示す構成についても同様である。
【００３５】
また、図３では、通信装置１０及び通信装置２０はそれぞれ送信機能と受信機能のみを持つ装置として図示したが、通信装置１０と通信装置２０の双方が送受信機能を持ってもよい。
【００３６】
一例として、基本技術における通信システムは、ＩＰやＵＤＰ等の既存のデータグラム通信上に実装することが可能である。
【００３７】
次に、基本技術における通信システムの動作について説明する。まず、通信装置１０がデータを送信する処理について図４のフローチャートを参照して説明する。
【００３８】
まず、送信部１３は送信バッファ１２からデータを取り出して通信装置２０へ送信する（ステップＳ１１）。続いて、受信部１４が通信装置２０から折返しデータを受信したか否か判定する（ステップＳ１２）。
【００３９】
受信部１４が折返しデータを受信すると（ステップＳ１２のＹＥＳ）、受信部１４は受信した折返しデータを比較部１５へ送信し、比較部１５は折返しデータと送信バッファ１２が保持する送信したデータを比較する（ステップＳ１３）。
【００４０】
比較部１５による比較の結果、折返しデータと送信したデータが一致した場合（ステップＳ１４のＹＥＳ）、送信したデータは通信装置２０において受信されたことが確認され、送信バッファ１２から送信済のデータを削除する（ステップＳ１５）。
【００４１】
一方、折返しデータを受信していない場合（ステップＳ１２のＮＯ）、予め設定した非常に短いタイマーがタイムアウトしたか否か判定する（ステップＳ１６）。基本技術における通信システムは、高速なネットワークを用いてデータを送受信し、更に通信装置２０は受信したデータをそのまま即座に折り返して返信することを想定しているので、長いタイマーを設定する必要はない。そこで、通信装置１０と通信装置２０との間のネットワークの通信品質を考慮した非常に短いタイマーを設定する。
【００４２】
タイムアウトしていない場合は（ステップＳ１６のＮＯ）、ステップＳ１２に戻って折返しデータの到着を待つ。
【００４３】
タイムアウトした場合は（ステップＳ１６のＹＥＳ）、送信バッファ１２からデータを再び取得して再送する（ステップＳ１７）。タイムアウト時は例えば１回程度のリトライのみ実施し、リトライのタイムアウト時はバックオフして待機する。バックオフの処理は、例えばＣＳＭＡ／ＣＤと同様の処理を行うことができる。更にタイムアウトしたときは、例えば、他の通信方法（例えばＴＣＰ）を用いて通信装置２０の状態を確認することができる。
【００４４】
また、比較部１５による比較の結果、折返しデータと送信したデータが一致していない場合も（ステップＳ１４のＮＯ）、データの再送処理を行う（ステップＳ１７）。データの再送は、例えば１データ毎に行われる。
【００４５】
続いて、通信装置２０がデータを受信する処理について図５のフローチャートを参照して説明する。
【００４６】
図５に示すとおり、受信部２１がデータを受信すると、受信したデータを受信バッファ２３に格納するとともに、受信したデータを送信部２２に渡す（ステップＳ２１）。送信部２２は、受信部２１から受け取ったデータをデータの送信元である通信装置１０へ送信する（ステップＳ２２）。
【００４７】
上記のような処理により、折返しデータとの比較結果が不一致の場合あるいはタイムアウトした場合は該当するデータについてのみデータを再送することで、通信装置２０が受信したデータを再送する無駄を生じることがない。
【００４８】
（本発明の実施の形態の説明）
前述したように、従来技術においては、リクエストとレスポンスとの関係性を効率的に確認することが困難であるという課題があった。
【００４９】
そこで、本実施の形態では、リクエスト／レスポンス型の通信において、上記基本技術での折り返しデータと同様に、リクエストを折り返すことで、リクエストとレスポンスとの関係性（対応付け）を効率的に確認することを可能としている。
【００５０】
本実施の形態におけるシステムの全体構成は図１に示したとおりであり、通信装置１０と通信装置２０を有する。ただし、本実施の形態では、通信装置１０がデータとしてリクエストを送信する側の装置（例：クライアント）であり、通信装置２０は当該リクエストに対するレスポンスを送信する装置（例：サーバ）である。
【００５１】
通信装置１０と通信装置２０とを接続する通信回線はどのようなものでもよいが、本実施の形態では、当該通信回線がＬＴＥ、無線ＬＡＮ等の無線回線である場合に、特にその効果が大きい。
【００５２】
すなわち、無線通信における搬送電波について、複数個の搬送電波（チャネル）を束ねて利用してデータ転送速度を増大させることが行われている。無線通信では、データ転送のためにチャネルが割り当てられたとしても、データの送受信がない場合、チャネルがリリースされてしまう。一例として、ＴＣＰ／ＩＰのようにＡＣＫを待たなければならない通信の場合、ＡＣＫ待ちの間にチャネルがリリースされ、次のデータを送信するために新たなチャネル取得のための待ち時間が発生する。
【００５３】
一方、本実施の形態では、上記基本技術を用いるため、連続でデータを送信し続けることが可能であるため、一度確保したチャネルを維持したままデータ転送が可能であるという効果がある。
【００５４】
更に、ＬＴＥ等の無線通信では、上り帯域よりも下り帯域のほうが大きいのが一般的であるため、多くの場合において、上りでリクエストを送信し、下りでリクエスト＋レスポンスを受信することが想定される本実施の形態に好適である。
【００５５】
（本実施の形態におけるリクエスト／レスポンスの送受信動作例）
以下、本実施の形態におけるリクエスト／レスポンスの送受信動作例を説明する。
【００５６】
＜リクエスト／レスポンスの送受信動作例１＞
図６を参照してリクエスト／レスポンスの送受信動作例１を説明する。通信装置１０は、リクエスト（Ａ）を通信装置２０に送信する（ステップＳ３１）。通信装置２０は、当該リクエストに応じたレスポンス（Ｂ）を生成し、レスポンス（Ｂ）に、リクエスト（Ａ）の折り返しデータ（Ａ´）を付加し、（Ａ´）と（Ｂ）とを通信装置１０に送信する（ステップＳ３２）。折り返しデータ（Ａ´）は、リクエスト（Ａ）と同じデータである。
【００５７】
（Ａ´）と（Ｂ）を受信した通信装置１０は、（Ａ）と（Ａ´）を比較し、これらが一致した場合に、レスポンス（Ｂ）は、リクエスト（Ａ）を正しく受け取った通信装置２０からのリクエスト（Ａ）に対応するレスポンス（Ｂ）であると判断し、当該レスポンス（Ｂ）を（Ａ）のレスポンスとして処理する。レスポンス（Ｂ）を（Ａ）のレスポンスとして処理するとは、例えば、リクエスト（Ａ）とともにレスポンス（Ｂ）の内容を表示したり、有効なデータとして記憶部に格納したりすることである。
【００５８】
（Ａ）を受信した通信装置２０からの（Ａ´）の返信、及び（Ａ）と（Ａ´）の比較の結果、一致すれば（Ａ）が正しく通信装置２０に届いていたと判断する点は前述した基本技術と同じである。本実施の形態では、更に、通信装置２０は、（Ａ´）とともに、（Ｂ）を通信装置２０に返し、通信装置１０において、（Ａ）と（Ａ´）の比較の結果に基づいて、（Ｂ）が（Ａ）に対するレスポンスであるか否かを判断することとしているのである。
【００５９】
通信装置１０は、（Ａ）と（Ａ´）を比較した結果、これらが一致しないと判断した場合は、（Ａ）を通信装置２０に再送する。これは、（Ｂ）の再送を求める再送要求でもある。
【００６０】
また、通信装置１０は、リクエストを送信した時刻から、一定時間以内に、当該リクエストに対するレスポンスを受信しない場合にも、当該リクエストを通信装置２０に再送する。これは、（Ｂ）の再送を求める再送要求でもある。
【００６１】
＜リクエスト／レスポンスの送受信動作例２＞
図７を参照してリクエスト／レスポンスの送受信動作例２を説明する。送受信動作例２においても、まず、通信装置１０は、リクエスト（Ａ）を通信装置２０に送信する（ステップＳ４１）。
【００６２】
通信装置２０は、当該リクエストに応じたレスポンス（Ｂ）を生成する。送受信動作例２では、（Ｂ）のデータサイズが大きいため、通信装置２０は、（Ａ´）＋（Ｂ）のデータを複数のデータに分割して送信する。データサイズが大きいとは、例えば、所定の閾値よりも大きいことである。
【００６３】
すなわち、（Ｂ）は（Ｂ−１）と（Ｂ−２）に分割される。通信装置２０は、ステップＳ４２において、（Ａ´）＋（Ｂ−１）を通信装置１０に送信し、ステップＳ４３において、（Ｂ−２）を通信装置１０に送信する。このように、分割した複数のデータをＡＣＫ等を待つことなく連続的に送信する。
【００６４】
通信装置１０は、（Ｂ−１）と（Ｂ−２）を結合（マージ）して（Ｂ）を作成する。なお、（Ｂ−１）と（Ｂ−２）が（Ｂ）の分割データであることは、例えば、通信装置２０において、（Ｂ）の分割データであることを示す情報をヘッダ等に付加することで、通信装置１０において識別できる。
【００６５】
（Ａ´）と（Ｂ）を受信した通信装置１０は、（Ａ）と（Ａ´）を比較し、これらが一致した場合に、レスポンス（Ｂ）は、リクエスト（Ａ）を正しく受け取った通信装置２０からの、当該リクエスト（Ａ）に対するレスポンス（Ｂ）であると判断し、当該レスポンス（Ｂ）を（Ａ）のレスポンスとして処理する（ステップＳ４３）。
【００６６】
＜リクエスト／レスポンスの送受信動作例３＞
図８を参照してリクエスト／レスポンスの送受信動作例３を説明する。送受信動作例３において、通信装置１０は、リクエスト（Ａ）を、当該（Ａ）に対応するレスポンスの受信を確認できるまで送信し続ける。すなわち、図８の例において、通信装置１０は、ステップＳ５１〜Ｓ５３においてリクエスト（Ａ）を連続的に送信している。このように連続的にデータを送信することで、例えば、上りのチャネルの確保が可能となる。
【００６７】
送受信動作例３において、リクエスト（Ａ）を連続的に受信する通信装置２０は、各リクエスト（Ａ）に対して、（Ａ´）を付加してレスポンスを送信することができる。図８に示す例では、レスポンス（Ｂ）のサイズが大きく、これを（Ｂ−１）と（Ｂ−２）に分割して送信している。また、本例では、リクエスト（Ａ）を連続的に受信することから、通信装置２０は、当該リクエストに対応して、（Ｂ−１）と（Ｂ−２）のそれぞれに（Ａ´）を付加して送信する。
【００６８】
ここで、通信装置２０は、（Ｂ）を全部送信し終わるまでに重複して受信した（Ａ）を破棄してもよい。
【００６９】
また、基本技術で説明したように、データ（リクエスト）の送信側で、折り返しデータを確認できない場合等に、データ（リクエスト）の再送（再送要求）を行うが、送受信動作例３においては、再送ではなくてもリクエスト（Ａ）が複数回送信されている。従って、通信装置２０は、（例えばチャネル確保のために）図８に示すように連続的に送信される（Ａ）と、再送要求としての（Ａ）とを区別するために、例えば、（Ｂ）を送信後、一定時間以降に受信した（Ａ）を再送要求とみなすこととしてよい。また、通信装置１０において、再送要求のために（Ａ）を送る際に、再送要求を示すフラグをヘッダ等に含めることとしてもよい。
【００７０】
更に以下のような動作も可能である。
【００７１】
＜クライアント（通信装置１０）側行動証明＞
リクエスト（Ａ）と（Ａ´）が一致した（Ａ）について、通信装置１０が当該（Ａ）を保存することとしてもよい。また、通信装置２０は、リクエスト（Ａ）を時刻とともに保存することとしてもよい。通信装置１０に保存されたリクエスト（Ａ）と、通信装置２０に保存されたリクエスト（Ａ）を比較することで、当該時刻に通信装置１０側でデータの改ざん等なく、確かにその内容を送信したことが保証される。また、リクエスト（Ａ）が、通信装置１０側の状況を示すものである場合、これを通信装置１０側の行動情報として利用することが可能である。
【００７２】
＜レスポンスデータの更新／追加＞
通信装置２０は、受信したリクエスト（Ａ）を記憶部に保持するとともに、受信したリクエスト（Ａ）に対するレスポンス（Ｂ）を送信後、当該リクエスト（Ａ）に対する更新データや追加データ（これらを総称して更新情報と呼ぶ）を検出した場合、当該リクエスト（Ａ）（そのまま）＋更新情報を通信装置１０に送信することとしてもよい。更新情報を検出した場合とは、例えば、過去の時点から現在にかけて状況が変化したために、リクエスト（Ａ）に対する過去のレスポンス（Ｂ）と異なる情報を通信装置２０が生成した場合、もしくは、当該情報を通信装置２０が別の装置から取得したような場合である。
【００７３】
通信装置１０では、通信装置２０から受信する当該リクエスト（Ａ）を、以前に送信したリクエスト（１つ又は複数）と比較し、一致するものがある場合、当該一致したリクエストに対応するレスポンスデータを、受信した更新情報でもって更新又は追加する。比較対象とする送信済みのリクエストは、送信した全てのリクエストとしてもよいし、リクエスト送信後にレスポンスを受信したものに限ってもよい。
【００７４】
上記のような処理を行うことで、例えば、自動車の自動運転等で緊急車両等が急速に近づいているような場合に、適切な対応をとることを可能とする情報を更新／追加することが可能となる。
【００７５】
（本実施の形態における装置構成）
図９に、本実施の形態の通信システムにおける各装置の構成を示す。図９に示す構成は、図３に示す構成に加えて、通信装置１０にデータ処理部１７が追加され、通信装置２０にデータ処理部２５が追加されたものである。以下では、図６に示した送受信動作例１に基づき、通信装置１０の送信するデータがリクエスト（Ａ）であり、通信装置２０が、レスポンス（Ｂ）を返す場合における各機能部の動作を説明する。なお、以下で説明する動作は例である。通信装置１０及び通信装置２０は、上述した各例の動作を全て実行できる。
【００７６】
データ処理部１７は、リクエスト（例：位置情報）をサーバに送信することで、当該位置情報に対応する情報（レスポンス）を表示するようなアプリケーションに相当する機能部である。
【００７７】
入力部１１は、データ処理部１７から出力されるリクエスト（Ａ）を入力し、送信バッファ１２に格納する。送信バッファ１２は、データを一時的に保持する記憶部である。
【００７８】
送信部１３は、送信バッファ１２からリクエスト（Ａ）を取り出し、例えば、送信元、送信先、及び再送やフロー制御に用いる制御情報を備えたヘッダーをリクエスト（Ａ）に付与して通信装置２０へ送信する。ヘッダーに記載する情報としては、例えばデータの順番を示すシーケンス番号がある。データの到着する順番が入れ替わった場合は、通信装置２０はシーケンス番号を用いてデータの順番を入れ替えることができる。
【００７９】
受信部１４は、通信装置２０から（Ａ´）＋（Ｂ）からなるデータ（例：パケット）を受信して（Ａ´）を比較部１５に送信する。（Ｂ）については記憶手段に保持しておく。比較部１５は、（Ａ´）と送信バッファ１２に格納された送信済の（Ａ）を比較する。
【００８０】
比較の結果、一致した場合は比較した（Ａ）を送信バッファ１２から削除するとともに、一致したことを受信部１４に通知する。一致しなかった場合は、比較した（Ａ）の再送を制御部１６に指示するとともに、例えば受信部１４に対して保持している（Ｂ）を削除するよう指示する。
【００８１】
一致したことを通知された受信部１４は、（Ｂ）をデータ処理部１７に渡す。なお、データ処理部１７に（Ａ´）＋（Ｂ）からなるデータを渡すこととしてもよい。データ処理部１７は、例えば（Ｂ）を表示する等の処理を行う。なお、受信部１４は、前述した分割データの組み立て等の機能も含んでいる。
【００８２】
通信装置２０の受信部２１は、通信装置１０から（Ａ）を受信し、受信した（Ａ）を受信バッファ２３に格納するとともに、受信した（Ａ）を送信部２２へ送信する。また、出力部２４は、受信バッファ２３から（Ａ）を取り出して、（Ａ）をデータ処理部２５に渡す。データ処理部２５は、一例として、位置情報（リクエスト）を受信することで、当該位置情報に対応する情報（レスポンス）を取得し、リクエストの送信側に提供するようなアプリケーションに相当する機能部である。
【００８３】
データ処理部２５は、（Ａ）に対する（Ｂ）を取得し、（Ｂ）を送信部２２に渡す。送信部２２は、受信部２１から受け取った（Ａ´）（＝（Ａ））と、データ処理部２５から受け取った（Ｂ）とを含むデータを通信装置１０に送信する。
【００８４】
なお、上記の仕組みを適用するレイヤは特に限定されない。一例として、セッション層で上記の仕組みを用いた処理を行い、それよりも下位の層で、基本技術を用いた通信を行うこととしてもよい。
【００８５】
以下、本実施の形態に係る技術を具体的な場面に適用した実施例１〜６について説明する。
【００８６】
（実施例１）
警察、消防、生活インフラ等の緊急車両の往来・通行は、運転者が目や耳で情報をみて判断し優先して通行させているが、道幅が狭い場合や渋滞している場合に、必ずしも意図する通行ができるわけではない。
【００８７】
そこで、実施例１では、緊急車両の正しい位置情報をサーバ側に送信し、周囲にいる関係車両に、正しい位置情報から予測される移動情報や車両の属性情報を送信することで、緊急車両のスムースな往来を可能とする。また、本実施例により、緊急車両にとっては自らの位置情報と周囲の車の位置情報とを連動させることで到着予測時刻の推定も可能となる。
【００８８】
図１０は、実施例１を説明するためのシーケンス図である。図１０に示すように、実施例１において、リクエストの送信側である通信装置１０は、緊急車両等に搭載される通信装置である。また、通信装置２０は、受信した位置情報に基づき、他の緊急車両情報、一般車両通行状況等を返す機能を持つサービス提供サーバ等である。
【００８９】
通信装置１０は、リクエストとして自身（緊急車両）の位置情報を通信装置２０に送信する（ステップＳ１０１）。通信装置２０は、当該リクエストに応じて、受信したリクエスト（位置情報）とレスポンス（他の緊急車両情報、一般車両通行状況等）を通信装置１０に送信する（ステップＳ１０２）。
【００９０】
通信装置１０は、送信した位置情報と受信した位置情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、表示等の処理を実施する（ステップＳ１０３、Ｓ１０４）。
【００９１】
また、実施例１では、一般車両とサービス提供サーバ間でも図１０に示したシーケンスと同様のシーケンスの処理が行われている。すなわち、一般車両に搭載された通信装置１０が、リクエスト（位置情報）を通信装置２０に送信し、通信装置２０から通信装置１０に対してリクエスト（位置情報）とレスポンス（緊急車両情報、一般車両通行状況等）が返され、通信装置１０は、位置情報の比較を行うことで、レスポンス（緊急車両情報、一般車両通行状況等）を利用する。
【００９２】
上記のような処理により、例えば、一般車両は緊急車両の情報を得て、支障が無いように回避を行うことができ、また、緊急車両は、より円滑な運行が可能となる。
【００９３】
（実施例２）
次に、実施例２を説明する。
【００９４】
近年、ドライブレコーダを搭載する自動車、二輪車が増加している。ドライブレコーダで記録されたデータは、事故の際や犯罪時の証拠品として参考にされるが、厳密な意味でのデータの真偽が保証されているわけではない。
【００９５】
そこで、実施例２では、記録されたデータの全部もしくは一部をサーバに送信することにより、サーバ側に完全性、タイムスタンプの保証された証拠機能を有する情報の記録が可能になる。また、サーバに送信された情報が正しく処理されたことを確認できる。
【００９６】
図１１は、実施例２を説明するためのシーケンス図である。図１１に示すように、実施例２において、リクエストの送信側である通信装置１０は、ドライブレコーダ搭載車両に搭載される通信装置である。通信装置１０は、通信機能を持つドライブレコーダであってもよいし、ドライブレコーダと接続される通信装置であってもよい。また、通信装置２０は、データ保証を行う機能を持つサービス提供サーバ等である。
【００９７】
通信装置１０は、リクエストとしてドライブレコーダの記録情報を通信装置２０に送信する（ステップＳ２０１）。通信装置２０は、当該リクエストに応じて、受信したリクエスト（記録情報）とレスポンス（内容を保証する証明情報）を通信装置１０に送信する（ステップＳ２０２）。
【００９８】
通信装置１０は、送信した記録情報と受信した記録情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、例えば表示等の処理を実施する（ステップＳ２０３、Ｓ２０４）。
【００９９】
また、実施例２により、単なる記録ではなく、第三者が見ても日時、内容等が該当車両での記録と同一であると証明することが可能となる。
【０１００】
（実施例３）
次に、実施例３を説明する。
【０１０１】
近年、自動者の自動運転が注目されている。自動運転を実現する際に、車が自律的に動くのみでは安全な交通システムは実現できない。他の車、自転車等が存在するからである。
【０１０２】
そこで、実施例３では、他者と連動し安全性を向上させるため、遅延が小さく完全性が確保された位置情報をサーバに送信し、位置情報とともに、交通に関連する他者情報(属性、位置情報、速度)も合わせて受信し、送信した位置情報と突合することにより、安全な協調システムを実現することとしている。
【０１０３】
図１２は、実施例３を説明するためのシーケンス図である。図１２に示すように、実施例３において、リクエストの送信側である通信装置１０は、自動運転車両に搭載される通信装置である。また、通信装置２０は、交通に関連する他者情報を返す機能を持つサービス提供サーバ等である。
【０１０４】
通信装置１０は、リクエストとして自身（自動運転車両）の位置情報を通信装置２０に送信する（ステップＳ３０１）。通信装置２０は、当該リクエストに応じて、受信したリクエスト（位置情報）とレスポンス（他の車両、人等の通行情報）を通信装置１０に送信する（ステップＳ３０２）。
【０１０５】
通信装置１０は、送信した位置情報と受信した位置情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、表示等の処理を実施する（ステップＳ３０３、Ｓ３０４）。
【０１０６】
また、実施例３では、通常車両とサービス提供サーバ間でも図１２に示したシーケンスと同様のシーケンスの処理が行われている。すなわち、通常車両に搭載された通信装置１０が、リクエスト（位置情報）を通信装置２０に送信し、通信装置２０から通信装置１０に対してリクエスト（位置情報）とレスポンス（他の車両、人等の通行情報）が返され、通信装置１０は、位置情報の比較を行うことで、レスポンス（他の車両、人等の通行情報）を利用する。
【０１０７】
（実施例４）
次に、実施例４を説明する。
【０１０８】
ネット通販が一般化し、物流システム、特に各戸への配送に大きな負担がかかっている。各社個別に最適なシステムを構築しているが、絶対数の増加、夕方夜以降の配達の集中等が顕著である。
【０１０９】
そこで、実施例４では、最終的な荷物にタグを付与し、宛先情報、荷物情報等をあらかじめサービス提供サーバに送信することで、配達時刻予測、集中度の予測等をして、トラックや配達人員の確保をあらかじめ手配することを可能としている。
【０１１０】
図１３は、実施例４を説明するためのシーケンス図である。図１３に示すように、実施例４において、リクエストの送信側である通信装置１０は、発送元の通信装置である。通信装置１０は、例えば荷物のタグから得られた荷物情報を取得し、送信する機能を持つ。また、通信装置２０は、配達時刻予測、集中度の予測等をして、トラックや配達人員の確保等を行う機能を持つサービス提供サーバである。
【０１１１】
通信装置１０は、リクエストとして荷物情報を通信装置２０に送信する（ステップＳ４０１）。通信装置２０は、当該リクエストに応じて、受信したリクエスト（荷物情報）とレスポンス（発送先のリソース状況等）を通信装置１０に送信する（ステップＳ４０２）。
【０１１２】
通信装置１０は、送信した荷物情報と受信した荷物情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、表示等の処理を実施する（ステップＳ４０３、Ｓ４０４）。
【０１１３】
例えば、上記のように荷物情報を収集するサービス提供サーバ（通信装置２０）から最終発送拠点に対して、荷物の配達予測、追加リソースの手配、他社への委託等の情報が送信される。
【０１１４】
（実施例５）
次に、実施例５を説明する。
【０１１５】
近年、自動販売機にも通信機能を有するものが増加している。そこで、実施例５では、在庫情報や売上を、管理サーバに送信する際に、自動販売機の情報を送信し、折り返した情報を突合することで確実に送信されたことを確認する。
【０１１６】
図１４は、実施例５を説明するためのシーケンス図である。図１４に示すように、実施例５において、リクエストの送信側である通信装置１０は、自動販売機に備えられた通信装置である。通信装置１０は、例えば売上・在庫情報を取得し、送信する機能を持つ。また、通信装置２０は、自動販売機で販売する商品のメーカー等に管理サーバに相当する。
【０１１７】
通信装置１０は、リクエストとして売上・在庫情報を通信装置２０に送信する（ステップＳ５０１）。通信装置２０は、当該リクエストに応じて、受信したリクエスト（売上・在庫情報）とレスポンス（受け取り側の正常処理終了通知）を通信装置１０に送信する（ステップＳ５０２）。
【０１１８】
通信装置１０は、送信した売上・在庫情報と受信した売上・在庫情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、売上・在庫情報が確かに通信装置２０に送信されたことを確認する（ステップＳ５０３、Ｓ５０４）。
【０１１９】
（実施例６）
次に、実施例６を説明する。実施例６は、外出先でスマートフォンのＧＰＳ等から取得した位置情報を、サービス提供サーバに送り、周辺のナビ情報、観光情報等を合わせて送信する例である。
【０１２０】
図１５は、実施例６を説明するためのシーケンス図である。図１５に示すように、実施例６において、リクエストの送信側である通信装置１０は、スマートフォンである。また、通信装置２０は、位置情報に基づいて、ナビ情報、観光情報等を提供可能なサービス提供サーバである。
【０１２１】
通信装置１０は、リクエストとして位置情報を通信装置２０に送信する（ステップＳ６０１）。通信装置２０は、当該リクエストに応じて、受信したリクエスト（位置情報）とレスポンス（ナビ情報、観光情報等）を通信装置１０に送信する（ステップＳ６０２）。
【０１２２】
通信装置１０は、送信した位置情報と受信した位置情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、ナビ情報、観光情報等を表示する（ステップＳ６０３、Ｓ６０４）。
【０１２３】
（変形例）
これまで、リクエストを送信し、レスポンス（＋リクエスト）を受信する実施形態について説明した。前述したように、当該実施形態は、例えば無線通信のように、上りの帯域よりも下りの帯域が大きな環境で特に好適に適用可能である。
【０１２４】
しかし、ネットワーク環境によっては、下りにおいて、レスポンス＋リクエストを伝送するために十分な帯域がない場合も考えられる。また、双方向でリクエスト送信／レスポンス受信等を行うアプリケーションにおいて本実施の形態の技術を適用する場合、双方向で「レスポンス＋リクエスト」に相当する２データを送受信することになる。変形例では、このような場合でも、使用帯域の増加を可能な限り生じさせずに通信を可能とする技術について説明する。以下、図面を参照して変形例を説明する。なお、以下の変形例に係る技術は、「レスポンス」、「リクエスト」に限らず適用可能であることから、「データ」の用語を用いて説明する。
【０１２５】
＜変形例の概要＞
本変形例では、図１６に示すように、通信装置Ａと通信装置Ｂが備えられ、データの送受信を行う。
【０１２６】
図１６（ａ）は、これまでに説明した実施の形態の処理を示している。すなわち、まず、通信装置Ａが通信装置ＢにデータＡ（例：リクエスト）を送信する（ステップＳ７０１）。
【０１２７】
通信装置Ａにおいて、データＡが確実に通信装置Ｂに届いたことを確認するために、通信装置Ｂは、通信装置Ａから受信したデータＡ（通信装置Ｂで誤りなく受信できたとする）を通信装置Ａに送信する（ステップＳ７０２）。
【０１２８】
また、データＡを折り返すタイミングで、通信装置Ｂには、通信装置Ａに送るべきデータＢ（例：レスポンス）があり、当該データＢも通信装置Ａに送信する（ステップＳ７０２）。このような通信を行うケースにおいて、通信装置Ｂから通信装置Ａには、データＡとデータＢを送信することになり、データＡ（折り返しデータ）とデータＢを送信することを想定した十分な帯域がない場合、データＡ＋データＢの送信のために時間がかかり、遅延が生じることになる。
【０１２９】
図１６（ｂ）は、変形例に係る通信の概要を示している。まず、上記と同様に通信装置Ａが通信装置ＢにデータＡを送信する（ステップＳ７１０）。データＡを受信した通信装置Ｂは、データＡを通信装置Ａに折り返すとともに、データＢを通信装置Ａに送信することになるが、ここでは、これらをそのまま送るのではなく、データＡとデータＢとの排他的論理和（ＸＯＲ）をとったデータ（データＡＢと記述）を送ることとしている（ステップＳ７１１）。例えば、データＡとデータＢのデータサイズがそれぞれ１０であるとした場合、排他的論理和（ＸＯＲ）をとった後のデータＡＢのデータサイズも１０である。つまり、本実施の形態では、データＢ（あるいはデータＡ）のみを送る場合に比べて、データ量を増加させることなく、データＡとデータＢを送ることを可能としている。
【０１３０】
データＡＢを受信した通信装置Ａは、ステップＳ７１０にて送信し、保持しているデータＡと、受信したデータＡＢとの排他的倫理和を算出し、その結果であるデータＢ´を取得する（ステップＳ７１２）。データＡＢ、データＡともに誤りなく送受信されている場合、データＡＢとデータＡとの排他的倫理和はデータＢであることから、ステップＳ７１２の結果をデータＢ´と記述している。
【０１３１】
通信装置Ａは、ステップＳ７１２での結果であるデータＢ´と、受信したデータＡＢとの排他的論理和を算出し、その結果であるデータＡ´を取得する。データＡＢ、データＡともに誤りなく送受信されている場合、データＡＢとデータＢ´（データＢ）との排他的倫理和はデータＡであることから、ステップＳ７１３の結果をデータＡ´と記述している。
【０１３２】
更に、ステップＳ７１３では、保持しているデータＡと、算出されたデータＡ´とを比較して、これらが一致しているか否かをチェックし、一致している場合、データＡＢ、データＡともに誤りなく送受信されているものと推定し、データＢ´をデータＢ（通信装置Ｂが送信したデータＢ）であるとして用いることができる。また、ここで、データＡ´＝データＡであるから、通信装置ＢはデータＡを正しく受信したと判断（推定）することができる。なお、これは例であり、後述するように、より多段のチェックを行うこととしてもよい。
【０１３３】
上記の処理を行う通信システムは、データＡをリクエストとし、データＢをレスポンスとした場合、以下の通信システムの範囲に含まれるものである。
【０１３４】
つまり、当該通信システムは、第１の通信装置と第２の通信装置とを有し、前記第１の通信装置が、前記第２の通信装置にリクエストを送信し、前記第２の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータ（データＡＢ）を前記第１の通信装置に送信し、前記第１の通信装置が、送信したリクエスト（Ａ）と、前記第２の通信装置から受信したリクエスト（Ａ´）とを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスとして処理する。
【０１３５】
＜変形例に係る動作の詳細例＞
次に、変形例における通信システムの動作例をより詳細に説明する。以下では、送受信するデータの例として「パケット」を用いる。また、通信装置Ａから通信装置Ｂに送信するパケットをＡ、通信装置Ｂから通信装置Ａに送信するパケットをＢ、排他的論理和演算を行って送信するパケットをＰｋｔの記号で示す。また、明細書においては、排他的論理和演算を示す記号として、＊を使用している。更に、パケットの順序を示す識別子としてｉ（ｉは自然数）を用い、通信エラー等の可能性により正しいかどうか不明であるデータについては´（ダッシュ）を付している。
【０１３６】
本変形例においては、例えばセッション層にてセッション管理を行い、通信装置Ａから通信を開始するものとする。
【０１３７】
通信装置Ａにおいて、送出するパケットＡｉと、通信装置Ｂから直前に受信したパケットＢ（ｉ−１）との排他的論理和を、通信装置Ｂへ送信するパケットＰｋｔｉとする。なお、セッションの開始時、つまり、通信装置ＡにパケットＢ（ｉ−１）か存在しない場合、Ｂ（ｉ−１）＝０とする。
【０１３８】
一方、通信装置Ｂは、パケットＰｋｔｉ´を受信後、当該パケットＰｋｔｉ´とパケットＢ（ｉ−１）との排他的論理和演算を行って、Ｐｋｔｉ´＊Ｂ（ｉ−１）＝Ａｉ´を求める。この時点で、通信エラーが生じていない仮定においては、Ａｉ´＝Ａｉが成立するが、この時点では、この仮定が正しいかどうかわからない。なお、この例では、ｉが１であることを想定しており、Ｂ（ｉ−１）＝Ｂ０＝０である。つまり、セッション開始時においては、通信装置Ａと通信装置Ｂ間の取決め事項として、既に通信装置Ｂから値が０のデータが誤りなく通信装置Ａに送信されているものと仮定している。
【０１３９】
通信装置Ｂにおいて、Ａｉ´を導出後、これとＰｋｔｉ´との排他的論理和をとり、Ｂ（ｉ−１）´＝Ｐｋｔｉ´＊Ａｉ´を得る。ここでは、上記の仮定が正しいかどうか不明であるため、この演算の結果は、Ｂ（ｉ−１）ではなく、Ｂ（ｉ−１）´としている。ただし、ここでは、Ｂ（ｉ−１）＝０であり、これは通信と無関係に決定されており、通信エラーに依存せずに正しい。従って、Ｂ（ｉ−１）´とＢ（ｉ−１）を比較して、これらが等しければ、Ｂ（ｉ−１）´−＞Ｂ（ｉ−１）（Ｂ（ｉ−１）´がＢ（ｉ−１）であること）が決定的に検証される。
【０１４０】
よって、Ｐｋｔｉ´から上記の方法により導出したＢ（ｉ−１）´が正しければ、Ａｉ´−＞Ａ（ｉ−１）を仮定する（推定する）。これを確定するために、通信装置Ｂは、パケットＡｉと仮定されたパケットＡｉ´を通信装置Ａに送信する折り返し動作を行う。つまり、通信装置Ｂから送出すべきデータＢｉとＡｉ´との排他的論理和であるＰｋｔ（ｉ＋１）＝Ａｉ´＊Ｂｉを通信装置Ａに送信する。
【０１４１】
Ｐｋｔ（ｉ＋１）＝Ａｉ´＊Ｂｉを受信した通信装置Ａは、Ｂｉ´＝Ｐｋｔ（ｉ＋１）´＊Ａｉ、Ａｉ´＝Ｐｋｔ（ｉ＋１）´＊Ｂｉ´を算出し、算出したＡｉ´と、保持しているＡｉが一致していることを確認することで、通信装置ＢにおけるＡｉの到達確認を行うとともに、Ｂｉ´−＞Ｂｉを仮定して、通信装置Ｂへの折り返し動作を行う。ここで、もしも算出したＡｉ´と、保持しているＡｉが一致しない場合、Ａｉが正しく通信装置Ｂに到達しなかったと推定できるので、再送によるリカバリを行う。つまり、Ｐｋｔｉの再送を行う。
【０１４２】
次に、図１７を参照して、上記の内容を含む通信装置Ａと通信装置Ｂ間の動作シーケンス例を説明する。この例では、通信装置Ａと通信装置Ｂとの間で同時双方向通信を行う。また、セッションを通信装置Ａから開始し、通信装置Ａがセッションを終了させる。また、双方の通信装置Ａ、Ｂは、同一長のデータ（パケット）を通信する。なお、双方の送りたいデータ長が異なる場合は、０パディング等でデータ長を揃えることとしてもよい。
【０１４３】
また、通信装置Ａが通信を開始する際に、パケットＡに排他的論理和演算にて重畳するパケットＢは０であるとする。これが０であることは、通信装置Ａと通信装置Ｂにて既知である。以下の説明では、記述を簡潔にする観点から、パケットＰｋｔｉをＰｋｔｉと記述する等、適宜、パケットを記号のみで示している。また、図１７及び本明細書中の"Ｘ＝＝Ｙ"は、ＸとＹが一致するか比較することを意味する。
【０１４４】
図１７は、通信開始から既に複数回のパケット送受信が行われ、通信装置Ａが、パケットＡｉを送信するところからを示す図である。
【０１４５】
通信装置Ａが、Ｐｋｔｉ＝Ｂ（ｉ−１）´＊Ａｉを通信装置Ｂに送信する（ステップＳ８０１）。Ｂ（ｉ−１）´は通信装置ＡにおいてＢ（ｉ−１）であると推定されたパケットであり、通信装置Ｂへの折り返しデータである。
【０１４６】
通信装置Ａから送信されたＰｋｔｉは、通信エラーが発生している可能性のあるパケットであるＰｋｔｉ´として通信装置Ｂに届く。Ｐｋｔｉ´を受信した通信装置Ｂは、ステップＳ８０２において、Ａｉ´＝Ｐｋｔｉ´＊Ｂ（ｉ−１）、Ｂ（ｉ−１）´＝Ｐｋｔｉ´＊Ａｉ´の演算を行って、Ａｉ´とＢ（ｉ−１）´を取得する。ここで、Ａｉ´＝Ｐｋｔｉ´＊Ｂ（ｉ−１）の演算においては、Ｐｋｔｉ´に含まれるＢ（ｉ−１）´がＮｏｎ−Ｅｒｒｏｒ（エラーがない）であることを仮定している。
【０１４７】
通信装置Ｂは、Ｂ（ｉ−１）´と、通信装置Ｂが保持しているＢ（ｉ−１）との比較を行い、Ｂ（ｉ−１）´がＮｏｎ−Ｅｒｒｏｒであることの検証を行う。これらが一致した場合に、（ｉ−１）番のパケットで通信装置Ａに送信したＢ（ｉ−１）が正しく通信装置Ａに到達したことを推定でき、送達確認を行うことができる。また、Ｂ（ｉ−１）´とＢ（ｉ−１）が一致した場合には、Ａｉ´をＡｉであると推定する（Ａｉ´−＞Ａｉ）。この時点で、通信装置Ｂにおいて、Ａｉ´はその完全性が不明であるが、具体的な処理としては、この時点で、Ａｉ´をＡｉであると見なし、Ａｉ´をＡｉとして扱う処理を行うこととしてもよい。なお、Ｂ（ｉ−１）´とＢ（ｉ−１）が一致し、連続して、Ｂｉ´とＢｉが一致した場合に、Ａｉ´をＡｉであると見なし、ここで、Ａｉを用いる処理を行うこととしてもよい。
【０１４８】
Ｂ（ｉ−１）´とＢ（ｉ−１）が一致しなかった場合には、例えば、通信装置Ａに対してＢ（ｉ−１）を含むＰｋｔを再送する。
【０１４９】
次に、通信装置Ｂは、Ｐｋｔ（ｉ＋１）＝Ａｉ´＊Ｂｉを通信装置Ａに送信する（ステップＳ８０３）。Ａｉ´は、Ａｉに対する折り返しデータである。
【０１５０】
通信装置Ｂから送信されたＰｋｔ（ｉ＋１）は、通信エラーが発生している可能性のあるパケットであるＰｋｔ（ｉ＋１）´として通信装置Ａに届く。Ｐｋｔ（ｉ＋１）´を受信した通信装置Ａは、ステップＳ８０４において、Ｂｉ´＝Ｐｋｔ（ｉ＋１）´＊Ａｉ、Ａｉ´＝Ｐｋｔ（ｉ＋１）´＊Ｂｉ´の演算を行って、Ｂｉ´とＡｉ´を取得する。また、通信装置Ａは、Ａｉ´と、通信装置Ａが保持しているＡｉとの比較を行い、一致した場合に、ｉ番のパケットで通信装置Ｂに送信したＡｉが正しく通信装置Ｂに到達したことを推定でき、送達確認を行うことができる。また、Ａｉ´とＡｉが一致した場合には、Ｂｉ´をＢｉであると推定する（Ｂｉ´−＞Ｂｉ）。この時点で、通信装置Ａにおいて、Ｂｉ´はその完全性が不明であるが、具体的な処理としては、この時点で、Ｂｉ´をＢｉであると見なし、Ｂｉ´をＢｉとして扱う処理を行うこととしてもよい。
【０１５１】
Ａｉ´とＡｉが一致しなかった場合には、例えば、通信装置Ｂに対してＰｋｔｉを再送する。つまり、ステップＳ８０１に戻る。
【０１５２】
次に、通信装置Ａは、Ｐｋｔ（ｉ＋２）＝Ｂｉ´＊Ａ（ｉ＋１）を通信装置Ｂに送信する（ステップＳ８０５）。
【０１５３】
通信装置Ａから送信されたＰｋｔ（ｉ＋２）は、通信エラーが発生している可能性のあるパケットであるＰｋｔ（ｉ＋２）´として通信装置Ｂに届く。Ｐｋｔ（ｉ＋２）´を受信した通信装置Ｂは、ステップＳ８０６において、Ａ（ｉ＋１）´＝Ｐｋｔ（ｉ＋２）´＊Ｂｉ、Ｂｉ´＝Ｐｋｔ（ｉ＋２）´＊Ａ（ｉ＋１）´の演算を行って、Ａ（ｉ＋１）´とＢｉ´を取得する。また、通信装置Ｂは、Ｂｉ´と、通信装置Ｂが保持しているＢｉとの比較を行い、一致した場合に、（ｉ＋１）番のパケットで通信装置Ａに送信したＢｉが正しく通信装置Ａに到達したことを推定でき、送達確認を行うことができる。また、Ｂｉ´とＢｉが一致した場合には、Ａ（ｉ＋１）´をＡ（ｉ＋１）であると推定する（Ａ（ｉ＋１）´−＞Ａ（ｉ＋１））。この時点で、通信装置Ｂにおいて、Ａ（ｉ＋１）´はその完全性が不明であるが、具体的な処理としては、この時点で、Ａ（ｉ＋１）´をＡ（ｉ＋１）であると見なし、Ａ（ｉ＋１）´をＡ（ｉ＋１）として扱う処理を行うこととしてもよい。
【０１５４】
Ｂｉ´とＢｉが一致しなかった場合には、例えば、通信装置Ａに対してＰｋｔ（ｉ＋１）を送信する。つまり、ステップＳ８０３に戻る。ここで、ステップＳ８０３に戻った後のステップＳ８０４の処理において、仮に、Ａｉ´とＡｉが一致しなかった場合には、ステップＳ８０１に戻ることになる。
【０１５５】
ステップＳ８０１の開始時点から、上記ステップＳ８０６におけるＢｉ´とＢｉの一致が確認された時点で、通信装置Ａと通信装置Ｂとの間で同時双方向通信により、ＡｉとＢｉの転送が完了している。ここで、通信装置ＡにおいてＢｉが、通信装置ＢにおいてＡｉがそれぞれ確定したものとしてもよい。
【０１５６】
図１７に示すように、ステップＳ８０７以降も同様の動作により、パケットの送受信が実施される。
【０１５７】
図１７の例では、通信装置ＡがステップＳ８１３においてセッションを終了させるために値が０のデータ（図１７の例では、Ａ（ｉ＋３））を送ることとする。これは、セッションを開始する場合、通信装置Ａにおいて、直前に届いている受信データ（Ｂ０）を０と仮定した場合と同様である。換言すると、最終データが相手に、確実に届いた前提を設ける。つまり、送受信側において事前に取り決めておく。通信装置Ｂにおいて、通信装置Ａから最後のデータが０と判明していた場合、一つ前の通信装置Ｂの送信データと通信装置Ａからのその折り返しパケットの一致、および通信装置Ａからの最終パケットから導出した、通信装置Ａからの最後のデータと思われる値が０か否かを確認すれば十分である。
【０１５８】
なお、パケットの順序性について、相手側装置から受信したＰｋｔｉに対して、直前に相手側装置に送信したＰｋｔ（ｉ−１）と直後に相手側装置に送信するＰｋｔ（ｉ＋１）に保証が必要となる。順序性については、例えば、パケットに付される番号等により識別すればよい。
【０１５９】
＜単方向通信との親和性＞
変形例における双方向通信においては、送信対象データと折り返しデータの排他的論理和をとった値を送信データとしている。単方向通信においては、相手側からのデータが不要であり、これを０と定めておけば、排他的論理和を施したとしても、送信対象データと送信データが一致する。換言すると、相手側からの送信データが、常に０と事前に取り決めておくことで、双方向通信と単方向通信の親和性が確保できる。すなわち、本実施の形態で説明した方式は、双方向通信と単方向通信についてアルゴリズムを変更することなく同様に適用可能である。
【０１６０】
なお、単方向通信の場合、相手からの折り返しデータを一回確認するのみで十分だが、若干の送信バッファ利用効率が低下するも、双方向通信に備えて、次の折り返しデータも確認することとしてもよい。
【０１６１】
＜変形例における装置構成＞
図１８に、変形例における通信装置Ａもしくは通信装置Ｂとして用いられる通信装置１００の構成図を示す。図１８に示すように、通信装置１００は、データ送受信部１０１、送信データ作成部１０２、データ抽出部１０３、データ検証部１０４、データ格納部１０５、データ処理部１０６を含む。
【０１６２】
データ送受信部１０１は、通信回線を介してパケット等の送受信を行う。また、データ送受信部１０１は、送信バッファ、受信バッファを有する。データ処理部１０６は、送信すべきデータの生成や、受信したデータの利用等を行う機能部であり、例えば、上位レイヤ通信機能や所定のサービスを提供するアプリケーション等に相当するものである。
【０１６３】
送信データ作成部１０２は、データ処理部１０６により生成された相手側に送るべきデータをデータ処理部１０６から受け取るとともに、相手側に折り返すべきデータをデータ検証部１０４から受け取り、これらのデータの排他的論理和を計算することにより相手側に送信するデータを作成する。
【０１６４】
データ抽出部１０３は、相手側から受信したデータと、データ格納部１０５に格納されている既に送信したデータとに基づき、排他的論理和演算を行うことで、前述したＡ´、Ｂ´のデータを抽出する。一例として、通信装置１００が通信装置Ａとして使用される場合の図１７でのステップＳ８０４において、データ抽出部１０３は、Ｂｉ´＝Ｐｋｔ（ｉ＋１）´＊Ａｉ、Ａｉ´＝Ｐｋｔ（ｉ＋１）´＊Ｂｉ´の演算を行う。この例で、Ａｉはデータ格納部１０５に格納されているデータである。
【０１６５】
データ検証部１０４は、上記の例において、Ａｉ´がＡｉと一致するかどうかのチェックを行う。一致する場合は、Ａｉの送達確認がとれたと判断するとともに、Ｂｉ´をＢｉと見なしてデータ処理部１０６に渡す。もしくは、よりチェックを厳密に行うために、Ａｉ´がＡｉと一致した後、次にＡ（ｉ＋１）´がＡ（ｉ＋１）と一致したときに、Ａｉの送達確認がとれたと判断するとともに、Ｂｉ´をＢｉと見なしてデータ処理部１０６に渡すこととしてもよい。なお、このように多段のチェックを行う際に保持しておくデータについてもデータ格納部１０５に保持しておくこととしてよい。
【０１６６】
変形例に係る通信装置１００は、例えば、１つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、通信装置１００が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスク等のハードウェア資源を用いて、通信装置１００で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【０１６７】
また、図９に示した通信装置１０、２０のいずれか又は両方が、図９に示す機能に加えて変形例での処理を可能とするための通信装置１００の機能を含むこととしてもよい。
【０１６８】
（実施の形態のまとめ）
本実施の形態では、第１の通信装置と第２の通信装置とを有する通信システムであって、前記第１の通信装置が、前記第２の通信装置にリクエストを送信し、前記第２の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信し、前記第１の通信装置が、送信したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する通信システムが提供される。
【０１６９】
前記第２の通信装置は、前記リクエストが付加されたレスポンスを複数のデータに分割し、分割した複数のデータを連続的に前記第１の通信装置に送信することとしてもよい。
【０１７０】
前記第１の通信装置は、前記送信したリクエストと、前記第２の通信装置から受信したリクエストとが一致しないと判断した場合、前記リクエストを前記第２の通信装置に再送することとしてもよい。
【０１７１】
前記第１の通信装置は、前記リクエストを送信してから一定時間内に当該リクエストに対応するレスポンスを受信しない場合に、前記リクエストを前記第２の通信装置に再送することとしてもよい。
【０１７２】
前記第１の通信装置は、前記リクエストに対応するレスポンスを受信するまで、当該リクエストを連続的に前記第２の通信装置に送信することとしてもよい。
【０１７３】
前記第２の通信装置は、過去に受信したリクエストに対する更新情報を検出した場合に、当該リクエストと更新情報とを前記第１の通信装置に送信し、前記第１の通信装置は、前記更新情報とともに受信したリクエストを、送信済みの１つ又は複数のリクエストと比較し、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスを前記更新情報を用いて更新することとしてもよい。
【０１７４】
また、本実施の形態により、第１の通信装置と第２の通信装置とを有する通信システムが実行する通信方法であって、前記第１の通信装置が、前記第２の通信装置にリクエストを送信するステップと、前記第２の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信するステップと、前記第１の通信装置が、送信したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断するステップとを備える通信方法が提供される。
【０１７５】
また、本実施の形態により、第１の通信装置と第２の通信装置とを有する通信システムおいて使用される前記第１の通信装置に対応する通信装置であって、前記第２の通信装置に送信するリクエストを記憶部に保持し、当該リクエストを前記第２の通信装置に送信する送信手段と、前記第２の通信装置から、前記リクエストに対するレスポンスに当該リクエストを付加したデータを受信する受信手段と、前記記憶部に保持したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する比較手段とを備える通信装置が提供される。
【０１７６】
また、本実施の形態により、第１の通信装置と第２の通信装置とを有する通信システムおいて使用される前記第２の通信装置に対応する通信装置であって、前記第１の通信装置からリクエストを受信する受信手段と、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信する送信手段と、を備え、前記第１の通信装置に、当該第１の通信装置が送信したリクエストと、前記通信装置から受信したリクエストとを比較する処理を実行させる通信装置が提供される。
【０１７７】
本実施の形態に係る技術を用いることにより、リクエストを送信した通信装置は、リクエストが正しく届いたことを確認できるので信頼性を担保することができる。
【０１７８】
また、本実施の形態では、リクエストに対応するレスポンスを特定するために、リクエストに対応するコード等を用いる必要がないため、テーブル検索やテーブル書き換えの負荷をかけることがなく、効率的なリクエスト／レスポンスの通信が可能となる。
【０１７９】
また、本実施の形態に係るプロトコルでは、ＴＣＰとは異なり、コネクションを張らないため、リアルタイム処理が可能である。
【０１８０】
また、本実施の形態では、ＴＣＰのようにＡＣＫやウィンドウサイズ等の仕組みを持たないため、通信開始時および通信再開時などから効率のよい通信が可能となる。
【０１８１】
また、リクエストと、レスポンスとを排他的論理和等を用いて重畳して送信する形態では、リクエストの折り返しを用いた信頼性の高い通信を、スループットに影響を与えることなく、効率良く実施することが可能となる。
【０１８２】
（第１項）
第１の通信装置と第２の通信装置とを有する通信システムであって、
前記第１の通信装置が、前記第２の通信装置にリクエストを送信し、
前記第２の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信し、
前記第１の通信装置が、送信したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する
通信システム。
（第２項）
前記第２の通信装置は、前記リクエストが付加されたレスポンスを複数のデータに分割し、分割した複数のデータを連続的に前記第１の通信装置に送信する
第１項に記載の通信システム。
（第３項）
前記第１の通信装置は、前記送信したリクエストと、前記第２の通信装置から受信したリクエストとが一致しないと判断した場合、前記リクエストを前記第２の通信装置に再送する
第１項又は第２項に記載の通信システム。
（第４項）
前記第１の通信装置は、前記リクエストを送信してから一定時間内に当該リクエストに対応するレスポンスを受信しない場合に、前記リクエストを前記第２の通信装置に再送する
第１項ないし第３項のうちいずれか１項に記載の通信システム。
（第５項）
前記第１の通信装置は、前記リクエストに対応するレスポンスを受信するまで、当該リクエストを連続的に前記第２の通信装置に送信する
第１項ないし第４項のうちいずれか１項に記載の通信システム。
（第６項）
前記第２の通信装置は、過去に受信したリクエストに対する更新情報を検出した場合に、当該リクエストと更新情報とを前記第１の通信装置に送信し、
前記第１の通信装置は、前記更新情報とともに受信したリクエストを、送信済みの１つ又は複数のリクエストと比較し、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスを前記更新情報を用いて更新する
請求項１ないし５のうちいずれか１項に記載の通信システム。
（第７項）
第１の通信装置と第２の通信装置とを有する通信システムが実行する通信方法であって、
前記第１の通信装置が、前記第２の通信装置にリクエストを送信するステップと、
前記第２の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信するステップと、
前記第１の通信装置が、送信したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断するステップと
を備える通信方法。
（第８項）
第１の通信装置と第２の通信装置とを有する通信システムおいて使用される前記第１の通信装置に対応する通信装置であって、
前記第２の通信装置に送信するリクエストを記憶部に保持し、当該リクエストを前記第２の通信装置に送信する送信手段と、
前記第２の通信装置から、前記リクエストに対するレスポンスに当該リクエストを付加したデータを受信する受信手段と、
前記記憶部に保持したリクエストと、前記第２の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する比較手段と
を備える通信装置。
（第９項）
第１の通信装置と第２の通信装置とを有する通信システムおいて使用される前記第２の通信装置に対応する通信装置であって、
前記第１の通信装置からリクエストを受信する受信手段と、
前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第１の通信装置に送信する送信手段と、を備え、
前記第１の通信装置に、当該第１の通信装置が送信したリクエストと、前記通信装置から受信したリクエストとを比較する処理を実行させる
通信装置。
（第１０項）
コンピュータを、第８項又は第９項に記載の通信装置における各手段として機能させるためのプログラム。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【０１８３】
１０、２０、Ａ、Ｂ  通信装置
１１  入力部
１２  送信バッファ
１３  送信部
１４  受信部
１５  比較部
１６  制御部
２１  受信部
２２  送信部
２３  受信バッファ
２４  出力部
１７、２５  データ処理部
１０１  データ送受信部
１０２  送信データ作成部
１０３  データ抽出部
１０４  データ検証部
１０５  データ格納部
１０６  データ処理部
【図１】
0006545508.tif 000002
【図２】
0006545508.tif 000003
【図３】
0006545508.tif 000004
【図４】
0006545508.tif 000005
【図５】
0006545508.tif 000006
【図６】
0006545508.tif 000007
【図７】
0006545508.tif 000008
【図８】
0006545508.tif 000009
【図９】
0006545508.tif 000010
【図１０】
0006545508.tif 000011
【図１１】
0006545508.tif 000012
【図１２】
0006545508.tif 000013
【図１３】
0006545508.tif 000014
【図１４】
0006545508.tif 000015
【図１５】
0006545508.tif 000016
【図１６】
0006545508.tif 000017
【図１７】
0006545508.tif 000018
【図１８】
0006545508.tif 000019