JP2016195371A - 通信システム、通信装置、通信方法、及びプログラム - Google Patents

通信システム、通信装置、通信方法、及びプログラム Download PDF

Info

Publication number
JP2016195371A
JP2016195371A JP2015075482A JP2015075482A JP2016195371A JP 2016195371 A JP2016195371 A JP 2016195371A JP 2015075482 A JP2015075482 A JP 2015075482A JP 2015075482 A JP2015075482 A JP 2015075482A JP 2016195371 A JP2016195371 A JP 2016195371A
Authority
JP
Japan
Prior art keywords
communication device
request
communication
data
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015075482A
Other languages
English (en)
Other versions
JP6545508B2 (ja
Inventor
荻原 利彦
Toshihiko Ogiwara
利彦 荻原
光憲 太田
Mitsunori Ota
光憲 太田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Communications Corp
Original Assignee
NTT Communications Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Communications Corp filed Critical NTT Communications Corp
Priority to JP2015075482A priority Critical patent/JP6545508B2/ja
Publication of JP2016195371A publication Critical patent/JP2016195371A/ja
Application granted granted Critical
Publication of JP6545508B2 publication Critical patent/JP6545508B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】リクエスト/レスポンス型の通信において、リクエストとレスポンスとの関係性を効率的に確認することを可能とする技術を提供する。
【解決手段】第1の通信装置と第2の通信装置とを有する通信システムにおいて、前記第1の通信装置が、前記第2の通信装置にリクエストを送信し、前記第2の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第1の通信装置に送信し、前記第1の通信装置が、送信したリクエストと、前記第2の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する。
【選択図】図6

Description

本発明は、リクエスト/レスポンス型の通信の技術分野に関連するものである。
クライアントからサーバにリクエストを送信し、サーバがクライアントにレスポンス(所望の情報)を送信するというリクエスト/レスポンス型の通信形態が広く普及している。
リクエスト/レスポンス型の通信では、例えば、クライアントが特定の情報を必要とする場合に、当該特定の情報を提供するサーバに対して、特定の情報取得に必要な情報を含むリクエストを送信し、サーバは、当該リクエストに対応する特定の情報をレスポンスとしてクライアントに返す。
特開2004−357204号公報
リクエスト/レスポンス型の通信において、リクエストに対するレスポンスに高い信頼性を要する場合、リクエストが正しく届いたかどうかを確認することが必要である。一例として、車の自動運転等において、リクエストが制御サーバ側に正しく届いたかどうかの確認がとれない場合、レスポンス通りに自動運転を実施してよいかの信頼度が低下する。そのために、レスポンスの受信側は、自らの発した正しいリクエストに対するレスポンスであることを確認することが必要である。しかし、TCP/IP等の従来技術による通信では完全性が担保できない上、遅延が大きくなり、例えば車の自動運転等のようなリアルタイムの処理は難しい。
また、リクエストを受信したサーバがレスポンスを返す際に、どのリクエストに対応するかを示すためにリクエストに対応するコード等をレスポンスに挿入するのが一般的である。レスポンスを受信したクライアント側では、レスポンス内からコードを取り出し、テーブルを検索して、コードに対応するリクエスト種別を割り出し、どのリクエストに対するレスポンスなのかを特定する。しかし、このテーブル検索は負荷がかかる。特にテーブル書き換えの場合、排他制御が必要になるため負荷が大きい。これらの負荷集中もリアルタイム処理に効く。
上記のとおり、従来技術では、リクエスト/レスポンス型の通信において、リクエストが通信相手に正しく届いたかどうか、通信相手から受信したレスポンスが、送信したリクエストに対するレスポンスかどうか等、リクエストとレスポンスとの関係性を効率的に確認することが困難であった。例えばTCPの場合、リクエストとレスポンスの対をコネクション/チャネルなる概念で対応させている。ソフトウェア的には、BSDソケットを用いて、一つの処理(リクエストとレスポンスの対)に、一つのソケットを対応させている。
換言すると、コネクションを張らなければ、他のトラフィックと区別することが困難である。コネクションを形成するためには、3ウェイハンドシェイクが必須であり、それがリアルタイム処理を困難にしている。
本発明は上記の点に鑑みてなされたものであり、リクエスト/レスポンス型の通信において、リクエストとレスポンスとの関係性を効率的に確認することを可能とする技術を提供することを目的とする。
本発明の実施の形態によれば、第1の通信装置と第2の通信装置とを有する通信システムであって、
前記第1の通信装置が、前記第2の通信装置にリクエストを送信し、
前記第2の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第1の通信装置に送信し、
前記第1の通信装置が、送信したリクエストと、前記第2の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する
通信システムが提供される。
また、本発明の実施の形態によれば、第1の通信装置と第2の通信装置とを有する通信システムが実行する通信方法であって、
前記第1の通信装置が、前記第2の通信装置にリクエストを送信するステップと、
前記第2の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第1の通信装置に送信するステップと、
前記第1の通信装置が、送信したリクエストと、前記第2の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断するステップと
を備える通信方法が提供される。
また、本発明の実施の形態によれば、第1の通信装置と第2の通信装置とを有する通信システムおいて使用される前記第1の通信装置に対応する通信装置であって、
前記第2の通信装置に送信するリクエストを記憶部に保持し、当該リクエストを前記第2の通信装置に送信する送信手段と、
前記第2の通信装置から、前記リクエストに対するレスポンスに当該リクエストを付加したデータを受信する受信手段と、
前記記憶部に保持したリクエストと、前記第2の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する比較手段と
を備える通信装置が提供される。
また、本発明の実施の形態によれば、第1の通信装置と第2の通信装置とを有する通信システムおいて使用される前記第2の通信装置に対応する通信装置であって、
前記第1の通信装置からリクエストを受信する受信手段と、
前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第1の通信装置に送信する送信手段と、を備え、
前記第1の通信装置に、当該第1の通信装置が送信したリクエストと、前記通信装置から受信したリクエストとを比較する処理を実行させる
通信装置が提供される。
本発明の実施の形態によれば、リクエスト/レスポンス型の通信において、リクエストとレスポンスとの関係性を効率的に確認することを可能とする技術が提供される。
本発明の実施の形態における通信システムの構成図である。 基本技術を説明するための図である。 基本技術における装置構成を示す図である。 基本技術における通信装置10の処理の流れを示すフローチャートである。 基本技術における通信装置20の処理の流れを示すフローチャートである。 本実施の形態におけるリクエストとレスポンスの送受信動作例1を説明するための図である。 本実施の形態におけるリクエストとレスポンスの送受信動作例2を説明するための図である。 本実施の形態におけるリクエストとレスポンスの送受信動作例3を説明するための図である。 リクエストとレスポンスを行う実施の形態における装置構成を示す図である。 実施例1を説明するためのシーケンス図である。 実施例2を説明するためのシーケンス図である。 実施例3を説明するためのシーケンス図である。 実施例4を説明するためのシーケンス図である。 実施例5を説明するためのシーケンス図である。 実施例6を説明するためのシーケンス図である。 変形例の基本的な動作を説明するための図である。 変形例における通信システムの動作を詳細に説明するためのシーケンス図である。 変形例における通信装置Aもしくは通信装置Bとして用いられる通信装置100の機能構成図である。
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
(システム構成)
図1に、本発明の実施の形態に係る通信システムの構成図を示す。図1に示すように、本実施の形態に係る通信システムは、通信装置10と通信装置20とが通信回線により接続された構成を有する。
通信装置10、20は、それぞれ、通信回線を介してデータを送受信する機能を含む装置である。通信装置10、20はいずれも特定の種類の装置に限られないが、例えば、通信装置10、20の一方がユーザ端末(クライアント)で、他方がサーバである。また、通信装置10、20のいずれか又は両方が、データの中継を行うルータ、スイッチ等であってもよい。
図1において線で図示される通信回線は、通信装置10から通信装置20への通信と、通信装置20から通信装置10への通信を同時に行うことが可能な双方向通信回線でもよいし、同時には片方向しか通信できない回線であってもよい。当該通信回線は、通信装置10から通信装置20への通信帯域、及び通信装置20から通信装置10への通信帯域を持つ回線であれば、どのような回線でもよい。また、当該通信回線は、伝送路、パス、通信路等と呼んでもよい。また、当該通信回線は、光ファイバーや電気ケーブル等の物理的な回線であってもよいし、多数の装置からなるインターネット等のネットワーク内に形成された論理的な回線(例:VPN)であってもよいし、これらを組み合わせたものであってもよい。また、当該通信回線が、LTE、無線LAN等の無線回線であってもよい。
通信回線についての上記事項は、変形例における通信装置Aと通信装置Bとの間の回線にもあてはまる。
(基本技術について)
本実施の形態では、特にリクエストとレスポンスの送受信に好適な通信技術について説明するが、まず、当該通信技術の基となる基本技術について説明する。
図2は、基本技術におけるデータの送受信方法を説明するための図である。図2の例では、通信装置10がデータの送信側であり、通信装置20がデータの受信側である。なお、データは、「パケット」、「フレーム」、「セル」等であってもよい。「データ」の用語は、これらを包含する意味で使用する。
図2に示すように、通信装置10がデータを送信すると、通信装置20は受信したデータを折り返して送信する。通信装置10と通信装置20との間でコネクションの確立は行わずに、通信装置10は通信の開始時から設定により定められたデータ数を順次送信する。設定により定められたデータ数とは、例えば輻輳が発生しない程度のデータ数であり、利用可能な帯域を上限としたり、予め通信相手と調整しておく。
通信装置10は、折り返して送信された折返しデータを受信すると、送信したデータと受信した折返しデータを突合し、データが正しく送信されたことを確認する。なお、データ同士を突合した結果、一致しない場合はそのデータを再送する。また、タイムアウト時間内に折返しデータを受信しない場合もデータを再送する。なお、通信装置10は通信装置20からの折返しデータの返送を待たずに次々とデータを送信するので回線の使用率が向上する。
次に、基本技術に係る通信システムにおける各装置の構成について説明する。
図3は、基本技術における各通信装置の構成を示す図である。図3に示すように、通信装置10は、入力部11、送信バッファ12、送信部13、受信部14、比較部15、及び制御部16を備える。
入力部11は、アプリケーション等から送信されるデータを入力し、当該データを例えば所定のサイズに分割して送信バッファ12に格納する。送信バッファ12は、データを一時的に保持する記憶領域(記憶部)である。図3では、データを丸印で示した。
送信部13は、送信バッファ12からデータを取り出し、例えば、送信元、送信先、及び再送やフロー制御に用いる制御情報を備えたヘッダーをデータに付与して通信装置20へ送信する。ヘッダーに記載する情報としては、例えばデータの順番を示すシーケンス番号がある。データの到着する順番が入れ替わった場合は、通信装置20はシーケンス番号を用いてデータの順番を入れ替えることができる。
受信部14は、通信装置20から折り返して送信された折返しデータを受信して比較部15に送信する。比較部15は、折返しデータと送信バッファ12に格納された送信済のデータを比較する。
比較の結果、一致した場合は比較したデータを送信バッファ12から削除し、一致しなかった場合は、比較したデータの再送を制御部16に指示する。折返しデータに対応する送信済のデータは、例えばデータのヘッダーに記載したシーケンス番号を用いて特定することができる。制御部16は、データの再送やフロー制御等の通信制御を行う。
通信装置20は、受信部21、送信部22、受信バッファ23、及び出力部24を備える。受信部21は、通信装置10からデータを受信し、受信したデータを受信バッファ23に格納するとともに、受信したデータを送信部22へ送信する。
送信部22は、受信部21から受信したデータを折返しデータとして通信装置10へ送信する。受信バッファ23は、受信したデータを一時的に保持する記憶領域である。
出力部24は、受信バッファ23からデータを取り出して通信装置10が送信したデータを再構築し、再構築したデータをアプリケーション等に渡す。なお、再構築が必要な場合に、再構築をアプリケーション等で行うこととしてもよい。
なお、通信装置10及び通信装置20が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは通信装置10及び通信装置20が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。このように、通信装置10及び通信装置20が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行される点は、図9に示す構成についても同様である。
また、図3では、通信装置10及び通信装置20はそれぞれ送信機能と受信機能のみを持つ装置として図示したが、通信装置10と通信装置20の双方が送受信機能を持ってもよい。
一例として、基本技術における通信システムは、IPやUDP等の既存のデータグラム通信上に実装することが可能である。
次に、基本技術における通信システムの動作について説明する。まず、通信装置10がデータを送信する処理について図4のフローチャートを参照して説明する。
まず、送信部13は送信バッファ12からデータを取り出して通信装置20へ送信する(ステップS11)。続いて、受信部14が通信装置20から折返しデータを受信したか否か判定する(ステップS12)。
受信部14が折返しデータを受信すると(ステップS12のYES)、受信部14は受信した折返しデータを比較部15へ送信し、比較部15は折返しデータと送信バッファ12が保持する送信したデータを比較する(ステップS13)。
比較部15による比較の結果、折返しデータと送信したデータが一致した場合(ステップS14のYES)、送信したデータは通信装置20において受信されたことが確認され、送信バッファ12から送信済のデータを削除する(ステップS15)。
一方、折返しデータを受信していない場合(ステップS12のNO)、予め設定した非常に短いタイマーがタイムアウトしたか否か判定する(ステップS16)。基本技術における通信システムは、高速なネットワークを用いてデータを送受信し、更に通信装置20は受信したデータをそのまま即座に折り返して返信することを想定しているので、長いタイマーを設定する必要はない。そこで、通信装置10と通信装置20との間のネットワークの通信品質を考慮した非常に短いタイマーを設定する。
タイムアウトしていない場合は(ステップS16のNO)、ステップS12に戻って折返しデータの到着を待つ。
タイムアウトした場合は(ステップS16のYES)、送信バッファ12からデータを再び取得して再送する(ステップS17)。タイムアウト時は例えば1回程度のリトライのみ実施し、リトライのタイムアウト時はバックオフして待機する。バックオフの処理は、例えばCSMA/CDと同様の処理を行うことができる。更にタイムアウトしたときは、例えば、他の通信方法(例えばTCP)を用いて通信装置20の状態を確認することができる。
また、比較部15による比較の結果、折返しデータと送信したデータが一致していない場合も(ステップS14のNO)、データの再送処理を行う(ステップS17)。データの再送は、例えば1データ毎に行われる。
続いて、通信装置20がデータを受信する処理について図5のフローチャートを参照して説明する。
図5に示すとおり、受信部21がデータを受信すると、受信したデータを受信バッファ23に格納するとともに、受信したデータを送信部22に渡す(ステップS21)。送信部22は、受信部21から受け取ったデータをデータの送信元である通信装置10へ送信する(ステップS22)。
上記のような処理により、折返しデータとの比較結果が不一致の場合あるいはタイムアウトした場合は該当するデータについてのみデータを再送することで、通信装置20が受信したデータを再送する無駄を生じることがない。
(本発明の実施の形態の説明)
前述したように、従来技術においては、リクエストとレスポンスとの関係性を効率的に確認することが困難であるという課題があった。
そこで、本実施の形態では、リクエスト/レスポンス型の通信において、上記基本技術での折り返しデータと同様に、リクエストを折り返すことで、リクエストとレスポンスとの関係性(対応付け)を効率的に確認することを可能としている。
本実施の形態におけるシステムの全体構成は図1に示したとおりであり、通信装置10と通信装置20を有する。ただし、本実施の形態では、通信装置10がデータとしてリクエストを送信する側の装置(例:クライアント)であり、通信装置20は当該リクエストに対するレスポンスを送信する装置(例:サーバ)である。
通信装置10と通信装置20とを接続する通信回線はどのようなものでもよいが、本実施の形態では、当該通信回線がLTE、無線LAN等の無線回線である場合に、特にその効果が大きい。
すなわち、無線通信における搬送電波について、複数個の搬送電波(チャネル)を束ねて利用してデータ転送速度を増大させることが行われている。無線通信では、データ転送のためにチャネルが割り当てられたとしても、データの送受信がない場合、チャネルがリリースされてしまう。一例として、TCP/IPのようにACKを待たなければならない通信の場合、ACK待ちの間にチャネルがリリースされ、次のデータを送信するために新たなチャネル取得のための待ち時間が発生する。
一方、本実施の形態では、上記基本技術を用いるため、連続でデータを送信し続けることが可能であるため、一度確保したチャネルを維持したままデータ転送が可能であるという効果がある。
更に、LTE等の無線通信では、上り帯域よりも下り帯域のほうが大きいのが一般的であるため、多くの場合において、上りでリクエストを送信し、下りでリクエスト+レスポンスを受信することが想定される本実施の形態に好適である。
(本実施の形態におけるリクエスト/レスポンスの送受信動作例)
以下、本実施の形態におけるリクエスト/レスポンスの送受信動作例を説明する。
<リクエスト/レスポンスの送受信動作例1>
図6を参照してリクエスト/レスポンスの送受信動作例1を説明する。通信装置10は、リクエスト(A)を通信装置20に送信する(ステップS31)。通信装置20は、当該リクエストに応じたレスポンス(B)を生成し、レスポンス(B)に、リクエスト(A)の折り返しデータ(A´)を付加し、(A´)と(B)とを通信装置10に送信する(ステップS32)。折り返しデータ(A´)は、リクエスト(A)と同じデータである。
(A´)と(B)を受信した通信装置10は、(A)と(A´)を比較し、これらが一致した場合に、レスポンス(B)は、リクエスト(A)を正しく受け取った通信装置20からのリクエスト(A)に対応するレスポンス(B)であると判断し、当該レスポンス(B)を(A)のレスポンスとして処理する。レスポンス(B)を(A)のレスポンスとして処理するとは、例えば、リクエスト(A)とともにレスポンス(B)の内容を表示したり、有効なデータとして記憶部に格納したりすることである。
(A)を受信した通信装置20からの(A´)の返信、及び(A)と(A´)の比較の結果、一致すれば(A)が正しく通信装置20に届いていたと判断する点は前述した基本技術と同じである。本実施の形態では、更に、通信装置20は、(A´)とともに、(B)を通信装置20に返し、通信装置10において、(A)と(A´)の比較の結果に基づいて、(B)が(A)に対するレスポンスであるか否かを判断することとしているのである。
通信装置10は、(A)と(A´)を比較した結果、これらが一致しないと判断した場合は、(A)を通信装置20に再送する。これは、(B)の再送を求める再送要求でもある。
また、通信装置10は、リクエストを送信した時刻から、一定時間以内に、当該リクエストに対するレスポンスを受信しない場合にも、当該リクエストを通信装置20に再送する。これは、(B)の再送を求める再送要求でもある。
<リクエスト/レスポンスの送受信動作例2>
図7を参照してリクエスト/レスポンスの送受信動作例2を説明する。送受信動作例2においても、まず、通信装置10は、リクエスト(A)を通信装置20に送信する(ステップS41)。
通信装置20は、当該リクエストに応じたレスポンス(B)を生成する。送受信動作例2では、(B)のデータサイズが大きいため、通信装置20は、(A´)+(B)のデータを複数のデータに分割して送信する。データサイズが大きいとは、例えば、所定の閾値よりも大きいことである。
すなわち、(B)は(B−1)と(B−2)に分割される。通信装置20は、ステップS42において、(A´)+(B−1)を通信装置10に送信し、ステップS43において、(B−2)を通信装置10に送信する。このように、分割した複数のデータをACK等を待つことなく連続的に送信する。
通信装置10は、(B−1)と(B−2)を結合(マージ)して(B)を作成する。なお、(B−1)と(B−2)が(B)の分割データであることは、例えば、通信装置20において、(B)の分割データであることを示す情報をヘッダ等に付加することで、通信装置10において識別できる。
(A´)と(B)を受信した通信装置10は、(A)と(A´)を比較し、これらが一致した場合に、レスポンス(B)は、リクエスト(A)を正しく受け取った通信装置20からの、当該リクエスト(A)に対するレスポンス(B)であると判断し、当該レスポンス(B)を(A)のレスポンスとして処理する(ステップS43)。
<リクエスト/レスポンスの送受信動作例3>
図8を参照してリクエスト/レスポンスの送受信動作例3を説明する。送受信動作例3において、通信装置10は、リクエスト(A)を、当該(A)に対応するレスポンスの受信を確認できるまで送信し続ける。すなわち、図8の例において、通信装置10は、ステップS51〜S53においてリクエスト(A)を連続的に送信している。このように連続的にデータを送信することで、例えば、上りのチャネルの確保が可能となる。
送受信動作例3において、リクエスト(A)を連続的に受信する通信装置20は、各リクエスト(A)に対して、(A´)を付加してレスポンスを送信することができる。図8に示す例では、レスポンス(B)のサイズが大きく、これを(B−1)と(B−2)に分割して送信している。また、本例では、リクエスト(A)を連続的に受信することから、通信装置20は、当該リクエストに対応して、(B−1)と(B−2)のそれぞれに(A´)を付加して送信する。
ここで、通信装置20は、(B)を全部送信し終わるまでに重複して受信した(A)を破棄してもよい。
また、基本技術で説明したように、データ(リクエスト)の送信側で、折り返しデータを確認できない場合等に、データ(リクエスト)の再送(再送要求)を行うが、送受信動作例3においては、再送ではなくてもリクエスト(A)が複数回送信されている。従って、通信装置20は、(例えばチャネル確保のために)図8に示すように連続的に送信される(A)と、再送要求としての(A)とを区別するために、例えば、(B)を送信後、一定時間以降に受信した(A)を再送要求とみなすこととしてよい。また、通信装置10において、再送要求のために(A)を送る際に、再送要求を示すフラグをヘッダ等に含めることとしてもよい。
更に以下のような動作も可能である。
<クライアント(通信装置10)側行動証明>
リクエスト(A)と(A´)が一致した(A)について、通信装置10が当該(A)を保存することとしてもよい。また、通信装置20は、リクエスト(A)を時刻とともに保存することとしてもよい。通信装置10に保存されたリクエスト(A)と、通信装置20に保存されたリクエスト(A)を比較することで、当該時刻に通信装置10側でデータの改ざん等なく、確かにその内容を送信したことが保証される。また、リクエスト(A)が、通信装置10側の状況を示すものである場合、これを通信装置10側の行動情報として利用することが可能である。
<レスポンスデータの更新/追加>
通信装置20は、受信したリクエスト(A)を記憶部に保持するとともに、受信したリクエスト(A)に対するレスポンス(B)を送信後、当該リクエスト(A)に対する更新データや追加データ(これらを総称して更新情報と呼ぶ)を検出した場合、当該リクエスト(A)(そのまま)+更新情報を通信装置10に送信することとしてもよい。更新情報を検出した場合とは、例えば、過去の時点から現在にかけて状況が変化したために、リクエスト(A)に対する過去のレスポンス(B)と異なる情報を通信装置20が生成した場合、もしくは、当該情報を通信装置20が別の装置から取得したような場合である。
通信装置10では、通信装置20から受信する当該リクエスト(A)を、以前に送信したリクエスト(1つ又は複数)と比較し、一致するものがある場合、当該一致したリクエストに対応するレスポンスデータを、受信した更新情報でもって更新又は追加する。比較対象とする送信済みのリクエストは、送信した全てのリクエストとしてもよいし、リクエスト送信後にレスポンスを受信したものに限ってもよい。
上記のような処理を行うことで、例えば、自動車の自動運転等で緊急車両等が急速に近づいているような場合に、適切な対応をとることを可能とする情報を更新/追加することが可能となる。
(本実施の形態における装置構成)
図9に、本実施の形態の通信システムにおける各装置の構成を示す。図9に示す構成は、図3に示す構成に加えて、通信装置10にデータ処理部17が追加され、通信装置20にデータ処理部25が追加されたものである。以下では、図6に示した送受信動作例1に基づき、通信装置10の送信するデータがリクエスト(A)であり、通信装置20が、レスポンス(B)を返す場合における各機能部の動作を説明する。なお、以下で説明する動作は例である。通信装置10及び通信装置20は、上述した各例の動作を全て実行できる。
データ処理部17は、リクエスト(例:位置情報)をサーバに送信することで、当該位置情報に対応する情報(レスポンス)を表示するようなアプリケーションに相当する機能部である。
入力部11は、データ処理部17から出力されるリクエスト(A)を入力し、送信バッファ12に格納する。送信バッファ12は、データを一時的に保持する記憶部である。
送信部13は、送信バッファ12からリクエスト(A)を取り出し、例えば、送信元、送信先、及び再送やフロー制御に用いる制御情報を備えたヘッダーをリクエスト(A)に付与して通信装置20へ送信する。ヘッダーに記載する情報としては、例えばデータの順番を示すシーケンス番号がある。データの到着する順番が入れ替わった場合は、通信装置20はシーケンス番号を用いてデータの順番を入れ替えることができる。
受信部14は、通信装置20から(A´)+(B)からなるデータ(例:パケット)を受信して(A´)を比較部15に送信する。(B)については記憶手段に保持しておく。比較部15は、(A´)と送信バッファ12に格納された送信済の(A)を比較する。
比較の結果、一致した場合は比較した(A)を送信バッファ12から削除するとともに、一致したことを受信部14に通知する。一致しなかった場合は、比較した(A)の再送を制御部16に指示するとともに、例えば受信部14に対して保持している(B)を削除するよう指示する。
一致したことを通知された受信部14は、(B)をデータ処理部17に渡す。なお、データ処理部17に(A´)+(B)からなるデータを渡すこととしてもよい。データ処理部17は、例えば(B)を表示する等の処理を行う。なお、受信部14は、前述した分割データの組み立て等の機能も含んでいる。
通信装置20の受信部21は、通信装置10から(A)を受信し、受信した(A)を受信バッファ23に格納するとともに、受信した(A)を送信部22へ送信する。また、出力部24は、受信バッファ23から(A)を取り出して、(A)をデータ処理部25に渡す。データ処理部25は、一例として、位置情報(リクエスト)を受信することで、当該位置情報に対応する情報(レスポンス)を取得し、リクエストの送信側に提供するようなアプリケーションに相当する機能部である。
データ処理部25は、(A)に対する(B)を取得し、(B)を送信部22に渡す。送信部22は、受信部21から受け取った(A´)(=(A))と、データ処理部25から受け取った(B)とを含むデータを通信装置10に送信する。
なお、上記の仕組みを適用するレイヤは特に限定されない。一例として、セッション層で上記の仕組みを用いた処理を行い、それよりも下位の層で、基本技術を用いた通信を行うこととしてもよい。
以下、本実施の形態に係る技術を具体的な場面に適用した実施例1〜6について説明する。
(実施例1)
警察、消防、生活インフラ等の緊急車両の往来・通行は、運転者が目や耳で情報をみて判断し優先して通行させているが、道幅が狭い場合や渋滞している場合に、必ずしも意図する通行ができるわけではない。
そこで、実施例1では、緊急車両の正しい位置情報をサーバ側に送信し、周囲にいる関係車両に、正しい位置情報から予測される移動情報や車両の属性情報を送信することで、緊急車両のスムースな往来を可能とする。また、本実施例により、緊急車両にとっては自らの位置情報と周囲の車の位置情報とを連動させることで到着予測時刻の推定も可能となる。
図10は、実施例1を説明するためのシーケンス図である。図10に示すように、実施例1において、リクエストの送信側である通信装置10は、緊急車両等に搭載される通信装置である。また、通信装置20は、受信した位置情報に基づき、他の緊急車両情報、一般車両通行状況等を返す機能を持つサービス提供サーバ等である。
通信装置10は、リクエストとして自身(緊急車両)の位置情報を通信装置20に送信する(ステップS101)。通信装置20は、当該リクエストに応じて、受信したリクエスト(位置情報)とレスポンス(他の緊急車両情報、一般車両通行状況等)を通信装置10に送信する(ステップS102)。
通信装置10は、送信した位置情報と受信した位置情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、表示等の処理を実施する(ステップS103、S104)。
また、実施例1では、一般車両とサービス提供サーバ間でも図10に示したシーケンスと同様のシーケンスの処理が行われている。すなわち、一般車両に搭載された通信装置10が、リクエスト(位置情報)を通信装置20に送信し、通信装置20から通信装置10に対してリクエスト(位置情報)とレスポンス(緊急車両情報、一般車両通行状況等)が返され、通信装置10は、位置情報の比較を行うことで、レスポンス(緊急車両情報、一般車両通行状況等)を利用する。
上記のような処理により、例えば、一般車両は緊急車両の情報を得て、支障が無いように回避を行うことができ、また、緊急車両は、より円滑な運行が可能となる。
(実施例2)
次に、実施例2を説明する。
近年、ドライブレコーダを搭載する自動車、二輪車が増加している。ドライブレコーダで記録されたデータは、事故の際や犯罪時の証拠品として参考にされるが、厳密な意味でのデータの真偽が保証されているわけではない。
そこで、実施例2では、記録されたデータの全部もしくは一部をサーバに送信することにより、サーバ側に完全性、タイムスタンプの保証された証拠機能を有する情報の記録が可能になる。また、サーバに送信された情報が正しく処理されたことを確認できる。
図11は、実施例2を説明するためのシーケンス図である。図11に示すように、実施例2において、リクエストの送信側である通信装置10は、ドライブレコーダ搭載車両に搭載される通信装置である。通信装置10は、通信機能を持つドライブレコーダであってもよいし、ドライブレコーダと接続される通信装置であってもよい。また、通信装置20は、データ保証を行う機能を持つサービス提供サーバ等である。
通信装置10は、リクエストとしてドライブレコーダの記録情報を通信装置20に送信する(ステップS201)。通信装置20は、当該リクエストに応じて、受信したリクエスト(記録情報)とレスポンス(内容を保証する証明情報)を通信装置10に送信する(ステップS202)。
通信装置10は、送信した記録情報と受信した記録情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、例えば表示等の処理を実施する(ステップS203、S204)。
また、実施例2により、単なる記録ではなく、第三者が見ても日時、内容等が該当車両での記録と同一であると証明することが可能となる。
(実施例3)
次に、実施例3を説明する。
近年、自動者の自動運転が注目されている。自動運転を実現する際に、車が自律的に動くのみでは安全な交通システムは実現できない。他の車、自転車等が存在するからである。
そこで、実施例3では、他者と連動し安全性を向上させるため、遅延が小さく完全性が確保された位置情報をサーバに送信し、位置情報とともに、交通に関連する他者情報(属性、位置情報、速度)も合わせて受信し、送信した位置情報と突合することにより、安全な協調システムを実現することとしている。
図12は、実施例3を説明するためのシーケンス図である。図12に示すように、実施例3において、リクエストの送信側である通信装置10は、自動運転車両に搭載される通信装置である。また、通信装置20は、交通に関連する他者情報を返す機能を持つサービス提供サーバ等である。
通信装置10は、リクエストとして自身(自動運転車両)の位置情報を通信装置20に送信する(ステップS301)。通信装置20は、当該リクエストに応じて、受信したリクエスト(位置情報)とレスポンス(他の車両、人等の通行情報)を通信装置10に送信する(ステップS302)。
通信装置10は、送信した位置情報と受信した位置情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、表示等の処理を実施する(ステップS303、S304)。
また、実施例3では、通常車両とサービス提供サーバ間でも図12に示したシーケンスと同様のシーケンスの処理が行われている。すなわち、通常車両に搭載された通信装置10が、リクエスト(位置情報)を通信装置20に送信し、通信装置20から通信装置10に対してリクエスト(位置情報)とレスポンス(他の車両、人等の通行情報)が返され、通信装置10は、位置情報の比較を行うことで、レスポンス(他の車両、人等の通行情報)を利用する。
(実施例4)
次に、実施例4を説明する。
ネット通販が一般化し、物流システム、特に各戸への配送に大きな負担がかかっている。各社個別に最適なシステムを構築しているが、絶対数の増加、夕方夜以降の配達の集中等が顕著である。
そこで、実施例4では、最終的な荷物にタグを付与し、宛先情報、荷物情報等をあらかじめサービス提供サーバに送信することで、配達時刻予測、集中度の予測等をして、トラックや配達人員の確保をあらかじめ手配することを可能としている。
図13は、実施例4を説明するためのシーケンス図である。図13に示すように、実施例4において、リクエストの送信側である通信装置10は、発送元の通信装置である。通信装置10は、例えば荷物のタグから得られた荷物情報を取得し、送信する機能を持つ。また、通信装置20は、配達時刻予測、集中度の予測等をして、トラックや配達人員の確保等を行う機能を持つサービス提供サーバである。
通信装置10は、リクエストとして荷物情報を通信装置20に送信する(ステップS401)。通信装置20は、当該リクエストに応じて、受信したリクエスト(荷物情報)とレスポンス(発送先のリソース状況等)を通信装置10に送信する(ステップS402)。
通信装置10は、送信した荷物情報と受信した荷物情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、表示等の処理を実施する(ステップS403、S404)。
例えば、上記のように荷物情報を収集するサービス提供サーバ(通信装置20)から最終発送拠点に対して、荷物の配達予測、追加リソースの手配、他社への委託等の情報が送信される。
(実施例5)
次に、実施例5を説明する。
近年、自動販売機にも通信機能を有するものが増加している。そこで、実施例5では、在庫情報や売上を、管理サーバに送信する際に、自動販売機の情報を送信し、折り返した情報を突合することで確実に送信されたことを確認する。
図14は、実施例5を説明するためのシーケンス図である。図14に示すように、実施例5において、リクエストの送信側である通信装置10は、自動販売機に備えられた通信装置である。通信装置10は、例えば売上・在庫情報を取得し、送信する機能を持つ。また、通信装置20は、自動販売機で販売する商品のメーカー等に管理サーバに相当する。
通信装置10は、リクエストとして売上・在庫情報を通信装置20に送信する(ステップS501)。通信装置20は、当該リクエストに応じて、受信したリクエスト(売上・在庫情報)とレスポンス(受け取り側の正常処理終了通知)を通信装置10に送信する(ステップS502)。
通信装置10は、送信した売上・在庫情報と受信した売上・在庫情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、売上・在庫情報が確かに通信装置20に送信されたことを確認する(ステップS503、S504)。
(実施例6)
次に、実施例6を説明する。実施例6は、外出先でスマートフォンのGPS等から取得した位置情報を、サービス提供サーバに送り、周辺のナビ情報、観光情報等を合わせて送信する例である。
図15は、実施例6を説明するためのシーケンス図である。図15に示すように、実施例6において、リクエストの送信側である通信装置10は、スマートフォンである。また、通信装置20は、位置情報に基づいて、ナビ情報、観光情報等を提供可能なサービス提供サーバである。
通信装置10は、リクエストとして位置情報を通信装置20に送信する(ステップS601)。通信装置20は、当該リクエストに応じて、受信したリクエスト(位置情報)とレスポンス(ナビ情報、観光情報等)を通信装置10に送信する(ステップS602)。
通信装置10は、送信した位置情報と受信した位置情報とを比較し、これらが一致する場合に、受信したレスポンスは、正しく届いたリクエストに対応するレスポンスであると判断して、当該レスポンスの情報を取得し、ナビ情報、観光情報等を表示する(ステップS603、S604)。
(変形例)
これまで、リクエストを送信し、レスポンス(+リクエスト)を受信する実施形態について説明した。前述したように、当該実施形態は、例えば無線通信のように、上りの帯域よりも下りの帯域が大きな環境で特に好適に適用可能である。
しかし、ネットワーク環境によっては、下りにおいて、レスポンス+リクエストを伝送するために十分な帯域がない場合も考えられる。また、双方向でリクエスト送信/レスポンス受信等を行うアプリケーションにおいて本実施の形態の技術を適用する場合、双方向で「レスポンス+リクエスト」に相当する2データを送受信することになる。変形例では、このような場合でも、使用帯域の増加を可能な限り生じさせずに通信を可能とする技術について説明する。以下、図面を参照して変形例を説明する。なお、以下の変形例に係る技術は、「レスポンス」、「リクエスト」に限らず適用可能であることから、「データ」の用語を用いて説明する。
<変形例の概要>
本変形例では、図16に示すように、通信装置Aと通信装置Bが備えられ、データの送受信を行う。
図16(a)は、これまでに説明した実施の形態の処理を示している。すなわち、まず、通信装置Aが通信装置BにデータA(例:リクエスト)を送信する(ステップS701)。
通信装置Aにおいて、データAが確実に通信装置Bに届いたことを確認するために、通信装置Bは、通信装置Aから受信したデータA(通信装置Bで誤りなく受信できたとする)を通信装置Aに送信する(ステップS702)。
また、データAを折り返すタイミングで、通信装置Bには、通信装置Aに送るべきデータB(例:レスポンス)があり、当該データBも通信装置Aに送信する(ステップS702)。このような通信を行うケースにおいて、通信装置Bから通信装置Aには、データAとデータBを送信することになり、データA(折り返しデータ)とデータBを送信することを想定した十分な帯域がない場合、データA+データBの送信のために時間がかかり、遅延が生じることになる。
図16(b)は、変形例に係る通信の概要を示している。まず、上記と同様に通信装置Aが通信装置BにデータAを送信する(ステップS710)。データAを受信した通信装置Bは、データAを通信装置Aに折り返すとともに、データBを通信装置Aに送信することになるが、ここでは、これらをそのまま送るのではなく、データAとデータBとの排他的論理和(XOR)をとったデータ(データABと記述)を送ることとしている(ステップS711)。例えば、データAとデータBのデータサイズがそれぞれ10であるとした場合、排他的論理和(XOR)をとった後のデータABのデータサイズも10である。つまり、本実施の形態では、データB(あるいはデータA)のみを送る場合に比べて、データ量を増加させることなく、データAとデータBを送ることを可能としている。
データABを受信した通信装置Aは、ステップS710にて送信し、保持しているデータAと、受信したデータABとの排他的倫理和を算出し、その結果であるデータB´を取得する(ステップS712)。データAB、データAともに誤りなく送受信されている場合、データABとデータAとの排他的倫理和はデータBであることから、ステップS712の結果をデータB´と記述している。
通信装置Aは、ステップS712での結果であるデータB´と、受信したデータABとの排他的論理和を算出し、その結果であるデータA´を取得する。データAB、データAともに誤りなく送受信されている場合、データABとデータB´(データB)との排他的倫理和はデータAであることから、ステップS713の結果をデータA´と記述している。
更に、ステップS713では、保持しているデータAと、算出されたデータA´とを比較して、これらが一致しているか否かをチェックし、一致している場合、データAB、データAともに誤りなく送受信されているものと推定し、データB´をデータB(通信装置Bが送信したデータB)であるとして用いることができる。また、ここで、データA´=データAであるから、通信装置BはデータAを正しく受信したと判断(推定)することができる。なお、これは例であり、後述するように、より多段のチェックを行うこととしてもよい。
上記の処理を行う通信システムは、データAをリクエストとし、データBをレスポンスとした場合、以下の通信システムの範囲に含まれるものである。
つまり、当該通信システムは、第1の通信装置と第2の通信装置とを有し、前記第1の通信装置が、前記第2の通信装置にリクエストを送信し、前記第2の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータ(データAB)を前記第1の通信装置に送信し、前記第1の通信装置が、送信したリクエスト(A)と、前記第2の通信装置から受信したリクエスト(A´)とを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスとして処理する。
<変形例に係る動作の詳細例>
次に、変形例における通信システムの動作例をより詳細に説明する。以下では、送受信するデータの例として「パケット」を用いる。また、通信装置Aから通信装置Bに送信するパケットをA、通信装置Bから通信装置Aに送信するパケットをB、排他的論理和演算を行って送信するパケットをPktの記号で示す。また、明細書においては、排他的論理和演算を示す記号として、*を使用している。更に、パケットの順序を示す識別子としてi(iは自然数)を用い、通信エラー等の可能性により正しいかどうか不明であるデータについては´(ダッシュ)を付している。
本変形例においては、例えばセッション層にてセッション管理を行い、通信装置Aから通信を開始するものとする。
通信装置Aにおいて、送出するパケットAと、通信装置Bから直前に受信したパケットB(i−1)との排他的論理和を、通信装置Bへ送信するパケットPktとする。なお、セッションの開始時、つまり、通信装置AにパケットB(i−1)か存在しない場合、B(i−1)=0とする。
一方、通信装置Bは、パケットPkt´を受信後、当該パケットPkt´とパケットB(i−1)との排他的論理和演算を行って、Pkt´*B(i−1)=A´を求める。この時点で、通信エラーが生じていない仮定においては、A´=Aが成立するが、この時点では、この仮定が正しいかどうかわからない。なお、この例では、iが1であることを想定しており、B(i−1)=B=0である。つまり、セッション開始時においては、通信装置Aと通信装置B間の取決め事項として、既に通信装置Bから値が0のデータが誤りなく通信装置Aに送信されているものと仮定している。
通信装置Bにおいて、A´を導出後、これとPkt´との排他的論理和をとり、B(i−1)´=Pkt´*A´を得る。ここでは、上記の仮定が正しいかどうか不明であるため、この演算の結果は、B(i−1)ではなく、B(i−1)´としている。ただし、ここでは、B(i−1)=0であり、これは通信と無関係に決定されており、通信エラーに依存せずに正しい。従って、B(i−1)´とB(i−1)を比較して、これらが等しければ、B(i−1)´−>B(i−1)(B(i−1)´がB(i−1)であること)が決定的に検証される。
よって、Pkt´から上記の方法により導出したB(i−1)´が正しければ、A´−>A(i−1)を仮定する(推定する)。これを確定するために、通信装置Bは、パケットAと仮定されたパケットA´を通信装置Aに送信する折り返し動作を行う。つまり、通信装置Bから送出すべきデータBとA´との排他的論理和であるPkt(i+1)=A´*Bを通信装置Aに送信する。
Pkt(i+1)=A´*Bを受信した通信装置Aは、B´=Pkt(i+1)´*A、A´=Pkt(i+1)´*B´を算出し、算出したA´と、保持しているAが一致していることを確認することで、通信装置BにおけるAの到達確認を行うとともに、B´−>Bを仮定して、通信装置Bへの折り返し動作を行う。ここで、もしも算出したA´と、保持しているAが一致しない場合、Aが正しく通信装置Bに到達しなかったと推定できるので、再送によるリカバリを行う。つまり、Pktの再送を行う。
次に、図17を参照して、上記の内容を含む通信装置Aと通信装置B間の動作シーケンス例を説明する。この例では、通信装置Aと通信装置Bとの間で同時双方向通信を行う。また、セッションを通信装置Aから開始し、通信装置Aがセッションを終了させる。また、双方の通信装置A、Bは、同一長のデータ(パケット)を通信する。なお、双方の送りたいデータ長が異なる場合は、0パディング等でデータ長を揃えることとしてもよい。
また、通信装置Aが通信を開始する際に、パケットAに排他的論理和演算にて重畳するパケットBは0であるとする。これが0であることは、通信装置Aと通信装置Bにて既知である。以下の説明では、記述を簡潔にする観点から、パケットPktをPktと記述する等、適宜、パケットを記号のみで示している。また、図17及び本明細書中の"X==Y"は、XとYが一致するか比較することを意味する。
図17は、通信開始から既に複数回のパケット送受信が行われ、通信装置Aが、パケットAを送信するところからを示す図である。
通信装置Aが、Pkt=B(i−1)´*Aを通信装置Bに送信する(ステップS801)。B(i−1)´は通信装置AにおいてB(i−1)であると推定されたパケットであり、通信装置Bへの折り返しデータである。
通信装置Aから送信されたPktは、通信エラーが発生している可能性のあるパケットであるPkt´として通信装置Bに届く。Pkt´を受信した通信装置Bは、ステップS802において、A´=Pkt´*B(i−1)、B(i−1)´=Pkt´*A´の演算を行って、A´とB(i−1)´を取得する。ここで、A´=Pkt´*B(i−1)の演算においては、Pkt´に含まれるB(i−1)´がNon−Error(エラーがない)であることを仮定している。
通信装置Bは、B(i−1)´と、通信装置Bが保持しているB(i−1)との比較を行い、B(i−1)´がNon−Errorであることの検証を行う。これらが一致した場合に、(i−1)番のパケットで通信装置Aに送信したB(i−1)が正しく通信装置Aに到達したことを推定でき、送達確認を行うことができる。また、B(i−1)´とB(i−1)が一致した場合には、A´をAであると推定する(A´−>A)。この時点で、通信装置Bにおいて、A´はその完全性が不明であるが、具体的な処理としては、この時点で、A´をAであると見なし、A´をAとして扱う処理を行うこととしてもよい。なお、B(i−1)´とB(i−1)が一致し、連続して、B´とBが一致した場合に、A´をAであると見なし、ここで、Aを用いる処理を行うこととしてもよい。
(i−1)´とB(i−1)が一致しなかった場合には、例えば、通信装置Aに対してB(i−1)を含むPktを再送する。
次に、通信装置Bは、Pkt(i+1)=A´*Bを通信装置Aに送信する(ステップS803)。A´は、Aに対する折り返しデータである。
通信装置Bから送信されたPkt(i+1)は、通信エラーが発生している可能性のあるパケットであるPkt(i+1)´として通信装置Aに届く。Pkt(i+1)´を受信した通信装置Aは、ステップS804において、B´=Pkt(i+1)´*A、A´=Pkt(i+1)´*B´の演算を行って、B´とA´を取得する。また、通信装置Aは、A´と、通信装置Aが保持しているAとの比較を行い、一致した場合に、i番のパケットで通信装置Bに送信したAが正しく通信装置Bに到達したことを推定でき、送達確認を行うことができる。また、A´とAが一致した場合には、B´をBであると推定する(B´−>B)。この時点で、通信装置Aにおいて、B´はその完全性が不明であるが、具体的な処理としては、この時点で、B´をBであると見なし、B´をBとして扱う処理を行うこととしてもよい。
´とAが一致しなかった場合には、例えば、通信装置Bに対してPktを再送する。つまり、ステップS801に戻る。
次に、通信装置Aは、Pkt(i+2)=B´*A(i+1)を通信装置Bに送信する(ステップS805)。
通信装置Aから送信されたPkt(i+2)は、通信エラーが発生している可能性のあるパケットであるPkt(i+2)´として通信装置Bに届く。Pkt(i+2)´を受信した通信装置Bは、ステップS806において、A(i+1)´=Pkt(i+2)´*B、B´=Pkt(i+2)´*A(i+1)´の演算を行って、A(i+1)´とB´を取得する。また、通信装置Bは、B´と、通信装置Bが保持しているBとの比較を行い、一致した場合に、(i+1)番のパケットで通信装置Aに送信したBが正しく通信装置Aに到達したことを推定でき、送達確認を行うことができる。また、B´とBが一致した場合には、A(i+1)´をA(i+1)であると推定する(A(i+1)´−>A(i+1))。この時点で、通信装置Bにおいて、A(i+1)´はその完全性が不明であるが、具体的な処理としては、この時点で、A(i+1)´をA(i+1)であると見なし、A(i+1)´をA(i+1)として扱う処理を行うこととしてもよい。
´とBが一致しなかった場合には、例えば、通信装置Aに対してPkt(i+1)を送信する。つまり、ステップS803に戻る。ここで、ステップS803に戻った後のステップS804の処理において、仮に、A´とAが一致しなかった場合には、ステップS801に戻ることになる。
ステップS801の開始時点から、上記ステップS806におけるB´とBの一致が確認された時点で、通信装置Aと通信装置Bとの間で同時双方向通信により、AとBの転送が完了している。ここで、通信装置AにおいてBが、通信装置BにおいてAがそれぞれ確定したものとしてもよい。
図17に示すように、ステップS807以降も同様の動作により、パケットの送受信が実施される。
図17の例では、通信装置AがステップS813においてセッションを終了させるために値が0のデータ(図17の例では、A(i+3))を送ることとする。これは、セッションを開始する場合、通信装置Aにおいて、直前に届いている受信データ(B)を0と仮定した場合と同様である。換言すると、最終データが相手に、確実に届いた前提を設ける。つまり、送受信側において事前に取り決めておく。通信装置Bにおいて、通信装置Aから最後のデータが0と判明していた場合、一つ前の通信装置Bの送信データと通信装置Aからのその折り返しパケットの一致、および通信装置Aからの最終パケットから導出した、通信装置Aからの最後のデータと思われる値が0か否かを確認すれば十分である。
なお、パケットの順序性について、相手側装置から受信したPktに対して、直前に相手側装置に送信したPkt(i−1)と直後に相手側装置に送信するPkt(i+1)に保証が必要となる。順序性については、例えば、パケットに付される番号等により識別すればよい。
<単方向通信との親和性>
変形例における双方向通信においては、送信対象データと折り返しデータの排他的論理和をとった値を送信データとしている。単方向通信においては、相手側からのデータが不要であり、これを0と定めておけば、排他的論理和を施したとしても、送信対象データと送信データが一致する。換言すると、相手側からの送信データが、常に0と事前に取り決めておくことで、双方向通信と単方向通信の親和性が確保できる。すなわち、本実施の形態で説明した方式は、双方向通信と単方向通信についてアルゴリズムを変更することなく同様に適用可能である。
なお、単方向通信の場合、相手からの折り返しデータを一回確認するのみで十分だが、若干の送信バッファ利用効率が低下するも、双方向通信に備えて、次の折り返しデータも確認することとしてもよい。
<変形例における装置構成>
図18に、変形例における通信装置Aもしくは通信装置Bとして用いられる通信装置100の構成図を示す。図18に示すように、通信装置100は、データ送受信部101、送信データ作成部102、データ抽出部103、データ検証部104、データ格納部105、データ処理部106を含む。
データ送受信部101は、通信回線を介してパケット等の送受信を行う。また、データ送受信部101は、送信バッファ、受信バッファを有する。データ処理部106は、送信すべきデータの生成や、受信したデータの利用等を行う機能部であり、例えば、上位レイヤ通信機能や所定のサービスを提供するアプリケーション等に相当するものである。
送信データ作成部102は、データ処理部106により生成された相手側に送るべきデータをデータ処理部106から受け取るとともに、相手側に折り返すべきデータをデータ検証部104から受け取り、これらのデータの排他的論理和を計算することにより相手側に送信するデータを作成する。
データ抽出部103は、相手側から受信したデータと、データ格納部105に格納されている既に送信したデータとに基づき、排他的論理和演算を行うことで、前述したA´、B´のデータを抽出する。一例として、通信装置100が通信装置Aとして使用される場合の図17でのステップS804において、データ抽出部103は、B´=Pkt(i+1)´*A、A´=Pkt(i+1)´*B´の演算を行う。この例で、Aはデータ格納部105に格納されているデータである。
データ検証部104は、上記の例において、Ai´がAと一致するかどうかのチェックを行う。一致する場合は、Aの送達確認がとれたと判断するとともに、B´をBと見なしてデータ処理部106に渡す。もしくは、よりチェックを厳密に行うために、A´がAと一致した後、次にA(i+1)´がA(i+1)と一致したときに、Aの送達確認がとれたと判断するとともに、B´をBと見なしてデータ処理部106に渡すこととしてもよい。なお、このように多段のチェックを行う際に保持しておくデータについてもデータ格納部105に保持しておくこととしてよい。
変形例に係る通信装置100は、例えば、1つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、通信装置100が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスク等のハードウェア資源を用いて、通信装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
また、図9に示した通信装置10、20のいずれか又は両方が、図9に示す機能に加えて変形例での処理を可能とするための通信装置100の機能を含むこととしてもよい。
(実施の形態のまとめ)
本実施の形態では、第1の通信装置と第2の通信装置とを有する通信システムであって、前記第1の通信装置が、前記第2の通信装置にリクエストを送信し、前記第2の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第1の通信装置に送信し、前記第1の通信装置が、送信したリクエストと、前記第2の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する通信システムが提供される。
前記第2の通信装置は、前記リクエストが付加されたレスポンスを複数のデータに分割し、分割した複数のデータを連続的に前記第1の通信装置に送信することとしてもよい。
前記第1の通信装置は、前記送信したリクエストと、前記第2の通信装置から受信したリクエストとが一致しないと判断した場合、前記リクエストを前記第2の通信装置に再送することとしてもよい。
前記第1の通信装置は、前記リクエストを送信してから一定時間内に当該リクエストに対応するレスポンスを受信しない場合に、前記リクエストを前記第2の通信装置に再送することとしてもよい。
前記第1の通信装置は、前記リクエストに対応するレスポンスを受信するまで、当該リクエストを連続的に前記第2の通信装置に送信することとしてもよい。
前記第2の通信装置は、過去に受信したリクエストに対する更新情報を検出した場合に、当該リクエストと更新情報とを前記第1の通信装置に送信し、前記第1の通信装置は、前記更新情報とともに受信したリクエストを、送信済みの1つ又は複数のリクエストと比較し、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスを前記更新情報を用いて更新することとしてもよい。
また、本実施の形態により、第1の通信装置と第2の通信装置とを有する通信システムが実行する通信方法であって、前記第1の通信装置が、前記第2の通信装置にリクエストを送信するステップと、前記第2の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第1の通信装置に送信するステップと、前記第1の通信装置が、送信したリクエストと、前記第2の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断するステップとを備える通信方法が提供される。
また、本実施の形態により、第1の通信装置と第2の通信装置とを有する通信システムおいて使用される前記第1の通信装置に対応する通信装置であって、前記第2の通信装置に送信するリクエストを記憶部に保持し、当該リクエストを前記第2の通信装置に送信する送信手段と、前記第2の通信装置から、前記リクエストに対するレスポンスに当該リクエストを付加したデータを受信する受信手段と、前記記憶部に保持したリクエストと、前記第2の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する比較手段とを備える通信装置が提供される。
また、本実施の形態により、第1の通信装置と第2の通信装置とを有する通信システムおいて使用される前記第2の通信装置に対応する通信装置であって、前記第1の通信装置からリクエストを受信する受信手段と、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第1の通信装置に送信する送信手段と、を備え、前記第1の通信装置に、当該第1の通信装置が送信したリクエストと、前記通信装置から受信したリクエストとを比較する処理を実行させる通信装置が提供される。
本実施の形態に係る技術を用いることにより、リクエストを送信した通信装置は、リクエストが正しく届いたことを確認できるので信頼性を担保することができる。
また、本実施の形態では、リクエストに対応するレスポンスを特定するために、リクエストに対応するコード等を用いる必要がないため、テーブル検索やテーブル書き換えの負荷をかけることがなく、効率的なリクエスト/レスポンスの通信が可能となる。
また、本実施の形態に係るプロトコルでは、TCPとは異なり、コネクションを張らないため、リアルタイム処理が可能である。
また、本実施の形態では、TCPのようにACKやウィンドウサイズ等の仕組みを持たないため、通信開始時および通信再開時などから効率のよい通信が可能となる。
また、リクエストと、レスポンスとを排他的論理和等を用いて重畳して送信する形態では、リクエストの折り返しを用いた信頼性の高い通信を、スループットに影響を与えることなく、効率良く実施することが可能となる。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
10、20、A、B 通信装置
11 入力部
12 送信バッファ
13 送信部
14 受信部
15 比較部
16 制御部
21 受信部
22 送信部
23 受信バッファ
24 出力部
17、25 データ処理部
101 データ送受信部
102 送信データ作成部
103 データ抽出部
104 データ検証部
105 データ格納部
106 データ処理部

Claims (10)

  1. 第1の通信装置と第2の通信装置とを有する通信システムであって、
    前記第1の通信装置が、前記第2の通信装置にリクエストを送信し、
    前記第2の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第1の通信装置に送信し、
    前記第1の通信装置が、送信したリクエストと、前記第2の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する
    通信システム。
  2. 前記第2の通信装置は、前記リクエストが付加されたレスポンスを複数のデータに分割し、分割した複数のデータを連続的に前記第1の通信装置に送信する
    請求項1に記載の通信システム。
  3. 前記第1の通信装置は、前記送信したリクエストと、前記第2の通信装置から受信したリクエストとが一致しないと判断した場合、前記リクエストを前記第2の通信装置に再送する
    請求項1又は2に記載の通信システム。
  4. 前記第1の通信装置は、前記リクエストを送信してから一定時間内に当該リクエストに対応するレスポンスを受信しない場合に、前記リクエストを前記第2の通信装置に再送する
    請求項1ないし3のうちいずれか1項に記載の通信システム。
  5. 前記第1の通信装置は、前記リクエストに対応するレスポンスを受信するまで、当該リクエストを連続的に前記第2の通信装置に送信する
    請求項1ないし4のうちいずれか1項に記載の通信システム。
  6. 前記第2の通信装置は、過去に受信したリクエストに対する更新情報を検出した場合に、当該リクエストと更新情報とを前記第1の通信装置に送信し、
    前記第1の通信装置は、前記更新情報とともに受信したリクエストを、送信済みの1つ又は複数のリクエストと比較し、比較対象の中に一致するリクエストがある場合に、当該リクエストに対するレスポンスを前記更新情報を用いて更新する
    請求項1ないし5のうちいずれか1項に記載の通信システム。
  7. 第1の通信装置と第2の通信装置とを有する通信システムが実行する通信方法であって、
    前記第1の通信装置が、前記第2の通信装置にリクエストを送信するステップと、
    前記第2の通信装置が、前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第1の通信装置に送信するステップと、
    前記第1の通信装置が、送信したリクエストと、前記第2の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断するステップと
    を備える通信方法。
  8. 第1の通信装置と第2の通信装置とを有する通信システムおいて使用される前記第1の通信装置に対応する通信装置であって、
    前記第2の通信装置に送信するリクエストを記憶部に保持し、当該リクエストを前記第2の通信装置に送信する送信手段と、
    前記第2の通信装置から、前記リクエストに対するレスポンスに当該リクエストを付加したデータを受信する受信手段と、
    前記記憶部に保持したリクエストと、前記第2の通信装置から受信したリクエストとを比較し、一致した場合に、前記レスポンスを、前記リクエストに対するレスポンスであると判断する比較手段と
    を備える通信装置。
  9. 第1の通信装置と第2の通信装置とを有する通信システムおいて使用される前記第2の通信装置に対応する通信装置であって、
    前記第1の通信装置からリクエストを受信する受信手段と、
    前記リクエストに対するレスポンスに当該リクエストを付加したデータを前記第1の通信装置に送信する送信手段と、を備え、
    前記第1の通信装置に、当該第1の通信装置が送信したリクエストと、前記通信装置から受信したリクエストとを比較する処理を実行させる
    通信装置。
  10. コンピュータを、請求項8又は9に記載の通信装置における各手段として機能させるためのプログラム。
JP2015075482A 2015-04-01 2015-04-01 通信システム、通信装置、通信方法、及びプログラム Active JP6545508B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015075482A JP6545508B2 (ja) 2015-04-01 2015-04-01 通信システム、通信装置、通信方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015075482A JP6545508B2 (ja) 2015-04-01 2015-04-01 通信システム、通信装置、通信方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2016195371A true JP2016195371A (ja) 2016-11-17
JP6545508B2 JP6545508B2 (ja) 2019-07-17

Family

ID=57323918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015075482A Active JP6545508B2 (ja) 2015-04-01 2015-04-01 通信システム、通信装置、通信方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6545508B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021196971A (ja) * 2020-06-16 2021-12-27 株式会社デンソー 制御システム、制御方法、制御プログラム、車載制御装置およびサーバ装置
JP2022142323A (ja) * 2021-03-16 2022-09-30 Kddi株式会社 遠隔自動運転システム、遠隔操作装置、遠隔自動運転方法及びコンピュータプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0195636A (ja) * 1987-10-08 1989-04-13 Fanuc Ltd 信号転送装置
JP2001257696A (ja) * 2000-03-13 2001-09-21 Fuji Electric Co Ltd マスタスレーブ間の通信方式
JP2005197974A (ja) * 2004-01-06 2005-07-21 Matsushita Electric Ind Co Ltd 通信装置
US20130166996A1 (en) * 2010-08-03 2013-06-27 Continental Teve AG & Co., oHG Communication Method and Echo

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0195636A (ja) * 1987-10-08 1989-04-13 Fanuc Ltd 信号転送装置
JP2001257696A (ja) * 2000-03-13 2001-09-21 Fuji Electric Co Ltd マスタスレーブ間の通信方式
JP2005197974A (ja) * 2004-01-06 2005-07-21 Matsushita Electric Ind Co Ltd 通信装置
US20130166996A1 (en) * 2010-08-03 2013-06-27 Continental Teve AG & Co., oHG Communication Method and Echo

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021196971A (ja) * 2020-06-16 2021-12-27 株式会社デンソー 制御システム、制御方法、制御プログラム、車載制御装置およびサーバ装置
JP2022142323A (ja) * 2021-03-16 2022-09-30 Kddi株式会社 遠隔自動運転システム、遠隔操作装置、遠隔自動運転方法及びコンピュータプログラム
JP7470655B2 (ja) 2021-03-16 2024-04-18 Kddi株式会社 遠隔操作装置、遠隔自動運転方法及びコンピュータプログラム

Also Published As

Publication number Publication date
JP6545508B2 (ja) 2019-07-17

Similar Documents

Publication Publication Date Title
US9432251B2 (en) Enhanced acknowledgement and retransmission mechanism
CN100448224C (zh) 探索路径最大传输单元的方法和设备
US20230071243A1 (en) Conserving network resources during transmission of packets of interactive services
US8181077B2 (en) Methods and devices for the dynamic management of transmission errors by network points of interconnections
JP2020537431A5 (ja)
US20110060974A1 (en) Methods and devices for transmitting a data stream and corresponding computer readable media
KR101714227B1 (ko) 차량의 데이터 통신 방법 및 이를 위한 장치
US20130148671A1 (en) Method of transporting data from sending node to destination node
JP2007208635A (ja) ノード、パケット通信方法、及びパケット通信システム
WO2022143468A1 (zh) 数据传输方法、装置、系统及存储介质
US9432274B1 (en) Intermediary facilitated packet loss recovery
CN107154917B (zh) 数据传输方法及服务器
EP3672189B1 (en) Data transmission method, device and system
JP6545508B2 (ja) 通信システム、通信装置、通信方法、及びプログラム
CN108737413B (zh) 传输层的数据处理方法、装置及计算机可读存储介质
CN106130746B (zh) 一种数据传输方法及装置
Phung et al. Enhancing rest http with random linear network coding in dynamic edge computing environments
KR20150057347A (ko) 통신 방법 및 장치
KR101476748B1 (ko) 메시지 송수신 장치 및 방법
WO2018171550A1 (zh) 数据校验方法、数据发送方法、相关装置、系统及存储介质
US11363125B2 (en) Systems and methods for increasing reliability for media data distribution
WO2017067224A1 (zh) 一种报文处理方法及装置
CN111225423B (zh) 一种数据前转的方法和设备
JP2009044695A (ja) 通信制御方法、送信装置、およびコンピュータプログラム
JP2009044694A (ja) データユニットの送信回数のカウント方法、カウント装置、送信装置、およびコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190311

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190619

R150 Certificate of patent or registration of utility model

Ref document number: 6545508

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250