(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024122157
(43)【公開日】2024-09-09
(54)【発明の名称】通信装置及び通信方法
(51)【国際特許分類】
H04L 45/243 20220101AFI20240902BHJP
【FI】
H04L45/243
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023029538
(22)【出願日】2023-02-28
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】佐藤 陸
(72)【発明者】
【氏名】近江 泰志
(72)【発明者】
【氏名】野水 拓馬
(72)【発明者】
【氏名】小川 雅昭
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA12
5K030GA19
5K030KA13
5K030LA19
(57)【要約】
【課題】機器点数の増加を抑制しつつ、パケットの冗長化を行うことが可能な通信装置を提供する。
【解決手段】プロセッサは、アプリケーションを実行することで、端末Bに宛てたパケットA111を送出する通信アプリケーション部A101を実現する。また、プロセッサは、ミドルウェアを実行することで、アプリケーション部から送出されたパケットA111を複数の通信経路1~nのそれぞれに対応する複数のパケットA112に冗長化し、各パケットA112を複数の通信経路1~nを介して端末Bに送信する冗長制御部を実現する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の通信経路を介して外部装置と通信可能に接続される通信装置であって、
メモリと、プロセッサとを有し、
前記メモリは、アプリケーションとミドルウェアとを記録し、
前記プロセッサは、前記アプリケーションを実行することで、前記外部装置に宛てたパケットを送出するアプリケーション部を実現し、
前記プロセッサは、前記ミドルウェアを実行することで、前記アプリケーション部から送出されたパケットを前記複数の通信経路のそれぞれに対応する複数の送信パケットに冗長化し、各送信パケットを前記複数の通信経路を介して前記外部装置に送信する冗長制御部を実現する、通信装置。
【請求項2】
仮想ネットワークインタフェースと、
前記アプリケーション部から送出されたパケットを前記仮想ネットワークインタフェースにルーティングするルーティング設定部と、を有し、
前記冗長制御部は、前記仮想ネットワークインタフェースにルーティングされたパケットを刈り取って冗長化する、請求項1に記載の通信装置。
【請求項3】
前記複数の通信経路のそれぞれに対応する複数のNIC(Network Interface Card)を有し、
前記冗長制御部は、前記NICごとに、前記パケットに対して、当該NICのIPアドレスと当該NICに対応する前記外部装置のIPアドレスとを含む追加IPヘッダと、前記パケットの順番を示すシーケンス番号を含むシーケンスヘッダとを付加したカプセリングパケットを前記送信パケットとして生成することで、前記パケットを冗長化する、請求項1に記載の通信装置。
【請求項4】
前記シーケンス番号は、前記パケットの送信元及び宛先の組み合わせごとに付与される、請求項3に記載の通信装置。
【請求項5】
前記複数のNICのそれぞれは、前記外部装置の前記送信パケットである外部装置パケットを受信し、
前記冗長制御部は、前記外部装置パケットから前記追加IPヘッダ及び前記シーケンスヘッダを削除した受信パケットを前記アプリケーション部に送出する、請求項3に記載の通信装置。
【請求項6】
前記冗長制御部は、前記複数のNICのそれぞれが受信した複数の前記外部装置パケットのうち最も早く受信された外部装置パケット以外を破棄する、請求項5に記載の通信装置。
【請求項7】
仮想ネットワークインタフェースと、
前記冗長制御部から送出された受信パケットを、前記仮想ネットワークインタフェースを介して前記アプリケーション部にルーティングするルーティング設定部と、を有する、請求項1に記載の通信装置。
【請求項8】
前記冗長制御部は、前記複数の通信経路のそれぞれが使用可能な状態か否かを確認し、前記パケットを、前記複数の通信経路のうち使用可能な状態の通信経路のそれぞれに対応する複数の送信パケットに冗長化する、請求項1に記載の通信装置。
【請求項9】
複数の通信経路を介して外部装置と通信可能に接続される通信装置による通信方法であって、
前記通信装置は、メモリと、プロセッサとを有し、
前記メモリは、アプリケーションとミドルウェアとを記録し、
前記プロセッサに、前記アプリケーションを実行することで、前記外部装置に宛てたパケットを送出するアプリケーション部を実現させ、
前記プロセッサに、前記ミドルウェアを実行することで、前記アプリケーション部から送出されたパケットを前記複数の通信経路のそれぞれに対応する複数の送信パケットに冗長化し、各送信パケットを前記複数の通信経路を介して前記外部装置に送信する冗長制御部を実現させる、通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信装置及び通信方法に関する。
【背景技術】
【0002】
従来、通信分野では、ネットワークの高信頼化のために、サーバの冗長化及びパケットの冗長化などが行われている。例えば、特許文献1には、送信装置と受信装置と間で複数のネットワークに対してデータを冗長化して送信し、冗長化されたデータを受信側で単一化する通信システムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載の技術では、データを送信するアプリケーションを実行する処理装置からのデータを送信装置が冗長化している。したがって、処理装置とは別にデータの中継装置として機能する送信装置が必要となるため、機器点数が多くなるという問題がある。このため、人が立ち入ることのできない狭い場所のような中継装置の設置が困難な場所にある装置の遠隔作業などに用いる通信の高信頼性を確保することが困難である。
【0005】
本開示の目的は、機器点数の増加を抑制しつつ、パケットの冗長化を行うことが可能な通信装置及び通信方法を提供することにある。
【課題を解決するための手段】
【0006】
本開示の一態様に従う通信装置は、複数の通信経路を介して外部装置と通信可能に接続される通信装置であって、記録部と、プロセッサとを有し、前記記録部は、アプリケーションとミドルウェアとを記録し、前記プロセッサは、前記アプリケーションを実行することで、前記外部装置に宛てたパケットを送出するアプリケーション部を実現し、前記プロセッサは、前記ミドルウェアを実行することで、前記アプリケーション部から送出されたパケットを前記複数の通信経路のそれぞれに対応する複数の送信パケットに冗長化し、各送信パケットを前記複数の通信経路を介して前記外部装置に送信する冗長制御部を実現する。
【発明の効果】
【0007】
本発明によれば、機器点数の増加を抑制しつつ、パケットの冗長化を行うことが可能
【図面の簡単な説明】
【0008】
【
図1】本開示の一実施形態の通信システムを示す図である。
【
図3】経路管理処理の一例を説明するためのフローチャートである。
【
図4】生死確認処理の一例を説明するためのフローチャートである。
【
図5】端末のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0009】
以下、本開示の実施形態について図面を参照して説明する。
【0010】
図1は、本開示の一実施形態の通信システムを示す図である。
図1に示す通信システムは、端末A及びBを有し、それらが複数の通信経路1~nにて相互に通信可能に接続される。
【0011】
端末Aは、通信アプリケーション部A101と、仮想ネットワークインタフェースA121と、ルーティング・IPアドレス設定部A131と、経路管理部A132と、カプセリング部A133と、デカプセリング部A134と、複数のNIC(Network Interface Card)A151~A15nとを有する。端末Bは、端末Aと同等な構成を有する。以下では、端末Aに関する要素に対応する端末Bの要素に対しては、端末Aの要素に付された符号の「A」の文字を「B」に置き換えた符号を付してある。したがって、例えば、端末Aの通信アプリケーション部A101に対応する端末Bの通信アプリケーション部には、「B101」という符号が付してある。また、以下では、端末Aの機能について説明し、端末Bの機能については端末Aと同等なため、その説明を適宜省略する。
【0012】
NICA151~A15nは、複数の通信経路1~nのそれぞれに対応する通信装置であり、それぞれ異なるIPアドレスを有する。本実施形態では、NICA151~A15nは、それぞれIPアドレスA1~Anを有する。nは、2以上の整数であればよい。つまり、NIC及び通信経路は、それぞれ複数であれば、その数は限定されない。NICA151~A15nは、後述するパケットA112を端末Bに送信するとともに、パケットA112を端末Bから受信する。
【0013】
通信アプリケーション部A101は、データの通信を行うアプリケーション(アプリケーションプログラム)にて実現される。通信アプリケーション部A101は、外部装置である端末Bに宛てたパケットA111を送出する。
【0014】
仮想ネットワークインタフェースA121は、ソフトウェアで実現された仮想的なNICであり、パケットA111の送信元のIPアドレスとしてIPアドレスα1を有する。
【0015】
ルーティング・IPアドレス設定部A131は、例えば、ミドルウェアによって実現され、端末Aの装置内ルーティングを管理するルーティング設定部である。例えば、ルーティング・IPアドレス設定部A131は、自端末Aの仮想ネットワークインタフェースA121にIPアドレスα1を予め割り当て、さらに通信相手となる端末Bの仮想ネットワークインタフェースB121のIPアドレスβ1のネットワークアドレスに対するゲートウェイとして、仮想ネットワークインタフェースA121のIPアドレスα1をルーティングテーブルA122に設定する。これにより、ルーティング・IPアドレス設定部A131は、通信アプリケーション部A101から送出された端末Bに宛てた(より具体的には、端末Bの仮想ネットワークインタフェースB121のIPアドレスβ1に宛てた)パケットA111をルーティングテーブルA122により自端末Aの仮想ネットワークインタフェースA121にルーティングすることができる。
【0016】
経路管理部A132、カプセリング部A133及びデカプセリング部A134は、ミドルウェアによって実現され、通信アプリケーション部A101から送出されたパケットA111を冗長化して、パケットA111の宛先となる端末Bに送信する冗長制御部を構成する。
【0017】
経路管理部A132は、通信経路1~nのそれぞれが使用可能な状態か否かを確認し、その確認結果を経路管理テーブルA141に追加する。具体的には、経路管理部A132は、通信経路1~nのそれぞれを用いて、通信経路1~nの使用の可否を確認するための生死確認パケットA113を定期的に端末Bに送信する。また、経路管理部A132は、通信経路1~nのそれぞれにおける端末Bからの生死確認パケットB113に基づいて、通信経路1~nの使用の可否を確認する。例えば、経路管理部A132は、通信経路ごとに、生死確認パケットB113を一定期間内に受信した場合、その通信経路が使用可能な状態である判断し、生死確認パケットを一定期間内に受信しなかった場合、その通信経路が通信可能な状態でないと判断する。そして、経路管理部A132は、通信経路1~nのそれぞれの使用の可否を経路状態として経路管理テーブルA141に設定する。
【0018】
なお、経路管理テーブルA141は、通信経路ごとに、その通信経路の経路状態を示す情報である。本実施形態では、経路管理テーブルA141において経路状態は、本実施形態では、使用可能な状態の場合、「Up」を示し、使用可能な状態でない場合、「Down」を示すものとする。
【0019】
カプセリング部A133は、通信アプリケーション部A101から送出されて仮想ネットワークインタフェースA121にルーティングされたパケットA111を仮想ネットワークインタフェースA121から刈り取る。カプセリング部A133は、刈り取ったパケットA111の送信先の端末(ここでは、端末B)を、宛先・送信元対応テーブルA142を用いて特定する。宛先・送信元対応テーブルA142は、予め設定されている情報であり、パケットA111の宛先と送信元との対応関係を示す。
【0020】
また、カプセリング部A133は、経路管理テーブルA141に基づいて、その刈り取ったパケットA111を複数の通信経路1~nのうち使用可能状態の通信経路である使用可能経路のそれぞれに対応する複数の送信パケットであるパケットA112に冗長化する。そして、カプセリング部A133は、NICA151~A15nのうち使用可能経路に対応するNICのそれぞれを介して、使用可能経路のそれぞれに対応するパケットA112を端末B(具体的には、端末BのNICB151~B15nのうち使用可能経路に対応するNIC)に送信する。
【0021】
パケットA111の冗長化は、パケットA111に対して通信経路1~n(具体的には、使用可能経路)のそれぞれに応じたヘッダを追加することで行われる。
【0022】
図2は、パケットA111の冗長化を説明するための図であり、パケットA111及びA112の構成を示している。
【0023】
図2に示すようにパケットA111は、アプリケーションデータ10と、IPヘッダ11とを含む。アプリケーションデータ10は、通信アプリケーション部A101のデータである。IPヘッダ11は、端末Aの仮想ネットワークインタフェースA121のIPアドレスα1を送信元のIPアドレスとして含み、端末Bの仮想ネットワークインタフェースB121のIPアドレスを宛先のIPアドレスとして含む。
【0024】
一方、パケットA112は、アプリケーションデータ10及びIPヘッダ11に加えて、シーケンスヘッダ12及び追加IPヘッダ13を含む。シーケンスヘッダ12は、パケットの順番を規定するシーケンス番号を含む。シーケンス番号は、送信元及び宛先の組み合わせごとに管理され、同一のパケットA111から冗長化された複数のパケットA112には、同一のシーケンス番号が付与される。追加IPヘッダ13は、自端末AにおけるパケットA112に対応するNICのIPアドレスと、そのNICに対応する端末BのNICのIPアドレスを含む。なお、端末BのNICB151~NIC15nは、それぞれIPアドレスB1~Bnを有する。
【0025】
シーケンスヘッダ12及び追加IPヘッダ13は、カプセリング部A133にてパケットA111に付加される。以下、カプセリング部A133にてパケットA111にシーケンスヘッダ12及び追加IPヘッダ13を付加して冗長化する処理をカプセリングと呼ぶこともある。
【0026】
図1の説明に戻る。デカプセリング部A134は、端末Bから使用可能経路を経由して送信されてきた外部装置パケットであるパケットB112をNICA151~A15nから受け取る。デカプセリング部A134は、同じシーケンス番号を含む複数のパケットB112が存在する場合、その複数のパケットB112のうち最も早く受信したパケットのみを残し、それ以外を破棄する。
【0027】
デカプセリング部B131は、受信したパケットB112からシーケンスヘッダ及びIPヘッダを削除するデカプセリングを行った受信パケットであるパケットB114を通信アプリケーション部A101に送出する。具体的には、デカプセリング部B131から送出されたパケットB114は、ルーティングテーブルA122によって自端末Aの仮想ネットワークインタフェースA121にルーティングされる。そして、仮想ネットワークインタフェースA121にルーティングされたパケットB114は通信アプリケーション部A101にて刈り取られる。
【0028】
また、デカプセリング部B131は、パケットB112内のシーケンス番号に基づいて、パケット抜け、パケットの到着順序の逆転などを検出してもよい。パケットの到着順序の逆転を検出した場合、デカプセリング部B131は、一時的にメモリ52(
図5参照)などにパケットを退避しておき、正しい順序に並び替えて通信アプリケーション部A101に送出することで、パケット到達順序を正してもよい。
【0029】
上記の説明では、端末Aの構成について説明したが、上述したように端末Bも同様な構成を有するため、端末A及びBの間で相互通信が可能となる。ただし、端末Aを送信側、端末Bを受信側としてもよい。また、端末の数は、図中では送信側と受信側それぞれ1台ずつ表記しているが、任意の数に増減することが可能である。また、カプセリング部A133などに、パケットの暗号化機能、応答確認付き通信機能、TCP(Transmission Control Protocol)などのプロトコルによる再送制御機能、及び、チーミング機能などが備わっていてもよい。
【0030】
図3は、経路管理部A132が行う経路管理処理の一例を説明するためのフローチャートである。
【0031】
経路管理処理では、経路管理部A132は、予め定められた経路監視周期の一周期分の時間待機する(ステップS301)。また、一周期分の時間が経過すると、経路管理部A132は、通信経路1~nの使用が可能か否か確認する生死確認処理を実行し(ステップS302)、その後、ステップS301の処理に戻る。
【0032】
図4は、
図3のステップS302の生死確認処理の一例を説明するためのフローチャートである。生死確認処理は、通信経路1~nのそれぞれについて行われる。
【0033】
生死確認処理では、経路管理部A132は、端末Bから対象の通信経路に対応する生死確認パケットを受信したか否かを確認する(ステップS401)。
【0034】
生死確認パケットを受信した場合(ステップS401:Yes)、経路管理部A132は、対象の通信経路が使用可能であると判断して、経路管理テーブルA141における対象の通信経路の経路状態に「Up」を設定して(ステップS402)、処理を終了する。
【0035】
一方、生死確認パケットを受信していない場合(ステップS401:No)、経路管理部A132は、生死確認処理を開始してから一定時間が経過したか否かを判断する(ステップS403)。
【0036】
一定時間が経過している場合(ステップS403:Yes)、経路管理部A132は、対象の通信経路が使用可能でないと判断して、経路管理テーブルA141における対象の通信経路の経路状態を「Down」を設定して(ステップS404)、処理を終了する。一方、一定時間が経過していない場合(ステップS403:No)、経路管理部A132は、ステップS401の処理に戻る。
【0037】
図5は、端末Aのハードウェア構成の一例を示す図である。
図5に示すように端末Aは、プロセッサ51、メモリ52、記録装置53、入力装置54及び表示装置55を有し、それらがバス56を介して接続されている。なお、端末Bは、端末Aと同等なハードウェア構成を有する装置にて実現できる。
【0038】
記録装置53は、書き込み及び読み出しが可能にデータを記録する装置であり、種々の情報を記録する。例えば、記録装置53は、プロセッサ51の動作を規定するプログラムと、ルーティングテーブルA122と、経路管理テーブルA141と、宛先・送信元対応テーブルA142とを記録する。プロセッサ51は、記録装置53に記録されたプログラムをメモリ52に読み出し、メモリ52を利用してプログラムに応じた処理を実行する。プロセッサ51によって、
図1に示した端末Aの各部(通信アプリケーション部A101、仮想ネットワークインタフェースA121、ルーティング・IPアドレス設定部A131と、経路管理部A132、カプセリング部A133及びデカプセリング部A134)が実現される。入力装置54は、端末Aのユーザ及び外部装置(図示せず)などから種々の情報が入力される装置であり、その情報はプロセッサ51の処理に利用される。表示装置55は、種々の情報を表示する装置である。
【0039】
以上説明したように本実施形態によれば、プロセッサ51は、アプリケーションを実行することで、端末Bに宛てたパケットA111を送出する通信アプリケーション部A101を実現する。また、プロセッサは、ミドルウェアを実行することで、アプリケーション部から送出されたパケットA111を複数の通信経路1~nのそれぞれに対応する複数のパケットA112に冗長化し、各パケットA112を複数の通信経路1~nを介して端末Bに送信する冗長制御部を実現する。したがって、端末A内でパケットA111の冗長化を行うことが可能になるため、機器点数の増加を抑制しつつ、パケットA111の冗長化を行うことが可能となる。また、パケットA111の冗長化はミドルウェアにて行われるため、アプリケーションを変更しなくても、端末A内でパケットA111の冗長化が可能となる。このため、人が立ち入ることのできない狭い場所のような中継装置の設置が困難な場所にある装置の遠隔作業などに用いる通信の高信頼性を確保することが可能となる。また、故障が発生する恐れがある箇所を低減したり、コストダウンを図ることなども可能となる。
【0040】
また、本実施形態では、冗長制御部は、通信アプリケーション部A101から送出されて仮想ネットワークインタフェースA121にルーティングされたパケットA111を刈り取って冗長化する。このため、パケットA111を冗長制御部まで正確に届けることが可能となる。
【0041】
また、本実施形態では、冗長制御部は、NICごとに、パケットA111に対して、当該NICのIPアドレスと当該NICに対応する端末BのIPアドレスとを含む追加IPヘッダと、パケットA111の順番を示すシーケンス番号を含むシーケンスヘッダとを付加したカプセリングパケットをパケットA112として生成することで、パケットA111を冗長化する。この場合、パケットA111の冗長化をより適切に行うことが可能となる。
【0042】
また、本実施形態では、シーケンス番号は、パケットA111の送信元及び宛先の組み合わせごとに付与される。このため、シーケンス番号をより適切に付与することが可能となる。
【0043】
また、本実施形態では、冗長制御部は、端末BからのパケットB111から追加IPヘッダ及びシーケンスヘッダを削除したB113を通信アプリケーション部A101に送出する。このため、通信アプリケーションを変更しなくても、外部装置からの冗長化されたパケットを受信することが可能となる。
【0044】
また、本実施形態では、冗長制御部は、NICA151~15nのそれぞれが受信した複数のパケットB112のうち最も早く受信されたパケットB112以外を破棄する。この場合、冗長化による高信頼性を確保しつつ、通信速度の低下を抑制することが可能となる。
【0045】
また、本実施形態では、ルーティング・IPアドレス設定部A131は、冗長制御部から送出されたパケットB114を、仮想ネットワークインタフェースA121を介してアプリケーション部101にルーティングする。このため、パケットB114を通信アプリケーション部A101まで正確に届けることが可能となる。
【0046】
また、本実施形態では、冗長制御部は、通信経路1~nのそれぞれが使用可能な状態か否かを確認し、パケットA111を、通信経路1~nのうち使用可能な状態の通信経路のそれぞれに対応するパケットA112に冗長化する。この場合、パケットA111の冗長化を効率的に行うことが可能となる。
【0047】
上述した本開示の実施形態は、本開示の説明のための例示であり、本開示の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本開示の範囲を逸脱することなしに、他の様々な態様で本開示を実施することができる。
【符号の説明】
【0048】
1~n:通信経路 10:アプリケーションデータ 11:IPヘッダ 12:シーケンスヘッダ 13:追加IPヘッダ 51:プロセッサ 52:メモリ 53:記録装置 54:入力装置 55:表示装置 56:バス A、B:端末 A101、B101:通信アプリケーション部 A121、B121:仮想ネットワークインタフェース A131、B131:ルーティング・IPアドレス設定部 A132、B132:経路管理部 A133、B133:カプセリング部 A134、B134:デカプセリング部